diff --git a/client.jar b/client.jar new file mode 100644 index 0000000..8778061 Binary files /dev/null and b/client.jar differ diff --git a/data/ObjectParser.xml b/data/ObjectParser.xml new file mode 100644 index 0000000..ce9c679 --- /dev/null +++ b/data/ObjectParser.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data/RDT.xml b/data/RDT.xml new file mode 100644 index 0000000..176a864 --- /dev/null +++ b/data/RDT.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data/botdata/botnames.txt b/data/botdata/botnames.txt new file mode 100644 index 0000000..ac76c95 --- /dev/null +++ b/data/botdata/botnames.txt @@ -0,0 +1,8446 @@ +Sow Love +Srogi Wujek +Czar +Puglet +Pappanopolis +Asterlyte +Sidocahn +Desigium +Spunknik +SPLEEBTEZ +RealRicFlair +3xDestroyer +DaemonTool +DIY Ele +Darkflash15 +ImZorp +Grafvs +MMitchh +Cic321 +Respaze +Falconz420 +xI3reeze +Sazzarull +Lehoir +DailySharts +Lt_Torch +WonkyShlonky +IronBeanz +Toreransu +TzTok-1gBud +Sweatscaper +Psysyk +uppahoods +dandy man +Legikt +ScoobiedO0 +My Gentiles +BabyB +Lavafrost +Seriousruss +FatalXfire +LadyStarlite +Dreamguy +Lestersaurus +agent_of_fox +NtQuiteRamb0 +Hexxjan +MayanFuror +RaspyLemon +tRIPdoubt +aku aku1212 +Gangnrad +Luzu +bdz +Deathit55 +Ding-A-Ling2 +CannoliBoi +Legion2410 +Orthago +Lrauq +Overrated +NikkiQT +L3sius +Zack0ry +TBSG-Baine +Arrowmind +Deathcloude +Ynka +B5l +Lann +C0c0nUt +Impriznd +Spoonay +Hardlesas +Iblushh +un1versa1 +RIpuim +Hazed +Erinus +darkxaotik +WispyWolf +cunnys +NFed +Infobese +Goblinborn +AHHSCHMEEEEE +Thomarse +FacelessBoyd +Moska +GuyHarvey +Folfox +Sabina +kyurem_vrah +Tutoroo +Fctillidie +Kezmaya +xenvzi +FriendlyJo +Hegelund +Fallenchamps +Novahria +Antweezy +Qoki +Budwise +zwint +O56 +Gargoyle79 +sunaert +MartnShkreli +Zehbu +Gizmoed +FabiScape +iCheezedOff +SmokerOfDank +RalvekZul +s3nna +Kita +CloudT +Elasticy +Raje +Uranus +Anthony5002 +ugivahrimjob +usma6100 +firemadara +YuckFou +Hashiiirama +Stureplan +Charmoul +Pyfa +RZAlex +s1ayerg0d +Glo-Tank +Donchz +SquidSquad +Vuuututututu +ThinPeepoSad +Praecellemus +6TMG +Plugatron +Pinkywinky9b +Ragnell56 +Twntythree23 +SirCapper +ilike2gamble +Demco +Gopuppy +TheCollected +Stinkwiener +Envvi +flyingfather +Chopemania +Siggie +IVIugginz +Linsunt +Tupoopsa +henzer +MichaelScott +Tine +Jayhawk225 +iRekt +SnekInMyBewt +LightRigger +1Hunnid +Maniwani +Burnardo +Bmart +Aureou +SUPERSET q +Slapmeister +DSyndrome +Big Arms Ben +SlayzyDayz +1badprogram +CFoodBisc +Kraq +Agentbunny1 +Looted +Edwarriorx +RapidCycling +XKappaX +PVMGrim +Zip Lynx +ExtractorX +ED9 +Noolbort +Aedon +Zioo +Neanderthal +swordsplay62 +Getfck3dup +Maroon5 +AHarmlesKitn +Wreckanism +GiveMeMaul +Homelander +Nuke Rofl +rdx +Zenytum +Westwich +KidLeaderKTY +vengedurmom +LelSickMeme +Griffoo +Fukinnnn +DonnieAssie +Kimbu +TheDyr61 +Nocarred +Rusty99 +LonelyOnT0p +riilis +Hardwaring +Farsight2 +AskMeDolCare +MrCoolSkills +HarryTheWhte +duMonster +CaptainLuker +RMAC-97 +JohnnyBeanz +pipratoos +6l7 +StoryofPete +ElPoyoSenpai +Egorous +Remiejj-BV +ElitePvmer +HumanToxin +Aladfar +Daley_Dose +ScottsTotlol +bakkerbtw +Butlergunner +GilgaGaming +MakeNotes +asibioass +benjiswaggod +Mentalmissy +Tricomb +noswaL +i r muffin +Kayzielol +Henkkawaa +AvidTech +Syndrious +ThiccDaddyXL +XTCarlo +Grenenjah +Wuteng +Tonka742 +iZorru +ItsFinn +Sugmabum +Lifezajoke +Chicanery +ProLegend +ChilidogBank +BADPanda2 +Yabui +DraggSlayaa +Freesoul +Gjerloew +chongsbong +EvenMater +idkgoogleit +Ak5u +Simon Jnrr +beenus42 +zWxLF +brizzle +Kuhvon +bigpompom +ShittyBill +BoobyHill +Vesryn +Chocomalo14 +TheAdzz +Erg129 +Dabbadank +DrDruen +superr +imBetter123 +Kuler +Kuler +brothervoid7 +retrrd +Whiteboy016 +Diampromidi +OhJezuz +Sumuinen +SAUCEnJUICE +justLush +Elchapo24 +Zardua +Keit +Kalu1337 +MuffinActual +actofvalor24 +reitan2k +rthgo200 +Walktellfox +hulrikon94 +Zelnite53 +JeJoat +0n7 +Swaxel +Teetoh +Moul +Bionycle +Jonxsy +Nhyrenn +core63 +Wripzi +Dekul +xeravier +Biscuitnipz +GrommrUK +Sw3Frost +Macedo +SmokinBlunts +System_Fail +Pasadinas +Fly-TheW +famousbutnot +HalfAb0rted +Anaphylaxiss +Carcinoid +Ast 360 +kaljunaama +snakehuntr94 +Magic_Elmo1 +Marklyft +Mintvolcano +JungleKitty +triple pre +Romic +Heinamies +Kungfuu000 +Rahdyxc +Kaylizz +Lewdberrypie +6pathsofpein +BillyNotRlly +HoopaLoopz +Adorations +Tsumikitty +MaybeMitch +JRxs +SimplySendIt +Mannowrath +WeTsHaDoW +bugsijs +NormanBates +Meeeseek +Slorkie +Schweigende +Dunwall +JulmaJoe +DJMileyCyrus +iKristov +Pb Fe +demaguz +Elliebus23 +B Minor +PlumTickler +steadiskill +JoRouss +Iron Masuli +thinker +Kyersago +Spiderhead +Gijsbart +Calvin +Diamonds lit +EngelNacht +Otyugh +Kitsunemimi +YeaAiiiiite +Bhakli +Sidewinder15 +Unsainted +Brittanys +Luskidoo +Binny +The0G +Lbuzz +CraftyRunes +Eitsei +sticky clay +FuggleQuest +Requilog +bedburn +ChichaBabby +TeddysMoo +Niels1608 +dcPain +Workin +DarKSsoul69 +Raab +DlONNE +SiRzZ Zeref +Jc_TheCops +Lettuce_8 +fudkingname +BeatboxRS +brtsbrg +Manantti123 +loloharqia +Hotadelchic +Protectlilb9 +Tiazen +BeaterGod +HeresALlama +ouououuoouuu +Cleatis +Nova Rez +Yu Stinkipu2 +Merricat +BSven-B +IronKapp +PreNew +Xerona +Evrybodypays +Undeadd +DobbyGotPwnd +Aerros +DigBicker +PuseSlayer +csramsus +Fantikerz +NovaNova_v1 +Enphadei +yacobson99 +Reload +viktoras300 +Killgor138 +Barstukas +D0NPABLO +KingLeonidas +7042 +Elephanten +I Dizz I +BainoLad +Oximas +namtar elite +Galamx +MidniteGreen +1jbone +aphr0 +FrodoBogues +RequireBone +Scimmy2face +xMardy +IronJakeT +joey0343 +Mage7master7 +JimmyBuns +RiftOversoul +Trunker +Adamanta +ToastMal0ne +Pandeh +Colzy +Jamzylockz +Dan-Reijden +Santhacine +Dwake +Danex85 +CG MindPr0 +7th February +CompleteSpud +Seto292 +CandyFlipin +Doajiggi +neocritter +Mosbol +Nuwanda +FLgoob +F0ZI +Kourk +Cuti +Spermlet +Rowoep +Magnusungam +Strugl +Thunder Gate +lunch roll +BowlCutMonty +Woody8 +heuj speulen +Madaddam +jossejoks123 +Headgaskets +5639 +Fire Fiesta +Cornbuddy +zCocoa +cash pls +Greaterbeing +arengs +Zairx +Lucasmelo11 +slajdaren +JimmahDean +hiiggiinss_5 +pontlarge +MuchosAssias +Rngclown +SatanicFart +Wruumze +iojerfwpjiof +Rinsumageast +Techno9 +SleanClate +Xolun +CtCandyRandy +Gomsugo +Assload +BichoFeote +Ajeti +Aedreius +ellran +GatoNaranja +Outsider058 +Dedressing +Dunnill +R0R0R +silentical +IronVegtable +HereFor_Beer +im solo rose +Honeyyyy +Mahzius +Hold3nMc +BlackPyramid +XAAXAA +Michairon +MnkyDLufy +ChivZz +Faerindel +Suzshenron +SaturnHippo +Elite387 +skaiii +NobleVespo +Kirthor +Cosaintus +NyxxiePixxie +Px_7UX8Cy8 +Kaser +RealScythe +will_mello +leewhiffy +MyLoveFaith +Gontr +Mobz +Danniel +ScottJ +Titsferdayz +Heat +Loeffen +Bazz0r +0niichan +Patmantheman +Indrias1 +Upriser +BamfJoe +Pritje +Bussino +Donnieduke +Lanzlol +PeppiEnSossi +aaahChu +goGETTER87 +Sharing +monkeywilly +MrPowers +GucciBalboa +iPvM_Soul +Slise745 +WelbyBree +b-ray29 +duhpho +Tanza +ogteleblock +WeaIth +xDieter +Yekhsad +iGlowGreen +H0B0 +WestTxBoyz +blueWagonMan +Boxacle +Rihmakallo5 +gggochu +Cheepnis +Chinchoopa +Scoopie +MajorMammoth +Stupsus +Judddy +Syncshot +Im_Stone126 +4it +Placedoemax +JuiceUSA +Zwei_02 +Artychurro +SooUnlucky +OPENMYWRIST +RunURetard +IHaveAWifey +look4clues +EsterKai +OG H4zed +Ge0rgeburton +Boostedd +Cesema +TrainingDays +Zavinor +DadamoSte +Zixxen +Evo9 +CieloQueen +Misticwok +Dellamor +boratas13 +Floogan33 +Roebie1 +LostMoon +Vaull +Sk1llzy_RS +Solan +v3kz +Evillized +Bonduwel +Moniez +Detriment +Choicess +xHades +Makeboy +OrionDragon +c-ross93 +dog22 +Character252 +Googleisme +Carkosa +Nasrullah +Guelph +Caracal +YomamaPro +Hegert +TBonFirstCoX +colafanboy +Lucidfever +Potoo +JagerBombski +Eldia +Fishoii +buryafriend +St0oge +Velgreed +x8mz3hg7zm5f +Flopez +lREKEEN +Spoodersussi +0miseGo +JSco +Dff +7 Trouts +Poofpooh +Lonksu +Australiaz +itsGLD +Spaget1111 +OGBloodFam +JusticeSven +PhriarPhace +Crittx +MyNameIsCole +Beugsmate +BkGime +SonBuns +KronicPlague +Wolwa +mtash96 +NietzscheJR +siimzz97 +DrBeast +lrh +Happyfrog12 +LlHAPIIRAKKA +Audylinks +AGorski +Snorklarn +Krystalbead +Kryoge777 +liberteeeee +pleadtha5th +M0ON +Donald Dumps +SpideyC +T0othbrush +Edwin Ownz +Komai +Boookuh +CallMeSofD +LightB0ne +i0 strength +LeccaJr +KingCudii +uTBER +Deviljin583 +xli +lm2fas4u +AlexODaGreat +Jadavius +RunRonRun +Villanovan +gladwin97 +Scharnhorst +elefantsrul +DabInMyEye +Kunsel +Kid K O N G +Submug +Secwai +ScaryVacoom +Danoj +guttsberserk +Xanfan +YorickMorty +Knowledge +Quaffle9 +Stoffins +Jonnisjoen +TruckersLife +dark0hawk +VeganVibes +97DEF +AussieSparta +Propas +AnotherName +Zealicious +Gehrman +TenebrisMeam +TheValuable +VlNTER +TURDENATOR +184910381412 +OppaSky +99S2HP +Barrowry +realAxu +DatGuySteve +Lord Vioarr +Lowlux +BaccaM +yolomuffin +Luigihbk +WlLL +Liberaxa +Jordan030592 +iSteele +farva5001 +KxNoTTz +evoshiva +FeelinHappy +xBeerbear +HDGamerLewis +Thelvereas +Teledogs +Ritrole1 +Maxell +JoeGas +Swollbroham +PapaJohn +Nassim +Neverender27 +JayjayNeo01 +ThaLawl +Silentzsword +Xenofile +Arrandarls +Lolitsleeroy +Karnivore +Olvi +Demising +Lion0fZion +StirG29 +Meramon +Lewir +Daddyplease +AppySauce4 +rubtuge +JCutler +TMG +trucksluht +Nbba +goku9172 +xpeyotex +AlMusallam95 +darkgirl79 +MizzFrizz +Summit603 +xt0 +Khazad Dum +ArcticMank +Aloha +SquirtyHersh +weedsmoke163 +HshBrwnClwn +241196 +PauletteRose +Slayerburger +sgg9779 +Arslen +Big Binotte +MUMM0 +Jusfat +Zuremate +Ulyanyx +IronGez +Mgw +Subwrx +thezucc +Gamboy46 +Rizzzyisback +Sunscape6 +Frogwork +Yundastan +Jahbby +Doodled +Jet3010 +Gavita +lCEBERGSLIM +CookieV3 +EnjoiAssault +fartsogood +SogSteelrock +StratusQc +Slayyer59 +BLXCKPINK +MarxTheMyth +Amatsukaze +Arnear +ArsonScape +Maul 0n Top +MommaCuz +AGP3 +klacen +Eposs +Nitt +AlivenHappy +Sverd +Scurrilous +frogmeme420x +skyelar27 +Claca +maksavelat +Resilient +Wahpan +Chillagalet +Frohobo +vissiman +Slayic +tallest +charlyzard +s0ultage +AlfaQ +Spruit +Senturia +spicke21 +imflavio +Milleks +Shame +DocVamp +CanChem +Alcerathe +YoSinNow +KoffieBoer +NinjasDark3 +Word2urmum +Krypsiss +ZoroRoronoa +Boxio +Kattarui +Spellgoth +BR00KES +VeryAvgRNG +Darthrodger +elderimpking +IctCat +Shoopdiesel +ShakaLakaInU +GEEZ0 +IronUnkilled +SchwanzLord +Killertribes +Lavadude42 +Silanz +GCMidlane +Doofe +BumPounder +Kaloex +WouterMarni +Sikskilla +verlord +Hurtigmads +Mauler_rocks +OGWhitePanda +XigZig +Casmatos +Aquaileo +BraBraBrad +Pauleee +Nurdal +tyguy +QueenOfCorn +Stoneator +Heywaddup +Squeakes_x +Mushrooms1 +fhisher9 +HaddlingOS +Leadfeathers +greenfleet1 +Careo +zer0sirisFHK +Nottarg +Fam Chi Boy +BV Martyr +Bj0rnsson +Kennyollie +McDongles +Colgate777 +Just Alright +Chiccbacca +FireAF +Tooomo +Erabeus +unlucky2020 +despotroast +Hollsyy +Aleous +Akmore720 +AnExperiment +TheNerve +ScorpioBoy +RosinHead710 +Flashbane +KonteNeuker +Sild +Wh1teSox +Macoinho +Toat +Padrew +Awezm +Typisch +Zeveria +WhyCantIPick +Pocy2 +MyNameIs +Iron Brinnie +Lighterfalz +jobljobl123 +Jack Reipan +kahleparta +Avlek +Lenfart +Snipor +ImTinyRiick +RegularPlank +Eldereon +Hjaldr +Mikebaker417 +J1ub +Leprincias +Zinixon +Tardysoap +Gzo +D Derbles +kingcuzh +b0rn2grill +Zhinky +Tenorman +FarFarOut +Paramost +Khune +Onebuc +Tinzo +Papicito +Muahhahaa +geusjj +Hazsle +IMnotQ +IronHammy +Absol-EX +Lez +karelzzzz +Kenesu +Opex +pinna67 +Urkchar +ControlAll +Thulean +Oikeisto +RahbHurt +Trillotani +Kez0 +1stlrfan +1845 +Skryze +Johanbtw +All Fore One +ALonelySpoon +donmaners +SZP-Qlimax +Feelsbadkapp +Jaka On Can +JamalBobaman +TyeMeUp +Iron Tutnin +Nichy +J3S5E +BlueFrogsOP +bbones +Areimer0606 +Iron G0liath +Vreaper +Hhmm45 +FinickySquid +Ninjymate +ThumbBwana +Bajkami +Simmi091 +I h8 farming +Jimbly +DingDongDell +SirDeimos +iRetard +Afkwarrio6 +celliott94 +Massterduel +ENimmo +Xiff +Kijucatm +Arfex +Laftonn +Naviaux +ILOVEUBRAT +DontTellFeds +Eucaryptus +Creenen +PepsiTwist +habitus +GoldenArm647 +V3n3natis +TR0X +Ren_Otori +Christidog +SaltasVolfas +Klariany +Zeldaza +AVW +JohnWick39 +l_Thunder_l +Fev +SappieWappie +OSReaper +Vaiga +Yorga +ratzzzzzzzzz +zirreael +Conquar +Mayvex +BigYitties +notbennie +DaCatBeam +xMonkey +iamzed +RagToRiches +supnoobs10 +ElitesEyes +ovox +Juezz90 +TwistedGuard +Twisted_Ry +Fpr +Sandhog +mrkaramazov +Gankster +pur3gh0st99 +BlakTooth +M1NG3_GOO +Jeremiahlewi +HammZ +whoawhoami +deivvn +Chariot +Dhor +FailFish +Serori +sondrep +Im Christian +CHOPSTlCKS +Sleet56 +2olon +WayS1de +Zyleta +ARESCREED23 +Tulppu +Skinyoualive +karambaa69 +Tosetti +callmeqel +Damn +jonnetuinen1 +Tempthric +Kaltsu +Brech +LargeExpLamp +Hextra0rdnry +BR9 +freepknub337 +FatalReign +Kdash +9AO +SleazySEAL +DrHugecookie +RNGVRNG +Zephyrot +FiendinLo +187er +Zanakkusu +FTB +Dizza +MayhemMakers +TheMayne +rubengouveia +Aidann +DIETDRDIET +B Victor B +IronRait +Enrico +Seanii +Diz_OG +Vize Senpai +Orrey +Crayzee +xSweetHopex +Gnight +Yaboitrek +Uber Logan +ascott1 +grinschen +Pwca +Callmekee +Hunkadoris +Zixcon +Inaaya +HAXERFUGGv2 +xxpurskillxx +za33erklan +Leanlce44 +Xname4 +Dreiriez_69 +skipz1419 +madara666 +DrKushBurner +Guilles123 +Lvl30Ditto +Splasher +Fluxee +Snibzy +Godwise +Eusiriito +FingerBang +Gallaxy +Hardman +Freddiep +Imasin +allluminati +shumili +PepegaScape +iPvmForBank +Bville23 +geitz4 +Predaxx +iPatrickN +ChipRain +Heko +MRM +Blacktide1 +Prisimenu +MELAN00MA +Masylvain +Vehru +Manletti +gonsoLE +deadlyone69 +JannaMain73 +littlemc14 +Megnificent +Graveless +Stalphie +nuopisa +xBenny +Tournx72 +Zioh +Zpizz +Relloktion +SwollSoul +Br4w +EskimoFro +Alexander0k +Valdomiro B +Muggerman3 +sukc +Verbo +Jazo +Chef Bu Fang +Diamond2192 +SleepySus +Rizos +Hempopotamus +Syncire +ose420 +Somix +Kakashi69 +xVenomx9 +Iron Tinman +CheecHnChong +i 0nly skill +Bone Ur Hole +Carmillae +grandslamhit +Ba6y +RoyalD3sire +Applev2 +Justinkai +LeMoopey +xH1ckz +Sapin +Falloutah +SaintMilk +Iralimir +alpalmchal +Hespus +7lO +WAQQQ +Dexterity +Lx1I +wonniwonkaka +RedkaWodbull +mausre +BooleanSpl1t +MRDickButter +Delten +lazzabazza11 +Bp2 +Xzil +MeadowFall +Duuni-Pete +Deerboy7I7 +KuroKama +SuBRifleS +Millionsppl +MuchGpWaste +Sika-Mika +flapdrol2000 +Ironeyy +lionking-PVM +Aquellex +Nitroalkenes +Dains +brecht181 +JustJake +ChristyCloud +KeepoKeisari +TheMuel +spozz +RoBoRhino +SG8 +Abocrate +Viera22 +Dagsi27 +IanT +Mikeygirl94 +Hesson +JordyM +Psybae +EfficientBot +Wilters +Sarro +Dharoc +Rayner91 +LogHog8 +Purplekills +Saphie +littlebumble +Scotteh +dsvgs +Ravedeath +Renas +Daymien +Spookytoot +Jsnn +lampen69 +51Highlander +Deluvial +TOLIPTSET +Blaaaaake +Jostle +wesley 256 +CANNONlNG +Symba12 +Chingie +Chingie +BestDIzzyNA +Necrokingns +Int0mieli +Hobodude67 +Dhae +BasedHeru +7cm +Mole +SpBongile +Murder +Lifehunt +slurpy40 +ZeroGravity3 +Legacy-Blade +Wolfjob +Iron xyN +souldrainer +KaiserRS +Tungsten +Recyr +Apocryphe +Schlynn +AHMETJACKSON +RevenantBoy +smallmichell +BIGHEADSMASH +Broodoos +MrQuaker +OctarineJake +ECCIES +refurb99 +KarsanHAM +Maxiu +SDemotivated +Brotatochip +Clawdius +specuri +Ironman idk +cameliorate +Spodey +ClutchFlipsy +BigBustUp +BarsasBoom +meurtpo +Sixcess +Zenithina +RandomLemon1 +scaffidi +Denclosure +Kalico Cat +Maxerder +iTzGoinInDry +Jonessy +Reclaimar +woopingcrab +Hispeeed +Ocellari +bashong +XxPoliSwagxX +Doobe +Maeda +RuneBri +Schneyy +ironderp +F7VD3 +Ripsnorter69 +GrinoReigns +Lohkey +Hardcome +RoSki +TheRealIdean +Tsukihi +Milk Sausage +SleepyPlantz +herbibear +sendu2edge +GodsSyndrome +gularies +Maxiorek1200 +u dead now07 +Stillen +tyler1041 +IronLepaus +Preso +ThatBoiii +Ares1701 +MusterShelby +Trogbite +Iuckk +byEmilsson +Fogpun +Loveskillin +Ouze +VapinTiger +batseflats +Pawlmeister +Wwalrus +Idk Why PvM +Sirnuclear +Quimbo +cmm6364 +Dyoung116 +NathJeaL +Divin3RS +Axies +Fluxery +Alkene +cloudroamer +OrganicOnion +Smeklius +Furo +Vatix +kokinaattori +Snifflematt +Qombat +fxck versace +Fillifjonken +Vailokas +M4tte +Haruto +Michel647 +Sjappy +RAUTA ARTO +xoRUNExo +Tidders +ww4 +Andrewjaay +Agronyss +PaleCocoon +Nurselie +bam-BA-lamb +SlLPH +Peopledud +MaxNeander +Slaphead28 +KryyptCeepR +Alabandus +Jjar127 +adPEXtwinDnG +nickdv +Fyron +Zwiers +Lufidius +Flupbaster +Smilts +Poentje420 +TheBrundone +Ozzerro +Rectophobia +Frenmiir +Bonar +baglokale +KevlarX +DeadPickle +Funkafiend +KillinxLivin +Gilindur +plebhunter69 +circa445 +ChevyB1998 +AKI-47 +Archahl +Synepxo +Kernalpotato +Th3uns +RiyuK +Bernache +Clem585 +KoreaBread +Rygo111 +ItsNiels +MartinGameTV +SneakKhajit +iniu +B4llista +xttx +Mepthadr0ne +Berkis +KungFury01 +PewTheMeow +Bambi0326 +Dioden +seppes121 +8balknowsall +QcumBear +CoffeeIsBest +ThatSickBoi +scape for 1 +NotAlright +Brisiinger +Starlighte +Haissi20 +260sheepdog +fmPalm +Delskiii +Vladek284 +Kylanater +xxSabin09xx +Nerbles +cowpoo99 +Brys Journey +Lalundi +Kazave +VividAzura +iDrebin +Mezane +Taikanz +Frietjecurry +lXl +Ballotaa +832arba +T-city +Aromipesa +hclirongang +1Fbs +HeroToby +W0SS +Kragjay +6mat +Pur3death2 +Mk60 +Deemush +DV trekpik +i-i-istutter +DarthSpliffs +KeB4NG +Khiru +ogned +Skotten +Maxedlegacy +TheBassIsRaw +Barkki +GAMMAGARD +forcestealer +Reaks +Bioavailable +Epods WifeY +Felinaed +Ozzio +BIapa +Riii +Celebio +Promepheus +Ih8myRNG +Emmet1156 +Tree50 +BeThankfulll +aTinyChimp +Suomiprkl +Unlucky +3x3i +LettuceLegs +SandwichBag +SimplyFresh +Hearne +Emmaes +Takea12 +RaaWa +forevercc +Stebs69 +0samaBdabbin +qtf +e500 +ELFlikeaBOSS +Milhous +sliim +RandyBanger +LinedFury +Koulupummi +Celadus24 +THUMBTHUCKER +Stinker +GE0RG3WKUSH +MediocreMatt +IdleWhale +Demander +Tempz +Teh Only God +95EliasAw +Brocaine +EZ-Y +TheLampKing +DanGur27 +TanqueRamos +Doxxme +meskil +soulkamikazi +Rcer +Fruta +Zeithex +HowIing +Jungle175 +Rochette +Effril +ChargeN +Sothe1 +Kenozh +zurcc +Forsworn66 +Phi184 +ISuperStarI +Ronbiara +Iceb +iiDrackidii +Yawan +Filthy Bird +Eatbananana +HIKI VALUU +q0d +WikiLiex +PvMCerlow +Moscosung +thrakataluk +qwu +AnAmerican +Iron Griss +XSandwich18 +quickster61 +b5 s4 0000 +slobthyknob +TheHungOne +Ijoinedthis +SanSheng +PresidentMo +LordPh1L +Dinger30 +Jexlo +containment +Zaane +G4M3OV3R +Stuffmypanda +Festiva +Zappman123 +BasicBilbo +Jayzar +Zoommaster97 +FishyBrines +Zamowrecked +cad5112 +Deivukas 69 +Noxiti +AlchKids4Gp +Tuerro +Xaud +Swedushi +xZITOx +Fereekelor +Z-TheReaper +Trooperke +Bennybooom +cheetboyx90 +HgH2 +Mista 1337 +NoLifeSincRS +JETSNBEERS +StrokeMuh +Hidole555 +Elyam +nahbo +Oikis +Rustynice +Ruzy +VitaLemonTea +Marcooow +Erlksson +Joopaul +Illwil +Supernate91 +LikeCinnamon +svennepen +Illbeyourcat +ShadeSlay +ThundaJunk +Satchyl +Gilnash +beliver96 +TryAltF4 +Stregano +DJOFULLIN +Solarys +Sh00t3r2O2O +Ledgendairy +Alberthorn +Dalundo +Scraex +suckymumblud +Ashieboyyy +Skundos +Telluric +Explaindeath +OSRvape +Infero +WhiteWolf216 +x Zela +UGam3zOS +CreateNoPain +Apetamer +Tomarti +shasd whip +Taavik6iv +Aintos +AngryWizard +Broomi +ILoveSeaFood +Pk3r Range 7 +VitaMineralz +Wauzemaus +853 +Fojin +spritelum +OneClickMan +Napanderii +Lowy +Listeffect +BuzzMax +13LACK0N3 +290x +SlayingDave +OhMyShoulder +Sirmordred44 +Gavbin +Hattnn +Martinside +Landofzoa +cobraslyer +Ceppt Irn +ThaDragonSM +Bilybil +Dryya +Woodys +whoppinknob +sprits +Rafnar0G +Nosetkl +HahnSuperDry +Guwapp +Hobgoblins +J001_jf1 +lilchiken +TankProphecy +critiode +MaxHare +Wiltings +Vonty +SeniorLep +Patojo +Vynlx +ISoLaTIIon +SkyKnight +M_Sariol +perckey +I ll fail +2 h p +Raaban +Bob19922 +Nuhapiippu +Komijn +grandpashome +GrimyIndica +TheRealKyle9 +R3vq +TuNxZbs +Grummmy +2woke +emuulzzz +TTTSpiceTTT +Coquettish +Sharoxi +FlyPap3rr +Masterrgod +MrGibbletts +Techno177 +FamousPixels +MF DC +FishFingerz +Just1n Sane +Bear32 +DiaRelent +MANSlKKA +ARNGCantrell +Bluebears +Orange1213 +SanPaid +XoXdr34mzXoX +Incapacitory +JordHarris +Booxia3 +Ado12322 +L2love +MatoPotato +Maxjuhhhh19 +Rei-chan +Soap013 +BlueMeanEyes +maxrevenue +Slaats +HavU +Xfebruari23X +Loadstar +Tornjak +razorwheels1 +Tryactin +Schoonzoon +Scottyx +T0mbak +OrngeManBad +BlairChan +MentalAbacus +Iron Alabama +Shrikems +Splarf +Twaste +tanklesss +Odonodb +StrenIron +Matty Gibbs +6ft +Ungolianty +Crazytree +Greatwhite62 +Ratrace12345 +Ogmj +SIKKaudio +Ro The Boat +SvartaOdhner +sleepysleeky +Zelatrix +BigBlackCats +Hexication +SlutDickShit +kire7693 +oxoxoxoxox +Kothu +Hellafly +Keyashes +Kewlaidman +Keidy9 +alkaizerx +Snike4 +Jhebs +Vickies +CARROLLYZER +cheesy05 +SonArtorias +Klacky +wh1tey95 +Watafara +MAAAAK +xRipple +JamesCUFC +jayst1n +TDPred +Wixsie +Jin Oh +Grimalkinn +ImpactPewPew +Ry Jones 21 +lukewarmrod +RPK +Taunos +MinipeTh +Kingeri +Galdysa +KlazBooy +itsa_feature +Fire Kaped +Dopeturtle +Dovahkyng +MordLacaroni +Chap Zachman +Quahzai +Xbox kid 88 +Runnn +Sapphirebear +Hmmingbird +ssyd +DesertEagle +Trynottodie2 +Swimfatman +Finding_Mary +Lord Tarkus +Graros +Edelbae +PrimexReborn +Joebobinator +Pilodro +Supdude +ControneX +PubicThumb +Moon7I8 +Vekie +MysticRiver +Nzy +Digi1al +darius_v_2 +aSwiftyBoi +Zynthe +HawksMama +Maksukka +deketamingo +Epix_x +BabySas +Fyszz +Ochrie +MiIIenia +Trick-demon +Chimera364 +beanbag173 +Veeena +Hackett116 +Gimbli102 +Claud420 +N1NJASK1LLZZ +jre257 +Dankdynasty +Vezka +IMPlayerjohn +Cybernautron +Angel Vlad +RexM +1827 +Degas +Opticplex +Turner Coach +Slayflake +Afghanistan +Txyus +MomICantPaus +AuStarZ +Samps0n +Kephan +brotherkjell +zeroz136 +Kozyshack +Raft15 +conig +Nrse +Reputism +RivenGasm +Flyboyray +tbrey24 +LemonLube420 +Keef Supreme +MintEastwood +Astrali +general_a3 +Oldburnzy +Nt0y +SemperOP +HcGon +Dlorean +iYunis +Metamushroom +DStroud +Iron Hugge +pvm bioodz +TwilightPony +Toffer_99 +iron xarcher +Luucy +MrMell0w +iDerpo +HolyDugong +Patella +Cauterised +lobi +Hakuryuu +Archaea582 +e pinke +DePope +TN_Biscuits +Angel4killin +Dgalaga +Mcgingerpony +DedZap +MorganAtkins +Hectic Mic +HybridSanta +LinkKing +PendulumC +M0RG0TH +Fitsit +angrydump +Sansos +queundas +TheBandit777 +Kotaki95 +ThanaWee +tjappko +Wylyne +Wobos +Parameters +Shaykolade +GamingVapor +IAmArcade +Dogan +Durooo +Eucleides +Wcs139 +Chopin +FeMattsheets +Elenaki +Blixtslag +mangay123 +pvm-owning +M4gnus666 +Broadboat +mynamesDog +Au92 +Alty2 +Toris +Ziqs +LuckyEmerald +1272172 +lilmasterOG +Darkhal +Poohead92 +VictheStud +44U +TwojaStara +Rixhy +Marsg +x GS Cookies +07Ash +arreydn +Breivig +GummyTushie +Monkadile +Dill0n +COM3THAZINE +lmplode +Shivoc +GucciDang +nyareet +Rozzaa +MiniDrew +Joe420buddy +Donaldfact +KGee +Voltz Tzkek +Ajuus +Porta Pro +ComeAtMeBruh +mazzahS +zuenzima +Herbilicious +IHuntKoalas +GerAmi +2girls1troll +Mayweather +Liquidat0r +HellaKush420 +Drenzek +GodlyThug +Jaiden184 +svrN +SunaLAD +Nedward +Unavailable +Alting +Reeet +Branden +Bulte +i praise mvp +Kuroshin4 +Biku +k3yblade +mohak45 +Orodyn +PITFIGHT +Zerkism +Ezarc HCIM +Pwnbaa +Squall44444 +yechu +CoreyCarlaw +JovyGaming +Kiiwityty +Daksu +HitdeBongz +xoKt +BigMo +BuckNastyy +AdrianMMO +killd0zer666 +CrazyStuff +Sp3nC +gabba-jabba +Ph0g +derrybarry +CaptainOboy +WildAbandon +Bwananabread +TheRealMidus +0g_player +Volai +Trrrpfosdss +Pesoprkl +Reizzaz +Jappo +PVMramranch +smirqqel +Thunder Dog +killedual0t +Active-Bombi +Eyeofdeath3 +Celestron +lGuess +Kolton +JMiddd +Taringa +Lehmo +Shuiin +Zanity +Mulle-mek +Keenar +teakte00 +Edelweise +Stocktone +Slurggi +Lycstoned +Neurophys +C11 H15 NO2 +Turiak +ge1uk +pk_by_me +snoxxyl +ThatLuck +KorbolJestem +Novem +Overtus +NullObject +RunninBlood1 +Jrby +Kazatan1245 +mayhemrs +C-Dom +Arzi +Ivain +Hashtagz +Tailsnake +NoobishAct2 +DiveMedic +Conjay +urza +Imakuni0 +Akilled +Tashee +Reyko +iKushUp +Christoker +Dougoboy +Daleferd +GourdPicker +Premz +Marn3y +darthv102 +Sunsa +xDevastor +Atroo +Brendvn +Panoople +Swanheart +Gas +Jowalll +HBTurpin +Ruthers +HowAboutNeup +deZoet +Revx +Gp On Me +Covvboyz +olsyboi +IronmanFookz +Envyy +Wartt +Darda09 +Triforce13 +Poopybutt13 +Komarov26 +Tuckerajf +Smilf +Pyro_OO1 +WowAUnicorn +Yannis +MitchRap +MC Cheep +IronDong +hellofpures +peliken2 +Sadystic +Masonitte +MrQuick1 +burnsalinas +Hisblore +Zafaron +ImNooblit +Wheremeballs +TechContraps +istealyoloot +Juggerthot +Prima +Zevosh +clevesbch2 +Forteh +Dumbells +NurgleBurgle +TzTok-Jeffy +Taker +FatBoySwag69 +ConradK +Plorky +zouse +Athaw +Ixala +Halloman71 +KAKAGUATE0 +Sizer +Netmn15 +Velbain +Grants2004 +Dragonbait4 +Mugarooni +O0l +OpaJei +Slymax +Gkm +Tautvif +Caregiver +Rahjer +1CA +BeverGT +Abernasty +Haz +SizeMan +7emptest +t-painn +Backus +goblinsyler +XMZ +Nuna +Rivalguy25 +Lejoon +ClydeBarrow +Jedah +final dip +Pans_Gaming +McSuperNoob +roflbaker +HighOnPlants +Mez-qt +ariman22 +Froya +The Iron Era +RichGuy X +snoppen97 +akae +spankmoi +barkmeat +Popfumes +Chugger +Elementality +4Sale399 +05venom04 +Santeri333 +Stackieks +PeeledBanana +Musschoot +Brvte +BBarnzeyy +Cowrat +Sleepybear +Mysticvaa +xNerevar +juwgrehg8w30 +Mouldied +Nordo +Calcusource +Bored_IRon5 +Jonnems +Odeee +ir0nschlong +A MeatStick +Khao +Dorman Jr +Ididit33 +CliveTrotter +FerrumPawn +AndSo +F0REIN +MrBeerNTits +LordLambo91 +Inflnite +patrol +Pregnant +Drayheart +Melchuzz +Lingwood +MAGA1292011 +Beastman642 +Grimsomebody +Activeshot +Deathhope666 +DrProfess0r +snuskfet +Prodigy 88 +Gidionn +DamDude +Mattyflight +iLoveYou3OOO +Occulent92 +Stickers +Hungarry208 +Dathx +tooowise +big tree 63 +Zamorangue +maggpagg +SkillzGainz +look2thepast +ManOfGold +RyeEx +Vga +NukeDuke98 +17_FLHXS +Diapeetikko +Nimloth_666 +Addderall +FearTheBear +Denssoni +bajj +Torned +ENAC +Chrisible +eazybreazy +Cenpie +ViiViiVii +A93 +Euphael +Pubeless +Sindo +Nuigaia +NoDayMercy +Kaporkchop +Tigerwolf +Cliffyy +Hakozuka +svenskeren80 +IHaveToQuit +Iron SteveB +iron cuzibro +Benni2345 +Drairi +BobTheDaddy +Khleb +Lazyie_KiD +DaquanNiguan +Riboku +Cuult +TheAvenger56 +Minty28 +Veinin +Perchlorate +IronNexuss +pugginSpooky +p2pell +Samaji +Zemps +Fairr Enough +egirl qt314 +Dezerthuntar +poseidon0928 +Vikram +Elemntsk8ter +SoSimPol +batchela +Borethil +Urakas +Offka +jef skhiii +catsarepeopl +Aimdur +Pathways +ErzaGames +Vendet27 +KnowPurpose +PBD +Madslasher30 +Z1k +ReignOfThor +NickOSRS +Jrogo +bigchoocher +NJZ +Bleak House +KingGrekus +generalneos +Kahvikuppi +Bwanner +pumpkinslaye +firebrotha2 +SHIDDED0N +Tubbless +chubysack +TTBtw +HuckUsAHandy +Draind +PeerTheSeer +Hodvik +Cannibble +IronSmurfff +Gamaiiron +SteveGuy241 +deesnertz +iFatalFoei +Daykillz +Alpinetree +Bwana-senpai +TheF1ash +Undulaatti94 +riuCooler +RHK Ezze +T_Swishh +Stago +Jahmerica +RichHarambe9 +Dception +I LOTR I +Cherba +jusiuke +PJ Salt +ironandwhine +WhatSheZed +Verjj +O l m e w +Asterus +Sleepiness +Stamuhnuh +Snoot Boops +LauQT +IronShadow5 +MRHD +Cooldesert2 +TomatoAndEgg +MrAwesomeNL +Bredbeddle +batje vier +boodje1993 +PappaPizza +Chronomancer +Pumuckl +Jakrojan +Sykeaux +PoopLoser420 +DurtyFish HC +LeMoonMan +Zanwk +19088ml +JDEP +kindocool +Guwaap +Jerec +Niseraru +Suzakuin +Quzzini +Anna Rosanna +Rufie +Aidios +iiHydra +TwitchFear +3amf +Mila +packmas +Mahalusa +glica +A99 +Beaan +Ahab +Montagne +FraJoLaaa +SenorMarcSux +Blommer1 +Valorise +k0ed y0oh +Suxe +Acefalcon3 +SNAlIlIlIlIL +Maxime5100 +odafan +A7MED +holdenrulz6 +iLuckout +Juntti463 +JR05E +Soolo +Kyrdaar +Riippptttt +Glut +WhenYouCute +5Aces +Saosiiin +Exhibition +SurgeHunter +Kinkyy +BIaded +FER0C1OUS +Tittsnbiches +RSLtSgtZen +Roytang5 +ThatGuyJordy +Brickerino +Hudsy +Nidraugas +UrPureSucks +Tunafish69 +Front +crew-z +Kelly +Karekano +1800BetsOff +530 +razzdnutz +D0NE0 +PurpleNinjja +Blakkeyy +Saran +Practical +Wasup725 +Vapeape1 +crownchyfled +YodaEvans +Pauk +MURMELl +danielfanacc +ribalibali +Adelaw +ProdigyTape +Vasdeffernce +Metallproz +RightKnight5 +CHIEFWHALE +Bobakadush +Palmboom +Sub_Void +Sheq +anxiousbeef +Volcanos +Bromerly +lllPeppalll +Trace +Avoinmieli +Thugg +The_Dave666 +Rollsie +FriskyPainal +Zedd180 +Extra +Flippar +f3n1kz +Frufoo +neuber +DssHimself +PoseidonDrip +Ebrahem2004 +mippim +Nocando +Matheor +KitsiKitty +Birkenstocks +Doogyplumm +Phatman348 +Islefalls +Elnuma +minyhitsk0 +EdgarAlnGrow +Protectorate +BurningKushh +Boeing MAX +Guala +Turbie +Chilcos +Verokostaja +Tijn040 +Dokarius +Hbx +Brownecakes +Matematikk +Mooksy +venzano +youralterego +shliure +SnakeSpec +StagnantAlt +M0NALISA +Mammad +SoldUrDad4GP +deperni Jr +PeterButts +Doritomancer +Mitologas +Hitchens +Reaper0321 +Skerp_Perp +ripbobthecat +Dark_Auth +Craftes +LukiOne +TitPoker +MRWHlTE +marketmoney +Czivend123 +punchlineNL +CykPyk +DynamicDuo +Criyosphinx +Besty +Aktii +Cyox +Whosyourmac +BossMann +Blacklmp +Banzu +Rot3x +Kiyoko +Silent too +Valzor +HalfHawaiian +5YP +DeFatCactus +BlueMuff1n +SooCrispyy +WarmManBlast +Nikko +Workath +PitterPattr +Ben Standish +Amos1500 +GramsaySan +Bankaiz +solfam +meth0d +PengMaster +SpliceTFY6H +Te +Fluenz +Squonking +Utsuwu +vertztheone +blvckstvrr +billyjoewo +Joonayoyo +Doggiezz +Musuwu +napkins r us +Haphazzardz +urfault +tdufflebags +NeonM1d +Edson +BalIsackt1ts +Geno2566 +Coachsharter +1994 +Katetuotto +Bodyguerdson +xWillx93 +XTIF +Macromage1 +ColonColitis +rxbi +Petless +Frvnk +Homepage +HVSG73373535 +LumbyCastle +thilygoose69 +Izone_Kev +KungFuhr3r +JBGard +ProSKatona +CHlLDS +TheZoracks +Themenchman +FoamDemon1 +Flirz +nuggeets +Monkie +Rastaclat +Ioyal +Bautista I +xozoca +Htx +Soloman50 +Especkt +Kimoja +iLoner +poolbadger +Badasseness +Naxtzi +MerryTuesday +RadFeenix +12bar_ty +Runeukko431 +SnackJack +Zyrok +hammade +INTERMEDlATE +Arr n Geesus +Rpo +Tekknow +keatonboss +FrozenMosin +Jackyboiii +FoxVex +Sheivattu +MrGainz +Tiftanlar +chimonas +Olivas +k0nna +PetroX77 +Bessone +Ghostiami1 +Omnicide97 +Cnwalker +ashster25 +ashster25 +Bettuh +Golden2Aim +mmmmmmnmmnm +Vorschlag +Forgetmenot +OnTheEdge +SilvaAlzir42 +Inxo +Simeeon +Broko +scerp +MrGrind +Lempsu +Munkinut +BlindByron +Ruby5001 +Valmar +Gyroman +Qrischin +Tater +Mokkis +Lord Buud +denzarr +RoseGold_A +Finalbrk +NoBankIRL +Shazu00 +Genocidal +JarOfCookies +Highfish +Xoir +SeeYou +Opticplex07 +Cyrax314 +0verhaul +Guri77 +Strokemon +Vt Flavourss +Guardian726 +Wurj +ThemanwhoisB +Gosustyle +Hobie +irradiated +buh6969 +Summond +Esquelito +Shampoe +MexiePie +Oziarch +spam123 +madpaul1 +GeneralMo +Daborn92 +xlr704 +Sign +iekgaa +Ekxo +FuNrikoz +Guest738 +Bobby Brawl +partypossum +HellAngel +Wrektem +daPeanut +WyvernBreath +Jordaneee +wweadge2 +2841280 +Kifsa +BoredMalamut +Smurfingt0n +Monkees80 +VeteranGamer +Rng4Display +Ketwards +Sceneryy +HunterPandav +Snowii +UrNansMan +ladyspartin +oldsports +Stealy Boi +kylop +Tay3rell +Epic_Knight0 +MustBeGanja +WubbaRs +Chipz +vegiitto +Shimosh +stella1 +Firulay18 +1Buck1Love +Crushertaco +morgf +WhereTheCats +130rk +Xillious +Mofleminator +InThe90s +bombadinski +LtJan +Oulusta +Patetisk +BungusBoi +iTzTyLeRXD +Doken +jimbob1 +CryptoKitty +Chaottic +ScaryShadows +amagna +King1631 +is skimpin +Scryzen +Indigo640 +IronVikzo +quiver81 +Ommy +Ranarrseole +Ajamian +Shiramasen +Gregobeast69 +Malvian +K44K +Rekkaboi +Karaf +Yachiri +Janer +F14 +Dietch +TheGreenBowl +WtfJad +catsntatts +Huntindawg2 +Astrophe +Mumriken +rwr +Hakafissken +Knaksaucage +Illest Logic +dr4ll1m +Danlord3222 +Vorkscaping +Ricksking +ThePTWY +Ayetg +RipePineappl +SoloFletcher +Juranja +Earl131 +sixanddagger +718m +SoloDynamix +55mg +ForWeAreMany +KAL-JML +Luckybamboo1 +vbhos +Adss +Warhammer70 +Trennel7 +Bomtastic +Chevron +Syphikins +ParasoxX +TheNinjaH0b0 +Swadloon +Diddmeister +Compilacion +OutofQontrol +Boson +v0i kehveli +Patchley +lnformed +Utini +scoobydooby9 +Cerberus98 +CoffeeBarrel +Estafeta1 +Teknoid +Tes Iron +Zolrisma +ThaDankantor +IronDeadBoy +Jennn +GRAB-A-LEAF +Lockski +ProjectGamma +K-Diddy +Airexz +Mathisse +DeeLizard +DoctorTsom +Resupplying +Burials +Rokushoo +tenac +EARLYoCUYLER +GalGadotsBF +champinjon +Jalite +Eqwity +IronKaboom +Jella +Angalad +pRiesty +JabbasHut +Sandman1 +Booll05 +Plips +Andremagico7 +Smeared +zendendead +Cwioktopus +Waonnman +bincho420 +zakaru9999 +Tashkas 007 +Kelwus3 +Othelllo +Talcron +Enrich +IIamaman +Leerjet +Arizotal +Lucie SkyDia +WhiskyVault +jackjester +Selling ROTS +LeesusChrist +Sangers +afkvsehp +Kendlang1 +GorillaMon3Y +Rajat76 +Uncy Duncy +Gleep +Kaspuhh +GodlikeOne +Nyx296 +H501 +R1ghtupth3r3 +onespringday +G Ape +Farmertree +LikeABrother +Tiny Bagel +Fy12e +WolfLucifer +The Hobo +Yoyo502 +IronBurnsRed +Roastedsteak +Balneum Anas +XV73J +Syck Memes +Losel +Dream-layer +illuminavi +MeideC94_BB +CRlTIC +SirSwaggzz +Veddunreal +Iron Vexzed +Kleiades +SupDutch +Jxcx +Legosas11 +matthew6500 +Core OS +BWheatZ +madman456789 +Baked_Beagle +Gumiibear +Alno +FO-LAZY +Vaandah +Gaarden +Kosmckid +BigPapaDank +Omw +GfRsIGotAGf +Slaydo +Tink +Volgos +sticky holes +Unit +Dakotas +WillG +Varsii +Youxi37 +Phai +NEWFISHMATE +D1ZZY +LsummerC +iHenry +FoodEmperor +Blouch +POGPOGPOG +osgp +FD3S_RX7 +Lightaxo +Hens +Juffo +CumOnGuys +Brinsgr +Bigballsac +M I Z Z O U +Splash-8 +HT Hero King +R0bbby +Sain +NakedTwister +LMFAOIRL +Teegious +RainbowBeast +Medicides +Overcame +M4D388 +matzRRR +trojan break +Lme +ROLLinPEACE +MarlonisGod +MarthProMonk +Gayim +Theoatrix +Jeemis +Trained Fish +SensualSnail +0ggyy +Budzliteyear +Bigripper420 +JayPortal +Latitude +LLol +Pheasant +M40A +Devilbong420 +Ayzo +Positivar +Arcnan +QnBumbleBee +james68889 +kitashan +Feebee +Sentrosi +Jeffro +2m3 +mountcaedo +Haighy +honeywheat +beatthebot +Dennyispro +Remillia +Dani007 +Toxic017 +BerryInBooty +LetBrettBang +Onehidefrog +WH1TECHAP3L +SmokingFlax +burnindank +GATECRASH +CokeShoveler +monkieturd +Raresocks +Mellow6 +Gawkss +SuaNorte +Sainola +Susurrous +Jeffie381 +st4k3l0rd +alphabosss +ChiliTurd +ibr4him +kingblackops +SundyWundy +Heckstrm +Egoistic +Xuxy97 +HelemaalMooi +Big Mike +ForzaGTx +OtherJackets +MrJohnnyx +Muttadale +JDT +Nattraps +moneypants +Tacklebox +Atomyze +Dkzz +Sophlex +Illumee +SomeDirtyOar +DangerBear +Arxanec +Yeoubi +Nakuz +ZeOblitz +Susilapsi +rbootsGOD +afkdontattac +V4V +godsmack69 +Badgalriri +Numismatist +Kidalien +Lelott +Cersey +Zedek +xbw +Kharos +PkGoW +Mr_Kadir007 +osrstimex +JKuyaa +Refleksi +Traumahh +Weebmurderer +kica7 +thematrixgg +PutItInDeeep +Rle +Pihl +Eurovizija +TwistsedT +Giddy Cowboy +Iuxio +Osgub +Ylulawo +IGN0RANCE +Eldrek +Slidz +Scarfade +OSRSQuests +StembaWalker +InsaneBobbie +Nakkimauno +Marsmash +Kooch50 +MemoryCard +Whiskerfish +ltsYourBoi +S1SU +Tohveli +024elyograG +Plsmrlizard +AndroidFox +Aprella +TheIsamaru +Solaryohm +kkangaroo +0600 +NaviRio +fp4bank +RepresentRS +Swordman1173 +marrciee +DlPLO +DieAntwoord +Nahkamestari +FourZone3 +90tegguy +Absorpt +Smoke2Fly +A Lava Lamp +flowerbunz +Bluternite +Gamerplaya7 +Chinolc +Mistify +UltraJack +JimAdler +Jen0va +Object62 +only4pvm +LietuvosOSRS +Jorlund +OhhTiS +B-Lal +killconey84 +Cupthebooty +Vinopenkki +Cambeezy +munoz316 +Madam305 +crep +G0LDIE +Kimano +SalsaMurango +GuntherNese +iDontWinSad +SkoomaPls +JayDaddy313 +Cruixiote +Kalashnikova +Trap_Capo +dayoh +IronMountain +Goatmelk +DennisWilbur +JubbaTheHut +Intensifyyy +ThreeOneNine +Mary j4n3 +Artesna +Khaant +Mirek +Drswole +BibleTrump +Thejessman1 +Bosw8er +Eadles +roldan_one +Shady78 +2MinNoodles +Rellnquish +c04 +xDuckyV +gamesdogshit +Aflamed +Iceyou90 +ApartAbyss +Hazla +Brodie827 +SakooR +Bullseye414 +Hellodummy +Reloox +7amowdahli +Slurpez +Reverenciar +Jubilations +Jo0l +zyeetz +Plumper +Radia7ion +void-e-d +DopplerDank +Moordaap3 +Meowmagic +Grazzak +Jglove +Gammel Mand +Larsjns +Clynelish +matis6080 +Daniels +Buckner20 +WeenieHut +Thueh +Kaliumoxide +youngwings +Strauss +Marblez +TheAllSorts +Lukiss +GoatOfWar +KeltonThaGod +Kelen +GanjaGhandhi +Garnet Gust +Dareya2 +swagscape666 +San0 +CH3CKMYSW4G +slayer92 +arvothepure +MrCian +topgun 17 +Therens1 +JDlion +Gnarlysurfer +QYC +Praisemyrng +noahcous +McDouble +Beaukaki +Reel_Arphios +TSMsOAZ +D3v1lBoy +KapeVing +saltycups +UrJustXpToMe +Germaan +Mappl1n +Tomsdk +Drip To Hard +Brak +Chub n Tuck +Bhangre +PeeJayPlayz +djhonnyc22 +hOsujaRS +Fuzzy1918 +MOOSEM3AT +Zyer +Qxevym1 +Emilharen +LtCastiel +ElroyFTW +Sole226 +Cheetas +Flash3200 +99Juuling +TheTruthOnly +MyLastGo +KingstoAces +Z1pn_xD +DirectDsLcul +Kegern +Akimbo Gmaul +Cyclone2498 +Cellectric +Dystopias +WipeRZ +Kilamanjaro +WillfulNomad +Vbiqve +Finklestein +MrNikeKush +superbuds +Tenderrrrr +Chilaxinman +YouWontScare +K1ller5169 +Skorned +Sighlent +Flakkas +FlatEarth361 +Missvmk +OneFunkies +Gog +BazzleB +Actt +Botsii +bambii69 +FrodoRS +Sorado6 +PapaJoyce13 +ComradSergey +DrogeBanane +Funpeople5 +Hyttynen +Tombea07 +1powerhydra +Ra1d +Mickeyr4nge +Quaerd +742617OOOO27 +Acuila +Waydens +PaintBoxx +duffman1992 +Wizzti +Iron Rikyu +ShySphincter +UndeadElk333 +3aboobs +Foumy6 +Baldorr +pogglewogger +r4cky +TyrannicaI +Jlova +Tsuchan311 +Hugh Jazzhol +AverageDink +Ronch +GeneralLudd +Gtotgt +Vorare +EnigmaWR +Shadsnp2017 +NWHL +KikRox420 +rossdark1234 +SaltedCorona +Edgykid +Pureanger728 +Niahl +Yarne +AaaBiiCee +Iron Zul Mox +Cheffrey +Merces +Seved223 +RoyyyAfca +Teksti-TV666 +BurnhamAll12 +FlatAssPlank +Udingus +OhNo +crenux1st +Kaze8HerOut +TwistedBr0 +InhumanBTW +BeetchAustin +DontDieSans +Challandria +hey im ben +fkn seale +Jovilius +Xutera +RubsSandwich +Gnarnold +Outbid +Aloittelija +Hadeees +Aretx +Yst +Rikalero +Pwnslayibex +Shev64 +Stackin Dosh +Mazzacre +KEKLERO +Shadow Flare +Half Volley +Zackly +Camion +Rick420blaze +Devinchi +Swordmast756 +Chesscape420 +Quantuh +Westleafer +iKitz +Sylist +oGreene +IcedScrabble +Killerdog HC +Bekutma +Iron_Slippy +Rongrongie +Agnar472 +Sleeep +pieater_314 +Haffamilleon +Totaldumm +pokemonsunim +Pennywise070 +TheDeadMann +Demon Plate +YuugeJohnson +TrikyCutworm +abis +Enginerd07 +Mordenumero2 +kurdikana +Five +6dr3w9 +komari_k +Sukoru_VIII +Ziincor +Ydrasil +Eulogise +Celikanen +Acidylia +Sqe3zy +Tisalia +stoned84 +M0RGE +Iron Ghosgar +Ottzor +IronKyloman +HazDownz +AgentRetard +Pqm +MajorOwnz +Seta +Atoz +GuthixIsBae +Posemann +Livepan +GodSlayer422 +Iaminsanemax +DyslexicTree +Cycloner5 +Pothaaai +M I T H O X +Daremo +K0tleciokas +KhatrickZain +Kiruzonu +Danktrees +SpiceyBoy39 +DeGreen +C3Pz +Skaduw99 +LilDilly420 +vNicholas +Zfp +CATsmoothies +Sadass +Pazzo-Repack +Yowzer +Firenova +Warmouth +Afkillz +Acardi +Overload_inc +CasinoProblm +livil +OSSoulwars +Yamata +OG_Westside +bouwjaar1990 +road2broke +lYungPlaguel +Grayden +CCCO +Cubans +Awwtis +drug_yew +MyNAm3BubBA +Vom +Jagdpanther +Serpula +Gjonunaki +vizzN +RothesLatrin +Rustix +Hemmii +LuisFarm +Sbraga +iMellek +Jublian +Twum +oooopsiee +Avinosis +holdadoor +aejfd +TOASTA +budabaii +Az PVM +YungMoistGod +Go Do One M8 +Nyam2 +Nenah +KingSizeD1CK +NipseyHpvm +Gufix +TopGunt +A15 +D7NNY +The_Zob +Loserscape +Banerz +TinderMatch +RelivinYouth +Arusas +MiTDro +Purtherapist +FlNARKY +Nidmann +MrGixxer +Kiero +9ussy +SlayEeryDay +rusvet +ooli +Guzas +IVIxtthew +Lexdegekte +Crispy Bac0n +Zanryu +Chance2Skill +Budget +atoma619 +Iamearth +SkillSlut +MikeChang +4The_Horde +KingRobStark +SEXTlNG +H2GivesUTheD +PulpFlctlon +Memeologist +captn_dabbin +Magiok +Narris69 +forkheals +GoldenEye69 +MetallikDeth +dynastyzero +Hotsbo +Shaymuz +AurelionROW +Zabini +Bunjamino +VooLis +Creator409 +Dude12677 +SirRebs +real-derin +Tatimary +Trulieve +777slayer777 +KiIIa4realz +Larryz +HecticGinger +Slayosaur +Hypn0se +MK-HARDSTYLE +FMLshes17 +ohioisonfire +pulpfree +vkv +7AYL0R +Glukoosi +Bringtheheat +Slides +mrwoffy2 +Bear Savage +Vlada +Varulven +Mateusz1210 +STRlDERMAN +emvelienenko +Zuzas23 +Niawag +Teckie16 +Garbagexd +imbutz +Dylann070 +Opatsuno +Schiller1994 +Obanana +flax somker +Self +CBas +Ocachobee +Tommmo +MikazuAugus +LordCoffee2k +Moorleey +Aussome +VoHiYo_Nami +DhRecka +Judybats +cyxxa +goodlife +JerryMina +Oi +RustySimon +IlINard0IlI +allzeras +MrRidder +l-l-L_l-lL_l +forrestriley +McDizzle15 +Laogai +DarkEmerald +kidsteve18 +death0183 +Jcourt1 +Zathul +Ezwa +Leetroopa +Your Amity +familypp22 +Snekkerboden +J0seph +proud2bbalin +Hallonkram +Flare Grylls +Tealer +Virunypel +Lifes12Rules +b4Mb00B0NGG0 +DayOff2JOff +L1ncoln +Xantiasto +The_Dunster +wjsn +xZuk +Tomtom032 +HolaBurrito +double99 +Ketnet +thotortiana +Benstjohn +LeeGavGav +3dderino +Ripsin +Migou +00 LemonHaze +Tyberium +AIixs +RogretheOger +clubsammich +Kanagawa +Nupayne +Springii +HankTheTank2 +Beast +CapnMeliodas +Rai_3 +Rullmane +a_SaladKing +Hexenkonig +Myams +Danletics +Exiriam +steckubnU +Plot786 +Holyfuk +Multrix +Putyte1 +FullerACL +Tacotueaday +Cathuntdog +GetWreckdSon +cursed_angeI +ironikcronik +slayerfrog57 +Grod15 +Fawz +OSRSZ3US +Rejey8 +Jerayou +fatalzick92 +0lb +fernibosh +mehloncoly +twiztid5000 +WitlessFox +onex +Steanox +Heee +zmakisan +Petriq +Streepken419 +SanHolo +DrWoolyNips +50bitsnka +Altamonte +Nonc +DamSplash +osbhuda +Papukaia +Antee294 +blaze59 +marrab +OurPage +Drikon +Vall +Co_do_blyat +Meur +justinttu +px yra +PSRB +YelllowFlash +Zarkoz +Lizinginis +Sachets +Rifen +AJ_24 +McSomf +Avex +Mycreation1 +Threno +Mickyy +Cahors +Anq +UKnowItsB +Rawr +BestSenpai +Nightsharp +PattMyGun +Stigiam +gIassy +KareemPie1 +Samzor +Straubrey +YoIronManBtw +WigWacker +DimJangle +elliott1650 +J S 2 M +oOoITITIoOo +half +touhutimppa +Fridelis +Anidien +bragegutten +Boost736 +MIX0R +seriouslee98 +Klaskdeng +Qrwewa +xDab of Iron +Linerz +IronIsNoJoke +joohhhnnn +Thedriesj11 +Tramfix +Angel5 +Iron Tonski +AlpacaMyBags +Melcoor +jokerpoker +Spin911 +GypsyAvenger +real boyo +Sackofeyes +Ramathorn +Jacy59 +Asymmetry +Ianyaboii +Vanss +BaalZvuv +Ichi +StarKist +Tinfoilhat +notepad14 +Gigabit +Iniys +G1adiador +Caniz +Nosorow +LoboStark1 +Mer Train +DumbMatt +Suhado +Rofie +firework19 +DontHoldBack +MissingRNG +Fenomeno11 +Arid +Sephiore +Chrisob +Pseudo +Seffer Kover +John Muir +StyxHatred +Jirou Kyouka +Kazuuhiro +FramedJunior +Mikeey +Siimse +lazyhitman +AboveHonor +DrBigSang +flatbroke +Juktes +CL3O +ThePardos +HydroBlast +Spektur +ZeroDignity +Sneak Dissin +chickenbyrd +Wolf_Hunter +ImSane +Yewp +Hock Baws +ligma2 +apou +Chip Black +Tejmaster +Purka11 +RecentKill +Reliinqish +Ninetales4 +Saus +Seracid +WizardSleeve +holypalo +GodDmntNappa +Lavvv +1802M +Stagmuss +dibdibdibdib +Rayjin_Storm +CallMeKeen +Muchly +Yuiku +Jepuzeka +Paznos6 +1085 +magesticx +Lyngo +PzzaPredator +Felamar +bo3rke +Emnitylol +IUntradeable +Ironstone +Boothanqq +Bedeh +PotBurner420 +itsmewarreng +Aerzo +Zirvzaa +Gvjordan +NitroCrate +Afrojofe +HexMage +Dangeruss +SektorQ +NopePope +Lifal +QuietStorm44 +ShinMalphur +Zaixii +Xarious +Novaqueen +Rez +RlPMYMANX +CRY0GENIC +gypzys +Ferrggette +xComposure +Fritz +Dankdank96 +QPness +MasterNeigh +MiceMan +Khoosh +MuasBtw +BO0MERSO0NER +Chronepsis +bearjack +Bones2Peach +Blastrune995 +JokuHeppu +Ironpasta1 +clancy272 +Kevthebos +QN +Jaddok +HahaYes +iain19 +Nasuuu +TaintSaint69 +Fallendude55 +Jack1 +1520sedgwick +Arturis +Gerrmz +CmarBeast +FazeSkilling +ChickeNOG +Soraaxle +JuryRigging +rekkerboi420 +Daquicker +Claymor +Bookless +Rusticus +ThievingL +Toonic +Samubidladin +ASSEATHER69 +Verdux +TortugaBooga +Meelays +BADDONE +Slaughta +ilegalTruble +Pook +Kodai +Ramsas +RangeGawd +WARLOCKTIN +Kaunopihlaja +Drone347 +Fourlifee +3Miller3 +NansBeaver +Deny92345 +Heartlock +TDX +Jstnn +Bizness +Caprius +skuccy +xReckless +LvlUpUrself +Dogsume +Xgz +ferkyy +Tubmasta95 +NachuiTuda +TOMMonyzzz +IIlIIoIIlII +Nostalgimon +OGLman416 +ArenaRebuild +335K +ThruDaStorm +smithdarts +Killed145 +GeneKapp +Noon +SoldMyRNG +Deon +Lblacc +Nebbo +Karim4lol +ItsAllOgreM8 +Gloop +FilthyOreo +Invisioners +Dragonboy691 +TheLewhole +Melee_Range +0mfgcows +Slayhades383 +libertador +Mouteo +LetsRouQ +Alchaline +2Fast2Fuego +2th7 +JustFollow +Uncaged1776 +Nethada +G0LDC0AST +WilmaCokfit +Lvl100cheese +acerkush +Sandwichfish +tony el gros +Snoopy +zenyte4money +Countwert +Bilboro +KENO_GUY69 +Xazz12 +DunDiddly69 +Joontah +Snaggapus +WeRageAsTwo +FireyDragons +coxchambers +Storys +BigBankTake +DontBotNerds +AwwSeriously +godofvoid +Naakkeri94 +GoDrinkWater +spx +Sjenkie +CXF +Mirin_Gloots +Sleeps +LENZ +Rs_ReeCe +Roidsy +FistMeTrump +22harry +KafHaYaAinSa +SYMBI0TE +NoobWrecker +Cinderhulker +Nickool4 +RanarrScape +Hilo +warestoteles +Chyna +Jaunius +Sturminator3 +Yeeska +Tamjam +Kareir +zBonesz +Hompski +Buddaball +Stnyzky +Ravency +iEuph +VOREVERAIONV +Grindcorr +Egganator1 +TheDayman +Candrok +Odssy +Ef1 +Kodywithac +Mr_Manchello +Deadness +Mitus +Pureloot21 +AreYouPepega +hellobob488 +NoDealEU +EasyRNG +KNIKERSNIFFA +Griffey +Hagenees +Qgc +MariosPeach +Oswaldorun +Empyre +Jayksie +Gargath286 +D0nte +Artz +e1ght +LumberStevo +Thrilbo +SqueegeeLord +Soctch +Termoil +r0jasss +CruelVictory +Myuk +ZerkInDaYard +Meerca +Imgrazy +Marmp +Lumiaris +Saiin +Nowuh +darkjustin54 +LoneStarWit +freeheadbutt +Socca +Odeon +aalucard +Billa +Ba1i +Oldemark +lordbong +FLOR1DA +IcarusRS +Tschinelas +Alosthawaiin +TallChair +imaybegod +00000 +Akashy +Tukeldaja +Pecki +VarockVirgin +slight7 +Katski +Naruto +TheCondemned +Kewnsauce +HiGHFLYER +Eng1and +TR75 +QueenJada +itachi9113 +DrinkPapaMlk +HungSolo45 +Hidaki +Parabolic +alvinhic +thebestgf +Acq +Charben +Diablosis +Mauler4500 +Vayda +Bloodshade +OsteoSoon +TheKolector +Steeermy +Muad_Dib +Zjv +Sean278 +NeedInternet +AuRoyce +TheOperative +skinny227419 +Baladend +keesie7 +Kratos-Arepa +NickaClassic +Chri5ty +Luccaa +Conterfeit +LostlSoul +Aestana +S3ID +Tydigidy +Kelgone +C0WK +Diskmedel +stranglege +Ozziemate +GonjaMon +Nex1s +Latero123 +m-moi +Jimb0bMaster +Sysf +Purple-Broly +Samsoniene +Drivious +ksap69 +3nps +F SONY +KS04rs1 +Fettisdagen +IronNinja13 +Huule +HazyHerb +Runepalmu +Swagslicer +Deysean +Ozcred +Raxen Light +Apop +Untameable +Decca +Servia +EatULive_666 +ImAdam +Koomorang +Horus1701 +Zmancool +Theruler333 +Aaalmost +Sallad +loginxtor +brika +samothon +IlpOG +flipdoggydog +xegaF +robilo123 +Antidope +OsBrody +pummi984 +AlwaysQuest +Leckie12 +AgileLlama +Dihl +ICNK +Sucjk +Sponch +Defloat +An old Gnome +Wodka +mychaelven +Wild Rivers +Rawest +Aviiation +Cvrkster +Codemax +Narthalion +evanthenewb +Wyan +PTKNT +Killemall +Tromal +steeveee +krioyo +Mr noli Fe +Arkysh +Amuzzzr +KlNGY +Loreland +Lillyz +vLachieAU +THCGods +FearMyTM26 +Bucito +Abrils +SpecialGuest +Arcas3 +laqsative +TangerineFly +Ganthorains +Haunter12123 +GurningPills +Neefey +Pinkyx0xo +squatlownslo +ikrr +HolyPenis +MlKE +bantrok +Mark1ta +DRD31 +Piety Prease +Psiklone +MufffinKing +Turtlebutt +Xestox +datweekaz74 +WildSF +PeetrusEst +Scare077 +Jri +Keldran +bosscat56 +ForeverLost +Kevbro9 +FortniteRox +WickedKlowns +IronGoneNorm +Flydol +wombo_zombo +OutOfBreath +ANDERDAPLUG +IronHomer +TortiIIa +Sharpeyy +Spangebob +canman794 +ByteMeM8 +TurangaNui +GetMeOut +Kuran +Carna +wikedfix +CJlivin11 +Echo4211 +Helta9 +Roffy +Inqku +jake92 +XxJIMBUSKID +Ryann737 +IronRobbo +EastSyde +assaultvests +DannyDeleto6 +Iron Ohboy +DadLeft +Bawjaws +GekkaJohn +Eggtooth1 +fortyfour44 +gewoonhendri +Antifa4figs +Lakeshire +BlackCloud +M1gos +420tarmslyng +Iskolar +CptSankara +Divinez +SpottedBass +Zoanthids +NezFix +Watson92 +SaltyPilgrim +LordGuthanPK +ArcherYew +Creator1212 +Fjolle Mate +MP17 +stoodzy +thealemdar92 +Kargas +Meatspot +J05 +GeneDenim +tthe +Oyugock +Uunijutsku +R0yksopp +swampwitchx +WhatAThot +rythail1 +Moccamuna +Munkea +WiganRS +IronSabo +BRACULA +YaOldHeffer +TheLionn +Cadov +IronOrca +Stenicki +Flyy +Kunaphela +Classickxd +Tesseria +Qurix +Oxiduck +Coshie +SaltInTheCut +HammerTime29 +Gaiy +Moppeharry +damo332 +ImQuorra +MrFlizz +cutemuppit +Kalveo +Safiir +Schneidster7 +RedRegent +GingerUnit49 +Tamadra +HandleofJD +Ajaxius +WetDreamMeme +SlumberGoose +E-S-T19XX +bigz4p +SnoWorm +Strepski +Lease0fLife +RHCP-Solo +Impurest678 +RougeThief02 +Roadbiker15 +Wutru +ETF +Awowegei +Zygy +JuostenKustu +HCgenes +steveagogoo +Juhiiis +Vloxx +PapuIsThatU +Leroyvdk +Ironred33 +Wreckon +GuruOz3 +Sfannie +420kushmanxx +Leadley +Wardle101 +Haiten +DylanFx +Codfish808 +Siamogale +ChuckDogg +Clardy2 +Tokedaddy +Murogrim +Logos13 +tatarsauce +MoIon Iabe +Tabesco +yaboyalex +Duw +Mowgli13 +Mikerockshhh +XoutofRunes +jmusilli11 +Keyori +Wurgon +Henkerddd420 +famousdavies +DeadPuto +gtrpower3 +arcvnaxiii +RiverOut +HCaturbate +Purp1eWizard +CheckTheWiki +Howson +tittyjuggler +Liutkemenas +Ryns +NoblesForRec +HidesHerEyes +Tactical-RSP +AdamBonar +Kerbeth +Humbleherb +MadDogged +BlitzedBoss +Its Me Dave +Sedap +Jakey +FR1T +FF_GhiLLi +Weyerbacher +LennyPro +Jacobro +STALlN +Drenzi +zero gd +Evytt +g o o w +siNusas +KebabWrap +Own617 +alexs99s +iPerfectoX +FugDisFugDat +fukduelarena +KingBailey +goldiepawper +Pyzdalupi +VngH +BestJester +Wsupden +Vitreous +islugo +l3W0FPI +eujamaispkei +D E F Q O N +Pirelly +ThunderBirdz +Horstel +Beavis825 +Neppe +xTransfer +McDanky42O +Nartens +OjibweJohn +coatria +Kraz3d +k9i +EelsUpInside +Baami +xDijon +AhegaoShawty +23CD +tru3 +Mystearica +Pinkberg +Respire +Theoneburger +BluSPANKSyou +Mylos +EstevamStain +Phasing +GtheSquid +Zwlr +Ch0c0tac0 +BuddahCheese +POMP3Y +56667 +USSpaceForce +Emirdagliii +Megatrax +SharpyClaw +iLuvMyMilf +SURPRlSED +Kalavothe +Judlmin +Mental4Metal +Haxoonie +Eusheen +ggwpezgame +Specz +Sxstyl +clac +Kenny6397 +HopeSmolDicc +troutking96 +WyvernSlayer +Crimewave +Hrm +Agni +RlFK +SuNnY_AuStiN +bobby45153 +Funkiboy2 +Canserber0 +madnijz +Hoyah +Dopatopia +Humanist +pvmrob +Benzema1 +Acko +DaDude +JACK3DJOHNNY +Hope4TheBest +DonWonTon420 +maon +HeavensStorm +JoMoe +alecbeats +MrManny +Goph +TCHAMl +Jom +NicholasRage +IVICMXCIII +MRGAMEZ +weppend +Lohan +KG8 +Nels0N +Havottaja +KerfDaddy +Fireweed1111 +zarehp +Loli-Remain +TarzanNinja +Charloi +Shakuuuur +Kralik +Teqq +HecklerNKoch +Denizenn +Catflap +to_o +Coldvepz +Malteadita +LifeIsRockie +Delic +LoneCorp +Saryit +Elqnaattori +QlKNQFRDNUQF +qiyamah +Kinkybuns +Railee +ROCKYY +MyRifleMyGun +BigEar +Bongsnboobs +nVox +TKfromNC +Drawll +MrObliverate +NaiiSha +ht9 +Leftytexan +videogamer +Jr Metro +Detrimental +efren189 +Wesley +5H4NKS +TristV1 +Frost_PvM +Du5tin 3 +Skywalkingyo +JMack +HatiFnattt +Atonic +Chiefss +Daenrys +ITIassacre +Furu +Clambam +sissijuustox +Some mad dog +NFV +Seande4 +B0GLA +Sclass707 +ImaCraftHor +Falconf1 +Pixkekoa +vork4sh +insaned17 +Webdow +Hoggormen +Aventy +LusyTheGoat +ironwortel +Ghostlyowns +GNULinux +YouGotSeabed +Wingless +TheAssailant +Cantu +EmmaEmma +Radsurlak +ChugMyPPot +KushWizdom +Dankstanky +Dimples +SmallBrained +Chikinbone +Ricanmonkey +fwft07 +Gorg +SicSolaFide +oBugz +PwnTommy +hoangbach456 +TreeNut11 +Sikauss +i Stugbert i +Soulplay Gee +RagucciRafa +Frei +Starrlightss +LegendSuz +Morelos +Dragoonalfa +DaftDemon +Keydiss +Nesuvarzytas +Huevote +anoldfatdude +Eskeleto9 +Iron_Sukulo +Permuh +horkkaaja18 +lIIIlIlIIII +DomYouAll +bIrkaoff +swaggb0y0wnz +Freya +Green Guru42 +4D Entity +Stiltz +Manardog +iamgreatrng +Zachawy +Tjbakel +Mindlet +Cwab +diguper +Varixed +Drewfuss32 +LazyDevon +Zeedith +RCM +GBJackieWang +kdw27 +MR UDZ +Wizfujin +ProxDemSox +Hallucin8d +Muki +DeadDogRed +Zer0mancer +Kakoji +RBNY +AetherEra +DaddyLemming +PALAK1KO +datboi2456 +drillbit_10 +ohia +Solo Sirva +Edsy +Z0ops +Fapricorn +Plunkton +Painovoima +ItsFlooo +00000z1 +Iron Meydon +Bonkers517 +Zarliona +Multiplying +Hagedis +ilapaR +mcrane1202 +Hunter10139 +Nyler +Flipzzzup +Solo Xenopus +MilkyGalaxy +rockhead7746 +Yentelke1998 +CJoaboneP +Fasterman +Norton_Gman +VorGole +Ox310 +novali1 +Bur eye on +Elf King Leg +RawRyan +Dbeatz +Mankitten +tobinoo +SneekyBeeky +Soft Dump +Wwx +n3u +Takfil +dmh3464 +Jay024 +Nex Is My X +Matthewwww +IEATEDYU +MarkBuns +Diclo Force +InfamousEvil +CameronNeal +obican +Ironkaka +Nssc +Secretly_Bad +BionicKing +Saskel +MsHitDatDANK +XeNeaxaxa +hexergeralt +Beeline +Spria +Fawka516 +MysticStrega +Tjabalabaaa +CalmCombo +Mousenn +Absolutism +DriftVolvo +FatClock +IPumpkin +ViisYsiKuus +Xanthophylle +paulmacawk +blue cat69 +Gardenia +IRowForUCD +Varsa +3erzerk +Wolvesy +RunescepxDD +ManzGotViewz +Smurfukas +Kapiaine69 +Bondz +Kizza +Mygraine +TheWrongName +D2nzo +homie jaquan +Commiefornia +Zackology +WeAreMoksi +Psy13m +Mr_Schmeckle +2cbrein +KaiXin +Day Lightz +T7I +Suedezor +Baals +Mcdally +Haavard +ratboysteve +7rad3 +Gunwil +GebwellB +Jelbringer +Mrslipkn0t +Quonloo +pizzerr +Cappei +Inefishient +Neonke +Huswan +Protege +NieveIrwin +Sack_Lunch +Skopusnik +Mougi +RoyalPurps +RyanKristoph +chent +Jyppedi1992 +JSplash +Stranger56 +Obsel +I3rucex +M30z +Goriox +MolllyPop +Strabz +fsteve +gotzeeben +Kukepeenos +3bobyshmurda +Zaraffa +thatthicksix +Toysalami +MknlC +C18H27NO3 +nappera +Puggzy +Hutros +Draconian111 +DontSassMe1 +Muskets +Hoooka +Drecy +ImbuedFart +wtfix +Neroxcen +Frostmourne +dopeyaf +Wood Choppin +sashamii +Flaskepost +2ual +xSynn +CesarPalace +IPunchKids +FillyFilly12 +Matrixpachi +Warmantus +Kool Iron +Mackadee +Tilur +car oussel +Schout +TrodOnLego +Whatz Trade +iPunchCones +Venereology +PFalciparum +ohh_man200 +Mectofion +En Jernmand +Iron Nellz +PeatMoss +ProdigyThief +Maela +ShellBeRight +FeManlett +Giskardr +Flamaha +KnusCaboose +Charlez +Rolann +Fe Hellpuppy +Fearengineer +Ruto +Jefry +Edga64 +Datis +Wissfx1 +markypoo +Dagger93 +ClexOrie +IronJamesG +Dton +CowChum +VVanderer +Carnadova +ItIsWedsDude +Quacamole +HC Diego +GanjaRhino +Thrustaxe1 +Nex2169 +Harvardista +Stapper6 +HephaestusRS +Fenix Downs +BenderBuilda +WolframOxide +Jordnn +Kyloman +chatandinan +mellaa98 +Fe Pyles XV +Pnia +asdsdafsa +DayJarVu +Oifey +Ragnarok96 +Tuvisitt +noskilljoe +WannaBeE-tje +CowzGoMoopy +Ninevolz2 +smushman +AshenSughar +kryptocookie +Inimene1020 +Ginyuu +NEEDAMETHYST +Autilon +FeedMePlants +Palt +nikler +Viturbio +Karmaa +LuckyKroketa +Alternatee +iManiac +BARRAGENOW +Jokar +Bearsfan5455 +P1zzaTheHutt +bloodtheatre +Lysandra +JamesJ2019 +Tabagie +Rockrets +KnightMike +TormentingU +EDGV1L +Venom00 +6T9sofine +3-age +2Guys1Wyvern +2ndpanz +chillscape99 +TakeUhSeat +runedongs783 +Wxyz +Slypes +soggywaffel9 +DuTson +TheBigZofNYC +Doll +Faultty +AL2 +AngryMvP +BBlumpkin +Joltism +IIflemishII +Tbh +iTunder +Reemov3d +Klengie +Dudeimblazez +Inedibles +orangetree34 +Panera +Liberate +Kangst3r +Alegrete +0416347345 +MasterThresh +SmiteForAgs +Drakonid +FallenSlayer +Sxves +wwTakun +itsaart +outsourced +Rzasa +Huhm0ng +Pyro420Kush +Cooj +Dank Bud God +Zeekheart +SureDeth +Kindaddy +Offers +justwin4head +Morch +frostkatss +149122089147 +GeertWillows +Jecob +Toivo_43 +WhaleeWatch +Noxia +1183kenny +ljjjt +FrankiesAlt +Transfer +Xoobs +XinXani +Jmies +DoodleCraver +SuckleMyToe +Volkrah +Moysey +Bohejmen +Macre demia +AshLad94 +Ellise29 +Canta +BUTTSNIFFFER +Checkmate +smrgn +Pisatronas +William2133 +Jamyroo531 +Fanatiker +Nadund +iPete +Irid +YakYak +kkDV +mims2dank4me +Popkorni +Qualities +gran chorizo +Delusionnn +trytohuntme +PoolboyFiji +PEEKYNUMBER1 +Noodle Soups +Plexasaurus +RabbitsDong +Alemao +AmyMacdonald +Sabu549 +Akusti +TFreeze +MrNoBank +BubblesGO +Marmita99 +Kochelas +Ibanezx88 +Nakke176 +Sabbatix +DannyK +5parrow +PaskaneHomo +EddieMercury +Slasher0708 +Cornish +Figmentx +Sir NichoIas +mudbitedlite +Yenom +Frostbiter +Heeling +DieselPump +IIPrincesaII +GeneralJosh +Bahn +Paul90333 +Teotl +sharto86 +WaaduuuHek +Llirik +Zeplin1 +Hankzilla +IVIaybe +TopsyTurve +zedzke +kokimon +Wahido11 +Cruzty +Gabriel61198 +Xendel +2danny1 +Zmanonthego +whiskey bow +AlchedMyLife +MichaelB +Dosk +Znked +AkumaPenguin +Dizho +Vaealin +PWNJoLee +Wingoficarus +Can Berry +MindfulGnome +Jante +Taplop +l0H3aV3nLy0l +Fredanbetty +shoot162 +Darzix +Tice300 +Kasraa +simmeg +ixJake +LavendrGoons +Dynloris +Ninorc +Jibajaba +F1skemann +1nsane str5 +turboed son +cookieman +Azuuure +levendi +Ussin +Karkanii +Octavia +Aguanator +Puylayer +Zle +TheDaedalus +MlL +xBlackDahlia +od1np1ck +Examon +Beckyboo308 +Durumoomoo +Plaininsane +InfernalPRO +Nabroleon +Larkypoo +Sonc +Doboner +Arhedel +Wyliecoyote2 +LavaKitty +Killaowns +DeepInUrMum +Toycutter +Luper +Garbar6 +Stenfen +xRemyLacroix +Charlieb9 +Tom Fn Brady +ziyi_wangler +ASpacejunky +Robbbana +AgiNagii +Stedy +DuYorick +ravioliwren +Its_A45c +Sukotto-Sama +RagingReddit +HotAsianCuti +xGigz +BonnieTHICCC +fatpapi +Ideekay +Paliperidone +TBoyd4138 +OneFive +kejo +NorCalGreens +ButtChugging +loveT0spooge +ddSyndrome +Kebintotero +Slazery +Aelos +AutismIsAGft +Cacoadragon +GodKingJT +Champiion +Iron MTUT +PossumPally +Jetsmoke +Falladis +iAIex +Skelethon +DlAMONDS +SerenShadows +krikenator +OdensWinterG +IneedPVM +JulieFromHR +SkyFlyPie +Gooda4 +Emus +Akolyta +Doc_Hershey +DevilOfheavn +Runester9999 +Butzaf06 +Sylph Rings +shantyklawsh +Gekolian +Midday +GIBBO96 +Froomey +SilenceSC2 +Runboof +Fluffy chair +Cyclopedia +Sirtippy23 +Lombachs +HitOnRun +alittlepig +skorthen +Sakkyun +Imbune +Taberknackle +samwise1133 +pl3d +NotShaneska +Kodax +Xbalan +P3RLICH +April 8 1997 +Ljudmila +Blakeeeeee +PackingCope +Neye +Nhimzo +7x8 +Kelso523 +Hamsterslayr +A WILDR0NNY +Mojojojo171 +Cotched +nfb +urondelekk +Coolmanafo +Bulldawg1289 +Spookyou +Sir_massmo +BeanozZ +Jygers +Eleandil +ARTIZN +actlater +Silvado +Bow2ThyQueen +Lucky Lukey +IAmADick +Desinger +Veritasium +Fewest +IronMatty +hcgoldslaye +nitsuj315 +AMRSY +Fareham +ZamPeZu +Revolving +AgileRj +TmSmT +Spudge +Chinanumber1 +Carsillas +Chocoblow +IvanMullet +ccvtw +BustyBabe420 +IamRichPutin +Parciparla +Jaooa +upwindnofear +Sillyibexe +FarAke +Kattnis +CandyKing420 +Ckale +Poyig +stupidcape +Zgrite +Ttffdd +g1n00tj3 +LilHorny +FaladorabIe +FerrousWolfe +Dreddshott +IHQueenI +Ciszak1996 +Gwellz +G6Wizard +Nwkz +Starryfina +OneManTeam +Roanen97 +Tommy2Tick +Eukaryote +Ashlyce +Monnual +Froloox +Yodati +Catdog1280 +Lunizzzz +Savage Mind +ossaciM +Died4Hides +LoneMage +Baliboosca +FeDestroyed +acceleratism +ShrimpStick +IGoogledIt +Big Grorb +CaptainCox +Bakkis +JoseLargeD +Cuppalimmy +Gibboh +RubyLvledUp +TheDawg +DankDylShpil +Dxscoveries +Iron2Pickaxe +Xeldin +Iron Scolew +LilUziBlyat +OPIronman +dommegekke1 +100Cl +Acenr +Prelash +WorldsGr8est +Tyepo +TwistedxAura +JoeyDabs +MrGaalis +immef +AlphaFeeb +PlsAName +FN2187 +Ershayzz +MystiCool +Dolphinl1ck +win we must +InCyson +N0blelegend +Metzz +Arlorict +JBux +IronFefe +reflexlols +RDJ94 +porkchop-kun +Hocpuck +xXJoshUKXxHD +br0wnardRS +Onbekende +spoonyg +MeesKees +FMarshalBill +OnePlus6Btw +3PL +StoneMidget +Whitefire68 +DeltaPapa +Bairac +Zegetable +deathax10 +An Iron Butt +Zeroswift +TomHilRigour +Speedy9921 +Dongsalad +jewjoking +HavocRavage +Dailiana +Tranziztance +oatenz +Randy Rolex +Player35254 +IronLegend +ReeferKeefer +MrOctapus +AutismeKnaap +TrippyReefer +schetts +Dogzie +Bunceylad +mr10inches +BATH0RY +ironinfinite +visualduck +zohcysp +Iris_1904 +ALevel115 +Bazukashrimp +Liitokissa +Plebiside +Kharn +MangeMeister +Art Dayne +Bleasi +Tralan +kinobi +GladePlugIns +KillaSilence +Patta1 +ccc kyle BTW +Laglet +iMartin11 +Strikingvipr +PickleKez +AngelicVixen +Schuck +Live4thefigh +RUlS +UIM Pepper +NewBoy4321 +IronRassi +Curry Storm +hiunknown +18cast1935 +Verelya +Ajinz +Gundrak +Shiranaii +Lynxes +agic +Quessswho +Joeyjoe600 +SeriousLip +IronClarkey +brewi +cMehuu +Try2IronMan +OSRASS +hopOFFbish +Trivi Beast +LJP +Navraj +Polkapolkka +MattSeal7 +Dadi415 +CurlyTwist +Deadarrow99 +Lotu15 +TimSkilling +Randomized +Efnie +Dafo322 +Jimosine +Megalo +Halfway +Hesienberg +Eliptats +Kgm +Tainoo1 +snowysonic +humpmedumpty +deadcentred +Pajita +alsobosspros +Runeiro +iEvergarden +Phobias +Dragneel +iUberz +Yeeetscape +2TH3MAX +bungaku +KindaDerpy +Stixc +GenoJuice +Gunnolvur +BabyJIREN +Naoka +MaxSAVAGERY +Ag0b +dharokjonsin +Grimms Baane +R0bain +KenKaniffCT +resU +visuna +krillzscape +BurnzWhnIPvp +gonarusinat +ImIntense +Wendyy +Traxxed +Geoffry +Dmoe +KaIOKENRAGE +graftosh +Sudan7a7 +UncleDaddiii +Dikken +Salmon +Linnara +Enginaer +Yerkinoff +Jorster +Purkkatukka +ZaPhiRoxD +Jordz_King +Jobbyqq +Alohas +Opts +STZY +themrgiggles +sickGeneral +WyldeKirito +ShinyNoctowl +HGCduke +Sparkles +24c +KRonHusker +De_lemme10 +DJMuscleBram +LostSauce +MrIWontMax +Suadela +x47 +B1G_D1ESEL +vaghairs +Meteora +FrankyyTanky +Plez +suwo +6bt +Bub Josh +Gnu +C-11 +Wessen +OnthatGrindd +EdgarKing +LostDude28 +SoulUnleash +MARLB0RO +LuckyMatch +Moonjock +YoshisStory +Spidersnot8 +oksen32 +Shaper +2InchPnisher +Deny +noek1 +Maester +R_andy13 +Raggedy Jeeb +Butthxle +rawheadshot +3Ticks +Scourging +Monumental +KARANISGAY +holden21 +AximusMax +BlZZ +CentraIka +Kisle +Confined +Havac +TheNexu +LoliChan +Invokers +Hartree +Dezi-VII +SUBAROO +TjockaBengt +Zetani +Onkelleif +PlzRnGesus +Craftsmen +D00DLES +Pebblez +Penthera +hzpascal +K-epan +Hulvatonta +PackAnother1 +DjWalkzz +Hng +Mag1c_W33d +AlfaAleksi +Seany4444 +RagingTroll +CUMBANDIT900 +sdzl +4Tune +Ludomo +RestInPce +Coolavatar1 +Coolavatar1 +Gannicusproo +redwagon9 +RoadBoat +Obsidian222 +nioem +PH1SH3DB4N +valeriaT3amo +LordOfHarems +Obscuremelon +Batzz +DannyPho +Kapsaluun +FuzzyDonkey +SupremeDanz +Kazaz +zoan +Duxt +jekkujaba +Pussy is Op +PeacandLove +Nostos +478k +Vilke +8O8O8O8O8O8O +ka6 +Sizashi +belgibeer +Persephatta +Tamber +Redael +Glennyboy +Mattitude420 +Glow +Supo +duff skill +EvilTriumphs +Cache +XxKaakkimusx +Neganeogami +ex_shadow +InnerBliss +ogogog +Rigged1 +Tewwer +RikvWesting +Teeqy +Tawa +Afu +Silicon Z +CrusH-HK +MattLeedz +HawaiiMadez +Kirbngo +MichaelScarn +Turha +Dixed +VBH +nosemar +kavinskie +pwnnya +Xflowerz1 +Toxic Emre +Mirith +Flock43 +PregnantSock +N0ID +Elyysian +Jonsamma +PencilVesta +ImTaegan +1stHCwasPKED +Slokei +ze4l +Gyanzin +R3Dtjee +FaNNtastix +Ruut +SceneGfX +Vigilamus +Oumu +zygis323 +Xaryn +Smpli +Ziggydog7 +CustomGFX +Restrial +miltryguy248 +Taelos +Ville921 +HeadHuunter +oAlsen +hub154 +Gomham +Kinjello +DevinTheDude +Riiggs +Arithe +Br5andon +bottomfeed +KarazySS4 +Mango1997 +Nusky +Forest93 +Syracusa +Psychodeathk +Pugasaur +Eostrix +Zuibbi +Dovahkiintim +ImMAdBro +oljon112 +Tijuude +Seantjl +MCKenny91 +AlexxisTexas +Hodort +Problemski +Steenkoe +Sorcerer5555 +paccerz +IronManSux +Brocepticon +puregluttony +D4nnyy +Siraxis3310 +Teff +Travish +Kcnny +Zephylius +Landyll +Rokki +Greyhunter +arookie +Mrjli +grashuis +123bear5 +neenisneen +RubenD +hikipastori +BallinBamf +Kleptic +Fkluzac +Verdantys +FlashYellow +Testate +MoonYagami +Jonnysniper +Frostyyyman +AKinkyMonkey +Korail +fighttme +Glorfsaus +MrNatee +PlatinumHerb +Yeeetist +Surkastunut +WorldWarTwo +Gnomeplay +Zyyra +albiguerra +Dot_Tea +StaIemate +outohere2k +jjpanther95 +CookiMan +AJTracey +J2ck +Rorr +Drunknhiiiii +OsBlackBolt +FreeFryBread +yung inf +EdibleSnow +Samadier +xXBlitzO +DancingForGP +Ydorog +Aksu596 +namelessRS +AQ COCUGU +iBallr +TeeSchaf +sSpring +fabsku +illenials +Explosia +nutes +Bugazzi +Realpk2004 +BlueRanger +JensenRS +Lampyy +Avsendesora +jodilynne +Composing +DylanWad +Satchmoi +Solo2424 +Klementtii +scidder123 +Skertt +Mercules +evidencez +iGotDds +oddfinn +iiGallardoo +Zamzico +Goinvokeman +Fixions +RobDirkson +Kalash556 +Mancino +PoloG +RavingElf +YaBoiSlip +Bower +Chickenneth +Capos +DeEgis +ToTheRanch +RiderOfRohan +Mooner +Kenpo +OhDannyBoii +x_Goddess_xz +GoPlayOutsid +SonneTeufel +SilverTeej +Kolade123 +ChinaInBox17 +AshBash +Uit +Gameboyjr +ironkendall +Kelvin2GWW +IronMarty +Jim38iron +pletsjer +DogmanJones +LearnCatMeow +PhantomVS +Boyyo +Supersam142 +FireGiant +Dohace +Ryokojin +Pain deliver +ap1ska +Enabled +0neski +phonon +Kicker +Gimlocke +SCOTUS John +Ysh +rob nagle +Iron Kngs +U N X +oORagnarOo +Gremoir +soggybread4u +The_Jimmy +Trizak +Xwoprl +turn the 6 +cby +Garena +Piripaque +Scratchzilla +bota2 +Hot_Farmer99 +GFHL +Bendak +zacharial +MikeM +msimmo93 +PepeHang +sppoh +akipf +Memeshake +Trenl +wrsrule +Grimwold2 +Plece +EIf +Bottrill +7scaryfire +Gomut +YYose +turntBurrito +Fe KabooM +Cyroenix +virtualsucks +Warstroy +Mugen +TzTok-Ladz +J0UF +Jorsne +dubdubbronco +Laneeta +Munire +ZeroZero +Woodson +NamesAreMeh +myexdidntrs +FrunktheHunk +YoungThugga +Zikry +DW24 +Sutho15 +hammu666 +VoodooCells +Vereco +Wharncliffe +GarbageEater +Toastie +Im relapsing +Riickkert +Menza +samuraigod13 +Jennacydal +dessverre +Elshi +Namelus +loliconflict +SpreadButter +ls32o0 +Zairin +MahSeed +Dragnipurake +Totaled3 +2girlz1jbird +Rx-ll +21SavageX2C +Sinasappel +KidSativa +WINNINGrng +Dorse +Keloo +RipRoidie +UnkindledTwo +Trim +PrivateSmorc +Adhurim +HB0 +Irithe +SH1TGAME +Suing +HEAVYWORK +AoooA +XORB +Pu-94 +Raptz +BlueLegendzz +Qnon +Arthesus +Morqan +GlZ +Altifueled +Anthiex +Starwulf +ganjah lord +dasor012 +pixelpeat +kakes +Imperdoavel +pro90 +liltunechi +AVOCAD0O00OO +Apexist +VORKl +tpe +FattyTerps +Phyronex +IFernedYou +Worland +Spoka +frothsy +Remix +closeline194 +Distard +Azzz +BlueRose91 +Lyna +Contendedd +MilkToast +nigriV +z0nk +delboy1964 +Misty12 +Robpar6 +c73 +TheBong2 +Marlin1993 +HaveAGood1 +Geskar +8ass +Drazart5 +NITR00 +Crr +SeemsFair +Mythicat +Metaling +Kippenbro +Thorvesta +Absynthial +DanMaxd +Me3lem +Batesanator +Xaussiemaulx +drwilly92 +elDiablo666 +ValheraUK +Pyrl +handi9900 +asdasdasdf1 +Patronique +Dahrmata +Xick +Blindblinker +Kokkugoburin +Austyn +Wee Seapy +Abortuary +TWITTERSUPP +BaronConey +Jimpertje +Amazarashi +cookiekill +Xenses +Blimpysaur +wildcheery77 +Purescarybuu +Hubli +ValgeHunt07 +UrScr3wed +PutMeInCo4ch +Mikethafarm +xVoidRange +eLqTLN +TheRealBew +ard lad 06 +Pvm M0lz2 +Gurilovich +Pepclub101 +KittyMeow83 +Veersnof +Raicun +WingsXIcarus +WhiteProdigy +DanAye +starshoppinn +FunkyBoy4444 +DawnfaIl +Ragnariukas +Froemelke +Shozen +xSlysoft +VengeanceTR +Anabolic h1t +Deathscyt56 +REKTmlg99op +Tyom +Tokkie01 +vaderex-1 +Trippinsac +Tmoe123 +GlRLS +Muutz +Tonester03 +Impedance +Fadge7 +Ez4u2say +CaraDuraMC +wutzgood +SaYeon +stephvn +LachysMain +Lare240 +Rilah1212 +TimeZebra +Janikowski +Paarty +Swords +llIIIlIIIlII +Larso +OJ AVENGER +Tomtastrophe +Erectus Croc +Intresenting +Roozom +Vims +Zhava +Juint +iOwnU4ss +fishnforfun +KonaTheGent +kurtebener +NickTSMITW +Sby +dmolishall +Jerak +dabtchel +Changes +Gregsdabomb +Mole1 +Shelios +Mewww +1312AFCA +Wartika +Figes +Chicopee +GoblinLevel1 +EternityEndz +melborn44 +akbennyboy +Acolytes +NiceMarkMark +Killamemsta +dj_khaaaled +lzh +Muzbo +Gadwall +Almost_124 +bumpyD +L0RDGAINS +UrbanMerza +JAlDYN +Rotagilla +I R N B R U +UNEX1ST +vega591 +nostalgiaeng +Ebgame2 +KristySlays +ililliiilli +Manafont +JustinFromVA +JAYJ51 +JonHDgamer +Viiksi-Vallu +Danxdoo1 +Eckou +Docrates69 +Khayri Demon +samqwop +AR15ONA +Sevalt +GodsZombies +sir skau +SrslyTired +AssBuster21 +Skaryth +Radiohead66 +TrilogyXO +PrrMeowPrr +RalorLeetor +Zentra +TLTBT +Philosophia +Roerbakei +Dontyoudoit1 +Spleaner +Yorinky +Qc-Elfmage +43technetium +10000Fists +victoriauwu +ShellLeeBee +Lukytisz +Nemerrr +DaddysLoad +Swirly248 +Coldhound591 +Kriszx +Dranty +Zonse +Dirun +3Il +Pieck +kastekann007 +Flowiey +DonDennis94 +Kusle +jonnywormy88 +Wantsome909 +d3mot10n +Maind +J0hnnyQ +MadeInAfrica +Sandbar +DiiK +Karskeinmies +EasyWhale +Bladypus +vJordxn +DeltaCloud +Snakebite37 +Jellisme_88 +Jmaster402 +Gvzy +Lawlimon +NLFreakky +FILLME +Taekwon-Do +Jobber +MFI +DjSpicyNuts +OhHaiMark +loucks +Thugbug808 +AssCumPooPee +guyhasaname +Gothicking70 +YuriandWeed +Ne3po +TheBong +Olmlit +gege4646 +alimpweenus +Lure2G +Rodnirt +Creamp +Manttt +BatFat +llStevell +Corizz +sirpoopball5 +Mardzz +ClevelandOH +Biohazard541 +shawnn1 +Pipposan +macflag +Sarrz +Matholemeu +MyFitPal +Blakely +Abou3Fiddy +LoisGriffin1 +theMatan123 +wispykarma +kingrizzla2 +Necrosauruss +AnEpicWookie +H0RSEFIGHTER +TheCapist +Rezz79 +NickisBackyo +Moms_Spagett +Bobvill +xLynn +WayneStated +Lupah +Erikci Jr +riku230 +Darkang3lpkx +Sir Epic 3rd +Frazia +Goragtong +Suola +armyofkids +A1KMAN +iJesslag +Magc +Iron Mapes +MADRNGJACK +xH4rry +Ozaiii +Fietsen +Phoibos +Juisy +dp23wnnabe +Paduann +LilBirb +Stillmatic18 +Mand1ng0 +Boshby +Thoradin +1000 Antz +Crewcial +afkingRS +Andipyrus +GenGraardor +Valorpoint +Horozu +machurrohard +22btc +lejhobs +Green_Matcha +Sink +Nikkerpoo +Colossus 5 +Tongo +Trejoracine +Cruel Cub +Sqwarka +BellsOfWar +Kongz +CommunistMoo +RotiPrata +buldog89 +Wilnafe +Surlygrump2 +YourPaperm8 +Xolca +eetuliiniBTW +NovaDragonX +Unknownchuck +Ironicer +Topstad +SSS-Latch +Scorialator +Chapels +Purebish +xTwister +gianni025 +Goooby +DiscoFever +Darthshea +Sacck +TheFlopyTaco +Naxiius +Awilkins4231 +Zantaril +Dat2eWoord +darkclues +Jern Tarzan +brisingr vin +Martika +Brenkolovski +OkayTwilly +lopiwer +NinjaSpeed +FatKidHougie +Eazy_Peazy16 +IronBankFull +crzybrady +RiceWrangler +VividDreamss +N0B4Marri4g3 +AlCaponee +Popovich +Lost Tadpole +Baltoth +XSapocalypse +AbyssalEmu +Drgreenthumz +Knightrainy +SugaNoCoffee +LadyStorm83 +Iron Hroth +Oompy +zubor1 +EikAyZ +Airomatren +SilverRizlas +Lefonzeee +Dystxpian +ztkfps +bronzenohkie +ZodiacIsTed +8JT +Ironn_69 +Anjigami +DoctorCoc +Boagrious +ocruT +Geologistic +Warwick 1080 +2Tits +RoadSpartan +Sossumafia +WhippyMong +16le +Josh Tsutola +TehBriBri +Nuirokay +Dragonvirse +COYMauves +Mezzito +ManBearPiggy +mac_moneyy +EvanWilliams +Eclardyne +Pelaa +Crocalu +Sivior000 +Koopley +greenm4444 +Elbs +hm08 +Spoorwijk +skyffoxx +Parvovirus +RealShyGuy +B1ackJack +Secho +ralliss +A1rhook +Iron Gios +Viiiral +Kellarivelho +Gorgonsolo +Little Snor +meekmook +MrDarkBlue +Sohanisgay +XeroBlitzAce +RestoredIron +Miega +Knabbelbaars +JackoPogU +uglyandfat +SpeedPony44 +Gladeandy +Razoriginal +DaemonGunner +UpRoaRs +CrazedAfro +BledReborn +RSPup +OxideIon +Azur_I +ScuttleAway +Jerom21 +Wa Wa Master +Juheniqus +Therealhook +Thrillhousee +Iron Uakti +TheJosephe +JaayC +v-yordan0702 +Dipdadronan +Sl yx +AchillesFist +Aquatik +TranquilGod +Sohl +MoofinnMan +OffsetPaul +BOOPlNG +Spyrooooooo +D4H4EK3YSM +Twet +Hunnets +BashiraTHC +Cogstyle +Organics +Defaultbomb +Exaz +Getsu +Clouted +Shongrislomg +B0Q +Chkn +Proviro +ILLUMINATIS +Wtf_Stake +skzs912lav +Kumeku +MintWestwood +limona5 +Wagada +CYP450 +Arkavos +R8 +Tyranids +WeedDoctor +Zerrilis +Danleypa +Leimstiift +Q2B +dan +Barnz +Laopac +lnkd +zKamp +VorkathsMate +WatermelonTV +tentacion +ItsClout +Portrays +nayo123jo +Zarov +Maniek +KnarfeRS +Lion-021 +Sepper +lexicon7 +pop-tato +Prosit +hestakuken +Lewison +Autophagy +HitherDither +ggroeffus +Zfsalt +Idontlikejad +aut1st1c +BukesCarKey +shroudyroudy +Puud +jhonlee48 +Iaffan +BigRedDog +AutumnKevegy +Kappa Dog420 +jochieboy6 +Millerlite95 +McNeal +Rexun +tbaballers +Sciario +PaulD +MrOriginal25 +Laviuthen +KriegFleisch +DontTouchIt +iAUSSIE +rhiller83 +BobaNeZmogus +Resident +OuiDaddy +Jugalator +DazednConfsd +JoKerRtheGOD +Doriva +HungLow30 +BaconBlunts +camrbidge +Coan +StrokmyGroot +SlappaBogan +Tmoe +SoyJuanEuro +Brian-senpai +PGmeupe93 +0lurker0 +DrumsSpace +DanernesLys +marioswe7 +Brewdo +Captcha +DaJaVu +blueergon059 +Aleffy +Marsal +Lap0tai +Alvislt +Olios +AMST +Noxied +deetuu +Takeitilslay +ryppyreika +Jewy +Freestylin +Beuglord +SwoleBadguy +Zoltanious +Knight5247 +Hydration +Hord +photolstamp +Swatfighter7 +connor420sit +Laceinyoface +TheRanger +Alltiana +Xylr +stainalt +kingerr +Kursdragon +Malqy +Finsho +IPkdYourBank +xHartliss +Bevaun +Pokergod720 +Rebelqt +BigDaddyEddy +AndersenXo +Sugge +ShadowBoy001 +Festis +skaterdogz +johnbie69 +Tokin99 +Skeff +Redza14 +Teurastamo +Cirmit +mlgb +Zadior +Dramyre +Liuo +Hambzy +TripssAcid +pir0tekniq +PotionFayD +seachrome +GH95 +Death0fyou +GEtItFrAnK +Honeytrippin +wrong ranger +Paracleis +UgranDag +Doadles +Villllu +ltsMiller +Corsa +Nelvian +Lihtsurelik +luolapeikko +rebirthofyay +Speedball1 +Grrim +Templaris +GWPH69 +Scorchbeast +Naftininkas +G0D Richard +SuperJuicy +DolphinPucci +Piffen +TiXN +Portvakt +TGOBS +Jotjemenotje +Rcc +ShabooBopWoW +Supsep +Quizzy Dee +WinexBlaze +bigschlong33 +HCsndr +Plexx +Buschhhhhhhh +Ewan BTW +U1Q +targ119 +Daloomi +Randomguy38 +MaddAntelope +GTFOIMGAMIN +lpman +Blusaunders +0rphaned +Waifus +Powerlines +Laxx +Pappa Mauly +Wimm +Saradontmin +Zeusvdl +lemeborrowgp +Pikkets +iDeathlok +CoreyNKH +Korisas +PepeLaughing +Andyn9 +R00M +Plz LD Nat5 +peepoGamer +MarioTennis +para1911 +Sjeb +GrandErected +LittjeterRS +Domantass +Redflame +meerks +kechhunter69 +ShamanJon +Dr_Olusegun +hawkesbay +Skilll +ManWT +Veilious +jackLonghorn +Hittimestari +DabsWithDan +Deftones +TsukiAkuma +lAnomaIy +iamvoldemort +SAAB_Toxic +dannytjuhhh +J0rdo117 +Lullie +Omarinski +Painb0ws +Polite +Pandiman +DeeezNats +SlaySir +P3RKELE +Drunk Jake +VPixels +Emasterone +807 +luthas +Picklzz +jorfee +Rosv0 +Karmah +KingKongKoen +Fingerlegs +Make Carrion +BartBelly +IgorBogdanof +BuyingRsGfs +Made4Slaying +MrJonMan +Piratey +Fascia +KarilSummer +Vyagruhh +David2699 +91CAL +Dominaton +und3adedd +Diggernick32 +Lucil +Laowens43920 +Loophole336 +casperium +Booped +GiantConker +kirby421blzt +Hrungiir +Dazzz +Ased +AskingCard69 +timaye56 +Pulkjes +Alfonga +IIsaac +Obedar +Kylianvb +UmUUmuUmU +deathchecks +K_sak +Versatio +lepetitpois +LoPintos +Faiu +Marcoli64 +Knakenstein +Thomas +JGlen97 +Drakesh12 +DoubleDeezus +freeze4peeps +BDrichard +Splyce +Judie +Iron W1nk +Drummaboy276 +Nexgen +Bayman +Senarii +Prokopios +iamonfiyaaaa +Jakermeister +Feathereli +Lukse +Im Outt +Frosty751 +kloh510 +MrMonsterrr +Overclockers +Ptyh +Awendana +DoMeHardNan +Zylco +Weshzz +KingDweebus +Rugg0064 +XCShark +Spajina +Mentally Moo +VanillaSwirl +PhantomFiend +Cheimuu +TzTok-Joka +Metadragon +Mikkon +bonna1994 +Englebassen +lightfader96 +F1K +Pieterjan +Planken bos +FranciscoJ32 +MrOceanic +Thebano +Chriiiis +Pollofrit0 +Wiggoth +Glennzii +Ryzema +FlLTHYYYYYY +GrumpyFire +wonder_wenis +Cooki3Crumb +Darkphil007 +Akyle +OneProNoober +XgodofironX +IronPills +Korpokkur +SoVeryInvis +M1M +NMOS_giant +Raptorsin6ix +Female Henry +silveraze123 +IronLaffin +Batsborkair +woxzard +Dydapynk +Iron Kalde +Slo w th +KoalaBwala +Yavrum +Carolan +Deformedhell +One life lad +SuckMyBrunke +Splitarellie +Nixby +Bethevoid +Iron Zilong +Rhette +Philkwl +Elynescence +SirCoolAsian +scytheXI +Psycho11111 +Stolen Grunt +HcHoopla +CasualIron69 +Flyguy13 +Xilamz +13ert1 +TheBowJob +KingFlugal +Churlrunone +orb in bag +Slyfocs +TastyToilet +Dubspeck +NaofumiLTU +Justinolk +Mafooma +Jazzjr89 +KruttGutten +ballenbak +KentWasTaken +PeaceNLove31 +Caekrus +Francine1225 +TheVnom +Queerzzly +prut257 +IronBrad +level-596 +oooRush88ooo +Rocklore +Dibbu +Salte 55 +Got my DD214 +inldgwetrust +lucky female +SoloMishMosh +Embossis +RealJonner +Unorthodoxfo +Lego Fisher +j e company +Patrician +carrus65 +Rasput1n2k13 +Nexil +Teabz +Spooxky +EdibleChickn +D A M N L0L +FairyFeind +cimsoK +TheFizzCC +mild farm +HiLumbridge +Zechuchith +Sidabras +Shonion +Yomdo +KrakaJ +SonOfDecay +Solid Stache +tuhdhuderr +Geo Geo +Spry +Psyc Paladin +FXF_Tails +Gravew0rm +WitteLijnen +SirLunarias +konch99 +GusMagnel +Wildapple +Sk8rgrl474 +Reimie0x +FutureKaiden +Zahnae +CrazyShrimp +hc_karadeniz +Danomeva +Burgerr +Dogestyle +Ronco6 +JZX1O0 +Lemke +imm0rtalb0ng +BerrieSlut +Charmos +CaptZilyana +Blindspott +Zetrus +Stox7k +ArrowTank +MaQtPie +5xr2 +themaestrox +Shultzy +SoStronk +Dynomite +Zigzagoonfmt +DaRKi +JxyStorm +Bunryl +Ikastovizski +BrandonLarge +Sybe +Fireheart470 +TrueBank +ElysianError +kingdale26 +AndyG223 +Dairychuk +Choobcob +SECDEF +Mumspaghetti +Z4phy +TDRS +kingswood +AJsk +Marinez +Antipathic +MrJoestar +olindaelostz +wanolo +TravisThott +Zuburus +jibmask +MrsPurpTurt +m4ge4life4 +Fosh +BonesNAltars +Dogslayer420 +Deadpaal +l8tenite +T3vas +tmahones +Scuto +Baggyshaw +spaceonion44 +Nestl3 +Swurl +Reince +1nVaSioN +Tinsmith +Synced +Smittyk15 +ThisPieIsDry +Snowscythe +woesh0 +B0ngbutter +Plane4611 +Rismani +Tonfa +RoyalMess +A_Wuh +Ondra969 +UseToBeGood +Uh-0h +DOOMBRlNGER +omegaOnepump +TwitchSeljan +Bhalobashi +AncientMagus +Grobaz +mkl782 +Diade +DaftPun +Azez +smasher12121 +Replo +1942 +VersGrind +justamemerr +swooinc +GodlyLeecher +NihilistScum +liz_mar70 +Kelohonka +GHEEESE +WestFlag +marcmaralou +Kevb0t +WraithSx +Allkune +baitmem8 +Drrrrunk +SomalianRats +Kiirii +IrieLuDa +TechiePicker +minatokill +TheMaadKing +Deive +Woul +Kawakuboku +Mrburnsss +durgs +Aeikora +Versalix +myballskin +AlphaCoderXI +HypaDunkTv +skatermatt91 +TheDampBush +Goldie47 +AndiVT +Steve51 +krakkakkak +Squanchhy +Payne_Trayne +Polllie +Assmazing +Majehjk +GotchuXL +willmott +paulimvitor +PoppaChoonie +Stradarts +Zonum_Knight +PolakYT +English +J4gga +FLoKii +Purelybo0ty6 +ColdReign +Hezbullah +Ro2no +amay +Zeeyk +Neutronas +LSDDS +AlexHill +politieman +STERGS +Radrieldor +Stela +TrippyScapee +Vasuki +Jsony +Theconn +Beersmack +JimmyValmer7 +skunkskillzz +kcmeatlover +swearwords69 +Sinixx +DoraSweetass +DorseHong +TomatoTom9 +Elemyra +R0n13L +MrAmazing +grizzy77 +Slewwyy +Josh2Godly +DrtyBusDr1vr +RTLadNumber4 +memephis +sorrymatey +Bearsarefrie +Dab_nScape +Zugs +LantadymeRey +XxRXZ60xX +iusedtosleep +Triplet +Forgived +wertyer2 +FeIII +Workahaulix +m4ttay +LvI3stak3 +elfje185 +Xelian +Bellum50 +Sharmac +Woedipoe +SpowSaus +HoarderMan +JuiBoi +willie432 +Dymass +Hypersomnia +WheresPurple +Hyperdeath20 +HatchetOG +Pulli +sk0me +Thoakline +Twizler74 +De stoutsten +Tachycardy +Snowvof +CarnifexVeil +altehnub +Ninja Cow Jr +hulken532 +Golembaby +yinghao870 +Im Tibbz +Snorlax9030 +Homealot +MageFish +Khaleeeesi +EpicReefer +Duplicated +WuTangflame +SequissuAnau +Bezbi +Joz6 +x iNtrigue +Sightlines +CynAcolyte +Naternater +2006nope +Insanityzz +The_Hillboy +Savilahti88 +ltsuki +Kikyo101 +Aylia +f1elder +fjw +YouOverThink +wizkid488 +Shivers888 +Trottero +jouv +Bonden +DalaiLlama +Taz762009 +Kasprzak1 +Shocka +Reductive +Armadyllo +IronOsiriss +DaBears +Drewbber +i420u +Homegrowe +Jrabbat +strnagetamer +Cherno-byl +Weszie +Freakxx +Coltrainz1 +Ashwin07 +Peeshuuu +Alicander +UIM Thor +Bonnaroovian +NunsRtight +00yungsung1 +SirBoma +NotAStreamer +Ibongtoke +Belsey +Asubu +beanieton +RvrseGiraffe +Tz-Ket-Kush +SlottedPig +JJRicky +killerline +SheepTrainer +GotABigDoing +lukek22 +FreeTeli2Lum +elli +WeedOverWax +xExclusive +Deakz +SimulatedYou +Bootlesape +G0LDENB0Y +Iron Peg +SpicyMemeGod +Geebster +Iron Beabs +Plank2G +Masin +Harriganrace +blobaman +PdaddyReborn +FfsImAfk +Keylock +BlazingSid +Moving20 +HAOKIMALONE +Suolane +xSecret +DwarfSailing +BongRat420 +YunnT +mr shroom +look1nAzz +DormiNdaExp +Involk +Hespori +Chxmpanzee +ShrekLovr +maupz +0netruememe +StankBreath +Spw +Collin892 +Essylle +larsnjun +iron_day54 +SoUhBtw +Gensha +Runeranta1 +Lordalbert0 +URAMESHl +brianknight7 +Touchmydig +NotSoHCZoro +b0btehcool +Stillblazing +Netjes +Newst0nekid +oClay +GotTheTool +Odsza +ascipulus +Young Tango +Paehkisfe +Avrahm +Zaxcord +Stolen Herbs +Intherial +Frankers +Bajcolado +BubbleOLuke +FilthyPixels +Darthodium +iioktb +ketchupfles +herkimer +Nikez +Baconpancake +Stryneguten2 +101evil101 +Jehdin +Gezang +Jeangaboudle +BigSpook +HashtagGOALS +Babafasa +Luuk420 +vSpectre +Powerdude153 +Bcgod +Zararod +Rj8532 +RavishUndead +Jaamm +Iron l2asta +NoAntiVenom +Calb_Potta +Connavar +MestreGlados +bouquetboy +Tri9py_J +YodasSlut +ketawuss +Nelybynature +TomAce +MediocreTime +bofflepopper +ThisAintSkil +DeltaEpsilon +BornToTrade +Spengineer +Grimy H +Seenoevil +vbehn44 +Lucivert +TheRevRip +Kleatus +IronDubzy +Ketanator +DrMatthie +RustyFoot +Now +BuzzL1teBeer +Bisher +TylerOSRS +BorkingCorp +DadDicked +vPikis +Korelivia +betonimuna +larvacorium +SiebScho +Green0ktober +E-Hubble +MyronAynes +DonkeySocks +redditlucio +Izvorul +er2002 +Viyrew +Iron Chombre +Nonreal +MyNameIsKent +Marleyy +ASuperDood +Fe Nail +Bunzosteele +DosKadenas +Knurrbauch +Oldizjr +SgtBuurman +Strix Tactic +Mierdapier +drickvatten +SuicideByRC +FalscherHase +xSword +Pattyrick8 +Closeshots +vampiremiyo +Kiraga +Fe-ranator +IQUICA +StringsLogic +Fairex +theFish +Anthilll +Schlanged +Bervoets +ntarallucci +Argilla +mikefizzled +CaptainDredd +Oskinathor +seamondemon +0smasher0 +GhostHouse +9fj +ZALCANOPET +Urock16 +realpcooktho +Helson Ryse +NosferatuBoi +SirHines +Stealthweed +Champagnole +Jeththe +fenimore133 +Thyclops +Rider_99 +Jimbi +eazygps +runeika +Range4Free +disdudsauf +Slayer7515 +Polarus +fbah2 +Brandonx188 +level-103 +Lucifer_link +litheum +Ownd +Perrault +Manyi +Mercys +Xalrir +Jenessa +3rdAgeSlayer +Taffarell +CbarDaKing +xpwast3d +Zameul +71rc +PvMNotorious +Rangedly +JustRenne +Ramztad +T-Hugs +HADYYY +swed +beberfan69 +Sierzy +dtfmslogan +SlayForFame +Aluspalvelu +arexmeister +Dunadane +Crazystevee +Pr1MaL +Digironimo +bossy momma +byrny +Bigborncrazy +Barhoor +Gsef +Barbyte97 +Funny-King03 +gothorian +G3RM4N +Lemursnore +LawOfBirds +InsaneIee +clabby +kevpurp +IQT +Fernando-Frv +ClanChats +marshyymarsh +Mdzvwz +SogxNeutro +ElevatedSoul +Panda Godz +ChozenGod +Bellicus +ItsOleGreg +lady-yoshi78 +vippaa +Nuparu22 +da jiin +Obby Cam +Tempoctrl +bombycrahan +AMAWM +NLDeluXe +keekluulz +Nixi_NL +Billington +Scarves +Tomxi +Defence42 +archyiop +62steeplist +zclx +SquatNation +EzUnReal +Shanfew +Fireknight0 +Coolmintoreo +Aver4ge +Gnorc +carlwalter +Koekebakker +Camosaur +Onidhre +Flexatronic +KaiokenRyan +CLIIllIIllIT +Runboy25s +fan3to +skyz +Zachulous +BUILD PONYS +Bluntmore +Rubee +Warmly +SI4 +EasyTurbo +Najda +Tarki +falsehope +Claypops +Lyse +twitterclans +Moq +Thiccapedia +Hamis +Gameboylight +Rawssss +TorontoOVO +Thotalopolis +MrSirOne +KmartWorker +Nakuz0r +DropTopWizop +Bokeva +Miqote +KruimeIkoek +Onesecafk +Madrock01 +Wallerz +Sage Vegas +aezthetic1 +Eldonskii +Concentrates +Gunsmith95 +juicy jones +UNC0RN +RoyLay +Latanoprost +CostlyOne +Huugo35 +Cefiro +ekcivtec +KingZac +ObscureLogic +smChi +MangJoe +MR_MAITO +klojo103 +ThirdEye +Dimaa +xVektor +Imawizardm8 +Ice in Vodka +Tsjok +Jonezey3 +HydrosFather +Fuertote_17 +Parappa +Alcarnia +Toasterly +Meltok +Palad1um +HelloDottie +Bercuckle +dark hays +dark5pac3r +Tstiffy_15 +Nolzzz +Storybot +DonaledTrump +Darkskiller +StonedTTD +KempBush +Goosely +Lape +DjentleSoul +Harryalt +HuntnCoFTB +AFTW +BIGBADWILLY +cowpker4life +Alboy +Eljaaa +FiftyFive +Tztok-Met-Al +StingWisher +Ltman42 +bushkada +Burnstown +PullOutRange +RiKoCheP +Honru +Skachoo +Lonz +Terrorise +Grimnitro +Apportant +FuRiouSs +Sylveon700 +Giroza +WarSoc +MightyOrange +zazyga +Bayern_pvm1 +AverageDesk2 +Haydor +Cyuh +PvM Boganeer +Achievement +Bennny0_o +ElderRyu +Inhinyero +Radja333 +Odyssey310 +leechyGP +Cathays +Rmz +Panqueques +Feedback +travym66 +Lorttomies99 +Superjim111 +Exodusty +SanodersNL +JoeTheGod +Berrzerk +assoffire +Iguaani +Kakua +MonkeyHeadAF +AnonDoctore +Konnie +Abov +iyyghg +KingRustyVII +L4rry +IceSparro +LordNorden +Aayraz +OnDeaTHrow +styrkekram +S0lomon44 +Swingers +FreeFreeze +REZlN +Armchairs +pxls +Gozpot +UhhhBoneless +DOOMSlayer +krakodile +Etardoron +Uip +DiaThresh +CaptinA +Bufubu +DeTrixzz +Determind888 +Mackdizzle88 +Thick4Head +AHriMTaLeZ +HegXDXD +Bastermate +Its_Fonte +H3nti3 +Total Pede +JDBass +Peevy +Soccermom02 +2n8 +ZeroXJD +that1stoner +MetalGear +iVz +Smartyross +Confidentiel +Goodole +NlMBY +Skullking188 +Albuun +Qemi +Celiac +Mein lron +Bluewarthog +Azzaar +Gnomeputone +Sammjoey +saintffs +SteveSnow15 +HellsRavage2 +Asterlad +Pantaloon +alfhershey +RikSavage +jordlar +YoHighRoller +Shtankybruce +KaMi_RnG +WarOnOurMind +VeitiKKa +N0 H34RT +sitonmaface7 +xTrigger +teini_horo +Legened248 +Ikillu247 +MrWorldwidee +RunesCrafted +OK Thug +NapoleanBra +BR0CE +Kush420s +UsedApplePie +sploobie +Bachelour +Blue_speed +Symphonicx +Rakun Rakan +infragant +Daanncorr +Jmjake +Socrates001 +Madeweine +SprayM0re +Tr0gdor +Fe Qlimax +Iron Elyon +Donwcpot +Generol55 +ThyVonR +rubikslayer +Mike745638 +Garthoon +ejobs +BigDaddyT85 +ScaredOfAll +DoktorBarber +Socrates +Bebexx +BearByte +loveNfungus +Jayders +Rogue nr2 +IM Maccy +E4as +Verkyz +TacoWithGuac +Danol +Eva-O1 +Muppz +Sinner_Blue +Tebowowns +OhManOhJeez +jhy +KonosubaAqua +ALonelyTaco +LukeOS +Agressie +AhiPoke +ScreamSavor +Fire10910 +Molemountain +Strr +Pasiiba90 +Yesze +zeddicus676 +LeKinguin +Screeb +RedTwisted +PoachedLion +BATATUNGA +Ohseeya +OneTera +MrJTheIron +AardbeiSoep +Misty7632 +FigaroTheCat +Iron Seagz +Kizone +InfinityMan +Camperfish +Gooziky +Ismo54 +MrTibberfitz +IronLankzey +Ironboba9993 +AllusionTens +orkans +pyro255 +Stonedtime +EricPrydz +Osjuicey +LostOnThePCT +acuile +Lord Mjosh +Sunyikata +Helldog946 +PrintedCash +knani +Benqqu +130SS +Coo +BornTwoGrind +GonFeeshin +Blombo +akaExploit +Camhanaich +Sleepercell +Wojtas +EyeHaveToPoo +IronSpiderZ +TomMerrilin +AutoEmp +whispery +Pergert +pizzaforce33 +Tapirslayer6 +Karethaeis +Hillzy +TheIronVault +CR4ZYH34D +Claudiu +Kurohige-Jm +Dvsk +Wreckzu +MadxMonsta +lamepun3than +roldunogene +Pseudonimas +Crimsoncaim +HCmunchies +Ysdragos +Kluftritter +Iron Franchi +MrMose911 +Envx1 +830 +Laphloredos +SoloTibbs +Acemanjam +LakeMonYew +daedbent +plebminister +Rislearn +Tusc +Gytisr9 +Kage Boshi +BarryBanaan +richarb14 +IronOxideMan +cubezor88 +ImGodd +Muffinkyutie +6620 +RunFreek +Mezzalarry +U Ded BicBoi +IronBosse +Nommmy +JTM33 +WaveSkill +ILoveAstolfo +Wuzzi88 +Vueko +Talvedon +Disconnecct +Goat512 +Synn +Zurius +ForNostalgi +Erbyss +Disentombed +McStarley +large pox +Exonaut +RiskinPixelz +Duravillidad +GrandmasterT +I3ox +quazepam +Maween +ibbenbueren +SemiReliable +Chromadorr +Dohenus +Benmiester44 +Shortstop819 +Imidril +Dalkz +FuAiluue +Jdoggy2018 +Slick +Eliwood225 +Tink200345 +Kaimanll3kav +IFRC +ArtofKush +zensix +120u +Jungkook +Balarezo +Extrovert +XX3 +Mordy +Vodke +Zeug +TiramisuTart +Narvalow +Bubbz +ERJ145XR +AlwaysPoor +42O42O +MkLeo +FMGbrien +suhuan123 +Jezkoz +AnjaPija +Travis473 +0Giesel42O +Garrothis +Chromalox +Nolifepvm +yeahboi9992 +Wooz +PeytyPoo +magicmike117 +versacejean5 +Mokke-senpai +KiluaZoldyk +7pm +ARRIVISTEZ +6PaperJoint +badsadmac +Gavrot +Dualerz +Maybemnam +RSPSisBETTER +Blizzartd +Dolormight +alwrighty +Bakron +laks +Sneakymag3 +Buriial +DarkMerliin +Hilk +SootSpritez +chemistmike +voxi6 +4Kath +HOOLlGANS +SaintBurgs +fastsalmon34 +Gold M40A3 +S-525 +Dafney +PetPlease +Bubzs +Met +klampo +ButterSyrup +JustPertti +JakeSteFarm +Leo2 +3III +MrsJonesUFT +Y0Q +CallMeTipz +Santasos +JamesDaWizar +AeroxAces +Dylanm504 +Randeaux +VEGANDIET +Magepkmega69 +Weight +Coolxkidz +mooofy +gronoc +Magik773 +RWSDOUG +xSPAGHETTIx +Joshmaster31 +Drbeto11 +Farah +Shanee-oo +Wintage +callmeson +Masandalf +Stealthcy +Squaw +Dank Tigzy +AllRubyMoi +Vesley +Ebbitten +Ninfia +FireAnRescue +Tywonia +GoldieOne +NuclearShift +PapieLexus +zwah +Cyn2k +Hawkear +AlwayzSol +Arathir +GodSaidGrind +izmibence +SAWPREME +FlaccidWhip +QuirkyPurple +FuryJunky +vlyn +Ipod5412 +BBV +AreYouMyMumm +Ropemaker +Leecherboy +Exright +Koollpop +Gold-Ileana +drxfluffeeee +No53 +Hayesy +BigSikTv +IceNineKiIIs +1k_0 +bitten by +RumbleYT +Cyruscomrad +sharingbox +Rsn_Dillon +toqs1986 +KngBlkDrogon +BlazedRanarr +Epicurus4 +Ene +Ratlordmax +Heartquake +ImMaxy +sdfsd125 +Piscolaz +Wrekdum +Chaser959 +First_Viking +CarimsEygon +LabbattSplat +ITIaddy +Tryuumph +LooseLesley +Tully03 +BigMav0416 +chicknsoup3 +Klanks +nivk420 +TacticalFart +apenzoon +LP Smokie +Africagamer1 +MasonJarr +iJamPancake +Raiskausrapu +Victorp75 +Guadanha +Top Milk +Snatchquatch +Alharbi +Polaar +ringosting0 +Goby358 +Ryleegh +Seculish +Flowzyy +superj4 +Timbeettius +megoodpvmer +Snuift +Leavepigrun +Quti +big bojangle +wsodonnell76 +Slayer314 +Flawzin +NateDoge +4gottenvoid +patriciogmz +CH3 +5hayWh1te +Bluerope14 +Strikes +Gorathe +ChickenRings +Lloydyy +Alenac +gaypoika08 +gOWObs +devonjt1 +The Crogamer +MiniNinjo +Maury +Woolly +BillyRay +Saraziel +Nunac +I Am Vono +CrimsonCow +Israels +XCortezX +TheRsBug +EkkoThresh +Salista +Silavex +jamaz8 +Clunker +BeetchJeemmy +Denglish +AGRONOMlST +darkhex0 +JoJo79 +Jfleeze +Nerdcore +Cumsquatch +SmileyCyrus +DTown420 +H3NNESSEY +Boulli120 +I3ubbles +TommyGunn204 +Elit +fartass +33zero2 +Stephenns +finerunes7 +Conpetgrebe +jordymans +pigusvaistai +ThiccSkips +CheddLaurent +Chiksan +Johuab +IxHunt3rxI +Humblenobody +Nonsense +BOlNEXTDOOR +JLF +Fyresam +LetsGetSmity +Wreckin4Days +Villanovaguy +xXCaBiDeXx +Kevali +Slaqk +Kongklunk +Espada_Vx +CalmYourBits +toxicsaitama +Ellphie +4kV +Seighilde +HankoAJ +gabbe314 +BigMilkerz +TheEvlManRay +thiseku +Lastinis +Statykk +MusicalMurdR +99hh +Hildr +Nailed Hard +Kov0s +KiiDSKOLiO +Capt420 +Rushana +n00btube +Emad +Slemmy +DBKangaroo +Canadiehn +Endor +kingkong1211 +JoXuh +9yearoldpops +IncomingGank +Grimmauld +thes5016 +lJoynerl +Shot1200 +HappyPandaXD +Unprofitable +jewsandclues +Ruhtrik +iScream03 +WhereAreWe +LottaPotAgo +Lionhrt +UnholyAbyss +Zamorizzle +Decerate +FaBeSCa +Savpryan +Flyhll +illotex +PigDOG 669 +AH Energy +FeelslronMan +FittyBuck +WarmLoaf +PvM_Nugg +tommybun +AstroYogurt +HeroicDesire +Finaltank +Actaeor +Muilpeer +PogChampagne +Lkoi +MrSusans +ItsHosef +Term +Infase +Kenleyy_TM +Jebroni +Herbogus +Rizzhole +StrollerBaby +8v +logger2222 +IAMBillNye +oerinn +Beelzebubby5 +Zw3d +Lildirt +bigl +Alexbrock +HeisenBergW +VB24PK +Juqqernaut +FROO00OO0ZEN +Kenyann +BeforeDeth +Artillion1 +AslanMaximus +JustBob +Nivex +Cliphanger1 +Woozie400 +Hookr +Onya +Zatch175 +Narx4 +ukwolf1 +lunamelina +seppevb +Darkfanime +RunNhideZom +Timespacing +Stevo29 +Os SMDJ +MikeMontana +g0d slayer19 +grindin2bond +Akomatic +xSillyCybinx +MajQ +Aeganor +Yerrrrey +Marleth +kuro 275 +Oder +S0ldern +KingJelore +mustypill0w +Iron Request +Mineraal +Saty +CHULIGAN911 +Vud +MrPige0nz +Hoptilicus +Soloyo +Sh4dowfox +kylehwog +PvmQ +TheTerug +Abool +Neekomata +Roy385 +Wormeater66 +lilliilillil +Iron Laplace +0verdrinking +Zwwwnbeast +Sazme +Betta1009 +Ironman Jowe +IM_Queeffing +K9lenny +Wrigzer +Migalos +XeroBone +dragneel132 +Yerico Tsu +xTerpenes +Dusansss +RehlapzZ +TrollinPony +bottypedpsw +cDive +Noizex +Devstated +Charltonb +N0rse_k1ng +warcauser33 +dragonizer11 +asedviss +Shogaol +Averex +UknowPotter +Radini +FreedomUP +B00SY +Strav +Uberamazing +Rny +Calipso +bigblade28 +imCodehh +femiketyson +Achernar +Sim Aero +Teyrill +Hajj12 +Glazmeister +Tupla Olut +Frodoinc1 +deadmeadow +Gergery +MFSTEVE +TURM0IL22 +Tunaking420 +Fomble +oClairebearo +Bigred8616 +Turtle7 +Ryoma +DeadlyBatz +Zavorak +Emithyst +excitedz +MrBryne +Procedures +Herbacist +Thepiefour +ChoppinWork +NoBans +Painta +Dioxis6 +Trivit +Micromelo1 \ No newline at end of file diff --git a/data/botdata/getnames.sh b/data/botdata/getnames.sh new file mode 100755 index 0000000..cce1c43 --- /dev/null +++ b/data/botdata/getnames.sh @@ -0,0 +1,4 @@ +for i in {6000..6500} +do + wget -O- "https://secure.runescape.com/m=hiscore_oldschool/overall.ws?table=0&page=$i" | grep user1= | sed 's/^.*user1=//'| sed 's/".*$//' | grep -v "Binary" >> botnames.txt +done diff --git a/data/botdata/namesandarmor.txt b/data/botdata/namesandarmor.txt new file mode 100644 index 0000000..aa642ed --- /dev/null +++ b/data/botdata/namesandarmor.txt @@ -0,0 +1,334 @@ +XMR BTC ETH:7:0:0:0:841:0:0:0:0:0:0:1061:0: +SpinnerYOU:8:0:0:0:1277:0:1171:0:0:0:0:0:0: +im-rahha:58:0:0:0:0:0:0:0:0:0:0:0:0: +newvicn:20:0:0:0:0:0:0:0:0:0:0:0:0: +KnocktdafOut:101:0:0:0:0:0:0:0:0:0:0:0:0: +Powndrake196:3:0:0:0:0:0:0:0:0:0:0:0:0: +muppemxx:3:1038:0:0:0:0:0:0:0:0:0:0:0: +GGraft:32:1949:4335:1725:1329:546:20166:0:548:0:2922:1061:0: +OdymX:3:0:0:0:1293:1101:1175:0:1067:0:1063:0:0: +jesusj17:48:0:4391:0:843:0:0:0:0:0:2932:1061:0: +Raningblast3:3:0:0:0:1351:0:0:0:0:0:0:0:0: +65fatknife:3:0:0:0:0:0:0:0:0:0:0:0:0: +NeobilkDark:23:0:0:0:1203:0:1173:0:0:0:0:0:0: +TROXZ144POXZ:56:1161:0:1009:1301:1123:1197:0:1073:0:0:0:0: +xXMakiaXx:80:0:0:0:1381:0:0:0:1033:0:0:0:0: +Molebats1209:3:0:0:0:0:0:0:0:0:0:0:0:0: +64 Wise 1978:3:0:0:0:0:0:0:0:0:0:0:0:0: +Clue Mimic:3:0:3781:0:0:0:0:0:0:0:2922:2914:0: +claymus14:30:1157:0:0:1329:1115:1193:0:1069:0:0:0:0: +xAlexGGotYaX:10:1949:0:0:1277:0:1171:0:0:0:0:0:0: +Morerule1367:3:0:0:0:0:0:0:0:0:0:0:0:0: +77shiny1198:3:0:0:0:0:0:0:0:0:0:0:0:0: +YaelColins:40:0:0:552:9703:0:9704:0:0:0:0:0:0: +casacoima10:12:0:0:0:1277:0:1171:0:0:0:0:0:0: +MenMaster:20:0:0:0:1205:0:0:0:0:0:0:0:0: +M0L1NTR0N3:44:1949:0:1725:1357:1005:9704:0:1095:0:0:1061:0: +fdsfwrfW2E:40:0:0:0:1277:0:1171:0:0:0:0:0:0: +Lewt Bags:58:1155:4351:21149:1387:1117:1189:0:1075:0:1065:4119:0: +bierfietsss:72:1163:1019:1731:1333:1127:1201:0:1079:0:1059:9005:0: +TaDeDeBeShPa:3:0:0:0:0:0:0:0:0:0:0:0:0: +Soonride2043:3:0:0:0:0:0:0:0:0:0:0:0:0: +KolSinRa6944:3:0:0:0:0:0:0:0:0:0:0:0:0: +BoCaRefVaCyI:3:0:0:0:0:0:0:0:0:0:0:0:0: +Gerloc55:43:0:0:0:1387:0:13660:0:0:0:0:9006:0: +ChMaIvCrJanL:3:0:0:0:0:0:0:0:0:0:0:0:0: +Happier Dog:44:7136:20214:10366:1387:1844:0:0:1845:0:11858:1846:0: +emachorrr:3:0:0:0:1277:0:0:0:0:0:0:0:0: +MIDNIGHTHOUR:63:1042:0:1710:10156:6322:4156:0:1099:0:11120:0:0: +LilOmni:6:0:0:0:0:0:0:0:0:0:0:1061:0: +wef6qwe4r561:3:0:0:0:0:0:0:0:0:0:0:0:0: +Sister 13:3:12600:9793:0:20590:6186:24325:0:13288:0:0:23285:0: +IsidraJr:58:0:0:0:0:0:0:0:0:0:0:0:0: +BeDeMaSa0891:3:0:0:0:0:0:0:0:0:0:0:0:0: +JustSkillezZ:50:1017:0:0:1387:426:0:0:428:0:0:0:0: +Elcangri11:39:1017:1007:1727:1381:1035:1199:0:1033:0:1059:1061:0: +haroldas 99r:13:1017:1019:1731:843:0:0:0:1015:0:1059:1061:0: +Day Dreamer2:47:1145:0:1727:1355:1123:7352:0:1091:0:0:0:0: +venepower:67:1017:0:1731:1381:577:0:0:1033:0:1059:0:0: +GOOL19207:59:1163:0:0:1333:1123:1201:0:1079:0:0:0:0: +T A L 3 N T:67:10452:12197:6585:11785:544:12610:0:2497:0:11133:12598:0: +xz Team:30:579:4371:0:1387:577:0:0:1033:0:21816:626:0: +lWontEverDie:96:0:0:0:853:7370:0:0:1099:0:0:0:0: +WooJ:122:2986:9808:1704:3053:13106:0:0:0:0:11140:13131:0: +Zaliukas19:7:1153:1031:1478:1323:1115:1175:0:1067:0:0:0:0: +Marian Nasir:3:0:0:0:0:0:0:0:0:0:0:0:0: +laitukas29:3:0:0:0:0:0:0:0:0:0:0:0:0: +AFRODITA-23:38:0:0:0:0:0:0:0:0:0:0:0:0: +Monrojas:50:0:1029:1725:1381:0:0:0:1099:0:1065:1061:0: +stejler:114:21266:6570:19553:4151:21301:12954:0:21304:0:7462:11840:0: +Loamjytuner:3:0:0:0:0:0:0:0:0:0:0:0:0: +u smoke mid:92:12293:10499:10364:1387:1121:1197:0:1071:0:1065:11840:0: +MIMIYEEET:64:0:10499:0:861:0:0:0:0:0:0:0:0: +hamnndoza:3:1153:0:0:11709:1115:1191:0:1067:0:1063:1061:0: +4virgin:112:0:0:0:1275:0:0:0:0:0:0:0:0: +LSASORI-666:60:579:0:1731:1387:577:0:0:1011:0:0:1061:0: +12evil2175:4:0:0:0:0:0:0:0:0:0:0:0:0: +Rushkaril208:71:1153:0:1478:1331:1119:1191:0:1067:0:7595:0:0: +sneksk13:49:0:0:0:0:0:0:0:0:0:0:0:0: +M i m e s:53:0:0:0:1387:3058:0:0:3059:0:0:3061:0: +llego crispy:54:9925:0:22692:853:1123:0:0:1073:0:9922:24313:0: +dami420:71:3486:20214:1731:12389:3481:3488:0:3483:0:23261:1061:0: +Vjx:59:12455:1019:10366:1387:12451:13660:0:12447:0:2912:1061:0: +jonko_08:39:1161:0:1731:1387:1123:1197:0:1073:0:1063:1061:0: +Oliverg1995:36:6188:4351:0:837:6654:0:0:0:0:2922:0:0: +TErko SKs:20:1017:0:0:1383:0:1173:0:0:0:0:0:0: +e t h x n:67:0:0:0:1387:6654:0:0:6181:0:7595:9005:0: +Beretsand522:85:5554:0:1710:21646:5553:0:0:5555:0:5556:5557:0: +ApS Squirrel:55:1163:4325:1731:1333:1113:1201:0:1079:0:2942:1061:0: +Acazandra:60:579:4407:1727:1387:577:0:0:1011:0:24311:1061:0: +BybisTasei:112:1169:1027:1731:1387:1135:24325:0:1099:0:1065:1061:0: +WelshPro2:47:1053:0:1725:1333:544:0:0:542:0:0:1061:0: +ElwinLeong:46:1044:0:1654:851:7364:0:0:1099:0:1065:7596:0: +Squaawk:99:0:6568:0:0:0:0:0:0:0:11126:0:0: +Bread1991:4:1155:0:0:1293:1117:1171:0:1075:0:0:0:0: +Tzaska:112:1949:9781:0:6562:11854:22322:0:11856:0:11858:11860:0: +honkah0nka:120:0:0:0:1359:0:0:0:0:0:0:0:0: +VitsEco:64:7394:23300:1731:1387:7390:13660:0:7378:0:1065:23291:0: +Emer Jhon 19:62:0:0:0:1381:1035:0:0:1033:0:0:0:0: +Roberthx:55:1163:0:1725:1333:1113:1201:0:1079:0:0:0:0: +Nikitakitz:33:12283:4371:1478:1285:12277:12281:0:12285:0:11079:3061:0: +DNoancy76:3:0:0:0:0:0:0:0:0:0:0:0:0: +black chinin:34:0:0:0:0:0:0:0:0:0:0:0:0: +NO0MEERCYY:106:0:0:0:0:0:0:0:0:0:0:0:0: +Kekava:89:11862:1019:7803:1327:1125:1195:0:1077:0:0:3061:0: +Finis34:76:24305:23410:10364:1387:24307:24325:0:24309:0:24311:24313:0: +SSSniperWolf:53:23101:23099:0:11709:23369:2589:0:23095:0:23091:23093:0: +HazeyJ:49:0:0:21314:11707:0:0:0:0:0:0:4121:0: +dontbrkrules:45:0:0:0:1387:0:0:0:0:0:0:0:0: +s46gs4g6s5dg:3:0:0:0:0:0:0:0:0:0:0:0:0: +PuRe_ReVs97:39:1169:0:1704:8880:1129:0:0:1099:0:2487:0:0: +DrakenHamer:108:0:0:0:1381:1035:0:0:1033:0:0:0:0: +VoHoTi816863:3:0:0:0:0:0:0:0:0:0:0:0:0: +H 2 P:63:1053:13679:21314:1387:22695:24325:0:13288:0:0:13286:0: +Leviathan Sr:3:0:1007:0:13328:6654:0:0:6655:0:0:0:0: +Chuka Ryori:102:0:0:0:1387:0:0:0:0:0:0:0:0: +5g4sg4sg4sg:3:0:0:0:0:0:0:0:0:0:0:0:0: +Elroyfct19:8:1949:0:0:0:0:1173:0:0:0:0:0:0: +PureEffectQ:37:1161:1019:1725:1331:1123:1540:0:1073:0:1059:1061:0: +rowcharger2:58:2613:0:0:1387:2607:2611:0:3475:0:1065:0:0: +Redrani1:33:1038:0:0:0:0:0:0:0:0:0:0:0: +ottn ook eem:76:12639:9757:0:4934:13104:0:0:6185:0:0:6666:0: +UzairScape:52:0:0:0:1387:0:0:0:0:0:0:0:0: +Ultiwarriors:65:1169:4379:1731:853:1135:0:0:1099:0:1065:9006:0: +kilaSTR:21:579:4345:1725:1329:577:0:0:1081:0:0:1061:0: +homeboijones:22:0:0:0:0:0:0:0:0:0:0:0:0: +Jcc1992:9:1157:0:0:1353:1119:1193:0:1069:0:2922:0:0: +Rsk venom:69:24288:0:12002:12000:24291:6889:0:24294:0:6922:6920:0: +Paptor986:68:1949:1027:1731:1333:1113:0:0:1079:0:2902:1061:0: +BigDuncan69:42:1161:1031:1478:1333:1123:1199:0:1073:0:2922:9006:0: +Gril:34:579:0:1727:1381:581:0:0:542:0:0:0:0: +54 27:69:1163:4351:1725:1385:1113:1201:0:1079:0:1065:1061:0: +treghar:3:0:0:0:0:0:0:0:0:0:0:0:0: +TreeWise Ben:59:1017:0:1727:1387:546:0:0:548:0:0:0:0: +ladiabla6666:59:0:0:0:0:0:0:0:0:0:0:0:0: +Joekeltje05:42:1055:4399:1727:1381:1035:0:0:1033:0:0:1061:0: +Cykelpump94:68:0:0:0:1381:1035:0:0:1033:0:0:0:0: +ToP WinG:61:0:0:11113:9185:0:0:0:0:0:0:0:0: +Smigol89:75:12504:10499:1704:9185:2503:1540:0:2497:0:2491:6328:0: +6d54fd4d5:3:0:0:0:0:0:0:0:0:0:0:0:0: +JaDeLashKriT:3:0:0:0:0:0:0:0:0:0:0:0:0: +Devskii:64:1169:9783:1731:853:1129:0:0:1099:0:1065:1061:0: +AliArcher22:107:1163:4371:1725:1333:1127:1201:0:1079:0:1065:1061:0: +Y0URN0TREADY:21:11847:0:10364:667:23097:13660:0:9923:0:23091:9921:0: +Kepler16b:15:1153:0:552:1267:1115:1191:0:6181:0:1059:0:0: +JamitusDeath:63:1163:1019:0:1333:1127:1201:0:1079:0:2902:1061:0: +blib vbob:3:0:0:0:0:0:0:0:0:0:0:0:0: +FighterMan3D:3:0:0:0:1265:0:1173:0:0:0:0:0:0: +dustyturnip:54:1163:0:1478:1333:2599:1201:0:1079:0:0:9006:0: +Cucilo:63:0:0:0:0:0:0:0:0:0:0:0:0: +BrrrrCold:53:2657:1007:1731:1333:2653:2659:0:3478:0:2912:9006:0: +Nv-BlackMind:88:24315:24207:0:1271:24317:0:0:24319:0:24321:24323:0: +kjuse:71:1038:0:1731:0:9924:0:0:9923:0:9922:1837:0: +Archie b:73:12453:6568:10364:1381:7390:2621:0:7386:0:2912:11840:0: +lamarcelazaz:112:0:0:0:0:0:0:0:0:0:0:0:0: +Soni Evil:3:0:0:0:1351:0:0:0:0:0:0:0:0: +Ubertas:91:0:4323:1727:1387:0:0:0:0:0:0:3061:0: +bholehairz:24:579:4365:1727:1381:577:0:0:1011:0:2932:1061:0: +I P0p ZanZ:41:579:0:1727:1387:0:0:0:0:0:0:0:0: +mr 7ranks:94:0:0:0:0:0:0:0:0:0:0:0:0: +weedmam44:89:0:0:0:0:0:0:0:0:0:0:0:0: +Bort Goth:54:1042:4387:1478:23330:23215:7348:0:2617:0:1059:9005:0: +godkin94:43:12231:4407:1662:1387:12225:12233:0:12227:0:2922:1061:0: +zznjujkuiy:3:0:0:0:0:0:0:0:0:0:0:0:0: +Snakenaldo:30:1155:0:1731:1359:1117:1173:0:1075:0:1059:1061:0: +Osmar-Rvn:75:12455:23297:10364:1387:12451:24325:0:12447:0:0:9921:0: +J U Q:3:11850:11852:1708:10010:11854:0:0:11856:0:10075:11860:0: +batrinhos:45:6182:4349:1478:1387:6654:0:0:7380:0:1065:9005:0: +d5fd45fdfd43:3:0:0:0:0:0:0:0:0:0:0:0:0: +mhxomklo:64:12013:0:0:1275:12014:0:0:12015:0:21345:12016:0: +Jaxaloth:42:1153:0:10364:1331:1115:1191:0:1081:0:0:0:0: +DuctileMarro:5:0:0:552:1277:0:1171:0:0:0:0:0:0: +FirmGrandma:124:22326:6570:19553:22978:22327:22322:0:22328:0:22981:7159:0: +Andr3ws:51:0:0:0:0:0:0:0:0:0:2902:7596:0: +Motel IlIIlI:54:0:0:0:0:0:0:0:0:0:0:0:0: +Its yeboii:98:12434:19697:19720:1387:19958:3842:0:19964:0:4105:23285:0: +TheOverdraft:118:0:0:0:0:0:0:0:0:0:0:0:0: +jbl092191:85:2665:4357:0:0:2661:2667:0:2663:0:6720:6328:0: +NewSummerVI:79:12600:23300:10366:23279:20199:13660:0:2593:0:23091:12891:0: +hambargaman:80:1040:0:0:1387:9924:0:0:9923:0:0:9921:0: +Ivyone42:35:0:13679:0:0:0:13660:0:0:0:0:0:0: +grumpy troll:116:0:0:0:0:0:0:0:0:0:0:0:0: +xRektify:93:0:0:11107:6739:0:0:0:0:0:0:0:0: +bramboom:5:0:4407:0:1351:0:0:0:0:0:0:0:0: +wrap a joint:94:2627:9795:1725:1333:1113:0:0:1079:0:2491:11840:0: +leegon1:85:0:0:0:0:0:0:0:0:0:0:0:0: +koekeroekoe1:94:21298:6568:11128:0:21301:12954:0:21304:0:11122:11840:0: +maryamgee123:10:1153:1019:0:1381:0:1191:0:0:0:0:0:0: +zazuke2019:53:22689:13679:22692:853:22695:0:0:1099:0:0:22701:0: +Mrmeanbow:97:1163:23297:1725:1333:1127:1201:0:1079:0:0:0:0: +MagicBunny01:47:1949:0:0:0:1757:0:0:0:0:0:0:0: +el frinchy:49:0:0:0:0:0:0:0:0:0:0:0:0: +Ninja1901:50:6188:13679:0:1387:0:0:0:0:0:0:0:0: +Dilk Mud:81:12241:6570:1725:1333:12235:1191:0:1067:0:0:0:0: +zELGLw:5:0:0:0:1277:0:1171:0:0:0:0:0:0: +DeMeLo139067:3:0:0:0:0:0:0:0:0:0:0:0:0: +Sun Rocks:49:2613:0:0:1381:1035:1201:0:1033:0:0:0:0: +Black Arkan:42:2605:0:0:1331:2599:2603:0:12279:0:1063:1061:0: +xxrreexxrex:3:0:4365:0:0:0:0:0:0:0:0:0:0: +Kingdavid370:16:0:0:0:1349:0:0:0:0:0:0:0:0: +OTEguQ:5:0:0:0:1205:0:1171:0:0:0:0:1061:0: +OnlYMrSmItH:3:12845:0:22692:1419:6184:0:0:6185:0:13287:13286:0: +DinkelBrot:14:1048:13679:0:0:20184:13660:0:20187:0:3060:1837:0: +Voidsux:98:0:0:0:1359:544:0:0:542:0:0:0:0: +worchafts:3:0:0:1654:0:0:0:0:0:0:0:0:0: +1k sand crab:79:1038:23297:0:10010:1035:12335:0:1033:0:0:11840:0: +Gopherslane:101:0:0:0:0:0:0:0:0:0:0:0:0: +Firehit2:28:1165:1019:0:1329:1125:1195:0:0:0:0:1061:0: +BeanSw3de:71:2595:4335:0:1387:2591:2597:0:2593:0:24311:3061:0: +rarebreed28:42:579:0:0:1387:577:0:0:1033:0:0:0:0: +Mullac255:50:0:1019:1731:1381:6184:1540:0:6185:0:1059:1061:0: +680m:110:0:0:0:0:0:0:0:0:0:0:0:0: +Niffou:7:1153:0:0:1323:1115:1191:0:1067:0:0:0:0: +AlessandlawD:4:0:0:0:0:0:0:0:0:0:0:0:0: +chandelaaaa:52:0:0:0:1275:0:0:0:0:0:1580:0:0: +kevkeassel:8:1153:1007:1478:1323:1115:1191:0:1067:0:1059:1061:0: +RockMauler:57:0:0:0:0:0:0:0:0:0:0:0:0: +Apothus14:43:0:0:0:1387:0:0:0:0:0:0:0:0: +lilibthx3:3:0:0:0:0:0:0:0:0:0:0:0:0: +Choc Luvr:48:1949:0:0:1333:0:0:0:13288:0:1059:1061:0: +ALXNDR B:60:0:0:0:0:0:0:0:0:0:0:0:0: +crisalida1:29:0:0:0:1351:0:0:0:0:0:0:0:0: +doynana:25:1157:0:1718:2402:1129:1177:0:1095:0:1063:1061:0: +homer_1993:64:1163:4365:1731:853:1113:0:0:1099:0:1065:1061:0: +Kos Emak lol:80:1163:4367:1725:853:1135:0:0:1079:0:1065:24313:0: +chinowaggon:42:1153:0:1725:853:1101:0:0:1099:0:1065:0:0: +Raised Wood:40:1159:0:0:1333:1121:1197:0:1071:0:0:0:0: +PalavaMaa:3:21859:13679:22692:22684:0:13660:0:0:0:13287:13286:0: +adroit4559:3:0:0:0:0:0:0:0:0:0:0:0:0: +SensaiKush:85:10828:6568:6585:0:0:0:0:0:0:0:11840:0: +Neba Brat:70:0:0:0:0:0:0:0:0:0:0:0:0: +Zartharias:55:1165:0:0:1333:1125:1195:0:1077:0:0:0:0: +lioooooooooo:38:0:0:0:0:0:0:0:0:0:0:0:0: +Julle2900:54:0:0:0:0:0:0:0:0:0:0:0:0: +ItsSpectrum:92:0:0:0:0:0:0:0:0:0:0:0:0: +Pinkjoe_369:68:6182:0:0:1275:6180:0:0:6181:0:0:0:0: +iD3CAP1TATE:86:1050:0:1731:0:0:0:0:0:0:1065:23285:0: +0wnbyme0:80:2665:4355:0:1387:2661:2667:0:2663:0:1065:9005:0: +whodis1:11:1153:4351:1725:1325:1115:1191:0:1067:0:0:1061:0: +V-Caracas:75:0:0:0:1211:0:0:0:0:0:0:0:0: +Jackawoo:24:1153:1019:1009:1323:1101:1191:0:1081:0:1059:0:0: +yorwys:76:0:0:0:1357:0:0:0:2617:0:0:0:0: +ashwoog:8:0:0:0:0:0:0:0:0:0:0:0:0: +Belly111:57:1169:0:1725:1373:1129:0:0:1099:0:1065:1061:0: +rolexeshh:54:0:0:0:1381:0:0:0:0:0:0:0:0: +Flamingasz:39:1040:23297:1660:1273:0:0:0:0:0:0:0:0: +TooFreeBoy:38:1159:0:1725:1329:1121:1197:0:1071:0:7595:1061:0: +el capibara:64:0:1019:0:0:0:0:0:0:0:0:0:0: +maName1999:43:1169:0:1725:853:1115:0:0:1099:0:1065:0:0: +noobmager69:13:579:4397:1727:1381:577:0:0:1011:0:1063:1061:0: +Greg lad:53:1153:4315:1725:1373:1115:1191:0:1081:0:0:1061:0: +420 McWaffle:42:1169:4339:0:853:1129:0:0:1099:0:1065:0:0: +SwappingSpit:56:1053:4351:1725:853:1101:0:0:1099:0:1065:1061:0: +og Swervinn:74:0:0:0:0:0:0:0:0:0:0:0:0: +yurmari:41:0:0:0:1351:0:13660:0:0:0:0:0:0: +mrintensely8:120:0:0:0:0:0:0:0:0:0:0:0:0: +65s4gs6g:3:0:0:0:0:0:0:0:0:0:0:0:0: +Yippi kaye:32:5533:0:0:0:0:13660:0:0:0:0:0:0: +E D U A R DO:58:5533:0:552:1381:23404:0:0:1099:0:0:0:0: +RichBichLily:57:0:0:1710:20590:0:0:0:0:0:0:0:0: +ee PILLERI:94:0:0:0:0:0:0:0:0:0:0:0:0: +el tor001:84:0:0:1712:1381:0:0:0:0:0:0:0:0: +Ill have tht:49:6188:4325:1725:20155:1129:0:0:1099:0:1065:1061:0: +Li-Fan Wei:61:2665:1023:1731:853:2661:0:0:3479:0:1065:0:0: +CrsipDaddy69:62:1163:0:1731:1333:1127:1201:0:1079:0:1065:0:0: +50 Crow 2195:4:0:0:0:1351:0:0:0:0:0:0:0:0: +Nonce No:42:24315:13679:1725:853:24317:0:0:1099:0:1065:24323:0: +c6z0urhtkxou:3:0:0:0:0:0:0:0:0:0:0:0:0: +capulina 12:71:0:0:0:1359:0:0:0:0:0:0:0:0: +atti zuen:27:579:1019:1727:1387:577:0:0:0:0:0:0:0: +Wildmake:25:1153:1019:1725:1331:1101:1191:0:1067:0:0:1061:0: +iGod Butcher:69:2627:1027:1731:1333:1127:2629:0:2625:0:0:22701:0: +imma warlock:25:1153:0:0:1381:1115:1191:0:1067:0:1063:1061:0: +Kingviking11:50:1169:1021:1725:853:1115:0:0:1099:0:1065:1061:0: +Hookhda1995:51:1153:4365:1725:1333:1115:0:0:1067:0:0:1061:0: +OptusWIFI:27:0:4409:1727:1381:1035:0:0:1033:0:0:1061:0: +No Chance G:58:0:0:1725:853:1101:0:0:1099:0:1065:1061:0: +19F10V7XUA3L:3:0:0:0:0:0:0:0:0:0:0:0:0: +Karamjanda23:50:1169:4393:1731:853:1109:0:0:1099:0:1065:1061:0: +Duskthrow39:34:1017:4405:1478:853:1035:0:0:1099:0:0:1061:0: +skitzatics:36:0:0:1725:1331:0:0:0:1099:0:1065:0:0: +Vi Vinner:59:1153:1027:1725:853:1115:0:0:1099:0:1065:1061:0: +666 sauce:56:0:3789:10364:1333:0:0:0:0:0:1065:6666:0: +Purple Sclm:54:1169:24207:1725:853:1101:0:0:1099:0:1065:1061:0: +69leo:55:1163:1027:1478:1303:23392:1201:0:1079:0:0:0:0: +125i:77:1163:4345:1725:1333:1127:1201:0:1079:0:1065:1061:0: +Shady_4720:29:1017:4345:1727:1381:544:0:0:542:0:0:1061:0: +gotitondeck:30:1169:1019:1725:853:1129:0:0:1097:0:2912:1061:0: +Crispy chips:78:1163:1027:1731:853:1113:0:0:1099:0:1065:24313:0: +PlzRisk More:45:12518:4389:1725:853:1101:0:0:7378:0:1065:1837:0: +P K Bash Man:56:1169:0:1725:853:1129:0:0:1099:0:1065:1061:0: +Kieran2809:18:0:0:0:1355:0:0:0:0:0:0:1061:0: +Yes I m New:79:2665:1019:1731:1333:2661:2667:0:2663:0:1065:9006:0: +HMAY4QQ37YGB:3:0:0:0:0:0:0:0:0:0:0:0:0: +Soul Dig 934:50:1153:0:0:1323:1115:1191:0:1067:0:1059:1061:0: +Mr Medicated:63:1157:1027:1725:853:1119:0:0:1099:0:1065:1061:0: +Troll2k:4:1153:0:0:1277:1129:1171:0:0:0:0:1061:0: +Protect Hope:62:2665:1027:10364:853:2669:0:0:2655:0:2489:11840:0: +ITS ME KDP:14:0:0:1731:0:0:0:0:0:0:1063:1061:0: +anastasiaemp:28:1153:0:0:1277:1103:1173:0:1087:0:0:0:0: +Aka Flying:45:5527:4367:1725:853:0:0:0:0:0:1065:6666:0: +llSlayerlI:47:1169:4385:1725:853:1129:0:0:1099:0:1065:1061:0: +jO9hurley:61:1163:1021:1725:1333:1113:1201:0:1079:0:2912:1061:0: +lilaf:43:1169:0:1725:1319:1129:0:0:1099:0:1065:0:0: +Logamconner:3:0:0:0:0:0:0:0:0:0:0:0:0: +dunnbros1:64:1169:4383:1725:853:1129:0:0:1099:0:1065:1061:0: +345458472110:101:1169:4407:1725:853:1133:0:0:1099:0:1065:1061:0: +Blonkalex23:61:1163:0:1725:1333:1127:1201:0:1079:0:0:1061:0: +0hide0cry:67:0:0:1731:853:1129:0:0:1097:0:1063:0:0: +Magemac99:27:579:4365:0:1387:577:1177:0:1011:0:0:0:0: +Alcap0ny:54:1153:0:0:0:1105:0:0:1067:0:2932:1061:0: +WISDJGJJ5CK4:3:0:0:0:0:0:0:0:0:0:0:0:0: +Confiteor:81:0:0:0:853:0:0:0:0:0:0:0:0: +x Obey the:68:579:0:1727:1333:577:0:0:542:0:0:0:0: +sicriona:103:1163:1023:1725:1333:1127:1201:0:1079:0:2922:1061:0: +Deleo Hostem:74:2619:9753:1731:23334:2661:2659:0:2663:0:1065:2914:0: +K E N N O:89:10294:0:1731:1333:7372:0:0:1093:0:1065:1061:0: +T3CHe:47:579:0:1731:1333:577:0:0:1099:0:1063:0:0: +Kaiju_X:72:1169:0:1731:853:544:0:0:1099:0:1065:0:0: +Junior_steez:68:0:0:1725:1333:544:0:0:542:0:2912:1061:0: +BllI1C:52:1169:0:1725:853:1129:0:0:1099:0:1065:1061:0: +Husky Fellow:53:6335:20217:1725:853:1129:0:0:7380:0:1065:23288:0: +w33d pk u:73:1169:4373:1725:853:1135:0:0:1099:0:1065:1061:0: +Gl Im Ninat:55:1169:4333:1725:853:0:0:0:1099:0:1065:1061:0: +12iownu:56:579:0:1725:1333:577:0:0:1099:0:1065:0:0: +TernoWildust:87:0:0:1731:1381:577:0:0:542:0:1065:0:0: +xongbax:57:1169:4347:1725:853:1129:0:0:1099:0:1065:1061:0: +G0DS Of Edge:76:2673:1027:1731:1333:2669:2675:0:2671:0:1065:1061:0: +Slashz:46:1169:4351:0:853:1129:0:0:1099:0:1065:0:0: +MicKy242:66:579:1021:0:1333:1121:1197:0:1085:0:1059:1061:0: +God trust:70:0:0:1725:1333:544:0:0:1099:0:1065:0:0: +Nodak Josh:69:12283:13679:1731:853:7362:0:0:7378:0:1065:1061:0: +ryuga attak:66:1163:0:1725:1333:1113:1201:0:1079:0:0:1061:0: +OldeEnglish:74:1163:0:1731:1333:1127:0:0:1079:0:0:0:0: +Vettige Sam:28:6656:0:1654:0:6654:0:0:6655:0:2902:0:0: +sitdown:61:1169:0:1704:868:1129:0:0:2497:0:2491:1837:0: +Zamppaliin:57:0:0:0:0:0:0:0:0:0:0:0:0: +kuchar23:94:1163:1019:1725:853:1135:0:0:1079:0:1065:1061:0: +Tyuio594:69:0:0:0:0:0:0:0:0:0:0:0:0: +oZeZo:90:0:0:0:1359:0:0:0:0:0:0:0:0: +Mrmagicmatt:50:1153:4377:1725:1333:1115:0:0:1067:0:1059:1061:0: +iism0ke:51:1169:4325:1725:853:1129:0:0:1099:0:1065:626:0: +Dzestiz:3:5533:0:21314:20779:0:24325:0:3059:0:3060:3061:0: +Justiniksass:3:0:0:0:0:0:0:0:0:0:0:0:0: +rag 1:66:2619:23410:1731:853:2661:0:0:2663:0:1065:23285:0: diff --git a/data/botdata/namesandarmorscript b/data/botdata/namesandarmorscript new file mode 100644 index 0000000..25b0000 --- /dev/null +++ b/data/botdata/namesandarmorscript @@ -0,0 +1,78 @@ +/* + +This script is run with OSBot. Created by Red Bracket. + +namesandarmor.txt has the following format: +name:cblevel:helmet:cape:neck:weapon:chest:shield:unknown:legs:unknown:gloves:boots: + +*/ + + +import org.osbot.rs07.api.def.ItemDefinition; +import org.osbot.rs07.api.model.Player; +import org.osbot.rs07.script.Script; +import org.osbot.rs07.script.ScriptManifest; + +import java.io.*; +import java.util.ArrayList; + +@ScriptManifest(name = "Fetch data10", author = "b4", version = 2, logo = "", info = "info") +public class Reader extends Script { + + private ArrayList names = new ArrayList<>(); + + @Override + public int onLoop() { + Player p = getPlayers().closest(o -> !names.contains(o.getName())); + if (p != null) + { + names.add(p.getName()); + String equipment = getOthersEquipment(p); + //Format: + //name:cblevel:helmet:cape:neck:weapon:chest:shield:unknown:legs:unknown:gloves:boots: + log2(p.getName() + + ":" + p.getCombatLevel() + + ":" + equipment); + } + return 50; + } + + private void log2(String msg) + { + try { + log(msg); + FileReader fr = new FileReader(getDirectoryData() + "Data.txt"); + BufferedReader br = new BufferedReader(fr); + for (String line; (line = br.readLine()) != null; ) { + if (line.split(":")[0].equals(msg.split(":")[0])) + { + log("Not adding that one, since we already have it"); + return; + } + } + + + FileWriter fw = new FileWriter(getDirectoryData() + "Data.txt", true); + BufferedWriter bw = new BufferedWriter(fw); + PrintWriter out = new PrintWriter(bw); + out.println(msg); + out.close(); + } catch (Exception e) { + log(e); + } + } + + private String getOthersEquipment(Player p) { + String equipmentList = ""; + if(p != null) { + int[] equipment = p.getDefinition().getAppearance(); + for (int value : equipment) { + if (value - 512 > 0) + equipmentList += ItemDefinition.forId(value - 512).getId() + ":"; + else + equipmentList += 0 + ":"; + } + } + return equipmentList; + } +} diff --git a/data/botdata/pestcontrolcopies.txt b/data/botdata/pestcontrolcopies.txt new file mode 100644 index 0000000..8227fbb --- /dev/null +++ b/data/botdata/pestcontrolcopies.txt @@ -0,0 +1,11 @@ +#Format: +#name:cblevel:helmet:cape:neck:weapon:chest:shield:unknown:legs:unknown:gloves:boots: +sicriona:103:1163:1023:1725:1333:1127:1201:0:1079:0:2922:1061:0: +czar:110:1149:6568:1704:4587:10564:6524:0:4585:0:1059:1061: +loving puppy:95:11665:6568:1704:4587:8839:14767:0:8840:0:8842:1061: +rattle63:83:14096:10499:1704:4151:14094:14767:0:14095:0:8842:1061: +baluga:110:10828:6568:10354:4151:3140:6524:0:4087:0:8842:11732: +crabcake:115:10828:10446:10354:4151:10564:6524:0:4087:0:8842:11732: +Red:94:1163:6568:10354:7158:10564:0:0:4087:0:1059:11732: +puglet:120:10828:6568:6585:11696:4757:0:0:8840:0:1059:3105: +linux:10000:10828:10069:1725:4151:3140:14767:0:4087:0:1059:3105: diff --git a/data/cache/main_file_cache.dat2 b/data/cache/main_file_cache.dat2 new file mode 100644 index 0000000..c88b179 Binary files /dev/null and b/data/cache/main_file_cache.dat2 differ diff --git a/data/cache/main_file_cache.idx0 b/data/cache/main_file_cache.idx0 new file mode 100644 index 0000000..29da3cf Binary files /dev/null and b/data/cache/main_file_cache.idx0 differ diff --git a/data/cache/main_file_cache.idx1 b/data/cache/main_file_cache.idx1 new file mode 100644 index 0000000..ed15fcd Binary files /dev/null and b/data/cache/main_file_cache.idx1 differ diff --git a/data/cache/main_file_cache.idx10 b/data/cache/main_file_cache.idx10 new file mode 100644 index 0000000..6a877e7 Binary files /dev/null and b/data/cache/main_file_cache.idx10 differ diff --git a/data/cache/main_file_cache.idx11 b/data/cache/main_file_cache.idx11 new file mode 100644 index 0000000..4b01cff Binary files /dev/null and b/data/cache/main_file_cache.idx11 differ diff --git a/data/cache/main_file_cache.idx12 b/data/cache/main_file_cache.idx12 new file mode 100644 index 0000000..3d70b60 Binary files /dev/null and b/data/cache/main_file_cache.idx12 differ diff --git a/data/cache/main_file_cache.idx13 b/data/cache/main_file_cache.idx13 new file mode 100644 index 0000000..b83d943 Binary files /dev/null and b/data/cache/main_file_cache.idx13 differ diff --git a/data/cache/main_file_cache.idx14 b/data/cache/main_file_cache.idx14 new file mode 100644 index 0000000..0364b66 Binary files /dev/null and b/data/cache/main_file_cache.idx14 differ diff --git a/data/cache/main_file_cache.idx15 b/data/cache/main_file_cache.idx15 new file mode 100644 index 0000000..8342b0f Binary files /dev/null and b/data/cache/main_file_cache.idx15 differ diff --git a/data/cache/main_file_cache.idx16 b/data/cache/main_file_cache.idx16 new file mode 100644 index 0000000..7d42f66 Binary files /dev/null and b/data/cache/main_file_cache.idx16 differ diff --git a/data/cache/main_file_cache.idx17 b/data/cache/main_file_cache.idx17 new file mode 100644 index 0000000..fe49379 Binary files /dev/null and b/data/cache/main_file_cache.idx17 differ diff --git a/data/cache/main_file_cache.idx18 b/data/cache/main_file_cache.idx18 new file mode 100644 index 0000000..479ae87 Binary files /dev/null and b/data/cache/main_file_cache.idx18 differ diff --git a/data/cache/main_file_cache.idx19 b/data/cache/main_file_cache.idx19 new file mode 100644 index 0000000..810189b Binary files /dev/null and b/data/cache/main_file_cache.idx19 differ diff --git a/data/cache/main_file_cache.idx2 b/data/cache/main_file_cache.idx2 new file mode 100644 index 0000000..73bf75f Binary files /dev/null and b/data/cache/main_file_cache.idx2 differ diff --git a/data/cache/main_file_cache.idx20 b/data/cache/main_file_cache.idx20 new file mode 100644 index 0000000..d988d17 Binary files /dev/null and b/data/cache/main_file_cache.idx20 differ diff --git a/data/cache/main_file_cache.idx21 b/data/cache/main_file_cache.idx21 new file mode 100644 index 0000000..d12d8a7 Binary files /dev/null and b/data/cache/main_file_cache.idx21 differ diff --git a/data/cache/main_file_cache.idx22 b/data/cache/main_file_cache.idx22 new file mode 100644 index 0000000..afdc8d5 Binary files /dev/null and b/data/cache/main_file_cache.idx22 differ diff --git a/data/cache/main_file_cache.idx23 b/data/cache/main_file_cache.idx23 new file mode 100644 index 0000000..0244a3a Binary files /dev/null and b/data/cache/main_file_cache.idx23 differ diff --git a/data/cache/main_file_cache.idx24 b/data/cache/main_file_cache.idx24 new file mode 100644 index 0000000..2b71c70 Binary files /dev/null and b/data/cache/main_file_cache.idx24 differ diff --git a/data/cache/main_file_cache.idx25 b/data/cache/main_file_cache.idx25 new file mode 100644 index 0000000..b4ddb25 Binary files /dev/null and b/data/cache/main_file_cache.idx25 differ diff --git a/data/cache/main_file_cache.idx255 b/data/cache/main_file_cache.idx255 new file mode 100644 index 0000000..f23e91e Binary files /dev/null and b/data/cache/main_file_cache.idx255 differ diff --git a/data/cache/main_file_cache.idx26 b/data/cache/main_file_cache.idx26 new file mode 100644 index 0000000..910dd24 Binary files /dev/null and b/data/cache/main_file_cache.idx26 differ diff --git a/data/cache/main_file_cache.idx27 b/data/cache/main_file_cache.idx27 new file mode 100644 index 0000000..ce542ef --- /dev/null +++ b/data/cache/main_file_cache.idx27 @@ -0,0 +1 @@ +ÿ \ No newline at end of file diff --git a/data/cache/main_file_cache.idx28 b/data/cache/main_file_cache.idx28 new file mode 100644 index 0000000..1aebb1e Binary files /dev/null and b/data/cache/main_file_cache.idx28 differ diff --git a/data/cache/main_file_cache.idx3 b/data/cache/main_file_cache.idx3 new file mode 100644 index 0000000..a3ac3e9 Binary files /dev/null and b/data/cache/main_file_cache.idx3 differ diff --git a/data/cache/main_file_cache.idx4 b/data/cache/main_file_cache.idx4 new file mode 100644 index 0000000..2a4fe1a Binary files /dev/null and b/data/cache/main_file_cache.idx4 differ diff --git a/data/cache/main_file_cache.idx5 b/data/cache/main_file_cache.idx5 new file mode 100644 index 0000000..088dca5 Binary files /dev/null and b/data/cache/main_file_cache.idx5 differ diff --git a/data/cache/main_file_cache.idx6 b/data/cache/main_file_cache.idx6 new file mode 100644 index 0000000..ec8863f Binary files /dev/null and b/data/cache/main_file_cache.idx6 differ diff --git a/data/cache/main_file_cache.idx7 b/data/cache/main_file_cache.idx7 new file mode 100644 index 0000000..2623b09 Binary files /dev/null and b/data/cache/main_file_cache.idx7 differ diff --git a/data/cache/main_file_cache.idx8 b/data/cache/main_file_cache.idx8 new file mode 100644 index 0000000..166ec53 Binary files /dev/null and b/data/cache/main_file_cache.idx8 differ diff --git a/data/cache/main_file_cache.idx9 b/data/cache/main_file_cache.idx9 new file mode 100644 index 0000000..d0703cb Binary files /dev/null and b/data/cache/main_file_cache.idx9 differ diff --git a/data/eco/ge_resource.emp b/data/eco/ge_resource.emp new file mode 100644 index 0000000..f96c401 --- /dev/null +++ b/data/eco/ge_resource.emp @@ -0,0 +1 @@ +ÿÿ \ No newline at end of file diff --git a/data/eco/gedb.xml b/data/eco/gedb.xml new file mode 100644 index 0000000..15a4744 --- /dev/null +++ b/data/eco/gedb.xml @@ -0,0 +1,102434 @@ + + + + 0 + 1 + 0 + 0 + 0 + + + 1 + 1 + 0 + 0 + 0 + + + 2 + 5 + 0 + 0 + 0 + + + 3 + 1 + 0 + 0 + 0 + + + 4 + 5 + 0 + 0 + 0 + + + 5 + 10 + 0 + 0 + 0 + + + 6 + 187500 + 0 + 0 + 0 + + + 7 + 187500 + 0 + 0 + 0 + + + 8 + 187500 + 0 + 0 + 0 + + + 9 + 187500 + 0 + 0 + 0 + + + 10 + 187500 + 0 + 0 + 0 + + + 11 + 187500 + 0 + 0 + 0 + + + 12 + 187500 + 0 + 0 + 0 + + + 13 + 187500 + 0 + 0 + 0 + + + 14 + 1 + 0 + 0 + 0 + + + 15 + 10 + 0 + 0 + 0 + + + 16 + 10 + 0 + 0 + 0 + + + 17 + 10 + 0 + 0 + 0 + + + 18 + 2 + 0 + 0 + 0 + + + 19 + 3 + 0 + 0 + 0 + + + 20 + 1 + 0 + 0 + 0 + + + 21 + 1 + 0 + 0 + 0 + + + 22 + 1 + 0 + 0 + 0 + + + 23 + 1 + 0 + 0 + 0 + + + 24 + 1 + 0 + 0 + 0 + + + 25 + 1 + 0 + 0 + 0 + + + 26 + 1 + 0 + 0 + 0 + + + 27 + 1 + 0 + 0 + 0 + + + 28 + 3 + 0 + 0 + 0 + + + 29 + 1 + 0 + 0 + 0 + + + 30 + 6 + 0 + 0 + 0 + + + 31 + 1 + 0 + 0 + 0 + + + 32 + 3 + 0 + 0 + 0 + + + 33 + 3 + 0 + 0 + 0 + + + 34 + 3 + 0 + 0 + 0 + + + 35 + 200 + 0 + 0 + 0 + + + 36 + 3 + 0 + 0 + 0 + + + 37 + 3 + 0 + 0 + 0 + + + 38 + 3 + 0 + 0 + 0 + + + 39 + 10 + 0 + 0 + 0 + + + 40 + 26 + 0 + 0 + 0 + + + 41 + 36 + 0 + 0 + 0 + + + 42 + 68 + 0 + 0 + 0 + + + 43 + 160 + 0 + 0 + 0 + + + 44 + 460 + 0 + 0 + 0 + + + 45 + 7 + 0 + 0 + 0 + + + 46 + 12 + 0 + 0 + 0 + + + 47 + 95 + 0 + 0 + 0 + + + 48 + 60 + 0 + 0 + 0 + + + 49 + 60 + 0 + 0 + 0 + + + 50 + 23 + 0 + 0 + 0 + + + 51 + 23 + 0 + 0 + 0 + + + 52 + 12 + 0 + 0 + 0 + + + 53 + 1 + 0 + 0 + 0 + + + 54 + 50 + 0 + 0 + 0 + + + 55 + 50 + 0 + 0 + 0 + + + 56 + 80 + 0 + 0 + 0 + + + 57 + 80 + 0 + 0 + 0 + + + 58 + 160 + 0 + 0 + 0 + + + 59 + 160 + 0 + 0 + 0 + + + 60 + 100 + 0 + 0 + 0 + + + 61 + 100 + 0 + 0 + 0 + + + 62 + 320 + 0 + 0 + 0 + + + 63 + 320 + 0 + 0 + 0 + + + 64 + 200 + 0 + 0 + 0 + + + 65 + 200 + 0 + 0 + 0 + + + 66 + 640 + 0 + 0 + 0 + + + 67 + 640 + 0 + 0 + 0 + + + 68 + 400 + 0 + 0 + 0 + + + 69 + 400 + 0 + 0 + 0 + + + 70 + 1280 + 0 + 0 + 0 + + + 71 + 1280 + 0 + 0 + 0 + + + 72 + 800 + 0 + 0 + 0 + + + 73 + 800 + 0 + 0 + 0 + + + 74 + 10 + 0 + 0 + 0 + + + 75 + 12 + 0 + 0 + 0 + + + 76 + 1 + 0 + 0 + 0 + + + 77 + 5 + 0 + 0 + 0 + + + 78 + 2 + 0 + 0 + 0 + + + 79 + 1 + 0 + 0 + 0 + + + 80 + 1 + 0 + 0 + 0 + + + 81 + 1 + 0 + 0 + 0 + + + 82 + 1 + 0 + 0 + 0 + + + 83 + 15 + 0 + 0 + 0 + + + 84 + 15 + 0 + 0 + 0 + + + 85 + 1 + 0 + 0 + 0 + + + 86 + 12 + 0 + 0 + 0 + + + 87 + 12 + 0 + 0 + 0 + + + 88 + 6 + 0 + 0 + 0 + + + 89 + 6 + 0 + 0 + 0 + + + 90 + 5 + 0 + 0 + 0 + + + 91 + 3 + 0 + 0 + 0 + + + 92 + 3 + 0 + 0 + 0 + + + 93 + 5 + 0 + 0 + 0 + + + 94 + 5 + 0 + 0 + 0 + + + 95 + 11 + 0 + 0 + 0 + + + 96 + 11 + 0 + 0 + 0 + + + 97 + 20 + 0 + 0 + 0 + + + 98 + 20 + 0 + 0 + 0 + + + 99 + 25 + 0 + 0 + 0 + + + 100 + 25 + 0 + 0 + 0 + + + 101 + 40 + 0 + 0 + 0 + + + 102 + 40 + 0 + 0 + 0 + + + 103 + 48 + 0 + 0 + 0 + + + 104 + 48 + 0 + 0 + 0 + + + 105 + 54 + 0 + 0 + 0 + + + 106 + 54 + 0 + 0 + 0 + + + 107 + 65 + 0 + 0 + 0 + + + 108 + 65 + 0 + 0 + 0 + + + 109 + 70 + 0 + 0 + 0 + + + 110 + 70 + 0 + 0 + 0 + + + 111 + 25 + 0 + 0 + 0 + + + 112 + 25 + 0 + 0 + 0 + + + 113 + 1500 + 0 + 0 + 0 + + + 114 + 1500 + 0 + 0 + 0 + + + 115 + 1200 + 0 + 0 + 0 + + + 116 + 1200 + 0 + 0 + 0 + + + 117 + 900 + 0 + 0 + 0 + + + 118 + 900 + 0 + 0 + 0 + + + 119 + 600 + 0 + 0 + 0 + + + 120 + 600 + 0 + 0 + 0 + + + 121 + 560 + 0 + 0 + 0 + + + 122 + 560 + 0 + 0 + 0 + + + 123 + 420 + 0 + 0 + 0 + + + 124 + 420 + 0 + 0 + 0 + + + 125 + 280 + 0 + 0 + 0 + + + 126 + 280 + 0 + 0 + 0 + + + 127 + 88 + 0 + 0 + 0 + + + 128 + 88 + 0 + 0 + 0 + + + 129 + 66 + 0 + 0 + 0 + + + 130 + 66 + 0 + 0 + 0 + + + 131 + 44 + 0 + 0 + 0 + + + 132 + 44 + 0 + 0 + 0 + + + 133 + 880 + 0 + 0 + 0 + + + 134 + 880 + 0 + 0 + 0 + + + 135 + 660 + 0 + 0 + 0 + + + 136 + 660 + 0 + 0 + 0 + + + 137 + 440 + 0 + 0 + 0 + + + 138 + 440 + 0 + 0 + 0 + + + 139 + 152 + 0 + 0 + 0 + + + 140 + 152 + 0 + 0 + 0 + + + 141 + 114 + 0 + 0 + 0 + + + 142 + 114 + 0 + 0 + 0 + + + 143 + 76 + 0 + 0 + 0 + + + 144 + 76 + 0 + 0 + 0 + + + 145 + 180 + 0 + 0 + 0 + + + 146 + 180 + 0 + 0 + 0 + + + 147 + 135 + 0 + 0 + 0 + + + 148 + 135 + 0 + 0 + 0 + + + 149 + 90 + 0 + 0 + 0 + + + 150 + 90 + 0 + 0 + 0 + + + 151 + 200 + 0 + 0 + 0 + + + 152 + 200 + 0 + 0 + 0 + + + 153 + 150 + 0 + 0 + 0 + + + 154 + 150 + 0 + 0 + 0 + + + 155 + 100 + 0 + 0 + 0 + + + 156 + 100 + 0 + 0 + 0 + + + 157 + 220 + 0 + 0 + 0 + + + 158 + 220 + 0 + 0 + 0 + + + 159 + 165 + 0 + 0 + 0 + + + 160 + 165 + 0 + 0 + 0 + + + 161 + 110 + 0 + 0 + 0 + + + 162 + 110 + 0 + 0 + 0 + + + 163 + 264 + 0 + 0 + 0 + + + 164 + 264 + 0 + 0 + 0 + + + 165 + 198 + 0 + 0 + 0 + + + 166 + 198 + 0 + 0 + 0 + + + 167 + 132 + 0 + 0 + 0 + + + 168 + 132 + 0 + 0 + 0 + + + 169 + 288 + 0 + 0 + 0 + + + 170 + 288 + 0 + 0 + 0 + + + 171 + 216 + 0 + 0 + 0 + + + 172 + 216 + 0 + 0 + 0 + + + 173 + 144 + 0 + 0 + 0 + + + 174 + 144 + 0 + 0 + 0 + + + 175 + 288 + 0 + 0 + 0 + + + 176 + 288 + 0 + 0 + 0 + + + 177 + 216 + 0 + 0 + 0 + + + 178 + 216 + 0 + 0 + 0 + + + 179 + 144 + 0 + 0 + 0 + + + 180 + 144 + 0 + 0 + 0 + + + 181 + 288 + 0 + 0 + 0 + + + 182 + 288 + 0 + 0 + 0 + + + 183 + 216 + 0 + 0 + 0 + + + 184 + 216 + 0 + 0 + 0 + + + 185 + 144 + 0 + 0 + 0 + + + 186 + 144 + 0 + 0 + 0 + + + 187 + 144 + 0 + 0 + 0 + + + 188 + 144 + 0 + 0 + 0 + + + 189 + 175 + 0 + 0 + 0 + + + 190 + 175 + 0 + 0 + 0 + + + 191 + 150 + 0 + 0 + 0 + + + 192 + 150 + 0 + 0 + 0 + + + 193 + 125 + 0 + 0 + 0 + + + 194 + 125 + 0 + 0 + 0 + + + 195 + 1 + 0 + 0 + 0 + + + 196 + 1 + 0 + 0 + 0 + + + 197 + 20 + 0 + 0 + 0 + + + 198 + 20 + 0 + 0 + 0 + + + 199 + 1 + 0 + 0 + 0 + + + 200 + 1 + 0 + 0 + 0 + + + 201 + 1 + 0 + 0 + 0 + + + 202 + 1 + 0 + 0 + 0 + + + 203 + 1 + 0 + 0 + 0 + + + 204 + 1 + 0 + 0 + 0 + + + 205 + 1 + 0 + 0 + 0 + + + 206 + 1 + 0 + 0 + 0 + + + 207 + 1 + 0 + 0 + 0 + + + 208 + 1 + 0 + 0 + 0 + + + 209 + 1 + 0 + 0 + 0 + + + 210 + 1 + 0 + 0 + 0 + + + 211 + 1 + 0 + 0 + 0 + + + 212 + 1 + 0 + 0 + 0 + + + 213 + 1 + 0 + 0 + 0 + + + 214 + 1 + 0 + 0 + 0 + + + 215 + 1 + 0 + 0 + 0 + + + 216 + 1 + 0 + 0 + 0 + + + 217 + 1 + 0 + 0 + 0 + + + 218 + 1 + 0 + 0 + 0 + + + 219 + 1 + 0 + 0 + 0 + + + 220 + 1 + 0 + 0 + 0 + + + 221 + 3 + 0 + 0 + 0 + + + 222 + 3 + 0 + 0 + 0 + + + 223 + 7 + 0 + 0 + 0 + + + 224 + 7 + 0 + 0 + 0 + + + 225 + 7 + 0 + 0 + 0 + + + 226 + 7 + 0 + 0 + 0 + + + 227 + 10 + 0 + 0 + 0 + + + 228 + 10 + 0 + 0 + 0 + + + 229 + 5 + 0 + 0 + 0 + + + 230 + 5 + 0 + 0 + 0 + + + 231 + 10 + 0 + 0 + 0 + + + 232 + 10 + 0 + 0 + 0 + + + 233 + 4 + 0 + 0 + 0 + + + 234 + 4 + 0 + 0 + 0 + + + 235 + 20 + 0 + 0 + 0 + + + 236 + 20 + 0 + 0 + 0 + + + 237 + 20 + 0 + 0 + 0 + + + 238 + 20 + 0 + 0 + 0 + + + 239 + 10 + 0 + 0 + 0 + + + 240 + 10 + 0 + 0 + 0 + + + 241 + 52 + 0 + 0 + 0 + + + 242 + 52 + 0 + 0 + 0 + + + 243 + 50 + 0 + 0 + 0 + + + 244 + 50 + 0 + 0 + 0 + + + 245 + 1 + 0 + 0 + 0 + + + 246 + 1 + 0 + 0 + 0 + + + 247 + 1 + 0 + 0 + 0 + + + 248 + 1 + 0 + 0 + 0 + + + 249 + 3 + 0 + 0 + 0 + + + 250 + 3 + 0 + 0 + 0 + + + 251 + 5 + 0 + 0 + 0 + + + 252 + 5 + 0 + 0 + 0 + + + 253 + 11 + 0 + 0 + 0 + + + 254 + 11 + 0 + 0 + 0 + + + 255 + 20 + 0 + 0 + 0 + + + 256 + 20 + 0 + 0 + 0 + + + 257 + 25 + 0 + 0 + 0 + + + 258 + 25 + 0 + 0 + 0 + + + 259 + 40 + 0 + 0 + 0 + + + 260 + 40 + 0 + 0 + 0 + + + 261 + 48 + 0 + 0 + 0 + + + 262 + 48 + 0 + 0 + 0 + + + 263 + 54 + 0 + 0 + 0 + + + 264 + 54 + 0 + 0 + 0 + + + 265 + 65 + 0 + 0 + 0 + + + 266 + 65 + 0 + 0 + 0 + + + 267 + 70 + 0 + 0 + 0 + + + 268 + 70 + 0 + 0 + 0 + + + 269 + 75 + 0 + 0 + 0 + + + 270 + 75 + 0 + 0 + 0 + + + 271 + 1 + 0 + 0 + 0 + + + 272 + 1 + 0 + 0 + 0 + + + 273 + 1 + 0 + 0 + 0 + + + 274 + 1 + 0 + 0 + 0 + + + 275 + 1 + 0 + 0 + 0 + + + 276 + 3 + 0 + 0 + 0 + + + 277 + 3 + 0 + 0 + 0 + + + 278 + 3 + 0 + 0 + 0 + + + 279 + 3 + 0 + 0 + 0 + + + 280 + 1 + 0 + 0 + 0 + + + 281 + 1 + 0 + 0 + 0 + + + 282 + 1 + 0 + 0 + 0 + + + 283 + 1 + 0 + 0 + 0 + + + 284 + 50 + 0 + 0 + 0 + + + 285 + 50 + 0 + 0 + 0 + + + 286 + 40 + 0 + 0 + 0 + + + 287 + 40 + 0 + 0 + 0 + + + 288 + 40 + 0 + 0 + 0 + + + 289 + 40 + 0 + 0 + 0 + + + 290 + 2 + 0 + 0 + 0 + + + 291 + 5 + 0 + 0 + 0 + + + 292 + 2 + 0 + 0 + 0 + + + 293 + 1 + 0 + 0 + 0 + + + 294 + 1 + 0 + 0 + 0 + + + 295 + 1 + 0 + 0 + 0 + + + 296 + 1 + 0 + 0 + 0 + + + 297 + 1 + 0 + 0 + 0 + + + 298 + 1 + 0 + 0 + 0 + + + 299 + 300 + 0 + 0 + 0 + + + 300 + 3 + 0 + 0 + 0 + + + 301 + 20 + 0 + 0 + 0 + + + 302 + 20 + 0 + 0 + 0 + + + 303 + 5 + 0 + 0 + 0 + + + 304 + 5 + 0 + 0 + 0 + + + 305 + 20 + 0 + 0 + 0 + + + 306 + 20 + 0 + 0 + 0 + + + 307 + 5 + 0 + 0 + 0 + + + 308 + 5 + 0 + 0 + 0 + + + 309 + 5 + 0 + 0 + 0 + + + 310 + 5 + 0 + 0 + 0 + + + 311 + 5 + 0 + 0 + 0 + + + 312 + 5 + 0 + 0 + 0 + + + 313 + 3 + 0 + 0 + 0 + + + 314 + 6 + 0 + 0 + 0 + + + 315 + 5 + 0 + 0 + 0 + + + 316 + 5 + 0 + 0 + 0 + + + 317 + 6 + 0 + 0 + 0 + + + 318 + 6 + 0 + 0 + 0 + + + 319 + 15 + 0 + 0 + 0 + + + 320 + 15 + 0 + 0 + 0 + + + 321 + 16 + 0 + 0 + 0 + + + 322 + 16 + 0 + 0 + 0 + + + 323 + 1 + 0 + 0 + 0 + + + 324 + 1 + 0 + 0 + 0 + + + 325 + 10 + 0 + 0 + 0 + + + 326 + 10 + 0 + 0 + 0 + + + 327 + 10 + 0 + 0 + 0 + + + 328 + 10 + 0 + 0 + 0 + + + 329 + 88 + 0 + 0 + 0 + + + 330 + 88 + 0 + 0 + 0 + + + 331 + 92 + 0 + 0 + 0 + + + 332 + 92 + 0 + 0 + 0 + + + 333 + 68 + 0 + 0 + 0 + + + 334 + 68 + 0 + 0 + 0 + + + 335 + 20 + 0 + 0 + 0 + + + 336 + 20 + 0 + 0 + 0 + + + 337 + 50 + 0 + 0 + 0 + + + 338 + 50 + 0 + 0 + 0 + + + 339 + 26 + 0 + 0 + 0 + + + 340 + 26 + 0 + 0 + 0 + + + 341 + 34 + 0 + 0 + 0 + + + 342 + 34 + 0 + 0 + 0 + + + 343 + 1 + 0 + 0 + 0 + + + 344 + 1 + 0 + 0 + 0 + + + 345 + 16 + 0 + 0 + 0 + + + 346 + 16 + 0 + 0 + 0 + + + 347 + 15 + 0 + 0 + 0 + + + 348 + 15 + 0 + 0 + 0 + + + 349 + 25 + 0 + 0 + 0 + + + 350 + 25 + 0 + 0 + 0 + + + 351 + 25 + 0 + 0 + 0 + + + 352 + 25 + 0 + 0 + 0 + + + 353 + 26 + 0 + 0 + 0 + + + 354 + 26 + 0 + 0 + 0 + + + 355 + 17 + 0 + 0 + 0 + + + 356 + 17 + 0 + 0 + 0 + + + 357 + 1 + 0 + 0 + 0 + + + 358 + 1 + 0 + 0 + 0 + + + 359 + 120 + 0 + 0 + 0 + + + 360 + 120 + 0 + 0 + 0 + + + 361 + 120 + 0 + 0 + 0 + + + 362 + 120 + 0 + 0 + 0 + + + 363 + 280 + 0 + 0 + 0 + + + 364 + 280 + 0 + 0 + 0 + + + 365 + 270 + 0 + 0 + 0 + + + 366 + 270 + 0 + 0 + 0 + + + 367 + 1 + 0 + 0 + 0 + + + 368 + 1 + 0 + 0 + 0 + + + 369 + 1 + 0 + 0 + 0 + + + 370 + 1 + 0 + 0 + 0 + + + 371 + 340 + 0 + 0 + 0 + + + 372 + 340 + 0 + 0 + 0 + + + 373 + 400 + 0 + 0 + 0 + + + 374 + 400 + 0 + 0 + 0 + + + 375 + 1 + 0 + 0 + 0 + + + 376 + 1 + 0 + 0 + 0 + + + 377 + 284 + 0 + 0 + 0 + + + 378 + 284 + 0 + 0 + 0 + + + 379 + 268 + 0 + 0 + 0 + + + 380 + 268 + 0 + 0 + 0 + + + 381 + 1 + 0 + 0 + 0 + + + 382 + 1 + 0 + 0 + 0 + + + 383 + 300 + 0 + 0 + 0 + + + 384 + 300 + 0 + 0 + 0 + + + 385 + 300 + 0 + 0 + 0 + + + 386 + 300 + 0 + 0 + 0 + + + 387 + 1 + 0 + 0 + 0 + + + 388 + 1 + 0 + 0 + 0 + + + 389 + 500 + 0 + 0 + 0 + + + 390 + 500 + 0 + 0 + 0 + + + 391 + 500 + 0 + 0 + 0 + + + 392 + 500 + 0 + 0 + 0 + + + 393 + 1 + 0 + 0 + 0 + + + 394 + 1 + 0 + 0 + 0 + + + 395 + 500 + 0 + 0 + 0 + + + 396 + 500 + 0 + 0 + 0 + + + 397 + 500 + 0 + 0 + 0 + + + 398 + 500 + 0 + 0 + 0 + + + 399 + 1 + 0 + 0 + 0 + + + 400 + 1 + 0 + 0 + 0 + + + 401 + 2 + 0 + 0 + 0 + + + 402 + 2 + 0 + 0 + 0 + + + 403 + 2 + 0 + 0 + 0 + + + 404 + 2 + 0 + 0 + 0 + + + 405 + 50 + 0 + 0 + 0 + + + 406 + 50 + 0 + 0 + 0 + + + 407 + 200 + 0 + 0 + 0 + + + 408 + 200 + 0 + 0 + 0 + + + 409 + 5 + 0 + 0 + 0 + + + 410 + 5 + 0 + 0 + 0 + + + 411 + 112 + 0 + 0 + 0 + + + 412 + 112 + 0 + 0 + 0 + + + 413 + 1400 + 0 + 0 + 0 + + + 414 + 1400 + 0 + 0 + 0 + + + 415 + 10 + 0 + 0 + 0 + + + 416 + 1 + 0 + 0 + 0 + + + 417 + 1 + 0 + 0 + 0 + + + 418 + 1 + 0 + 0 + 0 + + + 419 + 1 + 0 + 0 + 0 + + + 420 + 1 + 0 + 0 + 0 + + + 421 + 10 + 0 + 0 + 0 + + + 422 + 1 + 0 + 0 + 0 + + + 423 + 1 + 0 + 0 + 0 + + + 424 + 1 + 0 + 0 + 0 + + + 425 + 1 + 0 + 0 + 0 + + + 426 + 5 + 0 + 0 + 0 + + + 427 + 5 + 0 + 0 + 0 + + + 428 + 5 + 0 + 0 + 0 + + + 429 + 5 + 0 + 0 + 0 + + + 430 + 40 + 0 + 0 + 0 + + + 431 + 30 + 0 + 0 + 0 + + + 432 + 1 + 0 + 0 + 0 + + + 433 + 1 + 0 + 0 + 0 + + + 434 + 1 + 0 + 0 + 0 + + + 435 + 1 + 0 + 0 + 0 + + + 436 + 20 + 0 + 0 + 0 + + + 437 + 20 + 0 + 0 + 0 + + + 438 + 20 + 0 + 0 + 0 + + + 439 + 20 + 0 + 0 + 0 + + + 440 + 17 + 0 + 0 + 0 + + + 441 + 17 + 0 + 0 + 0 + + + 442 + 75 + 0 + 0 + 0 + + + 443 + 75 + 0 + 0 + 0 + + + 444 + 150 + 0 + 0 + 0 + + + 445 + 150 + 0 + 0 + 0 + + + 446 + 150 + 0 + 0 + 0 + + + 447 + 162 + 0 + 0 + 0 + + + 448 + 162 + 0 + 0 + 0 + + + 449 + 400 + 0 + 0 + 0 + + + 450 + 400 + 0 + 0 + 0 + + + 451 + 3200 + 0 + 0 + 0 + + + 452 + 3200 + 0 + 0 + 0 + + + 453 + 45 + 0 + 0 + 0 + + + 454 + 45 + 0 + 0 + 0 + + + 455 + 10 + 0 + 0 + 0 + + + 456 + 10 + 0 + 0 + 0 + + + 457 + 10 + 0 + 0 + 0 + + + 458 + 10 + 0 + 0 + 0 + + + 459 + 10 + 0 + 0 + 0 + + + 460 + 10 + 0 + 0 + 0 + + + 461 + 10 + 0 + 0 + 0 + + + 462 + 10 + 0 + 0 + 0 + + + 463 + 10 + 0 + 0 + 0 + + + 464 + 1 + 0 + 0 + 0 + + + 465 + 1 + 0 + 0 + 0 + + + 466 + 1 + 0 + 0 + 0 + + + 467 + 1 + 0 + 0 + 0 + + + 468 + 1 + 0 + 0 + 0 + + + 469 + 1 + 0 + 0 + 0 + + + 470 + 1 + 0 + 0 + 0 + + + 471 + 1 + 0 + 0 + 0 + + + 472 + 17 + 0 + 0 + 0 + + + 473 + 17 + 0 + 0 + 0 + + + 474 + 43 + 0 + 0 + 0 + + + 475 + 43 + 0 + 0 + 0 + + + 476 + 107 + 0 + 0 + 0 + + + 477 + 107 + 0 + 0 + 0 + + + 478 + 1100 + 0 + 0 + 0 + + + 479 + 1100 + 0 + 0 + 0 + + + 480 + 1 + 0 + 0 + 0 + + + 481 + 1 + 0 + 0 + 0 + + + 482 + 139 + 0 + 0 + 0 + + + 483 + 139 + 0 + 0 + 0 + + + 484 + 499 + 0 + 0 + 0 + + + 485 + 499 + 0 + 0 + 0 + + + 486 + 1299 + 0 + 0 + 0 + + + 487 + 1299 + 0 + 0 + 0 + + + 488 + 3199 + 0 + 0 + 0 + + + 489 + 3199 + 0 + 0 + 0 + + + 490 + 31999 + 0 + 0 + 0 + + + 491 + 31999 + 0 + 0 + 0 + + + 492 + 1 + 0 + 0 + 0 + + + 493 + 1 + 0 + 0 + 0 + + + 494 + 1 + 0 + 0 + 0 + + + 495 + 1 + 0 + 0 + 0 + + + 496 + 1 + 0 + 0 + 0 + + + 497 + 1 + 0 + 0 + 0 + + + 498 + 1 + 0 + 0 + 0 + + + 499 + 1 + 0 + 0 + 0 + + + 500 + 10 + 0 + 0 + 0 + + + 501 + 10 + 0 + 0 + 0 + + + 502 + 18 + 0 + 0 + 0 + + + 503 + 18 + 0 + 0 + 0 + + + 504 + 43 + 0 + 0 + 0 + + + 505 + 43 + 0 + 0 + 0 + + + 506 + 427 + 0 + 0 + 0 + + + 507 + 427 + 0 + 0 + 0 + + + 508 + 15 + 0 + 0 + 0 + + + 509 + 15 + 0 + 0 + 0 + + + 510 + 55 + 0 + 0 + 0 + + + 511 + 55 + 0 + 0 + 0 + + + 512 + 199 + 0 + 0 + 0 + + + 513 + 199 + 0 + 0 + 0 + + + 514 + 383 + 0 + 0 + 0 + + + 515 + 383 + 0 + 0 + 0 + + + 516 + 519 + 0 + 0 + 0 + + + 517 + 519 + 0 + 0 + 0 + + + 518 + 1279 + 0 + 0 + 0 + + + 519 + 1279 + 0 + 0 + 0 + + + 520 + 12799 + 0 + 0 + 0 + + + 521 + 12799 + 0 + 0 + 0 + + + 522 + 1 + 0 + 0 + 0 + + + 523 + 1 + 0 + 0 + 0 + + + 524 + 1 + 0 + 0 + 0 + + + 525 + 1 + 0 + 0 + 0 + + + 526 + 1 + 0 + 0 + 0 + + + 527 + 1 + 0 + 0 + 0 + + + 528 + 1 + 0 + 0 + 0 + + + 529 + 1 + 0 + 0 + 0 + + + 530 + 1 + 0 + 0 + 0 + + + 531 + 1 + 0 + 0 + 0 + + + 532 + 1 + 0 + 0 + 0 + + + 533 + 1 + 0 + 0 + 0 + + + 534 + 1 + 0 + 0 + 0 + + + 535 + 1 + 0 + 0 + 0 + + + 536 + 1 + 0 + 0 + 0 + + + 537 + 1 + 0 + 0 + 0 + + + 538 + 30 + 0 + 0 + 0 + + + 539 + 30 + 0 + 0 + 0 + + + 540 + 40 + 0 + 0 + 0 + + + 541 + 40 + 0 + 0 + 0 + + + 542 + 30 + 0 + 0 + 0 + + + 543 + 30 + 0 + 0 + 0 + + + 544 + 40 + 0 + 0 + 0 + + + 545 + 40 + 0 + 0 + 0 + + + 546 + 40 + 0 + 0 + 0 + + + 547 + 1 + 0 + 0 + 0 + + + 548 + 30 + 0 + 0 + 0 + + + 549 + 1 + 0 + 0 + 0 + + + 550 + 1 + 0 + 0 + 0 + + + 551 + 1 + 0 + 0 + 0 + + + 552 + 35 + 0 + 0 + 0 + + + 553 + 1 + 0 + 0 + 0 + + + 554 + 17 + 0 + 0 + 0 + + + 555 + 17 + 0 + 0 + 0 + + + 556 + 17 + 0 + 0 + 0 + + + 557 + 17 + 0 + 0 + 0 + + + 558 + 17 + 0 + 0 + 0 + + + 559 + 16 + 0 + 0 + 0 + + + 560 + 310 + 0 + 0 + 0 + + + 561 + 372 + 0 + 0 + 0 + + + 562 + 140 + 0 + 0 + 0 + + + 563 + 378 + 0 + 0 + 0 + + + 564 + 232 + 0 + 0 + 0 + + + 565 + 550 + 0 + 0 + 0 + + + 566 + 410 + 0 + 0 + 0 + + + 567 + 100 + 0 + 0 + 0 + + + 568 + 100 + 0 + 0 + 0 + + + 569 + 300 + 0 + 0 + 0 + + + 570 + 300 + 0 + 0 + 0 + + + 571 + 300 + 0 + 0 + 0 + + + 572 + 300 + 0 + 0 + 0 + + + 573 + 300 + 0 + 0 + 0 + + + 574 + 300 + 0 + 0 + 0 + + + 575 + 300 + 0 + 0 + 0 + + + 576 + 300 + 0 + 0 + 0 + + + 577 + 15 + 0 + 0 + 0 + + + 578 + 15 + 0 + 0 + 0 + + + 579 + 2 + 0 + 0 + 0 + + + 580 + 2 + 0 + 0 + 0 + + + 581 + 13 + 0 + 0 + 0 + + + 582 + 13 + 0 + 0 + 0 + + + 583 + 10 + 0 + 0 + 0 + + + 584 + 10 + 0 + 0 + 0 + + + 585 + 10 + 0 + 0 + 0 + + + 586 + 10 + 0 + 0 + 0 + + + 587 + 1 + 0 + 0 + 0 + + + 588 + 1 + 0 + 0 + 0 + + + 589 + 1 + 0 + 0 + 0 + + + 590 + 1 + 0 + 0 + 0 + + + 591 + 1 + 0 + 0 + 0 + + + 592 + 2 + 0 + 0 + 0 + + + 593 + 2 + 0 + 0 + 0 + + + 594 + 4 + 0 + 0 + 0 + + + 595 + 4 + 0 + 0 + 0 + + + 596 + 4 + 0 + 0 + 0 + + + 597 + 4 + 0 + 0 + 0 + + + 598 + 10 + 0 + 0 + 0 + + + 599 + 1 + 0 + 0 + 0 + + + 600 + 3 + 0 + 0 + 0 + + + 601 + 1 + 0 + 0 + 0 + + + 602 + 1 + 0 + 0 + 0 + + + 603 + 3 + 0 + 0 + 0 + + + 604 + 1 + 0 + 0 + 0 + + + 605 + 1 + 0 + 0 + 0 + + + 606 + 1 + 0 + 0 + 0 + + + 607 + 1 + 0 + 0 + 0 + + + 608 + 1 + 0 + 0 + 0 + + + 609 + 1 + 0 + 0 + 0 + + + 610 + 1 + 0 + 0 + 0 + + + 611 + 1 + 0 + 0 + 0 + + + 612 + 1 + 0 + 0 + 0 + + + 613 + 1 + 0 + 0 + 0 + + + 614 + 1 + 0 + 0 + 0 + + + 615 + 1 + 0 + 0 + 0 + + + 616 + 1 + 0 + 0 + 0 + + + 617 + 1 + 0 + 0 + 0 + + + 618 + 1 + 0 + 0 + 0 + + + 619 + 5 + 0 + 0 + 0 + + + 620 + 5 + 0 + 0 + 0 + + + 621 + 5 + 0 + 0 + 0 + + + 622 + 1 + 0 + 0 + 0 + + + 623 + 1 + 0 + 0 + 0 + + + 624 + 1 + 0 + 0 + 0 + + + 625 + 5 + 0 + 0 + 0 + + + 626 + 200 + 0 + 0 + 0 + + + 627 + 200 + 0 + 0 + 0 + + + 628 + 200 + 0 + 0 + 0 + + + 629 + 200 + 0 + 0 + 0 + + + 630 + 200 + 0 + 0 + 0 + + + 631 + 200 + 0 + 0 + 0 + + + 632 + 200 + 0 + 0 + 0 + + + 633 + 200 + 0 + 0 + 0 + + + 634 + 200 + 0 + 0 + 0 + + + 635 + 200 + 0 + 0 + 0 + + + 636 + 180 + 0 + 0 + 0 + + + 637 + 180 + 0 + 0 + 0 + + + 638 + 180 + 0 + 0 + 0 + + + 639 + 180 + 0 + 0 + 0 + + + 640 + 180 + 0 + 0 + 0 + + + 641 + 180 + 0 + 0 + 0 + + + 642 + 180 + 0 + 0 + 0 + + + 643 + 180 + 0 + 0 + 0 + + + 644 + 180 + 0 + 0 + 0 + + + 645 + 180 + 0 + 0 + 0 + + + 646 + 180 + 0 + 0 + 0 + + + 647 + 180 + 0 + 0 + 0 + + + 648 + 180 + 0 + 0 + 0 + + + 649 + 180 + 0 + 0 + 0 + + + 650 + 180 + 0 + 0 + 0 + + + 651 + 180 + 0 + 0 + 0 + + + 652 + 180 + 0 + 0 + 0 + + + 653 + 180 + 0 + 0 + 0 + + + 654 + 180 + 0 + 0 + 0 + + + 655 + 180 + 0 + 0 + 0 + + + 656 + 160 + 0 + 0 + 0 + + + 657 + 160 + 0 + 0 + 0 + + + 658 + 160 + 0 + 0 + 0 + + + 659 + 160 + 0 + 0 + 0 + + + 660 + 160 + 0 + 0 + 0 + + + 661 + 160 + 0 + 0 + 0 + + + 662 + 160 + 0 + 0 + 0 + + + 663 + 160 + 0 + 0 + 0 + + + 664 + 160 + 0 + 0 + 0 + + + 665 + 160 + 0 + 0 + 0 + + + 666 + 3 + 0 + 0 + 0 + + + 667 + 200 + 0 + 0 + 0 + + + 668 + 3 + 0 + 0 + 0 + + + 669 + 1 + 0 + 0 + 0 + + + 670 + 1 + 0 + 0 + 0 + + + 671 + 1 + 0 + 0 + 0 + + + 672 + 1 + 0 + 0 + 0 + + + 673 + 1 + 0 + 0 + 0 + + + 674 + 1 + 0 + 0 + 0 + + + 675 + 1 + 0 + 0 + 0 + + + 676 + 1 + 0 + 0 + 0 + + + 677 + 1 + 0 + 0 + 0 + + + 678 + 1 + 0 + 0 + 0 + + + 679 + 1 + 0 + 0 + 0 + + + 680 + 1 + 0 + 0 + 0 + + + 681 + 1 + 0 + 0 + 0 + + + 682 + 1 + 0 + 0 + 0 + + + 683 + 1 + 0 + 0 + 0 + + + 684 + 1 + 0 + 0 + 0 + + + 685 + 1 + 0 + 0 + 0 + + + 686 + 1 + 0 + 0 + 0 + + + 687 + 1 + 0 + 0 + 0 + + + 688 + 1 + 0 + 0 + 0 + + + 689 + 1 + 0 + 0 + 0 + + + 690 + 1 + 0 + 0 + 0 + + + 691 + 1 + 0 + 0 + 0 + + + 692 + 1 + 0 + 0 + 0 + + + 693 + 1 + 0 + 0 + 0 + + + 694 + 1 + 0 + 0 + 0 + + + 695 + 1 + 0 + 0 + 0 + + + 696 + 1 + 0 + 0 + 0 + + + 697 + 1 + 0 + 0 + 0 + + + 698 + 1 + 0 + 0 + 0 + + + 699 + 1 + 0 + 0 + 0 + + + 700 + 1 + 0 + 0 + 0 + + + 701 + 1 + 0 + 0 + 0 + + + 702 + 1 + 0 + 0 + 0 + + + 703 + 1 + 0 + 0 + 0 + + + 704 + 1 + 0 + 0 + 0 + + + 705 + 1 + 0 + 0 + 0 + + + 706 + 1 + 0 + 0 + 0 + + + 707 + 1 + 0 + 0 + 0 + + + 708 + 1 + 0 + 0 + 0 + + + 709 + 1 + 0 + 0 + 0 + + + 710 + 1 + 0 + 0 + 0 + + + 711 + 1 + 0 + 0 + 0 + + + 712 + 1 + 0 + 0 + 0 + + + 713 + 1 + 0 + 0 + 0 + + + 714 + 1 + 0 + 0 + 0 + + + 715 + 1 + 0 + 0 + 0 + + + 716 + 1 + 0 + 0 + 0 + + + 717 + 1 + 0 + 0 + 0 + + + 718 + 1 + 0 + 0 + 0 + + + 719 + 1 + 0 + 0 + 0 + + + 720 + 10 + 0 + 0 + 0 + + + 721 + 700 + 0 + 0 + 0 + + + 722 + 700 + 0 + 0 + 0 + + + 723 + 700 + 0 + 0 + 0 + + + 724 + 700 + 0 + 0 + 0 + + + 725 + 700 + 0 + 0 + 0 + + + 726 + 700 + 0 + 0 + 0 + + + 727 + 2 + 0 + 0 + 0 + + + 728 + 1 + 0 + 0 + 0 + + + 729 + 1 + 0 + 0 + 0 + + + 730 + 1 + 0 + 0 + 0 + + + 731 + 1 + 0 + 0 + 0 + + + 732 + 1 + 0 + 0 + 0 + + + 733 + 1 + 0 + 0 + 0 + + + 734 + 1 + 0 + 0 + 0 + + + 735 + 1 + 0 + 0 + 0 + + + 736 + 1 + 0 + 0 + 0 + + + 737 + 1 + 0 + 0 + 0 + + + 738 + 1 + 0 + 0 + 0 + + + 739 + 1 + 0 + 0 + 0 + + + 740 + 2 + 0 + 0 + 0 + + + 741 + 1 + 0 + 0 + 0 + + + 742 + 1 + 0 + 0 + 0 + + + 743 + 1 + 0 + 0 + 0 + + + 744 + 1 + 0 + 0 + 0 + + + 745 + 1 + 0 + 0 + 0 + + + 746 + 1 + 0 + 0 + 0 + + + 747 + 1 + 0 + 0 + 0 + + + 748 + 1 + 0 + 0 + 0 + + + 749 + 1 + 0 + 0 + 0 + + + 750 + 1 + 0 + 0 + 0 + + + 751 + 1 + 0 + 0 + 0 + + + 752 + 1 + 0 + 0 + 0 + + + 753 + 1 + 0 + 0 + 0 + + + 754 + 1 + 0 + 0 + 0 + + + 755 + 5 + 0 + 0 + 0 + + + 756 + 1 + 0 + 0 + 0 + + + 757 + 1 + 0 + 0 + 0 + + + 758 + 1 + 0 + 0 + 0 + + + 759 + 1 + 0 + 0 + 0 + + + 760 + 1 + 0 + 0 + 0 + + + 761 + 5 + 0 + 0 + 0 + + + 762 + 1 + 0 + 0 + 0 + + + 763 + 1 + 0 + 0 + 0 + + + 764 + 1 + 0 + 0 + 0 + + + 765 + 1 + 0 + 0 + 0 + + + 766 + 1 + 0 + 0 + 0 + + + 767 + 4 + 0 + 0 + 0 + + + 768 + 4 + 0 + 0 + 0 + + + 769 + 1 + 0 + 0 + 0 + + + 770 + 1 + 0 + 0 + 0 + + + 771 + 15 + 0 + 0 + 0 + + + 772 + 15 + 0 + 0 + 0 + + + 773 + 2025 + 0 + 0 + 0 + + + 774 + 2175 + 0 + 0 + 0 + + + 775 + 1 + 0 + 0 + 0 + + + 776 + 1 + 0 + 0 + 0 + + + 777 + 1 + 0 + 0 + 0 + + + 778 + 1 + 0 + 0 + 0 + + + 779 + 1 + 0 + 0 + 0 + + + 780 + 1 + 0 + 0 + 0 + + + 781 + 1 + 0 + 0 + 0 + + + 782 + 1 + 0 + 0 + 0 + + + 783 + 2 + 0 + 0 + 0 + + + 784 + 2 + 0 + 0 + 0 + + + 785 + 2 + 0 + 0 + 0 + + + 786 + 2 + 0 + 0 + 0 + + + 787 + 2 + 0 + 0 + 0 + + + 788 + 1 + 0 + 0 + 0 + + + 789 + 1 + 0 + 0 + 0 + + + 790 + 1 + 0 + 0 + 0 + + + 791 + 1 + 0 + 0 + 0 + + + 792 + 1 + 0 + 0 + 0 + + + 793 + 1 + 0 + 0 + 0 + + + 794 + 2 + 0 + 0 + 0 + + + 795 + 2 + 0 + 0 + 0 + + + 796 + 1 + 0 + 0 + 0 + + + 797 + 1 + 0 + 0 + 0 + + + 798 + 1 + 0 + 0 + 0 + + + 799 + 1 + 0 + 0 + 0 + + + 800 + 4 + 0 + 0 + 0 + + + 801 + 13 + 0 + 0 + 0 + + + 802 + 38 + 0 + 0 + 0 + + + 803 + 105 + 0 + 0 + 0 + + + 804 + 262 + 0 + 0 + 0 + + + 805 + 698 + 0 + 0 + 0 + + + 806 + 1 + 0 + 0 + 0 + + + 807 + 2 + 0 + 0 + 0 + + + 808 + 10 + 0 + 0 + 0 + + + 809 + 25 + 0 + 0 + 0 + + + 810 + 65 + 0 + 0 + 0 + + + 811 + 350 + 0 + 0 + 0 + + + 812 + 1 + 0 + 0 + 0 + + + 813 + 2 + 0 + 0 + 0 + + + 814 + 10 + 0 + 0 + 0 + + + 815 + 25 + 0 + 0 + 0 + + + 816 + 65 + 0 + 0 + 0 + + + 817 + 350 + 0 + 0 + 0 + + + 818 + 1 + 0 + 0 + 0 + + + 819 + 1 + 0 + 0 + 0 + + + 820 + 3 + 0 + 0 + 0 + + + 821 + 5 + 0 + 0 + 0 + + + 822 + 12 + 0 + 0 + 0 + + + 823 + 36 + 0 + 0 + 0 + + + 824 + 175 + 0 + 0 + 0 + + + 825 + 6 + 0 + 0 + 0 + + + 826 + 8 + 0 + 0 + 0 + + + 827 + 37 + 0 + 0 + 0 + + + 828 + 98 + 0 + 0 + 0 + + + 829 + 246 + 0 + 0 + 0 + + + 830 + 624 + 0 + 0 + 0 + + + 831 + 4 + 0 + 0 + 0 + + + 832 + 6 + 0 + 0 + 0 + + + 833 + 24 + 0 + 0 + 0 + + + 834 + 64 + 0 + 0 + 0 + + + 835 + 160 + 0 + 0 + 0 + + + 836 + 400 + 0 + 0 + 0 + + + 837 + 70 + 0 + 0 + 0 + + + 838 + 70 + 0 + 0 + 0 + + + 839 + 80 + 0 + 0 + 0 + + + 840 + 80 + 0 + 0 + 0 + + + 841 + 50 + 0 + 0 + 0 + + + 842 + 50 + 0 + 0 + 0 + + + 843 + 100 + 0 + 0 + 0 + + + 844 + 100 + 0 + 0 + 0 + + + 845 + 160 + 0 + 0 + 0 + + + 846 + 160 + 0 + 0 + 0 + + + 847 + 320 + 0 + 0 + 0 + + + 848 + 320 + 0 + 0 + 0 + + + 849 + 200 + 0 + 0 + 0 + + + 850 + 200 + 0 + 0 + 0 + + + 851 + 640 + 0 + 0 + 0 + + + 852 + 640 + 0 + 0 + 0 + + + 853 + 400 + 0 + 0 + 0 + + + 854 + 400 + 0 + 0 + 0 + + + 855 + 1280 + 0 + 0 + 0 + + + 856 + 1280 + 0 + 0 + 0 + + + 857 + 800 + 0 + 0 + 0 + + + 858 + 800 + 0 + 0 + 0 + + + 859 + 2560 + 0 + 0 + 0 + + + 860 + 2560 + 0 + 0 + 0 + + + 861 + 1600 + 0 + 0 + 0 + + + 862 + 1600 + 0 + 0 + 0 + + + 863 + 58 + 0 + 0 + 0 + + + 864 + 14 + 0 + 0 + 0 + + + 865 + 68 + 0 + 0 + 0 + + + 866 + 27 + 0 + 0 + 0 + + + 867 + 66 + 0 + 0 + 0 + + + 868 + 167 + 0 + 0 + 0 + + + 869 + 19 + 0 + 0 + 0 + + + 870 + 1 + 0 + 0 + 0 + + + 871 + 3 + 0 + 0 + 0 + + + 872 + 10 + 0 + 0 + 0 + + + 873 + 27 + 0 + 0 + 0 + + + 874 + 18 + 0 + 0 + 0 + + + 875 + 66 + 0 + 0 + 0 + + + 876 + 166 + 0 + 0 + 0 + + + 877 + 3 + 0 + 0 + 0 + + + 878 + 3 + 0 + 0 + 0 + + + 879 + 7 + 0 + 0 + 0 + + + 880 + 13 + 0 + 0 + 0 + + + 881 + 200 + 0 + 0 + 0 + + + 882 + 7 + 0 + 0 + 0 + + + 883 + 1 + 0 + 0 + 0 + + + 884 + 20 + 0 + 0 + 0 + + + 885 + 3 + 0 + 0 + 0 + + + 886 + 46 + 0 + 0 + 0 + + + 887 + 12 + 0 + 0 + 0 + + + 888 + 76 + 0 + 0 + 0 + + + 889 + 32 + 0 + 0 + 0 + + + 890 + 172 + 0 + 0 + 0 + + + 891 + 80 + 0 + 0 + 0 + + + 892 + 510 + 0 + 0 + 0 + + + 893 + 400 + 0 + 0 + 0 + + + 894 + 1 + 0 + 0 + 0 + + + 895 + 1 + 0 + 0 + 0 + + + 896 + 1 + 0 + 0 + 0 + + + 897 + 1 + 0 + 0 + 0 + + + 898 + 1 + 0 + 0 + 0 + + + 899 + 1 + 0 + 0 + 0 + + + 900 + 1 + 0 + 0 + 0 + + + 901 + 1 + 0 + 0 + 0 + + + 902 + 1 + 0 + 0 + 0 + + + 903 + 1 + 0 + 0 + 0 + + + 904 + 1 + 0 + 0 + 0 + + + 905 + 1 + 0 + 0 + 0 + + + 906 + 1 + 0 + 0 + 0 + + + 907 + 1 + 0 + 0 + 0 + + + 908 + 1 + 0 + 0 + 0 + + + 909 + 1 + 0 + 0 + 0 + + + 910 + 1 + 0 + 0 + 0 + + + 911 + 1 + 0 + 0 + 0 + + + 912 + 1 + 0 + 0 + 0 + + + 913 + 1 + 0 + 0 + 0 + + + 914 + 1 + 0 + 0 + 0 + + + 915 + 1 + 0 + 0 + 0 + + + 916 + 1 + 0 + 0 + 0 + + + 917 + 1 + 0 + 0 + 0 + + + 918 + 1 + 0 + 0 + 0 + + + 919 + 1 + 0 + 0 + 0 + + + 920 + 1 + 0 + 0 + 0 + + + 921 + 1 + 0 + 0 + 0 + + + 922 + 1 + 0 + 0 + 0 + + + 923 + 1 + 0 + 0 + 0 + + + 924 + 1 + 0 + 0 + 0 + + + 925 + 1 + 0 + 0 + 0 + + + 926 + 1 + 0 + 0 + 0 + + + 927 + 1 + 0 + 0 + 0 + + + 928 + 1 + 0 + 0 + 0 + + + 929 + 1 + 0 + 0 + 0 + + + 930 + 1 + 0 + 0 + 0 + + + 931 + 1 + 0 + 0 + 0 + + + 932 + 1 + 0 + 0 + 0 + + + 933 + 1 + 0 + 0 + 0 + + + 934 + 1 + 0 + 0 + 0 + + + 935 + 1 + 0 + 0 + 0 + + + 936 + 1 + 0 + 0 + 0 + + + 937 + 1 + 0 + 0 + 0 + + + 938 + 1 + 0 + 0 + 0 + + + 939 + 1 + 0 + 0 + 0 + + + 940 + 1 + 0 + 0 + 0 + + + 941 + 1 + 0 + 0 + 0 + + + 942 + 10 + 0 + 0 + 0 + + + 943 + 1 + 0 + 0 + 0 + + + 944 + 1 + 0 + 0 + 0 + + + 945 + 1 + 0 + 0 + 0 + + + 946 + 6 + 0 + 0 + 0 + + + 947 + 6 + 0 + 0 + 0 + + + 948 + 10 + 0 + 0 + 0 + + + 949 + 10 + 0 + 0 + 0 + + + 950 + 55 + 0 + 0 + 0 + + + 951 + 55 + 0 + 0 + 0 + + + 952 + 3 + 0 + 0 + 0 + + + 953 + 3 + 0 + 0 + 0 + + + 954 + 18 + 0 + 0 + 0 + + + 955 + 18 + 0 + 0 + 0 + + + 956 + 1 + 0 + 0 + 0 + + + 957 + 1 + 0 + 0 + 0 + + + 958 + 150 + 0 + 0 + 0 + + + 959 + 150 + 0 + 0 + 0 + + + 960 + 100 + 0 + 0 + 0 + + + 961 + 100 + 0 + 0 + 0 + + + 962 + 1 + 0 + 0 + 0 + + + 963 + 1 + 0 + 0 + 0 + + + 964 + 1 + 0 + 0 + 0 + + + 965 + 1 + 0 + 0 + 0 + + + 966 + 1 + 0 + 0 + 0 + + + 967 + 1 + 0 + 0 + 0 + + + 968 + 1 + 0 + 0 + 0 + + + 969 + 1 + 0 + 0 + 0 + + + 970 + 10 + 0 + 0 + 0 + + + 971 + 10 + 0 + 0 + 0 + + + 972 + 1 + 0 + 0 + 0 + + + 973 + 45 + 0 + 0 + 0 + + + 974 + 45 + 0 + 0 + 0 + + + 975 + 52 + 0 + 0 + 0 + + + 976 + 52 + 0 + 0 + 0 + + + 977 + 1 + 0 + 0 + 0 + + + 978 + 1 + 0 + 0 + 0 + + + 979 + 1 + 0 + 0 + 0 + + + 980 + 1 + 0 + 0 + 0 + + + 981 + 12 + 0 + 0 + 0 + + + 982 + 12 + 0 + 0 + 0 + + + 983 + 1 + 0 + 0 + 0 + + + 984 + 1 + 0 + 0 + 0 + + + 985 + 1 + 0 + 0 + 0 + + + 986 + 1 + 0 + 0 + 0 + + + 987 + 1 + 0 + 0 + 0 + + + 988 + 1 + 0 + 0 + 0 + + + 989 + 1 + 0 + 0 + 0 + + + 990 + 1 + 0 + 0 + 0 + + + 991 + 1 + 0 + 0 + 0 + + + 992 + 1 + 0 + 0 + 0 + + + 993 + 1 + 0 + 0 + 0 + + + 994 + 1 + 0 + 0 + 0 + + + 995 + 1 + 0 + 0 + 0 + + + 996 + 1 + 0 + 0 + 0 + + + 997 + 1 + 0 + 0 + 0 + + + 998 + 1 + 0 + 0 + 0 + + + 999 + 1 + 0 + 0 + 0 + + + 1000 + 1 + 0 + 0 + 0 + + + 1001 + 1 + 0 + 0 + 0 + + + 1002 + 1 + 0 + 0 + 0 + + + 1003 + 1 + 0 + 0 + 0 + + + 1004 + 1 + 0 + 0 + 0 + + + 1005 + 2 + 0 + 0 + 0 + + + 1006 + 2 + 0 + 0 + 0 + + + 1007 + 20 + 0 + 0 + 0 + + + 1008 + 20 + 0 + 0 + 0 + + + 1009 + 30 + 0 + 0 + 0 + + + 1010 + 30 + 0 + 0 + 0 + + + 1011 + 2 + 0 + 0 + 0 + + + 1012 + 2 + 0 + 0 + 0 + + + 1013 + 2 + 0 + 0 + 0 + + + 1014 + 2 + 0 + 0 + 0 + + + 1015 + 2 + 0 + 0 + 0 + + + 1016 + 2 + 0 + 0 + 0 + + + 1017 + 2 + 0 + 0 + 0 + + + 1018 + 2 + 0 + 0 + 0 + + + 1019 + 20 + 0 + 0 + 0 + + + 1020 + 20 + 0 + 0 + 0 + + + 1021 + 20 + 0 + 0 + 0 + + + 1022 + 20 + 0 + 0 + 0 + + + 1023 + 20 + 0 + 0 + 0 + + + 1024 + 20 + 0 + 0 + 0 + + + 1025 + 2 + 0 + 0 + 0 + + + 1026 + 2 + 0 + 0 + 0 + + + 1027 + 20 + 0 + 0 + 0 + + + 1028 + 20 + 0 + 0 + 0 + + + 1029 + 20 + 0 + 0 + 0 + + + 1030 + 20 + 0 + 0 + 0 + + + 1031 + 20 + 0 + 0 + 0 + + + 1032 + 20 + 0 + 0 + 0 + + + 1033 + 30 + 0 + 0 + 0 + + + 1034 + 30 + 0 + 0 + 0 + + + 1035 + 40 + 0 + 0 + 0 + + + 1036 + 40 + 0 + 0 + 0 + + + 1037 + 1 + 0 + 0 + 0 + + + 1038 + 1 + 0 + 0 + 0 + + + 1039 + 1 + 0 + 0 + 0 + + + 1040 + 1 + 0 + 0 + 0 + + + 1041 + 1 + 0 + 0 + 0 + + + 1042 + 1 + 0 + 0 + 0 + + + 1043 + 1 + 0 + 0 + 0 + + + 1044 + 1 + 0 + 0 + 0 + + + 1045 + 1 + 0 + 0 + 0 + + + 1046 + 1 + 0 + 0 + 0 + + + 1047 + 1 + 0 + 0 + 0 + + + 1048 + 1 + 0 + 0 + 0 + + + 1049 + 1 + 0 + 0 + 0 + + + 1050 + 160 + 0 + 0 + 0 + + + 1051 + 160 + 0 + 0 + 0 + + + 1052 + 450 + 0 + 0 + 0 + + + 1053 + 15 + 0 + 0 + 0 + + + 1054 + 15 + 0 + 0 + 0 + + + 1055 + 15 + 0 + 0 + 0 + + + 1056 + 15 + 0 + 0 + 0 + + + 1057 + 15 + 0 + 0 + 0 + + + 1058 + 15 + 0 + 0 + 0 + + + 1059 + 6 + 0 + 0 + 0 + + + 1060 + 6 + 0 + 0 + 0 + + + 1061 + 6 + 0 + 0 + 0 + + + 1062 + 6 + 0 + 0 + 0 + + + 1063 + 18 + 0 + 0 + 0 + + + 1064 + 18 + 0 + 0 + 0 + + + 1065 + 2500 + 0 + 0 + 0 + + + 1066 + 2500 + 0 + 0 + 0 + + + 1067 + 280 + 0 + 0 + 0 + + + 1068 + 280 + 0 + 0 + 0 + + + 1069 + 1000 + 0 + 0 + 0 + + + 1070 + 1000 + 0 + 0 + 0 + + + 1071 + 2600 + 0 + 0 + 0 + + + 1072 + 2600 + 0 + 0 + 0 + + + 1073 + 6400 + 0 + 0 + 0 + + + 1074 + 6400 + 0 + 0 + 0 + + + 1075 + 80 + 0 + 0 + 0 + + + 1076 + 80 + 0 + 0 + 0 + + + 1077 + 1920 + 0 + 0 + 0 + + + 1078 + 1920 + 0 + 0 + 0 + + + 1079 + 64000 + 0 + 0 + 0 + + + 1080 + 64000 + 0 + 0 + 0 + + + 1081 + 280 + 0 + 0 + 0 + + + 1082 + 280 + 0 + 0 + 0 + + + 1083 + 1000 + 0 + 0 + 0 + + + 1084 + 1000 + 0 + 0 + 0 + + + 1085 + 2600 + 0 + 0 + 0 + + + 1086 + 2600 + 0 + 0 + 0 + + + 1087 + 80 + 0 + 0 + 0 + + + 1088 + 80 + 0 + 0 + 0 + + + 1089 + 1920 + 0 + 0 + 0 + + + 1090 + 1920 + 0 + 0 + 0 + + + 1091 + 6400 + 0 + 0 + 0 + + + 1092 + 6400 + 0 + 0 + 0 + + + 1093 + 64000 + 0 + 0 + 0 + + + 1094 + 64000 + 0 + 0 + 0 + + + 1095 + 20 + 0 + 0 + 0 + + + 1096 + 20 + 0 + 0 + 0 + + + 1097 + 750 + 0 + 0 + 0 + + + 1098 + 750 + 0 + 0 + 0 + + + 1099 + 3900 + 0 + 0 + 0 + + + 1100 + 3900 + 0 + 0 + 0 + + + 1101 + 210 + 0 + 0 + 0 + + + 1102 + 210 + 0 + 0 + 0 + + + 1103 + 60 + 0 + 0 + 0 + + + 1104 + 60 + 0 + 0 + 0 + + + 1105 + 750 + 0 + 0 + 0 + + + 1106 + 750 + 0 + 0 + 0 + + + 1107 + 1440 + 0 + 0 + 0 + + + 1108 + 1440 + 0 + 0 + 0 + + + 1109 + 1950 + 0 + 0 + 0 + + + 1110 + 1950 + 0 + 0 + 0 + + + 1111 + 4800 + 0 + 0 + 0 + + + 1112 + 4800 + 0 + 0 + 0 + + + 1113 + 50000 + 0 + 0 + 0 + + + 1114 + 50000 + 0 + 0 + 0 + + + 1115 + 560 + 0 + 0 + 0 + + + 1116 + 560 + 0 + 0 + 0 + + + 1117 + 160 + 0 + 0 + 0 + + + 1118 + 160 + 0 + 0 + 0 + + + 1119 + 2000 + 0 + 0 + 0 + + + 1120 + 2000 + 0 + 0 + 0 + + + 1121 + 5200 + 0 + 0 + 0 + + + 1122 + 5200 + 0 + 0 + 0 + + + 1123 + 16640 + 0 + 0 + 0 + + + 1124 + 16640 + 0 + 0 + 0 + + + 1125 + 3840 + 0 + 0 + 0 + + + 1126 + 3840 + 0 + 0 + 0 + + + 1127 + 65000 + 0 + 0 + 0 + + + 1128 + 65000 + 0 + 0 + 0 + + + 1129 + 21 + 0 + 0 + 0 + + + 1130 + 21 + 0 + 0 + 0 + + + 1131 + 170 + 0 + 0 + 0 + + + 1132 + 170 + 0 + 0 + 0 + + + 1133 + 850 + 0 + 0 + 0 + + + 1134 + 850 + 0 + 0 + 0 + + + 1135 + 7800 + 0 + 0 + 0 + + + 1136 + 7800 + 0 + 0 + 0 + + + 1137 + 84 + 0 + 0 + 0 + + + 1138 + 84 + 0 + 0 + 0 + + + 1139 + 24 + 0 + 0 + 0 + + + 1140 + 24 + 0 + 0 + 0 + + + 1141 + 300 + 0 + 0 + 0 + + + 1142 + 300 + 0 + 0 + 0 + + + 1143 + 780 + 0 + 0 + 0 + + + 1144 + 780 + 0 + 0 + 0 + + + 1145 + 1920 + 0 + 0 + 0 + + + 1146 + 1920 + 0 + 0 + 0 + + + 1147 + 19200 + 0 + 0 + 0 + + + 1148 + 19200 + 0 + 0 + 0 + + + 1149 + 100000 + 0 + 0 + 0 + + + 1150 + 100000 + 0 + 0 + 0 + + + 1151 + 576 + 0 + 0 + 0 + + + 1152 + 576 + 0 + 0 + 0 + + + 1153 + 154 + 0 + 0 + 0 + + + 1154 + 154 + 0 + 0 + 0 + + + 1155 + 44 + 0 + 0 + 0 + + + 1156 + 44 + 0 + 0 + 0 + + + 1157 + 550 + 0 + 0 + 0 + + + 1158 + 550 + 0 + 0 + 0 + + + 1159 + 1430 + 0 + 0 + 0 + + + 1160 + 1430 + 0 + 0 + 0 + + + 1161 + 3520 + 0 + 0 + 0 + + + 1162 + 3520 + 0 + 0 + 0 + + + 1163 + 35200 + 0 + 0 + 0 + + + 1164 + 35200 + 0 + 0 + 0 + + + 1165 + 1372 + 0 + 0 + 0 + + + 1166 + 1372 + 0 + 0 + 0 + + + 1167 + 24 + 0 + 0 + 0 + + + 1168 + 24 + 0 + 0 + 0 + + + 1169 + 200 + 0 + 0 + 0 + + + 1170 + 200 + 0 + 0 + 0 + + + 1171 + 20 + 0 + 0 + 0 + + + 1172 + 20 + 0 + 0 + 0 + + + 1173 + 48 + 0 + 0 + 0 + + + 1174 + 48 + 0 + 0 + 0 + + + 1175 + 168 + 0 + 0 + 0 + + + 1176 + 168 + 0 + 0 + 0 + + + 1177 + 600 + 0 + 0 + 0 + + + 1178 + 600 + 0 + 0 + 0 + + + 1179 + 1152 + 0 + 0 + 0 + + + 1180 + 1152 + 0 + 0 + 0 + + + 1181 + 1560 + 0 + 0 + 0 + + + 1182 + 1560 + 0 + 0 + 0 + + + 1183 + 3840 + 0 + 0 + 0 + + + 1184 + 3840 + 0 + 0 + 0 + + + 1185 + 38400 + 0 + 0 + 0 + + + 1186 + 38400 + 0 + 0 + 0 + + + 1187 + 500000 + 0 + 0 + 0 + + + 1188 + 500000 + 0 + 0 + 0 + + + 1189 + 68 + 0 + 0 + 0 + + + 1190 + 68 + 0 + 0 + 0 + + + 1191 + 238 + 0 + 0 + 0 + + + 1192 + 238 + 0 + 0 + 0 + + + 1193 + 850 + 0 + 0 + 0 + + + 1194 + 850 + 0 + 0 + 0 + + + 1195 + 2121 + 0 + 0 + 0 + + + 1196 + 2121 + 0 + 0 + 0 + + + 1197 + 2210 + 0 + 0 + 0 + + + 1198 + 2210 + 0 + 0 + 0 + + + 1199 + 5440 + 0 + 0 + 0 + + + 1200 + 5440 + 0 + 0 + 0 + + + 1201 + 54400 + 0 + 0 + 0 + + + 1202 + 54400 + 0 + 0 + 0 + + + 1203 + 35 + 0 + 0 + 0 + + + 1204 + 35 + 0 + 0 + 0 + + + 1205 + 10 + 0 + 0 + 0 + + + 1206 + 10 + 0 + 0 + 0 + + + 1207 + 125 + 0 + 0 + 0 + + + 1208 + 125 + 0 + 0 + 0 + + + 1209 + 325 + 0 + 0 + 0 + + + 1210 + 325 + 0 + 0 + 0 + + + 1211 + 800 + 0 + 0 + 0 + + + 1212 + 800 + 0 + 0 + 0 + + + 1213 + 8000 + 0 + 0 + 0 + + + 1214 + 8000 + 0 + 0 + 0 + + + 1215 + 30000 + 0 + 0 + 0 + + + 1216 + 30000 + 0 + 0 + 0 + + + 1217 + 240 + 0 + 0 + 0 + + + 1218 + 240 + 0 + 0 + 0 + + + 1219 + 35 + 0 + 0 + 0 + + + 1220 + 35 + 0 + 0 + 0 + + + 1221 + 10 + 0 + 0 + 0 + + + 1222 + 10 + 0 + 0 + 0 + + + 1223 + 125 + 0 + 0 + 0 + + + 1224 + 125 + 0 + 0 + 0 + + + 1225 + 325 + 0 + 0 + 0 + + + 1226 + 325 + 0 + 0 + 0 + + + 1227 + 800 + 0 + 0 + 0 + + + 1228 + 800 + 0 + 0 + 0 + + + 1229 + 8000 + 0 + 0 + 0 + + + 1230 + 8000 + 0 + 0 + 0 + + + 1231 + 24000 + 0 + 0 + 0 + + + 1232 + 24000 + 0 + 0 + 0 + + + 1233 + 240 + 0 + 0 + 0 + + + 1234 + 240 + 0 + 0 + 0 + + + 1235 + 565 + 0 + 0 + 0 + + + 1236 + 565 + 0 + 0 + 0 + + + 1237 + 26 + 0 + 0 + 0 + + + 1238 + 26 + 0 + 0 + 0 + + + 1239 + 91 + 0 + 0 + 0 + + + 1240 + 91 + 0 + 0 + 0 + + + 1241 + 325 + 0 + 0 + 0 + + + 1242 + 325 + 0 + 0 + 0 + + + 1243 + 845 + 0 + 0 + 0 + + + 1244 + 845 + 0 + 0 + 0 + + + 1245 + 2080 + 0 + 0 + 0 + + + 1246 + 2080 + 0 + 0 + 0 + + + 1247 + 20800 + 0 + 0 + 0 + + + 1248 + 20800 + 0 + 0 + 0 + + + 1249 + 62400 + 0 + 0 + 0 + + + 1250 + 62400 + 0 + 0 + 0 + + + 1251 + 26 + 0 + 0 + 0 + + + 1252 + 26 + 0 + 0 + 0 + + + 1253 + 91 + 0 + 0 + 0 + + + 1254 + 91 + 0 + 0 + 0 + + + 1255 + 325 + 0 + 0 + 0 + + + 1256 + 325 + 0 + 0 + 0 + + + 1257 + 845 + 0 + 0 + 0 + + + 1258 + 845 + 0 + 0 + 0 + + + 1259 + 2080 + 0 + 0 + 0 + + + 1260 + 2080 + 0 + 0 + 0 + + + 1261 + 20800 + 0 + 0 + 0 + + + 1262 + 20800 + 0 + 0 + 0 + + + 1263 + 62400 + 0 + 0 + 0 + + + 1264 + 62400 + 0 + 0 + 0 + + + 1265 + 1 + 0 + 0 + 0 + + + 1266 + 1 + 0 + 0 + 0 + + + 1267 + 140 + 0 + 0 + 0 + + + 1268 + 140 + 0 + 0 + 0 + + + 1269 + 500 + 0 + 0 + 0 + + + 1270 + 500 + 0 + 0 + 0 + + + 1271 + 3200 + 0 + 0 + 0 + + + 1272 + 3200 + 0 + 0 + 0 + + + 1273 + 1300 + 0 + 0 + 0 + + + 1274 + 1300 + 0 + 0 + 0 + + + 1275 + 32000 + 0 + 0 + 0 + + + 1276 + 32000 + 0 + 0 + 0 + + + 1277 + 26 + 0 + 0 + 0 + + + 1278 + 26 + 0 + 0 + 0 + + + 1279 + 91 + 0 + 0 + 0 + + + 1280 + 91 + 0 + 0 + 0 + + + 1281 + 325 + 0 + 0 + 0 + + + 1282 + 325 + 0 + 0 + 0 + + + 1283 + 624 + 0 + 0 + 0 + + + 1284 + 624 + 0 + 0 + 0 + + + 1285 + 845 + 0 + 0 + 0 + + + 1286 + 845 + 0 + 0 + 0 + + + 1287 + 2080 + 0 + 0 + 0 + + + 1288 + 2080 + 0 + 0 + 0 + + + 1289 + 20800 + 0 + 0 + 0 + + + 1290 + 20800 + 0 + 0 + 0 + + + 1291 + 40 + 0 + 0 + 0 + + + 1292 + 40 + 0 + 0 + 0 + + + 1293 + 140 + 0 + 0 + 0 + + + 1294 + 140 + 0 + 0 + 0 + + + 1295 + 500 + 0 + 0 + 0 + + + 1296 + 500 + 0 + 0 + 0 + + + 1297 + 960 + 0 + 0 + 0 + + + 1298 + 960 + 0 + 0 + 0 + + + 1299 + 1300 + 0 + 0 + 0 + + + 1300 + 1300 + 0 + 0 + 0 + + + 1301 + 3200 + 0 + 0 + 0 + + + 1302 + 3200 + 0 + 0 + 0 + + + 1303 + 32000 + 0 + 0 + 0 + + + 1304 + 32000 + 0 + 0 + 0 + + + 1305 + 100000 + 0 + 0 + 0 + + + 1306 + 100000 + 0 + 0 + 0 + + + 1307 + 80 + 0 + 0 + 0 + + + 1308 + 80 + 0 + 0 + 0 + + + 1309 + 280 + 0 + 0 + 0 + + + 1310 + 280 + 0 + 0 + 0 + + + 1311 + 1000 + 0 + 0 + 0 + + + 1312 + 1000 + 0 + 0 + 0 + + + 1313 + 1920 + 0 + 0 + 0 + + + 1314 + 1920 + 0 + 0 + 0 + + + 1315 + 2600 + 0 + 0 + 0 + + + 1316 + 2600 + 0 + 0 + 0 + + + 1317 + 6400 + 0 + 0 + 0 + + + 1318 + 6400 + 0 + 0 + 0 + + + 1319 + 64000 + 0 + 0 + 0 + + + 1320 + 64000 + 0 + 0 + 0 + + + 1321 + 32 + 0 + 0 + 0 + + + 1322 + 32 + 0 + 0 + 0 + + + 1323 + 112 + 0 + 0 + 0 + + + 1324 + 112 + 0 + 0 + 0 + + + 1325 + 400 + 0 + 0 + 0 + + + 1326 + 400 + 0 + 0 + 0 + + + 1327 + 768 + 0 + 0 + 0 + + + 1328 + 768 + 0 + 0 + 0 + + + 1329 + 1040 + 0 + 0 + 0 + + + 1330 + 1040 + 0 + 0 + 0 + + + 1331 + 2560 + 0 + 0 + 0 + + + 1332 + 2560 + 0 + 0 + 0 + + + 1333 + 25600 + 0 + 0 + 0 + + + 1334 + 25600 + 0 + 0 + 0 + + + 1335 + 224 + 0 + 0 + 0 + + + 1336 + 224 + 0 + 0 + 0 + + + 1337 + 61 + 0 + 0 + 0 + + + 1338 + 61 + 0 + 0 + 0 + + + 1339 + 832 + 0 + 0 + 0 + + + 1340 + 832 + 0 + 0 + 0 + + + 1341 + 1274 + 0 + 0 + 0 + + + 1342 + 1274 + 0 + 0 + 0 + + + 1343 + 2158 + 0 + 0 + 0 + + + 1344 + 2158 + 0 + 0 + 0 + + + 1345 + 5356 + 0 + 0 + 0 + + + 1346 + 5356 + 0 + 0 + 0 + + + 1347 + 41500 + 0 + 0 + 0 + + + 1348 + 41500 + 0 + 0 + 0 + + + 1349 + 56 + 0 + 0 + 0 + + + 1350 + 56 + 0 + 0 + 0 + + + 1351 + 16 + 0 + 0 + 0 + + + 1352 + 16 + 0 + 0 + 0 + + + 1353 + 200 + 0 + 0 + 0 + + + 1354 + 200 + 0 + 0 + 0 + + + 1355 + 520 + 0 + 0 + 0 + + + 1356 + 520 + 0 + 0 + 0 + + + 1357 + 1280 + 0 + 0 + 0 + + + 1358 + 1280 + 0 + 0 + 0 + + + 1359 + 12800 + 0 + 0 + 0 + + + 1360 + 12800 + 0 + 0 + 0 + + + 1361 + 384 + 0 + 0 + 0 + + + 1362 + 384 + 0 + 0 + 0 + + + 1363 + 182 + 0 + 0 + 0 + + + 1364 + 182 + 0 + 0 + 0 + + + 1365 + 650 + 0 + 0 + 0 + + + 1366 + 650 + 0 + 0 + 0 + + + 1367 + 1248 + 0 + 0 + 0 + + + 1368 + 1248 + 0 + 0 + 0 + + + 1369 + 1690 + 0 + 0 + 0 + + + 1370 + 1690 + 0 + 0 + 0 + + + 1371 + 4160 + 0 + 0 + 0 + + + 1372 + 4160 + 0 + 0 + 0 + + + 1373 + 41600 + 0 + 0 + 0 + + + 1374 + 41600 + 0 + 0 + 0 + + + 1375 + 52 + 0 + 0 + 0 + + + 1376 + 52 + 0 + 0 + 0 + + + 1377 + 200000 + 0 + 0 + 0 + + + 1378 + 200000 + 0 + 0 + 0 + + + 1379 + 15 + 0 + 0 + 0 + + + 1380 + 15 + 0 + 0 + 0 + + + 1381 + 1500 + 0 + 0 + 0 + + + 1382 + 1500 + 0 + 0 + 0 + + + 1383 + 1500 + 0 + 0 + 0 + + + 1384 + 1500 + 0 + 0 + 0 + + + 1385 + 1500 + 0 + 0 + 0 + + + 1386 + 1500 + 0 + 0 + 0 + + + 1387 + 1500 + 0 + 0 + 0 + + + 1388 + 1500 + 0 + 0 + 0 + + + 1389 + 200 + 0 + 0 + 0 + + + 1390 + 200 + 0 + 0 + 0 + + + 1391 + 7000 + 0 + 0 + 0 + + + 1392 + 7000 + 0 + 0 + 0 + + + 1393 + 15500 + 0 + 0 + 0 + + + 1394 + 15500 + 0 + 0 + 0 + + + 1395 + 15500 + 0 + 0 + 0 + + + 1396 + 15500 + 0 + 0 + 0 + + + 1397 + 15500 + 0 + 0 + 0 + + + 1398 + 15500 + 0 + 0 + 0 + + + 1399 + 15500 + 0 + 0 + 0 + + + 1400 + 15500 + 0 + 0 + 0 + + + 1401 + 42500 + 0 + 0 + 0 + + + 1402 + 42500 + 0 + 0 + 0 + + + 1403 + 42500 + 0 + 0 + 0 + + + 1404 + 42500 + 0 + 0 + 0 + + + 1405 + 42500 + 0 + 0 + 0 + + + 1406 + 42500 + 0 + 0 + 0 + + + 1407 + 42500 + 0 + 0 + 0 + + + 1408 + 42500 + 0 + 0 + 0 + + + 1409 + 42500 + 0 + 0 + 0 + + + 1410 + 20 + 0 + 0 + 0 + + + 1411 + 1 + 0 + 0 + 0 + + + 1412 + 1 + 0 + 0 + 0 + + + 1413 + 1 + 0 + 0 + 0 + + + 1414 + 1 + 0 + 0 + 0 + + + 1415 + 1 + 0 + 0 + 0 + + + 1416 + 1 + 0 + 0 + 0 + + + 1417 + 1 + 0 + 0 + 0 + + + 1418 + 1 + 0 + 0 + 0 + + + 1419 + 1 + 0 + 0 + 0 + + + 1420 + 63 + 0 + 0 + 0 + + + 1421 + 63 + 0 + 0 + 0 + + + 1422 + 18 + 0 + 0 + 0 + + + 1423 + 18 + 0 + 0 + 0 + + + 1424 + 225 + 0 + 0 + 0 + + + 1425 + 225 + 0 + 0 + 0 + + + 1426 + 432 + 0 + 0 + 0 + + + 1427 + 432 + 0 + 0 + 0 + + + 1428 + 585 + 0 + 0 + 0 + + + 1429 + 585 + 0 + 0 + 0 + + + 1430 + 1440 + 0 + 0 + 0 + + + 1431 + 1440 + 0 + 0 + 0 + + + 1432 + 14400 + 0 + 0 + 0 + + + 1433 + 14400 + 0 + 0 + 0 + + + 1434 + 50000 + 0 + 0 + 0 + + + 1435 + 50000 + 0 + 0 + 0 + + + 1436 + 4 + 0 + 0 + 0 + + + 1437 + 4 + 0 + 0 + 0 + + + 1438 + 4 + 0 + 0 + 0 + + + 1439 + 4 + 0 + 0 + 0 + + + 1440 + 4 + 0 + 0 + 0 + + + 1441 + 4 + 0 + 0 + 0 + + + 1442 + 4 + 0 + 0 + 0 + + + 1443 + 4 + 0 + 0 + 0 + + + 1444 + 4 + 0 + 0 + 0 + + + 1445 + 4 + 0 + 0 + 0 + + + 1446 + 4 + 0 + 0 + 0 + + + 1447 + 4 + 0 + 0 + 0 + + + 1448 + 4 + 0 + 0 + 0 + + + 1449 + 4 + 0 + 0 + 0 + + + 1450 + 4 + 0 + 0 + 0 + + + 1451 + 4 + 0 + 0 + 0 + + + 1452 + 4 + 0 + 0 + 0 + + + 1453 + 4 + 0 + 0 + 0 + + + 1454 + 4 + 0 + 0 + 0 + + + 1455 + 4 + 0 + 0 + 0 + + + 1456 + 4 + 0 + 0 + 0 + + + 1457 + 4 + 0 + 0 + 0 + + + 1458 + 4 + 0 + 0 + 0 + + + 1459 + 4 + 0 + 0 + 0 + + + 1460 + 4 + 0 + 0 + 0 + + + 1461 + 4 + 0 + 0 + 0 + + + 1462 + 4 + 0 + 0 + 0 + + + 1463 + 4 + 0 + 0 + 0 + + + 1464 + 25 + 0 + 0 + 0 + + + 1465 + 11 + 0 + 0 + 0 + + + 1466 + 4 + 0 + 0 + 0 + + + 1467 + 1 + 0 + 0 + 0 + + + 1468 + 1 + 0 + 0 + 0 + + + 1469 + 1 + 0 + 0 + 0 + + + 1470 + 4 + 0 + 0 + 0 + + + 1471 + 4 + 0 + 0 + 0 + + + 1472 + 4 + 0 + 0 + 0 + + + 1473 + 4 + 0 + 0 + 0 + + + 1474 + 4 + 0 + 0 + 0 + + + 1475 + 4 + 0 + 0 + 0 + + + 1476 + 4 + 0 + 0 + 0 + + + 1477 + 4 + 0 + 0 + 0 + + + 1478 + 100 + 0 + 0 + 0 + + + 1479 + 100 + 0 + 0 + 0 + + + 1480 + 1 + 0 + 0 + 0 + + + 1481 + 10 + 0 + 0 + 0 + + + 1482 + 10 + 0 + 0 + 0 + + + 1483 + 10 + 0 + 0 + 0 + + + 1484 + 20 + 0 + 0 + 0 + + + 1485 + 10 + 0 + 0 + 0 + + + 1486 + 10 + 0 + 0 + 0 + + + 1487 + 20 + 0 + 0 + 0 + + + 1488 + 10 + 0 + 0 + 0 + + + 1489 + 10 + 0 + 0 + 0 + + + 1490 + 10 + 0 + 0 + 0 + + + 1491 + 1 + 0 + 0 + 0 + + + 1492 + 2 + 0 + 0 + 0 + + + 1493 + 1 + 0 + 0 + 0 + + + 1494 + 1 + 0 + 0 + 0 + + + 1495 + 6 + 0 + 0 + 0 + + + 1496 + 1 + 0 + 0 + 0 + + + 1497 + 1 + 0 + 0 + 0 + + + 1498 + 1 + 0 + 0 + 0 + + + 1499 + 1 + 0 + 0 + 0 + + + 1500 + 2 + 0 + 0 + 0 + + + 1501 + 2 + 0 + 0 + 0 + + + 1502 + 2 + 0 + 0 + 0 + + + 1503 + 5 + 0 + 0 + 0 + + + 1504 + 2 + 0 + 0 + 0 + + + 1505 + 1 + 0 + 0 + 0 + + + 1506 + 2 + 0 + 0 + 0 + + + 1507 + 1 + 0 + 0 + 0 + + + 1508 + 2 + 0 + 0 + 0 + + + 1509 + 1 + 0 + 0 + 0 + + + 1510 + 1 + 0 + 0 + 0 + + + 1511 + 4 + 0 + 0 + 0 + + + 1512 + 4 + 0 + 0 + 0 + + + 1513 + 320 + 0 + 0 + 0 + + + 1514 + 320 + 0 + 0 + 0 + + + 1515 + 160 + 0 + 0 + 0 + + + 1516 + 160 + 0 + 0 + 0 + + + 1517 + 80 + 0 + 0 + 0 + + + 1518 + 80 + 0 + 0 + 0 + + + 1519 + 40 + 0 + 0 + 0 + + + 1520 + 40 + 0 + 0 + 0 + + + 1521 + 20 + 0 + 0 + 0 + + + 1522 + 20 + 0 + 0 + 0 + + + 1523 + 20 + 0 + 0 + 0 + + + 1524 + 20 + 0 + 0 + 0 + + + 1525 + 1 + 0 + 0 + 0 + + + 1526 + 5 + 0 + 0 + 0 + + + 1527 + 1 + 0 + 0 + 0 + + + 1528 + 5 + 0 + 0 + 0 + + + 1529 + 1 + 0 + 0 + 0 + + + 1530 + 5 + 0 + 0 + 0 + + + 1531 + 1 + 0 + 0 + 0 + + + 1532 + 5 + 0 + 0 + 0 + + + 1533 + 1 + 0 + 0 + 0 + + + 1534 + 5 + 0 + 0 + 0 + + + 1535 + 1 + 0 + 0 + 0 + + + 1536 + 1 + 0 + 0 + 0 + + + 1537 + 1 + 0 + 0 + 0 + + + 1538 + 1 + 0 + 0 + 0 + + + 1539 + 52 + 0 + 0 + 0 + + + 1540 + 20 + 0 + 0 + 0 + + + 1541 + 20 + 0 + 0 + 0 + + + 1542 + 1 + 0 + 0 + 0 + + + 1543 + 1 + 0 + 0 + 0 + + + 1544 + 1 + 0 + 0 + 0 + + + 1545 + 1 + 0 + 0 + 0 + + + 1546 + 1 + 0 + 0 + 0 + + + 1547 + 1 + 0 + 0 + 0 + + + 1548 + 1 + 0 + 0 + 0 + + + 1549 + 8 + 0 + 0 + 0 + + + 1550 + 3 + 0 + 0 + 0 + + + 1551 + 3 + 0 + 0 + 0 + + + 1552 + 10 + 0 + 0 + 0 + + + 1553 + 1 + 0 + 0 + 0 + + + 1554 + 1 + 0 + 0 + 0 + + + 1555 + 1 + 0 + 0 + 0 + + + 1556 + 1 + 0 + 0 + 0 + + + 1557 + 1 + 0 + 0 + 0 + + + 1558 + 1 + 0 + 0 + 0 + + + 1559 + 1 + 0 + 0 + 0 + + + 1560 + 1 + 0 + 0 + 0 + + + 1561 + 1 + 0 + 0 + 0 + + + 1562 + 1 + 0 + 0 + 0 + + + 1563 + 1 + 0 + 0 + 0 + + + 1564 + 1 + 0 + 0 + 0 + + + 1565 + 1 + 0 + 0 + 0 + + + 1566 + 1 + 0 + 0 + 0 + + + 1567 + 1 + 0 + 0 + 0 + + + 1568 + 1 + 0 + 0 + 0 + + + 1569 + 1 + 0 + 0 + 0 + + + 1570 + 1 + 0 + 0 + 0 + + + 1571 + 1 + 0 + 0 + 0 + + + 1572 + 1 + 0 + 0 + 0 + + + 1573 + 2 + 0 + 0 + 0 + + + 1574 + 1 + 0 + 0 + 0 + + + 1575 + 350 + 0 + 0 + 0 + + + 1576 + 1 + 0 + 0 + 0 + + + 1577 + 5 + 0 + 0 + 0 + + + 1578 + 5 + 0 + 0 + 0 + + + 1579 + 2 + 0 + 0 + 0 + + + 1580 + 6 + 0 + 0 + 0 + + + 1581 + 5 + 0 + 0 + 0 + + + 1582 + 10 + 0 + 0 + 0 + + + 1583 + 2 + 0 + 0 + 0 + + + 1584 + 1 + 0 + 0 + 0 + + + 1585 + 15 + 0 + 0 + 0 + + + 1586 + 1 + 0 + 0 + 0 + + + 1587 + 1 + 0 + 0 + 0 + + + 1588 + 1 + 0 + 0 + 0 + + + 1589 + 1 + 0 + 0 + 0 + + + 1590 + 1 + 0 + 0 + 0 + + + 1591 + 1 + 0 + 0 + 0 + + + 1592 + 5 + 0 + 0 + 0 + + + 1593 + 5 + 0 + 0 + 0 + + + 1594 + 200 + 0 + 0 + 0 + + + 1595 + 5 + 0 + 0 + 0 + + + 1596 + 5 + 0 + 0 + 0 + + + 1597 + 5 + 0 + 0 + 0 + + + 1598 + 5 + 0 + 0 + 0 + + + 1599 + 5 + 0 + 0 + 0 + + + 1600 + 5 + 0 + 0 + 0 + + + 1601 + 2000 + 0 + 0 + 0 + + + 1602 + 2000 + 0 + 0 + 0 + + + 1603 + 1000 + 0 + 0 + 0 + + + 1604 + 1000 + 0 + 0 + 0 + + + 1605 + 500 + 0 + 0 + 0 + + + 1606 + 500 + 0 + 0 + 0 + + + 1607 + 250 + 0 + 0 + 0 + + + 1608 + 250 + 0 + 0 + 0 + + + 1609 + 100 + 0 + 0 + 0 + + + 1610 + 100 + 0 + 0 + 0 + + + 1611 + 150 + 0 + 0 + 0 + + + 1612 + 150 + 0 + 0 + 0 + + + 1613 + 200 + 0 + 0 + 0 + + + 1614 + 200 + 0 + 0 + 0 + + + 1615 + 10000 + 0 + 0 + 0 + + + 1616 + 10000 + 0 + 0 + 0 + + + 1617 + 200 + 0 + 0 + 0 + + + 1618 + 200 + 0 + 0 + 0 + + + 1619 + 100 + 0 + 0 + 0 + + + 1620 + 100 + 0 + 0 + 0 + + + 1621 + 50 + 1 + 52 + 0 + + + 1622 + 50 + 0 + 0 + 0 + + + 1623 + 25 + 0 + 0 + 0 + + + 1624 + 25 + 0 + 0 + 0 + + + 1625 + 20 + 0 + 0 + 0 + + + 1626 + 20 + 0 + 0 + 0 + + + 1627 + 30 + 0 + 0 + 0 + + + 1628 + 30 + 0 + 0 + 0 + + + 1629 + 40 + 0 + 0 + 0 + + + 1630 + 40 + 0 + 0 + 0 + + + 1631 + 1000 + 0 + 0 + 0 + + + 1632 + 1000 + 0 + 0 + 0 + + + 1633 + 1 + 0 + 0 + 0 + + + 1634 + 1 + 0 + 0 + 0 + + + 1635 + 350 + 0 + 0 + 0 + + + 1636 + 350 + 0 + 0 + 0 + + + 1637 + 900 + 0 + 0 + 0 + + + 1638 + 900 + 0 + 0 + 0 + + + 1639 + 1275 + 0 + 0 + 0 + + + 1640 + 1275 + 0 + 0 + 0 + + + 1641 + 2025 + 0 + 0 + 0 + + + 1642 + 2025 + 0 + 0 + 0 + + + 1643 + 3525 + 0 + 0 + 0 + + + 1644 + 3525 + 0 + 0 + 0 + + + 1645 + 17625 + 0 + 0 + 0 + + + 1646 + 17625 + 0 + 0 + 0 + + + 1647 + 1 + 0 + 0 + 0 + + + 1648 + 1 + 0 + 0 + 0 + + + 1649 + 1 + 0 + 0 + 0 + + + 1650 + 1 + 0 + 0 + 0 + + + 1651 + 1 + 0 + 0 + 0 + + + 1652 + 1 + 0 + 0 + 0 + + + 1653 + 1 + 0 + 0 + 0 + + + 1654 + 450 + 0 + 0 + 0 + + + 1655 + 450 + 0 + 0 + 0 + + + 1656 + 1050 + 0 + 0 + 0 + + + 1657 + 1050 + 0 + 0 + 0 + + + 1658 + 1425 + 0 + 0 + 0 + + + 1659 + 1425 + 0 + 0 + 0 + + + 1660 + 2175 + 0 + 0 + 0 + + + 1661 + 2175 + 0 + 0 + 0 + + + 1662 + 3675 + 0 + 0 + 0 + + + 1663 + 3675 + 0 + 0 + 0 + + + 1664 + 18375 + 0 + 0 + 0 + + + 1665 + 18375 + 0 + 0 + 0 + + + 1666 + 1 + 0 + 0 + 0 + + + 1667 + 1 + 0 + 0 + 0 + + + 1668 + 1 + 0 + 0 + 0 + + + 1669 + 1 + 0 + 0 + 0 + + + 1670 + 1 + 0 + 0 + 0 + + + 1671 + 1 + 0 + 0 + 0 + + + 1672 + 1 + 0 + 0 + 0 + + + 1673 + 350 + 0 + 0 + 0 + + + 1674 + 350 + 0 + 0 + 0 + + + 1675 + 900 + 0 + 0 + 0 + + + 1676 + 900 + 0 + 0 + 0 + + + 1677 + 1275 + 0 + 0 + 0 + + + 1678 + 1275 + 0 + 0 + 0 + + + 1679 + 2025 + 0 + 0 + 0 + + + 1680 + 2025 + 0 + 0 + 0 + + + 1681 + 3525 + 0 + 0 + 0 + + + 1682 + 3525 + 0 + 0 + 0 + + + 1683 + 17625 + 0 + 0 + 0 + + + 1684 + 17625 + 0 + 0 + 0 + + + 1685 + 1 + 0 + 0 + 0 + + + 1686 + 1 + 0 + 0 + 0 + + + 1687 + 1 + 0 + 0 + 0 + + + 1688 + 1 + 0 + 0 + 0 + + + 1689 + 1 + 0 + 0 + 0 + + + 1690 + 1 + 0 + 0 + 0 + + + 1691 + 1 + 0 + 0 + 0 + + + 1692 + 350 + 0 + 0 + 0 + + + 1693 + 350 + 0 + 0 + 0 + + + 1694 + 900 + 0 + 0 + 0 + + + 1695 + 900 + 0 + 0 + 0 + + + 1696 + 1275 + 0 + 0 + 0 + + + 1697 + 1275 + 0 + 0 + 0 + + + 1698 + 2025 + 0 + 0 + 0 + + + 1699 + 2025 + 0 + 0 + 0 + + + 1700 + 3525 + 0 + 0 + 0 + + + 1701 + 3525 + 0 + 0 + 0 + + + 1702 + 17625 + 0 + 0 + 0 + + + 1703 + 17625 + 0 + 0 + 0 + + + 1704 + 17625 + 0 + 0 + 0 + + + 1705 + 17625 + 0 + 0 + 0 + + + 1706 + 17625 + 0 + 0 + 0 + + + 1707 + 17625 + 0 + 0 + 0 + + + 1708 + 17625 + 0 + 0 + 0 + + + 1709 + 17625 + 0 + 0 + 0 + + + 1710 + 17625 + 0 + 0 + 0 + + + 1711 + 17625 + 0 + 0 + 0 + + + 1712 + 17625 + 0 + 0 + 0 + + + 1713 + 17625 + 0 + 0 + 0 + + + 1714 + 200 + 0 + 0 + 0 + + + 1715 + 200 + 0 + 0 + 0 + + + 1716 + 200 + 0 + 0 + 0 + + + 1717 + 200 + 0 + 0 + 0 + + + 1718 + 300 + 0 + 0 + 0 + + + 1719 + 300 + 0 + 0 + 0 + + + 1720 + 200 + 0 + 0 + 0 + + + 1721 + 200 + 0 + 0 + 0 + + + 1722 + 200 + 0 + 0 + 0 + + + 1723 + 200 + 0 + 0 + 0 + + + 1724 + 200 + 0 + 0 + 0 + + + 1725 + 2025 + 0 + 0 + 0 + + + 1726 + 2025 + 0 + 0 + 0 + + + 1727 + 900 + 0 + 0 + 0 + + + 1728 + 900 + 0 + 0 + 0 + + + 1729 + 1275 + 0 + 0 + 0 + + + 1730 + 1275 + 0 + 0 + 0 + + + 1731 + 3525 + 0 + 0 + 0 + + + 1732 + 3525 + 0 + 0 + 0 + + + 1733 + 1 + 0 + 0 + 0 + + + 1734 + 4 + 0 + 0 + 0 + + + 1735 + 1 + 0 + 0 + 0 + + + 1736 + 1 + 0 + 0 + 0 + + + 1737 + 1 + 0 + 0 + 0 + + + 1738 + 1 + 0 + 0 + 0 + + + 1739 + 1 + 0 + 0 + 0 + + + 1740 + 1 + 0 + 0 + 0 + + + 1741 + 1 + 0 + 0 + 0 + + + 1742 + 1 + 0 + 0 + 0 + + + 1743 + 1 + 0 + 0 + 0 + + + 1744 + 1 + 0 + 0 + 0 + + + 1745 + 50 + 0 + 0 + 0 + + + 1746 + 50 + 0 + 0 + 0 + + + 1747 + 80 + 0 + 0 + 0 + + + 1748 + 80 + 0 + 0 + 0 + + + 1749 + 60 + 0 + 0 + 0 + + + 1750 + 60 + 0 + 0 + 0 + + + 1751 + 40 + 0 + 0 + 0 + + + 1752 + 40 + 0 + 0 + 0 + + + 1753 + 20 + 0 + 0 + 0 + + + 1754 + 20 + 0 + 0 + 0 + + + 1755 + 1 + 0 + 0 + 0 + + + 1756 + 1 + 0 + 0 + 0 + + + 1757 + 2 + 0 + 0 + 0 + + + 1758 + 2 + 0 + 0 + 0 + + + 1759 + 5 + 0 + 0 + 0 + + + 1760 + 5 + 0 + 0 + 0 + + + 1761 + 2 + 0 + 0 + 0 + + + 1762 + 2 + 0 + 0 + 0 + + + 1763 + 6 + 0 + 0 + 0 + + + 1764 + 6 + 0 + 0 + 0 + + + 1765 + 6 + 0 + 0 + 0 + + + 1766 + 6 + 0 + 0 + 0 + + + 1767 + 6 + 0 + 0 + 0 + + + 1768 + 6 + 0 + 0 + 0 + + + 1769 + 6 + 0 + 0 + 0 + + + 1770 + 6 + 0 + 0 + 0 + + + 1771 + 6 + 0 + 0 + 0 + + + 1772 + 6 + 0 + 0 + 0 + + + 1773 + 6 + 0 + 0 + 0 + + + 1774 + 6 + 0 + 0 + 0 + + + 1775 + 3 + 0 + 0 + 0 + + + 1776 + 3 + 0 + 0 + 0 + + + 1777 + 10 + 0 + 0 + 0 + + + 1778 + 10 + 0 + 0 + 0 + + + 1779 + 5 + 0 + 0 + 0 + + + 1780 + 5 + 0 + 0 + 0 + + + 1781 + 2 + 0 + 0 + 0 + + + 1782 + 2 + 0 + 0 + 0 + + + 1783 + 2 + 0 + 0 + 0 + + + 1784 + 2 + 0 + 0 + 0 + + + 1785 + 2 + 0 + 0 + 0 + + + 1786 + 2 + 0 + 0 + 0 + + + 1787 + 1 + 0 + 0 + 0 + + + 1788 + 1 + 0 + 0 + 0 + + + 1789 + 3 + 0 + 0 + 0 + + + 1790 + 3 + 0 + 0 + 0 + + + 1791 + 2 + 0 + 0 + 0 + + + 1792 + 2 + 0 + 0 + 0 + + + 1793 + 1 + 0 + 0 + 0 + + + 1794 + 20 + 0 + 0 + 0 + + + 1795 + 20 + 0 + 0 + 0 + + + 1796 + 1 + 0 + 0 + 0 + + + 1797 + 1 + 0 + 0 + 0 + + + 1798 + 1 + 0 + 0 + 0 + + + 1799 + 1 + 0 + 0 + 0 + + + 1800 + 1 + 0 + 0 + 0 + + + 1801 + 1 + 0 + 0 + 0 + + + 1802 + 1 + 0 + 0 + 0 + + + 1803 + 1 + 0 + 0 + 0 + + + 1804 + 1 + 0 + 0 + 0 + + + 1805 + 1 + 0 + 0 + 0 + + + 1806 + 1 + 0 + 0 + 0 + + + 1807 + 1 + 0 + 0 + 0 + + + 1808 + 1 + 0 + 0 + 0 + + + 1809 + 1 + 0 + 0 + 0 + + + 1810 + 1 + 0 + 0 + 0 + + + 1811 + 1 + 0 + 0 + 0 + + + 1812 + 1 + 0 + 0 + 0 + + + 1813 + 1 + 0 + 0 + 0 + + + 1814 + 1 + 0 + 0 + 0 + + + 1815 + 1 + 0 + 0 + 0 + + + 1816 + 1 + 0 + 0 + 0 + + + 1817 + 1 + 0 + 0 + 0 + + + 1818 + 1 + 0 + 0 + 0 + + + 1819 + 1 + 0 + 0 + 0 + + + 1820 + 1 + 0 + 0 + 0 + + + 1821 + 1 + 0 + 0 + 0 + + + 1822 + 1 + 0 + 0 + 0 + + + 1823 + 30 + 0 + 0 + 0 + + + 1824 + 30 + 0 + 0 + 0 + + + 1825 + 27 + 0 + 0 + 0 + + + 1826 + 27 + 0 + 0 + 0 + + + 1827 + 24 + 0 + 0 + 0 + + + 1828 + 24 + 0 + 0 + 0 + + + 1829 + 18 + 0 + 0 + 0 + + + 1830 + 18 + 0 + 0 + 0 + + + 1831 + 15 + 0 + 0 + 0 + + + 1832 + 15 + 0 + 0 + 0 + + + 1833 + 40 + 0 + 0 + 0 + + + 1834 + 40 + 0 + 0 + 0 + + + 1835 + 40 + 0 + 0 + 0 + + + 1836 + 40 + 0 + 0 + 0 + + + 1837 + 20 + 0 + 0 + 0 + + + 1838 + 20 + 0 + 0 + 0 + + + 1839 + 1 + 0 + 0 + 0 + + + 1840 + 1 + 0 + 0 + 0 + + + 1841 + 1 + 0 + 0 + 0 + + + 1842 + 1 + 0 + 0 + 0 + + + 1843 + 1 + 0 + 0 + 0 + + + 1844 + 40 + 0 + 0 + 0 + + + 1845 + 40 + 0 + 0 + 0 + + + 1846 + 1 + 0 + 0 + 0 + + + 1847 + 10 + 0 + 0 + 0 + + + 1848 + 1 + 0 + 0 + 0 + + + 1849 + 2 + 0 + 0 + 0 + + + 1850 + 1 + 0 + 0 + 0 + + + 1851 + 1 + 0 + 0 + 0 + + + 1852 + 1 + 0 + 0 + 0 + + + 1853 + 1 + 0 + 0 + 0 + + + 1854 + 5 + 0 + 0 + 0 + + + 1855 + 1 + 0 + 0 + 0 + + + 1856 + 1 + 0 + 0 + 0 + + + 1857 + 10 + 0 + 0 + 0 + + + 1858 + 10 + 0 + 0 + 0 + + + 1859 + 2 + 0 + 0 + 0 + + + 1860 + 2 + 0 + 0 + 0 + + + 1861 + 5 + 0 + 0 + 0 + + + 1862 + 5 + 0 + 0 + 0 + + + 1863 + 4 + 0 + 0 + 0 + + + 1864 + 4 + 0 + 0 + 0 + + + 1865 + 10 + 0 + 0 + 0 + + + 1866 + 10 + 0 + 0 + 0 + + + 1867 + 1 + 0 + 0 + 0 + + + 1868 + 1 + 0 + 0 + 0 + + + 1869 + 3 + 0 + 0 + 0 + + + 1870 + 3 + 0 + 0 + 0 + + + 1871 + 3 + 0 + 0 + 0 + + + 1872 + 3 + 0 + 0 + 0 + + + 1873 + 5 + 0 + 0 + 0 + + + 1874 + 5 + 0 + 0 + 0 + + + 1875 + 5 + 0 + 0 + 0 + + + 1876 + 5 + 0 + 0 + 0 + + + 1877 + 7 + 0 + 0 + 0 + + + 1878 + 7 + 0 + 0 + 0 + + + 1879 + 7 + 0 + 0 + 0 + + + 1880 + 7 + 0 + 0 + 0 + + + 1881 + 9 + 0 + 0 + 0 + + + 1882 + 9 + 0 + 0 + 0 + + + 1883 + 20 + 0 + 0 + 0 + + + 1884 + 20 + 0 + 0 + 0 + + + 1885 + 20 + 0 + 0 + 0 + + + 1886 + 20 + 0 + 0 + 0 + + + 1887 + 10 + 0 + 0 + 0 + + + 1888 + 10 + 0 + 0 + 0 + + + 1889 + 20 + 0 + 0 + 0 + + + 1890 + 20 + 0 + 0 + 0 + + + 1891 + 50 + 0 + 0 + 0 + + + 1892 + 50 + 0 + 0 + 0 + + + 1893 + 30 + 0 + 0 + 0 + + + 1894 + 30 + 0 + 0 + 0 + + + 1895 + 10 + 0 + 0 + 0 + + + 1896 + 10 + 0 + 0 + 0 + + + 1897 + 70 + 0 + 0 + 0 + + + 1898 + 70 + 0 + 0 + 0 + + + 1899 + 50 + 0 + 0 + 0 + + + 1900 + 50 + 0 + 0 + 0 + + + 1901 + 30 + 0 + 0 + 0 + + + 1902 + 30 + 0 + 0 + 0 + + + 1903 + 1 + 0 + 0 + 0 + + + 1904 + 1 + 0 + 0 + 0 + + + 1905 + 2 + 0 + 0 + 0 + + + 1906 + 2 + 0 + 0 + 0 + + + 1907 + 2 + 0 + 0 + 0 + + + 1908 + 2 + 0 + 0 + 0 + + + 1909 + 2 + 0 + 0 + 0 + + + 1910 + 2 + 0 + 0 + 0 + + + 1911 + 2 + 0 + 0 + 0 + + + 1912 + 2 + 0 + 0 + 0 + + + 1913 + 2 + 0 + 0 + 0 + + + 1914 + 2 + 0 + 0 + 0 + + + 1915 + 3 + 0 + 0 + 0 + + + 1916 + 3 + 0 + 0 + 0 + + + 1917 + 2 + 0 + 0 + 0 + + + 1918 + 2 + 0 + 0 + 0 + + + 1919 + 2 + 0 + 0 + 0 + + + 1920 + 2 + 0 + 0 + 0 + + + 1921 + 4 + 0 + 0 + 0 + + + 1922 + 4 + 0 + 0 + 0 + + + 1923 + 4 + 0 + 0 + 0 + + + 1924 + 4 + 0 + 0 + 0 + + + 1925 + 2 + 0 + 0 + 0 + + + 1926 + 2 + 0 + 0 + 0 + + + 1927 + 12 + 0 + 0 + 0 + + + 1928 + 12 + 0 + 0 + 0 + + + 1929 + 6 + 0 + 0 + 0 + + + 1930 + 6 + 0 + 0 + 0 + + + 1931 + 1 + 0 + 0 + 0 + + + 1932 + 1 + 0 + 0 + 0 + + + 1933 + 14 + 0 + 0 + 0 + + + 1934 + 14 + 0 + 0 + 0 + + + 1935 + 1 + 0 + 0 + 0 + + + 1936 + 1 + 0 + 0 + 0 + + + 1937 + 1 + 0 + 0 + 0 + + + 1938 + 1 + 0 + 0 + 0 + + + 1939 + 1 + 0 + 0 + 0 + + + 1940 + 1 + 0 + 0 + 0 + + + 1941 + 31 + 0 + 0 + 0 + + + 1942 + 16 + 0 + 0 + 0 + + + 1943 + 16 + 0 + 0 + 0 + + + 1944 + 4 + 0 + 0 + 0 + + + 1945 + 4 + 0 + 0 + 0 + + + 1946 + 2 + 0 + 0 + 0 + + + 1947 + 2 + 0 + 0 + 0 + + + 1948 + 2 + 0 + 0 + 0 + + + 1949 + 2 + 0 + 0 + 0 + + + 1950 + 2 + 0 + 0 + 0 + + + 1951 + 3 + 0 + 0 + 0 + + + 1952 + 3 + 0 + 0 + 0 + + + 1953 + 1 + 0 + 0 + 0 + + + 1954 + 1 + 0 + 0 + 0 + + + 1955 + 36 + 0 + 0 + 0 + + + 1956 + 36 + 0 + 0 + 0 + + + 1957 + 12 + 0 + 0 + 0 + + + 1958 + 12 + 0 + 0 + 0 + + + 1959 + 30 + 0 + 0 + 0 + + + 1960 + 30 + 0 + 0 + 0 + + + 1961 + 10 + 0 + 0 + 0 + + + 1962 + 10 + 0 + 0 + 0 + + + 1963 + 2 + 0 + 0 + 0 + + + 1964 + 2 + 0 + 0 + 0 + + + 1965 + 1 + 0 + 0 + 0 + + + 1966 + 1 + 0 + 0 + 0 + + + 1967 + 1 + 0 + 0 + 0 + + + 1968 + 1 + 0 + 0 + 0 + + + 1969 + 1 + 0 + 0 + 0 + + + 1970 + 1 + 0 + 0 + 0 + + + 1971 + 3 + 0 + 0 + 0 + + + 1972 + 3 + 0 + 0 + 0 + + + 1973 + 20 + 0 + 0 + 0 + + + 1974 + 20 + 0 + 0 + 0 + + + 1975 + 20 + 0 + 0 + 0 + + + 1976 + 20 + 0 + 0 + 0 + + + 1977 + 2 + 0 + 0 + 0 + + + 1978 + 10 + 0 + 0 + 0 + + + 1979 + 10 + 0 + 0 + 0 + + + 1980 + 2 + 0 + 0 + 0 + + + 1981 + 2 + 0 + 0 + 0 + + + 1982 + 14 + 0 + 0 + 0 + + + 1983 + 14 + 0 + 0 + 0 + + + 1984 + 1 + 0 + 0 + 0 + + + 1985 + 8 + 0 + 0 + 0 + + + 1986 + 8 + 0 + 0 + 0 + + + 1987 + 1 + 0 + 0 + 0 + + + 1988 + 1 + 0 + 0 + 0 + + + 1989 + 1 + 0 + 0 + 0 + + + 1990 + 1 + 0 + 0 + 0 + + + 1991 + 1 + 0 + 0 + 0 + + + 1992 + 1 + 0 + 0 + 0 + + + 1993 + 128 + 0 + 0 + 0 + + + 1994 + 128 + 0 + 0 + 0 + + + 1995 + 10 + 0 + 0 + 0 + + + 1996 + 10 + 0 + 0 + 0 + + + 1997 + 4 + 0 + 0 + 0 + + + 1998 + 4 + 0 + 0 + 0 + + + 1999 + 4 + 0 + 0 + 0 + + + 2000 + 4 + 0 + 0 + 0 + + + 2001 + 10 + 0 + 0 + 0 + + + 2002 + 10 + 0 + 0 + 0 + + + 2003 + 100 + 0 + 0 + 0 + + + 2004 + 100 + 0 + 0 + 0 + + + 2005 + 1 + 0 + 0 + 0 + + + 2006 + 1 + 0 + 0 + 0 + + + 2007 + 230 + 0 + 0 + 0 + + + 2008 + 230 + 0 + 0 + 0 + + + 2009 + 10 + 0 + 0 + 0 + + + 2010 + 10 + 0 + 0 + 0 + + + 2011 + 20 + 0 + 0 + 0 + + + 2012 + 20 + 0 + 0 + 0 + + + 2013 + 1 + 0 + 0 + 0 + + + 2014 + 1 + 0 + 0 + 0 + + + 2015 + 5 + 0 + 0 + 0 + + + 2016 + 5 + 0 + 0 + 0 + + + 2017 + 5 + 0 + 0 + 0 + + + 2018 + 5 + 0 + 0 + 0 + + + 2019 + 5 + 0 + 0 + 0 + + + 2020 + 5 + 0 + 0 + 0 + + + 2021 + 5 + 0 + 0 + 0 + + + 2022 + 5 + 0 + 0 + 0 + + + 2023 + 2 + 0 + 0 + 0 + + + 2024 + 2 + 0 + 0 + 0 + + + 2025 + 2 + 0 + 0 + 0 + + + 2026 + 1 + 0 + 0 + 0 + + + 2027 + 1 + 0 + 0 + 0 + + + 2028 + 30 + 0 + 0 + 0 + + + 2029 + 30 + 0 + 0 + 0 + + + 2030 + 30 + 0 + 0 + 0 + + + 2031 + 30 + 0 + 0 + 0 + + + 2032 + 30 + 0 + 0 + 0 + + + 2033 + 30 + 0 + 0 + 0 + + + 2034 + 30 + 0 + 0 + 0 + + + 2035 + 30 + 0 + 0 + 0 + + + 2036 + 30 + 0 + 0 + 0 + + + 2037 + 30 + 0 + 0 + 0 + + + 2038 + 30 + 0 + 0 + 0 + + + 2039 + 30 + 0 + 0 + 0 + + + 2040 + 30 + 0 + 0 + 0 + + + 2041 + 30 + 0 + 0 + 0 + + + 2042 + 2 + 0 + 0 + 0 + + + 2043 + 2 + 0 + 0 + 0 + + + 2044 + 2 + 0 + 0 + 0 + + + 2045 + 2 + 0 + 0 + 0 + + + 2046 + 2 + 0 + 0 + 0 + + + 2047 + 2 + 0 + 0 + 0 + + + 2048 + 30 + 0 + 0 + 0 + + + 2049 + 30 + 0 + 0 + 0 + + + 2050 + 2 + 0 + 0 + 0 + + + 2051 + 2 + 0 + 0 + 0 + + + 2052 + 2 + 0 + 0 + 0 + + + 2053 + 2 + 0 + 0 + 0 + + + 2054 + 30 + 0 + 0 + 0 + + + 2055 + 30 + 0 + 0 + 0 + + + 2056 + 2 + 0 + 0 + 0 + + + 2057 + 2 + 0 + 0 + 0 + + + 2058 + 2 + 0 + 0 + 0 + + + 2059 + 2 + 0 + 0 + 0 + + + 2060 + 2 + 0 + 0 + 0 + + + 2061 + 2 + 0 + 0 + 0 + + + 2062 + 2 + 0 + 0 + 0 + + + 2063 + 2 + 0 + 0 + 0 + + + 2064 + 30 + 0 + 0 + 0 + + + 2065 + 30 + 0 + 0 + 0 + + + 2066 + 2 + 0 + 0 + 0 + + + 2067 + 2 + 0 + 0 + 0 + + + 2068 + 2 + 0 + 0 + 0 + + + 2069 + 2 + 0 + 0 + 0 + + + 2070 + 2 + 0 + 0 + 0 + + + 2071 + 2 + 0 + 0 + 0 + + + 2072 + 2 + 0 + 0 + 0 + + + 2073 + 2 + 0 + 0 + 0 + + + 2074 + 30 + 0 + 0 + 0 + + + 2075 + 30 + 0 + 0 + 0 + + + 2076 + 2 + 0 + 0 + 0 + + + 2077 + 2 + 0 + 0 + 0 + + + 2078 + 2 + 0 + 0 + 0 + + + 2079 + 2 + 0 + 0 + 0 + + + 2080 + 30 + 0 + 0 + 0 + + + 2081 + 30 + 0 + 0 + 0 + + + 2082 + 2 + 0 + 0 + 0 + + + 2083 + 2 + 0 + 0 + 0 + + + 2084 + 30 + 0 + 0 + 0 + + + 2085 + 30 + 0 + 0 + 0 + + + 2086 + 2 + 0 + 0 + 0 + + + 2087 + 2 + 0 + 0 + 0 + + + 2088 + 2 + 0 + 0 + 0 + + + 2089 + 2 + 0 + 0 + 0 + + + 2090 + 2 + 0 + 0 + 0 + + + 2091 + 2 + 0 + 0 + 0 + + + 2092 + 30 + 0 + 0 + 0 + + + 2093 + 30 + 0 + 0 + 0 + + + 2094 + 2 + 0 + 0 + 0 + + + 2095 + 2 + 0 + 0 + 0 + + + 2096 + 2 + 0 + 0 + 0 + + + 2097 + 2 + 0 + 0 + 0 + + + 2098 + 2 + 0 + 0 + 0 + + + 2099 + 2 + 0 + 0 + 0 + + + 2100 + 2 + 0 + 0 + 0 + + + 2101 + 2 + 0 + 0 + 0 + + + 2102 + 2 + 0 + 0 + 0 + + + 2103 + 2 + 0 + 0 + 0 + + + 2104 + 2 + 0 + 0 + 0 + + + 2105 + 2 + 0 + 0 + 0 + + + 2106 + 2 + 0 + 0 + 0 + + + 2107 + 2 + 0 + 0 + 0 + + + 2108 + 70 + 0 + 0 + 0 + + + 2109 + 70 + 0 + 0 + 0 + + + 2110 + 2 + 0 + 0 + 0 + + + 2111 + 2 + 0 + 0 + 0 + + + 2112 + 2 + 0 + 0 + 0 + + + 2113 + 2 + 0 + 0 + 0 + + + 2114 + 2 + 0 + 0 + 0 + + + 2115 + 2 + 0 + 0 + 0 + + + 2116 + 1 + 0 + 0 + 0 + + + 2117 + 1 + 0 + 0 + 0 + + + 2118 + 1 + 0 + 0 + 0 + + + 2119 + 1 + 0 + 0 + 0 + + + 2120 + 2 + 0 + 0 + 0 + + + 2121 + 2 + 0 + 0 + 0 + + + 2122 + 1 + 0 + 0 + 0 + + + 2123 + 1 + 0 + 0 + 0 + + + 2124 + 2 + 0 + 0 + 0 + + + 2125 + 2 + 0 + 0 + 0 + + + 2126 + 4 + 0 + 0 + 0 + + + 2127 + 4 + 0 + 0 + 0 + + + 2128 + 2 + 0 + 0 + 0 + + + 2129 + 2 + 0 + 0 + 0 + + + 2130 + 19 + 0 + 0 + 0 + + + 2131 + 19 + 0 + 0 + 0 + + + 2132 + 8 + 0 + 0 + 0 + + + 2133 + 8 + 0 + 0 + 0 + + + 2134 + 8 + 0 + 0 + 0 + + + 2135 + 8 + 0 + 0 + 0 + + + 2136 + 8 + 0 + 0 + 0 + + + 2137 + 8 + 0 + 0 + 0 + + + 2138 + 9 + 0 + 0 + 0 + + + 2139 + 9 + 0 + 0 + 0 + + + 2140 + 4 + 0 + 0 + 0 + + + 2141 + 4 + 0 + 0 + 0 + + + 2142 + 4 + 0 + 0 + 0 + + + 2143 + 4 + 0 + 0 + 0 + + + 2144 + 1 + 0 + 0 + 0 + + + 2145 + 1 + 0 + 0 + 0 + + + 2146 + 1 + 0 + 0 + 0 + + + 2147 + 1 + 0 + 0 + 0 + + + 2148 + 150 + 0 + 0 + 0 + + + 2149 + 150 + 0 + 0 + 0 + + + 2150 + 2 + 0 + 0 + 0 + + + 2151 + 2 + 0 + 0 + 0 + + + 2152 + 2 + 0 + 0 + 0 + + + 2153 + 2 + 0 + 0 + 0 + + + 2154 + 2 + 0 + 0 + 0 + + + 2155 + 2 + 0 + 0 + 0 + + + 2156 + 2 + 0 + 0 + 0 + + + 2157 + 2 + 0 + 0 + 0 + + + 2158 + 2 + 0 + 0 + 0 + + + 2159 + 2 + 0 + 0 + 0 + + + 2160 + 2 + 0 + 0 + 0 + + + 2161 + 2 + 0 + 0 + 0 + + + 2162 + 2 + 0 + 0 + 0 + + + 2163 + 2 + 0 + 0 + 0 + + + 2164 + 10 + 0 + 0 + 0 + + + 2165 + 10 + 0 + 0 + 0 + + + 2166 + 10 + 0 + 0 + 0 + + + 2167 + 2 + 0 + 0 + 0 + + + 2168 + 2 + 0 + 0 + 0 + + + 2169 + 2 + 0 + 0 + 0 + + + 2170 + 2 + 0 + 0 + 0 + + + 2171 + 2 + 0 + 0 + 0 + + + 2172 + 2 + 0 + 0 + 0 + + + 2173 + 2 + 0 + 0 + 0 + + + 2174 + 2 + 0 + 0 + 0 + + + 2175 + 1 + 0 + 0 + 0 + + + 2176 + 1 + 0 + 0 + 0 + + + 2177 + 2 + 0 + 0 + 0 + + + 2178 + 2 + 0 + 0 + 0 + + + 2179 + 1 + 0 + 0 + 0 + + + 2180 + 1 + 0 + 0 + 0 + + + 2181 + 1 + 0 + 0 + 0 + + + 2182 + 1 + 0 + 0 + 0 + + + 2183 + 1 + 0 + 0 + 0 + + + 2184 + 1 + 0 + 0 + 0 + + + 2185 + 2 + 0 + 0 + 0 + + + 2186 + 2 + 0 + 0 + 0 + + + 2187 + 2 + 0 + 0 + 0 + + + 2188 + 2 + 0 + 0 + 0 + + + 2189 + 1 + 0 + 0 + 0 + + + 2190 + 1 + 0 + 0 + 0 + + + 2191 + 2 + 0 + 0 + 0 + + + 2192 + 2 + 0 + 0 + 0 + + + 2193 + 1 + 0 + 0 + 0 + + + 2194 + 1 + 0 + 0 + 0 + + + 2195 + 2 + 0 + 0 + 0 + + + 2196 + 2 + 0 + 0 + 0 + + + 2197 + 2 + 0 + 0 + 0 + + + 2198 + 2 + 0 + 0 + 0 + + + 2199 + 1 + 0 + 0 + 0 + + + 2200 + 1 + 0 + 0 + 0 + + + 2201 + 2 + 0 + 0 + 0 + + + 2202 + 2 + 0 + 0 + 0 + + + 2203 + 1 + 0 + 0 + 0 + + + 2204 + 1 + 0 + 0 + 0 + + + 2205 + 2 + 0 + 0 + 0 + + + 2206 + 2 + 0 + 0 + 0 + + + 2207 + 1 + 0 + 0 + 0 + + + 2208 + 1 + 0 + 0 + 0 + + + 2209 + 2 + 0 + 0 + 0 + + + 2210 + 2 + 0 + 0 + 0 + + + 2211 + 1 + 0 + 0 + 0 + + + 2212 + 1 + 0 + 0 + 0 + + + 2213 + 2 + 0 + 0 + 0 + + + 2214 + 2 + 0 + 0 + 0 + + + 2215 + 1 + 0 + 0 + 0 + + + 2216 + 1 + 0 + 0 + 0 + + + 2217 + 2 + 0 + 0 + 0 + + + 2218 + 2 + 0 + 0 + 0 + + + 2219 + 195 + 0 + 0 + 0 + + + 2220 + 195 + 0 + 0 + 0 + + + 2221 + 195 + 0 + 0 + 0 + + + 2222 + 195 + 0 + 0 + 0 + + + 2223 + 195 + 0 + 0 + 0 + + + 2224 + 195 + 0 + 0 + 0 + + + 2225 + 195 + 0 + 0 + 0 + + + 2226 + 195 + 0 + 0 + 0 + + + 2227 + 195 + 0 + 0 + 0 + + + 2228 + 195 + 0 + 0 + 0 + + + 2229 + 450 + 0 + 0 + 0 + + + 2230 + 450 + 0 + 0 + 0 + + + 2231 + 450 + 0 + 0 + 0 + + + 2232 + 450 + 0 + 0 + 0 + + + 2233 + 270 + 0 + 0 + 0 + + + 2234 + 270 + 0 + 0 + 0 + + + 2235 + 270 + 0 + 0 + 0 + + + 2236 + 270 + 0 + 0 + 0 + + + 2237 + 80 + 0 + 0 + 0 + + + 2238 + 80 + 0 + 0 + 0 + + + 2239 + 70 + 0 + 0 + 0 + + + 2240 + 70 + 0 + 0 + 0 + + + 2241 + 70 + 0 + 0 + 0 + + + 2242 + 70 + 0 + 0 + 0 + + + 2243 + 80 + 0 + 0 + 0 + + + 2244 + 80 + 0 + 0 + 0 + + + 2245 + 2 + 0 + 0 + 0 + + + 2246 + 2 + 0 + 0 + 0 + + + 2247 + 1 + 0 + 0 + 0 + + + 2248 + 1 + 0 + 0 + 0 + + + 2249 + 2 + 0 + 0 + 0 + + + 2250 + 2 + 0 + 0 + 0 + + + 2251 + 1 + 0 + 0 + 0 + + + 2252 + 1 + 0 + 0 + 0 + + + 2253 + 1 + 0 + 0 + 0 + + + 2254 + 1 + 0 + 0 + 0 + + + 2255 + 2 + 0 + 0 + 0 + + + 2256 + 2 + 0 + 0 + 0 + + + 2257 + 1 + 0 + 0 + 0 + + + 2258 + 1 + 0 + 0 + 0 + + + 2259 + 2 + 0 + 0 + 0 + + + 2260 + 2 + 0 + 0 + 0 + + + 2261 + 1 + 0 + 0 + 0 + + + 2262 + 1 + 0 + 0 + 0 + + + 2263 + 1 + 0 + 0 + 0 + + + 2264 + 1 + 0 + 0 + 0 + + + 2265 + 1 + 0 + 0 + 0 + + + 2266 + 1 + 0 + 0 + 0 + + + 2267 + 1 + 0 + 0 + 0 + + + 2268 + 1 + 0 + 0 + 0 + + + 2269 + 1 + 0 + 0 + 0 + + + 2270 + 1 + 0 + 0 + 0 + + + 2271 + 1 + 0 + 0 + 0 + + + 2272 + 1 + 0 + 0 + 0 + + + 2273 + 1 + 0 + 0 + 0 + + + 2274 + 1 + 0 + 0 + 0 + + + 2275 + 1 + 0 + 0 + 0 + + + 2276 + 1 + 0 + 0 + 0 + + + 2277 + 2 + 0 + 0 + 0 + + + 2278 + 2 + 0 + 0 + 0 + + + 2279 + 1 + 0 + 0 + 0 + + + 2280 + 1 + 0 + 0 + 0 + + + 2281 + 2 + 0 + 0 + 0 + + + 2282 + 2 + 0 + 0 + 0 + + + 2283 + 4 + 0 + 0 + 0 + + + 2284 + 4 + 0 + 0 + 0 + + + 2285 + 10 + 0 + 0 + 0 + + + 2286 + 10 + 0 + 0 + 0 + + + 2287 + 25 + 0 + 0 + 0 + + + 2288 + 25 + 0 + 0 + 0 + + + 2289 + 200 + 0 + 0 + 0 + + + 2290 + 200 + 0 + 0 + 0 + + + 2291 + 20 + 0 + 0 + 0 + + + 2292 + 20 + 0 + 0 + 0 + + + 2293 + 50 + 0 + 0 + 0 + + + 2294 + 50 + 0 + 0 + 0 + + + 2295 + 25 + 0 + 0 + 0 + + + 2296 + 25 + 0 + 0 + 0 + + + 2297 + 60 + 0 + 0 + 0 + + + 2298 + 60 + 0 + 0 + 0 + + + 2299 + 30 + 0 + 0 + 0 + + + 2300 + 30 + 0 + 0 + 0 + + + 2301 + 100 + 0 + 0 + 0 + + + 2302 + 100 + 0 + 0 + 0 + + + 2303 + 50 + 0 + 0 + 0 + + + 2304 + 50 + 0 + 0 + 0 + + + 2305 + 1 + 0 + 0 + 0 + + + 2306 + 1 + 0 + 0 + 0 + + + 2307 + 4 + 0 + 0 + 0 + + + 2308 + 4 + 0 + 0 + 0 + + + 2309 + 12 + 0 + 0 + 0 + + + 2310 + 12 + 0 + 0 + 0 + + + 2311 + 1 + 0 + 0 + 0 + + + 2312 + 1 + 0 + 0 + 0 + + + 2313 + 3 + 0 + 0 + 0 + + + 2314 + 3 + 0 + 0 + 0 + + + 2315 + 4 + 0 + 0 + 0 + + + 2316 + 4 + 0 + 0 + 0 + + + 2317 + 16 + 0 + 0 + 0 + + + 2318 + 16 + 0 + 0 + 0 + + + 2319 + 8 + 0 + 0 + 0 + + + 2320 + 8 + 0 + 0 + 0 + + + 2321 + 6 + 0 + 0 + 0 + + + 2322 + 6 + 0 + 0 + 0 + + + 2323 + 140 + 0 + 0 + 0 + + + 2324 + 140 + 0 + 0 + 0 + + + 2325 + 150 + 0 + 0 + 0 + + + 2326 + 150 + 0 + 0 + 0 + + + 2327 + 160 + 0 + 0 + 0 + + + 2328 + 160 + 0 + 0 + 0 + + + 2329 + 1 + 0 + 0 + 0 + + + 2330 + 1 + 0 + 0 + 0 + + + 2331 + 8 + 0 + 0 + 0 + + + 2332 + 8 + 0 + 0 + 0 + + + 2333 + 6 + 0 + 0 + 0 + + + 2334 + 6 + 0 + 0 + 0 + + + 2335 + 15 + 0 + 0 + 0 + + + 2336 + 15 + 0 + 0 + 0 + + + 2337 + 10 + 0 + 0 + 0 + + + 2338 + 10 + 0 + 0 + 0 + + + 2339 + 5 + 0 + 0 + 0 + + + 2340 + 5 + 0 + 0 + 0 + + + 2341 + 16 + 0 + 0 + 0 + + + 2342 + 16 + 0 + 0 + 0 + + + 2343 + 35 + 0 + 0 + 0 + + + 2344 + 35 + 0 + 0 + 0 + + + 2345 + 1 + 0 + 0 + 0 + + + 2346 + 1 + 0 + 0 + 0 + + + 2347 + 1 + 0 + 0 + 0 + + + 2348 + 1 + 0 + 0 + 0 + + + 2349 + 8 + 0 + 0 + 0 + + + 2350 + 8 + 0 + 0 + 0 + + + 2351 + 28 + 0 + 0 + 0 + + + 2352 + 28 + 0 + 0 + 0 + + + 2353 + 100 + 0 + 0 + 0 + + + 2354 + 100 + 0 + 0 + 0 + + + 2355 + 150 + 0 + 0 + 0 + + + 2356 + 150 + 0 + 0 + 0 + + + 2357 + 300 + 0 + 0 + 0 + + + 2358 + 300 + 0 + 0 + 0 + + + 2359 + 300 + 0 + 0 + 0 + + + 2360 + 300 + 0 + 0 + 0 + + + 2361 + 640 + 0 + 0 + 0 + + + 2362 + 640 + 0 + 0 + 0 + + + 2363 + 5000 + 0 + 0 + 0 + + + 2364 + 5000 + 0 + 0 + 0 + + + 2365 + 300 + 0 + 0 + 0 + + + 2366 + 110000 + 0 + 0 + 0 + + + 2367 + 110000 + 0 + 0 + 0 + + + 2368 + 750000 + 0 + 0 + 0 + + + 2369 + 750000 + 0 + 0 + 0 + + + 2370 + 150 + 0 + 0 + 0 + + + 2371 + 150 + 0 + 0 + 0 + + + 2372 + 1 + 0 + 0 + 0 + + + 2373 + 1 + 0 + 0 + 0 + + + 2374 + 1 + 0 + 0 + 0 + + + 2375 + 1 + 0 + 0 + 0 + + + 2376 + 1 + 0 + 0 + 0 + + + 2377 + 1 + 0 + 0 + 0 + + + 2378 + 1 + 0 + 0 + 0 + + + 2379 + 1 + 0 + 0 + 0 + + + 2380 + 1 + 0 + 0 + 0 + + + 2381 + 1 + 0 + 0 + 0 + + + 2382 + 1 + 0 + 0 + 0 + + + 2383 + 1 + 0 + 0 + 0 + + + 2384 + 1 + 0 + 0 + 0 + + + 2385 + 1 + 0 + 0 + 0 + + + 2386 + 1 + 0 + 0 + 0 + + + 2387 + 1 + 0 + 0 + 0 + + + 2388 + 1 + 0 + 0 + 0 + + + 2389 + 1 + 0 + 0 + 0 + + + 2390 + 1 + 0 + 0 + 0 + + + 2391 + 20 + 0 + 0 + 0 + + + 2392 + 20 + 0 + 0 + 0 + + + 2393 + 300 + 0 + 0 + 0 + + + 2394 + 120 + 0 + 0 + 0 + + + 2395 + 120 + 0 + 0 + 0 + + + 2396 + 5 + 0 + 0 + 0 + + + 2397 + 40 + 0 + 0 + 0 + + + 2398 + 30 + 0 + 0 + 0 + + + 2399 + 100 + 0 + 0 + 0 + + + 2400 + 100 + 0 + 0 + 0 + + + 2401 + 100 + 0 + 0 + 0 + + + 2402 + 50 + 0 + 0 + 0 + + + 2403 + 1 + 0 + 0 + 0 + + + 2404 + 1 + 0 + 0 + 0 + + + 2405 + 65 + 0 + 0 + 0 + + + 2406 + 1 + 0 + 0 + 0 + + + 2407 + 1 + 0 + 0 + 0 + + + 2408 + 1 + 0 + 0 + 0 + + + 2409 + 1 + 0 + 0 + 0 + + + 2410 + 3 + 0 + 0 + 0 + + + 2411 + 1 + 0 + 0 + 0 + + + 2412 + 100 + 0 + 0 + 0 + + + 2413 + 100 + 0 + 0 + 0 + + + 2414 + 100 + 0 + 0 + 0 + + + 2415 + 80000 + 0 + 0 + 0 + + + 2416 + 80000 + 0 + 0 + 0 + + + 2417 + 80000 + 0 + 0 + 0 + + + 2418 + 1 + 0 + 0 + 0 + + + 2419 + 1 + 0 + 0 + 0 + + + 2420 + 1 + 0 + 0 + 0 + + + 2421 + 1 + 0 + 0 + 0 + + + 2422 + 1 + 0 + 0 + 0 + + + 2423 + 1 + 0 + 0 + 0 + + + 2424 + 5 + 0 + 0 + 0 + + + 2425 + 1 + 0 + 0 + 0 + + + 2426 + 1 + 0 + 0 + 0 + + + 2427 + 1 + 0 + 0 + 0 + + + 2428 + 700 + 0 + 0 + 0 + + + 2429 + 700 + 0 + 0 + 0 + + + 2430 + 110 + 0 + 0 + 0 + + + 2431 + 110 + 0 + 0 + 0 + + + 2432 + 1100 + 0 + 0 + 0 + + + 2433 + 1100 + 0 + 0 + 0 + + + 2434 + 190 + 0 + 0 + 0 + + + 2435 + 190 + 0 + 0 + 0 + + + 2436 + 225 + 0 + 0 + 0 + + + 2437 + 225 + 0 + 0 + 0 + + + 2438 + 250 + 0 + 0 + 0 + + + 2439 + 250 + 0 + 0 + 0 + + + 2440 + 275 + 0 + 0 + 0 + + + 2441 + 275 + 0 + 0 + 0 + + + 2442 + 330 + 0 + 0 + 0 + + + 2443 + 330 + 0 + 0 + 0 + + + 2444 + 360 + 0 + 0 + 0 + + + 2445 + 360 + 0 + 0 + 0 + + + 2446 + 360 + 0 + 0 + 0 + + + 2447 + 360 + 0 + 0 + 0 + + + 2448 + 360 + 0 + 0 + 0 + + + 2449 + 360 + 0 + 0 + 0 + + + 2450 + 200 + 0 + 0 + 0 + + + 2451 + 200 + 0 + 0 + 0 + + + 2452 + 330 + 0 + 0 + 0 + + + 2453 + 330 + 0 + 0 + 0 + + + 2454 + 264 + 0 + 0 + 0 + + + 2455 + 264 + 0 + 0 + 0 + + + 2456 + 198 + 0 + 0 + 0 + + + 2457 + 198 + 0 + 0 + 0 + + + 2458 + 132 + 0 + 0 + 0 + + + 2459 + 132 + 0 + 0 + 0 + + + 2460 + 100 + 0 + 0 + 0 + + + 2461 + 100 + 0 + 0 + 0 + + + 2462 + 100 + 0 + 0 + 0 + + + 2463 + 100 + 0 + 0 + 0 + + + 2464 + 100 + 0 + 0 + 0 + + + 2465 + 100 + 0 + 0 + 0 + + + 2466 + 100 + 0 + 0 + 0 + + + 2467 + 100 + 0 + 0 + 0 + + + 2468 + 100 + 0 + 0 + 0 + + + 2469 + 100 + 0 + 0 + 0 + + + 2470 + 100 + 0 + 0 + 0 + + + 2471 + 100 + 0 + 0 + 0 + + + 2472 + 100 + 0 + 0 + 0 + + + 2473 + 100 + 0 + 0 + 0 + + + 2474 + 100 + 0 + 0 + 0 + + + 2475 + 100 + 0 + 0 + 0 + + + 2476 + 100 + 0 + 0 + 0 + + + 2477 + 100 + 0 + 0 + 0 + + + 2478 + 1 + 0 + 0 + 0 + + + 2479 + 1 + 0 + 0 + 0 + + + 2480 + 1 + 0 + 0 + 0 + + + 2481 + 68 + 0 + 0 + 0 + + + 2482 + 68 + 0 + 0 + 0 + + + 2483 + 68 + 0 + 0 + 0 + + + 2484 + 68 + 0 + 0 + 0 + + + 2485 + 1 + 0 + 0 + 0 + + + 2486 + 1 + 0 + 0 + 0 + + + 2487 + 3000 + 0 + 0 + 0 + + + 2488 + 3000 + 0 + 0 + 0 + + + 2489 + 3600 + 0 + 0 + 0 + + + 2490 + 3600 + 0 + 0 + 0 + + + 2491 + 4320 + 0 + 0 + 0 + + + 2492 + 4320 + 0 + 0 + 0 + + + 2493 + 4320 + 0 + 0 + 0 + + + 2494 + 4320 + 0 + 0 + 0 + + + 2495 + 5180 + 0 + 0 + 0 + + + 2496 + 5180 + 0 + 0 + 0 + + + 2497 + 6220 + 0 + 0 + 0 + + + 2498 + 6220 + 0 + 0 + 0 + + + 2499 + 9360 + 0 + 0 + 0 + + + 2500 + 9360 + 0 + 0 + 0 + + + 2501 + 11230 + 0 + 0 + 0 + + + 2502 + 11230 + 0 + 0 + 0 + + + 2503 + 13480 + 0 + 0 + 0 + + + 2504 + 13480 + 0 + 0 + 0 + + + 2505 + 70 + 0 + 0 + 0 + + + 2506 + 70 + 0 + 0 + 0 + + + 2507 + 90 + 0 + 0 + 0 + + + 2508 + 90 + 0 + 0 + 0 + + + 2509 + 110 + 0 + 0 + 0 + + + 2510 + 110 + 0 + 0 + 0 + + + 2511 + 4 + 0 + 0 + 0 + + + 2512 + 1 + 0 + 0 + 0 + + + 2513 + 6 + 0 + 0 + 0 + + + 2514 + 5 + 0 + 0 + 0 + + + 2515 + 5 + 0 + 0 + 0 + + + 2516 + 10 + 0 + 0 + 0 + + + 2517 + 10 + 0 + 0 + 0 + + + 2518 + 1 + 0 + 0 + 0 + + + 2519 + 1 + 0 + 0 + 0 + + + 2520 + 150 + 0 + 0 + 0 + + + 2521 + 150 + 0 + 0 + 0 + + + 2522 + 150 + 0 + 0 + 0 + + + 2523 + 150 + 0 + 0 + 0 + + + 2524 + 150 + 0 + 0 + 0 + + + 2525 + 150 + 0 + 0 + 0 + + + 2526 + 150 + 0 + 0 + 0 + + + 2527 + 150 + 0 + 0 + 0 + + + 2528 + 1 + 0 + 0 + 0 + + + 2529 + 1 + 0 + 0 + 0 + + + 2530 + 1 + 0 + 0 + 0 + + + 2531 + 1 + 0 + 0 + 0 + + + 2532 + 3 + 0 + 0 + 0 + + + 2533 + 10 + 0 + 0 + 0 + + + 2534 + 3 + 0 + 0 + 0 + + + 2535 + 10 + 0 + 0 + 0 + + + 2536 + 3 + 0 + 0 + 0 + + + 2537 + 10 + 0 + 0 + 0 + + + 2538 + 3 + 0 + 0 + 0 + + + 2539 + 10 + 0 + 0 + 0 + + + 2540 + 3 + 0 + 0 + 0 + + + 2541 + 10 + 0 + 0 + 0 + + + 2542 + 1 + 0 + 0 + 0 + + + 2543 + 1 + 0 + 0 + 0 + + + 2544 + 1 + 0 + 0 + 0 + + + 2545 + 1 + 0 + 0 + 0 + + + 2546 + 1 + 0 + 0 + 0 + + + 2547 + 1 + 0 + 0 + 0 + + + 2548 + 1 + 0 + 0 + 0 + + + 2549 + 1 + 0 + 0 + 0 + + + 2550 + 900 + 0 + 0 + 0 + + + 2551 + 900 + 0 + 0 + 0 + + + 2552 + 1275 + 0 + 0 + 0 + + + 2553 + 1275 + 0 + 0 + 0 + + + 2554 + 1275 + 0 + 0 + 0 + + + 2555 + 1275 + 0 + 0 + 0 + + + 2556 + 1275 + 0 + 0 + 0 + + + 2557 + 1275 + 0 + 0 + 0 + + + 2558 + 1275 + 0 + 0 + 0 + + + 2559 + 1275 + 0 + 0 + 0 + + + 2560 + 1275 + 0 + 0 + 0 + + + 2561 + 1275 + 0 + 0 + 0 + + + 2562 + 1275 + 0 + 0 + 0 + + + 2563 + 1275 + 0 + 0 + 0 + + + 2564 + 1275 + 0 + 0 + 0 + + + 2565 + 1275 + 0 + 0 + 0 + + + 2566 + 1275 + 0 + 0 + 0 + + + 2567 + 1275 + 0 + 0 + 0 + + + 2568 + 2025 + 0 + 0 + 0 + + + 2569 + 2025 + 0 + 0 + 0 + + + 2570 + 3525 + 0 + 0 + 0 + + + 2571 + 3525 + 0 + 0 + 0 + + + 2572 + 17625 + 0 + 0 + 0 + + + 2573 + 17625 + 0 + 0 + 0 + + + 2574 + 50 + 0 + 0 + 0 + + + 2575 + 100 + 0 + 0 + 0 + + + 2576 + 2 + 0 + 0 + 0 + + + 2577 + 200 + 0 + 0 + 0 + + + 2578 + 200 + 0 + 0 + 0 + + + 2579 + 200 + 0 + 0 + 0 + + + 2580 + 200 + 0 + 0 + 0 + + + 2581 + 450 + 0 + 0 + 0 + + + 2582 + 450 + 0 + 0 + 0 + + + 2583 + 3840 + 0 + 0 + 0 + + + 2584 + 3840 + 0 + 0 + 0 + + + 2585 + 1920 + 0 + 0 + 0 + + + 2586 + 1920 + 0 + 0 + 0 + + + 2587 + 1056 + 0 + 0 + 0 + + + 2588 + 1056 + 0 + 0 + 0 + + + 2589 + 1632 + 0 + 0 + 0 + + + 2590 + 1632 + 0 + 0 + 0 + + + 2591 + 3840 + 0 + 0 + 0 + + + 2592 + 3840 + 0 + 0 + 0 + + + 2593 + 1920 + 0 + 0 + 0 + + + 2594 + 1920 + 0 + 0 + 0 + + + 2595 + 1056 + 0 + 0 + 0 + + + 2596 + 1056 + 0 + 0 + 0 + + + 2597 + 1632 + 0 + 0 + 0 + + + 2598 + 1632 + 0 + 0 + 0 + + + 2599 + 12800 + 0 + 0 + 0 + + + 2600 + 12800 + 0 + 0 + 0 + + + 2601 + 6400 + 0 + 0 + 0 + + + 2602 + 6400 + 0 + 0 + 0 + + + 2603 + 5440 + 0 + 0 + 0 + + + 2604 + 5440 + 0 + 0 + 0 + + + 2605 + 3520 + 0 + 0 + 0 + + + 2606 + 3520 + 0 + 0 + 0 + + + 2607 + 12800 + 0 + 0 + 0 + + + 2608 + 12800 + 0 + 0 + 0 + + + 2609 + 6400 + 0 + 0 + 0 + + + 2610 + 6400 + 0 + 0 + 0 + + + 2611 + 5440 + 0 + 0 + 0 + + + 2612 + 5440 + 0 + 0 + 0 + + + 2613 + 3520 + 0 + 0 + 0 + + + 2614 + 3520 + 0 + 0 + 0 + + + 2615 + 65000 + 0 + 0 + 0 + + + 2616 + 65000 + 0 + 0 + 0 + + + 2617 + 64000 + 0 + 0 + 0 + + + 2618 + 64000 + 0 + 0 + 0 + + + 2619 + 35200 + 0 + 0 + 0 + + + 2620 + 35200 + 0 + 0 + 0 + + + 2621 + 54400 + 0 + 0 + 0 + + + 2622 + 54400 + 0 + 0 + 0 + + + 2623 + 65000 + 0 + 0 + 0 + + + 2624 + 65000 + 0 + 0 + 0 + + + 2625 + 64000 + 0 + 0 + 0 + + + 2626 + 64000 + 0 + 0 + 0 + + + 2627 + 35200 + 0 + 0 + 0 + + + 2628 + 35200 + 0 + 0 + 0 + + + 2629 + 54400 + 0 + 0 + 0 + + + 2630 + 54400 + 0 + 0 + 0 + + + 2631 + 40 + 0 + 0 + 0 + + + 2632 + 40 + 0 + 0 + 0 + + + 2633 + 80 + 0 + 0 + 0 + + + 2634 + 80 + 0 + 0 + 0 + + + 2635 + 80 + 0 + 0 + 0 + + + 2636 + 80 + 0 + 0 + 0 + + + 2637 + 80 + 0 + 0 + 0 + + + 2638 + 80 + 0 + 0 + 0 + + + 2639 + 200 + 0 + 0 + 0 + + + 2640 + 200 + 0 + 0 + 0 + + + 2641 + 200 + 0 + 0 + 0 + + + 2642 + 200 + 0 + 0 + 0 + + + 2643 + 200 + 0 + 0 + 0 + + + 2644 + 200 + 0 + 0 + 0 + + + 2645 + 40 + 0 + 0 + 0 + + + 2646 + 40 + 0 + 0 + 0 + + + 2647 + 40 + 0 + 0 + 0 + + + 2648 + 40 + 0 + 0 + 0 + + + 2649 + 40 + 0 + 0 + 0 + + + 2650 + 40 + 0 + 0 + 0 + + + 2651 + 180 + 0 + 0 + 0 + + + 2652 + 180 + 0 + 0 + 0 + + + 2653 + 65000 + 0 + 0 + 0 + + + 2654 + 65000 + 0 + 0 + 0 + + + 2655 + 64000 + 0 + 0 + 0 + + + 2656 + 64000 + 0 + 0 + 0 + + + 2657 + 35200 + 0 + 0 + 0 + + + 2658 + 35200 + 0 + 0 + 0 + + + 2659 + 54400 + 0 + 0 + 0 + + + 2660 + 54400 + 0 + 0 + 0 + + + 2661 + 65000 + 0 + 0 + 0 + + + 2662 + 65000 + 0 + 0 + 0 + + + 2663 + 64000 + 0 + 0 + 0 + + + 2664 + 64000 + 0 + 0 + 0 + + + 2665 + 35200 + 0 + 0 + 0 + + + 2666 + 35200 + 0 + 0 + 0 + + + 2667 + 54400 + 0 + 0 + 0 + + + 2668 + 54400 + 0 + 0 + 0 + + + 2669 + 65000 + 0 + 0 + 0 + + + 2670 + 65000 + 0 + 0 + 0 + + + 2671 + 64000 + 0 + 0 + 0 + + + 2672 + 64000 + 0 + 0 + 0 + + + 2673 + 35200 + 0 + 0 + 0 + + + 2674 + 35200 + 0 + 0 + 0 + + + 2675 + 54400 + 0 + 0 + 0 + + + 2676 + 54400 + 0 + 0 + 0 + + + 2677 + 1 + 0 + 0 + 0 + + + 2678 + 1 + 0 + 0 + 0 + + + 2679 + 1 + 0 + 0 + 0 + + + 2680 + 1 + 0 + 0 + 0 + + + 2681 + 1 + 0 + 0 + 0 + + + 2682 + 1 + 0 + 0 + 0 + + + 2683 + 1 + 0 + 0 + 0 + + + 2684 + 1 + 0 + 0 + 0 + + + 2685 + 1 + 0 + 0 + 0 + + + 2686 + 1 + 0 + 0 + 0 + + + 2687 + 1 + 0 + 0 + 0 + + + 2688 + 1 + 0 + 0 + 0 + + + 2689 + 1 + 0 + 0 + 0 + + + 2690 + 1 + 0 + 0 + 0 + + + 2691 + 1 + 0 + 0 + 0 + + + 2692 + 1 + 0 + 0 + 0 + + + 2693 + 1 + 0 + 0 + 0 + + + 2694 + 1 + 0 + 0 + 0 + + + 2695 + 1 + 0 + 0 + 0 + + + 2696 + 1 + 0 + 0 + 0 + + + 2697 + 1 + 0 + 0 + 0 + + + 2698 + 1 + 0 + 0 + 0 + + + 2699 + 1 + 0 + 0 + 0 + + + 2700 + 1 + 0 + 0 + 0 + + + 2701 + 1 + 0 + 0 + 0 + + + 2702 + 1 + 0 + 0 + 0 + + + 2703 + 1 + 0 + 0 + 0 + + + 2704 + 1 + 0 + 0 + 0 + + + 2705 + 1 + 0 + 0 + 0 + + + 2706 + 1 + 0 + 0 + 0 + + + 2707 + 1 + 0 + 0 + 0 + + + 2708 + 1 + 0 + 0 + 0 + + + 2709 + 1 + 0 + 0 + 0 + + + 2710 + 1 + 0 + 0 + 0 + + + 2711 + 1 + 0 + 0 + 0 + + + 2712 + 1 + 0 + 0 + 0 + + + 2713 + 1 + 0 + 0 + 0 + + + 2714 + 50 + 0 + 0 + 0 + + + 2715 + 50 + 0 + 0 + 0 + + + 2716 + 1 + 0 + 0 + 0 + + + 2717 + 50 + 0 + 0 + 0 + + + 2718 + 50 + 0 + 0 + 0 + + + 2719 + 1 + 0 + 0 + 0 + + + 2720 + 50 + 0 + 0 + 0 + + + 2721 + 50 + 0 + 0 + 0 + + + 2722 + 1 + 0 + 0 + 0 + + + 2723 + 1 + 0 + 0 + 0 + + + 2724 + 50 + 0 + 0 + 0 + + + 2725 + 1 + 0 + 0 + 0 + + + 2726 + 50 + 0 + 0 + 0 + + + 2727 + 1 + 0 + 0 + 0 + + + 2728 + 50 + 0 + 0 + 0 + + + 2729 + 1 + 0 + 0 + 0 + + + 2730 + 50 + 0 + 0 + 0 + + + 2731 + 1 + 0 + 0 + 0 + + + 2732 + 50 + 0 + 0 + 0 + + + 2733 + 1 + 0 + 0 + 0 + + + 2734 + 50 + 0 + 0 + 0 + + + 2735 + 1 + 0 + 0 + 0 + + + 2736 + 50 + 0 + 0 + 0 + + + 2737 + 1 + 0 + 0 + 0 + + + 2738 + 50 + 0 + 0 + 0 + + + 2739 + 1 + 0 + 0 + 0 + + + 2740 + 50 + 0 + 0 + 0 + + + 2741 + 1 + 0 + 0 + 0 + + + 2742 + 50 + 0 + 0 + 0 + + + 2743 + 1 + 0 + 0 + 0 + + + 2744 + 50 + 0 + 0 + 0 + + + 2745 + 1 + 0 + 0 + 0 + + + 2746 + 50 + 0 + 0 + 0 + + + 2747 + 1 + 0 + 0 + 0 + + + 2748 + 50 + 0 + 0 + 0 + + + 2749 + 1 + 0 + 0 + 0 + + + 2750 + 1 + 0 + 0 + 0 + + + 2751 + 1 + 0 + 0 + 0 + + + 2752 + 1 + 0 + 0 + 0 + + + 2753 + 1 + 0 + 0 + 0 + + + 2754 + 1 + 0 + 0 + 0 + + + 2755 + 1 + 0 + 0 + 0 + + + 2756 + 1 + 0 + 0 + 0 + + + 2757 + 1 + 0 + 0 + 0 + + + 2758 + 1 + 0 + 0 + 0 + + + 2759 + 1 + 0 + 0 + 0 + + + 2760 + 1 + 0 + 0 + 0 + + + 2761 + 1 + 0 + 0 + 0 + + + 2762 + 1 + 0 + 0 + 0 + + + 2763 + 1 + 0 + 0 + 0 + + + 2764 + 1 + 0 + 0 + 0 + + + 2765 + 1 + 0 + 0 + 0 + + + 2766 + 1 + 0 + 0 + 0 + + + 2767 + 1 + 0 + 0 + 0 + + + 2768 + 1 + 0 + 0 + 0 + + + 2769 + 1 + 0 + 0 + 0 + + + 2770 + 1 + 0 + 0 + 0 + + + 2771 + 1 + 0 + 0 + 0 + + + 2772 + 1 + 0 + 0 + 0 + + + 2773 + 1 + 0 + 0 + 0 + + + 2774 + 1 + 0 + 0 + 0 + + + 2775 + 50 + 0 + 0 + 0 + + + 2776 + 1 + 0 + 0 + 0 + + + 2777 + 50 + 0 + 0 + 0 + + + 2778 + 1 + 0 + 0 + 0 + + + 2779 + 50 + 0 + 0 + 0 + + + 2780 + 1 + 0 + 0 + 0 + + + 2781 + 50 + 0 + 0 + 0 + + + 2782 + 1 + 0 + 0 + 0 + + + 2783 + 1 + 0 + 0 + 0 + + + 2784 + 50 + 0 + 0 + 0 + + + 2785 + 1 + 0 + 0 + 0 + + + 2786 + 1 + 0 + 0 + 0 + + + 2787 + 50 + 0 + 0 + 0 + + + 2788 + 1 + 0 + 0 + 0 + + + 2789 + 50 + 0 + 0 + 0 + + + 2790 + 1 + 0 + 0 + 0 + + + 2791 + 50 + 0 + 0 + 0 + + + 2792 + 1 + 0 + 0 + 0 + + + 2793 + 1 + 0 + 0 + 0 + + + 2794 + 1 + 0 + 0 + 0 + + + 2795 + 100 + 0 + 0 + 0 + + + 2796 + 1 + 0 + 0 + 0 + + + 2797 + 1 + 0 + 0 + 0 + + + 2798 + 100 + 0 + 0 + 0 + + + 2799 + 1 + 0 + 0 + 0 + + + 2800 + 100 + 0 + 0 + 0 + + + 2801 + 1 + 0 + 0 + 0 + + + 2802 + 50 + 0 + 0 + 0 + + + 2803 + 1 + 0 + 0 + 0 + + + 2804 + 50 + 0 + 0 + 0 + + + 2805 + 1 + 0 + 0 + 0 + + + 2806 + 50 + 0 + 0 + 0 + + + 2807 + 1 + 0 + 0 + 0 + + + 2808 + 50 + 0 + 0 + 0 + + + 2809 + 1 + 0 + 0 + 0 + + + 2810 + 50 + 0 + 0 + 0 + + + 2811 + 1 + 0 + 0 + 0 + + + 2812 + 50 + 0 + 0 + 0 + + + 2813 + 1 + 0 + 0 + 0 + + + 2814 + 50 + 0 + 0 + 0 + + + 2815 + 1 + 0 + 0 + 0 + + + 2816 + 50 + 0 + 0 + 0 + + + 2817 + 1 + 0 + 0 + 0 + + + 2818 + 50 + 0 + 0 + 0 + + + 2819 + 1 + 0 + 0 + 0 + + + 2820 + 50 + 0 + 0 + 0 + + + 2821 + 1 + 0 + 0 + 0 + + + 2822 + 50 + 0 + 0 + 0 + + + 2823 + 1 + 0 + 0 + 0 + + + 2824 + 50 + 0 + 0 + 0 + + + 2825 + 1 + 0 + 0 + 0 + + + 2826 + 50 + 0 + 0 + 0 + + + 2827 + 1 + 0 + 0 + 0 + + + 2828 + 50 + 0 + 0 + 0 + + + 2829 + 1 + 0 + 0 + 0 + + + 2830 + 50 + 0 + 0 + 0 + + + 2831 + 1 + 0 + 0 + 0 + + + 2832 + 1 + 0 + 0 + 0 + + + 2833 + 1 + 0 + 0 + 0 + + + 2834 + 1 + 0 + 0 + 0 + + + 2835 + 1 + 0 + 0 + 0 + + + 2836 + 1 + 0 + 0 + 0 + + + 2837 + 1 + 0 + 0 + 0 + + + 2838 + 1 + 0 + 0 + 0 + + + 2839 + 1 + 0 + 0 + 0 + + + 2840 + 1 + 0 + 0 + 0 + + + 2841 + 1 + 0 + 0 + 0 + + + 2842 + 1 + 0 + 0 + 0 + + + 2843 + 1 + 0 + 0 + 0 + + + 2844 + 1 + 0 + 0 + 0 + + + 2845 + 1 + 0 + 0 + 0 + + + 2846 + 1 + 0 + 0 + 0 + + + 2847 + 1 + 0 + 0 + 0 + + + 2848 + 1 + 0 + 0 + 0 + + + 2849 + 1 + 0 + 0 + 0 + + + 2850 + 1 + 0 + 0 + 0 + + + 2851 + 1 + 0 + 0 + 0 + + + 2852 + 1 + 0 + 0 + 0 + + + 2853 + 1 + 0 + 0 + 0 + + + 2854 + 1 + 0 + 0 + 0 + + + 2855 + 1 + 0 + 0 + 0 + + + 2856 + 1 + 0 + 0 + 0 + + + 2857 + 1 + 0 + 0 + 0 + + + 2858 + 1 + 0 + 0 + 0 + + + 2859 + 1 + 0 + 0 + 0 + + + 2860 + 1 + 0 + 0 + 0 + + + 2861 + 3 + 0 + 0 + 0 + + + 2862 + 4 + 0 + 0 + 0 + + + 2863 + 4 + 0 + 0 + 0 + + + 2864 + 1 + 0 + 0 + 0 + + + 2865 + 1 + 0 + 0 + 0 + + + 2866 + 25 + 0 + 0 + 0 + + + 2867 + 1 + 0 + 0 + 0 + + + 2868 + 1 + 0 + 0 + 0 + + + 2869 + 1 + 0 + 0 + 0 + + + 2870 + 1 + 0 + 0 + 0 + + + 2871 + 1 + 0 + 0 + 0 + + + 2872 + 1 + 0 + 0 + 0 + + + 2873 + 1 + 0 + 0 + 0 + + + 2874 + 1 + 0 + 0 + 0 + + + 2875 + 1 + 0 + 0 + 0 + + + 2876 + 85 + 0 + 0 + 0 + + + 2877 + 85 + 0 + 0 + 0 + + + 2878 + 130 + 0 + 0 + 0 + + + 2879 + 130 + 0 + 0 + 0 + + + 2880 + 1 + 0 + 0 + 0 + + + 2881 + 1 + 0 + 0 + 0 + + + 2882 + 10 + 0 + 0 + 0 + + + 2883 + 500 + 0 + 0 + 0 + + + 2884 + 1 + 0 + 0 + 0 + + + 2885 + 1 + 0 + 0 + 0 + + + 2886 + 10 + 0 + 0 + 0 + + + 2887 + 1 + 0 + 0 + 0 + + + 2888 + 1 + 0 + 0 + 0 + + + 2889 + 1 + 0 + 0 + 0 + + + 2890 + 20 + 0 + 0 + 0 + + + 2891 + 20 + 0 + 0 + 0 + + + 2892 + 5 + 0 + 0 + 0 + + + 2893 + 8 + 0 + 0 + 0 + + + 2894 + 650 + 0 + 0 + 0 + + + 2895 + 650 + 0 + 0 + 0 + + + 2896 + 650 + 0 + 0 + 0 + + + 2897 + 650 + 0 + 0 + 0 + + + 2898 + 650 + 0 + 0 + 0 + + + 2899 + 650 + 0 + 0 + 0 + + + 2900 + 650 + 0 + 0 + 0 + + + 2901 + 650 + 0 + 0 + 0 + + + 2902 + 650 + 0 + 0 + 0 + + + 2903 + 650 + 0 + 0 + 0 + + + 2904 + 650 + 0 + 0 + 0 + + + 2905 + 650 + 0 + 0 + 0 + + + 2906 + 650 + 0 + 0 + 0 + + + 2907 + 650 + 0 + 0 + 0 + + + 2908 + 650 + 0 + 0 + 0 + + + 2909 + 650 + 0 + 0 + 0 + + + 2910 + 650 + 0 + 0 + 0 + + + 2911 + 650 + 0 + 0 + 0 + + + 2912 + 650 + 0 + 0 + 0 + + + 2913 + 650 + 0 + 0 + 0 + + + 2914 + 650 + 0 + 0 + 0 + + + 2915 + 650 + 0 + 0 + 0 + + + 2916 + 650 + 0 + 0 + 0 + + + 2917 + 650 + 0 + 0 + 0 + + + 2918 + 650 + 0 + 0 + 0 + + + 2919 + 650 + 0 + 0 + 0 + + + 2920 + 650 + 0 + 0 + 0 + + + 2921 + 650 + 0 + 0 + 0 + + + 2922 + 650 + 0 + 0 + 0 + + + 2923 + 650 + 0 + 0 + 0 + + + 2924 + 650 + 0 + 0 + 0 + + + 2925 + 650 + 0 + 0 + 0 + + + 2926 + 650 + 0 + 0 + 0 + + + 2927 + 650 + 0 + 0 + 0 + + + 2928 + 650 + 0 + 0 + 0 + + + 2929 + 650 + 0 + 0 + 0 + + + 2930 + 650 + 0 + 0 + 0 + + + 2931 + 650 + 0 + 0 + 0 + + + 2932 + 650 + 0 + 0 + 0 + + + 2933 + 650 + 0 + 0 + 0 + + + 2934 + 650 + 0 + 0 + 0 + + + 2935 + 650 + 0 + 0 + 0 + + + 2936 + 650 + 0 + 0 + 0 + + + 2937 + 650 + 0 + 0 + 0 + + + 2938 + 650 + 0 + 0 + 0 + + + 2939 + 650 + 0 + 0 + 0 + + + 2940 + 650 + 0 + 0 + 0 + + + 2941 + 650 + 0 + 0 + 0 + + + 2942 + 650 + 0 + 0 + 0 + + + 2943 + 650 + 0 + 0 + 0 + + + 2944 + 300 + 0 + 0 + 0 + + + 2945 + 2 + 0 + 0 + 0 + + + 2946 + 300 + 0 + 0 + 0 + + + 2947 + 300 + 0 + 0 + 0 + + + 2948 + 300 + 0 + 0 + 0 + + + 2949 + 300 + 0 + 0 + 0 + + + 2950 + 300 + 0 + 0 + 0 + + + 2951 + 300 + 0 + 0 + 0 + + + 2952 + 300 + 0 + 0 + 0 + + + 2953 + 6 + 0 + 0 + 0 + + + 2954 + 6 + 0 + 0 + 0 + + + 2955 + 5 + 0 + 0 + 0 + + + 2956 + 5 + 0 + 0 + 0 + + + 2957 + 5 + 0 + 0 + 0 + + + 2958 + 5 + 0 + 0 + 0 + + + 2959 + 1 + 0 + 0 + 0 + + + 2960 + 1 + 0 + 0 + 0 + + + 2961 + 175 + 0 + 0 + 0 + + + 2962 + 175 + 0 + 0 + 0 + + + 2963 + 250 + 0 + 0 + 0 + + + 2964 + 4 + 0 + 0 + 0 + + + 2965 + 1 + 0 + 0 + 0 + + + 2966 + 1 + 0 + 0 + 0 + + + 2967 + 1 + 0 + 0 + 0 + + + 2968 + 1 + 0 + 0 + 0 + + + 2969 + 1 + 0 + 0 + 0 + + + 2970 + 1 + 0 + 0 + 0 + + + 2971 + 1 + 0 + 0 + 0 + + + 2972 + 1 + 0 + 0 + 0 + + + 2973 + 1 + 0 + 0 + 0 + + + 2974 + 1 + 0 + 0 + 0 + + + 2975 + 1 + 0 + 0 + 0 + + + 2976 + 10 + 0 + 0 + 0 + + + 2977 + 10 + 0 + 0 + 0 + + + 2978 + 1 + 0 + 0 + 0 + + + 2979 + 1 + 0 + 0 + 0 + + + 2980 + 1 + 0 + 0 + 0 + + + 2981 + 1 + 0 + 0 + 0 + + + 2982 + 1 + 0 + 0 + 0 + + + 2983 + 1 + 0 + 0 + 0 + + + 2984 + 1 + 0 + 0 + 0 + + + 2985 + 1 + 0 + 0 + 0 + + + 2986 + 1 + 0 + 0 + 0 + + + 2987 + 1 + 0 + 0 + 0 + + + 2988 + 1 + 0 + 0 + 0 + + + 2989 + 1 + 0 + 0 + 0 + + + 2990 + 1 + 0 + 0 + 0 + + + 2991 + 1 + 0 + 0 + 0 + + + 2992 + 1 + 0 + 0 + 0 + + + 2993 + 1 + 0 + 0 + 0 + + + 2994 + 1 + 0 + 0 + 0 + + + 2995 + 1 + 0 + 0 + 0 + + + 2996 + 1 + 0 + 0 + 0 + + + 2997 + 89 + 0 + 0 + 0 + + + 2998 + 48 + 0 + 0 + 0 + + + 2999 + 48 + 0 + 0 + 0 + + + 3000 + 59 + 0 + 0 + 0 + + + 3001 + 59 + 0 + 0 + 0 + + + 3002 + 48 + 0 + 0 + 0 + + + 3003 + 48 + 0 + 0 + 0 + + + 3004 + 59 + 0 + 0 + 0 + + + 3005 + 59 + 0 + 0 + 0 + + + 3006 + 60 + 0 + 0 + 0 + + + 3007 + 60 + 0 + 0 + 0 + + + 3008 + 146 + 0 + 0 + 0 + + + 3009 + 146 + 0 + 0 + 0 + + + 3010 + 110 + 0 + 0 + 0 + + + 3011 + 110 + 0 + 0 + 0 + + + 3012 + 72 + 0 + 0 + 0 + + + 3013 + 72 + 0 + 0 + 0 + + + 3014 + 36 + 0 + 0 + 0 + + + 3015 + 36 + 0 + 0 + 0 + + + 3016 + 300 + 0 + 0 + 0 + + + 3017 + 300 + 0 + 0 + 0 + + + 3018 + 230 + 0 + 0 + 0 + + + 3019 + 230 + 0 + 0 + 0 + + + 3020 + 160 + 0 + 0 + 0 + + + 3021 + 160 + 0 + 0 + 0 + + + 3022 + 90 + 0 + 0 + 0 + + + 3023 + 90 + 0 + 0 + 0 + + + 3024 + 300 + 0 + 0 + 0 + + + 3025 + 300 + 0 + 0 + 0 + + + 3026 + 240 + 0 + 0 + 0 + + + 3027 + 240 + 0 + 0 + 0 + + + 3028 + 180 + 0 + 0 + 0 + + + 3029 + 180 + 0 + 0 + 0 + + + 3030 + 120 + 0 + 0 + 0 + + + 3031 + 120 + 0 + 0 + 0 + + + 3032 + 200 + 0 + 0 + 0 + + + 3033 + 200 + 0 + 0 + 0 + + + 3034 + 150 + 0 + 0 + 0 + + + 3035 + 150 + 0 + 0 + 0 + + + 3036 + 100 + 0 + 0 + 0 + + + 3037 + 100 + 0 + 0 + 0 + + + 3038 + 50 + 0 + 0 + 0 + + + 3039 + 50 + 0 + 0 + 0 + + + 3040 + 300 + 0 + 0 + 0 + + + 3041 + 300 + 0 + 0 + 0 + + + 3042 + 250 + 0 + 0 + 0 + + + 3043 + 250 + 0 + 0 + 0 + + + 3044 + 200 + 0 + 0 + 0 + + + 3045 + 200 + 0 + 0 + 0 + + + 3046 + 150 + 0 + 0 + 0 + + + 3047 + 150 + 0 + 0 + 0 + + + 3048 + 89 + 0 + 0 + 0 + + + 3049 + 1 + 0 + 0 + 0 + + + 3050 + 1 + 0 + 0 + 0 + + + 3051 + 1 + 0 + 0 + 0 + + + 3052 + 1 + 0 + 0 + 0 + + + 3053 + 17000 + 0 + 0 + 0 + + + 3054 + 45000 + 0 + 0 + 0 + + + 3055 + 17000 + 0 + 0 + 0 + + + 3056 + 45000 + 0 + 0 + 0 + + + 3057 + 1 + 0 + 0 + 0 + + + 3058 + 1 + 0 + 0 + 0 + + + 3059 + 1 + 0 + 0 + 0 + + + 3060 + 1 + 0 + 0 + 0 + + + 3061 + 1 + 0 + 0 + 0 + + + 3062 + 1 + 0 + 0 + 0 + + + 3063 + 1 + 0 + 0 + 0 + + + 3064 + 1 + 0 + 0 + 0 + + + 3065 + 1 + 0 + 0 + 0 + + + 3066 + 1 + 0 + 0 + 0 + + + 3067 + 1 + 0 + 0 + 0 + + + 3068 + 1 + 0 + 0 + 0 + + + 3069 + 1 + 0 + 0 + 0 + + + 3070 + 1 + 0 + 0 + 0 + + + 3071 + 1 + 0 + 0 + 0 + + + 3072 + 1 + 0 + 0 + 0 + + + 3073 + 1 + 0 + 0 + 0 + + + 3074 + 1 + 0 + 0 + 0 + + + 3075 + 1 + 0 + 0 + 0 + + + 3076 + 1 + 0 + 0 + 0 + + + 3077 + 1 + 0 + 0 + 0 + + + 3078 + 1 + 0 + 0 + 0 + + + 3079 + 1 + 0 + 0 + 0 + + + 3080 + 1 + 0 + 0 + 0 + + + 3081 + 1 + 0 + 0 + 0 + + + 3082 + 1 + 0 + 0 + 0 + + + 3083 + 1 + 0 + 0 + 0 + + + 3084 + 1 + 0 + 0 + 0 + + + 3085 + 1 + 0 + 0 + 0 + + + 3086 + 1 + 0 + 0 + 0 + + + 3087 + 1 + 0 + 0 + 0 + + + 3088 + 1 + 0 + 0 + 0 + + + 3089 + 1 + 0 + 0 + 0 + + + 3090 + 1 + 0 + 0 + 0 + + + 3091 + 1 + 0 + 0 + 0 + + + 3092 + 1 + 0 + 0 + 0 + + + 3093 + 1 + 0 + 0 + 0 + + + 3094 + 18 + 0 + 0 + 0 + + + 3095 + 15 + 0 + 0 + 0 + + + 3096 + 50 + 0 + 0 + 0 + + + 3097 + 175 + 0 + 0 + 0 + + + 3098 + 360 + 0 + 0 + 0 + + + 3099 + 475 + 0 + 0 + 0 + + + 3100 + 1200 + 0 + 0 + 0 + + + 3101 + 12000 + 0 + 0 + 0 + + + 3102 + 1 + 0 + 0 + 0 + + + 3103 + 1 + 0 + 0 + 0 + + + 3104 + 1 + 0 + 0 + 0 + + + 3105 + 12 + 0 + 0 + 0 + + + 3106 + 12 + 0 + 0 + 0 + + + 3107 + 30 + 0 + 0 + 0 + + + 3108 + 1 + 0 + 0 + 0 + + + 3109 + 1 + 0 + 0 + 0 + + + 3110 + 1 + 0 + 0 + 0 + + + 3111 + 1 + 0 + 0 + 0 + + + 3112 + 1 + 0 + 0 + 0 + + + 3113 + 1 + 0 + 0 + 0 + + + 3114 + 1 + 0 + 0 + 0 + + + 3115 + 15 + 0 + 0 + 0 + + + 3116 + 50 + 0 + 0 + 0 + + + 3117 + 175 + 0 + 0 + 0 + + + 3118 + 360 + 0 + 0 + 0 + + + 3119 + 475 + 0 + 0 + 0 + + + 3120 + 1200 + 0 + 0 + 0 + + + 3121 + 12000 + 0 + 0 + 0 + + + 3122 + 56000 + 0 + 0 + 0 + + + 3123 + 1 + 0 + 0 + 0 + + + 3124 + 1 + 0 + 0 + 0 + + + 3125 + 1 + 0 + 0 + 0 + + + 3126 + 1 + 0 + 0 + 0 + + + 3127 + 1 + 0 + 0 + 0 + + + 3128 + 1 + 0 + 0 + 0 + + + 3129 + 1 + 0 + 0 + 0 + + + 3130 + 1 + 0 + 0 + 0 + + + 3131 + 1 + 0 + 0 + 0 + + + 3132 + 1 + 0 + 0 + 0 + + + 3133 + 1 + 0 + 0 + 0 + + + 3134 + 56000 + 0 + 0 + 0 + + + 3135 + 1 + 0 + 0 + 0 + + + 3136 + 1 + 0 + 0 + 0 + + + 3137 + 1 + 0 + 0 + 0 + + + 3138 + 1 + 0 + 0 + 0 + + + 3139 + 1 + 0 + 0 + 0 + + + 3140 + 250000 + 0 + 0 + 0 + + + 3141 + 250000 + 0 + 0 + 0 + + + 3142 + 440 + 0 + 0 + 0 + + + 3143 + 440 + 0 + 0 + 0 + + + 3144 + 460 + 0 + 0 + 0 + + + 3145 + 460 + 0 + 0 + 0 + + + 3146 + 250 + 0 + 0 + 0 + + + 3147 + 250 + 0 + 0 + 0 + + + 3148 + 1 + 0 + 0 + 0 + + + 3149 + 1 + 0 + 0 + 0 + + + 3150 + 10 + 0 + 0 + 0 + + + 3151 + 10 + 0 + 0 + 0 + + + 3152 + 15 + 0 + 0 + 0 + + + 3153 + 15 + 0 + 0 + 0 + + + 3154 + 15 + 0 + 0 + 0 + + + 3155 + 15 + 0 + 0 + 0 + + + 3156 + 15 + 0 + 0 + 0 + + + 3157 + 5 + 0 + 0 + 0 + + + 3158 + 5 + 0 + 0 + 0 + + + 3159 + 40 + 0 + 0 + 0 + + + 3160 + 40 + 0 + 0 + 0 + + + 3161 + 5 + 0 + 0 + 0 + + + 3162 + 2 + 0 + 0 + 0 + + + 3163 + 2 + 0 + 0 + 0 + + + 3164 + 30 + 0 + 0 + 0 + + + 3165 + 30 + 0 + 0 + 0 + + + 3166 + 1 + 0 + 0 + 0 + + + 3167 + 10 + 0 + 0 + 0 + + + 3168 + 1 + 0 + 0 + 0 + + + 3169 + 1 + 0 + 0 + 0 + + + 3170 + 26 + 0 + 0 + 0 + + + 3171 + 91 + 0 + 0 + 0 + + + 3172 + 325 + 0 + 0 + 0 + + + 3173 + 845 + 0 + 0 + 0 + + + 3174 + 2080 + 0 + 0 + 0 + + + 3175 + 20800 + 0 + 0 + 0 + + + 3176 + 62400 + 0 + 0 + 0 + + + 3177 + 2 + 0 + 0 + 0 + + + 3178 + 2 + 0 + 0 + 0 + + + 3179 + 1 + 0 + 0 + 0 + + + 3180 + 1 + 0 + 0 + 0 + + + 3181 + 1 + 0 + 0 + 0 + + + 3182 + 1 + 0 + 0 + 0 + + + 3183 + 1 + 0 + 0 + 0 + + + 3184 + 1 + 0 + 0 + 0 + + + 3185 + 1 + 0 + 0 + 0 + + + 3186 + 1 + 0 + 0 + 0 + + + 3187 + 1 + 0 + 0 + 0 + + + 3188 + 60 + 0 + 0 + 0 + + + 3189 + 60 + 0 + 0 + 0 + + + 3190 + 104 + 0 + 0 + 0 + + + 3191 + 104 + 0 + 0 + 0 + + + 3192 + 364 + 0 + 0 + 0 + + + 3193 + 364 + 0 + 0 + 0 + + + 3194 + 1300 + 0 + 0 + 0 + + + 3195 + 1300 + 0 + 0 + 0 + + + 3196 + 2496 + 0 + 0 + 0 + + + 3197 + 2496 + 0 + 0 + 0 + + + 3198 + 3380 + 0 + 0 + 0 + + + 3199 + 3380 + 0 + 0 + 0 + + + 3200 + 8320 + 0 + 0 + 0 + + + 3201 + 8320 + 0 + 0 + 0 + + + 3202 + 128000 + 0 + 0 + 0 + + + 3203 + 128000 + 0 + 0 + 0 + + + 3204 + 325000 + 0 + 0 + 0 + + + 3205 + 325000 + 0 + 0 + 0 + + + 3206 + 1 + 0 + 0 + 0 + + + 3207 + 1 + 0 + 0 + 0 + + + 3208 + 10 + 0 + 0 + 0 + + + 3209 + 1 + 0 + 0 + 0 + + + 3210 + 1 + 0 + 0 + 0 + + + 3211 + 10 + 0 + 0 + 0 + + + 3212 + 10 + 0 + 0 + 0 + + + 3213 + 4 + 0 + 0 + 0 + + + 3214 + 5 + 0 + 0 + 0 + + + 3215 + 5 + 0 + 0 + 0 + + + 3216 + 1 + 0 + 0 + 0 + + + 3217 + 1 + 0 + 0 + 0 + + + 3218 + 1 + 0 + 0 + 0 + + + 3219 + 1 + 0 + 0 + 0 + + + 3220 + 1 + 0 + 0 + 0 + + + 3221 + 1 + 0 + 0 + 0 + + + 3222 + 1 + 0 + 0 + 0 + + + 3223 + 1 + 0 + 0 + 0 + + + 3224 + 10 + 0 + 0 + 0 + + + 3225 + 1 + 0 + 0 + 0 + + + 3226 + 20 + 0 + 0 + 0 + + + 3227 + 20 + 0 + 0 + 0 + + + 3228 + 4 + 0 + 0 + 0 + + + 3229 + 4 + 0 + 0 + 0 + + + 3230 + 1 + 0 + 0 + 0 + + + 3231 + 1 + 0 + 0 + 0 + + + 3232 + 1 + 0 + 0 + 0 + + + 3233 + 1 + 0 + 0 + 0 + + + 3234 + 1 + 0 + 0 + 0 + + + 3235 + 1 + 0 + 0 + 0 + + + 3236 + 1 + 0 + 0 + 0 + + + 3237 + 1 + 0 + 0 + 0 + + + 3238 + 1 + 0 + 0 + 0 + + + 3239 + 1 + 0 + 0 + 0 + + + 3240 + 1 + 0 + 0 + 0 + + + 3241 + 1 + 0 + 0 + 0 + + + 3242 + 1 + 0 + 0 + 0 + + + 3243 + 1 + 0 + 0 + 0 + + + 3244 + 1 + 0 + 0 + 0 + + + 3245 + 1 + 0 + 0 + 0 + + + 3246 + 1 + 0 + 0 + 0 + + + 3247 + 1 + 0 + 0 + 0 + + + 3248 + 1 + 0 + 0 + 0 + + + 3249 + 1 + 0 + 0 + 0 + + + 3250 + 1 + 0 + 0 + 0 + + + 3251 + 1 + 0 + 0 + 0 + + + 3252 + 1 + 0 + 0 + 0 + + + 3253 + 1 + 0 + 0 + 0 + + + 3254 + 1 + 0 + 0 + 0 + + + 3255 + 1 + 0 + 0 + 0 + + + 3256 + 1 + 0 + 0 + 0 + + + 3257 + 1 + 0 + 0 + 0 + + + 3258 + 1 + 0 + 0 + 0 + + + 3259 + 1 + 0 + 0 + 0 + + + 3260 + 1 + 0 + 0 + 0 + + + 3261 + 1 + 0 + 0 + 0 + + + 3262 + 1 + 0 + 0 + 0 + + + 3263 + 1 + 0 + 0 + 0 + + + 3264 + 1 + 0 + 0 + 0 + + + 3265 + 1 + 0 + 0 + 0 + + + 3266 + 1 + 0 + 0 + 0 + + + 3267 + 1 + 0 + 0 + 0 + + + 3268 + 1 + 0 + 0 + 0 + + + 3269 + 1 + 0 + 0 + 0 + + + 3270 + 1 + 0 + 0 + 0 + + + 3271 + 1 + 0 + 0 + 0 + + + 3272 + 1 + 0 + 0 + 0 + + + 3273 + 1 + 0 + 0 + 0 + + + 3274 + 1 + 0 + 0 + 0 + + + 3275 + 1 + 0 + 0 + 0 + + + 3276 + 1 + 0 + 0 + 0 + + + 3277 + 1 + 0 + 0 + 0 + + + 3278 + 1 + 0 + 0 + 0 + + + 3279 + 1 + 0 + 0 + 0 + + + 3280 + 1 + 0 + 0 + 0 + + + 3281 + 1 + 0 + 0 + 0 + + + 3282 + 1 + 0 + 0 + 0 + + + 3283 + 1 + 0 + 0 + 0 + + + 3284 + 1 + 0 + 0 + 0 + + + 3285 + 1 + 0 + 0 + 0 + + + 3286 + 1 + 0 + 0 + 0 + + + 3287 + 1 + 0 + 0 + 0 + + + 3288 + 1 + 0 + 0 + 0 + + + 3289 + 1 + 0 + 0 + 0 + + + 3290 + 1 + 0 + 0 + 0 + + + 3291 + 1 + 0 + 0 + 0 + + + 3292 + 1 + 0 + 0 + 0 + + + 3293 + 1 + 0 + 0 + 0 + + + 3294 + 1 + 0 + 0 + 0 + + + 3295 + 1 + 0 + 0 + 0 + + + 3296 + 1 + 0 + 0 + 0 + + + 3297 + 1 + 0 + 0 + 0 + + + 3298 + 1 + 0 + 0 + 0 + + + 3299 + 1 + 0 + 0 + 0 + + + 3300 + 1 + 0 + 0 + 0 + + + 3301 + 1 + 0 + 0 + 0 + + + 3302 + 1 + 0 + 0 + 0 + + + 3303 + 1 + 0 + 0 + 0 + + + 3304 + 1 + 0 + 0 + 0 + + + 3305 + 1 + 0 + 0 + 0 + + + 3306 + 1 + 0 + 0 + 0 + + + 3307 + 1 + 0 + 0 + 0 + + + 3308 + 1 + 0 + 0 + 0 + + + 3309 + 1 + 0 + 0 + 0 + + + 3310 + 1 + 0 + 0 + 0 + + + 3311 + 1 + 0 + 0 + 0 + + + 3312 + 1 + 0 + 0 + 0 + + + 3313 + 1 + 0 + 0 + 0 + + + 3314 + 1 + 0 + 0 + 0 + + + 3315 + 1 + 0 + 0 + 0 + + + 3316 + 1 + 0 + 0 + 0 + + + 3317 + 1 + 0 + 0 + 0 + + + 3318 + 1 + 0 + 0 + 0 + + + 3319 + 1 + 0 + 0 + 0 + + + 3320 + 1 + 0 + 0 + 0 + + + 3321 + 1 + 0 + 0 + 0 + + + 3322 + 1 + 0 + 0 + 0 + + + 3323 + 1 + 0 + 0 + 0 + + + 3324 + 1 + 0 + 0 + 0 + + + 3325 + 2 + 0 + 0 + 0 + + + 3326 + 2 + 0 + 0 + 0 + + + 3327 + 300 + 0 + 0 + 0 + + + 3328 + 300 + 0 + 0 + 0 + + + 3329 + 300 + 0 + 0 + 0 + + + 3330 + 300 + 0 + 0 + 0 + + + 3331 + 300 + 0 + 0 + 0 + + + 3332 + 300 + 0 + 0 + 0 + + + 3333 + 300 + 0 + 0 + 0 + + + 3334 + 300 + 0 + 0 + 0 + + + 3335 + 300 + 0 + 0 + 0 + + + 3336 + 300 + 0 + 0 + 0 + + + 3337 + 300 + 0 + 0 + 0 + + + 3338 + 300 + 0 + 0 + 0 + + + 3339 + 300 + 0 + 0 + 0 + + + 3340 + 300 + 0 + 0 + 0 + + + 3341 + 300 + 0 + 0 + 0 + + + 3342 + 300 + 0 + 0 + 0 + + + 3343 + 300 + 0 + 0 + 0 + + + 3344 + 300 + 0 + 0 + 0 + + + 3345 + 150 + 0 + 0 + 0 + + + 3346 + 150 + 0 + 0 + 0 + + + 3347 + 150 + 0 + 0 + 0 + + + 3348 + 150 + 0 + 0 + 0 + + + 3349 + 150 + 0 + 0 + 0 + + + 3350 + 150 + 0 + 0 + 0 + + + 3351 + 150 + 0 + 0 + 0 + + + 3352 + 150 + 0 + 0 + 0 + + + 3353 + 150 + 0 + 0 + 0 + + + 3354 + 150 + 0 + 0 + 0 + + + 3355 + 150 + 0 + 0 + 0 + + + 3356 + 150 + 0 + 0 + 0 + + + 3357 + 150 + 0 + 0 + 0 + + + 3358 + 150 + 0 + 0 + 0 + + + 3359 + 150 + 0 + 0 + 0 + + + 3360 + 150 + 0 + 0 + 0 + + + 3361 + 150 + 0 + 0 + 0 + + + 3362 + 150 + 0 + 0 + 0 + + + 3363 + 60 + 0 + 0 + 0 + + + 3364 + 60 + 0 + 0 + 0 + + + 3365 + 10 + 0 + 0 + 0 + + + 3366 + 10 + 0 + 0 + 0 + + + 3367 + 15 + 0 + 0 + 0 + + + 3368 + 15 + 0 + 0 + 0 + + + 3369 + 10 + 0 + 0 + 0 + + + 3370 + 10 + 0 + 0 + 0 + + + 3371 + 20 + 0 + 0 + 0 + + + 3372 + 20 + 0 + 0 + 0 + + + 3373 + 30 + 0 + 0 + 0 + + + 3374 + 30 + 0 + 0 + 0 + + + 3375 + 10 + 0 + 0 + 0 + + + 3376 + 10 + 0 + 0 + 0 + + + 3377 + 5 + 0 + 0 + 0 + + + 3378 + 5 + 0 + 0 + 0 + + + 3379 + 1 + 0 + 0 + 0 + + + 3380 + 1 + 0 + 0 + 0 + + + 3381 + 1 + 0 + 0 + 0 + + + 3382 + 1 + 0 + 0 + 0 + + + 3383 + 1 + 0 + 0 + 0 + + + 3384 + 1 + 0 + 0 + 0 + + + 3385 + 10000 + 0 + 0 + 0 + + + 3386 + 10000 + 0 + 0 + 0 + + + 3387 + 45000 + 0 + 0 + 0 + + + 3388 + 45000 + 0 + 0 + 0 + + + 3389 + 40000 + 0 + 0 + 0 + + + 3390 + 40000 + 0 + 0 + 0 + + + 3391 + 5000 + 0 + 0 + 0 + + + 3392 + 5000 + 0 + 0 + 0 + + + 3393 + 5000 + 0 + 0 + 0 + + + 3394 + 5000 + 0 + 0 + 0 + + + 3395 + 1 + 0 + 0 + 0 + + + 3396 + 1 + 0 + 0 + 0 + + + 3397 + 1 + 0 + 0 + 0 + + + 3398 + 1 + 0 + 0 + 0 + + + 3399 + 1 + 0 + 0 + 0 + + + 3400 + 1 + 0 + 0 + 0 + + + 3401 + 1 + 0 + 0 + 0 + + + 3402 + 1 + 0 + 0 + 0 + + + 3403 + 1 + 0 + 0 + 0 + + + 3404 + 1 + 0 + 0 + 0 + + + 3405 + 1 + 0 + 0 + 0 + + + 3406 + 11 + 0 + 0 + 0 + + + 3407 + 11 + 0 + 0 + 0 + + + 3408 + 14 + 0 + 0 + 0 + + + 3409 + 1 + 0 + 0 + 0 + + + 3410 + 13 + 0 + 0 + 0 + + + 3411 + 1 + 0 + 0 + 0 + + + 3412 + 13 + 0 + 0 + 0 + + + 3413 + 1 + 0 + 0 + 0 + + + 3414 + 11 + 0 + 0 + 0 + + + 3415 + 1 + 0 + 0 + 0 + + + 3416 + 14 + 0 + 0 + 0 + + + 3417 + 13 + 0 + 0 + 0 + + + 3418 + 13 + 0 + 0 + 0 + + + 3419 + 11 + 0 + 0 + 0 + + + 3420 + 21 + 0 + 0 + 0 + + + 3421 + 21 + 0 + 0 + 0 + + + 3422 + 22 + 0 + 0 + 0 + + + 3423 + 22 + 0 + 0 + 0 + + + 3424 + 26 + 0 + 0 + 0 + + + 3425 + 26 + 0 + 0 + 0 + + + 3426 + 17 + 0 + 0 + 0 + + + 3427 + 17 + 0 + 0 + 0 + + + 3428 + 14 + 0 + 0 + 0 + + + 3429 + 14 + 0 + 0 + 0 + + + 3430 + 100 + 0 + 0 + 0 + + + 3431 + 100 + 0 + 0 + 0 + + + 3432 + 90 + 0 + 0 + 0 + + + 3433 + 90 + 0 + 0 + 0 + + + 3434 + 75 + 0 + 0 + 0 + + + 3435 + 75 + 0 + 0 + 0 + + + 3436 + 60 + 0 + 0 + 0 + + + 3437 + 60 + 0 + 0 + 0 + + + 3438 + 8 + 0 + 0 + 0 + + + 3439 + 8 + 0 + 0 + 0 + + + 3440 + 40 + 0 + 0 + 0 + + + 3441 + 40 + 0 + 0 + 0 + + + 3442 + 80 + 0 + 0 + 0 + + + 3443 + 80 + 0 + 0 + 0 + + + 3444 + 160 + 0 + 0 + 0 + + + 3445 + 160 + 0 + 0 + 0 + + + 3446 + 320 + 0 + 0 + 0 + + + 3447 + 320 + 0 + 0 + 0 + + + 3448 + 640 + 0 + 0 + 0 + + + 3449 + 640 + 0 + 0 + 0 + + + 3450 + 81 + 0 + 0 + 0 + + + 3451 + 82 + 0 + 0 + 0 + + + 3452 + 83 + 0 + 0 + 0 + + + 3453 + 84 + 0 + 0 + 0 + + + 3454 + 85 + 0 + 0 + 0 + + + 3455 + 86 + 0 + 0 + 0 + + + 3456 + 87 + 0 + 0 + 0 + + + 3457 + 88 + 0 + 0 + 0 + + + 3458 + 89 + 0 + 0 + 0 + + + 3459 + 90 + 0 + 0 + 0 + + + 3460 + 91 + 0 + 0 + 0 + + + 3461 + 92 + 0 + 0 + 0 + + + 3462 + 93 + 0 + 0 + 0 + + + 3463 + 94 + 0 + 0 + 0 + + + 3464 + 95 + 0 + 0 + 0 + + + 3465 + 96 + 0 + 0 + 0 + + + 3466 + 97 + 0 + 0 + 0 + + + 3467 + 98 + 0 + 0 + 0 + + + 3468 + 99 + 0 + 0 + 0 + + + 3469 + 100 + 0 + 0 + 0 + + + 3470 + 500 + 0 + 0 + 0 + + + 3471 + 500 + 0 + 0 + 0 + + + 3472 + 1920 + 0 + 0 + 0 + + + 3473 + 1920 + 0 + 0 + 0 + + + 3474 + 6400 + 0 + 0 + 0 + + + 3475 + 6400 + 0 + 0 + 0 + + + 3476 + 64000 + 0 + 0 + 0 + + + 3477 + 64000 + 0 + 0 + 0 + + + 3478 + 64000 + 0 + 0 + 0 + + + 3479 + 64000 + 0 + 0 + 0 + + + 3480 + 64000 + 0 + 0 + 0 + + + 3481 + 65000 + 0 + 0 + 0 + + + 3482 + 65000 + 0 + 0 + 0 + + + 3483 + 64000 + 0 + 0 + 0 + + + 3484 + 64000 + 0 + 0 + 0 + + + 3485 + 64000 + 0 + 0 + 0 + + + 3486 + 35200 + 0 + 0 + 0 + + + 3487 + 35200 + 0 + 0 + 0 + + + 3488 + 54400 + 0 + 0 + 0 + + + 3489 + 54400 + 0 + 0 + 0 + + + 3490 + 1 + 0 + 0 + 0 + + + 3491 + 1 + 0 + 0 + 0 + + + 3492 + 1 + 0 + 0 + 0 + + + 3493 + 1 + 0 + 0 + 0 + + + 3494 + 1 + 0 + 0 + 0 + + + 3495 + 1 + 0 + 0 + 0 + + + 3496 + 1 + 0 + 0 + 0 + + + 3497 + 1 + 0 + 0 + 0 + + + 3498 + 1 + 0 + 0 + 0 + + + 3499 + 1 + 0 + 0 + 0 + + + 3500 + 1 + 0 + 0 + 0 + + + 3501 + 1 + 0 + 0 + 0 + + + 3502 + 1 + 0 + 0 + 0 + + + 3503 + 1 + 0 + 0 + 0 + + + 3504 + 1 + 0 + 0 + 0 + + + 3505 + 1 + 0 + 0 + 0 + + + 3506 + 1 + 0 + 0 + 0 + + + 3507 + 1 + 0 + 0 + 0 + + + 3508 + 1 + 0 + 0 + 0 + + + 3509 + 1 + 0 + 0 + 0 + + + 3510 + 1 + 0 + 0 + 0 + + + 3511 + 50 + 0 + 0 + 0 + + + 3512 + 1 + 0 + 0 + 0 + + + 3513 + 1 + 0 + 0 + 0 + + + 3514 + 1 + 0 + 0 + 0 + + + 3515 + 1 + 0 + 0 + 0 + + + 3516 + 1 + 0 + 0 + 0 + + + 3517 + 50 + 0 + 0 + 0 + + + 3518 + 1 + 0 + 0 + 0 + + + 3519 + 50 + 0 + 0 + 0 + + + 3520 + 1 + 0 + 0 + 0 + + + 3521 + 50 + 0 + 0 + 0 + + + 3522 + 1 + 0 + 0 + 0 + + + 3523 + 50 + 0 + 0 + 0 + + + 3524 + 1 + 0 + 0 + 0 + + + 3525 + 1 + 0 + 0 + 0 + + + 3526 + 1 + 0 + 0 + 0 + + + 3527 + 50 + 0 + 0 + 0 + + + 3528 + 1 + 0 + 0 + 0 + + + 3529 + 50 + 0 + 0 + 0 + + + 3530 + 1 + 0 + 0 + 0 + + + 3531 + 50 + 0 + 0 + 0 + + + 3532 + 1 + 0 + 0 + 0 + + + 3533 + 50 + 0 + 0 + 0 + + + 3534 + 1 + 0 + 0 + 0 + + + 3535 + 50 + 0 + 0 + 0 + + + 3536 + 1 + 0 + 0 + 0 + + + 3537 + 50 + 0 + 0 + 0 + + + 3538 + 1 + 0 + 0 + 0 + + + 3539 + 50 + 0 + 0 + 0 + + + 3540 + 1 + 0 + 0 + 0 + + + 3541 + 50 + 0 + 0 + 0 + + + 3542 + 1 + 0 + 0 + 0 + + + 3543 + 50 + 0 + 0 + 0 + + + 3544 + 1 + 0 + 0 + 0 + + + 3545 + 50 + 0 + 0 + 0 + + + 3546 + 1 + 0 + 0 + 0 + + + 3547 + 50 + 0 + 0 + 0 + + + 3548 + 1 + 0 + 0 + 0 + + + 3549 + 50 + 0 + 0 + 0 + + + 3550 + 1 + 0 + 0 + 0 + + + 3551 + 50 + 0 + 0 + 0 + + + 3552 + 1 + 0 + 0 + 0 + + + 3553 + 50 + 0 + 0 + 0 + + + 3554 + 1 + 0 + 0 + 0 + + + 3555 + 50 + 0 + 0 + 0 + + + 3556 + 1 + 0 + 0 + 0 + + + 3557 + 50 + 0 + 0 + 0 + + + 3558 + 1 + 0 + 0 + 0 + + + 3559 + 50 + 0 + 0 + 0 + + + 3560 + 1 + 0 + 0 + 0 + + + 3561 + 50 + 0 + 0 + 0 + + + 3562 + 1 + 0 + 0 + 0 + + + 3563 + 50 + 0 + 0 + 0 + + + 3564 + 1 + 0 + 0 + 0 + + + 3565 + 100 + 0 + 0 + 0 + + + 3566 + 1 + 0 + 0 + 0 + + + 3567 + 100 + 0 + 0 + 0 + + + 3568 + 1 + 0 + 0 + 0 + + + 3569 + 100 + 0 + 0 + 0 + + + 3570 + 1 + 0 + 0 + 0 + + + 3571 + 100 + 0 + 0 + 0 + + + 3572 + 1 + 0 + 0 + 0 + + + 3573 + 1 + 0 + 0 + 0 + + + 3574 + 1 + 0 + 0 + 0 + + + 3575 + 1 + 0 + 0 + 0 + + + 3576 + 100 + 0 + 0 + 0 + + + 3577 + 1 + 0 + 0 + 0 + + + 3578 + 100 + 0 + 0 + 0 + + + 3579 + 1 + 0 + 0 + 0 + + + 3580 + 1 + 0 + 0 + 0 + + + 3581 + 50 + 0 + 0 + 0 + + + 3582 + 1 + 0 + 0 + 0 + + + 3583 + 50 + 0 + 0 + 0 + + + 3584 + 1 + 0 + 0 + 0 + + + 3585 + 50 + 0 + 0 + 0 + + + 3586 + 1 + 0 + 0 + 0 + + + 3587 + 50 + 0 + 0 + 0 + + + 3588 + 1 + 0 + 0 + 0 + + + 3589 + 50 + 0 + 0 + 0 + + + 3590 + 1 + 0 + 0 + 0 + + + 3591 + 50 + 0 + 0 + 0 + + + 3592 + 1 + 0 + 0 + 0 + + + 3593 + 50 + 0 + 0 + 0 + + + 3594 + 1 + 0 + 0 + 0 + + + 3595 + 50 + 0 + 0 + 0 + + + 3596 + 1 + 0 + 0 + 0 + + + 3597 + 50 + 0 + 0 + 0 + + + 3598 + 1 + 0 + 0 + 0 + + + 3599 + 1 + 0 + 0 + 0 + + + 3600 + 50 + 0 + 0 + 0 + + + 3601 + 1 + 0 + 0 + 0 + + + 3602 + 1 + 0 + 0 + 0 + + + 3603 + 50 + 0 + 0 + 0 + + + 3604 + 1 + 0 + 0 + 0 + + + 3605 + 1 + 0 + 0 + 0 + + + 3606 + 1 + 0 + 0 + 0 + + + 3607 + 1 + 0 + 0 + 0 + + + 3608 + 1 + 0 + 0 + 0 + + + 3609 + 1 + 0 + 0 + 0 + + + 3610 + 1 + 0 + 0 + 0 + + + 3611 + 1 + 0 + 0 + 0 + + + 3612 + 1 + 0 + 0 + 0 + + + 3613 + 1 + 0 + 0 + 0 + + + 3614 + 1 + 0 + 0 + 0 + + + 3615 + 1 + 0 + 0 + 0 + + + 3616 + 1 + 0 + 0 + 0 + + + 3617 + 1 + 0 + 0 + 0 + + + 3618 + 1 + 0 + 0 + 0 + + + 3619 + 1 + 0 + 0 + 0 + + + 3620 + 1 + 0 + 0 + 0 + + + 3621 + 1 + 0 + 0 + 0 + + + 3622 + 1 + 0 + 0 + 0 + + + 3623 + 1 + 0 + 0 + 0 + + + 3624 + 1 + 0 + 0 + 0 + + + 3625 + 1 + 0 + 0 + 0 + + + 3626 + 1 + 0 + 0 + 0 + + + 3627 + 1 + 0 + 0 + 0 + + + 3628 + 1 + 0 + 0 + 0 + + + 3629 + 1 + 0 + 0 + 0 + + + 3630 + 1 + 0 + 0 + 0 + + + 3631 + 1 + 0 + 0 + 0 + + + 3632 + 1 + 0 + 0 + 0 + + + 3633 + 1 + 0 + 0 + 0 + + + 3634 + 1 + 0 + 0 + 0 + + + 3635 + 1 + 0 + 0 + 0 + + + 3636 + 1 + 0 + 0 + 0 + + + 3637 + 1 + 0 + 0 + 0 + + + 3638 + 1 + 0 + 0 + 0 + + + 3639 + 1 + 0 + 0 + 0 + + + 3640 + 1 + 0 + 0 + 0 + + + 3641 + 1 + 0 + 0 + 0 + + + 3642 + 1 + 0 + 0 + 0 + + + 3643 + 1 + 0 + 0 + 0 + + + 3644 + 1 + 0 + 0 + 0 + + + 3645 + 1 + 0 + 0 + 0 + + + 3646 + 1 + 0 + 0 + 0 + + + 3647 + 1 + 0 + 0 + 0 + + + 3648 + 1 + 0 + 0 + 0 + + + 3649 + 1 + 0 + 0 + 0 + + + 3650 + 1 + 0 + 0 + 0 + + + 3651 + 1 + 0 + 0 + 0 + + + 3652 + 1 + 0 + 0 + 0 + + + 3653 + 1 + 0 + 0 + 0 + + + 3654 + 1 + 0 + 0 + 0 + + + 3655 + 1 + 0 + 0 + 0 + + + 3656 + 1 + 0 + 0 + 0 + + + 3657 + 1 + 0 + 0 + 0 + + + 3658 + 1 + 0 + 0 + 0 + + + 3659 + 1 + 0 + 0 + 0 + + + 3660 + 1 + 0 + 0 + 0 + + + 3661 + 1 + 0 + 0 + 0 + + + 3662 + 1 + 0 + 0 + 0 + + + 3663 + 1 + 0 + 0 + 0 + + + 3664 + 1 + 0 + 0 + 0 + + + 3665 + 1 + 0 + 0 + 0 + + + 3666 + 1 + 0 + 0 + 0 + + + 3667 + 1 + 0 + 0 + 0 + + + 3668 + 1920 + 0 + 0 + 0 + + + 3669 + 1920 + 0 + 0 + 0 + + + 3670 + 6400 + 0 + 0 + 0 + + + 3671 + 6400 + 0 + 0 + 0 + + + 3672 + 64000 + 0 + 0 + 0 + + + 3673 + 64000 + 0 + 0 + 0 + + + 3674 + 64000 + 0 + 0 + 0 + + + 3675 + 64000 + 0 + 0 + 0 + + + 3676 + 64000 + 0 + 0 + 0 + + + 3677 + 64000 + 0 + 0 + 0 + + + 3678 + 13000 + 0 + 0 + 0 + + + 3679 + 1 + 0 + 0 + 0 + + + 3680 + 1 + 0 + 0 + 0 + + + 3681 + 1 + 0 + 0 + 0 + + + 3682 + 1 + 0 + 0 + 0 + + + 3683 + 1 + 0 + 0 + 0 + + + 3684 + 1 + 0 + 0 + 0 + + + 3685 + 1 + 0 + 0 + 0 + + + 3686 + 1 + 0 + 0 + 0 + + + 3687 + 1 + 0 + 0 + 0 + + + 3688 + 1 + 0 + 0 + 0 + + + 3689 + 1 + 0 + 0 + 0 + + + 3690 + 1 + 0 + 0 + 0 + + + 3691 + 1000 + 0 + 0 + 0 + + + 3692 + 1 + 0 + 0 + 0 + + + 3693 + 1 + 0 + 0 + 0 + + + 3694 + 1 + 0 + 0 + 0 + + + 3695 + 1 + 0 + 0 + 0 + + + 3696 + 4 + 0 + 0 + 0 + + + 3697 + 4 + 0 + 0 + 0 + + + 3698 + 1 + 0 + 0 + 0 + + + 3699 + 1 + 0 + 0 + 0 + + + 3700 + 1 + 0 + 0 + 0 + + + 3701 + 1 + 0 + 0 + 0 + + + 3702 + 1 + 0 + 0 + 0 + + + 3703 + 1 + 0 + 0 + 0 + + + 3704 + 1 + 0 + 0 + 0 + + + 3705 + 1 + 0 + 0 + 0 + + + 3706 + 1 + 0 + 0 + 0 + + + 3707 + 1 + 0 + 0 + 0 + + + 3708 + 1 + 0 + 0 + 0 + + + 3709 + 1 + 0 + 0 + 0 + + + 3710 + 1 + 0 + 0 + 0 + + + 3711 + 1 + 0 + 0 + 0 + + + 3712 + 1 + 0 + 0 + 0 + + + 3713 + 1 + 0 + 0 + 0 + + + 3714 + 1 + 0 + 0 + 0 + + + 3715 + 1 + 0 + 0 + 0 + + + 3716 + 1 + 0 + 0 + 0 + + + 3717 + 1 + 0 + 0 + 0 + + + 3718 + 3 + 0 + 0 + 0 + + + 3719 + 1 + 0 + 0 + 0 + + + 3720 + 1 + 0 + 0 + 0 + + + 3721 + 2 + 0 + 0 + 0 + + + 3722 + 1 + 0 + 0 + 0 + + + 3723 + 1 + 0 + 0 + 0 + + + 3724 + 1 + 0 + 0 + 0 + + + 3725 + 1 + 0 + 0 + 0 + + + 3726 + 1 + 0 + 0 + 0 + + + 3727 + 1 + 0 + 0 + 0 + + + 3728 + 1 + 0 + 0 + 0 + + + 3729 + 1 + 0 + 0 + 0 + + + 3730 + 1 + 0 + 0 + 0 + + + 3731 + 1 + 0 + 0 + 0 + + + 3732 + 1 + 0 + 0 + 0 + + + 3733 + 1 + 0 + 0 + 0 + + + 3734 + 1 + 0 + 0 + 0 + + + 3735 + 1 + 0 + 0 + 0 + + + 3736 + 1 + 0 + 0 + 0 + + + 3737 + 1 + 0 + 0 + 0 + + + 3738 + 1 + 0 + 0 + 0 + + + 3739 + 1 + 0 + 0 + 0 + + + 3740 + 1 + 0 + 0 + 0 + + + 3741 + 1 + 0 + 0 + 0 + + + 3742 + 1 + 0 + 0 + 0 + + + 3743 + 1 + 0 + 0 + 0 + + + 3744 + 1 + 0 + 0 + 0 + + + 3745 + 1 + 0 + 0 + 0 + + + 3746 + 1 + 0 + 0 + 0 + + + 3747 + 1 + 0 + 0 + 0 + + + 3748 + 6500 + 0 + 0 + 0 + + + 3749 + 78000 + 0 + 0 + 0 + + + 3750 + 78000 + 0 + 0 + 0 + + + 3751 + 78000 + 0 + 0 + 0 + + + 3752 + 78000 + 0 + 0 + 0 + + + 3753 + 78000 + 0 + 0 + 0 + + + 3754 + 78000 + 0 + 0 + 0 + + + 3755 + 78000 + 0 + 0 + 0 + + + 3756 + 78000 + 0 + 0 + 0 + + + 3757 + 5000 + 0 + 0 + 0 + + + 3758 + 5000 + 0 + 0 + 0 + + + 3759 + 325 + 0 + 0 + 0 + + + 3760 + 325 + 0 + 0 + 0 + + + 3761 + 325 + 0 + 0 + 0 + + + 3762 + 325 + 0 + 0 + 0 + + + 3763 + 325 + 0 + 0 + 0 + + + 3764 + 325 + 0 + 0 + 0 + + + 3765 + 325 + 0 + 0 + 0 + + + 3766 + 325 + 0 + 0 + 0 + + + 3767 + 325 + 0 + 0 + 0 + + + 3768 + 325 + 0 + 0 + 0 + + + 3769 + 325 + 0 + 0 + 0 + + + 3770 + 325 + 0 + 0 + 0 + + + 3771 + 325 + 0 + 0 + 0 + + + 3772 + 325 + 0 + 0 + 0 + + + 3773 + 325 + 0 + 0 + 0 + + + 3774 + 325 + 0 + 0 + 0 + + + 3775 + 325 + 0 + 0 + 0 + + + 3776 + 325 + 0 + 0 + 0 + + + 3777 + 325 + 0 + 0 + 0 + + + 3778 + 325 + 0 + 0 + 0 + + + 3779 + 325 + 0 + 0 + 0 + + + 3780 + 325 + 0 + 0 + 0 + + + 3781 + 325 + 0 + 0 + 0 + + + 3782 + 325 + 0 + 0 + 0 + + + 3783 + 325 + 0 + 0 + 0 + + + 3784 + 325 + 0 + 0 + 0 + + + 3785 + 325 + 0 + 0 + 0 + + + 3786 + 325 + 0 + 0 + 0 + + + 3787 + 325 + 0 + 0 + 0 + + + 3788 + 325 + 0 + 0 + 0 + + + 3789 + 325 + 0 + 0 + 0 + + + 3790 + 325 + 0 + 0 + 0 + + + 3791 + 650 + 0 + 0 + 0 + + + 3792 + 650 + 0 + 0 + 0 + + + 3793 + 650 + 0 + 0 + 0 + + + 3794 + 650 + 0 + 0 + 0 + + + 3795 + 650 + 0 + 0 + 0 + + + 3796 + 650 + 0 + 0 + 0 + + + 3797 + 650 + 0 + 0 + 0 + + + 3798 + 650 + 0 + 0 + 0 + + + 3799 + 650 + 0 + 0 + 0 + + + 3800 + 650 + 0 + 0 + 0 + + + 3801 + 325 + 0 + 0 + 0 + + + 3802 + 325 + 0 + 0 + 0 + + + 3803 + 26 + 0 + 0 + 0 + + + 3804 + 26 + 0 + 0 + 0 + + + 3805 + 5 + 0 + 0 + 0 + + + 3806 + 5 + 0 + 0 + 0 + + + 3807 + 1 + 0 + 0 + 0 + + + 3808 + 1 + 0 + 0 + 0 + + + 3809 + 1 + 0 + 0 + 0 + + + 3810 + 1 + 0 + 0 + 0 + + + 3811 + 1 + 0 + 0 + 0 + + + 3812 + 1 + 0 + 0 + 0 + + + 3813 + 1 + 0 + 0 + 0 + + + 3814 + 1 + 0 + 0 + 0 + + + 3815 + 1 + 0 + 0 + 0 + + + 3816 + 1 + 0 + 0 + 0 + + + 3817 + 1 + 0 + 0 + 0 + + + 3818 + 1 + 0 + 0 + 0 + + + 3819 + 1 + 0 + 0 + 0 + + + 3820 + 1 + 0 + 0 + 0 + + + 3821 + 1 + 0 + 0 + 0 + + + 3822 + 1 + 0 + 0 + 0 + + + 3823 + 1 + 0 + 0 + 0 + + + 3824 + 1 + 0 + 0 + 0 + + + 3825 + 1 + 0 + 0 + 0 + + + 3826 + 1 + 0 + 0 + 0 + + + 3827 + 200 + 0 + 0 + 0 + + + 3828 + 200 + 0 + 0 + 0 + + + 3829 + 200 + 0 + 0 + 0 + + + 3830 + 200 + 0 + 0 + 0 + + + 3831 + 200 + 0 + 0 + 0 + + + 3832 + 200 + 0 + 0 + 0 + + + 3833 + 200 + 0 + 0 + 0 + + + 3834 + 200 + 0 + 0 + 0 + + + 3835 + 200 + 0 + 0 + 0 + + + 3836 + 200 + 0 + 0 + 0 + + + 3837 + 200 + 0 + 0 + 0 + + + 3838 + 200 + 0 + 0 + 0 + + + 3839 + 200 + 0 + 0 + 0 + + + 3840 + 200 + 0 + 0 + 0 + + + 3841 + 200 + 0 + 0 + 0 + + + 3842 + 200 + 0 + 0 + 0 + + + 3843 + 200 + 0 + 0 + 0 + + + 3844 + 200 + 0 + 0 + 0 + + + 3845 + 1 + 0 + 0 + 0 + + + 3846 + 1 + 0 + 0 + 0 + + + 3847 + 1 + 0 + 0 + 0 + + + 3848 + 1 + 0 + 0 + 0 + + + 3849 + 1 + 0 + 0 + 0 + + + 3850 + 1 + 0 + 0 + 0 + + + 3851 + 1 + 0 + 0 + 0 + + + 3852 + 200 + 0 + 0 + 0 + + + 3853 + 1050 + 0 + 0 + 0 + + + 3854 + 1050 + 0 + 0 + 0 + + + 3855 + 1050 + 0 + 0 + 0 + + + 3856 + 1050 + 0 + 0 + 0 + + + 3857 + 1050 + 0 + 0 + 0 + + + 3858 + 1050 + 0 + 0 + 0 + + + 3859 + 1050 + 0 + 0 + 0 + + + 3860 + 1050 + 0 + 0 + 0 + + + 3861 + 1050 + 0 + 0 + 0 + + + 3862 + 1050 + 0 + 0 + 0 + + + 3863 + 1050 + 0 + 0 + 0 + + + 3864 + 1050 + 0 + 0 + 0 + + + 3865 + 1050 + 0 + 0 + 0 + + + 3866 + 1050 + 0 + 0 + 0 + + + 3867 + 1050 + 0 + 0 + 0 + + + 3868 + 1050 + 0 + 0 + 0 + + + 3869 + 1 + 0 + 0 + 0 + + + 3870 + 1 + 0 + 0 + 0 + + + 3871 + 1 + 0 + 0 + 0 + + + 3872 + 1 + 0 + 0 + 0 + + + 3873 + 1 + 0 + 0 + 0 + + + 3874 + 1 + 0 + 0 + 0 + + + 3875 + 1 + 0 + 0 + 0 + + + 3876 + 1 + 0 + 0 + 0 + + + 3877 + 1 + 0 + 0 + 0 + + + 3878 + 1 + 0 + 0 + 0 + + + 3879 + 1 + 0 + 0 + 0 + + + 3880 + 1 + 0 + 0 + 0 + + + 3881 + 1 + 0 + 0 + 0 + + + 3882 + 1 + 0 + 0 + 0 + + + 3883 + 1 + 0 + 0 + 0 + + + 3884 + 1 + 0 + 0 + 0 + + + 3885 + 1 + 0 + 0 + 0 + + + 3886 + 1 + 0 + 0 + 0 + + + 3887 + 1 + 0 + 0 + 0 + + + 3888 + 1 + 0 + 0 + 0 + + + 3889 + 1 + 0 + 0 + 0 + + + 3890 + 1 + 0 + 0 + 0 + + + 3891 + 1 + 0 + 0 + 0 + + + 3892 + 1 + 0 + 0 + 0 + + + 3893 + 800 + 0 + 0 + 0 + + + 3894 + 1 + 0 + 0 + 0 + + + 3895 + 1 + 0 + 0 + 0 + + + 3896 + 1 + 0 + 0 + 0 + + + 3897 + 1 + 0 + 0 + 0 + + + 3898 + 1 + 0 + 0 + 0 + + + 3899 + 15 + 0 + 0 + 0 + + + 3900 + 1 + 0 + 0 + 0 + + + 3901 + 1 + 0 + 0 + 0 + + + 3902 + 1 + 0 + 0 + 0 + + + 3903 + 1 + 0 + 0 + 0 + + + 3904 + 1 + 0 + 0 + 0 + + + 3905 + 1 + 0 + 0 + 0 + + + 3906 + 1 + 0 + 0 + 0 + + + 3907 + 1 + 0 + 0 + 0 + + + 3908 + 1 + 0 + 0 + 0 + + + 3909 + 1 + 0 + 0 + 0 + + + 3910 + 1 + 0 + 0 + 0 + + + 3911 + 1 + 0 + 0 + 0 + + + 3912 + 1 + 0 + 0 + 0 + + + 3913 + 1 + 0 + 0 + 0 + + + 3914 + 1 + 0 + 0 + 0 + + + 3915 + 1 + 0 + 0 + 0 + + + 3916 + 1 + 0 + 0 + 0 + + + 3917 + 1 + 0 + 0 + 0 + + + 3918 + 1 + 0 + 0 + 0 + + + 3919 + 1 + 0 + 0 + 0 + + + 3920 + 1 + 0 + 0 + 0 + + + 3921 + 1 + 0 + 0 + 0 + + + 3922 + 1 + 0 + 0 + 0 + + + 3923 + 1 + 0 + 0 + 0 + + + 3924 + 1 + 0 + 0 + 0 + + + 3925 + 1 + 0 + 0 + 0 + + + 3926 + 1 + 0 + 0 + 0 + + + 3927 + 1 + 0 + 0 + 0 + + + 3928 + 1 + 0 + 0 + 0 + + + 3929 + 1 + 0 + 0 + 0 + + + 3930 + 1 + 0 + 0 + 0 + + + 3931 + 1 + 0 + 0 + 0 + + + 3932 + 1 + 0 + 0 + 0 + + + 3933 + 1 + 0 + 0 + 0 + + + 3934 + 1 + 0 + 0 + 0 + + + 3935 + 1 + 0 + 0 + 0 + + + 3936 + 1 + 0 + 0 + 0 + + + 3937 + 1 + 0 + 0 + 0 + + + 3938 + 1 + 0 + 0 + 0 + + + 3939 + 1 + 0 + 0 + 0 + + + 3940 + 1 + 0 + 0 + 0 + + + 3941 + 1 + 0 + 0 + 0 + + + 3942 + 1 + 0 + 0 + 0 + + + 3943 + 1 + 0 + 0 + 0 + + + 3944 + 1 + 0 + 0 + 0 + + + 3945 + 1 + 0 + 0 + 0 + + + 3946 + 1 + 0 + 0 + 0 + + + 3947 + 1 + 0 + 0 + 0 + + + 3948 + 1 + 0 + 0 + 0 + + + 3949 + 1 + 0 + 0 + 0 + + + 3950 + 1 + 0 + 0 + 0 + + + 3951 + 1 + 0 + 0 + 0 + + + 3952 + 1 + 0 + 0 + 0 + + + 3953 + 1 + 0 + 0 + 0 + + + 3954 + 1 + 0 + 0 + 0 + + + 3955 + 1 + 0 + 0 + 0 + + + 3956 + 1 + 0 + 0 + 0 + + + 3957 + 1 + 0 + 0 + 0 + + + 3958 + 1 + 0 + 0 + 0 + + + 3959 + 1 + 0 + 0 + 0 + + + 3960 + 1 + 0 + 0 + 0 + + + 3961 + 1 + 0 + 0 + 0 + + + 3962 + 1 + 0 + 0 + 0 + + + 3963 + 1 + 0 + 0 + 0 + + + 3964 + 1 + 0 + 0 + 0 + + + 3965 + 1 + 0 + 0 + 0 + + + 3966 + 1 + 0 + 0 + 0 + + + 3967 + 1 + 0 + 0 + 0 + + + 3968 + 1 + 0 + 0 + 0 + + + 3969 + 1 + 0 + 0 + 0 + + + 3970 + 1 + 0 + 0 + 0 + + + 3971 + 1 + 0 + 0 + 0 + + + 3972 + 1 + 0 + 0 + 0 + + + 3973 + 1 + 0 + 0 + 0 + + + 3974 + 1 + 0 + 0 + 0 + + + 3975 + 1 + 0 + 0 + 0 + + + 3976 + 1 + 0 + 0 + 0 + + + 3977 + 1 + 0 + 0 + 0 + + + 3978 + 1 + 0 + 0 + 0 + + + 3979 + 1 + 0 + 0 + 0 + + + 3980 + 1 + 0 + 0 + 0 + + + 3981 + 1 + 0 + 0 + 0 + + + 3982 + 1 + 0 + 0 + 0 + + + 3983 + 1 + 0 + 0 + 0 + + + 3984 + 1 + 0 + 0 + 0 + + + 3985 + 1 + 0 + 0 + 0 + + + 3986 + 1 + 0 + 0 + 0 + + + 3987 + 1 + 0 + 0 + 0 + + + 3988 + 1 + 0 + 0 + 0 + + + 3989 + 1 + 0 + 0 + 0 + + + 3990 + 1 + 0 + 0 + 0 + + + 3991 + 1 + 0 + 0 + 0 + + + 3992 + 1 + 0 + 0 + 0 + + + 3993 + 1 + 0 + 0 + 0 + + + 3994 + 1 + 0 + 0 + 0 + + + 3995 + 1 + 0 + 0 + 0 + + + 3996 + 1 + 0 + 0 + 0 + + + 3997 + 1 + 0 + 0 + 0 + + + 3998 + 1 + 0 + 0 + 0 + + + 3999 + 1 + 0 + 0 + 0 + + + 4000 + 1 + 0 + 0 + 0 + + + 4001 + 5 + 0 + 0 + 0 + + + 4002 + 1 + 0 + 0 + 0 + + + 4003 + 1 + 0 + 0 + 0 + + + 4004 + 1 + 0 + 0 + 0 + + + 4005 + 1 + 0 + 0 + 0 + + + 4006 + 10 + 0 + 0 + 0 + + + 4007 + 800 + 0 + 0 + 0 + + + 4008 + 3 + 0 + 0 + 0 + + + 4009 + 3 + 0 + 0 + 0 + + + 4010 + 3 + 0 + 0 + 0 + + + 4011 + 1 + 0 + 0 + 0 + + + 4012 + 3 + 0 + 0 + 0 + + + 4013 + 1 + 0 + 0 + 0 + + + 4014 + 50 + 0 + 0 + 0 + + + 4015 + 1 + 0 + 0 + 0 + + + 4016 + 300 + 0 + 0 + 0 + + + 4017 + 1 + 0 + 0 + 0 + + + 4018 + 10 + 0 + 0 + 0 + + + 4019 + 1 + 0 + 0 + 0 + + + 4020 + 10 + 0 + 0 + 0 + + + 4021 + 550 + 0 + 0 + 0 + + + 4022 + 500 + 0 + 0 + 0 + + + 4023 + 1000 + 0 + 0 + 0 + + + 4024 + 3000 + 0 + 0 + 0 + + + 4025 + 6000 + 0 + 0 + 0 + + + 4026 + 1000 + 0 + 0 + 0 + + + 4027 + 1500 + 0 + 0 + 0 + + + 4028 + 10000 + 0 + 0 + 0 + + + 4029 + 500 + 0 + 0 + 0 + + + 4030 + 2000 + 0 + 0 + 0 + + + 4031 + 500 + 0 + 0 + 0 + + + 4032 + 1 + 0 + 0 + 0 + + + 4033 + 1 + 0 + 0 + 0 + + + 4034 + 1 + 0 + 0 + 0 + + + 4035 + 1 + 0 + 0 + 0 + + + 4036 + 1 + 0 + 0 + 0 + + + 4037 + 1 + 0 + 0 + 0 + + + 4038 + 1 + 0 + 0 + 0 + + + 4039 + 1 + 0 + 0 + 0 + + + 4040 + 1 + 0 + 0 + 0 + + + 4041 + 1 + 0 + 0 + 0 + + + 4042 + 1 + 0 + 0 + 0 + + + 4043 + 1 + 0 + 0 + 0 + + + 4044 + 1 + 0 + 0 + 0 + + + 4045 + 1 + 0 + 0 + 0 + + + 4046 + 1 + 0 + 0 + 0 + + + 4047 + 1 + 0 + 0 + 0 + + + 4048 + 1 + 0 + 0 + 0 + + + 4049 + 1 + 0 + 0 + 0 + + + 4050 + 1 + 0 + 0 + 0 + + + 4051 + 1 + 0 + 0 + 0 + + + 4052 + 1 + 0 + 0 + 0 + + + 4053 + 1 + 0 + 0 + 0 + + + 4054 + 1 + 0 + 0 + 0 + + + 4055 + 5 + 0 + 0 + 0 + + + 4056 + 1 + 0 + 0 + 0 + + + 4057 + 1 + 0 + 0 + 0 + + + 4058 + 1 + 0 + 0 + 0 + + + 4059 + 1 + 0 + 0 + 0 + + + 4060 + 1 + 0 + 0 + 0 + + + 4061 + 1 + 0 + 0 + 0 + + + 4062 + 1 + 0 + 0 + 0 + + + 4063 + 1 + 0 + 0 + 0 + + + 4064 + 1 + 0 + 0 + 0 + + + 4065 + 1 + 0 + 0 + 0 + + + 4066 + 1 + 0 + 0 + 0 + + + 4067 + 1 + 0 + 0 + 0 + + + 4068 + 500 + 0 + 0 + 0 + + + 4069 + 2000 + 0 + 0 + 0 + + + 4070 + 1000 + 0 + 0 + 0 + + + 4071 + 300 + 0 + 0 + 0 + + + 4072 + 850 + 0 + 0 + 0 + + + 4073 + 1 + 0 + 0 + 0 + + + 4074 + 1 + 0 + 0 + 0 + + + 4075 + 1 + 0 + 0 + 0 + + + 4076 + 1 + 0 + 0 + 0 + + + 4077 + 1 + 0 + 0 + 0 + + + 4078 + 1 + 0 + 0 + 0 + + + 4079 + 10 + 0 + 0 + 0 + + + 4080 + 1 + 0 + 0 + 0 + + + 4081 + 1 + 0 + 0 + 0 + + + 4082 + 1 + 0 + 0 + 0 + + + 4083 + 150 + 0 + 0 + 0 + + + 4084 + 175 + 0 + 0 + 0 + + + 4085 + 15 + 0 + 0 + 0 + + + 4086 + 5 + 0 + 0 + 0 + + + 4087 + 270000 + 0 + 0 + 0 + + + 4088 + 270000 + 0 + 0 + 0 + + + 4089 + 15000 + 0 + 0 + 0 + + + 4090 + 15000 + 0 + 0 + 0 + + + 4091 + 120000 + 0 + 0 + 0 + + + 4092 + 120000 + 0 + 0 + 0 + + + 4093 + 80000 + 0 + 0 + 0 + + + 4094 + 80000 + 0 + 0 + 0 + + + 4095 + 10000 + 0 + 0 + 0 + + + 4096 + 10000 + 0 + 0 + 0 + + + 4097 + 10000 + 0 + 0 + 0 + + + 4098 + 10000 + 0 + 0 + 0 + + + 4099 + 15000 + 0 + 0 + 0 + + + 4100 + 15000 + 0 + 0 + 0 + + + 4101 + 120000 + 0 + 0 + 0 + + + 4102 + 120000 + 0 + 0 + 0 + + + 4103 + 80000 + 0 + 0 + 0 + + + 4104 + 80000 + 0 + 0 + 0 + + + 4105 + 10000 + 0 + 0 + 0 + + + 4106 + 10000 + 0 + 0 + 0 + + + 4107 + 10000 + 0 + 0 + 0 + + + 4108 + 10000 + 0 + 0 + 0 + + + 4109 + 15000 + 0 + 0 + 0 + + + 4110 + 15000 + 0 + 0 + 0 + + + 4111 + 120000 + 0 + 0 + 0 + + + 4112 + 120000 + 0 + 0 + 0 + + + 4113 + 80000 + 0 + 0 + 0 + + + 4114 + 80000 + 0 + 0 + 0 + + + 4115 + 10000 + 0 + 0 + 0 + + + 4116 + 10000 + 0 + 0 + 0 + + + 4117 + 10000 + 0 + 0 + 0 + + + 4118 + 10000 + 0 + 0 + 0 + + + 4119 + 24 + 0 + 0 + 0 + + + 4120 + 24 + 0 + 0 + 0 + + + 4121 + 84 + 0 + 0 + 0 + + + 4122 + 84 + 0 + 0 + 0 + + + 4123 + 300 + 0 + 0 + 0 + + + 4124 + 300 + 0 + 0 + 0 + + + 4125 + 576 + 0 + 0 + 0 + + + 4126 + 576 + 0 + 0 + 0 + + + 4127 + 780 + 0 + 0 + 0 + + + 4128 + 780 + 0 + 0 + 0 + + + 4129 + 1920 + 0 + 0 + 0 + + + 4130 + 1920 + 0 + 0 + 0 + + + 4131 + 12500 + 0 + 0 + 0 + + + 4132 + 12500 + 0 + 0 + 0 + + + 4133 + 1 + 0 + 0 + 0 + + + 4134 + 1 + 0 + 0 + 0 + + + 4135 + 1 + 0 + 0 + 0 + + + 4136 + 1 + 0 + 0 + 0 + + + 4137 + 1 + 0 + 0 + 0 + + + 4138 + 1 + 0 + 0 + 0 + + + 4139 + 1 + 0 + 0 + 0 + + + 4140 + 1 + 0 + 0 + 0 + + + 4141 + 1 + 0 + 0 + 0 + + + 4142 + 1 + 0 + 0 + 0 + + + 4143 + 1 + 0 + 0 + 0 + + + 4144 + 1 + 0 + 0 + 0 + + + 4145 + 1 + 0 + 0 + 0 + + + 4146 + 1 + 0 + 0 + 0 + + + 4147 + 1 + 0 + 0 + 0 + + + 4148 + 1 + 0 + 0 + 0 + + + 4149 + 1 + 0 + 0 + 0 + + + 4150 + 1 + 0 + 0 + 0 + + + 4151 + 120001 + 2 + 246002 + 0 + + + 4152 + 120001 + 0 + 0 + 0 + + + 4153 + 50000 + 0 + 0 + 0 + + + 4154 + 50000 + 0 + 0 + 0 + + + 4155 + 1 + 0 + 0 + 0 + + + 4156 + 5000 + 0 + 0 + 0 + + + 4157 + 5000 + 0 + 0 + 0 + + + 4158 + 31000 + 0 + 0 + 0 + + + 4159 + 31000 + 0 + 0 + 0 + + + 4160 + 90 + 0 + 0 + 0 + + + 4161 + 10 + 0 + 0 + 0 + + + 4162 + 500 + 0 + 0 + 0 + + + 4163 + 500 + 0 + 0 + 0 + + + 4164 + 200 + 0 + 0 + 0 + + + 4165 + 200 + 0 + 0 + 0 + + + 4166 + 200 + 0 + 0 + 0 + + + 4167 + 200 + 0 + 0 + 0 + + + 4168 + 200 + 0 + 0 + 0 + + + 4169 + 200 + 0 + 0 + 0 + + + 4170 + 21000 + 0 + 0 + 0 + + + 4171 + 21000 + 0 + 0 + 0 + + + 4172 + 1 + 0 + 0 + 0 + + + 4173 + 1 + 0 + 0 + 0 + + + 4174 + 1 + 0 + 0 + 0 + + + 4175 + 1 + 0 + 0 + 0 + + + 4176 + 1 + 0 + 0 + 0 + + + 4177 + 1 + 0 + 0 + 0 + + + 4178 + 6 + 0 + 0 + 0 + + + 4179 + 1 + 0 + 0 + 0 + + + 4180 + 6 + 0 + 0 + 0 + + + 4181 + 1 + 0 + 0 + 0 + + + 4182 + 6 + 0 + 0 + 0 + + + 4183 + 1 + 0 + 0 + 0 + + + 4184 + 1 + 0 + 0 + 0 + + + 4185 + 1 + 0 + 0 + 0 + + + 4186 + 1 + 0 + 0 + 0 + + + 4187 + 1 + 0 + 0 + 0 + + + 4188 + 1 + 0 + 0 + 0 + + + 4189 + 1 + 0 + 0 + 0 + + + 4190 + 1 + 0 + 0 + 0 + + + 4191 + 1 + 0 + 0 + 0 + + + 4192 + 1 + 0 + 0 + 0 + + + 4193 + 1 + 0 + 0 + 0 + + + 4194 + 1 + 0 + 0 + 0 + + + 4195 + 1 + 0 + 0 + 0 + + + 4196 + 1 + 0 + 0 + 0 + + + 4197 + 1 + 0 + 0 + 0 + + + 4198 + 1 + 0 + 0 + 0 + + + 4199 + 1 + 0 + 0 + 0 + + + 4200 + 1 + 0 + 0 + 0 + + + 4201 + 1 + 0 + 0 + 0 + + + 4202 + 1 + 0 + 0 + 0 + + + 4203 + 1 + 0 + 0 + 0 + + + 4204 + 1 + 0 + 0 + 0 + + + 4205 + 1 + 0 + 0 + 0 + + + 4206 + 1 + 0 + 0 + 0 + + + 4207 + 1 + 0 + 0 + 0 + + + 4208 + 1 + 0 + 0 + 0 + + + 4209 + 2 + 0 + 0 + 0 + + + 4210 + 1 + 0 + 0 + 0 + + + 4211 + 1 + 0 + 0 + 0 + + + 4212 + 900000 + 0 + 0 + 0 + + + 4213 + 900000 + 0 + 0 + 0 + + + 4214 + 900000 + 0 + 0 + 0 + + + 4215 + 800000 + 0 + 0 + 0 + + + 4216 + 700000 + 0 + 0 + 0 + + + 4217 + 600000 + 0 + 0 + 0 + + + 4218 + 500000 + 0 + 0 + 0 + + + 4219 + 400000 + 0 + 0 + 0 + + + 4220 + 300000 + 0 + 0 + 0 + + + 4221 + 200000 + 0 + 0 + 0 + + + 4222 + 100000 + 0 + 0 + 0 + + + 4223 + 50000 + 0 + 0 + 0 + + + 4224 + 800000 + 0 + 0 + 0 + + + 4225 + 750000 + 0 + 0 + 0 + + + 4226 + 670000 + 0 + 0 + 0 + + + 4227 + 590000 + 0 + 0 + 0 + + + 4228 + 510000 + 0 + 0 + 0 + + + 4229 + 430000 + 0 + 0 + 0 + + + 4230 + 350000 + 0 + 0 + 0 + + + 4231 + 270000 + 0 + 0 + 0 + + + 4232 + 190000 + 0 + 0 + 0 + + + 4233 + 100000 + 0 + 0 + 0 + + + 4234 + 25000 + 0 + 0 + 0 + + + 4235 + 800000 + 0 + 0 + 0 + + + 4236 + 160 + 0 + 0 + 0 + + + 4237 + 4 + 0 + 0 + 0 + + + 4238 + 1 + 0 + 0 + 0 + + + 4239 + 4 + 0 + 0 + 0 + + + 4240 + 4 + 0 + 0 + 0 + + + 4241 + 3 + 0 + 0 + 0 + + + 4242 + 10 + 0 + 0 + 0 + + + 4243 + 10 + 0 + 0 + 0 + + + 4244 + 2 + 0 + 0 + 0 + + + 4245 + 10 + 0 + 0 + 0 + + + 4246 + 10 + 0 + 0 + 0 + + + 4247 + 1 + 0 + 0 + 0 + + + 4248 + 1 + 0 + 0 + 0 + + + 4249 + 1 + 0 + 0 + 0 + + + 4250 + 35 + 0 + 0 + 0 + + + 4251 + 1 + 0 + 0 + 0 + + + 4252 + 1 + 0 + 0 + 0 + + + 4253 + 1 + 0 + 0 + 0 + + + 4254 + 1 + 0 + 0 + 0 + + + 4255 + 1 + 0 + 0 + 0 + + + 4256 + 1 + 0 + 0 + 0 + + + 4257 + 1 + 0 + 0 + 0 + + + 4258 + 1 + 0 + 0 + 0 + + + 4259 + 1 + 0 + 0 + 0 + + + 4260 + 1 + 0 + 0 + 0 + + + 4261 + 1 + 0 + 0 + 0 + + + 4262 + 1 + 0 + 0 + 0 + + + 4263 + 1 + 0 + 0 + 0 + + + 4264 + 1 + 0 + 0 + 0 + + + 4265 + 1 + 0 + 0 + 0 + + + 4266 + 1 + 0 + 0 + 0 + + + 4267 + 1 + 0 + 0 + 0 + + + 4268 + 1 + 0 + 0 + 0 + + + 4269 + 1 + 0 + 0 + 0 + + + 4270 + 1 + 0 + 0 + 0 + + + 4271 + 1 + 0 + 0 + 0 + + + 4272 + 1 + 0 + 0 + 0 + + + 4273 + 1 + 0 + 0 + 0 + + + 4274 + 1 + 0 + 0 + 0 + + + 4275 + 1 + 0 + 0 + 0 + + + 4276 + 1 + 0 + 0 + 0 + + + 4277 + 1 + 0 + 0 + 0 + + + 4278 + 1 + 0 + 0 + 0 + + + 4279 + 1 + 0 + 0 + 0 + + + 4280 + 1 + 0 + 0 + 0 + + + 4281 + 1 + 0 + 0 + 0 + + + 4282 + 1 + 0 + 0 + 0 + + + 4283 + 1 + 0 + 0 + 0 + + + 4284 + 1 + 0 + 0 + 0 + + + 4285 + 1 + 0 + 0 + 0 + + + 4286 + 1 + 0 + 0 + 0 + + + 4287 + 1 + 0 + 0 + 0 + + + 4288 + 1 + 0 + 0 + 0 + + + 4289 + 1 + 0 + 0 + 0 + + + 4290 + 1 + 0 + 0 + 0 + + + 4291 + 4 + 0 + 0 + 0 + + + 4292 + 4 + 0 + 0 + 0 + + + 4293 + 4 + 0 + 0 + 0 + + + 4294 + 4 + 0 + 0 + 0 + + + 4295 + 1 + 0 + 0 + 0 + + + 4296 + 1 + 0 + 0 + 0 + + + 4297 + 1 + 0 + 0 + 0 + + + 4298 + 75 + 0 + 0 + 0 + + + 4299 + 75 + 0 + 0 + 0 + + + 4300 + 75 + 0 + 0 + 0 + + + 4301 + 75 + 0 + 0 + 0 + + + 4302 + 75 + 0 + 0 + 0 + + + 4303 + 75 + 0 + 0 + 0 + + + 4304 + 75 + 0 + 0 + 0 + + + 4305 + 75 + 0 + 0 + 0 + + + 4306 + 75 + 0 + 0 + 0 + + + 4307 + 75 + 0 + 0 + 0 + + + 4308 + 75 + 0 + 0 + 0 + + + 4309 + 75 + 0 + 0 + 0 + + + 4310 + 75 + 0 + 0 + 0 + + + 4311 + 75 + 0 + 0 + 0 + + + 4312 + 1 + 0 + 0 + 0 + + + 4313 + 2 + 0 + 0 + 0 + + + 4314 + 1 + 0 + 0 + 0 + + + 4315 + 50 + 0 + 0 + 0 + + + 4316 + 50 + 0 + 0 + 0 + + + 4317 + 50 + 0 + 0 + 0 + + + 4318 + 50 + 0 + 0 + 0 + + + 4319 + 50 + 0 + 0 + 0 + + + 4320 + 50 + 0 + 0 + 0 + + + 4321 + 50 + 0 + 0 + 0 + + + 4322 + 50 + 0 + 0 + 0 + + + 4323 + 50 + 0 + 0 + 0 + + + 4324 + 50 + 0 + 0 + 0 + + + 4325 + 50 + 0 + 0 + 0 + + + 4326 + 50 + 0 + 0 + 0 + + + 4327 + 50 + 0 + 0 + 0 + + + 4328 + 50 + 0 + 0 + 0 + + + 4329 + 50 + 0 + 0 + 0 + + + 4330 + 50 + 0 + 0 + 0 + + + 4331 + 50 + 0 + 0 + 0 + + + 4332 + 50 + 0 + 0 + 0 + + + 4333 + 50 + 0 + 0 + 0 + + + 4334 + 50 + 0 + 0 + 0 + + + 4335 + 50 + 0 + 0 + 0 + + + 4336 + 50 + 0 + 0 + 0 + + + 4337 + 50 + 0 + 0 + 0 + + + 4338 + 50 + 0 + 0 + 0 + + + 4339 + 50 + 0 + 0 + 0 + + + 4340 + 50 + 0 + 0 + 0 + + + 4341 + 50 + 0 + 0 + 0 + + + 4342 + 50 + 0 + 0 + 0 + + + 4343 + 50 + 0 + 0 + 0 + + + 4344 + 50 + 0 + 0 + 0 + + + 4345 + 50 + 0 + 0 + 0 + + + 4346 + 50 + 0 + 0 + 0 + + + 4347 + 50 + 0 + 0 + 0 + + + 4348 + 50 + 0 + 0 + 0 + + + 4349 + 50 + 0 + 0 + 0 + + + 4350 + 50 + 0 + 0 + 0 + + + 4351 + 50 + 0 + 0 + 0 + + + 4352 + 50 + 0 + 0 + 0 + + + 4353 + 50 + 0 + 0 + 0 + + + 4354 + 50 + 0 + 0 + 0 + + + 4355 + 50 + 0 + 0 + 0 + + + 4356 + 50 + 0 + 0 + 0 + + + 4357 + 50 + 0 + 0 + 0 + + + 4358 + 50 + 0 + 0 + 0 + + + 4359 + 50 + 0 + 0 + 0 + + + 4360 + 50 + 0 + 0 + 0 + + + 4361 + 50 + 0 + 0 + 0 + + + 4362 + 50 + 0 + 0 + 0 + + + 4363 + 50 + 0 + 0 + 0 + + + 4364 + 50 + 0 + 0 + 0 + + + 4365 + 50 + 0 + 0 + 0 + + + 4366 + 50 + 0 + 0 + 0 + + + 4367 + 50 + 0 + 0 + 0 + + + 4368 + 50 + 0 + 0 + 0 + + + 4369 + 50 + 0 + 0 + 0 + + + 4370 + 50 + 0 + 0 + 0 + + + 4371 + 50 + 0 + 0 + 0 + + + 4372 + 50 + 0 + 0 + 0 + + + 4373 + 50 + 0 + 0 + 0 + + + 4374 + 50 + 0 + 0 + 0 + + + 4375 + 50 + 0 + 0 + 0 + + + 4376 + 50 + 0 + 0 + 0 + + + 4377 + 50 + 0 + 0 + 0 + + + 4378 + 50 + 0 + 0 + 0 + + + 4379 + 50 + 0 + 0 + 0 + + + 4380 + 50 + 0 + 0 + 0 + + + 4381 + 50 + 0 + 0 + 0 + + + 4382 + 50 + 0 + 0 + 0 + + + 4383 + 50 + 0 + 0 + 0 + + + 4384 + 50 + 0 + 0 + 0 + + + 4385 + 50 + 0 + 0 + 0 + + + 4386 + 50 + 0 + 0 + 0 + + + 4387 + 50 + 0 + 0 + 0 + + + 4388 + 50 + 0 + 0 + 0 + + + 4389 + 50 + 0 + 0 + 0 + + + 4390 + 50 + 0 + 0 + 0 + + + 4391 + 50 + 0 + 0 + 0 + + + 4392 + 50 + 0 + 0 + 0 + + + 4393 + 50 + 0 + 0 + 0 + + + 4394 + 50 + 0 + 0 + 0 + + + 4395 + 50 + 0 + 0 + 0 + + + 4396 + 50 + 0 + 0 + 0 + + + 4397 + 50 + 0 + 0 + 0 + + + 4398 + 50 + 0 + 0 + 0 + + + 4399 + 50 + 0 + 0 + 0 + + + 4400 + 50 + 0 + 0 + 0 + + + 4401 + 50 + 0 + 0 + 0 + + + 4402 + 50 + 0 + 0 + 0 + + + 4403 + 50 + 0 + 0 + 0 + + + 4404 + 50 + 0 + 0 + 0 + + + 4405 + 50 + 0 + 0 + 0 + + + 4406 + 50 + 0 + 0 + 0 + + + 4407 + 50 + 0 + 0 + 0 + + + 4408 + 50 + 0 + 0 + 0 + + + 4409 + 50 + 0 + 0 + 0 + + + 4410 + 50 + 0 + 0 + 0 + + + 4411 + 50 + 0 + 0 + 0 + + + 4412 + 50 + 0 + 0 + 0 + + + 4413 + 50 + 0 + 0 + 0 + + + 4414 + 50 + 0 + 0 + 0 + + + 4415 + 56 + 0 + 0 + 0 + + + 4416 + 100 + 0 + 0 + 0 + + + 4417 + 50 + 0 + 0 + 0 + + + 4418 + 50 + 0 + 0 + 0 + + + 4419 + 50 + 0 + 0 + 0 + + + 4420 + 50 + 0 + 0 + 0 + + + 4421 + 50 + 0 + 0 + 0 + + + 4422 + 50 + 0 + 0 + 0 + + + 4423 + 50 + 0 + 0 + 0 + + + 4424 + 50 + 0 + 0 + 0 + + + 4425 + 1 + 0 + 0 + 0 + + + 4426 + 1 + 0 + 0 + 0 + + + 4427 + 5 + 0 + 0 + 0 + + + 4428 + 50 + 0 + 0 + 0 + + + 4429 + 1 + 0 + 0 + 0 + + + 4430 + 1 + 0 + 0 + 0 + + + 4431 + 1 + 0 + 0 + 0 + + + 4432 + 1 + 0 + 0 + 0 + + + 4433 + 1 + 0 + 0 + 0 + + + 4434 + 1 + 0 + 0 + 0 + + + 4435 + 1 + 0 + 0 + 0 + + + 4436 + 10 + 0 + 0 + 0 + + + 4437 + 10 + 0 + 0 + 0 + + + 4438 + 10 + 0 + 0 + 0 + + + 4439 + 10 + 0 + 0 + 0 + + + 4440 + 15 + 0 + 0 + 0 + + + 4441 + 15 + 0 + 0 + 0 + + + 4442 + 1 + 0 + 0 + 0 + + + 4443 + 1 + 0 + 0 + 0 + + + 4444 + 56 + 0 + 0 + 0 + + + 4445 + 1 + 0 + 0 + 0 + + + 4446 + 1 + 0 + 0 + 0 + + + 4447 + 1 + 0 + 0 + 0 + + + 4448 + 1 + 0 + 0 + 0 + + + 4449 + 1 + 0 + 0 + 0 + + + 4450 + 1 + 0 + 0 + 0 + + + 4451 + 1 + 0 + 0 + 0 + + + 4452 + 1 + 0 + 0 + 0 + + + 4453 + 1 + 0 + 0 + 0 + + + 4454 + 1 + 0 + 0 + 0 + + + 4455 + 1 + 0 + 0 + 0 + + + 4456 + 10 + 0 + 0 + 0 + + + 4457 + 10 + 0 + 0 + 0 + + + 4458 + 10 + 0 + 0 + 0 + + + 4459 + 10 + 0 + 0 + 0 + + + 4460 + 10 + 0 + 0 + 0 + + + 4461 + 10 + 0 + 0 + 0 + + + 4462 + 10 + 0 + 0 + 0 + + + 4463 + 10 + 0 + 0 + 0 + + + 4464 + 10 + 0 + 0 + 0 + + + 4465 + 10 + 0 + 0 + 0 + + + 4466 + 10 + 0 + 0 + 0 + + + 4467 + 10 + 0 + 0 + 0 + + + 4468 + 10 + 0 + 0 + 0 + + + 4469 + 10 + 0 + 0 + 0 + + + 4470 + 15 + 0 + 0 + 0 + + + 4471 + 15 + 0 + 0 + 0 + + + 4472 + 15 + 0 + 0 + 0 + + + 4473 + 15 + 0 + 0 + 0 + + + 4474 + 15 + 0 + 0 + 0 + + + 4475 + 15 + 0 + 0 + 0 + + + 4476 + 15 + 0 + 0 + 0 + + + 4477 + 15 + 0 + 0 + 0 + + + 4478 + 30 + 0 + 0 + 0 + + + 4479 + 30 + 0 + 0 + 0 + + + 4480 + 30 + 0 + 0 + 0 + + + 4481 + 30 + 0 + 0 + 0 + + + 4482 + 30 + 0 + 0 + 0 + + + 4483 + 30 + 0 + 0 + 0 + + + 4484 + 1 + 0 + 0 + 0 + + + 4485 + 1 + 0 + 0 + 0 + + + 4486 + 1 + 0 + 0 + 0 + + + 4487 + 1 + 0 + 0 + 0 + + + 4488 + 1 + 0 + 0 + 0 + + + 4489 + 1 + 0 + 0 + 0 + + + 4490 + 1 + 0 + 0 + 0 + + + 4491 + 1 + 0 + 0 + 0 + + + 4492 + 1 + 0 + 0 + 0 + + + 4493 + 1 + 0 + 0 + 0 + + + 4494 + 1 + 0 + 0 + 0 + + + 4495 + 1 + 0 + 0 + 0 + + + 4496 + 1 + 0 + 0 + 0 + + + 4497 + 1 + 0 + 0 + 0 + + + 4498 + 1 + 0 + 0 + 0 + + + 4499 + 1 + 0 + 0 + 0 + + + 4500 + 1 + 0 + 0 + 0 + + + 4501 + 1 + 0 + 0 + 0 + + + 4502 + 1 + 0 + 0 + 0 + + + 4503 + 1300 + 0 + 0 + 0 + + + 4504 + 5200 + 0 + 0 + 0 + + + 4505 + 2600 + 0 + 0 + 0 + + + 4506 + 780 + 0 + 0 + 0 + + + 4507 + 2210 + 0 + 0 + 0 + + + 4508 + 3200 + 0 + 0 + 0 + + + 4509 + 12800 + 0 + 0 + 0 + + + 4510 + 6400 + 0 + 0 + 0 + + + 4511 + 1920 + 0 + 0 + 0 + + + 4512 + 5440 + 0 + 0 + 0 + + + 4513 + 1 + 0 + 0 + 0 + + + 4514 + 100 + 0 + 0 + 0 + + + 4515 + 1 + 0 + 0 + 0 + + + 4516 + 100 + 0 + 0 + 0 + + + 4517 + 100 + 0 + 0 + 0 + + + 4518 + 100 + 0 + 0 + 0 + + + 4519 + 1 + 0 + 0 + 0 + + + 4520 + 1 + 0 + 0 + 0 + + + 4521 + 1 + 0 + 0 + 0 + + + 4522 + 28 + 0 + 0 + 0 + + + 4523 + 28 + 0 + 0 + 0 + + + 4524 + 28 + 0 + 0 + 0 + + + 4525 + 25 + 0 + 0 + 0 + + + 4526 + 25 + 0 + 0 + 0 + + + 4527 + 10 + 0 + 0 + 0 + + + 4528 + 10 + 0 + 0 + 0 + + + 4529 + 15 + 0 + 0 + 0 + + + 4530 + 15 + 0 + 0 + 0 + + + 4531 + 15 + 0 + 0 + 0 + + + 4532 + 15 + 0 + 0 + 0 + + + 4533 + 15 + 0 + 0 + 0 + + + 4534 + 15 + 0 + 0 + 0 + + + 4535 + 120 + 0 + 0 + 0 + + + 4536 + 120 + 0 + 0 + 0 + + + 4537 + 125 + 0 + 0 + 0 + + + 4538 + 125 + 0 + 0 + 0 + + + 4539 + 125 + 0 + 0 + 0 + + + 4540 + 90 + 0 + 0 + 0 + + + 4541 + 90 + 0 + 0 + 0 + + + 4542 + 70 + 0 + 0 + 0 + + + 4543 + 70 + 0 + 0 + 0 + + + 4544 + 300 + 0 + 0 + 0 + + + 4545 + 300 + 0 + 0 + 0 + + + 4546 + 400 + 0 + 0 + 0 + + + 4547 + 400 + 0 + 0 + 0 + + + 4548 + 420 + 0 + 0 + 0 + + + 4549 + 420 + 0 + 0 + 0 + + + 4550 + 420 + 0 + 0 + 0 + + + 4551 + 650 + 0 + 0 + 0 + + + 4552 + 650 + 0 + 0 + 0 + + + 4553 + 1 + 0 + 0 + 0 + + + 4554 + 1 + 0 + 0 + 0 + + + 4555 + 1 + 0 + 0 + 0 + + + 4556 + 1 + 0 + 0 + 0 + + + 4557 + 1 + 0 + 0 + 0 + + + 4558 + 1 + 0 + 0 + 0 + + + 4559 + 1 + 0 + 0 + 0 + + + 4560 + 1 + 0 + 0 + 0 + + + 4561 + 1 + 0 + 0 + 0 + + + 4562 + 1 + 0 + 0 + 0 + + + 4563 + 1 + 0 + 0 + 0 + + + 4564 + 1 + 0 + 0 + 0 + + + 4565 + 1 + 0 + 0 + 0 + + + 4566 + 1 + 0 + 0 + 0 + + + 4567 + 1 + 0 + 0 + 0 + + + 4568 + 1 + 0 + 0 + 0 + + + 4569 + 1 + 0 + 0 + 0 + + + 4570 + 1 + 0 + 0 + 0 + + + 4571 + 1 + 0 + 0 + 0 + + + 4572 + 1 + 0 + 0 + 0 + + + 4573 + 1 + 0 + 0 + 0 + + + 4574 + 1 + 0 + 0 + 0 + + + 4575 + 1 + 0 + 0 + 0 + + + 4576 + 1 + 0 + 0 + 0 + + + 4577 + 1 + 0 + 0 + 0 + + + 4578 + 1 + 0 + 0 + 0 + + + 4579 + 1 + 0 + 0 + 0 + + + 4580 + 650 + 0 + 0 + 0 + + + 4581 + 650 + 0 + 0 + 0 + + + 4582 + 750 + 0 + 0 + 0 + + + 4583 + 750 + 0 + 0 + 0 + + + 4584 + 750 + 0 + 0 + 0 + + + 4585 + 270000 + 0 + 0 + 0 + + + 4586 + 270000 + 0 + 0 + 0 + + + 4587 + 100000 + 0 + 0 + 0 + + + 4588 + 100000 + 0 + 0 + 0 + + + 4589 + 1 + 0 + 0 + 0 + + + 4590 + 1 + 0 + 0 + 0 + + + 4591 + 1 + 0 + 0 + 0 + + + 4592 + 1 + 0 + 0 + 0 + + + 4593 + 1 + 0 + 0 + 0 + + + 4594 + 1 + 0 + 0 + 0 + + + 4595 + 1 + 0 + 0 + 0 + + + 4596 + 1 + 0 + 0 + 0 + + + 4597 + 1 + 0 + 0 + 0 + + + 4598 + 1 + 0 + 0 + 0 + + + 4599 + 1 + 0 + 0 + 0 + + + 4600 + 600 + 0 + 0 + 0 + + + 4601 + 1 + 0 + 0 + 0 + + + 4602 + 1 + 0 + 0 + 0 + + + 4603 + 1 + 0 + 0 + 0 + + + 4604 + 1 + 0 + 0 + 0 + + + 4605 + 1 + 0 + 0 + 0 + + + 4606 + 1 + 0 + 0 + 0 + + + 4607 + 1 + 0 + 0 + 0 + + + 4608 + 3 + 0 + 0 + 0 + + + 4609 + 3 + 0 + 0 + 0 + + + 4610 + 1 + 0 + 0 + 0 + + + 4611 + 1 + 0 + 0 + 0 + + + 4612 + 600 + 0 + 0 + 0 + + + 4613 + 75 + 0 + 0 + 0 + + + 4614 + 1 + 0 + 0 + 0 + + + 4615 + 1 + 0 + 0 + 0 + + + 4616 + 2 + 0 + 0 + 0 + + + 4617 + 1 + 0 + 0 + 0 + + + 4618 + 2 + 0 + 0 + 0 + + + 4619 + 1 + 0 + 0 + 0 + + + 4620 + 1 + 0 + 0 + 0 + + + 4621 + 1 + 0 + 0 + 0 + + + 4622 + 1 + 0 + 0 + 0 + + + 4623 + 1 + 0 + 0 + 0 + + + 4624 + 1 + 0 + 0 + 0 + + + 4625 + 1 + 0 + 0 + 0 + + + 4626 + 1 + 0 + 0 + 0 + + + 4627 + 650 + 0 + 0 + 0 + + + 4628 + 650 + 0 + 0 + 0 + + + 4629 + 1 + 0 + 0 + 0 + + + 4630 + 1 + 0 + 0 + 0 + + + 4631 + 1 + 0 + 0 + 0 + + + 4632 + 1 + 0 + 0 + 0 + + + 4633 + 1 + 0 + 0 + 0 + + + 4634 + 1 + 0 + 0 + 0 + + + 4635 + 1 + 0 + 0 + 0 + + + 4636 + 1 + 0 + 0 + 0 + + + 4637 + 1 + 0 + 0 + 0 + + + 4638 + 1 + 0 + 0 + 0 + + + 4639 + 1 + 0 + 0 + 0 + + + 4640 + 1 + 0 + 0 + 0 + + + 4641 + 1 + 0 + 0 + 0 + + + 4642 + 1 + 0 + 0 + 0 + + + 4643 + 1 + 0 + 0 + 0 + + + 4644 + 1 + 0 + 0 + 0 + + + 4645 + 1 + 0 + 0 + 0 + + + 4646 + 1 + 0 + 0 + 0 + + + 4647 + 1 + 0 + 0 + 0 + + + 4648 + 1 + 0 + 0 + 0 + + + 4649 + 1 + 0 + 0 + 0 + + + 4650 + 1 + 0 + 0 + 0 + + + 4651 + 1 + 0 + 0 + 0 + + + 4652 + 1 + 0 + 0 + 0 + + + 4653 + 250 + 0 + 0 + 0 + + + 4654 + 250 + 0 + 0 + 0 + + + 4655 + 250 + 0 + 0 + 0 + + + 4656 + 250 + 0 + 0 + 0 + + + 4657 + 350 + 0 + 0 + 0 + + + 4658 + 250 + 0 + 0 + 0 + + + 4659 + 250 + 0 + 0 + 0 + + + 4660 + 250 + 0 + 0 + 0 + + + 4661 + 250 + 0 + 0 + 0 + + + 4662 + 250 + 0 + 0 + 0 + + + 4663 + 250 + 0 + 0 + 0 + + + 4664 + 250 + 0 + 0 + 0 + + + 4665 + 250 + 0 + 0 + 0 + + + 4666 + 250 + 0 + 0 + 0 + + + 4667 + 250 + 0 + 0 + 0 + + + 4668 + 10 + 0 + 0 + 0 + + + 4669 + 1 + 0 + 0 + 0 + + + 4670 + 250 + 0 + 0 + 0 + + + 4671 + 250 + 0 + 0 + 0 + + + 4672 + 250 + 0 + 0 + 0 + + + 4673 + 250 + 0 + 0 + 0 + + + 4674 + 250 + 0 + 0 + 0 + + + 4675 + 100000 + 0 + 0 + 0 + + + 4676 + 100000 + 0 + 0 + 0 + + + 4677 + 1 + 0 + 0 + 0 + + + 4678 + 1 + 0 + 0 + 0 + + + 4679 + 1 + 0 + 0 + 0 + + + 4680 + 1 + 0 + 0 + 0 + + + 4681 + 1 + 0 + 0 + 0 + + + 4682 + 1 + 0 + 0 + 0 + + + 4683 + 1 + 0 + 0 + 0 + + + 4684 + 30 + 0 + 0 + 0 + + + 4685 + 1 + 0 + 0 + 0 + + + 4686 + 1 + 0 + 0 + 0 + + + 4687 + 30 + 0 + 0 + 0 + + + 4688 + 1 + 0 + 0 + 0 + + + 4689 + 20 + 0 + 0 + 0 + + + 4690 + 1 + 0 + 0 + 0 + + + 4691 + 1 + 0 + 0 + 0 + + + 4692 + 1 + 0 + 0 + 0 + + + 4693 + 6 + 0 + 0 + 0 + + + 4694 + 20 + 0 + 0 + 0 + + + 4695 + 20 + 0 + 0 + 0 + + + 4696 + 20 + 0 + 0 + 0 + + + 4697 + 20 + 0 + 0 + 0 + + + 4698 + 20 + 0 + 0 + 0 + + + 4699 + 20 + 0 + 0 + 0 + + + 4700 + 600 + 0 + 0 + 0 + + + 4701 + 600 + 0 + 0 + 0 + + + 4702 + 600 + 0 + 0 + 0 + + + 4703 + 1 + 0 + 0 + 0 + + + 4704 + 1 + 0 + 0 + 0 + + + 4705 + 1 + 0 + 0 + 0 + + + 4706 + 1 + 0 + 0 + 0 + + + 4707 + 5 + 0 + 0 + 0 + + + 4708 + 13000 + 0 + 0 + 0 + + + 4709 + 13000 + 0 + 0 + 0 + + + 4710 + 85000 + 0 + 0 + 0 + + + 4711 + 85000 + 0 + 0 + 0 + + + 4712 + 50000 + 0 + 0 + 0 + + + 4713 + 50000 + 0 + 0 + 0 + + + 4714 + 47000 + 0 + 0 + 0 + + + 4715 + 47000 + 0 + 0 + 0 + + + 4716 + 103000 + 0 + 0 + 0 + + + 4717 + 103000 + 0 + 0 + 0 + + + 4718 + 208000 + 0 + 0 + 0 + + + 4719 + 208000 + 0 + 0 + 0 + + + 4720 + 280000 + 0 + 0 + 0 + + + 4721 + 280000 + 0 + 0 + 0 + + + 4722 + 275000 + 0 + 0 + 0 + + + 4723 + 275000 + 0 + 0 + 0 + + + 4724 + 103000 + 0 + 0 + 0 + + + 4725 + 103000 + 0 + 0 + 0 + + + 4726 + 100000 + 0 + 0 + 0 + + + 4727 + 100000 + 0 + 0 + 0 + + + 4728 + 280000 + 0 + 0 + 0 + + + 4729 + 280000 + 0 + 0 + 0 + + + 4730 + 275000 + 0 + 0 + 0 + + + 4731 + 275000 + 0 + 0 + 0 + + + 4732 + 13000 + 0 + 0 + 0 + + + 4733 + 13000 + 0 + 0 + 0 + + + 4734 + 160000 + 0 + 0 + 0 + + + 4735 + 160000 + 0 + 0 + 0 + + + 4736 + 50000 + 0 + 0 + 0 + + + 4737 + 50000 + 0 + 0 + 0 + + + 4738 + 47000 + 0 + 0 + 0 + + + 4739 + 47000 + 0 + 0 + 0 + + + 4740 + 420 + 0 + 0 + 0 + + + 4741 + 1 + 0 + 0 + 0 + + + 4742 + 1 + 0 + 0 + 0 + + + 4743 + 1 + 0 + 0 + 0 + + + 4744 + 1 + 0 + 0 + 0 + + + 4745 + 103000 + 0 + 0 + 0 + + + 4746 + 103000 + 0 + 0 + 0 + + + 4747 + 160000 + 0 + 0 + 0 + + + 4748 + 160000 + 0 + 0 + 0 + + + 4749 + 280000 + 0 + 0 + 0 + + + 4750 + 280000 + 0 + 0 + 0 + + + 4751 + 275000 + 0 + 0 + 0 + + + 4752 + 275000 + 0 + 0 + 0 + + + 4753 + 103000 + 0 + 0 + 0 + + + 4754 + 103000 + 0 + 0 + 0 + + + 4755 + 160000 + 0 + 0 + 0 + + + 4756 + 160000 + 0 + 0 + 0 + + + 4757 + 280000 + 0 + 0 + 0 + + + 4758 + 280000 + 0 + 0 + 0 + + + 4759 + 275000 + 0 + 0 + 0 + + + 4760 + 275000 + 0 + 0 + 0 + + + 4761 + 1 + 0 + 0 + 0 + + + 4762 + 1 + 0 + 0 + 0 + + + 4763 + 1 + 0 + 0 + 0 + + + 4764 + 1 + 0 + 0 + 0 + + + 4765 + 1 + 0 + 0 + 0 + + + 4766 + 1 + 0 + 0 + 0 + + + 4767 + 1 + 0 + 0 + 0 + + + 4768 + 1 + 0 + 0 + 0 + + + 4769 + 1 + 0 + 0 + 0 + + + 4770 + 1 + 0 + 0 + 0 + + + 4771 + 1 + 0 + 0 + 0 + + + 4772 + 1 + 0 + 0 + 0 + + + 4773 + 5 + 0 + 0 + 0 + + + 4774 + 1 + 0 + 0 + 0 + + + 4775 + 1 + 0 + 0 + 0 + + + 4776 + 1 + 0 + 0 + 0 + + + 4777 + 1 + 0 + 0 + 0 + + + 4778 + 10 + 0 + 0 + 0 + + + 4779 + 1 + 0 + 0 + 0 + + + 4780 + 1 + 0 + 0 + 0 + + + 4781 + 1 + 0 + 0 + 0 + + + 4782 + 1 + 0 + 0 + 0 + + + 4783 + 20 + 0 + 0 + 0 + + + 4784 + 1 + 0 + 0 + 0 + + + 4785 + 1 + 0 + 0 + 0 + + + 4786 + 1 + 0 + 0 + 0 + + + 4787 + 1 + 0 + 0 + 0 + + + 4788 + 35 + 0 + 0 + 0 + + + 4789 + 1 + 0 + 0 + 0 + + + 4790 + 1 + 0 + 0 + 0 + + + 4791 + 1 + 0 + 0 + 0 + + + 4792 + 1 + 0 + 0 + 0 + + + 4793 + 50 + 0 + 0 + 0 + + + 4794 + 1 + 0 + 0 + 0 + + + 4795 + 1 + 0 + 0 + 0 + + + 4796 + 1 + 0 + 0 + 0 + + + 4797 + 1 + 0 + 0 + 0 + + + 4798 + 95 + 0 + 0 + 0 + + + 4799 + 1 + 0 + 0 + 0 + + + 4800 + 1 + 0 + 0 + 0 + + + 4801 + 1 + 0 + 0 + 0 + + + 4802 + 1 + 0 + 0 + 0 + + + 4803 + 450 + 0 + 0 + 0 + + + 4804 + 1 + 0 + 0 + 0 + + + 4805 + 1 + 0 + 0 + 0 + + + 4806 + 1 + 0 + 0 + 0 + + + 4807 + 1 + 0 + 0 + 0 + + + 4808 + 1 + 0 + 0 + 0 + + + 4809 + 1 + 0 + 0 + 0 + + + 4810 + 1 + 0 + 0 + 0 + + + 4811 + 1 + 0 + 0 + 0 + + + 4812 + 1 + 0 + 0 + 0 + + + 4813 + 1 + 0 + 0 + 0 + + + 4814 + 1 + 0 + 0 + 0 + + + 4815 + 1 + 0 + 0 + 0 + + + 4816 + 1 + 0 + 0 + 0 + + + 4817 + 1 + 0 + 0 + 0 + + + 4818 + 1 + 0 + 0 + 0 + + + 4819 + 7 + 0 + 0 + 0 + + + 4820 + 33 + 0 + 0 + 0 + + + 4821 + 12 + 0 + 0 + 0 + + + 4822 + 18 + 0 + 0 + 0 + + + 4823 + 45 + 0 + 0 + 0 + + + 4824 + 220 + 0 + 0 + 0 + + + 4825 + 90 + 0 + 0 + 0 + + + 4826 + 90 + 0 + 0 + 0 + + + 4827 + 180 + 0 + 0 + 0 + + + 4828 + 180 + 0 + 0 + 0 + + + 4829 + 1 + 0 + 0 + 0 + + + 4830 + 1 + 0 + 0 + 0 + + + 4831 + 1 + 0 + 0 + 0 + + + 4832 + 1 + 0 + 0 + 0 + + + 4833 + 1 + 0 + 0 + 0 + + + 4834 + 1 + 0 + 0 + 0 + + + 4835 + 1 + 0 + 0 + 0 + + + 4836 + 1 + 0 + 0 + 0 + + + 4837 + 1 + 0 + 0 + 0 + + + 4838 + 10 + 0 + 0 + 0 + + + 4839 + 1 + 0 + 0 + 0 + + + 4840 + 5 + 0 + 0 + 0 + + + 4841 + 5 + 0 + 0 + 0 + + + 4842 + 225 + 0 + 0 + 0 + + + 4843 + 225 + 0 + 0 + 0 + + + 4844 + 200 + 0 + 0 + 0 + + + 4845 + 200 + 0 + 0 + 0 + + + 4846 + 150 + 0 + 0 + 0 + + + 4847 + 150 + 0 + 0 + 0 + + + 4848 + 75 + 0 + 0 + 0 + + + 4849 + 75 + 0 + 0 + 0 + + + 4850 + 100 + 0 + 0 + 0 + + + 4851 + 100 + 0 + 0 + 0 + + + 4852 + 1 + 0 + 0 + 0 + + + 4853 + 1 + 0 + 0 + 0 + + + 4854 + 1 + 0 + 0 + 0 + + + 4855 + 1 + 0 + 0 + 0 + + + 4856 + 13000 + 0 + 0 + 0 + + + 4857 + 13000 + 0 + 0 + 0 + + + 4858 + 13000 + 0 + 0 + 0 + + + 4859 + 13000 + 0 + 0 + 0 + + + 4860 + 13000 + 0 + 0 + 0 + + + 4861 + 13000 + 0 + 0 + 0 + + + 4862 + 85000 + 0 + 0 + 0 + + + 4863 + 85000 + 0 + 0 + 0 + + + 4864 + 85000 + 0 + 0 + 0 + + + 4865 + 85000 + 0 + 0 + 0 + + + 4866 + 85000 + 0 + 0 + 0 + + + 4867 + 85000 + 0 + 0 + 0 + + + 4868 + 50000 + 0 + 0 + 0 + + + 4869 + 50000 + 0 + 0 + 0 + + + 4870 + 50000 + 0 + 0 + 0 + + + 4871 + 50000 + 0 + 0 + 0 + + + 4872 + 50000 + 0 + 0 + 0 + + + 4873 + 50000 + 0 + 0 + 0 + + + 4874 + 47000 + 0 + 0 + 0 + + + 4875 + 47000 + 0 + 0 + 0 + + + 4876 + 47000 + 0 + 0 + 0 + + + 4877 + 47000 + 0 + 0 + 0 + + + 4878 + 47000 + 0 + 0 + 0 + + + 4879 + 47000 + 0 + 0 + 0 + + + 4880 + 103000 + 0 + 0 + 0 + + + 4881 + 103000 + 0 + 0 + 0 + + + 4882 + 103000 + 0 + 0 + 0 + + + 4883 + 103000 + 0 + 0 + 0 + + + 4884 + 103000 + 0 + 0 + 0 + + + 4885 + 103000 + 0 + 0 + 0 + + + 4886 + 208000 + 0 + 0 + 0 + + + 4887 + 208000 + 0 + 0 + 0 + + + 4888 + 208000 + 0 + 0 + 0 + + + 4889 + 208000 + 0 + 0 + 0 + + + 4890 + 208000 + 0 + 0 + 0 + + + 4891 + 208000 + 0 + 0 + 0 + + + 4892 + 280000 + 0 + 0 + 0 + + + 4893 + 280000 + 0 + 0 + 0 + + + 4894 + 280000 + 0 + 0 + 0 + + + 4895 + 280000 + 0 + 0 + 0 + + + 4896 + 280000 + 0 + 0 + 0 + + + 4897 + 280000 + 0 + 0 + 0 + + + 4898 + 275000 + 0 + 0 + 0 + + + 4899 + 275000 + 0 + 0 + 0 + + + 4900 + 275000 + 0 + 0 + 0 + + + 4901 + 275000 + 0 + 0 + 0 + + + 4902 + 275000 + 0 + 0 + 0 + + + 4903 + 275000 + 0 + 0 + 0 + + + 4904 + 103000 + 0 + 0 + 0 + + + 4905 + 103000 + 0 + 0 + 0 + + + 4906 + 103000 + 0 + 0 + 0 + + + 4907 + 103000 + 0 + 0 + 0 + + + 4908 + 103000 + 0 + 0 + 0 + + + 4909 + 103000 + 0 + 0 + 0 + + + 4910 + 100000 + 0 + 0 + 0 + + + 4911 + 100000 + 0 + 0 + 0 + + + 4912 + 100000 + 0 + 0 + 0 + + + 4913 + 100000 + 0 + 0 + 0 + + + 4914 + 100000 + 0 + 0 + 0 + + + 4915 + 100000 + 0 + 0 + 0 + + + 4916 + 280000 + 0 + 0 + 0 + + + 4917 + 280000 + 0 + 0 + 0 + + + 4918 + 280000 + 0 + 0 + 0 + + + 4919 + 280000 + 0 + 0 + 0 + + + 4920 + 280000 + 0 + 0 + 0 + + + 4921 + 280000 + 0 + 0 + 0 + + + 4922 + 275000 + 0 + 0 + 0 + + + 4923 + 275000 + 0 + 0 + 0 + + + 4924 + 275000 + 0 + 0 + 0 + + + 4925 + 275000 + 0 + 0 + 0 + + + 4926 + 275000 + 0 + 0 + 0 + + + 4927 + 275000 + 0 + 0 + 0 + + + 4928 + 13000 + 0 + 0 + 0 + + + 4929 + 13000 + 0 + 0 + 0 + + + 4930 + 13000 + 0 + 0 + 0 + + + 4931 + 13000 + 0 + 0 + 0 + + + 4932 + 13000 + 0 + 0 + 0 + + + 4933 + 13000 + 0 + 0 + 0 + + + 4934 + 160000 + 0 + 0 + 0 + + + 4935 + 160000 + 0 + 0 + 0 + + + 4936 + 160000 + 0 + 0 + 0 + + + 4937 + 160000 + 0 + 0 + 0 + + + 4938 + 160000 + 0 + 0 + 0 + + + 4939 + 160000 + 0 + 0 + 0 + + + 4940 + 50000 + 0 + 0 + 0 + + + 4941 + 50000 + 0 + 0 + 0 + + + 4942 + 50000 + 0 + 0 + 0 + + + 4943 + 50000 + 0 + 0 + 0 + + + 4944 + 50000 + 0 + 0 + 0 + + + 4945 + 50000 + 0 + 0 + 0 + + + 4946 + 47000 + 0 + 0 + 0 + + + 4947 + 47000 + 0 + 0 + 0 + + + 4948 + 47000 + 0 + 0 + 0 + + + 4949 + 47000 + 0 + 0 + 0 + + + 4950 + 47000 + 0 + 0 + 0 + + + 4951 + 47000 + 0 + 0 + 0 + + + 4952 + 103000 + 0 + 0 + 0 + + + 4953 + 103000 + 0 + 0 + 0 + + + 4954 + 103000 + 0 + 0 + 0 + + + 4955 + 103000 + 0 + 0 + 0 + + + 4956 + 103000 + 0 + 0 + 0 + + + 4957 + 103000 + 0 + 0 + 0 + + + 4958 + 160000 + 0 + 0 + 0 + + + 4959 + 160000 + 0 + 0 + 0 + + + 4960 + 160000 + 0 + 0 + 0 + + + 4961 + 160000 + 0 + 0 + 0 + + + 4962 + 160000 + 0 + 0 + 0 + + + 4963 + 160000 + 0 + 0 + 0 + + + 4964 + 280000 + 0 + 0 + 0 + + + 4965 + 280000 + 0 + 0 + 0 + + + 4966 + 280000 + 0 + 0 + 0 + + + 4967 + 280000 + 0 + 0 + 0 + + + 4968 + 280000 + 0 + 0 + 0 + + + 4969 + 280000 + 0 + 0 + 0 + + + 4970 + 275000 + 0 + 0 + 0 + + + 4971 + 275000 + 0 + 0 + 0 + + + 4972 + 275000 + 0 + 0 + 0 + + + 4973 + 275000 + 0 + 0 + 0 + + + 4974 + 275000 + 0 + 0 + 0 + + + 4975 + 275000 + 0 + 0 + 0 + + + 4976 + 103000 + 0 + 0 + 0 + + + 4977 + 103000 + 0 + 0 + 0 + + + 4978 + 103000 + 0 + 0 + 0 + + + 4979 + 103000 + 0 + 0 + 0 + + + 4980 + 103000 + 0 + 0 + 0 + + + 4981 + 103000 + 0 + 0 + 0 + + + 4982 + 160000 + 0 + 0 + 0 + + + 4983 + 160000 + 0 + 0 + 0 + + + 4984 + 160000 + 0 + 0 + 0 + + + 4985 + 160000 + 0 + 0 + 0 + + + 4986 + 160000 + 0 + 0 + 0 + + + 4987 + 160000 + 0 + 0 + 0 + + + 4988 + 280000 + 0 + 0 + 0 + + + 4989 + 280000 + 0 + 0 + 0 + + + 4990 + 280000 + 0 + 0 + 0 + + + 4991 + 280000 + 0 + 0 + 0 + + + 4992 + 280000 + 0 + 0 + 0 + + + 4993 + 280000 + 0 + 0 + 0 + + + 4994 + 275000 + 0 + 0 + 0 + + + 4995 + 275000 + 0 + 0 + 0 + + + 4996 + 275000 + 0 + 0 + 0 + + + 4997 + 275000 + 0 + 0 + 0 + + + 4998 + 275000 + 0 + 0 + 0 + + + 4999 + 275000 + 0 + 0 + 0 + + + 5000 + 1 + 0 + 0 + 0 + + + 5001 + 15 + 0 + 0 + 0 + + + 5002 + 1 + 0 + 0 + 0 + + + 5003 + 15 + 0 + 0 + 0 + + + 5004 + 5 + 0 + 0 + 0 + + + 5005 + 15 + 0 + 0 + 0 + + + 5006 + 1 + 0 + 0 + 0 + + + 5007 + 15 + 0 + 0 + 0 + + + 5008 + 1 + 0 + 0 + 0 + + + 5009 + 1 + 0 + 0 + 0 + + + 5010 + 1 + 0 + 0 + 0 + + + 5011 + 1 + 0 + 0 + 0 + + + 5012 + 1 + 0 + 0 + 0 + + + 5013 + 600 + 0 + 0 + 0 + + + 5014 + 900 + 0 + 0 + 0 + + + 5015 + 900 + 0 + 0 + 0 + + + 5016 + 600 + 0 + 0 + 0 + + + 5017 + 600 + 0 + 0 + 0 + + + 5018 + 600 + 0 + 0 + 0 + + + 5019 + 600 + 0 + 0 + 0 + + + 5020 + 1 + 0 + 0 + 0 + + + 5021 + 1 + 0 + 0 + 0 + + + 5022 + 1 + 0 + 0 + 0 + + + 5023 + 1 + 0 + 0 + 0 + + + 5024 + 650 + 0 + 0 + 0 + + + 5025 + 650 + 0 + 0 + 0 + + + 5026 + 812 + 0 + 0 + 0 + + + 5027 + 812 + 0 + 0 + 0 + + + 5028 + 845 + 0 + 0 + 0 + + + 5029 + 845 + 0 + 0 + 0 + + + 5030 + 585 + 0 + 0 + 0 + + + 5031 + 585 + 0 + 0 + 0 + + + 5032 + 780 + 0 + 0 + 0 + + + 5033 + 780 + 0 + 0 + 0 + + + 5034 + 812 + 0 + 0 + 0 + + + 5035 + 812 + 0 + 0 + 0 + + + 5036 + 715 + 0 + 0 + 0 + + + 5037 + 715 + 0 + 0 + 0 + + + 5038 + 910 + 0 + 0 + 0 + + + 5039 + 910 + 0 + 0 + 0 + + + 5040 + 975 + 0 + 0 + 0 + + + 5041 + 975 + 0 + 0 + 0 + + + 5042 + 364 + 0 + 0 + 0 + + + 5043 + 364 + 0 + 0 + 0 + + + 5044 + 468 + 0 + 0 + 0 + + + 5045 + 468 + 0 + 0 + 0 + + + 5046 + 507 + 0 + 0 + 0 + + + 5047 + 507 + 0 + 0 + 0 + + + 5048 + 455 + 0 + 0 + 0 + + + 5049 + 455 + 0 + 0 + 0 + + + 5050 + 715 + 0 + 0 + 0 + + + 5051 + 715 + 0 + 0 + 0 + + + 5052 + 812 + 0 + 0 + 0 + + + 5053 + 812 + 0 + 0 + 0 + + + 5054 + 1 + 0 + 0 + 0 + + + 5055 + 1 + 0 + 0 + 0 + + + 5056 + 1 + 0 + 0 + 0 + + + 5057 + 1 + 0 + 0 + 0 + + + 5058 + 1 + 0 + 0 + 0 + + + 5059 + 1 + 0 + 0 + 0 + + + 5060 + 1 + 0 + 0 + 0 + + + 5061 + 1 + 0 + 0 + 0 + + + 5062 + 1 + 0 + 0 + 0 + + + 5063 + 1 + 0 + 0 + 0 + + + 5064 + 1 + 0 + 0 + 0 + + + 5065 + 1 + 0 + 0 + 0 + + + 5066 + 1 + 0 + 0 + 0 + + + 5067 + 1 + 0 + 0 + 0 + + + 5068 + 1 + 0 + 0 + 0 + + + 5069 + 1 + 0 + 0 + 0 + + + 5070 + 1 + 0 + 0 + 0 + + + 5071 + 1 + 0 + 0 + 0 + + + 5072 + 1 + 0 + 0 + 0 + + + 5073 + 1 + 0 + 0 + 0 + + + 5074 + 1 + 0 + 0 + 0 + + + 5075 + 1 + 0 + 0 + 0 + + + 5076 + 1 + 0 + 0 + 0 + + + 5077 + 1 + 0 + 0 + 0 + + + 5078 + 1 + 0 + 0 + 0 + + + 5079 + 1 + 0 + 0 + 0 + + + 5080 + 1 + 0 + 0 + 0 + + + 5081 + 1 + 0 + 0 + 0 + + + 5082 + 1 + 0 + 0 + 0 + + + 5083 + 1 + 0 + 0 + 0 + + + 5084 + 1 + 0 + 0 + 0 + + + 5085 + 1 + 0 + 0 + 0 + + + 5086 + 1 + 0 + 0 + 0 + + + 5087 + 1 + 0 + 0 + 0 + + + 5088 + 1 + 0 + 0 + 0 + + + 5089 + 1 + 0 + 0 + 0 + + + 5090 + 1 + 0 + 0 + 0 + + + 5091 + 1 + 0 + 0 + 0 + + + 5092 + 1 + 0 + 0 + 0 + + + 5093 + 1 + 0 + 0 + 0 + + + 5094 + 1 + 0 + 0 + 0 + + + 5095 + 1 + 0 + 0 + 0 + + + 5096 + 84 + 0 + 0 + 0 + + + 5097 + 98 + 0 + 0 + 0 + + + 5098 + 11 + 0 + 0 + 0 + + + 5099 + 11 + 0 + 0 + 0 + + + 5100 + 12 + 0 + 0 + 0 + + + 5101 + 4 + 0 + 0 + 0 + + + 5102 + 9 + 0 + 0 + 0 + + + 5103 + 25 + 0 + 0 + 0 + + + 5104 + 60 + 0 + 0 + 0 + + + 5105 + 133 + 0 + 0 + 0 + + + 5106 + 166 + 0 + 0 + 0 + + + 5107 + 1 + 0 + 0 + 0 + + + 5108 + 1 + 0 + 0 + 0 + + + 5109 + 1 + 0 + 0 + 0 + + + 5110 + 1 + 0 + 0 + 0 + + + 5111 + 1 + 0 + 0 + 0 + + + 5112 + 1 + 0 + 0 + 0 + + + 5113 + 1 + 0 + 0 + 0 + + + 5114 + 1 + 0 + 0 + 0 + + + 5115 + 1 + 0 + 0 + 0 + + + 5116 + 1 + 0 + 0 + 0 + + + 5117 + 1 + 0 + 0 + 0 + + + 5118 + 1 + 0 + 0 + 0 + + + 5119 + 1 + 0 + 0 + 0 + + + 5120 + 1 + 0 + 0 + 0 + + + 5121 + 1 + 0 + 0 + 0 + + + 5122 + 1 + 0 + 0 + 0 + + + 5123 + 1 + 0 + 0 + 0 + + + 5124 + 1 + 0 + 0 + 0 + + + 5125 + 1 + 0 + 0 + 0 + + + 5126 + 1 + 0 + 0 + 0 + + + 5127 + 1 + 0 + 0 + 0 + + + 5128 + 1 + 0 + 0 + 0 + + + 5129 + 1 + 0 + 0 + 0 + + + 5130 + 1 + 0 + 0 + 0 + + + 5131 + 1 + 0 + 0 + 0 + + + 5132 + 1 + 0 + 0 + 0 + + + 5133 + 1 + 0 + 0 + 0 + + + 5134 + 1 + 0 + 0 + 0 + + + 5135 + 1 + 0 + 0 + 0 + + + 5136 + 1 + 0 + 0 + 0 + + + 5137 + 1 + 0 + 0 + 0 + + + 5138 + 1 + 0 + 0 + 0 + + + 5139 + 1 + 0 + 0 + 0 + + + 5140 + 1 + 0 + 0 + 0 + + + 5141 + 1 + 0 + 0 + 0 + + + 5142 + 1 + 0 + 0 + 0 + + + 5143 + 1 + 0 + 0 + 0 + + + 5144 + 1 + 0 + 0 + 0 + + + 5145 + 1 + 0 + 0 + 0 + + + 5146 + 1 + 0 + 0 + 0 + + + 5147 + 1 + 0 + 0 + 0 + + + 5148 + 1 + 0 + 0 + 0 + + + 5149 + 1 + 0 + 0 + 0 + + + 5150 + 1 + 0 + 0 + 0 + + + 5151 + 1 + 0 + 0 + 0 + + + 5152 + 1 + 0 + 0 + 0 + + + 5153 + 1 + 0 + 0 + 0 + + + 5154 + 1 + 0 + 0 + 0 + + + 5155 + 1 + 0 + 0 + 0 + + + 5156 + 1 + 0 + 0 + 0 + + + 5157 + 1 + 0 + 0 + 0 + + + 5158 + 1 + 0 + 0 + 0 + + + 5159 + 1 + 0 + 0 + 0 + + + 5160 + 1 + 0 + 0 + 0 + + + 5161 + 1 + 0 + 0 + 0 + + + 5162 + 1 + 0 + 0 + 0 + + + 5163 + 1 + 0 + 0 + 0 + + + 5164 + 1 + 0 + 0 + 0 + + + 5165 + 1 + 0 + 0 + 0 + + + 5166 + 1 + 0 + 0 + 0 + + + 5167 + 1 + 0 + 0 + 0 + + + 5168 + 1 + 0 + 0 + 0 + + + 5169 + 1 + 0 + 0 + 0 + + + 5170 + 1 + 0 + 0 + 0 + + + 5171 + 1 + 0 + 0 + 0 + + + 5172 + 1 + 0 + 0 + 0 + + + 5173 + 1 + 0 + 0 + 0 + + + 5174 + 1 + 0 + 0 + 0 + + + 5175 + 1 + 0 + 0 + 0 + + + 5176 + 1 + 0 + 0 + 0 + + + 5177 + 1 + 0 + 0 + 0 + + + 5178 + 1 + 0 + 0 + 0 + + + 5179 + 1 + 0 + 0 + 0 + + + 5180 + 1 + 0 + 0 + 0 + + + 5181 + 1 + 0 + 0 + 0 + + + 5182 + 1 + 0 + 0 + 0 + + + 5183 + 1 + 0 + 0 + 0 + + + 5184 + 1 + 0 + 0 + 0 + + + 5185 + 1 + 0 + 0 + 0 + + + 5186 + 1 + 0 + 0 + 0 + + + 5187 + 1 + 0 + 0 + 0 + + + 5188 + 1 + 0 + 0 + 0 + + + 5189 + 1 + 0 + 0 + 0 + + + 5190 + 1 + 0 + 0 + 0 + + + 5191 + 1 + 0 + 0 + 0 + + + 5192 + 1 + 0 + 0 + 0 + + + 5193 + 1 + 0 + 0 + 0 + + + 5194 + 1 + 0 + 0 + 0 + + + 5195 + 1 + 0 + 0 + 0 + + + 5196 + 1 + 0 + 0 + 0 + + + 5197 + 1 + 0 + 0 + 0 + + + 5198 + 1 + 0 + 0 + 0 + + + 5199 + 1 + 0 + 0 + 0 + + + 5200 + 1 + 0 + 0 + 0 + + + 5201 + 1 + 0 + 0 + 0 + + + 5202 + 1 + 0 + 0 + 0 + + + 5203 + 1 + 0 + 0 + 0 + + + 5204 + 1 + 0 + 0 + 0 + + + 5205 + 1 + 0 + 0 + 0 + + + 5206 + 1 + 0 + 0 + 0 + + + 5207 + 1 + 0 + 0 + 0 + + + 5208 + 1 + 0 + 0 + 0 + + + 5209 + 1 + 0 + 0 + 0 + + + 5210 + 1 + 0 + 0 + 0 + + + 5211 + 1 + 0 + 0 + 0 + + + 5212 + 1 + 0 + 0 + 0 + + + 5213 + 1 + 0 + 0 + 0 + + + 5214 + 1 + 0 + 0 + 0 + + + 5215 + 1 + 0 + 0 + 0 + + + 5216 + 1 + 0 + 0 + 0 + + + 5217 + 1 + 0 + 0 + 0 + + + 5218 + 1 + 0 + 0 + 0 + + + 5219 + 1 + 0 + 0 + 0 + + + 5220 + 1 + 0 + 0 + 0 + + + 5221 + 1 + 0 + 0 + 0 + + + 5222 + 1 + 0 + 0 + 0 + + + 5223 + 1 + 0 + 0 + 0 + + + 5224 + 1 + 0 + 0 + 0 + + + 5225 + 1 + 0 + 0 + 0 + + + 5226 + 1 + 0 + 0 + 0 + + + 5227 + 1 + 0 + 0 + 0 + + + 5228 + 1 + 0 + 0 + 0 + + + 5229 + 1 + 0 + 0 + 0 + + + 5230 + 1 + 0 + 0 + 0 + + + 5231 + 1 + 0 + 0 + 0 + + + 5232 + 1 + 0 + 0 + 0 + + + 5233 + 1 + 0 + 0 + 0 + + + 5234 + 1 + 0 + 0 + 0 + + + 5235 + 1 + 0 + 0 + 0 + + + 5236 + 1 + 0 + 0 + 0 + + + 5237 + 1 + 0 + 0 + 0 + + + 5238 + 1 + 0 + 0 + 0 + + + 5239 + 1 + 0 + 0 + 0 + + + 5240 + 1 + 0 + 0 + 0 + + + 5241 + 1 + 0 + 0 + 0 + + + 5242 + 1 + 0 + 0 + 0 + + + 5243 + 1 + 0 + 0 + 0 + + + 5244 + 1 + 0 + 0 + 0 + + + 5245 + 1 + 0 + 0 + 0 + + + 5246 + 1 + 0 + 0 + 0 + + + 5247 + 1 + 0 + 0 + 0 + + + 5248 + 1 + 0 + 0 + 0 + + + 5249 + 1 + 0 + 0 + 0 + + + 5250 + 1 + 0 + 0 + 0 + + + 5251 + 1 + 0 + 0 + 0 + + + 5252 + 1 + 0 + 0 + 0 + + + 5253 + 1 + 0 + 0 + 0 + + + 5254 + 1 + 0 + 0 + 0 + + + 5255 + 1 + 0 + 0 + 0 + + + 5256 + 1 + 0 + 0 + 0 + + + 5257 + 1 + 0 + 0 + 0 + + + 5258 + 1 + 0 + 0 + 0 + + + 5259 + 1 + 0 + 0 + 0 + + + 5260 + 1 + 0 + 0 + 0 + + + 5261 + 1 + 0 + 0 + 0 + + + 5262 + 1 + 0 + 0 + 0 + + + 5263 + 1 + 0 + 0 + 0 + + + 5264 + 1 + 0 + 0 + 0 + + + 5265 + 1 + 0 + 0 + 0 + + + 5266 + 1 + 0 + 0 + 0 + + + 5267 + 1 + 0 + 0 + 0 + + + 5268 + 1 + 0 + 0 + 0 + + + 5269 + 1 + 0 + 0 + 0 + + + 5270 + 1 + 0 + 0 + 0 + + + 5271 + 1 + 0 + 0 + 0 + + + 5272 + 1 + 0 + 0 + 0 + + + 5273 + 1 + 0 + 0 + 0 + + + 5274 + 1 + 0 + 0 + 0 + + + 5275 + 1 + 0 + 0 + 0 + + + 5276 + 1 + 0 + 0 + 0 + + + 5277 + 1 + 0 + 0 + 0 + + + 5278 + 1 + 0 + 0 + 0 + + + 5279 + 1 + 0 + 0 + 0 + + + 5280 + 99 + 0 + 0 + 0 + + + 5281 + 177 + 0 + 0 + 0 + + + 5282 + 86 + 0 + 0 + 0 + + + 5283 + 13 + 0 + 0 + 0 + + + 5284 + 20 + 0 + 0 + 0 + + + 5285 + 31 + 0 + 0 + 0 + + + 5286 + 39 + 0 + 0 + 0 + + + 5287 + 74 + 0 + 0 + 0 + + + 5288 + 115 + 0 + 0 + 0 + + + 5289 + 254 + 0 + 0 + 0 + + + 5290 + 340 + 0 + 0 + 0 + + + 5291 + 4 + 0 + 0 + 0 + + + 5292 + 5 + 0 + 0 + 0 + + + 5293 + 7 + 0 + 0 + 0 + + + 5294 + 12 + 0 + 0 + 0 + + + 5295 + 19 + 0 + 0 + 0 + + + 5296 + 34 + 0 + 0 + 0 + + + 5297 + 64 + 0 + 0 + 0 + + + 5298 + 64 + 0 + 0 + 0 + + + 5299 + 64 + 0 + 0 + 0 + + + 5300 + 64 + 0 + 0 + 0 + + + 5301 + 64 + 0 + 0 + 0 + + + 5302 + 64 + 0 + 0 + 0 + + + 5303 + 64 + 0 + 0 + 0 + + + 5304 + 64 + 0 + 0 + 0 + + + 5305 + 38 + 0 + 0 + 0 + + + 5306 + 86 + 0 + 0 + 0 + + + 5307 + 52 + 0 + 0 + 0 + + + 5308 + 60 + 0 + 0 + 0 + + + 5309 + 210 + 0 + 0 + 0 + + + 5310 + 8 + 0 + 0 + 0 + + + 5311 + 14 + 0 + 0 + 0 + + + 5312 + 6 + 0 + 0 + 0 + + + 5313 + 16 + 0 + 0 + 0 + + + 5314 + 48 + 0 + 0 + 0 + + + 5315 + 143 + 0 + 0 + 0 + + + 5316 + 422 + 0 + 0 + 0 + + + 5317 + 1 + 0 + 0 + 0 + + + 5318 + 8 + 0 + 0 + 0 + + + 5319 + 10 + 0 + 0 + 0 + + + 5320 + 8 + 0 + 0 + 0 + + + 5321 + 56 + 0 + 0 + 0 + + + 5322 + 4 + 0 + 0 + 0 + + + 5323 + 18 + 0 + 0 + 0 + + + 5324 + 25 + 0 + 0 + 0 + + + 5325 + 12 + 0 + 0 + 0 + + + 5326 + 12 + 0 + 0 + 0 + + + 5327 + 1 + 0 + 0 + 0 + + + 5328 + 1 + 0 + 0 + 0 + + + 5329 + 5 + 0 + 0 + 0 + + + 5330 + 5 + 0 + 0 + 0 + + + 5331 + 8 + 0 + 0 + 0 + + + 5332 + 8 + 0 + 0 + 0 + + + 5333 + 1 + 0 + 0 + 0 + + + 5334 + 1 + 0 + 0 + 0 + + + 5335 + 1 + 0 + 0 + 0 + + + 5336 + 1 + 0 + 0 + 0 + + + 5337 + 1 + 0 + 0 + 0 + + + 5338 + 1 + 0 + 0 + 0 + + + 5339 + 1 + 0 + 0 + 0 + + + 5340 + 1 + 0 + 0 + 0 + + + 5341 + 6 + 0 + 0 + 0 + + + 5342 + 6 + 0 + 0 + 0 + + + 5343 + 6 + 0 + 0 + 0 + + + 5344 + 6 + 0 + 0 + 0 + + + 5345 + 25 + 0 + 0 + 0 + + + 5346 + 25 + 0 + 0 + 0 + + + 5347 + 1 + 0 + 0 + 0 + + + 5348 + 1 + 0 + 0 + 0 + + + 5349 + 1 + 0 + 0 + 0 + + + 5350 + 1 + 0 + 0 + 0 + + + 5351 + 1 + 0 + 0 + 0 + + + 5352 + 1 + 0 + 0 + 0 + + + 5353 + 1 + 0 + 0 + 0 + + + 5354 + 1 + 0 + 0 + 0 + + + 5355 + 1 + 0 + 0 + 0 + + + 5356 + 1 + 0 + 0 + 0 + + + 5357 + 1 + 0 + 0 + 0 + + + 5358 + 1 + 0 + 0 + 0 + + + 5359 + 1 + 0 + 0 + 0 + + + 5360 + 1 + 0 + 0 + 0 + + + 5361 + 1 + 0 + 0 + 0 + + + 5362 + 1 + 0 + 0 + 0 + + + 5363 + 1 + 0 + 0 + 0 + + + 5364 + 1 + 0 + 0 + 0 + + + 5365 + 1 + 0 + 0 + 0 + + + 5366 + 1 + 0 + 0 + 0 + + + 5367 + 1 + 0 + 0 + 0 + + + 5368 + 1 + 0 + 0 + 0 + + + 5369 + 1 + 0 + 0 + 0 + + + 5370 + 1 + 0 + 0 + 0 + + + 5371 + 1 + 0 + 0 + 0 + + + 5372 + 1 + 0 + 0 + 0 + + + 5373 + 1 + 0 + 0 + 0 + + + 5374 + 1 + 0 + 0 + 0 + + + 5375 + 1 + 0 + 0 + 0 + + + 5376 + 1 + 0 + 0 + 0 + + + 5377 + 1 + 0 + 0 + 0 + + + 5378 + 1 + 0 + 0 + 0 + + + 5379 + 1 + 0 + 0 + 0 + + + 5380 + 1 + 0 + 0 + 0 + + + 5381 + 1 + 0 + 0 + 0 + + + 5382 + 1 + 0 + 0 + 0 + + + 5383 + 1 + 0 + 0 + 0 + + + 5384 + 1 + 0 + 0 + 0 + + + 5385 + 1 + 0 + 0 + 0 + + + 5386 + 1 + 0 + 0 + 0 + + + 5387 + 1 + 0 + 0 + 0 + + + 5388 + 1 + 0 + 0 + 0 + + + 5389 + 1 + 0 + 0 + 0 + + + 5390 + 1 + 0 + 0 + 0 + + + 5391 + 1 + 0 + 0 + 0 + + + 5392 + 1 + 0 + 0 + 0 + + + 5393 + 1 + 0 + 0 + 0 + + + 5394 + 1 + 0 + 0 + 0 + + + 5395 + 1 + 0 + 0 + 0 + + + 5396 + 1 + 0 + 0 + 0 + + + 5397 + 1 + 0 + 0 + 0 + + + 5398 + 1 + 0 + 0 + 0 + + + 5399 + 1 + 0 + 0 + 0 + + + 5400 + 1 + 0 + 0 + 0 + + + 5401 + 1 + 0 + 0 + 0 + + + 5402 + 1 + 0 + 0 + 0 + + + 5403 + 1 + 0 + 0 + 0 + + + 5404 + 1 + 0 + 0 + 0 + + + 5405 + 1 + 0 + 0 + 0 + + + 5406 + 1 + 0 + 0 + 0 + + + 5407 + 1 + 0 + 0 + 0 + + + 5408 + 1 + 0 + 0 + 0 + + + 5409 + 1 + 0 + 0 + 0 + + + 5410 + 1 + 0 + 0 + 0 + + + 5411 + 1 + 0 + 0 + 0 + + + 5412 + 1 + 0 + 0 + 0 + + + 5413 + 1 + 0 + 0 + 0 + + + 5414 + 1 + 0 + 0 + 0 + + + 5415 + 1 + 0 + 0 + 0 + + + 5416 + 1 + 0 + 0 + 0 + + + 5417 + 1 + 0 + 0 + 0 + + + 5418 + 1 + 0 + 0 + 0 + + + 5419 + 1 + 0 + 0 + 0 + + + 5420 + 1 + 0 + 0 + 0 + + + 5421 + 1 + 0 + 0 + 0 + + + 5422 + 1 + 0 + 0 + 0 + + + 5423 + 1 + 0 + 0 + 0 + + + 5424 + 1 + 0 + 0 + 0 + + + 5425 + 1 + 0 + 0 + 0 + + + 5426 + 1 + 0 + 0 + 0 + + + 5427 + 1 + 0 + 0 + 0 + + + 5428 + 1 + 0 + 0 + 0 + + + 5429 + 1 + 0 + 0 + 0 + + + 5430 + 1 + 0 + 0 + 0 + + + 5431 + 1 + 0 + 0 + 0 + + + 5432 + 1 + 0 + 0 + 0 + + + 5433 + 1 + 0 + 0 + 0 + + + 5434 + 1 + 0 + 0 + 0 + + + 5435 + 1 + 0 + 0 + 0 + + + 5436 + 1 + 0 + 0 + 0 + + + 5437 + 1 + 0 + 0 + 0 + + + 5438 + 1 + 0 + 0 + 0 + + + 5439 + 1 + 0 + 0 + 0 + + + 5440 + 1 + 0 + 0 + 0 + + + 5441 + 1 + 0 + 0 + 0 + + + 5442 + 1 + 0 + 0 + 0 + + + 5443 + 1 + 0 + 0 + 0 + + + 5444 + 1 + 0 + 0 + 0 + + + 5445 + 1 + 0 + 0 + 0 + + + 5446 + 1 + 0 + 0 + 0 + + + 5447 + 1 + 0 + 0 + 0 + + + 5448 + 1 + 0 + 0 + 0 + + + 5449 + 1 + 0 + 0 + 0 + + + 5450 + 1 + 0 + 0 + 0 + + + 5451 + 1 + 0 + 0 + 0 + + + 5452 + 1 + 0 + 0 + 0 + + + 5453 + 1 + 0 + 0 + 0 + + + 5454 + 1 + 0 + 0 + 0 + + + 5455 + 1 + 0 + 0 + 0 + + + 5456 + 1 + 0 + 0 + 0 + + + 5457 + 1 + 0 + 0 + 0 + + + 5458 + 1 + 0 + 0 + 0 + + + 5459 + 1 + 0 + 0 + 0 + + + 5460 + 1 + 0 + 0 + 0 + + + 5461 + 1 + 0 + 0 + 0 + + + 5462 + 1 + 0 + 0 + 0 + + + 5463 + 1 + 0 + 0 + 0 + + + 5464 + 1 + 0 + 0 + 0 + + + 5465 + 1 + 0 + 0 + 0 + + + 5466 + 1 + 0 + 0 + 0 + + + 5467 + 1 + 0 + 0 + 0 + + + 5468 + 1 + 0 + 0 + 0 + + + 5469 + 1 + 0 + 0 + 0 + + + 5470 + 1 + 0 + 0 + 0 + + + 5471 + 1 + 0 + 0 + 0 + + + 5472 + 1 + 0 + 0 + 0 + + + 5473 + 1 + 0 + 0 + 0 + + + 5474 + 1 + 0 + 0 + 0 + + + 5475 + 1 + 0 + 0 + 0 + + + 5476 + 1 + 0 + 0 + 0 + + + 5477 + 1 + 0 + 0 + 0 + + + 5478 + 1 + 0 + 0 + 0 + + + 5479 + 1 + 0 + 0 + 0 + + + 5480 + 1 + 0 + 0 + 0 + + + 5481 + 1 + 0 + 0 + 0 + + + 5482 + 1 + 0 + 0 + 0 + + + 5483 + 1 + 0 + 0 + 0 + + + 5484 + 1 + 0 + 0 + 0 + + + 5485 + 1 + 0 + 0 + 0 + + + 5486 + 1 + 0 + 0 + 0 + + + 5487 + 1 + 0 + 0 + 0 + + + 5488 + 1 + 0 + 0 + 0 + + + 5489 + 1 + 0 + 0 + 0 + + + 5490 + 1 + 0 + 0 + 0 + + + 5491 + 1 + 0 + 0 + 0 + + + 5492 + 1 + 0 + 0 + 0 + + + 5493 + 1 + 0 + 0 + 0 + + + 5494 + 1 + 0 + 0 + 0 + + + 5495 + 1 + 0 + 0 + 0 + + + 5496 + 1 + 0 + 0 + 0 + + + 5497 + 1 + 0 + 0 + 0 + + + 5498 + 1 + 0 + 0 + 0 + + + 5499 + 1 + 0 + 0 + 0 + + + 5500 + 1 + 0 + 0 + 0 + + + 5501 + 1 + 0 + 0 + 0 + + + 5502 + 1 + 0 + 0 + 0 + + + 5503 + 1 + 0 + 0 + 0 + + + 5504 + 17 + 0 + 0 + 0 + + + 5505 + 17 + 0 + 0 + 0 + + + 5506 + 1 + 0 + 0 + 0 + + + 5507 + 1 + 0 + 0 + 0 + + + 5508 + 1 + 0 + 0 + 0 + + + 5509 + 150 + 0 + 0 + 0 + + + 5510 + 300 + 0 + 0 + 0 + + + 5511 + 300 + 0 + 0 + 0 + + + 5512 + 600 + 0 + 0 + 0 + + + 5513 + 600 + 0 + 0 + 0 + + + 5514 + 1200 + 0 + 0 + 0 + + + 5515 + 1200 + 0 + 0 + 0 + + + 5516 + 500 + 0 + 0 + 0 + + + 5517 + 500 + 0 + 0 + 0 + + + 5518 + 1 + 0 + 0 + 0 + + + 5519 + 1 + 0 + 0 + 0 + + + 5520 + 10 + 0 + 0 + 0 + + + 5521 + 1425 + 0 + 0 + 0 + + + 5522 + 1425 + 0 + 0 + 0 + + + 5523 + 100 + 0 + 0 + 0 + + + 5524 + 100 + 0 + 0 + 0 + + + 5525 + 100 + 0 + 0 + 0 + + + 5526 + 100 + 0 + 0 + 0 + + + 5527 + 100 + 0 + 0 + 0 + + + 5528 + 100 + 0 + 0 + 0 + + + 5529 + 100 + 0 + 0 + 0 + + + 5530 + 100 + 0 + 0 + 0 + + + 5531 + 100 + 0 + 0 + 0 + + + 5532 + 100 + 0 + 0 + 0 + + + 5533 + 100 + 0 + 0 + 0 + + + 5534 + 100 + 0 + 0 + 0 + + + 5535 + 100 + 0 + 0 + 0 + + + 5536 + 100 + 0 + 0 + 0 + + + 5537 + 100 + 0 + 0 + 0 + + + 5538 + 100 + 0 + 0 + 0 + + + 5539 + 100 + 0 + 0 + 0 + + + 5540 + 100 + 0 + 0 + 0 + + + 5541 + 100 + 0 + 0 + 0 + + + 5542 + 100 + 0 + 0 + 0 + + + 5543 + 100 + 0 + 0 + 0 + + + 5544 + 100 + 0 + 0 + 0 + + + 5545 + 100 + 0 + 0 + 0 + + + 5546 + 100 + 0 + 0 + 0 + + + 5547 + 100 + 0 + 0 + 0 + + + 5548 + 100 + 0 + 0 + 0 + + + 5549 + 100 + 0 + 0 + 0 + + + 5550 + 100 + 0 + 0 + 0 + + + 5551 + 100 + 0 + 0 + 0 + + + 5552 + 100 + 0 + 0 + 0 + + + 5553 + 625 + 0 + 0 + 0 + + + 5554 + 375 + 0 + 0 + 0 + + + 5555 + 500 + 0 + 0 + 0 + + + 5556 + 250 + 0 + 0 + 0 + + + 5557 + 250 + 0 + 0 + 0 + + + 5558 + 50 + 0 + 0 + 0 + + + 5559 + 1 + 0 + 0 + 0 + + + 5560 + 10 + 0 + 0 + 0 + + + 5561 + 1 + 0 + 0 + 0 + + + 5562 + 1 + 0 + 0 + 0 + + + 5563 + 1 + 0 + 0 + 0 + + + 5564 + 1 + 0 + 0 + 0 + + + 5565 + 1 + 0 + 0 + 0 + + + 5566 + 1 + 0 + 0 + 0 + + + 5567 + 1 + 0 + 0 + 0 + + + 5568 + 1 + 0 + 0 + 0 + + + 5569 + 1 + 0 + 0 + 0 + + + 5570 + 1 + 0 + 0 + 0 + + + 5571 + 1 + 0 + 0 + 0 + + + 5572 + 1 + 0 + 0 + 0 + + + 5573 + 1 + 0 + 0 + 0 + + + 5574 + 6000 + 0 + 0 + 0 + + + 5575 + 10000 + 0 + 0 + 0 + + + 5576 + 8000 + 0 + 0 + 0 + + + 5577 + 1 + 0 + 0 + 0 + + + 5578 + 1 + 0 + 0 + 0 + + + 5579 + 1 + 0 + 0 + 0 + + + 5580 + 1 + 0 + 0 + 0 + + + 5581 + 1 + 0 + 0 + 0 + + + 5582 + 1 + 0 + 0 + 0 + + + 5583 + 1 + 0 + 0 + 0 + + + 5584 + 1 + 0 + 0 + 0 + + + 5585 + 1 + 0 + 0 + 0 + + + 5586 + 1 + 0 + 0 + 0 + + + 5587 + 1 + 0 + 0 + 0 + + + 5588 + 1 + 0 + 0 + 0 + + + 5589 + 1 + 0 + 0 + 0 + + + 5590 + 1 + 0 + 0 + 0 + + + 5591 + 1 + 0 + 0 + 0 + + + 5592 + 10 + 0 + 0 + 0 + + + 5593 + 20 + 0 + 0 + 0 + + + 5594 + 20 + 0 + 0 + 0 + + + 5595 + 20 + 0 + 0 + 0 + + + 5596 + 20 + 0 + 0 + 0 + + + 5597 + 20 + 0 + 0 + 0 + + + 5598 + 20 + 0 + 0 + 0 + + + 5599 + 20 + 0 + 0 + 0 + + + 5600 + 20 + 0 + 0 + 0 + + + 5601 + 1 + 0 + 0 + 0 + + + 5602 + 20 + 0 + 0 + 0 + + + 5603 + 1 + 0 + 0 + 0 + + + 5604 + 3 + 0 + 0 + 0 + + + 5605 + 6 + 0 + 0 + 0 + + + 5606 + 1 + 0 + 0 + 0 + + + 5607 + 1 + 0 + 0 + 0 + + + 5608 + 1 + 0 + 0 + 0 + + + 5609 + 1 + 0 + 0 + 0 + + + 5610 + 1 + 0 + 0 + 0 + + + 5611 + 6000 + 0 + 0 + 0 + + + 5612 + 10000 + 0 + 0 + 0 + + + 5613 + 8000 + 0 + 0 + 0 + + + 5614 + 1 + 0 + 0 + 0 + + + 5615 + 1 + 0 + 0 + 0 + + + 5616 + 1 + 0 + 0 + 0 + + + 5617 + 3 + 0 + 0 + 0 + + + 5618 + 12 + 0 + 0 + 0 + + + 5619 + 32 + 0 + 0 + 0 + + + 5620 + 80 + 0 + 0 + 0 + + + 5621 + 400 + 0 + 0 + 0 + + + 5622 + 1 + 0 + 0 + 0 + + + 5623 + 3 + 0 + 0 + 0 + + + 5624 + 12 + 0 + 0 + 0 + + + 5625 + 32 + 0 + 0 + 0 + + + 5626 + 80 + 0 + 0 + 0 + + + 5627 + 400 + 0 + 0 + 0 + + + 5628 + 1 + 0 + 0 + 0 + + + 5629 + 2 + 0 + 0 + 0 + + + 5630 + 10 + 0 + 0 + 0 + + + 5631 + 18 + 0 + 0 + 0 + + + 5632 + 25 + 0 + 0 + 0 + + + 5633 + 65 + 0 + 0 + 0 + + + 5634 + 350 + 0 + 0 + 0 + + + 5635 + 1 + 0 + 0 + 0 + + + 5636 + 2 + 0 + 0 + 0 + + + 5637 + 10 + 0 + 0 + 0 + + + 5638 + 18 + 0 + 0 + 0 + + + 5639 + 25 + 0 + 0 + 0 + + + 5640 + 65 + 0 + 0 + 0 + + + 5641 + 350 + 0 + 0 + 0 + + + 5642 + 4 + 0 + 0 + 0 + + + 5643 + 6 + 0 + 0 + 0 + + + 5644 + 24 + 0 + 0 + 0 + + + 5645 + 64 + 0 + 0 + 0 + + + 5646 + 160 + 0 + 0 + 0 + + + 5647 + 400 + 0 + 0 + 0 + + + 5648 + 4 + 0 + 0 + 0 + + + 5649 + 6 + 0 + 0 + 0 + + + 5650 + 24 + 0 + 0 + 0 + + + 5651 + 64 + 0 + 0 + 0 + + + 5652 + 160 + 0 + 0 + 0 + + + 5653 + 400 + 0 + 0 + 0 + + + 5654 + 1 + 0 + 0 + 0 + + + 5655 + 3 + 0 + 0 + 0 + + + 5656 + 10 + 0 + 0 + 0 + + + 5657 + 27 + 0 + 0 + 0 + + + 5658 + 18 + 0 + 0 + 0 + + + 5659 + 66 + 0 + 0 + 0 + + + 5660 + 166 + 0 + 0 + 0 + + + 5661 + 1 + 0 + 0 + 0 + + + 5662 + 3 + 0 + 0 + 0 + + + 5663 + 10 + 0 + 0 + 0 + + + 5664 + 27 + 0 + 0 + 0 + + + 5665 + 18 + 0 + 0 + 0 + + + 5666 + 66 + 0 + 0 + 0 + + + 5667 + 166 + 0 + 0 + 0 + + + 5668 + 35 + 0 + 0 + 0 + + + 5669 + 35 + 0 + 0 + 0 + + + 5670 + 10 + 0 + 0 + 0 + + + 5671 + 10 + 0 + 0 + 0 + + + 5672 + 125 + 0 + 0 + 0 + + + 5673 + 125 + 0 + 0 + 0 + + + 5674 + 325 + 0 + 0 + 0 + + + 5675 + 325 + 0 + 0 + 0 + + + 5676 + 800 + 0 + 0 + 0 + + + 5677 + 800 + 0 + 0 + 0 + + + 5678 + 8000 + 0 + 0 + 0 + + + 5679 + 8000 + 0 + 0 + 0 + + + 5680 + 24000 + 0 + 0 + 0 + + + 5681 + 24000 + 0 + 0 + 0 + + + 5682 + 240 + 0 + 0 + 0 + + + 5683 + 240 + 0 + 0 + 0 + + + 5684 + 565 + 0 + 0 + 0 + + + 5685 + 565 + 0 + 0 + 0 + + + 5686 + 35 + 0 + 0 + 0 + + + 5687 + 35 + 0 + 0 + 0 + + + 5688 + 10 + 0 + 0 + 0 + + + 5689 + 10 + 0 + 0 + 0 + + + 5690 + 125 + 0 + 0 + 0 + + + 5691 + 125 + 0 + 0 + 0 + + + 5692 + 325 + 0 + 0 + 0 + + + 5693 + 325 + 0 + 0 + 0 + + + 5694 + 800 + 0 + 0 + 0 + + + 5695 + 800 + 0 + 0 + 0 + + + 5696 + 8000 + 0 + 0 + 0 + + + 5697 + 8000 + 0 + 0 + 0 + + + 5698 + 24000 + 0 + 0 + 0 + + + 5699 + 24000 + 0 + 0 + 0 + + + 5700 + 240 + 0 + 0 + 0 + + + 5701 + 240 + 0 + 0 + 0 + + + 5702 + 565 + 0 + 0 + 0 + + + 5703 + 565 + 0 + 0 + 0 + + + 5704 + 26 + 0 + 0 + 0 + + + 5705 + 26 + 0 + 0 + 0 + + + 5706 + 91 + 0 + 0 + 0 + + + 5707 + 91 + 0 + 0 + 0 + + + 5708 + 325 + 0 + 0 + 0 + + + 5709 + 325 + 0 + 0 + 0 + + + 5710 + 845 + 0 + 0 + 0 + + + 5711 + 845 + 0 + 0 + 0 + + + 5712 + 2080 + 0 + 0 + 0 + + + 5713 + 2080 + 0 + 0 + 0 + + + 5714 + 20800 + 0 + 0 + 0 + + + 5715 + 20800 + 0 + 0 + 0 + + + 5716 + 62400 + 0 + 0 + 0 + + + 5717 + 62400 + 0 + 0 + 0 + + + 5718 + 26 + 0 + 0 + 0 + + + 5719 + 26 + 0 + 0 + 0 + + + 5720 + 91 + 0 + 0 + 0 + + + 5721 + 91 + 0 + 0 + 0 + + + 5722 + 325 + 0 + 0 + 0 + + + 5723 + 325 + 0 + 0 + 0 + + + 5724 + 845 + 0 + 0 + 0 + + + 5725 + 845 + 0 + 0 + 0 + + + 5726 + 2080 + 0 + 0 + 0 + + + 5727 + 2080 + 0 + 0 + 0 + + + 5728 + 20800 + 0 + 0 + 0 + + + 5729 + 20800 + 0 + 0 + 0 + + + 5730 + 62400 + 0 + 0 + 0 + + + 5731 + 62400 + 0 + 0 + 0 + + + 5732 + 1 + 0 + 0 + 0 + + + 5733 + 1 + 0 + 0 + 0 + + + 5734 + 750 + 0 + 0 + 0 + + + 5735 + 750 + 0 + 0 + 0 + + + 5736 + 750 + 0 + 0 + 0 + + + 5737 + 750 + 0 + 0 + 0 + + + 5738 + 1 + 0 + 0 + 0 + + + 5739 + 2 + 0 + 0 + 0 + + + 5740 + 2 + 0 + 0 + 0 + + + 5741 + 2 + 0 + 0 + 0 + + + 5742 + 2 + 0 + 0 + 0 + + + 5743 + 2 + 0 + 0 + 0 + + + 5744 + 2 + 0 + 0 + 0 + + + 5745 + 2 + 0 + 0 + 0 + + + 5746 + 2 + 0 + 0 + 0 + + + 5747 + 2 + 0 + 0 + 0 + + + 5748 + 2 + 0 + 0 + 0 + + + 5749 + 5 + 0 + 0 + 0 + + + 5750 + 5 + 0 + 0 + 0 + + + 5751 + 2 + 0 + 0 + 0 + + + 5752 + 2 + 0 + 0 + 0 + + + 5753 + 2 + 0 + 0 + 0 + + + 5754 + 2 + 0 + 0 + 0 + + + 5755 + 2 + 0 + 0 + 0 + + + 5756 + 2 + 0 + 0 + 0 + + + 5757 + 2 + 0 + 0 + 0 + + + 5758 + 2 + 0 + 0 + 0 + + + 5759 + 2 + 0 + 0 + 0 + + + 5760 + 2 + 0 + 0 + 0 + + + 5761 + 2 + 0 + 0 + 0 + + + 5762 + 2 + 0 + 0 + 0 + + + 5763 + 2 + 0 + 0 + 0 + + + 5764 + 2 + 0 + 0 + 0 + + + 5765 + 2 + 0 + 0 + 0 + + + 5766 + 2 + 0 + 0 + 0 + + + 5767 + 1 + 0 + 0 + 0 + + + 5768 + 1 + 0 + 0 + 0 + + + 5769 + 1 + 0 + 0 + 0 + + + 5770 + 1 + 0 + 0 + 0 + + + 5771 + 1 + 0 + 0 + 0 + + + 5772 + 1 + 0 + 0 + 0 + + + 5773 + 1 + 0 + 0 + 0 + + + 5774 + 1 + 0 + 0 + 0 + + + 5775 + 1 + 0 + 0 + 0 + + + 5776 + 1 + 0 + 0 + 0 + + + 5777 + 1 + 0 + 0 + 0 + + + 5778 + 1 + 0 + 0 + 0 + + + 5779 + 1 + 0 + 0 + 0 + + + 5780 + 1 + 0 + 0 + 0 + + + 5781 + 1 + 0 + 0 + 0 + + + 5782 + 1 + 0 + 0 + 0 + + + 5783 + 1 + 0 + 0 + 0 + + + 5784 + 1 + 0 + 0 + 0 + + + 5785 + 1 + 0 + 0 + 0 + + + 5786 + 1 + 0 + 0 + 0 + + + 5787 + 1 + 0 + 0 + 0 + + + 5788 + 1 + 0 + 0 + 0 + + + 5789 + 1 + 0 + 0 + 0 + + + 5790 + 1 + 0 + 0 + 0 + + + 5791 + 1 + 0 + 0 + 0 + + + 5792 + 1 + 0 + 0 + 0 + + + 5793 + 1 + 0 + 0 + 0 + + + 5794 + 1 + 0 + 0 + 0 + + + 5795 + 1 + 0 + 0 + 0 + + + 5796 + 1 + 0 + 0 + 0 + + + 5797 + 1 + 0 + 0 + 0 + + + 5798 + 1 + 0 + 0 + 0 + + + 5799 + 1 + 0 + 0 + 0 + + + 5800 + 1 + 0 + 0 + 0 + + + 5801 + 1 + 0 + 0 + 0 + + + 5802 + 1 + 0 + 0 + 0 + + + 5803 + 1 + 0 + 0 + 0 + + + 5804 + 1 + 0 + 0 + 0 + + + 5805 + 1 + 0 + 0 + 0 + + + 5806 + 1 + 0 + 0 + 0 + + + 5807 + 1 + 0 + 0 + 0 + + + 5808 + 1 + 0 + 0 + 0 + + + 5809 + 1 + 0 + 0 + 0 + + + 5810 + 1 + 0 + 0 + 0 + + + 5811 + 1 + 0 + 0 + 0 + + + 5812 + 1 + 0 + 0 + 0 + + + 5813 + 1 + 0 + 0 + 0 + + + 5814 + 1 + 0 + 0 + 0 + + + 5815 + 1 + 0 + 0 + 0 + + + 5816 + 1 + 0 + 0 + 0 + + + 5817 + 1 + 0 + 0 + 0 + + + 5818 + 1 + 0 + 0 + 0 + + + 5819 + 1 + 0 + 0 + 0 + + + 5820 + 1 + 0 + 0 + 0 + + + 5821 + 1 + 0 + 0 + 0 + + + 5822 + 1 + 0 + 0 + 0 + + + 5823 + 1 + 0 + 0 + 0 + + + 5824 + 1 + 0 + 0 + 0 + + + 5825 + 1 + 0 + 0 + 0 + + + 5826 + 1 + 0 + 0 + 0 + + + 5827 + 1 + 0 + 0 + 0 + + + 5828 + 1 + 0 + 0 + 0 + + + 5829 + 1 + 0 + 0 + 0 + + + 5830 + 1 + 0 + 0 + 0 + + + 5831 + 1 + 0 + 0 + 0 + + + 5832 + 1 + 0 + 0 + 0 + + + 5833 + 1 + 0 + 0 + 0 + + + 5834 + 1 + 0 + 0 + 0 + + + 5835 + 1 + 0 + 0 + 0 + + + 5836 + 1 + 0 + 0 + 0 + + + 5837 + 1 + 0 + 0 + 0 + + + 5838 + 1 + 0 + 0 + 0 + + + 5839 + 1 + 0 + 0 + 0 + + + 5840 + 1 + 0 + 0 + 0 + + + 5841 + 1 + 0 + 0 + 0 + + + 5842 + 1 + 0 + 0 + 0 + + + 5843 + 1 + 0 + 0 + 0 + + + 5844 + 1 + 0 + 0 + 0 + + + 5845 + 1 + 0 + 0 + 0 + + + 5846 + 1 + 0 + 0 + 0 + + + 5847 + 1 + 0 + 0 + 0 + + + 5848 + 1 + 0 + 0 + 0 + + + 5849 + 1 + 0 + 0 + 0 + + + 5850 + 1 + 0 + 0 + 0 + + + 5851 + 1 + 0 + 0 + 0 + + + 5852 + 1 + 0 + 0 + 0 + + + 5853 + 1 + 0 + 0 + 0 + + + 5854 + 1 + 0 + 0 + 0 + + + 5855 + 1 + 0 + 0 + 0 + + + 5856 + 1 + 0 + 0 + 0 + + + 5857 + 1 + 0 + 0 + 0 + + + 5858 + 1 + 0 + 0 + 0 + + + 5859 + 1 + 0 + 0 + 0 + + + 5860 + 1 + 0 + 0 + 0 + + + 5861 + 1 + 0 + 0 + 0 + + + 5862 + 1 + 0 + 0 + 0 + + + 5863 + 1 + 0 + 0 + 0 + + + 5864 + 1 + 0 + 0 + 0 + + + 5865 + 1 + 0 + 0 + 0 + + + 5866 + 1 + 0 + 0 + 0 + + + 5867 + 1 + 0 + 0 + 0 + + + 5868 + 1 + 0 + 0 + 0 + + + 5869 + 1 + 0 + 0 + 0 + + + 5870 + 1 + 0 + 0 + 0 + + + 5871 + 1 + 0 + 0 + 0 + + + 5872 + 1 + 0 + 0 + 0 + + + 5873 + 1 + 0 + 0 + 0 + + + 5874 + 1 + 0 + 0 + 0 + + + 5875 + 1 + 0 + 0 + 0 + + + 5876 + 1 + 0 + 0 + 0 + + + 5877 + 1 + 0 + 0 + 0 + + + 5878 + 1 + 0 + 0 + 0 + + + 5879 + 1 + 0 + 0 + 0 + + + 5880 + 1 + 0 + 0 + 0 + + + 5881 + 1 + 0 + 0 + 0 + + + 5882 + 1 + 0 + 0 + 0 + + + 5883 + 1 + 0 + 0 + 0 + + + 5884 + 1 + 0 + 0 + 0 + + + 5885 + 1 + 0 + 0 + 0 + + + 5886 + 1 + 0 + 0 + 0 + + + 5887 + 1 + 0 + 0 + 0 + + + 5888 + 1 + 0 + 0 + 0 + + + 5889 + 1 + 0 + 0 + 0 + + + 5890 + 1 + 0 + 0 + 0 + + + 5891 + 1 + 0 + 0 + 0 + + + 5892 + 1 + 0 + 0 + 0 + + + 5893 + 1 + 0 + 0 + 0 + + + 5894 + 1 + 0 + 0 + 0 + + + 5895 + 1 + 0 + 0 + 0 + + + 5896 + 1 + 0 + 0 + 0 + + + 5897 + 1 + 0 + 0 + 0 + + + 5898 + 1 + 0 + 0 + 0 + + + 5899 + 1 + 0 + 0 + 0 + + + 5900 + 1 + 0 + 0 + 0 + + + 5901 + 1 + 0 + 0 + 0 + + + 5902 + 1 + 0 + 0 + 0 + + + 5903 + 1 + 0 + 0 + 0 + + + 5904 + 1 + 0 + 0 + 0 + + + 5905 + 1 + 0 + 0 + 0 + + + 5906 + 1 + 0 + 0 + 0 + + + 5907 + 1 + 0 + 0 + 0 + + + 5908 + 1 + 0 + 0 + 0 + + + 5909 + 1 + 0 + 0 + 0 + + + 5910 + 1 + 0 + 0 + 0 + + + 5911 + 1 + 0 + 0 + 0 + + + 5912 + 1 + 0 + 0 + 0 + + + 5913 + 1 + 0 + 0 + 0 + + + 5914 + 1 + 0 + 0 + 0 + + + 5915 + 1 + 0 + 0 + 0 + + + 5916 + 1 + 0 + 0 + 0 + + + 5917 + 1 + 0 + 0 + 0 + + + 5918 + 1 + 0 + 0 + 0 + + + 5919 + 1 + 0 + 0 + 0 + + + 5920 + 1 + 0 + 0 + 0 + + + 5921 + 1 + 0 + 0 + 0 + + + 5922 + 1 + 0 + 0 + 0 + + + 5923 + 1 + 0 + 0 + 0 + + + 5924 + 1 + 0 + 0 + 0 + + + 5925 + 1 + 0 + 0 + 0 + + + 5926 + 1 + 0 + 0 + 0 + + + 5927 + 1 + 0 + 0 + 0 + + + 5928 + 1 + 0 + 0 + 0 + + + 5929 + 1 + 0 + 0 + 0 + + + 5930 + 1 + 0 + 0 + 0 + + + 5931 + 6 + 0 + 0 + 0 + + + 5932 + 6 + 0 + 0 + 0 + + + 5933 + 2 + 0 + 0 + 0 + + + 5934 + 2 + 0 + 0 + 0 + + + 5935 + 1 + 0 + 0 + 0 + + + 5936 + 1 + 0 + 0 + 0 + + + 5937 + 288 + 0 + 0 + 0 + + + 5938 + 288 + 0 + 0 + 0 + + + 5939 + 14 + 0 + 0 + 0 + + + 5940 + 432 + 0 + 0 + 0 + + + 5941 + 432 + 0 + 0 + 0 + + + 5942 + 14 + 0 + 0 + 0 + + + 5943 + 360 + 0 + 0 + 0 + + + 5944 + 360 + 0 + 0 + 0 + + + 5945 + 288 + 0 + 0 + 0 + + + 5946 + 288 + 0 + 0 + 0 + + + 5947 + 216 + 0 + 0 + 0 + + + 5948 + 216 + 0 + 0 + 0 + + + 5949 + 144 + 0 + 0 + 0 + + + 5950 + 144 + 0 + 0 + 0 + + + 5951 + 14 + 0 + 0 + 0 + + + 5952 + 360 + 0 + 0 + 0 + + + 5953 + 360 + 0 + 0 + 0 + + + 5954 + 288 + 0 + 0 + 0 + + + 5955 + 288 + 0 + 0 + 0 + + + 5956 + 216 + 0 + 0 + 0 + + + 5957 + 216 + 0 + 0 + 0 + + + 5958 + 144 + 0 + 0 + 0 + + + 5959 + 144 + 0 + 0 + 0 + + + 5960 + 1 + 0 + 0 + 0 + + + 5961 + 1 + 0 + 0 + 0 + + + 5962 + 1 + 0 + 0 + 0 + + + 5963 + 1 + 0 + 0 + 0 + + + 5964 + 1 + 0 + 0 + 0 + + + 5965 + 1 + 0 + 0 + 0 + + + 5966 + 1 + 0 + 0 + 0 + + + 5967 + 1 + 0 + 0 + 0 + + + 5968 + 1 + 0 + 0 + 0 + + + 5969 + 1 + 0 + 0 + 0 + + + 5970 + 19 + 0 + 0 + 0 + + + 5971 + 19 + 0 + 0 + 0 + + + 5972 + 64 + 0 + 0 + 0 + + + 5973 + 64 + 0 + 0 + 0 + + + 5974 + 87 + 0 + 0 + 0 + + + 5975 + 87 + 0 + 0 + 0 + + + 5976 + 87 + 0 + 0 + 0 + + + 5977 + 87 + 0 + 0 + 0 + + + 5978 + 1 + 0 + 0 + 0 + + + 5979 + 1 + 0 + 0 + 0 + + + 5980 + 54 + 0 + 0 + 0 + + + 5981 + 54 + 0 + 0 + 0 + + + 5982 + 48 + 0 + 0 + 0 + + + 5983 + 48 + 0 + 0 + 0 + + + 5984 + 16 + 0 + 0 + 0 + + + 5985 + 16 + 0 + 0 + 0 + + + 5986 + 9 + 0 + 0 + 0 + + + 5987 + 9 + 0 + 0 + 0 + + + 5988 + 9 + 0 + 0 + 0 + + + 5989 + 9 + 0 + 0 + 0 + + + 5990 + 1 + 0 + 0 + 0 + + + 5991 + 1 + 0 + 0 + 0 + + + 5992 + 13 + 0 + 0 + 0 + + + 5993 + 13 + 0 + 0 + 0 + + + 5994 + 4 + 0 + 0 + 0 + + + 5995 + 4 + 0 + 0 + 0 + + + 5996 + 5 + 0 + 0 + 0 + + + 5997 + 5 + 0 + 0 + 0 + + + 5998 + 7 + 0 + 0 + 0 + + + 5999 + 7 + 0 + 0 + 0 + + + 6000 + 10 + 0 + 0 + 0 + + + 6001 + 10 + 0 + 0 + 0 + + + 6002 + 15 + 0 + 0 + 0 + + + 6003 + 15 + 0 + 0 + 0 + + + 6004 + 38 + 0 + 0 + 0 + + + 6005 + 38 + 0 + 0 + 0 + + + 6006 + 4 + 0 + 0 + 0 + + + 6007 + 4 + 0 + 0 + 0 + + + 6008 + 4 + 0 + 0 + 0 + + + 6009 + 4 + 0 + 0 + 0 + + + 6010 + 1 + 0 + 0 + 0 + + + 6011 + 1 + 0 + 0 + 0 + + + 6012 + 4 + 0 + 0 + 0 + + + 6013 + 4 + 0 + 0 + 0 + + + 6014 + 2 + 0 + 0 + 0 + + + 6015 + 2 + 0 + 0 + 0 + + + 6016 + 1 + 0 + 0 + 0 + + + 6017 + 1 + 0 + 0 + 0 + + + 6018 + 65 + 0 + 0 + 0 + + + 6019 + 65 + 0 + 0 + 0 + + + 6020 + 1 + 0 + 0 + 0 + + + 6021 + 1 + 0 + 0 + 0 + + + 6022 + 1 + 0 + 0 + 0 + + + 6023 + 1 + 0 + 0 + 0 + + + 6024 + 1 + 0 + 0 + 0 + + + 6025 + 1 + 0 + 0 + 0 + + + 6026 + 1 + 0 + 0 + 0 + + + 6027 + 1 + 0 + 0 + 0 + + + 6028 + 1 + 0 + 0 + 0 + + + 6029 + 1 + 0 + 0 + 0 + + + 6030 + 1 + 0 + 0 + 0 + + + 6031 + 1 + 0 + 0 + 0 + + + 6032 + 20 + 0 + 0 + 0 + + + 6033 + 20 + 0 + 0 + 0 + + + 6034 + 85 + 0 + 0 + 0 + + + 6035 + 85 + 0 + 0 + 0 + + + 6036 + 40 + 0 + 0 + 0 + + + 6037 + 40 + 0 + 0 + 0 + + + 6038 + 1 + 0 + 0 + 0 + + + 6039 + 1 + 0 + 0 + 0 + + + 6040 + 1 + 0 + 0 + 0 + + + 6041 + 1 + 0 + 0 + 0 + + + 6042 + 1 + 0 + 0 + 0 + + + 6043 + 1 + 0 + 0 + 0 + + + 6044 + 1 + 0 + 0 + 0 + + + 6045 + 1 + 0 + 0 + 0 + + + 6046 + 1 + 0 + 0 + 0 + + + 6047 + 1 + 0 + 0 + 0 + + + 6048 + 1 + 0 + 0 + 0 + + + 6049 + 1 + 0 + 0 + 0 + + + 6050 + 1 + 0 + 0 + 0 + + + 6051 + 1 + 0 + 0 + 0 + + + 6052 + 1 + 0 + 0 + 0 + + + 6053 + 1 + 0 + 0 + 0 + + + 6054 + 1 + 0 + 0 + 0 + + + 6055 + 1 + 0 + 0 + 0 + + + 6056 + 1 + 0 + 0 + 0 + + + 6057 + 1 + 0 + 0 + 0 + + + 6058 + 1 + 0 + 0 + 0 + + + 6059 + 1 + 0 + 0 + 0 + + + 6060 + 1 + 0 + 0 + 0 + + + 6061 + 3 + 0 + 0 + 0 + + + 6062 + 3 + 0 + 0 + 0 + + + 6063 + 1 + 0 + 0 + 0 + + + 6064 + 20 + 0 + 0 + 0 + + + 6065 + 150 + 0 + 0 + 0 + + + 6066 + 20 + 0 + 0 + 0 + + + 6067 + 100 + 0 + 0 + 0 + + + 6068 + 20 + 0 + 0 + 0 + + + 6069 + 30 + 0 + 0 + 0 + + + 6070 + 50 + 0 + 0 + 0 + + + 6071 + 1 + 0 + 0 + 0 + + + 6072 + 10 + 0 + 0 + 0 + + + 6073 + 2 + 0 + 0 + 0 + + + 6074 + 1 + 0 + 0 + 0 + + + 6075 + 2 + 0 + 0 + 0 + + + 6076 + 1 + 0 + 0 + 0 + + + 6077 + 2 + 0 + 0 + 0 + + + 6078 + 1 + 0 + 0 + 0 + + + 6079 + 2 + 0 + 0 + 0 + + + 6080 + 1 + 0 + 0 + 0 + + + 6081 + 10 + 0 + 0 + 0 + + + 6082 + 150 + 0 + 0 + 0 + + + 6083 + 1 + 0 + 0 + 0 + + + 6084 + 1 + 0 + 0 + 0 + + + 6085 + 20 + 0 + 0 + 0 + + + 6086 + 20 + 0 + 0 + 0 + + + 6087 + 20 + 0 + 0 + 0 + + + 6088 + 20 + 0 + 0 + 0 + + + 6089 + 1 + 0 + 0 + 0 + + + 6090 + 1 + 0 + 0 + 0 + + + 6091 + 1 + 0 + 0 + 0 + + + 6092 + 1 + 0 + 0 + 0 + + + 6093 + 1 + 0 + 0 + 0 + + + 6094 + 1 + 0 + 0 + 0 + + + 6095 + 1 + 0 + 0 + 0 + + + 6096 + 1 + 0 + 0 + 0 + + + 6097 + 10 + 0 + 0 + 0 + + + 6098 + 50 + 0 + 0 + 0 + + + 6099 + 50 + 0 + 0 + 0 + + + 6100 + 45 + 0 + 0 + 0 + + + 6101 + 35 + 0 + 0 + 0 + + + 6102 + 15 + 0 + 0 + 0 + + + 6103 + 1 + 0 + 0 + 0 + + + 6104 + 1 + 0 + 0 + 0 + + + 6105 + 1 + 0 + 0 + 0 + + + 6106 + 300 + 0 + 0 + 0 + + + 6107 + 300 + 0 + 0 + 0 + + + 6108 + 300 + 0 + 0 + 0 + + + 6109 + 300 + 0 + 0 + 0 + + + 6110 + 300 + 0 + 0 + 0 + + + 6111 + 250 + 0 + 0 + 0 + + + 6112 + 2 + 0 + 0 + 0 + + + 6113 + 4 + 0 + 0 + 0 + + + 6114 + 1 + 0 + 0 + 0 + + + 6115 + 1 + 0 + 0 + 0 + + + 6116 + 1 + 0 + 0 + 0 + + + 6117 + 1 + 0 + 0 + 0 + + + 6118 + 2 + 0 + 0 + 0 + + + 6119 + 1 + 0 + 0 + 0 + + + 6120 + 1 + 0 + 0 + 0 + + + 6121 + 1 + 0 + 0 + 0 + + + 6122 + 1 + 0 + 0 + 0 + + + 6123 + 1 + 0 + 0 + 0 + + + 6124 + 1 + 0 + 0 + 0 + + + 6125 + 1000 + 0 + 0 + 0 + + + 6126 + 1000 + 0 + 0 + 0 + + + 6127 + 1000 + 0 + 0 + 0 + + + 6128 + 35200 + 0 + 0 + 0 + + + 6129 + 65000 + 0 + 0 + 0 + + + 6130 + 64000 + 0 + 0 + 0 + + + 6131 + 60000 + 0 + 0 + 0 + + + 6132 + 60000 + 0 + 0 + 0 + + + 6133 + 7800 + 0 + 0 + 0 + + + 6134 + 7800 + 0 + 0 + 0 + + + 6135 + 3900 + 0 + 0 + 0 + + + 6136 + 3900 + 0 + 0 + 0 + + + 6137 + 10000 + 0 + 0 + 0 + + + 6138 + 10000 + 0 + 0 + 0 + + + 6139 + 45000 + 0 + 0 + 0 + + + 6140 + 45000 + 0 + 0 + 0 + + + 6141 + 40000 + 0 + 0 + 0 + + + 6142 + 40000 + 0 + 0 + 0 + + + 6143 + 650 + 0 + 0 + 0 + + + 6144 + 650 + 0 + 0 + 0 + + + 6145 + 650 + 0 + 0 + 0 + + + 6146 + 650 + 0 + 0 + 0 + + + 6147 + 650 + 0 + 0 + 0 + + + 6148 + 650 + 0 + 0 + 0 + + + 6149 + 650 + 0 + 0 + 0 + + + 6150 + 650 + 0 + 0 + 0 + + + 6151 + 650 + 0 + 0 + 0 + + + 6152 + 650 + 0 + 0 + 0 + + + 6153 + 650 + 0 + 0 + 0 + + + 6154 + 650 + 0 + 0 + 0 + + + 6155 + 60 + 0 + 0 + 0 + + + 6156 + 60 + 0 + 0 + 0 + + + 6157 + 60 + 0 + 0 + 0 + + + 6158 + 60 + 0 + 0 + 0 + + + 6159 + 60 + 0 + 0 + 0 + + + 6160 + 60 + 0 + 0 + 0 + + + 6161 + 60 + 0 + 0 + 0 + + + 6162 + 60 + 0 + 0 + 0 + + + 6163 + 60 + 0 + 0 + 0 + + + 6164 + 60 + 0 + 0 + 0 + + + 6165 + 60 + 0 + 0 + 0 + + + 6166 + 60 + 0 + 0 + 0 + + + 6167 + 60 + 0 + 0 + 0 + + + 6168 + 60 + 0 + 0 + 0 + + + 6169 + 60 + 0 + 0 + 0 + + + 6170 + 60 + 0 + 0 + 0 + + + 6171 + 60 + 0 + 0 + 0 + + + 6172 + 60 + 0 + 0 + 0 + + + 6173 + 60 + 0 + 0 + 0 + + + 6174 + 60 + 0 + 0 + 0 + + + 6175 + 35200 + 0 + 0 + 0 + + + 6176 + 65000 + 0 + 0 + 0 + + + 6177 + 64000 + 0 + 0 + 0 + + + 6178 + 5 + 0 + 0 + 0 + + + 6179 + 5 + 0 + 0 + 0 + + + 6180 + 1 + 0 + 0 + 0 + + + 6181 + 1 + 0 + 0 + 0 + + + 6182 + 1 + 0 + 0 + 0 + + + 6183 + 1 + 0 + 0 + 0 + + + 6184 + 1 + 0 + 0 + 0 + + + 6185 + 1 + 0 + 0 + 0 + + + 6186 + 1 + 0 + 0 + 0 + + + 6187 + 1 + 0 + 0 + 0 + + + 6188 + 1 + 0 + 0 + 0 + + + 6189 + 1 + 0 + 0 + 0 + + + 6190 + 1 + 0 + 0 + 0 + + + 6191 + 1 + 0 + 0 + 0 + + + 6192 + 1 + 0 + 0 + 0 + + + 6193 + 1 + 0 + 0 + 0 + + + 6194 + 1 + 0 + 0 + 0 + + + 6195 + 1 + 0 + 0 + 0 + + + 6196 + 1 + 0 + 0 + 0 + + + 6197 + 1 + 0 + 0 + 0 + + + 6198 + 1 + 0 + 0 + 0 + + + 6199 + 1 + 0 + 0 + 0 + + + 6200 + 1 + 0 + 0 + 0 + + + 6201 + 1 + 0 + 0 + 0 + + + 6202 + 1 + 0 + 0 + 0 + + + 6203 + 1 + 0 + 0 + 0 + + + 6204 + 1 + 0 + 0 + 0 + + + 6205 + 1 + 0 + 0 + 0 + + + 6206 + 1 + 0 + 0 + 0 + + + 6207 + 1 + 0 + 0 + 0 + + + 6208 + 1 + 0 + 0 + 0 + + + 6209 + 5 + 0 + 0 + 0 + + + 6210 + 1 + 0 + 0 + 0 + + + 6211 + 100 + 0 + 0 + 0 + + + 6212 + 100 + 0 + 0 + 0 + + + 6213 + 200 + 0 + 0 + 0 + + + 6214 + 200 + 0 + 0 + 0 + + + 6215 + 3000 + 0 + 0 + 0 + + + 6216 + 3000 + 0 + 0 + 0 + + + 6217 + 2750 + 0 + 0 + 0 + + + 6218 + 2750 + 0 + 0 + 0 + + + 6219 + 3000 + 0 + 0 + 0 + + + 6220 + 3000 + 0 + 0 + 0 + + + 6221 + 3000 + 0 + 0 + 0 + + + 6222 + 3000 + 0 + 0 + 0 + + + 6223 + 3000 + 0 + 0 + 0 + + + 6224 + 3000 + 0 + 0 + 0 + + + 6225 + 3000 + 0 + 0 + 0 + + + 6226 + 3000 + 0 + 0 + 0 + + + 6227 + 3000 + 0 + 0 + 0 + + + 6228 + 3000 + 0 + 0 + 0 + + + 6229 + 3000 + 0 + 0 + 0 + + + 6230 + 3000 + 0 + 0 + 0 + + + 6231 + 3000 + 0 + 0 + 0 + + + 6232 + 3000 + 0 + 0 + 0 + + + 6233 + 3000 + 0 + 0 + 0 + + + 6234 + 3000 + 0 + 0 + 0 + + + 6235 + 3000 + 0 + 0 + 0 + + + 6236 + 3000 + 0 + 0 + 0 + + + 6237 + 3000 + 0 + 0 + 0 + + + 6238 + 3000 + 0 + 0 + 0 + + + 6239 + 3000 + 0 + 0 + 0 + + + 6240 + 3000 + 0 + 0 + 0 + + + 6241 + 3000 + 0 + 0 + 0 + + + 6242 + 3000 + 0 + 0 + 0 + + + 6243 + 3000 + 0 + 0 + 0 + + + 6244 + 3000 + 0 + 0 + 0 + + + 6245 + 3000 + 0 + 0 + 0 + + + 6246 + 3000 + 0 + 0 + 0 + + + 6247 + 3000 + 0 + 0 + 0 + + + 6248 + 3000 + 0 + 0 + 0 + + + 6249 + 3000 + 0 + 0 + 0 + + + 6250 + 3000 + 0 + 0 + 0 + + + 6251 + 3000 + 0 + 0 + 0 + + + 6252 + 3000 + 0 + 0 + 0 + + + 6253 + 3000 + 0 + 0 + 0 + + + 6254 + 3000 + 0 + 0 + 0 + + + 6255 + 3000 + 0 + 0 + 0 + + + 6256 + 3000 + 0 + 0 + 0 + + + 6257 + 3000 + 0 + 0 + 0 + + + 6258 + 3000 + 0 + 0 + 0 + + + 6259 + 3000 + 0 + 0 + 0 + + + 6260 + 3000 + 0 + 0 + 0 + + + 6261 + 3000 + 0 + 0 + 0 + + + 6262 + 3000 + 0 + 0 + 0 + + + 6263 + 3000 + 0 + 0 + 0 + + + 6264 + 3000 + 0 + 0 + 0 + + + 6265 + 3000 + 0 + 0 + 0 + + + 6266 + 3000 + 0 + 0 + 0 + + + 6267 + 3000 + 0 + 0 + 0 + + + 6268 + 3000 + 0 + 0 + 0 + + + 6269 + 3000 + 0 + 0 + 0 + + + 6270 + 3000 + 0 + 0 + 0 + + + 6271 + 3000 + 0 + 0 + 0 + + + 6272 + 3000 + 0 + 0 + 0 + + + 6273 + 3000 + 0 + 0 + 0 + + + 6274 + 3000 + 0 + 0 + 0 + + + 6275 + 3000 + 0 + 0 + 0 + + + 6276 + 3000 + 0 + 0 + 0 + + + 6277 + 3000 + 0 + 0 + 0 + + + 6278 + 3000 + 0 + 0 + 0 + + + 6279 + 3000 + 0 + 0 + 0 + + + 6280 + 3000 + 0 + 0 + 0 + + + 6281 + 10 + 0 + 0 + 0 + + + 6282 + 10 + 0 + 0 + 0 + + + 6283 + 15 + 0 + 0 + 0 + + + 6284 + 15 + 0 + 0 + 0 + + + 6285 + 20 + 0 + 0 + 0 + + + 6286 + 20 + 0 + 0 + 0 + + + 6287 + 35 + 0 + 0 + 0 + + + 6288 + 35 + 0 + 0 + 0 + + + 6289 + 50 + 0 + 0 + 0 + + + 6290 + 50 + 0 + 0 + 0 + + + 6291 + 15 + 0 + 0 + 0 + + + 6292 + 15 + 0 + 0 + 0 + + + 6293 + 25 + 0 + 0 + 0 + + + 6294 + 25 + 0 + 0 + 0 + + + 6295 + 20 + 0 + 0 + 0 + + + 6296 + 20 + 0 + 0 + 0 + + + 6297 + 50 + 0 + 0 + 0 + + + 6298 + 50 + 0 + 0 + 0 + + + 6299 + 40 + 0 + 0 + 0 + + + 6300 + 40 + 0 + 0 + 0 + + + 6301 + 1 + 0 + 0 + 0 + + + 6302 + 1 + 0 + 0 + 0 + + + 6303 + 1 + 0 + 0 + 0 + + + 6304 + 1 + 0 + 0 + 0 + + + 6305 + 10 + 0 + 0 + 0 + + + 6306 + 1 + 0 + 0 + 0 + + + 6307 + 1 + 0 + 0 + 0 + + + 6308 + 1 + 0 + 0 + 0 + + + 6309 + 1 + 0 + 0 + 0 + + + 6310 + 1 + 0 + 0 + 0 + + + 6311 + 200 + 0 + 0 + 0 + + + 6312 + 200 + 0 + 0 + 0 + + + 6313 + 500 + 0 + 0 + 0 + + + 6314 + 500 + 0 + 0 + 0 + + + 6315 + 1000 + 0 + 0 + 0 + + + 6316 + 1000 + 0 + 0 + 0 + + + 6317 + 2000 + 0 + 0 + 0 + + + 6318 + 2000 + 0 + 0 + 0 + + + 6319 + 5 + 0 + 0 + 0 + + + 6320 + 5 + 0 + 0 + 0 + + + 6321 + 1 + 0 + 0 + 0 + + + 6322 + 1250 + 0 + 0 + 0 + + + 6323 + 1250 + 0 + 0 + 0 + + + 6324 + 1175 + 0 + 0 + 0 + + + 6325 + 1175 + 0 + 0 + 0 + + + 6326 + 300 + 0 + 0 + 0 + + + 6327 + 300 + 0 + 0 + 0 + + + 6328 + 250 + 0 + 0 + 0 + + + 6329 + 250 + 0 + 0 + 0 + + + 6330 + 434 + 0 + 0 + 0 + + + 6331 + 434 + 0 + 0 + 0 + + + 6332 + 50 + 0 + 0 + 0 + + + 6333 + 30 + 0 + 0 + 0 + + + 6334 + 30 + 0 + 0 + 0 + + + 6335 + 500 + 0 + 0 + 0 + + + 6336 + 500 + 0 + 0 + 0 + + + 6337 + 500 + 0 + 0 + 0 + + + 6338 + 500 + 0 + 0 + 0 + + + 6339 + 500 + 0 + 0 + 0 + + + 6340 + 500 + 0 + 0 + 0 + + + 6341 + 300 + 0 + 0 + 0 + + + 6342 + 300 + 0 + 0 + 0 + + + 6343 + 250 + 0 + 0 + 0 + + + 6344 + 250 + 0 + 0 + 0 + + + 6345 + 200 + 0 + 0 + 0 + + + 6346 + 200 + 0 + 0 + 0 + + + 6347 + 150 + 0 + 0 + 0 + + + 6348 + 150 + 0 + 0 + 0 + + + 6349 + 100 + 0 + 0 + 0 + + + 6350 + 100 + 0 + 0 + 0 + + + 6351 + 300 + 0 + 0 + 0 + + + 6352 + 300 + 0 + 0 + 0 + + + 6353 + 250 + 0 + 0 + 0 + + + 6354 + 250 + 0 + 0 + 0 + + + 6355 + 200 + 0 + 0 + 0 + + + 6356 + 200 + 0 + 0 + 0 + + + 6357 + 100 + 0 + 0 + 0 + + + 6358 + 100 + 0 + 0 + 0 + + + 6359 + 150 + 0 + 0 + 0 + + + 6360 + 150 + 0 + 0 + 0 + + + 6361 + 300 + 0 + 0 + 0 + + + 6362 + 300 + 0 + 0 + 0 + + + 6363 + 250 + 0 + 0 + 0 + + + 6364 + 250 + 0 + 0 + 0 + + + 6365 + 200 + 0 + 0 + 0 + + + 6366 + 200 + 0 + 0 + 0 + + + 6367 + 100 + 0 + 0 + 0 + + + 6368 + 100 + 0 + 0 + 0 + + + 6369 + 150 + 0 + 0 + 0 + + + 6370 + 150 + 0 + 0 + 0 + + + 6371 + 300 + 0 + 0 + 0 + + + 6372 + 300 + 0 + 0 + 0 + + + 6373 + 250 + 0 + 0 + 0 + + + 6374 + 250 + 0 + 0 + 0 + + + 6375 + 200 + 0 + 0 + 0 + + + 6376 + 200 + 0 + 0 + 0 + + + 6377 + 100 + 0 + 0 + 0 + + + 6378 + 100 + 0 + 0 + 0 + + + 6379 + 150 + 0 + 0 + 0 + + + 6380 + 150 + 0 + 0 + 0 + + + 6381 + 1 + 0 + 0 + 0 + + + 6382 + 20 + 0 + 0 + 0 + + + 6383 + 20 + 0 + 0 + 0 + + + 6384 + 15 + 0 + 0 + 0 + + + 6385 + 15 + 0 + 0 + 0 + + + 6386 + 25 + 0 + 0 + 0 + + + 6387 + 25 + 0 + 0 + 0 + + + 6388 + 35 + 0 + 0 + 0 + + + 6389 + 35 + 0 + 0 + 0 + + + 6390 + 25 + 0 + 0 + 0 + + + 6391 + 25 + 0 + 0 + 0 + + + 6392 + 35 + 0 + 0 + 0 + + + 6393 + 35 + 0 + 0 + 0 + + + 6394 + 20 + 0 + 0 + 0 + + + 6395 + 20 + 0 + 0 + 0 + + + 6396 + 40 + 0 + 0 + 0 + + + 6397 + 40 + 0 + 0 + 0 + + + 6398 + 20 + 0 + 0 + 0 + + + 6399 + 20 + 0 + 0 + 0 + + + 6400 + 35 + 0 + 0 + 0 + + + 6401 + 35 + 0 + 0 + 0 + + + 6402 + 20 + 0 + 0 + 0 + + + 6403 + 20 + 0 + 0 + 0 + + + 6404 + 40 + 0 + 0 + 0 + + + 6405 + 40 + 0 + 0 + 0 + + + 6406 + 20 + 0 + 0 + 0 + + + 6407 + 20 + 0 + 0 + 0 + + + 6408 + 400 + 0 + 0 + 0 + + + 6409 + 400 + 0 + 0 + 0 + + + 6410 + 400 + 0 + 0 + 0 + + + 6411 + 400 + 0 + 0 + 0 + + + 6412 + 800 + 0 + 0 + 0 + + + 6413 + 800 + 0 + 0 + 0 + + + 6414 + 800 + 0 + 0 + 0 + + + 6415 + 800 + 0 + 0 + 0 + + + 6416 + 1200 + 0 + 0 + 0 + + + 6417 + 1200 + 0 + 0 + 0 + + + 6418 + 1600 + 0 + 0 + 0 + + + 6419 + 1600 + 0 + 0 + 0 + + + 6420 + 1600 + 0 + 0 + 0 + + + 6421 + 1600 + 0 + 0 + 0 + + + 6422 + 1 + 0 + 0 + 0 + + + 6423 + 1 + 0 + 0 + 0 + + + 6424 + 1 + 0 + 0 + 0 + + + 6425 + 1 + 0 + 0 + 0 + + + 6426 + 1 + 0 + 0 + 0 + + + 6427 + 1 + 0 + 0 + 0 + + + 6428 + 1 + 0 + 0 + 0 + + + 6429 + 1 + 0 + 0 + 0 + + + 6430 + 1 + 0 + 0 + 0 + + + 6431 + 1 + 0 + 0 + 0 + + + 6432 + 1 + 0 + 0 + 0 + + + 6433 + 1 + 0 + 0 + 0 + + + 6434 + 1 + 0 + 0 + 0 + + + 6435 + 1 + 0 + 0 + 0 + + + 6436 + 1 + 0 + 0 + 0 + + + 6437 + 1 + 0 + 0 + 0 + + + 6438 + 1 + 0 + 0 + 0 + + + 6439 + 1 + 0 + 0 + 0 + + + 6440 + 1 + 0 + 0 + 0 + + + 6441 + 1 + 0 + 0 + 0 + + + 6442 + 1 + 0 + 0 + 0 + + + 6443 + 1 + 0 + 0 + 0 + + + 6444 + 1 + 0 + 0 + 0 + + + 6445 + 1 + 0 + 0 + 0 + + + 6446 + 1 + 0 + 0 + 0 + + + 6447 + 1 + 0 + 0 + 0 + + + 6448 + 3 + 0 + 0 + 0 + + + 6449 + 1 + 0 + 0 + 0 + + + 6450 + 1 + 0 + 0 + 0 + + + 6451 + 1 + 0 + 0 + 0 + + + 6452 + 1 + 0 + 0 + 0 + + + 6453 + 1 + 0 + 0 + 0 + + + 6454 + 1 + 0 + 0 + 0 + + + 6455 + 1 + 0 + 0 + 0 + + + 6456 + 1 + 0 + 0 + 0 + + + 6457 + 1 + 0 + 0 + 0 + + + 6458 + 1 + 0 + 0 + 0 + + + 6459 + 1 + 0 + 0 + 0 + + + 6460 + 1 + 0 + 0 + 0 + + + 6461 + 1 + 0 + 0 + 0 + + + 6462 + 1 + 0 + 0 + 0 + + + 6463 + 1 + 0 + 0 + 0 + + + 6464 + 1 + 0 + 0 + 0 + + + 6465 + 1 + 0 + 0 + 0 + + + 6466 + 1 + 0 + 0 + 0 + + + 6467 + 1 + 0 + 0 + 0 + + + 6468 + 1 + 0 + 0 + 0 + + + 6469 + 1 + 0 + 0 + 0 + + + 6470 + 120 + 0 + 0 + 0 + + + 6471 + 120 + 0 + 0 + 0 + + + 6472 + 90 + 0 + 0 + 0 + + + 6473 + 90 + 0 + 0 + 0 + + + 6474 + 60 + 0 + 0 + 0 + + + 6475 + 60 + 0 + 0 + 0 + + + 6476 + 30 + 0 + 0 + 0 + + + 6477 + 30 + 0 + 0 + 0 + + + 6478 + 1 + 0 + 0 + 0 + + + 6479 + 1 + 0 + 0 + 0 + + + 6480 + 1 + 0 + 0 + 0 + + + 6481 + 1 + 0 + 0 + 0 + + + 6482 + 1 + 0 + 0 + 0 + + + 6483 + 1 + 0 + 0 + 0 + + + 6484 + 1 + 0 + 0 + 0 + + + 6485 + 1 + 0 + 0 + 0 + + + 6486 + 1 + 0 + 0 + 0 + + + 6487 + 1 + 0 + 0 + 0 + + + 6488 + 1 + 0 + 0 + 0 + + + 6489 + 1 + 0 + 0 + 0 + + + 6490 + 1 + 0 + 0 + 0 + + + 6491 + 1 + 0 + 0 + 0 + + + 6492 + 1 + 0 + 0 + 0 + + + 6493 + 1 + 0 + 0 + 0 + + + 6494 + 1 + 0 + 0 + 0 + + + 6495 + 1 + 0 + 0 + 0 + + + 6496 + 1 + 0 + 0 + 0 + + + 6497 + 1 + 0 + 0 + 0 + + + 6498 + 1 + 0 + 0 + 0 + + + 6499 + 1 + 0 + 0 + 0 + + + 6500 + 1 + 0 + 0 + 0 + + + 6501 + 1 + 0 + 0 + 0 + + + 6502 + 1 + 0 + 0 + 0 + + + 6503 + 1 + 0 + 0 + 0 + + + 6504 + 1 + 0 + 0 + 0 + + + 6505 + 1 + 0 + 0 + 0 + + + 6506 + 1 + 0 + 0 + 0 + + + 6507 + 1 + 0 + 0 + 0 + + + 6508 + 1 + 0 + 0 + 0 + + + 6509 + 1 + 0 + 0 + 0 + + + 6510 + 1 + 0 + 0 + 0 + + + 6511 + 1 + 0 + 0 + 0 + + + 6512 + 1 + 0 + 0 + 0 + + + 6513 + 1 + 0 + 0 + 0 + + + 6514 + 1 + 0 + 0 + 0 + + + 6515 + 1 + 0 + 0 + 0 + + + 6516 + 1 + 0 + 0 + 0 + + + 6517 + 1 + 0 + 0 + 0 + + + 6518 + 1 + 0 + 0 + 0 + + + 6519 + 1 + 0 + 0 + 0 + + + 6520 + 1 + 0 + 0 + 0 + + + 6521 + 1 + 0 + 0 + 0 + + + 6522 + 250 + 0 + 0 + 0 + + + 6523 + 40000 + 0 + 0 + 0 + + + 6524 + 45000 + 0 + 0 + 0 + + + 6525 + 25000 + 0 + 0 + 0 + + + 6526 + 35000 + 0 + 0 + 0 + + + 6527 + 30000 + 0 + 0 + 0 + + + 6528 + 50000 + 0 + 0 + 0 + + + 6529 + 1 + 0 + 0 + 0 + + + 6530 + 1 + 0 + 0 + 0 + + + 6531 + 1 + 0 + 0 + 0 + + + 6532 + 1 + 0 + 0 + 0 + + + 6533 + 1 + 0 + 0 + 0 + + + 6534 + 1 + 0 + 0 + 0 + + + 6535 + 40000 + 0 + 0 + 0 + + + 6536 + 45000 + 0 + 0 + 0 + + + 6537 + 25000 + 0 + 0 + 0 + + + 6538 + 35000 + 0 + 0 + 0 + + + 6539 + 30000 + 0 + 0 + 0 + + + 6540 + 50000 + 0 + 0 + 0 + + + 6541 + 1 + 0 + 0 + 0 + + + 6542 + 1 + 0 + 0 + 0 + + + 6543 + 1 + 0 + 0 + 0 + + + 6544 + 1 + 0 + 0 + 0 + + + 6545 + 1 + 0 + 0 + 0 + + + 6546 + 1 + 0 + 0 + 0 + + + 6547 + 1 + 0 + 0 + 0 + + + 6548 + 1 + 0 + 0 + 0 + + + 6549 + 1 + 0 + 0 + 0 + + + 6550 + 1 + 0 + 0 + 0 + + + 6551 + 1 + 0 + 0 + 0 + + + 6552 + 1 + 0 + 0 + 0 + + + 6553 + 1 + 0 + 0 + 0 + + + 6554 + 1 + 0 + 0 + 0 + + + 6555 + 1 + 0 + 0 + 0 + + + 6556 + 1 + 0 + 0 + 0 + + + 6557 + 1 + 0 + 0 + 0 + + + 6558 + 1 + 0 + 0 + 0 + + + 6559 + 1 + 0 + 0 + 0 + + + 6560 + 1 + 0 + 0 + 0 + + + 6561 + 2 + 0 + 0 + 0 + + + 6562 + 17000 + 0 + 0 + 0 + + + 6563 + 45000 + 0 + 0 + 0 + + + 6564 + 1 + 0 + 0 + 0 + + + 6565 + 1 + 0 + 0 + 0 + + + 6566 + 1 + 0 + 0 + 0 + + + 6567 + 1 + 0 + 0 + 0 + + + 6568 + 60000 + 0 + 0 + 0 + + + 6569 + 60000 + 0 + 0 + 0 + + + 6570 + 60000 + 0 + 0 + 0 + + + 6571 + 300000 + 0 + 0 + 0 + + + 6572 + 300000 + 0 + 0 + 0 + + + 6573 + 300000 + 0 + 0 + 0 + + + 6574 + 300000 + 0 + 0 + 0 + + + 6575 + 201000 + 0 + 0 + 0 + + + 6576 + 201000 + 0 + 0 + 0 + + + 6577 + 201000 + 0 + 0 + 0 + + + 6578 + 201000 + 0 + 0 + 0 + + + 6579 + 201000 + 0 + 0 + 0 + + + 6580 + 201000 + 0 + 0 + 0 + + + 6581 + 201000 + 0 + 0 + 0 + + + 6582 + 201000 + 0 + 0 + 0 + + + 6583 + 202000 + 0 + 0 + 0 + + + 6584 + 202000 + 0 + 0 + 0 + + + 6585 + 202000 + 0 + 0 + 0 + + + 6586 + 202000 + 0 + 0 + 0 + + + 6587 + 360 + 0 + 0 + 0 + + + 6588 + 360 + 0 + 0 + 0 + + + 6589 + 1248 + 0 + 0 + 0 + + + 6590 + 1248 + 0 + 0 + 0 + + + 6591 + 240 + 0 + 0 + 0 + + + 6592 + 240 + 0 + 0 + 0 + + + 6593 + 240 + 0 + 0 + 0 + + + 6594 + 240 + 0 + 0 + 0 + + + 6595 + 240 + 0 + 0 + 0 + + + 6596 + 240 + 0 + 0 + 0 + + + 6597 + 240 + 0 + 0 + 0 + + + 6598 + 240 + 0 + 0 + 0 + + + 6599 + 1920 + 0 + 0 + 0 + + + 6600 + 1920 + 0 + 0 + 0 + + + 6601 + 432 + 0 + 0 + 0 + + + 6602 + 432 + 0 + 0 + 0 + + + 6603 + 200 + 0 + 0 + 0 + + + 6604 + 200 + 0 + 0 + 0 + + + 6605 + 624 + 0 + 0 + 0 + + + 6606 + 624 + 0 + 0 + 0 + + + 6607 + 960 + 0 + 0 + 0 + + + 6608 + 960 + 0 + 0 + 0 + + + 6609 + 1920 + 0 + 0 + 0 + + + 6610 + 1920 + 0 + 0 + 0 + + + 6611 + 768 + 0 + 0 + 0 + + + 6612 + 768 + 0 + 0 + 0 + + + 6613 + 980 + 0 + 0 + 0 + + + 6614 + 980 + 0 + 0 + 0 + + + 6615 + 1440 + 0 + 0 + 0 + + + 6616 + 1440 + 0 + 0 + 0 + + + 6617 + 3840 + 0 + 0 + 0 + + + 6618 + 3840 + 0 + 0 + 0 + + + 6619 + 576 + 0 + 0 + 0 + + + 6620 + 576 + 0 + 0 + 0 + + + 6621 + 576 + 0 + 0 + 0 + + + 6622 + 576 + 0 + 0 + 0 + + + 6623 + 1056 + 0 + 0 + 0 + + + 6624 + 1056 + 0 + 0 + 0 + + + 6625 + 1920 + 0 + 0 + 0 + + + 6626 + 1920 + 0 + 0 + 0 + + + 6627 + 1920 + 0 + 0 + 0 + + + 6628 + 1920 + 0 + 0 + 0 + + + 6629 + 6 + 0 + 0 + 0 + + + 6630 + 6 + 0 + 0 + 0 + + + 6631 + 1152 + 0 + 0 + 0 + + + 6632 + 1152 + 0 + 0 + 0 + + + 6633 + 1632 + 0 + 0 + 0 + + + 6634 + 1632 + 0 + 0 + 0 + + + 6635 + 1 + 0 + 0 + 0 + + + 6636 + 1 + 0 + 0 + 0 + + + 6637 + 1 + 0 + 0 + 0 + + + 6638 + 1 + 0 + 0 + 0 + + + 6639 + 1 + 0 + 0 + 0 + + + 6640 + 1 + 0 + 0 + 0 + + + 6641 + 1 + 0 + 0 + 0 + + + 6642 + 1 + 0 + 0 + 0 + + + 6643 + 1 + 0 + 0 + 0 + + + 6644 + 1 + 0 + 0 + 0 + + + 6645 + 1 + 0 + 0 + 0 + + + 6646 + 1 + 0 + 0 + 0 + + + 6647 + 1 + 0 + 0 + 0 + + + 6648 + 1 + 0 + 0 + 0 + + + 6649 + 1 + 0 + 0 + 0 + + + 6650 + 1 + 0 + 0 + 0 + + + 6651 + 1 + 0 + 0 + 0 + + + 6652 + 1 + 0 + 0 + 0 + + + 6653 + 1 + 0 + 0 + 0 + + + 6654 + 1 + 0 + 0 + 0 + + + 6655 + 1 + 0 + 0 + 0 + + + 6656 + 1 + 0 + 0 + 0 + + + 6657 + 1 + 0 + 0 + 0 + + + 6658 + 1 + 0 + 0 + 0 + + + 6659 + 1 + 0 + 0 + 0 + + + 6660 + 1 + 0 + 0 + 0 + + + 6661 + 1 + 0 + 0 + 0 + + + 6662 + 1 + 0 + 0 + 0 + + + 6663 + 1 + 0 + 0 + 0 + + + 6664 + 60 + 0 + 0 + 0 + + + 6665 + 1 + 0 + 0 + 0 + + + 6666 + 1 + 0 + 0 + 0 + + + 6667 + 1 + 0 + 0 + 0 + + + 6668 + 1 + 0 + 0 + 0 + + + 6669 + 1 + 0 + 0 + 0 + + + 6670 + 1 + 0 + 0 + 0 + + + 6671 + 1 + 0 + 0 + 0 + + + 6672 + 1 + 0 + 0 + 0 + + + 6673 + 1 + 0 + 0 + 0 + + + 6674 + 10 + 0 + 0 + 0 + + + 6675 + 1 + 0 + 0 + 0 + + + 6676 + 1 + 0 + 0 + 0 + + + 6677 + 5 + 0 + 0 + 0 + + + 6678 + 5 + 0 + 0 + 0 + + + 6679 + 5 + 0 + 0 + 0 + + + 6680 + 5 + 0 + 0 + 0 + + + 6681 + 2 + 0 + 0 + 0 + + + 6682 + 2 + 0 + 0 + 0 + + + 6683 + 2 + 0 + 0 + 0 + + + 6684 + 2 + 0 + 0 + 0 + + + 6685 + 200 + 0 + 0 + 0 + + + 6686 + 200 + 0 + 0 + 0 + + + 6687 + 175 + 0 + 0 + 0 + + + 6688 + 175 + 0 + 0 + 0 + + + 6689 + 150 + 0 + 0 + 0 + + + 6690 + 150 + 0 + 0 + 0 + + + 6691 + 125 + 0 + 0 + 0 + + + 6692 + 125 + 0 + 0 + 0 + + + 6693 + 1 + 0 + 0 + 0 + + + 6694 + 1 + 0 + 0 + 0 + + + 6695 + 1 + 0 + 0 + 0 + + + 6696 + 1 + 0 + 0 + 0 + + + 6697 + 4 + 0 + 0 + 0 + + + 6698 + 4 + 0 + 0 + 0 + + + 6699 + 1 + 0 + 0 + 0 + + + 6700 + 1 + 0 + 0 + 0 + + + 6701 + 4 + 0 + 0 + 0 + + + 6702 + 4 + 0 + 0 + 0 + + + 6703 + 8 + 0 + 0 + 0 + + + 6704 + 8 + 0 + 0 + 0 + + + 6705 + 350 + 0 + 0 + 0 + + + 6706 + 350 + 0 + 0 + 0 + + + 6707 + 1 + 0 + 0 + 0 + + + 6708 + 1 + 0 + 0 + 0 + + + 6709 + 1 + 0 + 0 + 0 + + + 6710 + 166 + 0 + 0 + 0 + + + 6711 + 1 + 0 + 0 + 0 + + + 6712 + 1 + 0 + 0 + 0 + + + 6713 + 5 + 0 + 0 + 0 + + + 6714 + 5 + 0 + 0 + 0 + + + 6715 + 1 + 0 + 0 + 0 + + + 6716 + 1 + 0 + 0 + 0 + + + 6717 + 20000 + 0 + 0 + 0 + + + 6718 + 1 + 0 + 0 + 0 + + + 6719 + 1 + 0 + 0 + 0 + + + 6720 + 200 + 0 + 0 + 0 + + + 6721 + 1 + 0 + 0 + 0 + + + 6722 + 1 + 0 + 0 + 0 + + + 6723 + 1 + 0 + 0 + 0 + + + 6724 + 8000 + 0 + 0 + 0 + + + 6725 + 8000 + 0 + 0 + 0 + + + 6726 + 17000 + 0 + 0 + 0 + + + 6727 + 45000 + 0 + 0 + 0 + + + 6728 + 1 + 0 + 0 + 0 + + + 6729 + 1 + 0 + 0 + 0 + + + 6730 + 1 + 0 + 0 + 0 + + + 6731 + 10000 + 0 + 0 + 0 + + + 6732 + 10000 + 0 + 0 + 0 + + + 6733 + 10000 + 0 + 0 + 0 + + + 6734 + 10000 + 0 + 0 + 0 + + + 6735 + 10000 + 0 + 0 + 0 + + + 6736 + 10000 + 0 + 0 + 0 + + + 6737 + 10000 + 0 + 0 + 0 + + + 6738 + 10000 + 0 + 0 + 0 + + + 6739 + 55000 + 0 + 0 + 0 + + + 6740 + 55000 + 0 + 0 + 0 + + + 6741 + 1800 + 0 + 0 + 0 + + + 6742 + 1800 + 0 + 0 + 0 + + + 6743 + 54999 + 0 + 0 + 0 + + + 6744 + 54999 + 0 + 0 + 0 + + + 6745 + 50 + 0 + 0 + 0 + + + 6746 + 500 + 0 + 0 + 0 + + + 6747 + 1 + 0 + 0 + 0 + + + 6748 + 1 + 0 + 0 + 0 + + + 6749 + 1 + 0 + 0 + 0 + + + 6750 + 40 + 0 + 0 + 0 + + + 6751 + 1 + 0 + 0 + 0 + + + 6752 + 30 + 0 + 0 + 0 + + + 6753 + 1 + 0 + 0 + 0 + + + 6754 + 1 + 0 + 0 + 0 + + + 6755 + 1 + 0 + 0 + 0 + + + 6756 + 1 + 0 + 0 + 0 + + + 6757 + 1 + 0 + 0 + 0 + + + 6758 + 1 + 0 + 0 + 0 + + + 6759 + 1 + 0 + 0 + 0 + + + 6760 + 625 + 0 + 0 + 0 + + + 6761 + 625 + 0 + 0 + 0 + + + 6762 + 625 + 0 + 0 + 0 + + + 6763 + 625 + 0 + 0 + 0 + + + 6764 + 625 + 0 + 0 + 0 + + + 6765 + 625 + 0 + 0 + 0 + + + 6766 + 1 + 0 + 0 + 0 + + + 6767 + 1 + 0 + 0 + 0 + + + 6768 + 1 + 0 + 0 + 0 + + + 6769 + 1 + 0 + 0 + 0 + + + 6770 + 1 + 0 + 0 + 0 + + + 6771 + 1 + 0 + 0 + 0 + + + 6772 + 1 + 0 + 0 + 0 + + + 6773 + 1 + 0 + 0 + 0 + + + 6774 + 1 + 0 + 0 + 0 + + + 6775 + 1 + 0 + 0 + 0 + + + 6776 + 1 + 0 + 0 + 0 + + + 6777 + 1 + 0 + 0 + 0 + + + 6778 + 1 + 0 + 0 + 0 + + + 6779 + 1 + 0 + 0 + 0 + + + 6780 + 1 + 0 + 0 + 0 + + + 6781 + 1 + 0 + 0 + 0 + + + 6782 + 1 + 0 + 0 + 0 + + + 6783 + 1 + 0 + 0 + 0 + + + 6784 + 1 + 0 + 0 + 0 + + + 6785 + 1 + 0 + 0 + 0 + + + 6786 + 1 + 0 + 0 + 0 + + + 6787 + 1 + 0 + 0 + 0 + + + 6788 + 1 + 0 + 0 + 0 + + + 6789 + 1 + 0 + 0 + 0 + + + 6790 + 1 + 0 + 0 + 0 + + + 6791 + 1 + 0 + 0 + 0 + + + 6792 + 1 + 0 + 0 + 0 + + + 6793 + 1 + 0 + 0 + 0 + + + 6794 + 30 + 0 + 0 + 0 + + + 6795 + 30 + 0 + 0 + 0 + + + 6796 + 1 + 0 + 0 + 0 + + + 6797 + 1 + 0 + 0 + 0 + + + 6798 + 1 + 0 + 0 + 0 + + + 6799 + 1 + 0 + 0 + 0 + + + 6800 + 1 + 0 + 0 + 0 + + + 6801 + 1 + 0 + 0 + 0 + + + 6802 + 1 + 0 + 0 + 0 + + + 6803 + 1 + 0 + 0 + 0 + + + 6804 + 1 + 0 + 0 + 0 + + + 6805 + 1 + 0 + 0 + 0 + + + 6806 + 1 + 0 + 0 + 0 + + + 6807 + 1 + 0 + 0 + 0 + + + 6808 + 1 + 0 + 0 + 0 + + + 6809 + 66000 + 0 + 0 + 0 + + + 6810 + 1 + 0 + 0 + 0 + + + 6811 + 1 + 0 + 0 + 0 + + + 6812 + 1 + 0 + 0 + 0 + + + 6813 + 66000 + 0 + 0 + 0 + + + 6814 + 10 + 0 + 0 + 0 + + + 6815 + 10 + 0 + 0 + 0 + + + 6816 + 1 + 0 + 0 + 0 + + + 6817 + 1 + 0 + 0 + 0 + + + 6818 + 1 + 0 + 0 + 0 + + + 6819 + 1 + 0 + 0 + 0 + + + 6820 + 1 + 0 + 0 + 0 + + + 6821 + 1 + 0 + 0 + 0 + + + 6822 + 1 + 0 + 0 + 0 + + + 6823 + 1 + 0 + 0 + 0 + + + 6824 + 1 + 0 + 0 + 0 + + + 6825 + 1 + 0 + 0 + 0 + + + 6826 + 1 + 0 + 0 + 0 + + + 6827 + 1 + 0 + 0 + 0 + + + 6828 + 1 + 0 + 0 + 0 + + + 6829 + 1 + 0 + 0 + 0 + + + 6830 + 1 + 0 + 0 + 0 + + + 6831 + 1 + 0 + 0 + 0 + + + 6832 + 1 + 0 + 0 + 0 + + + 6833 + 1 + 0 + 0 + 0 + + + 6834 + 1 + 0 + 0 + 0 + + + 6835 + 1 + 0 + 0 + 0 + + + 6836 + 1 + 0 + 0 + 0 + + + 6837 + 1 + 0 + 0 + 0 + + + 6838 + 1 + 0 + 0 + 0 + + + 6839 + 1 + 0 + 0 + 0 + + + 6840 + 1 + 0 + 0 + 0 + + + 6841 + 1 + 0 + 0 + 0 + + + 6842 + 1 + 0 + 0 + 0 + + + 6843 + 1 + 0 + 0 + 0 + + + 6844 + 1 + 0 + 0 + 0 + + + 6845 + 1 + 0 + 0 + 0 + + + 6846 + 1 + 0 + 0 + 0 + + + 6847 + 1 + 0 + 0 + 0 + + + 6848 + 1 + 0 + 0 + 0 + + + 6849 + 1 + 0 + 0 + 0 + + + 6850 + 1 + 0 + 0 + 0 + + + 6851 + 1 + 0 + 0 + 0 + + + 6852 + 1 + 0 + 0 + 0 + + + 6853 + 1 + 0 + 0 + 0 + + + 6854 + 1 + 0 + 0 + 0 + + + 6855 + 1 + 0 + 0 + 0 + + + 6856 + 1 + 0 + 0 + 0 + + + 6857 + 1 + 0 + 0 + 0 + + + 6858 + 1 + 0 + 0 + 0 + + + 6859 + 1 + 0 + 0 + 0 + + + 6860 + 1 + 0 + 0 + 0 + + + 6861 + 1 + 0 + 0 + 0 + + + 6862 + 1 + 0 + 0 + 0 + + + 6863 + 1 + 0 + 0 + 0 + + + 6864 + 60000 + 0 + 0 + 0 + + + 6865 + 1 + 0 + 0 + 0 + + + 6866 + 1 + 0 + 0 + 0 + + + 6867 + 1 + 0 + 0 + 0 + + + 6868 + 1 + 0 + 0 + 0 + + + 6869 + 1 + 0 + 0 + 0 + + + 6870 + 1 + 0 + 0 + 0 + + + 6871 + 1 + 0 + 0 + 0 + + + 6872 + 1 + 0 + 0 + 0 + + + 6873 + 1 + 0 + 0 + 0 + + + 6874 + 1 + 0 + 0 + 0 + + + 6875 + 1 + 0 + 0 + 0 + + + 6876 + 1 + 0 + 0 + 0 + + + 6877 + 1 + 0 + 0 + 0 + + + 6878 + 1 + 0 + 0 + 0 + + + 6879 + 1 + 0 + 0 + 0 + + + 6880 + 1 + 0 + 0 + 0 + + + 6881 + 1 + 0 + 0 + 0 + + + 6882 + 1 + 0 + 0 + 0 + + + 6883 + 1 + 0 + 0 + 0 + + + 6884 + 1 + 0 + 0 + 0 + + + 6885 + 1 + 0 + 0 + 0 + + + 6886 + 1 + 0 + 0 + 0 + + + 6887 + 1 + 0 + 0 + 0 + + + 6888 + 1 + 0 + 0 + 0 + + + 6889 + 500 + 0 + 0 + 0 + + + 6890 + 500 + 0 + 0 + 0 + + + 6891 + 1 + 0 + 0 + 0 + + + 6892 + 1 + 0 + 0 + 0 + + + 6893 + 1 + 0 + 0 + 0 + + + 6894 + 1 + 0 + 0 + 0 + + + 6895 + 1 + 0 + 0 + 0 + + + 6896 + 1 + 0 + 0 + 0 + + + 6897 + 1 + 0 + 0 + 0 + + + 6898 + 1 + 0 + 0 + 0 + + + 6899 + 1 + 0 + 0 + 0 + + + 6900 + 1 + 0 + 0 + 0 + + + 6901 + 1 + 0 + 0 + 0 + + + 6902 + 1 + 0 + 0 + 0 + + + 6903 + 1 + 0 + 0 + 0 + + + 6904 + 1 + 0 + 0 + 0 + + + 6905 + 1 + 0 + 0 + 0 + + + 6906 + 1 + 0 + 0 + 0 + + + 6907 + 1 + 0 + 0 + 0 + + + 6908 + 1200 + 0 + 0 + 0 + + + 6909 + 1200 + 0 + 0 + 0 + + + 6910 + 1500 + 0 + 0 + 0 + + + 6911 + 1500 + 0 + 0 + 0 + + + 6912 + 2000 + 0 + 0 + 0 + + + 6913 + 2000 + 0 + 0 + 0 + + + 6914 + 2500 + 0 + 0 + 0 + + + 6915 + 2500 + 0 + 0 + 0 + + + 6916 + 140000 + 0 + 0 + 0 + + + 6917 + 140000 + 0 + 0 + 0 + + + 6918 + 17000 + 0 + 0 + 0 + + + 6919 + 17000 + 0 + 0 + 0 + + + 6920 + 12000 + 0 + 0 + 0 + + + 6921 + 12000 + 0 + 0 + 0 + + + 6922 + 12000 + 0 + 0 + 0 + + + 6923 + 12000 + 0 + 0 + 0 + + + 6924 + 90000 + 0 + 0 + 0 + + + 6925 + 90000 + 0 + 0 + 0 + + + 6926 + 1 + 0 + 0 + 0 + + + 6927 + 1 + 0 + 0 + 0 + + + 6928 + 1 + 0 + 0 + 0 + + + 6929 + 1 + 0 + 0 + 0 + + + 6930 + 1 + 0 + 0 + 0 + + + 6931 + 1 + 0 + 0 + 0 + + + 6932 + 1 + 0 + 0 + 0 + + + 6933 + 1 + 0 + 0 + 0 + + + 6934 + 1 + 0 + 0 + 0 + + + 6935 + 1 + 0 + 0 + 0 + + + 6936 + 1 + 0 + 0 + 0 + + + 6937 + 1 + 0 + 0 + 0 + + + 6938 + 1 + 0 + 0 + 0 + + + 6939 + 1 + 0 + 0 + 0 + + + 6940 + 1 + 0 + 0 + 0 + + + 6941 + 1 + 0 + 0 + 0 + + + 6942 + 1 + 0 + 0 + 0 + + + 6943 + 1 + 0 + 0 + 0 + + + 6944 + 1 + 0 + 0 + 0 + + + 6945 + 1 + 0 + 0 + 0 + + + 6946 + 1 + 0 + 0 + 0 + + + 6947 + 1 + 0 + 0 + 0 + + + 6948 + 1 + 0 + 0 + 0 + + + 6949 + 1 + 0 + 0 + 0 + + + 6950 + 1 + 0 + 0 + 0 + + + 6951 + 1 + 0 + 0 + 0 + + + 6952 + 1 + 0 + 0 + 0 + + + 6953 + 1 + 0 + 0 + 0 + + + 6954 + 1 + 0 + 0 + 0 + + + 6955 + 1 + 0 + 0 + 0 + + + 6956 + 1 + 0 + 0 + 0 + + + 6957 + 1 + 0 + 0 + 0 + + + 6958 + 1 + 0 + 0 + 0 + + + 6959 + 1 + 0 + 0 + 0 + + + 6960 + 1 + 0 + 0 + 0 + + + 6961 + 25 + 0 + 0 + 0 + + + 6962 + 25 + 0 + 0 + 0 + + + 6963 + 25 + 0 + 0 + 0 + + + 6964 + 6 + 0 + 0 + 0 + + + 6965 + 25 + 0 + 0 + 0 + + + 6966 + 1 + 0 + 0 + 0 + + + 6967 + 6 + 0 + 0 + 0 + + + 6968 + 25 + 0 + 0 + 0 + + + 6969 + 6 + 0 + 0 + 0 + + + 6970 + 1 + 0 + 0 + 0 + + + 6971 + 1 + 0 + 0 + 0 + + + 6972 + 1 + 0 + 0 + 0 + + + 6973 + 1 + 0 + 0 + 0 + + + 6974 + 1 + 0 + 0 + 0 + + + 6975 + 1 + 0 + 0 + 0 + + + 6976 + 1 + 0 + 0 + 0 + + + 6977 + 1 + 0 + 0 + 0 + + + 6978 + 1 + 0 + 0 + 0 + + + 6979 + 1 + 0 + 0 + 0 + + + 6980 + 1 + 0 + 0 + 0 + + + 6981 + 1 + 0 + 0 + 0 + + + 6982 + 1 + 0 + 0 + 0 + + + 6983 + 1 + 0 + 0 + 0 + + + 6984 + 1 + 0 + 0 + 0 + + + 6985 + 1 + 0 + 0 + 0 + + + 6986 + 1 + 0 + 0 + 0 + + + 6987 + 1 + 0 + 0 + 0 + + + 6988 + 1 + 0 + 0 + 0 + + + 6989 + 1 + 0 + 0 + 0 + + + 6990 + 1 + 0 + 0 + 0 + + + 6991 + 1 + 0 + 0 + 0 + + + 6992 + 1 + 0 + 0 + 0 + + + 6993 + 1 + 0 + 0 + 0 + + + 6994 + 1 + 0 + 0 + 0 + + + 6995 + 1 + 0 + 0 + 0 + + + 6996 + 1 + 0 + 0 + 0 + + + 6997 + 1 + 0 + 0 + 0 + + + 6998 + 1 + 0 + 0 + 0 + + + 6999 + 1 + 0 + 0 + 0 + + + 7000 + 1 + 0 + 0 + 0 + + + 7001 + 1 + 0 + 0 + 0 + + + 7002 + 1 + 0 + 0 + 0 + + + 7003 + 1 + 0 + 0 + 0 + + + 7004 + 1 + 0 + 0 + 0 + + + 7005 + 1 + 0 + 0 + 0 + + + 7006 + 1 + 0 + 0 + 0 + + + 7007 + 1 + 0 + 0 + 0 + + + 7008 + 1 + 0 + 0 + 0 + + + 7009 + 1 + 0 + 0 + 0 + + + 7010 + 1 + 0 + 0 + 0 + + + 7011 + 1 + 0 + 0 + 0 + + + 7012 + 1 + 0 + 0 + 0 + + + 7013 + 1 + 0 + 0 + 0 + + + 7014 + 1 + 0 + 0 + 0 + + + 7015 + 1 + 0 + 0 + 0 + + + 7016 + 1 + 0 + 0 + 0 + + + 7017 + 1 + 0 + 0 + 0 + + + 7018 + 1 + 0 + 0 + 0 + + + 7019 + 1 + 0 + 0 + 0 + + + 7020 + 1 + 0 + 0 + 0 + + + 7021 + 1 + 0 + 0 + 0 + + + 7022 + 1 + 0 + 0 + 0 + + + 7023 + 1 + 0 + 0 + 0 + + + 7024 + 1 + 0 + 0 + 0 + + + 7025 + 1 + 0 + 0 + 0 + + + 7026 + 1 + 0 + 0 + 0 + + + 7027 + 1 + 0 + 0 + 0 + + + 7028 + 1 + 0 + 0 + 0 + + + 7029 + 1 + 0 + 0 + 0 + + + 7030 + 1 + 0 + 0 + 0 + + + 7031 + 1 + 0 + 0 + 0 + + + 7032 + 1 + 0 + 0 + 0 + + + 7033 + 1 + 0 + 0 + 0 + + + 7034 + 1 + 0 + 0 + 0 + + + 7035 + 1 + 0 + 0 + 0 + + + 7036 + 1 + 0 + 0 + 0 + + + 7037 + 1 + 0 + 0 + 0 + + + 7038 + 1 + 0 + 0 + 0 + + + 7039 + 1 + 0 + 0 + 0 + + + 7040 + 1 + 0 + 0 + 0 + + + 7041 + 1 + 0 + 0 + 0 + + + 7042 + 1 + 0 + 0 + 0 + + + 7043 + 1 + 0 + 0 + 0 + + + 7044 + 1 + 0 + 0 + 0 + + + 7045 + 1 + 0 + 0 + 0 + + + 7046 + 1 + 0 + 0 + 0 + + + 7047 + 1 + 0 + 0 + 0 + + + 7048 + 1 + 0 + 0 + 0 + + + 7049 + 1 + 0 + 0 + 0 + + + 7050 + 1 + 0 + 0 + 0 + + + 7051 + 130 + 0 + 0 + 0 + + + 7052 + 130 + 0 + 0 + 0 + + + 7053 + 130 + 0 + 0 + 0 + + + 7054 + 13 + 0 + 0 + 0 + + + 7055 + 13 + 0 + 0 + 0 + + + 7056 + 12 + 0 + 0 + 0 + + + 7057 + 12 + 0 + 0 + 0 + + + 7058 + 45 + 0 + 0 + 0 + + + 7059 + 45 + 0 + 0 + 0 + + + 7060 + 113 + 0 + 0 + 0 + + + 7061 + 113 + 0 + 0 + 0 + + + 7062 + 13 + 0 + 0 + 0 + + + 7063 + 13 + 0 + 0 + 0 + + + 7064 + 12 + 0 + 0 + 0 + + + 7065 + 12 + 0 + 0 + 0 + + + 7066 + 45 + 0 + 0 + 0 + + + 7067 + 45 + 0 + 0 + 0 + + + 7068 + 113 + 0 + 0 + 0 + + + 7069 + 113 + 0 + 0 + 0 + + + 7070 + 8 + 0 + 0 + 0 + + + 7071 + 8 + 0 + 0 + 0 + + + 7072 + 9 + 0 + 0 + 0 + + + 7073 + 9 + 0 + 0 + 0 + + + 7074 + 7 + 0 + 0 + 0 + + + 7075 + 7 + 0 + 0 + 0 + + + 7076 + 8 + 0 + 0 + 0 + + + 7077 + 8 + 0 + 0 + 0 + + + 7078 + 8 + 0 + 0 + 0 + + + 7079 + 8 + 0 + 0 + 0 + + + 7080 + 42 + 0 + 0 + 0 + + + 7081 + 42 + 0 + 0 + 0 + + + 7082 + 42 + 0 + 0 + 0 + + + 7083 + 42 + 0 + 0 + 0 + + + 7084 + 7 + 0 + 0 + 0 + + + 7085 + 7 + 0 + 0 + 0 + + + 7086 + 104 + 0 + 0 + 0 + + + 7087 + 104 + 0 + 0 + 0 + + + 7088 + 13 + 0 + 0 + 0 + + + 7089 + 13 + 0 + 0 + 0 + + + 7090 + 5 + 0 + 0 + 0 + + + 7091 + 5 + 0 + 0 + 0 + + + 7092 + 5 + 0 + 0 + 0 + + + 7093 + 5 + 0 + 0 + 0 + + + 7094 + 5 + 0 + 0 + 0 + + + 7095 + 5 + 0 + 0 + 0 + + + 7096 + 1 + 0 + 0 + 0 + + + 7097 + 1 + 0 + 0 + 0 + + + 7098 + 1 + 0 + 0 + 0 + + + 7099 + 1 + 0 + 0 + 0 + + + 7100 + 1 + 0 + 0 + 0 + + + 7101 + 1 + 0 + 0 + 0 + + + 7102 + 1 + 0 + 0 + 0 + + + 7103 + 1 + 0 + 0 + 0 + + + 7104 + 1 + 0 + 0 + 0 + + + 7105 + 1 + 0 + 0 + 0 + + + 7106 + 1 + 0 + 0 + 0 + + + 7107 + 1 + 0 + 0 + 0 + + + 7108 + 52 + 0 + 0 + 0 + + + 7109 + 52 + 0 + 0 + 0 + + + 7110 + 300 + 0 + 0 + 0 + + + 7111 + 300 + 0 + 0 + 0 + + + 7112 + 100 + 0 + 0 + 0 + + + 7113 + 100 + 0 + 0 + 0 + + + 7114 + 350 + 0 + 0 + 0 + + + 7115 + 350 + 0 + 0 + 0 + + + 7116 + 350 + 0 + 0 + 0 + + + 7117 + 350 + 0 + 0 + 0 + + + 7118 + 1 + 0 + 0 + 0 + + + 7119 + 1 + 0 + 0 + 0 + + + 7120 + 1 + 0 + 0 + 0 + + + 7121 + 1 + 0 + 0 + 0 + + + 7122 + 300 + 0 + 0 + 0 + + + 7123 + 300 + 0 + 0 + 0 + + + 7124 + 100 + 0 + 0 + 0 + + + 7125 + 100 + 0 + 0 + 0 + + + 7126 + 350 + 0 + 0 + 0 + + + 7127 + 350 + 0 + 0 + 0 + + + 7128 + 300 + 0 + 0 + 0 + + + 7129 + 300 + 0 + 0 + 0 + + + 7130 + 100 + 0 + 0 + 0 + + + 7131 + 100 + 0 + 0 + 0 + + + 7132 + 350 + 0 + 0 + 0 + + + 7133 + 350 + 0 + 0 + 0 + + + 7134 + 300 + 0 + 0 + 0 + + + 7135 + 300 + 0 + 0 + 0 + + + 7136 + 100 + 0 + 0 + 0 + + + 7137 + 100 + 0 + 0 + 0 + + + 7138 + 350 + 0 + 0 + 0 + + + 7139 + 350 + 0 + 0 + 0 + + + 7140 + 2560 + 0 + 0 + 0 + + + 7141 + 1040 + 0 + 0 + 0 + + + 7142 + 25600 + 0 + 0 + 0 + + + 7143 + 1 + 0 + 0 + 0 + + + 7144 + 1 + 0 + 0 + 0 + + + 7145 + 1 + 0 + 0 + 0 + + + 7146 + 1 + 0 + 0 + 0 + + + 7147 + 1 + 0 + 0 + 0 + + + 7148 + 1 + 0 + 0 + 0 + + + 7149 + 1 + 0 + 0 + 0 + + + 7150 + 1 + 0 + 0 + 0 + + + 7151 + 1 + 0 + 0 + 0 + + + 7152 + 1 + 0 + 0 + 0 + + + 7153 + 1 + 0 + 0 + 0 + + + 7154 + 1 + 0 + 0 + 0 + + + 7155 + 18 + 0 + 0 + 0 + + + 7156 + 1 + 0 + 0 + 0 + + + 7157 + 30 + 0 + 0 + 0 + + + 7158 + 220000 + 0 + 0 + 0 + + + 7159 + 200 + 0 + 0 + 0 + + + 7160 + 1 + 0 + 0 + 0 + + + 7161 + 200 + 0 + 0 + 0 + + + 7162 + 5 + 0 + 0 + 0 + + + 7163 + 5 + 0 + 0 + 0 + + + 7164 + 22 + 0 + 0 + 0 + + + 7165 + 22 + 0 + 0 + 0 + + + 7166 + 26 + 0 + 0 + 0 + + + 7167 + 26 + 0 + 0 + 0 + + + 7168 + 27 + 0 + 0 + 0 + + + 7169 + 27 + 0 + 0 + 0 + + + 7170 + 54 + 0 + 0 + 0 + + + 7171 + 54 + 0 + 0 + 0 + + + 7172 + 8 + 0 + 0 + 0 + + + 7173 + 8 + 0 + 0 + 0 + + + 7174 + 11 + 0 + 0 + 0 + + + 7175 + 11 + 0 + 0 + 0 + + + 7176 + 12 + 0 + 0 + 0 + + + 7177 + 12 + 0 + 0 + 0 + + + 7178 + 90 + 0 + 0 + 0 + + + 7179 + 90 + 0 + 0 + 0 + + + 7180 + 12 + 0 + 0 + 0 + + + 7181 + 12 + 0 + 0 + 0 + + + 7182 + 24 + 0 + 0 + 0 + + + 7183 + 24 + 0 + 0 + 0 + + + 7184 + 49 + 0 + 0 + 0 + + + 7185 + 49 + 0 + 0 + 0 + + + 7186 + 50 + 0 + 0 + 0 + + + 7187 + 50 + 0 + 0 + 0 + + + 7188 + 100 + 0 + 0 + 0 + + + 7189 + 100 + 0 + 0 + 0 + + + 7190 + 50 + 0 + 0 + 0 + + + 7191 + 50 + 0 + 0 + 0 + + + 7192 + 54 + 0 + 0 + 0 + + + 7193 + 54 + 0 + 0 + 0 + + + 7194 + 154 + 0 + 0 + 0 + + + 7195 + 154 + 0 + 0 + 0 + + + 7196 + 155 + 0 + 0 + 0 + + + 7197 + 155 + 0 + 0 + 0 + + + 7198 + 310 + 0 + 0 + 0 + + + 7199 + 310 + 0 + 0 + 0 + + + 7200 + 155 + 0 + 0 + 0 + + + 7201 + 155 + 0 + 0 + 0 + + + 7202 + 5 + 0 + 0 + 0 + + + 7203 + 5 + 0 + 0 + 0 + + + 7204 + 90 + 0 + 0 + 0 + + + 7205 + 90 + 0 + 0 + 0 + + + 7206 + 91 + 0 + 0 + 0 + + + 7207 + 91 + 0 + 0 + 0 + + + 7208 + 182 + 0 + 0 + 0 + + + 7209 + 182 + 0 + 0 + 0 + + + 7210 + 91 + 0 + 0 + 0 + + + 7211 + 91 + 0 + 0 + 0 + + + 7212 + 21 + 0 + 0 + 0 + + + 7213 + 21 + 0 + 0 + 0 + + + 7214 + 69 + 0 + 0 + 0 + + + 7215 + 69 + 0 + 0 + 0 + + + 7216 + 70 + 0 + 0 + 0 + + + 7217 + 70 + 0 + 0 + 0 + + + 7218 + 140 + 0 + 0 + 0 + + + 7219 + 140 + 0 + 0 + 0 + + + 7220 + 70 + 0 + 0 + 0 + + + 7221 + 70 + 0 + 0 + 0 + + + 7222 + 1 + 0 + 0 + 0 + + + 7223 + 20 + 0 + 0 + 0 + + + 7224 + 84 + 0 + 0 + 0 + + + 7225 + 64 + 0 + 0 + 0 + + + 7226 + 1 + 0 + 0 + 0 + + + 7227 + 1 + 0 + 0 + 0 + + + 7228 + 85 + 0 + 0 + 0 + + + 7229 + 85 + 0 + 0 + 0 + + + 7230 + 149 + 0 + 0 + 0 + + + 7231 + 1 + 0 + 0 + 0 + + + 7232 + 20 + 0 + 0 + 0 + + + 7233 + 84 + 0 + 0 + 0 + + + 7234 + 64 + 0 + 0 + 0 + + + 7235 + 149 + 0 + 0 + 0 + + + 7236 + 1 + 0 + 0 + 0 + + + 7237 + 50 + 0 + 0 + 0 + + + 7238 + 1 + 0 + 0 + 0 + + + 7239 + 1 + 0 + 0 + 0 + + + 7240 + 50 + 0 + 0 + 0 + + + 7241 + 1 + 0 + 0 + 0 + + + 7242 + 50 + 0 + 0 + 0 + + + 7243 + 1 + 0 + 0 + 0 + + + 7244 + 50 + 0 + 0 + 0 + + + 7245 + 1 + 0 + 0 + 0 + + + 7246 + 50 + 0 + 0 + 0 + + + 7247 + 1 + 0 + 0 + 0 + + + 7248 + 1 + 0 + 0 + 0 + + + 7249 + 1 + 0 + 0 + 0 + + + 7250 + 1 + 0 + 0 + 0 + + + 7251 + 1 + 0 + 0 + 0 + + + 7252 + 1 + 0 + 0 + 0 + + + 7253 + 1 + 0 + 0 + 0 + + + 7254 + 1 + 0 + 0 + 0 + + + 7255 + 1 + 0 + 0 + 0 + + + 7256 + 1 + 0 + 0 + 0 + + + 7257 + 50 + 0 + 0 + 0 + + + 7258 + 1 + 0 + 0 + 0 + + + 7259 + 50 + 0 + 0 + 0 + + + 7260 + 1 + 0 + 0 + 0 + + + 7261 + 50 + 0 + 0 + 0 + + + 7262 + 1 + 0 + 0 + 0 + + + 7263 + 50 + 0 + 0 + 0 + + + 7264 + 1 + 0 + 0 + 0 + + + 7265 + 50 + 0 + 0 + 0 + + + 7266 + 1 + 0 + 0 + 0 + + + 7267 + 50 + 0 + 0 + 0 + + + 7268 + 1 + 0 + 0 + 0 + + + 7269 + 1 + 0 + 0 + 0 + + + 7270 + 1 + 0 + 0 + 0 + + + 7271 + 1 + 0 + 0 + 0 + + + 7272 + 1 + 0 + 0 + 0 + + + 7273 + 1 + 0 + 0 + 0 + + + 7274 + 1 + 0 + 0 + 0 + + + 7275 + 1 + 0 + 0 + 0 + + + 7276 + 1 + 0 + 0 + 0 + + + 7277 + 1 + 0 + 0 + 0 + + + 7278 + 1 + 0 + 0 + 0 + + + 7279 + 1 + 0 + 0 + 0 + + + 7280 + 1 + 0 + 0 + 0 + + + 7281 + 1 + 0 + 0 + 0 + + + 7282 + 1 + 0 + 0 + 0 + + + 7283 + 1 + 0 + 0 + 0 + + + 7284 + 1 + 0 + 0 + 0 + + + 7285 + 1 + 0 + 0 + 0 + + + 7286 + 1 + 0 + 0 + 0 + + + 7287 + 50 + 0 + 0 + 0 + + + 7288 + 1 + 0 + 0 + 0 + + + 7289 + 50 + 0 + 0 + 0 + + + 7290 + 1 + 0 + 0 + 0 + + + 7291 + 50 + 0 + 0 + 0 + + + 7292 + 1 + 0 + 0 + 0 + + + 7293 + 50 + 0 + 0 + 0 + + + 7294 + 1 + 0 + 0 + 0 + + + 7295 + 50 + 0 + 0 + 0 + + + 7296 + 1 + 0 + 0 + 0 + + + 7297 + 1 + 0 + 0 + 0 + + + 7298 + 1 + 0 + 0 + 0 + + + 7299 + 1 + 0 + 0 + 0 + + + 7300 + 1 + 0 + 0 + 0 + + + 7301 + 1 + 0 + 0 + 0 + + + 7302 + 1 + 0 + 0 + 0 + + + 7303 + 1 + 0 + 0 + 0 + + + 7304 + 1 + 0 + 0 + 0 + + + 7305 + 1 + 0 + 0 + 0 + + + 7306 + 50 + 0 + 0 + 0 + + + 7307 + 1 + 0 + 0 + 0 + + + 7308 + 50 + 0 + 0 + 0 + + + 7309 + 1 + 0 + 0 + 0 + + + 7310 + 50 + 0 + 0 + 0 + + + 7311 + 1 + 0 + 0 + 0 + + + 7312 + 50 + 0 + 0 + 0 + + + 7313 + 1 + 0 + 0 + 0 + + + 7314 + 50 + 0 + 0 + 0 + + + 7315 + 1 + 0 + 0 + 0 + + + 7316 + 50 + 0 + 0 + 0 + + + 7317 + 1 + 0 + 0 + 0 + + + 7318 + 50 + 0 + 0 + 0 + + + 7319 + 225 + 0 + 0 + 0 + + + 7320 + 225 + 0 + 0 + 0 + + + 7321 + 225 + 0 + 0 + 0 + + + 7322 + 225 + 0 + 0 + 0 + + + 7323 + 225 + 0 + 0 + 0 + + + 7324 + 225 + 0 + 0 + 0 + + + 7325 + 225 + 0 + 0 + 0 + + + 7326 + 225 + 0 + 0 + 0 + + + 7327 + 225 + 0 + 0 + 0 + + + 7328 + 225 + 0 + 0 + 0 + + + 7329 + 15 + 0 + 0 + 0 + + + 7330 + 15 + 0 + 0 + 0 + + + 7331 + 15 + 0 + 0 + 0 + + + 7332 + 1632 + 0 + 0 + 0 + + + 7333 + 1632 + 0 + 0 + 0 + + + 7334 + 5440 + 0 + 0 + 0 + + + 7335 + 5440 + 0 + 0 + 0 + + + 7336 + 54400 + 0 + 0 + 0 + + + 7337 + 54400 + 0 + 0 + 0 + + + 7338 + 16325 + 0 + 0 + 0 + + + 7339 + 16325 + 0 + 0 + 0 + + + 7340 + 5440 + 0 + 0 + 0 + + + 7341 + 5440 + 0 + 0 + 0 + + + 7342 + 54400 + 0 + 0 + 0 + + + 7343 + 54400 + 0 + 0 + 0 + + + 7344 + 1632 + 0 + 0 + 0 + + + 7345 + 1632 + 0 + 0 + 0 + + + 7346 + 5440 + 0 + 0 + 0 + + + 7347 + 5440 + 0 + 0 + 0 + + + 7348 + 54400 + 0 + 0 + 0 + + + 7349 + 54400 + 0 + 0 + 0 + + + 7350 + 1632 + 0 + 0 + 0 + + + 7351 + 1632 + 0 + 0 + 0 + + + 7352 + 5440 + 0 + 0 + 0 + + + 7353 + 5440 + 0 + 0 + 0 + + + 7354 + 54400 + 0 + 0 + 0 + + + 7355 + 54400 + 0 + 0 + 0 + + + 7356 + 1632 + 0 + 0 + 0 + + + 7357 + 1632 + 0 + 0 + 0 + + + 7358 + 5440 + 0 + 0 + 0 + + + 7359 + 5440 + 0 + 0 + 0 + + + 7360 + 54400 + 0 + 0 + 0 + + + 7361 + 54400 + 0 + 0 + 0 + + + 7362 + 850 + 0 + 0 + 0 + + + 7363 + 850 + 0 + 0 + 0 + + + 7364 + 850 + 0 + 0 + 0 + + + 7365 + 850 + 0 + 0 + 0 + + + 7366 + 750 + 0 + 0 + 0 + + + 7367 + 750 + 0 + 0 + 0 + + + 7368 + 750 + 0 + 0 + 0 + + + 7369 + 750 + 0 + 0 + 0 + + + 7370 + 7800 + 0 + 0 + 0 + + + 7371 + 7800 + 0 + 0 + 0 + + + 7372 + 7800 + 0 + 0 + 0 + + + 7373 + 7800 + 0 + 0 + 0 + + + 7374 + 9360 + 0 + 0 + 0 + + + 7375 + 9360 + 0 + 0 + 0 + + + 7376 + 9360 + 0 + 0 + 0 + + + 7377 + 9360 + 0 + 0 + 0 + + + 7378 + 3900 + 0 + 0 + 0 + + + 7379 + 3900 + 0 + 0 + 0 + + + 7380 + 3900 + 0 + 0 + 0 + + + 7381 + 3900 + 0 + 0 + 0 + + + 7382 + 4320 + 0 + 0 + 0 + + + 7383 + 4320 + 0 + 0 + 0 + + + 7384 + 4320 + 0 + 0 + 0 + + + 7385 + 4320 + 0 + 0 + 0 + + + 7386 + 2 + 0 + 0 + 0 + + + 7387 + 2 + 0 + 0 + 0 + + + 7388 + 2 + 0 + 0 + 0 + + + 7389 + 2 + 0 + 0 + 0 + + + 7390 + 15 + 0 + 0 + 0 + + + 7391 + 15 + 0 + 0 + 0 + + + 7392 + 15 + 0 + 0 + 0 + + + 7393 + 15 + 0 + 0 + 0 + + + 7394 + 2 + 0 + 0 + 0 + + + 7395 + 2 + 0 + 0 + 0 + + + 7396 + 2 + 0 + 0 + 0 + + + 7397 + 2 + 0 + 0 + 0 + + + 7398 + 80000 + 0 + 0 + 0 + + + 7399 + 120000 + 0 + 0 + 0 + + + 7400 + 15000 + 0 + 0 + 0 + + + 7401 + 80000 + 0 + 0 + 0 + + + 7402 + 120000 + 0 + 0 + 0 + + + 7403 + 15000 + 0 + 0 + 0 + + + 7404 + 4 + 0 + 0 + 0 + + + 7405 + 4 + 0 + 0 + 0 + + + 7406 + 4 + 0 + 0 + 0 + + + 7407 + 220000 + 0 + 0 + 0 + + + 7408 + 1 + 0 + 0 + 0 + + + 7409 + 1 + 0 + 0 + 0 + + + 7410 + 1 + 0 + 0 + 0 + + + 7411 + 1 + 0 + 0 + 0 + + + 7412 + 1 + 0 + 0 + 0 + + + 7413 + 1 + 0 + 0 + 0 + + + 7414 + 1 + 0 + 0 + 0 + + + 7415 + 1 + 0 + 0 + 0 + + + 7416 + 600 + 0 + 0 + 0 + + + 7417 + 600 + 0 + 0 + 0 + + + 7418 + 400 + 0 + 0 + 0 + + + 7419 + 400 + 0 + 0 + 0 + + + 7420 + 1 + 0 + 0 + 0 + + + 7421 + 300 + 0 + 0 + 0 + + + 7422 + 1 + 0 + 0 + 0 + + + 7423 + 1 + 0 + 0 + 0 + + + 7424 + 1 + 0 + 0 + 0 + + + 7425 + 1 + 0 + 0 + 0 + + + 7426 + 1 + 0 + 0 + 0 + + + 7427 + 1 + 0 + 0 + 0 + + + 7428 + 1 + 0 + 0 + 0 + + + 7429 + 1 + 0 + 0 + 0 + + + 7430 + 1 + 0 + 0 + 0 + + + 7431 + 1 + 0 + 0 + 0 + + + 7432 + 10 + 0 + 0 + 0 + + + 7433 + 35 + 0 + 0 + 0 + + + 7434 + 35 + 0 + 0 + 0 + + + 7435 + 50 + 0 + 0 + 0 + + + 7436 + 50 + 0 + 0 + 0 + + + 7437 + 325 + 0 + 0 + 0 + + + 7438 + 325 + 0 + 0 + 0 + + + 7439 + 1920 + 0 + 0 + 0 + + + 7440 + 1920 + 0 + 0 + 0 + + + 7441 + 1660 + 0 + 0 + 0 + + + 7442 + 1660 + 0 + 0 + 0 + + + 7443 + 3200 + 0 + 0 + 0 + + + 7444 + 3200 + 0 + 0 + 0 + + + 7445 + 14400 + 0 + 0 + 0 + + + 7446 + 14400 + 0 + 0 + 0 + + + 7447 + 8000 + 0 + 0 + 0 + + + 7448 + 8000 + 0 + 0 + 0 + + + 7449 + 41500 + 0 + 0 + 0 + + + 7450 + 41500 + 0 + 0 + 0 + + + 7451 + 25600 + 0 + 0 + 0 + + + 7452 + 25600 + 0 + 0 + 0 + + + 7453 + 50 + 0 + 0 + 0 + + + 7454 + 100 + 0 + 0 + 0 + + + 7455 + 250 + 0 + 0 + 0 + + + 7456 + 500 + 0 + 0 + 0 + + + 7457 + 1000 + 0 + 0 + 0 + + + 7458 + 1500 + 0 + 0 + 0 + + + 7459 + 2500 + 0 + 0 + 0 + + + 7460 + 5000 + 0 + 0 + 0 + + + 7461 + 100000 + 0 + 0 + 0 + + + 7462 + 100000 + 0 + 0 + 0 + + + 7463 + 2 + 0 + 0 + 0 + + + 7464 + 1 + 0 + 0 + 0 + + + 7465 + 1 + 0 + 0 + 0 + + + 7466 + 1 + 0 + 0 + 0 + + + 7467 + 1 + 0 + 0 + 0 + + + 7468 + 10 + 0 + 0 + 0 + + + 7469 + 1 + 0 + 0 + 0 + + + 7470 + 1 + 0 + 0 + 0 + + + 7471 + 1 + 0 + 0 + 0 + + + 7472 + 1 + 0 + 0 + 0 + + + 7473 + 1 + 0 + 0 + 0 + + + 7474 + 1 + 0 + 0 + 0 + + + 7475 + 1 + 0 + 0 + 0 + + + 7476 + 1 + 0 + 0 + 0 + + + 7477 + 1 + 0 + 0 + 0 + + + 7478 + 1 + 0 + 0 + 0 + + + 7479 + 20 + 0 + 0 + 0 + + + 7480 + 1 + 0 + 0 + 0 + + + 7481 + 1 + 0 + 0 + 0 + + + 7482 + 1 + 0 + 0 + 0 + + + 7483 + 1 + 0 + 0 + 0 + + + 7484 + 1 + 0 + 0 + 0 + + + 7485 + 1 + 0 + 0 + 0 + + + 7486 + 1 + 0 + 0 + 0 + + + 7487 + 1 + 0 + 0 + 0 + + + 7488 + 1 + 0 + 0 + 0 + + + 7489 + 1 + 0 + 0 + 0 + + + 7490 + 1 + 0 + 0 + 0 + + + 7491 + 1 + 0 + 0 + 0 + + + 7492 + 1 + 0 + 0 + 0 + + + 7493 + 1 + 0 + 0 + 0 + + + 7494 + 1 + 0 + 0 + 0 + + + 7495 + 1 + 0 + 0 + 0 + + + 7496 + 1 + 0 + 0 + 0 + + + 7497 + 30 + 0 + 0 + 0 + + + 7498 + 1 + 0 + 0 + 0 + + + 7499 + 1 + 0 + 0 + 0 + + + 7500 + 1 + 0 + 0 + 0 + + + 7501 + 1 + 0 + 0 + 0 + + + 7502 + 1 + 0 + 0 + 0 + + + 7503 + 1 + 0 + 0 + 0 + + + 7504 + 1 + 0 + 0 + 0 + + + 7505 + 1 + 0 + 0 + 0 + + + 7506 + 1 + 0 + 0 + 0 + + + 7507 + 1 + 0 + 0 + 0 + + + 7508 + 2 + 0 + 0 + 0 + + + 7509 + 1 + 0 + 0 + 0 + + + 7510 + 1 + 0 + 0 + 0 + + + 7511 + 10 + 0 + 0 + 0 + + + 7512 + 6 + 0 + 0 + 0 + + + 7513 + 3 + 0 + 0 + 0 + + + 7514 + 2 + 0 + 0 + 0 + + + 7515 + 1 + 0 + 0 + 0 + + + 7516 + 1 + 0 + 0 + 0 + + + 7517 + 1 + 0 + 0 + 0 + + + 7518 + 1 + 0 + 0 + 0 + + + 7519 + 1 + 0 + 0 + 0 + + + 7520 + 1 + 0 + 0 + 0 + + + 7521 + 50 + 0 + 0 + 0 + + + 7522 + 50 + 0 + 0 + 0 + + + 7523 + 40 + 0 + 0 + 0 + + + 7524 + 30 + 0 + 0 + 0 + + + 7525 + 20 + 0 + 0 + 0 + + + 7526 + 10 + 0 + 0 + 0 + + + 7527 + 1 + 0 + 0 + 0 + + + 7528 + 1 + 0 + 0 + 0 + + + 7529 + 100 + 0 + 0 + 0 + + + 7530 + 100 + 0 + 0 + 0 + + + 7531 + 1 + 0 + 0 + 0 + + + 7532 + 1 + 0 + 0 + 0 + + + 7533 + 1 + 0 + 0 + 0 + + + 7534 + 1 + 0 + 0 + 0 + + + 7535 + 1 + 0 + 0 + 0 + + + 7536 + 1 + 0 + 0 + 0 + + + 7537 + 1 + 0 + 0 + 0 + + + 7538 + 1 + 0 + 0 + 0 + + + 7539 + 1 + 0 + 0 + 0 + + + 7540 + 1 + 0 + 0 + 0 + + + 7541 + 1 + 0 + 0 + 0 + + + 7542 + 50 + 0 + 0 + 0 + + + 7543 + 20 + 0 + 0 + 0 + + + 7544 + 4 + 0 + 0 + 0 + + + 7545 + 6 + 0 + 0 + 0 + + + 7546 + 10 + 0 + 0 + 0 + + + 7547 + 5 + 0 + 0 + 0 + + + 7548 + 1 + 0 + 0 + 0 + + + 7549 + 1 + 0 + 0 + 0 + + + 7550 + 1 + 0 + 0 + 0 + + + 7551 + 1 + 0 + 0 + 0 + + + 7552 + 1 + 0 + 0 + 0 + + + 7553 + 1 + 0 + 0 + 0 + + + 7554 + 1 + 0 + 0 + 0 + + + 7555 + 1 + 0 + 0 + 0 + + + 7556 + 1 + 0 + 0 + 0 + + + 7557 + 1 + 0 + 0 + 0 + + + 7558 + 1 + 0 + 0 + 0 + + + 7559 + 1 + 0 + 0 + 0 + + + 7560 + 1 + 0 + 0 + 0 + + + 7561 + 1 + 0 + 0 + 0 + + + 7562 + 1 + 0 + 0 + 0 + + + 7563 + 1 + 0 + 0 + 0 + + + 7564 + 1 + 0 + 0 + 0 + + + 7565 + 1 + 0 + 0 + 0 + + + 7566 + 100 + 0 + 0 + 0 + + + 7567 + 100 + 0 + 0 + 0 + + + 7568 + 150 + 0 + 0 + 0 + + + 7569 + 150 + 0 + 0 + 0 + + + 7570 + 1 + 0 + 0 + 0 + + + 7571 + 1 + 0 + 0 + 0 + + + 7572 + 5 + 0 + 0 + 0 + + + 7573 + 5 + 0 + 0 + 0 + + + 7574 + 5 + 0 + 0 + 0 + + + 7575 + 5 + 0 + 0 + 0 + + + 7576 + 1 + 0 + 0 + 0 + + + 7577 + 1 + 0 + 0 + 0 + + + 7578 + 1 + 0 + 0 + 0 + + + 7579 + 1 + 0 + 0 + 0 + + + 7580 + 1 + 0 + 0 + 0 + + + 7581 + 1 + 0 + 0 + 0 + + + 7582 + 1 + 0 + 0 + 0 + + + 7583 + 1 + 0 + 0 + 0 + + + 7584 + 1 + 0 + 0 + 0 + + + 7585 + 1 + 0 + 0 + 0 + + + 7586 + 1 + 0 + 0 + 0 + + + 7587 + 1 + 0 + 0 + 0 + + + 7588 + 1 + 0 + 0 + 0 + + + 7589 + 1 + 0 + 0 + 0 + + + 7590 + 1 + 0 + 0 + 0 + + + 7591 + 1 + 0 + 0 + 0 + + + 7592 + 1 + 0 + 0 + 0 + + + 7593 + 1 + 0 + 0 + 0 + + + 7594 + 1 + 0 + 0 + 0 + + + 7595 + 1 + 0 + 0 + 0 + + + 7596 + 1 + 0 + 0 + 0 + + + 7597 + 1 + 0 + 0 + 0 + + + 7598 + 1 + 0 + 0 + 0 + + + 7599 + 1 + 0 + 0 + 0 + + + 7600 + 1 + 0 + 0 + 0 + + + 7601 + 1 + 0 + 0 + 0 + + + 7602 + 1 + 0 + 0 + 0 + + + 7603 + 1 + 0 + 0 + 0 + + + 7604 + 1 + 0 + 0 + 0 + + + 7605 + 1 + 0 + 0 + 0 + + + 7606 + 1 + 0 + 0 + 0 + + + 7607 + 1 + 0 + 0 + 0 + + + 7608 + 1 + 0 + 0 + 0 + + + 7609 + 1 + 0 + 0 + 0 + + + 7610 + 1 + 0 + 0 + 0 + + + 7611 + 1 + 0 + 0 + 0 + + + 7612 + 1 + 0 + 0 + 0 + + + 7613 + 1 + 0 + 0 + 0 + + + 7614 + 1 + 0 + 0 + 0 + + + 7615 + 1 + 0 + 0 + 0 + + + 7616 + 1 + 0 + 0 + 0 + + + 7617 + 1 + 0 + 0 + 0 + + + 7618 + 1 + 0 + 0 + 0 + + + 7619 + 1 + 0 + 0 + 0 + + + 7620 + 1 + 0 + 0 + 0 + + + 7621 + 1 + 0 + 0 + 0 + + + 7622 + 1 + 0 + 0 + 0 + + + 7623 + 1 + 0 + 0 + 0 + + + 7624 + 1 + 0 + 0 + 0 + + + 7625 + 1 + 0 + 0 + 0 + + + 7626 + 1 + 0 + 0 + 0 + + + 7627 + 1 + 0 + 0 + 0 + + + 7628 + 1 + 0 + 0 + 0 + + + 7629 + 1 + 0 + 0 + 0 + + + 7630 + 1 + 0 + 0 + 0 + + + 7631 + 1 + 0 + 0 + 0 + + + 7632 + 1 + 0 + 0 + 0 + + + 7633 + 1 + 0 + 0 + 0 + + + 7634 + 1 + 0 + 0 + 0 + + + 7635 + 1 + 0 + 0 + 0 + + + 7636 + 1 + 0 + 0 + 0 + + + 7637 + 1 + 0 + 0 + 0 + + + 7638 + 1 + 0 + 0 + 0 + + + 7639 + 1000 + 0 + 0 + 0 + + + 7640 + 1000 + 0 + 0 + 0 + + + 7641 + 1000 + 0 + 0 + 0 + + + 7642 + 1000 + 0 + 0 + 0 + + + 7643 + 1000 + 0 + 0 + 0 + + + 7644 + 1000 + 0 + 0 + 0 + + + 7645 + 1000 + 0 + 0 + 0 + + + 7646 + 1000 + 0 + 0 + 0 + + + 7647 + 1000 + 0 + 0 + 0 + + + 7648 + 1000 + 0 + 0 + 0 + + + 7649 + 100 + 0 + 0 + 0 + + + 7650 + 200 + 0 + 0 + 0 + + + 7651 + 200 + 0 + 0 + 0 + + + 7652 + 110 + 0 + 0 + 0 + + + 7653 + 110 + 0 + 0 + 0 + + + 7654 + 110 + 0 + 0 + 0 + + + 7655 + 110 + 0 + 0 + 0 + + + 7656 + 110 + 0 + 0 + 0 + + + 7657 + 110 + 0 + 0 + 0 + + + 7658 + 110 + 0 + 0 + 0 + + + 7659 + 110 + 0 + 0 + 0 + + + 7660 + 200 + 0 + 0 + 0 + + + 7661 + 200 + 0 + 0 + 0 + + + 7662 + 200 + 0 + 0 + 0 + + + 7663 + 200 + 0 + 0 + 0 + + + 7664 + 200 + 0 + 0 + 0 + + + 7665 + 200 + 0 + 0 + 0 + + + 7666 + 200 + 0 + 0 + 0 + + + 7667 + 200 + 0 + 0 + 0 + + + 7668 + 3000 + 0 + 0 + 0 + + + 7669 + 3000 + 0 + 0 + 0 + + + 7670 + 1 + 0 + 0 + 0 + + + 7671 + 1 + 0 + 0 + 0 + + + 7672 + 1 + 0 + 0 + 0 + + + 7673 + 1 + 0 + 0 + 0 + + + 7674 + 1 + 0 + 0 + 0 + + + 7675 + 1 + 0 + 0 + 0 + + + 7676 + 1 + 0 + 0 + 0 + + + 7677 + 1 + 0 + 0 + 0 + + + 7678 + 1 + 0 + 0 + 0 + + + 7679 + 1 + 0 + 0 + 0 + + + 7680 + 1 + 0 + 0 + 0 + + + 7681 + 1 + 0 + 0 + 0 + + + 7682 + 1 + 0 + 0 + 0 + + + 7683 + 1 + 0 + 0 + 0 + + + 7684 + 1 + 0 + 0 + 0 + + + 7685 + 1 + 0 + 0 + 0 + + + 7686 + 1 + 0 + 0 + 0 + + + 7687 + 1 + 0 + 0 + 0 + + + 7688 + 1 + 0 + 0 + 0 + + + 7689 + 1 + 0 + 0 + 0 + + + 7690 + 1 + 0 + 0 + 0 + + + 7691 + 1 + 0 + 0 + 0 + + + 7692 + 1 + 0 + 0 + 0 + + + 7693 + 1 + 0 + 0 + 0 + + + 7694 + 1 + 0 + 0 + 0 + + + 7695 + 1 + 0 + 0 + 0 + + + 7696 + 1 + 0 + 0 + 0 + + + 7697 + 1 + 0 + 0 + 0 + + + 7698 + 1 + 0 + 0 + 0 + + + 7699 + 1 + 0 + 0 + 0 + + + 7700 + 1 + 0 + 0 + 0 + + + 7701 + 1 + 0 + 0 + 0 + + + 7702 + 1 + 0 + 0 + 0 + + + 7703 + 1 + 0 + 0 + 0 + + + 7704 + 1 + 0 + 0 + 0 + + + 7705 + 1 + 0 + 0 + 0 + + + 7706 + 1 + 0 + 0 + 0 + + + 7707 + 1 + 0 + 0 + 0 + + + 7708 + 1 + 0 + 0 + 0 + + + 7709 + 1 + 0 + 0 + 0 + + + 7710 + 1 + 0 + 0 + 0 + + + 7711 + 1 + 0 + 0 + 0 + + + 7712 + 1 + 0 + 0 + 0 + + + 7713 + 1 + 0 + 0 + 0 + + + 7714 + 1 + 0 + 0 + 0 + + + 7715 + 1 + 0 + 0 + 0 + + + 7716 + 1 + 0 + 0 + 0 + + + 7717 + 1 + 0 + 0 + 0 + + + 7718 + 1 + 0 + 0 + 0 + + + 7719 + 1 + 0 + 0 + 0 + + + 7720 + 1 + 0 + 0 + 0 + + + 7721 + 1 + 0 + 0 + 0 + + + 7722 + 1 + 0 + 0 + 0 + + + 7723 + 1 + 0 + 0 + 0 + + + 7724 + 1 + 0 + 0 + 0 + + + 7725 + 1 + 0 + 0 + 0 + + + 7726 + 1 + 0 + 0 + 0 + + + 7727 + 1 + 0 + 0 + 0 + + + 7728 + 2 + 0 + 0 + 0 + + + 7729 + 2 + 0 + 0 + 0 + + + 7730 + 10 + 0 + 0 + 0 + + + 7731 + 10 + 0 + 0 + 0 + + + 7732 + 2 + 0 + 0 + 0 + + + 7733 + 10 + 0 + 0 + 0 + + + 7734 + 10 + 0 + 0 + 0 + + + 7735 + 2 + 0 + 0 + 0 + + + 7736 + 10 + 0 + 0 + 0 + + + 7737 + 10 + 0 + 0 + 0 + + + 7738 + 1 + 0 + 0 + 0 + + + 7739 + 1 + 0 + 0 + 0 + + + 7740 + 2 + 0 + 0 + 0 + + + 7741 + 2 + 0 + 0 + 0 + + + 7742 + 2 + 0 + 0 + 0 + + + 7743 + 2 + 0 + 0 + 0 + + + 7744 + 2 + 0 + 0 + 0 + + + 7745 + 2 + 0 + 0 + 0 + + + 7746 + 2 + 0 + 0 + 0 + + + 7747 + 2 + 0 + 0 + 0 + + + 7748 + 2 + 0 + 0 + 0 + + + 7749 + 2 + 0 + 0 + 0 + + + 7750 + 5 + 0 + 0 + 0 + + + 7751 + 5 + 0 + 0 + 0 + + + 7752 + 2 + 0 + 0 + 0 + + + 7753 + 2 + 0 + 0 + 0 + + + 7754 + 2 + 0 + 0 + 0 + + + 7755 + 2 + 0 + 0 + 0 + + + 7756 + 1 + 0 + 0 + 0 + + + 7757 + 1 + 0 + 0 + 0 + + + 7758 + 1 + 0 + 0 + 0 + + + 7759 + 10 + 0 + 0 + 0 + + + 7760 + 10 + 0 + 0 + 0 + + + 7761 + 10 + 0 + 0 + 0 + + + 7762 + 10 + 0 + 0 + 0 + + + 7763 + 10 + 0 + 0 + 0 + + + 7764 + 10 + 0 + 0 + 0 + + + 7765 + 10 + 0 + 0 + 0 + + + 7766 + 10 + 0 + 0 + 0 + + + 7767 + 10 + 0 + 0 + 0 + + + 7768 + 10 + 0 + 0 + 0 + + + 7769 + 10 + 0 + 0 + 0 + + + 7770 + 10 + 0 + 0 + 0 + + + 7771 + 10 + 0 + 0 + 0 + + + 7772 + 10 + 0 + 0 + 0 + + + 7773 + 1 + 0 + 0 + 0 + + + 7774 + 1 + 0 + 0 + 0 + + + 7775 + 1 + 0 + 0 + 0 + + + 7776 + 1 + 0 + 0 + 0 + + + 7777 + 1 + 0 + 0 + 0 + + + 7778 + 1 + 0 + 0 + 0 + + + 7779 + 5000 + 0 + 0 + 0 + + + 7780 + 5000 + 0 + 0 + 0 + + + 7781 + 5000 + 0 + 0 + 0 + + + 7782 + 5000 + 0 + 0 + 0 + + + 7783 + 5000 + 0 + 0 + 0 + + + 7784 + 5000 + 0 + 0 + 0 + + + 7785 + 5000 + 0 + 0 + 0 + + + 7786 + 5000 + 0 + 0 + 0 + + + 7787 + 5000 + 0 + 0 + 0 + + + 7788 + 5000 + 0 + 0 + 0 + + + 7789 + 5000 + 0 + 0 + 0 + + + 7790 + 5000 + 0 + 0 + 0 + + + 7791 + 5000 + 0 + 0 + 0 + + + 7792 + 5000 + 0 + 0 + 0 + + + 7793 + 5000 + 0 + 0 + 0 + + + 7794 + 5000 + 0 + 0 + 0 + + + 7795 + 5000 + 0 + 0 + 0 + + + 7796 + 5000 + 0 + 0 + 0 + + + 7797 + 5000 + 0 + 0 + 0 + + + 7798 + 5000 + 0 + 0 + 0 + + + 7799 + 5000 + 0 + 0 + 0 + + + 7800 + 1 + 0 + 0 + 0 + + + 7801 + 35 + 0 + 0 + 0 + + + 7802 + 35 + 0 + 0 + 0 + + + 7803 + 1 + 0 + 0 + 0 + + + 7804 + 625 + 0 + 0 + 0 + + + 7805 + 625 + 0 + 0 + 0 + + + 7806 + 26 + 0 + 0 + 0 + + + 7807 + 182 + 0 + 0 + 0 + + + 7808 + 18 + 0 + 0 + 0 + + + 7809 + 26 + 0 + 0 + 0 + + + 7810 + 1 + 0 + 0 + 0 + + + 7811 + 1 + 0 + 0 + 0 + + + 7812 + 1 + 0 + 0 + 0 + + + 7813 + 1 + 0 + 0 + 0 + + + 7814 + 1 + 0 + 0 + 0 + + + 7815 + 1 + 0 + 0 + 0 + + + 7816 + 1 + 0 + 0 + 0 + + + 7817 + 1 + 0 + 0 + 0 + + + 7818 + 1 + 0 + 0 + 0 + + + 7819 + 1 + 0 + 0 + 0 + + + 7820 + 1 + 0 + 0 + 0 + + + 7821 + 1 + 0 + 0 + 0 + + + 7822 + 1 + 0 + 0 + 0 + + + 7823 + 1 + 0 + 0 + 0 + + + 7824 + 1 + 0 + 0 + 0 + + + 7825 + 1 + 0 + 0 + 0 + + + 7826 + 1 + 0 + 0 + 0 + + + 7827 + 1 + 0 + 0 + 0 + + + 7828 + 1 + 0 + 0 + 0 + + + 7829 + 1 + 0 + 0 + 0 + + + 7830 + 1 + 0 + 0 + 0 + + + 7831 + 1 + 0 + 0 + 0 + + + 7832 + 1 + 0 + 0 + 0 + + + 7833 + 1 + 0 + 0 + 0 + + + 7834 + 1 + 0 + 0 + 0 + + + 7835 + 1 + 0 + 0 + 0 + + + 7836 + 1 + 0 + 0 + 0 + + + 7837 + 1 + 0 + 0 + 0 + + + 7838 + 1 + 0 + 0 + 0 + + + 7839 + 1 + 0 + 0 + 0 + + + 7840 + 1 + 0 + 0 + 0 + + + 7841 + 1 + 0 + 0 + 0 + + + 7842 + 1 + 0 + 0 + 0 + + + 7843 + 1 + 0 + 0 + 0 + + + 7844 + 1 + 0 + 0 + 0 + + + 7845 + 1 + 0 + 0 + 0 + + + 7846 + 1 + 0 + 0 + 0 + + + 7847 + 1 + 0 + 0 + 0 + + + 7848 + 1 + 0 + 0 + 0 + + + 7849 + 1 + 0 + 0 + 0 + + + 7850 + 1 + 0 + 0 + 0 + + + 7851 + 1 + 0 + 0 + 0 + + + 7852 + 1 + 0 + 0 + 0 + + + 7853 + 1 + 0 + 0 + 0 + + + 7854 + 1 + 0 + 0 + 0 + + + 7855 + 1 + 0 + 0 + 0 + + + 7856 + 1 + 0 + 0 + 0 + + + 7857 + 1 + 0 + 0 + 0 + + + 7858 + 1 + 0 + 0 + 0 + + + 7859 + 1 + 0 + 0 + 0 + + + 7860 + 1 + 0 + 0 + 0 + + + 7861 + 1 + 0 + 0 + 0 + + + 7862 + 1 + 0 + 0 + 0 + + + 7863 + 1 + 0 + 0 + 0 + + + 7864 + 1 + 0 + 0 + 0 + + + 7865 + 1 + 0 + 0 + 0 + + + 7866 + 1 + 0 + 0 + 0 + + + 7867 + 1 + 0 + 0 + 0 + + + 7868 + 1 + 0 + 0 + 0 + + + 7869 + 1 + 0 + 0 + 0 + + + 7870 + 1 + 0 + 0 + 0 + + + 7871 + 1 + 0 + 0 + 0 + + + 7872 + 1 + 0 + 0 + 0 + + + 7873 + 1 + 0 + 0 + 0 + + + 7874 + 1 + 0 + 0 + 0 + + + 7875 + 1 + 0 + 0 + 0 + + + 7876 + 1 + 0 + 0 + 0 + + + 7877 + 1 + 0 + 0 + 0 + + + 7878 + 1 + 0 + 0 + 0 + + + 7879 + 1 + 0 + 0 + 0 + + + 7880 + 1 + 0 + 0 + 0 + + + 7881 + 1 + 0 + 0 + 0 + + + 7882 + 1 + 0 + 0 + 0 + + + 7883 + 1 + 0 + 0 + 0 + + + 7884 + 1 + 0 + 0 + 0 + + + 7885 + 1 + 0 + 0 + 0 + + + 7886 + 1 + 0 + 0 + 0 + + + 7887 + 1 + 0 + 0 + 0 + + + 7888 + 1 + 0 + 0 + 0 + + + 7889 + 1 + 0 + 0 + 0 + + + 7890 + 1 + 0 + 0 + 0 + + + 7891 + 1 + 0 + 0 + 0 + + + 7892 + 1 + 0 + 0 + 0 + + + 7893 + 1 + 0 + 0 + 0 + + + 7894 + 1 + 0 + 0 + 0 + + + 7895 + 1 + 0 + 0 + 0 + + + 7896 + 1 + 0 + 0 + 0 + + + 7897 + 1 + 0 + 0 + 0 + + + 7898 + 1 + 0 + 0 + 0 + + + 7899 + 1 + 0 + 0 + 0 + + + 7900 + 1 + 0 + 0 + 0 + + + 7901 + 1 + 0 + 0 + 0 + + + 7902 + 1 + 0 + 0 + 0 + + + 7903 + 1 + 0 + 0 + 0 + + + 7904 + 1 + 0 + 0 + 0 + + + 7905 + 1 + 0 + 0 + 0 + + + 7906 + 1 + 0 + 0 + 0 + + + 7907 + 1 + 0 + 0 + 0 + + + 7908 + 1 + 0 + 0 + 0 + + + 7909 + 1 + 0 + 0 + 0 + + + 7910 + 1 + 0 + 0 + 0 + + + 7911 + 1 + 0 + 0 + 0 + + + 7912 + 1 + 0 + 0 + 0 + + + 7913 + 1 + 0 + 0 + 0 + + + 7914 + 1 + 0 + 0 + 0 + + + 7915 + 1 + 0 + 0 + 0 + + + 7916 + 1 + 0 + 0 + 0 + + + 7917 + 1 + 0 + 0 + 0 + + + 7918 + 1 + 0 + 0 + 0 + + + 7919 + 500 + 0 + 0 + 0 + + + 7920 + 500 + 0 + 0 + 0 + + + 7921 + 1 + 0 + 0 + 0 + + + 7922 + 1 + 0 + 0 + 0 + + + 7923 + 1 + 0 + 0 + 0 + + + 7924 + 1 + 0 + 0 + 0 + + + 7925 + 1 + 0 + 0 + 0 + + + 7926 + 1 + 0 + 0 + 0 + + + 7927 + 1 + 0 + 0 + 0 + + + 7928 + 1 + 0 + 0 + 0 + + + 7929 + 1 + 0 + 0 + 0 + + + 7930 + 1 + 0 + 0 + 0 + + + 7931 + 1 + 0 + 0 + 0 + + + 7932 + 1 + 0 + 0 + 0 + + + 7933 + 1 + 0 + 0 + 0 + + + 7934 + 390 + 0 + 0 + 0 + + + 7935 + 390 + 0 + 0 + 0 + + + 7936 + 4 + 0 + 0 + 0 + + + 7937 + 4 + 0 + 0 + 0 + + + 7938 + 4 + 0 + 0 + 0 + + + 7939 + 1000 + 0 + 0 + 0 + + + 7940 + 1000 + 0 + 0 + 0 + + + 7941 + 30 + 0 + 0 + 0 + + + 7942 + 10 + 0 + 0 + 0 + + + 7943 + 10 + 0 + 0 + 0 + + + 7944 + 230 + 0 + 0 + 0 + + + 7945 + 230 + 0 + 0 + 0 + + + 7946 + 230 + 0 + 0 + 0 + + + 7947 + 230 + 0 + 0 + 0 + + + 7948 + 3 + 0 + 0 + 0 + + + 7949 + 3 + 0 + 0 + 0 + + + 7950 + 30 + 0 + 0 + 0 + + + 7951 + 1 + 0 + 0 + 0 + + + 7952 + 1 + 0 + 0 + 0 + + + 7953 + 1 + 0 + 0 + 0 + + + 7954 + 1 + 0 + 0 + 0 + + + 7955 + 1 + 0 + 0 + 0 + + + 7956 + 50 + 0 + 0 + 0 + + + 7957 + 1 + 0 + 0 + 0 + + + 7958 + 10 + 0 + 0 + 0 + + + 7959 + 10 + 0 + 0 + 0 + + + 7960 + 10 + 0 + 0 + 0 + + + 7961 + 10 + 0 + 0 + 0 + + + 7962 + 10 + 0 + 0 + 0 + + + 7963 + 10 + 0 + 0 + 0 + + + 7964 + 10 + 0 + 0 + 0 + + + 7965 + 10 + 0 + 0 + 0 + + + 7966 + 10 + 0 + 0 + 0 + + + 7967 + 5 + 0 + 0 + 0 + + + 7968 + 10 + 0 + 0 + 0 + + + 7969 + 5 + 0 + 0 + 0 + + + 7970 + 5 + 0 + 0 + 0 + + + 7971 + 5 + 0 + 0 + 0 + + + 7972 + 5 + 0 + 0 + 0 + + + 7973 + 5 + 0 + 0 + 0 + + + 7974 + 10 + 0 + 0 + 0 + + + 7975 + 1000 + 0 + 0 + 0 + + + 7976 + 2000 + 0 + 0 + 0 + + + 7977 + 4000 + 0 + 0 + 0 + + + 7978 + 6000 + 0 + 0 + 0 + + + 7979 + 12000 + 0 + 0 + 0 + + + 7980 + 50000 + 0 + 0 + 0 + + + 7981 + 50000 + 0 + 0 + 0 + + + 7982 + 1000 + 0 + 0 + 0 + + + 7983 + 2000 + 0 + 0 + 0 + + + 7984 + 4000 + 0 + 0 + 0 + + + 7985 + 6000 + 0 + 0 + 0 + + + 7986 + 12000 + 0 + 0 + 0 + + + 7987 + 50000 + 0 + 0 + 0 + + + 7988 + 50000 + 0 + 0 + 0 + + + 7989 + 1000 + 0 + 0 + 0 + + + 7990 + 1000 + 0 + 0 + 0 + + + 7991 + 2500 + 0 + 0 + 0 + + + 7992 + 2500 + 0 + 0 + 0 + + + 7993 + 5000 + 0 + 0 + 0 + + + 7994 + 5000 + 0 + 0 + 0 + + + 7995 + 1000 + 0 + 0 + 0 + + + 7996 + 1000 + 0 + 0 + 0 + + + 7997 + 1000 + 0 + 0 + 0 + + + 7998 + 1000 + 0 + 0 + 0 + + + 7999 + 2000 + 0 + 0 + 0 + + + 8000 + 2000 + 0 + 0 + 0 + + + 8001 + 2000 + 0 + 0 + 0 + + + 8002 + 2000 + 0 + 0 + 0 + + + 8003 + 2000 + 0 + 0 + 0 + + + 8004 + 1000 + 0 + 0 + 0 + + + 8005 + 1000 + 0 + 0 + 0 + + + 8006 + 1000 + 0 + 0 + 0 + + + 8007 + 1 + 0 + 0 + 0 + + + 8008 + 1 + 0 + 0 + 0 + + + 8009 + 1 + 0 + 0 + 0 + + + 8010 + 1 + 0 + 0 + 0 + + + 8011 + 1 + 0 + 0 + 0 + + + 8012 + 1 + 0 + 0 + 0 + + + 8013 + 1 + 0 + 0 + 0 + + + 8014 + 1 + 0 + 0 + 0 + + + 8015 + 1 + 0 + 0 + 0 + + + 8016 + 1 + 0 + 0 + 0 + + + 8017 + 1 + 0 + 0 + 0 + + + 8018 + 1 + 0 + 0 + 0 + + + 8019 + 1 + 0 + 0 + 0 + + + 8020 + 1 + 0 + 0 + 0 + + + 8021 + 1 + 0 + 0 + 0 + + + 8022 + 1 + 0 + 0 + 0 + + + 8023 + 1 + 0 + 0 + 0 + + + 8024 + 1 + 0 + 0 + 0 + + + 8025 + 1 + 0 + 0 + 0 + + + 8026 + 1 + 0 + 0 + 0 + + + 8027 + 1 + 0 + 0 + 0 + + + 8028 + 1 + 0 + 0 + 0 + + + 8029 + 1 + 0 + 0 + 0 + + + 8030 + 1 + 0 + 0 + 0 + + + 8031 + 1 + 0 + 0 + 0 + + + 8032 + 1 + 0 + 0 + 0 + + + 8033 + 1 + 0 + 0 + 0 + + + 8034 + 1 + 0 + 0 + 0 + + + 8035 + 1 + 0 + 0 + 0 + + + 8036 + 1 + 0 + 0 + 0 + + + 8037 + 1 + 0 + 0 + 0 + + + 8038 + 1 + 0 + 0 + 0 + + + 8039 + 1 + 0 + 0 + 0 + + + 8040 + 1 + 0 + 0 + 0 + + + 8041 + 1 + 0 + 0 + 0 + + + 8042 + 1 + 0 + 0 + 0 + + + 8043 + 1 + 0 + 0 + 0 + + + 8044 + 1 + 0 + 0 + 0 + + + 8045 + 1 + 0 + 0 + 0 + + + 8046 + 1 + 0 + 0 + 0 + + + 8047 + 1 + 0 + 0 + 0 + + + 8048 + 1 + 0 + 0 + 0 + + + 8049 + 1 + 0 + 0 + 0 + + + 8050 + 1 + 0 + 0 + 0 + + + 8051 + 1 + 0 + 0 + 0 + + + 8052 + 1 + 0 + 0 + 0 + + + 8053 + 1 + 0 + 0 + 0 + + + 8054 + 1 + 0 + 0 + 0 + + + 8055 + 1 + 0 + 0 + 0 + + + 8056 + 1 + 0 + 0 + 0 + + + 8057 + 1 + 0 + 0 + 0 + + + 8058 + 1 + 0 + 0 + 0 + + + 8059 + 1 + 0 + 0 + 0 + + + 8060 + 1 + 0 + 0 + 0 + + + 8061 + 1 + 0 + 0 + 0 + + + 8062 + 1 + 0 + 0 + 0 + + + 8063 + 1 + 0 + 0 + 0 + + + 8064 + 1 + 0 + 0 + 0 + + + 8065 + 1 + 0 + 0 + 0 + + + 8066 + 1 + 0 + 0 + 0 + + + 8067 + 1 + 0 + 0 + 0 + + + 8068 + 1 + 0 + 0 + 0 + + + 8069 + 1 + 0 + 0 + 0 + + + 8070 + 1 + 0 + 0 + 0 + + + 8071 + 1 + 0 + 0 + 0 + + + 8072 + 1 + 0 + 0 + 0 + + + 8073 + 1 + 0 + 0 + 0 + + + 8074 + 1 + 0 + 0 + 0 + + + 8075 + 1 + 0 + 0 + 0 + + + 8076 + 1 + 0 + 0 + 0 + + + 8077 + 1 + 0 + 0 + 0 + + + 8078 + 1 + 0 + 0 + 0 + + + 8079 + 1 + 0 + 0 + 0 + + + 8080 + 1 + 0 + 0 + 0 + + + 8081 + 1 + 0 + 0 + 0 + + + 8082 + 1 + 0 + 0 + 0 + + + 8083 + 1 + 0 + 0 + 0 + + + 8084 + 1 + 0 + 0 + 0 + + + 8085 + 1 + 0 + 0 + 0 + + + 8086 + 1 + 0 + 0 + 0 + + + 8087 + 1 + 0 + 0 + 0 + + + 8088 + 1 + 0 + 0 + 0 + + + 8089 + 1 + 0 + 0 + 0 + + + 8090 + 1 + 0 + 0 + 0 + + + 8091 + 1 + 0 + 0 + 0 + + + 8092 + 1 + 0 + 0 + 0 + + + 8093 + 1 + 0 + 0 + 0 + + + 8094 + 1 + 0 + 0 + 0 + + + 8095 + 1 + 0 + 0 + 0 + + + 8096 + 1 + 0 + 0 + 0 + + + 8097 + 1 + 0 + 0 + 0 + + + 8098 + 1 + 0 + 0 + 0 + + + 8099 + 1 + 0 + 0 + 0 + + + 8100 + 1 + 0 + 0 + 0 + + + 8101 + 1 + 0 + 0 + 0 + + + 8102 + 1 + 0 + 0 + 0 + + + 8103 + 1 + 0 + 0 + 0 + + + 8104 + 1 + 0 + 0 + 0 + + + 8105 + 1 + 0 + 0 + 0 + + + 8106 + 1 + 0 + 0 + 0 + + + 8107 + 1 + 0 + 0 + 0 + + + 8108 + 1 + 0 + 0 + 0 + + + 8109 + 1 + 0 + 0 + 0 + + + 8110 + 1 + 0 + 0 + 0 + + + 8111 + 1 + 0 + 0 + 0 + + + 8112 + 1 + 0 + 0 + 0 + + + 8113 + 1 + 0 + 0 + 0 + + + 8114 + 1 + 0 + 0 + 0 + + + 8115 + 1 + 0 + 0 + 0 + + + 8116 + 1 + 0 + 0 + 0 + + + 8117 + 1 + 0 + 0 + 0 + + + 8118 + 1 + 0 + 0 + 0 + + + 8119 + 1 + 0 + 0 + 0 + + + 8120 + 1 + 0 + 0 + 0 + + + 8121 + 1 + 0 + 0 + 0 + + + 8122 + 1 + 0 + 0 + 0 + + + 8123 + 1 + 0 + 0 + 0 + + + 8124 + 1 + 0 + 0 + 0 + + + 8125 + 1 + 0 + 0 + 0 + + + 8126 + 1 + 0 + 0 + 0 + + + 8127 + 1 + 0 + 0 + 0 + + + 8128 + 1 + 0 + 0 + 0 + + + 8129 + 1 + 0 + 0 + 0 + + + 8130 + 1 + 0 + 0 + 0 + + + 8131 + 1 + 0 + 0 + 0 + + + 8132 + 1 + 0 + 0 + 0 + + + 8133 + 1 + 0 + 0 + 0 + + + 8134 + 1 + 0 + 0 + 0 + + + 8135 + 1 + 0 + 0 + 0 + + + 8136 + 1 + 0 + 0 + 0 + + + 8137 + 1 + 0 + 0 + 0 + + + 8138 + 1 + 0 + 0 + 0 + + + 8139 + 1 + 0 + 0 + 0 + + + 8140 + 1 + 0 + 0 + 0 + + + 8141 + 1 + 0 + 0 + 0 + + + 8142 + 1 + 0 + 0 + 0 + + + 8143 + 1 + 0 + 0 + 0 + + + 8144 + 1 + 0 + 0 + 0 + + + 8145 + 1 + 0 + 0 + 0 + + + 8146 + 1 + 0 + 0 + 0 + + + 8147 + 1 + 0 + 0 + 0 + + + 8148 + 1 + 0 + 0 + 0 + + + 8149 + 1 + 0 + 0 + 0 + + + 8150 + 1 + 0 + 0 + 0 + + + 8151 + 1 + 0 + 0 + 0 + + + 8152 + 1 + 0 + 0 + 0 + + + 8153 + 1 + 0 + 0 + 0 + + + 8154 + 1 + 0 + 0 + 0 + + + 8155 + 1 + 0 + 0 + 0 + + + 8156 + 1 + 0 + 0 + 0 + + + 8157 + 1 + 0 + 0 + 0 + + + 8158 + 1 + 0 + 0 + 0 + + + 8159 + 1 + 0 + 0 + 0 + + + 8160 + 1 + 0 + 0 + 0 + + + 8161 + 1 + 0 + 0 + 0 + + + 8162 + 1 + 0 + 0 + 0 + + + 8163 + 1 + 0 + 0 + 0 + + + 8164 + 1 + 0 + 0 + 0 + + + 8165 + 1 + 0 + 0 + 0 + + + 8166 + 1 + 0 + 0 + 0 + + + 8167 + 1 + 0 + 0 + 0 + + + 8168 + 1 + 0 + 0 + 0 + + + 8169 + 1 + 0 + 0 + 0 + + + 8170 + 1 + 0 + 0 + 0 + + + 8171 + 1 + 0 + 0 + 0 + + + 8172 + 1 + 0 + 0 + 0 + + + 8173 + 1 + 0 + 0 + 0 + + + 8174 + 1 + 0 + 0 + 0 + + + 8175 + 1 + 0 + 0 + 0 + + + 8176 + 1 + 0 + 0 + 0 + + + 8177 + 1 + 0 + 0 + 0 + + + 8178 + 1 + 0 + 0 + 0 + + + 8179 + 1 + 0 + 0 + 0 + + + 8180 + 1 + 0 + 0 + 0 + + + 8181 + 1 + 0 + 0 + 0 + + + 8182 + 1 + 0 + 0 + 0 + + + 8183 + 1 + 0 + 0 + 0 + + + 8184 + 1 + 0 + 0 + 0 + + + 8185 + 1 + 0 + 0 + 0 + + + 8186 + 1 + 0 + 0 + 0 + + + 8187 + 1 + 0 + 0 + 0 + + + 8188 + 1 + 0 + 0 + 0 + + + 8189 + 1 + 0 + 0 + 0 + + + 8190 + 1 + 0 + 0 + 0 + + + 8191 + 1 + 0 + 0 + 0 + + + 8192 + 1 + 0 + 0 + 0 + + + 8193 + 1 + 0 + 0 + 0 + + + 8194 + 1 + 0 + 0 + 0 + + + 8195 + 1 + 0 + 0 + 0 + + + 8196 + 1 + 0 + 0 + 0 + + + 8197 + 1 + 0 + 0 + 0 + + + 8198 + 1 + 0 + 0 + 0 + + + 8199 + 1 + 0 + 0 + 0 + + + 8200 + 1 + 0 + 0 + 0 + + + 8201 + 1 + 0 + 0 + 0 + + + 8202 + 1 + 0 + 0 + 0 + + + 8203 + 1 + 0 + 0 + 0 + + + 8204 + 1 + 0 + 0 + 0 + + + 8205 + 1 + 0 + 0 + 0 + + + 8206 + 1 + 0 + 0 + 0 + + + 8207 + 1 + 0 + 0 + 0 + + + 8208 + 1 + 0 + 0 + 0 + + + 8209 + 1 + 0 + 0 + 0 + + + 8210 + 1 + 0 + 0 + 0 + + + 8211 + 1 + 0 + 0 + 0 + + + 8212 + 1 + 0 + 0 + 0 + + + 8213 + 1 + 0 + 0 + 0 + + + 8214 + 1 + 0 + 0 + 0 + + + 8215 + 1 + 0 + 0 + 0 + + + 8216 + 1 + 0 + 0 + 0 + + + 8217 + 1 + 0 + 0 + 0 + + + 8218 + 1 + 0 + 0 + 0 + + + 8219 + 1 + 0 + 0 + 0 + + + 8220 + 1 + 0 + 0 + 0 + + + 8221 + 1 + 0 + 0 + 0 + + + 8222 + 1 + 0 + 0 + 0 + + + 8223 + 1 + 0 + 0 + 0 + + + 8224 + 1 + 0 + 0 + 0 + + + 8225 + 1 + 0 + 0 + 0 + + + 8226 + 1 + 0 + 0 + 0 + + + 8227 + 1 + 0 + 0 + 0 + + + 8228 + 1 + 0 + 0 + 0 + + + 8229 + 1 + 0 + 0 + 0 + + + 8230 + 1 + 0 + 0 + 0 + + + 8231 + 1 + 0 + 0 + 0 + + + 8232 + 1 + 0 + 0 + 0 + + + 8233 + 1 + 0 + 0 + 0 + + + 8234 + 1 + 0 + 0 + 0 + + + 8235 + 1 + 0 + 0 + 0 + + + 8236 + 1 + 0 + 0 + 0 + + + 8237 + 1 + 0 + 0 + 0 + + + 8238 + 1 + 0 + 0 + 0 + + + 8239 + 1 + 0 + 0 + 0 + + + 8240 + 1 + 0 + 0 + 0 + + + 8241 + 1 + 0 + 0 + 0 + + + 8242 + 1 + 0 + 0 + 0 + + + 8243 + 1 + 0 + 0 + 0 + + + 8244 + 1 + 0 + 0 + 0 + + + 8245 + 1 + 0 + 0 + 0 + + + 8246 + 1 + 0 + 0 + 0 + + + 8247 + 1 + 0 + 0 + 0 + + + 8248 + 1 + 0 + 0 + 0 + + + 8249 + 1 + 0 + 0 + 0 + + + 8250 + 1 + 0 + 0 + 0 + + + 8251 + 1 + 0 + 0 + 0 + + + 8252 + 1 + 0 + 0 + 0 + + + 8253 + 1 + 0 + 0 + 0 + + + 8254 + 1 + 0 + 0 + 0 + + + 8255 + 1 + 0 + 0 + 0 + + + 8256 + 1 + 0 + 0 + 0 + + + 8257 + 1 + 0 + 0 + 0 + + + 8258 + 1 + 0 + 0 + 0 + + + 8259 + 1 + 0 + 0 + 0 + + + 8260 + 1 + 0 + 0 + 0 + + + 8261 + 1 + 0 + 0 + 0 + + + 8262 + 1 + 0 + 0 + 0 + + + 8263 + 1 + 0 + 0 + 0 + + + 8264 + 1 + 0 + 0 + 0 + + + 8265 + 1 + 0 + 0 + 0 + + + 8266 + 1 + 0 + 0 + 0 + + + 8267 + 1 + 0 + 0 + 0 + + + 8268 + 1 + 0 + 0 + 0 + + + 8269 + 1 + 0 + 0 + 0 + + + 8270 + 1 + 0 + 0 + 0 + + + 8271 + 1 + 0 + 0 + 0 + + + 8272 + 1 + 0 + 0 + 0 + + + 8273 + 1 + 0 + 0 + 0 + + + 8274 + 1 + 0 + 0 + 0 + + + 8275 + 1 + 0 + 0 + 0 + + + 8276 + 1 + 0 + 0 + 0 + + + 8277 + 1 + 0 + 0 + 0 + + + 8278 + 1 + 0 + 0 + 0 + + + 8279 + 1 + 0 + 0 + 0 + + + 8280 + 1 + 0 + 0 + 0 + + + 8281 + 1 + 0 + 0 + 0 + + + 8282 + 1 + 0 + 0 + 0 + + + 8283 + 1 + 0 + 0 + 0 + + + 8284 + 1 + 0 + 0 + 0 + + + 8285 + 1 + 0 + 0 + 0 + + + 8286 + 1 + 0 + 0 + 0 + + + 8287 + 1 + 0 + 0 + 0 + + + 8288 + 1 + 0 + 0 + 0 + + + 8289 + 1 + 0 + 0 + 0 + + + 8290 + 1 + 0 + 0 + 0 + + + 8291 + 1 + 0 + 0 + 0 + + + 8292 + 1 + 0 + 0 + 0 + + + 8293 + 1 + 0 + 0 + 0 + + + 8294 + 1 + 0 + 0 + 0 + + + 8295 + 1 + 0 + 0 + 0 + + + 8296 + 1 + 0 + 0 + 0 + + + 8297 + 1 + 0 + 0 + 0 + + + 8298 + 1 + 0 + 0 + 0 + + + 8299 + 1 + 0 + 0 + 0 + + + 8300 + 1 + 0 + 0 + 0 + + + 8301 + 1 + 0 + 0 + 0 + + + 8302 + 1 + 0 + 0 + 0 + + + 8303 + 1 + 0 + 0 + 0 + + + 8304 + 1 + 0 + 0 + 0 + + + 8305 + 1 + 0 + 0 + 0 + + + 8306 + 1 + 0 + 0 + 0 + + + 8307 + 1 + 0 + 0 + 0 + + + 8308 + 1 + 0 + 0 + 0 + + + 8309 + 1 + 0 + 0 + 0 + + + 8310 + 1 + 0 + 0 + 0 + + + 8311 + 1 + 0 + 0 + 0 + + + 8312 + 1 + 0 + 0 + 0 + + + 8313 + 1 + 0 + 0 + 0 + + + 8314 + 1 + 0 + 0 + 0 + + + 8315 + 1 + 0 + 0 + 0 + + + 8316 + 1 + 0 + 0 + 0 + + + 8317 + 1 + 0 + 0 + 0 + + + 8318 + 1 + 0 + 0 + 0 + + + 8319 + 1 + 0 + 0 + 0 + + + 8320 + 1 + 0 + 0 + 0 + + + 8321 + 1 + 0 + 0 + 0 + + + 8322 + 1 + 0 + 0 + 0 + + + 8323 + 1 + 0 + 0 + 0 + + + 8324 + 1 + 0 + 0 + 0 + + + 8325 + 1 + 0 + 0 + 0 + + + 8326 + 1 + 0 + 0 + 0 + + + 8327 + 1 + 0 + 0 + 0 + + + 8328 + 1 + 0 + 0 + 0 + + + 8329 + 1 + 0 + 0 + 0 + + + 8330 + 1 + 0 + 0 + 0 + + + 8331 + 1 + 0 + 0 + 0 + + + 8332 + 1 + 0 + 0 + 0 + + + 8333 + 1 + 0 + 0 + 0 + + + 8334 + 1 + 0 + 0 + 0 + + + 8335 + 1 + 0 + 0 + 0 + + + 8336 + 1 + 0 + 0 + 0 + + + 8337 + 1 + 0 + 0 + 0 + + + 8338 + 1 + 0 + 0 + 0 + + + 8339 + 1 + 0 + 0 + 0 + + + 8340 + 1 + 0 + 0 + 0 + + + 8341 + 1 + 0 + 0 + 0 + + + 8342 + 1 + 0 + 0 + 0 + + + 8343 + 1 + 0 + 0 + 0 + + + 8344 + 1 + 0 + 0 + 0 + + + 8345 + 1 + 0 + 0 + 0 + + + 8346 + 1 + 0 + 0 + 0 + + + 8347 + 1 + 0 + 0 + 0 + + + 8348 + 1 + 0 + 0 + 0 + + + 8349 + 1 + 0 + 0 + 0 + + + 8350 + 1 + 0 + 0 + 0 + + + 8351 + 1 + 0 + 0 + 0 + + + 8352 + 1 + 0 + 0 + 0 + + + 8353 + 1 + 0 + 0 + 0 + + + 8354 + 1 + 0 + 0 + 0 + + + 8355 + 1 + 0 + 0 + 0 + + + 8356 + 1 + 0 + 0 + 0 + + + 8357 + 1 + 0 + 0 + 0 + + + 8358 + 1 + 0 + 0 + 0 + + + 8359 + 1 + 0 + 0 + 0 + + + 8360 + 1 + 0 + 0 + 0 + + + 8361 + 1 + 0 + 0 + 0 + + + 8362 + 1 + 0 + 0 + 0 + + + 8363 + 1 + 0 + 0 + 0 + + + 8364 + 1 + 0 + 0 + 0 + + + 8365 + 1 + 0 + 0 + 0 + + + 8366 + 1 + 0 + 0 + 0 + + + 8367 + 1 + 0 + 0 + 0 + + + 8368 + 1 + 0 + 0 + 0 + + + 8369 + 1 + 0 + 0 + 0 + + + 8370 + 1 + 0 + 0 + 0 + + + 8371 + 1 + 0 + 0 + 0 + + + 8372 + 1 + 0 + 0 + 0 + + + 8373 + 1 + 0 + 0 + 0 + + + 8374 + 1 + 0 + 0 + 0 + + + 8375 + 1 + 0 + 0 + 0 + + + 8376 + 1 + 0 + 0 + 0 + + + 8377 + 1 + 0 + 0 + 0 + + + 8378 + 1 + 0 + 0 + 0 + + + 8379 + 1 + 0 + 0 + 0 + + + 8380 + 1 + 0 + 0 + 0 + + + 8381 + 1 + 0 + 0 + 0 + + + 8382 + 1 + 0 + 0 + 0 + + + 8383 + 1 + 0 + 0 + 0 + + + 8384 + 1 + 0 + 0 + 0 + + + 8385 + 1 + 0 + 0 + 0 + + + 8386 + 1 + 0 + 0 + 0 + + + 8387 + 1 + 0 + 0 + 0 + + + 8388 + 1 + 0 + 0 + 0 + + + 8389 + 1 + 0 + 0 + 0 + + + 8390 + 1 + 0 + 0 + 0 + + + 8391 + 1 + 0 + 0 + 0 + + + 8392 + 1 + 0 + 0 + 0 + + + 8393 + 1 + 0 + 0 + 0 + + + 8394 + 1 + 0 + 0 + 0 + + + 8395 + 1000 + 0 + 0 + 0 + + + 8396 + 5000 + 0 + 0 + 0 + + + 8397 + 5000 + 0 + 0 + 0 + + + 8398 + 10000 + 0 + 0 + 0 + + + 8399 + 25000 + 0 + 0 + 0 + + + 8400 + 25000 + 0 + 0 + 0 + + + 8401 + 15000 + 0 + 0 + 0 + + + 8402 + 15000 + 0 + 0 + 0 + + + 8403 + 25000 + 0 + 0 + 0 + + + 8404 + 25000 + 0 + 0 + 0 + + + 8405 + 50000 + 0 + 0 + 0 + + + 8406 + 10000 + 0 + 0 + 0 + + + 8407 + 50000 + 0 + 0 + 0 + + + 8408 + 100000 + 0 + 0 + 0 + + + 8409 + 150000 + 0 + 0 + 0 + + + 8410 + 150000 + 0 + 0 + 0 + + + 8411 + 7500 + 0 + 0 + 0 + + + 8412 + 7500 + 0 + 0 + 0 + + + 8413 + 7500 + 0 + 0 + 0 + + + 8414 + 250000 + 0 + 0 + 0 + + + 8415 + 1000 + 0 + 0 + 0 + + + 8416 + 75000 + 0 + 0 + 0 + + + 8417 + 1000 + 0 + 0 + 0 + + + 8418 + 1000 + 0 + 0 + 0 + + + 8419 + 2000 + 0 + 0 + 0 + + + 8420 + 2000 + 0 + 0 + 0 + + + 8421 + 5000 + 0 + 0 + 0 + + + 8422 + 5000 + 0 + 0 + 0 + + + 8423 + 10000 + 0 + 0 + 0 + + + 8424 + 10000 + 0 + 0 + 0 + + + 8425 + 15000 + 0 + 0 + 0 + + + 8426 + 15000 + 0 + 0 + 0 + + + 8427 + 20000 + 0 + 0 + 0 + + + 8428 + 20000 + 0 + 0 + 0 + + + 8429 + 50000 + 0 + 0 + 0 + + + 8430 + 50000 + 0 + 0 + 0 + + + 8431 + 1000 + 0 + 0 + 0 + + + 8432 + 1000 + 0 + 0 + 0 + + + 8433 + 5000 + 0 + 0 + 0 + + + 8434 + 5000 + 0 + 0 + 0 + + + 8435 + 10000 + 0 + 0 + 0 + + + 8436 + 10000 + 0 + 0 + 0 + + + 8437 + 5000 + 0 + 0 + 0 + + + 8438 + 5000 + 0 + 0 + 0 + + + 8439 + 10000 + 0 + 0 + 0 + + + 8440 + 10000 + 0 + 0 + 0 + + + 8441 + 15000 + 0 + 0 + 0 + + + 8442 + 15000 + 0 + 0 + 0 + + + 8443 + 20000 + 0 + 0 + 0 + + + 8444 + 20000 + 0 + 0 + 0 + + + 8445 + 25000 + 0 + 0 + 0 + + + 8446 + 25000 + 0 + 0 + 0 + + + 8447 + 50000 + 0 + 0 + 0 + + + 8448 + 50000 + 0 + 0 + 0 + + + 8449 + 100000 + 0 + 0 + 0 + + + 8450 + 100000 + 0 + 0 + 0 + + + 8451 + 5000 + 0 + 0 + 0 + + + 8452 + 5000 + 0 + 0 + 0 + + + 8453 + 10000 + 0 + 0 + 0 + + + 8454 + 10000 + 0 + 0 + 0 + + + 8455 + 15000 + 0 + 0 + 0 + + + 8456 + 15000 + 0 + 0 + 0 + + + 8457 + 5000 + 0 + 0 + 0 + + + 8458 + 5000 + 0 + 0 + 0 + + + 8459 + 10000 + 0 + 0 + 0 + + + 8460 + 10000 + 0 + 0 + 0 + + + 8461 + 15000 + 0 + 0 + 0 + + + 8462 + 15000 + 0 + 0 + 0 + + + 8463 + 1 + 0 + 0 + 0 + + + 8464 + 35200 + 0 + 0 + 0 + + + 8465 + 1 + 0 + 0 + 0 + + + 8466 + 35200 + 0 + 0 + 0 + + + 8467 + 1 + 0 + 0 + 0 + + + 8468 + 35200 + 0 + 0 + 0 + + + 8469 + 1 + 0 + 0 + 0 + + + 8470 + 35200 + 0 + 0 + 0 + + + 8471 + 1 + 0 + 0 + 0 + + + 8472 + 35200 + 0 + 0 + 0 + + + 8473 + 1 + 0 + 0 + 0 + + + 8474 + 35200 + 0 + 0 + 0 + + + 8475 + 1 + 0 + 0 + 0 + + + 8476 + 35200 + 0 + 0 + 0 + + + 8477 + 1 + 0 + 0 + 0 + + + 8478 + 35200 + 0 + 0 + 0 + + + 8479 + 1 + 0 + 0 + 0 + + + 8480 + 35200 + 0 + 0 + 0 + + + 8481 + 1 + 0 + 0 + 0 + + + 8482 + 35200 + 0 + 0 + 0 + + + 8483 + 1 + 0 + 0 + 0 + + + 8484 + 35200 + 0 + 0 + 0 + + + 8485 + 1 + 0 + 0 + 0 + + + 8486 + 35200 + 0 + 0 + 0 + + + 8487 + 1 + 0 + 0 + 0 + + + 8488 + 35200 + 0 + 0 + 0 + + + 8489 + 1 + 0 + 0 + 0 + + + 8490 + 35200 + 0 + 0 + 0 + + + 8491 + 1 + 0 + 0 + 0 + + + 8492 + 35200 + 0 + 0 + 0 + + + 8493 + 1 + 0 + 0 + 0 + + + 8494 + 35200 + 0 + 0 + 0 + + + 8495 + 1 + 0 + 0 + 0 + + + 8496 + 10 + 0 + 0 + 0 + + + 8497 + 10 + 0 + 0 + 0 + + + 8498 + 10 + 0 + 0 + 0 + + + 8499 + 10 + 0 + 0 + 0 + + + 8500 + 10 + 0 + 0 + 0 + + + 8501 + 10 + 0 + 0 + 0 + + + 8502 + 10 + 0 + 0 + 0 + + + 8503 + 10 + 0 + 0 + 0 + + + 8504 + 10 + 0 + 0 + 0 + + + 8505 + 10 + 0 + 0 + 0 + + + 8506 + 10 + 0 + 0 + 0 + + + 8507 + 10 + 0 + 0 + 0 + + + 8508 + 10 + 0 + 0 + 0 + + + 8509 + 10 + 0 + 0 + 0 + + + 8510 + 10 + 0 + 0 + 0 + + + 8511 + 10 + 0 + 0 + 0 + + + 8512 + 10 + 0 + 0 + 0 + + + 8513 + 10 + 0 + 0 + 0 + + + 8514 + 10 + 0 + 0 + 0 + + + 8515 + 10 + 0 + 0 + 0 + + + 8516 + 10 + 0 + 0 + 0 + + + 8517 + 10 + 0 + 0 + 0 + + + 8518 + 10 + 0 + 0 + 0 + + + 8519 + 10 + 0 + 0 + 0 + + + 8520 + 10 + 0 + 0 + 0 + + + 8521 + 10 + 0 + 0 + 0 + + + 8522 + 10 + 0 + 0 + 0 + + + 8523 + 10 + 0 + 0 + 0 + + + 8524 + 10 + 0 + 0 + 0 + + + 8525 + 10 + 0 + 0 + 0 + + + 8526 + 10 + 0 + 0 + 0 + + + 8527 + 10 + 0 + 0 + 0 + + + 8528 + 10 + 0 + 0 + 0 + + + 8529 + 10 + 0 + 0 + 0 + + + 8530 + 10 + 0 + 0 + 0 + + + 8531 + 10 + 0 + 0 + 0 + + + 8532 + 10 + 0 + 0 + 0 + + + 8533 + 10 + 0 + 0 + 0 + + + 8534 + 10 + 0 + 0 + 0 + + + 8535 + 10 + 0 + 0 + 0 + + + 8536 + 10 + 0 + 0 + 0 + + + 8537 + 10 + 0 + 0 + 0 + + + 8538 + 10 + 0 + 0 + 0 + + + 8539 + 10 + 0 + 0 + 0 + + + 8540 + 10 + 0 + 0 + 0 + + + 8541 + 10 + 0 + 0 + 0 + + + 8542 + 10 + 0 + 0 + 0 + + + 8543 + 10 + 0 + 0 + 0 + + + 8544 + 10 + 0 + 0 + 0 + + + 8545 + 10 + 0 + 0 + 0 + + + 8546 + 10 + 0 + 0 + 0 + + + 8547 + 10 + 0 + 0 + 0 + + + 8548 + 10 + 0 + 0 + 0 + + + 8549 + 10 + 0 + 0 + 0 + + + 8550 + 10 + 0 + 0 + 0 + + + 8551 + 10 + 0 + 0 + 0 + + + 8552 + 10 + 0 + 0 + 0 + + + 8553 + 10 + 0 + 0 + 0 + + + 8554 + 10 + 0 + 0 + 0 + + + 8555 + 10 + 0 + 0 + 0 + + + 8556 + 10 + 0 + 0 + 0 + + + 8557 + 10 + 0 + 0 + 0 + + + 8558 + 10 + 0 + 0 + 0 + + + 8559 + 10 + 0 + 0 + 0 + + + 8560 + 10 + 0 + 0 + 0 + + + 8561 + 10 + 0 + 0 + 0 + + + 8562 + 10 + 0 + 0 + 0 + + + 8563 + 10 + 0 + 0 + 0 + + + 8564 + 10 + 0 + 0 + 0 + + + 8565 + 10 + 0 + 0 + 0 + + + 8566 + 10 + 0 + 0 + 0 + + + 8567 + 10 + 0 + 0 + 0 + + + 8568 + 10 + 0 + 0 + 0 + + + 8569 + 10 + 0 + 0 + 0 + + + 8570 + 10 + 0 + 0 + 0 + + + 8571 + 10 + 0 + 0 + 0 + + + 8572 + 10 + 0 + 0 + 0 + + + 8573 + 10 + 0 + 0 + 0 + + + 8574 + 10 + 0 + 0 + 0 + + + 8575 + 10 + 0 + 0 + 0 + + + 8576 + 10 + 0 + 0 + 0 + + + 8577 + 10 + 0 + 0 + 0 + + + 8578 + 10 + 0 + 0 + 0 + + + 8579 + 10 + 0 + 0 + 0 + + + 8580 + 10 + 0 + 0 + 0 + + + 8581 + 10 + 0 + 0 + 0 + + + 8582 + 10 + 0 + 0 + 0 + + + 8583 + 10 + 0 + 0 + 0 + + + 8584 + 10 + 0 + 0 + 0 + + + 8585 + 10 + 0 + 0 + 0 + + + 8586 + 10 + 0 + 0 + 0 + + + 8587 + 10 + 0 + 0 + 0 + + + 8588 + 10 + 0 + 0 + 0 + + + 8589 + 10 + 0 + 0 + 0 + + + 8590 + 10 + 0 + 0 + 0 + + + 8591 + 10 + 0 + 0 + 0 + + + 8592 + 10 + 0 + 0 + 0 + + + 8593 + 10 + 0 + 0 + 0 + + + 8594 + 10 + 0 + 0 + 0 + + + 8595 + 10 + 0 + 0 + 0 + + + 8596 + 10 + 0 + 0 + 0 + + + 8597 + 10 + 0 + 0 + 0 + + + 8598 + 10 + 0 + 0 + 0 + + + 8599 + 10 + 0 + 0 + 0 + + + 8600 + 10 + 0 + 0 + 0 + + + 8601 + 10 + 0 + 0 + 0 + + + 8602 + 10 + 0 + 0 + 0 + + + 8603 + 10 + 0 + 0 + 0 + + + 8604 + 10 + 0 + 0 + 0 + + + 8605 + 10 + 0 + 0 + 0 + + + 8606 + 10 + 0 + 0 + 0 + + + 8607 + 10 + 0 + 0 + 0 + + + 8608 + 10 + 0 + 0 + 0 + + + 8609 + 10 + 0 + 0 + 0 + + + 8610 + 10 + 0 + 0 + 0 + + + 8611 + 10 + 0 + 0 + 0 + + + 8612 + 10 + 0 + 0 + 0 + + + 8613 + 10 + 0 + 0 + 0 + + + 8614 + 10 + 0 + 0 + 0 + + + 8615 + 10 + 0 + 0 + 0 + + + 8616 + 10 + 0 + 0 + 0 + + + 8617 + 10 + 0 + 0 + 0 + + + 8618 + 10 + 0 + 0 + 0 + + + 8619 + 10 + 0 + 0 + 0 + + + 8620 + 10 + 0 + 0 + 0 + + + 8621 + 10 + 0 + 0 + 0 + + + 8622 + 10 + 0 + 0 + 0 + + + 8623 + 10 + 0 + 0 + 0 + + + 8624 + 10 + 0 + 0 + 0 + + + 8625 + 10 + 0 + 0 + 0 + + + 8626 + 10 + 0 + 0 + 0 + + + 8627 + 10 + 0 + 0 + 0 + + + 8628 + 10 + 0 + 0 + 0 + + + 8629 + 10 + 0 + 0 + 0 + + + 8630 + 10 + 0 + 0 + 0 + + + 8631 + 10 + 0 + 0 + 0 + + + 8632 + 10 + 0 + 0 + 0 + + + 8633 + 10 + 0 + 0 + 0 + + + 8634 + 10 + 0 + 0 + 0 + + + 8635 + 10 + 0 + 0 + 0 + + + 8636 + 10 + 0 + 0 + 0 + + + 8637 + 10 + 0 + 0 + 0 + + + 8638 + 10 + 0 + 0 + 0 + + + 8639 + 10 + 0 + 0 + 0 + + + 8640 + 10 + 0 + 0 + 0 + + + 8641 + 10 + 0 + 0 + 0 + + + 8642 + 10 + 0 + 0 + 0 + + + 8643 + 10 + 0 + 0 + 0 + + + 8644 + 10 + 0 + 0 + 0 + + + 8645 + 10 + 0 + 0 + 0 + + + 8646 + 10 + 0 + 0 + 0 + + + 8647 + 10 + 0 + 0 + 0 + + + 8648 + 10 + 0 + 0 + 0 + + + 8649 + 10 + 0 + 0 + 0 + + + 8650 + 1 + 0 + 0 + 0 + + + 8651 + 1 + 0 + 0 + 0 + + + 8652 + 1 + 0 + 0 + 0 + + + 8653 + 1 + 0 + 0 + 0 + + + 8654 + 1 + 0 + 0 + 0 + + + 8655 + 1 + 0 + 0 + 0 + + + 8656 + 1 + 0 + 0 + 0 + + + 8657 + 1 + 0 + 0 + 0 + + + 8658 + 1 + 0 + 0 + 0 + + + 8659 + 1 + 0 + 0 + 0 + + + 8660 + 1 + 0 + 0 + 0 + + + 8661 + 1 + 0 + 0 + 0 + + + 8662 + 1 + 0 + 0 + 0 + + + 8663 + 1 + 0 + 0 + 0 + + + 8664 + 1 + 0 + 0 + 0 + + + 8665 + 1 + 0 + 0 + 0 + + + 8666 + 1 + 0 + 0 + 0 + + + 8667 + 1 + 0 + 0 + 0 + + + 8668 + 1 + 0 + 0 + 0 + + + 8669 + 1 + 0 + 0 + 0 + + + 8670 + 1 + 0 + 0 + 0 + + + 8671 + 1 + 0 + 0 + 0 + + + 8672 + 1 + 0 + 0 + 0 + + + 8673 + 1 + 0 + 0 + 0 + + + 8674 + 1 + 0 + 0 + 0 + + + 8675 + 1 + 0 + 0 + 0 + + + 8676 + 1 + 0 + 0 + 0 + + + 8677 + 1 + 0 + 0 + 0 + + + 8678 + 1 + 0 + 0 + 0 + + + 8679 + 1 + 0 + 0 + 0 + + + 8680 + 1 + 0 + 0 + 0 + + + 8681 + 1 + 0 + 0 + 0 + + + 8682 + 600 + 0 + 0 + 0 + + + 8683 + 1 + 0 + 0 + 0 + + + 8684 + 600 + 0 + 0 + 0 + + + 8685 + 1 + 0 + 0 + 0 + + + 8686 + 600 + 0 + 0 + 0 + + + 8687 + 1 + 0 + 0 + 0 + + + 8688 + 600 + 0 + 0 + 0 + + + 8689 + 1 + 0 + 0 + 0 + + + 8690 + 600 + 0 + 0 + 0 + + + 8691 + 1 + 0 + 0 + 0 + + + 8692 + 600 + 0 + 0 + 0 + + + 8693 + 1 + 0 + 0 + 0 + + + 8694 + 600 + 0 + 0 + 0 + + + 8695 + 1 + 0 + 0 + 0 + + + 8696 + 600 + 0 + 0 + 0 + + + 8697 + 1 + 0 + 0 + 0 + + + 8698 + 600 + 0 + 0 + 0 + + + 8699 + 1 + 0 + 0 + 0 + + + 8700 + 600 + 0 + 0 + 0 + + + 8701 + 1 + 0 + 0 + 0 + + + 8702 + 600 + 0 + 0 + 0 + + + 8703 + 1 + 0 + 0 + 0 + + + 8704 + 600 + 0 + 0 + 0 + + + 8705 + 1 + 0 + 0 + 0 + + + 8706 + 600 + 0 + 0 + 0 + + + 8707 + 1 + 0 + 0 + 0 + + + 8708 + 600 + 0 + 0 + 0 + + + 8709 + 1 + 0 + 0 + 0 + + + 8710 + 600 + 0 + 0 + 0 + + + 8711 + 1 + 0 + 0 + 0 + + + 8712 + 600 + 0 + 0 + 0 + + + 8713 + 1 + 0 + 0 + 0 + + + 8714 + 54400 + 0 + 0 + 0 + + + 8715 + 1 + 0 + 0 + 0 + + + 8716 + 54400 + 0 + 0 + 0 + + + 8717 + 1 + 0 + 0 + 0 + + + 8718 + 54400 + 0 + 0 + 0 + + + 8719 + 1 + 0 + 0 + 0 + + + 8720 + 54400 + 0 + 0 + 0 + + + 8721 + 1 + 0 + 0 + 0 + + + 8722 + 54400 + 0 + 0 + 0 + + + 8723 + 1 + 0 + 0 + 0 + + + 8724 + 54400 + 0 + 0 + 0 + + + 8725 + 1 + 0 + 0 + 0 + + + 8726 + 54400 + 0 + 0 + 0 + + + 8727 + 1 + 0 + 0 + 0 + + + 8728 + 54400 + 0 + 0 + 0 + + + 8729 + 1 + 0 + 0 + 0 + + + 8730 + 54400 + 0 + 0 + 0 + + + 8731 + 1 + 0 + 0 + 0 + + + 8732 + 54400 + 0 + 0 + 0 + + + 8733 + 1 + 0 + 0 + 0 + + + 8734 + 54400 + 0 + 0 + 0 + + + 8735 + 1 + 0 + 0 + 0 + + + 8736 + 54400 + 0 + 0 + 0 + + + 8737 + 1 + 0 + 0 + 0 + + + 8738 + 54400 + 0 + 0 + 0 + + + 8739 + 1 + 0 + 0 + 0 + + + 8740 + 54400 + 0 + 0 + 0 + + + 8741 + 1 + 0 + 0 + 0 + + + 8742 + 54400 + 0 + 0 + 0 + + + 8743 + 1 + 0 + 0 + 0 + + + 8744 + 54400 + 0 + 0 + 0 + + + 8745 + 1 + 0 + 0 + 0 + + + 8746 + 900 + 0 + 0 + 0 + + + 8747 + 1 + 0 + 0 + 0 + + + 8748 + 900 + 0 + 0 + 0 + + + 8749 + 1 + 0 + 0 + 0 + + + 8750 + 900 + 0 + 0 + 0 + + + 8751 + 1 + 0 + 0 + 0 + + + 8752 + 900 + 0 + 0 + 0 + + + 8753 + 1 + 0 + 0 + 0 + + + 8754 + 900 + 0 + 0 + 0 + + + 8755 + 1 + 0 + 0 + 0 + + + 8756 + 900 + 0 + 0 + 0 + + + 8757 + 1 + 0 + 0 + 0 + + + 8758 + 900 + 0 + 0 + 0 + + + 8759 + 1 + 0 + 0 + 0 + + + 8760 + 900 + 0 + 0 + 0 + + + 8761 + 1 + 0 + 0 + 0 + + + 8762 + 900 + 0 + 0 + 0 + + + 8763 + 1 + 0 + 0 + 0 + + + 8764 + 900 + 0 + 0 + 0 + + + 8765 + 1 + 0 + 0 + 0 + + + 8766 + 900 + 0 + 0 + 0 + + + 8767 + 1 + 0 + 0 + 0 + + + 8768 + 900 + 0 + 0 + 0 + + + 8769 + 1 + 0 + 0 + 0 + + + 8770 + 900 + 0 + 0 + 0 + + + 8771 + 1 + 0 + 0 + 0 + + + 8772 + 900 + 0 + 0 + 0 + + + 8773 + 1 + 0 + 0 + 0 + + + 8774 + 900 + 0 + 0 + 0 + + + 8775 + 1 + 0 + 0 + 0 + + + 8776 + 900 + 0 + 0 + 0 + + + 8777 + 1 + 0 + 0 + 0 + + + 8778 + 250 + 0 + 0 + 0 + + + 8779 + 250 + 0 + 0 + 0 + + + 8780 + 500 + 0 + 0 + 0 + + + 8781 + 500 + 0 + 0 + 0 + + + 8782 + 1500 + 0 + 0 + 0 + + + 8783 + 1500 + 0 + 0 + 0 + + + 8784 + 130000 + 0 + 0 + 0 + + + 8785 + 130000 + 0 + 0 + 0 + + + 8786 + 325000 + 0 + 0 + 0 + + + 8787 + 325000 + 0 + 0 + 0 + + + 8788 + 975000 + 0 + 0 + 0 + + + 8789 + 975000 + 0 + 0 + 0 + + + 8790 + 650 + 0 + 0 + 0 + + + 8791 + 650 + 0 + 0 + 0 + + + 8792 + 500 + 0 + 0 + 0 + + + 8793 + 500 + 0 + 0 + 0 + + + 8794 + 13 + 0 + 0 + 0 + + + 8795 + 13 + 0 + 0 + 0 + + + 8796 + 20 + 0 + 0 + 0 + + + 8797 + 1 + 0 + 0 + 0 + + + 8798 + 1 + 0 + 0 + 0 + + + 8799 + 1 + 0 + 0 + 0 + + + 8800 + 1 + 0 + 0 + 0 + + + 8801 + 1 + 0 + 0 + 0 + + + 8802 + 1 + 0 + 0 + 0 + + + 8803 + 1 + 0 + 0 + 0 + + + 8804 + 1 + 0 + 0 + 0 + + + 8805 + 1 + 0 + 0 + 0 + + + 8806 + 1 + 0 + 0 + 0 + + + 8807 + 1 + 0 + 0 + 0 + + + 8808 + 1 + 0 + 0 + 0 + + + 8809 + 1 + 0 + 0 + 0 + + + 8810 + 1 + 0 + 0 + 0 + + + 8811 + 1 + 0 + 0 + 0 + + + 8812 + 1 + 0 + 0 + 0 + + + 8813 + 1 + 0 + 0 + 0 + + + 8814 + 1 + 0 + 0 + 0 + + + 8815 + 1 + 0 + 0 + 0 + + + 8816 + 1 + 0 + 0 + 0 + + + 8817 + 1 + 0 + 0 + 0 + + + 8818 + 1 + 0 + 0 + 0 + + + 8819 + 1 + 0 + 0 + 0 + + + 8820 + 1 + 0 + 0 + 0 + + + 8821 + 1 + 0 + 0 + 0 + + + 8822 + 1 + 0 + 0 + 0 + + + 8823 + 1 + 0 + 0 + 0 + + + 8824 + 1 + 0 + 0 + 0 + + + 8825 + 1 + 0 + 0 + 0 + + + 8826 + 1 + 0 + 0 + 0 + + + 8827 + 1 + 0 + 0 + 0 + + + 8828 + 1 + 0 + 0 + 0 + + + 8829 + 1 + 0 + 0 + 0 + + + 8830 + 1 + 0 + 0 + 0 + + + 8831 + 1 + 0 + 0 + 0 + + + 8832 + 1 + 0 + 0 + 0 + + + 8833 + 1 + 0 + 0 + 0 + + + 8834 + 1 + 0 + 0 + 0 + + + 8835 + 1 + 0 + 0 + 0 + + + 8836 + 50 + 0 + 0 + 0 + + + 8837 + 1 + 0 + 0 + 0 + + + 8838 + 1 + 0 + 0 + 0 + + + 8839 + 48000 + 0 + 0 + 0 + + + 8840 + 45000 + 0 + 0 + 0 + + + 8841 + 12000 + 0 + 0 + 0 + + + 8842 + 6052 + 0 + 0 + 0 + + + 8843 + 1 + 0 + 0 + 0 + + + 8844 + 1 + 0 + 0 + 0 + + + 8845 + 1 + 0 + 0 + 0 + + + 8846 + 1 + 0 + 0 + 0 + + + 8847 + 1 + 0 + 0 + 0 + + + 8848 + 1 + 0 + 0 + 0 + + + 8849 + 1 + 0 + 0 + 0 + + + 8850 + 1 + 0 + 0 + 0 + + + 8851 + 1 + 0 + 0 + 0 + + + 8852 + 1 + 0 + 0 + 0 + + + 8853 + 1 + 0 + 0 + 0 + + + 8854 + 1 + 0 + 0 + 0 + + + 8855 + 1 + 0 + 0 + 0 + + + 8856 + 1 + 0 + 0 + 0 + + + 8857 + 1 + 0 + 0 + 0 + + + 8858 + 1 + 0 + 0 + 0 + + + 8859 + 1 + 0 + 0 + 0 + + + 8860 + 1 + 0 + 0 + 0 + + + 8861 + 1 + 0 + 0 + 0 + + + 8862 + 1 + 0 + 0 + 0 + + + 8863 + 1 + 0 + 0 + 0 + + + 8864 + 1 + 0 + 0 + 0 + + + 8865 + 2 + 0 + 0 + 0 + + + 8866 + 1 + 0 + 0 + 0 + + + 8867 + 1 + 0 + 0 + 0 + + + 8868 + 1 + 0 + 0 + 0 + + + 8869 + 1 + 0 + 0 + 0 + + + 8870 + 1 + 0 + 0 + 0 + + + 8871 + 1 + 0 + 0 + 0 + + + 8872 + 2000 + 0 + 0 + 0 + + + 8873 + 2000 + 0 + 0 + 0 + + + 8874 + 2000 + 0 + 0 + 0 + + + 8875 + 2000 + 0 + 0 + 0 + + + 8876 + 2000 + 0 + 0 + 0 + + + 8877 + 2000 + 0 + 0 + 0 + + + 8878 + 2000 + 0 + 0 + 0 + + + 8879 + 2000 + 0 + 0 + 0 + + + 8880 + 2000 + 0 + 0 + 0 + + + 8881 + 2000 + 0 + 0 + 0 + + + 8882 + 4 + 0 + 0 + 0 + + + 8883 + 1 + 0 + 0 + 0 + + + 8884 + 1 + 0 + 0 + 0 + + + 8885 + 1 + 0 + 0 + 0 + + + 8886 + 1 + 0 + 0 + 0 + + + 8887 + 1 + 0 + 0 + 0 + + + 8888 + 1 + 0 + 0 + 0 + + + 8889 + 1 + 0 + 0 + 0 + + + 8890 + 1 + 0 + 0 + 0 + + + 8891 + 1 + 0 + 0 + 0 + + + 8892 + 1 + 0 + 0 + 0 + + + 8893 + 1 + 0 + 0 + 0 + + + 8894 + 1 + 0 + 0 + 0 + + + 8895 + 1 + 0 + 0 + 0 + + + 8896 + 1 + 0 + 0 + 0 + + + 8897 + 1 + 0 + 0 + 0 + + + 8898 + 1 + 0 + 0 + 0 + + + 8899 + 1 + 0 + 0 + 0 + + + 8900 + 1 + 0 + 0 + 0 + + + 8901 + 3000 + 0 + 0 + 0 + + + 8902 + 3000 + 0 + 0 + 0 + + + 8903 + 3000 + 0 + 0 + 0 + + + 8904 + 3000 + 0 + 0 + 0 + + + 8905 + 3000 + 0 + 0 + 0 + + + 8906 + 3000 + 0 + 0 + 0 + + + 8907 + 3000 + 0 + 0 + 0 + + + 8908 + 3000 + 0 + 0 + 0 + + + 8909 + 3000 + 0 + 0 + 0 + + + 8910 + 3000 + 0 + 0 + 0 + + + 8911 + 3000 + 0 + 0 + 0 + + + 8912 + 3000 + 0 + 0 + 0 + + + 8913 + 3000 + 0 + 0 + 0 + + + 8914 + 3000 + 0 + 0 + 0 + + + 8915 + 3000 + 0 + 0 + 0 + + + 8916 + 3000 + 0 + 0 + 0 + + + 8917 + 3000 + 0 + 0 + 0 + + + 8918 + 3000 + 0 + 0 + 0 + + + 8919 + 3000 + 0 + 0 + 0 + + + 8920 + 3000 + 0 + 0 + 0 + + + 8921 + 3000 + 0 + 0 + 0 + + + 8922 + 3000 + 0 + 0 + 0 + + + 8923 + 900 + 0 + 0 + 0 + + + 8924 + 100 + 0 + 0 + 0 + + + 8925 + 100 + 0 + 0 + 0 + + + 8926 + 100 + 0 + 0 + 0 + + + 8927 + 100 + 0 + 0 + 0 + + + 8928 + 100 + 0 + 0 + 0 + + + 8929 + 100 + 0 + 0 + 0 + + + 8930 + 1 + 0 + 0 + 0 + + + 8931 + 1 + 0 + 0 + 0 + + + 8932 + 1 + 0 + 0 + 0 + + + 8933 + 1 + 0 + 0 + 0 + + + 8934 + 1 + 0 + 0 + 0 + + + 8935 + 1 + 0 + 0 + 0 + + + 8936 + 1 + 0 + 0 + 0 + + + 8937 + 1 + 0 + 0 + 0 + + + 8938 + 1 + 0 + 0 + 0 + + + 8939 + 1 + 0 + 0 + 0 + + + 8940 + 2 + 0 + 0 + 0 + + + 8941 + 2 + 0 + 0 + 0 + + + 8942 + 1 + 0 + 0 + 0 + + + 8943 + 1 + 0 + 0 + 0 + + + 8944 + 1 + 0 + 0 + 0 + + + 8945 + 1 + 0 + 0 + 0 + + + 8946 + 1 + 0 + 0 + 0 + + + 8947 + 1 + 0 + 0 + 0 + + + 8948 + 1 + 0 + 0 + 0 + + + 8949 + 1 + 0 + 0 + 0 + + + 8950 + 1 + 0 + 0 + 0 + + + 8951 + 1 + 0 + 0 + 0 + + + 8952 + 100 + 0 + 0 + 0 + + + 8953 + 100 + 0 + 0 + 0 + + + 8954 + 100 + 0 + 0 + 0 + + + 8955 + 100 + 0 + 0 + 0 + + + 8956 + 100 + 0 + 0 + 0 + + + 8957 + 100 + 0 + 0 + 0 + + + 8958 + 100 + 0 + 0 + 0 + + + 8959 + 50 + 0 + 0 + 0 + + + 8960 + 50 + 0 + 0 + 0 + + + 8961 + 50 + 0 + 0 + 0 + + + 8962 + 50 + 0 + 0 + 0 + + + 8963 + 50 + 0 + 0 + 0 + + + 8964 + 50 + 0 + 0 + 0 + + + 8965 + 50 + 0 + 0 + 0 + + + 8966 + 200 + 0 + 0 + 0 + + + 8967 + 200 + 0 + 0 + 0 + + + 8968 + 300 + 0 + 0 + 0 + + + 8969 + 400 + 0 + 0 + 0 + + + 8970 + 500 + 0 + 0 + 0 + + + 8971 + 600 + 0 + 0 + 0 + + + 8972 + 1 + 0 + 0 + 0 + + + 8973 + 1 + 0 + 0 + 0 + + + 8974 + 1 + 0 + 0 + 0 + + + 8975 + 1 + 0 + 0 + 0 + + + 8976 + 1 + 0 + 0 + 0 + + + 8977 + 1 + 0 + 0 + 0 + + + 8978 + 1 + 0 + 0 + 0 + + + 8979 + 1 + 0 + 0 + 0 + + + 8980 + 1 + 0 + 0 + 0 + + + 8981 + 1 + 0 + 0 + 0 + + + 8982 + 1 + 0 + 0 + 0 + + + 8983 + 1 + 0 + 0 + 0 + + + 8984 + 1 + 0 + 0 + 0 + + + 8985 + 1 + 0 + 0 + 0 + + + 8986 + 1 + 0 + 0 + 0 + + + 8987 + 1 + 0 + 0 + 0 + + + 8988 + 5 + 0 + 0 + 0 + + + 8989 + 1 + 0 + 0 + 0 + + + 8990 + 1 + 0 + 0 + 0 + + + 8991 + 100 + 0 + 0 + 0 + + + 8992 + 100 + 0 + 0 + 0 + + + 8993 + 100 + 0 + 0 + 0 + + + 8994 + 100 + 0 + 0 + 0 + + + 8995 + 100 + 0 + 0 + 0 + + + 8996 + 100 + 0 + 0 + 0 + + + 8997 + 100 + 0 + 0 + 0 + + + 8998 + 100 + 0 + 0 + 0 + + + 8999 + 100 + 0 + 0 + 0 + + + 9000 + 100 + 0 + 0 + 0 + + + 9001 + 100 + 0 + 0 + 0 + + + 9002 + 100 + 0 + 0 + 0 + + + 9003 + 2 + 0 + 0 + 0 + + + 9004 + 2 + 0 + 0 + 0 + + + 9005 + 1 + 0 + 0 + 0 + + + 9006 + 1 + 0 + 0 + 0 + + + 9007 + 1 + 0 + 0 + 0 + + + 9008 + 1 + 0 + 0 + 0 + + + 9009 + 1 + 0 + 0 + 0 + + + 9010 + 1 + 0 + 0 + 0 + + + 9011 + 1 + 0 + 0 + 0 + + + 9012 + 1 + 0 + 0 + 0 + + + 9013 + 1 + 0 + 0 + 0 + + + 9014 + 2 + 0 + 0 + 0 + + + 9015 + 2 + 0 + 0 + 0 + + + 9016 + 150 + 0 + 0 + 0 + + + 9017 + 75 + 0 + 0 + 0 + + + 9018 + 150 + 0 + 0 + 0 + + + 9019 + 75 + 0 + 0 + 0 + + + 9020 + 1 + 0 + 0 + 0 + + + 9021 + 280 + 0 + 0 + 0 + + + 9022 + 230 + 0 + 0 + 0 + + + 9023 + 180 + 0 + 0 + 0 + + + 9024 + 130 + 0 + 0 + 0 + + + 9025 + 1 + 0 + 0 + 0 + + + 9026 + 10 + 0 + 0 + 0 + + + 9027 + 10 + 0 + 0 + 0 + + + 9028 + 30 + 0 + 0 + 0 + + + 9029 + 30 + 0 + 0 + 0 + + + 9030 + 20 + 0 + 0 + 0 + + + 9031 + 20 + 0 + 0 + 0 + + + 9032 + 10 + 0 + 0 + 0 + + + 9033 + 10 + 0 + 0 + 0 + + + 9034 + 30 + 0 + 0 + 0 + + + 9035 + 30 + 0 + 0 + 0 + + + 9036 + 10 + 0 + 0 + 0 + + + 9037 + 10 + 0 + 0 + 0 + + + 9038 + 20 + 0 + 0 + 0 + + + 9039 + 20 + 0 + 0 + 0 + + + 9040 + 30 + 0 + 0 + 0 + + + 9041 + 30 + 0 + 0 + 0 + + + 9042 + 20 + 0 + 0 + 0 + + + 9043 + 20 + 0 + 0 + 0 + + + 9044 + 100 + 0 + 0 + 0 + + + 9045 + 100 + 0 + 0 + 0 + + + 9046 + 100 + 0 + 0 + 0 + + + 9047 + 100 + 0 + 0 + 0 + + + 9048 + 100 + 0 + 0 + 0 + + + 9049 + 100 + 0 + 0 + 0 + + + 9050 + 100 + 0 + 0 + 0 + + + 9051 + 100 + 0 + 0 + 0 + + + 9052 + 1 + 0 + 0 + 0 + + + 9053 + 1 + 0 + 0 + 0 + + + 9054 + 40 + 0 + 0 + 0 + + + 9055 + 40 + 0 + 0 + 0 + + + 9056 + 40 + 0 + 0 + 0 + + + 9057 + 40 + 0 + 0 + 0 + + + 9058 + 40 + 0 + 0 + 0 + + + 9059 + 40 + 0 + 0 + 0 + + + 9060 + 1 + 0 + 0 + 0 + + + 9061 + 1 + 0 + 0 + 0 + + + 9062 + 1 + 0 + 0 + 0 + + + 9063 + 1 + 0 + 0 + 0 + + + 9064 + 20 + 0 + 0 + 0 + + + 9065 + 20 + 0 + 0 + 0 + + + 9066 + 10 + 0 + 0 + 0 + + + 9067 + 4 + 0 + 0 + 0 + + + 9068 + 1000 + 0 + 0 + 0 + + + 9069 + 1000 + 0 + 0 + 0 + + + 9070 + 1000 + 0 + 0 + 0 + + + 9071 + 1000 + 0 + 0 + 0 + + + 9072 + 900 + 0 + 0 + 0 + + + 9073 + 900 + 0 + 0 + 0 + + + 9074 + 200 + 0 + 0 + 0 + + + 9075 + 220 + 0 + 0 + 0 + + + 9076 + 3 + 0 + 0 + 0 + + + 9077 + 8 + 0 + 0 + 0 + + + 9078 + 1 + 0 + 0 + 0 + + + 9079 + 20 + 0 + 0 + 0 + + + 9080 + 60 + 0 + 0 + 0 + + + 9081 + 60 + 0 + 0 + 0 + + + 9082 + 20 + 0 + 0 + 0 + + + 9083 + 1 + 0 + 0 + 0 + + + 9084 + 1 + 0 + 0 + 0 + + + 9085 + 1 + 0 + 0 + 0 + + + 9086 + 1 + 0 + 0 + 0 + + + 9087 + 1 + 0 + 0 + 0 + + + 9088 + 1 + 0 + 0 + 0 + + + 9089 + 1 + 0 + 0 + 0 + + + 9090 + 1 + 0 + 0 + 0 + + + 9091 + 15 + 0 + 0 + 0 + + + 9092 + 15 + 0 + 0 + 0 + + + 9093 + 15 + 0 + 0 + 0 + + + 9094 + 1 + 0 + 0 + 0 + + + 9095 + 1 + 0 + 0 + 0 + + + 9096 + 100 + 0 + 0 + 0 + + + 9097 + 100 + 0 + 0 + 0 + + + 9098 + 100 + 0 + 0 + 0 + + + 9099 + 100 + 0 + 0 + 0 + + + 9100 + 100 + 0 + 0 + 0 + + + 9101 + 2 + 0 + 0 + 0 + + + 9102 + 30 + 0 + 0 + 0 + + + 9103 + 30 + 0 + 0 + 0 + + + 9104 + 100 + 0 + 0 + 0 + + + 9105 + 1 + 0 + 0 + 0 + + + 9106 + 100 + 0 + 0 + 0 + + + 9107 + 1 + 0 + 0 + 0 + + + 9108 + 1 + 0 + 0 + 0 + + + 9109 + 1 + 0 + 0 + 0 + + + 9110 + 1 + 0 + 0 + 0 + + + 9111 + 1 + 0 + 0 + 0 + + + 9112 + 1 + 0 + 0 + 0 + + + 9113 + 1 + 0 + 0 + 0 + + + 9114 + 1 + 0 + 0 + 0 + + + 9115 + 1 + 0 + 0 + 0 + + + 9116 + 1 + 0 + 0 + 0 + + + 9117 + 1 + 0 + 0 + 0 + + + 9118 + 1 + 0 + 0 + 0 + + + 9119 + 1 + 0 + 0 + 0 + + + 9120 + 1 + 0 + 0 + 0 + + + 9121 + 1 + 0 + 0 + 0 + + + 9122 + 1 + 0 + 0 + 0 + + + 9123 + 1 + 0 + 0 + 0 + + + 9124 + 1 + 0 + 0 + 0 + + + 9125 + 1 + 0 + 0 + 0 + + + 9126 + 1 + 0 + 0 + 0 + + + 9127 + 1 + 0 + 0 + 0 + + + 9128 + 1 + 0 + 0 + 0 + + + 9129 + 1 + 0 + 0 + 0 + + + 9130 + 1 + 0 + 0 + 0 + + + 9131 + 1 + 0 + 0 + 0 + + + 9132 + 1 + 0 + 0 + 0 + + + 9133 + 1 + 0 + 0 + 0 + + + 9134 + 1 + 0 + 0 + 0 + + + 9135 + 1 + 0 + 0 + 0 + + + 9136 + 1 + 0 + 0 + 0 + + + 9137 + 1 + 0 + 0 + 0 + + + 9138 + 1 + 0 + 0 + 0 + + + 9139 + 2 + 0 + 0 + 0 + + + 9140 + 2 + 0 + 0 + 0 + + + 9141 + 8 + 0 + 0 + 0 + + + 9142 + 20 + 0 + 0 + 0 + + + 9143 + 58 + 0 + 0 + 0 + + + 9144 + 300 + 0 + 0 + 0 + + + 9145 + 5 + 0 + 0 + 0 + + + 9146 + 1 + 0 + 0 + 0 + + + 9147 + 1 + 0 + 0 + 0 + + + 9148 + 1 + 0 + 0 + 0 + + + 9149 + 1 + 0 + 0 + 0 + + + 9150 + 1 + 0 + 0 + 0 + + + 9151 + 1 + 0 + 0 + 0 + + + 9152 + 1 + 0 + 0 + 0 + + + 9153 + 1 + 0 + 0 + 0 + + + 9154 + 1 + 0 + 0 + 0 + + + 9155 + 1 + 0 + 0 + 0 + + + 9156 + 1 + 0 + 0 + 0 + + + 9157 + 1 + 0 + 0 + 0 + + + 9158 + 1 + 0 + 0 + 0 + + + 9159 + 1 + 0 + 0 + 0 + + + 9160 + 1 + 0 + 0 + 0 + + + 9161 + 1 + 0 + 0 + 0 + + + 9162 + 1 + 0 + 0 + 0 + + + 9163 + 1 + 0 + 0 + 0 + + + 9164 + 1 + 0 + 0 + 0 + + + 9165 + 1 + 0 + 0 + 0 + + + 9166 + 1 + 0 + 0 + 0 + + + 9167 + 1 + 0 + 0 + 0 + + + 9168 + 1 + 0 + 0 + 0 + + + 9169 + 1 + 0 + 0 + 0 + + + 9170 + 1 + 0 + 0 + 0 + + + 9171 + 1 + 0 + 0 + 0 + + + 9172 + 1 + 0 + 0 + 0 + + + 9173 + 1 + 0 + 0 + 0 + + + 9174 + 73 + 0 + 0 + 0 + + + 9175 + 73 + 0 + 0 + 0 + + + 9176 + 93 + 0 + 0 + 0 + + + 9177 + 157 + 0 + 0 + 0 + + + 9178 + 157 + 0 + 0 + 0 + + + 9179 + 360 + 0 + 0 + 0 + + + 9180 + 360 + 0 + 0 + 0 + + + 9181 + 783 + 0 + 0 + 0 + + + 9182 + 783 + 0 + 0 + 0 + + + 9183 + 1767 + 0 + 0 + 0 + + + 9184 + 1767 + 0 + 0 + 0 + + + 9185 + 16200 + 0 + 0 + 0 + + + 9186 + 16200 + 0 + 0 + 0 + + + 9187 + 10 + 0 + 0 + 0 + + + 9188 + 13 + 0 + 0 + 0 + + + 9189 + 17 + 0 + 0 + 0 + + + 9190 + 33 + 0 + 0 + 0 + + + 9191 + 67 + 0 + 0 + 0 + + + 9192 + 133 + 0 + 0 + 0 + + + 9193 + 667 + 0 + 0 + 0 + + + 9194 + 1000 + 0 + 0 + 0 + + + 9195 + 1 + 0 + 0 + 0 + + + 9196 + 1 + 0 + 0 + 0 + + + 9197 + 1 + 0 + 0 + 0 + + + 9198 + 1 + 0 + 0 + 0 + + + 9199 + 1 + 0 + 0 + 0 + + + 9200 + 1 + 0 + 0 + 0 + + + 9201 + 1 + 0 + 0 + 0 + + + 9202 + 1 + 0 + 0 + 0 + + + 9203 + 1 + 0 + 0 + 0 + + + 9204 + 1 + 0 + 0 + 0 + + + 9205 + 1 + 0 + 0 + 0 + + + 9206 + 1 + 0 + 0 + 0 + + + 9207 + 1 + 0 + 0 + 0 + + + 9208 + 1 + 0 + 0 + 0 + + + 9209 + 1 + 0 + 0 + 0 + + + 9210 + 1 + 0 + 0 + 0 + + + 9211 + 1 + 0 + 0 + 0 + + + 9212 + 1 + 0 + 0 + 0 + + + 9213 + 1 + 0 + 0 + 0 + + + 9214 + 1 + 0 + 0 + 0 + + + 9215 + 1 + 0 + 0 + 0 + + + 9216 + 1 + 0 + 0 + 0 + + + 9217 + 1 + 0 + 0 + 0 + + + 9218 + 1 + 0 + 0 + 0 + + + 9219 + 1 + 0 + 0 + 0 + + + 9220 + 1 + 0 + 0 + 0 + + + 9221 + 1 + 0 + 0 + 0 + + + 9222 + 1 + 0 + 0 + 0 + + + 9223 + 1 + 0 + 0 + 0 + + + 9224 + 1 + 0 + 0 + 0 + + + 9225 + 1 + 0 + 0 + 0 + + + 9226 + 1 + 0 + 0 + 0 + + + 9227 + 1 + 0 + 0 + 0 + + + 9228 + 1 + 0 + 0 + 0 + + + 9229 + 1 + 0 + 0 + 0 + + + 9230 + 1 + 0 + 0 + 0 + + + 9231 + 1 + 0 + 0 + 0 + + + 9232 + 1 + 0 + 0 + 0 + + + 9233 + 1 + 0 + 0 + 0 + + + 9234 + 1 + 0 + 0 + 0 + + + 9235 + 1 + 0 + 0 + 0 + + + 9236 + 7 + 0 + 0 + 0 + + + 9237 + 13 + 0 + 0 + 0 + + + 9238 + 15 + 0 + 0 + 0 + + + 9239 + 24 + 0 + 0 + 0 + + + 9240 + 40 + 0 + 0 + 0 + + + 9241 + 59 + 0 + 0 + 0 + + + 9242 + 138 + 0 + 0 + 0 + + + 9243 + 211 + 0 + 0 + 0 + + + 9244 + 1063 + 0 + 0 + 0 + + + 9245 + 15000 + 0 + 0 + 0 + + + 9246 + 1 + 0 + 0 + 0 + + + 9247 + 1 + 0 + 0 + 0 + + + 9248 + 1 + 0 + 0 + 0 + + + 9249 + 1 + 0 + 0 + 0 + + + 9250 + 1 + 0 + 0 + 0 + + + 9251 + 1 + 0 + 0 + 0 + + + 9252 + 1 + 0 + 0 + 0 + + + 9253 + 1 + 0 + 0 + 0 + + + 9254 + 1 + 0 + 0 + 0 + + + 9255 + 1 + 0 + 0 + 0 + + + 9256 + 1 + 0 + 0 + 0 + + + 9257 + 1 + 0 + 0 + 0 + + + 9258 + 1 + 0 + 0 + 0 + + + 9259 + 1 + 0 + 0 + 0 + + + 9260 + 1 + 0 + 0 + 0 + + + 9261 + 1 + 0 + 0 + 0 + + + 9262 + 1 + 0 + 0 + 0 + + + 9263 + 1 + 0 + 0 + 0 + + + 9264 + 1 + 0 + 0 + 0 + + + 9265 + 1 + 0 + 0 + 0 + + + 9266 + 1 + 0 + 0 + 0 + + + 9267 + 1 + 0 + 0 + 0 + + + 9268 + 1 + 0 + 0 + 0 + + + 9269 + 1 + 0 + 0 + 0 + + + 9270 + 1 + 0 + 0 + 0 + + + 9271 + 1 + 0 + 0 + 0 + + + 9272 + 1 + 0 + 0 + 0 + + + 9273 + 1 + 0 + 0 + 0 + + + 9274 + 1 + 0 + 0 + 0 + + + 9275 + 1 + 0 + 0 + 0 + + + 9276 + 1 + 0 + 0 + 0 + + + 9277 + 1 + 0 + 0 + 0 + + + 9278 + 1 + 0 + 0 + 0 + + + 9279 + 1 + 0 + 0 + 0 + + + 9280 + 1 + 0 + 0 + 0 + + + 9281 + 1 + 0 + 0 + 0 + + + 9282 + 1 + 0 + 0 + 0 + + + 9283 + 1 + 0 + 0 + 0 + + + 9284 + 1 + 0 + 0 + 0 + + + 9285 + 1 + 0 + 0 + 0 + + + 9286 + 2 + 0 + 0 + 0 + + + 9287 + 2 + 0 + 0 + 0 + + + 9288 + 8 + 0 + 0 + 0 + + + 9289 + 20 + 0 + 0 + 0 + + + 9290 + 58 + 0 + 0 + 0 + + + 9291 + 300 + 0 + 0 + 0 + + + 9292 + 5 + 0 + 0 + 0 + + + 9293 + 2 + 0 + 0 + 0 + + + 9294 + 2 + 0 + 0 + 0 + + + 9295 + 8 + 0 + 0 + 0 + + + 9296 + 20 + 0 + 0 + 0 + + + 9297 + 58 + 0 + 0 + 0 + + + 9298 + 300 + 0 + 0 + 0 + + + 9299 + 5 + 0 + 0 + 0 + + + 9300 + 2 + 0 + 0 + 0 + + + 9301 + 2 + 0 + 0 + 0 + + + 9302 + 8 + 0 + 0 + 0 + + + 9303 + 20 + 0 + 0 + 0 + + + 9304 + 58 + 0 + 0 + 0 + + + 9305 + 300 + 0 + 0 + 0 + + + 9306 + 5 + 0 + 0 + 0 + + + 9307 + 1 + 0 + 0 + 0 + + + 9308 + 1 + 0 + 0 + 0 + + + 9309 + 1 + 0 + 0 + 0 + + + 9310 + 1 + 0 + 0 + 0 + + + 9311 + 1 + 0 + 0 + 0 + + + 9312 + 1 + 0 + 0 + 0 + + + 9313 + 1 + 0 + 0 + 0 + + + 9314 + 1 + 0 + 0 + 0 + + + 9315 + 1 + 0 + 0 + 0 + + + 9316 + 1 + 0 + 0 + 0 + + + 9317 + 1 + 0 + 0 + 0 + + + 9318 + 1 + 0 + 0 + 0 + + + 9319 + 1 + 0 + 0 + 0 + + + 9320 + 1 + 0 + 0 + 0 + + + 9321 + 1 + 0 + 0 + 0 + + + 9322 + 1 + 0 + 0 + 0 + + + 9323 + 1 + 0 + 0 + 0 + + + 9324 + 1 + 0 + 0 + 0 + + + 9325 + 1 + 0 + 0 + 0 + + + 9326 + 1 + 0 + 0 + 0 + + + 9327 + 1 + 0 + 0 + 0 + + + 9328 + 1 + 0 + 0 + 0 + + + 9329 + 1 + 0 + 0 + 0 + + + 9330 + 1 + 0 + 0 + 0 + + + 9331 + 1 + 0 + 0 + 0 + + + 9332 + 1 + 0 + 0 + 0 + + + 9333 + 1 + 0 + 0 + 0 + + + 9334 + 1 + 0 + 0 + 0 + + + 9335 + 12 + 0 + 0 + 0 + + + 9336 + 22 + 0 + 0 + 0 + + + 9337 + 37 + 0 + 0 + 0 + + + 9338 + 53 + 0 + 0 + 0 + + + 9339 + 125 + 0 + 0 + 0 + + + 9340 + 192 + 0 + 0 + 0 + + + 9341 + 967 + 0 + 0 + 0 + + + 9342 + 13633 + 0 + 0 + 0 + + + 9343 + 1 + 0 + 0 + 0 + + + 9344 + 1 + 0 + 0 + 0 + + + 9345 + 1 + 0 + 0 + 0 + + + 9346 + 1 + 0 + 0 + 0 + + + 9347 + 1 + 0 + 0 + 0 + + + 9348 + 1 + 0 + 0 + 0 + + + 9349 + 1 + 0 + 0 + 0 + + + 9350 + 1 + 0 + 0 + 0 + + + 9351 + 1 + 0 + 0 + 0 + + + 9352 + 1 + 0 + 0 + 0 + + + 9353 + 1 + 0 + 0 + 0 + + + 9354 + 1 + 0 + 0 + 0 + + + 9355 + 1 + 0 + 0 + 0 + + + 9356 + 1 + 0 + 0 + 0 + + + 9357 + 1 + 0 + 0 + 0 + + + 9358 + 1 + 0 + 0 + 0 + + + 9359 + 1 + 0 + 0 + 0 + + + 9360 + 1 + 0 + 0 + 0 + + + 9361 + 1 + 0 + 0 + 0 + + + 9362 + 1 + 0 + 0 + 0 + + + 9363 + 1 + 0 + 0 + 0 + + + 9364 + 1 + 0 + 0 + 0 + + + 9365 + 1 + 0 + 0 + 0 + + + 9366 + 1 + 0 + 0 + 0 + + + 9367 + 1 + 0 + 0 + 0 + + + 9368 + 1 + 0 + 0 + 0 + + + 9369 + 1 + 0 + 0 + 0 + + + 9370 + 1 + 0 + 0 + 0 + + + 9371 + 1 + 0 + 0 + 0 + + + 9372 + 1 + 0 + 0 + 0 + + + 9373 + 1 + 0 + 0 + 0 + + + 9374 + 1 + 0 + 0 + 0 + + + 9375 + 1 + 0 + 0 + 0 + + + 9376 + 1 + 0 + 0 + 0 + + + 9377 + 1 + 0 + 0 + 0 + + + 9378 + 1 + 0 + 0 + 0 + + + 9379 + 1 + 0 + 0 + 0 + + + 9380 + 1 + 0 + 0 + 0 + + + 9381 + 1 + 0 + 0 + 0 + + + 9382 + 1 + 0 + 0 + 0 + + + 9383 + 1 + 0 + 0 + 0 + + + 9384 + 1 + 0 + 0 + 0 + + + 9385 + 1 + 0 + 0 + 0 + + + 9386 + 1 + 0 + 0 + 0 + + + 9387 + 1 + 0 + 0 + 0 + + + 9388 + 1 + 0 + 0 + 0 + + + 9389 + 1 + 0 + 0 + 0 + + + 9390 + 1 + 0 + 0 + 0 + + + 9391 + 1 + 0 + 0 + 0 + + + 9392 + 1 + 0 + 0 + 0 + + + 9393 + 1 + 0 + 0 + 0 + + + 9394 + 1 + 0 + 0 + 0 + + + 9395 + 1 + 0 + 0 + 0 + + + 9396 + 1 + 0 + 0 + 0 + + + 9397 + 1 + 0 + 0 + 0 + + + 9398 + 1 + 0 + 0 + 0 + + + 9399 + 1 + 0 + 0 + 0 + + + 9400 + 1 + 0 + 0 + 0 + + + 9401 + 1 + 0 + 0 + 0 + + + 9402 + 1 + 0 + 0 + 0 + + + 9403 + 1 + 0 + 0 + 0 + + + 9404 + 1 + 0 + 0 + 0 + + + 9405 + 1 + 0 + 0 + 0 + + + 9406 + 1 + 0 + 0 + 0 + + + 9407 + 1 + 0 + 0 + 0 + + + 9408 + 1 + 0 + 0 + 0 + + + 9409 + 1 + 0 + 0 + 0 + + + 9410 + 1 + 0 + 0 + 0 + + + 9411 + 1 + 0 + 0 + 0 + + + 9412 + 1 + 0 + 0 + 0 + + + 9413 + 1 + 0 + 0 + 0 + + + 9414 + 1 + 0 + 0 + 0 + + + 9415 + 1 + 0 + 0 + 0 + + + 9416 + 30 + 0 + 0 + 0 + + + 9417 + 30 + 0 + 0 + 0 + + + 9418 + 48 + 0 + 0 + 0 + + + 9419 + 1 + 0 + 0 + 0 + + + 9420 + 20 + 0 + 0 + 0 + + + 9421 + 20 + 0 + 0 + 0 + + + 9422 + 33 + 0 + 0 + 0 + + + 9423 + 70 + 0 + 0 + 0 + + + 9424 + 70 + 0 + 0 + 0 + + + 9425 + 250 + 0 + 0 + 0 + + + 9426 + 250 + 0 + 0 + 0 + + + 9427 + 650 + 0 + 0 + 0 + + + 9428 + 650 + 0 + 0 + 0 + + + 9429 + 1600 + 0 + 0 + 0 + + + 9430 + 1600 + 0 + 0 + 0 + + + 9431 + 16000 + 0 + 0 + 0 + + + 9432 + 16000 + 0 + 0 + 0 + + + 9433 + 5000 + 0 + 0 + 0 + + + 9434 + 25 + 0 + 0 + 0 + + + 9435 + 25 + 0 + 0 + 0 + + + 9436 + 2 + 0 + 0 + 0 + + + 9437 + 2 + 0 + 0 + 0 + + + 9438 + 1 + 0 + 0 + 0 + + + 9439 + 1 + 0 + 0 + 0 + + + 9440 + 20 + 0 + 0 + 0 + + + 9441 + 20 + 0 + 0 + 0 + + + 9442 + 27 + 0 + 0 + 0 + + + 9443 + 27 + 0 + 0 + 0 + + + 9444 + 53 + 0 + 0 + 0 + + + 9445 + 53 + 0 + 0 + 0 + + + 9446 + 77 + 0 + 0 + 0 + + + 9447 + 77 + 0 + 0 + 0 + + + 9448 + 100 + 0 + 0 + 0 + + + 9449 + 100 + 0 + 0 + 0 + + + 9450 + 133 + 0 + 0 + 0 + + + 9451 + 133 + 0 + 0 + 0 + + + 9452 + 167 + 0 + 0 + 0 + + + 9453 + 167 + 0 + 0 + 0 + + + 9454 + 40 + 0 + 0 + 0 + + + 9455 + 40 + 0 + 0 + 0 + + + 9456 + 60 + 0 + 0 + 0 + + + 9457 + 123 + 0 + 0 + 0 + + + 9458 + 123 + 0 + 0 + 0 + + + 9459 + 327 + 0 + 0 + 0 + + + 9460 + 327 + 0 + 0 + 0 + + + 9461 + 750 + 0 + 0 + 0 + + + 9462 + 750 + 0 + 0 + 0 + + + 9463 + 1733 + 0 + 0 + 0 + + + 9464 + 1733 + 0 + 0 + 0 + + + 9465 + 16167 + 0 + 0 + 0 + + + 9466 + 16167 + 0 + 0 + 0 + + + 9467 + 18 + 0 + 0 + 0 + + + 9468 + 1 + 0 + 0 + 0 + + + 9469 + 250 + 0 + 0 + 0 + + + 9470 + 1000 + 0 + 0 + 0 + + + 9471 + 1000 + 0 + 0 + 0 + + + 9472 + 1000 + 0 + 0 + 0 + + + 9473 + 1000 + 0 + 0 + 0 + + + 9474 + 250 + 0 + 0 + 0 + + + 9475 + 250 + 0 + 0 + 0 + + + 9476 + 250 + 0 + 0 + 0 + + + 9477 + 1 + 0 + 0 + 0 + + + 9478 + 2 + 0 + 0 + 0 + + + 9479 + 2 + 0 + 0 + 0 + + + 9480 + 2 + 0 + 0 + 0 + + + 9481 + 2 + 0 + 0 + 0 + + + 9482 + 2 + 0 + 0 + 0 + + + 9483 + 2 + 0 + 0 + 0 + + + 9484 + 2 + 0 + 0 + 0 + + + 9485 + 2 + 0 + 0 + 0 + + + 9486 + 2 + 0 + 0 + 0 + + + 9487 + 1 + 0 + 0 + 0 + + + 9488 + 1 + 0 + 0 + 0 + + + 9489 + 1 + 0 + 0 + 0 + + + 9490 + 1 + 0 + 0 + 0 + + + 9491 + 1 + 0 + 0 + 0 + + + 9492 + 1 + 0 + 0 + 0 + + + 9493 + 1 + 0 + 0 + 0 + + + 9494 + 1 + 0 + 0 + 0 + + + 9495 + 1 + 0 + 0 + 0 + + + 9496 + 1 + 0 + 0 + 0 + + + 9497 + 1 + 0 + 0 + 0 + + + 9498 + 1 + 0 + 0 + 0 + + + 9499 + 1 + 0 + 0 + 0 + + + 9500 + 1 + 0 + 0 + 0 + + + 9501 + 1 + 0 + 0 + 0 + + + 9502 + 1 + 0 + 0 + 0 + + + 9503 + 1 + 0 + 0 + 0 + + + 9504 + 1 + 0 + 0 + 0 + + + 9505 + 1 + 0 + 0 + 0 + + + 9506 + 1 + 0 + 0 + 0 + + + 9507 + 1 + 0 + 0 + 0 + + + 9508 + 1 + 0 + 0 + 0 + + + 9509 + 1 + 0 + 0 + 0 + + + 9510 + 1 + 0 + 0 + 0 + + + 9511 + 1 + 0 + 0 + 0 + + + 9512 + 1 + 0 + 0 + 0 + + + 9513 + 1 + 0 + 0 + 0 + + + 9514 + 1 + 0 + 0 + 0 + + + 9515 + 1 + 0 + 0 + 0 + + + 9516 + 1 + 0 + 0 + 0 + + + 9517 + 1 + 0 + 0 + 0 + + + 9518 + 1 + 0 + 0 + 0 + + + 9519 + 1 + 0 + 0 + 0 + + + 9520 + 1 + 0 + 0 + 0 + + + 9521 + 1 + 0 + 0 + 0 + + + 9522 + 1 + 0 + 0 + 0 + + + 9523 + 1 + 0 + 0 + 0 + + + 9524 + 1 + 0 + 0 + 0 + + + 9525 + 1 + 0 + 0 + 0 + + + 9526 + 1 + 0 + 0 + 0 + + + 9527 + 1 + 0 + 0 + 0 + + + 9528 + 1 + 0 + 0 + 0 + + + 9529 + 1 + 0 + 0 + 0 + + + 9530 + 1 + 0 + 0 + 0 + + + 9531 + 1 + 0 + 0 + 0 + + + 9532 + 1 + 0 + 0 + 0 + + + 9533 + 1 + 0 + 0 + 0 + + + 9534 + 1 + 0 + 0 + 0 + + + 9535 + 1 + 0 + 0 + 0 + + + 9536 + 1 + 0 + 0 + 0 + + + 9537 + 1 + 0 + 0 + 0 + + + 9538 + 1 + 0 + 0 + 0 + + + 9539 + 1 + 0 + 0 + 0 + + + 9540 + 1 + 0 + 0 + 0 + + + 9541 + 1 + 0 + 0 + 0 + + + 9542 + 1 + 0 + 0 + 0 + + + 9543 + 1 + 0 + 0 + 0 + + + 9544 + 1 + 0 + 0 + 0 + + + 9545 + 1 + 0 + 0 + 0 + + + 9546 + 1 + 0 + 0 + 0 + + + 9547 + 1 + 0 + 0 + 0 + + + 9548 + 1 + 0 + 0 + 0 + + + 9549 + 1 + 0 + 0 + 0 + + + 9550 + 1 + 0 + 0 + 0 + + + 9551 + 1 + 0 + 0 + 0 + + + 9552 + 1 + 0 + 0 + 0 + + + 9553 + 1 + 0 + 0 + 0 + + + 9554 + 1 + 0 + 0 + 0 + + + 9555 + 1 + 0 + 0 + 0 + + + 9556 + 1 + 0 + 0 + 0 + + + 9557 + 1 + 0 + 0 + 0 + + + 9558 + 2 + 0 + 0 + 0 + + + 9559 + 2 + 0 + 0 + 0 + + + 9560 + 2 + 0 + 0 + 0 + + + 9561 + 2 + 0 + 0 + 0 + + + 9562 + 2 + 0 + 0 + 0 + + + 9563 + 2 + 0 + 0 + 0 + + + 9564 + 2 + 0 + 0 + 0 + + + 9565 + 2 + 0 + 0 + 0 + + + 9566 + 2 + 0 + 0 + 0 + + + 9567 + 2 + 0 + 0 + 0 + + + 9568 + 2 + 0 + 0 + 0 + + + 9569 + 2 + 0 + 0 + 0 + + + 9570 + 2 + 0 + 0 + 0 + + + 9571 + 2 + 0 + 0 + 0 + + + 9572 + 2 + 0 + 0 + 0 + + + 9573 + 2 + 0 + 0 + 0 + + + 9574 + 2 + 0 + 0 + 0 + + + 9575 + 2 + 0 + 0 + 0 + + + 9576 + 2 + 0 + 0 + 0 + + + 9577 + 2 + 0 + 0 + 0 + + + 9578 + 2 + 0 + 0 + 0 + + + 9579 + 2 + 0 + 0 + 0 + + + 9580 + 2 + 0 + 0 + 0 + + + 9581 + 2 + 0 + 0 + 0 + + + 9582 + 2 + 0 + 0 + 0 + + + 9583 + 2 + 0 + 0 + 0 + + + 9584 + 2 + 0 + 0 + 0 + + + 9585 + 10 + 0 + 0 + 0 + + + 9586 + 10 + 0 + 0 + 0 + + + 9587 + 10 + 0 + 0 + 0 + + + 9588 + 2 + 0 + 0 + 0 + + + 9589 + 1 + 0 + 0 + 0 + + + 9590 + 1 + 0 + 0 + 0 + + + 9591 + 1 + 0 + 0 + 0 + + + 9592 + 1 + 0 + 0 + 0 + + + 9593 + 1 + 0 + 0 + 0 + + + 9594 + 1 + 0 + 0 + 0 + + + 9595 + 1 + 0 + 0 + 0 + + + 9596 + 10 + 0 + 0 + 0 + + + 9597 + 1 + 0 + 0 + 0 + + + 9598 + 1 + 0 + 0 + 0 + + + 9599 + 1 + 0 + 0 + 0 + + + 9600 + 1 + 0 + 0 + 0 + + + 9601 + 1 + 0 + 0 + 0 + + + 9602 + 1 + 0 + 0 + 0 + + + 9603 + 1 + 0 + 0 + 0 + + + 9604 + 1 + 0 + 0 + 0 + + + 9605 + 1 + 0 + 0 + 0 + + + 9606 + 1 + 0 + 0 + 0 + + + 9607 + 1 + 0 + 0 + 0 + + + 9608 + 1 + 0 + 0 + 0 + + + 9609 + 1 + 0 + 0 + 0 + + + 9610 + 1 + 0 + 0 + 0 + + + 9611 + 1 + 0 + 0 + 0 + + + 9612 + 1 + 0 + 0 + 0 + + + 9613 + 1 + 0 + 0 + 0 + + + 9614 + 1 + 0 + 0 + 0 + + + 9615 + 1 + 0 + 0 + 0 + + + 9616 + 1 + 0 + 0 + 0 + + + 9617 + 1 + 0 + 0 + 0 + + + 9618 + 1 + 0 + 0 + 0 + + + 9619 + 1 + 0 + 0 + 0 + + + 9620 + 1 + 0 + 0 + 0 + + + 9621 + 1 + 0 + 0 + 0 + + + 9622 + 1 + 0 + 0 + 0 + + + 9623 + 1 + 0 + 0 + 0 + + + 9624 + 1 + 0 + 0 + 0 + + + 9625 + 10 + 0 + 0 + 0 + + + 9626 + 10000 + 0 + 0 + 0 + + + 9627 + 2 + 0 + 0 + 0 + + + 9628 + 1 + 0 + 0 + 0 + + + 9629 + 1265 + 0 + 0 + 0 + + + 9630 + 1265 + 0 + 0 + 0 + + + 9631 + 2 + 0 + 0 + 0 + + + 9632 + 100 + 0 + 0 + 0 + + + 9633 + 1 + 0 + 0 + 0 + + + 9634 + 650 + 0 + 0 + 0 + + + 9635 + 650 + 0 + 0 + 0 + + + 9636 + 650 + 0 + 0 + 0 + + + 9637 + 650 + 0 + 0 + 0 + + + 9638 + 650 + 0 + 0 + 0 + + + 9639 + 650 + 0 + 0 + 0 + + + 9640 + 6 + 0 + 0 + 0 + + + 9641 + 6 + 0 + 0 + 0 + + + 9642 + 6 + 0 + 0 + 0 + + + 9643 + 6 + 0 + 0 + 0 + + + 9644 + 6 + 0 + 0 + 0 + + + 9645 + 6 + 0 + 0 + 0 + + + 9646 + 1 + 0 + 0 + 0 + + + 9647 + 1 + 0 + 0 + 0 + + + 9648 + 1 + 0 + 0 + 0 + + + 9649 + 1 + 0 + 0 + 0 + + + 9650 + 1 + 0 + 0 + 0 + + + 9651 + 1 + 0 + 0 + 0 + + + 9652 + 1 + 0 + 0 + 0 + + + 9653 + 1 + 0 + 0 + 0 + + + 9654 + 1 + 0 + 0 + 0 + + + 9655 + 1 + 0 + 0 + 0 + + + 9656 + 1 + 0 + 0 + 0 + + + 9657 + 1 + 0 + 0 + 0 + + + 9658 + 1 + 0 + 0 + 0 + + + 9659 + 1 + 0 + 0 + 0 + + + 9660 + 1 + 0 + 0 + 0 + + + 9661 + 1 + 0 + 0 + 0 + + + 9662 + 1 + 0 + 0 + 0 + + + 9663 + 1 + 0 + 0 + 0 + + + 9664 + 1 + 0 + 0 + 0 + + + 9665 + 1 + 0 + 0 + 0 + + + 9666 + 25000 + 0 + 0 + 0 + + + 9667 + 25000 + 0 + 0 + 0 + + + 9668 + 20000 + 0 + 0 + 0 + + + 9669 + 20000 + 0 + 0 + 0 + + + 9670 + 25000 + 0 + 0 + 0 + + + 9671 + 25000 + 0 + 0 + 0 + + + 9672 + 8000 + 0 + 0 + 0 + + + 9673 + 8000 + 0 + 0 + 0 + + + 9674 + 12000 + 0 + 0 + 0 + + + 9675 + 12000 + 0 + 0 + 0 + + + 9676 + 10000 + 0 + 0 + 0 + + + 9677 + 10000 + 0 + 0 + 0 + + + 9678 + 10000 + 0 + 0 + 0 + + + 9679 + 10000 + 0 + 0 + 0 + + + 9680 + 1 + 0 + 0 + 0 + + + 9681 + 1 + 0 + 0 + 0 + + + 9682 + 1 + 0 + 0 + 0 + + + 9683 + 1 + 0 + 0 + 0 + + + 9684 + 1 + 0 + 0 + 0 + + + 9685 + 1 + 0 + 0 + 0 + + + 9686 + 1 + 0 + 0 + 0 + + + 9687 + 1 + 0 + 0 + 0 + + + 9688 + 1 + 0 + 0 + 0 + + + 9689 + 1 + 0 + 0 + 0 + + + 9690 + 1 + 0 + 0 + 0 + + + 9691 + 1 + 0 + 0 + 0 + + + 9692 + 1 + 0 + 0 + 0 + + + 9693 + 1 + 0 + 0 + 0 + + + 9694 + 1 + 0 + 0 + 0 + + + 9695 + 1 + 0 + 0 + 0 + + + 9696 + 1 + 0 + 0 + 0 + + + 9697 + 1 + 0 + 0 + 0 + + + 9698 + 1 + 0 + 0 + 0 + + + 9699 + 1 + 0 + 0 + 0 + + + 9700 + 1 + 0 + 0 + 0 + + + 9701 + 1 + 0 + 0 + 0 + + + 9702 + 1 + 0 + 0 + 0 + + + 9703 + 1 + 0 + 0 + 0 + + + 9704 + 1 + 0 + 0 + 0 + + + 9705 + 1 + 0 + 0 + 0 + + + 9706 + 1 + 0 + 0 + 0 + + + 9707 + 1 + 0 + 0 + 0 + + + 9708 + 1 + 0 + 0 + 0 + + + 9709 + 1 + 0 + 0 + 0 + + + 9710 + 1 + 0 + 0 + 0 + + + 9711 + 1 + 0 + 0 + 0 + + + 9712 + 1 + 0 + 0 + 0 + + + 9713 + 1 + 0 + 0 + 0 + + + 9714 + 1 + 0 + 0 + 0 + + + 9715 + 10 + 0 + 0 + 0 + + + 9716 + 1 + 0 + 0 + 0 + + + 9717 + 1 + 0 + 0 + 0 + + + 9718 + 1 + 0 + 0 + 0 + + + 9719 + 1 + 0 + 0 + 0 + + + 9720 + 1 + 0 + 0 + 0 + + + 9721 + 1 + 0 + 0 + 0 + + + 9722 + 1 + 0 + 0 + 0 + + + 9723 + 1 + 0 + 0 + 0 + + + 9724 + 1 + 0 + 0 + 0 + + + 9725 + 1 + 0 + 0 + 0 + + + 9726 + 1 + 0 + 0 + 0 + + + 9727 + 1 + 0 + 0 + 0 + + + 9728 + 1 + 0 + 0 + 0 + + + 9729 + 20 + 0 + 0 + 0 + + + 9730 + 20 + 0 + 0 + 0 + + + 9731 + 3000 + 0 + 0 + 0 + + + 9732 + 3000 + 0 + 0 + 0 + + + 9733 + 3000 + 0 + 0 + 0 + + + 9734 + 3000 + 0 + 0 + 0 + + + 9735 + 12 + 0 + 0 + 0 + + + 9736 + 12 + 0 + 0 + 0 + + + 9737 + 12 + 0 + 0 + 0 + + + 9738 + 12 + 0 + 0 + 0 + + + 9739 + 215 + 0 + 0 + 0 + + + 9740 + 215 + 0 + 0 + 0 + + + 9741 + 160 + 0 + 0 + 0 + + + 9742 + 160 + 0 + 0 + 0 + + + 9743 + 105 + 0 + 0 + 0 + + + 9744 + 105 + 0 + 0 + 0 + + + 9745 + 52 + 0 + 0 + 0 + + + 9746 + 52 + 0 + 0 + 0 + + + 9747 + 99000 + 0 + 0 + 0 + + + 9748 + 99000 + 0 + 0 + 0 + + + 9749 + 1 + 0 + 0 + 0 + + + 9750 + 99000 + 0 + 0 + 0 + + + 9751 + 99000 + 0 + 0 + 0 + + + 9752 + 1 + 0 + 0 + 0 + + + 9753 + 99000 + 0 + 0 + 0 + + + 9754 + 99000 + 0 + 0 + 0 + + + 9755 + 1 + 0 + 0 + 0 + + + 9756 + 99000 + 0 + 0 + 0 + + + 9757 + 99000 + 0 + 0 + 0 + + + 9758 + 1 + 0 + 0 + 0 + + + 9759 + 99000 + 0 + 0 + 0 + + + 9760 + 99000 + 0 + 0 + 0 + + + 9761 + 1 + 0 + 0 + 0 + + + 9762 + 99000 + 0 + 0 + 0 + + + 9763 + 99000 + 0 + 0 + 0 + + + 9764 + 1 + 0 + 0 + 0 + + + 9765 + 99000 + 0 + 0 + 0 + + + 9766 + 99000 + 0 + 0 + 0 + + + 9767 + 1 + 0 + 0 + 0 + + + 9768 + 99000 + 0 + 0 + 0 + + + 9769 + 99000 + 0 + 0 + 0 + + + 9770 + 1 + 0 + 0 + 0 + + + 9771 + 99000 + 0 + 0 + 0 + + + 9772 + 99000 + 0 + 0 + 0 + + + 9773 + 1 + 0 + 0 + 0 + + + 9774 + 99000 + 0 + 0 + 0 + + + 9775 + 99000 + 0 + 0 + 0 + + + 9776 + 1 + 0 + 0 + 0 + + + 9777 + 99000 + 0 + 0 + 0 + + + 9778 + 99000 + 0 + 0 + 0 + + + 9779 + 1 + 0 + 0 + 0 + + + 9780 + 99000 + 0 + 0 + 0 + + + 9781 + 99000 + 0 + 0 + 0 + + + 9782 + 1 + 0 + 0 + 0 + + + 9783 + 99000 + 0 + 0 + 0 + + + 9784 + 99000 + 0 + 0 + 0 + + + 9785 + 1 + 0 + 0 + 0 + + + 9786 + 99000 + 0 + 0 + 0 + + + 9787 + 99000 + 0 + 0 + 0 + + + 9788 + 1 + 0 + 0 + 0 + + + 9789 + 99000 + 0 + 0 + 0 + + + 9790 + 99000 + 0 + 0 + 0 + + + 9791 + 1 + 0 + 0 + 0 + + + 9792 + 99000 + 0 + 0 + 0 + + + 9793 + 99000 + 0 + 0 + 0 + + + 9794 + 1 + 0 + 0 + 0 + + + 9795 + 99000 + 0 + 0 + 0 + + + 9796 + 99000 + 0 + 0 + 0 + + + 9797 + 1 + 0 + 0 + 0 + + + 9798 + 99000 + 0 + 0 + 0 + + + 9799 + 99000 + 0 + 0 + 0 + + + 9800 + 1 + 0 + 0 + 0 + + + 9801 + 99000 + 0 + 0 + 0 + + + 9802 + 99000 + 0 + 0 + 0 + + + 9803 + 1 + 0 + 0 + 0 + + + 9804 + 99000 + 0 + 0 + 0 + + + 9805 + 99000 + 0 + 0 + 0 + + + 9806 + 1 + 0 + 0 + 0 + + + 9807 + 99000 + 0 + 0 + 0 + + + 9808 + 99000 + 0 + 0 + 0 + + + 9809 + 1 + 0 + 0 + 0 + + + 9810 + 99000 + 0 + 0 + 0 + + + 9811 + 99000 + 0 + 0 + 0 + + + 9812 + 1 + 0 + 0 + 0 + + + 9813 + 99000 + 0 + 0 + 0 + + + 9814 + 1 + 0 + 0 + 0 + + + 9815 + 1 + 0 + 0 + 0 + + + 9816 + 1 + 0 + 0 + 0 + + + 9817 + 1 + 0 + 0 + 0 + + + 9818 + 1 + 0 + 0 + 0 + + + 9819 + 1 + 0 + 0 + 0 + + + 9820 + 1 + 0 + 0 + 0 + + + 9821 + 1 + 0 + 0 + 0 + + + 9822 + 1 + 0 + 0 + 0 + + + 9823 + 1 + 0 + 0 + 0 + + + 9824 + 1 + 0 + 0 + 0 + + + 9825 + 1 + 0 + 0 + 0 + + + 9826 + 1 + 0 + 0 + 0 + + + 9827 + 1 + 0 + 0 + 0 + + + 9828 + 1 + 0 + 0 + 0 + + + 9829 + 1 + 0 + 0 + 0 + + + 9830 + 1 + 0 + 0 + 0 + + + 9831 + 1 + 0 + 0 + 0 + + + 9832 + 1 + 0 + 0 + 0 + + + 9833 + 1 + 0 + 0 + 0 + + + 9834 + 1 + 0 + 0 + 0 + + + 9835 + 1 + 0 + 0 + 0 + + + 9836 + 1 + 0 + 0 + 0 + + + 9837 + 1 + 0 + 0 + 0 + + + 9838 + 1 + 0 + 0 + 0 + + + 9839 + 1 + 0 + 0 + 0 + + + 9840 + 1 + 0 + 0 + 0 + + + 9841 + 1 + 0 + 0 + 0 + + + 9842 + 50000 + 0 + 0 + 0 + + + 9843 + 10 + 0 + 0 + 0 + + + 9844 + 10 + 0 + 0 + 0 + + + 9845 + 10 + 0 + 0 + 0 + + + 9846 + 10 + 0 + 0 + 0 + + + 9847 + 10 + 0 + 0 + 0 + + + 9848 + 10 + 0 + 0 + 0 + + + 9849 + 10 + 0 + 0 + 0 + + + 9850 + 10 + 0 + 0 + 0 + + + 9851 + 10 + 0 + 0 + 0 + + + 9852 + 10 + 0 + 0 + 0 + + + 9853 + 10 + 0 + 0 + 0 + + + 9854 + 10 + 0 + 0 + 0 + + + 9855 + 10 + 0 + 0 + 0 + + + 9856 + 10 + 0 + 0 + 0 + + + 9857 + 10 + 0 + 0 + 0 + + + 9858 + 10 + 0 + 0 + 0 + + + 9859 + 10 + 0 + 0 + 0 + + + 9860 + 10 + 0 + 0 + 0 + + + 9861 + 10 + 0 + 0 + 0 + + + 9862 + 10 + 0 + 0 + 0 + + + 9863 + 10 + 0 + 0 + 0 + + + 9864 + 10 + 0 + 0 + 0 + + + 9865 + 10 + 0 + 0 + 0 + + + 9866 + 10 + 0 + 0 + 0 + + + 9867 + 10 + 0 + 0 + 0 + + + 9868 + 10 + 0 + 0 + 0 + + + 9869 + 10 + 0 + 0 + 0 + + + 9870 + 10 + 0 + 0 + 0 + + + 9871 + 10 + 0 + 0 + 0 + + + 9872 + 10 + 0 + 0 + 0 + + + 9873 + 10 + 0 + 0 + 0 + + + 9874 + 10 + 0 + 0 + 0 + + + 9875 + 10 + 0 + 0 + 0 + + + 9876 + 10 + 0 + 0 + 0 + + + 9877 + 10 + 0 + 0 + 0 + + + 9878 + 10 + 0 + 0 + 0 + + + 9879 + 10 + 0 + 0 + 0 + + + 9880 + 10 + 0 + 0 + 0 + + + 9881 + 10 + 0 + 0 + 0 + + + 9882 + 10 + 0 + 0 + 0 + + + 9883 + 10 + 0 + 0 + 0 + + + 9884 + 10 + 0 + 0 + 0 + + + 9885 + 10 + 0 + 0 + 0 + + + 9886 + 10 + 0 + 0 + 0 + + + 9887 + 10 + 0 + 0 + 0 + + + 9888 + 10 + 0 + 0 + 0 + + + 9889 + 10 + 0 + 0 + 0 + + + 9890 + 10 + 0 + 0 + 0 + + + 9891 + 10 + 0 + 0 + 0 + + + 9892 + 10 + 0 + 0 + 0 + + + 9893 + 1 + 0 + 0 + 0 + + + 9894 + 1 + 0 + 0 + 0 + + + 9895 + 1 + 0 + 0 + 0 + + + 9896 + 1 + 0 + 0 + 0 + + + 9897 + 1 + 0 + 0 + 0 + + + 9898 + 1 + 0 + 0 + 0 + + + 9899 + 1 + 0 + 0 + 0 + + + 9900 + 1 + 0 + 0 + 0 + + + 9901 + 5 + 0 + 0 + 0 + + + 9902 + 5 + 0 + 0 + 0 + + + 9903 + 20 + 0 + 0 + 0 + + + 9904 + 1 + 0 + 0 + 0 + + + 9905 + 1 + 0 + 0 + 0 + + + 9906 + 1 + 0 + 0 + 0 + + + 9907 + 1 + 0 + 0 + 0 + + + 9908 + 1 + 0 + 0 + 0 + + + 9909 + 1 + 0 + 0 + 0 + + + 9910 + 1 + 0 + 0 + 0 + + + 9911 + 1 + 0 + 0 + 0 + + + 9912 + 1 + 0 + 0 + 0 + + + 9913 + 1 + 0 + 0 + 0 + + + 9914 + 1 + 0 + 0 + 0 + + + 9915 + 1 + 0 + 0 + 0 + + + 9916 + 1 + 0 + 0 + 0 + + + 9917 + 1 + 0 + 0 + 0 + + + 9918 + 1 + 0 + 0 + 0 + + + 9919 + 1 + 0 + 0 + 0 + + + 9920 + 1 + 0 + 0 + 0 + + + 9921 + 1 + 0 + 0 + 0 + + + 9922 + 1 + 0 + 0 + 0 + + + 9923 + 1 + 0 + 0 + 0 + + + 9924 + 1 + 0 + 0 + 0 + + + 9925 + 1 + 0 + 0 + 0 + + + 9926 + 3 + 0 + 0 + 0 + + + 9927 + 3 + 0 + 0 + 0 + + + 9928 + 3 + 0 + 0 + 0 + + + 9929 + 3 + 0 + 0 + 0 + + + 9930 + 3 + 0 + 0 + 0 + + + 9931 + 3 + 0 + 0 + 0 + + + 9932 + 1 + 0 + 0 + 0 + + + 9933 + 1 + 0 + 0 + 0 + + + 9934 + 1 + 0 + 0 + 0 + + + 9935 + 1 + 0 + 0 + 0 + + + 9936 + 1 + 0 + 0 + 0 + + + 9937 + 1 + 0 + 0 + 0 + + + 9938 + 1 + 0 + 0 + 0 + + + 9939 + 1 + 0 + 0 + 0 + + + 9940 + 1 + 0 + 0 + 0 + + + 9941 + 1 + 0 + 0 + 0 + + + 9942 + 1 + 0 + 0 + 0 + + + 9943 + 1 + 0 + 0 + 0 + + + 9944 + 1 + 0 + 0 + 0 + + + 9945 + 1 + 0 + 0 + 0 + + + 9946 + 1 + 0 + 0 + 0 + + + 9947 + 1 + 0 + 0 + 0 + + + 9948 + 99000 + 0 + 0 + 0 + + + 9949 + 99000 + 0 + 0 + 0 + + + 9950 + 1 + 0 + 0 + 0 + + + 9951 + 1 + 0 + 0 + 0 + + + 9952 + 1 + 0 + 0 + 0 + + + 9953 + 1 + 0 + 0 + 0 + + + 9954 + 1 + 0 + 0 + 0 + + + 9955 + 1 + 0 + 0 + 0 + + + 9956 + 1 + 0 + 0 + 0 + + + 9957 + 1 + 0 + 0 + 0 + + + 9958 + 1 + 0 + 0 + 0 + + + 9959 + 1 + 0 + 0 + 0 + + + 9960 + 1 + 0 + 0 + 0 + + + 9961 + 1 + 0 + 0 + 0 + + + 9962 + 1 + 0 + 0 + 0 + + + 9963 + 1 + 0 + 0 + 0 + + + 9964 + 1 + 0 + 0 + 0 + + + 9965 + 1 + 0 + 0 + 0 + + + 9966 + 1 + 0 + 0 + 0 + + + 9967 + 1 + 0 + 0 + 0 + + + 9968 + 1 + 0 + 0 + 0 + + + 9969 + 1 + 0 + 0 + 0 + + + 9970 + 1 + 0 + 0 + 0 + + + 9971 + 1 + 0 + 0 + 0 + + + 9972 + 1 + 0 + 0 + 0 + + + 9973 + 1 + 0 + 0 + 0 + + + 9974 + 1 + 0 + 0 + 0 + + + 9975 + 1 + 0 + 0 + 0 + + + 9976 + 1 + 0 + 0 + 0 + + + 9977 + 1 + 0 + 0 + 0 + + + 9978 + 17 + 0 + 0 + 0 + + + 9979 + 17 + 0 + 0 + 0 + + + 9980 + 17 + 0 + 0 + 0 + + + 9981 + 17 + 0 + 0 + 0 + + + 9982 + 1 + 0 + 0 + 0 + + + 9983 + 1 + 0 + 0 + 0 + + + 9984 + 81 + 0 + 0 + 0 + + + 9985 + 81 + 0 + 0 + 0 + + + 9986 + 25 + 0 + 0 + 0 + + + 9987 + 25 + 0 + 0 + 0 + + + 9988 + 25 + 0 + 0 + 0 + + + 9989 + 25 + 0 + 0 + 0 + + + 9990 + 1 + 0 + 0 + 0 + + + 9991 + 1 + 0 + 0 + 0 + + + 9992 + 89 + 0 + 0 + 0 + + + 9993 + 89 + 0 + 0 + 0 + + + 9994 + 3 + 0 + 0 + 0 + + + 9995 + 3 + 0 + 0 + 0 + + + 9996 + 8 + 0 + 0 + 0 + + + 9997 + 8 + 0 + 0 + 0 + + + 9998 + 15 + 0 + 0 + 0 + + + 9999 + 15 + 0 + 0 + 0 + + + 10000 + 12 + 0 + 0 + 0 + + + 10001 + 12 + 0 + 0 + 0 + + + 10002 + 9 + 0 + 0 + 0 + + + 10003 + 9 + 0 + 0 + 0 + + + 10004 + 6 + 0 + 0 + 0 + + + 10005 + 6 + 0 + 0 + 0 + + + 10006 + 6 + 0 + 0 + 0 + + + 10007 + 6 + 0 + 0 + 0 + + + 10008 + 38 + 0 + 0 + 0 + + + 10009 + 38 + 0 + 0 + 0 + + + 10010 + 24 + 0 + 0 + 0 + + + 10011 + 24 + 0 + 0 + 0 + + + 10012 + 1 + 0 + 0 + 0 + + + 10013 + 1 + 0 + 0 + 0 + + + 10014 + 70 + 0 + 0 + 0 + + + 10015 + 70 + 0 + 0 + 0 + + + 10016 + 50 + 0 + 0 + 0 + + + 10017 + 50 + 0 + 0 + 0 + + + 10018 + 30 + 0 + 0 + 0 + + + 10019 + 30 + 0 + 0 + 0 + + + 10020 + 18 + 0 + 0 + 0 + + + 10021 + 18 + 0 + 0 + 0 + + + 10022 + 1 + 0 + 0 + 0 + + + 10023 + 1 + 0 + 0 + 0 + + + 10024 + 1 + 0 + 0 + 0 + + + 10025 + 720 + 0 + 0 + 0 + + + 10026 + 720 + 0 + 0 + 0 + + + 10027 + 600 + 0 + 0 + 0 + + + 10028 + 600 + 0 + 0 + 0 + + + 10029 + 1 + 0 + 0 + 0 + + + 10030 + 1 + 0 + 0 + 0 + + + 10031 + 18 + 0 + 0 + 0 + + + 10032 + 18 + 0 + 0 + 0 + + + 10033 + 140 + 0 + 0 + 0 + + + 10034 + 160 + 0 + 0 + 0 + + + 10035 + 200 + 0 + 0 + 0 + + + 10036 + 200 + 0 + 0 + 0 + + + 10037 + 200 + 0 + 0 + 0 + + + 10038 + 200 + 0 + 0 + 0 + + + 10039 + 1000 + 0 + 0 + 0 + + + 10040 + 1000 + 0 + 0 + 0 + + + 10041 + 100 + 0 + 0 + 0 + + + 10042 + 100 + 0 + 0 + 0 + + + 10043 + 100 + 0 + 0 + 0 + + + 10044 + 100 + 0 + 0 + 0 + + + 10045 + 500 + 0 + 0 + 0 + + + 10046 + 500 + 0 + 0 + 0 + + + 10047 + 150 + 0 + 0 + 0 + + + 10048 + 150 + 0 + 0 + 0 + + + 10049 + 150 + 0 + 0 + 0 + + + 10050 + 150 + 0 + 0 + 0 + + + 10051 + 750 + 0 + 0 + 0 + + + 10052 + 750 + 0 + 0 + 0 + + + 10053 + 20 + 0 + 0 + 0 + + + 10054 + 20 + 0 + 0 + 0 + + + 10055 + 20 + 0 + 0 + 0 + + + 10056 + 20 + 0 + 0 + 0 + + + 10057 + 20 + 0 + 0 + 0 + + + 10058 + 20 + 0 + 0 + 0 + + + 10059 + 20 + 0 + 0 + 0 + + + 10060 + 20 + 0 + 0 + 0 + + + 10061 + 20 + 0 + 0 + 0 + + + 10062 + 20 + 0 + 0 + 0 + + + 10063 + 20 + 0 + 0 + 0 + + + 10064 + 20 + 0 + 0 + 0 + + + 10065 + 20 + 0 + 0 + 0 + + + 10066 + 20 + 0 + 0 + 0 + + + 10067 + 20 + 0 + 0 + 0 + + + 10068 + 20 + 0 + 0 + 0 + + + 10069 + 400 + 0 + 0 + 0 + + + 10070 + 400 + 0 + 0 + 0 + + + 10071 + 800 + 0 + 0 + 0 + + + 10072 + 800 + 0 + 0 + 0 + + + 10073 + 400 + 0 + 0 + 0 + + + 10074 + 800 + 0 + 0 + 0 + + + 10075 + 600 + 0 + 0 + 0 + + + 10076 + 600 + 0 + 0 + 0 + + + 10077 + 160 + 0 + 0 + 0 + + + 10078 + 160 + 0 + 0 + 0 + + + 10079 + 2500 + 0 + 0 + 0 + + + 10080 + 2500 + 0 + 0 + 0 + + + 10081 + 3000 + 0 + 0 + 0 + + + 10082 + 3000 + 0 + 0 + 0 + + + 10083 + 3600 + 0 + 0 + 0 + + + 10084 + 3600 + 0 + 0 + 0 + + + 10085 + 4320 + 0 + 0 + 0 + + + 10086 + 4320 + 0 + 0 + 0 + + + 10087 + 20 + 0 + 0 + 0 + + + 10088 + 10 + 0 + 0 + 0 + + + 10089 + 16 + 0 + 0 + 0 + + + 10090 + 13 + 0 + 0 + 0 + + + 10091 + 15 + 0 + 0 + 0 + + + 10092 + 40 + 0 + 0 + 0 + + + 10093 + 72 + 0 + 0 + 0 + + + 10094 + 72 + 0 + 0 + 0 + + + 10095 + 96 + 0 + 0 + 0 + + + 10096 + 96 + 0 + 0 + 0 + + + 10097 + 108 + 0 + 0 + 0 + + + 10098 + 108 + 0 + 0 + 0 + + + 10099 + 144 + 0 + 0 + 0 + + + 10100 + 144 + 0 + 0 + 0 + + + 10101 + 144 + 0 + 0 + 0 + + + 10102 + 144 + 0 + 0 + 0 + + + 10103 + 192 + 0 + 0 + 0 + + + 10104 + 192 + 0 + 0 + 0 + + + 10105 + 90 + 0 + 0 + 0 + + + 10106 + 90 + 0 + 0 + 0 + + + 10107 + 150 + 0 + 0 + 0 + + + 10108 + 150 + 0 + 0 + 0 + + + 10109 + 160 + 0 + 0 + 0 + + + 10110 + 160 + 0 + 0 + 0 + + + 10111 + 160 + 0 + 0 + 0 + + + 10112 + 160 + 0 + 0 + 0 + + + 10113 + 43 + 0 + 0 + 0 + + + 10114 + 43 + 0 + 0 + 0 + + + 10115 + 210 + 0 + 0 + 0 + + + 10116 + 210 + 0 + 0 + 0 + + + 10117 + 12 + 0 + 0 + 0 + + + 10118 + 12 + 0 + 0 + 0 + + + 10119 + 16 + 0 + 0 + 0 + + + 10120 + 16 + 0 + 0 + 0 + + + 10121 + 14 + 0 + 0 + 0 + + + 10122 + 14 + 0 + 0 + 0 + + + 10123 + 20 + 0 + 0 + 0 + + + 10124 + 20 + 0 + 0 + 0 + + + 10125 + 150 + 0 + 0 + 0 + + + 10126 + 150 + 0 + 0 + 0 + + + 10127 + 270 + 0 + 0 + 0 + + + 10128 + 270 + 0 + 0 + 0 + + + 10129 + 36 + 0 + 0 + 0 + + + 10130 + 36 + 0 + 0 + 0 + + + 10131 + 1 + 0 + 0 + 0 + + + 10132 + 30 + 0 + 0 + 0 + + + 10133 + 30 + 0 + 0 + 0 + + + 10134 + 30 + 0 + 0 + 0 + + + 10135 + 30 + 0 + 0 + 0 + + + 10136 + 120 + 0 + 0 + 0 + + + 10137 + 120 + 0 + 0 + 0 + + + 10138 + 120 + 0 + 0 + 0 + + + 10139 + 120 + 0 + 0 + 0 + + + 10140 + 1 + 0 + 0 + 0 + + + 10141 + 1 + 0 + 0 + 0 + + + 10142 + 3 + 0 + 0 + 0 + + + 10143 + 1 + 0 + 0 + 0 + + + 10144 + 1 + 0 + 0 + 0 + + + 10145 + 1 + 0 + 0 + 0 + + + 10146 + 100 + 0 + 0 + 0 + + + 10147 + 150 + 0 + 0 + 0 + + + 10148 + 200 + 0 + 0 + 0 + + + 10149 + 50 + 0 + 0 + 0 + + + 10150 + 4 + 0 + 0 + 0 + + + 10151 + 4 + 0 + 0 + 0 + + + 10152 + 1 + 0 + 0 + 0 + + + 10153 + 1 + 0 + 0 + 0 + + + 10154 + 1 + 0 + 0 + 0 + + + 10155 + 1 + 0 + 0 + 0 + + + 10156 + 1300 + 0 + 0 + 0 + + + 10157 + 1300 + 0 + 0 + 0 + + + 10158 + 18 + 0 + 0 + 0 + + + 10159 + 31 + 0 + 0 + 0 + + + 10160 + 100 + 0 + 0 + 0 + + + 10161 + 150 + 0 + 0 + 0 + + + 10162 + 200 + 0 + 0 + 0 + + + 10163 + 50 + 0 + 0 + 0 + + + 10164 + 1 + 0 + 0 + 0 + + + 10165 + 1 + 0 + 0 + 0 + + + 10166 + 1 + 0 + 0 + 0 + + + 10167 + 1 + 0 + 0 + 0 + + + 10168 + 1 + 0 + 0 + 0 + + + 10169 + 1 + 0 + 0 + 0 + + + 10170 + 1 + 0 + 0 + 0 + + + 10171 + 1 + 0 + 0 + 0 + + + 10172 + 1 + 0 + 0 + 0 + + + 10173 + 1 + 0 + 0 + 0 + + + 10174 + 1 + 0 + 0 + 0 + + + 10175 + 1 + 0 + 0 + 0 + + + 10176 + 1 + 0 + 0 + 0 + + + 10177 + 1 + 0 + 0 + 0 + + + 10178 + 1 + 0 + 0 + 0 + + + 10179 + 1 + 0 + 0 + 0 + + + 10180 + 1 + 0 + 0 + 0 + + + 10181 + 50 + 0 + 0 + 0 + + + 10182 + 1 + 0 + 0 + 0 + + + 10183 + 50 + 0 + 0 + 0 + + + 10184 + 1 + 0 + 0 + 0 + + + 10185 + 50 + 0 + 0 + 0 + + + 10186 + 1 + 0 + 0 + 0 + + + 10187 + 50 + 0 + 0 + 0 + + + 10188 + 1 + 0 + 0 + 0 + + + 10189 + 50 + 0 + 0 + 0 + + + 10190 + 1 + 0 + 0 + 0 + + + 10191 + 50 + 0 + 0 + 0 + + + 10192 + 1 + 0 + 0 + 0 + + + 10193 + 50 + 0 + 0 + 0 + + + 10194 + 1 + 0 + 0 + 0 + + + 10195 + 50 + 0 + 0 + 0 + + + 10196 + 1 + 0 + 0 + 0 + + + 10197 + 50 + 0 + 0 + 0 + + + 10198 + 1 + 0 + 0 + 0 + + + 10199 + 50 + 0 + 0 + 0 + + + 10200 + 1 + 0 + 0 + 0 + + + 10201 + 50 + 0 + 0 + 0 + + + 10202 + 1 + 0 + 0 + 0 + + + 10203 + 50 + 0 + 0 + 0 + + + 10204 + 1 + 0 + 0 + 0 + + + 10205 + 50 + 0 + 0 + 0 + + + 10206 + 1 + 0 + 0 + 0 + + + 10207 + 50 + 0 + 0 + 0 + + + 10208 + 1 + 0 + 0 + 0 + + + 10209 + 50 + 0 + 0 + 0 + + + 10210 + 1 + 0 + 0 + 0 + + + 10211 + 50 + 0 + 0 + 0 + + + 10212 + 1 + 0 + 0 + 0 + + + 10213 + 50 + 0 + 0 + 0 + + + 10214 + 1 + 0 + 0 + 0 + + + 10215 + 50 + 0 + 0 + 0 + + + 10216 + 1 + 0 + 0 + 0 + + + 10217 + 50 + 0 + 0 + 0 + + + 10218 + 1 + 0 + 0 + 0 + + + 10219 + 50 + 0 + 0 + 0 + + + 10220 + 1 + 0 + 0 + 0 + + + 10221 + 50 + 0 + 0 + 0 + + + 10222 + 1 + 0 + 0 + 0 + + + 10223 + 50 + 0 + 0 + 0 + + + 10224 + 1 + 0 + 0 + 0 + + + 10225 + 50 + 0 + 0 + 0 + + + 10226 + 1 + 0 + 0 + 0 + + + 10227 + 50 + 0 + 0 + 0 + + + 10228 + 1 + 0 + 0 + 0 + + + 10229 + 50 + 0 + 0 + 0 + + + 10230 + 1 + 0 + 0 + 0 + + + 10231 + 50 + 0 + 0 + 0 + + + 10232 + 1 + 0 + 0 + 0 + + + 10233 + 50 + 0 + 0 + 0 + + + 10234 + 1 + 0 + 0 + 0 + + + 10235 + 50 + 0 + 0 + 0 + + + 10236 + 1 + 0 + 0 + 0 + + + 10237 + 50 + 0 + 0 + 0 + + + 10238 + 1 + 0 + 0 + 0 + + + 10239 + 50 + 0 + 0 + 0 + + + 10240 + 1 + 0 + 0 + 0 + + + 10241 + 50 + 0 + 0 + 0 + + + 10242 + 1 + 0 + 0 + 0 + + + 10243 + 50 + 0 + 0 + 0 + + + 10244 + 1 + 0 + 0 + 0 + + + 10245 + 50 + 0 + 0 + 0 + + + 10246 + 1 + 0 + 0 + 0 + + + 10247 + 50 + 0 + 0 + 0 + + + 10248 + 1 + 0 + 0 + 0 + + + 10249 + 50 + 0 + 0 + 0 + + + 10250 + 1 + 0 + 0 + 0 + + + 10251 + 50 + 0 + 0 + 0 + + + 10252 + 1 + 0 + 0 + 0 + + + 10253 + 50 + 0 + 0 + 0 + + + 10254 + 1 + 0 + 0 + 0 + + + 10255 + 50 + 0 + 0 + 0 + + + 10256 + 1 + 0 + 0 + 0 + + + 10257 + 50 + 0 + 0 + 0 + + + 10258 + 1 + 0 + 0 + 0 + + + 10259 + 50 + 0 + 0 + 0 + + + 10260 + 1 + 0 + 0 + 0 + + + 10261 + 50 + 0 + 0 + 0 + + + 10262 + 1 + 0 + 0 + 0 + + + 10263 + 50 + 0 + 0 + 0 + + + 10264 + 1 + 0 + 0 + 0 + + + 10265 + 50 + 0 + 0 + 0 + + + 10266 + 1 + 0 + 0 + 0 + + + 10267 + 50 + 0 + 0 + 0 + + + 10268 + 1 + 0 + 0 + 0 + + + 10269 + 50 + 0 + 0 + 0 + + + 10270 + 1 + 0 + 0 + 0 + + + 10271 + 50 + 0 + 0 + 0 + + + 10272 + 1 + 0 + 0 + 0 + + + 10273 + 50 + 0 + 0 + 0 + + + 10274 + 1 + 0 + 0 + 0 + + + 10275 + 50 + 0 + 0 + 0 + + + 10276 + 1 + 0 + 0 + 0 + + + 10277 + 50 + 0 + 0 + 0 + + + 10278 + 1 + 0 + 0 + 0 + + + 10279 + 50 + 0 + 0 + 0 + + + 10280 + 300 + 0 + 0 + 0 + + + 10281 + 300 + 0 + 0 + 0 + + + 10282 + 1800 + 0 + 0 + 0 + + + 10283 + 1800 + 0 + 0 + 0 + + + 10284 + 2500 + 0 + 0 + 0 + + + 10285 + 2500 + 0 + 0 + 0 + + + 10286 + 35200 + 0 + 0 + 0 + + + 10287 + 35200 + 0 + 0 + 0 + + + 10288 + 35200 + 0 + 0 + 0 + + + 10289 + 35200 + 0 + 0 + 0 + + + 10290 + 35200 + 0 + 0 + 0 + + + 10291 + 35200 + 0 + 0 + 0 + + + 10292 + 35200 + 0 + 0 + 0 + + + 10293 + 35200 + 0 + 0 + 0 + + + 10294 + 35200 + 0 + 0 + 0 + + + 10295 + 35200 + 0 + 0 + 0 + + + 10296 + 3520 + 0 + 0 + 0 + + + 10297 + 3520 + 0 + 0 + 0 + + + 10298 + 3520 + 0 + 0 + 0 + + + 10299 + 3520 + 0 + 0 + 0 + + + 10300 + 3520 + 0 + 0 + 0 + + + 10301 + 3520 + 0 + 0 + 0 + + + 10302 + 3520 + 0 + 0 + 0 + + + 10303 + 3520 + 0 + 0 + 0 + + + 10304 + 3520 + 0 + 0 + 0 + + + 10305 + 3520 + 0 + 0 + 0 + + + 10306 + 1056 + 0 + 0 + 0 + + + 10307 + 1056 + 0 + 0 + 0 + + + 10308 + 1056 + 0 + 0 + 0 + + + 10309 + 1056 + 0 + 0 + 0 + + + 10310 + 1056 + 0 + 0 + 0 + + + 10311 + 1056 + 0 + 0 + 0 + + + 10312 + 1056 + 0 + 0 + 0 + + + 10313 + 1056 + 0 + 0 + 0 + + + 10314 + 1056 + 0 + 0 + 0 + + + 10315 + 1056 + 0 + 0 + 0 + + + 10316 + 3 + 0 + 0 + 0 + + + 10317 + 3 + 0 + 0 + 0 + + + 10318 + 3 + 0 + 0 + 0 + + + 10319 + 3 + 0 + 0 + 0 + + + 10320 + 3 + 0 + 0 + 0 + + + 10321 + 3 + 0 + 0 + 0 + + + 10322 + 3 + 0 + 0 + 0 + + + 10323 + 3 + 0 + 0 + 0 + + + 10324 + 3 + 0 + 0 + 0 + + + 10325 + 3 + 0 + 0 + 0 + + + 10326 + 15 + 0 + 0 + 0 + + + 10327 + 15 + 0 + 0 + 0 + + + 10328 + 1 + 0 + 0 + 0 + + + 10329 + 1 + 0 + 0 + 0 + + + 10330 + 45000 + 0 + 0 + 0 + + + 10331 + 45000 + 0 + 0 + 0 + + + 10332 + 40000 + 0 + 0 + 0 + + + 10333 + 40000 + 0 + 0 + 0 + + + 10334 + 10000 + 0 + 0 + 0 + + + 10335 + 10000 + 0 + 0 + 0 + + + 10336 + 15000 + 0 + 0 + 0 + + + 10337 + 15000 + 0 + 0 + 0 + + + 10338 + 45000 + 0 + 0 + 0 + + + 10339 + 45000 + 0 + 0 + 0 + + + 10340 + 40000 + 0 + 0 + 0 + + + 10341 + 40000 + 0 + 0 + 0 + + + 10342 + 10000 + 0 + 0 + 0 + + + 10343 + 10000 + 0 + 0 + 0 + + + 10344 + 20000 + 0 + 0 + 0 + + + 10345 + 20000 + 0 + 0 + 0 + + + 10346 + 200000 + 0 + 0 + 0 + + + 10347 + 200000 + 0 + 0 + 0 + + + 10348 + 200000 + 0 + 0 + 0 + + + 10349 + 200000 + 0 + 0 + 0 + + + 10350 + 90000 + 0 + 0 + 0 + + + 10351 + 90000 + 0 + 0 + 0 + + + 10352 + 180000 + 0 + 0 + 0 + + + 10353 + 180000 + 0 + 0 + 0 + + + 10354 + 17625 + 0 + 0 + 0 + + + 10355 + 17625 + 0 + 0 + 0 + + + 10356 + 17625 + 0 + 0 + 0 + + + 10357 + 17625 + 0 + 0 + 0 + + + 10358 + 17625 + 0 + 0 + 0 + + + 10359 + 17625 + 0 + 0 + 0 + + + 10360 + 17625 + 0 + 0 + 0 + + + 10361 + 17625 + 0 + 0 + 0 + + + 10362 + 17625 + 0 + 0 + 0 + + + 10363 + 17625 + 0 + 0 + 0 + + + 10364 + 2025 + 0 + 0 + 0 + + + 10365 + 2025 + 0 + 0 + 0 + + + 10366 + 900 + 0 + 0 + 0 + + + 10367 + 900 + 0 + 0 + 0 + + + 10368 + 4000 + 0 + 0 + 0 + + + 10369 + 4000 + 0 + 0 + 0 + + + 10370 + 13000 + 0 + 0 + 0 + + + 10371 + 13000 + 0 + 0 + 0 + + + 10372 + 6000 + 0 + 0 + 0 + + + 10373 + 6000 + 0 + 0 + 0 + + + 10374 + 2000 + 0 + 0 + 0 + + + 10375 + 2000 + 0 + 0 + 0 + + + 10376 + 6000 + 0 + 0 + 0 + + + 10377 + 6000 + 0 + 0 + 0 + + + 10378 + 13000 + 0 + 0 + 0 + + + 10379 + 13000 + 0 + 0 + 0 + + + 10380 + 6000 + 0 + 0 + 0 + + + 10381 + 6000 + 0 + 0 + 0 + + + 10382 + 2000 + 0 + 0 + 0 + + + 10383 + 2000 + 0 + 0 + 0 + + + 10384 + 4000 + 0 + 0 + 0 + + + 10385 + 4000 + 0 + 0 + 0 + + + 10386 + 13000 + 0 + 0 + 0 + + + 10387 + 13000 + 0 + 0 + 0 + + + 10388 + 6000 + 0 + 0 + 0 + + + 10389 + 6000 + 0 + 0 + 0 + + + 10390 + 2000 + 0 + 0 + 0 + + + 10391 + 2000 + 0 + 0 + 0 + + + 10392 + 2000 + 0 + 0 + 0 + + + 10393 + 2000 + 0 + 0 + 0 + + + 10394 + 2000 + 0 + 0 + 0 + + + 10395 + 2000 + 0 + 0 + 0 + + + 10396 + 2000 + 0 + 0 + 0 + + + 10397 + 2000 + 0 + 0 + 0 + + + 10398 + 2000 + 0 + 0 + 0 + + + 10399 + 2000 + 0 + 0 + 0 + + + 10400 + 2000 + 0 + 0 + 0 + + + 10401 + 2000 + 0 + 0 + 0 + + + 10402 + 2000 + 0 + 0 + 0 + + + 10403 + 2000 + 0 + 0 + 0 + + + 10404 + 2000 + 0 + 0 + 0 + + + 10405 + 2000 + 0 + 0 + 0 + + + 10406 + 2000 + 0 + 0 + 0 + + + 10407 + 2000 + 0 + 0 + 0 + + + 10408 + 2000 + 0 + 0 + 0 + + + 10409 + 2000 + 0 + 0 + 0 + + + 10410 + 2000 + 0 + 0 + 0 + + + 10411 + 2000 + 0 + 0 + 0 + + + 10412 + 2000 + 0 + 0 + 0 + + + 10413 + 2000 + 0 + 0 + 0 + + + 10414 + 2000 + 0 + 0 + 0 + + + 10415 + 2000 + 0 + 0 + 0 + + + 10416 + 2000 + 0 + 0 + 0 + + + 10417 + 2000 + 0 + 0 + 0 + + + 10418 + 2000 + 0 + 0 + 0 + + + 10419 + 2000 + 0 + 0 + 0 + + + 10420 + 2000 + 0 + 0 + 0 + + + 10421 + 2000 + 0 + 0 + 0 + + + 10422 + 2000 + 0 + 0 + 0 + + + 10423 + 2000 + 0 + 0 + 0 + + + 10424 + 2000 + 0 + 0 + 0 + + + 10425 + 2000 + 0 + 0 + 0 + + + 10426 + 2000 + 0 + 0 + 0 + + + 10427 + 2000 + 0 + 0 + 0 + + + 10428 + 2000 + 0 + 0 + 0 + + + 10429 + 2000 + 0 + 0 + 0 + + + 10430 + 2000 + 0 + 0 + 0 + + + 10431 + 2000 + 0 + 0 + 0 + + + 10432 + 2000 + 0 + 0 + 0 + + + 10433 + 2000 + 0 + 0 + 0 + + + 10434 + 2000 + 0 + 0 + 0 + + + 10435 + 2000 + 0 + 0 + 0 + + + 10436 + 2000 + 0 + 0 + 0 + + + 10437 + 2000 + 0 + 0 + 0 + + + 10438 + 2000 + 0 + 0 + 0 + + + 10439 + 2000 + 0 + 0 + 0 + + + 10440 + 5000 + 0 + 0 + 0 + + + 10441 + 5000 + 0 + 0 + 0 + + + 10442 + 5000 + 0 + 0 + 0 + + + 10443 + 5000 + 0 + 0 + 0 + + + 10444 + 5000 + 0 + 0 + 0 + + + 10445 + 5000 + 0 + 0 + 0 + + + 10446 + 2000 + 0 + 0 + 0 + + + 10447 + 2000 + 0 + 0 + 0 + + + 10448 + 2000 + 0 + 0 + 0 + + + 10449 + 2000 + 0 + 0 + 0 + + + 10450 + 2000 + 0 + 0 + 0 + + + 10451 + 2000 + 0 + 0 + 0 + + + 10452 + 5000 + 0 + 0 + 0 + + + 10453 + 5000 + 0 + 0 + 0 + + + 10454 + 5000 + 0 + 0 + 0 + + + 10455 + 5000 + 0 + 0 + 0 + + + 10456 + 5000 + 0 + 0 + 0 + + + 10457 + 5000 + 0 + 0 + 0 + + + 10458 + 7000 + 0 + 0 + 0 + + + 10459 + 7000 + 0 + 0 + 0 + + + 10460 + 7000 + 0 + 0 + 0 + + + 10461 + 7000 + 0 + 0 + 0 + + + 10462 + 7000 + 0 + 0 + 0 + + + 10463 + 7000 + 0 + 0 + 0 + + + 10464 + 7000 + 0 + 0 + 0 + + + 10465 + 7000 + 0 + 0 + 0 + + + 10466 + 7000 + 0 + 0 + 0 + + + 10467 + 7000 + 0 + 0 + 0 + + + 10468 + 7000 + 0 + 0 + 0 + + + 10469 + 7000 + 0 + 0 + 0 + + + 10470 + 2500 + 0 + 0 + 0 + + + 10471 + 2500 + 0 + 0 + 0 + + + 10472 + 2500 + 0 + 0 + 0 + + + 10473 + 2500 + 0 + 0 + 0 + + + 10474 + 2500 + 0 + 0 + 0 + + + 10475 + 2500 + 0 + 0 + 0 + + + 10476 + 15 + 0 + 0 + 0 + + + 10477 + 1 + 0 + 0 + 0 + + + 10478 + 1 + 0 + 0 + 0 + + + 10479 + 1 + 0 + 0 + 0 + + + 10480 + 1 + 0 + 0 + 0 + + + 10481 + 1 + 0 + 0 + 0 + + + 10482 + 1 + 0 + 0 + 0 + + + 10483 + 1 + 0 + 0 + 0 + + + 10484 + 1 + 0 + 0 + 0 + + + 10485 + 1 + 0 + 0 + 0 + + + 10486 + 1 + 0 + 0 + 0 + + + 10487 + 100 + 0 + 0 + 0 + + + 10488 + 10 + 0 + 0 + 0 + + + 10489 + 15 + 0 + 0 + 0 + + + 10490 + 1 + 0 + 0 + 0 + + + 10491 + 20 + 0 + 0 + 0 + + + 10492 + 1 + 0 + 0 + 0 + + + 10493 + 2 + 0 + 0 + 0 + + + 10494 + 10 + 0 + 0 + 0 + + + 10495 + 10 + 0 + 0 + 0 + + + 10496 + 1 + 0 + 0 + 0 + + + 10497 + 1 + 0 + 0 + 0 + + + 10498 + 769 + 0 + 0 + 0 + + + 10499 + 1000 + 0 + 0 + 0 + + + 10500 + 20 + 0 + 0 + 0 + + + 10501 + 1 + 0 + 0 + 0 + + + 10502 + 1 + 0 + 0 + 0 + + + 10503 + 1 + 0 + 0 + 0 + + + 10504 + 1 + 0 + 0 + 0 + + + 10505 + 1 + 0 + 0 + 0 + + + 10506 + 1 + 0 + 0 + 0 + + + 10507 + 1 + 0 + 0 + 0 + + + 10508 + 1 + 0 + 0 + 0 + + + 10509 + 1 + 0 + 0 + 0 + + + 10510 + 1 + 0 + 0 + 0 + + + 10511 + 1 + 0 + 0 + 0 + + + 10512 + 1 + 0 + 0 + 0 + + + 10513 + 1 + 0 + 0 + 0 + + + 10514 + 1 + 0 + 0 + 0 + + + 10515 + 1 + 0 + 0 + 0 + + + 10516 + 1 + 0 + 0 + 0 + + + 10517 + 1 + 0 + 0 + 0 + + + 10518 + 1 + 0 + 0 + 0 + + + 10519 + 1 + 0 + 0 + 0 + + + 10520 + 1 + 0 + 0 + 0 + + + 10521 + 1 + 0 + 0 + 0 + + + 10522 + 1 + 0 + 0 + 0 + + + 10523 + 1 + 0 + 0 + 0 + + + 10524 + 1 + 0 + 0 + 0 + + + 10525 + 1 + 0 + 0 + 0 + + + 10526 + 1 + 0 + 0 + 0 + + + 10527 + 1 + 0 + 0 + 0 + + + 10528 + 1 + 0 + 0 + 0 + + + 10529 + 1 + 0 + 0 + 0 + + + 10530 + 1 + 0 + 0 + 0 + + + 10531 + 1 + 0 + 0 + 0 + + + 10532 + 1 + 0 + 0 + 0 + + + 10533 + 1 + 0 + 0 + 0 + + + 10534 + 1 + 0 + 0 + 0 + + + 10535 + 1 + 0 + 0 + 0 + + + 10536 + 1 + 0 + 0 + 0 + + + 10537 + 1 + 0 + 0 + 0 + + + 10538 + 1 + 0 + 0 + 0 + + + 10539 + 1 + 0 + 0 + 0 + + + 10540 + 1 + 0 + 0 + 0 + + + 10541 + 1 + 0 + 0 + 0 + + + 10542 + 1 + 0 + 0 + 0 + + + 10543 + 1 + 0 + 0 + 0 + + + 10544 + 1 + 0 + 0 + 0 + + + 10545 + 1 + 0 + 0 + 0 + + + 10546 + 1 + 0 + 0 + 0 + + + 10547 + 5000 + 0 + 0 + 0 + + + 10548 + 5000 + 0 + 0 + 0 + + + 10549 + 5000 + 0 + 0 + 0 + + + 10550 + 5000 + 0 + 0 + 0 + + + 10551 + 20000 + 0 + 0 + 0 + + + 10552 + 5000 + 0 + 0 + 0 + + + 10553 + 200 + 0 + 0 + 0 + + + 10554 + 200 + 0 + 0 + 0 + + + 10555 + 8000 + 0 + 0 + 0 + + + 10556 + 1 + 0 + 0 + 0 + + + 10557 + 1 + 0 + 0 + 0 + + + 10558 + 1 + 0 + 0 + 0 + + + 10559 + 1 + 0 + 0 + 0 + + + 10560 + 1 + 0 + 0 + 0 + + + 10561 + 1 + 0 + 0 + 0 + + + 10562 + 1 + 0 + 0 + 0 + + + 10563 + 1 + 0 + 0 + 0 + + + 10564 + 80000 + 0 + 0 + 0 + + + 10565 + 80000 + 0 + 0 + 0 + + + 10566 + 60000 + 0 + 0 + 0 + + + 10567 + 1 + 0 + 0 + 0 + + + 10568 + 1 + 0 + 0 + 0 + + + 10569 + 1 + 0 + 0 + 0 + + + 10570 + 1 + 0 + 0 + 0 + + + 10571 + 1 + 0 + 0 + 0 + + + 10572 + 1 + 0 + 0 + 0 + + + 10573 + 1 + 0 + 0 + 0 + + + 10574 + 1 + 0 + 0 + 0 + + + 10575 + 1 + 0 + 0 + 0 + + + 10576 + 1 + 0 + 0 + 0 + + + 10577 + 1 + 0 + 0 + 0 + + + 10578 + 1 + 0 + 0 + 0 + + + 10579 + 1 + 0 + 0 + 0 + + + 10580 + 1 + 0 + 0 + 0 + + + 10581 + 10000 + 0 + 0 + 0 + + + 10582 + 10000 + 0 + 0 + 0 + + + 10583 + 10000 + 0 + 0 + 0 + + + 10584 + 10000 + 0 + 0 + 0 + + + 10585 + 1 + 0 + 0 + 0 + + + 10586 + 1 + 0 + 0 + 0 + + + 10587 + 50 + 0 + 0 + 0 + + + 10588 + 300 + 0 + 0 + 0 + + + 10589 + 46000 + 0 + 0 + 0 + + + 10590 + 46000 + 0 + 0 + 0 + + + 10591 + 1 + 0 + 0 + 0 + + + 10592 + 1 + 0 + 0 + 0 + + + 10593 + 1 + 0 + 0 + 0 + + + 10594 + 1 + 0 + 0 + 0 + + + 10595 + 1 + 0 + 0 + 0 + + + 10596 + 1 + 0 + 0 + 0 + + + 10597 + 1 + 0 + 0 + 0 + + + 10598 + 1 + 0 + 0 + 0 + + + 10599 + 1 + 0 + 0 + 0 + + + 10600 + 1 + 0 + 0 + 0 + + + 10601 + 15000 + 0 + 0 + 0 + + + 10602 + 15000 + 0 + 0 + 0 + + + 10603 + 15000 + 0 + 0 + 0 + + + 10604 + 10000 + 0 + 0 + 0 + + + 10605 + 140000 + 0 + 0 + 0 + + + 10606 + 10000 + 0 + 0 + 0 + + + 10607 + 300 + 0 + 0 + 0 + + + 10608 + 1000 + 0 + 0 + 0 + + + 10609 + 100 + 0 + 0 + 0 + + + 10610 + 2000 + 0 + 0 + 0 + + + 10611 + 48000 + 0 + 0 + 0 + + + 10612 + 375 + 0 + 0 + 0 + + + 10613 + 35200 + 0 + 0 + 0 + + + 10614 + 60000 + 0 + 0 + 0 + + + 10615 + 500 + 0 + 0 + 0 + + + 10616 + 500 + 0 + 0 + 0 + + + 10617 + 500 + 0 + 0 + 0 + + + 10618 + 3840 + 0 + 0 + 0 + + + 10619 + 10000 + 0 + 0 + 0 + + + 10620 + 12000 + 0 + 0 + 0 + + + 10621 + 150 + 0 + 0 + 0 + + + 10622 + 200 + 0 + 0 + 0 + + + 10623 + 100 + 0 + 0 + 0 + + + 10624 + 150 + 0 + 0 + 0 + + + 10625 + 20 + 0 + 0 + 0 + + + 10626 + 20 + 0 + 0 + 0 + + + 10627 + 20 + 0 + 0 + 0 + + + 10628 + 20 + 0 + 0 + 0 + + + 10629 + 1 + 0 + 0 + 0 + + + 10630 + 1 + 0 + 0 + 0 + + + 10631 + 1 + 0 + 0 + 0 + + + 10632 + 1 + 0 + 0 + 0 + + + 10633 + 1 + 0 + 0 + 0 + + + 10634 + 40 + 0 + 0 + 0 + + + 10635 + 450 + 0 + 0 + 0 + + + 10636 + 60000 + 0 + 0 + 0 + + + 10637 + 60000 + 0 + 0 + 0 + + + 10638 + 50 + 0 + 0 + 0 + + + 10639 + 99000 + 0 + 0 + 0 + + + 10640 + 99000 + 0 + 0 + 0 + + + 10641 + 99000 + 0 + 0 + 0 + + + 10642 + 99000 + 0 + 0 + 0 + + + 10643 + 99000 + 0 + 0 + 0 + + + 10644 + 99000 + 0 + 0 + 0 + + + 10645 + 99000 + 0 + 0 + 0 + + + 10646 + 99000 + 0 + 0 + 0 + + + 10647 + 99000 + 0 + 0 + 0 + + + 10648 + 99000 + 0 + 0 + 0 + + + 10649 + 99000 + 0 + 0 + 0 + + + 10650 + 99000 + 0 + 0 + 0 + + + 10651 + 99000 + 0 + 0 + 0 + + + 10652 + 99000 + 0 + 0 + 0 + + + 10653 + 99000 + 0 + 0 + 0 + + + 10654 + 99000 + 0 + 0 + 0 + + + 10655 + 99000 + 0 + 0 + 0 + + + 10656 + 99000 + 0 + 0 + 0 + + + 10657 + 99000 + 0 + 0 + 0 + + + 10658 + 99000 + 0 + 0 + 0 + + + 10659 + 99000 + 0 + 0 + 0 + + + 10660 + 99000 + 0 + 0 + 0 + + + 10661 + 99000 + 0 + 0 + 0 + + + 10662 + 99000 + 0 + 0 + 0 + + + 10663 + 400 + 0 + 0 + 0 + + + 10664 + 800 + 0 + 0 + 0 + + + 10665 + 1632 + 0 + 0 + 0 + + + 10666 + 5440 + 0 + 0 + 0 + + + 10667 + 54400 + 0 + 0 + 0 + + + 10668 + 16325 + 0 + 0 + 0 + + + 10669 + 5440 + 0 + 0 + 0 + + + 10670 + 54400 + 0 + 0 + 0 + + + 10671 + 1632 + 0 + 0 + 0 + + + 10672 + 5440 + 0 + 0 + 0 + + + 10673 + 54400 + 0 + 0 + 0 + + + 10674 + 1632 + 0 + 0 + 0 + + + 10675 + 5440 + 0 + 0 + 0 + + + 10676 + 54400 + 0 + 0 + 0 + + + 10677 + 1632 + 0 + 0 + 0 + + + 10678 + 5440 + 0 + 0 + 0 + + + 10679 + 54400 + 0 + 0 + 0 + + + 10680 + 850 + 0 + 0 + 0 + + + 10681 + 850 + 0 + 0 + 0 + + + 10682 + 7800 + 0 + 0 + 0 + + + 10683 + 7800 + 0 + 0 + 0 + + + 10684 + 9360 + 0 + 0 + 0 + + + 10685 + 9360 + 0 + 0 + 0 + + + 10686 + 15 + 0 + 0 + 0 + + + 10687 + 15 + 0 + 0 + 0 + + + 10688 + 120000 + 0 + 0 + 0 + + + 10689 + 200 + 0 + 0 + 0 + + + 10690 + 3840 + 0 + 0 + 0 + + + 10691 + 3840 + 0 + 0 + 0 + + + 10692 + 40 + 0 + 0 + 0 + + + 10693 + 80 + 0 + 0 + 0 + + + 10694 + 80 + 0 + 0 + 0 + + + 10695 + 80 + 0 + 0 + 0 + + + 10696 + 200 + 0 + 0 + 0 + + + 10697 + 12800 + 0 + 0 + 0 + + + 10698 + 12800 + 0 + 0 + 0 + + + 10699 + 1056 + 0 + 0 + 0 + + + 10700 + 1056 + 0 + 0 + 0 + + + 10701 + 1056 + 0 + 0 + 0 + + + 10702 + 1056 + 0 + 0 + 0 + + + 10703 + 1056 + 0 + 0 + 0 + + + 10704 + 35200 + 0 + 0 + 0 + + + 10705 + 35200 + 0 + 0 + 0 + + + 10706 + 35200 + 0 + 0 + 0 + + + 10707 + 35200 + 0 + 0 + 0 + + + 10708 + 35200 + 0 + 0 + 0 + + + 10709 + 3520 + 0 + 0 + 0 + + + 10710 + 3520 + 0 + 0 + 0 + + + 10711 + 3520 + 0 + 0 + 0 + + + 10712 + 3520 + 0 + 0 + 0 + + + 10713 + 3520 + 0 + 0 + 0 + + + 10714 + 3 + 0 + 0 + 0 + + + 10715 + 3 + 0 + 0 + 0 + + + 10716 + 3 + 0 + 0 + 0 + + + 10717 + 3 + 0 + 0 + 0 + + + 10718 + 3 + 0 + 0 + 0 + + + 10719 + 17625 + 0 + 0 + 0 + + + 10720 + 100 + 0 + 0 + 0 + + + 10721 + 1 + 0 + 0 + 0 + + + 10722 + 1 + 0 + 0 + 0 + + + 10723 + 1 + 0 + 0 + 0 + + + 10724 + 1 + 0 + 0 + 0 + + + 10725 + 1 + 0 + 0 + 0 + + + 10726 + 1 + 0 + 0 + 0 + + + 10727 + 1 + 0 + 0 + 0 + + + 10728 + 1 + 0 + 0 + 0 + + + 10729 + 1 + 0 + 0 + 0 + + + 10730 + 1 + 0 + 0 + 0 + + + 10731 + 1 + 0 + 0 + 0 + + + 10732 + 1 + 0 + 0 + 0 + + + 10733 + 10 + 0 + 0 + 0 + + + 10734 + 1 + 0 + 0 + 0 + + + 10735 + 1 + 0 + 0 + 0 + + + 10736 + 2025 + 0 + 0 + 0 + + + 10737 + 1 + 0 + 0 + 0 + + + 10738 + 900 + 0 + 0 + 0 + + + 10739 + 1 + 0 + 0 + 0 + + + 10740 + 2000 + 0 + 0 + 0 + + + 10741 + 1 + 0 + 0 + 0 + + + 10742 + 2000 + 0 + 0 + 0 + + + 10743 + 1 + 0 + 0 + 0 + + + 10744 + 2000 + 0 + 0 + 0 + + + 10745 + 1 + 0 + 0 + 0 + + + 10746 + 2000 + 0 + 0 + 0 + + + 10747 + 1 + 0 + 0 + 0 + + + 10748 + 2000 + 0 + 0 + 0 + + + 10749 + 1 + 0 + 0 + 0 + + + 10750 + 2000 + 0 + 0 + 0 + + + 10751 + 1 + 0 + 0 + 0 + + + 10752 + 2000 + 0 + 0 + 0 + + + 10753 + 1 + 0 + 0 + 0 + + + 10754 + 2000 + 0 + 0 + 0 + + + 10755 + 1 + 0 + 0 + 0 + + + 10756 + 2000 + 0 + 0 + 0 + + + 10757 + 1 + 0 + 0 + 0 + + + 10758 + 225 + 0 + 0 + 0 + + + 10759 + 1 + 0 + 0 + 0 + + + 10760 + 225 + 0 + 0 + 0 + + + 10761 + 1 + 0 + 0 + 0 + + + 10762 + 225 + 0 + 0 + 0 + + + 10763 + 1 + 0 + 0 + 0 + + + 10764 + 225 + 0 + 0 + 0 + + + 10765 + 1 + 0 + 0 + 0 + + + 10766 + 225 + 0 + 0 + 0 + + + 10767 + 1 + 0 + 0 + 0 + + + 10768 + 40 + 0 + 0 + 0 + + + 10769 + 1 + 0 + 0 + 0 + + + 10770 + 40 + 0 + 0 + 0 + + + 10771 + 1 + 0 + 0 + 0 + + + 10772 + 40 + 0 + 0 + 0 + + + 10773 + 1 + 0 + 0 + 0 + + + 10774 + 180 + 0 + 0 + 0 + + + 10775 + 1 + 0 + 0 + 0 + + + 10776 + 65000 + 0 + 0 + 0 + + + 10777 + 1 + 0 + 0 + 0 + + + 10778 + 65000 + 0 + 0 + 0 + + + 10779 + 1 + 0 + 0 + 0 + + + 10780 + 65000 + 0 + 0 + 0 + + + 10781 + 1 + 0 + 0 + 0 + + + 10782 + 65000 + 0 + 0 + 0 + + + 10783 + 1 + 0 + 0 + 0 + + + 10784 + 7000 + 0 + 0 + 0 + + + 10785 + 1 + 0 + 0 + 0 + + + 10786 + 7000 + 0 + 0 + 0 + + + 10787 + 1 + 0 + 0 + 0 + + + 10788 + 7000 + 0 + 0 + 0 + + + 10789 + 1 + 0 + 0 + 0 + + + 10790 + 13000 + 0 + 0 + 0 + + + 10791 + 1 + 0 + 0 + 0 + + + 10792 + 13000 + 0 + 0 + 0 + + + 10793 + 1 + 0 + 0 + 0 + + + 10794 + 13000 + 0 + 0 + 0 + + + 10795 + 1 + 0 + 0 + 0 + + + 10796 + 450 + 0 + 0 + 0 + + + 10797 + 1 + 0 + 0 + 0 + + + 10798 + 65000 + 0 + 0 + 0 + + + 10799 + 1 + 0 + 0 + 0 + + + 10800 + 65000 + 0 + 0 + 0 + + + 10801 + 1 + 0 + 0 + 0 + + + 10802 + 200 + 0 + 0 + 0 + + + 10803 + 1 + 0 + 0 + 0 + + + 10804 + 200 + 0 + 0 + 0 + + + 10805 + 1 + 0 + 0 + 0 + + + 10806 + 200 + 0 + 0 + 0 + + + 10807 + 1 + 0 + 0 + 0 + + + 10808 + 200 + 0 + 0 + 0 + + + 10809 + 200 + 0 + 0 + 0 + + + 10810 + 35 + 0 + 0 + 0 + + + 10811 + 35 + 0 + 0 + 0 + + + 10812 + 90 + 0 + 0 + 0 + + + 10813 + 90 + 0 + 0 + 0 + + + 10814 + 120 + 0 + 0 + 0 + + + 10815 + 120 + 0 + 0 + 0 + + + 10816 + 2 + 0 + 0 + 0 + + + 10817 + 2 + 0 + 0 + 0 + + + 10818 + 50 + 0 + 0 + 0 + + + 10819 + 50 + 0 + 0 + 0 + + + 10820 + 100 + 0 + 0 + 0 + + + 10821 + 100 + 0 + 0 + 0 + + + 10822 + 500 + 0 + 0 + 0 + + + 10823 + 500 + 0 + 0 + 0 + + + 10824 + 500 + 0 + 0 + 0 + + + 10825 + 500 + 0 + 0 + 0 + + + 10826 + 500 + 0 + 0 + 0 + + + 10827 + 500 + 0 + 0 + 0 + + + 10828 + 50000 + 0 + 0 + 0 + + + 10829 + 1 + 0 + 0 + 0 + + + 10830 + 1 + 0 + 0 + 0 + + + 10831 + 1 + 0 + 0 + 0 + + + 10832 + 1 + 0 + 0 + 0 + + + 10833 + 1 + 0 + 0 + 0 + + + 10834 + 1 + 0 + 0 + 0 + + + 10835 + 1 + 0 + 0 + 0 + + + 10836 + 100 + 0 + 0 + 0 + + + 10837 + 100 + 0 + 0 + 0 + + + 10838 + 100 + 0 + 0 + 0 + + + 10839 + 100 + 0 + 0 + 0 + + + 10840 + 1000 + 0 + 0 + 0 + + + 10841 + 1 + 0 + 0 + 0 + + + 10842 + 1 + 0 + 0 + 0 + + + 10843 + 50000 + 0 + 0 + 0 + + + 10844 + 1 + 0 + 0 + 0 + + + 10845 + 1 + 0 + 0 + 0 + + + 10846 + 1 + 0 + 0 + 0 + + + 10847 + 1 + 0 + 0 + 0 + + + 10848 + 1 + 0 + 0 + 0 + + + 10849 + 1 + 0 + 0 + 0 + + + 10850 + 1 + 0 + 0 + 0 + + + 10851 + 1 + 0 + 0 + 0 + + + 10852 + 1 + 0 + 0 + 0 + + + 10853 + 1 + 0 + 0 + 0 + + + 10854 + 1 + 0 + 0 + 0 + + + 10855 + 1 + 0 + 0 + 0 + + + 10856 + 5 + 0 + 0 + 0 + + + 10857 + 1 + 0 + 0 + 0 + + + 10858 + 1 + 0 + 0 + 0 + + + 10859 + 1 + 0 + 0 + 0 + + + 10860 + 1 + 0 + 0 + 0 + + + 10861 + 1 + 0 + 0 + 0 + + + 10862 + 100 + 0 + 0 + 0 + + + 10863 + 100 + 0 + 0 + 0 + + + 10864 + 100 + 0 + 0 + 0 + + + 10865 + 100 + 0 + 0 + 0 + + + 10866 + 1 + 0 + 0 + 0 + + + 10867 + 1 + 0 + 0 + 0 + + + 10868 + 1 + 0 + 0 + 0 + + + 10869 + 1 + 0 + 0 + 0 + + + 10870 + 1 + 0 + 0 + 0 + + + 10871 + 1 + 0 + 0 + 0 + + + 10872 + 1 + 0 + 0 + 0 + + + 10873 + 1 + 0 + 0 + 0 + + + 10874 + 1 + 0 + 0 + 0 + + + 10875 + 1 + 0 + 0 + 0 + + + 10876 + 1 + 0 + 0 + 0 + + + 10877 + 100 + 0 + 0 + 0 + + + 10878 + 100 + 0 + 0 + 0 + + + 10879 + 100 + 0 + 0 + 0 + + + 10880 + 100 + 0 + 0 + 0 + + + 10881 + 100 + 0 + 0 + 0 + + + 10882 + 100 + 0 + 0 + 0 + + + 10883 + 100 + 0 + 0 + 0 + + + 10884 + 52 + 0 + 0 + 0 + + + 10885 + 1 + 0 + 0 + 0 + + + 10886 + 1 + 0 + 0 + 0 + + + 10887 + 230000 + 0 + 0 + 0 + + + 10888 + 1 + 0 + 0 + 0 + + + 10889 + 1 + 0 + 0 + 0 + + + 10890 + 1 + 0 + 0 + 0 + + + 10891 + 1 + 0 + 0 + 0 + + + 10892 + 1 + 0 + 0 + 0 + + + 10893 + 1 + 0 + 0 + 0 + + + 10894 + 1 + 0 + 0 + 0 + + + 10895 + 1 + 0 + 0 + 0 + + + 10896 + 1 + 0 + 0 + 0 + + + 10897 + 1 + 0 + 0 + 0 + + + 10898 + 1 + 0 + 0 + 0 + + + 10899 + 1 + 0 + 0 + 0 + + + 10900 + 1 + 0 + 0 + 0 + + + 10901 + 1 + 0 + 0 + 0 + + + 10902 + 1 + 0 + 0 + 0 + + + 10903 + 1 + 0 + 0 + 0 + + + 10904 + 1 + 0 + 0 + 0 + + + 10905 + 1 + 0 + 0 + 0 + + + 10906 + 1 + 0 + 0 + 0 + + + 10907 + 1 + 0 + 0 + 0 + + + 10908 + 1 + 0 + 0 + 0 + + + 10909 + 300 + 0 + 0 + 0 + + + 10910 + 300 + 0 + 0 + 0 + + + 10911 + 240 + 0 + 0 + 0 + + + 10912 + 240 + 0 + 0 + 0 + + + 10913 + 180 + 0 + 0 + 0 + + + 10914 + 180 + 0 + 0 + 0 + + + 10915 + 120 + 0 + 0 + 0 + + + 10916 + 120 + 0 + 0 + 0 + + + 10917 + 300 + 0 + 0 + 0 + + + 10918 + 300 + 0 + 0 + 0 + + + 10919 + 240 + 0 + 0 + 0 + + + 10920 + 240 + 0 + 0 + 0 + + + 10921 + 180 + 0 + 0 + 0 + + + 10922 + 180 + 0 + 0 + 0 + + + 10923 + 120 + 0 + 0 + 0 + + + 10924 + 120 + 0 + 0 + 0 + + + 10925 + 300 + 0 + 0 + 0 + + + 10926 + 300 + 0 + 0 + 0 + + + 10927 + 240 + 0 + 0 + 0 + + + 10928 + 240 + 0 + 0 + 0 + + + 10929 + 180 + 0 + 0 + 0 + + + 10930 + 180 + 0 + 0 + 0 + + + 10931 + 120 + 0 + 0 + 0 + + + 10932 + 120 + 0 + 0 + 0 + + + 10933 + 50 + 0 + 0 + 0 + + + 10934 + 1 + 0 + 0 + 0 + + + 10935 + 1 + 0 + 0 + 0 + + + 10936 + 1 + 0 + 0 + 0 + + + 10937 + 300 + 0 + 0 + 0 + + + 10938 + 300 + 0 + 0 + 0 + + + 10939 + 50 + 0 + 0 + 0 + + + 10940 + 50 + 0 + 0 + 0 + + + 10941 + 50 + 0 + 0 + 0 + + + 10942 + 1 + 0 + 0 + 0 + + + 10943 + 1 + 0 + 0 + 0 + + + 10944 + 1 + 0 + 0 + 0 + + + 10945 + 50 + 0 + 0 + 0 + + + 10946 + 1 + 0 + 0 + 0 + + + 10947 + 1 + 0 + 0 + 0 + + + 10948 + 1 + 0 + 0 + 0 + + + 10949 + 1 + 0 + 0 + 0 + + + 10950 + 1 + 0 + 0 + 0 + + + 10951 + 1 + 0 + 0 + 0 + + + 10952 + 150 + 0 + 0 + 0 + + + 10953 + 150 + 0 + 0 + 0 + + + 10954 + 1000 + 0 + 0 + 0 + + + 10955 + 1000 + 0 + 0 + 0 + + + 10956 + 900 + 0 + 0 + 0 + + + 10957 + 900 + 0 + 0 + 0 + + + 10958 + 200 + 0 + 0 + 0 + + + 10959 + 200 + 0 + 0 + 0 + + + 10960 + 10 + 0 + 0 + 0 + + + 10961 + 10 + 0 + 0 + 0 + + + 10962 + 10 + 0 + 0 + 0 + + + 10963 + 10 + 0 + 0 + 0 + + + 10964 + 10 + 0 + 0 + 0 + + + 10965 + 10 + 0 + 0 + 0 + + + 10966 + 50 + 0 + 0 + 0 + + + 10967 + 50 + 0 + 0 + 0 + + + 10968 + 50 + 0 + 0 + 0 + + + 10969 + 50 + 0 + 0 + 0 + + + 10970 + 50 + 0 + 0 + 0 + + + 10971 + 50 + 0 + 0 + 0 + + + 10972 + 20 + 0 + 0 + 0 + + + 10973 + 350 + 0 + 0 + 0 + + + 10974 + 350 + 0 + 0 + 0 + + + 10975 + 1 + 0 + 0 + 0 + + + 10976 + 5 + 0 + 0 + 0 + + + 10977 + 7 + 0 + 0 + 0 + + + 10978 + 2 + 0 + 0 + 0 + + + 10979 + 2 + 0 + 0 + 0 + + + 10980 + 250 + 0 + 0 + 0 + + + 10981 + 20 + 0 + 0 + 0 + + + 10982 + 20 + 0 + 0 + 0 + + + 10983 + 1 + 0 + 0 + 0 + + + 10984 + 1 + 0 + 0 + 0 + + + 10985 + 1 + 0 + 0 + 0 + + + 10986 + 1 + 0 + 0 + 0 + + + 10987 + 1 + 0 + 0 + 0 + + + 10988 + 1 + 0 + 0 + 0 + + + 10989 + 1 + 0 + 0 + 0 + + + 10990 + 1 + 0 + 0 + 0 + + + 10991 + 1 + 0 + 0 + 0 + + + 10992 + 1 + 0 + 0 + 0 + + + 10993 + 1 + 0 + 0 + 0 + + + 10994 + 1 + 0 + 0 + 0 + + + 10995 + 1000 + 0 + 0 + 0 + + + 10996 + 1000 + 0 + 0 + 0 + + + 10997 + 1 + 0 + 0 + 0 + + + 10998 + 1 + 0 + 0 + 0 + + + 10999 + 1 + 0 + 0 + 0 + + + 11000 + 1 + 0 + 0 + 0 + + + 11001 + 10 + 0 + 0 + 0 + + + 11002 + 10 + 0 + 0 + 0 + + + 11003 + 5 + 0 + 0 + 0 + + + 11004 + 1 + 0 + 0 + 0 + + + 11005 + 1 + 0 + 0 + 0 + + + 11006 + 10 + 0 + 0 + 0 + + + 11007 + 10 + 0 + 0 + 0 + + + 11008 + 1 + 0 + 0 + 0 + + + 11009 + 1 + 0 + 0 + 0 + + + 11010 + 1 + 0 + 0 + 0 + + + 11011 + 1 + 0 + 0 + 0 + + + 11012 + 1 + 0 + 0 + 0 + + + 11013 + 1 + 0 + 0 + 0 + + + 11014 + 1 + 0 + 0 + 0 + + + 11015 + 1 + 0 + 0 + 0 + + + 11016 + 1 + 0 + 0 + 0 + + + 11017 + 1 + 0 + 0 + 0 + + + 11018 + 1 + 0 + 0 + 0 + + + 11019 + 1 + 0 + 0 + 0 + + + 11020 + 1 + 0 + 0 + 0 + + + 11021 + 1 + 0 + 0 + 0 + + + 11022 + 1 + 0 + 0 + 0 + + + 11023 + 1 + 0 + 0 + 0 + + + 11024 + 1 + 0 + 0 + 0 + + + 11025 + 1 + 0 + 0 + 0 + + + 11026 + 1 + 0 + 0 + 0 + + + 11027 + 1 + 0 + 0 + 0 + + + 11028 + 1 + 0 + 0 + 0 + + + 11029 + 1 + 0 + 0 + 0 + + + 11030 + 1 + 0 + 0 + 0 + + + 11031 + 1 + 0 + 0 + 0 + + + 11032 + 1 + 0 + 0 + 0 + + + 11033 + 1 + 0 + 0 + 0 + + + 11034 + 1 + 0 + 0 + 0 + + + 11035 + 1 + 0 + 0 + 0 + + + 11036 + 1 + 0 + 0 + 0 + + + 11037 + 26000 + 0 + 0 + 0 + + + 11038 + 26000 + 0 + 0 + 0 + + + 11039 + 1 + 0 + 0 + 0 + + + 11040 + 1 + 0 + 0 + 0 + + + 11041 + 1 + 0 + 0 + 0 + + + 11042 + 1 + 0 + 0 + 0 + + + 11043 + 1 + 0 + 0 + 0 + + + 11044 + 1 + 0 + 0 + 0 + + + 11045 + 1 + 0 + 0 + 0 + + + 11046 + 1 + 0 + 0 + 0 + + + 11047 + 1 + 0 + 0 + 0 + + + 11048 + 1 + 0 + 0 + 0 + + + 11049 + 1 + 0 + 0 + 0 + + + 11050 + 1 + 0 + 0 + 0 + + + 11051 + 1 + 0 + 0 + 0 + + + 11052 + 1 + 0 + 0 + 0 + + + 11053 + 1 + 0 + 0 + 0 + + + 11054 + 1 + 0 + 0 + 0 + + + 11055 + 1 + 0 + 0 + 0 + + + 11056 + 1 + 0 + 0 + 0 + + + 11057 + 1 + 0 + 0 + 0 + + + 11058 + 1 + 0 + 0 + 0 + + + 11059 + 1 + 0 + 0 + 0 + + + 11060 + 20 + 0 + 0 + 0 + + + 11061 + 1000 + 0 + 0 + 0 + + + 11062 + 1 + 0 + 0 + 0 + + + 11063 + 1 + 0 + 0 + 0 + + + 11064 + 1000 + 0 + 0 + 0 + + + 11065 + 5 + 0 + 0 + 0 + + + 11066 + 5 + 0 + 0 + 0 + + + 11067 + 1 + 0 + 0 + 0 + + + 11068 + 1 + 0 + 0 + 0 + + + 11069 + 550 + 0 + 0 + 0 + + + 11070 + 550 + 0 + 0 + 0 + + + 11071 + 1 + 0 + 0 + 0 + + + 11072 + 1150 + 0 + 0 + 0 + + + 11073 + 1150 + 0 + 0 + 0 + + + 11074 + 1265 + 0 + 0 + 0 + + + 11075 + 1265 + 0 + 0 + 0 + + + 11076 + 1525 + 0 + 0 + 0 + + + 11077 + 1525 + 0 + 0 + 0 + + + 11078 + 1 + 0 + 0 + 0 + + + 11079 + 1675 + 0 + 0 + 0 + + + 11080 + 1675 + 0 + 0 + 0 + + + 11081 + 1675 + 0 + 0 + 0 + + + 11082 + 1675 + 0 + 0 + 0 + + + 11083 + 1675 + 0 + 0 + 0 + + + 11084 + 1675 + 0 + 0 + 0 + + + 11085 + 2325 + 0 + 0 + 0 + + + 11086 + 2325 + 0 + 0 + 0 + + + 11087 + 1 + 0 + 0 + 0 + + + 11088 + 2560 + 0 + 0 + 0 + + + 11089 + 2560 + 0 + 0 + 0 + + + 11090 + 4050 + 0 + 0 + 0 + + + 11091 + 4050 + 0 + 0 + 0 + + + 11092 + 3825 + 0 + 0 + 0 + + + 11093 + 3825 + 0 + 0 + 0 + + + 11094 + 1 + 0 + 0 + 0 + + + 11095 + 4200 + 0 + 0 + 0 + + + 11096 + 4200 + 0 + 0 + 0 + + + 11097 + 4200 + 0 + 0 + 0 + + + 11098 + 4200 + 0 + 0 + 0 + + + 11099 + 4200 + 0 + 0 + 0 + + + 11100 + 4200 + 0 + 0 + 0 + + + 11101 + 4200 + 0 + 0 + 0 + + + 11102 + 4200 + 0 + 0 + 0 + + + 11103 + 4200 + 0 + 0 + 0 + + + 11104 + 4200 + 0 + 0 + 0 + + + 11105 + 20200 + 0 + 0 + 0 + + + 11106 + 20200 + 0 + 0 + 0 + + + 11107 + 20200 + 0 + 0 + 0 + + + 11108 + 20200 + 0 + 0 + 0 + + + 11109 + 20200 + 0 + 0 + 0 + + + 11110 + 20200 + 0 + 0 + 0 + + + 11111 + 20200 + 0 + 0 + 0 + + + 11112 + 20200 + 0 + 0 + 0 + + + 11113 + 20200 + 0 + 0 + 0 + + + 11114 + 20200 + 0 + 0 + 0 + + + 11115 + 19125 + 0 + 0 + 0 + + + 11116 + 19125 + 0 + 0 + 0 + + + 11117 + 1 + 0 + 0 + 0 + + + 11118 + 21040 + 0 + 0 + 0 + + + 11119 + 21040 + 0 + 0 + 0 + + + 11120 + 21040 + 0 + 0 + 0 + + + 11121 + 21040 + 0 + 0 + 0 + + + 11122 + 21040 + 0 + 0 + 0 + + + 11123 + 21040 + 0 + 0 + 0 + + + 11124 + 21040 + 0 + 0 + 0 + + + 11125 + 21040 + 0 + 0 + 0 + + + 11126 + 21040 + 0 + 0 + 0 + + + 11127 + 21040 + 0 + 0 + 0 + + + 11128 + 202000 + 0 + 0 + 0 + + + 11129 + 202000 + 0 + 0 + 0 + + + 11130 + 201000 + 0 + 0 + 0 + + + 11131 + 201000 + 0 + 0 + 0 + + + 11132 + 1 + 0 + 0 + 0 + + + 11133 + 202000 + 0 + 0 + 0 + + + 11134 + 202000 + 0 + 0 + 0 + + + 11135 + 1 + 0 + 0 + 0 + + + 11136 + 1 + 0 + 0 + 0 + + + 11137 + 1 + 0 + 0 + 0 + + + 11138 + 1 + 0 + 0 + 0 + + + 11139 + 1 + 0 + 0 + 0 + + + 11140 + 1 + 0 + 0 + 0 + + + 11141 + 1 + 0 + 0 + 0 + + + 11142 + 1 + 0 + 0 + 0 + + + 11143 + 1 + 0 + 0 + 0 + + + 11144 + 1 + 0 + 0 + 0 + + + 11145 + 1 + 0 + 0 + 0 + + + 11146 + 1 + 0 + 0 + 0 + + + 11147 + 1 + 0 + 0 + 0 + + + 11148 + 1 + 0 + 0 + 0 + + + 11149 + 1 + 0 + 0 + 0 + + + 11150 + 1 + 0 + 0 + 0 + + + 11151 + 1 + 0 + 0 + 0 + + + 11152 + 1 + 0 + 0 + 0 + + + 11153 + 1 + 0 + 0 + 0 + + + 11154 + 1 + 0 + 0 + 0 + + + 11155 + 20 + 0 + 0 + 0 + + + 11156 + 1 + 0 + 0 + 0 + + + 11157 + 1 + 0 + 0 + 0 + + + 11158 + 1 + 0 + 0 + 0 + + + 11159 + 1 + 0 + 0 + 0 + + + 11160 + 1 + 0 + 0 + 0 + + + 11161 + 1 + 0 + 0 + 0 + + + 11162 + 1 + 0 + 0 + 0 + + + 11163 + 1 + 0 + 0 + 0 + + + 11164 + 1 + 0 + 0 + 0 + + + 11165 + 4 + 0 + 0 + 0 + + + 11166 + 4 + 0 + 0 + 0 + + + 11167 + 4 + 0 + 0 + 0 + + + 11168 + 4 + 0 + 0 + 0 + + + 11169 + 1 + 0 + 0 + 0 + + + 11170 + 1 + 0 + 0 + 0 + + + 11171 + 1 + 0 + 0 + 0 + + + 11172 + 1 + 0 + 0 + 0 + + + 11173 + 1 + 0 + 0 + 0 + + + 11174 + 1 + 0 + 0 + 0 + + + 11175 + 1 + 0 + 0 + 0 + + + 11176 + 1 + 0 + 0 + 0 + + + 11177 + 1 + 0 + 0 + 0 + + + 11178 + 1 + 0 + 0 + 0 + + + 11179 + 1 + 0 + 0 + 0 + + + 11180 + 1 + 0 + 0 + 0 + + + 11181 + 1 + 0 + 0 + 0 + + + 11182 + 1 + 0 + 0 + 0 + + + 11183 + 1 + 0 + 0 + 0 + + + 11184 + 1 + 0 + 0 + 0 + + + 11185 + 1 + 0 + 0 + 0 + + + 11186 + 1 + 0 + 0 + 0 + + + 11187 + 1 + 0 + 0 + 0 + + + 11188 + 1 + 0 + 0 + 0 + + + 11189 + 1 + 0 + 0 + 0 + + + 11190 + 2400 + 0 + 0 + 0 + + + 11191 + 2400 + 0 + 0 + 0 + + + 11192 + 2400 + 0 + 0 + 0 + + + 11193 + 2400 + 0 + 0 + 0 + + + 11194 + 2400 + 0 + 0 + 0 + + + 11195 + 1 + 0 + 0 + 0 + + + 11196 + 1 + 0 + 0 + 0 + + + 11197 + 1 + 0 + 0 + 0 + + + 11198 + 1 + 0 + 0 + 0 + + + 11199 + 1 + 0 + 0 + 0 + + + 11200 + 60000 + 0 + 0 + 0 + + + 11201 + 60000 + 0 + 0 + 0 + + + 11202 + 1 + 0 + 0 + 0 + + + 11203 + 1 + 0 + 0 + 0 + + + 11204 + 1 + 0 + 0 + 0 + + + 11205 + 2 + 0 + 0 + 0 + + + 11206 + 1 + 0 + 0 + 0 + + + 11207 + 1 + 0 + 0 + 0 + + + 11208 + 1 + 0 + 0 + 0 + + + 11209 + 1 + 0 + 0 + 0 + + + 11210 + 1 + 0 + 0 + 0 + + + 11211 + 1 + 0 + 0 + 0 + + + 11212 + 800 + 0 + 0 + 0 + + + 11213 + 1 + 0 + 0 + 0 + + + 11214 + 1 + 0 + 0 + 0 + + + 11215 + 1 + 0 + 0 + 0 + + + 11216 + 1 + 0 + 0 + 0 + + + 11217 + 3 + 0 + 0 + 0 + + + 11218 + 1 + 0 + 0 + 0 + + + 11219 + 1 + 0 + 0 + 0 + + + 11220 + 1 + 0 + 0 + 0 + + + 11221 + 1 + 0 + 0 + 0 + + + 11222 + 10 + 0 + 0 + 0 + + + 11223 + 1 + 0 + 0 + 0 + + + 11224 + 1 + 0 + 0 + 0 + + + 11225 + 1 + 0 + 0 + 0 + + + 11226 + 1 + 0 + 0 + 0 + + + 11227 + 800 + 0 + 0 + 0 + + + 11228 + 800 + 0 + 0 + 0 + + + 11229 + 800 + 0 + 0 + 0 + + + 11230 + 500 + 0 + 0 + 0 + + + 11231 + 500 + 0 + 0 + 0 + + + 11232 + 250 + 0 + 0 + 0 + + + 11233 + 500 + 0 + 0 + 0 + + + 11234 + 500 + 0 + 0 + 0 + + + 11235 + 120002 + 0 + 0 + 0 + + + 11236 + 120002 + 0 + 0 + 0 + + + 11237 + 500 + 0 + 0 + 0 + + + 11238 + 50 + 0 + 0 + 0 + + + 11239 + 50 + 0 + 0 + 0 + + + 11240 + 50 + 0 + 0 + 0 + + + 11241 + 50 + 0 + 0 + 0 + + + 11242 + 50 + 0 + 0 + 0 + + + 11243 + 50 + 0 + 0 + 0 + + + 11244 + 50 + 0 + 0 + 0 + + + 11245 + 50 + 0 + 0 + 0 + + + 11246 + 50 + 0 + 0 + 0 + + + 11247 + 50 + 0 + 0 + 0 + + + 11248 + 50 + 0 + 0 + 0 + + + 11249 + 50 + 0 + 0 + 0 + + + 11250 + 50 + 0 + 0 + 0 + + + 11251 + 50 + 0 + 0 + 0 + + + 11252 + 50 + 0 + 0 + 0 + + + 11253 + 50 + 0 + 0 + 0 + + + 11254 + 50 + 0 + 0 + 0 + + + 11255 + 50 + 0 + 0 + 0 + + + 11256 + 50 + 0 + 0 + 0 + + + 11257 + 50 + 0 + 0 + 0 + + + 11258 + 600 + 0 + 0 + 0 + + + 11259 + 1000 + 0 + 0 + 0 + + + 11260 + 1 + 0 + 0 + 0 + + + 11261 + 1 + 0 + 0 + 0 + + + 11262 + 50 + 0 + 0 + 0 + + + 11263 + 50 + 0 + 0 + 0 + + + 11264 + 10 + 0 + 0 + 0 + + + 11265 + 10 + 0 + 0 + 0 + + + 11266 + 5 + 0 + 0 + 0 + + + 11267 + 1 + 0 + 0 + 0 + + + 11268 + 1000 + 0 + 0 + 0 + + + 11269 + 1 + 0 + 0 + 0 + + + 11270 + 1 + 0 + 0 + 0 + + + 11271 + 50 + 0 + 0 + 0 + + + 11272 + 50 + 0 + 0 + 0 + + + 11273 + 3 + 0 + 0 + 0 + + + 11274 + 75 + 0 + 0 + 0 + + + 11275 + 48 + 0 + 0 + 0 + + + 11276 + 1 + 0 + 0 + 0 + + + 11277 + 200 + 0 + 0 + 0 + + + 11278 + 80 + 0 + 0 + 0 + + + 11279 + 1 + 0 + 0 + 0 + + + 11280 + 200 + 0 + 0 + 0 + + + 11281 + 200 + 0 + 0 + 0 + + + 11282 + 80 + 0 + 0 + 0 + + + 11283 + 2000000 + 0 + 0 + 0 + + + 11284 + 2000000 + 0 + 0 + 0 + + + 11285 + 2000000 + 0 + 0 + 0 + + + 11286 + 750000 + 0 + 0 + 0 + + + 11287 + 750000 + 0 + 0 + 0 + + + 11288 + 40 + 0 + 0 + 0 + + + 11289 + 40 + 0 + 0 + 0 + + + 11290 + 40 + 0 + 0 + 0 + + + 11291 + 40 + 0 + 0 + 0 + + + 11292 + 40 + 0 + 0 + 0 + + + 11293 + 40 + 0 + 0 + 0 + + + 11294 + 40 + 0 + 0 + 0 + + + 11295 + 40 + 0 + 0 + 0 + + + 11296 + 40 + 0 + 0 + 0 + + + 11297 + 40 + 0 + 0 + 0 + + + 11298 + 40 + 0 + 0 + 0 + + + 11299 + 40 + 0 + 0 + 0 + + + 11300 + 40 + 0 + 0 + 0 + + + 11301 + 40 + 0 + 0 + 0 + + + 11302 + 40 + 0 + 0 + 0 + + + 11303 + 40 + 0 + 0 + 0 + + + 11304 + 40 + 0 + 0 + 0 + + + 11305 + 40 + 0 + 0 + 0 + + + 11306 + 1 + 0 + 0 + 0 + + + 11307 + 1 + 0 + 0 + 0 + + + 11308 + 1 + 0 + 0 + 0 + + + 11309 + 1 + 0 + 0 + 0 + + + 11310 + 1 + 0 + 0 + 0 + + + 11311 + 1 + 0 + 0 + 0 + + + 11312 + 1 + 0 + 0 + 0 + + + 11313 + 1 + 0 + 0 + 0 + + + 11314 + 1 + 0 + 0 + 0 + + + 11315 + 1 + 0 + 0 + 0 + + + 11316 + 1 + 0 + 0 + 0 + + + 11317 + 1 + 0 + 0 + 0 + + + 11318 + 1 + 0 + 0 + 0 + + + 11319 + 1 + 0 + 0 + 0 + + + 11320 + 3 + 0 + 0 + 0 + + + 11321 + 3 + 0 + 0 + 0 + + + 11322 + 3 + 0 + 0 + 0 + + + 11323 + 1 + 0 + 0 + 0 + + + 11324 + 20 + 0 + 0 + 0 + + + 11325 + 20 + 0 + 0 + 0 + + + 11326 + 50 + 0 + 0 + 0 + + + 11327 + 50 + 0 + 0 + 0 + + + 11328 + 25 + 0 + 0 + 0 + + + 11329 + 25 + 0 + 0 + 0 + + + 11330 + 50 + 0 + 0 + 0 + + + 11331 + 50 + 0 + 0 + 0 + + + 11332 + 75 + 0 + 0 + 0 + + + 11333 + 75 + 0 + 0 + 0 + + + 11334 + 1 + 0 + 0 + 0 + + + 11335 + 150000 + 0 + 0 + 0 + + + 11336 + 150000 + 0 + 0 + 0 + + + 11337 + 1000 + 0 + 0 + 0 + + + 11338 + 3500 + 0 + 0 + 0 + + + 11339 + 1 + 0 + 0 + 0 + + + 11340 + 1 + 0 + 0 + 0 + + + 11341 + 1 + 0 + 0 + 0 + + + 11342 + 1 + 0 + 0 + 0 + + + 11343 + 1 + 0 + 0 + 0 + + + 11344 + 1 + 0 + 0 + 0 + + + 11345 + 1 + 0 + 0 + 0 + + + 11346 + 1 + 0 + 0 + 0 + + + 11347 + 1 + 0 + 0 + 0 + + + 11348 + 1 + 0 + 0 + 0 + + + 11349 + 1 + 0 + 0 + 0 + + + 11350 + 1 + 0 + 0 + 0 + + + 11351 + 1 + 0 + 0 + 0 + + + 11352 + 1 + 0 + 0 + 0 + + + 11353 + 1 + 0 + 0 + 0 + + + 11354 + 1 + 0 + 0 + 0 + + + 11355 + 1 + 0 + 0 + 0 + + + 11356 + 1 + 0 + 0 + 0 + + + 11357 + 1 + 0 + 0 + 0 + + + 11358 + 1 + 0 + 0 + 0 + + + 11359 + 1 + 0 + 0 + 0 + + + 11360 + 1 + 0 + 0 + 0 + + + 11361 + 1 + 0 + 0 + 0 + + + 11362 + 1 + 0 + 0 + 0 + + + 11363 + 1 + 0 + 0 + 0 + + + 11364 + 1 + 0 + 0 + 0 + + + 11365 + 1 + 0 + 0 + 0 + + + 11366 + 1 + 0 + 0 + 0 + + + 11367 + 26 + 0 + 0 + 0 + + + 11368 + 26 + 0 + 0 + 0 + + + 11369 + 91 + 0 + 0 + 0 + + + 11370 + 91 + 0 + 0 + 0 + + + 11371 + 325 + 0 + 0 + 0 + + + 11372 + 325 + 0 + 0 + 0 + + + 11373 + 845 + 0 + 0 + 0 + + + 11374 + 845 + 0 + 0 + 0 + + + 11375 + 2080 + 0 + 0 + 0 + + + 11376 + 2080 + 0 + 0 + 0 + + + 11377 + 20800 + 0 + 0 + 0 + + + 11378 + 20800 + 0 + 0 + 0 + + + 11379 + 26 + 0 + 0 + 0 + + + 11380 + 26 + 0 + 0 + 0 + + + 11381 + 26 + 0 + 0 + 0 + + + 11382 + 26 + 0 + 0 + 0 + + + 11383 + 26 + 0 + 0 + 0 + + + 11384 + 26 + 0 + 0 + 0 + + + 11385 + 26 + 0 + 0 + 0 + + + 11386 + 91 + 0 + 0 + 0 + + + 11387 + 91 + 0 + 0 + 0 + + + 11388 + 91 + 0 + 0 + 0 + + + 11389 + 91 + 0 + 0 + 0 + + + 11390 + 91 + 0 + 0 + 0 + + + 11391 + 91 + 0 + 0 + 0 + + + 11392 + 91 + 0 + 0 + 0 + + + 11393 + 325 + 0 + 0 + 0 + + + 11394 + 325 + 0 + 0 + 0 + + + 11395 + 325 + 0 + 0 + 0 + + + 11396 + 325 + 0 + 0 + 0 + + + 11397 + 325 + 0 + 0 + 0 + + + 11398 + 325 + 0 + 0 + 0 + + + 11399 + 325 + 0 + 0 + 0 + + + 11400 + 845 + 0 + 0 + 0 + + + 11401 + 845 + 0 + 0 + 0 + + + 11402 + 845 + 0 + 0 + 0 + + + 11403 + 845 + 0 + 0 + 0 + + + 11404 + 845 + 0 + 0 + 0 + + + 11405 + 845 + 0 + 0 + 0 + + + 11406 + 845 + 0 + 0 + 0 + + + 11407 + 2080 + 0 + 0 + 0 + + + 11408 + 2080 + 0 + 0 + 0 + + + 11409 + 2080 + 0 + 0 + 0 + + + 11410 + 2080 + 0 + 0 + 0 + + + 11411 + 2080 + 0 + 0 + 0 + + + 11412 + 2080 + 0 + 0 + 0 + + + 11413 + 2080 + 0 + 0 + 0 + + + 11414 + 20800 + 0 + 0 + 0 + + + 11415 + 20800 + 0 + 0 + 0 + + + 11416 + 20800 + 0 + 0 + 0 + + + 11417 + 20800 + 0 + 0 + 0 + + + 11418 + 20800 + 0 + 0 + 0 + + + 11419 + 20800 + 0 + 0 + 0 + + + 11420 + 20800 + 0 + 0 + 0 + + + 11421 + 1 + 0 + 0 + 0 + + + 11422 + 1 + 0 + 0 + 0 + + + 11423 + 1 + 0 + 0 + 0 + + + 11424 + 1 + 0 + 0 + 0 + + + 11425 + 1 + 0 + 0 + 0 + + + 11426 + 1 + 0 + 0 + 0 + + + 11427 + 3 + 0 + 0 + 0 + + + 11428 + 3 + 0 + 0 + 0 + + + 11429 + 9 + 0 + 0 + 0 + + + 11430 + 9 + 0 + 0 + 0 + + + 11431 + 6 + 0 + 0 + 0 + + + 11432 + 6 + 0 + 0 + 0 + + + 11433 + 216 + 0 + 0 + 0 + + + 11434 + 216 + 0 + 0 + 0 + + + 11435 + 144 + 0 + 0 + 0 + + + 11436 + 144 + 0 + 0 + 0 + + + 11437 + 150 + 0 + 0 + 0 + + + 11438 + 150 + 0 + 0 + 0 + + + 11439 + 75 + 0 + 0 + 0 + + + 11440 + 75 + 0 + 0 + 0 + + + 11441 + 11 + 0 + 0 + 0 + + + 11442 + 11 + 0 + 0 + 0 + + + 11443 + 13 + 0 + 0 + 0 + + + 11444 + 13 + 0 + 0 + 0 + + + 11445 + 105 + 0 + 0 + 0 + + + 11446 + 105 + 0 + 0 + 0 + + + 11447 + 52 + 0 + 0 + 0 + + + 11448 + 52 + 0 + 0 + 0 + + + 11449 + 66 + 0 + 0 + 0 + + + 11450 + 66 + 0 + 0 + 0 + + + 11451 + 44 + 0 + 0 + 0 + + + 11452 + 44 + 0 + 0 + 0 + + + 11453 + 72 + 0 + 0 + 0 + + + 11454 + 72 + 0 + 0 + 0 + + + 11455 + 36 + 0 + 0 + 0 + + + 11456 + 36 + 0 + 0 + 0 + + + 11457 + 90 + 0 + 0 + 0 + + + 11458 + 90 + 0 + 0 + 0 + + + 11459 + 60 + 0 + 0 + 0 + + + 11460 + 60 + 0 + 0 + 0 + + + 11461 + 100 + 0 + 0 + 0 + + + 11462 + 100 + 0 + 0 + 0 + + + 11463 + 50 + 0 + 0 + 0 + + + 11464 + 50 + 0 + 0 + 0 + + + 11465 + 114 + 0 + 0 + 0 + + + 11466 + 114 + 0 + 0 + 0 + + + 11467 + 76 + 0 + 0 + 0 + + + 11468 + 76 + 0 + 0 + 0 + + + 11469 + 135 + 0 + 0 + 0 + + + 11470 + 135 + 0 + 0 + 0 + + + 11471 + 90 + 0 + 0 + 0 + + + 11472 + 90 + 0 + 0 + 0 + + + 11473 + 216 + 0 + 0 + 0 + + + 11474 + 216 + 0 + 0 + 0 + + + 11475 + 144 + 0 + 0 + 0 + + + 11476 + 144 + 0 + 0 + 0 + + + 11477 + 150 + 0 + 0 + 0 + + + 11478 + 150 + 0 + 0 + 0 + + + 11479 + 100 + 0 + 0 + 0 + + + 11480 + 100 + 0 + 0 + 0 + + + 11481 + 160 + 0 + 0 + 0 + + + 11482 + 160 + 0 + 0 + 0 + + + 11483 + 90 + 0 + 0 + 0 + + + 11484 + 90 + 0 + 0 + 0 + + + 11485 + 165 + 0 + 0 + 0 + + + 11486 + 165 + 0 + 0 + 0 + + + 11487 + 110 + 0 + 0 + 0 + + + 11488 + 110 + 0 + 0 + 0 + + + 11489 + 180 + 0 + 0 + 0 + + + 11490 + 180 + 0 + 0 + 0 + + + 11491 + 130 + 0 + 0 + 0 + + + 11492 + 130 + 0 + 0 + 0 + + + 11493 + 180 + 0 + 0 + 0 + + + 11494 + 180 + 0 + 0 + 0 + + + 11495 + 120 + 0 + 0 + 0 + + + 11496 + 120 + 0 + 0 + 0 + + + 11497 + 198 + 0 + 0 + 0 + + + 11498 + 198 + 0 + 0 + 0 + + + 11499 + 132 + 0 + 0 + 0 + + + 11500 + 132 + 0 + 0 + 0 + + + 11501 + 216 + 0 + 0 + 0 + + + 11502 + 216 + 0 + 0 + 0 + + + 11503 + 144 + 0 + 0 + 0 + + + 11504 + 144 + 0 + 0 + 0 + + + 11505 + 198 + 0 + 0 + 0 + + + 11506 + 198 + 0 + 0 + 0 + + + 11507 + 132 + 0 + 0 + 0 + + + 11508 + 132 + 0 + 0 + 0 + + + 11509 + 216 + 0 + 0 + 0 + + + 11510 + 216 + 0 + 0 + 0 + + + 11511 + 144 + 0 + 0 + 0 + + + 11512 + 144 + 0 + 0 + 0 + + + 11513 + 200 + 0 + 0 + 0 + + + 11514 + 200 + 0 + 0 + 0 + + + 11515 + 150 + 0 + 0 + 0 + + + 11516 + 150 + 0 + 0 + 0 + + + 11517 + 9 + 0 + 0 + 0 + + + 11518 + 9 + 0 + 0 + 0 + + + 11519 + 6 + 0 + 0 + 0 + + + 11520 + 6 + 0 + 0 + 0 + + + 11521 + 150 + 0 + 0 + 0 + + + 11522 + 150 + 0 + 0 + 0 + + + 11523 + 125 + 0 + 0 + 0 + + + 11524 + 125 + 0 + 0 + 0 + + + 11525 + 25 + 0 + 0 + 0 + + + 11526 + 3 + 0 + 0 + 0 + + + 11527 + 3 + 0 + 0 + 0 + + + 11528 + 3 + 0 + 0 + 0 + + + 11529 + 3 + 0 + 0 + 0 + + + 11530 + 3 + 0 + 0 + 0 + + + 11531 + 3 + 0 + 0 + 0 + + + 11532 + 3 + 0 + 0 + 0 + + + 11533 + 3 + 0 + 0 + 0 + + + 11534 + 3 + 0 + 0 + 0 + + + 11535 + 3 + 0 + 0 + 0 + + + 11536 + 3 + 0 + 0 + 0 + + + 11537 + 3 + 0 + 0 + 0 + + + 11538 + 3 + 0 + 0 + 0 + + + 11539 + 3 + 0 + 0 + 0 + + + 11540 + 3 + 0 + 0 + 0 + + + 11541 + 3 + 0 + 0 + 0 + + + 11542 + 3 + 0 + 0 + 0 + + + 11543 + 3 + 0 + 0 + 0 + + + 11544 + 3 + 0 + 0 + 0 + + + 11545 + 3 + 0 + 0 + 0 + + + 11546 + 3 + 0 + 0 + 0 + + + 11547 + 3 + 0 + 0 + 0 + + + 11548 + 3 + 0 + 0 + 0 + + + 11549 + 3 + 0 + 0 + 0 + + + 11550 + 3 + 0 + 0 + 0 + + + 11551 + 3 + 0 + 0 + 0 + + + 11552 + 3 + 0 + 0 + 0 + + + 11553 + 3 + 0 + 0 + 0 + + + 11554 + 3 + 0 + 0 + 0 + + + 11555 + 3 + 0 + 0 + 0 + + + 11556 + 3 + 0 + 0 + 0 + + + 11557 + 3 + 0 + 0 + 0 + + + 11558 + 3 + 0 + 0 + 0 + + + 11559 + 3 + 0 + 0 + 0 + + + 11560 + 3 + 0 + 0 + 0 + + + 11561 + 3 + 0 + 0 + 0 + + + 11562 + 3 + 0 + 0 + 0 + + + 11563 + 3 + 0 + 0 + 0 + + + 11564 + 3 + 0 + 0 + 0 + + + 11565 + 3 + 0 + 0 + 0 + + + 11566 + 3 + 0 + 0 + 0 + + + 11567 + 3 + 0 + 0 + 0 + + + 11568 + 3 + 0 + 0 + 0 + + + 11569 + 3 + 0 + 0 + 0 + + + 11570 + 3 + 0 + 0 + 0 + + + 11571 + 3 + 0 + 0 + 0 + + + 11572 + 3 + 0 + 0 + 0 + + + 11573 + 3 + 0 + 0 + 0 + + + 11574 + 3 + 0 + 0 + 0 + + + 11575 + 3 + 0 + 0 + 0 + + + 11576 + 3 + 0 + 0 + 0 + + + 11577 + 3 + 0 + 0 + 0 + + + 11578 + 3 + 0 + 0 + 0 + + + 11579 + 3 + 0 + 0 + 0 + + + 11580 + 3 + 0 + 0 + 0 + + + 11581 + 3 + 0 + 0 + 0 + + + 11582 + 3 + 0 + 0 + 0 + + + 11583 + 3 + 0 + 0 + 0 + + + 11584 + 3 + 0 + 0 + 0 + + + 11585 + 3 + 0 + 0 + 0 + + + 11586 + 3 + 0 + 0 + 0 + + + 11587 + 3 + 0 + 0 + 0 + + + 11588 + 3 + 0 + 0 + 0 + + + 11589 + 3 + 0 + 0 + 0 + + + 11590 + 3 + 0 + 0 + 0 + + + 11591 + 3 + 0 + 0 + 0 + + + 11592 + 3 + 0 + 0 + 0 + + + 11593 + 3 + 0 + 0 + 0 + + + 11594 + 3 + 0 + 0 + 0 + + + 11595 + 3 + 0 + 0 + 0 + + + 11596 + 3 + 0 + 0 + 0 + + + 11597 + 3 + 0 + 0 + 0 + + + 11598 + 3 + 0 + 0 + 0 + + + 11599 + 3 + 0 + 0 + 0 + + + 11600 + 3 + 0 + 0 + 0 + + + 11601 + 3 + 0 + 0 + 0 + + + 11602 + 3 + 0 + 0 + 0 + + + 11603 + 3 + 0 + 0 + 0 + + + 11604 + 3 + 0 + 0 + 0 + + + 11605 + 3 + 0 + 0 + 0 + + + 11606 + 3 + 0 + 0 + 0 + + + 11607 + 3 + 0 + 0 + 0 + + + 11608 + 3 + 0 + 0 + 0 + + + 11609 + 3 + 0 + 0 + 0 + + + 11610 + 3 + 0 + 0 + 0 + + + 11611 + 3 + 0 + 0 + 0 + + + 11612 + 3 + 0 + 0 + 0 + + + 11613 + 3 + 0 + 0 + 0 + + + 11614 + 3 + 0 + 0 + 0 + + + 11615 + 3 + 0 + 0 + 0 + + + 11616 + 3 + 0 + 0 + 0 + + + 11617 + 3 + 0 + 0 + 0 + + + 11618 + 3 + 0 + 0 + 0 + + + 11619 + 3 + 0 + 0 + 0 + + + 11620 + 3 + 0 + 0 + 0 + + + 11621 + 3 + 0 + 0 + 0 + + + 11622 + 3 + 0 + 0 + 0 + + + 11623 + 3 + 0 + 0 + 0 + + + 11624 + 3 + 0 + 0 + 0 + + + 11625 + 3 + 0 + 0 + 0 + + + 11626 + 3 + 0 + 0 + 0 + + + 11627 + 3 + 0 + 0 + 0 + + + 11628 + 3 + 0 + 0 + 0 + + + 11629 + 3 + 0 + 0 + 0 + + + 11630 + 3 + 0 + 0 + 0 + + + 11631 + 3 + 0 + 0 + 0 + + + 11632 + 3 + 0 + 0 + 0 + + + 11633 + 3 + 0 + 0 + 0 + + + 11634 + 3 + 0 + 0 + 0 + + + 11635 + 3 + 0 + 0 + 0 + + + 11636 + 3 + 0 + 0 + 0 + + + 11637 + 3 + 0 + 0 + 0 + + + 11638 + 3 + 0 + 0 + 0 + + + 11639 + 3 + 0 + 0 + 0 + + + 11640 + 1 + 0 + 0 + 0 + + + 11641 + 3 + 0 + 0 + 0 + + + 11642 + 3 + 0 + 0 + 0 + + + 11643 + 3 + 0 + 0 + 0 + + + 11644 + 3 + 0 + 0 + 0 + + + 11645 + 3 + 0 + 0 + 0 + + + 11646 + 3 + 0 + 0 + 0 + + + 11647 + 3 + 0 + 0 + 0 + + + 11648 + 3 + 0 + 0 + 0 + + + 11649 + 3 + 0 + 0 + 0 + + + 11650 + 3 + 0 + 0 + 0 + + + 11651 + 3 + 0 + 0 + 0 + + + 11652 + 3 + 0 + 0 + 0 + + + 11653 + 3 + 0 + 0 + 0 + + + 11654 + 3 + 0 + 0 + 0 + + + 11655 + 3 + 0 + 0 + 0 + + + 11656 + 3 + 0 + 0 + 0 + + + 11657 + 3 + 0 + 0 + 0 + + + 11658 + 1 + 0 + 0 + 0 + + + 11659 + 1 + 0 + 0 + 0 + + + 11660 + 1 + 0 + 0 + 0 + + + 11661 + 1 + 0 + 0 + 0 + + + 11662 + 1 + 0 + 0 + 0 + + + 11663 + 9851 + 0 + 0 + 0 + + + 11664 + 9851 + 0 + 0 + 0 + + + 11665 + 9851 + 0 + 0 + 0 + + + 11666 + 100 + 0 + 0 + 0 + + + 11667 + 100 + 0 + 0 + 0 + + + 11668 + 100 + 0 + 0 + 0 + + + 11669 + 100 + 0 + 0 + 0 + + + 11670 + 100 + 0 + 0 + 0 + + + 11671 + 100 + 0 + 0 + 0 + + + 11672 + 100 + 0 + 0 + 0 + + + 11673 + 100 + 0 + 0 + 0 + + + 11674 + 9851 + 0 + 0 + 0 + + + 11675 + 9851 + 0 + 0 + 0 + + + 11676 + 9851 + 0 + 0 + 0 + + + 11677 + 6 + 0 + 0 + 0 + + + 11678 + 1 + 0 + 0 + 0 + + + 11679 + 1 + 0 + 0 + 0 + + + 11680 + 1 + 0 + 0 + 0 + + + 11681 + 1 + 0 + 0 + 0 + + + 11682 + 1 + 0 + 0 + 0 + + + 11683 + 1 + 0 + 0 + 0 + + + 11684 + 1 + 0 + 0 + 0 + + + 11685 + 1 + 0 + 0 + 0 + + + 11686 + 500000 + 0 + 0 + 0 + + + 11687 + 500000 + 0 + 0 + 0 + + + 11688 + 500000 + 0 + 0 + 0 + + + 11689 + 500000 + 0 + 0 + 0 + + + 11690 + 750000 + 0 + 0 + 0 + + + 11691 + 750000 + 0 + 0 + 0 + + + 11692 + 500000 + 0 + 0 + 0 + + + 11693 + 500000 + 0 + 0 + 0 + + + 11694 + 1250000 + 0 + 0 + 0 + + + 11695 + 1250000 + 0 + 0 + 0 + + + 11696 + 1250000 + 0 + 0 + 0 + + + 11697 + 1250000 + 0 + 0 + 0 + + + 11698 + 1250000 + 0 + 0 + 0 + + + 11699 + 1250000 + 0 + 0 + 0 + + + 11700 + 1250000 + 0 + 0 + 0 + + + 11701 + 1250000 + 0 + 0 + 0 + + + 11702 + 500000 + 0 + 0 + 0 + + + 11703 + 500000 + 0 + 0 + 0 + + + 11704 + 500000 + 0 + 0 + 0 + + + 11705 + 500000 + 0 + 0 + 0 + + + 11706 + 500000 + 0 + 0 + 0 + + + 11707 + 500000 + 0 + 0 + 0 + + + 11708 + 500000 + 0 + 0 + 0 + + + 11709 + 500000 + 0 + 0 + 0 + + + 11710 + 250000 + 0 + 0 + 0 + + + 11711 + 250000 + 0 + 0 + 0 + + + 11712 + 250000 + 0 + 0 + 0 + + + 11713 + 250000 + 0 + 0 + 0 + + + 11714 + 250000 + 0 + 0 + 0 + + + 11715 + 250000 + 0 + 0 + 0 + + + 11716 + 100000 + 0 + 0 + 0 + + + 11717 + 100000 + 0 + 0 + 0 + + + 11718 + 20000 + 0 + 0 + 0 + + + 11719 + 20000 + 0 + 0 + 0 + + + 11720 + 60000 + 0 + 0 + 0 + + + 11721 + 60000 + 0 + 0 + 0 + + + 11722 + 50000 + 0 + 0 + 0 + + + 11723 + 50000 + 0 + 0 + 0 + + + 11724 + 265000 + 0 + 0 + 0 + + + 11725 + 265000 + 0 + 0 + 0 + + + 11726 + 272500 + 0 + 0 + 0 + + + 11727 + 272500 + 0 + 0 + 0 + + + 11728 + 25000 + 0 + 0 + 0 + + + 11729 + 25000 + 0 + 0 + 0 + + + 11730 + 130000 + 0 + 0 + 0 + + + 11731 + 130000 + 0 + 0 + 0 + + + 11732 + 20000 + 0 + 0 + 0 + + + 11733 + 20000 + 0 + 0 + 0 + + + 11734 + 1 + 0 + 0 + 0 + + + 11735 + 1 + 0 + 0 + 0 + + + 11736 + 17000 + 0 + 0 + 0 + + + 11737 + 17000 + 0 + 0 + 0 + + + 11738 + 45000 + 0 + 0 + 0 + + + 11739 + 45000 + 0 + 0 + 0 + + + 11740 + 1 + 0 + 0 + 0 + + + 11741 + 1 + 0 + 0 + 0 + + + 11742 + 1 + 0 + 0 + 0 + + + 11743 + 1 + 0 + 0 + 0 + + + 11744 + 1 + 0 + 0 + 0 + + + 11745 + 1 + 0 + 0 + 0 + + + 11746 + 1 + 0 + 0 + 0 + + + 11747 + 1 + 0 + 0 + 0 + + + 11748 + 1 + 0 + 0 + 0 + + + 11749 + 10 + 0 + 0 + 0 + + + 11750 + 1 + 0 + 0 + 0 + + + 11751 + 1 + 0 + 0 + 0 + + + 11752 + 1 + 0 + 0 + 0 + + + 11753 + 1 + 0 + 0 + 0 + + + 11754 + 1 + 0 + 0 + 0 + + + 11755 + 1 + 0 + 0 + 0 + + + 11756 + 1 + 0 + 0 + 0 + + + 11757 + 1 + 0 + 0 + 0 + + + 11758 + 1 + 0 + 0 + 0 + + + 11759 + 1 + 0 + 0 + 0 + + + 11760 + 1 + 0 + 0 + 0 + + + 11761 + 1 + 0 + 0 + 0 + + + 11762 + 1 + 0 + 0 + 0 + + + 11763 + 1 + 0 + 0 + 0 + + + 11764 + 1 + 0 + 0 + 0 + + + 11765 + 1 + 0 + 0 + 0 + + + 11766 + 1 + 0 + 0 + 0 + + + 11767 + 1 + 0 + 0 + 0 + + + 11768 + 1 + 0 + 0 + 0 + + + 11769 + 1 + 0 + 0 + 0 + + + 11770 + 1 + 0 + 0 + 0 + + + 11771 + 1 + 0 + 0 + 0 + + + 11772 + 1 + 0 + 0 + 0 + + + 11773 + 1 + 0 + 0 + 0 + + + 11774 + 1 + 0 + 0 + 0 + + + 11775 + 1 + 0 + 0 + 0 + + + 11776 + 1 + 0 + 0 + 0 + + + 11777 + 1 + 0 + 0 + 0 + + + 11778 + 1 + 0 + 0 + 0 + + + 11779 + 1 + 0 + 0 + 0 + + + 11780 + 1 + 0 + 0 + 0 + + + 11781 + 5 + 0 + 0 + 0 + + + 11782 + 1 + 0 + 0 + 0 + + + 11783 + 1 + 0 + 0 + 0 + + + 11784 + 1 + 0 + 0 + 0 + + + 11785 + 1 + 0 + 0 + 0 + + + 11786 + 1 + 0 + 0 + 0 + + + 11787 + 1 + 0 + 0 + 0 + + + 11788 + 1 + 0 + 0 + 0 + + + 11789 + 1 + 0 + 0 + 0 + + + 11790 + 1 + 0 + 0 + 0 + + + 11791 + 40 + 0 + 0 + 0 + + + 11792 + 1 + 0 + 0 + 0 + + + 11793 + 1 + 0 + 0 + 0 + + + 11794 + 20 + 0 + 0 + 0 + + + 11795 + 1 + 0 + 0 + 0 + + + 11796 + 1 + 0 + 0 + 0 + + + 11797 + 1 + 0 + 0 + 0 + + + 11798 + 1 + 0 + 0 + 0 + + + 11799 + 1 + 0 + 0 + 0 + + + 11800 + 1 + 0 + 0 + 0 + + + 11801 + 1 + 0 + 0 + 0 + + + 11802 + 1 + 0 + 0 + 0 + + + 11803 + 1 + 0 + 0 + 0 + + + 11804 + 1 + 0 + 0 + 0 + + + 11805 + 1 + 0 + 0 + 0 + + + 11806 + 1 + 0 + 0 + 0 + + + 11807 + 10 + 0 + 0 + 0 + + + 11808 + 20 + 0 + 0 + 0 + + + 11809 + 14 + 0 + 0 + 0 + + + 11810 + 13 + 0 + 0 + 0 + + + 11811 + 13 + 0 + 0 + 0 + + + 11812 + 13 + 0 + 0 + 0 + + + 11813 + 1 + 0 + 0 + 0 + + + 11814 + 20 + 0 + 0 + 0 + + + 11815 + 20 + 0 + 0 + 0 + + + 11816 + 20 + 0 + 0 + 0 + + + 11817 + 20 + 0 + 0 + 0 + + + 11818 + 20 + 0 + 0 + 0 + + + 11819 + 20 + 0 + 0 + 0 + + + 11820 + 20 + 0 + 0 + 0 + + + 11821 + 20 + 0 + 0 + 0 + + + 11822 + 20 + 0 + 0 + 0 + + + 11823 + 20 + 0 + 0 + 0 + + + 11824 + 20 + 0 + 0 + 0 + + + 11825 + 20 + 0 + 0 + 0 + + + 11826 + 20 + 0 + 0 + 0 + + + 11827 + 20 + 0 + 0 + 0 + + + 11828 + 20 + 0 + 0 + 0 + + + 11829 + 20 + 0 + 0 + 0 + + + 11830 + 20 + 0 + 0 + 0 + + + 11831 + 20 + 0 + 0 + 0 + + + 11832 + 20 + 0 + 0 + 0 + + + 11833 + 20 + 0 + 0 + 0 + + + 11834 + 20 + 0 + 0 + 0 + + + 11835 + 20 + 0 + 0 + 0 + + + 11836 + 20 + 0 + 0 + 0 + + + 11837 + 20 + 0 + 0 + 0 + + + 11838 + 20 + 0 + 0 + 0 + + + 11839 + 20 + 0 + 0 + 0 + + + 11840 + 20 + 0 + 0 + 0 + + + 11841 + 20 + 0 + 0 + 0 + + + 11842 + 20 + 0 + 0 + 0 + + + 11843 + 20 + 0 + 0 + 0 + + + 11844 + 20 + 0 + 0 + 0 + + + 11845 + 20 + 0 + 0 + 0 + + + 11846 + 20 + 0 + 0 + 0 + + + 11847 + 20 + 0 + 0 + 0 + + + 11848 + 20 + 0 + 0 + 0 + + + 11849 + 20 + 0 + 0 + 0 + + + 11850 + 20 + 0 + 0 + 0 + + + 11851 + 20 + 0 + 0 + 0 + + + 11852 + 20 + 0 + 0 + 0 + + + 11853 + 20 + 0 + 0 + 0 + + + 11854 + 20 + 0 + 0 + 0 + + + 11855 + 20 + 0 + 0 + 0 + + + 11856 + 20 + 0 + 0 + 0 + + + 11857 + 20 + 0 + 0 + 0 + + + 11858 + 20 + 0 + 0 + 0 + + + 11859 + 20 + 0 + 0 + 0 + + + 11860 + 20 + 0 + 0 + 0 + + + 11861 + 20 + 0 + 0 + 0 + + + 11862 + 20 + 0 + 0 + 0 + + + 11863 + 20 + 0 + 0 + 0 + + + 11864 + 20 + 0 + 0 + 0 + + + 11865 + 20 + 0 + 0 + 0 + + + 11866 + 20 + 0 + 0 + 0 + + + 11867 + 20 + 0 + 0 + 0 + + + 11868 + 20 + 0 + 0 + 0 + + + 11869 + 20 + 0 + 0 + 0 + + + 11870 + 20 + 0 + 0 + 0 + + + 11871 + 20 + 0 + 0 + 0 + + + 11872 + 20 + 0 + 0 + 0 + + + 11873 + 20 + 0 + 0 + 0 + + + 11874 + 20 + 0 + 0 + 0 + + + 11875 + 20 + 0 + 0 + 0 + + + 11876 + 20 + 0 + 0 + 0 + + + 11877 + 20 + 0 + 0 + 0 + + + 11878 + 20 + 0 + 0 + 0 + + + 11879 + 20 + 0 + 0 + 0 + + + 11880 + 20 + 0 + 0 + 0 + + + 11881 + 20 + 0 + 0 + 0 + + + 11882 + 20 + 0 + 0 + 0 + + + 11883 + 20 + 0 + 0 + 0 + + + 11884 + 20 + 0 + 0 + 0 + + + 11885 + 20 + 0 + 0 + 0 + + + 11886 + 20 + 0 + 0 + 0 + + + 11887 + 20 + 0 + 0 + 0 + + + 11888 + 20 + 0 + 0 + 0 + + + 11889 + 20 + 0 + 0 + 0 + + + 11890 + 20 + 0 + 0 + 0 + + + 11891 + 20 + 0 + 0 + 0 + + + 11892 + 20 + 0 + 0 + 0 + + + 11893 + 20 + 0 + 0 + 0 + + + 11894 + 20 + 0 + 0 + 0 + + + 11895 + 20 + 0 + 0 + 0 + + + 11896 + 20 + 0 + 0 + 0 + + + 11897 + 20 + 0 + 0 + 0 + + + 11898 + 20 + 0 + 0 + 0 + + + 11899 + 20 + 0 + 0 + 0 + + + 11900 + 20 + 0 + 0 + 0 + + + 11901 + 20 + 0 + 0 + 0 + + + 11902 + 20 + 0 + 0 + 0 + + + 11903 + 20 + 0 + 0 + 0 + + + 11904 + 20 + 0 + 0 + 0 + + + 11905 + 20 + 0 + 0 + 0 + + + 11906 + 20 + 0 + 0 + 0 + + + 11907 + 20 + 0 + 0 + 0 + + + 11908 + 20 + 0 + 0 + 0 + + + 11909 + 20 + 0 + 0 + 0 + + + 11910 + 20 + 0 + 0 + 0 + + + 11911 + 20 + 0 + 0 + 0 + + + 11912 + 20 + 0 + 0 + 0 + + + 11913 + 20 + 0 + 0 + 0 + + + 11914 + 20 + 0 + 0 + 0 + + + 11915 + 20 + 0 + 0 + 0 + + + 11916 + 20 + 0 + 0 + 0 + + + 11917 + 20 + 0 + 0 + 0 + + + 11918 + 20 + 0 + 0 + 0 + + + 11919 + 20 + 0 + 0 + 0 + + + 11920 + 20 + 0 + 0 + 0 + + + 11921 + 20 + 0 + 0 + 0 + + + 11922 + 20 + 0 + 0 + 0 + + + 11923 + 20 + 0 + 0 + 0 + + + 11924 + 20 + 0 + 0 + 0 + + + 11925 + 20 + 0 + 0 + 0 + + + 11926 + 20 + 0 + 0 + 0 + + + 11927 + 20 + 0 + 0 + 0 + + + 11928 + 20 + 0 + 0 + 0 + + + 11929 + 20 + 0 + 0 + 0 + + + 11930 + 20 + 0 + 0 + 0 + + + 11931 + 20 + 0 + 0 + 0 + + + 11932 + 20 + 0 + 0 + 0 + + + 11933 + 20 + 0 + 0 + 0 + + + 11934 + 20 + 0 + 0 + 0 + + + 11935 + 20 + 0 + 0 + 0 + + + 11936 + 20 + 0 + 0 + 0 + + + 11937 + 20 + 0 + 0 + 0 + + + 11938 + 20 + 0 + 0 + 0 + + + 11939 + 20 + 0 + 0 + 0 + + + 11940 + 20 + 0 + 0 + 0 + + + 11941 + 20 + 0 + 0 + 0 + + + 11942 + 20 + 0 + 0 + 0 + + + 11943 + 20 + 0 + 0 + 0 + + + 11944 + 20 + 0 + 0 + 0 + + + 11945 + 20 + 0 + 0 + 0 + + + 11946 + 20 + 0 + 0 + 0 + + + 11947 + 20 + 0 + 0 + 0 + + + 11948 + 1 + 0 + 0 + 0 + + + 11949 + 1 + 0 + 0 + 0 + + + 11950 + 1 + 0 + 0 + 0 + + + 11951 + 1 + 0 + 0 + 0 + + + 11952 + 1 + 0 + 0 + 0 + + + 11953 + 1 + 0 + 0 + 0 + + + 11954 + 1 + 0 + 0 + 0 + + + 11955 + 1 + 0 + 0 + 0 + + + 11956 + 1 + 0 + 0 + 0 + + + 11957 + 1 + 0 + 0 + 0 + + + 11958 + 1 + 0 + 0 + 0 + + + 11959 + 1 + 0 + 0 + 0 + + + 11960 + 20 + 0 + 0 + 0 + + + 11961 + 20 + 0 + 0 + 0 + + + 11962 + 20 + 0 + 0 + 0 + + + 11963 + 20 + 0 + 0 + 0 + + + 11964 + 1 + 0 + 0 + 0 + + + 11965 + 1 + 0 + 0 + 0 + + + 11966 + 1 + 0 + 0 + 0 + + + 11967 + 20 + 0 + 0 + 0 + + + 11968 + 20 + 0 + 0 + 0 + + + 11969 + 100 + 0 + 0 + 0 + + + 11970 + 1 + 0 + 0 + 0 + + + 11971 + 1 + 0 + 0 + 0 + + + 11972 + 1 + 0 + 0 + 0 + + + 11973 + 1 + 0 + 0 + 0 + + + 11974 + 1 + 0 + 0 + 0 + + + 11975 + 1 + 0 + 0 + 0 + + + 11976 + 1 + 0 + 0 + 0 + + + 11977 + 1 + 0 + 0 + 0 + + + 11978 + 1 + 0 + 0 + 0 + + + 11979 + 1 + 0 + 0 + 0 + + + 11980 + 1 + 0 + 0 + 0 + + + 11981 + 1 + 0 + 0 + 0 + + + 11982 + 1 + 0 + 0 + 0 + + + 11983 + 1 + 0 + 0 + 0 + + + 11984 + 1 + 0 + 0 + 0 + + + 11985 + 1 + 0 + 0 + 0 + + + 11986 + 1 + 0 + 0 + 0 + + + 11987 + 1 + 0 + 0 + 0 + + + 11988 + 1 + 0 + 0 + 0 + + + 11989 + 1 + 0 + 0 + 0 + + + 11990 + 1 + 0 + 0 + 0 + + + 11991 + 1 + 0 + 0 + 0 + + + 11992 + 1 + 0 + 0 + 0 + + + 11993 + 1 + 0 + 0 + 0 + + + 11994 + 1 + 0 + 0 + 0 + + + 11995 + 1 + 0 + 0 + 0 + + + 11996 + 1 + 0 + 0 + 0 + + + 11997 + 1 + 0 + 0 + 0 + + + 11998 + 1 + 0 + 0 + 0 + + + 11999 + 1 + 0 + 0 + 0 + + + 12000 + 1 + 0 + 0 + 0 + + + 12001 + 1 + 0 + 0 + 0 + + + 12002 + 1 + 0 + 0 + 0 + + + 12003 + 1 + 0 + 0 + 0 + + + 12004 + 1 + 0 + 0 + 0 + + + 12005 + 1 + 0 + 0 + 0 + + + 12006 + 1 + 0 + 0 + 0 + + + 12007 + 724 + 0 + 0 + 0 + + + 12008 + 724 + 0 + 0 + 0 + + + 12009 + 599 + 0 + 0 + 0 + + + 12010 + 599 + 0 + 0 + 0 + + + 12011 + 4624 + 0 + 0 + 0 + + + 12012 + 4624 + 0 + 0 + 0 + + + 12013 + 3524 + 0 + 0 + 0 + + + 12014 + 3524 + 0 + 0 + 0 + + + 12015 + 3324 + 0 + 0 + 0 + + + 12016 + 3324 + 0 + 0 + 0 + + + 12017 + 449 + 0 + 0 + 0 + + + 12018 + 449 + 0 + 0 + 0 + + + 12019 + 649 + 0 + 0 + 0 + + + 12020 + 649 + 0 + 0 + 0 + + + 12021 + 2224 + 0 + 0 + 0 + + + 12022 + 2224 + 0 + 0 + 0 + + + 12023 + 4024 + 0 + 0 + 0 + + + 12024 + 4024 + 0 + 0 + 0 + + + 12025 + 3624 + 0 + 0 + 0 + + + 12026 + 3624 + 0 + 0 + 0 + + + 12027 + 4199 + 0 + 0 + 0 + + + 12028 + 4199 + 0 + 0 + 0 + + + 12029 + 3174 + 0 + 0 + 0 + + + 12030 + 3174 + 0 + 0 + 0 + + + 12031 + 449 + 0 + 0 + 0 + + + 12032 + 449 + 0 + 0 + 0 + + + 12033 + 3674 + 0 + 0 + 0 + + + 12034 + 3674 + 0 + 0 + 0 + + + 12035 + 3074 + 0 + 0 + 0 + + + 12036 + 3074 + 0 + 0 + 0 + + + 12037 + 3399 + 0 + 0 + 0 + + + 12038 + 3399 + 0 + 0 + 0 + + + 12039 + 3924 + 0 + 0 + 0 + + + 12040 + 3924 + 0 + 0 + 0 + + + 12041 + 2624 + 0 + 0 + 0 + + + 12042 + 2624 + 0 + 0 + 0 + + + 12043 + 624 + 0 + 0 + 0 + + + 12044 + 624 + 0 + 0 + 0 + + + 12045 + 3624 + 0 + 0 + 0 + + + 12046 + 3624 + 0 + 0 + 0 + + + 12047 + 599 + 0 + 0 + 0 + + + 12048 + 599 + 0 + 0 + 0 + + + 12049 + 1549 + 0 + 0 + 0 + + + 12050 + 1549 + 0 + 0 + 0 + + + 12051 + 3024 + 0 + 0 + 0 + + + 12052 + 3024 + 0 + 0 + 0 + + + 12053 + 2449 + 0 + 0 + 0 + + + 12054 + 2449 + 0 + 0 + 0 + + + 12055 + 1849 + 0 + 0 + 0 + + + 12056 + 1849 + 0 + 0 + 0 + + + 12057 + 774 + 0 + 0 + 0 + + + 12058 + 774 + 0 + 0 + 0 + + + 12059 + 624 + 0 + 0 + 0 + + + 12060 + 624 + 0 + 0 + 0 + + + 12061 + 3349 + 0 + 0 + 0 + + + 12062 + 3349 + 0 + 0 + 0 + + + 12063 + 1699 + 0 + 0 + 0 + + + 12064 + 1699 + 0 + 0 + 0 + + + 12065 + 2524 + 0 + 0 + 0 + + + 12066 + 2524 + 0 + 0 + 0 + + + 12067 + 2299 + 0 + 0 + 0 + + + 12068 + 2299 + 0 + 0 + 0 + + + 12069 + 4574 + 0 + 0 + 0 + + + 12070 + 4574 + 0 + 0 + 0 + + + 12071 + 2374 + 0 + 0 + 0 + + + 12072 + 2374 + 0 + 0 + 0 + + + 12073 + 2974 + 0 + 0 + 0 + + + 12074 + 2974 + 0 + 0 + 0 + + + 12075 + 3549 + 0 + 0 + 0 + + + 12076 + 3549 + 0 + 0 + 0 + + + 12077 + 3949 + 0 + 0 + 0 + + + 12078 + 3949 + 0 + 0 + 0 + + + 12079 + 4224 + 0 + 0 + 0 + + + 12080 + 4224 + 0 + 0 + 0 + + + 12081 + 4024 + 0 + 0 + 0 + + + 12082 + 4024 + 0 + 0 + 0 + + + 12083 + 449 + 0 + 0 + 0 + + + 12084 + 449 + 0 + 0 + 0 + + + 12085 + 3949 + 0 + 0 + 0 + + + 12086 + 3949 + 0 + 0 + 0 + + + 12087 + 699 + 0 + 0 + 0 + + + 12088 + 699 + 0 + 0 + 0 + + + 12089 + 5499 + 0 + 0 + 0 + + + 12090 + 5499 + 0 + 0 + 0 + + + 12091 + 1599 + 0 + 0 + 0 + + + 12092 + 1599 + 0 + 0 + 0 + + + 12093 + 5699 + 0 + 0 + 0 + + + 12094 + 5699 + 0 + 0 + 0 + + + 12095 + 2624 + 0 + 0 + 0 + + + 12096 + 2624 + 0 + 0 + 0 + + + 12097 + 2624 + 0 + 0 + 0 + + + 12098 + 2624 + 0 + 0 + 0 + + + 12099 + 2624 + 0 + 0 + 0 + + + 12100 + 2624 + 0 + 0 + 0 + + + 12101 + 2624 + 0 + 0 + 0 + + + 12102 + 2624 + 0 + 0 + 0 + + + 12103 + 2624 + 0 + 0 + 0 + + + 12104 + 2624 + 0 + 0 + 0 + + + 12105 + 2624 + 0 + 0 + 0 + + + 12106 + 2624 + 0 + 0 + 0 + + + 12107 + 2624 + 0 + 0 + 0 + + + 12108 + 2624 + 0 + 0 + 0 + + + 12109 + 100 + 0 + 0 + 0 + + + 12110 + 100 + 0 + 0 + 0 + + + 12111 + 1000 + 0 + 0 + 0 + + + 12112 + 1000 + 0 + 0 + 0 + + + 12113 + 1000 + 0 + 0 + 0 + + + 12114 + 1000 + 0 + 0 + 0 + + + 12115 + 1000 + 0 + 0 + 0 + + + 12116 + 1000 + 0 + 0 + 0 + + + 12117 + 1000 + 0 + 0 + 0 + + + 12118 + 1000 + 0 + 0 + 0 + + + 12119 + 1000 + 0 + 0 + 0 + + + 12120 + 1000 + 0 + 0 + 0 + + + 12121 + 1000 + 0 + 0 + 0 + + + 12122 + 1000 + 0 + 0 + 0 + + + 12123 + 699 + 0 + 0 + 0 + + + 12124 + 699 + 0 + 0 + 0 + + + 12125 + 10 + 0 + 0 + 0 + + + 12126 + 10 + 0 + 0 + 0 + + + 12127 + 10 + 0 + 0 + 0 + + + 12128 + 10 + 0 + 0 + 0 + + + 12129 + 1 + 0 + 0 + 0 + + + 12130 + 10 + 0 + 0 + 0 + + + 12131 + 10 + 0 + 0 + 0 + + + 12132 + 200 + 0 + 0 + 0 + + + 12133 + 200 + 0 + 0 + 0 + + + 12134 + 30 + 0 + 0 + 0 + + + 12135 + 30 + 0 + 0 + 0 + + + 12136 + 20 + 0 + 0 + 0 + + + 12137 + 20 + 0 + 0 + 0 + + + 12138 + 10 + 0 + 0 + 0 + + + 12139 + 10 + 0 + 0 + 0 + + + 12140 + 190 + 0 + 0 + 0 + + + 12141 + 190 + 0 + 0 + 0 + + + 12142 + 152 + 0 + 0 + 0 + + + 12143 + 152 + 0 + 0 + 0 + + + 12144 + 114 + 0 + 0 + 0 + + + 12145 + 114 + 0 + 0 + 0 + + + 12146 + 76 + 0 + 0 + 0 + + + 12147 + 76 + 0 + 0 + 0 + + + 12148 + 20 + 0 + 0 + 0 + + + 12149 + 1 + 0 + 0 + 0 + + + 12150 + 1 + 0 + 0 + 0 + + + 12151 + 1 + 0 + 0 + 0 + + + 12152 + 1 + 0 + 0 + 0 + + + 12153 + 50 + 0 + 0 + 0 + + + 12154 + 50 + 0 + 0 + 0 + + + 12155 + 1 + 0 + 0 + 0 + + + 12156 + 5 + 0 + 0 + 0 + + + 12157 + 5 + 0 + 0 + 0 + + + 12158 + 100 + 0 + 0 + 0 + + + 12159 + 100 + 0 + 0 + 0 + + + 12160 + 100 + 0 + 0 + 0 + + + 12161 + 1 + 0 + 0 + 0 + + + 12162 + 1 + 0 + 0 + 0 + + + 12163 + 100 + 0 + 0 + 0 + + + 12164 + 1 + 0 + 0 + 0 + + + 12165 + 1 + 0 + 0 + 0 + + + 12166 + 1 + 0 + 0 + 0 + + + 12167 + 1 + 0 + 0 + 0 + + + 12168 + 1 + 0 + 0 + 0 + + + 12169 + 99000 + 0 + 0 + 0 + + + 12170 + 99000 + 0 + 0 + 0 + + + 12171 + 1 + 0 + 0 + 0 + + + 12172 + 24 + 0 + 0 + 0 + + + 12173 + 24 + 0 + 0 + 0 + + + 12174 + 1 + 0 + 0 + 0 + + + 12175 + 1 + 0 + 0 + 0 + + + 12176 + 18 + 0 + 0 + 0 + + + 12177 + 1 + 0 + 0 + 0 + + + 12178 + 1 + 0 + 0 + 0 + + + 12179 + 1 + 0 + 0 + 0 + + + 12180 + 1 + 0 + 0 + 0 + + + 12181 + 23 + 0 + 0 + 0 + + + 12182 + 23 + 0 + 0 + 0 + + + 12183 + 25 + 0 + 0 + 0 + + + 12184 + 1 + 0 + 0 + 0 + + + 12185 + 1 + 0 + 0 + 0 + + + 12186 + 1 + 0 + 0 + 0 + + + 12187 + 1 + 0 + 0 + 0 + + + 12188 + 1 + 0 + 0 + 0 + + + 12189 + 1 + 0 + 0 + 0 + + + 12190 + 1 + 0 + 0 + 0 + + + 12191 + 1 + 0 + 0 + 0 + + + 12192 + 1 + 0 + 0 + 0 + + + 12193 + 1 + 0 + 0 + 0 + + + 12194 + 1 + 0 + 0 + 0 + + + 12195 + 1 + 0 + 0 + 0 + + + 12196 + 1 + 0 + 0 + 0 + + + 12197 + 1 + 0 + 0 + 0 + + + 12198 + 1 + 0 + 0 + 0 + + + 12199 + 1 + 0 + 0 + 0 + + + 12200 + 1 + 0 + 0 + 0 + + + 12201 + 1 + 0 + 0 + 0 + + + 12202 + 1 + 0 + 0 + 0 + + + 12203 + 1 + 0 + 0 + 0 + + + 12204 + 100 + 0 + 0 + 0 + + + 12205 + 100 + 0 + 0 + 0 + + + 12206 + 1 + 0 + 0 + 0 + + + 12207 + 200 + 0 + 0 + 0 + + + 12208 + 200 + 0 + 0 + 0 + + + 12209 + 1 + 0 + 0 + 0 + + + 12210 + 400 + 0 + 0 + 0 + + + 12211 + 400 + 0 + 0 + 0 + + + 12212 + 1 + 0 + 0 + 0 + + + 12213 + 400 + 0 + 0 + 0 + + + 12214 + 400 + 0 + 0 + 0 + + + 12215 + 1 + 0 + 0 + 0 + + + 12216 + 400 + 0 + 0 + 0 + + + 12217 + 400 + 0 + 0 + 0 + + + 12218 + 1 + 0 + 0 + 0 + + + 12219 + 400 + 0 + 0 + 0 + + + 12220 + 400 + 0 + 0 + 0 + + + 12221 + 1 + 0 + 0 + 0 + + + 12222 + 400 + 0 + 0 + 0 + + + 12223 + 400 + 0 + 0 + 0 + + + 12224 + 1 + 0 + 0 + 0 + + + 12225 + 1 + 0 + 0 + 0 + + + 12226 + 1 + 0 + 0 + 0 + + + 12227 + 1 + 0 + 0 + 0 + + + 12228 + 1 + 0 + 0 + 0 + + + 12229 + 1 + 0 + 0 + 0 + + + 12230 + 1 + 0 + 0 + 0 + + + 12231 + 1 + 0 + 0 + 0 + + + 12232 + 1 + 0 + 0 + 0 + + + 12233 + 1 + 0 + 0 + 0 + + + 12234 + 1 + 0 + 0 + 0 + + + 12235 + 1 + 0 + 0 + 0 + + + 12236 + 1 + 0 + 0 + 0 + + + 12237 + 1 + 0 + 0 + 0 + + + 12238 + 1 + 0 + 0 + 0 + + + 12239 + 1 + 0 + 0 + 0 + + + 12240 + 1 + 0 + 0 + 0 + + + 12241 + 1 + 0 + 0 + 0 + + + 12242 + 1 + 0 + 0 + 0 + + + 12243 + 1 + 0 + 0 + 0 + + + 12244 + 1 + 0 + 0 + 0 + + + 12245 + 1 + 0 + 0 + 0 + + + 12246 + 1 + 0 + 0 + 0 + + + 12247 + 1 + 0 + 0 + 0 + + + 12248 + 1 + 0 + 0 + 0 + + + 12249 + 1 + 0 + 0 + 0 + + + 12250 + 1 + 0 + 0 + 0 + + + 12251 + 1 + 0 + 0 + 0 + + + 12252 + 1 + 0 + 0 + 0 + + + 12253 + 1 + 0 + 0 + 0 + + + 12254 + 1 + 0 + 0 + 0 + + + 12255 + 1 + 0 + 0 + 0 + + + 12256 + 1 + 0 + 0 + 0 + + + 12257 + 1 + 0 + 0 + 0 + + + 12258 + 1 + 0 + 0 + 0 + + + 12259 + 1 + 0 + 0 + 0 + + + 12260 + 1 + 0 + 0 + 0 + + + 12261 + 1 + 0 + 0 + 0 + + + 12262 + 1 + 0 + 0 + 0 + + + 12263 + 1 + 0 + 0 + 0 + + + 12264 + 1 + 0 + 0 + 0 + + + 12265 + 1 + 0 + 0 + 0 + + + 12266 + 1 + 0 + 0 + 0 + + + 12267 + 1 + 0 + 0 + 0 + + + 12268 + 1 + 0 + 0 + 0 + + + 12269 + 1 + 0 + 0 + 0 + + + 12270 + 1 + 0 + 0 + 0 + + + 12271 + 1 + 0 + 0 + 0 + + + 12272 + 1 + 0 + 0 + 0 + + + 12273 + 1 + 0 + 0 + 0 + + + 12274 + 1 + 0 + 0 + 0 + + + 12275 + 1 + 0 + 0 + 0 + + + 12276 + 1 + 0 + 0 + 0 + + + 12277 + 1 + 0 + 0 + 0 + + + 12278 + 1 + 0 + 0 + 0 + + + 12279 + 1 + 0 + 0 + 0 + + + 12280 + 1 + 0 + 0 + 0 + + + 12281 + 1 + 0 + 0 + 0 + + + 12282 + 1 + 0 + 0 + 0 + + + 12283 + 1 + 0 + 0 + 0 + + + 12284 + 1 + 0 + 0 + 0 + + + 12285 + 1 + 0 + 0 + 0 + + + 12286 + 1 + 0 + 0 + 0 + + + 12287 + 1 + 0 + 0 + 0 + + + 12288 + 1 + 0 + 0 + 0 + + + 12289 + 1 + 0 + 0 + 0 + + + 12290 + 1 + 0 + 0 + 0 + + + 12291 + 1 + 0 + 0 + 0 + + + 12292 + 1 + 0 + 0 + 0 + + + 12293 + 1 + 0 + 0 + 0 + + + 12294 + 1 + 0 + 0 + 0 + + + 12295 + 1 + 0 + 0 + 0 + + + 12296 + 1 + 0 + 0 + 0 + + + 12297 + 1 + 0 + 0 + 0 + + + 12298 + 1 + 0 + 0 + 0 + + + 12299 + 1 + 0 + 0 + 0 + + + 12300 + 1 + 0 + 0 + 0 + + + 12301 + 1 + 0 + 0 + 0 + + + 12302 + 1 + 0 + 0 + 0 + + + 12303 + 1 + 0 + 0 + 0 + + + 12304 + 1 + 0 + 0 + 0 + + + 12305 + 1 + 0 + 0 + 0 + + + 12306 + 1 + 0 + 0 + 0 + + + 12307 + 1 + 0 + 0 + 0 + + + 12308 + 1 + 0 + 0 + 0 + + + 12309 + 1 + 0 + 0 + 0 + + + 12310 + 1 + 0 + 0 + 0 + + + 12311 + 1 + 0 + 0 + 0 + + + 12312 + 1 + 0 + 0 + 0 + + + 12313 + 1 + 0 + 0 + 0 + + + 12314 + 1 + 0 + 0 + 0 + + + 12315 + 1 + 0 + 0 + 0 + + + 12316 + 1 + 0 + 0 + 0 + + + 12317 + 1 + 0 + 0 + 0 + + + 12318 + 1 + 0 + 0 + 0 + + + 12319 + 1 + 0 + 0 + 0 + + + 12320 + 1 + 0 + 0 + 0 + + + 12321 + 1 + 0 + 0 + 0 + + + 12322 + 1 + 0 + 0 + 0 + + + 12323 + 1 + 0 + 0 + 0 + + + 12324 + 1 + 0 + 0 + 0 + + + 12325 + 1 + 0 + 0 + 0 + + + 12326 + 1 + 0 + 0 + 0 + + + 12327 + 1 + 0 + 0 + 0 + + + 12328 + 1 + 0 + 0 + 0 + + + 12329 + 1 + 0 + 0 + 0 + + + 12330 + 1 + 0 + 0 + 0 + + + 12331 + 1 + 0 + 0 + 0 + + + 12332 + 1 + 0 + 0 + 0 + + + 12333 + 1 + 0 + 0 + 0 + + + 12334 + 1 + 0 + 0 + 0 + + + 12335 + 1 + 0 + 0 + 0 + + + 12336 + 1 + 0 + 0 + 0 + + + 12337 + 1 + 0 + 0 + 0 + + + 12338 + 1 + 0 + 0 + 0 + + + 12339 + 1 + 0 + 0 + 0 + + + 12340 + 1 + 0 + 0 + 0 + + + 12341 + 1 + 0 + 0 + 0 + + + 12342 + 1 + 0 + 0 + 0 + + + 12343 + 1 + 0 + 0 + 0 + + + 12344 + 1 + 0 + 0 + 0 + + + 12345 + 1 + 0 + 0 + 0 + + + 12346 + 1 + 0 + 0 + 0 + + + 12347 + 1 + 0 + 0 + 0 + + + 12348 + 1 + 0 + 0 + 0 + + + 12349 + 1 + 0 + 0 + 0 + + + 12350 + 1 + 0 + 0 + 0 + + + 12351 + 1 + 0 + 0 + 0 + + + 12352 + 1 + 0 + 0 + 0 + + + 12353 + 1 + 0 + 0 + 0 + + + 12354 + 1 + 0 + 0 + 0 + + + 12355 + 1 + 0 + 0 + 0 + + + 12356 + 1 + 0 + 0 + 0 + + + 12357 + 1 + 0 + 0 + 0 + + + 12358 + 1 + 0 + 0 + 0 + + + 12359 + 1 + 0 + 0 + 0 + + + 12360 + 1 + 0 + 0 + 0 + + + 12361 + 1 + 0 + 0 + 0 + + + 12362 + 1 + 0 + 0 + 0 + + + 12363 + 1 + 0 + 0 + 0 + + + 12364 + 1 + 0 + 0 + 0 + + + 12365 + 1 + 0 + 0 + 0 + + + 12366 + 1 + 0 + 0 + 0 + + + 12367 + 1 + 0 + 0 + 0 + + + 12368 + 1 + 0 + 0 + 0 + + + 12369 + 1 + 0 + 0 + 0 + + + 12370 + 1 + 0 + 0 + 0 + + + 12371 + 1 + 0 + 0 + 0 + + + 12372 + 1 + 0 + 0 + 0 + + + 12373 + 1 + 0 + 0 + 0 + + + 12374 + 1 + 0 + 0 + 0 + + + 12375 + 1 + 0 + 0 + 0 + + + 12376 + 1 + 0 + 0 + 0 + + + 12377 + 1 + 0 + 0 + 0 + + + 12378 + 1 + 0 + 0 + 0 + + + 12379 + 1 + 0 + 0 + 0 + + + 12380 + 1 + 0 + 0 + 0 + + + 12381 + 1 + 0 + 0 + 0 + + + 12382 + 1 + 0 + 0 + 0 + + + 12383 + 1 + 0 + 0 + 0 + + + 12384 + 1 + 0 + 0 + 0 + + + 12385 + 1 + 0 + 0 + 0 + + + 12386 + 1 + 0 + 0 + 0 + + + 12387 + 1 + 0 + 0 + 0 + + + 12388 + 1 + 0 + 0 + 0 + + + 12389 + 1 + 0 + 0 + 0 + + + 12390 + 1 + 0 + 0 + 0 + + + 12391 + 1 + 0 + 0 + 0 + + + 12392 + 1 + 0 + 0 + 0 + + + 12393 + 1 + 0 + 0 + 0 + + + 12394 + 1 + 0 + 0 + 0 + + + 12395 + 1 + 0 + 0 + 0 + + + 12396 + 1 + 0 + 0 + 0 + + + 12397 + 1 + 0 + 0 + 0 + + + 12398 + 1 + 0 + 0 + 0 + + + 12399 + 1 + 0 + 0 + 0 + + + 12400 + 1 + 0 + 0 + 0 + + + 12401 + 1 + 0 + 0 + 0 + + + 12402 + 1 + 0 + 0 + 0 + + + 12403 + 1 + 0 + 0 + 0 + + + 12404 + 1 + 0 + 0 + 0 + + + 12405 + 1 + 0 + 0 + 0 + + + 12406 + 1 + 0 + 0 + 0 + + + 12407 + 1 + 0 + 0 + 0 + + + 12408 + 1 + 0 + 0 + 0 + + + 12409 + 1 + 0 + 0 + 0 + + + 12410 + 1 + 0 + 0 + 0 + + + 12411 + 1 + 0 + 0 + 0 + + + 12412 + 1 + 0 + 0 + 0 + + + 12413 + 1 + 0 + 0 + 0 + + + 12414 + 1 + 0 + 0 + 0 + + + 12415 + 1 + 0 + 0 + 0 + + + 12416 + 1 + 0 + 0 + 0 + + + 12417 + 1 + 0 + 0 + 0 + + + 12418 + 1 + 0 + 0 + 0 + + + 12419 + 1 + 0 + 0 + 0 + + + 12420 + 1 + 0 + 0 + 0 + + + 12421 + 1 + 0 + 0 + 0 + + + 12422 + 237 + 0 + 0 + 0 + + + 12423 + 367 + 0 + 0 + 0 + + + 12424 + 314 + 0 + 0 + 0 + + + 12425 + 59 + 0 + 0 + 0 + + + 12426 + 262 + 0 + 0 + 0 + + + 12427 + 339 + 0 + 0 + 0 + + + 12428 + 62 + 0 + 0 + 0 + + + 12429 + 222 + 0 + 0 + 0 + + + 12430 + 229 + 0 + 0 + 0 + + + 12431 + 69 + 0 + 0 + 0 + + + 12432 + 184 + 0 + 0 + 0 + + + 12433 + 252 + 0 + 0 + 0 + + + 12434 + 392 + 0 + 0 + 0 + + + 12435 + 569 + 0 + 0 + 0 + + + 12436 + 332 + 0 + 0 + 0 + + + 12437 + 549 + 0 + 0 + 0 + + + 12438 + 317 + 0 + 0 + 0 + + + 12439 + 44 + 0 + 0 + 0 + + + 12440 + 159 + 0 + 0 + 0 + + + 12441 + 72 + 0 + 0 + 0 + + + 12442 + 362 + 0 + 0 + 0 + + + 12443 + 227 + 0 + 0 + 0 + + + 12444 + 334 + 0 + 0 + 0 + + + 12445 + 62 + 0 + 0 + 0 + + + 12446 + 169 + 0 + 0 + 0 + + + 12447 + 244 + 0 + 0 + 0 + + + 12448 + 302 + 0 + 0 + 0 + + + 12449 + 457 + 0 + 0 + 0 + + + 12450 + 462 + 0 + 0 + 0 + + + 12451 + 77 + 0 + 0 + 0 + + + 12452 + 69 + 0 + 0 + 0 + + + 12453 + 419 + 0 + 0 + 0 + + + 12454 + 307 + 0 + 0 + 0 + + + 12455 + 402 + 0 + 0 + 0 + + + 12456 + 44 + 0 + 0 + 0 + + + 12457 + 352 + 0 + 0 + 0 + + + 12458 + 262 + 0 + 0 + 0 + + + 12459 + 64 + 0 + 0 + 0 + + + 12460 + 154 + 0 + 0 + 0 + + + 12461 + 297 + 0 + 0 + 0 + + + 12462 + 354 + 0 + 0 + 0 + + + 12463 + 394 + 0 + 0 + 0 + + + 12464 + 422 + 0 + 0 + 0 + + + 12465 + 402 + 0 + 0 + 0 + + + 12466 + 44 + 0 + 0 + 0 + + + 12467 + 362 + 0 + 0 + 0 + + + 12468 + 394 + 0 + 0 + 0 + + + 12469 + 1 + 0 + 0 + 0 + + + 12470 + 1 + 0 + 0 + 0 + + + 12471 + 1 + 0 + 0 + 0 + + + 12472 + 1 + 0 + 0 + 0 + + + 12473 + 1 + 0 + 0 + 0 + + + 12474 + 1 + 0 + 0 + 0 + + + 12475 + 1 + 0 + 0 + 0 + + + 12476 + 1 + 0 + 0 + 0 + + + 12477 + 1 + 0 + 0 + 0 + + + 12478 + 1 + 0 + 0 + 0 + + + 12479 + 1 + 0 + 0 + 0 + + + 12480 + 1 + 0 + 0 + 0 + + + 12481 + 1 + 0 + 0 + 0 + + + 12482 + 1 + 0 + 0 + 0 + + + 12483 + 1 + 0 + 0 + 0 + + + 12484 + 1 + 0 + 0 + 0 + + + 12485 + 1 + 0 + 0 + 0 + + + 12486 + 1 + 0 + 0 + 0 + + + 12487 + 1 + 0 + 0 + 0 + + + 12488 + 1 + 0 + 0 + 0 + + + 12489 + 1 + 0 + 0 + 0 + + + 12490 + 1 + 0 + 0 + 0 + + + 12491 + 1 + 0 + 0 + 0 + + + 12492 + 1 + 0 + 0 + 0 + + + 12493 + 1 + 0 + 0 + 0 + + + 12494 + 1 + 0 + 0 + 0 + + + 12495 + 1 + 0 + 0 + 0 + + + 12496 + 1 + 0 + 0 + 0 + + + 12497 + 1 + 0 + 0 + 0 + + + 12498 + 1 + 0 + 0 + 0 + + + 12499 + 1 + 0 + 0 + 0 + + + 12500 + 1 + 0 + 0 + 0 + + + 12501 + 1 + 0 + 0 + 0 + + + 12502 + 1 + 0 + 0 + 0 + + + 12503 + 1 + 0 + 0 + 0 + + + 12504 + 1 + 0 + 0 + 0 + + + 12505 + 1 + 0 + 0 + 0 + + + 12506 + 1 + 0 + 0 + 0 + + + 12507 + 1 + 0 + 0 + 0 + + + 12508 + 1 + 0 + 0 + 0 + + + 12509 + 1 + 0 + 0 + 0 + + + 12510 + 1 + 0 + 0 + 0 + + + 12511 + 1 + 0 + 0 + 0 + + + 12512 + 1 + 0 + 0 + 0 + + + 12513 + 1 + 0 + 0 + 0 + + + 12514 + 1 + 0 + 0 + 0 + + + 12515 + 1 + 0 + 0 + 0 + + + 12516 + 1 + 0 + 0 + 0 + + + 12517 + 1 + 0 + 0 + 0 + + + 12518 + 1 + 0 + 0 + 0 + + + 12519 + 1 + 0 + 0 + 0 + + + 12520 + 1 + 0 + 0 + 0 + + + 12521 + 1 + 0 + 0 + 0 + + + 12522 + 1 + 0 + 0 + 0 + + + 12523 + 1 + 0 + 0 + 0 + + + 12524 + 99000 + 0 + 0 + 0 + + + 12525 + 1 + 0 + 0 + 0 + + + 12526 + 1 + 0 + 0 + 0 + + + 12527 + 1 + 0 + 0 + 0 + + + 12528 + 1 + 0 + 0 + 0 + + + 12529 + 1 + 0 + 0 + 0 + + + 12530 + 1 + 0 + 0 + 0 + + + 12531 + 3149 + 0 + 0 + 0 + + + 12532 + 3149 + 0 + 0 + 0 + + + 12533 + 59 + 0 + 0 + 0 + + + 12535 + 500 + 0 + 0 + 0 + + + 12536 + 500 + 0 + 0 + 0 + + + 12537 + 1 + 0 + 0 + 0 + + + 12538 + 1 + 0 + 0 + 0 + + + 12539 + 200 + 0 + 0 + 0 + + + 12540 + 1 + 0 + 0 + 0 + + + 12541 + 1 + 0 + 0 + 0 + + + 12542 + 1 + 0 + 0 + 0 + + + 12543 + 1 + 0 + 0 + 0 + + + 12544 + 1 + 0 + 0 + 0 + + + 12545 + 1 + 0 + 0 + 0 + + + 12546 + 1 + 0 + 0 + 0 + + + 12547 + 1 + 0 + 0 + 0 + + + 12548 + 1 + 0 + 0 + 0 + + + 12549 + 1 + 0 + 0 + 0 + + + 12550 + 1 + 0 + 0 + 0 + + + 12551 + 1 + 0 + 0 + 0 + + + 12552 + 1 + 0 + 0 + 0 + + + 12553 + 1 + 0 + 0 + 0 + + + 12554 + 1 + 0 + 0 + 0 + + + 12555 + 1 + 0 + 0 + 0 + + + 12556 + 1 + 0 + 0 + 0 + + + 12557 + 1 + 0 + 0 + 0 + + + 12558 + 10 + 0 + 0 + 0 + + + 12559 + 60 + 0 + 0 + 0 + + + 12560 + 60 + 0 + 0 + 0 + + + 12561 + 60 + 0 + 0 + 0 + + + 12562 + 60 + 0 + 0 + 0 + + + 12563 + 60 + 0 + 0 + 0 + + + 12564 + 60 + 0 + 0 + 0 + + + 12565 + 60 + 0 + 0 + 0 + + + 12566 + 60 + 0 + 0 + 0 + + + 12567 + 60 + 0 + 0 + 0 + + + 12568 + 100 + 0 + 0 + 0 + + + 12569 + 100 + 0 + 0 + 0 + + + 12570 + 180 + 0 + 0 + 0 + + + 12571 + 180 + 0 + 0 + 0 + + + 12572 + 4 + 0 + 0 + 0 + + + 12573 + 4 + 0 + 0 + 0 + + + 12574 + 4 + 0 + 0 + 0 + + + 12575 + 4 + 0 + 0 + 0 + + + 12576 + 4 + 0 + 0 + 0 + + + 12577 + 4 + 0 + 0 + 0 + + + 12578 + 4 + 0 + 0 + 0 + + + 12579 + 4 + 0 + 0 + 0 + + + 12580 + 4 + 0 + 0 + 0 + + + 12581 + 126 + 0 + 0 + 0 + + + 12582 + 126 + 0 + 0 + 0 + + + 12583 + 252 + 0 + 0 + 0 + + + 12584 + 252 + 0 + 0 + 0 + + + 12585 + 1 + 0 + 0 + 0 + + + 12586 + 1 + 0 + 0 + 0 + + + 12587 + 1 + 0 + 0 + 0 + + + 12588 + 2 + 0 + 0 + 0 + + + 12589 + 2 + 0 + 0 + 0 + + + 12590 + 2 + 0 + 0 + 0 + + + 12591 + 2 + 0 + 0 + 0 + + + 12592 + 60 + 0 + 0 + 0 + + + 12593 + 1 + 0 + 0 + 0 + + + 12594 + 1 + 0 + 0 + 0 + + + 12595 + 1 + 0 + 0 + 0 + + + 12596 + 1 + 0 + 0 + 0 + + + 12597 + 1 + 0 + 0 + 0 + + + 12598 + 1 + 0 + 0 + 0 + + + 12599 + 1 + 0 + 0 + 0 + + + 12600 + 1 + 0 + 0 + 0 + + + 12601 + 1 + 0 + 0 + 0 + + + 12602 + 1 + 0 + 0 + 0 + + + 12603 + 1 + 0 + 0 + 0 + + + 12604 + 1 + 0 + 0 + 0 + + + 12605 + 1 + 0 + 0 + 0 + + + 12606 + 1 + 0 + 0 + 0 + + + 12607 + 1 + 0 + 0 + 0 + + + 12608 + 200 + 0 + 0 + 0 + + + 12609 + 200 + 0 + 0 + 0 + + + 12610 + 200 + 0 + 0 + 0 + + + 12611 + 200 + 0 + 0 + 0 + + + 12612 + 200 + 0 + 0 + 0 + + + 12613 + 200 + 0 + 0 + 0 + + + 12614 + 200 + 0 + 0 + 0 + + + 12615 + 200 + 0 + 0 + 0 + + + 12616 + 200 + 0 + 0 + 0 + + + 12617 + 200 + 0 + 0 + 0 + + + 12618 + 200 + 0 + 0 + 0 + + + 12619 + 200 + 0 + 0 + 0 + + + 12620 + 200 + 0 + 0 + 0 + + + 12621 + 200 + 0 + 0 + 0 + + + 12622 + 200 + 0 + 0 + 0 + + + 12623 + 200 + 0 + 0 + 0 + + + 12624 + 20 + 0 + 0 + 0 + + + 12625 + 1 + 0 + 0 + 0 + + + 12626 + 2 + 0 + 0 + 0 + + + 12627 + 1 + 0 + 0 + 0 + + + 12628 + 1 + 0 + 0 + 0 + + + 12629 + 1 + 0 + 0 + 0 + + + 12630 + 1 + 0 + 0 + 0 + + + 12631 + 1 + 0 + 0 + 0 + + + 12632 + 1 + 0 + 0 + 0 + + + 12633 + 60 + 0 + 0 + 0 + + + 12634 + 1 + 0 + 0 + 0 + + + 12635 + 1 + 0 + 0 + 0 + + + 12636 + 1 + 0 + 0 + 0 + + + 12637 + 1 + 0 + 0 + 0 + + + 12638 + 1 + 0 + 0 + 0 + + + 12639 + 1 + 0 + 0 + 0 + + + 12640 + 1 + 0 + 0 + 0 + + + 12641 + 1 + 0 + 0 + 0 + + + 12642 + 1 + 0 + 0 + 0 + + + 12643 + 1 + 0 + 0 + 0 + + + 12644 + 1 + 0 + 0 + 0 + + + 12645 + 32 + 0 + 0 + 0 + + + 12646 + 1 + 0 + 0 + 0 + + + 12647 + 1 + 0 + 0 + 0 + + + 12648 + 1 + 0 + 0 + 0 + + + 12649 + 1 + 0 + 0 + 0 + + + 12650 + 1 + 0 + 0 + 0 + + + 12651 + 1 + 0 + 0 + 0 + + + 12652 + 1 + 0 + 0 + 0 + + + 12653 + 1 + 0 + 0 + 0 + + + 12654 + 1 + 0 + 0 + 0 + + + 12655 + 1 + 0 + 0 + 0 + + + 12656 + 1 + 0 + 0 + 0 + + + 12657 + 1 + 0 + 0 + 0 + + + 12658 + 3520 + 0 + 0 + 0 + + + 12659 + 3520 + 0 + 0 + 0 + + + 12660 + 300 + 0 + 0 + 0 + + + 12661 + 300 + 0 + 0 + 0 + + + 12662 + 10000 + 0 + 0 + 0 + + + 12663 + 10000 + 0 + 0 + 0 + + + 12664 + 35200 + 0 + 0 + 0 + + + 12665 + 35200 + 0 + 0 + 0 + + + 12666 + 100000 + 0 + 0 + 0 + + + 12667 + 100000 + 0 + 0 + 0 + + + 12668 + 100 + 0 + 0 + 0 + + + 12669 + 100 + 0 + 0 + 0 + + + 12670 + 20000 + 0 + 0 + 0 + + + 12671 + 20000 + 0 + 0 + 0 + + + 12672 + 78000 + 0 + 0 + 0 + + + 12673 + 78000 + 0 + 0 + 0 + + + 12674 + 78000 + 0 + 0 + 0 + + + 12675 + 78000 + 0 + 0 + 0 + + + 12676 + 78000 + 0 + 0 + 0 + + + 12677 + 78000 + 0 + 0 + 0 + + + 12678 + 78000 + 0 + 0 + 0 + + + 12679 + 78000 + 0 + 0 + 0 + + + 12680 + 50000 + 0 + 0 + 0 + + + 12681 + 50000 + 0 + 0 + 0 + + + 12682 + 1 + 0 + 0 + 0 + + + 12683 + 1 + 0 + 0 + 0 + + + 12684 + 1 + 0 + 0 + 0 + + + 12685 + 1 + 0 + 0 + 0 + + + 12686 + 1 + 0 + 0 + 0 + + + 12687 + 1 + 0 + 0 + 0 + + + 12688 + 1 + 0 + 0 + 0 + + + 12689 + 1 + 0 + 0 + 0 + + + 12690 + 1 + 0 + 0 + 0 + + + 12691 + 1 + 0 + 0 + 0 + + + 12692 + 1 + 0 + 0 + 0 + + + 12693 + 1 + 0 + 0 + 0 + + + 12694 + 1 + 0 + 0 + 0 + + + 12695 + 1 + 0 + 0 + 0 + + + 12696 + 1 + 0 + 0 + 0 + + + 12697 + 1 + 0 + 0 + 0 + + + 12698 + 1 + 0 + 0 + 0 + + + 12699 + 1 + 0 + 0 + 0 + + + 12700 + 1 + 0 + 0 + 0 + + + 12701 + 1 + 0 + 0 + 0 + + + 12702 + 1 + 0 + 0 + 0 + + + 12703 + 1 + 0 + 0 + 0 + + + 12704 + 1 + 0 + 0 + 0 + + + 12705 + 1 + 0 + 0 + 0 + + + 12706 + 1 + 0 + 0 + 0 + + + 12707 + 1 + 0 + 0 + 0 + + + 12708 + 1 + 0 + 0 + 0 + + + 12709 + 1 + 0 + 0 + 0 + + + 12710 + 1 + 0 + 0 + 0 + + + 12711 + 1 + 0 + 0 + 0 + + + 12712 + 1 + 0 + 0 + 0 + + + 12713 + 1 + 0 + 0 + 0 + + + 12714 + 1 + 0 + 0 + 0 + + + 12715 + 1 + 0 + 0 + 0 + + + 12716 + 1 + 0 + 0 + 0 + + + 12717 + 1 + 0 + 0 + 0 + + + 12718 + 1 + 0 + 0 + 0 + + + 12719 + 1 + 0 + 0 + 0 + + + 12720 + 1 + 0 + 0 + 0 + + + 12721 + 1 + 0 + 0 + 0 + + + 12722 + 1 + 0 + 0 + 0 + + + 12723 + 1 + 0 + 0 + 0 + + + 12724 + 1 + 0 + 0 + 0 + + + 12725 + 1 + 0 + 0 + 0 + + + 12726 + 1 + 0 + 0 + 0 + + + 12727 + 1 + 0 + 0 + 0 + + + 12728 + 1 + 0 + 0 + 0 + + + 12729 + 1 + 0 + 0 + 0 + + + 12730 + 1 + 0 + 0 + 0 + + + 12731 + 1 + 0 + 0 + 0 + + + 12732 + 1 + 0 + 0 + 0 + + + 12733 + 1 + 0 + 0 + 0 + + + 12734 + 1 + 0 + 0 + 0 + + + 12735 + 1 + 0 + 0 + 0 + + + 12736 + 1 + 0 + 0 + 0 + + + 12737 + 1 + 0 + 0 + 0 + + + 12738 + 1 + 0 + 0 + 0 + + + 12739 + 1 + 0 + 0 + 0 + + + 12740 + 1 + 0 + 0 + 0 + + + 12741 + 1 + 0 + 0 + 0 + + + 12742 + 1 + 0 + 0 + 0 + + + 12743 + 1 + 0 + 0 + 0 + + + 12744 + 1 + 0 + 0 + 0 + + + 12745 + 1 + 0 + 0 + 0 + + + 12746 + 1 + 0 + 0 + 0 + + + 12747 + 1 + 0 + 0 + 0 + + + 12748 + 1 + 0 + 0 + 0 + + + 12749 + 1 + 0 + 0 + 0 + + + 12750 + 1 + 0 + 0 + 0 + + + 12751 + 1 + 0 + 0 + 0 + + + 12752 + 1 + 0 + 0 + 0 + + + 12753 + 1 + 0 + 0 + 0 + + + 12754 + 1 + 0 + 0 + 0 + + + 12755 + 1 + 0 + 0 + 0 + + + 12756 + 1 + 0 + 0 + 0 + + + 12757 + 1 + 0 + 0 + 0 + + + 12758 + 1 + 0 + 0 + 0 + + + 12759 + 1 + 0 + 0 + 0 + + + 12760 + 1 + 0 + 0 + 0 + + + 12761 + 1 + 0 + 0 + 0 + + + 12762 + 1 + 0 + 0 + 0 + + + 12763 + 1 + 0 + 0 + 0 + + + 12764 + 1 + 0 + 0 + 0 + + + 12765 + 1 + 0 + 0 + 0 + + + 12766 + 1 + 0 + 0 + 0 + + + 12767 + 1 + 0 + 0 + 0 + + + 12768 + 1 + 0 + 0 + 0 + + + 12769 + 1 + 0 + 0 + 0 + + + 12770 + 1 + 0 + 0 + 0 + + + 12771 + 1 + 0 + 0 + 0 + + + 12772 + 1 + 0 + 0 + 0 + + + 12773 + 1 + 0 + 0 + 0 + + + 12774 + 1 + 0 + 0 + 0 + + + 12775 + 1 + 0 + 0 + 0 + + + 12776 + 4174 + 0 + 0 + 0 + + + 12777 + 4174 + 0 + 0 + 0 + + + 12778 + 449 + 0 + 0 + 0 + + + 12779 + 449 + 0 + 0 + 0 + + + 12780 + 2274 + 0 + 0 + 0 + + + 12781 + 2274 + 0 + 0 + 0 + + + 12782 + 3949 + 0 + 0 + 0 + + + 12783 + 3949 + 0 + 0 + 0 + + + 12784 + 4299 + 0 + 0 + 0 + + + 12785 + 4299 + 0 + 0 + 0 + + + 12786 + 5974 + 0 + 0 + 0 + + + 12787 + 5974 + 0 + 0 + 0 + + + 12788 + 5899 + 0 + 0 + 0 + + + 12789 + 5899 + 0 + 0 + 0 + + + 12790 + 4874 + 0 + 0 + 0 + + + 12791 + 4874 + 0 + 0 + 0 + + + 12792 + 5299 + 0 + 0 + 0 + + + 12793 + 5299 + 0 + 0 + 0 + + + 12794 + 4774 + 0 + 0 + 0 + + + 12795 + 4774 + 0 + 0 + 0 + + + 12796 + 3249 + 0 + 0 + 0 + + + 12797 + 3249 + 0 + 0 + 0 + + + 12798 + 2274 + 0 + 0 + 0 + + + 12799 + 2274 + 0 + 0 + 0 + + + 12800 + 2524 + 0 + 0 + 0 + + + 12801 + 2524 + 0 + 0 + 0 + + + 12802 + 5374 + 0 + 0 + 0 + + + 12803 + 5374 + 0 + 0 + 0 + + + 12804 + 5474 + 0 + 0 + 0 + + + 12805 + 5474 + 0 + 0 + 0 + + + 12806 + 5374 + 0 + 0 + 0 + + + 12807 + 5374 + 0 + 0 + 0 + + + 12808 + 2024 + 0 + 0 + 0 + + + 12809 + 2024 + 0 + 0 + 0 + + + 12810 + 4274 + 0 + 0 + 0 + + + 12811 + 4274 + 0 + 0 + 0 + + + 12812 + 4249 + 0 + 0 + 0 + + + 12813 + 4249 + 0 + 0 + 0 + + + 12814 + 2274 + 0 + 0 + 0 + + + 12815 + 2274 + 0 + 0 + 0 + + + 12816 + 3199 + 0 + 0 + 0 + + + 12817 + 3199 + 0 + 0 + 0 + + + 12818 + 2274 + 0 + 0 + 0 + + + 12819 + 2274 + 0 + 0 + 0 + + + 12820 + 2399 + 0 + 0 + 0 + + + 12821 + 2399 + 0 + 0 + 0 + + + 12822 + 5374 + 0 + 0 + 0 + + + 12823 + 5374 + 0 + 0 + 0 + + + 12824 + 537 + 0 + 0 + 0 + + + 12825 + 487 + 0 + 0 + 0 + + + 12826 + 529 + 0 + 0 + 0 + + + 12827 + 324 + 0 + 0 + 0 + + + 12828 + 537 + 0 + 0 + 0 + + + 12829 + 319 + 0 + 0 + 0 + + + 12830 + 239 + 0 + 0 + 0 + + + 12831 + 477 + 0 + 0 + 0 + + + 12832 + 417 + 0 + 0 + 0 + + + 12833 + 597 + 0 + 0 + 0 + + + 12834 + 252 + 0 + 0 + 0 + + + 12835 + 427 + 0 + 0 + 0 + + + 12836 + 424 + 0 + 0 + 0 + + + 12837 + 529 + 0 + 0 + 0 + + + 12838 + 44 + 0 + 0 + 0 + + + 12839 + 202 + 0 + 0 + 0 + + + 12840 + 429 + 0 + 0 + 0 + + + 12841 + 394 + 0 + 0 + 0 + + + 12842 + 1 + 0 + 0 + 0 + + + 12843 + 1 + 0 + 0 + 0 + + + 12844 + 100 + 0 + 0 + 0 + + + 12845 + 1 + 0 + 0 + 0 + + + 12846 + 1 + 0 + 0 + 0 + + + 12847 + 1 + 0 + 0 + 0 + + + 12848 + 1 + 0 + 0 + 0 + + + 12849 + 1 + 0 + 0 + 0 + + + 12850 + 2 + 0 + 0 + 0 + + + 12851 + 2 + 0 + 0 + 0 + + + 12852 + 1 + 0 + 0 + 0 + + + 12853 + 1 + 0 + 0 + 0 + + + 12854 + 1 + 0 + 0 + 0 + + + 12855 + 1 + 0 + 0 + 0 + + + 12856 + 1 + 0 + 0 + 0 + + + 12857 + 1 + 0 + 0 + 0 + + + 12858 + 1 + 0 + 0 + 0 + + + 12859 + 1 + 0 + 0 + 0 + + + 12860 + 1 + 0 + 0 + 0 + + + 12861 + 1 + 0 + 0 + 0 + + + 12862 + 1 + 0 + 0 + 0 + + + 12863 + 1 + 0 + 0 + 0 + + + 12864 + 1 + 0 + 0 + 0 + + + 12865 + 1 + 0 + 0 + 0 + + + 12866 + 25000 + 0 + 0 + 0 + + + 12867 + 25000 + 0 + 0 + 0 + + + 12868 + 25000 + 0 + 0 + 0 + + + 12869 + 25000 + 0 + 0 + 0 + + + 12870 + 25000 + 0 + 0 + 0 + + + 12871 + 25000 + 0 + 0 + 0 + + + 12872 + 25000 + 0 + 0 + 0 + + + 12873 + 50000 + 0 + 0 + 0 + + + 12874 + 50000 + 0 + 0 + 0 + + + 12875 + 50000 + 0 + 0 + 0 + + + 12876 + 50000 + 0 + 0 + 0 + + + 12877 + 50000 + 0 + 0 + 0 + + + 12878 + 50000 + 0 + 0 + 0 + + + 12879 + 50000 + 0 + 0 + 0 + + + 12880 + 40000 + 0 + 0 + 0 + + + 12881 + 40000 + 0 + 0 + 0 + + + 12882 + 40000 + 0 + 0 + 0 + + + 12883 + 40000 + 0 + 0 + 0 + + + 12884 + 40000 + 0 + 0 + 0 + + + 12885 + 40000 + 0 + 0 + 0 + + + 12886 + 40000 + 0 + 0 + 0 + + + 12887 + 2000 + 0 + 0 + 0 + + + 12888 + 2000 + 0 + 0 + 0 + + + 12889 + 2000 + 0 + 0 + 0 + + + 12890 + 2000 + 0 + 0 + 0 + + + 12891 + 2000 + 0 + 0 + 0 + + + 12892 + 2000 + 0 + 0 + 0 + + + 12893 + 2000 + 0 + 0 + 0 + + + 12894 + 6000 + 0 + 0 + 0 + + + 12895 + 6000 + 0 + 0 + 0 + + + 12896 + 6000 + 0 + 0 + 0 + + + 12897 + 6000 + 0 + 0 + 0 + + + 12898 + 6000 + 0 + 0 + 0 + + + 12899 + 6000 + 0 + 0 + 0 + + + 12900 + 6000 + 0 + 0 + 0 + + + 12901 + 5000 + 0 + 0 + 0 + + + 12902 + 5000 + 0 + 0 + 0 + + + 12903 + 5000 + 0 + 0 + 0 + + + 12904 + 5000 + 0 + 0 + 0 + + + 12905 + 5000 + 0 + 0 + 0 + + + 12906 + 5000 + 0 + 0 + 0 + + + 12907 + 5000 + 0 + 0 + 0 + + + 12908 + 4050 + 0 + 0 + 0 + + + 12909 + 4050 + 0 + 0 + 0 + + + 12910 + 4050 + 0 + 0 + 0 + + + 12911 + 4050 + 0 + 0 + 0 + + + 12912 + 4050 + 0 + 0 + 0 + + + 12913 + 4050 + 0 + 0 + 0 + + + 12914 + 4050 + 0 + 0 + 0 + + + 12915 + 6140 + 0 + 0 + 0 + + + 12916 + 6140 + 0 + 0 + 0 + + + 12917 + 6140 + 0 + 0 + 0 + + + 12918 + 6140 + 0 + 0 + 0 + + + 12919 + 6140 + 0 + 0 + 0 + + + 12920 + 6140 + 0 + 0 + 0 + + + 12921 + 6140 + 0 + 0 + 0 + + + 12922 + 40000 + 0 + 0 + 0 + + + 12923 + 40000 + 0 + 0 + 0 + + + 12924 + 40000 + 0 + 0 + 0 + + + 12925 + 40000 + 0 + 0 + 0 + + + 12926 + 40000 + 0 + 0 + 0 + + + 12927 + 40000 + 0 + 0 + 0 + + + 12928 + 40000 + 0 + 0 + 0 + + + 12929 + 64400 + 0 + 0 + 0 + + + 12930 + 64400 + 0 + 0 + 0 + + + 12931 + 64400 + 0 + 0 + 0 + + + 12932 + 64400 + 0 + 0 + 0 + + + 12933 + 64400 + 0 + 0 + 0 + + + 12934 + 64400 + 0 + 0 + 0 + + + 12935 + 64400 + 0 + 0 + 0 + + + 12936 + 2000 + 0 + 0 + 0 + + + 12937 + 2000 + 0 + 0 + 0 + + + 12938 + 2000 + 0 + 0 + 0 + + + 12939 + 2000 + 0 + 0 + 0 + + + 12940 + 2000 + 0 + 0 + 0 + + + 12941 + 2000 + 0 + 0 + 0 + + + 12942 + 2000 + 0 + 0 + 0 + + + 12943 + 3500 + 0 + 0 + 0 + + + 12944 + 3500 + 0 + 0 + 0 + + + 12945 + 3500 + 0 + 0 + 0 + + + 12946 + 3500 + 0 + 0 + 0 + + + 12947 + 3500 + 0 + 0 + 0 + + + 12948 + 3500 + 0 + 0 + 0 + + + 12949 + 3500 + 0 + 0 + 0 + + + 12950 + 3500 + 0 + 0 + 0 + + + 12951 + 3500 + 0 + 0 + 0 + + + 12952 + 3500 + 0 + 0 + 0 + + + 12953 + 3500 + 0 + 0 + 0 + + + 12954 + 3500 + 0 + 0 + 0 + + + 12955 + 3500 + 0 + 0 + 0 + + + 12956 + 3500 + 0 + 0 + 0 + + + 12957 + 5500 + 0 + 0 + 0 + + + 12958 + 5500 + 0 + 0 + 0 + + + 12959 + 5500 + 0 + 0 + 0 + + + 12960 + 5500 + 0 + 0 + 0 + + + 12961 + 5500 + 0 + 0 + 0 + + + 12962 + 5500 + 0 + 0 + 0 + + + 12963 + 5500 + 0 + 0 + 0 + + + 12964 + 1000 + 0 + 0 + 0 + + + 12965 + 1000 + 0 + 0 + 0 + + + 12966 + 1000 + 0 + 0 + 0 + + + 12967 + 1000 + 0 + 0 + 0 + + + 12968 + 1000 + 0 + 0 + 0 + + + 12969 + 1000 + 0 + 0 + 0 + + + 12970 + 1000 + 0 + 0 + 0 + + + 12971 + 3000 + 0 + 0 + 0 + + + 12972 + 3000 + 0 + 0 + 0 + + + 12973 + 3000 + 0 + 0 + 0 + + + 12974 + 3000 + 0 + 0 + 0 + + + 12975 + 3000 + 0 + 0 + 0 + + + 12976 + 3000 + 0 + 0 + 0 + + + 12977 + 3000 + 0 + 0 + 0 + + + 12978 + 2500 + 0 + 0 + 0 + + + 12979 + 2500 + 0 + 0 + 0 + + + 12980 + 2500 + 0 + 0 + 0 + + + 12981 + 2500 + 0 + 0 + 0 + + + 12982 + 2500 + 0 + 0 + 0 + + + 12983 + 2500 + 0 + 0 + 0 + + + 12984 + 2500 + 0 + 0 + 0 + + + 12985 + 100 + 0 + 0 + 0 + + + 12986 + 100 + 0 + 0 + 0 + + + 12987 + 100 + 0 + 0 + 0 + + + 12988 + 300 + 0 + 0 + 0 + + + 12989 + 300 + 0 + 0 + 0 + + + 12990 + 300 + 0 + 0 + 0 + + + 12991 + 1000 + 0 + 0 + 0 + + + 12992 + 1000 + 0 + 0 + 0 + + + 12993 + 1000 + 0 + 0 + 0 + + + 12994 + 2000 + 0 + 0 + 0 + + + 12995 + 2000 + 0 + 0 + 0 + + + 12996 + 2000 + 0 + 0 + 0 + + + 12997 + 3000 + 0 + 0 + 0 + + + 12998 + 3000 + 0 + 0 + 0 + + + 12999 + 3000 + 0 + 0 + 0 + + + 13000 + 5000 + 0 + 0 + 0 + + + 13001 + 5000 + 0 + 0 + 0 + + + 13002 + 5000 + 0 + 0 + 0 + + + 13003 + 7500 + 0 + 0 + 0 + + + 13004 + 7500 + 0 + 0 + 0 + + + 13005 + 7500 + 0 + 0 + 0 + + + 13006 + 50000 + 0 + 0 + 0 + + + 13007 + 50000 + 0 + 0 + 0 + + + 13008 + 50000 + 0 + 0 + 0 + + + 13009 + 1 + 0 + 0 + 0 + + + 13010 + 1 + 0 + 0 + 0 + + + 13011 + 100 + 0 + 0 + 0 + + + 13012 + 1 + 0 + 0 + 0 + + + 13013 + 100 + 0 + 0 + 0 + + + 13014 + 1 + 0 + 0 + 0 + + + 13015 + 100 + 0 + 0 + 0 + + + 13016 + 1 + 0 + 0 + 0 + + + 13017 + 100 + 0 + 0 + 0 + + + 13018 + 1 + 0 + 0 + 0 + + + 13019 + 100 + 0 + 0 + 0 + + + 13020 + 1 + 0 + 0 + 0 + + + 13021 + 100 + 0 + 0 + 0 + + + 13022 + 1 + 0 + 0 + 0 + + + 13023 + 100 + 0 + 0 + 0 + + + 13024 + 1 + 0 + 0 + 0 + + + 13025 + 100 + 0 + 0 + 0 + + + 13026 + 1 + 0 + 0 + 0 + + + 13027 + 100 + 0 + 0 + 0 + + + 13028 + 1 + 0 + 0 + 0 + + + 13029 + 100 + 0 + 0 + 0 + + + 13030 + 1 + 0 + 0 + 0 + + + 13031 + 100 + 0 + 0 + 0 + + + 13032 + 1 + 0 + 0 + 0 + + + 13033 + 100 + 0 + 0 + 0 + + + 13034 + 1 + 0 + 0 + 0 + + + 13035 + 100 + 0 + 0 + 0 + + + 13036 + 1 + 0 + 0 + 0 + + + 13037 + 50 + 0 + 0 + 0 + + + 13038 + 1 + 0 + 0 + 0 + + + 13039 + 50 + 0 + 0 + 0 + + + 13040 + 1 + 0 + 0 + 0 + + + 13041 + 1 + 0 + 0 + 0 + + + 13042 + 1 + 0 + 0 + 0 + + + 13043 + 50 + 0 + 0 + 0 + + + 13044 + 1 + 0 + 0 + 0 + + + 13045 + 50 + 0 + 0 + 0 + + + 13046 + 1 + 0 + 0 + 0 + + + 13047 + 50 + 0 + 0 + 0 + + + 13048 + 1 + 0 + 0 + 0 + + + 13049 + 1 + 0 + 0 + 0 + + + 13050 + 1 + 0 + 0 + 0 + + + 13051 + 1 + 0 + 0 + 0 + + + 13052 + 50 + 0 + 0 + 0 + + + 13053 + 1 + 0 + 0 + 0 + + + 13054 + 50 + 0 + 0 + 0 + + + 13055 + 1 + 0 + 0 + 0 + + + 13056 + 1 + 0 + 0 + 0 + + + 13057 + 50 + 0 + 0 + 0 + + + 13058 + 1 + 0 + 0 + 0 + + + 13059 + 50 + 0 + 0 + 0 + + + 13060 + 1 + 0 + 0 + 0 + + + 13061 + 1 + 0 + 0 + 0 + + + 13062 + 50 + 0 + 0 + 0 + + + 13063 + 1 + 0 + 0 + 0 + + + 13064 + 50 + 0 + 0 + 0 + + + 13065 + 1 + 0 + 0 + 0 + + + 13066 + 50 + 0 + 0 + 0 + + + 13067 + 1 + 0 + 0 + 0 + + + 13068 + 1 + 0 + 0 + 0 + + + 13069 + 1 + 0 + 0 + 0 + + + 13070 + 1 + 0 + 0 + 0 + + + 13071 + 1 + 0 + 0 + 0 + + + 13072 + 1 + 0 + 0 + 0 + + + 13073 + 1 + 0 + 0 + 0 + + + 13074 + 1 + 0 + 0 + 0 + + + 13075 + 1 + 0 + 0 + 0 + + + 13076 + 1 + 0 + 0 + 0 + + + 13077 + 50 + 0 + 0 + 0 + + + 13078 + 1 + 0 + 0 + 0 + + + 13079 + 1 + 0 + 0 + 0 + + + 13080 + 1 + 0 + 0 + 0 + + + 13081 + 800 + 0 + 0 + 0 + + + 13082 + 800 + 0 + 0 + 0 + + + 13083 + 14 + 0 + 0 + 0 + + + 13084 + 14 + 0 + 0 + 0 + + + 13085 + 14 + 0 + 0 + 0 + + + 13086 + 14 + 0 + 0 + 0 + + + 13087 + 1 + 0 + 0 + 0 + + + 13088 + 1 + 0 + 0 + 0 + + + 13089 + 1 + 0 + 0 + 0 + + + 13090 + 1 + 0 + 0 + 0 + + + 13091 + 1 + 0 + 0 + 0 + + + 13092 + 1 + 0 + 0 + 0 + + + 13093 + 1 + 0 + 0 + 0 + + + 13094 + 1 + 0 + 0 + 0 + + + 13095 + 432 + 0 + 0 + 0 + + + 13096 + 432 + 0 + 0 + 0 + + + 13097 + 1440 + 0 + 0 + 0 + + + 13098 + 1440 + 0 + 0 + 0 + + + 13099 + 14400 + 0 + 0 + 0 + + + 13100 + 14400 + 0 + 0 + 0 + + + 13101 + 200 + 0 + 0 + 0 + + + 13102 + 200 + 0 + 0 + 0 + + + 13103 + 250 + 0 + 0 + 0 + + + 13104 + 250 + 0 + 0 + 0 + + + 13105 + 1000 + 0 + 0 + 0 + + + 13106 + 1000 + 0 + 0 + 0 + + + 13107 + 800 + 0 + 0 + 0 + + + 13108 + 800 + 0 + 0 + 0 + + + 13109 + 800 + 0 + 0 + 0 + + + 13110 + 800 + 0 + 0 + 0 + + + 13111 + 800 + 0 + 0 + 0 + + + 13112 + 800 + 0 + 0 + 0 + + + 13113 + 800 + 0 + 0 + 0 + + + 13114 + 800 + 0 + 0 + 0 + + + 13115 + 800 + 0 + 0 + 0 + + + 13116 + 800 + 0 + 0 + 0 + + + 13117 + 1000 + 0 + 0 + 0 + + + 13118 + 1000 + 0 + 0 + 0 + + + 13119 + 1000 + 0 + 0 + 0 + + + 13120 + 1000 + 0 + 0 + 0 + + + 13121 + 1000 + 0 + 0 + 0 + + + 13122 + 1000 + 0 + 0 + 0 + + + 13123 + 1000 + 0 + 0 + 0 + + + 13124 + 1000 + 0 + 0 + 0 + + + 13125 + 1000 + 0 + 0 + 0 + + + 13126 + 1000 + 0 + 0 + 0 + + + 13127 + 1000 + 0 + 0 + 0 + + + 13128 + 1000 + 0 + 0 + 0 + + + 13129 + 1000 + 0 + 0 + 0 + + + 13130 + 1000 + 0 + 0 + 0 + + + 13131 + 1000 + 0 + 0 + 0 + + + 13132 + 1000 + 0 + 0 + 0 + + + 13133 + 1000 + 0 + 0 + 0 + + + 13134 + 1000 + 0 + 0 + 0 + + + 13135 + 1000 + 0 + 0 + 0 + + + 13136 + 1000 + 0 + 0 + 0 + + + 13137 + 1000 + 0 + 0 + 0 + + + 13138 + 1000 + 0 + 0 + 0 + + + 13139 + 1000 + 0 + 0 + 0 + + + 13140 + 1000 + 0 + 0 + 0 + + + 13141 + 1000 + 0 + 0 + 0 + + + 13142 + 1000 + 0 + 0 + 0 + + + 13143 + 1000 + 0 + 0 + 0 + + + 13144 + 1000 + 0 + 0 + 0 + + + 13145 + 1000 + 0 + 0 + 0 + + + 13146 + 1000 + 0 + 0 + 0 + + + 13147 + 1 + 0 + 0 + 0 + + + 13148 + 3 + 0 + 0 + 0 + + + 13149 + 3 + 0 + 0 + 0 + + + 13150 + 1 + 0 + 0 + 0 + + + 13151 + 3 + 0 + 0 + 0 + + + 13152 + 3 + 0 + 0 + 0 + + + 13153 + 3 + 0 + 0 + 0 + + + 13154 + 3 + 0 + 0 + 0 + + + 13155 + 3 + 0 + 0 + 0 + + + 13156 + 3 + 0 + 0 + 0 + + + 13157 + 3 + 0 + 0 + 0 + + + 13158 + 3 + 0 + 0 + 0 + + + 13159 + 3 + 0 + 0 + 0 + + + 13160 + 1 + 0 + 0 + 0 + + + 13161 + 1 + 0 + 0 + 0 + + + 13162 + 1 + 0 + 0 + 0 + + + 13163 + 432 + 0 + 0 + 0 + + + 13164 + 1440 + 0 + 0 + 0 + + + 13165 + 14400 + 0 + 0 + 0 + + + 13166 + 200 + 0 + 0 + 0 + + + 13167 + 250 + 0 + 0 + 0 + + + 13168 + 1000 + 0 + 0 + 0 + + + 13169 + 800 + 0 + 0 + 0 + + + 13170 + 800 + 0 + 0 + 0 + + + 13171 + 800 + 0 + 0 + 0 + + + 13172 + 800 + 0 + 0 + 0 + + + 13173 + 800 + 0 + 0 + 0 + + + 13174 + 1 + 0 + 0 + 0 + + + 13175 + 1 + 0 + 0 + 0 + + + 13176 + 1 + 0 + 0 + 0 + + + 13177 + 1 + 0 + 0 + 0 + + + 13178 + 1 + 0 + 0 + 0 + + + 13179 + 1 + 0 + 0 + 0 + + + 13180 + 1 + 0 + 0 + 0 + + + 13181 + 1 + 0 + 0 + 0 + + + 13182 + 1 + 0 + 0 + 0 + + + 13183 + 1 + 0 + 0 + 0 + + + 13184 + 1 + 0 + 0 + 0 + + + 13185 + 1 + 0 + 0 + 0 + + + 13186 + 1 + 0 + 0 + 0 + + + 13187 + 1 + 0 + 0 + 0 + + + 13188 + 1 + 0 + 0 + 0 + + + 13189 + 1 + 0 + 0 + 0 + + + 13190 + 1 + 0 + 0 + 0 + + + 13191 + 1 + 0 + 0 + 0 + + + 13192 + 1 + 0 + 0 + 0 + + + 13193 + 1 + 0 + 0 + 0 + + + 13194 + 1 + 0 + 0 + 0 + + + 13195 + 1 + 0 + 0 + 0 + + + 13196 + 1 + 0 + 0 + 0 + + + 13197 + 1 + 0 + 0 + 0 + + + 13198 + 1 + 0 + 0 + 0 + + + 13199 + 1 + 0 + 0 + 0 + + + 13200 + 1 + 0 + 0 + 0 + + + 13201 + 1 + 0 + 0 + 0 + + + 13202 + 1 + 0 + 0 + 0 + + + 13203 + 1 + 0 + 0 + 0 + + + 13204 + 1 + 0 + 0 + 0 + + + 13205 + 1 + 0 + 0 + 0 + + + 13206 + 1 + 0 + 0 + 0 + + + 13207 + 1 + 0 + 0 + 0 + + + 13208 + 1 + 0 + 0 + 0 + + + 13209 + 1 + 0 + 0 + 0 + + + 13210 + 1 + 0 + 0 + 0 + + + 13211 + 1 + 0 + 0 + 0 + + + 13212 + 1 + 0 + 0 + 0 + + + 13213 + 1 + 0 + 0 + 0 + + + 13214 + 1 + 0 + 0 + 0 + + + 13215 + 1 + 0 + 0 + 0 + + + 13216 + 1 + 0 + 0 + 0 + + + 13217 + 1 + 0 + 0 + 0 + + + 13218 + 1 + 0 + 0 + 0 + + + 13219 + 1 + 0 + 0 + 0 + + + 13220 + 1 + 0 + 0 + 0 + + + 13221 + 1 + 0 + 0 + 0 + + + 13222 + 1 + 0 + 0 + 0 + + + 13223 + 1 + 0 + 0 + 0 + + + 13224 + 1 + 0 + 0 + 0 + + + 13225 + 1 + 0 + 0 + 0 + + + 13226 + 1 + 0 + 0 + 0 + + + 13227 + 1 + 0 + 0 + 0 + + + 13228 + 1 + 0 + 0 + 0 + + + 13229 + 1 + 0 + 0 + 0 + + + 13230 + 1 + 0 + 0 + 0 + + + 13231 + 1 + 0 + 0 + 0 + + + 13232 + 1 + 0 + 0 + 0 + + + 13233 + 1 + 0 + 0 + 0 + + + 13234 + 1 + 0 + 0 + 0 + + + 13235 + 1 + 0 + 0 + 0 + + + 13236 + 3 + 0 + 0 + 0 + + + 13237 + 1 + 0 + 0 + 0 + + + 13238 + 1 + 0 + 0 + 0 + + + 13239 + 1 + 0 + 0 + 0 + + + 13240 + 1 + 0 + 0 + 0 + + + 13241 + 1 + 0 + 0 + 0 + + + 13242 + 1 + 0 + 0 + 0 + + + 13243 + 1 + 0 + 0 + 0 + + + 13244 + 1 + 0 + 0 + 0 + + + 13245 + 1 + 0 + 0 + 0 + + + 13246 + 1 + 0 + 0 + 0 + + + 13247 + 1 + 0 + 0 + 0 + + + 13248 + 1 + 0 + 0 + 0 + + + 13249 + 1 + 0 + 0 + 0 + + + 13250 + 1 + 0 + 0 + 0 + + + 13251 + 1 + 0 + 0 + 0 + + + 13252 + 1 + 0 + 0 + 0 + + + 13253 + 1 + 0 + 0 + 0 + + + 13254 + 1 + 0 + 0 + 0 + + + 13255 + 1 + 0 + 0 + 0 + + + 13256 + 1 + 0 + 0 + 0 + + + 13257 + 1 + 0 + 0 + 0 + + + 13258 + 1 + 0 + 0 + 0 + + + 13259 + 1 + 0 + 0 + 0 + + + 13260 + 1 + 0 + 0 + 0 + + + 13261 + 1 + 0 + 0 + 0 + + + 13262 + 1 + 0 + 0 + 0 + + + 13263 + 650 + 0 + 0 + 0 + + + 13264 + 1 + 0 + 0 + 0 + + + 13265 + 1 + 0 + 0 + 0 + + + 13266 + 1 + 0 + 0 + 0 + + + 13267 + 1 + 0 + 0 + 0 + + + 13268 + 3 + 0 + 0 + 0 + + + 13269 + 3 + 0 + 0 + 0 + + + 13270 + 3 + 0 + 0 + 0 + + + 13271 + 3 + 0 + 0 + 0 + + + 13272 + 3 + 0 + 0 + 0 + + + 13273 + 3 + 0 + 0 + 0 + + + 13274 + 3 + 0 + 0 + 0 + + + 13275 + 3 + 0 + 0 + 0 + + + 13276 + 1 + 0 + 0 + 0 + + + 13277 + 400 + 0 + 0 + 0 + + + 13278 + 50 + 0 + 0 + 0 + + + 13279 + 50 + 0 + 0 + 0 + + + 13280 + 50 + 0 + 0 + 0 + + + 13281 + 150 + 0 + 0 + 0 + + + 13282 + 150 + 0 + 0 + 0 + + + 13283 + 150 + 0 + 0 + 0 + + + 13284 + 150 + 0 + 0 + 0 + + + 13285 + 150 + 0 + 0 + 0 + + + 13286 + 150 + 0 + 0 + 0 + + + 13287 + 150 + 0 + 0 + 0 + + + 13288 + 150 + 0 + 0 + 0 + + + 13289 + 3 + 0 + 0 + 0 + + + 13290 + 68000 + 0 + 0 + 0 + + + 13291 + 68000 + 0 + 0 + 0 + + + 13292 + 1 + 0 + 0 + 0 + + + 13293 + 1 + 0 + 0 + 0 + + + 13294 + 1 + 0 + 0 + 0 + + + 13295 + 1 + 0 + 0 + 0 + + + 13296 + 1 + 0 + 0 + 0 + + + 13297 + 1 + 0 + 0 + 0 + + + 13298 + 1 + 0 + 0 + 0 + + + 13299 + 1 + 0 + 0 + 0 + + + 13300 + 1 + 0 + 0 + 0 + + + 13301 + 1 + 0 + 0 + 0 + + + 13302 + 1 + 0 + 0 + 0 + + + 13303 + 1 + 0 + 0 + 0 + + + 13304 + 1 + 0 + 0 + 0 + + + 13305 + 1 + 0 + 0 + 0 + + + 13306 + 1 + 0 + 0 + 0 + + + 13307 + 1 + 0 + 0 + 0 + + + 13308 + 1 + 0 + 0 + 0 + + + 13309 + 1 + 0 + 0 + 0 + + + 13310 + 1 + 0 + 0 + 0 + + + 13311 + 1 + 0 + 0 + 0 + + + 13312 + 1 + 0 + 0 + 0 + + + 13313 + 1 + 0 + 0 + 0 + + + 13314 + 1 + 0 + 0 + 0 + + + 13315 + 1 + 0 + 0 + 0 + + + 13316 + 1 + 0 + 0 + 0 + + + 13317 + 1 + 0 + 0 + 0 + + + 13318 + 1 + 0 + 0 + 0 + + + 13319 + 1 + 0 + 0 + 0 + + + 13320 + 1 + 0 + 0 + 0 + + + 13321 + 1 + 0 + 0 + 0 + + + 13322 + 1 + 0 + 0 + 0 + + + 13323 + 1 + 0 + 0 + 0 + + + 13324 + 1 + 0 + 0 + 0 + + + 13325 + 1 + 0 + 0 + 0 + + + 13326 + 1 + 0 + 0 + 0 + + + 13327 + 1 + 0 + 0 + 0 + + + 13328 + 1 + 0 + 0 + 0 + + + 13329 + 1 + 0 + 0 + 0 + + + 13330 + 1 + 0 + 0 + 0 + + + 13331 + 1 + 0 + 0 + 0 + + + 13332 + 1 + 0 + 0 + 0 + + + 13333 + 1 + 0 + 0 + 0 + + + 13334 + 1 + 0 + 0 + 0 + + + 13335 + 1 + 0 + 0 + 0 + + + 13336 + 1 + 0 + 0 + 0 + + + 13337 + 50 + 0 + 0 + 0 + + + 13338 + 50 + 0 + 0 + 0 + + + 13339 + 100 + 0 + 0 + 0 + + + 13340 + 100 + 0 + 0 + 0 + + + 13341 + 100 + 0 + 0 + 0 + + + 13342 + 100 + 0 + 0 + 0 + + + 13343 + 100 + 0 + 0 + 0 + + + 13344 + 100 + 0 + 0 + 0 + + + 13345 + 100 + 0 + 0 + 0 + + + 13346 + 100 + 0 + 0 + 0 + + + 13347 + 100 + 0 + 0 + 0 + + + 13348 + 100 + 0 + 0 + 0 + + + 13349 + 100 + 0 + 0 + 0 + + + 13350 + 100 + 0 + 0 + 0 + + + 13351 + 100 + 0 + 0 + 0 + + + 13352 + 100 + 0 + 0 + 0 + + + 13353 + 100 + 0 + 0 + 0 + + + 13354 + 100 + 0 + 0 + 0 + + + 13355 + 100 + 0 + 0 + 0 + + + 13356 + 100 + 0 + 0 + 0 + + + 13357 + 100 + 0 + 0 + 0 + + + 13358 + 300 + 0 + 0 + 0 + + + 13359 + 300 + 0 + 0 + 0 + + + 13360 + 300 + 0 + 0 + 0 + + + 13361 + 300 + 0 + 0 + 0 + + + 13362 + 300 + 0 + 0 + 0 + + + 13363 + 300 + 0 + 0 + 0 + + + 13364 + 350 + 0 + 0 + 0 + + + 13365 + 350 + 0 + 0 + 0 + + + 13366 + 350 + 0 + 0 + 0 + + + 13367 + 350 + 0 + 0 + 0 + + + 13368 + 350 + 0 + 0 + 0 + + + 13369 + 350 + 0 + 0 + 0 + + + 13370 + 100 + 0 + 0 + 0 + + + 13371 + 100 + 0 + 0 + 0 + + + 13372 + 100 + 0 + 0 + 0 + + + 13373 + 100 + 0 + 0 + 0 + + + 13374 + 100 + 0 + 0 + 0 + + + 13375 + 100 + 0 + 0 + 0 + + + 13376 + 100 + 0 + 0 + 0 + + + 13377 + 100 + 0 + 0 + 0 + + + 13378 + 100 + 0 + 0 + 0 + + + 13379 + 1 + 0 + 0 + 0 + + + 13380 + 1 + 0 + 0 + 0 + + + 13381 + 1 + 0 + 0 + 0 + + + 13382 + 1 + 0 + 0 + 0 + + + 13383 + 1 + 0 + 0 + 0 + + + 13384 + 1 + 0 + 0 + 0 + + + 13385 + 1 + 0 + 0 + 0 + + + 13386 + 1 + 0 + 0 + 0 + + + 13387 + 1 + 0 + 0 + 0 + + + 13388 + 1 + 0 + 0 + 0 + + + 13389 + 1 + 0 + 0 + 0 + + + 13390 + 1 + 0 + 0 + 0 + + + 13391 + 1 + 0 + 0 + 0 + + + 13392 + 1 + 0 + 0 + 0 + + + 13393 + 1 + 0 + 0 + 0 + + + 13394 + 1 + 0 + 0 + 0 + + + 13395 + 1 + 0 + 0 + 0 + + + 13396 + 1 + 0 + 0 + 0 + + + 13397 + 1 + 0 + 0 + 0 + + + 13398 + 1 + 0 + 0 + 0 + + + 13399 + 1 + 0 + 0 + 0 + + + 13400 + 1 + 0 + 0 + 0 + + + 13401 + 1 + 0 + 0 + 0 + + + 13402 + 1 + 0 + 0 + 0 + + + 13403 + 300 + 0 + 0 + 0 + + + 13404 + 1 + 0 + 0 + 0 + + + 13405 + 1 + 0 + 0 + 0 + + + 13406 + 1 + 0 + 0 + 0 + + + 13407 + 1 + 0 + 0 + 0 + + + 13408 + 1 + 0 + 0 + 0 + + + 13409 + 1 + 0 + 0 + 0 + + + 13410 + 1 + 0 + 0 + 0 + + + 13411 + 1 + 0 + 0 + 0 + + + 13412 + 1 + 0 + 0 + 0 + + + 13413 + 1 + 0 + 0 + 0 + + + 13414 + 1 + 0 + 0 + 0 + + + 13415 + 1 + 0 + 0 + 0 + + + 13416 + 1 + 0 + 0 + 0 + + + 13417 + 1 + 0 + 0 + 0 + + + 13418 + 1 + 0 + 0 + 0 + + + 13419 + 1 + 0 + 0 + 0 + + + 13420 + 1 + 0 + 0 + 0 + + + 13421 + 1 + 0 + 0 + 0 + + + 13422 + 1 + 0 + 0 + 0 + + + 13423 + 1 + 0 + 0 + 0 + + + 13424 + 1 + 0 + 0 + 0 + + + 13425 + 1 + 0 + 0 + 0 + + + 13426 + 1 + 0 + 0 + 0 + + + 13427 + 1 + 0 + 0 + 0 + + + 13428 + 1 + 0 + 0 + 0 + + + 13429 + 1 + 0 + 0 + 0 + + + 13430 + 1 + 0 + 0 + 0 + + + 13431 + 20 + 0 + 0 + 0 + + + 13432 + 20 + 0 + 0 + 0 + + + 13433 + 5 + 0 + 0 + 0 + + + 13434 + 5 + 0 + 0 + 0 + + + 13435 + 5 + 0 + 0 + 0 + + + 13436 + 5 + 0 + 0 + 0 + + + 13437 + 1 + 0 + 0 + 0 + + + 13438 + 1 + 0 + 0 + 0 + + + 13439 + 1 + 0 + 0 + 0 + + + 13440 + 1 + 0 + 0 + 0 + + + 13441 + 1 + 0 + 0 + 0 + + + 13442 + 1 + 0 + 0 + 0 + + + 13443 + 1 + 0 + 0 + 0 + + + 13444 + 1 + 0 + 0 + 0 + + + 13445 + 1 + 0 + 0 + 0 + + + 13446 + 1 + 0 + 0 + 0 + + + 13447 + 1 + 0 + 0 + 0 + + + 13448 + 1 + 0 + 0 + 0 + + + 13449 + 1 + 0 + 0 + 0 + + + 13450 + 1 + 0 + 0 + 0 + + + 13451 + 1 + 0 + 0 + 0 + + + 13452 + 1 + 0 + 0 + 0 + + + 13453 + 1 + 0 + 0 + 0 + + + 13454 + 1 + 0 + 0 + 0 + + + 13455 + 1 + 0 + 0 + 0 + + + 13456 + 1 + 0 + 0 + 0 + + + 13457 + 1 + 0 + 0 + 0 + + + 13458 + 1 + 0 + 0 + 0 + + + 13459 + 1 + 0 + 0 + 0 + + + 13460 + 1 + 0 + 0 + 0 + + + 13461 + 1 + 0 + 0 + 0 + + + 13462 + 1 + 0 + 0 + 0 + + + 13463 + 1 + 0 + 0 + 0 + + + 13464 + 1 + 0 + 0 + 0 + + + 13465 + 1 + 0 + 0 + 0 + + + 13466 + 1 + 0 + 0 + 0 + + + 13467 + 1 + 0 + 0 + 0 + + + 13468 + 1 + 0 + 0 + 0 + + + 13469 + 1 + 0 + 0 + 0 + + + 13470 + 1 + 0 + 0 + 0 + + + 13471 + 1 + 0 + 0 + 0 + + + 13472 + 1 + 0 + 0 + 0 + + + 13473 + 1 + 0 + 0 + 0 + + + 13474 + 1 + 0 + 0 + 0 + + + 13475 + 1 + 0 + 0 + 0 + + + 13476 + 1 + 0 + 0 + 0 + + + 13477 + 1 + 0 + 0 + 0 + + + 13478 + 1 + 0 + 0 + 0 + + + 13479 + 1 + 0 + 0 + 0 + + + 13480 + 1 + 0 + 0 + 0 + + + 13481 + 1 + 0 + 0 + 0 + + + 13482 + 1 + 0 + 0 + 0 + + + 13483 + 1 + 0 + 0 + 0 + + + 13484 + 1 + 0 + 0 + 0 + + + 13485 + 1 + 0 + 0 + 0 + + + 13486 + 1 + 0 + 0 + 0 + + + 13487 + 1 + 0 + 0 + 0 + + + 13488 + 1 + 0 + 0 + 0 + + + 13489 + 1 + 0 + 0 + 0 + + + 13490 + 1 + 0 + 0 + 0 + + + 13491 + 1 + 0 + 0 + 0 + + + 13492 + 1 + 0 + 0 + 0 + + + 13493 + 1 + 0 + 0 + 0 + + + 13494 + 1 + 0 + 0 + 0 + + + 13495 + 1 + 0 + 0 + 0 + + + 13496 + 1 + 0 + 0 + 0 + + + 13497 + 1 + 0 + 0 + 0 + + + 13498 + 1 + 0 + 0 + 0 + + + 13499 + 1 + 0 + 0 + 0 + + + 13500 + 1 + 0 + 0 + 0 + + + 13501 + 1 + 0 + 0 + 0 + + + 13502 + 1 + 0 + 0 + 0 + + + 13503 + 1 + 0 + 0 + 0 + + + 13504 + 1 + 0 + 0 + 0 + + + 13505 + 1 + 0 + 0 + 0 + + + 13506 + 1 + 0 + 0 + 0 + + + 13507 + 1 + 0 + 0 + 0 + + + 13508 + 1 + 0 + 0 + 0 + + + 13509 + 1 + 0 + 0 + 0 + + + 13510 + 1 + 0 + 0 + 0 + + + 13511 + 1 + 0 + 0 + 0 + + + 13512 + 1 + 0 + 0 + 0 + + + 13513 + 1 + 0 + 0 + 0 + + + 13514 + 1 + 0 + 0 + 0 + + + 13515 + 1 + 0 + 0 + 0 + + + 13516 + 1 + 0 + 0 + 0 + + + 13517 + 1 + 0 + 0 + 0 + + + 13518 + 1 + 0 + 0 + 0 + + + 13519 + 1 + 0 + 0 + 0 + + + 13520 + 1 + 0 + 0 + 0 + + + 13521 + 1 + 0 + 0 + 0 + + + 13522 + 1 + 0 + 0 + 0 + + + 13523 + 1 + 0 + 0 + 0 + + + 13524 + 1 + 0 + 0 + 0 + + + 13525 + 1 + 0 + 0 + 0 + + + 13526 + 1 + 0 + 0 + 0 + + + 13527 + 1 + 0 + 0 + 0 + + + 13528 + 1 + 0 + 0 + 0 + + + 13529 + 1 + 0 + 0 + 0 + + + 13530 + 1 + 0 + 0 + 0 + + + 13531 + 1 + 0 + 0 + 0 + + + 13532 + 1 + 0 + 0 + 0 + + + 13533 + 1 + 0 + 0 + 0 + + + 13534 + 1 + 0 + 0 + 0 + + + 13535 + 1 + 0 + 0 + 0 + + + 13536 + 1 + 0 + 0 + 0 + + + 13537 + 1 + 0 + 0 + 0 + + + 13538 + 1 + 0 + 0 + 0 + + + 13539 + 1 + 0 + 0 + 0 + + + 13540 + 1 + 0 + 0 + 0 + + + 13541 + 1 + 0 + 0 + 0 + + + 13542 + 1 + 0 + 0 + 0 + + + 13543 + 1 + 0 + 0 + 0 + + + 13544 + 1 + 0 + 0 + 0 + + + 13545 + 1 + 0 + 0 + 0 + + + 13546 + 1 + 0 + 0 + 0 + + + 13547 + 1 + 0 + 0 + 0 + + + 13548 + 1 + 0 + 0 + 0 + + + 13549 + 1 + 0 + 0 + 0 + + + 13550 + 1 + 0 + 0 + 0 + + + 13551 + 1 + 0 + 0 + 0 + + + 13552 + 1 + 0 + 0 + 0 + + + 13553 + 1 + 0 + 0 + 0 + + + 13554 + 1 + 0 + 0 + 0 + + + 13555 + 1 + 0 + 0 + 0 + + + 13556 + 1 + 0 + 0 + 0 + + + 13557 + 1 + 0 + 0 + 0 + + + 13558 + 1 + 0 + 0 + 0 + + + 13559 + 1 + 0 + 0 + 0 + + + 13560 + 350 + 0 + 0 + 0 + + + 13561 + 350 + 0 + 0 + 0 + + + 13562 + 350 + 0 + 0 + 0 + + + 13563 + 38 + 0 + 0 + 0 + + + 13564 + 38 + 0 + 0 + 0 + + + 13565 + 1 + 0 + 0 + 0 + + + 13566 + 1 + 0 + 0 + 0 + + + 13567 + 1 + 0 + 0 + 0 + + + 13568 + 1 + 0 + 0 + 0 + + + 13569 + 1 + 0 + 0 + 0 + + + 13570 + 1 + 0 + 0 + 0 + + + 13571 + 1 + 0 + 0 + 0 + + + 13572 + 1 + 0 + 0 + 0 + + + 13573 + 1 + 0 + 0 + 0 + + + 13574 + 1 + 0 + 0 + 0 + + + 13575 + 1 + 0 + 0 + 0 + + + 13576 + 1 + 0 + 0 + 0 + + + 13577 + 1 + 0 + 0 + 0 + + + 13578 + 1 + 0 + 0 + 0 + + + 13579 + 1 + 0 + 0 + 0 + + + 13580 + 1 + 0 + 0 + 0 + + + 13581 + 1 + 0 + 0 + 0 + + + 13582 + 1 + 0 + 0 + 0 + + + 13583 + 1 + 0 + 0 + 0 + + + 13584 + 1 + 0 + 0 + 0 + + + 13585 + 1 + 0 + 0 + 0 + + + 13586 + 1 + 0 + 0 + 0 + + + 13587 + 4 + 0 + 0 + 0 + + + 13588 + 1 + 0 + 0 + 0 + + + 13589 + 2 + 0 + 0 + 0 + + + 13590 + 1 + 0 + 0 + 0 + + + 13591 + 1 + 0 + 0 + 0 + + + 13592 + 1 + 0 + 0 + 0 + + + 13593 + 1 + 0 + 0 + 0 + + + 13594 + 1 + 0 + 0 + 0 + + + 13595 + 1 + 0 + 0 + 0 + + + 13596 + 1 + 0 + 0 + 0 + + + 13597 + 1 + 0 + 0 + 0 + + + 13598 + 100 + 0 + 0 + 0 + + + 13599 + 100 + 0 + 0 + 0 + + + 13600 + 100 + 0 + 0 + 0 + + + 13601 + 100 + 0 + 0 + 0 + + + 13602 + 100 + 0 + 0 + 0 + + + 13603 + 100 + 0 + 0 + 0 + + + 13604 + 100 + 0 + 0 + 0 + + + 13605 + 100 + 0 + 0 + 0 + + + 13606 + 100 + 0 + 0 + 0 + + + 13607 + 100 + 0 + 0 + 0 + + + 13608 + 100 + 0 + 0 + 0 + + + 13609 + 100 + 0 + 0 + 0 + + + 13610 + 100 + 0 + 0 + 0 + + + 13611 + 100 + 0 + 0 + 0 + + + 13612 + 20 + 0 + 0 + 0 + + + 13613 + 20 + 0 + 0 + 0 + + + 13614 + 75 + 0 + 0 + 0 + + + 13615 + 75 + 0 + 0 + 0 + + + 13616 + 75 + 0 + 0 + 0 + + + 13617 + 75 + 0 + 0 + 0 + + + 13618 + 75 + 0 + 0 + 0 + + + 13619 + 75 + 0 + 0 + 0 + + + 13620 + 75 + 0 + 0 + 0 + + + 13621 + 75 + 0 + 0 + 0 + + + 13622 + 75 + 0 + 0 + 0 + + + 13623 + 75 + 0 + 0 + 0 + + + 13624 + 75 + 0 + 0 + 0 + + + 13625 + 75 + 0 + 0 + 0 + + + 13626 + 75 + 0 + 0 + 0 + + + 13627 + 75 + 0 + 0 + 0 + + + 13628 + 75 + 0 + 0 + 0 + + + 13629 + 15 + 0 + 0 + 0 + + + 13630 + 1500 + 0 + 0 + 0 + + + 13631 + 1500 + 0 + 0 + 0 + + + 13632 + 1500 + 0 + 0 + 0 + + + 13633 + 1500 + 0 + 0 + 0 + + + 13634 + 1500 + 0 + 0 + 0 + + + 13635 + 1500 + 0 + 0 + 0 + + + 13636 + 1500 + 0 + 0 + 0 + + + 13637 + 1500 + 0 + 0 + 0 + + + 13638 + 1500 + 0 + 0 + 0 + + + 13639 + 1500 + 0 + 0 + 0 + + + 13640 + 1500 + 0 + 0 + 0 + + + 13641 + 1500 + 0 + 0 + 0 + + + 13642 + 1500 + 0 + 0 + 0 + + + 13643 + 20 + 0 + 0 + 0 + + + 13644 + 20 + 0 + 0 + 0 + + + 13645 + 20 + 0 + 0 + 0 + + + 13646 + 20 + 0 + 0 + 0 + + + 13647 + 20 + 0 + 0 + 0 + + + 13648 + 20 + 0 + 0 + 0 + + + 13649 + 4 + 0 + 0 + 0 + + + 13650 + 1 + 0 + 0 + 0 + + + 13651 + 1 + 0 + 0 + 0 + + + 13652 + 1 + 0 + 0 + 0 + + + 13653 + 1 + 0 + 0 + 0 + + + 13654 + 1 + 0 + 0 + 0 + + + 13655 + 100 + 0 + 0 + 0 + + + 13656 + 75 + 0 + 0 + 0 + + + 13657 + 75 + 0 + 0 + 0 + + + 13658 + 75 + 0 + 0 + 0 + + + 13659 + 100 + 0 + 0 + 0 + + + 13660 + 200 + 0 + 0 + 0 + + + 13661 + 300 + 0 + 0 + 0 + + + 13662 + 1 + 0 + 0 + 0 + + + 13663 + 10 + 0 + 0 + 0 + + + 13664 + 10 + 0 + 0 + 0 + + + 13665 + 10 + 0 + 0 + 0 + + + 13666 + 10 + 0 + 0 + 0 + + + 13667 + 10 + 0 + 0 + 0 + + + 13668 + 10 + 0 + 0 + 0 + + + 13669 + 10 + 0 + 0 + 0 + + + 13670 + 10 + 0 + 0 + 0 + + + 13671 + 10 + 0 + 0 + 0 + + + 13672 + 10 + 0 + 0 + 0 + + + 13673 + 10 + 0 + 0 + 0 + + + 13674 + 10 + 0 + 0 + 0 + + + 13675 + 10 + 0 + 0 + 0 + + + 13676 + 10 + 0 + 0 + 0 + + + 13677 + 10 + 0 + 0 + 0 + + + 13678 + 10 + 0 + 0 + 0 + + + 13679 + 10 + 0 + 0 + 0 + + + 13680 + 10 + 0 + 0 + 0 + + + 13681 + 10 + 0 + 0 + 0 + + + 13682 + 10 + 0 + 0 + 0 + + + 13683 + 10 + 0 + 0 + 0 + + + 13684 + 10 + 0 + 0 + 0 + + + 13685 + 10 + 0 + 0 + 0 + + + 13686 + 10 + 0 + 0 + 0 + + + 13687 + 10 + 0 + 0 + 0 + + + 13688 + 10 + 0 + 0 + 0 + + + 13689 + 10 + 0 + 0 + 0 + + + 13690 + 10 + 0 + 0 + 0 + + + 13691 + 10 + 0 + 0 + 0 + + + 13692 + 10 + 0 + 0 + 0 + + + 13693 + 10 + 0 + 0 + 0 + + + 13694 + 10 + 0 + 0 + 0 + + + 13695 + 10 + 0 + 0 + 0 + + + 13696 + 10 + 0 + 0 + 0 + + + 13697 + 10 + 0 + 0 + 0 + + + 13698 + 10 + 0 + 0 + 0 + + + 13699 + 10 + 0 + 0 + 0 + + + 13700 + 10 + 0 + 0 + 0 + + + 13701 + 10 + 0 + 0 + 0 + + + 13702 + 10 + 0 + 0 + 0 + + + 13703 + 10 + 0 + 0 + 0 + + + 13704 + 10 + 0 + 0 + 0 + + + 13705 + 10 + 0 + 0 + 0 + + + 13706 + 10 + 0 + 0 + 0 + + + 13707 + 1 + 0 + 0 + 0 + + + 13708 + 1 + 0 + 0 + 0 + + + 13709 + 1 + 0 + 0 + 0 + + + 13710 + 1 + 0 + 0 + 0 + + + 13711 + 1 + 0 + 0 + 0 + + + 13712 + 1 + 0 + 0 + 0 + + + 13713 + 1 + 0 + 0 + 0 + + + 13714 + 1 + 0 + 0 + 0 + + + 13715 + 1 + 0 + 0 + 0 + + + 13716 + 1 + 0 + 0 + 0 + + + 13717 + 1 + 0 + 0 + 0 + + + 13718 + 1 + 0 + 0 + 0 + + + 13719 + 50 + 0 + 0 + 0 + + + 13720 + 14 + 0 + 0 + 0 + + + 13721 + 4 + 0 + 0 + 0 + + + 13722 + 7 + 0 + 0 + 0 + + + 13723 + 100 + 0 + 0 + 0 + + + 13724 + 100 + 0 + 0 + 0 + + + 13725 + 100 + 0 + 0 + 0 + + + 13726 + 100 + 0 + 0 + 0 + + + 13727 + 50 + 0 + 0 + 0 + + + 13728 + 1 + 0 + 0 + 0 + + + 13729 + 1 + 0 + 0 + 0 + + + 13730 + 1 + 0 + 0 + 0 + + + 13731 + 1 + 0 + 0 + 0 + + + 13732 + 1 + 0 + 0 + 0 + + + 13733 + 1 + 0 + 0 + 0 + + + 13734 + 70000 + 0 + 0 + 0 + + + 13735 + 70000 + 0 + 0 + 0 + + + 13736 + 1400000 + 0 + 0 + 0 + + + 13737 + 1400000 + 0 + 0 + 0 + + + 13738 + 2000000 + 0 + 0 + 0 + + + 13739 + 2000000 + 0 + 0 + 0 + + + 13740 + 2000000 + 0 + 0 + 0 + + + 13741 + 2000000 + 0 + 0 + 0 + + + 13742 + 2000000 + 0 + 0 + 0 + + + 13743 + 2000000 + 0 + 0 + 0 + + + 13744 + 2000000 + 0 + 0 + 0 + + + 13745 + 2000000 + 0 + 0 + 0 + + + 13746 + 750000 + 0 + 0 + 0 + + + 13747 + 750000 + 0 + 0 + 0 + + + 13748 + 750000 + 0 + 0 + 0 + + + 13749 + 750000 + 0 + 0 + 0 + + + 13750 + 750000 + 0 + 0 + 0 + + + 13751 + 750000 + 0 + 0 + 0 + + + 13752 + 750000 + 0 + 0 + 0 + + + 13753 + 750000 + 0 + 0 + 0 + + + 13754 + 750000 + 0 + 0 + 0 + + + 13755 + 750000 + 0 + 0 + 0 + + + 13756 + 40 + 0 + 0 + 0 + + + 13757 + 1 + 0 + 0 + 0 + + + 13758 + 1 + 0 + 0 + 0 + + + 13759 + 1 + 0 + 0 + 0 + + + 13760 + 1 + 0 + 0 + 0 + + + 13761 + 1 + 0 + 0 + 0 + + + 13762 + 1 + 0 + 0 + 0 + + + 13763 + 1 + 0 + 0 + 0 + + + 13764 + 1 + 0 + 0 + 0 + + + 13765 + 1 + 0 + 0 + 0 + + + 13766 + 1 + 0 + 0 + 0 + + + 13767 + 1 + 0 + 0 + 0 + + + 13768 + 1 + 0 + 0 + 0 + + + 13769 + 1 + 0 + 0 + 0 + + + 13770 + 1 + 0 + 0 + 0 + + + 13771 + 1 + 0 + 0 + 0 + + + 13772 + 1 + 0 + 0 + 0 + + + 13773 + 1 + 0 + 0 + 0 + + + 13774 + 1 + 0 + 0 + 0 + + + 13775 + 1 + 0 + 0 + 0 + + + 13776 + 1 + 0 + 0 + 0 + + + 13777 + 1 + 0 + 0 + 0 + + + 13778 + 1 + 0 + 0 + 0 + + + 13779 + 1 + 0 + 0 + 0 + + + 13780 + 1 + 0 + 0 + 0 + + + 13781 + 1 + 0 + 0 + 0 + + + 13782 + 1 + 0 + 0 + 0 + + + 13783 + 1 + 0 + 0 + 0 + + + 13784 + 1 + 0 + 0 + 0 + + + 13785 + 1 + 0 + 0 + 0 + + + 13786 + 1 + 0 + 0 + 0 + + + 13787 + 1 + 0 + 0 + 0 + + + 13788 + 1 + 0 + 0 + 0 + + + 13789 + 1 + 0 + 0 + 0 + + + 13790 + 1 + 0 + 0 + 0 + + + 13791 + 1 + 0 + 0 + 0 + + + 13792 + 1 + 0 + 0 + 0 + + + 13793 + 1 + 0 + 0 + 0 + + + 13794 + 1 + 0 + 0 + 0 + + + 13795 + 1 + 0 + 0 + 0 + + + 13796 + 1 + 0 + 0 + 0 + + + 13797 + 1 + 0 + 0 + 0 + + + 13798 + 1 + 0 + 0 + 0 + + + 13799 + 1 + 0 + 0 + 0 + + + 13800 + 1 + 0 + 0 + 0 + + + 13801 + 1 + 0 + 0 + 0 + + + 13802 + 1 + 0 + 0 + 0 + + + 13803 + 1 + 0 + 0 + 0 + + + 13804 + 1 + 0 + 0 + 0 + + + 13805 + 1 + 0 + 0 + 0 + + + 13806 + 1 + 0 + 0 + 0 + + + 13807 + 1 + 0 + 0 + 0 + + + 13808 + 1 + 0 + 0 + 0 + + + 13809 + 1 + 0 + 0 + 0 + + + 13810 + 1 + 0 + 0 + 0 + + + 13811 + 1 + 0 + 0 + 0 + + + 13812 + 1 + 0 + 0 + 0 + + + 13813 + 1 + 0 + 0 + 0 + + + 13814 + 1 + 0 + 0 + 0 + + + 13815 + 1 + 0 + 0 + 0 + + + 13816 + 1 + 0 + 0 + 0 + + + 13817 + 1 + 0 + 0 + 0 + + + 13818 + 1 + 0 + 0 + 0 + + + 13819 + 1 + 0 + 0 + 0 + + + 13820 + 1 + 0 + 0 + 0 + + + 13821 + 1 + 0 + 0 + 0 + + + 13822 + 1 + 0 + 0 + 0 + + + 13823 + 1 + 0 + 0 + 0 + + + 13824 + 1 + 0 + 0 + 0 + + + 13825 + 1 + 0 + 0 + 0 + + + 13826 + 1 + 0 + 0 + 0 + + + 13827 + 1 + 0 + 0 + 0 + + + 13828 + 1 + 0 + 0 + 0 + + + 13829 + 1 + 0 + 0 + 0 + + + 13830 + 1 + 0 + 0 + 0 + + + 13831 + 1 + 0 + 0 + 0 + + + 13832 + 1 + 0 + 0 + 0 + + + 13833 + 1 + 0 + 0 + 0 + + + 13834 + 1 + 0 + 0 + 0 + + + 13835 + 1 + 0 + 0 + 0 + + + 13836 + 1 + 0 + 0 + 0 + + + 13837 + 1 + 0 + 0 + 0 + + + 13838 + 1 + 0 + 0 + 0 + + + 13839 + 1 + 0 + 0 + 0 + + + 13840 + 1 + 0 + 0 + 0 + + + 13841 + 1 + 0 + 0 + 0 + + + 13842 + 1 + 0 + 0 + 0 + + + 13843 + 1 + 0 + 0 + 0 + + + 13844 + 1 + 0 + 0 + 0 + + + 13845 + 50000 + 0 + 0 + 0 + + + 13846 + 50000 + 0 + 0 + 0 + + + 13847 + 50000 + 0 + 0 + 0 + + + 13848 + 50000 + 0 + 0 + 0 + + + 13849 + 50000 + 0 + 0 + 0 + + + 13850 + 50000 + 0 + 0 + 0 + + + 13851 + 50000 + 0 + 0 + 0 + + + 13852 + 50000 + 0 + 0 + 0 + + + 13853 + 50000 + 0 + 0 + 0 + + + 13854 + 50000 + 0 + 0 + 0 + + + 13855 + 50000 + 0 + 0 + 0 + + + 13856 + 50000 + 0 + 0 + 0 + + + 13857 + 50000 + 0 + 0 + 0 + + + 13858 + 500000 + 0 + 0 + 0 + + + 13859 + 500000 + 0 + 0 + 0 + + + 13860 + 300000 + 0 + 0 + 0 + + + 13861 + 500000 + 0 + 0 + 0 + + + 13862 + 500000 + 0 + 0 + 0 + + + 13863 + 300000 + 0 + 0 + 0 + + + 13864 + 250000 + 0 + 0 + 0 + + + 13865 + 250000 + 0 + 0 + 0 + + + 13866 + 150000 + 0 + 0 + 0 + + + 13867 + 300000 + 0 + 0 + 0 + + + 13868 + 300000 + 0 + 0 + 0 + + + 13869 + 180000 + 0 + 0 + 0 + + + 13870 + 500000 + 0 + 0 + 0 + + + 13871 + 500000 + 0 + 0 + 0 + + + 13872 + 300000 + 0 + 0 + 0 + + + 13873 + 500000 + 0 + 0 + 0 + + + 13874 + 500000 + 0 + 0 + 0 + + + 13875 + 300000 + 0 + 0 + 0 + + + 13876 + 250000 + 0 + 0 + 0 + + + 13877 + 250000 + 0 + 0 + 0 + + + 13878 + 150000 + 0 + 0 + 0 + + + 13879 + 4000 + 0 + 0 + 0 + + + 13880 + 10000 + 0 + 0 + 0 + + + 13881 + 10000 + 0 + 0 + 0 + + + 13882 + 10000 + 0 + 0 + 0 + + + 13883 + 4000 + 0 + 0 + 0 + + + 13884 + 500000 + 0 + 0 + 0 + + + 13885 + 500000 + 0 + 0 + 0 + + + 13886 + 300000 + 0 + 0 + 0 + + + 13887 + 500000 + 0 + 0 + 0 + + + 13888 + 500000 + 0 + 0 + 0 + + + 13889 + 300000 + 0 + 0 + 0 + + + 13890 + 500000 + 0 + 0 + 0 + + + 13891 + 500000 + 0 + 0 + 0 + + + 13892 + 300000 + 0 + 0 + 0 + + + 13893 + 500000 + 0 + 0 + 0 + + + 13894 + 500000 + 0 + 0 + 0 + + + 13895 + 300000 + 0 + 0 + 0 + + + 13896 + 250000 + 0 + 0 + 0 + + + 13897 + 250000 + 0 + 0 + 0 + + + 13898 + 150000 + 0 + 0 + 0 + + + 13899 + 300000 + 0 + 0 + 0 + + + 13900 + 300000 + 0 + 0 + 0 + + + 13901 + 180000 + 0 + 0 + 0 + + + 13902 + 300000 + 0 + 0 + 0 + + + 13903 + 300000 + 0 + 0 + 0 + + + 13904 + 180000 + 0 + 0 + 0 + + + 13905 + 300000 + 0 + 0 + 0 + + + 13906 + 300000 + 0 + 0 + 0 + + + 13907 + 180000 + 0 + 0 + 0 + + + 13908 + 125000 + 0 + 0 + 0 + + + 13909 + 125000 + 0 + 0 + 0 + + + 13910 + 75000 + 0 + 0 + 0 + + + 13911 + 125000 + 0 + 0 + 0 + + + 13912 + 125000 + 0 + 0 + 0 + + + 13913 + 75000 + 0 + 0 + 0 + + + 13914 + 125000 + 0 + 0 + 0 + + + 13915 + 125000 + 0 + 0 + 0 + + + 13916 + 75000 + 0 + 0 + 0 + + + 13917 + 125000 + 0 + 0 + 0 + + + 13918 + 125000 + 0 + 0 + 0 + + + 13919 + 75000 + 0 + 0 + 0 + + + 13920 + 50000 + 0 + 0 + 0 + + + 13921 + 50000 + 0 + 0 + 0 + + + 13922 + 30000 + 0 + 0 + 0 + + + 13923 + 125000 + 0 + 0 + 0 + + + 13924 + 125000 + 0 + 0 + 0 + + + 13925 + 75000 + 0 + 0 + 0 + + + 13926 + 125000 + 0 + 0 + 0 + + + 13927 + 125000 + 0 + 0 + 0 + + + 13928 + 75000 + 0 + 0 + 0 + + + 13929 + 125000 + 0 + 0 + 0 + + + 13930 + 125000 + 0 + 0 + 0 + + + 13931 + 75000 + 0 + 0 + 0 + + + 13932 + 125000 + 0 + 0 + 0 + + + 13933 + 125000 + 0 + 0 + 0 + + + 13934 + 75000 + 0 + 0 + 0 + + + 13935 + 125000 + 0 + 0 + 0 + + + 13936 + 125000 + 0 + 0 + 0 + + + 13937 + 75000 + 0 + 0 + 0 + + + 13938 + 50000 + 0 + 0 + 0 + + + 13939 + 50000 + 0 + 0 + 0 + + + 13940 + 30000 + 0 + 0 + 0 + + + 13941 + 125000 + 0 + 0 + 0 + + + 13942 + 125000 + 0 + 0 + 0 + + + 13943 + 70000 + 0 + 0 + 0 + + + 13944 + 125000 + 0 + 0 + 0 + + + 13945 + 125000 + 0 + 0 + 0 + + + 13946 + 75000 + 0 + 0 + 0 + + + 13947 + 125000 + 0 + 0 + 0 + + + 13948 + 125000 + 0 + 0 + 0 + + + 13949 + 75000 + 0 + 0 + 0 + + + 13950 + 50000 + 0 + 0 + 0 + + + 13951 + 50000 + 0 + 0 + 0 + + + 13952 + 30000 + 0 + 0 + 0 + + + 13953 + 1000 + 0 + 0 + 0 + + + 13954 + 10000 + 0 + 0 + 0 + + + 13955 + 10000 + 0 + 0 + 0 + + + 13956 + 10000 + 0 + 0 + 0 + + + 13957 + 1000 + 0 + 0 + 0 + + + 13958 + 120000 + 0 + 0 + 0 + + + 13959 + 120000 + 0 + 0 + 0 + + + 13960 + 72000 + 0 + 0 + 0 + + + 13961 + 60000 + 0 + 0 + 0 + + + 13962 + 60000 + 0 + 0 + 0 + + + 13963 + 36000 + 0 + 0 + 0 + + + 13964 + 120000 + 0 + 0 + 0 + + + 13965 + 120000 + 0 + 0 + 0 + + + 13966 + 72000 + 0 + 0 + 0 + + + 13967 + 120000 + 0 + 0 + 0 + + + 13968 + 120000 + 0 + 0 + 0 + + + 13969 + 72000 + 0 + 0 + 0 + + + 13970 + 120000 + 0 + 0 + 0 + + + 13971 + 120000 + 0 + 0 + 0 + + + 13972 + 72000 + 0 + 0 + 0 + + + 13973 + 120000 + 0 + 0 + 0 + + + 13974 + 120000 + 0 + 0 + 0 + + + 13975 + 72000 + 0 + 0 + 0 + + + 13976 + 30000 + 0 + 0 + 0 + + + 13977 + 30000 + 0 + 0 + 0 + + + 13978 + 18000 + 0 + 0 + 0 + + + 13979 + 100000 + 0 + 0 + 0 + + + 13980 + 100000 + 0 + 0 + 0 + + + 13981 + 60000 + 0 + 0 + 0 + + + 13982 + 100000 + 0 + 0 + 0 + + + 13983 + 100000 + 0 + 0 + 0 + + + 13984 + 60000 + 0 + 0 + 0 + + + 13985 + 50000 + 0 + 0 + 0 + + + 13986 + 50000 + 0 + 0 + 0 + + + 13987 + 30000 + 0 + 0 + 0 + + + 13988 + 40000 + 0 + 0 + 0 + + + 13989 + 40000 + 0 + 0 + 0 + + + 13990 + 24000 + 0 + 0 + 0 + + + 13991 + 3 + 0 + 0 + 0 + + + 13992 + 3 + 0 + 0 + 0 + + + 13993 + 3 + 0 + 0 + 0 + + + 13994 + 3 + 0 + 0 + 0 + + + 13995 + 3 + 0 + 0 + 0 + + + 13996 + 3 + 0 + 0 + 0 + + + 13997 + 3 + 0 + 0 + 0 + + + 13998 + 3 + 0 + 0 + 0 + + + 13999 + 3 + 0 + 0 + 0 + + + 14000 + 3 + 0 + 0 + 0 + + + 14001 + 3 + 0 + 0 + 0 + + + 14002 + 3 + 0 + 0 + 0 + + + 14003 + 3 + 0 + 0 + 0 + + + 14004 + 3 + 0 + 0 + 0 + + + 14005 + 3 + 0 + 0 + 0 + + + 14006 + 3 + 0 + 0 + 0 + + + 14007 + 3 + 0 + 0 + 0 + + + 14008 + 3 + 0 + 0 + 0 + + + 14009 + 3 + 0 + 0 + 0 + + + 14010 + 3 + 0 + 0 + 0 + + + 14011 + 3 + 0 + 0 + 0 + + + 14012 + 3 + 0 + 0 + 0 + + + 14013 + 3 + 0 + 0 + 0 + + + 14014 + 3 + 0 + 0 + 0 + + + 14015 + 3 + 0 + 0 + 0 + + + 14016 + 3 + 0 + 0 + 0 + + + 14017 + 3 + 0 + 0 + 0 + + + 14018 + 3 + 0 + 0 + 0 + + + 14019 + 3 + 0 + 0 + 0 + + + 14020 + 3 + 0 + 0 + 0 + + + 14021 + 3 + 0 + 0 + 0 + + + 14022 + 3 + 0 + 0 + 0 + + + 14023 + 3 + 0 + 0 + 0 + + + 14024 + 3 + 0 + 0 + 0 + + + 14025 + 3 + 0 + 0 + 0 + + + 14026 + 3 + 0 + 0 + 0 + + + 14027 + 3 + 0 + 0 + 0 + + + 14028 + 3 + 0 + 0 + 0 + + + 14029 + 3 + 0 + 0 + 0 + + + 14030 + 3 + 0 + 0 + 0 + + + 14031 + 3 + 0 + 0 + 0 + + + 14032 + 3 + 0 + 0 + 0 + + + 14033 + 3 + 0 + 0 + 0 + + + 14034 + 3 + 0 + 0 + 0 + + + 14035 + 3 + 0 + 0 + 0 + + + 14036 + 3 + 0 + 0 + 0 + + + 14037 + 3 + 0 + 0 + 0 + + + 14038 + 3 + 0 + 0 + 0 + + + 14039 + 3 + 0 + 0 + 0 + + + 14040 + 3 + 0 + 0 + 0 + + + 14041 + 3 + 0 + 0 + 0 + + + 14042 + 3 + 0 + 0 + 0 + + + 14043 + 3 + 0 + 0 + 0 + + + 14044 + 3 + 0 + 0 + 0 + + + 14045 + 3 + 0 + 0 + 0 + + + 14046 + 3 + 0 + 0 + 0 + + + 14047 + 3 + 0 + 0 + 0 + + + 14048 + 3 + 0 + 0 + 0 + + + 14049 + 3 + 0 + 0 + 0 + + + 14050 + 3 + 0 + 0 + 0 + + + 14051 + 3 + 0 + 0 + 0 + + + 14052 + 3 + 0 + 0 + 0 + + + 14053 + 3 + 0 + 0 + 0 + + + 14054 + 3 + 0 + 0 + 0 + + + 14055 + 3 + 0 + 0 + 0 + + + 14056 + 5 + 0 + 0 + 0 + + + 14057 + 25 + 0 + 0 + 0 + + + 14058 + 2 + 0 + 0 + 0 + + + 14059 + 4 + 0 + 0 + 0 + + + 14060 + 4 + 0 + 0 + 0 + + + 14061 + 2 + 0 + 0 + 0 + + + 14062 + 2 + 0 + 0 + 0 + + + 14063 + 1 + 0 + 0 + 0 + + + 14064 + 5 + 0 + 0 + 0 + + + 14065 + 1 + 0 + 0 + 0 + + + 14066 + 1 + 0 + 0 + 0 + + + 14067 + 1 + 0 + 0 + 0 + + + 14068 + 15 + 0 + 0 + 0 + + + 14069 + 2 + 0 + 0 + 0 + + + 14070 + 1 + 0 + 0 + 0 + + + 14071 + 1 + 0 + 0 + 0 + + + 14072 + 1 + 0 + 0 + 0 + + + 14073 + 1 + 0 + 0 + 0 + + + 14074 + 1 + 0 + 0 + 0 + + + 14075 + 1 + 0 + 0 + 0 + + + 14076 + 15 + 0 + 0 + 0 + + + 14077 + 15 + 0 + 0 + 0 + + + 14078 + 15 + 0 + 0 + 0 + + + 14079 + 15 + 0 + 0 + 0 + + + 14080 + 15 + 0 + 0 + 0 + + + 14081 + 15 + 0 + 0 + 0 + + + 14082 + 1 + 0 + 0 + 0 + + + 14083 + 1 + 0 + 0 + 0 + + + 14084 + 1 + 0 + 0 + 0 + + + 14085 + 1 + 0 + 0 + 0 + + + 14086 + 15 + 0 + 0 + 0 + + + 14087 + 15 + 0 + 0 + 0 + + + 14088 + 15 + 0 + 0 + 0 + + + 14089 + 1 + 0 + 0 + 0 + + + 14090 + 1 + 0 + 0 + 0 + + + 14091 + 1 + 0 + 0 + 0 + + + 14092 + 1 + 0 + 0 + 0 + + + 14093 + 1 + 0 + 0 + 0 + + + 14094 + 43333 + 0 + 0 + 0 + + + 14095 + 42667 + 0 + 0 + 0 + + + 14096 + 23467 + 0 + 0 + 0 + + + 14097 + 17066 + 0 + 0 + 0 + + + 14098 + 21333 + 0 + 0 + 0 + + + 14099 + 21333 + 0 + 0 + 0 + + + 14100 + 21333 + 0 + 0 + 0 + + + 14101 + 21333 + 0 + 0 + 0 + + + 14102 + 21333 + 0 + 0 + 0 + + + 14103 + 21333 + 0 + 0 + 0 + + + 14104 + 21333 + 0 + 0 + 0 + + + 14105 + 21333 + 0 + 0 + 0 + + + 14106 + 21333 + 0 + 0 + 0 + + + 14107 + 21333 + 0 + 0 + 0 + + + 14108 + 21333 + 0 + 0 + 0 + + + 14109 + 21333 + 0 + 0 + 0 + + + 14110 + 1 + 0 + 0 + 0 + + + 14111 + 21333 + 0 + 0 + 0 + + + 14112 + 21333 + 0 + 0 + 0 + + + 14113 + 21333 + 0 + 0 + 0 + + + 14114 + 43333 + 0 + 0 + 0 + + + 14115 + 42667 + 0 + 0 + 0 + + + 14116 + 23467 + 0 + 0 + 0 + + + 14117 + 17066 + 0 + 0 + 0 + + + 14118 + 43333 + 0 + 0 + 0 + + + 14119 + 42667 + 0 + 0 + 0 + + + 14120 + 23467 + 0 + 0 + 0 + + + 14121 + 17066 + 0 + 0 + 0 + + + 14122 + 30 + 0 + 0 + 0 + + + 14123 + 30 + 0 + 0 + 0 + + + 14124 + 60 + 0 + 0 + 0 + + + 14125 + 60 + 0 + 0 + 0 + + + 14126 + 90 + 0 + 0 + 0 + + + 14127 + 90 + 0 + 0 + 0 + + + 14128 + 120 + 0 + 0 + 0 + + + 14129 + 120 + 0 + 0 + 0 + + + 14130 + 150 + 0 + 0 + 0 + + + 14131 + 150 + 0 + 0 + 0 + + + 14132 + 30 + 0 + 0 + 0 + + + 14133 + 30 + 0 + 0 + 0 + + + 14134 + 60 + 0 + 0 + 0 + + + 14135 + 60 + 0 + 0 + 0 + + + 14136 + 90 + 0 + 0 + 0 + + + 14137 + 90 + 0 + 0 + 0 + + + 14138 + 120 + 0 + 0 + 0 + + + 14139 + 120 + 0 + 0 + 0 + + + 14140 + 150 + 0 + 0 + 0 + + + 14141 + 150 + 0 + 0 + 0 + + + 14142 + 30 + 0 + 0 + 0 + + + 14143 + 30 + 0 + 0 + 0 + + + 14144 + 60 + 0 + 0 + 0 + + + 14145 + 60 + 0 + 0 + 0 + + + 14146 + 90 + 0 + 0 + 0 + + + 14147 + 90 + 0 + 0 + 0 + + + 14148 + 120 + 0 + 0 + 0 + + + 14149 + 120 + 0 + 0 + 0 + + + 14150 + 150 + 0 + 0 + 0 + + + 14151 + 150 + 0 + 0 + 0 + + + 14152 + 30 + 0 + 0 + 0 + + + 14153 + 30 + 0 + 0 + 0 + + + 14154 + 60 + 0 + 0 + 0 + + + 14155 + 60 + 0 + 0 + 0 + + + 14156 + 90 + 0 + 0 + 0 + + + 14157 + 90 + 0 + 0 + 0 + + + 14158 + 120 + 0 + 0 + 0 + + + 14159 + 120 + 0 + 0 + 0 + + + 14160 + 150 + 0 + 0 + 0 + + + 14161 + 150 + 0 + 0 + 0 + + + 14162 + 30 + 0 + 0 + 0 + + + 14163 + 30 + 0 + 0 + 0 + + + 14164 + 60 + 0 + 0 + 0 + + + 14165 + 60 + 0 + 0 + 0 + + + 14166 + 90 + 0 + 0 + 0 + + + 14167 + 90 + 0 + 0 + 0 + + + 14168 + 120 + 0 + 0 + 0 + + + 14169 + 120 + 0 + 0 + 0 + + + 14170 + 150 + 0 + 0 + 0 + + + 14171 + 150 + 0 + 0 + 0 + + + 14172 + 30 + 0 + 0 + 0 + + + 14173 + 30 + 0 + 0 + 0 + + + 14174 + 60 + 0 + 0 + 0 + + + 14175 + 60 + 0 + 0 + 0 + + + 14176 + 90 + 0 + 0 + 0 + + + 14177 + 90 + 0 + 0 + 0 + + + 14178 + 120 + 0 + 0 + 0 + + + 14179 + 120 + 0 + 0 + 0 + + + 14180 + 150 + 0 + 0 + 0 + + + 14181 + 150 + 0 + 0 + 0 + + + 14182 + 15 + 0 + 0 + 0 + + + 14183 + 15 + 0 + 0 + 0 + + + 14184 + 30 + 0 + 0 + 0 + + + 14185 + 30 + 0 + 0 + 0 + + + 14186 + 45 + 0 + 0 + 0 + + + 14187 + 45 + 0 + 0 + 0 + + + 14188 + 60 + 0 + 0 + 0 + + + 14189 + 60 + 0 + 0 + 0 + + + 14190 + 75 + 0 + 0 + 0 + + + 14191 + 75 + 0 + 0 + 0 + + + 14192 + 30 + 0 + 0 + 0 + + + 14193 + 30 + 0 + 0 + 0 + + + 14194 + 60 + 0 + 0 + 0 + + + 14195 + 60 + 0 + 0 + 0 + + + 14196 + 90 + 0 + 0 + 0 + + + 14197 + 90 + 0 + 0 + 0 + + + 14198 + 120 + 0 + 0 + 0 + + + 14199 + 120 + 0 + 0 + 0 + + + 14200 + 150 + 0 + 0 + 0 + + + 14201 + 150 + 0 + 0 + 0 + + + 14202 + 2 + 0 + 0 + 0 + + + 14203 + 4 + 0 + 0 + 0 + + + 14204 + 6 + 0 + 0 + 0 + + + 14205 + 8 + 0 + 0 + 0 + + + 14206 + 10 + 0 + 0 + 0 + + + 14207 + 150 + 0 + 0 + 0 + + + 14208 + 150 + 0 + 0 + 0 + + + 14209 + 120 + 0 + 0 + 0 + + + 14210 + 120 + 0 + 0 + 0 + + + 14211 + 90 + 0 + 0 + 0 + + + 14212 + 90 + 0 + 0 + 0 + + + 14213 + 60 + 0 + 0 + 0 + + + 14214 + 60 + 0 + 0 + 0 + + + 14215 + 30 + 0 + 0 + 0 + + + 14216 + 30 + 0 + 0 + 0 + + + 14217 + 150 + 0 + 0 + 0 + + + 14218 + 150 + 0 + 0 + 0 + + + 14219 + 120 + 0 + 0 + 0 + + + 14220 + 120 + 0 + 0 + 0 + + + 14221 + 90 + 0 + 0 + 0 + + + 14222 + 90 + 0 + 0 + 0 + + + 14223 + 60 + 0 + 0 + 0 + + + 14224 + 60 + 0 + 0 + 0 + + + 14225 + 30 + 0 + 0 + 0 + + + 14226 + 30 + 0 + 0 + 0 + + + 14227 + 150 + 0 + 0 + 0 + + + 14228 + 150 + 0 + 0 + 0 + + + 14229 + 120 + 0 + 0 + 0 + + + 14230 + 120 + 0 + 0 + 0 + + + 14231 + 90 + 0 + 0 + 0 + + + 14232 + 90 + 0 + 0 + 0 + + + 14233 + 60 + 0 + 0 + 0 + + + 14234 + 60 + 0 + 0 + 0 + + + 14235 + 30 + 0 + 0 + 0 + + + 14236 + 30 + 0 + 0 + 0 + + + 14237 + 150 + 0 + 0 + 0 + + + 14238 + 150 + 0 + 0 + 0 + + + 14239 + 120 + 0 + 0 + 0 + + + 14240 + 120 + 0 + 0 + 0 + + + 14241 + 90 + 0 + 0 + 0 + + + 14242 + 90 + 0 + 0 + 0 + + + 14243 + 60 + 0 + 0 + 0 + + + 14244 + 60 + 0 + 0 + 0 + + + 14245 + 30 + 0 + 0 + 0 + + + 14246 + 30 + 0 + 0 + 0 + + + 14247 + 150 + 0 + 0 + 0 + + + 14248 + 150 + 0 + 0 + 0 + + + 14249 + 120 + 0 + 0 + 0 + + + 14250 + 120 + 0 + 0 + 0 + + + 14251 + 90 + 0 + 0 + 0 + + + 14252 + 90 + 0 + 0 + 0 + + + 14253 + 60 + 0 + 0 + 0 + + + 14254 + 60 + 0 + 0 + 0 + + + 14255 + 30 + 0 + 0 + 0 + + + 14256 + 30 + 0 + 0 + 0 + + + 14257 + 150 + 0 + 0 + 0 + + + 14258 + 150 + 0 + 0 + 0 + + + 14259 + 120 + 0 + 0 + 0 + + + 14260 + 120 + 0 + 0 + 0 + + + 14261 + 90 + 0 + 0 + 0 + + + 14262 + 90 + 0 + 0 + 0 + + + 14263 + 60 + 0 + 0 + 0 + + + 14264 + 60 + 0 + 0 + 0 + + + 14265 + 30 + 0 + 0 + 0 + + + 14266 + 30 + 0 + 0 + 0 + + + 14267 + 150 + 0 + 0 + 0 + + + 14268 + 150 + 0 + 0 + 0 + + + 14269 + 120 + 0 + 0 + 0 + + + 14270 + 120 + 0 + 0 + 0 + + + 14271 + 90 + 0 + 0 + 0 + + + 14272 + 90 + 0 + 0 + 0 + + + 14273 + 60 + 0 + 0 + 0 + + + 14274 + 60 + 0 + 0 + 0 + + + 14275 + 30 + 0 + 0 + 0 + + + 14276 + 30 + 0 + 0 + 0 + + + 14277 + 150 + 0 + 0 + 0 + + + 14278 + 150 + 0 + 0 + 0 + + + 14279 + 120 + 0 + 0 + 0 + + + 14280 + 120 + 0 + 0 + 0 + + + 14281 + 90 + 0 + 0 + 0 + + + 14282 + 90 + 0 + 0 + 0 + + + 14283 + 60 + 0 + 0 + 0 + + + 14284 + 60 + 0 + 0 + 0 + + + 14285 + 30 + 0 + 0 + 0 + + + 14286 + 30 + 0 + 0 + 0 + + + 14287 + 30 + 0 + 0 + 0 + + + 14288 + 30 + 0 + 0 + 0 + + + 14289 + 60 + 0 + 0 + 0 + + + 14290 + 60 + 0 + 0 + 0 + + + 14291 + 90 + 0 + 0 + 0 + + + 14292 + 90 + 0 + 0 + 0 + + + 14293 + 120 + 0 + 0 + 0 + + + 14294 + 120 + 0 + 0 + 0 + + + 14295 + 150 + 0 + 0 + 0 + + + 14296 + 150 + 0 + 0 + 0 + + + 14297 + 30 + 0 + 0 + 0 + + + 14298 + 30 + 0 + 0 + 0 + + + 14299 + 60 + 0 + 0 + 0 + + + 14300 + 60 + 0 + 0 + 0 + + + 14301 + 90 + 0 + 0 + 0 + + + 14302 + 90 + 0 + 0 + 0 + + + 14303 + 120 + 0 + 0 + 0 + + + 14304 + 120 + 0 + 0 + 0 + + + 14305 + 150 + 0 + 0 + 0 + + + 14306 + 150 + 0 + 0 + 0 + + + 14307 + 30 + 0 + 0 + 0 + + + 14308 + 30 + 0 + 0 + 0 + + + 14309 + 60 + 0 + 0 + 0 + + + 14310 + 60 + 0 + 0 + 0 + + + 14311 + 90 + 0 + 0 + 0 + + + 14312 + 90 + 0 + 0 + 0 + + + 14313 + 120 + 0 + 0 + 0 + + + 14314 + 120 + 0 + 0 + 0 + + + 14315 + 150 + 0 + 0 + 0 + + + 14316 + 150 + 0 + 0 + 0 + + + 14317 + 30 + 0 + 0 + 0 + + + 14318 + 30 + 0 + 0 + 0 + + + 14319 + 60 + 0 + 0 + 0 + + + 14320 + 60 + 0 + 0 + 0 + + + 14321 + 90 + 0 + 0 + 0 + + + 14322 + 90 + 0 + 0 + 0 + + + 14323 + 120 + 0 + 0 + 0 + + + 14324 + 120 + 0 + 0 + 0 + + + 14325 + 150 + 0 + 0 + 0 + + + 14326 + 150 + 0 + 0 + 0 + + + 14327 + 30 + 0 + 0 + 0 + + + 14328 + 30 + 0 + 0 + 0 + + + 14329 + 60 + 0 + 0 + 0 + + + 14330 + 60 + 0 + 0 + 0 + + + 14331 + 90 + 0 + 0 + 0 + + + 14332 + 90 + 0 + 0 + 0 + + + 14333 + 120 + 0 + 0 + 0 + + + 14334 + 120 + 0 + 0 + 0 + + + 14335 + 150 + 0 + 0 + 0 + + + 14336 + 150 + 0 + 0 + 0 + + + 14337 + 30 + 0 + 0 + 0 + + + 14338 + 30 + 0 + 0 + 0 + + + 14339 + 60 + 0 + 0 + 0 + + + 14340 + 60 + 0 + 0 + 0 + + + 14341 + 90 + 0 + 0 + 0 + + + 14342 + 90 + 0 + 0 + 0 + + + 14343 + 120 + 0 + 0 + 0 + + + 14344 + 120 + 0 + 0 + 0 + + + 14345 + 150 + 0 + 0 + 0 + + + 14346 + 150 + 0 + 0 + 0 + + + 14347 + 30 + 0 + 0 + 0 + + + 14348 + 30 + 0 + 0 + 0 + + + 14349 + 60 + 0 + 0 + 0 + + + 14350 + 60 + 0 + 0 + 0 + + + 14351 + 90 + 0 + 0 + 0 + + + 14352 + 90 + 0 + 0 + 0 + + + 14353 + 120 + 0 + 0 + 0 + + + 14354 + 120 + 0 + 0 + 0 + + + 14355 + 150 + 0 + 0 + 0 + + + 14356 + 150 + 0 + 0 + 0 + + + 14357 + 30 + 0 + 0 + 0 + + + 14358 + 30 + 0 + 0 + 0 + + + 14359 + 60 + 0 + 0 + 0 + + + 14360 + 60 + 0 + 0 + 0 + + + 14361 + 90 + 0 + 0 + 0 + + + 14362 + 90 + 0 + 0 + 0 + + + 14363 + 120 + 0 + 0 + 0 + + + 14364 + 120 + 0 + 0 + 0 + + + 14365 + 150 + 0 + 0 + 0 + + + 14366 + 150 + 0 + 0 + 0 + + + 14367 + 30 + 0 + 0 + 0 + + + 14368 + 30 + 0 + 0 + 0 + + + 14369 + 60 + 0 + 0 + 0 + + + 14370 + 60 + 0 + 0 + 0 + + + 14371 + 90 + 0 + 0 + 0 + + + 14372 + 90 + 0 + 0 + 0 + + + 14373 + 120 + 0 + 0 + 0 + + + 14374 + 120 + 0 + 0 + 0 + + + 14375 + 150 + 0 + 0 + 0 + + + 14376 + 150 + 0 + 0 + 0 + + + 14377 + 30 + 0 + 0 + 0 + + + 14378 + 30 + 0 + 0 + 0 + + + 14379 + 60 + 0 + 0 + 0 + + + 14380 + 60 + 0 + 0 + 0 + + + 14381 + 90 + 0 + 0 + 0 + + + 14382 + 90 + 0 + 0 + 0 + + + 14383 + 120 + 0 + 0 + 0 + + + 14384 + 120 + 0 + 0 + 0 + + + 14385 + 150 + 0 + 0 + 0 + + + 14386 + 150 + 0 + 0 + 0 + + + 14387 + 1 + 0 + 0 + 0 + + + 14389 + 1 + 0 + 0 + 0 + + + 14391 + 30 + 0 + 0 + 0 + + + 14392 + 30 + 0 + 0 + 0 + + + 14393 + 60 + 0 + 0 + 0 + + + 14394 + 60 + 0 + 0 + 0 + + + 14395 + 90 + 0 + 0 + 0 + + + 14396 + 90 + 0 + 0 + 0 + + + 14397 + 120 + 0 + 0 + 0 + + + 14398 + 120 + 0 + 0 + 0 + + + 14399 + 150 + 0 + 0 + 0 + + + 14400 + 150 + 0 + 0 + 0 + + + 14401 + 30 + 0 + 0 + 0 + + + 14402 + 30 + 0 + 0 + 0 + + + 14403 + 60 + 0 + 0 + 0 + + + 14404 + 60 + 0 + 0 + 0 + + + 14405 + 90 + 0 + 0 + 0 + + + 14406 + 90 + 0 + 0 + 0 + + + 14407 + 120 + 0 + 0 + 0 + + + 14408 + 120 + 0 + 0 + 0 + + + 14409 + 150 + 0 + 0 + 0 + + + 14410 + 150 + 0 + 0 + 0 + + + 14411 + 30 + 0 + 0 + 0 + + + 14412 + 30 + 0 + 0 + 0 + + + 14413 + 60 + 0 + 0 + 0 + + + 14414 + 60 + 0 + 0 + 0 + + + 14415 + 90 + 0 + 0 + 0 + + + 14416 + 90 + 0 + 0 + 0 + + + 14417 + 120 + 0 + 0 + 0 + + + 14418 + 120 + 0 + 0 + 0 + + + 14419 + 150 + 0 + 0 + 0 + + + 14420 + 150 + 0 + 0 + 0 + + + 14421 + 30 + 0 + 0 + 0 + + + 14422 + 30 + 0 + 0 + 0 + + + 14423 + 30 + 0 + 0 + 0 + + + 14424 + 60 + 0 + 0 + 0 + + + 14425 + 60 + 0 + 0 + 0 + + + 14426 + 90 + 0 + 0 + 0 + + + 14427 + 90 + 0 + 0 + 0 + + + 14428 + 120 + 0 + 0 + 0 + + + 14429 + 120 + 0 + 0 + 0 + + + 14430 + 150 + 0 + 0 + 0 + + + 14431 + 150 + 0 + 0 + 0 + + + 14432 + 1 + 0 + 0 + 0 + + + 14433 + 1 + 0 + 0 + 0 + + + 14434 + 1 + 0 + 0 + 0 + + + 14435 + 1 + 0 + 0 + 0 + + + 14436 + 1 + 0 + 0 + 0 + + + 14437 + 1 + 0 + 0 + 0 + + + 14438 + 1 + 0 + 0 + 0 + + + 14439 + 1 + 0 + 0 + 0 + + + 14440 + 1 + 0 + 0 + 0 + + + 14441 + 1 + 0 + 0 + 0 + + + 14442 + 1 + 0 + 0 + 0 + + + 14443 + 1 + 0 + 0 + 0 + + + 14444 + 1 + 0 + 0 + 0 + + + 14445 + 1 + 0 + 0 + 0 + + + 14446 + 1 + 0 + 0 + 0 + + + 14447 + 1 + 0 + 0 + 0 + + + 14448 + 1 + 0 + 0 + 0 + + + 14449 + 1 + 0 + 0 + 0 + + + 14450 + 1 + 0 + 0 + 0 + + + 14451 + 1 + 0 + 0 + 0 + + + 14452 + 1 + 0 + 0 + 0 + + + 14453 + 1 + 0 + 0 + 0 + + + 14454 + 1 + 0 + 0 + 0 + + + 14455 + 1 + 0 + 0 + 0 + + + 14456 + 1 + 0 + 0 + 0 + + + 14457 + 1 + 0 + 0 + 0 + + + 14458 + 5 + 0 + 0 + 0 + + + 14459 + 1 + 0 + 0 + 0 + + + 14460 + 10 + 0 + 0 + 0 + + + 14461 + 1 + 0 + 0 + 0 + + + 14462 + 1 + 0 + 0 + 0 + + + 14463 + 1 + 0 + 0 + 0 + + + 14464 + 1 + 0 + 0 + 0 + + + 14465 + 1 + 0 + 0 + 0 + + + 14466 + 1 + 0 + 0 + 0 + + + 14467 + 1 + 0 + 0 + 0 + + + 14468 + 1 + 0 + 0 + 0 + + + 14469 + 1 + 0 + 0 + 0 + + + 14470 + 1 + 0 + 0 + 0 + + + 14471 + 1 + 0 + 0 + 0 + + + 14472 + 30000 + 0 + 0 + 0 + + + 14473 + 30000 + 0 + 0 + 0 + + + 14474 + 30000 + 0 + 0 + 0 + + + 14475 + 30000 + 0 + 0 + 0 + + + 14476 + 30000 + 0 + 0 + 0 + + + 14477 + 30000 + 0 + 0 + 0 + + + 14478 + 1 + 0 + 0 + 0 + + + 14479 + 1760000 + 0 + 0 + 0 + + + 14480 + 1760000 + 0 + 0 + 0 + + + 14481 + 1 + 0 + 0 + 0 + + + 14484 + 135000 + 0 + 0 + 0 + + + 14485 + 135000 + 0 + 0 + 0 + + + 14486 + 1 + 0 + 0 + 0 + + + 14487 + 1 + 0 + 0 + 0 + + + 14488 + 1 + 0 + 0 + 0 + + + 14489 + 1 + 0 + 0 + 0 + + + 14490 + 65000 + 0 + 0 + 0 + + + 14491 + 65000 + 0 + 0 + 0 + + + 14492 + 64000 + 0 + 0 + 0 + + + 14493 + 64000 + 0 + 0 + 0 + + + 14494 + 35200 + 0 + 0 + 0 + + + 14495 + 35200 + 0 + 0 + 0 + + + 14496 + 1 + 0 + 0 + 0 + + + 14497 + 120000 + 0 + 0 + 0 + + + 14498 + 120000 + 0 + 0 + 0 + + + 14499 + 15000 + 0 + 0 + 0 + + + 14500 + 15000 + 0 + 0 + 0 + + + 14501 + 80000 + 0 + 0 + 0 + + + 14502 + 80000 + 0 + 0 + 0 + + + 14503 + 1 + 0 + 0 + 0 + + + 14504 + 1 + 0 + 0 + 0 + + + 14505 + 1 + 0 + 0 + 0 + + + 14506 + 1 + 0 + 0 + 0 + + + 14507 + 1 + 0 + 0 + 0 + + + 14508 + 1 + 0 + 0 + 0 + + + 14509 + 1 + 0 + 0 + 0 + + + 14510 + 1 + 0 + 0 + 0 + + + 14511 + 1 + 0 + 0 + 0 + + + 14512 + 1 + 0 + 0 + 0 + + + 14513 + 1 + 0 + 0 + 0 + + + 14514 + 1 + 0 + 0 + 0 + + + 14515 + 1 + 0 + 0 + 0 + + + 14516 + 1 + 0 + 0 + 0 + + + 14517 + 1 + 0 + 0 + 0 + + + 14518 + 1 + 0 + 0 + 0 + + + 14519 + 1 + 0 + 0 + 0 + + + 14520 + 1 + 0 + 0 + 0 + + + 14521 + 1 + 0 + 0 + 0 + + + 14522 + 1 + 0 + 0 + 0 + + + 14523 + 1 + 0 + 0 + 0 + + + 14524 + 1 + 0 + 0 + 0 + + + 14525 + 20 + 0 + 0 + 0 + + + 14526 + 20 + 0 + 0 + 0 + + + 14527 + 20 + 0 + 0 + 0 + + + 14528 + 20 + 0 + 0 + 0 + + + 14529 + 20 + 0 + 0 + 0 + + + 14530 + 20 + 0 + 0 + 0 + + + 14531 + 20 + 0 + 0 + 0 + + + 14532 + 20 + 0 + 0 + 0 + + + 14533 + 1 + 0 + 0 + 0 + + + 14534 + 1 + 0 + 0 + 0 + + + 14535 + 1 + 0 + 0 + 0 + + + 14536 + 1 + 0 + 0 + 0 + + + 14537 + 1 + 0 + 0 + 0 + + + 14538 + 1 + 0 + 0 + 0 + + + 14539 + 9 + 0 + 0 + 0 + + + 14540 + 4 + 0 + 0 + 0 + + + 14541 + 1 + 0 + 0 + 0 + + + 14542 + 9 + 0 + 0 + 0 + + + 14543 + 4 + 0 + 0 + 0 + + + 14544 + 1 + 0 + 0 + 0 + + + 14545 + 1 + 0 + 0 + 0 + + + 14546 + 1 + 0 + 0 + 0 + + + 14547 + 1 + 0 + 0 + 0 + + + 14548 + 1 + 0 + 0 + 0 + + + 14549 + 1 + 0 + 0 + 0 + + + 14550 + 1 + 0 + 0 + 0 + + + 14551 + 1 + 0 + 0 + 0 + + + 14552 + 1 + 0 + 0 + 0 + + + 14553 + 1 + 0 + 0 + 0 + + + 14554 + 1 + 0 + 0 + 0 + + + 14555 + 1 + 0 + 0 + 0 + + + 14556 + 1 + 0 + 0 + 0 + + + 14557 + 1 + 0 + 0 + 0 + + + 14558 + 1 + 0 + 0 + 0 + + + 14559 + 1 + 0 + 0 + 0 + + + 14560 + 1 + 0 + 0 + 0 + + + 14561 + 1 + 0 + 0 + 0 + + + 14562 + 1 + 0 + 0 + 0 + + + 14563 + 1 + 0 + 0 + 0 + + + 14564 + 1 + 0 + 0 + 0 + + + 14565 + 1 + 0 + 0 + 0 + + + 14566 + 1 + 0 + 0 + 0 + + + 14567 + 1 + 0 + 0 + 0 + + + 14568 + 1 + 0 + 0 + 0 + + + 14569 + 1 + 0 + 0 + 0 + + + 14570 + 1 + 0 + 0 + 0 + + + 14571 + 1 + 0 + 0 + 0 + + + 14572 + 1 + 0 + 0 + 0 + + + 14573 + 1 + 0 + 0 + 0 + + + 14574 + 1 + 0 + 0 + 0 + + + 14575 + 1 + 0 + 0 + 0 + + + 14576 + 1 + 0 + 0 + 0 + + + 14577 + 100 + 0 + 0 + 0 + + + 14578 + 200 + 0 + 0 + 0 + + + 14579 + 300 + 0 + 0 + 0 + + + 14580 + 1000 + 0 + 0 + 0 + + + 14581 + 5000 + 0 + 0 + 0 + + + 14582 + 10000 + 0 + 0 + 0 + + + 14583 + 1 + 0 + 0 + 0 + + + 14584 + 500000 + 0 + 0 + 0 + + + 14585 + 1 + 0 + 0 + 0 + + + 14586 + 1 + 0 + 0 + 0 + + + 14587 + 1 + 0 + 0 + 0 + + + 14588 + 1 + 0 + 0 + 0 + + + 14589 + 1250 + 0 + 0 + 0 + + + 14590 + 1000 + 0 + 0 + 0 + + + 14591 + 1000 + 0 + 0 + 0 + + + 14592 + 1 + 0 + 0 + 0 + + + 14593 + 1 + 0 + 0 + 0 + + + 14594 + 1 + 0 + 0 + 0 + + + 14595 + 1 + 0 + 0 + 0 + + + 14596 + 1 + 0 + 0 + 0 + + + 14597 + 1 + 0 + 0 + 0 + + + 14598 + 1 + 0 + 0 + 0 + + + 14599 + 1 + 0 + 0 + 0 + + + 14600 + 1 + 0 + 0 + 0 + + + 14601 + 1 + 0 + 0 + 0 + + + 14602 + 1 + 0 + 0 + 0 + + + 14603 + 1 + 0 + 0 + 0 + + + 14604 + 1 + 0 + 0 + 0 + + + 14605 + 1 + 0 + 0 + 0 + + + 14606 + 1 + 0 + 0 + 0 + + + 14607 + 1 + 0 + 0 + 0 + + + 14608 + 1 + 0 + 0 + 0 + + + 14609 + 1 + 0 + 0 + 0 + + + 14610 + 1 + 0 + 0 + 0 + + + 14611 + 1 + 0 + 0 + 0 + + + 14612 + 1 + 0 + 0 + 0 + + + 14613 + 1 + 0 + 0 + 0 + + + 14614 + 1 + 0 + 0 + 0 + + + 14615 + 1 + 0 + 0 + 0 + + + 14616 + 100 + 0 + 0 + 0 + + + 14617 + 100 + 0 + 0 + 0 + + + 14618 + 1 + 0 + 0 + 0 + + + 14619 + 1 + 0 + 0 + 0 + + + 14620 + 1 + 0 + 0 + 0 + + + 14621 + 1 + 0 + 0 + 0 + + + 14622 + 498 + 0 + 0 + 0 + + + 14623 + 4986 + 0 + 0 + 0 + + + 14624 + 4986 + 0 + 0 + 0 + + + 14625 + 1 + 0 + 0 + 0 + + + 14626 + 1 + 0 + 0 + 0 + + + 14627 + 1 + 0 + 0 + 0 + + + 14628 + 1 + 0 + 0 + 0 + + + 14629 + 1 + 0 + 0 + 0 + + + 14630 + 1 + 0 + 0 + 0 + + + 14631 + 1 + 0 + 0 + 0 + + + 14632 + 200 + 0 + 0 + 0 + + + 14633 + 1 + 0 + 0 + 0 + + + 14634 + 1 + 0 + 0 + 0 + + + 14635 + 1 + 0 + 0 + 0 + + + 14636 + 650 + 0 + 0 + 0 + + + 14637 + 650 + 0 + 0 + 0 + + diff --git a/data/eco/grand_exchange_db.emp b/data/eco/grand_exchange_db.emp new file mode 100644 index 0000000..77daf35 Binary files /dev/null and b/data/eco/grand_exchange_db.emp differ diff --git a/data/eco/itemstostock.xml b/data/eco/itemstostock.xml new file mode 100644 index 0000000..3dd5ea3 --- /dev/null +++ b/data/eco/itemstostock.xml @@ -0,0 +1,16 @@ + + 2009scape + + + + + + + + + + + + + + diff --git a/data/eco/offer_dispatch.xml b/data/eco/offer_dispatch.xml new file mode 100644 index 0000000..796d2e9 --- /dev/null +++ b/data/eco/offer_dispatch.xml @@ -0,0 +1,16 @@ + + + + 1 + 453 + false + 1 + 0 + 90 + 1594270540275 + 6 + 0 + 3556498 + + 2 + diff --git a/data/eco/offer_dispatch_db.emp b/data/eco/offer_dispatch_db.emp new file mode 100644 index 0000000..9e7d3fa Binary files /dev/null and b/data/eco/offer_dispatch_db.emp differ diff --git a/data/global.sql b/data/global.sql new file mode 100644 index 0000000..8663186 --- /dev/null +++ b/data/global.sql @@ -0,0 +1,467 @@ +-- phpMyAdmin SQL Dump +-- version 4.9.0.1 +-- https://www.phpmyadmin.net/ +-- +-- Host: 127.0.0.1 +-- Generation Time: Nov 06, 2019 at 01:33 AM +-- Server version: 10.4.6-MariaDB +-- PHP Version: 7.3.9 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +SET AUTOCOMMIT = 0; +START TRANSACTION; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- Database: `global` +-- + +-- -------------------------------------------------------- + +-- +-- Table structure for table `dev_log` +-- + +CREATE TABLE `dev_log` ( + `id` int(11) UNSIGNED NOT NULL, + `username` varchar(15) DEFAULT NULL, + `content` longtext NOT NULL, + `date` timestamp NULL DEFAULT '0000-00-00 00:00:00' +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `highscores` +-- + +CREATE TABLE `highscores` ( + `id` int(11) UNSIGNED NOT NULL, + `username` varchar(20) DEFAULT NULL, + `overall_xp` int(11) NOT NULL DEFAULT 0, + `total_level` int(11) NOT NULL DEFAULT 0, + `ironManMode` varchar(15) NOT NULL DEFAULT 'NONE', + `xp_0` int(11) NOT NULL DEFAULT 0, + `xp_1` int(11) NOT NULL DEFAULT 0, + `xp_2` int(11) NOT NULL DEFAULT 0, + `xp_3` int(11) NOT NULL DEFAULT 0, + `xp_4` int(11) NOT NULL DEFAULT 0, + `xp_5` int(11) NOT NULL DEFAULT 0, + `xp_6` int(11) NOT NULL DEFAULT 0, + `xp_7` int(11) NOT NULL DEFAULT 0, + `xp_8` int(11) NOT NULL DEFAULT 0, + `xp_9` int(11) NOT NULL DEFAULT 0, + `xp_10` int(11) NOT NULL DEFAULT 0, + `xp_11` int(11) NOT NULL DEFAULT 0, + `xp_12` int(11) NOT NULL DEFAULT 0, + `xp_13` int(11) NOT NULL DEFAULT 0, + `xp_14` int(11) NOT NULL DEFAULT 0, + `xp_15` int(11) NOT NULL DEFAULT 0, + `xp_16` int(11) NOT NULL DEFAULT 0, + `xp_17` int(11) NOT NULL DEFAULT 0, + `xp_18` int(11) NOT NULL DEFAULT 0, + `xp_19` int(11) NOT NULL DEFAULT 0, + `xp_20` int(11) NOT NULL DEFAULT 0, + `xp_21` int(11) NOT NULL DEFAULT 0, + `xp_22` int(11) NOT NULL DEFAULT 0, + `xp_23` int(11) NOT NULL DEFAULT 0 +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `members` +-- + +CREATE TABLE `members` ( + `UID` int(11) UNSIGNED NOT NULL, + `email` varchar(50) NOT NULL DEFAULT '', + `username` varchar(15) DEFAULT NULL, + `password` varchar(100) DEFAULT NULL, + `salt` varchar(35) DEFAULT NULL, + `rights` int(1) NOT NULL DEFAULT 0, + `email_activated` int(1) NOT NULL DEFAULT 0, + `lastActive` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `donatorType` int(2) NOT NULL DEFAULT -1, + `donationTotal` double(10,2) NOT NULL DEFAULT 0.00, + `credits` int(5) NOT NULL DEFAULT 0, + `icon` int(2) NOT NULL DEFAULT 0, + `perks` varchar(500) NOT NULL DEFAULT '', + `ip` longtext DEFAULT NULL, + `mac` longtext DEFAULT NULL, + `serial` longtext DEFAULT NULL, + `computerName` varchar(2000) NOT NULL DEFAULT '', + `monthlyVotes` int(11) NOT NULL DEFAULT 0, + `netWorth` bigint(200) NOT NULL DEFAULT 0, + `forumUID` int(11) NOT NULL DEFAULT -1, + `ironManMode` varchar(15) NOT NULL DEFAULT 'NONE', + `bank` longtext DEFAULT NULL, + `inventory` longtext DEFAULT NULL, + `equipment` longtext DEFAULT NULL, + `ge` longtext DEFAULT NULL, + `muteTime` bigint(20) NOT NULL DEFAULT -1, + `banTime` bigint(20) NOT NULL DEFAULT -1, + `profileImage` varchar(300) DEFAULT NULL, + `contacts` longtext DEFAULT NULL, + `blocked` longtext DEFAULT NULL, + `clanName` varchar(15) NOT NULL DEFAULT '', + `currentClan` varchar(15) DEFAULT NULL, + `clanReqs` varchar(10) NOT NULL DEFAULT '1,0,8,9', + `disconnectTime` bigint(20) NOT NULL DEFAULT 0, + `lastWorld` int(3) NOT NULL DEFAULT -1, + `chatSettings` varchar(10) NOT NULL DEFAULT '0,0,0', + `timePlayed` bigint(20) DEFAULT 0, + `lastLogin` bigint(20) NOT NULL DEFAULT 0, + `lastGameIp` varchar(15) DEFAULT '', + `countryCode` int(11) NOT NULL DEFAULT 0, + `birthday` date DEFAULT NULL, + `online` tinyint(1) NOT NULL DEFAULT 0, + `signature` longtext DEFAULT NULL, + `joined_date` timestamp NULL DEFAULT NULL, + `posts` int(11) NOT NULL DEFAULT 0 +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- +-- Dumping data for table `members` +-- + +INSERT INTO `members` (`UID`, `email`, `username`, `password`, `salt`, `rights`, `email_activated`, `lastActive`, `donatorType`, `donationTotal`, `credits`, `icon`, `perks`, `ip`, `mac`, `serial`, `computerName`, `monthlyVotes`, `netWorth`, `forumUID`, `ironManMode`, `bank`, `inventory`, `equipment`, `ge`, `muteTime`, `banTime`, `profileImage`, `contacts`, `blocked`, `clanName`, `currentClan`, `clanReqs`, `disconnectTime`, `lastWorld`, `chatSettings`, `timePlayed`, `lastLogin`, `lastGameIp`, `countryCode`, `birthday`, `online`, `signature`, `joined_date`, `posts`) VALUES +(0, '', '2009Scape', '$2a$12$P0OU2A5S.lEYdkTq5kq3/u1UlfVkMYIS7WWbxsjjeyfxqTDbygpEe', '$2a$12$P0OU2A5S.lEYdkTq5kq3/u', 2, 0, '2019-11-06 00:29:03', 0, 0.00, 0, 0, '', '127.0.0.1', NULL, NULL, 'SERVER', 0, 0, -1, 'STANDARD', NULL, NULL, NULL, NULL, -1, -1, '', '', '', '2009Scape', '2009Scape', '0,0,8,9', 1572999889084, 1, '0,0,0', NULL, 1572999890885, '127.0.0.1', 0, NULL, 0, NULL, NULL, 0); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `messages` +-- + +CREATE TABLE `messages` ( + `id` int(11) UNSIGNED NOT NULL, + `sender` varchar(15) NOT NULL DEFAULT '', + `recipient` varchar(15) NOT NULL DEFAULT '', + `subject` varchar(40) NOT NULL DEFAULT '', + `content` longtext NOT NULL, + `date` timestamp NOT NULL DEFAULT current_timestamp(), + `is_read` tinyint(1) NOT NULL, + `s_delete` tinyint(11) NOT NULL, + `r_delete` tinyint(1) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `perks` +-- + +CREATE TABLE `perks` ( + `product_id` int(10) UNSIGNED NOT NULL, + `name` varchar(100) NOT NULL DEFAULT 'No Name', + `description` varchar(500) DEFAULT NULL, + `price` int(10) NOT NULL DEFAULT 0 +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- +-- Dumping data for table `perks` +-- + +INSERT INTO `perks` (`product_id`, `name`, `description`, `price`) VALUES +(2, 'Stamina Boost', 'Increase your stamina and run regeneration by a total of 40%.', 60), +(4, 'Green Thumb', 'With a 35% lifetime increase in your crops growing up healthy, they will be saved and you will also receive a better crop yield!', 100), +(5, 'Bird Man', 'Increase your rate of receiving a bird nest drop by 35%!', 50), +(6, 'Stoner', 'Increase your rate of receiving a gem stone drop by 35%!', 50), +(11, 'Unbreakable Forge', 'Ring of forging never breaks.', 30), +(12, 'Out of Grave Danger', 'Your gravestone will last up to twice as long with this perk.', 50), +(13, 'Sleight of Hand', 'With sleight of hand you will increase your success rates in all aspects of thieving. This includes pickpocketing and cracking wall safes for gems.', 50), +(14, 'Master Chef', 'As a soon to be Master Chef, you will receive a 20% increase in successfully cooking your food!', 50), +(16, 'Divine Intervention', 'The gods above intervene with your burying of bones. You have a 10% chance while burying a bone to keep it instead.', 70), +(17, 'Familiar Whisperer', 'Get to know your familiar better by increasing their lifespan by 50%.', 70), +(18, 'Barrows Befriender', 'Befriend the barrows brothers & never experience the wretched degrading of their armour again', 300), +(19, 'Abyss Befriender', 'Use the power of the abyss to make your Runecrafting pouches undegradable.', 150), +(21, 'Charge Befriender', 'The God\'s of the Hero\'s guild have blessed you with the power to use your jewerly free of charge.', 250), +(22, 'Golden Needle', 'Gain an extra 10% experience whilst spinning something on a spinning wheel, including flax. Creating an item made out of dragonhide rewards an extra 5% experience. Your crafting needle also never breaks and thread is consumed less often.\n', 50), +(24, 'Slayer Betrayer', 'Obtain the ability through the Slayer Masters to change your slayer task at will. Type ::cleartask to use.', 100), +(26, 'Thirst Quencher', 'The gods have blessed you with the knowledge of the deserts to gain the skills required to tap into an unlimited water supply.', 30), +(27, 'Double Trouble', 'Experience a chance of receiving double the resources through skills such as, mining, woodcutting, fishing, and many more.', 250), +(29, 'Godwars Befriender', 'Now blessed by the gods you have the ability to enter the chambers with a killcount of 30. You will also be granted half the time it takes to recharge at an altar.', 100), +(30, 'Prayer Betrayer', 'Experience half the prayer drain rate when this perk is enabled.', 150), +(31, 'Spell Swap', 'The ability to swap spell books without any charge of runes. Cannot be used in combat or in the wilderness.', 80), +(32, 'Dwarf Befriender', 'Befriended by the dwarfs you now have the ability to use double the cannon balls and experience no decay on your cannon.', 150), +(33, 'Powerpoint', 'This perk grants you double the points in all minigames.', 300), +(35, 'Charm Collector', 'Through the power of summoning you will automatically pick up any charms dropped in battle.', 100), +(36, 'Detective', 'You now have a solid 10% chance of a clue scroll drop from any monster that drops clues as well as a 50% better chance of super rare rewards such as 3rd age. You\'ll also experience a 50% increased chance to obtain more loot.', 250), +(40, 'Overcharge', 'The power from the overcharge lords is given to you. Your Dragonfire Shield will recharge fully every 10 minutes. The time between casts is also reduced by 50%.', 170), +(41, 'Unbreakable Crystal', 'This perk allows for your crystal bow to never degrade.', 350), +(42, 'Crusader', 'With this perk you will have a 25% chance to double loot the barrows chest.', 100), +(43, 'Pet Befriender', 'This perk gives you the ability to double your chances on getting boss/skilling pets!', 100), +(60, 'Bone Crusher', 'Automatically crushes your bones as they\'re dropped for prayer experience. Toggle this perk using ::bonecrusher', 100), +(70, 'Runestone Knowledge', 'You are given extended knowledge of the runecrafting skill and can now craft double death, law, cosmic, blood and nature runes.', 200), +(71, 'Coin machine', 'Automatically bank all coins dropped from NPC\'s and gives you 25% extra gold. Toggle this perk using ::coinmachine', 150), +(72, 'Fight Cave Fanatic', 'Eliminates the first 25 waves from the tzhaar fight caves.', 50), +(73, 'Decanter', 'Zahur will decant your noted potions if you have this perk.', 50); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `player_logs` +-- + +CREATE TABLE `player_logs` ( + `username` varchar(22) NOT NULL DEFAULT '', + `public_chat` longtext DEFAULT NULL, + `private_chat` longtext DEFAULT NULL, + `clan_chat` longtext DEFAULT NULL, + `address_log` longtext DEFAULT NULL, + `command_log` longtext DEFAULT NULL, + `trade_log` longtext DEFAULT NULL, + `ge_log` longtext DEFAULT NULL, + `duplication_log` longtext DEFAULT NULL, + `duel_log` longtext DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `punishments` +-- + +CREATE TABLE `punishments` ( + `address` varchar(100) NOT NULL DEFAULT '', + `type` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `security` +-- + +CREATE TABLE `security` ( + `id` int(11) UNSIGNED NOT NULL, + `ip` longtext NOT NULL, + `type` int(11) NOT NULL, + `timestamp` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `sys_logs` +-- + +CREATE TABLE `sys_logs` ( + `id` int(11) UNSIGNED NOT NULL, + `message` longtext NOT NULL, + `log_type` int(2) DEFAULT NULL, + `timestamp` timestamp NOT NULL DEFAULT current_timestamp(), + `IP_ADDRESS` varchar(30) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `validations` +-- + +CREATE TABLE `validations` ( + `id` int(11) UNSIGNED NOT NULL, + `username` varchar(20) DEFAULT NULL, + `code` varchar(30) DEFAULT NULL, + `type` int(2) NOT NULL DEFAULT 0, + `timestamp` timestamp NOT NULL DEFAULT current_timestamp(), + `value` longtext NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `votes` +-- + +CREATE TABLE `votes` ( + `id` int(11) NOT NULL, + `username` varchar(50) NOT NULL DEFAULT '', + `site` varchar(50) NOT NULL, + `timestamp` timestamp NOT NULL DEFAULT current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `voting_sites` +-- + +CREATE TABLE `voting_sites` ( + `name` varchar(20) NOT NULL DEFAULT 'Null', + `wait` int(5) NOT NULL DEFAULT 12, + `credits` int(2) NOT NULL DEFAULT 1, + `link` varchar(500) NOT NULL DEFAULT 'http://ariosrsps.com', + `get_command` varchar(20) NOT NULL DEFAULT '', + `host_name` varchar(500) NOT NULL DEFAULT '' +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `worlds` +-- + +CREATE TABLE `worlds` ( + `world` int(2) UNSIGNED NOT NULL, + `ip` varchar(20) NOT NULL DEFAULT '127.0.0.1', + `players` int(5) NOT NULL DEFAULT 0, + `country` int(1) NOT NULL DEFAULT 0, + `member` int(11) NOT NULL, + `revision` int(3) NOT NULL DEFAULT 530, + `lastResponse` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- +-- Dumping data for table `worlds` +-- + +INSERT INTO `worlds` (`world`, `ip`, `players`, `country`, `member`, `revision`, `lastResponse`) VALUES +(1, '127.0.0.1', 0, 22, 1, 530, '2019-11-06 00:24:54'); + +-- +-- Indexes for dumped tables +-- + +-- +-- Indexes for table `dev_log` +-- +ALTER TABLE `dev_log` + ADD PRIMARY KEY (`id`); + +-- +-- Indexes for table `highscores` +-- +ALTER TABLE `highscores` + ADD PRIMARY KEY (`id`); + +-- +-- Indexes for table `members` +-- +ALTER TABLE `members` + ADD PRIMARY KEY (`UID`); + +-- +-- Indexes for table `messages` +-- +ALTER TABLE `messages` + ADD PRIMARY KEY (`id`); + +-- +-- Indexes for table `perks` +-- +ALTER TABLE `perks` + ADD PRIMARY KEY (`product_id`); + +-- +-- Indexes for table `player_logs` +-- +ALTER TABLE `player_logs` + ADD PRIMARY KEY (`username`); + +-- +-- Indexes for table `security` +-- +ALTER TABLE `security` + ADD PRIMARY KEY (`id`); + +-- +-- Indexes for table `sys_logs` +-- +ALTER TABLE `sys_logs` + ADD PRIMARY KEY (`id`); + +-- +-- Indexes for table `validations` +-- +ALTER TABLE `validations` + ADD PRIMARY KEY (`id`); + +-- +-- Indexes for table `votes` +-- +ALTER TABLE `votes` + ADD KEY `id` (`id`); + +-- +-- Indexes for table `voting_sites` +-- +ALTER TABLE `voting_sites` + ADD PRIMARY KEY (`name`); + +-- +-- Indexes for table `worlds` +-- +ALTER TABLE `worlds` + ADD PRIMARY KEY (`world`); + +-- +-- AUTO_INCREMENT for dumped tables +-- + +-- +-- AUTO_INCREMENT for table `dev_log` +-- +ALTER TABLE `dev_log` + MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=34; + +-- +-- AUTO_INCREMENT for table `highscores` +-- +ALTER TABLE `highscores` + MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9; + +-- +-- AUTO_INCREMENT for table `members` +-- +ALTER TABLE `members` + MODIFY `UID` int(11) UNSIGNED NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `messages` +-- +ALTER TABLE `messages` + MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `perks` +-- +ALTER TABLE `perks` + MODIFY `product_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=74; + +-- +-- AUTO_INCREMENT for table `security` +-- +ALTER TABLE `security` + MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `sys_logs` +-- +ALTER TABLE `sys_logs` + MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `validations` +-- +ALTER TABLE `validations` + MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `votes` +-- +ALTER TABLE `votes` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; +COMMIT; + +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/data/kratoscache/cache/gluegen-rt.dll b/data/kratoscache/cache/gluegen-rt.dll new file mode 100644 index 0000000..281d389 Binary files /dev/null and b/data/kratoscache/cache/gluegen-rt.dll differ diff --git a/data/kratoscache/cache/jogl.dll b/data/kratoscache/cache/jogl.dll new file mode 100644 index 0000000..ee7a6a5 Binary files /dev/null and b/data/kratoscache/cache/jogl.dll differ diff --git a/data/kratoscache/cache/jogl_awt.dll b/data/kratoscache/cache/jogl_awt.dll new file mode 100644 index 0000000..2b47eee Binary files /dev/null and b/data/kratoscache/cache/jogl_awt.dll differ diff --git a/data/kratoscache/cache/main_file_cache.dat2 b/data/kratoscache/cache/main_file_cache.dat2 new file mode 100644 index 0000000..c88b179 Binary files /dev/null and b/data/kratoscache/cache/main_file_cache.dat2 differ diff --git a/data/kratoscache/cache/main_file_cache.idx0 b/data/kratoscache/cache/main_file_cache.idx0 new file mode 100644 index 0000000..29da3cf Binary files /dev/null and b/data/kratoscache/cache/main_file_cache.idx0 differ diff --git a/data/kratoscache/cache/main_file_cache.idx1 b/data/kratoscache/cache/main_file_cache.idx1 new file mode 100644 index 0000000..ed15fcd Binary files /dev/null and b/data/kratoscache/cache/main_file_cache.idx1 differ diff --git a/data/kratoscache/cache/main_file_cache.idx10 b/data/kratoscache/cache/main_file_cache.idx10 new file mode 100644 index 0000000..6a877e7 Binary files /dev/null and b/data/kratoscache/cache/main_file_cache.idx10 differ diff --git a/data/kratoscache/cache/main_file_cache.idx11 b/data/kratoscache/cache/main_file_cache.idx11 new file mode 100644 index 0000000..4b01cff Binary files /dev/null and b/data/kratoscache/cache/main_file_cache.idx11 differ diff --git a/data/kratoscache/cache/main_file_cache.idx12 b/data/kratoscache/cache/main_file_cache.idx12 new file mode 100644 index 0000000..3d70b60 Binary files /dev/null and b/data/kratoscache/cache/main_file_cache.idx12 differ diff --git a/data/kratoscache/cache/main_file_cache.idx13 b/data/kratoscache/cache/main_file_cache.idx13 new file mode 100644 index 0000000..b83d943 Binary files /dev/null and b/data/kratoscache/cache/main_file_cache.idx13 differ diff --git a/data/kratoscache/cache/main_file_cache.idx14 b/data/kratoscache/cache/main_file_cache.idx14 new file mode 100644 index 0000000..0364b66 Binary files /dev/null and b/data/kratoscache/cache/main_file_cache.idx14 differ diff --git a/data/kratoscache/cache/main_file_cache.idx15 b/data/kratoscache/cache/main_file_cache.idx15 new file mode 100644 index 0000000..8342b0f Binary files /dev/null and b/data/kratoscache/cache/main_file_cache.idx15 differ diff --git a/data/kratoscache/cache/main_file_cache.idx16 b/data/kratoscache/cache/main_file_cache.idx16 new file mode 100644 index 0000000..7d42f66 Binary files /dev/null and b/data/kratoscache/cache/main_file_cache.idx16 differ diff --git a/data/kratoscache/cache/main_file_cache.idx17 b/data/kratoscache/cache/main_file_cache.idx17 new file mode 100644 index 0000000..fe49379 Binary files /dev/null and b/data/kratoscache/cache/main_file_cache.idx17 differ diff --git a/data/kratoscache/cache/main_file_cache.idx18 b/data/kratoscache/cache/main_file_cache.idx18 new file mode 100644 index 0000000..479ae87 Binary files /dev/null and b/data/kratoscache/cache/main_file_cache.idx18 differ diff --git a/data/kratoscache/cache/main_file_cache.idx19 b/data/kratoscache/cache/main_file_cache.idx19 new file mode 100644 index 0000000..810189b Binary files /dev/null and b/data/kratoscache/cache/main_file_cache.idx19 differ diff --git a/data/kratoscache/cache/main_file_cache.idx2 b/data/kratoscache/cache/main_file_cache.idx2 new file mode 100644 index 0000000..73bf75f Binary files /dev/null and b/data/kratoscache/cache/main_file_cache.idx2 differ diff --git a/data/kratoscache/cache/main_file_cache.idx20 b/data/kratoscache/cache/main_file_cache.idx20 new file mode 100644 index 0000000..d988d17 Binary files /dev/null and b/data/kratoscache/cache/main_file_cache.idx20 differ diff --git a/data/kratoscache/cache/main_file_cache.idx21 b/data/kratoscache/cache/main_file_cache.idx21 new file mode 100644 index 0000000..d12d8a7 Binary files /dev/null and b/data/kratoscache/cache/main_file_cache.idx21 differ diff --git a/data/kratoscache/cache/main_file_cache.idx22 b/data/kratoscache/cache/main_file_cache.idx22 new file mode 100644 index 0000000..afdc8d5 Binary files /dev/null and b/data/kratoscache/cache/main_file_cache.idx22 differ diff --git a/data/kratoscache/cache/main_file_cache.idx23 b/data/kratoscache/cache/main_file_cache.idx23 new file mode 100644 index 0000000..0244a3a Binary files /dev/null and b/data/kratoscache/cache/main_file_cache.idx23 differ diff --git a/data/kratoscache/cache/main_file_cache.idx24 b/data/kratoscache/cache/main_file_cache.idx24 new file mode 100644 index 0000000..2b71c70 Binary files /dev/null and b/data/kratoscache/cache/main_file_cache.idx24 differ diff --git a/data/kratoscache/cache/main_file_cache.idx25 b/data/kratoscache/cache/main_file_cache.idx25 new file mode 100644 index 0000000..b4ddb25 Binary files /dev/null and b/data/kratoscache/cache/main_file_cache.idx25 differ diff --git a/data/kratoscache/cache/main_file_cache.idx255 b/data/kratoscache/cache/main_file_cache.idx255 new file mode 100644 index 0000000..f23e91e Binary files /dev/null and b/data/kratoscache/cache/main_file_cache.idx255 differ diff --git a/data/kratoscache/cache/main_file_cache.idx26 b/data/kratoscache/cache/main_file_cache.idx26 new file mode 100644 index 0000000..910dd24 Binary files /dev/null and b/data/kratoscache/cache/main_file_cache.idx26 differ diff --git a/data/kratoscache/cache/main_file_cache.idx27 b/data/kratoscache/cache/main_file_cache.idx27 new file mode 100644 index 0000000..ce542ef --- /dev/null +++ b/data/kratoscache/cache/main_file_cache.idx27 @@ -0,0 +1 @@ +ÿ \ No newline at end of file diff --git a/data/kratoscache/cache/main_file_cache.idx28 b/data/kratoscache/cache/main_file_cache.idx28 new file mode 100644 index 0000000..1aebb1e Binary files /dev/null and b/data/kratoscache/cache/main_file_cache.idx28 differ diff --git a/data/kratoscache/cache/main_file_cache.idx3 b/data/kratoscache/cache/main_file_cache.idx3 new file mode 100644 index 0000000..a3ac3e9 Binary files /dev/null and b/data/kratoscache/cache/main_file_cache.idx3 differ diff --git a/data/kratoscache/cache/main_file_cache.idx4 b/data/kratoscache/cache/main_file_cache.idx4 new file mode 100644 index 0000000..2a4fe1a Binary files /dev/null and b/data/kratoscache/cache/main_file_cache.idx4 differ diff --git a/data/kratoscache/cache/main_file_cache.idx5 b/data/kratoscache/cache/main_file_cache.idx5 new file mode 100644 index 0000000..088dca5 Binary files /dev/null and b/data/kratoscache/cache/main_file_cache.idx5 differ diff --git a/data/kratoscache/cache/main_file_cache.idx6 b/data/kratoscache/cache/main_file_cache.idx6 new file mode 100644 index 0000000..ec8863f Binary files /dev/null and b/data/kratoscache/cache/main_file_cache.idx6 differ diff --git a/data/kratoscache/cache/main_file_cache.idx7 b/data/kratoscache/cache/main_file_cache.idx7 new file mode 100644 index 0000000..2623b09 Binary files /dev/null and b/data/kratoscache/cache/main_file_cache.idx7 differ diff --git a/data/kratoscache/cache/main_file_cache.idx8 b/data/kratoscache/cache/main_file_cache.idx8 new file mode 100644 index 0000000..166ec53 Binary files /dev/null and b/data/kratoscache/cache/main_file_cache.idx8 differ diff --git a/data/kratoscache/cache/main_file_cache.idx9 b/data/kratoscache/cache/main_file_cache.idx9 new file mode 100644 index 0000000..d0703cb Binary files /dev/null and b/data/kratoscache/cache/main_file_cache.idx9 differ diff --git a/data/libs/clientlibs.jar b/data/libs/clientlibs.jar new file mode 100644 index 0000000..03c398f Binary files /dev/null and b/data/libs/clientlibs.jar differ diff --git a/data/libs/commons-io-2.4.jar b/data/libs/commons-io-2.4.jar new file mode 100644 index 0000000..90035a4 Binary files /dev/null and b/data/libs/commons-io-2.4.jar differ diff --git a/data/libs/guava-18.0.jar b/data/libs/guava-18.0.jar new file mode 100644 index 0000000..8f89e49 Binary files /dev/null and b/data/libs/guava-18.0.jar differ diff --git a/data/libs/javassist-3.20.0-GA.jar b/data/libs/javassist-3.20.0-GA.jar new file mode 100644 index 0000000..0f1ff72 Binary files /dev/null and b/data/libs/javassist-3.20.0-GA.jar differ diff --git a/data/libs/joda-time-2.9.9.jar b/data/libs/joda-time-2.9.9.jar new file mode 100644 index 0000000..b3080c4 Binary files /dev/null and b/data/libs/joda-time-2.9.9.jar differ diff --git a/data/libs/json-simple-1.1.1.jar b/data/libs/json-simple-1.1.1.jar new file mode 100644 index 0000000..66347a6 Binary files /dev/null and b/data/libs/json-simple-1.1.1.jar differ diff --git a/data/libs/json-simple-1.1.jar b/data/libs/json-simple-1.1.jar new file mode 100644 index 0000000..f395f41 Binary files /dev/null and b/data/libs/json-simple-1.1.jar differ diff --git a/data/libs/laf-plugin-7.2.1.jar b/data/libs/laf-plugin-7.2.1.jar new file mode 100644 index 0000000..82b0252 Binary files /dev/null and b/data/libs/laf-plugin-7.2.1.jar differ diff --git a/data/libs/laf-widget-7.2.1.jar b/data/libs/laf-widget-7.2.1.jar new file mode 100644 index 0000000..0371eb1 Binary files /dev/null and b/data/libs/laf-widget-7.2.1.jar differ diff --git a/data/libs/mysql-connector-java-5.1.30-bin.jar b/data/libs/mysql-connector-java-5.1.30-bin.jar new file mode 100644 index 0000000..afef9b2 Binary files /dev/null and b/data/libs/mysql-connector-java-5.1.30-bin.jar differ diff --git a/data/libs/reflections-0.9.10.jar b/data/libs/reflections-0.9.10.jar new file mode 100644 index 0000000..c255641 Binary files /dev/null and b/data/libs/reflections-0.9.10.jar differ diff --git a/data/libs/substance-7.2.1.jar b/data/libs/substance-7.2.1.jar new file mode 100644 index 0000000..20428dd Binary files /dev/null and b/data/libs/substance-7.2.1.jar differ diff --git a/data/libs/trident-7.2.1.jar b/data/libs/trident-7.2.1.jar new file mode 100644 index 0000000..54fb614 Binary files /dev/null and b/data/libs/trident-7.2.1.jar differ diff --git a/data/libs/twitter4j-core-4.0.3-SNAPSHOT.jar b/data/libs/twitter4j-core-4.0.3-SNAPSHOT.jar new file mode 100644 index 0000000..6aae534 Binary files /dev/null and b/data/libs/twitter4j-core-4.0.3-SNAPSHOT.jar differ diff --git a/data/players/.keepDirAlive b/data/players/.keepDirAlive new file mode 100644 index 0000000..e69de29 diff --git a/data/players/attributes/test.xml b/data/players/attributes/test.xml new file mode 100644 index 0000000..983acbe --- /dev/null +++ b/data/players/attributes/test.xml @@ -0,0 +1,2 @@ + + diff --git a/data/players/test.save b/data/players/test.save new file mode 100644 index 0000000..d637777 Binary files /dev/null and b/data/players/test.save differ diff --git a/data/plugin/Trivia/TriviaRewards.xml b/data/plugin/Trivia/TriviaRewards.xml new file mode 100644 index 0000000..0b21640 --- /dev/null +++ b/data/plugin/Trivia/TriviaRewards.xml @@ -0,0 +1,4 @@ + + + + diff --git a/data/server.sql b/data/server.sql new file mode 100644 index 0000000..06f6fa4 --- /dev/null +++ b/data/server.sql @@ -0,0 +1,24014 @@ +-- phpMyAdmin SQL Dump +-- version 5.0.2 +-- https://www.phpmyadmin.net/ +-- +-- Host: 127.0.0.1 +-- Generation Time: Jun 26, 2020 at 01:02 AM +-- Server version: 10.4.11-MariaDB +-- PHP Version: 7.4.5 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +START TRANSACTION; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- Database: `server` +-- + +-- -------------------------------------------------------- + +-- +-- Table structure for table `ammo_configs` +-- + +CREATE TABLE `ammo_configs` ( + `itemId` int(11) UNSIGNED NOT NULL, + `name` varchar(50) NOT NULL, + `start_graphic` varchar(11) NOT NULL DEFAULT '', + `darkbow_graphic` varchar(11) DEFAULT NULL, + `projectile` longtext NOT NULL, + `poison_damage` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- +-- Dumping data for table `ammo_configs` +-- + +INSERT INTO `ammo_configs` (`itemId`, `name`, `start_graphic`, `darkbow_graphic`, `projectile`, `poison_damage`) VALUES +(78, 'Ice arrows', '25,96', '1110,96', '16,40,36,41,46,5,0', 0), +(598, 'Bronze fire arrows', '26,96', '1113,96', '17,40,36,41,46,5,0', 0), +(732, 'Holy water', '193,0', '', '192,40,36,32,32,15,0', 0), +(800, 'Bronze thrownaxe', '43,96', '', '36,40,36,32,32,15,0', 0), +(801, 'Iron thrownaxe', '42,96', '', '35,40,36,32,32,15,0', 0), +(802, 'Steel thrownaxe', '44,96', '', '37,40,36,32,32,15,0', 0), +(803, 'Mithril thrownaxe', '45,96', '', '38,40,36,32,32,15,0', 0), +(804, 'Adamant thrownaxe', '46,96', '', '39,40,36,32,32,15,0', 0), +(805, 'Rune thrownaxe', '48,96', '', '41,40,36,32,32,15,0', 0), +(806, 'Bronze dart', '232,96', '', '226,40,36,32,32,15,0', 0), +(807, 'Iron dart', '233,96', '', '227,40,36,32,32,15,0', 0), +(808, 'Steel dart', '234,96', '', '228,40,36,32,32,15,0', 0), +(809, 'Mithril dart', '235,96', '', '229,40,36,32,32,15,0', 0), +(810, 'Adamant dart', '236,96', '', '230,40,36,32,32,15,0', 0), +(811, 'Rune dart', '237,96', '', '231,40,36,32,32,15,0', 0), +(812, 'Bronze dart(p)', '232,96', '', '226,40,36,32,32,15,0', 28), +(813, 'Iron dart(p)', '233,96', '', '227,40,36,32,32,15,0', 28), +(814, 'Steel dart(p)', '234,96', '', '228,40,36,32,32,15,0', 28), +(815, 'Mithril dart(p)', '235,96', '', '229,40,36,32,32,15,0', 28), +(816, 'Adamant dart(p)', '236,96', '', '230,40,36,32,32,15,0', 28), +(817, 'Rune dart(p)', '237,96', '', '231,40,36,32,32,15,0', 28), +(825, 'Bronze javelin', '206,96', '', '200,40,36,32,32,15,0', 0), +(826, 'Iron javelin', '207,96', '', '201,40,36,32,32,15,0', 0), +(827, 'Steel javelin', '208,96', '', '202,40,36,32,32,15,0', 0), +(828, 'Mithril javelin', '209,96', '', '203,40,36,32,32,15,0', 0), +(829, 'Adamant javelin', '210,96', '', '204,40,36,32,32,15,0', 0), +(830, 'Rune javelin', '211,96', '', '205,40,36,32,32,15,0', 0), +(831, 'Bronze javelin(p)', '206,96', '', '200,40,36,32,32,15,0', 28), +(832, 'Iron javelin(p)', '207,96', '', '201,40,36,32,32,15,0', 28), +(833, 'Steel javelin(p)', '208,96', '', '202,40,36,32,32,15,0', 28), +(834, 'Mithril javelin(p)', '209,96', '', '203,40,36,32,32,15,0', 28), +(835, 'Adamant javelin(p)', '210,96', '', '204,40,36,32,32,15,0', 28), +(836, 'Rune javelin(p)', '211,96', '', '205,40,36,32,32,15,0', 28), +(863, 'Iron knife', '220,96', '', '213,40,36,32,32,15,0', 0), +(864, 'Bronze knife', '219,96', '', '212,40,36,32,32,15,0', 0), +(865, 'Steel knife', '221,96', '', '214,40,36,32,32,15,0', 0), +(866, 'Mithril knife', '223,96', '', '216,40,36,32,32,15,0', 0), +(867, 'Adamant knife', '224,96', '', '217,40,36,32,32,15,0', 0), +(868, 'Rune knife', '225,96', '', '218,40,36,32,32,15,0', 0), +(869, 'Black knife', '222,96', '', '215,40,36,32,32,15,0', 0), +(870, 'Bronze knife(p)', '219,96', '', '212,40,36,32,32,15,0', 28), +(871, 'Iron knife(p)', '220,96', '', '213,40,36,32,32,15,0', 28), +(872, 'Steel knife(p)', '221,96', '', '214,40,36,32,32,15,0', 28), +(873, 'Mithril knife(p)', '223,96', '', '216,40,36,32,32,15,0', 28), +(874, 'Black knife(p)', '222,96', '', '215,40,36,32,32,15,0', 28), +(875, 'Adamant knife(p)', '224,96', '', '217,40,36,32,32,15,0', 28), +(876, 'Rune knife(p)', '225,96', '', '218,40,36,32,32,15,0', 28), +(877, 'Bronze bolts', '-1,0', '', '27,38,36,41,32,5,0', 0), +(878, 'Bronze bolts(p)', '-1,0', '', '27,38,36,41,32,5,0', 28), +(879, 'Opal bolts', '-1,0', '', '27,38,36,41,32,5,0', 0), +(880, 'Pearl bolts', '-1,0', '', '27,38,36,41,32,5,0', 0), +(882, 'Bronze arrow', '19,96', '1104,96', '10,40,36,41,46,5,0', 0), +(883, 'Bronze arrow(p)', '19,96', '1104,96', '10,40,36,41,46,5,0', 28), +(884, 'Iron arrow', '18,96', '1105,96', '9,40,36,41,46,5,0', 0), +(885, 'Iron arrow(p)', '18,96', '1105,96', '9,40,36,41,46,5,0', 28), +(886, 'Steel arrow', '20,96', '1106,96', '11,40,36,41,46,5,0', 0), +(887, 'Steel arrow(p)', '20,96', '1106,96', '11,40,36,41,46,5,0', 28), +(888, 'Mithril arrow', '21,96', '1107,96', '12,40,36,41,46,5,0', 0), +(889, 'Mithril arrow(p)', '21,96', '1107,96', '12,40,36,41,46,5,0', 28), +(890, 'Adamant arrow', '22,96', '1108,96', '13,40,36,41,46,5,0', 0), +(891, 'Adamant arrow(p)', '22,96', '1108,96', '13,40,36,41,46,5,0', 28), +(892, 'Rune arrow', '24,96', '1109,96', '15,40,36,41,46,5,0', 0), +(893, 'Rune arrow(p)', '24,96', '1109,96', '15,40,36,41,46,5,0', 28), +(2532, 'Iron fire arrows', '26,96', '1113,96', '17,40,36,41,46,5,0', 0), +(2534, 'Steel fire arrows', '26,96', '1113,96', '17,40,36,41,46,5,0', 0), +(2536, 'Mithril fire arrows', '26,96', '1113,96', '17,40,36,41,46,5,0', 0), +(2538, 'Adamant fire arrows', '26,96', '1113,96', '17,40,36,41,46,5,0', 0), +(2540, 'Rune fire arrows', '26,96', '1113,96', '17,40,36,41,46,5,0', 0), +(2866, 'Ogre arrow', '243,96', '', '242,40,36,41,46,5,0', 0), +(3093, 'Black dart', '273,96', '', '227,40,36,32,32,15,0', 0), +(3094, 'Black dart(p)', '273,96', '', '227,40,36,32,32,15,0', 28), +(4160, 'Broad arrow', '325,96', '1112,96', '326,40,36,41,46,5,0', 0), +(4212, 'New crystal bow', '250,96', '', '249,40,36,45,46,5,0', 0), +(4214, 'Crystal bow full', '250,96', '', '249,40,36,45,46,5,0', 0), +(4215, 'Crystal bow 9/10', '250,96', '', '249,40,36,45,46,5,0', 0), +(4216, 'Crystal bow 8/10', '250,96', '', '249,40,36,45,46,5,0', 0), +(4217, 'Crystal bow 7/10', '250,96', '', '249,40,36,45,46,5,0', 0), +(4218, 'Crystal bow 6/10', '250,96', '', '249,40,36,45,46,5,0', 0), +(4219, 'Crystal bow 5/10', '250,96', '', '249,40,36,45,46,5,0', 0), +(4220, 'Crystal bow 4/10', '250,96', '', '249,40,36,45,46,5,0', 0), +(4221, 'Crystal bow 3/10', '250,96', '', '249,40,36,45,46,5,0', 0), +(4222, 'Crystal bow 2/10', '250,96', '', '249,40,36,45,46,5,0', 0), +(4223, 'Crystal bow 1/10', '250,96', '', '249,40,36,45,46,5,0', 0), +(4740, 'Bolt rack', '-1,0', '', '27,38,36,41,32,5,0', 0), +(4778, 'Iron brutal', '18,96', '', '9,40,36,41,46,5,0', 0), +(4783, 'Steel brutal', '20,96', '', '11,40,36,41,46,5,0', 0), +(4788, 'Black brutal', '18,96', '', '9,40,36,41,46,5,0', 0), +(4793, 'Mithril brutal', '21,96', '', '12,40,36,41,46,5,0', 0), +(4798, 'Adamant brutal', '22,96', '', '13,40,36,41,46,5,0', 0), +(4803, 'Rune brutal', '24,96', '', '15,40,36,41,46,5,0', 0), +(5616, 'Bronze arrow(p+)', '19,96', '1104,96', '10,40,36,41,46,5,0', 38), +(5617, 'Iron arrow(p+)', '18,96', '1105,96', '9,40,36,41,46,5,0', 38), +(5618, 'Steel arrow(p+)', '20,96', '1106,96', '11,40,36,41,46,5,0', 38), +(5619, 'Mithril arrow(p+)', '21,96', '1107,96', '12,40,36,41,46,5,0', 38), +(5620, 'Adamant arrow(p+)', '22,96', '1108,96', '13,40,36,41,46,5,0', 38), +(5621, 'Rune arrow(p+)', '19,96', '', '10,40,36,41,46,5,0', 0), +(5622, 'Bronze arrow(p++)', '19,96', '1104,96', '10,40,36,41,46,5,0', 48), +(5623, 'Iron arrow(p++)', '18,96', '1105,96', '9,40,36,41,46,5,0', 48), +(5624, 'Steel arrow(p++)', '20,96', '1106,96', '11,40,36,41,46,5,0', 48), +(5625, 'Mithril arrow(p++)', '21,96', '1107,96', '12,40,36,41,46,5,0', 48), +(5626, 'Adamant arrow(p++)', '22,96', '1108,96', '13,40,36,41,46,5,0', 48), +(5627, 'Rune arrow(p++)', '24,96', '1109,96', '15,40,36,41,46,5,0', 48), +(5628, 'Bronze dart(p+)', '232,96', '', '226,40,36,32,32,15,0', 38), +(5629, 'Iron dart(p+)', '233,96', '', '227,40,36,32,32,15,0', 38), +(5630, 'Steel dart(p+)', '235,96', '', '229,40,36,32,32,15,0', 38), +(5631, 'Black dart(p+)', '273,96', '', '227,40,36,32,32,15,0', 38), +(5633, 'Adamant dart(p+)', '236,96', '', '230,40,36,32,32,15,0', 38), +(5634, 'Rune dart(p+)', '237,96', '', '231,40,36,32,32,15,0', 38), +(5635, 'Bronze dart(p++)', '232,96', '', '226,40,36,32,32,15,0', 48), +(5636, 'Iron dart(p++)', '233,96', '', '227,40,36,32,32,15,0', 48), +(5637, 'Steel dart(p++)', '234,96', '', '228,40,36,32,32,15,0', 48), +(5638, 'Black dart(p++)', '273,96', '', '227,40,36,32,32,15,0', 48), +(5639, 'Mithril dart(p++)', '235,96', '', '229,40,36,32,32,15,0', 48), +(5640, 'Adamant dart(p++)', '236,96', '', '230,40,36,32,32,15,0', 48), +(5641, 'Rune dart(p++)', '237,96', '', '231,40,36,32,32,15,0', 48), +(5642, 'Bronze javelin(p+)', '206,96', '', '200,40,36,32,32,15,0', 38), +(5643, 'Iron javelin(p+)', '207,96', '', '201,40,36,32,32,15,0', 38), +(5644, 'Steel javelin(p+)', '208,96', '', '202,40,36,32,32,15,0', 38), +(5645, 'Mithril javelin(p+)', '209,96', '', '203,40,36,32,32,15,0', 38), +(5646, 'Adamant javelin(p+)', '210,96', '', '204,40,36,32,32,15,0', 38), +(5647, 'Rune javelin(p+)', '211,96', '', '205,40,36,32,32,15,0', 38), +(5648, 'Bronze jav\'n(p++)', '206,96', '', '200,40,36,32,32,15,0', 48), +(5649, 'Iron javelin(p++)', '207,96', '', '201,40,36,32,32,15,0', 48), +(5650, 'Steel javelin(p++)', '208,96', '', '202,40,36,32,32,15,0', 48), +(5651, 'Mithril javelin(p++)', '209,96', '', '203,40,36,32,32,15,0', 48), +(5652, 'Adamant javelin(p++)', '210,96', '', '204,40,36,32,32,15,0', 48), +(5653, 'Rune javelin(p++)', '211,96', '', '205,40,36,32,32,15,0', 48), +(5654, 'Bronze knife(p+)', '219,96', '', '212,40,36,32,32,15,0', 38), +(5655, 'Iron knife(p+)', '220,96', '', '213,40,36,32,32,15,0', 38), +(5656, 'Steel knife(p+)', '221,96', '', '214,40,36,32,32,15,0', 38), +(5657, 'Mithril knife(p+)', '223,96', '', '216,40,36,32,32,15,0', 38), +(5658, 'Black knife(p+)', '222,96', '', '215,40,36,32,32,15,0', 38), +(5659, 'Adamant knife(p+)', '224,96', '', '217,40,36,32,32,15,0', 38), +(5660, 'Rune knife(p+)', '225,96', '', '218,40,36,32,32,15,0', 38), +(5661, 'Bronze knife(p++)', '219,96', '', '212,40,36,32,32,15,0', 48), +(5662, 'Iron knife(p++)', '220,96', '', '213,40,36,32,32,15,0', 48), +(5663, 'Steel knife(p++)', '221,96', '', '214,40,36,32,32,15,0', 48), +(5664, 'Mithril knife(p++)', '223,96', '', '216,40,36,32,32,15,0', 48), +(5665, 'Black knife(p++)', '222,96', '', '215,40,36,32,32,15,0', 48), +(5666, 'Adamant knife(p++)', '224,96', '', '217,40,36,32,32,15,0', 48), +(5667, 'Rune knife(p++)', '225,96', '', '218,40,36,32,32,15,0', 48), +(6061, 'Bronze bolts(p+)', '-1,0', '', '27,38,36,41,32,5,0', 38), +(6062, 'Bronze bolts(p++)', '-1,0', '', '27,38,36,41,32,5,0', 48), +(6522, 'Toktz-xil-ul', '-1,0', '', '442,40,36,32,32,15,0', 0), +(8882, 'Bone bolts', '-1,0', '', '27,38,36,41,32,5,0', 0), +(9139, 'Blurite bolts', '-1,0', '', '27,38,36,41,32,5,0', 0), +(9140, 'Iron bolts', '-1,0', '', '27,38,36,41,32,5,0', 0), +(9141, 'Steel bolts', '-1,0', '', '27,38,36,41,32,5,0', 0), +(9142, 'Mithril bolts', '-1,0', '', '27,38,36,41,32,5,0', 0), +(9143, 'Adamant bolts', '-1,0', '', '27,38,36,41,32,5,0', 0), +(9144, 'Rune bolts', '-1,0', '', '27,38,36,41,32,5,0', 0), +(9236, 'Opal bolts (e)', '-1,0', '', '27,38,36,41,32,5,0', 0), +(9237, 'Jade bolts (e)', '-1,0', '', '27,38,36,41,32,5,0', 0), +(9238, 'Pearl bolts (e)', '-1,0', '', '27,38,36,41,32,5,0', 0), +(9239, 'Topaz bolts (e)', '-1,0', '', '27,38,36,41,32,5,0', 0), +(9240, 'Sapphire bolts (e)', '-1,0', '', '27,38,36,41,32,5,0', 0), +(9241, 'Emerald bolts (e)', '-1,0', '', '27,38,36,41,32,5,0', 0), +(9242, 'Ruby bolts (e)', '-1,0', '', '27,38,36,41,32,5,0', 0), +(9243, 'Diamond bolts (e)', '-1,0', '', '27,38,36,41,32,5,0', 0), +(9244, 'Dragon bolts (e)', '-1,0', '', '27,38,36,41,32,5,0', 0), +(9245, 'Onyx bolts (e)', '-1,0', '', '27,38,36,41,32,5,0', 0), +(9286, 'Blurite bolts(p)', '-1,0', '', '27,38,36,41,32,5,0', 28), +(9287, 'Iron bolts (p)', '-1,0', '', '27,38,36,41,32,5,0', 28), +(9288, 'Steel bolts (p)', '-1,0', '', '27,38,36,41,32,5,0', 28), +(9289, 'Mithril bolts (p)', '-1,0', '', '27,38,36,41,32,5,0', 28), +(9290, 'Adamant bolts (p)', '-1,0', '', '27,38,36,41,32,5,0', 28), +(9291, 'Runite bolts (p)', '-1,0', '', '27,38,36,41,32,5,0', 28), +(9293, 'Blurite bolts(p+)', '-1,0', '', '27,38,36,41,32,5,0', 38), +(9294, 'Iron bolts(p+)', '-1,0', '', '27,38,36,41,32,5,0', 38), +(9295, 'Steel bolts(p+)', '-1,0', '', '27,38,36,41,32,5,0', 38), +(9296, 'Mithril bolts(p+)', '-1,0', '', '27,38,36,41,32,5,0', 38), +(9297, 'Adamant bolts(p+)', '-1,0', '', '27,38,36,41,32,5,0', 38), +(9298, 'Runite bolts(p+)', '-1,0', '', '27,38,36,41,32,5,0', 38), +(9300, 'Blurite bolts(p++)', '-1,0', '', '27,38,36,41,32,5,0', 48), +(9301, 'Iron bolts(p++)', '-1,0', '', '27,38,36,41,32,5,0', 48), +(9302, 'Steel bolts(p++)', '-1,0', '', '27,38,36,41,32,5,0', 48), +(9303, 'Mithril bolts(p++)', '-1,0', '', '27,38,36,41,32,5,0', 48), +(9304, 'Adamant bolts(p++)', '-1,0', '', '27,38,36,41,32,5,0', 48), +(9305, 'Runite bolts(p++)', '-1,0', '', '27,38,36,41,32,5,0', 48), +(9335, 'Jade bolts', '-1,0', '', '27,38,36,41,32,5,0', 0), +(9336, 'Topaz bolts', '-1,0', '', '27,38,36,41,32,5,0', 0), +(9337, 'Sapphire bolts', '-1,0', '', '27,38,36,41,32,5,0', 0), +(9338, 'Emerald bolts', '-1,0', '', '27,38,36,41,32,5,0', 0), +(9339, 'Ruby bolts', '-1,0', '', '27,38,36,41,32,5,0', 0), +(9340, 'Diamond bolts', '-1,0', '', '27,38,36,41,32,5,0', 0), +(9341, 'Dragon bolts', '-1,0', '', '27,38,36,41,32,5,0', 0), +(9342, 'Onyx bolts', '-1,0', '', '27,38,36,41,32,5,0', 0), +(9706, 'Training arrows', '806,96', '806,96', '805,40,36,41,46,5,0', 0), +(10033, 'Chinchompa', '-1,0', '', '908,40,36,45,46,5,0', 0), +(10034, 'Red chinchompa', '-1,0', '', '909,40,36,45,46,5,0', 0), +(10158, 'Kebbit bolts', '-1,0', '', '27,38,36,41,32,5,0', 0), +(10159, 'Long kebbit bolts', '-1,0', '', '27,38,36,41,32,5,0', 0), +(11212, 'Dragon arrow', '1116,96', '1114,96', '1120,40,36,41,46,5,0', 0), +(11217, 'Dragon fire arrows', '26,96', '1113,96', '17,40,36,41,46,5,0', 0), +(11227, 'Dragon arrow(p)', '1116,96', '1114,96', '1120,40,36,41,46,5,0', 28), +(11228, 'Dragon arrow(p+)', '1116,96', '1114,96', '1120,40,36,41,46,5,0', 38), +(11229, 'Dragon arrow(p++)', '1116,96', '1114,96', '1120,40,36,41,46,5,0', 48), +(11230, 'Dragon dart', '1123,96', '', '1122,40,36,32,32,15,0', 0), +(11231, 'Dragon dart(p)', '1123,96', '', '1122,40,36,32,32,15,0', 28), +(11233, 'Dragon dart(p+)', '1123,96', '', '1122,40,36,32,32,15,0', 38), +(11234, 'Dragon dart(p++)', '1123,96', '', '1122,40,36,32,32,15,0', 48), +(13083, 'Black bolts', '-1,0', '', '27,38,36,41,32,5,0', 0), +(13084, 'Black bolts(p)', '-1,0', '', '27,38,36,41,32,5,0', 28), +(13085, 'Black bolts(p+)', '-1,0', '', '27,38,36,41,32,5,0', 38), +(13086, 'Black bolts(p++)', '-1,0', '', '27,38,36,41,32,5,0', 48), +(13280, 'Broad-tipped bolts', '-1,0', '', '27,38,36,41,32,5,0', 0), +(13879, 'Morrigan\'s javelin', '-1,0', '', '1837,40,36,32,32,15,0', 0), +(13880, 'Morrigan\'s javelin(p)', '-1,0', '', '1837,40,36,32,32,15,0', 28), +(13881, 'Morrigan\'s javelin(p+)', '-1,0', '', '1837,40,36,32,32,15,0', 38), +(13882, 'Morrigan\'s javelin(p++)', '-1,0', '', '1837,40,36,32,32,15,0', 48), +(13883, 'Morrigan\'s throwing axe', '-1,0', '', '1839,40,36,32,32,15,0', 0), +(13953, 'Corrupt morrigan\'s javelin', '-1,0', '', '1837,40,36,32,32,15,0', 0), +(13954, 'C. morrigan\'s javelin (p)', '-1,0', '', '1837,40,36,32,32,15,0', 28), +(13955, 'C. morrigan\'s javelin (p+)', '1837,96', '', '1840,40,36,32,32,15,0', 38), +(13956, 'C. morrigan\'s javelin (p++)', '1837,96', '', '1840,40,36,32,32,15,0', 48), +(13957, 'C. morrigan\'s throwing axe', '-1,0', '', '1839,40,36,32,32,15,0', 0); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `configs` +-- + +CREATE TABLE `configs` ( + `key_` varchar(30) NOT NULL DEFAULT '', + `value` longtext NOT NULL, + `dataType` varchar(50) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='//15 = keys & lock\n //16 = fly swat\n //17 = person with question marks\n //18 = wise old man\n //19 = man & woman with mouth closed\n //20 = man & lock & key\n //21 = closed chests\n //22 = same as 15\n //23 = snowmen'; + +-- +-- Dumping data for table `configs` +-- + +INSERT INTO `configs` (`key_`, `value`, `dataType`) VALUES +('messageInterface', '18', 'int'), +('weeklyMessage', 'Welcome to 2009Scape, please report all bugs and feedback on our website.', NULL), +('dxp', '2015-12-28 04:00:00', 'date'), +('messageInterface', '18', 'int'), +('weeklyMessage', 'Welcome to 2009Scape, please report all bugs and feedback on our website.', NULL), +('dxp', '2015-12-28 04:00:00', 'date'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `door_configs` +-- + +CREATE TABLE `door_configs` ( + `id` int(11) UNSIGNED NOT NULL, + `replaceId` int(11) DEFAULT NULL, + `fence` tinyint(1) DEFAULT NULL, + `metal` tinyint(1) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- +-- Dumping data for table `door_configs` +-- + +INSERT INTO `door_configs` (`id`, `replaceId`, `fence`, `metal`) VALUES +(3, 1531, 0, 0), +(4, 3271, 0, 0), +(24, 8791, 0, 0), +(59, 1534, 0, 0), +(71, 1517, 0, 0), +(72, 1520, 0, 0), +(73, 4425, 0, 0), +(74, 4426, 0, 0), +(81, 11712, 0, 0), +(82, 11715, 0, 0), +(89, 1560, 0, 1), +(90, 1560, 0, 1), +(92, 17317, 0, 0), +(93, 12445, 0, 0), +(94, 1561, 0, 1), +(95, 1560, 0, 1), +(99, 14750, 0, 0), +(102, 13002, 0, 0), +(166, 1556, 0, 0), +(167, 1552, 0, 0), +(883, 7051, 0, 0), +(1512, 1515, 0, 0), +(1513, 1514, 0, 0), +(1516, 1517, 0, 0), +(1519, 1520, 0, 0), +(1530, 1531, 0, 0), +(1533, 1534, 0, 0), +(1536, 1537, 0, 0), +(1539, 1540, 0, 1), +(1542, 1543, 0, 1), +(1544, 1545, 0, 1), +(1551, 1552, 1, 0), +(1553, 1552, 1, 0), +(1557, 1560, 0, 1), +(1558, 1560, 1, 1), +(1573, 1574, 0, 0), +(1575, 1576, 0, 0), +(1589, 1561, 1, 1), +(1590, 1561, 0, 1), +(1591, 1531, 0, 0), +(1595, 1531, 0, 0), +(1596, 1561, 0, 1), +(1597, 1561, 0, 1), +(1598, 1556, 0, 0), +(1599, 1556, 0, 0), +(1804, 1531, 0, 0), +(1805, 15535, 0, 0), +(1991, 1545, 0, 1), +(2000, 1537, 0, 0), +(2002, 1537, 0, 0), +(2025, 1534, 0, 0), +(2034, 1531, 0, 0), +(2036, 1531, 0, 0), +(2039, 1561, 0, 1), +(2041, 1561, 0, 1), +(2050, 15511, 0, 0), +(2051, 15513, 0, 0), +(2054, 24375, 0, 0), +(2058, 1561, 0, 1), +(2060, 1561, 0, 0), +(2069, 23339, 0, 0), +(2115, 1561, 0, 1), +(2116, 1561, 0, 1), +(2154, 1561, 0, 1), +(2155, 1561, 0, 1), +(2184, 7260, 0, 0), +(2307, 1561, 0, 1), +(2308, 1561, 0, 1), +(2309, 1540, 0, 1), +(2338, 35631, 0, 0), +(2391, 1561, 0, 1), +(2392, 1561, 0, 1), +(2397, 24383, 0, 0), +(2398, 24379, 0, 0), +(2399, 36319, 0, 0), +(2406, 2407, 0, 0), +(2416, 2417, 0, 0), +(2427, 36864, 0, 0), +(2428, 36359, 0, 0), +(2429, 36343, 0, 0), +(2430, 36853, 0, 0), +(2431, 36848, 0, 0), +(2432, 1561, 0, 1), +(2433, 1561, 0, 1), +(2438, 3728, 0, 0), +(2439, 3727, 0, 0), +(2526, 24377, 0, 1), +(2528, 24935, 0, 0), +(2534, 2998, 0, 0), +(2535, 2998, 0, 0), +(2537, 24932, 0, 0), +(2546, 2547, 0, 0), +(2548, 2549, 0, 0), +(2550, 27989, 0, 0), +(2551, 30865, 0, 0), +(2552, 1561, 0, 1), +(2553, 1561, 0, 1), +(2554, 26916, 0, 0), +(2555, 1537, 0, 0), +(2556, 25417, 0, 0), +(2557, 1543, 0, 1), +(2558, 25717, 0, 0), +(2559, 25820, 0, 0), +(2595, 3271, 0, 0), +(2621, 3271, 0, 0), +(2622, 3271, 0, 0), +(2624, 2549, 0, 0), +(2625, 2549, 0, 0), +(2626, 3271, 0, 0), +(2627, 3271, 0, 0), +(2628, 3271, 0, 0), +(2631, 1545, 0, 1), +(2673, 1561, 0, 1), +(2674, 1561, 0, 1), +(2705, 25643, 0, 0), +(2706, 25719, 0, 0), +(2712, 36865, 0, 0), +(2786, 20088, 0, 1), +(2787, 20087, 0, 0), +(2788, 20090, 0, 1), +(2789, 20089, 0, 0), +(2814, 1561, 0, 0), +(2815, 1561, 0, 0), +(2861, 15535, 0, 0), +(2862, 24815, 0, 0), +(2863, 3271, 0, 0), +(2865, 1561, 0, 1), +(2866, 1561, 0, 1), +(2882, 1561, 0, 1), +(2883, 1561, 0, 1), +(2997, 2998, 0, 0), +(3014, 3271, 0, 0), +(3015, 3727, 1, 0), +(3016, 3727, 1, 0), +(3017, 3271, 0, 0), +(3018, 3271, 0, 0), +(3019, 3271, 0, 0), +(3020, 1561, 0, 1), +(3021, 1561, 0, 1), +(3022, 1561, 0, 1), +(3023, 1561, 0, 1), +(3024, 3271, 0, 0), +(3025, 3271, 0, 0), +(3026, 3271, 0, 0), +(3027, 3271, 0, 0), +(3197, 3727, 0, 0), +(3198, 3727, 0, 0), +(3270, 3271, 0, 0), +(3506, 1561, 0, 1), +(3507, 1561, 0, 1), +(3725, 3727, 0, 0), +(3726, 3727, 1, 0), +(3743, 17090, 0, 0), +(3745, 3271, 0, 0), +(3746, 3271, 0, 0), +(3747, 1534, 0, 0), +(3763, 3764, 0, 1), +(3776, 3777, 0, 0), +(4148, 4248, 0, 0), +(4165, 4697, 0, 0), +(4166, 7374, 0, 0), +(4247, 21342, 0, 0), +(4311, 4139, 1, 0), +(4312, 4140, 0, 0), +(4423, 4429, 0, 0), +(4424, 11382, 0, 0), +(4427, 11380, 0, 0), +(4428, 4430, 0, 0), +(4487, 4492, 0, 0), +(4490, 4491, 0, 0), +(4629, 4630, 0, 0), +(4631, 4630, 0, 0), +(4632, 4634, 0, 0), +(4633, 4634, 0, 0), +(4636, 4639, 0, 0), +(4637, 4639, 0, 0), +(4638, 4639, 0, 0), +(4640, 4639, 0, 0), +(4696, 21343, 0, 0), +(4962, 3271, 0, 0), +(4963, 17092, 0, 0), +(4964, 17094, 0, 0), +(5126, 5128, 0, 0), +(5172, 1545, 0, 1), +(5183, 5188, 0, 0), +(5186, 5187, 0, 0), +(5244, 5245, 0, 0), +(5501, 8821, 0, 1), +(5667, 26207, 0, 0), +(5803, 4173, 0, 0), +(5804, 5132, 0, 0), +(5805, 7435, 0, 0), +(5806, 5268, 0, 0), +(6100, 6101, 0, 0), +(6102, 6103, 0, 0), +(6104, 6105, 0, 0), +(6106, 6107, 0, 0), +(6108, 6107, 0, 0), +(6110, 6111, 0, 0), +(6112, 6113, 0, 0), +(6114, 6113, 0, 0), +(6451, 1561, 0, 1), +(6452, 1561, 0, 1), +(6624, 6626, 0, 0), +(6625, 6627, 0, 0), +(6975, 6976, 0, 0), +(6977, 6109, 0, 0), +(7049, 7051, 0, 0), +(7050, 23919, 1, 0), +(7222, 7260, 0, 0), +(7259, 7260, 0, 0), +(7274, 5245, 0, 0), +(7302, 5245, 0, 0), +(7317, 5245, 0, 0), +(7320, 5245, 0, 0), +(7323, 5245, 0, 0), +(7326, 5245, 0, 0), +(7354, 5245, 0, 0), +(7373, 7374, 0, 0), +(8695, 8696, 0, 0), +(8786, 11708, 0, 0), +(8787, 10261, 0, 0), +(8788, 1545, 0, 1), +(8789, 11710, 0, 0), +(8810, 8812, 0, 0), +(8811, 8813, 1, 0), +(8818, 8819, 0, 0), +(8820, 8821, 0, 1), +(9562, 9564, 0, 1), +(9563, 9564, 0, 1), +(10260, 10261, 0, 0), +(10262, 10263, 0, 0), +(10264, 10265, 0, 0), +(10325, 10327, 0, 0), +(10431, 37996, 0, 0), +(10527, 10528, 0, 0), +(10529, 10530, 0, 0), +(11196, 10327, 0, 0), +(11197, 4639, 0, 0), +(11379, 11380, 0, 0), +(11381, 11380, 0, 0), +(11483, 11708, 0, 0), +(11616, 11617, 0, 0), +(11707, 11708, 0, 0), +(11709, 11710, 0, 0), +(11711, 11710, 0, 0), +(11713, 11712, 0, 0), +(11714, 11715, 0, 0), +(11716, 11722, 0, 0), +(11721, 11723, 0, 0), +(11993, 11994, 0, 0), +(12045, 12046, 0, 0), +(12047, 12048, 0, 0), +(12348, 10327, 0, 0), +(12349, 11382, 0, 0), +(12350, 11382, 0, 0), +(12444, 12445, 0, 0), +(12446, 12447, 0, 0), +(12448, 12449, 0, 0), +(12761, 11617, 0, 0), +(12816, 12988, 0, 0), +(12817, 12989, 0, 0), +(12986, 7051, 1, 0), +(12987, 7052, 1, 0), +(13001, 34353, 0, 0), +(13006, 13008, 0, 0), +(13007, 13009, 0, 0), +(13015, 13018, 0, 0), +(13016, 13017, 0, 0), +(13094, 13095, 0, 0), +(13096, 13097, 0, 0), +(13100, 13103, 0, 0), +(13101, 13102, 0, 0), +(13107, 13108, 0, 0), +(13109, 13110, 0, 0), +(13118, 13120, 0, 0), +(13119, 13121, 0, 0), +(13314, 13315, 0, 0), +(13317, 13318, 0, 1), +(13320, 13321, 0, 1), +(13323, 13324, 0, 1), +(13326, 13327, 0, 0), +(13344, 13350, 0, 0), +(13345, 13351, 0, 0), +(13346, 13352, 0, 1), +(13347, 13353, 0, 1), +(13348, 13354, 0, 1), +(13349, 13355, 0, 1), +(14233, 14234, 1, 0), +(14235, 14236, 1, 0), +(14237, 14238, 1, 0), +(14239, 14240, 1, 0), +(14241, 14242, 1, 0), +(14243, 14244, 1, 0), +(14245, 14248, 1, 0), +(14247, 14246, 1, 0), +(14749, 14750, 0, 0), +(14751, 14754, 0, 0), +(14752, 14753, 0, 0), +(14923, 17115, 0, 0), +(14982, 24930, 0, 0), +(15056, 14924, 0, 0), +(15204, 15205, 0, 0), +(15510, 15511, 1, 0), +(15512, 15513, 1, 0), +(15514, 15515, 1, 0), +(15516, 15517, 1, 0), +(15536, 15535, 0, 0), +(15641, 15642, 0, 0), +(15644, 15645, 0, 0), +(15647, 15648, 0, 0), +(15650, 15645, 0, 0), +(15653, 15654, 0, 0), +(15759, 14750, 0, 0), +(16774, 16777, 0, 0), +(16776, 16777, 0, 0), +(16778, 16779, 0, 0), +(17089, 17090, 0, 0), +(17091, 17092, 0, 0), +(17093, 17092, 0, 0), +(17114, 17115, 0, 0), +(17316, 17317, 0, 0), +(17600, 18031, 0, 0), +(17601, 18032, 0, 0), +(17973, 18031, 0, 0), +(18091, 18032, 0, 0), +(18092, 18032, 0, 0), +(18168, 11617, 0, 0), +(18489, 18490, 0, 1), +(18698, 18699, 0, 0), +(18700, 18701, 0, 0), +(20391, 28518, 0, 1), +(21065, 21161, 0, 0), +(21160, 21161, 0, 0), +(21162, 21161, 0, 0), +(21164, 21161, 0, 0), +(21340, 21342, 0, 0), +(21341, 21342, 0, 0), +(21397, 21398, 0, 1), +(21399, 21402, 0, 1), +(21400, 21401, 0, 1), +(21403, 21404, 1, 1), +(21405, 21406, 1, 1), +(21505, 21506, 0, 0), +(21507, 21508, 0, 0), +(21600, 21601, 0, 0), +(22435, 22436, 0, 0), +(22437, 22438, 0, 0), +(22779, 22778, 0, 0), +(22914, 22913, 0, 0), +(22921, 22920, 0, 1), +(23056, 24685, 0, 0), +(23216, 23217, 1, 1), +(23338, 23339, 0, 0), +(23340, 23341, 0, 0), +(23342, 23343, 0, 0), +(23378, 23339, 0, 0), +(23917, 23918, 1, 0), +(24369, 24373, 1, 0), +(24370, 24374, 1, 0), +(24376, 24377, 0, 0), +(24378, 24377, 0, 0), +(24381, 24379, 0, 0), +(24384, 24383, 0, 0), +(24560, 15515, 0, 0), +(24561, 15517, 0, 0), +(24565, 36316, 0, 0), +(24567, 36318, 0, 0), +(24686, 24685, 0, 0), +(24816, 24815, 0, 0), +(24931, 24930, 0, 0), +(24933, 24932, 0, 0), +(24936, 24935, 0, 0), +(25418, 25417, 0, 0), +(25594, 25639, 0, 0), +(25595, 25639, 0, 0), +(25638, 25639, 0, 0), +(25640, 25641, 0, 0), +(25642, 25643, 0, 0), +(25716, 25717, 0, 0), +(25718, 25719, 0, 0), +(25748, 25791, 0, 0), +(25750, 25789, 0, 0), +(25788, 25641, 0, 0), +(25790, 25639, 0, 0), +(25799, 25800, 0, 0), +(25804, 25805, 0, 0), +(25806, 25807, 0, 0), +(25813, 25816, 0, 0), +(25814, 25815, 0, 0), +(25819, 25820, 0, 0), +(25825, 25826, 0, 0), +(25827, 25828, 0, 0), +(25876, 25877, 0, 1), +(26130, 26132, 0, 0), +(26131, 26133, 0, 1), +(26425, 2521, 0, 0), +(26426, 26852, 0, 0), +(26427, 26851, 0, 0), +(26428, 2520, 0, 0), +(26560, 26561, 0, 1), +(26706, 26707, 0, 1), +(26787, 8821, 0, 0), +(26808, 26916, 0, 0), +(26810, 26916, 0, 0), +(26906, 26907, 0, 0), +(26908, 26909, 0, 0), +(26910, 26911, 0, 0), +(26913, 26914, 0, 0), +(26917, 26916, 0, 0), +(27065, 1561, 1, 1), +(27066, 1561, 0, 1), +(27846, 27851, 0, 0), +(27848, 27853, 1, 0), +(27852, 27851, 1, 0), +(27854, 27853, 0, 0), +(27988, 27989, 0, 0), +(28407, 28408, 0, 0), +(28409, 28410, 0, 0), +(28514, 28518, 1, 1), +(28589, 28588, 0, 0), +(28690, 28692, 0, 1), +(28691, 28693, 0, 1), +(29261, 29262, 0, 1), +(29315, 29317, 0, 1), +(29316, 29322, 0, 1), +(29319, 29318, 0, 1), +(29320, 29321, 0, 1), +(29575, 30865, 0, 0), +(29732, 30865, 0, 0), +(30116, 30117, 1, 0), +(30118, 30119, 1, 0), +(30120, 30121, 1, 0), +(30122, 30123, 1, 0), +(30124, 30125, 1, 0), +(30126, 30127, 1, 0), +(30128, 30129, 1, 0), +(30130, 30131, 1, 0), +(30503, 18031, 0, 0), +(30864, 30865, 0, 0), +(31340, 31341, 0, 0), +(31342, 31343, 0, 0), +(31534, 31535, 0, 1), +(31808, 31809, 0, 0), +(31811, 31812, 0, 0), +(31814, 31816, 0, 0), +(31815, 31816, 0, 0), +(31818, 31816, 0, 0), +(31819, 31817, 0, 0), +(31820, 31821, 0, 0), +(31822, 31823, 0, 0), +(31825, 31824, 0, 0), +(31827, 31826, 0, 0), +(31830, 31829, 0, 1), +(31832, 31831, 0, 1), +(31838, 31839, 0, 1), +(31841, 31842, 0, 0), +(31844, 31845, 0, 1), +(33060, 31828, 0, 0), +(34005, 31845, 0, 1), +(34042, 34043, 0, 1), +(34044, 34045, 0, 0), +(34046, 6115, 0, 1), +(34234, 34808, 0, 0), +(34312, 34313, 0, 0), +(34354, 34353, 0, 0), +(34779, 34777, 1, 0), +(34780, 34778, 0, 0), +(34805, 34808, 0, 0), +(34806, 34808, 0, 0), +(34807, 34808, 0, 0), +(34809, 34810, 0, 0), +(34811, 34813, 0, 0), +(34812, 34813, 0, 0), +(34816, 34818, 0, 0), +(34817, 34813, 0, 0), +(34819, 34820, 0, 0), +(34822, 34823, 0, 0), +(34825, 34826, 0, 0), +(34827, 34828, 0, 0), +(35241, 35242, 0, 0), +(35243, 15651, 0, 0), +(35540, 35541, 0, 0), +(35630, 35631, 0, 0), +(35991, 36021, 0, 0), +(36022, 36021, 0, 0), +(36315, 36342, 0, 0), +(36317, 36340, 0, 0), +(36320, 36319, 0, 0), +(36339, 36358, 0, 0), +(36341, 36356, 0, 0), +(36344, 36343, 0, 0), +(36355, 36356, 0, 0), +(36357, 36356, 0, 0), +(36360, 36359, 0, 0), +(36844, 36845, 0, 0), +(36846, 36848, 0, 0), +(36847, 36848, 0, 0), +(36851, 36853, 0, 0), +(36852, 36853, 0, 0), +(36856, 36858, 0, 0), +(36857, 36859, 0, 0), +(36862, 36864, 0, 0), +(36863, 36864, 0, 0), +(36913, 36912, 1, 0), +(36915, 36914, 1, 0), +(36917, 36916, 1, 0), +(36919, 36918, 1, 0), +(36999, 37000, 0, 0), +(37002, 37003, 0, 0), +(37352, 37351, 1, 0), +(37354, 37353, 0, 0), +(37995, 37996, 0, 0), +(38124, 38123, 0, 0), +(38141, 38142, 0, 0); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `ground_spawns` +-- + +CREATE TABLE `ground_spawns` ( + `item_id` int(11) UNSIGNED NOT NULL, + `loc_data` longtext NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- +-- Dumping data for table `ground_spawns` +-- + +INSERT INTO `ground_spawns` (`item_id`, `loc_data`) VALUES +(28, '{1,2807,3450,0,7864410}'), +(33, '{1,2547,3114,0,983050}-{1,3208,3395,1,3932190}'), +(39, '{1,2672,3433,0,7209050}'), +(88, '{1,2654,9767,0,4587583}'), +(223, '{1,3128,9956,0,7864410}-{1,3129,9954,0,7864410}-{1,3126,9958,0,7864410}-{1,3117,9951,0,7864410}-{1,3118,9948,0,7864410}-{1,3119,9949,0,7864410}-{1,3179,9881,0,7864410}-{1,3177,9880,0,7864410}'), +(229, '{1,2809,3342,0,7864420}-{1,2808,3343,0,7864420}-{1,2588,3090,2,7209050}-{1,2587,3090,2,7209050}-{1,3195,3849,0,6553660}-{1,3186,3836,0,6553660}'), +(231, '{1,2905,3297,0,1310730}-{1,2907,3295,0,1310730}-{1,2553,3751,0,7864410}-{1,2553,3754,0,7864410}-{1,2552,3757,0,7864410}-{1,2546,3763,0,7864410}-{1,2542,3765,0,7864410}-{1,2540,3765,0,7864410}-{1,2528,3716,0,7864410}-{1,2501,3727,0,7864410}-{1,2502,3726,0,7864410}-{1,2501,3729,0,7864410}-{1,2500,3730,0,7864410}-{1,2500,3731,0,7864410}-{1,2501,3732,0,7864410}-{1,2503,3733,0,7864410}-{1,2504,3732,0,7864410}-{1,2506,3731,0,7864410}-{1,2529,3735,0,7864410}-{1,2531,3736,0,7864410}-{1,2527,3746,0,7864410}-{1,2525,3751,0,7864410}-{1,2532,3762,0,7864410}-{1,2503,3757,0,5898270}-{1,2502,3756,0,5898270}-{1,2502,3754,0,5898270}-{1,2502,3752,0,5898270}-{1,2503,3751,0,5898270}-{1,2505,3753,0,5898270}'), +(239, '{1,3217,3812,0,196610}-{1,3210,3808,0,196610}'), +(243, '{1,2912,9809,0,3932190}-{1,2914,9802,0,3932190}-{1,2912,9800,0,3932190}-{1,2908,9807,0,3932190}-{1,2911,9804,0,3932190}-{1,2904,9798,0,3932190}-{1,2905,9804,0,3932190}-{1,2901,9806,0,3932190}-{1,2909,9799,0,3932190}'), +(245, '{1,2931,3515,0,4587570}'), +(247, '{1,2512,3080,0,5898270}-{1,2517,3082,0,5898270}-{1,2509,3088,0,5898270}-{1,2508,3084,0,5898270}'), +(272, '{1,3108,3356,1,10485900}'), +(273, '{1,3097,3366,0,10485900}'), +(276, '{1,3111,3367,0,4587570}'), +(277, '{1,3092,9755,0,4587570}'), +(301, '{1,2608,3397,0,7209050}'), +(303, '{1,3245,3155,0,10485900}-{1,3244,3159,0,10485900}'), +(305, '{1,2605,3395,0,7209050}'), +(307, '{1,2860,3335,0,13762750}'), +(311, '{1,2605,3396,0,7209050}'), +(347, '{1,2563,9511,0,5898270}'), +(357, '{1,2820,3453,0,7209050}'), +(401, '{1,2803,3382,0,11796640}-{1,2804,3380,0,11796640}-{1,2805,3381,0,11796640}-{1,2805,3384,0,11796640}-{1,2804,3385,0,11796640}-{1,2810,3387,0,11796640}-{1,2809,3388,0,11796640}-{1,2807,3384,0,11796640}-{1,2807,3386,0,11796640}-{1,2809,33885,0,11796640}-{1,2864,3195,0,11796640}-{1,2764,3131,0,11796640}-{1,2753,3125,0,11796640}-{1,2757,3109,0,11796640}-{1,2896,3119,0,5898290}'), +(444, '{1,3195,9821,0,11141270}-{1,3231,3739,0,19661050}-{1,3236,3741,0,19661050}'), +(480, '{1,3298,3313,0,5898270}'), +(526, '{1,2831,9766,0,7864410}-{1,2829,9764,0,7864410}-{1,2510,3080,0,5898270}-{1,2516,3084,0,5898270}-{1,2509,3090,0,5898270}-{1,2512,3084,0,5898270}-{1,2510,3084,0,5898270}-{1,2505,3114,0,5898270}-{1,2507,3116,0,5898270}-{1,2503,3118,0,5898270}-{1,2510,3114,0,5898270}-{1,3238,3606,0,9830500}-{1,3236,3605,0,9830500}-{1,3238,3603,0,9830500}-{1,3240,3603,0,9830500}-{1,3242,3604,0,9830500}-{1,3244,3611,0,9830500}-{1,3247,3614,0,9830500}-{1,3238,3610,0,9830500}-{1,3238,3608,0,9830500}'), +(528, '{1,3182,3848,0,6553650}-{1,3178,3851,0,6553660}-{1,3179,3853,0,6553660}-{1,3185,3857,0,6553660}-{1,3187,3853,0,6553660}-{1,3211,3822,0,6553660}-{1,3212,3819,0,6553660}-{1,3217,3816,0,6553660}-{1,3218,3813,0,6553660}'), +(542, '{1,3059,3488,1,7209050}'), +(544, '{1,3059,3487,1,7209050}'), +(554, '{1,3303,3311,0,5898270}-{1,3026,3636,0,19661000}'), +(555, '{1,3297,3316,0,5898270}-{1,3028,3636,0,19661000}'), +(556, '{1,2938,3158,0,8519790}-{1,3030,3636,0,19661000}'), +(557, '{1,3032,3636,0,19661000}'), +(558, '{1,3206,3208,0,5898280}-{1,3023,3640,0,19661000}'), +(559, '{1,3089,3866,0,5898270}-{1,3021,3637,0,19661000}-{1,3233,3573,0,19661000}-{1,3234,3578,0,19661000}-{1,3230,3582,0,19661000}'), +(562, '{1,3021,3640,0,19661000}'), +(590, '{1,3112,3369,2,10485900}-{1,3209,3734,0,13107300}'), +(687, '{1,2655,3424,0,6553680}-{1,2665,3424,0,6553680}-{1,2669,3423,0,6553680}-{1,2668,3419,0,6553680}-{1,2671,3420,0,6553680}-{1,2677,3423,0,6553680}-{1,2676,3425,0,6553680}-{1,2676,3422,0,6553680}-{1,2679,3424,0,6553680}-{1,2678,3426,0,6553680}-{1,2679,3423,0,6553680}-{1,2680,3424,0,6553680}-{1,2672,3427,0,6553680}-{1,2676,3430,0,6553680}-{1,2673,3428,0,6553680}-{1,2670,3437,0,6553680}'), +(712, '{1,2887,3412,0,5898270}-{1,2903,3441,0,5898270}'), +(767, '{1,3245,3385,1,4587570}-{1,3243,3383,1,4587570}'), +(882, '{1,3205,3227,0,10485900}-{1,2957,3205,0,5898270}-{1,2944,3332,0,5898270}-{1,3104,3599,0,13107300}-{1,3103,3596,0,13107300}-{1,3100,3593,0,13107300}-{1,3096,3595,0,13107300}-{1,3094,3598,0,13107300}-{1,3100,3609,0,13107300}-{1,3104,3610,0,13107300}-{1,3107,3611,0,13107300}-{1,3108,3603,0,13107300}'), +(946, '{1,3218,9887,0,6553680}-{1,3205,3212,0,6553680}-{1,3215,9625,0,6553680}-{1,3224,3202,0,6553680}-{1,2903,3148,0,6553680}-{1,2820,3450,0,7209050}-{1,3218,3416,1,7864410}-{1,3106,3956,0,5242940}-{1,2566,9526,0,5898270}'), +(952, '{1,3120,3359,0,8519790}-{1,2981,3370,0,9830490}-{1,3572,3312,0,3276830}-{1,3571,3310,0,3276830}-{1,3218,3412,1,5898270}'), +(954, '{1,2094,3152,0,11141270}'), +(960, '{1,2846,3383,0,11796640}-{1,2848,3383,0,11796640}-{1,2851,3239,0,11796640}-{1,2847,3238,0,11796640}-{1,2845,3232,0,11796640}-{1,2856,3231,0,11796640}-{1,2857,3236,0,11796640}-{1,3216,3665,0,16384200}-{1,3224,3668,0,16384200}-{1,3245,3678,0,16384200}-{1,3230,3686,0,16384200}-{1,3216,3677,0,16384200}-{1,3219,3680,0,16384200}'), +(966, '{1,3237,3696,0,13107350}'), +(970, '{1,3290,3033,1,7864410}'), +(983, '{1,3131,9862,0,7209050}'), +(995, '{3,3195,9834,0,11141270}-{4,3195,9820,0,11141270}-{66,3191,9821,0,11141270}-{56,3190,9819,0,11141270}-{26,3188,9819,0,11141270}-{26,3188,9820,0,11141270}-{35,3189,9819,0,11141270}-{384,3224,3830,0,6553650}-{384,3220,3824,0,6553650}-{2,3106,3547,0,13107300}-{1,3104,3558,0,13107300}-{1,3106,3534,0,13107300}-{2,3101,3564,0,13107300}-{4,3103,3579,0,13107300}-{2,3234,3560,0,13107300}'), +(1005, '{1,3014,3227,0,3276830}-{1,3009,3204,0,3276830}'), +(1059, '{1,3242,3385,1,7209050}-{1,3097,3486,0,7864410}-{1,3148,3177,0,5898270}'), +(1061, '{1,3244,3386,1,13762750}-{1,3208,9620,0,13762750}-{1,3210,9615,0,13762750}-{1,3111,3159,0,13762750}-{1,3112,3155,0,7864420}-{1,3302,3190,0,5898270}'), +(1119, '{1,3084,3859,0,6553660}'), +(1137, '{1,3242,3688,0,13107350}'), +(1139, '{1,3122,3360,0,13762750}'), +(1171, '{1,3217,3514,0,2949150}'), +(1191, '{1,3250,3797,0,13107350}'), +(1203, '{1,3242,3383,1,17039600}-{1,3248,3245,0,13107380}-{1,3216,3695,0,13107350}'), +(1205, '{1,3213,3216,1,13762750}'), +(1207, '{1,3213,3682,0,13107300}'), +(1217, '{1,3180,3821,0,6553660}'), +(1265, '{1,3081,3429,0,6553650}-{1,3288,9442,0,7864410}-{1,3288,9431,0,7864410}-{1,2963,3216,0,5898270}'), +(1321, '{1,2965,3211,1,5898270}'), +(1351, '{1,2795,3161,0,17039600}-{1,2970,3376,1,5898270}'), +(1385, '{1,3099,3862,0,58983299}'), +(1422, '{1,3320,3137,0,11141270}'), +(1511, '{1,3205,3226,2,11796640}-{1,3205,3224,2,11796640}-{1,3208,3225,2,11796640}-{1,3209,3224,2,11796640}-{1,3106,3160,0,11796640}-{1,3106,3159,0,11796640}-{1,3105,3159,0,11796640}-{1,2958,3205,0,5898270}-{1,2959,3205,0,5898270}'), +(1523, '{1,2614,9570,0,5898270}'), +(1573, '{1,2740,3637,0,5898270}-{1,2736,3638,0,5898270}-{1,2735,3636,0,5898270}-{1,2743,3636,0,5898270}-{1,2739,3634,0,5898270}-{1,2743,3640,0,5898270}-{1,2741,3639,0,5898270}-{1,2736,3641,0,5898270}-{1,2738,3641,0,5898270}-{1,2734,3640,0,5898270}-{1,2738,3636,0,5898270}'), +(1592, '{1,2935,3283,1,7209050}'), +(1595, '{1,2928,3290,0,7209050}'), +(1597, '{1,2932,3287,1,7209050}'), +(1599, '{1,2931,3287,1,7209050}'), +(1607, '{1,3169,3887,0,32768400}-{1,3169,3887,0,32768400}'), +(1641, '{1,3196,9822,0,11141270}'), +(1654, '{1,3192,9821,0,11141270}'), +(1734, '{1,3286,3491,0,4587570}'), +(1735, '{1,3192,3272,0,10485900}-{1,3126,3356,0,10485900}-{1,2930,3285,1,7209050}-{1,3152,3306,0,5898270}'), +(1755, '{1,2935,3286,0,7209050}'), +(1785, '{1,2822,3355,0,11141270}'), +(1887, '{1,3141,3452,1,7209050}'), +(1917, '{1,2799,3156,0,11141270}-{1,2796,3165,0,11141270}-{1,3080,3438,0,4587565}-{1,3286,3033,1,7864410}-{1,3077,3439,0,5898270}-{1,3077,3443,0,5898270}-{1,3049,3257,0,11141270}'), +(1919, '{1,2798,3156,0,11141270}-{1,2799,3155,0,11141270}-{1,2795,3160,0,11141270}-{1,2798,3160,0,11141270}-{1,2798,3161,0,11141270}-{1,2795,3165,0,11141270}-{1,2794,3165,0,11141270}'), +(1921, '{1,3291,3034,0,7209050}'), +(1923, '{1,3208,3214,0,6553680}-{1,3140,3452,1,7209050}'), +(1925, '{1,3225,3294,0,6553680}-{1,3121,3359,0,6553660}-{1,3216,9625,0,6553680}-{1,3026,3289,0,6553680}-{1,2958,3510,0,6553680}-{1,3221,3497,1,6553680}-{1,2958,3510,0,6553680}-{1,3222,3491,1,6553680}-{1,3307,3195,0,5898270}'), +(1929, '{1,2820,3452,0,7209050}-{1,2823,3449,0,7209050}'), +(1931, '{1,3209,3214,0,6553680}-{1,3144,3449,2,7209050}-{1,3166,3310,0,7864410}'), +(1935, '{1,3211,3212,0,6553680}-{1,3211,9625,0,6553680}-{1,2905,3146,0,6553680}-{1,2936,3292,0,7209050}-{1,3142,3447,2,7209050}'), +(1939, '{1,3193,3181,0,11141270}-{1,3194,3168,0,11141270}-{1,3191,3162,0,11141270}-{1,3189,3163,0,11141270}-{1,3185,3161,0,11141270}-{1,3182,3165,0,11141270}-{1,3172,3166,0,11141270}-{1,3170,3167,0,11141270}-{1,3164,3169,0,11141270}-{1,3171,3177,0,11141270}-{1,3173,3178,0,11141270}-{1,3164,3180,0,11141270}-{1,3165,3187,0,11141270}-{1,3171,3191,0,11141270}-{1,3178,3190,0,11141270}-{1,3181,3193,0,11141270}-{1,3182,3181,0,11141270}-{1,3493,3408,0,3932190}-{1,3494,3402,0,3932190}-{1,3494,3396,0,3932190}-{1,3499,3401,0,3932190}'), +(1944, '{1,3229,3299,0,3604515}-{1,3226,3301,0,3604515}-{1,3191,3276,0,3604515}-{1,2853,3370,0,3604515}-{1,2852,3369,0,3604515}-{1,2851,3372,0,3604515}-{1,3015,3295,0,5898270}-{1,3016,3295,0,5898270}'), +(1955, '{1,3141,3447,1,7209050}-{1,3140,3447,1,7209050}-{1,3141,3447,2,7209050}'), +(1963, '{1,2907,3146,0,11141270}-{1,3009,3207,0,11141270}'), +(1965, '{1,3217,9622,0,7209050}'), +(1971, '{1,2843,3369,0,11796640}'), +(1973, '{1,3143,3453,0,5242920}'), +(1982, '{1,3085,3261,0,11141270}-{1,3039,3706,0,1310735}'), +(1985, '{1,3083,3260,0,11141270}-{1,3039,3707,0,1310735}'), +(1987, '{1,3237,9761,0,7209050}-{1,3144,3450,2,7209050}'), +(1993, '{1,3291,3033,1,7864410}'), +(2140, '{1,2971,3382,1,5898270}'), +(2142, '{1,3080,3443,0,5898270}-{1,3077,3441,0,5898270}'), +(2150, '{1,2418,3511,0,3932190}-{1,2417,3512,0,3932190}-{1,2416,3512,0,5898270}-{1,2412,3511,0,5898270}-{1,2411,3519,0,5898270}-{1,2415,3518,0,5898270}-{1,2417,3516,0,5898270}-{1,2417,3515,0,5898270}-{1,2421,3519,0,5898270}-{1,2424,3517,0,5898270}-{1,2424,3514,0,5898270}-{1,2428,3510,0,5898270}-{1,2407,3516,0,5898270}-{1,2907,3393,0,5898270}-{1,2903,3400,0,5898270}-{1,2908,3410,0,5898270}'), +(2162, '{1,2425,3515,0,5898270}-{1,2415,3517,0,5898270}-{1,2414,3518,0,5898270}-{1,2419,3511,0,5898270}-{1,2415,3511,0,5898270}-{1,2414,3510,0,5898270}-{1,2427,3508,0,5898270}-{1,2426,3507,0,5898270}-{1,2408,3518,0,5898270}-{1,2896,3414,0,5898270}'), +(2313, '{1,3142,3447,1,7209050}-{1,2820,3455,0,7209050}-{1,3222,3494,0,7864410}'), +(2347, '{1,2934,3286,0,7209050}-{1,2579,3463,0,5242920}-{1,2975,3368,1,5898270}'), +(2357, '{1,3192,9822,0,11141270}'), +(2398, '{1,2517,3049,0,6553650}-{1,2511,3045,0,6553650}'), +(2407, '{1,2935,3460,0,5}'), +(2408, '{1,2903,3471,0,5}'), +(3109, '{1,2893,3565,0,1441794}'), +(3110, '{1,2893,3564,0,1441794}'), +(3111, '{1,2893,3561,0,1441794}'), +(3112, '{1,2893,3563,0,1441794}'), +(3113, '{1,2893,3562,0,1441794}'), +(3138, '{1,3463,9478,2,3932205}-{1,3461,9480,2,3932205}-{1,3461,9482,2,3932205}-{1,3461,9484,2,3932205}'), +(4707, '{1,3571,3312,0,3932200}'), +(5523, '{1,2935,3282,1,7209050}'), +(6291, '{1,2681,3111,0,5898270}-{1,2673,3112,0,5898270}-{1,2674,3094,0,5898270}-{1,2671,3089,0,5898270}'), +(6662, '{1,2984,3112,0,8519770}'), +(6663, '{1,2984,3114,0,8519770}'), +(11065, '{1,2928,3289,0,7209050}'), +(12494, '{1,2762,2973,0,7864380}'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `interface_configs` +-- + +CREATE TABLE `interface_configs` ( + `id` int(11) UNSIGNED NOT NULL, + `interfaceType` int(11) NOT NULL DEFAULT 0, + `walkable` tinyint(1) NOT NULL DEFAULT 0, + `tabIndex` int(11) NOT NULL DEFAULT -1 +) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Default = 0\nOverlay = 1\nTab = 2\nSingle tab = 3\nDialogue = 4\nWindow pane = 5\nCS Chatbox = 6\nChatbox= 7'; + +-- +-- Dumping data for table `interface_configs` +-- + +INSERT INTO `interface_configs` (`id`, `interfaceType`, `walkable`, `tabIndex`) VALUES +(5, 1, 1, -1), +(12, 0, 0, -1), +(13, 0, 0, -1), +(15, 3, 0, -1), +(24, 1, 1, -1), +(64, 4, 0, -1), +(65, 4, 0, -1), +(66, 4, 0, -1), +(67, 4, 0, -1), +(74, 4, 0, -1), +(92, 2, 1, 0), +(94, 4, 0, -1), +(96, 1, 1, -1), +(98, 1, 1, -1), +(102, 0, 0, -1), +(107, 3, 0, -1), +(115, 1, 1, -1), +(118, 1, 1, -1), +(126, 1, 0, -1), +(131, 4, 0, -1), +(137, 7, 1, -1), +(140, 4, 0, -1), +(149, 2, 1, 3), +(172, 4, 0, -1), +(173, 4, 0, -1), +(174, 4, 0, -1), +(175, 4, 0, -1), +(176, 4, 0, -1), +(177, 4, 0, -1), +(182, 2, 1, 14), +(187, 2, 1, 13), +(192, 2, 1, 6), +(193, 2, 1, 6), +(198, 1, 1, -1), +(210, 4, 0, -1), +(211, 4, 0, -1), +(212, 4, 0, -1), +(213, 4, 0, -1), +(228, 4, 0, -1), +(230, 4, 0, -1), +(232, 4, 0, -1), +(234, 4, 0, -1), +(236, 3, 0, -1), +(241, 4, 0, -1), +(242, 4, 0, -1), +(243, 4, 0, -1), +(244, 4, 0, -1), +(259, 2, 1, 2), +(261, 2, 1, 11), +(271, 2, 1, 5), +(274, 2, 1, 2), +(303, 4, 0, -1), +(304, 4, 0, -1), +(305, 4, 0, -1), +(306, 4, 0, -1), +(307, 4, 0, -1), +(309, 4, 0, -1), +(311, 4, 0, -1), +(312, 7, 0, -1), +(319, 0, 0, -1), +(320, 2, 1, 1), +(324, 0, 0, -1), +(336, 3, 0, -1), +(371, 1, 1, -1), +(372, 4, 0, -1), +(373, 1, 1, -1), +(380, 1, 1, -1), +(381, 1, 1, -1), +(387, 2, 1, 4), +(389, 6, 0, -1), +(395, 4, 0, -1), +(398, 3, 0, -1), +(407, 1, 1, -1), +(408, 1, 1, -1), +(411, 2, 1, 4), +(421, 4, 0, -1), +(430, 2, 1, 6), +(464, 2, 1, 12), +(482, 1, 1, -1), +(498, 0, 0, -1), +(516, 0, 0, -1), +(519, 4, 0, -1), +(532, 1, 1, -1), +(541, 1, 1, -1), +(548, 5, 1, -1), +(549, 5, 1, -1), +(550, 2, 1, 8), +(551, 2, 1, 9), +(553, 0, 0, -1), +(582, 4, 0, -1), +(589, 2, 1, 10), +(597, 1, 1, -1), +(598, 1, 1, -1), +(599, 1, 1, -1), +(601, 1, 1, -1), +(620, 0, 0, -1), +(621, 3, 0, -1), +(630, 4, 0, -1), +(638, 1, 1, -1), +(644, 3, 0, -1), +(648, 3, 0, -1), +(656, 1, 1, -1), +(660, 0, 0, -1), +(662, 2, 1, 7), +(665, 1, 0, -1), +(667, 0, 0, -1), +(668, 4, 0, -1), +(670, 3, 0, -1), +(695, 7, 1, -1), +(698, 7, 1, -1), +(701, 7, 1, -1), +(703, 7, 0, -1), +(706, 7, 0, -1), +(711, 7, 1, -1), +(735, 3, 0, -1), +(740, 4, 0, -1), +(746, 5, 1, -1), +(755, 5, 0, -1), +(763, 3, 0, -1); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `item_configs` +-- + +CREATE TABLE `item_configs` ( + `id` int(11) UNSIGNED NOT NULL, + `name` varchar(60) NOT NULL DEFAULT '', + `examine` varchar(255) DEFAULT NULL, + `tradeable` tinyint(1) DEFAULT NULL, + `lendable` tinyint(1) DEFAULT NULL, + `low_alchemy` int(11) DEFAULT NULL, + `high_alchemy` int(11) DEFAULT NULL, + `destroy` tinyint(1) DEFAULT NULL, + `destroy_message` varchar(255) DEFAULT NULL, + `shop_price` int(11) DEFAULT NULL, + `grand_exchange_price` int(11) DEFAULT NULL, + `remove_head` tinyint(1) DEFAULT NULL, + `remove_beard` tinyint(1) DEFAULT NULL, + `remove_sleeves` tinyint(1) DEFAULT NULL, + `stand_anim` int(11) DEFAULT NULL, + `stand_turn_anim` int(11) DEFAULT NULL, + `walk_anim` int(11) DEFAULT NULL, + `run_anim` int(11) DEFAULT NULL, + `turn180_anim` int(11) DEFAULT NULL, + `turn90cw_anim` int(11) DEFAULT NULL, + `turn90ccw_anim` int(11) DEFAULT NULL, + `render_anim` int(11) DEFAULT NULL, + `equipment_slot` int(11) DEFAULT NULL, + `attack_speed` int(11) DEFAULT NULL, + `absorb` varchar(255) DEFAULT NULL, + `bonuses` varchar(255) DEFAULT NULL, + `weapon_interface` int(11) DEFAULT NULL, + `has_special` tinyint(1) DEFAULT NULL, + `two_handed` tinyint(1) DEFAULT NULL, + `attack_anims` varchar(255) DEFAULT NULL, + `defence_anim` int(11) DEFAULT NULL, + `attack_audios` varchar(255) DEFAULT NULL, + `requirements` varchar(255) DEFAULT NULL, + `weight` double DEFAULT NULL, + `ge_buy_limit` int(11) DEFAULT NULL, + `bankable` tinyint(1) DEFAULT NULL, + `rare_item` tinyint(1) DEFAULT NULL, + `tokkul_price` int(11) DEFAULT NULL, + `point_price` int(11) DEFAULT NULL, + `fun_weapon` tinyint(1) DEFAULT NULL, + `archery_ticket_price` int(11) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- +-- Dumping data for table `item_configs` +-- + +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(0, 'Dwarf remains', 'The body of a Dwarf savaged by Goblins.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1, 'Toolkit', 'Good for repairing a broken cannon.', NULL, NULL, NULL, NULL, 1, 'I got this from Captain Lawgof.', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2, 'Cannonball', 'Ammo for the Dwarf Cannon.', 1, NULL, 2, 3, NULL, NULL, 5, 381, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3, 'Nulodion\'s notes', 'Construction notes for Dwarf cannon ammo.', NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.02, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4, 'Ammo mould', 'Used to make cannon ammunition.', NULL, NULL, 2, 3, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{13,35}', 4.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5, 'Instruction manual', 'An old note book.', NULL, NULL, 4, 6, NULL, NULL, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.51, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6, 'Cannon base', 'The cannon is built on this.', 1, NULL, 75000, 112500, NULL, NULL, 187500, 189000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 10, NULL, NULL, NULL, NULL, NULL, 0), +(7, 'Cannon base', NULL, 1, NULL, 75000, 112500, NULL, NULL, 187500, 189000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(8, 'Cannon stand', 'The mounting for the multicannon.', 1, NULL, 75000, 112500, NULL, NULL, 187500, 185000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 10, NULL, NULL, NULL, NULL, NULL, 0), +(9, 'Cannon stand', NULL, 1, NULL, 75000, 112500, NULL, NULL, 187500, 185000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(10, 'Cannon barrels', 'The barrels for the multicannon.', 1, NULL, 75000, 112500, NULL, NULL, 187500, 187000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11, 'Cannon barrels', NULL, 1, NULL, 75000, 112500, NULL, NULL, 187500, 187000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(12, 'Cannon furnace', 'This powers the multicannon.', 1, NULL, 75000, 112500, NULL, NULL, 187500, 175200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 10, NULL, NULL, NULL, NULL, NULL, 0), +(13, 'Cannon furnace', NULL, 1, NULL, 75000, 112500, NULL, NULL, 187500, 175200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(14, 'Railing', 'A metal railing replacement.', NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(15, 'Holy table napkin', 'A cloth given to me by Sir Galahad.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(16, 'Magic whistle', 'A small tin whistle.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(17, 'Grail bell', 'I wonder what happens when I ring it?', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(18, 'Magic gold feather', 'It will point the way for me.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(20, 'White cog', 'A cog from some machinery.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(21, 'Black cog', 'A cog from some machinery.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(22, 'Blue cog', 'A cog from some machinery.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(23, 'Red cog', 'A cog from some machinery.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(24, 'Rat poison', 'Doesn\'t look very tasty.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(25, 'Red vine worm', 'Wormy.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(26, 'Fishing trophy', 'Hemenster fishing contest trophy.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(27, 'Fishing pass', 'Pass to the Hemenster fishing contest.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(28, 'Insect repellent', 'Drives away all known 6 legged creatures.', NULL, NULL, 1, 1, NULL, NULL, 121, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(30, 'Bucket of wax', 'It\'s a bucket of wax.', NULL, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(32, 'Lit black candle', 'A spooky candle.', NULL, NULL, 1, 1, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(33, 'Lit candle', 'A candle.', 1, NULL, 1, 1, NULL, NULL, 24, 104, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(34, 'Lit candle', 'A candle.', 1, NULL, 1, 1, NULL, NULL, 24, 104, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(35, 'Excalibur', 'This used to belong to King Arthur.', NULL, NULL, 80, 120, NULL, NULL, 200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2554, 3, 5, NULL, '20,29,-2,0,0,0,3,2,1,0,0,25,0,0,0', 6, 1, NULL, '390,390,381,390', 397, '2500,2500,2517,2500', NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(36, 'Candle', 'A candle.', 1, NULL, 1, 1, NULL, NULL, 24, 119, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(37, 'Candle', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 119, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(38, 'Black candle', 'A spooky candle.', NULL, NULL, 1, 1, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(39, 'Bronze arrowtips', 'I can make an arrow with these.', 1, NULL, 4, 6, NULL, NULL, 10, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(40, 'Iron arrowtips', 'I can make an arrow with these.', 1, NULL, 10, 15, NULL, NULL, 26, 23, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(41, 'Steel arrowtips', 'I can make an arrow with these.', 1, NULL, 14, 21, NULL, NULL, 36, 63, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(42, 'Mithril arrowtips', 'I can make an arrow with these.', 1, NULL, 27, 40, NULL, NULL, 68, 74, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(43, 'Adamant arrowtips', 'I can make an arrow with these.', 1, NULL, 64, 96, NULL, NULL, 160, 185, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(44, 'Rune arrowtips', 'I can make an arrow with these.', 1, NULL, 184, 276, NULL, NULL, 460, 839, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(45, 'Opal bolt tips', 'Opal bolt tips.', 1, NULL, 2, 4, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(46, 'Pearl bolt tips', 'Pearl bolt tips.', 1, NULL, 4, 7, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(47, 'Barb bolttips', 'I can make bolts with these.', 1, NULL, 38, 57, 1, NULL, 114, 44, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 5), +(48, 'Longbow (u)', 'An unstrung longbow; I need a bowstring for this.', 1, NULL, 24, 36, NULL, NULL, NULL, 14, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(49, 'Longbow (u)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 14, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(50, 'Shortbow (u)', 'I need to find a string for this.', 1, NULL, 9, 13, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(51, 'Shortbow (u)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(52, 'Arrow shaft', 'A wooden arrow shaft', 1, NULL, 4, 7, NULL, NULL, NULL, 21, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(53, 'Headless arrow', 'A wooden arrow shaft with flights attached.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 56, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(54, 'Oak shortbow (u)', 'An unstrung oak bow; I need a bowstring for this.', 1, NULL, 20, 30, NULL, NULL, 50, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(55, 'Oak shortbow (u)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(56, 'Oak longbow (u)', 'An unstrung oak longbow; I need a bowstring for this.', 1, NULL, 32, 48, NULL, NULL, NULL, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(57, 'Oak longbow (u)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(58, 'Willow longbow (u)', 'An unstrung willow longbow; I need a bowstring for this.', 1, NULL, 64, 96, NULL, NULL, 64, 46, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(59, 'Willow longbow (u)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 46, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(60, 'Willow shortbow (u)', 'An unstrung willow shortbow; I need a bowstring for this.', 1, NULL, 40, 60, NULL, NULL, 16, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(61, 'Willow shortbow (u)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(62, 'Maple longbow (u)', 'An unstrung maple bow; I need a bowstring for this.', 1, NULL, 128, 192, NULL, NULL, NULL, 94, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.2, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(63, 'Maple longbow (u)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 94, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(64, 'Maple shortbow (u)', 'An unstrung maple bow; I need a bowstring for this.', 1, NULL, 80, 120, NULL, NULL, NULL, 56, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(65, 'Maple shortbow (u)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 56, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(66, 'Yew longbow (u)', 'An unstrung yew longbow; I need a bowstring for this.', 1, NULL, 256, 384, NULL, NULL, NULL, 468, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.32, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(67, 'Yew longbow (u)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 468, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(68, 'Yew shortbow (u)', 'An unstrung yew shortbow; I need a bowstring for this.', 1, NULL, 160, 240, NULL, NULL, NULL, 158, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.32, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(69, 'Yew shortbow (u)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 158, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(70, 'Magic longbow (u)', 'An unstrung magic longbow; I need a bowstring for this.', 1, NULL, 512, 768, NULL, NULL, 931, 1246, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(71, 'Magic longbow (u)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1246, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(72, 'Magic shortbow (u)', 'An unstrung magic shortbow; I need a bowstring for this.', 1, NULL, 320, 480, NULL, NULL, 890, 745, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(73, 'Magic shortbow (u)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 745, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(74, 'Khazard helmet', 'A helmet, as worn by the minions of General Khazard.', NULL, NULL, 4, 6, NULL, 'I can borrow another from the armoury near the Fight Arena.', 10, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,0,0,4,5,3,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(75, 'Khazard armour', 'Armour, as worn by the minions of General Khazard.', NULL, NULL, 4, 7, NULL, 'I can borrow another from the armoury near the Fight Arena.', 12, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,9,11,10,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(76, 'Khazard cell keys', 'These keys open the cells at the Khazard Fight Arena. (Fight Arena)', NULL, NULL, NULL, NULL, 1, 'The lazy guard probably has a spare set...', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(77, 'Khali brew', 'A bottle of Khazard\'s worst brew.', NULL, NULL, 2, 3, 1, 'Angor, the Khazard barman, has a stock of Khali brew.', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(78, 'Ice arrows', 'Can only be fired from yew, magic, or dark bows.', NULL, NULL, NULL, 1, 1, 'Can only be fired from yew, magic, dark or twisted bows.', 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,16', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(84, 'Staff of armadyl', 'The power in this staff causes it to vibrate gently.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2553, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(85, 'Shiny key', 'It catches the light! (Temple of Ikov)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(86, 'Pendant of lucien', 'An amulet made by Lucien.', NULL, NULL, 4, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(87, 'Armadyl pendant', 'Yet another amulet.', NULL, NULL, 4, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(88, 'Boots of lightness', 'Magic boots that make you lighter than normal.', NULL, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,0,0,0,1,1,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, -4.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(89, 'Boots of lightness', 'Magic boots that make you lighter than normal.', NULL, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,0,0,0,1,1,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(90, 'Child\'s blanket', 'It\'s very soft!', NULL, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(91, 'Guam potion(unf)', 'I need another ingredient to finish this guam potion.', 1, NULL, 1, 1, NULL, NULL, NULL, 285, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(92, 'Guam potion(unf)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 285, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(93, 'Marrentill potion(unf)', 'I need another ingredient to finish this marrentill potion.', 1, NULL, 2, 3, NULL, NULL, NULL, 43, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(94, 'Marrentill potion(unf)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 43, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(95, 'Tarromin potion(unf)', 'I need another ingredient to finish this tarromin potion.', 1, NULL, 4, 6, NULL, NULL, NULL, 287, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(96, 'Tarromin potion(unf)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 287, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(97, 'Harralander potion(unf)', 'I need another ingredient to finish this potion.', 1, NULL, 8, 12, NULL, NULL, 64, 435, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(98, 'Harralander potion(unf)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 435, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(99, 'Ranarr potion(unf)', 'I need another ingredient to finish this ranarr potion.', 1, NULL, 10, 15, NULL, NULL, NULL, 4823, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(100, 'Ranarr potion(unf)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4823, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(101, 'Irit potion(unf)', 'I need another ingredient to finish this irit potion.', 1, NULL, 16, 24, NULL, NULL, NULL, 2243, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(102, 'Irit potion(unf)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2243, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(103, 'Avantoe potion(unf)', 'I need another ingredient to finish this avantoe potion.', 1, NULL, 19, 28, NULL, NULL, NULL, 3831, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(104, 'Avantoe potion(unf)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3831, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(105, 'Kwuarm potion(unf)', 'I need another ingredient to finish this kwuarm potion.', 1, NULL, 21, 32, NULL, NULL, NULL, 1833, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(106, 'Kwuarm potion(unf)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1833, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(107, 'Cadantine potion(unf)', 'I need another ingredient to finish this cadantine potion.', 1, NULL, 26, 39, NULL, NULL, NULL, 1844, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(108, 'Cadantine potion(unf)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1844, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(109, 'Dwarf weed potion(unf)', 'I need another ingredient to finish this dwarf weed potion.', 1, NULL, 28, 42, NULL, NULL, NULL, 6740, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(110, 'Dwarf weed potion(unf)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 6740, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(111, 'Torstol potion(unf)', 'I need another ingredient to finish this torstol potion.', 1, NULL, 10, 15, NULL, NULL, NULL, 14500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(112, 'Torstol potion(unf)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 14500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(113, 'Strength potion(4)', 'X doses of Strength potion.', 1, NULL, 600, 900, NULL, NULL, 780, 1041, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(114, 'Strength potion(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1041, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(115, 'Strength potion(3)', 'X doses of Strength potion.', 1, NULL, 600, 900, NULL, NULL, 780, 812, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(116, 'Strength potion(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 812, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(117, 'Strength potion(2)', 'X doses of Strength potion.', 1, NULL, 600, 900, NULL, NULL, 780, 656, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(118, 'Strength potion(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 656, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(119, 'Strength potion(1)', 'X doses of Strength potion.', 1, NULL, 600, 900, NULL, NULL, 780, 355, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(120, 'Strength potion(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 355, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(121, 'Attack potion(3)', 'X doses of Attack potion.', 1, NULL, 224, 336, NULL, NULL, 560, 195, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(122, 'Attack potion(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 195, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(123, 'Attack potion(2)', 'X doses of Attack potion.', 1, NULL, 224, 336, NULL, NULL, 560, 113, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(124, 'Attack potion(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 113, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(125, 'Attack potion(1)', 'X doses of Attack potion.', 1, NULL, 224, 336, NULL, NULL, 560, 197, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(126, 'Attack potion(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 197, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(127, 'Restore potion(3)', 'X dose(s) of restore potion.', 1, NULL, 35, 52, NULL, NULL, 139, 59, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.03, 100, NULL, NULL, NULL, NULL, NULL, 0), +(128, 'Restore potion(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 59, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(129, 'Restore potion(2)', 'X dose(s) of restore potion.', 1, NULL, 35, 52, NULL, NULL, 139, 35, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.03, 100, NULL, NULL, NULL, NULL, NULL, 0), +(130, 'Restore potion(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 35, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(131, 'Restore potion(1)', 'X dose(s) of restore potion.', 1, NULL, 35, 52, NULL, NULL, 139, 21, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.03, 100, NULL, NULL, NULL, NULL, NULL, 0), +(132, 'Restore potion(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 21, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(133, 'Defence potion(3)', '(x) doses of Defence Potion.', 1, NULL, 352, 528, NULL, NULL, 114, 323, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(134, 'Defence potion(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 323, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(135, 'Defence potion(2)', '(x) doses of Defence Potion.', 1, NULL, 352, 528, NULL, NULL, 114, 247, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(136, 'Defence potion(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 247, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(137, 'Defence potion(1)', '(x) doses of Defence Potion.', 1, NULL, 352, 528, NULL, NULL, 114, 148, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(138, 'Defence potion(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 148, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(139, 'Prayer potion(3)', '(X) doses of Prayer restore potion.', 1, NULL, 61, 91, NULL, NULL, NULL, 4134, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(140, 'Prayer potion(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4134, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(141, 'Prayer potion(2)', '(X) doses of Prayer restore potion.', 1, NULL, 61, 91, NULL, NULL, NULL, 2868, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(142, 'Prayer potion(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2868, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(143, 'Prayer potion(1)', '(X) doses of Prayer restore potion.', 1, NULL, 61, 91, NULL, NULL, NULL, 1353, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(144, 'Prayer potion(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1353, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(145, 'Super attack(3)', 'X dose(s) of super Attack potion.', 1, NULL, 72, 108, NULL, NULL, NULL, 691, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(146, 'Super attack(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 691, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(147, 'Super attack(2)', 'X dose(s) of super Attack potion.', 1, NULL, 72, 108, NULL, NULL, NULL, 451, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(148, 'Super attack(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 451, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(149, 'Super attack(1)', 'X dose(s) of super Attack potion.', 1, NULL, 72, 108, NULL, NULL, NULL, 243, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(150, 'Super attack(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 243, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(151, 'Fishing potion(3)', 'X doses of Fishing potion.', 1, NULL, 100, 150, NULL, NULL, NULL, 40, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.03, 100, NULL, NULL, NULL, NULL, NULL, 0), +(152, 'Fishing potion(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 40, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(153, 'Fishing potion(2)', 'X doses of Fishing potion.', 1, NULL, 100, 150, NULL, NULL, NULL, 56, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.03, 100, NULL, NULL, NULL, NULL, NULL, 0), +(154, 'Fishing potion(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 56, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(155, 'Fishing potion(1)', 'X doses of Fishing potion.', 1, NULL, 100, 150, NULL, NULL, NULL, 87, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.03, 100, NULL, NULL, NULL, NULL, NULL, 0), +(156, 'Fishing potion(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 87, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(157, 'Super strength(3)', 'X dose(s) of super Strength potion.', 1, NULL, 88, 132, NULL, NULL, NULL, 1679, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(158, 'Super strength(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1679, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(159, 'Super strength(2)', 'X dose(s) of super Strength potion.', 1, NULL, 88, 132, NULL, NULL, NULL, 1164, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(160, 'Super strength(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1164, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(161, 'Super strength(1)', 'X dose(s) of super Strength potion.', 1, NULL, 88, 132, NULL, NULL, NULL, 603, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(162, 'Super strength(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 603, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(163, 'Super defence(3)', 'X dose(s) of super Defence potion.', 1, NULL, 105, 158, NULL, NULL, NULL, 113, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(164, 'Super defence(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 113, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(165, 'Super defence(2)', 'X dose(s) of super Defence potion.', 1, NULL, 105, 158, NULL, NULL, NULL, 65, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(166, 'Super defence(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 65, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(167, 'Super defence(1)', 'X dose(s) of super Defence potion.', 1, NULL, 105, 158, NULL, NULL, NULL, 41, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(168, 'Super defence(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 41, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(169, 'Ranging potion(3)', 'X doses of ranging potion.', 1, NULL, 115, 172, NULL, NULL, NULL, 6224, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(170, 'Ranging potion(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 6224, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(171, 'Ranging potion(2)', 'X doses of ranging potion.', 1, NULL, 115, 172, NULL, NULL, NULL, 4330, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(172, 'Ranging potion(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4330, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(173, 'Ranging potion(1)', 'X doses of ranging potion.', 1, NULL, 115, 172, NULL, NULL, NULL, 2068, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(174, 'Ranging potion(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2068, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(175, 'Antipoison(3)', 'X doses of antipoison potion.', 1, NULL, 115, 172, NULL, NULL, 375, 1239, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(176, 'Antipoison(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1239, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(177, 'Antipoison(2)', 'X doses of antipoison potion.', 1, NULL, 115, 172, NULL, NULL, 375, 822, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(178, 'Antipoison(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 822, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(179, 'Antipoison(1)', 'X doses of antipoison potion.', 1, NULL, 115, 172, NULL, NULL, 375, 460, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(180, 'Antipoison(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 460, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(181, 'Super antipoison(3)', 'X dose(s) of super anti poison potion.', 1, NULL, 115, 172, NULL, NULL, NULL, 872, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(182, 'Super antipoison(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 872, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(183, 'Super antipoison(2)', 'X dose(s) of super anti poison potion.', 1, NULL, 115, 172, NULL, NULL, NULL, 509, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(184, 'Super antipoison(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 509, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(185, 'Super antipoison(1)', 'X dose(s) of super anti poison potion.', 1, NULL, 115, 172, NULL, NULL, NULL, 366, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(186, 'Super antipoison(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 366, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(187, 'Weapon poison', 'For use on daggers and projectiles.', 1, NULL, 57, 86, NULL, NULL, NULL, 33, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(188, 'Weapon poison', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 33, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(189, 'Zamorak brew(3)', 'X dose[s] of Zamorak brew.', 1, NULL, 70, 105, NULL, NULL, NULL, 1818, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(190, 'Zamorak brew(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1818, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(191, 'Zamorak brew(2)', 'X dose[s] of Zamorak brew.', 1, NULL, 70, 105, NULL, NULL, NULL, 1004, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(192, 'Zamorak brew(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1004, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(193, 'Zamorak brew(1)', 'X dose[s] of Zamorak brew.', 1, NULL, 70, 105, NULL, NULL, NULL, 1175, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(194, 'Zamorak brew(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1175, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(195, 'Potion', 'This is meant to be good for spots.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 117, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(196, 'Potion', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 117, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(197, 'Poison chalice', 'Stankers gives out these strange cocktails for free.', 1, NULL, 8, 12, NULL, NULL, 39, 124, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(198, 'Poison chalice', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 124, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(199, 'Grimy guam', 'I need to clean this herb before I can use it.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 155, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{3,15}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(200, 'Grimy guam', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 155, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(201, 'Grimy marrentill', 'I need to clean this herb before I can use it.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 26, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{5,15}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(202, 'Grimy marrentill', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 26, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(203, 'Grimy tarromin', 'I need to clean this herb before I can use it.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 151, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{11,15}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(204, 'Grimy tarromin', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 151, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(205, 'Grimy harralander', 'I need to clean this herb before I can use it.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 275, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{20,15}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(206, 'Grimy harralander', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 275, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(207, 'Grimy ranarr', 'I need to clean this herb before I can use it.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 4909, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{15,25}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(208, 'Grimy ranarr', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4909, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(209, 'Grimy irit', 'I need to clean this herb before I can use it.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 2034, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{15,40}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(210, 'Grimy irit', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2034, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(211, 'Grimy avantoe', 'I need to clean this herb before I can use it.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 3789, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{15,48}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(212, 'Grimy avantoe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3789, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(213, 'Grimy kwuarm', 'I need to clean this herb before I can use it.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1665, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{15,54}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(214, 'Grimy kwuarm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1665, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(215, 'Grimy cadantine', 'I need to clean this herb before I can use it.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1582, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{15,65}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(216, 'Grimy cadantine', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1582, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(217, 'Grimy dwarf weed', 'I need to clean this herb before I can use it.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 6934, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{15,70}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(218, 'Grimy dwarf weed', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 6934, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(219, 'Grimy torstol', 'I need to clean this herb before I can use it.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 8200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{15,75}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(220, 'Grimy torstol', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 35800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(221, 'Eye of newt', 'It seems to be looking at me.', 1, NULL, 1, 1, NULL, NULL, 3, 27, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(222, 'Eye of newt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 27, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(223, 'Red spiders\' eggs', 'Ewww!', 1, NULL, 2, 4, NULL, NULL, NULL, 888, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(224, 'Red spiders\' eggs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 888, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(225, 'Limpwurt root', 'The root of a limpwurt plant.', 1, NULL, 2, 4, NULL, NULL, NULL, 1984, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(226, 'Limpwurt root', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1984, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(227, 'Vial of water', 'A glass vial containing water.', 1, NULL, 4, 6, NULL, NULL, 10, 35, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.02, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(228, 'Vial of water', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 35, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(229, 'Vial', 'An empty glass vial.', 1, NULL, 2, 3, NULL, NULL, 5, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(230, 'Vial', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(231, 'Snape grass', 'Strange spiky grass.', 1, NULL, 4, 6, NULL, NULL, 67, 318, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(232, 'Snape grass', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 318, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(233, 'Pestle and mortar', 'I can grind things for potions in this.', 1, NULL, 1, 2, NULL, NULL, 4, 38, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.05, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(234, 'Pestle and mortar', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 38, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(235, 'Unicorn horn dust', 'Finely ground horn of Unicorn.', 1, NULL, 8, 12, NULL, NULL, NULL, 2460, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(236, 'Unicorn horn dust', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2460, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(237, 'Unicorn horn', 'This horn has restorative properties.', 1, NULL, 8, 12, NULL, NULL, NULL, 2481, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(238, 'Unicorn horn', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2481, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(239, 'White berries', 'Sour berries, used in potions.', 1, NULL, 4, 6, NULL, NULL, NULL, 1438, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(240, 'White berries', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1438, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(241, 'Dragon scale dust', 'Finely ground scale of Dragon.', 1, NULL, 20, 31, NULL, NULL, NULL, 1336, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(242, 'Dragon scale dust', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1336, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(243, 'Blue dragon scale', 'A large shiny scale.', 1, NULL, 20, 30, NULL, NULL, NULL, 1244, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.01, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(244, 'Blue dragon scale', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1244, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(245, 'Wine of zamorak', 'An evil wine that is often found in chaos temples.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 2768, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(246, 'Wine of zamorak', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2768, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(247, 'Jangerberries', 'They don\'t look very ripe.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(248, 'Jangerberries', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(249, 'Clean guam', 'A fresh herb.', 1, NULL, 1, 1, NULL, NULL, NULL, 182, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(250, 'Clean guam', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 182, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(251, 'Clean marrentill', 'A fresh herb.', 1, NULL, 2, 3, NULL, NULL, NULL, 23, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(252, 'Clean marrentill', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 23, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(253, 'Clean tarromin', 'A fresh herb.', 1, NULL, 4, 6, NULL, NULL, NULL, 144, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(254, 'Clean tarromin', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 144, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(255, 'Clean harralander', 'A fresh herb.', 1, NULL, 8, 12, NULL, NULL, NULL, 275, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(256, 'Clean harralander', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 275, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(257, 'Clean ranarr', 'A fresh herb.', 1, NULL, 10, 15, NULL, NULL, NULL, 4930, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(258, 'Clean ranarr', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4930, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(259, 'Clean irit', 'A fresh herb.', 1, NULL, 16, 24, NULL, NULL, NULL, 2072, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(260, 'Clean irit', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2072, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(261, 'Clean avantoe', 'A fresh herb.', 1, NULL, 19, 28, NULL, NULL, NULL, 3812, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(262, 'Clean avantoe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3812, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(263, 'Clean kwuarm', 'A fresh herb.', 1, NULL, 21, 32, NULL, NULL, NULL, 1641, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(264, 'Clean kwuarm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1641, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(265, 'Clean cadantine', 'A fresh herb.', 1, NULL, 26, 39, NULL, NULL, NULL, 1585, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(266, 'Clean cadantine', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1585, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(267, 'Clean dwarf weed', 'A fresh herb.', 1, NULL, 28, 42, NULL, NULL, NULL, 6925, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(268, 'Clean dwarf weed', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 6925, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(269, 'Clean torstol', 'A fresh herb.', 1, NULL, 30, 45, NULL, NULL, NULL, 8400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(270, 'Clean torstol', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 35900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(271, 'Pressure gauge', 'It looks like part of a machine', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(272, 'Fish food', 'A box of fish food / Keeps your pet fish strong and healthy.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(274, 'Poisoned fish food', 'This isn\'t good for fish.', NULL, NULL, NULL, NULL, 1, 'You\'ll have to make more in Draynor Manor.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(275, 'Key', NULL, NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(276, 'Rubber tube', 'It\'s slightly charred.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(277, 'Oil can', 'It\'s pretty full.', NULL, NULL, 1, 1, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(278, 'Cattleprod', 'A sharp cattleprod.', NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, '4,2,-4,1,0,0,0,0,1,0,0,3,0,0,0', 5, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(279, 'Sheep feed', 'Councillor Halgrive gave me this to kill some sheep.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(280, 'Sheep bones (1)', 'The suspicious-looking remains of a suspicious-looking sheep.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(281, 'Sheep bones (2)', 'The suspicious-looking remains of a suspicious-looking sheep.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(282, 'Sheep bones (3)', 'The suspicious-looking remains of a suspicious-looking sheep.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(283, 'Sheep bones (4)', 'The suspicious-looking remains of a suspicious-looking sheep.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(284, 'Plague jacket', 'This should protect me from the plague, I hope!', NULL, NULL, 20, 30, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(285, 'Plague trousers', 'A thick pair of leather trousers. or These should protect me from the plague, I hope!', NULL, NULL, 20, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(286, 'Orange goblin mail', 'Armour designed to fit goblins.', NULL, NULL, 16, 24, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(287, 'Blue goblin mail', 'Armour designed to fit goblins.', NULL, NULL, 16, 24, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(288, 'Goblin mail', 'Armour designed to fit goblins.', 1, NULL, 16, 24, NULL, NULL, 16, 398, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3.6, 100, NULL, NULL, NULL, NULL, NULL, 0), +(289, 'Goblin mail', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 398, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(290, 'Research package', 'This contains some vital research results.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(291, 'Notes', NULL, NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(292, 'Book on baxtorian', 'A book on elven history in northern RuneScape.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(294, 'Glarial\'s pebble', 'A small pebble with elven inscription.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(295, 'Glarial\'s amulet', 'A bright green gem set in a necklace.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(296, 'Glarial\'s urn', 'An urn containing Glarial\'s ashes./An empty urn made for Glarial\'s ashes.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(297, 'Glarial\'s urn', 'An urn containing Glarial\'s ashes./An empty urn made for Glarial\'s ashes.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(299, 'Mithril seeds', 'Magical seeds in a mithril case.', 1, NULL, 80, 120, NULL, NULL, 300, 623, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(300, 'Rat\'s tail', 'A bit of rat.', NULL, NULL, 1, 1, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(301, 'Lobster pot', 'Useful for catching lobsters.', 1, NULL, 8, 12, NULL, NULL, 20, 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{10,40}', 0.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(302, 'Lobster pot', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(303, 'Small fishing net', 'Useful for catching small fish.', 1, NULL, 2, 3, NULL, NULL, 40, 397, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4.5, 100, NULL, NULL, NULL, NULL, NULL, 0), +(304, 'Small fishing net', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 397, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(305, 'Big fishing net', 'Useful for catching lots of fish.', 1, NULL, 8, 12, NULL, NULL, 20, 329, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{16,10}', 8.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(306, 'Big fishing net', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 329, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(307, 'Fishing rod', 'Useful for catching sardine or herring.', 1, NULL, 2, 3, NULL, NULL, 5, 74, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{5,10}', 1.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(308, 'Fishing rod', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 74, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(309, 'Fly fishing rod', 'Useful for catching salmon or trout.In Daemonhiem: Just add feathers.', 1, NULL, 2, 3, NULL, NULL, 5, 123, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{20,10}', 1.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(310, 'Fly fishing rod', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 123, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(311, 'Harpoon', 'Useful for catching big fish.', 1, NULL, 18, 27, NULL, NULL, 45, 235, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{10,35}', 1.3, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(312, 'Harpoon', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 235, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(313, 'Fishing bait', 'For use with a fishing rod.', 1, NULL, 1, 1, NULL, NULL, 3, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(314, 'Feather', 'Used for fly fishing.', 1, NULL, 2, 3, NULL, NULL, 6, 24, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(315, 'Shrimps', 'Some nicely cooked shrimp.', 1, NULL, 2, 3, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(316, 'Shrimps', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(317, 'Raw shrimps', 'I should try cooking this.', 1, NULL, 2, 3, NULL, NULL, 6, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(318, 'Raw shrimps', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(319, 'Anchovies', 'Some nicely cooked anchovies.', 1, NULL, 6, 9, NULL, NULL, NULL, 26, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(320, 'Anchovies', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 26, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(321, 'Raw anchovies', 'I should try cooking this.', 1, NULL, 6, 9, NULL, NULL, 16, 11, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(322, 'Raw anchovies', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 11, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(324, 'Burnt fish', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(325, 'Sardine', 'Some nicely cooked Sardines.', 1, NULL, 4, 6, NULL, NULL, 10, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.12, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(326, 'Sardine', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(327, 'Raw sardine', 'I should try cooking this.', 1, NULL, 4, 6, NULL, NULL, 7, 31, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.12, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(328, 'Raw sardine', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 31, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(329, 'Salmon', 'Some nicely cooked salmon.', 1, NULL, 20, 30, NULL, NULL, 88, 278, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(330, 'Salmon', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 278, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(331, 'Raw salmon', 'I should try cooking this.', 1, NULL, 36, 55, NULL, NULL, 36, 172, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(332, 'Raw salmon', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 172, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(333, 'Trout', 'Some nicely cooked trout.', 1, NULL, 27, 40, NULL, NULL, 7, 172, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(334, 'Trout', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 172, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(335, 'Raw trout', 'I should try cooking this.', 1, NULL, 8, 12, NULL, NULL, 7, 67, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(336, 'Raw trout', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 67, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(337, 'Giant carp', 'Some nicely cooked giant carp.', NULL, NULL, 20, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(338, 'Raw giant carp', 'I should try cooking this.', NULL, NULL, 20, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(339, 'Cod', 'Some nicely cooked fish.', 1, NULL, 10, 15, NULL, NULL, 49, 19, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.33, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(340, 'Cod', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 19, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(341, 'Raw cod', 'I should try cooking this.', 1, NULL, 10, 15, NULL, NULL, 49, 29, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(342, 'Raw cod', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 29, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(344, 'Burnt fish', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(345, 'Raw herring', 'I should try cooking this.', 1, NULL, 6, 9, NULL, NULL, NULL, 63, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(346, 'Raw herring', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 63, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(347, 'Herring', 'Some nicely cooked herring.', 1, NULL, 6, 9, NULL, NULL, 6, 23, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(348, 'Herring', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 23, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(349, 'Raw pike', 'I should try cooking this.', 1, NULL, 10, 15, NULL, NULL, NULL, 72, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(350, 'Raw pike', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 72, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(351, 'Pike', 'Some nicely cooked pike.', 1, NULL, 10, 15, NULL, NULL, NULL, 94, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(352, 'Pike', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 94, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(353, 'Raw mackerel', 'I should try cooking this.', 1, NULL, 10, 15, NULL, NULL, 26, 14, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(354, 'Raw mackerel', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 14, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(355, 'Mackerel', 'Some nicely cooked fish.', 1, NULL, 6, 10, NULL, NULL, 23, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(356, 'Mackerel', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(358, 'Burnt fish', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(359, 'Raw tuna', 'I should try cooking this.', 1, NULL, 40, 60, NULL, NULL, NULL, 210, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.379, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(360, 'Raw tuna', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 210, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(361, 'Tuna', 'Wow, this is a big fish.', 1, NULL, 48, 72, NULL, NULL, 126, 281, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(362, 'Tuna', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 281, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(363, 'Raw bass', 'Wow, this is a big fish.', 1, NULL, 48, 72, NULL, NULL, NULL, 490, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(364, 'Raw bass', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 490, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(365, 'Bass', 'Wow, this is a big fish.', 1, NULL, 48, 72, NULL, NULL, 270, 330, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(366, 'Bass', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 330, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(368, 'Burnt fish', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(370, 'Burnt fish', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(371, 'Raw swordfish', 'I should try cooking this.', 1, NULL, 136, 204, NULL, NULL, NULL, 513, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(372, 'Raw swordfish', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 513, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(373, 'Swordfish', 'I\'d better be careful eating this!', 1, NULL, 160, 240, NULL, NULL, 400, 501, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(374, 'Swordfish', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 501, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(376, 'Burnt swordfish', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(377, 'Raw lobster', 'I should try cooking this.', 1, NULL, 60, 90, NULL, NULL, NULL, 322, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(378, 'Raw lobster', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 322, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(379, 'Lobster', 'This looks tricky to eat.', 1, NULL, 107, 160, NULL, NULL, 107, 334, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(380, 'Lobster', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 334, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(382, 'Burnt lobster', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(383, 'Raw shark', 'I should try cooking this.', 1, NULL, 120, 180, NULL, NULL, NULL, 1615, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.7, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(384, 'Raw shark', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1615, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(385, 'Shark', 'I\'d better be careful eating this.', 1, NULL, 120, 180, NULL, NULL, NULL, 1682, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.6, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(386, 'Shark', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1682, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(388, 'Burnt shark', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(389, 'Raw manta ray', 'Tastier when cooked.', 1, NULL, 200, 300, NULL, NULL, NULL, 2114, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(390, 'Raw manta ray', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2114, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(391, 'Manta ray', 'Mmmm...this looks tasty!', 1, NULL, 200, 300, NULL, NULL, NULL, 2552, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(392, 'Manta ray', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2552, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(394, 'Burnt manta ray', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(395, 'Raw sea turtle', 'Looks wrinkly.', 1, NULL, 200, 300, NULL, NULL, NULL, 2397, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(396, 'Raw sea turtle', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2397, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(397, 'Sea turtle', 'Tasty!', 1, NULL, 200, 300, NULL, NULL, NULL, 2486, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.35, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(398, 'Sea turtle', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2486, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(400, 'Burnt sea turtle', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(401, 'Seaweed', 'Slightly damp seaweed.', 1, NULL, NULL, 1, NULL, NULL, 5, 780, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(402, 'Seaweed', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 780, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(403, 'Edible seaweed', 'Slightly damp seaweed.', 1, NULL, NULL, 1, NULL, NULL, NULL, 291, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(404, 'Edible seaweed', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 291, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(405, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 4162, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, 100, NULL, NULL, NULL, NULL, NULL, 0), +(406, 'Casket', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4162, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(407, 'Oyster', 'Its a rare oyster.', 1, NULL, 80, 120, NULL, NULL, NULL, 23, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(408, 'Oyster', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 23, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(409, 'Empty oyster', 'Aww, it\'s empty.', NULL, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.08, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(410, 'Empty oyster', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(411, 'Oyster pearl', 'I could work wonders with a chisel on this pearl.', 1, NULL, 44, 67, NULL, NULL, 44, 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(412, 'Oyster pearl', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(413, 'Oyster pearls', 'I could work wonders with a chisel on these pearls.', 1, NULL, 560, 840, NULL, NULL, NULL, 639, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(414, 'Oyster pearls', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 639, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(415, 'Ethenea', 'An expensive colourless liquid.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(416, 'Liquid honey', 'This isn\'t worth much.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(417, 'Sulphuric broline', 'It\'s highly poisonous.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(418, 'Plague sample', 'Probably best I don\'t keep this too long.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(419, 'Touch paper', 'A special kind of paper.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(420, 'Distillator', 'Apparently it distills.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(421, 'Lathas\' amulet', 'Yup. It\'s an amulet.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(422, 'Bird feed', 'Birds love this stuff!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(424, 'Pigeon cage', '(empty) It\'s empty... (full) It\'s full of pigeons.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(425, 'Pigeon cage', '(empty) It\'s empty... (full) It\'s full of pigeons.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(426, 'Priest gown', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 55, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,3,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(427, 'Priest gown', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 55, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(428, 'Priest gown', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 14, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,3,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(429, 'Priest gown', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 14, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(430, 'Doctors\' gown', 'Medical looking.', NULL, NULL, 16, 24, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(431, 'Karamjan rum', 'A very strong spirit brewed in Karamja.', NULL, NULL, 12, 18, NULL, NULL, 27, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(433, 'Pirate message', 'Pirates don\'t have the best handwriting...', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(434, 'Clay', 'Some hard dry clay.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 406, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(435, 'Clay', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 406, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(436, 'Copper ore', 'This needs refining.', 1, NULL, 8, 12, NULL, NULL, NULL, 58, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 25000, NULL, NULL, 4, NULL, NULL, 0), +(437, 'Copper ore', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 58, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(438, 'Tin ore', 'This needs refining.', 1, NULL, 8, 12, NULL, NULL, 6, 46, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.25, 25000, NULL, NULL, 4, NULL, NULL, 0), +(439, 'Tin ore', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 46, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(440, 'Iron ore', 'This needs refining.', 1, NULL, 6, 10, NULL, NULL, NULL, 396, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.25, 25000, NULL, NULL, 25, NULL, NULL, 0), +(441, 'Iron ore', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 396, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(442, 'Silver ore', 'This needs refining.', 1, NULL, 30, 45, NULL, NULL, 82, 205, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 25000, NULL, NULL, 112, NULL, NULL, 0), +(443, 'Silver ore', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 205, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(444, 'Gold ore', 'This needs refining.', 1, NULL, 60, 90, NULL, NULL, NULL, 319, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, 25000, NULL, NULL, 225, NULL, NULL, 0), +(445, 'Gold ore', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 319, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(446, '\'perfect\' gold ore', 'This needs refining.', NULL, NULL, 60, 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(447, 'Mithril ore', 'This needs refining.', 1, NULL, 64, 97, NULL, NULL, 243, 369, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.75, 25000, NULL, NULL, 243, NULL, NULL, 0), +(448, 'Mithril ore', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 369, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(449, 'Adamantite ore', 'This needs refining.', 1, NULL, 160, 240, NULL, NULL, 1300, 1622, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, 25000, NULL, NULL, 600, NULL, NULL, 0), +(450, 'Adamantite ore', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1622, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(451, 'Runite ore', 'This needs refining.', 1, NULL, 1280, 1920, NULL, NULL, NULL, 10300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.25, 25000, NULL, NULL, 4800, NULL, NULL, 0), +(452, 'Runite ore', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 10300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(453, 'Coal', 'Hmm a non-renewable energy source!', 1, NULL, 18, 27, NULL, NULL, NULL, 315, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.25, 25000, NULL, NULL, 67, NULL, NULL, 0), +(454, 'Coal', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 315, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(455, 'Barcrawl card', 'The official Alfred Grimhand bar crawl card.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(456, 'Scorpion cage', 'It\'s empty!', NULL, NULL, 4, 6, 1, 'You will need to speak to Thormac to get another cage.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(457, 'Scorpion cage', 'It\'s empty!', NULL, NULL, 4, 6, 1, 'You will need to speak to Thormac to get another cage.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(458, 'Scorpion cage', 'It\'s empty!', NULL, NULL, 4, 6, 1, 'You will need to speak to Thormac to get another cage.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(459, 'Scorpion cage', 'It\'s empty!', NULL, NULL, 4, 6, 1, 'You will need to speak to Thormac to get another cage.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(460, 'Scorpion cage', 'It\'s empty!', NULL, NULL, 4, 6, 1, 'You will need to speak to Thormac to get another cage.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(461, 'Scorpion cage', 'It\'s empty!', NULL, NULL, 4, 6, 1, 'You will need to speak to Thormac to get another cage.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(462, 'Scorpion cage', 'It\'s empty!', NULL, NULL, 4, 6, 1, 'You will need to speak to Thormac to get another cage.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(463, 'Scorpion cage', 'It\'s empty!', NULL, NULL, 4, 6, 1, 'You will need to speak to Thormac to get another cage.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(464, 'Strange fruit', 'Found on strange plants that grow around Karamja.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 403, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(465, 'Strange fruit', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 403, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(466, 'Pickaxe handle', 'Useless without the head.', 1, NULL, 50, 75, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2508,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(467, 'Pickaxe handle', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(468, 'Broken pickaxe', 'Nurmof can fix this for me.', 1, NULL, 160, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2508,0,0,0', NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(469, 'Broken pickaxe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(470, 'Broken pickaxe', 'Nurmof can fix this for me.', 1, NULL, 160, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2508,0,0,0', NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(471, 'Broken pickaxe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(472, 'Broken pickaxe', 'Nurmof can fix this for me.', 1, NULL, 160, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2508,0,0,0', NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(473, 'Broken pickaxe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(474, 'Broken pickaxe', 'Nurmof can fix this for me.', 1, NULL, 160, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2508,0,0,0', NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(475, 'Broken pickaxe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(476, 'Broken pickaxe', 'Nurmof can fix this for me.', 1, NULL, 160, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2508,0,0,0', NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(477, 'Broken pickaxe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(478, 'Broken pickaxe', 'Nurmof can fix this for me.', 1, NULL, 160, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2508,0,0,0', NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(479, 'Broken pickaxe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(480, 'Bronze pick head', 'It\'s missing a handle.', 1, NULL, 160, 160, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(481, 'Bronze pick head', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(482, 'Iron pick head', 'It\'s missing a handle.', 1, NULL, 160, 160, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(483, 'Iron pick head', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(484, 'Steel pick head', 'It\'s missing a handle.', 1, NULL, 160, 160, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(485, 'Steel pick head', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(486, 'Mithril pick head', 'It\'s missing a handle.', 1, NULL, 160, 160, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(487, 'Mithril pick head', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(488, 'Adamant pick head', 'It\'s missing a handle.', 1, NULL, 160, 160, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(489, 'Adamant pick head', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(490, 'Rune pick head', 'It\'s missing a handle.', 1, NULL, 160, 160, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(491, 'Rune pick head', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(492, 'Picture', 'Useless without the head.', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(493, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(494, 'Broken axe', 'Bob can fix this broken (metal) axe for me.', NULL, NULL, 160, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(495, 'Broken axe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(496, 'Broken axe', 'Bob can fix this broken (metal) axe for me.', NULL, NULL, 160, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(497, 'Broken axe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(498, 'Broken axe', 'Bob can fix this broken (metal) axe for me.', NULL, NULL, 160, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(499, 'Broken axe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(500, 'Broken axe', 'Bob can fix this broken (metal) axe for me.', NULL, NULL, 160, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(501, 'Broken axe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(502, 'Broken axe', 'Bob can fix this broken (metal) axe for me.', NULL, NULL, 160, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(503, 'Broken axe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(504, 'Broken axe', 'Bob can fix this broken (metal) axe for me.', NULL, NULL, 160, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(505, 'Broken axe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(506, 'Broken axe', 'Bob can fix this broken (metal) axe for me.', NULL, NULL, 160, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(507, 'Broken axe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(508, 'Picture', 'A piece of ancient goblin hatchet.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(509, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(510, 'Picture', 'A piece of ancient goblin hatchet.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(511, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(512, 'Picture', 'A piece of ancient goblin hatchet.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(513, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(514, 'Picture', 'A piece of ancient goblin hatchet.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(515, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(516, 'Picture', 'A piece of ancient goblin hatchet.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(517, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(518, 'Picture', 'A piece of ancient goblin hatchet.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(519, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(520, 'Picture', 'A piece of ancient goblin hatchet.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(521, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(522, 'Enchanted beef', 'I don\'t fancy eating this now.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(523, 'Enchanted rat meat', 'I don\'t fancy eating this now.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(524, 'Enchanted bear meat', 'I don\'t fancy eating this now.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(525, 'Enchanted chicken', 'I don\'t fancy eating this now.', NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(526, 'Bones', NULL, 1, NULL, NULL, NULL, NULL, NULL, 190, 190, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(527, 'Bones', NULL, 1, NULL, NULL, NULL, NULL, NULL, 190, 190, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(528, 'Burnt bones', 'Bones are for burying!', 1, NULL, NULL, NULL, NULL, NULL, NULL, 329, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(529, 'Burnt bones', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 329, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(530, 'Bat bones', 'Ew it\'s a pile of bones.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 354, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(531, 'Bat bones', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 354, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(532, 'Big bones', 'Normal: Ew, it\'s a pile of bones.', 1, NULL, NULL, NULL, NULL, NULL, 593, 593, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.8, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(533, 'Big bones', NULL, 1, NULL, NULL, NULL, NULL, NULL, 593, 593, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(534, 'Babydragon bones', 'Ew, it\'s a pile of bones.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1357, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.7, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(535, 'Babydragon bones', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1357, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(536, 'Dragon bones', 'These would feed a dog for months.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 4065, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.5, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(537, 'Dragon bones', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4065, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(538, 'Druid\'s robe', 'When the druids and Taverley as a whole were first graphically updated, the Druid robes themselves did not receive a graphical update, nor were they updated when the Troll Warzone update was released.', 1, NULL, 16, 24, NULL, NULL, NULL, 168, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(539, 'Druid\'s robe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 168, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(540, 'Druid\'s robe', 'When the druids and Taverley as a whole were first graphically updated, the Druid robes themselves did not receive a graphical update, nor were they updated when the Troll Warzone update was released.', 1, NULL, 16, 24, NULL, NULL, NULL, 328, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(541, 'Druid\'s robe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 328, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(542, 'Monk\'s robe', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 528, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(543, 'Monk\'s robe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 528, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(544, 'Monk\'s robe', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1495, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,6,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(545, 'Monk\'s robe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1495, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(546, 'Shade robe', 'I feel closer to the gods when I am wearing this. (Top) If a shade had knees, this would keep them nice and warm. (Bottom)', NULL, NULL, 28, 42, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(548, 'Shade robe', 'I feel closer to the gods when I am wearing this. (Top) If a shade had knees, this would keep them nice and warm. (Bottom)', NULL, NULL, 28, 42, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(550, 'Newcomer map', 'Issued by RuneScape Council to all new citizens.', 1, NULL, NULL, NULL, NULL, NULL, 1, 123, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 100, NULL, NULL, NULL, NULL, NULL, 0), +(551, 'Newcomer map', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 123, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(552, 'Ghostspeak amulet', 'Normal: It lets me talk to ghosts.', NULL, NULL, 14, 21, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(553, 'Ghost\'s skull', 'Ooooh spooky!', NULL, NULL, NULL, NULL, 1, 'If you get rid of the skull you\'ll have to search for it again.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(554, 'Fire rune', 'One of the 4 basic elemental Runes.', 1, NULL, 2, 3, NULL, NULL, 17, 39, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, 6, NULL, NULL, 0), +(555, 'Water rune', 'One of the 4 basic elemental Runes.', 1, NULL, 2, 3, NULL, NULL, 17, 15, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, 6, NULL, NULL, 0), +(556, 'Air rune', 'One of the 4 basic elemental Runes.', 1, NULL, 2, 3, NULL, NULL, 17, 37, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, 6, NULL, NULL, 0), +(557, 'Earth rune', 'One of the 4 basic elemental Runes.', 1, NULL, 2, 3, NULL, NULL, 17, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, 6, NULL, NULL, 0), +(558, 'Mind rune', 'Used for basic missile spells.', 1, NULL, 2, 3, NULL, NULL, 17, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, 4, NULL, NULL, 0), +(559, 'Body rune', 'Used for Curse spells', 1, NULL, 2, 3, NULL, NULL, 16, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, 4, NULL, NULL, 0), +(560, 'Death rune', 'Used for medium missile spells.', 1, NULL, 41, 62, NULL, NULL, 310, 433, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(561, 'Nature rune', 'Used for alchemy spells.', 1, NULL, 49, 74, NULL, NULL, 372, 228, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(562, 'Chaos rune', 'Used for small missile spells.', 1, NULL, 18, 28, NULL, NULL, 140, 54, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(563, 'Law rune', 'Used for teleport spells.', 1, NULL, 50, 75, NULL, NULL, 378, 349, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(564, 'Cosmic rune', 'Used for enchant spells.', 1, NULL, 30, 46, NULL, NULL, 232, 158, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(565, 'Blood rune', 'Used for large missile spells.', 1, NULL, 73, 110, NULL, NULL, 550, 408, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(566, 'Soul rune', 'Used for high level curse spells.', 1, NULL, 54, 82, NULL, NULL, 400, 187, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(567, 'Unpowered orb', 'I\'d prefer it if it was powered.', 1, NULL, 40, 60, NULL, NULL, NULL, 561, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(568, 'Unpowered orb', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 561, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(569, 'Fire orb', 'A magic glowing orb.', 1, NULL, 120, 180, NULL, NULL, NULL, 2346, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(570, 'Fire orb', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2346, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(571, 'Water orb', 'A magic glowing orb.', 1, NULL, 120, 180, NULL, NULL, NULL, 2024, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(572, 'Water orb', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2024, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(573, 'Air orb', 'A magic glowing orb.', 1, NULL, 120, 180, NULL, NULL, NULL, 2162, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 5000, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(574, 'Air orb', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2162, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(575, 'Earth orb', 'A magic glowing orb.', 1, NULL, 120, 180, NULL, NULL, NULL, 2208, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(576, 'Earth orb', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2208, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(577, 'Wizard robe', 'I can do magic better in this.', 1, NULL, 6, 9, NULL, NULL, 4, 1840, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,3,0,0,0,0,3,0,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(578, 'Wizard robe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1840, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(579, 'Wizard hat', 'A silly pointed hat.', 1, NULL, 0, 1, NULL, NULL, 2, 361, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,2,0,0,0,0,2,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.45, 100, NULL, NULL, NULL, NULL, NULL, 0), +(580, 'Wizard hat', NULL, 1, NULL, 0, 1, NULL, NULL, 2, 361, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(581, 'Black robe', 'I can do magic better in this.', 1, NULL, 5, 7, NULL, NULL, 5, 1364, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,3,0,0,0,0,3,0,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(582, 'Black robe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1364, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(583, 'Bailing bucket', 'Empty: It\'s a bailing bucket. Full: It\'s a bailing bucket full of salty water.', 1, NULL, 4, 6, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(584, 'Bailing bucket', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(585, 'Bailing bucket', 'Empty: It\'s a bailing bucket. Full: It\'s a bailing bucket full of salty water.', 1, NULL, 4, 6, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(586, 'Bailing bucket', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(587, 'Orb of protection', 'A strange glowing green orb.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(588, 'Orbs of protection', 'Two strange glowing green orbs.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(589, 'Gnome amulet', 'It\'s an amulet of protection given to me by the Gnomes.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '0,0,0,0,0,13,13,13,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(590, 'Tinderbox', 'Useful for lighting a fire.', 1, NULL, NULL, NULL, NULL, NULL, 1, 118, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.05, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(591, 'Tinderbox', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 118, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(592, 'Ashes', 'A heap of ashes.', 1, NULL, NULL, 1, NULL, NULL, NULL, 368, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.056, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(593, 'Ashes', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 368, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(594, 'Lit torch', 'A lit home-made torch.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(596, 'Unlit torch', 'An unlit home-made torch.', 1, NULL, 1, 2, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 100, NULL, NULL, NULL, NULL, NULL, 0), +(597, 'Unlit torch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(598, 'Bronze fire arrows', 'unlit: Arrows with bronze heads and oil-soaked cloth. lit: An easy to make, bronze-headed fire arrow.', 1, NULL, 4, 6, NULL, NULL, NULL, 162, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,7', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(600, 'Astronomy book', 'A book on the history of astronomy in RuneScape.', 1, NULL, 1, 1, NULL, NULL, NULL, 658, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(601, 'Goblin kitchen key', 'A small key for a large door.', NULL, NULL, NULL, NULL, 1, 'You\'ll have to find another, down in the dungeon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(602, 'Lens mould', 'An unusual clay mould in the shape of a disc.', NULL, NULL, NULL, NULL, 1, 'You\'ll have to get another down in the Dungeon', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(603, 'Observatory lens', 'A perfectly circular disc of glass.', NULL, NULL, 1, 1, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(604, 'Bone shard', 'A slender bone shard given to you by Zadimus.', NULL, NULL, NULL, NULL, NULL, NULL, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(605, 'Bone key', 'A key fashioned from a shard of bone. (Shilo Village)', NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(606, 'Stone-plaque', 'A stone plaque with carved letters in it.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(607, 'Tattered scroll', 'An ancient tattered scroll.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(608, 'Crumpled scroll', 'An ancient crumpled scroll.', NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(609, 'Rashiliyia corpse', 'The remains of the Zombie Queen.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(610, 'Zadimus corpse', 'The remains of Zadimus.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(611, 'Locating crystal', 'A magical crystal sphere.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(612, 'Locating crystal', 'A magical crystal sphere.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(613, 'Locating crystal', 'A magical crystal sphere.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(614, 'Locating crystal', 'A magical crystal sphere.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(615, 'Locating crystal', 'A magical crystal sphere.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(616, 'Beads of the dead', 'A curious looking neck ornament.', NULL, NULL, NULL, NULL, 1, 'You made the beads of the dead during the Shilo Village quest. You can get another from Yanni Salika in Shilo Village for 1200 gold.', 1200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '1,1,1,1,1,1,1,1,1,1,1,1,1,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(617, 'Coins', '100,000 or more: \"X x coins\" where X is the exact number of coins in the stack.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, 0), +(618, 'Bone beads', 'Beads carved out of a bone.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(619, 'Paramaya ticket', 'Allows you to rest in the luxurious Paramayer[sic] Inn.', NULL, NULL, NULL, NULL, NULL, NULL, 35, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(620, 'Paramaya ticket', 'Allows you to rest in the luxurious Paramayer[sic] Inn.', NULL, NULL, NULL, NULL, NULL, NULL, 35, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(621, 'Ship ticket', 'Sold in Shilo Village for passage on the \'Lady of the Waves\'.', NULL, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(623, 'Sword pommel', 'An ivory sword pommel.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(624, 'Bervirius notes', 'Notes taken from the tomb of Bervirius.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(625, 'Wampum belt', 'A decorated belt used to trade information between distant villages.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(626, 'Boots', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 558, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,0,0,0,1,1,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(627, 'Boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 558, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(628, 'Boots', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 397, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,0,0,0,1,1,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(629, 'Boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 397, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(630, 'Boots', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 612, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,0,0,0,1,1,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(631, 'Boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 612, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(632, 'Boots', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 496, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,0,0,0,1,1,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(633, 'Boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 496, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(634, 'Boots', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 226, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,0,0,0,1,1,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(635, 'Boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 226, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(636, 'Robe top', 'The ultimate in gnome design, now in [colour].', 1, NULL, 72, 108, NULL, NULL, 180, 265, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(637, 'Robe top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 265, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(638, 'Robe top', 'The ultimate in gnome design, now in [colour].', 1, NULL, 72, 108, NULL, NULL, 180, 235, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(639, 'Robe top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 235, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(640, 'Robe top', 'The ultimate in gnome design, now in [colour].', 1, NULL, 72, 108, NULL, NULL, 180, 447, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(641, 'Robe top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 447, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(642, 'Robe top', 'The ultimate in gnome design, now in [colour].', 1, NULL, 72, 108, NULL, NULL, 180, 396, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(643, 'Robe top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 396, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(644, 'Robe top', 'The ultimate in gnome design, now in [colour].', 1, NULL, 72, 108, NULL, NULL, 180, 70, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(645, 'Robe top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 70, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(646, 'Robe bottoms', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 249, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(647, 'Robe bottoms', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 249, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(648, 'Robe bottoms', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 210, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(649, 'Robe bottoms', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 210, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(650, 'Robe bottoms', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 453, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(651, 'Robe bottoms', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 453, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(652, 'Robe bottoms', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 348, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(653, 'Robe bottoms', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 348, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(654, 'Robe bottoms', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 92, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(655, 'Robe bottoms', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 92, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(656, 'Hat', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 677, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,3,0,0,0,0,3,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(657, 'Hat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 677, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(658, 'Hat', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 480, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,3,0,0,0,0,3,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(659, 'Hat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 480, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(660, 'Hat', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 421, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,3,0,0,0,0,3,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(661, 'Hat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 421, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(662, 'Hat', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1102, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,3,0,0,0,0,3,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(663, 'Hat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1102, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(664, 'Hat', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 295, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,3,0,0,0,0,3,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(665, 'Hat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 295, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(666, 'Portrait', 'Picture of a posing Paladin.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(667, 'Blurite sword', 'A Faladian Knight\'s sword.', NULL, NULL, 80, 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 809, 823, 819, 824, 820, 821, 822, 292, 3, 5, NULL, '9,14,-2,0,0,0,3,2,0,0,0,10,0,0,0', 6, NULL, NULL, '390,390,381,390', 397, '2500,2500,2517,2500', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(668, 'Blurite ore', 'Definitely blue.', NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(669, 'Specimen jar', 'A receptacle for specimens!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(670, 'Specimen brush', 'A small brush used to clean rock samples.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(671, 'Animal skull', 'A carefully-kept-safe skull sample.', NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(672, 'Special cup', 'A special cup.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(673, 'Teddy', 'A lucky mascot.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(674, 'Cracked sample', 'A roughly shaped piece of rock.', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(675, 'Rock pick', 'A small pick for digging.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(676, 'Trowel', 'Used for digging!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(677, 'Panning tray', 'An empty tray for panning./This tray contains mud.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(678, 'Panning tray', 'An empty tray for panning./This tray contains mud.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(679, 'Panning tray', 'An empty tray for panning./This tray contains mud.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(680, 'Nuggets', 'Pure, lovely gold!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(681, 'Ancient talisman', 'An unusual symbol as yet unidentified by the archaeological expert.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(682, 'Unstamped letter', 'A letter waiting to be stamped.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(683, 'Sealed letter', 'A sealed letter of recommendation.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(684, 'Belt buckle', 'Used to hold up trousers!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(685, 'Old boot', 'Phew!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(686, 'Rusty sword', 'A decent-enough weapon gone rusty.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(687, 'Broken arrow', 'This must have been shot at high speed.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(688, 'Buttons', 'Not Dick Whittington\'s helper at all!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(689, 'Broken staff', 'I pity the poor person beaten with this!', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2555,0,0,0', NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(690, 'Picture', 'Smashed glass.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(691, 'Level 1 certificate', 'The owner has passed Earth Sciences Level 1 exam.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(692, 'Level 2 certificate', 'The owner has passed Earth Sciences Level 2 exam.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(693, 'Level 3 certificate', 'The owner has passed Earth Sciences Level 3 exam.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(694, 'Ceramic remains', 'Smashing!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(695, 'Old tooth', 'Now, if I could just find a tooth fairy to sell this to...', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(696, 'Invitation letter', 'A letter inviting me to use the private digging shafts.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(697, 'Damaged armour', 'It would be hard to repair this!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7.75, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(698, 'Broken armour', 'Armour left over from a great fight.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(699, 'Stone tablet', 'An old stone slab with writing on it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(700, 'Chemical powder', 'An acrid chemical.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(701, 'Ammonium nitrate', 'An acrid chemical.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(702, 'Unidentified liquid', 'A strong chemical.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(703, 'Nitroglycerin', 'A strong chemical.', NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(704, 'Ground charcoal', 'Charcoal - crushed to small pieces!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(707, 'Chemical compound', 'A mixture of strong chemicals.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(708, 'Arcenia root', 'The root of an arcenia plant.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(710, 'Vase', 'An unusually shaped vase. You can see something glinting inside.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(711, 'Book on chemicals', 'It\'s about chemicals, judging from its cover.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(712, 'Cup of tea', 'A nice cup of tea.', 1, NULL, 4, 6, NULL, NULL, 10, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(714, 'Radimus notes', 'Notes given to you by Radimus Erkle, it includes a partially completed map.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(715, 'Radimus notes', 'Notes given to you by Radimus Erkle, it includes a partially completed map.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(716, 'Bull roarer', 'It makes a loud but interesting sound when swung in the air.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(717, 'Scrawled note', 'A scrawled note with spidery writing on it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(718, 'A scribbled note', 'A scrawled note with spidery writing on it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(719, 'Scrumpled note', 'A scrawled note with spidery writing on it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(720, 'Sketch', 'A rough sketch of a bowl shaped vessel given to you by Gujuo.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(721, 'Gold bowl', 'A specially made bowl constructed out of pure gold.', NULL, NULL, 280, 420, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(722, 'Blessed gold bowl', 'A specially made bowl constructed out of pure gold and blessed.', NULL, NULL, 280, 420, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(723, 'Golden bowl', 'A blessed golden bowl. It has pure sacred water in it.', NULL, NULL, 280, 420, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(724, 'Golden bowl', 'A blessed golden bowl. It has pure sacred water in it.', NULL, NULL, 280, 420, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(725, 'Golden bowl', 'A blessed golden bowl. It has pure sacred water in it.', NULL, NULL, 280, 420, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(726, 'Golden bowl', 'A blessed golden bowl. It has pure sacred water in it.', NULL, NULL, 280, 420, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(727, 'Hollow reed', 'One of nature\'s pipes.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.012, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(728, 'Hollow reed', 'One of nature\'s pipes.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.012, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(729, 'Shamans tome', 'It looks like the Shamans personal notes...', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(730, 'Binding book', 'An ancient tome on Demonology.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(731, 'Enchanted vial', 'An enchanted empty glass vial.', NULL, NULL, NULL, NULL, 1, NULL, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(732, 'Holy water', 'A vial of holy water, good against certain demons.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, '0,0,0,0,12,0,0,0,0,0,0,0,0,0,24', 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(733, 'Smashed glass', 'Fragments of a broken container.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(735, 'Yommi tree seeds', 'These need to be germinated before they can be used. / These are germinated and ready to be planted in fertile soil.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(736, 'Yommi tree seeds', 'These need to be germinated before they can be used. / These are germinated and ready to be planted in fertile soil.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(737, 'Snakeweed mixture', 'A Snakeweed mixture, needs another ingredient.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(738, 'Ardrigal mixture', 'It\'s a mixture of ardrigal and water. Needs another ingredient.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(739, 'Bravery potion', 'A bravery potion for which Gujuo gave you the details, let\'s hope it works.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(740, 'Blue hat', 'A silly, blue pointed hat.', 1, NULL, 64, 96, NULL, NULL, 160, 472, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,2,0,0,0,0,2,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(741, 'Chunk of crystal', 'It looks like it\'s been snapped off of something.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(742, 'Hunk of crystal', 'It looks like it\'s been snapped off of something.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(743, 'Lump of crystal', 'It looks like it\'s been snapped off of something.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(744, 'Heart crystal', 'A heart shaped crystal.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(745, 'Heart crystal', 'A heart shaped crystal.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(746, 'Dark dagger', 'A black obsidian dagger, it has a strange aura about it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, NULL, NULL, '5,3,-4,1,0,0,0,0,1,0,0,0,0,0,0', 5, NULL, NULL, '400,400,400,400', 378, '2517,2517,2500,2517', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(747, 'Glowing dagger', 'A black obsidian dagger, it has a strange aura about it - it seems to be glowing.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 6, NULL, '5,3,-4,1,0,0,0,0,1,0,0,0,0,0,0', 5, NULL, NULL, '400,400,400,400', 378, '2517,2517,2500,2517', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(748, 'Holy force', 'A powerful spell for good.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(749, 'Yommi totem', 'A well carved totem pole made from the trunk of a Yommi tree.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(750, 'Gilded totem', 'A gilded totem pole from the Kharazi tribe.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(751, 'Gnomeball', 'A common gnomeball, obtained by playing gnomeball.', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(752, 'Gnomeball', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(753, 'Cadava berries', 'Poisonous berries.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 42, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(754, 'Cadava berries', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 42, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(756, 'Cadava potion', 'This potion will most certainly almost kill you.', NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(759, 'Weapon store key', 'Phoenix Gang weapon store key.', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(760, 'Weapon store key', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(761, 'Intel report', 'An intelligence report.', NULL, NULL, 2, 3, 1, 'You\'ll have to kill Jonny the beard in order to get another one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(763, 'Broken shield', 'Half of the Shield of Arrav.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(765, 'Broken shield', 'Half of the Shield of Arrav.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(767, 'Phoenix crossbow', 'Second-rate crossbow, former property of the Phoenix Gang.', 1, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4591, 823, 4226, 4228, 4227, 821, 822, 175, 3, NULL, NULL, '0,0,0,0,6,0,0,0,0,0,0,0,0,0,0', 17, NULL, NULL, '426,426,426,426', 424, '2700,0,0,0', NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(768, 'Phoenix crossbow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(769, 'Certificate', 'Entrance certificate to the Imperial Guard.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(771, 'Dramen branch', 'A limb of the fabled Dramen tree.', NULL, NULL, 6, 9, 1, 'You can get another branch if you chop the dramen tree underneath Entrana again.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(772, 'Dramen staff', 'Crafted from a Dramen tree branch.', NULL, NULL, 6, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 4, NULL, '-1,-1,10,10,0,2,3,1,10,0,0,10,0,0,0', 1, NULL, NULL, '419,419,419,419', 420, '2555,0,0,0', NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(773, '\'perfect\' ring', 'A perfect ruby ring.', NULL, NULL, 810, 1215, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(774, '\'perfect\' necklace', 'A perfect ruby necklace.', NULL, NULL, 870, 1305, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(775, 'Cooking gauntlets', 'These gauntlets empower with a greater ability to cook fish.', NULL, NULL, 75000, 75000, 1, 'You can obtain another set of Cooking gauntlets from Dimintheis.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '2,2,2,0,0,8,9,7,0,0,3,2,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(776, 'Goldsmith gauntlets', 'These gauntlets empower the bearer whilst making gold.', NULL, NULL, 75000, 75000, 1, 'You can obtain another set of Goldsmith gauntlets from Dimintheis.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '2,2,2,0,0,8,9,7,0,0,3,2,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(777, 'Chaos gauntlets', 'These gauntlets empower spell casters.', NULL, NULL, 75000, 75000, 1, 'You can obtain another set of Chaos gauntlets from Dimintheis.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '2,2,2,0,0,8,9,7,0,0,3,2,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(778, 'Family gauntlets', 'My reward for assisting the Fitzharmon family.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '2,2,2,0,0,8,9,7,0,0,0,2,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(779, 'Crest part', 'A fragment of the Fitzharmon family crest.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(780, 'Crest part', 'A fragment of the Fitzharmon family crest.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(781, 'Crest part', 'A fragment of the Fitzharmon family crest.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(783, 'Bark sample', 'A sample of the bark from the Grand Tree.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(784, 'Translation book', 'A book to translate the ancient gnome language into English.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(785, 'Glough\'s journal', 'Perhaps I should read it and see what Glough is up to!', NULL, NULL, NULL, 1, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(786, 'Hazelmere\'s scroll', 'Hazelmere wrote something down on this scroll.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(787, 'Lumber order', 'An order from the Karamja shipyard.', NULL, NULL, NULL, 1, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(788, 'Glough\'s key', 'The key to Glough\'s chest.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(789, 'Twigs', 'Twigs bound together in the shape of a (Z/U/T/O).', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(790, 'Twigs', 'Twigs bound together in the shape of a (Z/U/T/O).', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(791, 'Twigs', 'Twigs bound together in the shape of a (Z/U/T/O).', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(792, 'Twigs', 'Twigs bound together in the shape of a (Z/U/T/O).', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(793, 'Daconia rock', 'An ancient rock with strange magical properties.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(794, 'Invasion plans', 'These are plans for an invasion!', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(795, 'War ship', 'A model of a Karamja warship', NULL, NULL, NULL, 1, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.01, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(800, 'Bronze thrownaxe', 'A finely balanced throwing axe.', 1, NULL, 1, 2, NULL, NULL, 4, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '0,0,0,0,4,0,0,0,0,0,0,0,0,0,5', 18, NULL, NULL, '806,806,806,806', 424, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(801, 'Iron thrownaxe', 'A finely balanced throwing axe.', 1, NULL, 5, 7, NULL, NULL, 13, 14, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '0,0,0,0,5,0,0,0,0,0,0,0,0,0,7', 18, NULL, NULL, '806,806,806,806', 424, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(802, 'Steel thrownaxe', 'A finely balanced throwing axe.', 1, NULL, 15, 22, NULL, NULL, 38, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '0,0,0,0,8,0,0,0,0,0,0,0,0,0,11', 18, NULL, NULL, '806,806,806,806', 424, NULL, '{4,5}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(803, 'Mithril thrownaxe', 'A finely balanced throwing axe.', 1, NULL, 28, 42, NULL, NULL, 105, 135, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '0,0,0,0,12,0,0,0,0,0,0,0,0,0,16', 18, NULL, NULL, '806,806,806,806', 424, NULL, '{4,20}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(804, 'Adamant thrownaxe', 'A finely balanced throwing axe.', 1, NULL, 104, 157, NULL, NULL, 262, 138, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '0,0,0,0,17,0,0,0,0,0,0,0,0,0,23', 18, NULL, NULL, '806,806,806,806', 424, NULL, '{4,30}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(805, 'Rune thrownaxe', 'A finely balanced throwing axe.', 1, NULL, 176, 264, NULL, NULL, 698, 243, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '0,0,0,0,26,0,0,0,0,0,0,0,0,0,36', 18, 1, NULL, '806,806,806,806', 424, NULL, '{4,40}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(806, 'Bronze dart', 'A deadly throwing dart with a bronze tip.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 53, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,3,0,0,0,0,0,0,0,0,0,1', 18, NULL, NULL, '582,582,582,582', 424, '2547,0,0,0', NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(807, 'Iron dart', 'A deadly throwing dart with an iron tip.', 1, NULL, NULL, 1, NULL, NULL, NULL, 59, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,4,0,0,0,0,0,0,0,0,0,3', 18, NULL, NULL, '582,582,582,582', 424, '2547,0,0,0', NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(808, 'Steel dart', 'A deadly throwing dart with a steel tip.', 1, NULL, 4, 6, NULL, NULL, NULL, 50, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,5,0,0,0,0,0,0,0,0,0,4', 18, NULL, NULL, '582,582,582,582', 424, '2547,0,0,0', '{4,5}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(809, 'Mithril dart', 'A deadly throwing dart with a mithril tip.', 1, NULL, 10, 15, NULL, NULL, NULL, 68, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,8,0,0,0,0,0,0,0,0,0,7', 18, NULL, NULL, '582,582,582,582', 424, '2547,0,0,0', '{4,20}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(810, 'Adamant dart', 'A deadly throwing dart with an adamantite tip.', 1, NULL, 26, 39, NULL, NULL, NULL, 96, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,11,0,0,0,0,0,0,0,0,0,10', 18, NULL, NULL, '582,582,582,582', 424, '2547,0,0,0', '{4,30}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(811, 'Rune dart', 'A deadly throwing dart with a rune tip.', 1, NULL, 140, 210, NULL, NULL, NULL, 122, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,15,0,0,0,0,0,0,0,0,0,14', 18, NULL, NULL, '582,582,582,582', 424, '2547,0,0,0', '{4,40}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(812, 'Bronze dart(p)', 'A deadly throwing dart with a bronze tip.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 66, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,3,0,0,0,0,0,0,0,0,0,1', 18, NULL, NULL, '582,582,582,582', 424, '2547,0,0,0', NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(813, 'Iron dart(p)', 'A deadly throwing dart with an iron tip.', 1, NULL, NULL, 1, NULL, NULL, NULL, 66, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,4,0,0,0,0,0,0,0,0,0,3', 18, NULL, NULL, '582,582,582,582', 424, '2547,0,0,0', NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(814, 'Steel dart(p)', 'A deadly throwing dart with a steel tip.', 1, NULL, 4, 6, NULL, NULL, NULL, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,5,0,0,0,0,0,0,0,0,0,4', 18, NULL, NULL, '582,582,582,582', 424, '2547,0,0,0', '{4,5}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(815, 'Mithril dart(p)', 'A deadly throwing dart with a mithril tip.', 1, NULL, 10, 15, NULL, NULL, NULL, 65, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,8,0,0,0,0,0,0,0,0,0,7', 18, NULL, NULL, '582,582,582,582', 424, '2547,0,0,0', '{4,20}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(816, 'Adamant dart(p)', 'A deadly throwing dart with an adamantite tip.', 1, NULL, 26, 39, NULL, NULL, NULL, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,11,0,0,0,0,0,0,0,0,0,10', 18, NULL, NULL, '582,582,582,582', 424, '2547,0,0,0', '{4,30}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(817, 'Rune dart(p)', 'A deadly throwing dart with a rune tip.', 1, NULL, 140, 210, NULL, NULL, NULL, 110, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,15,0,0,0,0,0,0,0,0,0,14', 18, NULL, NULL, '582,582,582,582', 424, '2547,0,0,0', '{4,40}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(818, 'Poisoned dart(p)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2547,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(819, 'Bronze dart tip', 'A deadly looking dart tip made of bronze - needs feathers for flight.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 24, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2547,0,0,0', NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(820, 'Iron dart tip', 'A deadly looking dart tip made of iron - needs feathers for flight.', 1, NULL, 1, 1, NULL, NULL, NULL, 19, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2547,0,0,0', NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(821, 'Steel dart tip', 'A deadly looking dart tip made of steel - needs feathers for flight.', 1, NULL, 2, 3, NULL, NULL, NULL, 66, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2547,0,0,0', NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(822, 'Mithril dart tip', 'A deadly looking dart tip made of mithril - needs feathers for flight.', 1, NULL, 4, 7, NULL, NULL, NULL, 97, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2547,0,0,0', NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(823, 'Adamant dart tip', 'A deadly looking dart tip made of adamantite - needs feathers for flight.', 1, NULL, 14, 21, NULL, NULL, NULL, 212, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2547,0,0,0', NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(824, 'Rune dart tip', 'A deadly looking dart tip made of runite - needs feathers for flight.', 1, NULL, 70, 105, NULL, NULL, NULL, 498, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2547,0,0,0', NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(825, 'Bronze javelin', 'A bronze-tipped javelin.', 1, NULL, 2, 3, NULL, NULL, 6, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, NULL, '0,0,0,0,5,0,0,0,0,0,0,0,0,0,6', 18, NULL, NULL, '806,806,806,806', 424, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(826, 'Iron javelin', 'An iron-tipped javelin.', 1, NULL, 3, 4, NULL, NULL, 8, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, NULL, '0,0,0,0,8,0,0,0,0,0,0,0,0,0,10', 18, NULL, NULL, '806,806,806,806', 424, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(827, 'Steel javelin', 'A steel-tipped javelin.', 1, NULL, 14, 22, NULL, NULL, 37, 19, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, NULL, '0,0,0,0,12,0,0,0,0,0,0,0,0,0,12', 18, NULL, NULL, '806,806,806,806', 424, NULL, '{4,5}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(828, 'Mithril javelin', 'A mithril tipped javelin.', 1, NULL, 39, 58, NULL, NULL, 79, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, NULL, '0,0,0,0,17,0,0,0,0,0,0,0,0,0,18', 18, NULL, NULL, '806,806,806,806', 424, NULL, '{4,20}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(829, 'Adamant javelin', 'An adamant tipped javelin.', 1, NULL, 98, 147, NULL, NULL, 100, 51, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, NULL, '0,0,0,0,24,0,0,0,0,0,0,0,0,0,28', 18, NULL, NULL, '806,806,806,806', 424, NULL, '{4,30}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 100), +(830, 'Rune javelin', 'A rune tipped javelin.', 1, NULL, 249, 374, NULL, NULL, 624, 186, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, NULL, '0,0,0,0,38,0,0,0,0,0,0,0,0,0,42', 18, NULL, NULL, '806,806,806,806', 424, NULL, '{4,40}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(831, 'Bronze javelin(p)', 'A bronze-tipped javelin.', 1, NULL, 2, 3, NULL, NULL, 6, 19, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, NULL, '0,0,0,0,5,0,0,0,0,0,0,0,0,0,6', 18, NULL, NULL, '806,806,806,806', 424, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(832, 'Iron javelin(p)', 'An iron-tipped javelin.', 1, NULL, 3, 4, NULL, NULL, 8, 19, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, NULL, '0,0,0,0,8,0,0,0,0,0,0,0,0,0,10', 18, NULL, NULL, '806,806,806,806', 424, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(833, 'Steel javelin(p)', 'A steel-tipped javelin.', 1, NULL, 14, 22, NULL, NULL, 37, 34, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, NULL, '0,0,0,0,12,0,0,0,0,0,0,0,0,0,12', 18, NULL, NULL, '806,806,806,806', 424, NULL, '{4,5}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(834, 'Mithril javelin(p)', 'A mithril tipped javelin.', 1, NULL, 39, 58, NULL, NULL, 79, 44, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, NULL, '0,0,0,0,17,0,0,0,0,0,0,0,0,0,18', 18, NULL, NULL, '806,806,806,806', 424, NULL, '{4,20}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(835, 'Adamant javelin(p)', 'An adamant tipped javelin.', 1, NULL, 98, 147, NULL, NULL, 100, 88, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, NULL, '0,0,0,0,24,0,0,0,0,0,0,0,0,0,28', 18, NULL, NULL, '806,806,806,806', 424, NULL, '{4,30}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(836, 'Rune javelin(p)', 'A rune tipped javelin.', 1, NULL, 249, 374, NULL, NULL, 624, 256, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, NULL, '0,0,0,0,38,0,0,0,0,0,0,0,0,0,42', 18, NULL, NULL, '806,806,806,806', 424, NULL, '{4,40}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(837, 'Crossbow', 'This fires crossbow bolts.', 1, NULL, 28, 42, NULL, NULL, 70, 276, NULL, NULL, NULL, 4591, 823, 4226, 4228, 4227, 821, 822, 175, 3, 6, NULL, '0,0,0,0,6,0,0,0,0,0,0,0,0,0,0', 17, NULL, NULL, '4230,4230,4230,4230', 424, '2700,0,0,0', NULL, 8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(838, 'Crossbow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 276, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(839, 'Longbow', 'A nice sturdy bow.', 1, NULL, 32, 48, NULL, NULL, 80, 55, NULL, NULL, NULL, 808, 823, 819, 824, 820, 821, 822, 1, 3, 6, NULL, '0,0,0,0,8,0,0,0,0,0,0,0,0,0,0', 16, NULL, 1, '426,426,426,426', 424, '2700,0,0,0', NULL, 1.8, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(840, 'Longbow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 55, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(841, 'Shortbow', 'A shortbow made of wood.', 1, NULL, 20, 30, NULL, NULL, 50, 79, NULL, NULL, NULL, 808, 823, 819, 824, 820, 821, 822, 1, 3, 4, NULL, '0,0,0,0,8,0,0,0,0,0,0,0,0,0,0', 16, NULL, 1, '426,426,426,426', 424, '2700,0,0,0', NULL, 1.33, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(842, 'Shortbow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 79, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(843, 'Oak shortbow', 'A shortbow made out of oak, still effective.', 1, NULL, 40, 60, NULL, NULL, 164, 54, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2588, 3, 4, NULL, '0,0,0,0,14,0,0,0,0,0,0,0,0,0,0', 16, NULL, 1, '426,426,426,426', 424, '2700,0,0,0', '{4,5}', 1.8, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(844, 'Oak shortbow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 54, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(845, 'Oak longbow', 'A nice sturdy bow made out of oak.', 1, NULL, 64, 96, NULL, NULL, 160, 132, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2588, 3, 6, NULL, '0,0,0,0,14,0,0,0,0,0,0,0,0,0,0', 16, NULL, 1, '426,426,426,426', 424, '2700,0,0,0', '{4,5}', 2, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(846, 'Oak longbow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 132, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(847, 'Willow longbow', 'A nice sturdy bow made out of willow.', 1, NULL, 128, 192, NULL, NULL, 320, 132, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2588, 3, 6, NULL, '0,0,0,0,20,0,0,0,0,0,0,0,0,0,0', 16, NULL, 1, '426,426,426,426', 424, '2700,0,0,0', '{4,20}', 1.5, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(848, 'Willow longbow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 132, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(849, 'Willow shortbow', 'A shortbow made out of willow, still effective.', 1, NULL, 80, 120, NULL, NULL, 200, 106, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2588, 3, 4, NULL, '0,0,0,0,20,0,0,0,0,0,0,0,0,0,0', 16, NULL, 1, '426,426,426,426', 424, '2700,0,0,0', '{4,20}', 1, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(850, 'Willow shortbow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 106, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(851, 'Maple longbow', 'A nice sturdy bow made out of maple.', 1, 1, 256, 384, NULL, NULL, 640, 320, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2588, 3, 6, NULL, '0,0,0,0,29,0,0,0,0,0,0,0,0,0,0', 16, NULL, 1, '426,426,426,426', 424, '2700,0,0,0', '{4,30}', 1.8, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(852, 'Maple longbow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 320, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(853, 'Maple shortbow', 'A shortbow made out of maple, still effective.', 1, 1, 160, 240, NULL, NULL, 400, 290, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2588, 3, 4, NULL, '0,0,0,0,29,0,0,0,0,0,0,0,0,0,0', 16, NULL, 1, '426,426,426,426', 424, '2700,0,0,0', '{4,30}', 1, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(854, 'Maple shortbow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 290, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(855, 'Yew longbow', 'A nice sturdy bow made out of yew.', 1, 1, 512, 768, NULL, NULL, 674, 706, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2588, 3, 6, NULL, '0,0,0,0,47,0,0,0,0,0,0,0,0,0,0', 16, NULL, 1, '426,426,426,426', 424, '2700,0,0,0', '{4,40}', 1.8, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(856, 'Yew longbow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 706, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(857, 'Yew shortbow', 'A shortbow made out of yew, still effective.', 1, 1, 320, 480, NULL, NULL, NULL, 422, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2588, 3, 4, NULL, '0,0,0,0,47,0,0,0,0,0,0,0,0,0,0', 16, NULL, 1, '426,426,426,426', 424, '2700,0,0,0', '{4,40}', 1, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(858, 'Yew shortbow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 422, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(859, 'Magic longbow', 'A nice sturdy magical bow.', 1, 1, 1024, 1536, NULL, NULL, 1270, 1437, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2588, 3, 6, NULL, '0,0,0,0,69,0,0,0,0,0,0,0,0,0,0', 16, 1, 1, '426,426,426,426', 424, '2700,0,0,0', '{4,50}', 1.8, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(860, 'Magic longbow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1437, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(861, 'Magic shortbow', 'Short and magical, but still effective.', 1, 1, 640, 960, NULL, NULL, 5600, 959, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2588, 3, 4, NULL, '0,0,0,0,69,0,0,0,0,0,0,0,0,0,0', 16, 1, 1, '426,426,426,426', 424, '2700,0,0,0', '{4,50}', 1.3, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(862, 'Magic shortbow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 959, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(863, 'Iron knife', 'A finely balanced throwing knife.', 1, NULL, 23, 34, NULL, NULL, 58, 87, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,5,0,0,0,0,0,0,0,0,0,4', 18, NULL, NULL, '806,806,806,806', 424, '2704,0,0,0', NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(864, 'Bronze knife', 'A finely balanced throwing knife.', 1, NULL, 5, 8, NULL, NULL, 14, 73, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,4,0,0,0,0,0,0,0,0,0,3', 18, NULL, NULL, '806,806,806,806', 424, '2704,0,0,0', NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(865, 'Steel knife', 'A finely balanced throwing knife.', 1, NULL, 27, 40, NULL, NULL, 68, 136, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,8,0,0,0,0,0,0,0,0,0,7', 18, NULL, NULL, '806,806,806,806', 424, '2704,0,0,0', '{4,5}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(866, 'Mithril knife', 'A finely balanced throwing knife.', 1, NULL, 10, 16, NULL, NULL, NULL, 201, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,11,0,0,0,0,0,0,0,0,0,10', 18, NULL, NULL, '806,806,806,806', 424, '2704,0,0,0', '{4,20}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(867, 'Adamant knife', 'A finely balanced throwing knife.', 1, NULL, 26, 40, NULL, NULL, NULL, 421, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,15,0,0,0,0,0,0,0,0,0,14', 18, NULL, NULL, '806,806,806,806', 424, '2704,0,0,0', '{4,30}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(868, 'Rune knife', 'A finely balanced throwing knife.', 1, NULL, 66, 100, NULL, NULL, NULL, 1132, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,25,0,0,0,0,0,0,0,0,0,24', 18, NULL, NULL, '806,806,806,806', 424, '2704,0,0,0', '{4,40}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(869, 'Black knife', 'A finely balanced throwing knife.', 1, NULL, 7, 11, NULL, NULL, 15, 95, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,10,0,0,0,0,0,0,0,0,0,8', 18, NULL, NULL, '806,806,806,806', 424, '2704,0,0,0', '{4,10}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(870, 'Bronze knife(p)', 'A finely balanced throwing knife.', 1, NULL, 5, 8, NULL, NULL, 14, 73, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,4,0,0,0,0,0,0,0,0,0,3', 18, NULL, NULL, '806,806,806,806', 424, '2704,0,0,0', NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(871, 'Iron knife(p)', 'A finely balanced throwing knife.', 1, NULL, 23, 34, NULL, NULL, 58, 88, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,5,0,0,0,0,0,0,0,0,0,4', 18, NULL, NULL, '806,806,806,806', 424, '2704,0,0,0', NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(872, 'Steel knife(p)', 'A finely balanced throwing knife.', 1, NULL, 27, 40, NULL, NULL, 68, 124, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,8,0,0,0,0,0,0,0,0,0,7', 18, NULL, NULL, '806,806,806,806', 424, '2704,0,0,0', '{4,5}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(873, 'Mithril knife(p)', 'A finely balanced throwing knife.', 1, NULL, 10, 16, NULL, NULL, NULL, 226, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,11,0,0,0,0,0,0,0,0,0,10', 18, NULL, NULL, '806,806,806,806', 424, '2704,0,0,0', '{4,20}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(874, 'Black knife(p)', 'A finely balanced throwing knife.', 1, NULL, 7, 11, NULL, NULL, 15, 69, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,10,0,0,0,0,0,0,0,0,0,8', 18, NULL, NULL, '806,806,806,806', 424, '2704,0,0,0', '{4,10}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(875, 'Adamant knife(p)', 'A finely balanced throwing knife.', 1, NULL, 26, 40, NULL, NULL, NULL, 503, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,15,0,0,0,0,0,0,0,0,0,14', 18, NULL, NULL, '806,806,806,806', 424, '2704,0,0,0', '{4,30}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(876, 'Rune knife(p)', 'A finely balanced throwing knife.', 1, NULL, 66, 100, NULL, NULL, NULL, 1374, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,25,0,0,0,0,0,0,0,0,0,24', 18, NULL, NULL, '806,806,806,806', 424, '2704,0,0,0', '{4,40}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(877, 'Bronze bolts', 'Bronze crossbow bolts.', 1, NULL, 1, 1, NULL, NULL, 3, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,10', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(878, 'Bronze bolts(p)', 'Bronze crossbow bolts.', 1, NULL, 1, 1, NULL, NULL, 3, 38, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,10', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(879, 'Opal bolts', 'Opal tipped bronze crossbow bolts', 1, NULL, 2, 4, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,14', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(880, 'Pearl bolts', 'Pearl tipped Iron crossbow bolts.', 1, NULL, 5, 7, NULL, NULL, NULL, 32, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,48', NULL, NULL, NULL, NULL, NULL, NULL, '{4,26}', NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(881, 'Barbed bolts', 'Great if you have a crossbow!', 1, NULL, 80, 120, NULL, NULL, 80, 42, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,12', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(882, 'Bronze arrow', 'Arrows with bronze heads.', 1, NULL, 2, 4, NULL, NULL, 7, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,7', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(883, 'Bronze arrow(p)', 'Arrows with bronze heads.', 1, NULL, 2, 4, NULL, NULL, 7, 39, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,7', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(884, 'Iron arrow', 'Arrows with iron heads.', 1, NULL, 8, 12, NULL, NULL, 20, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,10', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(885, 'Iron arrow(p)', 'Arrows with iron heads.', 1, NULL, 8, 12, NULL, NULL, 20, 41, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,10', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(886, 'Steel arrow', 'Arrows with steel heads.', 1, NULL, 18, 27, NULL, NULL, 46, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,16', NULL, NULL, NULL, NULL, NULL, NULL, '{4,5}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(887, 'Steel arrow(p)', 'Arrows with steel heads.', 1, NULL, 18, 27, NULL, NULL, 46, 69, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,16', NULL, NULL, NULL, NULL, NULL, NULL, '{4,5}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(888, 'Mithril arrow', 'Arrows with mithril heads.', 1, NULL, 30, 45, NULL, NULL, 76, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,22', NULL, NULL, NULL, NULL, NULL, NULL, '{4,20}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(889, 'Mithril arrow(p)', 'Arrows with mithril heads.', 1, NULL, 30, 45, NULL, NULL, 76, 69, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,22', NULL, NULL, NULL, NULL, NULL, NULL, '{4,20}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(890, 'Adamant arrow', 'Arrows with adamantite heads.', 1, NULL, 68, 103, NULL, NULL, 172, 111, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,31', NULL, NULL, NULL, NULL, NULL, NULL, '{4,30}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(891, 'Adamant arrow(p)', 'Arrows with adamantite heads.', 1, NULL, 68, 103, NULL, NULL, 172, 109, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,31', NULL, NULL, NULL, NULL, NULL, NULL, '{4,30}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(892, 'Rune arrow', 'Arrows with rune heads.', 1, NULL, 204, 306, NULL, NULL, 510, 212, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,49', NULL, NULL, NULL, NULL, NULL, NULL, '{4,40}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 40), +(893, 'Rune arrow(p)', 'Arrows with rune heads.', 1, NULL, 204, 306, NULL, NULL, 510, 257, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,49', NULL, NULL, NULL, NULL, NULL, NULL, '{4,40}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(942, 'Bronze fire arrows', 'unlit: Arrows with bronze heads and oil-soaked cloth. lit: An easy to make, bronze-headed fire arrow.', 1, NULL, 4, 6, NULL, NULL, NULL, 228, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,7', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(943, 'Worm', 'Some meaty worms.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(944, 'Worm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(945, 'Throwing rope', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(946, 'Knife', 'A dangerous looking knife.', 1, NULL, 10, 15, NULL, NULL, 25, 32, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(947, 'Knife', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 32, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(948, 'Bear fur', 'This would make warm clothing.', 1, NULL, 4, 6, NULL, NULL, 4, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(949, 'Bear fur', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(950, 'Silk', 'It\'s a sheet of silk.', 1, NULL, 22, 33, NULL, NULL, 21, 27, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(951, 'Silk', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 27, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(952, 'Spade', 'A slightly muddy spade. / Popular with farmers and treasure hunters.', 1, NULL, 1, 1, NULL, NULL, 5, 117, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(953, 'Spade', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 117, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(954, 'Rope', 'A coil of rope.', 1, NULL, 7, 10, NULL, NULL, 18, 96, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(955, 'Rope', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 96, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(956, 'Flier', 'Get your axes from Bob\'s Axes.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(958, 'Grey wolf fur', 'This would make warm clothing.', 1, NULL, 20, 30, NULL, NULL, 70, 34, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(959, 'Grey wolf fur', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 34, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(960, 'Plank', 'A plank of wood!', 1, NULL, 40, 60, NULL, NULL, 100, 234, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.8, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(961, 'Plank', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 234, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(962, 'Christmas cracker', 'I need to pull this.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 15, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(963, 'Christmas cracker', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1900000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(966, 'Tile', 'A fraction of a roof.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(970, 'Papyrus', 'Used for making notes.', 1, NULL, 4, 6, NULL, NULL, 15, 153, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(971, 'Papyrus', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 153, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(972, 'Papyrus', 'Used for making notes.', 1, NULL, 4, 6, NULL, NULL, 15, 163, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(973, 'Charcoal', 'A lump of charcoal.', 1, NULL, 18, 27, NULL, NULL, 45, 272, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(974, 'Charcoal', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 272, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(975, 'Machete', 'A jungle specific slashing device.', 1, NULL, 16, 24, NULL, NULL, 52, 619, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2554, 3, 5, NULL, '0,6,-2,0,0,0,0,0,0,0,0,5,0,0,0', 6, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(976, 'Machete', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 619, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(978, 'Cooking pot', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(981, 'Disk of returning', 'Used to get out of Thordur\'s blackhole.', 1, NULL, 4, 7, NULL, NULL, 10, 298000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(982, 'Disk of returning', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 298000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(983, 'Brass key', 'A key found on the floor of Edgeville Dungeon.', 1, NULL, NULL, NULL, NULL, NULL, 1, 547, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(984, 'Brass key', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 547, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(985, 'Tooth half of a key', 'The tooth end of the mysterious Crystal key. Can you find the other half?', 1, NULL, NULL, NULL, NULL, NULL, NULL, 24900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(986, 'Tooth half of a key', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 24900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(987, 'Loop half of a key', 'The loop end of the mysterious Crystal key. Can you find the other half?', 1, NULL, NULL, NULL, NULL, NULL, NULL, 21100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(988, 'Loop half of a key', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 21100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(989, 'Crystal key', 'A mysterious key for a mysterious chest.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 48700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(990, 'Crystal key', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 48700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(991, 'Muddy key', 'It looks like the key to a chest', 1, NULL, NULL, NULL, NULL, NULL, NULL, 4971, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(992, 'Muddy key', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4971, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(993, 'Sinister key', 'You get a sense of dread from this key.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 54600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(994, 'Sinister key', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 54600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(995, 'Coins', '100,000 or more: \"X x coins\" where X is the exact number of coins in the stack.', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1005, 'White apron', 'A mostly clean apron.', 1, NULL, NULL, 1, NULL, NULL, 2, 93, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.45, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1006, 'White apron', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 93, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1007, 'Cape', 'A (bright/thick/warm) <colour> cape.', 1, NULL, 8, 12, 1, NULL, 20, 187, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1008, 'Cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 187, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1009, 'Brass necklace', 'I\'d prefer a gold one.', 1, NULL, 12, 18, NULL, NULL, NULL, 65, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1010, 'Brass necklace', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 65, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1011, 'Blue skirt', 'Leg covering favored by women and wizards.', 1, NULL, NULL, 1, NULL, NULL, 2, 208, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,1,0,0,0,0,1,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1012, 'Blue skirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 208, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1013, 'Pink skirt', 'A ladies skirt.', 1, NULL, NULL, 1, NULL, NULL, 3, 216, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,1,0,0,0,0,1,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1014, 'Pink skirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 216, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1015, 'Black skirt', 'Clothing favoured by women and dark wizards.', 1, NULL, NULL, 1, NULL, NULL, 2, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,1,0,0,0,0,1,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1016, 'Black skirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1017, 'Wizard hat', 'A silly pointed hat.', 1, NULL, 0, 1, NULL, NULL, 2, 280, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,2,0,0,0,0,2,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1018, 'Wizard hat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 280, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1019, 'Cape', 'A (bright/thick/warm) <colour> cape.', 1, NULL, 8, 12, 1, NULL, 20, 209, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1020, 'Cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 209, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1021, 'Cape', 'A (bright/thick/warm) <colour> cape.', 1, NULL, 8, 12, 1, NULL, 20, 504, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1022, 'Cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 504, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1023, 'Cape', 'A (bright/thick/warm) <colour> cape.', 1, NULL, 8, 12, 1, NULL, 20, 439, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1024, 'Cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 439, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1025, 'Eyepatch', 'A black piece of cloth on a string.', 1, NULL, 0, 1, NULL, NULL, 2, 111, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1026, 'Eyepatch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 111, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1027, 'Cape', 'A (bright/thick/warm) <colour> cape.', 1, NULL, 8, 12, 1, NULL, 20, 1061, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1028, 'Cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1061, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1029, 'Cape', 'A (bright/thick/warm) <colour> cape.', 1, NULL, 8, 12, 1, NULL, 20, 955, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1030, 'Cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 955, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1031, 'Cape', 'A (bright/thick/warm) <colour> cape.', 1, NULL, 8, 12, 1, NULL, 20, 1656, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1032, 'Cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1656, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1033, 'Zamorak robe', 'A robe worn by worshippers of Zamorak.', 1, NULL, 12, 18, NULL, NULL, 30, 2481, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,2,0,0,0,0,3,0,0,0,3,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 2, NULL, NULL, NULL, NULL, NULL, 0), +(1034, 'Zamorak robe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2481, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(1035, 'Zamorak robe', 'A robe worn by worshippers of Zamorak.', 1, NULL, 16, 24, NULL, NULL, 40, 1259, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,2,0,0,0,0,3,0,3,0,3,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 2, NULL, NULL, NULL, NULL, NULL, 0), +(1036, 'Zamorak robe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1259, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(1037, 'Bunny ears', 'A rabbit-like adornment.', NULL, NULL, 0, 0, 1, 'You can get a replacement from Diango.', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1038, 'Red partyhat', 'A nice hat from a cracker.', 1, 1, 0, 0, NULL, NULL, 1, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.05, 2, NULL, NULL, NULL, NULL, NULL, 0), +(1039, 'Red partyhat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1500000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(1040, 'Yellow partyhat', 'A nice hat from a cracker.', 1, 1, NULL, NULL, NULL, NULL, 1, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.05, 2, NULL, NULL, NULL, NULL, NULL, 0), +(1041, 'Yellow partyhat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1200000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(1042, 'Blue partyhat', 'A nice hat from a cracker.', 1, 1, NULL, NULL, NULL, NULL, 1, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.05, 2, NULL, NULL, NULL, NULL, NULL, 0), +(1043, 'Blue partyhat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2100000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(1044, 'Green partyhat', 'A nice hat from a cracker.', 1, 1, NULL, NULL, NULL, NULL, 1, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.05, 2, NULL, NULL, NULL, NULL, NULL, 0), +(1045, 'Green partyhat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1300000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(1046, 'Purple partyhat', 'A nice hat from a cracker.', 1, 1, NULL, NULL, NULL, NULL, 1, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.05, 2, NULL, NULL, NULL, NULL, NULL, 0), +(1047, 'Purple partyhat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1000000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(1048, 'White partyhat', 'A nice hat from a cracker.', 1, 1, NULL, NULL, NULL, NULL, 1, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.05, 2, NULL, NULL, NULL, NULL, NULL, 0), +(1049, 'White partyhat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2000000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(1050, 'Santa hat', 'It\'s a Santa hat.', 1, 1, 64, 96, NULL, NULL, 1, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(1051, 'Santa hat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 112600000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(1052, 'Cape of legends', 'The cape worn by members of the Legends Guild.', NULL, NULL, 180, 270, NULL, NULL, 450, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,7,7,7,7,7,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1053, 'Green h\'ween mask', 'Aaaarrrghhh ... I\'m a monster.', 1, 1, 6, 9, NULL, NULL, 15, 98000000, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(1054, 'Green h\'ween mask', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 98000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(1055, 'Blue h\'ween mask', 'Aaaarrrghhh ... I\'m a monster.', 1, 1, 6, 9, NULL, NULL, 15, 115900000, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(1056, 'Blue h\'ween mask', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 115900000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(1057, 'Red h\'ween mask', 'Aaaarrrghhh ... I\'m a monster.', 1, 1, 6, 9, NULL, NULL, 15, 154300000, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(1058, 'Red h\'ween mask', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 154300000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(1059, 'Leather gloves', 'These will keep my hands warm!', 1, NULL, 2, 3, NULL, NULL, 6, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,0,0,0,1,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.23, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1060, 'Leather gloves', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1061, 'Leather boots', 'Comfortable leather boots.', 1, NULL, 2, 3, NULL, NULL, 6, 144, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,0,0,0,1,1,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.34, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1062, 'Leather boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 144, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1063, 'Leather vambraces', 'Better than no armour!', 1, NULL, 7, 10, NULL, NULL, 18, 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,0,4,2,2,1,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.22, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1064, 'Leather vambraces', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1065, 'Green d\'hide vambraces', 'Made from 100% real dragonhide.', 1, 1, 1000, 1500, NULL, NULL, 2500, 1407, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,-10,8,3,2,4,2,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{4,40}', 0.28, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1066, 'Green d\'hide vambraces', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1407, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1067, 'Iron platelegs', 'These look pretty heavy.', 1, NULL, 112, 168, NULL, NULL, 280, 55, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '1,0,1', '0,0,0,-21,-7,11,10,10,-4,10,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1068, 'Iron platelegs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 55, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1069, 'Steel platelegs', 'These look pretty heavy.', 1, NULL, 400, 600, NULL, NULL, 1000, 426, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '1,0,1', '0,0,0,-21,-7,17,16,15,-4,16,2,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,5}', 9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1070, 'Steel platelegs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 426, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1071, 'Mithril platelegs', 'These look pretty heavy.', 1, NULL, 1040, 1560, NULL, NULL, 2600, 1391, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '1,0,2', '0,0,0,-21,-7,24,22,20,-4,22,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}', 7.7, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1072, 'Mithril platelegs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1391, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1073, 'Adamant platelegs', 'These look pretty heavy.', 1, NULL, 2560, 3840, NULL, NULL, 6464, 3649, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '1,0,3', '0,0,0,-21,-7,33,31,29,-4,31,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 10, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1074, 'Adamant platelegs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3649, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1075, 'Bronze platelegs', 'These look pretty heavy.', 1, NULL, 32, 48, NULL, NULL, 80, 34, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,-21,-7,8,7,6,-4,7,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1076, 'Bronze platelegs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 34, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1077, 'Black platelegs', 'These look pretty heavy', 1, NULL, 768, 1152, NULL, NULL, 1920, 4995, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '1,0,2', '0,0,0,-21,-7,21,20,19,-4,20,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}', 9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1078, 'Black platelegs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4995, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1079, 'Rune platelegs', 'These look pretty heavy.', 1, 1, 25600, 38400, NULL, NULL, 64000, 38500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '2,0,4', '0,0,0,-21,-7,51,49,47,-4,49,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1080, 'Rune platelegs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 38500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1081, 'Iron plateskirt', 'Designer leg protection.', 1, NULL, 112, 168, NULL, NULL, 280, 86, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,-21,-7,11,10,10,-4,10,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 8.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1082, 'Iron plateskirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 86, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1083, 'Steel plateskirt', 'Designer leg protection.', 1, NULL, 400, 600, NULL, NULL, 1000, 514, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,-21,-7,17,16,15,-4,16,2,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,5}', 8.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1084, 'Steel plateskirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 514, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1085, 'Mithril plateskirt', 'Designer leg protection.', 1, NULL, 1040, 1560, NULL, NULL, 2600, 1339, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '1,0,2', '0,0,0,-21,-7,24,22,20,-4,22,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}', 7.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1086, 'Mithril plateskirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1339, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1087, 'Bronze plateskirt', 'Designer leg protection.', 1, NULL, 32, 48, NULL, NULL, 80, 113, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,-21,-7,8,7,6,-4,7,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 8.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1088, 'Bronze plateskirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 113, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1089, 'Black plateskirt', 'Designer leg protection.', 1, NULL, 768, 1152, NULL, NULL, 1920, 2180, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '1,0,2', '0,0,0,-21,-7,21,20,19,-4,20,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}', 8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1090, 'Black plateskirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2180, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1091, 'Adamant plateskirt', 'Designer leg protection.', 1, NULL, 2560, 3840, NULL, NULL, 6464, 3610, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '1,0,3', '0,0,0,-21,-7,33,31,29,-4,31,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1092, 'Adamant plateskirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3610, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1093, 'Rune plateskirt', 'Designer leg protection.', 1, 1, 25600, 38400, NULL, NULL, 64000, 38100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '2,0,4', '0,0,0,-21,-7,51,49,47,-4,49,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1094, 'Rune plateskirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 38100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1095, 'Leather chaps', 'Better than no armour!', 1, NULL, 8, 12, NULL, NULL, 23, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,0,4,2,2,1,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1096, 'Leather chaps', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1097, 'Studded chaps', 'Those studs should provide a bit more protection.', 1, NULL, 300, 450, NULL, NULL, 750, 377, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '0,2,1', '0,0,0,-5,6,15,16,17,6,16,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{4,20}', 4.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1098, 'Studded chaps', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 377, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1099, 'Green d\'hide chaps', '100% real dragonhide.', 1, 1, 1560, 2340, NULL, NULL, 3900, 2228, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '0,4,2', '0,0,0,-10,8,22,16,24,8,22,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{4,40}', 5.4, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1100, 'Green d\'hide chaps', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2228, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1101, 'Iron chainbody', 'A series of connected metal rings.', 1, NULL, 84, 126, NULL, NULL, 210, 76, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,-15,0,10,15,19,-3,12,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1102, 'Iron chainbody', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 76, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1103, 'Bronze chainbody', 'A series of connected metal rings.', 1, NULL, 24, 36, NULL, NULL, 60, 37, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,-15,0,7,11,13,-3,9,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1104, 'Bronze chainbody', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 37, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1105, 'Steel chainbody', 'A series of connected metal rings.', 1, NULL, 300, 450, NULL, NULL, 750, 265, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,-15,0,17,25,30,-3,19,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,5}', 6, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1106, 'Steel chainbody', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 265, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1107, 'Black chainbody', 'A series of connected metal rings.', 1, NULL, 576, 864, NULL, NULL, 1440, 961, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '1,0,2', '0,0,0,-15,0,22,32,39,-3,24,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}', 6.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1108, 'Black chainbody', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 961, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1109, 'Mithril chainbody', 'A series of connected metal rings.', 1, NULL, 780, 1170, NULL, NULL, 1950, 963, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '1,0,3', '0,0,0,-15,0,25,35,42,-3,27,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}', 5.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1110, 'Mithril chainbody', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 963, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1111, 'Adamant chainbody', 'A series of connected metal rings.', 1, NULL, 1920, 2880, NULL, NULL, 4800, 2731, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '2,0,4', '0,0,0,-15,0,36,50,61,-3,38,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 7.7, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1112, 'Adamant chainbody', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2731, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1113, 'Rune chainbody', 'A series of connected metal rings.', 1, 1, 20000, 30000, NULL, NULL, 50000, 29800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '3,0,6', '0,0,0,-15,0,63,72,78,-3,65,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 6.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1114, 'Rune chainbody', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 29800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1115, 'Iron platebody', 'Provides excellent protection.', 1, NULL, 224, 336, NULL, NULL, 560, 434, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,-30,-10,21,20,12,-6,20,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9.95, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1116, 'Iron platebody', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 434, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1117, 'Bronze platebody', 'Provides excellent protection.', 1, NULL, 64, 96, NULL, NULL, 160, 36, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,-30,-10,15,14,9,-6,14,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9.5, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1118, 'Bronze platebody', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 36, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1119, 'Steel platebody', 'Provides excellent protection.', 1, NULL, 800, 1200, NULL, NULL, 2000, 1077, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,-30,-10,32,31,24,-6,31,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,5}', 9.9, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1120, 'Steel platebody', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1077, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1121, 'Mithril platebody', 'Provides excellent protection.', 1, NULL, 2080, 3120, NULL, NULL, 5200, 2965, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '1,0,3', '0,0,0,-30,-10,46,44,38,-6,44,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}', 8.6, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1122, 'Mithril platebody', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2965, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1123, 'Adamant platebody', 'Provides excellent protection.', 1, NULL, 6656, 9984, NULL, NULL, 16256, 9790, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '2,0,4', '0,0,0,-30,-10,65,63,55,-6,63,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 11, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1124, 'Adamant platebody', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 9790, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1125, 'Black platebody', 'Provides Excellent protection.', 1, NULL, 1536, 2304, NULL, NULL, 3840, 4915, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '1,0,2', '0,0,0,-30,-10,41,40,30,-6,40,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}', 9.9, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1126, 'Black platebody', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4915, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1127, 'Rune platebody', 'Provides excellent protection.', 1, 1, 26000, 39000, NULL, NULL, 65000, 38800, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '3,0,6', '0,0,0,-30,-10,82,80,72,-6,80,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 9.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1128, 'Rune platebody', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 38800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1129, 'Leather body', 'Better than no armour!', 1, NULL, 8, 12, NULL, NULL, 20, 34, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,-2,2,8,9,10,4,9,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1130, 'Leather body', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 34, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1131, 'Hardleather body', 'Harder than normal leather.', 1, NULL, 68, 102, NULL, NULL, 170, 43, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '0,2,1', '0,0,0,-4,8,12,15,18,6,15,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}', 3.6, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1132, 'Hardleather body', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 43, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1133, 'Studded body', 'These studs should provide a bit more protection.', 1, NULL, 340, 510, NULL, NULL, 850, 414, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '0,3,1', '0,0,0,-4,8,18,25,22,8,25,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{4,20}', 5, 1000, NULL, NULL, NULL, NULL, NULL, 150), +(1134, 'Studded body', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 414, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1135, 'Green d\'hide body', 'Made from 100% real dragonhide.', 1, 1, 3120, 4680, NULL, NULL, 7800, 4544, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '0,6,3', '0,0,0,-15,15,40,32,45,20,40,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,40}', 6.8, 5000, NULL, NULL, NULL, NULL, NULL, 2400), +(1136, 'Green d\'hide body', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4544, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1137, 'Iron med helm', 'A medium sized helmet.', 1, NULL, 33, 50, NULL, NULL, 84, 22, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-3,-1,4,5,3,-1,4,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1138, 'Iron med helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 22, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1139, 'Bronze med helm', 'A medium sized helmet.', 1, NULL, 9, 14, NULL, NULL, 24, 39, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-3,-1,3,4,2,-1,3,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1140, 'Bronze med helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 39, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1141, 'Steel med helm', 'A medium sized helmet.', 1, NULL, 120, 180, NULL, NULL, 300, 52, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-3,-1,7,8,6,-1,7,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,5}', 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1142, 'Steel med helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 52, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1143, 'Mithril med helm', 'A medium sized helmet.', 1, NULL, 312, 468, NULL, NULL, 780, 272, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-3,-1,10,11,9,-1,10,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}', 1.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1144, 'Mithril med helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 272, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1145, 'Adamant med helm', 'A medium sized helmet.', 1, NULL, 768, 1152, NULL, NULL, 1920, 1024, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,2', '0,0,0,-3,-1,14,15,13,-1,14,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1146, 'Adamant med helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1024, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1147, 'Rune med helm', 'A medium sized helmet.', 1, 1, 7680, 11520, NULL, NULL, 19200, 11400, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,3', '0,0,0,-3,-1,22,23,21,-1,22,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1148, 'Rune med helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 11400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1149, 'Dragon med helm', 'Makes the wearer pretty intimidating.', 1, 1, 40000, 60000, NULL, NULL, NULL, 60500, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,0,4', '0,0,0,-3,-1,33,35,32,-1,34,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}', 1.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1150, 'Dragon med helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 60500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1151, 'Black med helm', 'A medium sized helmet.', 1, NULL, 230, 345, NULL, NULL, 530, 242, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-3,-1,9,10,8,-1,9,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}', 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1152, 'Black med helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 242, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1153, 'Iron full helm', 'A full face helmet.', 1, NULL, 61, 92, NULL, NULL, 61, 56, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,6,7,5,-1,6,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1154, 'Iron full helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 56, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1155, 'Bronze full helm', 'A full face helmet.', 1, NULL, 17, 26, NULL, NULL, 44, 67, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,4,5,3,-1,4,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1156, 'Bronze full helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 67, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1157, 'Steel full helm', 'A full face helmet.', 1, NULL, 220, 330, NULL, NULL, 550, 195, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,9,10,7,-1,9,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,5}', 2.7, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1158, 'Steel full helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 195, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1159, 'Mithril full helm', 'A full face helmet.', 1, NULL, 572, 858, NULL, NULL, 1430, 675, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,13,14,11,-1,13,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1160, 'Mithril full helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 675, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1161, 'Adamant full helm', 'A full face helmet.', 1, NULL, 1408, 2112, NULL, NULL, 3520, 1911, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,2', '0,0,0,-6,-2,19,21,16,-1,19,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 2.7, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1162, 'Adamant full helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1911, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1163, 'Rune full helm', 'A full face helmet.', 1, 1, 14080, 21120, NULL, NULL, NULL, 20900, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,3', '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 2.7, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1164, 'Rune full helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 20900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1165, 'Black full helm', 'A full face helmet.', 1, NULL, 548, 823, NULL, NULL, 1372, 731, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,12,13,10,-1,12,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}', 2.7, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1166, 'Black full helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 731, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1167, 'Leather cowl', 'Better than no armour!', 1, NULL, 9, 14, NULL, NULL, 24, 9, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,0,1,2,3,4,2,3,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1168, 'Leather cowl', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1169, 'Coif', 'Light weight head protection.', 1, NULL, 80, 120, NULL, NULL, 200, 56, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-1,2,4,6,8,4,4,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{4,20}', 0.9, 5000, NULL, NULL, NULL, NULL, NULL, 100), +(1170, 'Coif', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 56, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1171, 'Wooden shield', 'A solid wooden shield.', 1, NULL, 8, 12, NULL, NULL, 20, 483, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,0,0,4,5,3,1,4,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1172, 'Wooden shield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 483, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1173, 'Bronze sq shield', 'A medium square shield.', 1, NULL, 19, 28, NULL, NULL, 48, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,-6,-2,5,6,4,0,5,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1174, 'Bronze sq shield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1175, 'Iron sq shield', 'A medium square shield.', 1, NULL, 67, 100, NULL, NULL, 168, 39, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,-6,-2,8,9,7,0,8,1,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3.6, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1176, 'Iron sq shield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 39, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1177, 'Steel sq shield', 'A medium square shield.', 1, NULL, 240, 360, NULL, NULL, 600, 185, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,-6,-2,12,13,11,0,12,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,5}', 3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1178, 'Steel sq shield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 185, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1179, 'Black sq shield', 'A medium square shield.', 1, NULL, 460, 691, NULL, NULL, 1463, 511, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '1,0,2', '0,0,0,-6,-2,15,16,14,0,15,9,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}', 4, 100, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(1180, 'Black sq shield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 511, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1181, 'Mithril sq shield', 'A medium square shield.', 1, NULL, 624, 936, NULL, NULL, 1560, 744, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '2,0,4', '0,0,0,-6,-2,17,19,15,0,17,18,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}', 3.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1182, 'Mithril sq shield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 744, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1183, 'Adamant sq shield', 'A medium square shield.', 1, NULL, 1536, 2304, NULL, NULL, NULL, 2136, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,6', '0,0,0,-6,-2,24,26,22,0,24,25,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1184, 'Adamant sq shield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2136, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1185, 'Rune sq shield', 'A medium square shield.', 1, 1, 15360, 23040, NULL, NULL, NULL, 22800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-6,-2,38,40,36,0,38,35,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 3.64, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1186, 'Rune sq shield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 22800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1187, 'Dragon sq shield', 'An ancient and powerful looking Dragon Square shield.', 1, 1, 200000, 300000, NULL, NULL, NULL, 431900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '5,0,11', '0,0,0,-6,-2,50,52,48,0,50,50,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}', 3, 10, NULL, NULL, NULL, NULL, NULL, 0), +(1188, 'Dragon sq shield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 431900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(1189, 'Bronze kiteshield', 'A large metal shield.', 1, NULL, 27, 40, NULL, NULL, 86, 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,-8,-2,5,7,6,-1,6,1,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1190, 'Bronze kiteshield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1191, 'Iron kiteshield', 'A large metal shield.', 1, NULL, 95, 142, NULL, NULL, 233, 57, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,-8,-2,8,10,9,-1,9,2,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1192, 'Iron kiteshield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 57, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1193, 'Steel kiteshield', 'A large metal shield.', 1, NULL, 340, 510, NULL, NULL, 850, 354, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,-8,-2,13,15,14,-1,14,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,5}', 5.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1194, 'Steel kiteshield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 354, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1195, 'Black kiteshield', 'A large metal shield.', 1, NULL, 848, 1272, NULL, NULL, 2121, 3311, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '1,0,2', '0,0,0,-8,-2,17,19,18,-1,18,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}', 5.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1196, 'Black kiteshield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3311, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1197, 'Mithril kiteshield', 'A large metal shield.', 1, NULL, 884, 1326, NULL, NULL, NULL, 1128, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '2,0,4', '0,0,0,-8,-2,18,22,20,-1,20,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}', 4.5, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1198, 'Mithril kiteshield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1128, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1199, 'Adamant kiteshield', 'A large metal shield.', 1, NULL, 2176, 3264, NULL, NULL, NULL, 3066, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,6', '0,0,0,-8,-2,27,31,29,-1,29,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 5.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1200, 'Adamant kiteshield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3066, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1201, 'Rune kiteshield', 'A large metal shield.', 1, 1, 21760, 32640, NULL, NULL, NULL, 35600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 5.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1202, 'Rune kiteshield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 35600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1203, 'Iron dagger', 'Short but pointy.', 1, NULL, 14, 21, NULL, NULL, 38, 35, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '5,3,-4,1,0,0,0,0,1,0,0,4,0,0,0', 5, NULL, NULL, '400,400,401,400', 378, '2517,2517,2500,2517', NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1204, 'Iron dagger', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 35, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1205, 'Bronze dagger', 'Short but pointy.', 1, NULL, 4, 6, NULL, NULL, 11, 105, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '4,2,-4,1,0,0,0,0,1,0,0,3,0,0,0', 5, NULL, NULL, '400,400,401,400', 378, '2517,2517,2500,2517', NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1206, 'Bronze dagger', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 105, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1207, 'Steel dagger', 'Short but pointy.', 1, NULL, 50, 75, NULL, NULL, 135, 17, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '8,4,-4,1,0,0,0,0,1,0,0,7,0,0,0', 5, NULL, NULL, '400,400,401,400', 378, '2517,2517,2500,2517', '{0,5}', 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1208, 'Steel dagger', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 17, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1209, 'Mithril dagger', 'A dangerous dagger.', 1, NULL, 130, 195, NULL, NULL, 130, 71, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '11,5,-4,1,0,0,0,0,1,0,0,10,0,0,0', 5, NULL, NULL, '400,400,401,400', 378, '2517,2517,2500,2517', '{0,20}', 0.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1210, 'Mithril dagger', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 71, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1211, 'Adamant dagger', 'Short and deadly.', 1, NULL, 320, 480, NULL, NULL, 816, 300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '15,8,-4,1,0,0,0,0,1,0,0,14,0,0,0', 5, NULL, NULL, '400,400,401,400', 378, '2517,2517,2500,2517', '{0,30}', 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1212, 'Adamant dagger', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1213, 'Rune dagger', 'A powerful dagger.', 1, 1, 3200, 4800, NULL, NULL, 8000, 4642, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '25,12,-4,1,0,0,0,0,1,0,0,24,0,0,0', 5, NULL, NULL, '400,400,401,400', 378, '2517,2517,2500,2517', '{0,40}', 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1214, 'Rune dagger', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4642, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1215, 'Dragon dagger', 'A powerful dagger.', 1, 1, 12000, 18000, NULL, NULL, 60000, 17700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '40,25,-4,1,0,0,0,0,1,0,0,40,0,0,0', 5, 1, NULL, '396,396,395,396', 397, '2517,2517,2500,2517', '{0,60}', 0.4, 10, NULL, NULL, NULL, NULL, NULL, 0), +(1216, 'Dragon dagger', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 17700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(1217, 'Black dagger', 'A vicious black dagger.', 1, NULL, 96, 144, NULL, NULL, 240, 79, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '10,5,-4,1,0,0,0,0,1,0,0,7,0,0,0', 5, NULL, NULL, '400,400,401,400', 378, '2517,2517,2500,2517', '{0,10}', 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1218, 'Black dagger', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 79, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1219, 'Iron dagger(p)', 'Short but pointy.', 1, NULL, 14, 21, NULL, NULL, 38, 56, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '5,3,-4,1,0,0,0,0,1,0,0,4,0,0,0', 5, NULL, NULL, '400,400,401,400', 378, '2517,2517,2500,2517', NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1220, 'Iron dagger(p)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 56, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1221, 'Bronze dagger(p)', 'Short but pointy.', 1, NULL, 4, 6, NULL, NULL, 11, 86, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '4,2,-4,1,0,0,0,0,1,0,0,3,0,0,0', 5, NULL, NULL, '400,400,401,400', 378, '2517,2517,2500,2517', NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1222, 'Bronze dagger(p)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 86, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1223, 'Steel dagger(p)', 'Short but pointy.', 1, NULL, 50, 75, NULL, NULL, 135, 98, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '8,4,-4,1,0,0,0,0,1,0,0,7,0,0,0', 5, NULL, NULL, '400,400,401,400', 378, '2517,2517,2500,2517', '{0,5}', 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1224, 'Steel dagger(p)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 98, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1225, 'Mithril dagger(p)', 'A dangerous dagger.', 1, NULL, 130, 195, NULL, NULL, 130, 129, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '11,5,-4,1,0,0,0,0,1,0,0,10,0,0,0', 5, NULL, NULL, '400,400,401,400', 378, '2517,2517,2500,2517', '{0,20}', 0.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1226, 'Mithril dagger(p)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 129, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1227, 'Adamant dagger(p)', 'Short and deadly.', 1, NULL, 320, 480, NULL, NULL, 816, 365, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '15,8,-4,1,0,0,0,0,1,0,0,14,0,0,0', 5, NULL, NULL, '400,400,401,400', 378, '2517,2517,2500,2517', '{0,30}', 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1228, 'Adamant dagger(p)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 365, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1229, 'Rune dagger(p)', 'A powerful dagger.', 1, 1, 3200, 4800, NULL, NULL, 8000, 4831, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '25,12,-4,1,0,0,0,0,1,0,0,24,0,0,0', 5, NULL, NULL, '400,400,401,400', 378, '2517,2517,2500,2517', '{0,40}', 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1230, 'Rune dagger(p)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4831, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1231, 'Dragon dagger(p)', 'A powerful dagger.', 1, 1, 12000, 18000, NULL, NULL, 60000, 17600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '40,25,-4,1,0,0,0,0,1,0,0,40,0,0,0', 5, 1, NULL, '396,396,395,396', 397, '2517,2517,2500,2517', '{0,60}', 0.4, 10, NULL, NULL, NULL, NULL, NULL, 0), +(1232, 'Dragon dagger(p)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 17600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(1233, 'Black dagger(p)', 'A vicious black dagger.', 1, NULL, 96, 144, NULL, NULL, 240, 67, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '10,5,-4,1,0,0,0,0,1,0,0,7,0,0,0', 5, NULL, NULL, '400,400,401,400', 378, '2517,2517,2500,2517', '{0,10}', 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1234, 'Black dagger(p)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 67, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1235, 'Poisoned dagger(p)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1236, 'Poisoned dagger(p)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1237, 'Bronze spear', 'A bronze tipped spear.', 1, NULL, 10, 15, NULL, NULL, 26, 858, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '5,5,5,0,0,1,1,0,0,0,0,6,0,0,0', 14, NULL, 1, '428,2081,429,428', 2079, NULL, NULL, 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1238, 'Bronze spear', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 858, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1239, 'Iron spear', 'An iron tipped spear.', 1, NULL, 36, 54, NULL, NULL, NULL, 209, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '8,8,8,0,0,1,1,0,0,0,0,10,0,0,0', 14, NULL, 1, '428,2081,429,428', 2079, NULL, NULL, 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1240, 'Iron spear', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 209, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1241, 'Steel spear', 'A steel tipped spear.', 1, NULL, 130, 195, NULL, NULL, NULL, 340, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '12,12,12,0,0,1,1,0,0,0,0,12,0,0,0', 14, NULL, 1, '428,2081,429,428', 2079, NULL, '{0,5}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1242, 'Steel spear', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 340, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1243, 'Mithril spear', 'A mithril tipped spear.', 1, NULL, 338, 507, NULL, NULL, NULL, 353, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '17,17,17,0,0,1,1,0,0,0,0,18,0,0,0', 14, NULL, 1, '428,2081,429,428', 2079, NULL, '{0,20}', 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1244, 'Mithril spear', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 353, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1245, 'Adamant spear', 'An adamant tipped spear.', 1, NULL, 832, 1248, NULL, NULL, NULL, 1191, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '24,24,24,0,0,1,1,0,0,0,0,28,0,0,0', 14, NULL, 1, '428,2081,429,428', 2079, NULL, '{0,30}', 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1246, 'Adamant spear', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1191, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1247, 'Rune spear', 'A rune tipped spear.', 1, 1, 8320, 12480, NULL, NULL, NULL, 12200, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '36,36,36,0,0,1,1,0,0,0,0,42,0,0,0', 14, NULL, 1, '428,2081,429,428', 2079, NULL, '{0,40}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1248, 'Rune spear', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 12200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1249, 'Dragon spear', 'A dragon tipped spear.', 1, 1, 24960, 37440, NULL, NULL, NULL, 37200, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '55,55,55,0,0,5,5,5,5,5,0,60,0,0,0', 14, 1, 1, '428,2081,429,428', 2079, NULL, '{0,60}', 2, 10, NULL, NULL, NULL, NULL, NULL, 0), +(1250, 'Dragon spear', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 37200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2079, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(1251, 'Bronze spear(p)', 'A bronze tipped spear.', 1, NULL, 10, 15, NULL, NULL, NULL, 389, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '5,5,5,0,0,1,1,0,0,0,0,6,0,0,0', 14, NULL, 1, '428,2081,429,428', 2079, NULL, NULL, 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1252, 'Bronze spear(p)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 389, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1253, 'Iron spear(p)', 'An iron tipped spear.', 1, NULL, 36, 54, NULL, NULL, NULL, 212, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '8,8,8,0,0,1,1,0,0,0,0,10,0,0,0', 14, NULL, 1, '428,2081,429,428', 2079, NULL, NULL, 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1254, 'Iron spear(p)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 212, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1255, 'Steel spear(p)', 'A steel tipped spear.', 1, NULL, 130, 195, NULL, NULL, NULL, 136, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '12,12,12,0,0,1,1,0,0,0,0,12,0,0,0', 14, NULL, 1, '428,2081,429,428', NULL, NULL, '{0,5}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1256, 'Steel spear(p)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 136, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1257, 'Mithril spear(p)', 'A mithril tipped spear.', 1, NULL, 338, 507, NULL, NULL, NULL, 350, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '17,17,17,0,0,1,1,0,0,0,0,18,0,0,0', 14, NULL, 1, '428,2081,429,428', 2079, NULL, '{0,20}', 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1258, 'Mithril spear(p)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 350, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1259, 'Adamant spear(p)', 'An adamant tipped spear.', 1, NULL, 832, 1248, NULL, NULL, NULL, 1004, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '24,24,24,0,0,1,1,0,0,0,0,28,0,0,0', 14, NULL, 1, '428,2081,429,428', 2079, NULL, '{0,30}', 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1260, 'Adamant spear(p)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1004, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1261, 'Rune spear(p)', 'A rune tipped spear.', 1, 1, 8320, 12480, NULL, NULL, NULL, 12400, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '36,36,36,0,0,1,1,0,0,0,0,42,0,0,0', 14, NULL, 1, '428,2081,429,428', 2079, NULL, '{0,40}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1262, 'Rune spear(p)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 12400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1263, 'Dragon spear(p)', 'A dragon tipped spear.', 1, 1, 24960, 37440, NULL, NULL, NULL, 39700, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '55,55,55,0,0,5,5,5,5,5,0,60,0,0,0', 14, 1, 1, '428,2081,429,428', 2079, NULL, '{0,60}', 2, 10, NULL, NULL, NULL, NULL, NULL, 0), +(1264, 'Dragon spear(p)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 39700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(1265, 'Bronze pickaxe', 'Used for mining.', 1, NULL, NULL, NULL, NULL, NULL, 1, 17, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '4,-2,2,0,0,0,1,0,0,0,0,5,0,0,0', 4, NULL, NULL, '401,401,400,401', 403, '2508,2508,2508,2508', NULL, 2.25, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1266, 'Bronze pickaxe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 17, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1267, 'Iron pickaxe', 'Used for mining.', 1, NULL, 56, 84, NULL, NULL, 140, 200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '5,-2,3,0,0,0,1,0,0,0,0,7,0,0,0', 4, NULL, NULL, '401,401,400,401', 403, '2508,2508,2508,2508', NULL, 2.25, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1268, 'Iron pickaxe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1269, 'Steel pickaxe', 'Used for mining.', 1, NULL, 200, 300, NULL, NULL, 500, 571, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '8,-2,6,0,0,0,1,0,0,0,0,9,0,0,0', 4, NULL, NULL, '401,401,400,401', 403, '2508,2508,2508,2508', '{0,5}', 2.25, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1270, 'Steel pickaxe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 571, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1271, 'Adamant pickaxe', 'Used for mining.', 1, NULL, 1280, 1920, NULL, NULL, 3200, 1782, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '17,-2,15,0,0,0,1,0,0,0,0,19,0,0,0', 4, NULL, NULL, '401,401,400,401', 403, '2508,2508,2508,2508', '{0,30}-{14,31}', 2.7, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1272, 'Adamant pickaxe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1782, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1273, 'Mithril pickaxe', 'Used for mining.', 1, NULL, 520, 780, NULL, NULL, 1300, 611, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '12,-2,10,0,0,0,1,0,0,0,0,13,0,0,0', 4, NULL, NULL, '401,401,400,401', 403, '2508,2508,2508,2508', '{0,20}', 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1274, 'Mithril pickaxe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 611, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1275, 'Rune pickaxe', 'Used for mining.', 1, 1, 12800, 19200, NULL, NULL, 32000, 19500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '26,-2,24,0,0,0,1,0,0,0,0,29,0,0,0', 4, NULL, NULL, '401,401,400,401', 403, '2508,2508,2508,2508', '{0,40}-{14,41}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1276, 'Rune pickaxe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 19500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1277, 'Bronze sword', 'A razor sharp sword.', 1, NULL, 10, 15, NULL, NULL, 33, 13, NULL, NULL, NULL, 813, 823, 1205, 824, 1206, 1207, 1208, 1381, 3, 4, NULL, '4,3,-2,0,0,0,2,1,0,0,0,5,0,0,0', 5, NULL, NULL, '381,381,390,381', 397, '2500,2500,2517,2500', NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1278, 'Bronze sword', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1279, 'Iron sword', 'A razor sharp sword.', 1, NULL, 36, 54, NULL, NULL, 91, 17, NULL, NULL, NULL, 813, 823, 1205, 824, 1206, 1207, 1208, 1381, 3, 4, NULL, '6,4,-2,0,0,0,2,1,0,0,0,7,0,0,0', 5, NULL, NULL, '381,381,390,381', 397, '2500,2500,2517,2500', NULL, 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1280, 'Iron sword', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 17, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1281, 'Steel sword', 'A razor sharp sword.', 1, NULL, 130, 195, NULL, NULL, 412, 79, NULL, NULL, NULL, 813, 823, 1205, 824, 1206, 1207, 1208, 1381, 3, 4, NULL, '11,8,-2,0,0,0,2,1,0,0,0,12,0,0,0', 5, NULL, NULL, '381,381,390,381', 397, '2500,2500,2517,2500', '{0,5}', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1282, 'Steel sword', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 79, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1283, 'Black sword', 'A razor sharp sword.', 1, NULL, 249, 374, NULL, NULL, 624, 197, NULL, NULL, NULL, 813, 823, 1205, 824, 1206, 1207, 1208, 1381, 3, 4, NULL, '14,10,-2,0,0,0,2,1,0,0,0,12,0,0,0', 5, NULL, NULL, '381,381,390,381', 397, '2500,2500,2517,2500', '{0,10}', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1284, 'Black sword', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 197, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1285, 'Mithril sword', 'A razor sharp sword.', 1, NULL, 338, 507, NULL, NULL, 266, 313, NULL, NULL, NULL, 813, 823, 1205, 824, 1206, 1207, 1208, 1381, 3, 4, NULL, '16,11,-2,0,0,0,2,1,0,0,0,17,0,0,0', 5, NULL, NULL, '381,381,390,381', 397, '2500,2500,2517,2500', '{0,20}', 1.5, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1286, 'Mithril sword', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 313, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1287, 'Adamant sword', 'A razor sharp sword.', 1, NULL, 832, 1248, NULL, NULL, 2080, 1046, NULL, NULL, NULL, 813, 823, 1205, 824, 1206, 1207, 1208, 1381, 3, 4, NULL, '23,18,-2,0,0,0,2,1,0,0,0,24,0,0,0', 5, NULL, NULL, '381,381,390,381', 397, '2500,2500,2517,2500', '{0,30}', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1288, 'Adamant sword', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1046, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1289, 'Rune sword', 'A razor sharp sword.', 1, 1, 8320, 12480, NULL, NULL, 20800, 12300, NULL, NULL, NULL, 813, 823, 1205, 824, 1206, 1207, 1208, 1381, 3, 4, NULL, '38,26,-2,0,0,0,2,1,0,0,0,39,0,0,0', 5, NULL, NULL, '381,381,390,381', 397, '2500,2500,2517,2500', '{0,40}', 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1290, 'Rune sword', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 12300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1291, 'Bronze longsword', 'A razor sharp longsword.', 1, NULL, 16, 24, NULL, NULL, 23, 14, NULL, NULL, NULL, 808, 823, 819, 824, 820, 821, 822, 1, 3, 5, NULL, '4,5,-2,0,0,0,3,2,0,0,0,7,0,0,0', 6, NULL, NULL, '390,390,381,390', 397, '2500,2500,2517,2500', NULL, 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1292, 'Bronze longsword', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 14, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1293, 'Iron longsword', 'A razor sharp longsword.', 1, NULL, 56, 84, NULL, NULL, 177, 22, NULL, NULL, NULL, 808, 823, 819, 824, 820, 821, 822, 1, 3, 5, NULL, '6,8,-2,0,0,0,3,2,0,0,0,10,0,0,0', 6, NULL, NULL, '390,390,381,390', 397, '2500,2500,2517,2500', NULL, 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1294, 'Iron longsword', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 22, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1295, 'Steel longsword', 'A razor sharp longsword.', 1, NULL, 200, 300, NULL, NULL, 500, 147, NULL, NULL, NULL, 808, 823, 819, 824, 820, 821, 822, 1, 3, 5, NULL, '9,14,-2,0,0,0,3,2,0,0,0,16,0,0,0', 6, NULL, NULL, '390,390,381,390', 397, '2500,2500,2517,2500', '{0,5}', 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1296, 'Steel longsword', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 147, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1297, 'Black longsword', 'A razor sharp longsword.', 1, NULL, 384, 576, NULL, NULL, 960, 384, NULL, NULL, NULL, 808, 823, 819, 824, 820, 821, 822, 1, 3, 5, NULL, '13,18,-2,0,0,0,3,2,0,0,0,16,0,0,0', 6, NULL, NULL, '390,390,381,390', 397, '2500,2500,2517,2500', '{0,10}', 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1298, 'Black longsword', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 384, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1299, 'Mithril longsword', 'A razor sharp longsword.', 1, NULL, 520, 780, NULL, NULL, 1074, 602, NULL, NULL, NULL, 808, 823, 819, 824, 820, 821, 822, 1, 3, 5, NULL, '15,20,-2,0,0,0,3,2,0,0,0,22,0,0,0', 6, NULL, NULL, '390,390,381,390', 397, '2500,2500,2517,2500', '{0,20}', 1.5, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1300, 'Mithril longsword', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 602, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1301, 'Adamant longsword', 'A razor sharp longsword.', 1, NULL, 1280, 1920, NULL, NULL, 3200, 1808, NULL, NULL, NULL, 808, 823, 819, 824, 820, 821, 822, 1, 3, 5, NULL, '20,29,-2,0,0,0,3,2,0,0,0,31,0,0,0', 6, NULL, NULL, '390,390,381,390', 397, '2500,2500,2517,2500', '{0,30}', 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1302, 'Adamant longsword', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1808, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1303, 'Rune longsword', 'A razor sharp longsword', 1, 1, 12800, 19200, NULL, NULL, 32000, 19000, NULL, NULL, NULL, 808, 823, 819, 824, 820, 821, 822, 1, 3, 5, NULL, '38,47,-2,0,0,0,3,2,0,0,0,49,0,0,0', 6, NULL, NULL, '390,390,381,390', 397, '2500,2500,2517,2500', '{0,40}', 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1304, 'Rune longsword', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 19000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1305, 'Dragon longsword', 'A very powerful sword.', 1, 1, 40000, 60000, NULL, NULL, 100000, 60200, NULL, NULL, NULL, 809, 823, 1146, 1210, 820, 821, 822, 1426, 3, 5, NULL, '58,69,-2,0,0,0,3,2,0,0,0,71,0,0,0', 6, 1, NULL, '390,390,381,390', 397, '2500,2500,2517,2500', '{0,60}', 1.8, 10, NULL, NULL, NULL, NULL, NULL, 0), +(1306, 'Dragon longsword', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 60200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(1307, 'Bronze 2h sword', 'A two-handed sword.', 1, NULL, 32, 48, NULL, NULL, 160, 89, NULL, NULL, NULL, 7047, 7040, 7046, 7039, 7045, 7044, 7043, 124, 3, 7, NULL, '-4,9,8,-4,0,0,0,0,0,-1,0,10,0,0,0', 7, NULL, 1, '7041,7041,7048,7049', 7050, '2503,0,2504,0', NULL, 3.6, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1308, 'Bronze 2h sword', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 89, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1309, 'Iron 2h sword', 'A two handed sword.', 1, NULL, 112, 168, NULL, NULL, 260, 32, NULL, NULL, NULL, 7047, 7040, 7046, 7039, 7045, 7044, 7043, 124, 3, 7, NULL, '-4,13,10,-4,0,0,0,0,0,-1,0,14,0,0,0', 7, NULL, 1, '7041,7041,7048,7049', 7050, '2503,0,2504,0', NULL, 3.6, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1310, 'Iron 2h sword', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 32, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1311, 'Steel 2h sword', 'A two handed sword.', 1, NULL, 400, 600, NULL, NULL, 1000, 411, NULL, NULL, NULL, 7047, 7040, 7046, 7039, 7045, 7044, 7043, 124, 3, 7, NULL, '-4,21,16,-4,0,0,0,0,0,-1,0,22,0,0,0', 7, NULL, 1, '7041,7041,7048,7049', 7050, '2503,0,2504,0', '{0,5}', 3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1312, 'Steel 2h sword', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 411, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1313, 'Black 2h sword', 'A two-handed sword.', 1, NULL, 768, 1152, NULL, NULL, 2400, 1031, NULL, NULL, NULL, 7047, 7040, 7046, 7039, 7045, 7044, 7043, 124, 3, 7, NULL, '-4,27,21,-4,0,0,0,0,0,-1,0,26,0,0,0', 7, NULL, 1, '7041,7041,7048,7049', 7050, '2503,0,2504,0', '{0,10}', 3.6, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1314, 'Black 2h sword', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1031, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1315, 'Mithril 2h sword', 'A two-handed sword.', 1, NULL, 1040, 1560, NULL, NULL, 3000, 1396, NULL, NULL, NULL, 7047, 7040, 7046, 7039, 7045, 7044, 7043, 124, 3, 7, NULL, '-4,30,24,-4,0,0,0,0,0,-1,0,31,0,0,0', 7, NULL, 1, '7041,7041,7048,7049', 7050, '2503,0,2504,0', '{0,20}', 3.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1316, 'Mithril 2h sword', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1396, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1317, 'Adamant 2h sword', 'A two-handed sword.', 1, NULL, 2560, 3840, NULL, NULL, 6400, 3577, NULL, NULL, NULL, 7047, 7040, 7046, 7039, 7045, 7044, 7043, 124, 3, 7, NULL, '-4,43,30,-4,0,0,0,0,0,-1,0,44,0,0,0', 7, NULL, 1, '7041,7041,7048,7049', 7050, '2503,0,2504,0', '{0,30}', 4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1318, 'Adamant 2h sword', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3577, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1319, 'Rune 2h sword', 'A two handed sword.', 1, 1, 25600, 38400, NULL, NULL, 40000, 38200, NULL, NULL, NULL, 7047, 7040, 7046, 7039, 7045, 7044, 7043, 124, 3, 7, NULL, '-4,69,50,-4,0,0,0,0,0,-1,0,70,0,0,0', 7, NULL, 1, '7041,7041,7048,7049', 7050, '2503,0,2504,0', '{0,40}', 3.6, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1320, 'Rune 2h sword', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 38200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1321, 'Bronze scimitar', 'A vicious, curved sword.', 1, NULL, 12, 18, NULL, NULL, 40, 13, NULL, NULL, NULL, 808, 823, 819, 824, 820, 821, 822, 1, 3, 4, NULL, '1,7,-2,0,0,0,1,0,0,0,0,6,0,0,0', 6, NULL, NULL, '390,390,381,390', 397, '2500,0,2517,0', NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1322, 'Bronze scimitar', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1323, 'Iron scimitar', 'A vicious, curved sword.', 1, NULL, 44, 67, NULL, NULL, 112, 30, NULL, NULL, NULL, 808, 823, 819, 824, 820, 821, 822, 1, 3, 4, NULL, '2,10,-2,0,0,0,1,0,0,0,0,9,0,0,0', 6, NULL, NULL, '390,390,381,390', 397, '2500,0,2517,0', NULL, 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1324, 'Iron scimitar', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1325, 'Steel scimitar', 'A vicious, curved sword.', 1, NULL, 160, 240, NULL, NULL, 400, 101, NULL, NULL, NULL, 808, 823, 819, 824, 820, 821, 822, 1, 3, 4, NULL, '3,15,-2,0,0,0,1,0,0,0,0,14,0,0,0', 6, NULL, NULL, '390,390,381,390', 397, '2500,0,2517,0', '{0,5}', 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1326, 'Steel scimitar', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 101, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1327, 'Black scimitar', 'A vicious, curved sword.', 1, NULL, 307, 460, NULL, NULL, NULL, 4498, NULL, NULL, NULL, 808, 823, 819, 824, 820, 821, 822, 1, 3, 4, NULL, '4,19,-2,0,0,0,1,0,0,0,0,14,0,0,0', 6, NULL, NULL, '390,390,381,390', 397, '2500,0,2517,0', '{0,10}', 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1328, 'Black scimitar', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4498, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1329, 'Mithril scimitar', 'A vicious, curved sword.', 1, NULL, 416, 624, NULL, NULL, 1040, 469, NULL, NULL, NULL, 808, 823, 819, 824, 820, 821, 822, 1, 3, 4, NULL, '5,21,-2,0,0,0,1,0,0,0,0,20,0,0,0', 6, NULL, NULL, '390,390,381,390', 397, '2500,0,2517,0', '{0,20}', 1.5, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1330, 'Mithril scimitar', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 469, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1331, 'Adamant scimitar', 'A viciously curved sword', 1, NULL, 1024, 1536, NULL, NULL, 2304, 1525, NULL, NULL, NULL, 808, 823, 819, 824, 820, 821, 822, 1, 3, 4, NULL, '6,29,-2,0,0,0,1,0,0,0,0,28,0,0,0', 6, NULL, NULL, '390,390,381,390', 397, '2500,0,2517,0', '{0,30}', 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1332, 'Adamant scimitar', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1525, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1333, 'Rune scimitar', 'A vicious, curved sword.', 1, 1, 10240, 15360, NULL, NULL, NULL, 15200, NULL, NULL, NULL, 808, 823, 819, 824, 820, 821, 822, 1, 3, 4, NULL, '7,45,-2,0,0,0,1,0,0,0,0,44,0,0,0', 6, NULL, NULL, '390,390,381,390', 397, '2500,0,2517,0', '{0,40}', 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1334, 'Rune scimitar', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 15200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1335, 'Iron warhammer', 'I don\'t think it\'s intended for joinery.', 1, NULL, 89, 134, NULL, NULL, 224, 20, NULL, NULL, NULL, 808, 823, 819, 1210, 820, 821, 822, 1430, 3, 6, NULL, '-4,-4,11,-4,0,0,0,0,0,0,0,9,0,0,0', 10, NULL, NULL, '395,395,395,395', 397, '2504,0,0,0', NULL, 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1336, 'Iron warhammer', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1337, 'Bronze warhammer', 'I don\'t think it\'s intended for joinery.', 1, NULL, 24, 36, NULL, NULL, 59, 16, NULL, NULL, NULL, 808, 823, 819, 1210, 820, 821, 822, 1430, 3, 6, NULL, '-4,-4,10,-4,0,0,0,0,0,0,0,8,0,0,0', 10, NULL, NULL, '395,395,395,395', 397, '2504,0,0,0', NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1338, 'Bronze warhammer', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1339, 'Steel warhammer', 'I don\'t think it\'s intended for joinery.', 1, NULL, 256, 384, NULL, NULL, 832, 283, NULL, NULL, NULL, 808, 823, 819, 1210, 820, 821, 822, 1430, 3, 6, NULL, '-4,-4,18,-4,0,0,0,0,0,0,0,16,0,0,0', 10, NULL, NULL, '395,395,395,395', 397, '2504,0,0,0', '{0,5}', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1340, 'Steel warhammer', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 283, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1341, 'Black warhammer', 'I don\'t think it\'s intended for joinery.', 1, NULL, 509, 764, NULL, NULL, 1274, 562, NULL, NULL, NULL, 808, 823, 819, 1210, 820, 821, 822, 1430, 3, 6, NULL, '-4,-4,22,-4,0,0,0,0,0,0,0,19,0,0,0', 10, NULL, NULL, '395,395,395,395', 397, '2504,0,0,0', '{0,10}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1342, 'Black warhammer', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 562, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1343, 'Mithril warhammer', 'I don\'t think it\'s intended for joinery.', 1, NULL, 863, 1294, NULL, NULL, 2158, 1071, NULL, NULL, NULL, 808, 823, 819, 1210, 820, 821, 822, 1430, 3, 6, NULL, '-4,-4,25,-4,0,0,0,0,0,0,0,20,0,0,0', 10, NULL, NULL, '395,395,395,395', 397, '2504,0,0,0', '{0,20}', 1.5, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1344, 'Mithril warhammer', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1071, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1345, 'Adamant warhammer', 'I don\'t think it\'s intended for joinery.', 1, NULL, 2142, 3213, NULL, NULL, 5356, 2996, NULL, NULL, NULL, 808, 823, 819, 1210, 820, 821, 822, 1430, 3, 6, NULL, '-4,-4,33,-4,0,0,0,0,0,0,0,31,0,0,0', 10, NULL, NULL, '395,395,395,395', 397, '2504,0,0,0', '{0,30}', 2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1346, 'Adamant warhammer', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2996, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1347, 'Rune warhammer', 'I don\'t think it\'s intended for joinery.', 1, 1, 16600, 24900, NULL, NULL, 41000, 24600, NULL, NULL, NULL, 808, 823, 819, 1210, 820, 821, 822, 1430, 3, 6, NULL, '-4,-4,53,-4,0,0,0,0,0,0,0,48,0,0,0', 10, NULL, NULL, '395,395,395,395', 397, '2504,0,0,0', '{0,40}', 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1348, 'Rune warhammer', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 24600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1349, 'Iron axe', 'A woodcutter\'s hatchet.', 1, NULL, 22, 33, NULL, NULL, 56, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '-2,5,3,0,0,0,1,0,0,0,0,7,0,0,0', 2, NULL, NULL, '395,395,401,395', 397, NULL, NULL, 1.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1350, 'Iron axe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1351, 'Bronze axe', 'A woodcutter\'s hatchet.', 1, NULL, 6, 9, NULL, NULL, 20, 44, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2586, 3, 5, NULL, '-2,4,2,0,0,0,1,0,0,0,0,5,0,0,0', 2, NULL, NULL, '395,395,401,395', 397, NULL, NULL, 1.35, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1352, 'Bronze axe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 44, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1353, 'Steel axe', 'A woodcutter\'s hatchet.', 1, NULL, 80, 120, NULL, NULL, 200, 36, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2586, 3, 5, NULL, '-2,8,6,0,0,0,1,0,0,0,0,9,0,0,0', 2, NULL, NULL, '395,395,401,395', 397, NULL, '{0,5}', 1.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1354, 'Steel axe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 36, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1355, 'Mithril axe', 'A powerful hatchet.', 1, NULL, 208, 312, NULL, NULL, 660, 141, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2586, 3, 5, NULL, '-2,12,10,0,0,0,1,0,0,0,0,13,0,0,0', 2, NULL, NULL, '395,395,401,395', 397, NULL, '{0,20}', 1.1, 100, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(1356, 'Mithril axe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 141, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1357, 'Adamant axe', 'A powerful hatchet.', 1, NULL, 512, 768, NULL, NULL, 1625, 592, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2586, 3, 5, NULL, '-2,17,15,0,0,0,1,0,0,0,0,19,0,0,0', 2, NULL, NULL, '395,395,401,395', 397, NULL, '{0,30}-{8,31}', 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1358, 'Adamant axe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 592, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1359, 'Rune axe', 'A powerful hatchet.', 1, NULL, 5120, 7680, NULL, NULL, NULL, 7495, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2586, 3, NULL, NULL, '-2,26,24,0,0,0,1,0,0,0,0,29,0,0,0', 2, NULL, NULL, '395,395,401,395', 397, NULL, '{0,40}-{8,41}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1360, 'Rune axe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7495, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1361, 'Black axe', 'A sinister looking hatchet.', 1, NULL, 153, 230, NULL, NULL, NULL, 335, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2586, 3, 5, NULL, '-2,10,8,0,0,0,1,0,0,0,0,12,0,0,0', 2, NULL, NULL, '395,395,401,395', 397, NULL, '{0,10}', 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1362, 'Black axe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 335, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1363, 'Iron battleaxe', 'A vicious looking axe.', 1, NULL, 72, 109, NULL, NULL, 182, 21, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2586, 3, 6, NULL, '-2,8,5,0,0,0,0,0,0,-1,0,13,0,0,0', 2, NULL, NULL, '395,395,401,395', 397, NULL, NULL, 2.7, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1364, 'Iron battleaxe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 21, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1365, 'Steel battleaxe', 'A vicious looking axe.', 1, NULL, 260, 390, NULL, NULL, 650, 208, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2586, 3, 6, NULL, '-2,16,11,0,0,0,0,0,0,-1,0,20,0,0,0', 2, NULL, NULL, '395,395,401,395', 397, NULL, '{0,5}', 2.7, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1366, 'Steel battleaxe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 208, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1367, 'Black battleaxe', 'A vicious looking axe.', 1, NULL, 499, 748, NULL, NULL, 1248, 556, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2586, 3, 6, NULL, '-2,20,15,0,0,0,0,0,0,-1,0,24,0,0,0', 2, NULL, NULL, '395,395,401,395', 397, NULL, '{0,10}', 2.7, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1368, 'Black battleaxe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 556, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1369, 'Mithril battleaxe', 'A vicious looking axe.', 1, NULL, 676, 1014, NULL, NULL, 1690, 809, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2586, 3, 6, NULL, '-2,22,17,0,0,0,0,0,0,-1,0,29,0,0,0', 2, NULL, NULL, '395,395,401,395', 397, NULL, '{0,20}', 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1370, 'Mithril battleaxe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 809, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1371, 'Adamant battleaxe', 'A vicious looking axe.', 1, NULL, 1664, 2496, NULL, NULL, 4160, 2311, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2586, 3, 6, NULL, '-2,31,26,0,0,0,0,0,0,-1,0,41,0,0,0', 2, NULL, NULL, '395,395,401,395', 397, NULL, '{0,30}', 3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1372, 'Adamant battleaxe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2311, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1373, 'Rune battleaxe', 'A vicious looking axe.', 1, 1, 16640, 24960, NULL, NULL, NULL, 24800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2586, 3, 6, NULL, '-2,48,43,0,0,0,0,0,0,-1,0,64,0,0,0', 2, NULL, NULL, '395,395,401,395', 397, NULL, '{0,40}', 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1374, 'Rune battleaxe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 24800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1375, 'Bronze battleaxe', 'A vicious looking axe.', 1, NULL, 20, 31, NULL, NULL, 52, 15, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2586, 3, 6, NULL, '-2,6,3,0,0,0,0,0,0,-1,0,9,0,0,0', 2, NULL, NULL, '395,395,401,395', 397, NULL, NULL, 2.7, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1376, 'Bronze battleaxe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 15, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1377, 'Dragon battleaxe', 'A vicious looking axe.', 1, 1, 80000, 120000, NULL, NULL, 200000, 123200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2586, 3, 6, NULL, '-2,70,65,0,0,0,0,0,0,-1,0,85,0,0,0', 2, 1, NULL, '395,395,401,395', 397, NULL, '{0,60}', 2.7, 10, NULL, NULL, NULL, NULL, NULL, 0), +(1378, 'Dragon battleaxe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 123200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 397, NULL, '{0,60}', 2.7, 10, NULL, NULL, NULL, NULL, NULL, 0), +(1379, 'Staff', 'It\'s a slightly magical stick.', 1, NULL, 6, 9, NULL, NULL, 15, 37, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '0,-1,7,4,0,2,3,1,4,0,0,3,0,0,0', 1, NULL, NULL, '419,419,419,419', 420, '2555,0,0,0', NULL, 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1380, 'Staff', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 37, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1381, 'Staff of air', 'A Magical staff.', 1, NULL, 600, 900, NULL, NULL, 1500, 784, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '0,-1,7,10,0,2,3,1,10,0,0,3,0,0,0', 1, NULL, NULL, '419,419,419,419', 420, '2555,0,0,0', NULL, 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1382, 'Staff of air', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 784, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1383, 'Staff of water', 'A Magical staff.', 1, NULL, 600, 900, NULL, NULL, 1500, 890, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '0,-1,7,10,0,2,3,1,10,0,0,3,0,0,0', 1, NULL, NULL, '419,419,419,419', 420, '2555,0,0,0', NULL, 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1384, 'Staff of water', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 890, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1385, 'Staff of earth', 'A Magical staff.', 1, NULL, 600, 900, NULL, NULL, 1500, 879, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '1,-1,9,10,0,2,3,1,10,0,0,5,0,0,0', 1, NULL, NULL, '419,419,419,419', 420, '2555,0,0,0', NULL, 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1386, 'Staff of earth', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 879, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1387, 'Staff of fire', 'A Magical staff.', 1, NULL, 600, 900, NULL, NULL, 1500, 1330, NULL, NULL, NULL, 809, 1209, 1146, 1210, 1206, 1207, 1208, 1426, 3, 5, NULL, '3,-1,9,10,0,2,3,1,10,0,0,6,0,0,0', 1, NULL, NULL, '419,419,419,419', 420, '2555,0,0,0', NULL, 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1388, 'Staff of fire', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1330, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1389, 'Magic staff', 'A Magical staff.', 1, NULL, 80, 120, NULL, NULL, 200, 58, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '2,-1,10,10,0,2,3,1,10,0,0,7,0,0,0', 1, NULL, NULL, '419,419,419,419', 420, '2555,0,0,0', NULL, 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1390, 'Magic staff', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 58, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1391, 'Battlestaff', 'It\'s a slightly magical stick.', 1, NULL, 2800, 4200, NULL, NULL, 7000, 7963, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '7,-1,25,10,0,2,3,1,10,0,0,32,0,0,0', 1, NULL, NULL, '419,419,419,419', 420, '2555,0,0,0', '{0,30}-{6,30}', 2.25, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1392, 'Battlestaff', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7963, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1393, 'Fire battlestaff', 'It\'s a slightly magical stick.', 1, NULL, 6200, 9300, NULL, NULL, 19600, 9113, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '7,-1,28,10,0,2,3,1,10,0,0,35,0,0,0', 1, NULL, NULL, '419,419,419,419', 420, '2555,0,0,0', '{0,30}-{6,30}', 2.25, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1394, 'Fire battlestaff', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 9113, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1395, 'Water battlestaff', 'It\'s a slightly magical stick.', 1, NULL, 6200, 9300, NULL, NULL, NULL, 9122, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '7,-1,28,10,0,2,3,1,10,0,0,35,0,0,0', 1, NULL, NULL, '419,419,419,419', 420, '2555,0,0,0', '{0,30}-{6,30}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1396, 'Water battlestaff', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 9122, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1397, 'Air battlestaff', 'It\'s a slightly magical stick.', 1, NULL, 6200, 9300, NULL, NULL, 7000, 8982, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '7,-1,28,10,0,2,3,1,10,0,0,35,0,0,0', 1, NULL, NULL, '419,419,419,419', 420, '2555,0,0,0', '{0,30}-{6,30}', 2.25, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1398, 'Air battlestaff', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8982, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1399, 'Earth battlestaff', 'It\'s a slightly magical stick.', 1, NULL, 6200, 9300, NULL, NULL, 1500, 9041, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '7,-1,28,10,0,2,3,1,10,0,0,35,0,0,0', 1, NULL, NULL, '419,419,419,419', 420, '2555,0,0,0', '{0,30}-{6,30}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1400, 'Earth battlestaff', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 9041, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1401, 'Mystic fire staff', 'It\'s a slightly magical stick.', 1, NULL, 17000, 25500, NULL, NULL, NULL, 25400, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '10,-1,40,10,0,2,3,1,10,0,0,50,0,0,0', 1, NULL, NULL, '419,419,419,419', 420, '2555,0,0,0', '{0,40}-{6,40}', 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1402, 'Mystic fire staff', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 25400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1403, 'Mystic water staff', 'It\'s a slightly magical stick.', 1, NULL, 17000, 25500, NULL, NULL, NULL, 24800, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '10,-1,40,10,0,2,3,1,10,0,0,50,0,0,0', 1, NULL, NULL, '419,419,419,419', 420, '2555,0,0,0', '{0,40}-{6,40}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1404, 'Mystic water staff', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 24800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1405, 'Mystic air staff', 'It\'s a slightly magical stick.', 1, NULL, 17000, 25500, NULL, NULL, NULL, 25100, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '10,-1,40,10,0,2,3,1,10,0,0,50,0,0,0', 1, NULL, NULL, '419,419,419,419', 420, '2555,0,0,0', '{0,40}-{6,40}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1406, 'Mystic air staff', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 25100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1407, 'Mystic earth staff', 'It\'s a slightly magical stick.', 1, NULL, 17000, 25500, NULL, NULL, 40000, 25400, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '10,-1,40,10,0,2,3,1,10,0,0,50,0,0,0', 1, NULL, NULL, '419,419,419,419', 420, '2555,0,0,0', '{0,40}-{6,40}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1408, 'Mystic earth staff', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 25400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1409, 'Iban\'s staff', 'An ancient staff, formerly the property of Iban.', NULL, NULL, 17000, 25500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '10,-1,40,10,0,2,3,1,10,0,0,50,0,0,0', 1, NULL, NULL, '419,419,419,419', 420, '2555,0,0,0', NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1410, 'Iban\'s staff', 'An ancient staff, formerly the property of Iban.', NULL, NULL, 17000, 25500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '10,-1,40,10,0,2,3,1,10,0,0,50,0,0,0', NULL, NULL, NULL, NULL, NULL, '2555,0,0,0', NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1412, 'Farmer\'s fork', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1413, 'Halberd', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1414, 'Halberd', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1415, 'Warhammer', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2504,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1416, 'Warhammer', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1417, 'Javelin', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1418, 'Javelin', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1419, 'Scythe', 'It\'s a Scythe.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 847, 823, 819, 824, 820, 821, 822, 1383, 3, 7, NULL, '3,8,3,0,0,0,3,1,0,0,0,10,0,0,0', 22, NULL, 1, '382,382,382,382', 383, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1420, 'Iron mace', 'A spiky mace.', 1, NULL, 25, 37, NULL, NULL, 80, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '4,-2,9,0,0,0,0,0,0,0,0,7,1,0,0', 8, NULL, NULL, '401,401,400,401', 403, NULL, NULL, 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1421, 'Iron mace', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1422, 'Bronze mace', 'A spiky mace.', 1, NULL, 7, 10, NULL, NULL, 18, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '1,-2,6,0,0,0,0,0,0,0,0,5,1,0,0', 8, NULL, NULL, '401,401,400,401', 403, NULL, NULL, 1.79, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1423, 'Bronze mace', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1424, 'Steel mace', 'A spiky mace.', 1, NULL, 90, 135, NULL, NULL, 225, 31, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '7,-2,13,0,0,0,0,0,0,0,0,11,2,0,0', 8, NULL, NULL, '401,401,400,401', 403, NULL, '{0,5}', 1.79, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1425, 'Steel mace', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 31, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1426, 'Black mace', 'A spiky mace.', 1, NULL, 172, 258, NULL, NULL, NULL, 954, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '8,-2,16,0,0,0,0,0,0,0,0,13,2,0,0', 8, NULL, NULL, '401,401,400,401', 403, NULL, '{0,10}', 1.79, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1427, 'Black mace', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 954, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1428, 'Mithril mace', 'A spiky mace.', 1, NULL, 234, 351, NULL, NULL, 585, 157, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '11,-2,18,0,0,0,0,0,0,0,0,16,3,0,0', 8, NULL, NULL, '401,401,400,401', 403, NULL, '{0,20}', 1.5, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1429, 'Mithril mace', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 157, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1430, 'Adamant mace', 'A spiky mace.', 1, NULL, 576, 864, NULL, NULL, 1440, 673, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '13,-2,25,0,0,0,0,0,0,0,0,23,3,0,0', 8, NULL, NULL, '401,401,400,401', 403, NULL, '{0,30}', 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1431, 'Adamant mace', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 673, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1432, 'Rune mace', 'A spiky mace.', 1, 1, 5760, 8640, NULL, NULL, 14400, 8380, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '20,-2,39,0,0,0,0,0,0,0,0,36,4,0,0', 8, NULL, NULL, '401,401,400,401', 403, NULL, '{0,40}', 1.79, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1433, 'Rune mace', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8380, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1434, 'Dragon mace', 'A spiky mace.', 1, 1, 20000, 30000, NULL, NULL, 50000, 29300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '40,-2,60,0,0,0,0,0,0,0,0,55,5,0,0', 8, 1, NULL, '401,401,400,401', 403, NULL, '{0,60}', 1.8, 10, NULL, NULL, NULL, NULL, NULL, 0), +(1435, 'Dragon mace', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 29300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{0,60}', 1.8, 10, NULL, NULL, NULL, NULL, NULL, 0), +(1436, 'Rune essence', 'An uncharged Rune Stone.', 1, NULL, 1, 2, NULL, NULL, 1, 40, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(1437, 'Rune essence', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 40, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(1438, 'Air talisman', 'A mysterious power emanates from the talisman...', 1, NULL, 1, 2, NULL, NULL, 50, 404, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1439, 'Air talisman', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 404, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1440, 'Earth talisman', 'A mysterious power emanates from the talisman...', 1, NULL, 1, 2, NULL, NULL, 50, 785, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{9,20}', NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1441, 'Earth talisman', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 785, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1442, 'Fire talisman', 'A mysterious power emanates from the talisman...', 1, NULL, 1, 2, NULL, NULL, 50, 4140, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{14,20}', NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1443, 'Fire talisman', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4140, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1444, 'Water talisman', 'A mysterious power emanates from the talisman...', 1, NULL, 1, 2, NULL, NULL, 50, 7975, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{5,20}', NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1445, 'Water talisman', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7975, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1446, 'Body talisman', 'A mysterious power emanates from the talisman...', 1, NULL, 1, 2, NULL, NULL, 50, 1373, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{20,20}', NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1447, 'Body talisman', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1373, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1448, 'Mind talisman', 'A mysterious power emanates from the talisman...', 1, NULL, 1, 2, NULL, NULL, 50, 285, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{2,20}', NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1449, 'Mind talisman', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 285, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1450, 'Blood talisman', 'A mysterious power emanates from the talisman...', 1, NULL, 1, 2, NULL, NULL, NULL, 3178, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{20,77}', NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1451, 'Blood talisman', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3178, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1452, 'Chaos talisman', 'A mysterious power emanates from the talisman...', 1, NULL, 1, 2, NULL, NULL, 125, 605, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{20,35}', NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1453, 'Chaos talisman', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 605, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1454, 'Cosmic talisman', 'A mysterious power emanates from the talisman...', 1, NULL, 1, 2, NULL, NULL, 125, 785, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{20,27}', NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1455, 'Cosmic talisman', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 785, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1456, 'Death talisman', 'A mysterious power emanates from the talisman...', 1, NULL, 1, 2, NULL, NULL, NULL, 2501, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{20,65}', NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1457, 'Death talisman', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2501, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1458, 'Law talisman', 'A mysterious power emanates from the talisman...', 1, NULL, 1, 2, NULL, NULL, 125, 1219, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{20,54}', NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1459, 'Law talisman', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1219, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1461, 'Soul talisman', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1462, 'Nature talisman', 'A mysterious power emanates from the talisman...', 1, NULL, 1, 2, NULL, NULL, 125, 1596, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{20,44}', NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1463, 'Nature talisman', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1596, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1464, 'Archery ticket', 'I can exchange this for equipment.', 1, NULL, 10, 15, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1465, 'Weapon poison', 'For use on daggers and projectiles.', 1, NULL, 57, 86, NULL, NULL, NULL, 36, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1467, 'Damp sticks', 'Some damp wooden sticks.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1468, 'Dry sticks', 'Some dry wooden sticks.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1469, 'Broken glass', 'Smashed glass.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1470, 'Red bead', 'A small round red bead.', 1, NULL, 1, 2, NULL, NULL, NULL, 169, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1471, 'Red bead', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 169, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1472, 'Yellow bead', 'A small round yellow bead.', 1, NULL, 1, 2, NULL, NULL, NULL, 249, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1473, 'Yellow bead', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 249, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1474, 'Black bead', 'A small round black bead.', 1, NULL, 1, 2, NULL, NULL, NULL, 229, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1475, 'Black bead', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 229, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1476, 'White bead', 'A small round white bead.', 1, NULL, 1, 2, NULL, NULL, NULL, 1530, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1477, 'White bead', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1530, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1478, 'Amulet of accuracy', 'Wizard Mizgog sells these aim-enhancing amulets.', 1, NULL, 40, 60, NULL, NULL, 1000, 2870, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '4,4,4,4,4,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1479, 'Amulet of accuracy', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2870, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1481, 'Orb of light', 'A magical sphere that glimmers within.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1482, 'Orb of light', 'A magical sphere that glimmers within.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1483, 'Orb of light', 'A magical sphere that glimmers within.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1484, 'Orb of light', 'A magical sphere that glimmers within.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1485, 'Damp cloth', 'A damp, wet cloth.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1486, 'Piece of railing', 'A broken piece of railing.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1487, 'Unicorn horn', 'This horn has restorative properties.', 1, NULL, 8, 12, NULL, NULL, NULL, 1159, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1488, 'Paladin\'s badge', 'A coat of arms of the Ardougne Paladins.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1489, 'Paladin\'s badge', 'A coat of arms of the Ardougne Paladins.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1490, 'Paladin\'s badge', 'A coat of arms of the Ardougne Paladins.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1491, 'Witch\'s cat', 'On the ground: Curiosity has yet to kill this one...', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1492, 'Doll of iban', 'A simple doll with Iban\'s likeness.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1493, 'Old journal', 'An account of the last times of someone.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1494, 'History of iban', 'The tale of Iban.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1495, 'Klank\'s gauntlets', 'Strong dwarvish gloves.', NULL, NULL, 2, 3, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '2,2,2,0,0,8,9,7,0,0,5,2,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1496, 'Iban\'s dove', 'I thought you only saw these in pairs?', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1497, 'Amulet of othanian', 'A mystical demonic amulet.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1498, 'Amulet of doomion', 'A mystical demonic amulet.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1499, 'Amulet of holthion', 'A mystical demonic amulet.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1500, 'Iban\'s shadow', 'A strange dark liquid.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1501, 'Dwarf brew', 'Smells stronger than most spirits.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1502, 'Iban\'s ashes', 'The burnt remains of Iban.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.056, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1503, 'Warrant', 'A search warrant for a house in West Ardougne.', NULL, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1504, 'Hangover cure', 'It doesn\'t look very tasty.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1505, 'A magic scroll', 'Maybe I should read this...', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1506, 'Gas mask', 'Stops me from breathing nasty stuff!', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.25, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1507, 'A small key', 'Quite a small key (Plague City).', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1508, 'A scruffy note', 'It seems to say \"hongorer lure\"...', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1510, 'Picture', 'A picture of a lady called Elena.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1511, 'Logs', 'A number of wooden logs.', 1, NULL, 1, 2, NULL, NULL, 4, 279, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(1512, 'Logs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 279, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(1513, 'Magic logs', 'Logs cut from a magic tree.', 1, NULL, 128, 192, NULL, NULL, NULL, 1581, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(1514, 'Magic logs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1581, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(1515, 'Yew logs', 'Logs cut from a yew tree.', 1, NULL, 64, 96, NULL, NULL, NULL, 532, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(1516, 'Yew logs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 532, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(1517, 'Maple logs', 'Logs cut from a maple tree.', 1, NULL, 32, 48, NULL, NULL, NULL, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(1518, 'Maple logs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(1519, 'Willow logs', 'Logs cut from a willow tree.', 1, NULL, 16, 24, NULL, NULL, NULL, 11, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(1520, 'Willow logs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 11, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(1521, 'Oak logs', 'Logs cut from an Oak Tree.', 1, NULL, 8, 12, NULL, NULL, NULL, 153, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(1522, 'Oak logs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 153, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(1523, 'Lockpick', 'For picking tough locks.', 1, NULL, 8, 12, NULL, NULL, 20, 1311, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1524, 'Lockpick', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1311, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1525, 'Grimy snake weed', 'I need to clean this herb before I can use it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1526, 'Clean snake weed', 'A fresh herb.', NULL, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1527, 'Grimy ardrigal', 'I need to clean this herb before I can use it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1528, 'Clean ardrigal', 'A fresh herb.', NULL, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1529, 'Grimy sito foil', 'I need to clean this herb before I can use it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1530, 'Clean sito foil', 'A fresh herb.', NULL, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1531, 'Grimy volencia moss', 'I need to clean this herb before I can use it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1532, 'Clean volencia moss', 'A fresh herb.', NULL, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1533, 'Grimy rogue\'s purse', 'I need to clean this herb before I can use it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1534, 'Clean rogue\'s purse', 'A fresh herb.', NULL, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1535, 'Map part', 'A piece of map.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1536, 'Map part', 'A piece of map.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1537, 'Map part', 'A piece of map.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1538, 'Crandor map', 'A map of the route to Crandor.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1539, 'Steel nails', 'Keeps things in place fairly permanently.', 1, NULL, 20, 31, NULL, NULL, 52, 59, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(1540, 'Anti-dragon shield', 'This provides partial protection from dragon-breath attacks.', 1, NULL, 8, 12, NULL, NULL, NULL, 637, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,0,0,7,9,8,2,8,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1541, 'Anti-dragon shield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 637, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1542, 'Maze key', 'A key to Melzar\'s Maze.', NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1549, 'Stake', 'A very pointy stick.', NULL, NULL, NULL, NULL, 1, 'You can get another from Dr Harlow in the Blue Moon Inn of Varrock.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1550, 'Garlic', 'Deters vampires.', 1, NULL, 1, 1, NULL, NULL, NULL, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1551, 'Garlic', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1552, 'Doogle sardine', 'Sardine flavoured with doogle leaves.', NULL, NULL, 4, 6, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1555, 'Pet kitten', 'Inventory: This kitten seems to like you. (Kitten)This cat definitely likes you. (Cat)This cat is so well fed it can hardly move. (Overgrown)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1556, 'Pet kitten', 'Inventory: This kitten seems to like you. (Kitten)This cat definitely likes you. (Cat)This cat is so well fed it can hardly move. (Overgrown)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1557, 'Pet kitten', 'Inventory: This kitten seems to like you. (Kitten)This cat definitely likes you. (Cat)This cat is so well fed it can hardly move. (Overgrown)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1558, 'Pet kitten', 'Inventory: This kitten seems to like you. (Kitten)This cat definitely likes you. (Cat)This cat is so well fed it can hardly move. (Overgrown)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1559, 'Pet kitten', 'Inventory: This kitten seems to like you. (Kitten)This cat definitely likes you. (Cat)This cat is so well fed it can hardly move. (Overgrown)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1560, 'Pet kitten', 'Inventory: This kitten seems to like you. (Kitten)This cat definitely likes you. (Cat)This cat is so well fed it can hardly move. (Overgrown)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1561, 'Pet cat', 'Inventory: This kitten seems to like you. (Kitten)This cat definitely likes you. (Cat)This cat is so well fed it can hardly move. (Overgrown)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1562, 'Pet cat', 'Inventory: This kitten seems to like you. (Kitten)This cat definitely likes you. (Cat)This cat is so well fed it can hardly move. (Overgrown)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1563, 'Pet cat', 'Inventory: This kitten seems to like you. (Kitten)This cat definitely likes you. (Cat)This cat is so well fed it can hardly move. (Overgrown)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1564, 'Pet cat', 'Inventory: This kitten seems to like you. (Kitten)This cat definitely likes you. (Cat)This cat is so well fed it can hardly move. (Overgrown)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1565, 'Pet cat', 'Inventory: This kitten seems to like you. (Kitten)This cat definitely likes you. (Cat)This cat is so well fed it can hardly move. (Overgrown)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1566, 'Pet cat', 'Inventory: This kitten seems to like you. (Kitten)This cat definitely likes you. (Cat)This cat is so well fed it can hardly move. (Overgrown)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1567, 'Overgrown cat', 'Inventory: This kitten seems to like you. (Kitten)This cat definitely likes you. (Cat)This cat is so well fed it can hardly move. (Overgrown)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1568, 'Overgrown cat', 'Inventory: This kitten seems to like you. (Kitten)This cat definitely likes you. (Cat)This cat is so well fed it can hardly move. (Overgrown)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1569, 'Overgrown cat', 'Inventory: This kitten seems to like you. (Kitten)This cat definitely likes you. (Cat)This cat is so well fed it can hardly move. (Overgrown)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1570, 'Overgrown cat', 'Inventory: This kitten seems to like you. (Kitten)This cat definitely likes you. (Cat)This cat is so well fed it can hardly move. (Overgrown)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1571, 'Overgrown cat', 'Inventory: This kitten seems to like you. (Kitten)This cat definitely likes you. (Cat)This cat is so well fed it can hardly move. (Overgrown)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1572, 'Overgrown cat', 'Inventory: This kitten seems to like you. (Kitten)This cat definitely likes you. (Cat)This cat is so well fed it can hardly move. (Overgrown)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1573, 'Doogle leaves', 'A tasty herb good for seasoning.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1575, 'Cat training medal', 'For feline training expertise.', NULL, NULL, 140, 210, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1577, 'Pete\'s candlestick', 'Candlestick used during Heroes\' Quest.', 1, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1578, 'Pete\'s candlestick', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1579, 'Thieves\' armband', 'This denotes a Master Thief.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1580, 'Ice gloves', 'These will keep my hands cold!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,0,0,0,3,4,0,2,2,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1581, 'Blamish snail slime', 'Yuck.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1582, 'Blamish oil', 'Made from the finest snail slime.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1583, 'Fire feather', 'Firebird feather.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1584, 'Id papers', 'Apparently my name is Hartigan', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1585, 'Oily fishing rod', 'Useful for catching lava eels.', NULL, NULL, 6, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1586, 'Miscellaneous key', 'This is of use in completing Heroes\' Quest. (Heroes\' Quest)', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.01, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1587, 'Miscellaneous key', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1588, 'Grips\' key ring', 'The key I got from Grip. (Heroes\' Quest)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1590, 'Dusty key', 'I wonder what this unlocks. (Heroes\' Quest)', NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1591, 'Jail key', 'Key to a cell. (Heroes\' Quest)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1592, 'Ring mould', 'Used to make gold rings.', 1, NULL, 2, 3, NULL, NULL, 5, 316, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1593, 'Ring mould', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 316, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1594, 'Unholy mould', 'Used to make unholy symbols.', NULL, NULL, 80, 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1595, 'Amulet mould', 'Used to make gold amulets.', 1, NULL, 2, 3, NULL, NULL, 5, 288, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1596, 'Amulet mould', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 288, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1597, 'Necklace mould', 'Used to make gold necklaces.', 1, NULL, 2, 3, NULL, NULL, 5, 269, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1598, 'Necklace mould', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 269, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1599, 'Holy mould', 'Used to make holy symbols of Saradomin.', 1, NULL, 2, 3, NULL, NULL, 5, 504, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1600, 'Holy mould', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 504, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1601, 'Diamond', 'This looks valuable.', 1, NULL, 800, 1200, NULL, NULL, NULL, 14800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1602, 'Diamond', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 14800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1603, 'Ruby', 'This looks valuable.', 1, NULL, 400, 600, NULL, NULL, 400, 1598, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1604, 'Ruby', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1598, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1605, 'Emerald', 'This looks valuable.', 1, NULL, 200, 300, NULL, NULL, 350, 853, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1606, 'Emerald', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 853, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1607, 'Sapphire', 'This looks valuable.', 1, NULL, 100, 150, NULL, NULL, 175, 520, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1608, 'Sapphire', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 520, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1609, 'Opal', 'A semi precious stone.', 1, NULL, 40, 60, NULL, NULL, NULL, 41, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1610, 'Opal', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 41, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1611, 'Jade', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1612, 'Jade', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1613, 'Red topaz', 'A semi precious stone.', 1, NULL, 80, 120, NULL, NULL, NULL, 103, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1614, 'Red topaz', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 103, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1615, 'Dragonstone', 'This looks valuable.', 1, NULL, 4000, 6000, NULL, NULL, 75000, 27400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1616, 'Dragonstone', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 27400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1617, 'Uncut diamond', 'An uncut diamond.', 1, NULL, 80, 120, NULL, NULL, NULL, 20000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, 300, NULL, NULL, 0), +(1618, 'Uncut diamond', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 20000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1619, 'Uncut ruby', 'An uncut ruby.', 1, NULL, 40, 60, NULL, NULL, NULL, 4970, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, 150, NULL, NULL, 0), +(1620, 'Uncut ruby', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4970, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1621, 'Uncut emerald', 'An uncut emerald.', 1, NULL, 20, 30, NULL, NULL, 50, 2621, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, 75, NULL, NULL, 0), +(1622, 'Uncut emerald', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2621, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1623, 'Uncut sapphire', 'An uncut sapphire.', 1, NULL, 10, 15, NULL, NULL, 25, 1851, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, 37, NULL, NULL, 0), +(1624, 'Uncut sapphire', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1851, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1625, 'Uncut opal', 'An uncut opal.', 1, NULL, 8, 12, NULL, NULL, NULL, 65, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1626, 'Uncut opal', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 65, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1627, 'Uncut jade', 'An uncut jade.', 1, NULL, 12, 18, NULL, NULL, NULL, 138, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1628, 'Uncut jade', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 138, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1629, 'Uncut red topaz', 'An uncut red topaz.', 1, NULL, 16, 24, NULL, NULL, NULL, 279, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1630, 'Uncut red topaz', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 279, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1631, 'Uncut dragonstone', 'An uncut dragonstone.', 1, NULL, 400, 600, NULL, NULL, 75000, 31700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, 100, NULL, NULL, 1500, NULL, NULL, 0), +(1632, 'Uncut dragonstone', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 31700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1633, 'Crushed gem', 'This gem is crushed and broken.', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1634, 'Crushed gem', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1635, 'Gold ring', 'A valuable ring.', 1, NULL, 140, 210, 1, NULL, NULL, 165, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1636, 'Gold ring', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 165, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1637, 'Sapphire ring', 'A valuable ring.', 1, NULL, 360, 540, NULL, NULL, NULL, 561, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1638, 'Sapphire ring', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 561, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1639, 'Emerald ring', 'A valuable ring.', 1, NULL, 510, 765, NULL, NULL, NULL, 884, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1640, 'Emerald ring', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 884, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1641, 'Ruby ring', 'A valuable ring.', 1, NULL, 810, 1215, NULL, NULL, 2025, 1110, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1642, 'Ruby ring', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1110, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1643, 'Diamond ring', 'A valuable ring.', 1, NULL, 1410, 2115, NULL, NULL, 3172, 4416, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1644, 'Diamond ring', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4416, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1645, 'Dragonstone ring', 'A valuable ring.', 1, NULL, 7050, 10575, NULL, NULL, 7750, 26700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1646, 'Dragonstone ring', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 26700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1649, 'Sapphire ring', 'A valuable ring.', 1, NULL, 360, 540, NULL, NULL, NULL, 547, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1650, 'Emerald ring', 'A valuable ring.', 1, NULL, 510, 765, NULL, NULL, NULL, 993, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1651, 'Ruby ring', 'A valuable ring.', 1, NULL, 810, 1215, NULL, NULL, 2025, 1125, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1652, 'Diamond ring', 'A valuable ring.', 1, NULL, 1410, 2115, NULL, NULL, 3172, 3622, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1653, 'Dragonstone ring', 'A valuable ring.', 1, NULL, 7050, 10575, NULL, NULL, 7750, 19606, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1654, 'Gold necklace', 'I wonder if this is valuable.', 1, NULL, 180, 270, NULL, NULL, 450, 185, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1655, 'Gold necklace', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 185, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1656, 'Sapphire necklace', 'I wonder if this is valuable.', 1, NULL, 420, 630, NULL, NULL, 945, 534, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1657, 'Sapphire necklace', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 534, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1658, 'Emerald necklace', 'I wonder if this is valuable.', 1, NULL, 570, 855, NULL, NULL, 1425, 781, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1659, 'Emerald necklace', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 781, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1660, 'Ruby necklace', 'I wonder if this is valuable.', 1, NULL, 870, 1305, NULL, NULL, 870, 1276, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1661, 'Ruby necklace', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1276, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1662, 'Diamond necklace', 'I wonder if this is valuable.', 1, NULL, 1470, 2205, NULL, NULL, 3307, 14300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1663, 'Diamond necklace', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 14300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1664, 'Dragon necklace', 'I wonder if this is valuable.', 1, NULL, 7350, 11025, NULL, NULL, NULL, 26000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1665, 'Dragon necklace', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 26000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1668, 'Sapphire necklace', 'I wonder if this is valuable.', 1, NULL, 420, 630, NULL, NULL, 945, 532, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1669, 'Emerald necklace', 'I wonder if this is valuable.', 1, NULL, 570, 855, NULL, NULL, 1425, 741, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1670, 'Ruby necklace', 'I wonder if this is valuable.', 1, NULL, 870, 1305, NULL, NULL, 870, 1194, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1671, 'Diamond necklace', 'I wonder if this is valuable.', 1, NULL, 1470, 2205, NULL, NULL, 3307, 9795, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1672, 'Dragon necklace', 'I wonder if this is valuable.', 1, NULL, 7350, 11025, NULL, NULL, NULL, 23010, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1673, 'Gold amulet', 'A plain gold amulet.', 1, NULL, 140, 210, NULL, NULL, 350, 172, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1674, 'Gold amulet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 172, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1675, 'Sapphire amulet', 'I wonder if I can get this enchanted.', 1, NULL, 360, 540, NULL, NULL, 810, 473, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1676, 'Sapphire amulet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 473, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1677, 'Emerald amulet', 'I wonder if I can get this enchanted.', 1, NULL, 510, 765, NULL, NULL, 1147, 695, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1678, 'Emerald amulet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 695, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1679, 'Ruby amulet', 'I wonder if I can get this enchanted.', 1, NULL, 810, 1215, 1, NULL, 2025, 1268, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1680, 'Ruby amulet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1268, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1681, 'Diamond amulet', 'I wonder if I can get this enchanted.', 1, NULL, 1410, 2115, NULL, NULL, 3307, 3359, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1682, 'Diamond amulet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3359, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1683, 'Dragonstone ammy', 'I wonder if I can get this enchanted.', 1, NULL, 7050, 10575, NULL, NULL, NULL, 26900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1684, 'Dragonstone ammy', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 26900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1687, 'Sapphire amulet', 'I wonder if I can get this enchanted.', 1, NULL, 360, 540, NULL, NULL, 810, 417, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1688, 'Emerald amulet', 'I wonder if I can get this enchanted.', 1, NULL, 510, 765, NULL, NULL, 1147, 648, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1689, 'Ruby amulet', 'I wonder if I can get this enchanted.', 1, NULL, 810, 1215, 1, NULL, 2025, 1098, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1690, 'Diamond amulet', 'I wonder if I can get this enchanted.', 1, NULL, 1410, 2115, NULL, NULL, 3307, 1993, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1691, 'Dragonstone ammy', 'I wonder if I can get this enchanted.', 1, NULL, 7050, 10575, NULL, NULL, NULL, 18436, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1692, 'Gold amulet', 'A plain gold amulet.', 1, NULL, 140, 210, NULL, NULL, 350, 137, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1693, 'Gold amulet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 137, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1694, 'Sapphire amulet', 'I wonder if I can get this enchanted.', 1, NULL, 360, 540, NULL, NULL, 810, 435, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1695, 'Sapphire amulet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 435, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1696, 'Emerald amulet', 'I wonder if I can get this enchanted.', 1, NULL, 510, 765, NULL, NULL, 1147, 659, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1697, 'Emerald amulet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 659, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1698, 'Ruby amulet', 'I wonder if I can get this enchanted.', 1, NULL, 810, 1215, 1, NULL, 2025, 1115, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1699, 'Ruby amulet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1115, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1700, 'Diamond amulet', 'I wonder if I can get this enchanted.', 1, NULL, 1410, 2115, NULL, NULL, 3307, 2706, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1701, 'Diamond amulet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2706, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1702, 'Dragonstone ammy', 'I wonder if I can get this enchanted.', 1, NULL, 7050, 10575, NULL, NULL, NULL, 27100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1703, 'Dragonstone ammy', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 27100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1704, 'Amulet of glory', 'Uncharged: A very powerful dragonstone amulet. 1-4 charges: A dragonstone amulet with X magic charges.', 1, NULL, 7050, 10575, NULL, NULL, NULL, 28000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '10,10,10,10,10,3,3,3,3,3,3,6,3,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1705, 'Amulet of glory', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 28000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1706, 'Amulet of glory(1)', 'Uncharged: A very powerful dragonstone amulet. 1-4 charges: A dragonstone amulet with X magic charges.', 1, NULL, 7050, 10575, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '10,10,10,10,10,3,3,3,3,3,3,6,3,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1707, 'Amulet of glory(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1708, 'Amulet of glory(2)', 'Uncharged: A very powerful dragonstone amulet. 1-4 charges: A dragonstone amulet with X magic charges.', 1, NULL, 7050, 10575, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '10,10,10,10,10,3,3,3,3,3,3,6,3,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1709, 'Amulet of glory(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1710, 'Amulet of glory(3)', 'Uncharged: A very powerful dragonstone amulet. 1-4 charges: A dragonstone amulet with X magic charges.', 1, NULL, 7050, 10575, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '10,10,10,10,10,3,3,3,3,3,3,6,3,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1711, 'Amulet of glory(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1712, 'Amulet of glory(4)', 'Uncharged: A very powerful dragonstone amulet. 1-4 charges: A dragonstone amulet with X magic charges.', 1, NULL, 7050, 10575, NULL, NULL, NULL, 29300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '10,10,10,10,10,3,3,3,3,3,3,6,3,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1713, 'Amulet of glory(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 29300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1714, 'Unstrung symbol', 'It needs a string so I can wear it.', 1, NULL, 80, 120, NULL, NULL, 200, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1715, 'Unstrung symbol', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1716, 'Unblessed symbol', 'A symbol of Saradomin.', 1, NULL, 80, 120, NULL, NULL, 120, 29, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1717, 'Unblessed symbol', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 29, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1718, 'Holy symbol', 'A blessed holy symbol of Saradomin.', 1, NULL, 120, 180, NULL, NULL, 300, 88, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '0,0,0,0,0,2,2,2,2,2,3,0,8,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1719, 'Holy symbol', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 88, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1720, 'Unstrung emblem', 'It needs a string so I can wear it.', 1, NULL, 80, 120, NULL, NULL, NULL, 178, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1721, 'Unstrung emblem', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 178, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1722, 'Unpowered symbol', 'An unholy symbol of Zamorak.', 1, NULL, 80, 120, NULL, NULL, 120, 24, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1723, 'Unpowered symbol', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 24, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1724, 'Unholy symbol', 'An unholy symbol of Zamorak.', 1, NULL, 80, 120, NULL, NULL, 135, 57, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '2,2,2,2,2,0,0,0,0,0,0,0,8,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1725, 'Amulet of strength', 'An enchanted ruby amulet.', 1, NULL, 810, 1215, NULL, NULL, NULL, 1247, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,10,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1726, 'Amulet of strength', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1247, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1727, 'Amulet of magic', 'An enchanted sapphire amulet of magic.', 1, NULL, 360, 540, NULL, NULL, 900, 519, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '0,0,0,10,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1728, 'Amulet of magic', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 519, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1729, 'Amulet of defence', 'An enchanted emerald amulet of protection.', 1, NULL, 510, 765, NULL, NULL, 1275, 721, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '0,0,0,0,0,7,7,7,7,7,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1730, 'Amulet of defence', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 721, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1731, 'Amulet of power', 'An enchanted diamond amulet of power.', 1, NULL, 1410, 2115, NULL, NULL, 3525, 2573, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '6,6,6,6,6,6,6,6,6,6,6,6,1,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(1732, 'Amulet of power', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2573, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1733, 'Needle', 'Used with a thread to make clothes.', 1, NULL, NULL, NULL, NULL, NULL, 1, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1734, 'Thread', 'Use with a needle to make clothes.', 1, NULL, 1, 2, NULL, NULL, 4, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1735, 'Shears', 'For shearing sheep.', 1, NULL, NULL, NULL, NULL, NULL, 1, 76, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1736, 'Shears', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 76, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1737, 'Wool', 'I think this came from a sheep.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.14, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1738, 'Wool', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1739, 'Cowhide', 'I should take this to the tannery.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 516, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1740, 'Cowhide', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 516, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1741, 'Leather', 'It\'s a piece of leather.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 638, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.25, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1742, 'Leather', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 638, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1743, 'Hard leather', 'It\'s a piece of hard leather.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 640, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3.1, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1744, 'Hard leather', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 640, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1745, 'Green d-leather', 'It\'s a piece of prepared green dragon hide.', 1, NULL, 20, 30, NULL, NULL, NULL, 2237, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3.1, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1746, 'Green d-leather', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2237, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1747, 'Black dragonhide', 'The scaly rough hide from a Black Dragon.', 1, NULL, 32, 48, NULL, NULL, NULL, 5802, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3.1, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1748, 'Black dragonhide', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5802, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1749, 'Red dragonhide', 'The scaly rough hide from a red dragon.', 1, NULL, 16, 24, NULL, NULL, NULL, 3539, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1750, 'Red dragonhide', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3539, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1751, 'Blue dragonhide', 'The scaly rough hide from a blue dragon.', 1, NULL, 16, 24, NULL, NULL, NULL, 2473, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3.1, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1752, 'Blue dragonhide', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2473, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1753, 'Green dragonhide', 'The scaly rough hide from a green dragon.', 1, NULL, 8, 12, NULL, NULL, NULL, 1933, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3.1, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1754, 'Green dragonhide', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1933, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1755, 'Chisel', 'Good for detailed crafting.', 1, NULL, 5, 8, NULL, NULL, 14, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1756, 'Chisel', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1757, 'Brown apron', 'A mostly clean apron.', 1, NULL, NULL, 1, NULL, NULL, 2, 74, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.45, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1758, 'Brown apron', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 74, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1759, 'Ball of wool', 'Spun from sheeps\' wool.', 1, NULL, 2, 3, NULL, NULL, NULL, 115, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1760, 'Ball of wool', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 115, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1761, 'Soft clay', 'Clay soft enough to mould.', 1, NULL, NULL, 1, NULL, NULL, NULL, 487, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1762, 'Soft clay', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 487, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1763, 'Red dye', 'A little bottle of red dye.', 1, NULL, 2, 3, NULL, NULL, 6, 1374, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1764, 'Red dye', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1374, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1765, 'Yellow dye', 'A little bottle of yellow dye.', 1, NULL, 2, 3, NULL, NULL, 6, 549, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1766, 'Yellow dye', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 549, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1767, 'Blue dye', 'A little bottle of blue dye', 1, NULL, 2, 3, NULL, NULL, 6, 642, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1768, 'Blue dye', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 642, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1769, 'Orange dye', 'A little bottle of orange dye.', 1, NULL, 2, 3, NULL, NULL, 6, 1258, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1770, 'Orange dye', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1258, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1771, 'Green dye', 'A little bottle of green dye.', 1, NULL, 2, 3, NULL, NULL, 6, 503, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1772, 'Green dye', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 503, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1773, 'Purple dye', 'A little bottle of purple dye.', 1, NULL, 2, 3, NULL, NULL, 6, 288, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1774, 'Purple dye', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 288, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1775, 'Molten glass', 'Hot glass ready to be blown into useful objects.', 1, NULL, 1, 1, NULL, NULL, NULL, 924, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1776, 'Molten glass', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 924, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1777, 'Bow string', 'I need a bow stave to attach this to.', 1, NULL, 4, 6, NULL, NULL, NULL, 223, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1778, 'Bow string', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 223, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1779, 'Flax', 'A plant cultivated for fibres (ground); I should use this with a spinning wheel (item).', 1, NULL, 2, 3, NULL, NULL, 73, 73, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(1780, 'Flax', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 73, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(1781, 'Soda ash', 'One of the ingredients for making glass.', 1, NULL, NULL, 1, NULL, NULL, NULL, 575, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.09, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1782, 'Soda ash', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 575, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1783, 'Bucket of sand', 'One of the ingredients for making glass.', 1, NULL, NULL, 1, NULL, NULL, NULL, 265, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.5, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1784, 'Bucket of sand', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 265, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1785, 'Glassblowing pipe', 'Used to form molten glass into useful items.', 1, NULL, 6, 9, NULL, NULL, 5, 195, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.05, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1786, 'Glassblowing pipe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 195, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1787, 'Unfired pot', 'I need to put this in a pottery oven.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 53, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1788, 'Unfired pot', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 53, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1789, 'Unfired pie dish', 'I need to put this in a pottery oven.', 1, NULL, 1, 1, NULL, NULL, NULL, 96, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1790, 'Unfired pie dish', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 96, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1791, 'Unfired bowl', 'I need to put this in a pottery oven.', 1, NULL, NULL, 1, NULL, NULL, 32, 194, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1792, 'Unfired bowl', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 194, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1793, 'Woad leaf', 'A slightly bluish leaf.', 1, NULL, NULL, NULL, NULL, NULL, 15, 57, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1794, 'Bronze wire', 'Useful for crafting items.', 1, NULL, 8, 12, NULL, NULL, NULL, 249, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1795, 'Bronze wire', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 249, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1796, 'Silver necklace', 'Anna\'s shiny silver coated necklace.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1797, 'Silver necklace', 'Anna\'s shiny silver coated necklace.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1798, 'Silver cup', 'Bob\'s shiny silver coated tea cup.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1799, 'Silver cup', 'Bob\'s shiny silver coated tea cup.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1800, 'Silver bottle', 'Carol\'s shiny silver coated bottle.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1801, 'Silver bottle', 'Carol\'s shiny silver coated bottle.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1802, 'Silver book', 'David\'s shiny silver coated book.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1803, 'Silver book', 'David\'s shiny silver coated book.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1804, 'Silver needle', 'Elizabeth\'s shiny silver coated needle.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1805, 'Silver needle', 'Elizabeth\'s shiny silver coated needle.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1806, 'Silver pot', 'Frank\'s shiny silver coated pot.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1807, 'Silver pot', 'Frank\'s shiny silver coated pot.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1808, 'Criminal\'s thread', 'Some (colour) thread found at the murder scene.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1809, 'Criminal\'s thread', 'Some (colour) thread found at the murder scene.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1810, 'Criminal\'s thread', 'Some (colour) thread found at the murder scene.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1811, 'Flypaper', 'A piece of fly paper. It\'s sticky.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1812, 'Pungent pot', 'A pot found at the murder scene, with a sickly odour.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1813, 'Criminal\'s dagger', 'A flimsy-looking dagger found at the crime scene./A flimsy looking dagger found at the crime scene coated with a thin layer of flour.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2517,2517,2500,2517', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1814, 'Criminal\'s dagger', 'A flimsy-looking dagger found at the crime scene./A flimsy looking dagger found at the crime scene coated with a thin layer of flour.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2517,2517,2500,2517', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1815, 'Killer\'s print', 'The fingerprints of the murderer.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1816, 'Anna\'s print', 'An imprint of Anna\'s fingerprint.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1817, 'Bob\'s print', 'An imprint of Bob\'s fingerprint.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1818, 'Carol\'s print', 'An imprint of Carol\'s fingerprint.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1819, 'David\'s print', 'An imprint of David\'s fingerprint.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1820, 'Elizabeth\'s print', 'An imprint of Elizabeth\'s fingerprint.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1821, 'Frank\'s print', 'An imprint of Frank\'s fingerprint.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1822, 'Unknown print', 'An unidentified fingerprint taken from the murder weapon.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1823, 'Waterskin(4)', 'A full waterskin with four portions of water.', 1, NULL, 12, 18, NULL, NULL, 30, 184, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1824, 'Waterskin(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 184, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1825, 'Waterskin(3)', 'A nearly full waterskin with three portions of water.', 1, NULL, 12, 18, NULL, NULL, 30, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1826, 'Waterskin(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1827, 'Waterskin(2)', 'A half empty waterskin with two portions of water.', 1, NULL, 12, 18, NULL, NULL, 30, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1828, 'Waterskin(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1829, 'Waterskin(1)', 'A nearly empty waterskin with one portion of water.', 1, NULL, 12, 18, NULL, NULL, 30, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1830, 'Waterskin(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1831, 'Waterskin(0)', 'A completely empty waterskin - you\'ll need to fill it up.', 1, NULL, 12, 18, NULL, NULL, 30, 93, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1832, 'Waterskin(0)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 93, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1833, 'Desert shirt', 'A cool, light desert shirt.', 1, NULL, 16, 24, NULL, NULL, 40, 93, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1834, 'Desert shirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 93, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1835, 'Desert robe', 'A cool, light desert robe.', 1, NULL, 16, 24, NULL, NULL, 40, 74, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1836, 'Desert robe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 74, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1837, 'Desert boots', 'Comfortable desert shoes.', 1, NULL, 8, 12, NULL, NULL, 20, 257, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1838, 'Desert boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 257, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1839, 'Metal key', 'This key is crudely made. It came from the mining camp Mercenary Captain.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1840, 'Cell door key', 'A metallic key, usually used by prison guards. (Tourist Trap)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1841, 'Barrel', 'An empty barrel/A Splendid barrel.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 206, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1842, 'Ana in a barrel', 'Inventory: A mining barrel with Ana in it.While in the mine cart: It\'s Ana... in a barrel... in a mine cart.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 32, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1843, 'Wrought iron key', 'This key unlocks a very sturdy gate. Ana gave me this key. (Tourist Trap)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1844, 'Slave shirt', 'A filthy, smelly, flea infested shirt.', NULL, NULL, 16, 24, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1845, 'Slave robe', 'A filthy, smelly, flea infested robe.', NULL, NULL, 16, 24, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1846, 'Slave boots', 'A set of filthy, smelly, flea infested desert slave boots.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1847, 'Scrumpled paper', 'A piece of paper with barely legible writing - looks like a recipe!', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1848, 'Shantay disclaimer', 'Very important information.', NULL, NULL, NULL, 1, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1849, 'Prototype dart', 'A prototype throwing dart.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2547,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1850, 'Technical plans', 'Plans of a technical nature.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1851, 'Tenti pineapple', 'The most delicious of pineapples.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1852, 'Bedabin key', 'A key to the chest in Captain Siad\'s room.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1853, 'Prototype dart tip', 'A protoype dart tip - it looks deadly.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2547,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1854, 'Shantay pass', 'Allows you to pass through the Shantay pass into the Kharid Desert.', NULL, NULL, 2, 3, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1856, 'Guide book', 'A Tourist\'s Guide to Ardougne.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1857, 'Totem', 'The Rantuki tribe\'s totem.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1858, 'Address label', 'It says \'To Lord Handelmort, Handelmort Mansion\'.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1859, 'Raw ugthanki meat', 'I need to cook this first / Freshly cooked ugthanki meat.', 1, NULL, 2, 3, NULL, NULL, NULL, 486, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.75, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1860, 'Raw ugthanki meat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 486, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1861, 'Ugthanki meat', 'I need to cook this first / Freshly cooked ugthanki meat.', 1, NULL, 2, 3, NULL, NULL, NULL, 687, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.75, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1862, 'Ugthanki meat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 687, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1863, 'Pitta dough', 'I need to cook this.', 1, NULL, 1, 2, NULL, NULL, 9, 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.14, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1864, 'Pitta dough', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1865, 'Pitta bread', 'Nicely baked pitta bread. Needs more ingredients to make a kebab.', 1, NULL, 4, 6, NULL, NULL, NULL, 22, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1866, 'Pitta bread', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 22, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1868, 'Burnt pitta bread', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1869, 'Chopped tomato', 'A mixture of tomatoes in a bowl.', 1, NULL, 1, 1, NULL, NULL, NULL, 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1870, 'Chopped tomato', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1871, 'Chopped onion', 'A mixture of onions in a bowl.', 1, NULL, 1, 1, NULL, NULL, NULL, 142, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1872, 'Chopped onion', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 142, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1873, 'Chopped ugthanki', 'Strips of ugthanki meat in a bowl.', 1, NULL, 2, 3, NULL, NULL, NULL, 348, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1874, 'Chopped ugthanki', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 348, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1875, 'Onion & tomato', 'A mixture of chopped onions and tomatoes in a bowl', 1, NULL, 2, 3, NULL, NULL, NULL, 31, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1876, 'Onion & tomato', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 31, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1877, 'Ugthanki & onion', 'A mixture of chopped onions and ugthanki meat in a bowl.', 1, NULL, 2, 4, NULL, NULL, 26, 330, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1878, 'Ugthanki & onion', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 330, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1879, 'Ugthanki & tomato', 'A mixture of chopped tomatoes and ugthanki meat in a bowl.', 1, NULL, 2, 4, NULL, NULL, NULL, 331, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.25, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1880, 'Ugthanki & tomato', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 331, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1881, 'Kebab mix', 'A mixture of chopped tomatoes, onions and ugthanki meat in a bowl', 1, NULL, 3, 5, NULL, NULL, NULL, 412, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1882, 'Kebab mix', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 412, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1883, 'Ugthanki kebab', NULL, 1, NULL, 8, 12, NULL, NULL, NULL, 2027, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1884, 'Ugthanki kebab', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2027, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1885, 'Ugthanki kebab', NULL, 1, NULL, 8, 12, NULL, NULL, NULL, 1499, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1886, 'Ugthanki kebab', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1499, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1887, 'Cake tin', 'Useful for baking cakes.', 1, NULL, 4, 6, NULL, NULL, 10, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1888, 'Cake tin', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1889, 'Uncooked cake', 'Now all I need to do is cook it.', 1, NULL, 8, 12, NULL, NULL, NULL, 559, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1890, 'Uncooked cake', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 559, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1891, 'Cake', 'A plain sponge cake.', 1, NULL, NULL, NULL, NULL, NULL, 50, 155, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1892, 'Cake', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 155, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1893, '2/3 cake', 'A plain sponge cake.', 1, NULL, NULL, NULL, NULL, NULL, 50, 39, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1894, '2/3 cake', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 39, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1895, 'Slice of cake', 'A plain sponge cake.', 1, NULL, NULL, NULL, NULL, NULL, 50, 32, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1896, 'Slice of cake', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 32, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1897, 'Chocolate cake', 'This looks very tasty.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 416, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1898, 'Chocolate cake', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 416, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1899, '2/3 chocolate cake', 'This looks very tasty.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 181, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1900, '2/3 chocolate cake', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 181, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1901, 'Chocolate slice', 'This looks very tasty.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1902, 'Chocolate slice', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1904, 'Burnt cake', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1905, 'Asgarnian ale', 'Probably the finest readily-available ale in Asgarnia.', 1, NULL, NULL, 1, NULL, NULL, 3, 190, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1906, 'Asgarnian ale', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 190, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1907, 'Wizard\'s mind bomb', 'It\'s got strange bubbles in it.', 1, NULL, NULL, 1, NULL, NULL, 3, 171, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1908, 'Wizard\'s mind bomb', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 171, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1909, 'Greenman\'s ale', 'A glass of frothy ale.', 1, NULL, NULL, 1, NULL, NULL, 2, 828, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1910, 'Greenman\'s ale', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 828, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1911, 'Dragon bitter', 'A glass of bitter.', 1, NULL, NULL, 1, NULL, NULL, 2, 487, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1912, 'Dragon bitter', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 487, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1913, 'Dwarven stout', 'A pint of thick dark beer.', 1, NULL, NULL, 1, NULL, NULL, 3, 212, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1914, 'Dwarven stout', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 212, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1915, 'Grog', 'A murky glass full of your average, everyday pirate slosh.', 1, NULL, 1, 1, NULL, NULL, 3, 19, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1916, 'Grog', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 19, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(1917, 'Beer', 'A glass of frothy ale.', 1, NULL, NULL, 1, NULL, NULL, NULL, 202, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1918, 'Beer', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 202, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1919, 'Beer glass', 'I need to fill this with beer.', 1, NULL, NULL, 1, NULL, NULL, 1, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.05, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1920, 'Beer glass', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1921, 'Bowl of water', 'It\'s a bowl of water.', 1, NULL, 1, 2, NULL, NULL, NULL, 97, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1922, 'Bowl of water', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 97, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1923, 'Bowl', 'Useful for mixing things.', 1, NULL, 1, 2, NULL, NULL, 4, 34, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1924, 'Bowl', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 34, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1925, 'Bucket', 'It\'s an empty bucket.', 1, NULL, NULL, 1, NULL, NULL, 2, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1926, 'Bucket', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1927, 'Bucket of milk', 'It\'s a bucket of milk.', 1, NULL, 4, 7, NULL, NULL, 12, 103, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1928, 'Bucket of milk', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 103, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1929, 'Bucket of water', 'Common bucket: It\'s a bucket of water.2008 Easter event: It\'s a bucket of water from the Easter Bunny\'s warren. Regular bucket filled from Braindeath Island: It\'s a bucket of... water?', 1, NULL, 2, 3, NULL, NULL, NULL, 72, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1930, 'Bucket of water', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 72, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1931, 'Empty pot', 'This pot is empty.', 1, NULL, NULL, NULL, NULL, NULL, 1, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.45, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1932, 'Empty pot', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1933, 'Pot of flour', 'There is flour in this pot.', 1, NULL, 5, 8, NULL, NULL, 14, 172, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1934, 'Pot of flour', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 172, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1935, 'Jug', 'This jug is empty.', 1, NULL, NULL, NULL, NULL, NULL, 1, 29, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1936, 'Jug', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 29, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1937, 'Jug of water', 'It\'s full of water.', 1, NULL, NULL, NULL, NULL, NULL, 1, 87, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1938, 'Jug of water', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 87, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1939, 'Swamp tar', 'A foul smelling thick tar like substance.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 103, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1940, 'Raw swamp paste', 'A tar-like substance mixed with flour and warmed.', 1, NULL, 12, 18, NULL, NULL, 38, 342, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(1941, 'Swamp paste', 'A tar-like substance mixed with flour and warmed.', 1, NULL, 12, 18, NULL, NULL, 38, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1942, 'Potato', 'This could be used to make a good stew.', 1, NULL, 6, 9, NULL, NULL, 11, 91, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1943, 'Potato', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 91, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(1944, 'Egg', 'A nice fresh egg.', 1, NULL, 1, 2, NULL, NULL, 1, 99, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1945, 'Egg', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 99, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1946, 'Flour', 'There is flour in this pot.', 1, NULL, 5, 8, NULL, NULL, 14, 162, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1947, 'Grain', 'Some wheat heads.', 1, NULL, NULL, 1, NULL, NULL, 2, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.6, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1948, 'Grain', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1949, 'Chef\'s hat', 'What a silly hat.', 1, NULL, NULL, 1, NULL, NULL, 2, 233, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1950, 'Chef\'s hat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 233, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1951, 'Redberries', 'Very bright red berries.', 1, NULL, 1, 1, NULL, NULL, 3, 337, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1952, 'Redberries', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 337, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1953, 'Pastry dough', 'Potentially pastry.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 433, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.16, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1954, 'Pastry dough', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 433, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1955, 'Cooking apple', 'Keeps the doctor away.', 1, NULL, 14, 21, NULL, NULL, 36, 353, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1956, 'Cooking apple', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 353, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1957, 'Onion', 'A strong smelling onion.', 1, NULL, 4, 7, NULL, NULL, 12, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1958, 'Onion', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1959, 'Pumpkin', 'Happy Halloween.', 1, NULL, 12, 18, NULL, NULL, NULL, 273600000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 2, NULL, NULL, NULL, NULL, NULL, 0), +(1960, 'Pumpkin', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 273600000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(1961, 'Easter egg', 'Happy Easter.', 1, NULL, 4, 6, NULL, NULL, NULL, 80400000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(1962, 'Easter egg', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 80400000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(1963, 'Banana', 'Mmm this looks tasty.', 1, NULL, NULL, 1, NULL, NULL, 2, 263, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1964, 'Banana', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 263, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1965, 'Cabbage', 'On ground: Cabbage... yuck!In inventory: Yuck, I don\'t like cabbage.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 41, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1966, 'Cabbage', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 41, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1967, 'Cabbage', 'On ground: Cabbage... yuck!In inventory: Yuck, I don\'t like cabbage.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 55, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1968, 'Cabbage', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1969, 'Spinach roll', 'A home made spinach thing.', NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1971, 'Kebab', 'A meaty kebab.', 1, NULL, 1, 1, NULL, NULL, 1, 97, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1972, 'Kebab', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 97, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1973, 'Chocolate bar', 'Mmmmmmm chocolate.', 1, NULL, 8, 12, NULL, NULL, 20, 295, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1974, 'Chocolate bar', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 295, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1975, 'Chocolate dust', 'It\'s ground-up chocolate.', 1, NULL, 8, 12, NULL, NULL, 20, 370, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1976, 'Chocolate dust', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 370, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1977, 'Chocolatey milk', 'Milk with chocolate in it.', NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1978, 'Cup of tea', 'A nice cup of tea.', 1, NULL, 4, 6, NULL, NULL, 10, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1979, 'Cup of tea', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1980, 'Empty cup', 'An empty cup.', 1, NULL, NULL, 1, NULL, NULL, 1, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1981, 'Empty cup', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(1982, 'Tomato', 'This would make good ketchup.', 1, NULL, 5, 8, NULL, NULL, 25, 159, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1983, 'Tomato', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 159, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1984, 'Rotten apple', 'Rotten to the core!', NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1985, 'Cheese', 'It\'s got holes in it.', 1, NULL, 3, 4, NULL, NULL, 3, 188, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1986, 'Cheese', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 188, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(1987, 'Grapes', 'Good grapes for wine making.', 1, NULL, NULL, NULL, NULL, NULL, 1, 1510, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1988, 'Grapes', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1510, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1989, 'Half full wine jug', 'An optimist would say it is half full.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 227700000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(1990, 'Half full wine jug', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 227700000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(1991, 'Jug of bad wine', 'Oh dear, this wine is terrible!', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1992, 'Jug of bad wine', 'Oh dear, this wine is terrible!', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1993, 'Jug of wine', 'It\'s full of wine.', 1, NULL, 51, 76, NULL, NULL, 128, 36, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1994, 'Jug of wine', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 36, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(1995, 'Unfermented wine', 'This wine needs to ferment before it can be drunk.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1996, 'Unfermented wine', 'This wine needs to ferment before it can be drunk.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1997, 'Incomplete stew', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 177, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 200, NULL, NULL, NULL, NULL, NULL, 0), +(1998, 'Incomplete stew', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 177, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 200, NULL, NULL, NULL, NULL, NULL, 0), +(1999, 'Incomplete stew', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 210, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 200, NULL, NULL, NULL, NULL, NULL, 0), +(2000, 'Incomplete stew', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 210, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 200, NULL, NULL, NULL, NULL, NULL, 0), +(2001, 'Uncooked stew', 'I need to cook this.', 1, NULL, 4, 6, NULL, NULL, 1, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 200, NULL, NULL, NULL, NULL, NULL, 0), +(2002, 'Uncooked stew', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 200, NULL, NULL, NULL, NULL, NULL, 0), +(2003, 'Stew', 'It\'s a meat and potato stew.', 1, NULL, 40, 60, NULL, NULL, 20, 1133, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.5, 200, NULL, NULL, NULL, NULL, NULL, 0), +(2004, 'Stew', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1133, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 200, NULL, NULL, NULL, NULL, NULL, 0), +(2006, 'Burnt stew', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2007, 'Spice', 'This could liven up an otherwise bland stew.', 1, NULL, 92, 138, NULL, NULL, 230, 277, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2008, 'Spice', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 277, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2009, 'Uncooked curry', 'I need to cook this.', 1, NULL, 4, 6, NULL, NULL, NULL, 1382, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 200, NULL, NULL, NULL, NULL, NULL, 0), +(2010, 'Uncooked curry', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1382, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 200, NULL, NULL, NULL, NULL, NULL, 0), +(2011, 'Curry', 'It\'s a spicy hot curry.', 1, NULL, 8, 12, NULL, NULL, NULL, 1001, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.5, 200, NULL, NULL, NULL, NULL, NULL, 0), +(2012, 'Curry', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1001, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 200, NULL, NULL, NULL, NULL, NULL, 0), +(2014, 'Burnt curry', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2015, 'Vodka', 'An absolutely clear spirit sold by well-stocked bars.', 1, NULL, 2, 3, NULL, NULL, 5, 366, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.25, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2016, 'Vodka', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 366, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2017, 'Whisky', 'This Draynor malt is sold by well-stocked bars.', 1, NULL, 2, 3, NULL, NULL, 5, 68, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2018, 'Whisky', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 68, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2019, 'Gin', 'A strong spirit that tastes of Juniper; sold at well-stocked bars.', 1, NULL, 2, 3, NULL, NULL, 2, 184, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2020, 'Gin', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 184, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2021, 'Brandy', 'A strong spirit best served in a large glass.', 1, NULL, 2, 3, NULL, NULL, 6, 146, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2022, 'Brandy', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 146, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2023, 'Cocktail guide', 'A book on tree gnome cocktails.', 1, NULL, NULL, 1, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2024, 'Cocktail guide', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2025, 'Cocktail shaker', 'Used for mixing cocktails.', 1, NULL, NULL, 1, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2026, 'Cocktail glass', 'For sipping cocktails.', 1, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2027, 'Cocktail glass', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2028, 'Premade blurb\' sp.', 'A premade Blurberry Special.', 1, NULL, 12, 18, NULL, NULL, 30, 70, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2029, 'Premade blurb\' sp.', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 70, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2030, 'Premade choc s\'dy', 'A premade Chocolate Saturday.', 1, NULL, 12, 18, NULL, NULL, 30, 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2031, 'Premade choc s\'dy', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2032, 'Premade dr\' dragon', 'A premade Drunk Dragon.', 1, NULL, 12, 18, NULL, NULL, 30, 34, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2033, 'Premade dr\' dragon', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 34, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2034, 'Premade fr\' blast', 'A premade Fruit Blast.', 1, NULL, 12, 18, NULL, NULL, 30, 48, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2035, 'Premade fr\' blast', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 48, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2036, 'Premade p\' punch', 'A premade Pineapple Punch.', 1, NULL, 12, 18, NULL, NULL, 30, 40, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2037, 'Premade p\' punch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 40, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2038, 'Premade sgg', 'A premade Short Green Guy.', 1, NULL, 12, 18, NULL, NULL, 30, 33, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2039, 'Premade sgg', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 33, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2040, 'Premade wiz blz\'d', 'A Premade Wizard Blizzard.', 1, NULL, 12, 18, NULL, NULL, 30, 26, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2041, 'Premade wiz blz\'d', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 26, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2042, 'Picture', 'This cocktail is just missing those little finishing touches.', 1, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2043, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2044, 'Picture', 'This cocktail is just missing those little finishing touches.', 1, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2045, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2046, 'Picture', 'This cocktail is just missing those little finishing touches.', 1, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2047, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2048, 'Pineapple punch', 'A fresh healthy fruit mix.', 1, NULL, 12, 18, NULL, NULL, 28, 285, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2049, 'Pineapple punch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 285, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2050, 'Picture', 'This cocktail is just missing those little finishing touches.', 1, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2051, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2052, 'Picture', 'This cocktail is just missing those little finishing touches.', 1, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2053, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2054, 'Wizard blizzard', 'This looks like a strange mix.', 1, NULL, 12, 18, NULL, NULL, 28, 774, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2055, 'Wizard blizzard', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 774, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2056, 'Picture', 'This cocktail is just missing those little finishing touches.', 1, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2057, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2058, 'Picture', 'This cocktail is just missing those little finishing touches.', 1, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2059, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2060, 'Picture', 'This cocktail is just missing those little finishing touches.', 1, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2061, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2062, 'Picture', 'This cocktail is just missing those little finishing touches.', 1, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2063, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2064, 'Blurberry special', 'Looks good... smells strong.', 1, NULL, 12, 18, NULL, NULL, 30, 5468, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2065, 'Blurberry special', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5468, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2066, 'Picture', 'This cocktail is just missing those little finishing touches.', 1, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2067, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2068, 'Picture', 'This cocktail is just missing those little finishing touches.', 1, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2069, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2070, 'Picture', 'This cocktail is just missing those little finishing touches.', 1, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2071, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2072, 'Picture', 'This cocktail is just missing those little finishing touches.', 1, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2073, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2074, 'Choc saturday', 'A warm creamy alcoholic beverage', 1, NULL, 12, 18, NULL, NULL, 28, 272, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2075, 'Choc saturday', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 272, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2076, 'Picture', 'This cocktail is just missing those little finishing touches.', 1, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2077, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2078, 'Picture', 'This cocktail is just missing those little finishing touches.', 1, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2079, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2080, 'Short green guy', 'A Short Green Guy... looks good.', 1, NULL, 12, 18, NULL, NULL, 28, 756, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2081, 'Short green guy', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 756, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2082, 'Picture', 'This cocktail is just missing those little finishing touches.', 1, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2083, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2084, 'Fruit blast', 'A cool refreshing fruit mix.', 1, NULL, 12, 18, NULL, NULL, 28, 1802, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2085, 'Fruit blast', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1802, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2086, 'Picture', 'This cocktail is just missing those little finishing touches.', 1, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2087, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2088, 'Picture', 'This cocktail is just missing those little finishing touches.', 1, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2089, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2090, 'Picture', 'This cocktail is just missing those little finishing touches.', 1, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2091, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2092, 'Drunk dragon', 'A warm creamy alcoholic beverage', 1, NULL, 12, 18, NULL, NULL, 28, 506, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2093, 'Drunk dragon', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 506, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2094, 'Picture', 'I\'m not completely sure what this contains.', 1, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2095, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2096, 'Picture', 'I\'m not completely sure what this contains.', 1, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2097, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2098, 'Picture', 'I\'m not completely sure what this contains.', 1, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2099, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2100, 'Picture', 'I\'m not completely sure what this contains.', 1, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2101, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2102, 'Lemon', 'A common fruit, popularly used in cocktails.', 1, NULL, NULL, 1, NULL, NULL, 2, 86, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2103, 'Lemon', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 86, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2104, 'Lemon chunks', 'The not-too-surprising result of using a knife with a lemon!', 1, NULL, NULL, 1, NULL, NULL, NULL, 29, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2105, 'Lemon chunks', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 29, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2106, 'Lemon slices', 'The not-too-surprising result of using a knife with a lemon!', 1, NULL, NULL, 1, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2107, 'Lemon slices', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(2108, 'Orange', 'A common fruit.', 1, NULL, 28, 42, NULL, NULL, 70, 930, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2109, 'Orange', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 930, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2110, 'Orange chunks', 'Fresh chunks of orange.', 1, NULL, NULL, 1, NULL, NULL, NULL, 46, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2111, 'Orange chunks', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 46, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2112, 'Orange slices', 'Fresh orange slices.', 1, NULL, NULL, 1, NULL, NULL, NULL, 163, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2113, 'Orange slices', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 163, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2114, 'Pineapple', 'It can be cut up into something more manageable with a knife.', 1, NULL, NULL, 1, NULL, NULL, 2, 45, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.15, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2115, 'Pineapple', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 45, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2116, 'Pineapple chunks', 'Fresh chunks of pineapple.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 86, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2117, 'Pineapple chunks', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 86, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2118, 'Pineapple ring', 'The not-too-surprising result of using a knife with a pineapple!', 1, NULL, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2119, 'Pineapple ring', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2120, 'Lime', 'A common fruit, popularly used in cocktails.', 1, NULL, NULL, 1, NULL, NULL, 2, 78, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2121, 'Lime', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 78, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2122, 'Lime chunks', 'Fresh chunks of lime.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2123, 'Lime chunks', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2124, 'Lime slices', 'The not-too-surprising result of using a knife with a lime!', 1, NULL, NULL, 1, NULL, NULL, NULL, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2125, 'Lime slices', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2126, 'Dwellberries', 'Some rather pretty blue berries picked from a dwellberry bush.', 1, NULL, 1, 2, NULL, NULL, 10, 144, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2127, 'Dwellberries', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 144, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2128, 'Equa leaves', 'A common ingredient in gnome cuisine.', 1, NULL, NULL, 1, NULL, NULL, 2, 275, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2129, 'Equa leaves', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 275, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2130, 'Pot of cream', 'Fresh cream.', 1, NULL, 7, 11, NULL, NULL, 2, 58, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2131, 'Pot of cream', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 58, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2132, 'Raw beef', 'I need to cook this first.', 1, NULL, 23, 35, NULL, NULL, 58, 282, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2133, 'Raw beef', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 282, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2134, 'Raw rat meat', 'I need to cook this first.', 1, NULL, 15, 23, NULL, NULL, 1, 85, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2135, 'Raw rat meat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 85, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2136, 'Raw bear meat', 'I need to cook this first.', 1, NULL, 3, 4, NULL, NULL, 8, 307, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2137, 'Raw bear meat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 307, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2138, 'Raw chicken', 'I need to cook this first.', 1, NULL, 24, 36, NULL, NULL, 60, 386, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.15, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2139, 'Raw chicken', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 386, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2140, 'Cooked chicken', 'Mmm this looks tasty.', 1, NULL, 4, 7, NULL, NULL, 5, 70, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2141, 'Cooked chicken', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 70, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2142, 'Cooked meat', 'Mmm this looks tasty.', 1, NULL, 12, 18, NULL, NULL, 5, 111, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.25, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2143, 'Cooked meat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 111, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2145, 'Burnt chicken', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2146, 'Burnt meat', 'Oh dear, it\'s totally burnt!', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2147, 'Burnt meat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2148, 'Raw lava eel', 'A very strange eel.', NULL, NULL, 60, 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2149, 'Lava eel', 'Strange, it looks cooler now it\'s been cooked.', NULL, NULL, 60, 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.15, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2150, 'Swamp toad', 'A slippery little blighter.', 1, NULL, NULL, 1, NULL, NULL, NULL, 750, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2151, 'Swamp toad', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 750, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2152, 'Toad\'s legs', 'They\'re a gnome delicacy apparently.', 1, NULL, NULL, 1, NULL, NULL, NULL, 661, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2153, 'Toad\'s legs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 661, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2154, 'Picture', 'They\'re a gnome delicacy apparently.', 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2155, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2156, 'Spicy toad\'s legs', 'They\'re a gnome delicacy apparently.', 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2157, 'Spicy toad\'s legs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2158, 'Seasoned legs', 'They\'re a gnome delicacy apparently.', 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2159, 'Seasoned legs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2160, 'Spicy worm', 'They\'re a gnome delicacy apparently.', 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2161, 'Spicy worm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2162, 'King worm', 'They\'re a gnome delicacy apparently.', 1, NULL, NULL, 1, NULL, NULL, NULL, 24, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2163, 'King worm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 24, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2164, 'Batta tin', 'A deep tin used to make gnome battas in.', NULL, NULL, 4, 6, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2165, 'Crunchy tray', 'A shallow tray used to make crunchies in.', 1, NULL, 4, 6, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2166, 'Gnomebowl mould', 'A large ovenproof bowl.', 1, NULL, 4, 6, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2167, 'Gianne\'s cook book', 'Aluft Gianne\'s favourite dishes.', 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2168, 'Gianne\'s cook book', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2169, 'Gnome spice', 'It\'s Aluft Gianne\'s secret mix of spices.', 1, NULL, NULL, 1, NULL, NULL, 2, 28, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.14, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2170, 'Gnome spice', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 28, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2171, 'Gianne dough', 'It\'s made from a secret recipe.', 1, NULL, NULL, 1, NULL, NULL, 2, 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2172, 'Gianne dough', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2173, 'Picture', 'This gnome bowl doesn\'t look very appetizing.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2174, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2176, 'Burnt gnomebowl', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2177, 'Half baked bowl', 'This gnomebowl is in the early stages of preparation.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2178, 'Raw gnomebowl', 'This gnomebowl needs cooking.', 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2179, 'Picture', 'This unfinished XX needs YY.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2180, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2181, 'Picture', 'This unfinished XX needs YY.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2182, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2183, 'Picture', 'This unfinished XX needs YY.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2184, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2185, 'Chocolate bomb', 'Full of creamy, chocolately goodness.', 1, NULL, NULL, 1, NULL, NULL, 450, 4400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2186, 'Chocolate bomb', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2187, 'Tangled toads\' legs', 'It actually smells quite good.', 1, NULL, NULL, 1, NULL, NULL, NULL, 2321, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2188, 'Tangled toads\' legs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2321, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2189, 'Picture', 'This unfinished XX needs YY.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2190, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2191, 'Worm hole', 'It actually smells quite good.', 1, NULL, NULL, 1, NULL, NULL, NULL, 454, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2192, 'Worm hole', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 454, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2193, 'Picture', 'This unfinished XX needs YY.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2194, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2195, 'Veg ball', 'This looks pretty healthy.', 1, NULL, NULL, 1, NULL, NULL, NULL, 481, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2196, 'Veg ball', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 481, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2197, 'Odd crunchies', 'These crunchies don\'t look very appetising.', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2198, 'Odd crunchies', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2200, 'Burnt crunchies', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2201, 'Half baked crunchy', 'This crunchy is in the early stages of preparation.', 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2202, 'Raw crunchies', 'These crunchies need cooking.', 1, NULL, NULL, 1, NULL, NULL, NULL, 163, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2203, 'Picture', 'This XX crunchy needs garnishing with YY.', 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2204, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2205, 'Worm crunchies', 'It actually smells quite good.', 1, NULL, NULL, 1, NULL, NULL, 80, 255, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2206, 'Worm crunchies', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 255, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2207, 'Picture', 'This XX crunchy needs garnishing with YY.', 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2208, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2209, 'Chocchip crunchies', 'Yum... smells good.', 1, NULL, NULL, 1, NULL, NULL, 70, 816, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2210, 'Chocchip crunchies', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 816, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2211, 'Picture', 'This XX crunchy needs garnishing with YY.', 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2212, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2213, 'Spicy crunchies', 'Yum...smells spicy.', 1, NULL, NULL, 1, NULL, NULL, 70, 101, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2214, 'Spicy crunchies', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 101, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2215, 'Picture', 'This XX crunchy needs garnishing with YY.', 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2216, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2217, 'Toad crunchies', 'It actually smells quite good.', 1, NULL, NULL, 1, NULL, NULL, NULL, 1228, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2218, 'Toad crunchies', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1228, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2219, 'Premade w\'m batta', 'A premade Worm Batta.', 1, NULL, 78, 117, NULL, NULL, NULL, 130, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2220, 'Premade w\'m batta', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 130, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2221, 'Premade t\'d batta', 'A Premade Toad Batta.', 1, NULL, 78, 117, NULL, NULL, NULL, 127, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2222, 'Premade t\'d batta', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 127, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2223, 'Premade c+t batta', 'A Premade Cheese and Tomato Batta.', 1, NULL, 78, 117, NULL, NULL, NULL, 137, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2224, 'Premade c+t batta', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 137, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2225, 'Premade fr\'t batta', 'A premade Fruit Batta.', 1, NULL, 78, 117, NULL, NULL, NULL, 131, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2226, 'Premade fr\'t batta', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 131, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2227, 'Premade veg batta', 'A Premade Vegetable Batta.', 1, NULL, 78, 117, NULL, NULL, NULL, 134, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2228, 'Premade veg batta', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 134, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2229, 'Premade choc bomb', 'A premade Chocolate Bomb.', 1, NULL, 180, 270, NULL, NULL, NULL, 1227, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2230, 'Premade choc bomb', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1227, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2231, 'Premade ttl', 'A premade Tangled Toads Legs.', 1, NULL, 180, 270, NULL, NULL, NULL, 867, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2232, 'Premade ttl', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 867, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2233, 'Premade worm hole', 'A premade Worm Hole.', 1, NULL, 108, 162, NULL, NULL, NULL, 237, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2234, 'Premade worm hole', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 237, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2235, 'Premade veg ball', 'A premade Vegetable Ball.', 1, NULL, 108, 162, NULL, NULL, NULL, 233, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2236, 'Premade veg ball', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 233, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2237, 'Premade w\'m crun\'', 'Some Premade Worm Crunchies.', 1, NULL, 32, 48, NULL, NULL, NULL, 76, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2238, 'Premade w\'m crun\'', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 76, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2239, 'Premade ch\' crunch', 'Some Premade chocchip crunchies.', 1, NULL, 28, 42, NULL, NULL, NULL, 95, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2240, 'Premade ch\' crunch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 95, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2241, 'Premade s\'y crunch', 'Some premade Spicy Crunchies.', 1, NULL, 28, 42, NULL, NULL, NULL, 103, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2242, 'Premade s\'y crunch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 103, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2243, 'Premade t\'d crunch', 'Some premade Toad Crunchies.', 1, NULL, 32, 48, NULL, NULL, 80, 43, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2244, 'Premade t\'d crunch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 43, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2245, 'Picture', 'This batta doesn\'t look very appetising.', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2246, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2248, 'Burnt batta', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2249, 'Half baked batta', 'This gnome batta is in the early stages of preparation.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2250, 'Raw batta', 'This gnome batta needs cooking.', NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2251, 'Picture', 'This XX batta needs garnishing with YY.', NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2252, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2253, 'Worm batta', 'It actually smells quite good.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 140, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2254, 'Worm batta', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 140, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2255, 'Toad batta', 'It actually smells quite good.', 1, NULL, NULL, 1, NULL, NULL, 78, 271, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2256, 'Toad batta', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 271, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2257, 'Picture', 'This XX batta needs garnishing with YY.', NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2258, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2259, 'Cheese+tom batta', 'This smells really good.', 1, NULL, NULL, 1, NULL, NULL, NULL, 260, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2260, 'Cheese+tom batta', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 260, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2261, 'Unfinished batta', 'This XX batta needs garnishing with YY.', NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2262, 'Unfinished batta', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2263, 'Unfinished batta', 'This XX batta needs garnishing with YY.', NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2264, 'Unfinished batta', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2265, 'Unfinished batta', 'This XX batta needs garnishing with YY.', NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2266, 'Unfinished batta', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2267, 'Unfinished batta', 'This XX batta needs garnishing with YY.', NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2268, 'Unfinished batta', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2269, 'Unfinished batta', 'This XX batta needs garnishing with YY.', NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2270, 'Unfinished batta', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2271, 'Unfinished batta', 'This XX batta needs garnishing with YY.', NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2272, 'Unfinished batta', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2273, 'Unfinished batta', 'This XX batta needs garnishing with YY.', NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2274, 'Unfinished batta', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2275, 'Picture', 'This XX batta needs garnishing with YY.', NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2276, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2277, 'Fruit batta', 'It actually smells quite good.', 1, NULL, NULL, 1, NULL, NULL, NULL, 303, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2278, 'Fruit batta', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 303, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2279, 'Picture', 'This XX batta needs garnishing with YY.', NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2280, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2281, 'Vegetable batta', 'Well... It looks healthy.', 1, NULL, NULL, 1, NULL, NULL, NULL, 240, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2282, 'Vegetable batta', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 240, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2283, 'Pizza base', 'I need to add some tomato next.', 1, NULL, 1, 2, NULL, NULL, 30, 418, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2284, 'Pizza base', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 418, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2285, 'Incomplete pizza', 'I need to add some cheese next.', 1, NULL, 4, 6, NULL, NULL, NULL, 366, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2286, 'Incomplete pizza', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 366, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2287, 'Uncooked pizza', 'This needs cooking', 1, NULL, 10, 15, NULL, NULL, NULL, 1141, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2288, 'Uncooked pizza', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1141, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2289, 'Plain pizza', 'A cheese and tomato pizza. (Whole)Half of this plain pizza has been eaten. (Half)', 1, NULL, 80, 120, NULL, NULL, 200, 1357, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.66, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2290, 'Plain pizza', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1357, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2291, '1/2 plain pizza', 'A cheese and tomato pizza. (Whole)Half of this plain pizza has been eaten. (Half)', 1, NULL, 80, 120, NULL, NULL, 200, 238, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.66, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2292, '1/2 plain pizza', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 238, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2293, 'Meat pizza', 'A pizza with bits of meat on it. (Whole) Half of this meat pizza has been eaten. (Half)', 1, NULL, 20, 30, NULL, NULL, NULL, 1012, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.83, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2294, 'Meat pizza', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1012, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2295, '1/2 meat pizza', 'A pizza with bits of meat on it. (Whole) Half of this meat pizza has been eaten. (Half)', 1, NULL, 20, 30, NULL, NULL, NULL, 339, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.83, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2296, '1/2 meat pizza', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 339, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2297, 'Anchovy pizza', 'A pizza with anchovies. (Whole) Half of this anchovy pizza has been eaten. (Half)', 1, NULL, 24, 36, NULL, NULL, NULL, 1573, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.83, 1000, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(2298, 'Anchovy pizza', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1573, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2299, '1/2 anchovy pizza', 'A pizza with anchovies. (Whole) Half of this anchovy pizza has been eaten. (Half)', 1, NULL, 24, 36, NULL, NULL, NULL, 44, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.83, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2300, '1/2 anchovy pizza', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 44, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2301, 'Pineapple pizza', 'A pizza with bits of pineapple on it. (Whole)Half of this pineapple pizza has been eaten. (Half)', 1, NULL, 40, 60, NULL, NULL, NULL, 1469, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.83, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2302, 'Pineapple pizza', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1469, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2303, '1/2 p\'apple pizza', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 156, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2304, '1/2 p\'apple pizza', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 156, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2306, 'Burnt pizza', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2307, 'Bread dough', 'Some uncooked dough.', 1, NULL, 1, 2, NULL, NULL, NULL, 158, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2308, 'Bread dough', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 158, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2309, 'Bread', 'Nice crispy bread.', 1, NULL, 9, 14, NULL, NULL, 24, 110, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2310, 'Bread', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 110, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2312, 'Burnt bread', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2313, 'Pie dish', 'Deceptively pie shaped.', 1, NULL, 1, 1, NULL, NULL, 3, 174, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2314, 'Pie dish', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 174, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2315, 'Pie shell', 'I need to find a filling for this pie.', 1, NULL, 1, 2, NULL, NULL, NULL, 887, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2316, 'Pie shell', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 887, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2317, 'Uncooked apple pie', 'This would be much tastier cooked.', 1, NULL, 6, 9, NULL, NULL, NULL, 781, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2318, 'Uncooked apple pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 781, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2319, 'Uncooked meat pie', 'This would be much healthier cooked.', 1, NULL, 3, 4, NULL, NULL, NULL, 747, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2320, 'Uncooked meat pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 747, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2321, 'Uncooked berry pie', 'This would be much more appetising cooked.', 1, NULL, 2, 3, NULL, NULL, NULL, 802, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2322, 'Uncooked berry pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 802, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2323, 'Apple pie', 'Mmm Apple pie. (Whole)Mmm half an apple pie. (Half)', 1, NULL, 12, 18, NULL, NULL, 140, 246, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2324, 'Apple pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 246, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2325, 'Redberry pie', 'Looks tasty. (Whole)So tasty I kept some for later. (Half)', 1, NULL, 60, 90, NULL, NULL, NULL, 534, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2326, 'Redberry pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 534, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2327, 'Meat pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, 16, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2328, 'Meat pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2330, 'Burnt pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2331, 'Half a meat pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, 16, 174, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2332, 'Half a meat pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 174, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2333, 'Half a redberry pie', 'Looks tasty. (Whole)So tasty I kept some for later. (Half)', 1, NULL, 60, 90, NULL, NULL, NULL, 248, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2334, 'Half a redberry pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 248, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2335, 'Half an apple pie', 'Mmm Apple pie. (Whole)Mmm half an apple pie. (Half)', 1, NULL, 12, 18, NULL, NULL, 140, 146, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2336, 'Half an apple pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 146, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2337, 'Raw oomlie', 'Raw meat from the oomlie bird.', 1, NULL, 4, 6, NULL, NULL, NULL, 155, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2338, 'Raw oomlie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 155, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2339, 'Palm leaf', 'A thick green palm leaf used by natives to cook meat.', NULL, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2340, 'Palm leaf', 'A thick green palm leaf used by natives to cook meat.', NULL, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2341, 'Wrapped oomlie', 'Oomlie meat in a palm leaf pouch. It just needs to be cooked.', 1, NULL, 14, 21, NULL, NULL, NULL, 814, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.25, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2342, 'Wrapped oomlie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 814, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2343, 'Cooked oomlie wrap', 'Deliciously cooked oomlie meat in a palm leaf pouch.', 1, NULL, 14, 21, NULL, NULL, NULL, 1126, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.25, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2344, 'Cooked oomlie wrap', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1126, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2346, 'Burnt oomlie wrap', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2347, 'Hammer', 'Good for hitting things!', 1, NULL, 5, 7, NULL, NULL, 13, 37, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2348, 'Hammer', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 37, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2349, 'Bronze bar', 'It\'s a bar of bronze.', 1, NULL, 3, 4, NULL, NULL, 10, 268, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2350, 'Bronze bar', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 268, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2351, 'Iron bar', 'It\'s a bar of iron.', 1, NULL, 11, 16, NULL, NULL, NULL, 493, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2352, 'Iron bar', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 493, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2353, 'Steel bar', 'It\'s a bar of steel.', 1, NULL, 40, 60, NULL, NULL, NULL, 1266, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.81, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2354, 'Steel bar', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1266, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2355, 'Silver bar', 'It\'s a bar of silver.', 1, NULL, 60, 90, NULL, NULL, NULL, 274, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.81, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2356, 'Silver bar', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 274, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2357, 'Gold bar', 'It\'s a bar of gold.', 1, NULL, 120, 180, NULL, NULL, NULL, 107, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.81, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2358, 'Gold bar', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 107, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2359, 'Mithril bar', 'It\'s a bar of mithril.', 1, NULL, 120, 180, NULL, NULL, 120, 1920, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.6, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2360, 'Mithril bar', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1920, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2361, 'Adamantite bar', 'It\'s a bar of adamant.', 1, NULL, 256, 384, NULL, NULL, NULL, 3306, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.04, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2362, 'Adamantite bar', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3306, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2363, 'Runite bar', 'It\'s a bar of rune.', 1, NULL, 2000, 3000, NULL, NULL, NULL, 13300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2364, 'Runite bar', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 13300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2365, '\'perfect\' gold bar', 'It\'s a \'perfect\' golden bar.', NULL, NULL, 120, 180, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2366, 'Shield left half', 'The left half of a Dragon Square Shield.', 1, NULL, 44000, 66000, NULL, NULL, NULL, 65800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{13,60}', 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2367, 'Shield left half', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 65800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2368, 'Shield right half', 'The right half of a dragon square shield.', 1, NULL, 300000, 450000, NULL, NULL, 750000, 743100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{13,60}', 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2369, 'Shield right half', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 743100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2370, 'Steel studs', 'A set of studs for leather armour.', 1, NULL, 60, 90, NULL, NULL, 100, 792, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(2371, 'Steel studs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 792, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(2372, 'Ogre relic', 'An old statue of an ogre warrior.', NULL, NULL, NULL, NULL, 1, 'This item will likely break if you put it down, and you will have to go looking for another one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2373, 'Relic part 1', 'Part of an ogre relic.', NULL, NULL, NULL, NULL, 1, 'This item will likely break if you put it down here and you will have to go looking for another.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2374, 'Relic part 2', 'Part of an ogre relic.', NULL, NULL, NULL, NULL, 1, 'This item will likely break if you put it down here and you will have to go looking for another.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2375, 'Relic part 3', 'Part of an ogre relic.', NULL, NULL, NULL, NULL, 1, 'This item will likely break if you put it down here and you will have to go looking for another.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2376, 'Skavid map', 'It\'s a map.', NULL, NULL, NULL, NULL, 1, 'This item will likely break if you put it down here and you will have to go looking for another.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2377, 'Ogre tooth', 'Very tooth-like.', NULL, NULL, NULL, NULL, 1, 'This item will likely break if you put it down here and you will have to go looking for another.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2378, 'Toban\'s key', 'Formerly the property of the ogre, Toban', NULL, NULL, NULL, NULL, 1, 'This item will likely break if you put it down here and you will have to go looking for another.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2379, 'Rock cake', 'Handy if you want to break all your teeth.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2384, 'Fingernails', 'Eeeeyeeew!', NULL, NULL, NULL, NULL, 1, 'This item will likely break if you put it down here, and you will have to go looking for another.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2385, 'Old robe', 'I can\'t wear this old thing.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2386, 'Unusual armour', 'Looks kind of useless.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2387, 'Damaged dagger', 'Pointy.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2517,2517,2500,2517', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2388, 'Tattered eye patch', 'Useless as an eye patch.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2389, 'Vial', 'An empty glass vial.', 1, NULL, 2, 3, NULL, 'You can reclaim this item from the place you found it.', 5, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2390, 'Vial', 'An empty glass vial.', 1, NULL, 2, 3, NULL, 'You can reclaim this item from the place you found it.', 5, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2391, 'Ground bat bones', 'Let\'s see it fly, now!', 1, NULL, 8, 12, NULL, NULL, NULL, 350, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2392, 'Ground bat bones', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 350, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2393, 'Toban\'s gold', 'It\'s a stolen bar of gold.', NULL, NULL, NULL, NULL, 1, 'This item will likely break if you put it down here and you will have to go looking for another.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2394, 'Potion', 'This is meant to be good for spots.', 1, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, 157, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2395, 'Magic ogre potion', 'A dangerous magical liquid.', NULL, NULL, 48, 72, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2396, 'Spell scroll', 'A spell is written on this parchment.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2397, 'Shaman robe', 'A tattered old robe.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2398, 'Cave nightshade', 'Deadly.', NULL, NULL, 12, 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2402, 'Silverlight', 'The magical sword \'Silverlight\'. / The magical sword \'Silverlight\', stained black with mushroom ink. (during Shadow of the Storm)', NULL, NULL, 20, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 808, 823, 819, 824, 820, 821, 822, 1, 3, 5, NULL, '9,14,-2,0,0,0,3,2,1,0,0,12,0,0,0', 6, NULL, NULL, '390,390,381,390', 388, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2403, 'Hazeel scroll', 'Scroll containing a powerful enchantment of restoration.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2405, 'Carnillean armour', 'Decorative armour; an heirloom of the Carnillean family.', NULL, NULL, 26, 39, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,20,14,8,0,0,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2406, 'Hazeel\'s mark', 'A sign of my commitment to Hazeel.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2407, 'Ball', 'A child\'s ball.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2409, 'Door key', 'A key to the Witch\'s house\'s front door. (Witch\'s House)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2410, 'Magnet', 'A very attractive magnet.', NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2412, 'Saradomin cape', 'A cape from the almighty god Saradomin.', NULL, NULL, 40, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,10,0,1,1,2,10,0,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2413, 'Guthix cape', 'A cape from the almighty god Guthix.', NULL, NULL, 40, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,10,0,1,1,2,10,0,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2414, 'Zamorak cape', 'A cape from the almighty god Zamorak.', NULL, NULL, 40, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,10,0,1,1,2,10,0,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2415, 'Saradomin staff', 'A magical staff imbued with the power of Saradomin.', NULL, NULL, 32000, 48000, NULL, NULL, 80000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, '-1,-1,6,6,0,2,3,1,6,0,0,2,0,0,0', 1, NULL, NULL, '419,419,419,419', 420, '2555,0,0,0', NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2416, 'Guthix staff', 'A magical staff imbued with the power of Guthix.', NULL, NULL, 32000, 48000, NULL, NULL, 80000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, '-1,-1,6,6,0,2,3,1,6,0,0,2,0,0,0', 1, NULL, NULL, '419,419,419,419', 420, '2555,0,0,0', NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2417, 'Zamorak staff', 'A magical staff imbued with the power of Zamorak.', NULL, NULL, 32000, 48000, NULL, NULL, 80000, NULL, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 4, NULL, '-1,-1,6,6,0,2,3,1,6,0,0,2,0,0,0', 1, NULL, NULL, '419,419,419,419', 420, '2555,0,0,0', NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2419, 'Wig', 'A grey woollen wig.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2421, 'Wig', 'A grey woollen wig.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2422, 'Blue partyhat', 'A nice hat from a cracker.', NULL, 1, NULL, NULL, NULL, NULL, NULL, 2147483647, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2423, 'Key print', 'Imprint of a key in a lump of clay.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2424, 'Paste', 'A bottle of skin coloured paste.', NULL, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2425, 'Picture', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2704,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2427, 'Burnt oomlie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2428, 'Attack potion(4)', 'X doses of Attack potion.', 1, NULL, 224, 336, NULL, NULL, 8002, 275, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2429, 'Attack potion(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 275, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2430, 'Restore potion(4)', 'X dose(s) of restore potion.', 1, NULL, 35, 52, NULL, NULL, 139, 101, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.03, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2431, 'Restore potion(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 101, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2432, 'Defence potion(4)', '(x) doses of Defence Potion.', 1, NULL, 352, 528, NULL, NULL, 7832, 448, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2433, 'Defence potion(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 448, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2434, 'Prayer potion(4)', '(X) doses of Prayer restore potion.', 1, NULL, 61, 91, NULL, NULL, NULL, 5687, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2435, 'Prayer potion(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5687, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2436, 'Super attack(4)', 'X dose(s) of super Attack potion.', 1, NULL, 72, 108, NULL, NULL, 8000, 898, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2437, 'Super attack(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, 8000, 898, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2438, 'Fishing potion(4)', 'X doses of Fishing potion.', 1, NULL, 100, 150, NULL, NULL, NULL, 73, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.03, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2439, 'Fishing potion(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 73, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2440, 'Super strength(4)', 'X dose(s) of super Strength potion.', 1, NULL, 88, 132, NULL, NULL, 8000, 2278, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2441, 'Super strength(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, 8000, 2278, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2442, 'Super defence(4)', 'X dose(s) of super Defence potion.', 1, NULL, 105, 158, NULL, NULL, 7000, 153, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2443, 'Super defence(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, 7000, 153, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2444, 'Ranging potion(4)', 'X doses of ranging potion.', 1, NULL, 115, 172, NULL, NULL, NULL, 8317, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2445, 'Ranging potion(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8317, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2446, 'Antipoison(4)', 'X doses of antipoison potion.', 1, NULL, 115, 172, NULL, NULL, 375, 1624, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2447, 'Antipoison(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1624, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2448, 'Super antipoison(4)', 'X dose(s) of super anti poison potion.', 1, NULL, 115, 172, NULL, NULL, NULL, 1062, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2449, 'Super antipoison(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1062, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2450, 'Zamorak brew(4)', 'X dose[s] of Zamorak brew.', 1, NULL, 70, 105, NULL, NULL, NULL, 2838, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2451, 'Zamorak brew(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2838, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2452, 'Antifire potion(4)', 'X dose(s) of anti-firebreath potion.', 1, NULL, 105, 158, NULL, NULL, NULL, 4743, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2453, 'Antifire potion(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4743, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2454, 'Antifire potion(3)', 'X dose(s) of anti-firebreath potion.', 1, NULL, 105, 158, NULL, NULL, NULL, 3518, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2455, 'Antifire potion(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3518, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2456, 'Antifire potion(2)', 'X dose(s) of anti-firebreath potion.', 1, NULL, 105, 158, NULL, NULL, NULL, 2291, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2457, 'Antifire potion(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2291, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2458, 'Antifire potion(1)', 'X dose(s) of anti-firebreath potion.', 1, NULL, 105, 158, NULL, NULL, NULL, 1099, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2459, 'Antifire potion(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1099, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2460, 'Flowers', 'A posy of flowers.', 1, NULL, 40, 60, NULL, NULL, 15, 704, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, '-100,-100,-50,0,0,0,0,0,0,0,0,-10,0,0,0', 12, NULL, NULL, '381,381,381,381', 403, '2566', NULL, 0.02, 100, NULL, NULL, NULL, NULL, 1, 0), +(2461, 'Flowers', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 704, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2462, 'Flowers', 'A posy of flowers.', 1, NULL, 40, 60, NULL, NULL, 15, 704, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, '-100,-100,-50,0,0,0,0,0,0,0,0,-10,0,0,0', 12, NULL, NULL, '381,381,381,381', 403, '2566', NULL, 0.02, 100, NULL, NULL, NULL, NULL, 1, 0), +(2463, 'Flowers', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 704, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2464, 'Flowers', 'A posy of flowers.', 1, NULL, 40, 60, NULL, NULL, 15, 638, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, '-100,-100,-50,0,0,0,0,0,0,0,0,-10,0,0,0', 12, NULL, NULL, '381,381,381,381', 403, '2566', NULL, 0.02, 100, NULL, NULL, NULL, NULL, 1, 0), +(2465, 'Flowers', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 638, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2466, 'Flowers', 'A posy of flowers.', 1, NULL, 40, 60, NULL, NULL, 15, 629, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, '-100,-100,-50,0,0,0,0,0,0,0,0,-10,0,0,0', 12, NULL, NULL, '381,381,381,381', 403, '2566', NULL, 0.02, 100, NULL, NULL, NULL, NULL, 1, 0), +(2467, 'Flowers', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 629, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2468, 'Flowers', 'A posy of flowers.', 1, NULL, 40, 60, NULL, NULL, 15, 639, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, '-100,-100,-50,0,0,0,0,0,0,0,0,-10,0,0,0', 12, NULL, NULL, '381,381,381,381', 403, '2566', NULL, 0.02, 100, NULL, NULL, NULL, NULL, 1, 0), +(2469, 'Flowers', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 639, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2470, 'Flowers', 'A posy of flowers.', 1, NULL, 40, 60, NULL, NULL, 15, 613, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, '-100,-100,-50,0,0,0,0,0,0,0,0,-10,0,0,0', 12, NULL, NULL, '381,381,381,381', 403, '2566', NULL, 0.02, 100, NULL, NULL, NULL, NULL, 1, 0), +(2471, 'Flowers', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 613, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2472, 'Flowers', 'A posy of flowers.', 1, NULL, 40, 60, NULL, NULL, 15, 711, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, '-100,-100,-50,0,0,0,0,0,0,0,0,-10,0,0,0', 12, NULL, NULL, '381,381,381,381', 403, '2566', NULL, 0.02, 100, NULL, NULL, NULL, NULL, 1, 0), +(2473, 'Flowers', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 711, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2474, 'Flowers', 'A posy of flowers.', 1, NULL, 40, 60, NULL, NULL, 15, 48700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, '-100,-100,-50,0,0,0,0,0,0,0,0,-10,0,0,0', 12, NULL, NULL, '381,381,381,381', 403, '2566', NULL, 0.02, 100, NULL, NULL, NULL, NULL, 1, 0), +(2475, 'Flowers', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 48700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2476, 'Flowers', 'A posy of flowers.', 1, NULL, 40, 60, NULL, NULL, 15, 5975, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, '-100,-100,-50,0,0,0,0,0,0,0,0,-10,0,0,0', 12, NULL, NULL, '381,381,381,381', 403, '2566', NULL, 0.02, 100, NULL, NULL, NULL, NULL, 1, 0), +(2477, 'Flowers', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5975, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2481, 'Clean lantadyme', 'A fresh herb.', 1, NULL, 26, 40, NULL, NULL, NULL, 7274, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2482, 'Clean lantadyme', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7274, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2483, 'Lantadyme potion(unf)', 'I need another ingredient to finish this lantadyme potion.', 1, NULL, 26, 40, NULL, NULL, NULL, 6940, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2484, 'Lantadyme potion(unf)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 6940, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2485, 'Grimy lantadyme', 'I need to clean this herb before I can use it.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 7210, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{15,67}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2486, 'Grimy lantadyme', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7210, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2487, 'Blue d\'hide vamb', 'Made from 100% real dragonhide.', 1, 1, 1200, 1800, NULL, NULL, NULL, 1705, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,-10,9,4,3,5,4,0,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{4,50}', 0.2, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(2488, 'Blue d\'hide vamb', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1705, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(2489, 'Red d\'hide vamb', 'Vambraces made from 100% real dragonhide.', 1, 1, 1440, 2160, NULL, NULL, NULL, 2046, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,-10,10,5,4,6,6,0,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{4,60}', 0.25, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(2490, 'Red d\'hide vamb', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2046, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(2491, 'Black d\'hide vamb', 'Vambraces made from 100% real dragonhide.', 1, 1, 1728, 2592, NULL, NULL, NULL, 2506, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,-10,11,6,5,7,8,0,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{4,70}', 0.25, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(2492, 'Black d\'hide vamb', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2506, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(2493, 'Blue d\'hide chaps', 'Made from 100% real dragonhide.', 1, 1, 1728, 2592, NULL, NULL, NULL, 2504, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '0,5,2', '0,0,0,-10,11,25,19,27,14,25,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{4,50}', 5.4, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(2494, 'Blue d\'hide chaps', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2504, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(2495, 'Red d\'hide chaps', 'Made from 100% real dragonhide.', 1, 1, 2072, 3108, NULL, NULL, NULL, 3142, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '0,6,3', '0,0,0,-10,14,28,22,30,20,28,25,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{4,60}', 5.4, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(2496, 'Red d\'hide chaps', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3142, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(2497, 'Black d\'hide chaps', 'Made from 100% real dragonhide.', 1, 1, 2488, 3732, NULL, NULL, NULL, 4744, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '0,7,3', '0,0,0,-10,17,31,25,33,28,31,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{4,70}', 5.4, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(2498, 'Black d\'hide chaps', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4744, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(2499, 'Blue d\'hide body', 'Made from 100% real dragonhide.', 1, 1, 3744, 5616, NULL, NULL, NULL, 5420, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '0,6,3', '0,0,0,-15,20,45,37,50,30,45,45,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,50}', 6.8, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(2500, 'Blue d\'hide body', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5420, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(2501, 'Red d\'hide body', 'Made from 100% real dragonhide.', 1, 1, 4492, 6738, NULL, NULL, NULL, 6680, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '0,6,3', '0,0,0,-15,25,50,42,55,40,50,50,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,60}', 6.8, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(2502, 'Red d\'hide body', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 6680, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(2503, 'Black d\'hide body', 'Made from 100% real dragonhide.', 1, 1, 5392, 8088, NULL, NULL, NULL, 8098, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '0,6,3', '0,0,0,-15,30,55,47,60,50,55,55,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,70}', 6.8, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(2504, 'Black d\'hide body', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8098, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(2505, 'Blue d-leather', 'It\'s a piece of prepared blue dragonhide.', 1, NULL, 28, 42, NULL, NULL, NULL, 2888, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3.1, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2506, 'Blue d-leather', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2888, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2507, 'Red dragon leather', 'It\'s a piece of prepared red dragonhide.', 1, NULL, 36, 54, NULL, NULL, NULL, 4464, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2508, 'Red dragon leather', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4464, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2509, 'Black d-leather', 'It\'s a piece of prepared black dragonhide.', 1, NULL, 32, 48, NULL, NULL, NULL, 6664, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3.1, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2510, 'Black d-leather', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 6664, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2511, 'Logs', 'A number of wooden logs.', 1, NULL, 1, 2, NULL, NULL, 4, 124, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2513, 'Dragon chainbody', 'A series of connected metal rings.', 1, 1, 100000, 150000, NULL, NULL, NULL, 2902937, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '4,0,9', '0,0,0,-15,0,81,93,98,-3,82,50,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6.8, NULL, NULL, 1, NULL, NULL, NULL, 0), +(2514, 'Raw shrimps', 'I should try cooking this.', 1, NULL, 2, 3, NULL, NULL, 6, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2515, 'Raw shrimps', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2516, 'Pot of flour', 'There is flour in this pot.', 1, NULL, 5, 8, NULL, NULL, 14, 162, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2517, 'Pot of flour', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2518, 'Rotten tomato', 'Pretty smelly.', 1, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2519, 'Rotten tomato', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2520, 'Toy horsey', 'An inexpensive white/black/grey/brown toy horse.', 1, NULL, 40, 60, NULL, NULL, 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2521, 'Toy horsey', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2522, 'Toy horsey', 'An inexpensive white/black/grey/brown toy horse.', 1, NULL, 40, 60, NULL, NULL, 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2523, 'Toy horsey', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2524, 'Toy horsey', 'An inexpensive white/black/grey/brown toy horse.', 1, NULL, 40, 60, NULL, NULL, 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2525, 'Toy horsey', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2526, 'Toy horsey', 'An inexpensive white/black/grey/brown toy horse.', 1, NULL, 40, 60, NULL, NULL, 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2527, 'Toy horsey', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2528, 'Lamp', 'Wonder what happens if I rub it...', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, 0, NULL, NULL, NULL, NULL, 0), +(2529, 'Orb of light', 'A magical sphere that glimmers within.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2530, 'Bones', NULL, 1, NULL, NULL, NULL, NULL, NULL, 140, 140, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2531, 'Bones', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2532, 'Iron fire arrows', 'unlit: Arrows with iron heads and oil-soaked cloth. lit: An easy to make, iron-headed fire arrow.', 1, NULL, 4, 6, NULL, NULL, NULL, 316, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,10', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2533, 'Iron fire arrows', 'unlit: Arrows with iron heads and oil-soaked cloth. lit: An easy to make, iron-headed fire arrow.', 1, NULL, 4, 6, NULL, NULL, NULL, 305, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,10', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2534, 'Steel fire arrows', 'unlit: Arrows with steel heads and oil-soaked cloth. lit: An easy to make, steel-headed fire arrow.', 1, NULL, 4, 6, NULL, NULL, NULL, 325, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,16', NULL, NULL, NULL, NULL, NULL, NULL, '{4,5}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2535, 'Steel fire arrows', 'unlit: Arrows with steel heads and oil-soaked cloth. lit: An easy to make, steel-headed fire arrow.', 1, NULL, 4, 6, NULL, NULL, NULL, 327, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,16', NULL, NULL, NULL, NULL, NULL, NULL, '{4,5}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2536, 'Mithril fire arrows', 'unlit: Arrows with mithril heads and oil-soaked cloth. lit: An easy to make, mithril-headed fire arrow.', 1, NULL, 4, 6, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,22', NULL, NULL, NULL, NULL, NULL, NULL, '{4,20}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2537, 'Mithril fire arrows', 'unlit: Arrows with mithril heads and oil-soaked cloth. lit: An easy to make, mithril-headed fire arrow.', 1, NULL, 4, 6, NULL, NULL, NULL, 63, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,22', NULL, NULL, NULL, NULL, NULL, NULL, '{4,20}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2538, 'Adamant fire arrows', 'unlit: Arrows with adamant heads and oil-soaked cloth.lit: An easy-to-make, Adamant-headed fire arrow.', 1, NULL, 4, 6, NULL, NULL, NULL, 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,31', NULL, NULL, NULL, NULL, NULL, NULL, '{4,30}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2539, 'Adamant fire arrows', 'unlit: Arrows with adamant heads and oil-soaked cloth.lit: An easy-to-make, Adamant-headed fire arrow.', 1, NULL, 4, 6, NULL, NULL, NULL, 127, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,31', NULL, NULL, NULL, NULL, NULL, NULL, '{4,30}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2540, 'Rune fire arrows', 'An easy to make, rune-headed fire arrow.', 1, NULL, 4, 6, NULL, NULL, NULL, 539, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,49', NULL, NULL, NULL, NULL, NULL, NULL, '{4,40}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2541, 'Rune fire arrows', 'An easy to make, rune-headed fire arrow.', 1, NULL, 4, 6, NULL, NULL, NULL, 682, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,49', NULL, NULL, NULL, NULL, NULL, NULL, '{4,40}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2550, 'Ring of recoil', 'An enchanted ring.', 1, NULL, 360, 540, NULL, NULL, NULL, 943, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(2551, 'Ring of recoil', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 943, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(2552, 'Ring of duelling(8)', 'An enchanted ring.', 1, NULL, 510, 765, NULL, NULL, 770, 1237, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2553, 'Ring of duelling(8)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1237, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2554, 'Ring of duelling(7)', 'An enchanted ring.', 1, NULL, 510, 765, NULL, NULL, 770, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2555, 'Ring of duelling(7)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2556, 'Ring of duelling(6)', 'An enchanted ring.', 1, NULL, 510, 765, NULL, NULL, 770, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2557, 'Ring of duelling(6)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2558, 'Ring of duelling(5)', 'An enchanted ring.', 1, NULL, 510, 765, NULL, NULL, 770, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2559, 'Ring of duelling(5)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2560, 'Ring of duelling(4)', 'An enchanted ring.', 1, NULL, 510, 765, NULL, NULL, 770, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2561, 'Ring of duelling(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2562, 'Ring of duelling(3)', 'An enchanted ring.', 1, NULL, 510, 765, NULL, NULL, 770, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2563, 'Ring of duelling(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2564, 'Ring of duelling(2)', 'An enchanted ring.', 1, NULL, 510, 765, NULL, NULL, 770, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2565, 'Ring of duelling(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2566, 'Ring of duelling(1)', 'An enchanted ring.', 1, NULL, 510, 765, NULL, NULL, 770, 594, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2567, 'Ring of duelling(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 594, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2568, 'Ring of forging', 'An enchanted ring.', 1, NULL, 810, 1215, NULL, NULL, NULL, 1103, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2569, 'Ring of forging', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1103, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2570, 'Ring of life', 'An enchanted ring.', 1, NULL, 1410, 2115, NULL, NULL, 3000, 4540, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2571, 'Ring of life', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4540, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2572, 'Ring of wealth', 'An enchanted ring.', 1, NULL, 7050, 10575, NULL, NULL, NULL, 29800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2573, 'Ring of wealth', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 29800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2574, 'Sextant', 'Used by navigators to find their position in RuneScape.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2575, 'Watch', 'A fine looking time piece.', NULL, NULL, 40, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2576, 'Chart', 'A navigator\'s chart of RuneScape.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2577, 'Ranger boots', 'Lightweight boots ideal for rangers.', 1, 1, 80, 120, NULL, NULL, NULL, 13900000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,-10,8,2,3,4,2,0,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{4,40}', 0.2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2578, 'Ranger boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 13900000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2579, 'Wizard boots', 'Slightly magical boots.', 1, 1, 80, 120, NULL, NULL, NULL, 747300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,4,0,0,0,0,4,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{6,20}', 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2580, 'Wizard boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 747300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2581, 'Robin hood hat', 'Endorsed by Robin Hood.', 1, 1, 180, 270, NULL, NULL, NULL, 4400000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-10,8,4,6,8,4,4,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{4,40}', 0.2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2582, 'Robin hood hat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4400000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2583, 'Black platebody (t)', 'Black platebody with trim.', 1, NULL, 1536, 2304, NULL, NULL, NULL, 74900, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '1,0,2', '0,0,0,-30,-10,41,40,30,-6,40,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}', 9.07, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2584, 'Black platebody (t)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 74900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2585, 'Black platelegs (t)', 'Black platelegs with trim.', 1, NULL, 768, 1152, NULL, NULL, NULL, 39900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,-21,-7,21,20,19,-4,20,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}', 9, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2586, 'Black platelegs (t)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 39900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2587, 'Black full helm(t)', 'Black full helmet with trim.', 1, NULL, 422, 633, NULL, NULL, NULL, 82200, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,12,13,10,-1,12,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}', 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2588, 'Black full helm(t)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 82200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2589, 'Black kiteshield (t)', 'Black kiteshield with trim.', 1, NULL, 652, 979, NULL, NULL, 2072, 73000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '1,0,2', '0,0,0,-8,-2,17,19,18,-1,18,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}', 5, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2590, 'Black kiteshield (t)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 73000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2591, 'Black platebody (g)', 'Black platebody with gold trim.', 1, NULL, 1536, 2304, NULL, NULL, NULL, 589000, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '1,0,2', '0,0,0,-30,-10,41,40,30,-6,40,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}', 9.07, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2592, 'Black platebody (g)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 589000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2593, 'Black platelegs (g)', 'Black platelegs with gold trim.', 1, NULL, 768, 1152, NULL, NULL, NULL, 216700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,-21,-7,21,20,19,-4,20,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}', 9, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2594, 'Black platelegs (g)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 216700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2595, 'Black full helm(g)', 'Black full helmet with gold trim.', 1, NULL, 422, 633, NULL, NULL, NULL, 364800, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,12,13,10,-1,12,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}', 2.7, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2596, 'Black full helm(g)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 364800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2597, 'Black kiteshield (g)', 'Black kiteshield with gold trim.', 1, NULL, 652, 979, NULL, NULL, NULL, 355600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '1,0,2', '0,0,0,-8,-2,17,19,18,-1,18,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}', 5, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2598, 'Black kiteshield (g)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 355600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2599, 'Adam platebody (t)', 'Adamant platebody with trim.', 1, NULL, 5120, 7680, NULL, NULL, NULL, 104000, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '2,0,4', '0,0,0,-30,-10,65,63,55,-6,63,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 9.07, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2600, 'Adam platebody (t)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 104000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2601, 'Adam platelegs (t)', 'These look heavy', 1, NULL, 2560, 3840, NULL, NULL, 6464, 23200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '1,0,3', '0,0,0,-21,-7,33,31,29,-4,31,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 10, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2602, 'Adam platelegs (t)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 23200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2603, 'Adam kiteshield (t)', 'A large metal shield.', 1, NULL, 2176, 3264, NULL, NULL, NULL, 49100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,6', '0,0,0,-8,-2,27,31,29,-1,29,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 5.8, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2604, 'Adam kiteshield (t)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 49100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2605, 'Adam full helm(t)', 'Adamant full helm with trim', 1, NULL, 1408, 2112, NULL, NULL, NULL, 85000, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,2', '0,0,0,-6,-2,19,21,16,-1,19,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 2.7, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2606, 'Adam full helm(t)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 85000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2607, 'Adam platebody (g)', 'Adamant platebody with gold trim.', 1, NULL, 5120, 7680, NULL, NULL, NULL, 359500, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '2,0,4', '0,0,0,-30,-10,65,63,55,-6,63,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 9.07, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2608, 'Adam platebody (g)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 359500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2609, 'Adam platelegs (g)', 'Adamant platelegs with gold trim.', 1, NULL, 2560, 3840, NULL, NULL, 6464, 94300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '1,0,3', '0,0,0,-21,-7,33,31,29,-4,31,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 10, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2610, 'Adam platelegs (g)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 94300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2611, 'Adam kiteshield (g)', 'Adamant kiteshield with gold trim.', 1, NULL, 2176, 3264, NULL, NULL, NULL, 170100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,6', '0,0,0,-8,-2,27,31,29,-1,29,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 6, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2612, 'Adam kiteshield (g)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 170100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2613, 'Adam full helm(g)', 'Adamant full helmet with gold trim.', 1, NULL, 1408, 2112, NULL, NULL, NULL, 222400, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,2', '0,0,0,-6,-2,19,21,16,-1,19,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 2.7, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2614, 'Adam full helm(g)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 222400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2615, 'Rune platebody (g)', 'Rune platebody with gold trim.', 1, 1, 26000, 39000, NULL, NULL, NULL, 426200, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '3,0,6', '0,0,0,-30,-10,82,80,72,-6,80,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 9.07, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2616, 'Rune platebody (g)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 426200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2617, 'Rune platelegs (g)', 'Rune platelegs with gold trim.', 1, 1, 25600, 38400, NULL, NULL, 64000, 243400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '2,0,4', '0,0,0,-21,-7,51,49,47,-4,49,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 9, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2618, 'Rune platelegs (g)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 243400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2619, 'Rune full helm(g)', 'Rune full helmet with gold trim.', 1, 1, 14080, 21120, NULL, NULL, 35000, 506800, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,3', '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2620, 'Rune full helm(g)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 506800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2621, 'Rune kiteshield (g)', 'Rune kiteshield with gold trim', 1, 1, 21760, 32640, NULL, NULL, NULL, 392700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 5, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2622, 'Rune kiteshield (g)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 392700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2623, 'Rune platebody (t)', 'Rune platebody with trim.', 1, 1, 26000, 39000, NULL, NULL, NULL, 162700, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '3,0,6', '0,0,0,-30,-10,82,80,72,-6,80,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 9.07, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2624, 'Rune platebody (t)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 162700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2625, 'Rune platelegs (t)', 'Rune platelegs with trim!', 1, 1, 25600, 38400, NULL, NULL, NULL, 95400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '2,0,4', '0,0,0,-21,-7,51,49,47,-4,49,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 9, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2626, 'Rune platelegs (t)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 95400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2627, 'Rune full helm (t)', 'Rune full helmet with trim.', 1, 1, 14080, 21120, NULL, NULL, NULL, 216600, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,3', '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 2.7, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2628, 'Rune full helm (t)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 216600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2629, 'Rune kiteshield (t)', 'A large, metal shield with a nice trim.', 1, 1, 21760, 32640, NULL, NULL, NULL, 160300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 5, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2630, 'Rune kiteshield (t)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 160300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2631, 'Highwayman mask', 'Your money or your life!', 1, 1, 16, 24, NULL, NULL, NULL, 83500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2632, 'Highwayman mask', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 83500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2633, 'Blue beret', 'Parlez-vous francais? (Do you speak French?)', 1, 1, 32, 48, NULL, NULL, NULL, 34300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2634, 'Blue beret', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 34300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2635, 'Black beret', 'Parlez-vous francais?(Do you speak French?)', 1, 1, 32, 48, NULL, NULL, NULL, 117500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2636, 'Black beret', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 117500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2637, 'White beret', 'Parlez-vous francais? (Do you speak French?)', 1, 1, 32, 48, NULL, NULL, NULL, 328000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2638, 'White beret', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 328000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2639, 'Tan cavalier', 'All for one and one for all!', 1, 1, 80, 120, NULL, NULL, NULL, 29100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2640, 'Tan cavalier', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 29100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2641, 'Dark cavalier', 'All for one and one for all!', 1, 1, 80, 120, NULL, NULL, NULL, 23600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2642, 'Dark cavalier', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 23600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2643, 'Black cavalier', 'All for one and one for all!', 1, 1, 80, 120, NULL, NULL, NULL, 384500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2644, 'Black cavalier', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 384500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2645, 'Red headband', 'A minimalist\'s hat.', 1, 1, 16, 24, NULL, NULL, NULL, 91300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2646, 'Red headband', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 91300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2647, 'Black headband', 'A minimalist\'s hat.', 1, 1, 16, 24, NULL, NULL, NULL, 32900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2648, 'Black headband', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 32900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2649, 'Brown headband', 'A minimalist\'s hat.', 1, 1, 16, 24, NULL, NULL, NULL, 17800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2650, 'Brown headband', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 17800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2651, 'Pirate\'s hat', 'Shiver me timbers!', 1, NULL, 72, 108, NULL, NULL, NULL, 82500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2652, 'Pirate\'s hat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 82500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2653, 'Zamorak platebody', 'Rune platebody in the colours of Zamorak.', 1, 1, 26000, 39000, NULL, NULL, NULL, 809000, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '3,0,6', '0,0,0,-30,-10,82,80,72,-6,80,40,0,1,0,1', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 9, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2654, 'Zamorak platebody', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 809000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2655, 'Zamorak platelegs', 'Rune platelegs in the colours of Zamorak.', 1, 1, 25600, 38400, NULL, NULL, NULL, 281500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '2,0,4', '0,0,0,-21,-7,51,49,47,-4,49,15,0,1,0,1', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 9, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2656, 'Zamorak platelegs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 281500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2657, 'Zamorak full helm', 'A full helmet in the colours of Zamorak.', 1, 1, 14080, 21120, NULL, NULL, NULL, 601500, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,3', '0,0,0,-6,-2,30,32,27,-1,30,7,0,1,0,1', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2658, 'Zamorak full helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 601500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2659, 'Zamorak kiteshield', 'A Rune kiteshield in the colours of Zamorak.', 1, 1, 21760, 32640, NULL, NULL, NULL, 499500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 5, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2660, 'Zamorak kiteshield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 499500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2661, 'Saradomin platebody', 'Rune platebody in the colours of Saradomin.', 1, 1, 26000, 39000, NULL, NULL, NULL, 1600000, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '3,0,6', '0,0,0,-30,-10,82,80,72,-6,80,40,0,1,0,1', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 9.07, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2662, 'Saradomin platebody', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1600000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2663, 'Saradomin platelegs', 'Rune platelegs in the colours of Saradomin!', 1, 1, 25600, 38400, NULL, NULL, NULL, 444000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '2,0,4', '0,0,0,-21,-7,51,49,47,-4,49,15,0,0,0,1', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 9, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2664, 'Saradomin platelegs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 444000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2665, 'Saradomin full helm', 'Rune full helmet in the colours of Saradomin.', 1, 1, 14080, 21120, NULL, NULL, NULL, 1100000, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,3', '0,0,0,-6,-2,30,32,27,-1,30,7,0,1,0,1', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2666, 'Saradomin full helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1100000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2667, 'Saradomin kiteshield', 'Rune kiteshield in the colours of Saradomin.', 1, 1, 21760, 32640, NULL, NULL, NULL, 795900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 5.4, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2668, 'Saradomin kiteshield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 795900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2669, 'Guthix platebody', 'Rune platebody in the colours of Guthix.', 1, 1, 26000, 39000, NULL, NULL, NULL, 307900, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '3,0,6', '0,0,0,-30,-10,82,80,72,-6,80,40,0,1,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 9.07, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2670, 'Guthix platebody', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 307900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2671, 'Guthix platelegs', 'Rune platelegs in the colours of Guthix.', 1, 1, 25600, 38400, NULL, NULL, NULL, 169900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '2,0,4', '0,0,0,-21,-7,51,49,47,-4,49,15,0,1,0,1', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 9, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2672, 'Guthix platelegs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 169900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2673, 'Guthix full helm', 'A rune full helmet in the colours of Guthix.', 1, 1, 14080, 21120, NULL, NULL, NULL, 323100, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,3', '0,0,0,-6,-2,30,32,27,-1,30,7,0,1,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2674, 'Guthix full helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 323100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2675, 'Guthix kiteshield', 'Rune kiteshield in the colours of Guthix.', 1, 1, 21760, 32640, NULL, NULL, NULL, 247300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 5.4, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2676, 'Guthix kiteshield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 247300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(2677, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(2678, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2679, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2680, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2681, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2682, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2683, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2684, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2685, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2686, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2687, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2688, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2689, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2690, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2691, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2692, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2693, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2694, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2695, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2696, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2697, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2698, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2699, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2700, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2701, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2702, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2703, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2704, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2705, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2706, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2707, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2708, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2709, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2710, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2711, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2712, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2713, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2714, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2715, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2716, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2717, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2718, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2719, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2720, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2721, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2722, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2723, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2724, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2725, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2726, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2727, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2728, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2729, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2730, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2731, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2732, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2733, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2734, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2735, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2736, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2737, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2738, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2739, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2740, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2741, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2742, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2743, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2744, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2745, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2746, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2747, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2748, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2773, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2774, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2775, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2776, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2777, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2778, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2779, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2780, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2781, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2782, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2783, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2784, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2785, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2786, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2787, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2788, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2789, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2790, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2791, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2792, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2793, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2794, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2795, 'Puzzle box', 'I need to solve this.', NULL, NULL, 40, 60, NULL, 'You can reclaim this item from the place you found it.', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2796, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2797, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2798, 'Puzzle box', 'I need to solve this.', NULL, NULL, 40, 60, NULL, 'You can reclaim this item from the place you found it.', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2799, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2800, 'Puzzle box', 'I need to solve this.', NULL, NULL, 40, 60, NULL, 'You can reclaim this item from the place you found it.', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2801, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2802, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2803, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2804, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2805, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2806, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2807, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2808, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2809, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2810, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2811, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2812, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2813, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2814, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(2815, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2816, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2817, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2818, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2819, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2820, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2821, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2822, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2823, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2824, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2825, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2826, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2827, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2828, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2829, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2830, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2831, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2833, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2835, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2837, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2839, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2841, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2842, 'Challenge scroll', 'I need to answer this correctly.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2843, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2844, 'Challenge scroll', 'I need to answer this correctly.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2845, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2846, 'Challenge scroll', 'I need to answer this correctly.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2847, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2848, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2849, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2850, 'Challenge scroll', 'I need to answer this correctly.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2851, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2852, 'Challenge scroll', 'I need to answer this correctly.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2853, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2854, 'Challenge scroll', 'I need to answer this correctly.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2855, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2856, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2857, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2858, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2859, 'Wolf bones', 'Bones of a recently slain wolf.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1266, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2860, 'Wolf bones', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1266, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2861, 'Wolfbone arrowtips', 'I can make an ogre arrow with these.', 1, NULL, 1, 1, NULL, NULL, 5, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2862, 'Achey tree logs', 'These logs are longer than normal.', 1, NULL, 1, 2, NULL, NULL, NULL, 169, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(2863, 'Achey tree logs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 169, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(2864, 'Ogre arrow shaft', 'A wooden arrow shaft', 1, NULL, NULL, NULL, NULL, NULL, NULL, 47, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2865, 'Flighted ogre arrow', 'An ogre arrow with four flights attached.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 172, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2866, 'Ogre arrow', 'A large ogre arrow with a bone tip.', 1, NULL, 10, 15, NULL, NULL, 25, 49, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,22', NULL, NULL, NULL, NULL, NULL, NULL, '{4,30}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2871, 'Ogre bellows', 'A large pair of ogre bellows. If filled with gas (1-3): A large pair of ogre bellows, it has x load(s) of swamp gas in it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2872, 'Ogre bellows (3)', 'A large pair of ogre bellows. If filled with gas (1-3): A large pair of ogre bellows, it has x load(s) of swamp gas in it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2873, 'Ogre bellows (2)', 'A large pair of ogre bellows. If filled with gas (1-3): A large pair of ogre bellows, it has x load(s) of swamp gas in it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2874, 'Ogre bellows (1)', 'A large pair of ogre bellows. If filled with gas (1-3): A large pair of ogre bellows, it has x load(s) of swamp gas in it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2875, 'Bloated toad', 'An inflated toad.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2876, 'Raw chompy', 'I need to cook this first.', 1, NULL, 34, 51, NULL, NULL, NULL, 2145, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2877, 'Raw chompy', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2145, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2878, 'Cooked chompy', 'It might look delicious to an ogre.Roasted chompy bird.', 1, NULL, 52, 78, NULL, NULL, 130, 95, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2879, 'Cooked chompy', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 95, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(2881, 'Ruined chompy', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2882, 'Seasoned chompy', 'It has been deliciously seasoned to taste wonderful for ogres.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2883, 'Ogre bow', 'More powerful than a normal bow, useful against large game birds.', NULL, NULL, 200, 300, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 8, NULL, '0,0,0,0,38,0,0,0,0,0,0,0,0,0,0', 16, NULL, 1, NULL, NULL, '2700,0,0,0', '{4,30}', 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2886, 'Battered book', 'Book of the elemental shield.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2887, 'Battered key', 'An old battered key. (Elemental Workshop I)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2888, 'A stone bowl', 'This is an empty stone bowl. / This is a stone bowl full of lava.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2889, 'A stone bowl', 'This is an empty stone bowl. / This is a stone bowl full of lava.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2890, 'Elemental shield', 'A shield made in the Elemental Workshop.', 1, NULL, 8, 12, NULL, NULL, 2000, 709, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,0,0,0,0,0,6,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2891, 'Elemental shield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 709, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2892, 'Elemental ore', 'This needs refining.', NULL, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2894, 'Boots', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1570, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,0,0,0,1,1,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2895, 'Boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1570, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2896, 'Robe top', 'The ultimate in gnome design, now in [colour].', 1, NULL, 72, 108, NULL, NULL, 180, 867, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2897, 'Robe top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 867, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2898, 'Robe bottoms', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 741, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2899, 'Robe bottoms', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 741, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2900, 'Hat', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 844, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,3,0,0,0,0,3,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2901, 'Hat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 844, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2902, 'Gloves', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1039, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,0,0,0,1,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(2903, 'Gloves', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1039, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(2904, 'Boots', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1359, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,0,0,0,1,1,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2905, 'Boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1359, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2906, 'Robe top', 'The ultimate in gnome design, now in [colour].', 1, NULL, 72, 108, NULL, NULL, 180, 958, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2907, 'Robe top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 958, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2908, 'Robe bottoms', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 474, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2909, 'Robe bottoms', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 474, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2910, 'Hat', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1445, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,3,0,0,0,0,3,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2911, 'Hat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1445, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2912, 'Gloves', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1254, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,0,0,0,1,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(2913, 'Gloves', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1254, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(2914, 'Boots', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1054, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,0,0,0,1,1,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2915, 'Boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1054, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2916, 'Robe top', 'The ultimate in gnome design, now in [colour].', 1, NULL, 72, 108, NULL, NULL, 180, 789, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2917, 'Robe top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 789, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2918, 'Robe bottoms', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 603, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2919, 'Robe bottoms', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 603, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2920, 'Hat', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 997, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,3,0,0,0,0,3,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2921, 'Hat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 997, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2922, 'Gloves', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1221, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,0,0,0,1,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(2923, 'Gloves', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1221, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(2924, 'Boots', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 737, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,0,0,0,1,1,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2925, 'Boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 737, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2926, 'Robe top', 'The ultimate in gnome design, now in [colour].', 1, NULL, 72, 108, NULL, NULL, 180, 504, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2927, 'Robe top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 504, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2928, 'Robe bottoms', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 637, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2929, 'Robe bottoms', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 637, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2930, 'Hat', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 925, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,3,0,0,0,0,3,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2931, 'Hat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 925, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2932, 'Gloves', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1829, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,0,0,0,1,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(2933, 'Gloves', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1829, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(2934, 'Boots', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 988, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,0,0,0,1,1,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2935, 'Boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 988, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2936, 'Robe top', 'The ultimate in gnome design, now in [colour].', 1, NULL, 72, 108, NULL, NULL, 180, 925, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2937, 'Robe top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 925, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2938, 'Robe bottoms', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 927, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2939, 'Robe bottoms', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 927, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2940, 'Hat', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1209, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,3,0,0,0,0,3,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2941, 'Hat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1209, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2942, 'Gloves', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 634, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,0,0,0,1,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(2943, 'Gloves', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 634, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(2944, 'Golden key', 'A key made from solid gold', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2945, 'Iron key', 'A key made of solid iron.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2946, 'Golden tinderbox', 'A replica tinderbox made of solid gold.', NULL, NULL, 120, 180, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2947, 'Golden candle', 'A replica candle made of solid gold.', NULL, NULL, 120, 180, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2948, 'Golden pot', 'A replica pot made of solid gold.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2949, 'Golden hammer', 'A replica hammer made of solid gold.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2951, 'Golden needle', 'A replica needle made of solid gold.', NULL, NULL, 120, 180, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2952, 'Wolfbane', 'A silver dagger that can prevent werewolves changing form.', NULL, NULL, 120, 180, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '11,5,-4,1,0,0,0,0,1,0,1,10,5,0,0', 5, NULL, NULL, '400,400,401,400', 378, '2517,2517,2500,2517', NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2953, 'Bucket of water', 'It\'s a bucket of water.', 1, NULL, 2, 3, NULL, NULL, NULL, 74, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2954, 'Bucket of water', 'It\'s a bucket of water.', 1, NULL, 2, 3, NULL, NULL, NULL, 74, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2955, 'Moonlight mead', 'A foul smelling brew.', 1, NULL, 2, 3, NULL, NULL, 5, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2956, 'Moonlight mead', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2957, 'Druid pouch', 'A druid pouch.', NULL, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2958, 'Druid pouch', 'A druid pouch.', NULL, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2959, 'Rotten food', 'Erhhh! It stinks.', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2960, 'Rotten food', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2961, 'Silver sickle', 'It\'s a silver sickle.', 1, NULL, 70, 105, NULL, NULL, NULL, 28, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, '0,0,0,0,0,0,1,1,1,1,0,1,0,0,0', 6, NULL, NULL, '390,390,381,390', 397, NULL, NULL, 1.6, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2962, 'Silver sickle', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 28, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2963, 'Silver sickle(b)', 'It\'s a blessed silver sickle.', NULL, NULL, 100, 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, '0,0,0,0,0,0,1,1,1,1,0,1,5,0,0', 6, NULL, NULL, '390,390,381,390', 397, NULL, NULL, 1.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2964, 'Washing bowl', 'Used for washing your face, amongst other things.', NULL, NULL, 1, 2, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2966, 'Mirror', 'A small mirror, probably used for grooming.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2968, 'Druidic spell', 'A druidic spell given to you freely by the spirit of Filliman Tarlock.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2969, 'A used spell', 'A used druidic spell given to you freely by the spirit of Filliman Tarlock.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2970, 'Mort myre fungus', 'A mushroom from the swamps of Mort Myre.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 915, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2971, 'Mort myre fungus', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 915, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2972, 'Mort myre stem', 'A cutting from a budding branch.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 338, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2973, 'Mort myre stem', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 338, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2974, 'Mort myre pear', 'A pear picked from a dying bush in Mort Myre.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 975, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2975, 'Mort myre pear', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 975, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2976, 'Sickle mould', 'Used to make sickles.', 1, NULL, 4, 6, NULL, NULL, 10, 498, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2977, 'Sickle mould', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 498, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(2978, 'Chompy bird hat', 'A symbol of your chompy bird hunting prowess.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.33, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2979, 'Chompy bird hat', 'A symbol of your chompy bird hunting prowess.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.33, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2980, 'Chompy bird hat', 'A symbol of your chompy bird hunting prowess.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.33, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2981, 'Chompy bird hat', 'A symbol of your chompy bird hunting prowess.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.33, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2982, 'Chompy bird hat', 'A symbol of your chompy bird hunting prowess.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.33, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2983, 'Chompy bird hat', 'A symbol of your chompy bird hunting prowess.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.33, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2984, 'Chompy bird hat', 'A symbol of your chompy bird hunting prowess.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.33, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2985, 'Chompy bird hat', 'A symbol of your chompy bird hunting prowess.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.33, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2986, 'Chompy bird hat', 'A symbol of your chompy bird hunting prowess.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.33, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2987, 'Chompy bird hat', 'A symbol of your chompy bird hunting prowess.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.33, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(2988, 'Chompy bird hat', 'A symbol of your chompy bird hunting prowess.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.33, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2989, 'Chompy bird hat', 'A symbol of your chompy bird hunting prowess.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.33, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2990, 'Chompy bird hat', 'A symbol of your chompy bird hunting prowess.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.33, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2991, 'Chompy bird hat', 'A symbol of your chompy bird hunting prowess.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.33, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2992, 'Chompy bird hat', 'A symbol of your chompy bird hunting prowess.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.33, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2993, 'Chompy bird hat', 'A symbol of your chompy bird hunting prowess.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.33, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2994, 'Chompy bird hat', 'A symbol of your chompy bird hunting prowess.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.33, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2995, 'Chompy bird hat', 'A symbol of your chompy bird hunting prowess.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.33, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2996, 'Agility arena ticket', 'I can exchange these for further experience or items.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(2997, 'Pirate\'s hook', 'You should see the shark...', 1, NULL, 35, 53, NULL, NULL, 800, 1500000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,0,0,1,5,3,0,0,1,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, 10, NULL, NULL, NULL, NULL, NULL, 0), +(2998, 'Clean toadflax', 'A fresh herb.', 1, NULL, 19, 28, NULL, NULL, 3, 4056, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(2999, 'Clean toadflax', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4056, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3000, 'Clean snapdragon', 'A fresh herb.', 1, NULL, 23, 35, NULL, NULL, 10, 10500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3001, 'Clean snapdragon', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 10500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3002, 'Toadflax potion(unf)', 'I need another ingredient to finish this toadflax potion.', 1, NULL, 19, 28, NULL, NULL, NULL, 3988, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3003, 'Toadflax potion(unf)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3988, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3004, 'Snapdragon potion(unf)', 'I need another ingredient to finish this snapdragon potion.', 1, NULL, 23, 35, NULL, NULL, NULL, 9588, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3005, 'Snapdragon potion(unf)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 9588, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3006, 'Firework', 'Keep out of reach of children and familiars.', 1, NULL, 60, 90, NULL, NULL, 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3007, 'Firework', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3008, 'Energy potion(4)', 'X doses of energy potion.', 1, NULL, 44, 66, NULL, NULL, 145, 33, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3009, 'Energy potion(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 33, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3010, 'Energy potion(3)', 'X doses of energy potion.', 1, NULL, 44, 66, NULL, NULL, 145, 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3011, 'Energy potion(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3012, 'Energy potion(2)', 'X doses of energy potion.', 1, NULL, 44, 66, NULL, NULL, 145, 11, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3013, 'Energy potion(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 11, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3014, 'Energy potion(1)', 'X doses of energy potion.', 1, NULL, 44, 66, NULL, NULL, 145, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3015, 'Energy potion(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3016, 'Super energy(4)', 'X dose(s) of super energy potion.', 1, NULL, 92, 138, NULL, NULL, 4000, 3088, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3017, 'Super energy(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, 4000, 3088, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3018, 'Super energy(3)', 'X dose(s) of super energy potion.', 1, NULL, 92, 138, NULL, NULL, NULL, 2485, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3019, 'Super energy(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2485, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3020, 'Super energy(2)', 'X dose(s) of super energy potion.', 1, NULL, 92, 138, NULL, NULL, NULL, 1592, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3021, 'Super energy(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1592, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3022, 'Super energy(1)', 'X dose(s) of super energy potion.', 1, NULL, 92, 138, NULL, NULL, NULL, 1432, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3023, 'Super energy(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1432, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3024, 'Super restore(4)', 'X dose(s) of super restore potion.', 1, NULL, 96, 144, NULL, NULL, 12000, 11500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3025, 'Super restore(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, 12000, 11500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3026, 'Super restore(3)', 'X dose(s) of super restore potion.', 1, NULL, 96, 144, NULL, NULL, NULL, 8690, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3027, 'Super restore(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8690, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3028, 'Super restore(2)', 'X dose(s) of super restore potion.', 1, NULL, 96, 144, NULL, NULL, NULL, 5637, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3029, 'Super restore(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5637, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3030, 'Super restore(1)', 'X dose(s) of super restore potion.', 1, NULL, 96, 144, NULL, NULL, NULL, 2606, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3031, 'Super restore(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2606, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3032, 'Agility potion(4)', '(X) doses of Agility potion.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 276, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3033, 'Agility potion(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 276, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3034, 'Agility potion(3)', '(X) doses of Agility potion.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 148, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3035, 'Agility potion(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 148, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3036, 'Agility potion(2)', '(X) doses of Agility potion.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 115, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3037, 'Agility potion(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 115, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3038, 'Agility potion(1)', '(X) doses of Agility potion.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 306, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3039, 'Agility potion(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 306, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3040, 'Magic potion(4)', 'X dose(s) of Magic potion.', 1, NULL, 100, 150, NULL, NULL, NULL, 7214, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3041, 'Magic potion(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7214, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3042, 'Magic potion(3)', 'X dose(s) of Magic potion.', 1, NULL, 100, 150, NULL, NULL, NULL, 5285, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3043, 'Magic potion(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5285, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3044, 'Magic potion(2)', 'X dose(s) of Magic potion.', 1, NULL, 100, 150, NULL, NULL, NULL, 3697, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3045, 'Magic potion(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3697, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3046, 'Magic potion(1)', 'X dose(s) of Magic potion.', 1, NULL, 100, 150, NULL, NULL, NULL, 1826, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3047, 'Magic potion(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1826, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3048, 'Pirate\'s hook', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3049, 'Grimy toadflax', 'I need to clean this herb before I can use it.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 3996, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{15,30}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3050, 'Grimy toadflax', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3996, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3051, 'Grimy snapdragon', 'I need to clean this herb before I can use it.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 10500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{15,59}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3052, 'Grimy snapdragon', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 10500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3053, 'Lava battlestaff', 'It\'s a slightly magical stick.', 1, NULL, 6800, 10200, NULL, NULL, NULL, 9985, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '7,-1,28,10,0,2,3,1,10,0,0,35,0,0,0', 1, NULL, NULL, '419,419,419,419', 420, '2555,0,0,0', '{0,30}-{6,30}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3054, 'Mystic lava staff', 'It\'s a slightly magical stick.', 1, NULL, 18000, 27000, NULL, NULL, 160, 34100, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '10,-1,40,10,0,2,3,1,10,0,0,50,0,0,0', 1, NULL, NULL, '419,419,419,419', 420, '2555,0,0,0', '{0,40}-{6,40}', 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3055, 'Lava battlestaff', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3056, 'Mystic lava staff', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3057, 'Mime mask', 'A mime would wear this.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3058, 'Mime top', 'A mime would wear these.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3059, 'Mime legs', 'A mime would wear these.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3060, 'Mime gloves', 'A mime would wear these.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3061, 'Mime boots', 'A mime would wear these.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3062, 'Strange box', 'It seems to be humming...', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3093, 'Black dart', 'A deadly throwing dart with a black tip.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 628, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,7,0,0,0,0,0,0,0,0,0,6', 18, NULL, NULL, '582,582,582,582', 424, '2547,0,0,0', '{4,10}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3094, 'Black dart(p)', 'A deadly throwing dart with a black tip.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 740, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,7,0,0,0,0,0,0,0,0,0,6', 18, NULL, NULL, '582,582,582,582', 424, '2547,0,0,0', '{4,10}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3095, 'Bronze claws', 'A set of fighting claws.', 1, NULL, 19, 28, NULL, NULL, 48, 702, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2583, 3, 4, NULL, '3,4,-4,0,0,1,2,1,0,0,0,5,0,0,0', 9, NULL, 1, '390,390,390,390', 397, NULL, NULL, 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3096, 'Iron claws', 'A set of fighting claws.', 1, NULL, 20, 30, NULL, NULL, 50, 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2583, 3, 4, NULL, '4,6,-4,0,0,2,3,1,0,0,0,7,0,0,0', 9, NULL, 1, '390,390,390,390', 397, NULL, NULL, 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3097, 'Steel claws', 'A set of fighting claws.', 1, NULL, 70, 105, NULL, NULL, 175, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2583, 3, 4, NULL, '8,11,-4,0,0,3,6,2,0,0,0,12,0,0,0', 9, NULL, 1, '390,390,390,390', 397, NULL, '{0,5}', 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3098, 'Black claws', 'A set of fighting claws.', 1, NULL, 144, 216, NULL, NULL, NULL, 940, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2583, 3, 4, NULL, '10,14,-4,0,0,4,7,2,0,0,0,14,0,0,0', 9, NULL, 1, '390,390,390,390', 397, NULL, '{0,10}', 6, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3099, 'Mithril claws', 'A set of fighting claws.', 1, NULL, 190, 285, NULL, NULL, NULL, 114, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2583, 3, 4, NULL, '11,16,-4,0,0,4,8,2,0,0,0,17,0,0,0', 9, NULL, 1, '390,390,390,390', 397, NULL, '{0,20}', 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3100, 'Adamant claws', 'A set of fighting claws.', 1, NULL, 480, 720, NULL, NULL, NULL, 649, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2583, 3, 4, NULL, '18,23,-4,0,0,6,12,3,0,0,0,24,0,0,0', 9, NULL, 1, '390,390,390,390', 397, NULL, '{0,30}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3101, 'Rune claws', 'A set of fighting claws.', 1, 1, 4800, 7200, NULL, NULL, NULL, 6939, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2583, 3, 4, NULL, '26,38,-4,0,0,10,19,5,0,0,0,39,0,0,0', 9, 1, 1, '390,390,390,390', 397, NULL, '{0,40}', 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3102, 'Combination', 'The combination to Burthorpe Castle\'s equipment room.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3103, 'Iou', 'The guard wrote the IOU on the back of some paper.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3104, 'Secret way map', 'This map shows the secret way up to Death Plateau.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3105, 'Climbing boots', 'Boots made for general climbing; rocks a speciality.', NULL, NULL, 4, 7, 1, NULL, 1900, 51400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,2,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3106, 'Climbing boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 51400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3107, 'Spiked boots', 'Climbing boots with spikes.', NULL, NULL, 12, 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,2,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3109, 'Stone ball', 'Place on the stone mechanism in the right order to open the door.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3110, 'Stone ball', 'Place on the stone mechanism in the right order to open the door.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3111, 'Stone ball', 'Place on the stone mechanism in the right order to open the door.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3112, 'Stone ball', 'Place on the stone mechanism in the right order to open the door.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3113, 'Stone ball', 'Place on the stone mechanism in the right order to open the door.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3114, 'Certificate', 'Entrance certificate to the Imperial Guard.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3115, 'Bronze claws', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3116, 'Iron claws', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3117, 'Steel claws', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3118, 'Black claws', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3119, 'Mithril claws', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3120, 'Adamant claws', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3121, 'Rune claws', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3122, 'Granite shield', 'A solid stone shield.', 1, 1, 22400, 33600, NULL, NULL, NULL, 34800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '5,0,10', '0,0,0,-12,-8,40,42,38,0,65,50,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,50}-{2,50}', 6.8, 10, NULL, NULL, NULL, NULL, NULL, 0), +(3123, 'Shaikahan bones', 'Large glistening bones which glow with a pale yellow aura.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1975, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.5, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3124, 'Shaikahan bones', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1975, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3125, 'Jogre bones', 'Fairly big bones which smell distinctly of Jogre.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1023, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.8, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3126, 'Jogre bones', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1023, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3127, 'Burnt jogre bones', 'These blackened Jogre bones have been somehow burnt.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3128, 'Pasty jogre bones', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3129, 'Pasty jogre bones', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3130, 'Marinated j\' bones', 'Burnt Jogre bones marinated in lovely Karambwanji sauce. Perfect./Burnt Jogre bones marinated in lovely Karabwanji sauce. Not quite right.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3131, 'Pasty jogre bones', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3132, 'Pasty jogre bones', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3133, 'Marinated j\' bones', 'Burnt Jogre bones marinated in lovely Karambwanji sauce. Perfect./Burnt Jogre bones marinated in lovely Karabwanji sauce. Not quite right.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3134, 'Granite shield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3136, 'Cell key 1', 'The key to the troll prison.', NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3137, 'Cell key 2', 'The key to the troll prison.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3138, 'Potato cactus', 'How am I supposed to eat that?!', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1834, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3139, 'Potato cactus', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1834, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3140, 'Dragon chainbody', 'A series of connected metal rings.', 1, 1, 100000, 150000, NULL, NULL, NULL, 4300000, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '4,0,9', '0,0,0,-15,0,81,93,98,-3,82,50,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}', 6.8, 10, NULL, 1, NULL, NULL, NULL, 0), +(3141, 'Dragon chainbody', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4300000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(3142, 'Raw karambwan', 'A raw green octopus.', 1, NULL, 100, 150, NULL, NULL, 440, 1775, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(3143, 'Raw karambwan', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1775, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(3144, 'Cooked karambwan', 'Cooked octopus.', 1, NULL, 100, 150, NULL, NULL, 460, 1455, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3145, 'Cooked karambwan', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1455, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3146, 'Poison karambwan', 'Cooked octopus. It looks poorly cooked and quite dangerous.', NULL, NULL, 100, 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3147, 'Cooked karambwan', 'Cooked octopus.', 1, NULL, 100, 150, NULL, NULL, 460, 906, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3149, 'Burnt karambwan', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3150, 'Raw karambwanji', 'Small brightly coloured tropical fish.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3151, 'Karambwanji', 'Small brightly coloured tropical fish.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.99, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3152, 'Karambwan paste', 'Freshly made octopus paste. It smells quite nauseating.', NULL, NULL, 6, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3153, 'Karambwan paste', 'Freshly made octopus paste. It smells quite nauseating.', NULL, NULL, 6, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3154, 'Karambwan paste', 'Freshly made octopus paste. It smells quite nauseating.', NULL, NULL, 6, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3155, 'Karambwanji paste', 'This paste smells of raw fish./This paste smells of cooked fish.', NULL, NULL, 6, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3156, 'Karambwanji paste', 'This paste smells of raw fish./This paste smells of cooked fish.', NULL, NULL, 6, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3157, 'Karambwan vessel', 'A wide bodied and thin necked vessel, encrusted with sea salt. / The Karambwan Vessel is loaded with Karambwanji', 1, NULL, 2, 3, NULL, NULL, 5, 221, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{10,65}', 3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3158, 'Karambwan vessel', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 221, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3159, 'Karambwan vessel', 'A wide bodied and thin necked vessel, encrusted with sea salt. / The Karambwan Vessel is loaded with Karambwanji', 1, NULL, 2, 3, NULL, NULL, 5, 240, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{10,65}', 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3160, 'Karambwan vessel', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3161, 'Crafting manual', 'A set of instructions explaining how to construct a Karambwan vessel', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3162, 'Sliced banana', 'You swear you had more than three slices before.', 1, NULL, NULL, 1, NULL, NULL, NULL, 38, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3163, 'Sliced banana', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 38, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3164, 'Karamjan rum', 'A very strong spirit brewed in Karamja.', NULL, NULL, 12, 18, NULL, NULL, 27, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3165, 'Karamjan rum', 'A very strong spirit brewed in Karamja.', NULL, NULL, 12, 18, NULL, NULL, 27, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3166, 'Monkey corpse', 'It\'s the body of a dead monkey.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3167, 'Monkey skin', 'It\'s the skin of a (hopefully) dead monkey.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3168, 'Seaweed sandwich', 'A \'Seaweed in Monkey Skin\' sandwich. Perfect for statue repair.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3169, 'Stuffed monkey', 'A body of a dead monkey, tastefully stuffed with seaweed.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3170, 'Bronze spear(kp)', 'A bronze tipped spear.', 1, NULL, 10, 15, NULL, NULL, NULL, 266, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '5,5,5,0,0,1,1,0,0,0,0,6,0,0,0', 14, NULL, 1, '2080,2081,2082,2080', 2079, NULL, NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3171, 'Iron spear(kp)', 'An iron tipped spear.', 1, NULL, 36, 54, NULL, NULL, NULL, 304, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '8,8,8,0,0,1,1,0,0,0,0,10,0,0,0', 14, NULL, 1, '2080,2081,2082,2080', 2079, NULL, NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3172, 'Steel spear(kp)', 'A steel tipped spear.', 1, NULL, 130, 195, NULL, NULL, NULL, 503, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '12,12,12,0,0,1,1,0,0,0,0,12,0,0,0', 14, NULL, 1, '2080,2081,2082,2080', 2079, NULL, '{0,5}', 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3173, 'Mithril spear(kp)', 'A mithril tipped spear.', 1, NULL, 338, 507, NULL, NULL, NULL, 368, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '17,17,17,0,0,1,1,0,0,0,0,18,0,0,0', 14, NULL, 1, '2080,2081,2082,2080', 2079, NULL, '{0,20}', 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3174, 'Adamant spear(kp)', 'An adamant tipped spear.', 1, NULL, 832, 1248, NULL, NULL, NULL, 1093, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '24,24,24,0,0,1,1,0,0,0,0,28,0,0,0', 14, NULL, 1, '2080,2081,2082,2080', 2079, NULL, '{0,30}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3175, 'Rune spear(kp)', 'A rune tipped spear.', 1, 1, 8320, 12480, NULL, NULL, NULL, 12089, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '36,36,36,0,0,1,1,0,0,0,0,42,0,0,0', 14, NULL, 1, '2080,2081,2082,2080', 2079, NULL, '{0,40}', 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3176, 'Dragon spear(kp)', 'A dragon tipped spear.', 1, 1, 24960, 37440, NULL, NULL, NULL, 37446, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '55,55,55,0,0,5,5,5,5,5,0,60,0,0,0', 14, 1, 1, '2080,2081,2082,2080', 2079, NULL, '{0,60}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3177, 'Picture', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3178, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3179, 'Monkey bones', 'These are small/medium sized monkey bones.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 383, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3180, 'Monkey bones', 'These are small/medium sized monkey bones.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 383, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3181, 'Monkey bones', 'These are small/medium sized monkey bones.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 383, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3182, 'Monkey bones', 'These are small/medium sized monkey bones.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 383, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3183, 'Monkey bones', 'These are small/medium sized monkey bones.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 588, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3184, 'Monkey bones', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 588, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3185, 'Monkey bones', 'These are small/medium sized monkey bones.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 383, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3186, 'Monkey bones', 'These are small/medium sized monkey bones.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 383, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3187, 'Bones', NULL, 1, NULL, NULL, NULL, NULL, NULL, 140, 140, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3188, 'Cleaning cloth', 'A piece of silk which can be used to remove poison from weapons.', 1, NULL, 24, 36, NULL, NULL, 60, 286, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3189, 'Cleaning cloth', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 286, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3190, 'Bronze halberd', 'A bronze halberd.', 1, NULL, 32, 48, NULL, NULL, 104, 522, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 7, NULL, '7,8,0,-4,0,-1,1,2,0,0,0,8,0,0,0', 15, NULL, 1, '440,440,412,440', 430, NULL, NULL, 3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3191, 'Bronze halberd', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 522, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3192, 'Iron halberd', 'An iron halberd.', 1, NULL, 145, 218, NULL, NULL, 364, 124, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 7, NULL, '9,12,0,-4,0,-1,1,2,0,0,0,12,0,0,0', 15, NULL, 1, '440,440,412,440', 430, NULL, NULL, 3.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3193, 'Iron halberd', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 124, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3194, 'Steel halberd', 'A steel halberd.', 1, NULL, 400, 600, NULL, NULL, 1300, 726, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 7, NULL, '14,19,0,-4,0,-1,2,3,0,0,0,20,0,0,0', 15, NULL, 1, '440,440,412,440', 430, NULL, '{0,5}', 3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3195, 'Steel halberd', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(3196, 'Black halberd', 'A black halberd.', 1, NULL, 768, 1152, NULL, NULL, 2496, 4344, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 7, NULL, '19,25,0,-4,0,-1,2,3,0,0,0,20,0,0,0', 15, NULL, 1, '440,440,412,440', 430, NULL, '{0,5}-{2,10}', 3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3197, 'Black halberd', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4344, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3198, 'Mithril halberd', 'A mithril halberd.', 1, NULL, 1352, 2028, NULL, NULL, 3380, 6995, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 7, NULL, '22,28,0,-4,0,-1,2,4,0,0,0,29,0,0,0', 15, NULL, 1, '440,440,412,440', 430, NULL, '{0,20}-{2,10}', 2.7, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3199, 'Mithril halberd', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 6995, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3200, 'Adamant halberd', 'An adamant halberd.', 1, NULL, 3328, 4992, NULL, NULL, 8320, 4690, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 7, NULL, '28,41,0,-4,0,-1,3,4,0,0,0,42,0,0,0', 15, NULL, 1, '440,440,412,440', 430, NULL, '{0,30}-{2,15}', 3.6, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3201, 'Adamant halberd', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4690, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3202, 'Rune halberd', 'A rune halberd.', 1, 1, 51200, 76800, NULL, NULL, 128000, 77100, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 7, NULL, '48,67,0,-4,0,-1,4,5,0,0,0,68,0,0,0', 15, NULL, 1, '440,440,412,440', 430, NULL, '{0,40}-{2,20}', 3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3203, 'Rune halberd', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 77100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3204, 'Dragon halberd', 'A dragon halberd.', 1, 1, 130000, 195000, NULL, NULL, 325000, 201000, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 7, NULL, '70,95,0,-4,0,-1,4,5,0,0,0,89,0,0,0', 15, 1, 1, '440,440,412,440', 430, NULL, '{0,60}-{2,30}', 3.1, 10, NULL, NULL, NULL, NULL, NULL, 0), +(3205, 'Dragon halberd', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 201000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(3206, 'King\'s message', 'A summons from King Lathas.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3207, 'Iorwerths message', 'A letter for King Lathas from Lord Iorwerth.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3208, 'Crystal pendant', 'Lord Iorwerth\'s crystal pendant.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3209, 'Sulphur', 'A piece of chemical formation.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3211, 'Limestone', 'Some limestone.', 1, NULL, 4, 6, NULL, NULL, 4, 238, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3212, 'Limestone', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 238, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3213, 'Quicklime', 'Some quicklime.', NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3214, 'Pot of quicklime', 'A pot of ground quicklime.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3215, 'Ground sulphur', 'A pile of ground sulphur.', NULL, NULL, 2, 3, NULL, NULL, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3216, 'Barrel', 'An empty barrel/A Splendid barrel.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 207, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3217, 'Barrel', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 207, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3218, 'Barrel bomb', 'A fused barrel full of fire oil.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 32, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3219, 'Barrel bomb', 'A fused barrel full of fire oil.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 32, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3220, 'Barrel of coal-tar', 'A barrel full of coal-tar.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 32, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3221, 'Barrel of naphtha', 'A barrel full of naphtha.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 32, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3222, 'Naphtha mix', 'A barrel full of naphtha and sulphur./A barrel full of naphtha and quicklime.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3223, 'Naphtha mix', 'A barrel full of naphtha and sulphur./A barrel full of naphtha and quicklime.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3224, 'Strip of cloth', 'A strip of cloth.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3226, 'Raw rabbit', 'Might taste better cooked.', 1, NULL, 8, 12, NULL, NULL, 67, 312, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(3227, 'Raw rabbit', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 312, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(3228, 'Cooked rabbit', 'Mmm this looks tasty.', 1, NULL, 7, 11, NULL, NULL, 19, 35, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3229, 'Cooked rabbit', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 35, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3230, 'Big book of bangs', 'A book by Mel Achy.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3232, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3234, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3236, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3238, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3239, 'Bark', 'Bark from a hollow tree.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 23, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3240, 'Bark', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 23, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3241, 'Man', 'One of RuneScape\'s many citizens. In Karamja or South of Falador: One of RuneScape\'s many citizens, apparently trying to be an explorer. In Lumbridge: One of Lumbridge\'s many citizens. In a Falador home: One of RuneScape\'s many citizens. He looks worried ', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3243, 'Farmer', 'He grows crops in the area.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3247, 'Rogue', 'Rogueish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3249, 'Guard', 'Varies, refer below.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3251, 'Knight of ardougne', 'A member of Ardougne\'s militia.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3253, 'Watchman', 'The strong arm of the law.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3255, 'Paladin', 'A holy warrior.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3259, 'Hero', 'Heroic!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3261, 'Goutweed', 'A pale, tough looking herb.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3262, 'Troll thistle', 'It\'s tough and spiky.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3263, 'Dried thistle', 'It\'ll be easier to grind now.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3264, 'Ground thistle', 'It\'s ready for mixing.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3265, 'Troll potion', 'It\'s part of Eadgar\'s plan.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3266, 'Drunk parrot', 'It\'s rather drunk.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3267, 'Dirty robe', 'It\'s dirty and smelly.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3268, 'Fake man', 'It\'s good enough to fool a troll.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3269, 'Storeroom key', 'The key to the Trollheim storeroom.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3270, 'Alco-chunks', 'Pineapple chunks dipped in a strong liquor.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3325, 'Vampire dust', 'That used to be a vampyre!', 1, NULL, NULL, 1, NULL, NULL, NULL, 381, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(3326, 'Vampire dust', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 381, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(3327, 'Myre snelm', 'An easy-to-make, marshy-coloured, Mort Myre snail shell helmet.', 1, NULL, 120, 180, NULL, NULL, NULL, 56, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-3,-1,7,8,6,-1,7,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3328, 'Myre snelm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 56, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3329, 'Blood\'n\'tar snelm', 'Rounded: A red and black snail shell helmet. Pointed: A red and black pointed snail shell helmet.', 1, NULL, 120, 180, NULL, NULL, 300, 291, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-3,-1,7,8,6,-1,7,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3330, 'Blood\'n\'tar snelm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 291, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3331, 'Ochre snelm', 'An easy-to-make, muddy-yellow, Mort Myre snail shell helmet.', 1, NULL, 120, 180, NULL, NULL, 300, 57, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-3,-1,7,8,6,-1,7,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3332, 'Ochre snelm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 57, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3333, 'Bruise blue snelm', 'A moody blue snail shell helmet, mort myre snail shell helm', 1, NULL, 120, 180, NULL, NULL, NULL, 73, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-3,-1,7,8,6,-1,7,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3334, 'Bruise blue snelm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 73, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3335, 'Broken bark snelm', 'An easy-to-make, orange-and-bark coloured, Mort Myre snail shell helmet.', 1, NULL, 120, 180, NULL, NULL, NULL, 63, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-3,-1,7,8,6,-1,7,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3336, 'Broken bark snelm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 63, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3337, 'Myre snelm', 'An easy-to-make, marshy-coloured, Mort Myre snail shell helmet.', 1, NULL, 120, 180, NULL, NULL, NULL, 58, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-3,-1,7,8,6,-1,7,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3338, 'Myre snelm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 58, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3339, 'Blood\'n\'tar snelm', 'Rounded: A red and black snail shell helmet. Pointed: A red and black pointed snail shell helmet.', 1, NULL, 120, 180, NULL, NULL, 300, 147, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-3,-1,7,8,6,-1,7,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3340, 'Blood\'n\'tar snelm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 147, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3341, 'Ochre snelm', 'An easy-to-make, muddy-yellow, Mort Myre snail shell helmet.', 1, NULL, 120, 180, NULL, NULL, 300, 54, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-3,-1,7,8,6,-1,7,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3342, 'Ochre snelm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 54, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3343, 'Bruise blue snelm', 'A moody blue snail shell helmet, mort myre snail shell helm', 1, NULL, 120, 180, NULL, NULL, NULL, 248, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-3,-1,7,8,6,-1,7,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3344, 'Bruise blue snelm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 248, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3345, 'Blamish myre shell', 'An easy-to-make, \'myre\'-coloured, Mort Myre snail shell; looks protective.', 1, NULL, 60, 90, NULL, NULL, NULL, 155, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3346, 'Blamish myre shell', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 155, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3347, 'Blamish red shell', 'An easy-to-make, red, Mort myre snail shell; looks protective.', 1, NULL, 60, 90, NULL, NULL, NULL, 590, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3348, 'Blamish red shell', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 590, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3349, 'Blamish ochre shell', 'An easy-to-make, muddy-yellow, Mort Myre snail shell; looks protective.', 1, NULL, 60, 90, NULL, NULL, NULL, 134, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3350, 'Blamish ochre shell', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 134, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3351, 'Blamish blue shell', 'An easy-to-make, blue, Mort Myre snail shell; looks protective.', 1, NULL, 60, 90, NULL, NULL, NULL, 230, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3352, 'Blamish blue shell', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 230, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3353, 'Blamish bark shell', 'An easy-to-make, bark-coloured, Mort Myre snail shell; looks protective.', 1, NULL, 60, 90, NULL, NULL, NULL, 195, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3354, 'Blamish bark shell', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 195, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3355, 'Blamish myre shell', 'An easy-to-make, \'myre\'-coloured, Mort Myre snail shell; looks protective.', 1, NULL, 60, 90, NULL, NULL, NULL, 145, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3356, 'Blamish myre shell', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 145, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3357, 'Blamish red shell', 'An easy-to-make, red, Mort myre snail shell; looks protective.', 1, NULL, 60, 90, NULL, NULL, NULL, 614, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3358, 'Blamish red shell', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 614, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3359, 'Blamish ochre shell', 'An easy-to-make, muddy-yellow, Mort Myre snail shell; looks protective.', 1, NULL, 60, 90, NULL, NULL, NULL, 173, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3360, 'Blamish ochre shell', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 173, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3361, 'Blamish blue shell', 'An easy-to-make, blue, Mort Myre snail shell; looks protective.', 1, NULL, 60, 90, NULL, NULL, NULL, 874, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3362, 'Blamish blue shell', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 874, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3363, 'Thin snail', 'The thin, slimy corpse of a deceased giant snail.', 1, NULL, 24, 36, NULL, NULL, 74, 2047, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3364, 'Thin snail', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2047, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3365, 'Lean snail', 'The lean, slimy corspe of a dead snail.', 1, NULL, 4, 6, NULL, NULL, NULL, 958, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3366, 'Lean snail', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 958, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3367, 'Fat snail', 'The fat, slimy, corpse of a deceased giant snail.', 1, NULL, 6, 9, NULL, NULL, 160, 971, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3368, 'Fat snail', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 971, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3369, 'Thin snail meat', 'A succulently slimy piece of sumptuous snail.', 1, NULL, 4, 6, NULL, NULL, NULL, 833, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3370, 'Thin snail meat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 833, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3371, 'Lean snail meat', 'A succulently slimey slice of sumptuous snail.', 1, NULL, 8, 12, NULL, NULL, NULL, 251, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3372, 'Lean snail meat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 251, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3373, 'Fat snail meat', 'A succulently slimy slice of sumptuous snail.', 1, NULL, 12, 18, NULL, NULL, NULL, 603, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4.5, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3374, 'Fat snail meat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 603, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3376, 'Burnt snail', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3377, 'Sample bottle', 'An empty sample bottle.', 1, NULL, 2, 3, NULL, NULL, 5, 14, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3378, 'Sample bottle', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 14, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3379, 'Slimy eel', 'A slime covered eel - yuck!', 1, NULL, NULL, NULL, NULL, NULL, NULL, 358, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3380, 'Slimy eel', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 358, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3381, 'Cooked slimy eel', 'A cooked slimy eel - not delicious, but pretty nutritious.', 1, NULL, NULL, NULL, 1, NULL, NULL, 274, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3382, 'Cooked slimy eel', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 274, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3385, 'Splitbark helm', 'A wooden helmet.', 1, 1, 4000, 6000, NULL, NULL, NULL, 5993, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '3,1,0', '0,0,0,3,-2,10,9,11,3,0,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{6,40}', 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3386, 'Splitbark helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5993, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3387, 'Splitbark body', 'Provides good protection.', 1, 1, 18000, 27000, NULL, NULL, NULL, 26700, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '6,3,0', '0,0,0,10,-10,36,26,42,15,0,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{6,40}', 4.5, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3388, 'Splitbark body', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 26700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3389, 'Splitbark legs', 'These should protect my legs.', 1, 1, 16000, 24000, NULL, NULL, NULL, 43700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '4,2,0', '0,0,0,7,-7,22,20,25,10,0,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{6,40}', 3.6, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3390, 'Splitbark legs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 43700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3391, 'Splitbark gauntlets', 'These should keep my hands safe.', 1, 1, 2000, 3000, NULL, NULL, NULL, 2786, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,2,-1,3,2,4,2,0,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{6,40}', 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3392, 'Splitbark gauntlets', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2786, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3393, 'Splitbark boots', 'Wooden foot protection.', 1, 1, 2000, 3000, NULL, NULL, NULL, 3808, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,2,-1,3,2,4,2,0,9,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{6,40}', 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3394, 'Splitbark boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3808, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3396, 'Loar remains', 'The remains of a deadly shade.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.35, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3397, 'Loar remains', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3398, 'Phrin remains', 'The remains of a deadly shade.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 249, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3399, 'Phrin remains', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 249, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3400, 'Riyl remains', 'The remains of a deadly shade.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 138, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3401, 'Riyl remains', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 138, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3402, 'Asyn remains', 'The remains of a deadly shade.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 334, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3403, 'Asyn remains', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 334, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3404, 'Fiyr remains', 'The remains of a deadly shade.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 5264, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3405, 'Fiyr remains', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5264, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3406, 'Ash potion(unf)', 'I need another ingredient to finish this potion.', 1, NULL, 4, 6, NULL, NULL, NULL, 137, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3407, 'Ash potion(unf)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 137, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3408, 'Serum 207 (4)', 'X doses serum 207 as described in Herbi Flax\'s diary.', NULL, NULL, 5, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3410, 'Serum 207 (3)', 'X doses serum 207 as described in Herbi Flax\'s diary.', NULL, NULL, 5, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3412, 'Serum 207 (2)', 'X doses serum 207 as described in Herbi Flax\'s diary.', NULL, NULL, 5, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3414, 'Serum 207 (1)', 'X doses serum 207 as described in Herbi Flax\'s diary.', NULL, NULL, 5, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3416, 'Serum 208 (4)', 'X doses permanent serum 208 as described in Herbi Flax\'s diary.', NULL, NULL, 5, 8, NULL, NULL, 208, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3417, 'Serum 208 (3)', 'X doses permanent serum 208 as described in Herbi Flax\'s diary.', NULL, NULL, 5, 8, NULL, NULL, 208, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3418, 'Serum 208 (2)', 'X doses permanent serum 208 as described in Herbi Flax\'s diary.', NULL, NULL, 5, 8, NULL, NULL, 208, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3419, 'Serum 208 (1)', 'X doses permanent serum 208 as described in Herbi Flax\'s diary.', NULL, NULL, 5, 8, NULL, NULL, 208, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3420, 'Limestone brick', 'A well carved limestone brick.', 1, NULL, 8, 12, NULL, NULL, 21, 178, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3421, 'Limestone brick', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 178, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3422, 'Olive oil(4)', 'X doses of olive oil.', 1, NULL, 10, 15, NULL, NULL, 26, 678, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3423, 'Olive oil(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 678, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3424, 'Olive oil(3)', 'X doses of olive oil.', 1, NULL, 10, 15, NULL, NULL, 26, 413, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3425, 'Olive oil(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 413, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3426, 'Olive oil(2)', 'X doses of olive oil.', 1, NULL, 10, 15, NULL, NULL, 26, 173, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3427, 'Olive oil(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 173, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3428, 'Olive oil(1)', 'X doses of olive oil.', 1, NULL, 10, 15, NULL, NULL, 26, 110, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3429, 'Olive oil(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 110, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3430, 'Sacred oil(4)', 'Sacred oil.', 1, NULL, 40, 60, NULL, NULL, NULL, 3587, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3431, 'Sacred oil(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3587, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3432, 'Sacred oil(3)', 'Sacred oil.', 1, NULL, 40, 60, NULL, NULL, NULL, 2596, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3433, 'Sacred oil(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2596, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3434, 'Sacred oil(2)', 'Sacred oil.', 1, NULL, 40, 60, NULL, NULL, NULL, 1713, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3435, 'Sacred oil(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1713, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3436, 'Sacred oil(1)', 'Sacred oil.', 1, NULL, 40, 60, NULL, NULL, NULL, 1846, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3437, 'Sacred oil(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1846, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3438, 'Pyre logs', 'Funeral logs used for burning loars.', 1, NULL, 3, 4, NULL, NULL, NULL, 853, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(3439, 'Pyre logs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 853, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(3440, 'Oak pyre logs', 'Oak logs prepared with sacred oil for a funeral pyre.', 1, NULL, 16, 24, NULL, NULL, NULL, 1122, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3441, 'Oak pyre logs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1122, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3442, 'Willow pyre logs', 'Willow logs prepared with sacred oil for a funeral pyre.', 1, NULL, 8, 12, NULL, NULL, NULL, 1164, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3443, 'Willow pyre logs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1164, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3444, 'Maple pyre logs', 'Maple logs prepared with sacred oil for a funeral pyre.', 1, NULL, 64, 96, NULL, NULL, NULL, 3313, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3445, 'Maple pyre logs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3313, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3446, 'Yew pyre logs', 'Yew logs prepared with sacred oil for a funeral pyre.', 1, NULL, 192, 288, NULL, NULL, NULL, 4424, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3447, 'Yew pyre logs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4424, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3448, 'Magic pyre logs', 'Magic logs prepared with sacred oil for a funeral pyre.', 1, NULL, 256, 384, NULL, NULL, NULL, 5611, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3449, 'Magic pyre logs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5611, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3450, 'Bronze key red', 'A bronze key with a blood-red painted eyelet. (Shades of Mort\'ton)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3451, 'Bronze key brown', 'A bronze key with a brown painted eyelet. (Shades of Mort\'ton)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3452, 'Bronze key crimson', 'A bronze key with a crimson painted eyelet. (Shades of Mort\'ton)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3453, 'Bronze key black', 'A bronze key with a black painted eyelet. (Shades of Mort\'ton)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(3454, 'Bronze key purple', 'A bronze key with a purple painted eyelet. (Shades of Mort\'ton)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3455, 'Steel key red', 'A steel key with a blood-red painted eyelet. (Shades of Mort\'ton)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3456, 'Steel key brown', 'A steel key with a brown painted eyelet. (Shades of Mort\'ton)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3457, 'Steel key crimson', 'A steel key with a crimson painted eyelet. (Shades of Mort\'ton)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3458, 'Steel key black', 'A steel key with a black painted eyelet. (Shades of Mort\'ton)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3459, 'Steel key purple', 'A steel key with a purple painted eyelet. (Shades of Mort\'ton)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3460, 'Black key red', 'A black key with a blood-red painted eyelet. (Shades of Mort\'ton)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3461, 'Black key brown', 'A black key with a brown painted eyelet. (Shades of Mort\'ton)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3462, 'Black key crimson', 'A black key with a crimson painted eyelet. (Shades of Mort\'ton)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3463, 'Black key black', 'A black key with a black painted eyelet. (Shades of Mort\'ton)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3464, 'Black key purple', 'A black key with a purple painted eyelet. (Shades of Mort\'ton)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3465, 'Silver key red', 'A silver key with a blood-red painted eyelet. (Shades of Mort\'ton)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3466, 'Silver key brown', 'A silver key with a brown painted eyelet. (Shades of Mort\'ton)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3467, 'Silver key crimson', 'A silver key with a crimson painted eyelet. (Shades of Mort\'ton)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3468, 'Silver key black', 'A silver key with a black painted eyelet. (Shades of Mort\'ton)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3469, 'Silver key purple', 'A silver key with a purple painted eyelet. (Shades of Mort\'ton)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3470, 'Fine cloth', 'Amazingly untouched by time.', 1, NULL, 200, 300, NULL, NULL, NULL, 956, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3471, 'Fine cloth', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 956, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3472, 'Black plateskirt (t)', 'Black plateskirt with trim.', 1, NULL, 768, 1152, NULL, NULL, NULL, 3077, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,-21,-7,21,20,19,-4,20,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}', 8, 2, NULL, NULL, NULL, NULL, NULL, 0), +(3473, 'Black plateskirt (g)', 'Black plateskirt with gold trim.', 1, NULL, 768, 1152, NULL, NULL, NULL, 10600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,-21,-7,21,20,19,-4,20,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}', 9, 2, NULL, NULL, NULL, NULL, NULL, 0), +(3474, 'Adam plateskirt (t)', 'Adamant plateskirt with trim.', 1, NULL, 2560, 3840, NULL, NULL, NULL, 4403, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '1,0,3', '0,0,0,-21,-7,33,31,29,-4,31,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 9, 2, NULL, NULL, NULL, NULL, NULL, 0), +(3475, 'Adam plateskirt (g)', 'Adamant plateskirt with gold trim.', 1, NULL, 2560, 3840, NULL, NULL, NULL, 11000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '1,0,3', '0,0,0,-21,-7,33,31,29,-4,31,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 9, 2, NULL, NULL, NULL, NULL, NULL, 0), +(3476, 'Rune plateskirt (g)', 'Rune plateskirt with gold trim.', 1, 1, 25600, 38400, NULL, NULL, NULL, 42500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '2,0,4', '0,0,0,-21,-7,51,49,47,-4,49,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 9, 2, NULL, NULL, NULL, NULL, NULL, 0), +(3477, 'Rune plateskirt (t)', 'Rune plateskirt with trim.', 1, 1, 25600, 38400, NULL, NULL, 81280, 38300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '2,0,4', '0,0,0,-21,-7,51,49,47,-4,49,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 8, 2, NULL, NULL, NULL, NULL, NULL, 0), +(3478, 'Zamorak plateskirt', 'Rune plateskirt in the colours of Zamorak.', 1, 1, 25600, 38400, NULL, NULL, NULL, 42000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '2,0,4', '0,0,0,-21,-7,51,49,47,-4,49,15,0,1,0,1', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 9, 2, NULL, NULL, NULL, NULL, NULL, 0), +(3479, 'Saradomin plateskirt', 'Rune plateskirt in the colours of Saradomin.', 1, 1, 25600, 38400, NULL, NULL, NULL, 44000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '2,0,4', '0,0,0,-21,-7,51,49,47,-4,49,15,0,1,0,1', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 9, 2, NULL, NULL, NULL, NULL, NULL, 0), +(3480, 'Guthix plateskirt', 'Rune plateskirt in the colours of Guthix.', 1, 1, 25600, 38400, NULL, NULL, NULL, 39100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '2,0,4', '0,0,0,-21,-7,51,49,47,-4,49,15,0,1,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 9, 2, NULL, NULL, NULL, NULL, NULL, 0), +(3481, 'Gilded platebody', 'Rune platebody with complete gold trim & plating.', 1, 1, 26000, 39000, NULL, NULL, NULL, 2500000, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '3,0,6', '0,0,0,-30,-10,82,80,72,-6,80,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 10, 2, NULL, NULL, NULL, NULL, NULL, 0), +(3482, 'Gilded platebody', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2500000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(3483, 'Gilded platelegs', 'Rune platelegs with gold plate.', 1, 1, 25600, 38400, NULL, NULL, NULL, 2200000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '2,0,4', '0,0,0,-21,-7,51,49,47,-4,49,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 9, 2, NULL, NULL, NULL, NULL, NULL, 0), +(3484, 'Gilded platelegs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2200000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(3485, 'Gilded plateskirt', 'Rune plateskirt with gold plate.', 1, 1, 25600, 38400, NULL, NULL, NULL, 162300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '2,0,4', '0,0,0,-21,-7,51,49,47,-4,49,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 9, 2, NULL, NULL, NULL, NULL, NULL, 0), +(3486, 'Gilded full helm', 'Rune full helmet with gold plate.', 1, 1, 14080, 21120, NULL, NULL, NULL, 477200, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,3', '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(3487, 'Gilded full helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 477200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(3488, 'Gilded kiteshield', 'Rune kiteshield with gold plate.', 1, 1, 21760, 32640, NULL, NULL, NULL, 515400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 5, 2, NULL, NULL, NULL, NULL, NULL, 0), +(3489, 'Gilded kiteshield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 515400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(3490, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3491, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3492, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3493, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3494, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3495, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3496, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3497, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3498, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3499, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3500, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3501, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3502, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3503, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3504, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3505, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3506, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3507, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3508, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3509, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3510, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3511, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3512, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3513, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3514, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3515, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3516, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3517, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3518, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3519, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3520, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3521, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3522, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3523, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3524, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3525, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3526, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3527, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3528, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3529, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3530, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3531, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3532, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3533, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3534, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3535, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3536, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3537, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3538, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3539, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3540, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3541, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3542, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3543, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3544, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3545, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3546, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3547, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3548, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3549, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3550, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3551, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3552, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3553, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3554, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3555, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3556, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3557, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3558, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3559, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3560, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3561, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3562, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3563, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3564, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3565, 'Puzzle box', 'I need to solve this.', NULL, NULL, 40, 60, NULL, 'You can reclaim this item from the place you found it.', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3566, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3567, 'Puzzle box', 'I need to solve this.', NULL, NULL, 40, 60, NULL, 'You can reclaim this item from the place you found it.', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3568, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3569, 'Puzzle box', 'I need to solve this.', NULL, NULL, 40, 60, NULL, 'You can reclaim this item from the place you found it.', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3570, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3571, 'Puzzle box', 'I need to solve this.', NULL, NULL, 40, 60, NULL, 'You can reclaim this item from the place you found it.', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3572, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3573, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3574, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3575, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3576, 'Puzzle box', 'I need to solve this.', NULL, NULL, 40, 60, NULL, 'You can reclaim this item from the place you found it.', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(3577, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3578, 'Puzzle box', 'I need to solve this.', NULL, NULL, 40, 60, NULL, 'You can reclaim this item from the place you found it.', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3579, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3580, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3581, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3582, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3583, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3584, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3585, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3586, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3587, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3588, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3589, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3590, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3591, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3592, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3593, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3594, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3595, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3596, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3597, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3598, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3599, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3600, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3601, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3602, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3603, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3604, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3605, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3607, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3609, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3610, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3611, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3612, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3613, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3614, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3615, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3616, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3617, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3618, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3668, 'Black plateskirt (t)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3669, 'Black plateskirt (g)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3670, 'Adam plateskirt (t)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3671, 'Adam plateskirt (g)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3672, 'Rune plateskirt (g)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3673, 'Rune plateskirt (t)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3674, 'Zamorak plateskirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3675, 'Saradomin plateskirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3676, 'Guthix plateskirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3677, 'Gilded plateskirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3678, 'Flamtaer hammer', 'An exquisitely shaped tool specially designed for fixing temples.', NULL, NULL, 5200, 7800, NULL, NULL, 13000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3685, 'Picture', 'A sealed letter of recommendation.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3688, 'Unstrung lyre', 'It\'s almost a musical instrument.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3689, 'Lyre', 'This will teleport me to Rellekka when I play it. A musical intrument that I can magically play.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3690, 'Enchanted lyre', 'This will teleport me to Rellekka when I play it. A musical intrument that I can magically play.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3691, 'Enchanted lyre(1)', 'This will teleport me to Rellekka when I play it. A musical intrument that I can magically play.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3692, 'Branch', 'I can use this to make a lyre.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3693, 'Golden fleece', 'I can spin this into golden wool.', NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3694, 'Golden wool', 'I can use this to make a lyre.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3695, 'Pet rock', 'The lowest maintenance pet you will ever have.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6657, 6661, 6658, 6660, 6659, 6662, 6663, 792, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3696, 'Hunters\' talisman', 'Talisman to bind the Draugen.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3697, 'Hunters\' talisman', 'Talisman to bind the Draugen.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3698, 'Exotic flower', 'Some flowers from a distant land.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3699, 'Fremennik ballad', 'A hauntingly beautiful love ballad.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3700, 'Sturdy boots', 'A pair of sturdy made custom boots.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3701, 'Tracking map', 'Could probably be a bit clearer?', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3702, 'Custom bow string', 'A finely crafted string for a custom bow', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3703, 'Unusual fish', 'An extremely odd, non-edible fish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3704, 'Sea fishing map', 'Map showing the best fishing spots out at sea.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3705, 'Weather forecast', 'An estimate of expected local weather conditions.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3706, 'Champions token', 'Shows the wearer is worthy of the Champions table.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3707, 'Legendary cocktail', 'Probably the greatest cocktail in the world.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3708, 'Fiscal statement', 'A signed statement promising a reduction on sales tax.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3709, 'Promissory note', 'A legally binding contract promising not to enter the longhall.', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3710, 'Warriors\' contract', 'This employment contract is for a warrior to act as a bodyguard.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3711, 'Keg of beer', 'A lot of beer in a barrel. Beer in a barrel - a specialty of the Fremennik Province.', 1, NULL, 130, 195, NULL, NULL, 325, 1555, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 20, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3712, 'Low alcohol keg', 'Suspiciously close to beer, but without the side effects.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 20, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3713, 'Strange object', 'It\'s some kind of weird little parcel thing.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3714, 'Lit strange object', 'It\'s some kind of weird little parcel thing.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3715, 'Picture', 'A red coloured disk, apparently made out of wood.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3716, 'Picture', 'A red coloured disk, apparently made out of wood.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3718, 'Magnet', 'A very attractive magnet.', NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3719, 'Thread', 'Some blue thread.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3720, 'Pick', 'A small pick for cracking small objects.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3721, 'Ship toy', 'Might be fun to play with in the bath.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3722, 'Full bucket', 'It\'s a bucket of salty water.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3723, '4/5ths full bucket', 'This bucket is eighty percent full. It has a 5 painted on it\'s side.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3724, '3/5ths full bucket', 'This bucket is sixty percent full. It has a 5 painted on its side.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3725, '2/5ths full bucket', 'This bucket is forty percent full. It has a 5 painted on its side.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3726, '1/5ths full bucket', 'This bucket is twenty percent full. It has a 5 painted on its side.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3727, 'Empty bucket', 'It\'s an empty bucket.', 1, NULL, NULL, 1, NULL, 'You can reclaim this item from the place you found it.', 2, 50, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3728, 'Frozen bucket', 'This bucket of water is frozen solid.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3729, 'Full jug', 'This jug is completely full. It has a 3 painted on its side.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3730, '2/3rds full jug', 'This jug is two thirds full. It has a 3 painted on its side.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3731, '1/3rds full jug', 'This jug is one third full. It has a 3 painted on its side.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3732, 'Empty jug', 'This jug is empty.', 1, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', 1, 164, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3733, 'Frozen jug', 'This jug of water is frozen solid.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3734, 'Vase', 'An unusually shaped vase. You can see something glinting inside.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3735, 'Vase of water', 'An unusually shaped vase full of water. You can see something glinting inside.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3736, 'Frozen vase', 'An unusually shaped vase full of ice. You can see something glinting inside.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3737, 'Vase lid', 'This looks like a lid to some kind of container.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3738, 'Sealed vase', 'See article', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3739, 'Sealed vase', 'See article', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3740, 'Sealed vase', 'See article', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3741, 'Frozen key', 'A small, cold key.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3742, 'Red herring', 'The colouring on it seems to be some kind of sticky goop.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3743, 'Red disk', 'A red coloured disk, apparently made out of wood.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3744, 'Wooden disk', 'A simple looking disk made of wood.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3745, 'Seer\'s key', 'The key to leave the Seer\'s house.', NULL, NULL, NULL, NULL, 1, NULL, 27, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3746, 'Sticky red goop', 'Yup, it\'s sticky, it\'s red and it\'s goop.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3747, 'Sticky red goop', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3748, 'Fremennik helm', 'A sturdy helm worn only by Fremennik clan members.', NULL, NULL, 2600, 3900, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,2', '0,0,0,-6,-2,19,21,16,-1,19,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3749, 'Archer helm', 'This helmet is worn by archers.', 1, 1, 31200, 46800, NULL, NULL, 78000, 48900, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '-5,-5,-5,-5,6,6,8,10,6,6,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,45}', 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3750, 'Archer helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 48900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3751, 'Berserker helm', 'This helmet is worn by berserkers.', 1, 1, 31200, 46800, NULL, NULL, 78000, 60900, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,3', '0,0,0,-5,-5,31,29,33,0,30,7,3,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,45}', 2.7, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3752, 'Berserker helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 60900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3753, 'Warrior helm', 'This helm is worn by warriors.', 1, 1, 31200, 46800, NULL, NULL, 78000, 50700, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,3', '0,5,0,-5,-5,31,33,29,0,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,45}', 2.7, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3754, 'Warrior helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 50700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3755, 'Farseer helm', 'This helm is worn by farseers.', 1, 1, 31200, 46800, NULL, NULL, 78000, 47900, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '3,1,0', '-5,-5,-5,6,-5,8,10,12,6,0,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,45}', 2.7, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3756, 'Farseer helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 47900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3757, 'Fremennik blade', 'A sword used only by Fremennik warriors.', NULL, NULL, 2000, 3000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, '6,29,-2,0,0,0,1,0,0,0,0,28,0,0,0', 6, NULL, NULL, '390,390,381,390', 397, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3758, 'Fremennik shield', 'A shield worn by Fremennik warriors.', NULL, NULL, 2000, 3000, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,-8,-2,27,31,29,-1,29,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3759, 'Fremennik cloak', 'The latest fashion in Rellekka.', 1, NULL, 100, 150, NULL, NULL, 325, 697, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3760, 'Fremennik cloak', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 697, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3761, 'Fremennik cloak', 'The latest fashion in Rellekka.', 1, NULL, 100, 150, NULL, NULL, 325, 54, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3762, 'Fremennik cloak', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 54, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3763, 'Fremennik cloak', 'The latest fashion in Rellekka.', 1, NULL, 100, 150, NULL, NULL, 325, 581, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3764, 'Fremennik cloak', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 581, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3765, 'Fremennik cloak', 'The latest fashion in Rellekka.', 1, NULL, 100, 150, NULL, NULL, 325, 912, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3766, 'Fremennik cloak', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 912, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3767, 'Fremennik shirt', 'The latest in Fremennik fashion.', 1, NULL, 130, 195, NULL, NULL, 325, 100, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3768, 'Fremennik shirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3769, 'Fremennik shirt', 'The latest in Fremennik fashion.', 1, NULL, 130, 195, NULL, NULL, 325, 486, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3770, 'Fremennik shirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 486, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3771, 'Fremennik shirt', 'The latest in Fremennik fashion.', 1, NULL, 130, 195, NULL, NULL, 325, 242, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3772, 'Fremennik shirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 242, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3773, 'Fremennik shirt', 'The latest in Fremennik fashion.', 1, NULL, 130, 195, NULL, NULL, 325, 500, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3774, 'Fremennik shirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3775, 'Fremennik shirt', 'The latest in Fremennik fashion.', 1, NULL, 130, 195, NULL, NULL, 325, 450, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3776, 'Fremennik shirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 450, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3777, 'Fremennik cloak', 'The latest fashion in Rellekka.', 1, NULL, 100, 150, NULL, NULL, 325, 674, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3778, 'Fremennik cloak', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 674, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3779, 'Fremennik cloak', 'The latest fashion in Rellekka.', 1, NULL, 100, 150, NULL, NULL, 325, 809, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3780, 'Fremennik cloak', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 809, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3781, 'Fremennik cloak', 'The latest fashion in Rellekka.', 1, NULL, 100, 150, NULL, NULL, 325, 632, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3782, 'Fremennik cloak', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 632, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3783, 'Fremennik cloak', 'The latest fashion in Rellekka.', 1, NULL, 100, 150, NULL, NULL, 325, 517, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3784, 'Fremennik cloak', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 517, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(3785, 'Fremennik cloak', 'The latest fashion in Rellekka.', 1, NULL, 100, 150, NULL, NULL, 325, 398, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3786, 'Fremennik cloak', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 398, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3787, 'Fremennik cloak', 'The latest fashion in Rellekka.', 1, NULL, 100, 150, NULL, NULL, 325, 283, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3788, 'Fremennik cloak', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 283, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3789, 'Fremennik cloak', 'The latest fashion in Rellekka.', 1, NULL, 100, 150, NULL, NULL, 325, 966, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3790, 'Fremennik cloak', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 966, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(3791, 'Fremennik boots', 'Very stylish!', 1, NULL, 260, 390, NULL, NULL, 650, 205, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,0,0,0,1,1,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3792, 'Fremennik boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 205, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3793, 'Fremennik robe', 'The latest fashion of Rellekka.', 1, NULL, 260, 390, NULL, NULL, 650, 1191, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3794, 'Fremennik robe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1191, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3795, 'Fremennik skirt', 'The latest fashion of Rellekka.', 1, NULL, 260, 390, NULL, NULL, 650, 663, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3796, 'Fremennik skirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 663, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3797, 'Fremennik hat', 'A silly pointed hat.', 1, NULL, 260, 390, NULL, NULL, 650, 2380, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,3,0,0,0,0,3,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3798, 'Fremennik hat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2380, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3799, 'Gloves', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 172, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,0,0,0,1,2,0,0,1,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(3800, 'Gloves', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 172, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(3801, 'Keg of beer', 'A lot of beer in a barrel. Beer in a barrel - a specialty of the Fremennik Province.', 1, NULL, 130, 195, NULL, NULL, 325, 1817, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 20, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3802, 'Keg of beer', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1817, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3803, 'Beer', 'A glass of frothy ale.', 1, NULL, NULL, 1, NULL, NULL, NULL, 393, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3804, 'Beer', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 393, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(3805, 'Tankard', 'A big cup for a big thirst.', 1, NULL, 2, 3, NULL, NULL, 26, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3806, 'Tankard', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3827, 'Saradomin page 1', 'This seems to have been torn from a book...', 1, NULL, 80, 120, NULL, NULL, NULL, 1400000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(3828, 'Saradomin page 2', 'This seems to have been torn from a book...', 1, NULL, 80, 120, NULL, NULL, NULL, 686000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(3829, 'Saradomin page 3', 'This seems to have been torn from a book...', 1, NULL, 80, 120, NULL, NULL, NULL, 522800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(3830, 'Saradomin page 4', 'This seems to have been torn from a book...', 1, NULL, 80, 120, NULL, NULL, NULL, 629500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(3831, 'Zamorak page 1', 'This seems to have been torn from a book...', 1, NULL, 80, 120, NULL, NULL, NULL, 7100000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(3832, 'Zamorak page 2', 'This seems to have been torn from a book...', 1, NULL, 80, 120, NULL, NULL, NULL, 5400000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(3833, 'Zamorak page 3', 'This seems to have been torn from a book...', 1, NULL, 80, 120, NULL, NULL, NULL, 4700000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(3834, 'Zamorak page 4', 'This seems to have been torn from a book...', 1, NULL, 80, 120, NULL, NULL, NULL, 5900000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(3835, 'Guthix page 1', 'This seems to have been torn from a book...', 1, NULL, 80, 120, NULL, NULL, NULL, 1200000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(3836, 'Guthix page 2', 'This seems to have been torn from a book...', 1, NULL, 80, 120, NULL, NULL, NULL, 997100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(3837, 'Guthix page 3', 'This seems to have been torn from a book...', 1, NULL, 80, 120, NULL, NULL, NULL, 953100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(3838, 'Guthix page 4', 'This seems to have been torn from a book...', 1, NULL, 80, 120, NULL, NULL, NULL, 1000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(3839, 'Damaged book', 'An incomplete book of Saradomin/Guthix/Zamorak/Bandos/ArmadylAn incomplete ancient book', NULL, NULL, 80, 120, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3840, 'Holy book', 'The Holy book of Saradomin.', NULL, NULL, 80, 120, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,0,0,8,8,8,8,8,8,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3841, 'Damaged book', 'An incomplete book of Saradomin/Guthix/Zamorak/Bandos/ArmadylAn incomplete ancient book', NULL, NULL, 80, 120, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3842, 'Unholy book', 'The unholy book of Zamorak.', NULL, NULL, 80, 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '8,8,8,8,8,0,0,0,0,0,0,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3843, 'Damaged book', 'An incomplete book of Saradomin/Guthix/Zamorak/Bandos/ArmadylAn incomplete ancient book', NULL, NULL, 80, 120, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3844, 'Book of balance', 'The holy book of Guthix.', NULL, NULL, 80, 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '4,4,4,4,4,4,4,4,4,4,4,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3847, 'Manual', 'Looks like some kind of manual.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3848, 'Lighthouse key', 'A key to the front door of the lighthouse. (Horror from the Deep)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3849, 'Rusty casket', 'Looks old and rusty...', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3852, 'Unholy symbol', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3853, 'Games necklace(8)', 'An enchanted necklace.', 1, NULL, 420, 630, NULL, NULL, 490, 852, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3854, 'Games necklace(8)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 852, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3855, 'Games necklace(7)', 'An enchanted necklace.', 1, NULL, 420, 630, NULL, NULL, 490, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3856, 'Games necklace(7)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3857, 'Games necklace(6)', 'An enchanted necklace.', 1, NULL, 420, 630, NULL, NULL, 490, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3858, 'Games necklace(6)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3859, 'Games necklace(5)', 'An enchanted necklace.', 1, NULL, 420, 630, NULL, NULL, 490, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3860, 'Games necklace(5)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3861, 'Games necklace(4)', 'An enchanted necklace.', 1, NULL, 420, 630, NULL, NULL, 490, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3862, 'Games necklace(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3863, 'Games necklace(3)', 'An enchanted necklace.', 1, NULL, 420, 630, NULL, NULL, 490, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3864, 'Games necklace(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3865, 'Games necklace(2)', 'An enchanted necklace.', 1, NULL, 420, 630, NULL, NULL, 490, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3866, 'Games necklace(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3867, 'Games necklace(1)', 'An enchanted necklace.', 1, NULL, 420, 630, NULL, NULL, 490, 2093, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3868, 'Games necklace(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2093, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(3893, 'Stool', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3894, 'Awful anthem', 'It\'s not very good.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3895, 'Good anthem', 'Much better.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3896, 'Treaty', 'Just needs the King\'s signature.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3897, 'Giant nib', 'For making a giant pen.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3898, 'Giant pen', 'The king should be able to use this.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3899, 'Iron sickle', 'Not as good as a pet frog.', NULL, NULL, 6, 9, NULL, NULL, 15, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, '0,0,0,0,0,0,1,1,1,1,0,1,0,0,0', 6, NULL, NULL, NULL, NULL, NULL, NULL, 1.6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3901, 'Ghrim\'s book', 'Managing Thine Kingdom for Noobes by A. Ghrim.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4001, 'Hardy gout tuber', 'A pile of gout tubers suitable for use in mountainous terrain.', NULL, NULL, 2, 3, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4002, 'Spare controls', 'It looks like some kind of control panel.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4004, 'Gnome royal seal', 'It\'s the official Gnome Royal Seal, signed by King Narode Shareen.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4005, 'Narnode\'s orders', 'Unreadable orders handwritten by King Narnode Shareen.', NULL, NULL, NULL, NULL, NULL, NULL, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4006, 'Monkey dentures', 'Magical monkey talking dentures! What more can we say? Ook!', NULL, NULL, 4, 6, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4007, 'Enchanted bar', 'A gold bar with a talkative monkey spirit.', NULL, NULL, 320, 480, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4008, 'Eye of gnome', 'It\'s... the eye of a gnome! Now what on earth could one do with this?', NULL, NULL, 1, 1, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4009, 'Eye of gnome', 'It\'s... the eye of a gnome! Now what on earth could one do with this?', NULL, NULL, 1, 1, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4012, 'Monkey nuts', 'They are Monkey Nuts. Yummy.', NULL, NULL, 1, 1, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4014, 'Monkey bar', 'It\'s a monkey bar. It looks highly nutritious.', NULL, NULL, 20, 30, NULL, NULL, 50, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4016, 'Banana stew', 'It\'s a bowl full of mushy banana', NULL, NULL, 120, 180, NULL, NULL, 300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4020, 'M\'amulet mould', 'It\'s an amulet mould shaped like a monkey head.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4021, 'M\'speak amulet', 'It\'s an unstrung Amulet of Monkey Speak. It makes vague chattering noises.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4022, 'M\'speak amulet', 'It\'s an unstrung Amulet of Monkey Speak. It makes vague chattering noises.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4023, 'Monkey talisman', 'A magic talisman in shape of a monkey head.', NULL, NULL, 400, 600, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.25, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4024, 'Monkey greegree', 'A magical talisman in the shape of a Karamjan monkey head.', NULL, NULL, 200, 300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4025, 'Monkey greegree', 'A magical talisman in the shape of a Karamjan monkey head.', NULL, NULL, 200, 300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4026, 'Monkey greegree', 'A magical talisman in the shape of a Karamjan monkey head.', NULL, NULL, 200, 300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4027, 'Monkey greegree', 'A magical talisman in the shape of a Karamjan monkey head.', NULL, NULL, 200, 300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4028, 'Monkey greegree', 'A magical talisman in the shape of a Karamjan monkey head.', NULL, NULL, 200, 300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4029, 'Monkey greegree', 'A magical talisman in the shape of a Karamjan monkey head.', NULL, NULL, 200, 300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4030, 'Monkey greegree', 'A magical talisman in the shape of a Karamjan monkey head.', NULL, NULL, 200, 300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4031, 'Monkey greegree', 'A magical talisman in the shape of a Karamjan monkey head.', NULL, NULL, 200, 300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4032, 'Dummy', 'I can train on this', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4034, 'Monkey skull', 'It\'s a very ancient skull from some kind of ape.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4035, '10th squad sigil', 'It is the official sigil of the 10th squad of the Royal Guard.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4037, 'Saradomin banner', 'The Holy Team Standard', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1421, 1426, 1422, 1427, 1423, 1424, 1425, 131, 3, NULL, NULL, NULL, 14, NULL, 1, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4038, 'Saradomin banner', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4039, 'Zamorak banner', 'The Zamorak team\'s flag.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1421, 1426, 1422, 1427, 1423, 1424, 1425, 131, 3, NULL, NULL, NULL, 14, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4040, 'Zamorak banner', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4041, 'Hooded cloak', 'The colours of Saradomin/Zamorak.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4042, 'Hooded cloak', 'The colours of Saradomin/Zamorak.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4044, 'Rock', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4045, 'Explosive potion', 'I could use this to destroy things...', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4046, 'Explosive potion', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4047, 'Climbing rope', 'A coil of rope.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4048, 'Climbing rope', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4049, 'Bandages', 'A box of bandages for healing.', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4050, 'Bandages', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4051, 'Toolkit', 'Good for repairing a broken cannon.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4052, 'Toolkit', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4053, 'Barricade', 'Handy for hindering the enemy team\'s movement.', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4054, 'Barricade', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4055, 'Castlewars manual', 'It\'s a manual for Castle Wars', NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4067, 'Castle wars ticket', 'I can exchange these for further items.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4068, 'Decorative sword', 'A very decorative sword.', NULL, NULL, 520, 780, NULL, NULL, 50, NULL, NULL, NULL, NULL, 808, 823, 819, 824, 820, 821, 822, 1, 3, NULL, NULL, '13,18,-2,0,0,0,3,2,0,0,0,16,0,0,0', 6, NULL, NULL, NULL, NULL, NULL, '{0,5}', 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4069, 'Decorative armour', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,-30,-10,32,31,24,-6,31,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,5}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4070, 'Decorative armour', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,-21,-7,17,16,15,-4,16,2,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,5}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4071, 'Decorative helm', 'A very decorative helm.', NULL, NULL, 312, 468, NULL, NULL, 40, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-3,-1,7,8,6,-1,7,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,5}', 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4072, 'Decorative shield', 'A very decorative shield.', NULL, NULL, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,-8,-2,13,15,14,-1,14,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,5}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4073, 'Damp tinderbox', 'Not so useful for lighting a fire.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4074, 'Damp tinderbox', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4075, 'Glowing fungus', 'A bizarre fungus. It glows with a pale blue light.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4077, 'Crystal-mine key', 'A key I found in the lower levels of the Morytanian mines. (Haunted Mine) / As the \'Innocent-looking key\': A shiny key sitting quietly on a crate.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4078, 'Zealot\'s key', 'I stole this from a Saradominist I met South of Mort\'ton.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4079, 'Yo-yo', 'A gift from Santa.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4081, 'Salve amulet', 'Increases the wearer\'s strength and accuracy by 15% when fighting the undead.', NULL, NULL, 75000, 75000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '0,0,0,0,0,3,3,3,0,0,3,0,3,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4082, 'Salve shard', 'An unstrung crystal imbued with the power of Saradomin.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4083, 'Sled', 'Unwaxed: It needs waxing before I can use it. Waxed: A waxed sled.', NULL, NULL, 70, 105, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4084, 'Sled', 'Unwaxed: It needs waxing before I can use it. Waxed: A waxed sled.', NULL, NULL, 70, 105, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1461, 1468, 1468, 1468, 1468, 1468, 1468, 1119, 3, 4, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4085, 'Wax', 'I can use this to wax my sled.', NULL, NULL, 6, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4086, 'Trollweiss', 'These pale flowers have a pungent odour.', NULL, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '-100,-100,-50,0,0,0,0,0,0,0,0,-10,0,0,0', 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4087, 'Dragon platelegs', 'Looks pretty heavy.', 1, 1, 108000, 162000, NULL, NULL, NULL, 190500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '3,0,6', '0,0,0,-21,-7,68,66,63,-4,65,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}', 9, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4088, 'Dragon platelegs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 190500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4089, 'Mystic hat', 'Blue: A magical hat. ', 1, 1, 6000, 9000, NULL, NULL, 15000, 13700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '3,1,0', '0,0,0,4,0,0,0,0,4,0,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,20}', 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4090, 'Mystic hat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 13700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4091, 'Mystic robe top', 'The upper half of a magical robe.', 1, 1, 48000, 72000, NULL, NULL, 120000, 72100, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '3,1,0', '0,0,0,20,0,0,0,0,20,0,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,20}', 2.7, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4092, 'Mystic robe top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 72100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4093, 'Mystic robe bottom', 'The lower half of a magical robe.', 1, 1, 32000, 48000, NULL, NULL, 80000, 47700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '4,2,0', '0,0,0,15,0,0,0,0,15,0,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,20}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4094, 'Mystic robe bottom', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 47700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4095, 'Mystic gloves', 'Bright/Dark magical gloves.', 1, 1, 4000, 6000, NULL, NULL, 10000, 5913, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,3,0,0,0,0,3,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,20}', 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4096, 'Mystic gloves', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5913, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4097, 'Mystic boots', 'Magical boots.', 1, 1, 4000, 6000, NULL, NULL, 10000, 6303, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,3,0,0,0,0,3,0,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,20}', 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4098, 'Mystic boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 6303, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4099, 'Mystic hat', 'Blue: A magical hat. ', 1, 1, 6000, 9000, NULL, NULL, 15000, 20400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '3,1,0', '0,0,0,4,0,0,0,0,4,0,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,20}', 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4100, 'Mystic hat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 20400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4101, 'Mystic robe top', 'The upper half of a magical robe.', 1, 1, 48000, 72000, NULL, NULL, 120000, 71900, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '3,1,0', '0,0,0,20,0,0,0,0,20,0,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,20}', 2.7, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4102, 'Mystic robe top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 71900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4103, 'Mystic robe bottom', 'The lower half of a magical robe.', 1, 1, 32000, 48000, NULL, NULL, 80000, 47700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '4,2,0', '0,0,0,15,0,0,0,0,15,0,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,20}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4104, 'Mystic robe bottom', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 47700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4105, 'Mystic gloves', 'Bright/Dark magical gloves.', 1, 1, 4000, 6000, NULL, NULL, 10000, 5977, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,3,0,0,0,0,3,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,20}', 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4106, 'Mystic gloves', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5977, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4107, 'Mystic boots', 'Magical boots.', 1, 1, 4000, 6000, NULL, NULL, 10000, 125900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,3,0,0,0,0,3,0,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,20}', 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4108, 'Mystic boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 125900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4109, 'Mystic hat', 'Blue: A magical hat. ', 1, 1, 6000, 9000, NULL, NULL, 15000, 11400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '3,1,0', '0,0,0,4,0,0,0,0,4,0,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,20}', 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4110, 'Mystic hat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 11400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4111, 'Mystic robe top', 'The upper half of a magical robe.', 1, 1, 48000, 72000, NULL, NULL, 120000, 74300, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '3,1,0', '0,0,0,20,0,0,0,0,20,0,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,20}', 2.7, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4112, 'Mystic robe top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 74300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4113, 'Mystic robe bottom', 'The lower half of a magical robe.', 1, 1, 32000, 48000, NULL, NULL, 80000, 48300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '4,2,0', '0,0,0,15,0,0,0,0,15,0,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,20}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4114, 'Mystic robe bottom', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 48300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4115, 'Mystic gloves', 'Bright/Dark magical gloves.', 1, 1, 4000, 6000, NULL, NULL, 10000, 305600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,3,0,0,0,0,3,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,20}', 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4116, 'Mystic gloves', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 305600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4117, 'Mystic boots', 'Magical boots.', 1, 1, 4000, 6000, NULL, NULL, 10000, 20700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,3,0,0,0,0,3,0,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,20}', 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4118, 'Mystic boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 20700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4119, 'Bronze boots', 'These will protect my feet.', 1, NULL, 9, 14, NULL, NULL, NULL, 359, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,-3,-1,1,2,3,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4120, 'Bronze boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 359, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4121, 'Iron boots', 'These will protect my feet.', 1, NULL, 33, 50, NULL, NULL, NULL, 17000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,-3,-1,2,3,4,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4122, 'Iron boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 17000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4123, 'Steel boots', 'These will protect my feet.', 1, NULL, 120, 180, NULL, NULL, NULL, 258, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,-3,-1,5,6,7,0,0,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,5}', 1.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4124, 'Steel boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 258, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4125, 'Black boots', 'These will protect my feet.', 1, NULL, 230, 345, NULL, NULL, NULL, 317, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,-3,-1,7,8,9,0,0,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}', 1.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4126, 'Black boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 317, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4127, 'Mithril boots', 'These will protect my feet.', 1, NULL, 312, 468, NULL, NULL, NULL, 580, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,-3,-1,8,9,10,0,0,8,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4128, 'Mithril boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 580, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4129, 'Adamant boots', 'These will protect my feet.', 1, NULL, 768, 1152, NULL, NULL, NULL, 1336, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,-3,-1,10,11,12,0,0,9,1,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 1.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4130, 'Adamant boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1336, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(4131, 'Rune boots', 'These will protect my feet.', 1, 1, 5000, 7500, NULL, NULL, NULL, 7474, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,-3,-1,12,13,14,0,0,10,2,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 1.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4132, 'Rune boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7474, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4133, 'Crawling hand', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4134, 'Cave crawler', 'A spiky crawling critter. (level 23) Not very tasty-looking. (level 138)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4135, 'Banshee', 'A tortured screaming soul.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4136, 'Rockslug', 'The slime of evil.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4137, 'Cockatrice', 'The winged reptile.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4138, 'Pyrefiend', 'A small fire demon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4139, 'Basilisk', 'The eyes of evil.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4140, 'Infernal mage', 'An evil magic user.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4141, 'Bloodveld', 'The tongue of evil.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4142, 'Jelly', '• Needs cream.....• Wibbly.• Wobbly...• There\'s always room for jelly.• Doesn\'t look so tough...• Looks scared to see me.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4143, 'Turoth', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4144, 'Abberant spectre', 'A very smelly ghost.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4145, 'Dust devil', 'The vacuumed face of evil.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4146, 'Kurask', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4147, 'Gargoyle', 'Flies like a rock.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4148, 'Nechryael', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4149, 'Abyssal demon', 'A denizen of the Abyss!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4150, 'Broad arrows', 'Arrows with a wider than normal tip.', NULL, NULL, 36, 54, NULL, NULL, 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,28,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4151, 'Abyssal whip', 'A weapon from the Abyss.', 1, 1, 48000, 72000, NULL, '', NULL, 413500, NULL, NULL, NULL, 808, 823, 1660, 1661, 820, 821, 822, 620, 3, 4, NULL, '0,82,0,0,0,0,0,0,0,0,0,82,0,0,0', 11, 1, NULL, '1658,1658,1658,1658', 1659, '2720,0,0,0', '{0,70}', 0.45, 10, NULL, 1, NULL, NULL, NULL, 0), +(4152, 'Abyssal whip', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 413500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4153, 'Granite maul', 'Simplicity is the best weapon.', 1, 1, 20000, 30000, NULL, NULL, NULL, 29900, NULL, NULL, NULL, 1662, 823, 1663, 1664, 1663, 1663, 1663, 27, 3, 7, NULL, '0,0,81,0,0,0,0,0,0,0,0,79,0,0,0', 10, 1, 1, '1665,1665,1665,1665', 1666, '2714,0,0,0', '{0,50}-{2,50}', 4.5, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4154, 'Granite maul', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 29900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4155, 'Enchanted gem', 'I can contact the Slayer Masters with this.', NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4156, 'Mirror shield', 'I can just about see things in this shield\'s reflection.', 1, NULL, 2000, 3000, NULL, NULL, 5000, 3318, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,0,0,10,15,5,5,10,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{18,25}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4157, 'Mirror shield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3318, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4158, 'Leaf-bladed spear', 'A spear with a leaf-shaped point.', NULL, NULL, 12400, 18600, NULL, NULL, 31000, NULL, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '47,42,36,0,0,1,1,0,0,0,0,50,0,0,0', 14, NULL, 1, '2080,2081,2082,2080', 2079, NULL, '{0,55}-{18,50}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4159, 'Leaf-bladed spear', 'A spear with a leaf-shaped point.', NULL, NULL, 12400, 18600, NULL, NULL, 31000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{0,55}-{18,50}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4160, 'Broad arrow', 'Arrows with a wider than normal tip.', NULL, NULL, 36, 54, NULL, NULL, 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,28', NULL, NULL, NULL, NULL, NULL, NULL, '{18,55}-{4,50}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4161, 'Bag of salt', 'A bag of salt.', 1, NULL, 4, 6, NULL, NULL, 10, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4162, 'Rock hammer', 'I can even smash stone with this.', 1, NULL, 200, 300, NULL, NULL, 500, 140, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4163, 'Rock hammer', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 140, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4164, 'Face mask', 'Stops me breathing in too much dust.', 1, NULL, 80, 120, NULL, NULL, 200, 615, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{18,10}', 0.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4165, 'Face mask', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 615, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4166, 'Earmuffs', 'These will protect my ears from loud noise.', 1, NULL, 80, 120, NULL, NULL, 200, 484, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{18,15}', 2.6, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4167, 'Earmuffs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 484, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4168, 'Nose peg', 'Protects me from any bad smells.', 1, NULL, 80, 120, NULL, NULL, 200, 523, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{18,60}', 8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4169, 'Nose peg', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 523, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4170, 'Slayer\'s staff', 'An old and magical staff.', 1, NULL, 8400, 12600, NULL, NULL, 21000, 12100, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 4, NULL, '7,-1,25,12,0,2,3,1,10,0,0,35,0,0,0', 1, NULL, NULL, '419,419,419,419', 420, '2555,0,0,0', '{18,55}-{6,50}', 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4171, 'Slayer\'s staff', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 12100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4172, 'Broad arrows', 'Arrows with a wider than normal tip.', NULL, NULL, 36, 54, NULL, NULL, 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4173, 'Broad arrows', 'Arrows with a wider than normal tip.', NULL, NULL, 36, 54, NULL, NULL, 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4174, 'Broad arrows', 'Arrows with a wider than normal tip.', NULL, NULL, 36, 54, NULL, NULL, 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4175, 'Broad arrows', 'Arrows with a wider than normal tip.', NULL, NULL, 36, 54, NULL, NULL, 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4178, 'Abyssal whip', 'A weapon from the Abyss.', 1, 1, 48000, 72000, NULL, NULL, NULL, 388392, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 620, NULL, 4, NULL, '0,82,0,0,0,0,0,0,0,0,0,82,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.45, NULL, NULL, 1, NULL, NULL, NULL, 0), +(4179, 'Stick', 'A big, bad troll.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4180, 'Dragon platelegs', 'Looks pretty heavy.', 1, 1, 108000, 162000, NULL, NULL, NULL, 165900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '3,0,6', '0,0,0,-21,-7,68,66,63,-4,65,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4181, 'Mouth grip', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4182, 'Goutweed', 'A pale, tough looking herb.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4183, 'Star amulet', 'A six-pointed marble and obsidian amulet', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4184, 'Cavern key', 'Upon close examination, this seems to be a key.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4185, 'Tower key', 'Upon close examination, this seems to be a key.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4186, 'Shed key', 'Upon close examination, this seems to be a key.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4187, 'Marble amulet', 'Triangular in shape, made from marble, and as large as your hand.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4188, 'Obsidian amulet', 'Triangular in shape, made from obsidian, and as large as your hand.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4189, 'Garden cane', 'A length of garden cane.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4190, 'Garden brush', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4191, 'Extended brush', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4192, 'Extended brush', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4193, 'Extended brush', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4195, 'Arms', 'A pair of limp, dead arms.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4196, 'Legs', 'A pair of lifeless, rotting legs.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4197, 'Decapitated head', 'No brain: A gruesome, decapitated head, whose brain has rotted away. Brain: A gruesome, decapitated head - its eyes stare lifelessly at nothing.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4198, 'Decapitated head', 'No brain: A gruesome, decapitated head, whose brain has rotted away. Brain: A gruesome, decapitated head - its eyes stare lifelessly at nothing.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4199, 'Pickled brain', 'A pickled brain, submerged inside a jar of vinegar.', NULL, NULL, NULL, NULL, NULL, NULL, 50, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4200, 'Conductor mould', 'A mould for making silver lightning conductors.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4201, 'Conductor', 'A silver lightning conductor.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4202, 'Ring of charos', 'Unactivated: The Ring of charos.Activated: The power within this ring has been activated.', NULL, NULL, NULL, NULL, 1, 'Another can be received from pickpocketing Dr. Fenkenstrain in the tower.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4205, 'Consecration seed', 'This consecration seed looks grey and dead.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4206, 'Consecration seed', 'This consecration seed looks grey and dead.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4207, 'Crystal seed', 'This crystal seed looks grey and dead.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 92600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4208, 'Crystal seed', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 92600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4209, 'Cadarn lineage', 'A book on Cadarn clan history.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4212, 'New crystal bow', 'A nice sturdy magical bow.', NULL, NULL, NULL, NULL, NULL, NULL, 900000, 905300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2588, 3, 5, NULL, '0,0,0,0,100,0,0,0,0,0,0,0,0,0,70', 16, NULL, 1, '426,426,426,426', 424, '2700,0,0,0', '{16,70}-{4,50}', 1.8, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4213, 'New crystal bow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 905300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4214, 'Crystal bow full', 'A nice sturdy magical bow.', NULL, NULL, NULL, NULL, NULL, NULL, 900000, 901019, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2588, 3, 5, NULL, '0,0,0,0,100,0,0,0,0,0,0,0,0,0,70', 16, NULL, 1, '426,426,426,426', 424, '2700,0,0,0', '{16,50}-{4,70}', 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4215, 'Crystal bow 9/10', 'A nice sturdy magical bow.', NULL, NULL, NULL, NULL, NULL, NULL, 900000, 901019, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2588, 3, 5, NULL, '0,0,0,0,96,0,0,0,0,0,0,0,0,0,68', 16, NULL, 1, '426,426,426,426', 424, '2700,0,0,0', '{16,50}-{4,70}', 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4216, 'Crystal bow 8/10', 'A nice sturdy magical bow.', NULL, NULL, NULL, NULL, NULL, NULL, 900000, 901019, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2588, 3, 5, NULL, '0,0,0,0,92,0,0,0,0,0,0,0,0,0,66', 16, NULL, 1, '426,426,426,426', 424, '2700,0,0,0', '{16,50}-{4,70}', 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4217, 'Crystal bow 7/10', 'A nice sturdy magical bow.', NULL, NULL, NULL, NULL, NULL, NULL, 900000, 901019, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2588, 3, 5, NULL, '0,0,0,0,88,0,0,0,0,0,0,0,0,0,64', 16, NULL, 1, '426,426,426,426', 424, '2700,0,0,0', '{16,70}-{4,50}', 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4218, 'Crystal bow 6/10', 'A nice sturdy magical bow.', NULL, NULL, NULL, NULL, NULL, NULL, 900000, 901019, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2588, 3, 5, NULL, '0,0,0,0,84,0,0,0,0,0,0,0,0,0,62', 16, NULL, 1, '426,426,426,426', 424, '2700,0,0,0', '{16,70}-{4,50}', 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4219, 'Crystal bow 5/10', 'A nice sturdy magical bow.', NULL, NULL, NULL, NULL, NULL, NULL, 900000, 901019, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2588, 3, 5, NULL, '0,0,0,0,80,0,0,0,0,0,0,0,0,0,60', 16, NULL, 1, '426,426,426,426', 424, '2700,0,0,0', '{16,70}-{4,50}', 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4220, 'Crystal bow 4/10', 'A nice sturdy magical bow.', NULL, NULL, NULL, NULL, NULL, NULL, 900000, 901019, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2588, 3, 5, NULL, '0,0,0,0,76,0,0,0,0,0,0,0,0,0,58', 16, NULL, 1, '426,426,426,426', 424, '2700,0,0,0', '{16,70}-{4,50}', 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4221, 'Crystal bow 3/10', 'A nice sturdy magical bow.', NULL, NULL, NULL, NULL, NULL, NULL, 900000, 901019, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2588, 3, 5, NULL, '0,0,0,0,72,0,0,0,0,0,0,0,0,0,56', 16, NULL, 1, '426,426,426,426', 424, '2700,0,0,0', '{16,70}-{4,50}', 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4222, 'Crystal bow 2/10', 'A nice sturdy magical bow.', NULL, NULL, NULL, NULL, NULL, NULL, 900000, 901019, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2588, 3, 5, NULL, '0,0,0,0,68,0,0,0,0,0,0,0,0,0,54', 16, NULL, 1, '426,426,426,426', 424, '2700,0,0,0', '{16,50}-{4,70}', 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4223, 'Crystal bow 1/10', 'A nice sturdy magical bow.', NULL, NULL, NULL, NULL, NULL, NULL, 900000, 901019, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2588, 3, 5, NULL, '0,0,0,0,64,0,0,0,0,0,0,0,0,0,52', 16, NULL, 1, '426,426,426,426', 424, '2700,0,0,0', '{16,50}-{4,70}', 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4224, 'New crystal shield', 'A nice sturdy crystal shield.', NULL, NULL, NULL, NULL, NULL, NULL, 750000, 756900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '6,0,12', '0,0,0,-10,-10,51,54,53,0,80,70,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,50}-{16,70}', 2, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4225, 'Crystal shield full', 'A nice sturdy crystal shield.', NULL, NULL, NULL, NULL, NULL, NULL, 750000, 749305, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '6,0,12', '0,0,0,-10,-10,51,54,53,0,80,70,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,50}-{16,70}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4226, 'Crystal shield 9/10', 'A nice sturdy crystal shield.', NULL, NULL, NULL, NULL, NULL, NULL, 750000, 749305, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '6,0,12', '0,0,0,-10,-10,49,52,51,0,78,68,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,50}-{16,70}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4227, 'Crystal shield 8/10', 'A nice sturdy crystal shield.', NULL, NULL, NULL, NULL, NULL, NULL, 750000, 749305, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '6,0,12', '0,0,0,-10,-10,47,50,49,0,76,66,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,50}-{16,70}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4228, 'Crystal shield 7/10', 'A nice sturdy crystal shield.', NULL, NULL, NULL, NULL, NULL, NULL, 750000, 749305, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '6,0,12', '0,0,0,-10,-10,45,48,47,0,74,65,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,50}-{16,70}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4229, 'Crystal shield 6/10', 'A nice sturdy crystal shield.', NULL, NULL, NULL, NULL, NULL, NULL, 750000, 749305, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '6,0,12', '0,0,0,-10,-10,43,46,45,0,72,63,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,50}-{16,70}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4230, 'Crystal shield 5/10', 'A nice sturdy crystal shield.', NULL, NULL, NULL, NULL, NULL, NULL, 750000, 749305, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '6,0,12', '0,0,0,-10,-10,41,44,43,0,70,61,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,50}-{16,70}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4231, 'Crystal shield 4/10', 'A nice sturdy crystal shield.', NULL, NULL, NULL, NULL, NULL, NULL, 750000, 749305, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '6,0,12', '0,0,0,-10,-10,39,42,41,0,68,59,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,50}-{16,70}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4232, 'Crystal shield 3/10', 'A nice sturdy crystal shield.', NULL, NULL, NULL, NULL, NULL, NULL, 750000, 749305, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '6,0,12', '0,0,0,-10,-10,37,40,39,0,66,58,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,50}-{16,70}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4233, 'Crystal shield 2/10', 'A nice sturdy crystal shield.', NULL, NULL, NULL, NULL, NULL, NULL, 750000, 749305, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '6,0,12', '0,0,0,-10,-10,35,38,37,0,64,56,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,50}-{16,70}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4234, 'Crystal shield 1/10', 'A nice sturdy crystal shield.', NULL, NULL, NULL, NULL, NULL, NULL, 750000, 749305, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '6,0,12', '0,0,0,-10,-10,33,36,35,0,62,54,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,50}-{16,70}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4235, 'New crystal shield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4236, 'Signed oak bow', 'This bow has been signed by Robin, Master Bowman.', NULL, NULL, 64, 96, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2588, 3, 6, NULL, '0,0,0,0,14,0,0,0,0,0,0,0,0,0,0', 16, NULL, 1, NULL, NULL, NULL, '{4,5}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4237, 'Nettle-water', 'It\'s a bowl of water, with some nettles in it.', NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4239, 'Nettle tea', 'It\'s a bowl of (milky) nettle tea.', NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4240, 'Nettle tea', 'It\'s a bowl of (milky) nettle tea.', NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4241, 'Nettles', '(In inventory) A handful of nettles (In ground) I better not get stung/I wouldn\'t like to get stung/I wish I could sting other people/Dock leaves at the ready/These may hurt/nettles sting my leggies(Draynor Village nettles)', NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4242, 'Cup of tea', 'A nice cup of tea.', 1, NULL, 4, 6, NULL, NULL, 10, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4243, 'Cup of tea', 'A nice cup of tea.', 1, NULL, 4, 6, NULL, NULL, 10, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4244, 'Porcelain cup', 'A porcelain cup.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4245, 'Cup of tea', 'A nice cup of tea.', 1, NULL, 4, 6, NULL, NULL, 10, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4246, 'Cup of tea', 'A nice cup of tea.', 1, NULL, 4, 6, NULL, NULL, 10, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4247, 'Mystical robes', 'The Robes of Necrovarus.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4248, 'Book of haricanto', 'The Book of Haricanto.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4249, 'Translation manual', 'A translation manual.', NULL, NULL, NULL, NULL, NULL, NULL, 32, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4250, 'Ghostspeak amulet', 'Normal: It lets me talk to ghosts.', NULL, NULL, 14, 21, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4251, 'Ectophial', 'The Ectophial.', NULL, NULL, NULL, 1, NULL, 'The Ectophial will smash if you drop it. Velorina can replace it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4252, 'Ectophial', 'The Ectophial.', NULL, NULL, NULL, 1, NULL, 'The Ectophial will smash if you drop it. Velorina can replace it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4253, 'Model ship', 'A small wooden ship. / A small wooden ship with a silk flag.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4254, 'Model ship', 'A small wooden ship. / A small wooden ship with a silk flag.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4255, 'Bonemeal', 'A pot of crushed [type of bones].', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4256, 'Bonemeal', 'A pot of crushed [type of bones].', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4257, 'Bonemeal', 'A pot of crushed [type of bones].', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4258, 'Bonemeal', 'A pot of crushed [type of bones].', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4259, 'Bonemeal', 'A pot of crushed [type of bones].', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4260, 'Bonemeal', 'A pot of crushed [type of bones].', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4261, 'Bonemeal', 'A pot of crushed [type of bones].', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4262, 'Bonemeal', 'A pot of crushed [type of bones].', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4263, 'Bonemeal', 'A pot of crushed [type of bones].', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4264, 'Bonemeal', 'A pot of crushed [type of bones].', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4265, 'Bonemeal', 'A pot of crushed [type of bones].', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4266, 'Bonemeal', 'A pot of crushed [type of bones].', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4267, 'Bonemeal', 'A pot of crushed [type of bones].', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4268, 'Bonemeal', 'A pot of crushed [type of bones].', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4269, 'Bonemeal', 'A pot of crushed [type of bones].', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4270, 'Bonemeal', 'A pot of crushed [type of bones].', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4271, 'Bonemeal', 'A pot of crushed [type of bones].', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4272, 'Bone key', 'A key fashioned from a shard of bone. (Shilo Village)', NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4274, 'Map scrap', 'A section from some kind of map.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4275, 'Map scrap', 'A section from some kind of map.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4276, 'Map scrap', 'A section from some kind of map.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4277, 'Treasure map', 'A complete treasure map.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4278, 'Ecto-token', 'A token with ectoplasm on it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4283, 'Petition form', 'A scroll of paper containing signatures.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4284, 'Bedsheet', 'Before Ectofuntus: It\'s a bedsheet.After Ectofuntus: It\'s an ectoplasm-covered bedsheet.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4285, 'Bedsheet', 'Before Ectofuntus: It\'s a bedsheet.After Ectofuntus: It\'s an ectoplasm-covered bedsheet.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4286, 'Bucket of slime', 'It\'s a bucket of ectoplasm.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4287, 'Raw beef', 'I need to cook this first.', 1, NULL, 23, 35, NULL, NULL, 58, 440, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(4288, 'Raw beef', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 440, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(4289, 'Raw chicken', 'I need to cook this first.', 1, NULL, 24, 36, NULL, NULL, 60, 263, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.15, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(4290, 'Raw chicken', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 263, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(4291, 'Cooked chicken', 'Mmm this looks tasty.', 1, NULL, 4, 7, NULL, NULL, 5, 59, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(4292, 'Cooked chicken', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 59, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(4293, 'Cooked meat', 'Mmm this looks tasty.', 1, NULL, 12, 18, NULL, NULL, 5, 74, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.25, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(4294, 'Cooked meat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 74, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(4295, 'Female h.a.m.', 'A member of the \'Humans Against Monsters\' group.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4297, 'Male h.a.m.', 'A member of the \'Humans Against Monsters\' group.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4298, 'Ham shirt', 'The label says \'Vivid Crimson\', but it looks like pink to me!', 1, NULL, 30, 45, NULL, NULL, NULL, 19, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4299, 'Ham shirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 19, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4300, 'Ham robe', 'The label says \'Vivid Crimson\', but it looks like pink to me!', 1, NULL, 30, 45, NULL, NULL, NULL, 11, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4301, 'Ham robe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 11, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4302, 'Ham hood', 'Light-weight head protection and eye shield.', 1, NULL, 30, 45, NULL, NULL, NULL, 400, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,0,0,0,1,2,0,1,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4303, 'Ham hood', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4304, 'Ham cloak', 'A HAM cape.', 1, NULL, 30, 45, NULL, NULL, NULL, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4305, 'Ham cloak', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4306, 'H.a.m logo', 'A badge for the HAM cult.', 1, NULL, 30, 45, NULL, NULL, NULL, 63, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4307, 'H.a.m logo', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 63, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4308, 'Gloves', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 59, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,0,0,0,1,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4309, 'Gloves', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 59, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4310, 'Boots', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 323, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,0,0,0,1,1,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4311, 'Boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 323, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4313, 'Crystal of seren', 'A book on elven crystal.', 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4315, 'Team-1 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 2342, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4316, 'Team-1 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2342, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4317, 'Team-2 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 1145, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(4318, 'Team-2 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1145, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4319, 'Team-3 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 141, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4320, 'Team-3 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 141, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4321, 'Team-4 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 973, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4322, 'Team-4 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 973, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4323, 'Team-5 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 1294, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4324, 'Team-5 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1294, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4325, 'Team-6 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 124, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4326, 'Team-6 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 124, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4327, 'Team-7 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 1264, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4328, 'Team-7 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1264, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4329, 'Team-8 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 1824, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4330, 'Team-8 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1824, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4331, 'Team-9 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 841, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4332, 'Team-9 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 841, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4333, 'Team-10 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 1127, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4334, 'Team-10 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1127, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4335, 'Team-11 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 2011, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4336, 'Team-11 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2011, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4337, 'Team-12 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 1591, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4338, 'Team-12 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1591, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4339, 'Team-13 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 308, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4340, 'Team-13 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 308, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4341, 'Team-14 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 1504, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4342, 'Team-14 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1504, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4343, 'Team-15 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 1462, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4344, 'Team-15 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1462, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4345, 'Team-16 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 313, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4346, 'Team-16 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 313, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4347, 'Team-17 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 1231, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4348, 'Team-17 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1231, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4349, 'Team-18 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 1678, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4350, 'Team-18 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1678, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4351, 'Team-19 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 1041, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4352, 'Team-19 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1041, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4353, 'Team-20 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 703, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4354, 'Team-20 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 703, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4355, 'Team-21 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 1292, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4356, 'Team-21 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1292, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4357, 'Team-22 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 1368, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4358, 'Team-22 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1368, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4359, 'Team-23 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 280, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4360, 'Team-23 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 280, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4361, 'Team-24 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 1512, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4362, 'Team-24 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1512, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4363, 'Team-25 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 1395, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4364, 'Team-25 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1395, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4365, 'Team-26 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 191, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4366, 'Team-26 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 191, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4367, 'Team-27 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 1420, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4368, 'Team-27 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1420, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4369, 'Team-28 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 1920, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4370, 'Team-28 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1920, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4371, 'Team-29 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 1175, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4372, 'Team-29 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1175, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4373, 'Team-30 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 552, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4374, 'Team-30 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 552, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4375, 'Team-31 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 1385, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4376, 'Team-31 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1385, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4377, 'Team-32 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 1168, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4378, 'Team-32 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1168, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4379, 'Team-33 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 211, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4380, 'Team-33 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 211, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4381, 'Team-34 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 1128, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4382, 'Team-34 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1128, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4383, 'Team-35 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 1140, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4384, 'Team-35 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1140, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4385, 'Team-36 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 84, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4386, 'Team-36 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 84, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4387, 'Team-37 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 1010, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4388, 'Team-37 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1010, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4389, 'Team-38 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 1833, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4390, 'Team-38 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1833, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4391, 'Team-39 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 914, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4392, 'Team-39 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 914, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4393, 'Team-40 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 582, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4394, 'Team-40 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 582, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4395, 'Team-41 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 1471, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4396, 'Team-41 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1471, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4397, 'Team-42 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 1072, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4398, 'Team-42 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1072, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4399, 'Team-43 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 298, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4400, 'Team-43 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 298, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4401, 'Team-44 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 1268, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4402, 'Team-44 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1268, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4403, 'Team-45 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 1371, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4404, 'Team-45 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1371, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4405, 'Team-46 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 140, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4406, 'Team-46 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 140, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4407, 'Team-47 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 1233, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4408, 'Team-47 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1233, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4409, 'Team-48 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 1836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4410, 'Team-48 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4411, 'Team-49 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 1185, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4412, 'Team-49 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1185, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4413, 'Team-50 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, 708, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4414, 'Team-50 cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 708, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4415, 'Blunt axe', 'A jungle forester\'s blunt hatchet.', NULL, NULL, 22, 33, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4416, 'Herbal tincture', 'A strong medicinal brew for heavy chests.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4417, 'Guthix rest(4)', 'A cup of Guthix rest.', 1, NULL, 20, 30, NULL, NULL, NULL, 223, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4418, 'Guthix rest(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 223, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4419, 'Guthix rest(3)', 'A cup of Guthix rest.', 1, NULL, 20, 30, NULL, NULL, NULL, 134, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4420, 'Guthix rest(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 134, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4421, 'Guthix rest(2)', 'A cup of Guthix rest.', 1, NULL, 20, 30, NULL, NULL, NULL, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4422, 'Guthix rest(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4423, 'Guthix rest(1)', 'A cup of Guthix rest.', 1, NULL, 20, 30, NULL, NULL, NULL, 44, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4424, 'Guthix rest(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 44, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4425, 'Stodgy mattress', 'A half-filled feather mattress.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4426, 'Comfy mattress', 'A comfy-looking feather mattress.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 15, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4427, 'Iron oxide', 'Looks like a bunch of rust to me.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4428, 'Animate rock scroll', 'An animate rock spell is written on this parchment.', NULL, NULL, 20, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4430, 'Directionals', 'The weathervane directions should now work.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4432, 'Ornament', 'A fixed weathervane ornament.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4434, 'Weathervane pillar', 'A fixed weathervane rotating pillar.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4435, 'Weather report', 'Clear skies ahead, with some chance of showers, thunderstorms, ice and hail.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4436, 'Airtight pot', 'This is pretty well sealed.', 1, NULL, 4, 6, NULL, NULL, NULL, 245, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4437, 'Airtight pot', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 245, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4438, 'Unfired pot lid', 'This needs firing, then it should fit on a normal-sized pot.', 1, NULL, 4, 6, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4439, 'Unfired pot lid', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4440, 'Pot lid', 'This should fit on a normal-sized pot.', 1, NULL, 6, 9, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4441, 'Pot lid', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4442, 'Breathing salts', 'An airtight pot with something inside, most likely breathing salts.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4443, 'Chicken cage', 'A large cage for transporting chickens.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4444, 'Sharpened axe', 'A jungle forester\'s super sharp axe.', NULL, NULL, 22, 33, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4445, 'Red mahogany log', 'Some mahogany logs which have been professionally cured.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4446, 'Steel key ring', 'I can store my keys here.', NULL, NULL, NULL, NULL, 1, 'You can get another key ring from Yanni Salika in Shilo Village.', 500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4447, 'Antique lamp', 'I wonder what happens if I rub it.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4456, 'Bowl of hot water', 'It\'s a bowl of hot water.', 1, NULL, 4, 6, NULL, NULL, NULL, 111, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4457, 'Bowl of hot water', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 111, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4458, 'Cup of water', 'A cup of water.', 1, NULL, 4, 6, NULL, NULL, NULL, 36, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4459, 'Cup of water', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 36, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4460, 'Cup of hot water', 'It\'s hot!', 1, NULL, 4, 6, NULL, NULL, NULL, 102, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4461, 'Cup of hot water', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 102, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4462, 'Ruined herb tea', 'A ruined herb tea.', 1, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4463, 'Ruined herb tea', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4464, 'Herb tea mix', 'See article', 1, NULL, 1, 1, NULL, NULL, NULL, 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4465, 'Herb tea mix', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4466, 'Herb tea mix', 'See article', 1, NULL, 1, 1, NULL, NULL, NULL, 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4467, 'Herb tea mix', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4468, 'Herb tea mix', 'See article', 1, NULL, 1, 1, NULL, NULL, NULL, 19, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4469, 'Herb tea mix', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 19, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4470, 'Herb tea mix', 'See article', 1, NULL, 1, 1, NULL, NULL, NULL, 19, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4471, 'Herb tea mix', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 19, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4472, 'Herb tea mix', 'See article', 1, NULL, 1, 1, NULL, NULL, NULL, 17, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4473, 'Herb tea mix', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 17, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4474, 'Herb tea mix', 'See article', 1, NULL, 1, 1, NULL, NULL, NULL, 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4475, 'Herb tea mix', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4476, 'Herb tea mix', 'See article', 1, NULL, 1, 1, NULL, NULL, NULL, 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4477, 'Herb tea mix', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4478, 'Herb tea mix', 'See article', 1, NULL, 1, 1, NULL, NULL, NULL, 46, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4479, 'Herb tea mix', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 46, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4480, 'Herb tea mix', 'See article', 1, NULL, 1, 1, NULL, NULL, NULL, 41, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4481, 'Herb tea mix', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 41, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4482, 'Herb tea mix', 'See article', 1, NULL, 1, 1, NULL, NULL, NULL, 43, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4483, 'Herb tea mix', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 43, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4484, 'Safety guarantee', 'The strange characters supposedly grant Svidi safe passage into Rellekka.', NULL, NULL, NULL, NULL, NULL, NULL, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4485, 'White pearl', 'This fruit is known as White Pearl. Should taste good.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4486, 'White pearl seed', 'You can grow this seed even in cold mountain ranges!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4487, 'Half a rock', 'It\'s a piece of the Ancient Rock of the mountain people. It\'s still just a stone.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4488, 'Corpse of woman', 'The corpse of a woman who died long ago.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4489, 'Asleif\'s necklace', 'This used to belong to Asleif, daughter of the mountain camp chieftain.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4490, 'Mud', 'Marginally better than egg on your face.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4492, 'Muddy rock', 'A muddy rock.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4494, 'Pole', 'It\'s just a long stick, really.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4495, 'Pole', 'It\'s just a long stick, really.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4496, 'Broken pole', 'Splintered into pieces, it has become completely useless to you.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4498, 'Rope', 'A coil of rope.', 1, NULL, 7, 10, NULL, NULL, 18, 101, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4499, 'Rope', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4500, 'Pole', 'It\'s just a long stick, really.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4501, 'Pole', 'It\'s just a long stick, really.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4502, 'Bearhead', 'Quite ferocious looking.', NULL, NULL, NULL, NULL, 1, 'Hamal, the Chieftain of the Mountain Camp, can replace this.', 3000, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-3,-3,12,14,10,7,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4503, 'Decorative sword', 'A very decorative sword.', NULL, NULL, 520, 780, NULL, NULL, 50, NULL, NULL, NULL, NULL, 808, 823, 819, 824, 820, 821, 822, 1, 3, NULL, NULL, '15,20,-2,0,0,0,3,2,0,0,0,22,0,0,0', 6, NULL, NULL, '390,390,381,390', 397, NULL, '{0,20}', 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4504, 'Decorative armour', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,-30,-10,46,44,38,-6,44,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4505, 'Decorative armour', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,-21,-7,24,22,20,-4,22,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4506, 'Decorative helm', 'A very decorative helm.', NULL, NULL, 312, 468, NULL, NULL, 40, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-3,-1,10,11,9,-1,10,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}', 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4507, 'Decorative shield', 'A very decorative shield.', NULL, NULL, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,-8,-2,18,22,20,-1,20,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4508, 'Decorative sword', 'A very decorative sword.', NULL, NULL, 520, 780, NULL, NULL, 50, NULL, NULL, NULL, NULL, 808, 823, 819, 824, 820, 821, 822, 1, 3, NULL, NULL, '20,29,-2,0,0,0,3,2,0,0,0,31,0,0,0', 6, NULL, NULL, '390,390,381,390', 397, NULL, '{0,30}', 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4509, 'Decorative armour', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,-30,-10,65,63,55,-6,63,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4510, 'Decorative armour', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,-21,-7,33,31,29,-4,31,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4511, 'Decorative helm', 'A very decorative helm.', NULL, NULL, 312, 468, NULL, NULL, 40, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-3,-1,14,15,13,-1,14,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 1, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(4512, 'Decorative shield', 'A very decorative shield.', NULL, NULL, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,-8,-2,27,31,29,-1,29,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4513, 'Castlewars hood', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,0,0,0,1,2,0,1,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4514, 'Castlewars cloak', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4515, 'Castlewars hood', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,0,0,0,1,2,0,1,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4516, 'Castlewars cloak', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4517, 'Giant frog legs', 'This could feed a family of gnomes for a week!', 1, NULL, 40, 60, NULL, NULL, NULL, 970, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(4518, 'Giant frog legs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 970, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(4522, 'Oil lamp', 'Empty: An oil lamp with no oil in it.Filled: Not the genie sort.', 1, NULL, 11, 16, NULL, NULL, 10, 1575, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{12,11}', 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4523, 'Oil lamp', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1575, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4524, 'Oil lamp', 'Empty: An oil lamp with no oil in it.Filled: Not the genie sort.', 1, NULL, 11, 16, NULL, NULL, 10, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4525, 'Oil lamp', 'Empty: An oil lamp with no oil in it.Filled: Not the genie sort.', 1, NULL, 11, 16, NULL, NULL, 10, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{12,11}', 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4526, 'Oil lamp', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4527, 'Candle lantern', 'Lit: A flickering candle in a glass cage.Unlit: a candle in a glass cage.Without candle: Put a candle in to complete it.', 1, NULL, 4, 6, NULL, NULL, NULL, 39, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,11}', 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4528, 'Candle lantern', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 39, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4529, 'Candle lantern', 'Lit: A flickering candle in a glass cage.Unlit: a candle in a glass cage.Without candle: Put a candle in to complete it.', 1, NULL, 4, 6, NULL, NULL, NULL, 431, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,11}', 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4530, 'Candle lantern', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 431, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4531, 'Candle lantern', 'Lit: A flickering candle in a glass cage.Unlit: a candle in a glass cage.Without candle: Put a candle in to complete it.', 1, NULL, 4, 6, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4532, 'Candle lantern', 'Lit: A flickering candle in a glass cage.Unlit: a candle in a glass cage.Without candle: Put a candle in to complete it.', 1, NULL, 4, 6, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,11}', 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4533, 'Candle lantern', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4534, 'Candle lantern', 'Lit: A flickering candle in a glass cage.Unlit: a candle in a glass cage.Without candle: Put a candle in to complete it.', 1, NULL, 4, 6, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4535, 'Oil lantern', 'Unfuelled: Put oil in to complete it. Unlit: An unlit oil lantern. Lit: It lights your way through the dark places of the earth.', 1, NULL, 50, 75, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{11,26}', 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4536, 'Oil lantern', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4537, 'Oil lantern', 'Unfuelled: Put oil in to complete it. Unlit: An unlit oil lantern. Lit: It lights your way through the dark places of the earth.', 1, NULL, 50, 75, NULL, NULL, NULL, 218, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{11,26}', 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4538, 'Oil lantern', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 218, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4539, 'Oil lantern', 'Unfuelled: Put oil in to complete it. Unlit: An unlit oil lantern. Lit: It lights your way through the dark places of the earth.', 1, NULL, 50, 75, NULL, NULL, NULL, 198, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4540, 'Oil lantern frame', 'Add the glass to complete.', 1, NULL, 36, 54, NULL, NULL, 43, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4541, 'Oil lantern frame', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4542, 'Lantern lens', 'A roughly circular disc of glass.', 1, NULL, 28, 42, NULL, NULL, 88, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4543, 'Lantern lens', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4544, 'Bullseye lantern', 'A sturdy steel lantern casting a bright beam.', NULL, NULL, 168, 252, NULL, NULL, 400, 88, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4545, 'Bullseye lantern', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 88, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4546, 'Bullseye lantern', 'A sturdy steel lantern casting a bright beam.', NULL, NULL, 168, 252, NULL, NULL, 400, 158, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{11,49}', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4547, 'Bullseye lantern', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 158, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4548, 'Bullseye lantern', 'A sturdy steel lantern casting a bright beam.', NULL, NULL, 168, 252, NULL, NULL, 400, 1345, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{11,49}', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4549, 'Bullseye lantern', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1345, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4550, 'Bullseye lantern', 'A sturdy steel lantern casting a bright beam.', NULL, NULL, 168, 252, NULL, NULL, 400, 1235, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4551, 'Spiny helmet', 'You don\'t want to wear it inside-out.', 1, NULL, 260, 390, NULL, NULL, 650, 774, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,9,10,7,-1,9,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,5}-{18,35}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4552, 'Spiny helmet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 774, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4558, 'Blue sweets', 'Remember to brush after eating!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4559, 'Deep blue sweets', 'Remember to brush after eating!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4560, 'White sweets', 'Remember to brush after eating!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4561, 'Purple sweets', 'Remember to brush after eating!', 1, NULL, 6, 9, NULL, NULL, NULL, 10037, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4562, 'Red sweets', 'Remember to brush after eating!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4563, 'Green sweets', 'Remember to brush after eating!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4564, 'Pink sweets', 'Remember to brush after eating!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4565, 'Basket of eggs', 'Hand them out to spread the Easter happiness.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1837, 823, 1836, 1836, 820, 821, 822, 1426, 3, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 1, 0), +(4566, 'Rubber chicken', 'Perhaps not the most powerful weapon in RuneScape.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, '-100,-100,-50,0,0,0,0,0,0,0,0,-10,0,0,0', 12, NULL, NULL, '1833,1833,1833,1833', 1834, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, 1, 0), +(4567, 'Gold helmet', 'Made of gold and white gold.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,0,0,0,10,20,0,10,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 31.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4568, 'Dwarven lore', 'This book is almost falling apart, you\'ll have to handle it quite carefully.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4569, 'Book page 1', 'A missing page from Rolad\'s book! It seems to be the first one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4570, 'Book page 2', 'A missing page from Rolad\'s book! It seems to be the second one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4571, 'Book page 3', 'A missing page from Rolad\'s book! It seems to be the third one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4572, 'Pages', 'A collection of missing pages from Rolad\'s book!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4573, 'Pages', 'A collection of missing pages from Rolad\'s book!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4574, 'Base schematics', 'These are the base schematics of a dwarven multicannon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4580, 'Black spear', 'A black tipped spear.', 1, NULL, 260, 390, NULL, NULL, NULL, 536, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '15,15,15,0,0,1,1,0,0,0,0,16,0,0,0', 14, NULL, 1, NULL, NULL, NULL, '{0,10}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4581, 'Black spear', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 536, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4582, 'Black spear(p)', 'A black tipped spear.', 1, NULL, 260, 390, NULL, NULL, NULL, 2808, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '15,15,15,0,0,1,1,0,0,0,0,16,0,0,0', 14, NULL, 1, NULL, NULL, NULL, '{0,10}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4583, 'Black spear(p)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2808, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4584, 'Black spear(kp)', 'A black tipped spear.', 1, NULL, 260, 390, NULL, NULL, NULL, 309, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '15,15,15,0,0,1,1,0,0,0,0,16,0,0,0', 14, NULL, 1, NULL, NULL, NULL, '{0,10}', 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4585, 'Dragon plateskirt', 'This looks pretty heavy.', 1, 1, 108000, 162000, NULL, NULL, NULL, 161000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '3,0,6', '0,0,0,-21,-7,68,66,63,-4,65,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}', 9, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4586, 'Dragon plateskirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 161000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4587, 'Dragon scimitar', 'A vicious, curved sword.', 1, 1, 40000, 60000, NULL, NULL, 120000, 65400, NULL, NULL, NULL, 808, 823, 819, 824, 820, 821, 822, 1, 3, 4, NULL, '8,67,-2,0,0,0,1,0,0,0,0,66,0,0,0', 6, 1, NULL, '390,390,381,390', 397, '2500,0,2517,0', '{0,60}', 1.8, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4588, 'Dragon scimitar', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 65400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4589, 'Keys', 'Keys to the Mayor\'s house. (The Feud)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4590, 'Jewels', 'The Mayor of Pollnivneach\'s wife\'s jewels.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4591, 'Karidian headpiece', 'Wear it on your head.', NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4593, 'Fake beard', 'Makes me itch.', 1, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4597, 'Note', 'Swap this note at any bank for the equivalent item.', 1, NULL, 160, 160, NULL, NULL, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4598, 'Note', 'Swap this note at any bank for the equivalent item.', 1, NULL, 160, 160, NULL, NULL, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4599, 'Oak-blackjack', 'A handy little club made out of oak.', NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, '0,0,0,0,0,0,0,0,0,0,0,2,0,0,0', 10, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4600, 'Willow-blackjack', 'A handy little club made out of willow.', 1, NULL, 240, 360, NULL, NULL, 600, 321, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, '0,0,0,0,0,0,0,0,0,0,0,8,0,0,0', 10, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4601, 'Ugthanki dung', 'Dung of the Camelus Horribleus variety.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4602, 'Ugthanki dung', 'Dung of the Camelus Horribleus variety.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4603, 'Receipt', 'A receipt for one \'Camelus Horribleus\'', NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4604, 'Hag\'s poison', 'A red viscous liquid in a vial.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4605, 'Snake charm', 'Makes a hissing sound.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4606, 'Snake basket', 'This is used to hold snakes.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4607, 'Snake basket full', 'This basket contains a snake.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4608, 'Super kebab', 'A meaty and very hot kebab.', 1, NULL, 1, 1, NULL, NULL, 5, 403, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(4609, 'Super kebab', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 403, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(4610, 'Red hot sauce', 'The bottle feels warm.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4611, 'Desert disguise', 'A disguise suitable for the desert.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4612, 'Willow-blackjack', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4613, 'Spinning plate', 'It has a picture of a dragon on it.', NULL, NULL, 30, 45, NULL, NULL, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4614, 'Broken plate', 'Alas...', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4616, 'Varmen\'s notes', 'An archaeologist\'s notes.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4617, 'Display cabinet key', 'The museum curator\'s key (The Golem).', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4619, 'Strange implement', 'It\'s pretty, but you wish you knew what it was.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4620, 'Black mushroom', 'It looks horrible.On ground: Not good for eating.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4621, 'Phoenix feather', 'A long feather patterned like a flame.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4622, 'Black mushroom ink', 'Black ink made out of mushrooms.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4623, 'Phoenix quill pen', 'A phoenix feather dipped in ink.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4624, 'Golem program', 'It reads \'YOUR TASK IS DONE\'.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4627, 'Bandit\'s brew', 'A cheeky little lager from the Bandit Camp.', 1, NULL, 260, 390, NULL, NULL, 650, 1133, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4628, 'Bandit\'s brew', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1133, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4654, 'Etchings', 'A copy of the engravings found on a mysterious stone tablet.', NULL, NULL, 100, 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4655, 'Translation', 'A rough translation made from archaeological etchings.', NULL, NULL, 100, 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4656, 'Warm key', 'This key is unusally warm to the touch.', NULL, NULL, 100, 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4657, 'Ring of visibility', 'A ring that allows you to see things that are normally invisible.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4658, 'Silver pot', 'Frank\'s shiny silver coated pot.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4659, 'Blessed pot', 'A silver pot made by Ruantun and blessed on Entrana.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4660, 'Silver pot', 'Frank\'s shiny silver coated pot.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4661, 'Blessed pot', 'A silver pot made by Ruantun and blessed on Entrana.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4662, 'Silver pot', 'Frank\'s shiny silver coated pot.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4663, 'Blessed pot', 'A silver pot made by Ruantun and blessed on Entrana.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4664, 'Silver pot', 'Frank\'s shiny silver coated pot.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4665, 'Blessed pot', 'A silver pot made by Ruantun and blessed on Entrana.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4666, 'Silver pot', 'Frank\'s shiny silver coated pot.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4667, 'Blessed pot', 'A silver pot made by Ruantun and blessed on Entrana.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4668, 'Garlic powder', 'Finely ground garlic powder.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4670, 'Blood diamond', 'The Diamond of Blood.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4671, 'Ice diamond', 'The Diamond of Ice.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4672, 'Smoke diamond', 'The Diamond of Smoke.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4673, 'Shadow diamond', 'The Diamond of Shadow.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4674, 'Gilded cross', 'An old and strangely shaped metal cross.', NULL, NULL, 100, 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4675, 'Ancient staff', 'A magical staff of ancient origin...', 1, 1, 40000, 60000, NULL, NULL, 80000, 59300, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 4, NULL, '10,-1,40,15,0,2,3,1,15,0,0,50,-1,0,0', 1, NULL, NULL, '419,419,419,419', 420, '2555,0,0,0', '{0,50}-{6,50}', 2.25, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4676, 'Ancient staff', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 59300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4677, 'Catspeak amulet', 'It\'s an amulet of cat speak. It makes vague purring noises.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4678, 'Canopic jar', 'Varies. See Types', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4679, 'Canopic jar', 'Varies. See Types', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4680, 'Canopic jar', 'Varies. See Types', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4681, 'Canopic jar', 'Varies. See Types', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4682, 'Holy symbol', 'A blessed holy symbol of Saradomin.', 1, NULL, 120, 180, NULL, NULL, 300, 112, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0,0,0,0,0,2,2,2,2,2,3,0,0,8,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4683, 'Unholy symbol', 'An unholy symbol of Zamorak.', 1, NULL, 80, 120, NULL, NULL, 135, 52, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2,2,2,2,2,0,0,0,0,0,0,0,0,8,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4684, 'Linen', 'One sheet of mummy wrap.', NULL, NULL, 12, 18, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4686, 'Embalming manual', 'Little book of embalming by Bod E. Wrapper.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4687, 'Bucket of sap', 'It\'s a bucket of sap.', NULL, NULL, 12, 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4689, 'Pile of salt', 'A little heap of salt.', NULL, NULL, 8, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4691, 'Sphinx\'s token', 'Miniature golden statue of a sphinx.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4692, 'Gold leaf', 'A very delicate sheet of gold.', 1, NULL, 52000, 78000, NULL, NULL, 130000, 132580, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4693, 'Full bucket', 'It\'s a bucket of salty water.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4694, 'Steam rune', 'A combined Water and Fire Rune.', 1, NULL, 2, 4, NULL, NULL, 11151, 48, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(4695, 'Mist rune', 'A combined air and water rune.', 1, NULL, 2, 4, NULL, NULL, 11151, 249, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(4696, 'Dust rune', 'A combined Air and Earth Rune.', 1, NULL, 2, 4, NULL, NULL, 11151, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(4697, 'Smoke rune', 'A combined Air and Fire Rune.', 1, NULL, 2, 4, NULL, NULL, 11151, 148, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(4698, 'Mud rune', 'A combined Earth and Water rune.', 1, NULL, 2, 4, NULL, NULL, 11151, 657, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(4699, 'Lava rune', 'A combined earth and fire rune.', 1, NULL, 2, 4, NULL, NULL, 11151, 49, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(4700, 'Sapphire lantern', 'Unfuelled: You need to add lamp oil before you can use it. Unlit: A bullseye lantern with a sapphire for a lens. Lit: A lantern casting a bright blue beam.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4701, 'Sapphire lantern', 'Unfuelled: You need to add lamp oil before you can use it. Unlit: A bullseye lantern with a sapphire for a lens. Lit: A lantern casting a bright blue beam.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4702, 'Sapphire lantern', 'Unfuelled: You need to add lamp oil before you can use it. Unlit: A bullseye lantern with a sapphire for a lens. Lit: A lantern casting a bright blue beam.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4703, 'Magic stone', 'A magic stone to make high-level furniture.', 1, NULL, 390000, 585000, NULL, NULL, 975000, 977755, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4704, 'Stone bowl', 'A magic stone bowl for catching the tears of Guthix.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 808, 823, 819, 824, 820, 821, 822, 1, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4707, 'Crumbling tome', 'This book must be really old!', NULL, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4708, 'Ahrim\'s hood', 'Ahrim The Blighted\'s Hood.', 1, NULL, 5200, 7800, NULL, NULL, NULL, 94300, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '5,2,0', '0,0,0,6,-2,15,13,16,6,0,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{6,70}', 0.9, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4709, 'Ahrim\'s hood', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 94300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4710, 'Ahrim\'s staff', 'Ahrim the Blighted\'s quarterstaff.', 1, NULL, 34000, 51000, NULL, NULL, NULL, 69500, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 6, NULL, '12,-1,65,15,0,3,5,2,15,0,0,68,0,0,0', 1, NULL, NULL, '419,419,419,419', 420, '2555,0,0,0', '{0,70}-{6,70}', 2, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4711, 'Ahrim\'s staff', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 69500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4712, 'Ahrim\'s robetop', 'Ahrim the Blighted\'s armoured robe top.', 1, NULL, 20000, 30000, NULL, NULL, NULL, 1000000, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '10,5,0', '0,0,0,30,-10,52,37,63,30,0,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{6,70}', 5, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4713, 'Ahrim\'s robetop', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4714, 'Ahrim\'s robeskirt', 'Ahrim the Blighted\'s armoured robe skirt.', 1, NULL, 18800, 28200, NULL, NULL, NULL, 1700000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '7,3,0', '0,0,0,22,-7,33,30,36,22,0,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{6,70}', 12, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4715, 'Ahrim\'s robeskirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1700000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4716, 'Dharok\'s helm', 'Dharok The Wretched\'s Helmet', 1, NULL, 41200, 61800, NULL, NULL, NULL, 1300000, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,0,5', '0,0,0,-3,-1,45,48,44,-1,51,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 1, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4717, 'Dharok\'s helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1300000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4718, 'Dharok\'s greataxe', 'Dharok the Wretched\'s Greataxe.', 1, NULL, 83200, 124800, NULL, NULL, NULL, 516900, NULL, NULL, NULL, 2065, 823, 2064, 824, 820, 821, 822, 1426, 3, 7, NULL, '-4,103,95,-4,0,0,0,0,0,-1,0,105,0,0,0', 2, NULL, 1, '2067,2067,2066,2067', 424, NULL, '{0,70}-{2,70}', 13, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4719, 'Dharok\'s greataxe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 516900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4720, 'Dharok\'s platebody', 'Dharok the Wretched\'s platebody.', 1, NULL, 112000, 168000, NULL, NULL, NULL, 511400, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '5,0,10', '0,0,0,-30,-10,122,120,107,-6,132,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 9.9, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4721, 'Dharok\'s platebody', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 511400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4722, 'Dharok\'s platelegs', 'Dharok the wretched\'s plate leg armour.', 1, NULL, 110000, 165000, NULL, NULL, NULL, 748800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '3,0,7', '0,0,0,-21,-7,85,82,83,-4,92,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 10, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4723, 'Dharok\'s platelegs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 748800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4724, 'Guthan\'s helm', 'Guthan the Infested\'s helm.', 1, NULL, 41200, 61800, NULL, NULL, NULL, 396300, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,0,5', '0,0,0,-6,-2,55,58,54,-1,62,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 2, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4725, 'Guthan\'s helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 396300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4726, 'Guthan\'s warspear', 'Guthan The Infested\'s Warspear.', 1, NULL, 40000, 60000, NULL, NULL, NULL, 588400, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '75,75,75,0,0,7,7,7,0,0,0,75,0,0,0', 14, NULL, 1, '2080,2081,2082,2080', 2079, NULL, '{0,70}', 2.2, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4727, 'Guthan\'s warspear', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 588400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4728, 'Guthan\'s platebody', 'Guthan the Infested\'s platebody armour.', 1, NULL, 112000, 168000, NULL, NULL, NULL, 316800, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '5,0,10', '0,0,0,-30,-10,122,120,107,-6,132,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 9, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4729, 'Guthan\'s platebody', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 316800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4730, 'Guthan\'s chainskirt', 'Guthan the Infested\'s chainskirt.', 1, NULL, 110000, 165000, NULL, NULL, NULL, 315600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '3,0,7', '0,0,0,-14,-7,75,72,73,-4,82,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 8, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4731, 'Guthan\'s chainskirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 315600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4732, 'Karil\'s coif', 'Karil the Tainted\'s coif.', 1, NULL, 5200, 7800, NULL, NULL, NULL, 38900, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,5,2', '0,0,0,-1,3,6,9,12,6,10,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{4,70}', NULL, 1, NULL, NULL, NULL, NULL, NULL, 0), +(4733, 'Karil\'s coif', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 38900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(4734, 'Karil\'s crossbow', 'Karil the Tainted\'s repeating crossbow.', 1, NULL, 64000, 96000, NULL, NULL, NULL, 188000, NULL, NULL, NULL, 2074, 823, 2076, 2077, 2076, 2076, 2076, 372, 3, 4, NULL, '0,0,0,0,84,0,0,0,0,0,0,0,0,0,0', 17, NULL, 1, '2075,2075,2075,2075', 424, '2700,0,0,0', '{4,70}', 2, 1, NULL, NULL, NULL, NULL, NULL, 0), +(4735, 'Karil\'s crossbow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 188000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, 0), +(4736, 'Karil\'s leathertop', 'Karil the Tainted\'s leatherbody.', 1, NULL, 20000, 30000, NULL, NULL, NULL, 1800000, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '0,10,5', '0,0,0,-15,30,47,42,50,65,57,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{4,70}', 6, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(4737, 'Karil\'s leathertop', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1800000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(4738, 'Karil\'s leatherskirt', 'Karil the Tainted\'s leather skirt.', 1, NULL, 18800, 28200, NULL, NULL, NULL, 217000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '0,7,3', '0,0,0,-10,17,26,20,28,35,33,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{4,70}', 2, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(4739, 'Karil\'s leatherskirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 217000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(4740, 'Bolt rack', 'Must need a special type of crossbow to use this.', 1, NULL, 20, 30, NULL, NULL, 420, 238, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,55', NULL, NULL, NULL, NULL, NULL, NULL, '{4,70}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(4745, 'Torag\'s helm', 'Torag the Corrupted\'s helm.', 1, NULL, 41200, 61800, NULL, NULL, NULL, 139000, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,0,5', '0,0,0,-6,-2,55,58,54,-1,62,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 5, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4746, 'Torag\'s helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 139000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4747, 'Torag\'s hammers', 'Torag the Corrupted\'s twin hammers.', 1, NULL, 64000, 96000, NULL, NULL, NULL, 111600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '-4,-4,85,-4,0,0,0,0,0,0,0,72,0,0,0', 10, NULL, 1, '2068,2068,2068,2068', 424, '1332,0,0,0', '{0,70}-{2,70}', 3, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(4748, 'Torag\'s hammers', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 111600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(4749, 'Torag\'s platebody', 'Torag the Corrupted\'s plate body armour.', 1, NULL, 112000, 168000, NULL, NULL, NULL, 346200, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '5,0,10', '0,0,0,-30,-10,122,120,107,-6,132,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 9, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4750, 'Torag\'s platebody', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 346200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4751, 'Torag\'s platelegs', 'Torag the Corrupted\'s plate leg armour.', 1, NULL, 110000, 165000, NULL, NULL, NULL, 427200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '3,0,7', '0,0,0,-21,-7,85,82,83,-4,92,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 9, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4752, 'Torag\'s platelegs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 427200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4753, 'Verac\'s helm', 'Verac the Defiled\'s helm.', 1, NULL, 41200, 61800, NULL, NULL, NULL, 687200, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,0,5', '0,0,0,-6,-2,55,58,54,0,56,15,0,3,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 1, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4754, 'Verac\'s helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 687200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4755, 'Verac\'s flail', 'Verac the Defiled\'s Flail.', 1, NULL, 64000, 96000, NULL, NULL, NULL, 135500, NULL, NULL, NULL, 1832, 823, 1830, 1831, 2060, 2060, 2060, 1426, 3, 5, NULL, '68,-2,82,0,0,0,0,0,0,0,0,72,6,0,0', 8, NULL, 1, '2062,2062,2062,2062', 424, '1323,0,0,0', '{0,70}', 2, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4756, 'Verac\'s flail', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 135500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4757, 'Verac\'s brassard', 'Verac the Defiled\'s brassard.', 1, NULL, 112000, 168000, NULL, NULL, NULL, 270000, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '5,0,10', '0,0,0,-6,-2,81,95,85,0,81,60,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 5, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4758, 'Verac\'s brassard', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 270000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4759, 'Verac\'s plateskirt', 'Verac the Defiled\'s plate skirt.', 1, NULL, 110000, 165000, NULL, NULL, NULL, 411400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '3,0,7', '0,0,0,-21,-7,85,82,83,0,84,30,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 5, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4760, 'Verac\'s plateskirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 411400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4773, 'Bronze brutal', 'Blunt bronze arrow...ouch', 1, NULL, 2, 3, NULL, NULL, NULL, 39, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,11', NULL, NULL, NULL, NULL, NULL, NULL, '{4,30}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(4778, 'Iron brutal', 'Blunt iron arrow...ouch', 1, NULL, 4, 6, NULL, NULL, NULL, 14, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,13', NULL, NULL, NULL, NULL, NULL, NULL, '{4,30}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(4783, 'Steel brutal', 'Blunt steel arrow...ouch', 1, NULL, 8, 12, NULL, NULL, NULL, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,19', NULL, NULL, NULL, NULL, NULL, NULL, '{4,30}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(4788, 'Black brutal', 'Blunt black arrow...ouch', 1, NULL, 14, 21, NULL, NULL, NULL, 63, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,22', NULL, NULL, NULL, NULL, NULL, NULL, '{4,30}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(4793, 'Mithril brutal', 'Blunt mithril arrow...ouch', 1, NULL, 20, 30, NULL, NULL, 20, 80, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,34', NULL, NULL, NULL, NULL, NULL, NULL, '{4,30}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(4798, 'Adamant brutal', 'Blunt adamant arrow...ouch', 1, NULL, 38, 57, NULL, NULL, NULL, 154, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,45', NULL, NULL, NULL, NULL, NULL, NULL, '{4,30}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(4803, 'Rune brutal', 'Blunt rune arrow...ouch', 1, NULL, 180, 270, NULL, NULL, 180, 188, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,60', NULL, NULL, NULL, NULL, NULL, NULL, '{4,30}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(4808, 'Black prism', 'A very black prism.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4809, 'Torn page', 'A half torn necromantic page.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4810, 'Ruined backpack', 'It\'s about to fall apart.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4811, 'Dragon inn tankard', 'A white ceramic mug with a dragon insignia.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4812, 'Zogre bones', 'A pile of Zombie Ogre bones.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1167, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.8, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(4813, 'Zogre bones', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1167, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(4814, 'Sithik portrait', 'A classic realist charcoal portrait of Sithik.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4815, 'Sithik portrait', 'A classic realist charcoal portrait of Sithik.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4816, 'Signed portrait', 'A signed classic realist charcoal portrait of Sithik.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4817, 'Book of portraiture', 'A book explaining the art of portraiture.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4818, 'Ogre artefact', 'An ancient ogre artefact-resembling a large heavy helm.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4819, 'Bronze nails', 'Keeps things in place fairly permanently.', 1, NULL, 2, 4, NULL, NULL, 4, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(4820, 'Iron nails', 'Keeps things in place fairly permanently.', 1, NULL, 13, 19, NULL, NULL, 33, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(4821, 'Black nails', 'Keeps things in place fairly permanently.', 1, NULL, 4, 7, NULL, NULL, NULL, 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(4822, 'Mithril nails', 'Keeps things in place fairly permanently.', 1, NULL, 7, 10, NULL, NULL, NULL, 35, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(4823, 'Adamantite nails', 'Keeps things in place fairly permanently.', 1, NULL, 18, 27, NULL, NULL, NULL, 87, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(4824, 'Rune nails', 'Keeps things in place fairly permanently.', 1, NULL, 88, 132, NULL, NULL, NULL, 114, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(4825, 'Unstrung comp bow', 'An unstrung composite ogre bow.', 1, NULL, 24, 36, NULL, NULL, NULL, 447, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4826, 'Unstrung comp bow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 447, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4827, 'Comp ogre bow', 'A composite ogre bow.', 1, NULL, 72, 108, NULL, NULL, 180, 225, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '0,0,0,0,38,0,0,0,0,0,0,0,0,0,0', 16, NULL, 1, '426,426,426,426', 424, '2700,0,0,0', '{4,30}', 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4828, 'Comp ogre bow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 225, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4829, 'Book of \'h.a.m\'', 'A book of H.A.M. affiliation', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4830, 'Fayrg bones', 'Ancient ogre bones from the ogre burial tomb.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 5931, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.8, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(4831, 'Fayrg bones', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5931, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(4832, 'Raurg bones', 'Ancient ogre bones from the ogre burial tomb.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 7093, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.8, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(4833, 'Raurg bones', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7093, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(4834, 'Ourg bones', 'Ancient ogre bones from the burial tomb.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 16300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.8, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(4835, 'Ourg bones', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 16300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(4836, 'Strange potion', 'Some strange liquid given to you by Zavistic Rarve.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4837, 'Necromancy book', 'A book of necromantic spells.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4838, 'Cup of tea', 'A nice cup of tea.', 1, NULL, 4, 6, NULL, NULL, 10, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4839, 'Ogre gate key', 'A key to some sort of special tomb area.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4840, 'Rogue\'s purse potion(unf)', 'I need another ingredient to finish this rogue\'s purse potion.', 1, NULL, 2, 3, NULL, NULL, NULL, 2194, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4841, 'Rogue\'s purse potion(unf)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2194, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4842, 'Relicym\'s balm(4)', 'X doses of Relicym\'s balm, which helps cure disease.', 1, NULL, NULL, NULL, NULL, NULL, 200, 1430, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(4843, 'Relicym\'s balm(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1430, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(4844, 'Relicym\'s balm(3)', 'X doses of Relicym\'s balm, which helps cure disease.', 1, NULL, NULL, NULL, NULL, NULL, 200, 654, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(4845, 'Relicym\'s balm(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 654, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(4846, 'Relicym\'s balm(2)', 'X doses of Relicym\'s balm, which helps cure disease.', 1, NULL, NULL, NULL, NULL, NULL, 200, 325, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(4847, 'Relicym\'s balm(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 325, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(4848, 'Relicym\'s balm(1)', 'X doses of Relicym\'s balm, which helps cure disease.', 1, NULL, NULL, NULL, NULL, NULL, 200, 204, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(4849, 'Relicym\'s balm(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 204, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(4850, 'Ogre coffin key', 'A key which opens a coffin!', 1, NULL, 40, 60, NULL, NULL, NULL, 1963, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4851, 'Ogre coffin key', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1963, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(4852, 'Bonemeal', 'A pot of crushed [type of bones].', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4853, 'Bonemeal', 'A pot of crushed [type of bones].', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4854, 'Bonemeal', 'A pot of crushed [type of bones].', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4855, 'Bonemeal', 'A pot of crushed [type of bones].', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4856, 'Ahrim\'s hood 100', 'Ahrim The Blighted\'s Hood.', NULL, NULL, 5200, 7800, NULL, NULL, NULL, 77678, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '5,2,0', '0,0,0,6,-2,15,13,16,6,0,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{6,70}', 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4857, 'Ahrim\'s hood 75', 'Ahrim The Blighted\'s Hood.', NULL, NULL, 5200, 7800, NULL, NULL, NULL, 77678, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '5,2,0', '0,0,0,6,-2,15,13,16,6,0,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{6,70}', 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4858, 'Ahrim\'s hood 50', 'Ahrim The Blighted\'s Hood.', NULL, NULL, 5200, 7800, NULL, NULL, NULL, 77678, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '5,2,0', '0,0,0,6,-2,15,13,16,6,0,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{6,70}', 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4859, 'Ahrim\'s hood 25', 'Ahrim The Blighted\'s Hood.', NULL, NULL, 5200, 7800, NULL, NULL, NULL, 77678, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '5,2,0', '0,0,0,6,-2,15,13,16,6,0,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{6,70}', 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4860, 'Ahrim\'s hood 0', 'Ahrim The Blighted\'s Hood.', 1, NULL, 5200, 7800, NULL, NULL, NULL, 51700, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '5,2,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{6,70}', 0.9, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4861, 'Ahrim\'s hood 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 51700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4862, 'Ahrim\'s staff 100', 'Ahrim the Blighted\'s quarterstaff.', NULL, NULL, 34000, 51000, NULL, NULL, NULL, 50655, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 6, NULL, '12,-1,65,15,0,3,5,2,15,0,0,68,0,0,0', 1, NULL, NULL, '419,419,419,419', 420, '2555,0,0,0', '{0,70}-{6,70}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4863, 'Ahrim\'s staff 75', 'Ahrim the Blighted\'s quarterstaff.', NULL, NULL, 34000, 51000, NULL, NULL, NULL, 50655, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 6, NULL, '12,-1,65,15,0,3,5,2,15,0,0,68,0,0,0', 1, NULL, NULL, '419,419,419,419', 420, '2555,0,0,0', '{0,70}-{6,70}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4864, 'Ahrim\'s staff 50', 'Ahrim the Blighted\'s quarterstaff.', NULL, NULL, 34000, 51000, NULL, NULL, NULL, 50655, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 6, NULL, '12,-1,65,15,0,3,5,2,15,0,0,68,0,0,0', 1, NULL, NULL, '419,419,419,419', 420, '2555,0,0,0', '{0,70}-{6,70}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4865, 'Ahrim\'s staff 25', 'Ahrim the Blighted\'s quarterstaff.', NULL, NULL, 34000, 51000, NULL, NULL, NULL, 50655, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 6, NULL, '12,-1,65,15,0,3,5,2,15,0,0,68,0,0,0', 1, NULL, NULL, '419,419,419,419', 420, '2555,0,0,0', '{0,70}-{6,70}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4866, 'Ahrim\'s staff 0', 'Ahrim the Blighted\'s quarterstaff.', 1, NULL, 34000, 51000, NULL, NULL, NULL, 50600, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 6, NULL, NULL, 1, NULL, NULL, NULL, NULL, '2555,0,0,0', '{0,70}-{6,70}', 2, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4867, 'Ahrim\'s staff 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 50600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4868, 'Ahrim\'s top 100', 'Ahrim the Blighted\'s armoured robe top.', NULL, NULL, 20000, 30000, NULL, NULL, NULL, 1458307, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '10,5,0', '0,0,0,30,-10,52,37,63,30,0,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{6,70}', 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4869, 'Ahrim\'s top 75', 'Ahrim the Blighted\'s armoured robe top.', NULL, NULL, 20000, 30000, NULL, NULL, NULL, 1458307, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '10,5,0', '0,0,0,30,-10,52,37,63,30,0,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{6,70}', 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4870, 'Ahrim\'s top 50', 'Ahrim the Blighted\'s armoured robe top.', NULL, NULL, 20000, 30000, NULL, NULL, NULL, 1458307, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '10,5,0', '0,0,0,30,-10,52,37,63,30,0,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{6,70}', 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4871, 'Ahrim\'s top 25', 'Ahrim the Blighted\'s armoured robe top.', NULL, NULL, 20000, 30000, NULL, NULL, NULL, 1458307, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '10,5,0', '0,0,0,30,-10,52,37,63,30,0,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{6,70}', 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4872, 'Ahrim\'s top 0', 'Ahrim the Blighted\'s armoured robe top.', 1, NULL, 20000, 30000, NULL, NULL, NULL, 1100000, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '10,5,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{6,70}', 5, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4873, 'Ahrim\'s top 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1100000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4874, 'Ahrim\'s skirt 100', 'Ahrim the Blighted\'s armoured robe skirt.', NULL, NULL, 18800, 28200, NULL, NULL, NULL, 1561591, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '7,3,0', '0,0,0,22,-7,33,30,36,22,0,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{6,70}', 12, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4875, 'Ahrim\'s skirt 75', 'Ahrim the Blighted\'s armoured robe skirt.', NULL, NULL, 18800, 28200, NULL, NULL, NULL, 1561591, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '7,3,0', '0,0,0,22,-7,33,30,36,22,0,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{6,70}', 12, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4876, 'Ahrim\'s skirt 50', 'Ahrim the Blighted\'s armoured robe skirt.', NULL, NULL, 18800, 28200, NULL, NULL, NULL, 1561591, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '7,3,0', '0,0,0,22,-7,33,30,36,22,0,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{6,70}', 12, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4877, 'Ahrim\'s skirt 25', 'Ahrim the Blighted\'s armoured robe skirt.', NULL, NULL, 18800, 28200, NULL, NULL, NULL, 1561591, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '7,3,0', '0,0,0,22,-7,33,30,36,22,0,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{6,70}', 12, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4878, 'Ahrim\'s skirt 0', 'Ahrim the Blighted\'s armoured robe skirt.', 1, NULL, 18800, 28200, NULL, NULL, NULL, 1500000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '7,3,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{6,70}', 12, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4879, 'Ahrim\'s skirt 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1500000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4880, 'Dharok\'s helm 100', 'Dharok The Wretched\'s Helmet', NULL, NULL, 41200, 61800, NULL, NULL, NULL, 1355582, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,0,5', '0,0,0,-3,-1,45,48,44,-1,51,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4881, 'Dharok\'s helm 75', 'Dharok The Wretched\'s Helmet', NULL, NULL, 41200, 61800, NULL, NULL, NULL, 1355582, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,0,5', '0,0,0,-3,-1,45,48,44,-1,51,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4882, 'Dharok\'s helm 50', 'Dharok The Wretched\'s Helmet', NULL, NULL, 41200, 61800, NULL, NULL, NULL, 1355582, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,0,5', '0,0,0,-3,-1,45,48,44,-1,51,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4883, 'Dharok\'s helm 25', 'Dharok The Wretched\'s Helmet', NULL, NULL, 41200, 61800, NULL, NULL, NULL, 1355582, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,0,5', '0,0,0,-3,-1,45,48,44,-1,51,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4884, 'Dharok\'s helm 0', 'Dharok The Wretched\'s Helmet', 1, NULL, 41200, 61800, NULL, NULL, NULL, 1300000, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,0,5', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 1, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4885, 'Dharok\'s helm 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1300000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4886, 'Dharok\'s axe 100', 'Dharok the Wretched\'s Greataxe.', NULL, NULL, 83200, 124800, NULL, NULL, NULL, 454500, NULL, NULL, NULL, 2065, 823, 2064, 824, 2064, 2064, 2064, 1426, 3, 7, NULL, '-4,103,95,-4,0,0,0,0,0,-1,0,105,0,0,0', 2, NULL, 1, '2067,2067,2066,2067', 424, '1320,0,0,0', '{0,70}-{2,70}', 13, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4887, 'Dharok\'s axe 75', 'Dharok the Wretched\'s Greataxe.', NULL, NULL, 83200, 124800, NULL, NULL, NULL, 454500, NULL, NULL, NULL, 2065, 823, 2064, 824, 2064, 2064, 2064, 1426, 3, 7, NULL, '-4,103,95,-4,0,0,0,0,0,-1,0,105,0,0,0', 2, NULL, 1, '2067,2067,2066,2067', 424, '1320,0,0,0', '{0,70}-{2,70}', 13, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4888, 'Dharok\'s axe 50', 'Dharok the Wretched\'s Greataxe.', NULL, NULL, 83200, 124800, NULL, NULL, NULL, 454500, NULL, NULL, NULL, 2065, 823, 2064, 824, 2064, 2064, 2064, 1426, 3, 7, NULL, '-4,103,95,-4,0,0,0,0,0,-1,0,105,0,0,0', 2, NULL, 1, '2067,2067,2066,2067', 424, '1320,0,0,0', '{0,70}-{2,70}', 13, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4889, 'Dharok\'s axe 25', 'Dharok the Wretched\'s Greataxe.', NULL, NULL, 83200, 124800, NULL, NULL, NULL, 454500, NULL, NULL, NULL, 2065, 823, 2064, 824, 2064, 2064, 2064, 1426, 3, 7, NULL, '-4,103,95,-4,0,0,0,0,0,-1,0,105,0,0,0', 2, NULL, 1, '2067,2067,2066,2067', 424, '1320,0,0,0', '{0,70}-{2,70}', 13, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4890, 'Dharok\'s axe 0', 'Dharok the Wretched\'s Greataxe.', 1, NULL, 83200, 124800, NULL, NULL, NULL, 442600, NULL, NULL, NULL, 2065, 823, 2064, 824, 2064, 2064, 2064, 1426, 3, 7, NULL, NULL, 2, NULL, 1, NULL, NULL, '1320,0,0,0', '{0,70}-{2,70}', 13, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4891, 'Dharok\'s axe 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 442600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4892, 'Dharok\'s body 100', 'Dharok the Wretched\'s platebody.', NULL, NULL, 112000, 168000, NULL, NULL, NULL, 481600, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '5,0,10', '0,0,0,-30,-10,122,120,107,-6,132,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 9.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4893, 'Dharok\'s body 75', 'Dharok the Wretched\'s platebody.', NULL, NULL, 112000, 168000, NULL, NULL, NULL, 481600, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '5,0,10', '0,0,0,-30,-10,122,120,107,-6,132,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 9.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4894, 'Dharok\'s body 50', 'Dharok the Wretched\'s platebody.', NULL, NULL, 112000, 168000, NULL, NULL, NULL, 481600, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '5,0,10', '0,0,0,-30,-10,122,120,107,-6,132,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 9.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4895, 'Dharok\'s body 25', 'Dharok the Wretched\'s platebody.', NULL, NULL, 112000, 168000, NULL, NULL, NULL, 481600, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '5,0,10', '0,0,0,-30,-10,122,120,107,-6,132,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 9.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4896, 'Dharok\'s body 0', 'Dharok the Wretched\'s platebody.', 1, NULL, 112000, 168000, NULL, NULL, NULL, 438200, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '5,0,10', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 9.9, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4897, 'Dharok\'s body 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 438200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4898, 'Dharok\'s legs 100', 'Dharok the wretched\'s plate leg armour.', NULL, NULL, 110000, 165000, NULL, NULL, NULL, 897451, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '3,0,7', '0,0,0,-21,-7,85,82,83,-4,92,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4899, 'Dharok\'s legs 75', 'Dharok the wretched\'s plate leg armour.', NULL, NULL, 110000, 165000, NULL, NULL, NULL, 897451, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '3,0,7', '0,0,0,-21,-7,85,82,83,-4,92,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4900, 'Dharok\'s legs 50', 'Dharok the wretched\'s plate leg armour.', NULL, NULL, 110000, 165000, NULL, NULL, NULL, 897451, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '3,0,7', '0,0,0,-21,-7,85,82,83,-4,92,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4901, 'Dharok\'s legs 25', 'Dharok the wretched\'s plate leg armour.', NULL, NULL, 110000, 165000, NULL, NULL, NULL, 897451, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '3,0,7', '0,0,0,-21,-7,85,82,83,-4,92,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4902, 'Dharok\'s legs 0', 'Dharok the wretched\'s plate leg armour.', 1, NULL, 110000, 165000, NULL, NULL, NULL, 676000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '3,0,7', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 10, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4903, 'Dharok\'s legs 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 676000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4904, 'Guthan\'s helm 100', 'Guthan the Infested\'s helm.', NULL, NULL, 41200, 61800, NULL, NULL, NULL, 232455, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,0,5', '0,0,0,-6,-2,55,58,54,-1,62,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4905, 'Guthan\'s helm 75', 'Guthan the Infested\'s helm.', NULL, NULL, 41200, 61800, NULL, NULL, NULL, 232455, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,0,5', '0,0,0,-6,-2,55,58,54,-1,62,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4906, 'Guthan\'s helm 50', 'Guthan the Infested\'s helm.', NULL, NULL, 41200, 61800, NULL, NULL, NULL, 232455, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,0,5', '0,0,0,-6,-2,55,58,54,-1,62,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4907, 'Guthan\'s helm 25', 'Guthan the Infested\'s helm.', NULL, NULL, 41200, 61800, NULL, NULL, NULL, 232455, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,0,5', '0,0,0,-6,-2,55,58,54,-1,62,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4908, 'Guthan\'s helm 0', 'Guthan the Infested\'s helm.', 1, NULL, 41200, 61800, NULL, NULL, NULL, 368200, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,0,5', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 2, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4909, 'Guthan\'s helm 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 368200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4910, 'Guthan\'s spear 100', 'Guthan The Infested\'s Warspear.', NULL, NULL, 40000, 60000, NULL, NULL, NULL, 371782, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '75,75,75,0,0,7,7,7,0,0,0,75,0,0,0', 14, NULL, 1, '2080,2081,2082,2080', 2079, '1316,0,0,0', '{0,70}', 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4911, 'Guthan\'s spear 75', 'Guthan The Infested\'s Warspear.', NULL, NULL, 40000, 60000, NULL, NULL, NULL, 371782, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '75,75,75,0,0,7,7,7,0,0,0,75,0,0,0', 14, NULL, 1, '2080,2081,2082,2080', 2079, '1316,0,0,0', '{0,70}', 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4912, 'Guthan\'s spear 50', 'Guthan The Infested\'s Warspear.', NULL, NULL, 40000, 60000, NULL, NULL, NULL, 371782, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '75,75,75,0,0,7,7,7,0,0,0,75,0,0,0', 14, NULL, 1, '2080,2081,2082,2080', 2079, '1316,0,0,0', '{0,70}', 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4913, 'Guthan\'s spear 25', 'Guthan The Infested\'s Warspear.', NULL, NULL, 40000, 60000, NULL, NULL, NULL, 371782, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '75,75,75,0,0,7,7,7,0,0,0,75,0,0,0', 14, NULL, 1, '2080,2081,2082,2080', 2079, '1316,0,0,0', '{0,70}', 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4914, 'Guthan\'s spear 0', 'Guthan The Infested\'s Warspear.', 1, NULL, 40000, 60000, NULL, NULL, NULL, 379500, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, NULL, 14, NULL, 1, NULL, NULL, '1316,0,0,0', '{0,70}', 2.2, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4915, 'Guthan\'s spear 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 379500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4916, 'Guthan\'s body 100', 'Guthan the Infested\'s platebody armour.', NULL, NULL, 112000, 168000, NULL, NULL, NULL, 241605, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '5,0,10', '0,0,0,-30,-10,122,120,107,-6,132,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4917, 'Guthan\'s body 75', 'Guthan the Infested\'s platebody armour.', NULL, NULL, 112000, 168000, NULL, NULL, NULL, 241605, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '5,0,10', '0,0,0,-30,-10,122,120,107,-6,132,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4918, 'Guthan\'s body 50', 'Guthan the Infested\'s platebody armour.', NULL, NULL, 112000, 168000, NULL, NULL, NULL, 241605, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '5,0,10', '0,0,0,-30,-10,122,120,107,-6,132,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4919, 'Guthan\'s body 25', 'Guthan the Infested\'s platebody armour.', NULL, NULL, 112000, 168000, NULL, NULL, NULL, 241605, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '5,0,10', '0,0,0,-30,-10,122,120,107,-6,132,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4920, 'Guthan\'s body 0', 'Guthan the Infested\'s platebody armour.', 1, NULL, 112000, 168000, NULL, NULL, NULL, 245900, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '5,0,10', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 9, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4921, 'Guthan\'s body 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 245900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4922, 'Guthan\'s skirt 100', 'Guthan the Infested\'s chainskirt.', NULL, NULL, 110000, 165000, NULL, NULL, NULL, 224030, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '3,0,7', '0,0,0,-14,-7,75,72,73,-4,82,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4923, 'Guthan\'s skirt 75', 'Guthan the Infested\'s chainskirt.', NULL, NULL, 110000, 165000, NULL, NULL, NULL, 224030, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '3,0,7', '0,0,0,-14,-7,75,72,73,-4,82,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4924, 'Guthan\'s skirt 50', 'Guthan the Infested\'s chainskirt.', NULL, NULL, 110000, 165000, NULL, NULL, NULL, 224030, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '3,0,7', '0,0,0,-14,-7,75,72,73,-4,82,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4925, 'Guthan\'s skirt 25', 'Guthan the Infested\'s chainskirt.', NULL, NULL, 110000, 165000, NULL, NULL, NULL, 224030, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '3,0,7', '0,0,0,-14,-7,75,72,73,-4,82,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4926, 'Guthan\'s skirt 0', 'Guthan the Infested\'s chainskirt.', 1, NULL, 110000, 165000, NULL, NULL, NULL, 240900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '3,0,7', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 8, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4927, 'Guthan\'s skirt 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 240900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4928, 'Karil\'s coif 100', 'Karil the Tainted\'s coif.', NULL, NULL, 5200, 7800, NULL, NULL, NULL, 7520, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,5,2', '0,0,0,-1,3,6,9,12,6,10,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{4,70}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4929, 'Karil\'s coif 75', 'Karil the Tainted\'s coif.', NULL, NULL, 5200, 7800, NULL, NULL, NULL, 7520, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,5,2', '0,0,0,-1,3,6,9,12,6,10,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{4,70}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4930, 'Karil\'s coif 50', 'Karil the Tainted\'s coif.', NULL, NULL, 5200, 7800, NULL, NULL, NULL, 7520, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,5,2', '0,0,0,-1,3,6,9,12,6,10,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{4,70}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4931, 'Karil\'s coif 25', 'Karil the Tainted\'s coif.', NULL, NULL, 5200, 7800, NULL, NULL, NULL, 7520, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,5,2', '0,0,0,-1,3,6,9,12,6,10,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{4,70}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4932, 'Karil\'s coif 0', 'Karil the Tainted\'s coif.', 1, NULL, 5200, 7800, NULL, NULL, NULL, 7557, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,5,2', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{4,70}', NULL, 1, NULL, NULL, NULL, NULL, NULL, 0), +(4933, 'Karil\'s coif 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7557, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, 0), +(4934, 'Karil\'s x-bow 100', 'Karil the Tainted\'s repeating crossbow.', NULL, NULL, 64000, 96000, NULL, NULL, NULL, 108029, NULL, NULL, NULL, 2074, 823, 2076, 2077, 2076, 2076, 2076, 372, 3, 4, NULL, '0,0,0,0,84,0,0,0,0,0,0,0,0,0,0', 17, NULL, 1, '2075,2075,2075,2075', 424, '2700,0,0,0', '{4,70}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4935, 'Karil\'s x-bow 75', 'Karil the Tainted\'s repeating crossbow.', NULL, NULL, 64000, 96000, NULL, NULL, NULL, 108029, NULL, NULL, NULL, 2074, 823, 2076, 2077, 2076, 2076, 2076, 372, 3, 4, NULL, '0,0,0,0,84,0,0,0,0,0,0,0,0,0,0', 17, NULL, 1, '2075,2075,2075,2075', 424, '2700,0,0,0', '{4,70}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4936, 'Karil\'s x-bow 50', 'Karil the Tainted\'s repeating crossbow.', NULL, NULL, 64000, 96000, NULL, NULL, NULL, 108029, NULL, NULL, NULL, 2074, 823, 2076, 2077, 2076, 2076, 2076, 372, 3, 4, NULL, '0,0,0,0,84,0,0,0,0,0,0,0,0,0,0', 17, NULL, 1, '2075,2075,2075,2075', 424, '2700,0,0,0', '{4,70}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4937, 'Karil\'s x-bow 25', 'Karil the Tainted\'s repeating crossbow.', NULL, NULL, 64000, 96000, NULL, NULL, NULL, 108029, NULL, NULL, NULL, 2074, 823, 2076, 2077, 2076, 2076, 2076, 372, 3, 4, NULL, '0,0,0,0,84,0,0,0,0,0,0,0,0,0,0', 17, NULL, 1, '2075,2075,2075,2075', 424, '2700,0,0,0', '{4,70}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4938, 'Karil\'s x-bow 0', 'Karil the Tainted\'s repeating crossbow.', 1, NULL, 64000, 96000, NULL, NULL, NULL, 106300, NULL, NULL, NULL, 2074, 823, 2076, 2077, 2076, 2076, 2076, 372, 3, 4, NULL, NULL, 17, NULL, 1, NULL, NULL, NULL, '{4,70}', 2, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4939, 'Karil\'s x-bow 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 106300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4940, 'Karil\'s top 100', 'Karil the Tainted\'s leatherbody.', NULL, NULL, 20000, 30000, NULL, NULL, NULL, 983428, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '0,10,5', '0,0,0,-15,30,47,42,50,65,57,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{4,70}', 6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4941, 'Karil\'s top 75', 'Karil the Tainted\'s leatherbody.', NULL, NULL, 20000, 30000, NULL, NULL, NULL, 983428, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '0,10,5', '0,0,0,-15,30,47,42,50,65,57,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{4,70}', 6, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(4942, 'Karil\'s top 50', 'Karil the Tainted\'s leatherbody.', NULL, NULL, 20000, 30000, NULL, NULL, NULL, 983428, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '0,10,5', '0,0,0,-15,30,47,42,50,65,57,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{4,70}', 6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4943, 'Karil\'s top 25', 'Karil the Tainted\'s leatherbody.', NULL, NULL, 20000, 30000, NULL, NULL, NULL, 983428, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '0,10,5', '0,0,0,-15,30,47,42,50,65,57,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{4,70}', 6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4944, 'Karil\'s top 0', 'Karil the Tainted\'s leatherbody.', 1, NULL, 20000, 30000, NULL, NULL, NULL, 1500000, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '0,10,5', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{4,70}', 6, 1, NULL, NULL, NULL, NULL, NULL, 0), +(4945, 'Karil\'s top 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1500000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, 0), +(4946, 'Karil\'s skirt 100', 'Karil the Tainted\'s leather skirt.', NULL, NULL, 18800, 28200, NULL, NULL, NULL, 85135, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '0,7,3', '0,0,0,-10,17,26,20,28,35,33,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{4,70}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4947, 'Karil\'s skirt 75', 'Karil the Tainted\'s leather skirt.', NULL, NULL, 18800, 28200, NULL, NULL, NULL, 85135, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '0,7,3', '0,0,0,-10,17,26,20,28,35,33,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{4,70}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4948, 'Karil\'s skirt 50', 'Karil the Tainted\'s leather skirt.', NULL, NULL, 18800, 28200, NULL, NULL, NULL, 85135, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '0,7,3', '0,0,0,-10,17,26,20,28,35,33,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{4,70}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4949, 'Karil\'s skirt 25', 'Karil the Tainted\'s leather skirt.', NULL, NULL, 18800, 28200, NULL, NULL, NULL, 85135, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '0,7,3', '0,0,0,-10,17,26,20,28,35,33,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{4,70}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4950, 'Karil\'s skirt 0', 'Karil the Tainted\'s leather skirt.', 1, NULL, 18800, 28200, NULL, NULL, NULL, 153100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '0,7,3', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{4,70}', 2, 1, NULL, NULL, NULL, NULL, NULL, 0), +(4951, 'Karil\'s skirt 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 153100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, 0), +(4952, 'Torag\'s helm 100', 'Torag the Corrupted\'s helm.', NULL, NULL, 41200, 61800, NULL, NULL, NULL, 71798, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,0,5', '0,0,0,-6,-2,55,58,54,-1,62,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4953, 'Torag\'s helm 75', 'Torag the Corrupted\'s helm.', NULL, NULL, 41200, 61800, NULL, NULL, NULL, 71798, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,0,5', '0,0,0,-6,-2,55,58,54,-1,62,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4954, 'Torag\'s helm 50', 'Torag the Corrupted\'s helm.', NULL, NULL, 41200, 61800, NULL, NULL, NULL, 71798, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,0,5', '0,0,0,-6,-2,55,58,54,-1,62,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4955, 'Torag\'s helm 25', 'Torag the Corrupted\'s helm.', NULL, NULL, 41200, 61800, NULL, NULL, NULL, 71798, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,0,5', '0,0,0,-6,-2,55,58,54,-1,62,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4956, 'Torag\'s helm 0', 'Torag the Corrupted\'s helm.', 1, NULL, 41200, 61800, NULL, NULL, NULL, 78200, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,0,5', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 5, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4957, 'Torag\'s helm 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 78200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4958, 'Torag\'s hammer 100', 'Torag the Corrupted\'s twin hammers.', NULL, NULL, 64000, 96000, NULL, NULL, NULL, 95800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '-4,-4,85,-4,0,0,0,0,0,0,0,72,0,0,0', 10, NULL, 1, '2068,2068,2068,2068', 424, '1332,0,0,0', '{0,70}-{2,70}', 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4959, 'Torag\'s hammer 75', 'Torag the Corrupted\'s twin hammers.', NULL, NULL, 64000, 96000, NULL, NULL, NULL, 95800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '-4,-4,85,-4,0,0,0,0,0,0,0,72,0,0,0', 10, NULL, 1, '2068,2068,2068,2068', 424, '1332,0,0,0', '{0,70}-{2,70}', 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4960, 'Torag\'s hammer 50', 'Torag the Corrupted\'s twin hammers.', NULL, NULL, 64000, 96000, NULL, NULL, NULL, 95800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '-4,-4,85,-4,0,0,0,0,0,0,0,72,0,0,0', 10, NULL, 1, '2068,2068,2068,2068', 424, '1332,0,0,0', '{0,70}-{2,70}', 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4961, 'Torag\'s hammer 25', 'Torag the Corrupted\'s twin hammers.', NULL, NULL, 64000, 96000, NULL, NULL, NULL, 95800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '-4,-4,85,-4,0,0,0,0,0,0,0,72,0,0,0', 10, NULL, 1, '2068,2068,2068,2068', 424, '1332,0,0,0', '{0,70}-{2,70}', 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4962, 'Torag\'s hammer 0', 'Torag the Corrupted\'s twin hammers.', 1, NULL, 64000, 96000, NULL, NULL, NULL, 95600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, NULL, 10, NULL, 1, NULL, NULL, '1332,0,0,0', '{0,70}-{2,70}', 3, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4963, 'Torag\'s hammer 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 95600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4964, 'Torag\'s body 100', 'Torag the Corrupted\'s plate body armour.', NULL, NULL, 112000, 168000, NULL, NULL, NULL, 297733, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '5,0,10', '0,0,0,-30,-10,122,120,107,-6,132,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4965, 'Torag\'s body 75', 'Torag the Corrupted\'s plate body armour.', NULL, NULL, 112000, 168000, NULL, NULL, NULL, 297733, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '5,0,10', '0,0,0,-30,-10,122,120,107,-6,132,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4966, 'Torag\'s body 50', 'Torag the Corrupted\'s plate body armour.', NULL, NULL, 112000, 168000, NULL, NULL, NULL, 297733, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '5,0,10', '0,0,0,-30,-10,122,120,107,-6,132,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4967, 'Torag\'s body 25', 'Torag the Corrupted\'s plate body armour.', NULL, NULL, 112000, 168000, NULL, NULL, NULL, 297733, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '5,0,10', '0,0,0,-30,-10,122,120,107,-6,132,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4968, 'Torag\'s body 0', 'Torag the Corrupted\'s plate body armour.', 1, NULL, 112000, 168000, NULL, NULL, NULL, 271600, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '5,0,10', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 9, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4969, 'Torag\'s body 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 271600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4970, 'Torag\'s legs 100', 'Torag the Corrupted\'s plate leg armour.', NULL, NULL, 110000, 165000, NULL, NULL, NULL, 384813, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '3,0,7', '0,0,0,-21,-7,85,82,83,-4,92,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4971, 'Torag\'s legs 75', 'Torag the Corrupted\'s plate leg armour.', NULL, NULL, 110000, 165000, NULL, NULL, NULL, 384813, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '3,0,7', '0,0,0,-21,-7,85,82,83,-4,92,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4972, 'Torag\'s legs 50', 'Torag the Corrupted\'s plate leg armour.', NULL, NULL, 110000, 165000, NULL, NULL, NULL, 384813, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '3,0,7', '0,0,0,-21,-7,85,82,83,-4,92,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4973, 'Torag\'s legs 25', 'Torag the Corrupted\'s plate leg armour.', NULL, NULL, 110000, 165000, NULL, NULL, NULL, 384813, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '3,0,7', '0,0,0,-21,-7,85,82,83,-4,92,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4974, 'Torag\'s legs 0', 'Torag the Corrupted\'s plate leg armour.', 1, NULL, 110000, 165000, NULL, NULL, NULL, 371300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '3,0,7', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 9, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4975, 'Torag\'s legs 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 371300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4976, 'Verac\'s helm 100', 'Verac the Defiled\'s helm.', NULL, NULL, 41200, 61800, NULL, NULL, NULL, 459537, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,0,5', '0,0,0,-6,-2,55,58,54,0,56,15,0,3,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4977, 'Verac\'s helm 75', 'Verac the Defiled\'s helm.', NULL, NULL, 41200, 61800, NULL, NULL, NULL, 459537, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,0,5', '0,0,0,-6,-2,55,58,54,0,56,15,0,3,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4978, 'Verac\'s helm 50', 'Verac the Defiled\'s helm.', NULL, NULL, 41200, 61800, NULL, NULL, NULL, 459537, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,0,5', '0,0,0,-6,-2,55,58,54,0,56,15,0,3,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4979, 'Verac\'s helm 25', 'Verac the Defiled\'s helm.', NULL, NULL, 41200, 61800, NULL, NULL, NULL, 459537, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,0,5', '0,0,0,-6,-2,55,58,54,0,56,15,0,3,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4980, 'Verac\'s helm 0', 'Verac the Defiled\'s helm.', 1, NULL, 41200, 61800, NULL, NULL, NULL, 648900, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,0,5', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 1, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4981, 'Verac\'s helm 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 648900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4982, 'Verac\'s flail 100', 'Verac the Defiled\'s Flail.', NULL, NULL, 64000, 96000, NULL, NULL, NULL, 95474, NULL, NULL, NULL, 1832, 823, 1830, 1831, 2060, 2060, 2060, 1426, 3, 5, NULL, '68,-2,82,0,0,0,0,0,0,0,0,72,6,0,0', 8, NULL, 1, '2062,2062,2062,2062', 424, '1323,0,0,0', '{0,70}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4983, 'Verac\'s flail 75', 'Verac the Defiled\'s Flail.', NULL, NULL, 64000, 96000, NULL, NULL, NULL, 95474, NULL, NULL, NULL, 1832, 823, 1830, 1831, 2060, 2060, 2060, 1426, 3, 5, NULL, '68,-2,82,0,0,0,0,0,0,0,0,72,6,0,0', 8, NULL, 1, '2062,2062,2062,2062', 424, '1323,0,0,0', '{0,70}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4984, 'Verac\'s flail 50', 'Verac the Defiled\'s Flail.', NULL, NULL, 64000, 96000, NULL, NULL, NULL, 95474, NULL, NULL, NULL, 1832, 823, 1830, 1831, 2060, 2060, 2060, 1426, 3, 5, NULL, '68,-2,82,0,0,0,0,0,0,0,0,72,6,0,0', 8, NULL, 1, '2062,2062,2062,2062', 424, '1323,0,0,0', '{0,70}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4985, 'Verac\'s flail 25', 'Verac the Defiled\'s Flail.', NULL, NULL, 64000, 96000, NULL, NULL, NULL, 95474, NULL, NULL, NULL, 1832, 823, 1830, 1831, 2060, 2060, 2060, 1426, 3, 5, NULL, '68,-2,82,0,0,0,0,0,0,0,0,72,6,0,0', 8, NULL, 1, '2062,2062,2062,2062', 424, '1323,0,0,0', '{0,70}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4986, 'Verac\'s flail 0', 'Verac the Defiled\'s Flail.', 1, NULL, 64000, 96000, NULL, NULL, NULL, 95500, NULL, NULL, NULL, 1832, 823, 1830, 1831, 2060, 2060, 2060, 1426, 3, 5, NULL, NULL, 8, NULL, 1, NULL, NULL, '1323,0,0,0', '{0,70}', 2, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4987, 'Verac\'s flail 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 95500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4988, 'Verac\'s top 100', 'Verac the Defiled\'s brassard.', NULL, NULL, 112000, 168000, NULL, NULL, NULL, 177963, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '5,0,10', '0,0,0,-6,-2,81,95,85,0,81,60,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4989, 'Verac\'s top 75', 'Verac the Defiled\'s brassard.', NULL, NULL, 112000, 168000, NULL, NULL, NULL, 177963, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '5,0,10', '0,0,0,-6,-2,81,95,85,0,81,60,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4990, 'Verac\'s top 50', 'Verac the Defiled\'s brassard.', NULL, NULL, 112000, 168000, NULL, NULL, NULL, 177963, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '5,0,10', '0,0,0,-6,-2,81,95,85,0,81,60,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4991, 'Verac\'s top 25', 'Verac the Defiled\'s brassard.', NULL, NULL, 112000, 168000, NULL, NULL, NULL, 177963, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '5,0,10', '0,0,0,-6,-2,81,95,85,0,81,60,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4992, 'Verac\'s top 0', 'Verac the Defiled\'s brassard.', 1, NULL, 112000, 168000, NULL, NULL, NULL, 174000, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '5,0,10', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 5, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4993, 'Verac\'s top 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 174000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4994, 'Verac\'s skirt 100', 'Verac the Defiled\'s plate skirt.', NULL, NULL, 110000, 165000, NULL, NULL, NULL, 297540, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '3,0,7', '0,0,0,-21,-7,85,82,83,0,84,30,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4995, 'Verac\'s skirt 75', 'Verac the Defiled\'s plate skirt.', NULL, NULL, 110000, 165000, NULL, NULL, NULL, 297540, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '3,0,7', '0,0,0,-21,-7,85,82,83,0,84,30,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4996, 'Verac\'s skirt 50', 'Verac the Defiled\'s plate skirt.', NULL, NULL, 110000, 165000, NULL, NULL, NULL, 297540, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '3,0,7', '0,0,0,-21,-7,85,82,83,0,84,30,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4997, 'Verac\'s skirt 25', 'Verac the Defiled\'s plate skirt.', NULL, NULL, 110000, 165000, NULL, NULL, NULL, 297540, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '3,0,7', '0,0,0,-21,-7,85,82,83,0,84,30,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(4998, 'Verac\'s skirt 0', 'Verac the Defiled\'s plate skirt.', 1, NULL, 110000, 165000, NULL, NULL, NULL, 321600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '3,0,7', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}', 5, 10, NULL, NULL, NULL, NULL, NULL, 0), +(4999, 'Verac\'s skirt 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 321600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(5001, 'Raw cave eel', 'It\'s incredibly slimy.', 1, NULL, 6, 9, NULL, NULL, NULL, 373, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5003, 'Cave eel', 'It\'s a bit slimy.', 1, NULL, 6, 9, NULL, NULL, NULL, 164, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5004, 'Frog spawn', 'That\'s disgusting!', NULL, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5005, 'Raw cave eel', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5006, 'Burnt cave eel', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5007, 'Cave eel', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5009, 'Goblin symbol book', 'A book about the ancient goblin tribes.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5011, 'Silverware', 'You found the Lumbridge silverware in the HAM cave.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5012, 'Peace treaty', 'A peace treaty between Lumbridge and the Cave Goblins.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5013, 'Mining helmet', 'Unlit: A helmet with an unlit lamp on it. Lit: A helmet with a lamp on it.', 1, NULL, 360, 540, NULL, NULL, 900, 380, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-3,-1,4,5,3,-1,4,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5014, 'Mining helmet', 'Unlit: A helmet with an unlit lamp on it. Lit: A helmet with a lamp on it.', 1, NULL, 360, 540, NULL, NULL, 900, 342, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-3,-1,4,5,3,-1,4,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{11,65}', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5015, 'Mining helmet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 342, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5016, 'Bone spear', 'Basic but brutal!', 1, NULL, 240, 360, NULL, NULL, 600, 219, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 6, NULL, '11,11,11,0,0,1,1,0,0,0,0,13,0,0,0', 14, NULL, 1, NULL, NULL, NULL, NULL, 1.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5017, 'Bone spear', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 219, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5018, 'Bone club', 'Basic but brutal!', 1, NULL, 240, 360, NULL, NULL, 600, 384, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, NULL, '-4,-4,16,-4,0,0,0,0,0,0,0,15,0,0,0', 10, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5019, 'Bone club', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 384, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5020, 'Minecart ticket', 'A ticket to take you from the dwarven mines under Ice Mountain to Keldagrim.', NULL, NULL, NULL, NULL, NULL, NULL, 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5021, 'Minecart ticket', 'A ticket to take you from the dwarven mines under Ice Mountain to Keldagrim.', NULL, NULL, NULL, NULL, NULL, NULL, 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5022, 'Minecart ticket', 'A ticket to take you from the dwarven mines under Ice Mountain to Keldagrim.', NULL, NULL, NULL, NULL, NULL, NULL, 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5023, 'Minecart ticket', 'A ticket to take you from the dwarven mines under Ice Mountain to Keldagrim.', NULL, NULL, NULL, NULL, NULL, NULL, 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5024, 'Woven top', 'Blue top, very tiny.', 1, NULL, 338, 507, NULL, NULL, 812, 710, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5025, 'Woven top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 710, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5026, 'Woven top', 'Blue top, very tiny.', 1, NULL, 338, 507, NULL, NULL, 812, 908, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5027, 'Woven top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 908, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5028, 'Woven top', 'Blue top, very tiny.', 1, NULL, 338, 507, NULL, NULL, 812, 1357, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5029, 'Woven top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1357, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5030, 'Shirt', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 867, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5031, 'Shirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 867, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5032, 'Shirt', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1023, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5033, 'Shirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1023, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5034, 'Shirt', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1282, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5035, 'Shirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1282, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5036, 'Trousers', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 746, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5037, 'Trousers', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 746, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5038, 'Trousers', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 378, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5039, 'Trousers', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 378, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5040, 'Trousers', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 442, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5041, 'Trousers', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 442, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5042, 'Shorts', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1191, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5043, 'Shorts', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1191, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5044, 'Shorts', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1229, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5045, 'Shorts', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1229, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5046, 'Shorts', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2582, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5047, 'Shorts', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2582, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5048, 'Skirt', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 681, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(5049, 'Skirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 681, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(5050, 'Skirt', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1151, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(5051, 'Skirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1151, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(5052, 'Skirt', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 803, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(5053, 'Skirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 803, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(5054, 'Dwarf', 'A short angry guy.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5055, 'Dwarf', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5056, 'Dwarven battleaxe', 'This looks very rusty and worn;', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5057, 'Dwarven battleaxe', 'This looks very rusty and worn;', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5058, 'Dwarven battleaxe', 'This looks very rusty and worn;', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5059, 'Dwarven battleaxe', 'This looks very rusty and worn;', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5060, 'Dwarven battleaxe', 'This looks very rusty and worn;', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5061, 'Dwarven battleaxe', 'This looks very rusty and worn;', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5062, 'Left boot', 'One of a pair I assume.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5063, 'Right boot', 'A good looking boot, for the right foot. Literally.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5064, 'Exquisite boots', 'A lovely pair of boots.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5065, 'Book on costumes', 'An old library book. It bears the title \'Scholars to Dwarven Costumes\'.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5066, 'Meeting notes', 'These notes are from a meeting of the Keldagrim Consortium.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5067, 'Exquisite clothes', 'Clothes for the sculptor\'s model.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5068, 'Master farmer', 'A master at farming.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5070, 'Bird\'s nest', 'Full: ', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5071, 'Bird\'s nest', 'Full: ', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5072, 'Bird\'s nest', 'Full: ', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5073, 'Bird\'s nest', 'Full: ', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5074, 'Bird\'s nest', 'Full: ', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5075, 'Bird\'s nest', 'Full: ', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5076, 'Bird\'s egg', 'A green/red/blue bird\'s egg.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5077, 'Bird\'s egg', 'A green/red/blue bird\'s egg.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5078, 'Bird\'s egg', 'A green/red/blue bird\'s egg.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5096, 'Marigold seed', 'A marigold seed - plant in flower patch.', 1, NULL, NULL, NULL, NULL, NULL, 84, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{2,19}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5097, 'Rosemary seed', 'A rosemary seed - plant in flower patch.', 1, NULL, NULL, NULL, NULL, NULL, 98, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{11,19}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5098, 'Nasturtium seed', 'A nasturtium seed - plant in flower patch.', 1, NULL, NULL, NULL, NULL, NULL, 14, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{24,19}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5099, 'Woad seed', 'A woad seed - plant in flower patch.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,25}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5100, 'Limpwurt seed', 'A limpwurt seed - plant in flower patch.', 1, NULL, NULL, NULL, NULL, NULL, 70, 273, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,26}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5101, 'Redberry seed', 'A redberry seed - Plant in a bush patch.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{10,19}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5102, 'Cadavaberry seed', 'A cadavaberry seed - Plant in a bush patch.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{22,19}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5103, 'Dwellberry seed', 'A dwellberry seed - Plant in a bush patch.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,36}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5104, 'Jangerberry seed', 'A jangerberry bush seed - plant in a bush patch.', 1, NULL, NULL, NULL, NULL, NULL, 22, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,48}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5105, 'Whiteberry seed', 'A whiteberry bush seed - plant in a bush patch.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,59}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5106, 'Poison ivy seed', 'A poison ivy bush seed - plant in a bush patch.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 38, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,70}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5280, 'Cactus seed', 'A Cactus seed - plant in a cactus patch.', 1, NULL, NULL, NULL, NULL, NULL, 29, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,55}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5281, 'Belladonna seed', 'Also known as Deadly Nightshade - plant in a belladonna patch.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 24, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,63}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5282, 'Mushroom spore', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,53}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5283, 'Apple tree seed', 'Plant this in a plantpot of soil to grow a sapling.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,27}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5284, 'Banana tree seed', 'Plant this in a plantpot of soil to grow a sapling.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,33}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5285, 'Orange tree seed', 'Plant this in a plantpot of soil to grow a sapling.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,39}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5286, 'Curry tree seed', 'Plant this in a plant pot of soil to grow a sapling.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 265, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,42}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5287, 'Pineapple seed', 'Plant this in a plantpot of soil to grow a sapling.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 13700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,51}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5288, 'Papaya tree seed', 'Plant this in a plant pot of soil to grow a sapling.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 41200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,57}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5289, 'Palm tree seed', 'Plant in a plantpot of soil to grow a sapling.', 1, NULL, NULL, NULL, NULL, NULL, 35000, 105100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,68}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5290, 'Calquat tree seed', 'Plant in a plantpot of soil to grow a sapling.', 1, NULL, NULL, NULL, NULL, NULL, 35000, 32000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,72}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5291, 'Guam seed', 'A guam seed - plant in a herb patch.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{9,19}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5292, 'Marrentill seed', 'A marrentill seed - plant in a herb patch.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{14,19}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5293, 'Tarromin seed', 'A tarromin seed - plant in a herb patch.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,19}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5294, 'Harralander seed', 'A harralander seed - plant in a herb patch.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,26}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5295, 'Ranarr seed', 'A Ranarr seed - plant in a herb patch.', 1, NULL, NULL, NULL, NULL, NULL, 4000, 9489, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,32}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5296, 'Toadflax seed', 'A toadflax seed - plant in a herb patch.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 2980, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,38}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5297, 'Irit seed', 'An irit seed - plant in a herb patch.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 181, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,44}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5298, 'Avantoe seed', 'An avantoe seed - plant in a herb patch.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 2492, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,50}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5299, 'Kwuarm seed', 'A kwuarm seed - plant in a herb patch.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 537, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,56}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5300, 'Snapdragon seed', 'A snapdragon seed - plant in a herb patch.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 47800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,62}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5301, 'Cadantine seed', 'A cadantine seed - plant in a herb patch.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1253, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,67}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5302, 'Lantadyme seed', 'A lantadyme seed - plant in a herb patch.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 37100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,73}', 0.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5303, 'Dwarf weed seed', 'A dwarf weed seed - plant in a herb patch.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 41900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,79}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5304, 'Torstol seed', 'A Torstol seed - plant in a herb patch.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 302300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,85}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5305, 'Barley seed', 'A barley seed - plant in a hops patch.', 1, NULL, NULL, NULL, NULL, NULL, 38, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{3,19}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5306, 'Jute seed', 'A jute seed - plant in a hops patch.', 1, NULL, NULL, NULL, NULL, NULL, 86, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{13,19}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5307, 'Hammerstone seed', 'A hammerstone hop seed - plant in a hops patch.', 1, NULL, NULL, NULL, NULL, NULL, 52, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,19}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(5308, 'Asgarnian seed', 'An Asgarnian hop seed - plant in a hops patch.', 1, NULL, NULL, NULL, NULL, NULL, 60, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{8,19}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5309, 'Yanillian seed', 'A yanillian hop seed - plant in a hops patch.', 1, NULL, NULL, NULL, NULL, NULL, 210, 11, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{16,19}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5310, 'Krandorian seed', 'A krandorian hop seed - plant in a hops patch.', 1, NULL, NULL, NULL, NULL, NULL, 8, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{21,19}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5311, 'Wildblood seed', 'A wildblood hop seed - plant in a hops patch.', 1, NULL, NULL, NULL, NULL, NULL, 14, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,28}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5312, 'Acorn', 'Plant this in a plantpot of soil to grow a sapling.', 1, NULL, NULL, NULL, NULL, NULL, 100, 22, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{15,19}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5313, 'Willow seed', 'Plant this in a plantpot of soil to grow a sapling.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 945, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,30}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5314, 'Maple seed', 'Plant this in a plantpot of soil to grow a sapling.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 35400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,45}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5315, 'Yew seed', 'Plant this in a plantpot of soil to grow a sapling.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 81900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,60}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5316, 'Magic seed', 'Plant this in a plantpot of soil to grow a sapling.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 276900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,75}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5317, 'Spirit seed', 'Plant this in a plant pot of soil to grow a sapling.', NULL, NULL, NULL, NULL, NULL, NULL, 55000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,83}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5318, 'Potato seed', 'A potato seed - plant in an allotment.', 1, NULL, NULL, NULL, NULL, NULL, 8, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(5319, 'Onion seed', 'An onion seed - plant in an allotment.', 1, NULL, NULL, NULL, NULL, NULL, 10, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{5,19}', NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(5320, 'Sweetcorn seed', 'A sweetcorn seed - plant in an allotment.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{20,19}', NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(5321, 'Watermelon seed', 'A watermelon seed - plant in an allotment.', 1, NULL, NULL, NULL, NULL, NULL, 56, 2491, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,47}', NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(5322, 'Tomato seed', 'A tomato seed - plant in an allotment.', 1, NULL, NULL, NULL, NULL, NULL, 10, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{12,19}', NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(5323, 'Strawberry seed', 'A strawberry seed - plant in an allotment.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 240, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,31}', NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(5324, 'Cabbage seed', 'A cabbage seed - plant in an allotment.', 1, NULL, NULL, NULL, NULL, NULL, 25, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{7,19}', NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(5325, 'Gardening trowel', 'Not suitable for archaeological digs.', 1, NULL, 4, 7, NULL, NULL, 12, 106, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5326, 'Gardening trowel', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 106, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5327, 'Spade handle', 'I need to attach this to its head.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5328, 'Spade head', 'I need to attach this to its handle.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5329, 'Secateurs', 'Good for pruning away diseased leaves.', 1, NULL, 2, 3, NULL, NULL, 5, 204, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5330, 'Secateurs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 204, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5331, 'Watering can', 'See article', NULL, NULL, 3, 4, NULL, NULL, 8, 298, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5332, 'Watering can', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 298, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5333, 'Watering can(1)', 'See article', NULL, NULL, 3, 4, NULL, NULL, 8, 206, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5334, 'Watering can(2)', 'See article', NULL, NULL, 3, 4, NULL, NULL, 8, 206, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5335, 'Watering can(3)', 'See article', NULL, NULL, 3, 4, NULL, NULL, 8, 206, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5336, 'Watering can(4)', 'See article', NULL, NULL, 3, 4, NULL, NULL, 8, 206, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5337, 'Watering can(5)', 'See article', NULL, NULL, 3, 4, NULL, NULL, 8, 206, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5338, 'Watering can(6)', 'See article', NULL, NULL, 3, 4, NULL, NULL, 8, 206, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5339, 'Watering can(7)', 'See article', NULL, NULL, 3, 4, NULL, NULL, 8, 206, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5340, 'Watering can(8)', 'See article', NULL, NULL, 3, 4, NULL, NULL, 8, 206, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5341, 'Rake', 'Use this to clear weeds.', 1, NULL, 2, 3, NULL, NULL, 6, 99, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5342, 'Rake', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 99, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5343, 'Seed dibber', 'Use this to plant seeds with.', 1, NULL, 2, 3, NULL, NULL, 6, 117, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5344, 'Seed dibber', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 117, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5345, 'Gardening boots', 'A pair of gardening boots.', 1, NULL, 10, 15, NULL, NULL, NULL, 3186, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5346, 'Gardening boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3186, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5347, 'Rake handle', 'I need to reattach this to its head.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5348, 'Rake head', 'I need to reattach this to its handle.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5350, 'Plant pot', 'A plant pot filled with soil.', 1, NULL, NULL, NULL, NULL, NULL, 1, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5351, 'Plant pot', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5352, 'Unfired plant pot', 'An unfired plant pot.', 1, NULL, NULL, NULL, NULL, NULL, 9, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5353, 'Unfired plant pot', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5354, 'Plant pot', 'A plant pot filled with soil.', 1, NULL, NULL, NULL, NULL, NULL, 1, 340, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5355, 'Plant pot', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 340, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5356, 'Plant pot', 'A plant pot filled with soil.', 1, NULL, NULL, NULL, NULL, NULL, 1, 243, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5357, 'Plant pot', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5358, 'Oak seedling', 'An acorn has been sown and watered in this plant pot.', NULL, NULL, NULL, NULL, NULL, NULL, 200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5359, 'Willow seedling', 'A willow tree seed has been sown and watered in this plant pot', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5360, 'Maple seedling', 'A maple tree has been sown (and watered) in this plant pot.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5361, 'Yew seedling', 'A yew seed has been sown in the plant pot', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5362, 'Magic seedling', 'A magic tree seed has been sown and watered in this plant pot.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5363, 'Spirit seedling', 'A spirit seedling is growing in this pot. It has been sown and watered.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5364, 'Oak seedling', 'An acorn has been sown and watered in this plant pot.', NULL, NULL, NULL, NULL, NULL, NULL, 200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5365, 'Willow seedling', 'A willow tree seed has been sown and watered in this plant pot', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5366, 'Maple seedling', 'A maple tree has been sown (and watered) in this plant pot.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5367, 'Yew seedling', 'A yew seed has been sown in the plant pot', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5368, 'Magic seedling', 'A magic tree seed has been sown and watered in this plant pot.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5369, 'Spirit seedling', 'A spirit seedling is growing in this pot. It has been sown and watered.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5370, 'Oak sapling', 'This sapling is ready to be planted in a tree patch.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5371, 'Willow sapling', 'This sapling is ready to be replanted in a tree patch.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5372, 'Maple sapling', 'This sapling is ready to be planted in a tree patch.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5373, 'Yew sapling', 'This sapling is ready to be planted in a tree patch.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5374, 'Magic sapling', 'This sapling is ready to be planted in a tree patch.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5375, 'Spirit sapling', 'This sapling is ready to be planted in a tree patch.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5376, 'Basket', 'An empty fruit basket.', 1, NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5377, 'Basket', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5378, 'Apples(1)', 'A fruit basket filled with apples.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1889, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5379, 'Apples(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5380, 'Apples(2)', 'A fruit basket filled with apples.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1889, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5381, 'Apples(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5382, 'Apples(3)', 'A fruit basket filled with apples.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1889, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5383, 'Apples(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5384, 'Apples(4)', 'A fruit basket filled with apples.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1889, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5385, 'Apples(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5386, 'Apples(5)', 'A fruit basket filled with apples.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 2448, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5387, 'Apples(5)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2448, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5388, 'Oranges(1)', 'A fruit basket filled with oranges', 1, NULL, NULL, NULL, NULL, NULL, NULL, 3823, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5389, 'Oranges(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5390, 'Oranges(2)', 'A fruit basket filled with oranges', 1, NULL, NULL, NULL, NULL, NULL, NULL, 3823, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5391, 'Oranges(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5392, 'Oranges(3)', 'A fruit basket filled with oranges', 1, NULL, NULL, NULL, NULL, NULL, NULL, 3823, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5393, 'Oranges(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5394, 'Oranges(4)', 'A fruit basket filled with oranges', 1, NULL, NULL, NULL, NULL, NULL, NULL, 3823, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5395, 'Oranges(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5396, 'Oranges(5)', 'A common fruit.', 1, NULL, 28, 42, NULL, NULL, 70, 5649, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5397, 'Oranges(5)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5649, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5398, 'Strawberries(1)', 'A fruit basket filled with strawberries.', 1, NULL, NULL, 1, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.25, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5399, 'Strawberries(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5400, 'Strawberries(2)', 'A fruit basket filled with strawberries.', 1, NULL, NULL, 1, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.25, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5401, 'Strawberries(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5402, 'Strawberries(3)', 'A fruit basket filled with strawberries.', 1, NULL, NULL, 1, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.25, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5403, 'Strawberries(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5404, 'Strawberries(4)', 'A fruit basket filled with strawberries.', 1, NULL, NULL, 1, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.25, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5405, 'Strawberries(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5406, 'Strawberries(5)', 'A fruit basket filled with strawberries.', 1, NULL, NULL, 1, NULL, NULL, NULL, 406, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.25, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5407, 'Strawberries(5)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 406, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5408, 'Bananas(1)', 'A fruit basket filled with bananas.', 1, NULL, NULL, 1, NULL, NULL, NULL, 1064, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5409, 'Bananas(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5410, 'Bananas(2)', 'A fruit basket filled with bananas.', 1, NULL, NULL, 1, NULL, NULL, NULL, 1064, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5411, 'Bananas(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5412, 'Bananas(3)', 'A fruit basket filled with bananas.', 1, NULL, NULL, 1, NULL, NULL, NULL, 1064, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5413, 'Bananas(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5414, 'Bananas(4)', 'Mmm this looks tasty.', 1, NULL, NULL, 1, NULL, NULL, 2, 171, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5415, 'Bananas(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5416, 'Bananas(5)', 'Mmm this looks tasty.', 1, NULL, NULL, 1, NULL, NULL, 2, 1637, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5417, 'Bananas(5)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1637, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5418, 'Empty sack', 'An empty sack.', 1, NULL, NULL, NULL, NULL, NULL, 1, 45, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5419, 'Empty sack', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 45, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5420, 'Potatoes(1)', 'There are <number of potatoes> in this sack.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1276, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5421, 'Potatoes(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5422, 'Potatoes(2)', 'There are <number of potatoes> in this sack.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1276, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5423, 'Potatoes(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5424, 'Potatoes(3)', 'There are <number of potatoes> in this sack.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1276, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5425, 'Potatoes(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5426, 'Potatoes(4)', 'There are <number of potatoes> in this sack.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1276, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5427, 'Potatoes(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5428, 'Potatoes(5)', 'There are <number of potatoes> in this sack.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1276, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5429, 'Potatoes(5)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5430, 'Potatoes(6)', 'There are <number of potatoes> in this sack.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1276, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5431, 'Potatoes(6)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5432, 'Potatoes(7)', 'There are <number of potatoes> in this sack.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1276, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5433, 'Potatoes(7)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5434, 'Potatoes(8)', 'There are <number of potatoes> in this sack.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1276, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5435, 'Potatoes(8)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5436, 'Potatoes(9)', 'There are <number of potatoes> in this sack.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1276, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5437, 'Potatoes(9)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5438, 'Potatoes(10)', 'There are <number of potatoes> in this sack.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1052, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5439, 'Potatoes(10)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1052, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5440, 'Onions(1)', 'There are/is (1-10) onion(s) in this sack.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 589, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5441, 'Onions(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5442, 'Onions(2)', 'There are/is (1-10) onion(s) in this sack.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 589, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5443, 'Onions(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5444, 'Onions(3)', 'There are/is (1-10) onion(s) in this sack.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 589, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5445, 'Onions(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5446, 'Onions(4)', 'There are/is (1-10) onion(s) in this sack.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 589, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5447, 'Onions(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5448, 'Onions(5)', 'There are/is (1-10) onion(s) in this sack.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 589, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5449, 'Onions(5)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5450, 'Onions(6)', 'There are/is (1-10) onion(s) in this sack.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 589, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5451, 'Onions(6)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5452, 'Onions(7)', 'There are/is (1-10) onion(s) in this sack.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 589, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5453, 'Onions(7)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5454, 'Onions(8)', 'There are/is (1-10) onion(s) in this sack.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 589, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5455, 'Onions(8)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5456, 'Onions(9)', 'There are/is (1-10) onion(s) in this sack.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 589, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5457, 'Onions(9)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5458, 'Onions(10)', 'There are/is (1-10) onion(s) in this sack.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 489, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5459, 'Onions(10)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 489, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5460, 'Cabbages(1)', 'There are <number of cabbages> in this sack.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1304, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5461, 'Cabbages(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5462, 'Cabbages(2)', 'There are <number of cabbages> in this sack.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1304, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5463, 'Cabbages(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5464, 'Cabbages(3)', 'There are <number of cabbages> in this sack.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1304, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5465, 'Cabbages(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5466, 'Cabbages(4)', 'There are <number of cabbages> in this sack.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1304, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5467, 'Cabbages(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5468, 'Cabbages(5)', 'There are <number of cabbages> in this sack.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1304, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5469, 'Cabbages(5)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5470, 'Cabbages(6)', 'There are <number of cabbages> in this sack.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1304, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5471, 'Cabbages(6)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5472, 'Cabbages(7)', 'There are <number of cabbages> in this sack.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1304, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5473, 'Cabbages(7)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5474, 'Cabbages(8)', 'There are <number of cabbages> in this sack.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1304, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5475, 'Cabbages(8)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5476, 'Cabbages(9)', 'There are <number of cabbages> in this sack.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1304, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5477, 'Cabbages(9)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5478, 'Cabbages(10)', 'There are <number of cabbages> in this sack.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 917, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5479, 'Cabbages(10)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 917, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5480, 'Apple seedling', 'An apple tree has been sown (and watered) in this plant pot.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5481, 'Banana seedling', 'A banana tree seed has been sown and watered in this plant pot.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5482, 'Orange seedling', 'An orange tree seed has been sown (and watered)in this plant pot.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5483, 'Curry seedling', 'A curry seed has been sown and watered in this plant pot.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5484, 'Pineapple seedling', 'A pineapple tree has been sown (and watered) in this plant pot.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5485, 'Papaya seedling', 'This needs watering before it will grow.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5486, 'Palm seedling', 'This sapling is ready to be replanted in a fruit tree patch.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.66, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5487, 'Calquat seedling', 'A calquat tree has been sown (and watered) in this plant pot.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(5488, 'Apple seedling', 'An apple tree has been sown (and watered) in this plant pot.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5489, 'Banana seedling', 'A banana tree seed has been sown and watered in this plant pot.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5490, 'Orange seedling', 'An orange tree seed has been sown (and watered)in this plant pot.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5491, 'Curry seedling', 'A curry seed has been sown and watered in this plant pot.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5492, 'Pineapple seedling', 'A pineapple tree has been sown (and watered) in this plant pot.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5493, 'Papaya seedling', 'This needs watering before it will grow.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5494, 'Palm seedling', 'This sapling is ready to be replanted in a fruit tree patch.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.66, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5495, 'Calquat seedling', 'A calquat tree has been sown (and watered) in this plant pot.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5496, 'Apple sapling', 'This sapling is ready to be replanted in a fruit tree patch.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5497, 'Banana sapling', 'This sapling is ready to be replanted in a fruit tree patch.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5498, 'Orange sapling', 'This sapling is ready to be replanted in a fruit tree patch.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5499, 'Curry sapling', 'This sapling is ready to be replanted in a fruit tree patch.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5500, 'Pineapple sapling', 'This sapling is ready to be replanted in a fruit tree patch.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5501, 'Papaya sapling', 'This sapling is ready to be replanted in a fruit tree patch.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5502, 'Palm sapling', 'This sapling is ready to be replanted in a fruit tree patch.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5503, 'Calquat sapling', 'This sapling is ready to be planted in a tree patch.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5504, 'Strawberry', 'A freshly picked strawberry.', 1, NULL, 7, 10, NULL, NULL, NULL, 23, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5505, 'Strawberry', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 23, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5506, 'Old man\'s message', 'The Wise Old Man of Draynor Village asked you to take this to someone.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5507, 'Strange book', 'A tatty old book belonging to the Wise Old Man of Draynor Village.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5508, 'Book of folklore', 'A tatty old book belonging to the Wise Old Man of Draynor Village.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5509, 'Small pouch', 'A small pouch used for storing essence.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5510, 'Medium pouch', 'A medium-sized pouch used for storing essence.', NULL, NULL, 120, 180, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5511, 'Medium pouch', 'A medium-sized pouch used for storing essence.', NULL, NULL, 120, 180, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5512, 'Large pouch', 'A large pouch used for storing essence.', NULL, NULL, 240, 360, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5513, 'Large pouch', 'A large pouch used for storing essence.', NULL, NULL, 240, 360, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5514, 'Giant pouch', 'A giant-sized pouch used for storing essence.', NULL, NULL, 480, 720, NULL, NULL, 50000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5515, 'Giant pouch', 'A giant-sized pouch used for storing essence.', NULL, NULL, 480, 720, NULL, NULL, 50000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5516, 'Elemental talisman', 'A mysterious power emanates from the talisman...', 1, NULL, 200, 300, NULL, NULL, NULL, 186900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(5517, 'Elemental talisman', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 186900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(5518, 'Scrying orb', 'When empty:', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5519, 'Scrying orb', 'When empty:', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5520, 'Abyssal book', 'Some research notes on abyssal space.', 1, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5521, 'Binding necklace', 'A necklace embedded with mystical power.', 1, NULL, 570, 855, NULL, NULL, NULL, 720, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5522, 'Binding necklace', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 720, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5523, 'Tiara mould', 'A mould for tiaras.', 1, NULL, 40, 60, NULL, NULL, 100, 315, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5524, 'Tiara mould', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 315, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5525, 'Tiara', 'Makes me feel like a Princess.', 1, NULL, 40, 60, NULL, NULL, NULL, 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5526, 'Tiara', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5527, 'Air tiara', 'A tiara infused with the properties of air.', 1, NULL, 40, 60, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5528, 'Air tiara', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5529, 'Mind tiara', 'A tiara infused with the properties of the mind.', 1, NULL, 40, 60, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5530, 'Mind tiara', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5531, 'Water tiara', 'A tiara infused with the properties of water.', 1, NULL, 40, 60, NULL, NULL, NULL, 1351, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5532, 'Water tiara', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1351, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5533, 'Body tiara', 'A tiara infused with the properties of the body.', 1, NULL, 40, 60, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5534, 'Body tiara', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5535, 'Earth tiara', 'A tiara infused with the properties of the earth.', 1, NULL, 40, 60, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5536, 'Earth tiara', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5537, 'Fire tiara', 'A tiara infused with the properties of fire.', 1, NULL, 40, 60, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5538, 'Fire tiara', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5539, 'Cosmic tiara', 'A tiara infused with the properties of the cosmos.', 1, NULL, 40, 60, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5540, 'Cosmic tiara', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5541, 'Nature tiara', 'A tiara infused with the properties of nature.', 1, NULL, 40, 60, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5542, 'Nature tiara', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5543, 'Chaos tiara', 'A tiara infused with the properties of chaos.', 1, NULL, 40, 60, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5544, 'Chaos tiara', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5545, 'Law tiara', 'A tiara infused with the properties of law.', 1, NULL, 40, 60, NULL, NULL, NULL, 11, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5546, 'Law tiara', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 11, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5547, 'Death tiara', 'A tiara infused with the properties of death.', 1, NULL, 40, 60, NULL, NULL, NULL, 65, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5548, 'Death tiara', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 65, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5549, 'Blood tiara', 'A tiara infused with the properties of Blood.', 1, NULL, 40, 60, NULL, NULL, NULL, 1058, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5550, 'Blood tiara', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1058, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5551, 'Soul tiara', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5552, 'Soul tiara', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5553, 'Rogue top', 'Black banded leather armour, a rogue\'s dream!', NULL, NULL, 250, 375, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,10,10,10,10,10,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5554, 'Rogue mask', 'Black banded leather armour, a rogue\'s dream!', NULL, NULL, 150, 225, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,0,0,5,5,5,5,5,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5555, 'Rogue trousers', 'Black banded leather armour, a rogue\'s dream!', NULL, NULL, 200, 300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,0,0,7,7,7,7,7,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5556, 'Rogue gloves', 'Black banded leather gloves, a rogue\'s dream!', NULL, NULL, 100, 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,0,0,2,2,2,2,2,2,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5557, 'Rogue boots', 'Black banded leather boots, a rogue\'s dream!', NULL, NULL, 100, 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,0,0,2,2,2,2,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5558, 'Rogue kit', 'It can do almost anything!', NULL, NULL, 20, 30, NULL, NULL, 35, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5559, 'Flash powder', 'A small satchel of bright powder!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5560, 'Stethoscope', 'A useful hearing aid.', NULL, NULL, 4, 6, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5561, 'Mystic jewel', 'I can escape the Maze with this!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5568, 'Picture', 'A fraction of a roof.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5574, 'Initiate sallet', 'An initiate Temple Knight\'s helm.', 1, NULL, 2400, 3600, NULL, NULL, 6000, 3512, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,13,14,11,-1,13,5,0,3,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5575, 'Initiate hauberk', 'An initiate Temple Knight\'s Armour.', 1, NULL, 4000, 6000, NULL, NULL, 10000, 5776, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '1,0,3', '0,0,0,-30,-10,46,44,38,-6,44,20,0,6,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}', 8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5576, 'Initiate cuisse', 'An initiate Temple Knight\'s leg armour.', 1, NULL, 3200, 4800, NULL, NULL, 8000, 4574, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '1,0,2', '0,0,0,-21,-7,24,22,20,-4,22,5,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}', 7, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5577, 'Cupric sulphate', 'A vial of something labelled \'Cupric Sulfate\'.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5578, 'Acetic acid', 'A vial of something labelled \'Acetic Acid\'.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5579, 'Gypsum', 'A vial of something labelled \'Gypsum\'.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5580, 'Sodium chloride', 'A vial of something labelled \'Sodium Chloride\'.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5581, 'Nitrous oxide', 'A vial of something labelled \'Nitrous Oxide\'.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5582, 'Vial of liquid', 'A vial of something labelled Dihydrogen Monoxide.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5583, 'Tin ore powder', 'A vial of something labelled \'Powdered Tin Ore\'.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5584, 'Cupric ore powder', 'A vial of something labelled \'Powdered Cupric Ore\'.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5586, 'Metal spade', 'It\'s a metal spade without a handle.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5587, 'Metal spade', 'It\'s a metal spade without a handle.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5588, 'Alchemical notes', 'Looks like a pretty boring read.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5592, 'Tin', 'This needs refining.', 1, NULL, 8, 12, NULL, NULL, 6, 42, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.25, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5593, 'Tin', 'This needs refining.', 1, NULL, 8, 12, NULL, NULL, 6, 42, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.25, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5594, 'Tin', 'This needs refining.', 1, NULL, 8, 12, NULL, NULL, 6, 42, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.25, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5595, 'Tin', 'This needs refining.', 1, NULL, 8, 12, NULL, NULL, 6, 42, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.25, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5596, 'Tin', 'This needs refining.', 1, NULL, 8, 12, NULL, NULL, 6, 42, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.25, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5597, 'Tin', 'This needs refining.', 1, NULL, 8, 12, NULL, NULL, 6, 42, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.25, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5598, 'Tin', 'This needs refining.', 1, NULL, 8, 12, NULL, NULL, 6, 42, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.25, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5599, 'Tin', 'This needs refining.', 1, NULL, 8, 12, NULL, NULL, 6, 42, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.25, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5600, 'Tin', 'This needs refining.', 1, NULL, 8, 12, NULL, NULL, 6, 42, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.25, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5601, 'Chisel', 'Good for detailed crafting.', 1, NULL, 5, 8, NULL, NULL, 14, 33, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5602, 'Bronze wire', 'Useful for crafting items.', 1, NULL, 8, 12, NULL, NULL, NULL, 237, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5603, 'Shears', 'For shearing sheep.', 1, NULL, NULL, NULL, NULL, NULL, 1, 41, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5604, 'Magnet', 'A very attractive magnet.', NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5605, 'Knife', 'A dangerous looking knife.', 1, NULL, 10, 15, NULL, NULL, 25, 102, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5606, 'Makeover voucher', 'I can exchange this for one free makeover with the makeover mage.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5607, 'Grain', 'Some wheat heads.', 1, NULL, NULL, 1, NULL, NULL, 2, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5608, 'Fox', 'A cunning animal.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5609, 'Chicken', 'Normal: Yep. Definitely a chicken.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5610, 'Hourglass', 'There\'s not much sand left in the top half...', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5611, 'Initiate sallet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5612, 'Initiate hauberk', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5613, 'Initiate cuisse', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5614, 'Magic carpet', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 330, 330, 330, 330, 330, 330, 330, 191, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5615, 'Bonemeal', 'A pot of crushed [type of bones].', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5616, 'Bronze arrow(p+)', 'Arrows with bronze heads.', 1, NULL, 2, 4, NULL, NULL, 7, 127, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,7', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5617, 'Iron arrow(p+)', 'Arrows with iron heads.', 1, NULL, 8, 12, NULL, NULL, 20, 138, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,10', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5618, 'Steel arrow(p+)', 'Arrows with steel heads.', 1, NULL, 18, 27, NULL, NULL, 46, 159, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,16', NULL, NULL, NULL, NULL, NULL, NULL, '{4,5}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5619, 'Mithril arrow(p+)', 'Arrows with mithril heads.', 1, NULL, 30, 45, NULL, NULL, 76, 176, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,22', NULL, NULL, NULL, NULL, NULL, NULL, '{4,20}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5620, 'Adamant arrow(p+)', 'Arrows with adamantite heads.', 1, NULL, 68, 103, NULL, NULL, 172, 211, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,31', NULL, NULL, NULL, NULL, NULL, NULL, '{4,30}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5621, 'Rune arrow(p+)', 'Arrows with rune heads.', 1, NULL, 204, 306, NULL, NULL, 510, 415, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,49', NULL, NULL, NULL, NULL, NULL, NULL, '{4,40}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5622, 'Bronze arrow(p++)', 'Arrows with bronze heads.', 1, NULL, 2, 4, NULL, NULL, 7, 1076, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,7', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5623, 'Iron arrow(p++)', 'Arrows with iron heads.', 1, NULL, 8, 12, NULL, NULL, 20, 1037, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,10', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5624, 'Steel arrow(p++)', 'Arrows with steel heads.', 1, NULL, 18, 27, NULL, NULL, 46, 1038, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,16', NULL, NULL, NULL, NULL, NULL, NULL, '{4,5}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5625, 'Mithril arrow(p++)', 'Arrows with mithril heads.', 1, NULL, 30, 45, NULL, NULL, 76, 718, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,22', NULL, NULL, NULL, NULL, NULL, NULL, '{4,20}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5626, 'Adamant arrow(p++)', 'Arrows with adamantite heads.', 1, NULL, 68, 103, NULL, NULL, 172, 101, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,31', NULL, NULL, NULL, NULL, NULL, NULL, '{4,30}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5627, 'Rune arrow(p++)', 'Arrows with rune heads.', 1, NULL, 204, 306, NULL, NULL, 510, 1300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,49', NULL, NULL, NULL, NULL, NULL, NULL, '{4,40}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5628, 'Bronze dart(p+)', 'A deadly throwing dart with a bronze tip.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 162, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,3,0,0,0,0,0,0,0,0,0,1', 18, NULL, NULL, '582,582,582,582', 424, '2547,0,0,0', NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5629, 'Iron dart(p+)', 'A deadly throwing dart with an iron tip.', 1, NULL, NULL, 1, NULL, NULL, NULL, 164, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,4,0,0,0,0,0,0,0,0,0,3', 18, NULL, NULL, '582,582,582,582', 424, '2547,0,0,0', NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5630, 'Steel dart(p+)', 'A deadly throwing dart with a steel tip.', 1, NULL, 4, 6, NULL, NULL, NULL, 173, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,5,0,0,0,0,0,0,0,0,0,4', 18, NULL, NULL, '582,582,582,582', 424, '2547,0,0,0', '{4,5}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5631, 'Black dart(p+)', 'A deadly throwing dart with a black tip.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 822, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,7,0,0,0,0,0,0,0,0,0,6', 18, NULL, NULL, '582,582,582,582', 424, '2547,0,0,0', '{4,10}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5632, 'Mithril dart(p+)', 'A deadly throwing dart with a mithril tip.', 1, NULL, 10, 15, NULL, NULL, NULL, 196, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,8,0,0,0,0,0,0,0,0,0,7', 18, NULL, NULL, '582,582,582,582', 424, '2547,0,0,0', '{4,20}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5633, 'Adamant dart(p+)', 'A deadly throwing dart with an adamantite tip.', 1, NULL, 26, 39, NULL, NULL, NULL, 244, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,11,0,0,0,0,0,0,0,0,0,10', 18, NULL, NULL, '582,582,582,582', 424, '2547,0,0,0', '{4,30}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5634, 'Rune dart(p+)', 'A deadly throwing dart with a rune tip.', 1, NULL, 140, 210, NULL, NULL, NULL, 370, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,15,0,0,0,0,0,0,0,0,0,14', 18, NULL, NULL, '582,582,582,582', 424, '2547,0,0,0', '{4,40}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5635, 'Bronze dart(p++)', 'A deadly throwing dart with a bronze tip.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1733, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,3,0,0,0,0,0,0,0,0,0,1', 18, NULL, NULL, '582,582,582,582', 424, '2547,0,0,0', NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5636, 'Iron dart(p++)', 'A deadly throwing dart with an iron tip.', 1, NULL, NULL, 1, NULL, NULL, NULL, 1687, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,4,0,0,0,0,0,0,0,0,0,3', 18, NULL, NULL, '582,582,582,582', 424, '2547,0,0,0', NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5637, 'Steel dart(p++)', 'A deadly throwing dart with a steel tip.', 1, NULL, 4, 6, NULL, NULL, NULL, 1654, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,5,0,0,0,0,0,0,0,0,0,4', 18, NULL, NULL, '582,582,582,582', 424, '2547,0,0,0', '{4,5}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5638, 'Black dart(p++)', 'A deadly throwing dart with a black tip.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 2422, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,7,0,0,0,0,0,0,0,0,0,6', 18, NULL, NULL, '582,582,582,582', 424, '2547,0,0,0', '{4,10}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5639, 'Mithril dart(p++)', 'A deadly throwing dart with a mithril tip.', 1, NULL, 10, 15, NULL, NULL, NULL, 1660, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,8,0,0,0,0,0,0,0,0,0,7', 18, NULL, NULL, '582,582,582,582', 424, '2547,0,0,0', '{4,20}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5640, 'Adamant dart(p++)', 'A deadly throwing dart with an adamantite tip.', 1, NULL, 26, 39, NULL, NULL, NULL, 1352, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,11,0,0,0,0,0,0,0,0,0,10', 18, NULL, NULL, '582,582,582,582', 424, '2547,0,0,0', '{4,30}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5641, 'Rune dart(p++)', 'A deadly throwing dart with a rune tip.', 1, NULL, 140, 210, NULL, NULL, NULL, 1109, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,15,0,0,0,0,0,0,0,0,0,14', 18, NULL, NULL, '582,582,582,582', 424, '2547,0,0,0', '{4,40}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5642, 'Bronze javelin(p+)', 'A bronze-tipped javelin.', 1, NULL, 2, 3, NULL, NULL, 6, 115, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, NULL, '0,0,0,0,5,0,0,0,0,0,0,0,0,0,6', 18, NULL, NULL, '806,806,806,806', 424, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5643, 'Iron javelin(p+)', 'An iron-tipped javelin.', 1, NULL, 3, 4, NULL, NULL, 8, 112, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, NULL, '0,0,0,0,8,0,0,0,0,0,0,0,0,0,10', 18, NULL, NULL, '806,806,806,806', 424, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5644, 'Steel javelin(p+)', 'A steel-tipped javelin.', 1, NULL, 14, 22, NULL, NULL, 37, 128, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, NULL, '0,0,0,0,12,0,0,0,0,0,0,0,0,0,12', 18, NULL, NULL, '806,806,806,806', 424, NULL, '{4,5}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5645, 'Mithril javelin(p+)', 'A mithril tipped javelin.', 1, NULL, 39, 58, NULL, NULL, 79, 141, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, NULL, '0,0,0,0,17,0,0,0,0,0,0,0,0,0,18', 18, NULL, NULL, '806,806,806,806', 424, NULL, '{4,20}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5646, 'Adamant javelin(p+)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 179, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, '0,0,0,0,24,0,0,0,0,0,0,0,0,0,28', 18, NULL, NULL, '806,806,806,806', 424, NULL, '{4,30}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5647, 'Rune javelin(p+)', 'A rune tipped javelin.', 1, NULL, 249, 374, NULL, NULL, 624, 302, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, NULL, '0,0,0,0,38,0,0,0,0,0,0,0,0,0,42', 18, NULL, NULL, '806,806,806,806', 424, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5648, 'Bronze jav\'n(p++)', 'A bronze-tipped javelin.', 1, NULL, 2, 3, NULL, NULL, 6, 1755, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, NULL, '0,0,0,0,5,0,0,0,0,0,0,0,0,0,6', 18, NULL, NULL, '806,806,806,806', 424, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5649, 'Iron javelin(p++)', 'An iron-tipped javelin.', 1, NULL, 3, 4, NULL, NULL, 8, 1756, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, NULL, '0,0,0,0,8,0,0,0,0,0,0,0,0,0,10', 18, NULL, NULL, '806,806,806,806', 424, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5650, 'Steel javelin(p++)', 'A steel-tipped javelin.', 1, NULL, 14, 22, NULL, NULL, 37, 1769, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, NULL, '0,0,0,0,12,0,0,0,0,0,0,0,0,0,12', 18, NULL, NULL, '806,806,806,806', 424, NULL, '{4,5}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5651, 'Mithril javelin(p++)', 'A mithril tipped javelin.', 1, NULL, 39, 58, NULL, NULL, 79, 1736, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, NULL, '0,0,0,0,17,0,0,0,0,0,0,0,0,0,18', 18, NULL, NULL, '806,806,806,806', 424, NULL, '{4,20}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5652, 'Adamant javelin(p++)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1514, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, '0,0,0,0,24,0,0,0,0,0,0,0,0,0,28', 18, NULL, NULL, '806,806,806,806', 424, NULL, '{4,30}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5653, 'Rune javelin(p++)', 'A rune tipped javelin.', 1, NULL, 249, 374, NULL, NULL, 624, 1521, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, NULL, '0,0,0,0,38,0,0,0,0,0,0,0,0,0,42', 18, NULL, NULL, '806,806,806,806', 424, NULL, '{4,40}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5654, 'Bronze knife(p+)', 'A finely balanced throwing knife.', 1, NULL, 5, 8, NULL, NULL, 14, 164, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,4,0,0,0,0,0,0,0,0,0,3', 18, NULL, NULL, '806,806,806,806', 424, '2704,0,0,0', NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5655, 'Iron knife(p+)', 'A finely balanced throwing knife.', 1, NULL, 23, 34, NULL, NULL, 58, 170, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,5,0,0,0,0,0,0,0,0,0,4', 18, NULL, NULL, '806,806,806,806', 424, '2704,0,0,0', NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5656, 'Steel knife(p+)', 'A finely balanced throwing knife.', 1, NULL, 27, 40, NULL, NULL, 68, 212, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,8,0,0,0,0,0,0,0,0,0,7', 18, NULL, NULL, '806,806,806,806', 424, '2704,0,0,0', '{4,5}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5657, 'Mithril knife(p+)', 'A finely balanced throwing knife.', 1, NULL, 10, 16, NULL, NULL, NULL, 330, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,11,0,0,0,0,0,0,0,0,0,10', 18, NULL, NULL, '806,806,806,806', 424, '2704,0,0,0', '{4,20}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5658, 'Black knife(p+)', 'A finely balanced throwing knife.', 1, NULL, 7, 11, NULL, NULL, 15, 66, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,10,0,0,0,0,0,0,0,0,0,8', 18, NULL, NULL, '806,806,806,806', 424, '2704,0,0,0', '{4,10}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5659, 'Adamant knife(p+)', 'A finely balanced throwing knife.', 1, NULL, 26, 40, NULL, NULL, NULL, 609, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,15,0,0,0,0,0,0,0,0,0,14', 18, NULL, NULL, '806,806,806,806', 424, '2704,0,0,0', '{4,30}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5660, 'Rune knife(p+)', 'A finely balanced throwing knife.', 1, NULL, 66, 100, NULL, NULL, NULL, 1511, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,25,0,0,0,0,0,0,0,0,0,24', 18, NULL, NULL, '806,806,806,806', 424, '2704,0,0,0', '{4,40}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5661, 'Bronze knife(p++)', 'A finely balanced throwing knife.', 1, NULL, 5, 8, NULL, NULL, 14, 1514, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,4,0,0,0,0,0,0,0,0,0,3', 18, NULL, NULL, '806,806,806,806', 424, '2704,0,0,0', NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5662, 'Iron knife(p++)', 'A finely balanced throwing knife.', 1, NULL, 23, 34, NULL, NULL, 58, 1212, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,5,0,0,0,0,0,0,0,0,0,4', 18, NULL, NULL, '806,806,806,806', 424, '2704,0,0,0', NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5663, 'Steel knife(p++)', 'A finely balanced throwing knife.', 1, NULL, 27, 40, NULL, NULL, 68, 1579, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,8,0,0,0,0,0,0,0,0,0,7', 18, NULL, NULL, '806,806,806,806', 424, '2704,0,0,0', '{4,5}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5664, 'Mithril knife(p++)', 'A finely balanced throwing knife.', 1, NULL, 10, 16, NULL, NULL, NULL, 1368, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,11,0,0,0,0,0,0,0,0,0,10', 18, NULL, NULL, '806,806,806,806', 424, '2704,0,0,0', '{4,20}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5665, 'Black knife(p++)', 'A finely balanced throwing knife.', 1, NULL, 7, 11, NULL, NULL, 15, 103, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,10,0,0,0,0,0,0,0,0,0,8', 18, NULL, NULL, '806,806,806,806', 424, '2704,0,0,0', '{4,10}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5666, 'Adamant knife(p++)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1505, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, '0,0,0,0,15,0,0,0,0,0,0,0,0,0,14', 18, NULL, NULL, '806,806,806,806', 424, '2704,0,0,0', '{4,30}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5667, 'Rune knife(p++)', 'A finely balanced throwing knife.', 1, NULL, 66, 100, NULL, NULL, NULL, 2207, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,25,0,0,0,0,0,0,0,0,0,24', 18, NULL, NULL, '806,806,806,806', 424, '2704,0,0,0', '{4,40}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5668, 'Iron dagger(p+)', 'Short but pointy.', 1, NULL, 14, 21, NULL, NULL, 38, 483, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '5,3,-4,1,0,0,0,0,1,0,0,4,0,0,0', 5, NULL, NULL, NULL, NULL, '2517,2517,2500,2517', NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5669, 'Iron dagger(p+)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 483, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5670, 'Bronze dagger(p+)', 'Short but pointy.', 1, NULL, 4, 6, NULL, NULL, 11, 350, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '4,2,-4,1,0,0,0,0,1,0,0,3,0,0,0', 5, NULL, NULL, NULL, NULL, '2517,2517,2500,2517', NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5671, 'Bronze dagger(p+)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 350, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5672, 'Steel dagger(p+)', 'Short but pointy.', 1, NULL, 50, 75, NULL, NULL, 135, 575, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '8,4,-4,1,0,0,0,0,1,0,0,7,0,0,0', 5, NULL, NULL, NULL, NULL, '2517,2517,2500,2517', '{0,5}', 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(5673, 'Steel dagger(p+)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 575, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5674, 'Mithril dagger(p+)', 'A dangerous dagger.', 1, NULL, 130, 195, NULL, NULL, 130, 538, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '11,5,-4,1,0,0,0,0,1,0,0,10,0,0,0', 5, NULL, NULL, NULL, NULL, '2517,2517,2500,2517', '{0,20}', 0.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5675, 'Mithril dagger(p+)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 538, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5676, 'Adamant dagger(p+)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, NULL, NULL, '15,8,-4,1,0,0,0,0,1,0,0,14,0,0,0', 5, NULL, NULL, NULL, NULL, '2517,2517,2500,2517', '{0,30}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5677, 'Adamant dagger(p+)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5678, 'Rune dagger(p+)', 'A powerful dagger.', 1, 1, 3200, 4800, NULL, NULL, 8000, 4538, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '25,12,-4,1,0,0,0,0,1,0,0,24,0,0,0', 5, NULL, NULL, NULL, NULL, '2517,2517,2500,2517', '{0,40}', 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5679, 'Rune dagger(p+)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4538, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5680, 'Dragon dagger(p+)', 'A powerful dagger.', 1, 1, 12000, 18000, NULL, NULL, 60000, 16800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '40,25,-4,1,0,0,0,0,1,0,0,40,0,0,0', 5, 1, NULL, '396,396,395,396', 397, '2517,2517,2500,2517', '{0,60}', 0.4, 10, NULL, NULL, NULL, NULL, NULL, 0), +(5681, 'Dragon dagger(p+)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 16800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '396,396,395,396', 397, '2517,2517,2500,2517', NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(5682, 'Black dagger(p+)', 'A vicious black dagger.', 1, NULL, 96, 144, NULL, NULL, 240, 664, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '10,5,-4,1,0,0,0,0,1,0,0,7,0,0,0', 5, NULL, NULL, NULL, NULL, '2517,2517,2500,2517', '{0,10}', 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5683, 'Black dagger(p+)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 664, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5684, 'Poison dagger(p+)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, NULL, NULL, '10,5,-4,1,0,0,0,0,1,0,0,7,0,0,0', 5, NULL, NULL, NULL, NULL, '2517,2517,2500,2517', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5685, 'Poison dagger(p+)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5686, 'Iron dagger(p++)', 'Short but pointy.', 1, NULL, 14, 21, NULL, NULL, 38, 4128, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '5,3,-4,1,0,0,0,0,1,0,0,4,0,0,0', 5, NULL, NULL, NULL, NULL, '2517,2517,2500,2517', NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5687, 'Iron dagger(p++)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4128, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5688, 'Br\'ze dagger(p++)', 'Short but pointy.', 1, NULL, 4, 6, NULL, NULL, 11, 5088, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '4,2,-4,1,0,0,0,0,1,0,0,3,0,0,0', 5, NULL, NULL, NULL, NULL, '2517,2517,2500,2517', NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5689, 'Br\'ze dagger(p++)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5088, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5690, 'Steel dagger(p++)', 'Short but pointy.', 1, NULL, 50, 75, NULL, NULL, 135, 4729, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '8,4,-4,1,0,0,0,0,1,0,0,7,0,0,0', 5, NULL, NULL, NULL, NULL, '2517,2517,2500,2517', '{0,5}', 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5691, 'Steel dagger(p++)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4729, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5692, 'Mithril dagger(p++)', 'A dangerous dagger.', 1, NULL, 130, 195, NULL, NULL, 130, 3476, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '11,5,-4,1,0,0,0,0,1,0,0,10,0,0,0', 5, NULL, NULL, NULL, NULL, '2517,2517,2500,2517', '{0,20}', 0.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5693, 'Mithril dagger(p++)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3476, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5694, 'Adamant dagger(p++)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4612, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, NULL, NULL, '15,8,-4,1,0,0,0,0,1,0,0,14,0,0,0', 5, NULL, NULL, NULL, NULL, '2517,2517,2500,2517', '{0,30}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5695, 'Adamant dagger(p++)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4612, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5696, 'Rune dagger(p++)', 'A powerful dagger.', 1, 1, 3200, 4800, NULL, NULL, 8000, 5061, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '25,12,-4,1,0,0,0,0,1,0,0,24,0,0,0', 5, NULL, NULL, NULL, NULL, '2517,2517,2500,2517', '{0,40}', 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5697, 'Rune dagger(p++)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5061, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5698, 'Dragon dagger(p++)', 'A powerful dagger.', 1, 1, 12000, 18000, NULL, NULL, 60000, 20300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '40,25,-4,1,0,0,0,0,1,0,0,40,0,0,0', 5, 1, NULL, '396,396,395,396', 397, '2517,2517,2500,2517', '{0,60}', 0.4, 10, NULL, NULL, NULL, NULL, NULL, 0), +(5699, 'Dragon dagger(p++)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 20300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '396,396,395,396', 397, '2517,2517,2500,2517', NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(5700, 'Black dagger(p++)', 'A vicious black dagger.', 1, NULL, 96, 144, NULL, NULL, 240, 4921, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '10,5,-4,1,0,0,0,0,1,0,0,7,0,0,0', 5, NULL, NULL, NULL, NULL, '2517,2517,2500,2517', '{0,10}', 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5701, 'Black dagger(p++)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4921, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5702, 'Poison dagger(p++)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, NULL, NULL, '10,5,-4,1,0,0,0,0,1,0,0,7,0,0,0', 5, NULL, NULL, NULL, NULL, '2517,2517,2500,2517', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5703, 'Poison dagger(p++)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5704, 'Bronze spear(p+)', 'A bronze tipped spear.', 1, NULL, 10, 15, NULL, NULL, NULL, 861, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '5,5,5,0,0,1,1,0,0,0,0,6,0,0,0', 14, NULL, 1, NULL, NULL, NULL, NULL, 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5705, 'Bronze spear(p+)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 861, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5706, 'Iron spear(p+)', 'An iron tipped spear.', 1, NULL, 36, 54, NULL, NULL, NULL, 676, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '8,8,8,0,0,1,1,0,0,0,0,10,0,0,0', 14, NULL, 1, NULL, NULL, NULL, NULL, 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5707, 'Iron spear(p+)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 676, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5708, 'Steel spear(p+)', 'A steel tipped spear.', 1, NULL, 130, 195, NULL, NULL, NULL, 596, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '12,12,12,0,0,1,1,0,0,0,0,12,0,0,0', 14, NULL, 1, NULL, NULL, NULL, '{0,5}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5709, 'Steel spear(p+)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 596, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5710, 'Mithril spear(p+)', 'A mithril tipped spear.', 1, NULL, 338, 507, NULL, NULL, NULL, 802, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '17,17,17,0,0,1,1,0,0,0,0,18,0,0,0', 14, NULL, 1, NULL, NULL, NULL, '{0,20}', 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5711, 'Mithril spear(p+)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 802, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5712, 'Adamant spear(p+)', 'An adamant tipped spear.', 1, NULL, 832, 1248, NULL, NULL, NULL, 1394, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '24,24,24,0,0,1,1,0,0,0,0,28,0,0,0', 14, NULL, 1, NULL, NULL, NULL, '{0,30}', 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5713, 'Adamant spear(p+)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1394, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5714, 'Rune spear(p+)', 'A rune tipped spear.', 1, 1, 8320, 12480, NULL, NULL, NULL, 12500, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '36,36,36,0,0,1,1,0,0,0,0,42,0,0,0', 14, NULL, 1, NULL, NULL, NULL, '{0,40}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5715, 'Rune spear(p+)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 12500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5716, 'Dragon spear(p+)', 'A dragon tipped spear.', 1, 1, 24960, 37440, NULL, NULL, NULL, 41800, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '55,55,55,0,0,5,5,5,5,5,0,60,0,0,0', 14, 1, 1, '2080,2081,2082,2080', 2079, NULL, '{0,60}', 2, 10, NULL, NULL, NULL, NULL, NULL, 0), +(5717, 'Dragon spear(p+)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 41800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2080,2081,2082,2080', 2079, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(5718, 'Bronze spear(p++)', 'A bronze tipped spear.', 1, NULL, 10, 15, NULL, NULL, NULL, 7557, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '5,5,5,0,0,1,1,0,0,0,0,6,0,0,0', 14, NULL, 1, NULL, NULL, NULL, NULL, 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5719, 'Bronze spear(p++)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7557, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5720, 'Iron spear(p++)', 'An iron tipped spear.', 1, NULL, 36, 54, NULL, NULL, NULL, 8394, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '8,8,8,0,0,1,1,0,0,0,0,10,0,0,0', 14, NULL, 1, NULL, NULL, NULL, NULL, 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5721, 'Iron spear(p++)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8394, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5722, 'Steel spear(p++)', 'A steel tipped spear.', 1, NULL, 130, 195, NULL, NULL, NULL, 8336, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '12,12,12,0,0,1,1,0,0,0,0,12,0,0,0', 14, NULL, 1, NULL, NULL, NULL, '{0,5}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5723, 'Steel spear(p++)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8336, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5724, 'Mithril spear(p++)', 'A mithril tipped spear.', 1, NULL, 338, 507, NULL, NULL, NULL, 7035, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '17,17,17,0,0,1,1,0,0,0,0,18,0,0,0', 14, NULL, 1, NULL, NULL, NULL, '{0,20}', 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5725, 'Mithril spear(p++)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7035, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5726, 'Adamant spear(p++)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7530, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, NULL, NULL, '24,24,24,0,0,1,1,0,0,0,0,28,0,0,0', 14, NULL, 1, NULL, NULL, NULL, '{0,30}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5727, 'Adamant spear(p++)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7530, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5728, 'Rune spear(p++)', 'A rune tipped spear.', 1, 1, 8320, 12480, NULL, NULL, NULL, 17700, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '36,36,36,0,0,1,1,0,0,0,0,42,0,0,0', 14, NULL, 1, NULL, NULL, NULL, '{0,40}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5729, 'Rune spear(p++)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 17700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5730, 'Dragon spear(p++)', 'A dragon tipped spear.', 1, 1, 24960, 37440, NULL, NULL, NULL, 37800, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '55,55,55,0,0,5,5,5,5,5,0,60,0,0,0', 14, 1, 1, '2080,2081,2082,2080', 2079, NULL, '{0,60}', 2, 10, NULL, NULL, NULL, NULL, NULL, 0), +(5731, 'Dragon spear(p++)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 37800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2080,2081,2082,2080', 2079, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(5732, 'Stool', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5733, 'Rotten potato', 'Yuk!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5734, 'Black spear(p+)', 'A black tipped spear.', 1, NULL, 260, 390, NULL, NULL, NULL, 3351, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '15,15,15,0,0,1,1,0,0,0,0,16,0,0,0', 14, NULL, 1, NULL, NULL, NULL, '{0,10}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5735, 'Black spear(p+)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3351, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5736, 'Black spear(p++)', 'A black tipped spear.', 1, NULL, 260, 390, NULL, NULL, NULL, 9065, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '15,15,15,0,0,1,1,0,0,0,0,16,0,0,0', 14, NULL, 1, NULL, NULL, NULL, '{0,10}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5737, 'Black spear(p++)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 9065, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5738, 'Woad leaf', 'A slightly bluish leaf.', 1, NULL, NULL, NULL, NULL, NULL, 15, 19, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5739, 'Asgarnian ale(m)', 'This looks a good deal stronger than normal Asgarnian ale.', 1, NULL, NULL, 1, NULL, NULL, NULL, 459, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5740, 'Asgarnian ale(m)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 459, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5741, 'Mature wmb', 'This looks a good deal stronger than normal Wizards Mind Bomb.', 1, NULL, NULL, 1, NULL, NULL, NULL, 1193, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5742, 'Mature wmb', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1193, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5743, 'Greenman\'s ale(m)', 'This looks a good deal stronger than normal Greenman\'s Ale.', 1, NULL, NULL, 1, NULL, NULL, NULL, 65400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5744, 'Greenman\'s ale(m)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 65400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5745, 'Dragon bitter(m)', 'This looks a good deal stronger than normal Dragon Bitter.', 1, NULL, NULL, 1, NULL, NULL, NULL, 2458, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5746, 'Dragon bitter(m)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2458, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5747, 'Dwarven stout(m)', 'This looks a good deal stronger than normal dwarven stout.', 1, NULL, NULL, 1, NULL, NULL, NULL, 56400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5748, 'Dwarven stout(m)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 56400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5749, 'Moonlight mead(m)', 'This looks a good deal stronger than normal Moonlight Mead.', 1, NULL, 2, 3, NULL, NULL, NULL, 19, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5750, 'Moonlight mead(m)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 19, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5751, 'Axeman\'s folly', 'This might help me chop harder.', 1, NULL, NULL, 1, NULL, NULL, NULL, 890, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5752, 'Axeman\'s folly', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 890, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5753, 'Axeman\'s folly(m)', 'This looks a good deal stronger than a normal Axeman\'s Folly.', 1, NULL, NULL, 1, NULL, NULL, NULL, 26000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5754, 'Axeman\'s folly(m)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 26000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5755, 'Chef\'s delight', 'A fruity, full-bodied ale.', 1, NULL, NULL, 1, NULL, NULL, NULL, 3694, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5756, 'Chef\'s delight', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3694, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5757, 'Chef\'s delight(m)', 'This looks a good deal stronger than normal Chef\'s Delight.', 1, NULL, NULL, 1, NULL, NULL, NULL, 42800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5758, 'Chef\'s delight(m)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 42800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5759, 'Slayer\'s respite', 'Ale with bite.', 1, NULL, NULL, 1, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5760, 'Slayer\'s respite', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5761, 'Slayer\'s respite(m)', 'This looks a good deal stronger than normal Slayer\'s Respite.', 1, NULL, NULL, 1, NULL, NULL, NULL, 1748, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5762, 'Slayer\'s respite(m)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1748, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5763, 'Cider', 'A glass of Cider', 1, NULL, NULL, 1, NULL, NULL, 2, 1279, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5764, 'Cider', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1279, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5765, 'Mature cider', 'This looks a good deal stronger than normal cider.', 1, NULL, NULL, 1, NULL, NULL, NULL, 3614, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5766, 'Mature cider', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3614, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5767, 'Ale yeast', 'A pot filled with ale yeast.', 1, NULL, 10, 15, NULL, NULL, 5, 59, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5768, 'Ale yeast', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 59, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5769, 'Calquat keg', 'Sliced and hollowed out to form a keg.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5770, 'Calquat keg', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5771, 'Dwarven stout(1)', 'A pint of thick dark beer.', 1, NULL, NULL, 1, NULL, NULL, 3, 1934, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5772, 'Dwarven stout(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1934, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5773, 'Dwarven stout(2)', 'A pint of thick dark beer.', 1, NULL, NULL, 1, NULL, NULL, 3, 3214, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5774, 'Dwarven stout(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3214, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5775, 'Dwarven stout(3)', 'A pint of thick dark beer.', 1, NULL, NULL, 1, NULL, NULL, 3, 4886, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5776, 'Dwarven stout(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4886, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5777, 'Dwarven stout(4)', 'A pint of thick dark beer.', 1, NULL, NULL, 1, NULL, NULL, 3, 5159, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5778, 'Dwarven stout(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5159, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5779, 'Asgarnian ale(1)', 'Probably the finest readily-available ale in Asgarnia.', 1, NULL, NULL, 1, NULL, NULL, 3, 3344, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5780, 'Asgarnian ale(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3344, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5781, 'Asgarnian ale(2)', 'Probably the finest readily-available ale in Asgarnia.', 1, NULL, NULL, 1, NULL, NULL, 3, 6103, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5782, 'Asgarnian ale(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 6103, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5783, 'Asgarnian ale(3)', 'Probably the finest readily-available ale in Asgarnia.', 1, NULL, NULL, 1, NULL, NULL, 3, 9230, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5784, 'Asgarnian ale(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 9230, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5785, 'Asgarnian ale(4)', 'Probably the finest readily-available ale in Asgarnia.', 1, NULL, NULL, 1, NULL, NULL, 3, 12900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5786, 'Asgarnian ale(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 12900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5787, 'Greenmans ale(1)', 'A glass of frothy ale.', 1, NULL, NULL, 1, NULL, NULL, 2, 3441, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5788, 'Greenmans ale(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3441, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5789, 'Greenmans ale(2)', 'A glass of frothy ale.', 1, NULL, NULL, 1, NULL, NULL, 2, 4670, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5790, 'Greenmans ale(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4670, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5791, 'Greenmans ale(3)', 'A glass of frothy ale.', 1, NULL, NULL, 1, NULL, NULL, 2, 7654, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5792, 'Greenmans ale(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7654, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5793, 'Greenmans ale(4)', 'A glass of frothy ale.', 1, NULL, NULL, 1, NULL, NULL, 2, 6317, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5794, 'Greenmans ale(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 6317, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5795, 'Mind bomb(1)', 'It\'s got strange bubbles in it.', 1, NULL, NULL, 1, NULL, NULL, 3, 1495, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5796, 'Mind bomb(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1495, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5797, 'Mind bomb(2)', 'It\'s got strange bubbles in it.', 1, NULL, NULL, 1, NULL, NULL, 3, 2721, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5798, 'Mind bomb(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2721, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5799, 'Mind bomb(3)', 'It\'s got strange bubbles in it.', 1, NULL, NULL, 1, NULL, NULL, 3, 4038, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5800, 'Mind bomb(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4038, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5801, 'Mind bomb(4)', 'It\'s got strange bubbles in it.', 1, NULL, NULL, 1, NULL, NULL, 3, 5166, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5802, 'Mind bomb(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5166, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5803, 'Dragon bitter(1)', 'A glass of bitter.', 1, NULL, NULL, 1, NULL, NULL, 2, 1673, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5804, 'Dragon bitter(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1673, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5805, 'Dragon bitter(2)', 'A glass of bitter.', 1, NULL, NULL, 1, NULL, NULL, 2, 3259, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5806, 'Dragon bitter(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3259, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5807, 'Dragon bitter(3)', 'A glass of bitter.', 1, NULL, NULL, 1, NULL, NULL, 2, 4845, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5808, 'Dragon bitter(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4845, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5809, 'Dragon bitter(4)', 'A glass of bitter.', 1, NULL, NULL, 1, NULL, NULL, 2, 5924, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5810, 'Dragon bitter(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5924, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5811, 'Moonlight mead(1)', 'A foul smelling brew.', 1, NULL, 2, 3, NULL, NULL, 5, 1298, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5812, 'Moonlight mead(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1298, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5813, 'Moonlight mead(2)', 'A foul smelling brew.', 1, NULL, 2, 3, NULL, NULL, 5, 2510, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5814, 'Moonlight mead(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2510, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5815, 'Moonlight mead(3)', 'A foul smelling brew.', 1, NULL, 2, 3, NULL, NULL, 5, 3721, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5816, 'Moonlight mead(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3721, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5817, 'Moonlight mead(4)', 'A foul smelling brew.', 1, NULL, 2, 3, NULL, NULL, 5, 4883, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5818, 'Moonlight mead(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4883, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5819, 'Axeman\'s folly(1)', 'This might help me chop harder.', 1, NULL, NULL, 1, NULL, NULL, NULL, 3333, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5820, 'Axeman\'s folly(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3333, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5821, 'Axeman\'s folly(2)', 'This might help me chop harder.', 1, NULL, NULL, 1, NULL, NULL, NULL, 6093, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5822, 'Axeman\'s folly(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 6093, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5823, 'Axeman\'s folly(3)', 'This might help me chop harder.', 1, NULL, NULL, 1, NULL, NULL, NULL, 8978, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5824, 'Axeman\'s folly(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8978, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5825, 'Axeman\'s folly(4)', 'This might help me chop harder.', 1, NULL, NULL, 1, NULL, NULL, NULL, 9212, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5826, 'Axeman\'s folly(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 9212, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5827, 'Chef\'s delight(1)', 'A fruity, full-bodied ale.', 1, NULL, NULL, 1, NULL, NULL, NULL, 3851, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5828, 'Chef\'s delight(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3851, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5829, 'Chef\'s delight(2)', 'A fruity, full-bodied ale.', 1, NULL, NULL, 1, NULL, NULL, NULL, 6589, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5830, 'Chef\'s delight(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 6589, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5831, 'Chef\'s delight(3)', 'A fruity, full-bodied ale.', 1, NULL, NULL, 1, NULL, NULL, NULL, 9536, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5832, 'Chef\'s delight(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 9536, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5833, 'Chef\'s delight(4)', 'A fruity, full-bodied ale.', 1, NULL, NULL, 1, NULL, NULL, NULL, 13200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5834, 'Chef\'s delight(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 13200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5835, 'Slayer\'s respite(1)', 'Ale with bite.', 1, NULL, NULL, 1, NULL, NULL, NULL, 1127, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5836, 'Slayer\'s respite(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1127, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5837, 'Slayer\'s respite(2)', 'Ale with bite.', 1, NULL, NULL, 1, NULL, NULL, NULL, 2168, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5838, 'Slayer\'s respite(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2168, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5839, 'Slayer\'s respite(3)', 'Ale with bite.', 1, NULL, NULL, 1, NULL, NULL, NULL, 3209, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5840, 'Slayer\'s respite(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3209, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5841, 'Slayer\'s respite(4)', 'Ale with bite.', 1, NULL, NULL, 1, NULL, NULL, NULL, 3582, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5842, 'Slayer\'s respite(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3582, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5843, 'Cider(1)', 'A glass of Cider', 1, NULL, NULL, 1, NULL, NULL, 2, 6040, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5844, 'Cider(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 6040, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5845, 'Cider(2)', 'A glass of Cider', 1, NULL, NULL, 1, NULL, NULL, 2, 11000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5846, 'Cider(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 11000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5847, 'Cider(3)', 'A glass of Cider', 1, NULL, NULL, 1, NULL, NULL, 2, 15400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5848, 'Cider(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 15400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5849, 'Cider(4)', 'A glass of Cider', 1, NULL, NULL, 1, NULL, NULL, 2, 18900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5850, 'Cider(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 18900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5851, 'Dwarven stout(m1)', 'This looks a good deal stronger than normal dwarven stout.', 1, NULL, NULL, 1, NULL, NULL, NULL, 44600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5852, 'Dwarven stout(m1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 44600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5853, 'Dwarven stout(m2)', 'This looks a good deal stronger than normal dwarven stout.', 1, NULL, NULL, 1, NULL, NULL, NULL, 68900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5854, 'Dwarven stout(m2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 68900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5855, 'Dwarven stout(m3)', 'This looks a good deal stronger than normal dwarven stout.', 1, NULL, NULL, 1, NULL, NULL, NULL, 98800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(5856, 'Dwarven stout(m3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 98800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5857, 'Dwarven stout(m4)', 'This looks a good deal stronger than normal dwarven stout.', 1, NULL, NULL, 1, NULL, NULL, NULL, 237400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5858, 'Dwarven stout(m4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 237400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5859, 'Asgarnian ale(m1)', 'This looks a good deal stronger than normal Asgarnian ale.', 1, NULL, NULL, 1, NULL, NULL, NULL, 1697, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5860, 'Asgarnian ale(m1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1697, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5861, 'Asgarnian ale(m2)', 'This looks a good deal stronger than normal Asgarnian ale.', 1, NULL, NULL, 1, NULL, NULL, NULL, 3307, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5862, 'Asgarnian ale(m2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3307, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5863, 'Asgarnian ale(m3)', 'This looks a good deal stronger than normal Asgarnian ale.', 1, NULL, NULL, 1, NULL, NULL, NULL, 4917, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5864, 'Asgarnian ale(m3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4917, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5865, 'Asgarnian ale(m4)', 'This looks a good deal stronger than normal Asgarnian ale.', 1, NULL, NULL, 1, NULL, NULL, NULL, 6778, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5866, 'Asgarnian ale(m4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 6778, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5867, 'Greenmans ale(m1)', 'This looks a good deal stronger than normal Greenman\'s Ale.', 1, NULL, NULL, 1, NULL, NULL, NULL, 57600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5868, 'Greenmans ale(m1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 57600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5869, 'Greenmans ale(m2)', 'This looks a good deal stronger than normal Greenman\'s Ale.', 1, NULL, NULL, 1, NULL, NULL, NULL, 92000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5870, 'Greenmans ale(m2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 92000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5871, 'Greenmans ale(m3)', 'This looks a good deal stronger than normal Greenman\'s Ale.', 1, NULL, NULL, 1, NULL, NULL, NULL, 136700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5872, 'Greenmans ale(m3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 136700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5873, 'Greenmans ale(m4)', 'This looks a good deal stronger than normal Greenman\'s Ale.', 1, NULL, NULL, 1, NULL, NULL, NULL, 231700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5874, 'Greenmans ale(m4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 231700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5875, 'Mind bomb(m1)', 'This looks a good deal stronger than normal Wizards Mind Bomb.', 1, NULL, NULL, 1, NULL, NULL, NULL, 3032, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5876, 'Mind bomb(m1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3032, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5877, 'Mind bomb(m2)', 'This looks a good deal stronger than normal Wizards Mind Bomb.', 1, NULL, NULL, 1, NULL, NULL, NULL, 5977, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5878, 'Mind bomb(m2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5977, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5879, 'Mind bomb(m3)', 'This looks a good deal stronger than normal Wizards Mind Bomb.', 1, NULL, NULL, 1, NULL, NULL, NULL, 8922, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5880, 'Mind bomb(m3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8922, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5881, 'Mind bomb(m4)', 'This looks a good deal stronger than normal Wizards Mind Bomb.', 1, NULL, NULL, 1, NULL, NULL, NULL, 12700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5882, 'Mind bomb(m4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 12700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5883, 'Dragon bitter(m1)', 'This looks a good deal stronger than normal Dragon Bitter.', 1, NULL, NULL, 1, NULL, NULL, NULL, 2125, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5884, 'Dragon bitter(m1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2125, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5885, 'Dragon bitter(m2)', 'This looks a good deal stronger than normal Dragon Bitter.', 1, NULL, NULL, 1, NULL, NULL, NULL, 4163, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5886, 'Dragon bitter(m2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4163, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5887, 'Dragon bitter(m3)', 'This looks a good deal stronger than normal Dragon Bitter.', 1, NULL, NULL, 1, NULL, NULL, NULL, 6201, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5888, 'Dragon bitter(m3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 6201, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5889, 'Dragon bitter(m4)', 'This looks a good deal stronger than normal Dragon Bitter.', 1, NULL, NULL, 1, NULL, NULL, NULL, 8834, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5890, 'Dragon bitter(m4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8834, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5891, 'M\'light mead(m1)', 'A foul smelling brew.', 1, NULL, 2, 3, NULL, NULL, 5, 1315, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5892, 'M\'light mead(m1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1315, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5893, 'M\'light mead(m2)', 'This looks a good deal stronger than normal Moonlight Mead.', 1, NULL, 2, 3, NULL, NULL, NULL, 2543, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5894, 'M\'light mead(m2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2543, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5895, 'M\'light mead(m3)', 'This looks a good deal stronger than normal Moonlight Mead.', 1, NULL, 2, 3, NULL, NULL, NULL, 3771, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5896, 'M\'light mead(m3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3771, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5897, 'M\'light mead(m4)', 'This looks a good deal stronger than normal Moonlight Mead.', 1, NULL, 2, 3, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5898, 'M\'light mead(m4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5899, 'Axeman\'s folly(m1)', 'This looks a good deal stronger than a normal Axeman\'s Folly.', 1, NULL, NULL, 1, NULL, NULL, NULL, 13500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5900, 'Axeman\'s folly(m1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 13500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5901, 'Axeman\'s folly(m2)', 'This looks a good deal stronger than a normal Axeman\'s Folly.', 1, NULL, NULL, 1, NULL, NULL, NULL, 24800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5902, 'Axeman\'s folly(m2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 24800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5903, 'Axeman\'s folly(m3)', 'This looks a good deal stronger than a normal Axeman\'s Folly.', 1, NULL, NULL, 1, NULL, NULL, NULL, 37300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5904, 'Axeman\'s folly(m3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 37300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5905, 'Axeman\'s folly(m4)', 'This might help me chop harder.', 1, NULL, NULL, 1, NULL, NULL, NULL, 60700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5906, 'Axeman\'s folly(m4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 60700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5907, 'Chef\'s delight(m1)', 'A fruity, full-bodied ale.', 1, NULL, NULL, 1, NULL, NULL, NULL, 18000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5908, 'Chef\'s delight(m1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 18000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5909, 'Chef\'s delight(m2)', 'This looks a good deal stronger than normal Chef\'s Delight.', 1, NULL, NULL, 1, NULL, NULL, NULL, 34300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5910, 'Chef\'s delight(m2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 34300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5911, 'Chef\'s delight(m3)', 'This looks a good deal stronger than normal Chef\'s Delight.', 1, NULL, NULL, 1, NULL, NULL, NULL, 51000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5912, 'Chef\'s delight(m3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 51000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5913, 'Chef\'s delight(m4)', 'This looks a good deal stronger than normal Chef\'s Delight.', 1, NULL, NULL, 1, NULL, NULL, NULL, 98600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5914, 'Chef\'s delight(m4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 98600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5915, 'Slayer respite(m1)', 'This looks a good deal stronger than normal Slayer\'s Respite.', 1, NULL, NULL, 1, NULL, NULL, NULL, 3672, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5916, 'Slayer respite(m1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3672, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5917, 'Slayer respite(m2)', 'This looks a good deal stronger than normal Slayer\'s Respite.', 1, NULL, NULL, 1, NULL, NULL, NULL, 7258, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5918, 'Slayer respite(m2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7258, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5919, 'Slayer respite(m3)', 'This looks a good deal stronger than normal Slayer\'s Respite.', 1, NULL, NULL, 1, NULL, NULL, NULL, 10800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5920, 'Slayer respite(m3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 10800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5921, 'Slayer respite(m4)', 'This looks a good deal stronger than normal Slayer\'s Respite.', 1, NULL, NULL, 1, NULL, NULL, NULL, 15300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5922, 'Slayer respite(m4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 15300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5923, 'Cider(m1)', 'This looks a good deal stronger than normal cider.', 1, NULL, NULL, 1, NULL, NULL, NULL, 2966, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5924, 'Cider(m1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2966, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5925, 'Cider(m2)', 'This looks a good deal stronger than normal cider.', 1, NULL, NULL, 1, NULL, NULL, NULL, 5845, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5926, 'Cider(m2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5845, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5927, 'Cider(m3)', 'This looks a good deal stronger than normal cider.', 1, NULL, NULL, 1, NULL, NULL, NULL, 8724, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5928, 'Cider(m3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8724, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5929, 'Cider(m4)', 'This looks a good deal stronger than normal cider.', 1, NULL, NULL, 1, NULL, NULL, NULL, 11900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5930, 'Cider(m4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 11900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5931, 'Jute fibre', 'I can weave this to make sacks.', 1, NULL, 2, 3, NULL, NULL, NULL, 532, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(5932, 'Jute fibre', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 532, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(5933, 'Willow branch', 'A branch from a willow tree.', 1, NULL, NULL, 1, NULL, NULL, NULL, 1255, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 200, NULL, NULL, NULL, NULL, NULL, 0), +(5934, 'Willow branch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1255, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 200, NULL, NULL, NULL, NULL, NULL, 0), +(5935, 'Coconut milk', 'A vial filled with coconut milk.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1307, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5937, 'Weapon poison+', 'A vial of extra-strong weapon poison, for spears and daggers.', 1, NULL, 115, 172, NULL, NULL, NULL, 605, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5938, 'Weapon poison+', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 605, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5940, 'Weapon poison++', 'A vial of super strong weapon poison, for spears and daggers.', 1, NULL, 172, 259, NULL, NULL, NULL, 4817, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5941, 'Weapon poison++', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4817, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5943, 'Antipoison+(4)', 'N doses of extra-stong antipoison potion', 1, NULL, 144, 216, NULL, NULL, NULL, 1032, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5944, 'Antipoison+(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1032, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5945, 'Antipoison+(3)', 'N doses of extra-stong antipoison potion', 1, NULL, 144, 216, NULL, NULL, NULL, 1499, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5946, 'Antipoison+(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1499, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5947, 'Antipoison+(2)', 'N doses of extra-stong antipoison potion', 1, NULL, 144, 216, NULL, NULL, NULL, 1316, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5948, 'Antipoison+(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1316, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5949, 'Antipoison+(1)', 'N doses of extra-stong antipoison potion', 1, NULL, 144, 216, NULL, NULL, NULL, 1599, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5950, 'Antipoison+(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1599, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5952, 'Antipoison++(4)', 'X doses of a super-strong antipoison potion.', 1, NULL, 115, 172, NULL, NULL, NULL, 1138, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5953, 'Antipoison++(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1138, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5954, 'Antipoison++(3)', 'X doses of a super-strong antipoison potion.', 1, NULL, 115, 172, NULL, NULL, NULL, 1071, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5955, 'Antipoison++(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1071, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5956, 'Antipoison++(2)', 'X doses of a super-strong antipoison potion.', 1, NULL, 115, 172, NULL, NULL, NULL, 632, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5957, 'Antipoison++(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 632, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5958, 'Antipoison++(1)', 'X doses of a super-strong antipoison potion.', 1, NULL, 115, 172, NULL, NULL, NULL, 821, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5959, 'Antipoison++(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 821, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5960, 'Tomatoes(1)', 'A basket filled with tomatoes.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 663, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5961, 'Tomatoes(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5962, 'Tomatoes(2)', 'A basket filled with tomatoes.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 663, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5963, 'Tomatoes(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5964, 'Tomatoes(3)', 'A basket filled with tomatoes.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 663, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5965, 'Tomatoes(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5966, 'Tomatoes(4)', 'A basket filled with tomatoes.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 663, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5967, 'Tomatoes(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5968, 'Tomatoes(5)', 'A basket filled with tomatoes.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 335, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5969, 'Tomatoes(5)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 335, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5970, 'Curry leaf', 'I could make a spicy curry with this.', 1, NULL, 7, 11, NULL, NULL, NULL, 318, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(5971, 'Curry leaf', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 318, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(5972, 'Papaya fruit', 'Looks delicious.', 1, NULL, 25, 38, NULL, NULL, NULL, 2074, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(5973, 'Papaya fruit', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2074, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(5974, 'Coconut', 'It\'s a coconut.', 1, NULL, 34, 52, NULL, NULL, NULL, 2568, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(5975, 'Coconut', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2568, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(5976, 'Coconut', 'It\'s a coconut.', 1, NULL, 34, 52, NULL, NULL, NULL, 1258, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(5977, 'Coconut', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1258, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(5978, 'Coconut shell', 'All the milk has been removed.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 54, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5979, 'Coconut shell', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 54, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5980, 'Calquat fruit', 'This is the largest fruit I\'ve ever seen.', 1, NULL, 21, 32, NULL, NULL, NULL, 43, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5981, 'Calquat fruit', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 43, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5982, 'Watermelon', 'A juicy watermelon.', 1, NULL, 19, 28, NULL, NULL, 48, 41, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.111, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5983, 'Watermelon', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 41, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5984, 'Watermelon slice', 'A slice of watermelon.', 1, NULL, 6, 9, NULL, NULL, NULL, 40, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5985, 'Watermelon slice', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 40, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5986, 'Sweetcorn', 'Raw sweetcorn.', 1, NULL, 3, 5, NULL, NULL, NULL, 19, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5987, 'Sweetcorn', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 19, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5988, 'Cooked sweetcorn', 'Delicious cooked sweetcorn.', 1, NULL, 3, 5, NULL, NULL, NULL, 15, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5989, 'Cooked sweetcorn', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 15, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(5991, 'Burnt sweetcorn', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(5992, 'Apple mush', 'A bucket of apple mush.', 1, NULL, 5, 7, NULL, NULL, NULL, 425, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5993, 'Apple mush', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 425, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(5994, 'Hammerstone hops', 'A handful of Hammerstone hops.', 1, NULL, 1, 2, NULL, NULL, NULL, 14, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5995, 'Hammerstone hops', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 14, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5996, 'Asgarnian hops', 'A handful of Asgarnian hops.', 1, NULL, 2, 3, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5997, 'Asgarnian hops', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5998, 'Yanillian hops', 'A handful of Yanillian hops.', 1, NULL, 2, 4, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(5999, 'Yanillian hops', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6000, 'Krandorian hops', 'A handful of Krandorian hops.', 1, NULL, 4, 6, NULL, NULL, 4, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6001, 'Krandorian hops', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6002, 'Wildblood hops', 'A handful of wildblood hops.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 66, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6003, 'Wildblood hops', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 66, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6004, 'Mushroom', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 219, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6005, 'Mushroom', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 219, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6006, 'Barley', 'A handful of Barley.', 1, NULL, 1, 2, NULL, NULL, NULL, 211, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6007, 'Barley', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 211, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6008, 'Barley malt', 'A handful of barley malt.', 1, NULL, 1, 2, NULL, NULL, NULL, 410, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6009, 'Barley malt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 410, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6010, 'Marigolds', 'A bunch of marigolds.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 3326, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6011, 'Marigolds', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3326, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6012, 'Nasturtiums', 'A bunch of nasturtiums.', 1, NULL, 1, 2, NULL, NULL, NULL, 52, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6013, 'Nasturtiums', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 52, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6014, 'Rosemary', 'Some rosemary.', 1, NULL, NULL, 1, NULL, NULL, NULL, 29, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6015, 'Rosemary', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 29, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6016, 'Cactus spine', 'Don\'t prick yourself with this.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 6990, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(6017, 'Cactus spine', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 6990, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(6018, 'Poison ivy berries', 'They look sweet and juicy, but only a fool would eat them.', 1, NULL, 26, 39, NULL, NULL, NULL, 399, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(6019, 'Poison ivy berries', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 399, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(6020, 'Leaves', 'A pile of leaves.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 152, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6021, 'Leaves', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 152, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6022, 'Leaves', 'A pile of leaves.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 27, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6023, 'Leaves', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 27, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6024, 'Leaves', 'A pile of leaves.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 21, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6025, 'Leaves', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 21, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6026, 'Leaves', 'A pile of leaves.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6027, 'Leaves', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6028, 'Leaves', 'A pile of leaves.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 11, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6029, 'Leaves', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 11, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6030, 'Leaves', 'A pile of leaves.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6031, 'Leaves', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6032, 'Compost', 'Good for plants, helps them grow.', 1, NULL, 8, 12, NULL, NULL, 20, 97, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(6033, 'Compost', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 97, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(6034, 'Supercompost', 'Super-good for the smallest or largest of plants.', 1, NULL, 34, 51, NULL, NULL, NULL, 909, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(6035, 'Supercompost', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 909, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(6036, 'Plant cure', 'Use this on plants to cure disease.', 1, NULL, 16, 24, NULL, NULL, 25, 170, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6037, 'Plant cure', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 170, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6038, 'Magic string', 'I could use this to make jewellery.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1078, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6039, 'Magic string', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1078, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6040, 'Amulet of nature', 'An Amulet of Nature.', NULL, NULL, NULL, NULL, 1, 'You will need to create a new amulet if you destroy this one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6041, 'Pre-nature amulet', 'Strung with the root of a Magic Tree. If I enchant this it will become an amulet of nature.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1996, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6042, 'Pre-nature amulet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1996, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6043, 'Oak roots', 'The roots of the Oak tree.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(6044, 'Oak roots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6045, 'Willow roots', 'The roots of the Willow tree.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 41, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6046, 'Willow roots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 41, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6047, 'Maple roots', 'The roots of the Maple tree.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 40, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6048, 'Maple roots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 40, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6049, 'Yew roots', 'The roots of a yew tree', 1, NULL, NULL, NULL, NULL, NULL, NULL, 570, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6050, 'Yew roots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 570, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6051, 'Magic roots', 'The roots of a magic tree.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 5853, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6052, 'Magic roots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5853, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6054, 'Spirit roots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6055, 'Weeds', 'A handful of weeds.', 1, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6056, 'Weeds', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6057, 'Hay sack', 'A sack filled with hay. / This sack of hay has a bronze spear sticking through it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6058, 'Hay sack', 'A sack filled with hay. / This sack of hay has a bronze spear sticking through it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6059, 'Scarecrow', 'This should scare the birds.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6060, 'Stool', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6061, 'Bronze bolts(p+)', 'Bronze crossbow bolts.', 1, NULL, 1, 1, NULL, NULL, 3, 134, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,10', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(6062, 'Bronze bolts(p++)', 'Bronze crossbow bolts.', 1, NULL, 1, 1, NULL, NULL, 3, 1162, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,10', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(6064, 'Bloody mourner top', 'How do I wash blood stains out?', NULL, NULL, 8, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.72, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6065, 'Mourner top', 'A thick heavy leather top.', NULL, NULL, 60, 90, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6066, 'Mourner trousers', 'Damaged: These are in need of a good tailor.Repaired: A pair of mourner trousers.', NULL, NULL, 8, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.25, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6067, 'Mourner trousers', 'Damaged: These are in need of a good tailor.Repaired: A pair of mourner trousers.', NULL, NULL, 8, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.25, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6068, 'Mourner gloves', 'These will keep my hands warm.', NULL, NULL, 8, 12, NULL, NULL, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,0,0,0,1,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6069, 'Mourner boots', 'Comfortable leather boots.', NULL, NULL, 12, 18, NULL, NULL, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,0,0,0,1,1,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.36, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6070, 'Mourner cloak', 'A dull brown cape.', NULL, NULL, 20, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.25, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6071, 'Mourner letter', 'A letter of recommendation.', NULL, NULL, NULL, NULL, NULL, NULL, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6072, 'Tegid\'s soap', 'A bar of soap taken from Tegid.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6073, 'Prifddinas\' history', 'A book on the history of Prifddinas.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6075, 'Eastern discovery', 'A book on the exploration of the eastern realm.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6077, 'Eastern settlement', 'A book on the settlement of the eastern realm.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6079, 'The great divide', 'A book about the great divide.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6081, 'Broken device', 'A strange broken device of gnomic design.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6082, 'Fixed device', 'A device for firing dye.', NULL, NULL, 60, 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2316, 2321, 2317, 2322, 2318, 2319, 2320, 284, 3, 4, NULL, NULL, 20, NULL, 1, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6083, 'Tarnished key', 'This key has seen a lot of use. (Mourning\'s Ends Part I)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6085, 'Red dye bellows', 'A large pair of ogre bellows filled with red dye.', NULL, NULL, 8, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6086, 'Blue dye bellows', 'A large pair of ogre bellows filled with blue dye.', NULL, NULL, 8, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6087, 'Yellow dye bellows', 'A large pair of ogre bellows filled with yellow dye.', NULL, NULL, 8, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6088, 'Green dye bellows', 'A large pair of ogre bellows filled with green dye.', NULL, NULL, 8, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6089, 'Blue toad', 'A blue dye filled toad.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6090, 'Red toad', 'A red dye filled toad.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6091, 'Yellow toad', 'A yellow dye filled toad.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6092, 'Green toad', 'A green dye filled toad.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6093, 'Rotten apples', 'A barrel full of rotten apples.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 17, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6094, 'Apple barrel', 'A barrel full of mushed apples.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6095, 'Naphtha apple mix', 'A barrel full of rotten apples and naptha.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6096, 'Toxic naphtha', 'A barrel full of toxic naphtha.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 32, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6097, 'Sieve', 'It\'s a sieve.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6098, 'Toxic powder', 'A pile of toxic powder.', NULL, NULL, 20, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6099, 'Teleport crystal (4)', 'A tiny crystal enchanted to return the user to Lletya.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6100, 'Teleport crystal (3)', 'A tiny crystal enchanted to return the user to Lletya.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6101, 'Teleport crystal (2)', 'A tiny crystal enchanted to return the user to Lletya.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6102, 'Teleport crystal (1)', 'A tiny crystal enchanted to return the user to Lletya.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6103, 'Tiny elf crystal', 'A tiny Elf crystal, I need to have this re-enchanted', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6104, 'New key', 'This key is newly cut. (Mourning\'s Ends Part II)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.33, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6106, 'Ghostly boots', 'They seem to be not quite of this world...', NULL, NULL, 120, 180, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,2,0,0,0,0,2,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6107, 'Ghostly robe', 'Varies', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,5,0,0,0,0,5,0,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6108, 'Ghostly robe', 'Varies', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,4,0,0,0,0,4,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6109, 'Ghostly hood', 'A ghostly hood, fit for a ghostly head.', NULL, NULL, 120, 180, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,3,0,0,0,0,3,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6110, 'Ghostly gloves', 'They seem to fade in and out of existence...', NULL, NULL, 120, 180, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,2,0,0,0,0,2,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6111, 'Ghostly cloak', 'Made of a strange, ghostly material...', NULL, NULL, 100, 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,5,0,0,0,0,5,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6112, 'Kelda seed', 'Kelda hop seeds can only be grown underground!', NULL, NULL, NULL, NULL, 1, 'Return to the drunken dwarf\'s drunken relative to get your seeds back.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6113, 'Kelda hops', 'A handful of Kelda Hops.', NULL, NULL, 1, 2, 1, 'Return to the Keldagrim palace gardener to get your hops back.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.01, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6118, 'Kelda stout', 'A pint of bluish beer.', NULL, NULL, NULL, 1, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6119, 'Square stone', 'There is a strange [green/yellow] marking on this stone.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6120, 'Square stone', 'There is a strange [green/yellow] marking on this stone.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6122, 'A chair', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6123, 'Beer glass', 'I need to fill this with beer.', 1, NULL, NULL, 1, NULL, NULL, 1, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.05, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6124, 'Coconut milk', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6125, 'Enchanted lyre(2)', 'This will teleport me to Rellekka when I play it. A musical intrument that I can magically play.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6126, 'Enchanted lyre(3)', 'This will teleport me to Rellekka when I play it. A musical intrument that I can magically play.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6127, 'Enchanted lyre(4)', 'This will teleport me to Rellekka when I play it. A musical intrument that I can magically play.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6128, 'Rock-shell helm', 'Protective headwear made from crabs. Better than it sounds.', 1, 1, 14080, 21120, NULL, NULL, NULL, 21000, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,3', '0,0,0,-6,-2,30,32,27,-1,30,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 2.7, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6129, 'Rock-shell plate', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 40600, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,-30,-10,82,80,72,-6,80,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6130, 'Rock-shell legs', 'Some tough leggings made from rock crab parts.', 1, 1, 25600, 38400, NULL, NULL, NULL, 39400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '2,0,4', '0,0,0,-21,-7,51,49,47,-4,49,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6131, 'Spined helm', 'A helm fit for any Fremennik ranger.', 1, 1, 24000, 36000, NULL, NULL, NULL, 35800, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '-6,-6,-6,-6,6,6,6,6,6,0,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,40}', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6132, 'Spined helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 35800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6133, 'Spined body', 'A constant reminder that I\'m above a Dagannoth in the food chain.', 1, 1, 3000, 4500, NULL, NULL, NULL, 4386, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '0,6,3', '0,0,0,-15,15,40,32,45,20,40,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,40}', 6, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6134, 'Spined body', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4386, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6135, 'Spined chaps', 'Stylish leg armour for rangers with a lingering smell of raw fish...', 1, 1, 1560, 2340, NULL, NULL, NULL, 2132, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '0,4,2', '0,0,0,-10,8,22,16,24,8,22,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,40}', 5, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6136, 'Spined chaps', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2132, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6137, 'Skeletal helm', 'Make your foes cower by wearing a skull as a helmet!', 1, 1, 4000, 6000, NULL, NULL, NULL, 29500, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '3,1,0', '0,0,0,2,-2,10,9,11,3,0,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{6,40}', 1.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6138, 'Skeletal helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 29500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6139, 'Skeletal top', 'The bones in this armour seems to vibrate with a magic quality...', 1, 1, 18000, 27000, NULL, NULL, NULL, 27800, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '6,3,0', '0,0,0,8,-10,35,25,42,15,0,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{6,40}', 4.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6140, 'Skeletal top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 27800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6141, 'Skeletal bottoms', 'A superior set of strengthened slacks for any self respecting seer.', 1, 1, 16000, 24000, NULL, NULL, NULL, 23600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '4,2,0', '0,0,0,6,-7,22,20,24,10,0,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{6,40}', 4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6142, 'Skeletal bottoms', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 23600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6143, 'Spined boots', 'Some finely crafted Fremennik boots, made from spined dagannoth hide.', 1, 1, 260, 390, NULL, NULL, NULL, 1671, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,0,0,0,1,1,0,0,1,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6144, 'Spined boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1671, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6145, 'Rock-shell boots', 'Some Fremennik boots, made from the shards of a rock crab\'s shell.', 1, 1, 260, 390, NULL, NULL, NULL, 756, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,0,0,0,1,1,0,0,1,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6146, 'Rock-shell boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 756, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6147, 'Skeletal boots', 'Some finely crafted Fremennik boots, made from the bones of a Wallasalki.', 1, 1, 260, 390, NULL, NULL, NULL, 4958, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,0,0,0,1,1,0,0,1,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6148, 'Skeletal boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4958, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6149, 'Spined gloves', 'Fremennik gloves stitched together from spined dagannoth hide.', 1, 1, 260, 390, NULL, NULL, NULL, 955, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,0,0,0,1,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6150, 'Spined gloves', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 955, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6151, 'Rock-shell gloves', 'Fremennik gloves stitched together from rock crab shell shards.', 1, 1, 260, 390, NULL, NULL, NULL, 951, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,0,0,0,1,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6152, 'Rock-shell gloves', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 951, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6153, 'Skeletal gloves', 'Fremennik gloves stitched together from wallasalki bones fragments.', 1, 1, 260, 390, NULL, NULL, NULL, 21800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,0,0,0,1,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6154, 'Skeletal gloves', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 21800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6155, 'Dagannoth hide', 'A sturdy piece of dagannoth hide.', 1, NULL, 24, 36, NULL, NULL, NULL, 3978, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3.1, 500, NULL, NULL, NULL, NULL, NULL, 0), +(6156, 'Dagannoth hide', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3978, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(6157, 'Rock-shell chunk', 'A spherical chunk of rock-shell.', 1, NULL, 24, 36, NULL, NULL, NULL, 7371, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6158, 'Rock-shell chunk', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7371, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6159, 'Rock-shell shard', 'A curved piece of rock-shell.', 1, NULL, 24, 36, NULL, NULL, NULL, 11300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6160, 'Rock-shell shard', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 11300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6161, 'Rock-shell splinter', 'A slim piece of rock-shell.', 1, NULL, 24, 36, NULL, NULL, NULL, 16100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6162, 'Rock-shell splinter', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 16100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6163, 'Skull piece', 'A fearsome looking skull.', 1, NULL, 24, 36, NULL, NULL, NULL, 9859, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6164, 'Skull piece', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 9859, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6165, 'Ribcage piece', 'A slightly damaged ribcage.', 1, NULL, 24, 36, NULL, NULL, NULL, 11300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6166, 'Ribcage piece', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 11300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6167, 'Fibula piece', 'An interesting looking bone shard.', 1, NULL, 24, 36, NULL, NULL, NULL, 10300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6168, 'Fibula piece', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 10300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6169, 'Circular hide', 'A toughened chunk of dagannoth hide.', 1, NULL, 24, 36, NULL, NULL, NULL, 23400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6170, 'Circular hide', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 23400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6171, 'Flattened hide', 'A tattered chunk of dagannoth hide.', 1, NULL, 24, 36, NULL, NULL, NULL, 502, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6172, 'Flattened hide', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 502, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6173, 'Stretched hide', 'A weathered chunk of dagannoth hide.', 1, NULL, 24, 36, NULL, NULL, NULL, 398, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6174, 'Stretched hide', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 398, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6175, 'Rock-shell helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6176, 'Rock-shell plate', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6177, 'Rock-shell legs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6178, 'Raw pheasant', 'I need to cook this first.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6179, 'Raw pheasant', 'I need to cook this first.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6180, 'Lederhosen top', 'A leather strapped top.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6181, 'Lederhosen shorts', 'Brown leather shorts with bright white socks?', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6182, 'Lederhosen hat', 'A hat with a goat\'s hair attached.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6183, 'Frog token', 'I can use this at the Varrock clothes shop.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6184, 'Prince tunic', 'Very posh!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6185, 'Prince leggings', 'Very posh!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6186, 'Princess blouse', 'Very posh!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6187, 'Princess skirt', 'Very posh!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6188, 'Frog mask', 'Now that\'s just silly.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6199, 'Mystery box', 'Could there be something valuable in here?', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 2, NULL, 0), +(6200, 'Raw fishlike thing', 'A raw...fish? Is this a fish??', NULL, NULL, NULL, NULL, 1, 'A ghastly fish', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6201, 'Picture', 'Fish-tastic!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6202, 'Fishlike thing', 'It\'s a fish-like thing that appears to already be cooked. It looks disgusting.', NULL, NULL, NULL, NULL, 1, 'A ghastly fish', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6204, 'Raw fishlike thing', 'A raw...fish? Is this a fish??', NULL, NULL, NULL, NULL, 1, 'A ghastly fish', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6206, 'Fishlike thing', 'It\'s a fish-like thing that appears to already be cooked. It looks disgusting.', NULL, NULL, NULL, NULL, 1, 'A ghastly fish', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6208, 'Man speak amulet', 'It\'s an amulet of Man speak. It makes vague grunting noises.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6209, 'Small fishing net', 'Useful for catching small fish.', 1, NULL, 2, 3, NULL, NULL, 40, 433, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6211, 'Teak pyre logs', 'Teak logs prepared with sacred oil for a funeral pyre.', 1, NULL, 40, 60, NULL, NULL, NULL, 3365, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6212, 'Teak pyre logs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3365, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6213, 'Mahogany pyre log', 'Mahogany logs prepared with sacred oil for a funeral pyre.', 1, NULL, 80, 120, NULL, NULL, NULL, 3574, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6214, 'Mahogany pyre log', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3574, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6215, 'Broodoo shield (10)', 'A scary broodoo shield.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 2007, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '4,2,0', '0,0,0,3,-7,10,10,15,5,0,20,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,25}', 5.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6216, 'Broodoo shield (10)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2007, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6217, 'Broodoo shield (9)', 'A scary broodoo shield.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '4,2,0', '0,0,0,3,-7,10,10,15,5,0,20,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,25}', 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6218, 'Broodoo shield (9)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6219, 'Broodoo shield (8)', 'A scary broodoo shield.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '4,2,0', '0,0,0,3,-7,10,10,15,5,0,20,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,25}', 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6220, 'Broodoo shield (8)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6221, 'Broodoo shield (7)', 'A scary broodoo shield.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '4,2,0', '0,0,0,3,-7,10,10,15,5,0,20,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,25}', 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6222, 'Broodoo shield (7)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6223, 'Broodoo shield (6)', 'A scary broodoo shield.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '4,2,0', '0,0,0,3,-7,10,10,15,5,0,20,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,25}', 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6224, 'Broodoo shield (6)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6225, 'Broodoo shield (5)', 'A scary broodoo shield.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '4,2,0', '0,0,0,3,-7,10,10,15,5,0,20,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,25}', 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6226, 'Broodoo shield (5)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6227, 'Broodoo shield (4)', 'A scary broodoo shield.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '4,2,0', '0,0,0,3,-7,10,10,15,5,0,20,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,25}', 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6228, 'Broodoo shield (4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6229, 'Broodoo shield (3)', 'A scary broodoo shield.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '4,2,0', '0,0,0,3,-7,10,10,15,5,0,20,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,25}', 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6230, 'Broodoo shield (3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6231, 'Broodoo shield (2)', 'A scary broodoo shield.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '4,2,0', '0,0,0,3,-7,10,10,15,5,0,20,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,25}', 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6232, 'Broodoo shield (2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6233, 'Broodoo shield (1)', 'A scary broodoo shield.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '4,2,0', '0,0,0,3,-7,10,10,15,5,0,20,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,25}', 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6234, 'Broodoo shield (1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6235, 'Broodoo shield', 'A scary broodoo shield.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 2572, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '4,2,0', '0,0,0,3,-7,10,10,15,5,0,20,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,25}', 5.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6236, 'Broodoo shield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2572, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6237, 'Broodoo shield (10)', 'A scary broodoo shield.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 2200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '4,2,0', '0,0,0,3,-7,10,10,15,5,0,20,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,25}', 5.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6238, 'Broodoo shield (10)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6239, 'Broodoo shield (9)', 'A scary broodoo shield.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '4,2,0', '0,0,0,3,-7,10,10,15,5,0,20,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,25}', 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6240, 'Broodoo shield (9)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6241, 'Broodoo shield (8)', 'A scary broodoo shield.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '4,2,0', '0,0,0,3,-7,10,10,15,5,0,20,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,25}', 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6242, 'Broodoo shield (8)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(6243, 'Broodoo shield (7)', 'A scary broodoo shield.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '4,2,0', '0,0,0,3,-7,10,10,15,5,0,20,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,25}', 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6244, 'Broodoo shield (7)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6245, 'Broodoo shield (6)', 'A scary broodoo shield.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '4,2,0', '0,0,0,3,-7,10,10,15,5,0,20,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,25}', 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6246, 'Broodoo shield (6)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6247, 'Broodoo shield (5)', 'A scary broodoo shield.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '4,2,0', '0,0,0,3,-7,10,10,15,5,0,20,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,25}', 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6248, 'Broodoo shield (5)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6249, 'Broodoo shield (4)', 'A scary broodoo shield.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '4,2,0', '0,0,0,3,-7,10,10,15,5,0,20,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,25}', 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6250, 'Broodoo shield (4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6251, 'Broodoo shield (3)', 'A scary broodoo shield.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '4,2,0', '0,0,0,3,-7,10,10,15,5,0,20,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,25}', 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6252, 'Broodoo shield (3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6253, 'Broodoo shield (2)', 'A scary broodoo shield.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '4,2,0', '0,0,0,3,-7,10,10,15,5,0,20,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,25}', 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6254, 'Broodoo shield (2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6255, 'Broodoo shield (1)', 'A scary broodoo shield.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '4,2,0', '0,0,0,3,-7,10,10,15,5,0,20,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,25}', 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6256, 'Broodoo shield (1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6257, 'Broodoo shield', 'A scary broodoo shield.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 2731, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '4,2,0', '0,0,0,3,-7,10,10,15,5,0,20,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,25}', 5.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6258, 'Broodoo shield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2731, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6259, 'Broodoo shield (10)', 'A scary broodoo shield.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 1494, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '4,2,0', '0,0,0,3,-7,10,10,15,5,0,20,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,25}', 5.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6260, 'Broodoo shield (10)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1494, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '7060', NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6261, 'Broodoo shield (9)', 'A scary broodoo shield.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '4,2,0', '0,0,0,3,-7,10,10,15,5,0,20,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,25}', 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6262, 'Broodoo shield (9)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6263, 'Broodoo shield (8)', 'A scary broodoo shield.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '4,2,0', '0,0,0,3,-7,10,10,15,5,0,20,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,25}', 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6264, 'Broodoo shield (8)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6265, 'Broodoo shield (7)', 'A scary broodoo shield.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '4,2,0', '0,0,0,3,-7,10,10,15,5,0,20,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,25}', 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6266, 'Broodoo shield (7)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6267, 'Broodoo shield (6)', 'A scary broodoo shield.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '4,2,0', '0,0,0,3,-7,10,10,15,5,0,20,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,25}', 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6268, 'Broodoo shield (6)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6269, 'Broodoo shield (5)', 'A scary broodoo shield.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '4,2,0', '0,0,0,3,-7,10,10,15,5,0,20,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,25}', 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6270, 'Broodoo shield (5)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6271, 'Broodoo shield (4)', 'A scary broodoo shield.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '4,2,0', '0,0,0,3,-7,10,10,15,5,0,20,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,25}', 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6272, 'Broodoo shield (4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6273, 'Broodoo shield (3)', 'A scary broodoo shield.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '4,2,0', '0,0,0,3,-7,10,10,15,5,0,20,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,25}', 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6274, 'Broodoo shield (3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6275, 'Broodoo shield (2)', 'A scary broodoo shield.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '4,2,0', '0,0,0,3,-7,10,10,15,5,0,20,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,25}', 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6276, 'Broodoo shield (2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6277, 'Broodoo shield (1)', 'A scary broodoo shield.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '4,2,0', '0,0,0,3,-7,10,10,15,5,0,20,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,25}', 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6278, 'Broodoo shield (1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6279, 'Broodoo shield', 'A scary broodoo shield.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 2957, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '4,2,0', '0,0,0,3,-7,10,10,15,5,0,20,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,25}', 5.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6280, 'Broodoo shield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2957, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6281, 'Thatch spar light', 'A wooden pole for use in primitive construction.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6282, 'Thatch spar light', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6283, 'Thatch spar med', 'A wooden pole for use in primitive construction.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6284, 'Thatch spar med', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6285, 'Thatch spar dense', 'A wooden pole for use in primitive construction.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6286, 'Thatch spar dense', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6287, 'Snake hide', 'Scaly but not slimy!', 1, NULL, 14, 21, NULL, NULL, NULL, 2084, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(6288, 'Snake hide', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2084, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(6289, 'Snakeskin', 'Scaley but not slimy!', 1, NULL, 20, 30, NULL, NULL, NULL, 2019, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(6290, 'Snakeskin', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2019, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(6291, 'Spider carcass', 'Its creeping days are over!', 1, NULL, 6, 9, NULL, NULL, NULL, 1949, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.8, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6292, 'Spider carcass', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1949, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6293, 'Spider on stick', 'Raw: A raw spider threaded onto a skewer stick.Cooked: A nicely roasted spider threaded onto a skewer stick.', 1, NULL, 20, 30, NULL, NULL, 50, 207, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6294, 'Spider on stick', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 207, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6295, 'Spider on shaft', 'A raw spider threaded onto an arrow shaft. (Raw) A nicely roasted spider threaded onto an arrow shaft. (Cooked) A badly burnt spider threaded onto a charred arrow shaft. (Burnt)', 1, NULL, 16, 24, NULL, NULL, 40, 106, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6296, 'Spider on shaft', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 106, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6297, 'Spider on stick', 'Raw: A raw spider threaded onto a skewer stick.Cooked: A nicely roasted spider threaded onto a skewer stick.', 1, NULL, 20, 30, NULL, NULL, 50, 54, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6298, 'Spider on stick', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 54, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6299, 'Spider on shaft', 'A raw spider threaded onto an arrow shaft. (Raw) A nicely roasted spider threaded onto an arrow shaft. (Cooked) A badly burnt spider threaded onto a charred arrow shaft. (Burnt)', 1, NULL, 16, 24, NULL, NULL, 40, 78, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6300, 'Spider on shaft', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 78, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6302, 'Burnt spider', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6303, 'Spider on shaft', 'A raw spider threaded onto an arrow shaft. (Raw) A nicely roasted spider threaded onto an arrow shaft. (Cooked) A badly burnt spider threaded onto a charred arrow shaft. (Burnt)', 1, NULL, 16, 24, NULL, NULL, 40, 106, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6304, 'Spider on shaft', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6305, 'Skewer stick', 'A sharp pointed stick, quite resistant to fire.', 1, NULL, 4, 6, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6306, 'Trading sticks', 'Karamja currency.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(6311, 'Gout tuber', 'Plant this in a herb patch to grow Goutweed.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 6991, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6312, 'Gout tuber', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 6991, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6313, 'Opal machete', 'A jungle specific slashing device.', 1, NULL, 200, 300, NULL, NULL, 500, 179, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2554, 3, NULL, NULL, '0,8,-2,0,0,0,1,1,0,0,0,4,0,0,0', 6, NULL, NULL, NULL, NULL, NULL, NULL, 1.35, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6314, 'Opal machete', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 179, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6315, 'Jade machete', 'A jungle specific slashing device.', 1, NULL, 400, 600, NULL, NULL, 1000, 4473, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2554, 3, NULL, NULL, '0,11,-2,0,0,0,1,1,0,0,0,6,0,0,0', 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6316, 'Jade machete', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4473, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6317, 'Red topaz machete', 'A jungle specific slashing device.', 1, NULL, 800, 1200, NULL, NULL, 2000, 8774, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2554, 3, 4, NULL, '0,16,-2,0,0,0,1,1,0,0,0,10,0,0,0', 6, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6318, 'Red topaz machete', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8774, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6319, 'Proboscis', 'A giant mosquito\'s proboscis: aerodynamic, sharp and pointy!', 1, NULL, 2, 3, NULL, NULL, NULL, 9733, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6322, 'Snakeskin body', 'Made from 100% real snakeskin.', 1, NULL, 500, 750, NULL, NULL, 1588, 23100, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '0,4,2', '0,0,0,-5,12,25,28,32,15,35,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}-{4,30}', 10, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6323, 'Snakeskin body', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 23100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6324, 'Snakeskin chaps', 'Made from 100% real snake.', 1, NULL, 470, 705, NULL, NULL, NULL, 702, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '0,3,1', '0,0,0,-5,6,8,8,10,4,10,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}-{4,30}', 3.6, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6325, 'Snakeskin chaps', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 702, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6326, 'Snakeskin bandana', 'Lightweight head protection.', 1, NULL, 120, 180, NULL, NULL, NULL, 871, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,2,1', '0,0,0,-5,4,2,4,4,2,2,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}-{4,30}', 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6327, 'Snakeskin bandana', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 871, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6328, 'Snakeskin boots', 'Made from snakes.', 1, NULL, 100, 150, NULL, NULL, NULL, 10800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,-10,3,1,1,2,1,0,9,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}-{4,30}', 0.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6329, 'Snakeskin boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 10800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6330, 'Snakeskin v\'brace', 'Made from 100% real snake.', 1, NULL, 173, 260, NULL, NULL, NULL, 914, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,-5,6,2,2,2,1,0,1,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}-{4,30}', 1, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(6331, 'Snakeskin v\'brace', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 914, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(6332, 'Mahogany logs', 'Some well-cut mahogany logs.', 1, NULL, 20, 30, NULL, NULL, NULL, 503, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.33, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(6333, 'Teak logs', 'Some well-cut teak logs.', 1, NULL, 12, 18, NULL, NULL, NULL, 92, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.35, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(6334, 'Teak logs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 92, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(6335, 'Tribal mask', 'A ceremonial wooden mask.', 1, NULL, 200, 300, NULL, NULL, NULL, 1306, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6336, 'Tribal mask', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1306, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6337, 'Tribal mask', 'A ceremonial wooden mask.', 1, NULL, 200, 300, NULL, NULL, NULL, 997, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6338, 'Tribal mask', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 997, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6339, 'Tribal mask', 'A ceremonial wooden mask.', 1, NULL, 200, 300, NULL, NULL, NULL, 1018, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6340, 'Tribal mask', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1018, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6341, 'Tribal top', 'Local dress.', 1, NULL, 120, 180, NULL, NULL, 300, 3331, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6342, 'Tribal top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3331, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6343, 'Villager robe', 'A brightly coloured robe prized by the Tai Bwo Wannai peoples.', 1, NULL, 100, 150, NULL, NULL, 250, 1382, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6344, 'Villager robe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1382, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6345, 'Villager hat', 'A brightly coloured hat prized by the Tai Bwo Wannai peoples.', 1, NULL, 80, 120, NULL, NULL, 200, 2337, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6346, 'Villager hat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2337, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6347, 'Villager armband', 'A <colour> armband, as worn by the Tai Bwo Wannai locals.', 1, NULL, 60, 90, NULL, NULL, 150, 734, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6348, 'Villager armband', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 734, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6349, 'Villager sandals', 'A brightly coloured pair of local sandals.', 1, NULL, 40, 60, NULL, NULL, 100, 2793, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.6, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6350, 'Villager sandals', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2793, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6351, 'Tribal top', 'Local dress.', 1, NULL, 120, 180, NULL, NULL, 300, 3171, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6352, 'Tribal top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3171, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6353, 'Villager robe', 'A brightly coloured robe prized by the Tai Bwo Wannai peoples.', 1, NULL, 100, 150, NULL, NULL, 250, 1416, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6354, 'Villager robe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1416, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6355, 'Villager hat', 'A brightly coloured hat prized by the Tai Bwo Wannai peoples.', 1, NULL, 80, 120, NULL, NULL, 200, 2785, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6356, 'Villager hat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2785, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6357, 'Villager sandals', 'A brightly coloured pair of local sandals.', 1, NULL, 40, 60, NULL, NULL, 100, 944, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.6, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6358, 'Villager sandals', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 944, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6359, 'Villager armband', 'A <colour> armband, as worn by the Tai Bwo Wannai locals.', 1, NULL, 60, 90, NULL, NULL, 150, 672, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6360, 'Villager armband', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 672, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6361, 'Tribal top', 'Local dress.', 1, NULL, 120, 180, NULL, NULL, 300, 2484, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6362, 'Tribal top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2484, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6363, 'Villager robe', 'A brightly coloured robe prized by the Tai Bwo Wannai peoples.', 1, NULL, 100, 150, NULL, NULL, 250, 499, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6364, 'Villager robe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 499, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6365, 'Villager hat', 'A brightly coloured hat prized by the Tai Bwo Wannai peoples.', 1, NULL, 80, 120, NULL, NULL, 200, 2440, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6366, 'Villager hat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2440, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6367, 'Villager sandals', 'A brightly coloured pair of local sandals.', 1, NULL, 40, 60, NULL, NULL, 100, 1479, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.6, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6368, 'Villager sandals', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1479, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6369, 'Villager armband', 'A <colour> armband, as worn by the Tai Bwo Wannai locals.', 1, NULL, 60, 90, NULL, NULL, 150, 823, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6370, 'Villager armband', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 823, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6371, 'Tribal top', 'Local dress.', 1, NULL, 120, 180, NULL, NULL, 300, 2683, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6372, 'Tribal top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2683, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6373, 'Villager robe', 'A brightly coloured robe prized by the Tai Bwo Wannai peoples.', 1, NULL, 100, 150, NULL, NULL, 250, 331, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6374, 'Villager robe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 331, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6375, 'Villager hat', 'A brightly coloured hat prized by the Tai Bwo Wannai peoples.', 1, NULL, 80, 120, NULL, NULL, 200, 3010, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6376, 'Villager hat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3010, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6377, 'Villager sandals', 'A brightly coloured pair of local sandals.', 1, NULL, 40, 60, NULL, NULL, 100, 2310, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.6, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6378, 'Villager sandals', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2310, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6379, 'Villager armband', 'A <colour> armband, as worn by the Tai Bwo Wannai locals.', 1, NULL, 60, 90, NULL, NULL, 150, 1697, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6380, 'Villager armband', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1697, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6382, 'Fez', 'A fez hat. Juss like that.', 1, NULL, 8, 12, NULL, NULL, 24, 690, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6383, 'Fez', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 690, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6384, 'Desert top', 'A bit itchy.', 1, NULL, 14, 21, NULL, NULL, 15, 649, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6385, 'Desert top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 649, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6386, 'Desert robes', 'Has a coarse hard wearing texture.', 1, NULL, 10, 15, NULL, NULL, 25, 533, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6387, 'Desert robes', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 533, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6388, 'Desert top', 'A bit itchy.', 1, NULL, 14, 21, NULL, NULL, 15, 1016, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6389, 'Desert top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1016, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6390, 'Desert legs', 'Better than factor 50 sun cream.', 1, NULL, 10, 15, NULL, NULL, 25, 515, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6391, 'Desert legs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 515, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6392, 'Menap headgear', 'Good for keeping the sun off my neck.', 1, NULL, 14, 21, NULL, NULL, 35, 531, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6393, 'Menap headgear', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 531, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6394, 'Menaphite top', 'Colourful.', 1, NULL, 8, 12, NULL, NULL, 20, 650, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6395, 'Menaphite top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 650, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6396, 'Menaphite robe', 'A cool light Menaphite robe.', 1, NULL, 16, 24, NULL, NULL, 40, 440, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6397, 'Menaphite robe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 440, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6398, 'Menap action kilt', 'Look at those nobbily knees.', 1, NULL, 8, 12, NULL, NULL, 20, 246, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6399, 'Menap action kilt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 246, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6400, 'Menap headgear', 'Good for keeping the sun off my neck.', 1, NULL, 14, 21, NULL, NULL, 35, 484, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6401, 'Menap headgear', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 484, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6402, 'Menaphite top', 'Colourful.', 1, NULL, 8, 12, NULL, NULL, 20, 557, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6403, 'Menaphite top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 557, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6404, 'Menaphite robe', 'A cool light Menaphite robe.', 1, NULL, 16, 24, NULL, NULL, 40, 449, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6405, 'Menaphite robe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 449, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6406, 'Menap action kilt', 'Look at those nobbily knees.', 1, NULL, 8, 12, NULL, NULL, 20, 236, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6407, 'Menap action kilt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 236, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6408, 'Oak blackjack(o)', 'An offensive blackjack.', 1, NULL, 160, 240, NULL, NULL, 400, 852, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, '0,0,4,0,0,0,0,0,0,0,0,4,0,0,0', 10, NULL, NULL, NULL, NULL, NULL, '{17,10}-{0,10}', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6409, 'Oak blackjack(o)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 852, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6410, 'Oak blackjack(d)', 'An defensive blackjack.', 1, NULL, 160, 240, NULL, NULL, NULL, 818, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, '0,0,0,0,0,0,0,4,0,0,0,4,0,0,0', 10, NULL, NULL, NULL, NULL, NULL, '{17,10}-{1,10}', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6411, 'Oak blackjack(d)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 818, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6412, 'Willow blackjack(o)', 'An offensive blackjack.', 1, NULL, 320, 480, NULL, NULL, NULL, 1418, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, '0,0,8,0,0,0,0,0,0,0,0,8,0,0,0', 10, NULL, NULL, NULL, NULL, NULL, '{17,20}-{0,20}', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6413, 'Willow blackjack(o)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1418, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6414, 'Willow blackjack(d)', 'A defensive blackjack.', 1, NULL, 320, 480, NULL, NULL, NULL, 1285, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, '0,0,0,0,0,0,0,8,0,0,0,8,0,0,0', 10, NULL, NULL, NULL, NULL, NULL, '{17,20}-{1,20}', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6415, 'Willow blackjack(d)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1285, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6416, 'Maple blackjack', 'A solid bit of maple.', 1, NULL, 480, 720, NULL, NULL, 1200, 1432, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, '0,0,0,0,0,0,0,0,0,0,0,20,0,0,0', 10, NULL, NULL, NULL, NULL, NULL, '{17,30}', 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6417, 'Maple blackjack', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1432, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6418, 'Maple blackjack(o)', 'An offensive blackjack.', 1, NULL, 640, 960, NULL, NULL, 1600, 2079, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, '0,0,24,0,0,0,0,0,0,0,0,20,0,0,0', 10, NULL, NULL, NULL, NULL, NULL, '{17,30}-{0,30}', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6419, 'Maple blackjack(o)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2079, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6420, 'Maple blackjack(d)', 'A defensive blackjack.', 1, NULL, 640, 960, NULL, NULL, 952, 2407, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, '0,0,0,0,0,0,0,24,0,0,0,20,0,0,0', 10, NULL, NULL, NULL, NULL, NULL, '{17,30}-{1,30}', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6421, 'Maple blackjack(d)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2407, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6422, 'Air rune', 'One of the 4 basic elemental Runes.', 1, NULL, 2, 3, NULL, NULL, 17, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6423, 'Air rune', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6424, 'Water rune', 'One of the 4 basic elemental Runes.', 1, NULL, 2, 3, NULL, NULL, 17, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6425, 'Water rune', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6426, 'Earth rune', 'One of the 4 basic elemental Runes.', 1, NULL, 2, 3, NULL, NULL, 17, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6427, 'Earth rune', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6428, 'Fire rune', 'One of the 4 basic elemental Runes.', 1, NULL, 2, 3, NULL, NULL, 17, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6429, 'Fire rune', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6430, 'Chaos rune', 'Used for small missile spells.', 1, NULL, 18, 28, NULL, NULL, 140, 65, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(6431, 'Chaos rune', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6432, 'Death rune', 'Used for medium missile spells.', 1, NULL, 41, 62, NULL, NULL, 310, 399, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6433, 'Death rune', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6434, 'Law rune', 'Used for teleport spells.', 1, NULL, 50, 75, NULL, NULL, 378, 277, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6435, 'Law rune', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6436, 'Mind rune', 'Used for basic missile spells.', 1, NULL, 2, 3, NULL, NULL, 17, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6437, 'Mind rune', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6438, 'Body rune', 'Used for Curse spells', 1, NULL, 2, 3, NULL, NULL, 16, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6439, 'Body rune', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6448, 'Spadeful of coke', 'A spadeful of refined coal.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6453, 'White rose seed', 'A white rosebush seed.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28.928, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6454, 'Red rose seed', 'A red rosebush seed.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6455, 'Pink rose seed', 'A pink rosebush seed.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6456, 'Vine seed', 'A grapevine seed.', NULL, NULL, NULL, NULL, 1, 'You can get some more Burthorpe vine seeds from Berald in Taverly.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6457, 'Delphinium seed', 'A delphinium seed.', NULL, NULL, 1, 1, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6460, 'Snowdrop seed', 'A snowdrop seed.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6461, 'White tree shoot', 'Shoot: A shoot that has been cut from a dying White Tree.Plant pot: A young White Tree sapling.Plant pot after watering: This shoot from a White Tree has been watered and will soon grow.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6462, 'White tree shoot', 'Shoot: A shoot that has been cut from a dying White Tree.Plant pot: A young White Tree sapling.Plant pot after watering: This shoot from a White Tree has been watered and will soon grow.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6463, 'White tree shoot', 'Shoot: A shoot that has been cut from a dying White Tree.Plant pot: A young White Tree sapling.Plant pot after watering: This shoot from a White Tree has been watered and will soon grow.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6464, 'White tree sapling', 'A young White Tree sapling', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6465, 'Ring of charos(a)', 'Unactivated: The Ring of charos.Activated: The power within this ring has been activated.', NULL, NULL, NULL, NULL, 1, 'Another can be received from pickpocketing Dr. Fenkenstrain in the tower.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6466, 'Rune shards', 'A rune essence chip that has been broken into shards.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6467, 'Rune dust', 'Crushed rune essence.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6468, 'Plant cure', 'Use this on plants to cure disease.', 1, NULL, 16, 24, NULL, NULL, 25, 199, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6469, 'White tree fruit', 'Looks delicious.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6470, 'Compost potion(4)', 'Pour this onto compost to make it into super-compost.', 1, NULL, 48, 72, NULL, NULL, NULL, 11500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6471, 'Compost potion(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 11500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6472, 'Compost potion(3)', 'Pour this onto compost to make it into super-compost.', 1, NULL, 48, 72, NULL, NULL, NULL, 6804, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6473, 'Compost potion(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 6804, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6474, 'Compost potion(2)', 'Pour this onto compost to make it into super-compost.', 1, NULL, 48, 72, NULL, NULL, NULL, 3338, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6475, 'Compost potion(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3338, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6476, 'Compost potion(1)', 'Pour this onto compost to make it into super-compost.', 1, NULL, 48, 72, NULL, NULL, NULL, 1734, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6477, 'Compost potion(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1734, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6478, 'Trolley', 'I can use this to move heavy objects. (or) An empty trolley.', NULL, NULL, NULL, NULL, 1, 'You can get another one from Queen Ellamaria', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6479, 'List', 'A list of things that I must collect for Queen Ellamaria.', NULL, NULL, NULL, NULL, 1, 'You can get another list from Queen Ellamaria in Varrock', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6522, 'Toktz-xil-ul', 'A razor sharp ring of obsidian.', 1, NULL, 100, 150, NULL, NULL, 375, 340, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, '0,0,0,0,69,0,0,0,0,0,0,0,0,0,49', 18, NULL, NULL, '2614,2614,2614,2614', 424, NULL, '{4,60}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6523, 'Toktz-xil-ak', 'A razor sharp sword of obsidian.', 1, NULL, 16000, 24000, NULL, NULL, 60000, 30200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, '47,38,-2,0,0,2,3,0,0,0,0,49,0,0,0', 5, NULL, NULL, '390,390,381,390', 397, NULL, '{0,60}', 1.8, 10, NULL, NULL, NULL, NULL, NULL, 0), +(6524, 'Toktz-ket-xil', 'A spiked shield of Obsidian.', 1, NULL, 18000, 27000, NULL, NULL, 67500, 34700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '5,0,11', '0,0,0,-12,-8,40,42,38,0,65,60,5,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}', 3.6, 10, NULL, NULL, NULL, NULL, NULL, 0), +(6525, 'Toktz-xil-ek', 'A large knife of Obsidian.', 1, NULL, 10000, 15000, NULL, NULL, 37500, 16900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '16,48,0,0,0,0,0,0,0,0,0,39,0,0,0', 6, NULL, NULL, '390,390,381,390', 397, NULL, '{0,60}', 0.4, 10, NULL, NULL, NULL, NULL, NULL, 0), +(6526, 'Toktz-mej-tal', 'A staff of obsidian.', 1, NULL, 14000, 21000, NULL, NULL, 52500, 26300, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 6, NULL, '15,-1,55,15,0,10,15,5,15,0,0,55,5,0,0', 1, NULL, 1, '390,390,381,390', 397, NULL, '{0,60}-{6,60}', 1, 10, NULL, NULL, NULL, NULL, NULL, 0), +(6527, 'Tzhaar-ket-em', 'A mace of obsidian.', 1, NULL, 12000, 18000, NULL, NULL, 45000, 22600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '-4,-4,62,0,0,0,0,0,0,0,0,56,0,0,0', 10, NULL, NULL, '390,390,381,390', 397, NULL, '{0,60}', 1.8, 10, NULL, NULL, NULL, NULL, NULL, 0), +(6528, 'Tzhaar-ket-om', 'A maul of obsidian.', 1, NULL, 20000, 30000, NULL, NULL, 75000, 31000, NULL, NULL, NULL, 1662, 823, 1663, 1664, 1663, 1663, 1663, 27, 3, 7, NULL, '0,0,80,-4,0,0,0,0,0,0,0,85,0,0,0', 10, NULL, 1, '2661,2661,2661,2661', 1666, '2520,0,0,0', '{2,60}', 3.6, 10, NULL, NULL, NULL, NULL, NULL, 0), +(6529, 'Tokkul', 'It\'s a Token of some kind made from Obsidian.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6535, 'Toktz-xil-ak', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6536, 'Toktz-ket-xil', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6537, 'Toktz-xil-ek', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6538, 'Toktz-mej-tal', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6539, 'Tzhaar-ket-em', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6540, 'Tzhaar-ket-om', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6541, 'Mouse toy', 'An Advanced Combat Training Device.', NULL, NULL, NULL, NULL, 1, 'You can get a replacement mouse toy by speaking to Bob, the Jagex cat.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, '-100,-100,-50,0,0,0,0,0,0,0,0,-10,0,0,0', 12, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6542, 'Present', 'Thanks for all your help! Love, Bob & Neite.', NULL, NULL, NULL, NULL, 1, 'You will not get a replacement for the present. Open it for your reward.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6543, 'Antique lamp', 'I wonder what happens if I rub it.', NULL, NULL, NULL, NULL, 1, 'Are you sure you want to destroy the lamp? You won\'t be able to get another one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6544, 'Catspeak amulet(e)', 'It\'s an amulet of cat speak. It makes vague purring noises.', NULL, NULL, NULL, NULL, 1, 'You can get another Amulet of Catspeak from the Sphinx in Sophanem.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6545, 'Chores', 'A list of chores that Bob gave you to do.', NULL, NULL, NULL, NULL, 1, 'You have completed the chores; you can safely destroy the list.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6546, 'Recipe', 'It says on the back \'My favourite recipe.\'', NULL, NULL, NULL, NULL, 1, 'You found the recipe in Unferth\'s bookcase, which is in his Burthorpe house, you will be able to get a replacement.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6547, 'Doctors hat', 'A mirror helps reflect light on the subject.', NULL, NULL, NULL, NULL, 1, 'You can get another Doctor\'s hat from the Apothecary in Varrock.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6548, 'Nurse hat', 'A nurse\'s hat, but does it have healing powers?', NULL, NULL, NULL, NULL, 1, 'You can get another Nurse\'s hat from the Apothecary in Varrock.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6549, 'Lazy cat', 'Inventory: Wild. (wily)Lethargic. (lazy)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6550, 'Lazy cat', 'Inventory: Wild. (wily)Lethargic. (lazy)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6551, 'Lazy cat', 'Inventory: Wild. (wily)Lethargic. (lazy)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6552, 'Lazy cat', 'Inventory: Wild. (wily)Lethargic. (lazy)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6553, 'Lazy cat', 'Inventory: Wild. (wily)Lethargic. (lazy)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6554, 'Lazy cat', 'Inventory: Wild. (wily)Lethargic. (lazy)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6555, 'Wily cat', 'Inventory: Wild. (wily)Lethargic. (lazy)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6556, 'Wily cat', 'Inventory: Wild. (wily)Lethargic. (lazy)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6557, 'Wily cat', 'Inventory: Wild. (wily)Lethargic. (lazy)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6558, 'Wily cat', 'Inventory: Wild. (wily)Lethargic. (lazy)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6559, 'Wily cat', 'Inventory: Wild. (wily)Lethargic. (lazy)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6560, 'Wily cat', 'Inventory: Wild. (wily)Lethargic. (lazy)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6562, 'Mud battlestaff', 'It\'s a slightly magical stick.', 1, NULL, 6800, 10200, NULL, NULL, NULL, 368700, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '7,-1,28,10,0,2,3,1,10,0,0,35,0,0,0', 1, NULL, NULL, NULL, NULL, '2555,0,0,0', '{0,30}-{6,30}', 2.2, 10, NULL, 1, NULL, NULL, NULL, 0), +(6563, 'Mystic mud staff', 'It\'s a slightly magical stick.', 1, NULL, 18000, 27000, NULL, NULL, 40000, 423100, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '10,-1,40,10,0,2,3,1,10,0,0,50,0,0,0', 1, NULL, NULL, NULL, NULL, '2555,0,0,0', '{0,40}-{6,40}', 2, 10, NULL, NULL, NULL, NULL, NULL, 0), +(6564, 'Onyx ring', 'A valuable ring.', 1, NULL, 80400, 120600, NULL, NULL, NULL, 6609743, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6565, 'Onyx necklace', 'I wonder if this is valuable.', 1, NULL, 80400, 120600, NULL, NULL, NULL, 4501000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6566, 'Onyx amulet', 'I wonder if I can get this enchanted.', 1, NULL, 80800, 121200, NULL, NULL, NULL, 9058124, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6568, 'Obsidian cape', 'A cape woven of obsidian plates.', 1, 1, 24000, 36000, NULL, NULL, 90000, 42000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6569, 'Obsidian cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 42000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6570, 'Fire cape', 'A cape of fire.', NULL, NULL, 24000, 36000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '1,1,1,1,1,11,11,11,11,11,11,4,2,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6571, 'Uncut onyx', 'An uncut onyx.', 1, NULL, 120000, 180000, NULL, NULL, 2700000, 10700000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, 300000, NULL, NULL, 0), +(6572, 'Uncut onyx', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 10700000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6573, 'Onyx', 'This looks valuable.', 1, NULL, 120000, 180000, NULL, NULL, NULL, 10700000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6574, 'Onyx', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 10700000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6575, 'Onyx ring', 'A valuable ring.', 1, NULL, 80400, 120600, NULL, NULL, NULL, 11900000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6576, 'Onyx ring', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 11900000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6577, 'Onyx necklace', 'I wonder if this is valuable.', 1, NULL, 80400, 120600, NULL, NULL, NULL, 4500000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6578, 'Onyx necklace', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4500000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6579, 'Onyx amulet', 'I wonder if I can get this enchanted.', 1, NULL, 80800, 121200, NULL, NULL, NULL, 9058124, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6580, 'Onyx amulet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6581, 'Onyx amulet', 'I wonder if I can get this enchanted.', 1, NULL, 80800, 121200, NULL, NULL, NULL, 10900000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6582, 'Onyx amulet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 10900000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6583, 'Ring of stone', 'An enchanted ring.', 1, NULL, 80800, 121200, NULL, NULL, NULL, 803700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6584, 'Ring of stone', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 803700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6585, 'Amulet of fury', 'A very powerful onyx amulet.', 1, 1, 80800, 121200, NULL, NULL, NULL, 9200000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '10,10,10,10,10,15,15,15,15,15,15,8,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6586, 'Amulet of fury', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 9200000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6587, 'White claws', 'A set of fighting claws.', 1, NULL, 144, 216, NULL, NULL, 360, 1013, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2583, 3, 4, NULL, '10,14,-4,0,0,4,7,2,0,0,0,14,1,0,0', 9, NULL, 1, '390,390,390,390', 397, NULL, '{0,10}-{5,10}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6588, 'White claws', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1013, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6589, 'White battleaxe', 'A vicious looking axe.', 1, NULL, 499, 748, NULL, NULL, 1248, 1459, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2586, 3, 6, NULL, '-2,20,15,0,0,0,0,0,0,-1,0,24,1,0,0', 2, NULL, NULL, '395,395,395,395', 397, NULL, '{0,10}-{5,10}', 2.7, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6590, 'White battleaxe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1459, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6591, 'White dagger', 'A vicious white dagger.', 1, NULL, 96, 144, NULL, NULL, 240, 479, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '10,5,-4,1,0,0,0,0,1,0,0,7,1,0,0', 5, NULL, NULL, '400,400,400,400', 378, '2517,2517,2500,2517', '{0,10}-{5,10}', 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6592, 'White dagger', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 479, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6593, 'White dagger(p)', 'A vicious white dagger.', 1, NULL, 96, 144, NULL, NULL, 240, 497, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '10,5,-4,1,0,0,0,0,1,0,0,7,1,0,0', 5, NULL, NULL, NULL, NULL, '2517,2517,2500,2517', '{0,10}-{5,10}', 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6594, 'White dagger(p)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 497, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6595, 'White dagger(p+)', 'A vicious white dagger.', 1, NULL, 96, 144, NULL, NULL, 240, 982, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '10,5,-4,1,0,0,0,0,1,0,0,7,1,0,0', 5, NULL, NULL, NULL, NULL, '2517,2517,2500,2517', '{0,10}-{5,10}', 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6596, 'White dagger(p+)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 982, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6597, 'White dagger(p++)', 'A vicious white dagger.', 1, NULL, 96, 144, NULL, NULL, 240, 8422, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '10,5,-4,1,0,0,0,0,1,0,0,7,1,0,0', 5, NULL, NULL, NULL, NULL, '2517,2517,2500,2517', '{0,10}-{5,10}', 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6598, 'White dagger(p++)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8422, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6599, 'White halberd', 'A white halberd.', 1, NULL, 768, 1152, NULL, NULL, 1920, 1834, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 7, NULL, '19,25,0,-4,0,-1,2,3,0,0,0,20,1,0,0', 15, NULL, 1, '440,440,412,440', 430, NULL, '{0,10}-{5,10}', 3.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6600, 'White halberd', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1834, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6601, 'White mace', 'A spiky mace.', 1, NULL, 172, 259, NULL, NULL, 432, 481, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '8,-2,16,0,0,0,0,0,0,0,0,13,3,0,0', 8, NULL, NULL, '390,390,381,390', 397, NULL, '{0,10}-{5,10}', 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6602, 'White mace', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 481, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6603, 'White magic staff', 'A Magical staff.', 1, NULL, 80, 120, NULL, NULL, 200, 650, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, NULL, NULL, '2,-1,10,10,0,2,3,1,10,0,0,7,1,0,0', 1, NULL, NULL, NULL, NULL, '2555,0,0,0', '{0,10}-{5,10}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6604, 'White magic staff', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 650, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6605, 'White sword', 'A razor sharp sword.', 1, NULL, 249, 374, NULL, NULL, 624, 1187, NULL, NULL, NULL, 813, 823, 1205, 824, 1206, 1207, 1208, 1381, 3, 4, NULL, '14,10,-2,0,0,0,2,1,0,0,0,12,1,0,0', 5, NULL, NULL, '381,390,390,390', 397, NULL, '{0,10}-{5,10}', 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6606, 'White sword', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1187, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6607, 'White longsword', 'A razor sharp longsword.', 1, NULL, 384, 576, NULL, NULL, 960, 2060, NULL, NULL, NULL, 808, 823, 819, 824, 820, 821, 822, 1, 3, 5, NULL, '13,18,-2,0,0,0,3,2,0,0,0,16,1,0,0', 6, NULL, NULL, '390,390,381,390', 397, NULL, '{0,10}-{5,10}', 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6608, 'White longsword', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2060, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6609, 'White 2h sword', 'A two handed sword.', 1, NULL, 768, 1152, NULL, NULL, 1920, 4029, NULL, NULL, NULL, 7047, 7040, 7046, 7039, 7045, 7044, 7043, 124, 3, 7, NULL, '-4,27,21,-4,0,0,0,0,0,-1,0,26,1,0,0', 7, NULL, 1, '7041,7041,7048,7049', 7050, '2503,0,2504,0', '{0,10}-{5,10}', 3.6, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6610, 'White 2h sword', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4029, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6611, 'White scimitar', 'A vicious, curved sword.', 1, NULL, 307, 460, NULL, NULL, 768, 1404, NULL, NULL, NULL, 808, 823, 819, 824, 820, 821, 822, 1, 3, 4, NULL, '4,19,-2,0,0,0,1,0,0,0,0,14,1,0,0', 6, NULL, NULL, '390,390,381,390', 397, '2500,0,2517,0', '{0,10}-{5,10}', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6612, 'White scimitar', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1404, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6613, 'White warhammer', 'I don\'t think it\'s intended for joinery.', 1, NULL, 392, 588, NULL, NULL, 980, 1178, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, NULL, '-4,-4,22,-4,0,0,0,0,0,0,0,19,1,0,0', 10, NULL, NULL, '395,395,395,395', 397, '2504,0,0,0', '{0,10}-{5,10}', 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6614, 'White warhammer', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1178, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6615, 'White chainbody', 'A series of connected metal rings.', 1, NULL, 576, 864, NULL, NULL, 1440, 788, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '1,0,2', '0,0,0,-15,0,22,32,39,-3,24,10,0,1,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}-{5,10}', 6.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6616, 'White chainbody', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 788, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6617, 'White platebody', 'Provides excellent protection.', 1, NULL, 1536, 2304, NULL, NULL, 3840, 5837, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '1,0,2', '0,0,0,-30,-10,41,40,30,-6,40,10,0,1,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}-{5,10}', 9.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6618, 'White platebody', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5837, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6619, 'White boots', 'These will protect my feet.', 1, NULL, 230, 345, NULL, NULL, 576, 1016, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,-3,-1,7,8,9,0,0,7,0,1,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}-{5,10}', 1.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6620, 'White boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1016, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6621, 'White med helm', 'A medium sized helmet.', 1, NULL, 230, 345, NULL, NULL, 576, 853, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-3,-1,9,10,8,-1,9,4,0,1,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}-{5,10}', 1.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6622, 'White med helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 853, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6623, 'White full helm', 'A full face helmet.', 1, NULL, 422, 633, NULL, NULL, 1056, 2624, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,12,13,10,-1,12,4,0,1,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}-{5,10}', 2.7, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6624, 'White full helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2624, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6625, 'White platelegs', 'Big, white and heavy looking.', 1, NULL, 768, 1152, NULL, NULL, 1920, 2115, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,-21,-7,21,20,19,-4,20,3,0,1,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}-{5,10}', 9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6626, 'White platelegs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2115, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6627, 'White plateskirt', 'Big, white, and heavy looking.', 1, NULL, 768, 1152, NULL, NULL, 1920, 2000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,-21,-7,21,20,19,-4,20,3,0,1,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}-{5,10}', 8.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6628, 'White plateskirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6629, 'White gloves', 'These will keep my hands warm!', 1, NULL, 2, 3, NULL, NULL, 6, 2036, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,0,0,0,1,2,0,0,0,0,1,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}-{5,10}', 0.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6630, 'White gloves', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2036, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6631, 'White sq shield', 'A medium square shield.', 1, NULL, 460, 691, NULL, NULL, 1152, 1360, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '1,0,2', '0,0,0,-6,-2,15,16,14,0,15,9,0,1,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}-{5,10}', 3.6, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6632, 'White sq shield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1360, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6633, 'White kiteshield', 'A large metal shield.', 1, NULL, 652, 979, NULL, NULL, 1632, 2390, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '1,0,2', '0,0,0,-8,-2,17,19,18,-1,18,10,0,1,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}-{5,10}', 5.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6634, 'White kiteshield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2390, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6635, 'Commorb', 'A Temple Knight Communication Orb. Top Secret! / Use this to stay in touch with Korasi and Jessika. (A Void Dance version) / Tyr\'s commorb, given to him by Sir Tiffy. (Tyr\'s commorb)', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6636, 'Solus\'s hat', 'Proof that I have defeated the evil mage Solus.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6637, 'Dark beast', 'From a darker dimension.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6638, 'Colour wheel', 'A key to the nature of light itself. (Mourning\'s Ends Part II)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6639, 'Hand mirror', 'A small hand mirror.', NULL, NULL, NULL, NULL, 1, 'Resetting the light maze will generate a new mirror.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6641, 'Yellow crystal', 'A yellow crystal.', NULL, NULL, NULL, NULL, 1, 'Resetting the light maze will generate a new crystal.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6643, 'Cyan crystal', 'A cyan crystal.', NULL, NULL, NULL, NULL, 1, 'Resetting the light maze will generate a new crystal.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6644, 'Blue crystal', 'A blue crystal.', NULL, NULL, NULL, NULL, 1, 'Resetting the light maze will generate a new crystal.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6646, 'Fractured crystal', 'A fractured crystal, one of the edges is clear.', NULL, NULL, NULL, NULL, 1, 'Resetting the light maze will generate a new crystal.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6647, 'Fractured crystal', 'A fractured crystal, one of the edges is clear.', NULL, NULL, NULL, NULL, 1, 'Resetting the light maze will generate a new crystal.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6648, 'Item list', 'It\'s a list of items I need to collect.', NULL, NULL, NULL, NULL, 1, 'You can obtain another list from Thorgel.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6649, 'Edern\'s journal', 'The journal of Nissyen Edern.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6650, 'Blackened crystal', 'A blackened crystal sample.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6651, 'Newly made crystal', 'A newly formed crystal / A warm energy radiates from this crystal.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6652, 'Newly made crystal', 'A newly formed crystal / A warm energy radiates from this crystal.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6653, 'Crystal trinket', 'A small Crystal trinket.', NULL, NULL, NULL, NULL, 1, 'You can get another Crystal trinket from Arianwyn in Lletya.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6654, 'Camo top', 'Examine what?', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6655, 'Camo bottoms', 'Examine what?', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6656, 'Camo helmet', 'Examine what?', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6657, 'Camo top', 'Examine what?', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6658, 'Camo bottoms', 'Examine what?', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6659, 'Camo helmet', 'Examine what?', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6660, 'Fishing explosive', 'The jar keeps shaking... I\'m scared.', NULL, NULL, 24, 36, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6661, 'Mogre', 'An angry Ogre in a funny hat.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6662, 'Broken fishing rod', 'This fishing rod seems to have been bitten in half.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6663, 'Forlorn boot', 'It seems someone vacated this boot in a hurry.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(6664, 'Fishing explosive', 'The jar keeps shaking... I\'m scared.', NULL, NULL, 24, 36, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{18,32}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6665, 'Mudskipper hat', 'Fishy, damp and smelly.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6666, 'Flippers', 'Strangely uncomfortable flippers.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '-2,-2,-2,0,0,0,1,1,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6667, 'Fishbowl', 'An empty fishbowl.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 431, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(6668, 'Fishbowl', 'An empty fishbowl.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 619, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6669, 'Fishbowl', 'An empty fishbowl.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 619, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6670, 'Fishbowl', 'An empty fishbowl.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 619, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6671, 'Fishbowl', 'An empty fishbowl.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 619, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6672, 'Fishbowl', 'An empty fishbowl.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 619, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6673, 'Fishbowl and net', 'An empty fishbowl in a net.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6674, 'Tiny net', 'A tiny net for grabbing tiny fish.', NULL, NULL, 4, 6, 1, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6675, 'An empty box', '\'Ingredients: Ground Guam and Ground Seaweed. \'', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6677, 'Guam in a box', '\'Ingredients: Ground Guam and Ground Seaweed.\' Well, I have the Guam Leaf...', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6678, 'Guam in a box?', '\'Ingredients: Ground Guam and Ground Seaweed.\' Well, I have the Guam Leaf...', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6679, 'Seaweed in a box', '\'Ingredients: Ground Guam and Ground Seaweed.\' Well, I have the Seaweed...', 1, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6680, 'Seaweed in a box?', '\'Ingredients: Ground Guam and Ground Seaweed.\' Well, I have the Seaweed...', 1, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6681, 'Ground guam', 'One of the ingredients for making fish food.', 1, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6682, 'Ground guam', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6683, 'Ground seaweed', 'One of the ingredients for making fish food.', 1, NULL, NULL, 1, NULL, NULL, NULL, 14, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6684, 'Ground seaweed', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 14, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6685, 'Saradomin brew(4)', 'A Saradomin Brew.', 1, NULL, 80, 121, NULL, NULL, NULL, 15300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6686, 'Saradomin brew(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 15300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6687, 'Saradomin brew(3)', 'A Saradomin Brew.', 1, NULL, 80, 121, NULL, NULL, NULL, 11400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6688, 'Saradomin brew(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 11400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6689, 'Saradomin brew(2)', 'A Saradomin Brew.', 1, NULL, 80, 121, NULL, NULL, NULL, 7566, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6690, 'Saradomin brew(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7566, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6691, 'Saradomin brew(1)', 'A Saradomin Brew.', 1, NULL, 80, 121, NULL, NULL, NULL, 3783, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6692, 'Saradomin brew(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3783, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6693, 'Crushed nest', 'It\'s a crushed bird\'s nest.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 10500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(6694, 'Crushed nest', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 10500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(6695, 'Desert lizard', '\"A cold-blooded creature, partial to warmth.\"', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6696, 'Ice cooler', 'Contains ice-cold water.', NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{22,18}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6697, 'Pat of butter', 'A pat of freshly churned butter.', 1, NULL, 1, 2, NULL, NULL, 5, 405, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(6698, 'Pat of butter', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 405, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(6700, 'Burnt potato', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6701, 'Baked potato', 'It\'d taste even better with some toppings.', 1, NULL, 1, 2, NULL, NULL, NULL, 326, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6702, 'Baked potato', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 326, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6703, 'Potato with butter', 'A baked potato with butter.', 1, NULL, 3, 4, NULL, NULL, NULL, 745, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6704, 'Potato with butter', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 745, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6705, 'Potato with cheese', 'A baked potato with butter and cheese.', 1, NULL, 140, 210, NULL, NULL, 350, 604, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(6706, 'Potato with cheese', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 604, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(6707, 'Camulet', 'An amulet of Camel-speak. It makes vague braying noises.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6708, 'Slayer gloves', 'Especially good against diseased arachnids.', NULL, NULL, 80, 120, NULL, NULL, 200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0,0,0,0,0,4,5,3,0,0,1,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6709, 'Fever spider', 'A bunch of legs, eyes and teeth.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6710, 'Blindweed seed', 'A blindweed seed - plant in a Blindweed patch.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6711, 'Blindweed', 'An inedible, foul smelling herb.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6712, 'Bucket of water', 'Common bucket: It\'s a bucket of water.2008 Easter event: It\'s a bucket of water from the Easter Bunny\'s warren. Regular bucket filled from Braindeath Island: It\'s a bucket of... water?', 1, NULL, 2, 3, NULL, NULL, NULL, 74, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6713, 'Wrench', 'A heavy metal wrench.', NULL, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6714, 'Holy wrench', 'A shining paragon of wrenchly virtue.', NULL, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6715, 'Sluglings', 'They look at you balefully. \'Feed us...\'', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6716, 'Karamthulhu', 'A sinister looking squid.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6717, 'Karamthulhu', 'A sinister looking squid.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6718, 'Fever spider body', 'A diseased deceased Fever Spider. Handle with care.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6719, 'Unsanitary swill', 'Sorry, I mean a bucket of \'rum\'.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6720, 'Slayer gloves', 'Especially good against diseased arachnids.', NULL, NULL, 80, 120, NULL, NULL, 200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,0,0,4,5,3,0,0,1,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{18,42}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6721, 'Rusty scimitar', 'A decent enough weapon gone rusty.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2500,0,2517,0', NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6722, 'Zombie head', 'Alas...I hardly knew him.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6723, 'Fishbowl', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6724, 'Seercull', 'An ancient Fremennik bow that was once used to battle the Moon Clan.', 1, 1, 3200, 4800, NULL, NULL, NULL, 12200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2588, 3, 5, NULL, '0,0,0,0,69,0,0,0,0,0,0,0,0,0,0', 16, 1, 1, '426,426,426,426', 424, NULL, '{4,50}', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6725, 'Seercull', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 12200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6726, 'Mud battlestaff', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6727, 'Mystic mud staff', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6728, 'Bonemeal', 'A pot of crushed [type of bones].', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6729, 'Dagannoth bones', 'These would feed a dogfish for months!', 1, NULL, NULL, NULL, NULL, NULL, NULL, 9616, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.5, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(6730, 'Dagannoth bones', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 9616, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(6731, 'Seers ring', 'A mysterious ring that can fill the wearer with magical power...', 1, 1, 4000, 6000, NULL, NULL, NULL, 478800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, '0,0,0,4,0,0,0,0,4,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, 1, NULL, NULL, NULL, 0), +(6732, 'Seers ring', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 478800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(6733, 'Archers ring', 'A fabled ring that improves the wearer\'s skill with a bow...', 1, 1, 4000, 6000, NULL, NULL, NULL, 1400000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, '0,0,0,0,4,0,0,0,0,4,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, 1, NULL, NULL, NULL, 0), +(6734, 'Archers ring', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1400000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(6735, 'Warrior ring', 'A legendary ring once worn by Fremennik warriors.', 1, 1, 4000, 6000, NULL, NULL, NULL, 178100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, '0,4,0,0,0,0,4,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, 1, NULL, NULL, NULL, 0), +(6736, 'Warrior ring', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 178100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(6737, 'Berserker ring', 'A ring reputed to bring out a berserk fury in its wearer.', 1, 1, 4000, 6000, NULL, NULL, NULL, 2700000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, '0,0,0,0,0,0,0,4,0,0,0,4,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, 1, NULL, NULL, NULL, 0), +(6738, 'Berserker ring', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2700000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(6739, 'Dragon axe', 'A very powerful hatchet.', 1, NULL, 22000, 33000, NULL, NULL, NULL, 813100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2586, 3, NULL, NULL, '-2,38,32,0,0,0,1,0,0,0,0,42,0,0,0', 2, 1, NULL, '395,395,395,395', 397, NULL, '{0,60}-{8,61}', NULL, 10, NULL, 1, NULL, NULL, NULL, 0), +(6740, 'Dragon axe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 813100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(6741, 'Broken axe', 'Bob can fix this broken (metal) axe for me.', NULL, NULL, 160, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6742, 'Broken axe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6744, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6745, 'Silverlight', 'The magical sword \'Silverlight\'. / The magical sword \'Silverlight\', stained black with mushroom ink. (during Shadow of the Storm)', NULL, NULL, 20, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2554, 3, 5, NULL, '9,14,-2,0,0,0,3,2,1,0,0,12,0,0,0', 6, NULL, NULL, '390,390,381,390', 397, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6746, 'Darklight', 'The magical sword Silverlight, enhanced with the blood of Agrith-Naar.', NULL, NULL, 200, 300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2554, 3, 5, NULL, '10,16,-2,0,0,0,3,2,2,0,0,13,0,0,0', 6, 1, NULL, '390,390,381,390', 397, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6747, 'Demonic sigil mould', 'Used to make the sigil of the demon Agrith-Naar.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6748, 'Demonic sigil', 'A sigil used for the summoning of the demon Agrith-Naar.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6749, 'Demonic tome', 'Will this book help in summoning Agrith-Naar?', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6750, 'Black desert shirt', 'A desert shirt stained black with mushroom ink.', NULL, NULL, 16, 24, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6752, 'Black desert robe', 'A desert robe stained black with mushroom ink.', NULL, NULL, 12, 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6754, 'Enchanted key', 'It changes temperature as I walk. (Meeting History)', NULL, NULL, NULL, NULL, 1, 'Hopefully Erin has a copy!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6760, 'Guthix mjolnir', 'A Guthix Mjolnir.', 1, NULL, 250, 375, NULL, 'You can reclaim this item from the place you found it.', 250, 2875, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '0,0,11,0,0,0,0,0,0,0,0,14,0,0,0', 3, NULL, 1, '2080,2081,2082,2080', 2079, NULL, NULL, 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6761, 'Guthix mjolnir', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2875, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6762, 'Saradomin mjolnir', 'A Saradomin Mjolnir.', 1, NULL, 250, 375, NULL, 'You can reclaim this item from the place you found it.', 250, 17200, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '0,0,11,0,0,0,0,0,0,0,0,14,0,0,0', 3, NULL, 1, '2080,2081,2082,2080', 2079, NULL, NULL, 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6763, 'Saradomin mjolnir', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 17200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6764, 'Zamorak mjolnir', 'A Zamorak mjolnir.', 1, NULL, 250, 375, NULL, 'You can reclaim this item from the place you found it.', NULL, 4115, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '0,0,11,0,0,0,0,0,0,0,0,14,0,0,0', 3, NULL, 1, '2080,2081,2082,2080', 2079, NULL, NULL, 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6765, 'Zamorak mjolnir', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4115, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6766, 'Cat antipoison', 'Antipoison for Pox.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6768, 'Poisoned cheese', 'A little more smelly than usual.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6769, 'Music scroll', 'Charming.', NULL, NULL, NULL, NULL, 1, 'You can obtain another sheet of music by talking to the snakecharmer of Pollnivneach.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6770, 'Directions', 'Jimmy Dazzler\'s directions.', NULL, NULL, NULL, NULL, 1, 'You can obtain another set of directions to the party by talking to Jimmy Dazzler.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6771, 'Pot of weeds', 'Contains garden weeds.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6772, 'Smouldering pot', 'Contains slowly burning garden weeds.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6773, 'Rat pole', 'Empty: A pole for putting rats on. With rats: A pole with (one to six) rat(s) on it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1421, 1426, 1422, 1427, 1423, 1424, 1425, 131, 3, 5, NULL, '0,-1,7,4,0,2,3,1,4,0,0,3,0,0,0', 10, NULL, 1, NULL, NULL, NULL, NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6774, 'Rat pole', 'Empty: A pole for putting rats on. With rats: A pole with (one to six) rat(s) on it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1421, 1426, 1422, 1427, 1423, 1424, 1425, 131, 3, 5, NULL, '0,-1,7,4,0,2,3,1,4,0,0,3,0,0,0', 10, NULL, 1, NULL, NULL, NULL, NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6775, 'Rat pole', 'Empty: A pole for putting rats on. With rats: A pole with (one to six) rat(s) on it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1421, 1426, 1422, 1427, 1423, 1424, 1425, 131, 3, 5, NULL, '0,-1,7,4,0,2,3,1,4,0,0,3,0,0,0', 10, NULL, 1, NULL, NULL, NULL, NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6776, 'Rat pole', 'Empty: A pole for putting rats on. With rats: A pole with (one to six) rat(s) on it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1421, 1426, 1422, 1427, 1423, 1424, 1425, 131, 3, 5, NULL, '0,-1,7,4,0,2,3,1,4,0,0,3,0,0,0', 10, NULL, 1, NULL, NULL, NULL, NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6777, 'Rat pole', 'Empty: A pole for putting rats on. With rats: A pole with (one to six) rat(s) on it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1421, 1426, 1422, 1427, 1423, 1424, 1425, 131, 3, 5, NULL, '0,-1,7,4,0,2,3,1,4,0,0,3,0,0,0', 10, NULL, 1, NULL, NULL, NULL, NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6778, 'Rat pole', 'Empty: A pole for putting rats on. With rats: A pole with (one to six) rat(s) on it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1421, 1426, 1422, 1427, 1423, 1424, 1425, 131, 3, 5, NULL, '0,-1,7,4,0,2,3,1,4,0,0,3,0,0,0', 10, NULL, 1, NULL, NULL, NULL, NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6779, 'Rat pole', 'Empty: A pole for putting rats on. With rats: A pole with (one to six) rat(s) on it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1421, 1426, 1422, 1427, 1423, 1424, 1425, 131, 3, 5, NULL, '0,-1,7,4,0,2,3,1,4,0,0,3,0,0,0', 10, NULL, 1, NULL, NULL, NULL, NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6780, 'Menaphite thug', 'Menaphite thug.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6786, 'Robe of elidinis', 'This looks quite old.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6787, 'Robe of elidinis', 'This looks quite old.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6788, 'Torn robe', 'This robe is too torn to wear.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6789, 'Torn robe', 'This robe is too torn to wear.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6790, 'Shoes', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6791, 'Sole', 'Awusah\'s Sole.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6792, 'Ancestral key', 'An ancient key from the shrine in Nardah. (Spirits of the Elid)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6793, 'Ballad', 'The Ballad of Jaresh.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6794, 'Choc-ice', 'A tasty treat from Nardah - better eat this before it melts.', 1, NULL, 12, 18, NULL, NULL, 30, 210, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6795, 'Choc-ice', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 210, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6796, 'Lamp', 'Wonder what happens if I rub it...', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, 0, NULL, NULL, NULL, NULL, 0), +(6797, 'Watering can', 'See article', NULL, NULL, 3, 4, NULL, NULL, 8, 206, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6798, 'Champion scroll', 'A scroll once used by a champion.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6799, 'Champion scroll', 'A scroll once used by a champion.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6800, 'Champion scroll', 'A scroll once used by a champion.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6801, 'Champion scroll', 'A scroll once used by a champion.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6802, 'Champion scroll', 'A scroll once used by a champion.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6803, 'Champion scroll', 'A scroll once used by a champion.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6804, 'Champion scroll', 'A scroll once used by a champion.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6805, 'Champion scroll', 'A scroll once used by a champion.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6806, 'Champion scroll', 'A scroll once used by a champion.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6807, 'Champion scroll', 'A scroll once used by a champion.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6808, 'Champion scroll', 'A scroll once used by a champion.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6809, 'Granite legs', 'These look pretty heavy.', 1, 1, 26400, 39600, NULL, NULL, NULL, 39400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '2,0,5', '0,0,0,-31,-18,43,45,41,-4,68,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,50}-{2,50}', 15, 10, NULL, NULL, NULL, NULL, NULL, 0), +(6810, 'Bonemeal', 'A pot of crushed [type of bones].', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6811, 'Skeletal wyvern', 'A very dangerous pile of animated Wyvern bones.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6812, 'Wyvern bones', 'Bones of a huge flying creature.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 4845, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6813, 'Granite legs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6814, 'Fur', 'This would make warm clothing.', 1, NULL, 4, 6, NULL, NULL, 20, 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6815, 'Fur', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6816, 'Wyvern bones', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6817, 'Slender blade', 'A slender two-handed sword.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, 7047, 7040, 7046, 7039, 7045, 7044, 7043, 124, 3, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6818, 'Bow-sword', 'A sharp sword that can also fire arrows.', NULL, NULL, NULL, NULL, 1, 'You can make a replacement.', NULL, NULL, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6819, 'Large pouch', 'A large pouch used for storing essence.', NULL, NULL, 240, 360, NULL, 'You can reclaim this item from the place you found it.', 25000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6820, 'Relic', 'It seems to have pieces missing. After Temple at Senntisten quest: The assassin\'s plunder from the church on Entrana.', NULL, NULL, NULL, NULL, 1, 'I can get another from the assassin beside the winch that leads down into Senntisten temple.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6821, 'Orb', 'This looks valuable.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6822, 'Star bauble', 'See individual articles.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6823, 'Star bauble', 'See individual articles.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6824, 'Star bauble', 'See individual articles.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6825, 'Star bauble', 'See individual articles.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6826, 'Star bauble', 'See individual articles.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6827, 'Star bauble', 'See individual articles.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6828, 'Box bauble', 'See individual articles.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6829, 'Box bauble', 'See individual articles.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6830, 'Box bauble', 'See individual articles.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6831, 'Box bauble', 'See individual articles.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6832, 'Box bauble', 'See individual articles.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6833, 'Box bauble', 'See individual articles.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6834, 'Diamond bauble', 'See individual articles.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6835, 'Diamond bauble', 'See individual articles.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6836, 'Diamond bauble', 'See individual articles.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6837, 'Diamond bauble', 'See individual articles.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6838, 'Diamond bauble', 'See individual articles.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6839, 'Diamond bauble', 'See individual articles.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6840, 'Tree bauble', 'See individual articles.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6841, 'Tree bauble', 'See individual articles.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6842, 'Tree bauble', 'See individual articles.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6843, 'Tree bauble', 'See individual articles.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6844, 'Tree bauble', 'See individual articles.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6845, 'Tree bauble', 'See individual articles.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6846, 'Bell bauble', 'See individual articles.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6847, 'Bell bauble', 'See individual articles.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6848, 'Bell bauble', 'See individual articles.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6849, 'Bell bauble', 'See individual articles.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6850, 'Bell bauble', 'See individual articles.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6851, 'Bell bauble', 'See individual articles.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(6852, 'Puppet box', 'A box for storing completed puppets.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6853, 'Bauble box', 'A box for storing painted baubles.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6854, 'Puppet box', 'A box for storing completed puppets.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6855, 'Bauble box', 'A box for storing painted baubles.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6856, 'Bobble hat', 'A woolly bobble hat.', NULL, NULL, NULL, NULL, 1, 'You can obtain another hat from Diango in the Draynor Market.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.25, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6857, 'Bobble scarf', 'A woolly scarf.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.25, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6858, 'Jester hat', 'A woolly Jester hat.', NULL, NULL, NULL, NULL, 1, 'You can obtain another hat from Diango in the Draynor Market.', 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.25, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6859, 'Jester scarf', 'A woolly jester scarf.', NULL, NULL, NULL, NULL, 1, 'You can get another Jester scarf from Diango.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.25, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6860, 'Tri-jester hat', 'A woolly triple bobble jester hat.', NULL, NULL, NULL, NULL, 1, 'You may get another from Diango in Draynor Village.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.25, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6861, 'Tri-jester scarf', 'A woolly jester scarf.', NULL, NULL, NULL, NULL, 1, 'You can obtain another jester scarf from Diango in the Draynor Market.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.25, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6862, 'Woolly hat', 'A woolly tobogganing hat.', NULL, NULL, NULL, NULL, 1, 'You can obtain another hat from Diango in the Draynor Market.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.25, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6863, 'Woolly scarf', 'A woolly tobogganing scarf.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.25, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6864, 'Marionette handle', 'The controlling part of a marionette.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6865, 'Blue marionette', 'I\'ve got no strings ... oh hang on!', NULL, NULL, NULL, NULL, 1, 'You can obtain another marionette in Diango\'s workshop by the trap door.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6866, 'Green marionette', 'I\'ve got no strings ... oh hang on!', NULL, NULL, NULL, NULL, 1, 'You can obtain another marionette in Diango\'s workshop by the trap door.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6867, 'Red marionette', 'I\'ve got no strings ... oh hang on!', NULL, NULL, NULL, NULL, 1, 'You can obtain another marionette in Diango\'s workshop by the trap door.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6868, 'Blue marionette', 'I\'ve got no strings ... oh hang on!', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6869, 'Green marionette', 'I\'ve got no strings ... oh hang on!', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6870, 'Red marionette', 'I\'ve got no strings ... oh hang on!', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6871, 'Red marionette', 'I\'ve got no strings ... oh hang on!', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6872, 'Red marionette', 'I\'ve got no strings ... oh hang on!', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6873, 'Red marionette', 'I\'ve got no strings ... oh hang on!', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6874, 'Red marionette', 'I\'ve got no strings ... oh hang on!', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6875, 'Blue marionette', 'I\'ve got no strings ... oh hang on!', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6876, 'Blue marionette', 'I\'ve got no strings ... oh hang on!', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6877, 'Blue marionette', 'I\'ve got no strings ... oh hang on!', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6878, 'Blue marionette', 'I\'ve got no strings ... oh hang on!', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6879, 'Green marionette', 'I\'ve got no strings ... oh hang on!', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6880, 'Green marionette', 'I\'ve got no strings ... oh hang on!', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6881, 'Green marionette', 'I\'ve got no strings ... oh hang on!', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6882, 'Green marionette', 'I\'ve got no strings ... oh hang on!', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6883, 'Peach', 'A tasty fruit.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6885, 'Progress hat', 'A magic training arena progress hat', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6886, 'Progress hat', 'A magic training arena progress hat', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6887, 'Progress hat', 'A magic training arena progress hat', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6888, 'Guardian statue', 'A guardian of the arena.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, 0), +(6889, 'Mage\'s book', 'The magical book of the Mage.', 1, NULL, 200, 300, NULL, NULL, NULL, 3800000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,15,0,0,0,0,15,0,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{6,60}', 1, 10, NULL, NULL, NULL, NULL, NULL, 0), +(6890, 'Mage\'s book', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3800000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(6891, 'Arena book', 'A book about the Training Arena.', NULL, NULL, NULL, NULL, NULL, NULL, 200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6893, 'Leather boots', 'Comfortable leather boots.', 1, NULL, NULL, NULL, NULL, NULL, 6, 189, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0,0,0,0,0,0,1,1,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, NULL, 0, NULL, NULL, NULL, NULL, 0), +(6894, 'Adamant kiteshield', 'A large metal shield.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 3084, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '3,0,6', '0,0,0,-8,-2,27,31,29,-1,29,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.8, NULL, 0, NULL, NULL, NULL, NULL, 0), +(6895, 'Adamant med helm', 'A medium sized helmet.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1049, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1,0,2', '0,0,0,-3,-1,14,15,13,-1,14,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, NULL, 0, NULL, NULL, NULL, NULL, 0), +(6896, 'Emerald', 'This looks valuable.', 1, NULL, NULL, NULL, NULL, NULL, 350, 644, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, 0), +(6897, 'Rune longsword', 'A razor sharp longsword', 1, 1, NULL, NULL, NULL, NULL, 32000, 18938, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '38,47,-2,0,0,0,3,2,0,0,0,49,0,0,0', NULL, NULL, NULL, NULL, NULL, '2500,2500,2517,2500', NULL, 1.8, NULL, 0, NULL, NULL, NULL, NULL, 0), +(6898, 'Cylinder', 'A green cylinder', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, 0), +(6899, 'Cube', 'A yellow cube', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, 0), +(6900, 'Icosahedron', 'A blue icosahedron.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, 0), +(6901, 'Pentamid', 'A red pentamid.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, 0), +(6902, 'Orb', 'This looks valuable.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, 0), +(6903, 'Dragonstone', 'This looks valuable.', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, NULL, 0, NULL, NULL, NULL, NULL, 0), +(6904, 'Animals\' bones', 'Various animals\' bones.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6905, 'Animals\' bones', 'Various animals\' bones.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6906, 'Animals\' bones', 'Various animals\' bones.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6907, 'Animals\' bones', 'Various animals\' bones.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6908, 'Beginner wand', 'A beginner level wand', 1, NULL, 480, 720, NULL, NULL, 303030030, 11500, NULL, NULL, NULL, 809, 823, 1146, 1210, 820, 821, 822, 1426, 3, NULL, NULL, '0,0,0,5,0,0,0,0,5,0,0,0,0,0,0', 1, NULL, NULL, NULL, NULL, NULL, '{6,45}', 0.2, 10, NULL, NULL, NULL, NULL, NULL, 0), +(6909, 'Beginner wand', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 11500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(6910, 'Apprentice wand', 'An apprentice level wand.', 1, NULL, 600, 900, NULL, NULL, 606060060, 82000, NULL, NULL, NULL, 809, 823, 1146, 1210, 820, 821, 822, 1426, 3, NULL, NULL, '0,0,0,10,0,0,0,0,10,0,0,0,0,0,0', 1, NULL, NULL, '419,419,419,419', 420, NULL, '{6,50}', NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(6911, 'Apprentice wand', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 82000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(6912, 'Teacher wand', 'A teacher level wand.', 1, NULL, 800, 1200, NULL, NULL, NULL, 944100, NULL, NULL, NULL, 809, 823, 1146, 1210, 820, 821, 822, 1426, 3, NULL, NULL, '0,0,0,15,0,0,0,0,15,0,0,0,0,0,0', 1, NULL, NULL, NULL, NULL, NULL, '{6,55}', NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(6913, 'Teacher wand', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 944100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(6914, 'Master wand', 'A master level wand.', 1, NULL, 1000, 1500, NULL, NULL, NULL, 1700000, NULL, NULL, NULL, 8980, 823, 1146, 1210, 820, 821, 822, 1426, 3, NULL, NULL, '0,0,0,20,0,0,0,0,20,0,0,0,0,0,0', 1, NULL, NULL, '419,419,419,419', 420, NULL, '{6,60}', 0.1, 10, NULL, NULL, NULL, NULL, NULL, 0), +(6915, 'Master wand', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1700000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(6916, 'Infinity top', 'Mystical robes.', 1, NULL, 56000, 84000, NULL, NULL, NULL, 3300000, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '3,1,0', '0,0,0,22,0,0,0,0,22,0,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,50}-{6,25}', 2.2, 10, NULL, NULL, NULL, NULL, NULL, 0), +(6917, 'Infinity top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3300000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(6918, 'Infinity hat', 'A mystic hat.', 1, NULL, 6800, 10200, NULL, NULL, NULL, 1800000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,0', '0,0,0,6,0,0,0,0,6,0,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,50}-{6,25}', 0.4, 10, NULL, NULL, NULL, NULL, NULL, 0), +(6919, 'Infinity hat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1800000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(6920, 'Infinity boots', 'Mystical boots.', 1, NULL, 4800, 7200, 1, NULL, NULL, 1200000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,5,0,0,0,0,5,0,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,50}-{6,25}', 0.4, 10, NULL, NULL, NULL, NULL, NULL, 0), +(6921, 'Infinity boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1200000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(6922, 'Infinity gloves', 'Mystical gloves.', 1, NULL, 4800, 7200, NULL, NULL, NULL, 1900000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,5,0,0,0,0,5,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,50}-{6,25}', 0.4, 10, NULL, NULL, NULL, NULL, NULL, 0), +(6923, 'Infinity gloves', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1900000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(6924, 'Infinity bottoms', 'Mystical robes.', 1, NULL, 36000, 54000, NULL, NULL, NULL, 2500000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '2,1,0', '0,0,0,17,0,0,0,0,17,0,17,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,50}-{6,25}', 1.8, 10, NULL, NULL, NULL, NULL, NULL, 0), +(6925, 'Infinity bottoms', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2500000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(6926, 'Bones to peaches', 'A tablet containing a magic spell.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 983, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6945, 'Sandy hand', 'A severed hand covered with sand.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6946, 'Beer-soaked hand', 'A severed hand dripping with beer.', NULL, NULL, NULL, NULL, 1, 'Speak to the Guard Captain in Yanille to get another beer soaked hand.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6947, 'Bert\'s rota', 'A copy of a work rota.', NULL, NULL, NULL, NULL, 1, 'Speak to Bert to replace this Rota.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6948, 'Sandy\'s rota', 'An original work rota.', NULL, NULL, NULL, NULL, 1, 'Search Sandy\'s office in Brimhaven for another Rota.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6949, 'A magic scroll', 'Maybe I should read this...', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6950, 'Magical orb', 'An ordinary looking scrying orb.', NULL, NULL, NULL, NULL, 1, 'Speak to Zavistic Rarve to replace your magical orb.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6951, 'Magical orb (a)', 'This magical scrying orb pulsates as it stores information.', NULL, NULL, NULL, NULL, 1, 'Speak to Zavistic Rarve to replace your magical orb.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6952, 'Truth serum', 'Fluid sloshes innocently in this vial.', NULL, NULL, NULL, NULL, 1, 'Speak to Betty in Port Sarim to get another bottle of truth serum.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6953, 'Bottled water', 'A bottle of water.', NULL, NULL, NULL, NULL, 1, 'Speak to Betty in Port Sarim to get another bottle.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6954, 'Redberry juice', 'Redberry juice sloshes around in this vial, waiting for white berries to be added.', NULL, NULL, NULL, NULL, 1, 'Speak to Betty in Port Sarim to get another bottle to make some more red berry juice.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6955, 'Pink dye', 'A vial of pink dye.', NULL, NULL, NULL, NULL, 1, 'Speak to Betty in Port Sarim to make more pink dye.', 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6956, 'Rose-tinted lens', 'This lens has a pinkish tinge to it.', NULL, NULL, NULL, NULL, 1, 'Speak to Betty in Port Sarim to get another bottle to make the lens again.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6957, 'Wizard\'s head', 'A decapitated, sand-covered head.', NULL, NULL, NULL, NULL, 1, 'Speak to Mazion near the sandpit on Entrana to find the Wizard Head again.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6958, 'Sand', 'A handful of sand from Sandy\'s pocket.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6959, 'Cape', 'A (bright/thick/warm) <colour> cape.', 1, NULL, 8, 12, 1, NULL, 20, 919, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6960, 'Cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 919, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6961, 'Baguette', 'A freshly baked baguette.', NULL, NULL, 10, 15, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6962, 'Triangle sandwich', 'A freshly made triangle sandwich.', 1, NULL, 10, 15, NULL, NULL, NULL, 110, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(6963, 'Roll', 'A freshly made roll.', NULL, NULL, 10, 15, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6964, 'Coins', '100,000 or more: \"X x coins\" where X is the exact number of coins in the stack.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, 0), +(6965, 'Square sandwich', 'A freshly made square sandwich.', NULL, NULL, 10, 15, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6967, 'Dragon med helm', 'Makes the wearer pretty intimidating.', 1, 1, 40000, 60000, NULL, NULL, NULL, 61200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2,0,4', '0,0,0,-3,-1,33,35,32,-1,34,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6968, 'Triangle sandwich', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6969, 'Shark', 'I\'d better be careful eating this.', 1, NULL, 120, 180, NULL, NULL, NULL, 694, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6970, 'Pyramid top', 'It\'s a solid gold pyramid!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 11, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6971, 'Sandstone (1kg)', 'A large chunk of sandstone.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6972, 'Sandstone (1kg)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6973, 'Sandstone (2kg)', 'A large chunk of sandstone.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 27, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6974, 'Sandstone (2kg)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 27, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6975, 'Sandstone (5kg)', 'A large chunk of sandstone.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6976, 'Sandstone (5kg)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6977, 'Sandstone (10kg)', 'A large chunk of sandstone.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6978, 'Sandstone (10kg)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(6979, 'Granite (500g)', 'See article', 1, NULL, NULL, NULL, NULL, NULL, NULL, 304, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(6980, 'Granite (500g)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 304, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(6981, 'Granite (2kg)', 'See article', 1, NULL, NULL, NULL, NULL, NULL, NULL, 845, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(6982, 'Granite (2kg)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 845, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(6983, 'Granite (5kg)', 'See article', 1, NULL, NULL, NULL, NULL, NULL, NULL, 2153, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(6984, 'Granite (5kg)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2153, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(6985, 'Sandstone (20kg)', 'A huge twenty-kilo block of sandstone.', NULL, NULL, NULL, NULL, 1, 'You can make another 20 kg block by giving enough stone to Lazim.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 20, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6986, 'Sandstone (32kg)', 'A huge thirty-two-kilo block of sandstone.', NULL, NULL, NULL, NULL, 1, 'You can make another 32 kg sandstone block by giving enough stone to Lazim.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 32, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6987, 'Sandstone body', 'The body of a sandstone statue.', NULL, NULL, NULL, NULL, 1, 'You can make another statue body by giving Lazim 20 kg of stone and then crafting it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6988, 'Sandstone base', 'The base and legs of a sandstone statue.', NULL, NULL, NULL, NULL, 1, 'You can make another statue base by giving Lazim 32 kg of stone and then crafting it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 32, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6993, 'Z sigil', 'A metal sigil in the shape of a Z.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6994, 'M sigil', 'A metal sigil in the shape of an M.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6995, 'R sigil', 'A metal sigil in the shape of an R.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6996, 'K sigil', 'A metal sigil in the shape of a K.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6997, 'Stone left arm', 'The left arm of a large stone statue.', NULL, NULL, NULL, NULL, 1, 'You can get the statue\'s left arm back from Lazim.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6998, 'Stone right arm', 'The right arm of a large stone statue.', NULL, NULL, NULL, NULL, 1, 'You can get the statue\'s right arm back from Lazim.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(6999, 'Stone left leg', 'The left leg of a large stone statue.', NULL, NULL, NULL, NULL, 1, 'You can get the statue\'s left leg back from Lazim.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7000, 'Stone right leg', 'The right leg of a large stone statue.', NULL, NULL, NULL, NULL, 1, 'You can get the statue\'s right leg back from Lazim.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7001, 'Camel mould (p)', 'A positive clay mould of a camel\'s head.', NULL, NULL, NULL, NULL, 1, 'You can make another positive mould by using soft clay on the pedestal in Enakhra\'s temple.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7003, 'Camel mask', 'Blend in in the desert.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7004, 'Chisel', 'Good for detailed crafting.', 1, NULL, 5, 8, NULL, NULL, 14, 33, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7051, 'Unlit bug lantern', 'A lantern to aid attacking Harpie bugs.', 1, NULL, 52, 78, NULL, NULL, 130, 466, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{18,33}-{11,33}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7052, 'Unlit bug lantern', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 466, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7053, 'Lit bug lantern', 'A lantern to aid attacking Harpie bugs.', NULL, NULL, 52, 78, NULL, NULL, 130, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{18,33}', 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7054, 'Chilli potato', 'A baked potato with chilli con carne', 1, NULL, 5, 7, NULL, NULL, NULL, 415, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(7055, 'Chilli potato', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 415, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(7056, 'Egg potato', 'A baked potato with egg and tomato.', 1, NULL, 4, 7, NULL, NULL, NULL, 441, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(7057, 'Egg potato', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 441, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(7058, 'Mushroom potato', 'A baked potato with mushroom and onions.', 1, NULL, 18, 27, NULL, NULL, NULL, 1165, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(7059, 'Mushroom potato', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1165, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(7060, 'Tuna potato', 'A baked potato with tuna and sweetcorn.', 1, NULL, 45, 67, NULL, NULL, NULL, 2134, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(7061, 'Tuna potato', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2134, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(7062, 'Chilli con carne', 'A bowl of meat in chilli-con-carne sauce.', 1, NULL, 5, 7, NULL, NULL, NULL, 215, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7063, 'Chilli con carne', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 215, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7064, 'Egg and tomato', 'A bowl of scrambled eggs and tomato', 1, NULL, 4, 7, NULL, NULL, NULL, 126, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7065, 'Egg and tomato', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 126, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7066, 'Mushroom & onion', 'A bowl of fried mushroom and onions.', 1, NULL, 18, 27, NULL, NULL, NULL, 368, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7067, 'Mushroom & onion', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 368, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7068, 'Tuna and corn', 'A bowl of cooked tuna and sweetcorn.', 1, NULL, 45, 67, NULL, NULL, NULL, 514, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(7069, 'Tuna and corn', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 514, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(7070, 'Minced meat', 'A bowl of finely minced meat.', 1, NULL, 3, 4, NULL, NULL, NULL, 22, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7071, 'Minced meat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 22, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7072, 'Spicy sauce', 'A bowl of spicy sauce.', 1, NULL, 3, 5, NULL, NULL, NULL, 70, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7073, 'Spicy sauce', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 70, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7074, 'Chopped garlic', 'A bowl of chopped garlic.', 1, NULL, 2, 4, NULL, NULL, NULL, 39, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7075, 'Chopped garlic', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 39, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7076, 'Uncooked egg', 'A bowl of uncooked egg.', 1, NULL, 3, 4, NULL, NULL, NULL, 34, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7077, 'Uncooked egg', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 34, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7078, 'Scrambled egg', 'A bowl of scrambled egg.', 1, NULL, 3, 4, NULL, NULL, NULL, 24, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7079, 'Scrambled egg', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 24, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7080, 'Sliced mushrooms', 'A bowl of sliced Bittercap mushrooms.', 1, NULL, 16, 25, NULL, NULL, NULL, 149, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7081, 'Sliced mushrooms', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 149, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7082, 'Fried mushrooms', 'A bowl of fried Bittercap mushrooms.', 1, NULL, 16, 25, NULL, NULL, NULL, 189, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7083, 'Fried mushrooms', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 189, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7084, 'Fried onions', 'A bowl of sliced, fried onions.', 1, NULL, 2, 4, NULL, NULL, NULL, 40, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7085, 'Fried onions', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 40, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7086, 'Chopped tuna', 'A bowl of finely chopped tuna.', 1, NULL, 41, 62, NULL, NULL, NULL, 233, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(7087, 'Chopped tuna', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 233, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(7088, 'Sweetcorn', 'Raw sweetcorn.', 1, NULL, 3, 5, NULL, NULL, NULL, 110, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(7089, 'Sweetcorn', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 110, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(7091, 'Burnt egg', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7093, 'Burnt onion', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7095, 'Burnt mushroom', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7108, 'Gunpowder', 'Best keep this away from naked flames.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7109, 'Fuse', 'A fuse.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(7110, 'Stripy pirate shirt', NULL, 1, NULL, 120, 180, NULL, NULL, 300, 48, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7111, 'Stripy pirate shirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 48, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7112, 'Pirate bandana', 'Essential pirate wear.', 1, NULL, 40, 60, NULL, NULL, NULL, 714, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7113, 'Pirate bandana', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 714, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7114, 'Pirate boots', 'Not for land lubbers.', 1, NULL, 140, 210, NULL, NULL, 350, 2530, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7115, 'Pirate boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2530, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7116, 'Pirate leggings', NULL, 1, NULL, 140, 210, NULL, NULL, 350, 77, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7117, 'Pirate leggings', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 77, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7118, 'Canister', 'A cannister holding shrapnel.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7120, 'Ramrod', 'For cleaning and packing the cannon.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7121, 'Repair plank', 'A plank of wood to repair the hull with.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7122, 'Stripy pirate shirt', NULL, 1, NULL, 120, 180, NULL, NULL, 300, 904, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7123, 'Stripy pirate shirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 904, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7124, 'Pirate bandana', 'Essential pirate wear.', 1, NULL, 40, 60, NULL, NULL, NULL, 340, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7125, 'Pirate bandana', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 340, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7126, 'Pirate leggings', NULL, 1, NULL, 140, 210, NULL, NULL, 350, 187, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7127, 'Pirate leggings', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 187, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7128, 'Stripy pirate shirt', NULL, 1, NULL, 120, 180, NULL, NULL, 300, 744, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7129, 'Stripy pirate shirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 744, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7130, 'Pirate bandana', 'Essential pirate wear.', 1, NULL, 40, 60, NULL, NULL, NULL, 154, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7131, 'Pirate bandana', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 154, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7132, 'Pirate leggings', NULL, 1, NULL, 140, 210, NULL, NULL, 350, 253, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7133, 'Pirate leggings', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 253, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7134, 'Stripy pirate shirt', NULL, 1, NULL, 120, 180, NULL, NULL, 300, 421, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7135, 'Stripy pirate shirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 421, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7136, 'Pirate bandana', 'Essential pirate wear.', 1, NULL, 40, 60, NULL, NULL, NULL, 469, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7137, 'Pirate bandana', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 469, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7138, 'Pirate leggings', NULL, 1, NULL, 140, 210, NULL, NULL, 350, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7139, 'Pirate leggings', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7140, 'Lucky cutlass', 'Feels quite lucky.', NULL, NULL, 1024, 1536, NULL, NULL, 2560, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, '5,20,0,-5,0,6,6,6,0,0,0,25,0,0,0', 6, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7141, 'Harry\'s cutlass', 'I hope he doesn\'t want it back.', NULL, NULL, 416, 624, NULL, NULL, 1040, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, '3,14,0,-5,0,4,4,4,0,0,0,22,0,0,0', 6, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7142, 'Rapier', 'The very butcher of a silk button.', NULL, NULL, 10240, 15360, NULL, NULL, 25600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2622, 3, 4, NULL, '45,7,-2,0,0,0,1,0,0,0,0,44,0,0,0', 5, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7143, 'Plunder', 'Looks valuable.', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7144, 'Book o\' piracy', 'By Cap\'n Hook-Hand Morrisane.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7145, 'Cannon barrel', 'A working cannon barrel.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 32, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7146, 'Broken cannon', 'Not likely to work again.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 32, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7148, 'Repair plank', 'A plank of wood to repair the hull with.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7149, 'Canister', 'A cannister holding shrapnel.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7150, 'Tacks', 'Useful for pinning up paintings.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7155, 'Rope', 'A coil of rope.', 1, NULL, 7, 10, NULL, NULL, 18, 101, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7156, 'Tinderbox', 'Useful for lighting a fire.', 1, NULL, NULL, NULL, NULL, NULL, 1, 121, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.05, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7157, 'Braindeath \'rum\'', 'I think it is eating through the bottle.', NULL, NULL, 12, 18, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7158, 'Dragon 2h sword', 'A two-handed dragon sword.', 1, 1, 88000, 132000, NULL, NULL, NULL, 1000000, NULL, NULL, NULL, 7047, 7040, 7046, 7039, 7045, 7044, 7043, 124, 3, 7, NULL, '-4,92,80,-4,0,0,0,0,0,-1,0,93,0,0,0', 7, 1, 1, '7041,7041,7048,7049', 7050, '2503,0,2504,0', '{0,60}', 3, 10, NULL, 1, NULL, NULL, NULL, 0), +(7159, 'Insulated boots', 'They\'re heavily insulated wellies.', 1, NULL, 80, 120, NULL, NULL, 200, 269, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,0,0,1,1,0,0,1,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{18,37}', 1.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7160, 'Killerwatt', 'Before being attacked: A ball of Electrical energy.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7161, 'Insulated boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7162, 'Pie recipe book', 'Lots of pie recipes for me to try.', 1, NULL, 2, 3, NULL, NULL, 5, 62, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7163, 'Pie recipe book', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 62, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7164, 'Part mud pie', 'All the good of the earth.', 1, NULL, 21, 32, NULL, NULL, 54, 77, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7165, 'Part mud pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 77, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7166, 'Part mud pie', 'All the good of the earth.', 1, NULL, 21, 32, NULL, NULL, 54, 284, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7167, 'Part mud pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 284, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7168, 'Raw mud pie', 'Needs to be baked before I can use it.', 1, NULL, 10, 16, NULL, NULL, NULL, 1625, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7169, 'Raw mud pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1625, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7170, 'Mud pie', 'All the good of the earth.', 1, NULL, 21, 32, NULL, NULL, 54, 2024, NULL, NULL, NULL, 808, 823, 819, 824, 820, 821, 822, 1, 3, NULL, NULL, NULL, 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7171, 'Mud pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2024, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7172, 'Part garden pie', 'What I wouldn\'t give for a good steak about now...', 1, NULL, 36, 54, NULL, NULL, NULL, 94, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7173, 'Part garden pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 94, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7174, 'Part garden pie', 'What I wouldn\'t give for a good steak about now...', 1, NULL, 36, 54, NULL, NULL, NULL, 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7175, 'Part garden pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7176, 'Raw garden pie', 'Needs cooking before I eat it.', 1, NULL, 4, 7, NULL, NULL, NULL, 1052, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7177, 'Raw garden pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1052, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7178, 'Garden pie', 'What I wouldn\'t give for a good steak about now...', 1, NULL, 36, 54, NULL, NULL, NULL, 1667, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7179, 'Garden pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1667, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7180, 'Half a garden pie', 'What I wouldn\'t give for a good steak about now...', 1, NULL, 36, 54, NULL, NULL, NULL, 442, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7181, 'Half a garden pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 442, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7182, 'Part fish pie', 'Bounty of the sea.', 1, NULL, 40, 60, NULL, NULL, NULL, 51, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7183, 'Part fish pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 51, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7184, 'Part fish pie', 'Bounty of the sea.', 1, NULL, 40, 60, NULL, NULL, NULL, 691, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7185, 'Part fish pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 691, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7186, 'Raw fish pie', 'Raw fish is risky, better cook it.', 1, NULL, 20, 30, NULL, NULL, NULL, 1198, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7187, 'Raw fish pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1198, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7188, 'Fish pie', 'Bounty of the sea.', 1, NULL, 40, 60, NULL, NULL, NULL, 121, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7189, 'Fish pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 121, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7190, 'Half a fish pie', 'Bounty of the sea.', 1, NULL, 40, 60, NULL, NULL, NULL, 56, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7191, 'Half a fish pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 56, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7192, 'Part admiral pie', 'Much tastier than a normal fish pie.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 159, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7193, 'Part admiral pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 159, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7194, 'Part admiral pie', 'Much tastier than a normal fish pie.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 537, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7195, 'Part admiral pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 537, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7196, 'Raw admiral pie', 'This would taste a lot better cooked.', 1, NULL, 62, 93, NULL, NULL, NULL, 1813, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7197, 'Raw admiral pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1813, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7198, 'Admiral pie', 'Much tastier than a normal fish pie.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 532, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7199, 'Admiral pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 532, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7200, 'Half an admiral pie', 'Much tastier than a normal fish pie.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 184, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7201, 'Half an admiral pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 184, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7202, 'Part wild pie', 'A triumph of man over nature.', 1, NULL, 72, 108, NULL, NULL, NULL, 126, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7203, 'Part wild pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 126, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7204, 'Part wild pie', 'A triumph of man over nature.', 1, NULL, 72, 108, NULL, NULL, NULL, 1116, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7205, 'Part wild pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1116, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7206, 'Raw wild pie', 'Good as it looks, I\'d better cook it.', 1, NULL, 36, 54, NULL, NULL, NULL, 3787, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7207, 'Raw wild pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3787, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7208, 'Wild pie', 'A triumph of man over nature.', 1, NULL, 72, 108, NULL, NULL, NULL, 1322, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7209, 'Wild pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1322, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7210, 'Half a wild pie', 'A triumph of man over nature.', 1, NULL, 72, 108, NULL, NULL, NULL, 112, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7211, 'Half a wild pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 112, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7212, 'Part summer pie', 'All the fruits of a very small forest.', 1, NULL, 56, 84, NULL, NULL, NULL, 495, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7213, 'Part summer pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 495, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7214, 'Part summer pie', 'All the fruits of a very small forest.', 1, NULL, 56, 84, NULL, NULL, NULL, 980, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7215, 'Part summer pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 980, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7216, 'Raw summer pie', 'Fresh fruit may be good for you, but I should really cook this.', 1, NULL, 28, 42, NULL, NULL, NULL, 2577, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7217, 'Raw summer pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2577, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7218, 'Summer pie', 'All the fruits of a very small forest.', 1, NULL, 56, 84, NULL, NULL, NULL, 1288, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7219, 'Summer pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1288, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7220, 'Half a summer pie', 'All the fruits of a very small forest.', 1, NULL, 56, 84, NULL, NULL, NULL, 430, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7221, 'Half a summer pie', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 430, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7222, 'Burnt rabbit', 'Mmm this looks tasty.', 1, NULL, 7, 11, NULL, NULL, 19, 32, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7223, 'Roast rabbit', 'A delicious looking piece of roast rabbit.', 1, NULL, 8, 12, NULL, NULL, 25, 37, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7224, 'Skewered rabbit', 'Might taste better cooked.', 1, NULL, 8, 12, NULL, NULL, 67, 112, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7225, 'Iron spit', 'An iron spit.', 1, NULL, 25, 38, NULL, NULL, 81, 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.5, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7227, 'Burnt chompy', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7228, 'Cooked chompy', 'It might look delicious to an ogre.Roasted chompy bird.', 1, NULL, 52, 78, NULL, NULL, 130, 164, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7229, 'Cooked chompy', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 164, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7230, 'Skewered chompy', 'A skewered chompy bird.', NULL, NULL, 59, 89, 1, NULL, NULL, 294, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7231, 'Burnt rabbit', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7232, 'Roast rabbit', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7233, 'Skewered rabbit', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7234, 'Iron spit', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7235, 'Skewered chompy', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7236, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7237, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7238, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7239, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7240, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7241, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7242, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7243, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7244, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7245, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7246, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7247, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7248, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7249, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7250, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7251, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7252, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7253, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7254, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7255, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7256, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7257, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7258, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7259, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7260, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7261, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7262, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7263, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7264, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7265, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7266, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7267, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7268, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7269, 'Challenge scroll', 'I need to answer this correctly.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7270, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7271, 'Challenge scroll', 'I need to answer this correctly.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7272, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7273, 'Challenge scroll', 'I need to answer this correctly.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7274, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7275, 'Challenge scroll', 'I need to answer this correctly.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7276, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7277, 'Challenge scroll', 'I need to answer this correctly.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(7278, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7279, 'Challenge scroll', 'I need to answer this correctly.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7280, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7281, 'Challenge scroll', 'I need to answer this correctly.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7282, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7283, 'Challenge scroll', 'I need to answer this correctly.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7284, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7285, 'Challenge scroll', 'I need to answer this correctly.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7286, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7287, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7288, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7289, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7290, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7291, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7292, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7293, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7294, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7295, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7296, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7298, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7300, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7301, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7303, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7304, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7305, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7306, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7307, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7308, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7309, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7310, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7311, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7312, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7313, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7314, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7315, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7316, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7317, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7318, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7319, 'Red boater', 'Stylish!', 1, NULL, 90, 135, NULL, NULL, NULL, 36600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7320, 'Red boater', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 36600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7321, 'Orange boater', 'Stylish!', 1, NULL, 90, 135, NULL, NULL, NULL, 16600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7322, 'Orange boater', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 16600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7323, 'Green boater', 'Stylish!', 1, NULL, 90, 135, NULL, NULL, NULL, 43000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7324, 'Green boater', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 43000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7325, 'Blue boater', 'Stylish!', 1, NULL, 90, 135, NULL, NULL, NULL, 37600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7326, 'Blue boater', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 37600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7327, 'Black boater', 'Stylish!', 1, NULL, 90, 135, NULL, NULL, NULL, 41700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7328, 'Black boater', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 41700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7329, 'Red firelighter', 'Makes firelighting a lot easier.', 1, NULL, 6, 9, NULL, NULL, NULL, 93, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7330, 'Green firelighter', 'Makes firelighting a lot easier.', 1, NULL, 6, 9, NULL, NULL, NULL, 94, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7331, 'Blue firelighter', 'Makes firelighting a lot easier.', 1, NULL, 6, 9, NULL, NULL, NULL, 113, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7332, 'Black shield(h1)', 'A black kitesheild with a heraldic design.', 1, NULL, 652, 979, NULL, NULL, NULL, 14300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '1,0,2', '0,0,0,-8,-2,17,19,18,-1,18,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}', 4, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7333, 'Black shield(h1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 14300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7334, 'Adamant shield(h1)', 'A shield with a heraldic design.', 1, NULL, 2176, 3264, NULL, NULL, NULL, 16400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,6', '0,0,0,-8,-2,27,31,29,-1,29,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 5, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7335, 'Adamant shield(h1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 16400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7336, 'Rune shield(h1)', 'A rune kiteshield with a heraldic design.', 1, NULL, 21760, 32640, NULL, NULL, NULL, 34200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 5.4, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7337, 'Rune shield(h1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 34200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7338, 'Black shield(h2)', 'A black kiteshield with a heraldic design.', 1, NULL, 6530, 9795, NULL, NULL, NULL, 9797, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '1,0,2', '0,0,0,-8,-2,17,19,18,-1,18,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}', 4, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7339, 'Black shield(h2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 9797, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7340, 'Adamant shield(h2)', 'A shield with a heraldic design.', 1, NULL, 2176, 3264, NULL, NULL, NULL, 3248, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,6', '0,0,0,-8,-2,27,31,29,-1,29,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 5, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7341, 'Adamant shield(h2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3248, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7342, 'Rune shield(h2)', 'A rune kiteshield with a heraldic design.', 1, NULL, 21760, 32640, NULL, NULL, NULL, 32400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 5.4, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7343, 'Rune shield(h2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 32400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7344, 'Black shield(h3)', 'A black shield with a heraldic design.', 1, NULL, 652, 979, NULL, NULL, NULL, 7405, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '1,0,2', '0,0,0,-8,-2,17,19,18,-1,18,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}', 4, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7345, 'Black shield(h3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7405, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7346, 'Adamant shield(h3)', 'A shield with a heraldic design.', 1, NULL, 2176, 3264, NULL, NULL, NULL, 5271, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,6', '0,0,0,-8,-2,27,31,29,-1,29,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 5, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7347, 'Adamant shield(h3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5271, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7348, 'Rune shield(h3)', 'A rune kiteshield with a heraldic design.', 1, NULL, 21760, 32640, NULL, NULL, NULL, 32700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 5, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7349, 'Rune shield(h3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 32700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7350, 'Black shield(h4)', 'A black shield with a heraldic design.', 1, NULL, 652, 979, NULL, NULL, NULL, 5572, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '1,0,2', '0,0,0,-8,-2,17,19,18,-1,18,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}', 4, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7351, 'Black shield(h4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5572, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7352, 'Adamant shield(h4)', 'A shield with a heraldic design.', 1, NULL, 2176, 3264, NULL, NULL, NULL, 3366, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,6', '0,0,0,-8,-2,27,31,29,-1,29,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 5, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7353, 'Adamant shield(h4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3366, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7354, 'Rune shield(h4)', 'A rune kiteshield with a heraldic design.', 1, NULL, 21760, 32640, NULL, NULL, NULL, 32500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 5, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7355, 'Rune shield(h4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 32500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7356, 'Black shield(h5)', 'A black shield with a heraldic design.', 1, NULL, 652, 979, NULL, NULL, NULL, 7159, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '1,0,2', '0,0,0,-8,-2,17,19,18,-1,18,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}', 4, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7357, 'Black shield(h5)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7159, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7358, 'Adamant shield(h5)', 'A shield with a heraldic design.', 1, NULL, 2176, 3264, NULL, NULL, NULL, 6328, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,6', '0,0,0,-8,-2,27,31,29,-1,29,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 5, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7359, 'Adamant shield(h5)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 6328, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7360, 'Rune shield(h5)', 'A rune kiteshield with a heraldic design.', 1, NULL, 21760, 32640, NULL, NULL, NULL, 32400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 5, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7361, 'Rune shield(h5)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 32400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7362, 'Studded body (g)', 'Those studs should provide a bit more protection. Nice trim too!', 1, NULL, 340, 510, NULL, NULL, NULL, 101600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '0,3,1', '0,0,0,-4,8,18,25,22,8,25,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{4,20}', 5.4, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7363, 'Studded body (g)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 101600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7364, 'Studded body (t)', 'Those studs should provide a bit more protection. Nice trim too!', 1, NULL, 340, 510, NULL, NULL, NULL, 27300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '0,3,1', '0,0,0,-4,8,18,25,22,8,25,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{4,20}', 5.4, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7365, 'Studded body (t)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 27300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7366, 'Studded chaps (g)', 'Those studs should provide a bit more protection. Nice trim too!', 1, NULL, 300, 450, NULL, NULL, NULL, 114600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '0,2,1', '0,0,0,-5,6,15,16,17,6,16,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{4,20}', 4.5, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7367, 'Studded chaps (g)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 114600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7368, 'Studded chaps (t)', 'Those studs should provide a bit more protection. Nice trim, too!', 1, NULL, 300, 450, NULL, NULL, NULL, 36800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '0,2,1', '0,0,0,-5,6,15,16,17,6,16,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{4,20}', 4.5, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7369, 'Studded chaps (t)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 36800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7370, 'D\'hide body(g)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 212400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,-15,15,40,32,45,20,40,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,40}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(7371, 'D\'hide body(g)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 212400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(7372, 'D\'hide body (t)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 38800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,-15,15,40,32,45,20,40,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,40}', NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7373, 'D\'hide body (t)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 38800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7374, 'D\'hide body (g)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6883, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,-15,20,45,37,50,30,45,45,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,50}-{4,40}', NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7375, 'D\'hide body (g)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 6883, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7376, 'D\'hide body (t)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5268, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,-15,20,45,37,50,30,45,45,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,50}-{4,40}', NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7377, 'D\'hide body (t)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5268, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7378, 'D\'hide chaps (g)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1300000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,-10,8,22,16,24,8,22,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{4,40}', NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7379, 'D\'hide chaps (g)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1300000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7380, 'D\'hide chaps (t)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 304300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,-10,8,22,16,24,8,22,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{4,40}', NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7381, 'D\'hide chaps (t)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 304300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7382, 'D\'hide chaps (g)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 21300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,-10,11,25,19,27,14,25,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{4,50}', NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7383, 'D\'hide chaps (g)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 21300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7384, 'D\'hide chaps (t)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2554, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,-10,11,25,19,27,14,25,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{4,50}', NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7385, 'D\'hide chaps (t)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2554, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7386, 'Blue skirt (g)', 'Leg covering favoured by women and wizards. With a colourful trim!', 1, NULL, NULL, 1, NULL, NULL, NULL, 298900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,1,0,0,0,0,1,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7387, 'Blue skirt (g)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 298900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7388, 'Blue skirt (t)', 'Leg covering favoured by women and wizards. With a colourful trim!', 1, NULL, NULL, 1, NULL, NULL, NULL, 126800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,1,0,0,0,0,1,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7389, 'Blue skirt (t)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 126800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7390, 'Wizard robe (g)', 'I can practise magic better in this.', 1, NULL, 6, 9, NULL, NULL, NULL, 1200000, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,3,0,0,0,0,3,0,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7391, 'Wizard robe (g)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1200000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7392, 'Wizard robe (t)', 'I can do magic better in this.', 1, NULL, 6, 9, NULL, NULL, NULL, 244600, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,3,0,0,0,0,3,0,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7393, 'Wizard robe (t)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 244600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7394, 'Wizard hat (g)', 'A silly pointed hat with colourful trim.', 1, NULL, NULL, 1, NULL, NULL, NULL, 1400000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,2,0,0,0,0,2,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7395, 'Wizard hat (g)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1400000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7396, 'Wizard hat (t)', 'A silly pointed hat, with colourful trim.', 1, NULL, NULL, 1, NULL, NULL, NULL, 352700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,2,0,0,0,0,2,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7397, 'Wizard hat (t)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 352700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7398, 'Enchanted robe', 'Enchanted Wizards robes.', 1, NULL, 32000, 48000, NULL, NULL, NULL, 50000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '2,1,0', '0,0,0,15,0,0,0,0,15,0,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{6,20}', 1.8, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7399, 'Enchanted top', 'Enchanted Wizards robes.', 1, NULL, 48000, 72000, NULL, NULL, NULL, 75100, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '3,1,0', '0,0,0,20,0,0,0,0,20,0,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{6,20}', 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7400, 'Enchanted hat', 'A three pointed hat of magic.', 1, NULL, 6000, 9000, NULL, NULL, NULL, 8845, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,4,0,0,0,0,4,0,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{6,20}', NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(7401, 'Enchanted robe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7402, 'Enchanted top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7403, 'Enchanted hat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7404, 'Red logs', 'A number of chemical covered wooden logs.', NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7405, 'Green logs', 'A number of chemical covered wooden logs.', NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7406, 'Blue logs', 'A number of chemical covered wooden logs.', NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7407, 'Dragon 2h sword', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7408, 'Draynor skull', 'I shouldn\'t joke; this is a grave matter.', NULL, NULL, NULL, NULL, 1, 'I found this in a grave at Draynor Manor.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7409, 'Magic secateurs', 'The only way to kill a Tanglefoot.', NULL, NULL, 75000, 75000, 1, 'I\'ll chat to Malignius Mortifer if I want another pair.', 40000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '7,9,-5,1,0,0,1,0,1,0,0,1,0,0,0', 5, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7410, 'Queen\'s secateurs', 'Contains the Fairy Queen\'s magical essence.', NULL, NULL, NULL, NULL, NULL, 'I can always find another Tanglefoot if I need more.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7411, 'Symptoms list', 'A list of the Fairy Queen\'s symptoms.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7413, 'Bird\'s nest', 'Full: ', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7414, 'Paddle', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7415, 'Paddle', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7416, 'Mole claw', 'A mole claw.', 1, NULL, 240, 360, NULL, NULL, NULL, 11800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(7417, 'Mole claw', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 11800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(7418, 'Mole skin', 'The skin of a large mole.', 1, NULL, 160, 240, NULL, NULL, NULL, 12000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(7419, 'Mole skin', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 12000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(7420, 'Mutated zygomite', 'A fun guy. No wait, that\'s awful. Plus it doesn\'t even make sense. (As Fungi) A bouncy fungus. (Level 74) A fun guy. No wait, that\'s awful.. (Level 86)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7421, 'Fungicide spray 10', 'Pumps fungicide.', NULL, NULL, 120, 180, NULL, NULL, 300, NULL, NULL, NULL, NULL, 3332, 823, 3334, 824, 820, 821, 822, 618, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{18,57}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7422, 'Fungicide spray 9', 'Pumps fungicide.', NULL, NULL, 120, 180, NULL, NULL, 300, NULL, NULL, NULL, NULL, 3332, 823, 3334, 824, 820, 821, 822, 618, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{18,57}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7423, 'Fungicide spray 8', 'Pumps fungicide.', NULL, NULL, 120, 180, NULL, NULL, 300, NULL, NULL, NULL, NULL, 3332, 823, 3334, 824, 820, 821, 822, 618, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{18,57}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7424, 'Fungicide spray 7', 'Pumps fungicide.', NULL, NULL, 120, 180, NULL, NULL, 300, NULL, NULL, NULL, NULL, 3332, 823, 3334, 824, 820, 821, 822, 618, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{18,57}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7425, 'Fungicide spray 6', 'Pumps fungicide.', NULL, NULL, 120, 180, NULL, NULL, 300, NULL, NULL, NULL, NULL, 3332, 823, 3334, 824, 820, 821, 822, 618, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{18,57}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7426, 'Fungicide spray 5', 'Pumps fungicide.', NULL, NULL, 120, 180, NULL, NULL, 300, NULL, NULL, NULL, NULL, 3332, 823, 3334, 824, 820, 821, 822, 618, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{18,57}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7427, 'Fungicide spray 4', 'Pumps fungicide.', NULL, NULL, 120, 180, NULL, NULL, 300, NULL, NULL, NULL, NULL, 3332, 823, 3334, 824, 820, 821, 822, 618, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{18,57}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7428, 'Fungicide spray 3', 'Pumps fungicide.', NULL, NULL, 120, 180, NULL, NULL, 300, NULL, NULL, NULL, NULL, 3332, 823, 3334, 824, 820, 821, 822, 618, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{18,57}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7429, 'Fungicide spray 2', 'Pumps fungicide.', NULL, NULL, 120, 180, NULL, NULL, 300, NULL, NULL, NULL, NULL, 3332, 823, 3334, 824, 820, 821, 822, 618, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{18,57}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7430, 'Fungicide spray 1', 'Pumps fungicide.', NULL, NULL, 120, 180, NULL, NULL, 300, NULL, NULL, NULL, NULL, 3332, 823, 3334, 824, 820, 821, 822, 618, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{18,57}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7431, 'Fungicide spray 0', 'Pumps fungicide.', NULL, NULL, 120, 180, NULL, NULL, 300, NULL, NULL, NULL, NULL, 3332, 823, 3334, 824, 820, 821, 822, 618, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{18,57}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7432, 'Fungicide', 'Does exactly what it says on the tin. (Kills Fungi.)', NULL, NULL, 4, 6, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{18,57}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7433, 'Wooden spoon', 'Spoooooon!', 1, NULL, 14, 21, NULL, NULL, 35, 44, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '4,5,-2,0,0,0,3,2,0,0,0,7,0,0,0', 6, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7434, 'Wooden spoon', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 44, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7435, 'Egg whisk', 'A large whisk of death.', 1, NULL, 20, 30, NULL, NULL, 45, 11, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, '5,3,-4,1,0,0,0,0,1,0,0,4,0,0,0', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7436, 'Egg whisk', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 11, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7437, 'Spork', 'Use the spork.', 1, NULL, 130, 195, NULL, NULL, 292, 196, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, '11,8,-2,0,0,0,2,1,0,0,0,12,0,0,0', 5, NULL, NULL, NULL, NULL, NULL, '{0,10}', 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7438, 'Spork', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 196, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7439, 'Spatula', 'A large spatula... of doom!', 1, NULL, 768, 1152, NULL, NULL, 1728, 953, NULL, NULL, NULL, 7047, 7040, 7046, 7039, 7045, 7044, 7043, 124, 3, 7, NULL, '-4,27,21,-4,0,0,0,0,0,-1,0,22,0,0,0', 7, NULL, 1, NULL, NULL, NULL, '{0,10}', 3.6, 100, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(7440, 'Spatula', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 953, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7441, 'Frying pan', 'Looks like it\'s non-stick too!', 1, NULL, 664, 996, NULL, NULL, 1494, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, NULL, '-4,-4,25,-4,0,0,0,0,0,0,0,20,0,0,0', 10, NULL, NULL, NULL, NULL, NULL, '{0,20}', 1.5, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7442, 'Frying pan', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7443, 'Skewer', 'Generally used for impaling fresh meat.', 1, NULL, 1280, 1920, NULL, NULL, 2880, 1712, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '20,29,-2,0,0,0,3,2,0,0,0,31,0,0,0', 6, NULL, NULL, NULL, NULL, NULL, '{0,30}', 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7444, 'Skewer', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1712, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7445, 'Rolling pin', 'That\'s how I roll!', 1, NULL, 5760, 8640, NULL, NULL, 12960, 8445, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '20,-2,39,0,0,0,0,0,0,0,0,36,4,0,0', 10, NULL, NULL, NULL, NULL, NULL, '{0,40}', 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7446, 'Rolling pin', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8445, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7447, 'Kitchen knife', 'A sharp, dependable knife, for filleting meat.', 1, NULL, 3200, 4800, NULL, NULL, 8000, 4686, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, '25,12,-4,1,0,0,0,0,1,0,0,24,0,0,0', 5, NULL, NULL, NULL, NULL, '2704,0,0,0', '{0,40}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7448, 'Kitchen knife', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4686, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7449, 'Meat tenderiser', 'Often used to soften tough meat up.', 1, NULL, 16600, 24900, NULL, NULL, 41500, 24700, NULL, NULL, NULL, 808, 823, 819, 824, 820, 821, 822, 1, 3, 6, NULL, '-4,-4,53,-4,0,0,0,0,0,0,0,48,0,0,0', 10, NULL, NULL, '2067,2066,2068', 1666, NULL, '{0,40}', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7450, 'Meat tenderiser', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 24700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7451, 'Cleaver', 'An effective tool for chopping tough meat.', 1, NULL, 10240, 15360, NULL, NULL, 24040, 15000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, '7,45,-2,0,0,0,1,0,0,0,0,44,0,0,0', 6, NULL, NULL, '390,390,381,390', 397, '2500,0,2517,0', '{0,40}', 0.5, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7452, 'Cleaver', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 15000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7453, 'Gloves', 'A pair of plain gloves.', NULL, NULL, 20, 30, NULL, NULL, 50, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '1,1,1,1,1,1,1,1,1,1,1,1,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7454, 'Gloves', 'A pair of bronze-coloured gloves.', NULL, NULL, 40, 60, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '2,2,2,1,2,2,2,2,1,2,1,2,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7455, 'Gloves', 'A pair of iron-coloured gloves.', NULL, NULL, 100, 150, NULL, NULL, 325, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '3,3,3,2,3,3,3,3,2,3,2,3,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7456, 'Gloves', 'A pair of steel-coloured gloves.', NULL, NULL, 200, 300, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '4,4,4,2,4,4,4,4,2,4,2,4,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7457, 'Gloves', 'A pair of black-coloured gloves.', NULL, NULL, 400, 600, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '5,5,5,3,5,5,5,5,3,5,3,5,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7458, 'Gloves', 'A pair of mithril-coloured gloves.', NULL, NULL, 600, 900, NULL, NULL, 1500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '6,6,6,3,6,6,6,6,3,6,3,6,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7459, 'Gloves', 'A pair of adamant-coloured gloves.', NULL, NULL, 1000, 1500, NULL, NULL, 2500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '7,7,7,4,7,7,7,7,4,7,4,7,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7460, 'Gloves', 'A pair of rune-coloured gloves.', NULL, NULL, 2000, 3000, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '8,8,8,4,8,8,8,8,4,8,4,8,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,13}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7461, 'Gloves', 'A pair of dragon-coloured gloves.', NULL, NULL, 40000, 60000, NULL, NULL, 100000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '9,9,9,5,9,9,9,9,5,9,5,9,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,41}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7462, 'Gloves', 'A pair of Barrows-themed gloves.', NULL, NULL, 40000, 60000, NULL, NULL, 100000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '12,12,12,6,12,12,12,12,6,12,6,12,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,41}', 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7463, 'Cornflour', 'It\'s cornflour in a pot.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7464, 'Book on chickens', 'A tatty old book belonging to the Wise Old Man of Draynor Village.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7465, 'Vanilla pod', 'Surprise, it looks like a vanilla pod.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7466, 'Cornflour', 'It\'s cornflour in a pot.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7468, 'Pot of cornflour', 'It\'s cornflour in a pot.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7470, 'Cornflour mixture', 'A mixture of milk, cream and cornflour.', NULL, NULL, NULL, NULL, 1, 'I\'ll have to get all the ingredients again.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7471, 'Milky mixture', 'It\'s a bucket of milk and cream.', NULL, NULL, NULL, NULL, 1, 'I\'ll have to get all the ingredients again.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7472, 'Cinnamon', 'Some cinnamon sticks.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7476, 'Brulee supreme', 'A pot of brulee supreme.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7477, 'Evil chicken\'s egg', 'What came first, the chicken or...', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7478, 'Dragon token', 'It\'s got a dragon on it.', NULL, NULL, NULL, NULL, 1, 'I got this by killing a Black Dragon. It might be hard to get another one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7479, 'Spicy stew', 'It\'s a meat and potato stew with fancy seasoning.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7480, 'Red spice (4)', 'Allows for equal distribution of spice.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7481, 'Red spice (3)', 'Allows for equal distribution of spice.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7482, 'Red spice (2)', 'Allows for equal distribution of spice.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7483, 'Red spice (1)', 'Allows for equal distribution of spice.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7484, 'Orange spice (4)', 'Allows for equal distribution of spice.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7485, 'Orange spice (3)', 'Allows for equal distribution of spice.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7486, 'Orange spice (2)', 'Allows for equal distribution of spice.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7487, 'Orange spice (1)', 'Allows for equal distribution of spice.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7488, 'Brown spice (4)', 'Allows for equal distribution of spice.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7489, 'Brown spice (3)', 'Allows for equal distribution of spice.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7490, 'Brown spice (2)', 'Allows for equal distribution of spice.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7491, 'Brown spice (1)', 'Allows for equal distribution of spice.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7492, 'Yellow spice (4)', 'Allows for equal distribution of spice.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7493, 'Yellow spice (3)', 'Allows for equal distribution of spice.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7494, 'Yellow spice (2)', 'Allows for equal distribution of spice.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7495, 'Yellow spice (1)', 'Allows for equal distribution of spice.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7496, 'Empty spice shaker', 'Allows for equal distribution of spice.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7497, 'Dirty blast', 'A cool refreshing fruit mix. With ash in for some reason.', NULL, NULL, 12, 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7498, 'Antique lamp', 'I wonder what happens if I rub it.', NULL, NULL, NULL, NULL, 1, 'Are you sure you want to destroy the lamp? You won\'t be able to get another one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7499, 'Evil dave', 'He seems to like wearing black.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7500, 'Dwarf', 'A short angry guy.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7502, 'Lumbridge guide', 'He provides new players with useful information.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7504, 'Osman', 'He looks a little shifty.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7505, 'Pirate pete', 'A shifty-looking character.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7506, 'Sir amik varze', 'Leader of the White Knights.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7507, 'Skrach', 'He\'s been frozen in time.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7508, 'Asgoldian ale', 'There appears to be a coin in the bottom. Liked by dwarves.', NULL, NULL, NULL, 1, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7509, 'Dwarven rock cake', 'Hot: A strange looking cake. Cooled: Cool and heavy as a brick. Only for dwarf consumption.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 8.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7510, 'Dwarven rock cake', 'Hot: A strange looking cake. Cooled: Cool and heavy as a brick. Only for dwarf consumption.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 8.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7511, 'Slop of compromise', 'Two out of two goblin generals prefer it!', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7512, 'Soggy bread', 'Previously a nice crispy loaf of bread. Now just kind of icky.', NULL, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7513, 'Spicy maggots', 'They clearly taste so much better this way!', NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7514, 'Dyed orange', 'Orange slices which have been dyed, but it looks more like they died.', 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7515, 'Breadcrumbs', 'Glad these aren\'t in my bed.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7516, 'Kelp', 'Those leaves look useful!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7517, 'Ground kelp', 'Kelp flakes. Smells of the sea.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7518, 'Crab meat', 'A smelly meat.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7519, 'Crab meat', 'A smelly meat.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7521, 'Cooked crab meat', 'Nice and Tasty!', 1, NULL, 20, 30, NULL, NULL, NULL, 219, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7522, 'Cooked crab meat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 219, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7523, 'Cooked crab meat', 'Nice and Tasty!', 1, NULL, 20, 30, NULL, NULL, NULL, 226, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7524, 'Cooked crab meat', 'Nice and Tasty!', 1, NULL, 20, 30, NULL, NULL, NULL, 226, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7525, 'Cooked crab meat', 'Nice and Tasty!', 1, NULL, 20, 30, NULL, NULL, NULL, 226, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7526, 'Cooked crab meat', 'Nice and Tasty!', 1, NULL, 20, 30, NULL, NULL, NULL, 226, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7527, 'Ground crab meat', 'A smelly paste.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7528, 'Ground cod', 'A smelly paste.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7529, 'Raw fishcake', 'Would taste nicer if I cooked it.', NULL, NULL, 40, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7530, 'Cooked fishcake', 'Mmmm, reminds me of the seaside.', NULL, NULL, 40, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7532, 'Mudskipper hide', 'Hmmm, what can I use this for?', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7534, 'Fishbowl helmet', 'You\'ll look daft, but at least you won\'t drown!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7535, 'Diving apparatus', 'I\'ll need a helmet to make this work.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7536, 'Fresh crab claw', 'Fresh off the crab itself.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7537, 'Crab claw', 'If it is good enough for crabs, it\'s good enough for me.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,0,0,3,4,2,0,0,1,1,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7538, 'Fresh crab shell', 'Fresh off the crab itself.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7539, 'Crab helmet', 'If it\'s good enough for crabs, it\'s good enough for me!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-3,-1,4,5,3,-1,4,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7540, 'Broken crab claw', 'Darn, it\'s useless now.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7541, 'Broken crab shell', 'Darn, it\'s useless now.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7542, 'Cake of guidance', 'Imbued with knowledge itself.', NULL, NULL, NULL, NULL, 1, 'Maybe Traiborn will have another.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7543, 'Raw guide cake', 'Now all I need to do is cook it.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7544, 'Enchanted egg', 'Egg containing knowledge.', NULL, NULL, 1, 2, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7545, 'Enchanted milk', 'Guiding milk.', NULL, NULL, 2, 3, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7546, 'Enchanted flour', 'A pot of special flour.', NULL, NULL, 4, 6, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7547, 'Druid pouch', 'A druid pouch.', NULL, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7548, 'Potato seed', 'A potato seed - plant in an allotment.', 1, NULL, NULL, NULL, NULL, NULL, 8, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7549, 'Potato seed', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7550, 'Onion seed', 'An onion seed - plant in an allotment.', 1, NULL, NULL, NULL, NULL, NULL, 10, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7551, 'Onion seed', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7552, 'Mithril arrow', 'Arrows with mithril heads.', 1, NULL, 30, 45, NULL, NULL, 76, 24, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,22,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7553, 'Mithril arrow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7554, 'Fire rune', 'One of the 4 basic elemental Runes.', 1, NULL, 2, 3, NULL, NULL, 17, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7555, 'Fire rune', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7556, 'Water rune', 'One of the 4 basic elemental Runes.', 1, NULL, 2, 3, NULL, NULL, 17, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7557, 'Water rune', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7558, 'Air rune', 'One of the 4 basic elemental Runes.', 1, NULL, 2, 3, NULL, NULL, 17, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7559, 'Air rune', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7560, 'Chaos rune', 'Used for small missile spells.', 1, NULL, 18, 28, NULL, NULL, 140, 65, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7561, 'Chaos rune', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7562, 'Tomato seed', 'A tomato seed - plant in an allotment.', 1, NULL, NULL, NULL, NULL, NULL, 10, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7563, 'Tomato seed', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7564, 'Balloon toad', 'An inflated toad tied to a rock like a balloon.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7565, 'Balloon toad', 'An inflated toad tied to a rock like a balloon.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7566, 'Raw jubbly', 'The uncooked meat of a Jubbly bird.', 1, NULL, 40, 60, NULL, NULL, NULL, 422, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7567, 'Raw jubbly', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 422, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7568, 'Cooked jubbly', 'Lovely jubbly!', 1, NULL, 60, 90, NULL, NULL, NULL, 944, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7569, 'Cooked jubbly', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 944, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7571, 'Burnt jubbly', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7572, 'Red banana', 'Like a banana only redder.', NULL, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7573, 'Tchiki monkey nuts', 'Like monkey nuts only tchikier.', NULL, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7574, 'Sliced red banana', 'Perfect for stuffing snakes.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7575, 'Tchiki nut paste', 'Mixing this with jam would just be wrong.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7576, 'Snake corpse', 'Like a snake only not alive.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7577, 'Raw stuffed snake', 'This snake is stuffed right up.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7578, 'Odd stuffed snake', 'Is this really what you wanted to do?', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7579, 'Stuffed snake', 'Fit for a Monkey King. (cooked)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7581, 'Overgrown hellcat', 'Inventory: Your hellish pet cat!!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7582, 'Hell cat', 'Inventory: Your hellish pet cat!!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7583, 'Hell-kitten', 'Inventory: Your hellish pet cat!!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7585, 'Wily hellcat', 'Inventory: Your hellish pet cat!!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7586, 'Dummy', 'I can train on this', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7587, 'Coffin', 'Filled with items. Like a bank, but spookier!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7588, 'Coffin', 'Filled with items. Like a bank, but spookier!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7589, 'Coffin', 'Filled with items. Like a bank, but spookier!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7590, 'Coffin', 'Filled with items. Like a bank, but spookier!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7591, 'Coffin', 'Filled with items. Like a bank, but spookier!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7592, 'Zombie shirt', 'Aside from the braaaains on the lapel, it\'s still quite good.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7593, 'Zombie trousers', 'Good for a shamble about town.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7594, 'Zombie mask', 'I look 40,000 years old in this...', NULL, NULL, 8, 12, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7595, 'Zombie gloves', 'Smells pretty funky.', NULL, NULL, 8, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7596, 'Zombie boots', 'Thrilling.', NULL, NULL, 8, 12, NULL, NULL, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7597, 'Item', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7598, 'Item', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7599, 'Item', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7600, 'Item', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7601, 'Item', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7602, 'Item', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7603, 'Item', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7604, 'Item', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7605, 'Item', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7606, 'Item', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7607, 'Item', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7608, 'Item', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7609, 'Item', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7610, 'Item', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7611, 'Item', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7612, 'Item', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7613, 'Item', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7614, 'Item', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7615, 'Item', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7616, 'Item', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7617, 'Item', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7618, 'Item', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7620, 'Silvthrill rod', 'A silvery rod of mithril and silver with sapphire on top.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7622, 'Bucket of rubble', 'A bucket partially filled with rubble. / A bucket totally filled with rubble.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7624, 'Bucket of rubble', 'A bucket partially filled with rubble. / A bucket totally filled with rubble.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7626, 'Bucket of rubble', 'A bucket partially filled with rubble. / A bucket totally filled with rubble.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7628, 'Plaster fragment', 'A fragment of plaster with some impressions on it.', NULL, NULL, NULL, NULL, 1, 'You can get another plaster fragment by exploring near the Inn in Burgh de Rott.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7629, 'Dusty scroll', 'An ancient tattered scroll.', NULL, NULL, NULL, NULL, 1, 'You can get another scroll by exploring near the Inn in Burgh de Rott.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7632, 'Temple library key', 'A key for the Temple Library. (In Aid of the Myreque)', NULL, NULL, NULL, NULL, 1, 'You can get another temple key by talking to Drezel.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7633, 'Ancient book', 'The unholy book of a forgotten god.', NULL, NULL, NULL, NULL, NULL, 'You can get another Ancient Book by searching the library in the temple on the Salve.', 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '4,4,4,6,0,4,4,4,6,0,2,0,0,5,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(7634, 'Battered tome', 'An ancient history book.', NULL, NULL, NULL, NULL, 1, 'You can get another Crumbling tome by searching the library in the temple on the Salve.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7635, 'Leather book', 'An ancient leather-bound tome.', NULL, NULL, NULL, NULL, 1, 'You can get another Leather book by searching the library in the temple on the Salve.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7636, 'Rod dust', 'Rod of Ivandis dust.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7637, 'Silvthrill rod', 'A silvery rod of mithril and silver with sapphire on top.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7638, 'Silvthrill rod', 'A silvery rod of mithril and silver with sapphire on top.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7639, 'Rod of ivandis(10)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, NULL, NULL, '0,-1,7,4,0,2,3,1,4,0,0,3,0,0,0', 1, 1, 1, '419,419,419,419', 420, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7640, 'Rod of ivandis(9)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, NULL, NULL, '0,-1,7,4,0,2,3,1,4,0,0,3,0,0,0', 1, 1, 1, '419,419,419,419', 420, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7641, 'Rod of ivandis(8)', 'A fully charged rod. (if less than 10) A partialy charged rod.', NULL, NULL, 400, 600, 1, NULL, NULL, NULL, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '0,-1,7,4,0,2,3,1,4,0,0,3,0,0,0', 1, 1, 1, '419,419,419,419', 420, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7642, 'Rod of ivandis(7)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, NULL, NULL, '0,-1,7,4,0,2,3,1,4,0,0,3,0,0,0', 1, 1, 1, '419,419,419,419', 420, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7643, 'Rod of ivandis(6)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, NULL, NULL, '0,-1,7,4,0,2,3,1,4,0,0,3,0,0,0', 1, 1, 1, '419,419,419,419', 420, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7644, 'Rod of ivandis(5)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, NULL, NULL, '0,-1,7,4,0,2,3,1,4,0,0,3,0,0,0', 1, 1, 1, '419,419,419,419', 420, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7645, 'Rod of ivandis(4)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, NULL, NULL, '0,-1,7,4,0,2,3,1,4,0,0,3,0,0,0', 1, 1, 1, '419,419,419,419', 420, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7646, 'Rod of ivandis(3)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, NULL, NULL, '0,-1,7,4,0,2,3,1,4,0,0,3,0,0,0', 1, 1, 1, '419,419,419,419', 420, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7647, 'Rod of ivandis(2)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, NULL, NULL, '0,-1,7,4,0,2,3,1,4,0,0,3,0,0,0', 1, 1, 1, '419,419,419,419', 420, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7648, 'Rod of ivandis(1)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, NULL, NULL, '0,-1,7,4,0,2,3,1,4,0,0,3,0,0,0', 1, 1, 1, '419,419,419,419', 420, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7649, 'Rod clay mould', 'Rod of Ivandis mould.', NULL, NULL, 40, 60, 1, 'You can make another one of these by using clay on Ivandis\' coffin.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7650, 'Silver dust', 'It\'s ground up silver.', 1, NULL, 80, 120, NULL, NULL, NULL, 316, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.33, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7651, 'Silver dust', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 316, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7652, 'Guthix balance(unf)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 96, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7653, 'Guthix balance(unf)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 96, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7654, 'Guthix balance(unf)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 77, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7655, 'Guthix balance(unf)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 77, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7656, 'Guthix balance(unf)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 58, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7657, 'Guthix balance(unf)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 58, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7658, 'Guthix balance(unf)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7659, 'Guthix balance(unf)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7660, 'Guthix balance(4)', 'A potion of harralander, red spiders eggs, garlic and silver dust.', 1, NULL, 80, 120, NULL, NULL, NULL, 140, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7661, 'Guthix balance(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 140, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7662, 'Guthix balance(3)', 'A potion of harralander, red spiders eggs, garlic and silver dust.', 1, NULL, 80, 120, NULL, NULL, NULL, 168, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7663, 'Guthix balance(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 168, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7664, 'Guthix balance(2)', 'A potion of harralander, red spiders eggs, garlic and silver dust.', 1, NULL, 80, 120, NULL, NULL, NULL, 132, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7665, 'Guthix balance(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 132, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7666, 'Guthix balance(1)', 'A potion of harralander, red spiders eggs, garlic and silver dust.', 1, NULL, 80, 120, NULL, NULL, NULL, 66, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7667, 'Guthix balance(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 66, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(7668, 'Gadderhammer', 'A specially crafted hammer with strange markings on it.', 1, NULL, 1200, 1800, NULL, NULL, 3000, 1615, NULL, NULL, NULL, 1662, 823, 1663, 1664, 1663, 1663, 1663, 27, 3, 5, NULL, '-4,-4,35,-4,0,0,0,0,0,0,0,35,0,0,0', 10, NULL, 1, '419,419,419,419', 420, NULL, NULL, 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7669, 'Gadderhammer', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1615, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7671, 'Boxing gloves', 'I think they look a bit silly.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3677, 823, 3680, 824, 3680, 3680, 3680, 1386, 3, 4, NULL, '0,0,0,0,0,0,1,2,0,0,0,0,0,0,0', 9, NULL, 1, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7673, 'Boxing gloves', 'I think they look a bit silly.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3677, 823, 3680, 824, 3680, 3680, 3680, 1386, 3, 4, NULL, '0,0,0,0,0,0,1,2,0,0,0,0,0,0,0', 9, NULL, 1, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7675, 'Wooden sword', 'A less-than razor sharp sword.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '4,3,-2,0,0,0,2,1,0,0,0,5,0,0,0', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7676, 'Wooden shield', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7677, 'Treasure stone', 'It knows where the treasure is.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7678, 'Prize key', 'You can use this to open the prize chest!', NULL, NULL, NULL, NULL, NULL, NULL, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7679, 'Pugel', 'A good tool for bashing someone.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, 14, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7680, 'Pugel', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7681, 'Game book', 'Party Pete\'s Bumper Book Of Games', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7682, 'Hoop', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7683, 'Hoop', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7684, 'Dart', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7685, 'Dart', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7686, 'Bow and arrow', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7687, 'Bow and arrow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7688, 'Kettle', 'The kettle is empty.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7689, 'Kettle', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7690, 'Full kettle', 'It\'s full of cold water.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7691, 'Hot kettle', 'It\'s full of boiling water.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7692, 'Pot of tea (4)', 'I\'d really like a nice cup of tea.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7693, 'Pot of tea (4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7694, 'Pot of tea (3)', 'I\'d really like a nice cup of tea.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7695, 'Pot of tea (3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7696, 'Pot of tea (2)', 'I\'d really like a nice cup of tea.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7697, 'Pot of tea (2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7698, 'Pot of tea (1)', 'I\'d really like a nice cup of tea.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7699, 'Pot of tea (1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7700, 'Teapot with leaves', 'Add boiling water to make a tea.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7701, 'Teapot with leaves', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7702, 'Teapot', 'This teapot is empty.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7703, 'Teapot', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7704, 'Pot of tea (4)', 'I\'d really like a nice cup of tea.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7705, 'Pot of tea (4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7706, 'Pot of tea (3)', 'I\'d really like a nice cup of tea.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7707, 'Pot of tea (3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7708, 'Pot of tea (2)', 'I\'d really like a nice cup of tea.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7709, 'Pot of tea (2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7710, 'Pot of tea (1)', 'I\'d really like a nice cup of tea.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7711, 'Pot of tea (1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7712, 'Teapot with leaves', 'Add boiling water to make a tea.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7713, 'Teapot with leaves', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7714, 'Teapot', 'This teapot is empty.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7715, 'Teapot', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7716, 'Pot of tea (4)', 'I\'d really like a nice cup of tea.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7717, 'Pot of tea (4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7718, 'Pot of tea (3)', 'I\'d really like a nice cup of tea.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7719, 'Pot of tea (3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7720, 'Pot of tea (2)', 'I\'d really like a nice cup of tea.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7721, 'Pot of tea (2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7722, 'Pot of tea (1)', 'I\'d really like a nice cup of tea.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7723, 'Pot of tea (1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7724, 'Teapot with leaves', 'Add boiling water to make a tea.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7725, 'Teapot with leaves', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7726, 'Teapot', 'This teapot is empty.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7727, 'Teapot', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7728, 'Empty cup', 'An empty cup.', 1, NULL, NULL, 1, NULL, NULL, 1, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7729, 'Empty cup', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7730, 'Cup of tea', 'A nice cup of tea.', 1, NULL, 4, 6, NULL, NULL, 10, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7731, 'Cup of tea', 'A nice cup of tea.', 1, NULL, 4, 6, NULL, NULL, 10, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7732, 'Porcelain cup', 'A porcelain cup.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7733, 'Cup of tea', 'A nice cup of tea.', 1, NULL, 4, 6, NULL, NULL, 10, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7734, 'Cup of tea', 'A nice cup of tea.', 1, NULL, 4, 6, NULL, NULL, 10, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7735, 'Porcelain cup', 'A porcelain cup.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7736, 'Cup of tea', 'A nice cup of tea.', 1, NULL, 4, 6, NULL, NULL, 10, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7737, 'Cup of tea', 'A nice cup of tea.', 1, NULL, 4, 6, NULL, NULL, 10, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7738, 'Tea leaves', 'Mmm, how about a nice cup of tea?', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7739, 'Tea leaves', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7740, 'Beer', 'A glass of frothy ale.', 1, NULL, NULL, 1, NULL, NULL, NULL, 151, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7741, 'Beer', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7742, 'Beer glass', 'I need to fill this with beer.', 1, NULL, NULL, 1, NULL, NULL, 1, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.05, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7743, 'Beer glass', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7744, 'Asgarnian ale', 'Probably the finest readily-available ale in Asgarnia.', 1, NULL, NULL, 1, NULL, NULL, 3, 131, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7745, 'Asgarnian ale', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7746, 'Greenman\'s ale', 'A glass of frothy ale.', 1, NULL, NULL, 1, NULL, NULL, 2, 569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7747, 'Greenman\'s ale', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7748, 'Dragon bitter', 'A glass of bitter.', 1, NULL, NULL, 1, NULL, NULL, 2, 523, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7749, 'Dragon bitter', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7750, 'Moonlight mead', 'A foul smelling brew.', 1, NULL, 2, 3, NULL, NULL, 5, 14, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7751, 'Moonlight mead', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7752, 'Cider', 'A glass of Cider', 1, NULL, NULL, 1, NULL, NULL, 2, 1539, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7753, 'Cider', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7754, 'Chef\'s delight', 'A fruity, full-bodied ale.', 1, NULL, NULL, 1, NULL, NULL, NULL, 2371, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7755, 'Chef\'s delight', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7756, 'Paintbrush', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7757, 'Paintbrush', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7758, 'Rusty sword', 'A decent-enough weapon gone rusty.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7759, 'Toy soldier', 'Nice bit of crafting.', 1, NULL, 4, 6, 1, NULL, NULL, 3140, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7760, 'Toy soldier', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3140, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7761, 'Toy soldier (wound)', 'Nice bit of crafting.', 1, NULL, 4, 6, 1, NULL, NULL, 3123, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7762, 'Toy soldier (wound)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7763, 'Toy doll', 'In inventory: Nice bit of crafting! When released: Nice bit of crafting that...', 1, NULL, 4, 6, NULL, NULL, NULL, 3236, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7764, 'Toy doll', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3236, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7765, 'Toy doll (wound)', 'In inventory: Nice bit of crafting! When released: Nice bit of crafting that...', 1, NULL, 4, 6, NULL, NULL, NULL, 3289, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7766, 'Toy doll (wound)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7767, 'Toy mouse', 'Nice bit of crafting!', 1, NULL, 4, 6, NULL, NULL, 1705, 3384, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7768, 'Toy mouse', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3384, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7769, 'Toy mouse (wound)', 'Nice bit of crafting!', 1, NULL, 4, 6, NULL, NULL, 1705, 3484, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7770, 'Toy mouse (wound)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7771, 'Clockwork cat', 'Inventory: Nice bit of crafting!As a follower: An amazing piece of crafting.', 1, NULL, 4, 6, 1, NULL, NULL, 2930, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7772, 'Clockwork cat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2930, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7773, 'Branch', 'I can use this to make a lyre.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7774, 'Reward token', 'Blue/Red/Yellow reward token exchanged at Burgh de Rott/Paterdomus.', NULL, NULL, NULL, NULL, 1, 'Warning! If you destroy this item, you will lose ALL rewards that it relates to and you will have to make another trek in order to get another one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7775, 'Reward token', 'Blue/Red/Yellow reward token exchanged at Burgh de Rott/Paterdomus.', NULL, NULL, NULL, NULL, 1, 'Warning! If you destroy this item, you will lose ALL rewards that it relates to and you will have to make another trek in order to get another one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7776, 'Reward token', 'Blue/Red/Yellow reward token exchanged at Burgh de Rott/Paterdomus.', NULL, NULL, NULL, NULL, 1, 'Warning! If you destroy this item, you will lose ALL rewards that it relates to and you will have to make another trek in order to get another one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7777, 'Long vine', 'A long section of vine made up of lots of shorter sections.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7778, 'Short vine', 'A short section of vines.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7779, 'Fishing tome', 'A tome of learning that focuses on the Fishing skill.', NULL, NULL, 2000, 3000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7780, 'Fishing tome', 'A tome of learning that focuses on the Fishing skill.', NULL, NULL, 2000, 3000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7781, 'Fishing tome', 'A tome of learning that focuses on the Fishing skill.', NULL, NULL, 2000, 3000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7782, 'Agility tome', 'A tome of learning that focuses on Agility.', NULL, NULL, 2000, 3000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7783, 'Agility tome', 'A tome of learning that focuses on Agility.', NULL, NULL, 2000, 3000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7784, 'Agility tome', 'A tome of learning that focuses on Agility.', NULL, NULL, 2000, 3000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7785, 'Thieving tome', 'A tome of learning that focuses on the Thieving skill.', NULL, NULL, 2000, 3000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7786, 'Thieving tome', 'A tome of learning that focuses on the Thieving skill.', NULL, NULL, 2000, 3000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7787, 'Thieving tome', 'A tome of learning that focuses on the Thieving skill.', NULL, NULL, 2000, 3000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7788, 'Slayer tome', 'A tome of learning which focuses on the Slayer skill.', NULL, NULL, 2000, 3000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7789, 'Slayer tome', 'A tome of learning which focuses on the Slayer skill.', NULL, NULL, 2000, 3000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7790, 'Slayer tome', 'A tome of learning which focuses on the Slayer skill.', NULL, NULL, 2000, 3000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7791, 'Mining tome', 'A tome of learning that focuses on the Mining skill.', NULL, NULL, 2000, 3000, NULL, NULL, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7792, 'Mining tome', 'A tome of learning that focuses on the Mining skill.', NULL, NULL, 2000, 3000, NULL, NULL, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7793, 'Mining tome', 'A tome of learning that focuses on the Mining skill.', NULL, NULL, 2000, 3000, NULL, NULL, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7794, 'Firemaking tome', 'A tome of learning that focuses on Firemaking.', NULL, NULL, 2000, 3000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7795, 'Firemaking tome', 'A tome of learning that focuses on Firemaking.', NULL, NULL, 2000, 3000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7796, 'Firemaking tome', 'A tome of learning that focuses on Firemaking.', NULL, NULL, 2000, 3000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7797, 'Woodcutting tome', 'A tome of learning that focuses on the Woodcutting skill.', NULL, NULL, 2000, 3000, NULL, NULL, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7798, 'Woodcutting tome', 'A tome of learning that focuses on the Woodcutting skill.', NULL, NULL, 2000, 3000, NULL, NULL, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7799, 'Woodcutting tome', 'A tome of learning that focuses on the Woodcutting skill.', NULL, NULL, 2000, 3000, NULL, NULL, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7800, 'Snail shell', 'A shell from a giant snail.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7801, 'Snake hide', 'Scaly but not slimy!', 1, NULL, 14, 21, NULL, NULL, NULL, 1618, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(7802, 'Snake hide', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1618, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(7803, 'Yin yang amulet', 'A non-magical copy of the make-over mage\'s amulet.', NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7804, 'Picture', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, NULL, NULL, '0,0,11,0,0,0,0,0,0,0,0,14,0,0,0', 3, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7805, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7806, 'Anger sword', 'A heavy duty sword.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '20,20,20,0,0,0,2,1,0,0,0,5,0,0,0', 5, NULL, NULL, '381,390,390,390', 397, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7807, 'Anger battleaxe', 'A heavy duty axe.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, '20,20,20,0,0,0,0,0,0,-1,0,13,0,0,0', 2, NULL, NULL, '395,395,395,395', 397, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7808, 'Anger mace', 'A heavy duty mace.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, '20,20,20,0,0,0,0,0,0,0,0,5,1,0,0', 8, NULL, NULL, '390,390,381,390', 397, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7809, 'Anger spear', 'A heavy duty spear.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, NULL, NULL, '20,20,20,0,0,1,1,0,0,0,0,6,0,0,0', 14, NULL, 1, '2080,2081,2082,2080', 2079, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7810, 'Jug of vinegar', 'This wine clearly did not age well.', NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7811, 'Pot of vinegar', 'Well, this pot is certainly full of vinegar and no mistake.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7812, 'Goblin skull', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7813, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7814, 'Goblin skull', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(7815, 'Bear ribs', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7816, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7817, 'Bear ribs', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7818, 'Ram skull', 'Unpolished: This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7819, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7820, 'Ram skull', 'Unpolished: This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7821, 'Unicorn bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7822, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7823, 'Unicorn bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7824, 'Giant rat bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7825, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7826, 'Giant rat bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7827, 'Giant bat wing', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7828, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7829, 'Giant bat wing', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7830, 'Wolf bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7831, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7832, 'Wolf bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7833, 'Bat wing', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7834, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7835, 'Bat wing', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7836, 'Rat bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7837, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7838, 'Rat bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7839, 'Baby dragon bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7840, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7841, 'Baby dragon bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7842, 'Ogre ribs', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7843, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7844, 'Ogre ribs', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7845, 'Jogre bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7846, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7847, 'Jogre bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7848, 'Zogre bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7849, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7850, 'Zogre bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7851, 'Mogre bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7852, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7853, 'Mogre bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7854, 'Monkey paw', 'This needs a good polish./ This belongs in a museum!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7855, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7856, 'Monkey paw', 'This needs a good polish./ This belongs in a museum!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7857, 'Dagannoth ribs', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7858, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7859, 'Dagannoth ribs', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7860, 'Snake spine', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7861, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7862, 'Snake spine', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7863, 'Zombie bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7864, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7865, 'Zombie bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7866, 'Werewolf bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7867, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7868, 'Werewolf bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7869, 'Moss giant bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7870, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7871, 'Moss giant bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7872, 'Fire giant bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7873, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7874, 'Fire giant bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7875, 'Ice giant ribs', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7876, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7877, 'Ice giant ribs', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7878, 'Terrorbird wing', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7879, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7880, 'Terrorbird wing', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7881, 'Ghoul bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7882, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7883, 'Ghoul bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7884, 'Troll bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7885, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7886, 'Troll bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7887, 'Seagull wing', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7888, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7889, 'Seagull wing', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7890, 'Undead cow ribs', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7891, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7892, 'Undead cow ribs', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7893, 'Experiment bone', 'Unpolished: This needs a good polish. Polished: This bone belongs in a museum!', NULL, NULL, NULL, NULL, NULL, NULL, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7894, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7895, 'Experiment bone', 'Unpolished: This needs a good polish. Polished: This bone belongs in a museum!', NULL, NULL, NULL, NULL, NULL, NULL, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7896, 'Rabbit bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7897, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7898, 'Rabbit bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7899, 'Basilisk bone', 'Dirty:This bone needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7900, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7901, 'Basilisk bone', 'Dirty:This bone needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7902, 'Desert lizard bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7903, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7904, 'Desert lizard bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7905, 'Cave goblin skull', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7906, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7907, 'Cave goblin skull', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7908, 'Big frog leg', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7909, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7910, 'Big frog leg', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7911, 'Vulture wing', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7912, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7913, 'Vulture wing', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7914, 'Jackal bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7915, 'Bone in vinegar', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7916, 'Jackal bone', 'This needs a good polish.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7917, 'Ram skull helm', 'Makes me feel baaad to the bone.', NULL, NULL, NULL, NULL, NULL, 'The ram skull helm looks like it will fall apart if you drop it. You would have to go to the Odd Old Man for a replacement.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,0,-2,19,21,16,0,19,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7918, 'Bonesack', 'The Bonesack is a little old item that protects like leather.', NULL, NULL, NULL, NULL, NULL, 'The bonesack looks like it will fall apart if you drop it. You would have to go to the Odd Old Man for a replacement.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,4,4,4,4,4,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7919, 'Bottle of wine', 'A very good vintage.', 1, NULL, 200, 300, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7920, 'Bottle of wine', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7921, 'Empty wine bottle', 'This one has clearly been taken down and passed around.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7922, 'Al kharid flyer', 'The money off voucher has expired.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7927, 'Easter ring', 'A ring given to you by the Easter Bunny.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7928, 'Easter egg', 'Happy Easter.', 1, NULL, 4, 6, NULL, NULL, NULL, 64747137, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7929, 'Easter egg', 'Happy Easter.', 1, NULL, 4, 6, NULL, NULL, NULL, 64747137, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7930, 'Easter egg', 'Happy Easter.', 1, NULL, 4, 6, NULL, NULL, NULL, 64747137, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7931, 'Easter egg', 'Happy Easter.', 1, NULL, 4, 6, NULL, NULL, NULL, 64747137, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7932, 'Easter egg', 'Happy Easter.', 1, NULL, 4, 6, NULL, NULL, NULL, 64747137, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7933, 'Easter egg', 'Happy Easter.', 1, NULL, 4, 6, NULL, NULL, NULL, 64747137, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7934, 'Field ration', 'A field ration to help your wounds go away.', 1, NULL, 120, 180, NULL, NULL, 390, 171, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7935, 'Field ration', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 171, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(7936, 'Pure essence', 'An uncharged Rune Stone of extra capability.', 1, NULL, 1, 2, NULL, NULL, 1, 109, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(7937, 'Pure essence', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 109, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(7939, 'Tortoise shell', 'A word in your shell-like.', 1, NULL, 400, 600, NULL, NULL, NULL, 13600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6.8, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(7940, 'Tortoise shell', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 13600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(7941, 'Iron sheet', 'A sturdy sheet of iron.', NULL, NULL, 12, 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.75, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7942, 'Fresh monkfish', 'Perfect for storing. Not so good for eating.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7943, 'Fresh monkfish', 'Perfect for storing. Not so good for eating.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7944, 'Raw monkfish', 'I should try cooking this./Freshly caught. Needs cooking. (Fresh Monkfish)', 1, NULL, 92, 138, NULL, NULL, NULL, 618, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(7945, 'Raw monkfish', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 618, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(7946, 'Monkfish', 'A tasty fish.', 1, NULL, 92, 138, NULL, NULL, NULL, 617, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(7947, 'Monkfish', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 617, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(7949, 'Burnt monkfish', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7950, 'Bone seeds', 'A highly portable army of skeletal magic.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7951, 'Herman\'s book', 'A book taken from the desk of Herman Caranos.', NULL, NULL, NULL, NULL, 1, NULL, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.09, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7952, 'Picture', 'Useless without the head.', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7953, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7955, 'Burnt shrimp', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7956, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7957, 'White apron', 'A mostly clean apron.', 1, NULL, NULL, 1, NULL, NULL, 2, 169, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.45, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7958, 'Mining prop', 'A prop for holding up a tunnel roof.', NULL, NULL, 4, 6, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7959, 'Heavy box', 'A box full of stolen Etceterian items.', NULL, NULL, 4, 6, 1, 'You can get your box back by talking to the guard by the dungeon entrance in Etceteria.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7960, 'Empty box', 'It says \'To the dungeons\' on the side.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7961, 'Burnt diary', 'A diary with one/two/three/four/five page(s).', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7962, 'Burnt diary', 'A diary with one/two/three/four/five page(s).', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7963, 'Burnt diary', 'A diary with one/two/three/four/five page(s).', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7964, 'Burnt diary', 'A diary with one/two/three/four/five page(s).', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7965, 'Burnt diary', 'A diary with one/two/three/four/five page(s).', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7967, 'Engine', 'A dwarf-made coal engine. It looks very sturdy.', NULL, NULL, 2, 3, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7969, 'Pulley beam', 'A beam with a pulley attached.', NULL, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7970, 'Long pulley beam', 'A long beam with a pulley attached.', NULL, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7971, 'Longer pulley beam', 'A very long beam with a pulley attached.', NULL, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7972, 'Lift manual', 'The manual for an AMCE Lift-In-A-Box.', NULL, NULL, 2, 3, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7973, 'Beam', 'A wooden beam.', NULL, NULL, 2, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7975, 'Crawling hand', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7976, 'Cockatrice head', 'I should get it stuffed!', NULL, NULL, 800, 1200, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7977, 'Basilisk head', 'I should get it stuffed!', NULL, NULL, 1600, 2400, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7978, 'Kurask head', 'I should get it stuffed!', NULL, NULL, 2400, 3600, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7979, 'Abyssal head', 'I should get it stuffed!', NULL, NULL, 4800, 7200, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7980, 'Kbd heads', 'I should get it stuffed!', NULL, NULL, 20000, 30000, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7981, 'Kq head', 'I should get it stuffed!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7982, 'Crawling hand', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7983, 'Cockatrice head', 'I should get it stuffed!', NULL, NULL, 800, 1200, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7984, 'Basilisk head', 'I should get it stuffed!', NULL, NULL, 1600, 2400, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7985, 'Kurask head', 'I should get it stuffed!', NULL, NULL, 2400, 3600, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7986, 'Abyssal head', 'I should get it stuffed!', NULL, NULL, 4800, 7200, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7987, 'Kbd heads', 'I should get it stuffed!', NULL, NULL, 20000, 30000, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7988, 'Kq head', 'I should get it stuffed!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7989, 'Big bass', 'Whopper! I should get this stuffed!', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7990, 'Big bass', 'Whopper! I should get this stuffed!', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7991, 'Big swordfish', 'Whopper! I should get this stuffed!', NULL, NULL, 1000, 1500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7992, 'Big swordfish', 'Whopper! I should get this stuffed!', NULL, NULL, 1000, 1500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7993, 'Big shark', 'Its a monster! I should get this stuffed!', NULL, NULL, 2000, 3000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7994, 'Big shark', 'Its a monster! I should get this stuffed!', NULL, NULL, 2000, 3000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7995, 'Arthur portrait', 'A portrait of King Arthur.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7996, 'Elena portrait', 'A portrait of Elena.', NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7997, 'Keldagrim portrait', 'A painting of the staute of King Alvis of Keldagrim', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(7998, 'Misc. portrait', 'A portrait of Prince Brand and Princess Astrid of Miscellania.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8000, 'Isafdar painting', 'The exotic land of the Elves.', NULL, NULL, 800, 1200, NULL, NULL, 2000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8001, 'Karamja painting', 'The tropical coast of karamja.', NULL, NULL, 800, 1200, NULL, NULL, 2000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8002, 'Lumbridge painting', 'Oxtable\'s famous painting of the Lumbridge water mill.', NULL, NULL, NULL, NULL, NULL, NULL, 2000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8003, 'Morytania painting', 'A painting of the spooky forests of morytania.', NULL, NULL, NULL, NULL, NULL, NULL, 2000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(8007, 'Varrock teleport', 'A tablet containing a magic spell.', 1, NULL, 1699, 1700, NULL, NULL, 2500, 1341, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(8008, 'Lumbridge teleport', 'A tablet containing a magic spell.', 1, NULL, 1699, 1700, NULL, NULL, 2500, 1371, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(8009, 'Falador teleport', 'A tablet containing a magic spell.', 1, NULL, 1699, 1700, 1, NULL, 2500, 1414, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(8010, 'Camelot teleport', 'A tablet containing a magic spell.', 1, NULL, 1699, 1700, NULL, NULL, 2500, 1369, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(8011, 'Ardougne teleport', 'A tablet containing a magic spell.', 1, NULL, 1699, 1700, NULL, NULL, 2500, 1511, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(8012, 'Watchtower t\'port', 'A tablet containing a magic spell.', 1, NULL, 1699, 1700, NULL, NULL, 2500, 1025, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(8013, 'Teleport to house', 'A tablet containing a magic spell.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1426, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(8014, 'Bones to bananas', 'A tablet containing a magic spell.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 360, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 200, NULL, NULL, NULL, NULL, NULL, 0), +(8015, 'Bones to peaches', 'A tablet containing a magic spell.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 620, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 200, NULL, NULL, NULL, NULL, NULL, 0), +(8016, 'Enchant sapphire', 'A tablet containing a magic spell.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 343, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(8017, 'Enchant emerald', 'A tablet containing a magic spell.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 409, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(8018, 'Enchant ruby', 'A tablet containing a magic spell.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 207, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(8019, 'Enchant diamond', 'A tablet containing a magic spell.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 326, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(8020, 'Enchant dragonstn.', 'A tablet containing a magic spell.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 250, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(8021, 'Enchant onyx', 'A tablet containing a magic spell.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 31, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(8031, 'Wooden bed', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1918, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8032, 'Oak bed', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1631, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8033, 'Large oak bed', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1388, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8034, 'Teak bed', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1376, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8035, 'Large teak bed', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1996, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8036, '4-poster', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1314, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8037, 'Gilded 4-poster', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 274779, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8038, 'Shoe box', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8039, 'Oak drawers', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 42, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8040, 'Oak wardrobe', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8041, 'Teak drawers', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 126, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8042, 'Teak wardrobe', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8043, 'Mahogany \'drobe', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 102, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8044, 'Gilded wardrobe', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 139452, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8045, 'Shaving stand', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 510, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8046, 'Oak shaving stand', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 449, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8047, 'Oak dresser', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 147, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8048, 'Teak dresser', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 478, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8049, 'Fancy teak dresser', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 456, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8050, 'Mahogany dresser', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 404, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8051, 'Gilded dresser', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 140594, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8052, 'Oak clock', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 367, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8053, 'Teak clock', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 552, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8054, 'Gilded clock', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 154310, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8085, 'Suit of armour', 'When unanimated: A dusty old suit of armour. When animated: Aaargh, it\'s alive!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8108, 'Wooden bench', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8109, 'Oak bench', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 131, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8110, 'Carved oak bench', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8111, 'Teak dining bench', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 17, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8112, 'Carved teak bench', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8113, 'Mahogany bench', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 145, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8114, 'Gilded bench', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 531526, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8115, 'Wood dining table', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8116, 'Oak dining table', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8117, 'Carved oak table', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8118, 'Teak table', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8119, 'Carved teak table', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 249, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8120, 'Mahogany table', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 497, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8121, 'Opulent table', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 394177, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8128, 'Candles', 'A candle.', 1, NULL, 1, 1, NULL, NULL, 24, 104, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8131, 'Skeleton guard', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8132, 'Guard dog', 'He doesn\'t seem pleased to see me./Beware of the dog! (Construction)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8133, 'Hobgoblin guard', 'He doesn\'t look very welcoming.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8134, 'Baby red dragon', 'Young but still dangerous.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8135, 'Huge spider', 'No spider could grow that big! It\'s unrealistic!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8137, 'Hellhound', '(Level 122)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8139, 'Kalphite soldier', 'I don\'t think insect repellent will work...', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8140, 'Tok-xil', 'The Tok-Xil fires deadly spines out of its arm, projected by its own heat.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8142, 'Steel dragon', 'Its scales seem to be made of steel.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8203, 'Thorny hedge', 'You can plant this in your garden.', 1, NULL, 2000, 3000, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8204, 'Nice hedge', 'You can plant this in your garden.', 1, NULL, 4000, 6000, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8205, 'Small box hedge', 'You can plant this in your garden.', 1, NULL, 6000, 9000, NULL, NULL, 15000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8206, 'Topiary hedge', 'You can plant this in your garden.', 1, NULL, 8000, 12000, NULL, NULL, 20000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8207, 'Fancy hedge', 'You can plant this in your garden.', NULL, NULL, 10000, 15000, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8208, 'Tall fancy hedge', 'You can plant this in your garden.', NULL, NULL, 20000, 30000, NULL, NULL, 50000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8210, 'Rosemary', 'Some rosemary.', 1, NULL, NULL, 1, NULL, NULL, NULL, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8214, 'Marigolds', 'A bunch of marigolds.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 3862, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8239, 'Beer barrel', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8240, 'Cider barrel', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 16860, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8241, 'Asgarnian ale', 'Probably the finest readily-available ale in Asgarnia.', 1, NULL, NULL, 1, NULL, NULL, 3, 131, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8242, 'Greenman\'s ale', 'A glass of frothy ale.', 1, NULL, NULL, 1, NULL, NULL, 2, 569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8243, 'Dragon bitter', 'A glass of bitter.', 1, NULL, NULL, 1, NULL, NULL, 2, 523, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8244, 'Chef\'s delight', 'A fruity, full-bodied ale.', 1, NULL, NULL, 1, NULL, NULL, NULL, 2371, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8246, 'Wood kitchen table', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8247, 'Oak kitchen table', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8248, 'Teak kitchen table', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8260, 'Crawling hand', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8261, 'Cockatrice head', 'I should get it stuffed!', NULL, NULL, 800, 1200, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8262, 'Basilisk head', 'I should get it stuffed!', NULL, NULL, 1600, 2400, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8263, 'Kurask head', 'I should get it stuffed!', NULL, NULL, 2400, 3600, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8264, 'Abyssal head', 'I should get it stuffed!', NULL, NULL, 4800, 7200, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8265, 'Kbd heads', 'I should get it stuffed!', NULL, NULL, 20000, 30000, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8266, 'Kq head', 'I should get it stuffed!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8272, 'Runite armour', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '9,0,20', '0,0,0,-65,-21,207,209,192,-12,205,102,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8279, 'Silverlight', 'The magical sword \'Silverlight\'. / The magical sword \'Silverlight\', stained black with mushroom ink. (during Shadow of the Storm)', NULL, NULL, 20, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '9,14,-2,0,0,0,3,2,1,0,0,12,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8280, 'Excalibur', 'This used to belong to King Arthur.', NULL, NULL, 80, 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '20,29,-2,0,0,0,3,2,1,0,0,25,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8281, 'Darklight', 'The magical sword Silverlight, enhanced with the blood of Agrith-Naar.', NULL, NULL, 200, 300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '10,16,-2,0,0,0,3,2,2,0,0,13,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8282, 'Anti-dragon shield', 'This provides partial protection from dragon-breath attacks.', 1, NULL, 8, 12, NULL, NULL, NULL, 305, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0,0,0,0,0,7,9,8,2,8,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8283, 'Amulet of glory', 'Uncharged: A very powerful dragonstone amulet. 1-4 charges: A dragonstone amulet with X magic charges.', 1, NULL, 7050, 10575, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '10,10,10,10,10,3,3,3,3,3,3,6,0,3,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8284, 'Cape of legends', 'The cape worn by members of the Legends Guild.', NULL, NULL, 180, 270, NULL, NULL, 450, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0,0,0,0,0,7,7,7,7,7,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8285, 'King arthur', 'Legendary King of the Britons.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8286, 'Elena', 'She looks concerned.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8305, 'Rocnar', 'It\'s full of pent-up aggression.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8309, 'Crude wooden chair', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8310, 'Wooden chair', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 50, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8311, 'Rocking chair', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8312, 'Oak chair', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8313, 'Oak armchair', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8314, 'Teak armchair', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8315, 'Mahogany armchair', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8319, 'Wooden bookcase', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8320, 'Oak bookcase', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8321, 'Mahogany b\'kcase', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 52, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8417, 'Bagged dead tree', 'You can plant this in your garden.', 1, NULL, 400, 600, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{5,22}', 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8418, 'Bagged dead tree', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8419, 'Bagged nice tree', 'You can plant this in your garden.', 1, NULL, NULL, NULL, NULL, NULL, 2000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{10,22}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8420, 'Bagged nice tree', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8421, 'Bagged oak tree', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{15,22}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8422, 'Bagged oak tree', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8423, 'Bagged willow tree', 'You can plant this in your garden.', 1, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{22,30}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8424, 'Bagged willow tree', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8425, 'Bagged maple tree', 'You can plant this in your garden.', 1, NULL, 6000, 9000, NULL, NULL, 15000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{22,45}', 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8426, 'Bagged maple tree', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8427, 'Bagged yew tree', 'You can plant this in your garden.', 1, NULL, 8000, 12000, NULL, NULL, 20000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{22,60}', 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8428, 'Bagged yew tree', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8429, 'Bagged magic tree', 'You can plant this in your garden.', 1, NULL, 20000, 30000, NULL, NULL, 50000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{22,75}', 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8430, 'Bagged magic tree', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8431, 'Bagged plant 1', 'You can plant this in your garden.', 1, NULL, 400, 600, NULL, NULL, 1000, 1345, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(8432, 'Bagged plant 1', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1345, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(8433, 'Bagged plant 2', 'You can plant this in your garden.', 1, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{6,22}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8434, 'Bagged plant 2', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8435, 'Bagged plant 3', 'You can plant this in your garden.', 1, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{12,22}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8436, 'Bagged plant 3', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8437, 'Thorny hedge', 'You can plant this in your garden.', 1, NULL, 2000, 3000, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{22,56}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8438, 'Thorny hedge', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8439, 'Nice hedge', 'You can plant this in your garden.', 1, NULL, 4000, 6000, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{22,60}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8440, 'Nice hedge', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8441, 'Small box hedge', 'You can plant this in your garden.', 1, NULL, 6000, 9000, NULL, NULL, 15000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{22,64}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8442, 'Small box hedge', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8443, 'Topiary hedge', 'You can plant this in your garden.', 1, NULL, 8000, 12000, NULL, NULL, 20000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{22,68}', 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8444, 'Topiary hedge', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8445, 'Fancy hedge', 'You can plant this in your garden.', NULL, NULL, 10000, 15000, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{22,72}', 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8446, 'Fancy hedge', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8447, 'Tall fancy hedge', 'You can plant this in your garden.', NULL, NULL, 20000, 30000, NULL, NULL, 50000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{22,76}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8448, 'Tall fancy hedge', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8449, 'Tall box hedge', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{22,80}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8450, 'Tall box hedge', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8451, 'Bagged rosemary', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{22,66}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8452, 'Bagged rosemary', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8453, 'Bagged daffodils', 'You can plant this in your garden.', 1, NULL, 4000, 6000, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{22,71}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8454, 'Bagged daffodils', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8455, 'Bagged bluebells', 'You can plant this in your garden.', 1, NULL, 6000, 9000, NULL, NULL, 15000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{22,76}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8456, 'Bagged bluebells', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8457, 'Bagged sunflower', 'You can plant this in your garden.', 1, NULL, 2000, 3000, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{22,66}', 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8458, 'Bagged sunflower', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8459, 'Bagged marigolds', 'You can plant this in your garden.', 1, NULL, 4000, 6000, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{22,71}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8460, 'Bagged marigolds', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8461, 'Bagged roses', 'You can plant this in your garden.', 1, NULL, 6000, 9000, NULL, NULL, 15000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{22,76}', 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8462, 'Bagged roses', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8463, 'Construction guide', 'How to build a house.', 1, NULL, NULL, NULL, NULL, NULL, 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8464, 'Rune heraldic helm', 'The colours represent crest.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8466, 'Rune heraldic helm', 'The colours represent crest.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8468, 'Rune heraldic helm', 'The colours represent crest.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8470, 'Rune heraldic helm', 'The colours represent crest.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8472, 'Rune heraldic helm', 'The colours represent crest.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8474, 'Rune heraldic helm', 'The colours represent crest.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8476, 'Rune heraldic helm', 'The colours represent crest.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8478, 'Rune heraldic helm', 'The colours represent crest.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8480, 'Rune heraldic helm', 'The colours represent crest.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8482, 'Rune heraldic helm', 'The colours represent crest.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8484, 'Rune heraldic helm', 'The colours represent crest.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8486, 'Rune heraldic helm', 'The colours represent crest.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8488, 'Rune heraldic helm', 'The colours represent crest.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8490, 'Rune heraldic helm', 'The colours represent crest.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8492, 'Rune heraldic helm', 'The colours represent crest.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8494, 'Rune heraldic helm', 'The colours represent crest.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8496, 'Crude wooden chair', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8497, 'Crude wooden chair', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8498, 'Wooden chair', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 53, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8499, 'Wooden chair', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 53, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8500, 'Rocking chair', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8501, 'Rocking chair', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8502, 'Oak chair', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8503, 'Oak chair', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8504, 'Oak armchair', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8505, 'Oak armchair', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(8506, 'Teak armchair', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8507, 'Teak armchair', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8508, 'Mahogany armchair', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8509, 'Mahogany armchair', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8510, 'Wooden bookcase', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8511, 'Wooden bookcase', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8512, 'Oak bookcase', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8513, 'Oak bookcase', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8514, 'Mahogany b\'kcase', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 46, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8515, 'Mahogany b\'kcase', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 46, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8516, 'Beer barrel', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8517, 'Beer barrel', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8518, 'Cider barrel', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 16900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8519, 'Cider barrel', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 16900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8520, 'Asgarnian ale', 'Probably the finest readily-available ale in Asgarnia.', 1, NULL, NULL, 1, NULL, NULL, 3, 4586, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8521, 'Asgarnian ale', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4586, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8522, 'Greenman\'s ale', 'A glass of frothy ale.', 1, NULL, NULL, 1, NULL, NULL, 2, 8875, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8523, 'Greenman\'s ale', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8875, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8524, 'Dragon bitter', 'A glass of bitter.', 1, NULL, NULL, 1, NULL, NULL, 2, 10300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8525, 'Dragon bitter', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 10300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8526, 'Chef\'s delight', 'A fruity, full-bodied ale.', 1, NULL, NULL, 1, NULL, NULL, NULL, 48800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8527, 'Chef\'s delight', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 48800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8528, 'Wood kitchen table', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8529, 'Wood kitchen table', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8530, 'Oak kitchen table', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8531, 'Oak kitchen table', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8532, 'Teak kitchen table', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8533, 'Teak kitchen table', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8535, 'Oak lectern', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8537, 'Eagle lectern', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8539, 'Demon lectern', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8541, 'Teak eagle lectern', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8543, 'Teak demon lectern', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8545, 'Mahogany eagle', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8547, 'Mahogany demon', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8548, 'Wood dining table', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8549, 'Wood dining table', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8550, 'Oak dining table', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8551, 'Oak dining table', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8552, 'Carved oak table', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8553, 'Carved oak table', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8554, 'Teak table', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8555, 'Teak table', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8556, 'Carved teak table', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 245, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8557, 'Carved teak table', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 245, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8558, 'Mahogany table', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 575, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8559, 'Mahogany table', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 575, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8560, 'Opulent table', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 379100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8561, 'Opulent table', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 379100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8562, 'Wooden bench', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 15, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8563, 'Wooden bench', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 15, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8564, 'Oak bench', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 137, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8565, 'Oak bench', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 137, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8566, 'Carved oak bench', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8567, 'Carved oak bench', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8568, 'Teak dining bench', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8569, 'Teak dining bench', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8570, 'Carved teak bench', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8571, 'Carved teak bench', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8572, 'Mahogany bench', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 126, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8573, 'Mahogany bench', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 126, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8574, 'Gilded bench', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 517600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8575, 'Gilded bench', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 517600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8576, 'Wooden bed', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1974, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8577, 'Wooden bed', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1974, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8578, 'Oak bed', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1775, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8579, 'Oak bed', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1775, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8580, 'Large oak bed', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1433, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8581, 'Large oak bed', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1433, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8582, 'Teak bed', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1442, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8583, 'Teak bed', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1442, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8584, 'Large teak bed', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2030, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8585, 'Large teak bed', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2030, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8586, '4-poster', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1401, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8587, '4-poster', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1401, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8588, 'Gilded 4-poster', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 286700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8589, 'Gilded 4-poster', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 286700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8590, 'Oak clock', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 384, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8591, 'Oak clock', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 384, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8592, 'Teak clock', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 595, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8593, 'Teak clock', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 595, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8594, 'Gilded clock', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 156100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8595, 'Gilded clock', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 156100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8596, 'Shaving stand', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 510, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8597, 'Shaving stand', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 510, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8598, 'Oak shaving stand', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 455, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8599, 'Oak shaving stand', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 455, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8600, 'Oak dresser', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 147, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8601, 'Oak dresser', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 147, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8602, 'Teak dresser', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 478, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8603, 'Teak dresser', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 478, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8604, 'Fancy teak dresser', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 455, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8605, 'Fancy teak dresser', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 455, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8606, 'Mahogany dresser', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 399, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8607, 'Mahogany dresser', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 399, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8608, 'Gilded dresser', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 138800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8609, 'Gilded dresser', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 138800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8610, 'Shoe box', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 21, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8611, 'Shoe box', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 21, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8612, 'Oak drawers', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 47, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8613, 'Oak drawers', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 47, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8614, 'Oak wardrobe', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8615, 'Oak wardrobe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8616, 'Teak drawers', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 132, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8617, 'Teak drawers', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 132, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8618, 'Teak wardrobe', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8619, 'Teak wardrobe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8620, 'Mahogany \'drobe', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 98, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8621, 'Mahogany \'drobe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 98, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8622, 'Gilded wardrobe', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 137700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8623, 'Gilded wardrobe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 137700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8625, 'Crystal ball', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8627, 'Elemental sphere', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8629, 'Crystal of power', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8631, 'Globe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8633, 'Ornamental globe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8635, 'Lunar globe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8637, 'Celestial globe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8639, 'Armillary sphere', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8641, 'Small orrery', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8643, 'Large orrery', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8645, 'Wooden telescope', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8647, 'Teak telescope', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8649, 'Mahogany \'scope', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8650, 'Banner', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1421, 1426, 1422, 1427, 1423, 1424, 1425, 131, 3, NULL, NULL, NULL, 14, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8652, 'Banner', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1421, 1426, 1422, 1427, 1423, 1424, 1425, 131, 3, NULL, NULL, NULL, 14, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8654, 'Banner', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1421, 1426, 1422, 1427, 1423, 1424, 1425, 131, 3, NULL, NULL, NULL, 14, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8656, 'Banner', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1421, 1426, 1422, 1427, 1423, 1424, 1425, 131, 3, NULL, NULL, NULL, 14, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8658, 'Banner', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1421, 1426, 1422, 1427, 1423, 1424, 1425, 131, 3, NULL, NULL, NULL, 14, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8660, 'Banner', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1421, 1426, 1422, 1427, 1423, 1424, 1425, 131, 3, NULL, NULL, NULL, 14, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8662, 'Banner', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1421, 1426, 1422, 1427, 1423, 1424, 1425, 131, 3, NULL, NULL, NULL, 14, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8664, 'Banner', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1421, 1426, 1422, 1427, 1423, 1424, 1425, 131, 3, NULL, NULL, NULL, 14, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8666, 'Banner', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1421, 1426, 1422, 1427, 1423, 1424, 1425, 131, 3, NULL, NULL, NULL, 14, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8668, 'Banner', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1421, 1426, 1422, 1427, 1423, 1424, 1425, 131, 3, NULL, NULL, NULL, 14, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8670, 'Banner', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1421, 1426, 1422, 1427, 1423, 1424, 1425, 131, 3, NULL, NULL, NULL, 14, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8672, 'Banner', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1421, 1426, 1422, 1427, 1423, 1424, 1425, 131, 3, NULL, NULL, NULL, 14, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8674, 'Banner', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1421, 1426, 1422, 1427, 1423, 1424, 1425, 131, 3, NULL, NULL, NULL, 14, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8676, 'Banner', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1421, 1426, 1422, 1427, 1423, 1424, 1425, 131, 3, NULL, NULL, NULL, 14, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8678, 'Banner', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1421, 1426, 1422, 1427, 1423, 1424, 1425, 131, 3, NULL, NULL, NULL, 14, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8680, 'Banner', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1421, 1426, 1422, 1427, 1423, 1424, 1425, 131, 3, NULL, NULL, NULL, 14, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8682, 'Steel heraldic helm', 'The colours represent crest.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,9,10,7,-1,9,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8684, 'Steel heraldic helm', 'The colours represent crest.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,9,10,7,-1,9,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8686, 'Steel heraldic helm', 'The colours represent crest.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,9,10,7,-1,9,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8688, 'Steel heraldic helm', 'The colours represent crest.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,9,10,7,-1,9,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8690, 'Steel heraldic helm', 'The colours represent crest.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,9,10,7,-1,9,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8692, 'Steel heraldic helm', 'The colours represent crest.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,9,10,7,-1,9,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8694, 'Steel heraldic helm', 'The colours represent crest.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,9,10,7,-1,9,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8696, 'Steel heraldic helm', 'The colours represent crest.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,9,10,7,-1,9,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8698, 'Steel heraldic helm', 'The colours represent crest.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,9,10,7,-1,9,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8700, 'Steel heraldic helm', 'The colours represent crest.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,9,10,7,-1,9,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8702, 'Steel heraldic helm', 'The colours represent crest.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,9,10,7,-1,9,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8704, 'Steel heraldic helm', 'The colours represent crest.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,9,10,7,-1,9,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8706, 'Steel heraldic helm', 'The colours represent crest.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,9,10,7,-1,9,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8708, 'Steel heraldic helm', 'The colours represent crest.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,9,10,7,-1,9,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8710, 'Steel heraldic helm', 'The colours represent crest.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,9,10,7,-1,9,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8712, 'Steel heraldic helm', 'The colours represent crest.', NULL, NULL, 240, 360, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,9,10,7,-1,9,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8714, 'Rune kiteshield', 'A large metal shield.', 1, 1, 21760, 32640, NULL, NULL, NULL, 32583, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8716, 'Rune kiteshield', 'A large metal shield.', 1, 1, 21760, 32640, NULL, NULL, NULL, 32583, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8718, 'Rune kiteshield', 'A large metal shield.', 1, 1, 21760, 32640, NULL, NULL, NULL, 32583, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8720, 'Rune kiteshield', 'A large metal shield.', 1, 1, 21760, 32640, NULL, NULL, NULL, 32583, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8722, 'Rune kiteshield', 'A large metal shield.', 1, 1, 21760, 32640, NULL, NULL, NULL, 32583, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8724, 'Rune kiteshield', 'A large metal shield.', 1, 1, 21760, 32640, NULL, NULL, NULL, 32583, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8726, 'Rune kiteshield', 'A large metal shield.', 1, 1, 21760, 32640, NULL, NULL, NULL, 32583, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8728, 'Rune kiteshield', 'A large metal shield.', 1, 1, 21760, 32640, NULL, NULL, NULL, 32583, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8730, 'Rune kiteshield', 'A large metal shield.', 1, 1, 21760, 32640, NULL, NULL, NULL, 32583, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8732, 'Rune kiteshield', 'A large metal shield.', 1, 1, 21760, 32640, NULL, NULL, NULL, 32583, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8734, 'Rune kiteshield', 'A large metal shield.', 1, 1, 21760, 32640, NULL, NULL, NULL, 32583, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8736, 'Rune kiteshield', 'A large metal shield.', 1, 1, 21760, 32640, NULL, NULL, NULL, 32583, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8738, 'Rune kiteshield', 'A large metal shield.', 1, 1, 21760, 32640, NULL, NULL, NULL, 32583, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8740, 'Rune kiteshield', 'A large metal shield.', 1, 1, 21760, 32640, NULL, NULL, NULL, 32583, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8742, 'Rune kiteshield', 'A large metal shield.', 1, 1, 21760, 32640, NULL, NULL, NULL, 32583, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8744, 'Rune kiteshield', 'A large metal shield.', 1, 1, 21760, 32640, NULL, NULL, NULL, 32583, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8746, 'Steel kiteshield', 'A large metal shield.', 1, NULL, 340, 510, NULL, NULL, 850, 346, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,-8,-2,13,15,14,-1,14,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8748, 'Steel kiteshield', 'A large metal shield.', 1, NULL, 340, 510, NULL, NULL, 850, 346, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,-8,-2,13,15,14,-1,14,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8750, 'Steel kiteshield', 'A large metal shield.', 1, NULL, 340, 510, NULL, NULL, 850, 346, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,-8,-2,13,15,14,-1,14,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8752, 'Steel kiteshield', 'A large metal shield.', 1, NULL, 340, 510, NULL, NULL, 850, 346, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,-8,-2,13,15,14,-1,14,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8754, 'Steel kiteshield', 'A large metal shield.', 1, NULL, 340, 510, NULL, NULL, 850, 346, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,-8,-2,13,15,14,-1,14,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8756, 'Steel kiteshield', 'A large metal shield.', 1, NULL, 340, 510, NULL, NULL, 850, 346, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,-8,-2,13,15,14,-1,14,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8758, 'Steel kiteshield', 'A large metal shield.', 1, NULL, 340, 510, NULL, NULL, 850, 346, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,-8,-2,13,15,14,-1,14,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8760, 'Steel kiteshield', 'A large metal shield.', 1, NULL, 340, 510, NULL, NULL, 850, 346, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,-8,-2,13,15,14,-1,14,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8762, 'Steel kiteshield', 'A large metal shield.', 1, NULL, 340, 510, NULL, NULL, 850, 346, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,-8,-2,13,15,14,-1,14,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8764, 'Steel kiteshield', 'A large metal shield.', 1, NULL, 340, 510, NULL, NULL, 850, 346, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,-8,-2,13,15,14,-1,14,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8766, 'Steel kiteshield', 'A large metal shield.', 1, NULL, 340, 510, NULL, NULL, 850, 346, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,-8,-2,13,15,14,-1,14,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8768, 'Steel kiteshield', 'A large metal shield.', 1, NULL, 340, 510, NULL, NULL, 850, 346, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,-8,-2,13,15,14,-1,14,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8770, 'Steel kiteshield', 'A large metal shield.', 1, NULL, 340, 510, NULL, NULL, 850, 346, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,-8,-2,13,15,14,-1,14,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8772, 'Steel kiteshield', 'A large metal shield.', 1, NULL, 340, 510, NULL, NULL, 850, 346, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,-8,-2,13,15,14,-1,14,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8774, 'Steel kiteshield', 'A large metal shield.', 1, NULL, 340, 510, NULL, NULL, 850, 346, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,-8,-2,13,15,14,-1,14,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(8776, 'Steel kiteshield', 'A large metal shield.', 1, NULL, 340, 510, NULL, NULL, 850, 346, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,-8,-2,13,15,14,-1,14,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8778, 'Oak plank', 'A plank of sturdy oak.', 1, NULL, 100, 150, NULL, NULL, NULL, 660, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.8, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(8779, 'Oak plank', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 660, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(8780, 'Teak plank', 'A plank of fine teak.', 1, NULL, 200, 300, NULL, NULL, 500, 959, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.8, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(8781, 'Teak plank', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 959, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(8782, 'Mahogany plank', 'A plank of expensive mahogany.', 1, NULL, 600, 900, NULL, NULL, 1500, 2286, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.8, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(8783, 'Mahogany plank', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2286, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(8784, 'Gold leaf', 'A very delicate sheet of gold.', 1, NULL, 52000, 78000, NULL, NULL, 130000, 133800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8785, 'Gold leaf', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 133800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8786, 'Marble block', 'A beautifully carved marble block.', 1, NULL, 130000, 195000, NULL, NULL, 325000, 324800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13.6, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8787, 'Marble block', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 324800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8788, 'Magic stone', 'A magic stone to make high-level furniture.', 1, NULL, 390000, 585000, NULL, NULL, 975000, 980300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8789, 'Magic stone', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 980300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8790, 'Bolt of cloth', 'A bolt of ordinary cloth.', 1, NULL, 200, 300, NULL, NULL, 650, 1090, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8791, 'Bolt of cloth', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1090, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8792, 'Clockwork', 'A clockwork mechanism.', 1, NULL, 200, 300, NULL, NULL, NULL, 1630, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(8793, 'Clockwork', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1630, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(8794, 'Saw', 'Good for cutting wood.', 1, NULL, 5, 7, NULL, NULL, 13, 64, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8795, 'Saw', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 64, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8836, 'Mahogany logs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8837, 'Timber beam', 'A hefty beam of timber, perfect for building temples.', 1, NULL, NULL, NULL, NULL, NULL, 1, 29, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(8838, 'Timber beam', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 29, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(8839, 'Void knight top', 'Torso armour from the order of the Void Knights.', NULL, NULL, 19200, 28800, NULL, NULL, 250, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,45,45,45,45,45,45,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8840, 'Void knight robe', 'Leg armour of the order of the Void Knights.', NULL, NULL, 18000, 27000, NULL, NULL, 250, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,0,0,30,30,30,30,30,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8841, 'Void knight mace', 'A mace used by the order of the Void Knights.', NULL, NULL, 4800, 7200, NULL, NULL, 250, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2553, 3, 5, NULL, '22,0,41,8,0,2,2,2,2,2,0,38,6,0,0', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8842, 'Void knight gloves', 'Gloves as used by the order of the Void Knights.', NULL, NULL, 2420, 3631, NULL, NULL, 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,0,0,6,6,6,6,6,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8844, 'Bronze defender', 'A defensive weapon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '3,2,1,-3,-2,3,2,1,-3,-2,1,0,0,0,0', NULL, NULL, NULL, NULL, 4177, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8845, 'Iron defender', 'A defensive weapon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '5,4,3,-3,-2,5,4,3,-3,-2,2,0,0,0,0', NULL, NULL, NULL, NULL, 4177, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8846, 'Steel defender', 'A defensive weapon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '7,6,5,-3,-2,7,6,5,-3,-2,3,1,0,0,0', NULL, NULL, NULL, NULL, 4177, NULL, '{0,5}-{1,5}', 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8847, 'Black defender', 'A defensive weapon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '9,8,7,-3,-2,9,8,7,-3,-2,4,2,0,0,0', NULL, NULL, NULL, NULL, 4177, NULL, '{0,10}-{1,10}', 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8848, 'Mithril defender', 'A defensive weapon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '10,9,8,-3,-2,10,9,8,-3,-2,5,3,0,0,0', NULL, NULL, NULL, NULL, 4177, NULL, '{0,20}-{1,20}', 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8849, 'Adamant defender', 'A defensive weapon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '13,12,11,-3,-2,13,12,11,-3,-2,6,4,0,0,0', NULL, NULL, NULL, NULL, 4177, NULL, '{0,30}-{1,30}', 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8850, 'Rune defender', 'A defensive weapon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '20,19,18,-3,-2,20,19,18,-3,-2,8,5,0,0,0', NULL, NULL, NULL, NULL, 4177, NULL, '{0,40}-{1,40}', 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8851, 'Warrior guild token', 'Warrior Guild Token.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8856, 'Defensive shield', 'Large, round, heavy shield.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,-6,-2,8,9,7,0,8,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3.6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8858, '18lb shot', 'Just landed 18lb shot.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8859, '22lb shot', 'Just landed 22lb shot.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8860, 'One barrel', 'To put on your head.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8861, 'Two barrels', 'To put on your head.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8862, 'Three barrels', 'To put on your head.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8863, 'Four barrels', 'To put on your head.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 18.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8864, 'Five barrels', 'To put on your head.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 22.6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8865, 'Ground ashes', 'A heap of finely ground ashes.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8869, 'Iron key', 'A key made of solid iron.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8870, 'Zanik', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8871, 'Crate with zanik', 'It\'s got Zanik in it.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4193, 4194, 4194, 4194, 4194, 4194, 4194, 822, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 32, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8872, 'Bone dagger', 'A powerful dagger.', NULL, NULL, 800, 1200, NULL, NULL, 2000, 2855, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, NULL, NULL, '5,3,-4,1,0,0,0,0,1,0,0,4,0,0,0', 5, 1, NULL, '400,400,400,400', 378, '2517,2517,2500,2517', NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8873, 'Bone dagger', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2855, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8874, 'Bone dagger (p)', 'A powerful dagger.', NULL, NULL, 800, 1200, NULL, NULL, 2000, 3033, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, NULL, NULL, '5,3,-4,1,0,0,0,0,1,0,0,4,0,0,0', 5, 1, NULL, '400,400,400,400', 378, '2517,2517,2500,2517', NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8875, 'Bone dagger (p)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3033, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8876, 'Bone dagger (p+)', 'A powerful dagger.', NULL, NULL, 800, 1200, NULL, NULL, 2000, 3523, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, NULL, NULL, '5,3,-4,1,0,0,0,0,1,0,0,4,0,0,0', 5, 1, NULL, '400,400,400,400', 378, '2517,2517,2500,2517', NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8877, 'Bone dagger (p+)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3523, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8878, 'Bone dagger (p++)', 'A powerful dagger.', NULL, NULL, 800, 1200, NULL, NULL, 2000, 8337, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, NULL, NULL, '5,3,-4,1,0,0,0,0,1,0,0,4,0,0,0', 5, 1, NULL, '400,400,400,400', 378, '2517,2517,2500,2517', NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8879, 'Bone dagger (p++)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8337, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8880, 'Dorgeshuun c\'bow', 'This fires crossbow bolts.', 1, NULL, 800, 1200, NULL, NULL, 2000, 1159, NULL, NULL, NULL, 4591, 823, 4226, 4228, 4227, 821, 822, 175, 3, 6, NULL, '0,0,0,0,42,0,0,0,0,0,0,0,0,0,0', 17, 1, NULL, '4230,4230,4230,4230', 424, '2700,0,0,0', '{4,28}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8881, 'Dorgeshuun c\'bow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1159, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(8882, 'Bone bolts', 'Good if you have a bone crossbow!', 1, NULL, 1, 2, NULL, NULL, 4, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,49', NULL, NULL, NULL, NULL, NULL, NULL, '{4,28}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(8887, 'Zanik', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8890, 'Coins', '100,000 or more: \"X x coins\" where X is the exact number of coins in the stack.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, 0), +(8900, 'Cave horror', 'A horrible, emaciated ape like creature with beady red eyes.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8901, 'Black mask (10)', 'Charged: A magic cave horror mask.Uncharged: An inert-seeming cave horror mask.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 989400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-3,-1,9,10,8,-1,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{2,10}', 10, 10, NULL, NULL, NULL, NULL, NULL, 0), +(8902, 'Black mask (10)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 989400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(8903, 'Black mask (9)', 'Charged: A magic cave horror mask.Uncharged: An inert-seeming cave horror mask.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 583700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-3,-1,9,10,8,-1,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{2,10}', 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8904, 'Black mask (9)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8905, 'Black mask (8)', 'Charged: A magic cave horror mask.Uncharged: An inert-seeming cave horror mask.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 583700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-3,-1,9,10,8,-1,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{2,10}', 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8906, 'Black mask (8)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8907, 'Black mask (7)', 'Charged: A magic cave horror mask.Uncharged: An inert-seeming cave horror mask.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 583700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-3,-1,9,10,8,-1,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{2,10}', 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8908, 'Black mask (7)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8909, 'Black mask (6)', 'Charged: A magic cave horror mask.Uncharged: An inert-seeming cave horror mask.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 583700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-3,-1,9,10,8,-1,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{2,10}', 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8910, 'Black mask (6)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8911, 'Black mask (5)', 'Charged: A magic cave horror mask.Uncharged: An inert-seeming cave horror mask.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 583700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-3,-1,9,10,8,-1,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{2,10}', 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8912, 'Black mask (5)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8913, 'Black mask (4)', 'Charged: A magic cave horror mask.Uncharged: An inert-seeming cave horror mask.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 583700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-3,-1,9,10,8,-1,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{2,10}', 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8914, 'Black mask (4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8915, 'Black mask (3)', 'Charged: A magic cave horror mask.Uncharged: An inert-seeming cave horror mask.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 583700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-3,-1,9,10,8,-1,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{2,10}', 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8916, 'Black mask (3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8917, 'Black mask (2)', 'Charged: A magic cave horror mask.Uncharged: An inert-seeming cave horror mask.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 583700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-3,-1,9,10,8,-1,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{2,10}', 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8918, 'Black mask (2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8919, 'Black mask (1)', 'Charged: A magic cave horror mask.Uncharged: An inert-seeming cave horror mask.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 583700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-3,-1,9,10,8,-1,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{2,10}', 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8920, 'Black mask (1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8921, 'Black mask', 'Charged: A magic cave horror mask.Uncharged: An inert-seeming cave horror mask.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 956100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-3,-1,9,10,8,-1,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{2,10}', 10, 10, NULL, NULL, NULL, NULL, NULL, 0), +(8922, 'Black mask', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 956100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(8923, 'Witchwood icon', 'A stick on a string... pure style.', NULL, NULL, 360, 540, NULL, NULL, 900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '0,0,0,1,0,0,0,0,0,0,0,0,1,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{18,35}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8924, 'Bandana and eyepatch', 'A (colour) bandana and a patch for the right eye.', 1, NULL, 40, 60, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8925, 'Bandana and eyepatch', 'A (colour) bandana and a patch for the right eye.', 1, NULL, 40, 60, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8926, 'Bandana and eyepatch', 'A (colour) bandana and a patch for the right eye.', 1, NULL, 40, 60, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8927, 'Bandana and eyepatch', 'A (colour) bandana and a patch for the right eye.', 1, NULL, 40, 60, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8928, 'Hat and eyepatch', 'A pirate hat and a patch for the right eye.', 1, NULL, 40, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8929, 'Crabclaw and hook', 'Tied together so they don\'t come apart.', NULL, NULL, 40, 60, NULL, NULL, 800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,0,0,3,5,3,0,0,0,1,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8930, 'Pipe section', 'Crude wooden pipe section.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8931, 'Pipe section', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8932, 'Lumber patch', 'Repairs made with this will be patchy at best.', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8933, 'Lumber patch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8934, 'Scrapey tree logs', 'Slimy logs from the scrapey tree.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8935, 'Scrapey tree logs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8936, 'Blue flowers', 'Very blue.', 1, NULL, 40, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8937, 'Blue flowers', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8938, 'Red flowers', 'Very red.', 1, NULL, 40, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8939, 'Red flowers', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8943, 'Blue monkey', 'Bluuuuuuuue Monkeeeeeeey!', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8944, 'Blue monkey', 'Bluuuuuuuue Monkeeeeeeey!', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8945, 'Blue monkey', 'Bluuuuuuuue Monkeeeeeeey!', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8946, 'Red monkey', 'A well red monkey.', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8947, 'Red monkey', 'A well red monkey.', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8948, 'Red monkey', 'A well red monkey.', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8949, 'Pirate bandana', 'Essential pirate wear.', 1, NULL, 40, 60, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8950, 'Pirate hat', 'Shiver me timbers!', 1, NULL, 72, 108, NULL, NULL, NULL, 83200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8951, 'Pieces of eight', 'Piratical currency.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8952, 'Blue naval shirt', '...You can sail the seven seas...', NULL, NULL, 40, 60, 1, NULL, 100, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8953, 'Green naval shirt', '...You can sail the seven seas...', NULL, NULL, 40, 60, 1, NULL, 100, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8954, 'Red naval shirt', '...You can sail the seven seas...', NULL, NULL, 40, 60, 1, NULL, 100, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8955, 'Brown naval shirt', '...You can sail the seven seas...', NULL, NULL, 40, 60, 1, NULL, 100, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8956, 'Black naval shirt', '...You can sail the seven seas...', NULL, NULL, 40, 60, 1, NULL, 100, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8957, 'Purple naval shirt', '...You can sail the seven seas...', NULL, NULL, 40, 60, 1, NULL, 100, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8958, 'Grey naval shirt', '...You can sail the seven seas...', NULL, NULL, 40, 60, 1, NULL, 100, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8959, 'Blue tricorn hat', 'I could never look square in this.', NULL, NULL, 20, 30, NULL, NULL, 50, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8960, 'Green tricorn hat', 'I could never look square in this.', NULL, NULL, 20, 30, NULL, NULL, 50, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8961, 'Red tricorn hat', 'I could never look square in this.', NULL, NULL, 20, 30, NULL, NULL, 50, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8962, 'Brown tricorn hat', 'I could never look square in this.', NULL, NULL, 20, 30, NULL, NULL, 50, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8963, 'Black tricorn hat', 'I could never look square in this.', NULL, NULL, 20, 30, NULL, NULL, 50, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8964, 'Purple tricorn hat', 'I could never look square in this.', NULL, NULL, 20, 30, NULL, NULL, 50, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8965, 'Grey tricorn hat', 'I could never look square in this.', NULL, NULL, 20, 30, NULL, NULL, 50, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8966, 'Cutthroat flag', 'The flag of The Cutthroat.', NULL, NULL, 80, 120, NULL, NULL, 200, NULL, NULL, NULL, NULL, 1421, 1426, 1422, 1427, 1423, 1424, 1425, 131, 3, NULL, NULL, NULL, 14, NULL, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8967, 'Guilded smile flag', 'The flag of The Guilded Smile.', NULL, NULL, 80, 120, NULL, NULL, 200, NULL, NULL, NULL, NULL, 1421, 1426, 1422, 1427, 1423, 1424, 1425, 131, 3, 2, NULL, NULL, 14, NULL, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8968, 'Bronze fist flag', 'The flag of The Bronze Fist.', NULL, NULL, 120, 180, NULL, NULL, 300, NULL, NULL, NULL, NULL, 1421, 1426, 1422, 1427, 1423, 1424, 1425, 131, 3, NULL, NULL, NULL, 14, NULL, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8969, 'Lucky shot flag', 'The flag of The Lucky Shot.', NULL, NULL, 160, 240, NULL, NULL, 400, NULL, NULL, NULL, NULL, 1421, 1426, 1422, 1427, 1423, 1424, 1425, 131, 3, NULL, NULL, NULL, 14, NULL, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8970, 'Treasure flag', 'The flag of The Treasure Trove.', NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, 1421, 1426, 1422, 1427, 1423, 1424, 1425, 131, 3, NULL, NULL, NULL, 14, NULL, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8971, 'Phasmatys flag', 'The flag of The Phasmatys Pride.', NULL, NULL, NULL, NULL, NULL, NULL, 600, NULL, NULL, NULL, NULL, 1421, 1426, 1422, 1427, 1423, 1424, 1425, 131, 3, NULL, NULL, NULL, 14, NULL, 1, NULL, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8972, 'Bowl of red water', 'A Bowl of red water.', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8973, 'Bowl of red water', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8974, 'Bowl of blue water', 'A Bowl of blue water.', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8975, 'Bowl of blue water', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8976, 'Bitternut', 'Monkeys seem to like throwing these.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8977, 'Scrapey bark', 'Greasy bark from the scrapey tree.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8978, 'Scrapey bark', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8979, 'Bridge section', 'Caution; not for use over troubled water.', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8980, 'Bridge section', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8981, 'Sweetgrubs', 'Better than sea slugs.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8982, 'Sweetgrubs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8986, 'Bucket', 'It\'s an empty bucket.', 1, NULL, NULL, 1, NULL, NULL, 2, 50, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8987, 'Torch', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8988, 'The stuff', 'Apparently good for brewing.', NULL, NULL, 2, 3, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8989, 'Brewin\' guide', 'A how-to of brewing and arson.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8990, 'Brewin\' guide', 'A how-to of brewing and arson.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8991, 'Blue navy slacks', 'Not for slackers', NULL, NULL, 40, 60, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8992, 'Green navy slacks', 'Not for slackers', NULL, NULL, 40, 60, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8993, 'Red navy slacks', 'Not for slackers', NULL, NULL, 40, 60, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8994, 'Brown navy slacks', 'Not for slackers', NULL, NULL, 40, 60, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8995, 'Black navy slacks', 'Not for slackers', NULL, NULL, 40, 60, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8996, 'Purple navy slacks', 'Not for slackers', NULL, NULL, 40, 60, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8997, 'Grey navy slacks', 'Not for slackers', NULL, NULL, 40, 60, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8998, 'Bandana and eyepatch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(8999, 'Bandana and eyepatch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9000, 'Bandana and eyepatch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9001, 'Bandana and eyepatch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9002, 'Hat and eyepatch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9003, 'Security book', 'WARNING: Contains information which could make your account secure!', 1, NULL, NULL, 1, NULL, NULL, 2, 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9004, 'Stronghold notes', 'Information regarding the Stronghold of Security.', 1, NULL, NULL, 1, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9005, 'Fancy boots', 'Very nice boots from the Stronghold of Security.', NULL, NULL, NULL, NULL, 1, 'You can get another pair of Fancy Boots from the Stronghold of Security', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,-3,-1,1,2,3,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9006, 'Fighting boots', 'Very nice boots from the Stronghold of Security.', NULL, NULL, NULL, NULL, 1, 'You can get another pair of Fighting Boots from the Stronghold of Security.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,-3,-1,1,2,3,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9007, 'Right skull half', 'Ooooh spooky!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9008, 'Left skull half', 'Ooooh spooky!', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9009, 'Strange skull', 'Seems to be for use with a staff or sceptre of some sort.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9010, 'Top of sceptre', 'Top half of a broken sceptre.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9011, 'Bottom of sceptre', 'Bottom half of a broken sceptre.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9012, 'Runed sceptre', 'Sceptre with runes on it, seems to be missing something.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9013, 'Skull sceptre', 'A fragile magical Sceptre.', NULL, NULL, NULL, NULL, 1, 'You can obtain another Sceptre by collecting all four pieces from the Stronghold of Security.', NULL, NULL, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '0,-1,7,4,0,2,3,1,4,0,0,3,0,0,0', 3, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9014, 'Security book', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9015, 'Stronghold notes', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9016, 'Gorak claws', 'Oversized nail clippings.', NULL, NULL, 60, 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9017, 'Star flower', 'A flower with magical properties.', NULL, NULL, 30, 45, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9018, 'Gorak claw powder', 'Ground-down gorak claws.', NULL, NULL, 60, 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9020, 'Queen\'s secateurs', 'Contains the Fairy Queen\'s magical essence.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9025, 'Nuff\'s certificate', 'A scroll that says she\'s a healer, that\'s Fairy Nuff.', NULL, NULL, NULL, NULL, 1, 'Maybe I can find another in Fairy Nuff\'s grotto.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(9026, 'Ivory comb', 'Simon Templeton at the Agility Pyramid will give me 50 coins for this.', 1, NULL, 4, 6, NULL, NULL, NULL, 187, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9027, 'Ivory comb', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 187, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9028, 'Golden scarab', 'Simon Templeton at the Agility Pyramid will give me 1000 coins for this.', 1, NULL, 12, 18, NULL, NULL, NULL, 513, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9029, 'Golden scarab', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 513, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9030, 'Stone scarab', 'Little ornament in the shape of a scarab.', 1, NULL, 8, 12, NULL, NULL, NULL, 168, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.07, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9031, 'Stone scarab', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 168, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9032, 'Pottery scarab', 'A small pottery scarab.', 1, NULL, 4, 6, NULL, NULL, NULL, 74, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9033, 'Pottery scarab', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 74, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9034, 'Golden statuette', 'A small golden statuette.', 1, NULL, 12, 18, NULL, NULL, NULL, 740, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9035, 'Golden statuette', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 740, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9036, 'Pottery statuette', 'A small pottery statuette.', 1, NULL, 4, 6, NULL, NULL, NULL, 97, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9037, 'Pottery statuette', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 97, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9038, 'Stone statuette', 'A small stone statuette.', 1, NULL, 8, 12, NULL, NULL, NULL, 193, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9039, 'Stone statuette', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 193, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9040, 'Gold seal', 'Simon Templeton at the Agility Arena will give me 750 coins for this.', 1, NULL, 12, 18, NULL, NULL, NULL, 379, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9041, 'Gold seal', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 379, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9042, 'Stone seal', 'Simon Templeton at the Agility Pyramid will give me 150 coins for this.', 1, NULL, 8, 12, NULL, NULL, NULL, 147, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9043, 'Stone seal', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 147, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9044, 'Pharaoh\'s sceptre', 'Fully charged: This sceptre is fully charged.', 1, NULL, 40, 60, 1, NULL, NULL, 1000000, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '7,-1,25,10,0,2,3,1,10,0,0,32,0,0,0', 3, NULL, 1, NULL, NULL, NULL, '{0,30}-{6,30}', 2, 10, NULL, NULL, NULL, NULL, NULL, 0), +(9045, 'Pharaoh\'s sceptre', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(9046, 'Pharaoh\'s sceptre', 'Fully charged: This sceptre is fully charged.', 1, NULL, 40, 60, 1, NULL, NULL, 27, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '7,-1,25,10,0,2,3,1,10,0,0,32,0,0,0', 3, NULL, 1, NULL, NULL, NULL, '{0,30}-{6,30}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9047, 'Pharaoh\'s sceptre', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9048, 'Pharaoh\'s sceptre', 'Fully charged: This sceptre is fully charged.', 1, NULL, 40, 60, 1, NULL, NULL, 27, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '7,-1,25,10,0,2,3,1,10,0,0,32,0,0,0', 3, NULL, 1, NULL, NULL, NULL, '{0,30}-{6,30}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9049, 'Pharaoh\'s sceptre', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9050, 'Pharaoh\'s sceptre', 'Fully charged: This sceptre is fully charged.', 1, NULL, 40, 60, 1, NULL, NULL, 985800, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '7,-1,25,10,0,2,3,1,10,0,0,32,0,0,0', 3, NULL, 1, NULL, NULL, NULL, '{0,30}-{6,30}', 2, 10, NULL, NULL, NULL, NULL, NULL, 0), +(9051, 'Pharaoh\'s sceptre', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 985800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(9052, 'Locust meat', 'Delicious and nutritious. Well, nutritious anyway.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 68, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9053, 'Locust meat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 68, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9054, 'Red goblin mail', 'Armour designed to fit goblins.', NULL, NULL, 16, 24, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9055, 'Black goblin mail', 'Armour designed to fit goblins.', NULL, NULL, 16, 24, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9056, 'Yellow goblin mail', 'Armour designed to fit goblins.', NULL, NULL, 16, 24, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9057, 'Green goblin mail', 'Armour designed to fit goblins.', NULL, NULL, 16, 24, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9058, 'Purple goblin mail', 'Armour designed to fit goblins.', NULL, NULL, 16, 24, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9059, 'Pink goblin mail', 'Armour designed to fit goblins.', NULL, NULL, 16, 24, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9064, 'Emerald lantern', 'A mystical lantern casting a green beam.', NULL, NULL, 8, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9065, 'Emerald lantern', 'A mystical lantern casting a green beam.', NULL, NULL, 8, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9066, 'Emerald lens', 'A roughly circular disc of glass.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9067, 'Dream log', 'A log of my thoughts...', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9068, 'Moonclan helm', 'Mystical headgear.', NULL, NULL, 400, 600, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,3,-5,3,3,3,3,-5,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9069, 'Moonclan hat', 'A mystical hat.', NULL, NULL, 400, 600, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,3,-5,3,3,3,3,-5,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9070, 'Moonclan armour', 'Provides good protection.', NULL, NULL, 400, 600, NULL, NULL, 1000, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,5,-10,5,5,5,5,-10,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9071, 'Moonclan skirt', 'This should protect my legs.', NULL, NULL, 400, 600, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,5,-7,5,5,5,5,-7,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9072, 'Moonclan gloves', 'These should keep my hands safe.', NULL, NULL, 360, 540, NULL, NULL, 900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,2,-5,2,2,2,2,-5,2,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9073, 'Moonclan boots', 'Groovy foot protection.', NULL, NULL, 360, 540, NULL, NULL, 900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,2,-5,2,2,2,2,-5,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9074, 'Moonclan cape', 'A mystical cape.', NULL, NULL, 80, 120, NULL, NULL, 200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,2,-2,0,1,1,2,-2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9075, 'Astral rune', 'Used for Lunar Spells', 1, NULL, 29, 44, NULL, NULL, 220, 231, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(9076, 'Lunar ore', 'This needs refining', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9077, 'Lunar bar', 'It\'s a bar of magic metal.', NULL, NULL, NULL, NULL, 1, 'You\'ll have to mine another lunar ore and smelt it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9078, 'Moonclan manual', 'A book of Moonclan history.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9079, 'Suqah tooth', 'The tooth, the whole tooth, and nothing but the tooth.', NULL, NULL, 8, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9080, 'Suqah hide', 'An untanned piece of suqah hide.', NULL, NULL, 24, 36, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9081, 'Suqah leather', 'A piece of Suqah hide that has been expertly tanned into leather.', NULL, NULL, 24, 36, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9082, 'Ground tooth', 'A ground Suqah tooth.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9083, 'Seal of passage', 'A seal of passage issued by Brundt the Chieftain of the Fremennik.', NULL, NULL, NULL, NULL, 1, 'Brundt the Chieftain will probably have another lying around somewhere anyway...', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9084, 'Lunar staff', 'A Moonclan staff.', NULL, NULL, NULL, NULL, 1, 'The Oneiromancer might be able to help you get another.', 30000, NULL, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '3,2,16,13,0,2,3,2,13,1,0,15,3,0,0', 1, NULL, NULL, NULL, NULL, '2555,0,0,0', NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9085, 'Empty vial', 'A vessel for holding liquid.', NULL, NULL, NULL, NULL, 1, 'You\'ll have to get another from the Oneiromancer.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9086, 'Vial of water', 'A glass vial containing water.', 1, NULL, 4, 6, NULL, 'You can reclaim this item from the place you found it.', 10, 21, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.02, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9087, 'Waking sleep vial', 'A vessel for dreaming while awake!', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9088, 'Guam vial', 'A vessel with water and Guam inside.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9089, 'Marr vial', 'A vessel with water and Marrentill inside.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9090, 'Guam-marr vial', 'A vessel with water, guam and marrentill inside.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9091, 'Lunar staff - pt1', 'A staff enchanted by air.', NULL, NULL, 6, 9, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, NULL, NULL, '-1,-1,10,10,0,2,3,1,10,0,0,10,0,0,0', 1, NULL, NULL, NULL, NULL, '2555,0,0,0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9092, 'Lunar staff - pt2', 'A staff enchanted by air and fire.', NULL, NULL, 6, 9, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, NULL, NULL, '-1,-1,10,10,0,2,3,1,10,0,0,10,0,0,0', 1, NULL, NULL, NULL, NULL, '2555,0,0,0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9093, 'Lunar staff - pt3', 'A staff enchanted by air, fire and water.', NULL, NULL, 6, 9, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, NULL, NULL, '-1,-1,10,10,0,2,3,1,10,0,0,10,0,0,0', 1, NULL, NULL, NULL, NULL, '2555,0,0,0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9094, 'Kindling', 'Small bits of wood from the first magic tree!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9095, 'Soaked kindling', 'Magic wood soaked with a potion of waking sleep. Groovy.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9096, 'Lunar helm', 'A mystical helmet.', NULL, NULL, 40, 60, 1, 'The Oneiromancer might be able to help you get another.', 15000, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '3,1,0', '0,0,0,3,-2,8,7,10,2,0,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9097, 'Lunar torso', 'Provides good protection.', NULL, NULL, 40, 60, 1, 'The Oneiromancer might be able to help you get another.', 120000, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '6,3,0', '0,0,0,10,-10,34,22,40,12,0,35,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9098, 'Lunar legs', 'These should protect my legs.', NULL, NULL, 40, 60, 1, 'The Oneiromancer might be able to help you get another.', 80000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '4,2,0', '0,0,0,7,-7,20,19,23,9,0,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3.65, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9099, 'Lunar gloves', 'These should keep my hands safe.', NULL, NULL, 40, 60, 1, 'The Oneiromancer might be able to help you get another.', 10000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,4,-1,2,1,1,2,0,1,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9100, 'Lunar boots', 'Mystical foot protection.', NULL, NULL, 40, 60, 1, 'The Oneiromancer might be able to help you get another.', 10000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,2,-1,1,2,2,2,0,2,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9101, 'Lunar cape', 'Oooo pretty!', NULL, NULL, 1, 1, 1, 'The Oneiromancer might be able to help you get another.', 12000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9102, 'Lunar amulet', 'Awesome.', NULL, NULL, 12, 18, 1, 'The Oneiromancer might be able to help you get another.', 4000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '0,0,0,1,0,0,0,0,1,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9103, 'A special tiara', 'I\'ll be the talk of the town with this... maybe.', NULL, NULL, 12, 18, 1, 'The Oneiromancer might be able to help you get another.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9104, 'Lunar ring', 'A mysterious ring that can fill the wearer with magical power.', NULL, NULL, 40, 60, 1, 'The Oneiromancer might be able to help you get another.', 2000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, '0,0,0,2,0,0,0,0,2,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9106, 'Astral tiara', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9139, 'Blurite bolts', 'Blurite crossbow bolts.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,28', NULL, NULL, NULL, NULL, NULL, NULL, '{4,16}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9140, 'Iron bolts', 'Iron crossbow bolts.', 1, NULL, NULL, 1, NULL, NULL, 60, 41, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,46', NULL, NULL, NULL, NULL, NULL, NULL, '{4,26}', NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(9141, 'Steel bolts', 'Steel crossbow bolts.', 1, NULL, 3, 4, NULL, NULL, 150, 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,64', NULL, NULL, NULL, NULL, NULL, NULL, '{4,31}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9142, 'Mithril bolts', 'Mithril crossbow bolts.', 1, NULL, 8, 12, NULL, NULL, 32, 108, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,82', NULL, NULL, NULL, NULL, NULL, NULL, '{4,36}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9143, 'Adamant bolts', 'Adamantite crossbow bolts.', 1, NULL, 23, 34, NULL, NULL, 23, 210, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,100', NULL, NULL, NULL, NULL, NULL, NULL, '{4,46}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9144, 'Rune bolts', 'Runite crossbow bolts.', 1, NULL, 120, 180, NULL, NULL, NULL, 627, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,115', NULL, NULL, NULL, NULL, NULL, NULL, '{4,61}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9145, 'Silver bolts', 'Silver crossbow bolts.', 1, NULL, 2, 3, NULL, NULL, 6, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,36', NULL, NULL, NULL, NULL, NULL, NULL, '{4,26}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9174, 'Bronze crossbow', 'A bronze crossbow.', 1, NULL, 29, 43, NULL, NULL, 92, 29, NULL, NULL, NULL, 4591, 823, 4226, 4228, 4227, 821, 822, 175, 3, 6, NULL, '0,0,0,0,18,0,0,0,0,0,0,0,0,0,0', 17, NULL, NULL, '4230,4230,4230,4230', 424, '2700,0,0,0', NULL, 4, 500, NULL, NULL, NULL, NULL, NULL, 0), +(9175, 'Bronze crossbow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 29, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(9176, 'Blurite crossbow', 'A blurite crossbow.', NULL, NULL, 37, 55, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4591, 823, 4226, 4228, 4227, 821, 822, 175, 3, 6, NULL, '0,0,0,0,30,0,0,0,0,0,0,0,0,0,0', 17, NULL, NULL, NULL, NULL, '2700,0,0,0', '{4,16}', 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9177, 'Iron crossbow', 'An iron crossbow.', 1, NULL, 62, 94, NULL, NULL, 157, 20, NULL, NULL, NULL, 4591, 823, 4226, 4228, 4227, 821, 822, 175, 3, 6, NULL, '0,0,0,0,42,0,0,0,0,0,0,0,0,0,0', 17, NULL, NULL, '4230,4230,4230,4230', 424, '2700,0,0,0', '{4,26}', 4, 500, NULL, NULL, NULL, NULL, NULL, 0), +(9178, 'Iron crossbow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(9179, 'Steel crossbow', 'A steel crossbow.', 1, NULL, 144, 216, NULL, NULL, NULL, 99, NULL, NULL, NULL, 4591, 823, 4226, 4228, 4227, 821, 822, 175, 3, 6, NULL, '0,0,0,0,54,0,0,0,0,0,0,0,0,0,0', 17, NULL, NULL, '4230,4230,4230,4230', 424, '2700,0,0,0', '{4,31}', 5, 500, NULL, NULL, NULL, NULL, NULL, 0), +(9180, 'Steel crossbow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 99, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(9181, 'Mith crossbow', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 355, NULL, NULL, NULL, 4591, 823, 4226, 4228, 4227, 821, 822, 175, 3, NULL, NULL, '0,0,0,0,66,0,0,0,0,0,0,0,0,0,0', 17, NULL, NULL, '4230,4230,4230,4230', 424, '2700,0,0,0', '{4,36}', NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(9182, 'Mith crossbow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 355, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(9183, 'Adamant crossbow', 'An adamantite crossbow.', 1, NULL, 706, 1060, NULL, NULL, 2244, 905, NULL, NULL, NULL, 4591, 823, 4226, 4228, 4227, 821, 822, 175, 3, 6, NULL, '0,0,0,0,78,0,0,0,0,0,0,0,0,0,0', 17, NULL, NULL, '4230,4230,4230,4230', 424, '2700,0,0,0', '{4,46}', 6, 500, NULL, NULL, NULL, NULL, NULL, 0), +(9184, 'Adamant crossbow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 905, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(9185, 'Rune crossbow', 'A runite crossbow.', 1, 1, 6480, 9720, NULL, NULL, 16200, 9706, NULL, NULL, NULL, 4591, 823, 4226, 4228, 4227, 821, 822, 175, 3, 6, NULL, '0,0,0,0,90,0,0,0,0,0,0,0,0,0,0', 17, NULL, NULL, '4230,4230,4230,4230', 424, '2700,0,0,0', '{4,61}', 6, 500, NULL, NULL, NULL, NULL, NULL, 0), +(9186, 'Rune crossbow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 9706, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(9187, 'Jade bolt tips', 'Jade bolt tips.', 1, NULL, 4, 6, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9188, 'Topaz bolt tips', 'Red Topaz bolt tips.', 1, NULL, 5, 7, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9189, 'Sapphire bolt tips', 'Sapphire bolt tips.', 1, NULL, 6, 10, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9190, 'Emerald bolt tips', 'Emerald bolt tips.', 1, NULL, 13, 19, NULL, NULL, NULL, 84, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9191, 'Ruby bolt tips', 'Ruby bolt tips.', 1, NULL, 26, 40, NULL, NULL, NULL, 159, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9192, 'Diamond bolt tips', 'Diamond bolt tips.', 1, NULL, 53, 79, NULL, NULL, NULL, 1289, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9193, 'Dragon bolt tips', 'Dragonstone bolt tips.', 1, NULL, 24, 36, NULL, NULL, NULL, 2477, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9194, 'Onyx bolt tips', 'Onyx bolt tips.', 1, NULL, 400, 600, NULL, NULL, 13500, 8096, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, 1500, NULL, NULL, 0), +(9236, 'Opal bolts (e)', 'Enchanted Opal tipped Bronze Crossbow Bolts.', 1, NULL, 2, 4, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,14', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(9237, 'Jade bolts (e)', 'Enchanted Jade tipped Blurite Crossbow Bolts.', NULL, NULL, 5, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,30', NULL, NULL, NULL, NULL, NULL, NULL, '{4,15}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9238, 'Pearl bolts (e)', 'Enchanted Pearl tipped Iron Crossbow Bolts.', 1, NULL, 6, 9, NULL, NULL, NULL, 36, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,48', NULL, NULL, NULL, NULL, NULL, NULL, '{4,26}', NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(9239, 'Topaz bolts (e)', 'Enchanted Red Topaz tipped Steel Crossbow Bolts.', 1, NULL, 8, 12, NULL, NULL, NULL, 44, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,66', NULL, NULL, NULL, NULL, NULL, NULL, '{4,31}', NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(9240, 'Sapphire bolts (e)', 'Enchanted Sapphire tipped Mithril Crossbow Bolts.', 1, NULL, 16, 24, NULL, NULL, 103, 95, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,83', NULL, NULL, NULL, NULL, NULL, NULL, '{4,36}', NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(9241, 'Emerald bolts (e)', 'Enchanted Emerald tipped Mithril Crossbow Bolts.', 1, NULL, 23, 35, NULL, NULL, NULL, 304, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,85', NULL, NULL, NULL, NULL, NULL, NULL, '{4,36}', NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(9242, 'Ruby bolts (e)', 'Enchanted Ruby tipped Adamantite Crossbow Bolts.', 1, NULL, 55, 82, NULL, NULL, NULL, 450, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,103', NULL, NULL, NULL, NULL, NULL, NULL, '{4,46}', NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(9243, 'Diamond bolts (e)', 'Enchanted Diamond tipped Adamantite Crossbow Bolts.', 1, NULL, 84, 126, NULL, NULL, NULL, 1631, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,105', NULL, NULL, NULL, NULL, NULL, NULL, '{4,46}', NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(9244, 'Dragon bolts (e)', 'Enchanted Dragonstone tipped Runite Crossbow Bolts.', 1, NULL, 425, 637, NULL, NULL, NULL, 3217, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,117', NULL, NULL, NULL, NULL, NULL, NULL, '{4,61}', NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(9245, 'Onyx bolts (e)', 'Enchanted Onyx tipped runite Crossbow Bolts.', 1, NULL, 6000, 9000, NULL, NULL, NULL, 8870, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,120', NULL, NULL, NULL, NULL, NULL, NULL, '{4,61}', NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(9286, 'Blurite bolts(p)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,28', NULL, NULL, NULL, NULL, NULL, NULL, '{4,16}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9287, 'Iron bolts (p)', 'Iron crossbow bolts.', 1, NULL, NULL, 1, NULL, NULL, 60, 88, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,46', NULL, NULL, NULL, NULL, NULL, NULL, '{4,26}', NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(9288, 'Steel bolts (p)', 'Steel crossbow bolts.', 1, NULL, 3, 4, NULL, NULL, NULL, 132, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,64', NULL, NULL, NULL, NULL, NULL, NULL, '{4,31}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9289, 'Mithril bolts (p)', 'Mithril crossbow bolts.', 1, NULL, 8, 12, NULL, NULL, 32, 146, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,82', NULL, NULL, NULL, NULL, NULL, NULL, '{4,36}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9290, 'Adamant bolts (p)', 'Adamantite crossbow bolts.', 1, NULL, 23, 34, NULL, NULL, 23, 302, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,100', NULL, NULL, NULL, NULL, NULL, NULL, '{4,46}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9291, 'Runite bolts (p)', 'Runite crossbow bolts.', 1, NULL, 120, 180, NULL, NULL, NULL, 734, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,115', NULL, NULL, NULL, NULL, NULL, NULL, '{4,61}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9292, 'Silver bolts (p)', 'Silver crossbow bolts.', 1, NULL, 2, 3, NULL, NULL, 6, 34, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,36', NULL, NULL, NULL, NULL, NULL, NULL, '{4,26}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9293, 'Blurite bolts(p+)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,28', NULL, NULL, NULL, NULL, NULL, NULL, '{4,16}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9294, 'Iron bolts(p+)', 'Iron crossbow bolts.', 1, NULL, NULL, 1, NULL, NULL, 60, 185, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,46', NULL, NULL, NULL, NULL, NULL, NULL, '{4,26}', NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(9295, 'Steel bolts(p+)', 'Steel crossbow bolts.', 1, NULL, 3, 4, NULL, NULL, NULL, 215, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,64', NULL, NULL, NULL, NULL, NULL, NULL, '{4,31}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9296, 'Mithril bolts(p+)', 'Mithril crossbow bolts.', 1, NULL, 8, 12, NULL, NULL, 32, 296, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,82', NULL, NULL, NULL, NULL, NULL, NULL, '{4,36}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9297, 'Adamant bolts(p+)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 472, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,100', NULL, NULL, NULL, NULL, NULL, NULL, '{4,46}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9298, 'Runite bolts(p+)', 'Runite crossbow bolts.', 1, NULL, 120, 180, NULL, NULL, NULL, 1130, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,115', NULL, NULL, NULL, NULL, NULL, NULL, '{4,61}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9299, 'Silver bolts(p+)', 'Silver crossbow bolts.', 1, NULL, 2, 3, NULL, NULL, 6, 129, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,36', NULL, NULL, NULL, NULL, NULL, NULL, '{4,26}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9300, 'Blurite bolts(p++)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,28', NULL, NULL, NULL, NULL, NULL, NULL, '{4,16}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9301, 'Iron bolts(p++)', 'Iron crossbow bolts.', 1, NULL, NULL, 1, NULL, NULL, 60, 1136, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,46', NULL, NULL, NULL, NULL, NULL, NULL, '{4,26}', NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(9302, 'Steel bolts(p++)', 'Steel crossbow bolts.', 1, NULL, 3, 4, NULL, NULL, NULL, 1088, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,64', NULL, NULL, NULL, NULL, NULL, NULL, '{4,31}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9303, 'Mithril bolts(p++)', 'Mithril crossbow bolts.', 1, NULL, 8, 12, NULL, NULL, 32, 903, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,82', NULL, NULL, NULL, NULL, NULL, NULL, '{4,36}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9304, 'Adamant bolts(p++)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1043, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,100', NULL, NULL, NULL, NULL, NULL, NULL, '{4,46}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9305, 'Runite bolts(p++)', 'Runite crossbow bolts.', 1, NULL, 120, 180, NULL, NULL, NULL, 1581, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,115', NULL, NULL, NULL, NULL, NULL, NULL, '{4,61}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9306, 'Silver bolts(p++)', 'Silver crossbow bolts.', 1, NULL, 2, 3, NULL, NULL, 6, 1211, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,36', NULL, NULL, NULL, NULL, NULL, NULL, '{4,26}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9335, 'Jade bolts', 'Jade tipped blurite bolts.', NULL, NULL, 5, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,30', NULL, NULL, NULL, NULL, NULL, NULL, '{4,16}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9336, 'Topaz bolts', 'Red Topaz tipped Steel Crossbow Bolts.', 1, NULL, 8, 12, NULL, NULL, 62, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,66', NULL, NULL, NULL, NULL, NULL, NULL, '{4,31}', NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(9337, 'Sapphire bolts', 'Sapphire tipped Mithril crossbow bolts.', 1, NULL, 14, 22, NULL, NULL, NULL, 89, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,83', NULL, NULL, NULL, NULL, NULL, NULL, '{4,36}', NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(9338, 'Emerald bolts', 'Emerald tipped Mithril crossbow bolts.', 1, NULL, 21, 31, NULL, NULL, NULL, 177, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,85', NULL, NULL, NULL, NULL, NULL, NULL, '{4,36}', NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(9339, 'Ruby bolts', 'Ruby tipped Adamantite crossbow bolts.', 1, NULL, 50, 75, NULL, NULL, NULL, 408, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,103', NULL, NULL, NULL, NULL, NULL, NULL, '{4,46}', NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(9340, 'Diamond bolts', 'Diamond tipped Adamantite crossbow bolts.', 1, NULL, 76, 115, NULL, NULL, NULL, 1545, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,105', NULL, NULL, NULL, NULL, NULL, NULL, '{4,46}', NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(9341, 'Dragon bolts', 'Dragonstone tipped Runite crossbow bolts.', 1, NULL, 386, 580, NULL, NULL, NULL, 3201, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,117', NULL, NULL, NULL, NULL, NULL, NULL, '{4,61}', NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(9342, 'Onyx bolts', 'Onyx tipped Runite crossbow bolts.', 1, NULL, 5453, 8179, NULL, NULL, NULL, 8752, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,120', NULL, NULL, NULL, NULL, NULL, NULL, '{4,61}', NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(9375, 'Bronze bolts (unf)', 'Unfeathered bronze crossbow bolts.', 1, NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9376, 'Blurite bolts (unf)', 'Unfeathered blurite crossbow bolts.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9377, 'Iron bolts (unf)', 'Unfeathered iron crossbow bolts.', 1, NULL, NULL, NULL, NULL, NULL, 2, 14, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9378, 'Steel bolts (unf)', 'Unfeathered steel crossbow bolts.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 61, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9379, 'Mithril bolts (unf)', 'Unfeathered mithril crossbow bolts.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 115, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9380, 'Adamant bolts(unf)', 'Unfeathered adamantite crossbow bolts.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 266, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9381, 'Runite bolts (unf)', 'Unfeathered runite crossbow bolts', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1235, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9382, 'Silver bolts (unf)', 'Unfeathered silver crossbow bolts.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9415, 'Grapple', 'A mithril grapple tipped bolt with a rope.', 1, NULL, 12, 18, NULL, NULL, NULL, 1447, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9416, 'Mith grapple tip', 'A mithril grapple tip.', 1, NULL, 12, 18, NULL, NULL, NULL, 461, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9417, 'Mith grapple tip', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 461, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9418, 'Mith grapple', 'A mithril grapple tipped bolt with a rope.', 1, NULL, 12, 18, NULL, NULL, NULL, 858, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9419, 'Mith grapple', 'A mithril grapple tipped bolt with a rope.', 1, NULL, 12, 18, NULL, NULL, NULL, 1470, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9420, 'Bronze limbs', 'A pair of bronze crossbow limbs.', 1, NULL, 8, 12, NULL, NULL, 20, 49, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{9,9}', 1, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(9421, 'Bronze limbs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 49, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(9422, 'Blurite limbs', 'A pair of blurite crossbow limbs.', NULL, NULL, 13, 19, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{24,9}', 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9423, 'Iron limbs', 'A pair of iron crossbow limbs.', 1, NULL, 28, 42, NULL, NULL, 200, 34, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{9,39}', 1, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(9424, 'Iron limbs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 34, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(9425, 'Steel limbs', 'A pair of steel crossbow limbs.', 1, NULL, 100, 150, NULL, NULL, 900, 97, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{9,46}', 2, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(9426, 'Steel limbs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 97, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(9427, 'Mithril limbs', 'A pair of mithril crossbow limbs.', 1, NULL, 260, 390, NULL, NULL, 650, 347, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{9,54}', 2, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(9428, 'Mithril limbs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 347, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(9429, 'Adamantite limbs', 'A pair of adamantite crossbow limbs.', 1, NULL, 640, 960, NULL, NULL, 4800, 1434, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{9,61}', 3, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(9430, 'Adamantite limbs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1434, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(9431, 'Runite limbs', 'A pair of runite crossbow limbs.', 1, NULL, 6400, 9600, NULL, NULL, NULL, 9441, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{9,69}', 3, 5000, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(9432, 'Runite limbs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 9441, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(9433, 'Bolt pouch', 'A pouch for storing crossbow bolts.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', 1500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9434, 'Bolt mould', 'A mould for creating silver crossbow bolts.', 1, NULL, 10, 15, NULL, NULL, 25, 409, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9435, 'Bolt mould', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 409, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9436, 'Sinew', 'I can use this to make a crossbow string.', 1, NULL, NULL, 1, NULL, NULL, NULL, 196, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9437, 'Sinew', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 196, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9438, 'Crossbow string', 'A string for a crossbow.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 203, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9439, 'Crossbow string', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 203, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9440, 'Wooden stock', 'A wooden crossbow stock', 1, NULL, 8, 12, NULL, NULL, 8, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{9,9}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9441, 'Wooden stock', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9442, 'Oak stock', 'An oak crossbow stock.', 1, NULL, 10, 16, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{24,9}', 3, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9443, 'Oak stock', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9444, 'Willow stock', 'A willow crossbow stock.', 1, NULL, 21, 31, NULL, NULL, 21, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{9,39}', 1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9445, 'Willow stock', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9446, 'Teak stock', 'A teak crossbow stock.', 1, NULL, 30, 46, NULL, NULL, 231, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{9,46}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9447, 'Teak stock', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9448, 'Maple stock', 'A maple crossbow stock.', 1, NULL, 40, 60, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{9,54}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9449, 'Maple stock', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9450, 'Mahogany stock', 'A Mahogany crossbow stock.', 1, NULL, 53, 79, NULL, NULL, NULL, 23, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{9,61}', 3, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9451, 'Mahogany stock', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 23, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9452, 'Yew stock', 'A yew crossbow stock.', 1, NULL, 66, 100, NULL, NULL, NULL, 37, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{9,69}', 3, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9453, 'Yew stock', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 37, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9454, 'Bronze c\'bow (u)', 'An unstrung bronze crossbow.', 1, NULL, 16, 24, NULL, NULL, 27, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 8, 500, NULL, NULL, NULL, NULL, NULL, 0), +(9455, 'Bronze c\'bow (u)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(9456, 'Blurite c\'bow (u)', 'An unstrung blurite crossbow.', NULL, NULL, 24, 36, NULL, NULL, 27, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9457, 'Iron c\'bow (u)', 'An unstrung iron crossbow.', 1, NULL, 49, 73, NULL, NULL, NULL, 26, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 8, 500, NULL, NULL, NULL, NULL, NULL, 0), +(9458, 'Iron c\'bow (u)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 26, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(9459, 'Steel c\'bow (u)', 'An unstrung steel crossbow.', 1, NULL, 130, 196, NULL, NULL, 27, 114, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 8, 500, NULL, NULL, NULL, NULL, NULL, 0), +(9460, 'Steel c\'bow (u)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 114, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(9461, 'Mithril c\'bow (u)', 'An unstrung mithril crossbow.', 1, NULL, 300, 450, NULL, NULL, 27, 330, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(9462, 'Mithril c\'bow (u)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 330, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(9463, 'Adamant c\'bow (u)', 'An unstrung adamantite crossbow.', 1, NULL, 693, 1039, NULL, NULL, 693, 1007, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 8, 500, NULL, NULL, NULL, NULL, NULL, 0), +(9464, 'Adamant c\'bow (u)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1007, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(9465, 'Runite c\'bow (u)', 'An unstrung runite crossbow.', 1, NULL, 6466, 9700, NULL, NULL, 4000, 9493, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(9466, 'Runite c\'bow (u)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 9493, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(9467, 'Blurite bar', 'It\'s a bar of blurite.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9468, 'Sawdust', 'What is left over when a log is made into a plank.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9469, 'Grand seed pod', 'A seed pod of the Grand Tree.', 1, NULL, 100, 150, NULL, NULL, NULL, 16200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9470, 'Gnome scarf', 'A scarf. You feel your upper lip stiffening.', 1, NULL, 400, 600, NULL, NULL, NULL, 1900000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 10, NULL, NULL, NULL, NULL, NULL, 0), +(9471, 'Gnome scarf', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1900000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(9472, 'Gnome goggles', 'Tally Ho!', 1, NULL, 400, 600, NULL, NULL, NULL, 95800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(9473, 'Gnome goggles', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 95800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(9474, 'Reward token', 'Blue/Red/Yellow reward token exchanged at Burgh de Rott/Paterdomus.', NULL, NULL, NULL, NULL, 1, 'Warning! If you destroy this item, you will lose ALL rewards that it relates to and you will have to make another trek in order to get another one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9475, 'Mint cake', 'It looks very minty.', 1, NULL, 100, 150, NULL, NULL, NULL, 675, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9476, 'Mint cake', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 675, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9477, 'Aluft aloft box', 'You can check on your delivery details here', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9478, 'Half made batta', 'This XX batta needs baking (and garnishing with YY).', NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9479, 'Unfinished batta', 'This XX batta needs garnishing with YY.', NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9480, 'Half made batta', 'This XX batta needs baking (and garnishing with YY).', NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9481, 'Unfinished batta', 'This XX batta needs garnishing with YY.', NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9482, 'Half made batta', 'This XX batta needs baking (and garnishing with YY).', NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9483, 'Half made batta', 'This XX batta needs baking (and garnishing with YY).', NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9484, 'Unfinished batta', 'This XX batta needs garnishing with YY.', NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9485, 'Half made batta', 'This XX batta needs baking (and garnishing with YY).', NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9486, 'Unfinished batta', 'This XX batta needs garnishing with YY.', NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9487, 'Wizard blizzard', 'This looks like a strange mix.', 1, NULL, 12, 18, NULL, NULL, 28, 740, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9488, 'Wizard blizzard', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9489, 'Wizard blizzard', 'This looks like a strange mix.', 1, NULL, 12, 18, NULL, NULL, 28, 740, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9508, 'Wizard blizzard', 'This looks like a strange mix.', 1, NULL, 12, 18, NULL, NULL, 28, 740, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9509, 'Wizard blizzard', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9510, 'Short green guy', 'A Short Green Guy... looks good.', 1, NULL, 12, 18, NULL, NULL, 28, 954, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9511, 'Short green guy', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9512, 'Pineapple punch', 'A fresh healthy fruit mix.', 1, NULL, 12, 18, NULL, NULL, 28, 287, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9513, 'Pineapple punch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9514, 'Fruit blast', 'A cool refreshing fruit mix.', 1, NULL, 12, 18, NULL, NULL, 28, 2276, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9515, 'Fruit blast', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9516, 'Drunk dragon', 'A warm creamy alcoholic beverage', 1, NULL, 12, 18, NULL, NULL, 28, 577, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9517, 'Drunk dragon', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9518, 'Choc saturday', 'A warm creamy alcoholic beverage', 1, NULL, 12, 18, NULL, NULL, 28, 281, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9519, 'Choc saturday', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9520, 'Blurberry special', 'Looks good... smells strong.', 1, NULL, 12, 18, NULL, NULL, 30, 27, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9521, 'Blurberry special', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9522, 'Batta tin', 'A deep tin used to make gnome battas in.', NULL, NULL, 4, 6, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9523, 'Batta tin', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9524, 'Batta tin', 'A deep tin used to make gnome battas in.', NULL, NULL, 4, 6, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9525, 'Batta tin', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9527, 'Fruit batta', 'It actually smells quite good.', 1, NULL, NULL, 1, NULL, NULL, NULL, 310, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9528, 'Fruit batta', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9529, 'Toad batta', 'It actually smells quite good.', 1, NULL, NULL, 1, NULL, NULL, 78, 280, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9530, 'Toad batta', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9531, 'Worm batta', 'It actually smells quite good.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 148, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9532, 'Worm batta', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9533, 'Vegetable batta', 'Well... It looks healthy.', 1, NULL, NULL, 1, NULL, NULL, NULL, 240, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9534, 'Vegetable batta', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9535, 'Cheese+tom batta', 'This smells really good.', 1, NULL, NULL, 1, NULL, NULL, NULL, 266, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9536, 'Cheese+tom batta', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9538, 'Toad crunchies', 'It actually smells quite good.', 1, NULL, NULL, 1, NULL, NULL, NULL, 2606, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9539, 'Toad crunchies', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9540, 'Spicy crunchies', 'Yum...smells spicy.', 1, NULL, NULL, 1, NULL, NULL, 70, 99, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9541, 'Spicy crunchies', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9542, 'Worm crunchies', 'It actually smells quite good.', 1, NULL, NULL, 1, NULL, NULL, 80, 255, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9543, 'Worm crunchies', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9544, 'Chocchip crunchies', 'Yum... smells good.', 1, NULL, NULL, 1, NULL, NULL, 70, 889, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9545, 'Chocchip crunchies', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9547, 'Worm hole', 'It actually smells quite good.', 1, NULL, NULL, 1, NULL, NULL, NULL, 475, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9548, 'Worm hole', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9549, 'Veg ball', 'This looks pretty healthy.', 1, NULL, NULL, 1, NULL, NULL, NULL, 514, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9550, 'Veg ball', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9551, 'Tangled toads\' legs', 'It actually smells quite good.', 1, NULL, NULL, 1, NULL, NULL, NULL, 2650, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9552, 'Tangled toads\' legs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9553, 'Chocolate bomb', 'Full of creamy, chocolately goodness.', 1, NULL, NULL, 1, NULL, NULL, 450, 4704, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9554, 'Chocolate bomb', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9558, 'Half made bowl', 'This unfinished xxx needs baking, and final ingredients', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9559, 'Half made bowl', 'This unfinished xxx needs baking, and final ingredients', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9560, 'Unfinished bowl', 'This unfinished XX needs YY.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9561, 'Half made bowl', 'This unfinished xxx needs baking, and final ingredients', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9562, 'Unfinished bowl', 'This unfinished XX needs YY.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9563, 'Half made bowl', 'This unfinished xxx needs baking, and final ingredients', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9564, 'Unfinished bowl', 'This unfinished XX needs YY.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9565, 'Cocktail shaker', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9566, 'Mixed blizzard', 'This wizzard blizzard needs pouring, a lime slice, and pineapple chunks.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9567, 'Mixed sgg', 'This short green guy cocktail needs pouring, a lime slice and equa leaves.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9568, 'Mixed blast', 'This fruit blast cocktail needs pouring and a lemon slice.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9569, 'Mixed punch', 'This pineapple punch needs pouring, lime and pineapple chunks, and a orange slice.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9570, 'Mixed blurberry special', 'This blurberry special needs pouring, orange and lemon chunks, a lime slice and equa leaves.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9577, 'Half made crunchy', 'This XX crunchy needs baking and garnishing with YY.', 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9578, 'Unfinished crunchy', 'This XX crunchy needs garnishing with YY.', 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9579, 'Half made crunchy', 'This XX crunchy needs baking and garnishing with YY.', 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9580, 'Unfinished crunchy', 'This XX crunchy needs garnishing with YY.', 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9581, 'Half made crunchy', 'This XX crunchy needs baking and garnishing with YY.', 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9582, 'Unfinished crunchy', 'This XX crunchy needs garnishing with YY.', 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9583, 'Half made crunchy', 'This XX crunchy needs baking and garnishing with YY.', 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9584, 'Unfinished crunchy', 'This XX crunchy needs garnishing with YY.', 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9585, 'Batta tin', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9586, 'Crunchy tray', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9587, 'Gnomebowl mould', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9588, 'Raw crunchies', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9589, 'Dossier', 'A dossier containing info on the Black Knight plot.', NULL, NULL, NULL, NULL, 1, 'Speak to Sir Amik Varze at the beginning of the Black Knight\'s Fortress Quest.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9590, 'Dossier', 'A dossier containing info on the Black Knight plot.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9592, 'Magic glue', 'Glue made from tree sap and ground mud runes.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9593, 'Weird gloop', 'This doesn\'t look like it will do anything interesting.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9594, 'Ground mud runes', 'Mud runes ground into a powder.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9597, 'Red circle', 'A red circular crystalline disc.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9598, 'Red triangle', 'A red triangular crystalline disc.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9599, 'Red square', 'A red square-shaped crystalline disc.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9600, 'Red pentagon', 'A red pentagon shaped crystalline disc.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9601, 'Orange circle', 'An orange circular crystalline disc.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9602, 'Orange triangle', 'An orange triangular crystalline disc.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9603, 'Orange square', 'An orange square-shaped crystalline disc.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9604, 'Orange pentagon', 'An orange pentagon shaped crystalline disc.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9605, 'Yellow circle', 'A yellow circular crystalline disc.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9606, 'Yellow triangle', 'A yellow triangular crystalline disc.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9607, 'Yellow square', 'A yellow square-shaped crystalline disc.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9608, 'Yellow pentagon', 'A yellow pentagon shaped crystalline disc.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9609, 'Green circle', 'A green circular crystalline disc.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9610, 'Green triangle', 'A green triangular crystalline disc.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9611, 'Green square', 'A green square shaped crystalline disc.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9612, 'Green pentagon', 'A green pentagon shaped crystalline disc.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9613, 'Blue circle', 'A blue circular crystalline disc.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9614, 'Blue triangle', 'A blue triangular crystalline disc.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9615, 'Blue square', 'A blue square shaped crystalline disc.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9616, 'Blue pentagon', 'A blue pentagon shaped crystalline disc.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9617, 'Indigo circle', 'An indigo circular crystalline disc.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9618, 'Indigo triangle', 'An indigo triangular crystalline disc.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9619, 'Indigo square', 'An indigo square shaped crystalline disc.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9620, 'Indigo pentagon', 'An indigo pentagon shaped crystalline disc.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9621, 'Violet circle', 'A violet circular crystalline disc.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9622, 'Violet triangle', 'A violet triangular crystalline disc.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9623, 'Violet square', 'A violet square-shaped crystalline disc.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9624, 'Violet pentagon', 'A violet pentagon shaped crystalline disc.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9625, 'Crystal saw', 'A magical saw.', NULL, NULL, NULL, NULL, 1, 'Maybe Brimstail will have another...', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9626, 'Small crystal seed', 'This small crystal seed looks grey and dead.', NULL, NULL, NULL, NULL, 1, 'Maybe Brimstail will have another...', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9629, 'Tyras helm', 'As used by King Tyras personal guard.', 1, NULL, 220, 330, NULL, NULL, 1265, 1406, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,9,10,7,-1,9,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,5}', 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9630, 'Tyras helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1406, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9632, 'Daeyalt ore', 'This needs refining.', NULL, NULL, 40, 60, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9634, 'Vyrewatch top', 'Dressing like the Vyrewatch could be a useful disguise in the ghetto of Meiyerditch.', 1, NULL, 200, 300, NULL, NULL, 635, 2160, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9635, 'Vyrewatch top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9636, 'Vyrewatch legs', 'Dress like a powerful Vyrewatch!', 1, NULL, 200, 300, NULL, NULL, 635, 1204, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9637, 'Vyrewatch legs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1204, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9638, 'Vyrewatch shoes', 'Dress like a powerful Vyrewatch!', 1, NULL, 200, 300, NULL, NULL, 635, 2874, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9639, 'Vyrewatch shoes', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2874, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9640, 'Citizen top', 'Could be used as a disguise in the ghetto of Meiyerditch.', 1, NULL, 2, 3, NULL, NULL, 6, 588, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9641, 'Citizen top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 588, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9642, 'Citizen trousers', 'Could be used as a disguise in the ghetto of Meiyerditch.', 1, NULL, 2, 3, NULL, NULL, 6, 491, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9643, 'Citizen trousers', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 491, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9644, 'Citizen shoes', 'Could be used as a disguise in the ghetto of Meiyerditch.', 1, NULL, 2, 3, NULL, NULL, 6, 458, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9645, 'Citizen shoes', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 458, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(9646, 'Castle sketch 1', 'Northern approach of the castle.', NULL, NULL, NULL, NULL, 1, 'You can get another sketch by using charcoal with papyrus, when on the wall near Castle Drakyn.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9647, 'Castle sketch 2', 'Western approach of the castle.', NULL, NULL, NULL, NULL, 1, 'You can get another sketch by using charcoal with papyrus, when on the wall near Castle Drakyn.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9648, 'Castle sketch 3', 'Southern approach of the castle.', NULL, NULL, NULL, NULL, 1, 'You can get another sketch by using charcoal with papyrus, when on the wall near Castle Drakyn.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9651, 'Large ornate key', 'A key to some large, strange door.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9652, 'Haemalchemy', 'A book called Haemalchemy Volume 1.', NULL, NULL, NULL, NULL, 1, 'Unknown You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9653, 'Sealed message', 'A sealed message from Safalaan to Valiaf.', NULL, NULL, NULL, NULL, 1, 'Safalaan gave you this message; he would probably write out another one for you.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9654, 'Door key', 'A key to the Witch\'s house\'s front door. (Witch\'s House)', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9655, 'Ladder top', 'The top part of a ladder.', NULL, NULL, NULL, NULL, 1, 'You found this ladder top on a wall section in the north of Meiyerditch; you can get another one there.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9656, 'Tome of xp (3)', 'A tome of experience that awards 2000 XP per chapter.', NULL, NULL, NULL, NULL, 1, 'You can get another Tome of Experience from Veliaf in Burgh de Rott.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9657, 'Tome of xp (2)', 'A tome of experience that awards 2000 XP per chapter.', NULL, NULL, NULL, NULL, 1, 'You can get another Tome of Experience from Veliaf in Burgh de Rott.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9658, 'Tome of xp (1)', 'A tome of experience that awards 2000 XP per chapter.', NULL, NULL, NULL, NULL, 1, 'You can get another Tome of Experience from Veliaf in Burgh de Rott.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9659, 'Bucket of water', 'Common bucket: It\'s a bucket of water.2008 Easter event: It\'s a bucket of water from the Easter Bunny\'s warren. Regular bucket filled from Braindeath Island: It\'s a bucket of... water?', 1, NULL, 2, 3, NULL, 'You can reclaim this item from the place you found it.', NULL, 74, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9660, 'Bucket', 'It\'s an empty bucket.', 1, NULL, NULL, 1, NULL, 'You can reclaim this item from the place you found it.', 2, 50, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9662, 'Shortcut key', 'A key allowing a shortcut into the Sanguinesti region. (Darkness of Hallowvale)', NULL, NULL, NULL, NULL, 1, 'Safalaan gave you this key as a reward for helping out in Meiyerditch, you can get another key from him.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9665, 'Torch', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9666, 'Pros\'yte harness m', 'Unknown edit', 1, NULL, NULL, NULL, NULL, NULL, 25000, 27500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9667, 'Pros\'yte harness m', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 27500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9668, 'Initiate harness m', 'Unknown edit', 1, NULL, NULL, NULL, NULL, NULL, 20000, 22700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9669, 'Initiate harness m', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 22700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9670, 'Pros\'yte harness f', 'Unknown edit', 1, NULL, NULL, NULL, NULL, NULL, 25000, 27900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9671, 'Pros\'yte harness f', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 27900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9672, 'Proselyte sallet', 'A Proselyte Temple Knight\'s helm.', 1, NULL, 3200, 4800, NULL, NULL, 8000, 4619, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,2', '0,0,0,-6,-2,19,21,16,-1,19,6,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}-{5,20}', 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9673, 'Proselyte sallet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4619, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9674, 'Proselyte hauberk', 'A Proselyte Temple Knight\'s armour.', 1, NULL, 4800, 7200, NULL, NULL, 12000, 7076, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '2,0,4', '0,0,0,-30,-10,65,63,55,-6,63,30,0,8,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}-{5,20}', 8.6, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9675, 'Proselyte hauberk', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7076, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9676, 'Proselyte cuisse', 'A Proselyte Temple Knight\'s leg armour', 1, NULL, 4000, 6000, NULL, NULL, 10000, 5923, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '1,0,3', '0,0,0,-21,-7,33,31,29,-4,31,10,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}-{5,20}', 7.7, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9677, 'Proselyte cuisse', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5923, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9678, 'Proselyte tasset', 'A Proselyte Temple Knight\'s leg armour.', 1, NULL, 4000, 6000, NULL, NULL, 10, 5730, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '1,0,3', '0,0,0,-21,-7,33,31,29,-4,31,10,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}-{5,20}', 9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9679, 'Proselyte tasset', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5730, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9680, 'Sea slug glue', 'A rendered down baby sea slug.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9681, 'Commorb v2', 'A Temple Knight Communication Orb. Top Secret!', NULL, NULL, NULL, NULL, NULL, 'As a security precaution, your CommOrb will automatically self', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9682, 'Door transcription', 'A copy of the mysterious glyphs.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9683, 'Dead sea slug', 'Dead sea slug, very sticky.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9684, 'Page 1', 'A page from Maledict\'s holy book.', NULL, NULL, NULL, NULL, 1, 'You can get this page from Mayor Hobb\'s Desk.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9685, 'Page 2', 'A page from Maledict\'s holy book.', NULL, NULL, NULL, NULL, 1, 'You can get this page from Ezekial Lovecraft.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9686, 'Page 3', 'A page from Maledict\'s holy book.', NULL, NULL, NULL, NULL, 1, 'You will have to get the torn page from Col. O\' Niall.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9687, 'Fragment 1', 'A piece of torn page.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9688, 'Fragment 2', 'A piece of torn page.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9689, 'Fragment 3', 'A piece of torn page.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9690, 'Blank water rune', 'A blank water rune.', NULL, NULL, NULL, NULL, 1, 'Are you sure you wish to destroy this?', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9691, 'Water rune', 'One of the 4 basic elemental Runes.', 1, NULL, 2, 3, NULL, 'You can reclaim this item from the place you found it.', 17, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9692, 'Blank air rune', 'A blank air rune.', NULL, NULL, NULL, NULL, 1, 'Are you sure you wish to destroy this?', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9693, 'Air rune', 'One of the 4 basic elemental Runes.', 1, NULL, 2, 3, NULL, 'You can reclaim this item from the place you found it.', 17, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9694, 'Blank earth rune', 'A blank earth rune.', NULL, NULL, NULL, NULL, 1, 'Are you sure you wish to destroy this?', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9695, 'Earth rune', 'One of the 4 basic elemental Runes.', 1, NULL, 2, 3, NULL, 'You can reclaim this item from the place you found it.', 17, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9696, 'Blank mind rune', 'A blank mind rune.', NULL, NULL, NULL, NULL, 1, 'Are you sure you wish to destroy this?', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9697, 'Mind rune', 'Used for basic missile spells.', 1, NULL, 2, 3, NULL, 'You can reclaim this item from the place you found it.', 17, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9698, 'Blank fire rune', 'A blank fire rune.', NULL, NULL, NULL, NULL, 1, 'Are you sure you wish to destroy this?', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9699, 'Fire rune', 'One of the 4 basic elemental Runes.', 1, NULL, 2, 3, NULL, 'You can reclaim this item from the place you found it.', 17, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9701, 'Torch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9702, 'Stick', 'A big, bad troll.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9703, 'Training sword', 'Basic training sword.', NULL, NULL, NULL, NULL, NULL, NULL, 35, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '4,3,-2,0,0,0,2,1,0,0,0,5,0,0,0', 5, NULL, NULL, '381,390,390,390', 397, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9704, 'Training shield', 'Made of flimsy painted wood.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,0,0,4,5,3,1,4,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9705, 'Training bow', 'Light and flexible, good for a beginner.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, '0,0,0,0,8,0,0,0,0,0,0,0,0,0,0', 16, NULL, 1, '426,426,426,426', 424, '2700,0,0,0', NULL, 1.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9706, 'Training arrows', 'Standard training arrows.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,7', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9715, 'Slashed book', 'Book of the elemental shield.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9717, 'Beaten book', 'Book of the elemental helm.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9718, 'Crane schematic', 'On the subject of lava dippers.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9719, 'Lever schematic', 'A scroll with a lever schematic drawn on it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9720, 'Crane claw', 'A crane claw.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9723, 'Pipe', 'A pipe that belongs in a cannon stand.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9724, 'Large cog', 'A large cog.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9725, 'Medium cog', 'A medium cog.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9726, 'Small cog', 'A small cog.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9727, 'Primed bar', 'A primed elemental ingot.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9728, 'Elemental mind bar', 'An elemental mind ingot.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9729, 'Elemental helmet', 'A helmet made in the Elemental Workshop.', 1, NULL, 8, 12, NULL, NULL, NULL, 196, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,0,0,0,0,0,4,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9730, 'Elemental helmet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 196, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9731, 'Mind shield', 'A shield made in the Elemental Workshop.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 8351, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,0,0,0,0,0,9,0,25,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9732, 'Mind shield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8351, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9733, 'Mind helmet', 'A helmet made in the Elemental Workshop.', 1, NULL, 1200, 1800, NULL, NULL, 1200, 1589, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,0,0,0,0,0,6,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9734, 'Mind helmet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1589, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9735, 'Desert goat horn', 'Not much good for blowing.', 1, NULL, 4, 7, NULL, NULL, NULL, 902, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9736, 'Goat horn dust', 'Finely ground desert goat horn.', 1, NULL, 4, 7, NULL, NULL, NULL, 1082, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9737, 'Goat horn dust', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1082, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9738, 'Desert goat horn', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9739, 'Combat potion(4)', 'X dose(s) of combat potion.', 1, NULL, 64, 96, NULL, NULL, 207, 45, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9740, 'Combat potion(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 45, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9741, 'Combat potion(3)', 'X dose(s) of combat potion.', 1, NULL, 64, 96, NULL, NULL, 207, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9742, 'Combat potion(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9743, 'Combat potion(2)', 'X dose(s) of combat potion.', 1, NULL, 64, 96, NULL, NULL, 207, 19, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9744, 'Combat potion(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 19, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9745, 'Combat potion(1)', 'X dose(s) of combat potion.', 1, NULL, 64, 96, NULL, NULL, 207, 72, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9746, 'Combat potion(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 72, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9747, 'Attack cape', 'The cape worn by masters of attack.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9748, 'Attack cape(t)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9749, 'Attack hood', 'Attack skillcape hood.', NULL, NULL, NULL, NULL, NULL, NULL, 99000, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9750, 'Strength cape', 'The cape only worn by the strongest people.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9751, 'Strength cape(t)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9752, 'Strength hood', 'Strength skillcape hood.', NULL, NULL, NULL, NULL, NULL, NULL, 99000, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9753, 'Defence cape', 'The cape worn by masters of the art of Defence.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9754, 'Defence cape(t)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9755, 'Defence hood', 'Defence skillcape hood.', NULL, NULL, NULL, NULL, NULL, NULL, 99000, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9756, 'Ranging cape', 'The cape worn by master archers.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9757, 'Ranging cape(t)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9758, 'Ranging hood', 'Range skillcape hood.', NULL, NULL, NULL, NULL, NULL, NULL, 99000, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9759, 'Prayer cape', 'The cape worn by the most pious of heroes.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9760, 'Prayer cape(t)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9761, 'Prayer hood', 'Prayer skillcape hood.', NULL, NULL, NULL, NULL, NULL, NULL, 99000, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9762, 'Magic cape', 'The cape worn by the most powerful mages.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9763, 'Magic cape(t)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9764, 'Magic hood', 'Magic skillcape hood.', NULL, NULL, NULL, NULL, NULL, NULL, 99000, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9765, 'Runecraft cape', 'The cape worn by master runecrafters.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9766, 'Runecraft cape(t)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9767, 'Runecrafting hood', 'Runecrafting skillcape hood.', NULL, NULL, NULL, NULL, NULL, NULL, 99000, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9768, 'Hitpoints cape', 'The cape worn by well-constituted adventurers.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9769, 'Hitpoints cape(t)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9770, 'Hitpoints hood', 'Constitution skillcape hood.', NULL, NULL, NULL, NULL, NULL, NULL, 99000, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9771, 'Agility cape', 'The cape worn by the most agile of heroes.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9772, 'Agility cape(t)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9773, 'Agility hood', 'Agility skillcape hood.', NULL, NULL, NULL, NULL, NULL, NULL, 99000, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9774, 'Herblore cape', 'The cape worn by the most skilled at the art of herblore.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9775, 'Herblore cape(t)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9776, 'Herblore hood', 'Herblore skillcape hood.', NULL, NULL, NULL, NULL, NULL, NULL, 99000, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9777, 'Thieving cape', 'The cape worn by master thieves.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9778, 'Thieving cape(t)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9779, 'Thieving hood', 'Thieving skillcape hood.', NULL, NULL, NULL, NULL, NULL, NULL, 99000, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9780, 'Crafting cape', 'The cape worn by master craftworkers.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9781, 'Crafting cape(t)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9782, 'Crafting hood', 'Crafting skillcape hood.', NULL, NULL, NULL, NULL, NULL, NULL, 99000, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9783, 'Fletching cape', 'The cape worn by the best of fletchers.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9784, 'Fletching cape(t)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9785, 'Fletching hood', 'Fletching skillcape hood.', NULL, NULL, NULL, NULL, NULL, NULL, 99000, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9786, 'Slayer cape', 'The cape worn by slayer masters.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9787, 'Slayer cape(t)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9788, 'Slayer hood', 'Slayer skillcape hood.', NULL, NULL, NULL, NULL, NULL, NULL, 99000, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9789, 'Construct. cape', 'The cape worn by master builders.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9790, 'Construct. cape(t)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9791, 'Construct. hood', 'Construction skillcape hood.', NULL, NULL, NULL, NULL, NULL, NULL, 99000, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9792, 'Mining cape', 'The cape worn by the most skilled miners.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9793, 'Mining cape(t)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9794, 'Mining hood', 'Mining skillcape hood.', NULL, NULL, NULL, NULL, NULL, NULL, 99000, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9795, 'Smithing cape', 'The cape worn by master smiths.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9796, 'Smithing cape(t)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9797, 'Smithing hood', 'Smithing skillcape hood.', NULL, NULL, NULL, NULL, NULL, NULL, 99000, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9798, 'Fishing cape', 'The cape worn by the best fishermen.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9799, 'Fishing cape(t)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9800, 'Fishing hood', 'Fishing skillcape hood.', NULL, NULL, NULL, NULL, NULL, NULL, 99000, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9801, 'Cooking cape', 'The cape worn by the world\'s best chefs.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9802, 'Cooking cape(t)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9803, 'Cooking hood', 'Cooking skillcape hood.', NULL, NULL, NULL, NULL, NULL, NULL, 99000, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9804, 'Firemaking cape', 'The cape worn by master firelighters.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9805, 'Firemaking cape(t)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9806, 'Firemaking hood', 'Firemaking skillcape hood.', NULL, NULL, NULL, NULL, NULL, NULL, 99000, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9807, 'Woodcutting cape', 'The cape worn by master woodcutters (Obtaining level 99 skill)', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9808, 'Woodcut. cape(t)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9809, 'Woodcutting hood', 'Woodcutting skillcape hood.', NULL, NULL, NULL, NULL, NULL, NULL, 99000, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9810, 'Farming cape', 'The cape worn by master farmers.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9811, 'Farming cape(t)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9812, 'Farming hood', 'Farming skillcape hood.', NULL, NULL, NULL, NULL, NULL, NULL, 99000, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9813, 'Quest point cape', 'The cape worn by only the most experienced adventurers.', NULL, NULL, NULL, NULL, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9814, 'Quest point hood', 'Quest skillcape hood.', NULL, NULL, NULL, NULL, NULL, NULL, 99000, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9815, 'Bobble hat', 'A woolly bobble hat.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.25, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9816, 'Bobble scarf', 'A woolly scarf.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.25, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9817, 'Oak cape rack', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9818, 'Teak cape rack', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 88, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9819, 'M\'gany cape rack', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9820, 'Gilded cape rack', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 136025, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9821, 'Marble cape rack', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 328598, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9822, 'Magical cape rack', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 979747, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9823, 'Oak costume box', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 59, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9824, 'Teak costume box', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 122, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9825, 'Mahogany cos box', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 59, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9826, 'Oak armour case', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 15, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9827, 'Teak armour case', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 27, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9828, 'M\'gany arm\'r case', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9829, 'Oak magic wardrobe', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 103, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9830, 'Carved oak magic wardrobe', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9831, 'Teak magic wardrobe', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 127, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(9832, 'Carved teak magic wardrobe', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9833, 'Mahogany magic wardrobe', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 135, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9834, 'Gilded magic wardrobe', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 137267, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9835, 'Marble magic wardrobe', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 341567, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9836, 'Oak toy box', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 21, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9837, 'Teak toy box', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 151, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9838, 'Mahogany toy box', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9839, 'Oak treasure chest', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 21, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9840, 'Teak treas\' chest', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 157, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9841, 'M\'gany treas\' chest', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 39, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9843, 'Oak cape rack', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9844, 'Teak cape rack', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 92, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9845, 'M\'gany cape rack', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 111, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9846, 'Gilded cape rack', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 130900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9847, 'Marble cape rack', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 329500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9848, 'Magical cape rack', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9849, 'Oak toy box', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9850, 'Teak toy box', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 165, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9851, 'Mahogany toy box', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9852, 'Oak magic wardrobe', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 111, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9853, 'Carved oak magic wardrobe', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9854, 'Teak magic wardrobe', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 133, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9855, 'Carved teak magic wardrobe', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 15, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9856, 'Mahogany magic wardrobe', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 129, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9857, 'Gilded magic wardrobe', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 137700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9858, 'Marble magic wardrobe', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 335800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9859, 'Oak armour case', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 17, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9860, 'Teak armour case', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 29, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9861, 'M\'gany arm\'r case', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 88, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9862, 'Oak treasure chest', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 24, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9863, 'Teak treas\' chest', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 164, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9864, 'M\'gany treas\' chest', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 41, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9865, 'Oak costume box', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 62, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9866, 'Teak costume box', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 135, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9867, 'Mahogany cos box', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9868, 'Oak cape rack', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9869, 'Teak cape rack', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9870, 'M\'gany cape rack', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9871, 'Gilded cape rack', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9872, 'Marble cape rack', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9873, 'Magical cape rack', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9874, 'Oak toy box', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9875, 'Teak toy box', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9876, 'Mahogany toy box', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9877, 'Oak magic wardrobe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9878, 'Carved oak magic wardrobe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9879, 'Teak magic wardrobe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9880, 'Carved teak magic wardrobe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9881, 'Mahogany magic wardrobe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9882, 'Gilded magic wardrobe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9883, 'Marble magic wardrobe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9884, 'Oak armour case', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9885, 'Teak armour case', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9886, 'M\'gany arm\'r case', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9887, 'Oak treasure chest', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9888, 'Teak treas\' chest', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9889, 'M\'gany treas\' chest', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9890, 'Oak costume box', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9891, 'Teak costume box', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9892, 'Mahogany cos box', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9901, 'Goutweedy lump', 'A lump that at some point might have been a gout tuber.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9902, 'Hardy gout tubers', 'A pile of gout tubers suitable for use in mountainous terrain.', NULL, NULL, 2, 3, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9903, 'Farming manual', 'Farmer Gricoller\'s Farming Manual.', NULL, NULL, 8, 12, 1, 'My Arm will probably have a spare copy.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9904, 'Sailing book', 'A book for sailors.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9906, 'Ghost buster 500', 'See article', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9907, 'Ghost buster 500', 'See article', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9908, 'Ghost buster 500', 'See article', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9909, 'Ghost buster 500', 'See article', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9910, 'Ghost buster 500', 'See article', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9911, 'Ghost buster 500', 'See article', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9912, 'Ghost buster 500', 'See article', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9913, 'White destabiliser', 'A white destabiliser for use in a ghost buster.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9914, 'Red destabiliser', 'A red destabiliser for use in a ghost buster.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9915, 'Blue destabiliser', 'A blue destabiliser for use in a ghost buster.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9916, 'Green destabiliser', 'A green destabiliser for use in a ghost buster.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9917, 'Yellow destabiliser', 'A yellow destabiliser for use in a ghost buster.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9918, 'Black destabiliser', 'A black destabiliser for use in a ghost buster.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9919, 'Evil root', 'An angry-looking tree root.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9920, 'Jack lantern mask', 'Better not light it!', NULL, NULL, NULL, NULL, 1, 'Players may get another from Diango in Draynor Village.', NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9921, 'Skeleton boots', 'Skeleton feet.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9922, 'Skeleton gloves', 'Some skeletal gloves.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9923, 'Skeleton leggings', 'Does my pelvis look big in this?', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9924, 'Skeleton shirt', 'The shirt of a fully body skeleton costume.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9925, 'Skeleton mask', 'A scary skeleton mask.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9932, 'Auguste\'s sapling', 'This sapling is ready to be replanted in a tree patch.', NULL, NULL, NULL, NULL, 1, 'You\'ll have to buy another one from Auguste on Entrana.', 30000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9933, 'Balloon structure', 'An incomplete origami balloon.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9934, 'Origami balloon', 'An origami balloon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9935, 'Yellow balloon', 'An origami balloon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9936, 'Blue balloon', 'An origami balloon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9937, 'Red balloon', 'An origami balloon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9938, 'Orange balloon', 'An origami balloon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9939, 'Green balloon', 'An origami balloon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9940, 'Purple balloon', 'An origami balloon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9941, 'Pink balloon', 'An origami balloon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9942, 'Black balloon', 'An origami balloon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9943, 'Sandbag', 'A bag full of sand.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9944, 'Bomber jacket', 'For all your flying needs.', NULL, NULL, NULL, NULL, 1, 'You\'ll have to visit Auguste on Entrana to get a new jacket.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9945, 'Bomber cap', 'The red baron would be jealous.', NULL, NULL, NULL, NULL, 1, 'You\'ll have to visit Auguste on Entrana to get a new cap.', NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9946, 'Cap and goggles', 'For better flying vision.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9947, 'Old red disk', 'A red coloured disk that\'s seen better days.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9948, 'Hunter cape', 'The cape worn by master hunters.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9949, 'Hunter cape(t)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9950, 'Hunter hood', 'Hunter skillcape hood.', NULL, NULL, NULL, NULL, NULL, NULL, 99000, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9952, 'Imp', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9953, 'Kebbit', 'A little bigger than usual...', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9954, 'Kebbit', 'A little bigger than usual...', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9955, 'Kebbit', 'A little bigger than usual...', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9956, 'Kebbit', 'A little bigger than usual...', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9957, 'Kebbit', 'A little bigger than usual...', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9958, 'Kebbit', 'A little bigger than usual...', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9959, 'Kebbit', 'A little bigger than usual...', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9960, 'Kebbit', 'A little bigger than usual...', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9961, 'Kebbit', 'A little bigger than usual...', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9962, 'Kebbit', 'A little bigger than usual...', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9963, 'Kebbit', 'A little bigger than usual...', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9964, 'Kebbit', 'A little bigger than usual...', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9974, 'Giant eagle', 'It appears to be protecting the nest.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9975, 'Rabbit', 'Aww, how cute. ', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9977, 'Red chinchompa', 'Even more volatile than its vegetarian counterpart.', 1, NULL, 64, 96, 1, NULL, NULL, 796, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '0,0,0,0,70,0,0,0,0,0,0,0,15,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9978, 'Raw bird meat', 'This certainly needs cooking!', 1, NULL, 25, 37, NULL, NULL, 63, 204, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.15, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9979, 'Raw bird meat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 204, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(9980, 'Roast bird meat', 'A nicely roasted bird.', 1, NULL, 7, 10, NULL, NULL, NULL, 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9981, 'Roast bird meat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9983, 'Burnt bird meat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9984, 'Skewered bird meat', 'This certainly needs cooking!', 1, NULL, 25, 37, NULL, NULL, 63, 130, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.15, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9985, 'Skewered bird meat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 130, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9986, 'Raw beast meat', 'A slab of raw beast meat.', 1, NULL, 10, 15, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9987, 'Raw beast meat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9988, 'Roast beast meat', 'A delicious looking slab of roast beast.', 1, NULL, 10, 15, NULL, NULL, NULL, 42, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9989, 'Roast beast meat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 42, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9991, 'Burnt beast meat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(9992, 'Skewered beast', 'Beast meat on a spit.', 1, NULL, 35, 53, NULL, NULL, NULL, 97, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3.5, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9993, 'Skewered beast', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 97, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9994, 'Spicy tomato', 'A bowl of chopped tomatoes with an extra kick.', 1, NULL, 1, 1, NULL, NULL, NULL, 324, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9995, 'Spicy tomato', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 324, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9996, 'Spicy minced meat', 'A bowl of chopped beef with an extra kick.', 1, NULL, 3, 4, NULL, NULL, NULL, 263, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9997, 'Spicy minced meat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 263, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(9998, 'Hunter potion(4)', 'X doses of hunter potion.', 1, NULL, 6, 9, NULL, NULL, NULL, 566, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(9999, 'Hunter potion(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 566, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10000, 'Hunter potion(3)', 'X doses of hunter potion.', 1, NULL, 6, 9, NULL, NULL, NULL, 229, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10001, 'Hunter potion(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 229, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10002, 'Hunter potion(2)', 'X doses of hunter potion.', 1, NULL, 6, 9, NULL, NULL, NULL, 159, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10003, 'Hunter potion(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 159, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10004, 'Hunter potion(1)', 'X doses of hunter potion.', 1, NULL, 6, 9, NULL, NULL, NULL, 148, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10005, 'Hunter potion(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 148, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10006, 'Bird snare', 'A simple bird catcher./There\'s something caught in it.', 1, NULL, 2, 3, NULL, NULL, 6, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10007, 'Bird snare', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10008, 'Box trap', 'If a creature goes inside, then the box should slam shut.', 1, NULL, 12, 18, NULL, NULL, 38, 308, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{21,27}', 0.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10009, 'Box trap', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 308, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10010, 'Butterfly net', 'For catching butterflies...', 1, NULL, 8, 12, NULL, NULL, 24, 1, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 4, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, '{15,21}', 0.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10011, 'Butterfly net', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10012, 'Butterfly jar', 'It\'s got little holes at the top.', 1, NULL, NULL, NULL, NULL, NULL, 1, 156, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{15,21}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10013, 'Butterfly jar', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 156, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10014, 'Black warlock', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 143, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(10015, 'Black warlock', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 143, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(10016, 'Snowy knight', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 227, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(10017, 'Snowy knight', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 227, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(10018, 'Sapphire glacialis', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 180, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(10019, 'Sapphire glacialis', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 180, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(10020, 'Ruby harvest', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1270, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(10021, 'Ruby harvest', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1270, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(10023, 'Falconer\'s glove', 'A very large, single leather glove', NULL, NULL, NULL, NULL, 1, NULL, 500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, '0,0,0,0,0,0,1,1,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10024, 'Falconer\'s glove', 'A very large, single leather glove', NULL, NULL, NULL, NULL, 1, NULL, 500, NULL, NULL, NULL, NULL, 5160, 5161, 5164, 5168, 5165, 5166, 5167, 1283, 3, 4, NULL, '0,0,0,0,0,0,1,1,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10025, 'Magic box', 'A magical catching box.', 1, NULL, 288, 432, NULL, NULL, 720, 784, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{21,71}', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10026, 'Magic box', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 784, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10027, 'Imp-in-a-box(2)', 'A magical catching box.', 1, NULL, 288, 432, NULL, NULL, 720, 743, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10028, 'Imp-in-a-box(1)', 'A magical catching box.', 1, NULL, 288, 432, NULL, NULL, 720, 743, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10029, 'Teasing stick', 'Reduces the risk of hand severage when poking large, vicious carnivores.', 1, NULL, 20, 30, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, '7,8,0,-4,0,-1,1,2,0,0,0,8,0,0,0', 6, NULL, NULL, NULL, NULL, NULL, '{21,31}', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10030, 'Teasing stick', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10031, 'Rabbit snare', 'The snare will tighten around animals passing through.', 1, NULL, 7, 10, NULL, NULL, 18, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{21,27}', 0.02, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10032, 'Rabbit snare', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10033, 'Chinchompa', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 973, NULL, NULL, NULL, 3175, 3177, 3177, 3178, 3177, 3177, 3177, 234, 3, 4, NULL, '0,0,0,0,45,0,0,0,0,0,0,0,0,0,0', 19, NULL, NULL, NULL, NULL, NULL, '{4,45}', NULL, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(10034, 'Red chinchompa', 'Even more volatile than its vegetarian counterpart.', 1, NULL, 64, 96, 1, NULL, NULL, 1382, NULL, NULL, NULL, 3175, 3177, 3177, 3178, 3177, 3177, 3177, 234, 3, 4, NULL, '0,0,0,0,70,0,0,0,0,0,0,0,0,0,15', 19, NULL, NULL, NULL, NULL, NULL, '{4,55}', NULL, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(10035, 'Kyatt legs', 'These should make me harder to spot in polar areas.', 1, NULL, 80, 120, NULL, NULL, NULL, 449, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,0,-7,11,10,10,0,10,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{21,52}', 0.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10036, 'Kyatt legs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 449, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10037, 'Kyatt top', 'This should make me harder to spot in polar areas.', 1, NULL, 80, 120, NULL, NULL, NULL, 272, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,10,15,19,0,12,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{21,52}', 0.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10038, 'Kyatt top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 272, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10039, 'Kyatt hat', 'This should make me harder to spot in polar areas.', 1, NULL, 400, 600, NULL, NULL, NULL, 8338, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,0,-1,4,5,3,0,4,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{21,52}', 0.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10040, 'Kyatt hat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8338, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(10041, 'Larupia legs', 'This should make me harder to spot in woodland and jungle areas.', 1, NULL, 40, 60, NULL, NULL, NULL, 2889, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,0,-7,11,10,10,0,10,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{21,28}', 0.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10042, 'Larupia legs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2889, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10043, 'Larupia top', 'This should make me harder to spot in woodland and jungle areas.', 1, NULL, 40, 60, NULL, NULL, NULL, 3232, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,10,15,19,0,12,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{21,28}', 0.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10044, 'Larupia top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3232, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10045, 'Larupia hat', 'This should make me harder to spot in woodland and jungle areas.', 1, NULL, 200, 300, NULL, NULL, NULL, 7237, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,0,-1,4,5,3,0,4,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{21,28}', 0.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10046, 'Larupia hat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7237, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10047, 'Graahk legs', 'These should make me harder to spot in desert areas.', 1, NULL, 60, 90, NULL, NULL, 150, 266, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,0,-7,11,10,10,0,10,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{21,38}', 0.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10048, 'Graahk legs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 266, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10049, 'Graahk top', 'This should make me harder to spot in desert areas.', 1, NULL, 60, 90, NULL, NULL, 300, 252, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,10,15,19,0,12,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{21,38}', 0.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10050, 'Graahk top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 252, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10051, 'Graahk headdress', 'This should make me harder to spot in desert areas.', 1, NULL, 300, 450, NULL, NULL, 1, 8445, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,0,-1,4,5,3,0,4,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{21,38}', 0.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10052, 'Graahk headdress', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8445, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10053, 'Wood camo top', 'This should make me harder to spot in wooded areas.', 1, NULL, 8, 12, NULL, NULL, NULL, 3527, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,10,15,19,0,12,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10054, 'Wood camo top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3527, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10055, 'Wood camo legs', 'These should make me harder to spot in wooded areas.', 1, NULL, 8, 12, NULL, NULL, NULL, 3228, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,0,-7,11,10,10,0,10,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10056, 'Wood camo legs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3228, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10057, 'Jungle camo top', 'This should make me harder to spot in jungle areas.', 1, NULL, 8, 12, NULL, NULL, NULL, 315, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,10,15,19,0,12,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{21,4}', 0.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10058, 'Jungle camo top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 315, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10059, 'Jungle camo legs', 'These should make me harder to spot in jungle areas.', 1, NULL, 8, 12, NULL, NULL, NULL, 462, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,0,-7,11,10,10,0,10,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{21,4}', 0.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10060, 'Jungle camo legs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 462, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10061, 'Desert camo top', 'This should make me harder to spot in desert areas.', 1, NULL, 8, 12, NULL, NULL, NULL, 541, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,10,15,19,0,12,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{21,10}', 0.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10062, 'Desert camo top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 541, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10063, 'Desert camo legs', 'These should make me harder to spot in desert areas.', 1, NULL, 8, 12, NULL, NULL, NULL, 910, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,0,-7,11,10,10,0,10,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{21,10}', 0.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10064, 'Desert camo legs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 910, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10065, 'Polar camo top', 'This should make me harder to spot in polar areas.', 1, NULL, 8, 12, NULL, NULL, NULL, 7990, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,10,15,19,0,12,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10066, 'Polar camo top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7990, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10067, 'Polar camo legs', 'These should make me harder to spot in polar areas', 1, NULL, 8, 12, NULL, NULL, NULL, 8389, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,0,-7,11,10,10,0,10,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10068, 'Polar camo legs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8389, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10069, 'Spotted cape', 'A surprisingly aerodynamic cape.', 1, NULL, 160, 240, NULL, NULL, NULL, 1140, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{21,40}', -2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10070, 'Spotted cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1140, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10071, 'Spottier cape', 'A really surprisingly aerodynamic cape.', 1, NULL, 320, 480, NULL, NULL, NULL, 1262, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{21,66}', -4.5, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10072, 'Spottier cape', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1262, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10073, 'Spotted cape', 'A surprisingly aerodynamic cape.', 1, NULL, 160, 240, NULL, NULL, NULL, 951, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{21,40}', 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10074, 'Spottier cape', 'A really surprisingly aerodynamic cape.', 1, NULL, 320, 480, NULL, NULL, NULL, 881, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{21,66}', 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10075, 'Gloves of silence', 'Made from dark kebbit fur, these are perfect for tasks of a stealthier nature.', 1, NULL, 240, 360, NULL, NULL, NULL, 1063, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,0,0,0,1,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{21,54}', 0.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10076, 'Gloves of silence', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1063, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10077, 'Spiky vambraces', 'Attack at your own risk.', 1, NULL, 64, 96, NULL, NULL, NULL, 80, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,0,4,2,2,1,0,0,1,2,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10078, 'Spiky vambraces', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 80, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10079, 'Green spiky vambs', 'Made from 100% real dragonhide. Now with added spikiness.', 1, NULL, 1000, 1500, NULL, NULL, NULL, 1353, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,-10,8,3,2,4,2,0,3,2,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{4,40}', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10080, 'Green spiky vambs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1353, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10081, 'Blue spiky vambs', 'Made from 100% real dragonhide. Now with added spikiness.', 1, NULL, 1200, 1800, NULL, NULL, NULL, 1773, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,-10,9,4,3,5,4,0,4,2,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{4,50}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10082, 'Blue spiky vambs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1773, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10083, 'Red spiky vambs', 'Vambraces made from 100% real dragonhide. Now with added spikes.', 1, NULL, 1440, 2160, NULL, NULL, NULL, 1978, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,-10,10,5,4,6,6,0,5,2,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{4,60}', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10084, 'Red spiky vambs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1978, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10085, 'Black spiky vambs', 'Vambraces made from 100% real dragonhide. Now with added spikiness.', 1, NULL, 1728, 2592, NULL, NULL, NULL, 2727, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,-10,11,6,5,7,8,0,6,2,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{4,70}', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10086, 'Black spiky vambs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2727, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10087, 'Stripy feather', 'Attractive to other birds and hunters alike.', 1, NULL, 8, 12, NULL, NULL, NULL, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(10088, 'Red feather', 'A vivid red feather.', 1, NULL, 4, 6, NULL, NULL, 3, 23, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(10089, 'Blue feather', 'A cool blue feather.', 1, NULL, 6, 9, NULL, NULL, NULL, 27, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(10090, 'Yellow feather', 'A bright yellow feather.', 1, NULL, 5, 7, NULL, NULL, NULL, 36, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(10091, 'Orange feather', 'A fairly plain feather.', 1, NULL, 6, 9, NULL, NULL, 6, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(10093, 'Tatty larupia fur', 'It\'s a shabby-looking larupia fur.', 1, NULL, 28, 43, NULL, NULL, NULL, 1195, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10094, 'Tatty larupia fur', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1195, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10095, 'Larupia fur', 'It\'s a perfect-looking larupia fur.', 1, NULL, 38, 57, NULL, NULL, NULL, 4986, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10096, 'Larupia fur', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4986, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10097, 'Tatty graahk fur', 'It\'s a shabby-looking graahk fur.', 1, NULL, 43, 64, NULL, NULL, NULL, 28, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10098, 'Tatty graahk fur', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 28, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10099, 'Graahk fur', 'It\'s a perfect-looking graahk fur.', 1, NULL, 57, 86, NULL, NULL, NULL, 7574, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10100, 'Graahk fur', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7574, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10101, 'Tatty kyatt fur', 'It\'s a shabby-looking kyatt fur.', 1, NULL, 57, 86, NULL, NULL, NULL, 23, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10102, 'Tatty kyatt fur', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 23, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10103, 'Kyatt fur', 'It\'s a perfect-looking kyatt fur.', 1, NULL, 76, 115, NULL, NULL, 8000, 11100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10104, 'Kyatt fur', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 11100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10105, 'Kebbit spike', 'These bone spikes are both very tough and very sharp.', 1, NULL, 36, 54, NULL, NULL, NULL, 154, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(10106, 'Kebbit spike', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 154, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(10107, 'Long kebbit spike', 'These bone spikes are both very tough and very sharp.', 1, NULL, 60, 90, NULL, NULL, NULL, 1619, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(10108, 'Long kebbit spike', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1619, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(10109, 'Kebbit teeth', 'A kebbit-sized set of dentures.', 1, NULL, 64, 96, NULL, NULL, NULL, 894, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(10110, 'Kebbit teeth', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 894, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(10111, 'Kebbit teeth dust', 'Previously a kebbit-sized set of dentures.', 1, NULL, 64, 96, NULL, NULL, NULL, 947, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(10112, 'Kebbit teeth dust', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 947, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(10113, 'Kebbit claws', 'More menacing when attached to the owner.', 1, NULL, 17, 25, NULL, NULL, NULL, 55, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(10114, 'Kebbit claws', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 55, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(10115, 'Dark kebbit fur', 'Sleek, silent, and furry.', 1, NULL, 84, 126, NULL, NULL, NULL, 92, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10116, 'Dark kebbit fur', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 92, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10117, 'Polar kebbit fur', 'A thick fur for a cold climate.', 1, NULL, 4, 7, NULL, NULL, 12, 3862, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 175, NULL, NULL, NULL, NULL, NULL, 0), +(10118, 'Polar kebbit fur', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3862, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 175, NULL, NULL, NULL, NULL, NULL, 0), +(10119, 'Feldip weasel fur', 'Not actually from a weasel, but it is, at least, furry.', 1, NULL, 6, 9, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10120, 'Feldip weasel fur', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10121, 'Common kebbit fur', 'Common fur from a common kebbit.', 1, NULL, 5, 8, NULL, NULL, NULL, 1555, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10122, 'Common kebbit fur', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1555, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10123, 'Desert devil fur', 'Sandy coloured kebbit fur.', 1, NULL, 8, 12, NULL, NULL, NULL, 95, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10124, 'Desert devil fur', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 95, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10125, 'Spotted kebbit fur', 'Maybe this is why people think furry dice make you go faster.', 1, NULL, 60, 90, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10126, 'Spotted kebbit fur', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10127, 'Dashing kebbit fur', 'Nature\'s equivalent of go-faster stripes.', 1, NULL, 108, 162, NULL, NULL, NULL, 69, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10128, 'Dashing kebbit fur', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 69, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10129, 'Barb-tail harpoon', 'A mighty Hunter weapon. One previous owner.', 1, NULL, 14, 21, NULL, NULL, NULL, 19, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '9,4,-4,0,0,0,0,0,0,0,0,6,0,0,0', 5, NULL, NULL, NULL, NULL, NULL, '{10,35}', 1.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10130, 'Barb-tail harpoon', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 19, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10132, 'Strung rabbit foot', 'Not so lucky for the rabbit.', 1, NULL, 12, 18, NULL, NULL, NULL, 789, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{21,24}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10133, 'Strung rabbit foot', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 789, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10134, 'Rabbit foot', 'This could be put on a string and worn for luck.', 1, NULL, 12, 18, NULL, NULL, NULL, 543, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10135, 'Rabbit foot', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 543, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10136, 'Rainbow fish', 'Well, this would certainly add some colour to a meal.', 1, NULL, 48, 72, NULL, NULL, 48, 99, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(10137, 'Rainbow fish', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 99, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(10138, 'Raw rainbow fish', 'A colourful fish, attracted to colourful flies.', 1, NULL, 48, 72, NULL, NULL, NULL, 236, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(10139, 'Raw rainbow fish', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 236, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 20000, NULL, NULL, NULL, NULL, NULL, 0), +(10141, 'Burnt rainbow fish', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10142, 'Guam tar', 'A thick, foul-smelling, tar-like substance with a green tinge', 1, NULL, 1, 1, NULL, NULL, NULL, 28, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,16', NULL, NULL, NULL, NULL, NULL, NULL, '{0,30}-{4,30}-{6,30}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(10143, 'Marrentill tar', 'A thick, foul-smelling, tar-like substance with an orange tinge.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,22', NULL, NULL, NULL, NULL, NULL, NULL, '{0,50}-{4,50}-{6,50}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(10144, 'Tarromin tar', 'A thick, foul-smelling, tar-like substance with a red tinge.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 28, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,31', NULL, NULL, NULL, NULL, NULL, NULL, '{0,60}-{4,60}-{6,60}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(10145, 'Harralander tar', 'A dark, thick, foul-smelling, tar-like substance.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 47, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,49', NULL, NULL, NULL, NULL, NULL, NULL, '{0,70}-{4,70}-{6,70}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(10146, 'Orange salamander', 'Slightly slimy, but kind of cute.', 1, NULL, 40, 60, 1, NULL, 127, 6, NULL, NULL, NULL, 5246, 823, 5245, 824, 5245, 5245, 5245, 1277, 3, 5, NULL, '0,19,0,0,29,0,0,0,0,0,0,31,0,0,0', 21, NULL, 1, NULL, NULL, NULL, '{0,50}-{4,50}-{6,50}', 4, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(10147, 'Red salamander', 'Slightly slimy but certainly striking.', 1, NULL, 60, 90, 1, NULL, 190, 27, NULL, NULL, NULL, 5246, 823, 5245, 824, 5245, 5245, 5245, 1277, 3, 5, NULL, '0,37,0,0,47,0,0,0,0,0,0,49,0,0,0', 21, NULL, 1, NULL, NULL, NULL, '{0,60}-{4,60}-{6,60}', 4, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(10148, 'Black salamander', 'Slightly slimy and somewhat menacing.', 1, NULL, 80, 120, 1, NULL, NULL, 124, NULL, NULL, NULL, 5246, 823, 5245, 824, 5245, 5245, 5245, 1277, 3, 5, NULL, '0,59,0,0,69,0,0,0,0,0,0,71,0,0,0', 21, NULL, 1, NULL, NULL, NULL, '{0,70}-{4,70}-{6,70}', 4, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(10149, 'Swamp lizard', 'A very slimy and generally disgusting green lizard.', 1, NULL, 20, 30, 1, NULL, NULL, 1802, NULL, NULL, NULL, 5246, 823, 5245, 824, 5245, 5245, 5245, 1277, 3, 5, NULL, '0,10,0,0,20,0,0,0,0,0,0,22,0,0,0', 21, NULL, 1, NULL, NULL, NULL, '{0,30}-{4,30}-{6,30}', 4, 2000, NULL, NULL, NULL, NULL, NULL, 0), +(10150, 'Noose wand', 'A noose on a stick.', 1, NULL, 1, 2, NULL, NULL, 4, 1, NULL, NULL, NULL, 5254, 5252, 5250, 5253, 5251, 1207, 1208, 1279, 3, 4, NULL, NULL, 14, NULL, 1, NULL, NULL, NULL, NULL, 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10151, 'Noose wand', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10156, 'Hunters\' crossbow', 'A weapon made of bone and wood.', 1, NULL, 520, 780, NULL, NULL, 1300, 2496, NULL, NULL, NULL, 4591, 823, 4226, 4228, 4227, 821, 822, 175, 3, 4, NULL, '0,0,0,0,55,0,0,0,0,0,0,0,0,0,0', 17, NULL, NULL, NULL, NULL, '2700,0,0,0', '{4,50}', 5, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10157, 'Hunters\' crossbow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2496, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10158, 'Kebbit bolts', 'Bolts made from the spikes of a prickly kebbit.', 1, NULL, 6, 10, NULL, NULL, NULL, 28, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,28', NULL, NULL, NULL, NULL, NULL, NULL, '{4,50}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(10159, 'Long kebbit bolts', 'Bolts made from the spikes of a razor-backed kebbit.', 1, NULL, 12, 18, NULL, NULL, NULL, 352, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,38', NULL, NULL, NULL, NULL, NULL, NULL, '{4,50}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(10160, 'Orange salamander', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10161, 'Red salamander', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10162, 'Black salamander', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10163, 'Swamp lizard', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10167, 'Eagle feather', 'Probably a bit too big for fly fishing.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10171, 'Eagle cape', 'A cape made from giant eagle feathers.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10172, 'Fake beak', 'A cheaply made fake beak.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10173, 'Bird book', 'The title reads \'William Oddity\'s Guide to the Avian.\'', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10174, 'Metal feather', 'A small feather made out of some sort of metal. The detail is exquisite.', NULL, NULL, NULL, NULL, 1, 'You can obtain another metal feather from the camp', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10176, 'Silver feather', 'An intricate feather crafted from a silver-coloured metal of some sort.', NULL, NULL, NULL, NULL, 1, 'You can get another by inspecting the opening', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10177, 'Bronze feather', 'An intricate feather crafted from a bronze-coloured metal of some sort.', NULL, NULL, NULL, NULL, 1, 'You can get another by taking from pedestal.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10178, 'Odd bird seed', '\"It looks like bird seed, but it\'s not quite right somehow.\"', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10179, 'Feathered journal', 'There\'s a feather glued to the front. \"Property of Arthur Artimus\".', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10180, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10181, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10182, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10183, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10184, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10185, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10186, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10187, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10188, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10189, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10190, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10191, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10192, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10193, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10194, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10195, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10196, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10197, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10198, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10199, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10200, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10201, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10202, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10203, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10204, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10205, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10206, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10207, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10208, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10209, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10210, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10211, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10212, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10213, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(10214, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10215, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10216, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10217, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10218, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10219, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10220, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10221, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10222, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10223, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10224, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10225, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10226, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10227, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10228, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10229, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10230, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10231, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10232, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10233, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10234, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10235, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10236, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10237, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10238, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10239, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10240, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10241, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10242, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10243, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10244, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10245, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10246, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10247, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10248, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10249, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10250, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10251, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10252, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10253, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10254, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10255, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10256, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10257, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10258, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10259, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10260, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10261, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10262, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10263, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10264, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10265, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10266, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10267, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10268, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10269, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10270, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10271, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10272, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10273, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10274, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10275, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10276, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10277, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10278, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10279, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10280, 'Willow comp bow', 'A powerful bow made from willow.', 1, 1, 120, 180, NULL, NULL, NULL, 136, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '0,0,0,0,22,0,0,0,0,0,0,0,0,0,0', 16, NULL, 1, NULL, NULL, '2700,0,0,0', '{4,20}', 1.8, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10281, 'Willow comp bow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 136, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10282, 'Yew comp bow', 'A powerful bow made from yew wood.', 1, 1, 720, 1080, NULL, NULL, NULL, 876, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '0,0,0,0,49,0,0,0,0,0,0,0,0,0,0', 16, NULL, 1, NULL, NULL, '2700,0,0,0', '{4,40}', 1.8, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10283, 'Yew comp bow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 876, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10284, 'Magic comp bow', 'A powerful bow made from magic wood.', 1, 1, 1000, 1500, NULL, NULL, NULL, 1268, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '0,0,0,0,71,0,0,0,0,0,0,0,0,0,0', 16, 1, 1, NULL, NULL, '2700,0,0,0', '{4,50}', 1.3, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10285, 'Magic comp bow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1268, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10286, 'Rune helm (h1)', 'A rune helmet with a heraldic design.', 1, NULL, 14080, 21120, NULL, NULL, NULL, 23600, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,3', '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10287, 'Rune helm (h1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 23600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10288, 'Rune helm (h2)', 'A rune helmet with a heraldic design.', 1, NULL, 14080, 21120, NULL, NULL, NULL, 20800, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,3', '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 3, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10289, 'Rune helm (h2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 20800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10290, 'Rune helm (h3)', 'A rune helmet with a heraldic design.', 1, NULL, 14080, 21120, NULL, NULL, NULL, 20800, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,3', '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 4, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10291, 'Rune helm (h3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 20800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10292, 'Rune helm (h4)', 'A rune helmet with a heraldic design.', 1, NULL, 14080, 21120, NULL, NULL, NULL, 21100, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,3', '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10293, 'Rune helm (h4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 21100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10294, 'Rune helm (h5)', 'A rune helmet with a heraldic design.', 1, NULL, 14080, 21120, NULL, NULL, NULL, 24900, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,3', '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10295, 'Rune helm (h5)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 24900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10296, 'Adamant helm (h1)', 'An adamant helmet with a heraldic design.', 1, NULL, 1408, 2112, NULL, NULL, NULL, 31500, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,2', '0,0,0,-6,-2,19,21,16,-1,19,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 3, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10297, 'Adamant helm (h1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 31500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10298, 'Adamant helm (h2)', 'An adamant helmet with a heraldic design.', 1, NULL, 1408, 2112, NULL, NULL, NULL, 10100, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,2', '0,0,0,-6,-2,19,21,16,-1,19,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 3, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10299, 'Adamant helm (h2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 10100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10300, 'Adamant helm (h3)', 'An adamant helmet with a heraldic design.', 1, NULL, 1408, 2112, NULL, NULL, NULL, 8797, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,2', '0,0,0,-6,-2,19,21,16,-1,19,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 3, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10301, 'Adamant helm (h3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8797, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10302, 'Adamant helm (h4)', 'An Adamant helmet with a heraldic design.', 1, NULL, 1408, 2112, NULL, NULL, NULL, 10900, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,2', '0,0,0,-6,-2,19,21,16,-1,19,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 3, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10303, 'Adamant helm (h4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 10900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10304, 'Adamant helm (h5)', 'An adamant helmet with a heraldic design.', 1, NULL, 1408, 2112, NULL, NULL, NULL, 17100, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,2', '0,0,0,-6,-2,19,21,16,-1,19,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 3, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10305, 'Adamant helm (h5)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 17100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10306, 'Black helm (h1)', 'A black helmet with a heraldic design.', 1, NULL, 422, 633, NULL, NULL, NULL, 20400, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,12,13,10,-1,12,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}', 1.8, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10307, 'Black helm (h1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 20400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10308, 'Black helm (h2)', 'A black helmet with a heraldic design.', 1, NULL, 422, 633, NULL, NULL, NULL, 7033, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,12,13,10,-1,12,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}', 1.8, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10309, 'Black helm (h2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7033, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10310, 'Black helm (h3)', 'A black helmet with a heraldic design.', 1, NULL, 422, 633, NULL, NULL, NULL, 7574, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,12,13,10,-1,12,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}', 1.8, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10311, 'Black helm (h3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7574, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10312, 'Black helm (h4)', 'A black helmet with a heraldic design.', 1, NULL, 422, 633, NULL, NULL, NULL, 10100, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,12,13,10,-1,12,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}', 1.8, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10313, 'Black helm (h4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 10100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10314, 'Black helm (h5)', 'A black helmet with a heraldic design.', 1, NULL, 422, 633, NULL, NULL, NULL, 10400, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,12,13,10,-1,12,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}', 1.8, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10315, 'Black helm (h5)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 10400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10316, 'Bob shirt', 'See table', 1, NULL, 1, 1, NULL, NULL, NULL, 8196, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10317, 'Bob shirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8196, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10318, 'Bob shirt', 'See table', 1, NULL, 1, 1, NULL, NULL, NULL, 14700, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10319, 'Bob shirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 14700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10320, 'Bob shirt', 'See table', 1, NULL, 1, 1, NULL, NULL, NULL, 8403, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10321, 'Bob shirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8403, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10322, 'Bob shirt', 'See table', 1, NULL, 1, 1, NULL, NULL, NULL, 9230, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10323, 'Bob shirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 9230, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10324, 'Bob shirt', 'See table', 1, NULL, 1, 1, NULL, NULL, NULL, 8197, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10325, 'Bob shirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8197, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10326, 'Purple firelighter', 'Makes firelighting a lot easier.', 1, NULL, 6, 9, NULL, NULL, NULL, 112, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10327, 'White firelighter', 'Makes firelighting a lot easier.', 1, NULL, 6, 9, NULL, NULL, NULL, 167, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10328, 'White logs', 'A number of chemical covered wooden logs.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10329, 'Purple logs', 'A number of chemical covered wooden logs.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10330, '3rd age range top', 'Ancient range protection crafted from white dragonhide.', 1, 1, 18000, 27000, NULL, NULL, NULL, 33900000, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '0,6,3', '0,0,0,-15,30,55,47,60,60,55,52,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,65}-{4,45}', 4, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10331, '3rd age range top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 33900000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10332, '3rd age range legs', 'Fabulously ancient range protection crafted from white dragonhide.', 1, 1, 16000, 24000, NULL, NULL, NULL, 20800000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '0,4,2', '0,0,0,-10,17,31,25,33,30,31,25,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,65}-{4,45}', 6, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10333, '3rd age range legs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 20800000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10334, '3rd age range coif', 'Ancient range protection crafted from white dragonhide.', 1, 1, 4000, 6000, NULL, NULL, NULL, 6100000, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '0,0,0,-2,9,4,7,10,5,8,12,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,65}-{4,45}', 1, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(10335, '3rd age range coif', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 6100000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(10336, '3rd age vambraces', 'Fabulously ancient range protection crafted from white dragonhide.', 1, 1, 86000, 129000, NULL, NULL, NULL, 7100000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,-10,11,6,5,7,9,0,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,65}-{4,45}', 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10337, '3rd age vambraces', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7100000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10338, '3rd age robe top', 'Ancient mage protection enchanted in the Third-Age.', 1, 1, 18000, 27000, NULL, NULL, NULL, 66500000, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '4,2,0', '0,0,0,24,0,0,0,0,24,0,24,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,65}-{6,30}', 2.5, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10339, '3rd age robe top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 66500000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10340, '3rd age robe', 'Ancient mage protection enchanted in the Third-Age.', 1, 1, 16000, 24000, NULL, NULL, NULL, 31500000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '4,2,0', '0,0,0,19,0,0,0,0,19,0,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,65}-{6,30}', 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10341, '3rd age robe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 31500000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10342, '3rd age mage hat', 'Ancient mage protection enchanted in the Third-Age.', 1, 1, 4000, 6000, NULL, NULL, NULL, 21000000, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,1,0', '0,0,0,8,0,0,0,0,8,0,12,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,65}-{6,30}', NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10343, '3rd age mage hat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 21000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10344, '3rd age amulet', 'Ancient mage protection enchanted in the Third-Age.', 1, 1, 8000, 12000, NULL, NULL, NULL, 20100000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '0,0,0,15,0,0,0,0,10,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,65}-{6,30}', NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10345, '3rd age amulet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 20100000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10346, '3rd age platelegs', 'Ancient armour beaten from magical silver.', 1, 1, 80000, 120000, NULL, NULL, NULL, 92800000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '3,0,6', '0,0,0,-25,-2,78,76,83,-5,75,25,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,65}', 2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10347, '3rd age platelegs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 92800000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10348, '3rd age platebody', 'Ancient armour beaten from magical silver.', 1, 1, 80000, 120000, NULL, NULL, NULL, 86200000, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '4,0,9', '0,0,0,-20,0,96,108,113,-4,97,52,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,65}', 9, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10349, '3rd age platebody', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 86200000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10350, '3rd age full helmet', 'Ancient armour beaten from magical silver.', 1, 1, 36000, 54000, NULL, NULL, NULL, 41600000, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,0,4', '0,0,0,-5,-2,47,49,43,-3,48,12,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,65}', 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10351, '3rd age full helmet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 41600000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10352, '3rd age kiteshield', 'Ancient armour beaten from magical silver.', 1, 1, 72000, 108000, NULL, NULL, NULL, 65100000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '5,0,11', '0,0,0,-10,-4,63,65,61,-3,63,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,65}', 2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10353, '3rd age kiteshield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 65100000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10354, 'Amulet of glory(t4)', 'A very powerful dragonstone amulet.', 1, NULL, 7050, 10575, NULL, NULL, NULL, 233100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '10,10,10,10,10,3,3,3,3,3,3,6,3,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10355, 'Amulet of glory(t4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 233100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10356, 'Amulet of glory(t3)', 'Uncharged: A very powerful dragonstone amulet. 1-4 charges: A dragonstone amulet with X magic charges.', 1, NULL, 7050, 10575, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '10,10,10,10,10,3,3,3,3,3,3,6,3,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10357, 'Amulet of glory(t3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10358, 'Amulet of glory(t2)', 'A very powerful dragonstone amulet.', 1, NULL, 7050, 10575, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '10,10,10,10,10,3,3,3,3,3,3,6,3,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10359, 'Amulet of glory(t2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10360, 'Amulet of glory(t1)', 'Uncharged: A very powerful dragonstone amulet. 1-4 charges: A dragonstone amulet with X magic charges.', 1, NULL, 7050, 10575, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '10,10,10,10,10,3,3,3,3,3,3,6,3,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10361, 'Amulet of glory(t1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(10362, 'Amulet of glory(t)', 'A very powerful dragonstone amulet.', 1, NULL, 7050, 10575, NULL, NULL, NULL, 223000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '10,10,10,10,10,3,3,3,3,3,3,6,3,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10363, 'Amulet of glory(t)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 223000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10364, 'Strength amulet(t)', 'An enchanted ruby amulet with a nice trim.', 1, NULL, 810, 1215, NULL, NULL, NULL, 819400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,10,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10365, 'Strength amulet(t)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 819400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10366, 'Amulet of magic(t)', 'An enchanted sapphire amulet of magic.', 1, NULL, 360, 540, NULL, NULL, NULL, 128700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '0,0,0,10,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(10367, 'Amulet of magic(t)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 128700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(10368, 'Zamorak bracers', 'Zamorak blessed dragonhide vambraces.', 1, NULL, 1600, 2400, NULL, NULL, NULL, 116200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,-10,11,6,5,7,8,0,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,70}', 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10369, 'Zamorak bracers', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 116200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10370, 'Zamorak d\'hide', 'Zamorak blessed dragonhide body armour.', 1, NULL, 5200, 7800, NULL, NULL, NULL, 155200, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '0,6,3', '0,0,0,-15,30,55,47,60,50,55,55,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,70}', 6, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10371, 'Zamorak d\'hide', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 155200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10372, 'Zamorak chaps', 'Zamorak blessed dragonhide chaps.', 1, NULL, 2400, 3600, NULL, NULL, NULL, 35100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '0,4,2', '0,0,0,-10,17,31,25,33,28,31,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,70}', 5, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10373, 'Zamorak chaps', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 35100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10374, 'Zamorak coif', 'Zamorak blessed dragonhide coif.', 1, NULL, 800, 1200, NULL, NULL, NULL, 35900, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '0,0,0,-1,7,4,7,10,4,8,8,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,70}', NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10375, 'Zamorak coif', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 35900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10376, 'Guthix bracers', 'Guthix blessed dragonhide vambraces.', 1, NULL, 2400, 3600, NULL, NULL, NULL, 3181, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,-10,11,6,5,7,8,0,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{4,40}', 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10377, 'Guthix bracers', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3181, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10378, 'Guthix dragonhide', 'Guthix blessed dragonhide body armour.', 1, NULL, 5200, 7800, NULL, NULL, 13, 39800, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '0,6,3', '0,0,0,-15,30,55,47,60,50,55,55,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,70}', 6, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10379, 'Guthix dragonhide', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 39800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10380, 'Guthix chaps', 'Guthix blessed dragonhide chaps.', 1, NULL, 2400, 3600, NULL, NULL, NULL, 7346, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '0,4,2', '0,0,0,-10,17,31,25,33,28,31,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,70}', 5, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10381, 'Guthix chaps', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7346, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10382, 'Guthix coif', 'Guthix blessed dragonhide coif.', 1, NULL, 800, 1200, NULL, NULL, NULL, 27500, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '0,0,0,-1,7,4,7,10,4,8,8,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,70}', 0.85, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10383, 'Guthix coif', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 27500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10384, 'Saradomin bracers', 'Saradomin blessed dragonhide vambraces.', 1, NULL, 1600, 2400, NULL, NULL, NULL, 70800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,-10,11,6,5,7,8,0,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{4,40}', 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10385, 'Saradomin bracers', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 70800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10386, 'Saradomin d\'hide', 'Saradomin blessed dragonhide body armour.', 1, NULL, 5200, 7800, 1, NULL, 13000, 164100, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '0,6,3', '0,0,0,-15,30,55,47,60,50,55,55,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,70}', 6, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10387, 'Saradomin d\'hide', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 164100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10388, 'Saradomin chaps', 'Saradomin blessed dragonhide chaps.', 1, NULL, 2400, 3600, NULL, NULL, NULL, 36600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '0,4,2', '0,0,0,-10,17,31,25,33,28,31,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,70}', NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10389, 'Saradomin chaps', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 36600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10390, 'Saradomin coif', 'Saradomin blessed dragonhide coif.', 1, NULL, 800, 1200, NULL, NULL, NULL, 28000, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '0,0,0,-1,7,4,7,10,4,8,8,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,70}', NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10391, 'Saradomin coif', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 28000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10392, 'A powdered wig', 'A big \'do about nothing.', 1, 1, 800, 1200, NULL, NULL, NULL, 45400, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10393, 'A powdered wig', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 45400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10394, 'Flared trousers', 'These\'ll help me stay alive.', 1, 1, 800, 1200, NULL, NULL, NULL, 448900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10395, 'Flared trousers', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 448900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10396, 'Pantaloons', 'Alas, someone has slashed my pantaloons.', 1, 1, 800, 1200, NULL, NULL, NULL, 9863, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10397, 'Pantaloons', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 9863, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10398, 'Sleeping cap', 'A cap for wearing whil...zzzzzzzzz', 1, 1, 800, 1200, NULL, NULL, NULL, 276400, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10399, 'Sleeping cap', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 276400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10400, 'Black ele\' shirt', 'A well made elegant mans\' black shirt.', 1, NULL, 800, 1200, NULL, NULL, NULL, 921500, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10401, 'Black ele\' shirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 921500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10402, 'Black ele\' legs', 'A rather elegant black pair of pantaloons.', 1, NULL, 800, 1200, NULL, NULL, NULL, 270700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10403, 'Black ele\' legs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 270700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10404, 'Red ele\' shirt', 'A well made elegant men\'s red shirt.', 1, NULL, 800, 1200, NULL, NULL, NULL, 118600, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10405, 'Red ele\' shirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 118600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10406, 'Red ele\' legs', 'A rather elegant red pair of pantaloons.', 1, NULL, 800, 1200, NULL, NULL, NULL, 39400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10407, 'Red ele\' legs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 39400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10408, 'Blue ele\' shirt', 'A well made elegant mans\' blue shirt.', 1, NULL, 800, 1200, NULL, NULL, NULL, 134700, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10409, 'Blue ele\' shirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 134700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10410, 'Blue ele\' legs', 'A rather elegant pair of men\'s blue pantaloons', 1, NULL, 800, 1200, NULL, NULL, NULL, 80700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10411, 'Blue ele\' legs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 80700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10412, 'Green ele\' shirt', 'A well made elegant men\'s green shirt.', 1, NULL, 800, 1200, NULL, NULL, NULL, 162600, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10413, 'Green ele\' shirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 162600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10414, 'Green ele\' legs', 'A rather elegant green pair of men\'s pantaloons.', 1, NULL, 800, 1200, NULL, NULL, NULL, 36100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10415, 'Green ele\' legs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 36100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10416, 'Purple ele\' shirt', 'A well made elegant men\'s purple shirt.', 1, NULL, 800, 1200, NULL, NULL, NULL, 116200, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10417, 'Purple ele\' shirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 116200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10418, 'Purple ele\' legs', 'A rather elegant purple pair of pantaloons.', 1, NULL, 800, 1200, NULL, NULL, NULL, 73400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10419, 'Purple ele\' legs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 73400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10420, 'White ele\' blouse', 'A well made ladies\' elegant white blouse.', 1, NULL, 800, 1200, NULL, NULL, NULL, 571500, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10421, 'White ele\' blouse', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 571500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10422, 'White ele\' skirt', 'A rather elegant white skirt.', 1, NULL, 800, 1200, NULL, NULL, NULL, 56600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10423, 'White ele\' skirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 56600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10424, 'Red ele\' blouse', 'A well made elegant ladies\' red blouse.', 1, NULL, 800, 1200, NULL, NULL, NULL, 15000, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10425, 'Red ele\' blouse', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 15000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10426, 'Red ele\' skirt', 'A rather elegant Red skirt.', 1, NULL, 800, 1200, NULL, NULL, NULL, 7132, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10427, 'Red ele\' skirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7132, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10428, 'Blue ele\' blouse', 'A well made ladies\' elegant blue blouse.', 1, NULL, 800, 1200, NULL, NULL, NULL, 22200, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10429, 'Blue ele\' blouse', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 22200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10430, 'Blue ele\' skirt', 'A rather elegant blue skirt.', 1, NULL, 800, 1200, NULL, NULL, NULL, 12200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10431, 'Blue ele\' skirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 12200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10432, 'Green ele\' blouse', 'A well made ladies\' elegant green blouse.', 1, NULL, 800, 1200, NULL, NULL, NULL, 12300, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10433, 'Green ele\' blouse', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 12300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10434, 'Green ele\' skirt', 'A rather elegant green skirt.', 1, NULL, 800, 1200, NULL, NULL, NULL, 10300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10435, 'Green ele\' skirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 10300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10436, 'Purple ele\' blouse', 'A well made elegant ladies\' purple blouse.', 1, NULL, 800, 1200, NULL, NULL, NULL, 22800, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10437, 'Purple ele\' blouse', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 22800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10438, 'Purple ele\' skirt', 'A rather elegant purple skirt.', 1, NULL, 800, 1200, NULL, NULL, NULL, 16700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10439, 'Purple ele\' skirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 16700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10440, 'Saradomin crozier', 'A Saradomin crozier.', 1, NULL, 2000, 3000, NULL, NULL, NULL, 8611, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '7,-1,25,10,0,2,3,1,10,0,0,32,6,0,0', 1, NULL, NULL, NULL, NULL, NULL, '{5,60}', 2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10441, 'Saradomin crozier', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8611, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10442, 'Guthix crozier', 'A Guthix crozier.', 1, NULL, 2000, 3000, NULL, NULL, NULL, 2925, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '7,-1,25,10,0,2,3,1,10,0,0,32,6,0,0', 1, NULL, NULL, NULL, NULL, NULL, '{5,60}', 2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10443, 'Guthix crozier', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2925, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10444, 'Zamorak crozier', 'A Zamorak crozier.', 1, NULL, 2000, 3000, NULL, NULL, NULL, 2794, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '7,-1,25,10,0,2,3,1,10,0,0,32,6,0,0', 1, NULL, NULL, NULL, NULL, NULL, '{5,60}', 2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10445, 'Zamorak crozier', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2794, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10446, 'Saradomin cloak', 'A Saradomin cloak.', 1, NULL, 800, 1200, NULL, NULL, NULL, 1200000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,1,0,3,3,3,3,3,3,0,3,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{5,40}', 0.4, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10447, 'Saradomin cloak', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1200000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10448, 'Guthix cloak', 'A Guthix cloak.', 1, NULL, 800, 1200, NULL, NULL, NULL, 391000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,1,0,3,3,3,3,3,3,0,3,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{5,40}', 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10449, 'Guthix cloak', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 391000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10450, 'Zamorak cloak', 'A Zamorak cloak.', 1, NULL, 800, 1200, NULL, NULL, NULL, 1000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,1,0,3,3,3,3,3,3,0,3,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{5,40}', 0.4, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10451, 'Zamorak cloak', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10452, 'Saradomin mitre', 'A Saradomin mitre.', 1, NULL, 2000, 3000, NULL, NULL, NULL, 299200, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,4,0,0,0,0,4,0,4,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{5,40}-{6,40}', NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10453, 'Saradomin mitre', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 299200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10454, 'Guthix mitre', 'A Guthix mitre.', 1, NULL, 2000, 3000, NULL, NULL, NULL, 130300, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,4,0,0,0,0,4,0,4,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{5,40}-{6,40}', NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10455, 'Guthix mitre', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 130300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10456, 'Zamorak mitre', 'A Zamorak mitre.', 1, NULL, 2000, 3000, NULL, NULL, NULL, 346500, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,4,0,0,0,0,4,0,4,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{5,40}-{6,40}', 0.3, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10457, 'Zamorak mitre', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 346500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10458, 'Saradomin robe top', 'Blessed vestments of Saradomin.', 1, NULL, 2800, 4200, NULL, NULL, NULL, 121400, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,4,0,0,0,0,4,0,4,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{5,20}', NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10459, 'Saradomin robe top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 121400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10460, 'Zamorak robe top', 'Zamorak Vestments.', 1, NULL, 2800, 4200, NULL, NULL, NULL, 154700, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,4,0,0,0,0,4,0,4,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{5,20}', 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10461, 'Zamorak robe top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 154700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10462, 'Guthix robe top', 'Blessed vestments of Guthix.', 1, NULL, 2800, 4200, NULL, NULL, NULL, 75200, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,4,0,0,0,0,4,0,4,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{5,20}', 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10463, 'Guthix robe top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 75200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10464, 'Saradomin robe legs', 'Leggings from the Saradomin Vestments.', 1, NULL, 2800, 4200, NULL, NULL, NULL, 56300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,4,0,0,0,0,4,0,4,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{5,20}', NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10465, 'Saradomin robe legs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 56300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10466, 'Guthix robe legs', 'Leggings from the Guthix Vestments.', 1, NULL, 2800, 4200, NULL, NULL, NULL, 56900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,4,0,0,0,0,4,0,4,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{5,20}', 2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10467, 'Guthix robe legs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 56900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10468, 'Zamorak robe legs', 'Legs of the Zamorak Vestments.', 1, NULL, 2800, 4200, NULL, NULL, NULL, 79400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,4,0,0,0,0,4,0,4,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{5,20}', 2.7, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10469, 'Zamorak robe legs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 79400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10470, 'Saradomin stole', 'A Saradomin stole.', 1, NULL, 1000, 1500, NULL, NULL, NULL, 14000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '0,0,0,2,0,0,0,0,2,0,0,0,10,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{5,60}', NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10471, 'Saradomin stole', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 14000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10472, 'Guthix stole', 'A blessed stole.', 1, NULL, 1000, 1500, NULL, NULL, NULL, 3849, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '0,0,0,2,0,0,0,0,2,0,0,0,10,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{5,60}', NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10473, 'Guthix stole', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3849, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10474, 'Zamorak stole', 'A Zamorak stole.', 1, NULL, 1000, 1500, NULL, NULL, NULL, 13700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '0,0,0,2,0,0,0,0,2,0,0,0,10,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{5,60}', NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10475, 'Zamorak stole', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 13700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(10476, 'Purple sweets', 'Remember to brush after eating!', 1, NULL, 6, 9, NULL, NULL, NULL, 22700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(10485, 'Scroll', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10486, 'Empty sack', 'An empty sack.', 1, NULL, NULL, NULL, NULL, NULL, 1, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10487, 'Undead chicken', 'Yup, definitely a chicken...an undead chicken.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5363, 823, 5364, 824, 5438, 821, 822, 1171, 3, NULL, NULL, '-100,-100,-50,0,0,0,0,0,0,0,0,-10,0,0,0', 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10488, 'Selected iron', 'An iron bar supplied by an insane old crone.', NULL, NULL, 4, 6, 1, 'The Witch in Draynor supplies these bars.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10489, 'Bar magnet', 'A magnet designed for undead chicken use.', NULL, NULL, 6, 9, 1, 'I can make another magnet using special bars. The Witch in Draynor supplies these bars.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10490, 'Undead twigs', 'Were they trying to escape just then?', NULL, NULL, NULL, NULL, 1, 'I can chop more wood from undead trees using my blessed axe.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10491, 'Blessed axe', 'It radiates purity but can still lop off heads.', NULL, NULL, 8, 12, 1, 'I can obtain a replacement axe from the Burthorpe Slayer Master.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2586, 3, 5, NULL, '-2,12,10,0,0,0,1,0,0,0,0,13,2,0,0', 2, NULL, NULL, NULL, NULL, NULL, NULL, 1.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10492, 'Research notes', 'These make no sense at all.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10493, 'Translated notes', 'They still make no sense, but look more meaningful now.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10494, 'A pattern', 'Attach tab A to button B then fold along line C...', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10495, 'A container', 'A desirable residence for discerning, undead chickens.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10496, 'Polished buttons', 'Shiny!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10498, 'Ava\'s attractor', 'A bagged chicken ready to serve you, magnet in claw.', NULL, NULL, 307, 461, 1, 'I can buy a replacement from Ava in Draynor Manor; she will charge me 999 coins for this service.', 999, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,2,0,0,0,2,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10499, 'Ava\'s accumulator', 'A superior bagged chicken ready to serve you, magnet in claw.', NULL, NULL, NULL, NULL, 1, 'I can obtain a replacement for this from Ava in Draynor Manor. She will need 999 coins to buy the lower', 999, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,4,0,1,0,4,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10500, 'Crone-made amulet', 'Allows the ghost farmer to talk to Alice - a breakthrough!', NULL, NULL, NULL, NULL, 1, 'I can obtain a replacement for this from the crone who lives west of the Port Phasmatys farm.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10501, 'Snowball', 'Made from snow. / It\'s a ball of snow! Uncanny. / How did this not melt in the box?', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, '0,0,0,0,10,0,0,0,0,0,0,0,0,0,1', 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10506, 'Gublinch shards', 'A gublinch frozen and crumbled into shards.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10507, 'Reindeer hat', 'A reindeer hat and a matching flashing nose.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it. this item', NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10508, 'Wintumber tree', 'A wintumber tree for your player-owned house.', NULL, NULL, NULL, NULL, 1, 'You can get another from Diango in Draynor Village.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10509, 'Snowball', 'Made from snow. / It\'s a ball of snow! Uncanny. / How did this not melt in the box?', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10510, 'Snowball', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10511, 'Zanaris choir', 'They\'re going to sing to you!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10513, 'Crackers', 'Some dry crackers.', NULL, NULL, NULL, NULL, 1, 'Unknown You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10514, 'Tofu', 'A block of tofu.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10515, 'Worms', 'Some meaty worms.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10516, 'Attacker horn', 'A horn to call others.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10517, 'Attacker horn', 'A horn to call others.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10518, 'Attacker horn', 'A horn to call others.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10519, 'Attacker horn', 'A horn to call others.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10520, 'Attacker horn', 'A horn to call others.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10521, 'Collection bag', 'A very small/small/medium-sized/large/very large collection bag.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10522, 'Collection bag', 'A very small/small/medium-sized/large/very large collection bag.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10523, 'Collection bag', 'A very small/small/medium-sized/large/very large collection bag.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10524, 'Collection bag', 'A very small/small/medium-sized/large/very large collection bag.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10525, 'Collection bag', 'A very small/small/medium-sized/large/very large collection bag.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10526, 'Healer horn', 'A horn to call others.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10527, 'Healer horn', 'A horn to call others.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10528, 'Healer horn', 'A horn to call others.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10529, 'Healer horn', 'A horn to call others.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10530, 'Healer horn', 'A horn to call others.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10531, 'Green egg', 'Used to poison your enemies!', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10532, 'Red egg', 'Will explode when fired.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10533, 'Blue egg', 'Stun your foes!', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10534, 'Yellow egg', 'A yellow egg; it needs passing to the Healer to be poisoned!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10535, 'Poisoned egg', 'A poisoned yellow egg; pass it to the Attacker for spikes to be added!', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10536, 'Spiked/pois. egg', 'A poisoned, spiky egg; pass to the defender for heating!', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10537, 'Omega egg', 'A heated, poisoned, spiky egg; pass to the Collector for loading.', 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10538, 'Defender horn', 'A horn to call others.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10539, 'Poisoned tofu', 'Some poisoned tofu.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10540, 'Poisoned worms', 'Some poisoned worms.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10541, 'Poisoned meat', 'A poisoned leg of meat.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10542, 'Healing vial(4)', NULL, NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10543, 'Healing vial(3)', NULL, NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10544, 'Healing vial(2)', NULL, NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10545, 'Healing vial(1)', NULL, NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10546, 'Healing vial', 'A full healing vial.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(10547, 'Healer hat', 'A Penance Healer hat.', NULL, NULL, NULL, NULL, NULL, NULL, 275, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '3,1,0', '-5,-5,-5,7,-5,6,8,10,8,0,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10548, 'Fighter hat', 'A Penance Fighter hat.', NULL, NULL, 7680, 11520, NULL, NULL, 275, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,3', '5,5,5,-7,-7,30,32,28,-3,28,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10549, 'Runner hat', 'A Penance Runner hat.', NULL, NULL, 7680, 11520, NULL, NULL, 275, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,3', '0,0,0,0,0,30,32,27,1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10550, 'Ranger hat', 'A Penance ranger hat.', NULL, NULL, 7680, 11520, NULL, NULL, 275, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '-5,-5,-5,-5,7,7,10,11,5,9,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10551, 'Fighter torso', 'Penance Fighter torso armour.', NULL, NULL, 20000, 30000, 1, NULL, 375, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '3,0,6', '0,0,0,-30,0,66,85,62,-6,67,40,4,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10552, 'Runner boots', 'Boots made from a Penance Runner.', NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,-3,-1,12,13,14,0,0,10,2,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10553, 'Penance gloves', 'These gloves seem unbelievably light!', NULL, NULL, NULL, NULL, NULL, NULL, 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,0,0,0,3,4,0,2,2,4,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', -7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10554, 'Penance gloves', 'These gloves seem unbelievably light!', NULL, NULL, NULL, NULL, NULL, NULL, 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,0,0,0,3,4,0,2,2,4,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 0.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10555, 'Penance skirt', 'A skirt made from the skin of a Penance Ranger.', NULL, NULL, NULL, NULL, NULL, NULL, 375, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '0,4,2', '0,0,0,-10,16,26,21,28,19,27,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10556, 'Picture', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10557, 'Picture', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10558, 'Picture', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10559, 'Picture', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10560, 'Collector horn', 'A horn for communication with your team members.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10562, 'Queen help book', 'A book about the Barbarian Assault Queen.', NULL, NULL, NULL, NULL, 1, 'You will have to ask Captain Cain for another.', 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10564, 'Granite body', 'Provides excellent protection.', 1, 1, 32000, 48000, NULL, NULL, 95000, 126800, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '4,0,8', '0,0,0,-22,-5,87,84,79,-6,97,45,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,50}-{2,50}', 22.6, 10, NULL, NULL, NULL, NULL, NULL, 0), +(10565, 'Granite body', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 126800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(10566, 'Fire cape', 'A cape of fire.', NULL, NULL, 24000, 36000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '1,1,1,1,1,11,11,11,11,11,11,4,2,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10567, 'Picture', 'Mabob.', 1, NULL, NULL, NULL, 1, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10568, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10569, 'Picture', 'Mabob.', 1, NULL, NULL, NULL, 1, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10570, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10571, 'Picture', 'Mabob.', 1, NULL, NULL, NULL, 1, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10572, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10573, 'Picture', 'Mabob.', 1, NULL, NULL, NULL, 1, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10574, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10575, 'Picture', 'Mabob.', 1, NULL, NULL, NULL, 1, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10576, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10577, 'Picture', 'Mabob.', 1, NULL, NULL, NULL, 1, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10578, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10579, 'Picture', 'Mabob.', 1, NULL, NULL, NULL, 1, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10580, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10581, 'Keris', '(Normal) A mystical-feeling dagger. (Poisoned) The twisted blade is covered with a nasty poison.', NULL, NULL, 4000, 6000, 1, 'You can obtain another from Osman. You will then need to poison it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, 4, NULL, '40,20,-10,2,0,0,0,0,2,0,0,30,2,0,0', 5, NULL, NULL, '376,376,377,376', 378, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10582, 'Keris(p)', NULL, NULL, NULL, NULL, NULL, NULL, 'You can obtain another from Osman. You will then need to poison it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, NULL, NULL, '40,20,-10,2,0,0,0,0,2,0,0,30,2,0,0', 5, NULL, NULL, '376,376,377,376', 378, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10583, 'Keris(p+)', NULL, NULL, NULL, NULL, NULL, NULL, 'You can obtain another from Osman. You will then need to poison it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, NULL, NULL, '40,20,-10,2,0,0,0,0,2,0,0,30,2,0,0', 5, NULL, NULL, '376,376,377,376', 378, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10584, 'Keris(p++)', NULL, NULL, NULL, NULL, NULL, NULL, 'You can obtain another from Osman. You will then need to poison it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2584, 3, NULL, NULL, '40,20,-10,2,0,0,0,0,2,0,0,30,2,0,0', 5, NULL, NULL, '376,376,377,376', 378, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10586, 'Combat lamp', 'A mystical lamp, engraved with scenes of carnage.', NULL, NULL, NULL, NULL, 1, 'You can obtain a replacement lamp from the high priest in Sophanem.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10587, 'Tarn\'s diary', 'Tarn Razorlor\'s diary.', NULL, NULL, 20, 30, 1, 'I got this diary in Tarn\'s Lair, perhaps I can get another one there.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10588, 'Salve amulet(e)', 'Increases the wearer\'s Strength and Attack by 20% when fighting the undead.', NULL, NULL, 150000, 150000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '0,0,0,0,0,3,3,3,0,0,3,0,3,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10589, 'Granite helm', 'A stone helmet.', 1, 1, 18400, 27600, NULL, NULL, NULL, 28000, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,0,4', '0,0,0,-9,-7,31,33,29,-1,39,9,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,50}-{2,50}', 4, 10, NULL, NULL, NULL, NULL, NULL, 0), +(10590, 'Granite helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 28000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(10591, 'Terror dog', 'A terrifying dog beast.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10592, 'Penguin bongos', 'Small drums.', NULL, NULL, NULL, NULL, 1, 'You can make another with tanned leather and a mahogany plank.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10593, 'Cowbells', 'Every song needs a cowbell.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10594, 'Clockwork book', 'A book about clockwork mechanisms.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10595, 'Clockwork suit', 'A clockwork penguin suit.', NULL, NULL, NULL, NULL, 1, 'You\'ll have to make another one at your house. Speak to Larry to learn how to make one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10596, 'Clockwork suit', 'A clockwork penguin suit.', NULL, NULL, NULL, NULL, 1, 'You\'ll have to make another one at your house. Speak to Larry to learn how to make one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10600, 'Kgp id card', 'So you can be a penguin too!', NULL, NULL, NULL, NULL, 1, 'You will need to speak to Noodle to get another.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10601, 'Mystic hat', 'Blue: A magical hat. ', 1, 1, 6000, 9000, NULL, NULL, 15000, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '3,1,0', '0,0,0,4,0,0,0,0,4,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10602, 'Mystic hat', 'Blue: A magical hat. ', 1, 1, 6000, 9000, NULL, NULL, 15000, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '3,1,0', '0,0,0,4,0,0,0,0,4,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10603, 'Mystic hat', 'Blue: A magical hat. ', 1, 1, 6000, 9000, NULL, NULL, 15000, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '3,1,0', '0,0,0,4,0,0,0,0,4,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10604, 'Skeletal helm', 'Make your foes cower by wearing a skull as a helmet!', 1, 1, 4000, 6000, NULL, NULL, NULL, 25569, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '3,1,0', '0,0,0,2,-2,10,9,11,3,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10605, 'Infinity top', 'Mystical robes.', 1, NULL, 56000, 84000, NULL, NULL, NULL, 3932123, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '3,1,0', '0,0,0,22,0,0,0,0,22,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10606, 'Splitbark helm', 'A wooden helmet.', 1, 1, 4000, 6000, NULL, NULL, NULL, 5623, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '3,1,0', '0,0,0,3,-2,10,9,11,3,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10607, 'Ghostly boots', 'They seem to be not quite of this world...', NULL, NULL, 120, 180, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,2,0,0,0,0,2,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10608, 'Moonclan hat', 'A mystical hat.', NULL, NULL, 400, 600, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,3,-5,3,3,3,3,-5,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10609, 'Lunar helm', 'A mystical helmet.', NULL, NULL, 40, 60, 1, 'The Oneiromancer might be able to help you get another.', 15000, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '3,1,0', '0,0,0,3,-2,8,7,10,2,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10610, 'Decorative armour', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,-30,-10,32,31,24,-6,31,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10611, 'Void knight top', 'Torso armour from the order of the Void Knights.', NULL, NULL, 19200, 28800, NULL, NULL, 250, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,40,40,40,40,40,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10612, 'Rogue mask', 'Black banded leather armour, a rogue\'s dream!', NULL, NULL, 150, 225, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,0,0,5,5,5,5,5,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10613, 'Rock-shell helm', 'Protective headwear made from crabs. Better than it sounds.', 1, 1, 14080, 21120, NULL, NULL, NULL, 24661, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,3', '0,0,0,-6,-2,30,32,27,-1,30,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10614, 'Spined helm', 'A helm fit for any Fremennik ranger.', 1, 1, 24000, 36000, NULL, NULL, NULL, 35640, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '-6,-6,-6,-6,6,6,6,6,6,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10615, 'Tribal mask', 'A ceremonial wooden mask.', 1, NULL, 200, 300, NULL, NULL, NULL, 1021, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10616, 'Tribal mask', 'A ceremonial wooden mask.', 1, NULL, 200, 300, NULL, NULL, NULL, 1021, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10617, 'Tribal mask', 'A ceremonial wooden mask.', 1, NULL, 200, 300, NULL, NULL, NULL, 1021, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10618, 'White platebody', 'Provides excellent protection.', 1, NULL, 1536, 2304, NULL, NULL, 3840, 4595, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '1,0,2', '0,0,0,-30,-10,41,40,30,-6,40,0,0,1,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10619, 'Initiate hauberk', 'An initiate Temple Knight\'s Armour.', 1, NULL, 4000, 6000, NULL, NULL, 10000, 5821, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '1,0,3', '0,0,0,-30,-10,46,44,38,-6,44,0,0,6,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10620, 'Proselyte hauberk', 'A Proselyte Temple Knight\'s armour.', 1, NULL, 4800, 7200, NULL, NULL, 12000, 6960, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '2,0,4', '0,0,0,-30,-10,65,63,55,-6,63,0,0,8,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 8.6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10621, 'Mourner top', 'A thick heavy leather top.', NULL, NULL, 60, 90, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10622, 'Kyatt top', 'This should make me harder to spot in polar areas.', 1, NULL, 80, 120, NULL, NULL, NULL, 216, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,10,15,19,0,12,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10623, 'Larupia top', 'This should make me harder to spot in woodland and jungle areas.', 1, NULL, 40, 60, NULL, NULL, NULL, 1793, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,10,15,19,0,12,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10624, 'Graahk top', 'This should make me harder to spot in desert areas.', 1, NULL, 60, 90, NULL, NULL, 300, 246, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,10,15,19,0,12,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10625, 'Wood camo top', 'This should make me harder to spot in wooded areas.', 1, NULL, 8, 12, NULL, NULL, NULL, 3883, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,10,15,19,0,12,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10626, 'Jungle camo top', 'This should make me harder to spot in jungle areas.', 1, NULL, 8, 12, NULL, NULL, NULL, 325, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,10,15,19,0,12,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10627, 'Desert camo top', 'This should make me harder to spot in desert areas.', 1, NULL, 8, 12, NULL, NULL, NULL, 606, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,10,15,19,0,12,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10628, 'Polar camo top', 'This should make me harder to spot in polar areas.', 1, NULL, 8, 12, NULL, NULL, NULL, 5614, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,10,15,19,0,12,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10629, 'Mime mask', 'A mime would wear this.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10630, 'Princess blouse', 'Very posh!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10631, 'Zombie shirt', 'Aside from the braaaains on the lapel, it\'s still quite good.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10632, 'Camo top', 'Examine what?', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10633, 'Lederhosen top', 'A leather strapped top.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10634, 'Shade robe', 'I feel closer to the gods when I am wearing this. (Top) If a shade had knees, this would keep them nice and warm. (Bottom)', NULL, NULL, 28, 42, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,5,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10635, 'Cape of legends', 'The cape worn by members of the Legends Guild.', NULL, NULL, 180, 270, NULL, NULL, 450, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,7,7,7,7,7,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10636, 'Obsidian cape', 'A cape woven of obsidian plates.', 1, 1, 24000, 36000, NULL, NULL, 90000, 38500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10637, 'Fire cape', 'A cape of fire.', NULL, NULL, 24000, 36000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '1,1,1,1,1,11,11,11,11,11,0,4,2,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10638, 'Team-1 cape', 'Ooohhh look at the pretty colours...', 1, NULL, 20, 30, NULL, NULL, 50, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10639, 'Attack cape', 'The cape worn by masters of attack.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10640, 'Strength cape', 'The cape only worn by the strongest people.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10641, 'Defence cape', 'The cape worn by masters of the art of Defence.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10642, 'Ranging cape', 'The cape worn by master archers.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10643, 'Prayer cape', 'The cape worn by the most pious of heroes.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10644, 'Magic cape', 'The cape worn by the most powerful mages.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10645, 'Runecraft cape', 'The cape worn by master runecrafters.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10646, 'Hunter cape', 'The cape worn by master hunters.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10647, 'Hitpoints cape', 'The cape worn by well-constituted adventurers.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10648, 'Agility cape', 'The cape worn by the most agile of heroes.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10649, 'Herblore cape', 'The cape worn by the most skilled at the art of herblore.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10650, 'Thieving cape', 'The cape worn by master thieves.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10651, 'Crafting cape', 'The cape worn by master craftworkers.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10652, 'Fletching cape', 'The cape worn by the best of fletchers.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10653, 'Slayer cape', 'The cape worn by slayer masters.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10654, 'Construct. cape', 'The cape worn by master builders.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10655, 'Mining cape', 'The cape worn by the most skilled miners.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10656, 'Smithing cape', 'The cape worn by master smiths.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10657, 'Fishing cape', 'The cape worn by the best fishermen.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10658, 'Cooking cape', 'The cape worn by the world\'s best chefs.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10659, 'Firemaking cape', 'The cape worn by master firelighters.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10660, 'Woodcutting cape', 'The cape worn by master woodcutters (Obtaining level 99 skill)', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10661, 'Farming cape', 'The cape worn by master farmers.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10662, 'Quest point cape', 'The cape worn by only the most experienced adventurers.', NULL, NULL, NULL, NULL, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10663, 'Spotted cape', 'A surprisingly aerodynamic cape.', 1, NULL, 160, 240, NULL, NULL, NULL, 951, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10664, 'Spottier cape', 'A really surprisingly aerodynamic cape.', 1, NULL, 320, 480, NULL, NULL, NULL, 881, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10665, 'Black shield(h1)', 'A black kitesheild with a heraldic design.', 1, NULL, 652, 979, NULL, NULL, NULL, 15249, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '1,0,2', '0,0,0,-8,-2,17,19,18,-1,18,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10666, 'Adamant shield(h1)', 'A shield with a heraldic design.', 1, NULL, 2176, 3264, NULL, NULL, NULL, 16339, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,6', '0,0,0,-8,-2,27,31,29,-1,29,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10667, 'Rune shield(h1)', 'A rune kiteshield with a heraldic design.', 1, NULL, 21760, 32640, NULL, NULL, NULL, 35300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10668, 'Black shield(h2)', 'A black kiteshield with a heraldic design.', 1, NULL, 6530, 9795, NULL, NULL, NULL, 9751, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '1,0,2', '0,0,0,-8,-2,17,19,18,-1,18,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10669, 'Adamant shield(h2)', 'A shield with a heraldic design.', 1, NULL, 2176, 3264, NULL, NULL, NULL, 3353, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,6', '0,0,0,-8,-2,27,31,29,-1,29,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10670, 'Rune shield(h2)', 'A rune kiteshield with a heraldic design.', 1, NULL, 21760, 32640, NULL, NULL, NULL, 31903, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10671, 'Black shield(h3)', 'A black shield with a heraldic design.', 1, NULL, 652, 979, NULL, NULL, NULL, 6791, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '1,0,2', '0,0,0,-8,-2,17,19,18,-1,18,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10672, 'Adamant shield(h3)', 'A shield with a heraldic design.', 1, NULL, 2176, 3264, NULL, NULL, NULL, 5566, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,6', '0,0,0,-8,-2,27,31,29,-1,29,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10673, 'Rune shield(h3)', 'A rune kiteshield with a heraldic design.', 1, NULL, 21760, 32640, NULL, NULL, NULL, 32082, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10674, 'Black shield(h4)', 'A black shield with a heraldic design.', 1, NULL, 652, 979, NULL, NULL, NULL, 5159, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '1,0,2', '0,0,0,-8,-2,17,19,18,-1,18,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10675, 'Adamant shield(h4)', 'A shield with a heraldic design.', 1, NULL, 2176, 3264, NULL, NULL, NULL, 3219, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,6', '0,0,0,-8,-2,27,31,29,-1,29,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10676, 'Rune shield(h4)', 'A rune kiteshield with a heraldic design.', 1, NULL, 21760, 32640, NULL, NULL, NULL, 32351, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10677, 'Black shield(h5)', 'A black shield with a heraldic design.', 1, NULL, 652, 979, NULL, NULL, NULL, 8451, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '1,0,2', '0,0,0,-8,-2,17,19,18,-1,18,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10678, 'Adamant shield(h5)', 'A shield with a heraldic design.', 1, NULL, 2176, 3264, NULL, NULL, NULL, 5905, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,6', '0,0,0,-8,-2,27,31,29,-1,29,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10679, 'Rune shield(h5)', 'A rune kiteshield with a heraldic design.', 1, NULL, 21760, 32640, NULL, NULL, NULL, 35200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10680, 'Studded body (g)', 'Those studs should provide a bit more protection. Nice trim too!', 1, NULL, 340, 510, NULL, NULL, NULL, 67430, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '0,3,1', '0,0,0,-4,8,18,25,22,8,25,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10681, 'Studded body (t)', 'Those studs should provide a bit more protection. Nice trim too!', 1, NULL, 340, 510, NULL, NULL, NULL, 22400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '0,3,1', '0,0,0,-4,8,18,25,22,8,25,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10682, 'D\'hide body(g)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,-15,15,40,32,45,20,40,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10683, 'D\'hide body (t)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,-15,15,40,32,45,20,40,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10684, 'D\'hide body (g)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,-15,20,45,37,50,30,45,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10685, 'D\'hide body (t)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,-15,20,45,37,50,30,45,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10686, 'Wizard robe (g)', 'I can practise magic better in this.', 1, NULL, 6, 9, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,3,0,0,0,0,3,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10687, 'Wizard robe (t)', 'I can do magic better in this.', 1, NULL, 6, 9, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,3,0,0,0,0,3,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10688, 'Enchanted top', 'Enchanted Wizards robes.', 1, NULL, 48000, 72000, NULL, NULL, NULL, 72800, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '3,1,0', '0,0,0,20,0,0,0,0,20,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10689, 'Wizard boots', 'Slightly magical boots.', 1, 1, 80, 120, NULL, NULL, NULL, 763602, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,4,0,0,0,0,4,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10690, 'Black platebody (t)', 'Black platebody with trim.', 1, NULL, 1536, 2304, NULL, NULL, NULL, 90744, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '1,0,2', '0,0,0,-30,-10,41,40,30,-6,40,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9.07, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10691, 'Black platebody (g)', 'Black platebody with gold trim.', 1, NULL, 1536, 2304, NULL, NULL, NULL, 230800, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '1,0,2', '0,0,0,-30,-10,41,40,30,-6,40,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9.07, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10692, 'Highwayman mask', 'Your money or your life!', 1, 1, 16, 24, NULL, NULL, NULL, 92519, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10693, 'Blue beret', 'Parlez-vous francais? (Do you speak French?)', 1, 1, 32, 48, NULL, NULL, NULL, 64066, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10694, 'Black beret', 'Parlez-vous francais?(Do you speak French?)', 1, 1, 32, 48, NULL, NULL, NULL, 158274, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10695, 'White beret', 'Parlez-vous francais? (Do you speak French?)', 1, 1, 32, 48, NULL, NULL, NULL, 281900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10696, 'Ranger boots', 'Lightweight boots ideal for rangers.', 1, 1, 80, 120, NULL, NULL, NULL, 11781186, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,-10,8,2,3,4,2,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10697, 'Adam platebody (t)', 'Adamant platebody with trim.', 1, NULL, 5120, 7680, NULL, NULL, NULL, 79300, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '2,0,4', '0,0,0,-30,-10,65,63,55,-6,63,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9.07, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10698, 'Adam platebody (g)', 'Adamant platebody with gold trim.', 1, NULL, 5120, 7680, NULL, NULL, NULL, 207912, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '2,0,4', '0,0,0,-30,-10,65,63,55,-6,63,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9.07, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10699, 'Black helm (h1)', 'A black helmet with a heraldic design.', 1, NULL, 422, 633, NULL, NULL, NULL, 22022, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,12,13,10,-1,12,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10700, 'Black helm (h2)', 'A black helmet with a heraldic design.', 1, NULL, 422, 633, NULL, NULL, NULL, 11700, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,12,13,10,-1,12,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10701, 'Black helm (h3)', 'A black helmet with a heraldic design.', 1, NULL, 422, 633, NULL, NULL, NULL, 10424, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,12,13,10,-1,12,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10702, 'Black helm (h4)', 'A black helmet with a heraldic design.', 1, NULL, 422, 633, NULL, NULL, NULL, 12717, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,12,13,10,-1,12,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10703, 'Black helm (h5)', 'A black helmet with a heraldic design.', 1, NULL, 422, 633, NULL, NULL, NULL, 17852, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,12,13,10,-1,12,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10704, 'Rune helm (h1)', 'A rune helmet with a heraldic design.', 1, NULL, 14080, 21120, NULL, NULL, NULL, 30298, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,3', '0,0,0,-6,-2,30,32,27,-1,30,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10705, 'Rune helm (h2)', 'A rune helmet with a heraldic design.', 1, NULL, 14080, 21120, NULL, NULL, NULL, 26127, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,3', '0,0,0,-6,-2,30,32,27,-1,30,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10706, 'Rune helm (h3)', 'A rune helmet with a heraldic design.', 1, NULL, 14080, 21120, NULL, NULL, NULL, 37333, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,3', '0,0,0,-6,-2,30,32,27,-1,30,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10707, 'Rune helm (h4)', 'A rune helmet with a heraldic design.', 1, NULL, 14080, 21120, NULL, NULL, NULL, 29600, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,3', '0,0,0,-6,-2,30,32,27,-1,30,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10708, 'Rune helm (h5)', 'A rune helmet with a heraldic design.', 1, NULL, 14080, 21120, NULL, NULL, NULL, 41325, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,3', '0,0,0,-6,-2,30,32,27,-1,30,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10709, 'Adamant helm (h1)', 'An adamant helmet with a heraldic design.', 1, NULL, 1408, 2112, NULL, NULL, NULL, 28407, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,2', '0,0,0,-6,-2,19,21,16,-1,19,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10710, 'Adamant helm (h2)', 'An adamant helmet with a heraldic design.', 1, NULL, 1408, 2112, NULL, NULL, NULL, 9839, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,2', '0,0,0,-6,-2,19,21,16,-1,19,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10711, 'Adamant helm (h3)', 'An adamant helmet with a heraldic design.', 1, NULL, 1408, 2112, NULL, NULL, NULL, 8485, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,2', '0,0,0,-6,-2,19,21,16,-1,19,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10712, 'Adamant helm (h4)', 'An Adamant helmet with a heraldic design.', 1, NULL, 1408, 2112, NULL, NULL, NULL, 10774, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,2', '0,0,0,-6,-2,19,21,16,-1,19,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10713, 'Adamant helm (h5)', 'An adamant helmet with a heraldic design.', 1, NULL, 1408, 2112, NULL, NULL, NULL, 17390, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,2', '0,0,0,-6,-2,19,21,16,-1,19,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(10714, 'Bob shirt', 'See table', 1, NULL, 1, 1, NULL, NULL, NULL, 8425, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10715, 'Bob shirt', 'See table', 1, NULL, 1, 1, NULL, NULL, NULL, 8425, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10716, 'Bob shirt', 'See table', 1, NULL, 1, 1, NULL, NULL, NULL, 8425, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10717, 'Bob shirt', 'See table', 1, NULL, 1, 1, NULL, NULL, NULL, 8425, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10718, 'Bob shirt', 'See table', 1, NULL, 1, 1, NULL, NULL, NULL, 8425, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10719, 'Amulet of glory(t)', 'A very powerful dragonstone amulet.', 1, NULL, 7050, 10575, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '10,10,10,10,10,3,3,3,3,3,3,6,3,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10720, 'Guthix cape', 'A cape from the almighty god Guthix.', NULL, NULL, 40, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,10,0,1,1,2,10,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10721, 'Frog mask', 'Now that\'s just silly.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10722, 'Reindeer hat', 'A reindeer hat and a matching flashing nose.', NULL, NULL, NULL, NULL, 1, 'You can get another from Diango in Draynor Village.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10723, 'Jack lantern mask', 'Better not light it!', NULL, NULL, NULL, NULL, 1, 'You may get another from Diango in Draynor Village.', NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10724, 'Skeleton boots', 'Skeleton feet.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10725, 'Skeleton gloves', 'Some skeletal gloves.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10726, 'Skeleton leggings', 'Does my pelvis look big in this?', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10727, 'Skeleton shirt', 'The shirt of a fully body skeleton costume.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10728, 'Skeleton mask', 'A scary skeleton mask.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10729, 'Easter ring', 'A ring given to you by the Easter Bunny.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10730, 'Blue marionette', 'I\'ve got no strings ... oh hang on!', NULL, NULL, NULL, NULL, 1, 'You can obtain another marionette in Diango\'s workshop by the trap door.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10731, 'Zombie head', 'Alas...I hardly knew him.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10732, 'Rubber chicken', 'Perhaps not the most powerful weapon in RuneScape.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1832, 823, 1830, 824, 1830, 821, 822, 182, 3, 4, NULL, '-100,-100,-50,0,0,0,0,0,0,0,0,-10,0,0,0', 12, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, 1, 0), +(10733, 'Yo-yo', 'A gift from Santa.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10734, 'Bunny ears', 'A rabbit-like adornment.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10735, 'Scythe', 'It\'s a Scythe.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 847, 823, 819, 824, 820, 821, 822, 1383, 3, 7, NULL, '3,8,3,0,0,0,3,1,0,0,0,10,0,0,0', NULL, NULL, 1, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10736, 'Strength amulet(t)', 'An enchanted ruby amulet with a nice trim.', 1, NULL, 810, 1215, NULL, NULL, NULL, 443800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,10,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10738, 'Amulet of magic(t)', 'An enchanted sapphire amulet of magic.', 1, NULL, 360, 540, NULL, NULL, NULL, 67158, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '0,0,0,10,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10740, 'A powdered wig', 'A big \'do about nothing.', 1, 1, 800, 1200, NULL, NULL, NULL, 36879, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10742, 'Flared trousers', 'These\'ll help me stay alive.', 1, 1, 800, 1200, NULL, NULL, NULL, 559284, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10744, 'Pantaloons', 'Alas, someone has slashed my pantaloons.', 1, 1, 800, 1200, NULL, NULL, NULL, 12022, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10746, 'Sleeping cap', 'A cap for wearing whil...zzzzzzzzz', 1, 1, 800, 1200, NULL, NULL, NULL, 376084, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10748, 'Elegant shirt', 'Blouse: A well made elegant ladies\' [colour] blouse.Skirt: A rather elegant [colour] skirt.Shirt: A well made elegant mans\' [colour] shirt.Legs: A rather elegant [colour] pair of pantaloons.', 1, NULL, 800, 1200, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10750, 'Elegant shirt', 'Blouse: A well made elegant ladies\' [colour] blouse.Skirt: A rather elegant [colour] skirt.Shirt: A well made elegant mans\' [colour] shirt.Legs: A rather elegant [colour] pair of pantaloons.', 1, NULL, 800, 1200, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10752, 'Elegant shirt', 'Blouse: A well made elegant ladies\' [colour] blouse.Skirt: A rather elegant [colour] skirt.Shirt: A well made elegant mans\' [colour] shirt.Legs: A rather elegant [colour] pair of pantaloons.', 1, NULL, 800, 1200, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10754, 'Elegant shirt', 'Blouse: A well made elegant ladies\' [colour] blouse.Skirt: A rather elegant [colour] skirt.Shirt: A well made elegant mans\' [colour] shirt.Legs: A rather elegant [colour] pair of pantaloons.', 1, NULL, 800, 1200, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10756, 'Elegant shirt', 'Blouse: A well made elegant ladies\' [colour] blouse.Skirt: A rather elegant [colour] skirt.Shirt: A well made elegant mans\' [colour] shirt.Legs: A rather elegant [colour] pair of pantaloons.', 1, NULL, 800, 1200, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10758, 'Red boater', 'Stylish!', 1, NULL, 90, 135, NULL, NULL, NULL, 56600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10760, 'Orange boater', 'Stylish!', 1, NULL, 90, 135, NULL, NULL, NULL, 20300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10762, 'Green boater', 'Stylish!', 1, NULL, 90, 135, NULL, NULL, NULL, 59940, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10764, 'Blue boater', 'Stylish!', 1, NULL, 90, 135, NULL, NULL, NULL, 54236, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10766, 'Black boater', 'Stylish!', 1, NULL, 90, 135, NULL, NULL, NULL, 56495, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10768, 'Red headband', 'A minimalist\'s hat.', 1, 1, 16, 24, NULL, NULL, NULL, 114319, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10770, 'Black headband', 'A minimalist\'s hat.', 1, 1, 16, 24, NULL, NULL, NULL, 41778, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10772, 'Brown headband', 'A minimalist\'s hat.', 1, 1, 16, 24, NULL, NULL, NULL, 21764, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10774, 'Pirate\'s hat', 'Shiver me timbers!', 1, NULL, 72, 108, NULL, NULL, NULL, 83200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10776, 'Zamorak platebody', 'Rune platebody in the colours of Zamorak.', 1, 1, 26000, 39000, NULL, NULL, NULL, 647800, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '3,0,6', '0,0,0,-30,-10,82,80,72,-6,80,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10778, 'Saradomin plate', 'Rune platebody in the colours of Saradomin.', 1, 1, 26000, 39000, NULL, NULL, NULL, 1097689, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '3,0,6', '0,0,0,-30,-10,82,80,72,-6,80,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9.07, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10780, 'Guthix platebody', 'Rune platebody in the colours of Guthix.', 1, 1, 26000, 39000, NULL, NULL, NULL, 241600, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '3,0,6', '0,0,0,-30,-10,82,80,72,-6,80,0,0,0,0,1', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9.07, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10782, 'Gilded platebody', 'Rune platebody with complete gold trim & plating.', 1, 1, 26000, 39000, NULL, NULL, NULL, 1653821, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '3,0,6', '0,0,0,-30,-10,82,80,72,-6,80,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10784, 'Saradomin robe top', 'Blessed vestments of Saradomin.', 1, NULL, 2800, 4200, NULL, NULL, NULL, 106389, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,4,0,0,0,0,4,0,0,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10786, 'Zamorak robe top', 'Zamorak Vestments.', 1, NULL, 2800, 4200, NULL, NULL, NULL, 151000, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,4,0,0,0,0,4,0,0,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10788, 'Guthix robe top', 'Blessed vestments of Guthix.', 1, NULL, 2800, 4200, NULL, NULL, NULL, 80181, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,4,0,0,0,0,4,0,0,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10790, 'Zamorak d\'hide', 'Zamorak blessed dragonhide body armour.', 1, NULL, 5200, 7800, NULL, NULL, NULL, 84966, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '0,6,3', '0,0,0,-15,30,55,47,60,50,55,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10792, 'Saradomin d\'hide', 'Saradomin blessed dragonhide body armour.', 1, NULL, 5200, 7800, 1, NULL, 13000, 92762, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '0,6,3', '0,0,0,-15,30,55,47,60,50,55,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10794, 'Guthix dragonhide', 'Guthix blessed dragonhide body armour.', 1, NULL, 5200, 7800, NULL, NULL, 13, 22384, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '0,6,3', '0,0,0,-15,30,55,47,60,50,55,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10796, 'Robin hood hat', 'Endorsed by Robin Hood.', 1, 1, 180, 270, NULL, NULL, NULL, 3070557, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-10,8,4,6,8,4,4,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10798, 'Rune platebody (g)', 'Rune platebody with gold trim.', 1, 1, 26000, 39000, NULL, NULL, NULL, 231400, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '3,0,6', '0,0,0,-30,-10,82,80,72,-6,80,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9.07, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10800, 'Rune platebody (t)', 'Rune platebody with trim.', 1, 1, 26000, 39000, NULL, NULL, NULL, 61100, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '3,0,6', '0,0,0,-30,-10,82,80,72,-6,80,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9.07, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10802, 'Tan cavalier', 'All for one and one for all!', 1, 1, 80, 120, NULL, NULL, NULL, 56677, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10804, 'Dark cavalier', 'All for one and one for all!', 1, 1, 80, 120, NULL, NULL, NULL, 18942, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10806, 'Black cavalier', 'All for one and one for all!', 1, 1, 80, 120, NULL, NULL, NULL, 421305, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10808, 'Arctic pyre logs', 'Arctic Pine logs prepared with sacred oil for a funeral pyre', 1, NULL, 80, 120, NULL, NULL, NULL, 3453, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(10809, 'Arctic pyre logs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3453, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(10810, 'Arctic pine logs', 'Log cut from an arctic pine.', 1, NULL, 14, 21, NULL, NULL, NULL, 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(10811, 'Arctic pine logs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(10812, 'Split log', 'Used to repair bridges.', 1, NULL, 36, 54, NULL, NULL, NULL, 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(10813, 'Split log', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(10814, 'Hair', 'I can spin this into rope.', 1, NULL, 48, 72, NULL, NULL, 120, 113, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(10815, 'Hair', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 113, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(10816, 'Raw yak meat', 'I need to cook this.', 1, NULL, NULL, 1, NULL, NULL, 2, 14, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(10817, 'Raw yak meat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 14, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(10818, 'Yak-hide', 'Thakkrad, of Neitiznot, can cure this.', 1, NULL, 20, 30, NULL, NULL, 50, 301, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(10819, 'Yak-hide', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 301, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(10820, 'Cured yak-hide', 'Ready to be cut and sewn into armour.', 1, NULL, 40, 60, NULL, NULL, NULL, 396, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(10821, 'Cured yak-hide', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 396, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(10822, 'Yak-hide armour', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 122, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,-5,0,25,20,15,-2,25,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10823, 'Yak-hide armour', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 122, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10824, 'Yak-hide armour', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,-5,10,25,20,15,-2,10,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10825, 'Yak-hide armour', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10826, 'Fremennik round shield', 'A shield worn by Fremennik warriors.', NULL, NULL, 2000, 3000, 1, NULL, NULL, 402, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,-10,-10,17,17,31,-4,33,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10827, 'Fremennik round shield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 402, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10828, 'Helm of neitiznot', 'A gift from Neitiznot\'s Burgher.', 1, NULL, 20000, 30000, NULL, NULL, 50000, 44800, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,0,4', '0,0,0,0,0,31,29,34,3,30,8,3,3,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,55}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10830, 'Royal decree', 'The document is stamped with King Gjuki Sorvott IV\'s royal seal.', NULL, NULL, NULL, NULL, 1, 'King Sorvott of Jatizso will give you another one, grudgingly.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10831, 'Empty tax bag', 'An empty tax bag.', NULL, NULL, NULL, NULL, 1, 'Are you sure? You can replace it by talking to King Sorvott.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10836, 'Silly jester hat', 'A silly hat with bells.', NULL, NULL, 40, 60, 1, 'Are you sure? You can find another in King Sorvott\'s chest.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,0,0,0,0,0,5,-5,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10837, 'Silly jester top', 'A jester\'s jangly top.', NULL, NULL, 40, 60, 1, 'Are you sure? You can find another in King Sorvott\'s chest.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,0,0,0,5,-5,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10838, 'Silly jester tights', 'Silly jester tights.', NULL, NULL, NULL, NULL, 1, 'Are you sure? You can find another in King Sorvott\'s chest.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, '0,0,0,0,0,0,0,0,5,-5,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10839, 'Silly jester boots', 'Silly jester boots.', NULL, NULL, NULL, NULL, 1, 'Are you sure? You can find another in King Sorvott\'s chest.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,0,0,0,0,0,5,-5,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10840, 'A jester stick', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, '0,0,0,0,0,0,0,0,5,-5,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10842, 'Decapitated head', 'No brain: A gruesome, decapitated head, whose brain has rotted away. Brain: A gruesome, decapitated head - its eyes stare lifelessly at nothing.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10843, 'Helm of neitiznot', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 44800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10844, 'Spring sq\'irk', 'A slightly sq\'irky, I mean quirky, fruit.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10845, 'Summer sq\'irk', 'A slightly sq\'irky, I mean quirky, fruit.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10846, 'Autumn sq\'irk', 'A slightly sq\'irky, I mean quirky, fruit.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10847, 'Winter sq\'irk', 'A slightly sq\'irky, I mean quirky, fruit.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10848, 'Spring sq\'irkjuice', 'Made from 4 spring sq\'irks.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10849, 'Summer sq\'irkjuice', 'Made from 2 summer sq\'irks.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10850, 'Autumn sq\'irkjuice', 'Made from 3 autumn sq\'irks.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10851, 'Winter sq\'irkjuice', 'Made from 5 winter sq\'irks.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10856, 'Sin seer\'s note', 'Her writing is too scrawled to make out what it says.', NULL, NULL, 2, 3, 1, 'You will need to speak to Sin Seer in Seers\' Village to get another one.', 40, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10857, 'Severed leg', 'A severed human leg.', NULL, NULL, NULL, NULL, 1, 'You will need to speak to General Khazard, near the Fremennik Province, to get another.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10858, 'Shadow sword', 'A shadow sword.', NULL, NULL, NULL, NULL, 1, 'You can get another one by visiting the cave near the Fishing guild. A friendly ghost will replace it for you. You must be wearing a Ring of visibility, or you cannot get it back.', NULL, NULL, NULL, NULL, NULL, 7047, 7040, 7046, 7039, 7045, 7044, 7043, 124, 3, 7, NULL, '-4,27,21,4,0,0,0,0,4,-1,0,26,0,0,0', 7, NULL, 1, NULL, NULL, NULL, NULL, 3.6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10859, 'Tea flask', 'You can put nice, hot tea in it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10860, 'Tea flask', 'You can put nice, hot tea in it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10861, 'Tea flask', 'You can put nice, hot tea in it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10862, 'Hard hat', 'Can\'t get any safer than this.', NULL, NULL, 40, 60, 1, 'You\'ll have to find another within the Tower of Life!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10863, 'Builder\'s shirt', 'Very fetching.', NULL, NULL, 40, 60, 1, 'You\'ll have to find another within the Tower of Life!', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10864, 'Builder\'s trousers', 'Slightly tatty in my opinion.', NULL, NULL, 40, 60, 1, 'You\'ll have to find another within the Tower of Life!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10865, 'Builder\'s boots', 'They\'ll offer good protection for my toes.', NULL, NULL, 40, 60, 1, 'You\'ll have to find another within the Tower of Life!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10866, 'Rivets', 'Used to bolt things together.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10870, 'Binding fluid', 'Some magical fluid to bind surfaces.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10871, 'Pipe', 'A pipe that belongs in a cannon stand.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10872, 'Pipe ring', 'A ring used to join two pipes together.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10873, 'Metal sheet', 'A sheet of metal.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10874, 'Coloured ball', 'Bound to have some use.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10875, 'Valve wheel', 'A wheel used to control valves.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10876, 'Metal bar', 'Some unknown metal substance.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10877, 'Plain satchel', 'I can keep my grub in here.', NULL, NULL, 40, 60, NULL, NULL, 128, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10878, 'Green satchel', 'I can keep my grub in here.', NULL, NULL, 40, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10879, 'Red satchel', 'I can keep my grub in here.', NULL, NULL, 40, 60, NULL, NULL, 128, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10880, 'Black satchel', 'I can keep my grub in here.', NULL, NULL, 40, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10881, 'Gold satchel', 'I can keep my grub in here.', NULL, NULL, 40, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10882, 'Rune satchel', 'I can keep my grub in here.', NULL, NULL, 40, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10883, 'Hard hat', 'Can\'t get any safer than this.', NULL, NULL, 40, 60, 1, 'You\'ll have to find another within the Tower of Life!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10884, 'Fuse', 'A fuse.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10885, 'Keg', 'A small keg of gunpowder.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10886, 'Prayer book', 'Used to cure poison through prayer.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10887, 'Barrelchest anchor', 'This is likely to put my back out... (when fixed) OR It\'s broken. I should see if a pirate smith can fix it. (when broken)', NULL, NULL, 92000, 138000, NULL, 'If you drop the Anchor it will be destroyed, and you will need to get a new one from Brother Tranquillity, then pay Smith to re', NULL, NULL, NULL, NULL, NULL, 5869, 823, 5867, 5868, 5867, 5867, 5867, 985, 3, 6, NULL, '-2,10,92,0,0,0,0,0,0,0,0,100,0,0,0', 8, 1, 1, '5865,5865,5865,5865', 5866, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10888, 'Barrelchest anchor', 'This is likely to put my back out... (when fixed) OR It\'s broken. I should see if a pirate smith can fix it. (when broken)', NULL, NULL, 92000, 138000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6, NULL, '-2,10,92,0,0,0,0,0,0,0,0,100,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10889, 'Blessed lamp', 'This will answer my prayers.', NULL, NULL, NULL, NULL, NULL, 'If you drop this lamp it will be destroyed, and you will need to see Brother Tranquility for another.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10890, 'Prayer book', 'Used to cure poison through prayer.', NULL, NULL, NULL, NULL, 1, 'This book is old and delicate. You can reclaim this item from the place you found it.ping it here will destroy it and you will have to search the Edgeville Monastery bookcase for another.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10891, 'Wooden cat', 'A wooden cat toy.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 922, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10892, 'Wooden cat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 922, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10893, 'Cranial clamp', 'A cranial clamp.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10894, 'Brain tongs', 'Some tongs for use with brains.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10895, 'Bell jar', 'A bell jar for covering things.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10896, 'Wolf whistle', 'A silver whistle.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10897, 'Shipping order', 'A shipping order list.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10898, 'Keg', 'A small keg of gunpowder.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10899, 'Crate part', 'Part of a crate.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10904, 'Skull staple', 'One skull staple.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10909, 'Mixture - step 1(4)', 'This super restore and unicorn dust potion needs more ingredients.', 1, NULL, 120, 180, NULL, NULL, NULL, 8420, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10910, 'Mixture - step 1(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8420, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10911, 'Mixture - step 1(3)', 'This super restore and unicorn dust potion needs more ingredients.', 1, NULL, 120, 180, NULL, NULL, NULL, 6543, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10912, 'Mixture - step 1(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 6543, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10913, 'Mixture - step 1(2)', 'This super restore and unicorn dust potion needs more ingredients.', 1, NULL, 120, 180, NULL, NULL, NULL, 4335, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10914, 'Mixture - step 1(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4335, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10915, 'Mixture - step 1(1)', 'This super restore and unicorn dust potion needs more ingredients.', 1, NULL, 120, 180, NULL, NULL, NULL, 2168, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10916, 'Mixture - step 1(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2168, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10917, 'Mixture - step 2(4)', 'This super restore, unicorn dust, snake weed potion needs more ingredients.', 1, NULL, 120, 180, NULL, NULL, NULL, 8665, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10918, 'Mixture - step 2(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8665, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10919, 'Mixture - step 2(3)', 'This super restore, unicorn dust, snake weed potion needs more ingredients.', 1, NULL, 120, 180, NULL, NULL, NULL, 6695, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10920, 'Mixture - step 2(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 6695, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10921, 'Mixture - step 2(2)', 'This super restore, unicorn dust, snake weed potion needs more ingredients.', 1, NULL, 120, 180, NULL, NULL, NULL, 4335, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10922, 'Mixture - step 2(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4335, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10923, 'Mixture - step 2(1)', 'This super restore, unicorn dust, snake weed potion needs more ingredients.', 1, NULL, 120, 180, NULL, NULL, NULL, 2168, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10924, 'Mixture - step 2(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2168, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10925, 'Sanfew serum(4)', 'A \"X\" dose Sanfew Serum.', 1, NULL, 120, 180, NULL, NULL, NULL, 15900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10926, 'Sanfew serum(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 15900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10927, 'Sanfew serum(3)', 'A \"X\" dose Sanfew Serum.', 1, NULL, 120, 180, NULL, NULL, NULL, 12000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10928, 'Sanfew serum(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 12000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10929, 'Sanfew serum(2)', 'A \"X\" dose Sanfew Serum.', 1, NULL, 120, 180, NULL, NULL, NULL, 10200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10930, 'Sanfew serum(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 10200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10931, 'Sanfew serum(1)', 'A \"X\" dose Sanfew Serum.', 1, NULL, 120, 180, NULL, NULL, NULL, 6114, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10932, 'Sanfew serum(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 6114, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10933, 'Lumberjack boots', 'You certainly will be alright wearing these.', NULL, NULL, 20, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10934, 'Reward token', 'Blue/Red/Yellow reward token exchanged at Burgh de Rott/Paterdomus.', NULL, NULL, NULL, NULL, 1, 'Warning! If you destroy this item, you will lose ALL rewards that it relates to and you will have to make another trek in order to get another one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10935, 'Reward token', 'Blue/Red/Yellow reward token exchanged at Burgh de Rott/Paterdomus.', NULL, NULL, NULL, NULL, 1, 'Warning! If you destroy this item, you will lose ALL rewards that it relates to and you will have to make another trek in order to get another one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(10936, 'Reward token', 'Blue/Red/Yellow reward token exchanged at Burgh de Rott/Paterdomus.', NULL, NULL, NULL, NULL, 1, 'Warning! If you destroy this item, you will lose ALL rewards that it relates to and you will have to make another trek in order to get another one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10937, 'Nail beast nails', 'The claws from a nail beast', 1, NULL, 120, 180, NULL, NULL, NULL, 203, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10938, 'Nail beast nails', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 203, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10939, 'Lumberjack top', 'You certainly will be alright wearing this.', NULL, NULL, 20, 30, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10940, 'Lumberjack legs', 'You certainly will be alright wearing these.', NULL, NULL, 20, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10941, 'Lumberjack hat', 'You certainly will be alright wearing this.', NULL, NULL, 20, 30, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10942, 'Reward token', 'Blue/Red/Yellow reward token exchanged at Burgh de Rott/Paterdomus.', NULL, NULL, NULL, NULL, 1, 'Warning! If you destroy this item, you will lose ALL rewards that it relates to and you will have to make another trek in order to get another one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10943, 'Reward token', 'Blue/Red/Yellow reward token exchanged at Burgh de Rott/Paterdomus.', NULL, NULL, NULL, NULL, 1, 'Warning! If you destroy this item, you will lose ALL rewards that it relates to and you will have to make another trek in order to get another one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10944, 'Reward token', 'Blue/Red/Yellow reward token exchanged at Burgh de Rott/Paterdomus.', NULL, NULL, NULL, NULL, 1, 'Warning! If you destroy this item, you will lose ALL rewards that it relates to and you will have to make another trek in order to get another one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10945, 'Lumberjack top', 'You certainly will be alright wearing this.', NULL, NULL, 20, 30, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10950, 'Skull staples', 'One skull staple.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10951, 'Skull staples', 'One skull staple.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10952, 'Slayer bell', 'Don\'t make anyone jump when you ring this!', 1, NULL, 60, 90, NULL, NULL, 150, 57, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{18,39}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10953, 'Slayer bell', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 57, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10954, 'Frog-leather body', 'Armour made out of Frog hide.', 1, NULL, 400, 600, NULL, NULL, 1000, 1797, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '0,3,1', '0,0,0,-5,10,23,26,30,15,32,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{4,25}', 3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10955, 'Frog-leather body', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1797, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10956, 'Frog-leather chaps', 'Chaps made out of Frog hide.', 1, NULL, 360, 540, NULL, NULL, 900, 361, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '0,2,1', '0,0,0,-5,2,7,7,9,4,9,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{4,25}', 3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10957, 'Frog-leather chaps', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 361, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10958, 'Frog-leather boots', 'Boots made out of Frog hide.', 1, NULL, 80, 120, NULL, NULL, 200, 1156, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,-8,2,1,1,1,0,1,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{4,25}', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10959, 'Frog-leather boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1156, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(10960, 'Green gloop soup', 'Thick and tasty soup.', NULL, NULL, 4, 6, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10961, 'Frogspawn gumbo', 'A big bowl of frogspawn gumbo.', NULL, NULL, 4, 6, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10962, 'Frogburger', 'A juicy frogburger.', NULL, NULL, 4, 6, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10963, 'Coated frogs\' legs', 'Nice and crunchy.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10964, 'Bat shish', 'Bat shish kebab.', NULL, NULL, 4, 6, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10965, 'Fingers', 'Wall beast fingers in a white fern sauce.', NULL, NULL, 4, 6, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10967, 'Roast frog', 'A whole roasted frog.', NULL, NULL, 20, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10968, 'Mushrooms', 'Tasty saut??ed mushrooms.', NULL, NULL, 20, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10969, 'Fillets', 'Chunky cave-crawler fillets.', NULL, NULL, 20, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10970, 'Loach', 'Steamed cave pond loach.', NULL, NULL, 20, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10971, 'Eel sushi', 'Cave-eel sushi.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10972, 'Dorgesh-kaan sphere', 'Oldak\'s Marvellous Moving-Over-Distance Sphere.', NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10973, 'Light orb', 'A component of cave goblin Magic.', 1, NULL, 140, 210, NULL, NULL, NULL, 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{11,52}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(10974, 'Light orb', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(10975, 'Spanner', 'A goblin wrench.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10976, 'Long bone', 'A Construction bone.', NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10977, 'Curved bone', 'A curved Construction bone.', NULL, NULL, 2, 4, NULL, NULL, 2000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10978, 'Swamp weed', 'Swamp weed found in the caves near Dorgesh-Kaan.', 1, NULL, NULL, 1, NULL, NULL, NULL, 292, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 500, NULL, NULL, NULL, NULL, NULL, 0), +(10979, 'Swamp weed', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 292, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(10980, 'Empty light orb', 'Add a wire to complete it.', NULL, NULL, 100, 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10981, 'Cave goblin wire', 'Wire found in Dorgesh-Kaan.', 1, NULL, 8, 12, NULL, NULL, NULL, 988, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(10982, 'Cave goblin wire', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 988, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(10983, 'Cog', 'A cog. Broken: A broken cog.', NULL, NULL, NULL, NULL, 1, 'You can get another cog from the old power station.', 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10984, 'Cog', 'A cog. Broken: A broken cog.', NULL, NULL, NULL, NULL, 1, 'You can get another cog from the old power station.', 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10985, 'Fuse', 'A fuse.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10986, 'Fuse', 'A fuse.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10987, 'Meter', 'A meter.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10988, 'Meter', 'A meter.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10989, 'Capacitor', 'A capacitor.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10990, 'Capacitor', 'A capacitor.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10993, 'Powerbox', 'A powerbox. Broken: A broken powerbox.', NULL, NULL, NULL, NULL, 1, 'You can get another power box from the old power station.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10994, 'Powerbox', 'A powerbox. Broken: A broken powerbox.', NULL, NULL, NULL, NULL, 1, 'You can get another power box from the old power station.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10995, 'Perfect shell', 'A perfect example of a tortoise shell.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10996, 'Perfect snail shell', 'A perfect example of a snail shell.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10997, 'Molanisk', 'On wall: That white dot looks like an eye! Off wall: A strange mole-like being.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10998, 'Cave goblin', 'One of the many citizens of Dorgesh-Kaan.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(10999, 'Goblin book', 'A tattered goblin holy book.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11001, 'Dagon\'hai history', 'The History of Dagon\'hai.', NULL, NULL, 4, 6, 1, 'You will need to get another copy from the Varrock Palace Library if you destroy this one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11002, 'Sin\'keth\'s diary', 'The diary of Sin\'keth Magis.', NULL, NULL, 4, 6, 1, 'You will need to get another copy from the Varrock Palace Library if you destroy this one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11003, 'An empty folder', 'A folder for Rat\'s papers.', NULL, NULL, NULL, NULL, 1, 'You will need to ask Rat for another empty folder if you destroy this one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11006, 'Used folder', 'A folder for rat\'s papers. It needs more pages.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11007, 'Full folder', 'A full folder. You should take this back to Rat.', NULL, NULL, 4, 6, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11008, 'Rat\'s paper', 'A page of Rat\'s document.', NULL, NULL, NULL, NULL, 1, 'You will need to find more papers about the outlaws if you destroy this.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11009, 'Rat\'s letter', 'A letter in a strange language.', NULL, NULL, NULL, NULL, 1, 'You will need to get another copy of the letter from Rat if you destroy this.', 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11010, 'Surok\'s letter', 'A letter.', NULL, NULL, NULL, NULL, 1, 'You will need to ask Surok for another letter to Rat if you destroy this.', 27, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11011, 'Zaff\'s instructions', 'Instructions for the beacon ring.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11012, 'Wand', 'A wand.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11013, 'Infused wand', 'This wand is glowing with chaos magic.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11014, 'Beacon ring', 'A magical ring.', NULL, NULL, NULL, NULL, 1, 'You will need to get another ring from Zaff if you destroy this one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, '0,0,0,2,0,0,0,0,1,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11015, 'Chicken head', 'Cock-a-doodle-do!', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11016, 'Chicken feet', 'Perfect for crossing the road.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11017, 'Chicken wings', 'I look fowl in this.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11018, 'Chicken legs', 'What\'s the matter, are you chicken?', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11019, 'Chicken feet', 'Perfect for crossing the road.', NULL, NULL, NULL, NULL, 1, 'You will need to speak to Diango to get another pair of chicken feet.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11020, 'Chicken wings', 'I look fowl in this.', NULL, NULL, NULL, NULL, 1, 'You will need to speak to Diango to get another set of chicken wings.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11021, 'Chicken head', 'Cock-a-doodle-do!', NULL, NULL, NULL, NULL, 1, 'You will need to speak to Diango to get another chicken head.', NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11022, 'Chicken legs', 'What\'s the matter, are you chicken?', NULL, NULL, NULL, NULL, 1, 'You will need to speak to Diango to get another set of chicken legs.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11023, 'Magic egg', 'Let\'s see how far the rabbit hole goes.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11024, 'Rabbit mould', 'Used for making chocolate rabbits.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11025, 'Chocolate chunks', 'Some chocolate chunks.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11026, 'Chocolate kebbit', 'Chocolatey kebbit goodness.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11027, 'Easter egg', 'Happy Easter.', 1, NULL, 4, 6, NULL, 'You can reclaim this item from the place you found it.', NULL, 64747137, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11028, 'Easter egg', 'Happy Easter.', 1, NULL, 4, 6, NULL, 'You can reclaim this item from the place you found it.', NULL, 64747137, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11029, 'Easter egg', 'Happy Easter.', 1, NULL, 4, 6, NULL, 'You can reclaim this item from the place you found it.', NULL, 64747137, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11030, 'Easter egg', 'Happy Easter.', 1, NULL, 4, 6, NULL, 'You can reclaim this item from the place you found it.', NULL, 64747137, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11031, 'Damp planks', 'A number of dripping, waterlogged planks.', NULL, NULL, NULL, NULL, NULL, 'These logs will be destroyed if you drop them and you will need to see Olaf Hradson to get some more.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11032, 'Crude carving', 'A log with some squiggles carved into it.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11033, 'Cruder carving', 'Another log with some sort of bird hacked into it.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11034, 'Sven\'s last map', 'A faded map marking a cross next to a section of the landscape.', NULL, NULL, NULL, NULL, NULL, 'This map will be destroyed if you drop it and you will need to see Olaf Hradson to get another.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11035, 'Windswept logs', 'Logs taken from the exotic-looking windswept tree.', NULL, NULL, NULL, NULL, NULL, 'These logs will be destroyed if you drop them and you will need to chop more from the windswept tree.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11037, 'Brine sabre', 'A salty sword.', 1, NULL, 10400, 15600, NULL, NULL, NULL, 120200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, '7,47,-2,0,0,0,0,0,0,0,0,46,0,0,0', 6, 1, NULL, NULL, NULL, NULL, '{0,40}', 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11038, 'Brine sabre', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 120200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11044, 'Rotten barrel', 'Looks like it might still float.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11045, 'Rotten barrel', 'Looks like it might still float.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11046, 'Rope', 'A coil of rope.', 1, NULL, 7, 10, NULL, NULL, 18, 101, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11047, 'Brine rat', 'Eww, a bald rat!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11048, 'Armour shard', 'A piece of ancient goblin armour.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11049, 'Artefact', 'An ancient goblin object encrusted in dirt.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11050, 'Axe head', 'It\'s missing a handle.', 1, NULL, 160, 160, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11051, 'Artefact', 'An ancient goblin object encrusted in dirt.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11052, 'Helmet fragment', 'A piece of ancient goblin helmet.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11053, 'Artefact', 'An ancient goblin object encrusted in dirt.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11054, 'Shield fragment', 'A piece of an ancient goblin shield.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11055, 'Artefact', 'An ancient goblin object encrusted in dirt.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11056, 'Sword fragment', 'A piece of an ancient goblin sword.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11057, 'Artefact', 'An ancient goblin object encrusted in dirt.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11058, 'Mace', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11059, 'Artefact', 'An ancient goblin object encrusted in dirt.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11060, 'Goblin village sphere', 'Oldak\'s marvellous Moving-over-distance Sphere', NULL, NULL, 8, 12, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.05, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11061, 'Ancient mace', 'It has ancient goblin symbols on it.', 1, NULL, 400, 600, NULL, NULL, 1000, 4093, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '10,-2,16,0,0,0,0,0,0,0,0,14,3,0,0', 8, 1, NULL, '390,390,381,390', 397, NULL, '{0,25}-{5,15}', 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11064, 'Ancient mace', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11065, 'Bracelet mould', 'Used to make gold bracelets.', 1, NULL, 2, 3, NULL, NULL, 5, 456, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11066, 'Bracelet mould', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 456, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11069, 'Gold bracelet', 'I wonder if this is valuable.', 1, NULL, 220, 330, NULL, NULL, 165, 223, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11070, 'Gold bracelet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 223, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11072, 'Sapphire bracelet', 'I wonder if this is valuable.', 1, NULL, 460, 690, NULL, NULL, 1035, 578, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.25, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11073, 'Sapphire bracelet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 578, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11074, 'Bracelet of clay', 'Now I can become a potter.', 1, NULL, 506, 759, NULL, NULL, 506, 644, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11075, 'Bracelet of clay', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 644, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11076, 'Emerald bracelet', 'I wonder if this is valuable.', 1, NULL, 610, 915, NULL, NULL, NULL, 786, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11077, 'Emerald bracelet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 786, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11079, 'Castlewar brace(3)', 'Must be worn as you enter the game to receive the bonus for that game.', 1, NULL, 670, 1005, NULL, NULL, NULL, 926, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.25, 34464, NULL, NULL, NULL, NULL, NULL, 0), +(11080, 'Castlewar brace(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 926, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11081, 'Castlewar brace(2)', 'Must be worn as you enter the game to receive the bonus for that game.', 1, NULL, 670, 1005, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.25, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11082, 'Castlewar brace(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11083, 'Castlewar brace(1)', 'Must be worn as you enter the game to receive the bonus for that game.', 1, NULL, 670, 1005, NULL, NULL, NULL, 3484, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.25, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11084, 'Castlewar brace(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3484, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11085, 'Ruby bracelet', 'I wonder if this is valuable.', 1, NULL, 930, 1395, NULL, NULL, 2325, 1271, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11086, 'Ruby bracelet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1271, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11088, 'Inoculation brace', 'It eases diseases!', 1, NULL, 1024, 1536, NULL, NULL, NULL, 1376, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.25, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11089, 'Inoculation brace', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1376, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11090, 'Phoenix necklace', 'In case of emergency, wear necklace.', 1, NULL, 1620, 2430, NULL, NULL, NULL, 15400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11091, 'Phoenix necklace', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 15400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11092, 'Diamond bracelet', 'I wonder if this is valuable.', 1, NULL, 1530, 2295, NULL, NULL, 3422, 12100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11093, 'Diamond bracelet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 12100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11095, 'Forinthry brace(5)', 'It repels revenants and helps you enter the Abyss.', 1, NULL, 1680, 2520, NULL, NULL, NULL, 15200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11096, 'Forinthry brace(5)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 15200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11097, 'Forinthry brace(4)', 'It repels revenants and helps you enter the Abyss.', 1, NULL, 1680, 2520, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11098, 'Forinthry brace(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11099, 'Forinthry brace(3)', 'It repels revenants and helps you enter the Abyss.', 1, NULL, 1680, 2520, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11100, 'Forinthry brace(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11101, 'Forinthry brace(2)', 'It repels revenants and helps you enter the Abyss.', 1, NULL, 1680, 2520, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11102, 'Forinthry brace(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11103, 'Forinthry brace(1)', 'It repels revenants and helps you enter the Abyss.', 1, NULL, 1680, 2520, NULL, NULL, NULL, 2537, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11104, 'Forinthry brace(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2537, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11105, 'Skills necklace(4)', 'This will help me travel.', 1, NULL, 8080, 12120, NULL, NULL, NULL, 30400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11106, 'Skills necklace(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 30400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11107, 'Skills necklace(3)', 'This will help me travel.', 1, NULL, 8080, 12120, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11108, 'Skills necklace(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11109, 'Skills necklace(2)', 'This will help me travel.', 1, NULL, 8080, 12120, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11110, 'Skills necklace(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11111, 'Skills necklace(1)', 'This will help me travel.', 1, NULL, 8080, 12120, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11112, 'Skills necklace(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11113, 'Skills necklace', 'This will help me travel.', 1, NULL, 8080, 12120, NULL, NULL, NULL, 28400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11114, 'Skills necklace', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 28400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11115, 'Dragon bracelet', 'I wonder if this is valuable.', 1, NULL, 7650, 11475, NULL, NULL, NULL, 26000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11116, 'Dragon bracelet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 26000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11118, 'Combat bracelet(4)', 'You will need to recharge the bracelet at the Legends Guild.(uncharged) A handy way to get around.(charged)', 1, NULL, 8416, 12624, NULL, NULL, NULL, 29700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '7,7,7,3,7,5,5,5,3,5,5,6,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11119, 'Combat bracelet(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 29700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11120, 'Combat bracelet(3)', 'You will need to recharge the bracelet at the Legends Guild.(uncharged) A handy way to get around.(charged)', 1, NULL, 8416, 12624, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '7,7,7,3,7,5,5,5,3,5,5,6,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11121, 'Combat bracelet(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11122, 'Combat bracelet(2)', 'You will need to recharge the bracelet at the Legends Guild.(uncharged) A handy way to get around.(charged)', 1, NULL, 8416, 12624, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '7,7,7,3,7,5,5,5,3,5,5,6,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11123, 'Combat bracelet(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11124, 'Combat bracelet(1)', 'You will need to recharge the bracelet at the Legends Guild.(uncharged) A handy way to get around.(charged)', 1, NULL, 8416, 12624, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '7,7,7,3,7,5,5,5,3,5,5,6,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11125, 'Combat bracelet(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11126, 'Combat bracelet', 'You will need to recharge the bracelet at the Legends Guild.(uncharged) A handy way to get around.(charged)', 1, NULL, 8416, 12624, NULL, NULL, NULL, 29000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '7,7,7,3,7,5,5,5,3,5,5,6,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11127, 'Combat bracelet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 29000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(11128, 'Berserker necklace', 'Makes obsidian weapons even stronger!', 1, NULL, 80400, 120600, NULL, NULL, NULL, 2400000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '-10,-10,-10,0,0,-20,-20,-20,-20,-20,-20,7,3,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11129, 'Berserker necklace', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2400000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11130, 'Onyx bracelet', 'I wonder if this is valuable.', 1, NULL, 80800, 121200, NULL, NULL, 80400, 941200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11131, 'Onyx bracelet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 941200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11133, 'Regen bracelet', 'Helps to restore your life points.', 1, NULL, 80800, 121200, NULL, NULL, NULL, 124200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '8,8,8,3,7,6,6,6,3,6,5,7,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11134, 'Regen bracelet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 124200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11135, 'Bomber jacket', 'For all your flying needs.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11136, 'Karamja gloves 1', 'A pair of pale green Karamja gloves.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '1,1,1,1,1,1,1,1,1,1,1,1,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11137, 'Antique lamp', 'I wonder what happens if I rub it.', NULL, NULL, NULL, NULL, 1, 'Are you sure you want to destroy the lamp? You won\'t be able to get another one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11138, 'Karamja gloves 2', 'A pair of green Karamja gloves.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '1,1,1,1,1,1,1,1,1,1,1,1,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11139, 'Antique lamp', 'I wonder what happens if I rub it.', NULL, NULL, NULL, NULL, 1, 'Are you sure you want to destroy the lamp? You won\'t be able to get another one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11140, 'Karamja gloves 3', 'A pair of dark green Karamja gloves.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '1,1,1,1,1,1,1,1,1,1,1,1,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11141, 'Antique lamp', 'I wonder what happens if I rub it.', NULL, NULL, NULL, NULL, 1, 'Are you sure you want to destroy the lamp? You won\'t be able to get another one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11151, 'Dream vial (empty)', 'When empty: A vessel for holding liquid. Filled with water: A vessel containing water. Filled with Goutweed: A vessel containing water and goutweed.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11152, 'Dream vial (water)', 'When empty: A vessel for holding liquid. Filled with water: A vessel containing water. Filled with Goutweed: A vessel containing water and goutweed.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11153, 'Dream vial (herb)', 'When empty: A vessel for holding liquid. Filled with water: A vessel containing water. Filled with Goutweed: A vessel containing water and goutweed.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11154, 'Dream potion', 'Potion of Shared Dreaming. One dream for two!', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11155, 'Ground astral rune', 'A ground astral rune.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11156, 'Astral rune shards', 'An astral rune that has been broken into shards.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11157, 'Dreamy lamp', 'A lunar-styled lamp. I wonder what\'s inside?', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11158, 'Cyrisus\'s chest', 'Perfect for storing heavy things.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11159, 'Hunter kit', 'A box of Hunter goodies.', 1, NULL, NULL, NULL, 1, 'You will have to create another using the Lunar Spellbook.', NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11164, 'Restored shield', 'Complete Shield of Arrav.', NULL, NULL, NULL, NULL, 1, 'You\'ll need to get it back from Captain Rovin.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11165, 'Phoenix crossbow', 'Second-rate crossbow, former property of the Phoenix Gang.', 1, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4591, 823, 4226, 4228, 4227, 821, 822, 175, 3, NULL, NULL, '0,0,0,0,6,0,0,0,0,0,0,0,0,0,0', 17, NULL, NULL, NULL, NULL, '2700,0,0,0', NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11166, 'Phoenix crossbow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11167, 'Phoenix crossbow', 'Second-rate crossbow, former property of the Phoenix Gang.', 1, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4591, 823, 4226, 4228, 4227, 821, 822, 175, 3, NULL, NULL, '0,0,0,0,6,0,0,0,0,0,0,0,0,0,0', 17, NULL, NULL, NULL, NULL, '2700,0,0,0', NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11168, 'Phoenix crossbow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11169, 'Newspaper', 'A collection of written news on paper!', 1, NULL, NULL, 1, NULL, NULL, 50, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11170, 'Newspaper', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11171, 'Newspaper', 'A collection of written news on paper!', 1, NULL, NULL, 1, NULL, NULL, 50, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11172, 'Newspaper', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11173, 'Half certificate', 'I can use this to claim a reward from the King, if I get the other half.', 1, NULL, NULL, NULL, 1, 'Instead of destroying this I should get a friend to help me retrieve the other half.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11174, 'Half certificate', 'I can use this to claim a reward from the King, if I get the other half.', 1, NULL, NULL, NULL, 1, 'Instead of destroying this I should get a friend to help me retrieve the other half.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11175, 'Uncleaned find', 'A roughly-prepared archaeological find ready for cleaning.', NULL, NULL, NULL, NULL, 1, 'You can get another find from the pile in the cleaning area of Varrock Museum.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11179, 'Old coin', 'An old looking coin.', NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11180, 'Ancient coin', 'A cracked and rusty looking coin.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11181, 'Ancient symbol', 'A very old symbol of Saradomin.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11182, 'Old symbol', 'An old symbol of Saradomin.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11183, 'Old chipped vase', 'An old vase with Saradominist markings - it has been chipped.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11184, 'Museum map', 'A map of Varrock Museum.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11185, 'Antique lamp', 'I wonder what happens if I rub it.', NULL, NULL, NULL, NULL, 1, 'Are you sure you want to destroy the lamp? You won\'t be able to get another one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11186, 'Antique lamp', 'I wonder what happens if I rub it.', NULL, NULL, NULL, NULL, 1, 'Are you sure you want to destroy the lamp? You won\'t be able to get another one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11187, 'Antique lamp', 'I wonder what happens if I rub it.', NULL, NULL, NULL, NULL, 1, 'Are you sure you want to destroy the lamp? You won\'t be able to get another one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11188, 'Antique lamp', 'I wonder what happens if I rub it.', NULL, NULL, NULL, NULL, 1, 'Are you sure you want to destroy the lamp? You won\'t be able to get another one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11189, 'Antique lamp', 'I wonder what happens if I rub it.', NULL, NULL, NULL, NULL, 1, 'Are you sure you want to destroy the lamp? You won\'t be able to get another one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11190, 'Digsite pendant (1)', 'An enchanted necklace.', NULL, NULL, 960, 1440, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11191, 'Digsite pendant (2)', 'An enchanted necklace.', NULL, NULL, 960, 1440, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11192, 'Digsite pendant (3)', 'An enchanted necklace.', NULL, NULL, 960, 1440, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11193, 'Digsite pendant (4)', 'An enchanted necklace.', NULL, NULL, 960, 1440, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11194, 'Digsite pendant (5)', 'An enchanted necklace.', NULL, NULL, 960, 1440, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11195, 'Clean necklace', 'A recently-cleaned necklace.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11196, 'Griffin feather', 'One of Grimgnash\'s feathers.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11197, 'Miazrqa\'s pendant', 'The pendant belonging to Miazrqa.', NULL, NULL, NULL, NULL, 1, 'You will need to try and find another pendant in the mouse hole if you destroy this.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11198, 'Music sheet', 'A sheet of music.', NULL, NULL, NULL, NULL, 1, 'You will need to find another sheet of music in the witch\'s basement if you destroy this.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11199, 'Rupert\'s helmet', 'A sturdy helmet that belonged to Rupert the beard.', NULL, NULL, NULL, NULL, 1, 'You will need to obtain another helmet from Rupert the Beard if you destroy this', 60000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11200, 'Dwarven helmet', 'A sturdy helmet that belonged to Rupert the beard.', 1, NULL, 24000, 36000, NULL, NULL, 60000, 35800, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,6,-2,-2,27,28,31,5,24,8,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,50}', 1.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11201, 'Dwarven helmet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 35800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11202, 'Shrinking recipe', 'A recipe for a shrinking potion.', NULL, NULL, NULL, NULL, 1, 'You will need to find another copy in the witch\'s basement if you destroy this.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11203, 'To-do list', 'A list of tasks for the day.', NULL, NULL, NULL, NULL, 1, 'You will need to find another copy in the witch\'s basement if you destroy this.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11204, 'Shrink-me-quick', 'Apparently it shrinks you. Very fast.', NULL, NULL, NULL, NULL, 1, 'You will need to make another shrinking potion if you destroy this.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11205, 'Shrunk ogleroot', 'A shrunk ogleroot! How odd...', 1, NULL, NULL, 1, 1, NULL, 4, 35, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11210, 'Golden goblin', 'A shiny golden goblin. Strange!', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11211, 'Magic beans', 'A bag of magic beans.', NULL, NULL, NULL, NULL, 1, 'You will need to get another bag of beans from Sylas if you destroy this one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11212, 'Dragon arrow', 'An arrow made using a dragon\'s talon.', 1, NULL, 320, 480, NULL, NULL, NULL, 2674, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,60', NULL, NULL, NULL, NULL, NULL, NULL, '{4,60}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(11217, 'Dragon fire arrows', 'unlit: Arrows with dragon heads and oil-soaked cloth.lit: Dragon-headed fire arrow.', 1, NULL, 320, 480, NULL, NULL, NULL, 3988, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,60', NULL, NULL, NULL, NULL, NULL, NULL, '{4,60}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(11222, 'Dragon fire arrows', 'unlit: Arrows with dragon heads and oil-soaked cloth.lit: Dragon-headed fire arrow.', 1, NULL, 320, 480, NULL, NULL, NULL, 3834, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,60', NULL, NULL, NULL, NULL, NULL, NULL, '{4,60}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(11227, 'Dragon arrow(p)', 'An arrow made using a dragon\'s talon.', 1, NULL, 320, 480, NULL, NULL, NULL, 3141, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,60', NULL, NULL, NULL, NULL, NULL, NULL, '{4,60}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(11228, 'Dragon arrow(p+)', 'An arrow made using a dragon\'s talon.', 1, NULL, 320, 480, NULL, NULL, NULL, 2866, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,60', NULL, NULL, NULL, NULL, NULL, NULL, '{4,60}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(11229, 'Dragon arrow(p++)', 'An arrow made using a dragon\'s talon.', 1, NULL, 320, 480, NULL, NULL, NULL, 3766, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,60', NULL, NULL, NULL, NULL, NULL, NULL, '{4,60}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(11230, 'Dragon dart', 'A deadly throwing dart with a dragon tip.', 1, NULL, 200, 300, NULL, NULL, NULL, 315, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,18,0,0,0,0,0,0,0,0,0,20', 18, NULL, NULL, NULL, NULL, '2547,0,0,0', '{4,60}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(11231, 'Dragon dart(p)', 'A deadly throwing dart with a dragon tip.', 1, NULL, 200, 300, NULL, NULL, NULL, 445, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,18,0,0,0,0,0,0,0,0,0,20', 18, NULL, NULL, NULL, NULL, '2547,0,0,0', '{4,60}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(11232, 'Dragon dart tip', 'A deadly looking dragon dart tip - needs feathers for flight.', 1, NULL, 100, 150, NULL, NULL, NULL, 746, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2547,0,0,0', NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11233, 'Dragon dart(p+)', 'A deadly throwing dart with a dragon tip.', 1, NULL, 200, 300, NULL, NULL, NULL, 516, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,18,0,0,0,0,0,0,0,0,0,20', 18, NULL, NULL, NULL, NULL, '2547,0,0,0', '{4,60}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(11234, 'Dragon dart(p++)', 'A deadly throwing dart with a dragon tip.', 1, NULL, 200, 300, NULL, NULL, NULL, 1248, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, NULL, '0,0,0,0,18,0,0,0,0,0,0,0,0,0,20', 18, NULL, NULL, NULL, NULL, '2547,0,0,0', '{4,60}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(11235, 'Dark bow', 'A bow from a darker dimension.', 1, 1, 48000, 72001, NULL, NULL, NULL, 143400, NULL, NULL, NULL, 808, 823, 819, 824, 820, 821, 822, 1, 3, 9, NULL, '0,0,0,0,95,0,0,0,0,0,0,0,0,0,0', 16, 1, 1, '426,426,426,426', 424, '3731,0,0,0', '{4,60}', 1.9, 10, NULL, 1, NULL, NULL, NULL, 0), +(11236, 'Dark bow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 143400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11237, 'Dragon arrowtips', 'Dragon talons, usable as arrowheads.', 1, NULL, 200, 300, NULL, NULL, NULL, 3391, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(11238, 'Baby impling jar', 'A baby impling in a jar. That\'s a bit cruel.', 1, NULL, 20, 30, NULL, 'If you drop this it will disappear. Are you sure you want to do this?', NULL, 529, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11239, 'Baby impling jar', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 529, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11240, 'Young impling jar', 'A young impling in a jar. Don\'t trap me, man.', 1, NULL, 20, 30, NULL, 'If you drop this it will disappear. Are you sure you want to do this?', NULL, 514, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11241, 'Young impling jar', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 514, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11242, 'Gourm\' impling jar', 'A gourmet impling in a jar.', 1, NULL, 20, 30, NULL, 'If you drop this it will disappear. Are you sure you want to do this?', NULL, 677, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11243, 'Gourm\' impling jar', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 677, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11244, 'Earth impling jar', 'Earth impling in a jar.', 1, NULL, 20, 30, NULL, 'If you drop this it will disappear. Are you sure you want to do this?', NULL, 1343, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11245, 'Earth impling jar', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1343, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11246, 'Ess\' impling jar', 'Essence impling in a jar.', 1, NULL, 20, 30, NULL, 'If you drop this it will disappear. Are you sure you want to do this?', NULL, 1266, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11247, 'Ess\' impling jar', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1266, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11248, 'Eclectic impling jar', 'Eclectic impling in a jar.', 1, NULL, 20, 30, NULL, 'If you drop this it will disappear. Are you sure you want to do this?', NULL, 2943, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11249, 'Eclectic impling jar', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2943, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11250, 'Nature impling jar', 'Nature impling in a jar.', 1, NULL, 20, 30, NULL, 'If you drop this it will disappear. Are you sure you want to do this?', NULL, 8593, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11251, 'Nature impling jar', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8593, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11252, 'Magpie impling jar', 'Magpie impling in a jar.', 1, NULL, 20, 30, NULL, 'If you drop this it will disappear. Are you sure you want to do this?', NULL, 22900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11253, 'Magpie impling jar', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 22900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11254, 'Ninja impling jar', 'Ninja impling in a jar.', 1, NULL, 20, 30, NULL, 'If you drop this it will disappear. Are you sure you want to do this?', NULL, 21800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11255, 'Ninja impling jar', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 21800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11256, 'Dragon impling jar', 'Dragon impling in a jar.', 1, NULL, 20, 30, NULL, 'If you drop this it will disappear. Are you sure you want to do this?', NULL, 423600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(11257, 'Dragon impling jar', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 423600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, NULL, NULL, 0), +(11258, 'Jar generator', 'Creates butterfly and impling jars.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11259, 'Magic butterfly net', 'For catching butterflies.', NULL, NULL, 400, 600, 1, 'You will have to trade with Elnock to get a new magic butterfly net.', 3, NULL, NULL, NULL, NULL, 6604, 6611, 6607, 6603, 6608, 6610, 6609, 1426, 3, 4, NULL, NULL, 14, NULL, 1, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11260, 'Impling jar', 'It\'s got little holes in the top.', 1, NULL, NULL, NULL, NULL, NULL, 1, 248, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11261, 'Impling jar', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 248, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11262, 'Imp repellent', 'Imps seem to hate this stuff. Can\'t say I blame them.', 1, NULL, 20, 30, NULL, NULL, 3, 1016, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11263, 'Imp repellent', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1016, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11264, 'Anchovy oil', 'Omega 3 oil. Good for the brain, not so for the nose.', 1, NULL, 4, 6, NULL, NULL, NULL, 601, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11265, 'Anchovy oil', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 601, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11266, 'Anchovy paste', 'Fish paste. Urk.', 1, NULL, 2, 3, NULL, NULL, NULL, 57, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11267, 'Picture', 'I can train on this', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11268, 'Picture', 'I can train on this', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11269, 'Picture', 'I can train on this', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11270, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11271, 'Picture', 'I can train on this', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11272, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11273, 'Impling scroll', 'Lets you easily identify your prey.', NULL, NULL, NULL, NULL, 1, 'You will have to ask Elnock for another one of these.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11274, 'Ham shirt', 'The label says \'Vivid Crimson\', but it looks like pink to me!', 1, NULL, 30, 45, NULL, NULL, NULL, 27, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,0,0,0,2,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11275, 'Mith grapple', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11276, 'Mith grapple', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11277, 'Cavalier mask', 'I hope I don\'t meet any roundheads...', 1, 1, 80, 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11278, 'Beret mask', 'Essential mime wear.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11279, 'Elvarg\'s head', 'The severed head of the great dragon Elvarg!', NULL, NULL, NULL, NULL, 1, 'You can complete the quest by speaking to Oziach even if you do not have the head.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11280, 'Cavalier and mask', 'I hope I don\'t meet any roundheads...', 1, 1, 80, 120, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11281, 'Cavalier and mask', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11282, 'Beret and mask', 'Essential mime wear.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11283, 'Dragonfire shield', 'A heavy shield with a snarling, draconic visage.', NULL, NULL, 800000, 1200000, NULL, NULL, NULL, 5653008, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,-10,-5,20,25,22,10,22,17,7,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,75}', 7.2, NULL, NULL, 1, NULL, NULL, NULL, 0), +(11284, 'Dragonfire shield', 'A heavy shield with a snarling, draconic visage.', 1, NULL, 800000, 1200000, NULL, NULL, NULL, 7700000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, '0,0,0,-10,-5,20,25,22,10,22,17,7,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,75}', 7.2, 10, NULL, 1, NULL, NULL, NULL, 0), +(11285, 'Dragonfire shield', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7700000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11286, 'Draconic visage', 'It looks like this could be attached to a shield somehow.', 1, NULL, 300000, 450000, NULL, NULL, NULL, 8000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.8, 10, NULL, 1, NULL, NULL, NULL, 0), +(11287, 'Draconic visage', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11323, 'Barbarian rod', 'A heavy barbarian Fishing rod.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11324, 'Roe', 'Roe, or cheap fishy eggs.', 1, NULL, 8, 12, NULL, NULL, 6, 17, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.05, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11325, 'Roe', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 17, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11326, 'Caviar', 'Caviar, or expensive fishy eggs.', 1, NULL, 20, 30, NULL, NULL, NULL, 370, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.05, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11327, 'Caviar', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 370, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11328, 'Leaping trout', 'A sad-looking trout.', 1, NULL, 10, 15, NULL, NULL, 11, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11329, 'Leaping trout', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11330, 'Leaping salmon', 'Some non-tasty salmon.', 1, NULL, 20, 30, NULL, NULL, NULL, 19, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11331, 'Leaping salmon', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 19, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11332, 'Leaping sturgeon', 'A bloated sturgeon.', 1, NULL, 30, 45, NULL, NULL, NULL, 151, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11333, 'Leaping sturgeon', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 151, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11334, 'Fish offcuts', 'Slices of inedible fish.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11335, 'Dragon full helm', 'Protects your head and looks impressive too.', 1, 1, 60000, 90000, NULL, NULL, NULL, 51600000, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,0,4', '0,0,0,-6,-2,45,48,41,-1,46,12,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}', 2, 10, NULL, 1, NULL, NULL, NULL, 0), +(11336, 'Dragon full helm', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 51600000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11337, 'Mangled bones', 'The bones of a barbarian warrior, slain by his fellow adventurers.', NULL, NULL, 400, 600, 1, 'I can gather more from the caverns below the Baxtorian Lake.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11338, 'Chewed bones', 'The bones of a barbarian warrior, slain by vile dragons.', NULL, NULL, 1, 1, 1, 'I can gather more from the caverns below the Baxtorian Lake.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9.6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11339, 'My notes', 'Records from my discoveries beneath the lake.', NULL, NULL, NULL, 1, 1, 'I can obtain another from Otto.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11340, 'Barbarian skills', 'A record of Otto\'s instructions to me.', NULL, NULL, NULL, NULL, 1, 'I can obtain another from Otto.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11341, 'Ancient page', 'Could a dragon have written this?; Tiny writing.;Smells disgusting.', NULL, NULL, NULL, NULL, 1, 'I can loot another from the caverns beneath the Baxtorian Lake.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11342, 'Ancient page', 'Could a dragon have written this?; Tiny writing.;Smells disgusting.', NULL, NULL, NULL, NULL, 1, 'I can loot another from the caverns beneath the Baxtorian Lake.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11343, 'Ancient page', 'Could a dragon have written this?; Tiny writing.;Smells disgusting.', NULL, NULL, NULL, NULL, 1, 'I can loot another from the caverns beneath the Baxtorian Lake.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11344, 'Ancient page', 'Could a dragon have written this?; Tiny writing.;Smells disgusting.', NULL, NULL, NULL, NULL, 1, 'I can loot another from the caverns beneath the Baxtorian Lake.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11345, 'Ancient page', 'Could a dragon have written this?; Tiny writing.;Smells disgusting.', NULL, NULL, NULL, NULL, 1, 'I can loot another from the caverns beneath the Baxtorian Lake.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11346, 'Ancient page', 'Could a dragon have written this?; Tiny writing.;Smells disgusting.', NULL, NULL, NULL, NULL, 1, 'I can loot another from the caverns beneath the Baxtorian Lake.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11347, 'Ancient page', 'Could a dragon have written this?; Tiny writing.;Smells disgusting.', NULL, NULL, NULL, NULL, 1, 'I can loot another from the caverns beneath the Baxtorian Lake.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11348, 'Ancient page', 'Could a dragon have written this?; Tiny writing.;Smells disgusting.', NULL, NULL, NULL, NULL, 1, 'I can loot another from the caverns beneath the Baxtorian Lake.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11349, 'Ancient page', 'Could a dragon have written this?; Tiny writing.;Smells disgusting.', NULL, NULL, NULL, NULL, 1, 'I can loot another from the caverns beneath the Baxtorian Lake.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11350, 'Ancient page', 'Could a dragon have written this?; Tiny writing.;Smells disgusting.', NULL, NULL, NULL, NULL, 1, 'I can loot another from the caverns beneath the Baxtorian Lake.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11351, 'Ancient page', 'Could a dragon have written this?; Tiny writing.;Smells disgusting.', NULL, NULL, NULL, NULL, 1, 'I can loot another from the caverns beneath the Baxtorian Lake.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11352, 'Ancient page', 'Could a dragon have written this?; Tiny writing.;Smells disgusting.', NULL, NULL, NULL, NULL, 1, 'I can loot another from the caverns beneath the Baxtorian Lake.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11353, 'Ancient page', 'Could a dragon have written this?; Tiny writing.;Smells disgusting.', NULL, NULL, NULL, NULL, 1, 'I can loot another from the caverns beneath the Baxtorian Lake.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(11354, 'Ancient page', 'Could a dragon have written this?; Tiny writing.;Smells disgusting.', NULL, NULL, NULL, NULL, 1, 'I can loot another from the caverns beneath the Baxtorian Lake.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11355, 'Ancient page', 'Could a dragon have written this?; Tiny writing.;Smells disgusting.', NULL, NULL, NULL, NULL, 1, 'I can loot another from the caverns beneath the Baxtorian Lake.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11356, 'Ancient page', 'Could a dragon have written this?; Tiny writing.;Smells disgusting.', NULL, NULL, NULL, NULL, 1, 'I can loot another from the caverns beneath the Baxtorian Lake.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11357, 'Ancient page', 'Could a dragon have written this?; Tiny writing.;Smells disgusting.', NULL, NULL, NULL, NULL, 1, 'I can loot another from the caverns beneath the Baxtorian Lake.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11358, 'Ancient page', 'Could a dragon have written this?; Tiny writing.;Smells disgusting.', NULL, NULL, NULL, NULL, 1, 'I can loot another from the caverns beneath the Baxtorian Lake.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11359, 'Ancient page', 'Could a dragon have written this?; Tiny writing.;Smells disgusting.', NULL, NULL, NULL, NULL, 1, 'I can loot another from the caverns beneath the Baxtorian Lake.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11360, 'Ancient page', 'Could a dragon have written this?; Tiny writing.;Smells disgusting.', NULL, NULL, NULL, NULL, 1, 'I can loot another from the caverns beneath the Baxtorian Lake.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11361, 'Ancient page', 'Could a dragon have written this?; Tiny writing.;Smells disgusting.', NULL, NULL, NULL, NULL, 1, 'I can loot another from the caverns beneath the Baxtorian Lake.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11362, 'Ancient page', 'Could a dragon have written this?; Tiny writing.;Smells disgusting.', NULL, NULL, NULL, NULL, 1, 'I can loot another from the caverns beneath the Baxtorian Lake.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11363, 'Ancient page', 'Could a dragon have written this?; Tiny writing.;Smells disgusting.', NULL, NULL, NULL, NULL, 1, 'I can loot another from the caverns beneath the Baxtorian Lake.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11364, 'Ancient page', 'Could a dragon have written this?; Tiny writing.;Smells disgusting.', NULL, NULL, NULL, NULL, 1, 'I can loot another from the caverns beneath the Baxtorian Lake.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11365, 'Ancient page', 'Could a dragon have written this?; Tiny writing.;Smells disgusting.', NULL, NULL, NULL, NULL, 1, 'I can loot another from the caverns beneath the Baxtorian Lake.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11366, 'Ancient page', 'Could a dragon have written this?; Tiny writing.;Smells disgusting.', NULL, NULL, NULL, NULL, 1, 'I can loot another from the caverns beneath the Baxtorian Lake.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11367, 'Bronze hasta', 'A bronze-tipped, one-handed hasta.', 1, NULL, 10, 15, NULL, NULL, NULL, 204, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '5,5,5,0,0,-1,-1,-1,0,-1,0,6,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11368, 'Bronze hasta', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 204, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11369, 'Iron hasta', 'An iron-tipped, one-handed hasta.', 1, NULL, 36, 54, NULL, NULL, NULL, 25, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '8,8,8,0,0,-2,-2,-2,0,-2,0,10,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11370, 'Iron hasta', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11371, 'Steel hasta', 'A steel-tipped, one-handed hasta.', 1, NULL, 130, 195, NULL, NULL, NULL, 93, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '12,12,12,0,0,-3,-3,-3,0,-3,0,12,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, '{0,5}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11372, 'Steel hasta', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 93, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11373, 'Mithril hasta', 'A mithril-tipped, one-handed hasta.', 1, NULL, 338, 507, NULL, NULL, NULL, 357, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '17,17,17,0,0,-5,-5,-4,0,-5,0,18,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, '{0,20}', 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11374, 'Mithril hasta', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 357, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11375, 'Adamant hasta', 'An adamant-tipped, one-handed hasta.', 1, NULL, 832, 1248, NULL, NULL, NULL, 1095, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '24,24,24,0,0,-6,-7,-5,0,-6,0,28,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, '{0,30}', 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11376, 'Adamant hasta', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1095, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11377, 'Rune hasta', 'A rune-tipped, one-handed hasta.', 1, NULL, 8320, 12480, NULL, NULL, NULL, 12300, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '36,36,36,0,0,-10,-10,-9,0,-10,0,42,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, '{0,40}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11378, 'Rune hasta', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 12300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11379, 'Bronze hasta(p)', 'A bronze-tipped, one-handed hasta.', 1, NULL, 10, 15, NULL, NULL, NULL, 290, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '5,5,5,0,0,-1,-1,-1,0,-1,0,6,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11380, 'Bronze hasta(p)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 290, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11381, 'Bronze hasta(kp)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, NULL, NULL, '5,5,5,0,0,-1,-1,-1,0,-1,0,6,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11382, 'Bronze hasta(p+)', 'A bronze-tipped, one-handed hasta.', 1, NULL, 10, 15, NULL, NULL, NULL, 775, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '5,5,5,0,0,-1,-1,-1,0,-1,0,6,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11383, 'Bronze hasta(p+)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 775, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11384, 'Bronze hasta(p++)', 'A bronze-tipped, one-handed hasta.', 1, NULL, 10, 15, NULL, NULL, NULL, 8974, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '5,5,5,0,0,-1,-1,-1,0,-1,0,6,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11385, 'Bronze hasta(p++)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8974, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11386, 'Iron hasta(p)', 'An iron-tipped, one-handed hasta.', 1, NULL, 36, 54, NULL, NULL, NULL, 99, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '8,8,8,0,0,-2,-2,-2,0,-2,0,10,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11387, 'Iron hasta(p)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 99, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11388, 'Iron hasta(kp)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, NULL, NULL, '8,8,8,0,0,-2,-2,-2,0,-2,0,10,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11389, 'Iron hasta(p+)', 'An iron-tipped, one-handed hasta.', 1, NULL, 36, 54, NULL, NULL, NULL, 584, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '8,8,8,0,0,-2,-2,-2,0,-2,0,10,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11390, 'Iron hasta(p+)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 584, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11391, 'Iron hasta(p++)', 'An iron-tipped, one-handed hasta.', 1, NULL, 36, 54, NULL, NULL, NULL, 8783, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '8,8,8,0,0,-2,-2,-2,0,-2,0,10,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11392, 'Iron hasta(p++)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8783, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11393, 'Steel hasta(p)', 'A steel-tipped, one-handed hasta.', 1, NULL, 130, 195, NULL, NULL, NULL, 151, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '12,12,12,0,0,-3,-3,-3,0,-3,0,12,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, '{0,5}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11394, 'Steel hasta(p)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 151, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11395, 'Steel hasta(kp)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, NULL, NULL, '12,12,12,0,0,-3,-3,-3,0,-3,0,12,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, '{0,5}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11396, 'Steel hasta(p+)', 'A steel-tipped, one-handed hasta.', 1, NULL, 130, 195, NULL, NULL, NULL, 636, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '12,12,12,0,0,-3,-3,-3,0,-3,0,12,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, '{0,5}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11397, 'Steel hasta(p+)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 636, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11398, 'Steel hasta(p++)', 'A steel-tipped, one-handed hasta.', 1, NULL, 130, 195, NULL, NULL, NULL, 8835, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '12,12,12,0,0,-3,-3,-3,0,-3,0,12,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, '{0,5}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11399, 'Steel hasta(p++)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8835, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11400, 'Mithril hasta(p)', 'A mithril-tipped, one-handed hasta.', 1, NULL, 338, 507, NULL, NULL, NULL, 440, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '17,17,17,0,0,-5,-5,-4,0,-5,0,18,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, '{0,20}', 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11401, 'Mithril hasta(p)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 440, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11402, 'Mithril hasta(kp)', 'A mithril-tipped, one-handed hasta.', 1, NULL, 338, 507, NULL, NULL, NULL, 353, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '17,17,17,0,0,-5,-5,-4,0,-5,0,18,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, '{0,20}', 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11403, 'Mithril hasta(p+)', 'A mithril-tipped, one-handed hasta.', 1, NULL, 338, 507, NULL, NULL, NULL, 925, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '17,17,17,0,0,-5,-5,-4,0,-5,0,18,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, '{0,20}', 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11404, 'Mithril hasta(p+)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 925, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11405, 'Mithril hasta(p++)', 'A mithril-tipped, one-handed hasta.', 1, NULL, 338, 507, NULL, NULL, NULL, 8711, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '17,17,17,0,0,-5,-5,-4,0,-5,0,18,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, '{0,20}', 1.8, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11406, 'Mithril hasta(p++)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8711, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11407, 'Adamant hasta(p)', 'An adamant-tipped, one-handed hasta.', 1, NULL, 832, 1248, NULL, NULL, NULL, 1154, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '24,24,24,0,0,-6,-7,-5,0,-6,0,28,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, '{0,30}', 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11408, 'Adamant hasta(p)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1154, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11409, 'Adamant hasta(kp)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, NULL, NULL, '24,24,24,0,0,-6,-7,-5,0,-6,0,28,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, '{0,30}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11410, 'Adamant hasta(p+)', 'An adamant-tipped, one-handed hasta.', 1, NULL, 832, 1248, NULL, NULL, NULL, 1639, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '24,24,24,0,0,-6,-7,-5,0,-6,0,28,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, '{0,30}', 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11411, 'Adamant hasta(p+)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1639, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11412, 'Adamant hasta(p++)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9388, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, NULL, NULL, '24,24,24,0,0,-6,-7,-5,0,-6,0,28,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, '{0,30}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11413, 'Adamant hasta(p++)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 9388, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11414, 'Rune hasta(p)', 'A rune-tipped, one-handed hasta.', 1, NULL, 8320, 12480, NULL, NULL, NULL, 12300, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '36,36,36,0,0,-10,-10,-9,0,-10,0,42,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, '{0,40}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11415, 'Rune hasta(p)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 12300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11416, 'Rune hasta(kp)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, NULL, NULL, '36,36,36,0,0,-10,-10,-9,0,-10,0,42,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, '{0,40}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11417, 'Rune hasta(p+)', 'A rune-tipped, one-handed hasta.', 1, NULL, 8320, 12480, NULL, NULL, NULL, 12200, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '36,36,36,0,0,-10,-10,-9,0,-10,0,42,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11418, 'Rune hasta(p+)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 12200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11419, 'Rune hasta(p++)', 'A rune-tipped, one-handed hasta.', 1, NULL, 8320, 12480, NULL, NULL, NULL, 15500, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '36,36,36,0,0,-10,-10,-9,0,-10,0,42,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, '{0,40}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11420, 'Rune hasta(p++)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 15500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11429, 'Attack mix(2)', 'One/Two dose(s) of fishy attack potion', 1, NULL, 3, 5, NULL, NULL, NULL, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11430, 'Attack mix(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11431, 'Attack mix(1)', 'One/Two dose(s) of fishy attack potion', 1, NULL, 3, 5, NULL, NULL, NULL, 19, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11432, 'Attack mix(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 19, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11433, 'Antipoison mix(2)', 'Two doses of fishy antipoison potion.', 1, NULL, 86, 129, NULL, NULL, NULL, 455, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11434, 'Antipoison mix(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 455, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11435, 'Antipoison mix(1)', 'Two doses of fishy antipoison potion.', 1, NULL, 86, 129, NULL, NULL, NULL, 608, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11436, 'Antipoison mix(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 608, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11437, 'Relicym\'s mix(2)', '2 dose: Two doses of fishy Relicym\'s balm.', 1, NULL, 60, 90, NULL, NULL, NULL, 264, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11438, 'Relicym\'s mix(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 264, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11439, 'Relicym\'s mix(1)', '2 dose: Two doses of fishy Relicym\'s balm.', 1, NULL, 60, 90, NULL, NULL, NULL, 131, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11440, 'Relicym\'s mix(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 131, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11441, 'Strength mix(1)', 'One/two doses of fishy strength potion.', 1, NULL, 5, 7, NULL, NULL, NULL, 159, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11442, 'Strength mix(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 159, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11443, 'Strength mix(2)', 'One/two doses of fishy strength potion.', 1, NULL, 5, 7, NULL, NULL, NULL, 164, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11444, 'Strength mix(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 164, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11445, 'Combat mix(2)', 'One/two doses of a fishy Combat potion', 1, NULL, 42, 63, NULL, NULL, NULL, 366, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11446, 'Combat mix(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 366, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11447, 'Combat mix(1)', 'One/two doses of a fishy Combat potion', 1, NULL, 42, 63, NULL, NULL, NULL, 328, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11448, 'Combat mix(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 328, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11449, 'Restore mix(2)', 'One/two dose(s) of fishy restore potion.', 1, NULL, 26, 39, NULL, NULL, NULL, 17, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11450, 'Restore mix(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 17, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11451, 'Restore mix(1)', 'One/two dose(s) of fishy restore potion.', 1, NULL, 26, 39, NULL, NULL, NULL, 24, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11452, 'Restore mix(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 24, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11453, 'Energy mix(2)', 'One/two doses of fishy energy potion.', 1, NULL, 28, 43, NULL, NULL, NULL, 248, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11454, 'Energy mix(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 248, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11455, 'Energy mix(1)', 'One/two doses of fishy energy potion.', 1, NULL, 28, 43, NULL, NULL, NULL, 212, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11456, 'Energy mix(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 212, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11457, 'Defence mix(2)', 'One/two doses of a fishy defence potion', 1, NULL, 36, 54, NULL, NULL, NULL, 887, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11458, 'Defence mix(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 887, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11459, 'Defence mix(1)', 'One/two doses of a fishy defence potion', 1, NULL, 36, 54, NULL, NULL, NULL, 780, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11460, 'Defence mix(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 780, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11461, 'Agility mix(2)', 'X doses of a fishy agility potion', 1, NULL, NULL, NULL, NULL, NULL, NULL, 388, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11462, 'Agility mix(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 388, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11463, 'Agility mix(1)', 'X doses of a fishy agility potion', 1, NULL, NULL, NULL, NULL, NULL, NULL, 459, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11464, 'Agility mix(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 459, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11465, 'Prayer mix(2)', 'One/two dose(s) of a fishy Prayer potion.', 1, NULL, 46, 69, NULL, NULL, NULL, 2761, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11466, 'Prayer mix(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2761, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11467, 'Prayer mix(1)', 'One/two dose(s) of a fishy Prayer potion.', 1, NULL, 46, 69, NULL, NULL, NULL, 1857, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11468, 'Prayer mix(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1857, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11469, 'Superattack mix(2)', 'one/two doses of fishy super attack potion', 1, NULL, 54, 81, NULL, NULL, NULL, 375, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11470, 'Superattack mix(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 375, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11471, 'Superattack mix(1)', 'one/two doses of fishy super attack potion', 1, NULL, 54, 81, NULL, NULL, NULL, 516, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11472, 'Superattack mix(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 516, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11473, 'Anti-p supermix(2)', 'One/Two dose(s) of fishy super antipoison potion.', 1, NULL, 86, 129, NULL, NULL, NULL, 613, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11474, 'Anti-p supermix(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 613, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11475, 'Anti-p supermix(1)', 'One/Two dose(s) of fishy super antipoison potion.', 1, NULL, 86, 129, NULL, NULL, NULL, 1119, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11476, 'Anti-p supermix(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1119, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11477, 'Fishing mix(2)', 'One/Two Doses of fishy fishing potion.', 1, NULL, 60, 90, NULL, NULL, NULL, 123, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11478, 'Fishing mix(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 123, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11479, 'Fishing mix(1)', 'One/Two Doses of fishy fishing potion.', 1, NULL, 60, 90, NULL, NULL, NULL, 87, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11480, 'Fishing mix(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 87, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11481, 'Sup. energy mix(2)', 'One/Two doses of fishy super energy potion.', 1, NULL, 64, 96, NULL, NULL, NULL, 1062, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11482, 'Sup. energy mix(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1062, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11483, 'Sup. energy mix(1)', 'One/Two doses of fishy super energy potion.', 1, NULL, 64, 96, NULL, NULL, NULL, 562, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11484, 'Sup. energy mix(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 562, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11485, 'Sup. str. mix(2)', 'One/Two doses of fishy Super strength potion.', 1, NULL, 66, 99, NULL, NULL, NULL, 955, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11486, 'Sup. str. mix(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 955, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11487, 'Sup. str. mix(1)', 'One/Two doses of fishy Super strength potion.', 1, NULL, 66, 99, NULL, NULL, NULL, 1040, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11488, 'Sup. str. mix(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1040, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11489, 'Magic ess. mix(2)', 'One/Two doses of fishy Magic essence potion.', 1, NULL, 72, 108, NULL, NULL, NULL, 808, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11490, 'Magic ess. mix(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 808, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11491, 'Magic ess. mix(1)', 'One/Two doses of fishy Magic essence potion.', 1, NULL, 72, 108, NULL, NULL, NULL, 447, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11492, 'Magic ess. mix(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 447, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11493, 'Sup. restore mix(2)', 'One/Two doses of fishy super restore potion.', 1, NULL, 66, 99, NULL, NULL, NULL, 3670, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11494, 'Sup. restore mix(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3670, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11495, 'Sup. restore mix(1)', 'One/Two doses of fishy super restore potion.', 1, NULL, 66, 99, NULL, NULL, NULL, 3104, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11496, 'Sup. restore mix(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3104, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11497, 'Sup. def. mix(2)', 'One/two doses of fishy super defence potion', 1, NULL, 79, 118, NULL, NULL, NULL, 38, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11498, 'Sup. def. mix(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 38, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11499, 'Sup. def. mix(1)', 'One/two doses of fishy super defence potion', 1, NULL, 79, 118, NULL, NULL, NULL, 66, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11500, 'Sup. def. mix(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 66, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11501, 'Antidote+ mix(2)', 'One/Two doses of fishy extra strength antidote potion.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1909, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11502, 'Antidote+ mix(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1909, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11503, 'Antidote+ mix(1)', 'One/Two doses of fishy extra strength antidote potion.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1330, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11504, 'Antidote+ mix(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1330, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11505, 'Antifire mix(2)', 'One/Two dose(s) of fishy anti-fire breath potion.', 1, NULL, 79, 118, NULL, NULL, NULL, 2048, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11506, 'Antifire mix(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2048, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11507, 'Antifire mix(1)', 'One/Two dose(s) of fishy anti-fire breath potion.', 1, NULL, 79, 118, NULL, NULL, NULL, 1444, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11508, 'Antifire mix(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1444, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11509, 'Ranging mix(2)', 'One/Two doses of fishy ranging potion.', 1, NULL, 86, 129, NULL, NULL, NULL, 2879, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11510, 'Ranging mix(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2879, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11511, 'Ranging mix(1)', 'One/Two doses of fishy ranging potion.', 1, NULL, 86, 129, NULL, NULL, NULL, 1880, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11512, 'Ranging mix(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1880, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11513, 'Magic mix(2)', 'One/Two doses of fishy magic potion.', 1, NULL, 80, 120, NULL, NULL, NULL, 1022, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11514, 'Magic mix(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1022, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11515, 'Magic mix(1)', 'One/Two doses of fishy magic potion.', 1, NULL, 80, 120, NULL, NULL, NULL, 1323, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11516, 'Magic mix(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1323, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11517, 'Hunting mix(2)', 'Doses of fishy hunting potion', 1, NULL, 3, 5, NULL, NULL, NULL, 146, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11518, 'Hunting mix(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 146, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11519, 'Hunting mix(1)', 'Doses of fishy hunting potion', 1, NULL, 3, 5, NULL, NULL, NULL, 87, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11520, 'Hunting mix(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 87, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11521, 'Zamorak mix(2)', 'One/Two doses of fishy Zamorak potion.', 1, NULL, 60, 90, NULL, NULL, NULL, 665, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11522, 'Zamorak mix(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 665, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11523, 'Zamorak mix(1)', 'One/Two doses of fishy Zamorak potion.', 1, NULL, 60, 90, NULL, NULL, NULL, 339, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11524, 'Zamorak mix(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 339, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(11525, 'Wimpy feather', 'More fluff than feather.', 1, NULL, 10, 15, NULL, NULL, NULL, 325, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(11640, 'Book of knowledge', 'Educate yourself.', NULL, NULL, NULL, NULL, NULL, 'If you drop this book it will be destroyed. You cannot replace it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11655, 'Astronomy book', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11656, 'Glassblowing book', 'A book that explains the art of crafting items from glass.\"', 1, NULL, 1, 1, NULL, NULL, NULL, 278, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11657, 'Glassblowing book', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 278, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11663, 'Void mage helm', 'A mage helm from the order of the Void Knights.', NULL, NULL, 3940, 5910, 1, NULL, 200, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,0,0,6,6,6,6,6,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11664, 'Void ranger helm', 'A ranger helm from the order of the Void Knights', NULL, NULL, 3940, 5910, NULL, NULL, 200, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,0,0,6,6,6,6,6,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3.6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11665, 'Void melee helm', 'A melee helm from the order of the Void Knights.', NULL, NULL, 3940, 5910, NULL, NULL, 200, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,0,0,6,6,6,6,6,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11666, 'Void seal(8)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '0,0,0,0,0,1,1,1,1,1,1,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11667, 'Void seal(7)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '0,0,0,0,0,1,1,1,1,1,1,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11668, 'Void seal(6)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '0,0,0,0,0,1,1,1,1,1,1,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(11669, 'Void seal(5)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '0,0,0,0,0,1,1,1,1,1,1,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11670, 'Void seal(4)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '0,0,0,0,0,1,1,1,1,1,1,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11671, 'Void seal(3)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '0,0,0,0,0,1,1,1,1,1,1,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11672, 'Void seal(2)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '0,0,0,0,0,1,1,1,1,1,1,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11673, 'Void seal(1)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, '0,0,0,0,0,1,1,1,1,1,1,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11674, 'Void mage helm', 'A mage helm from the order of the Void Knights.', NULL, NULL, 3940, 5910, 1, NULL, 200, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,0,0,6,6,6,6,6,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11675, 'Void ranger helm', 'A ranger helm from the order of the Void Knights', NULL, NULL, 3940, 5910, NULL, NULL, 200, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,0,0,6,6,6,6,6,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3.6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11676, 'Void melee helm', 'A melee helm from the order of the Void Knights.', NULL, NULL, 3940, 5910, NULL, NULL, 200, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,0,0,6,6,6,6,6,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11677, 'Explorer\'s notes', '\"Beyond Trollheim\" by Nestor Peregrine.', NULL, NULL, 2, 3, 1, 'I can find another book in the Keldagrim library.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11678, 'Black knight helm', 'A black helm, too small for your head', NULL, NULL, NULL, NULL, 1, 'You\'ll need to visit the Sinclair Mansion to get another one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11679, 'Antique lamp', 'I wonder what happens if I rub it.', NULL, NULL, NULL, NULL, 1, 'Are you sure you want to destroy the lamp? You won\'t be able to get another one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11680, 'Address form', 'A change of address form.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11681, 'Scrap paper', 'It has something written on it.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11682, 'Hair clip', 'I could use this to pick the lock.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11686, 'Godsword shards', 'Godsword shards 1 and 2.Godsword shards 2 and 3.Godsword shards 1 and 3.', 1, NULL, 200000, 300000, NULL, NULL, NULL, 331300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11687, 'Godsword shards', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 331300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11688, 'Godsword shards', 'Godsword shards 1 and 2.Godsword shards 2 and 3.Godsword shards 1 and 3.', 1, NULL, 200000, 300000, NULL, NULL, NULL, 342100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11689, 'Godsword shards', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 342100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11690, 'Godsword blade', 'The blade for the ultimate weapon.', 1, NULL, 300000, 450000, NULL, NULL, NULL, 466800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7.5, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11691, 'Godsword blade', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 466800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11692, 'Godsword shards', 'Godsword shards 1 and 2.Godsword shards 2 and 3.Godsword shards 1 and 3.', 1, NULL, 200000, 300000, NULL, NULL, NULL, 348500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11693, 'Godsword shards', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 348500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11694, 'Armadyl godsword', 'A beautiful, heavy sword.', 1, 1, 500000, 750000, NULL, NULL, NULL, 28000000, NULL, NULL, NULL, 7047, 7040, 7046, 7039, 7045, 7043, 7044, 124, 3, 6, NULL, '0,132,80,0,0,0,0,0,0,0,0,132,8,0,0', 7, 1, 1, '7041,7041,7048,7049', 7050, '3846,0,0,0', '{0,75}', 10, 10, NULL, 1, NULL, NULL, NULL, 0), +(11695, 'Armadyl godsword', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 28000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11696, 'Bandos godsword', 'A brutally heavy sword.', 1, 1, 500000, 750000, NULL, NULL, NULL, 3700000, NULL, NULL, NULL, 7047, 7040, 7046, 7039, 7045, 7043, 7044, 124, 3, 6, NULL, '0,132,80,0,0,0,0,0,0,0,0,132,8,0,0', 7, 1, 1, '7041,7041,7048,7049', 7050, '3846,0,0,0', '{0,75}', 10, 10, NULL, 1, NULL, NULL, NULL, 0), +(11697, 'Bandos godsword', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3700000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11698, 'Saradomin godsword', 'A gracious, heavy sword.', 1, 1, 500000, 750000, NULL, NULL, NULL, 22000000, NULL, NULL, NULL, 7047, 7040, 7046, 7039, 7045, 7043, 7044, 124, 3, 6, NULL, '0,132,80,0,0,0,0,0,0,0,0,132,8,0,0', 7, 1, 1, '7041,7041,7048,7049', 7050, '3846,0,0,0', '{0,75}', 10, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11699, 'Saradomin godsword', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 22000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11700, 'Zamorak godsword', 'A terrifying, heavy sword.', 1, 1, 500000, 750000, NULL, NULL, NULL, 6100000, NULL, NULL, NULL, 7047, 7040, 7046, 7039, 7045, 7043, 7044, 124, 3, 6, NULL, '0,132,80,0,0,0,0,0,0,0,0,132,8,0,0', 7, 1, 1, '7041,7041,7048,7049', 7050, '3846,0,0,0', '{0,75}', 10, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11701, 'Zamorak godsword', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 6100000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11702, 'Armadyl hilt', 'Brimming with potential.', 1, NULL, 200000, 300000, NULL, NULL, NULL, 30600000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.5, 10, NULL, 1, NULL, NULL, NULL, 0), +(11703, 'Armadyl hilt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 30600000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11704, 'Bandos hilt', 'Brimming with potential.', 1, NULL, 200000, 300000, NULL, NULL, NULL, 3300000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.5, 10, NULL, 1, NULL, NULL, NULL, 0), +(11705, 'Bandos hilt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3300000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11706, 'Saradomin hilt', 'Brimming with potential.', 1, NULL, 200000, 300000, NULL, NULL, NULL, 24900000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.5, 10, NULL, 1, NULL, NULL, NULL, 0), +(11707, 'Saradomin hilt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 24900000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11708, 'Zamorak hilt', 'Brimming with potential.', 1, NULL, 200000, 300000, NULL, NULL, NULL, 6100000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.5, 10, NULL, 1, NULL, NULL, NULL, 0), +(11709, 'Zamorak hilt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 6100000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11710, 'Godsword shard 1', 'Part of the Godsword blade.', 1, NULL, 100000, 150000, NULL, NULL, NULL, 150200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11711, 'Godsword shard 1', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 150200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11712, 'Godsword shard 2', 'Part of the Godsword blade.', 1, NULL, 100000, 150000, 1, NULL, NULL, 149100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11713, 'Godsword shard 2', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 149100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11714, 'Godsword shard 3', 'Part of the Godsword blade.', 1, NULL, 100000, 150000, NULL, NULL, NULL, 149800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11715, 'Godsword shard 3', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 149800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11716, 'Zamorakian spear', 'An evil spear.', 1, 1, 40000, 60000, NULL, NULL, NULL, 5400000, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 4, NULL, '85,65,65,0,0,13,13,12,0,13,0,75,2,0,0', 14, 1, 1, '2080,2081,2082,2080', 2079, NULL, '{0,70}', 3, 10, NULL, 1, NULL, NULL, NULL, 0), +(11717, 'Zamorakian spear', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5400000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11718, 'Armadyl helmet', 'A helmet of great craftmanship.', 1, 1, 8000, 12000, NULL, NULL, NULL, 4100000, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,5,2', '-5,-5,-5,-5,10,6,8,10,10,8,12,0,1,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{4,70}', 0.5, 1, NULL, 1, NULL, NULL, NULL, 0), +(11719, 'Armadyl helmet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4100000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, 0), +(11720, 'Armadyl chestplate', 'A chestplate of great craftsmanship', 1, 1, 24000, 36000, NULL, NULL, NULL, 14800000, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '0,10,5', '-7,-7,-7,-15,33,56,48,61,70,57,52,0,1,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{4,70}', 4, 1, NULL, 1, NULL, NULL, NULL, 0), +(11721, 'Armadyl chestplate', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 14800000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, 0), +(11722, 'Armadyl plateskirt', 'A rune plateskirt in the colours of Armadyl.', 1, 1, 25600, 38400, NULL, NULL, NULL, 14800000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '2,0,4', '-6,-6,-6,-10,20,32,26,34,40,33,25,0,1,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{4,70}', 8, 2, NULL, 1, NULL, NULL, NULL, 0), +(11723, 'Armadyl plateskirt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 14800000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11724, 'Bandos chestplate', 'A sturdy chestplate.', 1, 1, 106000, 159000, NULL, NULL, NULL, 14700000, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '4,0,9', '0,0,0,-15,-10,98,93,105,-6,133,52,4,1,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,65}', 12, 1, NULL, 1, NULL, NULL, NULL, 0), +(11725, 'Bandos chestplate', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 14700000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, 0), +(11726, 'Bandos tassets', 'A sturdy pair of tassets.', 1, 1, 109000, 163500, NULL, NULL, NULL, 15200000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '3,0,6', '0,0,0,-21,-7,71,63,66,-4,93,25,2,1,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,65}', 8, 1, NULL, 1, NULL, NULL, NULL, 0), +(11727, 'Bandos tassets', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 15200000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, 0), +(11728, 'Bandos boots', 'Some sturdy boots', 1, 1, 10000, 15000, NULL, NULL, NULL, 111700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,-5,-3,17,18,19,0,0,15,0,1,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,65}', 6, 1, NULL, 1, NULL, NULL, NULL, 0), +(11729, 'Bandos boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 111700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, 0), +(11730, 'Saradomin sword', 'The incredible blade of an Icyene.', 1, 1, 52000, 78000, NULL, NULL, NULL, 5300000, NULL, NULL, NULL, 7047, 7040, 7046, 7039, 7045, 7043, 7044, 124, 3, 4, NULL, '0,82,60,0,0,0,0,0,0,0,0,82,2,0,0', 7, 1, 1, '7041,7041,7048,7049', 7050, '3846,0,0,0', '{0,70}', 3, 10, NULL, 1, NULL, NULL, NULL, 0), +(11731, 'Saradomin sword', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5300000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11732, 'Dragon boots', 'These will protect my feet.', 1, 1, 8000, 12000, NULL, NULL, NULL, 95400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, '0,0,0,-3,-1,16,17,18,0,0,15,4,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}', 1, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11733, 'Dragon boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 95400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11734, 'Knight\'s notes', 'A scroll for Sir Tiffy. The wax seal is broken. / Before reading the scroll: A scroll for Sir Tiffy. It is sealed with a wax insignia.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11735, 'Knight\'s notes', 'A scroll for Sir Tiffy. The wax seal is broken. / Before reading the scroll: A scroll for Sir Tiffy. It is sealed with a wax insignia.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11736, 'Steam battlestaff', 'It\'s a slightly magical stick.', 1, NULL, 6800, 10200, NULL, NULL, NULL, 231300, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '7,-1,28,10,0,2,3,1,10,0,0,35,0,0,0', 1, NULL, NULL, NULL, NULL, '2555,0,0,0', '{0,30}-{6,30}', 2, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11737, 'Steam battlestaff', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 231300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11738, 'Mystic steam staff', 'It\'s a slightly magical stick.', 1, NULL, 18000, 27000, NULL, NULL, NULL, 267600, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 5, NULL, '10,-1,40,10,0,2,3,1,10,0,0,50,0,0,0', 1, NULL, NULL, NULL, NULL, '2555,0,0,0', '{0,40}-{6,40}', 2, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11739, 'Mystic steam staff', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 267600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11741, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11743, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11745, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11747, 'A key to a chest', 'This probably opens a chest in Golrie\'s caves. (Path of Glophrie)', NULL, NULL, NULL, NULL, 1, 'There may be another in the chest where you found this.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11748, 'Strongroom key', 'This opens the door into Golrie\'s strongroom. (Path of Glophrie)', NULL, NULL, NULL, NULL, 1, 'There may be another in the chest where you found this.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11749, 'Crystal chime', 'It makes a sound.', NULL, NULL, 4, 6, 1, 'Maybe Brimstail will have another crystal seed you could grow into a chime.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11750, 'Yewnock\'s notes', 'Notes written by Yewnock while copying Oaknock\'s machine.', NULL, NULL, NULL, NULL, 1, 'There may be another in the chest where you found this.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11753, 'Antique lamp', 'I wonder what happens if I rub it.', NULL, NULL, NULL, NULL, 1, 'Are you sure you want to destroy the lamp? You won\'t be able to get another one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11754, 'Antique lamp', 'I wonder what happens if I rub it.', NULL, NULL, NULL, NULL, 1, 'Are you sure you want to destroy the lamp? You won\'t be able to get another one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11755, 'Antique lamp', 'I wonder what happens if I rub it.', NULL, NULL, NULL, NULL, 1, 'Are you sure you want to destroy the lamp? You won\'t be able to get another one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11756, 'Varrock armour 1', 'Varrock Smithing armour.', NULL, NULL, NULL, NULL, 1, 'You will need to get a new set of armour from Rat Burgiss if you destroy this one.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,-30,-10,15,14,9,-6,14,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11757, 'Varrock armour 2', 'Varrock smithing armour.', NULL, NULL, NULL, NULL, 1, 'You will need to get a new set of armour from Reldo if you destroy this one.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,-30,-10,21,20,12,-6,20,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11758, 'Varrock armour 3', 'Varrock smithing armour.', NULL, NULL, NULL, NULL, 1, 'You will need to get a new set of armour from Vannaka if you destroy this one.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, '0,0,0,-30,-10,32,31,24,-6,31,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11760, 'Logs', 'A number of wooden logs.', 1, NULL, 1, 2, NULL, NULL, 4, 124, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11761, 'Locked diary', 'A locked/unlocked diary.', NULL, NULL, NULL, NULL, 1, 'You can get the diary again from Sandy\'s desk.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11762, 'Unlocked diary', 'A locked/unlocked diary.', NULL, NULL, NULL, NULL, 1, 'You can get the diary again from Sandy\'s desk.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11764, 'Foot', 'A wizard\'s severed foot. You can tell by the robes.', NULL, NULL, NULL, NULL, 1, 'You can get the foot again from the creatures in the Jade Vine.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11766, 'Left arm', '\"A wizard\'s severed arm. You can tell by the robes.\"', NULL, NULL, NULL, NULL, 1, 'You can get the arm again from the creatures in the Jade Vine.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11767, 'Right arm', 'A wizard\'s severed arm. You can tell by the robes.', NULL, NULL, NULL, NULL, 1, 'You can get the arm again from the creatures in the Jade Vine.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11768, 'Left leg', 'A wizard\'s severed leg. You can tell by the robes.', NULL, NULL, NULL, NULL, 1, 'You can get the leg again from the creatures in the Jade Vine.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11769, 'Right leg', 'A wizard\'s severed leg. You can tell by the robes.', NULL, NULL, NULL, NULL, 1, 'You can get the leg again from the creatures in the Jade Vine.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11770, 'Root cutting', 'A root cutting.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11771, 'Root cutting', 'A root cutting.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11772, 'Root cutting', 'A root cutting.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11773, 'Root cutting', 'A root cutting.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11774, 'Root cutting', 'A root cutting.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11775, 'Wilted cutting', 'A floppy root cutting. Quite dead.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11776, 'Potted root', 'A potted root.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11777, 'Sealed pot', 'This sealed pot contains your vine cutting - hopefully still alive.', NULL, NULL, NULL, NULL, 1, 'You can get the sealed pot back by visiting Garth, the farmer on Karamja.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11778, 'Jade vine seed', 'A large seed.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11780, 'The grim reaper\'s diary', 'Surely this holds many a dark tale...', NULL, NULL, NULL, NULL, 1, 'You\'ll have to find another from the Grim Reaper\'s house.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11781, 'Grim\'s robe', 'Some of the Grim Reaper\'s garb.', NULL, NULL, NULL, NULL, 1, 'Another can be found in the Grim Reaper\'s house.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 0, NULL, NULL, NULL, NULL, 0), +(11782, 'Last will and testament', 'Someone\'s Last Will and Testament.', NULL, NULL, NULL, NULL, 1, 'You\'ll have to find another from the Grim Reaper\'s house.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, 0), +(11783, 'Human bones', 'A tasty treat for Muncher.', NULL, NULL, NULL, NULL, 1, 'You\'ll have to find another from the Grim Reaper\'s house.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 0, NULL, NULL, NULL, NULL, 0), +(11784, 'Servant\'s skull', 'Ooooh spooky!', NULL, NULL, NULL, NULL, 1, 'You\'ll have to find another from the Grim Reaper\'s house.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 0, NULL, NULL, NULL, NULL, 0), +(11785, 'Hourglass', 'There\'s not much sand left in the top half...', NULL, NULL, NULL, NULL, 1, 'You can get a replacement from Diango in Draynor Village.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, 0), +(11786, 'Scythe sharpener', 'Used to sharpen the blade of a scythe.', NULL, NULL, NULL, NULL, 1, 'Another can be found in the Grim Reaper\'s house.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 0, NULL, NULL, NULL, NULL, 0), +(11787, 'Human eye', 'That\'s gross. Why am I carrying it around?', NULL, NULL, NULL, NULL, 1, 'You\'ll have to find another from the Grim Reaper\'s house.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, 0), +(11788, '\'voice of doom\' potion', 'A \'Voice of Doom\' potion, used to deepen your voice.', NULL, NULL, NULL, NULL, 1, 'You\'ll have to find another from the Grim Reaper\'s house.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, 0), +(11789, 'Grim reaper hood', 'Allows me to imitate the harbinger of doom, the stealer of souls, the eternal end...', NULL, NULL, NULL, NULL, 1, 'You should be able to get another from Diango in Draynor Village.', NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11790, 'Grim reaper hood', 'Allows me to imitate the harbinger of doom, the stealer of souls, the eternal end...', NULL, NULL, NULL, NULL, 1, 'You should be able to get another from Diango in Draynor Village.', NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11791, 'White goblin mail', 'Armour designed to fit goblins.', NULL, NULL, 16, 24, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11792, 'Grubfoot', 'Smaller than the average goblin. After The Chosen Commander: Oldak\'s new assistant.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11793, 'Zanik', 'See article', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11794, 'Plain of mud sphere', 'Oldak\'s Marvellous Moving-Over-Distance Sphere', NULL, NULL, 8, 12, NULL, NULL, 32, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11795, 'Ekeleshuun key', 'The key you stole from the Ekeleshuun priest.', NULL, NULL, NULL, NULL, 1, 'The Ekeleshuun priest probably has a spare.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11796, 'Narogoshuun key', 'The key you stole from the Narogoshuun priest.', NULL, NULL, NULL, NULL, 1, 'The Narogoshuun priest probably has a spare.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11797, 'Huzamogaarb key', 'The key you stole from the Huzamogaarb priest.', NULL, NULL, NULL, NULL, 1, 'The Huzamogaarb priest probably has a spare.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11798, 'Saragorgak key', 'The key you stole from the Saragorgak priest.', NULL, NULL, NULL, NULL, 1, 'The Saragorgak priest probably has a spare.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11799, 'Horogothgar key', 'The key you stole from the Horogothgar priest.', NULL, NULL, NULL, NULL, 1, 'The Horogothgar priest probably has a spare.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11800, 'Yurkolgokh key', 'The key you stole from the Yurkolgokh priest.', NULL, NULL, NULL, NULL, 1, 'The Yurkolgokh priest probably has a spare.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11802, 'Snothead\'s bone', '\"An ancient goblin bone wrapped in fragments of priestly robes.\"', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11803, 'Snailfeet\'s bone', '\"An ancient goblin bone wrapped in fragments of priestly robes.\"', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11804, 'Mosschin\'s bone', '\"An ancient goblin bone wrapped in fragments of priestly robes.\"', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11805, 'Redeyes\'s bone', '\"An ancient goblin bone wrapped in fragments of priestly robes.\"', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11806, 'Strongbones\'s bone', 'An ancient goblin bone wrapped in fragments of priestly robes.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11807, 'Pharmakos berries', 'You can combine these with a toadflax to make a goblin transformation potion.', NULL, NULL, 4, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11808, 'Whitefish', 'An ugly albino fish.', NULL, NULL, 8, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.25, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11809, 'Goblin potion (4)', 'X doses of goblin transmogrification potion.', NULL, NULL, 5, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11810, 'Goblin potion (3)', 'X doses of goblin transmogrification potion.', NULL, NULL, 5, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11811, 'Goblin potion (2)', 'X doses of goblin transmogrification potion.', NULL, NULL, 5, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11812, 'Goblin potion (1)', 'X doses of goblin transmogrification potion.', NULL, NULL, 5, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11814, 'Bronze armour set (l)', 'Grand Exchange set containing bronze full helm, platebody, legs and kiteshield.', 1, NULL, NULL, NULL, NULL, NULL, 177, 614, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11815, 'Bronze armour set (l)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 614, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11816, 'Bronze armour set (sk)', 'Grand Exchange set containing bronze full helm, platebody, skirt and kiteshield.', 1, NULL, NULL, NULL, NULL, NULL, 177, 938, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0,0,0,-59,-19,27,26,18,-11,25,5,0,0,1,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11817, 'Bronze armour set (sk)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 938, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11818, 'Iron armour set (l)', 'Grand Exchange set containing iron full helm, platebody, legs, and kiteshield.', 1, NULL, NULL, NULL, NULL, NULL, 1022, 1830, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0,0,0,-65,-21,46,44,33,-12,45,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11819, 'Iron armour set (l)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1830, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11820, 'Iron armour set (sk)', 'Grand Exchange set containing iron full helm, platebody, skirt, and kiteshield.', 1, NULL, NULL, NULL, NULL, NULL, 1022, 1711, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0,0,0,-65,-21,46,44,33,-12,45,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11821, 'Iron armour set (sk)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1711, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11822, 'Steel armour set (l)', 'Grand Exchange set containing steel full helm, platebody, legs and kiteshield.', 1, NULL, NULL, NULL, NULL, NULL, 2365, 3646, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0,0,0,-65,-21,71,72,60,-12,70,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{5,1}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11823, 'Steel armour set (l)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3646, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11824, 'Steel armour set (sk)', 'Grand Exchange set containing steel full helm, platebody, skirt and kiteshield.', 1, NULL, NULL, NULL, NULL, NULL, 2365, 3796, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0,0,0,-65,-21,71,72,60,-12,70,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{5,1}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11825, 'Steel armour set (sk)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3796, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11826, 'Black armour set (l)', 'Grand Exchange set containing Black full helm, platebody, legs and kiteshield.', 1, NULL, NULL, NULL, NULL, NULL, 11286, 18900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{10,1}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11827, 'Black armour set (l)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 18900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11828, 'Black armour set (sk)', 'Grand Exchange set containing a black full helm, platebody, skirt and kiteshield.', 1, NULL, NULL, NULL, NULL, NULL, 11286, 14600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2,0,4', '0,0,0,-65,-21,91,92,78,-12,90,27,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{10,1}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11829, 'Black armour set (sk)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 14600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11830, 'Mithril armour set (l)', 'Grand Exchange set containing a mithril full helm, platebody, legs and kiteshield.', 1, NULL, NULL, NULL, NULL, NULL, 15232, 8764, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2,0,6', '0,0,0,-65,-21,101,102,89,-12,97,52,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{20,1}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11831, 'Mithril armour set (l)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8764, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11832, 'Mithril armour set (sk)', 'Grand Exchange set containing a mithril full helm, platebody, skirt and kiteshield.', 1, NULL, NULL, NULL, NULL, NULL, 15232, 7829, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2,0,5', '0,0,0,-65,-21,101,102,89,-12,99,50,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{20,1}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11833, 'Mithril armour set (sk)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7829, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11834, 'Adamant armour set (l)', 'Grand Exchange set containing an adamant full helm, platebody, legs and kiteshield.', 1, NULL, NULL, NULL, NULL, NULL, 28276, 20600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '7,0,15', '0,0,0,-65,-21,144,146,129,-12,142,76,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11835, 'Adamant armour set (l)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 20600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11836, 'Adamant armour set (sk)', 'Grand Exchange set containing an adamant full helm, platebody, skirt and kiteshield.', 1, NULL, NULL, NULL, NULL, NULL, 28276, 21500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '7,0,15', '0,0,0,-65,-21,144,146,129,-12,142,76,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11837, 'Adamant armour set (sk)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 21500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11838, 'Rune armour set (l)', 'Grand Exchange set containing a rune full helm, platebody, legs and kiteshield.', 1, NULL, NULL, NULL, NULL, NULL, 136112, 136300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '9,0,20', '0,0,0,-65,-21,207,209,192,-12,205,102,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11839, 'Rune armour set (l)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 136300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11840, 'Rune armour set (sk)', 'Grand Exchange set containing a rune full helm, platebody, skirt and kiteshield.', 1, NULL, NULL, NULL, NULL, NULL, 136112, 140300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11841, 'Rune armour set (sk)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 140300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11842, 'Dragon chain armour set (l)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4800000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}', NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11843, 'Dragon chain armour set (l)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4800000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(11844, 'Dragon chain armour set (sk)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4600000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}', NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11845, 'Dragon chain armour set (sk)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4600000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11846, 'Barrows - ahrim\'s set', 'Grand Exchange set containing Ahrim\'s robetop, robeskirt, hood, and staff.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 3100000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{0,70}-{1,70}-{6,70}', 2.2, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11847, 'Barrows - ahrim\'s set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3100000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11848, 'Barrows - dharok\'s set', 'Grand Exchange set containing Dharok\'s helm, body, legs and greataxe.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 3100000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{0,70}-{1,70}-{2,70}', 2.2, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11849, 'Barrows - dharok\'s set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3100000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11850, 'Barrows - guthan\'s set', 'Grand Exchange set containing Guthan\'s helm, platebody, chainskirt and warspear.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1600000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{0,70}-{1,70}', 2.2, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11851, 'Barrows - guthan\'s set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1600000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11852, 'Barrows - karil\'s set', 'A Grand Exchange set containing Karil\'s coif, crossbow, leather body, and leather skirt.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 2200000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{4,70}', 2.2, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11853, 'Barrows - karil\'s set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2200000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11854, 'Barrows - torag\'s set', 'Grand Exchange set containing Torag\'s helm, body, legs and hammers.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1100000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{0,70}-{1,70}-{2,70}', 2.2, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11855, 'Barrows - torag\'s set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1100000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11856, 'Barrows - verac\'s set', 'Grand Exchange set containing Verac\'s helm, brassard, plateskirt and flail.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1500000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{0,70}-{1,70}', 2.2, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11857, 'Barrows - verac\'s set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1500000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11858, 'Third age melee set', 'Grand Exchange set containing a helm, body, legs and shield', 1, NULL, NULL, NULL, NULL, NULL, NULL, 388700000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,65}', 2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11859, 'Third age melee set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 388700000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11860, 'Third age ranger set', 'Grand Exchange set containing coif, body, chaps and vambraces.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 87500000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,45}-{4,65}', 2.2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11861, 'Third age ranger set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 87500000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11862, 'Third age mage set', 'Grand Exchange set containing a body, legs, amulet and hat', 1, NULL, NULL, NULL, NULL, NULL, NULL, 163100000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}-{6,65}', 2.2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11863, 'Third age mage set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 163100000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11864, 'Green dragonhide set', 'Grand Exchange set containing body, chaps and vambraces.', 1, NULL, NULL, NULL, NULL, NULL, 9000, 8932, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0,10,5', '0,0,0,-40,31,65,50,73,30,62,58,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,40}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11865, 'Green dragonhide set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8932, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11866, 'Blue dragonhide set', 'Grand Exchange set containing body, chaps and vambraces.', 1, NULL, NULL, NULL, NULL, NULL, 12000, 9062, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,50}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11867, 'Blue dragonhide set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 9062, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11868, 'Red dragonhide set', 'Grand Exchange set containing body, chaps and vambraces.', 1, NULL, NULL, NULL, NULL, NULL, 15000, 12800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,60}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11869, 'Red dragonhide set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 12800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11870, 'Black dragonhide set', 'Grand Exchange set containing body, chaps and vambraces.', 1, NULL, NULL, NULL, NULL, NULL, 40000, 17600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,70}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11871, 'Black dragonhide set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11872, 'Mystic robes set', 'Grand Exchange set containing mystic hat, top, bottoms, gloves, and boots.', 1, NULL, NULL, NULL, NULL, NULL, 169143, 163300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{20,1}-{6,40}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11873, 'Mystic robes set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 163300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11874, 'Infinity robes set', 'Grand Exchange set containing hat, top, bottoms, gloves, and boots', 1, NULL, NULL, NULL, NULL, NULL, NULL, 11000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,25}-{6,50}', 2.2, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11875, 'Infinity robes set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 11000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11876, 'Splitbark armour set', 'Grand Exchange set containing a helm, body, boots, gauntlets and legs.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 107400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13,6,0', '0,0,0,24,-21,74,59,86,32,0,74,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{6,40}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11877, 'Splitbark armour set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 107400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11878, 'Black trimmed armour set (l)', 'Grand Exchange set containing full helm, platebody, legs and kiteshield.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 341200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2,0,4', '0,0,0,-65,-21,91,92,77,-12,90,23,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{10,1}', 2.2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11879, 'Black trimmed armour set (l)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 341200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11880, 'Black trimmed armour set (sk)', 'Grand Exchange set containing full helm, platebody, skirt and kiteshield.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 331600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2,0,4', '0,0,0,-65,-21,91,92,77,-12,90,23,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{10,1}', 2.2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11881, 'Black trimmed armour set (sk)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 331600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11882, 'Black gold-trimmed armour set (l)', 'Grand Exchange set containing full helm, platebody, legs and kiteshield.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1700000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{10,1}', 2.2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11883, 'Black gold-trimmed armour set (l)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1700000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11884, 'Black gold-trimmed armour set (sk)', 'Grand Exchange set containing full helm, platebody, skirt and kiteshield.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1300000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{10,1}', 2.2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11885, 'Black gold-trimmed armour set (sk)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1300000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11886, 'Adamant trimmed armour set (l)', 'Grand Exchange set containing a full helm, platebody, legs and kiteshield.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 318100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 2.2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11887, 'Adamant trimmed armour set (l)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 318100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11888, 'Adamant trimmed armour set (sk)', 'Grand Exchange set containing a full helm, platebody, skirt and kiteshield.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 293700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 2.2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11889, 'Adamant trimmed armour set (sk)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 293700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11890, 'Adamant gold-trimmed armour set (l)', 'Grand Exchange set containing full helm, platebody, legs and kiteshield.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 949400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 2.2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11891, 'Adamant gold-trimmed armour set (l)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 949400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11892, 'Adamant gold-trimmed armour set (sk)', 'Grand Exchange set containing full helm, platebody, skirt and kiteshield.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 880500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 2.2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11893, 'Adamant gold-trimmed armour set (sk)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 880500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11894, 'Rune trimmed armour set (l)', 'Grand Exchange set containing a full helm, platebody, legs and kiteshield.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 702500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '9,0,20', '0,0,0,-65,-21,207,209,192,-12,205,102,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 2.2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11895, 'Rune trimmed armour set (l)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 702500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11896, 'Rune trimmed armour set (sk)', 'Grand Exchange set containing a full helm, platebody, skirt and kiteshield.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 675400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '9,0,20', '0,0,0,-65,-21,207,209,192,-12,205,102,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11897, 'Rune trimmed armour set (sk)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 675400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11898, 'Rune gold-trimmed armour set (l)', 'Grand Exchange set containing a full helm, platebody, legs and kiteshield.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1700000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '9,0,20', '0,0,0,-65,-21,207,209,192,-12,205,102,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 2.2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11899, 'Rune gold-trimmed armour set (l)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1700000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11900, 'Rune gold-trimmed armour set (sk)', 'Grand Exchange set containing a full helm, platebody, skirt and kiteshield.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1400000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '9,0,20', '0,0,0,-65,-21,207,209,192,-12,205,102,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 2.2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11901, 'Rune gold-trimmed armour set (sk)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1400000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11902, 'Enchanted set', 'Grand Exchange set containing hat, robetops and bottoms', 1, NULL, NULL, NULL, NULL, NULL, NULL, 207200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{20,1}-{6,40}', 2.2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11903, 'Enchanted set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 207200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11904, 'Trimmed blue wizard set', 'Grand Exchange set containing hat, robetops and bottoms', 1, NULL, NULL, NULL, NULL, NULL, NULL, 877900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11905, 'Trimmed blue wizard set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 877900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11906, 'Gold-trimmed blue wizard set', 'Grand Exchange set containing hat, robe top and bottom', 1, NULL, NULL, NULL, NULL, NULL, NULL, 3100000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11907, 'Gold-trimmed blue wizard set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3100000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11908, 'Trimmed leather armour set', 'Grand Exchange set containing body and chaps', 1, NULL, NULL, NULL, NULL, NULL, NULL, 85100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{20,4}', 2.2, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(11909, 'Trimmed leather armour set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 85100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(11910, 'Gold-trimmed leather armour set', 'Grand Exchange set containing body and chaps', 1, NULL, NULL, NULL, NULL, NULL, NULL, 217200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{20,4}', 2.2, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(11911, 'Gold-trimmed leather armour set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 217200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(11912, 'Green d\'hide trimmed set', 'Grand Exchange set containing body and chaps', 1, NULL, NULL, NULL, NULL, NULL, NULL, 371600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0,10,5', '0,0,0,-40,31,65,50,73,30,62,58,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,40}', 2.2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11913, 'Green d\'hide trimmed set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 371600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11914, 'Green d\'hide gold-trimmed set', 'Grand Exchange set containing body and chaps', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1600000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0,10,5', '0,0,0,-40,31,65,50,73,30,62,58,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,40}', 2.2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11915, 'Green d\'hide gold-trimmed set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1600000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11916, 'Blue d\'hide trimmed set', 'Grand Exchange set containing body and chaps', 1, NULL, NULL, NULL, NULL, NULL, NULL, 38300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,50}', 2.2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11917, 'Blue d\'hide trimmed set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 38300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11918, 'Blue d\'hide gold-trimmed set', 'Grand Exchange set containing body and chaps.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 50000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,50}', 2.2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11919, 'Blue d\'hide gold-trimmed set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 50000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11920, 'Green d\'hide blessed set', 'Grand Exchange set containing body, chaps, bracers and coif.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 179500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,70}', 2.2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11921, 'Green d\'hide blessed set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 179500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11922, 'Blue d\'hide blessed set', 'Grand Exchange set containing body, chaps, bracers and coif.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 477500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,70}', 2.2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11923, 'Blue d\'hide blessed set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 477500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11924, 'Red d\'hide blessed set', 'Grand Exchange set containing body, chaps, bracers and coif.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 585300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,70}', 2.2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11925, 'Red d\'hide blessed set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 585300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11926, 'Guthix armour set (l)', 'Grand Exchange set containing full helm, platebody, legs and shield.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1100000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '9,0,20', '0,0,0,-65,-21,207,209,192,-12,205,102,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 2.2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11927, 'Guthix armour set (l)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1100000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11928, 'Saradomin armour set (l)', 'Grand Exchange set containing full helm, platebody, legs and kiteshield', 1, NULL, NULL, NULL, NULL, NULL, NULL, 4000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '9,0,20', '0,0,0,-65,-21,207,209,192,-12,205,102,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 2.2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11929, 'Saradomin armour set (l)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11930, 'Zamorak armour set (l)', 'Grand Exchange set containing full helm, platebody, legs and kiteshield', 1, NULL, NULL, NULL, NULL, NULL, NULL, 2300000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '9,0,20', '0,0,0,-65,-21,207,209,192,-12,205,102,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 2.2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11931, 'Zamorak armour set (l)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2300000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11932, 'Guthix armour set (sk)', 'Grand Exchange set containing full helm, platebody, skirt and kiteshield.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '9,0,20', '0,0,0,-65,-21,207,209,192,-12,205,102,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 2.2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11933, 'Guthix armour set (sk)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11934, 'Saradomin armour set (sk)', 'Grand Exchange set containing full helm, platebody, skirt and kiteshield', 1, NULL, NULL, NULL, NULL, NULL, NULL, 3600000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '9,0,20', '0,0,0,-65,-21,207,209,192,-12,205,102,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 2.2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11935, 'Saradomin armour set (sk)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3600000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11936, 'Zamorak armour set (sk)', 'Grand Exchange set containing a full helm, platebody, skirt and kiteshield', 1, NULL, NULL, NULL, NULL, NULL, NULL, 2000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '9,0,20', '0,0,0,-65,-21,207,209,192,-12,205,102,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 2.2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11937, 'Zamorak armour set (sk)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11938, 'Gilded armour set (l)', 'Grand Exchange set containing a full helm, platebody, legs and kiteshield.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 5900000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 2.2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11939, 'Gilded armour set (l)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5900000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11940, 'Gilded armour set (sk)', 'Grand Exchange set containing a full helm, platebody, skirt and kiteshield.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 4300000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 2.2, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11941, 'Gilded armour set (sk)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4300000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(11942, 'Rockshell armour set', 'Grand Exchange set containing helm, platebody, legs, boots and gloves', 1, NULL, NULL, NULL, NULL, NULL, NULL, 145000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11943, 'Rockshell armour set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 145000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11944, 'Spined armour set', 'Grand Exchange set containing helm, body, chaps, boots and gloves', 1, NULL, NULL, NULL, NULL, NULL, NULL, 94500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0,13,6', '-6,-6,-6,-31,29,68,56,78,34,62,47,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,40}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11945, 'Spined armour set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 94500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11946, 'Skeletal armour set', 'Grand Exchange set containing helm, top, bottoms, boots and gloves', 1, NULL, NULL, NULL, NULL, NULL, NULL, 145200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{6,40}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11947, 'Skeletal armour set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 145200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11949, 'Snow globe', 'A tiny model of Lumbridge Castle inside a glass dome.', NULL, NULL, NULL, NULL, 1, 'You can get another from Diango in Draynor Village.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11950, 'Snow globe', 'A tiny model of Lumbridge Castle inside a glass dome.', NULL, NULL, NULL, NULL, 1, 'You can get another from Diango in Draynor Village.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11951, 'Snowball', 'Made from snow. / It\'s a ball of snow! Uncanny. / How did this not melt in the box?', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, NULL, NULL, 18, NULL, NULL, '5063', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11952, 'Ice sword', 'Add this to a snowman to make a snow warrior.', NULL, NULL, NULL, NULL, 1, 'You can get another from a snow imp.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, 0), +(11953, 'Winter staff', 'Add this to a snowman to make a snow mage.', NULL, NULL, NULL, NULL, 1, 'You can get another from a snow imp.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2555,0,0,0', NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, 0), +(11954, 'Holly bow', 'Add this to a snowman to make a snow ranger.', NULL, NULL, NULL, NULL, 1, 'You can get another from a snow imp.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, 0), +(11955, 'Barbarian snowman hat', 'Add this to a snowman to make a barbarian snowman.', NULL, NULL, NULL, NULL, 1, 'You can get another from a snow imp.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, 0), +(11956, 'Dragon snowman hat', 'It\'s actually made of cardboard, but it looks like a dragon full helm.', NULL, NULL, NULL, NULL, 1, 'You can get another from a snow imp.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, 0), +(11957, 'Dwarf snowman hat', 'Use this to make your snowman look like a dwarf.', NULL, NULL, NULL, NULL, 1, 'You can get another from a snow imp.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, 0), +(11958, 'Pirate snowman hat', 'Arr! Shiver me snowman!', NULL, NULL, NULL, NULL, 1, 'Talk to a snow imp to get another.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, 0), +(11959, 'Snowman top hat', 'The most traditional snowman hat.', NULL, NULL, NULL, NULL, 1, 'You can get another from a snow imp.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, 0), +(11960, 'Light mystic robes set', 'Grand Exchange set containing hat, top, bottoms, gloves, and boots', 1, NULL, NULL, NULL, NULL, NULL, 215431, 487300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{20,1}-{6,40}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11961, 'Light mystic robes set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 487300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11962, 'Dark mystic robes set', 'Grand Exchange set containing hat, top, bottoms, gloves, and boots', 1, NULL, NULL, NULL, NULL, NULL, 228541, 294000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{20,1}-{6,40}', 2.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11963, 'Dark mystic robes set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 294000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(11964, 'Raven egg', 'I can hatch this in an incubator.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11965, 'Vulture egg', 'I can hatch this in an incubator.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11966, 'Bird\'s nest', 'Full: ', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11967, 'Dwarf cannon set', 'Grand Exchange set containing cannon base, stand, barrels and furnace.', 1, NULL, NULL, NULL, NULL, NULL, 750000, 718900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11968, 'Dwarf cannon set', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 718900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(11969, 'Enchanted water tiara', 'A water tiara infused with water runes. Protects from the hot desert sun.', NULL, NULL, 40, 60, NULL, 'If I destroy this it will disintegrate into its component parts and drop to the floor.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,2,0,5,5,5,3,3,0,0,2,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11970, 'Smelly crate', 'A crate full of distressed gear.', NULL, NULL, NULL, NULL, 1, 'I can obtain and fill another one from the archaeologist near Sophanem.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11972, 'Empty crate', 'An empty crate, ready for bronze gear.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11973, 'Scabaras research', 'A book of research on Scabarite history.', NULL, NULL, NULL, NULL, 1, 'I can obtain another one from the archaeologist near Sophanem.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11974, 'Artefact receipt', 'Issued by Simon Templeton.', NULL, NULL, NULL, NULL, 1, 'I can obtain another one from Simon Templeton.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11975, 'Scabarite notes', 'See article', NULL, NULL, NULL, NULL, 1, 'I can loot another one from the monsters in the areas east of Sophanem.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11976, 'Scabarite notes', 'See article', NULL, NULL, NULL, NULL, 1, 'I can loot another one from the monsters in the areas east of Sophanem.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11977, 'Scabarite notes', 'See article', NULL, NULL, NULL, NULL, 1, 'I can loot another one from the monsters in the areas east of Sophanem.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11978, 'Scabarite notes', 'See article', NULL, NULL, NULL, NULL, 1, 'I can loot another one from the monsters in the areas east of Sophanem.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11979, 'Scabarite notes', 'See article', NULL, NULL, NULL, NULL, 1, 'I can loot another one from the monsters in the areas east of Sophanem.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11980, 'Scabarite notes', 'See article', NULL, NULL, NULL, NULL, 1, 'I can loot another one from the monsters in the areas east of Sophanem.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11981, 'Scabarite notes', 'See article', NULL, NULL, NULL, NULL, 1, 'I can loot another one from the monsters in the areas east of Sophanem.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11982, 'Scabarite notes', 'See article', NULL, NULL, NULL, NULL, 1, 'I can loot another one from the monsters in the areas east of Sophanem.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11983, 'Scabarite notes', 'See article', NULL, NULL, NULL, NULL, 1, 'I can loot another one from the monsters in the areas east of Sophanem.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11984, 'Scabarite notes', 'See article', NULL, NULL, NULL, NULL, 1, 'I can loot another one from the monsters in the areas east of Sophanem.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11985, 'Scabarite notes', 'See article', NULL, NULL, NULL, NULL, 1, 'I can loot another one from the monsters in the areas east of Sophanem.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11986, 'Scabarite notes', 'See article', NULL, NULL, NULL, NULL, 1, 'I can loot another one from the monsters in the areas east of Sophanem.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11987, 'Scabarite notes', 'See article', NULL, NULL, NULL, NULL, 1, 'I can loot another one from the monsters in the areas east of Sophanem.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11988, 'Scabarite notes', 'See article', NULL, NULL, NULL, NULL, 1, 'I can loot another one from the monsters in the areas east of Sophanem.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11989, 'Scabarite notes', 'See article', NULL, NULL, NULL, NULL, 1, 'I can loot another one from the monsters in the areas east of Sophanem.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11990, 'Scabarite notes', 'See article', NULL, NULL, NULL, NULL, 1, 'I can loot another one from the monsters in the areas east of Sophanem.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11991, 'Scabarite notes', 'See article', NULL, NULL, NULL, NULL, 1, 'I can loot another one from the monsters in the areas east of Sophanem.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11992, 'Scabarite notes', 'See article', NULL, NULL, NULL, NULL, 1, 'I can loot another one from the monsters in the areas east of Sophanem.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11993, 'Scabarite notes', 'See article', NULL, NULL, NULL, NULL, 1, 'I can loot another one from the monsters in the areas east of Sophanem.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11994, 'Scabarite key', 'Newly made, but to an ancient pattern. (Dealing with Scabaras)', NULL, NULL, NULL, NULL, 1, 'I can obtain another one from the archaeologists near Sophanem.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11995, 'Oxidised dagger', 'It has been oxidised.', NULL, NULL, NULL, NULL, 1, 'I can make another one by using camel dung on a bronze dagger.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2517,2517,2500,2517', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11996, 'Oxidised medium helm', 'It has been oxidised.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11997, 'Oxidised sword', 'It has been oxidised.', NULL, NULL, NULL, NULL, 1, 'I can make another one by using camel dung on a bronze sword.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11998, 'Oxidised scimitar', 'It has been oxidised.', NULL, NULL, NULL, NULL, 1, 'I can make another one by using camel dung on a bronze scimitar.', NULL, NULL, NULL, NULL, NULL, 808, 823, 819, 824, 820, 821, 822, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2500,0,2517,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(11999, 'Oxidised longsword', 'It has been oxidised.', NULL, NULL, NULL, NULL, 1, 'I can make another one by using camel dung on a bronze longsword.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12000, 'Oxidised full helm', 'It has been oxidised.', NULL, NULL, NULL, NULL, 1, 'I can make another one by using camel dung on a bronze full helmet.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12001, 'Oxidised square shield', 'It has been oxidised.', NULL, NULL, NULL, NULL, 1, 'I can make another one by using camel dung on a bronze square shield.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12002, 'Oxidised chainbody', 'It has been oxidised.', NULL, NULL, NULL, NULL, 1, 'I can make another one by using camel dung on a bronze chainbody.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(12003, 'Oxidised kiteshield', 'It has been oxidised.', NULL, NULL, NULL, NULL, 1, 'I can make another one by using camel dung on a bronze kiteshield.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12004, 'Oxidised two-handed sword', 'It has been oxidised.', NULL, NULL, NULL, NULL, 1, 'I can make another one by using camel dung on a bronze two', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12005, 'Oxidised platelegs', 'It has been oxidised.', NULL, NULL, NULL, NULL, 1, 'I can make another one by using camel dung on some bronze platelegs.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12006, 'Oxidised plateskirt', 'It has been oxidised.', NULL, NULL, NULL, NULL, 1, 'I can make another one by using camel dung on a bronze plateskirt.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12007, 'Spirit terrorbird pouch', NULL, NULL, NULL, 289, 434, NULL, NULL, NULL, 330, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,52}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12008, 'Spirit terrorbird pouch', NULL, 1, NULL, 289, 434, NULL, NULL, NULL, 330, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12009, 'Granite crab pouch', NULL, NULL, NULL, 239, 359, NULL, NULL, NULL, 239, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{16,23}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12010, 'Granite crab pouch', NULL, 1, NULL, 239, 359, NULL, NULL, NULL, 239, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12011, 'Praying mantis pouch', NULL, NULL, NULL, 1849, 2774, NULL, NULL, NULL, 2918, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,75}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12012, 'Praying mantis pouch', NULL, 1, NULL, 1849, 2774, NULL, NULL, NULL, 2918, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12013, 'Giant ent pouch', NULL, NULL, NULL, 1409, 2114, NULL, NULL, NULL, 2167, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,78}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12014, 'Giant ent pouch', NULL, 1, NULL, 1409, 2114, NULL, NULL, NULL, 2167, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12015, 'Spirit cobra pouch', NULL, NULL, NULL, 1329, 1994, NULL, NULL, NULL, 2018, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,63}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12016, 'Spirit cobra pouch', NULL, 1, NULL, 1329, 1994, NULL, NULL, NULL, 2018, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12017, 'Spirit dagannoth pouch', NULL, NULL, NULL, 179, 269, NULL, NULL, NULL, 121, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,83}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12018, 'Spirit dagannoth pouch', NULL, 1, NULL, 179, 269, NULL, NULL, NULL, 121, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12019, 'Thorny snail pouch', NULL, NULL, NULL, 259, 389, NULL, NULL, NULL, 248, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{13,23}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12020, 'Thorny snail pouch', NULL, 1, NULL, 259, 389, NULL, NULL, NULL, 248, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12021, 'Beaver pouch', NULL, NULL, NULL, 889, 1334, NULL, NULL, NULL, 1268, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,33}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12022, 'Beaver pouch', NULL, 1, NULL, 889, 1334, NULL, NULL, NULL, 1268, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12023, 'Karam. overlord pouch', NULL, NULL, NULL, 1609, 2414, NULL, NULL, NULL, 2520, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,58}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12024, 'Karam. overlord pouch', NULL, 1, NULL, 1609, 2414, NULL, NULL, NULL, 2520, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12025, 'Hydra pouch', NULL, NULL, NULL, 1449, 2174, NULL, NULL, NULL, 2235, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,80}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12026, 'Hydra pouch', NULL, 1, NULL, 1449, 2174, NULL, NULL, NULL, 2235, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12027, 'Spirit jelly pouch', NULL, NULL, NULL, 1679, 2519, NULL, NULL, NULL, 2641, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,55}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12028, 'Spirit jelly pouch', NULL, 1, NULL, 1679, 2519, NULL, NULL, NULL, 2641, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12029, 'Bunyip pouch', NULL, NULL, NULL, 1269, 1904, NULL, NULL, NULL, 3506, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,68}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12030, 'Bunyip pouch', NULL, 1, NULL, 1269, 1904, NULL, NULL, NULL, 3506, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12031, 'War tortoise pouch', NULL, NULL, NULL, 179, 269, NULL, NULL, NULL, 13200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,67}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12032, 'War tortoise pouch', NULL, 1, NULL, 179, 269, NULL, NULL, NULL, 13200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12033, 'Fruit bat pouch', NULL, NULL, NULL, 1469, 2204, NULL, NULL, NULL, 2269, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,69}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12034, 'Fruit bat pouch', NULL, 1, NULL, 1469, 2204, NULL, NULL, NULL, 2269, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12035, 'Abyssal parasite pouch', NULL, NULL, NULL, 1229, 1844, NULL, NULL, NULL, 4004, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,54}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12036, 'Abyssal parasite pouch', NULL, 1, NULL, 1229, 1844, NULL, NULL, NULL, 4004, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12037, 'Abyssal lurker pouch', NULL, NULL, NULL, 1359, 2039, NULL, NULL, NULL, 5660, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,62}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12038, 'Abyssal lurker pouch', NULL, 1, NULL, 1359, 2039, NULL, NULL, NULL, 5660, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12039, 'Unicorn stallion pouch', NULL, NULL, NULL, 1569, 2354, NULL, NULL, NULL, 2439, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,88}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12040, 'Unicorn stallion pouch', NULL, 1, NULL, 1569, 2354, NULL, NULL, NULL, 2439, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12041, 'Magpie pouch', NULL, NULL, NULL, 1049, 1574, NULL, NULL, NULL, 1559, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,47}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12042, 'Magpie pouch', NULL, 1, NULL, 1049, 1574, NULL, NULL, NULL, 1559, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12043, 'Dreadfowl pouch', NULL, NULL, NULL, 249, 374, NULL, NULL, NULL, 258, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12044, 'Dreadfowl pouch', NULL, 1, NULL, 249, 374, NULL, NULL, NULL, 258, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12045, 'Stranger plant pouch', NULL, NULL, NULL, 1449, 2174, NULL, NULL, NULL, 2216, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,64}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12046, 'Stranger plant pouch', NULL, 1, NULL, 1449, 2174, NULL, NULL, NULL, 2216, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12047, 'Spirit wolf pouch', NULL, NULL, NULL, 239, 359, NULL, NULL, NULL, 301, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12048, 'Spirit wolf pouch', NULL, 1, NULL, 239, 359, NULL, NULL, NULL, 301, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12049, 'Desert wyrm pouch', NULL, NULL, NULL, 619, 929, NULL, NULL, NULL, 808, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{18,23}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12050, 'Desert wyrm pouch', NULL, 1, NULL, 619, 929, NULL, NULL, NULL, 808, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12051, 'Evil turnip pouch', NULL, NULL, NULL, 1209, 1814, NULL, NULL, NULL, 1812, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,42}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12052, 'Evil turnip pouch', NULL, 1, NULL, 1209, 1814, NULL, NULL, NULL, 1812, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12053, 'Vampire bat pouch', NULL, NULL, NULL, 979, 1469, NULL, NULL, NULL, 1416, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,31}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(12054, 'Vampire bat pouch', NULL, 1, NULL, 979, 1469, NULL, NULL, NULL, 1416, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(12055, 'Spirit scorpion pouch', NULL, NULL, NULL, 739, 1109, NULL, NULL, NULL, 992, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,23}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12056, 'Spirit scorpion pouch', NULL, 1, NULL, 739, 1109, NULL, NULL, NULL, 992, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12057, 'Arctic bear pouch', NULL, NULL, NULL, 309, 464, NULL, NULL, NULL, 332, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,71}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12058, 'Arctic bear pouch', NULL, 1, NULL, 309, 464, NULL, NULL, NULL, 332, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12059, 'Spirit spider pouch', NULL, NULL, NULL, 249, 374, NULL, NULL, NULL, 2225, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{10,23}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12060, 'Spirit spider pouch', NULL, 1, NULL, 249, 374, NULL, NULL, NULL, 2225, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12061, 'Bloated leech pouch', NULL, NULL, NULL, 1339, 2009, NULL, NULL, NULL, 2045, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,49}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12062, 'Bloated leech pouch', NULL, 1, NULL, 1339, 2009, NULL, NULL, NULL, 2045, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12063, 'Spirit kalphite pouch', NULL, NULL, NULL, 679, 1019, NULL, NULL, NULL, 3746, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,25}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12064, 'Spirit kalphite pouch', NULL, 1, NULL, 679, 1019, NULL, NULL, NULL, 3746, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12065, 'Honey badger pouch', NULL, NULL, NULL, 1009, 1514, NULL, NULL, NULL, 1470, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,32}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12066, 'Honey badger pouch', NULL, 1, NULL, 1009, 1514, NULL, NULL, NULL, 1470, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12067, 'Albino rat pouch', NULL, NULL, NULL, 919, 1379, NULL, NULL, NULL, 1578, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,23}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12068, 'Albino rat pouch', NULL, 1, NULL, 919, 1379, NULL, NULL, NULL, 1578, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12069, 'Granite lobster pouch', NULL, NULL, NULL, 1829, 2744, NULL, NULL, NULL, 2924, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,74}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12070, 'Granite lobster pouch', NULL, 1, NULL, 1829, 2744, NULL, NULL, NULL, 2924, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12071, 'Macaw pouch', NULL, NULL, NULL, 949, 1424, NULL, NULL, NULL, 1375, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,41}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12072, 'Macaw pouch', NULL, 1, NULL, 949, 1424, NULL, NULL, NULL, 1375, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12073, 'Bronze minotaur pouch', NULL, NULL, NULL, 1189, 1784, NULL, NULL, NULL, 1804, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,36}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12074, 'Bronze minotaur pouch', NULL, 1, NULL, 1189, 1784, NULL, NULL, NULL, 1804, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12075, 'Iron minotaur pouch', NULL, NULL, NULL, 1419, 2129, NULL, NULL, NULL, 2216, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,46}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12076, 'Iron minotaur pouch', NULL, 1, NULL, 1419, 2129, NULL, NULL, NULL, 2216, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12077, 'Steel minotaur pouch', NULL, NULL, NULL, 1579, 2369, NULL, NULL, NULL, 2529, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,56}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12078, 'Steel minotaur pouch', NULL, 1, NULL, 1579, 2369, NULL, NULL, NULL, 2529, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12079, 'Mithril minotaur pouch', NULL, NULL, NULL, 1689, 2534, NULL, NULL, NULL, 2666, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,66}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12080, 'Mithril minotaur pouch', NULL, 1, NULL, 1689, 2534, NULL, NULL, NULL, 2666, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12081, 'Adamant minotaur pouch', NULL, NULL, NULL, 1609, 2414, NULL, NULL, NULL, 2520, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,76}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12082, 'Adamant minotaur pouch', NULL, 1, NULL, 1609, 2414, NULL, NULL, NULL, 2520, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12083, 'Rune minotaur pouch', NULL, NULL, NULL, 179, 269, NULL, NULL, NULL, 373, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,86}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12084, 'Rune minotaur pouch', NULL, 1, NULL, 179, 269, NULL, NULL, NULL, 373, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12085, 'Smoke devil pouch', NULL, NULL, NULL, 1579, 2369, NULL, NULL, NULL, 2468, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,61}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12086, 'Smoke devil pouch', NULL, 1, NULL, 1579, 2369, NULL, NULL, NULL, 2468, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12087, 'Bull ant pouch', NULL, NULL, NULL, 279, 419, NULL, NULL, NULL, 319, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,40}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12088, 'Bull ant pouch', NULL, 1, NULL, 279, 419, NULL, NULL, NULL, 319, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12089, 'Wolpertinger pouch', NULL, NULL, NULL, 2199, 3299, NULL, NULL, NULL, 3625, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,92}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12090, 'Wolpertinger pouch', NULL, 1, NULL, 2199, 3299, NULL, NULL, NULL, 3625, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12091, 'Compost mound pouch', NULL, NULL, NULL, 639, 959, NULL, NULL, NULL, 906, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,28}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12092, 'Compost mound pouch', NULL, 1, NULL, 639, 959, NULL, NULL, NULL, 906, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12093, 'Pack yak pouch', NULL, NULL, NULL, 2279, 3419, NULL, NULL, NULL, 3696, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,96}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12094, 'Pack yak pouch', NULL, 1, NULL, 2279, 3419, NULL, NULL, NULL, 3696, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12095, 'Sp. cockatrice pouch', NULL, NULL, NULL, 1049, 1574, NULL, NULL, NULL, 1514, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,43}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12096, 'Sp. cockatrice pouch', NULL, 1, NULL, 1049, 1574, NULL, NULL, NULL, 1514, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12097, 'Sp. guthatrice pouch', NULL, NULL, NULL, 1049, 1574, NULL, NULL, NULL, 1523, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,43}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12098, 'Sp. guthatrice pouch', NULL, 1, NULL, 1049, 1574, NULL, NULL, NULL, 1523, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12099, 'Sp. saratrice pouch', NULL, NULL, NULL, 1049, 1574, NULL, NULL, NULL, 1492, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,43}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12100, 'Sp. saratrice pouch', NULL, 1, NULL, 1049, 1574, NULL, NULL, NULL, 1492, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12101, 'Sp. zamatrice pouch', NULL, NULL, NULL, 1049, 1574, NULL, NULL, NULL, 1515, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,43}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12102, 'Sp. zamatrice pouch', NULL, 1, NULL, 1049, 1574, NULL, NULL, NULL, 1515, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12103, 'Sp. pengatrice pouch', NULL, NULL, NULL, 1049, 1574, NULL, NULL, NULL, 1531, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,43}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12104, 'Sp. pengatrice pouch', NULL, 1, NULL, 1049, 1574, NULL, NULL, NULL, 1531, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12105, 'Sp. coraxatrice pouch', NULL, NULL, NULL, 1049, 1574, NULL, NULL, NULL, 3085, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,43}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12106, 'Sp. coraxatrice pouch', NULL, 1, NULL, 1049, 1574, NULL, NULL, NULL, 3085, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12107, 'Sp. vulatrice pouch', NULL, NULL, NULL, 1049, 1574, NULL, NULL, NULL, 3881, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,43}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12108, 'Sp. vulatrice pouch', NULL, 1, NULL, 1049, 1574, NULL, NULL, NULL, 3881, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12109, 'Cockatrice egg', 'A stripy brown egg.', 1, NULL, 40, 60, NULL, NULL, NULL, 1053, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(12110, 'Cockatrice egg', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1053, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(12111, 'Guthatrice egg', 'A stripy green egg.', 1, NULL, 400, 600, NULL, NULL, NULL, 1171, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12112, 'Guthatrice egg', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1171, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12113, 'Saratrice egg', 'A stripy blue egg.', 1, NULL, 400, 600, NULL, NULL, NULL, 1080, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12114, 'Saratrice egg', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1080, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12115, 'Zamatrice egg', 'A stripy red egg.', 1, NULL, 400, 600, NULL, NULL, NULL, 1154, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12116, 'Zamatrice egg', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1154, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12117, 'Pengatrice egg', 'A stripy grey egg.', 1, NULL, 400, 600, NULL, NULL, NULL, 2676, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12118, 'Pengatrice egg', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2676, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12119, 'Coraxatrice egg', 'A stripy black egg.', 1, NULL, 400, 600, NULL, NULL, NULL, 2865, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12120, 'Coraxatrice egg', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2865, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12121, 'Vulatrice egg', 'A stripy pink egg.', 1, NULL, 400, 600, NULL, NULL, NULL, 18900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12122, 'Vulatrice egg', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 18900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12123, 'Barker toad pouch', NULL, NULL, NULL, 279, 419, NULL, NULL, NULL, 293, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,66}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12124, 'Barker toad pouch', NULL, 1, NULL, 279, 419, NULL, NULL, NULL, 293, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12125, 'Flies', 'A swarm of little flies.', 1, NULL, 4, 6, NULL, NULL, 10, 97, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12126, 'Flies', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 97, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12127, 'Beetle bits', 'Some beetle bits.', 1, NULL, 4, 6, NULL, NULL, 10, 176, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12128, 'Beetle bits', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 176, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12129, 'Ground fishing bait', 'Good for feeding birds.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12130, 'Nuts', 'Mmmm...nuts.', 1, NULL, 4, 6, NULL, NULL, 10, 673, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12131, 'Nuts', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 673, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12132, 'Truffle', 'Makes me want to do a truffle shuffle.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28.928, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12133, 'Truffle', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12134, 'Evil turnip', 'An evil turnip.', 1, NULL, 12, 18, NULL, NULL, NULL, 6750, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12135, 'Evil turnip', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 6750, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12136, '2/3 evil turnip', 'An evil turnip.', 1, NULL, 12, 18, NULL, NULL, NULL, 133, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12137, '2/3 evil turnip', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 133, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12138, '1/3 evil turnip', 'An evil turnip.', 1, NULL, 12, 18, NULL, NULL, NULL, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12139, '1/3 evil turnip', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12140, 'Summoning potion(4)', '(X) doses of Summoning potion.', 1, NULL, 76, 114, NULL, NULL, NULL, 4489, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12141, 'Summoning potion(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 4489, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12142, 'Summoning potion(3)', '(X) doses of Summoning potion.', 1, NULL, 76, 114, NULL, NULL, NULL, 3320, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12143, 'Summoning potion(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3320, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12144, 'Summoning potion(2)', '(X) doses of Summoning potion.', 1, NULL, 76, 114, NULL, NULL, NULL, 1671, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12145, 'Summoning potion(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1671, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12146, 'Summoning potion(1)', '(X) doses of Summoning potion.', 1, NULL, 76, 114, NULL, NULL, NULL, 1576, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12147, 'Summoning potion(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1576, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12148, 'Evil turnip seed', 'Grows into the root-vegetable of all evil.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 68, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12153, 'Carved evil turnip', 'Utterly terrifying!', 1, NULL, 20, 30, NULL, NULL, NULL, 7101, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12154, 'Carved evil turnip', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7101, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12155, 'Pouch', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(12156, 'Honeycomb', 'This is what bees craft.', 1, NULL, 2, 3, NULL, NULL, NULL, 393, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12157, 'Honeycomb', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 393, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12158, 'Gold charm', 'A charm used to summon familiars.', NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12159, 'Green charm', 'A charm used to summon familiars.', NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12160, 'Crimson charm', 'A charm used to summon familiars.', NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12161, 'Abyssal charm', 'A charm used to summon familiars', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12162, 'Talon beast charm', 'A charm used to summon talon beasts.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12163, 'Blue charm', 'A charm used to summon familiars.', NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12164, 'Ravager charm', 'A charm needed to summon a Void ravager.', NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12165, 'Shifter charm', 'A charm needed to summon a Void shifter.', NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12166, 'Spinner charm', 'A charm needed to summon a Void Spinner.', NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12167, 'Torcher charm', 'A charm needed to summon a Void torcher.', NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12168, 'Obsidian charm', 'A charm used to summon familiars.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12169, 'Summoning cape', 'The cape worn by master summoners.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12170, 'Summoning cape(t)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,9,0,4,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12171, 'Summoning hood', 'Summoning skillcape hood.', NULL, NULL, NULL, NULL, NULL, NULL, 99000, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12172, 'Clean spirit weed', 'A fresh herb.', 1, NULL, 9, 14, NULL, NULL, NULL, 3597, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(12173, 'Clean spirit weed', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3597, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(12174, 'Grimy spirit weed', 'I need to clean this herb before I can use it.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 3634, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{15,35}', NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(12175, 'Grimy spirit weed', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3634, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(12176, 'Spirit weed seed', 'A seed for spirit weed.', 1, NULL, NULL, NULL, NULL, NULL, NULL, 698, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,36}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12181, 'Spirit weed potion(unf)', 'I need another ingredient to finish this spirit weed potion.', 1, NULL, 9, 13, NULL, NULL, NULL, 2963, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12182, 'Spirit weed potion(unf)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2963, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12183, 'Spirit shards', 'Shards of an obelisk.', 1, NULL, 10, 15, NULL, NULL, 25, 24, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10000, NULL, NULL, NULL, NULL, NULL, 0), +(12184, 'Gecko', '(Baby) It\'s so adorably tiny! (Adult) How cute!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12185, 'Saradomin owl', 'Chick: A fluffy chick.Bird: Lovely blue plumage.Owl: A fantastic saradomin owl.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12186, 'Zamorak hawk', 'Chick: A fluffy chick.Bird: Lovely red plumage.Hawk: A stately zamorak hawk.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12187, 'Guthix raptor', 'Chick: A fluffy chick.Bird: Lovely green plumage.Raptor: An impressive Guthix raptor.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12190, 'Vulture', 'If you see them circling: run.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12191, 'Terrier puppy', 'A hyperactive little puppy. (Puppy)(Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12192, 'Greyhound puppy', 'This is one fast little pooch. (Puppy)An aerodynamic doggy. (Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12193, 'Labrador puppy', 'Puppy - Soft but strong... and cute.Adult - My most faithful friend.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12194, 'Dalmatian puppy', 'Now, if only I could find another hundred... (Puppy)A purebred doggy. (Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12195, 'Sheepdog puppy', 'This little puppy is very quiet. (Puppy)Come by! Come by! (Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12196, 'Bulldog puppy', 'One proud little puppy. (Puppy)Looks like it\'s chewing a wasp. (Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(12197, 'Dragon hatchling', '(hatchling) A hatchling <dragon colour> dragon.(baby) A bigger baby <colour> dragon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12198, 'Baby giant crab', 'Baby: Little NipperAdult: Bigger Nipper.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12199, 'Baby raccoon', '(Baby) A stripy little baby raccoon.(Adult) He can run with us.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12200, 'Squirrel', 'Adult: An experienced nut-thief.Baby: A tiny nut-thief.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12203, 'Chameleon', 'It\'s a colour-coordinated lizard!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12204, 'Antlers', 'Doors could be a problem, wearing these...', 1, NULL, 40, 60, NULL, NULL, 100, 40, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,8,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{23,10}', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12205, 'Antlers', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 40, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12206, 'Antlers (charged)', 'Doors could be a problem, wearing these...', 1, NULL, 40, 60, NULL, NULL, 100, 50, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,8,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12207, 'Lizard skull', 'It\'s a little smelly in there.', 1, NULL, 80, 120, NULL, NULL, 200, 254, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,0,1,2,3,4,2,3,12,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{23,30}', 3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12208, 'Lizard skull', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 254, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12209, 'Lizard skull (charged)', 'It\'s a little smelly in there.', 1, NULL, 80, 120, NULL, NULL, 200, 211, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,0,1,2,3,4,2,3,12,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12210, 'Feather headdress', 'It\'s fun to go to the O-B-E-L-I-S-K!', 1, NULL, 160, 240, NULL, NULL, NULL, 234, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-1,2,4,6,8,4,4,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{4,50}-{23,20}', 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12211, 'Feather headdress', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 234, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12212, 'Feather headdress (charged)', 'It\'s fun to go to the O-B-E-L-I-S-K!', 1, NULL, 160, 240, NULL, NULL, NULL, 107, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-1,2,4,6,8,4,4,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12213, 'Feather headdress', 'It\'s fun to go to the O-B-E-L-I-S-K!', 1, NULL, 160, 240, NULL, NULL, NULL, 662, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-1,2,4,6,8,4,4,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{4,50}-{23,20}', 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12214, 'Feather headdress', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 662, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12215, 'Feather headdress (charged)', 'It\'s fun to go to the O-B-E-L-I-S-K!', 1, NULL, 160, 240, NULL, NULL, NULL, 107, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-1,2,4,6,8,4,4,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12216, 'Feather headdress', 'It\'s fun to go to the O-B-E-L-I-S-K!', 1, NULL, 160, 240, NULL, NULL, NULL, 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-1,2,4,6,8,4,4,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{4,50}-{23,20}', 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12217, 'Feather headdress', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12218, 'Feather headdress (charged)', 'It\'s fun to go to the O-B-E-L-I-S-K!', 1, NULL, 160, 240, NULL, NULL, NULL, 107, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-1,2,4,6,8,4,4,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12219, 'Feather headdress', 'It\'s fun to go to the O-B-E-L-I-S-K!', 1, NULL, 160, 240, NULL, NULL, NULL, 107, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-1,2,4,6,8,4,4,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{4,50}-{23,20}', 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12220, 'Feather headdress', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 107, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12221, 'Feather headdress (charged)', 'It\'s fun to go to the O-B-E-L-I-S-K!', 1, NULL, 160, 240, NULL, NULL, NULL, 107, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-1,2,4,6,8,4,4,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12222, 'Feather headdress', 'It\'s fun to go to the O-B-E-L-I-S-K!', 1, NULL, 160, 240, NULL, NULL, NULL, 211, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-1,2,4,6,8,4,4,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{4,50}-{23,20}', 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12223, 'Feather headdress', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 211, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12224, 'Feather headdress (charged)', 'It\'s fun to go to the O-B-E-L-I-S-K!', 1, NULL, 160, 240, NULL, NULL, NULL, 107, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-1,2,4,6,8,4,4,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12294, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12296, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12298, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12300, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12302, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12304, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12306, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12308, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12310, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12312, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12314, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12316, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12318, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12320, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12322, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12324, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12326, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12328, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12330, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12332, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12334, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12336, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12338, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12340, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12342, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12344, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12346, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12348, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12350, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12352, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12354, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12356, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12358, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12360, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12362, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12364, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12366, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12368, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12370, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12372, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12374, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12376, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12378, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12380, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12382, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12384, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12386, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12388, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12390, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12392, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12394, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12396, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12398, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12400, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12402, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12404, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12406, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12408, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12410, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12412, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12414, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12416, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12418, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12420, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12422, 'Herbcall scroll', NULL, NULL, NULL, 94, 142, NULL, NULL, NULL, 96, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,41}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12423, 'Fruitfall scroll', NULL, NULL, NULL, 146, 220, NULL, NULL, NULL, 258, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,69}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12424, 'Fish rain scroll', NULL, NULL, NULL, 125, 188, NULL, NULL, NULL, 146, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,56}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12425, 'Howl scroll', NULL, NULL, NULL, 23, 35, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12426, 'Thieving fingers scroll', NULL, NULL, NULL, 104, 157, NULL, NULL, NULL, 97, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,47}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12427, 'Abyssal stealth scroll', NULL, NULL, NULL, 135, 203, NULL, NULL, NULL, 533, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,62}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12428, 'Egg spawn scroll', NULL, NULL, NULL, 24, 37, NULL, NULL, NULL, 237, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{10,23}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12429, 'Multichop scroll', NULL, NULL, NULL, 88, 133, NULL, NULL, NULL, 97, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,33}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12430, 'Cheese feast scroll', NULL, NULL, NULL, 91, 137, NULL, NULL, NULL, 121, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,23}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12431, 'Unburden scroll', NULL, NULL, NULL, 27, 41, NULL, NULL, NULL, 39, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,40}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12432, 'Venom shot scroll', NULL, NULL, NULL, 73, 110, NULL, NULL, NULL, 72, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{19,23}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12433, 'Insane ferocity scroll', NULL, NULL, NULL, 100, 151, NULL, NULL, NULL, 99, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,32}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12434, 'Healing aura scroll', NULL, NULL, NULL, 156, 235, NULL, NULL, NULL, 299, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,88}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12435, 'Winter storage scroll', NULL, NULL, NULL, 227, 341, NULL, NULL, NULL, 428, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,96}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12436, 'Oph. incubation scroll', NULL, NULL, NULL, 132, 199, NULL, NULL, NULL, 223, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,63}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12437, 'Magic focus scroll', NULL, NULL, NULL, 219, 329, NULL, NULL, NULL, 419, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,92}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12438, 'Swallow whole scroll', NULL, NULL, NULL, 126, 190, NULL, NULL, NULL, 220, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,68}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12439, 'Testudo scroll', NULL, NULL, NULL, 17, 26, NULL, NULL, NULL, 269, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,67}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12440, 'Generate compost scroll', NULL, NULL, NULL, 63, 95, NULL, NULL, NULL, 47, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,28}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12441, 'Tireless run scroll', NULL, NULL, NULL, 28, 43, NULL, NULL, NULL, 35, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,52}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12442, 'Regrowth scroll', NULL, NULL, NULL, 144, 217, NULL, NULL, NULL, 174, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,80}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12443, 'Call to arms scroll', NULL, NULL, NULL, 90, 136, NULL, NULL, NULL, 1118, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,34}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12444, 'Blood drain scroll', NULL, NULL, NULL, 133, 200, NULL, NULL, NULL, 148, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,49}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12445, 'Dreadfowl strike scroll', NULL, NULL, NULL, 24, 37, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12446, 'Sandstorm scroll', NULL, NULL, NULL, 67, 101, NULL, NULL, NULL, 122, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,25}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12447, 'Vampire touch scroll', NULL, NULL, NULL, 97, 146, NULL, NULL, NULL, 98, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,31}', NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(12448, 'Evil flames scroll', NULL, NULL, NULL, 120, 181, NULL, NULL, NULL, 123, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,42}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12449, 'Crushing claw scroll', NULL, NULL, NULL, 182, 274, NULL, NULL, NULL, 219, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,74}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12450, 'Mantis strike scroll', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 221, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,75}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12451, 'Arctic blast scroll', NULL, NULL, NULL, 30, 46, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,71}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12452, 'Toad bark scroll', NULL, NULL, NULL, 27, 41, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,66}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12453, 'Dissolve scroll', NULL, NULL, NULL, 167, 251, NULL, NULL, NULL, 202, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,55}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12454, 'Abyssal drain scroll', NULL, NULL, NULL, 122, 183, NULL, NULL, NULL, 163, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,54}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12455, 'Doomsphere scroll', NULL, NULL, NULL, 160, 241, NULL, NULL, NULL, 198, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,58}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12456, 'Spike shot scroll', NULL, NULL, NULL, 17, 26, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,83}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12457, 'Acorn missile scroll', NULL, NULL, NULL, 140, 211, NULL, NULL, NULL, 146, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,78}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12458, 'Petrifying gaze scroll', NULL, NULL, NULL, 104, 157, NULL, NULL, NULL, 97, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,43}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12459, 'Slime spray scroll', NULL, NULL, NULL, 184, 277, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{13,23}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12460, 'Electric lash scroll', NULL, NULL, NULL, 61, 92, NULL, NULL, NULL, 47, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{18,23}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12461, 'Bronze bull rush scroll', NULL, NULL, NULL, 118, 178, NULL, NULL, NULL, 135, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,36}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12462, 'Iron bull rush scroll', NULL, NULL, NULL, 141, 212, NULL, NULL, NULL, 180, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,46}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12463, 'Steel bull rush scroll', NULL, NULL, NULL, 157, 236, NULL, NULL, NULL, 182, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,56}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12464, 'Mith bull rush scroll', NULL, NULL, NULL, 168, 253, NULL, NULL, NULL, 198, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,66}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12465, 'Addy bull rush scroll', NULL, NULL, NULL, 160, 241, NULL, NULL, NULL, 203, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,76}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12466, 'Rune bull rush scroll', NULL, NULL, NULL, 17, 26, NULL, NULL, NULL, 67, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,86}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12467, 'Poisonous blast scroll', NULL, NULL, NULL, 144, 217, NULL, NULL, NULL, 171, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,64}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12468, 'Dust cloud scroll', NULL, NULL, NULL, 157, 236, NULL, NULL, NULL, 170, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,61}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12469, 'Hatchling dragon', '(hatchling) A hatchling <dragon colour> dragon.(baby) A bigger baby <colour> dragon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12471, 'Hatchling dragon', '(hatchling) A hatchling <dragon colour> dragon.(baby) A bigger baby <colour> dragon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12473, 'Hatchling dragon', '(hatchling) A hatchling <dragon colour> dragon.(baby) A bigger baby <colour> dragon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12475, 'Hatchling dragon', '(hatchling) A hatchling <dragon colour> dragon.(baby) A bigger baby <colour> dragon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12477, 'Red dragon egg', 'This will hatch into a mighty dragon.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12478, 'Blue dragon egg', 'This will hatch into a mighty dragon.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12479, 'Green dragon egg', 'This will hatch into a mighty dragon.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12480, 'Black dragon egg', 'This will hatch into a mighty dragon.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12481, 'Baby penguin', '(Baby) Can\'t fly and can barely walk, but adorable nonetheless. (adult) Emperor of all he surveys.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12483, 'Penguin egg', 'I can hatch this in an Incubator.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12484, 'Raven chick', 'Chick: A raven chick.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12485, 'Raven', 'Chick: A raven chick.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12486, 'Baby raccoon', '(Baby) A stripy little baby raccoon.(Adult) He can run with us.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12487, 'Raccoon', '(Baby) A stripy little baby raccoon.(Adult) He can run with us.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12488, 'Baby gecko', '(Baby) It\'s so adorably tiny! (Adult) How cute!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12489, 'Gecko', '(Baby) It\'s so adorably tiny! (Adult) How cute!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12490, 'Baby squirrel', 'Adult: An experienced nut-thief.Baby: A tiny nut-thief.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12491, 'Squirrel', 'Adult: An experienced nut-thief.Baby: A tiny nut-thief.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12492, 'Baby chameleon', 'It\'s a colour-coordinated lizard!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12493, 'Chameleon', 'It\'s a colour-coordinated lizard!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12494, 'Chameleon egg', 'A lizard\'s egg.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12495, 'Chameleon egg', 'A lizard\'s egg.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12496, 'Baby monkey', '(Baby) It\'s a tiny, cheeky monkey. (Adult) Hide the bananas!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12498, 'Vulture chick', 'If you see them circling: run.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12499, 'Vulture', 'If you see them circling: run.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12500, 'Baby giant crab', 'Baby: Little NipperAdult: Bigger Nipper.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,40}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12501, 'Giant crab', 'Baby: Little NipperAdult: Bigger Nipper.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,40}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12502, 'Crunchy claw token', 'Apparently, this token is worth one baby giant crab to someone called Nung.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12503, 'Saradomin chick', 'Chick: A fluffy chick.Bird: Lovely blue plumage.Owl: A fantastic saradomin owl.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12504, 'Saradomin bird', 'Chick: A fluffy chick.Bird: Lovely blue plumage.Owl: A fantastic saradomin owl.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12505, 'Saradomin owl', 'Chick: A fluffy chick.Bird: Lovely blue plumage.Owl: A fantastic saradomin owl.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12506, 'Zamorak chick', 'Chick: A fluffy chick.Bird: Lovely red plumage.Hawk: A stately zamorak hawk.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12507, 'Zamorak bird', 'Chick: A fluffy chick.Bird: Lovely red plumage.Hawk: A stately zamorak hawk.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12508, 'Zamorak hawk', 'Chick: A fluffy chick.Bird: Lovely red plumage.Hawk: A stately zamorak hawk.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12509, 'Guthix chick', 'Chick: A fluffy chick.Bird: Lovely green plumage.Raptor: An impressive Guthix raptor.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12510, 'Guthix bird', 'Chick: A fluffy chick.Bird: Lovely green plumage.Raptor: An impressive Guthix raptor.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12511, 'Guthix raptor', 'Chick: A fluffy chick.Bird: Lovely green plumage.Raptor: An impressive Guthix raptor.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12512, 'Terrier puppy', 'A hyperactive little puppy. (Puppy)(Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12513, 'Terrier', 'A hyperactive little puppy. (Puppy)(Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12514, 'Greyhound puppy', 'This is one fast little pooch. (Puppy)An aerodynamic doggy. (Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12515, 'Greyhound', 'This is one fast little pooch. (Puppy)An aerodynamic doggy. (Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12516, 'Labrador puppy', 'Puppy - Soft but strong... and cute.Adult - My most faithful friend.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12517, 'Labrador', 'Puppy - Soft but strong... and cute.Adult - My most faithful friend.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12518, 'Dalmatian puppy', 'Now, if only I could find another hundred... (Puppy)A purebred doggy. (Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(12519, 'Dalmatian', 'Now, if only I could find another hundred... (Puppy)A purebred doggy. (Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12520, 'Sheepdog puppy', 'This little puppy is very quiet. (Puppy)Come by! Come by! (Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12521, 'Sheepdog', 'This little puppy is very quiet. (Puppy)Come by! Come by! (Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12522, 'Bulldog puppy', 'One proud little puppy. (Puppy)Looks like it\'s chewing a wasp. (Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12523, 'Bulldog', 'One proud little puppy. (Puppy)Looks like it\'s chewing a wasp. (Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12524, 'Summoning cape', 'The cape worn by master summoners.', NULL, NULL, 39600, 59400, NULL, NULL, 99000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '0,0,0,0,0,9,9,9,9,9,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12527, 'Gold charm', 'A charm used to summon familiars.', NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12528, 'Trapdoor key', 'A key to Pikkupstix\'s trapdoor.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12530, 'Spirit shards', 'Shards of an obelisk.', 1, NULL, 10, 15, NULL, NULL, 25, 24, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12531, 'Ibis pouch', NULL, NULL, NULL, 1259, 1889, NULL, NULL, NULL, 1914, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,56}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12532, 'Ibis pouch', NULL, 1, NULL, 1259, 1889, NULL, NULL, NULL, 1914, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12533, 'Stony shell scroll', NULL, NULL, NULL, 23, 35, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{16,23}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12535, 'Raw pawya meat', 'Meat from a creature that can be hunted in Isafdar.', 1, NULL, 200, 300, NULL, NULL, NULL, 7968, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.33, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(12536, 'Raw pawya meat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 7968, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(12538, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12539, 'Grenwall spikes', 'Spikes from a grenwall.', 1, NULL, 80, 120, NULL, NULL, NULL, 1704, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12545, 'Picture', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12547, 'Platypus', 'A most unlikely creature.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12548, 'Platypus', 'A most unlikely creature.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12549, 'Platypus', 'A most unlikely creature.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12550, 'Platypus', 'A most unlikely creature.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12551, 'Baby platypus', 'A most unlikely creature.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12552, 'Baby platypus', 'A most unlikely creature.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12553, 'Baby platypus', 'A most unlikely creature.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12554, 'Patrick', 'A most unlikely creature.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12555, 'Penelope', 'A most unlikely creature.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12556, 'Peter', 'I bet he can\'t wait until it\'s cooked.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12557, 'Peanut', 'A most unlikely creature.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12558, 'Mud', 'Marginally better than egg on your face.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12559, 'Ogre wig', 'The height of style?', 1, NULL, 24, 36, NULL, NULL, 50, 1004, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12560, 'Ogre wig', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1004, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12561, 'Ogre kilt', 'It\'s a little big on me.', 1, NULL, 40, 60, NULL, NULL, 60, 197, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12562, 'Ogre kilt', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 197, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12563, 'Ogre top', 'It\'s a little big on me.', 1, NULL, 24, 36, NULL, NULL, 60, 536, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12564, 'Ogre top', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 536, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12565, 'Ogre boots', 'Good for stomping.', 1, NULL, 24, 36, NULL, NULL, 60, 420, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12566, 'Ogre boots', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 420, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12567, 'Diseased kebbit fur', 'It\'s a slightly sickly-looking fur.', 1, NULL, 24, 36, NULL, NULL, NULL, 1468, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12568, 'Davy kebbit hat', 'A furry hat with an unnerving tail.', 1, NULL, 40, 60, NULL, NULL, NULL, 3656, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12569, 'Davy kebbit hat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3656, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12570, 'Ogre club', 'A big piece of tree.', 1, NULL, 72, 108, NULL, NULL, NULL, 77, NULL, NULL, NULL, 8683, 823, 8684, 8685, 8684, 8684, 8684, 1157, 3, 7, NULL, '-6,-2,15,0,0,0,0,0,0,0,0,12,0,0,0', 10, NULL, NULL, NULL, NULL, NULL, '{0,5}', 10, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12571, 'Ogre club', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 77, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12572, 'Lavender', 'A delicate, sweet-smelling flower.', 1, NULL, 1, 2, NULL, NULL, NULL, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12573, 'Lavender', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12574, 'Fever grass', 'A stiff, pungent grass.', 1, NULL, 1, 2, NULL, NULL, NULL, 31, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12575, 'Fever grass', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 31, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12576, 'Tansymum', 'A cheerful, aromatic flower.', 1, NULL, 1, 2, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12577, 'Tansymum', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12578, 'Smouldering fever grass', 'A stiff, pungent grass.', 1, NULL, 1, 2, NULL, NULL, NULL, 41, NULL, NULL, NULL, 8682, 8682, 8681, 8690, 8681, 8681, 8681, 294, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12579, 'Smouldering lavender', 'A delicate, sweet-smelling flower.', 1, NULL, 1, 2, NULL, NULL, NULL, 29, NULL, NULL, NULL, 8682, 8682, 8681, 8690, 8681, 8681, 8681, 294, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12580, 'Smouldering tansymum', 'A cheerful, aromatic flower.', 1, NULL, 1, 2, NULL, NULL, NULL, 18, NULL, NULL, NULL, 8682, 8682, 8681, 8690, 8681, 8681, 8681, 294, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12581, 'Eucalyptus logs', 'Logs cut from a eucalyptus tree.', 1, NULL, 50, 75, NULL, NULL, NULL, 507, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(12582, 'Eucalyptus logs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 507, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25000, NULL, NULL, NULL, NULL, NULL, 0), +(12583, 'Eucalyptus pyre logs', 'Logs cut from a eucalyptus tree.', 1, NULL, 80, 120, NULL, NULL, NULL, 3609, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(12584, 'Eucalyptus pyre logs', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3609, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1000, NULL, NULL, NULL, NULL, NULL, 0), +(12588, 'Primweed', 'A modest and mild plant.', 1, NULL, NULL, 1, NULL, NULL, NULL, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12589, 'Primweed', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12590, 'Stinkbloom', 'A pretty but putrid flower.', 1, NULL, NULL, 1, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.01, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12591, 'Stinkbloom', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12592, 'Diseased kebbit fur', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12593, 'Catapult schematics', 'The plans for repairing the Tyras Camp catapult.', NULL, NULL, NULL, NULL, 1, 'If you need to, you can get another from the Tyras Camp catapult engineer.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12594, 'Engineer\'s letter', 'General Hining wants me to deliver this to the Catapult Engineer.', NULL, NULL, NULL, NULL, 1, 'If you need to, you can get another from General Hining in the Tyras Camp.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12595, 'Sailor\'s hat', 'Taken from a drunken sailor in Port Sarim.', NULL, NULL, NULL, NULL, 1, 'You can always get another from the drunken sailor in Port Sarim.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12596, 'Metal catapult parts', 'Dwarf-made parts for repairing the Tyras Camp catapult.', NULL, NULL, NULL, NULL, 1, 'You can get another set from Thaki the delivery dwarf in Port Sarim.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12597, 'Mahogany catapult part', 'Used to repair the Tyras Camp catapult.', NULL, NULL, NULL, NULL, 1, 'If you need to, you can make another from the Tyras Camp catapult engineer\'s schematics.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12598, 'Mahogany catapult part', 'Used to repair the Tyras Camp catapult.', NULL, NULL, NULL, NULL, 1, 'If you need to, you can make another from the Tyras Camp catapult engineer\'s schematics.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12599, 'Mahogany catapult part', 'Used to repair the Tyras Camp catapult.', NULL, NULL, NULL, NULL, 1, 'If you need to, you can make another from the Tyras Camp catapult engineer\'s schematics.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12600, 'Mahogany catapult part', 'Used to repair the Tyras Camp catapult.', NULL, NULL, NULL, NULL, 1, 'If you need to, you can make another from the Tyras Camp catapult engineer\'s schematics.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12601, 'Mahogany catapult part', 'Used to repair the Tyras Camp catapult.', NULL, NULL, NULL, NULL, 1, 'If you need to, you can make another from the Tyras Camp catapult engineer\'s schematics.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12602, 'Mahogany catapult part', 'Used to repair the Tyras Camp catapult.', NULL, NULL, NULL, NULL, 1, 'If you need to, you can make another from the Tyras Camp catapult engineer\'s schematics.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12603, 'Mahogany catapult part', 'Used to repair the Tyras Camp catapult.', NULL, NULL, NULL, NULL, 1, 'If you need to, you can make another from the Tyras Camp catapult engineer\'s schematics.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12604, 'Mahogany catapult part', 'Used to repair the Tyras Camp catapult.', NULL, NULL, NULL, NULL, 1, 'If you need to, you can make another from the Tyras Camp catapult engineer\'s schematics.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12605, 'Mahogany catapult part', 'Used to repair the Tyras Camp catapult.', NULL, NULL, NULL, NULL, 1, 'If you need to, you can make another from the Tyras Camp catapult engineer\'s schematics.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12606, 'Mahogany catapult part', 'Used to repair the Tyras Camp catapult.', NULL, NULL, NULL, NULL, 1, 'If you need to, you can make another from the Tyras Camp catapult engineer\'s schematics.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12607, 'Picture', 'Used to repair the Tyras Camp catapult.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12608, 'Amulet of farming(1)', 'An amulet of Farming with X charges.', 1, NULL, 80, 120, NULL, NULL, 200, 271, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12609, 'Amulet of farming(1)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 271, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12610, 'Amulet of farming(2)', 'An amulet of Farming with X charges.', 1, NULL, 80, 120, NULL, NULL, 200, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12611, 'Amulet of farming(2)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12612, 'Amulet of farming(3)', 'An amulet of Farming with X charges.', 1, NULL, 80, 120, NULL, NULL, 200, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12613, 'Amulet of farming(3)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12614, 'Amulet of farming(4)', 'An amulet of Farming with X charges.', 1, NULL, 80, 120, NULL, NULL, 200, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12615, 'Amulet of farming(4)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12616, 'Amulet of farming(5)', 'An amulet of Farming with X charges.', 1, NULL, 80, 120, NULL, NULL, 200, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12617, 'Amulet of farming(5)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12618, 'Amulet of farming(6)', 'An amulet of Farming with X charges.', 1, NULL, 80, 120, NULL, NULL, 200, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12619, 'Amulet of farming(6)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12620, 'Amulet of farming(7)', 'An amulet of Farming with X charges.', 1, NULL, 80, 120, NULL, NULL, 200, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12621, 'Amulet of farming(7)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12622, 'Amulet of farming(8)', 'An amulet of Farming with X charges.', 1, NULL, 80, 120, NULL, NULL, 200, 210, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12623, 'Amulet of farming(8)', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 210, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12624, 'Ogleroot', 'An ogleroot. How odd.', 1, NULL, 8, 12, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12625, 'Flag', 'A flag to put in the ground.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', 500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12626, 'Test paper', 'Player Safety test', NULL, NULL, NULL, 1, 1, 'You will need to get another exam paper from Professor Henry', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12627, 'Antique lamp', 'I wonder what happens if I rub it.', NULL, NULL, NULL, NULL, 1, 'Are you sure you want to destroy the lamp? You won\'t be able to get another one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12628, 'Antique lamp', 'I wonder what happens if I rub it.', NULL, NULL, NULL, NULL, 1, 'Are you sure you want to destroy the lamp? You won\'t be able to get another one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12629, 'Safety gloves', 'Gloves from the Stronghold of Player Safety.', NULL, NULL, NULL, NULL, 1, 'You can get another pair of gloves from the chest in the Stronghold of Player Safety.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,0,0,1,2,2,1,2,1,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12630, 'Rubium', 'Be careful with this near water.', NULL, NULL, NULL, NULL, NULL, 'Rubium is very unstable', 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12631, 'Toy train', '(While on the ground) Kennith\'s lost toy. (While in your inventory) A wooden toy train.', NULL, NULL, NULL, NULL, NULL, 'The train is tiny', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12632, 'Note', 'Swap this note at any bank for the equivalent item.', 1, NULL, 160, 160, NULL, 'You can reclaim this item from the place you found it.', 160, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12633, 'Super fishing explosive', 'The jar is shaking violently!', NULL, NULL, 24, 36, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12634, 'Chocatrice cape', 'A thick, orange cape.', NULL, NULL, NULL, NULL, 1, 'You can get another chocatrice cape from Diango in Draynor Village.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12635, 'Easter egg', 'Happy Easter.', 1, NULL, 4, 6, NULL, 'You can reclaim this item from the place you found it.', NULL, 64747137, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12636, 'Easter egg', 'Happy Easter.', 1, NULL, 4, 6, NULL, 'You can reclaim this item from the place you found it.', NULL, 64747137, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12637, 'Easter egg', 'Happy Easter.', 1, NULL, 4, 6, NULL, 'You can reclaim this item from the place you found it.', NULL, 64747137, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12638, 'Easter egg', 'Happy Easter.', 1, NULL, 4, 6, NULL, 'You can reclaim this item from the place you found it.', NULL, 64747137, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12639, 'Easter egg', 'Happy Easter.', 1, NULL, 4, 6, NULL, 'You can reclaim this item from the place you found it.', NULL, 64747137, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12640, 'Easter egg', 'Happy Easter.', 1, NULL, 4, 6, NULL, 'You can reclaim this item from the place you found it.', NULL, 64747137, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12641, 'Easter egg', 'Happy Easter.', 1, NULL, 4, 6, NULL, 'You can reclaim this item from the place you found it.', NULL, 64747137, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12642, 'Easter egg', 'Happy Easter.', 1, NULL, 4, 6, NULL, 'You can reclaim this item from the place you found it.', NULL, 64747137, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12643, 'Easter egg', 'Happy Easter.', 1, NULL, 4, 6, NULL, 'You can reclaim this item from the place you found it.', NULL, 64747137, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12644, 'Easter egg', 'Happy Easter.', 1, NULL, 4, 6, NULL, 'You can reclaim this item from the place you found it.', NULL, 64747137, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12645, 'Chocatrice cape', 'A thick, orange cape.', NULL, NULL, NULL, NULL, 1, 'You can get another chocatrice cape from Diango in Draynor Village.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12646, 'Chocolate egg', 'A chocolate egg wrapped in coloured foil.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12647, 'Chocolate egg', 'A chocolate egg wrapped in coloured foil.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12648, 'Chocolate egg', 'A chocolate egg wrapped in coloured foil.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12649, 'Bucket', 'It\'s an empty bucket.', 1, NULL, NULL, 1, NULL, NULL, 2, 50, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12650, 'Bucket of water', 'Common bucket: It\'s a bucket of water.2008 Easter event: It\'s a bucket of water from the Easter Bunny\'s warren. Regular bucket filled from Braindeath Island: It\'s a bucket of... water?', 1, NULL, 2, 3, NULL, NULL, NULL, 74, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12651, 'Bucket of water', 'Common bucket: It\'s a bucket of water.2008 Easter event: It\'s a bucket of water from the Easter Bunny\'s warren. Regular bucket filled from Braindeath Island: It\'s a bucket of... water?', 1, NULL, 2, 3, NULL, NULL, NULL, 74, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12652, 'Bucket of coal', 'It\'s a bucket of coal from the Easter Bunny\'s warren.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12653, 'Bucket of coal', 'It\'s a bucket of coal from the Easter Bunny\'s warren.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12654, 'Cockatrice egg', 'A stripy brown egg.', 1, NULL, 40, 60, NULL, 'Are you sure you want to destroy this object?
You can get another in the Easter Bunny\'s warren.', NULL, 1255, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12655, 'Chocatrice egg', 'A cockatrice egg that has been dipped in molten chocolate.', NULL, NULL, NULL, NULL, 1, 'Are you sure you want to destroy this object?
You can make another at the Easter Bunny\'s warren.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12657, 'Chocolate chunks', 'Some chocolate chunks.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12658, 'Adamant full helm (e)', 'A full face helmet.', 1, NULL, 1408, 2112, NULL, NULL, 3520, 1913, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,2', '0,0,0,-6,-2,19,21,16,-1,19,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12659, 'Adamant full helm (charged)', 'A full face helmet.', 1, NULL, 1408, 2112, NULL, NULL, 3520, 1913, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,2', '0,0,0,-6,-2,19,21,16,-1,19,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12660, 'Snakeskin bandana (e)', 'Lightweight head protection.', 1, NULL, 120, 180, NULL, NULL, NULL, 1040, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,2,1', '0,0,0,-5,4,2,4,4,2,2,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12661, 'Snakeskin bandana (charged)', 'Lightweight head protection.', 1, NULL, 120, 180, NULL, NULL, NULL, 1040, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,2,1', '0,0,0,-5,4,2,4,4,2,2,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12662, 'Splitbark helm (e)', 'A wooden helmet.', 1, 1, 4000, 6000, NULL, NULL, NULL, 5623, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '3,1,0', '0,0,0,3,-2,10,9,11,3,0,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12663, 'Splitbark helm (charged)', 'A wooden helmet.', 1, 1, 4000, 6000, NULL, NULL, NULL, 5623, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '3,1,0', '0,0,0,3,-2,10,9,11,3,0,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12664, 'Rune full helm (e)', 'A full face helmet.', 1, 1, 14080, 21120, NULL, NULL, NULL, 21200, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,3', '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12665, 'Rune full helm (charged)', 'A full face helmet.', 1, 1, 14080, 21120, NULL, NULL, NULL, 21200, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,3', '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12666, 'Dragon med helm (e)', 'Makes the wearer pretty intimidating.', 1, 1, 40000, 60000, NULL, NULL, NULL, 61200, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,0,4', '0,0,0,-3,-1,33,35,32,-1,34,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12667, 'Dragon med helm (charged)', 'Makes the wearer pretty intimidating.', 1, 1, 40000, 60000, NULL, NULL, NULL, 61200, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,0,4', '0,0,0,-3,-1,33,35,32,-1,34,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1.3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12668, 'Lunar helm (e)', 'A mystical helmet.', NULL, NULL, 40, 60, 1, 'The Oneiromancer might be able to help you get another.', 15000, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '3,1,0', '0,0,0,3,-2,8,7,10,2,0,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12669, 'Lunar helm (charged)', 'A mystical helmet.', NULL, NULL, 40, 60, 1, 'The Oneiromancer might be able to help you get another.', 15000, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '3,1,0', '0,0,0,3,-2,8,7,10,2,0,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12670, 'Armadyl helmet (e)', 'A helmet of great craftmanship.', 1, 1, 8000, 12000, NULL, NULL, NULL, 3932989, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,5,2', '-5,-5,-5,-5,10,6,8,10,10,8,12,0,1,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12671, 'Armadyl helmet (charged)', 'A helmet of great craftmanship.', 1, 1, 8000, 12000, NULL, NULL, NULL, 3932989, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,5,2', '-5,-5,-5,-5,10,6,8,10,10,8,12,0,1,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12672, 'Archer helm (e)', 'This helmet is worn by archers.', 1, 1, 31200, 46800, NULL, NULL, 78000, 41000, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '-5,-5,-5,-5,6,6,8,10,6,6,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12673, 'Archer helm (charged)', 'This helmet is worn by archers.', 1, 1, 31200, 46800, NULL, NULL, 78000, 41000, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '-5,-5,-5,-5,6,6,8,10,6,6,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12674, 'Berserker helm (e)', 'This helmet is worn by berserkers.', 1, 1, 31200, 46800, NULL, NULL, 78000, 48800, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,3', '0,0,0,-5,-5,31,29,33,0,30,7,3,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12675, 'Berserker helm (charged)', 'This helmet is worn by berserkers.', 1, 1, 31200, 46800, NULL, NULL, 78000, 48800, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,3', '0,0,0,-5,-5,31,29,33,0,30,7,3,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12676, 'Warrior helm (e)', 'This helm is worn by warriors.', 1, 1, 31200, 46800, NULL, NULL, 78000, 48200, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,3', '0,5,0,-5,-5,31,33,29,0,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12677, 'Warrior helm (charged)', 'This helm is worn by warriors.', 1, 1, 31200, 46800, NULL, NULL, 78000, 48200, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '1,0,3', '0,5,0,-5,-5,31,33,29,0,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12678, 'Farseer helm (e)', 'This helm is worn by farseers.', 1, 1, 31200, 46800, NULL, NULL, 78000, 46400, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '3,1,0', '-5,-5,-5,6,-5,8,10,12,6,0,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12679, 'Farseer helm (charged)', 'This helm is worn by farseers.', 1, 1, 31200, 46800, NULL, NULL, 78000, 46400, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '3,1,0', '-5,-5,-5,6,-5,8,10,12,6,0,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12680, 'Helm of neitiznot (e)', 'A gift from Neitiznot\'s Burgher.', 1, NULL, 20000, 30000, NULL, NULL, 50000, 44831, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,0,4', '0,0,0,0,0,31,29,34,3,30,8,3,3,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12681, 'Helm of neitiznot (charged)', 'A gift from Neitiznot\'s Burgher.', 1, NULL, 20000, 30000, NULL, NULL, 50000, 44831, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '2,0,4', '0,0,0,0,0,31,29,34,3,30,8,3,3,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12682, 'Baby monkey', '(Baby) It\'s a tiny, cheeky monkey. (Adult) Hide the bananas!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12684, 'Baby monkey', '(Baby) It\'s a tiny, cheeky monkey. (Adult) Hide the bananas!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12686, 'Baby monkey', '(Baby) It\'s a tiny, cheeky monkey. (Adult) Hide the bananas!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12688, 'Baby monkey', '(Baby) It\'s a tiny, cheeky monkey. (Adult) Hide the bananas!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12690, 'Baby monkey', '(Baby) It\'s a tiny, cheeky monkey. (Adult) Hide the bananas!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12692, 'Baby monkey', '(Baby) It\'s a tiny, cheeky monkey. (Adult) Hide the bananas!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12694, 'Baby monkey', '(Baby) It\'s a tiny, cheeky monkey. (Adult) Hide the bananas!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12696, 'Baby monkey', '(Baby) It\'s a tiny, cheeky monkey. (Adult) Hide the bananas!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12698, 'Baby monkey', '(Baby) It\'s a tiny, cheeky monkey. (Adult) Hide the bananas!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12700, 'Terrier puppy', 'A hyperactive little puppy. (Puppy)(Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12701, 'Terrier', 'A hyperactive little puppy. (Puppy)(Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12702, 'Terrier puppy', 'A hyperactive little puppy. (Puppy)(Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12703, 'Terrier', 'A hyperactive little puppy. (Puppy)(Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12704, 'Greyhound puppy', 'This is one fast little pooch. (Puppy)An aerodynamic doggy. (Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12705, 'Greyhound', 'This is one fast little pooch. (Puppy)An aerodynamic doggy. (Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(12706, 'Greyhound puppy', 'This is one fast little pooch. (Puppy)An aerodynamic doggy. (Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12707, 'Greyhound', 'This is one fast little pooch. (Puppy)An aerodynamic doggy. (Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12708, 'Labrador puppy', 'Puppy - Soft but strong... and cute.Adult - My most faithful friend.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12709, 'Labrador', 'Puppy - Soft but strong... and cute.Adult - My most faithful friend.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12710, 'Labrador puppy', 'Puppy - Soft but strong... and cute.Adult - My most faithful friend.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12711, 'Labrador', 'Puppy - Soft but strong... and cute.Adult - My most faithful friend.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12712, 'Dalmatian puppy', 'Now, if only I could find another hundred... (Puppy)A purebred doggy. (Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12713, 'Dalmatian', 'Now, if only I could find another hundred... (Puppy)A purebred doggy. (Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12714, 'Dalmatian puppy', 'Now, if only I could find another hundred... (Puppy)A purebred doggy. (Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12715, 'Dalmatian', 'Now, if only I could find another hundred... (Puppy)A purebred doggy. (Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12716, 'Sheepdog puppy', 'This little puppy is very quiet. (Puppy)Come by! Come by! (Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12717, 'Sheepdog', 'This little puppy is very quiet. (Puppy)Come by! Come by! (Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12718, 'Sheepdog puppy', 'This little puppy is very quiet. (Puppy)Come by! Come by! (Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12719, 'Sheepdog', 'This little puppy is very quiet. (Puppy)Come by! Come by! (Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12720, 'Bulldog puppy', 'One proud little puppy. (Puppy)Looks like it\'s chewing a wasp. (Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12721, 'Bulldog', 'One proud little puppy. (Puppy)Looks like it\'s chewing a wasp. (Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12722, 'Bulldog puppy', 'One proud little puppy. (Puppy)Looks like it\'s chewing a wasp. (Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12723, 'Bulldog', 'One proud little puppy. (Puppy)Looks like it\'s chewing a wasp. (Adult)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{4,23}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12724, 'Raven chick', 'Chick: A raven chick.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12725, 'Raven', 'Chick: A raven chick.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12726, 'Raven chick', 'Chick: A raven chick.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12727, 'Raven', 'Chick: A raven chick.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12728, 'Raven chick', 'Chick: A raven chick.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12729, 'Raven', 'Chick: A raven chick.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12730, 'Raven chick', 'Chick: A raven chick.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12731, 'Raven', 'Chick: A raven chick.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12732, 'Raven chick', 'Chick: A raven chick.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12733, 'Raven', 'Chick: A raven chick.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12734, 'Baby raccoon', '(Baby) A stripy little baby raccoon.(Adult) He can run with us.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12735, 'Raccoon', '(Baby) A stripy little baby raccoon.(Adult) He can run with us.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12736, 'Baby raccoon', '(Baby) A stripy little baby raccoon.(Adult) He can run with us.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12737, 'Raccoon', '(Baby) A stripy little baby raccoon.(Adult) He can run with us.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12738, 'Baby gecko', '(Baby) It\'s so adorably tiny! (Adult) How cute!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12739, 'Baby gecko', '(Baby) It\'s so adorably tiny! (Adult) How cute!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12740, 'Baby gecko', '(Baby) It\'s so adorably tiny! (Adult) How cute!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12741, 'Baby gecko', '(Baby) It\'s so adorably tiny! (Adult) How cute!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12742, 'Gecko', '(Baby) It\'s so adorably tiny! (Adult) How cute!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12743, 'Gecko', '(Baby) It\'s so adorably tiny! (Adult) How cute!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12744, 'Gecko', '(Baby) It\'s so adorably tiny! (Adult) How cute!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12745, 'Gecko', '(Baby) It\'s so adorably tiny! (Adult) How cute!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12746, 'Baby giant crab', 'Baby: Little NipperAdult: Bigger Nipper.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,40}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12747, 'Giant crab', 'Baby: Little NipperAdult: Bigger Nipper.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,40}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12748, 'Baby giant crab', 'Baby: Little NipperAdult: Bigger Nipper.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,40}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12749, 'Giant crab', 'Baby: Little NipperAdult: Bigger Nipper.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,40}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12750, 'Baby giant crab', 'Baby: Little NipperAdult: Bigger Nipper.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,40}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12751, 'Giant crab', 'Baby: Little NipperAdult: Bigger Nipper.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,40}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12752, 'Baby giant crab', 'Baby: Little NipperAdult: Bigger Nipper.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,40}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12753, 'Giant crab', 'Baby: Little NipperAdult: Bigger Nipper.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,40}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12754, 'Baby squirrel', 'Adult: An experienced nut-thief.Baby: A tiny nut-thief.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12755, 'Squirrel', 'Adult: An experienced nut-thief.Baby: A tiny nut-thief.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12756, 'Baby squirrel', 'Adult: An experienced nut-thief.Baby: A tiny nut-thief.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12757, 'Squirrel', 'Adult: An experienced nut-thief.Baby: A tiny nut-thief.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12758, 'Baby squirrel', 'Adult: An experienced nut-thief.Baby: A tiny nut-thief.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12759, 'Squirrel', 'Adult: An experienced nut-thief.Baby: A tiny nut-thief.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12760, 'Baby squirrel', 'Adult: An experienced nut-thief.Baby: A tiny nut-thief.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12761, 'Squirrel', 'Adult: An experienced nut-thief.Baby: A tiny nut-thief.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12763, 'Baby penguin', '(Baby) Can\'t fly and can barely walk, but adorable nonetheless. (adult) Emperor of all he surveys.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12765, 'Baby penguin', '(Baby) Can\'t fly and can barely walk, but adorable nonetheless. (adult) Emperor of all he surveys.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12766, 'Vulture chick', 'If you see them circling: run.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12767, 'Vulture', 'If you see them circling: run.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12768, 'Vulture chick', 'If you see them circling: run.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12769, 'Vulture', 'If you see them circling: run.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12770, 'Vulture chick', 'If you see them circling: run.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12771, 'Vulture', 'If you see them circling: run.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12772, 'Vulture chick', 'If you see them circling: run.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12773, 'Vulture', 'If you see them circling: run.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12774, 'Vulture chick', 'If you see them circling: run.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12775, 'Vulture', 'If you see them circling: run.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12776, 'Swamp titan pouch', NULL, NULL, NULL, 1669, 2504, NULL, NULL, NULL, 2613, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,85}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12777, 'Swamp titan pouch', NULL, 1, NULL, 1669, 2504, NULL, NULL, NULL, 2613, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12778, 'Spirit mosquito pouch', NULL, NULL, NULL, 179, 269, NULL, NULL, NULL, 130, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{17,23}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12779, 'Spirit mosquito pouch', NULL, 1, NULL, 179, 269, NULL, NULL, NULL, 130, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12780, 'Void spinner pouch', NULL, NULL, NULL, 909, 1364, NULL, NULL, NULL, 16100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,34}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12781, 'Void spinner pouch', NULL, 1, NULL, 909, 1364, NULL, NULL, NULL, 16100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12782, 'Forge regent pouch', NULL, NULL, NULL, 1579, 2369, NULL, NULL, NULL, 2458, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,76}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12783, 'Forge regent pouch', NULL, 1, NULL, 1579, 2369, NULL, NULL, NULL, 2458, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12784, 'Spirit larupia pouch', NULL, NULL, NULL, 1719, 2579, NULL, NULL, NULL, 4097, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,57}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12785, 'Spirit larupia pouch', NULL, 1, NULL, 1719, 2579, NULL, NULL, NULL, 4097, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12786, 'Geyser titan pouch', NULL, NULL, NULL, 2389, 3584, NULL, NULL, NULL, 3856, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,89}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12787, 'Geyser titan pouch', NULL, 1, NULL, 2389, 3584, NULL, NULL, NULL, 3856, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12788, 'Lava titan pouch', NULL, NULL, NULL, 2359, 3539, NULL, NULL, NULL, 3840, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,83}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12789, 'Lava titan pouch', NULL, 1, NULL, 2359, 3539, NULL, NULL, NULL, 3840, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12790, 'Steel titan pouch', NULL, NULL, NULL, 1949, 2924, NULL, NULL, NULL, 5800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,99}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12791, 'Steel titan pouch', NULL, 1, NULL, 1949, 2924, NULL, NULL, NULL, 5800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12792, 'Obsidian golem pouch', NULL, NULL, NULL, 2119, 3179, NULL, NULL, NULL, 3436, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,73}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12793, 'Obsidian golem pouch', NULL, 1, NULL, 2119, 3179, NULL, NULL, NULL, 3436, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12794, 'Talon beast pouch', NULL, NULL, NULL, 1909, 2864, NULL, NULL, NULL, 3017, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,77}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12795, 'Talon beast pouch', NULL, 1, NULL, 1909, 2864, NULL, NULL, NULL, 3017, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12796, 'Abyssal titan pouch', NULL, NULL, NULL, 1299, 1949, NULL, NULL, NULL, 2991, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,93}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12797, 'Abyssal titan pouch', NULL, 1, NULL, 1299, 1949, NULL, NULL, NULL, 2991, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12798, 'Void torcher pouch', NULL, NULL, NULL, 909, 1364, NULL, NULL, NULL, 18300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,34}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12799, 'Void torcher pouch', NULL, 1, NULL, 909, 1364, NULL, NULL, NULL, 18300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12800, 'Giant chinchompa pouch', NULL, NULL, NULL, 1009, 1514, NULL, NULL, NULL, 1513, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,29}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12801, 'Giant chinchompa pouch', NULL, 1, NULL, 1009, 1514, NULL, NULL, NULL, 1513, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12802, 'Fire titan pouch', NULL, NULL, NULL, 2149, 3224, NULL, NULL, NULL, 3567, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,79}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12803, 'Fire titan pouch', NULL, 1, NULL, 2149, 3224, NULL, NULL, NULL, 3567, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12804, 'Moss titan pouch', NULL, NULL, NULL, 2189, 3284, NULL, NULL, NULL, 3548, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,79}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12805, 'Moss titan pouch', NULL, 1, NULL, 2189, 3284, NULL, NULL, NULL, 3548, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12806, 'Ice titan pouch', NULL, NULL, NULL, 2149, 3224, NULL, NULL, NULL, 7184, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,79}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12807, 'Ice titan pouch', NULL, 1, NULL, 2149, 3224, NULL, NULL, NULL, 7184, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12808, 'Spirit tz-kih pouch', NULL, NULL, NULL, 809, 1214, NULL, NULL, NULL, 1116, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{22,23}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12809, 'Spirit tz-kih pouch', NULL, 1, NULL, 809, 1214, NULL, NULL, NULL, 1116, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12810, 'Spirit graahk pouch', NULL, NULL, NULL, 1709, 2564, NULL, NULL, NULL, 7919, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,57}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12811, 'Spirit graahk pouch', NULL, 1, NULL, 1709, 2564, NULL, NULL, NULL, 7919, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12812, 'Spirit kyatt pouch', NULL, NULL, NULL, 1699, 2549, NULL, NULL, NULL, 13300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,57}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12813, 'Spirit kyatt pouch', NULL, 1, NULL, 1699, 2549, NULL, NULL, NULL, 13300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12814, 'Void shifter pouch', NULL, NULL, NULL, 909, 1364, NULL, NULL, NULL, 18600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,34}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12815, 'Void shifter pouch', NULL, 1, NULL, 909, 1364, NULL, NULL, NULL, 18600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12816, 'Pyrelord pouch', NULL, NULL, NULL, 1279, 1919, NULL, NULL, NULL, 1951, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,46}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12817, 'Pyrelord pouch', NULL, 1, NULL, 1279, 1919, NULL, NULL, NULL, 1951, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12818, 'Void ravager pouch', NULL, NULL, NULL, 909, 1364, NULL, NULL, NULL, 10700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,34}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12819, 'Void ravager pouch', NULL, 1, NULL, 909, 1364, NULL, NULL, NULL, 10700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12820, 'Ravenous locust pouch', NULL, NULL, NULL, 959, 1439, NULL, NULL, NULL, 1382, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,70}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12821, 'Ravenous locust pouch', NULL, 1, NULL, 959, 1439, NULL, NULL, NULL, 1382, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12822, 'Iron titan pouch', NULL, NULL, NULL, 2149, 3224, NULL, NULL, NULL, 3470, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,95}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12823, 'Iron titan pouch', NULL, 1, NULL, 2149, 3224, NULL, NULL, NULL, 3470, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12824, 'Titan\'s con. scroll', NULL, NULL, NULL, 214, 322, NULL, NULL, NULL, 380, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,79}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12825, 'Steel of legends scroll', NULL, NULL, NULL, 194, 292, NULL, NULL, NULL, 646, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,99}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12826, 'Volcanic str. scroll', NULL, NULL, NULL, 211, 317, NULL, NULL, NULL, 271, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,73}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12827, 'Essence shipment scroll', NULL, NULL, NULL, 129, 194, NULL, NULL, NULL, 310, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,93}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12828, 'Iron within scroll', NULL, NULL, NULL, 214, 322, NULL, NULL, NULL, 389, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,95}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12829, 'Immense heat scroll', NULL, NULL, NULL, 127, 191, NULL, NULL, NULL, 146, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,46}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12830, 'Famine scroll', NULL, NULL, NULL, 95, 143, NULL, NULL, NULL, 149, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,70}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12831, 'Deadly claw scroll', NULL, NULL, NULL, 190, 286, NULL, NULL, NULL, 245, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,77}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12832, 'Swamp plague scroll', NULL, NULL, NULL, 166, 250, NULL, NULL, NULL, 192, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,85}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12833, 'Boil scroll', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 294, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,89}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12834, 'Explode scroll', NULL, NULL, NULL, 238, 358, NULL, NULL, NULL, 103, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,29}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12835, 'Goad scroll', NULL, NULL, NULL, 170, 256, NULL, NULL, NULL, 250, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,57}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12836, 'Ambush scroll', NULL, NULL, NULL, 169, 254, NULL, NULL, NULL, 1428, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,57}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12837, 'Ebon thunder scroll', NULL, NULL, NULL, 211, 317, NULL, NULL, NULL, 300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,83}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12838, 'Pester scroll', NULL, NULL, NULL, 17, 26, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{17,23}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12839, 'Fireball assault scroll', NULL, NULL, NULL, 80, 121, NULL, NULL, NULL, 78, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{22,23}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12840, 'Rending scroll', NULL, NULL, NULL, 171, 257, NULL, NULL, NULL, 196, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,57}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12841, 'Inferno scroll', NULL, NULL, NULL, 157, 236, NULL, NULL, NULL, 173, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '{23,76}', NULL, 5000, NULL, NULL, NULL, NULL, NULL, 0), +(12842, 'Gnomecopter', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 8964, 8963, 8961, 8963, 8963, 8963, 8963, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12843, 'Gnomecopter ticket', 'It tells gnomecopters where you wish to go.', NULL, NULL, NULL, NULL, 1, 'This is for use with the gnomecopters, north of Lumbridge. Sasquine Huburns will give you another one.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12844, 'Toy kite', 'A kite with a dragon on it.', NULL, NULL, 40, 60, NULL, NULL, 100, NULL, NULL, NULL, NULL, 8981, 8987, 8982, 8986, 8985, 8983, 8984, 593, 3, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12845, 'Stone of power', 'A stone used to gather energy.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, 8998, 9000, 8997, 9004, 9001, 9002, 9003, 370, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12846, 'Stone of power', 'A stone used to gather energy.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, 8998, 9000, 8997, 9004, 9001, 9002, 9003, 370, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12847, 'Stone of power', 'A stone used to gather energy.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, 8998, 9000, 8997, 9004, 9001, 9002, 9003, 370, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12848, 'Stone of power', 'A stone used to gather energy.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, 8998, 9000, 8997, 9004, 9001, 9002, 9003, 370, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12849, 'Stone of power', 'A stone used to gather energy.', NULL, NULL, NULL, NULL, 1, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, 8998, 9000, 8997, 9004, 9001, 9002, 9003, 370, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12850, 'Elemental rune', 'A generic elemental rune', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12851, 'Catalytic rune', 'A generic non-elemental rune', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12852, 'Fist of guthix token', 'A token awarded for taking part in the Fist of Guthix minigame.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12853, 'Bandages', 'A box of bandages for healing.', 1, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12855, 'Tele-orb', 'Teleports you to the centre of the arena.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12856, 'Irit gloves', 'A pair of mystical gloves.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12857, 'Avantoe gloves', 'A pair of mystical gloves.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12858, 'Kwuarm gloves', 'A pair of mystical gloves.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', 200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12859, 'Cadantine gloves', 'A pair of mystical gloves.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', 200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12860, 'Swordfish gloves', 'A pair of mystical gloves.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', 200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12861, 'Shark gloves', 'A pair of mystical gloves', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', 200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12862, 'Dragon slayer gloves', 'A pair of mystical gloves.', NULL, NULL, NULL, NULL, NULL, 'You can reclaim this item from the place you found it.', 200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12863, 'Air runecrafting gloves', 'A pair of mystical gloves.', NULL, NULL, NULL, NULL, 1, 'You can buy a new pair from the druids at the Fist of Guthix activity.', 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12864, 'Water runecrafting gloves', 'A pair of mystical gloves.', NULL, NULL, NULL, NULL, 1, 'You can buy a new pair from the druids at the Fist of Guthix activity.', 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12865, 'Earth runecrafting gloves', 'A pair of mystical gloves.', NULL, NULL, NULL, NULL, 1, 'You can buy a new pair from the druids at the Fist of Guthix minigame.', 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12866, 'Battle hood 100', 'Its arcane power is waning.', 1, NULL, 10000, 15000, NULL, NULL, 250, 70529, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '4,3,0', '0,0,0,5,0,7,6,8,5,0,8,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}-{6,50}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12867, 'Battle hood 80', 'Its arcane power is waning.', 1, NULL, 10000, 15000, NULL, NULL, 250, 70529, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '4,3,0', '0,0,0,5,0,7,6,8,5,0,8,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}-{6,50}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12868, 'Battle hood 60', 'Its arcane power is waning.', 1, NULL, 10000, 15000, NULL, NULL, 250, 70529, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '4,3,0', '0,0,0,5,0,7,6,8,5,0,8,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}-{6,50}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12869, 'Battle hood 40', 'Its arcane power is waning.', 1, NULL, 10000, 15000, NULL, NULL, 250, 70529, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '4,3,0', '0,0,0,5,0,7,6,8,5,0,8,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}-{6,50}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12870, 'Battle hood 20', 'Its arcane power is waning.', 1, NULL, 10000, 15000, NULL, NULL, 250, 70529, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '4,3,0', '0,0,0,5,0,7,6,8,5,0,8,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}-{6,50}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12871, 'Battle hood 0', 'Its arcane power is waning.', 1, NULL, 10000, 15000, NULL, NULL, 250, 78900, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '4,3,0', '0,0,0,2,0,3,2,3,2,0,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}-{6,50}', NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(12872, 'Battle hood 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 78900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(12873, 'Battle robe top 100', 'Charged - A robe top infused with arcane power, especially created for combat spells.', 1, NULL, 20000, 30000, NULL, NULL, 1500, 537714, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '8,4,0', '0,0,0,26,0,17,15,20,26,0,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}-{6,50}', 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12874, 'Battle robe top 80', 'Charged - A robe top infused with arcane power, especially created for combat spells.', 1, NULL, 20000, 30000, NULL, NULL, 1500, 537714, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '8,4,0', '0,0,0,26,0,17,15,20,26,0,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}-{6,50}', 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12875, 'Battle robe top 60', 'Charged - A robe top infused with arcane power, especially created for combat spells.', 1, NULL, 20000, 30000, NULL, NULL, 1500, 537714, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '8,4,0', '0,0,0,26,0,17,15,20,26,0,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}-{6,50}', 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12876, 'Battle robe top 40', 'Charged - A robe top infused with arcane power, especially created for combat spells.', 1, NULL, 20000, 30000, NULL, NULL, 1500, 537714, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '8,4,0', '0,0,0,26,0,17,15,20,26,0,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}-{6,50}', 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12877, 'Battle robe top 20', 'Charged - A robe top infused with arcane power, especially created for combat spells.', 1, NULL, 20000, 30000, NULL, NULL, 1500, 537714, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '8,4,0', '0,0,0,26,0,17,15,20,26,0,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}-{6,50}', 4, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(12878, 'Battle robe top 0', 'Charged - A robe top infused with arcane power, especially created for combat spells.', 1, NULL, 20000, 30000, NULL, NULL, 1500, 431400, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '8,4,0', '0,0,0,7,0,4,4,5,7,0,8,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}-{6,50}', 4, 10, NULL, NULL, NULL, NULL, NULL, 0), +(12879, 'Battle robe top 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 431400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(12880, 'Battle robe bottom 100', 'A robe bottom infused with arcane power, especially created for combat spells.', 1, NULL, 16000, 24000, NULL, NULL, 1000, 364878, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '5,2,0', '0,0,0,20,0,14,11,16,20,0,23,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}-{6,50}', 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12881, 'Battle robe bottom 80', 'A robe bottom infused with arcane power, especially created for combat spells.', 1, NULL, 16000, 24000, NULL, NULL, 1000, 364878, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '5,2,0', '0,0,0,20,0,14,11,16,20,0,23,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}-{6,50}', 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12882, 'Battle robe bottom 60', 'A robe bottom infused with arcane power, especially created for combat spells.', 1, NULL, 16000, 24000, NULL, NULL, 1000, 364878, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '5,2,0', '0,0,0,20,0,14,11,16,20,0,23,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}-{6,50}', 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12883, 'Battle robe bottom 40', 'A robe bottom infused with arcane power, especially created for combat spells.', 1, NULL, 16000, 24000, NULL, NULL, 1000, 364878, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '5,2,0', '0,0,0,20,0,14,11,16,20,0,23,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}-{6,50}', 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12884, 'Battle robe bottom 20', 'A robe bottom infused with arcane power, especially created for combat spells.', 1, NULL, 16000, 24000, NULL, NULL, 1000, 364878, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '5,2,0', '0,0,0,20,0,14,11,16,20,0,23,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}-{6,50}', 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12885, 'Battle robe bottom 0', 'A robe bottom infused with arcane power, especially created for combat spells.', 1, NULL, 16000, 24000, NULL, NULL, 1000, 538000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '5,2,0', '0,0,0,6,0,4,3,4,6,0,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}-{6,50}', 3, 10, NULL, NULL, NULL, NULL, NULL, 0), +(12886, 'Battle robe bottom 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 538000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(12887, 'Druidic mage hood 100', 'A worn-out hood, formerly worn by the followers of Guthix.', NULL, NULL, 800, 1200, NULL, NULL, 100, 6915, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,3,0,0,0,0,3,0,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12888, 'Druidic mage hood 80', 'A worn-out hood, formerly worn by the followers of Guthix.', NULL, NULL, 800, 1200, NULL, NULL, 100, 6915, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,3,0,0,0,0,3,0,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12889, 'Druidic mage hood 60', 'A worn-out hood, formerly worn by the followers of Guthix.', NULL, NULL, 800, 1200, NULL, NULL, 100, 6915, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,3,0,0,0,0,3,0,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12890, 'Druidic mage hood 40', 'A worn-out hood, formerly worn by the followers of Guthix.', NULL, NULL, 800, 1200, NULL, NULL, 100, 6915, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,3,0,0,0,0,3,0,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12891, 'Druidic mage hood 20', 'A worn-out hood, formerly worn by the followers of Guthix.', NULL, NULL, 800, 1200, NULL, NULL, 100, 6915, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,3,0,0,0,0,3,0,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12892, 'Druidic mage hood 0', 'A worn-out hood, formerly worn by the followers of Guthix.', NULL, NULL, 800, 1200, NULL, NULL, 100, 8504, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,1,0,0,0,0,1,0,1,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 7, 10, NULL, NULL, NULL, NULL, NULL, 0), +(12893, 'Druidic mage hood 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 8504, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(12894, 'Druidic mage top 100', 'A magical robe top worn by followers of Guthix.', NULL, NULL, 2400, 3600, NULL, NULL, 300, 80273, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '2,1,0', '0,0,0,7,0,0,0,0,7,0,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12895, 'Druidic mage top 80', 'A magical robe top worn by followers of Guthix.', NULL, NULL, 2400, 3600, NULL, NULL, 300, 80273, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '2,1,0', '0,0,0,7,0,0,0,0,7,0,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12896, 'Druidic mage top 60', 'A magical robe top worn by followers of Guthix.', NULL, NULL, 2400, 3600, NULL, NULL, 300, 80273, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '2,1,0', '0,0,0,7,0,0,0,0,7,0,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12897, 'Druidic mage top 40', 'A magical robe top worn by followers of Guthix.', NULL, NULL, 2400, 3600, NULL, NULL, 300, 80273, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '2,1,0', '0,0,0,7,0,0,0,0,7,0,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12898, 'Druidic mage top 20', 'A magical robe top worn by followers of Guthix.', NULL, NULL, 2400, 3600, NULL, NULL, 300, 80273, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '2,1,0', '0,0,0,7,0,0,0,0,7,0,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12899, 'Druidic mage top 0', 'A magical robe top worn by followers of Guthix.', NULL, NULL, 2400, 3600, NULL, NULL, 300, 76300, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '2,1,0', '0,0,0,3,0,0,0,0,3,0,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 4, 10, NULL, NULL, NULL, NULL, NULL, 0), +(12900, 'Druidic mage top 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 76300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(12901, 'Druidic mage bottom 100', 'A magical robe bottom worn by a person who follows Guthix.', 1, NULL, 2000, 3000, NULL, NULL, 200, 54532, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '1,0,0', '0,0,0,6,0,0,0,0,6,0,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12902, 'Druidic mage bottom 80', 'A magical robe bottom worn by a person who follows Guthix.', 1, NULL, 2000, 3000, NULL, NULL, 200, 54532, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '1,0,0', '0,0,0,6,0,0,0,0,6,0,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12903, 'Druidic mage bottom 60', 'A magical robe bottom worn by a person who follows Guthix.', 1, NULL, 2000, 3000, NULL, NULL, 200, 54532, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '1,0,0', '0,0,0,6,0,0,0,0,6,0,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12904, 'Druidic mage bottom 40', 'A magical robe bottom worn by a person who follows Guthix.', 1, NULL, 2000, 3000, NULL, NULL, 200, 54532, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '1,0,0', '0,0,0,6,0,0,0,0,6,0,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12905, 'Druidic mage bottom 20', 'A magical robe bottom worn by a person who follows Guthix.', 1, NULL, 2000, 3000, NULL, NULL, 200, 54532, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '1,0,0', '0,0,0,6,0,0,0,0,6,0,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12906, 'Druidic mage bottom 0', 'A magical robe bottom worn by a person who follows Guthix.', 1, NULL, 2000, 3000, NULL, NULL, 200, 60800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '1,0,0', '0,0,0,2,0,0,0,0,2,0,2,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 3, 10, NULL, NULL, NULL, NULL, NULL, 0), +(12907, 'Druidic mage bottom 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 60800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(12908, 'Adamant spikeshield 100', 'Charged: A spiked square shield.Uncharged: Not so spiky anymore.', 1, NULL, 1620, 2430, NULL, NULL, 50, 2271, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,6', '0,0,0,-6,-2,25,27,23,0,25,26,1,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,35}', 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12909, 'Adamant spikeshield 80', 'Charged: A spiked square shield.Uncharged: Not so spiky anymore.', 1, NULL, 1620, 2430, NULL, NULL, 50, 2271, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,6', '0,0,0,-6,-2,25,27,23,0,25,26,1,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,35}', 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12910, 'Adamant spikeshield 60', 'Charged: A spiked square shield.Uncharged: Not so spiky anymore.', 1, NULL, 1620, 2430, NULL, NULL, 50, 2271, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,6', '0,0,0,-6,-2,25,27,23,0,25,26,1,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,35}', 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12911, 'Adamant spikeshield 40', 'Charged: A spiked square shield.Uncharged: Not so spiky anymore.', 1, NULL, 1620, 2430, NULL, NULL, 50, 2271, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,6', '0,0,0,-6,-2,25,27,23,0,25,26,1,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,35}', 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12912, 'Adamant spikeshield 20', 'Charged: A spiked square shield.Uncharged: Not so spiky anymore.', 1, NULL, 1620, 2430, NULL, NULL, 50, 2271, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,6', '0,0,0,-6,-2,25,27,23,0,25,26,1,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,35}', 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12913, 'Adamant spikeshield 0', 'Charged: A spiked square shield.Uncharged: Not so spiky anymore.', 1, NULL, 1620, 2430, NULL, NULL, 50, 2718, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,6', '0,0,0,-6,-2,11,12,10,0,11,4,1,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,35}', 5, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12914, 'Adamant spikeshield 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2718, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12915, 'Adamant berserker shield 100', 'Charged: A large, spiked metal shieldUncharged: Not so spiky anymore!', 1, NULL, 2456, 3684, NULL, NULL, 100, 19190, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,6', '0,0,0,-8,-2,28,32,30,-1,30,31,2,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,35}', 7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12916, 'Adamant berserker shield 80', 'Charged: A large, spiked metal shieldUncharged: Not so spiky anymore!', 1, NULL, 2456, 3684, NULL, NULL, 100, 19190, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,6', '0,0,0,-8,-2,28,32,30,-1,30,31,2,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,35}', 7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12917, 'Adamant berserker shield 60', 'Charged: A large, spiked metal shieldUncharged: Not so spiky anymore!', 1, NULL, 2456, 3684, NULL, NULL, 100, 19190, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,6', '0,0,0,-8,-2,28,32,30,-1,30,31,2,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,35}', 7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12918, 'Adamant berserker shield 40', 'Charged: A large, spiked metal shieldUncharged: Not so spiky anymore!', 1, NULL, 2456, 3684, NULL, NULL, 100, 19190, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,6', '0,0,0,-8,-2,28,32,30,-1,30,31,2,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,35}', 7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12919, 'Adamant berserker shield 20', 'Charged: A large, spiked metal shieldUncharged: Not so spiky anymore!', 1, NULL, 2456, 3684, NULL, NULL, 100, 19190, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,6', '0,0,0,-8,-2,28,32,30,-1,30,31,2,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,35}', 7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12920, 'Adamant berserker shield 0', 'Charged: A large, spiked metal shieldUncharged: Not so spiky anymore!', 1, NULL, 2456, 3684, NULL, NULL, 100, 23700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,6', '0,0,0,-8,-2,12,14,13,-1,8,4,1,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,35}', 7, 10, NULL, NULL, NULL, NULL, NULL, 0), +(12921, 'Adamant berserker shield 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 23700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(12922, 'Rune spikeshield 100', 'Uncharged: Not so spiky anymore.', 1, NULL, 2576, 3864, NULL, NULL, 200, 57548, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-6,-2,39,41,37,0,39,36,3,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,45}', 4, NULL, NULL, NULL, NULL, 35, NULL, 0), +(12923, 'Rune spikeshield 80', 'Uncharged: Not so spiky anymore.', 1, NULL, 2576, 3864, NULL, NULL, 200, 57548, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-6,-2,39,41,37,0,39,36,3,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,45}', 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12924, 'Rune spikeshield 60', 'Uncharged: Not so spiky anymore.', 1, NULL, 2576, 3864, NULL, NULL, 200, 57548, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-6,-2,39,41,37,0,39,36,3,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,45}', 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12925, 'Rune spikeshield 40', 'Uncharged: Not so spiky anymore.', 1, NULL, 2576, 3864, NULL, NULL, 200, 57548, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-6,-2,39,41,37,0,39,36,3,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,45}', 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12926, 'Rune spikeshield 20', 'Uncharged: Not so spiky anymore.', 1, NULL, 2576, 3864, NULL, NULL, 200, 57548, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-6,-2,39,41,37,0,39,36,3,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,45}', 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12927, 'Rune spikeshield 0', 'Uncharged: Not so spiky anymore.', 1, NULL, 2576, 3864, NULL, NULL, 200, 50500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-6,-2,14,15,13,0,14,8,2,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,45}', 4, 10, NULL, NULL, NULL, NULL, NULL, 0), +(12928, 'Rune spikeshield 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 50500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(12929, 'Rune berserker shield 100', 'Charged: A Large, spiked metal shield. Uncharged: Not so spiky anymore.', 1, NULL, 25760, 38640, NULL, NULL, 300, 82000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,45,49,47,-1,47,41,4,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,45}', 6, NULL, NULL, NULL, NULL, 35, NULL, 0), +(12930, 'Rune berserker shield 80', 'Charged: A Large, spiked metal shield. Uncharged: Not so spiky anymore.', 1, NULL, 25760, 38640, NULL, NULL, 300, 82000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,45,49,47,-1,47,41,4,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,45}', 6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12931, 'Rune berserker shield 60', 'Charged: A Large, spiked metal shield. Uncharged: Not so spiky anymore.', 1, NULL, 25760, 38640, NULL, NULL, 300, 82000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,45,49,47,-1,47,41,4,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,45}', 6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12932, 'Rune berserker shield 40', 'Charged: A Large, spiked metal shield. Uncharged: Not so spiky anymore.', 1, NULL, 25760, 38640, NULL, NULL, 300, 82000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,45,49,47,-1,47,41,4,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,45}', 6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12933, 'Rune berserker shield 20', 'Charged: A Large, spiked metal shield. Uncharged: Not so spiky anymore.', 1, NULL, 25760, 38640, NULL, NULL, 300, 82000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,45,49,47,-1,47,41,4,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,45}', 6, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12934, 'Rune berserker shield 0', 'Charged: A Large, spiked metal shield. Uncharged: Not so spiky anymore.', 1, NULL, 25760, 38640, NULL, NULL, 300, 135300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, '3,0,7', '0,0,0,-8,-2,16,18,17,-1,17,9,2,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,45}', 6, 10, NULL, NULL, NULL, NULL, NULL, 0), +(12935, 'Rune berserker shield 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 135300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(12936, 'Green d\'hide coif 100', 'Fully charged: A coif made of green dragonhide. Fully degraded: A worn out coif made of green dragonhide.', 1, NULL, 800, 1200, NULL, NULL, 150, 88084, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '0,0,0,-1,4,4,6,8,4,5,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,40}', 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12937, 'Green d\'hide coif 80', 'Fully charged: A coif made of green dragonhide. Fully degraded: A worn out coif made of green dragonhide.', 1, NULL, 800, 1200, NULL, NULL, 150, 88084, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '0,0,0,-1,4,4,6,8,4,5,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,40}', 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12938, 'Green d\'hide coif 60', 'Fully charged: A coif made of green dragonhide. Fully degraded: A worn out coif made of green dragonhide.', 1, NULL, 800, 1200, NULL, NULL, 150, 88084, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '0,0,0,-1,4,4,6,8,4,5,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,40}', 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12939, 'Green d\'hide coif 40', 'Fully charged: A coif made of green dragonhide. Fully degraded: A worn out coif made of green dragonhide.', 1, NULL, 800, 1200, NULL, NULL, 150, 88084, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '0,0,0,-1,4,4,6,8,4,5,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,40}', 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12940, 'Green d\'hide coif 20', 'Fully charged: A coif made of green dragonhide. Fully degraded: A worn out coif made of green dragonhide.', 1, NULL, 800, 1200, NULL, NULL, 150, 88084, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '0,0,0,-1,4,4,6,8,4,5,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,40}', 0.9, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12941, 'Green d\'hide coif 0', 'Fully charged: A coif made of green dragonhide. Fully degraded: A worn out coif made of green dragonhide.', 1, NULL, 800, 1200, NULL, NULL, 150, 92700, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '0,0,0,-1,1,1,2,2,1,2,1,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}-{4,40}', 0.9, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12942, 'Green d\'hide coif 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 92700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12943, 'Blue d\'hide coif 100', 'Fully charged: A coif made of blue dragonhide. Fully degraded: A worn out coif made of blue dragonhide.', 1, NULL, 2000, 3000, NULL, NULL, 200, 186985, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '0,0,0,-1,5,4,6,8,4,6,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,50}-{4,40}', 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12944, 'Blue d\'hide coif 80', 'Fully charged: A coif made of blue dragonhide. Fully degraded: A worn out coif made of blue dragonhide.', 1, NULL, 2000, 3000, NULL, NULL, 200, 186985, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '0,0,0,-1,5,4,6,8,4,6,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,50}-{4,40}', 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12945, 'Blue d\'hide coif 60', 'Fully charged: A coif made of blue dragonhide. Fully degraded: A worn out coif made of blue dragonhide.', 1, NULL, 2000, 3000, NULL, NULL, 200, 186985, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '0,0,0,-1,5,4,6,8,4,6,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,50}-{4,40}', 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12946, 'Blue d\'hide coif 40', 'Fully charged: A coif made of blue dragonhide. Fully degraded: A worn out coif made of blue dragonhide.', 1, NULL, 2000, 3000, NULL, NULL, 200, 186985, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '0,0,0,-1,5,4,6,8,4,6,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,50}-{4,40}', 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12947, 'Blue d\'hide coif 20', 'Fully charged: A coif made of blue dragonhide. Fully degraded: A worn out coif made of blue dragonhide.', 1, NULL, 2000, 3000, NULL, NULL, 200, 186985, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '0,0,0,-1,5,4,6,8,4,6,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,50}-{4,40}', 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12948, 'Blue d\'hide coif 0', 'Fully charged: A coif made of blue dragonhide. Fully degraded: A worn out coif made of blue dragonhide.', 1, NULL, 2000, 3000, NULL, NULL, 200, 131900, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '0,0,0,-1,1,1,2,2,1,2,2,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,50}-{4,40}', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12949, 'Blue d\'hide coif 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 131900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12950, 'Red d\'hide coif 100', 'Fully charged: A coif made of red dragonhide.Fully degraded: A worn out coif made of red dragonhide.', 1, NULL, 1400, 2100, NULL, NULL, 300, 230059, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '0,0,0,-1,6,4,6,9,4,6,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}-{4,40}', 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12951, 'Red d\'hide coif 80', 'Fully charged: A coif made of red dragonhide.Fully degraded: A worn out coif made of red dragonhide.', 1, NULL, 1400, 2100, NULL, NULL, 300, 230059, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '0,0,0,-1,6,4,6,9,4,6,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}-{4,40}', 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12952, 'Red d\'hide coif 60', 'Fully charged: A coif made of red dragonhide.Fully degraded: A worn out coif made of red dragonhide.', 1, NULL, 1400, 2100, NULL, NULL, 300, 230059, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '0,0,0,-1,6,4,6,9,4,6,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}-{4,40}', 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12953, 'Red d\'hide coif 40', 'Fully charged: A coif made of red dragonhide.Fully degraded: A worn out coif made of red dragonhide.', 1, NULL, 1400, 2100, NULL, NULL, 300, 230059, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '0,0,0,-1,6,4,6,9,4,6,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}-{4,40}', 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12954, 'Red d\'hide coif 20', 'Fully charged: A coif made of red dragonhide.Fully degraded: A worn out coif made of red dragonhide.', 1, NULL, 1400, 2100, NULL, NULL, 300, 230059, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '0,0,0,-1,6,4,6,9,4,6,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}-{4,40}', 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12955, 'Red d\'hide coif 0', 'Fully charged: A coif made of red dragonhide.Fully degraded: A worn out coif made of red dragonhide.', 1, NULL, 1400, 2100, NULL, NULL, 300, 156600, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '0,0,0,-1,2,1,2,3,1,2,2,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}-{4,40}', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12956, 'Red d\'hide coif 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 156600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12957, 'Black d\'hide coif 100', 'Fully charged: A coif made of black dragonhide. Fully degraded: A worn out coif made of black dragonhide.', 1, NULL, 2200, 3300, NULL, NULL, 500, 379555, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '0,0,0,-1,7,4,7,9,4,7,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{4,40}', 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12958, 'Black d\'hide coif 80', 'Fully charged: A coif made of black dragonhide. Fully degraded: A worn out coif made of black dragonhide.', 1, NULL, 2200, 3300, NULL, NULL, 500, 379555, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '0,0,0,-1,7,4,7,9,4,7,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{4,40}', 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12959, 'Black d\'hide coif 60', 'Fully charged: A coif made of black dragonhide. Fully degraded: A worn out coif made of black dragonhide.', 1, NULL, 2200, 3300, NULL, NULL, 500, 379555, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '0,0,0,-1,7,4,7,9,4,7,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{4,40}', 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12960, 'Black d\'hide coif 40', 'Fully charged: A coif made of black dragonhide. Fully degraded: A worn out coif made of black dragonhide.', 1, NULL, 2200, 3300, NULL, NULL, 500, 379555, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '0,0,0,-1,7,4,7,9,4,7,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{4,40}', 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12961, 'Black d\'hide coif 20', 'Fully charged: A coif made of black dragonhide. Fully degraded: A worn out coif made of black dragonhide.', 1, NULL, 2200, 3300, NULL, NULL, 500, 379555, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '0,0,0,-1,7,4,7,9,4,7,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{4,40}', 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12962, 'Black d\'hide coif 0', 'Fully charged: A coif made of black dragonhide. Fully degraded: A worn out coif made of black dragonhide.', 1, NULL, 2200, 3300, NULL, NULL, 500, 229000, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '0,3,1', '0,0,0,-1,3,1,3,3,1,2,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,70}-{4,40}', 1, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12963, 'Black d\'hide coif 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 229000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12964, 'Combat hood 100', 'A magical hood, especially created for combat spells.', 1, NULL, 400, 600, NULL, NULL, 50, 5661, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,3,0,1,1,1,3,0,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 0.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12965, 'Combat hood 80', 'A magical hood, especially created for combat spells.', 1, NULL, 400, 600, NULL, NULL, 50, 5661, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,3,0,1,1,1,3,0,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 0.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12966, 'Combat hood 60', 'A magical hood, especially created for combat spells.', 1, NULL, 400, 600, NULL, NULL, 50, 5661, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,3,0,1,1,1,3,0,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 0.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12967, 'Combat hood 40', 'A magical hood, especially created for combat spells.', 1, NULL, 400, 600, NULL, NULL, 50, 5661, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,3,0,1,1,1,3,0,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 0.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12968, 'Combat hood 20', 'A magical hood, especially created for combat spells.', 1, NULL, 400, 600, NULL, NULL, 50, 5661, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,3,0,1,1,1,3,0,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 0.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12969, 'Combat hood 0', 'A magical hood, especially created for combat spells.', 1, NULL, 400, 600, NULL, NULL, 50, 6511, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,1,0,0,0,0,1,0,2,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 0.8, 10, NULL, NULL, NULL, NULL, NULL, 0), +(12970, 'Combat hood 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 6511, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(12971, 'Combat robe top 100', 'A magical robe top, especially made for combat spells.', 1, NULL, 1200, 1800, NULL, NULL, 150, 37700, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '2,1,0', '0,0,0,7,0,1,1,1,7,0,8,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12972, 'Combat robe top 80', 'A magical robe top, especially made for combat spells.', 1, NULL, 1200, 1800, NULL, NULL, 150, 37700, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '2,1,0', '0,0,0,7,0,1,1,1,7,0,8,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12973, 'Combat robe top 60', 'A magical robe top, especially made for combat spells.', 1, NULL, 1200, 1800, NULL, NULL, 150, 37700, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '2,1,0', '0,0,0,7,0,1,1,1,7,0,8,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12974, 'Combat robe top 40', 'A magical robe top, especially made for combat spells.', 1, NULL, 1200, 1800, NULL, NULL, 150, 37700, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '2,1,0', '0,0,0,7,0,1,1,1,7,0,8,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12975, 'Combat robe top 20', 'A magical robe top, especially made for combat spells.', 1, NULL, 1200, 1800, NULL, NULL, 150, 37700, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '2,1,0', '0,0,0,7,0,1,1,1,7,0,8,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12976, 'Combat robe top 0', 'A magical robe top, especially made for combat spells.', 1, NULL, 1200, 1800, NULL, NULL, 150, 61500, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, '2,1,0', '0,0,0,3,0,0,0,0,3,0,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 4, 10, NULL, NULL, NULL, NULL, NULL, 0), +(12977, 'Combat robe top 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 61500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(12978, 'Combat robe bottom 100', 'A magical robe bottom, especially created for combat spells.', 1, NULL, 1000, 1500, NULL, NULL, 100, 50200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '1,0,0', '0,0,0,6,0,1,1,1,6,0,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12979, 'Combat robe bottom 80', 'A magical robe bottom, especially created for combat spells.', 1, NULL, 1000, 1500, NULL, NULL, 100, 50200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '1,0,0', '0,0,0,6,0,1,1,1,6,0,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12980, 'Combat robe bottom 60', 'A magical robe bottom, especially created for combat spells.', 1, NULL, 1000, 1500, NULL, NULL, 100, 50200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '1,0,0', '0,0,0,6,0,1,1,1,6,0,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12981, 'Combat robe bottom 40', 'A magical robe bottom, especially created for combat spells.', 1, NULL, 1000, 1500, NULL, NULL, 100, 50200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '1,0,0', '0,0,0,6,0,1,1,1,6,0,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12982, 'Combat robe bottom 20', 'A magical robe bottom, especially created for combat spells.', 1, NULL, 1000, 1500, NULL, NULL, 100, 50200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '1,0,0', '0,0,0,6,0,1,1,1,6,0,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12983, 'Combat robe bottom 0', 'A magical robe bottom, especially created for combat spells.', 1, NULL, 1000, 1500, NULL, NULL, 100, 47800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, '1,0,0', '0,0,0,2,0,0,0,0,2,0,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}-{6,10}', 3, 10, NULL, NULL, NULL, NULL, NULL, 0), +(12984, 'Combat robe bottom 0', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 47800, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, 0), +(12985, 'Bronze gauntlets', 'I have to keep my hands safe!', NULL, NULL, 40, 60, NULL, NULL, 15, 3694, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,-1,-1,2,3,3,-1,2,2,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12986, 'Worn-out bronze gauntlets', 'I have to keep my hands safe!', NULL, NULL, 40, 60, NULL, NULL, 15, 3275, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,-1,-1,0,1,1,-1,0,1,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12987, 'Worn-out bronze gauntlets', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 3275, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12988, 'Iron gauntlets', 'I have to keep my hands safe!', NULL, NULL, 120, 180, NULL, NULL, 30, 17339, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,-1,-1,3,4,4,-1,3,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12989, 'Worn-out iron gauntlets', 'I have to keep my hands safe!', NULL, NULL, 120, 180, NULL, NULL, 30, 16000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,-1,-1,0,1,1,-1,0,1,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12990, 'Worn-out iron gauntlets', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 16000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12991, 'Steel gauntlets', 'I have to keep my hands safe!', NULL, NULL, 400, 600, NULL, NULL, 50, 29844, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,-1,-1,4,5,5,-1,4,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,5}', 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12992, 'Worn-out steel gauntlets', 'I have to keep my hands safe!', NULL, NULL, 400, 600, NULL, NULL, 50, 27000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,-1,-1,1,1,1,-1,1,1,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,5}', 10, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12993, 'Worn-out steel gauntlets', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 27000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12994, 'Black gauntlets', 'I have to keep my hands safe!', NULL, NULL, 800, 1200, NULL, NULL, 75, 50808, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,-1,-1,5,6,6,-1,5,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}', 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12995, 'Worn-out black gauntlets', 'I have to keep my hands safe!', NULL, NULL, 800, 1200, NULL, NULL, 75, 40100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,-1,-1,1,2,2,-1,1,1,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}', 0.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12996, 'Worn-out black gauntlets', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 40100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12997, 'Mithril gauntlets', 'I have to keep my hands safe!', NULL, NULL, 1200, 1800, NULL, NULL, 100, 60064, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,-1,-1,6,7,7,-1,6,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(12998, 'Worn-out mithril gauntlets', 'I have to keep my hands safe!', NULL, NULL, 1200, 1800, NULL, NULL, 100, 54200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,-1,-1,2,2,2,-1,2,2,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,20}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(12999, 'Worn-out mithril gauntlets', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 54200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(13000, 'Adamant gauntlets', 'I have to keep my hands safe! Uncharged: A bit worse for wear.', 1, NULL, 2000, 3000, NULL, NULL, 150, 74526, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,-1,-1,8,9,9,-1,8,8,1,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13001, 'Worn-out adamant gauntlets', 'I have to keep my hands safe! Uncharged: A bit worse for wear.', 1, NULL, 2000, 3000, NULL, NULL, 150, 71500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,-1,-1,2,3,3,-1,2,2,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,30}', 0.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(13002, 'Worn-out adamant gauntlets', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 71500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(13003, 'Rune gauntlets', 'Fully charged: I have to keep my hands safe! Worn-Out: A bit worse for wear.', NULL, NULL, 3000, 4500, NULL, NULL, 200, 95700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,-1,-1,10,11,11,-1,10,10,2,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13004, 'Worn-out rune gauntlets', 'Fully charged: I have to keep my hands safe! Worn-Out: A bit worse for wear.', NULL, NULL, 3000, 4500, NULL, NULL, 200, 99900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,-1,-1,3,4,4,-1,3,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,40}', 0.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(13005, 'Worn-out rune gauntlets', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 99900, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(13006, 'Dragon gauntlets', 'Uncharged: A bit worse for wear. Charged: I have to keep my hands safe!', NULL, NULL, 20000, 30000, NULL, NULL, 300, 214700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,-1,-1,14,15,15,-1,14,14,3,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}', 0.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13007, 'Worn-out dragon gauntlets', 'Uncharged: A bit worse for wear. Charged: I have to keep my hands safe!', NULL, NULL, 20000, 30000, NULL, NULL, 300, 166200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, NULL, NULL, '0,0,0,-1,-1,4,5,5,-1,4,4,1,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,60}', 0.2, 100, NULL, NULL, NULL, NULL, NULL, 0), +(13008, 'Worn-out dragon gauntlets', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 166200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(13010, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13011, 'Puzzle box', 'I need to solve this.', NULL, NULL, 40, 60, NULL, 'You can reclaim this item from the place you found it.', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13012, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13013, 'Puzzle box', 'I need to solve this.', NULL, NULL, 40, 60, NULL, 'You can reclaim this item from the place you found it.', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13014, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13015, 'Puzzle box', 'I need to solve this.', NULL, NULL, 40, 60, NULL, 'You can reclaim this item from the place you found it.', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13016, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13017, 'Puzzle box', 'I need to solve this.', NULL, NULL, 40, 60, NULL, 'You can reclaim this item from the place you found it.', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13018, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13019, 'Puzzle box', 'I need to solve this.', NULL, NULL, 40, 60, NULL, 'You can reclaim this item from the place you found it.', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13020, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(13021, 'Puzzle box', 'I need to solve this.', NULL, NULL, 40, 60, NULL, 'You can reclaim this item from the place you found it.', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13022, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13023, 'Puzzle box', 'I need to solve this.', NULL, NULL, 40, 60, NULL, 'You can reclaim this item from the place you found it.', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13024, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13025, 'Puzzle box', 'I need to solve this.', NULL, NULL, 40, 60, NULL, 'You can reclaim this item from the place you found it.', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13026, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13027, 'Puzzle box', 'I need to solve this.', NULL, NULL, 40, 60, NULL, 'You can reclaim this item from the place you found it.', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13028, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13029, 'Puzzle box', 'I need to solve this.', NULL, NULL, 40, 60, NULL, 'You can reclaim this item from the place you found it.', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13030, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13031, 'Puzzle box', 'I need to solve this.', NULL, NULL, 40, 60, NULL, 'You can reclaim this item from the place you found it.', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13032, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13033, 'Puzzle box', 'I need to solve this.', NULL, NULL, 40, 60, NULL, 'You can reclaim this item from the place you found it.', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13034, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13035, 'Puzzle box', 'I need to solve this.', NULL, NULL, 40, 60, NULL, 'You can reclaim this item from the place you found it.', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13036, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13037, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13038, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13039, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13040, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13041, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13042, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13043, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13044, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13045, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13046, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13047, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13048, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13049, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13050, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13051, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13052, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13053, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13054, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13055, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13056, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13057, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13058, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13059, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13060, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13061, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13062, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13063, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13064, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13065, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13066, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13067, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13068, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13069, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13070, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13071, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13072, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13074, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13075, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13076, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13077, 'Casket', 'I hope there\'s treasure in it.', 1, NULL, 20, 30, NULL, NULL, NULL, 3726, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13078, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13079, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13080, 'Clue scroll', 'Depends on the type of clue you have(\"A set of instructions to be followed\". \"A clue!\".\"It points to great treasure!\". \" A place on the world map,but where?\", \"Perhaps someone at the observatory can teach me to navigate?\" \"Part of the world map, but whe', NULL, NULL, NULL, NULL, NULL, NULL, 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13081, 'Black crossbow', 'A black crossbow.', 1, NULL, 320, 480, NULL, NULL, NULL, 261, NULL, NULL, NULL, 4591, 823, 4226, 4228, 4227, 821, 822, 175, 3, 6, NULL, '0,0,0,0,60,0,0,0,0,0,0,0,0,0,0', 17, NULL, NULL, NULL, NULL, '2700,0,0,0', '{4,33}', 5, 100, NULL, NULL, NULL, NULL, NULL, 0), +(13082, 'Black crossbow', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 261, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(13083, 'Black bolts', 'Black crossbow bolts.', 1, NULL, 5, 8, NULL, NULL, NULL, 55, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,75', NULL, NULL, NULL, NULL, NULL, NULL, '{4,33}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(13084, 'Black bolts(p)', 'Black crossbow bolts.', 1, NULL, 5, 8, NULL, NULL, NULL, 141, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,75', NULL, NULL, NULL, NULL, NULL, NULL, '{4,33}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(13085, 'Black bolts(p+)', 'Black crossbow bolts.', 1, NULL, 5, 8, NULL, NULL, NULL, 233, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,75', NULL, NULL, NULL, NULL, NULL, NULL, '{4,33}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(13086, 'Black bolts(p++)', 'Black crossbow bolts.', 1, NULL, 5, 8, NULL, NULL, NULL, 1690, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, NULL, NULL, '0,0,0,0,0,0,0,0,0,0,0,0,0,0,75', NULL, NULL, NULL, NULL, NULL, NULL, '{4,33}', NULL, 100, NULL, NULL, NULL, NULL, NULL, 0), +(13095, 'Black cane', 'A sapphire-topped cane.', 1, NULL, 172, 258, NULL, NULL, NULL, 77000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '0,-2,16,0,0,0,0,0,0,0,0,13,2,0,0', 10, NULL, NULL, NULL, NULL, NULL, '{0,8}', 0.5, 2, NULL, NULL, NULL, NULL, NULL, 0), +(13096, 'Black cane', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 77000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(13097, 'Adamant cane', 'A ruby-topped cane.', 1, NULL, 576, 864, NULL, NULL, NULL, 19100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, '0,-2,25,0,0,0,0,0,0,0,0,23,3,0,0', 10, NULL, NULL, NULL, NULL, NULL, '{0,28}', 0.5, 2, NULL, NULL, NULL, NULL, NULL, 0), +(13098, 'Adamant cane', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 19100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(13099, 'Rune cane', 'A diamond-topped cane.', 1, 1, 5760, 8640, NULL, NULL, NULL, 14500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '0,-2,39,0,0,0,0,0,0,0,0,36,4,0,0', 10, NULL, NULL, NULL, NULL, NULL, '{0,38}', 0.5, 2, NULL, NULL, NULL, NULL, NULL, 0), +(13100, 'Rune cane', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 14500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(13101, 'Top hat', 'Comes with a free rabbit!', 1, 1, 80, 120, NULL, NULL, NULL, 160400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(13102, 'Top hat', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 160400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(13103, 'Pith helmet', 'Official explorer headgear!', 1, NULL, 100, 150, NULL, NULL, NULL, 85400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, 2, NULL, NULL, NULL, NULL, NULL, 0), +(13104, 'Pith helmet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 85400, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(13105, 'Spiked helmet', 'Spikier than normal.', 1, NULL, 400, 600, NULL, NULL, NULL, 38300, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,9,10,7,-1,9,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,5}', 10, 2, NULL, NULL, NULL, NULL, NULL, 0), +(13106, 'Spiked helmet', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 38300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(13107, 'Sheep mask', 'Shear elegance.', 1, 1, 320, 480, NULL, NULL, NULL, 296700, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(13108, 'Sheep mask', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 296700, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(13109, 'Penguin mask', 'I can get the look right, but can I do the waddle too?', 1, 1, 320, 480, NULL, NULL, NULL, 633600, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(13110, 'Penguin mask', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 633600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(13111, 'Bat mask', 'The bats have left the belltower.', 1, 1, 320, 480, NULL, NULL, NULL, 399000, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(13112, 'Bat mask', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 399000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(13113, 'Cat mask', 'It\'s the year of the cat!', 1, 1, 320, 480, NULL, NULL, NULL, 1200000, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(13114, 'Cat mask', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1200000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(13115, 'Wolf mask', 'I\'m hungry like the wolf.', 1, 1, 320, 480, NULL, NULL, NULL, 1500000, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 2, NULL, NULL, NULL, NULL, NULL, 0), +(13116, 'Wolf mask', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1500000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, 0), +(13117, 'Ivandis flail (30)', 'At 30: A fully charged flail. At 29-6 charges: A partially charged flail. At 5-2 charges: A partially charged flail - it\'s nearly out of charges. At 1 charge: A partially charged flail - one last charge left.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9049, 823, 9051, 9050, 9052, 9053, 9054, 712, 3, 5, NULL, '0,16,11,6,0,2,3,1,6,0,0,26,5,0,0', 23, 1, 1, '9097,9097,9097,9097', 9048, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13118, 'Ivandis flail (29)', 'At 30: A fully charged flail. At 29-6 charges: A partially charged flail. At 5-2 charges: A partially charged flail - it\'s nearly out of charges. At 1 charge: A partially charged flail - one last charge left.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9049, 823, 9051, 9050, 9052, 9053, 9054, 712, 3, 5, NULL, '0,16,11,6,0,2,3,1,6,0,0,26,5,0,0', 23, 1, 1, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13119, 'Ivandis flail(28)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9049, 823, 9051, 9050, 9052, 9053, 9054, 712, 3, NULL, NULL, '0,16,11,6,0,2,3,1,6,0,0,26,5,0,0', 23, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13120, 'Ivandis flail (27)', 'At 30: A fully charged flail. At 29-6 charges: A partially charged flail. At 5-2 charges: A partially charged flail - it\'s nearly out of charges. At 1 charge: A partially charged flail - one last charge left.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9049, 823, 9051, 9050, 9052, 9053, 9054, 712, 3, 5, NULL, '0,16,11,6,0,2,3,1,6,0,0,26,5,0,0', 23, 1, 1, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13121, 'Ivandis flail (26)', 'At 30: A fully charged flail. At 29-6 charges: A partially charged flail. At 5-2 charges: A partially charged flail - it\'s nearly out of charges. At 1 charge: A partially charged flail - one last charge left.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9049, 823, 9051, 9050, 9052, 9053, 9054, 712, 3, 5, NULL, '0,16,11,6,0,2,3,1,6,0,0,26,5,0,0', 23, 1, 1, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13122, 'Ivandis flail (25)', 'At 30: A fully charged flail. At 29-6 charges: A partially charged flail. At 5-2 charges: A partially charged flail - it\'s nearly out of charges. At 1 charge: A partially charged flail - one last charge left.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9049, 823, 9051, 9050, 9052, 9053, 9054, 712, 3, 5, NULL, '0,16,11,6,0,2,3,1,6,0,0,26,5,0,0', 23, 1, 1, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13123, 'Ivandis flail (24)', 'At 30: A fully charged flail. At 29-6 charges: A partially charged flail. At 5-2 charges: A partially charged flail - it\'s nearly out of charges. At 1 charge: A partially charged flail - one last charge left.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9049, 823, 9051, 9050, 9052, 9053, 9054, 712, 3, 5, NULL, '0,16,11,6,0,2,3,1,6,0,0,26,5,0,0', 23, 1, 1, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13124, 'Ivandis flail (23)', 'At 30: A fully charged flail. At 29-6 charges: A partially charged flail. At 5-2 charges: A partially charged flail - it\'s nearly out of charges. At 1 charge: A partially charged flail - one last charge left.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9049, 823, 9051, 9050, 9052, 9053, 9054, 712, 3, 5, NULL, '0,16,11,6,0,2,3,1,6,0,0,26,5,0,0', 23, 1, 1, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13125, 'Ivandis flail (22)', 'At 30: A fully charged flail. At 29-6 charges: A partially charged flail. At 5-2 charges: A partially charged flail - it\'s nearly out of charges. At 1 charge: A partially charged flail - one last charge left.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9049, 823, 9051, 9050, 9052, 9053, 9054, 712, 3, 5, NULL, '0,16,11,6,0,2,3,1,6,0,0,26,5,0,0', 23, 1, 1, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13126, 'Ivandis flail (21)', 'At 30: A fully charged flail. At 29-6 charges: A partially charged flail. At 5-2 charges: A partially charged flail - it\'s nearly out of charges. At 1 charge: A partially charged flail - one last charge left.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9049, 823, 9051, 9050, 9052, 9053, 9054, 712, 3, 5, NULL, '0,16,11,6,0,2,3,1,6,0,0,26,5,0,0', 23, 1, 1, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13127, 'Ivandis flail (20)', 'At 30: A fully charged flail. At 29-6 charges: A partially charged flail. At 5-2 charges: A partially charged flail - it\'s nearly out of charges. At 1 charge: A partially charged flail - one last charge left.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9049, 823, 9051, 9050, 9052, 9053, 9054, 712, 3, 5, NULL, '0,16,11,6,0,2,3,1,6,0,0,26,5,0,0', 23, 1, 1, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13128, 'Ivandis flail (19)', 'At 30: A fully charged flail. At 29-6 charges: A partially charged flail. At 5-2 charges: A partially charged flail - it\'s nearly out of charges. At 1 charge: A partially charged flail - one last charge left.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9049, 823, 9051, 9050, 9052, 9053, 9054, 712, 3, 5, NULL, '0,16,11,6,0,2,3,1,6,0,0,26,5,0,0', 23, 1, 1, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13129, 'Ivandis flail (18)', 'At 30: A fully charged flail. At 29-6 charges: A partially charged flail. At 5-2 charges: A partially charged flail - it\'s nearly out of charges. At 1 charge: A partially charged flail - one last charge left.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9049, 823, 9051, 9050, 9052, 9053, 9054, 712, 3, 5, NULL, '0,16,11,6,0,2,3,1,6,0,0,26,5,0,0', 23, 1, 1, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13130, 'Ivandis flail (17)', 'At 30: A fully charged flail. At 29-6 charges: A partially charged flail. At 5-2 charges: A partially charged flail - it\'s nearly out of charges. At 1 charge: A partially charged flail - one last charge left.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9049, 823, 9051, 9050, 9052, 9053, 9054, 712, 3, 5, NULL, '0,16,11,6,0,2,3,1,6,0,0,26,5,0,0', 23, 1, 1, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13131, 'Ivandis flail (16)', 'At 30: A fully charged flail. At 29-6 charges: A partially charged flail. At 5-2 charges: A partially charged flail - it\'s nearly out of charges. At 1 charge: A partially charged flail - one last charge left.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9049, 823, 9051, 9050, 9052, 9053, 9054, 712, 3, 5, NULL, '0,16,11,6,0,2,3,1,6,0,0,26,5,0,0', 23, 1, 1, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13132, 'Ivandis flail (15)', 'At 30: A fully charged flail. At 29-6 charges: A partially charged flail. At 5-2 charges: A partially charged flail - it\'s nearly out of charges. At 1 charge: A partially charged flail - one last charge left.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9049, 823, 9051, 9050, 9052, 9053, 9054, 712, 3, 5, NULL, '0,16,11,6,0,2,3,1,6,0,0,26,5,0,0', 23, 1, 1, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13133, 'Ivandis flail (14)', 'At 30: A fully charged flail. At 29-6 charges: A partially charged flail. At 5-2 charges: A partially charged flail - it\'s nearly out of charges. At 1 charge: A partially charged flail - one last charge left.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9049, 823, 9051, 9050, 9052, 9053, 9054, 712, 3, 5, NULL, '0,16,11,6,0,2,3,1,6,0,0,26,5,0,0', 23, 1, 1, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13134, 'Ivandis flail (13)', 'At 30: A fully charged flail. At 29-6 charges: A partially charged flail. At 5-2 charges: A partially charged flail - it\'s nearly out of charges. At 1 charge: A partially charged flail - one last charge left.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9049, 823, 9051, 9050, 9052, 9053, 9054, 712, 3, 5, NULL, '0,16,11,6,0,2,3,1,6,0,0,26,5,0,0', 23, 1, 1, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13135, 'Ivandis flail (12)', 'At 30: A fully charged flail. At 29-6 charges: A partially charged flail. At 5-2 charges: A partially charged flail - it\'s nearly out of charges. At 1 charge: A partially charged flail - one last charge left.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9049, 823, 9051, 9050, 9052, 9053, 9054, 712, 3, 5, NULL, '0,16,11,6,0,2,3,1,6,0,0,26,5,0,0', 23, 1, 1, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13136, 'Ivandis flail (11)', 'At 30: A fully charged flail. At 29-6 charges: A partially charged flail. At 5-2 charges: A partially charged flail - it\'s nearly out of charges. At 1 charge: A partially charged flail - one last charge left.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9049, 823, 9051, 9050, 9052, 9053, 9054, 712, 3, 5, NULL, '0,16,11,6,0,2,3,1,6,0,0,26,5,0,0', 23, 1, 1, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13137, 'Ivandis flail (10)', 'At 30: A fully charged flail. At 29-6 charges: A partially charged flail. At 5-2 charges: A partially charged flail - it\'s nearly out of charges. At 1 charge: A partially charged flail - one last charge left.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9049, 823, 9051, 9050, 9052, 9053, 9054, 712, 3, 5, NULL, '0,16,11,6,0,2,3,1,6,0,0,26,5,0,0', 23, 1, 1, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13138, 'Ivandis flail (9)', 'At 30: A fully charged flail. At 29-6 charges: A partially charged flail. At 5-2 charges: A partially charged flail - it\'s nearly out of charges. At 1 charge: A partially charged flail - one last charge left.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9049, 823, 9051, 9050, 9052, 9053, 9054, 712, 3, 5, NULL, '0,16,11,6,0,2,3,1,6,0,0,26,5,0,0', 23, 1, 1, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13139, 'Ivandis flail (8)', 'At 30: A fully charged flail. At 29-6 charges: A partially charged flail. At 5-2 charges: A partially charged flail - it\'s nearly out of charges. At 1 charge: A partially charged flail - one last charge left.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9049, 823, 9051, 9050, 9052, 9053, 9054, 712, 3, 5, NULL, '0,16,11,6,0,2,3,1,6,0,0,26,5,0,0', 23, 1, 1, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13140, 'Ivandis flail (7)', 'At 30: A fully charged flail. At 29-6 charges: A partially charged flail. At 5-2 charges: A partially charged flail - it\'s nearly out of charges. At 1 charge: A partially charged flail - one last charge left.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9049, 823, 9051, 9050, 9052, 9053, 9054, 712, 3, 5, NULL, '0,16,11,6,0,2,3,1,6,0,0,26,5,0,0', 23, 1, 1, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13141, 'Ivandis flail (6)', 'At 30: A fully charged flail. At 29-6 charges: A partially charged flail. At 5-2 charges: A partially charged flail - it\'s nearly out of charges. At 1 charge: A partially charged flail - one last charge left.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9049, 823, 9051, 9050, 9052, 9053, 9054, 712, 3, 5, NULL, '0,16,11,6,0,2,3,1,6,0,0,26,5,0,0', 23, 1, 1, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13142, 'Ivandis flail (5)', 'At 30: A fully charged flail. At 29-6 charges: A partially charged flail. At 5-2 charges: A partially charged flail - it\'s nearly out of charges. At 1 charge: A partially charged flail - one last charge left.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9049, 823, 9051, 9050, 9052, 9053, 9054, 712, 3, 5, NULL, '0,16,11,6,0,2,3,1,6,0,0,26,5,0,0', 23, 1, 1, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13143, 'Ivandis flail (4)', 'At 30: A fully charged flail. At 29-6 charges: A partially charged flail. At 5-2 charges: A partially charged flail - it\'s nearly out of charges. At 1 charge: A partially charged flail - one last charge left.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9049, 823, 9051, 9050, 9052, 9053, 9054, 712, 3, 5, NULL, '0,16,11,6,0,2,3,1,6,0,0,26,5,0,0', 23, 1, 1, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13144, 'Ivandis flail (3)', 'At 30: A fully charged flail. At 29-6 charges: A partially charged flail. At 5-2 charges: A partially charged flail - it\'s nearly out of charges. At 1 charge: A partially charged flail - one last charge left.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9049, 823, 9051, 9050, 9052, 9053, 9054, 712, 3, 5, NULL, '0,16,11,6,0,2,3,1,6,0,0,26,5,0,0', 23, 1, 1, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13145, 'Ivandis flail (2)', 'At 30: A fully charged flail. At 29-6 charges: A partially charged flail. At 5-2 charges: A partially charged flail - it\'s nearly out of charges. At 1 charge: A partially charged flail - one last charge left.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9049, 823, 9051, 9050, 9052, 9053, 9054, 712, 3, 5, NULL, '0,16,11,6,0,2,3,1,6,0,0,26,5,0,0', 23, 1, 1, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13146, 'Ivandis flail (1)', 'At 30: A fully charged flail. At 29-6 charges: A partially charged flail. At 5-2 charges: A partially charged flail - it\'s nearly out of charges. At 1 charge: A partially charged flail - one last charge left.', NULL, NULL, 400, 600, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9049, 823, 9051, 9050, 9052, 9053, 9054, 712, 3, 5, NULL, '0,16,11,6,0,2,3,1,6,0,0,26,5,0,0', 23, 1, 1, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13147, 'Flail dust', 'Flail of Ivandis dust.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13149, 'Book page', 'A page ripped from a book; it looks like a map of some kind.', NULL, NULL, NULL, NULL, 1, 'You found this page in the top floor of Paterdomus temple on an old table.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13151, 'Combat book', 'A big book of combat techniques.', NULL, NULL, NULL, NULL, 1, 'You got this book from a bunk bed in Sanguinesti Myreque base.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13153, 'Chain link mould', 'Used to make a metal chain.', NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13154, 'Silvthril chain', 'A chain made from mithril and silver.', NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13155, 'Silver sickle emerald(b)', 'A blessed sickle with an emerald recessed into it.', NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(13156, 'Enchanted sickle emerald(b)', 'A blessed and enchanted silver sickle with an emerald recessed into it.', NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13157, 'Vyre corpse', 'A Vyrewatch corpse. Just a husk, really.', NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13158, 'Columbarium key', 'An ornate key: precise workmanship and an ethereal glow. (Legacy of Seergaze)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13159, 'Ornate tomb key', 'An ornate key: precise workmanship and an ethereal glow. (Legacy of Seergaze)', NULL, NULL, 2, 3, 1, 'You got this key by cremating a Vyrewatch in the Paterdomus Columbarium.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13160, 'Tome of xp 2nd ed (3)', 'A Tome of Experience (2nd Edition) that awards 2500 XP per chapter.', NULL, NULL, NULL, NULL, 1, 'You can get another Tome of Experience from Veliaf in Burgh de Rott.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13161, 'Tome of xp 2nd ed (2)', 'A Tome of Experience (2nd Edition) that awards 2500 XP per chapter.', NULL, NULL, NULL, NULL, 1, 'You can get another Tome of Experience from Veliaf in Burgh de Rott.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13162, 'Tome of xp 2nd ed (1)', 'A Tome of Experience (2nd Edition) that awards 2500 XP per chapter.', NULL, NULL, NULL, NULL, 1, 'You can get another Tome of Experience from Veliaf in Burgh de Rott.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13163, 'Black cane', 'A sapphire-topped cane.', 1, NULL, 172, 258, NULL, NULL, NULL, 115390, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '0,-2,16,0,0,0,0,0,0,0,0,13,2,0,0', 10, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13164, 'Adamant cane', 'A ruby-topped cane.', 1, NULL, 576, 864, NULL, NULL, NULL, 18514, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, '0,-2,25,0,0,0,0,0,0,0,0,23,3,0,0', 10, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13165, 'Rune cane', 'A diamond-topped cane.', 1, 1, 5760, 8640, NULL, NULL, NULL, 15023, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, NULL, '0,-2,39,0,0,0,0,0,0,0,0,36,4,0,0', 10, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13166, 'Top hat', 'Comes with a free rabbit!', 1, 1, 80, 120, NULL, NULL, NULL, 425919, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13167, 'Pith helmet', 'Official explorer headgear!', 1, NULL, 100, 150, NULL, NULL, NULL, 99682, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.5, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13168, 'Spiked helmet', 'Spikier than normal.', 1, NULL, 400, 600, NULL, NULL, NULL, 39643, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, '0,0,0,-6,-2,9,10,7,-1,9,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13169, 'Sheep mask', 'Shear elegance.', 1, 1, 320, 480, NULL, NULL, NULL, 313558, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13170, 'Penguin mask', 'I can get the look right, but can I do the waddle too?', 1, 1, 320, 480, NULL, NULL, NULL, 609515, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13171, 'Bat mask', 'The bats have left the belltower.', 1, 1, 320, 480, NULL, NULL, NULL, 371616, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13172, 'Cat mask', 'It\'s the year of the cat!', 1, 1, 320, 480, NULL, NULL, NULL, 1066648, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13173, 'Wolf mask', 'I\'m hungry like the wolf.', 1, 1, 320, 480, NULL, NULL, NULL, 1303443, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13174, 'Blue navy slacks', 'Not for slackers', NULL, NULL, 40, 60, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13175, 'Green navy slacks', 'Not for slackers', NULL, NULL, 40, 60, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13176, 'Red navy slacks', 'Not for slackers', NULL, NULL, 40, 60, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13177, 'Brown navy slacks', 'Not for slackers', NULL, NULL, 40, 60, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13178, 'Black navy slacks', 'Not for slackers', NULL, NULL, 40, 60, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13179, 'Purple navy slacks', 'Not for slackers', NULL, NULL, 40, 60, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13180, 'Grey navy slacks', 'Not for slackers', NULL, NULL, 40, 60, NULL, NULL, 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13181, 'Blue naval shirt', '...You can sail the seven seas...', NULL, NULL, 40, 60, 1, NULL, 100, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13182, 'Green naval shirt', '...You can sail the seven seas...', NULL, NULL, 40, 60, 1, NULL, 100, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13183, 'Red naval shirt', '...You can sail the seven seas...', NULL, NULL, 40, 60, 1, NULL, 100, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13184, 'Brown naval shirt', '...You can sail the seven seas...', NULL, NULL, 40, 60, 1, NULL, 100, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13185, 'Black naval shirt', '...You can sail the seven seas...', NULL, NULL, 40, 60, 1, NULL, 100, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13186, 'Purple naval shirt', '...You can sail the seven seas...', NULL, NULL, 40, 60, 1, NULL, 100, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13187, 'Grey naval shirt', '...You can sail the seven seas...', NULL, NULL, 40, 60, 1, NULL, 100, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13188, 'Blue tricorn hat', 'I could never look square in this.', NULL, NULL, 20, 30, NULL, NULL, 50, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13189, 'Green tricorn hat', 'I could never look square in this.', NULL, NULL, 20, 30, NULL, NULL, 50, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13190, 'Red tricorn hat', 'I could never look square in this.', NULL, NULL, 20, 30, NULL, NULL, 50, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13191, 'Brown tricorn hat', 'I could never look square in this.', NULL, NULL, 20, 30, NULL, NULL, 50, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13192, 'Black tricorn hat', 'I could never look square in this.', NULL, NULL, 20, 30, NULL, NULL, 50, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13193, 'Purple tricorn hat', 'I could never look square in this.', NULL, NULL, 20, 30, NULL, NULL, 50, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13194, 'Grey tricorn hat', 'I could never look square in this.', NULL, NULL, 20, 30, NULL, NULL, 50, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13227, 'Mysterious lamp', 'I wonder what happens if I rub it.', NULL, NULL, NULL, NULL, NULL, 'If you drop this lamp, it will be destroyed. You can obtain another from Dunstan.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13230, 'Icefiend net', 'Professor Arblenap gave you this net to catch the baby icefiends on Ice Mountain.', NULL, NULL, NULL, NULL, 1, 'You can get another net from Professor Arblenap on Ice Mountain.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13231, 'Baby icefiend', 'You should give this to Professor Arblenap.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13232, 'Tent', 'The remains of the Oracle\'s tent on Ice Mountain.', NULL, NULL, NULL, NULL, 1, 'It will reappear near the bottom of Ice Mountain.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13234, 'Dwarven key', 'You took this key from Drorkar\'s pocket in the power station. (Perils of Ice Mountain)', NULL, NULL, NULL, NULL, 1, 'You can get it back by pickpocketing Drorkar again.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13238, 'Treated oak plank', 'A plank of oak that has been treated to resist fire.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13239, 'Chisel', 'Good for detailed crafting.', 1, NULL, 5, 8, NULL, NULL, 14, 33, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.4, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13240, '.', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13241, 'Treated plank', 'A plank of oak that has been treated to resist fire.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13242, '.', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13243, 'Stone tablet', 'An old stone slab with writing on it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13244, 'Tzhaar tourist guide', 'A book for those who want to visit the TzHaar city.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13245, 'Stone slab', 'A flawed block of obsidian from the Karamja volcano.', NULL, NULL, NULL, NULL, 1, 'You can mine more stone slabs in the TzHaar mine.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 32, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13246, 'Pillar', 'A support pillar.', NULL, NULL, NULL, NULL, 1, 'You can get more pillars by crafting stone slabs from the TzHaar mine.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13247, 'Splat', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13248, 'Splat', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13249, 'Splat', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13250, 'Splat', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13259, 'Ranged path key', 'A key obtained in Catolax\'s tomb.', NULL, NULL, NULL, NULL, 1, 'You can obtain another from the mummy guardian in the undead slayer\'s tomb.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13260, 'Magic path key', 'A key obtained in Catolax\'s tomb.', NULL, NULL, NULL, NULL, 1, 'You can obtain another from the mummy guardian in the undead slayer\'s tomb.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13263, 'Slayer helmet', 'You don\'t want to wear it inside-out.', NULL, NULL, 260, 390, 1, 'Drop', 650, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,30,32,27,0,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, '{1,10}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13276, 'Banshee voice', 'The remains of a banshee\'s scream.', NULL, NULL, NULL, NULL, 1, 'Drop', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13277, 'Masked earmuffs', 'More of that crazy Slayer headgear.', NULL, NULL, 160, 240, 1, 'Drop', 400, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13278, 'Broad arrow heads', 'For use against turoth and kurasks.', NULL, NULL, 20, 30, 1, 'Drop', 50, 89, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13279, 'Unfinished broad bolts', 'For use against turoth and kurasks.', NULL, NULL, 20, 30, 1, 'Drop', 50, 17, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13280, 'Broad-tipped bolts', 'For use against turoth and kurasks.', 1, NULL, 20, 30, 1, 'Drop', 50, 34, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,135', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13281, 'Ring of slaying(8)', 'An enchanted ring.', NULL, NULL, 60, 90, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13282, 'Ring of slaying(7)', 'An enchanted ring.', NULL, NULL, 60, 90, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13283, 'Ring of slaying(6)', 'An enchanted ring.', NULL, NULL, 60, 90, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13284, 'Ring of slaying(5)', 'An enchanted ring.', NULL, NULL, 60, 90, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13285, 'Ring of slaying(4)', 'An enchanted ring.', NULL, NULL, 60, 90, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13286, 'Ring of slaying(3)', 'An enchanted ring.', NULL, NULL, 60, 90, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13287, 'Ring of slaying(2)', 'An enchanted ring.', NULL, NULL, 60, 90, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13288, 'Ring of slaying(1)', 'An enchanted ring.', NULL, NULL, 60, 90, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13290, 'Leaf-bladed sword', 'A razor-sharp sword.', NULL, NULL, 27200, 40800, 1, 'Drop', 68000, 43082, NULL, NULL, NULL, 813, 823, 1205, 824, 1206, 1207, 1208, NULL, 3, 4, '0,0,0', '67,62,0,0,0,0,0,0,0,0,0,50,0,0,0', 5, NULL, NULL, '381,381,390,381', 397, '2500,2500,2517,2500', '{0,55}-{18,50}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13291, 'Leaf-bladed sword', 'A razor-sharp sword.', 1, NULL, 27200, 40800, 1, 'Drop', 68000, 43082, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13292, 'Letter', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13293, 'Plans', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13294, 'Charcoal rubbing', 'A charcoal rubbing taken from 50% Luke.', NULL, NULL, NULL, NULL, 1, 'If you drop these plans, they will be lost and you will need to see Captain Donnie for a replacement.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13295, 'Frank\'s mark', 'Signature from Frank.', NULL, NULL, NULL, NULL, 1, 'If you drop Frank\'s mark, you will need to see him to get another.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13296, 'Crude lockpick', 'A device for opening locked doors.', NULL, NULL, NULL, NULL, 1, 'If you drop these lockpicks, you will need to look under the mattress to get another set.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13297, 'Customs shirt', 'The top of a Custom Officer\'s uniform.', NULL, NULL, NULL, NULL, 1, 'If you drop this shirt you will need to kill another Customs officer for a replacement.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13298, 'Customs trousers', 'The trousers of a Custom Officer\'s uniform.', NULL, NULL, NULL, NULL, 1, 'If you drop these trousers you will need to kill another Customs officer for a replacement.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13299, 'Customs hat', 'The hat of a Custom Officer\'s uniform.', NULL, NULL, NULL, NULL, 1, 'If you drop this hat you will need to kill another Customs officer for a replacement.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13300, 'File', 'A folder containing all the marks I have gathered.', NULL, NULL, NULL, NULL, 1, 'If you drop this file, it and all the marks inside it will be destroyed.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13301, 'File', 'A folder containing all the marks I have gathered.', NULL, NULL, NULL, NULL, 1, 'If you drop this file, it and all the marks inside it will be destroyed.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13302, 'Brooch', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13303, 'Izzy\'s mark', 'Signature from Izzy No-Beard.', NULL, NULL, NULL, NULL, 1, 'If you drop Izzy\'s No-Beard\'s mark, you will need to see him to get another.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13304, 'Key', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13305, 'Crowbar', 'This could be useful.', NULL, NULL, NULL, NULL, 1, 'If you drop this crowbar, you will need to get another from the chest on the sunken ship.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13307, 'Idol of many heads', 'An idol. It has many heads.', NULL, NULL, NULL, NULL, 1, 'If you drop the idol, you will need to go diving to get another replacement.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13308, 'Bill teach\'s mark', 'Signature from Bill Teach.', NULL, NULL, NULL, NULL, 1, 'If you drop Bill Teach\'s mark, you will need to see him to get another.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13309, 'Paper', 'This is generally used for writing on.', NULL, NULL, NULL, NULL, 1, 'If you drop this paper, you will need to call to the guards for a replacement. ', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13310, 'Confession', 'A written confession.', NULL, NULL, NULL, NULL, 1, 'If you drop this note, you\'ll need to call the guards for replacement paper.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13311, 'Note', 'Swap this note at any bank for the equivalent item.', NULL, NULL, NULL, NULL, 1, 'Drop', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13312, 'Ink bottle', 'An empty ink bottle./This is full of ink.', NULL, NULL, NULL, NULL, 1, 'If you drop this ink, you will need to call to the guards for a replacement.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13313, 'Inky paper', 'It\'s got ink all over it.', NULL, NULL, NULL, NULL, 1, 'If you drop this paper you will need to call to the guards to replace it and the ink.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13314, 'Ink bottle', 'An empty ink bottle./This is full of ink.', NULL, NULL, NULL, NULL, 1, 'If you drop this ink, you will need to call to the guards for a replacement.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13315, 'Smashed bottle', 'It\'s smashed. I should mind my fingers.', NULL, NULL, NULL, NULL, 1, 'If you drop this bottle, you will need to call to the guards for a replacement.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13316, 'Prison uniform top', 'The top part of a prisoner\'s uniform.', NULL, NULL, NULL, NULL, 1, 'If you drop this top, then you will need to speak to the guards to get it replaced.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13317, 'Prison uniform trousers', 'The bottom part of a prisoner\'s uniform.', NULL, NULL, NULL, NULL, 1, 'If you drop these trousers, then you will need to speak to the guards to get it replaced.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13318, 'Fishy prison uniform top', 'It\'s covered in fish slop.', NULL, NULL, NULL, NULL, 1, 'If you drop this top, you will need to speak to the guards to get it replaced, then find a way to get stew on it again.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13319, 'Tin cup', 'A standard prison-issue tin cup.', NULL, NULL, NULL, NULL, 1, 'If you drop this cup it will be destroyed and you will have to pick up another.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13320, 'Tin cup', 'A standard prison-issue tin cup.', NULL, NULL, NULL, NULL, 1, 'If you drop this cup it will be destroyed and you will have to pick up another.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13321, 'Pipe', 'A pipe that belongs in a cannon stand.', NULL, NULL, NULL, NULL, 1, 'Destroy', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13322, 'Accordion', '', NULL, NULL, NULL, NULL, 1, 'If you drop this accordion, it will be destroyed and you will have to get another.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13323, 'Accordion', '', NULL, NULL, NULL, NULL, 1, 'If you drop this accordion, it will be destroyed and you will have to get another.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13324, 'Accordion', '', NULL, NULL, NULL, NULL, 1, 'If you drop this accordion, it will be destroyed and you will have to get another.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13325, 'Vacuum pump', 'A very crude vacuum pump.', NULL, NULL, NULL, NULL, 1, 'If you drop this accordion, pipe and inky paper, it will all be destroyed and you will need to get all the items back again.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13326, 'Vacuum pump and gull', 'It sounds like a law firm.', NULL, NULL, NULL, NULL, 1, 'If you drop this, you will lose all the items you put in it, as well as the seagull.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13327, 'Quill', 'From a bird - can be used for writing.', NULL, NULL, NULL, NULL, 1, 'If you drop this quill, you will need to talk to the guard for a replacement.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13328, 'Inky quill', 'From a bird - can be used for writing. It has some ink on the tip.', NULL, NULL, NULL, NULL, 1, 'Unknown ', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13329, 'File', 'A folder containing all the marks I have gathered.', NULL, NULL, NULL, NULL, 1, 'If you drop this file, it and all the marks inside it will be destroyed.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13330, 'File', 'A folder containing all the marks I have gathered.', NULL, NULL, NULL, NULL, 1, 'If you drop this file, it and all the marks inside it will be destroyed.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13331, 'Ex-parrot', 'A very dead rotten parrot.', NULL, NULL, NULL, NULL, 1, 'If you drop this dead parrot, there is a chance that bad, bad things will happen to you - unless you see 50 Ships Mufassah for a replacement.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13332, 'Magical cage', 'It feels very cold to the touch.', NULL, NULL, NULL, NULL, 1, 'If you drop this cage, you will need to see Bill Teach for a replacement.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13333, 'Ex-parrot in a magic cage', 'A very dead rotten parrot in a magical cage.', NULL, NULL, NULL, NULL, 1, 'If you drop this dead parrot in a cage (and who wouldn\'t) then you will need to see ', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13334, 'Ex-ex-parrot in a magic cage', 'A very alive rotten parrot in a magic cage.', NULL, NULL, NULL, NULL, 1, 'If you drop the cage, the ex-ex-parrot will escape.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13335, 'Ex-ex-parrot', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13336, 'Ex-ex-parrot', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13337, 'Pirate impling jar', 'A pirate impling in a jar.', NULL, NULL, 20, 30, 1, 'If you drop this it will disappear. Are you sure you want to do this?', 50, 7346, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13338, 'Pirate impling jar', 'A pirate impling in a jar.', 1, NULL, 20, 30, 1, 'If you drop this it will disappear. Are you sure you want to do this?', 50, 7346, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13339, 'Bandana and eyepatch', 'A (colour) bandana and a patch for the right eye.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13340, 'Bandana and eyepatches', 'A (colour) bandana and a patch for both eyes.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13341, 'Bandana and eyepatch', 'A (colour) bandana and a patch for the right eye.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13342, 'Bandana and eyepatches', 'A (colour) bandana and a patch for both eyes.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13343, 'Bandana and eyepatch', 'A (colour) bandana and a patch for the right eye.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13344, 'Bandana and eyepatches', 'A (colour) bandana and a patch for both eyes.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13345, 'Bandana and eyepatch', 'A (colour) bandana and a patch for the right eye.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13346, 'Bandana and eyepatches', 'A (colour) bandana and a patch for both eyes.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13347, 'Bandana and eyepatch', 'A (colour) bandana and a patch for the right eye.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13348, 'Bandana and eyepatches', 'A (colour) bandana and a patch for both eyes.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13349, 'Bandana and eyepatch', 'A (colour) bandana and a patch for the right eye.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13350, 'Bandana and eyepatches', 'A (colour) bandana and a patch for both eyes.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13351, 'Bandana and eyepatch', 'A (colour) bandana and a patch for the right eye.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13352, 'Bandana and eyepatches', 'A (colour) bandana and a patch for both eyes.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13353, 'Double eyepatches', 'It\'s dark, and I\'m wearing two patches. Hit it!', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13354, 'Pirate hat and eyepatches', 'Two patches and a hat.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13355, 'Left eyepatch', 'A patch for the left eye.', NULL, NULL, 40, 60, 1, 'Drop', 100, 23485, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13356, 'Left eyepatch', 'A patch for the left eye.', 1, NULL, 40, 60, 1, 'Drop', 100, 23485, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13357, 'Pirate hat and eyepatch', 'A hat and a patch.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13358, 'Stripy pirate shirt', '', NULL, NULL, 120, 180, 1, 'Drop', 300, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13359, 'Stripy pirate shirt', '', 1, NULL, 120, 180, 1, 'Drop', 300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13360, 'Stripy pirate shirt', '', NULL, NULL, 120, 180, 1, 'Drop', 300, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13361, 'Stripy pirate shirt', '', 1, NULL, 120, 180, 1, 'Drop', 300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13362, 'Stripy pirate shirt', '', NULL, NULL, 120, 180, 1, 'Drop', 300, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13363, 'Stripy pirate shirt', '', 1, NULL, 120, 180, 1, 'Drop', 300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13364, 'Pirate leggings', '', NULL, NULL, 140, 210, 1, 'Drop', 350, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13365, 'Pirate leggings', '', 1, NULL, 140, 210, 1, 'Drop', 350, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13366, 'Pirate leggings', '', NULL, NULL, 140, 210, 1, 'Drop', 350, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13367, 'Pirate leggings', '', 1, NULL, 140, 210, 1, 'Drop', 350, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13368, 'Pirate leggings', '', NULL, NULL, 140, 210, 1, 'Drop', 350, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13369, 'Pirate leggings', '', 1, NULL, 140, 210, 1, 'Drop', 350, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13370, 'Bandana', 'Essential pirate wear.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13371, 'Bandana', 'Essential pirate wear.', 1, NULL, 40, 60, 1, 'Drop', 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13372, 'Bandana', 'Essential pirate wear.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(13373, 'Bandana', 'Essential pirate wear.', 1, NULL, 40, 60, 1, 'Drop', 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13374, 'Bandana', 'Essential pirate wear.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13375, 'Bandana', 'Essential pirate wear.', 1, NULL, 40, 60, 1, 'Drop', 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13376, 'Bandana and eyepatch', 'A (colour) bandana and a patch for the right eye.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13377, 'Bandana and eyepatch', 'A (colour) bandana and a patch for the right eye.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13378, 'Bandana and eyepatch', 'A (colour) bandana and a patch for the right eye.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13379, 'Rock fragments', 'Some rock fragments.', NULL, NULL, NULL, NULL, 1, 'Destroy', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13380, 'Introduction letter', 'Note from Teach to Brass Hand Harry.', NULL, NULL, NULL, NULL, 1, 'If you drop the letter, it will be destroyed and you\'ll need to see Bill Teach for another.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13381, 'Broken hand', 'One of many broken hands.', NULL, NULL, NULL, NULL, 1, 'The hand is already broken and dropping it will destroy it completely. You will need to see Brass Hand Harry for a replacement.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13382, 'Broken hand', 'One of many broken hands.', NULL, NULL, NULL, NULL, 1, 'The hand is already broken and dropping it will destroy it completely. You will need to see Brass Hand Harry for a replacement.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13383, 'Broken hand', 'One of many broken hands.', NULL, NULL, NULL, NULL, 1, 'The hand is already broken and dropping it will destroy it completely. You will need to see Brass Hand Harry for a replacement.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13384, 'Broken hand', 'One of many broken hands.', NULL, NULL, NULL, NULL, 1, 'The hand is already broken and dropping it will destroy it completely. You will need to see Brass Hand Harry for a replacement.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13385, 'Broken hand', 'One of many broken hands.', NULL, NULL, NULL, NULL, 1, 'The hand is already broken and dropping it will destroy it completely. You will need to see Brass Hand Harry for a replacement.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13386, 'Fingers', 'Wall beast fingers in a white fern sauce.', NULL, NULL, 4, 6, 1, 'Drop', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13387, 'Thumb', 'A brass thumb.', NULL, NULL, NULL, NULL, 1, 'This hand part is small and delicate, and dropping it here will lose it. If you lose it, you will need to see Brass Hand Harry for a replacement.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13388, 'Hand', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13389, 'Wrist', 'A brass wrist.', NULL, NULL, NULL, NULL, 1, 'This hand part is small and delicate, and dropping it here will lose it. If you lose it, you will need to see Brass Hand Harry for a replacement.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13390, 'Brace', 'A brass brace.', NULL, NULL, NULL, NULL, 1, 'This hand part is small and delicate, and dropping it here will lose it. If you lose it, you will need to see Brass Hand Harry for a replacement.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13391, 'Brass hand', 'A completed brass hand.', NULL, NULL, NULL, NULL, 1, 'If you drop this hand, you will destroy it and you will have to remake it from parts that Brass Hand Harry has.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13392, 'Ink pad', 'It\'s soaked with ink.', NULL, NULL, NULL, NULL, 1, 'If you drop this ink pad, you will lose it and will need to see Brass Hand Harry for a replacement.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13393, 'Inky hand', 'An inky brass hand.', NULL, NULL, NULL, NULL, 1, 'If you drop this hand, you will destroy it and you will have to remake it from parts that Brass Hand Harry has.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13394, 'Paper', 'This is generally used for writing on.', NULL, NULL, NULL, NULL, 1, 'If you drop this paper, you will need to call to the guards for a replacement. ', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13395, 'Brass hand harry\'s mark', 'Handprint from Brass Hand Harry.', NULL, NULL, NULL, NULL, 1, 'If you drop Brass Hand Harry\'s mark, it will be destroyed and you need to see him to get another.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13396, 'Fake beard', 'Makes me itch.', NULL, NULL, NULL, NULL, 1, 'Drop', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13397, 'Fake moustache and nose', 'It looks like someone has sneezed in it.', NULL, NULL, NULL, NULL, 1, 'If you drop this disguise you will need to see Captain Braindeath for a replacement.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13398, 'Fake monocle, moustache and nose', 'Why is the monocle nailed to it?', NULL, NULL, NULL, NULL, 1, 'If you drop this disguise you will need to see Captain Braindeath for a replacement.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13399, 'Curly wig', 'You can barely see where it connected to the mop handle.', NULL, NULL, NULL, NULL, 1, 'If you drop this disguise you will need to see Captain Braindeath for a replacement.', NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13400, 'Straight wig', 'It looks like it is part-dog, part-mould.', NULL, NULL, NULL, NULL, 1, 'If you drop this disguise you will need to see Captain Braindeath for a replacement.', NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13401, 'Order', 'An order simply for \'rum\'.', NULL, NULL, NULL, NULL, 1, 'If you drop this order for \'rum\' you will need to speak to the Rusty Anchor barman to get another.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13402, 'Braindeath\'s mark', 'Signature of Captain Braindeath.', NULL, NULL, NULL, NULL, 1, 'If you drop Captain Braindeath\'s mark, you will need to speak to him to get another.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13403, 'Golden tinderbox', 'A replica tinderbox made of solid gold.', NULL, NULL, 120, 180, 1, 'Drop', 300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13405, 'Dark bow', 'A bow from a darker dimension.', NULL, 1, 48000, 72000, 1, 'Drop', NULL, 86850, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 303, NULL, 9, '0,0,0', '0,0,0,0,95,0,0,0,0,0,0,0,0,0,0', 16, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13406, 'Ancient staff', '', NULL, 1, 40000, 60000, 1, 'Drop', NULL, 59171, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, NULL, 4, '0,0,0', '10,-1,40,15,0,2,3,1,15,0,5,50,0,-1,10', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13407, 'Archer helm', 'This helmet is worn by archers.', NULL, 1, 31200, 46800, 1, 'Drop', NULL, 46334, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,3,1', '-5,-5,-5,-5,6,6,8,10,6,6,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13408, 'Berserker helm', 'This helmet is worn by berserkers.', NULL, 1, 31200, 46800, 1, 'Drop', NULL, 45978, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '1,0,3', '0,0,0,-5,-5,31,29,33,0,30,7,3,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13409, 'Warrior helm', 'This helm is worn by warriors.', NULL, 1, 31200, 46800, 1, 'Drop', NULL, 45664, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '1,0,3', '0,5,0,-5,-5,31,33,29,0,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13410, 'Farseer helm', 'This helm is worn by farseers.', NULL, 1, 31200, 46800, 1, 'Drop', NULL, 45989, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '3,1,0', '-5,-5,-5,6,-5,8,10,12,6,0,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13411, 'Rock-shell helm', 'Protective headwear made from crabs. Better than it sounds.', NULL, 1, 14080, 21120, 1, 'Drop', NULL, 20378, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '1,0,3', '0,0,0,-6,-2,30,32,27,-1,30,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13412, 'Rock-shell plate', 'A sturdy body armour made from rock crab pieces.', NULL, 1, 26000, 39000, 1, 'Drop', NULL, 41788, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '3,0,6', '0,0,0,-30,-10,82,80,72,-6,80,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13413, 'Rock-shell legs', 'Some tough leggings made from rock crab parts.', NULL, 1, 25600, 38400, 1, 'Drop', NULL, 37139, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '2,0,4', '0,0,0,-21,-7,51,49,47,-4,49,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13414, 'Spined helm', 'A helm fit for any Fremennik ranger.', NULL, 1, 24000, 36000, 1, 'Drop', NULL, 37724, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,3,1', '0,-6,-6,-6,6,6,6,6,6,0,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13415, 'Spined body', 'A constant reminder that I\'m above a Dagannoth in the food chain.', NULL, 1, 3000, 4500, 1, 'Drop', NULL, 5773, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,6,3', '0,0,0,-15,15,40,32,45,20,40,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13416, 'Spined chaps', 'Stylish leg armour for rangers with a lingering smell of raw fish...', NULL, 1, 1560, 2340, 1, 'Drop', NULL, 2696, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,4,2', '0,0,0,-10,8,22,16,24,8,22,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13417, 'Skeletal helm', 'Make your foes cower by wearing a skull as a helmet!', NULL, 1, 4000, 6000, 1, 'Drop', NULL, 39060, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '3,1,0', '0,0,0,2,-2,10,9,11,3,0,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13418, 'Skeletal top', 'The bones in this armour seems to vibrate with a magic quality...', NULL, 1, 18000, 27000, 1, 'Drop', NULL, 26289, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '6,3,0', '0,0,0,8,-10,35,25,42,15,0,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13419, 'Skeletal bottoms', 'A superior set of strengthened slacks for any self respecting seer.', NULL, 1, 16000, 24000, 1, 'Drop', NULL, 24591, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '4,2,0', '0,0,0,6,-7,22,20,24,10,0,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13420, 'Spined boots', 'Some finely crafted Fremennik boots, made from spined dagannoth hide.', NULL, 1, 260, 390, 1, 'Drop', NULL, 158181, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,1,1,0,0,0,1,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13421, 'Rock-shell boots', 'Some Fremennik boots, made from the shards of a rock crab\'s shell.', NULL, 1, 260, 390, 1, 'Drop', NULL, 1358, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,1,1,0,0,1,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13422, 'Skeletal boots', 'Some finely crafted Fremennik boots, made from the bones of a Wallasalki.', NULL, 1, 260, 390, 1, 'Drop', NULL, 7788, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,1,1,0,0,1,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13423, 'Spined gloves', 'Fremennik gloves stitched together from spined dagannoth hide.', NULL, 1, 260, 390, 1, 'Drop', NULL, 3027, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,1,2,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13424, 'Rock-shell gloves', 'Fremennik gloves stitched together from rock crab shell shards.', NULL, 1, 260, 390, 1, 'Drop', NULL, 12839, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,1,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13425, 'Skeletal gloves', 'Fremennik gloves stitched together from wallasalki bones fragments.', NULL, 1, 260, 390, 1, 'Drop', NULL, 25838, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,1,2,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13426, 'Seers ring', 'A mysterious ring that can fill the wearer with magical power...', NULL, 1, 4000, 6000, 1, 'Drop', NULL, 799703, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,4,0,0,0,0,4,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13427, 'Archers ring', 'A fabled ring that improves the wearer\'s skill with a bow...', NULL, 1, 4000, 6000, 1, 'Drop', NULL, 483521, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,4,0,0,0,0,4,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13428, 'Warrior ring', 'A legendary ring once worn by Fremennik warriors.', NULL, 1, 4000, 6000, 1, 'Drop', NULL, 361302, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,4,0,0,0,0,4,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13429, 'Berserker ring', 'A ring reputed to bring out a berserk fury in its wearer.', NULL, 1, 4000, 6000, 1, 'Drop', NULL, 963418, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,4,0,0,0,4,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13430, 'Dragon 2h sword', 'A two-handed dragon sword.', NULL, 1, 88000, 132000, 1, 'Drop', NULL, 1024000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 124, NULL, 7, '0,0,0', '-4,92,80,-4,0,0,0,0,0,-1,0,93,0,0,0', 7, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13431, 'Crayfish cage', 'Useful for catching crayfish.', NULL, NULL, 8, 12, 1, 'Drop', 20, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13432, 'Crayfish cage', 'Useful for catching crayfish.', 1, NULL, 8, 12, 1, 'Drop', 20, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13433, 'Crayfish', 'Some cooked crayfish. Eat it to heal.', NULL, NULL, 2, 3, 1, 'Drop', 5, 32, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13434, 'Crayfish', 'Some cooked crayfish. Eat it to heal.', 1, NULL, 2, 3, 1, 'Drop', 5, 32, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13435, 'Raw crayfish', 'I should try cooking this. Used in Cooking (1).', NULL, NULL, 2, 3, 1, 'Drop', 5, 41, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13436, 'Raw crayfish', 'I should try cooking this. Used in Cooking (1).', 1, NULL, 2, 3, 1, 'Drop', 5, 41, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13437, 'Burnt crayfish', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13438, 'Burnt crayfish', NULL, 1, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13439, 'Antique lamp', 'I wonder what happens if I rub it.', NULL, NULL, NULL, NULL, 1, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13440, 'Bag of runes', 'This is a bag of runes for Sir Vant.', NULL, NULL, NULL, NULL, 1, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13442, 'Amulet of fury', 'A very powerful onyx amulet.', NULL, 1, 80800, 121200, 1, 'Drop', NULL, 2285210, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '10,10,10,10,10,15,15,15,15,15,15,8,0,5,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13443, 'Obsidian cape', 'A cape woven of obsidian plates.', NULL, 1, 24000, 36000, 1, 'Drop', NULL, 56575, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,9,9,9,9,9,9,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13444, 'Abyssal whip', 'A weapon from the Abyss.', NULL, 1, 48000, 72000, 1, 'Drop', NULL, 114775, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1578, NULL, 4, '0,0,0', '0,82,0,0,0,0,0,0,0,0,0,82,0,0,0', 11, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13445, 'Granite maul', 'Simplicity is the best weapon.', NULL, 1, 20000, 30000, 1, 'Drop', NULL, 29584, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 27, NULL, 7, '0,0,0', '0,0,81,0,0,0,0,0,0,0,0,79,0,0,0', 10, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13446, 'Antique lamp', 'I wonder what happens if I rub it.', NULL, NULL, NULL, NULL, 1, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13447, 'Antique lamp', 'I wonder what happens if I rub it.', NULL, NULL, NULL, NULL, 1, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13448, 'Antique lamp', 'I wonder what happens if I rub it.', NULL, NULL, NULL, NULL, 1, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13449, 'Dragon full helm', 'Protects your head and looks impressive too.', NULL, 1, 60000, 90000, 1, 'Drop', NULL, 5756658, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '2,0,4', '0,0,0,-6,-2,45,48,41,-1,46,12,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13450, 'Armadyl godsword', 'A beautiful, heavy sword.', NULL, 1, 500000, 750000, 1, 'Drop', NULL, 7767458, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1579, NULL, 6, '0,0,0', '0,132,80,0,0,0,0,0,0,0,0,132,0,8,0', 7, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13451, 'Bandos godsword', 'A brutally heavy sword.', NULL, 1, 500000, 750000, 1, 'Drop', NULL, 1504919, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1579, NULL, 6, '0,0,0', '0,132,80,0,0,0,0,0,0,0,0,132,0,8,0', 7, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13452, 'Saradomin godsword', 'A gracious, heavy sword.', NULL, 1, 500000, 750000, 1, 'Drop', NULL, 34966317, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1579, NULL, 6, '0,0,0', '0,132,80,0,0,0,0,0,0,0,0,132,0,8,0', 7, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13453, 'Zamorak godsword', 'A terrifying, heavy sword.', NULL, 1, 500000, 750000, 1, 'Drop', NULL, 2132037, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1579, NULL, 6, '0,0,0', '0,132,80,0,0,0,0,0,0,0,0,132,0,8,0', 7, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13454, 'Zamorakian spear', 'An evil spear.', NULL, 1, 40000, 60000, 1, 'Drop', NULL, 2070507, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1581, NULL, 4, '0,0,0', '85,65,65,0,0,13,13,12,0,13,0,75,0,2,0', 14, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13455, 'Armadyl helmet', 'A helmet of great craftmanship.', NULL, 1, 8000, 12000, 1, 'Drop', NULL, 3732060, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,5,2', '-5,-5,-5,-5,10,6,6,10,10,8,12,0,0,1,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13456, 'Armadyl chestplate', 'A chestplate of great craftsmanship', NULL, 1, 24000, 36000, 1, 'Drop', NULL, 9628666, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,10,5', '-7,-7,-7,-15,33,56,48,61,70,57,52,0,0,1,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13457, 'Armadyl plateskirt', 'A chainskirt of great craftsmanship.', NULL, 1, 20000, 30000, 1, 'Drop', NULL, 9754868, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,7,3', '-6,-6,-6,-10,20,32,26,34,40,33,25,0,0,1,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13458, 'Bandos chestplate', 'A sturdy chestplate.', NULL, 1, 106000, 159000, 1, 'Drop', NULL, 6460055, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '4,0,9', '0,0,0,-15,-10,98,93,105,-6,133,52,4,0,1,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13459, 'Bandos tassets', 'A sturdy pair of tassets.', NULL, 1, 109000, 163500, 1, 'Drop', NULL, 4228256, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '3,0,6', '0,0,0,-21,-7,71,63,66,-4,93,25,2,0,1,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13460, 'Bandos boots', 'Some sturdy boots.', NULL, 1, 10000, 15000, 1, 'Drop', NULL, 1259091, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,-5,-3,17,18,19,0,0,15,0,0,1,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13461, 'Saradomin sword', 'The incredible blade of an Icyene.', NULL, 1, 52000, 78000, 1, 'Drop', NULL, 850151, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1579, NULL, 4, '0,0,0', '0,82,60,0,0,0,0,0,0,0,0,82,0,2,0', 7, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13462, 'Dragon boots', 'These will protect my feet.', NULL, 1, 8000, 12000, 1, 'Drop', NULL, 17336, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,-3,-1,16,17,18,0,0,15,4,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13463, 'Antique lamp', 'I wonder what happens if I rub it.', NULL, NULL, NULL, NULL, 1, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13464, 'Task list', 'Doric\'s instructions for the task he gave you.', NULL, NULL, NULL, NULL, 1, 'You can get another of these from Doric.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13465, 'Dragon dagger', 'A powerful dagger.', NULL, 1, 12000, 18000, 1, 'Drop', NULL, 16744, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '40,25,-4,1,0,0,0,0,1,0,0,40,0,0,0', 5, 1, NULL, '396,396,395,396', 397, '2517,2517,2500,2517', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13466, 'Dragon dagger(p)', 'A picture of a lady called Elena.', NULL, NULL, NULL, NULL, 1, 'Drop', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '40,25,-4,1,0,0,0,0,1,0,0,40,0,0,0', NULL, 1, NULL, '396,396,395,396', 397, '2517,2517,2500,2517', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13467, 'Dragon dagger(p+)', 'A picture of a lady called Elena.', NULL, NULL, NULL, NULL, 1, 'Drop', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '40,25,-4,1,0,0,0,0,1,0,0,40,0,0,0', NULL, 1, NULL, '396,396,395,396', 397, '2517,2517,2500,2517', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13468, 'Dragon dagger(p++)', 'A picture of a lady called Elena.', NULL, NULL, NULL, NULL, 1, 'Drop', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '40,25,-4,1,0,0,0,0,1,0,0,40,0,0,0', NULL, 1, NULL, '396,396,395,396', 397, '2517,2517,2500,2517', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13469, 'Rune axe', 'A powerful hatchet.', NULL, 1, 5120, 7680, 1, 'Drop', NULL, 7263, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, '0,0,0', '-2,26,24,0,0,0,1,0,0,0,0,29,0,0,0', 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13470, 'Dragon axe', 'A very powerful hatchet.', NULL, 1, 22000, 33000, 1, 'Drop', NULL, 3794577, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, '0,0,0', '-2,38,32,0,0,0,1,0,0,0,0,42,0,0,0', 2, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13471, 'Rune battleaxe', 'A vicious looking axe.', NULL, 1, 16640, 24960, 1, 'Drop', NULL, 23993, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6, '0,0,0', '-2,48,43,0,0,0,0,0,0,-1,0,64,0,0,0', 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13472, 'Dragon battleaxe', 'A vicious looking axe.', NULL, 1, 80000, 120000, 1, 'Drop', NULL, 123019, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2586, NULL, 6, '0,0,0', '-2,70,65,0,0,0,0,0,0,-1,0,85,0,0,0', 2, 1, NULL, '395,395,395,395', 397, NULL, '{0,60}', 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13473, 'Rune warhammer', 'I don\'t think it\'s intended for joinery.', NULL, 1, 16600, 24900, 1, 'Drop', NULL, 24357, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1430, NULL, 6, '0,0,0', '-4,-4,53,-4,0,0,0,0,0,0,0,48,0,0,0', 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13474, 'Rune longsword', 'A razor-sharp longsword', NULL, 1, 12800, 19200, 1, 'Drop', NULL, 18420, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1582, NULL, 5, '0,0,0', '38,47,-2,0,0,0,3,2,0,0,0,49,0,0,0', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13475, 'Dragon longsword', 'A very powerful sword.', NULL, 1, 40000, 60000, 1, 'Drop', NULL, 58355, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1582, NULL, 5, '0,0,0', '58,69,-2,0,0,0,3,2,0,0,0,71,0,0,0', 5, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13476, 'Rune scimitar', 'A vicious, curved sword.', NULL, 1, 10240, 15360, 1, 'Drop', NULL, 14690, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1582, NULL, 4, '0,0,0', '7,45,-2,0,0,0,1,0,0,0,0,44,0,0,0', 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13477, 'Dragon scimitar', 'A vicious, curved sword.', NULL, 1, 40000, 60000, 1, 'Drop', NULL, 60405, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1928, NULL, 4, '0,0,0', '8,67,-2,0,0,0,1,0,0,0,0,66,0,0,0', 6, 1, NULL, '390,390,381,390', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13478, 'Dragon halberd', 'A dragon halberd.', NULL, 1, 130000, 195000, 1, 'Drop', NULL, 200189, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, NULL, 7, '0,0,0', '70,95,0,-4,0,-1,4,5,0,0,0,89,0,0,0', 15, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13479, 'Dragon mace', 'A spiky mace.', NULL, 1, 20000, 30000, 1, 'Drop', NULL, 28817, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, '0,0,0', '40,-2,60,0,0,0,0,0,0,0,0,55,0,5,0', 8, 1, NULL, '390,390,381,390', 397, NULL, '{0,60}', 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13480, 'Rune pickaxe', 'Used for mining.', NULL, 1, 12800, 19200, 1, 'Drop', NULL, 18546, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, '0,0,0', '26,-2,24,0,0,0,1,0,0,0,0,29,0,0,0', 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13481, 'Dragon chainbody', 'A series of connected metal rings.', NULL, 1, 100000, 150000, 1, 'Drop', NULL, 2280904, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '4,0,9', '0,0,0,-15,0,81,93,98,-3,82,50,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13482, 'Rune platebody', 'Provides excellent protection.', NULL, 1, 26000, 39000, 1, 'Drop', NULL, 38062, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '3,0,6', '0,0,0,-30,-10,82,80,72,-6,80,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13483, 'Green d\'hide body', 'Made from 100% real dragonhide.', NULL, 1, 3120, 4680, 1, 'Drop', NULL, 4373, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,6,3', '0,0,0,-20,15,40,32,45,20,40,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13484, 'Blue d\'hide body', 'Made from 100% real dragonhide.', NULL, 1, 3744, 5616, 1, 'Drop', NULL, 5266, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,6,3', '0,0,0,-15,20,45,37,50,30,45,45,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13485, 'Red d\'hide body', 'Made from 100% real dragonhide.', NULL, 1, 4492, 6738, 1, 'Drop', NULL, 6276, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,6,3', '0,0,0,-15,25,50,42,55,40,50,50,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13486, 'Black d\'hide body', 'Made from 100% real dragonhide.', NULL, 1, 5392, 8088, 1, 'Drop', NULL, 7619, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,6,3', '0,0,0,-15,30,55,47,60,50,55,55,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13487, 'Rune platelegs', 'These look pretty heavy.', NULL, 1, 25600, 38400, 1, 'Drop', NULL, 37355, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '2,0,4', '0,0,0,-21,-7,51,49,47,-4,49,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13488, 'Dragon platelegs', 'Looks pretty heavy.', NULL, 1, 108000, 162000, 1, 'Drop', NULL, 160755, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '3,0,6', '0,0,0,-21,-7,68,66,63,-4,65,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13489, 'Rune plateskirt', 'Designer leg protection.', NULL, 1, 25600, 38400, 1, 'Drop', NULL, 37248, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '2,0,4', '0,0,0,-21,-7,51,49,47,-4,49,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13490, 'Dragon plateskirt', 'This looks pretty heavy.', NULL, 1, 108000, 162000, 1, 'Drop', NULL, 161006, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '3,0,6', '0,0,0,-21,-7,68,66,63,-4,65,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13491, 'Green d\'hide chaps', '100% real dragonhide.', NULL, 1, 1560, 2340, 1, 'Drop', NULL, 2037, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,4,2', '0,0,0,-10,8,22,16,24,8,22,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13492, 'Blue d\'hide chaps', 'Made from 100% real dragonhide.', NULL, 1, 1728, 2592, 1, 'Drop', NULL, 2352, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,5,2', '0,0,0,-10,11,25,19,27,14,25,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13493, 'Red d\'hide chaps', 'Made from 100% real dragonhide.', NULL, 1, 2072, 3108, 1, 'Drop', NULL, 2761, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,6,3', '0,0,0,-10,14,28,22,30,20,28,25,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13494, 'Black d\'hide chaps', 'Made from 100% real dragonhide.', NULL, 1, 2488, 3732, 1, 'Drop', NULL, 3377, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,7,3', '0,0,0,-10,17,31,25,33,28,31,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13495, 'Dragon med helm', 'Makes the wearer pretty intimidating.', NULL, 1, 40000, 60000, 1, 'Drop', NULL, 59676, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '2,0,4', '0,0,0,-3,-1,33,35,32,-1,34,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13496, 'Rune full helm', 'A full face helmet.', NULL, 1, 14080, 21120, 1, 'Drop', NULL, 20388, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '1,0,3', '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13497, 'Green d\'hide vamb', 'Made from 100% real dragonhide.', NULL, 1, 1000, 1500, 1, 'Drop', NULL, 1208, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,-10,8,3,2,4,2,0,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13498, 'Blue d\'hide vamb', 'Made from 100% real dragonhide.', NULL, 1, 1200, 1800, 1, 'Drop', NULL, 1488, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,-10,9,4,3,5,4,0,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13499, 'Red d\'hide vamb', 'Vambraces made from 100% real dragonhide.', NULL, 1, 1440, 2160, 1, 'Drop', NULL, 1714, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,-10,10,5,4,6,6,0,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13500, 'Black d\'hide vamb', 'Vambraces made from 100% real dragonhide.', NULL, 1, 1728, 2592, 1, 'Drop', NULL, 2208, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,-10,11,6,5,7,8,0,6,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13501, 'Splitbark helm', 'A wooden helmet.', NULL, 1, 4000, 6000, 1, 'Drop', NULL, 5210, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '3,1,0', '0,0,0,3,-2,10,9,11,3,0,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13502, 'Splitbark body', 'Provides good protection.', NULL, 1, 18000, 27000, 1, 'Drop', NULL, 27106, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '6,3,0', '0,0,0,10,-10,36,26,42,15,0,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13503, 'Splitbark legs', 'These should protect my legs.', NULL, 1, 16000, 24000, 1, 'Drop', NULL, 56050, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '4,2,0', '0,0,0,7,-7,22,20,25,10,0,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13504, 'Splitbark gauntlets', 'These should keep my hands safe.', NULL, 1, 2000, 3000, 1, 'Drop', NULL, 2442, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,2,-1,3,2,4,2,0,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13505, 'Splitbark boots', 'Wooden foot protection.', NULL, 1, 2000, 3000, 1, 'Drop', NULL, 6845, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,2,-1,3,2,4,2,0,9,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13506, 'Dragon sq shield', 'An ancient and powerful looking Dragon Square shield.', NULL, 1, 200000, 300000, 1, 'Drop', NULL, 328356, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '5,0,11', '0,0,0,-6,-2,50,52,48,0,50,50,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13507, 'Rune kiteshield', 'A large metal shield.', NULL, 1, 21760, 32640, 1, 'Drop', NULL, 31885, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13508, 'Mystic hat', 'Blue: A magical hat. ', NULL, 1, 6000, 9000, 1, 'Drop', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '3,1,0', '0,0,0,4,0,0,0,0,4,0,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13509, 'Mystic robe top', 'The upper half of a magical robe.', NULL, 1, 48000, 72000, 1, 'Drop', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '3,1,0', '0,0,0,20,0,0,0,0,20,0,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13510, 'Mystic robe bottom', 'The lower half of a magical robe.', NULL, 1, 32000, 48000, 1, 'Drop', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '4,2,0', '0,0,0,15,0,0,0,0,15,0,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13511, 'Mystic gloves', 'Bright/Dark magical gloves.', NULL, 1, 4000, 6000, 1, 'Drop', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,3,0,0,0,0,3,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13512, 'Mystic boots', 'Magical boots.', NULL, 1, 4000, 6000, 1, 'Drop', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,3,0,0,0,0,3,0,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13513, 'Mystic hat', 'Blue: A magical hat. ', NULL, 1, 6000, 9000, 1, 'Drop', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '3,1,0', '0,0,0,4,0,0,0,0,4,0,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13514, 'Mystic robe top', 'The upper half of a magical robe.', NULL, 1, 48000, 72000, 1, 'Drop', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '3,1,0', '0,0,0,20,0,0,0,0,20,0,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13515, 'Mystic robe bottom', 'The lower half of a magical robe.', NULL, 1, 32000, 48000, 1, 'Drop', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '4,2,0', '0,0,0,15,0,0,0,0,15,0,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13516, 'Mystic gloves', 'Bright/Dark magical gloves.', NULL, 1, 4000, 6000, 1, 'Drop', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,3,0,0,0,0,3,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13517, 'Mystic boots', 'Magical boots.', NULL, 1, 4000, 6000, 1, 'Drop', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,3,0,0,0,0,3,0,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13518, 'Mystic hat', 'Blue: A magical hat. ', NULL, 1, 6000, 9000, 1, 'Drop', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '3,1,0', '0,0,0,4,0,0,0,0,4,0,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13519, 'Mystic robe top', 'The upper half of a magical robe.', NULL, 1, 48000, 72000, 1, 'Drop', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '3,1,0', '0,0,0,20,0,0,0,0,20,0,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13520, 'Mystic robe bottom', 'The lower half of a magical robe.', NULL, 1, 32000, 48000, 1, 'Drop', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '4,2,0', '0,0,0,15,0,0,0,0,15,0,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13521, 'Mystic gloves', 'Bright/Dark magical gloves.', NULL, 1, 4000, 6000, 1, 'Drop', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,3,0,0,0,0,3,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13522, 'Mystic boots', 'Magical boots.', NULL, 1, 4000, 6000, 1, 'Drop', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,3,0,0,0,0,3,0,3,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13523, 'Maple longbow', 'A nice sturdy bow made out of maple.', NULL, 1, 256, 384, 1, 'Drop', NULL, 193, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6, '0,0,0', '0,0,0,0,29,0,0,0,0,0,0,0,0,0,0', 16, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13524, 'Maple shortbow', 'A shortbow made out of maple, still effective.', NULL, 1, 160, 240, 1, 'Drop', NULL, 111, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,29,0,0,0,0,0,0,0,0,0,0', 16, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13525, 'Yew longbow', 'A nice sturdy bow made out of yew.', NULL, 1, 512, 768, 1, 'Drop', NULL, 486, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6, '0,0,0', '0,0,0,0,47,0,0,0,0,0,0,0,0,0,0', 16, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(13526, 'Yew shortbow', 'A shortbow made out of yew, still effective.', NULL, 1, 320, 480, 1, 'Drop', NULL, 253, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,47,0,0,0,0,0,0,0,0,0,0', 16, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13527, 'Magic longbow', 'A nice sturdy magical bow.', NULL, 1, 1024, 1536, 1, 'Drop', NULL, 1211, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6, '0,0,0', '0,0,0,0,69,0,0,0,0,0,0,0,0,0,0', 16, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13528, 'Magic shortbow', 'Short and magical, but still effective.', NULL, 1, 640, 960, 1, 'Drop', NULL, 655, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,69,0,0,0,0,0,0,0,0,0,0', 16, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13529, 'Seercull', 'An ancient Fremennik bow that was once used to battle the Moon Clan.', NULL, 1, 3200, 4800, 1, 'Drop', NULL, 21698, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, '0,0,0', '0,0,0,0,69,0,0,0,0,0,0,0,0,0,0', 16, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13530, 'Rune crossbow', 'A runite crossbow.', NULL, 1, 6480, 9720, 1, 'Drop', NULL, 8890, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 175, NULL, 6, '0,0,0', '0,0,0,0,90,0,0,0,0,0,0,0,0,0,0', 17, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13531, 'Red partyhat', 'A nice hat from a cracker.', NULL, 1, NULL, NULL, 1, 'Drop', NULL, 1696744720, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13532, 'Yellow partyhat', 'A nice hat from a cracker.', NULL, 1, NULL, NULL, 1, 'Drop', NULL, 1314730495, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13533, 'Blue partyhat', 'A nice hat from a cracker.', NULL, 1, NULL, NULL, 1, 'Drop', NULL, 2147483647, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13534, 'Green partyhat', 'A nice hat from a cracker.', NULL, 1, NULL, NULL, 1, 'Drop', NULL, 1481913809, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13535, 'Purple partyhat', 'A nice hat from a cracker.', NULL, 1, NULL, NULL, 1, 'Drop', NULL, 1248900588, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13536, 'White partyhat', 'A nice hat from a cracker.', NULL, 1, NULL, NULL, 1, 'Drop', NULL, 2147473360, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13537, 'Santa hat', 'It\'s a Santa hat.', NULL, 1, 64, 96, 1, 'Drop', NULL, 130433327, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13538, 'Green h\'ween mask', 'Aaaarrrghhh ... I\'m a monster.', NULL, 1, 6, 9, 1, 'Drop', NULL, 104671288, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13539, 'Blue h\'ween mask', 'Aaaarrrghhh ... I\'m a monster.', NULL, 1, 6, 9, 1, 'Drop', NULL, 127720943, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13540, 'Red h\'ween mask', 'Aaaarrrghhh ... I\'m a monster.', NULL, 1, 6, 9, 1, 'Drop', NULL, 171640098, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13541, 'Willow comp bow', 'A powerful bow made from willow.', NULL, 1, 120, 180, 1, 'Drop', NULL, 2606, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, NULL, 5, '0,0,0', '0,0,0,0,22,0,0,0,0,0,0,0,0,0,0', 16, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13542, 'Yew comp bow', 'A powerful bow made from yew wood.', NULL, 1, 720, 1080, 1, 'Drop', NULL, 588, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, NULL, 5, '0,0,0', '0,0,0,0,49,0,0,0,0,0,0,0,0,0,0', 16, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13543, 'Magic comp bow', 'A powerful bow made from magic wood.', NULL, 1, 1000, 1500, 1, 'Drop', NULL, 1345, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, NULL, 5, '0,0,0', '0,0,0,0,71,0,0,0,0,0,0,0,0,0,0', 16, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13544, '3rd age range top', 'Ancient range protection crafted from white dragonhide.', NULL, 1, 18000, 27000, 1, 'Drop', NULL, 74503559, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,6,3', '0,0,0,-15,30,55,47,60,60,55,52,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13545, '3rd age range legs', 'Fabulously ancient range protection crafted from white dragonhide.', NULL, 1, 16000, 24000, 1, 'Drop', NULL, 47837515, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,4,2', '0,0,0,-10,17,31,25,33,30,31,25,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13546, '3rd age range coif', 'Ancient range protection crafted from white dragonhide.', NULL, 1, 4000, 6000, 1, 'Drop', NULL, 9746895, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,3,1', '0,0,0,-2,9,4,7,10,5,8,12,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13547, '3rd age vambraces', 'Fabulously ancient range protection crafted from white dragonhide.', NULL, 1, 86000, 129000, 1, 'Drop', NULL, 6826420, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,-11,11,6,5,7,9,0,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13548, '3rd age robe top', 'Ancient mage protection enchanted in the Third-Age.', NULL, 1, 18000, 27000, 1, 'Drop', NULL, 138719269, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '4,2,0', '0,0,0,24,0,0,0,0,24,0,24,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13549, '3rd age robe', 'Ancient mage protection enchanted in the Third-Age.', NULL, 1, 16000, 24000, 1, 'Drop', NULL, 89961678, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '4,2,0', '0,0,0,19,0,0,0,0,19,0,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13550, '3rd age mage hat', 'Ancient mage protection enchanted in the Third-Age.', NULL, 1, 4000, 6000, 1, 'Drop', NULL, 14976830, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '2,1,0', '0,0,0,8,0,0,0,0,8,0,12,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13551, '3rd age amulet', 'Ancient mage protection enchanted in the Third-Age.', NULL, 1, 8000, 12000, 1, 'Drop', NULL, 35019596, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,15,0,0,0,0,10,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13552, '3rd age platelegs', 'Ancient armour beaten from magical silver.', NULL, 1, 80000, 120000, 1, 'Drop', NULL, 244180930, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '3,0,6', '0,0,0,-25,-2,78,76,83,-5,75,25,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13553, '3rd age platebody', 'Ancient armour beaten from magical silver.', NULL, 1, 80000, 120000, 1, 'Drop', NULL, 266509014, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '4,0,9', '0,0,0,-20,0,96,108,113,-4,97,52,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13554, '3rd age full helmet', 'Ancient armour beaten from magical silver.', NULL, 1, 36000, 54000, 1, 'Drop', NULL, 50697678, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '2,0,4', '0,0,0,-5,-2,47,49,43,-3,48,12,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13555, '3rd age kiteshield', 'Ancient armour beaten from magical silver.', NULL, 1, 72000, 108000, 1, 'Drop', NULL, 91262203, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '5,0,11', '0,0,0,-10,-4,63,65,61,-3,63,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13556, 'Ranger boots', 'Lightweight boots ideal for rangers.', NULL, 1, 80, 120, 1, 'Drop', NULL, 6253527, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,-10,8,2,3,4,2,0,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13557, 'Wizard boots', 'Slightly magical boots.', NULL, 1, 80, 120, 1, 'Drop', NULL, 388955, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,4,0,0,0,0,4,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13558, 'Robin hood hat', 'Endorsed by Robin Hood.', NULL, 1, 180, 270, 1, 'Drop', NULL, 1962571, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,-10,8,4,6,8,4,4,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13560, 'Explorer\'s ring 1', 'A Lumbridge explorer\'s ring.', NULL, NULL, NULL, NULL, 1, 'You will have talk to Explorer Jack in Lumbridge if you destroy this one.', 350, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, 4, '0,0,0', '0,0,0,1,0,0,0,0,0,0,0,0,0,1,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13561, 'Explorer\'s ring 2', 'A Lumbridge explorer\'s ring.', NULL, NULL, NULL, NULL, 1, 'You will have talk to ', 350, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, 4, '0,0,0', '0,0,0,1,0,0,0,0,0,0,0,0,0,1,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13562, 'Explorer\'s ring 3', 'A Lumbridge explorer\'s ring.', NULL, NULL, NULL, NULL, 1, 'You will need to obtain a new ring from Ned in Draynor if you destroy this one.', 350, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, 4, '0,0,0', '0,0,0,1,0,0,0,0,0,0,0,0,0,1,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13563, 'Button mushroom', 'An occasionally edible mushroom.', NULL, NULL, 15, 22, 1, 'Drop', 38, 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13564, 'Button mushroom', 'An occasionally edible mushroom.', 1, NULL, 15, 22, 1, 'Drop', 38, 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13565, 'Doll', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13566, 'Jennica\'s ring', 'This magical ring once belonged to Summer\'s mother.', NULL, NULL, NULL, NULL, 1, 'You may be able to find a new ring near where Summer stood outside the wilderness wall.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13567, 'Cursed magic logs', 'Logs cut from a cursed magic tree.', NULL, NULL, NULL, NULL, 1, 'Drop', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13568, 'Cursed magic logs', 'Logs cut from a cursed magic tree.', 1, NULL, NULL, NULL, 1, 'Drop', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13569, 'Enchanted key notes', 'Notes on how to use the enchanted key.', NULL, NULL, NULL, NULL, 1, 'Hopefully, Jorral will be able to return them.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13570, 'Bowl', 'Useful for mixing things.', NULL, NULL, 1, 2, 1, 'Drop', NULL, 106, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13571, 'Bucket of milk', 'It\'s a bucket of milk.', NULL, NULL, 4, 7, 1, 'Drop', NULL, 177, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13572, 'Clean guam', 'A fresh herb.', NULL, NULL, 1, 1, 1, 'Drop', NULL, 595, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13573, 'Bowl of honey', 'A bowlful of bees\' precious product.', NULL, NULL, NULL, NULL, 1, 'You\'ll have to start again from stratch.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13574, 'Bowl of milk and honey', 'A bowlful of milk and honey.', NULL, NULL, NULL, NULL, 1, 'You\'ll have to start again from stratch.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13575, 'Bowl of milk, honey and guam', 'A bowl full of milk, honey and guam.', NULL, NULL, NULL, NULL, 1, 'You\'ll have to start again from stratch.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13576, 'Map of runescape', 'Your best impression of a map of RuneScape.', NULL, NULL, NULL, NULL, 1, 'Hopefully, the family has more papyrus and charcoal.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13577, 'Papyrus', 'Used for making notes.', NULL, NULL, 4, 6, 1, 'Drop', NULL, 290, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13578, 'Charcoal', 'A lump of charcoal.', NULL, NULL, 18, 27, 1, 'Drop', NULL, 296, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13579, 'Spade', 'A slightly muddy spade. ', NULL, NULL, 1, 1, 1, 'Drop', NULL, 130, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13580, 'Plant pot', 'A plant pot filled with soil.', NULL, NULL, NULL, NULL, 1, 'Drop', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13581, 'Pear tree seedling', 'A seedling has been sown in this plant pot.', NULL, NULL, NULL, NULL, 1, 'Drop', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13582, 'Mango tree seedling', 'A seedling has been sown in this plant pot.', NULL, NULL, NULL, NULL, 1, 'Drop', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13583, 'Quince tree seedling', 'A seedling has been sown in this plant pot.', NULL, NULL, NULL, NULL, 1, 'Drop', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13584, 'Lemon tree seedling', 'A seedling has been sown in this plant pot.', NULL, NULL, NULL, NULL, 1, 'Drop', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13585, 'Avocado tree seedling', 'A seedling has been sown in this plant pot.', NULL, NULL, NULL, NULL, 1, 'Drop', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13586, 'Plum tree seedling', 'A seedling has been sown in this plant pot.', NULL, NULL, NULL, NULL, 1, 'Drop', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13587, 'Pestle and mortar', 'I can grind things for potions in this.', NULL, NULL, 1, 2, 1, 'Drop', 4, 169, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13588, 'Ground guam', 'One of the ingredients for making fish food.', NULL, NULL, NULL, 1, 1, 'Drop', NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13589, 'Bucket', 'It\'s an empty bucket. ', NULL, NULL, NULL, 1, 1, 'Drop', 2, 39, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13591, 'Enchanted key', 'It seems to change temperature as I walk. (Making History)', NULL, NULL, NULL, NULL, 1, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13592, 'A brooch', 'Some ladies jewellery.', NULL, NULL, NULL, NULL, 1, 'Hopefully, you can find another.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13593, 'Old tome', 'It\'s falling apart, but full of knowledge.', NULL, NULL, NULL, NULL, 1, 'You will not get another chance to read the book!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13598, 'Runecrafting guild teleport', 'A tablet containing a magic spell.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13599, 'Air altar teleport', 'A tablet containing a magic spell.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13600, 'Mind altar teleport', 'A tablet containing a magic spell.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13601, 'Water altar teleport', 'A tablet containing a magic spell.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13602, 'Earth altar teleport', 'A tablet containing a magic spell.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13603, 'Fire altar teleport', 'A tablet containing a magic spell.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13604, 'Body altar teleport', 'A tablet containing a magic spell.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13605, 'Cosmic altar teleport', 'A tablet containing a magic spell.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13606, 'Chaos altar teleport', 'A tablet containing a magic spell.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13607, 'Nature altar teleport', 'A tablet containing a magic spell.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13608, 'Law altar teleport', 'A tablet containing a magic spell.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13609, 'Death altar teleport', 'A tablet containing a magic spell.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13610, 'Blood altar teleport', 'A tablet containing a magic spell.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13611, 'Astral altar teleport', 'A tablet containing a magic spell.', NULL, NULL, 40, 60, 1, 'Drop', 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13612, 'Runecrafter hat', 'Comes with goggles, for extra safety while Runecrafting.', NULL, NULL, 30, 45, 1, 'Drop', 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,3,0,3,3,3,3,3,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13613, 'Runecrafter hat', 'Comes with goggles, for extra safety while Runecrafting.', NULL, NULL, 30, 45, 1, 'Drop', 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,3,0,3,3,3,3,3,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13614, 'Runecrafter robe', 'Heavy duty wizard robes.', NULL, NULL, 30, 45, 1, 'Drop', 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,5,0,5,5,5,5,5,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13615, 'Runecrafter hat', 'Comes with goggles, for extra safety while Runecrafting.', NULL, NULL, 30, 45, 1, 'Drop', 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,3,0,3,3,3,3,3,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13616, 'Runecrafter hat', 'Comes with goggles, for extra safety while Runecrafting.', NULL, NULL, 30, 45, 1, 'Drop', 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,3,0,3,3,3,3,3,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13617, 'Runecrafter skirt', 'A heavy-duty wizard robe.', NULL, NULL, 30, 45, 1, 'Drop', 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,4,0,4,4,4,4,4,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13618, 'Runecrafter gloves', 'Essence can be rough on the hands', NULL, NULL, 30, 45, 1, 'Drop', 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, 4, '0,0,0', '0,0,0,2,0,2,2,2,2,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13619, 'Runecrafter robe', 'Heavy duty wizard robes.', NULL, NULL, 30, 45, 1, 'Drop', 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,5,0,5,5,5,5,5,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13620, 'Runecrafter hat', 'Comes with goggles, for extra safety while Runecrafting.', NULL, NULL, 30, 45, 1, 'Drop', 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,3,0,3,3,3,3,3,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13621, 'Runecrafter hat', 'Comes with goggles, for extra safety while Runecrafting.', NULL, NULL, 30, 45, 1, 'Drop', 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,3,0,3,3,3,3,3,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13622, 'Runecrafter skirt', 'A heavy-duty wizard robe.', NULL, NULL, 30, 45, 1, 'Drop', 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,4,0,4,4,4,4,4,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13623, 'Runecrafter gloves', 'Essence can be rough on the hands', NULL, NULL, 30, 45, 1, 'Drop', 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, 4, '0,0,0', '0,0,0,2,0,2,2,2,2,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13624, 'Runecrafter robe', 'Heavy duty wizard robes.', NULL, NULL, 30, 45, 1, 'Drop', 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,5,0,5,5,5,5,5,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13625, 'Runecrafter hat', 'Comes with goggles, for extra safety while Runecrafting.', NULL, NULL, 30, 45, 1, 'Drop', 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,3,0,3,3,3,3,3,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13626, 'Runecrafter hat', 'Comes with goggles, for extra safety while Runecrafting.', NULL, NULL, 30, 45, 1, 'Drop', 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,3,0,3,3,3,3,3,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13627, 'Runecrafter skirt', 'A heavy-duty wizard robe.', NULL, NULL, 30, 45, 1, 'Drop', 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,4,0,4,4,4,4,4,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13628, 'Runecrafter gloves', 'Essence can be rough on the hands', NULL, NULL, 30, 45, 1, 'Drop', 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, 4, '0,0,0', '0,0,0,2,0,2,2,2,2,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13629, 'Runecrafting staff', 'Staff with a holder for a talisman on top.', NULL, NULL, 6, 9, 1, 'Drop', 15, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, NULL, 5, '0,0,0', '0,-1,7,5,0,2,3,1,15,0,0,33,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13630, 'Air talisman staff', 'A staff with a talisman on top.', NULL, NULL, 600, 900, 1, 'Drop', 1500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, 3, 5, '0,0,0', '0,-1,7,5,0,2,3,1,15,0,0,33,0,0,0', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13631, 'Mind talisman staff', 'A staff with a talisman on top.', NULL, NULL, 600, 900, 1, 'Drop', 1500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, 3, 5, '0,0,0', '0,-1,7,5,0,2,3,1,15,0,0,33,0,0,0', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13632, 'Water talisman staff', 'A staff with a talisman on top.', NULL, NULL, 600, 900, 1, 'Drop', 1500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, 3, 5, '0,0,0', '0,-1,7,5,0,2,3,1,16,0,0,33,0,0,0', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13633, 'Earth talisman staff', 'A staff with a talisman on top.', NULL, NULL, 600, 900, 1, 'Drop', 1500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, 3, 5, '0,0,0', '0,-1,7,5,0,2,3,1,16,0,0,33,0,0,0', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13634, 'Fire talisman staff', 'A staff with a talisman on top.', NULL, NULL, 600, 900, 1, 'Drop', 1500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, 3, 5, '0,0,0', '0,-1,7,5,0,2,3,1,16,0,0,33,0,0,0', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13635, 'Body talisman staff', 'A staff with a talisman on top.', NULL, NULL, 600, 900, 1, 'Drop', 1500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, 3, 5, '0,0,0', '0,-1,7,5,0,2,3,1,15,0,0,33,0,0,0', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13636, 'Cosmic talisman staff', 'A staff with a talisman on top.', NULL, NULL, 600, 900, 1, 'Drop', 1500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, 3, 5, '0,0,0', '0,-1,7,5,0,2,3,1,16,0,0,33,0,0,0', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13637, 'Chaos talisman staff', 'A staff with a talisman on top.', NULL, NULL, 600, 900, 1, 'Drop', 1500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, 3, 5, '0,0,0', '0,-1,7,5,0,2,3,1,16,0,0,33,0,0,0', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13638, 'Nature talisman staff', 'A staff with a talisman on top.', NULL, NULL, 600, 900, 1, 'No', 1500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, 3, 5, '0,0,0', '0,-1,7,5,0,2,3,1,16,0,0,33,0,0,0', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13639, 'Law talisman staff', 'A staff with a talisman on top.', NULL, NULL, 600, 900, 1, 'Drop', 1500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, 3, 5, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13640, 'Death talisman staff', 'A staff with a talisman on top.', NULL, NULL, 600, 900, 1, 'Drop', 1500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, 3, 5, '0,0,0', '0,-1,7,5,0,2,3,1,16,0,0,33,0,0,0', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13641, 'Blood talisman staff', 'A staff with a talisman on top.', NULL, NULL, 600, 900, 1, 'Drop', 1500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, 3, 5, '0,0,0', '0,-1,7,5,0,2,3,1,16,0,0,33,0,0,0', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13642, 'Omni-talisman staff', 'A staff with a talisman on top.', NULL, NULL, NULL, NULL, 1, 'You will have to speak to Wizard Elriss to get another omni-talisman.', 1500, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, 3, 4, '0,0,0', '0,-1,7,5,0,2,3,1,16,0,0,33,0,0,0', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13643, 'Yellow attractor', 'Attracts Runecrafting energy orbs in the rune altars.', NULL, NULL, NULL, NULL, 1, 'If you destroy this, you will leave the game.', 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13644, 'Yellow repeller', 'Repels Runecrafting energy orbs in the rune altars.', NULL, NULL, NULL, NULL, 1, 'If you destroy this, you will leave the game.', 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13645, 'Green attractor', 'Attracts Runecrafting energy orbs in the rune altars.', NULL, NULL, NULL, NULL, 1, 'If you destroy this, you will leave the game.', 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13646, 'Green repeller', 'Repels Runecrafting energy orbs in the rune altars.', NULL, NULL, NULL, NULL, 1, 'If you destroy this, you will leave the game.', 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13647, 'Green barrier generator', 'It creates barriers.', NULL, NULL, NULL, NULL, 1, 'If you destroy this, you will leave the game.', 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13648, 'Yellow barrier generator', 'It creates barriers.', NULL, NULL, NULL, NULL, 1, 'If you destroy this, you will leave the game.', 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13649, 'Omni-talisman', 'Many mysterious powers emanate from the talisman.', NULL, NULL, NULL, NULL, 1, 'You will have to speak to ', 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13650, 'Runecrafting guild token', 'Wizard Elriss will exchange these for rewards.', NULL, NULL, NULL, NULL, 1, 'Unknown ', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13651, 'Runecrafting guild token', 'Wizard Elriss will exchange these for rewards.', NULL, NULL, NULL, NULL, 1, 'Unknown ', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13652, 'Runecrafting guild token', 'Wizard Elriss will exchange these for rewards.', NULL, NULL, NULL, NULL, 1, 'Unknown ', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13653, 'Runecrafting guild token', 'Wizard Elriss will exchange these for rewards.', NULL, NULL, NULL, NULL, 1, 'Unknown ', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13654, 'Runecrafting guild token', 'Wizard Elriss will exchange these for rewards.', NULL, NULL, NULL, NULL, 1, 'Unknown ', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13655, 'Omni-tiara', 'A tiara infused with the properties of all talismans.', NULL, NULL, NULL, NULL, 1, 'You will have to speak to Wizard Elriss to get another omni-talisman.', 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13656, 'Runecrafter hat', 'Comes with goggles, for extra safety while Runecrafting.', NULL, NULL, 30, 45, 1, 'Drop', 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,3,0,3,3,3,3,3,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13657, 'Runecrafter hat', 'Comes with goggles, for extra safety while Runecrafting.', NULL, NULL, 30, 45, 1, 'Drop', 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,3,0,3,3,3,3,3,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13658, 'Runecrafter hat', 'Comes with goggles, for extra safety while Runecrafting.', NULL, NULL, 30, 45, 1, 'Drop', 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,3,0,3,3,3,3,3,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13659, 'Ring of fire', 'It burns, burns, burns...', NULL, NULL, 40, 60, 1, 'To get another Ring of Fire, you need to keep six beacons alight simultaneously and then talk to King Roald.', 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 12, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 50, NULL, 0), +(13660, 'Flame gloves', 'The hottest gloves in town.', NULL, NULL, NULL, NULL, 1, 'To get another pair of Flame Gloves, you need to keep ten beacons alight simultaneously and then talk to King Roald.', 200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13661, 'Inferno adze', 'Danger: risk of fire.', NULL, NULL, 120, 180, 1, 'To get another Inferno Adze, you need to keep all fourteen beacons alight simultaneously and then talk to King Roald.', 300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1096, 3, 5, '0,0,0', '10,9,7,0,0,0,1,0,0,0,0,11,0,0,0', 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 75, NULL, 0), +(13662, 'Fire beacon', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13663, 'Circus ticket', 'Tear ticket to exit the circus.', NULL, NULL, NULL, NULL, 1, 'The ticket says: Tearing this ticket will make you leave the circus. Choose wisely.', 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13666, 'Giant\'s hand', 'Let\'s give them a big hand!', NULL, NULL, 4, 6, 1, 'You will need to speak to the ringmaster to get another one.', 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 326, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13667, 'Clown hat', 'A clown hat!', NULL, NULL, 4, 6, 1, 'You will need to speak to the ringmaster to get another.', 10, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13668, 'Clown shirt', 'Buttoning this up is tricky.', NULL, NULL, 4, 6, 1, 'You will need to speak to the ringmaster to get another.', 10, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13669, 'Clown leggings', 'These are my funny pants.', NULL, NULL, 4, 6, 1, 'You will need to speak to the ringmaster to get another.', 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13670, 'Clown shoes', 'For helping clowns stay upright.', NULL, NULL, 4, 6, 1, 'You will need to speak to the ringmaster to get another.', 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13671, 'Tambourine', 'For making a happy noise.', NULL, NULL, 4, 6, 1, 'You will need to speak to the ringmaster to get another.', 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 327, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13672, 'Ringmaster hat', 'Very stylish.', NULL, NULL, 4, 6, 1, 'You will need to speak to the ringmaster to get another one.', 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13673, 'Ringmaster shirt', 'Fits nicely.', NULL, NULL, 4, 6, 1, 'You will need to speak to the ringmaster to get another one.', 10, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13674, 'Ringmaster pants', 'Very stylish.', NULL, NULL, 4, 6, 1, 'You will need to speak to the ringmaster to get another one.', 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13675, 'Ringmaster boots', 'Shiny.', NULL, NULL, 4, 6, 1, 'You will need to speak to the ringmaster to get another one.', 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13676, 'Mega-phonus', 'For shouting at people.', NULL, NULL, 4, 6, 1, 'You will need to speak to the ringmaster to get another one.', 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 328, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13677, 'Acrobat shirt', 'Stretchy.', NULL, NULL, 4, 6, 1, 'You will need to speak to the ringmaster to get another.', 10, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13678, 'Acrobat pants', 'Very tight fitting.', NULL, NULL, 4, 6, 1, 'You will need to speak to the ringmaster to get another.', 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13679, 'Acrobat shoes', 'These keep your feet off the floor.', NULL, NULL, 4, 6, 1, 'You will need to speak to the ringmaster to get another.', 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13680, 'Acrobat hood', 'Oh no, I\'m bald! Just kidding.', NULL, NULL, 4, 6, 1, 'You will need to speak to the ringmaster to get another.', 10, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13681, 'Acrobat shirt', 'Stretchy.', NULL, NULL, 4, 6, 1, 'You will need to speak to the ringmaster to get another.', 10, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13682, 'Acrobat pants', 'Very tight fitting.', NULL, NULL, 4, 6, 1, 'You will need to speak to the ringmaster to get another.', 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13683, 'Acrobat shoes', 'These keep your feet off the floor.', NULL, NULL, 4, 6, 1, 'You will need to speak to the ringmaster to get another.', 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13684, 'Acrobat hood', 'Oh no, I\'m bald! Just kidding.', NULL, NULL, 4, 6, 1, 'You will need to speak to the ringmaster to get another.', 10, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(13685, 'A stylish hat', 'Very dapper!', NULL, NULL, 4, 6, 1, 'You will need to speak to the ringmaster to get another.', 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13686, 'A stylish hat', 'Very dapper!', NULL, NULL, 4, 6, 1, 'You will need to speak to the ringmaster to get another.', 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13687, 'A stylish hat', 'Very dapper!', NULL, NULL, 4, 6, 1, 'You will need to speak to the ringmaster to get another.', 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13688, 'A stylish hat', 'Very dapper!', NULL, NULL, 4, 6, 1, 'You will need to speak to the ringmaster to get another.', 10, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13689, 'A stylish hat', 'Very dapper!', NULL, NULL, 4, 6, 1, 'You will need to speak to the ringmaster to get another.', 10, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13690, 'A stylish hat', 'Very dapper!', NULL, NULL, 4, 6, 1, 'You will need to speak to the ringmaster to get another.', 10, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13691, 'Shirt', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13692, 'Shirt', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13693, 'Shirt', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13694, 'Shirt', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13695, 'Shirt', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13696, 'Shirt', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13697, 'Leggings', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13698, 'Leggings', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13699, 'Leggings', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13700, 'Skirt', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13701, 'Skirt', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13702, 'Skirt', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13703, 'Shoes', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13704, 'Shoes', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13705, 'Shoes', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13706, 'Shoes', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13707, 'Tightrope 101', 'Shows you the moves you need to succeed!', NULL, NULL, NULL, NULL, 1, 'You can get another Tightrope 101 by speaking to the Agility assistant.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13708, 'Tightrope 101', 'Shows you the moves you need to succeed!', 1, NULL, NULL, NULL, 1, 'You can get another Tightrope 101 by speaking to the Agility assistant.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13709, 'Balls (level 10 approx.)', 'An Agility level of 10 is advised when juggling these.', NULL, NULL, NULL, NULL, 1, 'You can get another one from the equipment box for this performance.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13710, 'Plates (level 20 approx.)', 'An Agility level of 20 is advised when juggling these.', NULL, NULL, NULL, NULL, 1, 'You can get another one from the equipment box for this performance.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13711, 'Eggs (level 30 approx.)', 'An Agility level of 30 is advised when juggling these.', NULL, NULL, NULL, NULL, 1, 'You can get another one from the equipment box for this performance.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13712, 'Knives (level 40 approx.)', 'An Agility level of 40 is advised when juggling these.', NULL, NULL, NULL, NULL, 1, 'You can get another one from the equipment box for this performance.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13713, 'Spades (level 50 approx.)', 'An Agility level of 50 is advised when juggling these.', NULL, NULL, NULL, NULL, 1, 'You can get another one from the equipment box for this performance.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13714, 'Tuna (level 60 approx.)', 'An Agility level of 60 is advised when juggling these.', NULL, NULL, NULL, NULL, 1, 'You can get another one from the equipment box for this performance.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13715, 'Soap (level 70 approx.)', 'An Agility level of 70 is advised when juggling these.', NULL, NULL, NULL, NULL, 1, 'You can get another one from the equipment box for this performance.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13716, 'Cannon balls (level 80 approx.)', 'An Agility level of 80 is advised when juggling these.', NULL, NULL, NULL, NULL, 1, 'You can get another one from the equipment box for this performance.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13717, 'Torches (level 90 approx.)', 'An Agility level of 90 is advised when juggling these.', NULL, NULL, NULL, NULL, 1, 'You can get another one from the equipment box for this performance.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13718, 'Chinchompas (level 99 approx.)', 'An Agility level of 99 is advised when juggling these.', NULL, NULL, NULL, NULL, 1, 'You can get another one from the equipment box for this performance.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13719, 'Performance shortbow', 'Short, but effective.', NULL, NULL, NULL, NULL, 1, 'You can get another one from the equipment box for this performance.', 50, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 176, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13720, 'Performance knife', 'A finely balanced throwing knife.', NULL, NULL, NULL, NULL, 1, 'You can get another one from the equipment box for this performance.', 14, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13721, 'Performance throwing axe', 'A finely balanced throwing axe.', NULL, NULL, NULL, NULL, 1, 'You can get another one from the equipment box for this performance.', 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13722, 'Performance arrow', 'Arrows with bronze heads.', NULL, NULL, NULL, NULL, 1, 'You can get another one from the equipment box for this performance.', 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13723, 'Teleport spell', 'A tablet containing a Magic spell.', NULL, NULL, NULL, NULL, 1, 'You can get another one from the equipment box for this performance.', 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13724, 'Levitation spell', 'A tablet containing a Magic spell.', NULL, NULL, NULL, NULL, 1, 'You can get another one from the equipment box for this performance.', 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13725, 'Alchemy spell', 'A tablet containing a Magic spell.', NULL, NULL, NULL, NULL, 1, 'You can get another one from the equipment box for this performance.', 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13726, 'Elemental spell', 'A tablet containing a Magic spell.', NULL, NULL, NULL, NULL, 1, 'You can get another one from the equipment box for this performance.', 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13727, 'Stardust', 'Small, shiny bits of rock.', NULL, NULL, 20, 30, 1, 'You can mine more if you find another crashed star.', 50, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13732, 'Spy notebook', 'Notes on the locations of penguin spies.', NULL, NULL, NULL, NULL, 1, 'You will need to speak with Larry/Chuck at Ardougne Zoo to get another.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13734, 'Spirit shield', 'An ethereal shield.', 1, NULL, 28000, 42000, 1, 'Drop', 70000, 39982, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, 4, '0,0,0', '0,0,0,0,0,39,41,50,1,45,40,0,0,1,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 0), +(13735, 'Spirit shield', 'An ethereal shield.', 1, NULL, 28000, 42000, 1, 'Drop', 70000, 39982, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13736, 'Blessed spirit shield', 'An ethereal shield that has been blessed with holy powers.', 1, NULL, 560000, 840000, 1, 'Drop', 1400000, 936814, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, 4, '0,0,0', '0,0,0,0,0,53,55,73,2,52,65,0,0,3,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 0), +(13737, 'Blessed spirit shield', 'An ethereal shield that has been blessed with holy powers.', 1, NULL, 560000, 840000, 1, 'Drop', 1400000, 936814, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13738, 'Arcane spirit shield', 'An ethereal shield with an arcane sigil attached to it.', 1, NULL, 800000, 1200000, 1, 'Drop', 2000000, 15076199, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, 4, '0,0,0', '0,0,0,20,0,53,55,73,2,52,65,0,0,3,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13739, 'Arcane spirit shield', 'An ethereal shield with an arcane sigil attached to it.', 1, NULL, 800000, 1200000, 1, 'Drop', 2000000, 15076199, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13740, 'Divine spirit shield', 'An ethereal shield with a divine sigil attached to it.', 1, NULL, 800000, 1200000, 1, 'Drop', 2000000, 40003587, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, 4, '0,0,0', '0,0,0,0,0,63,65,75,2,57,65,0,0,3,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13741, 'Divine spirit shield', 'An ethereal shield with a divine sigil attached to it.', 1, NULL, 800000, 1200000, 1, 'Drop', 2000000, 40003587, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13742, 'Elysian spirit shield', 'An ethereal shield with an elysian sigil attached to it.', 1, NULL, 800000, 1200000, 1, 'Drop', 2000000, 28420591, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, 4, '0,0,0', '0,0,0,0,0,63,65,75,2,57,65,0,0,3,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13743, 'Elysian spirit shield', 'An ethereal shield with an elysian sigil attached to it.', 1, NULL, 800000, 1200000, 1, 'Drop', 2000000, 28420591, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13744, 'Spectral spirit shield', 'An ethereal shield with a spectral sigil attached to it.', 1, NULL, 800000, 1200000, 1, 'Drop', 2000000, 3616112, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, 4, '0,0,0', '0,0,0,0,0,53,55,73,30,52,65,0,0,3,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13745, 'Spectral spirit shield', 'An ethereal shield with a spectral sigil attached to it.', 1, NULL, 800000, 1200000, 1, 'Drop', 2000000, 3616112, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13746, 'Arcane sigil', 'A sigil in the shape of an arcane rune.', 1, NULL, 300000, 450000, 1, 'Drop', 750000, 19508553, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 0), +(13747, 'Arcane sigil', 'A sigil in the shape of an arcane rune.', 1, NULL, 300000, 450000, 1, 'Drop', 750000, 19508553, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13748, 'Divine sigil', 'A sigil in the shape of a divine symbol.', 1, NULL, 300000, 450000, 1, 'Drop', 750000, 53026134, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 0), +(13749, 'Divine sigil', 'A sigil in the shape of a divine symbol.', 1, NULL, 300000, 450000, 1, 'Drop', 750000, 53026134, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13750, 'Elysian sigil', 'A sigil marked with elysian signs.', 1, NULL, 300000, 450000, 1, 'Drop', 750000, 36159098, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 0), +(13751, 'Elysian sigil', 'A sigil marked with elysian signs.', 1, NULL, 300000, 450000, 1, 'Drop', 750000, 36159098, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13752, 'Spectral sigil', 'A sigil tempered with spectral powers.', 1, NULL, 300000, 450000, 1, 'Drop', 750000, 3116720, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 0), +(13753, 'Spectral sigil', 'A sigil tempered with spectral powers.', 1, NULL, 300000, 450000, 1, 'Drop', 750000, 3116720, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13754, 'Holy elixir', 'A bottle of holy elixir.', 1, NULL, 300000, 450000, 1, 'Drop', 750000, 950904, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 0), +(13755, 'Holy elixir', 'A bottle of holy elixir.', 1, NULL, 300000, 450000, 1, 'Drop', 750000, 950904, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13756, 'Cursed willow logs', 'Logs cut from cursed willow roots.', NULL, NULL, 16, 24, 1, 'Drop', 40, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13757, 'Hartwin', 'A loyal scout of Varrock.', NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13758, 'Grubby key', 'A key that was found while tracking zombies. (Defender of Varrock)', NULL, NULL, NULL, NULL, 1, 'You\'ll have to keep searching trees near the zombie trails until you find another.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13759, 'Scrap of paper', 'The location of ', NULL, NULL, NULL, NULL, 1, 'You\'ll have to speak to Thurgo to find another.', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13760, 'Bottle', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13761, 'Bottle of mist', 'A bottle of red mist.', NULL, NULL, NULL, NULL, 1, 'Drop', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13762, 'List of elders', 'This lists each of the founding members of the ', NULL, NULL, NULL, NULL, 1, 'You can get another from ', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13763, 'Cavalier and mask', 'I hope I don\'t meet any roundheads...', NULL, 1, 80, 120, 1, 'Drop', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13764, 'Rune claws', 'A right hand fighting claw.', NULL, 1, 2400, 3600, 1, 'Drop', NULL, 6535, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '26,38,-4,0,0,10,19,5,0,0,0,39,0,0,0', 9, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13765, 'Rune dagger', 'A powerful dagger.', NULL, 1, 3200, 4800, 1, 'Drop', NULL, 4381, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '25,12,-4,1,0,0,0,0,1,0,0,24,0,0,0', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13766, 'Rune dagger(p)', 'A picture of a lady called Elena.', NULL, NULL, NULL, NULL, 1, 'Drop', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '25,12,-4,1,0,0,0,0,1,0,0,24,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13767, 'Rune dagger(p+)', 'A picture of a lady called Elena.', NULL, NULL, NULL, NULL, 1, 'Drop', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '25,12,-4,1,0,0,0,0,1,0,0,24,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13768, 'Rune dagger(p++)', 'A picture of a lady called Elena.', NULL, NULL, NULL, NULL, 1, 'Drop', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '25,12,-4,1,0,0,0,0,1,0,0,24,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13769, 'Rune spear', 'A rune tipped spear.', NULL, 1, 8320, 12480, 1, 'Drop', NULL, 11317, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, NULL, 5, '0,0,0', '36,36,36,0,0,1,1,0,0,0,0,42,0,0,0', 14, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13770, 'Dragon spear', 'A dragon tipped spear.', NULL, 1, 24960, 37440, 1, 'Drop', NULL, 36774, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, NULL, 5, '0,0,0', '55,55,55,0,0,5,5,5,5,5,0,60,0,0,0', 14, 1, 1, '2080,2081,2082,2080', 2079, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13771, 'Rune spear(p)', 'A picture of a lady called Elena.', NULL, NULL, NULL, NULL, 1, 'Drop', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, NULL, 5, '0,0,0', '36,36,36,0,0,1,1,0,0,0,0,42,0,0,0', NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13772, 'Dragon spear(p)', 'A picture of a lady called Elena.', NULL, NULL, NULL, NULL, 1, 'Drop', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, NULL, 5, '0,0,0', '55,55,55,0,0,5,5,5,5,5,0,60,0,0,0', NULL, 1, 1, '2080,2081,2082,2080', 2079, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13773, 'Rune spear(p+)', 'A picture of a lady called Elena.', NULL, NULL, NULL, NULL, 1, 'Drop', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, NULL, 5, '0,0,0', '36,36,36,0,0,1,1,0,0,0,0,42,0,0,0', NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13774, 'Dragon spear(p+)', 'A picture of a lady called Elena.', NULL, NULL, NULL, NULL, 1, 'Drop', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, NULL, 5, '0,0,0', '55,55,55,0,0,5,5,5,5,5,0,60,0,0,0', NULL, 1, 1, '2080,2081,2082,2080', 2079, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13775, 'Rune spear(p++)', 'A picture of a lady called Elena.', NULL, NULL, NULL, NULL, 1, 'Drop', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, NULL, 5, '0,0,0', '36,36,36,0,0,1,1,0,0,0,0,42,0,0,0', NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13776, 'Dragon spear(p++)', 'A picture of a lady called Elena.', NULL, NULL, NULL, NULL, 1, 'Drop', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, NULL, 5, '0,0,0', '55,55,55,0,0,5,5,5,5,5,0,60,0,0,0', NULL, 1, 1, '2080,2081,2082,2080', 2079, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13777, 'Rune sword', 'A razor-sharp sword.', NULL, 1, 8320, 12480, 1, 'Drop', NULL, 11849, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1381, NULL, 4, '0,0,0', '38,26,-2,0,0,0,2,1,0,0,0,39,0,0,0', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13778, 'Rune 2h sword', 'A two handed sword.', NULL, 1, 25600, 38400, 1, 'Drop', NULL, 37511, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 124, NULL, 7, '0,0,0', '-4,69,50,-4,0,0,0,0,0,-1,0,70,0,0,0', 7, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13779, 'Rune halberd', 'A rune halberd.', NULL, 1, 51200, 76800, 1, 'Drop', NULL, 74298, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, NULL, 7, '0,0,0', '48,67,0,-4,0,-1,4,5,0,0,0,68,0,0,0', 15, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13780, 'Rune mace', 'A spiky mace.', NULL, 1, 5760, 8640, 1, 'Drop', NULL, 7917, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, '0,0,0', '20,-2,39,0,0,0,0,0,0,0,0,36,0,4,0', 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13781, 'Rune chainbody', 'A series of connected metal rings.', NULL, 1, 20000, 30000, 1, 'Drop', NULL, 29145, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '3,0,6', '0,0,0,-15,0,63,72,78,-3,65,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13782, 'Rune boots', 'These will protect my feet.', NULL, 1, 5000, 7500, 1, 'Drop', NULL, 7036, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,-3,-1,12,13,14,0,0,10,2,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13783, 'Rune med helm', 'A medium sized helmet.', NULL, 1, 7680, 11520, 1, 'Drop', NULL, 10678, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '1,0,3', '0,0,0,-3,-1,22,23,21,-1,22,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13784, 'Granite helm', 'A stone helmet.', NULL, 1, 18400, 27600, 1, 'Drop', NULL, 26576, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '2,0,4', '0,0,0,-9,-7,31,33,29,-1,39,9,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13785, 'Granite body', 'Provides excellent protection.', NULL, 1, 32000, 48000, 1, 'Drop', NULL, 136414, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '4,0,8', '0,0,0,-22,-5,87,84,79,-6,97,45,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13786, 'Granite legs', 'These look pretty heavy.', NULL, 1, 26400, 39600, 1, 'Drop', NULL, 72213, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '2,0,5', '0,0,0,-31,-18,43,45,41,-4,68,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13787, 'Rune sq shield', 'A medium square shield.', NULL, 1, 15360, 23040, 1, 'Drop', NULL, 22225, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '3,0,7', '0,0,0,-6,-2,38,40,36,0,38,35,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13788, 'Granite shield', 'A solid stone shield.', NULL, 1, 22400, 33600, 1, 'Drop', NULL, 32512, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '5,0,10', '0,0,0,-12,-8,40,42,38,0,65,50,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13789, 'A powdered wig', 'A big \'do about nothing.', NULL, 1, 800, 1200, 1, 'Drop', NULL, 42991, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13790, 'Flared trousers', 'These\'ll help me stay alive.', NULL, 1, 800, 1200, 1, 'Drop', NULL, 811293, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13791, 'Pantaloons', 'Alas, someone has slashed my pantaloons.', NULL, 1, 800, 1200, 1, 'Drop', NULL, 19286, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13792, 'Sleeping cap', 'A cap for wearing whil...zzzzzzzzz', NULL, 1, 800, 1200, 1, 'Drop', NULL, 75357, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13793, 'Rune cane', 'A diamond-topped cane.', NULL, 1, 5760, 8640, 1, 'Drop', NULL, 76692, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, '0,0,0', '0,-2,39,0,0,0,0,0,0,0,0,36,0,4,0', 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13794, 'Top hat', 'Comes with a free rabbit!', NULL, 1, 80, 120, 1, 'Drop', NULL, 333537, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13795, 'Sheep mask', 'Shear elegance.', NULL, 1, 320, 480, 1, 'Drop', NULL, 582969, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13796, 'Penguin mask', 'I can get the look right, but can I do the waddle too?', NULL, 1, 320, 480, 1, 'Drop', NULL, 1159807, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13797, 'Bat mask', 'The bats have left the belltower.', NULL, 1, 320, 480, 1, 'Drop', NULL, 681595, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13798, 'Cat mask', 'It\'s the year of the cat!', NULL, 1, 320, 480, 1, 'Drop', NULL, 2512014, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13799, 'Wolf mask', 'I\'m hungry like the wolf.', NULL, 1, 320, 480, 1, 'Drop', NULL, 3240770, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13800, 'Rune platebody (g)', 'Rune platebody with gold trim.', NULL, 1, 26000, 39000, 1, 'Drop', NULL, 343688, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '3,0,6', '0,0,0,-30,-10,82,80,72,-6,80,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13801, 'Rune platelegs (g)', 'Rune platelegs with gold trim.', NULL, 1, 25600, 38400, 1, 'drop', NULL, 238139, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '2,0,4', '0,0,0,-21,-7,51,49,47,-4,49,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13802, 'Rune plateskirt (g)', 'Rune plateskirt with gold trim.', NULL, 1, 25600, 38400, 1, 'Drop', NULL, 37616, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '2,0,4', '0,0,0,-21,-7,51,49,47,-4,49,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13803, 'Rune full helm(g)', 'Rune full helmet with gold trim.', NULL, 1, 14080, 21120, 1, 'Drop', NULL, 247877, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '1,0,3', '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13804, 'Rune kiteshield (g)', 'Rune kiteshield with gold trim', NULL, 1, 21760, 32640, 1, 'Drop', NULL, 118205, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13805, 'Rune platebody (t)', 'Rune platebody with trim.', NULL, 1, 26000, 39000, 1, 'Drop', NULL, 100586, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '3,0,6', '0,0,0,-30,-10,82,80,72,-6,80,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13806, 'Rune platelegs (t)', 'Rune platelegs with trim!', NULL, 1, 25600, 38400, 1, 'Drop', NULL, 81577, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '2,0,4', '0,0,0,-21,-7,51,49,47,-4,49,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13807, 'Rune plateskirt (t)', 'Rune plateskirt with trim.', NULL, 1, 25600, 38400, 1, 'Drop', NULL, 37701, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '2,0,4', '0,0,0,-21,-7,51,49,47,-4,49,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13808, 'Rune full helm (t)', 'Rune full helmet with trim.', NULL, 1, 14080, 21120, 1, 'Drop', NULL, 95809, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '1,0,3', '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13809, 'Rune kiteshield (t)', 'A large, metal shield with a nice trim.', NULL, 1, 21760, 32640, 1, 'Drop', NULL, 46469, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13810, 'Highwayman mask', 'Your money or your life!', NULL, 1, 16, 24, 1, 'Drop', NULL, 252995, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13811, 'Blue beret', 'Parlez-vous francais?', NULL, 1, 32, 48, 1, 'Drop', NULL, 135411, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13812, 'Black beret', 'Parlez-vous francais?', NULL, 1, 32, 48, 1, 'Drop', NULL, 451371, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13813, 'White beret', 'Parlez-vous Francais?', NULL, 1, 32, 48, 1, 'Drop', NULL, 704147, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13814, 'Tan cavalier', 'All for one and one for all!', NULL, 1, 80, 120, 1, 'Drop', NULL, 42014, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13815, 'Dark cavalier', 'All for one and one for all!', NULL, 1, 80, 120, 1, 'Drop', NULL, 61518, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13816, 'Black cavalier', 'All for one and one for all!', NULL, 1, 80, 120, 1, 'Drop', NULL, 338530, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13817, 'Red headband', 'A minimalist\'s hat.', NULL, 1, 16, 24, 1, 'Drop', NULL, 159694, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13818, 'Black headband', 'A minimalist\'s hat.', NULL, 1, 16, 24, 1, 'Drop', NULL, 83543, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13819, 'Brown headband', 'A minimalist\'s hat.', NULL, 1, 16, 24, 1, 'Drop', NULL, 26474, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13820, 'Zamorak platebody', 'Rune platebody in the colours of Zamorak.', NULL, 1, 26000, 39000, 1, 'Drop', NULL, 868398, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '3,0,6', '0,0,0,-30,-10,82,80,72,-6,80,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13821, 'Zamorak platelegs', 'Rune platelegs in the colours of Zamorak.', NULL, 1, 25600, 38400, 1, 'Drop', NULL, 316989, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '2,0,4', '0,0,0,-21,-7,51,49,47,-4,49,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13822, 'Zamorak plateskirt', 'Rune plateskirt in the colours of Zamorak.', NULL, 1, 25600, 38400, 1, 'Drop', NULL, 38597, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '2,0,4', '0,0,0,-21,-7,51,49,47,-4,49,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13823, 'Zamorak full helm', 'A full helmet in the colours of Zamorak.', NULL, 1, 14080, 21120, 1, 'Drop', NULL, 618480, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '1,0,3', '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13824, 'Zamorak kiteshield', 'A Rune kiteshield in the colours of Zamorak.', NULL, 1, 21760, 32640, 1, 'Drop', NULL, 225574, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13825, 'Saradomin platebody', 'Rune platebody in the colours of Saradomin.', NULL, 1, 26000, 39000, 1, 'Drop', NULL, 1555099, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '3,0,6', '0,0,0,-30,-10,82,80,72,-6,80,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13826, 'Saradomin platelegs', 'Rune platelegs in the colours of Saradomin!', NULL, 1, 25600, 38400, 1, 'Drop', NULL, 376849, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '2,0,4', '0,0,0,-21,-7,51,49,47,-4,49,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13827, 'Saradomin plateskirt', 'Rune plateskirt in the colours of Saradomin.', NULL, 1, 25600, 38400, 1, 'Drop', NULL, 53048, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '2,0,4', '0,0,0,-21,-7,51,49,47,-4,49,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13828, 'Saradomin full helm', 'Rune full helmet in the colours of Saradomin.', NULL, 1, 14080, 21120, 1, 'Drop', NULL, 1025974, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '1,0,3', '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13829, 'Saradomin kiteshield', 'Rune kiteshield in the colours of Saradomin.', NULL, 1, 21760, 32640, 1, 'Drop', NULL, 353916, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13830, 'Guthix platebody', 'Rune platebody in the colours of Guthix.', NULL, 1, 6000, 9000, 1, 'Drop', NULL, 406762, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '3,0,6', '0,0,0,-30,-10,82,80,72,-6,80,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13831, 'Guthix platelegs', 'Rune platelegs in the colours of Guthix.', NULL, 1, 25600, 38400, 1, 'Drop', NULL, 181471, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '2,0,4', '0,0,0,-21,-7,51,49,47,-4,49,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13832, 'Guthix plateskirt', 'Rune plateskirt in the colours of Guthix.', NULL, 1, 25600, 38400, 1, 'Drop', NULL, 38388, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '2,0,4', '0,0,0,-21,-7,51,49,47,-4,49,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13833, 'Guthix full helm', 'A rune full helmet in the colours of Guthix.', NULL, 1, 14080, 21120, 1, 'Drop', NULL, 399963, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '1,0,3', '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13834, 'Guthix kiteshield', 'Rune kiteshield in the colours of Guthix.', NULL, 1, 21760, 32640, 1, 'Drop', NULL, 185266, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13835, 'Gilded platebody', 'Rune platebody with complete gold trim & plating.', NULL, 1, 26000, 39000, 1, 'Drop', NULL, 2034838, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '3,0,6', '0,0,0,-30,-10,82,80,72,-6,80,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13836, 'Gilded platelegs', 'Rune platelegs with gold plate.', NULL, 1, 25600, 38400, 1, 'Drop', NULL, 1299758, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '2,0,4', '0,0,0,-21,-7,51,49,47,-4,49,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13837, 'Gilded plateskirt', 'Rune plateskirt with gold plate.', NULL, 1, 25600, 38400, 1, 'Drop', NULL, 84191, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '2,0,4', '0,0,0,-21,-7,51,49,47,-4,49,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13838, 'Gilded full helm', 'Rune full helmet with gold plate.', NULL, 1, 14080, 21120, 1, 'Drop', NULL, 1057068, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '1,0,3', '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13839, 'Gilded kiteshield', 'Rune kiteshield with gold plate.', NULL, 1, 21760, 32640, 1, 'Drop', NULL, 506093, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '3,0,7', '0,0,0,-8,-2,44,48,46,-1,46,45,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13845, 'Brawling gloves (melee)', 'A pair of gloves that gives you bonus Atk, Def, Str and LP xp.', NULL, NULL, 20000, 30000, 1, 'Your brawling gloves are fragile and will disappear if you drop them. Are you sure you want to drop them?', 50000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13846, 'Brawling gloves (ranged)', 'A pair of gloves that gives you bonus Ranged xp.', NULL, NULL, 20000, 30000, 1, 'Your brawling gloves are fragile and will disappear if you drop them. Are you sure you want to drop them?', 50000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(13847, 'Brawling gloves (magic)', 'A pair of gloves that gives you bonus Magic xp.', NULL, NULL, 20000, 30000, 1, 'Your brawling gloves are fragile and will disappear if you drop them. Are you sure you want to drop them?', 50000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13848, 'Brawling gloves (prayer)', 'A pair of gloves that gives you bonus Prayer xp.', NULL, NULL, 20000, 30000, 1, 'Your brawling gloves are fragile and will disappear if you drop them. Are you sure you want to drop them?', 50000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13849, 'Brawling gloves (agility)', 'A pair of gloves that gives you bonus Agility xp.', NULL, NULL, 20000, 30000, 1, 'Your brawling gloves are fragile and will disappear if you drop them. Are you sure you want to drop them?', 50000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13850, 'Brawling gloves (wc)', 'A pair of gloves that gives you bonus Woodcutting xp.', NULL, NULL, 20000, 30000, 1, 'Your brawling gloves are fragile and will disappear if you drop them. Are you sure you want to drop them?', 50000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13851, 'Brawling gloves (fm)', 'A pair of gloves that gives you bonus Firemaking xp.', NULL, NULL, 20000, 30000, 1, 'Your brawling gloves are fragile and will disappear if you drop them. Are you sure you want to drop them?', 50000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13852, 'Brawling gloves (mining)', 'A pair of gloves that gives you bonus Mining xp.', NULL, NULL, 20000, 30000, 1, 'Your brawling gloves are fragile and will disappear if you drop them. Are you sure you want to drop them?', 50000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13853, 'Brawling gloves (hunter)', 'A pair of gloves that gives you bonus Hunting xp.', NULL, NULL, 20000, 30000, 1, 'Your brawling gloves are fragile and will disappear if you drop them. Are you sure you want to drop them?', 50000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13854, 'Brawling gloves (thieving)', 'A pair of gloves that gives you bonus Thieving xp.', NULL, NULL, 20000, 30000, 1, 'Your brawling gloves are fragile and will disappear if you drop them. Are you sure you want to drop them?', 50000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13855, 'Brawling gloves (smithing)', 'A pair of gloves that gives you bonus Smithing xp.', NULL, NULL, 20000, 30000, 1, 'Your brawling gloves are fragile and will disappear if you drop them. Are you sure you want to drop them?', 50000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13856, 'Brawling gloves (fishing)', 'A pair of gloves that gives you bonus Fishing xp.', NULL, NULL, 20000, 30000, 1, 'Your brawling gloves are fragile and will disappear if you drop them. Are you sure you want to drop them?', 50000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13857, 'Brawling gloves (cooking)', 'A pair of gloves that gives you bonus Cooking xp.', NULL, NULL, 20000, 30000, 1, 'Your brawling gloves are fragile and will disappear if you drop them. Are you sure you want to drop them?', 50000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13858, 'Zuriel\'s robe top', 'This item degrades in combat, and will turn to dust.', NULL, NULL, 200000, 300000, 1, 'Drop', 500000, 1412812, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '12,6,0', '0,0,0,35,-10,63,45,74,35,0,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13859, 'Zuriel\'s robe top', 'This item degrades in combat, and will turn to dust.', 1, NULL, 200000, 300000, 1, 'Drop', 500000, 1412812, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13860, 'Zuriel\'s robe top (deg)', 'This item degrades in combat, and will turn to dust.', NULL, NULL, 200000, 300000, 1, 'Drop', 300000, 1412812, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '12,6,0', '0,0,0,35,-10,63,45,74,35,0,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13861, 'Zuriel\'s robe bottom', 'This item degrades in combat, and will turn to dust.', NULL, NULL, 200000, 300000, 1, 'Drop', 500000, 986668, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '8,4,0', '0,0,0,25,-7,38,35,44,24,0,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13862, 'Zuriel\'s robe bottom', 'This item degrades in combat, and will turn to dust.', 1, NULL, 200000, 300000, 1, 'Drop', 500000, 986668, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13863, 'Zuriel\'s robe bottom (deg)', 'This item degrades in combat, and will turn to dust.', NULL, NULL, 200000, 300000, 1, 'Drop', 300000, 986668, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '8,4,0', '0,0,0,25,-7,38,35,44,24,0,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13864, 'Zuriel\'s hood', 'This item degrades in combat, and will turn to dust.', NULL, NULL, 100000, 150000, 1, 'Drop', 250000, 361542, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '6,3,0', '0,0,0,8,-2,20,16,22,8,0,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13865, 'Zuriel\'s hood', 'This item degrades in combat, and will turn to dust.', 1, NULL, 100000, 150000, 1, 'Drop', 250000, 361542, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13866, 'Zuriel\'s hood (deg)', 'This item degrades in combat, and will turn to dust.', NULL, NULL, 100000, 150000, 1, 'Drop', 150000, 361542, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '6,3,0', '0,0,0,8,-2,20,16,22,8,0,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13867, 'Zuriel\'s staff', 'This item degrades in combat, and will turn to dust.', NULL, NULL, 120000, 180000, 1, 'Drop', 300000, 2116989, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 6, '0,0,0', '13,-1,65,18,0,5,7,4,18,0,0,72,0,0,10', 1, NULL, NULL, '419,419,419,419', 420, '2555,0,0,0', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 0), +(13868, 'Zuriel\'s staff', 'This item degrades in combat, and will turn to dust.', 1, NULL, 120000, 180000, 1, 'Drop', 300000, 2116989, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13869, 'Zuriel\'s staff (deg)', 'This item degrades in combat, and will turn to dust.', NULL, NULL, 120000, 180000, 1, 'Drop', 300000, 2116989, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 6, '0,0,0', '13,-1,65,18,0,5,7,4,18,0,0,72,0,0,10', 1, NULL, NULL, '419,419,419,419', 420, '2555,0,0,0', '', NULL, NULL, NULL, 1, NULL, NULL, NULL, 0), +(13870, 'Morrigan\'s leather body', 'This item degrades in combat, and will turn to dust.', NULL, NULL, 200000, 300000, 1, 'Drop', 500000, 926341, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,12,6', '0,0,0,-15,36,61,53,66,75,62,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13871, 'Morrigan\'s leather body', 'This item degrades in combat, and will turn to dust.', 1, NULL, 200000, 300000, 1, 'Drop', 500000, 926341, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13872, 'Morrigan\'s leather body (deg)', 'This item degrades in combat, and will turn to dust.', NULL, NULL, 200000, 300000, 1, 'Drop', 300000, 926341, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,12,6', '0,0,0,-15,36,61,53,66,75,62,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13873, 'Morrigan\'s leather chaps', 'This item degrades in combat, and will turn to dust.', NULL, NULL, 200000, 300000, 1, 'Drop, Destroy after degrading.', 500000, 510395, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,8,4', '0,0,0,-10,23,35,29,37,46,35,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13874, 'Morrigan\'s leather chaps', 'This item degrades in combat, and will turn to dust.', 1, NULL, 200000, 300000, 1, 'Drop, Destroy after degrading.', 500000, 510395, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13875, 'Morrigan\'s leather chaps (deg)', 'This item degrades in combat, and will turn to dust.', NULL, NULL, 200000, 300000, 1, 'Drop, Destroy after degrading.', 300000, 510395, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,8,4', '0,0,0,-10,23,35,29,37,46,35,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13876, 'Morrigan\'s coif', 'This item degrades in combat, and will turn to dust.', NULL, NULL, 100000, 150000, 1, 'Drop', 250000, 236411, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,6,3', '0,0,0,-5,13,8,11,14,8,12,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13877, 'Morrigan\'s coif', 'This item degrades in combat, and will turn to dust.', 1, NULL, 100000, 150000, 1, 'Drop', 250000, 236411, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13878, 'Morrigan\'s coif (deg)', 'This item degrades in combat, and will turn to dust.', NULL, NULL, 100000, 150000, 1, 'Drop', 150000, 236411, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,6,3', '0,0,0,-5,13,8,11,14,8,12,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13879, 'Morrigan\'s javelin', 'A vicious javelin.', NULL, NULL, 1600, 2400, 1, 'Drop', 4000, 19944, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1381, 3, 6, '0,0,0', '0,0,0,0,105,0,0,0,0,0,0,0,145,0,0', 18, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13880, 'Morrigan\'s javelin(p)', 'A vicious javelin.', NULL, NULL, 1600, 2400, 1, 'Drop', 10000, 19944, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1381, 3, 6, '0,0,0', '0,0,0,0,105,0,0,0,0,0,0,0,145,0,0', 18, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13881, 'Morrigan\'s javelin(p+)', 'A vicious javelin.', NULL, NULL, 1600, 2400, 1, 'Drop', 10000, 19944, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1381, 3, 6, '0,0,0', '0,0,0,0,105,0,0,0,0,0,0,0,145,0,0', 18, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13882, 'Morrigan\'s javelin(p++)', 'A vicious javelin.', NULL, NULL, 1600, 2400, 1, 'Drop', 10000, 19944, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1381, 3, 6, '0,0,0', '0,0,0,0,105,0,0,0,0,0,0,0,145,0,0', 18, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13883, 'Morrigan\'s throwing axe', 'A vicious throwing axe.', NULL, NULL, 1600, 2400, 1, 'Drop', 4000, 9994, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, '0,0,0', '0,0,0,0,93,0,0,0,0,0,0,0,117,0,0', 18, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13884, 'Statius\'s platebody', 'This item degrades in combat, and will turn to dust.', NULL, NULL, 200000, 300000, 1, 'Drop', 500000, 1619096, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '6,0,12', '5,5,7,-30,-10,154,145,121,-6,157,60,5,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13885, 'Statius\'s platebody', 'This item degrades in combat, and will turn to dust.', 1, NULL, 200000, 300000, 1, 'Drop', 500000, 1619096, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13886, 'Statius\'s platebody (deg)', 'This item degrades in combat, and will turn to dust.', NULL, NULL, 200000, 300000, 1, 'Drop', 300000, 1619096, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '6,0,12', '5,5,7,-30,-10,154,145,121,-6,157,60,5,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13887, 'Vesta\'s chainbody', 'This item degrades in combat, and will turn to dust.', NULL, NULL, 200000, 300000, 1, 'Drop, Destroy once it has been degraded.', 500000, 2154168, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '6,0,12', '5,7,7,-15,0,120,131,145,-3,140,60,6,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13888, 'Vesta\'s chainbody', 'This item degrades in combat, and will turn to dust.', 1, NULL, 200000, 300000, 1, 'Drop, Destroy once it has been degraded.', 500000, 2154168, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13889, 'Vesta\'s chainbody (deg)', 'This item degrades in combat, and will turn to dust.', NULL, NULL, 200000, 300000, 1, 'Drop, Destroy once it has been degraded.', 300000, 2154168, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '6,0,12', '5,7,7,-15,0,120,131,145,-3,140,60,6,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13890, 'Statius\'s platelegs', 'This item degrades in combat, and will turn to dust.', NULL, NULL, 200000, 300000, 1, 'Drop', 500000, 1735029, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '4,0,8', '3,3,5,-21,-7,110,106,97,-4,121,30,3,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13891, 'Statius\'s platelegs', 'This item degrades in combat, and will turn to dust.', 1, NULL, 200000, 300000, 1, 'Drop', 500000, 1735029, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13892, 'Statius\'s platelegs (deg)', 'This item degrades in combat, and will turn to dust.', NULL, NULL, 200000, 300000, 1, 'Drop', 300000, 1735029, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '4,0,8', '3,3,5,-21,-7,110,106,97,-4,121,30,3,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13893, 'Vesta\'s plateskirt', 'This item degrades in combat, and will turn to dust.', NULL, NULL, 200000, 300000, 1, 'Drop', 500000, 1860767, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '4,0,8', '3,5,5,-17,-4,86,100,112,-2,118,30,3,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13894, 'Vesta\'s plateskirt', 'This item degrades in combat, and will turn to dust.', 1, NULL, 200000, 300000, 1, 'Drop', 500000, 1860767, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13895, 'Vesta\'s plateskirt (deg)', 'This item degrades in combat, and will turn to dust.', NULL, NULL, 200000, 300000, 1, 'Drop', 300000, 1860767, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '4,0,8', '3,5,5,-17,-4,86,100,112,-2,118,30,3,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13896, 'Statius\'s full helm', 'This item degrades in combat, and will turn to dust.', NULL, NULL, 100000, 150000, 1, 'Drop', 250000, 1301986, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '3,0,6', '3,3,4,-6,-2,65,70,63,-1,71,15,3,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13897, 'Statius\'s full helm', 'This item degrades in combat, and will turn to dust.', 1, NULL, 100000, 150000, 1, 'Drop', 250000, 1301986, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13898, 'Statius\' full helm (deg)', 'This item degrades in combat, and will turn to dust.', NULL, NULL, 100000, 150000, 1, 'Drop', 150000, 1301986, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '3,0,6', '3,3,4,-6,-2,65,70,63,-1,71,15,3,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13899, 'Vesta\'s longsword', 'This item degrades in combat, and will turn to dust.', NULL, NULL, 120000, 180000, 1, 'Drop', 300000, 10464249, NULL, NULL, NULL, NULL, 823, 1205, 824, 1206, 1207, 1208, 1426, 3, 5, '0,0,0', '106,121,-2,0,0,1,4,3,0,0,0,118,0,0,0', 5, 1, NULL, '381,390,390,390', 397, '2500,2500,2517,2500', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 0), +(13900, 'Vesta\'s longsword', 'This item degrades in combat, and will turn to dust.', 1, NULL, 120000, 180000, 1, 'Drop', 300000, 10464249, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13901, 'Vesta\'s longsword (deg)', 'This item degrades in combat, and will turn to dust.', NULL, NULL, 120000, 180000, 1, 'Drop', 300000, 10464249, NULL, NULL, NULL, NULL, 823, 1205, 824, 1206, 1207, 1208, 1426, 3, 5, '0,0,0', '106,121,-2,0,0,1,4,3,0,0,0,118,0,0,0', 5, 1, NULL, '381,390,390,390', 397, '2500,2500,2517,2500', '{0,78}', NULL, NULL, NULL, 1, NULL, NULL, NULL, 0), +(13902, 'Statius\'s warhammer', 'This item degrades in combat, and will turn to dust.', NULL, NULL, 120000, 180000, 1, 'Drop, Destroy once it has been degraded.', 300000, 7424450, NULL, NULL, NULL, 808, 823, 819, 1210, 820, 821, 822, NULL, 3, 6, '0,0,0', '-4,-4,123,0,0,0,0,0,0,0,0,114,0,0,0', 10, 1, NULL, '395,395,395,395', 397, '2504,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13903, 'Statius\'s warhammer', 'This item degrades in combat, and will turn to dust.', 1, NULL, 120000, 180000, 1, 'Drop, Destroy once it has been degraded.', 300000, 7424450, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13904, 'Statius\' warhammer (deg)', 'This item degrades in combat, and will turn to dust.', NULL, NULL, 120000, 180000, 1, 'Drop, Destroy once it has been degraded.', 300000, 7424450, NULL, NULL, NULL, 808, 823, 819, 1210, 820, 821, 822, 1426, 3, 6, '0,0,0', '-4,-4,123,0,0,0,0,0,0,0,0,114,0,0,0', 10, 1, NULL, '395,395,395,395', NULL, '2504,0,0,0', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13905, 'Vesta\'s spear', 'This item degrades in combat, and will turn to dust.', NULL, NULL, 120000, 180000, 1, 'Drop', 300000, 5264612, NULL, NULL, NULL, 813, 1209, 1205, 1210, 1206, 1207, 1208, 28, 3, 4, '0,0,0', '133,113,120,0,0,18,21,21,0,0,0,122,0,0,0', 14, 1, 1, '2080,2081,2082,2080', 2079, NULL, NULL, 4.2, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13906, 'Vesta\'s spear', 'This item degrades in combat, and will turn to dust.', 1, NULL, 120000, 180000, 1, 'Drop', 300000, 5264612, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13907, 'Vesta\'s spear (deg)', 'This item degrades in combat, and will turn to dust.', NULL, NULL, 120000, 180000, 1, 'Drop', 180000, 5264612, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, 3, 5, '0,0,0', '133,113,120,0,0,18,21,21,0,0,0,122,0,0,0', 14, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13908, 'Corrupt statius\'s platebody', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 30000, 45000, 1, 'Drop', 125000, 1897306, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '6,0,12', '5,5,7,-10,-30,154,145,121,-6,157,60,5,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13909, 'Corrupt statius\'s platebody', 'This item degrades while worn, and will turn to dust.', 1, NULL, 30000, 45000, 1, 'Drop', 125000, 1897306, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13910, 'Corrupt statius\'s platebody (deg)', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 30000, 45000, 1, 'Drop', 75000, 1897306, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '6,0,12', '5,5,7,-10,-30,154,145,121,-6,157,60,5,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13911, 'Corrupt vesta\'s chainbody', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 30000, 45000, 1, 'Drop', 125000, 2546175, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '6,0,12', '5,7,7,-15,0,120,131,145,-3,140,60,6,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13912, 'Corrupt vesta\'s chainbody', 'This item degrades while worn, and will turn to dust.', 1, NULL, 30000, 45000, 1, 'Drop', 125000, 2546175, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13913, 'Corrupt vesta\'s chainbody (deg)', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 30000, 45000, 1, 'Drop', 75000, 2546175, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '6,0,12', '5,7,7,-15,0,120,131,145,-3,140,60,6,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13914, 'Corrupt statius\'s platelegs', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 30000, 45000, 1, 'Drop', 125000, 1734527, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '4,0,8', '3,3,5,-21,-7,110,106,97,-4,121,30,3,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13915, 'Corrupt statius\'s platelegs', 'This item degrades while worn, and will turn to dust.', 1, NULL, 30000, 45000, 1, 'Drop', 125000, 1734527, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13916, 'Corrupt statius\'s platelegs (deg)', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 30000, 45000, 1, 'Drop', 75000, 1734527, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '4,0,8', '3,3,5,-21,-7,110,106,97,-4,121,30,3,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13917, 'Corrupt vesta\'s plateskirt', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 50000, 75000, 1, 'Drop', 125000, 1942627, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '4,0,8', '3,5,5,-17,-4,86,100,112,-2,118,30,3,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13918, 'Corrupt vesta\'s plateskirt', 'This item degrades while worn, and will turn to dust.', 1, NULL, 50000, 75000, 1, 'Drop', 125000, 1942627, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13919, 'Corrupt vesta\'s plateskirt (deg)', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 50000, 75000, 1, 'Drop', 75000, 1942627, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '4,0,8', '3,5,5,-17,-4,86,100,112,-2,118,30,3,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13920, 'Corrupt statius\'s full helm', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 20000, 30000, 1, 'Drop', 50000, 1062835, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '3,0,6', '3,3,4,-6,-2,65,70,63,-1,71,15,3,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13921, 'Corrupt statius\'s full helm', 'This item degrades while worn, and will turn to dust.', 1, NULL, 20000, 30000, 1, 'Drop', 50000, 1062835, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13922, 'Corrupt statius\' full helm (deg)', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 20000, 30000, 1, 'Drop', 30000, 1062835, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '3,0,6', '3,3,4,-6,-2,65,70,63,-1,71,15,3,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13923, 'Corrupt vesta\'s longsword', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 30000, 45000, 1, 'Drop', 125000, 3739998, NULL, NULL, NULL, NULL, 823, 1205, 824, 1206, 1207, 1208, 1426, 3, 5, '0,0,0', '106,121,-2,0,0,1,4,3,0,0,0,118,0,0,0', 5, NULL, NULL, '381,390,390,390', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13924, 'Corrupt vesta\'s longsword', 'This item degrades while worn, and will turn to dust.', 1, NULL, 30000, 45000, 1, 'Drop', 125000, 3739998, NULL, NULL, NULL, NULL, 823, 1205, 824, 1206, 1207, 1208, 1426, NULL, 4, NULL, NULL, NULL, NULL, NULL, '381,390,390,390', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13925, 'C. vesta\'s longsword (deg)', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 30000, 45000, 1, 'Drop', 75000, 3739998, NULL, NULL, NULL, NULL, 823, 1205, 824, 1206, 1207, 1208, 1426, 3, 5, '0,0,0', '106,121,-2,0,0,1,4,3,0,0,0,118,0,0,0', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13926, 'Corrupt statius\'s warhammer', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 30000, 45000, 1, 'Drop', 125000, 3033516, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, '0,0,0', '-4,-4,123,0,0,0,0,0,0,0,0,114,0,0,0', 8, NULL, NULL, NULL, 397, '395,395,395,395', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13927, 'Corrupt statius\'s warhammer', 'This item degrades while worn, and will turn to dust.', 1, NULL, 30000, 45000, 1, 'Drop', 125000, 3033516, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13928, 'C. statius\'s warhammer (deg)', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 30000, 45000, 1, 'Drop', 75000, 3033516, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, '0,0,0', '-4,-4,123,0,0,0,0,0,0,0,0,114,0,0,0', 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13929, 'Corrupt vesta\'s spear', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 30000, 45000, 1, 'Drop', 125000, 343474, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, 3, 5, '0,0,0', '133,113,120,0,0,18,21,21,0,0,0,122,0,0,0', 14, NULL, 1, '2080,2081,2082,2080', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13930, 'Corrupt vesta\'s spear', 'This item degrades while worn, and will turn to dust.', 1, NULL, 30000, 45000, 1, 'Drop', 125000, 343474, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13931, 'Corrupt vesta\'s spear (deg)', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 30000, 45000, 1, 'Drop', 75000, 343474, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, 3, 5, '0,0,0', '133,113,120,0,0,18,21,21,0,0,0,122,0,0,0', 14, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13932, 'Corrupt zuriel\'s robe top', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 50000, 75000, 1, 'Drop', 125000, 253230, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '12,6,0', '0,0,0,35,-10,63,45,74,35,0,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13933, 'Corrupt zuriel\'s robe top', 'This item degrades while worn, and will turn to dust.', 1, NULL, 50000, 75000, 1, 'Drop', 125000, 253230, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13934, 'Corrupt zuriel\'s robe top (deg)', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 50000, 75000, 1, 'Drop', 75000, 253230, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '12,6,0', '0,0,0,35,-10,63,45,74,35,0,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13935, 'Corrupt zuriel\'s robe bottom', 'This item degrades while worn, and will turn to dust.', NULL, NULL, NULL, NULL, 1, 'Drop', 125000, 121290, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '8,4,0', '0,0,0,25,-7,38,35,44,24,0,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13936, 'Corrupt zuriel\'s robe bottom', 'This item degrades while worn, and will turn to dust.', 1, NULL, NULL, NULL, 1, 'Drop', 125000, 121290, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13937, 'Corrupt zuriel\'s robe bottom (deg)', 'This item degrades while worn, and will turn to dust.', NULL, NULL, NULL, NULL, 1, 'Drop', 75000, 121290, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '8,4,0', '0,0,0,25,-7,38,35,44,24,0,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13938, 'Corrupt zuriel\'s hood', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 20000, 30000, 1, 'Drop', 50000, 43778, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '6,3,0', '0,0,0,8,-2,20,16,22,8,0,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13939, 'Corrupt zuriel\'s hood', 'This item degrades while worn, and will turn to dust.', 1, NULL, 20000, 30000, 1, 'Drop', 50000, 43778, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13940, 'Corrupt zuriel\'s hood (deg)', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 20000, 30000, 1, 'Drop', 30000, 43778, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '6,3,0', '0,0,0,8,-2,20,16,22,8,0,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13941, 'Corrupt zuriel\'s staff', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 28000, 42000, 1, 'Drop', 125000, 219418, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, 3, 6, '0,0,0', '13,-1,65,18,0,5,7,4,18,0,0,72,0,0,10', 1, NULL, NULL, '2555,0,0,0', NULL, '2555,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13942, 'Corrupt zuriel\'s staff', 'This item degrades while worn, and will turn to dust.', 1, NULL, 28000, 42000, 1, 'Drop', 125000, 219418, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13943, 'Corrupt zuriel\'s staff (deg)', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 28000, 42000, 1, 'Drop', 70000, 219418, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, 3, 6, '0,0,0', '13,-1,65,18,0,5,7,4,18,0,0,72,0,0,10', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13944, 'Corrupt morrigan\'s leather body', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 50000, 75000, 1, 'Drop', 125000, 387212, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,12,6', '0,0,0,-15,36,61,53,66,75,62,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13945, 'Corrupt morrigan\'s leather body', 'This item degrades while worn, and will turn to dust.', 1, NULL, 50000, 75000, 1, 'Drop', 125000, 387212, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13946, 'Corrupt morrigan\'s leather body (deg)', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 50000, 75000, 1, 'Drop', 75000, 387212, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,12,6', '0,0,0,-15,36,61,53,66,75,62,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13947, 'Corrupt morrigan\'s leather chaps', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 50000, 75000, 1, 'Drop', 125000, 84592, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,8,4', '0,0,0,-10,23,35,29,37,46,35,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13948, 'Corrupt morrigan\'s leather chaps', 'This item degrades while worn, and will turn to dust.', 1, NULL, 50000, 75000, 1, 'Drop', 125000, 84592, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13949, 'Corrupt morrigan\'s leather chaps (deg)', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 50000, 75000, 1, 'Drop', 75000, 84592, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,8,4', '0,0,0,-10,23,35,29,37,46,35,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13950, 'Corrupt morrigan\'s coif', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 20000, 30000, 1, 'Drop', 50000, 63502, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,6,3', '0,0,0,-5,13,8,11,14,8,12,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13951, 'Corrupt morrigan\'s coif', 'This item degrades while worn, and will turn to dust.', 1, NULL, 20000, 30000, 1, 'Drop', 50000, 63502, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13952, 'Corrupt morrigan\'s coif (deg)', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 20000, 30000, 1, 'Drop', 30000, 63502, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,6,3', '0,0,0,-5,13,8,11,14,8,12,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13953, 'Corrupt morrigan\'s javelin', 'A vicious javelin.', NULL, NULL, 400, 600, 1, 'Drop', 1000, 6752, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1381, 3, 6, '0,0,0', '0,0,0,0,105,0,0,0,0,0,0,0,145,0,0', 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13954, 'C. morrigan\'s javelin (p)', 'A vicious javelin.', NULL, NULL, 400, 600, 1, 'Drop', 10000, 6752, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1381, 3, 6, '0,0,0', '0,0,0,0,105,0,0,0,0,0,0,0,145,0,0', 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13955, 'C. morrigan\'s javelin (p+)', 'A vicious javelin.', NULL, NULL, 400, 600, 1, 'Drop', 10000, 6752, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1381, 3, 6, '0,0,0', '0,0,0,0,105,0,0,0,0,0,0,0,145,0,0', 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13956, 'C. morrigan\'s javelin (p++)', 'A vicious javelin.', NULL, NULL, 400, 600, 1, 'Drop', 10000, 6752, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1381, 3, 6, '0,0,0', '0,0,0,0,105,0,0,0,0,0,0,0,145,0,0', 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13957, 'C. morrigan\'s throwing axe', 'A vicious throwing axe.', NULL, NULL, 400, 600, 1, 'Drop', 1000, 5388, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '0,0,0,0,93,0,0,0,0,0,0,0,117,0,0', 18, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13958, 'Corrupt dragon chainbody', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 28800, 43200, 1, 'Drop', 120000, 168278, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '4,0,9', '0,0,0,-15,0,81,93,98,-3,82,50,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13959, 'Corrupt dragon chainbody', 'This item degrades while worn, and will turn to dust.', 1, NULL, 28800, 43200, 1, 'Drop', 120000, 168278, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13960, 'Corrupt dragon chainbody (deg)', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 28800, 43200, 1, 'Drop', 72000, 168278, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '4,0,9', '0,0,0,-15,0,81,93,98,-3,82,50,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13961, 'Corrupt dragon med helm', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 14400, 21600, 1, 'Drop', 60000, 121835, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '2,0,4', '0,0,0,-3,-1,33,35,32,-1,34,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13962, 'Corrupt dragon med helm', 'This item degrades while worn, and will turn to dust.', 1, NULL, 14400, 21600, 1, 'Drop', 60000, 121835, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13963, 'Corrupt dragon med helm (deg)', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 14400, 21600, 1, 'Drop', 36000, 121835, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '2,0,4', '0,0,0,-3,-1,33,35,32,-1,34,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13964, 'Corrupt dragon sq shield', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 48000, 72000, 1, 'Drop', 120000, 79703, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, 4, '5,0,11', '0,0,0,-6,-2,50,52,48,0,50,50,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13965, 'Corrupt dragon sq shield', 'This item degrades while worn, and will turn to dust.', 1, NULL, 48000, 72000, 1, 'Drop', 120000, 79703, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13966, 'Corrupt dragon sq shield (deg)', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 48000, 72000, 1, 'Drop', 72000, 79703, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, 4, '5,0,11', '0,0,0,-6,-2,50,52,48,0,50,50,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13967, 'Corrupt dragon plateskirt', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 48000, 72000, 1, 'Destroy', 120000, 71066, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '3,0,6', '0,0,0,-21,-7,68,66,63,-4,65,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13968, 'Corrupt dragon plateskirt', 'This item degrades while worn, and will turn to dust.', 1, NULL, 48000, 72000, 1, 'Destroy', 120000, 71066, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13969, 'Corrupt dragon plateskirt (deg)', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 48000, 72000, 1, 'Destroy', 72000, 71066, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '3,0,6', '0,0,0,-21,-7,68,66,63,-4,65,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13970, 'Corrupt dragon platelegs', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 48000, 72000, 1, 'Drop', 120000, 87957, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '3,0,6', '0,0,0,-21,-7,68,66,63,-4,65,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13971, 'Corrupt dragon platelegs', 'This item degrades while worn, and will turn to dust.', 1, NULL, 48000, 72000, 1, 'Drop', 120000, 87957, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13972, 'Corrupt dragon platelegs (deg)', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 48000, 72000, 1, 'Drop', 72000, 87957, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '3,0,6', '0,0,0,-21,-7,68,66,63,-4,65,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13973, 'Corrupt dragon battleaxe', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 28800, 43200, 1, 'Drop', 120000, 332229, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2586, 3, 6, '0,0,0', '-2,70,65,0,0,0,0,0,-1,-1,0,85,0,0,0', 2, NULL, NULL, '395,395,395,395', 397, NULL, '{0,60}', 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13974, 'Corrupt dragon battleaxe', 'This item degrades while worn, and will turn to dust.', 1, NULL, 28800, 43200, 1, 'Drop', 120000, 332229, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2586, NULL, 4, NULL, '-2,70,65,0,0,0,0,0,0,-1,0,85,0,0,0', NULL, NULL, NULL, '395,395,395,395', 397, NULL, '{0,60}', 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13975, 'C. dragon battleaxe (deg)', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 28800, 43200, 1, 'Drop', 72000, 332229, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2586, 3, 6, '0,0,0', '-2,70,65,0,0,0,0,0,-1,-1,0,85,0,0,0', 2, NULL, NULL, '395,395,395,395', 397, NULL, '{0,60}', 2.7, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13976, 'Corrupt dragon dagger', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 12000, 18000, 1, 'Drop', 30000, 33358, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '40,25,-4,1,0,0,0,0,1,0,0,40,0,0,0', 5, NULL, NULL, '396,396,395,396', 397, '2517,2517,2500,2517', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13977, 'Corrupt dragon dagger', 'This item degrades while worn, and will turn to dust.', 1, NULL, 12000, 18000, 1, 'Drop', 30000, 33358, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, '396,396,395,396', 397, '2517,2517,2500,2517', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13978, 'C. dragon dagger (deg)', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 12000, 18000, 1, 'Drop', 18000, 33358, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '40,25,-4,1,0,0,0,0,1,0,0,40,0,0,0', 5, NULL, NULL, '396,396,395,396', 397, '2517,2517,2500,2517', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13979, 'Corrupt dragon scimitar', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 40000, 60000, 1, 'Drop', 100000, 338644, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1928, 3, 4, '0,0,0', '8,67,-2,0,0,0,1,0,0,0,0,66,0,0,0', 6, NULL, NULL, '390,390,381,390', 397, '2500,0,2517,0', '{0,60}', 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13980, 'Corrupt dragon scimitar', 'This item degrades while worn, and will turn to dust.', 1, NULL, 40000, 60000, 1, 'Drop', 100000, 338644, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13981, 'C. dragon scimitar (deg)', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 40000, 60000, 1, 'Drop', 60000, 338644, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1928, 3, 4, '0,0,0', '8,67,-2,0,0,0,1,0,0,0,0,66,0,0,0', 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13982, 'Corrupt dragon longsword', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 40000, 60000, 1, 'Drop', 100000, 207053, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1582, 3, 5, '0,0,0', '58,69,-2,0,0,0,3,2,1,0,0,71,0,0,0', 5, NULL, NULL, '390,390,381,390', 397, '2500,2500,2517,2500', '{0,60}', 1.8, 10, NULL, NULL, NULL, NULL, NULL, 0), +(13983, 'Corrupt dragon longsword', 'This item degrades while worn, and will turn to dust.', 1, NULL, 40000, 60000, 1, 'Drop', 100000, 207053, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13984, 'C. dragon longsword (deg)', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 40000, 60000, 1, 'Drop', 60000, 207053, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1582, 3, 5, '0,0,0', '58,69,-2,0,0,0,3,2,1,0,0,71,0,0,0', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13985, 'Corrupt dragon mace', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 12000, 18000, 1, 'Drop', 50000, 50096, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, '0,0,0', '40,-2,60,1,0,0,0,0,0,0,0,55,0,5,0', 8, NULL, NULL, '390,390,381,390', 397, NULL, '{0,60}', 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13986, 'Corrupt dragon mace', 'This item degrades while worn, and will turn to dust.', 1, NULL, 12000, 18000, 1, 'Drop', 50000, 50096, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, '390,390,381,390', 397, NULL, '{0,60}', 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(13987, 'Corrupt dragon mace (deg)', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 12000, 18000, 1, 'Drop', 30000, 50096, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, '0,0,0', '40,-2,60,1,0,0,0,0,0,0,0,55,0,5,0', 8, NULL, NULL, '390,390,381,390', 397, NULL, '{0,60}', 1.8, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13988, 'Corrupt dragon spear', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 8800, 13200, 1, 'Drop', 40000, 920922, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, 3, 5, '0,0,0', '55,55,55,0,0,5,5,5,5,5,0,60,0,0,0', 14, NULL, 1, '2080,2081,2082,2080', 2079, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13989, 'Corrupt dragon spear', 'This item degrades while worn, and will turn to dust.', 1, NULL, 8800, 13200, 1, 'Drop', 40000, 920922, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, 1, '2080,2081,2082,2080', 2079, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(13990, 'Corrupt dragon spear (deg)', 'This item degrades while worn, and will turn to dust.', NULL, NULL, 8800, 13200, 1, 'Drop', 24000, 920922, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, 3, 5, '0,0,0', '55,55,55,0,0,5,5,5,5,5,0,60,0,0,0', 14, NULL, 1, '2080,2081,2082,2080', 2079, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14056, 'Pvp worlds manual', 'A book about the Wilderness.', NULL, NULL, 2, 3, 1, 'You can get another copy by searching bookshelves around RuneScape.', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14057, 'Broomstick', 'A threat to dusty corners everywhere.', NULL, NULL, 10, 15, 1, 'You can obtain another by talking to Maggie the witch.', 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1072, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14058, 'Goulash', 'What a curious and ghoulish smell!', NULL, NULL, NULL, 1, 1, 'If you drop the goulash, it will be destroyed. You can get some more by dipping a bowl into Maggie\'s cauldron.', 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14061, 'Magic unguent', 'Purple and pungent.', NULL, NULL, NULL, NULL, 1, 'You can get another flask of magic unguent from the chest in Betty\'s basement.', 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14062, 'Broom ointment', 'To be used on brooms.', NULL, NULL, NULL, NULL, 1, 'You can get another flask of broom ointment from Hetty in Rimmington.', 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14064, 'Newt', 'A newt from Hetty\'s basement.', NULL, NULL, NULL, NULL, 1, 'If you release this newt, you can get another from the crate in Hetty\'s basement in Rimmington.', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14065, 'Newt label', 'A label for a shipping crate.', NULL, NULL, NULL, NULL, 1, 'You can get another newt label from Gus in Hetty\'s basement in Rimmington.', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14066, 'Toad label', 'A label for a shipping crate.', NULL, NULL, NULL, NULL, 1, 'You can get another toad label from Gus in Hetty\'s basement in Rimmington.', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14067, 'Newts and toads label', 'A label for a shipping crate.', NULL, NULL, NULL, NULL, 1, 'You can get another newt-and-toad label from Gus in Hetty\'s basement in Rimmington.', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14068, 'Betty\'s wand', 'Warm to the touch.', NULL, NULL, NULL, NULL, 1, 'You can obtain another wand from the chest in Betty\'s basement.', 15, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14069, 'Magic slate', 'What a view!', NULL, NULL, NULL, NULL, 1, 'If you destroy this item, you can get another from Lottie in Betty\'s basement.', 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14070, 'Reptile', 'Desert dweller.', NULL, NULL, NULL, NULL, 1, 'If you release this creature, you will have to restart the puzzle in Betty\'s basement.', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14071, 'Blackbird', 'Bleak and beaky.', NULL, NULL, NULL, NULL, 1, 'If you release this creature, you will have to restart the puzzle in Betty\'s basement.', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14072, 'Bat', 'An annoying flappy thing.', NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14073, 'Spider', 'It\'s an extremely small brown spider, probably very poisonous.', NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14074, 'Rat', 'A popular dwarven delicacy.', NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14075, 'Snail', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14076, 'Warlock top', 'The height of warlock fashion.', NULL, NULL, 6, 9, 1, 'You can get another warlock top from Diango in Draynor Village.', 15, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14077, 'Warlock legs', 'Tattered but trendy.', NULL, NULL, 6, 9, 1, 'You can get another set of warlock legs from Diango in Draynor Village.', 15, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14078, 'Witch top', 'The height of witchly fashion.', NULL, NULL, 6, 9, 1, 'You can get another witch top from Diango in Draynor.', 15, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14079, 'Witch skirt', 'Tattered but trendy.', NULL, NULL, 6, 9, 1, 'You can get another witch top from Diango in Draynor.', 15, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14080, 'Witch cloak', 'Ragged but rugged.', NULL, NULL, 6, 9, 1, 'You can get another witch cloak from Diango in Draynor.', 15, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14081, 'Warlock cloak', 'Ragged but rugged.', NULL, NULL, 6, 9, 1, 'You can get another warlock cloak from Diango in Draynor Village.', 15, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14082, 'Popcorn ball', 'A sticky orb of popped corn.', NULL, NULL, NULL, NULL, 1, 'Drop', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14083, 'Chocolate drop', 'Chocolatey goodness.', NULL, NULL, NULL, NULL, 1, 'Drop', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14084, 'Wrapped candy', 'Sugary bliss.', NULL, NULL, NULL, NULL, 1, 'Drop', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14085, 'Armadyl communiqu?', 'An urgent communiqu?? revealing important information.', NULL, NULL, NULL, NULL, 1, 'Drop', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14086, 'Witch top', 'The height of witchly fashion.', NULL, NULL, 6, 9, 1, 'You can get another witch top from Diango in Draynor.', 15, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14087, 'Witch skirt', 'Tattered but trendy.', NULL, NULL, 6, 9, 1, 'You can get another witch top from Diango in Draynor.', 15, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14088, 'Witch cloak', 'Ragged but rugged.', NULL, NULL, 6, 9, 1, 'You can get another witch cloak from Diango in Draynor.', 15, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14089, 'Pet kitten', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14090, 'Pet cat', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14091, 'Lazy cat', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14092, 'Overgrown cat', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14093, 'Wily cat', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14094, 'Sacred clay platebody', 'The sacred clay top has transformed into a spiked, platemail body.', NULL, NULL, NULL, NULL, 1, 'Drop', 43333, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '3,0,6', '0,0,0,-30,-10,82,80,72,-6,80,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14095, 'Sacred clay platelegs', 'The sacred clay bottom has transformed into spiked, platemail legs.', NULL, NULL, NULL, NULL, 1, 'Drop', 42667, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '2,0,4', '0,0,0,-21,-7,51,49,47,-4,49,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14096, 'Sacred clay helm', 'The sacred clay hat has transformed into a spined helm.', NULL, NULL, NULL, NULL, 1, 'Drop', 23467, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '1,0,3', '0,0,0,-6,-2,30,32,27,-1,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14097, 'Sacred clay scimitar', 'The sacred clay weapon has transformed into a sharp scimitar.', NULL, NULL, NULL, NULL, 1, 'Drop', 17066, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1629, 3, 4, '0,0,0', '7,45,-2,0,0,0,1,0,0,0,0,44,0,0,0', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14098, 'Volatile clay tool', 'This can turn into a variety of tools.', NULL, NULL, NULL, NULL, 1, 'Drop', 21333, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14099, 'Volatile clay pickaxe', 'Your volatile tool wants to mine some rocks.', NULL, NULL, NULL, NULL, 1, 'Drop', 21333, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, '0,0,0', '4,-2,2,0,0,0,1,0,0,0,0,5,0,0,0', 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14100, 'Volatile clay hatchet', 'Your volatile tool wants to cut some wood.', NULL, NULL, NULL, NULL, 1, 'Drop', 21333, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '-2,26,24,0,0,0,1,0,0,0,0,29,0,0,0', 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14101, 'Volatile clay harpoon', 'Your volatile tool wants to spear some big fish.', NULL, NULL, NULL, NULL, 1, 'Drop', 21333, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14102, 'Volatile clay butterfly net', 'Your volatile tool wants to catch some butterflies.', NULL, NULL, NULL, NULL, 1, 'Drop', 21333, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 158, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14103, 'Volatile clay fletching knife', 'Your volatile tool wants to make some bows or arrows.', NULL, NULL, 1, 1, 1, 'Drop', 21333, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14104, 'Volatile clay hammer', 'Your volatile tool wants to work metal or build furniture.', NULL, NULL, NULL, NULL, 1, 'Drop', 21333, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14105, 'Volatile clay needle', 'Your volatile tool wants to make some leather armour.', NULL, NULL, NULL, 1, 1, 'Drop', 21333, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14106, 'Proto-tool', 'This can turn into a variety of tools.', NULL, NULL, NULL, NULL, 1, 'Drop', 21333, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14107, 'Sacred clay pickaxe', 'Your sacred clay tool has transformed into a pickaxe.', NULL, NULL, NULL, NULL, 1, 'Drop', 21333, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 5, '0,0,0', '4,-2,2,0,0,0,1,0,0,0,0,5,0,0,0', 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14108, 'Sacred clay hatchet', 'Your sacred clay tool has transformed into a hatchet.', NULL, NULL, NULL, NULL, 1, 'Drop', 21333, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '-2,4,2,0,0,0,1,0,0,0,0,5,0,0,0', 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14109, 'Sacred clay harpoon', 'Your sacred clay tool has transformed into a harpoon.', NULL, NULL, NULL, NULL, 1, 'Drop', 21333, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14110, 'Sacred clay butterfly net', 'Your sacred clay tool has transformed into a butterfly net.', NULL, NULL, NULL, NULL, 1, 'Drop', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 158, 3, 5, '0,0,0', '4,-2,2,0,0,0,1,0,0,0,0,5,0,0,0', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14111, 'Sacred clay fletching knife', 'The sacred clay has transformed into a knife.', NULL, NULL, NULL, 1, 1, 'Drop', 21333, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14112, 'Sacred clay hammer', 'Your sacred clay tool has transformed into a hammer.', NULL, NULL, NULL, NULL, 1, 'Drop', 21333, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14113, 'Sacred clay needle', 'The sacred clay has transformed into a needle.', NULL, NULL, NULL, NULL, 1, 'Drop', 21333, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14114, 'Sacred clay robe top', 'The sacred clay top has transformed into a heavy, magical robe.', NULL, NULL, NULL, NULL, 1, 'Drop', 43333, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '6,3,0', '0,0,0,20,0,0,0,0,20,0,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14115, 'Sacred clay robe bottom', 'The sacred clay bottom has transformed into a heavy, magical robe.', NULL, NULL, NULL, NULL, 1, 'Drop', 42667, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '4,2,0', '0,0,0,15,0,0,0,0,15,0,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14116, 'Sacred clay hat', 'The sacred clay hat has transformed into a wizard hat.', NULL, NULL, NULL, NULL, 1, 'Drop', 23467, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '3,1,0', '0,0,0,4,0,0,0,0,4,0,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14117, 'Sacred clay staff', 'The sacred clay weapon has transformed into a magical staff.', NULL, NULL, NULL, NULL, 1, 'Drop', 17066, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, 3, 5, '0,0,0', '10,-1,40,10,0,2,3,1,10,0,0,50,0,0,0', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14118, 'Sacred clay body', 'The sacred clay top has transformed into a leather body.', NULL, NULL, NULL, NULL, 1, 'Drop', 43333, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,6,3', '0,0,0,-15,15,40,32,45,20,40,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14119, 'Sacred clay chaps', 'The sacred clay bottom has been transformed into a set of chaps.', NULL, NULL, NULL, NULL, 1, 'Drop', 42667, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,4,2', '0,0,0,-10,8,22,16,24,8,22,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14120, 'Sacred clay coif', 'The sacred clay hat has transformed into a coif.', NULL, NULL, NULL, NULL, 1, 'Drop', 23467, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,3,1', '0,0,0,-1,2,4,6,8,4,4,5,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14121, 'Sacred clay bow', 'The sacred clay weapon has transformed into a bow.', NULL, NULL, NULL, NULL, 1, 'Drop', 17066, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '0,0,0,0,47,0,0,0,0,0,0,0,0,0,0', 16, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14122, 'Pickaxe (class 1)', 'The sacred clay has become hard enough to chip stone.', NULL, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '10,0,0,0,0,0,0,0,0,0,0,0,0,0,0', 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14123, 'Pickaxe (class 1)', 'The sacred clay has become hard enough to chip stone.', 1, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14124, 'Pickaxe (class 2)', 'The sacred clay has become hard enough to chip stone.', NULL, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '15,0,0,0,0,0,0,0,0,0,0,0,0,0,0', 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14125, 'Pickaxe (class 2)', 'The sacred clay has become hard enough to chip stone.', 1, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14126, 'Pickaxe (class 3)', 'The sacred clay has become hard enough to chip stone.', NULL, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '20,0,0,0,0,0,0,0,0,0,0,0,0,0,0', 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14127, 'Pickaxe (class 3)', 'The sacred clay has become hard enough to chip stone.', 1, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14128, 'Pickaxe (class 4)', 'The sacred clay has become hard enough to chip stone.', NULL, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '25,0,0,0,0,0,0,0,0,0,0,0,0,0,0', 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14129, 'Pickaxe (class 4)', 'The sacred clay has become hard enough to chip stone.', 1, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14130, 'Pickaxe (class 5)', 'The sacred clay has become hard enough to chip stone.', NULL, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '30,0,0,0,0,0,0,0,0,0,0,0,0,0,0', 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14131, 'Pickaxe (class 5)', 'The sacred clay has become hard enough to chip stone.', 1, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14132, 'Hatchet (class 1)', 'The sacred clay has become sharp enough to cut wood.', NULL, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '0,10,0,0,0,0,0,0,0,0,0,0,0,0,0', 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14133, 'Hatchet (class 1)', 'The sacred clay has become sharp enough to cut wood.', 1, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14134, 'Hatchet (class 2)', 'The sacred clay has become sharp enough to cut wood.', NULL, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '0,15,0,0,0,0,0,0,0,0,0,0,0,0,0', 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14135, 'Hatchet (class 2)', 'The sacred clay has become sharp enough to cut wood.', 1, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14136, 'Hatchet (class 3)', 'The sacred clay has become sharp enough to cut wood.', NULL, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '0,20,0,0,0,0,0,0,0,0,0,0,0,0,0', 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14137, 'Hatchet (class 3)', 'The sacred clay has become sharp enough to cut wood.', 1, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14138, 'Hatchet (class 4)', 'The sacred clay has become sharp enough to cut wood.', NULL, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '0,25,0,0,0,0,0,0,0,0,0,0,0,0,0', 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14139, 'Hatchet (class 4)', 'The sacred clay has become sharp enough to cut wood.', 1, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14140, 'Hatchet (class 5)', 'The sacred clay has become sharp enough to cut wood.', NULL, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '0,30,0,0,0,0,0,0,0,0,0,0,0,0,0', 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14141, 'Hatchet (class 5)', 'The sacred clay has become sharp enough to cut wood.', 1, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14142, 'Harpoon (class 1)', 'The sacred clay has become long enough to reach the depths of pools.', NULL, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '10,0,0,0,0,0,0,0,0,0,0,0,0,0,0', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14143, 'Harpoon (class 1)', 'The sacred clay has become long enough to reach the depths of pools.', 1, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14144, 'Harpoon (class 2)', 'The sacred clay has become long enough to reach the depths of pools.', NULL, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '15,0,0,0,0,0,0,0,0,0,0,0,0,0,0', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14145, 'Harpoon (class 2)', 'The sacred clay has become long enough to reach the depths of pools.', 1, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14146, 'Harpoon (class 3)', 'The sacred clay has become long enough to reach the depths of pools.', NULL, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '20,0,0,0,0,0,0,0,0,0,0,0,0,0,0', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14147, 'Harpoon (class 3)', 'The sacred clay has become long enough to reach the depths of pools.', 1, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14148, 'Harpoon (class 4)', 'The sacred clay has become long enough to reach the depths of pools.', NULL, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '25,0,0,0,0,0,0,0,0,0,0,0,0,0,0', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14149, 'Harpoon (class 4)', 'The sacred clay has become long enough to reach the depths of pools.', 1, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14150, 'Harpoon (class 5)', 'The sacred clay has become long enough to reach the depths of pools.', NULL, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '30,0,0,0,0,0,0,0,0,0,0,0,0,0,0', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14151, 'Harpoon (class 5)', 'The sacred clay has become long enough to reach the depths of pools.', 1, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14152, 'Butterfly net (class 1)', 'The sacred clay has become light enough to swing at floating shards.', NULL, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 158, 3, 4, '0,0,0', '0,0,10,0,0,0,0,0,0,0,0,0,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14153, 'Butterfly net (class 1)', 'The sacred clay has become light enough to swing at floating shards.', 1, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14154, 'Butterfly net (class 2)', 'The sacred clay has become light enough to swing at floating shards.', NULL, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 158, 3, 4, '0,0,0', '0,0,15,0,0,0,0,0,0,0,0,0,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14155, 'Butterfly net (class 2)', 'The sacred clay has become light enough to swing at floating shards.', 1, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14156, 'Butterfly net (class 3)', 'The sacred clay has become light enough to swing at floating shards.', NULL, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 158, 3, 4, '0,0,0', '0,0,20,0,0,0,0,0,0,0,0,0,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14157, 'Butterfly net (class 3)', 'The sacred clay has become light enough to swing at floating shards.', 1, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14158, 'Butterfly net (class 4)', 'The sacred clay has become light enough to swing at floating shards.', NULL, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 158, 3, 4, '0,0,0', '0,0,25,0,0,0,0,0,0,0,0,0,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14159, 'Butterfly net (class 4)', 'The sacred clay has become light enough to swing at floating shards.', 1, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14160, 'Butterfly net (class 5)', 'The sacred clay has become light enough to swing at floating shards.', NULL, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 158, 3, 4, '0,0,0', '0,0,30,0,0,0,0,0,0,0,0,0,0,0,0', 14, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14161, 'Butterfly net (class 5)', 'The sacred clay has become light enough to swing at floating shards.', 1, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14162, 'Food (class 1)', 'The sacred clay has transformed into something bland, but edible.', NULL, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14163, 'Food (class 1)', 'The sacred clay has transformed into something bland, but edible.', 1, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14164, 'Food (class 2)', 'The sacred clay has transformed into something bland, but edible.', NULL, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14165, 'Food (class 2)', 'The sacred clay has transformed into something bland, but edible.', 1, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14166, 'Food (class 3)', 'The sacred clay has transformed into something bland, but edible.', NULL, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14167, 'Food (class 3)', 'The sacred clay has transformed into something bland, but edible.', 1, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14168, 'Food (class 4)', 'The sacred clay has transformed into something bland, but edible.', NULL, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14169, 'Food (class 4)', 'The sacred clay has transformed into something bland, but edible.', 1, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14170, 'Food (class 5)', 'The sacred clay has transformed into something bland, but edible.', NULL, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14171, 'Food (class 5)', 'The sacred clay has transformed into something bland, but edible.', 1, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14172, 'Barrier (class 1)', 'The clay has transformed into an expandable wall.', NULL, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14173, 'Barrier (class 1)', 'The clay has transformed into an expandable wall.', 1, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14174, 'Barrier (class 2)', 'The clay has transformed into an expandable wall.', NULL, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14175, 'Barrier (class 2)', 'The clay has transformed into an expandable wall.', 1, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14176, 'Barrier (class 3)', 'The clay has transformed into an expandable wall.', NULL, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14177, 'Barrier (class 3)', 'The clay has transformed into an expandable wall.', 1, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14178, 'Barrier (class 4)', 'The clay has transformed into an expandable wall.', NULL, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14179, 'Barrier (class 4)', 'The clay has transformed into an expandable wall.', 1, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14180, 'Barrier (class 5)', 'The clay has transformed into an expandable wall.', NULL, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14181, 'Barrier (class 5)', 'The clay has transformed into an expandable wall.', 1, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14182, 'Sacred clay (class 1)', 'Very low quality sacred clay.', NULL, NULL, NULL, NULL, 1, 'Drop', 15, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14183, 'Sacred clay (class 1)', 'Very low quality sacred clay.', 1, NULL, NULL, NULL, 1, 'Drop', 15, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14184, 'Sacred clay (class 2)', 'Low quality sacred clay.', NULL, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14185, 'Sacred clay (class 2)', 'Low quality sacred clay.', 1, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14186, 'Sacred clay (class 3)', 'Medium quality sacred clay.', NULL, NULL, NULL, NULL, 1, 'Drop', 45, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14187, 'Sacred clay (class 3)', 'Medium quality sacred clay.', 1, NULL, NULL, NULL, 1, 'Drop', 45, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14188, 'Sacred clay (class 4)', 'High quality sacred clay.', NULL, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14189, 'Sacred clay (class 4)', 'High quality sacred clay.', 1, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14190, 'Sacred clay (class 5)', 'Very high quality sacred clay.', NULL, NULL, NULL, NULL, 1, 'Drop', 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14191, 'Sacred clay (class 5)', 'Very high quality sacred clay.', 1, NULL, NULL, NULL, 1, 'Drop', 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14192, 'Bow (class 1)', 'The sacred clay has transformed into a wood-like substance.', NULL, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, '0,0,0', '0,0,0,0,55,0,0,0,0,0,0,0,0,0,0', 16, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14193, 'Bow (class 1)', 'The sacred clay has transformed into a wood-like substance.', 1, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14194, 'Bow (class 2)', 'The sacred clay has transformed into a wood-like substance.', NULL, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, '0,0,0', '0,0,0,0,90,0,0,0,0,0,0,0,0,0,0', 16, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14195, 'Bow (class 2)', 'The sacred clay has transformed into a wood-like substance.', 1, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14196, 'Bow (class 3)', 'The sacred clay has transformed into a wood-like substance.', NULL, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, '0,0,0', '0,0,0,0,135,0,0,0,0,0,0,0,0,0,0', 16, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14197, 'Bow (class 3)', 'The sacred clay has transformed into a wood-like substance.', 1, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14198, 'Bow (class 4)', 'The sacred clay has transformed into a wood-like substance.', NULL, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, '0,0,0', '0,0,0,0,180,0,0,0,0,0,0,0,0,0,0', 16, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14199, 'Bow (class 4)', 'The sacred clay has transformed into a wood-like substance.', 1, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14200, 'Bow (class 5)', 'The sacred clay has transformed into a wood-like substance.', NULL, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, '0,0,0', '0,0,0,0,225,0,0,0,0,0,0,0,0,0,0', 16, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14201, 'Bow (class 5)', 'The sacred clay has transformed into a wood-like substance.', 1, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14202, 'Arrows (class 1)', 'The Sacred Clay has transformed into a wood-like substance.', NULL, NULL, NULL, NULL, 1, 'Drop', 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,15,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14203, 'Arrows (class 2)', 'The Sacred Clay has transformed into a wood-like substance.', NULL, NULL, NULL, NULL, 1, 'Drop', 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,30,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14204, 'Arrows (class 3)', 'The Sacred Clay has transformed into a wood-like substance.', NULL, NULL, NULL, NULL, 1, 'Drop', 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,45,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(14205, 'Arrows (class 4)', 'The Sacred Clay has transformed into a wood-like substance.', NULL, NULL, NULL, NULL, 1, 'Drop', 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,60,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14206, 'Arrows (class 5)', 'The Sacred Clay has transformed into a wood-like substance.', NULL, NULL, NULL, NULL, 1, 'Drop', 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 13, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,75,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14207, 'Prayer potion(5)', '(X) doses of Prayer restore potion.', NULL, NULL, 61, 91, 1, 'Drop', 150, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14208, 'Prayer potion(5)', '(X) doses of Prayer restore potion.', 1, NULL, 61, 91, 1, 'Drop', 150, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14209, 'Prayer potion(4)', '(X) doses of Prayer restore potion.', NULL, NULL, 61, 91, 1, 'Drop', 120, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14210, 'Prayer potion(4)', '(X) doses of Prayer restore potion.', 1, NULL, 61, 91, 1, 'Drop', 120, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14211, 'Prayer potion(3)', '(X) doses of Prayer restore potion.', NULL, NULL, 61, 91, 1, 'Drop', 90, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14212, 'Prayer potion(3)', '(X) doses of Prayer restore potion.', 1, NULL, 61, 91, 1, 'Drop', 90, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14213, 'Prayer potion(2)', '(X) doses of Prayer restore potion.', NULL, NULL, 61, 91, 1, 'Drop', 60, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14214, 'Prayer potion(2)', '(X) doses of Prayer restore potion.', 1, NULL, 61, 91, 1, 'Drop', 60, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14215, 'Prayer potion(1)', '(X) doses of Prayer restore potion.', NULL, NULL, 61, 91, 1, 'Drop', 30, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14216, 'Prayer potion(1)', '(X) doses of Prayer restore potion.', 1, NULL, 61, 91, 1, 'Drop', 30, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14217, 'Energy potion (5)', 'X doses of energy potion.', NULL, NULL, 58, 87, 1, 'Drop', 150, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14218, 'Energy potion (5)', 'X doses of energy potion.', 1, NULL, 58, 87, 1, 'Drop', 150, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14219, 'Energy potion (4)', 'X doses of energy potion.', NULL, NULL, 58, 87, 1, 'Drop', 120, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14220, 'Energy potion (4)', 'X doses of energy potion.', 1, NULL, 58, 87, 1, 'Drop', 120, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14221, 'Energy potion (3)', 'X doses of energy potion.', NULL, NULL, 58, 87, 1, 'Drop', 90, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14222, 'Energy potion (3)', 'X doses of energy potion.', 1, NULL, 58, 87, 1, 'Drop', 90, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14223, 'Energy potion (2)', 'X doses of energy potion.', NULL, NULL, 58, 87, 1, 'Drop', 60, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14224, 'Energy potion (2)', 'X doses of energy potion.', 1, NULL, 58, 87, 1, 'Drop', 60, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14225, 'Energy potion (1)', 'X doses of energy potion.', NULL, NULL, 58, 87, 1, 'Drop', 30, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14226, 'Energy potion (1)', 'X doses of energy potion.', 1, NULL, 58, 87, 1, 'Drop', 30, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14227, 'Super attack(5)', 'X dose(s) of super Attack potion.', NULL, NULL, 72, 108, 1, 'Drop', 150, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14228, 'Super attack(5)', 'X dose(s) of super Attack potion.', 1, NULL, 72, 108, 1, 'Drop', 150, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14229, 'Super attack(4)', 'X dose(s) of super Attack potion.', NULL, NULL, 72, 108, 1, 'Drop', 120, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14230, 'Super attack(4)', 'X dose(s) of super Attack potion.', 1, NULL, 72, 108, 1, 'Drop', 120, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14231, 'Super attack(3)', 'X dose(s) of super Attack potion.', NULL, NULL, 72, 108, 1, 'Drop', 90, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14232, 'Super attack(3)', 'X dose(s) of super Attack potion.', 1, NULL, 72, 108, 1, 'Drop', 90, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14233, 'Super attack(2)', 'X dose(s) of super Attack potion.', NULL, NULL, 72, 108, 1, 'Drop', 60, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14234, 'Super attack(2)', 'X dose(s) of super Attack potion.', 1, NULL, 72, 108, 1, 'Drop', 60, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14235, 'Super attack(1)', 'X dose(s) of super Attack potion.', NULL, NULL, 72, 108, 1, 'Drop', 30, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14236, 'Super attack(1)', 'X dose(s) of super Attack potion.', 1, NULL, 72, 108, 1, 'Drop', 30, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14237, 'Super strength(5)', 'X dose(s) of super Strength potion.', NULL, NULL, 88, 132, 1, 'Drop', 150, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14238, 'Super strength(5)', 'X dose(s) of super Strength potion.', 1, NULL, 88, 132, 1, 'Drop', 150, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14239, 'Super strength(4)', 'X dose(s) of super Strength potion.', NULL, NULL, 88, 132, 1, 'Drop', 120, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14240, 'Super strength(4)', 'X dose(s) of super Strength potion.', 1, NULL, 88, 132, 1, 'Drop', 120, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14241, 'Super strength(3)', 'X dose(s) of super Strength potion.', NULL, NULL, 88, 132, 1, 'Drop', 90, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14242, 'Super strength(3)', 'X dose(s) of super Strength potion.', 1, NULL, 88, 132, 1, 'Drop', 90, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14243, 'Super strength(2)', 'X dose(s) of super Strength potion.', NULL, NULL, 88, 132, 1, 'Drop', 60, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14244, 'Super strength(2)', 'X dose(s) of super Strength potion.', 1, NULL, 88, 132, 1, 'Drop', 60, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14245, 'Super strength(1)', 'X dose(s) of super Strength potion.', NULL, NULL, 88, 132, 1, 'Drop', 30, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14246, 'Super strength(1)', 'X dose(s) of super Strength potion.', 1, NULL, 88, 132, 1, 'Drop', 30, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14247, 'Ranging potion(5)', '4 doses of ranging potion.', NULL, NULL, 224, 336, 1, 'Drop', 150, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14248, 'Ranging potion(5)', '4 doses of ranging potion.', 1, NULL, 224, 336, 1, 'Drop', 150, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14249, 'Ranging potion(4)', '4 doses of ranging potion.', NULL, NULL, 224, 336, 1, 'Drop', 120, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14250, 'Ranging potion(4)', '4 doses of ranging potion.', 1, NULL, 224, 336, 1, 'Drop', 120, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14251, 'Ranging potion(3)', '4 doses of ranging potion.', NULL, NULL, 224, 336, 1, 'Drop', 90, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14252, 'Ranging potion(3)', '4 doses of ranging potion.', 1, NULL, 224, 336, 1, 'Drop', 90, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14253, 'Ranging potion(2)', '4 doses of ranging potion.', NULL, NULL, 224, 336, 1, 'Drop', 60, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14254, 'Ranging potion(2)', '4 doses of ranging potion.', 1, NULL, 224, 336, 1, 'Drop', 60, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14255, 'Ranging potion(1)', '4 doses of ranging potion.', NULL, NULL, 224, 336, 1, 'Drop', 30, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14256, 'Ranging potion(1)', '4 doses of ranging potion.', 1, NULL, 224, 336, 1, 'Drop', 30, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14257, 'Defence potion(5)', '(x) doses of Defence Potion.', NULL, NULL, 352, 528, 1, 'Drop', 150, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14258, 'Defence potion(5)', '(x) doses of Defence Potion.', 1, NULL, 352, 528, 1, 'Drop', 150, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14259, 'Defence potion(4)', '(x) doses of Defence Potion.', NULL, NULL, 352, 528, 1, 'Drop', 120, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14260, 'Defence potion(4)', '(x) doses of Defence Potion.', 1, NULL, 352, 528, 1, 'Drop', 120, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14261, 'Defence potion(3)', '(x) doses of Defence Potion.', NULL, NULL, 352, 528, 1, 'Drop', 90, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14262, 'Defence potion(3)', '(x) doses of Defence Potion.', 1, NULL, 352, 528, 1, 'Drop', 90, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14263, 'Defence potion(2)', '(x) doses of Defence Potion.', NULL, NULL, 352, 528, 1, 'Drop', 60, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14264, 'Defence potion(2)', '(x) doses of Defence Potion.', 1, NULL, 352, 528, 1, 'Drop', 60, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14265, 'Defence potion(1)', '(x) doses of Defence Potion.', NULL, NULL, 352, 528, 1, 'Drop', 30, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14266, 'Defence potion(1)', '(x) doses of Defence Potion.', 1, NULL, 352, 528, 1, 'Drop', 30, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14267, 'Magic potion(5)', '4 doses of Magic potion.', NULL, NULL, 224, 336, 1, 'Drop', 150, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14268, 'Magic potion(5)', '4 doses of Magic potion.', 1, NULL, 224, 336, 1, 'Drop', 150, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14269, 'Magic potion(4)', '4 doses of Magic potion.', NULL, NULL, 224, 336, 1, 'Drop', 120, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14270, 'Magic potion(4)', '4 doses of Magic potion.', 1, NULL, 224, 336, 1, 'Drop', 120, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14271, 'Magic potion(3)', '4 doses of Magic potion.', NULL, NULL, 224, 336, 1, 'Drop', 90, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14272, 'Magic potion(3)', '4 doses of Magic potion.', 1, NULL, 224, 336, 1, 'Drop', 90, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14273, 'Magic potion(2)', '4 doses of Magic potion.', NULL, NULL, 224, 336, 1, 'Drop', 60, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14274, 'Magic potion(2)', '4 doses of Magic potion.', 1, NULL, 224, 336, 1, 'Drop', 60, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14275, 'Magic potion(1)', '4 doses of Magic potion.', NULL, NULL, 224, 336, 1, 'Drop', 30, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14276, 'Magic potion(1)', '4 doses of Magic potion.', 1, NULL, 224, 336, 1, 'Drop', 30, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14277, 'Summoning potion(5)', '(X) doses of Summoning potion.', NULL, NULL, 76, 114, 1, 'Drop', 150, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14278, 'Summoning potion(5)', '(X) doses of Summoning potion.', 1, NULL, 76, 114, 1, 'Drop', 150, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14279, 'Summoning potion(4)', '(X) doses of Summoning potion.', NULL, NULL, 76, 114, 1, 'Drop', 120, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14280, 'Summoning potion(4)', '(X) doses of Summoning potion.', 1, NULL, 76, 114, 1, 'Drop', 120, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14281, 'Summoning potion(3)', '(X) doses of Summoning potion.', NULL, NULL, 76, 114, 1, 'Drop', 90, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14282, 'Summoning potion(3)', '(X) doses of Summoning potion.', 1, NULL, 76, 114, 1, 'Drop', 90, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14283, 'Summoning potion(2)', '(X) doses of Summoning potion.', NULL, NULL, 76, 114, 1, 'Drop', 60, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14284, 'Summoning potion(2)', '(X) doses of Summoning potion.', 1, NULL, 76, 114, 1, 'Drop', 60, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14285, 'Summoning potion(1)', '(X) doses of Summoning potion.', NULL, NULL, 76, 114, 1, 'Drop', 30, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14286, 'Summoning potion(1)', '(X) doses of Summoning potion.', 1, NULL, 76, 114, 1, 'Drop', 30, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14287, 'Scimitar (class 1)', 'The sacred clay has transformed into a vicious, curved sword.', NULL, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1629, 3, 4, '0,0,0', '0,55,0,0,0,0,0,0,0,0,0,15,0,0,0', 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14288, 'Scimitar (class 1)', 'The sacred clay has transformed into a vicious, curved sword.', 1, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14289, 'Scimitar (class 2)', 'The sacred clay has transformed into a vicious, curved sword.', NULL, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1629, 3, 4, '0,0,0', '0,90,0,0,0,0,0,0,0,0,0,30,0,0,0', 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14290, 'Scimitar (class 2)', 'The sacred clay has transformed into a vicious, curved sword.', 1, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14291, 'Scimitar (class 3)', 'The sacred clay has transformed into a vicious, curved sword.', NULL, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1629, 3, 4, '0,0,0', '0,145,0,0,0,0,0,0,0,0,0,45,0,0,0', 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14292, 'Scimitar (class 3)', 'The sacred clay has transformed into a vicious, curved sword.', 1, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14293, 'Scimitar (class 4)', 'The sacred clay has transformed into a vicious, curved sword.', NULL, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1629, 3, 4, '0,0,0', '0,180,0,0,0,0,0,0,0,0,0,60,0,0,0', 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14294, 'Scimitar (class 4)', 'The sacred clay has transformed into a vicious, curved sword.', 1, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14295, 'Scimitar (class 5)', 'The sacred clay has transformed into a vicious, curved sword.', NULL, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1629, 3, 4, '0,0,0', '0,225,0,0,0,0,0,0,0,0,0,75,0,0,0', 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14296, 'Scimitar (class 5)', 'The sacred clay has transformed into a vicious, curved sword.', 1, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14297, 'Dagger (class 1)', 'The sacred clay transformed into a sharp dagger.', NULL, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, '0,0,0', '41,0,0,0,0,0,0,0,0,0,0,15,0,0,0', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14298, 'Dagger (class 1)', 'The sacred clay transformed into a sharp dagger.', 1, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14299, 'Dagger (class 2)', 'The sacred clay transformed into a sharp dagger.', NULL, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, '0,0,0', '68,0,0,0,0,0,0,0,0,0,0,30,0,0,0', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14300, 'Dagger (class 2)', 'The sacred clay transformed into a sharp dagger.', 1, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14301, 'Dagger (class 3)', 'The sacred clay transformed into a sharp dagger.', NULL, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, '0,0,0', '101,0,0,0,0,0,0,0,0,0,0,45,0,0,0', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14302, 'Dagger (class 3)', 'The sacred clay transformed into a sharp dagger.', 1, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14303, 'Dagger (class 4)', 'The sacred clay transformed into a sharp dagger.', NULL, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, '0,0,0', '135,0,0,0,0,0,0,0,0,0,0,60,0,0,0', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14304, 'Dagger (class 4)', 'The sacred clay transformed into a sharp dagger.', 1, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14305, 'Dagger (class 5)', 'The sacred clay transformed into a sharp dagger.', NULL, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 3, '0,0,0', '168,0,0,0,0,0,0,0,0,0,0,75,0,0,0', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14306, 'Dagger (class 5)', 'The sacred clay transformed into a sharp dagger.', 1, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14307, 'Warhammer (class 1)', 'The sacred clay has transformed into a heavy warhammer.', NULL, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, '0,0,0', '0,0,83,0,0,0,0,0,0,0,0,15,0,0,0', 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14308, 'Warhammer (class 1)', 'The sacred clay has transformed into a heavy warhammer.', 1, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14309, 'Warhammer (class 2)', 'The sacred clay has transformed into a heavy warhammer.', NULL, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, '0,0,0', '0,0,135,0,0,0,0,0,0,0,0,30,0,0,0', 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14310, 'Warhammer (class 2)', 'The sacred clay has transformed into a heavy warhammer.', 1, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14311, 'Warhammer (class 3)', 'The sacred clay has transformed into a heavy warhammer.', NULL, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, '0,0,0', '0,0,202,0,0,0,0,0,0,0,0,45,0,0,0', 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14312, 'Warhammer (class 3)', 'The sacred clay has transformed into a heavy warhammer.', 1, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14313, 'Warhammer (class 4)', 'The Sacred Clay has transformed into a heavy warhammer.', NULL, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, '0,0,0', '0,0,270,0,0,0,0,0,0,0,0,60,0,0,0', 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14314, 'Warhammer (class 4)', 'The Sacred Clay has transformed into a heavy warhammer.', 1, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14315, 'Warhammer (class 5)', 'The sacred clay has transformed into a heavy warhammer.', NULL, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 6, '0,0,0', '0,0,338,0,0,0,0,0,0,0,0,75,0,0,0', 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14316, 'Warhammer (class 5)', 'The sacred clay has transformed into a heavy warhammer.', 1, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14317, 'Robe top (class 1)', 'The sacred clay has transformed into a light, cloth-like material.', NULL, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,0,0,0,0,0,20,0,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14318, 'Robe top (class 1)', 'The sacred clay has transformed into a light, cloth-like material.', 1, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14319, 'Robe top (class 2)', 'The sacred clay has transformed into a light, cloth-like substance.', NULL, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,0,0,0,0,0,40,0,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14320, 'Robe top (class 2)', 'The sacred clay has transformed into a light, cloth-like substance.', 1, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14321, 'Robe top (class 3)', 'The sacred clay has transformed into a light, cloth-like substance.', NULL, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,0,0,0,0,0,60,0,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14322, 'Robe top (class 3)', 'The sacred clay has transformed into a light, cloth-like substance.', 1, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14323, 'Robe top (class 4)', 'The sacred clay has transformed into a light, cloth-like substance.', NULL, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,0,0,0,0,0,80,0,80,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14324, 'Robe top (class 4)', 'The sacred clay has transformed into a light, cloth-like substance.', 1, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14325, 'Robe top (class 5)', 'The sacred clay has transformed into a light, cloth-like substance.', NULL, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,0,0,0,0,0,100,0,100,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14326, 'Robe top (class 5)', 'The sacred clay has transformed into a light, cloth-like substance.', 1, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14327, 'Robe bottom (class 1)', 'The sacred clay has transformed into a light, cloth-like material.', NULL, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,0,0,0,0,0,15,0,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14328, 'Robe bottom (class 1)', 'The sacred clay has transformed into a light, cloth-like material.', 1, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14329, 'Robe bottom (class 2)', 'The sacred clay has transformed into a light, cloth-like material.', NULL, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,0,0,0,0,0,30,0,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14330, 'Robe bottom (class 2)', 'The sacred clay has transformed into a light, cloth-like material.', 1, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14331, 'Robe bottom (class 3)', 'The sacred clay transformed into a light, cloth-like material.', NULL, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,0,0,0,0,0,45,0,45,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14332, 'Robe bottom (class 3)', 'The sacred clay transformed into a light, cloth-like material.', 1, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14333, 'Robe bottom (class 4)', 'The sacred clay has transformed into a light, cloth-like material.', NULL, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,0,0,0,0,0,60,0,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14334, 'Robe bottom (class 4)', 'The sacred clay has transformed into a light, cloth-like material.', 1, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14335, 'Robe bottom (class 5)', 'The sacred clay has transformed into a light, cloth-like material.', NULL, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,0,0,0,0,0,75,0,75,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14336, 'Robe bottom (class 5)', 'The sacred clay has transformed into a light, cloth-like material.', 1, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14337, 'Hat (class 1)', 'The sacred clay has transformed into a light, cloth-like material.', NULL, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,10,0,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14338, 'Hat (class 1)', 'The sacred clay has transformed into a light, cloth-like material.', 1, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14339, 'Hat (class 2)', 'The sacred clay has transformed into a light, cloth-like material.', NULL, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,20,0,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14340, 'Hat (class 2)', 'The sacred clay has transformed into a light, cloth-like material.', 1, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14341, 'Hat (class 3)', 'The sacred clay has transformed into a light, cloth-like material.', NULL, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,30,0,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14342, 'Hat (class 3)', 'The sacred clay has transformed into a light, cloth-like material.', 1, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14343, 'Hat (class 4)', 'The sacred clay has transformed into a light, cloth-like material.', NULL, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,40,0,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14344, 'Hat (class 4)', 'The sacred clay has transformed into a light, cloth-like material.', 1, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14345, 'Hat (class 5)', 'The sacred clay has transformed into a light, cloth-like material.', NULL, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,50,0,50,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14346, 'Hat (class 5)', 'The sacred clay has transformed into a light, cloth-like material.', 1, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14347, 'Platebody (class 1)', 'The sacred clay has transformed into a hard, metallic substance.', NULL, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,-30,-10,20,20,20,-10,10,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14348, 'Platebody (class 1)', 'The sacred clay has transformed into a hard, metallic substance.', 1, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14349, 'Platebody (class 2)', 'The sacred clay transformed into a hard, metallic substance.', NULL, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,-30,-10,40,40,40,-10,20,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14350, 'Platebody (class 2)', 'The sacred clay transformed into a hard, metallic substance.', 1, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14351, 'Platebody (class 3)', 'The sacred clay top has transformed into a spiked, platemail body.', NULL, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,-30,-10,60,60,60,-10,30,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14352, 'Platebody (class 3)', 'The sacred clay top has transformed into a spiked, platemail body.', 1, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14353, 'Platebody (class 4)', 'The sacred clay top has transformed into a spiked, platemail body.', NULL, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,-30,-10,80,80,80,-10,40,80,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14354, 'Platebody (class 4)', 'The sacred clay top has transformed into a spiked, platemail body.', 1, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14355, 'Platebody (class 5)', 'The sacred clay top has transformed into a spiked, platemail body.', NULL, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,-30,-10,100,100,100,-10,50,100,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14356, 'Platebody (class 5)', 'The sacred clay top has transformed into a spiked, platemail body.', 1, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14357, 'Platelegs (class 1)', 'The sacred clay has transformed into a hard, metallic substance.', NULL, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,-30,-10,15,15,15,-10,7,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14358, 'Platelegs (class 1)', 'The sacred clay has transformed into a hard, metallic substance.', 1, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14359, 'Platelegs (class 2)', 'The sacred clay has transformed into a hard, metallic substance.', NULL, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,-30,-10,30,30,30,-10,15,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14360, 'Platelegs (class 2)', 'The sacred clay has transformed into a hard, metallic substance.', 1, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14361, 'Platelegs (class 3)', 'The sacred clay has transformed into a hard, metallic substance.', NULL, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,-30,-10,45,45,45,-10,23,45,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14362, 'Platelegs (class 3)', 'The sacred clay has transformed into a hard, metallic substance.', 1, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14363, 'Platelegs (class 4)', 'The sacred clay has transformed into a hard, metallic substance.', NULL, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,-30,-10,60,60,60,-10,30,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14364, 'Platelegs (class 4)', 'The sacred clay has transformed into a hard, metallic substance.', 1, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(14365, 'Platelegs (class 5)', 'The sacred clay has transformed into a hard, metallic substance.', NULL, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,-30,-10,75,75,75,-10,37,75,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14366, 'Platelegs (class 5)', 'The sacred clay has transformed into a hard, metallic substance.', 1, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14367, 'Helm (class 1)', 'The sacred clay has transformed into a hard, metallic substance.', NULL, NULL, NULL, NULL, 1, 'Drop', 30, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,-30,-10,10,10,10,-10,5,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14368, 'Helm (class 1)', 'The sacred clay has transformed into a hard, metallic substance.', 1, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14369, 'Helm (class 2)', 'The sacred clay has transformed into a hard, metallic substance.', NULL, NULL, NULL, NULL, 1, 'Drop', 60, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,-30,-10,20,20,20,-10,10,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14370, 'Helm (class 2)', 'The sacred clay has transformed into a hard, metallic substance.', 1, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14371, 'Helm (class 3)', 'The sacred clay has transformed into a hard, metallic substance.', NULL, NULL, NULL, NULL, 1, 'Drop', 90, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,-30,-10,30,30,30,-10,15,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14372, 'Helm (class 3)', 'The sacred clay has transformed into a hard, metallic substance.', 1, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14373, 'Helm (class 4)', 'The sacred clay has transformed into a hard, metallic substance.', NULL, NULL, NULL, NULL, 1, 'Drop', 120, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,-30,-10,40,40,40,-10,20,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14374, 'Helm (class 4)', 'The sacred clay has transformed into a hard, metallic substance.', 1, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14375, 'Helm (class 5)', 'The sacred clay has transformed into a hard, metallic substance.', NULL, NULL, NULL, NULL, 1, 'Drop', 150, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,-30,-10,50,50,50,-10,25,50,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14376, 'Helm (class 5)', 'The sacred clay has transformed into a hard, metallic substance.', 1, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14377, 'Staff (class 1)', 'The sacred clay has transformed into a light weight, magical stick.', NULL, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, 3, 5, '0,0,0', '0,0,0,55,0,0,0,0,0,0,0,0,0,0,0', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14378, 'Staff (class 1)', 'The sacred clay has transformed into a light weight, magical stick.', 1, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14379, 'Staff (class 2)', 'The sacred clay has transformed into a light weight, magical stick.', NULL, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, 3, 5, '0,0,0', '0,0,0,90,0,0,0,0,0,0,0,0,0,0,0', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14380, 'Staff (class 2)', 'The sacred clay has transformed into a light weight, magical stick.', 1, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14381, 'Staff (class 3)', 'The sacred clay has transformed into a lightweight, magical stick.', NULL, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, 3, 5, '0,0,0', '0,0,0,135,0,0,0,0,0,0,0,0,0,0,0', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14382, 'Staff (class 3)', 'The sacred clay has transformed into a lightweight, magical stick.', 1, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14383, 'Staff (class 4)', 'The sacred clay has transformed into a lightweight, magical stick.', NULL, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, 3, 5, '0,0,0', '0,0,0,180,0,0,0,0,0,0,0,0,0,0,0', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14384, 'Staff (class 4)', 'The sacred clay has transformed into a lightweight, magical stick.', 1, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14385, 'Staff (class 5)', 'The sacred clay has transformed into a lightweight, magical stick.', NULL, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 28, 3, 5, '0,0,0', '0,0,0,225,0,0,0,0,0,0,0,0,0,0,0', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14386, 'Staff (class 5)', 'The sacred clay has transformed into a lightweight, magical stick.', 1, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14387, 'Cape', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 4, '0,0,0', '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14389, 'Cape', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 4, '0,0,0', '0,0,0,0,0,0,1,1,0,2,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14391, 'Leather body (class 1)', 'The sacred clay has transformed into a flexible mesh.', NULL, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,0,0,10,10,10,10,20,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14392, 'Leather body (class 1)', 'The sacred clay has transformed into a flexible mesh.', 1, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14393, 'Leather body (class 2)', 'The sacred clay has transformed into a flexible mesh.', NULL, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,0,0,20,20,20,20,40,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14394, 'Leather body (class 2)', 'The sacred clay has transformed into a flexible mesh.', 1, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14395, 'Leather body (class 3)', 'The sacred clay has transformed into a flexible mesh.', NULL, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,0,0,30,30,30,30,60,60,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14396, 'Leather body (class 3)', 'The sacred clay has transformed into a flexible mesh.', 1, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14397, 'Leather body (class 4)', 'The sacred clay has transformed into a flexible mesh.', NULL, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,0,0,40,40,40,40,80,80,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14398, 'Leather body (class 4)', 'The sacred clay has transformed into a flexible mesh.', 1, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14399, 'Leather body (class 5)', 'The sacred clay has transformed into a flexible mesh.', NULL, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,0,0,50,50,50,50,100,100,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14400, 'Leather body (class 5)', 'The sacred clay has transformed into a flexible mesh.', 1, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14401, 'Chaps (class 1)', 'The sacred clay transformed into a flexible mesh.', NULL, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,0,0,7,7,7,0,15,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14402, 'Chaps (class 1)', 'The sacred clay transformed into a flexible mesh.', 1, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14403, 'Chaps (class 2)', 'The sacred clay transformed into a flexible mesh.', NULL, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,0,0,15,15,15,0,30,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14404, 'Chaps (class 2)', 'The sacred clay transformed into a flexible mesh.', 1, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14405, 'Chaps (class 3)', 'The sacred clay transformed into a flexible mesh.', NULL, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,0,0,23,23,23,0,45,45,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14406, 'Chaps (class 3)', 'The sacred clay transformed into a flexible mesh.', 1, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14407, 'Chaps (class 4)', 'The sacred clay transformed into a flexible mesh.', NULL, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,0,0,30,30,30,0,60,60,0,0,1,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14408, 'Chaps (class 4)', 'The sacred clay transformed into a flexible mesh.', 1, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14409, 'Chaps (class 5)', 'The sacred clay transformed into a flexible mesh.', NULL, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,0,0,37,37,37,0,75,75,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14410, 'Chaps (class 5)', 'The sacred clay transformed into a flexible mesh.', 1, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14411, 'Coif (class 1)', 'The sacred clay has transformed into a flexible, protective mesh.', NULL, NULL, NULL, NULL, 1, 'Drop', 30, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,5,5,5,0,10,10,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14412, 'Coif (class 1)', 'The sacred clay has transformed into a flexible, protective mesh.', 1, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14413, 'Coif (class 2)', 'The sacred clay has transformed into a flexible, protective mesh.', NULL, NULL, NULL, NULL, 1, 'Drop', 60, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,10,10,10,0,20,20,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14414, 'Coif (class 2)', 'The sacred clay has transformed into a flexible, protective mesh.', 1, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14415, 'Coif (class 3)', 'The sacred clay has transformed into a flexible, protective mesh.', NULL, NULL, NULL, NULL, 1, 'Drop', 90, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,15,15,15,0,30,30,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14416, 'Coif (class 3)', 'The sacred clay has transformed into a flexible, protective mesh.', 1, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14417, 'Coif (class 4)', 'The sacred clay has transformed into a flexible, protective mesh.', NULL, NULL, NULL, NULL, 1, 'Drop', 120, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,20,20,20,0,40,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14418, 'Coif (class 4)', 'The sacred clay has transformed into a flexible, protective mesh.', 1, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14419, 'Coif (class 5)', 'The sacred clay has transformed into a flexible, protective mesh.', NULL, NULL, NULL, NULL, 1, 'Drop', 150, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,25,25,25,0,50,50,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14420, 'Coif (class 5)', 'The sacred clay has transformed into a flexible, protective mesh.', 1, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14421, 'Clay deposit scroll', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14422, 'Sacred clay pouch (class 1)', 'This scroll will make your familiar deposit its items at your base.', NULL, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14423, 'Sacred clay pouch (class 1)', 'This scroll will make your familiar deposit its items at your base.', 1, NULL, NULL, NULL, 1, 'Drop', 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14424, 'Sacred clay pouch (class 2)', 'This scroll will make your familiar deposit its items at your base.', NULL, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14425, 'Sacred clay pouch (class 2)', 'This scroll will make your familiar deposit its items at your base.', 1, NULL, NULL, NULL, 1, 'Drop', 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14426, 'Sacred clay pouch (class 3)', 'This scroll will make your familiar deposit its items at your base.', NULL, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14427, 'Sacred clay pouch (class 3)', 'This scroll will make your familiar deposit its items at your base.', 1, NULL, NULL, NULL, 1, 'Drop', 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14428, 'Sacred clay pouch (class 4)', 'This scroll will make your familiar deposit its items at your base.', NULL, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14429, 'Sacred clay pouch (class 4)', 'This scroll will make your familiar deposit its items at your base.', 1, NULL, NULL, NULL, 1, 'Drop', 120, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14430, 'Sacred clay pouch (class 5)', 'This scroll will make your familiar deposit its items at your base.', NULL, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14431, 'Sacred clay pouch (class 5)', 'This scroll will make your familiar deposit its items at your base.', 1, NULL, NULL, NULL, 1, 'Drop', 150, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14432, 'Null sacred clay', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14458, 'Vine flower', 'A vine flower grown through magical means.', NULL, NULL, 2, 3, 1, 'Drop', 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14459, 'Unconscious broav', 'Its unconscious, poor thing.', NULL, NULL, NULL, NULL, 1, 'You caught this broav west of the Hunting Expert\'s home. You can catch another one with a trap baited with mort Myre Fungus.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14460, 'Dirty laundry', 'Some dirty clothes that apparently belong to Movario.', NULL, NULL, 4, 6, 1, 'You got these clothes from a washerman who lives near the Khazard battle arena.', 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14461, 'Waste-paper basket', 'A receptacle for rubbish.', NULL, NULL, NULL, NULL, 1, 'You found this basket in Movario\'s base.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14462, 'Ruby key', 'A superbly made key with a fine ruby inserted into it. (While Guthix Sleeps)', NULL, NULL, NULL, NULL, 1, 'You found this key attached to the bottom of the bin in Movario\'s base.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14463, 'Notes on pressure', 'A collection of notes made by an absent-minded fellow.', NULL, NULL, NULL, NULL, 1, 'You found these notes in Movario\'s basement.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14464, 'Movario\'s notes (volume 1)', 'A loose-leaf collection of research notes, found on Movario\'s study desk.', NULL, NULL, NULL, NULL, 1, 'You found these notes loosely piled up on ', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14465, 'Movario\'s notes (volume 2)', 'A loose-leaf collection of research notes, found in Movario\'s bed chest.', NULL, NULL, NULL, NULL, 1, 'You found these notes in Movario\'s bedchest, in his base of operations near the Khazard Battlefield.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14466, 'Weight (1kg)', 'A 1kg weight.', NULL, NULL, NULL, NULL, 1, 'Drop', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14467, 'Weight (2kg)', 'A 2kg weight.', NULL, NULL, NULL, NULL, 1, 'Drop', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14468, 'Weight (5kg)', 'A 5kg weight.', NULL, NULL, NULL, NULL, 1, 'Drop', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14469, 'Strange key loop', 'The loop half of a strange key.', NULL, NULL, NULL, NULL, 1, 'You can find another under the bed on the top level of Movario\'s base', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14470, 'Strange key teeth', 'The teeth half of a strange key.', NULL, NULL, NULL, NULL, 1, 'You can find another under the bed on the top level of Movario\'s base', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14471, 'Dragonkin key', 'The completed dragonkin key.', NULL, NULL, NULL, NULL, 1, 'You fused together two parts of a Dragonkin key which you obtained from Movario\'s base.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14472, 'Ruined dragon armour lump', 'A badly damaged lump of dragon metal.', 1, NULL, 12000, 18000, 1, 'Drop', 30000, 955683, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14473, 'Ruined dragon armour lump', 'A badly damaged lump of dragon metal.', 1, NULL, 12000, 18000, 1, 'Drop', 30000, 955683, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14474, 'Ruined dragon armour slice', 'A badly damaged slice of dragon metal.', 1, NULL, 12000, 18000, 1, 'Drop', 30000, 1761141, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14475, 'Ruined dragon armour slice', 'A badly damaged slice of dragon metal.', 1, NULL, 12000, 18000, 1, 'Drop', 30000, 1761141, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14476, 'Ruined dragon armour shard', 'A badly damaged shard of dragon metal.', 1, NULL, 12000, 18000, 1, 'Drop', 30000, 1090493, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14477, 'Ruined dragon armour shard', 'A badly damaged shard of dragon metal.', 1, NULL, 12000, 18000, 1, 'Drop', 30000, 1090493, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14478, 'Blast fusion hammer', 'A very powerful Smithing hammer.', NULL, NULL, NULL, NULL, 1, 'Drop', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14479, 'Dragon platebody', 'Provides excellent protection.', 1, 1, 704000, 1056000, 1, 'Drop', 1760000, 4453643, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '4,0,9', '0,0,0,-30,0,109,107,97,-6,106,50,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14480, 'Dragon platebody', 'Provides excellent protection.', 1, NULL, 704000, 1056000, 1, 'Drop', 1760000, 4453643, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14481, 'Dragon platebody', 'Provides excellent protection.', NULL, 1, 704000, 1056000, 1, 'Drop', NULL, 4453643, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '4,0,9', '0,0,0,-30,0,109,107,97,-6,106,50,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14484, 'Dragon claws', 'A set of fighting claws.', 1, 1, 27000, 40500, 1, 'Drop', 67500, 1472441, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2583, 3, 4, '0,0,0', '41,57,-4,0,0,13,26,7,0,0,0,56,0,0,0', 9, 1, 1, '393,393,1067,393', 397, NULL, '{0,60}', NULL, NULL, NULL, 1, NULL, NULL, NULL, 0), +(14485, 'Dragon claws', 'A set of fighting claws.', 1, NULL, 27000, 40500, 1, 'Drop', 67500, 1472441, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14486, 'Dragon claws', 'A set of fighting claws.', NULL, 1, 27000, 40500, 1, 'Drop', NULL, 1472441, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '41,57,-4,0,0,13,26,7,0,0,0,56,0,0,0', 9, 1, 1, NULL, NULL, NULL, '{0,60}', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14487, 'Enriched snapdragon', 'An enriched snapdragon herb.', NULL, NULL, NULL, NULL, 1, 'You grew this herb by planting an enriched snapdragon seed in the special herb patch on top of Falador castle.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14488, 'Super truth serum', 'Fluid sloshes innocently in this vial.', NULL, NULL, NULL, NULL, 1, 'You made this serum by mixing an enriched snapdragon into one of Betty\'s truth serums.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14489, 'Suspect sketch', 'A sketch of the suspect known as Dark Squall.', NULL, NULL, NULL, NULL, 1, 'You gained this item by having papyrus and charcoal in your inventory while interrogating a spy in Falador castle.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14490, 'Elite black platelegs', 'These look pretty heavy, but very elite.', 1, 1, 26000, 39000, 1, 'Drop', 65000, 41559, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '2,0,4', '0,0,0,-14,-6,52,50,25,-1,49,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14491, 'Elite black platelegs', 'These look pretty heavy, but very elite.', 1, NULL, 26000, 39000, 1, 'Drop', 65000, 41559, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14492, 'Elite black platebody', 'Provides excellent protection, and is elite.', 1, 1, 25600, 38400, 1, 'Drop', 64000, 38275, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '3,0,6', '0,0,0,-20,-8,80,85,40,-2,80,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14493, 'Elite black platebody', 'Provides excellent protection, and is elite.', 1, NULL, 25600, 38400, 1, 'Drop', 64000, 38275, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14494, 'Elite black full helm', 'A full face helmet, and elite.', 1, 1, 14080, 21120, 1, 'Drop', 35200, 30542, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '1,0,3', '0,0,0,-4,-2,31,33,15,0,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14495, 'Elite black full helm', 'A full face helmet, and elite.', 1, NULL, 14080, 21120, 1, 'Drop', 35200, 30542, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14496, 'Cell key', 'Opens the cells beneath the Black Knights\' Fortress. (While Guthix Sleeps)', NULL, NULL, NULL, NULL, 1, 'You got this key from the key rack in Dark Squall\'s base.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14497, 'Dagon\'hai robe top', 'A robe worn by members of the Dagon\'hai.', 1, NULL, 48000, 72000, 1, 'Drop', 120000, 71098, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '3,1,0', '0,0,0,20,0,0,0,0,20,0,20,0,0,2,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14498, 'Dagon\'hai robe top', 'A robe worn by members of the Dagon\'hai.', 1, NULL, 48000, 72000, 1, 'Drop', 120000, 71098, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14499, 'Dagon\'hai hat', 'A hat worn by members of the Dagon\'hai.', 1, NULL, 6000, 9000, 1, 'Drop', 15000, 9580, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '1,0,0', '0,0,0,4,0,0,0,0,4,0,4,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14500, 'Dagon\'hai hat', 'A hat worn by members of the Dagon\'hai.', 1, NULL, 6000, 9000, 1, 'Drop', 15000, 9580, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14501, 'Dagon\'hai robe bottom', 'A robe worn by members of the Dagon\'hai.', 1, NULL, 32000, 48000, 1, 'Drop', 80000, 45691, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '2,1,0', '0,0,0,15,0,0,0,0,15,0,15,0,0,2,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14502, 'Dagon\'hai robe bottom', 'A robe worn by members of the Dagon\'hai.', 1, NULL, 32000, 48000, 1, 'Drop', 80000, 45691, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14503, 'Silif', 'Elite Black Knight armour adds to his stealthiness.', NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14504, 'Silif', 'Elite Black Knight armour adds to his stealthiness.', NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14505, 'Teleorb', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14506, 'Enriched snapdragon seed', 'An enriched snapdragon seed. The herb that grows from this seed will be extra potent!', NULL, NULL, NULL, NULL, 1, 'You created this by focusing the light onto a snapdragon seed from a rose tinted lens while in Betty\'s shop.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14507, 'Dolmen', 'Part of a stone circle.', NULL, NULL, NULL, NULL, 1, 'You got this by solving a puzzle in the a Guthixian temple near the Chasm of Tears.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14508, 'Dolmen', 'Part of a stone circle.', NULL, NULL, NULL, NULL, 1, 'You got this by solving a puzzle in the a Guthixian temple near the Chasm of Tears.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14509, 'Dolmen', 'Part of a stone circle.', NULL, NULL, NULL, NULL, 1, 'You got this by solving a puzzle in the a Guthixian temple near the Chasm of Tears.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14510, 'Dolmen', 'Part of a stone circle.', NULL, NULL, NULL, NULL, 1, 'You got this by solving a puzzle in the a Guthixian temple near the Chasm of Tears.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14511, 'Dolmen', 'Part of a stone circle.', NULL, NULL, NULL, NULL, 1, 'You got this by solving a puzzle in the a Guthixian temple near the Chasm of Tears.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14512, 'Dolmen', 'Part of a stone circle.', NULL, NULL, NULL, NULL, 1, 'You got this by solving a puzzle in the a Guthixian temple near the Chasm of Tears.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14513, 'Dolmen', 'Part of a stone circle.', NULL, NULL, NULL, NULL, 1, 'You got this by solving a puzzle in the a Guthixian temple near the Chasm of Tears.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14514, 'Dolmen', 'Part of a stone circle.', NULL, NULL, NULL, NULL, 1, 'You got this by solving a puzzle in the a Guthixian temple near the Chasm of Tears.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14515, 'Air key', 'An elemental key of air.', NULL, NULL, NULL, NULL, 1, 'You found this in the Chasm of Tears by using an air-orb on an etched wall section.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14516, 'Earth key', 'An elemental key of earth.', NULL, NULL, NULL, NULL, 1, 'You found this in the Chasm of Tears by using an earth-orb on an etched wall section.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14517, 'Fire key', 'An elemental key of fire.', NULL, NULL, NULL, NULL, 1, 'You found this in the Chasm of Tears by using an', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14518, 'Water key', 'An elemental key of water.', NULL, NULL, NULL, NULL, 1, 'You found this in the Chasm of Tears by using an', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14519, 'Air key', 'An elemental key of air.', NULL, NULL, NULL, NULL, 1, 'You found this in the Chasm of Tears by using an air-orb on an etched wall section.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14520, 'Earth key', 'An elemental key of earth.', NULL, NULL, NULL, NULL, 1, 'You found this in the Chasm of Tears by using an earth-orb on an etched wall section.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14521, 'Fire key', 'An elemental key of fire.', NULL, NULL, NULL, NULL, 1, 'You found this in the Chasm of Tears by using an', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14522, 'Water key', 'An elemental key of water.', NULL, NULL, NULL, NULL, 1, 'You found this in the Chasm of Tears by using an', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14525, 'Dagon\'hai robes set', 'Grand Exchange set containing a hat, top and bottoms.', 1, NULL, NULL, NULL, 1, 'Drop', 20, 193541, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14526, 'Dagon\'hai robes set', 'Grand Exchange set containing a hat, top and bottoms.', 1, NULL, NULL, NULL, 1, 'Drop', 20, 193541, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14527, 'Elite black armour set', 'Grand Exchange set containing an elite black full helm, platebody and legs.', 1, NULL, NULL, NULL, 1, 'Drop', 20, 140536, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '6,0,13', '0,0,0,-38,-16,163,168,80,-3,159,62,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14528, 'Elite black armour set', 'Grand Exchange set containing an elite black full helm, platebody and legs.', 1, NULL, NULL, NULL, 1, 'Drop', 20, 140536, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14529, 'Dragon plate armour set (l)', 'Grand Exchange set containing a dragon full helm, platebody, legs.', 1, NULL, NULL, NULL, 1, 'Drop', 20, 10629814, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '9,0,19', '0,0,0,-57,-9,222,221,201,-11,217,82,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14530, 'Dragon plate armour set (l)', 'Grand Exchange set containing a dragon full helm, platebody, legs.', 1, NULL, NULL, NULL, 1, 'Drop', 20, 10629814, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14531, 'Dragon plate armour set (sk)', 'Grand Exchange set containing a dragon full helm, platebody, skirt.', 1, NULL, NULL, NULL, 1, 'Drop', 20, 12243786, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '9,0,19', '0,0,0,-57,-9,222,221,201,-11,217,82,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14532, 'Dragon plate armour set (sk)', 'Grand Exchange set containing a dragon full helm, platebody, skirt.', 1, NULL, NULL, NULL, 1, 'Drop', 20, 12243786, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14533, 'Broav', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14534, 'Strange teleorb', 'This orb can used to teleport people...somehow.', NULL, NULL, NULL, NULL, 1, 'You gained this orb from Dark Squall\'s base. You can probably get another one from visiting the same place.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14536, 'Turkey book', 'Notes on the locations of turkeys.', NULL, NULL, NULL, NULL, 1, 'You will not be able to get the book back if you destroy it.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14537, 'Cornucopia', '', NULL, NULL, NULL, NULL, 1, 'You will lose all food stored in the Cornucopia. You can get another empty one from Diango in Draynor Village.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14538, 'Cornucopia', '', NULL, NULL, NULL, NULL, 1, 'You will lose all food stored in the Cornucopia. You can get another empty one from Diango in Draynor Village.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14539, 'Raw turkey', '', NULL, NULL, 3, 5, 1, 'Drop', 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14540, 'Cooked turkey', 'Mmm, this looks tasty.', NULL, NULL, 1, 2, 1, 'Drop', 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14541, 'Burnt turkey', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14542, 'Raw turkey drumstick', 'I need to cook this first.', NULL, NULL, 3, 5, 1, 'Drop', 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14543, 'Cooked turkey drumstick', 'Mmm, this looks tasty.', NULL, NULL, 1, 2, 1, 'Drop', 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0); +INSERT INTO `item_configs` (`id`, `name`, `examine`, `tradeable`, `lendable`, `low_alchemy`, `high_alchemy`, `destroy`, `destroy_message`, `shop_price`, `grand_exchange_price`, `remove_head`, `remove_beard`, `remove_sleeves`, `stand_anim`, `stand_turn_anim`, `walk_anim`, `run_anim`, `turn180_anim`, `turn90cw_anim`, `turn90ccw_anim`, `render_anim`, `equipment_slot`, `attack_speed`, `absorb`, `bonuses`, `weapon_interface`, `has_special`, `two_handed`, `attack_anims`, `defence_anim`, `attack_audios`, `requirements`, `weight`, `ge_buy_limit`, `bankable`, `rare_item`, `tokkul_price`, `point_price`, `fun_weapon`, `archery_ticket_price`) VALUES +(14544, 'Burnt turkey drumstick', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14570, 'Cornucopia', '', NULL, NULL, NULL, NULL, 1, 'You will lose all food stored in the Cornucopia. You can get another empty one from Diango in Draynor Village.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14571, 'Fremennik sea boots 1', 'Not-so-sturdy boots for northern winters.', NULL, NULL, NULL, NULL, 1, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, 4, '0,0,0', '0,0,0,-3,-1,2,3,4,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14572, 'Fremennik sea boots 2', 'Sturdy boots for northern winters.', NULL, NULL, NULL, NULL, 1, 'You can claim replacement Fremennik sea boots from Yrsa in Rellekka.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, 4, '0,0,0', '0,0,0,-3,-1,8,9,10,0,0,8,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14573, 'Fremennik sea boots 3', 'Very sturdy boots for northern winters.', NULL, NULL, NULL, NULL, 1, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, 4, '0,0,0', '0,0,0,-3,-1,10,11,12,0,0,9,1,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14574, 'Antique lamp', 'I wonder what happens if I rub it.', NULL, NULL, NULL, NULL, 1, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14575, 'Antique lamp', 'I wonder what happens if I rub it.', NULL, NULL, NULL, NULL, 1, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14576, 'Antique lamp', 'I wonder what happens if I rub it.', NULL, NULL, NULL, NULL, 1, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14577, 'Falador shield 1', 'A buckler shield from Falador.', NULL, NULL, 40, 60, 1, 'Destroy', 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, 4, '0,0,0', '0,0,0,-8,-2,17,19,18,-1,18,10,0,0,3,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14578, 'Falador shield 2', 'A kiteshield from Falador.', NULL, NULL, 80, 120, 1, 'You will be able to get replacement shield from the chemist in Rimmington.', 200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, 4, '0,0,0', '0,0,0,-8,-2,18,22,20,-1,20,20,0,0,5,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14579, 'Falador shield 3', 'A tower shield from Falador.', NULL, NULL, 120, 180, 1, 'You will be able to get a replacement shield from Sir Vyvin\'s squire in the White Knights\' Castle.', 300, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, 4, '0,0,0', '0,0,0,-8,-2,27,31,29,-1,29,30,0,0,7,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14580, 'Antique lamp', 'I wonder what happens if I rub it.', NULL, NULL, NULL, NULL, 1, '', 1000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14581, 'Antique lamp', 'I wonder what happens if I rub it.', NULL, NULL, NULL, NULL, 1, '', 5000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14582, 'Antique lamp', 'I wonder what happens if I rub it.', NULL, NULL, NULL, NULL, 1, '', 10000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14583, 'White lily', 'A white lily seed - plant in a flower patch.', NULL, NULL, NULL, NULL, 1, 'Harvest (turns to ', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14584, 'Money crest voucher', 'I can take this to the Herald to get my money crest back for free.', NULL, NULL, NULL, NULL, 1, 'You will not be able to replace this voucher - it is a one-time offer only!', 500000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14589, 'White lily seed', 'A white lily seed - plant in a flower patch.', NULL, NULL, 500, 750, NULL, NULL, 1250, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14590, 'Enchanted lyre(5)', 'This will teleport me to Rellekka when I play it. ', NULL, NULL, 400, 600, 1, 'Drop', 1000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14591, 'Enchanted lyre(6)', 'This will teleport me to Rellekka when I play it. ', NULL, NULL, 400, 600, 1, 'Drop', 1000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14592, 'Elite black platelegs', 'These look pretty heavy, but very elite.', NULL, 1, 26000, 39000, 1, 'Drop', NULL, 41559, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '2,0,4', '0,0,0,-14,-6,52,50,25,-1,49,15,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14593, 'Elite black platebody', 'Provides excellent protection, and is elite.', NULL, 1, 25600, 38400, 1, 'Drop', NULL, 38275, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '3,0,6', '0,0,0,-20,-8,80,85,40,-2,80,40,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14594, 'Elite black full helm', 'A full face helmet, and elite.', NULL, 1, 14080, 21120, 1, 'Drop', NULL, 30542, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '1,0,3', '0,0,0,-4,-2,31,33,15,0,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14595, 'Santa costume top', 'A red and jolly top.', NULL, NULL, NULL, NULL, 1, 'You can get another from Diango in Draynor Village.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14596, 'Ice amulet', 'A spikey amulet made of ice crystals. It has been enchanted so it will not melt.', NULL, NULL, NULL, NULL, 1, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14597, 'Stones', '', NULL, NULL, NULL, NULL, 1, 'You can probably get more in the last room of the yeti cave, in the Land of Snow.', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14598, 'Enchanted stones', 'According to the snow imps, this is enchanted, frozen yeti dung.', NULL, NULL, NULL, NULL, 1, 'You will have to fetch more in the last room of the yeti cave, then get them enchanted by snow imps.', 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14599, 'Ice amulet', 'A spikey amulet made of ice crystals. It has been enchanted so it will not melt.', NULL, NULL, NULL, NULL, 1, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14600, 'Santa costume top', 'A red and jolly top.', NULL, NULL, NULL, NULL, 1, 'You can get another from Diango in Draynor Village.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14601, 'Santa costume top', 'A red and jolly top.', NULL, NULL, NULL, NULL, 1, 'You can get another from Diango in Draynor Village.', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14602, 'Santa costume gloves', 'Some black and jolly gloves.', NULL, NULL, NULL, NULL, 1, 'You can get another pair from Diango in Draynor Village.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14603, 'Santa costume legs', 'Some red and jolly legs.', NULL, NULL, NULL, NULL, 1, 'You can get another from Diango in Draynor Village.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14604, 'Santa costume legs', 'Some red and jolly legs.', NULL, NULL, NULL, NULL, 1, 'You can get another from Diango in Draynor Village.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14605, 'Santa costume boots', 'Some black and jolly boots.', NULL, NULL, NULL, NULL, 1, 'You can get another pair from Diango in Draynor Village.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14606, 'Cinnamon twigs', 'Aromatic twigs from a cinnamon tree.', NULL, NULL, NULL, NULL, 1, 'You harvested these from a tree in the phoenix\'s lair. You need one to complete the dungeon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14607, 'Sassafras twigs', 'Aromatic twigs from a sassafras tree.', NULL, NULL, NULL, NULL, 1, 'You harvested these from a tree in the phoenix\'s lair. You need one to complete the dungeon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14608, 'Ailanthus twigs', 'Aromatic twigs from a ailanthus tree.', NULL, NULL, NULL, NULL, 1, 'You harvested these from a tree in the phoenix\'s lair. You need one to complete the dungeon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14609, 'Cedar twigs', 'Aromatic twigs from a cedar tree.', NULL, NULL, NULL, NULL, 1, 'You harvested these from a tree in the phoenix\'s lair. You need one to complete the dungeon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14610, 'Mastic twigs', 'Aromatic twigs from a mastic tree.', NULL, NULL, NULL, NULL, 1, 'You harvested these from a tree in the phoenix\'s lair. You need one to complete the dungeon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14611, 'Cinnamon weaving ribbon', 'Cinnamon twigs, fletched into ribbons of wood and ready to be woven.', NULL, NULL, NULL, NULL, 1, 'You fletched this from twigs found in the phoenix\'s lair. You need one to complete the dungeon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14612, 'Sassafras weaving ribbon', 'Sassafras twigs, fletched into ribbons of wood and ready to be woven.', NULL, NULL, NULL, NULL, 1, 'You fletched this from twigs found in the phoenix\'s lair. You need one to complete the dungeon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14613, 'Ailanthus weaving ribbon', 'Ailanthus twigs, fletched into ribbons of wood and ready to be woven.', NULL, NULL, NULL, NULL, 1, 'You fletched this from twigs found in the phoenix\'s lair. You need one to complete the dungeon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14614, 'Cedar weaving ribbon', 'Cedar twigs, fletched into ribbons of wood and ready to be woven.', NULL, NULL, NULL, NULL, 1, 'You fletched this from twigs found in the phoenix\'s lair. You need one to complete the dungeon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14615, 'Mastic weaving ribbon', 'Mastic twigs, fletched into ribbons of wood and ready to be woven.', NULL, NULL, NULL, NULL, 1, 'You fletched this from twigs found in the phoenix\'s lair. You need one to complete the dungeon.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14616, 'Phoenix quill', 'A feather from a phoenix. Used in Summoning (72).', 1, NULL, 40, 60, 1, 'Drop', 100, 3431, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14617, 'Phoenix quill', 'A feather from a phoenix. Used in Summoning (72).', 1, NULL, 40, 60, 1, 'Drop', 100, 3431, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14620, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14621, 'Pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14622, 'Rise from the ashes scroll', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 498, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14623, 'Phoenix pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, 4986, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14624, 'Phoenix pouch', NULL, 1, NULL, NULL, NULL, NULL, NULL, 4986, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14625, 'Pouch', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14626, 'Phoenix eggling', 'A baby phoenix and it\'s bad to the bone!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14627, 'Phoenix eggling', 'A baby phoenix and it\'s bad to the bone!', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14629, 'Phoenix egg', 'I found this egg in the Phoenix\'s Lair, and clapped at it!', NULL, NULL, NULL, NULL, 1, 'Unknown ', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14630, 'Cracked phoenix egg', 'I found this egg in the Phoenix\'s Lair, and kicked it!', NULL, NULL, NULL, NULL, 1, 'Unknown ', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14631, 'Seer\'s headband', 'A headband with an eye embroidered on it.', NULL, NULL, NULL, NULL, 1, 'A player can get a new one by talking to any seer around Seer\'s village.', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,0,0,0,3,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14632, 'Enhanced excalibur', 'This used to belong to King Arthur and has since been improved to be held in the offhand.', NULL, NULL, 80, 120, 1, 'You can retrieve the Enhanced Excalibur from the Lady of the Lake for 500 coins.', 200, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5, 5, '0,0,0', '38,47,-2,0,0,0,3,2,1,0,0,45,0,0,0', 5, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14633, 'Antique lamp', 'I wonder what happens if I rub it.', NULL, NULL, NULL, NULL, 1, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14634, 'Antique lamp', 'I wonder what happens if I rub it.', NULL, NULL, NULL, NULL, 1, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14635, 'Antique lamp', 'I wonder what happens if I rub it.', NULL, NULL, NULL, NULL, 1, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4, '0,0,0', '0,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14636, 'Slayer helmet (e)', 'You don\'t want to wear it inside-out.', NULL, NULL, 260, 390, 1, 'Drop', 650, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,30,32,27,0,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(14637, 'Slayer helmet (charged)', 'You don\'t want to wear it inside-out.', NULL, NULL, 260, 390, 1, 'Drop', 650, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 4, '0,0,0', '0,0,0,0,0,30,32,27,0,30,7,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `music_configs` +-- + +CREATE TABLE `music_configs` ( + `id` int(11) UNSIGNED NOT NULL, + `name` varchar(30) NOT NULL DEFAULT '', + `indexId` int(11) NOT NULL, + `borders` varchar(500) NOT NULL DEFAULT '' +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- +-- Dumping data for table `music_configs` +-- + +INSERT INTO `music_configs` (`id`, `name`, `indexId`, `borders`) VALUES +(1, 'Iban', 61, '{2112,4544,2175,4607}'), +(2, 'Autumn Voyage', 17, '{3200,3264,3263,3327}'), +(3, 'Unknown Land', 133, '{3072,3200,3135,3263}'), +(4, 'Hell\'s Bells', 254, '{2752,3712,2815,3775}'), +(5, 'Sad Meadow', 101, '{2496,3264,2559,3327}-{2752,4672,2815,4735}'), +(6, 'Jolly-R', 65, '{2752,3200,2815,3263}'), +(7, 'Overture', 92, '{2688,3456,2751,3519}'), +(8, 'Wildwood', 256, '{3072,3584,3135,3647}'), +(9, 'Kingdom', 190, '{2816,3520,2879,3583}'), +(10, 'Moody', 87, '{3136,3584,3199,3647}-{2368,3264,2431,3327}'), +(11, 'Spooky2', 218, '{3392,9600,3455,9663}'), +(12, 'Long Way Home', 76, '{2944,3200,3007,3263}'), +(13, 'Mage Arena', 78, '{3072,3904,3135,3967}-{2496,4672,2559,4735}'), +(14, 'Witching', 145, '{3264,3648,3327,3711}'), +(15, 'Workshop', 148, '{3008,3328,3071,3391}'), +(17, 'Escape', 176, '{2688,9664,2751,9727}'), +(18, 'Horizon', 60, '{2880,3392,2943,3455}'), +(19, 'Arabique', 7, '{2816,9792,2879,9855}'), +(20, 'Lullaby', 77, '{3328,3392,3391,3455}-{2624,3520,2687,3583}'), +(21, 'Monarch Waltz', 86, '{2688,3520,2751,3583}'), +(22, 'Gnome King', 51, '{2432,3456,2495,3519}'), +(24, 'Attack1', 10, '{2496,3200,2559,3263}'), +(25, 'Attack2', 11, '{2816,9600,2879,9663}'), +(26, 'Attack3', 12, '{3008,10240,3071,10303}'), +(27, 'Attack4', 13, '{2560,3136,2623,3199}-{2560,9536,2623,9599}'), +(28, 'Attack5', 14, '{2240,4672,2303,4735}'), +(29, 'Attack6', 15, '{2560,9408,2623,9471}'), +(30, 'Voodoo Cult', 138, '{2368,4672,2431,4735}-{2880,9280,2943,9343}'), +(32, 'Voyage', 139, '{2496,3456,2559,3519}'), +(33, 'Gnome Village', 53, '{2432,3392,2495,3455}'), +(34, 'Wonder', 146, '{2944,3520,3007,3583}'), +(35, 'Sea Shanty2', 107, '{3008,3200,3071,3263}'), +(36, 'Arabian', 4, '{3264,3200,3327,3263}-{3392,3136,3455,3199}'), +(37, 'Deep Wildy', 32, '{2944,3776,3007,3839}'), +(38, 'Trawler', 124, '{1856,4800,1919,4863}'), +(41, 'Expecting', 41, '{2432,3200,2495,3263}-{2432,9600,2495,9663}'), +(42, 'Wilderness2', 143, '{3008,3776,3071,3839}'), +(43, 'Wilderness3', 144, '{2944,3712,3007,3775}'), +(45, 'Venture2', 168, '{3328,9728,3391,9791}'), +(46, 'Harmony2', 167, '{3200,9600,3263,9663}'), +(47, 'Duel Arena', 164, '{3328,3200,3391,3263}'), +(48, 'Morytania', 180, '{3392,3456,3455,3519}'), +(49, 'Wander', 140, '{3008,3264,3071,3327}'), +(50, 'Al Kharid', 1, '{3264,3136,3327,3199}-{3328,3136,3391,3199}'), +(51, 'Trawler Minor', 125, '{1920,4800,1983,4863}'), +(52, 'Serene', 109, '{2944,3904,3007,3967}-{2944,10240,3007,10303}-{2816,4800,2879,4863}'), +(53, 'Royale', 99, '{2880,9664,2943,9727}'), +(54, 'Scape Soft', 159, '{2944,3392,3007,3455}'), +(55, 'High Seas', 59, '{2752,3136,2815,3199}'), +(56, 'Doorways', 34, '{3136,3520,3199,3583}'), +(57, 'Rune Essence', 100, '{2880,4800,2943,4863}'), +(58, 'Nomad', 171, '{2752,3072,2815,3135}'), +(59, 'Cursed', 186, '{2368,9664,2431,9727}'), +(60, 'Lasting', 71, '{2624,3392,2687,3455}'), +(61, 'Village', 182, '{3456,3456,3519,3519}'), +(62, 'Newbie Melody', 89, '{3052,3055,3155,3135}'), +(63, 'Chain of Command', 27, '{2624,9728,2687,9791}-{2688,9792,2751,9855}'), +(64, 'Book of Spells', 23, '{3136,3136,3199,3199}'), +(65, 'Miracle Dance', 85, '{2752,4800,2815,4863}'), +(66, 'Legion', 72, '{3008,3648,3071,3711}-{2496,3520,2559,3583}'), +(67, 'Close Quarters', 175, '{3136,3712,3199,3775}-{1536,5760,1599,5823}'), +(68, 'Cavern', 26, '{3008,10304,3071,10367}-{2560,9472,2623,9535}'), +(69, 'Egypt', 37, '{3264,3072,3327,3135}'), +(70, 'Upcoming', 135, '{2624,3200,2687,3263}'), +(71, 'Chompy Hunt', 178, '{2624,2944,2687,3007}-{2624,9344,2687,9407}'), +(72, 'Fanfare', 44, '{2944,3328,3007,3391}'), +(74, 'Lightwalk', 74, '{2752,3392,2815,3455}'), +(75, 'Venture', 136, '{3328,3328,3391,3391}'), +(76, 'Harmony', 58, '{3200,3200,3263,3263}'), +(77, 'Splendour', 113, '{2880,3456,2943,3519}'), +(78, 'Reggae', 96, '{2880,2880,2943,2943}'), +(79, 'The Desert', 120, '{3136,3008,3199,3071}'), +(80, 'Soundscape', 111, '{2432,2944,2495,3007}'), +(81, 'Wonderous', 147, '{2624,3328,2687,3391}'), +(82, 'Waterfall', 141, '{2496,3392,2559,3455}-{2496,9792,2559,9855}'), +(83, 'Big Chords', 22, '{2496,3072,2559,3135}'), +(84, 'Dead Quiet', 181, '{3392,3392,3455,3455}-{2304,4992,2367,5055}'), +(85, 'Vision', 137, '{3072,3136,3135,3199}-{3072,9472,3135,9535}'), +(87, 'Ice Melody', 165, '{2816,3456,2879,3519}'), +(88, 'Twilight', 179, '{2688,9856,2751,9919}'), +(89, 'Reggae2', 97, '{2880,3008,2943,3071}'), +(90, 'Ambient Jungle', 3, '{2816,2944,2879,3007}'), +(91, 'Riverside', 98, '{2688,3264,2751,3327}-{2112,3072,2175,3135}'), +(92, 'Sea Shanty', 106, '{2880,3136,2943,3199}'), +(93, 'Parade', 93, '{3264,3456,3327,3519}'), +(94, 'Tribal2', 129, '{2880,2944,2943,3007}'), +(95, 'Intrepid', 64, '{2304,9792,2367,9855}'), +(96, 'Inspiration', 63, '{3008,3520,3071,3583}'), +(97, 'Hermit', 191, '{2240,4736,2303,4799}'), +(98, 'Forever', 48, '{3072,3456,3135,3519}-{3072,9856,3135,9919}'), +(99, 'Baroque', 20, '{2624,3264,2687,3327}'), +(100, 'Beyond', 21, '{2816,9856,2879,9919}-{2816,9920,2879,9983}'), +(101, 'Gnome Village2', 54, '{2304,3392,2367,3455}'), +(102, 'Alone', 2, '{3008,3456,3071,3519}-{2496,9600,2559,9663}'), +(103, 'Oriental', 91, '{2880,9344,2943,9407}'), +(104, 'Camelot', 24, '{2752,3456,2815,3519}'), +(105, 'Tomorrow', 163, '{3008,3136,3071,3199}'), +(106, 'Expanse', 40, '{3136,3904,3199,3967}-{3200,3328,3263,3391}-{3200,9728,3263,9791}'), +(107, 'Miles Away', 84, '{2880,3264,2943,3327}-{2624,4672,2687,4735}'), +(108, 'Starlight', 116, '{2944,9536,3007,9599}-{3200,9536,3263,9599}'), +(109, 'Theme', 123, '{2560,3456,2623,3519}-{2496,9856,2559,9919}'), +(110, 'Serenade', 108, '{2368,3136,2431,3199}'), +(111, 'Still Night', 118, '{3264,3328,3327,3391}'), +(112, 'Gnomeball', 56, '{2304,3456,2367,3519}'), +(113, 'Lightness', 73, '{3072,3520,3135,3583}'), +(114, 'Jungly1', 67, '{2752,2944,2815,3007}-{2752,9344,2815,9407}'), +(115, 'Jungly2', 68, '{2688,3200,2751,3263}'), +(116, 'Greatness', 57, '{3136,3328,3199,3391}'), +(117, 'Jungly3', 69, '{2752,3008,2815,3071}'), +(118, 'Faerie', 43, '{2368,4352,2431,4415}'), +(119, 'Fishing', 46, '{2816,3392,2879,3455}'), +(120, 'Shining', 160, '{3200,3712,3263,3775}'), +(121, 'Forbidden', 185, '{3264,3520,3327,3583}'), +(122, 'Shine', 110, '{3328,3264,3391,3327}'), +(123, 'Arabian2', 5, '{3264,3264,3327,3327}'), +(124, 'Arabian3', 6, '{3200,3072,3263,3135}'), +(125, 'Garden', 50, '{3200,3392,3263,3455}'), +(127, 'Nightfall', 90, '{3200,3904,3263,3967}-{2944,3264,3007,3327}'), +(128, 'Grumpy', 177, '{2560,2944,2623,3007}'), +(129, 'Spooky Jungle', 115, '{2752,2880,2815,2943}-{2880,9472,2943,9535}'), +(130, 'Tree Spirits', 126, '{2304,3328,2367,3391}'), +(131, 'Understanding', 187, '{2368,4800,2431,4863}'), +(132, 'Breeze', 194, '{2240,3200,2303,3263}'), +(133, 'The Tower', 122, '{2560,3328,2623,3391}-{2496,9728,2559,9791}'), +(134, 'La Mort', 192, '{2176,4800,2239,4863}'), +(138, 'Emperor', 39, '{2880,3200,2943,3263}-{2880,9600,2943,9663}'), +(140, 'Talking Forest', 119, '{2624,3456,2687,3519}'), +(141, 'Barbarianism', 257, '{3072,3392,3135,3455}-{3072,9792,3135,9855}'), +(142, 'Complication', 258, '{2240,4800,2303,4863}'), +(143, 'Down to Earth', 259, '{2624,4800,2687,4863}'), +(144, 'Scape Cave', 102, '{3136,9856,3199,9919}-{3072,9536,3135,9599}'), +(145, 'Yesteryear', 161, '{3200,3136,3263,3199}'), +(146, 'Zealot', 172, '{2688,4800,2751,4863}'), +(148, 'Emotion', 38, '{2496,3136,2559,3199}-{2560,4416,2623,4479}-{2496,9536,2559,9599}'), +(149, 'Principality', 188, '{2880,3520,2943,3583}'), +(151, 'Start', 117, '{3072,3264,3135,3327}'), +(152, 'Ballad of Enchantment', 19, '{2560,3200,2623,3263}'), +(153, 'Expedition', 42, '{2880,9984,2943,10047}'), +(154, 'Bone Dance', 183, '{3392,3264,3455,3327}'), +(155, 'Neverland', 88, '{2432,3328,2495,3391}'), +(156, 'Mausoleum', 184, '{3392,9856,3455,9919}'), +(157, 'Medieval', 82, '{3264,3392,3327,3455}'), +(158, 'Quest', 94, '{2560,4800,2623,4863}'), +(159, 'Gaol', 49, '{3008,3712,3071,3775}-{2496,3008,2559,3071}-{2496,9408,2559,9471}'), +(160, 'Army of Darkness', 8, '{3008,3584,3071,3647}'), +(161, 'Long Ago', 75, '{2624,3072,2687,3135}'), +(162, 'Tribal Background', 127, '{2816,3072,2879,3135}-{2816,9472,2879,9535}'), +(163, 'Flute Salad', 47, '{3136,3264,3199,3327}'), +(164, 'Landlubber', 169, '{2688,3136,2751,3199}'), +(165, 'Tribal', 128, '{2816,3008,2879,3071}'), +(166, 'Fanfare2', 162, '{2944,3008,3007,3071}'), +(167, 'Fanfare3', 45, '{2624,3136,2687,3199}'), +(168, 'Lonesome', 149, '{3264,9408,3327,9471}'), +(169, 'Crystal Sword', 29, '{3200,3520,3263,3583}-{2624,9664,2687,9727}'), +(170, 'The Shadow', 121, '{2816,3200,2879,3263}'), +(172, 'Jungle Island', 66, '{2816,3136,2879,3199}-{2816,2880,2879,2943}'), +(173, 'Dunjun', 36, '{2880,9728,2943,9791}'), +(174, 'Desert Voyage', 33, '{3264,2944,3327,3007}-{3328,3008,3391,3071}'), +(175, 'Spirit', 112, '{3136,3392,3199,3455}'), +(176, 'Undercurrent', 170, '{3072,3648,3135,3711}'), +(177, 'Adventure', 0, '{3200,3456,3263,3519}'), +(178, 'Courage', 260, '{2880,9792,2943,9855}'), +(179, 'Underground', 132, '{3328,3584,3391,3647}-{2816,9728,2879,9791}'), +(180, 'Attention', 16, '{2944,3136,3007,3199}'), +(181, 'Crystal Cave', 28, '{2432,4416,2495,4479}'), +(182, 'Dangerous', 30, '{3264,3776,3327,3839}-{3264,3712,3327,3775}'), +(183, 'Troubled', 131, '{2944,3648,3007,3711}'), +(184, 'Magical Journey', 80, '{2688,3392,2751,3455}'), +(185, 'Magic Dance', 79, '{2560,3072,2623,3135}'), +(186, 'Arrival', 9, '{2880,3328,2943,3391}'), +(187, 'Tremble', 189, '{2816,3584,2879,3647}'), +(188, 'In the Manor', 62, '{2560,3008,2623,3071}'), +(190, 'Heart and Mind', 174, '{2496,4800,2559,4863}'), +(191, 'Knightly', 70, '{2560,3264,2623,3327}'), +(192, 'Trinity', 130, '{2688,3328,2751,3391}-{2688,9728,2751,9791}'), +(193, 'Mellow', 83, '{2560,3392,2623,3455}'), +(198, 'Dagannoth Dawn', 365, '{1792,4352,1855,4415}-{1920,4352,1983,4415}'), +(241, 'Stagnant', 193, '{3456,3328,3519,3391}-{2176,4992,2239,5055}'), +(242, 'Time Out', 196, '{2880,4544,2943,4607}'), +(243, 'Stratosphere', 195, '{2112,4800,2175,4863}'), +(244, 'Waterlogged', 199, '{3456,3392,3519,3455}-{1984,4992,2047,5055}'), +(245, 'Natural', 197, '{3392,3328,3455,3391}-{2240,4992,2303,5055}'), +(246, 'Grotto', 198, '{3392,9728,3455,9791}'), +(247, 'Artistry', 200, '{1984,4736,2047,4799}'), +(248, 'Aztec', 201, '{2752,9536,2815,9599}'), +(251, 'Forest', 203, '{2240,3136,2303,3199}'), +(252, 'Elven Mist', 202, '{2304,3200,2367,3263}'), +(253, 'Lost Soul', 204, '{2240,3072,2303,3135}'), +(254, 'Meridian', 205, '{2112,3136,2175,3199}'), +(255, 'Woodland', 206, '{2112,3200,2175,3263}'), +(256, 'Overpass', 207, '{2304,3264,2367,3327}'), +(257, 'Sojourn', 209, '{2816,3648,2879,3711}'), +(258, 'Contest', 208, '{2880,3584,2943,3647}'), +(259, 'Crystal Castle', 210, '{2240,3264,2303,3327}'), +(260, 'Insect Queen', 212, '{3456,9472,3519,9535}'), +(261, 'Marzipan', 211, '{2752,10112,2815,10175}-{2816,10048,2879,10111}'), +(262, 'Righteousness', 223, '{2432,4800,2495,4863}'), +(263, 'Bandit Camp', 214, '{3136,2944,3199,3007}'), +(264, 'Mad Eadgar', 213, '{2880,10048,2943,10111}'), +(265, 'Superstition', 261, '{2752,9280,2815,9343}'), +(266, 'Bone Dry', 216, '{3200,9344,3263,9407}'), +(267, 'Sunburn', 215, '{3200,2944,3263,3007}-{3328,2880,3391,2943}'), +(268, 'Everywhere', 219, '{2112,3264,2175,3327}'), +(269, 'Competition', 217, '{2176,4928,2239,4991}'), +(270, 'Exposed', 220, '{2176,3072,2239,3135}'), +(271, 'Well of Voyage', 221, '{2304,9600,2367,9663}'), +(277, 'Haunted Mine', 222, '{2752,4416,2815,4479}'), +(278, 'Deep Down', 224, '{2688,4544,2751,4607}-{2688,4480,2751,4543}'), +(282, 'Chamber', 225, '{2688,4416,2751,4479}-{2752,4480,2815,4543}'), +(284, 'Miscellania', 226, '{2496,3840,2559,3903}'), +(285, 'Etcetera', 227, '{2560,3840,2623,3903}'), +(286, 'Shadowland', 228, '{3392,3200,3455,3263}-{3456,3264,3519,3327}-{2112,4992,2175,5055}'), +(287, 'Lair', 229, '{3456,9664,3519,9727}'), +(288, 'Deadlands', 230, '{3520,3456,3583,3519}'), +(289, 'Rellekka', 231, '{2560,3648,2623,3711}'), +(290, 'Saga', 232, '{2560,3584,2623,3647}'), +(291, 'Borderland', 233, '{2688,3648,2751,3711}'), +(292, 'Stranded', 234, '{2816,3712,2879,3775}-{2880,3712,2943,3775}'), +(293, 'Legend', 235, '{2688,3584,2751,3647}'), +(294, 'Frostbite', 236, '{2816,3776,2879,3839}'), +(295, 'Warrior', 237, '{2624,10048,2687,10111}'), +(296, 'Technology', 238, '{2560,4480,2623,4543}'), +(303, 'Monkey Madness', 239, '{2752,2752,2815,2815}'), +(304, 'Marooned', 241, '{2880,2688,2943,2751}-{3008,5440,3071,5503}'), +(305, 'Anywhere', 240, '{2688,2752,2751,2815}'), +(306, 'Island Life', 242, '{2688,2688,2751,2751}'), +(307, 'Temple', 243, '{2752,9152,2815,9215}'), +(311, 'Showdown', 245, '{2688,9152,2751,9215}'), +(312, 'Find My Way', 246, '{2688,9088,2751,9151}'), +(314, 'Castle Wars', 247, '{2368,3072,2431,3135}'), +(316, 'The Navigator', 255, '{2624,9984,2687,10047}'), +(317, 'Melodrama', 248, '{2432,3072,2495,3135}'), +(318, 'Ready for Battle', 249, '{2368,9472,2431,9535}'), +(319, 'Stillness', 250, '{3456,9792,3519,9855}'), +(320, 'Lighthouse', 251, '{2496,3584,2559,3647}'), +(322, 'Out of the Deep', 253, '{2496,9984,2559,10047}'), +(323, 'Underground Pass', 134, '{2368,9536,2431,9599}'), +(324, 'Background', 18, '{2752,3328,2815,3391}-{1920,4992,1983,5055}'), +(325, 'Cave Background', 25, '{3008,9728,3071,9791}-{2944,9792,3007,9855}'), +(326, 'Dark', 31, '{3328,3648,3391,3711}'), +(327, 'Dream', 35, '{3136,3200,3199,3263}'), +(328, 'March', 81, '{2496,3328,2559,3391}'), +(329, 'Regal', 95, '{3264,3904,3327,3967}'), +(330, 'Cellar Song', 173, '{3136,9792,3199,9855}'), +(331, 'Scape Sad', 104, '{3264,3840,3327,3903}'), +(332, 'Scape Wild', 105, '{3200,3648,3263,3711}-{3136,3840,3199,3903}'), +(333, 'Spooky', 114, '{3072,3328,3135,3391}'), +(334, 'Pirates of Peril', 262, '{3008,3904,3071,3967}'), +(335, 'Romancing the Crone', 264, '{2752,3840,2815,3903}'), +(336, 'Dangerous Road', 263, '{2816,9536,2879,9599}'), +(337, 'Faithless', 265, '{3200,3584,3263,3647}'), +(338, 'Tiptoe', 266, '{3072,9728,3135,9791}'), +(339, 'The Terrible Tower', 267, '{3392,3520,3455,3583}'), +(340, 'Masquerade', 268, '{2688,9984,2751,10047}'), +(341, 'The Slayer', 269, '{2752,9984,2815,10047}'), +(342, 'Body Parts', 270, '{3456,9920,3519,9983}'), +(343, 'Monster Melee', 272, '{3136,9600,3199,9663}'), +(344, 'Fenkenstrain\'s Refrain', 271, '{3456,3520,3519,3583}'), +(345, 'Barking Mad', 274, '{3520,9856,3583,9919}'), +(346, 'Goblin Game', 252, '{2560,9792,2623,9855}'), +(347, 'Fruits de Mer', 273, '{2752,3264,2815,3327}'), +(348, 'Narnode\'s Theme', 513, '{2432,9856,2495,9919}'), +(351, 'Dynasty', 275, '{3328,2944,3391,3007}'), +(352, 'Scarab', 282, '{3136,2880,3199,2943}'), +(353, 'Shipwrecked', 276, '{3584,3520,3647,3583}'), +(354, 'Phasmatys', 277, '{3648,9856,3711,9919}'), +(355, 'The Other Side', 278, '{3648,3456,3711,3519}'), +(356, 'Settlement', 279, '{2752,3648,2815,3711}'), +(357, 'Cave of Beasts', 280, '{2752,10048,2815,10111}'), +(358, 'Dragontooth Island', 281, '{3776,3520,3839,3583}'), +(359, 'Sarcophagus', 283, '{3200,9280,3263,9343}'), +(361, 'Down Below', 284, '{3072,9600,3135,9663}'), +(362, 'Karamja Jam', 286, '{2688,9472,2751,9535}-{2688,9408,2751,9471}'), +(363, '7th Realm', 285, '{2624,9536,2687,9599}-{2624,9472,2687,9535}'), +(364, 'Pathways', 287, '{2688,9536,2751,9599}'), +(369, 'Time to Mine', 289, '{2816,10112,2879,10175}'), +(370, 'In Between', 290, '{2496,4928,2559,4991}'), +(372, 'Far Away', 292, '{2304,3136,2367,3199}'), +(373, 'Claustrophobia', 291, '{2304,4928,2367,4991}'), +(375, 'Fight or Flight', 293, '{1920,4608,1983,4671}'), +(376, 'Temple of Light', 294, '{1856,4608,1919,4671}'), +(377, 'The Golem', 295, '{3392,3072,3455,3135}-{3456,3072,3519,3135}'), +(380, 'Dance of the Undead', 298, '{3520,3264,3583,3327}'), +(381, 'Dangerous Way', 299, '{3520,9664,3583,9727}'), +(383, 'City of the Dead', 300, '{3200,2752,3263,2815}-{3264,2752,3327,2815}'), +(386, 'Bandos Battalion', 492, '{2820,5312,2849,5369}-{2849,5349,2880,5374}'), +(387, 'Sphinx', 302, '{3264,2816,3327,2879}'), +(388, 'Mirage', 303, '{3264,9152,3327,9215}'), +(389, 'Cave of the Goblins', 304, '{3136,9536,3199,9599}'), +(390, 'Romper Chomper', 312, '{2304,3008,2367,3071}'), +(391, 'Zamorak Zoo', 490, '{2879,5340,2944,5366}-{2909,5316,2944,5340}'), +(392, 'Zogre Dance', 306, '{2432,3008,2495,3071}'), +(393, 'Path of Peril', 307, '{2624,5056,2687,5119}'), +(394, 'Wayward', 308, '{2432,9408,2495,9471}'), +(395, 'Tale of Keldagrim', 309, '{2880,10112,2943,10175}'), +(396, 'Land of the Dwarves', 310, '{2816,10176,2879,10239}'), +(397, 'Tears of Guthix', 311, '{3200,9472,3263,9535}'), +(399, 'Armageddon', 494, '{2816,5248,2943,5375,[2823,5250,2844,5310]~,[2844,5250,2878,5280]~,[2879,5340,2944,5366]~,[2909,5316,2944,5340]~,[2820,5312,2849,5369]~,[2849,5349,2880,5374]~,[2885,5253,2934,5278]~,[2913,5278,2937,5306]}'), +(402, 'The Rogues\' Den', 313, '{2944,4928,3007,4991}-{3008,4928,3071,4991}'), +(403, 'The Far Side', 314, '{3008,5056,3071,5119}'), +(404, 'Armadyl Alliance', 493, '{2823,5250,2844,5310}-{2844,5250,2878,5280}'), +(407, 'The Lost Melody', 315, '{3264,9600,3327,9663}'), +(408, 'Strength of Saradomin', 491, '{2885,5253,2934,5278}-{2913,5278,2937,5306}'), +(409, 'Frogland', 336, '{2432,4736,2495,4799}'), +(411, 'Evil Bob\'s Island', 316, '{2496,4736,2559,4799}'), +(412, 'Into the Abyss', 317, '{3008,4800,3071,4863}'), +(413, 'The Quiz Master', 318, '{1920,4736,1983,4799}'), +(418, 'Corporal Punishment', 323, '{3136,4800,3199,4863}'), +(419, 'Pheasant Peasant', 321, '{2560,4736,2623,4799}'), +(425, 'The Chosen', 324, '{2432,4928,2495,4991}'), +(428, 'Altar Ego', 501, '{3264,4800,3327,4863}'), +(432, 'Grimly Fiendish', 509, '{1600,4800,1663,4863}-{1664,4800,1727,4863}'), +(434, 'Have a Blast', 325, '{1920,4928,1983,4991}'), +(435, 'Wilderness', 142, '{2944,3584,3007,3647}-{3072,3712,3135,3775}'), +(442, 'Clan Wars', 515, ''), +(443, 'Bounty Hunter Level 2', 518, '{2944,5632,3135,5823}'), +(444, 'Bounty Hunter Level 1', 517, '{2688,5632,2879,5823}'), +(445, 'Bounty Hunter Level 3', 519, '{3200,5632,3391,5823}'), +(447, 'Over To Nardah', 328, '{3392,2880,3455,2943}'), +(448, 'The Monsters Below', 329, '{2432,10112,2495,10175}'), +(461, 'The Desolate Isle', 330, '{2496,3712,2559,3775}'), +(462, 'Spirits of Elid', 331, '{3328,9536,3391,9599}'), +(463, 'Fire and Brimstone', 334, '{2368,5120,2431,5183}'), +(464, 'The Genie', 332, '{3328,9280,3391,9343}'), +(465, 'Desert Heat', 333, '{3392,2944,3455,3007}'), +(469, 'In the Pits', 335, '{2432,5120,2495,5183}'), +(471, 'Brew Hoo Hoo', 338, '{3648,9920,3711,9983}'), +(473, 'TzHaar!', 339, '{2368,5056,2431,5119}'), +(475, 'Wild Side', 340, '{3008,3840,3071,3903}'), +(476, 'Dead Can Dance', 341, '{3136,3648,3199,3711}'), +(478, 'The Cellar Dwellers', 342, '{2496,9664,2559,9727}'), +(479, 'Jungle Troubles', 343, '{2880,3072,2943,3135}'), +(481, 'Catch Me If You Can', 344, '{2624,9600,2687,9663}'), +(482, 'Rat a Tat Tat', 345, '{2880,5056,2943,5119}'), +(489, 'Bubble and Squeak', 347, '{1920,4672,1983,4735}'), +(490, 'Sarim\'s Vermin', 348, '{2944,9600,3007,9663}'), +(491, 'Rat Hunt', 349, '{2816,5056,2879,5119}'), +(496, 'The Trade Parade', 555, '{3136,3456,3199,3519}'), +(497, 'Aye Car Rum Ba', 351, '{2112,5056,2175,5119}'), +(498, 'Blistering Barnacles', 352, '{2112,5120,2175,5183}'), +(501, 'Distant Land', 353, '{3456,3136,3519,3199}'), +(505, 'Pharaoh\'s Tomb', 355, '{3328,2816,3391,2879}-{3008,4672,3071,4735}'), +(511, 'In the Clink', 360, '{2048,4416,2111,4479}'), +(515, 'Mudskipper Melody', 361, '{2944,3072,3007,3135}'), +(517, 'Subterranea', 362, '{2496,10112,2559,10175}'), +(524, 'Xenophobe', 366, '{1856,4352,1919,4415}-{2880,4416,2943,4479}'), +(528, 'Victory is Mine', 368, '{3136,9728,3199,9791}'), +(529, 'Woe of the Wyvern', 369, '{3008,9536,3071,9599}'), +(530, 'In the Brine', 370, '{3648,2944,3711,3007}'), +(532, 'Diango\'s Little Helpers', 371, '{1984,4416,2047,4479}'), +(542, 'Lament', 381, '{3072,9280,3135,9343}'), +(544, 'Making Waves', 378, '{2304,3648,2367,3711}-{2304,3584,2367,3647}'), +(569, 'Undead Army', 607, '{3200,9984,3263,10047}'), +(573, 'The Mad Mole', 393, '{1728,5120,1791,5183}'), +(575, 'Chickened Out', 395, '{2432,4352,2495,4415}'), +(576, 'Davy Jones\'s Locker', 394, '{2944,9472,3007,9535}'), +(583, 'Chef Surprize', 399, '{1856,5312,1919,5375}'), +(586, 'Everlasting Fire', 417, '{3328,3904,3391,3967}'), +(587, 'Null and Void', 400, '{2624,2624,2687,2687}'), +(588, 'Pest Control', 401, '{2624,2560,2687,2623}'), +(594, 'No Way Out', 403, '{3264,9792,3327,9855}-{3072,5184,3135,5247}-{3008,5184,3071,5247}'), +(603, 'Funny Bunnies', 406, '{2432,5248,2495,5311}'), +(612, 'Head to Head', 411, '{1856,5120,1919,5183}'), +(634, 'Warriors\' Guild', 423, ''), +(964, 'Too Many Cooks...', 398, '{2944,9856,3007,9919}'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `npc_configs` +-- + +CREATE TABLE `npc_configs` ( + `id` int(11) UNSIGNED NOT NULL, + `name` varchar(40) NOT NULL DEFAULT '', + `examine` varchar(200) DEFAULT NULL, + `lifepoints` int(11) DEFAULT 10, + `attack_level` int(11) DEFAULT 1, + `strength_level` int(11) DEFAULT 1, + `defence_level` int(11) DEFAULT 1, + `range_level` int(11) DEFAULT 1, + `magic_level` int(11) DEFAULT NULL, + `bonuses` varchar(100) DEFAULT NULL, + `poison_amount` int(11) DEFAULT NULL, + `poison_immune` tinyint(1) DEFAULT NULL, + `respawn_delay` int(11) DEFAULT NULL, + `attack_speed` int(11) DEFAULT NULL, + `movement_radius` int(11) DEFAULT NULL, + `agg_radius` int(11) DEFAULT NULL, + `melee_animation` int(11) DEFAULT NULL, + `defence_animation` int(11) DEFAULT NULL, + `death_animation` int(11) DEFAULT NULL, + `spawn_animation` int(11) DEFAULT NULL, + `magic_animation` int(11) DEFAULT NULL, + `range_animation` int(11) DEFAULT NULL, + `start_gfx` int(11) DEFAULT NULL, + `projectile` int(11) DEFAULT NULL, + `end_gfx` int(11) DEFAULT NULL, + `weakness` int(11) DEFAULT NULL, + `slayer_task` int(11) DEFAULT NULL, + `slayer_exp` int(11) DEFAULT NULL, + `combat_style` int(11) DEFAULT NULL, + `poisonous` tinyint(1) DEFAULT NULL, + `aggressive` tinyint(1) DEFAULT NULL, + `start_height` int(11) DEFAULT NULL, + `prj_height` int(11) DEFAULT NULL, + `end_height` int(11) DEFAULT NULL, + `clue_level` int(11) DEFAULT NULL, + `spell_id` int(11) DEFAULT NULL, + `combat_audio` varchar(50) DEFAULT NULL, + `protect_style` int(11) DEFAULT NULL, + `force_talk` varchar(100) DEFAULT NULL, + `safespot` tinyint(1) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- +-- Dumping data for table `npc_configs` +-- + +INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES +(0, 'Hans', 'An expert on axes.', 12, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 422, 404, 9055, NULL, 422, 422, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(1, 'Man', 'One of 2009Scape citizens.', 10, 3, 1, 3, 1, NULL, NULL, NULL, NULL, 18, 5, NULL, NULL, 422, 404, 9055, NULL, 422, 422, NULL, NULL, NULL, 9, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,513,512', NULL, NULL, NULL), +(2, 'Man', 'One of 2009Scape many citizens.', 10, 3, 1, 3, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 422, 404, 9055, NULL, 422, 422, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,513,512', NULL, NULL, NULL), +(3, 'Man', 'One of 2009Scape citizens.', 10, 3, 1, 3, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 422, 404, 9055, NULL, 422, 422, NULL, NULL, NULL, 9, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,513,512', NULL, NULL, NULL), +(4, 'Woman', 'One of 2009Scape citizens.', 10, 3, 1, 3, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 422, 404, 9055, NULL, 422, 422, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,506,505', NULL, NULL, NULL), +(5, 'Woman', 'One of 2009Scape citizens.', 10, 3, 1, 3, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 422, 404, 9055, NULL, 422, 422, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,506,505', NULL, NULL, NULL), +(6, 'Woman', 'One of RuneScape\'s many citizens.', 4, 3, 1, 3, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,506,505', NULL, NULL, NULL), +(7, 'Farmer', 'He grows the crops in this area.', 7, 5, 5, 5, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(8, 'Thief', 'Known for his light-fingered qualities.', 14, 10, 10, 10, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(9, 'Guard', 'He tries to keep order around here.', 18, 13, 13, 13, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 386, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(10, 'Schoolgirl', 'She looks happy.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(11, 'Tramp', 'A man down on his luck.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(12, 'Barbarian', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(13, 'Wizard', 'Slightly magical.', 14, 1, 1, 12, 1, 21, '23,7,8,2,1,8,12,0,0,0,0,0,0,0,0', NULL, NULL, 12, NULL, NULL, NULL, 2791, 404, 9055, NULL, 2791, 2791, 2728, 2729, 2737, 3, NULL, 0, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(14, 'Druid', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(15, 'Warrior woman', 'Not very fashion conscious.', 44, 31, 31, 31, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 386, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(16, 'Man', 'One of the citizens of Al Kharid.', 4, 3, 3, 3, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,513,512', NULL, NULL, NULL), +(18, 'Al-Kharid warrior', 'Parts of Al-Kharid\'s elite fighting force.', 19, 7, 15, 5, 1, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 390, 387, 836, NULL, 390, 390, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(19, 'White Knight', 'Shiny armour!', 35, 25, 25, 25, 1, NULL, NULL, NULL, NULL, 60, 8, NULL, NULL, 7042, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(20, 'Paladin', NULL, 66, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 390, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(21, 'Hero', 'Heroic!', 52, 37, 37, 37, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(23, 'Knight of Ardougne', 'A member of Ardougne\'s militia.', 54, 38, 38, 38, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(24, 'Man', 'One of RuneScape\'s many citizens.', 4, 3, 3, 3, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,513,512', NULL, NULL, NULL), +(25, 'Woman', 'One of RuneScape\'s many citizens.', 4, 3, 3, 3, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,506,505', NULL, NULL, NULL), +(26, 'Knight of Ardougne', 'To protect and serve the populace of Ardougne.', 54, 38, 38, 38, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 390, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(27, 'Archer', 'Good with arrows.', 50, 1, 1, 24, 28, NULL, '54,57,78,72,67,81,54,15,15,0,0,0,0,0,0', NULL, NULL, 12, NULL, NULL, NULL, 426, 404, 9055, NULL, 426, 426, 19, 10, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(28, 'Zoo keeper', 'Enjoys locking up animals in small pens.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(29, 'Chuck', 'What restful music!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(30, 'Barman', 'What restful music!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(31, 'Priest', 'A holy man.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(32, 'Guard', 'Keeps the peace... kind of.', 18, 13, 13, 13, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 401, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(34, 'Watchman', 'Watches stuff. But who watches him?', 28, 20, 20, 20, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(35, 'Soldier', 'A soldier of the town of Yanille.', 32, 23, 23, 23, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(36, 'Wyson the gardener', 'The head gardener.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(37, 'Sigbert the Adventurer', 'A bold knight famed for his travels.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(38, 'Shipyard worker', 'Builds ships for a living.', 28, 20, 20, 20, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(39, 'Shipyard worker', 'Builds ships for a living.', 28, 20, 20, 20, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 401, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(40, 'Shark', 'Let\'s not go skinny dipping eh?', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(41, 'Chicken', 'Who are you calling chicken?', 3, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 18, 6, NULL, NULL, 5387, 5388, 5389, NULL, 5387, 5387, NULL, NULL, NULL, 9, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '355,357,356', NULL, NULL, NULL), +(42, 'Sheep', 'Freshly sheared.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(43, 'Sheep', 'White and fluffy.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(44, 'Banker', 'He can look after my money.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(45, 'Banker', 'She can look after my money.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(46, 'Duck', 'Quackers.', 1, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 0, 0, 3468, NULL, 0, 0, NULL, NULL, NULL, 8, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(47, 'Rat', 'A popular dwarven delicacy.', 2, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 2705, 2706, 2707, NULL, 2705, 2705, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '3102,3104,3103', NULL, NULL, NULL), +(48, 'Oomlie bird', 'A jungle version of the chicken', 91, 64, 64, 64, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5387, 0, 5389, NULL, 0, 0, NULL, NULL, NULL, 9, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(49, 'Hellhound', 'Hello, nice doggy...', 115, 45, 103, 30, 1, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 6562, 6563, 6564, NULL, 6562, 6562, NULL, NULL, NULL, 1, 43, 116, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, '3717,3719,3718', NULL, NULL, NULL), +(50, 'King Black Dragon', 'The biggest, meanest dragon around.', 240, 60, 60, 60, 60, 60, '93,82,178,86,300,50,453,428,350,280,250,134,90,134,219', NULL, NULL, 50, NULL, NULL, 64, 80, 89, 92, NULL, 80, 80, NULL, NULL, NULL, 4, 9, 200, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '408,410,409', NULL, NULL, NULL), +(51, 'Baby dragon', 'A dragon covered in frost and ice.', 160, 102, 103, 112, 80, 116, '124,130,137,184,176,128,168,145,104,54,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '408,410,409', NULL, NULL, NULL), +(52, 'Baby blue dragon', 'Young but still dangerous.', 51, 45, 45, 48, 45, 45, '49,45,43,50,73,71,56,78,68,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3, 11, 108, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '408,410,409', NULL, NULL, NULL), +(53, 'Red dragon', 'A big powerful dragon.', 145, 60, 60, 60, 60, 60, '35,35,90,120,120,50,120,90,85,0,0,0,0,0,0', NULL, NULL, 35, NULL, NULL, NULL, 80, 89, 92, NULL, 80, 80, NULL, NULL, NULL, 3, 68, NULL, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '408,410,409', NULL, NULL, NULL), +(54, 'Black dragon', 'A fierce dragon with black scales!', 190, 72, 72, 72, 72, 72, '60,50,110,220,220,90,180,200,100,0,0,0,0,0,0', NULL, NULL, 35, NULL, NULL, NULL, 80, 89, 92, NULL, 80, 80, NULL, NULL, NULL, 3, 9, 200, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '408,410,409', NULL, NULL, NULL), +(55, 'Blue dragon', 'A mother dragon.', 105, 53, 53, 53, 53, 53, '40,35,75,120,120,50,120,90,35,0,0,0,0,0,0', NULL, NULL, 35, NULL, NULL, NULL, 80, 89, 92, NULL, 80, 80, NULL, NULL, NULL, 3, 11, 108, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '408,410,409', NULL, NULL, NULL), +(56, 'Dryad', 'Are they working hard or hardly working?', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(58, 'Shadow spider', 'Is it a spider or is it a shadow?', 47, 1, 1, 33, 33, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5327, 0, 5329, NULL, 0, 0, NULL, NULL, NULL, 2, 76, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '537,539,538', NULL, NULL, NULL), +(59, 'Giant spider', 'I think this spider has been magically modified.', 2, 1, 1, 2, 2, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5327, 0, 5329, NULL, 0, 0, NULL, NULL, NULL, 2, 76, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '537,539,538', NULL, NULL, NULL), +(60, 'Giant spider', 'I think this spider has been genetically modified.', 32, 19, 18, 21, 24, NULL, '12,15,12,24,12,16,18,24,23,14,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, 5327, 5328, 5329, NULL, 5327, 5327, NULL, NULL, NULL, 2, 76, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '537,539,538', NULL, NULL, NULL), +(61, 'Spider', 'Incey wincey.', 1, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6249, 0, 6251, NULL, 0, 0, NULL, NULL, NULL, 2, 76, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(62, 'Jungle spider', 'A barely visible deadly jungle spider.', 50, 40, 40, 40, 62, 40, '20,50,25,45,45,15,25,0,0,0,0,0,0,0,0', NULL, 1, 25, 5, NULL, NULL, 5327, 5328, 5329, NULL, 5327, 5327, NULL, NULL, NULL, 2, 76, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '537,539,538', NULL, NULL, NULL), +(63, 'Deadly red spider', 'I think this spider has been magically modified.', 35, 20, 20, 68, 68, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 5327, 5328, 5329, NULL, 5327, 5327, NULL, NULL, NULL, 2, 76, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '537,539,538', NULL, NULL, NULL), +(64, 'Ice spider', 'I think this spider has been magically modified.', 42, 1, 1, 30, 30, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5327, 0, 5329, NULL, 0, 0, NULL, NULL, NULL, 2, 76, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '537,539,538', NULL, NULL, NULL), +(66, 'Gnome', 'Test NPC!', 10, 99, 99, 99, 99, 99, '105,23,-32,23,274,287,265,316,35,149,130,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, 422, 404, 9055, NULL, 422, 422, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(73, 'Zombie', NULL, 20, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5567, 5568, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(74, 'Zombie', 'Examine not added', 18, 10, 1, 16, 1, NULL, '10,15,16,16,15,16,16,10,10,16,15,15,15,15,15', NULL, NULL, 30, 5, NULL, NULL, 5578, 5579, 5580, NULL, 5578, 5578, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(75, 'Zombie', NULL, 20, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5571, 5574, 5575, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(76, 'Zombie', 'It\'s an NPC.', 30, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5571, 5574, 5575, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(77, 'Summoned Zombie', 'The living dead.', 12, 9, 9, 9, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5568, 0, 5569, NULL, 0, 0, NULL, NULL, NULL, 9, 93, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(78, 'Giant bat', 'An annoying flappy thing.', 32, 1, 1, 32, 1, 32, NULL, NULL, NULL, NULL, 6, NULL, NULL, 4915, 4916, 4917, NULL, 4915, 4915, NULL, NULL, NULL, 4, 5, 8, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(79, 'Death wing', 'A shadowy', 78, 1, 1, 55, 1, 55, NULL, NULL, NULL, 60, NULL, NULL, NULL, 4915, 0, 4917, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(80, 'Camel', 'Oh', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(81, 'Cow', 'Converts grass to beef.', 8, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 5849, 5850, 5851, NULL, 5849, 5849, NULL, NULL, NULL, 8, 20, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '369,371,370', NULL, NULL, NULL), +(82, 'Lesser demon', 'Lesser, but still pretty big.', 79, 50, 50, 50, 1, 50, '15,15,15,15,15,15,15,15,15,3,15,15,23,15,15', NULL, NULL, 20, 6, NULL, NULL, 4630, 65, 67, NULL, 4630, 4630, NULL, NULL, NULL, 4, 56, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '400,404,403', NULL, NULL, NULL), +(83, 'Greater demon', 'Big, red, and incredibly evil.', 87, 59, 59, 59, 59, 59, '30,20,20,30,20,50,50,50,10,50,20,0,0,0,0', NULL, NULL, 32, 5, NULL, NULL, 64, 65, 68, NULL, 64, 64, NULL, NULL, NULL, 4, 40, 87, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '400,404,403', NULL, NULL, NULL), +(84, 'Black demon', 'A big, scary, jet-black demon.', 165, 70, 70, 70, 70, 70, '45,40,40,150,150,80,150,20,150,68,0,0,0,0,0', NULL, NULL, 38, NULL, NULL, NULL, 64, 65, 67, NULL, 64, 64, NULL, NULL, NULL, 4, 8, 157, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '400,404,403', NULL, NULL, NULL), +(86, 'Giant rat', 'Overgrown vermin.', 10, 5, 5, 5, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 4933, 4934, 4935, NULL, 4933, 4933, NULL, NULL, NULL, 8, 67, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(87, 'Giant rat', 'Overgrown vermin.', 10, 7, 7, 7, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 4933, 4934, 4935, NULL, 0, 0, NULL, NULL, NULL, 8, 67, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(88, 'Dungeon rat', 'Overgrown vermin.', 18, 13, 13, 13, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, 0, 4935, NULL, 0, 0, NULL, NULL, NULL, 8, 67, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(89, 'Unicorn', 'Horse with a horn.', 19, 8, 8, 8, 1, 10, NULL, NULL, NULL, 32, 5, NULL, NULL, 6376, 6375, 6377, NULL, 6376, 6376, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '496,498,497', NULL, NULL, NULL), +(90, 'Skeleton', 'Could do with gaining a few pounds.', 29, 11, 11, 10, 1, NULL, NULL, NULL, NULL, 32, 6, NULL, NULL, 5485, 5489, 5491, NULL, 5485, 5485, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(91, 'Skeleton', 'Could do with gaining a few pounds.', 24, 11, 11, 1, 1, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 5485, 5489, 5491, NULL, 5485, 5485, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(92, 'Skeleton', 'Could do with gaining a few pounds.', 17, 12, 12, 23, 1, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 5485, 5489, 5491, NULL, 5485, 5485, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(93, 'Skeleton', 'Could do with gaining a few pounds.', 59, 23, 23, 42, 1, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 5485, 5489, 5491, NULL, 5485, 5485, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(94, 'Skeleton Mage', 'An undead worker of dark magic.', 20, 1, 1, 14, 1, 14, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5487, 0, 5491, NULL, 0, 5523, NULL, NULL, NULL, 3, 75, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(95, 'Wolf', NULL, 69, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6559, NULL, 6558, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 69, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '481,491,490', NULL, NULL, NULL), +(96, 'White wolf', 'A vicious mountain wolf.', 35, 22, 6, 22, 1, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 6579, 6578, 6576, NULL, 6579, 6579, NULL, NULL, NULL, 9, 92, 34, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(97, 'White wolf', 'A vicious mountain wolf.', 44, 22, 22, 22, 1, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 6579, 6578, 6576, NULL, 6579, 6579, NULL, NULL, NULL, 7, 92, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(98, 'Dog', 'Bow wow.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, 27, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(99, 'Guard dog', 'He doesn\'t seem pleased to see me.', 49, 30, 30, 30, 1, NULL, '5,10,5,5,1,5,5,5,5,5,5,25,0,0,0', NULL, NULL, 15, 5, NULL, NULL, 6562, 6563, 6564, NULL, 6562, 6562, NULL, NULL, NULL, 7, 27, 49, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(100, 'Goblin', 'An ugly green creature.', 5, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(101, 'Goblin', 'An ugly green creature.', 10, 3, 2, 3, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(102, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(103, 'Ghost', 'Eeek a ghost!', 13, 6, 7, 6, 1, 18, '2,2,2,2,2,2,2,2,2,2,2,2,90,2,2', NULL, NULL, 20, 5, NULL, NULL, 5540, 5541, 5542, NULL, 5540, 5540, NULL, NULL, NULL, 5, 36, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(104, 'Ghost', 'Eeek! A ghost!', 25, 1, 1, 18, 1, 18, NULL, NULL, NULL, 60, 5, NULL, NULL, 5532, 0, 5534, NULL, 0, 0, NULL, NULL, NULL, 5, 36, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(105, 'Grizzly bear', 'Eek! A bear!', 32, 23, 23, 23, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 4925, 0, 4929, NULL, 0, 0, NULL, NULL, NULL, 7, 6, 27, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '498,500,499', NULL, NULL, NULL), +(106, 'Black bear', 'Eek! A bear!', 24, 17, 17, 17, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 4925, 0, 4929, NULL, 0, 0, NULL, NULL, NULL, 7, 6, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '498,500,499', NULL, NULL, NULL), +(107, 'Scorpion', NULL, 17, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6254, 6255, 6256, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 17, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '3611,3612,3610', NULL, NULL, NULL), +(108, 'Poison Scorpion', 'It has a very vicious looking tail.', 17, 1, 1, 35, 35, NULL, NULL, 3, NULL, 60, NULL, NULL, NULL, 6254, 6255, 6256, NULL, 0, 0, NULL, NULL, NULL, 0, 71, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, '3611,3612,3610', NULL, NULL, NULL), +(109, 'Pit Scorpion', 'Tiny', 57, 1, 1, 40, 40, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6254, 6255, 6256, NULL, 0, 0, NULL, NULL, NULL, 0, 71, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '3611,3612,3610', NULL, NULL, NULL), +(110, 'Fire giant', 'A very large elemental adversary.', 111, 60, 60, 60, 60, NULL, '20,20,20,20,20,20,20,20,20,20,20,20,39,20,20', NULL, NULL, 20, 5, NULL, NULL, 4666, 4664, 4668, NULL, 4666, 4666, NULL, NULL, NULL, 1, 33, 111, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '449,451,450', NULL, NULL, NULL), +(111, 'Ice giant', 'He\'s got icicles in his beard.', 105, 37, 37, 37, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 4672, 0, 4673, NULL, 0, 0, NULL, NULL, NULL, 9, 47, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '449,451,450', NULL, NULL, NULL), +(112, 'Moss giant', 'His beard seems to have a life of its own.', 60, 37, 37, 20, 37, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4666, 4665, 4668, NULL, 4666, 4666, NULL, NULL, NULL, 1, 62, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '449,451,450', NULL, NULL, NULL), +(113, 'Jogre', 'An aggressive humanoid.', 50, 41, 1, 41, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 128, 129, 131, NULL, 128, 128, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(114, 'Mogre', 'Big, ugly, and smelly.', 60, 27, 27, 27, 27, 27, '15,15,10,20,40,15,50,50,50,20,50,58,0,0,0', NULL, NULL, 25, 6, NULL, NULL, 359, 360, 361, NULL, 359, 359, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(115, 'Ogre', 'Big, ugly, and smelly.', 60, 27, 27, 27, 27, 27, '15,15,10,20,40,15,50,50,50,20,50,58,0,0,0', NULL, NULL, 25, 6, NULL, NULL, 359, 360, 361, NULL, 359, 359, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(116, 'Cyclops', 'Big, ugly, and smelly.', 60, 27, 27, 27, 27, 27, '15,15,10,20,40,15,50,50,50,20,50,58,0,0,0', NULL, NULL, 25, 6, NULL, NULL, 359, 360, 361, NULL, 359, 359, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(117, 'Hill Giant', 'A very large foe.', 35, 15, 20, 20, 1, 10, '18,18,18,18,15,20,35,30,25,18,18,18,30,18,18', NULL, NULL, 30, 5, NULL, NULL, 4652, 4651, 4653, NULL, 4652, 4652, NULL, NULL, NULL, 6, 44, 35, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(118, 'Dwarf', 'A short angry guy.', 10, 7, 7, 7, 1, NULL, NULL, NULL, NULL, 60, 7, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 6, 29, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(119, 'Chaos dwarf', 'A dwarf gone bad.', 48, 34, 34, 34, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 6, 29, 16, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(120, 'Dwarf', 'A mountain dwelling short angry guy.', 40, 28, 28, 28, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 6, 29, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(121, 'Dwarf', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(122, 'Hobgoblin', 'An ugly smelly creature.', 29, 20, 10, 3, 20, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 164, 165, 167, NULL, 164, 164, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(123, 'Hobgoblin', 'An ugly smelly creature.', 29, 20, 10, 1, 20, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 164, 165, 167, NULL, 164, 164, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(124, 'Earth warrior', 'A strange', 54, 56, 56, 56, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 393, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, 30, 54, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(125, 'Ice warrior', 'A cold-hearted elemental warrior.', 59, 39, 39, 39, 1, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 451, 404, 843, NULL, 451, 451, NULL, NULL, NULL, 9, 48, 59, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(126, 'Otherworldly being', 'Looks pretty otherworldly to me!', 64, 1, 1, 45, 1, 45, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 5, 65, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(127, 'Magic axe', 'A magic axe with a mind of its own.', 75, 53, 53, 53, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 185, 0, 188, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(128, 'Snake', 'A slithering serpent.', 5, 4, 4, 4, 1, NULL, NULL, NULL, NULL, 30, 5, NULL, NULL, 275, 0, 278, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '3609,3608,3610', NULL, NULL, NULL), +(131, 'Penguin', 'An inhabitant of icy regions.', 8, 6, 6, 6, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5669, 0, 5671, NULL, 0, 0, NULL, NULL, NULL, 9, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(132, 'Monkey', 'Perhaps our oldest relatives?', 8, 6, 6, 6, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 220, 0, 223, NULL, 0, 0, NULL, NULL, NULL, 8, 61, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(133, 'Black unicorn', 'A unicorn with a blackened heart.', 28, 15, 10, 15, 1, 24, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6376, 6375, 6377, NULL, 6376, 6376, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '496,498,497', NULL, NULL, NULL), +(134, 'Poison spider', 'I think this spider has been magically modified.', 64, 1, 1, 45, 45, NULL, NULL, 6, NULL, 60, 5, NULL, NULL, 5327, 0, 5329, NULL, 0, 0, NULL, NULL, NULL, 2, 76, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, '537,539,538', NULL, NULL, NULL), +(137, 'Terrorchick gnome', 'Aaw', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(138, 'Terrorbird', 'A giant raptor.', 42, 30, 30, 30, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1010, 0, 1013, NULL, 0, 0, NULL, NULL, NULL, 6, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(139, 'Terrorbird', NULL, 34, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1010, 1012, 1013, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(140, 'Souless', 'A servant to Iban.', 47, 33, 33, 33, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 338, 0, 340, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(141, 'Big Wolf', 'Must be the pack leader.', 44, 31, 31, 31, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6559, 0, 6558, NULL, 0, 0, NULL, NULL, NULL, 7, 92, 74, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(142, 'Wolf', NULL, 69, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6559, NULL, 6558, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 34, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '481,491,490', NULL, NULL, NULL), +(143, 'Jungle Wolf', 'A rare jungle wolf - specific to the Kharazi jungle.', 90, 63, 63, 63, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6559, 0, 6558, NULL, 0, 0, NULL, NULL, NULL, 7, 92, 69, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(144, 'King Scorpion', 'Wow! Scorpions shouldn\'t grow that big.', 40, 21, 21, 28, 28, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 6254, 0, 6256, NULL, 0, 0, NULL, NULL, NULL, 2, 71, 17, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '3611,3612,3610', NULL, NULL, NULL), +(145, 'Ice warrior', 'A cold-hearted elemental warrior.', 59, 39, 1, 39, 1, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 451, 404, 843, NULL, 451, 451, NULL, NULL, NULL, NULL, NULL, 59, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(146, 'Gull', 'A sea bird.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(147, 'Cormorant', 'A sea bird.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(148, 'Pelican', 'A sea bird.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(153, 'Butterfly', 'These look much better in the wild.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(154, 'Butterfly', 'I love butterflies.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(158, 'Shadow warrior', 'A fighter from the supernatural world. He\'s a shadow of his former self.', 67, 47, 47, 47, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 394, 0, 843, NULL, 0, 0, NULL, NULL, NULL, 6, 74, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(159, 'Gnome child', 'Small', 1, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 191, 0, 196, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(160, 'Gnome child', 'Seems to crawl the caves.', 21, 23, 23, 23, 1, NULL, '4,4,4,4,4,4,4,4,4,4,4,4,4,4,4', NULL, NULL, NULL, 5, NULL, NULL, 266, 267, 265, NULL, 266, 266, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(161, 'Gnome child', 'Small', 1, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 191, 0, 196, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(162, 'Gnome trainer', 'He can advise on training.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(163, 'Gnome guard', 'A tree gnome guard.', 54, 38, 38, 38, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1218, 0, 1224, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(164, 'Gnome guard', 'A tree gnome guard.', 54, 38, 38, 38, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 192, 0, 196, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(168, 'Gnome woman', 'A female gnome.', 42, 30, 30, 30, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 191, 0, 196, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(169, 'Gnome woman', 'A female gnome.', 42, 30, 30, 30, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 191, 0, 196, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(170, 'Man', 'One of RuneScape\'s many citizens', 4, 3, 3, 3, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,513,512', NULL, NULL, NULL), +(172, 'Dark wizard', 'A practicer of dark arts.', 24, 1, 1, 27, 1, 27, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 710, 0, NULL, NULL, NULL, 4, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(173, 'Invrigar the Necromancer', 'An evil user of Magic powers', 42, 1, 1, 30, 1, 30, NULL, NULL, NULL, 60, 5, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(174, 'Dark wizard', 'He works evil magic.', 12, 1, 1, 24, 1, 24, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 710, 0, NULL, NULL, NULL, 4, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(175, 'Mugger', 'He jumps out and attacks people.', 15, 11, 11, 11, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, 2, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(176, 'Witch', 'The hat\'s a dead give away.', 31, 1, 1, 22, 1, 22, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 423, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(178, 'Black Knight', 'A dark-hearted knight.', 31, 22, 22, 22, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(179, 'Black Knight', NULL, 42, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 390, 388, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(180, 'Highwayman', 'He holds up passers by.', 13, 8, 8, 8, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 799, 404, 9055, NULL, 799, 799, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(181, 'Chaos druid', 'A crazy, evil druid.', 20, 20, 20, 10, 10, 20, NULL, NULL, NULL, NULL, 5, NULL, NULL, 422, 404, 9055, NULL, 422, 422, 105, 106, 107, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(182, 'Pirate', NULL, 20, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(183, 'Pirate', NULL, 20, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(184, 'Pirate', NULL, 23, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(185, 'Pirate', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(186, 'Thug', 'Low on brains', 20, 14, 14, 14, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 386, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(187, 'Rogue', 'Rogueish.', 10, 7, 7, 7, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 386, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(188, 'Monk of Zamorak', 'An evil human cleric.', 44, 1, 1, 31, 1, 31, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(189, 'Monk of Zamorak', 'An evil human cleric.', 47, 1, 1, 33, 1, 33, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(190, 'Monk of Zamorak', 'An evil human cleric.', 55, 1, 1, 39, 1, 39, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(191, 'Tribesman', 'A primitive warrior.', 61, 43, 43, 43, 1, NULL, NULL, 11, NULL, NULL, NULL, NULL, NULL, 428, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(192, 'Dark warrior', 'A warrior of Darkness.', 10, 10, 10, 10, 1, NULL, '1,1,1,1,1,1,1,1,1,1,1,1,1,1,1', NULL, NULL, 20, 5, NULL, NULL, NULL, 388, 9055, NULL, NULL, NULL, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(193, 'Chaos druid warrior', 'A crazy evil druid.', 67, 47, 47, 47, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 401, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(194, 'Necromancer', 'A crazy evil necromancer.', 40, 1, 1, 28, 1, 28, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(196, 'Guard Bandit', 'Bandit Camp guard.', 28, 1, 1, 20, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 386, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(198, 'Guildmaster', 'Master of the Champions\' Guild.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(199, 'Gunthor the Brave', 'A mighty warrior!', 41, 29, 29, 29, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 395, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(201, 'Jailer', 'Guards prisoners for the black knights.', 40, 28, 28, 28, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(202, 'Black Heather', 'Has a fearsome scowl.', 40, 28, 28, 28, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(203, 'Donny the Lad', 'Has a fearsome posture.', 40, 28, 28, 28, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(204, 'Speedy Keith', 'Nice hair.', 40, 28, 28, 28, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(205, 'Salarin the Twisted', 'A crazy evil druid.', 70, 58, 58, 62, 1, NULL, '45,50,43,55,39,31,19,28,33,22,22,15,13,9,8', NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(206, 'Guard', 'A dwarven guard.', 17, 12, 12, 12, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 6, 29, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(208, 'Captain Lawgof', 'The head honcho around here.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(210, 'Grail Maiden', 'She looks serene.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(212, 'King Percival', 'A former Knight of the Round Table.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(214, 'Peasant', 'He looks unhappy...', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(216, 'High Priest', 'High Priest of Entrana.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(219, 'Fisherman', 'It\'s a fisherman.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(220, 'The Fisher King', 'He doesn\'t look very well...', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(221, 'Black Knight Titan', 'He looks mean and powerful.', 71, 20, 20, 20, 20, 20, NULL, NULL, NULL, 60, NULL, NULL, NULL, 128, 0, 131, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(222, 'Monk', 'A holy man.', 14, 7, 7, 10, 1, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(223, 'Brother Kojo', 'A peaceful monk.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(224, 'Dungeon rat', 'A dirty rat.', 11, 8, 8, 8, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 4933, 0, 4935, NULL, 0, 0, NULL, NULL, NULL, 9, 67, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(230, 'Grandpa Jack', 'He looks elderly.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(231, 'Forester', 'He likes to cut down trees.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(233, 'Fishing spot', 'I can fish here.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(237, 'Renegade Knight', 'He isn\'t very friendly.', 42, 15, 15, 15, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6489, 0, 6490, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(238, 'Thrantax the Mighty', 'A terrifying spirit.', 142, 50, 50, 50, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5540, 0, 5542, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(246, 'Teapotspout', 'Specialist meat transporter.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 2301, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(247, 'Sir Mordred', NULL, 50, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6489, 6488, 6490, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(251, 'King Arthur', 'Legendary King of the Britons.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(253, 'Khazard Guard', 'He\'s guarding the door.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(254, 'Khazard Guard', 'He\'s been guarding the tavern for a bit too long.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(255, 'Khazard Guard', 'His armour indicates he\'s a Khazard Guard.', 31, 22, 22, 22, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 395, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(256, 'Khazard Guard', 'His armour indicates he\'s a Khazard Guard.', 31, 22, 22, 22, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 395, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES +(262, 'Fightslave', 'A slave fighter. He looks mistreated and weak.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(269, 'Bouncer', NULL, 116, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6581, 6578, 6576, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(270, 'Khazard Ogre', 'Khazard\'s strongest ogre warrior.', 65, 46, 46, 46, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2100, 0, 8576, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(271, 'Khazard Scorpion', 'A large', 51, 27, 27, 36, 36, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6254, 0, 6256, NULL, 0, 0, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '3611,3612,3610', NULL, NULL, NULL), +(274, 'Guardian of Armadyl', 'A guard who has devoted their life to Armadyl.', 42, 30, 30, 30, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(275, 'Guardian of Armadyl', 'A guard who has devoted their life to Armadyl.', 42, 30, 30, 30, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(277, 'Fire Warrior of Lesarkus', 'Intimidating!', 78, 55, 55, 55, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 0, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(278, 'Cook', 'Lumbridge Castle\'s head cook.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(279, 'Brother Omad', 'An old monk.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(280, 'Brother Cedric', 'An old drunk monk.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(281, 'Monk', 'An Ardougne Monk.', 5, 4, 4, 4, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(282, 'Thief', 'A dastardly blanket thief.', 21, 15, 15, 15, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 386, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(283, 'Head Thief', 'The head of the treacherous blanket stealing gang.', 25, 18, 18, 18, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(284, 'Doric', 'A dwarf smith. Quite handy with a hammer.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(285, 'Veronica', 'She doesn\'t look too happy.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(288, 'Chicken', 'Who are you calling chicken?', 3, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 18, 6, NULL, NULL, 5387, 5388, 5389, NULL, 5387, 5387, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '355,357,356', NULL, NULL, NULL), +(289, 'Councillor Halgrive', 'An official of Ardougne.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(290, 'Doctor Orbon', 'A serious-looking doctor.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(291, 'Farmer Brumty', 'A farmer who\'s seen happier times.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(296, 'Guard', 'He tries to keep order around here.', 35, 25, 25, 25, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 7218, 0, 7219, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(297, 'Guard', 'He tries to keep order around here.', 35, 25, 25, 25, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 7218, 0, 7220, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(298, 'Guard', 'He tries to keep order around here.', 35, 25, 25, 25, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 7218, 0, 7219, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(299, 'Guard', 'He tries to keep order around here.', 35, 25, 25, 25, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 583, 0, 7213, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(308, 'Master fisher', 'The man in charge of the fishing guild.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(338, 'Chancy', 'He\'s ready for a bet.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(339, 'Chancy', 'He\'s ready for a bet.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(340, 'Hops', 'He\'s drunk.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(341, 'Hops', 'He\'s drunk.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(342, 'Guidor\'s wife', 'She looks rather concerned.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(344, 'Guard', 'He tries to keep order around here.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(345, 'Guard', 'He tries to keep order around here.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(346, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(347, 'Mourner', 'A mourner', 34, 24, 24, 24, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 414, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(348, 'Mourner', 'A mourner', 34, 24, 24, 24, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(351, 'Man', 'One of RuneScape\'s many citizens.', 2, 2, 2, 2, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,513,512', NULL, NULL, NULL), +(352, 'Woman', 'One of RuneScape\'s many citizens.', 2, 2, 2, 2, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,506,505', NULL, NULL, NULL), +(353, 'Woman', 'One of RuneScape\'s many citizens.', 2, 2, 2, 2, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,506,505', NULL, NULL, NULL), +(354, 'Woman', 'One of RuneScape\'s many citizens.', 2, 2, 2, 2, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,506,505', NULL, NULL, NULL), +(355, 'Child', 'A child of West Ardougne.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(358, 'Priest', 'A holy man.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(359, 'Man', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,513,512', NULL, NULL, NULL), +(360, 'Woman', 'One of RuneScape\'s many citizens.', 2, 2, 2, 2, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,506,505', NULL, NULL, NULL), +(361, 'Woman', 'One of RuneScape\'s many citizens.', 100, 2, 2, 2, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,506,505', NULL, NULL, NULL), +(362, 'Woman', 'One of RuneScape\'s many citizens.', 2, 2, 2, 2, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,506,505', NULL, NULL, NULL), +(363, 'Woman', 'One of RuneScape\'s many citizens.', 100, 2, 2, 2, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,506,505', NULL, NULL, NULL), +(364, 'King Lathas', 'King Lathas of East Ardougne.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(365, 'Paladin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(367, 'Chemist', 'Smells very chemically...', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(368, 'Guard', 'He tries to keep order around here.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(369, 'Mourner', 'A mourner', 34, 24, 24, 24, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(373, 'Nurse Sarah', 'She\'s quite a looker!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(374, 'Ogre', 'Big, ugly, and smelly.', 60, 27, 27, 27, 27, 27, '15,15,10,20,40,15,50,50,50,20,50,58,0,0,0', NULL, NULL, 25, 6, NULL, NULL, 359, 360, 361, NULL, 359, 359, NULL, NULL, NULL, 8, 64, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(375, 'Redbeard Frank', 'A pirate.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '498,500,499', NULL, NULL, NULL), +(380, 'Customs officer', 'Inspects people\'s packages.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(382, 'Dwarf', 'A dwarf who looks after the mining guild.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(384, 'Barbarian guard', 'Not very civilised looking.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(385, 'Kharid Scorpion', 'Looks vicious!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '3611,3612,3610', NULL, NULL, NULL), +(386, 'Kharid Scorpion', 'Looks vicious!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '3611,3612,3610', NULL, NULL, NULL), +(387, 'Kharid Scorpion', 'Looks vicious!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '3611,3612,3610', NULL, NULL, NULL), +(388, 'Seer', 'Could do with a shave...', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(390, 'Big fish', 'A brightly coloured game bird.', 1, 3, 3, 3, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2371, 0, 2373, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(392, 'River troll', 'A brightly coloured game bird.', 50, 3, 3, 3, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2371, 0, 2373, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(397, 'Cow', 'Converts grass to beef.', 8, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 5849, 5850, 5851, NULL, 5849, 5849, NULL, NULL, NULL, 8, 20, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '369,371,370', NULL, NULL, NULL), +(398, 'Legends guard', 'A Legends Guild guard; he protects the entrance to the Legends Guild.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(401, 'Jungle forester', 'He deals in exotic types of wood.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(402, 'Jungle forester', 'She deals in exotic types of wood.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(411, 'Swarm', 'Insects buzzing around.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(412, 'Bat', 'Examine not added', 8, 1, 1, 2, 1, 10, NULL, NULL, NULL, 30, 5, NULL, NULL, NULL, NULL, 4918, NULL, NULL, NULL, NULL, NULL, NULL, 4, 5, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(419, 'Zombie', 'Dead man walking.', 14, 5, 5, 20, 5, 5, NULL, NULL, NULL, NULL, 5, NULL, NULL, 5578, 5574, 5575, NULL, 5578, 5578, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(420, 'Zombie', 'Dead man walking.', 14, 10, 10, 40, 10, 10, NULL, NULL, NULL, NULL, 5, NULL, NULL, 5578, 5574, 5575, NULL, 5578, 5578, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(421, 'Zombie', 'Dead man walking.', 30, 15, 15, 50, 15, 15, NULL, NULL, NULL, NULL, 5, NULL, NULL, 5578, 5574, 5575, NULL, 5578, 5578, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(422, 'Zombie', 'Dead man walking.', 79, 45, 45, 60, 45, 45, NULL, NULL, NULL, NULL, 5, NULL, NULL, 5578, 5574, 5575, NULL, 5578, 5578, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(423, 'Zombie', 'Dead man walking.', 120, 45, 45, 70, 45, 35, NULL, NULL, NULL, NULL, 5, NULL, NULL, 5578, 5574, 5575, NULL, 5578, 5578, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(424, 'Zombie', 'Dead man walking.', 159, 45, 45, 90, 45, 45, NULL, NULL, NULL, NULL, 5, NULL, NULL, 5578, 5574, 5575, NULL, 5578, 5578, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(425, 'Shade', 'Dead but not gone.', 8, 6, 6, 7, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(426, 'Shade', 'Dead but not gone.', 17, 20, 20, 30, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(427, 'Shade', 'Dead but not gone.', 28, 43, 43, 45, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(428, 'Shade', 'Dead but not gone.', 42, 74, 74, 80, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(429, 'Shade', 'Dead but not gone.', 71, 90, 90, 90, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(430, 'Shade', 'Dead but not gone.', 100, 150, 150, 105, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(435, 'Fallen Man', 'I hope he\'s not dead!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(437, 'Cap\'n Izzy No-Beard', 'Entrance clerk for the Brimhaven Agility Arena.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '498,500,499', NULL, NULL, NULL), +(444, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(445, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(446, 'Giant rat', 'Overgrown vermin.', 5, 5, 5, 2, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 4933, 4934, 4935, NULL, 0, 0, NULL, NULL, NULL, 8, 67, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(447, 'Jail guard', 'This jail\'s open for business again.', 32, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(448, 'Jail guard', 'This jail\'s open for business again.', 32, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(449, 'Jail guard', 'This jail\'s open for business again.', 32, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(453, 'Suit of armour', 'Aargh! It\'s alive!', 7, 5, 5, 5, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(456, 'Father Aereck', 'He seems to be very devout.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(457, 'Restless ghost', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(458, 'Father Urhney', 'Very holy.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(459, 'Skeleton', 'It rattles when it moves.', 14, 3, 3, 5, 1, 5, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 5523, NULL, NULL, NULL, 3, 75, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(460, 'Wizard Frumscone', 'A Wizard of the Magic Guild.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(461, 'Magic Store owner', 'A Supplier of Magical items.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(462, 'Wizard Distentor', 'Head of the Magic Guild.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(469, 'King Bolren', 'It\'s a gnome. He looks important.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(470, 'Commander Montai', 'It\'s a tree gnome.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(475, 'Khazard trooper', 'It\'s one of General Khazard\'s warriors.', 45, 32, 32, 32, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 401, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(476, 'Khazard trooper', 'An open eye of World-gorger.', 11, 1, 1, 5, 1, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, NULL, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(477, 'Khazard warlord', 'He looks real nasty', 54, 38, 38, 38, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 401, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(478, 'Khazard commander', 'It\'s one of General Khazard\'s commanders.', 50, 35, 35, 35, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 428, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(479, 'Gnome troop', 'It\'s a tree gnome trooper.', 45, 24, 24, 32, 32, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 190, 0, 196, NULL, 0, 0, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(481, 'Tracker gnome 1', 'It\'s a gnome who specialises in covert operations.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(482, 'Tracker gnome 2', 'It\'s a gnome who specialises in covert operations.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(483, 'Tracker gnome 3', 'It\'s a gnome who specialises in covert operations.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(485, 'Local Gnome', 'It\'s a young tree gnome.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(487, 'Giant', 'I guess he wants to be more than just the muscle.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(489, 'Goblin guard', 'He doesn\'t look like he\'d trust his own mother.', 28, 20, 20, 20, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6199, 0, 6190, NULL, 0, 0, NULL, NULL, NULL, 7, 38, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(490, 'Mummy', 'If the mummy is at school', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(491, 'Ghost', NULL, 20, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5540, 5541, 5542, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(492, 'Spirit of Scorpius', 'The essence of evil.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(493, 'Grave scorpion', 'A vicious', 10, 5, 5, 7, 7, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6261, 0, 6260, NULL, 0, 0, NULL, NULL, NULL, 2, 71, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '3611,3612,3610', NULL, NULL, NULL), +(494, 'Banker', 'He can look after my money.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(495, 'Banker', 'Good with money.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(498, 'Banker', 'Manages money momentarily.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(499, 'Banker', 'He can look after my money.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(502, 'Undead one', 'A minion of Rashiliyia.', 45, 32, 32, 32, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5485, 0, 5491, NULL, 0, 0, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(503, 'Undead one', 'A minion of Rashiliyia.', 47, 33, 33, 33, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5485, 0, 5491, NULL, 0, 0, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(504, 'Undead one', 'The animated dead; one of Rashiliyia\'s minions.', 45, 32, 32, 32, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5568, 0, 5569, NULL, 0, 0, NULL, NULL, NULL, 8, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(505, 'Undead one', 'The animated dead; one of Rashiliyia\'s minions.', 47, 33, 33, 33, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5571, 0, 5575, NULL, 0, 0, NULL, NULL, NULL, 8, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(507, 'Nazastarool', NULL, 100, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5571, 5574, 5575, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(508, 'Nazastarool', NULL, 75, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5507, 5508, 5509, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(509, 'Nazastarool', NULL, 110, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5532, 5533, 5534, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(518, 'Captain Shanks', 'He\'s the Captain of the \'Lady of the Waves\'.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(520, 'Shopkeeper', 'Sells stuff.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(521, 'Shop assistant', 'Helps sell stuff.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(522, 'Shopkeeper', 'Likes people spending money.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(523, 'Shop assistant', 'Likes helping sell stuff.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(524, 'Shopkeeper', 'A product of a consumerist society.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(525, 'Shop assistant', 'Likes you more', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(526, 'Shopkeeper', 'A product of a consumerist society.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(527, 'Shop assistant', 'Likes you more', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(530, 'Shopkeeper', 'Has an interesting assortment of items for sale.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(531, 'Shop assistant', 'Works on commission.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(532, 'Shopkeeper', 'Like a grave keeper', 285, 60, 60, 60, 60, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(534, 'Fairy shopkeeper', 'Sells stuff.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(535, 'Fairy shop assistant', 'Sells stuff.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(539, 'Silk trader', 'Very snappily dressed.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(540, 'Gem trader', 'Makes his money selling rocks.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(542, 'Louie Legs', 'For the finest in armoured legware.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(551, 'Shopkeeper', 'Ironically', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(552, 'Shop assistant', 'Helps the shopkeeper sell swords.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(554, 'Fancy-dress shop owner', 'For the interesting clothing items you just can\'t find elsewhere.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(555, 'Shopkeeper', 'Has a fine moustache.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(561, 'Shopkeeper', 'Could stand to lose a few pounds.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(562, 'Candle-maker', 'Has an odd smell about him.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(567, 'Fairy', 'Looks strange and mysterious.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(569, 'Silver merchant', 'Looks fairly well fed.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(570, 'Gem merchant', 'Seems very well-off.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(571, 'Baker', 'So where are the butcher and the candlestick-maker?', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(572, 'Spice seller', 'Has a very exotic aroma about him.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(573, 'Fur trader', 'Knows how to keep warm in the winter.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(574, 'Silk merchant', 'Seems very well-off.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(579, 'Drogo dwarf', 'He runs a Mining store.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(582, 'Dwarf', 'I wonder if he wants to buy my junk?', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(595, 'Tea seller', 'He seems to sell tea.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(596, 'Fat Tony', 'A pizza expert; in both making and eating.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(598, 'Hairdresser', 'Anyone fancy a trim?', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(599, 'Make-over Mage', 'Master of the mystical make-over.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(606, 'Squire', 'Indentured servant of a Knight.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(609, 'Fortress Guard', 'A generic evil henchman.', 37, 26, 26, 26, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 428, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(610, 'Black Knight Captain', 'One of the Black Knights.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(611, 'Witch', 'The Black Knights\' resident witch.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(613, 'Digsite workman', 'This person is working on the site.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(614, 'Doug Deeping', 'This person is working on the site.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(617, 'Student', 'A student busy studying the digsite.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(618, 'Examiner', 'Upon examining the examiner you examine it is indeed an examiner!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(619, 'Archaeological expert', 'An expert on archaeology.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(620, 'Panning guide', 'A specialist in panning for gold.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(621, 'Gnome baller', 'A professional gnome baller.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(633, 'Gnome winger', 'A professional gnome baller.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(635, 'Gnome ball referee', 'Keeps the game fair.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(638, 'Apothecary', 'A dealer in potions.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(640, 'Father Lawrence', 'A religious man... And occasional drunk.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(641, 'Charlie the Tramp', 'Looks down on his luck.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(643, 'Weaponsmaster', 'Looks kind of obsessive...', 42, 15, 15, 15, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(645, 'Jonny the beard', 'Looks kind of shifty...', 2, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '498,500,499', NULL, NULL, NULL), +(646, 'Curator Haig Halen', 'Curator of the museum.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(648, 'King Roald', 'Varrock\'s resident monarch.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(649, 'Archer', 'She looks quite experienced.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(650, 'Warrior', 'He looks big and dumb.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(651, 'Monk', 'He looks holy.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(652, 'Wizard', 'He looks kind of puny...', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(655, 'Tree spirit', 'Guardian of the dramen tree.', 64, 45, 45, 45, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5532, 0, 5534, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(656, 'Cave monk', 'Unsurprisingly monk like.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(657, 'Monk of Entrana', 'Holy looking.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(658, 'Monk of Entrana', 'Holy looking.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(659, 'Party Pete', 'He likes to paaaarty!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(660, 'Knight', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(663, 'Man', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,513,512', NULL, NULL, NULL), +(665, 'Boot', 'A short and angry dwarf.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(667, 'Chronozon', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 64, 65, 67, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(670, 'King Narnode Shareen', 'An important looking gnome.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(674, 'Foreman', 'The boss!', 28, 20, 20, 20, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(677, 'Black demon', 'A big, scary, jet-black demon.', 165, 70, 70, 70, 70, 70, '45,40,40,150,150,80,150,20,150,68,0,0,0,0,0', NULL, NULL, 38, NULL, NULL, NULL, 64, 65, 67, NULL, 64, 64, NULL, NULL, NULL, 7, 8, 157, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '400,404,403', NULL, NULL, NULL), +(678, 'Guard', 'Keeps order in the ranging guild.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(679, 'Ranging Guild Doorman', 'The keeper of the gates to the ranging guild.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(680, 'Leatherworker', 'An expert leatherworker.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(681, 'Held vampyre juvinate', 'Mysterious swamp lights...', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES +(682, 'Armour salesman', 'Supplier of Rangers armour.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(683, 'Bow and Arrow salesman', 'Supplier of Archery equipment.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(684, 'Tower Advisor', 'Tower keeper and competition judge.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(688, 'Tower Archer', 'Defender of the north tower.', 14, 7, 7, 10, 10, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 426, 0, 836, NULL, 0, 426, NULL, NULL, NULL, 0, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(689, 'Tower Archer', 'Defender of the east tower.', 28, 15, 15, 20, 20, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 426, 0, 836, NULL, 0, 426, NULL, NULL, NULL, 0, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(690, 'Tower Archer', 'Defender of the south tower.', 42, 22, 22, 30, 30, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 426, 0, 836, NULL, 0, 426, NULL, NULL, NULL, 0, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(691, 'Tower Archer', 'Defender of the west tower.', 57, 30, 30, 40, 40, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 426, 0, 836, NULL, 0, 426, NULL, NULL, NULL, 0, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(692, 'Tribal Weapon Salesman', 'Supplier of authentic throwing weapons.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(694, 'Ticket Merchant', 'Sells equipment in exchange for archery tickets.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(706, 'Wizard Mizgog', 'An old wizard.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(708, 'Imp', 'A cheeky little imp.', 8, 2, 2, 2, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 169, 170, 172, NULL, 169, 169, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '534,536,535', NULL, NULL, NULL), +(709, 'Imp', 'A cheeky little imp.', 8, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 169, 170, 172, NULL, 169, 169, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '534,536,535', NULL, NULL, NULL), +(713, 'Clerk', 'A bureaucratic administrator.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(714, 'Edmond', 'It\'s an NPC.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(716, 'Head mourner', 'In charge of people with silly outfits.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(720, 'Recruiter', 'A member of the Ardougne Royal Army.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(726, 'Man', 'One of RuneScape\'s many citizens.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,513,512', NULL, NULL, NULL), +(727, 'Man', 'One of RuneScape\'s many citizens.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,513,512', NULL, NULL, NULL), +(728, 'Man', 'One of RuneScape\'s many citizens.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,513,512', NULL, NULL, NULL), +(729, 'Man', 'One of RuneScape\'s many citizens.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,513,512', NULL, NULL, NULL), +(730, 'Man', 'One of RuneScape\'s many citizens.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,513,512', NULL, NULL, NULL), +(731, 'Bartender', 'I could get a beer from him.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(732, 'Bartender', 'I could get a beer from him.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(735, 'Bartender', 'I could get a beer from him.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(737, 'Bartender', 'I could get a beer from him.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(738, 'Bartender', 'I could get a beer from him.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(739, 'Bartender', 'I could get a beer from him.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(741, 'Duke Horacio', 'Duke Horacio of Lumbridge.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(742, 'Elvarg', NULL, 80, 90, 90, 1, 60, 60, NULL, NULL, NULL, 35, 5, NULL, 64, 80, 89, 4642, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(745, 'Wormbrain', 'A badly-behaved goblin.', 1, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6184, 0, 6204, NULL, 0, 0, NULL, NULL, NULL, 9, 38, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(749, 'Angry barbarian spirit', 'He looks a tad upset.', 108, 76, 76, 76, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6726, 0, 6727, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(750, 'Enraged barbarian spirit', 'He looks a tad upset.', 108, 76, 76, 76, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6726, 0, 6727, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(751, 'Berserk barbarian spirit', 'He looks a tad upset.', 108, 76, 76, 76, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6726, 0, 6727, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(752, 'Ferocious barbarian spirit', 'He looks a tad upset.', 190, 76, 76, 76, 1, NULL, '80,100,60,70,85,70,70,90,60,100,50,90,90,0,0', NULL, NULL, 60, NULL, NULL, NULL, 6726, 0, 6727, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(753, 'Melzar the Mad', 'He looks totally insane!', 40, 28, 28, 28, 28, 28, NULL, NULL, NULL, 60, NULL, NULL, NULL, 423, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(757, 'Count Draynor', 'Stop looking and run!', 4, 20, 1, 20, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 422, 404, 9055, NULL, 422, 422, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(758, 'Fred the Farmer', 'A well-fed farmer.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(767, 'Crate', NULL, 88, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 192, 194, 196, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(778, 'Overgrown cat', NULL, 66, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(785, 'Civilian', 'A citizen of Ardougne.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(786, 'Civilian', 'A citizen of Ardougne.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(787, 'Civilian', 'A citizen of Ardougne.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(790, 'Letham', 'A gnome who\'s supposed to be cleaning up a mess.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(793, 'Alfonse the waiter', 'Smartly dressed', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(794, 'Charlie the cook', 'Distinctly cook-like.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(795, 'Ice Queen', 'A cold hearted lady.', 157, 55, 55, 55, 55, 55, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(798, 'Velrak the explorer', 'He looks cold and hungry.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(799, 'Pirate Guard', 'A morally ambiguous guard.', 42, 30, 30, 30, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(800, 'Fishing spot', 'It looks like there might be eels swimming in the lava.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(801, 'Abbot Langley', 'A holy man.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(802, 'Brother Jered', 'A holy man.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(803, 'Monk', 'A holy man.', 17, 12, 12, 12, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(804, 'Tanner', 'Manufacturer of fine leathers.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(805, 'Master Crafter', 'He\'s in charge of the Crafting Guild.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(806, 'Donovan the Family Handyman', 'He looks very tired...', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(812, 'Guard', 'An officer of the Law.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(813, 'Gossip', 'One of those people who love to gossip!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(820, 'Poison Salesman', 'He sure likes to sell stuff!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(821, 'Sinclair Guard dog', 'Big', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(825, 'Male slave', 'It looks like he\'s been here a long time.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(827, 'Rowdy slave', 'He looks a bit aggressive.', 7, 5, 5, 5, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(830, 'Mercenary Captain', 'He looks a bit aggressive.', 28, 1, 1, 20, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(831, 'Captain Siad', 'He\'s in control of the whole mining camp.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(833, 'Bedabin Nomad', 'A Bedabin nomad', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(834, 'Bedabin Nomad Guard', 'A Bedabin nomad guard - it looks like he\'s protecting an area.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(837, 'Shantay Guard', 'He patrols the Shantay Pass.', 15, 11, 11, 11, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(838, 'Shantay Guard', 'He patrols the Shantay Pass.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(839, 'Desert Wolf', 'A vicious desert wolf.', 15, 11, 11, 11, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6559, 0, 6558, NULL, 0, 0, NULL, NULL, NULL, 9, 92, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(840, 'Ugthanki', NULL, 46, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, NULL, 9674, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(841, 'Mine cart driver', 'He looks busy attending to his cart.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(842, 'Rowdy Guard', 'This pickaxe has been possessed by a dwarf ancestor spirit.', 400, 40, 40, 40, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 185, 0, 188, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(843, 'RPDT employee', 'Inefficient looking.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(847, 'Head chef', 'Despite his name', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(850, 'Aluft Gianne snr.', 'The famous tree gnome chef.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(851, 'Gnome Waiter', 'He can serve you gnome food.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(852, 'Ogre chieftain', 'Tough-looking.', 331, 58, 58, 58, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 7, 64, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(856, 'Gorad', NULL, 81, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(858, 'Ogre guard', 'These ogres protect the city.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 7, 64, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(859, 'Ogre guard', 'An ogre that guards.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 7, 64, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(862, 'City guard', 'Tries to keep the peace.', 331, 58, 58, 58, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2100, 0, 8576, NULL, 0, 0, NULL, NULL, NULL, 7, 64, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(863, 'Scared skavid', 'Frightened-looking.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(864, 'Mad skavid', 'Looks mad.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(870, 'Enclave guard', 'Big and ugly looking.', 331, 58, 58, 58, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 2100, 0, 8576, NULL, 0, 0, NULL, NULL, NULL, 7, 64, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(872, 'Watchtower Wizard', 'The hat is a dead giveaway.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(873, 'Ogre trader', 'Funnily enough', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, 64, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(874, 'Ogre merchant', 'Funnily enough', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, 64, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(875, 'Ogre trader', 'Funnily enough', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, 64, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(877, 'Tower guard', 'Tries to keep the peace.', 97, 17, 17, 17, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 386, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(878, 'Colonel Radick', NULL, 71, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 395, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(879, 'Delrith', NULL, 7, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 64, 65, 67, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(884, 'Captain Rovin', 'The head of the palace guard.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(885, 'Ceril Carnillean', 'Head of the Carnillean household.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(887, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(893, 'Clivet', NULL, 25, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 811, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(894, 'Hazeel Cultist', 'A member of the Hazeel cult.', 28, 15, 15, 20, 1, 20, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(895, 'Boy', 'Children are just like real people...just smaller.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(897, 'Witch\'s experiment', 'Looks unnatural.', 68, 12, 12, 12, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 255, 0, 258, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(898, 'Witch\'s experiment (second form)', 'Looks unnatural.', 97, 17, 17, 17, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5327, 0, 5329, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(899, 'Witch\'s experiment (third form)', 'Looks unnatural.', 154, 27, 27, 27, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4925, 0, 4929, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(900, 'Witch\'s experiment (fourth form)', 'Looks unnatural.', 200, 35, 35, 35, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6559, 0, 6558, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(904, 'Chamber guardian', 'He hasn\'t seen much sun lately.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(905, 'Kolodion', 'Runs the Mage Arena.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(907, 'Kolodion', 'He\'s a shape-shifter', 3, 42, 1, 20, 1, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 811, 404, 1816, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(908, 'Kolodion', 'He\'s a shape-shifter', 93, 74, 1, 25, 1, 89, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 132, 404, 133, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(909, 'Kolodion', 'He\'s a shape-shifter', 93, 74, 1, 28, 1, 89, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5322, 5320, 5323, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(910, 'Kolodion', 'He\'s a shape-shifter', 93, 74, 1, 30, 1, 89, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 811, 404, 714, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(911, 'Kolodion', 'He\'s a shape-shifter', 112, 85, 1, 35, 1, 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 69, 65, 68, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(912, 'Battle mage', 'He kills in the name of Zamorak.', 78, 41, 41, 55, 1, 55, NULL, NULL, NULL, 60, NULL, NULL, NULL, 811, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(913, 'Battle mage', 'He kills in the name of Saradomin.', 78, 41, 41, 55, 1, 55, NULL, NULL, NULL, 60, NULL, NULL, NULL, 811, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, 0, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(914, 'Battle mage', 'He kills in the name of Guthix.', 78, 41, 41, 55, 1, 55, NULL, NULL, NULL, 60, NULL, NULL, NULL, 197, 0, 196, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, 0, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(916, 'Joe', 'A crafter at the pinnacle of his art.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(917, 'Jail guard', 'This jail\'s open for business again.', 32, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(923, 'Hassan', 'The emir\'s chief advisor and physician.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(925, 'Border Guard', 'Guards the border between Al Kharid and the Kingdom of Misthalin.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(931, 'Jungle savage', 'An aggressive native of the Kharazi Jungle.', 62, 44, 44, 44, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 428, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(934, 'Nezikchened', NULL, 150, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 64, 65, 67, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(938, 'Ranalph Devere', NULL, 130, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5485, 5489, 5491, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(939, 'Boulder', 'I wonder what this is doing here.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(941, 'Green dragon', 'Must be related to Elvarg.', 75, 45, 45, 45, 45, 45, '35,35,75,120,120,50,120,90,35,0,0,0,0,0,0', NULL, NULL, 35, NULL, NULL, NULL, 80, 89, 92, NULL, 80, 80, NULL, NULL, NULL, 3, 41, 75, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '408,410,409', NULL, NULL, NULL), +(942, 'Master chef', 'An expert on all things culinary.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(943, 'Survival expert', 'Very much an outdoors type.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(944, 'Combat instructor', 'An expert on all forms of combat.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(945, 'RuneScape guide', 'Your introduction to the world of RuneScape.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(946, 'Magic instructor', 'A master of Magic.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(947, 'Financial advisor', 'An official representative from the First National Bank of RuneScape.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(948, 'Mining instructor', 'An expert on Mining-related skills.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(949, 'Quest guide', 'Your introduction to the world of RuneScape.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(950, 'Giant rat', NULL, 5, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 4933, 4934, 4935, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(951, 'Chicken', 'Who are you calling chicken?', 3, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 18, 6, NULL, NULL, 5387, 5388, 5389, NULL, 5387, 5387, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '355,357,356', NULL, NULL, NULL), +(954, 'Brother Brace', 'A holy man.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(955, 'Cow', 'Converts grass to beef.', 8, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 5849, 5850, 5851, NULL, 5849, 5849, NULL, NULL, NULL, 8, 20, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '369,371,370', NULL, NULL, NULL), +(956, 'Drunken Dwarf', 'He\'s had a fair bit to drink...', 10, 5, 5, 1, 6, 20, NULL, NULL, NULL, NULL, 5, NULL, NULL, 99, 101, 102, NULL, 99, 99, 33, 33, NULL, NULL, NULL, 0, 1, NULL, NULL, NULL, 45, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(961, 'Surgeon General Tafani', 'This doctor really knows her stuff.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(977, 'Blessed spider', 'It\'s one of Iban\'s pets.', 42, 22, 22, 30, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5327, 0, 5329, NULL, 0, 0, NULL, NULL, NULL, 2, 76, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '537,539,538', NULL, NULL, NULL), +(978, 'Blessed giant rat', 'It\'s one of Iban\'s pet vermin.', 17, 12, 12, 12, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 9, 67, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(979, 'Slave', 'A wretched slave of Iban.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(980, 'Slave', 'A wretched slave of Iban.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(981, 'Slave', 'A wretched slave of Iban.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(982, 'Slave', 'A wretched slave of Iban.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(983, 'Slave', 'A wretched slave of Iban.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(984, 'Slave', 'A wretched slave of Iban.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(985, 'Slave', 'A wretched slave of Iban.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(986, 'Boulder', 'Precariously balanced...', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(987, 'Unicorn', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '496,498,497', NULL, NULL, NULL), +(988, 'Sir Jerro', NULL, 57, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 400, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(989, 'Sir Carl', NULL, 57, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 400, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(990, 'Sir Harry', NULL, 57, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 400, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(991, 'Half-soulless', 'A creature empty of emotion.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(993, 'Witch\'s cat', 'Curiosity is yet to kill this one...', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(997, 'Kalrag', NULL, 91, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5319, 5320, 5321, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(998, 'Othainian', NULL, 90, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 64, 65, 67, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(999, 'Doomion', NULL, 90, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 64, 65, 67, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1000, 'Holthion', NULL, 90, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 64, 65, 67, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1001, 'Dark mage', 'A user of dark magic.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1002, 'Disciple of Iban', 'A dark magic user.', 45, 24, 24, 32, 1, 32, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1004, 'Spider', NULL, 2, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6249, 6250, 6251, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1005, 'Giant bat', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1007, 'Zamorak wizard', 'A servant of Zamorak.', 73, 50, 50, 50, 50, 60, NULL, NULL, NULL, 60, 5, NULL, NULL, 811, 0, 836, NULL, 811, 0, NULL, NULL, NULL, 3, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, 43, NULL, NULL, NULL, NULL), +(1009, 'Poison spider', NULL, 64, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5327, 5328, 5329, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, '537,539,538', NULL, NULL, NULL), +(1013, 'Swamp toad', 'A green skinned croaker', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1015, 'Iron pickaxe', 'Useful for hitting rocks.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1017, 'Chicken', 'Who are you calling chicken?', 3, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 18, 6, NULL, NULL, 5387, 5388, 5389, NULL, 5387, 5387, NULL, NULL, NULL, 9, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '355,357,356', NULL, NULL, NULL), +(1018, 'Rooster', 'He rules the', 2, 2, 2, 2, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5387, 0, 5389, NULL, 0, 0, NULL, NULL, NULL, 9, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1019, 'Fire elemental', 'A fire elemental.', 45, 24, 24, 32, 1, 32, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1029, 0, 1031, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1020, 'Earth elemental', 'An earth elemental.', 45, 32, 32, 32, 1, NULL, NULL, NULL, NULL, 60, 7, NULL, NULL, 4868, 0, 4870, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1021, 'Air elemental', 'An air elemental.', 45, 24, 24, 32, 32, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1040, 0, 1041, NULL, 0, 0, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1022, 'Water elemental', 'A water elemental.', 45, 24, 24, 32, 32, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1044, 0, 1048, NULL, 0, 0, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1023, 'Vampire', 'Could his name be \'Lurch\'?', 50, 52, 1, 52, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7183, NULL, 7185, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 50, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(1044, 'Monk of Zamorak', 'An evil human cleric.', 24, 12, 12, 17, 1, 17, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1045, 'Monk of Zamorak', 'An evil human cleric.', 24, 12, 12, 17, 1, 17, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1046, 'Monk of Zamorak', 'An evil human cleric.', 24, 12, 12, 17, 1, 17, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1052, 'Ghast', 'Arrghhh... A Ghast.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1053, 'Ghast', 'Arrghhh... A Ghast.', 71, 25, 25, 25, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, 0, 9467, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1055, 'Pirate Jackie the Fruit', 'Ticket trader for the Brimhaven Agility Arena.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(1057, 'Strange watcher', 'A member of the audience.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1058, 'Strange watcher', 'A member of the audience.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1059, 'Strange watcher', 'A member of the audience.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1060, 'Denulth', 'Commander of the Imperial Guard.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1061, 'Sergeant', 'A sergeant of the Imperial Guard.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1063, 'Soldier', 'A soldier of the Imperial Guard.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(1064, 'Soldier', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(1065, 'Soldier', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(1066, 'Soldier', 'A soldier of the Imperial Guard.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(1067, 'Soldier', 'A soldier of the Imperial Guard.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(1068, 'Soldier', 'A soldier of the Imperial Guard.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(1069, 'Soldier', 'A soldier of the Imperial Guard.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(1073, 'Archer', 'A Burthorpe Castle Archer.', 50, 1, 1, 28, 28, 28, '54,68,75,72,67,81,54,35,35,0,0,0,0,0,0', NULL, NULL, 12, NULL, NULL, NULL, 426, 404, 9055, NULL, 426, 426, 19, 10, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1074, 'Archer', 'A Burthorpe Castle Archer.', 50, 1, 1, 28, 28, 28, '54,68,75,72,67,81,54,35,35,0,0,0,0,0,0', NULL, NULL, 12, NULL, NULL, NULL, 426, 404, 9055, NULL, 426, 426, 19, 10, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1076, 'Guard', 'A Burthorpe Castle guard.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(1077, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(1081, 'Servant', 'A servant for Prince Anlaf.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1085, 'Ocga', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1086, 'Man', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,513,512', NULL, NULL, NULL), +(1087, 'Penda', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1088, 'Hygd', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1089, 'Ceolburg', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1092, 'White Knight', 'The knight seems to be watching something.', 38, 27, 27, 27, 1, NULL, NULL, NULL, NULL, 60, 8, NULL, NULL, 7042, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(1095, 'Rock', 'The biggest and baddest troll.', 90, 63, 63, 63, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6523, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 7, 83, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1096, 'Stick', 'A big', 87, 61, 61, 61, 1, NULL, NULL, NULL, NULL, 60, 7, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 7, 83, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1097, 'Pee Hat', NULL, 126, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1098, 'Kraka', NULL, 120, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1099, 'Dung', 'Human is his speciality.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES +(1100, 'Ash', 'Human is his speciality.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1101, 'Thrower Troll', 'Small for a troll, but mean, ugly and throws rocks.', 95, 41, 41, 30, 40, NULL, NULL, NULL, NULL, 35, 7, NULL, 6, 284, 285, 287, NULL, 284, 284, NULL, 276, NULL, 0, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1102, 'Thrower Troll', 'Small for a troll, but mean, ugly and throws rocks.', 95, 41, 41, 30, 40, NULL, NULL, NULL, NULL, 35, 7, NULL, 6, 284, 285, 287, NULL, 284, 284, NULL, 276, NULL, 0, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1103, 'Thrower Troll', 'Small for a troll, but mean, ugly and throws rocks.', 95, 41, 41, 30, 40, NULL, NULL, NULL, NULL, 35, 7, NULL, 6, 284, 285, 287, NULL, 284, 284, NULL, 276, NULL, 0, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1104, 'Thrower Troll', 'Small for a troll, but mean, ugly and throws rocks.', 95, 41, 41, 30, 40, NULL, NULL, NULL, NULL, 35, 7, NULL, 6, 284, 285, 287, NULL, 284, 284, NULL, 276, NULL, 0, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1105, 'Thrower Troll', 'Small for a troll, but mean, ugly and throws rocks.', 95, 41, 41, 30, 40, NULL, NULL, NULL, NULL, 35, 7, NULL, 6, 284, 285, 287, NULL, 284, 284, NULL, 276, NULL, 0, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1106, 'Mountain troll', 'Small for a troll, but mean and ugly.', 90, 53, 20, 53, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 284, 285, 287, NULL, 284, 284, NULL, NULL, NULL, 7, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1107, 'Mountain troll', 'Small for a troll, but mean and ugly.', 90, 53, 20, 53, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 284, 285, 287, NULL, 284, 284, NULL, NULL, NULL, 7, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1108, 'Mountain troll', 'Small for a troll, but mean and ugly.', 90, 53, 20, 53, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 284, 285, 287, NULL, 284, 284, NULL, NULL, NULL, 7, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1109, 'Mountain troll', 'Small for a troll, but mean and ugly.', 90, 53, 20, 53, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 284, 285, 287, NULL, 284, 284, NULL, NULL, NULL, 7, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1110, 'Mountain troll', 'Small for a troll, but mean and ugly.', 90, 53, 20, 53, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 284, 285, 287, NULL, 284, 284, NULL, NULL, NULL, 7, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1111, 'Mountain troll', 'Small for a troll, but mean and ugly.', 90, 53, 20, 53, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 284, 285, 287, NULL, 284, 284, NULL, NULL, NULL, 7, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1112, 'Mountain troll', 'Small for a troll, but mean and ugly.', 90, 53, 20, 53, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 284, 285, 287, NULL, 284, 284, NULL, NULL, NULL, 7, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1115, 'Troll general', 'One of the troll generals.', 92, 65, 65, 65, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 7, 83, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1116, 'Troll general', 'One of the troll generals.', 92, 65, 65, 65, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 7, 83, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1117, 'Troll general', 'One of the troll generals.', 92, 65, 65, 65, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 7, 83, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1118, 'Troll spectator', 'He\'s watching the arena.', 67, 47, 47, 47, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 7, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1119, 'Troll spectator', 'He\'s watching the arena.', 67, 47, 47, 47, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 7, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1120, 'Troll spectator', 'He\'s watching the arena.', 67, 47, 47, 47, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 7, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1121, 'Troll spectator', 'He\'s watching the arena.', 67, 47, 47, 47, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 7, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1122, 'Troll spectator', 'He\'s watching the arena.', 67, 47, 47, 47, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 7, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1123, 'Troll spectator', 'He\'s watching the arena.', 67, 47, 47, 47, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 7, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1124, 'Troll spectator', 'He\'s watching the arena.', 67, 47, 47, 47, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 7, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1125, 'Dad', 'An unusually large troll.', 157, 55, 55, 55, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1158, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 7, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1126, 'Twig', 'He\'s guarding the cells.', 71, 50, 50, 50, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 7, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1127, 'Berry', 'He\'s guarding the cells.', 71, 50, 50, 50, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 7, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1128, 'Twig', 'He\'s guarding the cells.', 71, 50, 50, 50, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5821, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 7, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1129, 'Berry', 'He\'s guarding the cells.', 71, 50, 50, 50, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 7, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1130, 'Thrower troll', 'Small for a troll, but it\'s mean, ugly and throws rocks.', 95, 41, 41, 30, 40, NULL, '30,60,40,40,50,70,50,0,0,0,0,0,0,0,0', NULL, NULL, 35, 7, NULL, NULL, 284, 285, 287, NULL, 284, 284, 33, 276, NULL, 0, 83, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1131, 'Thrower troll', 'Small for a troll, but it\'s mean, ugly and throws rocks.', 95, 41, 41, 30, 40, NULL, '30,60,40,40,50,70,50,0,0,0,0,0,0,0,0', NULL, NULL, 35, 7, NULL, 6, 284, 285, 287, NULL, 284, 284, 33, 276, NULL, 0, 83, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1132, 'Thrower troll', 'Small for a troll, but it\'s mean, ugly and throws rocks.', 95, 41, 41, 30, 40, NULL, '30,60,40,40,50,70,50,0,0,0,0,0,0,0,0', NULL, NULL, 35, 7, NULL, 6, 284, 285, 287, NULL, 284, 284, 33, 276, NULL, 0, 83, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1133, 'Thrower troll', 'Small for a troll, but it\'s mean, ugly and throws rocks.', 95, 41, 41, 30, 40, NULL, '30,60,40,40,50,70,50,0,0,0,0,0,0,0,0', NULL, NULL, 35, 7, NULL, 6, 284, 285, 287, NULL, 284, 284, 33, 276, NULL, 0, 83, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1134, 'Thrower troll', 'Small for a troll, but it\'s mean, ugly and throws rocks.', 95, 41, 41, 30, 40, NULL, '30,60,40,40,50,70,50,0,0,0,0,0,0,0,0', NULL, NULL, 35, 7, NULL, 6, 284, 285, 287, NULL, 284, 284, 33, 276, NULL, 0, 83, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1135, 'Cook', 'Human is his speciality.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1136, 'Cook', 'Human is his speciality.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1137, 'Cook', 'Human is his speciality.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1138, 'Mountain troll', 'Small for a troll, but mean and ugly.', 90, 53, 20, 53, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 284, 285, 287, NULL, 284, 284, NULL, NULL, NULL, 7, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1139, 'Mushroom', 'He\'s fast asleep.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 7, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1140, 'Mountain goat', 'This beast doesn\'t need climbing boots.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1141, 'Mountain goat', 'This beast doesn\'t need climbing boots.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1142, 'Guard', 'He\'s guarding the storeroom.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(1143, 'Guard', 'He\'s guarding the storeroom.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(1144, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(1145, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(1146, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(1147, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(1148, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(1149, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(1150, 'Guard', 'He\'s guarding the goutweed.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(1151, 'Burntmeat', 'Human is his speciality.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1152, 'Weird Old Man', 'What\'s he mumbling about?', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1153, 'Kalphite Worker', 'I don\'t think insect repellent will work...', 40, 21, 20, 22, 1, NULL, '25,27,20,102,64,125,118,112,115,0,0,0,0,0,0', NULL, NULL, 38, NULL, NULL, NULL, 6223, 6232, 6230, NULL, 6223, 6223, NULL, NULL, NULL, 7, 53, 40, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1154, 'Kalphite Soldier', 'I don\'t think insect repellent will work...', 134, 47, 47, 47, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 7, 53, 90, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1155, 'Kalphite Guardian', 'I don\'t think insect repellent will work...', 170, 108, 106, 109, 1, NULL, '105,97,100,279,201,286,295,215,230,2,0,0,0,0,0', NULL, NULL, 65, 5, NULL, NULL, 6223, 6232, 6230, NULL, 6223, 6223, NULL, NULL, NULL, 7, 53, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1156, 'Kalphite Worker', 'I don\'t think insect repellent will work...', 40, 21, 20, 22, 1, NULL, '25,27,20,102,64,125,118,112,115,0,0,0,0,0,0', NULL, NULL, 38, NULL, NULL, NULL, 6223, 6232, 6230, NULL, 6223, 6223, NULL, NULL, NULL, 7, 53, 40, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1157, 'Kalphite Guardian', 'I don\'t think insect repellent will work...', 170, 108, 106, 109, 1, NULL, '105,97,100,279,201,286,295,215,230,2,0,0,0,0,0', NULL, NULL, 65, 5, NULL, NULL, 6223, 6232, 6230, NULL, 6223, 6223, NULL, NULL, NULL, 7, 53, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1158, 'Kalphite Queen', 'I don\'t think insect repellent will work...', 255, 70, 70, 70, 70, 70, '80,85,194,75,150,100,102,402,190,105,105,81,80,81,81', NULL, NULL, 45, NULL, NULL, 64, 6241, 6232, 6242, NULL, 6241, 6241, NULL, NULL, NULL, 10, 53, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1160, 'Kalphite Queen', 'I don\'t think insect repellent will work...', 255, 70, 70, 70, 70, 70, '80,85,100,60,378,100,245,402,379,307,305,81,80,81,81', NULL, NULL, 0, NULL, NULL, 64, 6235, 6234, 6233, NULL, 6235, 6235, NULL, NULL, NULL, 10, 53, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1161, 'Kalphite Larva', 'I don\'t think insect repellent will work...', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, 53, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1172, 'The Shaikahan', 'A huge beast', 100, 50, 50, 50, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 313, 0, 315, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1183, 'Elf warrior', 'He looks pretty handy with that bow.', 91, 1, 1, 64, 64, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 428, 0, 836, NULL, 0, 426, 250, 249, NULL, 2, 31, NULL, 1, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(1184, 'Elf warrior', 'I don\'t wanna be at the wrong end of that pike.', 85, 60, 60, 60, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 428, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, 31, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(1185, 'Elven city guard', 'An elven city guard.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1192, 'Rabbit', 'A cute bunny rabbit.', 1, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6090, 0, 6092, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1193, 'Rabbit', NULL, 5, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6090, 6091, 6092, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1194, 'Rabbit', NULL, 5, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6090, 6091, 6092, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1195, 'Grizzly bear', 'It\'s an NPC.', 27, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 4921, 4927, 4929, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '498,500,499', NULL, NULL, NULL), +(1196, 'Grizzly bear cub', 'Eek! A bear cub!', 30, 21, 21, 21, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 6, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '498,500,499', NULL, NULL, NULL), +(1197, 'Grizzly bear cub', NULL, 35, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '498,500,499', NULL, NULL, NULL), +(1198, 'Dire Wolf', 'What big teeth you have.', 47, 33, 33, 33, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6559, 0, 6558, NULL, 0, 0, NULL, NULL, NULL, 9, 92, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1199, 'Elf Tracker', 'An elf tracker.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1200, 'Tyras guard', 'One of King Tyras\'s men.', 60, 42, 42, 42, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 414, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1201, 'Elf warrior', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 426, 425, 836, NULL, NULL, NULL, 250, 249, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(1203, 'Tyras guard', NULL, 112, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 395, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1204, 'Tyras guard', NULL, 112, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 395, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1208, 'Quartermaster', 'Responsible for the food and equipment of the troops.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1211, 'Will o\' the wisp', 'Mysterious swamp lights...', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1216, 'Parroty Pete', 'He seems strangely familiar...', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1217, 'Gardener', 'An old gardener.', 5, 4, 4, 4, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 433, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1218, 'Ghoul', 'A scary, man eating ghoul.', 40, 25, 25, 25, 1, NULL, '10,10,20,20,15,20,15,15,15,15,15,35,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 422, 404, 9055, NULL, 422, 422, NULL, NULL, NULL, 9, 37, 50, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1219, 'Leech', 'Yuck! It\'s all slimy!', 60, 42, 42, 42, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1273, 0, 1272, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1220, 'Vampire', 'Could his name be \'Lurch\'?', 50, 52, 1, 52, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7183, NULL, 7185, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 50, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(1223, 'Vampire', NULL, 50, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 40, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(1225, 'Vampire', NULL, 50, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(1227, 'Myre Blamish Snail', 'A marsh coloured blamish snail', 14, 10, 10, 10, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 8143, 0, 8144, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, 0, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1228, 'Blood Blamish Snail', 'A blood coloured blamish snail', 14, 10, 10, 10, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 8143, 0, 8144, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, 0, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1229, 'Ochre Blamish Snail', 'A muddy coloured blamish snail', 14, 10, 10, 10, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 8143, 0, 8144, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, 0, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1230, 'Bruise Blamish Snail', 'A bruise blue coloured blamish snail', 14, 10, 10, 10, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 8143, 0, 8144, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, 0, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1231, 'Bark Blamish Snail', 'A branch bark coloured blamish snail', 14, 10, 10, 10, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 8143, 0, 8144, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, 0, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1232, 'Myre Blamish Snail', 'A marsh coloured blamish snail', 14, 10, 10, 10, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 8143, 0, 8144, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, 0, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1233, 'Blood Blamish Snail', 'A blood coloured blamish snail', 14, 10, 10, 10, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 8143, 0, 8144, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, 0, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1234, 'Ochre Blamish Snail', 'A muddy coloured blamish snail', 14, 10, 10, 10, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 8143, 0, 8144, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, 0, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1235, 'Bruise Blamish Snail', 'A bruise blue coloured blamish snail', 14, 10, 10, 10, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 8143, 0, 8144, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, 0, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1239, 'Bedabin Nomad Fighter', 'A Bedabin nomad fighter - a sandy swordsman.', 42, 30, 30, 30, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1240, 'Loar Shadow', 'A shadowy sort of entity', 60, 31, 31, 42, 1, 42, NULL, NULL, NULL, 60, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 3, 73, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1241, 'Loar Shade', 'The shadowy remains of a long departed soul.', 60, 31, 31, 42, 1, 42, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1283, 1284, 1308, NULL, 0, 0, NULL, NULL, NULL, 3, 73, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1243, 'Phrin Shadow', 'A shadowy sort of entity', 61, 32, 32, 43, 1, 43, NULL, NULL, NULL, 60, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 3, 73, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1244, 'Phrin Shade', 'The shadowy remains of a long departed soul.', 61, 32, 32, 43, 1, 43, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1283, 0, 1287, NULL, 0, 0, NULL, NULL, NULL, 3, 73, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1245, 'Riyl Shadow', 'A shadowy sort of entity', 64, 33, 33, 45, 1, 45, NULL, NULL, NULL, 60, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 3, 73, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1246, 'Riyl Shade', 'The shadowy remains of a long departed soul.', 64, 33, 33, 45, 1, 45, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1283, 0, 1287, NULL, 0, 0, NULL, NULL, NULL, 3, 73, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1247, 'Asyn Shadow', 'A shadowy sort of entity', 67, 35, 35, 47, 1, 47, NULL, NULL, NULL, 60, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 3, 73, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1248, 'Asyn Shade', 'The shadowy remains of a long departed soul.', 67, 35, 35, 47, 1, 47, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1283, 0, 1287, NULL, 0, 0, NULL, NULL, NULL, 3, 73, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1249, 'Fiyr Shadow', 'A shadowy sort of entity', 70, 36, 36, 49, 1, 49, NULL, NULL, NULL, 60, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 3, 73, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1250, 'Fiyr Shade', 'The shadowy remains of a long departed soul.', 70, 36, 36, 49, 1, 49, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1283, 0, 1287, NULL, 0, 0, NULL, NULL, NULL, 3, 73, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1257, 'Afflicted', 'A local villager of Mort\'ton.', 61, 43, 43, 43, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1258, 'Afflicted', 'A local villager of Mort\'ton.', 62, 44, 44, 44, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1261, 'Afflicted', 'A local villager of Mort\'ton.', 64, 45, 45, 45, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1262, 'Afflicted', 'A local villager of Mort\'ton.', 65, 46, 46, 46, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1263, 'Wizard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(1264, 'Saradomin wizard', 'A follower of Saradomin.', 120, 90, 90, 70, 70, 90, NULL, NULL, NULL, 60, NULL, NULL, NULL, 376, 0, 836, NULL, 811, 0, NULL, NULL, NULL, 3, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, 41, NULL, NULL, NULL, NULL), +(1265, 'Rock Crab', 'No one likes crabs...', 51, 1, 1, 1, 1, 1, '-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75', NULL, NULL, NULL, 5, NULL, NULL, 1312, 1313, 1314, NULL, 1312, 1312, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(1266, 'Rocks', 'A rocky outcrop.', 50, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 1312, 1313, 1314, NULL, 1312, 1312, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1267, 'Rock Crab', 'No one likes crabs...', 50, 1, 1, 1, 1, NULL, '-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75', NULL, NULL, NULL, 5, NULL, NULL, 1312, 1313, 1314, NULL, 1312, 1312, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(1268, 'Rocks', 'A rocky outcrop.', 50, 4, 1, 4, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 1312, 1313, 1314, NULL, 1312, 1312, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1269, 'Olaf the Bard', 'No one likes crabs...', 50, 10, 1, 8, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 1312, 1313, 1314, NULL, 1312, 1312, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1271, 'Golden sheep', 'Freshly shorn.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1272, 'Golden sheep', 'Lovely thick wool.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1278, 'Longhall Bouncer', 'He\'s fat', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1279, 'The Draugen', 'A fearful spirit of the drowned.', 57, 40, 40, 40, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1281, 'Sigli the Huntsman', 'A Fremennik hunter.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1282, 'Sigmund The Merchant', 'A Fremennik merchant.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1283, 'Swensen the Navigator', 'A Fremennik navigator.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1286, 'Manni the Reveller', 'Every innkeeper\'s best friend!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1287, 'Council workman', 'Supposedly fixes things around RuneScape.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1288, 'Peer the Seer', 'A Fremennik riddler.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1289, 'Thorvald the Warrior', 'A Fremennik hero.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1290, 'Koschei the deathless', 'Your challenge awaits!', 14, 13, 13, 13, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1294, 'Brundt the Chieftain', 'The Fremennik tribe\'s chieftain.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1296, 'Guard', 'Stands around and looks at stuff all day.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(1297, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(1298, 'Town Guard', 'What a rubbish job he has.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1300, 'Thora the Barkeep', 'The Longhall barkeep', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1302, 'Fisherman', 'There\'s something fishy about this guy.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1304, 'Sailor', 'He\'s strong to the finish', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1306, 'Freidir', NULL, 50, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1307, 'Borrokar', NULL, 51, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 7, NULL, NULL, 395, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1308, 'Lanzig', NULL, 51, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1315, 'Fish monger', 'Fish-tastic!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1316, 'Fur trader', 'I wonder what he does with all that fur?', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1317, 'Market Guard', 'Keeps the stalls secure.', 40, 28, 28, 28, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1318, 'Warrior', 'A hardened Fremennik warrior.', 40, 28, 28, 28, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 401, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1319, 'Fox', 'A cunning animal.', 45, 32, 32, 32, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6562, 0, 6570, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1320, 'Bunny', 'Hoppity', 1, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1245, 0, 1246, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1321, 'Bunny', NULL, 5, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1245, 1244, 1246, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1326, 'Bear Cub', 'Cute. But deadly.', 11, 8, 8, 8, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 7, 6, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '498,500,499', NULL, NULL, NULL), +(1327, 'Bear Cub', NULL, 20, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '498,500,499', NULL, NULL, NULL), +(1328, 'Unicorn Foal', 'Horned horsey.', 14, 6, 6, 6, 1, 6, NULL, NULL, NULL, 32, 5, NULL, NULL, 6376, 6375, 6377, NULL, 6376, 6376, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '496,498,497', NULL, NULL, NULL), +(1329, 'Black unicorn Foal', 'Cute but evil.', 17, 12, 12, 12, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6376, 0, 6377, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '496,498,497', NULL, NULL, NULL), +(1330, 'Wolf', 'Fearsome predator found only in the Fremennik Province', 69, 35, 35, 35, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6559, 0, 6558, NULL, 0, 0, NULL, NULL, NULL, 7, 92, 69, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '481,491,490', NULL, NULL, NULL), +(1338, 'Dagannoth', 'A horror from the ocean depths...', 70, 80, 80, 70, 85, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 1340, 1341, 1342, NULL, 1340, 1340, NULL, 288, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(1339, 'Dagannoth', NULL, 70, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1343, 1340, 1342, NULL, NULL, NULL, NULL, 288, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(1340, 'Dagannoth', NULL, 70, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1343, 1340, 1342, NULL, NULL, NULL, NULL, 288, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(1341, 'Dagannoth', NULL, 120, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1341, 1340, 1342, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(1342, 'Dagannoth', NULL, 120, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1341, 1340, 1342, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(1343, 'Dagannoth', NULL, 120, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1341, 1340, 1342, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(1344, 'Dagannoth', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(1345, 'Dagannoth', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(1346, 'Dagannoth', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(1347, 'Dagannoth', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(1351, 'Dagannoth mother', 'A horror from the ocean depths...', 128, 60, 60, 60, 60, 60, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1341, 0, 1342, NULL, 0, 0, NULL, NULL, NULL, 10, 24, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1352, 'Dagannoth mother', NULL, 100, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1341, 1340, 1342, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1353, 'Dagannoth mother', NULL, 100, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1341, 1340, 1342, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1354, 'Dagannoth mother', NULL, 100, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1341, 1340, 1342, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1355, 'Dagannoth mother', NULL, 100, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1341, 1340, 1342, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1356, 'Dagannoth mother', NULL, 100, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1341, 1340, 1342, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1360, 'Banker', 'He seems happy to see you.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1367, 'Skraeling', NULL, 1, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 401, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1368, 'Skraeling', NULL, 1, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 395, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1369, 'Fishmonger', 'Hmm', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1370, 'Greengrocer', 'At least he eats his greens.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1374, 'Guard', 'He\'s guarding the throne room.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(1377, 'Farmer', 'He\'s cutting the wheat.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1378, 'Flower Girl', 'No-one would mistake her for a duchess.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1381, 'Alrik', NULL, 1, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1386, 'Rannveig', NULL, 1, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1388, 'Valgerd', NULL, 1, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1389, 'Skraeling', NULL, 1, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 395, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1390, 'Broddi', NULL, 1, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1391, 'Skraeling', NULL, 1, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 395, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1392, 'Ragnvald', NULL, 1, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 810, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1393, 'Fishmonger', 'Hmm', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1394, 'Greengrocer', 'At least he eats his greens.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1395, 'Lumberjack Leif', 'He\'s a lumberjack', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1396, 'Miner Magnus', 'He\'s just mining his own business.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1397, 'Fisherman Frodi', 'There\'s something fishy about him.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1398, 'Gardener Gunnhild', 'She\'s looking a bit weedy.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1401, 'Chicken', 'Who are you calling chicken?', 3, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 18, 6, NULL, NULL, 5387, 5388, 5389, NULL, 5387, 5387, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '355,357,356', NULL, NULL, NULL), +(1402, 'Chicken', 'Who are you calling chicken?', 3, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 18, 6, NULL, NULL, 5387, 5388, 5389, NULL, 5387, 5387, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '355,357,356', NULL, NULL, NULL), +(1403, 'Rooster', NULL, 5, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5387, 5388, 5389, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1404, 'Rabbit', NULL, 5, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6090, 6091, 6092, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1419, 'Lumdo', 'There to help me make my bids.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1427, 'G.L.O. Caranock', 'An official looking Gnome with small beady eyes.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1442, 'Duke', NULL, 130, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1383, 1393, 1384, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1443, 'Oipuis', NULL, 130, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1383, 1393, 1384, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1444, 'Uyoro', NULL, 130, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1383, 1393, 1384, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1445, 'Ouhai', NULL, 130, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1383, 1387, 1384, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1446, 'Uodai', NULL, 130, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1383, 1393, 1384, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1447, 'Padulah', NULL, 133, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1383, 1393, 1384, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1451, 'Sleeping Monkey', 'A rather sleepy looking guard', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL); +INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES +(1452, 'Monkey Child', 'An adorable little monkey child.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(1453, 'The Monkey\'s Uncle', 'He looks like the Monkey\'s Uncle.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(1454, 'The Monkey\'s Aunt', 'She looks like the Monkey\'s Aunt.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(1455, 'Monkey Guard', 'A scimitar wielding ninja monkey.', 94, 66, 66, 66, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1392, 0, 1384, NULL, 0, 0, NULL, NULL, NULL, 8, 61, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(1456, 'Monkey Archer', 'A bow wielding ninja monkey.', 82, 43, 43, 58, 58, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 1394, NULL, NULL, NULL, 1, 61, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(1457, 'Monkey Archer', NULL, 50, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1394, 1393, 1384, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(1458, 'Monkey Archer', NULL, 50, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1394, 1393, 1384, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(1459, 'Monkey Guard', 'A huge brutish gorilla armoured with dangerous looking vambraces.', 130, 100, 130, 90, 1, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 1402, 1403, 1404, NULL, 1402, 1402, NULL, NULL, NULL, 8, 61, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(1460, 'Monkey Guard', 'A huge brutish gorilla armoured with dangerous looking vambraces.', 90, 63, 63, 63, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 1402, 0, 1404, NULL, 0, 0, NULL, NULL, NULL, 8, 61, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(1461, 'Elder Guard', 'A huge brutish gorilla stands here', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, 61, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1463, 'Monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(1464, 'Monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(1465, 'Monkey Zombie', 'A large and lumbering undead monkey.', 78, 55, 55, 55, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1383, 0, 1384, NULL, 0, 0, NULL, NULL, NULL, 6, 61, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(1466, 'Monkey Zombie', NULL, 90, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1392, 1393, 1384, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(1467, 'Monkey Zombie', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1392, 1393, 1384, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(1469, 'Monkey minder', 'He looks like the type of guy who would mind monkeys.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(1471, 'Skeleton', 'It looks just a bit... underfed.', 112, 80, 109, 75, 1, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 5519, 5520, 5521, NULL, 5519, 5519, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(1472, 'Jungle demon', 'A Greater Jungle demon. A magical aura emanates from its hide.', 428, 50, 50, 50, 50, 50, NULL, NULL, NULL, 60, 2, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '400,404,403', NULL, NULL, NULL), +(1473, 'Spider', NULL, 2, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6249, 6250, 6251, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1475, 'Bird', 'It\'s a brightly coloured bird of the jungle.', 7, 5, 5, 5, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6775, 0, 6779, NULL, 0, 0, NULL, NULL, NULL, 8, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1476, 'Bird', 'It\'s a brightly coloured bird of the jungle. It flies very quickly.', 7, 5, 5, 5, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6775, 0, 6777, NULL, 0, 0, NULL, NULL, NULL, 8, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1477, 'Scorpion', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 17, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '3611,3612,3610', NULL, NULL, NULL), +(1478, 'Jungle spider', 'A very dangerous looking spider', 90, 47, 47, 63, 63, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5327, 0, 5329, NULL, 0, 0, NULL, NULL, NULL, 2, 76, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '537,539,538', NULL, NULL, NULL), +(1479, 'Snake', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '3609,3608,3610', NULL, NULL, NULL), +(1480, 'Small ninja monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(1481, 'Medium ninja monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(1483, 'Bearded gorilla', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '498,500,499', NULL, NULL, NULL), +(1484, 'Ancient monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(1485, 'Small zombie monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(1486, 'Large zombie monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(1487, 'Monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(1521, 'Nail beast', 'A huge nail beast. Its nails appear very sharp.', 550, 150, 150, 20, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5989, 0, 5990, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1524, 'Undead Lumberjack', 'He is one', 100, 73, 73, 10, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5970, 0, 5972, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1528, 'Zealot', 'His robes prominently display the star of Saradomin.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1531, 'Imp', NULL, 8, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1532, 'Barricade', 'Handy for hindering the enemy team\'s movement.', 50, 1, 1, 1, 1, NULL, NULL, NULL, 1, NULL, 5, NULL, NULL, 0, 0, 9658, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1533, 'Barricade', 'Handy for hindering the enemy team\'s movement.', 50, 1, 1, 1, 1, NULL, NULL, NULL, 1, NULL, 5, NULL, NULL, 0, 0, 9658, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1534, 'Barricade', 'Handy for hindering the enemy team\'s movement.', 50, 1, 1, 1, 1, NULL, NULL, NULL, 1, NULL, 5, NULL, NULL, 0, 0, 9658, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1535, 'Barricade', 'Handy for hindering the enemy team\'s movement.', 50, 1, 1, 1, 1, NULL, NULL, NULL, 1, NULL, 5, NULL, NULL, 0, 0, 9658, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1536, 'Possessed pickaxe', NULL, 40, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 185, 186, 188, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1537, 'Haze', 'A strange disturbance in the air.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1538, 'Corpse', 'Well', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 9, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1539, 'Skeletal miner', 'I don\'t think the pickaxe is for hitting rocks.', 50, 35, 35, 35, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5485, 0, 5491, NULL, 0, 0, NULL, NULL, NULL, 8, 75, 0, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1540, 'Treus Dayth', NULL, 100, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5540, 5541, 5542, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1541, 'Ghost', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(1549, 'Ghost', NULL, 30, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5540, 5541, 5542, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(1550, 'Chompy bird', 'A large boisterous bird', 8, 1, 1, 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6761, 0, 6762, NULL, 0, 0, NULL, NULL, NULL, 3, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1551, 'Mischievous ghost', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(1553, 'Ug', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(1556, 'Arrg', NULL, 150, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1557, 'Ug', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(1558, 'Ice wolf', 'Not man\'s best friend.', 72, 51, 51, 51, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6559, 0, 6558, NULL, 0, 0, NULL, NULL, NULL, 7, 92, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1560, 'Ice Troll', 'Brrrrr...he must be cold!', 85, 60, 60, 60, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 9, 83, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1561, 'Ice Troll', 'Brrrrr...he must be cold!', 85, 60, 60, 60, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 9, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1562, 'Ice Troll', 'Brrrrr...he must be cold!', 85, 60, 60, 60, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 9, 83, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1563, 'Ice Troll', 'Brrrrr...he must be cold!', 85, 60, 60, 60, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 9, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1564, 'Ice Troll', 'Brrrrr...he must be cold!', 85, 60, 60, 60, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 9, 83, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1565, 'Ice Troll', 'Brrrrr...he must be cold!', 85, 60, 60, 60, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 9, 83, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1566, 'Ice Troll', 'Brrrrr...he must be cold!', 85, 60, 60, 60, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 9, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1567, 'Cyreg Paddlehorn', 'A tall and imposing man who\'s more than familiar with boating.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1575, 'Skeleton Hellhound', 'A creature summoned by Vanstrom to kill the remaining Myreque.', 57, 32, 32, 32, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6579, 0, 6558, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(1582, 'Fire giant', 'A very large elemental adversary.', 111, 60, 60, 60, 60, 60, '24,22,22,50,50,50,50,50,50,45,0,0,0,0,0', NULL, NULL, 42, 5, NULL, NULL, 4666, 4664, 4668, NULL, 4666, 4666, NULL, NULL, NULL, NULL, NULL, 111, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '449,451,450', NULL, NULL, NULL), +(1583, 'Fire giant', 'A very large elemental adversary.', 111, 60, 60, 60, 60, 60, '24,22,22,50,50,50,50,50,50,45,0,0,0,0,0', NULL, NULL, 42, 5, NULL, NULL, 4666, 4664, 4668, NULL, 4666, 4666, NULL, NULL, NULL, 1, 33, 111, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '449,451,450', NULL, NULL, NULL), +(1584, 'Fire giant', 'A very large elemental adversary.', 111, 60, 60, 60, 60, 60, '24,22,22,50,50,50,50,50,50,45,0,0,0,0,0', NULL, NULL, 42, 5, NULL, NULL, 4666, 4664, 4668, NULL, 4666, 4666, NULL, NULL, NULL, 1, 33, 111, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '449,451,450', NULL, NULL, NULL), +(1585, 'Fire giant', 'A very large elemental adversary.', 111, 60, 60, 60, 60, 60, '24,22,22,50,50,50,50,50,50,45,0,0,0,0,0', NULL, NULL, 42, 5, NULL, NULL, 4666, 4664, 4668, NULL, 4666, 4666, NULL, NULL, NULL, NULL, NULL, 111, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '449,451,450', NULL, NULL, NULL), +(1586, 'Fire giant', 'A very large elemental adversary.', 111, 60, 60, 60, 60, 60, '24,22,22,50,50,50,50,50,50,45,0,0,0,0,0', NULL, NULL, 42, 5, NULL, NULL, 4666, 4664, 4668, NULL, 4666, 4666, NULL, NULL, NULL, 1, 33, 111, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '449,451,450', NULL, NULL, NULL), +(1587, 'Moss giant', 'His beard seems to have a life of its own.', 60, 37, 37, 20, 37, NULL, '15,15,15,15,30,15,30,30,30,15,30,15,35,15,15', NULL, NULL, NULL, NULL, NULL, NULL, 4666, 4665, 4668, NULL, 4666, 4666, NULL, NULL, NULL, 1, 62, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '449,451,450', NULL, NULL, NULL), +(1588, 'Moss giant', 'His beard seems to have a life of its own.', 60, 37, 37, 20, 37, NULL, '15,15,15,15,30,15,30,30,30,15,30,15,35,15,15', NULL, NULL, NULL, NULL, NULL, NULL, 4666, 4665, 4668, NULL, 4666, 4666, NULL, NULL, NULL, 1, 62, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '449,451,450', NULL, NULL, NULL), +(1589, 'Baby red dragon', 'Young but still dangerous.', 50, 40, 40, 42, 1, 40, '50,40,64,60,30,45,40,40,20,40,40,20,0,0,0', NULL, NULL, 32, 5, NULL, NULL, 25, 26, 28, NULL, 25, 25, NULL, NULL, NULL, 3, 68, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '408,410,409', NULL, NULL, NULL), +(1590, 'Bronze dragon', 'Its scales seem to be made of bronze.', 122, 70, 70, 75, 70, 35, '40,40,40,40,70,40,130,130,130,20,130,30,35,30,30', NULL, NULL, 40, NULL, NULL, NULL, 80, 89, 92, NULL, 80, 80, NULL, NULL, NULL, 7, 13, 125, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '408,410,409', NULL, NULL, NULL), +(1591, 'Iron dragon', 'Its scales seem to be made of iron.', 165, 85, 85, 90, 85, 40, '55,35,40,50,75,40,190,190,190,20,190,30,70,30,30', NULL, NULL, 45, NULL, NULL, NULL, 80, 89, 92, NULL, 80, 80, NULL, NULL, NULL, 7, 50, 173, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '408,410,409', NULL, NULL, NULL), +(1592, 'Steel dragon', 'Its scales seem to be made of steel.', 165, 99, 99, 100, 85, 40, '60,40,40,55,80,40,220,220,220,25,220,30,70,30,30', NULL, NULL, 45, NULL, NULL, NULL, 80, 89, 92, NULL, 80, 80, NULL, NULL, NULL, 7, 80, 221, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '408,410,409', NULL, NULL, NULL), +(1593, 'Wild dog', 'An unsuitable pet.', 62, 25, 25, 25, 1, 20, '10,15,5,10,30,5,30,30,30,10,30,5,40,5,5', NULL, NULL, 20, NULL, NULL, NULL, 6562, 6563, 6564, NULL, 6562, 6562, NULL, NULL, NULL, 7, 27, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1594, 'Wild dog', 'Looks like it\'s got Rabies!', 62, 25, 25, 25, 1, 20, '10,15,5,10,30,5,30,30,30,10,30,5,40,5,5', NULL, NULL, 20, NULL, NULL, NULL, 6562, 6563, 6564, NULL, 6562, 6562, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1600, 'Cave crawler', 'A spiky crawling critter. ', 23, 28, 30, 30, 38, NULL, '30,60,60,60,60,66,0,0,0,0,0,0,0,0,0', NULL, NULL, 25, 4, NULL, NULL, 227, 0, 228, NULL, 227, 227, NULL, NULL, NULL, 1, 16, 22, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1601, 'Cave crawler', 'A spiky crawling critter. ', 23, 28, 30, 30, 1, NULL, '30,60,60,60,60,66,0,0,0,0,0,0,0,0,0', NULL, NULL, 25, 4, NULL, NULL, 227, 0, 228, NULL, 227, 227, NULL, NULL, NULL, NULL, NULL, 22, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1602, 'Cave crawler', 'A spiky crawling critter. ', 23, 28, 30, 30, 1, NULL, '30,60,60,60,60,66,0,0,0,0,0,0,0,0,0', NULL, NULL, 25, 4, NULL, NULL, 227, 0, 228, NULL, 227, 227, NULL, NULL, NULL, NULL, NULL, 22, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1603, 'Cave crawler', 'A spiky crawling critter. ', 23, 28, 30, 30, 1, NULL, '30,60,60,60,60,66,0,0,0,0,0,0,0,0,0', NULL, NULL, 25, 4, NULL, NULL, 227, 0, 228, NULL, 227, 227, NULL, NULL, NULL, NULL, NULL, 22, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1604, 'Aberrant spectre', 'A very smelly ghost.', 90, 1, 1, 52, 1, 52, '40,70,90,80,30,40,45,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, 9466, 9468, 9467, NULL, 9466, 1507, 334, 335, 336, 5, 0, 90, 2, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(1605, 'Aberrant spectre', 'A very smelly ghost.', 90, 1, 1, 52, 1, 52, '40,70,90,80,30,40,45,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, 9466, 9468, 9467, NULL, 9466, 1507, 334, 335, 336, 5, 0, 90, 2, NULL, 1, NULL, NULL, NULL, 2, NULL, '0,0,0', NULL, NULL, NULL), +(1606, 'Aberrant spectre', 'A very smelly ghost.', 90, 1, 1, 52, 1, 52, '40,70,90,80,30,40,45,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, 9466, 9468, 9467, NULL, 9466, 1507, 334, 335, 336, 5, 0, 90, 2, NULL, 1, NULL, NULL, NULL, 2, NULL, '0,0,0', NULL, NULL, NULL), +(1607, 'Aberrant spectre', 'A very smelly ghost.', 90, 1, 1, 52, 1, 52, '40,70,90,80,30,40,45,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, 9466, 9468, 9467, NULL, 9466, 1507, 334, 335, 336, 5, 0, 90, 2, NULL, 1, NULL, NULL, NULL, 2, NULL, '0,0,0', NULL, NULL, NULL), +(1608, 'Kurask', 'Large, heavy, with sharp things attached to its head.', 97, 70, 105, 70, 1, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 1512, 1514, 1513, NULL, 1512, 1512, NULL, NULL, NULL, NULL, NULL, 97, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1609, 'Kurask', 'Large, heavy, with sharp things attached to its head.', 97, 70, 105, 70, 1, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 1512, 1514, 1513, NULL, 1512, 1512, NULL, NULL, NULL, NULL, NULL, 97, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1610, 'Gargoyle', 'Flies like a rock.', 105, 45, 104, 42, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 9454, 9455, 1518, NULL, 1516, 1516, NULL, NULL, NULL, NULL, NULL, 105, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(1611, 'Swarming turoth', 'Flies like a rock.', 105, 45, 104, 42, 49, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 1516, 0, 1518, NULL, 1516, 1516, NULL, NULL, NULL, 0, 84, 105, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(1612, 'Banshee', 'A tortured screaming soul.', 22, 9, 14, 5, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 9449, 9451, 9450, NULL, 1523, 1523, NULL, NULL, NULL, NULL, NULL, 22, NULL, NULL, 1, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(1613, 'Nechryael', 'An evil death demon.', 105, 75, 104, 75, 1, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 9487, 9489, 9488, NULL, 1528, 1528, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(1614, 'Death spawn', 'An evil death spawn.', 60, 1, 1, 68, 1, 68, NULL, NULL, 1, NULL, 5, NULL, NULL, 1540, 0, 9460, NULL, 1540, 1540, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1615, 'Abyssal demon', 'A denizen of the Abyss!', 150, 50, 67, 20, 1, NULL, '20,24,10,16,22,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 1537, 0, 1538, NULL, 1537, 1537, NULL, NULL, NULL, 1, 1, 150, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(1616, 'Basilisk', 'The eyes of evil.', 75, 80, 80, 75, 75, 75, NULL, NULL, NULL, NULL, 5, NULL, NULL, 1546, 1547, 1548, NULL, 1546, 1546, NULL, NULL, NULL, NULL, NULL, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1617, 'Basilisk', 'The eyes of evil.', 75, 80, 80, 75, 75, 75, NULL, NULL, NULL, NULL, 5, NULL, NULL, 1546, 1547, 1548, NULL, 1546, 1546, NULL, NULL, NULL, NULL, NULL, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1618, 'Bloodveld', 'The Tongue of Evil', 120, 30, 44, 30, 1, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 9130, 9132, 9131, NULL, 1552, 1552, NULL, NULL, NULL, NULL, NULL, 120, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(1619, 'Bloodveld', 'The Tongue of Evil', 120, 30, 44, 30, 1, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 9130, 9132, 9131, NULL, 1552, 1552, NULL, NULL, NULL, NULL, NULL, 120, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, '0,0,0', NULL, NULL, NULL), +(1620, 'Cockatrice', 'The winged reptile.', 37, 32, 32, 35, 32, NULL, '30,30,30,30,30,35,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 1562, 0, 1563, NULL, 1562, 1562, NULL, NULL, NULL, 2, 19, 37, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(1621, 'Cockatrice', 'The winged reptile.', 37, 32, 32, 35, 1, NULL, '30,30,30,30,30,35,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 1562, 0, 1563, NULL, 1562, 1562, NULL, NULL, NULL, NULL, NULL, 37, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(1622, 'Turoth', 'The slime of evil', 27, 30, 1, 30, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 1567, 1565, 1569, NULL, 1567, 1567, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1623, 'Turoth', 'The slime of evil', 27, 30, 1, 30, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 1567, 1565, 1569, NULL, 1567, 1567, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1624, 'Dust devil', 'The vacuumed face of evil.', 105, 70, 80, 70, 61, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 1557, 1555, 1558, NULL, 1557, 1557, NULL, NULL, NULL, 2, 28, 105, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1625, 'Smokedevil', 'The cave-dwelling cousin of the dust devils.', 87, 105, 105, 61, 61, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1557, 0, 1558, NULL, 0, 0, NULL, NULL, NULL, 2, 28, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1626, 'Turoth', 'It\'s a Turoth.', 79, 80, 85, 75, 75, 75, NULL, NULL, NULL, NULL, 5, NULL, NULL, 1595, 1596, 1597, NULL, 1595, 1595, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(1627, 'Turoth', 'It\'s a Turoth.', 79, 80, 85, 75, 75, 75, NULL, NULL, NULL, NULL, 5, NULL, NULL, 1595, 1596, 1597, NULL, 1595, 1595, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(1628, 'Turoth', 'It\'s a Turoth.', 79, 80, 85, 75, 75, 75, NULL, NULL, NULL, NULL, 5, NULL, NULL, 1595, 1596, 1597, NULL, 1595, 1595, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(1629, 'Turoth', 'It\'s a Turoth.', 79, 80, 85, 75, 75, 75, NULL, NULL, NULL, NULL, 5, NULL, NULL, 1595, 1596, 1597, NULL, 1595, 1595, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(1630, 'Turoth', 'It\'s a Turoth.', 79, 80, 85, 75, 75, 75, NULL, NULL, NULL, NULL, 5, NULL, NULL, 1595, 1596, 1597, NULL, 1595, 1595, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(1631, 'Rockslug', 'A rocky slug.', 79, 80, 85, 75, 75, 75, NULL, NULL, NULL, NULL, 5, NULL, NULL, 1595, 1596, 1597, NULL, 1595, 1595, NULL, NULL, NULL, 7, 69, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(1632, 'Rockslug', 'A rocky slug.', 79, 80, 85, 75, 75, 75, NULL, NULL, NULL, NULL, 5, NULL, NULL, 1595, 1596, 1597, NULL, 1595, 1595, NULL, NULL, NULL, 7, 69, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(1633, 'Pyrefiend', 'A small fire demon.', 45, 22, 29, 19, 19, 10, '52,30,22,1,1,0,0,0,0,0,0,10,10,10,0', NULL, NULL, 60, 5, NULL, NULL, 8080, 8084, 8078, 8081, NULL, NULL, NULL, NULL, NULL, 4, 66, 45, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(1634, 'Pyrefiend', 'A small fire demon.', 45, 22, 29, 19, 19, 10, '52,30,22,1,1,0,0,0,0,0,0,10,10,10,0', NULL, NULL, 60, 5, NULL, NULL, 8080, 8084, 8078, 8081, NULL, NULL, NULL, NULL, NULL, 4, 66, 45, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(1635, 'Pyrefiend', 'A small fire demon.', 45, 22, 29, 19, 19, 10, '52,30,22,1,1,0,0,0,0,0,0,10,10,10,0', NULL, NULL, 60, 5, NULL, NULL, 8080, 8084, 8078, 8081, NULL, NULL, NULL, NULL, NULL, 4, 66, 45, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(1636, 'Pyrefiend', 'A small fire demon.', 45, 22, 29, 19, 19, 10, '52,30,22,1,1,0,0,0,0,0,0,10,10,10,0', NULL, NULL, 60, 5, NULL, NULL, 8080, 8084, 8078, 8081, NULL, NULL, NULL, NULL, NULL, 4, 66, 45, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(1637, 'Jelly', 'It\'s a Jelly.', 75, 40, 45, 40, 40, 40, NULL, NULL, NULL, NULL, 5, NULL, NULL, 8569, 8571, 8570, NULL, 8569, 8569, NULL, NULL, NULL, 2, 51, 75, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(1638, 'Jelly', 'Doesn\'t look so tough...', 70, 1, 1, 49, 49, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 8569, 0, 8570, NULL, 0, 0, NULL, NULL, NULL, 2, 51, 75, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(1639, 'Jelly', 'Wibbly.', 70, 1, 1, 49, 49, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 8569, 0, 8570, NULL, 0, 0, NULL, NULL, NULL, 2, 51, 75, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(1640, 'Jelly', 'There\'s always room for jelly.', 140, 1, 1, 49, 49, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 8569, 0, 8570, NULL, 0, 0, NULL, NULL, NULL, 2, 51, 75, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(1641, 'Jelly', NULL, 75, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 8569, 8571, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 75, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(1642, 'Jelly', NULL, 75, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 8569, 8571, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 75, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(1643, 'Infernal Mage', 'An evil magic user.', 60, 1, 1, 52, 1, 52, '30,50,50,50,20,50,50,22,0,0,0,0,0,0,0', NULL, NULL, 12, NULL, NULL, NULL, 811, 0, 836, NULL, 811, 811, 99, 100, 101, 3, 49, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1644, 'Infernal Mage', 'An evil magic user.', 60, 1, 1, 52, 1, 52, '30,50,50,50,20,50,50,22,0,0,0,0,0,0,0', NULL, NULL, 12, NULL, NULL, NULL, 811, 0, 836, NULL, 811, 811, 99, 100, 101, 3, 49, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1645, 'Infernal Mage', 'An evil magic user.', 60, 1, 1, 52, 1, 52, '30,50,50,50,20,50,50,22,0,0,0,0,0,0,0', NULL, NULL, 12, NULL, NULL, NULL, 811, 0, 836, NULL, 811, 811, 99, 100, 101, 3, 49, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1646, 'Infernal Mage', 'An evil magic user.', 60, 1, 1, 52, 1, 52, '30,50,50,50,20,50,50,22,0,0,0,0,0,0,0', NULL, NULL, 12, NULL, NULL, NULL, 811, 0, 836, NULL, 811, 811, 99, 100, 101, 3, 49, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1647, 'Infernal Mage', 'An evil magic user.', 60, 1, 1, 52, 1, 52, '30,50,50,50,20,50,50,22,0,0,0,0,0,0,0', NULL, NULL, 12, NULL, NULL, NULL, 811, 0, 836, NULL, 811, 811, 99, 100, 101, 3, 49, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1648, 'Crawling Hand', 'Now THAT\'S handy.', 16, 5, 5, 5, 1, NULL, '5,0,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 20, 5, NULL, NULL, 9125, 9127, 9126, NULL, 9125, 9125, NULL, NULL, NULL, 9, 21, 19, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1649, 'Crawling Hand', 'Gimmie five. Actually', 5, 8, 8, 8, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 9125, 0, 9126, NULL, 0, 0, NULL, NULL, NULL, 9, 21, 19, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1650, 'Crawling Hand', 'Gimmie five. Actually', 5, 8, 8, 8, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 9125, 0, 9126, NULL, 0, 0, NULL, NULL, NULL, 9, 21, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1651, 'Crawling Hand', 'Gimmie five. Actually', 5, 8, 8, 8, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 9125, 0, 9126, NULL, 0, 0, NULL, NULL, NULL, 9, 21, 19, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1652, 'Crawling Hand', 'Gimmie five. Actually', 5, 8, 8, 8, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 9125, 0, 9126, NULL, 0, 0, NULL, NULL, NULL, 9, 21, 19, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1653, 'Crawling Hand', 'Now THAT\'s handy.', 18, 13, 13, 13, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 9444, 0, 9445, NULL, 0, 0, NULL, NULL, NULL, 9, 21, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1654, 'Crawling Hand', 'I\'m glad it\'s just the hand I can see...', 18, 13, 13, 13, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 9444, 0, 9445, NULL, 0, 0, NULL, NULL, NULL, 9, 21, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1655, 'Crawling Hand', 'A big severed hand.', 18, 13, 13, 13, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 9444, 0, 9445, NULL, 0, 0, NULL, NULL, NULL, 9, 21, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1656, 'Crawling Hand', 'Give the guy a big hand.....', 18, 13, 13, 13, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 9444, 0, 9445, NULL, 0, 0, NULL, NULL, NULL, 9, 21, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1657, 'Crawling Hand', 'A big severed hand.', 18, 13, 13, 13, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 9444, 0, 9445, NULL, 0, 0, NULL, NULL, NULL, 9, 21, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1658, 'Robe Store owner', 'A Supplier of Magical robes.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1660, 'Skullball Boss', 'He\'s in charge of the Skullball Course.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1661, 'Agility Boss', 'He\'s in charge of the Agility Course.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1662, 'Skullball Trainer', 'A skullball guide.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1663, 'Agility Trainer', 'A werewolf agility trainer.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1665, 'Werewolf', 'Looks like he\'s guarding a trapdoor...', 100, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(1675, 'Gardener Ghost', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(1681, 'Moss giant', 'His beard seems to have a life of its own.', 120, 60, 60, 60, 1, 1, '66,62,0,0,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, 4666, 4665, 4668, NULL, 4666, 4666, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '449,451,450', NULL, NULL, NULL), +(1686, 'Ghost disciple', 'A ghost disciple.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(1688, 'Ak-Haranu', 'A trader from across the eastern sea.', 10, 1, 1, 1, 1, 1, NULL, NULL, NULL, 0, NULL, 2, NULL, 386, 0, 836, NULL, 0, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1691, 'Undead cow', 'It\'s an undead cow.', 4, 3, 3, 3, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5849, 0, 5851, NULL, 0, 0, NULL, NULL, NULL, 8, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1692, 'Undead chicken', 'Yep', 7, 5, 5, 5, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5387, 0, 5389, NULL, 0, 0, NULL, NULL, NULL, 7, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '355,357,356', NULL, NULL, NULL), +(1693, 'Giant lobster', 'An extremely vicious lobster.', 128, 30, 30, 30, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6265, 0, 6267, NULL, 0, 0, NULL, NULL, NULL, 6, 71, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1695, 'Old crone', 'An old', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1696, 'Old man', 'A creaky old man.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1697, 'Ghost villager', 'A spooky ghost villager.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(1698, 'Tortured soul', 'This poor soul cannot understand why it has not passed to the next world.', 85, 28, 28, 38, 1, 38, NULL, NULL, NULL, 60, 5, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 3, 36, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1699, 'Ghost shopkeeper', 'Beware the ghostly shopkeeper\'s wares!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(1700, 'Ghost innkeeper', 'Doesn\'t look like the bar\'s open anymore.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(1701, 'Ghost farmer', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(1702, 'Ghost banker', 'A ghost banker.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(1703, 'Ghost sailor', 'A ghost sailor.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(1704, 'Ghost captain', 'A ghostship captain.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(1705, 'Ghost captain', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(1706, 'Ghost guard', 'This ghost guards the gates of Port Phasmatys.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(1707, 'Ghost (?)', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(1708, 'Ghost (?)', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(1710, 'H.A.M. Guard', 'A guard for the humans against monster group.', 31, 22, 22, 22, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(1711, 'H.A.M. Guard', 'A guard for the humans against monster group.', 31, 22, 22, 22, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(1712, 'H.A.M. Guard', 'A guard for the humans against monster group.', 31, 22, 22, 22, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(1713, 'H.A.M. Deacon', 'A deacon in the Humans Against Monsters group. A rather enthusiastic chap.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(1714, 'H.A.M. Member', 'A member of the \'Humans Against Monsters\' group.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(1715, 'H.A.M. Member', 'A member of the \'Humans Against Monsters\' group.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(1716, 'H.A.M. Member', 'A member of the \'Humans Against Monsters\' group.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(1717, 'H.A.M. Member', 'A member of the \'Humans Against Monsters\' group.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(1718, 'Jimmy the Chisel', 'A young man with a dark and mysterious past.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1739, 'Oak', 'Manages the mill.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1740, 'Yew', 'One of Sigmund\'s elite guards.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1741, 'Evergreen', 'One of Sigmund\'s elite guards.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1742, 'Evergreen', 'A member of Sigmund\'s H.A.M. splinter group.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1743, 'Evergreen', 'A member of Sigmund\'s H.A.M. splinter group.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1744, 'Tree', 'A member of Sigmund\'s H.A.M. splinter group.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1745, 'Dead tree', 'A member of Sigmund\'s H.A.M. splinter group.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1746, 'Achey Tree', 'A member of Sigmund\'s H.A.M. splinter group.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1747, 'Tree', 'A member of Sigmund\'s H.A.M. splinter group.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1748, 'Tree', 'A member of Sigmund\'s H.A.M. splinter group.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1751, 'Terrorbird', NULL, 34, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1010, 1012, 1013, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1752, 'Mounted terrorbird gnome', 'These gnomes know how to get around!', 37, 33, 33, 33, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6790, 0, 6791, NULL, 0, 0, NULL, NULL, NULL, 6, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1754, 'Crow', 'A farmer\'s enemy.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1757, 'Farmer', 'He grows the crops in this area.', 7, 5, 5, 5, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7181, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1758, 'Farmer', 'He grows the crops in this area.', 7, 5, 5, 5, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7181, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1759, 'Farmer', 'Farming.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1760, 'Farmer', 'He grows the crops in this area.', 7, 5, 5, 5, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7181, 0, 7185, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1761, 'Farmer', 'Farming the wheat.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1763, 'Sheep', 'White and fluffy.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1766, 'Cow calf', 'Young, but still beefy.', 6, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 5849, 5850, 5851, NULL, 5849, 5849, NULL, NULL, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '366,368,367', NULL, NULL, NULL), +(1767, 'Cow', 'Converts grass to beef.', 8, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 5849, 5850, 5851, NULL, 5849, 5849, NULL, NULL, NULL, 8, 20, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '369,371,370', NULL, NULL, NULL), +(1768, 'Cow calf', 'Young, but still beefy.', 6, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 5849, 5850, 5851, NULL, 5849, 5849, NULL, NULL, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '366,368,367', NULL, NULL, NULL), +(1769, 'Goblin', 'An ugly green creature.', 5, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, 7, 38, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(1770, 'Goblin', 'An ugly green creature.', 5, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, 7, 38, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(1771, 'Goblin', 'An ugly green creature.', 5, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, 7, 38, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL); +INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES +(1772, 'Goblin', 'An ugly green creature.', 5, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, 7, 38, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(1773, 'Goblin', 'An ugly green creature.', 5, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, 7, 38, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(1774, 'Goblin', 'An ugly green creature.', 5, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, 7, 38, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(1775, 'Goblin', 'An ugly green creature.', 5, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, 7, 38, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(1776, 'Goblin', 'An ugly green creature.', 5, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, 7, 38, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(1794, 'Hammerspike Stoutbeard', 'He looks quite independent in an aggressive and business like way.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '498,500,499', NULL, NULL, NULL), +(1795, 'Dwarf gang member', 'A short stout menacing fellow.', 35, 25, 25, 25, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 9, 29, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1796, 'Dwarf gang member', 'A short stout menacing fellow.', 35, 25, 25, 25, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 9, 29, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1797, 'Dwarf gang member', 'A short stout menacing fellow.', 35, 25, 25, 25, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 9, 29, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1802, 'Slagilith', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1750, 1751, 1752, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1803, 'Rock pile', 'A pile of boulders.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1805, 'Guard', 'He seems to be guarding a pile of rocks. Interesting job.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(1806, 'Guard', 'He seems to be guarding a single rock. Interesting job.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(1807, 'Hamal the Chieftain', 'The Chieftain of the mountain camp.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1812, 'The Kendal', 'Is that a bear... or a man?', 85, 23, 23, 23, 23, 23, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1760, 0, 1759, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1813, 'The Kendal', NULL, 50, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1760, 1758, 1759, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1814, 'Camp dweller', 'One of the inhabitants of the camp.', 15, 11, 11, 11, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1815, 'Camp dweller', 'One of the inhabitants of the camp.', 15, 11, 11, 11, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1816, 'Camp dweller', 'One of the inhabitants of the camp.', 15, 11, 11, 11, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1817, 'Camp dweller', 'One of the inhabitants of the camp.', 15, 11, 11, 11, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1818, 'Camp dweller', 'One of the inhabitants of the camp.', 15, 11, 11, 11, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1819, 'Mountain Goat', 'Looks a little underfed.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1820, 'Mountain Goat', 'This goat belongs to the mountain camp people.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1822, 'Cave goblin', 'A goblin with big bulging eyes.', 1, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6001, 0, 6003, NULL, 0, 0, NULL, NULL, NULL, 7, 38, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(1823, 'Cave goblin', 'A goblin with big bulging eyes.', 1, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6001, 0, 6003, NULL, 0, 0, NULL, NULL, NULL, 7, 38, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(1824, 'Cave goblin', 'A goblin with big bulging eyes.', 1, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6001, 0, 6003, NULL, 0, 0, NULL, NULL, NULL, 7, 38, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(1825, 'Cave goblin', 'A goblin with big bulging eyes.', 1, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6001, 0, 6003, NULL, 0, 0, NULL, NULL, NULL, 7, 38, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(1827, 'Gargoyle', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1828, 'Giant frog', 'It didn\'t get that big eating flies!', 100, 45, 45, 60, 32, NULL, '10,10,10,10,10,10,1,10,10,10,10,37,0,0,0', NULL, NULL, NULL, 6, NULL, NULL, 1793, 1794, 1795, NULL, 1793, 1793, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1829, 'Big frog', 'It didn\'t get that big eating flies.', 37, 1, 1, 26, 26, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1793, 0, 1795, NULL, 0, 0, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1831, 'Cave slime', 'A foul-smelling blob of protoplasm.', 27, 1, 1, 19, 19, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 1789, 0, 1792, NULL, 0, 0, NULL, NULL, NULL, 1, 18, 25, NULL, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(1832, 'Cave bug', 'A nasty crawling critter.', 8, 1, 1, 6, 6, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 6079, 0, 6082, NULL, 0, 0, NULL, NULL, NULL, 2, 15, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1833, 'Cave bug larva', 'A little', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1834, 'Candle seller', 'Has an odd smell about him.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1840, 'Dwarven Engineer', 'A short angry guy.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1842, 'Khorvak, a dwarven engineer', 'The little guy is having trouble standing up right.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1843, 'Dwarven Ferryman', 'It\'s probably you who will be paying the ferryman.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1844, 'Dwarven Ferryman', 'It\'s probably you who will be paying the ferryman.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1850, 'Arzinian Avatar of Strength', 'It is the avatar of the Arzinian Being of Bordanzan', 114, 40, 40, 40, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1840, 0, 1841, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1851, 'Arzinian Avatar of Strength', NULL, 110, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1840, 1842, 1843, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1852, 'Arzinian Avatar of Strength', NULL, 70, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1840, 1842, 1843, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1853, 'Arzinian Avatar of Ranging', 'It is the avatar of the Arzinian Being of Bordanzan', 114, 30, 30, 40, 40, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1843, 0, 1841, NULL, 0, 1843, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1854, 'Arzinian Avatar of Ranging', NULL, 110, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1840, 1842, 1843, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1855, 'Arzinian Avatar of Ranging', NULL, 70, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1840, 1842, 1843, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1856, 'Arzinian Avatar of Magic', 'It is the avatar of the Arzinian Being of Bordanzan', 114, 30, 30, 40, 1, 40, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1844, 0, 1841, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1857, 'Arzinian Avatar of Magic', NULL, 110, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1840, 1842, 1843, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1858, 'Arzinian Avatar of Magic', NULL, 70, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1840, 1842, 1843, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1859, 'Arzinian Being of Bordanzan', 'It\'s the Arzinian Being', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1861, 'Ranged Tutor', 'Nemarti', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1863, 'Drunken Ali', 'Drunk man.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1864, 'Ali The barman', 'A hassled looking barman.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1865, 'Ali the Kebab seller', 'A kebab seller.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1866, 'Market seller', 'A market stall keeper.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1867, 'Ali the Camel Man', 'Ali the discount animal seller.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1868, 'Street urchin', 'A mischievous looking child.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1871, 'Ali the Hag', 'An old Hag named Alice.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1872, 'Ali the Snake Charmer', 'A snake charmer.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '3609,3608,3610', NULL, NULL, NULL), +(1873, 'Ali the Camel', 'A foul tempered ugly lumpy yellow horse prone to spitting.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1874, 'Desert snake', 'A slithering serpent.', 8, 4, 4, 6, 6, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 275, 0, 278, NULL, 0, 0, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '3609,3608,3610', NULL, NULL, NULL), +(1875, 'Snake', 'A toothless old Snake.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '3609,3608,3610', NULL, NULL, NULL), +(1885, 'Bandit champion', 'A very tough-looking bandit.', 55, 39, 39, 39, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1886, 'Cowardly Bandit', 'Probably the weakest bandit in the world ....ever.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1902, 'Ali the Operator', 'Smooth operator.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(1904, 'Menaphite Thug', 'Menaphite thug.', 41, 29, 29, 29, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1905, 'Menaphite Thug', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 395, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1906, 'Tough Guy', 'Tough looking Menaphite.', 114, 39, 39, 39, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 395, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1911, 'Desert Phoenix', 'Definitely not a chicken.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1913, 'Kamil', 'A tough-looking criminal.', 50, 20, 55, 20, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 412, 404, 9055, NULL, 412, 412, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1914, 'Dessous', NULL, 200, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1915, 'Dessous', NULL, 200, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1917, 'Bandit shopkeeper', 'I guess he sells what he steals...?', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1918, 'Archaeologist', 'Hardened by the cutthroat world of archaeology.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1919, 'Stranger', 'Very mysterious looking...', 82, 58, 58, 58, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 377, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1921, 'Bartender', 'Looks like a rough-and-ready type.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1926, 'Bandit', 'A tough-looking criminal.', 65, 30, 70, 30, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 412, 404, 9055, NULL, 412, 412, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1931, 'Bandit', 'This is an NPC.', 65, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 100, 5, NULL, NULL, 412, 404, 9055, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1935, 'Ice troll', 'An ice troll.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1936, 'Ice troll', 'Brrrrr...he must be cold!', 91, 64, 64, 64, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 9, 83, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1937, 'Ice troll', 'Brrrrr...he must be cold!', 91, 64, 64, 64, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 9, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1938, 'Ice troll', 'Brrrrr...he must be cold!', 91, 64, 64, 64, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 9, 83, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1939, 'Ice troll', 'Brrrrr...he must be cold!', 91, 64, 64, 64, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 9, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1940, 'Ice troll', 'Brrrrr...he must be cold!', 91, 64, 64, 64, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 9, 83, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1941, 'Ice troll', 'Brrrrr...he must be cold!', 91, 64, 64, 64, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 9, 83, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1942, 'Ice troll', 'Brrrrr...he must be cold!', 91, 64, 64, 64, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 9, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1951, 'Ice wolf', 'Not a man\'s best friend.', 72, 60, 60, 60, 1, 30, '40,120,150,150,150,40,130,75,0,0,0,0,0,0,0', NULL, NULL, 28, NULL, NULL, NULL, 6579, 6578, 6576, NULL, 6579, 6579, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1952, 'Ice wolf', 'Not a man\'s best friend.', 72, 60, 60, 60, 1, 30, '40,120,150,150,150,40,130,75,0,0,0,0,0,0,0', NULL, NULL, 28, NULL, NULL, NULL, 6579, 6578, 6576, NULL, 6579, 6579, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1953, 'Ice wolf', 'Not a man\'s best friend.', 72, 60, 60, 60, 1, 30, '40,120,150,150,150,40,130,75,0,0,0,0,0,0,0', NULL, NULL, 28, NULL, NULL, NULL, 6579, 6578, 6576, NULL, 6579, 6579, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1954, 'Ice wolf', 'Not a man\'s best friend.', 72, 60, 60, 60, 1, 30, '40,120,150,150,150,40,130,75,0,0,0,0,0,0,0', NULL, NULL, 28, NULL, NULL, NULL, 6579, 6578, 6576, NULL, 6579, 6579, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1955, 'Ice wolf', 'Not a man\'s best friend.', 72, 60, 60, 60, 1, 30, '40,120,150,150,150,40,130,75,0,0,0,0,0,0,0', NULL, NULL, 28, NULL, NULL, NULL, 6579, 6578, 6576, NULL, 6579, 6579, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1956, 'Ice wolf', 'Not a man\'s best friend.', 72, 60, 60, 60, 1, 30, '40,120,150,150,150,40,130,75,0,0,0,0,0,0,0', NULL, NULL, 28, NULL, NULL, NULL, 6579, 6578, 6576, NULL, 6579, 6579, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1958, 'Mummy', 'Highly flammable!', 78, 55, 55, 55, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5549, 0, 5555, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1961, 'Mummy', 'A tightly-wrapped monster.', 78, 55, 55, 55, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5549, 0, 5555, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1962, 'Mummy', 'Spooky', 78, 55, 55, 55, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 5549, 0, 5555, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1963, 'Mummy', 'A victim of poor first aid.', 78, 55, 55, 55, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 5549, 0, 5555, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1964, 'Mummy', 'But who\'s the daddy?', 78, 55, 55, 55, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5549, 0, 5555, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1965, 'Mummy', 'A tightly-wrapped monster.', 78, 55, 55, 55, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5549, 0, 5555, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1967, 'Mummy', 'A victim of poor first aid.', 78, 55, 55, 55, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5549, 0, 5555, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1969, 'Scarabs', 'I think they\'re some kind of beetle...', 88, 62, 62, 62, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1948, 0, 1946, NULL, 0, 0, NULL, NULL, NULL, 7, 70, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1972, 'Rasolo', 'A wandering merchant.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1973, 'Giant skeleton', 'A giant skeleton.', 85, 60, 60, 60, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5499, 0, 5503, NULL, 0, 0, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1976, 'Shadow Hound', 'Looks hungry!', 68, 48, 48, 48, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6565, 0, 6564, NULL, 0, 0, NULL, NULL, NULL, 7, 27, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1977, 'Fareed', NULL, 130, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 799, 434, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1978, 'Slave', 'A malnourished worker.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1979, 'Slave', 'A malnourished worker.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1980, 'Embalmer', 'A strange-smelling merchant.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1981, 'Carpenter', 'A block of a man.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1988, 'Priest', 'Preach my brother!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1991, 'Possessed Priest', 'He has a dangerous glint in his eye.', 57, 30, 30, 40, 40, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 429, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 1, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1993, 'Crocodile', NULL, 63, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 7588, 7590, 7591, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 62, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1994, 'Jackal', 'He has had his day.', 100, 35, 35, 35, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6568, 0, 6567, NULL, 0, 0, NULL, NULL, NULL, 6, 27, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1995, 'Locust', 'Obnoxious', 34, 12, 12, 12, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 2015, 0, 2013, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1997, 'Plague frog', 'A very smelly frog.', 42, 15, 15, 15, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1021, 0, 1022, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1998, 'Plague cow', 'I might give the burgers a miss in this town.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 6, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(1999, 'Plague cow', 'I don\'t fancy eating any part of this.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 6, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2001, 'Scarab swarm', 'I think they\'re some kind of beetle.', 900, 9, 9, 9, 1, NULL, NULL, NULL, NULL, 60, 2, NULL, NULL, 1948, 0, 1946, NULL, 0, 0, NULL, NULL, NULL, 6, 70, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2015, 'Mummy', 'This mummy looks like it means business!', 71, 50, 50, 50, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5554, 0, 5555, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2016, 'Mummy', 'An irate warrior-mummy.', 71, 50, 50, 50, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5554, 0, 5555, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2017, 'Mummy', 'This mummy looks like it means business!', 71, 50, 50, 50, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5554, 0, 5555, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2018, 'Mummy', 'An irate mummy.', 71, 50, 50, 50, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5554, 0, 5555, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2019, 'Mummy', 'A wizened old warrior.', 71, 50, 50, 50, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5554, 0, 5555, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2021, 'Light creature', 'A shimmering creature of blue light.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2024, 'Strange Old Man', 'Wonder how long he\'s been here...', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2025, 'Ahrim the Blighted', 'A vengeful spirit corrupted by dark magic.', 100, 70, 70, 70, 70, 70, '-1,12,73,65,206,-19,232,170,20,73,68,100,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 1162, 420, 7197, NULL, 1162, 1162, 155, 156, 157, 3, NULL, NULL, 2, NULL, 1, 96, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2026, 'Dharok the Wretched', 'A vengeful spirit corrupted by dark magic.', 100, 70, 70, 70, 70, 70, '103,-4,-58,-50,252,-18,234,250,-30,-12,60,140,0,0,0', NULL, NULL, 0, 5, NULL, NULL, 2066, 2063, 7197, NULL, 2066, 2066, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2027, 'Guthan the Infested', 'A vengeful spirit corrupted by dark magic.', 100, 70, 70, 70, 70, 70, '75,75,-50,-50,259,-19,241,257,-25,-11,60,100,0,0,0', NULL, NULL, 0, 5, NULL, NULL, 2080, 2079, 7197, NULL, 2080, 2080, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2028, 'Karil the Tainted', 'A vengeful spirit corrupted by dark magic.', 100, 70, 70, 70, 74, 70, '-26,79,160,90,71,100,106,100,105,105,0,0,0,0,0', NULL, NULL, 16, NULL, NULL, NULL, 2075, 424, 7197, NULL, 2075, 2075, NULL, 27, NULL, 0, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2029, 'Torag the Corrupted', 'A vengeful spirit corrupted by dark magic.', 100, 70, 70, 70, 70, 70, '-4,-4,-61,-50,262,-19,244,260,-25,-11,100,90,0,0,0', NULL, NULL, 0, 5, NULL, NULL, 2068, 404, 7197, NULL, 2068, 2068, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2030, 'Verac the Defiled', 'A vengeful spirit corrupted by dark magic.', 100, 76, 70, 70, 70, 70, '-2,68,-33,-30,221,-11,222,235,-25,100,130,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 2062, 2063, 7197, NULL, 2062, 2062, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2031, 'Bloodworm', 'I think I should keep my distance..', 44, 45, 45, 45, 45, 45, '50,60,65,55,70,10,30,20,0,0,0,0,0,0,0', NULL, NULL, 26, 6, NULL, NULL, 2070, 2072, 2073, NULL, 2070, 2070, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2032, 'Crypt rat', 'A nasty little rodent.', 35, 35, 35, 35, 35, 35, '35,50,35,40,55,15,20,0,0,0,0,0,0,0,0', NULL, NULL, 20, NULL, NULL, NULL, 240, 241, 243, NULL, 240, 240, NULL, NULL, NULL, 9, 67, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(2033, 'Giant crypt rat', 'A nasty overgrown rodent.', 70, 55, 55, 55, 55, 55, '45,75,68,78,75,20,45,25,0,0,0,0,0,0,0', NULL, NULL, 30, NULL, NULL, NULL, 4933, 4934, 4935, NULL, 4933, 4933, NULL, NULL, NULL, 9, 67, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(2034, 'Crypt spider', 'Incey wincey.', 60, 45, 45, 45, 45, 45, '30,55,35,65,65,20,50,5,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 6249, 6250, 6251, NULL, 6249, 6249, NULL, NULL, NULL, 7, 76, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '537,539,538', NULL, NULL, NULL), +(2035, 'Giant crypt spider', 'Not very incey wincey.', 80, 60, 60, 60, 60, 60, '55,80,45,85,75,25,60,25,0,0,0,0,0,0,0', NULL, NULL, 35, 5, NULL, NULL, 5327, 5328, 5329, NULL, 5327, 5327, NULL, NULL, NULL, 7, 76, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '537,539,538', NULL, NULL, NULL), +(2036, 'Skeleton', 'Could do with gaining a few pounds.', 72, 62, 50, 62, 62, 62, '45,20,20,20,70,20,55,75,76,20,60,20,0,0,0', NULL, NULL, 20, NULL, NULL, NULL, 5487, 5513, 5491, NULL, 5487, 5487, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(2037, 'Skeleton', 'Could do with gaining a few pounds.', 72, 62, 62, 62, 62, 62, '45,20,20,20,65,20,50,69,68,22,65,23,0,0,0', NULL, NULL, 20, NULL, NULL, NULL, 5487, 5513, 5491, NULL, 5487, 5487, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(2044, 'Zogre', NULL, 71, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2045, 'Zogre', NULL, 71, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2046, 'Zogre', NULL, 71, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2047, 'Zogre', NULL, 71, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2048, 'Zogre', NULL, 71, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2049, 'Zogre', NULL, 71, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2050, 'Skogre', NULL, 71, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2051, 'Zogre', NULL, 71, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2052, 'Zogre', NULL, 71, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2053, 'Zogre', NULL, 71, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2054, 'Zogre', NULL, 71, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2055, 'Zogre', NULL, 71, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2056, 'Skogre', NULL, 71, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2057, 'Skogre', NULL, 71, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2058, 'Hole in the wall', 'What could be hiding in that crack in the wall?', 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 7, 87, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(2060, 'Slash Bash', NULL, 103, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2067, 'Fishing spot', 'I can see fish swimming in the water.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2069, 'Cave goblin miner', 'This one is slacking off.', 7, 5, 5, 5, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6007, 0, 6003, NULL, 0, 0, NULL, NULL, NULL, 6, 38, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(2070, 'Cave goblin miner', 'This one is slacking off.', 7, 5, 5, 5, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6007, 0, 6003, NULL, 0, 0, NULL, NULL, NULL, 6, 38, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(2071, 'Cave goblin miner', 'This one is slacking off.', 7, 5, 5, 5, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6007, 0, 6003, NULL, 0, 0, NULL, NULL, NULL, 6, 38, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(2072, 'Cave goblin miner', 'This one is slacking off.', 7, 5, 5, 5, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6007, 0, 6003, NULL, 0, 0, NULL, NULL, NULL, 6, 38, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(2073, 'Cave goblin guard', 'He protects the miners.', 21, 15, 15, 15, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6007, 0, 6003, NULL, 0, 0, NULL, NULL, NULL, 6, 38, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(2074, 'Cave goblin guard', 'He protects the miners.', 21, 15, 15, 15, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6007, 0, 6003, NULL, 0, 0, NULL, NULL, NULL, 6, 38, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(2075, 'Cave goblin miner', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(2076, 'Cave goblin miner', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(2077, 'Cave goblin miner', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(2078, 'Cave goblin miner', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(2091, 'Secretary', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5327, 5328, 5329, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2092, 'Purple Pewter Secretary', 'The head secretary of the Purple Pewter mining company.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2093, 'Yellow Fortune Secretary', 'The head secretary of the Yellow Fortune mining company.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2094, 'Blue Opal Secretary', 'The head secretary of the Blue Opal mining company.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2095, 'Green Gemstone Secretary', 'The head secretary of the Green Gemstone mining company.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2096, 'White Chisel Secretary', 'The head secretary of the White Chisel mining company.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2097, 'Silver Cog Secretary', 'The head secretary of the Silver Cog mining company.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2098, 'Brown Engine Secretary', 'The head secretary of the Brown Engine mining company.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2100, 'Purple Pewter Director', 'One of the leaders of the business Consortium', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2101, 'Blue Opal Director', 'One of the leaders of the business Consortium', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2102, 'Yellow Fortune Director', 'One of the leaders of the business Consortium', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2103, 'Green Gemstone Director', 'One of the leaders of the business Consortium', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2104, 'White Chisel Director', 'One of the leaders of the business Consortium', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2105, 'Silver Cog Director', 'One of the leaders of the business Consortium', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2106, 'Brown Engine Director', 'One of the leaders of the business Consortium', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2109, 'Trader', 'A trader for the Purple Pewter mining company.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2110, 'Trader', 'A trader for the Purple Pewter mining company.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2111, 'Trader', 'A trader for the Blue Opal mining company.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2112, 'Trader', 'A trader for the Blue Opal mining company.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2113, 'Trader', 'A trader for the Yellow Fortune mining company.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2114, 'Trader', 'A trader for the Yellow Fortune mining company.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2115, 'Trader', 'A trader for the Green Gemstone mining company.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2116, 'Trader', 'A trader for the Green Gemstone mining company.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2117, 'Trader', 'A trader for the White Chisel mining company.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2118, 'Trader', 'A trader for the White Chisel mining company.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2119, 'Trader', 'A trader for the Silver Cog mining company.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2120, 'Trader', 'A trader for the Silver Cog mining company.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2121, 'Trader', 'A trader for the Brown Engine mining company.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2122, 'Trader', 'A trader for the Brown Engine mining company.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2127, 'Trade Referee', 'He is regulating the flow of goods on the trade floor and maintaining order.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2130, 'Black Guard', 'A member of the Black Guard', 48, 34, 34, 34, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 6, 29, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES +(2131, 'Black Guard', 'A member of the Black Guard', 48, 34, 34, 34, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 6, 29, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2132, 'Black Guard', 'A member of the Black Guard', 48, 34, 34, 34, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 6, 29, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2133, 'Black Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2134, 'Black Guard Berserker', 'An elite member of the Black Guard.', 54, 38, 38, 38, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 6, 29, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2135, 'Black Guard Berserker', 'An elite member of the Black Guard.', 54, 38, 38, 38, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 6, 29, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2136, 'Black Guard Berserker', 'An elite member of the Black Guard.', 54, 38, 38, 38, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 6, 29, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2138, 'Gnome traveller', 'A gnome traveller, visiting Keldagrim.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'Buying low-level skilling items!', NULL), +(2140, 'Dromund\'s cat', 'Very protective of his master... and his property.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2141, 'Blasidar the sculptor', 'Makes sculptures.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2163, 'Banker', 'A rather personable banker lady.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2164, 'Banker', 'A rather serious old fella.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2165, 'Librarian', 'He takes care of the library and its many books.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2167, 'Customer', 'A customer looking for books.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2168, 'Customer', 'Looks like a human traveler visiting the library.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2170, 'Rind the gardener', 'He tends to the plants in the palace garden.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2171, 'Factory Manager', 'Looks after the factory.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2172, 'Factory Worker', 'Works hard at whatever it is he does.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2173, 'Factory Worker', 'Works hard at whatever it is he does.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2174, 'Factory Worker', 'Works hard at whatever it is he does.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2175, 'Factory Worker', 'Works hard at whatever it is he does.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2177, 'Inn Keeper', 'A rich landlord', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2178, 'Barmaid', 'These Dwarf ladies are so attractive!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2180, 'Cart conductor', 'He makes sure the carts don\'t run anyone over.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2181, 'Cart conductor', 'He makes sure the carts don\'t run anyone over.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2182, 'Cart conductor', 'He makes sure the carts don\'t run anyone over.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2183, 'Cart conductor', 'He makes sure the carts don\'t run anyone over.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2184, 'Cart conductor', 'He makes sure the carts don\'t run anyone over.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2185, 'Cart conductor', 'Remember: don\'t drink and ride in mine carts.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2186, 'Cart conductor', 'Keeps the line clear of traffic.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2187, 'Rowdy dwarf', 'A loud', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2205, 'Dwarven Boatman', 'You cannot see his ship', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2207, 'Dwarven Miner', 'He carries a heavy load.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2234, 'Master Farmer', 'A master at farming.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2235, 'Master Farmer', 'A master at farming.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2236, 'Market Guard', 'He guards the Draynor Market stalls from thieves.', 42, 30, 30, 30, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2240, 'Pig', 'There to help me make my bids.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2241, 'Piglet', 'There to help me make my bids.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2242, 'Piglet', 'Porcine.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2244, 'Lumbridge Guide', 'He provides new players with useful information.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2245, 'Khazard trooper', NULL, 22, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 401, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2246, 'Khazard trooper', 'It\'s one of General Khazard\'s warriors.', 45, 32, 32, 32, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 429, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2247, 'Gnome troop', NULL, 3, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 190, 193, 196, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2248, 'Gnome troop', NULL, 3, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 190, 193, 196, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2256, 'Paladin', NULL, 66, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(2262, 'Dark mage', 'An initiate of Zamorak.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2263, 'Abyssal leech', 'A blood-drinking denizen of the abyss.', 74, 1, 1, 52, 52, NULL, NULL, NULL, NULL, 60, 3, NULL, NULL, 2181, 0, 2183, NULL, 0, 0, NULL, NULL, NULL, 2, NULL, 0, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2264, 'Abyssal guardian', 'It seems to have eyes in the back of its head...', 50, 65, 96, 65, 135, 57, NULL, NULL, NULL, NULL, 6, NULL, NULL, 2186, 2188, 2189, NULL, 2186, 2186, NULL, NULL, NULL, 3, NULL, 0, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2265, 'Abyssal walker', 'Apparently walks the abyss.', 95, 60, 116, 55, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 2192, 2193, 2194, NULL, 2192, 2192, NULL, NULL, NULL, 8, NULL, 0, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2267, 'Rogue Guard', 'Sparkles the Tinsel Snake', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2269, 'Rogue Guard', 'A snowman armed with a holly bow.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2271, 'Emerald Benedict', 'A snowman armed with an ice sword.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2272, 'Spin Blades', 'A snowman armed with a winter staff.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2274, 'Goblin', 'An ugly green creature.', 5, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(2275, 'Goblin', 'An ugly green creature.', 5, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(2276, 'Goblin', 'An ugly green creature.', 5, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(2277, 'Goblin', 'An ugly green creature.', 5, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(2278, 'Goblin', 'An ugly green creature.', 5, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(2279, 'Goblin', 'An ugly green creature.', 5, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(2280, 'Goblin', 'An ugly green creature.', 5, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(2281, 'Goblin', 'An ugly green creature.', 5, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(2285, 'Sir Leye', NULL, 21, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 400, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2288, 'Miss Cheevers', 'An observer for the Temple Knights.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2289, 'Ms. Hynn Terprett', 'An observer for the Temple Knights.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2291, 'Rug Merchant', 'A carpet merchant.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2292, 'Rug Merchant', 'A carpet merchant.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2293, 'Rug Merchant', 'A man who deals in rugs.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2294, 'Rug Merchant', 'A man who deals in rugs.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2301, 'Monkey', 'Perhaps our oldest relatives.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(2309, '', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(2310, 'Cow calf', 'Young, but still beefy.', 6, 2, 2, 2, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 5849, 5850, 5851, NULL, 5849, 5849, NULL, NULL, NULL, 8, 20, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '366,368,367', NULL, NULL, NULL), +(2311, 'Sheepdog', 'Farmer\\/sheep liaison officer. Go on - give the dog a bone!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2312, 'Rooster', 'He rules the', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2313, 'Chicken', 'Who are you calling chicken?', 3, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 18, 6, NULL, NULL, 5387, 5388, 5389, NULL, 5387, 5387, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '355,357,356', NULL, NULL, NULL), +(2314, 'Chicken', 'Who are you calling chicken?', 3, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 18, 6, NULL, NULL, 5387, 5388, 5389, NULL, 5387, 5387, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '355,357,356', NULL, NULL, NULL), +(2315, 'Chicken', 'Who are you calling chicken?', 3, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 18, 6, NULL, NULL, 5387, 5388, 5389, NULL, 5387, 5387, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '355,357,356', NULL, NULL, NULL), +(2316, 'Pig', 'Swine.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2317, 'Pig', 'Porker.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2318, 'Piglet', 'Hog.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2319, 'Piglet', 'Porcine.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2320, 'Piglet', 'He has a certain bovine aroma.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2329, 'Muncher', 'Only the Grim Reaper would have a pet like this.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2354, 'Banker', 'He can look after my money.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2355, 'Banker', 'She can look after my money.', 476, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2359, 'Elf warrior', 'I don\'t wanna be at the wrong end of that pike.', 85, 60, 60, 60, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 428, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, 31, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(2360, 'Elf warrior', 'I don\'t wanna be at the wrong end of that pike.', 85, 60, 60, 60, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 428, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, 31, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(2361, 'Elf warrior', 'He looks pretty handy with that bow.', 91, 1, 1, 64, 64, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 428, 0, 836, NULL, 0, 426, 250, 249, NULL, 2, 31, NULL, 1, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(2362, 'Elf warrior', 'He looks pretty handy with that bow.', 91, 1, 1, 64, 64, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 428, 0, 836, NULL, 0, 426, 250, 249, NULL, 2, 31, NULL, 1, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(2372, 'Head mourner', 'A Mourner showing his true identity.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2373, 'Mourner', 'A Mourner', 87, 61, 61, 61, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 428, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, 31, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2397, 'Mysterious ghost', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(2398, 'Mysterious ghost', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(2399, 'Mysterious ghost', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(2400, 'Mysterious ghost', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(2401, 'Mysterious ghost', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(2402, 'Mysterious ghost', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(2423, 'Chaos dwarf', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2436, 'Jarvald', NULL, 10, 10, 10, 10, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9232, 9231, 9230, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2443, 'Door-support', 'This support is propping the door closed.', 0, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2452, 'Giant Rock Crab', 'No one likes crabs... especially really big ones!', 97, 68, 68, 68, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 2368, 0, 1314, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2453, 'Boulder', 'Heavy rock!', 240, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2454, 'Dagannoth spawn', 'A teeny-tiny horror from the ocean depths...', 67, 47, 47, 47, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1341, 0, 1342, NULL, 0, 0, NULL, NULL, NULL, 9, 24, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2455, 'Dagannoth', 'A spiny horror from the ocean depths...', 95, 90, 90, 60, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 1343, 1340, 1342, NULL, NULL, NULL, NULL, 294, NULL, NULL, NULL, 100, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(2456, 'Dagannoth', 'It\'s an NPC.', 70, 90, 90, 60, 90, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1343, 1340, 1342, NULL, NULL, NULL, NULL, 294, NULL, NULL, NULL, 0, 1, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(2457, 'Wallasalki', 'A fearsome magical creature from the deep..', 130, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 2365, 2366, 2367, NULL, 2365, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, 48, NULL, NULL, NULL, NULL), +(2463, 'Evil Chicken', 'A fowl beast.', 19, 5, 5, 20, 5, 5, '25,85,105,75,103,85,65,0,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 2302, 2300, 2301, NULL, 2302, 2302, NULL, 337, NULL, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '355,357,356', NULL, NULL, NULL), +(2464, 'Evil Chicken', 'A fowl beast.', 40, 10, 10, 40, 10, 10, '35,105,125,95,128,105,85,0,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 2302, 2300, 2301, NULL, 2302, 2302, NULL, 337, NULL, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '355,357,356', NULL, NULL, NULL), +(2465, 'Evil Chicken', 'A fowl beast.', 60, 15, 15, 50, 15, 15, '35,185,185,155,188,125,165,0,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 2302, 2300, 2301, NULL, 2302, 2302, NULL, 337, NULL, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '355,357,356', NULL, NULL, NULL), +(2466, 'Evil Chicken', 'A fowl beast.', 80, 45, 45, 60, 45, 25, '45,235,235,205,238,145,165,0,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 2302, 2300, 2301, NULL, 2302, 2302, NULL, 337, NULL, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '355,357,356', NULL, NULL, NULL), +(2467, 'Evil Chicken', 'A fowl beast.', 105, 45, 45, 70, 45, 35, '45,285,285,255,288,145,165,0,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 2302, 2300, 2301, NULL, 2302, 2302, NULL, 337, NULL, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '355,357,356', NULL, NULL, NULL), +(2468, 'Evil Chicken', 'A fowl beast.', 120, 45, 45, 90, 45, 45, '45,285,285,255,288,145,165,0,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 2302, 2300, 2301, NULL, 2302, 2302, NULL, 337, NULL, 9, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '355,357,356', NULL, NULL, NULL), +(2476, 'Rick Turpentine', 'A Retired Highwayman', 10, 8, 8, 8, 20, 30, '30,20,10,20,20,30,30,10,20,10,30,30,20,30,20', NULL, NULL, NULL, 5, NULL, NULL, 4230, 404, 9055, NULL, 4230, 4230, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2477, 'Quiz Master', 'Apparently a master of quizzes!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2479, 'Evil Bob', 'Hey', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2481, 'Servant', 'Servant of Evil Bob.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2482, 'Giant bat', 'Annoying flappy thing.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2489, 'Bush snake', 'A slithering serpent that likes to hide in the bush.', 87, 1, 1, 61, 61, NULL, NULL, 11, NULL, 60, NULL, NULL, NULL, 275, 0, 278, NULL, 0, 0, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, '3609,3608,3610', NULL, NULL, NULL), +(2490, 'Bush snake', NULL, 25, 1, 1, 1, 1, NULL, NULL, 11, NULL, 60, NULL, NULL, NULL, 275, 276, 278, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, '3609,3608,3610', NULL, NULL, NULL), +(2491, 'Jungle spider', NULL, 50, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5327, 5328, 5329, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '537,539,538', NULL, NULL, NULL), +(2492, 'Jungle spider', NULL, 50, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5327, 5328, 5329, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '537,539,538', NULL, NULL, NULL), +(2493, 'Large mosquito', 'A flying bloodsucker.', 90, 1, 1, 63, 63, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2397, 0, 2398, NULL, 0, 0, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2494, 'Mosquito swarm', 'A swarm of three highly agile mosquitoes.', 94, 1, 1, 66, 66, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2397, 0, 2398, NULL, 0, 0, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2495, 'Mosquito swarm', 'A swarm of five highly agile mosquitoes.', 97, 1, 1, 68, 68, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2397, 0, 2398, NULL, 0, 0, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2496, 'Tribesman', NULL, 40, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(2497, 'Tribesman', 'A vicious warrior.', 64, 45, 45, 45, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 428, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(2499, 'Broodoo victim', 'An undead victim of some ancient murderous ritual; his skin appears deep green.', 64, 45, 45, 45, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 0, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2501, 'Broodoo victim', 'An undead victim of some ancient murderous ritual; his skin appears pale yellow.', 61, 43, 43, 43, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 428, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2503, 'Broodoo victim', NULL, 100, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 810, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2539, 'Cap\'n Hand', 'He used to swashbuckle his away across the seven seas.', 10, 30, 10, 10, 30, 20, '10,30,20,30,10,20,15,30,10,30,15,20,20,0,0', NULL, NULL, NULL, 5, NULL, NULL, 4230, 404, 9055, NULL, 4230, 4230, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2547, 'Chaos druid', 'A crazy, evil druid.', 20, 20, 20, 10, 10, 20, NULL, NULL, NULL, NULL, 5, NULL, NULL, 422, 404, 9055, NULL, 422, 422, 105, 106, 107, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2549, 'Ali the dyer', 'A colourful character.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2553, 'Blast Furnace Foreman', 'Looks after the blast furnace.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2571, 'Market Guard', NULL, 23, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 400, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2574, 'Bank guard', 'He\'s guarding the bank.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2588, 'Brother Althric', 'A holy man.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2591, 'TzHaar-Mej', 'Looks like some kind of mystic.', 100, 70, 70, 70, 70, 70, '60,120,90,120,60,60,50,45,0,0,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 9260, 9287, 9291, NULL, 9260, 9260, 1618, 1617, 1621, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2592, 'TzHaar-Mej', 'Looks like some kind of mystic.', 100, 70, 70, 70, 70, 70, '60,120,90,120,60,60,50,45,0,0,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 9260, 9287, 9291, NULL, 9260, 9260, 1618, 1617, 1621, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2593, 'TzHaar-Mej', 'Looks like some kind of mystic.', 100, 70, 70, 70, 70, 70, '60,120,90,120,60,60,50,45,0,0,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 9260, 9287, 9291, NULL, 9260, 9260, 1618, 1617, 1621, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2594, 'TzHaar-Mej', 'Looks like some kind of mystic.', 100, 70, 70, 70, 70, 70, '60,120,90,120,60,60,50,45,0,0,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 9260, 9287, 9291, NULL, 9260, 9260, 1618, 1617, 1621, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2595, 'TzHaar-Mej', 'Looks like some kind of mystic.', 100, 70, 70, 70, 70, 70, '60,120,90,120,60,60,50,45,0,0,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 9260, 9287, 9291, NULL, 9260, 9260, 1618, 1617, 1621, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2596, 'TzHaar-Mej', 'Looks like some kind of mystic.', 100, 70, 70, 70, 70, 70, '60,120,90,120,60,60,50,45,0,0,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 9260, 9287, 9291, NULL, 9260, 9260, 1618, 1617, 1621, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2597, 'TzHaar-Mej', 'Looks like some kind of mystic.', 100, 70, 70, 70, 70, 70, '60,120,90,120,60,60,50,45,0,0,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 9260, 9287, 9291, NULL, 9260, 9260, 1618, 1617, 1621, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2598, 'TzHaar-Hur', 'Looks like a craftsman of some kind.', 80, 50, 50, 50, 70, 50, '30,30,80,85,80,40,40,60,38,0,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 9286, 9287, 9288, NULL, 9286, 9286, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2599, 'TzHaar-Hur', 'Looks like a craftsman of some kind.', 80, 50, 50, 50, 70, 50, '30,30,80,85,80,40,40,60,38,0,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 9286, 9287, 9288, NULL, 9286, 9286, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2600, 'TzHaar-Hur', 'Looks like a craftsman of some kind.', 80, 50, 50, 50, 70, 50, '30,30,80,85,80,40,40,60,38,0,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 9286, 9287, 9288, NULL, 9286, 9286, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2601, 'TzHaar-Hur', 'Looks like a craftsman of some kind.', 80, 50, 50, 50, 70, 50, '30,30,80,85,80,40,40,60,38,0,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 9286, 9287, 9288, NULL, 9286, 9286, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2602, 'TzHaar-Hur', 'Looks like a craftsman of some kind.', 80, 50, 50, 50, 70, 50, '30,30,80,85,80,40,40,60,38,0,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 9286, 9287, 9288, NULL, 9286, 9286, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2603, 'TzHaar-Hur', 'Looks like a craftsman of some kind.', 80, 50, 50, 50, 70, 50, '30,30,80,85,80,40,40,60,38,0,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 9286, 9287, 9288, NULL, 9286, 9286, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2604, 'TzHaar-Xil', 'Doesn\'t look very social.', 120, 70, 70, 70, 70, 70, '50,30,120,120,120,130,20,50,45,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, 9345, 9287, 9291, NULL, 9345, 9345, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2605, 'TzHaar-Xil', 'Doesn\'t look very social.', 120, 70, 70, 70, 70, 70, '50,30,120,120,120,130,20,50,45,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, 9345, 9287, 9291, NULL, 9345, 9345, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2606, 'TzHaar-Xil', 'Doesn\'t look very social.', 120, 70, 70, 70, 70, 70, '50,30,80,56,80,80,100,60,50,45,45,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, 9345, 9287, 9291, NULL, 9345, 9345, NULL, 442, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2607, 'TzHaar-Xil', 'Doesn\'t look very social.', 120, 70, 70, 70, 70, 70, '50,30,120,120,120,130,20,50,45,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, 9345, 9287, 9291, NULL, 9345, 9345, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2608, 'TzHaar-Xil', 'Doesn\'t look very social.', 120, 70, 70, 70, 70, 70, '50,30,120,120,120,130,20,50,45,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, 9345, 9287, 9291, NULL, 9345, 9345, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2609, 'TzHaar-Xil', 'Doesn\'t look very social.', 120, 70, 70, 70, 70, 70, '50,30,80,56,80,80,100,60,50,45,45,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, 9345, 9287, 9291, NULL, 9345, 9345, NULL, 442, NULL, NULL, NULL, 0, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2610, 'TzHaar-Ket', 'Must be a guard or something.', 140, 70, 70, 70, 70, 70, '50,120,120,120,130,20,60,45,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, 9345, 9287, 9288, NULL, 9345, 9345, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2611, 'TzHaar-Ket', 'Must be a guard or something.', 140, 70, 70, 70, 70, 70, '50,120,120,120,130,20,60,45,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, 9345, 9287, 9288, NULL, 9345, 9345, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2612, 'TzHaar-Ket', 'Must be a guard or something.', 140, 70, 70, 70, 70, 70, '50,120,120,120,130,20,60,45,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, 9345, 9287, 9288, NULL, 9345, 9345, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2613, 'TzHaar-Ket', 'Must be a guard or something.', 140, 70, 70, 70, 70, 70, '50,120,120,120,130,20,60,45,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, 9345, 9287, 9288, NULL, 9345, 9345, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2614, 'TzHaar-Ket', 'Must be a guard or something.', 140, 70, 70, 70, 70, 70, '50,120,120,120,130,20,60,45,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, 9345, 9287, 9288, NULL, 9345, 9345, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2615, 'TzHaar-Ket', 'Must be a guard or something.', 140, 70, 70, 70, 70, 70, '50,120,120,120,130,20,60,45,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, 9345, 9287, 9288, NULL, 9345, 9345, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2616, 'TzHaar-Ket', 'Must be a guard or something.', 140, 70, 70, 70, 70, 70, '50,120,120,120,130,20,60,45,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, 9345, 9287, 9288, NULL, 9345, 9345, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2627, 'Tz-Kih', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2628, 'Tz-Kih', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2629, 'Tz-Kek', NULL, 20, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2630, 'Tz-Kek', NULL, 20, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2631, 'Tok-Xil', 'The Tok-Xil fires deadly spines out of its arm', 114, 1, 1, 80, 80, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2634, 'Miss Schism', 'A busy-body who loves a bit of gossip.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2641, 'Dragonkin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '408,410,409', NULL, NULL, NULL), +(2674, 'Thief', 'Known for his light-fingered qualities.', 14, 10, 10, 10, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2675, 'Man', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,513,512', NULL, NULL, NULL), +(2677, 'Highwayman', 'He holds up passers by.', 13, 8, 8, 8, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 799, 404, 9055, NULL, 799, 799, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(2678, 'Goblin', 'An ugly green creature.', 5, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(2679, 'Goblin', 'An ugly green creature.', 5, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(2680, 'Goblin', 'An ugly green creature.', 5, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(2681, 'Goblin', 'An ugly green creature.', 5, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(2682, 'Rat', 'A popular dwarven delicacy.', 2, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 2705, 2706, 2707, NULL, 2705, 2705, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '3102,3104,3103', NULL, NULL, NULL), +(2683, 'Hengel', NULL, 7, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2685, 'Hobgoblin', 'An ugly smelly creature.', 29, 20, 10, 1, 20, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 164, 165, 167, NULL, 164, 164, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(2686, 'Hobgoblin', 'An ugly smelly creature.', 29, 20, 10, 1, 20, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 164, 165, 167, NULL, 164, 164, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(2687, 'Hobgoblin', 'An ugly smelly creature.', 29, 20, 10, 1, 20, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 164, 165, 167, NULL, 164, 164, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(2688, 'Hobgoblin', 'An ugly smelly creature, with a spear.', 29, 20, 10, 1, 20, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 163, 165, 167, NULL, 163, 163, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(2689, 'Frog', 'Didn\'t the mage say this procedure was totally safe?', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2690, 'Jack Seagull', 'A salty seafarer. Needs a wash.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2691, 'Longbow Ben', 'A strange man with a strange name. Probably a strange past', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2693, 'Duck', 'She quackers.', 1, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 0, 0, 3468, NULL, 0, 0, NULL, NULL, NULL, 8, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2694, 'Duckling', 'Mini quackers.', 1, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 3468, NULL, 0, 0, NULL, NULL, NULL, 8, 7, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2695, 'Pirate', NULL, 20, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(2696, 'Thief', 'Known for his light-fingered qualities.', 15, 11, 11, 11, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2697, 'Mugger', 'He doesn\'t look so happy now he\'s in jail.', 15, 11, 11, 11, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2698, 'Black knight', 'A dark-hearted knight.', 34, 24, 24, 24, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2699, 'Guard', 'He\'s guarding the prison.', 18, 13, 13, 13, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(2700, 'Guard', 'A prison guard.', 18, 13, 13, 13, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(2701, 'Guard', 'A prison guard.', 18, 13, 13, 13, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL); +INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES +(2702, 'Guard', 'A prison guard.', 18, 13, 13, 13, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(2703, 'Guard', 'A prison guard.', 18, 13, 13, 13, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(2704, 'Guard', 'He\'s asleep.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(2705, 'Guard', 'Keeping an eye out for suspicious activity.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(2706, 'Crab', 'No one likes crabs...', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2707, 'Seagull', 'A sea bird.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2709, 'Fire wizard', 'Caution: HOT!', 25, 1, 1, 18, 1, 18, NULL, NULL, NULL, 60, NULL, NULL, NULL, 414, 0, 2553, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2710, 'Water wizard', 'Hydro-power!', 20, 1, 1, 14, 1, 14, NULL, NULL, NULL, 60, NULL, NULL, NULL, 414, 0, 2553, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2711, 'Earth wizard', 'His hands are covered in mud. At least', 22, 1, 1, 16, 1, 16, NULL, NULL, NULL, 60, NULL, NULL, NULL, 414, 0, 2553, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2712, 'Air wizard', 'At least he looks solid enough to fight.', 17, 1, 1, 12, 1, 12, NULL, NULL, NULL, 60, NULL, NULL, NULL, 414, 0, 2553, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2714, 'Zombie', NULL, 40, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(2715, 'Skeleton', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(2716, 'Ghost', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(2717, 'Skeleton mage', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(2718, 'Betty', 'She\'ll store my items for me.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2725, 'Otto Godblessed', 'A wise barbarian', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2728, 'Monk of Entrana', 'Holy looking.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2729, 'Monk of Entrana', 'Holy looking.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2731, 'Monk of Entrana', 'Holy looking.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2732, 'Master Crafter', 'He works in the Crafting Guild.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2733, 'Master Crafter', 'He wanders around the Crafting Guild pretending to be working.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2734, 'Tz-Kih', 'Hangs out in caves.', 10, 30, 27, 11, 1, NULL, '150,22,22,22,22,11,0,0,0,0,0,0,0,0,0', NULL, NULL, 0, 5, NULL, NULL, 9232, 9231, 9230, NULL, 9232, 9232, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2735, 'Tz-Kih', 'Hangs out in caves.', 10, 30, 27, 11, 1, NULL, '150,22,22,22,22,11,0,0,0,0,0,0,0,0,0', NULL, NULL, 0, 5, NULL, NULL, 9232, 9231, 9230, NULL, 9232, 9232, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2736, 'Tz-Kek', 'Looks like living lava...', 20, 60, 60, 22, 20, 20, '80,45,45,45,45,22,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 9233, 9235, 9234, NULL, 9233, 9233, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2737, 'Tz-Kek', 'Looks like living lava...', 20, 60, 60, 22, 20, 20, '80,45,45,45,45,22,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 9233, 9235, 9234, NULL, 9233, 9233, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2738, 'Tz-Kek', 'Looks like living lava...', 10, 30, 30, 11, 1, NULL, '60,22,22,22,22,11,0,0,0,0,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 9233, 9235, 9234, NULL, 9233, 9233, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2739, 'Tok-Xil', 'I don\'t like the look of those spines...', 40, 80, 80, 45, 80, NULL, '80,90,86,90,90,90,45,55,26,55,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 9245, 9242, 9239, NULL, 9245, 9245, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2740, 'Tok-Xil', 'I don\'t like the look of those spines...', 40, 80, 80, 45, 80, NULL, '80,90,86,90,90,90,45,55,26,55,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 9245, 9242, 9239, NULL, 9245, 9245, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2741, 'Yt-MejKot', 'Holy reptile...', 80, 100, 100, 90, 1, NULL, '100,180,180,180,180,90,97,0,0,0,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 9252, 9249, 9257, NULL, 9252, 9252, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2742, 'Yt-MejKot', 'Holy reptile...', 80, 100, 100, 90, 1, NULL, '100,180,180,180,180,90,97,0,0,0,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 9252, 9249, 9257, NULL, 9252, 9252, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2743, 'Ket-Zek', 'That\'s one hot dog!', 160, 150, 150, 180, 1, 150, '180,180,280,280,280,250,140,152,131,0,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 9265, 9268, 9269, NULL, 9265, 9265, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2744, 'Ket-Zek', 'That\'s one hot dog!', 160, 150, 150, 180, 1, 150, '180,180,280,280,280,250,140,152,131,0,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 9265, 9268, 9269, NULL, 9265, 9265, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2745, 'TzTok-Jad', 'This is going to hurt...', 255, 222, 222, 200, 222, 222, '200,350,260,250,300,300,300,100,187,187,187,187,0,0,0', NULL, NULL, NULL, 7, NULL, 64, 9277, 9278, 9279, NULL, 9277, 9277, NULL, NULL, NULL, 10, NULL, 0, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2746, 'Yt-HurKot', 'Mini Menace.', 40, 75, 75, 75, 1, NULL, '100,110,110,110,110,60,110,30,0,0,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 9252, 9253, 9257, NULL, 9252, 9252, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2759, 'null', 'She can look after my money.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2776, 'Woman', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,506,505', NULL, NULL, NULL), +(2779, 'Ranger', 'A Ranger of the Temple Knights.', 20, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 426, 0, 836, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2782, 'Shadow', 'A shadow.', 100, 68, 68, 68, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 2738, 0, 2739, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2783, 'Dark beast', 'From a darker dimension.', 220, 130, 155, 122, 1, 65, NULL, NULL, NULL, NULL, 5, NULL, NULL, 2731, 2732, 2733, NULL, 2731, 2731, NULL, NULL, NULL, 4, 25, 225, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2785, 'Slave', 'Digging.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2786, 'Slave', 'Digging.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2787, 'Slave', 'Confused.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2790, 'Sergeant Damien', 'Drill Sergeant from heck!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2792, 'Tramp', 'A man down on his luck.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2801, 'Ogre', 'An angry Ogre in a funny hat.', 48, 30, 30, 30, 1, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 359, 360, 361, NULL, 359, 359, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2802, 'Gnome Coach', 'They just call him \'Coach\'.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2803, 'Lizard', 'A cold-blooded creature, partial to warmth.', 40, 1, 1, 55, 55, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 2776, 2777, 2778, NULL, 2776, 2776, NULL, NULL, NULL, 0, 26, 40, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2804, 'Desert Lizard', 'A cold-blooded creature, partial to warmth.', 25, 1, 1, 45, 45, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 2776, 2777, 2778, NULL, 2776, 2776, NULL, NULL, NULL, 0, 26, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2805, 'Desert Lizard', 'A cold-blooded creature, partial to warmth.', 25, 1, 1, 45, 45, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 2776, 2777, 2778, NULL, 2776, 2776, NULL, NULL, NULL, 0, 26, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2806, 'Desert Lizard', 'A cold-blooded creature, partial to warmth.', 25, 1, 1, 45, 45, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 2776, 2777, 2778, NULL, 2776, 2776, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2807, 'Small Lizard', 'A cold-blooded creature, partial to warmth.', 15, 1, 1, 15, 15, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 2776, 2777, 2778, NULL, 2776, 2776, NULL, NULL, NULL, 0, 26, 15, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2808, 'Small Lizard', 'A cold-blooded creature, partial to warmth.', 15, 1, 1, 15, 15, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 2776, 2777, 2778, NULL, 2776, 2776, NULL, NULL, NULL, 0, 26, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2809, 'Al the Camel', 'A camel who has the soul of a poet.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2810, 'Elly the Camel', 'A camel whose love is unrequited.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2811, 'Ollie the Camel', 'A camel who wants to fly some day.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2812, 'Cam the Camel', 'A camel who likes to rest.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2815, 'Neferti the Camel', 'A camel who wants to see the world.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2825, 'Pirate Pete', 'A shifty-looking character.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(2826, 'Pirate Pete', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(2827, 'Captain Braindeath', 'A shabby-looking leader.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2828, '50% Luke', 'Most of an angry', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2830, 'Captain Donnie', 'I wonder if it was all the \'rum\' that pickled him.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2831, 'Zombie protester', 'Sticking it to \'The Man\'.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2832, 'Zombie protester', 'Sticking it to \'The Man\'.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2833, 'Zombie protester', 'Sticking it to \'The Man\'.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2834, 'Zombie protester', 'Sticking it to \'The Man\'.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2835, 'Zombie protester', 'Sticking it to \'The Man\'.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2836, 'Zombie protester', 'Sticking it to \'The Man\'.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2837, 'Zombie pirate', 'An undead sea scoundrel.', 51, 36, 36, 36, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5647, 0, 5649, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(2838, 'Zombie pirate', 'An undead sea scoundrel.', 51, 36, 36, 36, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5651, 0, 5654, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(2839, 'Zombie pirate', 'An undead sea scoundrel.', 51, 36, 36, 36, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5651, 0, 5654, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(2840, 'Zombie pirate', 'An undead sea scoundrel.', 51, 36, 36, 36, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5651, 0, 5654, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(2841, 'Zombie pirate', 'An undead sea scoundrel.', 51, 36, 36, 36, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5647, 0, 5649, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(2842, 'Zombie pirate', 'An undead sea scoundrel.', 51, 36, 36, 36, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5647, 0, 5649, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(2843, 'Zombie swab', 'He talks a good fight.', 48, 34, 34, 34, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5647, 0, 5649, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2844, 'Zombie swab', 'He talks a good fight.', 48, 34, 34, 34, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5647, 0, 5649, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2845, 'Zombie swab', 'He talks a good fight.', 48, 34, 34, 34, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5651, 0, 5654, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2846, 'Zombie swab', 'He talks a good fight.', 48, 34, 34, 34, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5651, 0, 5654, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2847, 'Zombie swab', 'He talks a good fight.', 48, 34, 34, 34, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5647, 0, 5649, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2848, 'Zombie swab', 'He talks a good fight.', 48, 34, 34, 34, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5647, 0, 5649, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2849, 'Evil spirit', 'The pun was intended.', 57, 40, 40, 40, 40, 40, NULL, NULL, NULL, 60, NULL, NULL, NULL, 2804, 0, 2805, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2850, 'Fever spider', 'A bunch of legs', 142, 37, 37, 50, 50, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5319, 0, 5321, NULL, 0, 0, NULL, NULL, NULL, 2, 76, 40, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '537,539,538', NULL, NULL, NULL), +(2851, 'Brewer', 'A worker in the brewery.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2852, 'Brewer', 'A worker in the brewery.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2853, 'Brewer', 'A worker in the brewery.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2854, 'Brewer', 'A worker in the brewery.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2855, 'Brewer', 'A worker in the brewery.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2856, 'Brewer', 'A worker in the brewery.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2857, 'Brewer', 'A worker in the brewery.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2858, 'Brewer', 'A worker in the brewery.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2863, 'Zombie', NULL, 40, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(2866, 'Zombie', NULL, 40, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(2869, 'Zombie', NULL, 40, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(2878, 'Zombie', NULL, 40, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(2880, 'Dagannoth fledgeling', 'A knee-high horror from the ocean depths...', 74, 52, 52, 52, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1579, 0, 1581, NULL, 0, 0, NULL, NULL, NULL, 6, 24, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2881, 'Dagannoth Supreme', 'The Dagannoth King responsible for the death of Bukalla. ', 256, 1, 1, 68, 64, 64, '250,245,235,240,450,375,125,235,125,405,133,135,230,340,184', NULL, NULL, 60, 7, 8, 8, 2855, 2852, 2856, NULL, NULL, NULL, NULL, 475, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(2882, 'Dagannoth Prime', 'A legendary Dagannoth King, rumoured to fly on the North winds.', 255, 1, 1, 68, 1, 120, '365,400,190,155,325,400,400,400,455,210,210,459,150,450,300', NULL, NULL, 60, NULL, 8, 8, 2854, 2852, 2856, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, 2, 48, NULL, NULL, NULL, NULL), +(2883, 'Dagannoth Rex', 'Firstborn of the legendary Dagannoth Kings.', 255, 80, 80, 72, 1, NULL, '365,400,350,350,325,400,400,400,-25,210,210,450,150,450,300', NULL, NULL, 60, NULL, 8, 8, 2853, 2852, 2856, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(2884, 'Wallasalki', 'A fearsome magical creature from the deep..', 130, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 2365, 2366, 2367, NULL, 2365, NULL, NULL, NULL, NULL, NULL, NULL, 0, 2, NULL, 1, NULL, NULL, NULL, NULL, 48, NULL, NULL, NULL, NULL), +(2885, 'Giant Rock Crab', NULL, 240, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 1312, 1313, 1314, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2886, 'Boulder', NULL, 240, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2887, 'Dagannoth', NULL, 85, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1343, 1340, 1342, NULL, NULL, NULL, NULL, 288, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(2888, 'Dagannoth', NULL, 70, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1343, 1340, 1342, NULL, NULL, NULL, NULL, 288, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(2889, 'Rock lobster', 'It wasn\'t a rock... It was a rock lobster!', 150, 80, 135, 70, 1, NULL, NULL, NULL, NULL, NULL, 8, NULL, NULL, 2860, 2861, 2862, NULL, 2860, 2860, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2892, 'Spinolyp', 'A sneaky, spiny, subterranean sea-dwelling scamp.', 75, 1, 10, 1, 20, 65, '70,50,60,50,10,60,30,10,60,60,70,50,0,0,0', NULL, NULL, 55, 6, NULL, 12, 2868, 2869, 2866, NULL, 2866, 2866, NULL, 294, NULL, NULL, NULL, 0, 2, NULL, 1, NULL, NULL, NULL, NULL, 14, NULL, NULL, NULL, NULL), +(2894, 'Spinolyp', 'A sneaky, spiny, subterranean sea-dwelling scamp.', 75, 1, 10, 1, 20, 65, '70,50,60,50,10,60,30,10,60,60,70,50,0,0,0', NULL, NULL, 55, 6, NULL, 12, 2868, 2869, 2866, NULL, 2866, 2866, NULL, 294, NULL, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, 14, NULL, NULL, NULL, NULL), +(2896, 'Spinolyp', 'A sneaky, spiny, subterranean sea-dwelling scamp.', 75, 1, 60, 1, 70, 65, '70,50,60,50,10,60,30,10,60,60,70,50,0,0,0', NULL, NULL, 55, 6, NULL, 12, 2868, 2869, 2866, NULL, 2866, 2866, NULL, 294, NULL, NULL, NULL, 0, 2, NULL, 1, NULL, NULL, NULL, NULL, 14, NULL, NULL, NULL, NULL), +(2919, 'Agrith Naar', NULL, 95, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 64, 65, 67, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2931, 'Ghost', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(2941, 'The Beast', 'Who ate all the rats?', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2945, 'Bones', 'Lovely', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2948, 'Hooknosed Jack', 'Obviously punches above his weight.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2949, 'Jimmy Dazzler', 'Looks rich like an actor of sorts.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2950, 'The Face', 'Once beautiful', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2952, 'Smokin\' Joe', 'What is he?', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2958, 'Silver merchant', 'Looks fairly well fed.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2962, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(2963, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(2964, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(2965, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(2966, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(2967, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(2968, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(2969, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(2970, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(2971, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(2972, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(2973, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(2980, 'Rat', 'A popular dwarven delicacy.', 5, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 2705, 2706, 2707, NULL, 2705, 2705, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(2981, 'Rat', 'A popular dwarven delicacy.', 5, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 2705, 2706, 2707, NULL, 2705, 2705, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(2982, 'King rat', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(2984, 'Pusskins', 'Not a soft touch.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2986, 'Captain Tom', 'A not-so friendly', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2988, 'Mittens', 'A fully grown feline.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2990, 'Topsy', 'Cute and fluffy.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2997, 'Gertrude\'s cat', 'A friendly feline?', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(2998, 'Gambler', 'Very well to do. I wonder what he\'s doing here.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3001, 'Gambler', 'Rich.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3002, 'Gambler', 'Poor.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3003, 'Gambler', 'Poor.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3004, 'Gambler', 'Poor.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3005, 'Gambler', 'Poor.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3006, 'Gambler', 'Poor.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3007, 'Rat', 'A popular dwarven delicacy.', 5, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 2705, 2706, 2707, NULL, 2705, 2705, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3008, 'Rat', 'A popular dwarven delicacy.', 5, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 2705, 2706, 2707, NULL, 2705, 2705, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3009, 'Rat', 'A popular dwarven delicacy.', 5, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 2705, 2706, 2707, NULL, 2705, 2705, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3010, 'Rat', 'A popular dwarven delicacy.', 5, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 2705, 2706, 2707, NULL, 2705, 2705, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3011, 'Rat', 'A popular dwarven delicacy.', 5, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 2705, 2706, 2707, NULL, 2705, 2705, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3012, 'Rat', 'A popular dwarven delicacy.', 5, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 2705, 2706, 2707, NULL, 2705, 2705, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3013, 'Rat', 'A popular dwarven delicacy.', 5, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 2705, 2706, 2707, NULL, 2705, 2705, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3014, 'Rat', 'A popular dwarven delicacy.', 5, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 2705, 2706, 2707, NULL, 2705, 2705, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3015, 'Rat', 'A popular dwarven delicacy.', 5, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 2705, 2706, 2707, NULL, 2705, 2705, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3016, 'Rat', 'A popular dwarven delicacy.', 5, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 2705, 2706, 2707, NULL, 2705, 2705, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3017, 'Rat', 'A popular dwarven delicacy.', 5, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 2705, 2706, 2707, NULL, 2705, 2705, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3018, 'Rat', 'A popular dwarven delicacy.', 5, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 2705, 2706, 2707, NULL, 2705, 2705, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3021, 'Tool leprechaun', 'Looks after your Farming tools.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3022, 'Genie', 'Phenomenal cosmic powers', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3026, 'Black golem', 'An animated clay statue.', 78, 55, 55, 55, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 2917, 0, 2919, NULL, 0, 0, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3027, 'White golem', 'An animated clay statue.', 78, 55, 55, 55, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2917, 0, 2919, NULL, 0, 0, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3028, 'Grey golem', 'An animated clay statue.', 78, 55, 55, 55, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2917, 0, 2919, NULL, 0, 0, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3029, 'Ghaslor the Elder', 'The oldest man in Nardah.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3030, 'Ali the Carter', 'A water salesman from Pollnivneach.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3040, 'Awusah the Mayor', 'The Mayor of Nardah.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3042, 'Poltenip', NULL, 22, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 395, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3043, 'Radat', NULL, 22, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 395, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3044, 'Shiratti the Custodian', 'Custodian of the shrine to Elidinis.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3046, 'Nardah Banker', 'A banker of Nardah.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3051, 'Mystery figure', 'A mysterious watcher.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3052, 'Mystery figure', 'A mysterious watcher.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3053, 'Mystery figure', 'A mysterious watcher.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3054, 'Mystery figure', 'A mysterious watcher.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3055, 'Mystery figure', 'A mysterious watcher.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3056, 'Mystery figure', 'A mysterious watcher.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3057, 'Earth Warrior Champion', 'Champion of the earth warriors.', 72, 51, 51, 51, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 2951, 0, 2946, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3058, 'Giant Champion', 'Champion of the giants.', 40, 28, 28, 28, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6368, 0, 6369, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, 35, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3059, 'Ghoul Champion', 'Champion of the ghouls.', 61, 43, 43, 43, 43, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, 50, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3060, 'Goblin Champion', 'Champion of the goblins.', 17, 6, 6, 12, 1, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6188, 0, 6190, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(3061, 'Hobgoblin Champion', 'Champion of the hobgoblins.', 40, 14, 14, 28, 28, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, 2958, NULL, 0, 0, NULL, NULL, NULL, 0, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(3062, 'Imp Champion', 'Champion of the imps.', 10, 7, 7, 7, 7, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5285, 0, 172, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3063, 'Jogre Champion', 'Champion of the jogres.', 77, 54, 54, 54, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 2100, 0, 8576, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3064, 'Lesser Demon Champion', 'Champion of the lesser demons.', 115, 1, 1, 81, 1, 81, NULL, NULL, NULL, 60, NULL, NULL, NULL, 64, 65, 67, NULL, 0, 0, NULL, NULL, NULL, 5, NULL, 79, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '400,404,403', NULL, NULL, NULL), +(3065, 'Skeleton Champion', 'Champion of the skeletons.', 28, 10, 10, 20, 20, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5512, 0, 5514, NULL, 0, 0, NULL, NULL, NULL, 2, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(3066, 'Zombies Champion', 'Champion of the zombies.', 37, 26, 26, 26, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5581, 0, 5575, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3067, 'Leon d\'Cour', NULL, 123, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7049, 7050, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3068, 'Skeletal Wyvern', 'A very dangerous pile of animated Wyvern bones.', 200, 80, 124, 80, 124, 78, '80,70,70,70,145,70,210,210,100,200,210,180,0,0,0', NULL, NULL, NULL, NULL, NULL, 6, 2985, 2983, 2987, NULL, 2985, 2989, 499, 500, 501, 9, 95, 210, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '0,0,0', NULL, NULL, NULL), +(3069, 'Skeletal Wyvern', 'A very dangerous pile of animated Wyvern bones.', 200, 80, 124, 80, 124, 78, NULL, NULL, NULL, NULL, NULL, NULL, 6, 2985, 2983, 2987, NULL, 2985, 2989, 499, 500, 501, 9, 95, 210, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(3070, 'Skeletal Wyvern', 'A very dangerous pile of animated Wyvern bones.', 200, 80, 124, 80, 124, 78, NULL, NULL, NULL, NULL, NULL, NULL, 6, 2985, 2983, 2987, NULL, 2985, 2989, 499, 500, 501, 9, 95, 210, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(3071, 'Skeletal Wyvern', 'A very dangerous pile of animated Wyvern bones.', 200, 80, 124, 80, 124, 78, NULL, NULL, NULL, NULL, NULL, NULL, 6, 2985, 2983, 2987, NULL, 2985, 2989, 499, 500, 501, 9, 95, 210, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(3072, 'Ice giant', 'He\'s got icicles in his beard.', 105, 37, 37, 37, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 4672, 0, 4673, NULL, 0, 0, NULL, NULL, NULL, 9, 47, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '449,451,450', NULL, NULL, NULL), +(3073, 'Ice warrior', 'A cold-hearted elemental warrior.', 59, 39, 1, 39, 1, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 451, 404, 843, NULL, 451, 451, NULL, NULL, NULL, NULL, NULL, 59, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(3074, 'Monk', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(3075, 'Monk', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(3079, 'Monk', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(3080, 'Monk', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(3089, '', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(3090, '', 'A mighty warrior', 24, 17, 17, 17, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7048, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(3091, '', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(3094, 'Flying Book', 'The book moves by itself!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES +(3097, 'Entrance Guardian', 'A guardian of the arena.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3098, 'Telekinetic Guardian', 'A guardian of the arena.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3099, 'Alchemy Guardian', 'A guardian of the arena.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3100, 'Enchantment Guardian', 'A guardian of the arena.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3101, 'Graveyard Guardian', 'A guardian of the arena.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3102, 'Maze Guardian', 'A guardian of the arena.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3103, 'Rewards Guardian', 'A guardian of the arena.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3104, 'Charmed Warrior', 'Equipment that moves by itself!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3105, 'Charmed Warrior', 'Equipment that moves by itself!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3106, 'Charmed Warrior', 'Equipment that moves by itself!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3109, 'Guard Captain', 'This guard looks rather drunk and has beer stains down his armour.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3121, 'Balloon Animal', 'Looks after farming tools.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3122, 'Balloon Animal', 'I saw the witchdoctor', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3123, 'Simon Templeton', 'Looks like he\'s seen the inside of a few tombs.', 12, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 422, 404, 9055, NULL, 422, 422, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0), +(3135, 'Furnace grate', 'It seems to be blocked.', 0, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3150, 'Knight', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(3151, 'Skeleton', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(3153, 'Harpie Bug Swarm', 'A swarm of bugs.', 64, 1, 1, 45, 45, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1584, 0, 1585, NULL, 0, 0, NULL, NULL, NULL, 2, 42, 25, 1, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(3155, 'Bill Teach', 'Bill Teach the pirate.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3167, 'Pirate', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3168, 'Pirate', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3169, 'Pirate', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3170, 'Pirate', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3171, 'Pirate', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3172, 'Pirate', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3173, 'Pirate', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3174, 'Pirate', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3175, 'Pirate', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3176, 'Pirate', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3177, 'Pirate', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3178, 'Pirate', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3179, 'Pirate', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3180, 'Pirate', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3181, 'Pirate', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3182, 'Pirate', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3183, 'Pirate', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3184, 'Pirate', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3185, 'Pirate', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3186, 'Pirate', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3187, 'Pirate', NULL, 52, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3188, 'Pirate', 'Arghh matey!', 45, 40, 40, 40, 1, NULL, '10,10,10,10,10,10,10,10,10,10,10,10,10,10,10', NULL, NULL, 20, 5, NULL, NULL, NULL, 388, 9055, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3189, 'Pirate', 'Arghh matey!', 45, 40, 40, 40, 1, NULL, '10,10,10,10,10,10,10,10,10,10,10,10,10,10,10', NULL, NULL, 20, 5, NULL, NULL, NULL, 388, 9055, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3190, 'Pirate', 'Arghh matey!', 45, 40, 40, 40, 1, NULL, '10,10,10,10,10,10,10,10,10,10,10,10,10,10,10', NULL, NULL, 20, 5, NULL, NULL, NULL, 388, 9055, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3191, 'Pirate', 'Arghh matey!', 45, 40, 40, 40, 1, NULL, '10,10,10,10,10,10,10,10,10,10,10,10,10,10,10', NULL, NULL, 20, 5, NULL, NULL, NULL, 388, 9055, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3192, 'Pirate', 'Arghh matey!', 45, 40, 40, 40, 1, NULL, '10,10,10,10,10,10,10,10,10,10,10,10,10,10,10', NULL, NULL, 20, 5, NULL, NULL, NULL, 388, 9055, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3193, 'Pirate', 'Arghh matey!', 45, 40, 40, 40, 1, NULL, '10,10,10,10,10,10,10,10,10,10,10,10,10,10,10', NULL, NULL, 20, 5, NULL, NULL, NULL, 388, 9055, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3194, 'Pirate', 'Arghh matey!', 45, 40, 40, 40, 1, NULL, '10,10,10,10,10,10,10,10,10,10,10,10,10,10,10', NULL, NULL, 20, 5, NULL, NULL, NULL, 388, 9055, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3195, 'Pirate', 'Arghh matey!', 45, 40, 40, 40, 1, NULL, '10,10,10,10,10,10,10,10,10,10,10,10,10,10,10', NULL, NULL, 20, 5, NULL, NULL, NULL, 388, 9055, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3196, 'Pirate', NULL, 52, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 400, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3198, 'Banker', 'He can look after my money.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3199, 'Banker', 'He can look after my money.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3200, 'Chaos Elemental', 'pUre A cHaOs of crEatuRe!', 250, 158, 164, 93, 129, 137, '112,132,113,111,245,167,394,346,213,349,167,65,39,65,58', NULL, NULL, 72, 5, 30, 16, 3146, 3149, 3147, NULL, 5443, 5443, 556, 557, 558, 4, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1), +(3201, 'Killerwatt', NULL, 51, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 51, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3202, 'Killerwatt', NULL, 51, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 51, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3203, 'Storm Cloud', 'A very small storm!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3204, 'Storm Cloud', 'A very small storm!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3216, 'Mourner', 'A mourner', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3219, 'Dwarf', 'Loves mining.', 40, 28, 28, 28, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 6, 29, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3220, 'Dwarf', 'Loves mining.', 45, 32, 32, 32, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 6, 29, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3221, 'Dwarf', 'Loves mining.', 40, 28, 28, 28, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 6, 29, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3222, 'Drunken man', 'One of RuneScape\'s many citizens', 5, 4, 4, 4, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3223, 'Man', 'One of RuneScape\'s many citizens.', 4, 3, 3, 3, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(3224, 'Man', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,513,512', NULL, NULL, NULL), +(3225, 'Man', 'One of RuneScape\'s many citizens. He looks worried about something.', 4, 3, 3, 3, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,513,512', NULL, NULL, NULL), +(3226, 'Woman', NULL, 9, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,506,505', NULL, NULL, NULL), +(3227, 'Woman', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,506,505', NULL, NULL, NULL), +(3228, 'Guard', 'He tries to keep order around here.', 18, 13, 13, 13, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 386, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(3229, 'Guard', 'He tries to keep order around here.', 18, 1, 1, 13, 13, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 0, 0, 836, NULL, 0, 2075, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(3230, 'Guard', 'He tries to keep order around here.', 18, 13, 13, 13, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 395, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(3231, 'Guard', 'He tries to keep order around here.', 18, 1, 1, 13, 13, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 422, 0, 836, NULL, 0, 426, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(3232, 'Guard', 'Keeping an eye out for threats to the city.', 18, 1, 1, 13, 13, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 422, 0, 836, NULL, 0, 426, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(3233, 'Guard', 'Keeping an eye out for threats to the city.', 18, 1, 1, 13, 13, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 422, 0, 836, NULL, 0, 426, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(3234, 'Gardener', 'An old gardener.', 5, 4, 4, 4, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 433, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3235, 'Apprentice workman', 'He\'s learning a trade.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3236, 'Workman', 'A busy workman', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3237, 'Cuffs', NULL, 7, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3239, 'Rusty', NULL, 7, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3240, 'Jeff', NULL, 7, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3241, 'Guard', NULL, 22, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 395, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(3242, 'Dark wizard', 'A practicer of dark arts.', 30, 1, 1, 25, 1, 25, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 710, 0, NULL, NULL, NULL, 4, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(3243, 'Dark wizard', 'A practicer of dark arts.', 38, 1, 1, 27, 1, 27, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 710, 0, NULL, NULL, NULL, 4, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(3244, 'Dark wizard', 'A practicer of dark arts.', 22, 1, 1, 16, 1, 16, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 710, 0, NULL, NULL, NULL, 4, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(3245, 'Dark wizard', 'A practicer of dark arts.', 22, 1, 1, 16, 1, 16, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 710, 0, NULL, NULL, NULL, 4, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(3246, 'Barbarian', 'Alberich', 31, 22, 22, 22, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2067, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(3247, 'Barbarian', 'Fafner', 18, 22, 22, 22, 1, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 7048, 0, 836, NULL, 7048, 7048, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(3248, 'Barbarian', 'Fasolt', 31, 22, 22, 22, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2067, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(3249, 'Barbarian', 'Siegmund', 31, 22, 22, 22, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 401, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(3250, 'Barbarian', 'Siegfried', 31, 22, 22, 22, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2067, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(3251, 'Barbarian', 'Lydspor', 31, 22, 22, 22, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7048, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(3252, 'Barbarian', 'Hagen', 31, 22, 22, 22, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2067, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(3253, 'Barbarian', 'Minarch', 31, 22, 22, 22, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 401, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(3255, 'Barbarian', 'Wotan', 31, 22, 22, 22, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 401, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(3256, 'Barbarian', 'Acelin', 31, 22, 22, 22, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(3257, 'Barbarian', 'Adelino', 31, 22, 22, 22, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2067, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(3258, 'Barbarian', 'Adolpho', 31, 22, 22, 22, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 401, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(3259, 'Barbarian', 'Aitan', 31, 22, 22, 22, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 426, 0, 836, NULL, 0, 426, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(3260, 'Barbarian', 'Brunnhilde', 28, 20, 20, 20, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 428, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(3261, 'Barbarian', 'Gutrune', 28, 20, 20, 20, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 428, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(3262, 'Barbarian', 'Edelschwarz', 28, 20, 20, 20, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 428, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(3263, 'Barbarian', 'Sieglinde', 20, 22, 20, 22, 1, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 428, 404, 836, NULL, 428, 428, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(3264, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(3265, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(3266, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(3267, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '470,472,471', NULL, NULL, NULL), +(3268, 'Dwarf', 'A dwarven worker.', 14, 10, 10, 10, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 6, 29, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3269, 'Dwarf', 'A dwarven worker.', 14, 10, 10, 10, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 6, 29, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3270, 'Dwarf', 'A dwarven worker.', 14, 10, 10, 10, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 6, 29, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3271, 'Dwarf', 'A dwarven worker.', 14, 10, 10, 10, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 6, 29, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3272, 'Dwarf', 'A dwarven worker.', 14, 10, 10, 10, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 6, 29, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3273, 'Dwarf', 'A dwarven worker.', 14, 10, 10, 10, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 6, 29, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3274, 'Dwarf', 'A dwarven worker.', 14, 10, 10, 10, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 6, 29, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3275, 'Dwarf', 'A dwarven worker.', 14, 10, 10, 10, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 6, 29, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3276, 'Black Guard', 'A member of the Black Guard', 42, 30, 30, 30, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 6, 29, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3277, 'Black Guard', 'A member of the Black Guard', 42, 30, 30, 30, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 6, 29, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3278, 'Black Guard', 'A member of the Black Guard', 42, 30, 30, 30, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 6, 29, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3279, 'Black Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3280, 'Engineering assistant', 'He looks busy.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3282, 'Engineer', 'He\'s building a cannon.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3283, 'Squirrel', 'Bushy tail!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3286, 'Raccoon', 'A raccoon.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3288, 'Raccoon', 'A raccoon.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3291, 'Skeleton', 'Could do with gaining a few pounds.', 11, 8, 8, 8, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5485, 0, 5491, NULL, 0, 0, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(3293, 'null', 'She\'ll store my items for me.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3294, 'Dwarf', 'A dwarf who looks after the mining guild.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3295, 'Dwarf', 'A dwarf who looks after the mining guild.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3296, 'Swan', 'A graceful bird.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3298, 'Sweeper', 'Keeps this magic area tidy.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3299, 'Martin the Master Gardener', 'A master at gardening.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3302, 'Co-ordinator', 'Manages the fairies.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3304, 'Fairy Godfather', 'I\'m gonna make him an offer he can\'t refuse.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3307, 'Gatekeeper', 'Guardian of the market gate.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3309, 'Cow', 'Converts grass to beef.', 8, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 5849, 5850, 5851, NULL, 5849, 5849, NULL, NULL, NULL, 8, 20, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '369,371,370', NULL, NULL, NULL), +(3313, 'Tanglefoot', NULL, 102, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3319, 'Baby tanglefoot', 'An animated shrub.', 58, 1, 1, 41, 41, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3320, 'Baby tanglefoot', 'An aggressive bush.', 58, 1, 1, 41, 41, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3322, 'Fairy chef', 'Likes to cook with mushrooms.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3327, 'Jeremy Clerksin', 'Rather more tired than most.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3331, 'Barfy Bill', 'Looks a little green around the gills.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3334, 'Cavemouth', 'It\'s made of pure fire.', 1000, 200, 1500, 500, 300, 300, '126,98,86,297,311,304,319,13,284,30,0,0,0,0,0', NULL, NULL, 25, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3340, 'Giant Mole', 'Holy Mole-y!', 200, 60, 60, 50, 1, NULL, '80,100,100,120,100,99,230,250,100,80,260,200,90,112,0', NULL, NULL, 56, 6, NULL, NULL, 3312, 3311, 3310, NULL, 3312, 3312, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3341, 'Baby Mole', 'I will call him', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3344, 'Fungi', 'A fun guy. No wait', 65, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3345, 'Fungi', NULL, 75, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 2776, 2775, 2777, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3346, 'Zygomite', 'A bouncy fungus.', 60, 1, 1, 42, 42, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 2776, 0, 2777, NULL, 0, 0, NULL, NULL, NULL, 1, 94, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3347, 'Zygomite', NULL, 75, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 2776, 2775, 2777, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3348, 'White Knight', NULL, 53, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 8, NULL, NULL, 7049, 7050, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(3349, 'White Knight', NULL, 53, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 8, NULL, NULL, 7049, 7050, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(3350, 'White Knight', NULL, 53, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 8, NULL, NULL, 7049, 7050, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(3366, 'Evil Chicken', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '355,357,356', NULL, NULL, NULL), +(3367, 'Evil Chicken', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '355,357,356', NULL, NULL, NULL), +(3368, 'Evil Chicken', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '355,357,356', NULL, NULL, NULL), +(3369, 'Evil Chicken', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '355,357,356', NULL, NULL, NULL), +(3370, 'Evil Chicken', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '355,357,356', NULL, NULL, NULL), +(3371, 'Evil Chicken', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '355,357,356', NULL, NULL, NULL), +(3375, 'Evil Chicken', 'A fowl beast.', 117, 55, 55, 55, 55, 55, NULL, NULL, NULL, 0, NULL, NULL, NULL, 2299, 0, 2301, NULL, 0, 0, NULL, NULL, NULL, 10, 7, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '355,357,356', NULL, NULL, NULL), +(3376, 'Baby black dragon', 'Young but still dangerous.', 50, 80, 80, 42, 1, 40, '50,40,64,60,30,45,40,40,20,40,40,20,0,0,0', NULL, NULL, 32, 5, NULL, NULL, 25, 26, 28, NULL, 25, 25, NULL, NULL, NULL, 3, 68, 0, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '408,410,409', NULL, NULL, NULL), +(3378, 'Evil Dave', 'He seems to like wearing black.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3382, 'Hell-Rat', 'Vermin from the underworld.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, 67, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3389, 'Pirate Pete', 'A shifty-looking character.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3390, 'Mountain Dwarf', 'He looks short and grumpy.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3391, 'General Wartface', 'An ugly green creature.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3392, 'General Bentnoze', 'An ugly green creature.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3393, 'Lumbridge Guide', 'He provides new players with useful information.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3394, 'Evil Dave', 'He seems to like wearing black.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3404, 'null', 'Rutmir\'s assistant.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3406, 'Icefiend', 'A small ice demon.', 171, 60, 60, 60, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 9, 46, NULL, NULL, NULL, 1, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(3407, 'Guard', 'He tries to keep order around here.', 35, 25, 25, 25, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 7218, 0, 7219, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(3408, 'Guard', 'He tries to keep order around here.', 35, 25, 25, 25, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 583, 0, 7213, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(3409, 'Wild jade vine', 'A sentient plant - ready', 185, 65, 65, 65, 65, 65, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7246, 0, 7249, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3410, 'Wild jade vine', 'A sentient plant - ready', 185, 65, 65, 65, 65, 65, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7246, 0, 7249, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3411, 'Wild jade vine', 'A sentient plant - ready', 185, 65, 65, 65, 65, 65, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7246, 0, 7249, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3412, 'Wild jade vine', 'A sentient plant - ready', 185, 65, 65, 65, 65, 65, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7246, 0, 7249, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3413, 'Goblin Cook', 'He may be a funky cook', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(3414, 'Goblin Cook', 'More like a goblin cooked.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(3415, 'Goblin Cook', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(3416, 'Pirate Pete', 'He\'ll store my items for me.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3418, 'Pirate Pete', 'He\'ll store my items for me.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3419, 'Ogre', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3420, 'Mogre Guard', 'An angry Ogre in a highly amusing hat.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3421, 'Crab', 'Nice claw!', 31, 22, 22, 22, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 3428, 0, 3430, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3422, 'Mudskipper', 'Not the most beautiful fish in the sea.', 34, 24, 24, 24, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 3433, 0, 3435, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3423, 'Mudskipper', NULL, 20, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 3433, 3434, 3435, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3424, 'Crab', NULL, 18, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 3428, 3429, 3430, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3425, 'Fish', 'A Red Fantail.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3426, 'Fish', 'A Red Fantail.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3427, 'Fish', 'A Red Fantail.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3431, 'Fish', 'An Angel Fish.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3432, 'Fish', 'An Angel Fish.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3433, 'Fish', 'An Angel Fish.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3434, 'Fish', 'A Harlequin Fish.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3435, 'Fish', 'A Harlequin Fish.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3436, 'Fish', 'A Harlequin Fish.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3437, 'Fish', 'A Discus Fish.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3438, 'Fish', 'A Discus Fish.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3439, 'Fish', 'A Discus Fish.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3443, 'Fish', 'A shoal of Neon Tetra.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3444, 'Fish', 'A shoal of Neon Tetra.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3445, 'Fish', 'A shoal of Neon Tetra.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3449, 'Lumbridge Guide', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3450, 'null', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3451, 'Lumbridge Guide', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3463, 'Skrach Uglogwee', 'What restful music!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3476, 'Jubbly bird', 'A large boisterous bird', 11, 6, 6, 8, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6800, 0, 6801, NULL, 0, 0, NULL, NULL, NULL, 0, 7, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3478, 'King Awowogei', NULL, 328, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES +(3484, 'Big Snake', 'A big snake.', 65, 46, 46, 46, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 3538, 0, 3540, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, '3609,3608,3610', NULL, NULL, NULL), +(3491, 'Culinaromancer', NULL, 140, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3493, 'Agrith-Na-Na', NULL, 200, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 3501, 3500, 3503, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3494, 'Flambeed', NULL, 210, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1750, 1751, 1752, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3495, 'Karamel', NULL, 240, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3496, 'Dessourt', NULL, 140, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 3507, 3505, 3510, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3497, 'Gelatinnoth Mother', 'Deadly AND fruity!', 139, 48, 48, 65, 1, 65, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1341, 0, 1342, NULL, 0, 0, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3498, 'Gelatinnoth Mother', NULL, 240, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1341, 1340, 1342, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3499, 'Gelatinnoth Mother', NULL, 240, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1341, 1340, 1342, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3500, 'Gelatinnoth Mother', NULL, 240, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1341, 1340, 1342, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3501, 'Gelatinnoth Mother', NULL, 240, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1341, 1340, 1342, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3502, 'Gelatinnoth Mother', NULL, 240, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 1341, 1340, 1342, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3509, 'Sorin', 'Chronicler and regaler of your piratical exploits.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3514, 'Vampyre Juvinate', 'An initiate juvenile vampyre.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3521, 'Vampyre Juvinate', 'An initiate juvenile vampyre.', 64, 1, 1, 45, 45, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5783, 0, 5798, NULL, 0, 0, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3522, 'Vampyre Juvinate', NULL, 85, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5783, NULL, 5798, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3523, 'Vampyre Juvinate', NULL, 85, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5783, NULL, 5798, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3524, 'Vampyre Juvinate', NULL, 85, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5783, NULL, 5798, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3525, 'Vampyre Juvinate', NULL, 85, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5783, NULL, 5798, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3526, 'Vampyre Juvinate', 'An initiate juvenile vampyre', 65, 1, 1, 46, 46, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6016, 0, 6031, NULL, 0, 0, NULL, NULL, NULL, 0, 86, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3527, 'Held Vampyre Juvinate', 'A Juvinate vampyre', 64, 1, 1, 45, 45, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 5798, NULL, 0, 0, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3531, 'Vampyre Juvenile', 'He looks really hungry!', 57, 40, 40, 40, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6276, 0, 6781, NULL, 0, 0, NULL, NULL, NULL, 7, 86, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3532, 'Vampyre Juvenile', 'She looks really hungry!', 57, 40, 40, 40, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6276, 0, 6781, NULL, 0, 0, NULL, NULL, NULL, 7, 86, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3533, 'Vampyre Juvenile', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6276, NULL, 6781, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3534, 'Held Vampyre Juvenile', 'He looks really hungry!', 57, 40, 40, 40, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 6781, NULL, 0, 0, NULL, NULL, NULL, 7, 86, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3577, 'Juvinate', 'An initiate juvenile vampyre', 65, 1, 1, 46, 46, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6016, 0, 6031, NULL, 0, 0, NULL, NULL, NULL, 0, 86, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3579, 'Sheep', 'Is it a sheep?', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3581, 'Skeleton', 'He guards the dungeon with the faithfulness of the undead.', 100, 50, 50, 50, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5487, 0, 5491, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(3582, 'Guard dog', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 49, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3583, 'Hobgoblin', NULL, 29, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 164, 163, 167, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(3585, 'Huge spider', 'No spider could grow that big! It\'s unrealistic!', 122, 1, 1, 72, 72, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5319, 0, 5321, NULL, 0, 0, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '537,539,538', NULL, NULL, NULL), +(3586, 'Hellhound', 'Good doggy...', 134, 60, 60, 60, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 6562, 0, 6576, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, 116, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '3717,3719,3718', NULL, NULL, NULL), +(3587, 'Rantz', 'Big, ugly, and smelly.', 60, 27, 27, 27, 27, 27, '15,15,10,20,40,15,50,50,50,20,50,58,0,0,0', NULL, NULL, 25, 6, NULL, NULL, 359, 360, 361, NULL, 359, 359, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3588, 'Baby red dragon', 'Young but still dangerous.', 50, 40, 40, 42, 1, 40, '20,10,10,20,40,40,20,40,40,20,0,0,0,0,0', NULL, NULL, 32, 5, NULL, NULL, 25, 26, 28, NULL, 25, 25, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '408,410,409', NULL, NULL, NULL), +(3589, 'Kalphite Soldier', 'I don\'t think insect repellent will work...', 114, 70, 70, 70, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6223, 0, 6228, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3590, 'Steel dragon', 'Its scales seem to be made of steel.', 210, 234, 229, 238, 185, 72, '56,42,104,51,212,115,232,302,331,21,264,100,100,40,0', NULL, NULL, 35, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 8, NULL, 221, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '408,410,409', NULL, NULL, NULL), +(3591, 'Dagannoth', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(3593, 'Demon', 'Arrgh! Look at its pointy teeth!', 107, 75, 75, 75, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '400,404,403', NULL, NULL, NULL), +(3599, 'Swamp snake', 'A large snake that thrives in swamps.', 121, 35, 33, 40, 45, NULL, '10,10,10,10,10,10,1,10,6,10,6,4,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 3538, 3539, 3540, NULL, 3538, 3538, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '3609,3608,3610', NULL, NULL, NULL), +(3600, 'Swamp snake', 'A large snake that thrives in swamps.', 121, 60, 50, 60, 1, NULL, '10,10,10,10,10,10,1,10,6,10,6,4,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 3538, 3539, 3540, NULL, 3538, 3538, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '3609,3608,3610', NULL, NULL, NULL), +(3601, 'Swamp snake', 'A large snake that thrives in swamps.', 121, 35, 33, 40, 1, NULL, '10,10,10,10,10,10,1,10,6,10,6,4,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 3538, 3539, 3540, NULL, 3538, 3538, NULL, NULL, NULL, 7, 86, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '3609,3608,3610', NULL, NULL, NULL), +(3602, 'Swamp snake', 'A large snake that thrives in swamps.', 121, 35, 33, 40, 1, NULL, '10,10,10,10,10,10,1,10,6,10,6,4,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 3538, 3539, 3540, NULL, 3538, 3538, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '3609,3608,3610', NULL, NULL, NULL), +(3603, 'Dead swamp snake', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '3609,3608,3610', NULL, NULL, NULL), +(3604, 'Dead swamp snake', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '3609,3608,3610', NULL, NULL, NULL), +(3605, 'Dead swamp snake', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '3609,3608,3610', NULL, NULL, NULL), +(3618, 'Tentacle', 'I\'m glad I can\'t see the rest of it!', 171, 80, 80, 60, 80, 80, NULL, NULL, NULL, 60, NULL, NULL, NULL, 3618, 0, 3620, NULL, 0, 3618, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3619, 'Head', 'I\'m glad I can\'t see the rest of it!', 171, 85, 85, 60, 80, 80, NULL, NULL, NULL, 60, 10, NULL, NULL, 3731, 0, 3733, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3620, 'Head', NULL, 150, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 10, NULL, NULL, 3731, 3732, 3733, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3622, 'Zombie', NULL, 40, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(3634, 'Fyiona Fray', 'A high-ranking Vyrewatch', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3645, 'Angry bear', 'He looks a little on the cross side!', 35, 25, 25, 25, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '498,500,499', NULL, NULL, NULL), +(3646, 'Angry unicorn', 'He looks a little on the cross side!', 35, 25, 25, 25, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6376, 0, 6377, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '496,498,497', NULL, NULL, NULL), +(3647, 'Angry giant rat', 'He looks a little on the cross side!', 35, 25, 25, 25, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4933, 0, 4935, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3648, 'Angry goblin', 'He looks a little on the cross side!', 35, 25, 25, 25, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6185, 0, 6182, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(3649, 'Fear reaper', 'AHHHHH!', 38, 27, 27, 27, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3812, 0, 3813, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3650, 'Confusion beast', 'What on RuneScape is that?!?', 40, 28, 28, 28, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3818, 0, 3821, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3655, 'Hopeless creature', 'A hopeless poor creature.', 35, 25, 25, 25, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3823, 0, 3827, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3661, 'Angry unicorn', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '496,498,497', NULL, NULL, NULL), +(3662, 'Angry giant rat', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3663, 'Angry goblin', 'He looks a little on the cross side!', 35, 25, 25, 25, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6185, 0, 6182, NULL, 0, 0, NULL, NULL, NULL, 9, 38, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(3664, 'Angry bear', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '498,500,499', NULL, NULL, NULL), +(3672, 'Ram', 'Freshly sheared.', 2, 2, 2, 2, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5341, 0, 5343, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3673, 'Ram', 'White and fluffy.', 2, 2, 2, 2, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5338, 0, 5336, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3675, 'Vulture', 'If you see them circling', 54, 38, 38, 38, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 2019, 0, 2021, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3676, 'Vulture', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 2025, 2024, 2026, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3680, 'Ali the Leaflet Dropper', 'A young boy handing out flyers.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3697, 'Skeleton fremennik', 'Could use a good meal.', 24, 17, 17, 17, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6128, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 6, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(3698, 'Skeleton fremennik', NULL, 25, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 400, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(3699, 'Skeleton fremennik', NULL, 25, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 400, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(3700, 'Skeleton fremennik', 'He seems a little underweight.', 28, 20, 20, 20, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6128, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 6, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(3701, 'Skeleton fremennik', 'He seems a little underweight.', 28, 20, 20, 20, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6128, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 6, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(3702, 'Skeleton fremennik', NULL, 35, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 395, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(3703, 'Skeleton fremennik', 'He seems a little underweight.', 31, 22, 22, 22, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6128, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 6, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(3704, 'Skeleton fremennik', 'He seems a little underweight.', 31, 22, 22, 22, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6128, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 6, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(3705, 'Skeleton fremennik', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(3706, 'Ulfric', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6118, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3707, 'Brine rat', 'Eww', 50, 35, 35, 35, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 6117, 0, 6115, NULL, 0, 0, NULL, NULL, NULL, 9, 67, 50, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(3709, 'Boulder', 'A Wilderness fighter of massive repute.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3711, 'Giant bat', 'An annoying flappy thing.', 32, 12, 12, 32, 1, 32, NULL, NULL, NULL, NULL, 6, NULL, NULL, 4915, 4916, 4917, NULL, 4915, 4915, NULL, NULL, NULL, 4, 5, 8, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3715, 'Guard', NULL, 22, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 395, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(3726, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(3727, 'Splatter', 'Don\'t burst its bubble!', 13, 20, 20, 20, 1, 5, '5,10,10,10,10,2,0,0,0,0,0,0,0,0,0', NULL, NULL, 120, NULL, NULL, NULL, 3891, 3890, 3888, NULL, 3891, 3891, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3728, 'Splatter', 'Don\'t burst its bubble!', 23, 25, 25, 25, 1, 10, '10,15,15,15,15,5,0,0,0,0,0,0,0,0,0', NULL, NULL, 120, NULL, NULL, NULL, 3891, 3890, 3888, NULL, 3891, 3891, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3729, 'Splatter', 'Don\'t burst its bubble!', 23, 30, 30, 30, 1, 10, '15,20,20,20,20,8,0,0,0,0,0,0,0,0,0', NULL, NULL, 120, NULL, NULL, NULL, 3891, 3890, 3888, NULL, 3891, 3891, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3730, 'Splatter', 'Don\'t burst its bubble!', 23, 35, 35, 35, 1, 15, '20,25,25,25,25,10,0,0,0,0,0,0,0,0,0', NULL, NULL, 120, NULL, NULL, NULL, 3891, 3890, 3888, NULL, 3891, 3891, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3731, 'Splatter', 'Don\'t burst its bubble!', 23, 40, 40, 40, 1, 20, '25,30,30,30,30,15,0,0,0,0,0,0,0,0,0', NULL, NULL, 120, NULL, NULL, NULL, 3891, 3890, 3888, NULL, 3891, 3891, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3732, 'Shifter', 'Nippy little thing!', 23, 28, 28, 28, 1, 14, '20,25,20,40,40,40,40,5,18,0,0,0,0,0,0', NULL, 1, 127, NULL, NULL, NULL, 3901, 3902, 3903, NULL, 3901, 3901, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3733, 'Shifter', 'Nippy little thing!', 23, 28, 28, 28, 1, 14, '20,25,20,40,40,40,40,5,18,0,0,0,0,0,0', NULL, 1, 127, NULL, NULL, NULL, 3901, 3902, 3903, NULL, 3901, 3901, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3734, 'Shifter', 'Nippy little thing!', 38, 42, 42, 42, 1, 20, '30,35,30,50,50,50,50,10,15,0,0,0,0,0,0', NULL, 1, 127, NULL, NULL, NULL, 3901, 3902, 3903, NULL, 3901, 3901, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3735, 'Shifter', 'Nippy little thing!', 38, 42, 42, 42, 1, 20, '30,35,30,50,50,50,50,10,15,0,0,0,0,0,0', NULL, 1, 127, NULL, NULL, NULL, 3901, 3902, 3903, NULL, 3901, 3901, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3736, 'Shifter', 'Nippy little thing!', 53, 54, 54, 54, 1, 25, '35,40,35,60,60,60,60,20,15,0,0,0,0,0,0', NULL, 1, 127, NULL, NULL, NULL, 3901, 3902, 3903, NULL, 3901, 3901, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3737, 'Shifter', 'Nippy little thing!', 53, 54, 54, 54, 1, 25, '35,40,35,60,60,60,60,20,15,0,0,0,0,0,0', NULL, 1, 127, NULL, NULL, NULL, 3901, 3902, 3903, NULL, 3901, 3901, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3738, 'Shifter', 'Nippy little thing!', 68, 60, 60, 60, 1, 30, '40,50,40,70,70,70,70,30,15,0,0,0,0,0,0', NULL, 1, 127, NULL, NULL, NULL, 3901, 3902, 3903, NULL, 3901, 3901, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3739, 'Shifter', 'Nippy little thing!', 68, 60, 60, 60, 1, 30, '40,50,40,70,70,70,70,30,15,0,0,0,0,0,0', NULL, 1, 127, NULL, NULL, NULL, 3901, 3902, 3903, NULL, 3901, 3901, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3740, 'Shifter', 'Nippy little thing!', 83, 70, 70, 70, 1, 35, '50,60,50,80,70,90,80,35,14,0,0,0,0,0,0', NULL, 1, 127, NULL, NULL, NULL, 3901, 3902, 3903, NULL, 3901, 3901, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3741, 'Shifter', 'Nippy little thing!', 83, 70, 70, 70, 1, 35, '50,60,50,80,70,90,80,35,14,0,0,0,0,0,0', NULL, 1, 127, NULL, NULL, NULL, 3901, 3902, 3903, NULL, 3901, 3901, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3742, 'Ravager', 'Worse than termites!', 23, 15, 30, 15, 1, 10, '45,45,45,45,50,5,45,0,0,0,0,0,0,0,0', NULL, NULL, 120, 5, NULL, NULL, 3915, 3916, 3917, NULL, 3915, 3915, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3743, 'Ravager', 'Worse than termites!', 38, 20, 40, 20, 1, 15, '45,45,45,45,50,5,55,0,0,0,0,0,0,0,0', NULL, NULL, 120, 5, NULL, NULL, 3915, 3916, 3917, NULL, 3915, 3915, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3744, 'Ravager', 'Worse than termites!', 53, 30, 60, 30, 1, 20, '45,55,55,55,50,10,45,0,0,0,0,0,0,0,0', NULL, NULL, 120, 5, NULL, NULL, 3915, 3916, 3917, NULL, 3915, 3915, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3745, 'Ravager', 'Worse than termites!', 53, 45, 75, 45, 1, 30, '60,60,60,60,80,10,45,0,0,0,0,0,0,0,0', NULL, NULL, 120, 5, NULL, NULL, 3915, 3916, 3917, NULL, 3915, 3915, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3746, 'Ravager', 'Worse than termites!', 53, 60, 80, 60, 1, 40, '65,70,70,70,90,20,56,0,0,0,0,0,0,0,0', NULL, NULL, 120, 5, NULL, NULL, 3915, 3916, 3917, NULL, 3915, 3915, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3747, 'Spinner', 'Eeewww!', 33, 20, 20, 20, 1, 10, '20,40,40,40,40,10,38,0,0,0,0,0,0,0,0', NULL, NULL, 125, NULL, NULL, NULL, 3908, 3909, 3910, NULL, 3908, 3908, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3748, 'Spinner', 'Eeewww!', 50, 30, 30, 30, 1, 15, '30,60,60,60,60,15,38,0,0,0,0,0,0,0,0', NULL, NULL, 125, NULL, NULL, NULL, 3908, 3909, 3910, NULL, 3908, 3908, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3749, 'Spinner', 'Eeewww!', 67, 40, 40, 40, 1, 20, '50,70,70,70,70,20,38,0,0,0,0,0,0,0,0', NULL, NULL, 125, NULL, NULL, NULL, 3908, 3909, 3910, NULL, 3908, 3908, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3750, 'Spinner', 'Eeewww!', 101, 60, 60, 60, 1, 30, '60,100,100,100,100,30,25,0,0,0,0,0,0,0,0', NULL, NULL, 125, NULL, NULL, NULL, 3908, 3909, 3910, NULL, 3908, 3908, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3751, 'Spinner', 'Eeewww!', 84, 50, 50, 50, 1, 25, '55,80,80,80,85,25,30,0,0,0,0,0,0,0,0', NULL, NULL, 125, NULL, NULL, NULL, 3908, 3909, 3910, NULL, 3908, 3908, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3752, 'Torcher', 'Burn, baby, burn!', 18, 1, 1, 25, 1, 25, '30,30,30,30,15,30,40,0,0,0,0,0,0,0,0', NULL, NULL, 120, NULL, NULL, NULL, 3882, 3880, 3881, NULL, 3882, 3882, 646, 647, 648, 5, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3753, 'Torcher', 'Burn, baby, burn!', 18, 1, 1, 25, 1, 25, '30,30,30,30,15,30,40,0,0,0,0,0,0,0,0', NULL, NULL, 120, NULL, NULL, NULL, 3882, 3880, 3881, NULL, 3882, 3882, 646, 647, 648, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3754, 'Torcher', 'Burn, baby, burn!', 30, 1, 1, 40, 1, 40, '45,40,40,40,25,35,35,0,0,0,0,0,0,0,0', NULL, NULL, 120, NULL, NULL, NULL, 3882, 3880, 3881, NULL, 3882, 3882, 646, 647, 648, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3755, 'Torcher', 'Burn, baby, burn!', 30, 1, 1, 40, 1, 40, '45,40,40,40,25,35,35,0,0,0,0,0,0,0,0', NULL, NULL, 120, NULL, NULL, NULL, 3882, 3880, 3881, NULL, 3882, 3882, 646, 647, 648, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3756, 'Torcher', 'Burn, baby, burn!', 42, 1, 1, 50, 1, 50, '35,40,40,40,30,35,35,0,0,0,0,0,0,0,0', NULL, NULL, 120, NULL, NULL, NULL, 3882, 3880, 3881, NULL, 3882, 3882, 646, 647, 648, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3757, 'Torcher', 'Burn, baby, burn!', 42, 1, 1, 50, 1, 50, '35,40,40,40,30,35,35,0,0,0,0,0,0,0,0', NULL, NULL, 120, NULL, NULL, NULL, 3882, 3880, 3881, NULL, 3882, 3882, 646, 647, 648, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3758, 'Torcher', 'Burn, baby, burn!', 51, 1, 1, 60, 1, 60, '60,80,80,80,50,50,35,0,0,0,0,0,0,0,0', NULL, NULL, 120, NULL, NULL, NULL, 3882, 3880, 3881, NULL, 3882, 3882, 646, 647, 648, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3759, 'Torcher', 'Burn, baby, burn!', 51, 1, 1, 60, 1, 60, '60,80,80,80,50,50,35,0,0,0,0,0,0,0,0', NULL, NULL, 120, NULL, NULL, NULL, 3882, 3880, 3881, NULL, 3882, 3882, 646, 647, 648, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3760, 'Torcher', 'Burn, baby, burn!', 62, 1, 1, 70, 1, 70, '40,100,100,100,50,50,35,0,0,0,0,0,0,0,0', NULL, NULL, 120, NULL, NULL, NULL, 3882, 3880, 3881, NULL, 3882, 3882, 646, 647, 648, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3761, 'Torcher', 'Burn, baby, burn!', 62, 1, 1, 70, 1, 70, '40,100,100,100,50,50,35,0,0,0,0,0,0,0,0', NULL, NULL, 120, NULL, NULL, NULL, 3882, 3880, 3881, NULL, 3882, 3882, 646, 647, 648, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3762, 'Defiler', 'Duck!', 27, 1, 1, 25, 25, 30, '20,40,40,40,40,40,40,40,0,0,0,0,0,0,0', NULL, NULL, 120, NULL, NULL, NULL, 3920, 3921, 3922, NULL, 3920, 3920, 657, 657, NULL, 0, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3763, 'Defiler', 'Duck!', 27, 1, 1, 25, 25, 30, '20,40,40,40,40,40,40,40,0,0,0,0,0,0,0', NULL, NULL, 120, NULL, NULL, NULL, 3920, 3921, 3922, NULL, 3920, 3920, NULL, 657, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3764, 'Defiler', 'Duck!', 45, 1, 1, 40, 40, 40, '30,50,60,60,60,60,40,40,0,0,0,0,0,0,0', NULL, NULL, 120, NULL, NULL, NULL, 3920, 3921, 3922, NULL, 3920, 3920, 657, 657, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3765, 'Defiler', 'Duck!', 45, 1, 1, 40, 40, 40, '30,40,60,60,60,60,40,40,0,0,0,0,0,0,0', NULL, NULL, 120, NULL, NULL, NULL, 3920, 3921, 3922, NULL, 3920, 3920, NULL, 657, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3766, 'Defiler', 'Duck!', 62, 1, 1, 50, 50, 50, '35,65,70,70,70,70,40,40,0,0,0,0,0,0,0', NULL, NULL, 120, NULL, NULL, NULL, 3920, 3921, 3922, NULL, 3920, 3920, 657, 657, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3767, 'Defiler', 'Duck!', 62, 1, 1, 50, 50, 50, '35,65,70,70,70,70,40,40,0,0,0,0,0,0,0', NULL, NULL, 120, NULL, NULL, NULL, 3920, 3921, 3922, NULL, 3920, 3920, NULL, 657, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3768, 'Defiler', 'Duck!', 78, 1, 1, 60, 60, 60, '40,90,80,80,80,80,40,40,0,0,0,0,0,0,0', NULL, NULL, 120, NULL, NULL, NULL, 3920, 3921, 3922, NULL, 3920, 3920, 657, 657, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3769, 'Defiler', 'Duck!', 78, 1, 1, 60, 60, 60, '40,90,80,80,80,80,40,40,0,0,0,0,0,0,0', NULL, NULL, 120, NULL, NULL, NULL, 3920, 3921, 3922, NULL, 3920, 3920, NULL, 657, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3770, 'Defiler', 'Duck!', 97, 1, 1, 70, 70, 70, '50,100,100,100,120,100,40,40,80,0,0,0,0,0,0', NULL, NULL, 120, NULL, NULL, NULL, 3920, 3921, 3922, NULL, 3920, 3920, 657, 657, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3771, 'Defiler', 'Duck!', 97, 1, 1, 70, 70, 70, '50,100,100,100,120,100,40,40,80,0,0,0,0,0,0', NULL, NULL, 120, NULL, NULL, NULL, 3920, 3921, 3922, NULL, 3920, 3920, NULL, 657, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3772, 'Brawler', 'Mind your toes!', 53, 28, 28, 28, 1, 14, '45,45,50,50,50,50,50,15,50,0,0,0,0,0,0', NULL, NULL, 120, NULL, NULL, NULL, 3896, 3895, 3894, NULL, 3896, 3896, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3773, 'Brawler', 'Mind your toes!', 83, 42, 42, 42, 1, 21, '45,45,60,50,50,50,50,15,50,0,0,0,0,0,0', NULL, NULL, 120, NULL, NULL, NULL, 3896, 3895, 3894, NULL, 3896, 3896, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3774, 'Brawler', 'Mind your toes!', 113, 56, 56, 56, 1, 32, '45,45,60,80,80,80,80,25,50,0,0,0,0,0,0', NULL, NULL, 120, NULL, NULL, NULL, 3896, 3895, 3894, NULL, 3896, 3896, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3775, 'Brawler', 'Mind your toes!', 143, 74, 74, 74, 1, 38, '45,45,60,60,60,60,60,20,50,0,0,0,0,0,0', NULL, NULL, 120, NULL, NULL, NULL, 3896, 3895, 3894, NULL, 3896, 3896, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3776, 'Brawler', 'Mind your toes!', 173, 88, 88, 88, 1, 45, '45,45,80,100,100,100,100,30,46,0,0,0,0,0,0', NULL, NULL, 120, NULL, NULL, NULL, 3896, 3895, 3894, NULL, 3896, 3896, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3777, 'Doomsayer', 'Cheerful', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3782, 'Void Knight', 'A squire of balance.', 200, 1, 1, 80, 1, 80, '180,180,180,180,80,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 120, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3783, 'Frog', 'Long legged licker.', 78, 55, 55, 55, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7260, 0, 7256, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3784, 'Void Knight', NULL, 200, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3785, 'Void Knight', 'A squire of balance.', 200, 1, 1, 80, 1, 80, '180,180,180,180,80,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 120, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3786, 'Void Knight', 'A powerful knight of balance.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3788, 'Void Knight', 'A powerful knight of balance.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3790, 'Squire', 'A squire of balance.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3791, 'Squire', 'A squire of balance.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3792, 'Squire', 'A squire of balance.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3793, 'Squire', 'A squire of balance.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3794, 'Squire', 'A squire of balance.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3795, 'Squire', 'A squire of balance.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3796, 'Squire', 'A squire of balance.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3797, 'Squire', 'A squire of balance.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3798, 'Squire', 'A squire of balance.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3799, 'Squire', 'A squire of balance.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3800, 'Squire', 'A squire of balance.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3801, 'Squire', 'A squire of balance.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3802, 'Squire (Novice)', 'A squire of balance.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3805, 'Postie Pete', 'Posts things.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3806, 'Millie Miller', 'Miss Millicent Miller the Miller of Mill Lane Mill', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3808, 'Tortoise', 'Massive beast of War with extra Gnome.', 51, 36, 36, 36, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3960, 0, 3962, NULL, 0, 3954, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3809, 'Captain Dalbur', 'Tally Ho!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3810, 'Captain Bleemadge', 'Huzzah!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3811, 'Captain Errdo', 'Up up and away!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3812, 'Captain Klemfoodle', 'Up up and away!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3814, 'Gnome Archer', 'A Gnome Arrow-chucker', 42, 1, 1, 30, 30, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 190, 0, 196, NULL, 0, 0, NULL, NULL, NULL, 2, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3815, 'Gnome Driver', 'Yee haa!', 47, 33, 33, 33, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 3969, 0, 196, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3816, 'Gnome Mage', 'A battle mage of the gnomish variety.', 48, 1, 1, 34, 1, 34, NULL, NULL, NULL, 60, NULL, NULL, NULL, 3968, 0, 196, NULL, 0, 0, NULL, NULL, NULL, 5, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3818, 'Trainer Nacklepen', 'The cruel tortoise trainer. Boo!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3819, 'Tortoise', 'A large tortoise.', 51, 36, 36, 36, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 3960, 0, 3962, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3835, 'Kalphite Queen', NULL, 255, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, 64, 6241, 6240, 6242, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3836, 'Kalphite Queen', NULL, 255, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, 64, 6234, 6237, 6233, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3840, 'Sea troll', 'An aquatic troll.', 64, 45, 45, 45, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3843, 'Sea troll', 'An aquatic troll.', 85, 60, 60, 60, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3844, 'Skeleton Mage', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(3847, 'Sea Troll Queen', 'The mother of all sea trolls!', 428, 65, 65, 65, 65, 65, NULL, NULL, NULL, 60, NULL, NULL, NULL, 3991, 0, 3993, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3849, 'Fishing spot', 'What have they done to him?', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3850, 'Skeleton Mage', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(3851, 'Skeleton Mage', 'A skeleton of dark magic.', 81, 26, 26, 80, 85, 85, '30,30,45,10,30,30,30,30,30,30,30,30,30,30,40', NULL, 1, 15, NULL, NULL, NULL, 5523, 5489, 5491, NULL, 5523, 5523, 2713, 2718, 2723, 4, 75, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(3915, 'Man', 'One of RuneScape\'s many citizens.', 1, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(3916, 'Carpenter Kjallak', 'His bark\'s worse than his blight.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3917, 'Farmer Fromund', 'He looks a bit seedy.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(3939, 'Sea Snake Young', 'Snake', 128, 33, 33, 45, 45, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 3538, 0, 3540, NULL, 0, 0, NULL, NULL, NULL, 1, 72, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '3609,3608,3610', NULL, NULL, NULL), +(3940, 'Sea Snake Hatchling', 'A baby sea snake. Snaaaaaaake!', 100, 33, 33, 45, 45, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 3538, 0, 3540, NULL, 0, 0, NULL, NULL, NULL, 1, 72, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '3609,3608,3610', NULL, NULL, NULL), +(3941, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(3942, 'Guard', 'He\'s guarding the entrance to the dungeons.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(3943, 'Giant Sea Snake', 'A big snake that lives in the sea. How did it get in here?', 385, 33, 33, 45, 45, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 4040, 0, 4039, NULL, 0, 0, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '3609,3608,3610', NULL, NULL, NULL), +(4227, 'Cockatrice', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 37, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(4228, 'Basilisk', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4229, 'Kurask', 'Large, heavy, with sharp things attached to its head.', 97, 70, 105, 70, 1, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 1512, 1514, 1513, NULL, 1512, 1512, NULL, NULL, NULL, NULL, NULL, 97, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4230, 'Abyssal demon', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(4243, 'Demon butler', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '400,404,403', NULL, NULL, NULL), +(4245, 'Chief servant', 'Head of the servants\' guild.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4246, 'Taxidermist', 'She smells unpleasantly of chemicals.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4247, 'Estate agent', 'A fancy businessman with a mighty fine hat.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4248, 'Stonemason', 'Someone has to get rid of all the stone they dug Keldagrim out of.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4250, 'Sawmill operator', 'He changes the shape of wood.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(4251, 'Garden supplier', 'She has green fingers. (Not literally.)', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4252, 'Macaroni Penguin', 'Beak areful with this one', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4257, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL); +INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES +(4258, 'Guard', 'A dwarven guard.', 17, 12, 12, 12, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 99, 0, 102, NULL, 0, 0, NULL, NULL, NULL, 6, 29, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(4259, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(4260, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(4261, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4262, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4263, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4264, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4265, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4266, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4267, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4268, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4269, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4270, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4271, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4272, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4273, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4274, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4275, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4276, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4278, 'Animated Bronze Armour', 'Animated bronze armour.', 10, 8, 8, 8, 1, NULL, '3,3,3,3,1,3,1,3,3,3,3,8,10,8,3', NULL, NULL, 20, 5, NULL, NULL, 386, 388, 4167, NULL, 386, 386, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4279, 'Animated Iron Armour', 'Animated iron armour.', 20, 16, 16, 16, 1, NULL, '6,6,6,6,2,6,6,6,6,6,6,2,25,2,3', NULL, NULL, 20, 5, NULL, NULL, 386, 388, 4167, NULL, 386, 386, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4280, 'Animated Steel Armour', 'Animated steel armour.', 40, 32, 32, 32, 1, NULL, '10,10,10,10,4,10,10,10,10,10,10,2,22,2,3', NULL, NULL, 20, 5, NULL, NULL, 386, 388, 4167, NULL, 386, 386, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4281, 'Animated Black Armour', 'Animated black armour.', 60, 40, 40, 40, 1, NULL, '15,15,15,15,5,15,6,15,15,16,15,5,27,5,3', NULL, NULL, 20, 5, NULL, NULL, 386, 388, 4167, NULL, 386, 386, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4282, 'Animated Mithril Armour', 'Animated mithril armour.', 80, 55, 55, 55, 1, NULL, '20,20,20,20,20,20,8,20,20,20,20,5,31,5,3', NULL, NULL, 20, 5, NULL, NULL, 386, 388, 4167, NULL, 386, 386, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4283, 'Animated Adamant Armour', 'Animated adamant armour.', 99, 65, 65, 75, 1, NULL, '25,25,25,25,25,25,12,25,25,25,25,5,35,5,3', NULL, NULL, 20, 5, NULL, NULL, 386, 388, 4167, NULL, 386, 386, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4284, 'Animated Rune Armour', 'Animated rune armour.', 118, 75, 75, 85, 1, NULL, '30,30,30,30,30,30,16,30,25,30,30,5,39,5,3', NULL, NULL, 20, 5, NULL, NULL, 386, 388, 4167, NULL, 386, 386, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4291, 'Cyclops', 'A one-eyed man eater.', 117, 41, 41, 41, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 4652, 0, 4653, NULL, 0, 0, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(4292, 'Cyclops', 'A one-eyed woman eater.', 140, 49, 49, 49, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 4652, 0, 4653, NULL, 0, 0, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(4300, 'Ref', 'He looks fair and reliable.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4301, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(4302, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(4303, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(4304, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(4305, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(4306, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(4307, 'Guard', 'A guard for the humans against monster group.', 37, 26, 26, 26, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(4308, 'Guard', NULL, 22, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 395, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(4309, 'Guard', NULL, 22, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 395, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(4310, 'Guard', NULL, 22, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 395, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(4311, 'Guard', NULL, 22, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 395, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(4316, 'Dwarf', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4318, 'H.A.M. Member', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(4320, 'H.A.M. Member', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(4329, 'H.A.M. Deacon', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(4336, 'Guard', NULL, 22, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 395, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(4343, 'Snake', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '3609,3608,3610', NULL, NULL, NULL), +(4344, 'Monkey', NULL, 12, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 220, 221, 223, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(4345, 'Albino bat', 'It\'s all white by me.', 44, 31, 31, 31, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 4915, 0, 4917, NULL, 0, 0, NULL, NULL, NULL, 8, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4347, 'Giant mosquito', 'A flying blood sucker.', 90, 63, 63, 63, 1, NULL, NULL, NULL, NULL, 60, 10, NULL, NULL, 2397, 0, 2398, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4348, 'Jungle horror', 'A horrible', 68, 48, 48, 48, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 4235, 0, 4233, NULL, 0, 0, NULL, NULL, NULL, 7, 52, 45, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(4349, 'Jungle horror', NULL, 45, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 4234, 4232, 4233, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 45, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(4350, 'Jungle horror', 'A horrible', 68, 48, 48, 48, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 4235, 0, 4233, NULL, 0, 0, NULL, NULL, NULL, 7, 52, 45, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(4351, 'Jungle horror', NULL, 45, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 4234, 4232, 4233, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 45, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(4352, 'Jungle horror', NULL, 45, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 4234, 4232, 4233, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 45, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(4353, 'Cave horror', 'A horrible, emaciated ape like creature with beady red eyes.', 55, 70, 65, 70, 65, 70, '30,30,30,30,10,30,30,30,10,30,30,15,15,15,30', NULL, NULL, 20, 5, NULL, NULL, 4234, 4232, 4233, NULL, 4234, 4234, NULL, NULL, NULL, 6, 17, 55, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(4354, 'Cave horror', 'A horrible, emaciated ape like creature with beady red eyes.', 55, 70, 65, 70, 65, 70, '30,30,30,30,10,30,30,30,10,30,30,15,15,15,30', NULL, NULL, 20, 5, NULL, NULL, 4234, 4232, 4233, NULL, 4234, 4234, NULL, NULL, NULL, NULL, NULL, 55, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(4355, 'Cave horror', 'A horrible, emaciated ape like creature with beady red eyes.', 55, 70, 65, 70, 65, 70, '30,30,30,30,10,30,30,30,10,30,30,15,15,15,30', NULL, NULL, 20, 5, NULL, NULL, 4234, 4232, 4233, NULL, 4234, 4234, NULL, NULL, NULL, 6, 17, 55, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(4356, 'Cave horror', NULL, 55, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 4234, 4232, 4233, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 55, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(4357, 'Cave horror', 'A horrible', 78, 55, 55, 55, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 4235, 0, 4233, NULL, 0, 0, NULL, NULL, NULL, 6, 17, 55, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(4359, 'Patchy', 'Patchy the pirate.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4361, 'Fancy Dan', 'A very flamboyant pirate.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4362, 'Honest Jimmy', 'I can\'t wait to buy from a guy with Honest in his name...', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4363, 'Monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(4371, 'Blue Monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(4372, 'Red Monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(4373, 'Parrot', 'A colourful bird.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4375, 'Security Guard', 'A retired RuneScape security guard.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4381, 'Ankou', 'A bony ghost.', 60, 50, 69, 50, 1, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 422, 404, 9055, NULL, 422, 422, NULL, NULL, NULL, NULL, NULL, 60, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(4382, 'Ankou', 'A bony ghost.', 66, 50, 69, 50, 1, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 422, 404, 9055, NULL, 422, 422, NULL, NULL, NULL, NULL, NULL, 60, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(4383, 'Ankou', 'A bony ghost.', 66, 60, 74, 55, 1, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 422, 404, 9055, NULL, 422, 422, NULL, NULL, NULL, NULL, NULL, 60, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(4384, 'Skeleton', NULL, 68, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, 5513, 5491, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(4385, 'Skeleton', 'Could do with gaining a few pounds.', 48, 34, 34, 34, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5485, 0, 5491, NULL, 0, 0, NULL, NULL, NULL, 7, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(4386, 'Skeleton', NULL, 85, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, 5513, 5491, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(4387, 'Ghost', NULL, 36, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5540, 5541, 5542, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(4388, 'Ghost', 'Eeek! A ghost!', 42, 1, 1, 30, 1, 30, NULL, NULL, NULL, 60, 5, NULL, NULL, 5532, 0, 5534, NULL, 0, 0, NULL, NULL, NULL, 5, 36, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(4389, 'Flesh Crawler', 'Examine not added', 25, 25, 1, 20, 29, NULL, '15,15,15,15,15,22,15,15,15,15,15,15,15,15,15', NULL, NULL, 30, 5, NULL, NULL, 1184, 1186, 1190, NULL, 1184, 1184, NULL, NULL, NULL, 0, 34, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4390, 'Flesh Crawler', 'Examine not added', 25, 30, 1, 29, 1, NULL, '21,21,21,21,21,26,21,21,21,21,21,21,21,21,21', NULL, NULL, 30, 5, NULL, NULL, 1184, 1186, 1190, NULL, 1184, 1184, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4391, 'Flesh Crawler', 'Examine not added', 25, 35, 1, 35, 1, NULL, '25,25,25,25,25,29,25,25,25,25,25,25,25,25,25', NULL, NULL, 30, 5, NULL, NULL, 1184, 1186, 1190, NULL, 1184, 1184, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4392, 'Zombie', 'Examine not added', 23, 24, 1, 25, 1, NULL, '15,25,25,25,25,25,25,15,15,25,25,25,25,25,25', NULL, NULL, 30, 5, NULL, NULL, 5568, 5567, 5569, NULL, 5568, 5568, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(4393, 'Zombie', 'Examine not added', 18, 35, 1, 28, 1, NULL, '15,25,28,28,25,28,28,15,15,28,25,25,25,25,25', NULL, NULL, 30, 5, NULL, NULL, 5578, 5579, 5580, NULL, 5578, 5578, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(4394, 'Zombie', 'Examine not added', 40, 47, 1, 48, 1, NULL, '35,45,45,45,45,45,45,35,35,45,45,45,45,45,45', NULL, NULL, 30, 5, NULL, NULL, 5578, 5579, 5580, NULL, 5578, 5578, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(4395, 'Giant rat', 'Overgrown vermin.', 26, 21, 20, 23, 1, NULL, '19,15,15,34,36,38,33,31,30,14,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, 67, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(4396, 'Rat', 'A popular dwarven delicacy.', 2, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 2705, 2706, 2707, NULL, 2705, 2705, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '3102,3104,3103', NULL, NULL, NULL), +(4397, 'Catablepon', 'Big Cow-like... But cows don\'t have serpent tails!', 50, 38, 38, 38, 1, 38, '5,20,15,3,10,20,10,10,20,15,23,25,15,25,10', NULL, NULL, 74, 5, NULL, NULL, 4271, 4273, 4270, NULL, 4272, NULL, NULL, NULL, NULL, NULL, NULL, 50, NULL, NULL, 1, NULL, NULL, NULL, 1, 7, NULL, NULL, NULL, NULL), +(4398, 'Catablepon', 'Big Cow-like... But cows don\'t have serpent tails!', 70, 38, 38, 38, 1, 38, '20,25,10,20,25,10,10,11,0,0,0,0,0,0,0', NULL, NULL, 74, 5, NULL, NULL, 4271, 4273, 4270, NULL, 4272, NULL, NULL, NULL, NULL, NULL, NULL, 50, NULL, NULL, 1, NULL, NULL, NULL, 1, 7, NULL, NULL, NULL, NULL), +(4399, 'Catablepon', 'Big Cow-like... But cows don\'t have serpent tails!', 50, 40, 58, 38, 1, 45, '50,45,50,40,45,20,30,25,33,25,25,20,20,40,0', NULL, NULL, 74, 5, NULL, NULL, 4271, 4273, 4270, NULL, 4272, NULL, NULL, NULL, NULL, NULL, NULL, 50, NULL, NULL, 1, NULL, NULL, NULL, 1, 7, NULL, NULL, NULL, NULL), +(4400, 'Giant spider', 'I think this spider has been genetically modified.', 50, 48, 45, 51, 1, NULL, '19,21,19,62,45,51,54,63,60,18,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, 5327, 5328, 5329, NULL, 5327, 5327, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '537,539,538', NULL, NULL, NULL), +(4401, 'Spider', NULL, 22, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6249, 6250, 6251, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4402, 'Scorpion', 'An extremely vicious scorpion.', 55, 50, 51, 49, 1, NULL, '12,23,10,51,32,62,29,54,48,0,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 6254, 6255, 6256, NULL, 6254, 6254, NULL, NULL, NULL, NULL, NULL, 17, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '3611,3612,3610', NULL, NULL, NULL), +(4403, 'Scorpion', 'An extremely vicious scorpion.', 37, 30, 31, 35, 1, NULL, '15,16,12,32,19,38,18,34,32,0,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 6254, 6255, 6256, NULL, 6254, 6254, NULL, NULL, NULL, NULL, NULL, 17, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '3611,3612,3610', NULL, NULL, NULL), +(4404, 'Minotaur', 'Examine not added', 11, 10, 10, 10, 1, NULL, '8,8,10,8,8,10,8,8,8,10,8,8,8,8,8', NULL, NULL, 30, 5, NULL, NULL, 4266, 4267, 4265, NULL, 4266, 4266, NULL, NULL, NULL, 7, 58, 10, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(4405, 'Minotaur', 'Examine not added', 17, 1, 1, 15, 1, NULL, '11,11,13,11,11,13,11,11,11,13,11,11,11,11,11', NULL, NULL, 30, 5, NULL, NULL, 4266, 4267, 4265, NULL, 4266, 4266, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(4406, 'Minotaur', 'Examine not added', 20, 1, 1, 19, 1, NULL, '15,15,15,15,15,15,15,15,15,15,15,15,15,15,15', NULL, NULL, 30, 5, NULL, NULL, 4266, 4267, 4265, NULL, 4266, 4266, NULL, NULL, NULL, NULL, NULL, 22, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(4407, 'Goblin', 'An ugly green creature.', 10, 1, 2, 5, 1, NULL, '3,3,3,3,3,3,3,3,3,3,3,3,3,3,3', NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4408, 'Goblin', 'An ugly green creature.', 10, 1, 2, 11, 1, NULL, '8,8,8,8,8,8,8,8,8,8,8,8,8,8,8', NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4409, 'Goblin', 'An ugly green creature.', 10, 1, 2, 9, 1, NULL, '6,6,6,6,6,6,6,6,6,6,6,6,6,6,6', NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4410, 'Goblin', 'An ugly green creature.', 10, 1, 2, 10, 1, NULL, '8,8,8,8,8,8,8,8,8,8,8,8,8,8,8', NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4411, 'Goblin', 'An ugly green creature.', 10, 1, 2, 17, 1, NULL, '10,10,10,10,10,10,10,10,10,10,10,10,10,10,10', NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4412, 'Goblin', 'An ugly green creature.', 10, 1, 2, 10, 1, NULL, '8,8,8,8,8,8,8,8,8,8,8,8,8,8,8', NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4413, 'Wolf', 'Examine not added', 69, 1, 1, 9, 1, NULL, '7,7,7,7,7,7,7,7,7,7,7,7,7,7,7', NULL, NULL, 30, 5, NULL, NULL, 6559, 6557, 6558, NULL, 6559, 6559, NULL, NULL, NULL, NULL, NULL, 15, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '481,491,490', NULL, NULL, NULL), +(4414, 'Wolf', 'Examine not added', 69, 1, 1, 7, 1, NULL, '5,5,5,5,5,5,5,5,5,5,5,5,5,5,5', NULL, NULL, 30, 5, NULL, NULL, 6559, 6557, 6558, NULL, 6559, 6559, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '481,491,490', NULL, NULL, NULL), +(4415, 'Rat', 'A popular dwarven delicacy.', 2, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 2705, 2706, 2707, NULL, 2705, 2705, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '3102,3104,3103', NULL, NULL, NULL), +(4418, 'Gorak', NULL, 112, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 4300, 4301, 4302, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 112, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4419, 'Cosmic Being', 'A highly enlightened being.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4438, 'Centaur', 'Horseplay.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4439, 'Centaur', 'Half horse', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4440, 'Stag', 'A noble creature!', 25, 18, 18, 18, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6376, 0, 6377, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4441, 'Wood Dryad', 'Twiggy.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4455, 'Fairy Fixit', 'Fairy ring maintenance division.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4457, 'Ork', 'He works in the bank.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4458, 'Ork', 'She works in the bank.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4459, 'Ork', 'She works in the bank.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4470, 'Tree spirit', 'A very angry nymph.', 12, 9, 9, 9, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 94, 0, 97, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4474, 'Magic dummy', 'A magic training dummy', 15, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 94, 0, 97, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4476, 'Guardian mummy', 'Who\'s your mummy?', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4479, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4480, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4481, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4482, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4483, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4484, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4485, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4486, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4487, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4488, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4489, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4490, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4491, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4492, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4494, 'General Wartface', 'An ugly green creature.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4499, 'Goblin', 'An ugly green creature.', 10, 1, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4501, 'Ethereal Man', 'Is he real or is it just my imagination?', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4502, 'Ethereal Lady', 'Does she really exist?', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4503, 'Ethereal Numerator', 'He reminds me of my old mathematics teacher.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(4504, 'Ethereal Expert', 'The master of accomplishment.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4505, 'Ethereal Perceptive', 'He knows what is possible.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4506, 'Ethereal Guide', 'He knows the past', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4507, 'Ethereal Fluke', 'Luck is probably on his side.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4509, 'Me', 'It\'s like looking in the mirror.', 171, 60, 60, 60, 60, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 414, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4510, 'Me', 'It\'s like looking in the mirror.', 171, 60, 60, 60, 60, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 414, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4511, 'Oneiromancer', 'Spiritual leader of the Moonclan.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4512, 'House', 'The craziest house I ever did see!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4521, 'Enchanted Broom', 'How does it see where to sweep?', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4524, 'Enchanted Bucket', 'I\'m not sure if it\'s actually doing anything of use.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4527, 'Suqah', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 4388, 4384, 4389, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(4528, 'Suqah', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 4388, 4384, 4389, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(4529, 'Suqah', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 4388, 4384, 4389, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(4530, 'Suqah', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 4388, 4385, 4389, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(4531, 'Suqah', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 4388, 4385, 4389, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(4532, 'Suqah', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 4388, 4384, 4389, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(4533, 'Suqah', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 4388, 4384, 4389, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(4534, 'Moss giant', 'His beard seems to have a life of its own.', 60, 37, 37, 20, 37, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4666, 4665, 4668, NULL, 4666, 4666, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '449,451,450', NULL, NULL, NULL), +(4537, 'Lokar Searunner', 'Either a very fremennikey pirate', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4539, 'Cabin boy', 'I always wondered what that job description actually meant...', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4540, 'Captain Bentley', 'The High Priest has been transformed into an avatar of Bandos.', 214, 55, 55, 55, 55, 55, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4541, '\'Beefy\' Burns', 'A stickler for hygiene in the kitchen.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4542, '\'Eagle-eye\' Shultz', 'A keen-eyed lookout with a telescope.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4543, 'First mate \'Davey-boy\'', 'First mate to Captain Bentley.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4545, '\'Picarron\' Pete', 'A pirate through and through.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4546, 'Jake', NULL, 50, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4547, 'Bedread the bold', 'He got his name from his favourite hobby. Reading about beds.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4548, 'Wilson', NULL, 50, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 395, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4549, 'Tommy 2-times', 'Nobody really knows why he\'s called Tommy 2-times...', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4550, 'Murky Pat', 'Don\'t look him straight in the eyes. He\'ll eat you alive!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4551, 'Jack Sails', 'Nice beard.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4554, '\'Beedy-eye\' Jones', 'Is he looking at me?', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4555, 'Jenny Blade', 'Yes', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4556, '\'Lecherous\' Lee', 'A low-down', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4557, '\'Sticky\' Sanders', 'Apparently his nickname comes from his fondness for jam.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4564, 'Digsite workman', 'This person is working on the site.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4565, 'Digsite workman', 'This person is working on the site.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4566, 'Examiner', 'Upon examining the examiner you examine it is indeed an examiner!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4567, 'Examiner', 'Upon examining the examiner you examine it is indeed an examiner!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4568, 'Researcher', 'Must be hard at work.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4579, 'Generic Diplomat', 'He makes pots.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4580, 'Ambassador Gimblewap', 'He\'s very diplomatic.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4581, 'Ambassador Spanfipple', 'Peaceful man!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4582, 'Ambassador Ferrnook', 'Peaceful man!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4589, 'Sorrn', 'Your common man.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4590, 'Mimm', 'Your common woman.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4593, 'Portobello', 'Your common man.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4594, 'Captain Ninto', 'A gnome pilot off duty', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4595, 'Captain Daerkin', 'A gnome pilot off duty', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4600, 'Guard Vemmeldo', 'He looks alert and ready for action.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4603, 'Fortress Guard', 'A generic evil henchman.', 37, 26, 26, 26, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4604, 'Fortress Guard', 'A generic evil henchman.', 37, 26, 26, 26, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 428, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4605, 'Fortress Guard', 'A generic evil henchman.', 37, 26, 26, 26, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 428, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4606, 'Fortress Guard', 'A generic evil henchman.', 37, 26, 26, 26, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4607, 'Black Cat', 'A witch\'s black cat.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4608, 'Monk', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(4611, 'Saboteur', 'Swine.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4615, 'Evil creature', 'What is that thing!', 0, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4633, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4634, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4635, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4636, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL); +INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES +(4637, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(4638, 'Gnome soldier', 'A little warrior.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4639, 'Gnome soldier', 'A little warrior.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4640, 'Gnome soldier', 'A little warrior.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4641, 'Gnome soldier', 'A little warrior.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4642, 'Gnome soldier', 'A little warrior.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4643, 'Healthorg and tortoise', 'King Healthorg riding his War Tortoise.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4645, 'Glouphrie the Untrusted', 'A weasly', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4650, 'Trader Stan', 'With the prices he charges', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4651, 'Trader Crewmember', 'Looks very stylish', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4652, 'Trader Crewmember', 'That suit looks a little briny around the edges.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4653, 'Trader Crewmember', 'First storm he is in that hat will blow away.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4654, 'Trader Crewmember', 'She\'ll never be able to climb rigging in that.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4655, 'Trader Crewmember', 'High heels on a ship? What is she thinking?', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4656, 'Trader Crewmember', 'The effect is sort of spoiled by all those tattoos.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, 710, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4658, 'Dark wizard', 'A wizard of the Dark Arts.', 12, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 810, 425, 836, NULL, 710, 0, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(4659, 'Dark wizard', 'A wizard of the Dark Arts.', 12, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 810, 425, 836, NULL, 710, 0, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(4660, 'Dark wizard', 'A wizard of the Dark Arts.', 25, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 810, 425, 836, NULL, 710, 0, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(4661, 'Dark wizard', 'A wizard of the Dark Arts.', 30, 1, 1, 15, 1, 15, '30,10,10,10,10,10,10,25,0,0,0,0,0,0,0', NULL, NULL, 20, 5, NULL, NULL, NULL, 404, 9055, NULL, NULL, NULL, 2713, 2718, NULL, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(4665, 'Baby blue dragon', 'Young but still dangerous.', 50, 40, 40, 42, 1, 40, '50,40,64,60,30,45,40,40,20,40,40,20,0,0,0', NULL, NULL, 32, 5, NULL, NULL, 25, 26, 28, NULL, 25, 25, NULL, NULL, NULL, 3, 68, 0, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '408,410,409', NULL, NULL, NULL), +(4666, 'Baby blue dragon', 'Young but still dangerous.', 51, 45, 45, 48, 45, 45, '49,45,43,50,73,71,56,78,68,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 108, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '408,410,409', NULL, NULL, NULL), +(4667, 'Baby red dragon', NULL, 50, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '408,410,409', NULL, NULL, NULL), +(4668, 'Baby red dragon', NULL, 50, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '408,410,409', NULL, NULL, NULL), +(4669, 'Red dragon', 'A big powerful dragon.', 145, 60, 60, 60, 60, 60, '35,35,90,120,120,50,120,90,85,0,0,0,0,0,0', NULL, NULL, 35, NULL, NULL, NULL, 80, 89, 92, NULL, 80, 80, NULL, NULL, NULL, 3, 68, NULL, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '408,410,409', NULL, NULL, NULL), +(4670, 'Red dragon', 'A big powerful dragon.', 145, 60, 60, 60, 60, 60, '35,35,90,120,120,50,120,90,85,0,0,0,0,0,0', NULL, NULL, 35, NULL, NULL, NULL, 80, 89, 92, NULL, 80, 80, NULL, NULL, NULL, 3, 68, NULL, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '408,410,409', NULL, NULL, NULL), +(4671, 'Red dragon', 'A big powerful dragon.', 145, 60, 60, 60, 60, 60, '35,35,90,120,120,50,120,90,85,0,0,0,0,0,0', NULL, NULL, 35, NULL, NULL, NULL, 80, 89, 92, NULL, 80, 80, NULL, NULL, NULL, 3, 68, NULL, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '408,410,409', NULL, NULL, NULL), +(4672, 'Red dragon', 'A big powerful dragon.', 145, 60, 60, 60, 60, 60, '35,35,90,120,120,50,120,90,85,0,0,0,0,0,0', NULL, NULL, 35, NULL, NULL, NULL, 80, 89, 92, NULL, 80, 80, NULL, NULL, NULL, 3, 68, NULL, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '408,410,409', NULL, NULL, NULL), +(4673, 'Black dragon', 'A fierce dragon with black scales!', 190, 72, 72, 72, 72, 72, '60,50,110,220,220,90,180,200,100,0,0,0,0,0,0', NULL, NULL, 35, NULL, NULL, NULL, 80, 89, 92, NULL, 80, 80, NULL, NULL, NULL, 3, 9, 200, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '408,410,409', NULL, NULL, NULL), +(4674, 'Black dragon', 'A fierce dragon with black scales!', 190, 72, 72, 72, 72, 72, '60,50,110,220,220,90,180,200,100,0,0,0,0,0,0', NULL, NULL, 35, NULL, NULL, NULL, 80, 89, 92, NULL, 80, 80, NULL, NULL, NULL, 3, 9, 200, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '408,410,409', NULL, NULL, NULL), +(4675, 'Black dragon', 'A fierce dragon with black scales!', 190, 72, 72, 72, 72, 72, '60,50,110,220,220,90,180,200,100,0,0,0,0,0,0', NULL, NULL, 35, NULL, NULL, NULL, 80, 89, 92, NULL, 80, 80, NULL, NULL, NULL, 3, 9, 200, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '408,410,409', NULL, NULL, NULL), +(4676, 'Black dragon', 'A fierce dragon with black scales!', 190, 72, 72, 72, 72, 72, '60,50,110,220,220,90,180,200,100,0,0,0,0,0,0', NULL, NULL, 35, NULL, NULL, NULL, 80, 89, 92, NULL, 80, 80, NULL, NULL, NULL, 3, 9, 200, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '408,410,409', NULL, NULL, NULL), +(4677, 'Green dragon', 'Must be related to Elvarg.', 75, 45, 45, 45, 45, 45, '35,35,75,120,120,50,120,90,35,0,0,0,0,0,0', NULL, NULL, 35, NULL, NULL, NULL, 80, 89, 92, NULL, 80, 80, NULL, NULL, NULL, 3, 41, 75, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '408,410,409', NULL, NULL, NULL), +(4678, 'Green dragon', 'Must be related to Elvarg.', 75, 45, 45, 45, 45, 45, '35,35,75,120,120,50,120,90,35,0,0,0,0,0,0', NULL, NULL, 35, NULL, NULL, NULL, 80, 89, 92, NULL, 80, 80, NULL, NULL, NULL, 3, 41, 75, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '408,410,409', NULL, NULL, NULL), +(4679, 'Green dragon', 'Must be related to Elvarg.', 75, 45, 45, 45, 45, 45, '35,35,75,120,120,50,120,90,35,0,0,0,0,0,0', NULL, NULL, 35, NULL, NULL, NULL, 80, 89, 92, NULL, 80, 80, NULL, NULL, NULL, 3, 41, 75, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '408,410,409', NULL, NULL, NULL), +(4680, 'Green dragon', 'Must be related to Elvarg.', 75, 45, 45, 45, 45, 45, '35,35,75,120,120,50,120,90,35,0,0,0,0,0,0', NULL, NULL, 35, NULL, NULL, NULL, 80, 89, 92, NULL, 80, 80, NULL, NULL, NULL, 3, 41, 75, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '408,410,409', NULL, NULL, NULL), +(4681, 'Blue dragon', 'A mother dragon.', 105, 53, 53, 53, 53, 53, '40,35,75,120,120,50,120,90,35,0,0,0,0,0,0', NULL, NULL, 35, NULL, NULL, NULL, 80, 89, 92, NULL, 80, 80, NULL, NULL, NULL, 3, 11, 108, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '408,410,409', NULL, NULL, NULL), +(4682, 'Blue dragon', 'A mother dragon.', 105, 53, 53, 53, 53, 53, '40,35,75,120,120,50,120,90,35,0,0,0,0,0,0', NULL, NULL, 35, NULL, NULL, NULL, 80, 89, 92, NULL, 80, 80, NULL, NULL, NULL, 3, 11, 108, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '408,410,409', NULL, NULL, NULL), +(4683, 'Blue dragon', 'A mother dragon.', 105, 53, 53, 53, 53, 53, '40,35,75,120,120,50,120,90,35,0,0,0,0,0,0', NULL, NULL, 35, NULL, NULL, NULL, 80, 89, 92, NULL, 80, 80, NULL, NULL, NULL, 3, 11, 108, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '408,410,409', NULL, NULL, NULL), +(4684, 'Blue dragon', 'A mother dragon.', 105, 53, 53, 53, 53, 53, '40,35,75,120,120,50,120,90,35,0,0,0,0,0,0', NULL, NULL, 35, NULL, NULL, NULL, 80, 89, 92, NULL, 80, 80, NULL, NULL, NULL, 3, 11, 108, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '408,410,409', NULL, NULL, NULL), +(4685, 'Ice giant', NULL, 70, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 4658, 4657, 4659, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '449,451,450', NULL, NULL, NULL), +(4686, 'Ice giant', 'He\'s got icicles in his beard.', 105, 37, 37, 37, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 4672, 0, 4673, NULL, 0, 0, NULL, NULL, NULL, 9, 47, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '449,451,450', NULL, NULL, NULL), +(4687, 'Ice giant', NULL, 70, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 4658, 4657, 4659, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '449,451,450', NULL, NULL, NULL), +(4688, 'Moss giant', 'His beard seems to have a life of its own.', 60, 37, 37, 20, 37, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4666, 4665, 4668, NULL, 4666, 4666, NULL, NULL, NULL, 1, 62, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '449,451,450', NULL, NULL, NULL), +(4689, 'Hill Giant', 'A very large foe.', 35, 15, 20, 20, 1, 10, '18,18,18,18,15,20,35,30,25,18,18,18,30,18,18', NULL, NULL, 30, 5, NULL, NULL, 4652, 4651, 4653, NULL, 4652, 4652, NULL, NULL, NULL, 6, 44, 35, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4690, 'Hill Giant', 'A very large foe.', 35, 15, 20, 20, 1, 10, '18,18,18,18,15,20,35,30,25,18,18,18,30,18,18', NULL, NULL, 30, 5, NULL, NULL, 4652, 4651, 4653, NULL, 4652, 4652, NULL, NULL, NULL, 6, 44, 35, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4691, 'Hill Giant', 'A very large foe.', 35, 15, 20, 20, 1, 10, '18,18,18,18,15,20,35,30,25,18,18,18,30,18,18', NULL, NULL, 30, 5, NULL, NULL, 4652, 4651, 4653, NULL, 4652, 4652, NULL, NULL, NULL, 6, 44, 35, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4692, 'Hill Giant', 'A very large foe.', 35, 15, 20, 20, 1, 10, '18,18,18,18,15,20,35,30,25,18,18,18,30,18,18', NULL, NULL, 30, 5, NULL, NULL, 4652, 4651, 4653, NULL, 4652, 4652, NULL, NULL, NULL, 6, 44, 35, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4693, 'Hill Giant', 'A very large foe.', 35, 15, 20, 20, 1, 10, '18,18,18,18,15,20,35,30,25,18,18,18,30,18,18', NULL, NULL, 30, 5, NULL, NULL, 4652, 4651, 4653, NULL, 4652, 4652, NULL, NULL, NULL, 6, 44, 35, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4694, 'Lesser demon', 'Lesser, but still pretty big.', 79, 50, 50, 50, 1, 50, '15,15,15,15,15,15,15,15,15,3,15,15,23,15,15', NULL, NULL, 20, 6, NULL, NULL, 4630, 65, 67, NULL, 4630, 4630, NULL, NULL, NULL, 4, 56, 79, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '400,404,403', NULL, NULL, NULL), +(4695, 'Lesser demon', 'Lesser, but still pretty big.', 79, 50, 50, 50, 1, 50, '15,15,15,15,15,15,15,15,15,3,15,15,23,15,15', NULL, NULL, 20, 6, NULL, NULL, 4630, 65, 67, NULL, 4630, 4630, NULL, NULL, NULL, 4, 56, 79, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '400,404,403', NULL, NULL, NULL), +(4696, 'Lesser demon', 'Lesser, but still pretty big.', 79, 50, 50, 50, 1, 50, '15,15,15,15,15,15,15,15,15,3,15,15,23,15,15', NULL, NULL, 20, 6, NULL, NULL, 4630, 65, 67, NULL, 4630, 4630, NULL, NULL, NULL, 4, 56, 79, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '400,404,403', NULL, NULL, NULL), +(4697, 'Lesser demon', 'Lesser, but still pretty big.', 79, 50, 50, 50, 1, 50, '15,15,15,15,15,15,15,15,15,3,15,15,23,15,15', NULL, NULL, 20, 6, NULL, NULL, 4630, 65, 67, NULL, 4630, 4630, NULL, NULL, NULL, 4, 56, 79, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '400,404,403', NULL, NULL, NULL), +(4698, 'Greater demon', 'Big, red, and incredibly evil.', 87, 59, 59, 59, 59, 59, '30,20,20,30,20,50,50,50,10,50,20,0,0,0,0', NULL, NULL, 32, 5, NULL, NULL, 64, 65, 68, NULL, 64, 64, NULL, NULL, NULL, 4, 40, 87, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '400,404,403', NULL, NULL, NULL), +(4699, 'Greater demon', 'Big, red, and incredibly evil.', 87, 59, 59, 59, 59, 59, '30,20,20,30,20,50,50,50,10,50,20,0,0,0,0', NULL, NULL, 32, 5, NULL, NULL, 64, 65, 68, NULL, 64, 64, NULL, NULL, NULL, 4, 40, 87, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '400,404,403', NULL, NULL, NULL), +(4700, 'Greater demon', 'Big, red, and incredibly evil.', 87, 59, 59, 59, 59, 59, '30,20,20,30,20,50,50,50,10,50,20,0,0,0,0', NULL, NULL, 32, 5, NULL, NULL, 64, 65, 68, NULL, 64, 64, NULL, NULL, NULL, 4, 40, 87, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '400,404,403', NULL, NULL, NULL), +(4701, 'Greater demon', 'Big, red, and incredibly evil.', 87, 59, 59, 59, 59, 59, '30,20,20,30,20,50,50,50,10,50,20,0,0,0,0', NULL, NULL, 32, 5, NULL, NULL, 64, 65, 68, NULL, 64, 64, NULL, NULL, NULL, 4, 40, 87, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '400,404,403', NULL, NULL, NULL), +(4702, 'Black demon', 'A big, scary, jet-black demon.', 165, 70, 70, 70, 70, 70, '45,40,40,150,150,80,150,20,150,68,0,0,0,0,0', NULL, NULL, 38, NULL, NULL, NULL, 64, 65, 67, NULL, 64, 64, NULL, NULL, NULL, 4, 8, 157, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '400,404,403', NULL, NULL, NULL), +(4703, 'Black demon', 'A big, scary, jet-black demon.', 165, 70, 70, 70, 70, 70, '45,40,40,150,150,80,150,20,150,68,0,0,0,0,0', NULL, NULL, 38, NULL, NULL, NULL, 64, 65, 67, NULL, 64, 64, NULL, NULL, NULL, 4, 8, 157, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '400,404,403', NULL, NULL, NULL), +(4704, 'Black demon', 'A big, scary, jet-black demon.', 165, 70, 70, 70, 70, 70, '45,40,40,150,150,80,150,20,150,68,0,0,0,0,0', NULL, NULL, 38, NULL, NULL, NULL, 64, 65, 67, NULL, 64, 64, NULL, NULL, NULL, 4, 8, 157, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '400,404,403', NULL, NULL, NULL), +(4705, 'Black demon', 'A big, scary, jet-black demon.', 165, 70, 70, 70, 70, 70, '45,40,40,150,150,80,150,20,150,68,0,0,0,0,0', NULL, NULL, 38, NULL, NULL, NULL, 64, 65, 67, NULL, 64, 64, NULL, NULL, NULL, 4, 8, 157, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '400,404,403', NULL, NULL, NULL), +(4706, 'Moss giant', 'His beard seems to have a life of its own.', 60, 37, 37, 20, 37, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4666, 4665, 4668, NULL, 4666, 4666, NULL, NULL, NULL, 1, 62, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '449,451,450', NULL, NULL, NULL), +(4707, 'Magic Tutor', 'Mikasi', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4708, 'Old Man Ral', 'A flea-infested', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4716, 'Trader Sven', 'A flea-infested black market trader.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4717, 'Meiyerditch citizen', 'A flea-infested', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4718, 'Meiyerditch citizen', 'A flea-infested', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4719, 'Meiyerditch citizen', 'This citizen looks pale', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4720, 'Meiyerditch citizen', 'This citizen looks pale', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4721, 'Meiyerditch citizen', 'This citizen looks pale', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4722, 'Meiyerditch citizen', 'This citizen looks pale', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4723, 'Meiyerditch citizen', 'This citizen looks pale', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4724, 'Meiyerditch citizen', 'This citizen looks pale', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4725, 'Meiyerditch citizen', 'This citizen looks pale', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4726, 'Meiyerditch citizen', 'This citizen looks pale', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4733, 'Meiyerditch citizen', 'Cowardly mage.', 28, 1, 1, 60, 1, 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4734, 'Meiyerditch citizen', 'This citizen looks pale', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4735, 'Meiyerditch citizen', 'This citizen looks pale', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4736, 'Meiyerditch citizen', 'This citizen looks pale', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4737, 'Meiyerditch citizen', 'This citizen looks pale', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4738, 'Meiyerditch citizen', 'This citizen looks pale', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4739, 'Meiyerditch citizen', 'This citizen looks pale', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4740, 'Meiyerditch citizen', 'This citizen looks pale', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4741, 'Meiyerditch citizen', 'This citizen looks pale', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4746, 'A Meiyerditch child', 'A poor street urchin!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4747, 'A Meiyerditch child', 'A poor street urchin!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4748, 'A Meiyerditch child', 'A poor street urchin!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4749, 'A Meiyerditch child', 'A poor street urchin!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4750, 'A Meiyerditch child', 'A poor street urchin!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4751, 'A Meiyerditch child', 'A poor street urchin!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4752, 'A Meiyerditch child', 'A poor street urchin!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4753, 'A Meiyerditch child', 'A poor street urchin!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4754, 'A Meiyerditch child', 'A poor street urchin!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4755, 'A Meiyerditch child', 'A poor street urchin!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4756, 'Meiyerditch miner', 'This citizen looks dirty and tired!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4757, 'Meiyerditch miner', 'This citizen looks dirty and tired!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4759, 'Meiyerditch miner', 'This citizen looks dirty and tired!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4765, 'null', 'Some rubbish.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4766, 'Stray dog', 'Looks like it\'s got fleas!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4768, 'Cat', 'A smelly cat.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4772, 'Juvinate guard', 'An initiate juvenile vampyre; a guard for the mining area.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4773, 'Juvinate guard', 'An initiate juvenile vampyre; a guard for the mining area.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4774, 'Vampyre juvenile', 'A juvenile vampyre.', 57, 40, 40, 40, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6276, 0, 6781, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4775, 'Vampyre juvenile', 'A juvenile vampyre.', 57, 40, 40, 40, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6276, 0, 6781, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4776, 'Vampyre juvinate', 'An initiate juvenile vampyre; seems to be a servant.', 62, 1, 1, 44, 44, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5783, 0, 5798, NULL, 0, 0, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4777, 'Vampyre juvinate', 'An initiate juvenile vampyre.', 62, 1, 1, 44, 44, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5783, 0, 5798, NULL, 0, 0, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4778, 'Held vampyre juvenile', 'A juvenile vampyre.', 57, 40, 40, 40, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 6781, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4779, 'Held vampyre juvenile', 'A juvenile vampyre.', 57, 40, 40, 40, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 6781, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4780, 'Held vampyre juvinate', 'An initiate juvenile vampyre; seems to be a servant.', 62, 1, 1, 44, 44, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 5798, NULL, 0, 0, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4789, 'Angry vampyre', 'An enraged vampyre!', 60, 42, 42, 42, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6016, 0, 6031, NULL, 0, 0, NULL, NULL, NULL, 7, 86, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4793, 'Vanstrom Klause', NULL, 155, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4796, 'Vanstrom Klause', 'Not as strong as Thok.', 28, 90, 90, 60, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4805, 'Vyrewatch', 'An evil', 71, 1, 1, 50, 1, 50, NULL, NULL, NULL, 60, 6, NULL, NULL, 7435, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4806, 'Vyrewatch', 'An evil', 74, 1, 1, 52, 1, 52, NULL, NULL, NULL, 60, 6, NULL, NULL, 7435, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4807, 'Vyrewatch', 'An evil', 77, 1, 1, 54, 1, 54, NULL, NULL, NULL, 60, 6, NULL, NULL, 7435, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4808, 'Vyrewatch', 'An evil', 80, 1, 1, 56, 1, 56, NULL, NULL, NULL, 60, 6, NULL, NULL, 7435, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4810, 'Flying female vampire', 'A very high-ranking vampyre.', 100, 1, 1, 70, 1, 70, NULL, NULL, NULL, 60, 5, NULL, NULL, 7435, 0, 7524, NULL, 0, 0, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4811, 'Flying female vampire', 'A very high-ranking vampyre.', 100, 1, 1, 70, 1, 70, NULL, NULL, NULL, 60, 5, NULL, NULL, 7435, 0, 7524, NULL, 0, 0, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4812, 'Flying female vampire', 'A very high-ranking vampyre.', 100, 1, 1, 70, 1, 70, NULL, NULL, NULL, 60, 5, NULL, NULL, 7435, 0, 7524, NULL, 0, 0, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4813, 'Vyrewatch', 'A thirsty-looking', 71, 1, 1, 50, 1, 50, NULL, NULL, NULL, 60, 6, NULL, NULL, 6783, 0, 6861, NULL, 0, 0, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4814, 'Vyrewatch', 'A thirsty-looking', 74, 1, 1, 52, 1, 52, NULL, NULL, NULL, 60, 6, NULL, NULL, 6783, 0, 6861, NULL, 0, 0, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4815, 'Vyrewatch', 'A thirsty-looking', 77, 1, 1, 54, 1, 54, NULL, NULL, NULL, 60, 6, NULL, NULL, 6783, 0, 6861, NULL, 0, 0, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4816, 'Vyrewatch', 'A thirsty-looking', 80, 1, 1, 56, 1, 56, NULL, NULL, NULL, 60, 6, NULL, NULL, 6783, 0, 6861, NULL, 0, 0, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4817, 'Vyrewatch', 'An evil', 71, 1, 1, 50, 1, 50, NULL, NULL, NULL, 60, 6, NULL, NULL, 7435, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4818, 'Vyrewatch', 'An evil', 74, 1, 1, 52, 1, 52, NULL, NULL, NULL, 60, 6, NULL, NULL, 7435, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4819, 'Vyrewatch', 'An evil', 77, 1, 1, 54, 1, 54, NULL, NULL, NULL, 60, 6, NULL, NULL, 7435, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4820, 'Vyrewatch', 'An evil', 80, 1, 1, 56, 1, 56, NULL, NULL, NULL, 60, 6, NULL, NULL, 7435, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4821, 'Vyrewatch', 'A very high-ranking vampyre.', 100, 1, 1, 70, 1, 70, NULL, NULL, NULL, 60, 5, NULL, NULL, 7435, 0, 7524, NULL, 0, 0, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4822, 'Vyrewatch', 'A very high-ranking vampyre.', 100, 1, 1, 70, 1, 70, NULL, NULL, NULL, 60, 5, NULL, NULL, 7435, 0, 7524, NULL, 0, 0, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4823, 'Vyrewatch', 'A very high-ranking vampyre.', 100, 1, 1, 70, 1, 70, NULL, NULL, NULL, 60, 5, NULL, NULL, 7435, 0, 7524, NULL, 0, 0, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4824, 'Vyrewatch', 'A very high-ranking vampyre.', 100, 1, 1, 70, 1, 70, NULL, NULL, NULL, 60, 5, NULL, NULL, 7435, 0, 7524, NULL, 0, 0, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4825, 'Vyrewatch', 'A thirsty-looking', 71, 1, 1, 50, 1, 50, NULL, NULL, NULL, 60, 6, NULL, NULL, 6783, 0, 6861, NULL, 0, 0, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4826, 'Vyrewatch', 'A thirsty-looking', 74, 1, 1, 52, 1, 52, NULL, NULL, NULL, 60, 6, NULL, NULL, 6783, 0, 6861, NULL, 0, 0, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4827, 'Vyrewatch', 'A thirsty-looking', 77, 1, 1, 54, 1, 54, NULL, NULL, NULL, 60, 6, NULL, NULL, 6783, 0, 6861, NULL, 0, 0, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4828, 'Vyrewatch', 'A thirsty-looking', 80, 1, 1, 56, 1, 56, NULL, NULL, NULL, 60, 6, NULL, NULL, 6783, 0, 6861, NULL, 0, 0, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4829, 'Vyrewatch', NULL, 95, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4830, 'Vyrewatch', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4831, 'Vyrewatch', NULL, 120, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4832, 'Vyrewatch', NULL, 130, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4833, 'Vyrewatch', NULL, 95, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4834, 'Vyrewatch', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4835, 'Vyrewatch', NULL, 120, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4836, 'Vyrewatch', NULL, 130, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4837, 'Vyrewatch', NULL, 95, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4838, 'Vyrewatch', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4839, 'Vyrewatch', NULL, 120, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4840, 'Vyrewatch', NULL, 130, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4841, 'Vyrewatch', NULL, 95, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4842, 'Vyrewatch', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4843, 'Vyrewatch', NULL, 120, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4844, 'Vyrewatch', NULL, 130, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4845, 'Flying female vampire', 'A very high-ranking vampyre.', 100, 1, 1, 70, 1, 70, NULL, NULL, NULL, 60, 5, NULL, NULL, 7435, 0, 7524, NULL, 0, 0, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4847, 'Flying female vampire', NULL, 95, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4848, 'Flying female vampire', NULL, 95, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4849, 'Vyrewatch', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4850, 'Vyrewatch', NULL, 95, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4851, 'Vyrewatch', NULL, 95, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4852, 'Vyrewatch', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4868, 'Holgart', 'Her knives tickle Thok.', 28, 1, 1, 60, 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4870, 'Fisherman', 'Not Thok\'s pretty lass.', 28, 1, 1, 60, 1, 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4890, 'Slug Prince', 'A child of aquatic evil.', 105, 37, 37, 37, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 4829, 0, 4830, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4893, 'Giant Lobster', 'An extremely vicious lobster.', 82, 29, 29, 29, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6265, 0, 6267, NULL, 0, 0, NULL, NULL, NULL, 9, 71, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4894, 'Sea slug', 'A rather nasty looking crustacean.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4898, 'Hobgoblin', NULL, 29, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 164, 163, 167, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(4909, 'Fritz the Glassblower', 'His motives are see-through.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4910, 'Earth elemental', NULL, 35, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 7, NULL, NULL, 4868, 4869, 4870, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4911, 'Elemental rock', 'An elemental rock.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4920, 'Giant crypt rat', 'Overgrown vermin.', 26, 21, 20, 23, 1, NULL, '19,15,15,34,36,38,33,31,30,14,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, 67, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(4921, 'Giant crypt rat', 'A nasty overgrown rodent.', 78, 55, 55, 55, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 9, 67, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(4922, 'Giant rat', 'Overgrown vermin.', 7, 5, 5, 5, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 4933, 4934, 4935, NULL, 0, 0, NULL, NULL, NULL, 8, 67, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(4923, 'Giant rat', 'Overgrown vermin.', 7, 5, 5, 5, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 4933, 4934, 4935, NULL, 0, 0, NULL, NULL, NULL, 8, 67, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(4924, 'Giant rat', 'Overgrown vermin.', 7, 5, 5, 5, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 4933, 4934, 4935, NULL, 0, 0, NULL, NULL, NULL, 8, 67, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(4925, 'Giant rat', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4933, 4934, 4935, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(4926, 'Giant rat', 'Overgrown vermin.', 10, 7, 7, 7, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 4933, 4934, 4935, NULL, 0, 0, NULL, NULL, NULL, 8, 67, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(4927, 'Giant rat', 'Overgrown vermin.', 10, 7, 7, 7, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 4933, 4934, 4935, NULL, 0, 0, NULL, NULL, NULL, 8, 67, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(4928, 'Dungeon rat', 'Overgrown vermin.', 18, 13, 13, 13, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 0, 4934, 4935, NULL, 0, 0, NULL, NULL, NULL, 8, 67, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(4929, 'Dungeon rat', 'Overgrown vermin.', 18, 13, 13, 13, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 0, 4934, 4935, NULL, 0, 0, NULL, NULL, NULL, 8, 67, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(4930, 'Goat', 'They\'ll eat anything!', 7, 5, 5, 5, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5341, 0, 5343, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4931, 'Goat', 'They\'ll eat anything!', 7, 5, 5, 5, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5341, 0, 5343, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4932, 'Billy Goat', 'They\'ll eat anything!', 15, 11, 11, 11, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5341, 0, 5343, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4933, 'Goat', NULL, 21, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5341, 5342, 5343, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4934, 'Goat', NULL, 21, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5341, 5342, 5343, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4935, 'Billy Goat', NULL, 28, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5341, 5342, 5343, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4936, 'Dungeon rat', 'A dirty rat.', 11, 8, 8, 8, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 4933, 0, 4935, NULL, 0, 0, NULL, NULL, NULL, 9, 67, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(4937, 'Dungeon rat', 'A dirty rat.', 11, 8, 8, 8, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 4933, 0, 4935, NULL, 0, 0, NULL, NULL, NULL, 9, 67, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(4938, 'Angry giant rat', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(4939, 'Angry giant rat', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(4940, 'Angry giant rat', 'He looks a little on the cross side!', 35, 25, 25, 25, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4933, 0, 4935, NULL, 0, 0, NULL, NULL, NULL, 9, 67, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(4941, 'Blessed giant rat', 'It\'s one of Iban\'s pet vermin.', 17, 12, 12, 12, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 9, 67, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(4942, 'Giant rat', NULL, 5, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 4933, 4934, 4935, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(4943, 'Giant rat', NULL, 5, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 4933, 4934, 4935, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(4944, 'Giant rat', 'Overgrown vermin.', 26, 21, 20, 23, 1, NULL, '19,15,15,34,36,38,33,31,30,14,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(4945, 'Giant rat', 'Overgrown vermin.', 26, 21, 20, 23, 1, NULL, '19,15,15,34,36,38,33,31,30,14,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9, 67, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(4947, 'My Arm', 'Trollish.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, 83, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4962, 'Captain Barnaby', 'An old sailor.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4965, 'Tool Leprechaun', 'It\'s a leprechaun sunbathing on a mountain.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4971, 'Baby Roc', 'A mountain-dwelling bird. Cute', 100, 40, 40, 40, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5031, 0, 5033, NULL, 0, 0, NULL, NULL, NULL, 7, 7, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4972, 'Giant Roc', 'A very', 285, 55, 55, 55, 55, 55, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5024, 0, 5027, NULL, 0, 5025, NULL, NULL, NULL, 10, 7, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES +(4975, 'Male slave', 'It looks like he\'s been here a long time.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4977, 'Female slave', 'She looks like she\'s been down here a long time.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4989, 'Mercenary', 'He looks a bit aggressive.', 35, 25, 25, 25, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4990, 'Mercenary', 'He looks a bit aggressive.', 35, 25, 25, 25, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4991, 'Mercenary', 'He looks a bit aggressive.', 35, 25, 25, 25, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4992, 'Mercenary', 'He looks a bit aggressive.', 35, 25, 25, 25, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(4993, 'Guard', 'He looks a bit aggressive.', 35, 25, 25, 25, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(4994, 'Guard', 'He looks a bit aggressive.', 35, 25, 25, 25, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(4995, 'Guard', 'He looks a bit aggressive.', 35, 25, 25, 25, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(4996, 'Guard', 'He looks a bit aggressive.', 35, 25, 25, 25, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(4997, 'Guard', 'He looks a bit aggressive.', 35, 25, 25, 25, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(4998, 'Guard', 'He looks a bit aggressive.', 35, 25, 25, 25, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(4999, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(5000, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(5001, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(5002, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(5026, 'Egg launcher', 'An apprentice.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5027, 'Egg launcher', 'A tired old wizard.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5028, 'Egg launcher', 'An egg launcher.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5029, 'Commander Connad', 'A slightly more approachable barbarian.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5030, 'Captain Cain', 'He looks pretty mean.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5031, 'Private Paldo', 'A stressed out barbarian private.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5032, 'Private Pendron', 'A barbarian private.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5033, 'Private Pierreb', 'A barbarian private.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5034, 'Private Paldon', 'A barbarian private.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5035, 'Major Attack', 'A barbarian army teacher.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5036, 'Major Collect', 'A barbarian army teacher.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5037, 'Major Defend', 'A barbarian army teacher.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5038, 'Major Heal', 'A barbarian army teacher.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5039, 'Sergeant Sambur', 'He\'s keeping a close eye on that nearby door.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5040, 'Penance Fighter', 'What on RuneScape is that?', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5041, 'Penance Ranger', 'Shooty-shooty.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5042, 'Penance Runner', 'He\'s making a run for it!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5043, 'Penance Healer', 'A nasty piece of work.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5048, 'Jeff', 'Not as strong as Thok.', 22, 80, 80, 40, 80, 80, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 401, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5067, 'Shark', 'Time to run away...', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5072, 'Tropical wagtail', 'It blends in very well with its surroundings.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5073, 'Crimson swift', 'This bird obviously doesn\'t believe in subtlety.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5074, 'Cerulean twitch', 'Best served ice cold.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5075, 'Golden warbler', 'Actually', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5076, 'Copper longtail', 'Nothing much to get in a flap about.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5079, 'Chinchompa', NULL, 1, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5080, 'Carnivorous chinchompa', 'It looks fluffy and cute; it\'s probably deadly.', 10, 2, 2, 2, 2, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 5183, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5081, 'Ferret', 'Wild.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5082, 'Black warlock', 'A black warlock. The air seems to distort wherever it passes.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5083, 'Snowy knight', 'It\'s a snowy knight butterfly.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5084, 'Sapphire glacialis', 'A sapphire glacialis. It doesn\'t look as pretentious as its name sounds.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5085, 'Ruby harvest', 'It\'s a ruby harvest butterfly.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5086, 'Prickly kebbit', 'Curls up into a ball to protect itself from attack.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5087, 'Sabre-toothed kebbit', 'Now that\'s a big overbite.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5088, 'Barb-tailed kebbit', 'It uses its tail to hunt and skewer fish.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5089, 'Wild kebbit', 'That\'s a mean looking set of claws.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5097, 'Gyr Falcon', 'Ha! Thok much stronger.', 22, 80, 80, 40, 80, 80, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 395, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5098, 'Spotted kebbit', 'It seems to be on a permanent sugar rush.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5099, 'Dark kebbit', 'Quieter than a ninja mouse with slippers on.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5100, 'Dashing kebbit', 'Now you see it; now you don\'t.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5103, 'Sabre-toothed kyatt', 'It\'s just like a big, white, furry, deadly can opener.', 10, 25, 25, 99, 1, NULL, NULL, NULL, NULL, 10, 5, NULL, NULL, 5228, 404, 5234, NULL, 5228, 5228, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5104, 'Spined larupia', 'If you tried to ride that, you\'d just impale yourself!', 10, 15, 15, 99, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 5228, 404, 5234, NULL, 5228, 5228, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5105, 'Horned graahk', 'Get in a graahk\'s way and you\'re going to know about it... however briefly.', 10, 25, 25, 99, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 5228, 404, 5234, NULL, 5228, 5228, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5106, 'null', 'It\'s just like a big, white, furry, deadly can opener.', 10, 20, 20, 40, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 5228, 404, 9055, NULL, 5228, 5228, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5112, 'Hunting expert', 'He must be good at hunting; even his hair blends in with the surroundings.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5113, 'Hunting expert', 'With all the furs', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5114, 'Orange salamander', 'Slightly slimy but kind of cute.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5115, 'Red salamander', 'Slightly slimy but certainly striking.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5116, 'Black salamander', 'Slightly slimy and somewhat menacing.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5117, 'Swamp lizard', 'Very slimy and generally disgusting.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5120, 'Eagle', 'A very large', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5130, 'Desert eagle', 'A very large', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5131, 'Jungle eagle', 'A very large', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5132, 'Polar eagle', 'A very large', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5133, 'Eagle', 'It seems to be protecting the nest.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5137, 'Kebbit', NULL, 40, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5304, 5305, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5140, 'Boulder', 'Now', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5144, 'Double agent', 'He\'s playing both sides!', 85, 75, 75, 75, 1, 75, NULL, NULL, NULL, 60, 5, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5145, 'Double agent', NULL, 120, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5146, 'Li\'l lamb', 'How cute!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5147, 'Lamb', 'The black sheep of the family.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5162, 'Sheep', 'White and shaggy.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5163, 'Sheep', 'White and shaggy.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5166, 'Mountain Goat', 'This goat belongs to the mountain camp people.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5167, 'Mountain Goat', 'This goat belongs to the mountain camp people.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5168, 'Ram', NULL, 4, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5338, 5337, 5336, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5169, 'Ram', NULL, 4, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5338, 5337, 5336, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5170, 'Ram', 'White and shaggy.', 2, 2, 2, 2, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5338, 5337, 5336, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5171, 'Mountain goat', 'This beast doesn\'t need climbing boots.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5172, 'Golden sheep', 'Freshly shorn.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5173, 'Golden sheep', 'Lovely thick wool.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5176, 'Ogre shaman', 'Seems intelligent... for an ogre.', 371, 65, 65, 65, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 7, 64, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5178, 'Blue dragon', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 108, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, '408,410,409', NULL, NULL, NULL), +(5181, 'Ogre shaman', 'Seems intelligent... for an ogre.', 371, 65, 65, 65, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 7, 64, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5184, 'Ogre shaman', 'Seems intelligent... for an ogre.', 371, 65, 65, 65, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 7, 64, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5187, 'Ogre shaman', 'Seems intelligent... for an ogre.', 371, 65, 65, 65, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 7, 64, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5188, 'Saff Waldon', 'It\'s Nial', 165, 58, 58, 58, 58, 58, NULL, NULL, NULL, 60, NULL, NULL, NULL, 8946, 0, 8948, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5190, 'Ogre shaman', NULL, 1, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5193, 'Ogre shaman', NULL, 1, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5195, 'Wizard', 'A wizard.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(5196, 'Wizard', 'A wizard.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(5197, 'Wizard', 'A wizard.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(5204, 'Alice\'s husband', 'She needs to work out before facing Thok.', 22, 80, 80, 40, 80, 80, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7041, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5211, 'Undead cow', 'Converts grass to beef.', 8, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 5849, 5850, 5851, NULL, 5849, 5849, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5229, 'Penance Ranger', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5395, 5396, 5937, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5237, 'Penance Ranger', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5395, 5396, 5937, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5247, 'Penance Queen', 'Run away! Run away!', 71, 260, 260, 132, 116, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5411, 0, 5412, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5248, 'Queen spawn', 'What\'s it looking at?', 450, 60, 60, 50, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5092, 0, 5093, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5249, 'Captain Errdo', 'He looks embarrassed', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5250, 'Scarab mage', 'Part scarab', 77, 40, 40, 54, 1, 54, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7615, 0, 7616, NULL, 0, 0, NULL, NULL, NULL, 3, 70, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5251, 'Locust rider', 'A mounted lancer.', 77, 54, 54, 54, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7584, 0, 7581, NULL, 0, 0, NULL, NULL, NULL, 7, 70, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5252, 'Locust rider', 'A mounted archer.', 77, 40, 40, 54, 54, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5451, 0, 7581, NULL, 0, 5451, NULL, NULL, NULL, 2, 70, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5253, 'Giant scarab', 'A huge scarab beast.', 571, 62, 62, 62, 62, 62, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5457, 0, 5456, NULL, 0, 0, NULL, NULL, NULL, 10, 70, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5254, 'Scarab mage', NULL, 50, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7615, 7617, 7616, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5258, 'Banker', 'He can look after my money.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5260, 'Banker', 'She can look after my money.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5270, 'Sophanem guard', 'A guard of Sophanem.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5274, 'Sophanem guard', 'A guard of Sophanem.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5277, 'Menaphite guard', 'A guard of Menaphos.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5285, 'Osman', 'Flings annoying splinters at Thok.', 22, 80, 80, 40, 80, 80, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 426, 0, 836, NULL, 0, 426, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5293, 'Zombie', NULL, 22, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5294, 'Zombie', NULL, 22, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5295, 'Zombie', NULL, 22, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5296, 'Zombie', NULL, 22, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5297, 'Zombie', NULL, 22, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5298, 'Zombie', NULL, 22, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5299, 'Zombie', NULL, 22, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5300, 'Zombie', NULL, 22, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5301, 'Zombie', NULL, 22, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5302, 'Zombie', NULL, 22, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5303, 'Zombie', NULL, 22, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5304, 'Zombie', NULL, 22, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5305, 'Zombie', 'Examine not added', 18, 11, 1, 10, 1, NULL, '6,15,15,15,15,15,15,6,6,15,15,15,15,15,15', NULL, NULL, 30, 5, NULL, NULL, 5568, 5567, 5569, NULL, 5568, 5568, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5306, 'Zombie', NULL, 22, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5307, 'Zombie', 'Examine not added', 18, 11, 1, 10, 1, NULL, '6,15,15,15,15,15,15,6,6,15,15,15,15,15,15', NULL, NULL, 30, 5, NULL, NULL, 5568, 5567, 5569, NULL, 5568, 5568, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5308, 'Zombie', NULL, 24, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5309, 'Zombie', 'Examine not added', 40, 15, 1, 16, 1, NULL, '10,15,16,16,15,16,16,10,10,16,15,15,15,15,15', NULL, NULL, 30, 5, NULL, NULL, 5571, 5574, 5575, NULL, 5571, 5571, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5310, 'Zombie', NULL, 24, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5311, 'Zombie', NULL, 24, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5312, 'Zombie', NULL, 24, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5313, 'Zombie', NULL, 24, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5314, 'Zombie', NULL, 30, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5315, 'Zombie', NULL, 30, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5316, 'Zombie', NULL, 30, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5317, 'Zombie', NULL, 30, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5318, 'Zombie', NULL, 30, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5319, 'Zombie', 'Examine not added', 40, 15, 1, 20, 1, NULL, '12,20,20,20,20,20,20,12,12,20,20,20,20,20,20', NULL, NULL, 30, 5, NULL, NULL, 5571, 5574, 5575, NULL, 5571, 5571, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5320, 'Zombie', 'Examine not added', 40, 18, 1, 20, 1, NULL, '12,20,20,20,20,20,20,12,12,20,20,20,20,20,20', NULL, NULL, 30, 5, NULL, NULL, 5571, 5574, 5575, NULL, 5571, 5571, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5321, 'Zombie', 'Examine not added', 40, 18, 1, 20, 1, NULL, '12,20,20,20,20,20,20,12,12,20,20,20,20,20,20', NULL, NULL, 30, 5, NULL, NULL, 5571, 5574, 5575, NULL, 5571, 5571, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5322, 'Zombie', 'Dead man walking.', 30, 20, 19, 23, 1, NULL, '21,19,20,42,44,34,41,38,40,21,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 5571, 5574, 5575, NULL, 5571, 5571, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5323, 'Zombie', NULL, 30, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5324, 'Zombie', NULL, 30, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5325, 'Zombie', NULL, 30, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5326, 'Zombie', NULL, 30, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5327, 'Zombie', NULL, 30, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5328, 'Zombie', NULL, 30, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5329, 'Zombie', NULL, 30, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5330, 'Zombie', NULL, 30, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5331, 'Zombie', NULL, 30, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5332, 'Skeleton', NULL, 22, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, 5513, 5491, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(5333, 'Skeleton', 'Could do with gaining a few pounds.', 15, 11, 11, 11, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, 0, 5491, NULL, 0, 0, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(5334, 'Skeleton', 'Could do with gaining a few pounds.', 15, 11, 11, 11, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, 0, 5491, NULL, 0, 0, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(5335, 'Skeleton', 'Could do with gaining a few pounds.', 24, 11, 11, 1, 1, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 5485, 5489, 5491, NULL, 5485, 5485, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(5336, 'Skeleton', 'Could do with gaining a few pounds.', 24, 11, 11, 1, 1, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 5485, 5489, 5491, NULL, 5485, 5485, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(5337, 'Skeleton', 'Could do with gaining a few pounds.', 17, 12, 12, 23, 1, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 5485, 5489, 5491, NULL, 5485, 5485, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(5338, 'Skeleton', 'Could do with gaining a few pounds.', 17, 12, 12, 23, 1, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 5485, 5489, 5491, NULL, 5485, 5485, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(5339, 'Skeleton', 'Could do with gaining a few pounds.', 17, 12, 12, 23, 1, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 5485, 5489, 5491, NULL, 5485, 5485, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(5340, 'Skeleton', 'Could do with gaining a few pounds.', 17, 12, 12, 23, 1, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 5485, 5489, 5491, NULL, 5485, 5485, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(5341, 'Skeleton', 'Could do with gaining a few pounds.', 60, 42, 42, 42, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5499, 0, 5503, NULL, 0, 0, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(5342, 'Ghost', 'Eeek! A ghost!', 25, 1, 1, 18, 1, 18, NULL, NULL, NULL, 60, 5, NULL, NULL, 5532, 0, 5534, NULL, 0, 0, NULL, NULL, NULL, 5, 36, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(5343, 'Ghost', NULL, 25, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5532, 5533, 5534, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(5344, 'Ghost', 'Eeek! A ghost!', 25, 1, 1, 18, 1, 18, NULL, NULL, NULL, 60, 5, NULL, NULL, 5532, 0, 5534, NULL, 0, 0, NULL, NULL, NULL, 5, 36, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(5345, 'Ghost', 'Eeek! A ghost!', 25, 1, 1, 18, 1, 18, NULL, NULL, NULL, 60, 5, NULL, NULL, 5532, 0, 5534, NULL, 0, 0, NULL, NULL, NULL, 5, 36, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(5346, 'Ghost', NULL, 25, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5532, 5533, 5534, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(5347, 'Ghost', 'Eeek! A ghost!', 25, 1, 1, 18, 1, 18, NULL, NULL, NULL, 60, 5, NULL, NULL, 5532, 0, 5534, NULL, 0, 0, NULL, NULL, NULL, 5, 36, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(5348, 'Ghost', 'Eeek! A ghost!', 25, 1, 1, 18, 1, 18, NULL, NULL, NULL, 60, 5, NULL, NULL, 5532, 0, 5534, NULL, 0, 0, NULL, NULL, NULL, 5, 36, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(5349, 'Ghost', NULL, 25, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5532, 5533, 5534, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(5350, 'Ghost', NULL, 25, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5532, 5533, 5534, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(5351, 'Ghost', NULL, 25, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5532, 5533, 5534, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(5352, 'Ghost', NULL, 25, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5532, 5533, 5534, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(5353, 'Undead one', 'A minion of Rashiliyia.', 45, 32, 32, 32, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5485, 0, 5491, NULL, 0, 0, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5354, 'Undead one', 'A minion of Rashiliyia.', 47, 33, 33, 33, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5487, 0, 5491, NULL, 0, 0, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5355, 'Undead one', 'The animated dead; one of Rashiliyia\'s minions.', 45, 32, 32, 32, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5568, 0, 5569, NULL, 0, 0, NULL, NULL, NULL, 8, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5356, 'Undead one', 'The animated dead; one of Rashiliyia\'s minions.', 45, 32, 32, 32, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5568, 0, 5569, NULL, 0, 0, NULL, NULL, NULL, 8, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5357, 'Undead one', 'The animated dead; one of Rashiliyia\'s minions.', 47, 33, 33, 33, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5571, 0, 5575, NULL, 0, 0, NULL, NULL, NULL, 8, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5358, 'Undead one', 'The animated dead; one of Rashiliyia\'s minions.', 47, 33, 33, 33, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5571, 0, 5575, NULL, 0, 0, NULL, NULL, NULL, 8, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5359, 'Giant skeleton', 'A giant skeleton.', 85, 60, 60, 60, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5499, 0, 5503, NULL, 0, 0, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5361, 'Waterfiend', 'A fiendish embodiment of water.', 128, 70, 167, 50, 167, 77, NULL, NULL, 1, NULL, 6, NULL, NULL, 1582, 1581, 1580, NULL, 1582, 1582, NULL, 16, NULL, 4, 90, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5362, 'Brutal green dragon', 'It appears to be intelligent and savage.', 175, 70, 167, 50, 167, 64, NULL, NULL, 1, NULL, 6, NULL, NULL, 91, 89, 92, NULL, 91, 91, NULL, NULL, NULL, 3, 41, NULL, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '408,410,409', NULL, NULL, NULL), +(5363, 'Mithril dragon', 'Experimenting with mithril gone bad!', 255, 80, 125, 100, 165, 120, '122,125,128,124,147,135,185,105,200,100,140,180,100,202,127', NULL, NULL, NULL, 6, NULL, NULL, 91, 89, 92, NULL, 91, 91, NULL, NULL, NULL, 8, 57, 273, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '408,410,409', NULL, NULL, NULL), +(5364, 'Confused barbarian', 'It appears to be intelligent and savage.', 175, 70, 167, 50, 167, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5365, 'Skeleton', 'Could do with gaining a few pounds.', 48, 34, 34, 34, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5485, 0, 5491, NULL, 0, 0, NULL, NULL, NULL, 7, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(5366, 'Skeleton', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, 5513, 5491, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(5367, 'Skeleton', NULL, 85, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, 5513, 5491, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(5368, 'Skeleton', NULL, 85, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, 5513, 5491, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(5369, 'Ghost', NULL, 36, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5532, 5533, 5534, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(5370, 'Ghost', NULL, 36, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5532, 5533, 5534, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(5371, 'Ghost', NULL, 36, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5532, 5533, 5534, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(5372, 'Ghost', 'Why does it attack with twigs? Swords and axes much better.', 36, 80, 80, 40, 80, 80, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5532, 5533, 5534, NULL, 0, 426, NULL, NULL, NULL, 10, NULL, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(5373, 'Ghost', 'Are these twigs meant to hurt Thok?', 36, 80, 80, 40, 80, 80, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5532, 5533, 5534, NULL, 0, 426, NULL, NULL, NULL, 10, NULL, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(5374, 'Ghost', 'It thinks it scary. Thok show it scary.', 36, 80, 80, 70, 80, 80, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5532, 5533, 5534, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(5375, 'Zombie', 'Examine not added', 23, 25, 1, 25, 1, NULL, '15,25,25,25,25,25,25,15,15,25,25,25,25,25,25', NULL, NULL, 30, 5, NULL, NULL, 5568, 5567, 5569, NULL, 5568, 5568, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5376, 'Zombie', 'Examine not added', 23, 25, 1, 25, 1, NULL, '15,25,25,25,25,25,25,15,15,25,25,25,25,25,25', NULL, NULL, 30, 5, NULL, NULL, 5568, 5567, 5569, NULL, 5568, 5568, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5377, 'Zombie', 'Examine not added', 30, 38, 1, 28, 1, NULL, '15,25,28,28,25,28,28,15,15,28,25,25,25,25,25', NULL, NULL, 30, 5, NULL, NULL, 5578, 5579, 5580, NULL, 5578, 5578, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL); +INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES +(5378, 'Zombie', 'Examine not added', 30, 38, 1, 28, 1, NULL, '15,25,28,28,25,28,28,15,15,28,25,25,25,25,25', NULL, NULL, 30, 5, NULL, NULL, 5578, 5579, 5580, NULL, 5578, 5578, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5379, 'Zombie', 'Examine not added', 40, 47, 1, 48, 1, NULL, '35,45,45,45,45,45,45,35,35,45,45,45,45,45,45', NULL, NULL, 30, 5, NULL, NULL, 5578, 5579, 5580, NULL, 5578, 5578, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5380, 'Zombie', 'Examine not added', 40, 47, 1, 48, 1, NULL, '35,45,45,45,45,45,45,35,35,45,45,45,45,45,45', NULL, NULL, 30, 5, NULL, NULL, 5578, 5579, 5580, NULL, 5578, 5578, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5381, 'Skeleton', 'Could do with gaining a few pounds.', 88, 62, 62, 62, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5485, 0, 5491, NULL, 0, 0, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(5382, 'Animated steel armour', 'Animated steel armour.', 40, 28, 28, 28, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 386, 0, 4167, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5384, 'Giant skeleton', 'Big and bony, just how I like them.', 100, 95, 95, 85, 1, NULL, '25,25,25,25,25,25,25,25,25,25,25,25,25,25,25', NULL, 1, NULL, 2, NULL, NULL, 5499, 5489, 5503, NULL, 5499, 5499, 2713, 2718, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5385, 'Skeleton', 'A skeleton in a dress!', 81, 1, 1, 57, 1, 57, NULL, NULL, NULL, 60, 5, NULL, NULL, 5487, 0, 5491, NULL, 0, 0, NULL, NULL, NULL, 5, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(5386, 'Skeleton', 'Achingly thin.', 78, 55, 55, 55, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5487, 0, 5491, NULL, 0, 0, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(5387, 'Skeleton', 'Look: another skeleton.', 78, 55, 55, 55, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5485, 0, 5491, NULL, 0, 0, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(5388, 'Skeleton', 'That skeleton\'s grinning at me.', 71, 50, 50, 50, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5487, 0, 5491, NULL, 0, 0, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(5389, 'Skeleton', 'He needs a tan.', 72, 51, 51, 51, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5487, 0, 5491, NULL, 0, 0, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(5390, 'Skeleton', 'How do you know if a skeleton\'s male or female?', 420, 36, 36, 30, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5485, 0, 5491, NULL, 0, 0, NULL, NULL, NULL, NULL, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(5391, 'Skeleton', 'He obviously hasn\'t realised he\'s dead.', 78, 55, 55, 55, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5485, 0, 5491, NULL, 0, 0, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(5392, 'Skeleton', 'Put some meat on those bones!', 74, 52, 52, 52, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5485, 0, 5491, NULL, 0, 0, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(5393, 'Zombie', NULL, 56, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5394, 'Zombie', NULL, 40, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5395, 'Zombie', NULL, 40, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5396, 'Zombie', NULL, 40, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5397, 'Zombie', NULL, 40, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5398, 'Zombie', NULL, 40, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5399, 'Zombie', NULL, 40, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5400, 'Zombie', NULL, 40, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5401, 'Zombie', NULL, 40, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5402, 'Zombie', NULL, 40, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5403, 'Zombie', NULL, 40, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5404, 'Zombie', NULL, 92, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5568, 5567, 5569, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5405, 'Zombie', NULL, 40, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5406, 'Zombie', NULL, 40, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5407, 'Zombie', NULL, 40, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5408, 'Zombie', NULL, 40, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5409, 'Zombie', NULL, 40, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5410, 'Zombie', NULL, 40, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(5411, 'Skeleton', 'An angry skeleton.', 78, 55, 55, 55, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5487, 0, 5491, NULL, 0, 0, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(5412, 'Skeleton', 'Cross bones.', 81, 57, 57, 57, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5485, 0, 5491, NULL, 0, 0, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(5413, 'Possessed pickaxe', 'How does it move of its own accord?', 78, 55, 55, 55, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5591, 0, 5592, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5414, 'Animated spade', 'How does it move of its own accord?', 74, 52, 52, 52, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5597, 0, 5596, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5417, 'Terror dog', 'A terrifying dog beast.', 134, 47, 47, 47, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5625, 0, 5628, NULL, 0, 0, NULL, NULL, NULL, 1, 82, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5418, 'Terror dog', NULL, 82, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5625, 5626, 5627, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5420, 'Tarn', NULL, 65, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 5617, 5618, 5619, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5421, 'Mutant tarn', 'I preferred him when he was human.', 325, 57, 57, 57, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 5617, 0, 5619, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5422, 'Skeleton', 'Could do with gaining a few pounds.', 90, 63, 63, 63, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5485, 0, 5491, NULL, 0, 0, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(5439, 'null', 'What restful music!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5442, 'KGP Agent', 'What restful music!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5447, 'Agility Instructor', 'Instructs agility.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5448, 'Army Commander', 'An army commander.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5452, 'Icelord', 'Sturdy cold being.', 42, 22, 22, 30, 30, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5724, 0, 5726, NULL, 0, 5725, NULL, NULL, NULL, 0, 48, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5453, 'Icelord', 'Sturdy cold being.', 42, 30, 30, 30, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5724, 0, 5726, NULL, 0, 0, NULL, NULL, NULL, 9, 48, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5454, 'Icelord', 'Sturdy cold being.', 42, 30, 30, 30, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5724, 0, 5726, NULL, 0, 0, NULL, NULL, NULL, 9, 48, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5455, 'Icelord', 'Sturdy cold being.', 42, 30, 30, 30, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5724, 0, 5726, NULL, 0, 0, NULL, NULL, NULL, 9, 48, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5472, 'Ice Troll King', 'An impressive-looking troll.', 185, 65, 65, 65, 65, 65, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5374, 0, 5209, NULL, 0, 0, NULL, NULL, NULL, 10, 83, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5473, 'Ice troll runt', 'An ice troll youngling.', 54, 38, 38, 38, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5474, 'Ice troll male', 'A male troll wielding a large club.', 70, 49, 49, 49, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5475, 'Ice troll female', 'An ice troll with a bag of rocks.', 70, 36, 36, 49, 49, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 0, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5476, 'Ice troll grunt', 'A large ice troll.', 70, 49, 49, 49, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 4332, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5478, 'King Gjuki Sorvott IV', 'An ill-tempered king.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5480, 'Thorkel Silkbeard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '498,500,499', NULL, NULL, NULL), +(5489, 'Guard', 'A guard on insult duty.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(5490, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(5491, 'Guard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(5492, 'Guard', 'One of King Sorvott\'s militia.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(5497, 'Miner', 'A miner at work.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5514, 'Honour guard', 'The Burgher\'s protectors.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5516, 'Honour guard', 'The Burgher\'s protectors.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5517, 'Honour guard', 'One of your militia.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5521, 'Ice troll runt', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5522, 'Ice troll male', NULL, 80, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5523, 'Ice troll female', NULL, 80, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5525, 'Ice troll runt', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5526, 'Ice troll male', NULL, 80, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5527, 'Ice troll female', NULL, 80, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5529, 'Yak', 'A hairy, smelly, grazing animal.', 50, 3, 7, 30, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 5782, 5783, 5784, NULL, 5782, 5782, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5531, 'Sorceress', 'Antisocial.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5532, 'Apprentice', 'Come', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5533, 'Autumn Elemental', 'An autumn elemental.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5539, 'Spring Elemental', 'A spring elemental.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5547, 'Summer Elemental', 'A summer elemental.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5553, 'Winter Elemental', 'A winter elemental.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5561, 'Osman', 'It dare attack Pretty Lass? Thok crush its puny skull!', 157, 95, 95, 50, 95, 95, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5571, 'Sin Seer', 'She\'s honest about the things you aren\'t.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5572, 'Ghost', 'A Shadow Realm guardian.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(5581, 'Homunculus', 'Is it male or female?', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5584, 'Cage', 'Strong', 85, 95, 95, 70, 95, 95, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5589, '\'Black-eye\'', 'Famous for his fights.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5590, '\'No fingers\'', 'Count them pinkies!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5591, '\'Gummy\'', 'He wishes he had teeth.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5593, 'Frogeel', 'Is it a frog', 70, 36, 36, 49, 49, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5842, 0, 5841, NULL, 0, 0, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5594, 'Spidine', NULL, 35, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 143, 144, 146, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5595, 'Swordchick', 'Definitely not a chicken or a swordfish.', 64, 45, 45, 45, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5387, 0, 5389, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5596, 'Jubster', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6800, 6802, 6801, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5597, 'Newtroost', 'Since when did newts have beaks?', 57, 40, 40, 40, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 2299, 0, 2301, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5603, 'Unicow', 'Half unicorn', 58, 30, 30, 41, 1, 41, NULL, NULL, NULL, 60, 5, NULL, NULL, 5849, 0, 5851, NULL, 0, 0, NULL, NULL, NULL, 4, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5608, 'Monk', 'Holier than thou.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(5609, 'Monk', 'Holier than thou.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(5610, 'Monk', 'Holier than thou.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(5611, 'Monk', 'Holier than thou.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(5614, 'Puffin', 'I\'d prefer it if it were a muffin...', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5619, 'Monk', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(5620, 'Monk', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(5621, 'Monk', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(5622, 'Monk', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(5627, 'Sorebones', 'Bedside manner is a little lacking', 50, 35, 35, 35, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5643, 0, 5658, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5628, 'Sorebones', 'I hope his hands don\'t shake.', 50, 35, 35, 35, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5643, 0, 5658, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5629, 'Zombie pirate', 'Aaaarg', 50, 35, 35, 35, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5647, 0, 5649, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5630, 'Zombie pirate', NULL, 52, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5647, 5648, 5649, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5631, 'Zombie pirate', 'Aaaarg', 50, 35, 35, 35, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5647, 0, 5649, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5632, 'Zombie pirate', NULL, 52, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5647, 5648, 5649, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5633, 'Zombie pirate', 'Aaaarg', 50, 35, 35, 35, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5647, 0, 5649, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5634, 'Zombie pirate', 'Aaaarg', 50, 35, 35, 35, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5647, 0, 5649, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5635, 'Zombie pirate', 'Aaaarg', 50, 35, 35, 35, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5647, 0, 5649, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5636, 'Zombie pirate', NULL, 52, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5647, 5648, 5649, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5637, 'Zombie pirate', 'Aaaarg', 50, 35, 35, 35, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5651, 0, 5654, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5638, 'Zombie pirate', 'Aaaarg', 50, 35, 35, 35, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5651, 0, 5654, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5639, 'Zombie pirate', 'Aaaarg', 50, 35, 35, 35, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5651, 0, 5654, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5640, 'Zombie pirate', 'Aaaarg', 50, 35, 35, 35, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5651, 0, 5654, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5641, 'Zombie pirate', 'Aaaarg', 50, 35, 35, 35, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5651, 0, 5654, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5642, 'Zombie pirate', 'Aaaarg', 50, 35, 35, 35, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5880, 0, 5654, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5643, 'Zombie pirate', 'Aaaarg', 50, 35, 35, 35, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5880, 0, 5654, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5644, 'Zombie pirate', 'Aaaarg', 50, 35, 35, 35, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5880, 0, 5654, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5645, 'Zombie pirate', 'Aaaarg', 50, 35, 35, 35, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5880, 0, 5654, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5646, 'Zombie pirate', 'Aaaarg', 50, 35, 35, 35, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5880, 0, 5654, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5647, 'Zombie pirate', 'Aaaarg', 50, 35, 35, 35, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5884, 0, 5886, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5648, 'Zombie pirate', 'Aaaarg', 50, 35, 35, 35, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5884, 0, 5886, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5649, 'Zombie pirate', NULL, 52, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5647, 5648, 5649, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5650, 'Zombie pirate', 'Aaaarg', 50, 35, 35, 35, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5884, 0, 5886, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5651, 'Zombie pirate', NULL, 52, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5647, 5648, 5649, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5652, 'Zombie pirate', 'Aaaarg', 50, 35, 35, 35, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5884, 0, 5886, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5653, 'Zombie pirate', NULL, 52, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5647, 5648, 5649, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5654, 'Zombie pirate', 'Aaaarg', 50, 35, 35, 35, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5884, 0, 5886, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5655, 'Zombie pirate', NULL, 52, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5647, 5648, 5649, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5656, 'Zombie pirate', 'Aaaarg', 50, 35, 35, 35, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5889, 0, 5891, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5657, 'Zombie pirate', NULL, 52, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5647, 5648, 5649, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5658, 'Zombie pirate', 'Aaaarg', 50, 35, 35, 35, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5889, 0, 5891, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5659, 'Zombie pirate', 'Aaaarg', 50, 35, 35, 35, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5889, 0, 5891, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5660, 'Zombie pirate', NULL, 52, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5647, 5648, 5649, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5661, 'Zombie pirate', 'Aaaarg', 50, 35, 35, 35, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5889, 0, 5891, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5662, 'Zombie pirate', NULL, 52, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5647, 5648, 5649, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5663, 'Zombie pirate', 'Aaaarg', 50, 35, 35, 35, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5889, 0, 5891, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5664, 'Zombie pirate', NULL, 52, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5647, 5648, 5649, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5665, 'Zombie pirate', 'Aaaarg', 50, 35, 35, 35, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5889, 0, 5891, NULL, 0, 0, NULL, NULL, NULL, 6, 93, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5666, 'Barrelchest', 'It\'s trying to mash you flat! Less examine', 285, 52, 52, 52, 52, 52, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5895, 0, 5898, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5680, 'Undead Lumberjack', 'He is one', 100, 73, 73, 10, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5970, 0, 5972, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5750, 'Cave bug', 'A big', 93, 1, 1, 9, 9, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 6079, 0, 6081, NULL, 0, 0, NULL, NULL, NULL, 2, 15, 93, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5751, 'Molanisk', 'A strange mole-like being.', 52, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6012, 6013, 6014, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 52, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(5752, 'Cave goblin', 'One of the many citizens of Dorgesh-Kaan.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5753, 'Cave goblin', 'One of the many citizens of Dorgesh-Kaan.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5754, 'Cave goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5755, 'Cave goblin', 'One of the many citizens of Dorgesh-Kaan.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5756, 'Cave goblin', 'One of the many citizens of Dorgesh-Kaan.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5757, 'Cave goblin', 'One of the many citizens of Dorgesh-Kaan.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5758, 'Cave goblin', 'One of the many citizens of Dorgesh-Kaan.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5759, 'Cave goblin', 'One of the many citizens of Dorgesh-Kaan.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5760, 'Cave goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5761, 'Cave goblin', 'One of the many citizens of Dorgesh-Kaan.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5762, 'Cave goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5763, 'Cave goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5764, 'Cave goblin', 'One of the many citizens of Dorgesh-Kaan.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5765, 'Cave goblin', 'One of the many citizens of Dorgesh-Kaan.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5766, 'Cave goblin', 'One of the many citizens of Dorgesh-Kaan.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5767, 'Cave goblin', 'One of the many citizens of Dorgesh-Kaan.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5768, 'Cave goblin', 'One of the many citizens of Dorgesh-Kaan.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5769, 'Cave goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5776, 'Banker', 'Looks after cave goblin money.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5777, 'Banker', 'Looks after cave goblin money.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5783, 'Cave goblin', 'One of the many citizens of Dorgesh-Kaan.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5784, 'Crate goblin', 'Taking a terribly important box from one place to another.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5785, 'Cave goblin', 'One of the many citizens of Dorgesh-Kaan.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5786, 'Goblin scribe', 'Good at shorthand.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5800, 'Guard', 'He keeps order in the city.', 60, 42, 42, 42, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6007, 0, 6003, NULL, 0, 0, NULL, NULL, NULL, 6, 38, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(5801, 'Guard', 'He keeps order in the city.', 60, 42, 42, 42, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6007, 0, 6003, NULL, 0, 0, NULL, NULL, NULL, 6, 38, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(5803, 'Young \'un', 'A goblin baby.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5805, 'Nipper', 'A goblin baby.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5807, 'Cave goblin child', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5808, 'Cave goblin child', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5809, 'Cave goblin child', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5810, 'Cave goblin child', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5811, 'Cave goblin child', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5812, 'Cave goblin child', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5813, 'Cave goblin child', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5814, 'Cave goblin child', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5815, 'Cave goblin child', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5816, 'Cave goblin child', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5817, 'Cave goblin child', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5818, 'Cave goblin child', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5819, 'Cave goblin child', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5820, 'Cave goblin child', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5821, 'Cave goblin child', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5822, 'Cave goblin child', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5823, 'Spit goblin', 'Don\'t spit', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5824, 'Goblin fish', 'A bug-eyed little goblin fish. How cute.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5827, 'Moths', 'Annoying little flappy things.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5829, 'Rabbit', NULL, 5, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6090, 6091, 6092, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5833, 'Rat Burgiss', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(5842, 'Outlaw', 'A mean looking outlaw. Don\'t get too close!', 32, 23, 23, 23, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5843, 'Outlaw', 'A mean looking outlaw. Don\'t get too close!', 32, 23, 23, 23, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5844, 'Outlaw', 'A mean looking outlaw. Don\'t get too close!', 32, 23, 23, 23, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5845, 'Outlaw', 'A mean looking outlaw. Don\'t get too close!', 32, 23, 23, 23, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5846, 'Outlaw', 'A mean looking outlaw. Don\'t get too close!', 32, 23, 23, 23, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5847, 'Outlaw', 'A mean looking outlaw. Don\'t get too close!', 32, 23, 23, 23, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5848, 'Outlaw', 'A mean looking outlaw. Don\'t get too close!', 32, 23, 23, 23, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5849, 'Outlaw', 'A mean looking outlaw. Don\'t get too close!', 32, 23, 23, 23, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5850, 'Outlaw', 'A mean looking outlaw. Don\'t get too close!', 32, 23, 23, 23, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES +(5851, 'Outlaw', 'A mean looking outlaw. Don\'t get too close!', 32, 23, 23, 23, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5852, 'Monkey', 'Weird eyeball thing. Reminds Thok of breakfast.', 85, 60, 60, 40, 60, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(5854, 'Bench', 'For sitting on.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5855, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(5856, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(5859, 'H.A.M. Archer', 'He looks pretty skilled with that bow.', 57, 15, 15, 20, 20, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 426, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(5860, 'H.A.M. Mage', 'He bristles with arcane power.', 57, 15, 15, 20, 1, 20, NULL, NULL, NULL, 60, NULL, NULL, NULL, 429, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(5861, 'Zanik', 'No match for Thok. Silly demon.', 71, 85, 85, 85, 85, 85, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5864, 'Builder', 'A worker on the train link.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5865, 'Builder', 'A worker on the train link.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5866, 'Builder', 'A worker on the train link.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5867, 'Builder', 'A worker on the train link.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5873, 'Cave goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5874, 'Cave goblin', 'A goblin with big', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, 38, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5875, 'Cave goblin', 'A goblin with big', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, 38, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5876, 'Cave goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5877, 'Cave goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5878, 'Cave goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5879, 'Ticket goblin', 'He sells tickets to Keldagrim.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, 38, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(5880, 'Dwarf', 'A dwarf from Keldagrim.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5881, 'Dwarf', 'A dwarf from Keldagrim.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5882, 'Dwarf', 'A dwarf from Keldagrim.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5883, 'Dwarf', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5884, 'Dwarf', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5885, 'Dwarf', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 16, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5886, 'Ticket dwarf', 'He sells tickets to Dorgesh-Kaan.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5902, 'The Inadequacy', 'Are you good enough to fight?', 100, 70, 70, 70, 70, 70, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6318, 0, 6322, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5903, 'The Everlasting', 'Can you endure long enough?', 191, 67, 67, 67, 67, 67, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6345, 0, 6347, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5904, 'The Untouchable', 'Can you bring yourself to hurt another?', 100, 65, 65, 75, 65, 65, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6329, 0, 6331, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5905, 'The Illusive', 'What if you don\'t know how to win?', 90, 63, 63, 63, 63, 63, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6342, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5906, 'A Doubt', 'You can\'t escape your inadequacy!', 78, 55, 55, 55, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6310, 0, 6315, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5908, 'Dying tree', 'Dead stone defending a dead throne room.', 142, 50, 50, 50, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5909, 'Barbarian', 'Don\'t let her arm-wrestle you for money.', 28, 20, 20, 20, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(5910, 'Cook', 'A greasy', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5911, 'Cook', 'He\'s suspiciously talented with a meat-cleaver.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5914, 'Iffie', 'This grizzled soldier is here to distribute Rated Clan Wars badges.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5916, 'Cleaner', 'Does what too many people aren\'t interested in doing.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5917, 'Stray dog', 'A mangy mutt.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5919, 'Guard', 'He tries to keep order around here. His bizarre uniform isn\'t helping.', 25, 18, 18, 18, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 6489, 0, 6490, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(5920, 'Guard', 'He tries to keep order around here. His bizarre uniform isn\'t helping.', 25, 18, 18, 18, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 6489, 0, 6490, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(5921, 'Trainee Guard', 'He\'s studying to be a guard.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5922, 'Captain', 'Trains the guards of the future.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5923, 'Man', 'One of RuneScape\'s many citizens.', 4, 3, 3, 3, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,513,512', NULL, NULL, NULL), +(5924, 'Woman', 'One of RuneScape\'s many citizens.', 4, 3, 3, 3, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '511,506,505', NULL, NULL, NULL), +(5926, 'Thief', 'Known for his light-fingered qualities.', 25, 9, 9, 9, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5927, 'Thief', 'Known for his light-fingered qualities.', 25, 9, 9, 9, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5928, 'Thief', 'Known for her light-fingered qualities.', 24, 9, 9, 8, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5929, 'Thief', 'Known for her light-fingered qualities.', 24, 9, 9, 8, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5930, 'Art Critic Jacques', 'Jacques Netis - a slightly pompous art expert.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5931, 'Historian Minas', 'Seth Minas - an aged expert in RuneScape history.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5938, 'Information clerk', 'A lady with lots of information about the Museum.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5944, 'Teacher and pupil', 'A teacher and one of his pupils.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5945, 'Schoolboy', 'Looks kind of familiar.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5947, 'Teacher and pupil', 'A teacher and one of her pupils.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5952, 'Workman', 'Looks hard at work.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5954, 'Workman', 'Could there be something exciting in his wheelbarrow?', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5956, 'Void Knight', 'A powerful knight of balance.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5958, 'Digsite workman', 'Wheelbarrow loader.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5959, 'Barge workman', 'Working hard.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5960, 'Barge workman', 'Working hard.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5961, 'Barge workman', 'Working hard.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5962, 'Barge workman', 'Working hard.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5963, 'Barge foreman', 'Working hard.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5966, 'Natural historian', 'An aged expert in natural history.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5971, 'Leech display', 'Bloodsuckers!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5972, 'Sea slugs display', 'Slugs of the sea variety.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5973, 'Snail display', 'A house on its back.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5974, 'Monkey display', 'A cheeky little monkey.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(5975, 'Lizard display', 'A scaly little fellow.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5976, 'Penguin display', 'Nice suit.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5977, 'Camel display', 'He\'s got the hump.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5978, 'Terrorbird display', 'Terrifying!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5979, 'Dragon display', 'Looks like a fire-breather.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '408,410,409', NULL, NULL, NULL), +(5980, 'Wyvern display', 'Needs a good square meal.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5981, 'Battle tortoise display', 'A huge beast.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5982, 'Mole display', 'Loves making molehills.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5986, 'Workman', 'It hides in stone', 34, 95, 95, 1, 95, 95, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5990, 'Rupert the Beard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '498,500,499', NULL, NULL, NULL), +(5992, 'Rupert the Beard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '498,500,499', NULL, NULL, NULL), +(5993, 'Experiment No.2', 'A very odd looking creature.', 131, 46, 46, 46, 46, 46, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6513, 0, 6512, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5994, 'Mouse', 'A huge mouse. It looks hungry...', 62, 44, 44, 44, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 6519, 0, 6521, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5996, 'Glod', NULL, 160, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6501, 6503, 6502, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(5999, 'Rupert the Beard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '498,500,499', NULL, NULL, NULL), +(6001, 'Rupert the Beard', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '498,500,499', NULL, NULL, NULL), +(6006, 'Werewolf', 'I wish the moon wasn\'t out!', 87, 76, 76, 76, 1, NULL, '20,20,20,20,20,20,20,20,20,20,20,20,20,20,20', NULL, NULL, 20, 5, NULL, NULL, 6536, 6538, 6537, NULL, 6536, 6536, NULL, NULL, NULL, 7, 91, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6007, 'Werewolf', 'I wish the moon wasn\'t out!', 87, 76, 76, 76, 1, NULL, '20,20,20,20,20,20,20,20,20,20,20,20,20,20,20', NULL, NULL, 20, 5, NULL, NULL, 6536, 6538, 6537, NULL, 6536, 6536, NULL, NULL, NULL, 7, 91, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6008, 'Werewolf', 'I wish the moon wasn\'t out!', 87, 76, 76, 76, 1, NULL, '20,20,20,20,20,20,20,20,20,20,20,20,20,20,20', NULL, NULL, 20, 5, NULL, NULL, 6536, 6538, 6537, NULL, 6536, 6536, NULL, NULL, NULL, 7, 91, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6009, 'Werewolf', 'I wish the moon wasn\'t out!', 87, 76, 76, 76, 1, NULL, '20,20,20,20,20,20,20,20,20,20,20,20,20,20,20', NULL, NULL, 20, 5, NULL, NULL, 6536, 6538, 6537, NULL, 6536, 6536, NULL, NULL, NULL, 7, 91, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6010, 'Werewolf', 'I wish the moon wasn\'t out!', 87, 76, 76, 76, 1, NULL, '20,20,20,20,20,20,20,20,20,20,20,20,20,20,20', NULL, NULL, 20, 5, NULL, NULL, 6536, 6538, 6537, NULL, 6536, 6536, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6011, 'Werewolf', 'I wish the moon wasn\'t out!', 87, 76, 76, 76, 1, NULL, '20,20,20,20,20,20,20,20,20,20,20,20,20,20,20', NULL, NULL, 20, 5, NULL, NULL, 6536, 6538, 6537, NULL, 6536, 6536, NULL, NULL, NULL, 7, 91, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6012, 'Werewolf', 'I wish the moon wasn\'t out!', 87, 76, 76, 76, 1, NULL, '20,20,20,20,20,20,20,20,20,20,20,20,20,20,20', NULL, NULL, 20, 5, NULL, NULL, 6536, 6538, 6537, NULL, 6536, 6536, NULL, NULL, NULL, 7, 91, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6013, 'Werewolf', 'I wish the moon wasn\'t out!', 87, 76, 76, 76, 1, NULL, '20,20,20,20,20,20,20,20,20,20,20,20,20,20,20', NULL, NULL, 20, 5, NULL, NULL, 6536, 6538, 6537, NULL, 6536, 6536, NULL, NULL, NULL, 7, 91, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6014, 'Werewolf', 'I wish the moon wasn\'t out!', 87, 76, 76, 76, 1, NULL, '20,20,20,20,20,20,20,20,20,20,20,20,20,20,20', NULL, NULL, 20, 5, NULL, NULL, 6536, 6538, 6537, NULL, 6536, 6536, NULL, NULL, NULL, 7, 91, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6015, 'Werewolf', 'Eek! A werewolf!', 64, 45, 45, 45, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 6536, 0, 6537, NULL, 0, 0, NULL, NULL, NULL, 7, 91, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6016, 'Werewolf', 'Eek! A werewolf!', 64, 45, 45, 45, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 6536, 0, 6537, NULL, 0, 0, NULL, NULL, NULL, 7, 91, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6017, 'Werewolf', 'Eek! A werewolf!', 64, 45, 45, 45, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 6536, 0, 6537, NULL, 0, 0, NULL, NULL, NULL, 7, 91, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6018, 'Werewolf', 'Eek! A werewolf!', 64, 45, 45, 45, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 6536, 0, 6537, NULL, 0, 0, NULL, NULL, NULL, 7, 91, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6019, 'Werewolf', NULL, 100, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 6536, 6538, 6537, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6020, 'Werewolf', 'Eek! A werewolf!', 64, 45, 45, 45, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 6536, 0, 6537, NULL, 0, 0, NULL, NULL, NULL, 7, 91, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6021, 'Werewolf', 'Eek! A werewolf!', 64, 45, 45, 45, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 6536, 0, 6537, NULL, 0, 0, NULL, NULL, NULL, 7, 91, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6022, 'Werewolf', NULL, 100, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 6536, 6538, 6537, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6023, 'Werewolf', NULL, 100, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 6536, 6538, 6537, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6024, 'Werewolf', NULL, 100, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 6536, 6538, 6537, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6025, 'Werewolf', NULL, 100, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 6536, 6538, 6537, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6026, 'Boris', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6027, 'Imre', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6028, 'Yuri', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6029, 'Joseph', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6030, 'Nikolai', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6031, 'Eduard', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6032, 'Lev', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6033, 'Georgy', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6034, 'Svetlana', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6035, 'Irina', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6036, 'Alexis', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6037, 'Milla', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6038, 'Galina', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6039, 'Sofiya', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6040, 'Ksenia', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6041, 'Yadviga', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6042, 'Nikita', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6043, 'Vera', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6044, 'Zoja', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6045, 'Liliya', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6046, 'Big Wolf', NULL, 74, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6559, 6557, 6558, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 74, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6047, 'Wolf', 'A vicious mountain wolf.', 69, 22, 1, 22, 1, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 6579, 6578, 6576, NULL, 6579, 6579, NULL, NULL, NULL, NULL, NULL, 34, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '481,491,490', NULL, NULL, NULL), +(6048, 'Wolf', 'Now it has no armour', 157, 95, 95, 1, 95, 95, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, 34, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '481,491,490', NULL, NULL, NULL), +(6049, 'Wolf', 'A big coward. Thok mocks scaredy man.', 100, 75, 75, 75, 75, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, NULL, NULL, NULL, NULL, 10, NULL, 34, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '481,491,490', NULL, NULL, NULL), +(6050, 'Desert Wolf', 'A vicious desert wolf.', 55, 20, 20, 5, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6579, 6578, 6558, NULL, 6579, 6579, NULL, NULL, NULL, 9, 92, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6051, 'Desert Wolf', 'A vicious desert wolf.', 55, 20, 20, 5, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 6579, 6578, 6558, NULL, 6579, 6579, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6052, 'Ice wolf', NULL, 70, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6559, 6557, 6558, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6054, 'Dragon impling', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '408,410,409', NULL, NULL, NULL), +(6064, 'Dragon impling', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '408,410,409', NULL, NULL, NULL), +(6072, 'Fairy Aeryka', 'She tends the wheat.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6073, 'Wandering impling', 'He looks a little lost.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6074, 'Imp defender', 'An angry little imp. Grrr.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6078, 'Cyclops', 'A one-eyed man eater.', 117, 41, 41, 41, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 4652, 0, 4653, NULL, 0, 0, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6079, 'Cyclops', 'A one-eyed woman eater.', 140, 49, 49, 49, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 4652, 0, 4653, NULL, 0, 0, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6080, 'Cyclops', 'A one-eyed man eater.', 117, 41, 41, 41, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 4652, 0, 4653, NULL, 0, 0, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6081, 'Cyclops', 'A one-eyed woman eater.', 140, 49, 49, 49, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 4652, 0, 4653, NULL, 0, 0, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6088, 'Zombie rat', 'Overgrown undead vermin.', 2, 2, 2, 2, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 4933, 0, 4935, NULL, 0, 0, NULL, NULL, NULL, 7, 67, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(6089, 'Zombie rat', 'Overgrown undead vermin.', 2, 2, 2, 2, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 4933, 0, 4935, NULL, 0, 0, NULL, NULL, NULL, 7, 67, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(6090, 'Zombie rat', 'Overgrown undead vermin.', 2, 2, 2, 2, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 4933, 0, 4935, NULL, 0, 0, NULL, NULL, NULL, 7, 67, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(6091, 'Skeleton', NULL, 22, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, 5513, 5491, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(6092, 'Skeleton', NULL, 22, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, 5513, 5491, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(6093, 'Skeleton', 'Could do with gaining a few pounds.', 12, 9, 9, 9, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5487, 0, 5491, NULL, 0, 0, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(6094, 'Ghost', NULL, 25, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5540, 5541, 5542, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(6095, 'Ghost', NULL, 25, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5532, 5533, 5534, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(6096, 'Ghost', NULL, 25, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5532, 5533, 5534, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(6097, 'Ghost', NULL, 25, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5532, 5533, 5534, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(6098, 'Ghost', NULL, 25, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5532, 5533, 5534, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(6099, 'Zombie', NULL, 30, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5571, 5574, 5575, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(6100, 'Zombie', NULL, 30, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5571, 5574, 5575, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(6101, 'Lesser demon', 'Lesser, but still pretty big.', 79, 50, 50, 50, 1, 40, '15,15,15,15,15,15,15,15,15,3,15,15,23,15,15', NULL, NULL, 20, 6, NULL, NULL, 4630, 65, 67, NULL, 4630, 4630, NULL, NULL, NULL, 3, 56, 79, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '400,404,403', NULL, NULL, NULL), +(6102, 'Lost barbarian', 'His face is expressionless.', 85, 60, 60, 60, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6103, 'Skeleton hero', 'An opponent from the grave. He seems unimpressed by your bone rummaging.', 75, 53, 53, 53, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 2067, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(6104, 'Skeleton brute', 'An ex-barbarian', 90, 63, 63, 63, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(6105, 'Skeleton warlord', 'He\'s heartless.', 92, 65, 65, 65, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 2067, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(6106, 'Skeleton heavy', 'He\'s less heavy now.', 91, 64, 64, 64, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(6107, 'Skeleton thug', 'Floats like an anvil', 87, 61, 61, 61, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(6108, 'Entrana firebird', 'Probably not a chicken.', 1, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6811, 0, 6812, NULL, 0, 0, NULL, NULL, NULL, 1, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6109, 'Mounted terrorbird gnome', 'These gnomes know how to get around!', 54, 38, 38, 38, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6790, 0, 6791, NULL, 0, 0, NULL, NULL, NULL, 8, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6110, 'Mounted terrorbird gnome', NULL, 55, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6790, 6792, 6791, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6111, 'Mounted terrorbird gnome', NULL, 55, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6790, 6792, 6791, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6112, 'Ducklings', 'Aww', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6113, 'Duck', NULL, 3, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 747, 3268, 750, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6115, 'Seagull', 'A messy bird.', 5, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 3467, 1014, 3468, NULL, 3467, 3467, NULL, NULL, NULL, 6, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6116, 'Seagull', 'A messy bird.', 5, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 3467, 1014, 3468, NULL, 3467, 3467, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6117, 'Mr. Mordaut', 'Do not upset this teacher. You have been warned!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6118, 'Observatory assistant', 'He helps the professor.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6122, 'Sleeping guard', 'Sleeping like an ugly baby.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6123, 'Naghead', 'An old goblin hag.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6124, 'Wagchin', 'A young goblin \'beauty\'.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6125, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6126, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6127, 'Greasycheeks', 'Big appetite for a small creature.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6128, 'Smellytoes', 'Likes drink a little too much.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6129, 'Creakyknees', 'Lean and green.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6131, 'Zombie', NULL, 40, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(6132, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6133, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6134, 'Dunce', 'This imp is clearly the class clown.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6135, 'Town crier', 'Get useful information from this guy.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6140, 'Squire (Intermediate)', 'A squire of balance.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6141, 'Squire (Veteran)', 'A squire of balance.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6142, 'Portal', 'Not somewhere I want to go...', 200, 1, 1, 50, 1, 50, '100,100,100,50,50,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 125, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6143, 'Portal', 'Not somewhere I want to go...', 200, 1, 1, 50, 1, 25, '100,100,100,100,25,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 125, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6144, 'Portal', 'Not somewhere I want to go...', 200, 1, 1, 50, 1, 50, '100,100,50,100,50,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 125, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6145, 'Portal', 'Not somewhere I want to go...', 200, 1, 1, 50, 1, 50, '50,50,100,100,50,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 125, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6146, 'Portal', 'The Void Knight will soon weaken the shield.', 200, 1, 1, 30, 1, 30, '100,100,100,50,50,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 125, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6147, 'Portal', 'The Void Knight will soon weaken the shield.', 200, 1, 1, 30, 1, 15, '100,100,100,100,25,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 125, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6148, 'Portal', 'The Void Knight will soon weaken the shield.', 200, 1, 1, 30, 1, 30, '100,100,50,100,50,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 125, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6149, 'Portal', 'The Void Knight will soon weaken the shield.', 200, 1, 1, 30, 1, 30, '50,50,100,100,50,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 125, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6150, 'Portal', 'Not somewhere I want to go...', 250, 1, 1, 70, 1, 70, '150,150,150,75,75,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 125, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6151, 'Portal', 'Not somewhere I want to go...', 250, 1, 1, 70, 1, 40, '150,150,150,150,37,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 125, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6152, 'Portal', 'Not somewhere I want to go...', 250, 1, 1, 70, 1, 70, '150,150,75,150,75,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 125, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6153, 'Portal', 'Not somewhere I want to go...', 250, 1, 1, 70, 1, 70, '75,75,150,150,75,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 125, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6154, 'Portal', 'The Void Knight will soon weaken the shield.', 250, 1, 1, 30, 1, 30, '100,100,100,50,50,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 125, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6155, 'Portal', 'The Void Knight will soon weaken the shield.', 250, 1, 1, 30, 1, 15, '100,100,100,100,25,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 125, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES +(6156, 'Portal', 'The Void Knight will soon weaken the shield.', 250, 1, 1, 30, 1, 30, '100,100,50,100,50,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 125, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6157, 'Portal', 'The Void Knight will soon weaken the shield.', 250, 1, 1, 30, 1, 30, '50,50,100,100,50,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 125, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6159, 'Workman', 'It is cold and solid. Thok will strap it to Marmaros\'s leg.', 114, 50, 50, 65, 50, 50, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6169, 'Squire', 'Squire to the Knights of the Round Table.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6170, 'Sir Lancelot', NULL, 118, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 400, 422, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6183, 'Guard', 'An officer of the law.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(6184, 'Guard', 'An officer of the law.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(6188, 'Renegade knight', 'He isn\'t very friendly.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6189, 'Black Knight', 'A dark-hearted knight.', 40, 28, 28, 28, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6190, 'Guard', 'Primping with combs and hair clips.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(6198, 'Sinclair', 'The name isn\'t just for show.', 85, 55, 55, 55, 55, 55, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6200, 'Banker', 'He can look after my money.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6201, 'Knight', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(6203, 'K\'ril Tsutsaroth', 'A servant of the god Zamorak. ', 255, 78, 78, 70, 75, 75, '210,210,210,205,190,200,200,200,235,235,220,210,220,200,0', NULL, 1, 120, 6, NULL, 64, 6945, 6944, 6946, NULL, 6945, 6945, NULL, NULL, NULL, 9, 40, 79, NULL, 1, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6204, 'Tstanon Karlak', 'Destroyer of 1000 planes!', 150, 75, 75, 90, 75, 75, '108,105,105,130,140,130,210,175,175,175,170,170,0,0,0', NULL, NULL, 50, 5, NULL, 64, 6945, 6944, 6946, NULL, 6945, 6945, NULL, NULL, NULL, 9, 40, 79, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6205, '', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(6206, 'Zakl\'n Gritch', 'Scourge of light.', 150, 1, 1, 90, 75, 75, '135,135,135,135,135,135,145,145,155,155,155,155,0,0,0', NULL, NULL, 50, 5, NULL, 64, 7033, 6945, 6946, NULL, 7033, 7033, 1208, 1209, NULL, 0, 56, 79, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6207, '', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(6208, 'Balfrug Kreeyath', 'Despoiler of Ullek.', 161, 1, 1, 90, 75, 75, '120,200,135,135,120,135,150,120,120,120,120,120,0,0,0', NULL, NULL, 50, 5, NULL, 64, 7033, 6944, 6946, NULL, 7033, 7033, 1212, 1213, NULL, NULL, NULL, 79, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6209, '', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(6210, 'Hellhound', 'From the maws of hell.', 116, 66, 66, 66, 1, NULL, '50,70,30,30,60,30,60,60,50,60,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 6579, 6578, 6576, NULL, 6579, 6579, NULL, NULL, NULL, 7, 43, 116, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '3717,3719,3718', NULL, NULL, NULL), +(6211, 'Imp', 'Have you checked your pockets lately?', 10, 4, 4, 4, 1, NULL, '10,5,5,10,10,10,10,10,10,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, 169, 170, 172, NULL, 169, 169, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '534,536,535', NULL, NULL, NULL), +(6212, 'Werewolf', 'He doesn\'t look pleased to see me.', 100, 64, 64, 64, 1, NULL, '50,40,45,60,70,70,70,40,40,50,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 6536, 6538, 6537, NULL, 6536, 6536, NULL, NULL, NULL, 7, 91, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6213, 'Werewolf', 'He doesn\'t look pleased to see me.', 100, 64, 64, 64, 1, NULL, '50,40,45,60,70,70,70,40,40,50,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 6536, 6538, 6537, NULL, 6536, 6536, NULL, NULL, NULL, 7, 91, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6214, 'Vampire', 'It looks really hungry!', 60, 44, 44, 44, 1, NULL, '30,35,30,40,50,50,50,25,30,30,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 810, 404, 9055, NULL, 810, 810, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6215, 'Bloodveld', 'The tongue of evil.', 134, 66, 66, 66, 1, NULL, '40,20,30,60,60,40,60,30,40,5,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 1552, 1550, 1553, NULL, 1552, 1552, NULL, NULL, NULL, NULL, NULL, 120, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6216, 'Pyrefiend', 'A small fire demon.', 48, 25, 25, 25, 1, NULL, '25,25,20,40,40,40,15,30,20,60,20,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 1582, 1581, 1580, NULL, 1582, 1582, NULL, NULL, NULL, 7, 66, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6217, 'Icefiend', 'A small ice demon.', 15, 5, 5, 5, 1, NULL, '5,5,5,5,10,10,10,10,10,10,5,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 8080, 8079, 8078, NULL, 8080, 8080, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(6218, 'Gorak', 'Those horns look pretty sharp...', 112, 70, 70, 70, 1, NULL, '30,30,50,70,40,70,70,50,60,55,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 4300, 4301, 4302, NULL, 4300, 4300, NULL, NULL, NULL, 9, 39, 112, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6219, 'Spiritual warrior', 'Warrior of Zamorak.', 102, 66, 66, 66, 1, NULL, '40,60,60,60,60,20,50,55,0,0,0,0,0,0,0', NULL, NULL, 25, 5, NULL, NULL, 390, 1156, 9055, NULL, 390, 390, NULL, NULL, NULL, 6, 79, NULL, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6220, 'Spiritual ranger', 'A ranger spirit dedicated to Zamorak.', 120, 1, 1, 70, 70, NULL, '50,70,50,50,50,70,50,85,85,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 426, 404, 9055, NULL, 426, 426, 18, 9, NULL, 1, 78, NULL, 1, NULL, 1, 96, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6221, 'Spiritual mage', 'A deadly servant of Zamorak.', 75, 1, 1, 70, 1, 70, '40,40,40,40,40,50,50,90,0,0,0,0,0,0,0', NULL, NULL, NULL, NULL, NULL, NULL, 811, 404, 9055, NULL, 811, 811, NULL, 78, 78, 3, 77, NULL, 2, NULL, 1, NULL, NULL, 0, 2, NULL, NULL, NULL, NULL, NULL), +(6222, 'Kree\'arra', 'Graceful avatar of Armadyl.', 255, 75, 75, 75, 75, 75, '100,100,100,98,235,155,355,355,425,275,325,490,130,475,95', NULL, 1, 120, 5, NULL, 64, 6977, 6974, 6975, NULL, 6977, 6977, NULL, NULL, NULL, 10, NULL, 0, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6223, 'Wingman Skree', 'Graceful, bird-like creature.', 121, 1, 1, 92, 1, 73, '35,180,180,180,160,80,120,130,0,0,0,0,0,0,0', NULL, 1, 50, 5, NULL, 64, 6952, 6955, 6956, NULL, 6952, 6952, NULL, 1199, NULL, 3, NULL, 0, 2, NULL, 1, NULL, 92, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6224, '', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(6225, 'Flockleader Geerin', 'Graceful, bird-like creature.', 132, 1, 1, 90, 73, NULL, '80,80,80,80,175,220,165,130,50,130,86,0,0,0,0', NULL, 1, 50, 5, NULL, 64, 6953, 6955, 6956, NULL, 6953, 6953, NULL, 1190, NULL, 4, NULL, 0, 1, NULL, 1, NULL, 92, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6226, '', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(6227, 'Flight Kilisa', 'Graceful, bird-like creature.', 162, 73, 73, 90, 70, NULL, '90,175,175,175,220,65,165,155,0,0,0,0,0,0,0', NULL, NULL, 50, 5, NULL, 64, 6954, 6955, 6956, NULL, 6954, 6954, NULL, NULL, NULL, 6, NULL, 0, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6228, '', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(6229, 'Spiritual warrior', 'A servant of Armadyl.', 98, 70, 70, 70, 68, NULL, '40,40,50,50,20,50,50,0,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 6954, 6955, 6956, NULL, 6954, 6954, NULL, NULL, NULL, 6, 79, NULL, 1, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6230, 'Spiritual ranger', 'Armadyl\'s favourite servant.', 89, 1, 1, 70, 70, NULL, '60,50,60,50,65,65,0,0,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 6953, 6955, 6956, NULL, 6953, 6953, NULL, 1190, NULL, 4, 78, NULL, 1, NULL, 1, NULL, 92, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6231, 'Spiritual mage', 'A mage who serves Armadyl above all else - even death.', 85, 1, 1, 70, 1, 70, '40,40,40,40,40,50,50,40,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 6952, 6955, 6956, NULL, 6952, 6952, NULL, 1199, NULL, 4, 77, NULL, 2, NULL, 1, NULL, 92, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6232, 'Aviansie', 'Graceful, bird-like creature.', 70, 1, 1, 40, 40, NULL, '60,50,60,50,65,65,0,0,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 6953, 6955, 6956, NULL, 6953, 6953, NULL, 1191, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, 92, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6233, 'Aviansie', 'Graceful, bird-like creature.', 83, 1, 1, 45, 45, NULL, '60,50,60,50,65,65,0,0,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 6953, 6955, 6956, NULL, 6953, 6953, NULL, 1190, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, 92, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6234, 'Aviansie', 'Graceful, bird-like creature.', 86, 1, 1, 50, 50, NULL, '60,50,60,50,65,65,0,0,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 6953, 6955, 6956, NULL, 6953, 6953, NULL, 1190, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, 92, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6235, 'Aviansie', 'Graceful, bird-like creature.', 86, 1, 1, 50, 50, NULL, '60,50,60,50,65,65,0,0,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 6953, 6955, 6956, NULL, 6953, 6953, NULL, 1190, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, 92, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6236, 'Aviansie', 'Graceful, bird-like creature.', 95, 1, 1, 55, 55, NULL, '60,50,60,50,65,65,0,0,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 6953, 6955, 6956, NULL, 6953, 6953, NULL, 1190, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, 92, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6237, 'Aviansie', 'Graceful, bird-like creature.', 98, 1, 1, 55, 55, NULL, '60,50,60,50,65,65,0,0,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 6953, 6955, 6956, NULL, 6953, 6953, NULL, 1191, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, 92, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6238, 'Aviansie', 'Graceful, bird-like creature.', 124, 1, 1, 65, 65, NULL, '60,50,60,50,65,65,0,0,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 6953, 6955, 6956, NULL, 6953, 6953, NULL, 1190, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, 92, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6239, 'Aviansie', 'Graceful, bird-like creature.', 139, 1, 1, 65, 65, NULL, '60,50,60,50,65,65,0,0,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 6953, 6955, 6956, NULL, 6953, 6953, NULL, 1191, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, 92, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6240, 'Aviansie', 'Graceful, bird-like creature.', 63, 1, 1, 40, 40, NULL, '60,50,60,50,65,65,0,0,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 6953, 6955, 6956, NULL, 6953, 6953, NULL, 1191, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, 92, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6241, 'Aviansie', 'Graceful, bird-like creature.', 65, 1, 1, 40, 40, NULL, '60,50,60,50,65,65,0,0,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 6953, 6955, 6956, NULL, 6953, 6953, NULL, 1190, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, 92, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6242, 'Aviansie', 'Graceful, bird-like creature.', 83, 1, 1, 40, 40, NULL, '60,50,60,50,65,65,0,0,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 6953, 6955, 6956, NULL, 6953, 6953, NULL, 1190, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, 92, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6243, 'Aviansie', 'Graceful, bird-like creature.', 69, 1, 1, 50, 50, NULL, '60,50,60,50,65,65,0,0,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 6953, 6955, 6956, NULL, 6953, 6953, NULL, 1190, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, 92, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6244, 'Aviansie', 'Graceful, bird-like creature.', 75, 1, 1, 55, 55, NULL, '60,50,60,50,65,65,0,0,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 6953, 6955, 6956, NULL, 6953, 6953, NULL, 1190, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, 92, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6245, 'Aviansie', 'Graceful, bird-like creature.', 98, 1, 1, 55, 55, NULL, '60,50,60,50,65,65,0,0,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 6953, 6955, 6956, NULL, 6953, 6953, NULL, 1190, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, 92, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6246, 'Aviansie', 'Graceful, bird-like creature.', 73, 1, 1, 65, 65, NULL, '60,50,60,50,65,65,0,0,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 6953, 6955, 6956, NULL, 6953, 6953, NULL, 1191, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, 92, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6247, 'Commander Zilyana', 'Commander of Saradomin\'s forces. ', 256, 80, 80, 125, 80, 76, '120,120,120,200,255,240,240,180,225,80,150,120,170,0,0', NULL, 1, 120, 2, NULL, 64, 6964, 6966, 6965, NULL, 6964, 6964, NULL, NULL, NULL, 7, NULL, 0, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6248, 'Starlight', 'The bane of darkness.', 160, 80, 78, 90, 1, NULL, '90,90,195,200,200,200,85,75,58,85,75,0,0,0,0', NULL, 1, 50, NULL, NULL, 64, 6376, 6375, 6377, NULL, 6376, 6376, NULL, NULL, NULL, 7, NULL, 0, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6249, '', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(6250, 'Growler', 'Defender of the faithful.', 155, 1, 1, 90, 100, 73, '100,150,155,160,100,175,150,100,0,0,0,0,0,0,0', NULL, NULL, 50, 5, NULL, 64, 7019, 7017, 7016, NULL, 7019, 7019, 1184, 1185, 1186, NULL, NULL, 0, 2, NULL, 1, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6251, '', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(6252, 'Bree', 'Champion of Truth.', 162, 1, 1, 90, 73, NULL, '100,100,100,100,180,190,170,75,75,80,80,0,0,0,0', NULL, NULL, 50, 5, NULL, 64, 7009, 7010, 7011, NULL, 7009, 7009, NULL, 1188, 24, 0, NULL, 0, 1, NULL, 1, NULL, 50, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6253, '', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(6254, 'Saradomin priest', 'A holy man wearing ancient clothing.', 89, 1, 1, 60, 1, 60, '40,40,40,40,20,50,40,55,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 811, 404, 9055, NULL, 811, 811, NULL, NULL, 76, 3, NULL, NULL, 2, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6255, 'Spiritual warrior', 'Warrior of Saradomin.', 100, 66, 66, 66, 1, NULL, '40,60,60,60,60,20,50,45,0,0,0,0,0,0,0', NULL, NULL, 25, 5, NULL, NULL, 390, 1156, 9055, NULL, 390, 390, NULL, NULL, NULL, 8, 79, NULL, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6256, 'Spiritual ranger', 'A ranger spirit dedicated to Saradomin.', 106, 1, 1, 70, 70, NULL, '50,70,50,50,50,70,50,65,65,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 426, 404, 9055, NULL, 426, 426, 18, 9, NULL, 0, 78, NULL, 1, NULL, 1, 96, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6257, 'Spiritual mage', 'Saradomin\'s holy mage.', 85, 1, 1, 70, 1, 70, '40,40,40,40,40,50,50,70,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 811, 404, 9055, NULL, 811, 811, NULL, 76, 76, 4, 77, NULL, 2, NULL, 1, NULL, NULL, 0, 2, NULL, NULL, NULL, NULL, NULL), +(6258, 'Knight of Saradomin', 'A valiant knight.', 135, 50, 50, 50, 1, NULL, '40,40,40,40,50,20,40,50,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 407, 410, 9055, NULL, 407, 407, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6259, 'Knight of Saradomin', 'A valiant knight.', 108, 50, 50, 50, 1, NULL, '40,40,40,40,50,20,40,65,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 401, 424, 9055, NULL, 401, 401, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6260, 'General Graardor', 'A huge war chief.', 254, 79, 79, 79, 79, 79, '175,175,198,270,240,395,358,355,235,220,220,400,200,0,0', NULL, 1, 120, 6, NULL, 64, 7060, 7061, 7062, NULL, 7060, 7060, NULL, NULL, NULL, 10, NULL, 0, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6261, 'Sergeant Strongstack', 'A battle-honed goblin. ', 150, 79, 79, 79, 79, 79, '120,120,120,180,180,180,220,85,156,90,0,0,0,0,0', NULL, NULL, 50, 5, NULL, 64, 6154, 6155, 6156, NULL, 6154, 6154, NULL, NULL, NULL, 8, 38, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6262, '', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(6263, 'Sergeant Steelwill', 'A battle-honed goblin. ', 150, 73, 73, 73, 73, 75, '50,175,175,175,155,155,155,100,0,0,0,0,0,0,0', NULL, NULL, 50, 5, NULL, 64, 6154, 6155, 6156, NULL, 6154, 6154, 1202, 1203, NULL, 3, 38, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6264, '', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(6265, 'Sergeant Grimspike', 'A battle-honed goblin. ', 150, 73, 73, 73, 75, 73, '90,75,90,135,175,220,165,98,98,0,0,0,0,0,0', NULL, NULL, 50, 5, NULL, 64, 6154, 6155, 6156, NULL, 6154, 6154, NULL, 1206, NULL, 2, 38, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6266, '', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(6267, 'Fishing spot', 'Big, ugly, and smelly.', 60, 27, 27, 27, 27, 27, '15,15,10,20,40,15,50,50,50,20,50,58,0,0,0', NULL, NULL, 25, 6, NULL, NULL, 359, 360, 361, NULL, 359, 359, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6268, 'Jogre', 'Green and aggressive.', 70, 62, 62, 62, 1, NULL, '10,20,20,20,20,20,10,20,0,0,0,0,0,0,0', NULL, NULL, 25, 6, NULL, NULL, 2936, 2937, 2938, NULL, 2936, 2936, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6269, 'Cyclops', 'A one-eyed man-eater.', 110, 65, 65, 65, 1, NULL, '30,20,35,40,40,40,40,20,20,40,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 4652, 4651, 4653, NULL, 4652, 4652, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6270, 'Cyclops', 'A one-eyed man-eater.', 110, 65, 65, 65, 1, NULL, '30,20,35,40,40,40,40,20,20,40,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 4652, 4651, 4653, NULL, 4652, 4652, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6271, 'Ork', 'Ugly, fierce and with a bad attitude.', 110, 68, 68, 68, 1, NULL, '40,20,30,45,45,45,45,20,45,35,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 4320, 4322, 4321, NULL, 4320, 4320, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6272, 'Ork', 'Ugly, fierce and with a bad attitude.', 110, 68, 68, 68, 1, NULL, '40,20,30,45,45,45,45,20,45,35,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 4320, 4322, 4321, NULL, 4320, 4320, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6273, 'Ork', 'Ugly, fierce and with a bad attitude.', 110, 68, 68, 68, 1, NULL, '40,20,30,45,45,45,45,20,45,35,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 4320, 4322, 4321, NULL, 4320, 4320, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6274, 'Ork', 'Ugly, fierce and with a bad attitude.', 110, 68, 68, 68, 1, NULL, '40,20,30,45,45,45,45,20,45,35,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 4320, 4322, 4321, NULL, 4320, 4320, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6275, 'Hobgoblin', 'An ugly, smelly creature.', 52, 40, 40, 40, 1, NULL, '20,30,30,30,30,30,10,30,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 164, 165, 167, NULL, 164, 164, NULL, NULL, NULL, 8, 45, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(6276, 'Spiritual ranger', 'The spirit of a ranger, serving bandos beyond death.', 130, 1, 1, 70, 70, NULL, '30,50,30,30,50,60,50,40,40,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 4320, 4322, 4321, NULL, 4320, 4320, 95, 1195, NULL, 0, 78, NULL, 1, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6277, 'Spiritual warrior', 'A true servant of Bandos.', 131, 70, 70, 70, 1, NULL, '50,40,45,60,60,60,60,20,50,60,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 4320, 4322, 4321, NULL, 4320, 4320, NULL, NULL, NULL, 8, 79, NULL, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6278, 'Spiritual mage', 'One of Bandos\' chosen.', 106, 1, 1, 70, 1, 70, '40,50,50,50,20,60,50,95,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 4320, 4322, 4321, NULL, 4320, 4320, NULL, NULL, NULL, 4, 77, NULL, 2, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6279, 'Goblin', 'An ancient goblin.', 20, 5, 5, 5, 1, NULL, '10,20,20,20,20,5,20,10,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6280, 'Goblin', 'A warrior for Bandos.', 15, 5, 5, 5, 1, NULL, '10,20,20,20,20,5,20,10,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6281, 'Goblin', 'A soldier to the death.', 15, 5, 5, 5, 1, NULL, '5,10,10,10,10,10,5,10,5,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 6188, 6189, 6190, NULL, 6188, 6188, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6282, 'Goblin', 'A soldier to the death.', 18, 5, 5, 5, 1, NULL, '5,10,10,10,10,10,5,10,5,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 6188, 6189, 6190, NULL, 6188, 6188, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6283, 'Goblin', 'A warrior for Bandos.', 16, 5, 5, 5, 1, NULL, '10,20,20,20,20,5,20,10,0,0,0,0,0,0,0', NULL, NULL, 25, NULL, NULL, NULL, 6185, 6183, 6182, NULL, 6185, 6185, NULL, NULL, NULL, NULL, NULL, 16, NULL, NULL, 1, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6285, 'Warped terrorbird', 'You don\'t think you can harm this terrorbird.', 168, 59, 59, 59, 59, 59, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7108, 0, 7109, NULL, 0, 0, NULL, 1468, NULL, 1, 88, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6286, 'Warped terrorbird', 'You don\'t think you can harm this terrorbird.', 168, 59, 59, 59, 59, 59, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7108, 0, 7109, NULL, 0, 0, NULL, 1468, NULL, 1, 88, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6287, 'Warped terrorbird', 'You don\'t think you can harm this terrorbird.', 168, 59, 59, 59, 59, 59, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7108, 0, 7109, NULL, 0, 0, NULL, 1468, NULL, 1, 88, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6288, 'Warped terrorbird', 'You don\'t think you can harm this terrorbird.', 168, 59, 59, 59, 59, 59, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7108, 0, 7109, NULL, 0, 0, NULL, 1468, NULL, 1, 88, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6289, 'Warped terrorbird', 'You don\'t think you can harm this terrorbird.', 168, 59, 59, 59, 59, 59, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7108, 0, 7109, NULL, 0, 0, NULL, 1468, NULL, 1, 88, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6290, 'Warped terrorbird', NULL, 154, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7108, 7110, 7109, NULL, NULL, NULL, NULL, 1468, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6291, 'Warped terrorbird', 'You don\'t think you can harm this terrorbird.', 168, 59, 59, 59, 59, 59, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7108, 0, 7109, NULL, 0, 0, NULL, 1468, NULL, 1, 88, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6292, 'Warped terrorbird', 'You don\'t think you can harm this terrorbird.', 168, 59, 59, 59, 59, 59, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7108, 0, 7109, NULL, 0, 0, NULL, 1468, NULL, 1, 88, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6293, 'Warped terrorbird', NULL, 154, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7108, 7110, 7109, NULL, NULL, NULL, NULL, 1468, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6294, 'Warped terrorbird', 'You don\'t think you can harm this terrorbird.', 308, 59, 59, 59, 59, 59, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7108, 0, 7109, NULL, 0, 0, NULL, 1468, NULL, 1, 88, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6295, 'Warped terrorbird', 'You don\'t think you can harm this terrorbird.', 308, 59, 59, 59, 59, 59, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7108, 0, 7109, NULL, 0, 0, NULL, 1468, NULL, 1, 88, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6296, 'Warped tortoise', 'You don\'t think you can harm this creature.', 148, 39, 39, 52, 1, 52, NULL, NULL, NULL, 60, 5, NULL, NULL, 7093, 0, 7091, NULL, 0, 0, NULL, NULL, NULL, 4, 89, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6297, 'Warped tortoise', NULL, 87, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 7093, 7092, 7091, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6306, 'Bolrie', 'Annoyingly easy to squish.', 0, 1, 1, 2, 2, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, NULL, 73, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6314, 'Guard no. 21', 'She looks bored.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6315, 'Guard no. 72', 'He looks even more bored.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6322, 'Warped terrorbird', NULL, 154, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7108, 7110, 7109, NULL, NULL, NULL, NULL, 1468, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6323, 'Warped terrorbird', NULL, 154, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7108, 7110, 7109, NULL, NULL, NULL, NULL, 1468, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6324, 'Warped terrorbird', NULL, 154, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7108, 7110, 7109, NULL, NULL, NULL, NULL, 1468, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6325, 'Warped terrorbird', NULL, 154, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7108, 7110, 7109, NULL, NULL, NULL, NULL, 1468, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6326, 'Warped terrorbird', NULL, 154, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7108, 7110, 7109, NULL, NULL, NULL, NULL, 1468, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6327, 'Warped terrorbird', NULL, 154, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7108, 7110, 7109, NULL, NULL, NULL, NULL, 1468, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6328, 'Warped terrorbird', NULL, 154, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7108, 7110, 7109, NULL, NULL, NULL, NULL, 1468, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6329, 'Warped terrorbird', NULL, 154, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7108, 7110, 7109, NULL, NULL, NULL, NULL, 1468, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6330, 'Warped terrorbird', NULL, 154, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7108, 7110, 7109, NULL, NULL, NULL, NULL, 1468, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6331, 'Warped terrorbird', NULL, 154, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7108, 7110, 7109, NULL, NULL, NULL, NULL, 1468, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6332, 'Warped terrorbird', NULL, 154, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7108, 7110, 7109, NULL, NULL, NULL, NULL, 1468, NULL, NULL, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6334, 'Child', 'A child of West Ardougne.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6335, 'Child', 'A child of West Ardougne.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6336, 'Child', 'A child of West Ardougne.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6337, 'Child', 'A child of West Ardougne.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6338, 'Child', 'A child of West Ardougne.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6339, 'Child', 'A child of West Ardougne.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6344, 'Child', 'Duck!', 92, 48, 48, 65, 65, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 3920, 0, 3922, NULL, 0, 3920, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6346, 'Pirate', NULL, 20, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(6347, 'Pirate', NULL, 20, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(6348, 'Pirate', NULL, 20, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(6349, 'Pirate', NULL, 20, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(6350, 'Pirate', NULL, 20, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(6351, 'Pirate', NULL, 23, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(6352, 'Pirate', NULL, 23, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(6353, 'Pirate', NULL, 23, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(6354, 'Pirate', NULL, 23, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(6355, 'Pirate', NULL, 23, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(6356, 'Pirate', NULL, 23, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(6358, 'Street urchin', 'The mother of all pests!', 1428, 70, 70, 70, 70, 70, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, 0, 0, NULL, 0, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6363, 'Zamorak warrior', 'A warrior of Zamorak.', 62, 44, 44, 44, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6364, 'Zamorak warrior', 'A warrior of Zamorak.', 67, 47, 47, 47, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 390, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6365, 'Zamorak ranger', 'A ranger of Zamorak.', 65, 1, 1, 46, 46, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 426, 0, 836, NULL, 0, 426, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6366, 'Zamorak ranger', 'A ranger of Zamorak.', 65, 1, 1, 46, 46, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 426, 0, 836, NULL, 0, 426, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6367, 'Zamorak mage', 'A mage of Zamorak.', 70, 1, 1, 49, 1, 49, NULL, NULL, NULL, 60, NULL, NULL, NULL, 0, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 5, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6368, 'Zamorak mage', 'A mage of Zamorak.', 70, 1, 1, 49, 1, 49, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6369, 'Cave lizard', 'A cave dweller.', 67, 1, 1, 47, 47, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 7207, 0, 7205, NULL, 0, 0, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6370, 'Mage of Zamorak', 'A representative of the Z.M.I.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6371, 'Zamorak crafter', 'A Z.M.I. runecrafter.', 27, 19, 19, 19, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6372, 'Zamorak crafter', NULL, 25, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6374, 'Guard dog', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 49, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6376, 'Jungle spider', NULL, 25, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5327, 5328, 5329, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '537,539,538', NULL, NULL, NULL), +(6377, 'Jungle spider', NULL, 25, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5327, 5328, 5329, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '537,539,538', NULL, NULL, NULL), +(6378, 'Tenacious toucan', 'I wouldn\'t want to be footing that bill.', 85, 60, 60, 60, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 6775, 0, 6779, NULL, 0, 0, NULL, NULL, NULL, 9, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6379, 'Giant ant worker', 'I wonder how much he can lift.', 50, 35, 35, 35, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7237, 0, 7238, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6380, 'Giant ant soldier', 'Gi-ant-ant-ant-ant...', 71, 50, 50, 50, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7237, 0, 7238, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6381, 'Giant wasp', 'That stinger has to hurt...', 85, 60, 60, 60, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 7242, 0, 7244, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6382, 'Pernicious parrot', 'Polynomial - a parrot that goes without breakfast', 64, 45, 45, 45, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 6775, 0, 6777, NULL, 0, 0, NULL, NULL, NULL, 9, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6383, 'Giant wasp', NULL, 37, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 7242, 7243, 7244, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6385, 'Karamjan Jungle eagle', 'A very large', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6389, 'Gargoyle', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 105, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6390, 'Grim Reaper', 'I wish I could tell where he was looking.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6402, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6403, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6404, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6405, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6406, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6407, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6408, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6409, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6410, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6411, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6412, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6413, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6414, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6415, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6416, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6417, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6418, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6419, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6420, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6421, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6422, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6423, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6424, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6425, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6426, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6427, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6428, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6429, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6430, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6431, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL); +INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES +(6432, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6433, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6434, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6435, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6436, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6437, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6438, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6439, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6440, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6441, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6442, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6443, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6444, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6445, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6446, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6447, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6448, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6449, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6450, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6451, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6452, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6453, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6454, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6455, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6456, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6457, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6458, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6459, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6460, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6461, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6462, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6463, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6464, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6465, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6466, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6467, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6469, 'Snothead', 'A goblin high priest', 20, 14, 14, 14, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7317, 0, 6182, NULL, 0, 0, NULL, NULL, NULL, 8, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6470, 'Snailfeet', 'A goblin high priest', 25, 13, 13, 18, 18, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7317, 0, 6182, NULL, 0, 0, NULL, NULL, NULL, 2, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6471, 'Mosschin', 'A goblin high priest', 31, 16, 16, 22, 1, 22, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7317, 0, 6182, NULL, 0, 0, NULL, NULL, NULL, 5, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6472, 'Redeyes', 'A goblin high priest', 37, 19, 19, 26, 1, 26, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7317, 0, 6182, NULL, 0, 0, NULL, NULL, NULL, 5, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6473, 'Strongbones', 'A goblin high priest', 37, 19, 19, 26, 1, 26, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7317, 0, 6182, NULL, 0, 0, NULL, NULL, NULL, 5, 75, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6482, 'Priest', 'Priest of the Ekeleshuun tribe.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6488, 'Preacher', 'He is expounding the word of the Big High War God.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6490, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6491, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6492, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6493, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6494, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6495, 'Goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '469,472,471', NULL, NULL, NULL), +(6496, 'Goblin guard', 'He doesn\'t look very welcoming.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(6497, 'Goblin guard', 'He doesn\'t look very welcoming.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '469,472,471', NULL, NULL, NULL), +(6498, 'Guard', 'A guard wearing blue armour.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(6499, 'Guard', 'A guard wearing orange armour.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(6500, 'Guard', 'A guard wearing black armour.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(6501, 'Guard', 'A guard wearing white armour.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(6502, 'Guard', 'A guard wearing purple armour.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(6503, 'Guard', 'A guard wearing yellow armour.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(6504, 'Ghost', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '436,439,438', NULL, NULL, NULL), +(6507, 'Registrar 2', 'A very noble spider and attendant to the Queen.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6508, 'Registrar 3', 'The highest ranking of the Spider Queen\'s servants.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6509, 'Registrar 4', 'The head of the Spider Queen\'s army.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6510, 'Jury', 'Trying hard to hide his identity.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6512, 'Spectator', 'Sir Amik\'s loyal squire.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6514, 'Spectator', 'A being of ore and minerals.', 1, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6516, 'Spectator', 'A monkey on a mission.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6518, 'Spectator', 'He works for Doric & Son.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6521, 'Grand Exchange Tutor', 'Gives an introduction to the Grand Exchange.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6523, 'Farid Morrisane (ores)', 'The son of Ali M!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6524, 'Bob Barter (herbs)', 'He\'s probably seen better days.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6525, 'Murky Matt (runes)', 'You can never miss a pirate in disguise.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6526, 'Relobo Blinyo (logs)', 'A tribal man', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6527, 'Hofuthand (armour and weapons)', 'He\'s travelled a long way.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6536, 'Registrar 5', 'Chief architect of the Spider Realm.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6543, '', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(6544, '', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(6558, 'null', 'Tapping his feet and looking very bored.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6560, 'null', 'A huge war chief. ', 254, 250, 251, 250, 200, NULL, '300,300,300,300,300,300,150,300,300,250,43,96,43,30,0', NULL, NULL, 20, 5, NULL, NULL, 422, 7061, 7062, NULL, 422, 422, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6604, 'Revenant imp', 'The essence of an imp slain during the god wars.', 20, 1, 10, 10, 10, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7407, 7404, 7408, 7410, 7500, 7501, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0,0,0', NULL, NULL, NULL), +(6605, 'Revenant goblin', 'The ghost of a goblin slain during the god wars.', 14, 12, 12, 12, 12, 12, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7449, 7450, 7448, 7447, 7499, 7513, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6606, 'Revenant icefiend', 'The ghost of an icefiend slain during the God Wars.', 40, 27, 27, 1, 27, 27, NULL, NULL, NULL, NULL, 3, NULL, NULL, 7481, 7483, 7482, 7485, 7506, 7519, NULL, NULL, NULL, NULL, NULL, 40, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6607, 'Revenant werewolf', 'The ghost of a Werewolf slain during the God wars.', 70, 38, 38, 38, 38, 38, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7397, 7399, 7398, 7403, 7496, 7521, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6608, 'Revenant hobgoblin', 'The ghost of a hobgoblin slain during the God Wars.', 55, 32, 32, 32, 1, 32, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7418, 7420, 7419, NULL, 7503, 7516, NULL, NULL, NULL, NULL, NULL, 72, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6609, 'Revenant werewolf', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6610, 'Revenant ork', 'It\'s an NPC.', 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, '0,0,0', NULL, NULL, NULL), +(6611, 'Revenant knight', 'A ghost of a knight slain during the God wars.', 142, 80, 80, 80, 80, 80, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7441, 7443, 7442, 7440, 7508, 7522, NULL, NULL, NULL, NULL, NULL, 143, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6612, 'Revenant goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6613, 'Revenant vampire', 'The ghost of a vampyre slain in the god wars.', 60, 34, 34, 34, 34, 34, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7427, 7429, 7428, 7426, 7507, 7520, NULL, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6614, 'Revenant werewolf', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, '0,0,0', NULL, NULL, NULL), +(6615, 'Revenant ork', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6616, 'Revenant goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6617, 'Revenant werewolf', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6618, 'Revenant ork', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6619, 'Revenant knight', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6620, 'Revenant goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6621, 'Revenant icefiend', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6622, 'Revenant pyrefiend', 'The essence of a pyrefiend slain during the god wars.', 45, 292, 1, 29, 29, 29, NULL, NULL, NULL, NULL, 3, NULL, NULL, 7481, 7483, 7482, 7485, 7506, 7519, NULL, NULL, NULL, NULL, NULL, 48, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6623, 'Revenant vampire', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6624, 'Revenant ork', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6625, 'Revenant werewolf', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6626, 'Revenant ork', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6627, 'Revenant knight', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6628, 'Revenant icefiend', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6629, 'Revenant ork', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6630, 'Revenant knight', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6631, 'Revenant pyrefiend', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6632, 'Revenant werewolf', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6633, 'Revenant ork', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6634, 'Revenant knight', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6635, 'Revenant imp', 'The essence of an imp slain during the god wars.', 10, 1, 10, 10, 10, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7407, 7403, 7408, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6636, 'Revenant goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6637, 'Revenant goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6638, 'Revenant goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6639, 'Revenant goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6640, 'Revenant icefiend', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6641, 'Revenant pyrefiend', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6642, 'Revenant hobgoblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6643, 'Revenant vampire', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6644, 'Revenant werewolf', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6645, 'Revenant cyclops', 'The ghost of a cyclops slain during the god wars.', 75, 43, 43, 43, 43, 43, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7453, 7455, 7454, 7457, 7497, 7510, NULL, NULL, NULL, 0, NULL, 110, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6646, 'Revenant hellhound', 'The essence of a hellhound slain during the god wars.', 80, 50, 50, 1, 50, 50, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7460, 7462, 7461, 7464, 7515, 7501, NULL, NULL, NULL, NULL, NULL, 80, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, '3717,3719,3718', NULL, NULL, NULL), +(6647, 'Revenant demon', 'The essence of a demon slain during the god wars.', 85, 60, 60, 60, 60, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7474, 7476, 7475, 7478, 7498, 7512, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, '400,404,403', NULL, NULL, NULL), +(6648, 'Revenant ork', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6649, 'Revenant dark beast', 'The ghost of a dark beast slain during the god wars..', 120, 80, 80, 80, 80, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7467, 7469, 7468, 7471, 7515, 7514, NULL, NULL, NULL, NULL, NULL, 256, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6650, 'Revenant knight', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6651, 'Revenant goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6652, 'Revenant vampire', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6653, 'Revenant ork', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6654, 'Revenant knight', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6655, 'Revenant imp', 'A tough looking dwarf.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6656, 'Revenant goblin', 'A tough looking dwarf.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6657, 'Revenant goblin', 'An ancient spirit has made itself at home within this suit of armour.', 45, 32, 32, 32, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 47, 0, 48, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6658, 'Revenant goblin', 'An ancient spirit has made itself at home within this suit of armour.', 47, 33, 33, 33, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 47, 0, 48, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6659, 'Revenant icefiend', 'An ancient spirit has made itself at home within this suit of armour.', 48, 34, 34, 34, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 47, 0, 48, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6660, 'Revenant pyrefiend', NULL, 50, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 47, 49, 48, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6661, 'Revenant hobgoblin', NULL, 50, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 47, 49, 48, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6662, 'Revenant vampire', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 47, 49, 48, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6663, 'Revenant werewolf', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6664, 'Revenant ork', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6665, 'Revenant knight', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6666, 'Revenant imp', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6667, 'Revenant goblin', 'Pirate and discerning music critic.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6668, 'Revenant pyrefiend', 'The most piratical penguin you ever did see.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6669, 'Revenant vampire', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6670, 'Revenant ork', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6671, 'Revenant vampire', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6672, 'Revenant ork', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6673, 'Revenant knight', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6674, 'Revenant vampire', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6675, 'Revenant werewolf', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6676, 'Revenant knight', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6677, 'Revenant imp', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6678, 'Revenant goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6679, 'Revenant goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6680, 'Revenant goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6681, 'Revenant goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6682, 'Revenant icefiend', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6683, 'Revenant pyrefiend', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6684, 'Revenant hobgoblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6685, 'Revenant vampire', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6686, 'Revenant werewolf', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6687, 'Revenant cyclops', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6688, 'Revenant hellhound', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, '3717,3719,3718', NULL, NULL, NULL), +(6689, 'Revenant demon', 'The essence of a demon slain during the god wars.', 750, 60, 60, 60, 60, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7474, 7476, 7475, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, '400,404,403', NULL, NULL, NULL), +(6690, 'Revenant ork', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6691, 'Revenant dark beast', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6692, 'Revenant knight', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6693, 'Revenant goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6694, 'Revenant icefiend', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6695, 'Revenant vampire', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6696, 'Revenant ork', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6697, 'Revenant imp', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6698, 'Revenant goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6699, 'Revenant goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6700, 'Revenant vampire', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6701, 'Revenant werewolf', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6702, 'Revenant ork', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6703, 'Revenant imp', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6704, 'Revenant goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6705, 'Revenant goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6706, 'Revenant goblin', 'He\'s not from around here.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6707, 'Revenant goblin', 'The leader of a long-forgotten band of mercenaries.', 514, 1, 1, 78, 1, 78, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 836, NULL, 0, 711, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6708, 'Revenant icefiend', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6709, 'Revenant pyrefiend', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6710, 'Revenant hobgoblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6711, 'Revenant vampire', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6712, 'Revenant werewolf', 'It\'s trying to mash your house! Less examine', 285, 60, 60, 60, 60, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 5894, 0, 5898, NULL, 0, 9618, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6713, 'Revenant ork', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6714, 'Revenant knight', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6715, 'Revenant imp', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6716, 'Revenant goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6717, 'Revenant goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6718, 'Revenant goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6719, 'Revenant goblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6720, 'Revenant icefiend', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6721, 'Revenant pyrefiend', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6722, 'Revenant hobgoblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL), +(6723, 'Revenant vampire', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL), +(6724, 'Revenant werewolf', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6725, 'Revenant ork', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6726, 'Revenant knight', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6727, 'Revenant hobgoblin', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '469,472,471', NULL, NULL, NULL); +INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES +(6728, 'Revenant werewolf', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6729, 'Revenant ork', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6730, 'Revenant knight', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(6731, 'Queen of Snow', 'Her lack of body heat is unsettling.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6739, 'Snow imp', 'It looks right at home here.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6740, 'Snow', 'Snowflakes swirling in the wind.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6743, 'Dragon snowman', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '408,410,409', NULL, NULL, NULL), +(6745, 'Pirate snowman', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(6747, 'Snow ranger', 'A snowman armed with a holly bow.', 30, 30, 1, 10, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6748, 'Snow ranger', 'A snowman armed with an ice sword.', 20, 30, 1, 10, 1, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6749, 'Snow mage', 'A snowman armed with a winter staff.', 20, 30, 1, 10, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6761, 'Dried zombie', 'Cut-down and dried.', 68, 48, 48, 48, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5568, 0, 5569, NULL, 0, 0, NULL, NULL, NULL, 7, 93, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6762, 'Dried zombie', 'Needs moisturising.', 68, 48, 48, 48, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5568, 0, 5569, NULL, 0, 0, NULL, NULL, NULL, 7, 93, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6763, 'Dried zombie', 'I bet it\'s parched.', 68, 48, 48, 48, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 5568, 0, 5569, NULL, 0, 0, NULL, NULL, NULL, 7, 93, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6764, 'Skeleton', NULL, 97, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, 5513, 5491, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(6765, 'Skeleton', NULL, 108, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, 5513, 5491, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(6766, 'Skeleton', NULL, 120, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, 5513, 5491, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(6767, 'Skeleton', NULL, 115, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, 5513, 5491, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(6768, 'Skeleton', NULL, 140, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, 5513, 5491, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '774,775,777', NULL, NULL, NULL), +(6769, 'Doorman', 'A guard.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6770, 'Giant scarab', 'A huge beast of a beetle.', 285, 49, 49, 66, 66, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7596, 0, 7595, NULL, 0, 0, NULL, NULL, NULL, 2, 70, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6772, 'Scarab larva', 'It\'s not quite small enough to stamp upon.', 25, 18, 18, 18, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7657, 0, 7656, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6773, 'Scabaras ranger', 'Bred to shoot you down.', 157, 41, 41, 55, 55, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7607, 0, 7609, NULL, 0, 7607, 18, 11, NULL, 2, 70, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6774, 'Scabaras lancer', 'It might be angry...it\'s hard to tell.', 78, 55, 55, 55, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7612, 0, 7614, NULL, 0, 0, NULL, NULL, NULL, 9, 70, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6776, 'Scabaras locust', 'A giant', 78, 41, 41, 55, 55, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7586, 0, 7581, NULL, 0, 0, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6777, 'Locust lancer', 'Bouncy', 78, 55, 55, 55, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7584, 0, 7581, NULL, 0, 0, NULL, NULL, NULL, 9, 70, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6778, 'Locust ranger', 'He\'ll have someone\'s eye out with that.', 78, 41, 41, 55, 55, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 5451, 0, 7581, NULL, 0, 5451, 18, 11, NULL, 2, 70, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6779, 'Crocodile', NULL, 72, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 7588, 7590, 7591, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 62, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6780, 'Scabaras mage', 'Part scarab', 78, 41, 41, 55, 1, 55, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7615, 0, 7616, NULL, 0, 0, NULL, NULL, NULL, 4, 70, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6781, 'Scabaras mage', NULL, 70, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7620, 7617, 7616, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6785, 'Clay golem', 'An animated clay statue.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6786, 'Lead archaeologist Abigail', 'She looks a bit dirty from digging.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6787, 'Assistant archaeologist Kerner', 'He looks a bit dusty from troweling.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6788, 'High Priest of Scabaras', 'He exudes something like holiness.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6789, 'High Priest of Scabaras', 'He exudes something like holiness.', 94, 66, 66, 66, 66, 66, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7612, 0, 7614, NULL, 0, 0, NULL, NULL, NULL, 10, 70, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6790, 'High Priest of Scabaras', 'He exudes something like holiness.', 94, 66, 66, 66, 66, 66, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 7607, 0, 7609, NULL, 0, 7607, NULL, NULL, NULL, 10, 70, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6794, 'Spirit terrorbird', NULL, 233, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 1010, 1011, 1012, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6795, 'Spirit terrorbird', 'A bird. Literally terrifying.', 74, 50, 50, 50, 50, 50, NULL, NULL, NULL, 0, NULL, NULL, NULL, 1010, 0, 1013, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6796, 'Granite crab', 'Is it a stone? Is it a crab? No! It\'s Granite Crab!', 39, 18, 17, 22, 16, 13, '16,9,5,12,4,11,57,53,61,12,45,22,0,0,0', NULL, NULL, 50, 3, NULL, NULL, 8104, 8105, 8106, NULL, 8104, 8104, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6797, 'Granite crab', 'Is it a stone? Is it a crab? No! It\'s Granite Crab!', 39, 18, 17, 22, 16, 13, '16,9,5,12,4,11,57,53,61,12,45,22,0,0,0', NULL, NULL, 50, 3, NULL, NULL, 8104, 8105, 8106, NULL, 8104, 8104, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6798, 'Praying mantis', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 8064, 8066, 8065, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6799, 'Praying mantis', 'Wax on', 107, 60, 60, 60, 60, 60, NULL, NULL, NULL, 0, NULL, NULL, NULL, 8069, 0, 8065, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6800, 'Giant ent', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7853, 7852, 7854, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6801, 'Giant ent', 'He ent such a bad guy.', 111, 60, 60, 60, 60, 60, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7853, 0, 7854, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6802, 'Spirit cobra', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 8152, 8154, 8153, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6803, 'Spirit cobra', 'Serpentine.', 90, 55, 55, 55, 55, 55, NULL, NULL, NULL, 0, NULL, NULL, NULL, 8152, 0, 8153, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6804, 'Spirit dagannoth', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7786, 7785, 7780, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6805, 'Spirit dagannoth', 'Face the thing that should not be!', 115, 65, 65, 65, 65, 65, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7786, 0, 7780, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6806, 'Thorny snail', 'A hermit slug.', 28, 19, 18, 22, 21, 18, '47,50,52,52,54,49,13,3,13,4,0,0,0,0,0', NULL, 1, 55, 5, NULL, NULL, 8143, 8145, 8143, NULL, 8143, 8143, NULL, 1386, 1387, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6807, 'Thorny snail', 'A hermit slug.', 28, 19, 18, 22, 21, 18, '47,50,52,52,54,49,13,3,13,4,0,0,0,0,0', NULL, 1, 55, 5, NULL, NULL, 8143, 8145, 8143, NULL, 8143, 8143, NULL, 1386, 1387, 10, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6809, 'Karamthulhu overlord', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7970, 7967, 7979, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6810, 'Karamthulhu overlord', 'Kneel before squid!', 82, 50, 50, 50, 50, 50, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7963, 0, 7964, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6811, 'Hydra', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7935, 7936, 7937, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6812, 'Hydra', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7935, 7936, 7937, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6813, 'Bunyip', NULL, 40, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7741, 7742, 7740, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6814, 'Bunyip', NULL, 40, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7741, 7742, 7740, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6815, 'War tortoise', NULL, 348, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 8286, 8287, 8285, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6816, 'War tortoise', 'Definitely not teenaged', 95, 55, 55, 55, 55, 55, NULL, NULL, NULL, 0, NULL, NULL, NULL, 8286, 0, 8285, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6817, 'Fruit bat', 'Fruity and bat-shaped. A winning combination!.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6818, 'Abyssal parasite', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7675, 7670, 7671, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6819, 'Abyssal parasite', 'It\'s an extra-planar little blood hoover.', 77, 50, 50, 50, 50, 50, NULL, NULL, NULL, 0, NULL, NULL, NULL, 8910, 0, 7671, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6820, 'Abyssal lurker', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7680, 7681, 7684, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6821, 'Abyssal lurker', 'Lurking like only a lurker can.', 88, 55, 55, 55, 55, 55, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7680, 0, 7684, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6822, 'Unicorn stallion', 'The pointiest horse on the planet.', 100, 64, 62, 70, 72, 69, '48,59,43,52,104,52,116,123,134,46,127,4,0,0,0', NULL, 1, NULL, NULL, NULL, NULL, 6376, 6375, 6377, NULL, 6376, 6376, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '496,498,497', NULL, NULL, NULL), +(6823, 'Unicorn stallion', 'The pointiest horse on the planet.', 100, 64, 62, 70, 72, 69, '48,59,43,52,104,52,116,123,134,46,127,4,0,0,0', NULL, 1, NULL, NULL, NULL, NULL, 6376, 6375, 6377, NULL, 6376, 6376, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '496,498,497', NULL, NULL, NULL), +(6824, 'Magpie', NULL, 16, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, 5, NULL, NULL, 7810, 5388, 8012, NULL, NULL, NULL, NULL, 1318, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6825, 'Dreadfowl', 'Southern fried please!', 16, 17, 15, 22, 16, 23, '16,15,29,12,39,13,41,35,29,39,47,2,2,2,7', NULL, 1, 50, 5, NULL, NULL, 7810, 5388, 5389, NULL, 7810, 7810, NULL, 1318, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6826, 'Dreadfowl', 'Southern fried please!', 16, 17, 15, 22, 16, 23, '16,15,29,12,39,13,41,35,29,39,47,2,2,2,7', NULL, 1, 50, 5, NULL, NULL, 7810, 5388, 5389, NULL, 7810, 7810, NULL, 1318, NULL, 10, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6827, 'Stranger plant', 'It\'s mean and green.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 8208, 8205, 8209, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6828, 'Stranger plant', 'It\'s mean and green!', 91, 55, 55, 55, 55, 55, NULL, NULL, NULL, 0, 5, NULL, NULL, 8208, 0, 8209, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6829, 'Spirit wolf', 'Man\'s significantly less-domesticated friend.', 15, 16, 18, 21, 9, 7, '12,7,4,10,23,5,29,27,16,12,13,17,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 8292, 8294, 8295, NULL, 8292, 8292, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6830, 'Spirit wolf', 'Man\'s significantly less-domesticated friend.', 15, 16, 18, 21, 9, 7, '12,7,4,10,23,5,29,27,16,12,13,17,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 8292, 8294, 8295, NULL, 8292, 8292, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6831, 'Desert wyrm', NULL, 47, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7795, 7796, 7797, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6832, 'Desert wyrm', 'Surprisingly slime-free.', 25, 18, 18, 18, 18, 18, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7795, 0, 7797, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6834, 'Evil turnip', 'If you think he\'s evil', 60, 42, 42, 42, 42, 42, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 8248, 0, 8250, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6835, 'Vampire bat', NULL, 20, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 8275, 8274, 8276, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6836, 'Vampire bat', 'It vants to suck my blood!', 44, 31, 31, 31, 31, 31, NULL, NULL, NULL, 0, NULL, NULL, NULL, 8275, 0, 8276, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6837, 'Spirit scorpion', NULL, 67, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 6254, 6255, 6256, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '3611,3612,3610', NULL, NULL, NULL), +(6838, 'Spirit scorpion', 'Salt and vinegaroon.', 27, 19, 19, 19, 19, 19, NULL, NULL, NULL, 0, NULL, NULL, NULL, 6254, 0, 6256, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '3611,3612,3610', NULL, NULL, NULL), +(6839, 'Arctic bear', 'Crikey! Look at the size of those teeth!', 10, 60, 60, 60, 60, 60, '90,50,50,60,90,80,50,30,40,100,0,0,0,0,0', NULL, NULL, 0, NULL, NULL, NULL, 4925, 4928, 4929, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '498,500,499', NULL, NULL, NULL), +(6840, 'Arctic bear', 'Crikey! Look at the size of those teeth!', 101, 60, 60, 60, 60, 60, NULL, NULL, NULL, 0, NULL, NULL, NULL, 4925, 0, 4929, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '498,500,499', NULL, NULL, NULL), +(6841, 'Spirit spider', 'Would scare anyone off their tuffet.', 18, 17, 16, 17, 12, 15, '15,16,11,14,34,12,24,36,46,16,37,0,0,0,0', NULL, NULL, 50, NULL, NULL, NULL, 5327, 5328, 5329, NULL, 5327, 5327, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '537,539,538', NULL, NULL, NULL), +(6842, 'Spirit spider', 'Would scare anyone off their tuffet.', 18, 17, 16, 17, 12, 15, '15,16,11,14,34,12,24,36,46,16,37,0,0,0,0', NULL, NULL, 50, NULL, NULL, NULL, 5327, 5328, 5329, NULL, 5327, 5327, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '537,539,538', NULL, NULL, NULL), +(6843, 'Bloated leech', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7657, 7655, 7656, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6844, 'Bloated leech', 'It\'s like a little suction pump with eyes.', 70, 49, 49, 49, 49, 49, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7657, 0, 7656, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6845, 'Honey badger', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7928, 7927, 7925, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6846, 'Honey badger', 'Violent little so-and-so.', 45, 32, 32, 32, 32, 32, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7928, 0, 7925, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6847, 'Albino rat', 'The big cheese.', 68, 31, 28, 32, 31, 27, '64,42,40,57,64,50,76,82,72,24,75,5,15,5,5', NULL, 1, 50, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(6848, 'Albino rat', 'The big cheese.', 68, 31, 28, 32, 31, 27, '64,42,40,57,64,50,76,82,72,24,75,5,15,5,5', NULL, 1, 50, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(6849, 'Granite lobster', 'Puts the \'crust\' in \'crustacean\'.', 10, 60, 60, 60, 60, NULL, '93,90,65,90,30,40,50,50,60,40,0,0,0,0,0', NULL, NULL, 0, NULL, NULL, NULL, 8112, 8114, 8113, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6850, 'Granite lobster', 'Puts the \'crust\' in \'crustacean\'.', 105, 60, 60, 60, 60, 60, NULL, NULL, NULL, 0, NULL, NULL, NULL, 8112, 0, 8113, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6851, 'Macaw', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, 8012, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6852, 'Macaw', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, 8012, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6853, 'Bronze minotaur', 'He\'s just a big bully.', 15, 31, 1, 31, 31, 31, '15,20,10,15,10,5,35,0,0,0,0,0,0,0,0', NULL, NULL, 0, NULL, NULL, NULL, 8024, 8023, 8025, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6854, 'Bronze minotaur', 'He\'s just a big bully.', 51, 15, 15, 15, 15, 15, NULL, NULL, NULL, 0, NULL, NULL, NULL, 8024, 0, 8025, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6855, 'Iron minotaur', NULL, 24, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 8024, 8023, 8025, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6856, 'Iron minotaur', 'He\'s just a big bully.', 65, 25, 25, 25, 25, 25, NULL, NULL, NULL, 0, NULL, NULL, NULL, 8024, 0, 8025, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6857, 'Steel minotaur', 'He\'s just a big bully!', 44, 70, 30, 70, 1, NULL, '40,30,30,30,30,50,30,60,60,60,20,80,40,20,0', NULL, NULL, 0, NULL, NULL, NULL, 8024, 8023, 8025, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6858, 'Steel minotaur', 'He\'s just a big bully.', 80, 35, 35, 35, 35, 35, NULL, NULL, NULL, 0, NULL, NULL, NULL, 8024, 0, 8025, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6859, 'Mithril minotaur', 'He\'s just a big bully', 37, 40, 40, 40, 40, 40, '56,35,30,30,30,40,10,12,30,40,30,35,40,0,0', NULL, NULL, 0, NULL, NULL, NULL, 8024, 8023, 8025, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6860, 'Mithril minotaur', 'He\'s just a big bully.', 94, 45, 45, 45, 45, 45, NULL, NULL, NULL, 0, NULL, NULL, NULL, 8024, 0, 8025, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6861, 'Adamant minotaur', 'He\'s just a big bully.', 43, 55, 1, 55, 55, 55, '40,50,40,45,35,20,50,36,30,40,15,18,30,10,0', NULL, NULL, 0, NULL, NULL, NULL, 8024, 8023, 8025, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6862, 'Adamant minotaur', 'He\'s just a big bully.', 108, 55, 55, 55, 55, 55, NULL, NULL, NULL, 0, NULL, NULL, NULL, 8024, 0, 8025, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6863, 'Rune minotaur', 'He\'s just a big bully.', 57, 65, 65, 65, 65, 65, '50,40,40,56,40,30,50,30,60,30,40,30,50,40,40', NULL, NULL, 0, NULL, NULL, NULL, 8024, 8023, 8025, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6864, 'Rune minotaur', 'He\'s just a big bully.', 57, 65, 65, 65, 65, 65, '50,40,40,56,40,30,50,30,60,30,40,30,50,40,40', NULL, NULL, 0, NULL, NULL, NULL, 8024, 8023, 8025, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6865, 'Smoke devil', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7816, 7817, 7818, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6866, 'Smoke devil', 'Well', 87, 55, 55, 55, 55, 55, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7816, 0, 7818, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6867, 'Bull ant', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7896, 7900, 7897, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6868, 'Bull ant', 'Putting all three of its best feet forward.', 57, 40, 40, 40, 40, 40, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7896, 0, 7897, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6869, 'Wolpertinger', 'It\'s just a harmless wee rabbit. ', 619, 1, 1, 95, 95, 95, '59,50,50,50,50,50,50,50,50,50,50,50,50,68,0', NULL, 1, NULL, 5, NULL, NULL, 8304, 8306, 8305, NULL, 8304, 8304, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6870, 'Wolpertinger', 'It\'s just a harmless wee rabbit. ', 619, 1, 1, 95, 95, 95, '59,50,50,50,50,50,50,50,50,50,50,50,50,68,0', NULL, 1, NULL, 5, NULL, NULL, 8304, 8306, 8305, NULL, 8304, 8304, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6871, 'Compost mound', NULL, 96, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, 5, NULL, NULL, 853, 851, 852, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6872, 'Compost mound', 'I suppose it could smell worse', 40, 28, 28, 28, 28, 28, NULL, NULL, NULL, 0, 5, NULL, NULL, 7769, 0, 7770, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6873, 'Pack yak', 'Bulk haulage never smelled so bad.', 710, 112, 104, 121, 86, 91, '64,67,5,72,128,49,264,234,164,49,132,40,35,40,40', NULL, 1, NULL, 5, NULL, NULL, 5782, 5783, 5784, NULL, 5782, 5782, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6874, 'Pack yak', 'Bulk haulage never smelled so bad.', 710, 112, 104, 121, 86, 91, '64,67,5,72,128,49,264,234,164,49,132,40,35,40,40', NULL, 1, NULL, 5, NULL, NULL, 5782, 5783, 5784, NULL, 5782, 5782, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6875, 'Spirit cockatrice', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7762, 7761, 7763, NULL, NULL, NULL, 1467, 1468, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6876, 'Spirit cockatrice', 'If looks could kill... Wait', 61, 43, 43, 43, 43, 43, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7762, 0, 7763, NULL, 0, 0, 1467, 1468, NULL, 10, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6877, 'Spirit guthatrice', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7762, 7761, 7763, NULL, NULL, NULL, 1467, 1468, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6878, 'Spirit guthatrice', 'If looks could kill... Wait', 61, 43, 43, 43, 43, 43, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7762, 0, 7763, NULL, 0, 0, 1467, 1468, NULL, 10, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6879, 'Spirit saratrice', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7762, 7761, 7763, NULL, NULL, NULL, 1467, 1468, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(6880, 'Spirit saratrice', 'If looks could kill... Wait', 61, 43, 43, 43, 43, 43, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7762, 0, 7763, NULL, 0, 0, 1467, 1468, NULL, 10, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(6881, 'Spirit zamatrice', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7762, 7761, 7763, NULL, NULL, NULL, 1467, 1468, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6882, 'Spirit zamatrice', 'If looks could kill... Wait', 61, 43, 43, 43, 43, 43, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7762, 0, 7763, NULL, 0, 0, 1467, 1468, NULL, 10, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6883, 'Spirit pengatrice', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7762, 7761, 7763, NULL, NULL, NULL, 1467, 1468, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6884, 'Spirit pengatrice', 'If looks could kill... Wait', 61, 43, 43, 43, 43, 43, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7762, 0, 7763, NULL, 0, 0, 1467, 1468, NULL, 10, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6885, 'Spirit coraxatrice', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7762, 7761, 7763, NULL, NULL, NULL, 1467, 1468, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6886, 'Spirit coraxatrice', 'If looks could kill... Wait', 61, 43, 43, 43, 43, 43, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7762, 0, 7763, NULL, 0, 0, 1467, 1468, NULL, 10, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6887, 'Spirit vulatrice', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7762, 7761, 7763, NULL, NULL, NULL, 1467, 1468, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6888, 'Spirit vulatrice', 'If looks could kill... Wait', 61, 43, 43, 43, 43, 43, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7762, 0, 7763, NULL, 0, 0, 1467, 1468, NULL, 10, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6889, 'Barker toad', 'The only creature with a mouth big enough to hold a cannonball.', 10, 1, 55, 1, 55, 55, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7260, 7257, 7256, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6890, 'Barker toad', 'The only creature with a mouth big enough to fit a cannon ball into.', 94, 55, 55, 55, 55, 55, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7260, 0, 7256, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6891, 'Penguin keeper', 'He looks like the type of guy who would keep penguins.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6892, 'Pet shop owner', 'The lady of the pet shop.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6893, 'Pet shop owner', 'The man of the pet shop.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6896, 'Dalmatian', 'A dalmatian puppy.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6897, 'Bulldog', 'A bulldog puppy.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6900, 'Hatchling dragon', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '408,410,409', NULL, NULL, NULL), +(6901, 'Baby dragon', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '408,410,409', NULL, NULL, NULL), +(6902, 'Hatchling dragon', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '408,410,409', NULL, NULL, NULL), +(6903, 'Baby dragon', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '408,410,409', NULL, NULL, NULL), +(6904, 'Hatchling dragon', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '408,410,409', NULL, NULL, NULL), +(6905, 'Baby dragon', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '408,410,409', NULL, NULL, NULL), +(6906, 'Hatchling dragon', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '408,410,409', NULL, NULL, NULL), +(6907, 'Baby dragon', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '408,410,409', NULL, NULL, NULL), +(6917, 'Baby gecko', 'It\'s so adorably tiny!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6921, 'Baby squirrel', 'A tiny nut-thief.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6942, 'Baby monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(6943, 'Monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(6944, 'Baby monkey', 'It\'s a tiny', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(6969, 'Bulldog puppy', NULL, 651, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, 5, NULL, NULL, 8304, 8306, 8305, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6972, 'Druid', 'A nature lover.', 27, 14, 14, 19, 1, 19, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7181, 0, 7185, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(6973, 'Druid', 'A nature lover.', 27, 14, 14, 19, 1, 19, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, 7185, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(6974, 'Druid', 'A nature lover.', 27, 14, 14, 19, 1, 19, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, 7185, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(6975, 'Druid', 'A nature lover.', 27, 14, 14, 19, 1, 19, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7181, 0, 7185, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(6976, 'Druid', 'A nature lover.', 27, 14, 14, 19, 1, 19, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7182, 0, 7185, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(6977, 'Druid', 'A nature lover.', 27, 14, 14, 19, 1, 19, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7182, 0, 7185, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(6978, 'Druid', 'A nature lover.', 27, 14, 14, 19, 1, 19, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7182, 0, 7185, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(6979, 'Druid', NULL, 30, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7182, 7186, 7185, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(6980, 'Druid', 'A nature lover.', 27, 14, 14, 19, 1, 19, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7182, 0, 7185, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(6981, 'Druidess', 'A nature lover.', 27, 14, 14, 19, 1, 19, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7182, 0, 7185, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6982, 'Druidess', 'A nature lover.', 27, 14, 14, 19, 1, 19, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7181, 0, 7185, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6983, 'Druidess', 'A nature lover.', 27, 14, 14, 19, 1, 19, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7182, 0, 7185, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6984, 'Druidess', 'A nature lover.', 27, 14, 14, 19, 1, 19, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7181, 0, 7185, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6985, 'Druidess', 'A nature lover.', 27, 14, 14, 19, 1, 19, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7182, 0, 7185, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6986, 'Druidess', 'A nature lover.', 27, 14, 14, 19, 1, 19, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7182, 0, 7185, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6987, 'Druidess', 'A nature lover.', 27, 14, 14, 19, 1, 19, NULL, NULL, NULL, 60, NULL, NULL, NULL, 7182, 0, 7185, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6992, 'Spirit jelly', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 8569, 8571, 8570, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6993, 'Spirit jelly', 'On Runescape', 78, 50, 50, 50, 50, 50, NULL, NULL, NULL, 0, NULL, NULL, NULL, 8569, 0, 8570, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6994, 'Spirit kalphite', NULL, 77, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 8519, 8518, 8517, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6995, 'Spirit kalphite', 'Hail to the Queen', 35, 25, 25, 25, 25, 25, NULL, NULL, NULL, 0, NULL, NULL, NULL, 6223, 0, 6228, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6997, 'Baby raccoon', 'A stripy little baby raccoon.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(6998, 'Revenant dragon', 'A ghost of a dragon slain during the god wars.', 210, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 8591, 8592, 8593, 8595, 8594, 8594, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, '408,410,409', NULL, NULL, NULL), +(6999, 'Revenant dragon', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, '408,410,409', NULL, NULL, NULL), +(7003, 'Fire giant', 'It\'s an NPC.', 111, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 4666, 4664, 4668, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 111, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '449,451,450', NULL, NULL, NULL), +(7004, 'Fire giant', NULL, 111, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 4666, 4664, 4668, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 111, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '449,451,450', NULL, NULL, NULL), +(7005, 'Big wolf', 'Must be the pack leader.', 21, 60, 60, 62, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6559, 0, 6558, NULL, 0, 0, NULL, NULL, NULL, NULL, 92, 74, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7021, 'Platypus', 'A most unlikely creature.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7024, 'Baby platypus', 'A most unlikely creature.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7031, 'Wimpy bird', 'An ogre snack with wings.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, 7, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7039, 'Diseased kebbit', 'A shy creature with a toxic bite.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7049, 'Ogress banker', 'Fit to wear the uniform?', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7051, 'Chief Tess', 'She walks as if she owns the place.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7078, 'Ogress champion', 'A fearsome adversary with no sense of humour.', 68, 48, 48, 48, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 8636, 0, 8640, NULL, 0, 0, NULL, NULL, NULL, 6, 64, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7079, 'Ogress warrior', 'Irascible', 64, 45, 45, 45, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 8636, 0, 8640, NULL, 0, 0, NULL, NULL, NULL, 6, 64, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7080, 'Ogress warrior', 'Irascible', 64, 45, 45, 45, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 8637, 0, 8641, NULL, 0, 0, NULL, NULL, NULL, 6, 64, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7081, 'Ogress', 'A large and contentious lady ogre.', 60, 42, 42, 42, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 8636, 0, 8640, NULL, 0, 0, NULL, NULL, NULL, 6, 64, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7082, 'Ogress', 'A large and contentious lady ogre.', 60, 42, 42, 42, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 8637, 0, 8641, NULL, 0, 0, NULL, NULL, NULL, 6, 64, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7084, 'Eucalyptus ent', 'Dead stone defending a dead throne room.', 145, 51, 51, 51, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7085, 'Eucalyptus ent', 'Dead stone defending a dead throne room.', 142, 54, 54, 54, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7086, 'Eucalyptus ent', 'Dead stone defending a dead throne room.', 162, 57, 57, 57, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7105, 'Chaos druid', 'A crazy, evil druid.', 20, 20, 20, 10, 10, 20, NULL, NULL, NULL, NULL, 5, NULL, NULL, 422, 404, 9055, NULL, 422, 422, 105, 106, 107, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7106, 'Thug', 'Low on brains', 5, 7, 7, 9, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 386, 0, 836, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(7107, 'Thug', 'Low on brains', 5, 7, 7, 9, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 386, 0, 836, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(7108, 'Thug', 'Low on brains', 5, 7, 7, 9, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 386, 0, 836, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(7109, 'Thug', 'Low on brains', 5, 7, 7, 9, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 386, 0, 836, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(7110, 'Thug', 'Low on brains', 5, 7, 7, 9, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 386, 0, 836, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(7111, 'Thug', 'Low on brains', 5, 7, 7, 9, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 386, 0, 836, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES +(7112, 'Thug', 'Low on brains', 5, 7, 7, 9, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 386, 0, 836, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(7113, 'Thug', 'Low on brains', 5, 7, 7, 9, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 386, 0, 836, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(7114, 'Thug', 'Low on brains', 5, 7, 7, 9, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 386, 0, 836, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(7115, 'Thaki the delivery dwarf', 'He seems to be enjoying his time in the bar.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7120, 'Tyras guard', 'One of King Tyras\'s men.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7125, 'Rabbit', 'A hungry-looking rabbit.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7128, 'Farmer', 'A gnome farmer.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7129, 'Farmer', 'A gnome farmer.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7130, 'Farmer', 'A gnome farmer.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7131, 'Farmer Blinkin', 'The head farmer', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7132, 'Mrs. Winkin', 'Owner of this homestead.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7133, 'Bork', 'That\'s one big Ork... ', 300, 100, 90, 80, 1, NULL, '200,120,100,300,300,120,400,500,300,200,300,400,200,90,0', NULL, NULL, 60, 6, NULL, 64, 8754, 8755, 8756, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(7134, 'Bork', NULL, 300, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 8, NULL, 64, 8754, 8755, 8756, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7135, 'Ork legion', 'Aww, aren\'t they the cutest li - Argh!', 100, 68, 68, 57, 68, NULL, '5,10,3,5,3,5,5,5,10,0,0,0,0,0,0', NULL, 1, 60, NULL, NULL, NULL, 8760, 0, 8761, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7137, 'Dagon\'hai Elite', 'A powerful wizard.', 70, 1, 90, 40, 1, 90, '220,190,140,120,120,130,90,120,120,200,100,154,150,93,190', NULL, NULL, NULL, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, 11, NULL, NULL, NULL, NULL), +(7138, 'Dagon\'hai Monk', 'A monk of the Dagon\'hai.', 88, 84, 84, 80, 1, 98, NULL, NULL, NULL, 60, 5, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7139, 'Dagon\'hai Monk', 'A monk of the Dagon\'hai.', 88, 84, 84, 80, 1, 98, NULL, NULL, NULL, 60, 5, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7140, 'Dagon\'hai Monk', 'A monk of the Dagon\'hai.', 88, 84, 84, 80, 1, 98, NULL, NULL, NULL, 60, 5, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7141, 'null', 'He seems to have gone mad.', 4, 25, 25, 25, 25, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 426, 0, 836, NULL, 0, 426, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7142, 'Guard', 'He thumps people who cheat.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, '511,513,512', NULL, NULL, NULL), +(7144, 'Gublinch jailmate', 'An imprisoned gublinch.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7145, 'Gublinchette jailmate', 'An imprisoned gublinch.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7146, 'Gublinchette jailmate', 'An imprisoned gublinch.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7147, 'Gublinch jailmate', 'An imprisoned gublinch.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7148, 'Gublinch jailmate', 'An imprisoned gublinch.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7149, 'Gublinch jailmate', 'An imprisoned gublinch.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7150, 'Gublinch jailmate', 'An imprisoned gublinch.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7152, 'Student', 'A person sitting an exam.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7156, 'Student', 'A person sitting an exam.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7157, 'Student', 'A person sitting an exam.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7158, 'Cockroach drone', 'A household pest.', 4, 3, 3, 3, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 8785, 0, 8788, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7159, 'Cockroach worker', 'Eurgh! A big bug.', 31, 22, 22, 70, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 8787, 0, 8790, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7160, 'Cockroach soldier', 'Euww! A giant bug.', 97, 38, 26, 70, 1, NULL, '10,10,10,5,0,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 60, 5, NULL, NULL, 8786, 0, 8789, NULL, 0, 0, NULL, NULL, NULL, 8, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7161, 'Mugger', NULL, 8, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7162, 'Mugger', NULL, 8, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 422, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7202, 'Rat', 'A popular dwarven delicacy.', 5, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 4933, 4934, 4935, NULL, 4933, 4933, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(7204, 'Rat', 'A popular dwarven delicacy.', 5, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 4933, 4934, 4935, NULL, 4933, 4933, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(7206, 'Cockroach', 'It seems to have eaten a lot of chocolate.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7207, 'Spider', 'It\'s searching for crumbs of chocolate.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7209, 'Snail', 'It seems to have eaten a lot of chocolate.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7210, 'Baby monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(7211, 'Monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(7212, 'Baby monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(7213, 'Monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(7214, 'Baby monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(7215, 'Monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(7216, 'Baby monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(7217, 'Monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(7218, 'Baby monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(7219, 'Monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(7220, 'Baby monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(7221, 'Monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(7222, 'Baby monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(7223, 'Monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(7224, 'Baby monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(7225, 'Monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(7226, 'Baby monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(7227, 'Monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(7228, 'Baby monkey', 'It\'s a tiny', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(7229, 'Baby monkey', 'It\'s a tiny', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(7230, 'Baby monkey', 'It\'s a tiny', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(7231, 'Baby monkey', 'It\'s a tiny', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(7232, 'Baby monkey', 'It\'s a tiny', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(7233, 'Baby monkey', 'It\'s a tiny', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(7234, 'Baby monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(7235, 'Baby monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(7236, 'Baby monkey', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '629,631,630', NULL, NULL, NULL), +(7275, 'Baby Raccoon', 'A stripy little baby raccoon.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7285, 'Baby gecko', 'It\'s so adorably tiny!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7329, 'Swamp titan', NULL, 556, 1, 1, 78, 70, 70, '60,60,60,60,50,50,100,200,200,28,100,100,70,70,70', NULL, NULL, 0, NULL, NULL, NULL, 8222, 8224, 8226, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7330, 'Swamp titan', 'Do you hear duelling banjos?', 117, 60, 60, 65, 65, 65, '60,60,60,60,50,50,100,200,200,28,100,100,70,70,70', NULL, NULL, 0, NULL, NULL, NULL, 8222, 0, 8226, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7331, 'Spirit mosquito', 'It buzzes and bites. Nasty.', 43, 28, 24, 25, 25, 21, '45,49,42,39,47,46,29,43,51,16,53,10,0,0,0', NULL, 1, 50, NULL, NULL, NULL, 8032, 8034, 8033, NULL, 8032, 8032, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7332, 'Spirit mosquito', 'It buzzes and bites. Nasty.', 43, 28, 24, 25, 25, 21, '45,49,42,39,47,46,29,43,51,16,53,10,0,0,0', NULL, 1, 50, NULL, NULL, NULL, 8032, 8034, 8033, NULL, 8032, 8032, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7334, 'Void spinner', 'It spins.', 48, 34, 34, 34, 34, 34, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 8172, 0, 8176, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7335, 'Forge regent', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7863, 7865, 7864, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7336, 'Forge regent', 'This one will burn right through the net!', 108, 60, 60, 60, 60, 60, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7863, 0, 7864, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7337, 'Spirit larupia', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 5228, 5227, 5230, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7338, 'Spirit larupia', 'Fast cat is fast.', 81, 50, 50, 50, 50, 50, NULL, NULL, NULL, 0, NULL, NULL, NULL, 5228, 0, 5230, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7339, 'Geyser titan', 'It\'ll kill your enemies, and makes a great cup of tea.', 620, 70, 70, 70, 70, 70, '115,115,115,110,110,102,95,110,110,105,78,120,115,120,120', NULL, 1, 50, NULL, NULL, NULL, 7879, 7878, 7880, NULL, 422, 422, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7340, 'Geyser titan', 'It\'ll kill your enemies, and makes a great cup of tea.', 620, 70, 70, 70, 70, 70, '115,115,115,110,110,102,95,110,110,105,78,120,115,120,120', NULL, 1, 50, NULL, NULL, NULL, 7879, 7878, 7880, NULL, 422, 422, NULL, NULL, NULL, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7341, 'Lava titan', NULL, 528, 1, 1, 1, 1, NULL, '100,120,90,100,90,90,40,50,0,0,0,0,0,0,0', NULL, NULL, 0, NULL, NULL, NULL, 7980, 7981, 7692, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7342, 'Lava titan', 'Made of lava.', 115, 65, 65, 65, 65, 65, '100,120,90,100,90,90,40,50,0,0,0,0,0,0,0', NULL, NULL, 0, NULL, NULL, NULL, 7980, 0, 7979, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7343, 'Steel titan', 'The King of the Titans!', 750, 70, 70, 70, 70, 70, '105,105,105,100,110,102,95,110,110,105,78,120,115,120,120', NULL, 1, 15, NULL, NULL, NULL, 8183, 8185, 8184, NULL, 8183, 8183, NULL, NULL, NULL, 10, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7344, 'Steel titan', 'The King of the Titans!', 750, 70, 70, 70, 70, 70, '105,105,105,100,110,102,95,110,110,105,78,120,115,120,120', NULL, 1, 15, NULL, NULL, NULL, 8183, 8185, 8184, NULL, 8183, 8183, NULL, NULL, NULL, 10, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7345, 'Obsidian golem', 'Four fists can make quite an impression IN someone...', 10, 60, 60, 60, 60, 60, '100,120,90,100,90,90,40,50,0,0,0,0,0,0,0', NULL, NULL, 0, NULL, NULL, NULL, 8050, 8051, 8052, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7346, 'Obsidian golem', 'Four fists can make quite an impression IN someone...', 104, 60, 60, 60, 60, 60, '100,120,90,100,90,90,40,50,0,0,0,0,0,0,0', NULL, NULL, 0, NULL, NULL, NULL, 8050, 0, 8052, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7347, 'Talon beast', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 5989, 5988, 5990, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7348, 'Talon beast', 'If a normal black cat is bad luck', 110, 60, 60, 60, 60, 60, NULL, NULL, NULL, 0, NULL, NULL, NULL, 5989, 0, 5990, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7349, 'Abyssal titan', NULL, 667, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7693, 7691, 7979, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7350, 'Abyssal titan', 'Big', 125, 70, 70, 70, 70, 70, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7693, 0, 7692, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7352, 'Void torcher', 'It torches.', 48, 34, 34, 34, 34, 34, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 8235, 0, 8236, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7353, 'Giant chinchompa', NULL, 1, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7755, 7753, 7758, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7354, 'Giant chinchompa', 'Looks a little...volatile.', 41, 29, 29, 29, 29, 29, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7755, 0, 7758, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7355, 'Fire titan', 'Scorching!', 476, 40, 30, 40, 30, 40, '64,45,76,82,120,84,140,120,106,89,113,80,0,0,0', NULL, 1, 50, 5, NULL, NULL, 7834, 7832, 7833, NULL, 7834, 7834, NULL, NULL, NULL, 10, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7356, 'Fire titan', 'Scorching!', 476, 40, 30, 40, 30, 40, '64,45,76,82,208,84,221,231,179,89,113,23,0,0,0', NULL, 1, 50, 5, NULL, NULL, 7834, 7832, 7833, NULL, 7834, 7834, NULL, NULL, NULL, 10, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7357, 'Moss titan', 'Gathers rolling stones to bash people with.', 476, 40, 30, 40, 30, 40, '64,45,76,82,120,84,140,120,106,89,113,80,0,0,0', NULL, 1, 50, 5, NULL, NULL, 7844, 7832, 7843, NULL, 7834, 7834, NULL, NULL, NULL, 10, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7358, 'Moss titan', 'Gathers rolling stones to bash people with.', 476, 40, 30, 40, 30, 40, '64,45,76,82,120,84,140,120,106,89,113,80,0,0,0', NULL, 1, 50, 5, NULL, NULL, 7844, 7832, 7843, NULL, 7834, 7834, NULL, NULL, NULL, 10, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7359, 'Ice titan', 'Frosty the highly violent snowman.', 476, 40, 30, 40, 30, 40, '64,45,76,82,120,84,140,120,106,89,113,80,0,0,0', NULL, 1, 50, 5, NULL, NULL, 7845, 7832, 7846, NULL, 7834, 7834, NULL, NULL, NULL, 10, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7360, 'Ice titan', 'Frosty the highly violent snowman.', 476, 40, 30, 40, 30, 40, '64,45,76,82,120,84,140,120,106,89,113,80,0,0,0', NULL, 1, 50, 5, NULL, NULL, 7845, 7832, 7846, NULL, 7834, 7834, NULL, NULL, NULL, 10, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7361, 'Spirit Tz-Kih', NULL, 62, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, 3, NULL, NULL, 8257, 8256, 8258, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7362, 'Spirit Tz-Kih', 'This bat burned down the belfry.', 31, 22, 22, 22, 22, 22, NULL, NULL, NULL, 0, 3, NULL, NULL, 8257, 0, 8258, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7363, 'Spirit graahk', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 5228, 5227, 5230, NULL, NULL, NULL, 1367, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7364, 'Spirit graahk', 'Those spikes are pretty big!', 81, 50, 50, 50, 50, 50, NULL, NULL, NULL, 0, NULL, NULL, NULL, 5229, 0, 5230, NULL, 0, 0, 1367, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7365, 'Spirit kyatt', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 5228, 5227, 5230, NULL, NULL, NULL, 1365, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7366, 'Spirit kyatt', 'Those teeth are pretty big!', 81, 50, 50, 50, 50, 50, NULL, NULL, NULL, 0, NULL, NULL, NULL, 5228, 0, 5230, NULL, 0, 0, 1365, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7368, 'Void shifter', 'It shifts.', 48, 34, 34, 34, 34, 34, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 8131, 0, 8133, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7371, 'Void ravager', 'It ravages.', 48, 34, 34, 34, 34, 34, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 8086, 0, 8087, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7373, 'Ravenous locust', 'It\'s like a little stomach on wings.', 100, 60, 60, 60, 60, 60, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7994, 0, 7996, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7374, 'Ravenous locust', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 7994, 7995, 7996, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7375, 'Iron titan', 'He is an iron man!', 694, 65, 65, 65, 65, 65, '120,130,100,109,80,120,102,90,103,80,100,108,105,66,90', NULL, NULL, 0, NULL, NULL, NULL, 7946, 7948, 7947, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7376, 'Iron titan', 'He is an iron man!', 694, 65, 65, 65, 65, 65, '120,130,100,109,80,120,102,90,103,80,100,108,105,66,90', NULL, NULL, 0, NULL, NULL, NULL, 7946, 7948, 7947, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, 0, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0,0,0', NULL, NULL, NULL), +(7378, 'Pyrelord', 'Where did I put the marshmallows?', 65, 46, 46, 46, 46, 46, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 8080, 0, 8078, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7379, 'Elfinlocks', NULL, 120, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 8965, 8966, 8967, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7380, 'Missi Sissi', NULL, 120, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 8965, 8966, 8967, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7381, 'Missi Sissi', NULL, 75, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 8955, 8957, 8956, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7382, 'Uberlass', NULL, 75, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 8955, 8957, 8956, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7398, 'Elisabeta', 'The vengeful spirit of one who died within Daemonheim.', 7, 25, 25, 25, 25, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7417, 'Rat', 'A popular dwarven delicacy.', 2, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 2705, 2706, 2707, NULL, 2705, 2705, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '3102,3104,3103', NULL, NULL, NULL), +(7425, 'Wigglewoo', 'An impling manager: what a terrifying thought!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7426, 'Orangeowns', 'This worker looks after the incubator.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7438, 'Elf warrior', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(7439, 'Elf warrior', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(7440, 'Elf warrior', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(7441, 'Elf warrior', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL), +(7443, 'Eudav', 'He holds up passers by.', 11, 8, 8, 8, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 386, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 7, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7459, 'Fairtrade', NULL, 75, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7460, 'Teapotspout', NULL, 75, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7461, 'Rat', 'A popular dwarven delicacy.', 5, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, 4933, 4934, 4935, NULL, 4933, 4933, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(7462, 'Hotwater', 'It\'s bubbling, gross.', 120, 99, 99, 99, 1, NULL, '20,20,20,20,20,20,20,20,20,20,20,20,45,20,0', NULL, NULL, 20, 5, NULL, NULL, 9130, 9132, 9131, NULL, 9130, 9130, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7463, 'Hotwater', 'It\'s bubbling, gross.', 120, 99, 99, 99, 1, NULL, '20,20,20,20,20,20,20,20,20,20,20,20,45,20,0', NULL, NULL, 20, 5, NULL, NULL, 9130, 9132, 9131, NULL, 9130, 9130, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7475, 'Lady Seenit', 'His usual sunny disposition is not in evidence.', 42, 30, 30, 30, 30, 30, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 10, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7476, 'Berrybree', NULL, 50, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7477, 'Stuffstuffer', NULL, 50, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7479, 'Learking', NULL, 60, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7480, 'Rachael', NULL, 70, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7481, 'Cool Mom227', 'You clearly can\'t live on treasure alone.', 42, 30, 30, 30, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 5491, NULL, 0, 0, NULL, NULL, NULL, 6, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7482, 'Purepker895', 'A testament to the effect of greed.', 42, 30, 30, 30, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 5491, NULL, 0, 0, NULL, NULL, NULL, 6, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7483, 'Pkmaster0036', 'He wanted loot', 42, 30, 30, 30, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 5491, NULL, 0, 0, NULL, NULL, NULL, 6, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7484, 'Cow1337killr', 'Eternally looking for that big payday.', 42, 30, 30, 30, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 5491, NULL, 0, 0, NULL, NULL, NULL, 6, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7485, 'Mathdude', 'No more tea-breaks for this one.', 42, 30, 30, 30, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 5491, NULL, 0, 0, NULL, NULL, NULL, 6, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7486, 'Mathdude', 'Even in death you can smell his feet.', 42, 30, 30, 30, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 5491, NULL, 0, 0, NULL, NULL, NULL, 6, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7487, '1337sp34kr', 'An anatomist\'s dream.', 42, 30, 30, 30, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 5491, NULL, 0, 0, NULL, NULL, NULL, 6, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7488, '1337sp34kr', 'A hand seems to be gripping his spine through his chest. Ouch.', 42, 30, 30, 30, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 5491, NULL, 0, 0, NULL, NULL, NULL, 6, 75, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7492, 'Sarah Domin', 'A desert dweller taken to banditry.', 42, 30, 30, 30, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9705, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7493, 'Sarah Domin', 'Calls himself an archaeologist.', 42, 30, 30, 30, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9715, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7494, 'Sue Spammers', 'He hasn\'t found much of use', 42, 30, 30, 30, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9705, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7495, 'Killerwail', 'An amateur historian with added greed.', 42, 30, 30, 30, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9715, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7496, 'Wise Old Man', 'It all started with her love of genealogy.', 42, 30, 30, 30, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 9705, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7497, 'Sabre-toothed kyatt', 'A rocky horror.', 38, 27, 27, 27, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7500, 'Cerulean twitch', 'This dung beetle has mistaken you for its staple diet.', 42, 30, 30, 30, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 6, 70, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7501, 'Abone', 'It\'s looking unwell - probably something it ate.', 42, 30, 30, 30, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 6, 70, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7502, 'Mythmaster', 'Once a valuable contributor to the ecosystem.', 42, 30, 30, 30, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 6, 70, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7503, 'Donkey Wrong', 'This is what happens if you play with your food.', 42, 30, 30, 30, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0, 0, NULL, NULL, NULL, 6, 70, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7504, 'Creapantic', 'He likes a good fight', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7505, 'Frondlike', 'He likes a good fight', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7506, 'Happy Spud', 'His favourite must be winning.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7507, 'Nobodyhere', 'Blood-thirsty and enthusiastic.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7508, 'Bluehairlass', 'Probably discussing the strengths and weaknesses of the fighting slaves.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7510, 'Ilikekebabs', 'His favourite must be winning.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7511, 'Trunka Lex', 'His favourite must be winning.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7512, 'Val Razz', 'Probably discussing the strengths and weaknesses of the fighting slaves.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7513, 'Abstractclas', 'Probably discussing the strengths and weaknesses of the fighting slaves.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7514, 'Bigbluebox', 'Bloodthirsty and enthusiastic.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7515, 'Funorbrox', 'Bloodthirsty and enthusiastic.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7518, 'Morrisnorris', 'He\'s asleep.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7519, 'Matt Blitzer', 'He\'s propping the bar up. Or is it the other way round?', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7520, 'Ketchuppl0x', 'He demands to have some booze.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7528, 'Redheadmonky', NULL, 22, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 395, 425, 836, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7532, '3sacrowd', 'It\'s an NPC.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7551, 'Portal', 'Not somewhere I want to go...', 250, 1, 1, 90, 1, 70, '200,200,200,100,100,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 125, 90, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7552, 'Portal', 'Not somewhere I want to go...', 250, 1, 1, 90, 1, 50, '200,200,200,200,50,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 125, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7553, 'Portal', 'Not somewhere I want to go...', 250, 1, 1, 90, 1, 90, '200,200,100,200,100,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 125, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7554, 'Portal', 'Not somewhere I want to go...', 250, 1, 1, 90, 1, 90, '100,100,200,200,100,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 125, 5, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7555, 'Portal', 'The Void Knight will soon weaken the shield.', 250, 1, 1, 30, 1, 30, '100,100,100,50,50,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 125, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7556, 'Portal', 'The Void Knight will soon weaken the shield.', 250, 1, 1, 30, 1, 15, '100,100,100,100,25,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 125, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7557, 'Portal', 'The Void Knight will soon weaken the shield.', 250, 1, 1, 30, 1, 30, '100,100,50,100,50,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 125, 5, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7558, 'Portal', 'The Void Knight will soon weaken the shield.', 250, 1, 1, 30, 1, 30, '50,50,100,100,50,0,0,0,0,0,0,0,0,0,0', NULL, NULL, 125, 5, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7559, 'Brawler', 'Looks after your Farming tools.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7560, 'Lostme', 'Looks after your Farming tools.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7561, 'Chiercat', 'Looks after your Farming tools.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7562, 'Skydischarge', 'Looks after your Farming tools.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7563, 'Agplus', 'Looks after your Farming tools.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7564, 'Distantthin', 'Looks after your Farming tools.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7565, 'Allmarshes', 'Looks after your Farming tools.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7566, 'Explosive67', 'Looks after your Farming tools.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7569, 'Alpha1beta', 'Looks after your Farming tools.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7570, 'Solltalk', 'Enjoys locking up animals in small pens.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7571, 'Hm Val', 'Enjoys locking up animals in small pens.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7572, 'Wizzydumped', 'He looks like the type of guy who would mind monkeys.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7573, 'Oddskater', 'He looks like the type of guy who would mind monkeys.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7580, 'Poledragon', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '408,410,409', NULL, NULL, NULL), +(7582, 'Al Truism', 'He likes inflicting pain.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7583, 'Ohhhhdude', 'The Don of penguins.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7585, 'Torcher', 'A penguin pushing paper', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `npc_configs` (`id`, `name`, `examine`, `lifepoints`, `attack_level`, `strength_level`, `defence_level`, `range_level`, `magic_level`, `bonuses`, `poison_amount`, `poison_immune`, `respawn_delay`, `attack_speed`, `movement_radius`, `agg_radius`, `melee_animation`, `defence_animation`, `death_animation`, `spawn_animation`, `magic_animation`, `range_animation`, `start_gfx`, `projectile`, `end_gfx`, `weakness`, `slayer_task`, `slayer_exp`, `combat_style`, `poisonous`, `aggressive`, `start_height`, `prj_height`, `end_height`, `clue_level`, `spell_id`, `combat_audio`, `protect_style`, `force_talk`, `safespot`) VALUES +(7586, 'Torcher', 'A penguin pushing paper', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7593, 'Shifter', 'He\'s a little rough around the edges.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7605, 'Banker', 'He has unbelievable strength!', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7606, 'Vyrewatch', NULL, 95, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7607, 'Vyrewatch', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7608, 'Vyrewatch', NULL, 120, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7609, 'Vyrewatch', NULL, 130, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7614, 'Vyrewatch', NULL, 95, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7615, 'Vyrewatch', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7616, 'Vyrewatch', NULL, 120, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7617, 'Vyrewatch', NULL, 130, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7618, 'Vyrewatch', NULL, 95, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7619, 'Vyrewatch', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7620, 'Vyrewatch', NULL, 120, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7621, 'Vyrewatch', NULL, 130, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7626, 'Vyrewatch', NULL, 95, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7627, 'Vyrewatch', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7628, 'Vyrewatch', NULL, 120, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7629, 'Vyrewatch', NULL, 130, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7631, 'Vyrewatch', NULL, 95, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7632, 'Vyrewatch', NULL, 120, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7634, 'Vyrewatch', NULL, 95, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7635, 'Vyrewatch', NULL, 120, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7640, 'Skeletal hand', 'Ew it\'s still alive.', 90, 85, 85, 85, 1, NULL, '15,15,15,15,15,15,15,15,15,15,15,15,15,15,15', NULL, NULL, 20, 5, NULL, NULL, 9125, 9127, 9126, NULL, 9125, 9125, NULL, NULL, NULL, 9, 21, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7641, 'Zombie hand', 'Ew it\'s still alive.', 90, 75, 75, 75, 1, NULL, '15,15,15,15,15,15,15,15,15,15,15,15,15,15,15', NULL, NULL, 20, 5, NULL, NULL, 9125, 9127, 9126, NULL, 9125, 9125, NULL, NULL, NULL, 9, 21, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7642, 'Mutated bloodveld', 'A bloodveld with a very mixed heritage.', 112, 56, 56, 56, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 9102, 0, 9131, NULL, 0, 0, NULL, NULL, NULL, 9, 10, 206, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7643, 'Mutated bloodveld', 'A bloodveld with a very mixed heritage.', 116, 58, 58, 58, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 9102, 0, 9131, NULL, 0, 0, NULL, NULL, NULL, 9, 10, 206, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7644, 'Zaromark Sliver', NULL, 88, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7645, 'Zaromark Sliver', NULL, 88, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7646, 'Zaromark Sliver', NULL, 88, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7647, 'Zaromark Sliver', NULL, 88, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7648, 'Zaromark Sliver', NULL, 88, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7649, 'Zaromark Sliver', NULL, 88, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7650, 'Zaromark Sliver', NULL, 88, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7651, 'Zaromark Sliver', NULL, 88, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7654, 'Fistandantilus', NULL, 65, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7655, 'Fistandantilus', NULL, 65, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7656, 'Fistandantilus', NULL, 65, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7657, 'Fistandantilus', NULL, 65, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7658, 'Fistandantilus', NULL, 65, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7659, 'Fistandantilus', NULL, 65, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7660, 'Fistandantilus', NULL, 65, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7661, 'Fistandantilus', NULL, 65, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7682, 'Vyrewatch', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7683, 'Vyrewatch', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7691, 'Vyrewatch', NULL, 95, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7692, 'Vyrewatch', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7693, 'Vyrewatch', NULL, 120, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7694, 'Vyrewatch', NULL, 120, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7695, 'Vyrewatch', NULL, 95, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7696, 'Vyrewatch', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7697, 'Vyrewatch', NULL, 120, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7698, 'Vyrewatch', NULL, 120, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7699, 'Vyrewatch', NULL, 95, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7700, 'Vyrewatch', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7701, 'Vyrewatch', NULL, 120, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7702, 'Vyrewatch', NULL, 130, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7703, 'Vyrewatch', NULL, 95, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7704, 'Vyrewatch', NULL, 105, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7705, 'Vyrewatch', NULL, 120, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7706, 'Vyrewatch', NULL, 130, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7711, 'Temple guardian', 'Looks like a big ugly dog.', 34, 24, 24, 24, 1, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 6565, 0, 6564, NULL, 0, 0, NULL, NULL, NULL, 9, 27, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7713, 'Baby icefiend', NULL, 50, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 8080, 8084, 8078, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7714, 'Icefiend', 'A small ice demon.', 35, 1, 1, 25, 1, 25, NULL, NULL, NULL, 60, 5, NULL, NULL, 8080, 0, 8078, NULL, 0, 0, NULL, NULL, NULL, 5, 46, NULL, NULL, NULL, 1, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(7715, 'Icefiend', 'The icefiend seems to be melting.', 35, 1, 1, 25, 1, 25, NULL, NULL, NULL, 60, 5, NULL, NULL, 8080, 0, 8078, NULL, 0, 0, NULL, NULL, NULL, 5, 46, NULL, NULL, NULL, 1, NULL, NULL, NULL, 0, NULL, NULL, NULL, NULL, NULL), +(7716, 'null', 'The icefiend seems to be melting.', 35, 1, 1, 25, 1, 25, NULL, NULL, NULL, 60, 5, NULL, NULL, 8080, 0, 8078, NULL, 0, 0, NULL, NULL, NULL, 5, 46, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7727, 'Monk', 'A holy man.', 17, 12, 12, 12, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 422, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 9, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '511,513,512', NULL, NULL, NULL), +(7736, 'Baby icefiend', NULL, 50, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 5, NULL, NULL, 8080, 8084, 8078, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7740, 'Jiggling crate', 'Is it full of rats?', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '703,705,704', NULL, NULL, NULL), +(7741, 'Three little kittens', 'A warrior who has been long forgotten.', 5, 30, 30, 25, 25, 25, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 836, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7747, 'TzHaar-Xil-Tog', 'It looks upset.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7752, 'TzHaar-Mej-Lor', 'A TzHaar librarian.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7756, 'Library assistant', 'A TzHaar-Hur stamping stone tablets.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7767, 'TzHaar-Hur', 'Looks like a craftsman of some kind.', 80, 50, 50, 50, 1, 50, '30,30,80,85,80,40,40,60,38,0,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 9286, 9287, 9288, NULL, 9286, 9286, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7768, 'TzHaar-Hur', 'Looks like a craftsman of some kind.', 80, 50, 50, 50, 1, 50, '30,30,80,85,80,40,40,60,38,0,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 9286, 9287, 9288, NULL, 9286, 9286, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7769, 'TzHaar-Hur', 'Looks like a craftsman of some kind.', 80, 50, 50, 50, 1, 50, '30,30,80,85,80,40,40,60,38,0,0,0,0,0,0', NULL, NULL, NULL, 5, NULL, NULL, 9286, 9287, 9288, NULL, 9286, 9286, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7772, 'Lava monster', 'A monster made of magma.', 54, 28, 28, 38, 38, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 9337, 0, 9340, NULL, 0, 0, NULL, NULL, NULL, 0, NULL, NULL, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7773, 'Fire monster', 'A monster like many others', 54, 28, 28, 38, 38, NULL, NULL, NULL, NULL, 60, NULL, NULL, NULL, 9341, 0, 9344, NULL, 0, 0, NULL, NULL, NULL, 0, NULL, NULL, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7823, 'Wall Beast', 'A big, scary hand! ', 105, 38, 38, 38, 1, NULL, NULL, NULL, NULL, 60, 6, 1, NULL, 1802, 1803, 1804, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 105, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7891, 'Melee dummy', 'A melee training dummy', 15, 1, 1, 1, 1, NULL, NULL, NULL, NULL, 60, 6, NULL, NULL, 94, 0, 97, NULL, 0, 0, NULL, NULL, NULL, 6, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7958, 'Smelting Tutor', 'A man of his craft.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(7959, 'Smelting Tutor', 'A master of his craft.', 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, 5, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(8133, 'Corporeal Beast', 'A vision of supernatural horror.', 2000, 95, 95, 95, 95, 95, '380,250,350,400,650,450,920,850,750,800,1500,250,250,275,200', NULL, 1, 80, 6, 64, 64, 10058, 10386, 10385, NULL, 10053, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(8149, 'Armoured zombie', 'He sure looks grave.', 62, 50, 50, 50, 50, NULL, '30,30,80,85,80,40,40,60,38,0,0,0,0,0,0', NULL, NULL, 35, 6, NULL, NULL, 5571, 5574, 5575, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(8150, 'Armoured zombie', 'This is a rotten one.', 62, 50, 50, 50, 50, NULL, '30,30,80,85,80,40,40,60,38,0,0,0,0,0,0', NULL, NULL, 35, 6, NULL, NULL, 5571, 5574, 5575, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(8151, 'Armoured zombie', 'It hasn\'t quite gotten around to dying.', 62, 50, 50, 50, 50, NULL, '30,30,80,85,80,40,40,60,38,0,0,0,0,0,0', NULL, NULL, 35, 6, NULL, NULL, 5571, 5574, 5575, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 30, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, '931,923,922', NULL, NULL, NULL), +(8349, 'Tormented demon', 'Lucien must be incredibly powerful if he can bind such demons to his will.', 326, 85, 85, 85, 85, 85, '112,132,113,111,245,167,394,346,213,349,167,65,39,65,58', NULL, 1, NULL, 6, NULL, NULL, 10922, 10923, 10924, NULL, 10918, 10919, NULL, NULL, NULL, NULL, NULL, 136, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, 1), +(8350, 'Tormented demon', 'Lucien must be incredibly powerful if he can bind such demons to his will.', 326, 85, 85, 85, 85, 85, '112,132,113,111,245,167,394,346,213,349,167,65,39,65,58', NULL, 1, NULL, 6, NULL, NULL, 10922, 10923, 10924, NULL, 10918, 10919, NULL, NULL, NULL, NULL, NULL, 136, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, 1), +(8351, 'Tormented demon', 'Lucien must be incredibly powerful if he can bind such demons to his will.', 326, 85, 85, 85, 85, 85, '112,132,113,111,245,167,394,346,213,349,167,65,39,65,58', NULL, 1, NULL, 6, NULL, NULL, 10922, 10923, 10924, NULL, 10918, 10919, NULL, NULL, NULL, NULL, NULL, 136, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 1), +(8352, 'Tormented demon', 'Lucien must be incredibly powerful if he can bind such demons to his will.', 326, 85, 85, 85, 85, 85, '112,132,113,111,245,167,394,346,213,349,167,65,39,65,58', NULL, 1, NULL, 6, NULL, NULL, 10922, 10923, 10924, NULL, 10918, 10919, NULL, NULL, NULL, NULL, NULL, 136, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, 1), +(8353, 'Tormented demon', 'Lucien must be incredibly powerful if he can bind such demons to his will.', 326, 85, 85, 85, 85, 85, '112,132,113,111,245,167,394,346,213,349,167,65,39,65,58', NULL, 1, NULL, 6, NULL, NULL, 10922, 10923, 10924, NULL, 10918, 10919, NULL, NULL, NULL, NULL, NULL, 136, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, 1), +(8354, 'Tormented demon', 'Lucien must be incredibly powerful if he can bind such demons to his will.', 326, 85, 85, 85, 85, 85, '112,132,113,111,245,167,394,346,213,349,167,65,39,65,58', NULL, 1, NULL, 6, NULL, NULL, 10922, 10923, 10924, NULL, 10918, 10919, NULL, NULL, NULL, NULL, NULL, 136, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 1), +(8355, 'Tormented demon', 'Lucien must be incredibly powerful if he can bind such demons to his will.', 326, 85, 85, 85, 85, 85, '112,132,113,111,245,167,394,346,213,349,167,65,39,65,58', NULL, 1, NULL, 6, NULL, NULL, 10922, 10923, 10924, NULL, 10918, 10919, NULL, NULL, NULL, NULL, NULL, 136, 0, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, 1), +(8356, 'Tormented demon', 'Lucien must be incredibly powerful if he can bind such demons to his will.', 326, 85, 85, 85, 85, 85, '112,132,113,111,245,167,394,346,213,349,167,65,39,65,58', NULL, 1, NULL, 6, NULL, NULL, 10922, 10923, 10924, NULL, 10918, 10919, NULL, NULL, NULL, NULL, NULL, 136, 0, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, 1), +(8357, 'Tormented demon', 'Lucien must be incredibly powerful if he can bind such demons to his will.', 326, 85, 85, 85, 85, 85, '112,132,113,111,245,167,394,346,213,349,167,65,39,65,58', NULL, 1, NULL, 6, NULL, NULL, 10922, 10923, 10924, NULL, 10918, 10919, NULL, NULL, NULL, NULL, NULL, 136, 0, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 1), +(8358, 'Tormented demon', 'Lucien must be incredibly powerful if he can bind such demons to his will.', 326, 85, 85, 85, 85, 85, '112,132,113,111,245,167,394,346,213,349,167,65,39,65,58', NULL, 1, NULL, 6, NULL, NULL, 10922, 10923, 10924, NULL, 10918, 10919, NULL, NULL, NULL, NULL, NULL, 136, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, 1), +(8359, 'Tormented demon', 'Lucien must be incredibly powerful if he can bind such demons to his will.', 326, 85, 85, 85, 85, 85, '112,132,113,111,245,167,394,346,213,349,167,65,39,65,58', NULL, 1, NULL, 6, NULL, NULL, 10922, 10923, 10924, NULL, 10918, 10919, NULL, NULL, NULL, NULL, NULL, 136, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, 1), +(8360, 'Tormented demon', 'Lucien must be incredibly powerful if he can bind such demons to his will.', 326, 85, 85, 85, 85, 85, '112,132,113,111,245,167,394,346,213,349,167,65,39,65,58', NULL, 1, NULL, 6, NULL, NULL, 10922, 10923, 10924, NULL, 10918, 10919, NULL, NULL, NULL, NULL, NULL, 136, 2, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 1), +(8361, 'Tormented demon', 'Lucien must be incredibly powerful if he can bind such demons to his will.', 326, 85, 85, 85, 85, 85, '112,132,113,111,245,167,394,346,213,349,167,65,39,65,58', NULL, 1, NULL, 6, NULL, NULL, 10922, 10923, 10924, NULL, 10918, 10919, NULL, NULL, NULL, NULL, NULL, 136, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, 1), +(8362, 'Tormented demon', 'Lucien must be incredibly powerful if he can bind such demons to his will.', 326, 85, 85, 85, 85, 85, '112,132,113,111,245,167,394,346,213,349,167,65,39,65,58', NULL, 1, NULL, 6, NULL, NULL, 10922, 10923, 10924, NULL, 10918, 10919, NULL, NULL, NULL, NULL, NULL, 136, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, 1), +(8363, 'Tormented demon', 'Lucien must be incredibly powerful if he can bind such demons to his will.', 326, 85, 85, 85, 85, 85, '112,132,113,111,245,167,394,346,213,349,167,65,39,65,58', NULL, 1, NULL, 6, NULL, NULL, 10922, 10923, 10924, NULL, 10918, 10919, NULL, NULL, NULL, NULL, NULL, 136, 1, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 1), +(8364, 'Tormented demon', 'Lucien must be incredibly powerful if he can bind such demons to his will.', 326, 85, 85, 85, 85, 85, '112,132,113,111,245,167,394,346,213,349,167,65,39,65,58', NULL, 1, NULL, 6, NULL, NULL, 10922, 10923, 10924, NULL, 10918, 10919, NULL, NULL, NULL, NULL, NULL, 136, 0, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, 1), +(8365, 'Tormented demon', 'Lucien must be incredibly powerful if he can bind such demons to his will.', 326, 85, 85, 85, 85, 85, '112,132,113,111,245,167,394,346,213,349,167,65,39,65,58', NULL, 1, NULL, 6, NULL, NULL, 10922, 10923, 10924, NULL, 10918, 10919, NULL, NULL, NULL, NULL, NULL, 136, 0, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, 1), +(8366, 'Tormented demon', 'Lucien must be incredibly powerful if he can bind such demons to his will.', 326, 85, 85, 85, 85, 85, '112,132,113,111,245,167,394,346,213,349,167,65,39,65,58', NULL, 1, NULL, 6, NULL, NULL, 10922, 10923, 10924, NULL, 10918, 10919, NULL, NULL, NULL, NULL, NULL, 136, 0, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 1), +(8610, 'Callisto', 'I wouldn\'t want to eat his Porridge.', 255, 370, 370, 440, 1, NULL, NULL, NULL, NULL, NULL, 6, NULL, NULL, 4925, 4928, 4929, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1), +(8612, 'Venenatis', 'That\'ll get your arachnophobia going...', 255, 470, 490, 490, 1, 1, NULL, 8, 1, NULL, 6, 40, 40, 5327, 5328, 5329, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1), +(8614, 'Kraken', 'We\'ll fight, until world\'s end.', 255, 99, 99, 128, 99, 128, '128,128,128,232,232,550,550,550,280,320,550,68,68,68', NULL, NULL, 60, 4, 1, NULL, NULL, 3990, 3993, 3991, 3992, NULL, NULL, NULL, NULL, NULL, 96, 255, 2, NULL, NULL, NULL, NULL, NULL, 2, 55, NULL, NULL, NULL, NULL), +(8615, 'Enormous Tentacle', 'We\'ll fight, until world\'s end.', 120, 62, 62, 96, 62, 10, '85,85,85,185,185,400,400,400,180,250,400,1,1,1', NULL, NULL, 40, 4, 1, NULL, NULL, 3619, 3620, NULL, 3618, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, NULL, NULL, 48, NULL, NULL, NULL, NULL), +(8616, 'Whirlpool', 'Goes round and round.', 255, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(8617, 'Whirlpool', 'Goes round and round.', 120, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(8618, 'Cave Kraken', 'Kraken\' good time!', 125, 45, 45, 72, 45, 72, '46,46,46,68,68,350,350,350,140,180,350,42,42,42', NULL, NULL, 50, 5, 1, NULL, NULL, 3990, 3993, NULL, 3992, NULL, NULL, NULL, NULL, NULL, 96, 125, 2, NULL, NULL, NULL, NULL, NULL, 2, 55, NULL, NULL, NULL, NULL), +(8619, 'Whirlpool', 'Goes round and round.', 125, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(8629, 'Lava dragon', 'It\'s dripping with molten lava.', 230, 75, 75, 75, 75, 75, '60,50,110,220,220,90,180,200,100,0,0,0,0,0,0', NULL, NULL, 40, NULL, NULL, NULL, 80, 89, 92, NULL, 80, 80, NULL, NULL, NULL, 3, 9, 200, NULL, NULL, 1, NULL, NULL, NULL, 2, NULL, '408,410,409', NULL, NULL, NULL), +(8631, 'Rewards Trader', NULL, 10, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'Vote for us at www.ariosrsps.com.', NULL), +(8632, 'Cerberus', 'A three-headed gigantic hound. Guardian of the River of Souls', 600, 220, 220, 100, 220, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(8654, 'Black chinchompa', 'Just plain nasty.', 1, 1, 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), +(8656, 'Crazy archaeologist', 'When academics go bad...', 225, 160, 90, 240, 180, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 423, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 235, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1), +(8664, 'Runite Golem', 'Runite that\'s come alive!', 170, 140, 150, 165, 1, NULL, NULL, NULL, NULL, 500, NULL, NULL, NULL, 153, 154, 156, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `npc_drops` +-- + +CREATE TABLE `npc_drops` ( + `npc_id` int(11) UNSIGNED NOT NULL, + `default` longtext DEFAULT NULL, + `main` longtext DEFAULT NULL, + `charm` longtext DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- +-- Dumping data for table `npc_drops` +-- + +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(0, NULL, NULL, NULL), +(1, '{526,1,1,0.0,ALWAYS}', '{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{877,2,12,0.0,COMMON}~{882,7,7,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{995,1,40,0.0,COMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{2699,1,1,0.0,RARE}', ''), +(2, '{526,1,1,0.0,ALWAYS}', '{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{877,2,12,0.0,COMMON}~{882,7,7,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{995,1,40,0.0,COMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{2714,1,1,0.0,RARE}~{2677,1,1,0.0,RARE}', ''), +(3, '{526,1,1,0.0,ALWAYS}', '{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{877,2,12,0.0,COMMON}~{882,7,7,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{995,1,40,0.0,COMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{2713,1,1,0.0,RARE}', ''), +(4, '{526,1,1,0.0,ALWAYS}', '{877,7,7,0.0,COMMON}~{882,2,12,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{995,1,400,0.0,COMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{2703,1,1,0.0,RARE}', ''), +(5, '{526,1,1,0.0,ALWAYS}', '{877,7,7,0.0,COMMON}~{882,2,12,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{995,1,400,0.0,COMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{2716,1,1,0.0,RARE}', ''), +(6, '{526,1,1,0.0,ALWAYS}', '{877,7,7,0.0,COMMON}~{882,2,12,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{995,1,400,0.0,COMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{2701,1,1,0.0,RARE}', ''), +(7, '{526,1,1,0.0,ALWAYS}', '{5345,1,1,0.0,RARE}~{5341,1,1,0.0,UNCOMMON}~{5329,1,1,0.0,COMMON}~{5331,1,1,0.0,RARE}~{5324,4,4,0.0,UNCOMMON}~{5323,4,4,0.0,COMMON}~{5318,1,4,0.0,COMMON}~{5322,4,4,0.0,UNCOMMON}~{5321,4,4,0.0,UNCOMMON}~{12148,4,4,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{562,2,2,0.0,UNCOMMON}~{556,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{882,7,7,0.0,UNCOMMON}~{877,3,12,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{5320,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{217,1,1,0.0,UNCOMMON}~{5319,1,1,0.0,UNCOMMON}~{2678,1,1,0.0,RARE}~{995,3,15,0.0,COMMON}', ''), +(8, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{882,1,1,0.0,UNCOMMON}~{877,2,2,0.0,UNCOMMON}~{877,4,4,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{863,1,1,0.0,UNCOMMON}~{562,1,1,0.0,RARE}~{557,1,1,0.0,RARE}~{554,1,1,0.0,RARE}~{558,1,1,0.0,RARE}~{995,3,3,0.0,COMMON}~{995,5,5,0.0,COMMON}~{1440,1,1,0.0,RARE}~{2747,1,1,0.0,RARE}~{436,1,1,0.0,RARE}', ''), +(9, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2857,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(12, '{526,1,1,0.0,ALWAYS}', '{557,2,5,0.0,UNCOMMON}~{562,2,6,0.0,UNCOMMON}~{563,1,2,0.0,UNCOMMON}~{558,4510,4510,0.0,UNCOMMON}~{554,5,5,0.0,UNCOMMON}~{554,8,8,0.0,UNCOMMON}~{1379,1,1,0.0,UNCOMMON}~{1351,1,1,0.0,COMMON}~{1375,1,1,0.0,COMMON}~{882,5,18,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{884,8,8,0.0,COMMON}~{995,58,315,0.0,COMMON}~{440,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{1917,1,1,0.0,COMMON}~{2142,1,1,0.0,COMMON}~{948,1,1,0.0,COMMON}~{1592,1,1,0.0,UNCOMMON}~{9004,1,1,0.0,RARE}~{1595,1,1,0.0,UNCOMMON}~{1619,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{2714,1,1,0.0,RARE}~{956,1,1,0.0,RARE}~{2349,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{2677,1,1,0.0,RARE}', '{0,1,1,0.9400000000000001,ALWAYS}~{12158,1,1,0.041,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.003,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(13, '', '{556,5,5,0.0,COMMON}~{556,12,12,0.0,COMMON}~{554,5,5,0.0,COMMON}~{554,12,12,0.0,COMMON}~{555,5,5,0.0,COMMON}~{555,12,12,0.0,COMMON}~{557,5,5,0.0,COMMON}~{557,12,12,0.0,COMMON}~{559,5,5,0.0,COMMON}~{559,12,12,0.0,COMMON}~{558,5,5,0.0,COMMON}~{558,12,12,0.0,COMMON}~{562,2,2,0.0,RARE}~{562,10,10,0.0,RARE}~{561,2,2,0.0,RARE}~{563,2,2,0.0,RARE}~{565,2,2,0.0,RARE}~{1379,1,1,0.0,COMMON}~{995,1,30,0.0,COMMON}~{1448,1,1,0.0,COMMON}~{1444,1,1,0.0,UNCOMMON}~{579,1,1,0.0,UNCOMMON}~{577,1,1,0.0,UNCOMMON}', '{0,1,1,0.78,ALWAYS}~{12158,1,1,0.116,ALWAYS}~{12159,1,1,0.06,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(15, '{526,1,1,0.0,ALWAYS}', '', '{12158,1,1,0.049,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.02,ALWAYS}~{12163,1,1,0.016,ALWAYS}'), +(16, '{526,1,1,0.0,ALWAYS}', '{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{877,2,12,0.0,COMMON}~{882,7,7,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{995,1,40,0.0,COMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{2693,1,1,0.0,RARE}', ''), +(18, '{526,1,1,0.0,ALWAYS}', '{556,1,1,0.0,UNCOMMON}~{558,9,9,0.0,COMMON}~{554,6,6,0.0,COMMON}~{557,4,4,0.0,COMMON}~{562,2,2,0.0,RARE}~{563,1,1,0.0,RARE}~{1139,1,1,0.0,COMMON}~{882,7,7,0.0,COMMON}~{877,1,12,0.0,COMMON}~{1203,1,1,0.0,UNCOMMON}~{1137,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,3,25,0.0,COMMON}~{313,1,1,0.0,COMMON}~{436,1,1,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{2683,1,1,0.0,UNCOMMON}', ''), +(19, '{526,1,1,0.0,ALWAYS}', '{555,20,47,0.0,COMMON}~{559,9,24,0.0,COMMON}~{558,5,5,0.0,COMMON}~{558,7,7,0.0,COMMON}~{562,2,5,0.0,UNCOMMON}~{561,4,7,0.0,UNCOMMON}~{563,2,3,0.0,RARE}~{565,2,3,0.0,RARE}~{1293,1,1,0.0,COMMON}~{1281,1,1,0.0,COMMON}~{888,5,5,0.0,COMMON}~{888,7,7,0.0,COMMON}~{890,2,5,0.0,UNCOMMON}~{890,7,7,0.0,UNCOMMON}~{1141,1,1,0.0,COMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{5318,4,4,0.0,COMMON}~{5322,3,3,0.0,COMMON}~{5324,4,4,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5320,3,3,0.0,UNCOMMON}~{5321,2,2,0.0,UNCOMMON}~{5323,2,2,0.0,RARE}~{995,1,200,0.0,COMMON}~{1933,1,1,0.0,RARE}~{2335,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2351,1,2,0.0,COMMON}~{31,1,1,0.0,RARE}', ''), +(20, '{526,1,1,0.0,ALWAYS}', '{201,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{1281,1,1,0.0,COMMON}~{1295,1,1,0.0,UNCOMMON}~{1157,1,1,0.0,UNCOMMON}~{555,30,30,0.0,COMMON}~{565,1,1,0.0,RARE}~{995,2,2,0.0,COMMON}~{995,8,8,0.0,COMMON}~{2351,1,1,0.0,COMMON}~{2359,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,UNCOMMON}~{1458,1,1,0.0,UNCOMMON}~{2833,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(21, '{526,1,1,0.0,ALWAYS}', '{995,200,200,0.0,COMMON}~{995,300,300,0.0,COMMON}~{560,2,2,0.0,UNCOMMON}~{565,1,1,0.0,UNCOMMON}~{444,1,1,0.0,COMMON}~{1993,1,1,0.0,COMMON}~{569,1,1,0.0,COMMON}~{1601,1,1,0.0,COMMON}', ''), +(23, '{526,1,1,0.0,ALWAYS}', '{2703,1,1,0.0,RARE}', ''), +(24, '{526,1,1,0.0,ALWAYS}', '{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{877,2,12,0.0,COMMON}~{882,7,7,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{995,1,40,0.0,COMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{2714,1,1,0.0,RARE}~{2677,1,1,0.0,RARE}', ''), +(25, '{526,1,1,0.0,ALWAYS}', '{877,7,7,0.0,COMMON}~{882,2,12,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{995,1,400,0.0,COMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{2704,1,1,0.0,RARE}', ''), +(26, '{526,1,1,0.0,ALWAYS}', '{2704,1,1,0.0,RARE}', ''), +(32, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2835,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(38, '{526,1,1,0.0,ALWAYS}', '{995,10,56,0.0,COMMON}', ''), +(39, '{526,1,1,0.0,ALWAYS}', '{995,10,56,0.0,COMMON}', ''), +(41, '{526,1,1,0.0,ALWAYS}~{2138,1,1,0.0,ALWAYS}~{314,11,30,0.0,COMMON}', '', ''), +(49, '{526,1,1,0.0,ALWAYS}', '{2727,1,1,0.0,UNCOMMON,64}', ''), +(50, '{536,1,1,0.0,ALWAYS}~{1747,1,1,0.0,ALWAYS}', '{1303,1,1,0.0,COMMON}~{1123,1,1,0.0,COMMON}~{1199,1,1,0.0,COMMON}~{554,300,300,0.0,COMMON}~{556,300,300,0.0,COMMON}~{565,30,30,0.0,UNCOMMON}~{560,50,50,0.0,UNCOMMON}~{563,30,50,0.0,UNCOMMON}~{884,690,690,0.0,UNCOMMON}~{9144,10,25,0.0,UNCOMMON}~{11232,5,14,0.0,UNCOMMON}~{11237,1,14,0.0,UNCOMMON}~{1737,1,1,0.0,COMMON}~{1516,150,150,0.0,UNCOMMON}~{385,4,4,0.0,UNCOMMON}~{445,100,100,0.0,UNCOMMON}~{9431,3,3,0.0,UNCOMMON}~{2361,3,3,0.0,UNCOMMON}~{2677,1,1,0.0,RARE}~{11286,1,1,0.0,VERY_RARE,5000}~{14669,1,1,0.0,VERY_RARE,5000}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(52, '{534,1,1,0.0,ALWAYS}', '', ''), +(53, '{536,1,1,0.0,ALWAYS}~{1749,1,1,0.0,ALWAYS}', '{1315,1,1,0.0,COMMON}~{828,20,20,0.0,COMMON}~{1355,1,1,0.0,COMMON}~{1197,1,1,0.0,UNCOMMON}~{1123,1,1,0.0,UNCOMMON}~{1369,1,1,0.0,UNCOMMON}~{892,4,4,0.0,UNCOMMON}~{811,8,8,0.0,UNCOMMON}~{1303,1,1,0.0,UNCOMMON}~{563,4,4,0.0,UNCOMMON}~{560,5,5,0.0,UNCOMMON}~{565,2,2,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,30,690,0.0,COMMON}~{1897,3,3,0.0,UNCOMMON}~{2361,1,1,0.0,UNCOMMON}~{2727,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.215,ALWAYS}~{12158,1,1,0.185,ALWAYS}~{12159,1,1,0.4,ALWAYS}~{12160,1,1,0.165,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(54, '{536,1,1,0.0,ALWAYS}~{1747,1,1,0.0,ALWAYS}', '{1355,1,1,0.0,UNCOMMON}~{1361,1,1,0.0,UNCOMMON}~{1369,1,1,0.0,UNCOMMON}~{1315,1,1,0.0,UNCOMMON}~{1123,1,1,0.0,UNCOMMON}~{1303,1,1,0.0,RARE}~{1185,1,1,0.0,RARE}~{1373,1,1,0.0,RARE}~{1319,1,1,0.0,RARE}~{810,16,16,0.0,COMMON}~{829,30,30,0.0,COMMON}~{868,2,2,0.0,UNCOMMON}~{811,10,10,0.0,UNCOMMON}~{556,75,75,0.0,RARE}~{565,15,15,0.0,RARE}~{560,45,45,0.0,RARE}~{554,50,50,0.0,RARE}~{563,10,12,0.0,RARE}~{563,45,45,0.0,RARE}~{561,67,79,0.0,RARE}~{562,90,90,0.0,RARE}~{2361,1,2,0.0,UNCOMMON}~{2353,1,1,0.0,RARE}~{995,129,3000,0.0,COMMON}~{2739,1,1,0.0,UNCOMMON}~{1897,1,1,0.0,UNCOMMON}~{12480,1,1,0.0,RARE}~{995,129,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}~{11286,1,1,0.0,VERY_RARE,10000}', '{0,1,1,0.5700000000000001,ALWAYS}~{12158,1,1,0.085,ALWAYS}~{12159,1,1,0.26,ALWAYS}~{12160,1,1,0.07,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(55, '{536,1,1,0.0,ALWAYS}~{1751,1,1,0.0,ALWAYS}', '{1365,1,1,0.0,UNCOMMON}~{1355,1,1,0.0,UNCOMMON}~{1243,1,1,0.0,UNCOMMON}~{1211,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,RARE}~{1069,1,1,0.0,COMMON}~{1197,1,1,0.0,UNCOMMON}~{1161,1,1,0.0,UNCOMMON}~{555,75,75,0.0,COMMON}~{561,15,15,0.0,UNCOMMON}~{554,37,37,0.0,UNCOMMON}~{563,3,3,0.0,UNCOMMON}~{560,5,5,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{995,11,454,0.0,COMMON}~{449,1,1,0.0,UNCOMMON}~{365,1,1,0.0,UNCOMMON}~{2735,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.495,ALWAYS}~{12158,1,1,0.11,ALWAYS}~{12159,1,1,0.27,ALWAYS}~{12160,1,1,0.105,ALWAYS}~{12163,1,1,0.02,ALWAYS}'), +(59, '', '{556,4,6,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{559,7,7,0.0,UNCOMMON}~{1139,1,1,0.0,COMMON}~{877,8,8,0.0,UNCOMMON}~{882,4,11,0.0,UNCOMMON}~{839,1,1,0.0,RARE}~{1189,1,1,0.0,RARE}~{1381,1,1,0.0,RARE}~{995,1,20,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1444,1,1,0.0,RARE}~{1438,1,1,0.0,RARE}~{1955,2,2,0.0,RARE}~{1009,1,1,0.0,RARE}~{229,1,1,0.0,RARE}', '{0,1,1,0.88,ALWAYS}~{12158,1,1,0.079,ALWAYS}~{12159,1,1,0.008,ALWAYS}~{12160,1,1,0.025,ALWAYS}~{12163,1,1,0.007,ALWAYS}'), +(60, '', '{556,4,6,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{559,7,7,0.0,UNCOMMON}~{1139,1,1,0.0,COMMON}~{877,8,8,0.0,UNCOMMON}~{882,4,11,0.0,UNCOMMON}~{839,1,1,0.0,RARE}~{1189,1,1,0.0,RARE}~{1381,1,1,0.0,RARE}~{995,1,20,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1444,1,1,0.0,RARE}~{1438,1,1,0.0,RARE}~{1955,2,2,0.0,RARE}~{1009,1,1,0.0,RARE}~{229,1,1,0.0,RARE}', '{0,1,1,0.88,ALWAYS}~{12158,1,1,0.079,ALWAYS}~{12159,1,1,0.008,ALWAYS}~{12160,1,1,0.025,ALWAYS}~{12163,1,1,0.007,ALWAYS}'), +(61, '', '', '{0,1,1,0.92,ALWAYS}~{12158,1,1,0.02,ALWAYS}~{12159,1,1,0.034,ALWAYS}~{12160,1,1,0.013000000000000001,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(62, '', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{808,1,1,0.0,UNCOMMON}~{557,13,13,0.0,UNCOMMON}~{9141,20,20,0.0,UNCOMMON}~{11766,1,1,0.0,UNCOMMON}~{11767,1,1,0.0,UNCOMMON}~{11768,1,1,0.0,UNCOMMON}~{11769,1,1,0.0,UNCOMMON}~{11764,1,1,0.0,UNCOMMON}', ''), +(63, '', '', '{0,1,1,0.775,ALWAYS}~{12158,1,1,0.192,ALWAYS}~{12159,1,1,0.01,ALWAYS}~{12160,1,1,0.02,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(64, '', '', '{0,1,1,0.595,ALWAYS}~{12158,1,1,0.26,ALWAYS}~{12159,1,1,0.075,ALWAYS}~{12160,1,1,0.05,ALWAYS}~{12163,1,1,0.02,ALWAYS}'), +(71, '{526,1,1,0.0,ALWAYS}', '{1205,1,1,0.0,UNCOMMON}~{1307,1,1,0.0,UNCOMMON}~{3190,1,1,0.0,UNCOMMON}~{1321,1,1,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1309,1,1,0.0,UNCOMMON}~{1375,1,1,0.0,UNCOMMON}~{807,2,2,0.0,UNCOMMON}~{1207,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1075,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1101,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{946,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{2689,1,1,0.0,RARE}~{2731,1,1,0.0,RARE}', ''), +(73, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,5,7,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(74, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,2,2,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(75, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(76, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.3,COMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,5,7,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}~{1351,1,1,0.0,COMMON}', ''), +(77, '{526,1,1,0.0,ALWAYS}', '', ''), +(78, '{530,1,1,0.0,ALWAYS}', '{7829,1,1,0.0,COMMON}', '{0,1,1,0.785,ALWAYS}~{12158,1,1,0.197,ALWAYS}~{12159,1,1,0.005,ALWAYS}~{12160,1,1,0.01,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(81, '{526,1,1,0.0,ALWAYS}~{1739,1,1,0.0,ALWAYS}~{2132,1,1,0.0,ALWAYS}', '', '{0,1,1,0.9500000000000001,ALWAYS}~{12158,1,1,0.008,ALWAYS}~{12159,1,1,0.038,ALWAYS}~{12160,1,1,0.002,ALWAYS}~{12163,1,1,0.001,ALWAYS}'), +(82, '{592,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1157,1,1,0.0,COMMON}~{1313,1,1,0.0,COMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,RARE}~{1195,1,1,0.0,RARE}~{554,10,120,0.0,UNCOMMON}~{562,6,24,0.0,UNCOMMON}~{560,3,6,0.0,RARE}~{199,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{995,10,630,0.0,COMMON}~{445,1,3,0.0,UNCOMMON}~{1993,1,1,0.0,UNCOMMON}~{2831,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(83, '{592,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1365,1,1,0.0,COMMON}~{1311,1,1,0.0,COMMON}~{1197,1,1,0.0,UNCOMMON}~{1313,1,1,0.0,UNCOMMON}~{1163,1,1,0.0,RARE}~{1073,1,1,0.0,RARE}~{1317,1,1,0.0,RARE}~{995,10,630,0.0,COMMON}~{554,75,75,0.0,COMMON}~{562,15,15,0.0,COMMON}~{560,5,5,0.0,COMMON}~{1734,10,10,0.0,UNCOMMON}~{361,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,UNCOMMON}~{2733,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.62,ALWAYS}~{12158,1,1,0.07,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.26,ALWAYS}~{12163,1,1,0.009000000000000001,ALWAYS}'), +(84, '{592,1,1,0.0,ALWAYS}', '{1365,1,1,0.0,COMMON}~{1361,1,1,0.0,COMMON}~{1283,1,1,0.0,COMMON}~{1313,1,1,0.0,COMMON}~{1165,1,1,0.0,COMMON}~{1197,1,1,0.0,COMMON}~{1147,1,1,0.0,RARE}~{1163,1,1,0.0,RARE}~{1113,1,1,0.0,RARE}~{1185,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{556,50,75,0.0,COMMON}~{565,7,7,0.0,UNCOMMON}~{554,37,40,0.0,COMMON}~{562,10,10,0.0,COMMON}~{563,3,5,0.0,RARE}~{2361,1,1,0.0,COMMON}~{454,20,20,0.0,RARE}~{995,132,1100,0.0,COMMON}~{379,1,1,0.0,UNCOMMON}~{133,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.23,ALWAYS}~{12158,1,1,0.20500000000000002,ALWAYS}~{12159,1,1,0.105,ALWAYS}~{12160,1,1,0.44,ALWAYS}~{12163,1,1,0.02,ALWAYS}'), +(86, '{526,1,1,0.0,ALWAYS}~{2134,1,1,0.0,ALWAYS}', '', ''), +(87, '{526,1,1,0.0,ALWAYS}~{2134,1,1,0.0,ALWAYS}', '', ''), +(88, '{526,1,1,0.0,ALWAYS}', '{2134,1,1,0.0,UNCOMMON}', ''), +(89, '{526,1,1,0.0,ALWAYS}~{237,1,1,0.0,ALWAYS}', '{7821,1,1,0.0,COMMON}', ''), +(90, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2853,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(91, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2839,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(92, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2829,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(93, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2839,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(94, '{592,1,1,0.0,ALWAYS}~{526,1,1,0.0,ALWAYS}', '{1391,1,1,0.0,COMMON}~{1013,1,1,0.0,COMMON}~{558,7,9,0.0,COMMON}~{562,2,4,0.0,UNCOMMON}~{563,2,3,0.0,UNCOMMON}~{561,1,3,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{205,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,27,434,0.0,COMMON}~{1625,1,1,0.0,COMMON}~{1934,1,1,0.0,COMMON}~{2351,1,2,0.0,UNCOMMON}~{532,3,4,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(95, '{526,1,1,0.0,ALWAYS}~{2859,1,1,0.0,ALWAYS}', '{7830,1,1,0.0,COMMON}', '{0,1,1,0.885,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.051000000000000004,ALWAYS}~{12163,1,1,0.009000000000000001,ALWAYS}'), +(96, '{2859,1,1,0.0,ALWAYS}', '', '{0,1,1,0.73,ALWAYS}~{12158,1,1,0.095,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.13,ALWAYS}~{12163,1,1,0.005,ALWAYS}'), +(97, '{2859,1,1,0.0,ALWAYS}', '', '{0,1,1,0.73,ALWAYS}~{12158,1,1,0.095,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.13,ALWAYS}~{12163,1,1,0.005,ALWAYS}'), +(99, '{526,1,1,0.0,ALWAYS}', '', ''), +(100, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2703,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(101, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2711,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(102, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2711,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(105, '{948,1,1,0.0,ALWAYS}~{526,1,1,0.0,ALWAYS}~{2136,1,1,0.0,ALWAYS}', '{7815,1,1,0.0,UNCOMMON}', '{0,1,1,0.855,ALWAYS}~{12158,1,1,0.107,ALWAYS}~{12159,1,1,0.015,ALWAYS}~{12160,1,1,0.02,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(106, '{948,1,1,0.0,ALWAYS}~{526,1,1,0.0,ALWAYS}~{2136,1,1,0.0,ALWAYS}', '{7815,1,1,0.0,UNCOMMON}', '{0,1,1,0.855,ALWAYS}~{12158,1,1,0.107,ALWAYS}~{12159,1,1,0.015,ALWAYS}~{12160,1,1,0.02,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(110, '{532,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1181,1,1,0.0,COMMON}~{1393,1,1,0.0,UNCOMMON}~{892,12,42,0.0,UNCOMMON}~{1333,1,1,0.0,RARE}~{1373,1,1,0.0,RARE}~{554,37,37,0.0,COMMON}~{554,50,50,0.0,COMMON}~{554,150,150,0.0,COMMON}~{562,5,5,0.0,UNCOMMON}~{565,5,5,0.0,UNCOMMON}~{563,24,24,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{211,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,15,15,0.0,COMMON}~{995,25,25,0.0,COMMON}~{7872,1,1,0.0,COMMON}~{379,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,UNCOMMON}~{117,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{987,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.31,ALWAYS}~{12158,1,1,0.55,ALWAYS}~{12159,1,1,0.07,ALWAYS}~{12160,1,1,0.05,ALWAYS}~{12163,1,1,0.02,ALWAYS}'), +(111, '{532,1,1,0.0,ALWAYS}', '{1363,1,1,0.0,COMMON}~{1067,1,1,0.0,COMMON}~{1309,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{1281,1,1,0.0,COMMON}~{1195,1,1,0.0,COMMON}~{890,5,5,0.0,UNCOMMON}~{1181,1,1,0.0,RARE}~{1428,1,1,0.0,RARE}~{555,12,12,0.0,COMMON}~{558,24,24,0.0,COMMON}~{559,37,37,0.0,COMMON}~{564,2,4,0.0,COMMON}~{563,3,3,0.0,UNCOMMON}~{561,6,6,0.0,UNCOMMON}~{560,2,4,0.0,RARE}~{565,2,4,0.0,RARE}~{5292,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5323,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,RARE}~{5296,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5298,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5311,1,1,0.0,RARE}~{5280,1,1,0.0,RARE}~{5281,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5106,1,1,0.0,RARE}~{995,8,450,0.0,COMMON}~{7875,1,1,0.0,COMMON}~{1963,1,1,0.0,UNCOMMON}~{1993,1,1,0.0,UNCOMMON}~{447,1,1,0.0,UNCOMMON}~{1454,1,1,0.0,RARE}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{2829,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(112, '{532,1,1,0.0,ALWAYS}', '{1389,1,1,0.0,COMMON}~{1243,1,1,0.0,COMMON}~{1285,1,1,0.0,COMMON}~{886,30,30,0.0,COMMON}~{884,15,15,0.0,COMMON}~{1287,1,1,0.0,RARE}~{1165,1,1,0.0,COMMON}~{1179,1,1,0.0,COMMON}~{1141,1,1,0.0,COMMON}~{1193,1,1,0.0,UNCOMMON}~{556,18,18,0.0,COMMON}~{564,3,3,0.0,COMMON}~{557,27,27,0.0,COMMON}~{561,6,6,0.0,COMMON}~{563,3,6,0.0,UNCOMMON}~{565,1,1,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{560,13,13,0.0,RARE}~{5323,1,1,0.0,COMMON}~{5311,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5104,1,1,0.0,COMMON}~{5292,1,1,0.0,COMMON}~{5281,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{4206,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,RARE}~{5280,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5106,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{211,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{995,2,500,0.0,COMMON}~{2353,1,1,0.0,COMMON}~{7871,1,1,0.0,COMMON}~{453,1,1,0.0,UNCOMMON}~{1969,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{10976,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(113, '{3125,1,1,0.0,ALWAYS}', '{1237,1,1,0.0,COMMON}~{1239,1,1,0.0,COMMON}~{827,3,5,0.0,UNCOMMON}~{561,2,2,0.0,COMMON}~{561,5,5,0.0,COMMON}~{5100,1,1,0.0,COMMON}~{5292,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5294,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{1533,1,1,0.0,COMMON}~{1525,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{946,1,1,0.0,COMMON}~{2114,2,2,0.0,COMMON}~{6306,22,22,0.0,COMMON}~{995,22,22,0.0,COMMON}~{7847,1,1,0.0,COMMON}~{532,1,6,0.0,COMMON}~{526,1,1,0.0,COMMON}~{526,2,2,0.0,COMMON}~{1963,1,1,0.0,UNCOMMON}~{2843,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.56,ALWAYS}~{12158,1,1,0.386,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.025,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(114, '{532,1,1,0.0,ALWAYS}', '{7844,1,1,0.0,COMMON}~{10977,1,1,0.0,RARE}~{10976,1,1,0.0,RARE}~{5323,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.8250000000000001,ALWAYS}~{12158,1,1,0.136,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(115, '{532,1,1,0.0,ALWAYS}', '{7844,1,1,0.0,COMMON}~{10977,1,1,0.0,RARE}~{10976,1,1,0.0,RARE}~{5323,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.8250000000000001,ALWAYS}~{12158,1,1,0.136,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(116, '{532,1,2,0.0,ALWAYS}', '{1309,1,1,0.0,COMMON}~{1207,1,1,0.0,COMMON}~{1424,1,1,0.0,COMMON}~{1281,1,1,0.0,COMMON}~{1283,1,1,0.0,COMMON}~{1217,1,1,0.0,COMMON}~{869,4,19,0.0,COMMON}~{1295,1,1,0.0,COMMON}~{1365,1,1,0.0,COMMON}~{1311,1,1,0.0,COMMON}~{1297,1,1,0.0,COMMON}~{1313,1,1,0.0,UNCOMMON}~{1209,1,1,0.0,UNCOMMON}~{1299,1,1,0.0,UNCOMMON}~{1430,1,1,0.0,UNCOMMON}~{1317,1,1,0.0,RARE}~{886,5,5,0.0,RARE}~{1213,1,1,0.0,RARE}~{1101,1,1,0.0,COMMON}~{1105,1,1,0.0,COMMON}~{1153,1,1,0.0,UNCOMMON}~{1191,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,RARE}~{1147,1,1,0.0,RARE}~{563,2,2,0.0,RARE}~{563,3,3,0.0,RARE}~{560,2,2,0.0,RARE}~{561,2,2,0.0,RARE}~{561,3,3,0.0,RARE}~{558,2,2,0.0,RARE}~{558,3,3,0.0,RARE}~{564,2,2,0.0,RARE}~{564,3,3,0.0,RARE}~{555,7,7,0.0,RARE}~{554,15,15,0.0,RARE}~{5101,1,1,0.0,UNCOMMON}~{5318,1,1,0.0,UNCOMMON}~{5320,3,3,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5324,4,4,0.0,UNCOMMON}~{5309,2,2,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5280,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5100,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5296,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{199,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{995,5,473,0.0,COMMON}~{225,1,1,0.0,COMMON}~{1446,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{2737,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(117, '{532,1,1,0.0,ALWAYS}', '{884,3,3,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1153,1,1,0.0,COMMON}~{886,10,15,0.0,UNCOMMON}~{1191,1,1,0.0,COMMON}~{1295,1,1,0.0,UNCOMMON}~{1309,1,1,0.0,UNCOMMON}~{888,1,1,0.0,RARE}~{1207,1,1,0.0,COMMON}~{1119,1,1,0.0,UNCOMMON}~{890,1,5,0.0,RARE}~{555,7,7,0.0,COMMON}~{554,15,15,0.0,COMMON}~{564,2,2,0.0,COMMON}~{563,2,3,0.0,UNCOMMON}~{561,6,6,0.0,UNCOMMON}~{558,3,3,0.0,COMMON}~{560,2,2,0.0,RARE}~{562,2,2,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{207,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{5322,1,3,0.0,COMMON}~{5306,1,3,0.0,UNCOMMON}~{5318,1,4,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5319,8,8,0.0,COMMON}~{5323,2,2,0.0,COMMON}~{5324,4,4,0.0,COMMON}~{5307,2,3,0.0,UNCOMMON}~{5100,1,1,0.0,RARE}~{5320,3,3,0.0,RARE}~{5302,1,1,0.0,UNCOMMON}~{5321,2,2,0.0,RARE}~{5308,3,3,0.0,UNCOMMON}~{995,8,8,0.0,COMMON}~{995,15,15,0.0,COMMON}~{225,1,1,0.1,COMMON}~{1917,1,1,0.0,COMMON}~{1446,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(118, '{526,1,1,0.0,ALWAYS}', '{1265,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{2349,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{440,1,1,0.0,COMMON}~{1267,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{561,2,2,0.0,RARE}~{562,2,2,0.0,RARE}~{1139,1,1,0.0,COMMON}~{1375,1,1,0.0,UNCOMMON}~{1363,1,1,0.0,UNCOMMON}~{877,2,2,0.0,UNCOMMON}~{877,11,11,0.0,UNCOMMON}~{995,4,4,0.0,COMMON}~{995,10,10,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1913,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.905,ALWAYS}~{12158,1,1,0.039,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(119, '{526,1,1,0.0,ALWAYS}', '{1157,1,1,0.0,COMMON}~{1299,1,1,0.0,COMMON}~{1181,1,1,0.0,COMMON}~{1165,1,1,0.0,RARE}~{555,10,10,0.0,COMMON}~{556,12,12,0.0,COMMON}~{556,24,24,0.0,COMMON}~{558,37,37,0.0,COMMON}~{564,3,3,0.0,COMMON}~{564,6,6,0.0,COMMON}~{562,10,10,0.0,UNCOMMON}~{562,37,37,0.0,UNCOMMON}~{561,9,9,0.0,UNCOMMON}~{561,18,18,0.0,UNCOMMON}~{563,3,3,0.0,UNCOMMON}~{563,6,6,0.0,UNCOMMON}~{560,3,3,0.0,RARE}~{560,6,6,0.0,RARE}~{995,25,25,0.0,COMMON}~{995,47,47,0.0,COMMON}~{453,1,1,0.0,COMMON}~{991,1,1,0.0,UNCOMMON}~{1985,1,1,0.0,UNCOMMON}~{2359,1,1,0.0,UNCOMMON}~{1982,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.8150000000000001,ALWAYS}~{12158,1,1,0.095,ALWAYS}~{12159,1,1,0.035,ALWAYS}~{12160,1,1,0.025,ALWAYS}~{12163,1,1,0.03,ALWAYS}'), +(120, '{526,1,1,0.0,ALWAYS}', '{1265,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{2349,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{440,1,1,0.0,COMMON}~{1267,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{561,2,2,0.0,RARE}~{562,2,2,0.0,RARE}~{1139,1,1,0.0,COMMON}~{1375,1,1,0.0,UNCOMMON}~{1363,1,1,0.0,UNCOMMON}~{877,2,2,0.0,UNCOMMON}~{877,11,11,0.0,UNCOMMON}~{995,4,4,0.0,COMMON}~{995,10,10,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1913,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.905,ALWAYS}~{12158,1,1,0.039,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(121, '{526,1,1,0.0,ALWAYS}', '{1265,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{2349,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{440,1,1,0.0,COMMON}~{1267,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{561,2,2,0.0,RARE}~{562,2,2,0.0,RARE}~{1139,1,1,0.0,COMMON}~{1375,1,1,0.0,UNCOMMON}~{1363,1,1,0.0,UNCOMMON}~{877,2,2,0.0,UNCOMMON}~{877,11,11,0.0,UNCOMMON}~{995,4,4,0.0,COMMON}~{995,10,10,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1913,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.905,ALWAYS}~{12158,1,1,0.039,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(122, '{526,1,1,0.0,ALWAYS}', '{1237,1,1,0.0,COMMON}~{826,5,5,0.0,COMMON}~{1207,1,1,0.0,COMMON}~{1279,1,1,0.0,COMMON}~{1293,1,1,0.0,UNCOMMON}~{1239,1,1,0.0,UNCOMMON}~{1241,1,1,0.0,UNCOMMON}~{1295,1,1,0.0,UNCOMMON}~{555,2,2,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{554,7,7,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{562,3,3,0.0,UNCOMMON}~{561,4,4,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{5318,4,8,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,COMMON}~{5320,3,3,0.0,COMMON}~{5323,1,2,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5322,3,3,0.0,UNCOMMON}~{5321,1,2,0.0,UNCOMMON}~{5306,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,2,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{211,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{225,1,1,0.0,COMMON}~{288,1,1,0.0,RARE}~{6306,15,15,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(123, '{526,1,1,0.0,ALWAYS}', '{1237,1,1,0.0,COMMON}~{826,5,5,0.0,COMMON}~{1207,1,1,0.0,COMMON}~{1279,1,1,0.0,COMMON}~{1293,1,1,0.0,UNCOMMON}~{1239,1,1,0.0,UNCOMMON}~{1241,1,1,0.0,UNCOMMON}~{1295,1,1,0.0,UNCOMMON}~{555,2,2,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{554,7,7,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{562,3,3,0.0,UNCOMMON}~{561,4,4,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{5318,4,8,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,COMMON}~{5320,3,3,0.0,COMMON}~{5323,1,2,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5322,3,3,0.0,UNCOMMON}~{5321,1,2,0.0,UNCOMMON}~{5306,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,2,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{211,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{225,1,1,0.0,COMMON}~{288,1,1,0.0,RARE}~{6306,15,15,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(124, '', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{557,12,12,0.0,COMMON}~{557,60,60,0.0,COMMON}~{563,2,2,0.0,COMMON}~{561,3,3,0.0,COMMON}~{561,6,6,0.0,COMMON}~{562,3,3,0.0,UNCOMMON}~{560,2,2,0.0,UNCOMMON}~{565,2,2,0.0,RARE}~{556,45,45,0.0,RARE}~{554,6,6,0.0,RARE}~{5104,1,1,0.0,COMMON}~{5100,1,1,0.0,COMMON}~{5292,1,1,0.0,COMMON}~{5323,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5296,1,1,0.0,COMMON}~{5311,1,1,0.0,COMMON}~{5281,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,RARE}~{5280,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5106,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{995,1,12,0.0,COMMON}~{995,24,24,0.0,COMMON}~{1385,1,1,0.0,UNCOMMON}~{1241,1,1,0.0,UNCOMMON}~{6808,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.745,ALWAYS}~{12158,1,1,0.09,ALWAYS}~{12159,1,1,0.045,ALWAYS}~{12160,1,1,0.112,ALWAYS}~{12163,1,1,0.007,ALWAYS}'), +(125, '', '{1363,1,1,0.0,COMMON}~{888,3,3,0.0,COMMON}~{1428,1,1,0.0,UNCOMMON}~{890,2,2,0.0,UNCOMMON}~{890,5,5,0.0,UNCOMMON}~{1309,1,1,0.0,UNCOMMON}~{1281,1,1,0.0,RARE}~{1195,1,1,0.0,RARE}~{1181,1,1,0.0,RARE}~{1303,1,1,0.0,RARE}~{892,2,2,0.0,RARE}~{9185,1,1,0.0,RARE}~{564,2,4,0.0,COMMON}~{562,3,3,0.0,COMMON}~{561,4,4,0.0,COMMON}~{563,2,4,0.0,COMMON}~{560,2,2,0.0,UNCOMMON}~{560,5,5,0.0,UNCOMMON}~{565,2,50,0.0,UNCOMMON}~{558,24,24,0.0,RARE}~{4694,2,2,0.0,RARE}~{5291,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5100,1,1,0.0,COMMON}~{5311,1,1,0.0,COMMON}~{5323,1,1,0.0,COMMON}~{5104,1,1,0.0,COMMON}~{12176,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,RARE}~{5296,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5105,1,1,0.0,RARE}~{5106,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5280,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5281,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,15,15,0.0,COMMON}~{995,465,465,0.0,COMMON}~{447,1,1,0.0,RARE}~{2853,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(126, '', '{1428,1,1,0.0,UNCOMMON}~{1391,1,1,0.0,UNCOMMON}~{888,15,15,0.0,RARE}~{1357,1,1,0.0,RARE}~{1432,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{562,4,4,0.0,COMMON}~{564,2,2,0.0,COMMON}~{563,2,2,0.0,COMMON}~{560,2,2,0.0,UNCOMMON}~{561,5,10,0.0,UNCOMMON}~{565,2,2,0.0,RARE}~{995,15,40,0.0,COMMON}~{995,1,1,0.0,COMMON}~{1454,1,1,0.0,RARE}~{2357,1,1,0.0,RARE}~{355,1,1,0.0,RARE}~{1641,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(127, '{1363,1,1,0.0,ALWAYS}', '', ''), +(128, '{526,1,1,0.0,ALWAYS}', '{7862,1,1,0.0,UNCOMMON}', ''), +(130, '{532,1,1,0.0,ALWAYS}~{886,15,26,0.0,ALWAYS}~{802,12,21,0.0,ALWAYS}', '{557,21,21,0.0,COMMON}~{557,22,22,0.0,COMMON}~{565,1,1,0.0,COMMON}~{565,3,3,0.0,COMMON}~{562,15,15,0.0,COMMON}~{563,10,13,0.0,UNCOMMON}~{561,4,4,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{562,99,99,0.0,RARE}~{1181,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,RARE}~{147,1,1,0.0,COMMON}~{165,1,1,0.0,COMMON}~{3030,1,1,0.0,UNCOMMON}~{5949,1,1,0.0,RARE}~{143,1,1,0.0,RARE}~{442,1,1,0.0,COMMON}~{444,1,1,0.0,COMMON}~{373,1,1,0.0,COMMON}~{7054,1,1,0.0,COMMON}~{7210,1,1,0.0,UNCOMMON}~{995,323,525,0.0,RARE}~{2843,1,1,0.0,RARE}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.545,ALWAYS}~{12158,1,1,0.185,ALWAYS}~{12159,1,1,0.12,ALWAYS}~{12160,1,1,0.075,ALWAYS}~{12163,1,1,0.075,ALWAYS}'), +(132, '{3186,1,1,0.0,ALWAYS}~{3166,1,1,0.0,ALWAYS}', '{7856,1,1,0.0,COMMON}', '{0,1,1,1.0,ALWAYS}~{12158,1,1,-0.006,ALWAYS}~{12159,1,1,0.002,ALWAYS}~{12160,1,1,0.002,ALWAYS}~{12163,1,1,0.002,ALWAYS}'), +(133, '{526,1,1,0.0,ALWAYS}~{237,1,1,0.0,ALWAYS}', '{7821,1,1,0.0,UNCOMMON}', '{0,1,1,0.84,ALWAYS}~{12158,1,1,0.055,ALWAYS}~{12159,1,1,0.095,ALWAYS}~{12160,1,1,0.006,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(142, '{526,1,1,0.0,ALWAYS}~{2859,1,1,0.0,ALWAYS}', '{7830,1,1,0.0,COMMON}', '{0,1,1,0.885,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.051000000000000004,ALWAYS}~{12163,1,1,0.009000000000000001,ALWAYS}'), +(143, '{2859,1,1,0.0,ALWAYS}', '', ''), +(145, '', '{1363,1,1,0.0,COMMON}~{888,3,3,0.0,COMMON}~{1428,1,1,0.0,UNCOMMON}~{890,2,2,0.0,UNCOMMON}~{890,5,5,0.0,UNCOMMON}~{1309,1,1,0.0,UNCOMMON}~{1281,1,1,0.0,RARE}~{1195,1,1,0.0,RARE}~{1181,1,1,0.0,RARE}~{1303,1,1,0.0,RARE}~{892,2,2,0.0,RARE}~{9185,1,1,0.0,RARE}~{564,2,4,0.0,COMMON}~{562,3,3,0.0,COMMON}~{561,4,4,0.0,COMMON}~{563,2,4,0.0,COMMON}~{560,2,2,0.0,UNCOMMON}~{560,5,5,0.0,UNCOMMON}~{565,2,50,0.0,UNCOMMON}~{558,24,24,0.0,RARE}~{4694,2,2,0.0,RARE}~{5291,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5100,1,1,0.0,COMMON}~{5311,1,1,0.0,COMMON}~{5323,1,1,0.0,COMMON}~{5104,1,1,0.0,COMMON}~{12176,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,RARE}~{5296,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5105,1,1,0.0,RARE}~{5106,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5280,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5281,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,15,15,0.0,COMMON}~{995,465,465,0.0,COMMON}~{447,1,1,0.0,RARE}~{2807,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(158, '', '{1217,1,1,0.0,UNCOMMON}~{869,1,1,0.0,UNCOMMON}~{1165,1,1,0.0,UNCOMMON}~{1297,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{564,3,3,0.0,COMMON}~{560,2,2,0.0,UNCOMMON}~{556,45,45,0.0,UNCOMMON}~{565,2,2,0.0,COMMON}~{995,8,8,0.0,COMMON}~{2359,1,1,0.0,COMMON}~{187,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.705,ALWAYS}~{12158,1,1,0.105,ALWAYS}~{12159,1,1,0.055,ALWAYS}~{12160,1,1,0.129,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(163, '{526,1,1,0.0,ALWAYS}', '{995,1,10,0.0,COMMON}~{2169,1,1,0.0,COMMON}~{2102,1,1,0.0,COMMON}~{2128,1,1,0.0,COMMON}~{2120,1,1,0.0,COMMON}~{2164,1,1,0.0,UNCOMMON}~{2026,1,1,0.0,UNCOMMON}~{2165,1,1,0.0,UNCOMMON}~{2167,1,1,0.0,RARE}~{2025,1,1,0.0,RARE}~{2166,1,1,0.0,UNCOMMON}~{2807,1,1,0.0,RARE}~{2171,1,1,0.0,COMMON}~{2023,1,1,0.0,UNCOMMON}', ''), +(164, '{526,1,1,0.0,ALWAYS}', '{995,1,10,0.0,COMMON}~{2169,1,1,0.0,COMMON}~{2102,1,1,0.0,COMMON}~{2128,1,1,0.0,COMMON}~{2120,1,1,0.0,COMMON}~{2164,1,1,0.0,UNCOMMON}~{2026,1,1,0.0,UNCOMMON}~{2165,1,1,0.0,UNCOMMON}~{2167,1,1,0.0,RARE}~{2025,1,1,0.0,RARE}~{2166,1,1,0.0,UNCOMMON}~{2825,1,1,0.0,RARE}~{2171,1,1,0.0,COMMON}~{2023,1,1,0.0,UNCOMMON}', ''), +(170, '{526,1,1,0.0,ALWAYS}', '{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{877,2,12,0.0,COMMON}~{882,7,7,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{995,1,40,0.0,COMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{2705,1,1,0.0,RARE}', ''), +(172, '{526,1,1,0.0,ALWAYS}', '{557,10,10,0.0,COMMON}~{557,18,18,0.0,COMMON}~{556,10,10,0.0,COMMON}~{556,18,18,0.0,COMMON}~{555,10,10,0.0,COMMON}~{555,18,18,0.0,COMMON}~{554,10,10,0.0,COMMON}~{554,18,18,0.0,COMMON}~{558,10,10,0.0,COMMON}~{558,18,18,0.0,COMMON}~{559,10,10,0.0,COMMON}~{559,18,18,0.0,COMMON}~{562,4,4,0.0,COMMON}~{562,5,5,0.0,COMMON}~{561,2,5,0.0,UNCOMMON}~{563,3,3,0.0,COMMON}~{564,2,2,0.0,UNCOMMON}~{564,4,4,0.0,UNCOMMON}~{565,2,2,0.0,COMMON}~{565,4,4,0.0,COMMON}~{995,1,30,0.0,COMMON}~{1379,1,1,0.0,COMMON}~{1381,1,1,0.0,COMMON}~{1444,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,COMMON}~{1440,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{1383,3,3,0.0,RARE}', ''), +(173, '{526,1,1,0.0,ALWAYS}', '', ''), +(174, '{526,1,1,0.0,ALWAYS}', '{557,10,10,0.0,COMMON}~{557,18,18,0.0,COMMON}~{556,10,10,0.0,COMMON}~{556,18,18,0.0,COMMON}~{555,10,10,0.0,COMMON}~{555,18,18,0.0,COMMON}~{554,10,10,0.0,COMMON}~{554,18,18,0.0,COMMON}~{558,10,10,0.0,COMMON}~{558,18,18,0.0,COMMON}~{559,10,10,0.0,COMMON}~{559,18,18,0.0,COMMON}~{562,4,4,0.0,COMMON}~{562,5,5,0.0,COMMON}~{561,2,5,0.0,UNCOMMON}~{563,3,3,0.0,COMMON}~{564,2,2,0.0,UNCOMMON}~{564,4,4,0.0,UNCOMMON}~{565,2,2,0.0,COMMON}~{565,4,4,0.0,COMMON}~{995,1,30,0.0,COMMON}~{1379,1,1,0.0,COMMON}~{1381,1,1,0.0,COMMON}~{1444,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,COMMON}~{1440,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{1383,3,3,0.0,RARE}', ''), +(175, '{526,1,1,0.0,ALWAYS}', '{877,4,11,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1139,1,1,0.0,RARE}~{555,6,6,0.0,UNCOMMON}~{557,5,5,0.0,UNCOMMON}~{558,9,9,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,5,5,0.0,COMMON}~{995,10,10,0.0,COMMON}~{954,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{313,1,1,0.0,COMMON}~{1965,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{2705,1,1,0.0,RARE}', ''), +(178, '{526,1,1,0.0,ALWAYS}', '{1279,1,1,0.0,COMMON}~{1153,1,1,0.0,COMMON}~{1424,1,1,0.0,COMMON}~{1165,1,1,0.0,RARE}~{888,3,3,0.0,UNCOMMON}~{1313,1,1,0.0,RARE}~{1283,1,1,0.0,RARE}~{1125,1,1,0.0,RARE}~{1077,1,1,0.0,RARE}~{558,29,29,0.0,UNCOMMON}~{557,10,10,0.0,UNCOMMON}~{559,9,9,0.0,UNCOMMON}~{564,7,7,0.0,UNCOMMON}~{562,46,46,0.0,UNCOMMON}~{560,2,2,0.0,UNCOMMON}~{563,34,34,0.0,UNCOMMON}~{561,6,6,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{5318,4,4,0.0,UNCOMMON}~{5319,4,4,0.0,UNCOMMON}~{5324,4,4,0.0,RARE}~{5322,3,3,0.0,RARE}~{5320,3,3,0.0,RARE}~{5323,23,23,0.0,RARE}~{5321,2,2,0.0,RARE}~{995,1,500,0.0,COMMON}~{2353,1,1,0.0,COMMON}~{1933,1,1,0.0,COMMON}~{2309,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(179, '{526,1,1,0.0,ALWAYS}', '{1279,1,1,0.0,COMMON}~{1153,1,1,0.0,COMMON}~{1424,1,1,0.0,COMMON}~{1165,1,1,0.0,RARE}~{888,3,3,0.0,UNCOMMON}~{1313,1,1,0.0,RARE}~{1283,1,1,0.0,RARE}~{1125,1,1,0.0,RARE}~{1077,1,1,0.0,RARE}~{558,29,29,0.0,UNCOMMON}~{557,10,10,0.0,UNCOMMON}~{559,9,9,0.0,UNCOMMON}~{564,7,7,0.0,UNCOMMON}~{562,46,46,0.0,UNCOMMON}~{560,2,2,0.0,UNCOMMON}~{563,34,34,0.0,UNCOMMON}~{561,6,6,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{5318,4,4,0.0,UNCOMMON}~{5319,4,4,0.0,UNCOMMON}~{5324,4,4,0.0,RARE}~{5322,3,3,0.0,RARE}~{5320,3,3,0.0,RARE}~{5323,23,23,0.0,RARE}~{5321,2,2,0.0,RARE}~{995,1,500,0.0,COMMON}~{2353,1,1,0.0,COMMON}~{1933,1,1,0.0,COMMON}~{2309,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(181, '{526,1,1,0.0,ALWAYS}', '{199,1,2,0.0,COMMON}~{201,1,2,0.0,COMMON}~{203,1,2,0.0,COMMON}~{205,1,2,0.0,COMMON}~{211,1,2,0.0,UNCOMMON}~{209,1,2,0.0,UNCOMMON}~{213,1,2,0.0,UNCOMMON}~{207,1,2,0.0,UNCOMMON}~{2485,1,2,0.0,UNCOMMON}~{217,1,2,0.0,UNCOMMON}~{215,1,2,0.0,UNCOMMON}~{219,1,2,0.0,RARE}~{563,2,2,0.0,COMMON}~{559,9,9,0.0,COMMON}~{556,9,36,0.0,COMMON}~{557,9,9,0.0,COMMON}~{558,12,12,0.0,COMMON}~{561,3,3,0.0,UNCOMMON}~{995,2,2,0.0,COMMON}~{995,3,3,0.0,COMMON}~{9142,2,12,0.0,COMMON}~{227,1,1,0.0,COMMON}~{1291,1,1,0.0,UNCOMMON}~{231,1,1,0.0,RARE}~{1594,1,1,0.0,RARE}~{1454,1,1,0.0,RARE}~{1137,1,1,0.0,RARE}~{1627,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(182, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(183, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(184, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(185, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(186, '{526,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{1363,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1309,1,1,0.0,RARE}~{1203,1,1,0.0,RARE}~{561,2,4,0.0,COMMON}~{562,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{560,2,2,0.0,UNCOMMON}~{563,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{2351,1,1,0.0,COMMON}~{440,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2677,1,1,0.0,RARE}~{167,1,1,0.0,RARE}~{161,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.865,ALWAYS}~{12158,1,1,0.114,ALWAYS}~{12159,1,1,0.009000000000000001,ALWAYS}~{12160,1,1,0.007,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(187, '', '{1139,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{1381,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,5,0.0,COMMON}~{995,25,25,0.0,COMMON}~{436,1,1,0.0,RARE}~{1440,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{1993,1,1,0.0,RARE}~{1523,1,1,0.0,RARE}~{2699,1,1,0.0,RARE}', '{0,1,1,0.85,ALWAYS}~{12158,1,1,0.05,ALWAYS}~{12159,1,1,0.035,ALWAYS}~{12160,1,1,0.035,ALWAYS}~{12163,1,1,0.03,ALWAYS}'), +(191, '', '{828,10,10,0.0,UNCOMMON}~{1237,1,1,0.0,UNCOMMON}~{1239,1,1,0.0,UNCOMMON}~{1241,1,1,0.0,UNCOMMON}~{1243,1,1,0.0,UNCOMMON}~{827,10,10,0.0,UNCOMMON}~{231,1,1,0.0,COMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1525,1,1,0.0,UNCOMMON}~{1533,1,1,0.0,UNCOMMON}~{3188,1,1,0.0,COMMON}~{6306,15,62,0.0,COMMON}~{444,1,1,0.0,UNCOMMON}~{1933,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{225,1,1,0.0,UNCOMMON}~{561,3,3,0.0,UNCOMMON}~{2829,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(192, '{526,1,1,0.0,ALWAYS}', '{1139,1,1,0.0,COMMON}~{1151,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,COMMON}~{1426,1,1,0.0,RARE}~{882,8,8,0.0,COMMON}~{558,2,2,0.0,COMMON}~{555,1,1,0.0,COMMON}~{557,1,1,0.0,COMMON}~{562,2,2,0.0,UNCOMMON}~{561,3,3,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,20,0.0,COMMON}~{440,1,1,0.0,COMMON}~{325,1,1,0.0,UNCOMMON}', '{0,1,1,0.745,ALWAYS}~{12158,1,1,0.166,ALWAYS}~{12159,1,1,0.05,ALWAYS}~{12160,1,1,0.025,ALWAYS}~{12163,1,1,0.014,ALWAYS}'), +(193, '', '{199,1,2,0.0,COMMON}~{201,1,2,0.0,COMMON}~{203,1,2,0.0,COMMON}~{205,1,2,0.0,COMMON}~{207,1,2,0.0,UNCOMMON}~{209,1,2,0.0,UNCOMMON}~{211,1,2,0.0,UNCOMMON}~{213,1,2,0.0,UNCOMMON}~{215,1,2,0.0,RARE}~{2485,1,2,0.0,RARE}~{217,1,2,0.0,RARE}~{556,12,12,0.0,COMMON}~{556,36,36,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,12,12,0.0,COMMON}~{561,3,3,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{1217,1,1,0.0,UNCOMMON}~{1313,1,1,0.0,UNCOMMON}~{995,3,3,0.0,COMMON}~{995,13,13,0.0,COMMON}~{235,1,1,0.0,COMMON}~{239,1,1,0.0,UNCOMMON}~{231,1,1,0.0,UNCOMMON}~{225,1,3,0.0,UNCOMMON}~{227,1,1,0.0,COMMON}~{167,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(199, '{526,1,1,0.0,ALWAYS}', '{995,5,25,0.0,COMMON}~{2142,1,1,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1595,1,1,0.0,COMMON}~{1917,1,1,0.0,COMMON}~{948,1,1,0.0,COMMON}~{1621,1,1,0.0,COMMON}~{1623,1,1,0.0,COMMON}~{1619,1,1,0.0,COMMON}~{1617,1,1,0.0,COMMON}', ''), +(202, '{526,1,1,0.0,ALWAYS}', '{559,12,12,0.0,UNCOMMON}~{562,3,3,0.0,RARE}~{563,1,3,0.0,RARE}~{561,3,3,0.0,RARE}~{555,30,30,0.0,UNCOMMON}~{1175,1,1,0.0,UNCOMMON}~{1325,1,1,0.0,RARE}~{1157,1,1,0.0,RARE}~{1353,1,1,0.0,UNCOMMON}~{1177,1,1,0.0,UNCOMMON}~{1313,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,120,300,0.0,COMMON}~{442,1,1,0.0,UNCOMMON}~{374,5,5,0.0,RARE}~{2851,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(203, '{526,1,1,0.0,ALWAYS}', '{559,12,12,0.0,UNCOMMON}~{555,30,30,0.0,UNCOMMON}~{562,3,3,0.0,RARE}~{563,2,2,0.0,RARE}~{561,4,4,0.0,RARE}~{995,10,69,0.0,COMMON}~{1157,1,1,0.0,COMMON}~{1313,1,1,0.0,RARE}~{2696,1,1,0.0,RARE}~{442,1,1,0.0,RARE}~{374,5,5,0.0,RARE}', ''), +(204, '', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,8,150,0.0,COMMON}~{442,3,3,0.0,UNCOMMON}~{563,1,1,0.0,UNCOMMON}~{565,1,1,0.0,UNCOMMON}~{561,3,3,0.0,UNCOMMON}~{1313,1,1,0.0,UNCOMMON}~{374,5,5,0.0,UNCOMMON}~{2857,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(205, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,COMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{555,12,12,0.0,COMMON}~{554,36,36,0.0,RARE}~{563,2,2,0.0,UNCOMMON}~{561,3,3,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1217,1,1,0.0,RARE}~{9142,2,12,0.0,RARE}~{830,1,1,0.0,RARE}~{1137,1,1,0.0,RARE}~{227,1,1,0.0,COMMON}~{239,1,1,0.0,UNCOMMON}~{231,1,1,0.0,UNCOMMON}~{995,3,24,0.0,COMMON}~{167,1,1,0.0,COMMON}~{1454,1,1,0.0,RARE}~{993,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(206, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2811,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(221, '{526,1,1,0.0,ALWAYS}', '{555,1,1,0.0,UNCOMMON}~{563,24,24,0.0,COMMON}~{564,2,2,0.0,UNCOMMON}~{562,2,2,0.0,UNCOMMON}~{560,2,2,0.0,UNCOMMON}~{554,15,15,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{1153,1,1,0.0,UNCOMMON}~{995,1,1,0.0,UNCOMMON}~{1446,1,1,0.0,UNCOMMON}~{5324,1,1,0.0,UNCOMMON}~{830,1,1,0.0,UNCOMMON}~{225,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{1191,1,1,0.0,UNCOMMON}~{1295,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.375,ALWAYS}~{12158,1,1,0.125,ALWAYS}~{12159,1,1,0.165,ALWAYS}~{12160,1,1,0.185,ALWAYS}~{12163,1,1,0.15,ALWAYS}'), +(224, '{526,1,1,0.0,ALWAYS}', '{2134,1,1,0.0,UNCOMMON}', ''), +(282, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{882,1,1,0.0,UNCOMMON}~{877,2,2,0.0,UNCOMMON}~{877,4,4,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{863,1,1,0.0,UNCOMMON}~{562,1,1,0.0,RARE}~{557,1,1,0.0,RARE}~{554,1,1,0.0,RARE}~{558,1,1,0.0,RARE}~{995,3,3,0.0,COMMON}~{995,5,5,0.0,COMMON}~{1440,1,1,0.0,RARE}~{2747,1,1,0.0,RARE}~{436,1,1,0.0,RARE}', ''), +(296, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2823,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(297, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2819,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(298, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2837,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(299, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2851,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(344, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2823,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(345, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2811,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(346, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2813,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(347, '{526,1,1,0.0,ALWAYS}~{1506,1,1,0.0,ALWAYS}~{6065,1,1,0.0,ALWAYS}~{6067,1,1,0.0,ALWAYS}~{6069,1,1,0.0,ALWAYS}~{6068,1,1,0.0,ALWAYS}~{6070,1,1,0.0,ALWAYS}', '', ''), +(348, '{526,1,1,0.0,ALWAYS}~{1506,1,1,0.0,ALWAYS}~{6065,1,1,0.0,ALWAYS}~{6067,1,1,0.0,ALWAYS}~{6069,1,1,0.0,ALWAYS}~{6068,1,1,0.0,ALWAYS}~{6070,1,1,0.0,ALWAYS}', '', ''), +(351, '{526,1,1,0.0,ALWAYS}', '{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{877,2,12,0.0,COMMON}~{882,7,7,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{995,1,40,0.0,COMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{2681,1,1,0.0,RARE}', ''), +(352, '{526,1,1,0.0,ALWAYS}', '{877,7,7,0.0,COMMON}~{882,2,12,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{995,1,400,0.0,COMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{2677,1,1,0.0,RARE}', ''), +(353, '{526,1,1,0.0,ALWAYS}', '{877,7,7,0.0,COMMON}~{882,2,12,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{995,1,400,0.0,COMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{2716,1,1,0.0,RARE}', ''), +(354, '{526,1,1,0.0,ALWAYS}', '{877,7,7,0.0,COMMON}~{882,2,12,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{995,1,400,0.0,COMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{2698,1,1,0.0,RARE}', ''), +(357, '{526,1,1,0.0,ALWAYS}~{1506,1,1,0.0,ALWAYS}~{6065,1,1,0.0,ALWAYS}~{6067,1,1,0.0,ALWAYS}~{6069,1,1,0.0,ALWAYS}~{6068,1,1,0.0,ALWAYS}~{6070,1,1,0.0,ALWAYS}', '', ''), +(359, '{526,1,1,0.0,ALWAYS}', '{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{877,2,12,0.0,COMMON}~{882,7,7,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{995,1,40,0.0,COMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{2705,1,1,0.0,RARE}', ''), +(360, '{526,1,1,0.0,ALWAYS}', '{877,7,7,0.0,COMMON}~{882,2,12,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{995,1,400,0.0,COMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{2693,1,1,0.0,RARE}', ''), +(361, '{526,1,1,0.0,ALWAYS}', '{877,7,7,0.0,COMMON}~{882,2,12,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{995,1,400,0.0,COMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{2692,1,1,0.0,RARE}', ''), +(362, '{526,1,1,0.0,ALWAYS}', '{877,7,7,0.0,COMMON}~{882,2,12,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{995,1,400,0.0,COMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{2703,1,1,0.0,RARE}', ''), +(363, '{526,1,1,0.0,ALWAYS}', '{877,7,7,0.0,COMMON}~{882,2,12,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{995,1,400,0.0,COMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{2680,1,1,0.0,RARE}', ''), +(365, '{526,1,1,0.0,ALWAYS}', '{201,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{1281,1,1,0.0,COMMON}~{1295,1,1,0.0,UNCOMMON}~{1157,1,1,0.0,UNCOMMON}~{555,30,30,0.0,COMMON}~{565,1,1,0.0,RARE}~{995,2,2,0.0,COMMON}~{995,8,8,0.0,COMMON}~{2351,1,1,0.0,COMMON}~{2359,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,UNCOMMON}~{1458,1,1,0.0,UNCOMMON}~{2821,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(368, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2855,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(369, '{526,1,1,0.0,ALWAYS}~{1506,1,1,0.0,ALWAYS}~{6065,1,1,0.0,ALWAYS}~{6067,1,1,0.0,ALWAYS}~{6069,1,1,0.0,ALWAYS}~{6068,1,1,0.0,ALWAYS}~{6070,1,1,0.0,ALWAYS}', '', ''), +(370, '{526,1,1,0.0,ALWAYS}~{1506,1,1,0.0,ALWAYS}~{6065,1,1,0.0,ALWAYS}~{6067,1,1,0.0,ALWAYS}~{6069,1,1,0.0,ALWAYS}~{6068,1,1,0.0,ALWAYS}~{6070,1,1,0.0,ALWAYS}', '', ''), +(371, '{526,1,1,0.0,ALWAYS}~{1506,1,1,0.0,ALWAYS}~{6065,1,1,0.0,ALWAYS}~{6067,1,1,0.0,ALWAYS}~{6069,1,1,0.0,ALWAYS}~{6068,1,1,0.0,ALWAYS}~{6070,1,1,0.0,ALWAYS}', '', ''), +(372, '{526,1,1,0.0,ALWAYS}~{1506,1,1,0.0,ALWAYS}~{6065,1,1,0.0,ALWAYS}~{6067,1,1,0.0,ALWAYS}~{6069,1,1,0.0,ALWAYS}~{6068,1,1,0.0,ALWAYS}~{6070,1,1,0.0,ALWAYS}', '', ''), +(374, '{532,1,1,0.0,ALWAYS}', '{7844,1,1,0.0,COMMON}~{10977,1,1,0.0,RARE}~{10976,1,1,0.0,RARE}~{5323,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.8250000000000001,ALWAYS}~{12158,1,1,0.136,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(382, '{526,1,1,0.0,ALWAYS}', '{1265,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{2349,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{440,1,1,0.0,COMMON}~{1267,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{561,2,2,0.0,RARE}~{562,2,2,0.0,RARE}~{1139,1,1,0.0,COMMON}~{1375,1,1,0.0,UNCOMMON}~{1363,1,1,0.0,UNCOMMON}~{877,2,2,0.0,UNCOMMON}~{877,11,11,0.0,UNCOMMON}~{995,4,4,0.0,COMMON}~{995,10,10,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1913,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.905,ALWAYS}~{12158,1,1,0.039,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(397, '{526,1,1,0.0,ALWAYS}~{1739,1,1,0.0,ALWAYS}~{2132,1,1,0.0,ALWAYS}', '', '{0,1,1,0.9500000000000001,ALWAYS}~{12158,1,1,0.008,ALWAYS}~{12159,1,1,0.038,ALWAYS}~{12160,1,1,0.002,ALWAYS}~{12163,1,1,0.001,ALWAYS}'), +(412, '', '{7833,1,1,0.0,COMMON}', '{0,1,1,0.8150000000000001,ALWAYS}~{12158,1,1,0.159,ALWAYS}~{12159,1,1,0.015,ALWAYS}~{12160,1,1,0.005,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(419, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,5,7,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(420, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,5,7,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(421, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,5,7,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(422, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,5,7,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(423, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,5,7,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(424, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,5,7,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(438, '{526,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1355,1,1,0.0,COMMON}~{1357,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,RARE}~{561,2,22,0.0,COMMON}~{1462,1,1,0.0,VERY_RARE}~{5296,1,1,0.0,COMMON}~{5106,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{5298,1,1,0.0,RARE}~{5304,1,1,0.0,VERY_RARE}~{5303,1,1,0.0,VERY_RARE}~{5302,1,1,0.0,VERY_RARE}~{5301,1,1,0.0,VERY_RARE}~{1619,1,1,0.0,RARE}~{1617,1,1,0.0,RARE}~{1621,1,1,0.0,UNCOMMON}~{1623,1,1,0.0,UNCOMMON}~{946,1,1,0.0,UNCOMMON}', ''), +(439, '{526,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1355,1,1,0.0,COMMON}~{1357,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,RARE}~{561,2,22,0.0,COMMON}~{1462,1,1,0.0,VERY_RARE}~{5296,1,1,0.0,COMMON}~{5106,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{5298,1,1,0.0,RARE}~{5304,1,1,0.0,VERY_RARE}~{5303,1,1,0.0,VERY_RARE}~{5302,1,1,0.0,VERY_RARE}~{5301,1,1,0.0,VERY_RARE}~{1619,1,1,0.0,RARE}~{1617,1,1,0.0,RARE}~{1621,1,1,0.0,UNCOMMON}~{1623,1,1,0.0,UNCOMMON}~{946,1,1,0.0,UNCOMMON}', '{0,1,1,0.8250000000000001,ALWAYS}~{12158,1,1,0.136,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(440, '{526,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1355,1,1,0.0,COMMON}~{1357,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,RARE}~{561,2,22,0.0,COMMON}~{1462,1,1,0.0,VERY_RARE}~{5296,1,1,0.0,COMMON}~{5106,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{5298,1,1,0.0,RARE}~{5304,1,1,0.0,VERY_RARE}~{5303,1,1,0.0,VERY_RARE}~{5302,1,1,0.0,VERY_RARE}~{5301,1,1,0.0,VERY_RARE}~{1619,1,1,0.0,RARE}~{1617,1,1,0.0,RARE}~{1621,1,1,0.0,UNCOMMON}~{1623,1,1,0.0,UNCOMMON}~{946,1,1,0.0,UNCOMMON}', '{0,1,1,0.8250000000000001,ALWAYS}~{12158,1,1,0.136,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(441, '{526,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1355,1,1,0.0,COMMON}~{1357,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,RARE}~{561,2,22,0.0,COMMON}~{1462,1,1,0.0,VERY_RARE}~{5296,1,1,0.0,COMMON}~{5106,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{5298,1,1,0.0,RARE}~{5304,1,1,0.0,VERY_RARE}~{5303,1,1,0.0,VERY_RARE}~{5302,1,1,0.0,VERY_RARE}~{5301,1,1,0.0,VERY_RARE}~{1619,1,1,0.0,RARE}~{1617,1,1,0.0,RARE}~{1621,1,1,0.0,UNCOMMON}~{1623,1,1,0.0,UNCOMMON}~{946,1,1,0.0,UNCOMMON}', '{0,1,1,0.8250000000000001,ALWAYS}~{12158,1,1,0.136,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(442, '{526,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1355,1,1,0.0,COMMON}~{1357,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,RARE}~{561,2,22,0.0,COMMON}~{1462,1,1,0.0,VERY_RARE}~{5296,1,1,0.0,COMMON}~{5106,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{5298,1,1,0.0,RARE}~{5304,1,1,0.0,VERY_RARE}~{5303,1,1,0.0,VERY_RARE}~{5302,1,1,0.0,VERY_RARE}~{5301,1,1,0.0,VERY_RARE}~{1619,1,1,0.0,RARE}~{1617,1,1,0.0,RARE}~{1621,1,1,0.0,UNCOMMON}~{1623,1,1,0.0,UNCOMMON}~{946,1,1,0.0,UNCOMMON}', '{0,1,1,0.8250000000000001,ALWAYS}~{12158,1,1,0.136,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(443, '{526,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1355,1,1,0.0,COMMON}~{1357,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,RARE}~{561,2,22,0.0,COMMON}~{1462,1,1,0.0,VERY_RARE}~{5296,1,1,0.0,COMMON}~{5106,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{5298,1,1,0.0,RARE}~{5304,1,1,0.0,VERY_RARE}~{5303,1,1,0.0,VERY_RARE}~{5302,1,1,0.0,VERY_RARE}~{5301,1,1,0.0,VERY_RARE}~{1619,1,1,0.0,RARE}~{1617,1,1,0.0,RARE}~{1621,1,1,0.0,UNCOMMON}~{1623,1,1,0.0,UNCOMMON}~{946,1,1,0.0,UNCOMMON}', '{0,1,1,0.8250000000000001,ALWAYS}~{12158,1,1,0.136,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(444, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2687,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', '{0,1,1,0.8250000000000001,ALWAYS}~{12158,1,1,0.136,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.004,ALWAYS}'); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(445, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2691,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(446, '{526,1,1,0.0,ALWAYS}~{2134,1,1,0.0,ALWAYS}', '', ''), +(459, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2855,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(490, '{592,1,1,0.0,ALWAYS}', '{1333,1,1,0.0,RARE}~{1185,1,1,0.0,UNCOMMON}~{4675,1,1,0.0,RARE}~{1673,1,1,0.0,COMMON}~{1654,1,1,0.0,COMMON}~{1635,1,1,0.0,COMMON}~{1696,1,1,0.0,COMMON}~{1639,1,1,0.0,COMMON}~{2566,1,1,0.0,UNCOMMON}~{1727,1,1,0.0,COMMON}~{1656,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,COMMON}~{11072,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,1,0.0,UNCOMMON}~{405,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,COMMON}~{444,1,1,0.0,COMMON}~{970,1,1,0.0,COMMON}~{9032,1,1,0.0,COMMON}~{1939,1,17,0.0,COMMON}~{950,1,1,0.0,COMMON}~{2007,10,10,0.0,RARE}~{2835,1,1,0.0,RARE}~{6808,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(582, '{526,1,1,0.0,ALWAYS}', '{1265,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{2349,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{440,1,1,0.0,COMMON}~{1267,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{561,2,2,0.0,RARE}~{562,2,2,0.0,RARE}~{1139,1,1,0.0,COMMON}~{1375,1,1,0.0,UNCOMMON}~{1363,1,1,0.0,UNCOMMON}~{877,2,2,0.0,UNCOMMON}~{877,11,11,0.0,UNCOMMON}~{995,4,4,0.0,COMMON}~{995,10,10,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1913,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.905,ALWAYS}~{12158,1,1,0.039,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(609, '{526,1,1,0.0,ALWAYS}', '{556,1,1,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,UNCOMMON}~{557,1,1,0.0,COMMON}~{561,1,1,0.0,UNCOMMON}~{554,1,1,0.0,COMMON}~{882,1,1,0.0,COMMON}~{886,1,1,0.0,UNCOMMON}~{1446,1,1,0.0,COMMON}~{5324,1,1,0.0,UNCOMMON}~{995,1,1,0.0,COMMON}~{1947,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,COMMON}~{440,1,1,0.0,UNCOMMON}~{5318,1,1,0.0,UNCOMMON}', ''), +(652, '', '{556,5,5,0.0,COMMON}~{556,12,12,0.0,COMMON}~{554,5,5,0.0,COMMON}~{554,12,12,0.0,COMMON}~{555,5,5,0.0,COMMON}~{555,12,12,0.0,COMMON}~{557,5,5,0.0,COMMON}~{557,12,12,0.0,COMMON}~{559,5,5,0.0,COMMON}~{559,12,12,0.0,COMMON}~{558,5,5,0.0,COMMON}~{558,12,12,0.0,COMMON}~{562,2,2,0.0,RARE}~{562,10,10,0.0,RARE}~{561,2,2,0.0,RARE}~{563,2,2,0.0,RARE}~{565,2,2,0.0,RARE}~{1379,1,1,0.0,COMMON}~{995,1,30,0.0,COMMON}~{1448,1,1,0.0,COMMON}~{1444,1,1,0.0,UNCOMMON}', '{0,1,1,0.78,ALWAYS}~{12158,1,1,0.116,ALWAYS}~{12159,1,1,0.06,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(663, '{526,1,1,0.0,ALWAYS}', '{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{877,2,12,0.0,COMMON}~{882,7,7,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{995,1,40,0.0,COMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{2678,1,1,0.0,RARE}', ''), +(667, '{526,1,1,0.0,ALWAYS}~{780,1,1,0.0,ALWAYS}', '', ''), +(675, '{526,1,1,0.0,ALWAYS}', '{995,10,56,0.0,COMMON}', ''), +(677, '{592,1,1,0.0,ALWAYS}', '{1365,1,1,0.0,COMMON}~{1361,1,1,0.0,COMMON}~{1283,1,1,0.0,COMMON}~{1313,1,1,0.0,COMMON}~{1165,1,1,0.0,COMMON}~{1197,1,1,0.0,COMMON}~{1147,1,1,0.0,RARE}~{1163,1,1,0.0,RARE}~{1113,1,1,0.0,RARE}~{1185,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{556,50,75,0.0,COMMON}~{565,7,7,0.0,UNCOMMON}~{554,37,40,0.0,COMMON}~{562,10,10,0.0,COMMON}~{563,3,5,0.0,COMMON}~{2361,1,1,0.0,COMMON}~{454,20,20,0.0,RARE}~{995,132,1100,0.0,COMMON}~{379,1,1,0.0,UNCOMMON}~{133,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.23,ALWAYS}~{12158,1,1,0.20500000000000002,ALWAYS}~{12159,1,1,0.105,ALWAYS}~{12160,1,1,0.44,ALWAYS}~{12163,1,1,0.02,ALWAYS}'), +(678, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2823,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(708, '{592,1,1,0.0,ALWAYS}', '{877,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{1944,1,1,0.0,UNCOMMON}~{2138,1,1,0.0,UNCOMMON}~{2309,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{2142,1,1,0.0,RARE}~{1933,1,1,0.0,RARE}~{1759,1,1,0.0,COMMON}~{2347,1,1,0.0,COMMON}~{1474,1,1,0.0,COMMON}~{1470,1,1,0.0,COMMON}~{1476,1,1,0.0,COMMON}~{1472,1,1,0.0,COMMON}~{1448,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{2146,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{753,1,1,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{1735,1,1,0.0,UNCOMMON}~{1925,1,1,0.0,UNCOMMON}~{1929,1,1,0.0,RARE}~{1935,1,1,0.0,RARE}~{1937,1,1,0.0,RARE}~{1993,1,1,0.0,RARE}~{195,1,1,0.0,RARE}~{1931,1,1,0.0,RARE}~{2311,1,1,0.0,RARE}~{956,1,1,0.0,RARE}~{1438,1,1,0.0,RARE}~{2349,1,1,0.0,RARE}~{1927,1,1,0.0,RARE}~{2357,1,1,0.0,RARE}~{9442,1,1,0.0,RARE}~{434,1,1,0.0,RARE}', ''), +(709, '{592,1,1,0.0,ALWAYS}', '{877,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{1944,1,1,0.0,UNCOMMON}~{2138,1,1,0.0,UNCOMMON}~{2309,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{2142,1,1,0.0,RARE}~{1933,1,1,0.0,RARE}~{1759,1,1,0.0,COMMON}~{2347,1,1,0.0,COMMON}~{1474,1,1,0.0,COMMON}~{1470,1,1,0.0,COMMON}~{1476,1,1,0.0,COMMON}~{1472,1,1,0.0,COMMON}~{1448,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{2146,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{753,1,1,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{1735,1,1,0.0,UNCOMMON}~{1925,1,1,0.0,UNCOMMON}~{1929,1,1,0.0,RARE}~{1935,1,1,0.0,RARE}~{1937,1,1,0.0,RARE}~{1993,1,1,0.0,RARE}~{195,1,1,0.0,RARE}~{1931,1,1,0.0,RARE}~{2311,1,1,0.0,RARE}~{956,1,1,0.0,RARE}~{1438,1,1,0.0,RARE}~{2349,1,1,0.0,RARE}~{1927,1,1,0.0,RARE}~{2357,1,1,0.0,RARE}~{9442,1,1,0.0,RARE}~{434,1,1,0.0,RARE}', ''), +(717, '{526,1,1,0.0,ALWAYS}~{1506,1,1,0.0,ALWAYS}~{6065,1,1,0.0,ALWAYS}~{6067,1,1,0.0,ALWAYS}~{6069,1,1,0.0,ALWAYS}~{6068,1,1,0.0,ALWAYS}~{6070,1,1,0.0,ALWAYS}', '', ''), +(718, '{526,1,1,0.0,ALWAYS}~{1506,1,1,0.0,ALWAYS}~{6065,1,1,0.0,ALWAYS}~{6067,1,1,0.0,ALWAYS}~{6069,1,1,0.0,ALWAYS}~{6068,1,1,0.0,ALWAYS}~{6070,1,1,0.0,ALWAYS}', '', ''), +(719, '{526,1,1,0.0,ALWAYS}~{1506,1,1,0.0,ALWAYS}~{6065,1,1,0.0,ALWAYS}~{6067,1,1,0.0,ALWAYS}~{6069,1,1,0.0,ALWAYS}~{6068,1,1,0.0,ALWAYS}~{6070,1,1,0.0,ALWAYS}', '', ''), +(726, '{526,1,1,0.0,ALWAYS}', '{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{877,2,12,0.0,COMMON}~{882,7,7,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{995,1,40,0.0,COMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{2679,1,1,0.0,RARE}', ''), +(727, '{526,1,1,0.0,ALWAYS}', '{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{877,2,12,0.0,COMMON}~{882,7,7,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{995,1,40,0.0,COMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{2696,1,1,0.0,RARE}', ''), +(728, '{526,1,1,0.0,ALWAYS}', '{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{877,2,12,0.0,COMMON}~{882,7,7,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{995,1,40,0.0,COMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{2694,1,1,0.0,RARE}', ''), +(729, '{526,1,1,0.0,ALWAYS}', '{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{877,2,12,0.0,COMMON}~{882,7,7,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{995,1,40,0.0,COMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{2712,1,1,0.0,RARE}', ''), +(730, '{526,1,1,0.0,ALWAYS}', '{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{877,2,12,0.0,COMMON}~{882,7,7,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{995,1,40,0.0,COMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{2680,1,1,0.0,RARE}', ''), +(749, '', '{1191,1,1,0.0,COMMON}~{1081,1,1,0.0,COMMON}~{11371,1,1,0.0,COMMON}~{857,1,1,0.0,COMMON}~{1371,1,1,0.0,UNCOMMON}~{1430,1,1,0.0,UNCOMMON}~{1391,1,1,0.0,UNCOMMON}~{1428,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1157,1,1,0.0,UNCOMMON}~{1193,1,1,0.0,UNCOMMON}~{1295,1,1,0.0,UNCOMMON}~{1424,1,1,0.0,UNCOMMON}~{1325,1,1,0.0,UNCOMMON}~{1143,1,1,0.0,RARE}~{1333,1,1,0.0,RARE}~{9145,5,5,0.0,COMMON}~{886,20,20,0.0,COMMON}~{890,5,5,0.0,UNCOMMON}~{565,3,3,0.0,UNCOMMON}~{565,5,5,0.0,UNCOMMON}~{560,5,5,0.0,UNCOMMON}~{9419,2,2,0.0,UNCOMMON}~{808,10,10,0.0,UNCOMMON}~{865,10,10,0.0,UNCOMMON}~{9144,10,10,0.0,RARE}~{2356,3,3,0.0,COMMON}~{2354,3,3,0.0,COMMON}~{2357,1,1,0.0,COMMON}~{444,1,1,0.0,UNCOMMON}~{2361,1,1,0.0,RARE}~{11443,1,1,0.0,COMMON}~{11465,1,1,0.0,COMMON}~{211,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{995,106,467,0.0,COMMON}~{1515,1,1,0.0,COMMON}~{1623,1,1,0.0,UNCOMMON}~{1619,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,UNCOMMON}~{11359,1,1,0.0,UNCOMMON}~{2827,1,1,0.0,RARE}', ''), +(750, '', '{11371,1,1,0.0,COMMON}~{1191,1,1,0.0,COMMON}~{1081,1,1,0.0,COMMON}~{1371,1,1,0.0,UNCOMMON}~{1430,1,1,0.0,UNCOMMON}~{1391,1,1,0.0,UNCOMMON}~{1428,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1193,1,1,0.0,UNCOMMON}~{1157,1,1,0.0,UNCOMMON}~{1295,1,1,0.0,UNCOMMON}~{1424,1,1,0.0,UNCOMMON}~{1325,1,1,0.0,UNCOMMON}~{857,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,RARE}~{9145,5,5,0.0,COMMON}~{886,20,20,0.0,COMMON}~{890,5,5,0.0,UNCOMMON}~{560,5,5,0.0,UNCOMMON}~{565,3,3,0.0,UNCOMMON}~{565,5,5,0.0,UNCOMMON}~{9419,2,2,0.0,UNCOMMON}~{808,10,10,0.0,UNCOMMON}~{865,10,10,0.0,UNCOMMON}~{9144,10,10,0.0,RARE}~{2357,1,1,0.0,COMMON}~{2356,3,3,0.0,COMMON}~{2354,3,3,0.0,COMMON}~{444,1,1,0.0,UNCOMMON}~{11443,1,1,0.0,COMMON}~{11465,1,1,0.0,COMMON}~{203,1,1,0.0,UNCOMMON}~{995,106,106,0.0,COMMON}~{995,142,142,0.0,COMMON}~{1515,1,1,0.0,COMMON}~{11359,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,UNCOMMON}~{2819,1,1,0.0,RARE}', ''), +(751, '', '{1333,1,1,0.0,UNCOMMON}~{11371,1,1,0.0,UNCOMMON}~{1295,1,1,0.0,UNCOMMON}~{1371,1,1,0.0,UNCOMMON}~{865,10,10,0.0,UNCOMMON}~{1424,1,1,0.0,UNCOMMON}~{857,1,1,0.0,UNCOMMON}~{808,10,10,0.0,UNCOMMON}~{1391,1,1,0.0,UNCOMMON}~{1430,1,1,0.0,UNCOMMON}~{1428,1,1,0.0,UNCOMMON}~{1191,1,1,0.0,UNCOMMON}~{1081,1,1,0.0,UNCOMMON}~{1193,1,1,0.0,UNCOMMON}~{1157,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{890,5,5,0.0,UNCOMMON}~{886,20,20,0.0,UNCOMMON}~{9145,5,5,0.0,UNCOMMON}~{9144,10,10,0.0,UNCOMMON}~{560,5,5,0.0,UNCOMMON}~{565,3,3,0.0,UNCOMMON}~{565,5,5,0.0,UNCOMMON}~{1515,1,1,0.0,UNCOMMON}~{2354,3,3,0.0,UNCOMMON}~{2823,1,1,0.0,RARE}~{11443,1,1,0.0,RARE}~{11359,1,1,0.0,UNCOMMON}~{11465,1,1,0.0,COMMON}', ''), +(752, '', '{1371,1,1,0.0,RARE}~{1373,1,1,0.0,RARE}~{1428,1,1,0.0,COMMON}~{1430,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,RARE}~{1325,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,RARE}~{1295,1,1,0.0,UNCOMMON}~{11367,1,1,0.0,COMMON}~{11369,1,1,0.0,UNCOMMON}~{11371,1,1,0.0,UNCOMMON}~{11373,1,1,0.0,RARE}~{11375,1,1,0.0,RARE}~{1391,1,1,0.0,RARE}~{1181,1,1,0.0,UNCOMMON}~{1157,1,1,0.0,COMMON}~{1193,1,1,0.0,COMMON}~{1191,1,1,0.0,COMMON}~{1081,1,1,0.0,COMMON}~{1149,1,1,0.0,RARE}~{867,20,20,0.0,COMMON}~{892,10,10,0.0,UNCOMMON}~{9419,2,2,0.0,COMMON}~{9144,10,10,0.0,UNCOMMON}~{9145,5,5,0.0,COMMON}~{560,6,9,0.0,UNCOMMON}~{11467,1,1,0.0,COMMON}~{11465,1,1,0.0,COMMON}~{11507,1,1,0.0,UNCOMMON}~{11505,1,1,0.0,UNCOMMON}~{11475,1,1,0.0,RARE}~{11473,1,1,0.0,RARE}~{5295,1,1,0.0,COMMON}~{995,106,106,0.0,RARE}~{533,10,10,0.0,UNCOMMON}~{383,1,1,0.0,RARE}~{385,3,3,0.0,UNCOMMON}~{2355,2,2,0.0,UNCOMMON}~{2360,2,2,0.0,RARE}~{2362,1,1,0.0,RARE}~{2364,1,1,0.0,RARE}~{857,1,1,0.0,RARE}~{1515,13,13,0.0,UNCOMMON}~{11359,1,1,0.0,UNCOMMON}~{2849,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(812, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2841,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(839, '{2859,1,1,0.0,ALWAYS}', '', ''), +(840, '{526,1,1,0.0,ALWAYS}~{1861,1,1,0.0,ALWAYS}', '', ''), +(852, '{532,1,1,0.0,ALWAYS}', '{5292,1,1,0.0,RARE}~{5294,1,1,0.0,RARE}~{5311,1,1,0.0,RARE}~{5106,1,1,0.0,RARE}~{5100,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{5296,1,1,0.0,RARE}', ''), +(870, '', '{5294,1,1,0.0,COMMON}~{5323,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5292,1,1,0.0,COMMON}~{5100,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}', '{0,1,1,0.0,ALWAYS}~{12158,1,1,0.0,ALWAYS}~{12159,1,1,0.0,ALWAYS}~{12160,1,1,0.0,ALWAYS}~{12163,1,1,0.0,ALWAYS}'), +(877, '', '{556,8,8,0.0,UNCOMMON}~{565,2,2,0.0,UNCOMMON}~{562,3,3,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{882,4,4,0.0,UNCOMMON}~{886,2,8,0.0,UNCOMMON}~{1295,1,1,0.0,COMMON}~{1141,1,1,0.0,UNCOMMON}~{995,6,35,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{1448,1,1,0.0,UNCOMMON}', ''), +(878, '{526,1,1,0.0,ALWAYS}', '{1295,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{1137,1,1,0.0,UNCOMMON}~{556,8,8,0.0,UNCOMMON}~{562,3,3,0.0,UNCOMMON}~{554,6,6,0.0,RARE}~{561,2,2,0.0,UNCOMMON}~{565,2,2,0.0,UNCOMMON}~{995,6,30,0.0,COMMON}~{882,4,4,0.0,UNCOMMON}~{886,2,2,0.0,UNCOMMON}~{886,8,8,0.0,UNCOMMON}~{1448,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}', ''), +(887, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2849,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(941, '{536,1,1,0.0,ALWAYS}~{1753,1,1,0.0,ALWAYS}', '{1069,1,1,0.0,COMMON}~{1197,1,1,0.0,UNCOMMON}~{1161,1,1,0.0,RARE}~{1365,1,1,0.0,COMMON}~{1355,1,1,0.0,COMMON}~{1243,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,UNCOMMON}~{555,75,150,0.0,COMMON}~{554,37,37,0.0,COMMON}~{561,15,15,0.0,COMMON}~{561,30,30,0.0,COMMON}~{563,3,3,0.0,COMMON}~{209,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{199,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,11,440,0.0,COMMON}~{365,1,1,0.0,COMMON}~{449,1,1,0.0,UNCOMMON}~{2739,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.66,ALWAYS}~{12158,1,1,0.085,ALWAYS}~{12159,1,1,0.165,ALWAYS}~{12160,1,1,0.075,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(951, '{526,1,1,0.0,ALWAYS}~{2138,1,1,0.0,ALWAYS}~{314,11,30,0.0,COMMON}', '', ''), +(955, '{526,1,1,0.0,ALWAYS}~{1739,1,1,0.0,ALWAYS}~{2132,1,1,0.0,ALWAYS}', '', '{0,1,1,0.9500000000000001,ALWAYS}~{12158,1,1,0.008,ALWAYS}~{12159,1,1,0.038,ALWAYS}~{12160,1,1,0.002,ALWAYS}~{12163,1,1,0.001,ALWAYS}'), +(987, '{526,1,1,0.0,ALWAYS}~{237,1,1,0.0,ALWAYS}', '{7821,1,1,0.0,COMMON}', ''), +(988, '{526,1,1,0.0,ALWAYS}~{1490,1,1,0.0,ALWAYS}', '{1157,1,1,0.0,UNCOMMON}~{1295,1,1,0.0,UNCOMMON}~{1281,1,1,0.0,UNCOMMON}~{555,30,30,0.0,UNCOMMON}~{995,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,UNCOMMON}', ''), +(989, '', '{1281,1,1,0.0,UNCOMMON}~{1295,1,1,0.0,UNCOMMON}~{1157,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,1,1,0.0,UNCOMMON}~{1623,1,1,0.0,UNCOMMON}~{555,30,30,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,UNCOMMON}', ''), +(990, '{526,1,1,0.0,ALWAYS}~{1490,1,1,0.0,ALWAYS}', '{1157,1,1,0.0,UNCOMMON}~{1295,1,1,0.0,UNCOMMON}~{1281,1,1,0.0,UNCOMMON}~{555,30,30,0.0,UNCOMMON}~{995,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,UNCOMMON}~{2359,1,1,0.0,UNCOMMON}', ''), +(998, '{592,1,1,0.0,ALWAYS}~{1497,1,1,0.0,ALWAYS}', '', ''), +(999, '{592,1,1,0.0,ALWAYS}~{1498,1,1,0.0,ALWAYS}', '', ''), +(1000, '{592,1,1,0.0,ALWAYS}~{1499,1,1,0.0,ALWAYS}', '', ''), +(1002, '{526,1,1,0.0,ALWAYS}~{1410,1,1,0.0,ALWAYS}', '', ''), +(1004, '', '', '{0,1,1,0.92,ALWAYS}~{12158,1,1,0.02,ALWAYS}~{12159,1,1,0.034,ALWAYS}~{12160,1,1,0.013000000000000001,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(1005, '{530,1,1,0.0,ALWAYS}', '{7829,1,1,0.0,COMMON}', '{0,1,1,0.785,ALWAYS}~{12158,1,1,0.197,ALWAYS}~{12159,1,1,0.005,ALWAYS}~{12160,1,1,0.01,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(1007, '{526,1,1,0.0,ALWAYS}', '{1397,1,1,0.0,UNCOMMON}~{1399,1,1,0.0,UNCOMMON}~{1393,1,1,0.0,UNCOMMON}~{1395,1,1,0.0,UNCOMMON}~{556,60,60,0.0,COMMON}~{556,189,189,0.0,COMMON}~{557,79,79,0.0,COMMON}~{557,86,86,0.0,COMMON}~{554,51,51,0.0,COMMON}~{554,180,180,0.0,COMMON}~{555,86,86,0.0,COMMON}~{555,107,107,0.0,COMMON}~{565,8,8,0.0,UNCOMMON}~{564,25,25,0.0,UNCOMMON}~{560,45,45,0.0,UNCOMMON}~{563,9,9,0.0,UNCOMMON}~{561,12,12,0.0,UNCOMMON}~{561,28,28,0.0,UNCOMMON}~{995,77,77,0.0,COMMON}~{995,89,89,0.0,COMMON}', ''), +(1016, '{526,1,1,0.0,ALWAYS}~{2876,1,1,0.0,ALWAYS}~{314,11,30,0.0,ALWAYS}', '', ''), +(1017, '{526,1,1,0.0,ALWAYS}~{2138,1,1,0.0,ALWAYS}~{314,11,30,0.0,COMMON}', '', ''), +(1019, '{592,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{554,10,20,0.0,COMMON}~{562,2,2,0.0,COMMON}~{560,1,1,0.0,UNCOMMON}~{561,2,2,0.0,UNCOMMON}~{563,1,1,0.0,UNCOMMON}~{565,1,1,0.0,UNCOMMON}~{995,12,42,0.0,COMMON}~{1387,1,1,0.0,COMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.86,ALWAYS}~{12158,1,1,0.04,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.069,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(1020, '{2892,1,1,0.0,ALWAYS}', '{565,1,2,0.0,UNCOMMON}~{560,1,1,0.0,UNCOMMON}~{563,1,1,0.0,UNCOMMON}~{562,2,2,0.0,UNCOMMON}~{557,15,20,0.0,UNCOMMON}~{561,2,2,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1385,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,12,12,0.0,COMMON}~{995,42,42,0.0,COMMON}~{995,250,250,0.0,COMMON}~{995,3000,3000,0.0,COMMON}~{1623,1,1,0.0,COMMON}~{1621,1,1,0.0,COMMON}~{1619,1,1,0.0,COMMON}~{1617,1,1,0.0,UNCOMMON}~{987,1,1,0.0,UNCOMMON}~{985,1,1,0.0,UNCOMMON}~{1631,1,1,0.0,RARE}~{1615,1,1,0.0,RARE}~{1215,1,1,0.0,UNCOMMON}~{830,5,5,0.0,RARE}~{829,20,20,0.0,RARE}~{1319,1,1,0.0,RARE}~{1247,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1216,50,50,0.0,RARE}~{1185,1,1,0.0,RARE}~{1201,1,1,0.0,RARE}~{2366,1,1,0.0,RARE}~{1149,1,1,0.0,RARE}~{9143,200,200,0.0,UNCOMMON}~{9342,150,150,0.0,RARE}~{892,150,200,0.0,RARE}~{892,500,500,0.0,RARE}~{1392,200,200,0.0,RARE}~{574,1000,1000,0.0,RARE}~{570,1000,1000,0.0,RARE}~{1444,1,1,0.0,UNCOMMON}~{1441,25,35,0.0,UNCOMMON}~{1443,25,35,0.0,UNCOMMON}~{1452,1,1,0.0,UNCOMMON}~{1462,1,1,0.0,UNCOMMON}~{7937,500,15000,0.0,UNCOMMON}~{561,47,77,0.0,RARE}~{566,20,20,0.0,RARE}~{563,45,45,0.0,RARE}~{560,50,50,0.0,RARE}~{560,121,121,0.0,RARE}~{565,50,50,0.0,RARE}~{372,125,250,0.0,UNCOMMON}~{372,1000,1000,0.0,UNCOMMON}~{384,250,500,0.0,UNCOMMON}~{533,150,500,0.0,UNCOMMON}~{454,150,7500,0.0,UNCOMMON}~{450,150,800,0.0,UNCOMMON}~{443,100,100,0.0,RARE}~{452,100,100,0.0,RARE}~{2362,1000,7000,0.0,RARE}~{2364,1,1,0.0,RARE}~{2364,50,50,0.0,RARE}~{258,33,33,0.0,UNCOMMON}~{2999,25,250,0.0,UNCOMMON}~{3001,30,120,0.0,UNCOMMON}~{270,10,100,0.0,UNCOMMON}~{6686,250,250,0.0,RARE}~{5321,3,3,0.0,UNCOMMON}~{5315,1,50,0.0,RARE}~{5316,1,6,0.0,RARE}~{5289,10,10,0.0,RARE}~{5300,1,1,0.0,RARE}~{5304,1,31,0.0,RARE}~{1516,100,20000,0.0,RARE}', ''), +(1021, '', '{556,15,20,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,1,1,0.0,COMMON}~{560,1,1,0.0,UNCOMMON}~{565,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(1022, '{227,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,COMMON}~{209,1,1,0.0,COMMON}~{211,1,1,0.0,COMMON}~{213,1,1,0.0,COMMON}~{215,1,1,0.0,COMMON}~{2485,1,1,0.0,COMMON}~{217,1,1,0.0,UNCOMMON}~{555,15,20,0.0,COMMON}~{563,1,1,0.0,COMMON}~{561,2,2,0.0,COMMON}~{562,2,2,0.0,COMMON}~{560,1,1,0.0,UNCOMMON}~{565,1,1,0.0,UNCOMMON}~{995,10,40,0.0,COMMON}~{1383,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(1023, '', '{1361,1,1,0.0,UNCOMMON}~{562,3,3,0.0,COMMON}~{560,2,2,0.0,COMMON}~{557,4,4,0.0,UNCOMMON}~{565,1,2,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,RARE}~{5298,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{995,15,15,0.0,COMMON}~{2837,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.895,ALWAYS}~{12158,1,1,0.045,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.035,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(1029, '', '{855,1,1,0.0,UNCOMMON}~{1353,1,1,0.0,UNCOMMON}~{1097,1,1,0.0,RARE}~{1157,1,1,0.0,RARE}~{361,1,1,0.0,COMMON}~{1901,1,1,0.0,COMMON}~{2293,1,1,0.0,UNCOMMON}~{7178,1,1,0.0,UNCOMMON}~{247,1,1,0.0,UNCOMMON}~{1539,5,5,0.0,COMMON}~{1784,4,4,0.0,COMMON}~{1523,1,1,0.0,COMMON}~{7936,1,1,0.0,COMMON}~{5970,1,1,0.0,COMMON}~{453,1,1,0.0,UNCOMMON}~{1777,1,1,0.0,UNCOMMON}~{231,1,1,0.0,UNCOMMON}~{1761,1,1,0.0,UNCOMMON}~{8778,1,1,0.0,RARE}~{133,1,1,0.0,RARE}~{2359,1,1,0.0,RARE}~{2347,1,1,0.0,UNCOMMON}', ''), +(1030, '', '{365,1,1,0.0,COMMON}~{361,1,1,0.0,COMMON}~{2011,1,1,0.0,COMMON}~{2327,1,1,0.0,COMMON}~{1897,1,1,0.0,COMMON}~{2293,1,1,0.0,COMMON}~{5004,1,1,0.0,COMMON}~{1883,1,1,0.0,UNCOMMON}~{247,1,1,0.0,UNCOMMON}~{380,4,4,0.0,UNCOMMON}~{386,3,3,0.0,UNCOMMON}~{7170,1,1,0.0,UNCOMMON}~{5755,1,1,0.0,UNCOMMON}~{7178,1,1,0.0,UNCOMMON}~{7188,1,1,0.0,UNCOMMON}~{10137,5,5,0.0,RARE}~{7179,6,6,0.0,RARE}~{374,3,3,0.0,RARE}~{10136,1,1,0.0,RARE}~{5406,1,1,0.0,RARE}~{2007,1,1,0.0,COMMON}~{5970,1,1,0.0,COMMON}~{3145,2,2,0.0,RARE}~{3143,2,2,0.0,RARE}', ''), +(1032, '', '{562,4,4,0.0,COMMON}~{555,1330,1330,0.0,COMMON}~{558,25,25,0.0,COMMON}~{556,30,30,0.0,COMMON}~{559,28,30,0.0,COMMON}~{554,50,50,0.0,COMMON}~{1448,1,1,0.0,COMMON}~{7937,20,35,0.0,COMMON}~{1436,20,20,0.0,COMMON}~{564,4,4,0.0,UNCOMMON}~{4695,4,4,0.0,UNCOMMON}~{4696,4,4,0.0,UNCOMMON}~{4698,4,4,0.0,UNCOMMON}~{4694,4,4,0.0,UNCOMMON}~{4699,4,4,0.0,RARE}~{4697,4,4,0.0,RARE}~{565,7,7,0.0,RARE}~{566,11,11,0.0,RARE}~{563,13,13,0.0,RARE}~{561,13,13,0.0,RARE}~{560,13,13,0.0,RARE}~{1442,1,1,0.0,RARE}', ''), +(1033, '', '{1391,1,1,0.0,RARE}~{1273,1,1,0.0,COMMON}~{2493,1,1,0.0,RARE}~{1199,1,1,0.0,UNCOMMON}~{10083,1,1,0.0,RARE}~{1213,1,1,0.0,RARE}~{5970,1,1,0.0,COMMON}~{231,1,1,0.0,COMMON}~{444,1,1,0.0,UNCOMMON}~{2358,5,5,0.0,UNCOMMON}~{450,10,10,0.0,RARE}~{556,30,57,0.0,COMMON}~{7936,20,35,0.0,UNCOMMON}~{237,1,1,0.0,UNCOMMON}~{1601,1,1,0.0,RARE}~{5760,2,2,0.0,RARE}~{7208,1,1,0.0,RARE}~{8779,4,4,0.0,COMMON}~{5321,3,3,0.0,RARE}', ''), +(1035, '', '{1701,3,3,0.0,COMMON}~{1732,3,3,0.0,COMMON}~{2569,3,3,0.0,COMMON}~{3391,1,1,0.0,COMMON}~{1347,1,1,0.0,UNCOMMON}~{2571,4,5,0.0,UNCOMMON}~{1215,1,1,0.0,RARE}~{1185,1,1,0.0,RARE}~{5541,1,1,0.0,COMMON}~{1748,6,6,0.0,COMMON}~{2364,2,2,0.0,UNCOMMON}~{1603,1,1,0.0,UNCOMMON}~{1602,4,4,0.0,RARE}~{5287,1,1,0.0,RARE}~{987,1,1,0.0,RARE}~{985,1,1,0.0,RARE}~{993,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{12121,1,1,0.0,RARE}', ''), +(1052, '', '{1203,1,1,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{830,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{559,1,3,0.0,COMMON}~{556,1,3,0.0,COMMON}~{554,7,7,0.0,UNCOMMON}~{562,4,4,0.0,UNCOMMON}~{564,2,2,0.0,RARE}~{995,1,125,0.0,COMMON}~{313,7,7,0.0,COMMON}~{438,1,1,0.0,UNCOMMON}~{221,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{7218,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1053, '', '{1203,1,1,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{830,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{559,1,3,0.0,COMMON}~{556,1,3,0.0,COMMON}~{554,7,7,0.0,UNCOMMON}~{562,4,4,0.0,UNCOMMON}~{564,2,2,0.0,RARE}~{995,1,125,0.0,COMMON}~{313,7,7,0.0,COMMON}~{438,1,1,0.0,UNCOMMON}~{221,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{7218,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1076, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2829,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(1077, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2837,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(1086, '{526,1,1,0.0,ALWAYS}', '{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{877,2,12,0.0,COMMON}~{882,7,7,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{995,1,40,0.0,COMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{2695,1,1,0.0,RARE}', ''), +(1087, '{526,1,1,0.0,ALWAYS}', '{562,2,9,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{877,3,12,0.0,UNCOMMON}~{882,7,7,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{995,3,25,0.0,COMMON}~{1965,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{7767,1,1,0.0,UNCOMMON}', ''), +(1092, '{526,1,1,0.0,ALWAYS}', '{555,20,47,0.0,COMMON}~{559,9,24,0.0,COMMON}~{558,5,5,0.0,COMMON}~{558,7,7,0.0,COMMON}~{562,2,5,0.0,UNCOMMON}~{561,4,7,0.0,UNCOMMON}~{563,2,3,0.0,RARE}~{565,2,3,0.0,RARE}~{1293,1,1,0.0,COMMON}~{1281,1,1,0.0,COMMON}~{888,5,5,0.0,COMMON}~{888,7,7,0.0,COMMON}~{890,2,5,0.0,UNCOMMON}~{890,7,7,0.0,UNCOMMON}~{1141,1,1,0.0,COMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{5318,4,4,0.0,COMMON}~{5322,3,3,0.0,COMMON}~{5324,4,4,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5320,3,3,0.0,UNCOMMON}~{5321,2,2,0.0,UNCOMMON}~{5323,2,2,0.0,RARE}~{995,1,200,0.0,COMMON}~{1933,1,1,0.0,RARE}~{2335,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2351,1,2,0.0,COMMON}~{31,1,1,0.0,RARE}', ''), +(1096, '{532,1,1,0.0,ALWAYS}', '{561,16,16,0.0,UNCOMMON}~{557,25,25,0.0,UNCOMMON}~{557,65,65,0.0,UNCOMMON}~{563,4,4,0.0,UNCOMMON}~{1119,1,1,0.0,UNCOMMON}~{1339,1,1,0.0,COMMON}~{1357,1,1,0.0,COMMON}~{1183,1,1,0.0,COMMON}~{1341,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,RARE}~{3122,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,UNCOMMON}~{10977,1,1,0.0,UNCOMMON}~{362,4,4,0.0,UNCOMMON}~{454,6,6,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(1097, '{532,1,1,0.0,ALWAYS}', '{1183,1,1,0.0,UNCOMMON}~{1341,1,1,0.0,UNCOMMON}~{3122,1,1,0.0,UNCOMMON}~{1121,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1119,1,1,0.0,UNCOMMON}~{1339,1,1,0.0,UNCOMMON}~{1357,1,1,0.0,UNCOMMON}~{995,1,1,0.0,COMMON}~{563,4,4,0.0,UNCOMMON}~{557,80,80,0.0,UNCOMMON}~{10976,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.54,ALWAYS}~{12158,1,1,0.305,ALWAYS}~{12159,1,1,0.08,ALWAYS}~{12160,1,1,0.05,ALWAYS}~{12163,1,1,0.025,ALWAYS}'), +(1098, '{532,1,1,0.0,ALWAYS}', '{1357,1,1,0.0,UNCOMMON}~{1341,1,1,0.0,UNCOMMON}~{3122,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1119,1,1,0.0,UNCOMMON}~{1339,1,1,0.0,UNCOMMON}~{995,1,1,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{557,80,80,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.53,ALWAYS}~{12158,1,1,0.315,ALWAYS}~{12159,1,1,0.08,ALWAYS}~{12160,1,1,0.05,ALWAYS}~{12163,1,1,0.025,ALWAYS}'), +(1101, '{532,1,1,0.0,ALWAYS}', '{5291,1,1,0.0,RARE}~{5292,1,1,0.0,RARE}~{5293,1,1,0.0,RARE}~{5294,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5100,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5281,1,1,0.0,RARE}~{5105,1,1,0.0,RARE}~{5323,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5296,1,1,0.0,RARE}~{1141,1,1,0.0,COMMON}~{1145,1,1,0.0,RARE}~{1339,1,1,0.0,RARE}~{1341,1,1,0.0,RARE}~{1345,1,1,0.0,RARE}~{1181,1,1,0.0,RARE}~{207,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{995,35,35,0.0,COMMON}~{557,25,25,0.0,UNCOMMON}~{557,45,45,0.0,UNCOMMON}~{561,7,7,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{454,3,3,0.0,RARE}~{354,3,3,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1102, '{532,1,1,0.0,ALWAYS}', '{5291,1,1,0.0,RARE}~{5292,1,1,0.0,RARE}~{5293,1,1,0.0,RARE}~{5294,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5100,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5281,1,1,0.0,RARE}~{5105,1,1,0.0,RARE}~{5323,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5296,1,1,0.0,RARE}~{1141,1,1,0.0,COMMON}~{1145,1,1,0.0,RARE}~{1339,1,1,0.0,RARE}~{1341,1,1,0.0,RARE}~{1345,1,1,0.0,RARE}~{1181,1,1,0.0,RARE}~{207,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{995,35,35,0.0,COMMON}~{557,25,25,0.0,UNCOMMON}~{557,45,45,0.0,UNCOMMON}~{561,7,7,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{454,3,3,0.0,RARE}~{354,3,3,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1103, '{532,1,1,0.0,ALWAYS}', '{5291,1,1,0.0,RARE}~{5292,1,1,0.0,RARE}~{5293,1,1,0.0,RARE}~{5294,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5100,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5281,1,1,0.0,RARE}~{5105,1,1,0.0,RARE}~{5323,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5296,1,1,0.0,RARE}~{1141,1,1,0.0,COMMON}~{1145,1,1,0.0,RARE}~{1339,1,1,0.0,RARE}~{1341,1,1,0.0,RARE}~{1345,1,1,0.0,RARE}~{1181,1,1,0.0,RARE}~{207,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{995,35,35,0.0,COMMON}~{557,25,25,0.0,UNCOMMON}~{557,45,45,0.0,UNCOMMON}~{561,7,7,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{454,3,3,0.0,RARE}~{354,3,3,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1104, '{532,1,1,0.0,ALWAYS}', '{5291,1,1,0.0,RARE}~{5292,1,1,0.0,RARE}~{5293,1,1,0.0,RARE}~{5294,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5100,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5281,1,1,0.0,RARE}~{5105,1,1,0.0,RARE}~{5323,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5296,1,1,0.0,RARE}~{1141,1,1,0.0,COMMON}~{1145,1,1,0.0,RARE}~{1339,1,1,0.0,RARE}~{1341,1,1,0.0,RARE}~{1345,1,1,0.0,RARE}~{1181,1,1,0.0,RARE}~{207,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{995,35,35,0.0,COMMON}~{557,25,25,0.0,UNCOMMON}~{557,45,45,0.0,UNCOMMON}~{561,7,7,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{454,3,3,0.0,RARE}~{354,3,3,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1105, '{532,1,1,0.0,ALWAYS}', '{5291,1,1,0.0,RARE}~{5292,1,1,0.0,RARE}~{5293,1,1,0.0,RARE}~{5294,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5100,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5281,1,1,0.0,RARE}~{5105,1,1,0.0,RARE}~{5323,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5296,1,1,0.0,RARE}~{1141,1,1,0.0,COMMON}~{1145,1,1,0.0,RARE}~{1339,1,1,0.0,RARE}~{1341,1,1,0.0,RARE}~{1345,1,1,0.0,RARE}~{1181,1,1,0.0,RARE}~{207,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{995,35,35,0.0,COMMON}~{557,25,25,0.0,UNCOMMON}~{557,45,45,0.0,UNCOMMON}~{561,7,7,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{454,3,3,0.0,RARE}~{354,3,3,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1106, '{532,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,COMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{5291,1,1,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5323,1,2,0.0,COMMON}~{5292,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5296,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5311,1,1,0.0,RARE}~{1341,1,1,0.0,UNCOMMON}~{1339,1,1,0.0,COMMON}~{1141,1,1,0.0,COMMON}~{1145,1,1,0.0,COMMON}~{1345,1,1,0.0,UNCOMMON}~{1361,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1183,1,1,0.0,UNCOMMON}~{561,7,7,0.0,COMMON}~{557,25,25,0.0,COMMON}~{557,45,45,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{995,8,8,0.0,COMMON}~{995,35,35,0.0,COMMON}~{454,3,3,0.0,COMMON}~{354,3,3,0.0,COMMON}~{10976,1,1,0.0,UNCOMMON}~{10977,1,1,0.0,UNCOMMON}~{7884,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(1107, '{532,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,COMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{5291,1,1,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5323,1,2,0.0,COMMON}~{5292,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5296,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5311,1,1,0.0,RARE}~{1341,1,1,0.0,UNCOMMON}~{1339,1,1,0.0,COMMON}~{1141,1,1,0.0,COMMON}~{1145,1,1,0.0,COMMON}~{1345,1,1,0.0,UNCOMMON}~{1361,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1183,1,1,0.0,UNCOMMON}~{561,7,7,0.0,COMMON}~{557,25,25,0.0,COMMON}~{557,45,45,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{995,8,8,0.0,COMMON}~{995,35,35,0.0,COMMON}~{454,3,3,0.0,COMMON}~{354,3,3,0.0,COMMON}~{10976,1,1,0.0,UNCOMMON}~{10977,1,1,0.0,UNCOMMON}~{7884,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(1108, '{532,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,COMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{5291,1,1,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5323,1,2,0.0,COMMON}~{5292,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5296,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5311,1,1,0.0,RARE}~{1341,1,1,0.0,UNCOMMON}~{1339,1,1,0.0,COMMON}~{1141,1,1,0.0,COMMON}~{1145,1,1,0.0,COMMON}~{1345,1,1,0.0,UNCOMMON}~{1361,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1183,1,1,0.0,UNCOMMON}~{561,7,7,0.0,COMMON}~{557,25,25,0.0,COMMON}~{557,45,45,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{995,8,8,0.0,COMMON}~{995,35,35,0.0,COMMON}~{454,3,3,0.0,COMMON}~{354,3,3,0.0,COMMON}~{10976,1,1,0.0,UNCOMMON}~{10977,1,1,0.0,UNCOMMON}~{7884,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(1109, '{532,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,COMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{5291,1,1,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5323,1,2,0.0,COMMON}~{5292,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5296,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5311,1,1,0.0,RARE}~{1341,1,1,0.0,UNCOMMON}~{1339,1,1,0.0,COMMON}~{1141,1,1,0.0,COMMON}~{1145,1,1,0.0,COMMON}~{1345,1,1,0.0,UNCOMMON}~{1361,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1183,1,1,0.0,UNCOMMON}~{561,7,7,0.0,COMMON}~{557,25,25,0.0,COMMON}~{557,45,45,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{995,8,8,0.0,COMMON}~{995,35,35,0.0,COMMON}~{454,3,3,0.0,COMMON}~{354,3,3,0.0,COMMON}~{10976,1,1,0.0,UNCOMMON}~{10977,1,1,0.0,UNCOMMON}~{7884,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(1110, '{532,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,COMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{5291,1,1,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5323,1,2,0.0,COMMON}~{5292,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5296,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5311,1,1,0.0,RARE}~{1341,1,1,0.0,UNCOMMON}~{1339,1,1,0.0,COMMON}~{1141,1,1,0.0,COMMON}~{1145,1,1,0.0,COMMON}~{1345,1,1,0.0,UNCOMMON}~{1361,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1183,1,1,0.0,UNCOMMON}~{561,7,7,0.0,COMMON}~{557,25,25,0.0,COMMON}~{557,45,45,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{995,8,8,0.0,COMMON}~{995,35,35,0.0,COMMON}~{454,3,3,0.0,COMMON}~{354,3,3,0.0,COMMON}~{10976,1,1,0.0,UNCOMMON}~{10977,1,1,0.0,UNCOMMON}~{7884,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(1111, '{532,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,COMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{5291,1,1,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5323,1,2,0.0,COMMON}~{5292,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5296,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5311,1,1,0.0,RARE}~{1341,1,1,0.0,UNCOMMON}~{1339,1,1,0.0,COMMON}~{1141,1,1,0.0,COMMON}~{1145,1,1,0.0,COMMON}~{1345,1,1,0.0,UNCOMMON}~{1361,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1183,1,1,0.0,UNCOMMON}~{561,7,7,0.0,COMMON}~{557,25,25,0.0,COMMON}~{557,45,45,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{995,8,8,0.0,COMMON}~{995,35,35,0.0,COMMON}~{454,3,3,0.0,COMMON}~{354,3,3,0.0,COMMON}~{10976,1,1,0.0,UNCOMMON}~{10977,1,1,0.0,UNCOMMON}~{7884,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(1112, '{532,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,COMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{5291,1,1,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5323,1,2,0.0,COMMON}~{5292,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5296,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5311,1,1,0.0,RARE}~{1341,1,1,0.0,UNCOMMON}~{1339,1,1,0.0,COMMON}~{1141,1,1,0.0,COMMON}~{1145,1,1,0.0,COMMON}~{1345,1,1,0.0,UNCOMMON}~{1361,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1183,1,1,0.0,UNCOMMON}~{561,7,7,0.0,COMMON}~{557,25,25,0.0,COMMON}~{557,45,45,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{995,8,8,0.0,COMMON}~{995,35,35,0.0,COMMON}~{454,3,3,0.0,COMMON}~{354,3,3,0.0,COMMON}~{10976,1,1,0.0,UNCOMMON}~{10977,1,1,0.0,UNCOMMON}~{7884,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(1115, '{532,1,1,0.0,ALWAYS}', '{1119,1,1,0.0,UNCOMMON}~{1339,1,1,0.0,UNCOMMON}~{1341,1,1,0.0,UNCOMMON}~{1121,1,1,0.0,UNCOMMON}~{1357,1,1,0.0,UNCOMMON}~{1183,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{830,1,1,0.0,RARE}~{3122,1,1,0.0,RARE}~{561,16,16,0.0,COMMON}~{563,4,4,0.0,COMMON}~{557,25,25,0.0,UNCOMMON}~{557,65,65,0.0,UNCOMMON}~{1462,1,1,0.0,UNCOMMON}~{360,4,4,0.0,UNCOMMON}~{454,6,6,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{995,20,20,0.0,UNCOMMON}~{995,40,40,0.0,UNCOMMON}~{10976,1,1,0.0,UNCOMMON}~{10977,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.5650000000000001,ALWAYS}~{12158,1,1,0.28800000000000003,ALWAYS}~{12159,1,1,0.06,ALWAYS}~{12160,1,1,0.026000000000000002,ALWAYS}~{12163,1,1,0.06,ALWAYS}'); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(1116, '{532,1,1,0.0,ALWAYS}', '{1119,1,1,0.0,UNCOMMON}~{1339,1,1,0.0,UNCOMMON}~{1341,1,1,0.0,UNCOMMON}~{1121,1,1,0.0,UNCOMMON}~{1357,1,1,0.0,UNCOMMON}~{1183,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{830,1,1,0.0,RARE}~{3122,1,1,0.0,RARE}~{561,16,16,0.0,COMMON}~{563,4,4,0.0,COMMON}~{557,25,25,0.0,UNCOMMON}~{557,65,65,0.0,UNCOMMON}~{1462,1,1,0.0,UNCOMMON}~{360,4,4,0.0,UNCOMMON}~{454,6,6,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{995,20,20,0.0,UNCOMMON}~{995,40,40,0.0,UNCOMMON}~{10976,1,1,0.0,UNCOMMON}~{10977,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.5650000000000001,ALWAYS}~{12158,1,1,0.28800000000000003,ALWAYS}~{12159,1,1,0.06,ALWAYS}~{12160,1,1,0.026000000000000002,ALWAYS}~{12163,1,1,0.06,ALWAYS}'), +(1117, '{532,1,1,0.0,ALWAYS}', '{1119,1,1,0.0,UNCOMMON}~{1339,1,1,0.0,UNCOMMON}~{1341,1,1,0.0,UNCOMMON}~{1121,1,1,0.0,UNCOMMON}~{1357,1,1,0.0,UNCOMMON}~{1183,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{830,1,1,0.0,RARE}~{3122,1,1,0.0,RARE}~{561,16,16,0.0,COMMON}~{563,4,4,0.0,COMMON}~{557,25,25,0.0,UNCOMMON}~{557,65,65,0.0,UNCOMMON}~{1462,1,1,0.0,UNCOMMON}~{360,4,4,0.0,UNCOMMON}~{454,6,6,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{995,20,20,0.0,UNCOMMON}~{995,40,40,0.0,UNCOMMON}~{10976,1,1,0.0,UNCOMMON}~{10977,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.5650000000000001,ALWAYS}~{12158,1,1,0.28800000000000003,ALWAYS}~{12159,1,1,0.06,ALWAYS}~{12160,1,1,0.026000000000000002,ALWAYS}~{12163,1,1,0.06,ALWAYS}'), +(1118, '{532,1,1,0.0,ALWAYS}', '{1341,1,1,0.0,COMMON}~{1345,1,1,0.0,UNCOMMON}~{1361,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{1339,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,COMMON}~{1181,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{5291,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5300,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5304,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{995,35,35,0.0,COMMON}~{561,7,7,0.0,COMMON}~{557,25,25,0.0,COMMON}~{557,45,45,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{454,3,3,0.0,UNCOMMON}~{354,3,3,0.0,UNCOMMON}~{7884,1,1,0.0,COMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1119, '{532,1,1,0.0,ALWAYS}', '{1341,1,1,0.0,COMMON}~{1345,1,1,0.0,UNCOMMON}~{1361,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{1339,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,COMMON}~{1181,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{5291,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5300,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5304,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{995,35,35,0.0,COMMON}~{561,7,7,0.0,COMMON}~{557,25,25,0.0,COMMON}~{557,45,45,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{454,3,3,0.0,UNCOMMON}~{354,3,3,0.0,UNCOMMON}~{7884,1,1,0.0,COMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1120, '{532,1,1,0.0,ALWAYS}', '{1341,1,1,0.0,COMMON}~{1345,1,1,0.0,UNCOMMON}~{1361,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{1339,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,COMMON}~{1181,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{5291,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5300,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5304,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{995,35,35,0.0,COMMON}~{561,7,7,0.0,COMMON}~{557,25,25,0.0,COMMON}~{557,45,45,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{454,3,3,0.0,UNCOMMON}~{354,3,3,0.0,UNCOMMON}~{7884,1,1,0.0,COMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1121, '{532,1,1,0.0,ALWAYS}', '{1341,1,1,0.0,COMMON}~{1345,1,1,0.0,UNCOMMON}~{1361,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{1339,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,COMMON}~{1181,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{5291,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5300,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5304,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{995,35,35,0.0,COMMON}~{561,7,7,0.0,COMMON}~{557,25,25,0.0,COMMON}~{557,45,45,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{454,3,3,0.0,UNCOMMON}~{354,3,3,0.0,UNCOMMON}~{7884,1,1,0.0,COMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1122, '{532,1,1,0.0,ALWAYS}', '{1341,1,1,0.0,COMMON}~{1345,1,1,0.0,UNCOMMON}~{1361,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{1339,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,COMMON}~{1181,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{5291,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5300,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5304,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{995,35,35,0.0,COMMON}~{561,7,7,0.0,COMMON}~{557,25,25,0.0,COMMON}~{557,45,45,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{454,3,3,0.0,UNCOMMON}~{354,3,3,0.0,UNCOMMON}~{7884,1,1,0.0,COMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1123, '{532,1,1,0.0,ALWAYS}', '{1341,1,1,0.0,COMMON}~{1345,1,1,0.0,UNCOMMON}~{1361,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{1339,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,COMMON}~{1181,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{5291,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5300,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5304,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{995,35,35,0.0,COMMON}~{561,7,7,0.0,COMMON}~{557,25,25,0.0,COMMON}~{557,45,45,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{454,3,3,0.0,UNCOMMON}~{354,3,3,0.0,UNCOMMON}~{7884,1,1,0.0,COMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1124, '{532,1,1,0.0,ALWAYS}', '{1341,1,1,0.0,COMMON}~{1345,1,1,0.0,UNCOMMON}~{1361,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{1339,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,COMMON}~{1181,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{5291,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5300,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5304,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{995,35,35,0.0,COMMON}~{561,7,7,0.0,COMMON}~{557,25,25,0.0,COMMON}~{557,45,45,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{454,3,3,0.0,UNCOMMON}~{354,3,3,0.0,UNCOMMON}~{7884,1,1,0.0,COMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1130, '{532,1,1,0.0,ALWAYS}', '{5291,1,1,0.0,RARE}~{5292,1,1,0.0,RARE}~{5293,1,1,0.0,RARE}~{5294,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5100,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5281,1,1,0.0,RARE}~{5105,1,1,0.0,RARE}~{5323,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5296,1,1,0.0,RARE}~{1141,1,1,0.0,COMMON}~{1145,1,1,0.0,RARE}~{1339,1,1,0.0,RARE}~{1341,1,1,0.0,RARE}~{1345,1,1,0.0,RARE}~{1181,1,1,0.0,RARE}~{207,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{995,35,35,0.0,COMMON}~{557,25,25,0.0,UNCOMMON}~{557,45,45,0.0,UNCOMMON}~{561,7,7,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{454,3,3,0.0,RARE}~{354,3,3,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1131, '{532,1,1,0.0,ALWAYS}', '{5291,1,1,0.0,RARE}~{5292,1,1,0.0,RARE}~{5293,1,1,0.0,RARE}~{5294,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5100,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5281,1,1,0.0,RARE}~{5105,1,1,0.0,RARE}~{5323,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5296,1,1,0.0,RARE}~{1141,1,1,0.0,COMMON}~{1145,1,1,0.0,RARE}~{1339,1,1,0.0,RARE}~{1341,1,1,0.0,RARE}~{1345,1,1,0.0,RARE}~{1181,1,1,0.0,RARE}~{207,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{995,35,35,0.0,COMMON}~{557,25,25,0.0,UNCOMMON}~{557,45,45,0.0,UNCOMMON}~{561,7,7,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{454,3,3,0.0,RARE}~{354,3,3,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1132, '{532,1,1,0.0,ALWAYS}', '{5291,1,1,0.0,RARE}~{5292,1,1,0.0,RARE}~{5293,1,1,0.0,RARE}~{5294,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5100,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5281,1,1,0.0,RARE}~{5105,1,1,0.0,RARE}~{5323,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5296,1,1,0.0,RARE}~{1141,1,1,0.0,COMMON}~{1145,1,1,0.0,RARE}~{1339,1,1,0.0,RARE}~{1341,1,1,0.0,RARE}~{1345,1,1,0.0,RARE}~{1181,1,1,0.0,RARE}~{207,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{995,35,35,0.0,COMMON}~{557,25,25,0.0,UNCOMMON}~{557,45,45,0.0,UNCOMMON}~{561,7,7,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{454,3,3,0.0,RARE}~{354,3,3,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1133, '{532,1,1,0.0,ALWAYS}', '{5291,1,1,0.0,RARE}~{5292,1,1,0.0,RARE}~{5293,1,1,0.0,RARE}~{5294,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5100,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5281,1,1,0.0,RARE}~{5105,1,1,0.0,RARE}~{5323,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5296,1,1,0.0,RARE}~{1141,1,1,0.0,COMMON}~{1145,1,1,0.0,RARE}~{1339,1,1,0.0,RARE}~{1341,1,1,0.0,RARE}~{1345,1,1,0.0,RARE}~{1181,1,1,0.0,RARE}~{207,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{995,35,35,0.0,COMMON}~{557,25,25,0.0,UNCOMMON}~{557,45,45,0.0,UNCOMMON}~{561,7,7,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{454,3,3,0.0,RARE}~{354,3,3,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1134, '{532,1,1,0.0,ALWAYS}', '{5291,1,1,0.0,RARE}~{5292,1,1,0.0,RARE}~{5293,1,1,0.0,RARE}~{5294,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5100,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5281,1,1,0.0,RARE}~{5105,1,1,0.0,RARE}~{5323,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5296,1,1,0.0,RARE}~{1141,1,1,0.0,COMMON}~{1145,1,1,0.0,RARE}~{1339,1,1,0.0,RARE}~{1341,1,1,0.0,RARE}~{1345,1,1,0.0,RARE}~{1181,1,1,0.0,RARE}~{207,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{995,35,35,0.0,COMMON}~{557,25,25,0.0,UNCOMMON}~{557,45,45,0.0,UNCOMMON}~{561,7,7,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{454,3,3,0.0,RARE}~{354,3,3,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1138, '{532,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,COMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{5291,1,1,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5323,1,2,0.0,COMMON}~{5292,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5296,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5311,1,1,0.0,RARE}~{1341,1,1,0.0,UNCOMMON}~{1339,1,1,0.0,COMMON}~{1141,1,1,0.0,COMMON}~{1145,1,1,0.0,COMMON}~{1345,1,1,0.0,UNCOMMON}~{1361,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1183,1,1,0.0,UNCOMMON}~{561,7,7,0.0,COMMON}~{557,25,25,0.0,COMMON}~{557,45,45,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{995,8,8,0.0,COMMON}~{995,35,35,0.0,COMMON}~{454,3,3,0.0,COMMON}~{354,3,3,0.0,COMMON}~{10976,1,1,0.0,UNCOMMON}~{10977,1,1,0.0,UNCOMMON}~{7884,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(1142, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2825,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(1143, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2829,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(1144, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2803,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(1145, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2853,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(1146, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2857,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(1147, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2849,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(1148, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2809,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(1149, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2825,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(1150, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2849,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(1153, '', '{556,11,19,0.0,COMMON}~{555,11,19,0.0,COMMON}~{557,11,19,0.0,COMMON}~{554,11,19,0.0,COMMON}~{555,2,2,0.0,UNCOMMON}~{554,7,7,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{562,3,3,0.0,UNCOMMON}~{561,4,4,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{1837,1,1,0.0,UNCOMMON}~{1835,1,1,0.0,UNCOMMON}~{1833,1,1,0.0,UNCOMMON}~{1299,1,1,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1143,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1131,1,1,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{826,5,5,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1207,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1281,1,1,0.0,RARE}~{1295,1,1,0.0,RARE}~{1213,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,1000,0.0,COMMON}~{1823,1,1,0.0,COMMON}~{3138,1,1,0.0,UNCOMMON}~{1783,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.875,ALWAYS}~{12158,1,1,0.06,ALWAYS}~{12159,1,1,0.03,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.02,ALWAYS}'), +(1155, '', '{1197,1,1,0.0,UNCOMMON}~{1183,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,RARE}~{1127,1,1,0.0,RARE}~{1185,1,1,0.0,RARE}~{1353,1,1,0.0,COMMON}~{1365,1,1,0.0,COMMON}~{1299,1,1,0.0,COMMON}~{1285,1,1,0.0,COMMON}~{1211,1,1,0.0,UNCOMMON}~{1331,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1373,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,RARE}~{556,50,50,0.0,UNCOMMON}~{565,7,19,0.0,UNCOMMON}~{554,37,37,0.0,UNCOMMON}~{563,3,3,0.0,UNCOMMON}~{563,45,45,0.0,UNCOMMON}~{560,18,18,0.0,UNCOMMON}~{560,28,28,0.0,UNCOMMON}~{562,10,10,0.0,UNCOMMON}~{829,1,1,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{892,42,150,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{215,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{211,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,28,3000,0.0,COMMON}~{379,12,12,0.0,UNCOMMON}~{163,1,1,0.0,UNCOMMON}~{145,1,1,0.0,UNCOMMON}~{157,1,1,0.0,UNCOMMON}~{3139,24,24,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.65,ALWAYS}~{12158,1,1,0.13,ALWAYS}~{12159,1,1,0.065,ALWAYS}~{12160,1,1,0.07,ALWAYS}~{12163,1,1,0.085,ALWAYS}'), +(1156, '', '{556,11,19,0.0,COMMON}~{555,11,19,0.0,COMMON}~{557,11,19,0.0,COMMON}~{554,11,19,0.0,COMMON}~{555,2,2,0.0,UNCOMMON}~{554,7,7,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{562,3,3,0.0,UNCOMMON}~{561,4,4,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{1837,1,1,0.0,UNCOMMON}~{1835,1,1,0.0,UNCOMMON}~{1833,1,1,0.0,UNCOMMON}~{1299,1,1,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1143,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1131,1,1,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{826,5,5,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1207,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1281,1,1,0.0,RARE}~{1295,1,1,0.0,RARE}~{1213,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,1000,0.0,COMMON}~{1823,1,1,0.0,COMMON}~{3138,1,1,0.0,UNCOMMON}~{1783,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.875,ALWAYS}~{12158,1,1,0.06,ALWAYS}~{12159,1,1,0.03,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.02,ALWAYS}'), +(1157, '', '{1197,1,1,0.0,UNCOMMON}~{1183,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,RARE}~{1127,1,1,0.0,RARE}~{1185,1,1,0.0,RARE}~{1353,1,1,0.0,COMMON}~{1365,1,1,0.0,COMMON}~{1299,1,1,0.0,COMMON}~{1285,1,1,0.0,COMMON}~{1211,1,1,0.0,UNCOMMON}~{1331,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1373,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,RARE}~{556,50,50,0.0,UNCOMMON}~{565,7,19,0.0,UNCOMMON}~{554,37,37,0.0,UNCOMMON}~{563,3,3,0.0,UNCOMMON}~{563,45,45,0.0,UNCOMMON}~{560,18,18,0.0,UNCOMMON}~{560,28,28,0.0,UNCOMMON}~{562,10,10,0.0,UNCOMMON}~{829,1,1,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{892,42,150,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{215,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{211,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,28,3000,0.0,COMMON}~{379,12,12,0.0,UNCOMMON}~{163,1,1,0.0,UNCOMMON}~{145,1,1,0.0,UNCOMMON}~{157,1,1,0.0,UNCOMMON}~{3139,24,24,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.65,ALWAYS}~{12158,1,1,0.13,ALWAYS}~{12159,1,1,0.065,ALWAYS}~{12160,1,1,0.07,ALWAYS}~{12163,1,1,0.085,ALWAYS}'), +(1158, '', '{1247,2,2,0.0,COMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1347,1,2,0.0,UNCOMMON}~{1301,1,1,0.0,UNCOMMON}~{3053,2,2,0.0,UNCOMMON}~{7158,1,1,0.0,RARE}~{1113,1,4,0.0,COMMON}~{3140,1,1,0.0,RARE}~{888,500,500,0.0,UNCOMMON}~{884,1,355,0.0,UNCOMMON}~{886,1,150,0.0,UNCOMMON}~{892,100,100,0.0,UNCOMMON}~{565,250,300,0.0,COMMON}~{561,200,285,0.0,COMMON}~{563,20,45,0.0,COMMON}~{563,250,250,0.0,COMMON}~{560,200,300,0.0,COMMON}~{564,200,300,0.0,COMMON}~{1607,1,1,0.0,UNCOMMON}~{1605,1,1,0.0,UNCOMMON}~{1603,1,1,0.0,UNCOMMON}~{414,40,40,0.0,UNCOMMON}~{246,20,40,0.0,COMMON}~{1731,1,1,0.0,COMMON}~{995,341,75000,0.0,UNCOMMON}~{379,7,7,0.0,UNCOMMON}~{385,714,714,0.0,UNCOMMON}~{2729,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1159, '', '{1247,2,2,0.0,COMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1347,1,2,0.0,UNCOMMON}~{1301,1,1,0.0,UNCOMMON}~{3053,2,2,0.0,UNCOMMON}~{7158,1,1,0.0,RARE}~{1113,1,4,0.0,COMMON}~{3140,1,1,0.0,RARE}~{888,500,500,0.0,UNCOMMON}~{884,1,355,0.0,UNCOMMON}~{886,1,150,0.0,UNCOMMON}~{892,100,100,0.0,UNCOMMON}~{565,250,300,0.0,COMMON}~{561,200,285,0.0,COMMON}~{563,20,45,0.0,COMMON}~{563,250,250,0.0,COMMON}~{560,200,300,0.0,COMMON}~{564,200,300,0.0,COMMON}~{1607,1,1,0.0,UNCOMMON}~{1605,1,1,0.0,UNCOMMON}~{1603,1,1,0.0,UNCOMMON}~{414,40,40,0.0,UNCOMMON}~{246,20,40,0.0,COMMON}~{1731,1,1,0.0,COMMON}~{995,341,75000,0.0,UNCOMMON}~{379,7,7,0.0,UNCOMMON}~{385,714,714,0.0,UNCOMMON}~{2723,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1160, '', '{1247,2,2,0.0,COMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1347,1,2,0.0,UNCOMMON}~{1301,1,1,0.0,UNCOMMON}~{3053,2,2,0.0,UNCOMMON}~{7158,1,1,0.0,RARE}~{1113,1,4,0.0,COMMON}~{3140,1,1,0.0,RARE}~{888,500,500,0.0,UNCOMMON}~{884,1,355,0.0,UNCOMMON}~{886,1,150,0.0,UNCOMMON}~{892,100,100,0.0,UNCOMMON}~{565,250,300,0.0,COMMON}~{561,200,285,0.0,COMMON}~{563,20,45,0.0,COMMON}~{563,250,250,0.0,COMMON}~{560,200,300,0.0,COMMON}~{564,200,300,0.0,COMMON}~{1607,1,1,0.0,UNCOMMON}~{1605,1,1,0.0,UNCOMMON}~{1603,1,1,0.0,UNCOMMON}~{414,40,40,0.0,UNCOMMON}~{246,20,40,0.0,COMMON}~{1731,1,1,0.0,COMMON}~{995,341,75000,0.0,UNCOMMON}~{379,7,7,0.0,UNCOMMON}~{385,714,714,0.0,UNCOMMON}~{2747,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1183, '{526,1,1,0.0,ALWAYS}', '{555,70,70,0.0,COMMON}~{554,37,37,0.0,UNCOMMON}~{563,1,3,0.0,UNCOMMON}~{561,12,12,0.0,UNCOMMON}~{1243,1,1,0.0,COMMON}~{1213,1,1,0.0,UNCOMMON}~{1197,1,1,0.0,COMMON}~{1099,1,1,0.0,COMMON}~{1135,1,1,0.0,COMMON}~{1065,1,1,0.0,COMMON}~{1161,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,RARE}~{365,1,1,0.0,UNCOMMON}~{385,1,1,0.0,UNCOMMON}~{379,1,1,0.0,UNCOMMON}~{397,1,1,0.0,RARE}~{391,1,1,0.0,RARE}~{5299,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,20,427,0.0,COMMON}~{6103,1,1,0.0,COMMON}~{449,1,1,0.0,UNCOMMON}~{6102,1,1,0.0,RARE}~{2747,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.615,ALWAYS}~{12158,1,1,0.08,ALWAYS}~{12159,1,1,0.23500000000000001,ALWAYS}~{12160,1,1,0.055,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(1184, '{526,1,1,0.0,ALWAYS}', '{555,70,70,0.0,COMMON}~{554,37,37,0.0,UNCOMMON}~{563,1,3,0.0,UNCOMMON}~{561,12,12,0.0,UNCOMMON}~{1243,1,1,0.0,COMMON}~{1213,1,1,0.0,UNCOMMON}~{1197,1,1,0.0,COMMON}~{1099,1,1,0.0,COMMON}~{1135,1,1,0.0,COMMON}~{1065,1,1,0.0,COMMON}~{1161,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,RARE}~{365,1,1,0.0,UNCOMMON}~{385,1,1,0.0,UNCOMMON}~{379,1,1,0.0,UNCOMMON}~{397,1,1,0.0,RARE}~{391,1,1,0.0,RARE}~{5299,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,20,427,0.0,COMMON}~{6103,1,1,0.0,COMMON}~{449,1,1,0.0,UNCOMMON}~{6102,1,1,0.0,RARE}~{2729,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.615,ALWAYS}~{12158,1,1,0.08,ALWAYS}~{12159,1,1,0.23500000000000001,ALWAYS}~{12160,1,1,0.055,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(1195, '{948,1,1,0.0,ALWAYS}~{526,1,1,0.0,ALWAYS}~{2136,1,1,0.0,ALWAYS}', '{7815,1,1,0.0,UNCOMMON}', '{0,1,1,0.855,ALWAYS}~{12158,1,1,0.107,ALWAYS}~{12159,1,1,0.015,ALWAYS}~{12160,1,1,0.02,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(1196, '{948,1,1,0.0,ALWAYS}~{526,1,1,0.0,ALWAYS}~{2136,1,1,0.0,ALWAYS}', '{7815,1,1,0.0,UNCOMMON}', '{0,1,1,0.855,ALWAYS}~{12158,1,1,0.107,ALWAYS}~{12159,1,1,0.015,ALWAYS}~{12160,1,1,0.02,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(1197, '{948,1,1,0.0,ALWAYS}~{526,1,1,0.0,ALWAYS}~{2136,1,1,0.0,ALWAYS}', '{7815,1,1,0.0,UNCOMMON}', '{0,1,1,0.855,ALWAYS}~{12158,1,1,0.107,ALWAYS}~{12159,1,1,0.015,ALWAYS}~{12160,1,1,0.02,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(1198, '{2859,1,1,0.0,ALWAYS}', '', '{0,1,1,0.6,ALWAYS}~{12158,1,1,0.09,ALWAYS}~{12159,1,1,0.165,ALWAYS}~{12160,1,1,0.105,ALWAYS}~{12163,1,1,0.04,ALWAYS}'), +(1200, '{526,1,1,0.0,ALWAYS}', '{1311,1,1,0.0,UNCOMMON}~{1365,1,1,0.0,UNCOMMON}~{1353,1,1,0.0,UNCOMMON}~{1197,1,1,0.0,COMMON}~{1163,1,1,0.0,UNCOMMON}~{1073,1,1,0.0,UNCOMMON}~{1135,1,1,0.0,UNCOMMON}~{1065,1,1,0.0,UNCOMMON}~{1099,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{995,1,220,0.0,COMMON}~{554,75,75,0.0,UNCOMMON}~{2357,1,1,0.0,UNCOMMON}~{361,1,1,0.0,UNCOMMON}~{562,15,15,0.0,UNCOMMON}~{1734,10,10,0.0,UNCOMMON}~{2733,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1201, '{526,1,1,0.0,ALWAYS}', '{555,70,70,0.0,COMMON}~{554,37,37,0.0,UNCOMMON}~{563,1,3,0.0,UNCOMMON}~{561,12,12,0.0,UNCOMMON}~{1243,1,1,0.0,COMMON}~{1213,1,1,0.0,UNCOMMON}~{1197,1,1,0.0,COMMON}~{1099,1,1,0.0,COMMON}~{1135,1,1,0.0,COMMON}~{1065,1,1,0.0,COMMON}~{1161,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,RARE}~{365,1,1,0.0,UNCOMMON}~{385,1,1,0.0,UNCOMMON}~{379,1,1,0.0,UNCOMMON}~{397,1,1,0.0,RARE}~{391,1,1,0.0,RARE}~{5299,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,20,427,0.0,COMMON}~{6103,1,1,0.0,COMMON}~{449,1,1,0.0,UNCOMMON}~{6102,1,1,0.0,RARE}~{2747,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.615,ALWAYS}~{12158,1,1,0.08,ALWAYS}~{12159,1,1,0.23500000000000001,ALWAYS}~{12160,1,1,0.055,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(1203, '{526,1,1,0.0,ALWAYS}', '{1311,1,1,0.0,UNCOMMON}~{1365,1,1,0.0,UNCOMMON}~{1353,1,1,0.0,UNCOMMON}~{1197,1,1,0.0,COMMON}~{1163,1,1,0.0,UNCOMMON}~{1073,1,1,0.0,UNCOMMON}~{1135,1,1,0.0,UNCOMMON}~{1065,1,1,0.0,UNCOMMON}~{1099,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{995,1,220,0.0,COMMON}~{554,75,75,0.0,UNCOMMON}~{2357,1,1,0.0,UNCOMMON}~{361,1,1,0.0,UNCOMMON}~{562,15,15,0.0,UNCOMMON}~{1734,10,10,0.0,UNCOMMON}~{2739,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1204, '{526,1,1,0.0,ALWAYS}', '{1311,1,1,0.0,UNCOMMON}~{1365,1,1,0.0,UNCOMMON}~{1353,1,1,0.0,UNCOMMON}~{1197,1,1,0.0,COMMON}~{1163,1,1,0.0,UNCOMMON}~{1073,1,1,0.0,UNCOMMON}~{1135,1,1,0.0,UNCOMMON}~{1065,1,1,0.0,UNCOMMON}~{1099,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{995,1,220,0.0,COMMON}~{554,75,75,0.0,UNCOMMON}~{2357,1,1,0.0,UNCOMMON}~{361,1,1,0.0,UNCOMMON}~{562,15,15,0.0,UNCOMMON}~{1734,10,10,0.0,UNCOMMON}~{2723,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1206, '{526,1,1,0.0,ALWAYS}', '{1311,1,1,0.0,UNCOMMON}~{1365,1,1,0.0,UNCOMMON}~{1353,1,1,0.0,UNCOMMON}~{1197,1,1,0.0,COMMON}~{1163,1,1,0.0,UNCOMMON}~{1073,1,1,0.0,UNCOMMON}~{1135,1,1,0.0,UNCOMMON}~{1065,1,1,0.0,UNCOMMON}~{1099,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{995,1,220,0.0,COMMON}~{554,75,75,0.0,UNCOMMON}~{2357,1,1,0.0,UNCOMMON}~{361,1,1,0.0,UNCOMMON}~{562,15,15,0.0,UNCOMMON}~{1734,10,10,0.0,UNCOMMON}~{2743,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1218, '{526,1,1,0.0,ALWAYS}', '{1458,1,1,0.0,RARE}~{7881,1,1,0.0,COMMON}', '{0,1,1,0.795,ALWAYS}~{12158,1,1,0.186,ALWAYS}~{12159,1,1,0.007,ALWAYS}~{12160,1,1,0.01,ALWAYS}~{12163,1,1,0.001,ALWAYS}'), +(1219, '', '{2827,1,1,0.0,RARE}', '{0,1,1,0.8250000000000001,ALWAYS}~{12158,1,1,0.069,ALWAYS}~{12159,1,1,0.015,ALWAYS}~{12160,1,1,0.075,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(1220, '', '{1361,1,1,0.0,UNCOMMON}~{562,3,3,0.0,COMMON}~{560,2,2,0.0,COMMON}~{557,4,4,0.0,UNCOMMON}~{565,1,2,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,RARE}~{5298,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{995,15,15,0.0,COMMON}~{2841,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.895,ALWAYS}~{12158,1,1,0.045,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.035,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(1221, '', '', '{0,1,1,0.92,ALWAYS}~{12158,1,1,0.02,ALWAYS}~{12159,1,1,0.034,ALWAYS}~{12160,1,1,0.013000000000000001,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(1223, '', '{1361,1,1,0.0,UNCOMMON}~{562,3,3,0.0,COMMON}~{560,2,2,0.0,COMMON}~{557,4,4,0.0,UNCOMMON}~{565,1,2,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,RARE}~{5298,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{995,15,15,0.0,COMMON}~{2833,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.895,ALWAYS}~{12158,1,1,0.045,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.035,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(1225, '', '{1361,1,1,0.0,UNCOMMON}~{562,3,3,0.0,COMMON}~{560,2,2,0.0,COMMON}~{557,4,4,0.0,UNCOMMON}~{565,1,2,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,RARE}~{5298,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{995,15,15,0.0,COMMON}~{2857,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.895,ALWAYS}~{12158,1,1,0.045,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.035,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(1227, '{3363,1,1,0.0,ALWAYS}~{3345,1,1,0.0,ALWAYS}', '', ''), +(1228, '{3367,1,1,0.0,ALWAYS}~{3347,1,1,0.0,ALWAYS}', '', ''), +(1229, '{3363,1,1,0.0,ALWAYS}~{3349,1,1,0.0,ALWAYS}', '', ''), +(1230, '{3367,1,1,0.0,ALWAYS}~{3351,1,1,0.0,ALWAYS}', '', ''), +(1231, '{3365,1,1,0.0,ALWAYS}~{3353,1,1,0.0,ALWAYS}', '', ''), +(1232, '{3363,1,1,0.0,ALWAYS}~{3355,1,1,0.0,ALWAYS}', '', ''), +(1233, '{3367,1,1,0.0,ALWAYS}~{3357,1,1,0.0,ALWAYS}', '', ''), +(1234, '{3363,1,1,0.0,ALWAYS}~{3359,1,1,0.0,ALWAYS}', '', ''), +(1235, '{3367,1,1,0.0,ALWAYS}~{3361,1,1,0.0,ALWAYS}', '', ''), +(1240, '{3396,1,1,0.0,ALWAYS}', '', ''), +(1241, '{3396,1,1,0.0,ALWAYS}', '', ''), +(1255, '{526,1,1,0.0,ALWAYS}', '{1139,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{882,7,7,0.0,UNCOMMON}~{877,5,11,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{562,2,2,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,UNCOMMON}~{995,3,30,0.0,COMMON}~{1965,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{313,110,30,0.0,RARE}~{2681,1,1,0.0,RARE}', ''), +(1256, '{526,1,1,0.0,ALWAYS}', '{1139,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{882,7,7,0.0,UNCOMMON}~{877,5,11,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{562,2,2,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,UNCOMMON}~{995,3,30,0.0,COMMON}~{1965,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{313,110,30,0.0,RARE}~{2677,1,1,0.0,RARE}', ''), +(1257, '{526,1,1,0.0,ALWAYS}', '{1139,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{882,7,7,0.0,UNCOMMON}~{877,5,11,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{562,2,2,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,UNCOMMON}~{995,3,30,0.0,COMMON}~{1965,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{313,110,30,0.0,RARE}~{2686,1,1,0.0,RARE}', ''), +(1258, '{526,1,1,0.0,ALWAYS}', '{1139,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{882,7,7,0.0,UNCOMMON}~{877,5,11,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{562,2,2,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,UNCOMMON}~{995,3,30,0.0,COMMON}~{1965,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{313,110,30,0.0,RARE}~{2701,1,1,0.0,RARE}', ''), +(1261, '{526,1,1,0.0,ALWAYS}', '{1139,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{882,7,7,0.0,UNCOMMON}~{877,5,11,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{562,2,2,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,UNCOMMON}~{995,3,30,0.0,COMMON}~{1965,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{313,110,30,0.0,RARE}~{2697,1,1,0.0,RARE}', ''), +(1262, '{526,1,1,0.0,ALWAYS}', '{1139,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{882,7,7,0.0,UNCOMMON}~{877,5,11,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{562,2,2,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,UNCOMMON}~{995,3,30,0.0,COMMON}~{1965,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{313,110,30,0.0,RARE}~{2709,1,1,0.0,RARE}', ''), +(1263, '', '{556,5,5,0.0,COMMON}~{556,12,12,0.0,COMMON}~{554,5,5,0.0,COMMON}~{554,12,12,0.0,COMMON}~{555,5,5,0.0,COMMON}~{555,12,12,0.0,COMMON}~{557,5,5,0.0,COMMON}~{557,12,12,0.0,COMMON}~{559,5,5,0.0,COMMON}~{559,12,12,0.0,COMMON}~{558,5,5,0.0,COMMON}~{558,12,12,0.0,COMMON}~{562,2,2,0.0,RARE}~{562,10,10,0.0,RARE}~{561,2,2,0.0,RARE}~{563,2,2,0.0,RARE}~{565,2,2,0.0,RARE}~{1379,1,1,0.0,COMMON}~{995,1,30,0.0,COMMON}~{1448,1,1,0.0,COMMON}~{1444,1,1,0.0,UNCOMMON}', '{0,1,1,0.78,ALWAYS}~{12158,1,1,0.116,ALWAYS}~{12159,1,1,0.06,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(1264, '{526,1,1,0.0,ALWAYS}', '{1397,1,1,0.0,UNCOMMON}~{1395,1,1,0.0,UNCOMMON}~{1399,1,1,0.0,UNCOMMON}~{1393,1,1,0.0,UNCOMMON}~{556,189,189,0.0,UNCOMMON}~{556,196,196,0.0,UNCOMMON}~{555,42,42,0.0,UNCOMMON}~{555,126,126,0.0,UNCOMMON}~{557,79,79,0.0,UNCOMMON}~{557,86,86,0.0,UNCOMMON}~{554,51,51,0.0,UNCOMMON}~{554,180,180,0.0,UNCOMMON}~{564,25,25,0.0,UNCOMMON}~{561,28,28,0.0,UNCOMMON}~{561,30,30,0.0,UNCOMMON}~{563,9,9,0.0,UNCOMMON}~{563,10,10,0.0,UNCOMMON}~{560,45,45,0.0,UNCOMMON}~{565,8,8,0.0,UNCOMMON}~{565,40,40,0.0,UNCOMMON}~{995,7789,7789,0.0,UNCOMMON}', ''), +(1265, '', '{207,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{5293,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{1265,1,1,0.0,COMMON}~{1267,1,1,0.0,COMMON}~{1351,1,1,0.0,UNCOMMON}~{826,1,1,0.0,UNCOMMON}~{554,7,7,0.0,COMMON}~{561,4,4,0.0,UNCOMMON}~{562,1,1,0.0,RARE}~{1454,1,1,0.0,RARE}~{995,4,498,0.0,COMMON}~{407,1,2,0.0,COMMON}~{402,1,5,0.0,COMMON}~{403,2,2,0.0,RARE}~{411,1,1,0.0,COMMON}~{409,1,1,0.0,COMMON}~{1969,1,1,0.0,UNCOMMON}~{946,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{453,2,2,0.0,UNCOMMON}~{436,3,3,0.0,UNCOMMON}~{438,3,3,0.0,UNCOMMON}~{313,1,10,0.0,UNCOMMON}~{45,5,5,0.0,UNCOMMON}~{9187,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{2678,1,1,0.0,RARE}~{405,1,1,0.0,RARE}', '{0,1,1,0.88,ALWAYS}~{12158,1,1,0.10200000000000001,ALWAYS}~{12159,1,1,0.004,ALWAYS}~{12160,1,1,0.01,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(1267, '', '{207,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{5293,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{1265,1,1,0.0,COMMON}~{1267,1,1,0.0,COMMON}~{1351,1,1,0.0,UNCOMMON}~{826,1,1,0.0,UNCOMMON}~{554,7,7,0.0,COMMON}~{561,4,4,0.0,UNCOMMON}~{562,1,1,0.0,RARE}~{1454,1,1,0.0,RARE}~{995,4,498,0.0,COMMON}~{407,1,2,0.0,COMMON}~{402,1,5,0.0,COMMON}~{403,2,2,0.0,RARE}~{411,1,1,0.0,COMMON}~{409,1,1,0.0,COMMON}~{1969,1,1,0.0,UNCOMMON}~{946,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{453,2,2,0.0,UNCOMMON}~{436,3,3,0.0,UNCOMMON}~{438,3,3,0.0,UNCOMMON}~{313,1,10,0.0,UNCOMMON}~{45,5,5,0.0,UNCOMMON}~{9187,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{2711,1,1,0.0,RARE}~{405,1,1,0.0,RARE}', '{0,1,1,0.88,ALWAYS}~{12158,1,1,0.10200000000000001,ALWAYS}~{12159,1,1,0.004,ALWAYS}~{12160,1,1,0.01,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(1296, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2831,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(1297, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2853,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(1306, '{526,1,1,0.0,ALWAYS}', '{1337,1,1,0.0,COMMON}~{1335,1,1,0.0,COMMON}~{453,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,UNCOMMON}~{440,1,5,0.0,UNCOMMON}~{438,1,5,0.0,UNCOMMON}~{436,1,5,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{995,15,16,0.0,COMMON}~{227,1,1,0.0,COMMON}~{1925,1,1,0.0,COMMON}~{590,1,1,0.0,COMMON}~{229,1,1,0.0,COMMON}~{1917,1,1,0.0,UNCOMMON}~{247,1,1,0.0,RARE}~{221,1,1,0.0,RARE}~{2700,1,1,0.0,RARE}~{3690,1,1,0.0,RARE}', ''), +(1307, '', '{229,1,1,0.0,COMMON}~{227,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{231,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{221,1,1,0.0,RARE}~{247,1,1,0.0,RARE}~{590,1,1,0.0,COMMON}~{1925,1,1,0.0,COMMON}~{1337,1,1,0.0,COMMON}~{1335,1,1,0.0,COMMON}~{1917,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,UNCOMMON}~{438,5,5,0.0,UNCOMMON}~{436,5,5,0.0,UNCOMMON}~{440,5,5,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2680,1,1,0.0,RARE}~{3690,1,1,0.0,RARE}', ''); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(1308, '{526,1,1,0.0,ALWAYS}', '{1337,1,1,0.0,COMMON}~{1335,1,1,0.0,COMMON}~{3757,1,1,0.0,RARE}~{3758,1,1,0.0,RARE}~{3748,1,1,0.0,RARE}~{436,5,5,0.0,COMMON}~{438,5,5,0.0,COMMON}~{440,5,5,0.0,COMMON}~{453,1,1,0.0,COMMON}~{2353,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,15,16,0.0,COMMON}~{590,1,1,0.0,COMMON}~{229,1,1,0.0,COMMON}~{227,1,1,0.0,COMMON}~{1925,1,1,0.0,COMMON}~{1917,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{231,1,1,0.0,RARE}~{247,1,1,0.0,RARE}~{1582,1,1,0.0,RARE}~{3690,1,1,0.0,RARE}~{2716,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1330, '{526,1,1,0.0,ALWAYS}~{2859,1,1,0.0,ALWAYS}', '{7830,1,1,0.0,COMMON}', '{0,1,1,0.885,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.051000000000000004,ALWAYS}~{12163,1,1,0.009000000000000001,ALWAYS}'), +(1338, '', '{2677,1,1,0.0,RARE}', ''), +(1339, '', '{2677,1,1,0.0,RARE}', ''), +(1340, '', '{2677,1,1,0.0,RARE}', ''), +(1341, '', '{2677,1,1,0.0,RARE}', ''), +(1342, '', '{2677,1,1,0.0,RARE}', ''), +(1343, '', '{2677,1,1,0.0,RARE}', ''), +(1344, '', '{2677,1,1,0.0,RARE}', ''), +(1345, '', '{2677,1,1,0.0,RARE}', ''), +(1346, '', '{2677,1,1,0.0,RARE}', ''), +(1347, '', '{2677,1,1,0.0,RARE}', ''), +(1374, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2823,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(1377, '{526,1,1,0.0,ALWAYS}', '{5345,1,1,0.0,RARE}~{5341,1,1,0.0,UNCOMMON}~{5329,1,1,0.0,COMMON}~{5331,1,1,0.0,RARE}~{5324,4,4,0.0,UNCOMMON}~{5323,4,4,0.0,COMMON}~{5318,1,4,0.0,COMMON}~{5322,4,4,0.0,UNCOMMON}~{5321,4,4,0.0,UNCOMMON}~{12148,4,4,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{562,2,2,0.0,UNCOMMON}~{556,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{882,7,7,0.0,UNCOMMON}~{877,3,12,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{5320,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{217,1,1,0.0,UNCOMMON}~{5319,1,1,0.0,UNCOMMON}~{2700,1,1,0.0,RARE}~{995,3,15,0.0,COMMON}', ''), +(1390, '{526,1,1,0.0,ALWAYS}', '', ''), +(1401, '{526,1,1,0.0,ALWAYS}~{2138,1,1,0.0,ALWAYS}~{314,11,30,0.0,COMMON}', '', ''), +(1402, '{526,1,1,0.0,ALWAYS}~{2138,1,1,0.0,ALWAYS}~{314,11,30,0.0,COMMON}', '', ''), +(1463, '{3186,1,1,0.0,ALWAYS}~{3166,1,1,0.0,ALWAYS}', '{7856,1,1,0.0,COMMON}', '{0,1,1,1.0,ALWAYS}~{12158,1,1,-0.006,ALWAYS}~{12159,1,1,0.002,ALWAYS}~{12160,1,1,0.002,ALWAYS}~{12163,1,1,0.002,ALWAYS}'), +(1464, '{3186,1,1,0.0,ALWAYS}~{3166,1,1,0.0,ALWAYS}', '{7856,1,1,0.0,COMMON}', '{0,1,1,1.0,ALWAYS}~{12158,1,1,-0.006,ALWAYS}~{12159,1,1,0.002,ALWAYS}~{12160,1,1,0.002,ALWAYS}~{12163,1,1,0.002,ALWAYS}'), +(1471, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2821,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1473, '', '', '{0,1,1,0.92,ALWAYS}~{12158,1,1,0.02,ALWAYS}~{12159,1,1,0.034,ALWAYS}~{12160,1,1,0.013000000000000001,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(1474, '', '', '{0,1,1,0.92,ALWAYS}~{12158,1,1,0.02,ALWAYS}~{12159,1,1,0.034,ALWAYS}~{12160,1,1,0.013000000000000001,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(1478, '', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{808,1,1,0.0,UNCOMMON}~{557,13,13,0.0,UNCOMMON}~{9141,20,20,0.0,UNCOMMON}~{11766,1,1,0.0,UNCOMMON}~{11767,1,1,0.0,UNCOMMON}~{11768,1,1,0.0,UNCOMMON}~{11769,1,1,0.0,UNCOMMON}~{11764,1,1,0.0,UNCOMMON}', ''), +(1479, '{526,1,1,0.0,ALWAYS}', '{7862,1,1,0.0,UNCOMMON}', ''), +(1487, '{3186,1,1,0.0,ALWAYS}~{3166,1,1,0.0,ALWAYS}', '{7856,1,1,0.0,COMMON}', '{0,1,1,1.0,ALWAYS}~{12158,1,1,-0.006,ALWAYS}~{12159,1,1,0.002,ALWAYS}~{12160,1,1,0.002,ALWAYS}~{12163,1,1,0.002,ALWAYS}'), +(1521, '{532,1,1,0.0,ALWAYS}~{10937,1,4,0.0,ALWAYS}~{12162,1,1,0.0,ALWAYS}', '{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}', ''), +(1522, '{532,1,1,0.0,ALWAYS}~{10937,1,4,0.0,ALWAYS}~{12162,1,1,0.0,ALWAYS}', '{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}', ''), +(1523, '{532,1,1,0.0,ALWAYS}~{10937,1,4,0.0,ALWAYS}~{12162,1,1,0.0,ALWAYS}', '{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}', ''), +(1524, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(1525, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(1531, '{592,1,1,0.0,ALWAYS}', '{877,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{1944,1,1,0.0,UNCOMMON}~{2138,1,1,0.0,UNCOMMON}~{2309,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{2142,1,1,0.0,RARE}~{1933,1,1,0.0,RARE}~{1759,1,1,0.0,COMMON}~{2347,1,1,0.0,COMMON}~{1474,1,1,0.0,COMMON}~{1470,1,1,0.0,COMMON}~{1476,1,1,0.0,COMMON}~{1472,1,1,0.0,COMMON}~{1448,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{2146,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{753,1,1,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{1735,1,1,0.0,UNCOMMON}~{1925,1,1,0.0,UNCOMMON}~{1929,1,1,0.0,RARE}~{1935,1,1,0.0,RARE}~{1937,1,1,0.0,RARE}~{1993,1,1,0.0,RARE}~{195,1,1,0.0,RARE}~{1931,1,1,0.0,RARE}~{2311,1,1,0.0,RARE}~{956,1,1,0.0,RARE}~{1438,1,1,0.0,RARE}~{2349,1,1,0.0,RARE}~{1927,1,1,0.0,RARE}~{2357,1,1,0.0,RARE}~{9442,1,1,0.0,RARE}~{434,1,1,0.0,RARE}', ''), +(1539, '{526,1,1,0.0,ALWAYS}', '{995,5,5,0.0,UNCOMMON}~{995,10,10,0.0,UNCOMMON}~{2747,1,1,0.0,RARE}~{1349,1,1,0.0,COMMON}~{1279,1,1,0.0,UNCOMMON}~{1137,1,1,0.0,COMMON}~{556,15,15,0.0,UNCOMMON}~{555,9,9,0.0,UNCOMMON}~{562,5,5,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(1550, '{526,1,1,0.0,ALWAYS}~{2876,1,1,0.0,ALWAYS}~{314,11,30,0.0,ALWAYS}', '', ''), +(1558, '{2859,1,1,0.0,ALWAYS}', '', '{0,1,1,0.8250000000000001,ALWAYS}~{12158,1,1,0.10300000000000001,ALWAYS}~{12159,1,1,0.045,ALWAYS}~{12160,1,1,0.013000000000000001,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(1559, '{2859,1,1,0.0,ALWAYS}', '', '{0,1,1,0.8250000000000001,ALWAYS}~{12158,1,1,0.10300000000000001,ALWAYS}~{12159,1,1,0.045,ALWAYS}~{12160,1,1,0.013000000000000001,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(1560, '{532,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1157,1,1,0.0,COMMON}~{1125,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,UNCOMMON}~{1357,1,1,0.0,UNCOMMON}~{1199,1,1,0.0,UNCOMMON}~{1121,1,1,0.0,RARE}~{1201,1,1,0.0,RARE}~{3122,1,1,0.0,RARE}~{1347,1,1,0.0,RARE}~{565,25,25,0.0,COMMON}~{560,15,15,0.0,COMMON}~{555,65,65,0.0,COMMON}~{563,1,3,0.0,UNCOMMON}~{995,20,200,0.0,COMMON}~{359,1,4,0.0,COMMON}~{380,6,6,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{453,3,3,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1561, '{532,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1157,1,1,0.0,COMMON}~{1125,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,UNCOMMON}~{1357,1,1,0.0,UNCOMMON}~{1199,1,1,0.0,UNCOMMON}~{1121,1,1,0.0,RARE}~{1201,1,1,0.0,RARE}~{3122,1,1,0.0,RARE}~{1347,1,1,0.0,RARE}~{565,25,25,0.0,COMMON}~{560,15,15,0.0,COMMON}~{555,65,65,0.0,COMMON}~{563,1,3,0.0,UNCOMMON}~{995,20,200,0.0,COMMON}~{359,1,4,0.0,COMMON}~{380,6,6,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{453,3,3,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1562, '{532,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1157,1,1,0.0,COMMON}~{1125,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,UNCOMMON}~{1357,1,1,0.0,UNCOMMON}~{1199,1,1,0.0,UNCOMMON}~{1121,1,1,0.0,RARE}~{1201,1,1,0.0,RARE}~{3122,1,1,0.0,RARE}~{1347,1,1,0.0,RARE}~{565,25,25,0.0,COMMON}~{560,15,15,0.0,COMMON}~{555,65,65,0.0,COMMON}~{563,1,3,0.0,UNCOMMON}~{995,20,200,0.0,COMMON}~{359,1,4,0.0,COMMON}~{380,6,6,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{453,3,3,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1563, '{532,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1157,1,1,0.0,COMMON}~{1125,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,UNCOMMON}~{1357,1,1,0.0,UNCOMMON}~{1199,1,1,0.0,UNCOMMON}~{1121,1,1,0.0,RARE}~{1201,1,1,0.0,RARE}~{3122,1,1,0.0,RARE}~{1347,1,1,0.0,RARE}~{565,25,25,0.0,COMMON}~{560,15,15,0.0,COMMON}~{555,65,65,0.0,COMMON}~{563,1,3,0.0,UNCOMMON}~{995,20,200,0.0,COMMON}~{359,1,4,0.0,COMMON}~{380,6,6,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{453,3,3,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1564, '{532,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1157,1,1,0.0,COMMON}~{1125,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,UNCOMMON}~{1357,1,1,0.0,UNCOMMON}~{1199,1,1,0.0,UNCOMMON}~{1121,1,1,0.0,RARE}~{1201,1,1,0.0,RARE}~{3122,1,1,0.0,RARE}~{1347,1,1,0.0,RARE}~{565,25,25,0.0,COMMON}~{560,15,15,0.0,COMMON}~{555,65,65,0.0,COMMON}~{563,1,3,0.0,UNCOMMON}~{995,20,200,0.0,COMMON}~{359,1,4,0.0,COMMON}~{380,6,6,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{453,3,3,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1565, '{532,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1157,1,1,0.0,COMMON}~{1125,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,UNCOMMON}~{1357,1,1,0.0,UNCOMMON}~{1199,1,1,0.0,UNCOMMON}~{1121,1,1,0.0,RARE}~{1201,1,1,0.0,RARE}~{3122,1,1,0.0,RARE}~{1347,1,1,0.0,RARE}~{565,25,25,0.0,COMMON}~{560,15,15,0.0,COMMON}~{555,65,65,0.0,COMMON}~{563,1,3,0.0,UNCOMMON}~{995,20,200,0.0,COMMON}~{359,1,4,0.0,COMMON}~{380,6,6,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{453,3,3,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1566, '{532,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1157,1,1,0.0,COMMON}~{1125,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,UNCOMMON}~{1357,1,1,0.0,UNCOMMON}~{1199,1,1,0.0,UNCOMMON}~{1121,1,1,0.0,RARE}~{1201,1,1,0.0,RARE}~{3122,1,1,0.0,RARE}~{1347,1,1,0.0,RARE}~{565,25,25,0.0,COMMON}~{560,15,15,0.0,COMMON}~{555,65,65,0.0,COMMON}~{563,1,3,0.0,UNCOMMON}~{995,20,200,0.0,COMMON}~{359,1,4,0.0,COMMON}~{380,6,6,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{453,3,3,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1582, '{532,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1181,1,1,0.0,COMMON}~{1393,1,1,0.0,UNCOMMON}~{892,12,42,0.0,UNCOMMON}~{1333,1,1,0.0,RARE}~{1373,1,1,0.0,RARE}~{554,37,37,0.0,COMMON}~{554,50,50,0.0,COMMON}~{554,150,150,0.0,COMMON}~{562,5,5,0.0,UNCOMMON}~{565,5,5,0.0,UNCOMMON}~{563,24,24,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{211,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,15,15,0.0,COMMON}~{995,25,25,0.0,COMMON}~{7872,1,1,0.0,COMMON}~{379,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,UNCOMMON}~{117,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{987,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.31,ALWAYS}~{12158,1,1,0.55,ALWAYS}~{12159,1,1,0.07,ALWAYS}~{12160,1,1,0.05,ALWAYS}~{12163,1,1,0.02,ALWAYS}'), +(1583, '{532,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1181,1,1,0.0,COMMON}~{1393,1,1,0.0,UNCOMMON}~{892,12,42,0.0,UNCOMMON}~{1333,1,1,0.0,RARE}~{1373,1,1,0.0,RARE}~{554,37,37,0.0,COMMON}~{554,50,50,0.0,COMMON}~{554,150,150,0.0,COMMON}~{562,5,5,0.0,UNCOMMON}~{565,5,5,0.0,UNCOMMON}~{563,24,24,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{211,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,15,15,0.0,COMMON}~{995,25,25,0.0,COMMON}~{7872,1,1,0.0,COMMON}~{379,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,UNCOMMON}~{117,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{987,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.31,ALWAYS}~{12158,1,1,0.55,ALWAYS}~{12159,1,1,0.07,ALWAYS}~{12160,1,1,0.05,ALWAYS}~{12163,1,1,0.02,ALWAYS}'), +(1584, '{532,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1181,1,1,0.0,COMMON}~{1393,1,1,0.0,UNCOMMON}~{892,12,42,0.0,UNCOMMON}~{1333,1,1,0.0,RARE}~{1373,1,1,0.0,RARE}~{554,37,37,0.0,COMMON}~{554,50,50,0.0,COMMON}~{554,150,150,0.0,COMMON}~{562,5,5,0.0,UNCOMMON}~{565,5,5,0.0,UNCOMMON}~{563,24,24,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{211,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,15,15,0.0,COMMON}~{995,25,25,0.0,COMMON}~{7872,1,1,0.0,COMMON}~{379,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,UNCOMMON}~{117,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{987,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.31,ALWAYS}~{12158,1,1,0.55,ALWAYS}~{12159,1,1,0.07,ALWAYS}~{12160,1,1,0.05,ALWAYS}~{12163,1,1,0.02,ALWAYS}'), +(1585, '{532,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1181,1,1,0.0,COMMON}~{1393,1,1,0.0,UNCOMMON}~{892,12,42,0.0,UNCOMMON}~{1333,1,1,0.0,RARE}~{1373,1,1,0.0,RARE}~{554,37,37,0.0,COMMON}~{554,50,50,0.0,COMMON}~{554,150,150,0.0,COMMON}~{562,5,5,0.0,UNCOMMON}~{565,5,5,0.0,UNCOMMON}~{563,24,24,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{211,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,15,15,0.0,COMMON}~{995,25,25,0.0,COMMON}~{7872,1,1,0.0,COMMON}~{379,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,UNCOMMON}~{117,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{987,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.31,ALWAYS}~{12158,1,1,0.55,ALWAYS}~{12159,1,1,0.07,ALWAYS}~{12160,1,1,0.05,ALWAYS}~{12163,1,1,0.02,ALWAYS}'), +(1586, '{532,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1181,1,1,0.0,COMMON}~{1393,1,1,0.0,UNCOMMON}~{892,12,42,0.0,UNCOMMON}~{1333,1,1,0.0,RARE}~{1373,1,1,0.0,RARE}~{554,37,37,0.0,COMMON}~{554,50,50,0.0,COMMON}~{554,150,150,0.0,COMMON}~{562,5,5,0.0,UNCOMMON}~{565,5,5,0.0,UNCOMMON}~{563,24,24,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{211,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,15,15,0.0,COMMON}~{995,25,25,0.0,COMMON}~{7872,1,1,0.0,COMMON}~{379,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,UNCOMMON}~{117,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{987,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.31,ALWAYS}~{12158,1,1,0.55,ALWAYS}~{12159,1,1,0.07,ALWAYS}~{12160,1,1,0.05,ALWAYS}~{12163,1,1,0.02,ALWAYS}'), +(1587, '{532,1,1,0.0,ALWAYS}', '{1389,1,1,0.0,COMMON}~{1243,1,1,0.0,COMMON}~{1285,1,1,0.0,COMMON}~{886,30,30,0.0,COMMON}~{884,15,15,0.0,COMMON}~{1287,1,1,0.0,RARE}~{1165,1,1,0.0,COMMON}~{1179,1,1,0.0,COMMON}~{1141,1,1,0.0,COMMON}~{1193,1,1,0.0,UNCOMMON}~{556,18,18,0.0,COMMON}~{564,3,3,0.0,COMMON}~{557,27,27,0.0,COMMON}~{561,6,6,0.0,COMMON}~{563,3,6,0.0,UNCOMMON}~{565,1,1,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{560,13,13,0.0,RARE}~{5323,1,1,0.0,COMMON}~{5311,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5104,1,1,0.0,COMMON}~{5292,1,1,0.0,COMMON}~{5281,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{4206,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,RARE}~{5280,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5106,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{211,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{995,2,500,0.0,COMMON}~{2353,1,1,0.0,COMMON}~{7871,1,1,0.0,COMMON}~{453,1,1,0.0,UNCOMMON}~{1969,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{10976,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1588, '{532,1,1,0.0,ALWAYS}', '{1389,1,1,0.0,COMMON}~{1243,1,1,0.0,COMMON}~{1285,1,1,0.0,COMMON}~{886,30,30,0.0,COMMON}~{884,15,15,0.0,COMMON}~{1287,1,1,0.0,RARE}~{1165,1,1,0.0,COMMON}~{1179,1,1,0.0,COMMON}~{1141,1,1,0.0,COMMON}~{1193,1,1,0.0,UNCOMMON}~{556,18,18,0.0,COMMON}~{564,3,3,0.0,COMMON}~{557,27,27,0.0,COMMON}~{561,6,6,0.0,COMMON}~{563,3,6,0.0,UNCOMMON}~{565,1,1,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{560,13,13,0.0,RARE}~{5323,1,1,0.0,COMMON}~{5311,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5104,1,1,0.0,COMMON}~{5292,1,1,0.0,COMMON}~{5281,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{4206,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,RARE}~{5280,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5106,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{211,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{995,2,500,0.0,COMMON}~{2353,1,1,0.0,COMMON}~{7871,1,1,0.0,COMMON}~{453,1,1,0.0,UNCOMMON}~{1969,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{10976,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1589, '{534,1,1,0.0,ALWAYS}', '', ''), +(1590, '{536,1,1,0.0,ALWAYS}~{2349,5,5,0.0,ALWAYS}', '{829,30,30,0.0,COMMON}~{829,60,60,0.0,COMMON}~{810,16,16,0.0,UNCOMMON}~{1355,1,1,0.0,UNCOMMON}~{1315,1,1,0.0,UNCOMMON}~{1369,1,1,0.0,UNCOMMON}~{9142,2,8,0.0,UNCOMMON}~{9142,10,10,0.0,UNCOMMON}~{868,2,2,0.0,UNCOMMON}~{868,5,5,0.0,UNCOMMON}~{830,1,1,0.0,RARE}~{1303,1,1,0.0,RARE}~{1373,1,1,0.0,RARE}~{1197,1,1,0.0,UNCOMMON}~{1199,1,1,0.0,RARE}~{1123,1,1,0.0,RARE}~{1185,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{563,10,10,0.0,COMMON}~{563,45,45,0.0,COMMON}~{554,50,150,0.0,UNCOMMON}~{565,15,15,0.0,UNCOMMON}~{565,30,30,0.0,UNCOMMON}~{561,67,67,0.0,UNCOMMON}~{560,25,25,0.0,UNCOMMON}~{560,45,45,0.0,UNCOMMON}~{2361,1,1,0.0,RARE}~{2363,1,1,0.0,RARE}~{995,168,3000,0.0,COMMON}~{373,1,2,0.0,UNCOMMON}~{2735,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.405,ALWAYS}~{12158,1,1,0.15,ALWAYS}~{12159,1,1,0.3,ALWAYS}~{12160,1,1,0.11,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(1591, '{536,1,1,0.0,ALWAYS}~{2351,5,5,0.0,ALWAYS}', '{1317,1,1,0.0,UNCOMMON}~{1371,1,1,0.0,UNCOMMON}~{1357,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,RARE}~{1432,1,1,0.0,RARE}~{1303,1,1,0.0,RARE}~{1373,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,RARE}~{1183,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,RARE}~{1163,1,1,0.0,RARE}~{1185,1,1,0.0,RARE}~{1201,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{830,4,8,0.0,COMMON}~{9143,2,12,0.0,UNCOMMON}~{811,9,9,0.0,UNCOMMON}~{868,1,7,0.0,UNCOMMON}~{886,150,150,0.0,RARE}~{9144,2,2,0.0,RARE}~{9144,4,4,0.0,RARE}~{565,15,15,0.0,COMMON}~{566,3,5,0.0,UNCOMMON}~{560,15,15,0.0,RARE}~{560,45,45,0.0,RARE}~{562,25,25,0.0,RARE}~{562,50,50,0.0,RARE}~{561,60,79,0.0,RARE}~{563,45,45,0.0,RARE}~{563,90,90,0.0,RARE}~{2361,2,2,0.0,UNCOMMON}~{2363,1,1,0.0,RARE}~{161,1,1,0.0,COMMON}~{145,1,1,0.0,RARE}~{2442,1,1,0.0,RARE}~{995,270,270,0.0,COMMON}~{995,550,550,0.0,COMMON}~{2011,1,2,0.0,UNCOMMON}~{9431,1,1,0.0,UNCOMMON}~{2729,1,1,0.0,RARE}~{995,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}~{11286,1,1,0.0,VERY_RARE,10000}', '{0,1,1,0.405,ALWAYS}~{12158,1,1,0.125,ALWAYS}~{12159,1,1,0.315,ALWAYS}~{12160,1,1,0.125,ALWAYS}~{12163,1,1,0.03,ALWAYS}'), +(1592, '{536,1,1,0.0,ALWAYS}~{2353,5,5,0.0,ALWAYS}', '{1371,1,1,0.0,COMMON}~{1359,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,COMMON}~{1199,1,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{4585,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{565,20,20,0.0,COMMON}~{830,7,7,0.0,COMMON}~{566,5,5,0.0,UNCOMMON}~{811,9,12,0.0,UNCOMMON}~{9144,2,14,0.0,UNCOMMON}~{868,7,7,0.0,UNCOMMON}~{995,470,12650,0.0,COMMON}~{9431,1,1,0.0,COMMON}~{145,1,1,0.0,COMMON}~{165,1,1,0.0,UNCOMMON}~{161,1,1,0.0,UNCOMMON}~{2363,1,1,0.0,UNCOMMON}~{2011,1,2,0.0,UNCOMMON}~{2741,1,1,0.0,RARE}~{31,1,1,0.0,RARE}~{11286,1,1,0.0,VERY_RARE,10000}', '{0,1,1,0.335,ALWAYS}~{12158,1,1,0.14,ALWAYS}~{12159,1,1,0.35000000000000003,ALWAYS}~{12160,1,1,0.145,ALWAYS}~{12163,1,1,0.03,ALWAYS}'), +(1593, '', '', '{0,1,1,0.7000000000000001,ALWAYS}~{12158,1,1,0.065,ALWAYS}~{12159,1,1,0.155,ALWAYS}~{12160,1,1,0.065,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(1594, '', '', '{0,1,1,0.7000000000000001,ALWAYS}~{12158,1,1,0.065,ALWAYS}~{12159,1,1,0.155,ALWAYS}~{12160,1,1,0.065,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(1600, '', '{557,9,10,0.0,COMMON}~{554,12,12,0.0,COMMON}~{561,3,3,0.0,COMMON}~{5318,1,4,0.0,COMMON}~{5319,1,3,0.0,COMMON}~{5324,1,3,0.0,COMMON}~{5322,1,3,0.0,COMMON}~{5320,1,2,0.0,COMMON}~{5323,1,1,0.0,COMMON}~{5321,1,1,0.0,UNCOMMON}~{12148,1,4,0.0,UNCOMMON}~{199,1,2,0.0,COMMON}~{201,1,2,0.0,COMMON}~{203,1,2,0.0,COMMON}~{205,1,2,0.0,COMMON}~{207,1,2,0.0,UNCOMMON}~{209,1,2,0.0,UNCOMMON}~{211,1,2,0.0,UNCOMMON}~{213,1,2,0.0,UNCOMMON}~{215,1,2,0.0,RARE}~{2485,1,2,0.0,RARE}~{217,1,2,0.0,RARE}~{221,1,1,0.0,COMMON}~{225,1,1,0.0,COMMON}~{239,1,1,0.0,COMMON}~{227,1,1,0.0,COMMON}~{223,1,1,0.0,UNCOMMON}~{235,1,1,0.0,UNCOMMON}~{231,1,1,0.0,RARE}~{995,3,3,0.0,COMMON}~{995,8,8,0.0,COMMON}~{4119,1,1,0.0,UNCOMMON}~{187,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.091,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.009000000000000001,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(1601, '', '{557,9,10,0.0,COMMON}~{554,12,12,0.0,COMMON}~{561,3,3,0.0,COMMON}~{5318,1,4,0.0,COMMON}~{5319,1,3,0.0,COMMON}~{5324,1,3,0.0,COMMON}~{5322,1,3,0.0,COMMON}~{5320,1,2,0.0,COMMON}~{5323,1,1,0.0,COMMON}~{5321,1,1,0.0,UNCOMMON}~{12148,1,4,0.0,UNCOMMON}~{199,1,2,0.0,COMMON}~{201,1,2,0.0,COMMON}~{203,1,2,0.0,COMMON}~{205,1,2,0.0,COMMON}~{207,1,2,0.0,UNCOMMON}~{209,1,2,0.0,UNCOMMON}~{211,1,2,0.0,UNCOMMON}~{213,1,2,0.0,UNCOMMON}~{215,1,2,0.0,RARE}~{2485,1,2,0.0,RARE}~{217,1,2,0.0,RARE}~{221,1,1,0.0,COMMON}~{225,1,1,0.0,COMMON}~{239,1,1,0.0,COMMON}~{227,1,1,0.0,COMMON}~{223,1,1,0.0,UNCOMMON}~{235,1,1,0.0,UNCOMMON}~{231,1,1,0.0,RARE}~{995,3,3,0.0,COMMON}~{995,8,8,0.0,COMMON}~{4119,1,1,0.0,UNCOMMON}~{187,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.091,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.009000000000000001,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(1602, '', '{557,9,10,0.0,COMMON}~{554,12,12,0.0,COMMON}~{561,3,3,0.0,COMMON}~{5318,1,4,0.0,COMMON}~{5319,1,3,0.0,COMMON}~{5324,1,3,0.0,COMMON}~{5322,1,3,0.0,COMMON}~{5320,1,2,0.0,COMMON}~{5323,1,1,0.0,COMMON}~{5321,1,1,0.0,UNCOMMON}~{12148,1,4,0.0,UNCOMMON}~{199,1,2,0.0,COMMON}~{201,1,2,0.0,COMMON}~{203,1,2,0.0,COMMON}~{205,1,2,0.0,COMMON}~{207,1,2,0.0,UNCOMMON}~{209,1,2,0.0,UNCOMMON}~{211,1,2,0.0,UNCOMMON}~{213,1,2,0.0,UNCOMMON}~{215,1,2,0.0,RARE}~{2485,1,2,0.0,RARE}~{217,1,2,0.0,RARE}~{221,1,1,0.0,COMMON}~{225,1,1,0.0,COMMON}~{239,1,1,0.0,COMMON}~{227,1,1,0.0,COMMON}~{223,1,1,0.0,UNCOMMON}~{235,1,1,0.0,UNCOMMON}~{231,1,1,0.0,RARE}~{995,3,3,0.0,COMMON}~{995,8,8,0.0,COMMON}~{4119,1,1,0.0,UNCOMMON}~{187,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.091,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.009000000000000001,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(1603, '', '{557,9,10,0.0,COMMON}~{554,12,12,0.0,COMMON}~{561,3,3,0.0,COMMON}~{5318,1,4,0.0,COMMON}~{5319,1,3,0.0,COMMON}~{5324,1,3,0.0,COMMON}~{5322,1,3,0.0,COMMON}~{5320,1,2,0.0,COMMON}~{5323,1,1,0.0,COMMON}~{5321,1,1,0.0,UNCOMMON}~{12148,1,4,0.0,UNCOMMON}~{199,1,2,0.0,COMMON}~{201,1,2,0.0,COMMON}~{203,1,2,0.0,COMMON}~{205,1,2,0.0,COMMON}~{207,1,2,0.0,UNCOMMON}~{209,1,2,0.0,UNCOMMON}~{211,1,2,0.0,UNCOMMON}~{213,1,2,0.0,UNCOMMON}~{215,1,2,0.0,RARE}~{2485,1,2,0.0,RARE}~{217,1,2,0.0,RARE}~{221,1,1,0.0,COMMON}~{225,1,1,0.0,COMMON}~{239,1,1,0.0,COMMON}~{227,1,1,0.0,COMMON}~{223,1,1,0.0,UNCOMMON}~{235,1,1,0.0,UNCOMMON}~{231,1,1,0.0,RARE}~{995,3,3,0.0,COMMON}~{995,8,8,0.0,COMMON}~{4119,1,1,0.0,UNCOMMON}~{187,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.091,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.009000000000000001,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(1604, '', '{5281,1,1,0.0,COMMON}~{5280,1,1,0.0,COMMON}~{5297,1,1,0.0,COMMON}~{5296,1,1,0.0,COMMON}~{5298,1,1,0.0,COMMON}~{5301,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{199,1,3,0.0,COMMON}~{201,1,3,0.0,COMMON}~{203,1,3,0.0,COMMON}~{205,1,3,0.0,COMMON}~{207,1,3,0.0,COMMON}~{209,1,3,0.0,COMMON}~{211,1,3,0.0,COMMON}~{213,1,3,0.0,COMMON}~{215,1,3,0.0,UNCOMMON}~{2485,1,3,0.0,UNCOMMON}~{217,1,3,0.0,UNCOMMON}~{3051,1,2,0.0,RARE}~{1353,1,1,0.0,UNCOMMON}~{1197,1,1,0.0,UNCOMMON}~{3053,1,1,0.0,UNCOMMON}~{1073,1,1,0.0,UNCOMMON}~{1163,1,1,0.0,RARE}~{995,278,487,0.0,UNCOMMON}~{2729,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.73,ALWAYS}~{12158,1,1,0.12,ALWAYS}~{12159,1,1,0.06,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.05,ALWAYS}'), +(1605, '', '{5281,1,1,0.0,COMMON}~{5280,1,1,0.0,COMMON}~{5297,1,1,0.0,COMMON}~{5296,1,1,0.0,COMMON}~{5298,1,1,0.0,COMMON}~{5301,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{199,1,3,0.0,COMMON}~{201,1,3,0.0,COMMON}~{203,1,3,0.0,COMMON}~{205,1,3,0.0,COMMON}~{207,1,3,0.0,COMMON}~{209,1,3,0.0,COMMON}~{211,1,3,0.0,COMMON}~{213,1,3,0.0,COMMON}~{215,1,3,0.0,UNCOMMON}~{2485,1,3,0.0,UNCOMMON}~{217,1,3,0.0,UNCOMMON}~{3051,1,2,0.0,RARE}~{1353,1,1,0.0,UNCOMMON}~{1197,1,1,0.0,UNCOMMON}~{3053,1,1,0.0,UNCOMMON}~{1073,1,1,0.0,UNCOMMON}~{1163,1,1,0.0,RARE}~{995,278,487,0.0,UNCOMMON}~{2725,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.73,ALWAYS}~{12158,1,1,0.12,ALWAYS}~{12159,1,1,0.06,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.05,ALWAYS}'), +(1606, '', '{5281,1,1,0.0,COMMON}~{5280,1,1,0.0,COMMON}~{5297,1,1,0.0,COMMON}~{5296,1,1,0.0,COMMON}~{5298,1,1,0.0,COMMON}~{5301,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{199,1,3,0.0,COMMON}~{201,1,3,0.0,COMMON}~{203,1,3,0.0,COMMON}~{205,1,3,0.0,COMMON}~{207,1,3,0.0,COMMON}~{209,1,3,0.0,COMMON}~{211,1,3,0.0,COMMON}~{213,1,3,0.0,COMMON}~{215,1,3,0.0,UNCOMMON}~{2485,1,3,0.0,UNCOMMON}~{217,1,3,0.0,UNCOMMON}~{3051,1,2,0.0,RARE}~{1353,1,1,0.0,UNCOMMON}~{1197,1,1,0.0,UNCOMMON}~{3053,1,1,0.0,UNCOMMON}~{1073,1,1,0.0,UNCOMMON}~{1163,1,1,0.0,RARE}~{995,278,487,0.0,UNCOMMON}~{2731,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.73,ALWAYS}~{12158,1,1,0.12,ALWAYS}~{12159,1,1,0.06,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.05,ALWAYS}'), +(1607, '', '{5281,1,1,0.0,COMMON}~{5280,1,1,0.0,COMMON}~{5297,1,1,0.0,COMMON}~{5296,1,1,0.0,COMMON}~{5298,1,1,0.0,COMMON}~{5301,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{199,1,3,0.0,COMMON}~{201,1,3,0.0,COMMON}~{203,1,3,0.0,COMMON}~{205,1,3,0.0,COMMON}~{207,1,3,0.0,COMMON}~{209,1,3,0.0,COMMON}~{211,1,3,0.0,COMMON}~{213,1,3,0.0,COMMON}~{215,1,3,0.0,UNCOMMON}~{2485,1,3,0.0,UNCOMMON}~{217,1,3,0.0,UNCOMMON}~{3051,1,2,0.0,RARE}~{1353,1,1,0.0,UNCOMMON}~{1197,1,1,0.0,UNCOMMON}~{3053,1,1,0.0,UNCOMMON}~{1073,1,1,0.0,UNCOMMON}~{1163,1,1,0.0,RARE}~{995,278,487,0.0,UNCOMMON}~{2725,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.73,ALWAYS}~{12158,1,1,0.12,ALWAYS}~{12159,1,1,0.06,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.05,ALWAYS}'), +(1608, '{526,1,1,0.0,ALWAYS}', '{561,5,30,0.0,UNCOMMON}~{560,1,6,0.0,UNCOMMON}~{558,4,16,0.0,UNCOMMON}~{9143,5,19,0.0,UNCOMMON}~{1355,1,1,0.0,UNCOMMON}~{4160,1,10,0.0,UNCOMMON}~{1303,1,1,0.0,RARE}~{1123,1,1,0.0,UNCOMMON}~{1197,1,1,0.0,UNCOMMON}~{239,1,1,0.0,COMMON}~{225,2,2,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{5297,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{1963,1,2,0.0,COMMON}~{2114,2,2,0.0,COMMON}~{2289,1,1,0.0,UNCOMMON}~{995,22,748,0.0,COMMON}~{1780,20,30,0.0,COMMON}~{161,1,1,0.0,COMMON}~{526,12,12,0.0,UNCOMMON}~{532,12,12,0.0,UNCOMMON}~{2729,1,1,0.0,RARE}~{7978,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.5650000000000001,ALWAYS}~{12158,1,1,0.085,ALWAYS}~{12159,1,1,0.27,ALWAYS}~{12160,1,1,0.065,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(1609, '{526,1,1,0.0,ALWAYS}', '{561,5,30,0.0,UNCOMMON}~{560,1,6,0.0,UNCOMMON}~{558,4,16,0.0,UNCOMMON}~{9143,5,19,0.0,UNCOMMON}~{1355,1,1,0.0,UNCOMMON}~{4160,1,10,0.0,UNCOMMON}~{1303,1,1,0.0,RARE}~{1123,1,1,0.0,UNCOMMON}~{1197,1,1,0.0,UNCOMMON}~{239,1,1,0.0,COMMON}~{225,2,2,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{5297,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{1963,1,2,0.0,COMMON}~{2114,2,2,0.0,COMMON}~{2289,1,1,0.0,UNCOMMON}~{995,22,748,0.0,COMMON}~{1780,20,30,0.0,COMMON}~{161,1,1,0.0,COMMON}~{526,12,12,0.0,UNCOMMON}~{532,12,12,0.0,UNCOMMON}~{2741,1,1,0.0,RARE}~{7978,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.5650000000000001,ALWAYS}~{12158,1,1,0.085,ALWAYS}~{12159,1,1,0.27,ALWAYS}~{12160,1,1,0.065,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(1610, '', '{1311,1,1,0.0,UNCOMMON}~{1365,1,1,0.0,UNCOMMON}~{1353,1,1,0.0,UNCOMMON}~{4153,1,1,0.0,RARE}~{1163,1,1,0.0,RARE}~{4129,1,1,0.0,RARE}~{1157,1,1,0.0,RARE}~{554,37,37,0.0,COMMON}~{554,75,75,0.0,COMMON}~{562,15,15,0.0,COMMON}~{560,5,5,0.0,UNCOMMON}~{995,11,498,0.0,COMMON}~{7937,35,35,0.0,UNCOMMON}~{2359,3,3,0.0,UNCOMMON}~{2353,3,3,0.0,UNCOMMON}~{2357,1,1,0.0,UNCOMMON}~{1734,10,10,0.0,UNCOMMON}~{2737,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.74,ALWAYS}~{12158,1,1,0.09,ALWAYS}~{12159,1,1,0.05,ALWAYS}~{12160,1,1,0.05,ALWAYS}~{12163,1,1,0.07,ALWAYS}'), +(1611, '', '{1311,1,1,0.0,COMMON}~{1365,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{4153,1,1,0.0,RARE}~{1163,1,1,0.0,UNCOMMON}~{4129,1,1,0.0,UNCOMMON}~{1157,1,1,0.0,RARE}~{554,37,37,0.0,COMMON}~{554,75,75,0.0,COMMON}~{562,15,15,0.0,COMMON}~{560,5,5,0.0,UNCOMMON}~{995,11,498,0.0,COMMON}~{7937,35,35,0.0,UNCOMMON}~{2359,3,3,0.0,UNCOMMON}~{2353,3,3,0.0,UNCOMMON}~{2357,1,1,0.0,UNCOMMON}~{1734,10,10,0.0,UNCOMMON}~{2731,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.74,ALWAYS}~{12158,1,1,0.09,ALWAYS}~{12159,1,1,0.05,ALWAYS}~{12160,1,1,0.05,ALWAYS}~{12163,1,1,0.07,ALWAYS}'), +(1612, '', '{1420,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,RARE}~{1191,1,1,0.0,RARE}~{1199,1,1,0.0,RARE}~{556,3,3,0.0,COMMON}~{562,3,3,0.0,COMMON}~{562,6,6,0.0,COMMON}~{564,2,2,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{554,7,7,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{213,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{995,13,13,0.0,COMMON}~{995,26,35,0.0,COMMON}~{7937,13,13,0.0,COMMON}~{7937,23,23,0.0,COMMON}~{313,7,7,0.0,COMMON}~{313,15,15,0.0,COMMON}~{440,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{2713,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.03,ALWAYS}~{12159,1,1,0.066,ALWAYS}~{12160,1,1,0.01,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(1613, '{592,1,1,0.0,ALWAYS}', '{1163,1,1,0.0,UNCOMMON}~{1073,1,1,0.0,UNCOMMON}~{1197,1,1,0.0,UNCOMMON}~{4131,1,1,0.0,UNCOMMON}~{1185,1,1,0.0,RARE}~{1311,1,1,0.0,COMMON}~{1365,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{1303,1,1,0.0,RARE}~{1373,1,1,0.0,RARE}~{1319,1,1,0.0,RARE}~{560,5,5,0.0,COMMON}~{560,10,10,0.0,COMMON}~{562,3,3,0.0,UNCOMMON}~{562,37,37,0.0,UNCOMMON}~{5281,1,1,0.0,COMMON}~{5297,1,1,0.0,COMMON}~{5280,1,1,0.0,COMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{995,1144,1144,0.0,COMMON}~{995,132,132,0.0,COMMON}~{361,1,1,0.0,COMMON}~{1734,10,10,0.0,UNCOMMON}~{2357,1,1,0.0,UNCOMMON}~{2363,1,1,0.0,RARE}~{2723,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.545,ALWAYS}~{12158,1,1,0.09,ALWAYS}~{12159,1,1,0.045,ALWAYS}~{12160,1,1,0.31,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(1615, '{592,1,1,0.0,ALWAYS}', '{1283,1,1,0.0,COMMON}~{1361,1,1,0.0,COMMON}~{1365,1,1,0.0,COMMON}~{4151,1,1,0.0,VERY_RARE,512}~{1197,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{556,50,50,0.0,COMMON}~{565,7,7,0.0,COMMON}~{562,10,10,0.0,COMMON}~{563,3,3,0.0,UNCOMMON}~{995,9,3000,0.0,COMMON}~{379,1,1,0.0,COMMON}~{1454,1,1,0.0,COMMON}~{7937,60,60,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{2361,1,1,0.0,UNCOMMON}~{133,1,1,0.0,UNCOMMON}~{2727,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.52,ALWAYS}~{12158,1,1,0.08,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.35000000000000003,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(1616, '{526,1,1,0.0,ALWAYS}', '{555,75,175,0.0,COMMON}~{561,15,45,0.0,UNCOMMON}~{562,12,12,0.0,UNCOMMON}~{563,3,3,0.0,UNCOMMON}~{1365,1,1,0.0,UNCOMMON}~{1243,1,1,0.0,UNCOMMON}~{1355,1,1,0.0,UNCOMMON}~{1197,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,UNCOMMON}~{1161,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,2,0.0,RARE}~{209,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{211,1,2,0.0,RARE}~{215,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,11,495,0.0,COMMON}~{7899,1,1,0.0,COMMON}~{1452,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{449,1,1,0.0,UNCOMMON}~{379,1,1,0.0,RARE}~{7977,1,1,0.0,RARE}~{2813,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.67,ALWAYS}~{12158,1,1,0.07,ALWAYS}~{12159,1,1,0.2,ALWAYS}~{12160,1,1,0.05,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(1617, '{526,1,1,0.0,ALWAYS}', '{555,75,175,0.0,COMMON}~{561,15,45,0.0,UNCOMMON}~{562,12,12,0.0,UNCOMMON}~{563,3,3,0.0,UNCOMMON}~{1365,1,1,0.0,UNCOMMON}~{1243,1,1,0.0,UNCOMMON}~{1355,1,1,0.0,UNCOMMON}~{1197,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,UNCOMMON}~{1161,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,2,0.0,RARE}~{209,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{211,1,2,0.0,RARE}~{215,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,11,495,0.0,COMMON}~{7899,1,1,0.0,COMMON}~{1452,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{449,1,1,0.0,UNCOMMON}~{379,1,1,0.0,RARE}~{7977,1,1,0.0,RARE}~{2803,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.67,ALWAYS}~{12158,1,1,0.07,ALWAYS}~{12159,1,1,0.2,ALWAYS}~{12160,1,1,0.05,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(1618, '{526,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1325,1,1,0.0,UNCOMMON}~{1157,1,1,0.0,COMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{4125,1,1,0.0,RARE}~{1147,1,1,0.0,RARE}~{1163,1,1,0.0,RARE}~{554,60,60,0.0,COMMON}~{565,3,3,0.0,UNCOMMON}~{565,10,10,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,10,10,0.0,COMMON}~{995,40,40,0.0,COMMON}~{444,1,1,0.0,UNCOMMON}~{526,2,3,0.0,UNCOMMON}~{532,1,1,0.0,UNCOMMON}~{532,4,4,0.0,UNCOMMON}~{2293,1,1,0.0,UNCOMMON}~{1635,1,1,0.0,RARE}~{31,1,1,0.0,RARE}~{2677,1,1,0.0,RARE}', '{0,1,1,0.54,ALWAYS}~{12158,1,1,0.095,ALWAYS}~{12159,1,1,0.305,ALWAYS}~{12160,1,1,0.05,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(1619, '{526,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1325,1,1,0.0,UNCOMMON}~{1157,1,1,0.0,COMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{4125,1,1,0.0,RARE}~{1147,1,1,0.0,RARE}~{1163,1,1,0.0,RARE}~{554,60,60,0.0,COMMON}~{565,3,3,0.0,UNCOMMON}~{565,10,10,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,10,10,0.0,COMMON}~{995,40,40,0.0,COMMON}~{444,1,1,0.0,UNCOMMON}~{526,2,3,0.0,UNCOMMON}~{532,1,1,0.0,UNCOMMON}~{532,4,4,0.0,UNCOMMON}~{2293,1,1,0.0,UNCOMMON}~{1635,1,1,0.0,RARE}~{31,1,1,0.0,RARE}~{2677,1,1,0.0,RARE}', '{0,1,1,0.54,ALWAYS}~{12158,1,1,0.095,ALWAYS}~{12159,1,1,0.305,ALWAYS}~{12160,1,1,0.05,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(1620, '{526,1,1,0.0,ALWAYS}', '{1279,1,1,0.0,COMMON}~{1207,1,1,0.0,COMMON}~{1295,1,1,0.0,COMMON}~{826,5,5,0.0,UNCOMMON}~{1069,1,1,0.0,UNCOMMON}~{4121,1,1,0.0,RARE}~{1147,1,1,0.0,RARE}~{1113,1,1,0.0,RARE}~{555,1,2,0.0,COMMON}~{554,7,7,0.0,COMMON}~{561,2,2,0.0,COMMON}~{561,4,4,0.0,COMMON}~{563,2,2,0.0,COMMON}~{563,3,3,0.0,COMMON}~{560,50,50,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{209,1,1,0.0,COMMON}~{211,1,1,0.0,COMMON}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{5318,4,4,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,COMMON}~{5322,3,3,0.0,COMMON}~{5308,3,3,0.0,COMMON}~{5309,2,2,0.0,COMMON}~{5320,3,3,0.0,COMMON}~{5323,24,24,0.0,COMMON}~{5321,2,2,0.0,RARE}~{5295,1,1,0.0,RARE}~{5096,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,5,5,0.0,COMMON}~{225,1,1,0.0,COMMON}~{12109,1,1,0.0,COMMON}~{2851,1,1,0.0,UNCOMMON}~{447,1,1,0.0,RARE}~{7983,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1621, '{526,1,1,0.0,ALWAYS}', '{1279,1,1,0.0,COMMON}~{1207,1,1,0.0,COMMON}~{1295,1,1,0.0,COMMON}~{826,5,5,0.0,UNCOMMON}~{1069,1,1,0.0,UNCOMMON}~{4121,1,1,0.0,RARE}~{1147,1,1,0.0,RARE}~{1113,1,1,0.0,RARE}~{555,1,2,0.0,COMMON}~{554,7,7,0.0,COMMON}~{561,2,2,0.0,COMMON}~{561,4,4,0.0,COMMON}~{563,2,2,0.0,COMMON}~{563,3,3,0.0,COMMON}~{560,50,50,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{209,1,1,0.0,COMMON}~{211,1,1,0.0,COMMON}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{5318,4,4,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,COMMON}~{5322,3,3,0.0,COMMON}~{5308,3,3,0.0,COMMON}~{5309,2,2,0.0,COMMON}~{5320,3,3,0.0,COMMON}~{5323,24,24,0.0,COMMON}~{5321,2,2,0.0,RARE}~{5295,1,1,0.0,RARE}~{5096,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,5,5,0.0,COMMON}~{225,1,1,0.0,COMMON}~{12109,1,1,0.0,COMMON}~{2819,1,1,0.0,UNCOMMON}~{447,1,1,0.0,RARE}~{7983,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1622, '', '{557,542,542,0.0,COMMON}~{1436,1,1,0.0,COMMON}~{562,25,25,0.0,UNCOMMON}~{438,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{2349,1,1,0.0,COMMON}~{440,1,1,0.0,COMMON}~{2351,1,1,0.0,COMMON}~{453,1,1,0.0,COMMON}~{447,1,1,0.0,UNCOMMON}~{5318,4,4,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,COMMON}~{5322,3,3,0.0,UNCOMMON}~{5305,4,4,0.0,UNCOMMON}~{5320,3,3,0.0,UNCOMMON}~{5308,3,3,0.0,UNCOMMON}~{5323,2,2,0.0,RARE}~{5321,2,2,0.0,RARE}~{2347,1,1,0.0,COMMON}~{1913,1,1,0.0,COMMON}~{995,23,23,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(1623, '', '{557,542,542,0.0,COMMON}~{1436,1,1,0.0,COMMON}~{562,25,25,0.0,UNCOMMON}~{438,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{2349,1,1,0.0,COMMON}~{440,1,1,0.0,COMMON}~{2351,1,1,0.0,COMMON}~{453,1,1,0.0,COMMON}~{447,1,1,0.0,UNCOMMON}~{5318,4,4,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,COMMON}~{5322,3,3,0.0,UNCOMMON}~{5305,4,4,0.0,UNCOMMON}~{5320,3,3,0.0,UNCOMMON}~{5308,3,3,0.0,UNCOMMON}~{5323,2,2,0.0,RARE}~{5321,2,2,0.0,RARE}~{2347,1,1,0.0,COMMON}~{1913,1,1,0.0,COMMON}~{995,23,23,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(1624, '{526,1,1,0.0,ALWAYS}~{592,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{892,12,12,0.0,COMMON}~{892,24,24,0.0,COMMON}~{2489,1,1,0.0,UNCOMMON}~{1399,1,1,0.0,RARE}~{1213,1,1,0.0,RARE}~{830,5,5,0.0,RARE}~{1353,1,1,0.0,VERY_RARE}~{554,37,37,0.0,COMMON}~{554,150,150,0.0,COMMON}~{562,5,5,0.0,UNCOMMON}~{566,2,2,0.0,UNCOMMON}~{566,3,3,0.0,UNCOMMON}~{563,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,15,15,0.0,COMMON}~{995,25,25,0.0,COMMON}~{2359,1,1,0.0,COMMON}~{1883,1,2,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{3140,1,1,0.0,VERY_RARE,34227}', '{0,1,1,0.55,ALWAYS}~{12158,1,1,0.12,ALWAYS}~{12159,1,1,0.06,ALWAYS}~{12160,1,1,0.26,ALWAYS}~{12163,1,1,0.009000000000000001,ALWAYS}'), +(1626, '{526,1,1,0.0,ALWAYS}', '{1069,1,1,0.0,COMMON}~{1355,1,1,0.0,COMMON}~{1197,1,1,0.0,COMMON}~{1161,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,UNCOMMON}~{563,3,3,0.0,COMMON}~{561,15,45,0.0,UNCOMMON}~{5106,1,1,0.0,COMMON}~{5280,1,1,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5296,1,1,0.0,COMMON}~{5297,1,1,0.0,COMMON}~{5300,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{199,1,3,0.0,COMMON}~{201,1,3,0.0,COMMON}~{203,1,3,0.0,COMMON}~{205,1,3,0.0,COMMON}~{207,1,3,0.0,UNCOMMON}~{209,1,3,0.0,UNCOMMON}~{211,1,3,0.0,UNCOMMON}~{213,1,3,0.0,UNCOMMON}~{2485,1,3,0.0,RARE}~{215,1,3,0.0,RARE}~{217,1,3,0.0,RARE}~{995,44,44,0.0,COMMON}~{995,88,88,0.0,COMMON}~{225,1,1,0.0,COMMON}~{2739,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.64,ALWAYS}~{12158,1,1,0.075,ALWAYS}~{12159,1,1,0.22,ALWAYS}~{12160,1,1,0.055,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(1627, '{526,1,1,0.0,ALWAYS}', '{1069,1,1,0.0,COMMON}~{1355,1,1,0.0,COMMON}~{1197,1,1,0.0,COMMON}~{1161,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,UNCOMMON}~{563,3,3,0.0,COMMON}~{561,15,45,0.0,UNCOMMON}~{5106,1,1,0.0,COMMON}~{5280,1,1,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5296,1,1,0.0,COMMON}~{5297,1,1,0.0,COMMON}~{5300,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{199,1,3,0.0,COMMON}~{201,1,3,0.0,COMMON}~{203,1,3,0.0,COMMON}~{205,1,3,0.0,COMMON}~{207,1,3,0.0,UNCOMMON}~{209,1,3,0.0,UNCOMMON}~{211,1,3,0.0,UNCOMMON}~{213,1,3,0.0,UNCOMMON}~{2485,1,3,0.0,RARE}~{215,1,3,0.0,RARE}~{217,1,3,0.0,RARE}~{995,44,44,0.0,COMMON}~{995,88,88,0.0,COMMON}~{225,1,1,0.0,COMMON}~{2729,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.64,ALWAYS}~{12158,1,1,0.075,ALWAYS}~{12159,1,1,0.22,ALWAYS}~{12160,1,1,0.055,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(1628, '{526,1,1,0.0,ALWAYS}', '{1069,1,1,0.0,COMMON}~{1355,1,1,0.0,COMMON}~{1197,1,1,0.0,COMMON}~{1161,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,UNCOMMON}~{563,3,3,0.0,COMMON}~{561,15,45,0.0,UNCOMMON}~{5106,1,1,0.0,COMMON}~{5280,1,1,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5296,1,1,0.0,COMMON}~{5297,1,1,0.0,COMMON}~{5300,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{199,1,3,0.0,COMMON}~{201,1,3,0.0,COMMON}~{203,1,3,0.0,COMMON}~{205,1,3,0.0,COMMON}~{207,1,3,0.0,UNCOMMON}~{209,1,3,0.0,UNCOMMON}~{211,1,3,0.0,UNCOMMON}~{213,1,3,0.0,UNCOMMON}~{2485,1,3,0.0,RARE}~{215,1,3,0.0,RARE}~{217,1,3,0.0,RARE}~{995,44,44,0.0,COMMON}~{995,88,88,0.0,COMMON}~{225,1,1,0.0,COMMON}~{2747,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.64,ALWAYS}~{12158,1,1,0.075,ALWAYS}~{12159,1,1,0.22,ALWAYS}~{12160,1,1,0.055,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(1629, '{526,1,1,0.0,ALWAYS}', '{1069,1,1,0.0,COMMON}~{1355,1,1,0.0,COMMON}~{1197,1,1,0.0,COMMON}~{1161,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,UNCOMMON}~{563,3,3,0.0,COMMON}~{561,15,45,0.0,UNCOMMON}~{5106,1,1,0.0,COMMON}~{5280,1,1,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5296,1,1,0.0,COMMON}~{5297,1,1,0.0,COMMON}~{5300,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{199,1,3,0.0,COMMON}~{201,1,3,0.0,COMMON}~{203,1,3,0.0,COMMON}~{205,1,3,0.0,COMMON}~{207,1,3,0.0,UNCOMMON}~{209,1,3,0.0,UNCOMMON}~{211,1,3,0.0,UNCOMMON}~{213,1,3,0.0,UNCOMMON}~{2485,1,3,0.0,RARE}~{215,1,3,0.0,RARE}~{217,1,3,0.0,RARE}~{995,44,44,0.0,COMMON}~{995,88,88,0.0,COMMON}~{225,1,1,0.0,COMMON}~{2745,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.64,ALWAYS}~{12158,1,1,0.075,ALWAYS}~{12159,1,1,0.22,ALWAYS}~{12160,1,1,0.055,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(1630, '{526,1,1,0.0,ALWAYS}', '{1069,1,1,0.0,COMMON}~{1355,1,1,0.0,COMMON}~{1197,1,1,0.0,COMMON}~{1161,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,UNCOMMON}~{563,3,3,0.0,COMMON}~{561,15,45,0.0,UNCOMMON}~{5106,1,1,0.0,COMMON}~{5280,1,1,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5296,1,1,0.0,COMMON}~{5297,1,1,0.0,COMMON}~{5300,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{199,1,3,0.0,COMMON}~{201,1,3,0.0,COMMON}~{203,1,3,0.0,COMMON}~{205,1,3,0.0,COMMON}~{207,1,3,0.0,UNCOMMON}~{209,1,3,0.0,UNCOMMON}~{211,1,3,0.0,UNCOMMON}~{213,1,3,0.0,UNCOMMON}~{2485,1,3,0.0,RARE}~{215,1,3,0.0,RARE}~{217,1,3,0.0,RARE}~{995,44,44,0.0,COMMON}~{995,88,88,0.0,COMMON}~{225,1,1,0.0,COMMON}~{2735,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.64,ALWAYS}~{12158,1,1,0.075,ALWAYS}~{12159,1,1,0.22,ALWAYS}~{12160,1,1,0.055,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(1631, '{526,1,1,0.0,ALWAYS}', '{1069,1,1,0.0,COMMON}~{1355,1,1,0.0,COMMON}~{1197,1,1,0.0,COMMON}~{1161,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,UNCOMMON}~{563,3,3,0.0,COMMON}~{561,15,45,0.0,UNCOMMON}~{5106,1,1,0.0,COMMON}~{5280,1,1,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5296,1,1,0.0,COMMON}~{5297,1,1,0.0,COMMON}~{5300,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{199,1,3,0.0,COMMON}~{201,1,3,0.0,COMMON}~{203,1,3,0.0,COMMON}~{205,1,3,0.0,COMMON}~{207,1,3,0.0,UNCOMMON}~{209,1,3,0.0,UNCOMMON}~{211,1,3,0.0,UNCOMMON}~{213,1,3,0.0,UNCOMMON}~{2485,1,3,0.0,RARE}~{215,1,3,0.0,RARE}~{217,1,3,0.0,RARE}~{995,44,44,0.0,COMMON}~{995,88,88,0.0,COMMON}~{225,1,1,0.0,COMMON}~{2725,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.64,ALWAYS}~{12158,1,1,0.075,ALWAYS}~{12159,1,1,0.22,ALWAYS}~{12160,1,1,0.055,ALWAYS}~{12163,1,1,0.01,ALWAYS}'); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(1632, '{526,1,1,0.0,ALWAYS}', '{1069,1,1,0.0,COMMON}~{1355,1,1,0.0,COMMON}~{1197,1,1,0.0,COMMON}~{1161,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,UNCOMMON}~{563,3,3,0.0,COMMON}~{561,15,45,0.0,UNCOMMON}~{5106,1,1,0.0,COMMON}~{5280,1,1,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5296,1,1,0.0,COMMON}~{5297,1,1,0.0,COMMON}~{5300,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{199,1,3,0.0,COMMON}~{201,1,3,0.0,COMMON}~{203,1,3,0.0,COMMON}~{205,1,3,0.0,COMMON}~{207,1,3,0.0,UNCOMMON}~{209,1,3,0.0,UNCOMMON}~{211,1,3,0.0,UNCOMMON}~{213,1,3,0.0,UNCOMMON}~{2485,1,3,0.0,RARE}~{215,1,3,0.0,RARE}~{217,1,3,0.0,RARE}~{995,44,44,0.0,COMMON}~{995,88,88,0.0,COMMON}~{225,1,1,0.0,COMMON}~{2735,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.64,ALWAYS}~{12158,1,1,0.075,ALWAYS}~{12159,1,1,0.22,ALWAYS}~{12160,1,1,0.055,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(1633, '{592,1,1,0.0,ALWAYS}', '{554,30,30,0.0,COMMON}~{554,60,60,0.0,COMMON}~{562,12,12,0.0,COMMON}~{563,1,1,0.0,UNCOMMON}~{560,3,3,0.0,UNCOMMON}~{1157,1,1,0.0,COMMON}~{1387,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{1365,1,1,0.0,UNCOMMON}~{886,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{4123,1,1,0.0,RARE}~{1145,1,1,0.0,RARE}~{995,10,10,0.0,COMMON}~{995,40,40,0.0,COMMON}~{444,1,1,0.0,COMMON}~{1993,1,1,0.0,UNCOMMON}~{2809,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.865,ALWAYS}~{12158,1,1,0.05,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.055,ALWAYS}~{12163,1,1,0.005,ALWAYS}'), +(1634, '{592,1,1,0.0,ALWAYS}', '{554,30,30,0.0,COMMON}~{554,60,60,0.0,COMMON}~{562,12,12,0.0,COMMON}~{563,1,1,0.0,UNCOMMON}~{560,3,3,0.0,UNCOMMON}~{1157,1,1,0.0,COMMON}~{1387,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{1365,1,1,0.0,UNCOMMON}~{886,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{4123,1,1,0.0,RARE}~{1145,1,1,0.0,RARE}~{995,10,10,0.0,COMMON}~{995,40,40,0.0,COMMON}~{444,1,1,0.0,COMMON}~{1993,1,1,0.0,UNCOMMON}~{2845,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.865,ALWAYS}~{12158,1,1,0.05,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.055,ALWAYS}~{12163,1,1,0.005,ALWAYS}'), +(1635, '{592,1,1,0.0,ALWAYS}', '{554,30,30,0.0,COMMON}~{554,60,60,0.0,COMMON}~{562,12,12,0.0,COMMON}~{563,1,1,0.0,UNCOMMON}~{560,3,3,0.0,UNCOMMON}~{1157,1,1,0.0,COMMON}~{1387,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{1365,1,1,0.0,UNCOMMON}~{886,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{4123,1,1,0.0,RARE}~{1145,1,1,0.0,RARE}~{995,10,10,0.0,COMMON}~{995,40,40,0.0,COMMON}~{444,1,1,0.0,COMMON}~{1993,1,1,0.0,UNCOMMON}~{2821,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.865,ALWAYS}~{12158,1,1,0.05,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.055,ALWAYS}~{12163,1,1,0.005,ALWAYS}'), +(1636, '{592,1,1,0.0,ALWAYS}', '{554,30,30,0.0,COMMON}~{554,60,60,0.0,COMMON}~{562,12,12,0.0,COMMON}~{563,1,1,0.0,UNCOMMON}~{560,3,3,0.0,UNCOMMON}~{1157,1,1,0.0,COMMON}~{1387,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{1365,1,1,0.0,UNCOMMON}~{886,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{4123,1,1,0.0,RARE}~{1145,1,1,0.0,RARE}~{995,10,10,0.0,COMMON}~{995,40,40,0.0,COMMON}~{444,1,1,0.0,COMMON}~{1993,1,1,0.0,UNCOMMON}~{2825,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.865,ALWAYS}~{12158,1,1,0.05,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.055,ALWAYS}~{12163,1,1,0.005,ALWAYS}'), +(1637, '', '{562,15,15,0.0,UNCOMMON}~{560,5,5,0.0,UNCOMMON}~{555,5,21,0.0,RARE}~{565,7,7,0.0,RARE}~{1365,1,1,0.0,COMMON}~{1311,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{1197,1,1,0.0,UNCOMMON}~{4127,1,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1119,1,1,0.0,RARE}~{1373,1,1,0.0,RARE}~{995,11,497,0.0,COMMON}~{2357,1,1,0.0,UNCOMMON}~{1734,10,10,0.0,RARE}~{2729,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.665,ALWAYS}~{12158,1,1,0.08,ALWAYS}~{12159,1,1,0.20500000000000002,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(1638, '', '{562,15,15,0.0,UNCOMMON}~{560,5,5,0.0,UNCOMMON}~{555,5,21,0.0,RARE}~{565,7,7,0.0,RARE}~{1365,1,1,0.0,COMMON}~{1311,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{1197,1,1,0.0,UNCOMMON}~{4127,1,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1119,1,1,0.0,RARE}~{1373,1,1,0.0,RARE}~{995,11,497,0.0,COMMON}~{2357,1,1,0.0,UNCOMMON}~{1734,10,10,0.0,RARE}~{2729,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.665,ALWAYS}~{12158,1,1,0.08,ALWAYS}~{12159,1,1,0.20500000000000002,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(1639, '', '{562,15,15,0.0,UNCOMMON}~{560,5,5,0.0,UNCOMMON}~{555,5,21,0.0,RARE}~{565,7,7,0.0,RARE}~{1365,1,1,0.0,COMMON}~{1311,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{1197,1,1,0.0,UNCOMMON}~{4127,1,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1119,1,1,0.0,RARE}~{1373,1,1,0.0,RARE}~{995,11,497,0.0,COMMON}~{2357,1,1,0.0,UNCOMMON}~{1734,10,10,0.0,RARE}~{2747,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.665,ALWAYS}~{12158,1,1,0.08,ALWAYS}~{12159,1,1,0.20500000000000002,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(1640, '', '{562,15,15,0.0,UNCOMMON}~{560,5,5,0.0,UNCOMMON}~{555,5,21,0.0,RARE}~{565,7,7,0.0,RARE}~{1365,1,1,0.0,COMMON}~{1311,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{1197,1,1,0.0,UNCOMMON}~{4127,1,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1119,1,1,0.0,RARE}~{1373,1,1,0.0,RARE}~{995,11,497,0.0,COMMON}~{2357,1,1,0.0,UNCOMMON}~{1734,10,10,0.0,RARE}~{2745,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.665,ALWAYS}~{12158,1,1,0.08,ALWAYS}~{12159,1,1,0.20500000000000002,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(1641, '', '{562,15,15,0.0,UNCOMMON}~{560,5,5,0.0,UNCOMMON}~{555,5,21,0.0,RARE}~{565,7,7,0.0,RARE}~{1365,1,1,0.0,COMMON}~{1311,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{1197,1,1,0.0,UNCOMMON}~{4127,1,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1119,1,1,0.0,RARE}~{1373,1,1,0.0,RARE}~{995,11,497,0.0,COMMON}~{2357,1,1,0.0,UNCOMMON}~{1734,10,10,0.0,RARE}~{2735,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.665,ALWAYS}~{12158,1,1,0.08,ALWAYS}~{12159,1,1,0.20500000000000002,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(1642, '', '{562,15,15,0.0,UNCOMMON}~{560,5,5,0.0,UNCOMMON}~{555,5,21,0.0,RARE}~{565,7,7,0.0,RARE}~{1365,1,1,0.0,COMMON}~{1311,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{1197,1,1,0.0,UNCOMMON}~{4127,1,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1119,1,1,0.0,RARE}~{1373,1,1,0.0,RARE}~{995,11,497,0.0,COMMON}~{2357,1,1,0.0,UNCOMMON}~{1734,10,10,0.0,RARE}~{2741,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.665,ALWAYS}~{12158,1,1,0.08,ALWAYS}~{12159,1,1,0.20500000000000002,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(1643, '{526,1,1,0.0,ALWAYS}', '{1379,1,1,0.0,COMMON}~{1387,1,1,0.0,UNCOMMON}~{3053,1,1,0.0,RARE}~{1401,1,1,0.0,RARE}~{557,5,5,0.0,COMMON}~{557,10,10,0.0,COMMON}~{554,10,10,0.0,COMMON}~{554,18,18,0.0,COMMON}~{560,7,7,0.0,COMMON}~{565,4,4,0.0,UNCOMMON}~{565,7,7,0.0,UNCOMMON}~{556,10,10,0.0,UNCOMMON}~{556,18,18,0.0,UNCOMMON}~{558,18,18,0.0,UNCOMMON}~{555,10,10,0.0,UNCOMMON}~{555,18,18,0.0,UNCOMMON}~{559,18,18,0.0,UNCOMMON}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{2725,1,1,0.0,RARE}', '{0,1,1,0.615,ALWAYS}~{12158,1,1,0.323,ALWAYS}~{12159,1,1,0.03,ALWAYS}~{12160,1,1,0.025,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(1644, '{526,1,1,0.0,ALWAYS}', '{1379,1,1,0.0,COMMON}~{1387,1,1,0.0,UNCOMMON}~{3053,1,1,0.0,RARE}~{1401,1,1,0.0,RARE}~{557,5,5,0.0,COMMON}~{557,10,10,0.0,COMMON}~{554,10,10,0.0,COMMON}~{554,18,18,0.0,COMMON}~{560,7,7,0.0,COMMON}~{565,4,4,0.0,UNCOMMON}~{565,7,7,0.0,UNCOMMON}~{556,10,10,0.0,UNCOMMON}~{556,18,18,0.0,UNCOMMON}~{558,18,18,0.0,UNCOMMON}~{555,10,10,0.0,UNCOMMON}~{555,18,18,0.0,UNCOMMON}~{559,18,18,0.0,UNCOMMON}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{2741,1,1,0.0,RARE}', '{0,1,1,0.615,ALWAYS}~{12158,1,1,0.323,ALWAYS}~{12159,1,1,0.03,ALWAYS}~{12160,1,1,0.025,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(1645, '{526,1,1,0.0,ALWAYS}', '{1379,1,1,0.0,COMMON}~{1387,1,1,0.0,UNCOMMON}~{3053,1,1,0.0,RARE}~{1401,1,1,0.0,RARE}~{557,5,5,0.0,COMMON}~{557,10,10,0.0,COMMON}~{554,10,10,0.0,COMMON}~{554,18,18,0.0,COMMON}~{560,7,7,0.0,COMMON}~{565,4,4,0.0,UNCOMMON}~{565,7,7,0.0,UNCOMMON}~{556,10,10,0.0,UNCOMMON}~{556,18,18,0.0,UNCOMMON}~{558,18,18,0.0,UNCOMMON}~{555,10,10,0.0,UNCOMMON}~{555,18,18,0.0,UNCOMMON}~{559,18,18,0.0,UNCOMMON}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{2731,1,1,0.0,RARE}', '{0,1,1,0.615,ALWAYS}~{12158,1,1,0.323,ALWAYS}~{12159,1,1,0.03,ALWAYS}~{12160,1,1,0.025,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(1646, '{526,1,1,0.0,ALWAYS}', '{1379,1,1,0.0,COMMON}~{1387,1,1,0.0,UNCOMMON}~{3053,1,1,0.0,RARE}~{1401,1,1,0.0,RARE}~{557,5,5,0.0,COMMON}~{557,10,10,0.0,COMMON}~{554,10,10,0.0,COMMON}~{554,18,18,0.0,COMMON}~{560,7,7,0.0,COMMON}~{565,4,4,0.0,UNCOMMON}~{565,7,7,0.0,UNCOMMON}~{556,10,10,0.0,UNCOMMON}~{556,18,18,0.0,UNCOMMON}~{558,18,18,0.0,UNCOMMON}~{555,10,10,0.0,UNCOMMON}~{555,18,18,0.0,UNCOMMON}~{559,18,18,0.0,UNCOMMON}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{2737,1,1,0.0,RARE}', '{0,1,1,0.615,ALWAYS}~{12158,1,1,0.323,ALWAYS}~{12159,1,1,0.03,ALWAYS}~{12160,1,1,0.025,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(1647, '{526,1,1,0.0,ALWAYS}', '{1379,1,1,0.0,COMMON}~{1387,1,1,0.0,UNCOMMON}~{3053,1,1,0.0,RARE}~{1401,1,1,0.0,RARE}~{557,5,5,0.0,COMMON}~{557,10,10,0.0,COMMON}~{554,10,10,0.0,COMMON}~{554,18,18,0.0,COMMON}~{560,7,7,0.0,COMMON}~{565,4,4,0.0,UNCOMMON}~{565,7,7,0.0,UNCOMMON}~{556,10,10,0.0,UNCOMMON}~{556,18,18,0.0,UNCOMMON}~{558,18,18,0.0,UNCOMMON}~{555,10,10,0.0,UNCOMMON}~{555,18,18,0.0,UNCOMMON}~{559,18,18,0.0,UNCOMMON}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{2739,1,1,0.0,RARE}', '{0,1,1,0.615,ALWAYS}~{12158,1,1,0.323,ALWAYS}~{12159,1,1,0.03,ALWAYS}~{12160,1,1,0.025,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(1648, '{526,1,1,0.0,ALWAYS}', '{1059,1,1,0.0,COMMON}~{2902,1,1,0.0,UNCOMMON}~{2922,1,1,0.0,UNCOMMON}~{2912,1,1,0.0,UNCOMMON}~{2942,1,1,0.0,UNCOMMON}~{3799,1,1,0.0,UNCOMMON}~{4155,1,1,0.0,RARE}~{1635,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,UNCOMMON}~{1639,1,1,0.0,UNCOMMON}~{1641,1,1,0.0,UNCOMMON}~{995,5,442,0.0,COMMON}~{592,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.094,ALWAYS}~{12159,1,1,0.007,ALWAYS}~{12160,1,1,0.006,ALWAYS}~{12163,1,1,0.001,ALWAYS}'), +(1649, '{526,1,1,0.0,ALWAYS}', '{1059,1,1,0.0,COMMON}~{2902,1,1,0.0,UNCOMMON}~{2922,1,1,0.0,UNCOMMON}~{2912,1,1,0.0,UNCOMMON}~{2942,1,1,0.0,UNCOMMON}~{3799,1,1,0.0,UNCOMMON}~{4155,1,1,0.0,RARE}~{1635,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,UNCOMMON}~{1639,1,1,0.0,UNCOMMON}~{1641,1,1,0.0,UNCOMMON}~{995,5,442,0.0,COMMON}~{592,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.094,ALWAYS}~{12159,1,1,0.007,ALWAYS}~{12160,1,1,0.006,ALWAYS}~{12163,1,1,0.001,ALWAYS}'), +(1650, '{526,1,1,0.0,ALWAYS}', '{1059,1,1,0.0,COMMON}~{2902,1,1,0.0,UNCOMMON}~{2922,1,1,0.0,UNCOMMON}~{2912,1,1,0.0,UNCOMMON}~{2942,1,1,0.0,UNCOMMON}~{3799,1,1,0.0,UNCOMMON}~{4155,1,1,0.0,RARE}~{1635,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,UNCOMMON}~{1639,1,1,0.0,UNCOMMON}~{1641,1,1,0.0,UNCOMMON}~{995,5,442,0.0,COMMON}~{592,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.094,ALWAYS}~{12159,1,1,0.007,ALWAYS}~{12160,1,1,0.006,ALWAYS}~{12163,1,1,0.001,ALWAYS}'), +(1651, '{526,1,1,0.0,ALWAYS}', '{1059,1,1,0.0,COMMON}~{2902,1,1,0.0,UNCOMMON}~{2922,1,1,0.0,UNCOMMON}~{2912,1,1,0.0,UNCOMMON}~{2942,1,1,0.0,UNCOMMON}~{3799,1,1,0.0,UNCOMMON}~{4155,1,1,0.0,RARE}~{1635,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,UNCOMMON}~{1639,1,1,0.0,UNCOMMON}~{1641,1,1,0.0,UNCOMMON}~{995,5,442,0.0,COMMON}~{592,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.094,ALWAYS}~{12159,1,1,0.007,ALWAYS}~{12160,1,1,0.006,ALWAYS}~{12163,1,1,0.001,ALWAYS}'), +(1652, '{526,1,1,0.0,ALWAYS}', '{1059,1,1,0.0,COMMON}~{2902,1,1,0.0,UNCOMMON}~{2922,1,1,0.0,UNCOMMON}~{2912,1,1,0.0,UNCOMMON}~{2942,1,1,0.0,UNCOMMON}~{3799,1,1,0.0,UNCOMMON}~{4155,1,1,0.0,RARE}~{1635,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,UNCOMMON}~{1639,1,1,0.0,UNCOMMON}~{1641,1,1,0.0,UNCOMMON}~{995,5,442,0.0,COMMON}~{592,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.094,ALWAYS}~{12159,1,1,0.007,ALWAYS}~{12160,1,1,0.006,ALWAYS}~{12163,1,1,0.001,ALWAYS}'), +(1653, '{526,1,1,0.0,ALWAYS}', '{1059,1,1,0.0,COMMON}~{2902,1,1,0.0,UNCOMMON}~{2922,1,1,0.0,UNCOMMON}~{2912,1,1,0.0,UNCOMMON}~{2942,1,1,0.0,UNCOMMON}~{3799,1,1,0.0,UNCOMMON}~{4155,1,1,0.0,RARE}~{1635,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,UNCOMMON}~{1639,1,1,0.0,UNCOMMON}~{1641,1,1,0.0,UNCOMMON}~{995,5,442,0.0,COMMON}~{592,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.094,ALWAYS}~{12159,1,1,0.007,ALWAYS}~{12160,1,1,0.006,ALWAYS}~{12163,1,1,0.001,ALWAYS}'), +(1654, '{526,1,1,0.0,ALWAYS}', '{1059,1,1,0.0,COMMON}~{1635,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,UNCOMMON}~{1639,1,1,0.0,UNCOMMON}~{1641,1,1,0.0,UNCOMMON}~{995,5,442,0.0,COMMON}~{592,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.094,ALWAYS}~{12159,1,1,0.007,ALWAYS}~{12160,1,1,0.006,ALWAYS}~{12163,1,1,0.001,ALWAYS}'), +(1655, '{526,1,1,0.0,ALWAYS}', '{1059,1,1,0.0,COMMON}~{2902,1,1,0.0,UNCOMMON}~{2922,1,1,0.0,UNCOMMON}~{2912,1,1,0.0,UNCOMMON}~{2942,1,1,0.0,UNCOMMON}~{3799,1,1,0.0,UNCOMMON}~{4155,1,1,0.0,RARE}~{1635,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,UNCOMMON}~{1639,1,1,0.0,UNCOMMON}~{1641,1,1,0.0,UNCOMMON}~{995,5,442,0.0,COMMON}~{592,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.094,ALWAYS}~{12159,1,1,0.007,ALWAYS}~{12160,1,1,0.006,ALWAYS}~{12163,1,1,0.001,ALWAYS}'), +(1656, '{526,1,1,0.0,ALWAYS}', '{1059,1,1,0.0,COMMON}~{2902,1,1,0.0,UNCOMMON}~{2922,1,1,0.0,UNCOMMON}~{2912,1,1,0.0,UNCOMMON}~{2942,1,1,0.0,UNCOMMON}~{3799,1,1,0.0,UNCOMMON}~{4155,1,1,0.0,RARE}~{1635,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,UNCOMMON}~{1639,1,1,0.0,UNCOMMON}~{1641,1,1,0.0,UNCOMMON}~{995,5,442,0.0,COMMON}~{592,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.094,ALWAYS}~{12159,1,1,0.007,ALWAYS}~{12160,1,1,0.006,ALWAYS}~{12163,1,1,0.001,ALWAYS}'), +(1657, '{526,1,1,0.0,ALWAYS}', '{1059,1,1,0.0,COMMON}~{2902,1,1,0.0,UNCOMMON}~{2922,1,1,0.0,UNCOMMON}~{2912,1,1,0.0,UNCOMMON}~{2942,1,1,0.0,UNCOMMON}~{3799,1,1,0.0,UNCOMMON}~{4155,1,1,0.0,RARE}~{1635,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,UNCOMMON}~{1639,1,1,0.0,UNCOMMON}~{1641,1,1,0.0,UNCOMMON}~{995,5,442,0.0,COMMON}~{592,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.094,ALWAYS}~{12159,1,1,0.007,ALWAYS}~{12160,1,1,0.006,ALWAYS}~{12163,1,1,0.001,ALWAYS}'), +(1665, '{2859,1,1,0.0,ALWAYS}', '{2138,5,5,0.0,COMMON}~{2132,5,5,0.0,COMMON}~{2136,1,5,0.0,COMMON}~{1993,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{886,50,50,0.0,UNCOMMON}~{1157,1,1,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,UNCOMMON}~{830,1,1,0.0,UNCOMMON}~{203,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,10,10,0.0,COMMON}~{995,90,90,0.0,COMMON}~{6814,1,1,0.0,COMMON}~{958,1,1,0.0,COMMON}~{7868,1,1,0.0,COMMON}~{2839,1,1,0.0,RARE}~{245,1,1,0.0,RARE}~{983,1,1,0.0,RARE}~{239,1,1,0.0,RARE}~{1925,1,1,0.0,RARE}~{440,1,5,0.0,UNCOMMON}~{453,2,2,0.0,UNCOMMON}~{227,1,1,0.0,RARE}~{590,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,COMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.465,ALWAYS}~{12158,1,1,0.445,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(1681, '{532,1,1,0.0,ALWAYS}', '{1389,1,1,0.0,COMMON}~{1243,1,1,0.0,COMMON}~{1285,1,1,0.0,COMMON}~{886,30,30,0.0,COMMON}~{884,15,15,0.0,COMMON}~{1287,1,1,0.0,RARE}~{1165,1,1,0.0,COMMON}~{1179,1,1,0.0,COMMON}~{1141,1,1,0.0,COMMON}~{1193,1,1,0.0,UNCOMMON}~{556,18,18,0.0,COMMON}~{564,3,3,0.0,COMMON}~{557,27,27,0.0,COMMON}~{561,6,6,0.0,COMMON}~{563,3,6,0.0,UNCOMMON}~{565,1,1,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{560,13,13,0.0,RARE}~{5323,1,1,0.0,COMMON}~{5311,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5104,1,1,0.0,COMMON}~{5292,1,1,0.0,COMMON}~{5281,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{4206,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,RARE}~{5280,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5106,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{211,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{995,2,500,0.0,COMMON}~{2353,1,1,0.0,COMMON}~{7871,1,1,0.0,COMMON}~{453,1,1,0.0,UNCOMMON}~{1969,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{10976,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1691, '{526,1,1,0.0,ALWAYS}~{1739,1,1,0.0,ALWAYS}~{4287,1,1,0.0,ALWAYS}', '', '{0,1,1,0.9500000000000001,ALWAYS}~{12158,1,1,0.008,ALWAYS}~{12159,1,1,0.038,ALWAYS}~{12160,1,1,0.002,ALWAYS}~{12163,1,1,0.001,ALWAYS}'), +(1692, '{526,1,1,0.0,ALWAYS}~{314,5,5,0.0,ALWAYS}~{4289,1,1,0.0,ALWAYS}', '', ''), +(1698, '', '{5321,1,1,0.0,COMMON}~{5323,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{5280,1,1,0.0,RARE}~{5298,1,1,0.0,RARE}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{199,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{555,6,6,0.0,COMMON}~{559,7,7,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{995,2,612,0.0,COMMON}~{225,1,1,0.0,UNCOMMON}~{227,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1710, '{526,1,1,0.0,ALWAYS}', '{1207,1,1,0.0,UNCOMMON}~{1129,1,1,0.0,UNCOMMON}~{1205,1,1,0.0,UNCOMMON}~{697,1,1,0.0,COMMON}~{686,1,1,0.0,UNCOMMON}~{4170,1,1,0.0,RARE}~{882,1,8,0.0,UNCOMMON}~{886,4,4,0.0,UNCOMMON}~{1351,1,1,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{1265,1,1,0.0,COMMON}~{1267,1,1,0.0,COMMON}~{1269,1,1,0.0,COMMON}~{946,1,1,0.0,COMMON}~{995,2,19,0.0,COMMON}~{1625,1,1,0.0,UNCOMMON}~{1627,1,1,0.0,UNCOMMON}~{321,1,3,0.0,UNCOMMON}~{2138,1,3,0.0,UNCOMMON}~{1739,1,3,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{688,1,1,0.0,UNCOMMON}~{1733,1,1,0.0,UNCOMMON}~{590,1,1,0.0,COMMON}~{1511,1,3,0.0,COMMON}~{2716,1,1,0.0,RARE}~{314,1,7,0.0,UNCOMMON}~{1734,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{5321,1,4,0.0,RARE}~{5323,1,4,0.0,RARE}~{5319,1,4,0.0,UNCOMMON}~{5324,1,1,0.0,UNCOMMON}~{2370,1,1,0.0,RARE}', ''), +(1711, '{526,1,1,0.0,ALWAYS}', '{1207,1,1,0.0,UNCOMMON}~{1129,1,1,0.0,UNCOMMON}~{1205,1,1,0.0,UNCOMMON}~{697,1,1,0.0,COMMON}~{686,1,1,0.0,UNCOMMON}~{4170,1,1,0.0,RARE}~{882,1,8,0.0,UNCOMMON}~{886,4,4,0.0,UNCOMMON}~{1351,1,1,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{1265,1,1,0.0,COMMON}~{1267,1,1,0.0,COMMON}~{1269,1,1,0.0,COMMON}~{946,1,1,0.0,COMMON}~{995,2,19,0.0,COMMON}~{1625,1,1,0.0,UNCOMMON}~{1627,1,1,0.0,UNCOMMON}~{321,1,3,0.0,UNCOMMON}~{2138,1,3,0.0,UNCOMMON}~{1739,1,3,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{688,1,1,0.0,UNCOMMON}~{1733,1,1,0.0,UNCOMMON}~{590,1,1,0.0,COMMON}~{1511,1,3,0.0,COMMON}~{2710,1,1,0.0,RARE}~{314,1,7,0.0,UNCOMMON}~{1734,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{5321,1,4,0.0,RARE}~{5323,1,4,0.0,RARE}~{5319,1,4,0.0,UNCOMMON}~{5324,1,1,0.0,UNCOMMON}~{2370,1,1,0.0,RARE}', ''), +(1712, '{526,1,1,0.0,ALWAYS}', '{1207,1,1,0.0,UNCOMMON}~{1129,1,1,0.0,UNCOMMON}~{1205,1,1,0.0,UNCOMMON}~{697,1,1,0.0,COMMON}~{686,1,1,0.0,UNCOMMON}~{4170,1,1,0.0,RARE}~{882,1,8,0.0,UNCOMMON}~{886,4,4,0.0,UNCOMMON}~{1351,1,1,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{1265,1,1,0.0,COMMON}~{1267,1,1,0.0,COMMON}~{1269,1,1,0.0,COMMON}~{946,1,1,0.0,COMMON}~{995,2,19,0.0,COMMON}~{1625,1,1,0.0,UNCOMMON}~{1627,1,1,0.0,UNCOMMON}~{321,1,3,0.0,UNCOMMON}~{2138,1,3,0.0,UNCOMMON}~{1739,1,3,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{688,1,1,0.0,UNCOMMON}~{1733,1,1,0.0,UNCOMMON}~{590,1,1,0.0,COMMON}~{1511,1,3,0.0,COMMON}~{2695,1,1,0.0,RARE}~{314,1,7,0.0,UNCOMMON}~{1734,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{5321,1,4,0.0,RARE}~{5323,1,4,0.0,RARE}~{5319,1,4,0.0,UNCOMMON}~{5324,1,1,0.0,UNCOMMON}~{2370,1,1,0.0,RARE}', ''), +(1713, '', '{2677,1,1,0.0,RARE}', ''), +(1714, '', '{882,1,20,0.0,COMMON}~{1351,1,1,0.0,COMMON}~{1205,1,1,0.0,COMMON}~{1265,1,1,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1267,1,1,0.0,COMMON}~{886,1,20,0.0,UNCOMMON}~{1353,1,1,0.0,UNCOMMON}~{1207,1,1,0.0,UNCOMMON}~{1269,1,1,0.0,UNCOMMON}~{1129,1,1,0.0,UNCOMMON}~{4170,1,1,0.0,RARE}~{995,2,21,0.0,COMMON}~{319,1,1,0.0,COMMON}~{2138,1,1,0.0,COMMON}~{314,2,5,0.0,COMMON}~{1734,1,6,0.0,COMMON}~{1733,1,1,0.0,COMMON}~{1511,1,1,0.0,COMMON}~{1625,1,1,0.0,COMMON}~{686,1,1,0.0,UNCOMMON}~{697,1,1,0.0,UNCOMMON}~{2714,1,1,0.0,UNCOMMON}~{1627,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{688,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{1739,1,1,0.0,UNCOMMON}~{2677,1,1,0.0,RARE}', ''), +(1715, '', '{882,1,20,0.0,COMMON}~{1351,1,1,0.0,COMMON}~{1205,1,1,0.0,COMMON}~{1265,1,1,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1267,1,1,0.0,COMMON}~{886,1,20,0.0,UNCOMMON}~{1353,1,1,0.0,UNCOMMON}~{1207,1,1,0.0,UNCOMMON}~{1269,1,1,0.0,UNCOMMON}~{1129,1,1,0.0,UNCOMMON}~{4170,1,1,0.0,RARE}~{995,2,21,0.0,COMMON}~{319,1,1,0.0,COMMON}~{2138,1,1,0.0,COMMON}~{314,2,5,0.0,COMMON}~{1734,1,6,0.0,COMMON}~{1733,1,1,0.0,COMMON}~{1511,1,1,0.0,COMMON}~{1625,1,1,0.0,COMMON}~{686,1,1,0.0,UNCOMMON}~{697,1,1,0.0,UNCOMMON}~{2716,1,1,0.0,UNCOMMON}~{1627,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{688,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{1739,1,1,0.0,UNCOMMON}', ''), +(1716, '', '{882,1,20,0.0,COMMON}~{1351,1,1,0.0,COMMON}~{1205,1,1,0.0,COMMON}~{1265,1,1,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1267,1,1,0.0,COMMON}~{886,1,20,0.0,UNCOMMON}~{1353,1,1,0.0,UNCOMMON}~{1207,1,1,0.0,UNCOMMON}~{1269,1,1,0.0,UNCOMMON}~{1129,1,1,0.0,UNCOMMON}~{4170,1,1,0.0,RARE}~{995,2,21,0.0,COMMON}~{319,1,1,0.0,COMMON}~{2138,1,1,0.0,COMMON}~{314,2,5,0.0,COMMON}~{1734,1,6,0.0,COMMON}~{1733,1,1,0.0,COMMON}~{1511,1,1,0.0,COMMON}~{1625,1,1,0.0,COMMON}~{686,1,1,0.0,UNCOMMON}~{697,1,1,0.0,UNCOMMON}~{2716,1,1,0.0,UNCOMMON}~{1627,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{688,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{1739,1,1,0.0,UNCOMMON}', ''), +(1717, '', '{882,1,20,0.0,COMMON}~{1351,1,1,0.0,COMMON}~{1205,1,1,0.0,COMMON}~{1265,1,1,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1267,1,1,0.0,COMMON}~{886,1,20,0.0,UNCOMMON}~{1353,1,1,0.0,UNCOMMON}~{1207,1,1,0.0,UNCOMMON}~{1269,1,1,0.0,UNCOMMON}~{1129,1,1,0.0,UNCOMMON}~{4170,1,1,0.0,RARE}~{995,2,21,0.0,COMMON}~{319,1,1,0.0,COMMON}~{2138,1,1,0.0,COMMON}~{314,2,5,0.0,COMMON}~{1734,1,6,0.0,COMMON}~{1733,1,1,0.0,COMMON}~{1511,1,1,0.0,COMMON}~{1625,1,1,0.0,COMMON}~{686,1,1,0.0,UNCOMMON}~{697,1,1,0.0,UNCOMMON}~{2703,1,1,0.0,UNCOMMON}~{1627,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{688,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{1739,1,1,0.0,UNCOMMON}', ''), +(1752, '{526,1,1,0.0,ALWAYS}', '{2128,1,1,0.0,COMMON}~{2102,1,1,0.0,COMMON}~{2171,1,1,0.0,COMMON}~{2120,1,1,0.0,COMMON}~{2165,1,1,0.0,UNCOMMON}~{2166,1,1,0.0,UNCOMMON}~{2169,1,1,0.0,UNCOMMON}~{2164,1,1,0.0,UNCOMMON}~{7878,1,1,0.0,RARE}', '{0,1,1,0.8200000000000001,ALWAYS}~{12158,1,1,0.11900000000000001,ALWAYS}~{12159,1,1,0.009000000000000001,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.011,ALWAYS}'), +(1753, '{526,1,1,0.0,ALWAYS}', '{2128,1,1,0.0,COMMON}~{2102,1,1,0.0,COMMON}~{2171,1,1,0.0,COMMON}~{2120,1,1,0.0,COMMON}~{2165,1,1,0.0,UNCOMMON}~{2166,1,1,0.0,UNCOMMON}~{2169,1,1,0.0,UNCOMMON}~{2164,1,1,0.0,UNCOMMON}~{7878,1,1,0.0,RARE}', '{0,1,1,0.8200000000000001,ALWAYS}~{12158,1,1,0.11900000000000001,ALWAYS}~{12159,1,1,0.009000000000000001,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.011,ALWAYS}'), +(1757, '{526,1,1,0.0,ALWAYS}', '{5345,1,1,0.0,RARE}~{5341,1,1,0.0,UNCOMMON}~{5329,1,1,0.0,COMMON}~{5331,1,1,0.0,RARE}~{5324,4,4,0.0,UNCOMMON}~{5323,4,4,0.0,COMMON}~{5318,1,4,0.0,COMMON}~{5322,4,4,0.0,UNCOMMON}~{5321,4,4,0.0,UNCOMMON}~{12148,4,4,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{562,2,2,0.0,UNCOMMON}~{556,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{882,7,7,0.0,UNCOMMON}~{877,3,12,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{5320,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{217,1,1,0.0,UNCOMMON}~{5319,1,1,0.0,UNCOMMON}~{2685,1,1,0.0,RARE}~{995,3,15,0.0,COMMON}', ''), +(1758, '{526,1,1,0.0,ALWAYS}', '{5345,1,1,0.0,RARE}~{5341,1,1,0.0,UNCOMMON}~{5329,1,1,0.0,COMMON}~{5331,1,1,0.0,RARE}~{5324,4,4,0.0,UNCOMMON}~{5323,4,4,0.0,COMMON}~{5318,1,4,0.0,COMMON}~{5322,4,4,0.0,UNCOMMON}~{5321,4,4,0.0,UNCOMMON}~{12148,4,4,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{562,2,2,0.0,UNCOMMON}~{556,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{882,7,7,0.0,UNCOMMON}~{877,3,12,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{5320,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{217,1,1,0.0,UNCOMMON}~{5319,1,1,0.0,UNCOMMON}~{2711,1,1,0.0,RARE}~{995,3,15,0.0,COMMON}', ''), +(1759, '{526,1,1,0.0,ALWAYS}', '{5345,1,1,0.0,RARE}~{5341,1,1,0.0,UNCOMMON}~{5329,1,1,0.0,COMMON}~{5331,1,1,0.0,RARE}~{5324,4,4,0.0,UNCOMMON}~{5323,4,4,0.0,COMMON}~{5318,1,4,0.0,COMMON}~{5322,4,4,0.0,UNCOMMON}~{5321,4,4,0.0,UNCOMMON}~{12148,4,4,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{562,2,2,0.0,UNCOMMON}~{556,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{882,7,7,0.0,UNCOMMON}~{877,3,12,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{5320,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{217,1,1,0.0,UNCOMMON}~{5319,1,1,0.0,UNCOMMON}~{2696,1,1,0.0,RARE}~{995,3,15,0.0,COMMON}', ''), +(1760, '{526,1,1,0.0,ALWAYS}', '{5345,1,1,0.0,RARE}~{5341,1,1,0.0,UNCOMMON}~{5329,1,1,0.0,COMMON}~{5331,1,1,0.0,RARE}~{5324,4,4,0.0,UNCOMMON}~{5323,4,4,0.0,COMMON}~{5318,1,4,0.0,COMMON}~{5322,4,4,0.0,UNCOMMON}~{5321,4,4,0.0,UNCOMMON}~{12148,4,4,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{562,2,2,0.0,UNCOMMON}~{556,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{882,7,7,0.0,UNCOMMON}~{877,3,12,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{5320,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{217,1,1,0.0,UNCOMMON}~{5319,1,1,0.0,UNCOMMON}~{2702,1,1,0.0,RARE}~{995,3,15,0.0,COMMON}', ''), +(1761, '{526,1,1,0.0,ALWAYS}', '{5345,1,1,0.0,RARE}~{5341,1,1,0.0,UNCOMMON}~{5329,1,1,0.0,COMMON}~{5331,1,1,0.0,RARE}~{5324,4,4,0.0,UNCOMMON}~{5323,4,4,0.0,COMMON}~{5318,1,4,0.0,COMMON}~{5322,4,4,0.0,UNCOMMON}~{5321,4,4,0.0,UNCOMMON}~{12148,4,4,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{562,2,2,0.0,UNCOMMON}~{556,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{882,7,7,0.0,UNCOMMON}~{877,3,12,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{5320,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{217,1,1,0.0,UNCOMMON}~{5319,1,1,0.0,UNCOMMON}~{2716,1,1,0.0,RARE}~{995,3,15,0.0,COMMON}', ''), +(1766, '{1739,1,1,0.0,ALWAYS}~{2132,1,1,0.0,ALWAYS}~{526,1,1,0.0,ALWAYS}', '', '{12158,1,1,0.02,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.012,ALWAYS}~{12163,1,1,0.007,ALWAYS}'), +(1767, '{526,1,1,0.0,ALWAYS}~{1739,1,1,0.0,ALWAYS}~{2132,1,1,0.0,ALWAYS}', '', '{0,1,1,0.9500000000000001,ALWAYS}~{12158,1,1,0.008,ALWAYS}~{12159,1,1,0.038,ALWAYS}~{12160,1,1,0.002,ALWAYS}~{12163,1,1,0.001,ALWAYS}'), +(1768, '{526,1,1,0.0,ALWAYS}~{1739,1,1,0.0,ALWAYS}~{2132,1,1,0.0,ALWAYS}', '', '{0,1,1,0.9500000000000001,ALWAYS}~{12158,1,1,0.008,ALWAYS}~{12159,1,1,0.038,ALWAYS}~{12160,1,1,0.002,ALWAYS}~{12163,1,1,0.001,ALWAYS}'), +(1769, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(1770, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2692,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(1771, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2713,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(1772, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2704,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(1773, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2698,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(1774, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2682,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(1775, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2697,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(1776, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2700,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(1795, '{526,1,1,0.0,ALWAYS}', '', ''), +(1796, '{526,1,1,0.0,ALWAYS}', '', ''), +(1797, '{526,1,1,0.0,ALWAYS}', '', ''), +(1805, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2829,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(1806, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2857,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(1814, '{526,1,1,0.0,ALWAYS}', '', ''), +(1815, '{526,1,1,0.0,ALWAYS}', '', ''), +(1816, '{526,1,1,0.0,ALWAYS}', '', ''), +(1817, '{526,1,1,0.0,ALWAYS}', '', ''), +(1818, '{526,1,1,0.0,ALWAYS}', '', ''), +(1822, '{526,1,1,0.0,ALWAYS}', '{555,6,6,0.0,COMMON}~{559,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{558,13,19,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{877,8,8,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{5016,1,1,0.0,RARE}~{5018,1,1,0.0,RARE}~{1381,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,COMMON}~{1917,1,1,0.0,RARE}~{10999,1,1,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{590,1,1,0.0,UNCOMMON}~{2698,1,1,0.0,RARE}~{995,5,49,0.0,COMMON}~{1987,3,3,0.0,UNCOMMON}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.061,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(1823, '{526,1,1,0.0,ALWAYS}', '{555,6,6,0.0,COMMON}~{559,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{558,13,19,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{877,8,8,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{5016,1,1,0.0,RARE}~{5018,1,1,0.0,RARE}~{1381,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,COMMON}~{1917,1,1,0.0,RARE}~{10999,1,1,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{590,1,1,0.0,UNCOMMON}~{2685,1,1,0.0,RARE}~{995,5,49,0.0,COMMON}~{1987,3,3,0.0,UNCOMMON}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.061,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(1824, '{526,1,1,0.0,ALWAYS}', '{555,6,6,0.0,COMMON}~{559,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{558,13,19,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{877,8,8,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{5016,1,1,0.0,RARE}~{5018,1,1,0.0,RARE}~{1381,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,COMMON}~{1917,1,1,0.0,RARE}~{10999,1,1,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{590,1,1,0.0,UNCOMMON}~{2713,1,1,0.0,RARE}~{995,5,49,0.0,COMMON}~{1987,3,3,0.0,UNCOMMON}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.061,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(1825, '{526,1,1,0.0,ALWAYS}', '{555,6,6,0.0,COMMON}~{559,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{558,13,19,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{877,8,8,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{5016,1,1,0.0,RARE}~{5018,1,1,0.0,RARE}~{1381,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,COMMON}~{1917,1,1,0.0,RARE}~{10999,1,1,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{590,1,1,0.0,UNCOMMON}~{2696,1,1,0.0,RARE}~{995,5,49,0.0,COMMON}~{1987,3,3,0.0,UNCOMMON}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.061,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(1826, '', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{215,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{556,3,3,0.0,COMMON}~{564,2,2,0.0,UNCOMMON}~{562,3,3,0.0,RARE}~{562,7,7,0.0,RARE}~{1141,1,1,0.0,COMMON}~{1157,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1155,1,1,0.0,COMMON}~{1165,1,1,0.0,UNCOMMON}~{1143,1,1,0.0,UNCOMMON}~{1159,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,UNCOMMON}~{995,15,15,0.0,COMMON}~{590,1,1,0.0,COMMON}~{4542,1,1,0.0,COMMON}~{596,1,1,0.0,COMMON}~{221,1,1,0.0,UNCOMMON}~{2855,1,1,0.0,RARE}', '{0,1,1,0.735,ALWAYS}~{12158,1,1,0.093,ALWAYS}~{12159,1,1,0.06,ALWAYS}~{12160,1,1,0.1,ALWAYS}~{12163,1,1,0.012,ALWAYS}'), +(1827, '', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{215,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{556,3,3,0.0,COMMON}~{564,2,2,0.0,UNCOMMON}~{562,3,3,0.0,RARE}~{562,7,7,0.0,RARE}~{1141,1,1,0.0,COMMON}~{1157,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1155,1,1,0.0,COMMON}~{1165,1,1,0.0,UNCOMMON}~{1143,1,1,0.0,UNCOMMON}~{1159,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,UNCOMMON}~{995,15,15,0.0,COMMON}~{590,1,1,0.0,COMMON}~{4542,1,1,0.0,COMMON}~{596,1,1,0.0,COMMON}~{221,1,1,0.0,UNCOMMON}~{2827,1,1,0.0,RARE}', '{0,1,1,0.735,ALWAYS}~{12158,1,1,0.093,ALWAYS}~{12159,1,1,0.06,ALWAYS}~{12160,1,1,0.1,ALWAYS}~{12163,1,1,0.012,ALWAYS}'), +(1828, '{532,1,1,0.0,ALWAYS}', '{995,2,2,0.0,COMMON}~{995,30,30,0.0,COMMON}~{4517,1,1,0.0,COMMON}~{561,1,1,0.0,COMMON}~{561,3,3,0.0,COMMON}~{884,22,22,0.0,UNCOMMON}~{886,45,45,0.0,UNCOMMON}~{565,1,1,0.0,UNCOMMON}~{564,1,10,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{1243,1,1,0.0,UNCOMMON}~{1969,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{4129,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}', ''), +(1829, '{526,1,1,0.0,ALWAYS}~{526,2,2,0.0,ALWAYS}', '{555,12,12,0.0,UNCOMMON}~{557,12,12,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{561,4,4,0.0,UNCOMMON}~{1444,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{995,5,5,0.0,COMMON}~{995,15,15,0.0,COMMON}~{7910,1,1,0.0,UNCOMMON}', ''), +(1830, '{526,1,1,0.0,ALWAYS}~{4517,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{215,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{5004,1,1,0.0,UNCOMMON}~{5004,5,5,0.0,UNCOMMON}~{555,6,6,0.0,COMMON}~{11766,1,1,0.0,UNCOMMON}~{11767,1,1,0.0,UNCOMMON}~{11768,1,1,0.0,UNCOMMON}~{11769,1,1,0.0,UNCOMMON}~{11764,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(1831, '{1939,1,6,0.0,ALWAYS}', '{1351,1,1,0.0,COMMON}~{1279,1,1,0.0,COMMON}~{1155,1,1,0.0,COMMON}~{1191,1,1,0.0,COMMON}~{4121,1,1,0.0,RARE}~{557,5,5,0.0,UNCOMMON}~{555,15,15,0.0,UNCOMMON}~{559,7,7,0.0,UNCOMMON}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{596,1,1,0.0,COMMON}~{4540,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,RARE}~{2691,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1832, '', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{221,1,1,0.0,COMMON}~{225,1,1,0.0,COMMON}~{231,1,1,0.0,COMMON}~{223,1,1,0.0,COMMON}~{235,1,1,0.0,COMMON}~{995,3,8,0.0,COMMON}~{590,1,1,0.0,COMMON}~{10978,1,8,0.0,COMMON}~{4529,1,1,0.0,UNCOMMON}~{36,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{555,1,167,0.0,COMMON}~{557,1,147,0.0,COMMON}~{554,1,91,0.0,UNCOMMON}~{561,1,8,0.0,UNCOMMON}~{995,2,36,0.0,COMMON}~{10978,1,8,0.0,COMMON}~{2692,1,1,0.0,RARE}~{1395,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.505,ALWAYS}~{12158,1,1,0.07,ALWAYS}~{12159,1,1,0.373,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.011,ALWAYS}'), +(1874, '{526,1,1,0.0,ALWAYS}', '{7862,1,1,0.0,UNCOMMON}', ''), +(1875, '{526,1,1,0.0,ALWAYS}', '{7862,1,1,0.0,UNCOMMON}', ''), +(1935, '{532,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1157,1,1,0.0,COMMON}~{1125,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,UNCOMMON}~{1357,1,1,0.0,UNCOMMON}~{1199,1,1,0.0,UNCOMMON}~{1121,1,1,0.0,RARE}~{1201,1,1,0.0,RARE}~{3122,1,1,0.0,RARE}~{1347,1,1,0.0,RARE}~{565,25,25,0.0,COMMON}~{560,15,15,0.0,COMMON}~{555,65,65,0.0,COMMON}~{563,1,3,0.0,UNCOMMON}~{995,20,200,0.0,COMMON}~{359,1,4,0.0,COMMON}~{380,6,6,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{453,3,3,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1936, '{532,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1157,1,1,0.0,COMMON}~{1125,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,UNCOMMON}~{1357,1,1,0.0,UNCOMMON}~{1199,1,1,0.0,UNCOMMON}~{1121,1,1,0.0,RARE}~{1201,1,1,0.0,RARE}~{3122,1,1,0.0,RARE}~{1347,1,1,0.0,RARE}~{565,25,25,0.0,COMMON}~{560,15,15,0.0,COMMON}~{555,65,65,0.0,COMMON}~{563,1,3,0.0,UNCOMMON}~{995,20,200,0.0,COMMON}~{359,1,4,0.0,COMMON}~{380,6,6,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{453,3,3,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1937, '{532,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1157,1,1,0.0,COMMON}~{1125,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,UNCOMMON}~{1357,1,1,0.0,UNCOMMON}~{1199,1,1,0.0,UNCOMMON}~{1121,1,1,0.0,RARE}~{1201,1,1,0.0,RARE}~{3122,1,1,0.0,RARE}~{1347,1,1,0.0,RARE}~{565,25,25,0.0,COMMON}~{560,15,15,0.0,COMMON}~{555,65,65,0.0,COMMON}~{563,1,3,0.0,UNCOMMON}~{995,20,200,0.0,COMMON}~{359,1,4,0.0,COMMON}~{380,6,6,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{453,3,3,0.0,RARE}~{31,1,1,0.0,RARE}', ''); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(1938, '{532,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1157,1,1,0.0,COMMON}~{1125,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,UNCOMMON}~{1357,1,1,0.0,UNCOMMON}~{1199,1,1,0.0,UNCOMMON}~{1121,1,1,0.0,RARE}~{1201,1,1,0.0,RARE}~{3122,1,1,0.0,RARE}~{1347,1,1,0.0,RARE}~{565,25,25,0.0,COMMON}~{560,15,15,0.0,COMMON}~{555,65,65,0.0,COMMON}~{563,1,3,0.0,UNCOMMON}~{995,20,200,0.0,COMMON}~{359,1,4,0.0,COMMON}~{380,6,6,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{453,3,3,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1939, '{532,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1157,1,1,0.0,COMMON}~{1125,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,UNCOMMON}~{1357,1,1,0.0,UNCOMMON}~{1199,1,1,0.0,UNCOMMON}~{1121,1,1,0.0,RARE}~{1201,1,1,0.0,RARE}~{3122,1,1,0.0,RARE}~{1347,1,1,0.0,RARE}~{565,25,25,0.0,COMMON}~{560,15,15,0.0,COMMON}~{555,65,65,0.0,COMMON}~{563,1,3,0.0,UNCOMMON}~{995,20,200,0.0,COMMON}~{359,1,4,0.0,COMMON}~{380,6,6,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{453,3,3,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1940, '{532,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1157,1,1,0.0,COMMON}~{1125,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,UNCOMMON}~{1357,1,1,0.0,UNCOMMON}~{1199,1,1,0.0,UNCOMMON}~{1121,1,1,0.0,RARE}~{1201,1,1,0.0,RARE}~{3122,1,1,0.0,RARE}~{1347,1,1,0.0,RARE}~{565,25,25,0.0,COMMON}~{560,15,15,0.0,COMMON}~{555,65,65,0.0,COMMON}~{563,1,3,0.0,UNCOMMON}~{995,20,200,0.0,COMMON}~{359,1,4,0.0,COMMON}~{380,6,6,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{453,3,3,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1941, '{532,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1157,1,1,0.0,COMMON}~{1125,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,UNCOMMON}~{1357,1,1,0.0,UNCOMMON}~{1199,1,1,0.0,UNCOMMON}~{1121,1,1,0.0,RARE}~{1201,1,1,0.0,RARE}~{3122,1,1,0.0,RARE}~{1347,1,1,0.0,RARE}~{565,25,25,0.0,COMMON}~{560,15,15,0.0,COMMON}~{555,65,65,0.0,COMMON}~{563,1,3,0.0,UNCOMMON}~{995,20,200,0.0,COMMON}~{359,1,4,0.0,COMMON}~{380,6,6,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{453,3,3,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1942, '{532,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1157,1,1,0.0,COMMON}~{1125,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,UNCOMMON}~{1357,1,1,0.0,UNCOMMON}~{1199,1,1,0.0,UNCOMMON}~{1121,1,1,0.0,RARE}~{1201,1,1,0.0,RARE}~{3122,1,1,0.0,RARE}~{1347,1,1,0.0,RARE}~{565,25,25,0.0,COMMON}~{560,15,15,0.0,COMMON}~{555,65,65,0.0,COMMON}~{563,1,3,0.0,UNCOMMON}~{995,20,200,0.0,COMMON}~{359,1,4,0.0,COMMON}~{380,6,6,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{453,3,3,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(1951, '{2859,1,1,0.0,ALWAYS}', '', '{0,1,1,0.8250000000000001,ALWAYS}~{12158,1,1,0.10300000000000001,ALWAYS}~{12159,1,1,0.045,ALWAYS}~{12160,1,1,0.013000000000000001,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(1952, '{2859,1,1,0.0,ALWAYS}', '', '{0,1,1,0.8250000000000001,ALWAYS}~{12158,1,1,0.10300000000000001,ALWAYS}~{12159,1,1,0.045,ALWAYS}~{12160,1,1,0.013000000000000001,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(1953, '{2859,1,1,0.0,ALWAYS}', '', '{0,1,1,0.8250000000000001,ALWAYS}~{12158,1,1,0.10300000000000001,ALWAYS}~{12159,1,1,0.045,ALWAYS}~{12160,1,1,0.013000000000000001,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(1954, '{2859,1,1,0.0,ALWAYS}', '', '{0,1,1,0.8250000000000001,ALWAYS}~{12158,1,1,0.10300000000000001,ALWAYS}~{12159,1,1,0.045,ALWAYS}~{12160,1,1,0.013000000000000001,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(1955, '{2859,1,1,0.0,ALWAYS}', '', '{0,1,1,0.8250000000000001,ALWAYS}~{12158,1,1,0.10300000000000001,ALWAYS}~{12159,1,1,0.045,ALWAYS}~{12160,1,1,0.013000000000000001,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(1956, '{2859,1,1,0.0,ALWAYS}', '', '{0,1,1,0.8250000000000001,ALWAYS}~{12158,1,1,0.10300000000000001,ALWAYS}~{12159,1,1,0.045,ALWAYS}~{12160,1,1,0.013000000000000001,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(1958, '{592,1,1,0.0,ALWAYS}', '{1333,1,1,0.0,RARE}~{1185,1,1,0.0,UNCOMMON}~{4675,1,1,0.0,RARE}~{1673,1,1,0.0,COMMON}~{1654,1,1,0.0,COMMON}~{1635,1,1,0.0,COMMON}~{1696,1,1,0.0,COMMON}~{1639,1,1,0.0,COMMON}~{2566,1,1,0.0,UNCOMMON}~{1727,1,1,0.0,COMMON}~{1656,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,COMMON}~{11072,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,1,0.0,UNCOMMON}~{405,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,COMMON}~{444,1,1,0.0,COMMON}~{970,1,1,0.0,COMMON}~{9032,1,1,0.0,COMMON}~{1939,1,17,0.0,COMMON}~{950,1,1,0.0,COMMON}~{2007,10,10,0.0,RARE}~{2819,1,1,0.0,RARE}~{6808,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(1959, '{592,1,1,0.0,ALWAYS}', '{1333,1,1,0.0,RARE}~{1185,1,1,0.0,UNCOMMON}~{4675,1,1,0.0,RARE}~{1673,1,1,0.0,COMMON}~{1654,1,1,0.0,COMMON}~{1635,1,1,0.0,COMMON}~{1696,1,1,0.0,COMMON}~{1639,1,1,0.0,COMMON}~{2566,1,1,0.0,UNCOMMON}~{1727,1,1,0.0,COMMON}~{1656,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,COMMON}~{11072,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,1,0.0,UNCOMMON}~{405,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,COMMON}~{444,1,1,0.0,COMMON}~{970,1,1,0.0,COMMON}~{9032,1,1,0.0,COMMON}~{1939,1,17,0.0,COMMON}~{950,1,1,0.0,COMMON}~{2007,10,10,0.0,RARE}~{2851,1,1,0.0,RARE}~{6808,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(1960, '{592,1,1,0.0,ALWAYS}', '{1333,1,1,0.0,RARE}~{1185,1,1,0.0,UNCOMMON}~{4675,1,1,0.0,RARE}~{1673,1,1,0.0,COMMON}~{1654,1,1,0.0,COMMON}~{1635,1,1,0.0,COMMON}~{1696,1,1,0.0,COMMON}~{1639,1,1,0.0,COMMON}~{2566,1,1,0.0,UNCOMMON}~{1727,1,1,0.0,COMMON}~{1656,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,COMMON}~{11072,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,1,0.0,UNCOMMON}~{405,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,COMMON}~{444,1,1,0.0,COMMON}~{970,1,1,0.0,COMMON}~{9032,1,1,0.0,COMMON}~{1939,1,17,0.0,COMMON}~{950,1,1,0.0,COMMON}~{2007,10,10,0.0,RARE}~{2827,1,1,0.0,RARE}~{6808,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(1961, '{592,1,1,0.0,ALWAYS}', '{1333,1,1,0.0,RARE}~{1185,1,1,0.0,UNCOMMON}~{4675,1,1,0.0,RARE}~{1673,1,1,0.0,COMMON}~{1654,1,1,0.0,COMMON}~{1635,1,1,0.0,COMMON}~{1696,1,1,0.0,COMMON}~{1639,1,1,0.0,COMMON}~{2566,1,1,0.0,UNCOMMON}~{1727,1,1,0.0,COMMON}~{1656,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,COMMON}~{11072,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,1,0.0,UNCOMMON}~{405,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,COMMON}~{444,1,1,0.0,COMMON}~{970,1,1,0.0,COMMON}~{9032,1,1,0.0,COMMON}~{1939,1,17,0.0,COMMON}~{950,1,1,0.0,COMMON}~{2007,10,10,0.0,RARE}~{2855,1,1,0.0,RARE}~{6808,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(1962, '{592,1,1,0.0,ALWAYS}', '{1333,1,1,0.0,RARE}~{1185,1,1,0.0,UNCOMMON}~{4675,1,1,0.0,RARE}~{1673,1,1,0.0,COMMON}~{1654,1,1,0.0,COMMON}~{1635,1,1,0.0,COMMON}~{1696,1,1,0.0,COMMON}~{1639,1,1,0.0,COMMON}~{2566,1,1,0.0,UNCOMMON}~{1727,1,1,0.0,COMMON}~{1656,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,COMMON}~{11072,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,1,0.0,UNCOMMON}~{405,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,COMMON}~{444,1,1,0.0,COMMON}~{970,1,1,0.0,COMMON}~{9032,1,1,0.0,COMMON}~{1939,1,17,0.0,COMMON}~{950,1,1,0.0,COMMON}~{2007,10,10,0.0,RARE}~{2845,1,1,0.0,RARE}~{6808,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(1963, '{592,1,1,0.0,ALWAYS}', '{1333,1,1,0.0,RARE}~{1185,1,1,0.0,UNCOMMON}~{4675,1,1,0.0,RARE}~{1673,1,1,0.0,COMMON}~{1654,1,1,0.0,COMMON}~{1635,1,1,0.0,COMMON}~{1696,1,1,0.0,COMMON}~{1639,1,1,0.0,COMMON}~{2566,1,1,0.0,UNCOMMON}~{1727,1,1,0.0,COMMON}~{1656,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,COMMON}~{11072,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,1,0.0,UNCOMMON}~{405,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,COMMON}~{444,1,1,0.0,COMMON}~{970,1,1,0.0,COMMON}~{9032,1,1,0.0,COMMON}~{1939,1,17,0.0,COMMON}~{950,1,1,0.0,COMMON}~{2007,10,10,0.0,RARE}~{2841,1,1,0.0,RARE}~{6808,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(1964, '{592,1,1,0.0,ALWAYS}', '{1333,1,1,0.0,RARE}~{1185,1,1,0.0,UNCOMMON}~{4675,1,1,0.0,RARE}~{1673,1,1,0.0,COMMON}~{1654,1,1,0.0,COMMON}~{1635,1,1,0.0,COMMON}~{1696,1,1,0.0,COMMON}~{1639,1,1,0.0,COMMON}~{2566,1,1,0.0,UNCOMMON}~{1727,1,1,0.0,COMMON}~{1656,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,COMMON}~{11072,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,1,0.0,UNCOMMON}~{405,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,COMMON}~{444,1,1,0.0,COMMON}~{970,1,1,0.0,COMMON}~{9032,1,1,0.0,COMMON}~{1939,1,17,0.0,COMMON}~{950,1,1,0.0,COMMON}~{2007,10,10,0.0,RARE}~{2837,1,1,0.0,RARE}~{6808,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(1965, '{592,1,1,0.0,ALWAYS}', '{1333,1,1,0.0,RARE}~{1185,1,1,0.0,UNCOMMON}~{4675,1,1,0.0,RARE}~{1673,1,1,0.0,COMMON}~{1654,1,1,0.0,COMMON}~{1635,1,1,0.0,COMMON}~{1696,1,1,0.0,COMMON}~{1639,1,1,0.0,COMMON}~{2566,1,1,0.0,UNCOMMON}~{1727,1,1,0.0,COMMON}~{1656,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,COMMON}~{11072,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,1,0.0,UNCOMMON}~{405,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,COMMON}~{444,1,1,0.0,COMMON}~{970,1,1,0.0,COMMON}~{9032,1,1,0.0,COMMON}~{1939,1,17,0.0,COMMON}~{950,1,1,0.0,COMMON}~{2007,10,10,0.0,RARE}~{2855,1,1,0.0,RARE}~{6808,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(1966, '{592,1,1,0.0,ALWAYS}', '{1333,1,1,0.0,RARE}~{1185,1,1,0.0,UNCOMMON}~{4675,1,1,0.0,RARE}~{1673,1,1,0.0,COMMON}~{1654,1,1,0.0,COMMON}~{1635,1,1,0.0,COMMON}~{1696,1,1,0.0,COMMON}~{1639,1,1,0.0,COMMON}~{2566,1,1,0.0,UNCOMMON}~{1727,1,1,0.0,COMMON}~{1656,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,COMMON}~{11072,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,1,0.0,UNCOMMON}~{405,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,COMMON}~{444,1,1,0.0,COMMON}~{970,1,1,0.0,COMMON}~{9032,1,1,0.0,COMMON}~{1939,1,17,0.0,COMMON}~{950,1,1,0.0,COMMON}~{2007,10,10,0.0,RARE}~{2841,1,1,0.0,RARE}~{6808,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(1967, '{592,1,1,0.0,ALWAYS}', '{1333,1,1,0.0,RARE}~{1185,1,1,0.0,UNCOMMON}~{4675,1,1,0.0,RARE}~{1673,1,1,0.0,COMMON}~{1654,1,1,0.0,COMMON}~{1635,1,1,0.0,COMMON}~{1696,1,1,0.0,COMMON}~{1639,1,1,0.0,COMMON}~{2566,1,1,0.0,UNCOMMON}~{1727,1,1,0.0,COMMON}~{1656,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,COMMON}~{11072,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,1,0.0,UNCOMMON}~{405,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,COMMON}~{444,1,1,0.0,COMMON}~{970,1,1,0.0,COMMON}~{9032,1,1,0.0,COMMON}~{1939,1,17,0.0,COMMON}~{950,1,1,0.0,COMMON}~{2007,10,10,0.0,RARE}~{2813,1,1,0.0,RARE}~{6808,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(1968, '{592,1,1,0.0,ALWAYS}', '{1333,1,1,0.0,RARE}~{1185,1,1,0.0,UNCOMMON}~{4675,1,1,0.0,RARE}~{1673,1,1,0.0,COMMON}~{1654,1,1,0.0,COMMON}~{1635,1,1,0.0,COMMON}~{1696,1,1,0.0,COMMON}~{1639,1,1,0.0,COMMON}~{2566,1,1,0.0,UNCOMMON}~{1727,1,1,0.0,COMMON}~{1656,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,COMMON}~{11072,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,1,0.0,UNCOMMON}~{405,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,COMMON}~{444,1,1,0.0,COMMON}~{970,1,1,0.0,COMMON}~{9032,1,1,0.0,COMMON}~{1939,1,17,0.0,COMMON}~{950,1,1,0.0,COMMON}~{2007,10,10,0.0,RARE}~{2819,1,1,0.0,RARE}~{6808,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(1976, '{526,1,1,0.0,ALWAYS}', '', '{0,1,1,0.86,ALWAYS}~{12158,1,1,0.077,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.025,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(1991, '{526,1,1,0.0,ALWAYS}~{3032,1,1,0.0,ALWAYS}~{2428,1,1,0.0,ALWAYS}~{2432,1,1,0.0,ALWAYS}~{113,1,1,0.0,ALWAYS}', '{995,1,1,0.0,UNCOMMON}', ''), +(1994, '{526,1,1,0.0,ALWAYS}', '{7914,1,1,0.0,COMMON}', ''), +(1995, '{9052,1,1,0.0,ALWAYS}', '', ''), +(1996, '{526,1,1,0.0,ALWAYS}', '{7911,1,1,0.0,UNCOMMON}~{11965,1,1,0.0,RARE}', ''), +(2015, '{592,1,1,0.0,ALWAYS}', '{1333,1,1,0.0,RARE}~{1185,1,1,0.0,UNCOMMON}~{4675,1,1,0.0,RARE}~{1673,1,1,0.0,COMMON}~{1654,1,1,0.0,COMMON}~{1635,1,1,0.0,COMMON}~{1696,1,1,0.0,COMMON}~{1639,1,1,0.0,COMMON}~{2566,1,1,0.0,UNCOMMON}~{1727,1,1,0.0,COMMON}~{1656,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,COMMON}~{11072,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,1,0.0,UNCOMMON}~{405,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,COMMON}~{444,1,1,0.0,COMMON}~{970,1,1,0.0,COMMON}~{9032,1,1,0.0,COMMON}~{1939,1,17,0.0,COMMON}~{950,1,1,0.0,COMMON}~{2007,10,10,0.0,RARE}~{2855,1,1,0.0,RARE}~{6808,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(2016, '{592,1,1,0.0,ALWAYS}', '{1333,1,1,0.0,RARE}~{1185,1,1,0.0,UNCOMMON}~{4675,1,1,0.0,RARE}~{1673,1,1,0.0,COMMON}~{1654,1,1,0.0,COMMON}~{1635,1,1,0.0,COMMON}~{1696,1,1,0.0,COMMON}~{1639,1,1,0.0,COMMON}~{2566,1,1,0.0,UNCOMMON}~{1727,1,1,0.0,COMMON}~{1656,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,COMMON}~{11072,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,1,0.0,UNCOMMON}~{405,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,COMMON}~{444,1,1,0.0,COMMON}~{970,1,1,0.0,COMMON}~{9032,1,1,0.0,COMMON}~{1939,1,17,0.0,COMMON}~{950,1,1,0.0,COMMON}~{2007,10,10,0.0,RARE}~{2817,1,1,0.0,RARE}~{6808,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(2017, '{592,1,1,0.0,ALWAYS}', '{1333,1,1,0.0,RARE}~{1185,1,1,0.0,UNCOMMON}~{4675,1,1,0.0,RARE}~{1673,1,1,0.0,COMMON}~{1654,1,1,0.0,COMMON}~{1635,1,1,0.0,COMMON}~{1696,1,1,0.0,COMMON}~{1639,1,1,0.0,COMMON}~{2566,1,1,0.0,UNCOMMON}~{1727,1,1,0.0,COMMON}~{1656,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,COMMON}~{11072,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,1,0.0,UNCOMMON}~{405,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,COMMON}~{444,1,1,0.0,COMMON}~{970,1,1,0.0,COMMON}~{9032,1,1,0.0,COMMON}~{1939,1,17,0.0,COMMON}~{950,1,1,0.0,COMMON}~{2007,10,10,0.0,RARE}~{2825,1,1,0.0,RARE}~{6808,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(2018, '{592,1,1,0.0,ALWAYS}', '{1333,1,1,0.0,RARE}~{1185,1,1,0.0,UNCOMMON}~{4675,1,1,0.0,RARE}~{1673,1,1,0.0,COMMON}~{1654,1,1,0.0,COMMON}~{1635,1,1,0.0,COMMON}~{1696,1,1,0.0,COMMON}~{1639,1,1,0.0,COMMON}~{2566,1,1,0.0,UNCOMMON}~{1727,1,1,0.0,COMMON}~{1656,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,COMMON}~{11072,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,1,0.0,UNCOMMON}~{405,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,COMMON}~{444,1,1,0.0,COMMON}~{970,1,1,0.0,COMMON}~{9032,1,1,0.0,COMMON}~{1939,1,17,0.0,COMMON}~{950,1,1,0.0,COMMON}~{2007,10,10,0.0,RARE}~{2823,1,1,0.0,RARE}~{6808,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(2019, '{592,1,1,0.0,ALWAYS}', '{1333,1,1,0.0,RARE}~{1185,1,1,0.0,UNCOMMON}~{4675,1,1,0.0,RARE}~{1673,1,1,0.0,COMMON}~{1654,1,1,0.0,COMMON}~{1635,1,1,0.0,COMMON}~{1696,1,1,0.0,COMMON}~{1639,1,1,0.0,COMMON}~{2566,1,1,0.0,UNCOMMON}~{1727,1,1,0.0,COMMON}~{1656,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,COMMON}~{11072,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,1,0.0,UNCOMMON}~{405,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,COMMON}~{444,1,1,0.0,COMMON}~{970,1,1,0.0,COMMON}~{9032,1,1,0.0,COMMON}~{1939,1,17,0.0,COMMON}~{950,1,1,0.0,COMMON}~{2007,10,10,0.0,RARE}~{2853,1,1,0.0,RARE}~{6808,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(2031, '', '', '{0,1,1,0.795,ALWAYS}~{12158,1,1,0.045,ALWAYS}~{12159,1,1,0.127,ALWAYS}~{12160,1,1,0.025,ALWAYS}~{12163,1,1,0.008,ALWAYS}'), +(2032, '{526,1,1,0.0,ALWAYS}', '', ''), +(2033, '{526,1,1,0.0,ALWAYS}', '{7824,1,1,0.0,UNCOMMON}', '{0,1,1,0.925,ALWAYS}~{12158,1,1,0.04,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.009000000000000001,ALWAYS}~{12163,1,1,0.005,ALWAYS}'), +(2035, '', '', '{0,1,1,0.895,ALWAYS}~{12158,1,1,0.042,ALWAYS}~{12159,1,1,0.028,ALWAYS}~{12160,1,1,0.012,ALWAYS}~{12163,1,1,0.022,ALWAYS}'), +(2036, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2831,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2037, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2803,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2044, '{4850,1,1,0.0,ALWAYS}~{4812,1,1,0.0,ALWAYS}', '{7850,1,1,0.0,COMMON}~{2696,1,1,0.0,RARE}', ''), +(2045, '{4850,1,1,0.0,ALWAYS}~{4812,1,1,0.0,ALWAYS}', '{7850,1,1,0.0,COMMON}~{2703,1,1,0.0,RARE}', ''), +(2046, '{4850,1,1,0.0,ALWAYS}~{4812,1,1,0.0,ALWAYS}', '{7850,1,1,0.0,COMMON}~{2678,1,1,0.0,RARE}', ''), +(2047, '{4850,1,1,0.0,ALWAYS}~{4812,1,1,0.0,ALWAYS}', '{7850,1,1,0.0,COMMON}~{2692,1,1,0.0,RARE}', ''), +(2048, '{4850,1,1,0.0,ALWAYS}~{4812,1,1,0.0,ALWAYS}', '{7850,1,1,0.0,COMMON}~{2684,1,1,0.0,RARE}', ''), +(2049, '{4850,1,1,0.0,ALWAYS}~{4812,1,1,0.0,ALWAYS}', '{7850,1,1,0.0,COMMON}~{2695,1,1,0.0,RARE}', ''), +(2051, '{4850,1,1,0.0,ALWAYS}~{4812,1,1,0.0,ALWAYS}', '{7850,1,1,0.0,COMMON}~{2684,1,1,0.0,RARE}', ''), +(2052, '{4850,1,1,0.0,ALWAYS}~{4812,1,1,0.0,ALWAYS}', '{7850,1,1,0.0,COMMON}~{2682,1,1,0.0,RARE}', ''), +(2053, '{4850,1,1,0.0,ALWAYS}~{4812,1,1,0.0,ALWAYS}', '{7850,1,1,0.0,COMMON}~{2716,1,1,0.0,RARE}', ''), +(2054, '{4850,1,1,0.0,ALWAYS}~{4812,1,1,0.0,ALWAYS}', '{7850,1,1,0.0,COMMON}~{2704,1,1,0.0,RARE}', ''), +(2055, '{4850,1,1,0.0,ALWAYS}~{4812,1,1,0.0,ALWAYS}', '{7850,1,1,0.0,COMMON}~{2688,1,1,0.0,RARE}', ''), +(2058, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,5,7,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2069, '{526,1,1,0.0,ALWAYS}', '{995,1,1,0.0,COMMON}~{440,2,7,0.0,UNCOMMON}~{442,1,1,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,UNCOMMON}~{5014,1,1,0.0,RARE}', ''), +(2070, '{526,1,1,0.0,ALWAYS}', '{995,1,1,0.0,COMMON}~{440,2,7,0.0,UNCOMMON}~{442,1,1,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,UNCOMMON}~{5014,1,1,0.0,RARE}', ''), +(2071, '{526,1,1,0.0,ALWAYS}', '{995,1,1,0.0,COMMON}~{440,2,7,0.0,UNCOMMON}~{442,1,1,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,UNCOMMON}~{5014,1,1,0.0,RARE}', ''), +(2072, '{526,1,1,0.0,ALWAYS}', '{995,1,1,0.0,COMMON}~{440,2,7,0.0,UNCOMMON}~{442,1,1,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,UNCOMMON}~{5014,1,1,0.0,RARE}', ''), +(2073, '{526,1,1,0.0,ALWAYS}', '{5016,1,1,0.0,UNCOMMON}~{5018,1,1,0.0,UNCOMMON}~{1153,1,1,0.0,COMMON}~{5014,1,1,0.0,RARE}~{1101,1,1,0.0,RARE}~{995,12,12,0.0,COMMON}~{7907,1,1,0.0,UNCOMMON}~{590,1,1,0.0,RARE}', ''), +(2074, '{526,1,1,0.0,ALWAYS}', '{5016,1,1,0.0,UNCOMMON}~{5018,1,1,0.0,UNCOMMON}~{1153,1,1,0.0,COMMON}~{5014,1,1,0.0,RARE}~{1101,1,1,0.0,RARE}~{995,12,12,0.0,COMMON}~{7907,1,1,0.0,UNCOMMON}~{590,1,1,0.0,RARE}', ''), +(2075, '{526,1,1,0.0,ALWAYS}', '{995,1,1,0.0,COMMON}~{440,2,7,0.0,UNCOMMON}~{442,1,1,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,UNCOMMON}~{5014,1,1,0.0,RARE}', ''), +(2076, '{526,1,1,0.0,ALWAYS}', '{995,1,1,0.0,COMMON}~{440,2,7,0.0,UNCOMMON}~{442,1,1,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,UNCOMMON}~{5014,1,1,0.0,RARE}', ''), +(2077, '{526,1,1,0.0,ALWAYS}', '{995,1,1,0.0,COMMON}~{440,2,7,0.0,UNCOMMON}~{442,1,1,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,UNCOMMON}~{5014,1,1,0.0,RARE}', ''), +(2078, '{526,1,1,0.0,ALWAYS}', '{995,1,1,0.0,COMMON}~{440,2,7,0.0,UNCOMMON}~{442,1,1,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,UNCOMMON}~{5014,1,1,0.0,RARE}', ''), +(2109, '', '{995,100,100,0.0,COMMON}~{2737,1,1,0.0,RARE}', ''), +(2110, '', '{995,100,100,0.0,COMMON}~{2737,1,1,0.0,RARE}', ''), +(2111, '', '{995,100,100,0.0,COMMON}~{2733,1,1,0.0,RARE}', ''), +(2112, '', '{995,100,100,0.0,COMMON}~{2741,1,1,0.0,RARE}', ''), +(2113, '', '{995,100,100,0.0,COMMON}~{2723,1,1,0.0,RARE}', ''), +(2114, '', '{995,100,100,0.0,COMMON}~{2739,1,1,0.0,RARE}', ''), +(2115, '', '{995,100,100,0.0,COMMON}~{2733,1,1,0.0,RARE}', ''), +(2116, '', '{995,100,100,0.0,COMMON}~{2739,1,1,0.0,RARE}', ''), +(2117, '', '{995,100,100,0.0,COMMON}~{2725,1,1,0.0,RARE}', ''), +(2118, '', '{995,100,100,0.0,COMMON}~{2739,1,1,0.0,RARE}', ''), +(2119, '', '{995,100,100,0.0,COMMON}~{2737,1,1,0.0,RARE}', ''), +(2120, '', '{995,100,100,0.0,COMMON}~{2737,1,1,0.0,RARE}', ''), +(2121, '', '{995,100,100,0.0,COMMON}~{2741,1,1,0.0,RARE}', ''), +(2122, '', '{995,100,100,0.0,COMMON}~{2733,1,1,0.0,RARE}', ''), +(2124, '', '{995,100,100,0.0,COMMON}~{2745,1,1,0.0,RARE}', ''), +(2126, '', '{995,100,100,0.0,COMMON}~{2743,1,1,0.0,RARE}', ''), +(2130, '{526,1,1,0.0,ALWAYS}', '{562,2,2,0.0,UNCOMMON}~{561,2,2,0.0,UNCOMMON}~{1139,1,1,0.0,COMMON}~{1375,1,1,0.0,UNCOMMON}~{877,6,6,0.0,UNCOMMON}~{1337,1,1,0.0,UNCOMMON}~{1265,1,1,0.0,UNCOMMON}~{1363,1,1,0.0,UNCOMMON}~{1341,1,1,0.0,UNCOMMON}~{995,4,42,0.0,COMMON}~{436,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{2347,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2841,1,1,0.0,UNCOMMON}~{3801,1,1,0.0,UNCOMMON}~{1929,1,1,0.0,UNCOMMON}~{1592,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.665,ALWAYS}~{12158,1,1,0.065,ALWAYS}~{12159,1,1,0.125,ALWAYS}~{12160,1,1,0.011,ALWAYS}~{12163,1,1,0.133,ALWAYS}'), +(2131, '{526,1,1,0.0,ALWAYS}', '{562,2,2,0.0,UNCOMMON}~{561,2,2,0.0,UNCOMMON}~{1139,1,1,0.0,COMMON}~{1375,1,1,0.0,UNCOMMON}~{877,6,6,0.0,UNCOMMON}~{1337,1,1,0.0,UNCOMMON}~{1265,1,1,0.0,UNCOMMON}~{1363,1,1,0.0,UNCOMMON}~{1341,1,1,0.0,UNCOMMON}~{995,4,42,0.0,COMMON}~{436,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{2347,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2845,1,1,0.0,UNCOMMON}~{3801,1,1,0.0,UNCOMMON}~{1929,1,1,0.0,UNCOMMON}~{1592,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.665,ALWAYS}~{12158,1,1,0.065,ALWAYS}~{12159,1,1,0.125,ALWAYS}~{12160,1,1,0.011,ALWAYS}~{12163,1,1,0.133,ALWAYS}'), +(2132, '{526,1,1,0.0,ALWAYS}', '{562,2,2,0.0,UNCOMMON}~{561,2,2,0.0,UNCOMMON}~{1139,1,1,0.0,COMMON}~{1375,1,1,0.0,UNCOMMON}~{877,6,6,0.0,UNCOMMON}~{1337,1,1,0.0,UNCOMMON}~{1265,1,1,0.0,UNCOMMON}~{1363,1,1,0.0,UNCOMMON}~{1341,1,1,0.0,UNCOMMON}~{995,4,42,0.0,COMMON}~{436,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{2347,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2815,1,1,0.0,UNCOMMON}~{3801,1,1,0.0,UNCOMMON}~{1929,1,1,0.0,UNCOMMON}~{1592,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.665,ALWAYS}~{12158,1,1,0.065,ALWAYS}~{12159,1,1,0.125,ALWAYS}~{12160,1,1,0.011,ALWAYS}~{12163,1,1,0.133,ALWAYS}'), +(2133, '{526,1,1,0.0,ALWAYS}', '{562,2,2,0.0,UNCOMMON}~{561,2,2,0.0,UNCOMMON}~{1139,1,1,0.0,COMMON}~{1375,1,1,0.0,UNCOMMON}~{877,6,6,0.0,UNCOMMON}~{1337,1,1,0.0,UNCOMMON}~{1265,1,1,0.0,UNCOMMON}~{1363,1,1,0.0,UNCOMMON}~{1341,1,1,0.0,UNCOMMON}~{995,4,42,0.0,COMMON}~{436,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{2347,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2847,1,1,0.0,UNCOMMON}~{3801,1,1,0.0,UNCOMMON}~{1929,1,1,0.0,UNCOMMON}~{1592,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.665,ALWAYS}~{12158,1,1,0.065,ALWAYS}~{12159,1,1,0.125,ALWAYS}~{12160,1,1,0.011,ALWAYS}~{12163,1,1,0.133,ALWAYS}'), +(2134, '{526,1,1,0.0,ALWAYS}', '{1337,1,1,0.0,UNCOMMON}~{1335,1,1,0.0,UNCOMMON}~{1339,1,1,0.0,UNCOMMON}~{1341,1,1,0.0,UNCOMMON}~{995,35,57,0.0,COMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{3801,1,1,0.0,UNCOMMON}~{1592,1,1,0.0,UNCOMMON}~{1929,1,1,0.0,UNCOMMON}~{2805,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2135, '{526,1,1,0.0,ALWAYS}', '{1337,1,1,0.0,UNCOMMON}~{1335,1,1,0.0,UNCOMMON}~{1339,1,1,0.0,UNCOMMON}~{1341,1,1,0.0,UNCOMMON}~{995,35,57,0.0,COMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{3801,1,1,0.0,UNCOMMON}~{1592,1,1,0.0,UNCOMMON}~{1929,1,1,0.0,UNCOMMON}~{2815,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2136, '{526,1,1,0.0,ALWAYS}', '{1337,1,1,0.0,UNCOMMON}~{1335,1,1,0.0,UNCOMMON}~{1339,1,1,0.0,UNCOMMON}~{1341,1,1,0.0,UNCOMMON}~{995,35,57,0.0,COMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{3801,1,1,0.0,UNCOMMON}~{1592,1,1,0.0,UNCOMMON}~{1929,1,1,0.0,UNCOMMON}~{2849,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2232, '{526,1,1,0.0,ALWAYS}', '{1337,1,1,0.0,UNCOMMON}~{1335,1,1,0.0,UNCOMMON}~{1339,1,1,0.0,UNCOMMON}~{1341,1,1,0.0,UNCOMMON}~{995,35,57,0.0,COMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{3801,1,1,0.0,UNCOMMON}~{1592,1,1,0.0,UNCOMMON}~{1929,1,1,0.0,UNCOMMON}~{2843,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2234, '', '{5291,1,1,0.0,COMMON}~{5292,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5295,1,1,0.0,RARE}~{5296,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5298,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{5281,1,1,0.0,RARE}~{5280,1,1,0.0,RARE}', ''), +(2235, '', '{5291,1,1,0.0,COMMON}~{5292,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5295,1,1,0.0,RARE}~{5296,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5298,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{5281,1,1,0.0,RARE}~{5280,1,1,0.0,RARE}', ''), +(2236, '', '{526,1,1,0.0,COMMON}', ''), +(2239, '{526,1,1,0.0,ALWAYS}', '', '{0,1,1,0.97,ALWAYS}~{12158,1,1,-0.012,ALWAYS}~{12159,1,1,0.014,ALWAYS}~{12160,1,1,0.014,ALWAYS}~{12163,1,1,0.014,ALWAYS}'), +(2240, '{526,1,1,0.0,ALWAYS}', '', '{0,1,1,0.97,ALWAYS}~{12158,1,1,-0.012,ALWAYS}~{12159,1,1,0.014,ALWAYS}~{12160,1,1,0.014,ALWAYS}~{12163,1,1,0.014,ALWAYS}'), +(2256, '{526,1,1,0.0,ALWAYS}', '{201,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{1281,1,1,0.0,COMMON}~{1295,1,1,0.0,UNCOMMON}~{1157,1,1,0.0,UNCOMMON}~{555,30,30,0.0,COMMON}~{565,1,1,0.0,RARE}~{995,2,2,0.0,COMMON}~{995,8,8,0.0,COMMON}~{2351,1,1,0.0,COMMON}~{2359,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,UNCOMMON}~{1458,1,1,0.0,UNCOMMON}~{2839,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2263, '{592,1,1,0.0,UNCOMMON}', '{5521,1,1,0.0,UNCOMMON}~{5221,1,1,0.0,RARE}~{5221,1,1,0.0,RARE}~{5221,1,1,0.0,RARE}~{5221,1,1,0.0,RARE}~{7936,1,1,0.0,COMMON}~{7937,2,2,0.0,COMMON}~{7937,5,5,0.0,COMMON}~{7937,10,10,0.0,COMMON}~{7937,25,25,0.0,COMMON}~{2821,1,1,0.0,RARE}~{1438,1,1,0.0,UNCOMMON}~{1448,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1444,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{1446,1,1,0.0,UNCOMMON}~{1454,1,1,0.0,UNCOMMON}~{1452,1,1,0.0,UNCOMMON}~{1462,1,1,0.0,UNCOMMON}~{1458,1,1,0.0,UNCOMMON}~{5516,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{12161,1,1,0.01,ALWAYS}~{12158,1,1,0.007,ALWAYS}~{12159,1,1,0.0,ALWAYS}~{12160,1,1,0.004,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(2264, '{592,1,1,0.0,UNCOMMON}', '{5521,1,1,0.0,UNCOMMON}~{5521,1,1,0.0,RARE}~{5521,1,1,0.0,RARE}~{5521,1,1,0.0,RARE}~{5521,1,1,0.0,RARE}~{7936,1,1,0.0,COMMON}~{7937,2,2,0.0,COMMON}~{7937,5,5,0.0,COMMON}~{7937,10,10,0.0,COMMON}~{7937,25,25,0.0,COMMON}~{2821,1,1,0.0,RARE}~{1438,1,1,0.0,UNCOMMON}~{1448,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1444,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{1446,1,1,0.0,UNCOMMON}~{1454,1,1,0.0,UNCOMMON}~{1452,1,1,0.0,UNCOMMON}~{1462,1,1,0.0,UNCOMMON}~{1458,1,1,0.0,UNCOMMON}~{5516,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{12161,1,1,0.01,ALWAYS}~{12158,1,1,0.007,ALWAYS}~{12159,1,1,0.0,ALWAYS}~{12160,1,1,0.004,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(2265, '{592,1,1,0.0,UNCOMMON}', '{5521,1,1,0.0,UNCOMMON}~{5521,1,1,0.0,RARE}~{5521,1,1,0.0,RARE}~{5521,1,1,0.0,RARE}~{5521,1,1,0.0,RARE}~{7936,1,1,0.0,COMMON}~{7937,2,2,0.0,COMMON}~{7937,5,5,0.0,COMMON}~{7937,10,10,0.0,COMMON}~{7937,25,25,0.0,COMMON}~{2821,1,1,0.0,RARE}~{1438,1,1,0.0,UNCOMMON}~{1448,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1444,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{1446,1,1,0.0,UNCOMMON}~{1454,1,1,0.0,UNCOMMON}~{1452,1,1,0.0,UNCOMMON}~{1462,1,1,0.0,UNCOMMON}~{1458,1,1,0.0,UNCOMMON}~{5516,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{12161,1,1,0.01,ALWAYS}~{12158,1,1,0.007,ALWAYS}~{12159,1,1,0.0,ALWAYS}~{12160,1,1,0.004,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(2274, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2709,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(2275, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2679,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(2276, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2708,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(2277, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2689,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(2278, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2690,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(2279, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2704,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(2280, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2685,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(2281, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2715,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}~{2677,1,1,0.0,RARE}', ''), +(2301, '{3186,1,1,0.0,ALWAYS}~{3166,1,1,0.0,ALWAYS}', '{7856,1,1,0.0,COMMON}', '{0,1,1,1.0,ALWAYS}~{12158,1,1,-0.006,ALWAYS}~{12159,1,1,0.002,ALWAYS}~{12160,1,1,0.002,ALWAYS}~{12163,1,1,0.002,ALWAYS}'), +(2310, '{526,1,1,0.0,ALWAYS}~{1739,1,1,0.0,ALWAYS}~{2132,1,1,0.0,ALWAYS}', '', '{0,1,1,0.9500000000000001,ALWAYS}~{12158,1,1,0.008,ALWAYS}~{12159,1,1,0.038,ALWAYS}~{12160,1,1,0.002,ALWAYS}~{12163,1,1,0.001,ALWAYS}'), +(2313, '{526,1,1,0.0,ALWAYS}~{2138,1,1,0.0,ALWAYS}~{314,11,30,0.0,COMMON}', '', ''), +(2314, '{526,1,1,0.0,ALWAYS}~{2138,1,1,0.0,ALWAYS}~{314,11,30,0.0,COMMON}', '', ''), +(2315, '{526,1,1,0.0,ALWAYS}~{2138,1,1,0.0,ALWAYS}~{314,11,30,0.0,COMMON}', '', ''), +(2316, '{526,1,1,0.0,ALWAYS}', '', '{0,1,1,0.97,ALWAYS}~{12158,1,1,-0.012,ALWAYS}~{12159,1,1,0.014,ALWAYS}~{12160,1,1,0.014,ALWAYS}~{12163,1,1,0.014,ALWAYS}'), +(2317, '{526,1,1,0.0,ALWAYS}', '', '{0,1,1,0.97,ALWAYS}~{12158,1,1,-0.012,ALWAYS}~{12159,1,1,0.014,ALWAYS}~{12160,1,1,0.014,ALWAYS}~{12163,1,1,0.014,ALWAYS}'), +(2349, '{526,1,1,0.0,ALWAYS}~{1506,1,1,0.0,ALWAYS}~{6065,1,1,0.0,ALWAYS}~{6067,1,1,0.0,ALWAYS}~{6069,1,1,0.0,ALWAYS}~{6068,1,1,0.0,ALWAYS}~{6070,1,1,0.0,ALWAYS}', '', ''), +(2350, '{526,1,1,0.0,ALWAYS}~{1506,1,1,0.0,ALWAYS}~{6065,1,1,0.0,ALWAYS}~{6067,1,1,0.0,ALWAYS}~{6069,1,1,0.0,ALWAYS}~{6068,1,1,0.0,ALWAYS}~{6070,1,1,0.0,ALWAYS}', '', ''), +(2351, '{526,1,1,0.0,ALWAYS}~{1506,1,1,0.0,ALWAYS}~{6065,1,1,0.0,ALWAYS}~{6067,1,1,0.0,ALWAYS}~{6069,1,1,0.0,ALWAYS}~{6068,1,1,0.0,ALWAYS}~{6070,1,1,0.0,ALWAYS}', '', ''), +(2359, '{526,1,1,0.0,ALWAYS}', '{555,70,70,0.0,COMMON}~{554,37,37,0.0,UNCOMMON}~{563,1,3,0.0,UNCOMMON}~{561,12,12,0.0,UNCOMMON}~{1243,1,1,0.0,COMMON}~{1213,1,1,0.0,UNCOMMON}~{1197,1,1,0.0,COMMON}~{1099,1,1,0.0,COMMON}~{1135,1,1,0.0,COMMON}~{1065,1,1,0.0,COMMON}~{1161,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,RARE}~{365,1,1,0.0,UNCOMMON}~{385,1,1,0.0,UNCOMMON}~{379,1,1,0.0,UNCOMMON}~{397,1,1,0.0,RARE}~{391,1,1,0.0,RARE}~{5299,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,20,427,0.0,COMMON}~{6103,1,1,0.0,COMMON}~{449,1,1,0.0,UNCOMMON}~{6102,1,1,0.0,RARE}~{2731,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.615,ALWAYS}~{12158,1,1,0.08,ALWAYS}~{12159,1,1,0.23500000000000001,ALWAYS}~{12160,1,1,0.055,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(2360, '{526,1,1,0.0,ALWAYS}', '{555,70,70,0.0,COMMON}~{554,37,37,0.0,UNCOMMON}~{563,1,3,0.0,UNCOMMON}~{561,12,12,0.0,UNCOMMON}~{1243,1,1,0.0,COMMON}~{1213,1,1,0.0,UNCOMMON}~{1197,1,1,0.0,COMMON}~{1099,1,1,0.0,COMMON}~{1135,1,1,0.0,COMMON}~{1065,1,1,0.0,COMMON}~{1161,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,RARE}~{365,1,1,0.0,UNCOMMON}~{385,1,1,0.0,UNCOMMON}~{379,1,1,0.0,UNCOMMON}~{397,1,1,0.0,RARE}~{391,1,1,0.0,RARE}~{5299,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,20,427,0.0,COMMON}~{6103,1,1,0.0,COMMON}~{449,1,1,0.0,UNCOMMON}~{6102,1,1,0.0,RARE}~{2739,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.615,ALWAYS}~{12158,1,1,0.08,ALWAYS}~{12159,1,1,0.23500000000000001,ALWAYS}~{12160,1,1,0.055,ALWAYS}~{12163,1,1,0.015,ALWAYS}'); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(2361, '{526,1,1,0.0,ALWAYS}', '{555,70,70,0.0,COMMON}~{554,37,37,0.0,UNCOMMON}~{563,1,3,0.0,UNCOMMON}~{561,12,12,0.0,UNCOMMON}~{1243,1,1,0.0,COMMON}~{1213,1,1,0.0,UNCOMMON}~{1197,1,1,0.0,COMMON}~{1099,1,1,0.0,COMMON}~{1135,1,1,0.0,COMMON}~{1065,1,1,0.0,COMMON}~{1161,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,RARE}~{365,1,1,0.0,UNCOMMON}~{385,1,1,0.0,UNCOMMON}~{379,1,1,0.0,UNCOMMON}~{397,1,1,0.0,RARE}~{391,1,1,0.0,RARE}~{5299,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,20,427,0.0,COMMON}~{6103,1,1,0.0,COMMON}~{449,1,1,0.0,UNCOMMON}~{6102,1,1,0.0,RARE}~{2725,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.615,ALWAYS}~{12158,1,1,0.08,ALWAYS}~{12159,1,1,0.23500000000000001,ALWAYS}~{12160,1,1,0.055,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(2362, '{526,1,1,0.0,ALWAYS}', '{555,70,70,0.0,COMMON}~{554,37,37,0.0,UNCOMMON}~{563,1,3,0.0,UNCOMMON}~{561,12,12,0.0,UNCOMMON}~{1243,1,1,0.0,COMMON}~{1213,1,1,0.0,UNCOMMON}~{1197,1,1,0.0,COMMON}~{1099,1,1,0.0,COMMON}~{1135,1,1,0.0,COMMON}~{1065,1,1,0.0,COMMON}~{1161,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,RARE}~{365,1,1,0.0,UNCOMMON}~{385,1,1,0.0,UNCOMMON}~{379,1,1,0.0,UNCOMMON}~{397,1,1,0.0,RARE}~{391,1,1,0.0,RARE}~{5299,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,20,427,0.0,COMMON}~{6103,1,1,0.0,COMMON}~{449,1,1,0.0,UNCOMMON}~{6102,1,1,0.0,RARE}~{2743,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.615,ALWAYS}~{12158,1,1,0.08,ALWAYS}~{12159,1,1,0.23500000000000001,ALWAYS}~{12160,1,1,0.055,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(2373, '{526,1,1,0.0,ALWAYS}~{1506,1,1,0.0,ALWAYS}~{6065,1,1,0.0,ALWAYS}~{6067,1,1,0.0,ALWAYS}~{6069,1,1,0.0,ALWAYS}~{6068,1,1,0.0,ALWAYS}~{6070,1,1,0.0,ALWAYS}', '', ''), +(2374, '{526,1,1,0.0,ALWAYS}~{1506,1,1,0.0,ALWAYS}~{6065,1,1,0.0,ALWAYS}~{6067,1,1,0.0,ALWAYS}~{6069,1,1,0.0,ALWAYS}~{6068,1,1,0.0,ALWAYS}~{6070,1,1,0.0,ALWAYS}', '', ''), +(2423, '{526,1,1,0.0,ALWAYS}', '{1157,1,1,0.0,COMMON}~{1299,1,1,0.0,COMMON}~{1181,1,1,0.0,COMMON}~{1165,1,1,0.0,RARE}~{555,10,10,0.0,COMMON}~{556,12,12,0.0,COMMON}~{556,24,24,0.0,COMMON}~{558,37,37,0.0,COMMON}~{564,3,3,0.0,COMMON}~{564,6,6,0.0,COMMON}~{562,10,10,0.0,UNCOMMON}~{562,37,37,0.0,UNCOMMON}~{561,9,9,0.0,UNCOMMON}~{561,18,18,0.0,UNCOMMON}~{563,3,3,0.0,UNCOMMON}~{563,6,6,0.0,UNCOMMON}~{560,3,3,0.0,RARE}~{560,6,6,0.0,RARE}~{995,25,25,0.0,COMMON}~{995,47,47,0.0,COMMON}~{453,1,1,0.0,COMMON}~{991,1,1,0.0,UNCOMMON}~{1985,1,1,0.0,UNCOMMON}~{2359,1,1,0.0,UNCOMMON}~{1982,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.8150000000000001,ALWAYS}~{12158,1,1,0.095,ALWAYS}~{12159,1,1,0.035,ALWAYS}~{12160,1,1,0.025,ALWAYS}~{12163,1,1,0.03,ALWAYS}'), +(2452, '{526,1,1,0.0,ALWAYS}', '{555,1,39,0.0,COMMON}~{557,2,37,0.0,COMMON}~{1438,1,1,0.0,UNCOMMON}~{1448,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{1454,1,1,0.0,RARE}~{1446,1,1,0.0,RARE}~{1444,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1462,1,1,0.0,RARE}~{1452,1,1,0.0,UNCOMMON}~{1119,1,1,0.0,COMMON}~{1125,1,1,0.0,COMMON}~{1355,1,1,0.0,COMMON}~{6151,1,1,0.0,UNCOMMON}~{6145,1,1,0.0,UNCOMMON}~{1341,1,1,0.0,UNCOMMON}~{1301,1,1,0.0,UNCOMMON}~{1345,1,1,0.0,RARE}~{5106,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5291,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5298,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,27,27,0.0,COMMON}~{995,28,28,0.0,COMMON}~{377,1,1,0.0,COMMON}~{363,1,1,0.0,COMMON}~{590,1,1,0.0,COMMON}~{405,1,1,0.0,RARE}~{6161,1,1,0.0,UNCOMMON}~{6157,1,1,0.0,RARE}~{6159,1,1,0.0,RARE}~{2817,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.315,ALWAYS}~{12158,1,1,0.44,ALWAYS}~{12159,1,1,0.1,ALWAYS}~{12160,1,1,0.11,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(2454, '{526,1,1,0.0,ALWAYS}', '{995,16,38,0.0,COMMON}~{314,2,2,0.0,COMMON}~{359,1,1,0.0,COMMON}~{327,1,1,0.0,COMMON}~{555,3,3,0.0,COMMON}~{407,1,1,0.0,UNCOMMON}~{411,1,1,0.0,UNCOMMON}~{2678,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2455, '{526,1,1,0.0,ALWAYS}', '{3799,1,1,0.0,COMMON}~{3767,1,1,0.0,COMMON}~{2677,1,1,0.0,RARE}', ''), +(2456, '', '{2677,1,1,0.0,RARE}', ''), +(2457, '{526,1,1,0.0,ALWAYS}', '{554,1,1,0.0,UNCOMMON}~{563,1,1,0.0,UNCOMMON}~{556,1,6,0.0,COMMON}~{558,1,9,0.0,COMMON}~{555,1,10,0.0,COMMON}~{557,4,9,0.0,COMMON}~{562,1,10,0.0,COMMON}~{564,1,1,0.0,COMMON}~{561,1,1,0.0,COMMON}~{560,1,10,0.0,COMMON}~{565,4,5,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{1448,1,1,0.0,UNCOMMON}~{1444,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{1454,1,1,0.0,UNCOMMON}~{1462,1,1,0.0,UNCOMMON}~{5291,1,1,0.0,COMMON}~{5292,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5296,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{7937,9,9,0.0,COMMON}~{886,1,10,0.0,COMMON}~{6167,1,1,0.0,UNCOMMON}~{6165,1,1,0.0,UNCOMMON}~{6153,1,1,0.0,UNCOMMON}~{6147,1,1,0.0,UNCOMMON}~{6163,1,1,0.0,UNCOMMON}~{353,1,2,0.0,UNCOMMON}~{995,5,489,0.0,RARE}~{359,1,1,0.0,RARE}~{2839,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.5650000000000001,ALWAYS}~{12158,1,1,0.155,ALWAYS}~{12159,1,1,0.075,ALWAYS}~{12160,1,1,0.085,ALWAYS}~{12163,1,1,0.12,ALWAYS}'), +(2469, '{526,1,1,0.0,ALWAYS}~{4517,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{215,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{5004,1,1,0.0,UNCOMMON}~{5004,5,5,0.0,UNCOMMON}~{555,6,6,0.0,COMMON}~{11766,1,1,0.0,UNCOMMON}~{11767,1,1,0.0,UNCOMMON}~{11768,1,1,0.0,UNCOMMON}~{11769,1,1,0.0,UNCOMMON}~{11764,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(2470, '{526,1,1,0.0,ALWAYS}~{4517,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{215,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{5004,1,1,0.0,UNCOMMON}~{5004,5,5,0.0,UNCOMMON}~{555,6,6,0.0,COMMON}~{11766,1,1,0.0,UNCOMMON}~{11767,1,1,0.0,UNCOMMON}~{11768,1,1,0.0,UNCOMMON}~{11769,1,1,0.0,UNCOMMON}~{11764,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(2471, '{526,1,1,0.0,ALWAYS}~{4517,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{215,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{5004,1,1,0.0,UNCOMMON}~{5004,5,5,0.0,UNCOMMON}~{555,6,6,0.0,COMMON}~{11766,1,1,0.0,UNCOMMON}~{11767,1,1,0.0,UNCOMMON}~{11768,1,1,0.0,UNCOMMON}~{11769,1,1,0.0,UNCOMMON}~{11764,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(2472, '{526,1,1,0.0,ALWAYS}~{4517,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{215,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{5004,1,1,0.0,UNCOMMON}~{5004,5,5,0.0,UNCOMMON}~{555,6,6,0.0,COMMON}~{11766,1,1,0.0,UNCOMMON}~{11767,1,1,0.0,UNCOMMON}~{11768,1,1,0.0,UNCOMMON}~{11769,1,1,0.0,UNCOMMON}~{11764,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(2473, '{526,1,1,0.0,ALWAYS}~{4517,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{215,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{5004,1,1,0.0,UNCOMMON}~{5004,5,5,0.0,UNCOMMON}~{555,6,6,0.0,COMMON}~{11766,1,1,0.0,UNCOMMON}~{11767,1,1,0.0,UNCOMMON}~{11768,1,1,0.0,UNCOMMON}~{11769,1,1,0.0,UNCOMMON}~{11764,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(2482, '{530,1,1,0.0,ALWAYS}', '{7829,1,1,0.0,COMMON}', '{0,1,1,0.785,ALWAYS}~{12158,1,1,0.197,ALWAYS}~{12159,1,1,0.005,ALWAYS}~{12160,1,1,0.01,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(2489, '{6287,1,1,0.0,ALWAYS}', '', ''), +(2490, '{6287,1,1,0.0,ALWAYS}', '', ''), +(2491, '', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{808,1,1,0.0,UNCOMMON}~{557,13,13,0.0,UNCOMMON}~{9141,20,20,0.0,UNCOMMON}~{11766,1,1,0.0,UNCOMMON}~{11767,1,1,0.0,UNCOMMON}~{11768,1,1,0.0,UNCOMMON}~{11769,1,1,0.0,UNCOMMON}~{11764,1,1,0.0,UNCOMMON}', ''), +(2492, '', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{808,1,1,0.0,UNCOMMON}~{557,13,13,0.0,UNCOMMON}~{9141,20,20,0.0,UNCOMMON}~{11766,1,1,0.0,UNCOMMON}~{11767,1,1,0.0,UNCOMMON}~{11768,1,1,0.0,UNCOMMON}~{11769,1,1,0.0,UNCOMMON}~{11764,1,1,0.0,UNCOMMON}', ''), +(2496, '', '{828,10,10,0.0,UNCOMMON}~{1237,1,1,0.0,UNCOMMON}~{1239,1,1,0.0,UNCOMMON}~{1241,1,1,0.0,UNCOMMON}~{1243,1,1,0.0,UNCOMMON}~{827,10,10,0.0,UNCOMMON}~{231,1,1,0.0,COMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1525,1,1,0.0,UNCOMMON}~{1533,1,1,0.0,UNCOMMON}~{3188,1,1,0.0,COMMON}~{6306,15,62,0.0,COMMON}~{444,1,1,0.0,UNCOMMON}~{1933,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{225,1,1,0.0,UNCOMMON}~{561,3,3,0.0,UNCOMMON}~{2833,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2497, '', '{828,10,10,0.0,UNCOMMON}~{1237,1,1,0.0,UNCOMMON}~{1239,1,1,0.0,UNCOMMON}~{1241,1,1,0.0,UNCOMMON}~{1243,1,1,0.0,UNCOMMON}~{827,10,10,0.0,UNCOMMON}~{231,1,1,0.0,COMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1525,1,1,0.0,UNCOMMON}~{1533,1,1,0.0,UNCOMMON}~{3188,1,1,0.0,COMMON}~{6306,15,62,0.0,COMMON}~{444,1,1,0.0,UNCOMMON}~{1933,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{225,1,1,0.0,UNCOMMON}~{561,3,3,0.0,UNCOMMON}~{2837,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2547, '{526,1,1,0.0,ALWAYS}', '{199,1,2,0.0,COMMON}~{201,1,2,0.0,COMMON}~{203,1,2,0.0,COMMON}~{205,1,2,0.0,COMMON}~{211,1,2,0.0,UNCOMMON}~{209,1,2,0.0,UNCOMMON}~{213,1,2,0.0,UNCOMMON}~{207,1,2,0.0,UNCOMMON}~{2485,1,2,0.0,UNCOMMON}~{217,1,2,0.0,UNCOMMON}~{215,1,2,0.0,UNCOMMON}~{219,1,2,0.0,RARE}~{563,2,2,0.0,COMMON}~{559,9,9,0.0,COMMON}~{556,9,36,0.0,COMMON}~{557,9,9,0.0,COMMON}~{558,12,12,0.0,COMMON}~{561,3,3,0.0,UNCOMMON}~{995,2,2,0.0,COMMON}~{995,3,3,0.0,COMMON}~{9142,2,12,0.0,COMMON}~{227,1,1,0.0,COMMON}~{1291,1,1,0.0,UNCOMMON}~{231,1,1,0.0,RARE}~{1594,1,1,0.0,RARE}~{1454,1,1,0.0,RARE}~{1137,1,1,0.0,RARE}~{1627,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2591, '', '{1387,1,1,0.0,UNCOMMON}~{6568,1,1,0.0,VERY_RARE}~{6526,1,1,0.0,VERY_RARE}~{557,10,80,0.0,COMMON}~{554,10,80,0.0,COMMON}~{556,10,80,0.0,UNCOMMON}~{555,10,80,0.0,UNCOMMON}~{562,5,10,0.0,UNCOMMON}~{561,1,8,0.0,UNCOMMON}~{563,2,5,0.0,UNCOMMON}~{560,1,6,0.0,RARE}~{565,1,6,0.0,RARE}~{4697,1,10,0.0,RARE}~{4699,10,40,0.0,RARE}~{1442,1,1,0.0,RARE}~{6529,1,700,0.0,COMMON}~{12168,1,1,0.0,COMMON}~{9194,1,1,0.0,UNCOMMON}~{7936,4,10,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2592, '', '{1387,1,1,0.0,UNCOMMON}~{6568,1,1,0.0,VERY_RARE}~{6526,1,1,0.0,VERY_RARE}~{557,10,80,0.0,COMMON}~{554,10,80,0.0,COMMON}~{556,10,80,0.0,UNCOMMON}~{555,10,80,0.0,UNCOMMON}~{562,5,10,0.0,UNCOMMON}~{561,1,8,0.0,UNCOMMON}~{563,2,5,0.0,UNCOMMON}~{560,1,6,0.0,RARE}~{565,1,6,0.0,RARE}~{4697,1,10,0.0,RARE}~{4699,10,40,0.0,RARE}~{1442,1,1,0.0,RARE}~{6529,1,700,0.0,COMMON}~{12168,1,1,0.0,COMMON}~{9194,1,1,0.0,UNCOMMON}~{7936,4,10,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2593, '', '{1387,1,1,0.0,UNCOMMON}~{6568,1,1,0.0,VERY_RARE}~{6526,1,1,0.0,VERY_RARE}~{557,10,80,0.0,COMMON}~{554,10,80,0.0,COMMON}~{556,10,80,0.0,UNCOMMON}~{555,10,80,0.0,UNCOMMON}~{562,5,10,0.0,UNCOMMON}~{561,1,8,0.0,UNCOMMON}~{563,2,5,0.0,UNCOMMON}~{560,1,6,0.0,RARE}~{565,1,6,0.0,RARE}~{4697,1,10,0.0,RARE}~{4699,10,40,0.0,RARE}~{1442,1,1,0.0,RARE}~{6529,1,700,0.0,COMMON}~{12168,1,1,0.0,COMMON}~{9194,1,1,0.0,UNCOMMON}~{7936,4,10,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2594, '', '{1387,1,1,0.0,UNCOMMON}~{6568,1,1,0.0,VERY_RARE}~{6526,1,1,0.0,VERY_RARE}~{557,10,80,0.0,COMMON}~{554,10,80,0.0,COMMON}~{556,10,80,0.0,UNCOMMON}~{555,10,80,0.0,UNCOMMON}~{562,5,10,0.0,UNCOMMON}~{561,1,8,0.0,UNCOMMON}~{563,2,5,0.0,UNCOMMON}~{560,1,6,0.0,RARE}~{565,1,6,0.0,RARE}~{4697,1,10,0.0,RARE}~{4699,10,40,0.0,RARE}~{1442,1,1,0.0,RARE}~{6529,1,700,0.0,COMMON}~{12168,1,1,0.0,COMMON}~{9194,1,1,0.0,UNCOMMON}~{7936,4,10,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2595, '', '{1387,1,1,0.0,UNCOMMON}~{6568,1,1,0.0,VERY_RARE}~{6526,1,1,0.0,VERY_RARE}~{557,10,80,0.0,COMMON}~{554,10,80,0.0,COMMON}~{556,10,80,0.0,UNCOMMON}~{555,10,80,0.0,UNCOMMON}~{562,5,10,0.0,UNCOMMON}~{561,1,8,0.0,UNCOMMON}~{563,2,5,0.0,UNCOMMON}~{560,1,6,0.0,RARE}~{565,1,6,0.0,RARE}~{4697,1,10,0.0,RARE}~{4699,10,40,0.0,RARE}~{1442,1,1,0.0,RARE}~{6529,1,700,0.0,COMMON}~{12168,1,1,0.0,COMMON}~{9194,1,1,0.0,UNCOMMON}~{7936,4,10,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2596, '', '{1387,1,1,0.0,UNCOMMON}~{6568,1,1,0.0,VERY_RARE}~{6526,1,1,0.0,VERY_RARE}~{557,10,80,0.0,COMMON}~{554,10,80,0.0,COMMON}~{556,10,80,0.0,UNCOMMON}~{555,10,80,0.0,UNCOMMON}~{562,5,10,0.0,UNCOMMON}~{561,1,8,0.0,UNCOMMON}~{563,2,5,0.0,UNCOMMON}~{560,1,6,0.0,RARE}~{565,1,6,0.0,RARE}~{4697,1,10,0.0,RARE}~{4699,10,40,0.0,RARE}~{1442,1,1,0.0,RARE}~{6529,1,700,0.0,COMMON}~{12168,1,1,0.0,COMMON}~{9194,1,1,0.0,UNCOMMON}~{7936,4,10,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2597, '', '{1387,1,1,0.0,UNCOMMON}~{6568,1,1,0.0,VERY_RARE}~{6526,1,1,0.0,VERY_RARE}~{557,10,80,0.0,COMMON}~{554,10,80,0.0,COMMON}~{556,10,80,0.0,UNCOMMON}~{555,10,80,0.0,UNCOMMON}~{562,5,10,0.0,UNCOMMON}~{561,1,8,0.0,UNCOMMON}~{563,2,5,0.0,UNCOMMON}~{560,1,6,0.0,RARE}~{565,1,6,0.0,RARE}~{4697,1,10,0.0,RARE}~{4699,10,40,0.0,RARE}~{1442,1,1,0.0,RARE}~{6529,1,700,0.0,COMMON}~{12168,1,1,0.0,COMMON}~{9194,1,1,0.0,UNCOMMON}~{7936,4,10,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2598, '', '{6529,150,800,0.0,COMMON}~{12168,1,1,0.0,COMMON}~{12168,2,2,0.0,COMMON}~{1775,2,2,0.0,UNCOMMON}~{149,1,1,0.0,UNCOMMON}~{161,1,1,0.0,UNCOMMON}~{1780,4,12,0.0,UNCOMMON}~{1391,1,1,0.0,RARE}~{1744,3,3,0.0,RARE}~{1741,3,3,0.0,RARE}~{1738,2,8,0.0,RARE}~{7936,2,6,0.0,RARE}~{379,1,1,0.0,RARE}~{9194,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2599, '', '{6529,150,800,0.0,COMMON}~{12168,1,1,0.0,COMMON}~{12168,2,2,0.0,COMMON}~{1775,2,2,0.0,UNCOMMON}~{149,1,1,0.0,UNCOMMON}~{161,1,1,0.0,UNCOMMON}~{1780,4,12,0.0,UNCOMMON}~{1391,1,1,0.0,RARE}~{1744,3,3,0.0,RARE}~{1741,3,3,0.0,RARE}~{1738,2,8,0.0,RARE}~{7936,2,6,0.0,RARE}~{379,1,1,0.0,RARE}~{9194,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2600, '', '{6529,150,800,0.0,COMMON}~{12168,1,1,0.0,COMMON}~{12168,2,2,0.0,COMMON}~{1775,2,2,0.0,UNCOMMON}~{149,1,1,0.0,UNCOMMON}~{161,1,1,0.0,UNCOMMON}~{1780,4,12,0.0,UNCOMMON}~{1391,1,1,0.0,RARE}~{1744,3,3,0.0,RARE}~{1741,3,3,0.0,RARE}~{1738,2,8,0.0,RARE}~{7936,2,6,0.0,RARE}~{379,1,1,0.0,RARE}~{9194,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2601, '', '{6529,150,800,0.0,COMMON}~{12168,1,1,0.0,COMMON}~{12168,2,2,0.0,COMMON}~{1775,2,2,0.0,UNCOMMON}~{149,1,1,0.0,UNCOMMON}~{161,1,1,0.0,UNCOMMON}~{1780,4,12,0.0,UNCOMMON}~{1391,1,1,0.0,RARE}~{1744,3,3,0.0,RARE}~{1741,3,3,0.0,RARE}~{1738,2,8,0.0,RARE}~{7936,2,6,0.0,RARE}~{379,1,1,0.0,RARE}~{9194,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2602, '', '{6529,150,800,0.0,COMMON}~{12168,1,1,0.0,COMMON}~{12168,2,2,0.0,COMMON}~{1775,2,2,0.0,UNCOMMON}~{149,1,1,0.0,UNCOMMON}~{161,1,1,0.0,UNCOMMON}~{1780,4,12,0.0,UNCOMMON}~{1391,1,1,0.0,RARE}~{1744,3,3,0.0,RARE}~{1741,3,3,0.0,RARE}~{1738,2,8,0.0,RARE}~{7936,2,6,0.0,RARE}~{379,1,1,0.0,RARE}~{9194,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2603, '', '{6529,150,800,0.0,COMMON}~{12168,1,1,0.0,COMMON}~{12168,2,2,0.0,COMMON}~{1775,2,2,0.0,UNCOMMON}~{149,1,1,0.0,UNCOMMON}~{161,1,1,0.0,UNCOMMON}~{1780,4,12,0.0,UNCOMMON}~{1391,1,1,0.0,RARE}~{1744,3,3,0.0,RARE}~{1741,3,3,0.0,RARE}~{1738,2,8,0.0,RARE}~{7936,2,6,0.0,RARE}~{379,1,1,0.0,RARE}~{9194,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2604, '', '{6522,9,9,0.0,VERY_RARE}~{6522,11,11,0.0,VERY_RARE}~{6523,1,1,0.0,VERY_RARE}~{6525,1,1,0.0,VERY_RARE}~{6524,1,1,0.0,VERY_RARE}~{6568,1,1,0.0,VERY_RARE}~{161,1,1,0.0,UNCOMMON}~{149,1,1,0.0,UNCOMMON}~{167,1,1,0.0,UNCOMMON}~{6529,100,1500,0.0,COMMON}~{12168,2,2,0.0,COMMON}~{379,1,1,0.0,UNCOMMON}~{9194,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(2605, '', '{6522,9,9,0.0,VERY_RARE}~{6522,11,11,0.0,VERY_RARE}~{6523,1,1,0.0,VERY_RARE}~{6525,1,1,0.0,VERY_RARE}~{6524,1,1,0.0,VERY_RARE}~{6568,1,1,0.0,VERY_RARE}~{161,1,1,0.0,UNCOMMON}~{149,1,1,0.0,UNCOMMON}~{167,1,1,0.0,UNCOMMON}~{6529,100,1500,0.0,COMMON}~{12168,2,2,0.0,COMMON}~{379,1,1,0.0,UNCOMMON}~{9194,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(2606, '', '{6522,9,9,0.0,VERY_RARE}~{6522,11,11,0.0,VERY_RARE}~{6523,1,1,0.0,VERY_RARE}~{6525,1,1,0.0,VERY_RARE}~{6524,1,1,0.0,VERY_RARE}~{6568,1,1,0.0,VERY_RARE}~{161,1,1,0.0,UNCOMMON}~{149,1,1,0.0,UNCOMMON}~{167,1,1,0.0,UNCOMMON}~{6529,100,1500,0.0,COMMON}~{12168,2,2,0.0,COMMON}~{379,1,1,0.0,UNCOMMON}~{9194,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(2607, '', '{6522,9,9,0.0,VERY_RARE}~{6522,11,11,0.0,VERY_RARE}~{6523,1,1,0.0,VERY_RARE}~{6525,1,1,0.0,VERY_RARE}~{6524,1,1,0.0,VERY_RARE}~{6568,1,1,0.0,VERY_RARE}~{161,1,1,0.0,UNCOMMON}~{149,1,1,0.0,UNCOMMON}~{167,1,1,0.0,UNCOMMON}~{6529,100,1500,0.0,COMMON}~{12168,2,2,0.0,COMMON}~{379,1,1,0.0,UNCOMMON}~{9194,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(2608, '', '{6522,9,9,0.0,VERY_RARE}~{6522,11,11,0.0,VERY_RARE}~{6523,1,1,0.0,VERY_RARE}~{6525,1,1,0.0,VERY_RARE}~{6524,1,1,0.0,VERY_RARE}~{6568,1,1,0.0,VERY_RARE}~{161,1,1,0.0,UNCOMMON}~{149,1,1,0.0,UNCOMMON}~{167,1,1,0.0,UNCOMMON}~{6529,100,1500,0.0,COMMON}~{12168,2,2,0.0,COMMON}~{379,1,1,0.0,UNCOMMON}~{9194,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(2609, '', '{6522,9,9,0.0,VERY_RARE}~{6522,11,11,0.0,VERY_RARE}~{6523,1,1,0.0,VERY_RARE}~{6525,1,1,0.0,VERY_RARE}~{6524,1,1,0.0,VERY_RARE}~{6568,1,1,0.0,VERY_RARE}~{161,1,1,0.0,UNCOMMON}~{149,1,1,0.0,UNCOMMON}~{167,1,1,0.0,UNCOMMON}~{6529,100,1500,0.0,COMMON}~{12168,2,2,0.0,COMMON}~{379,1,1,0.0,UNCOMMON}~{9194,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(2610, '', '{6528,1,1,0.0,RARE}~{1393,1,1,0.0,RARE}~{6524,1,1,0.0,VERY_RARE}~{6568,1,1,0.0,VERY_RARE}~{167,1,1,0.0,UNCOMMON}~{161,1,1,0.0,UNCOMMON}~{6529,100,1900,0.0,COMMON}~{12168,1,2,0.0,COMMON}~{379,1,1,0.0,UNCOMMON}~{7054,1,1,0.0,UNCOMMON}~{7054,2,2,0.0,UNCOMMON}~{9194,1,4,0.0,UNCOMMON}~{7936,5,5,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2611, '', '{6528,1,1,0.0,RARE}~{1393,1,1,0.0,RARE}~{6524,1,1,0.0,VERY_RARE}~{6568,1,1,0.0,VERY_RARE}~{167,1,1,0.0,UNCOMMON}~{161,1,1,0.0,UNCOMMON}~{6529,100,1900,0.0,COMMON}~{12168,1,2,0.0,COMMON}~{379,1,1,0.0,UNCOMMON}~{7054,1,1,0.0,UNCOMMON}~{7054,2,2,0.0,UNCOMMON}~{9194,1,4,0.0,UNCOMMON}~{7936,5,5,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2612, '', '{6528,1,1,0.0,RARE}~{1393,1,1,0.0,RARE}~{6524,1,1,0.0,VERY_RARE}~{6568,1,1,0.0,VERY_RARE}~{167,1,1,0.0,UNCOMMON}~{161,1,1,0.0,UNCOMMON}~{6529,100,1900,0.0,COMMON}~{12168,1,2,0.0,COMMON}~{379,1,1,0.0,UNCOMMON}~{7054,1,1,0.0,UNCOMMON}~{7054,2,2,0.0,UNCOMMON}~{9194,1,4,0.0,UNCOMMON}~{7936,5,5,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2613, '', '{6528,1,1,0.0,RARE}~{1393,1,1,0.0,RARE}~{6524,1,1,0.0,VERY_RARE}~{6568,1,1,0.0,VERY_RARE}~{167,1,1,0.0,UNCOMMON}~{161,1,1,0.0,UNCOMMON}~{6529,100,1900,0.0,COMMON}~{12168,1,2,0.0,COMMON}~{379,1,1,0.0,UNCOMMON}~{7054,1,1,0.0,UNCOMMON}~{7054,2,2,0.0,UNCOMMON}~{9194,1,4,0.0,UNCOMMON}~{7936,5,5,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2614, '', '{6528,1,1,0.0,RARE}~{1393,1,1,0.0,RARE}~{6524,1,1,0.0,VERY_RARE}~{6568,1,1,0.0,VERY_RARE}~{167,1,1,0.0,UNCOMMON}~{161,1,1,0.0,UNCOMMON}~{6529,100,1900,0.0,COMMON}~{12168,1,2,0.0,COMMON}~{379,1,1,0.0,UNCOMMON}~{7054,1,1,0.0,UNCOMMON}~{7054,2,2,0.0,UNCOMMON}~{9194,1,4,0.0,UNCOMMON}~{7936,5,5,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2615, '', '{6528,1,1,0.0,RARE}~{1393,1,1,0.0,RARE}~{6524,1,1,0.0,VERY_RARE}~{6568,1,1,0.0,VERY_RARE}~{167,1,1,0.0,UNCOMMON}~{161,1,1,0.0,UNCOMMON}~{6529,100,1900,0.0,COMMON}~{12168,1,2,0.0,COMMON}~{379,1,1,0.0,UNCOMMON}~{7054,1,1,0.0,UNCOMMON}~{7054,2,2,0.0,UNCOMMON}~{9194,1,4,0.0,UNCOMMON}~{7936,5,5,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2616, '', '{6528,1,1,0.0,RARE}~{1393,1,1,0.0,RARE}~{6524,1,1,0.0,VERY_RARE}~{6568,1,1,0.0,VERY_RARE}~{167,1,1,0.0,UNCOMMON}~{161,1,1,0.0,UNCOMMON}~{6529,100,1900,0.0,COMMON}~{12168,1,2,0.0,COMMON}~{379,1,1,0.0,UNCOMMON}~{7054,1,1,0.0,UNCOMMON}~{7054,2,2,0.0,UNCOMMON}~{9194,1,4,0.0,UNCOMMON}~{7936,5,5,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2624, '', '{6528,1,1,0.0,RARE}~{1393,1,1,0.0,RARE}~{6524,1,1,0.0,VERY_RARE}~{6568,1,1,0.0,VERY_RARE}~{167,1,1,0.0,UNCOMMON}~{161,1,1,0.0,UNCOMMON}~{6529,100,1900,0.0,COMMON}~{12168,1,2,0.0,COMMON}~{379,1,1,0.0,UNCOMMON}~{7054,1,1,0.0,UNCOMMON}~{7054,2,2,0.0,UNCOMMON}~{9194,1,4,0.0,UNCOMMON}~{7936,5,5,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2625, '', '{6528,1,1,0.0,RARE}~{1393,1,1,0.0,RARE}~{6524,1,1,0.0,VERY_RARE}~{6568,1,1,0.0,VERY_RARE}~{167,1,1,0.0,UNCOMMON}~{161,1,1,0.0,UNCOMMON}~{6529,100,1900,0.0,COMMON}~{12168,1,2,0.0,COMMON}~{379,1,1,0.0,UNCOMMON}~{7054,1,1,0.0,UNCOMMON}~{7054,2,2,0.0,UNCOMMON}~{9194,1,4,0.0,UNCOMMON}~{7936,5,5,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2642, '{536,1,1,0.0,ALWAYS}~{1747,1,1,0.0,ALWAYS}', '{1303,1,1,0.0,UNCOMMON}~{1373,1,1,0.0,UNCOMMON}~{565,50,50,0.0,COMMON}~{560,50,50,0.0,COMMON}~{563,50,50,0.0,UNCOMMON}~{888,250,250,0.0,UNCOMMON}~{892,50,50,0.0,UNCOMMON}~{9144,25,25,0.0,UNCOMMON}~{1185,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1149,1,1,0.0,RARE}~{2362,1,1,0.0,UNCOMMON}~{2362,5,5,0.0,UNCOMMON}~{2364,12,12,0.0,UNCOMMON}~{443,100,100,0.0,UNCOMMON}~{445,50,50,0.0,UNCOMMON}~{452,3,3,0.0,UNCOMMON}~{995,1000,3000,0.0,COMMON}~{1516,50,50,0.0,COMMON}~{1514,10,10,0.0,COMMON}~{2739,1,1,0.0,RARE}~{11286,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.26,ALWAYS}~{12158,1,1,0.06,ALWAYS}~{12159,1,1,0.03,ALWAYS}~{12160,1,1,0.63,ALWAYS}~{12163,1,1,0.02,ALWAYS}'), +(2674, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{882,1,1,0.0,UNCOMMON}~{877,2,2,0.0,UNCOMMON}~{877,4,4,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{863,1,1,0.0,UNCOMMON}~{562,1,1,0.0,RARE}~{557,1,1,0.0,RARE}~{554,1,1,0.0,RARE}~{558,1,1,0.0,RARE}~{995,3,3,0.0,COMMON}~{995,5,5,0.0,COMMON}~{1440,1,1,0.0,RARE}~{2747,1,1,0.0,RARE}~{436,1,1,0.0,RARE}', ''), +(2675, '{526,1,1,0.0,ALWAYS}', '{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{877,2,12,0.0,COMMON}~{882,7,7,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{995,1,40,0.0,COMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{2706,1,1,0.0,RARE}', ''), +(2678, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2693,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(2679, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2696,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(2680, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2695,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(2681, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2692,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(2683, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,UNCOMMON}~{882,1,1,0.0,UNCOMMON}~{877,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,1,1,0.0,COMMON}~{1965,1,1,0.0,UNCOMMON}~{562,1,1,0.0,UNCOMMON}~{558,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{554,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{2701,1,1,0.0,UNCOMMON}', ''), +(2684, '{526,1,1,0.0,ALWAYS}', '{882,1,1,0.0,UNCOMMON}~{877,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,1,1,0.0,COMMON}~{1965,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{562,1,1,0.0,UNCOMMON}~{558,1,1,0.0,UNCOMMON}~{557,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{2691,1,1,0.0,RARE}', ''), +(2685, '{526,1,1,0.0,ALWAYS}', '{1237,1,1,0.0,COMMON}~{826,5,5,0.0,COMMON}~{1207,1,1,0.0,COMMON}~{1279,1,1,0.0,COMMON}~{1293,1,1,0.0,UNCOMMON}~{1239,1,1,0.0,UNCOMMON}~{1241,1,1,0.0,UNCOMMON}~{1295,1,1,0.0,UNCOMMON}~{555,2,2,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{554,7,7,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{562,3,3,0.0,UNCOMMON}~{561,4,4,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{5318,4,8,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,COMMON}~{5320,3,3,0.0,COMMON}~{5323,1,2,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5322,3,3,0.0,UNCOMMON}~{5321,1,2,0.0,UNCOMMON}~{5306,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,2,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{211,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{225,1,1,0.0,COMMON}~{288,1,1,0.0,RARE}~{6306,15,15,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(2686, '{526,1,1,0.0,ALWAYS}', '{1237,1,1,0.0,COMMON}~{826,5,5,0.0,COMMON}~{1207,1,1,0.0,COMMON}~{1279,1,1,0.0,COMMON}~{1293,1,1,0.0,UNCOMMON}~{1239,1,1,0.0,UNCOMMON}~{1241,1,1,0.0,UNCOMMON}~{1295,1,1,0.0,UNCOMMON}~{555,2,2,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{554,7,7,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{562,3,3,0.0,UNCOMMON}~{561,4,4,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{5318,4,8,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,COMMON}~{5320,3,3,0.0,COMMON}~{5323,1,2,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5322,3,3,0.0,UNCOMMON}~{5321,1,2,0.0,UNCOMMON}~{5306,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,2,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{211,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{225,1,1,0.0,COMMON}~{288,1,1,0.0,RARE}~{6306,15,15,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(2687, '{526,1,1,0.0,ALWAYS}', '{1237,1,1,0.0,COMMON}~{826,5,5,0.0,COMMON}~{1207,1,1,0.0,COMMON}~{1279,1,1,0.0,COMMON}~{1293,1,1,0.0,UNCOMMON}~{1239,1,1,0.0,UNCOMMON}~{1241,1,1,0.0,UNCOMMON}~{1295,1,1,0.0,UNCOMMON}~{555,2,2,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{554,7,7,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{562,3,3,0.0,UNCOMMON}~{561,4,4,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{5318,4,8,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,COMMON}~{5320,3,3,0.0,COMMON}~{5323,1,2,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5322,3,3,0.0,UNCOMMON}~{5321,1,2,0.0,UNCOMMON}~{5306,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,2,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{211,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{225,1,1,0.0,COMMON}~{288,1,1,0.0,RARE}~{6306,15,15,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(2688, '{526,1,1,0.0,ALWAYS}', '{1237,1,1,0.0,COMMON}~{826,5,5,0.0,COMMON}~{1207,1,1,0.0,COMMON}~{1279,1,1,0.0,COMMON}~{1293,1,1,0.0,UNCOMMON}~{1239,1,1,0.0,UNCOMMON}~{1241,1,1,0.0,UNCOMMON}~{1295,1,1,0.0,UNCOMMON}~{555,2,2,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{554,7,7,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{562,3,3,0.0,UNCOMMON}~{561,4,4,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{5318,4,8,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,COMMON}~{5320,3,3,0.0,COMMON}~{5323,1,2,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5322,3,3,0.0,UNCOMMON}~{5321,1,2,0.0,UNCOMMON}~{5306,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,2,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{211,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{225,1,1,0.0,COMMON}~{288,1,1,0.0,RARE}~{6306,15,15,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(2689, '{526,1,1,0.0,ALWAYS}~{4517,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{215,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{5004,1,1,0.0,UNCOMMON}~{5004,5,5,0.0,UNCOMMON}~{555,6,6,0.0,COMMON}~{11766,1,1,0.0,UNCOMMON}~{11767,1,1,0.0,UNCOMMON}~{11768,1,1,0.0,UNCOMMON}~{11769,1,1,0.0,UNCOMMON}~{11764,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(2695, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2696, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{882,1,1,0.0,UNCOMMON}~{877,2,2,0.0,UNCOMMON}~{877,4,4,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{863,1,1,0.0,UNCOMMON}~{562,1,1,0.0,RARE}~{557,1,1,0.0,RARE}~{554,1,1,0.0,RARE}~{558,1,1,0.0,RARE}~{995,3,3,0.0,COMMON}~{995,5,5,0.0,COMMON}~{1440,1,1,0.0,RARE}~{2747,1,1,0.0,RARE}~{436,1,1,0.0,RARE}', ''), +(2697, '{526,1,1,0.0,ALWAYS}', '{877,4,11,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1139,1,1,0.0,RARE}~{555,6,6,0.0,UNCOMMON}~{557,5,5,0.0,UNCOMMON}~{558,9,9,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,5,5,0.0,COMMON}~{995,10,10,0.0,COMMON}~{954,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{313,1,1,0.0,COMMON}~{1965,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{2698,1,1,0.0,RARE}', ''), +(2698, '{526,1,1,0.0,ALWAYS}', '{1279,1,1,0.0,COMMON}~{1153,1,1,0.0,COMMON}~{1424,1,1,0.0,COMMON}~{1165,1,1,0.0,RARE}~{888,3,3,0.0,UNCOMMON}~{1313,1,1,0.0,RARE}~{1283,1,1,0.0,RARE}~{1125,1,1,0.0,RARE}~{1077,1,1,0.0,RARE}~{558,29,29,0.0,UNCOMMON}~{557,10,10,0.0,UNCOMMON}~{559,9,9,0.0,UNCOMMON}~{564,7,7,0.0,UNCOMMON}~{562,46,46,0.0,UNCOMMON}~{560,2,2,0.0,UNCOMMON}~{563,34,34,0.0,UNCOMMON}~{561,6,6,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{5318,4,4,0.0,UNCOMMON}~{5319,4,4,0.0,UNCOMMON}~{5324,4,4,0.0,RARE}~{5322,3,3,0.0,RARE}~{5320,3,3,0.0,RARE}~{5323,23,23,0.0,RARE}~{5321,2,2,0.0,RARE}~{995,1,500,0.0,COMMON}~{2353,1,1,0.0,COMMON}~{1933,1,1,0.0,COMMON}~{2309,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(2699, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2845,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(2700, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2801,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(2701, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2849,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(2702, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2809,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(2703, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2851,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(2704, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2831,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(2705, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2839,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(2706, '{7518,1,1,0.0,ALWAYS}', '{7536,1,1,0.0,UNCOMMON}~{7538,1,1,0.0,UNCOMMON}~{407,1,2,0.0,UNCOMMON}', ''), +(2707, '{526,1,1,0.0,ALWAYS}', '{7889,1,1,0.0,COMMON}', ''), +(2708, '{526,1,1,0.0,ALWAYS}', '{7889,1,1,0.0,COMMON}', ''), +(2709, '{592,1,1,0.0,ALWAYS}', '{554,4,9,0.0,COMMON}~{1442,1,1,0.0,RARE}', ''), +(2710, '{592,1,1,0.0,ALWAYS}~{555,4,10,0.0,ALWAYS}', '{1444,1,1,0.0,RARE}~{555,1,1,0.0,COMMON}', ''), +(2711, '{592,1,1,0.0,ALWAYS}', '{557,5,10,0.0,COMMON}~{1440,1,1,0.0,RARE}', ''), +(2712, '{592,1,1,0.0,ALWAYS}', '{556,4,10,0.0,COMMON}~{1438,1,1,0.0,RARE}~{1381,1,1,0.0,RARE}~{5527,1,1,0.0,RARE}', ''), +(2714, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2715, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2813,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2717, '{592,1,1,0.0,ALWAYS}~{526,1,1,0.0,ALWAYS}', '{1391,1,1,0.0,COMMON}~{1013,1,1,0.0,COMMON}~{558,7,9,0.0,COMMON}~{562,2,4,0.0,UNCOMMON}~{563,2,3,0.0,UNCOMMON}~{561,1,3,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{205,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,27,434,0.0,COMMON}~{1625,1,1,0.0,COMMON}~{1934,1,1,0.0,COMMON}~{2351,1,2,0.0,UNCOMMON}~{532,3,4,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2751, '{526,1,1,0.0,ALWAYS}', '{1279,1,1,0.0,COMMON}~{1153,1,1,0.0,COMMON}~{1424,1,1,0.0,COMMON}~{1165,1,1,0.0,RARE}~{888,3,3,0.0,UNCOMMON}~{1313,1,1,0.0,RARE}~{1283,1,1,0.0,RARE}~{1125,1,1,0.0,RARE}~{1077,1,1,0.0,RARE}~{558,29,29,0.0,UNCOMMON}~{557,10,10,0.0,UNCOMMON}~{559,9,9,0.0,UNCOMMON}~{564,7,7,0.0,UNCOMMON}~{562,46,46,0.0,UNCOMMON}~{560,2,2,0.0,UNCOMMON}~{563,34,34,0.0,UNCOMMON}~{561,6,6,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{5318,4,4,0.0,UNCOMMON}~{5319,4,4,0.0,UNCOMMON}~{5324,4,4,0.0,RARE}~{5322,3,3,0.0,RARE}~{5320,3,3,0.0,RARE}~{5323,23,23,0.0,RARE}~{5321,2,2,0.0,RARE}~{995,1,500,0.0,COMMON}~{2353,1,1,0.0,COMMON}~{1933,1,1,0.0,COMMON}~{2309,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(2776, '{526,1,1,0.0,ALWAYS}', '{877,7,7,0.0,COMMON}~{882,2,12,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{995,1,400,0.0,COMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{2715,1,1,0.0,RARE}~{2677,1,1,0.0,RARE}', ''); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(2777, '{526,1,1,0.0,ALWAYS}', '{1279,1,1,0.0,COMMON}~{1153,1,1,0.0,COMMON}~{1424,1,1,0.0,COMMON}~{1165,1,1,0.0,RARE}~{888,3,3,0.0,UNCOMMON}~{1313,1,1,0.0,RARE}~{1283,1,1,0.0,RARE}~{1125,1,1,0.0,RARE}~{1077,1,1,0.0,RARE}~{558,29,29,0.0,UNCOMMON}~{557,10,10,0.0,UNCOMMON}~{559,9,9,0.0,UNCOMMON}~{564,7,7,0.0,UNCOMMON}~{562,46,46,0.0,UNCOMMON}~{560,2,2,0.0,UNCOMMON}~{563,34,34,0.0,UNCOMMON}~{561,6,6,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{5318,4,4,0.0,UNCOMMON}~{5319,4,4,0.0,UNCOMMON}~{5324,4,4,0.0,RARE}~{5322,3,3,0.0,RARE}~{5320,3,3,0.0,RARE}~{5323,23,23,0.0,RARE}~{5321,2,2,0.0,RARE}~{995,1,500,0.0,COMMON}~{2353,1,1,0.0,COMMON}~{1933,1,1,0.0,COMMON}~{2309,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(2778, '{526,1,1,0.0,ALWAYS}', '{1279,1,1,0.0,COMMON}~{1153,1,1,0.0,COMMON}~{1424,1,1,0.0,COMMON}~{1165,1,1,0.0,RARE}~{888,3,3,0.0,UNCOMMON}~{1313,1,1,0.0,RARE}~{1283,1,1,0.0,RARE}~{1125,1,1,0.0,RARE}~{1077,1,1,0.0,RARE}~{558,29,29,0.0,UNCOMMON}~{557,10,10,0.0,UNCOMMON}~{559,9,9,0.0,UNCOMMON}~{564,7,7,0.0,UNCOMMON}~{562,46,46,0.0,UNCOMMON}~{560,2,2,0.0,UNCOMMON}~{563,34,34,0.0,UNCOMMON}~{561,6,6,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{5318,4,4,0.0,UNCOMMON}~{5319,4,4,0.0,UNCOMMON}~{5324,4,4,0.0,RARE}~{5322,3,3,0.0,RARE}~{5320,3,3,0.0,RARE}~{5323,23,23,0.0,RARE}~{5321,2,2,0.0,RARE}~{995,1,500,0.0,COMMON}~{2353,1,1,0.0,COMMON}~{1933,1,1,0.0,COMMON}~{2309,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(2781, '{526,1,1,0.0,ALWAYS}', '{995,1,10,0.0,COMMON}~{2169,1,1,0.0,COMMON}~{2102,1,1,0.0,COMMON}~{2128,1,1,0.0,COMMON}~{2120,1,1,0.0,COMMON}~{2164,1,1,0.0,UNCOMMON}~{2026,1,1,0.0,UNCOMMON}~{2165,1,1,0.0,UNCOMMON}~{2167,1,1,0.0,RARE}~{2025,1,1,0.0,RARE}~{2166,1,1,0.0,UNCOMMON}~{2839,1,1,0.0,RARE}~{2171,1,1,0.0,COMMON}~{2023,1,1,0.0,UNCOMMON}', ''), +(2783, '{532,1,1,0.0,ALWAYS}', '{1319,1,1,0.0,UNCOMMON}~{1313,1,1,0.0,COMMON}~{1367,1,1,0.0,COMMON}~{1361,1,1,0.0,UNCOMMON}~{1373,1,1,0.0,RARE}~{11235,1,1,0.0,RARE}~{1183,1,1,0.0,COMMON}~{1113,1,1,0.0,UNCOMMON}~{1163,1,1,0.0,RARE}~{1185,1,1,0.0,RARE}~{562,10,10,0.0,COMMON}~{565,7,7,0.0,COMMON}~{556,47,47,0.0,UNCOMMON}~{560,3,5,0.0,UNCOMMON}~{563,3,3,0.0,UNCOMMON}~{199,1,2,0.0,COMMON}~{201,1,2,0.0,COMMON}~{203,1,2,0.0,COMMON}~{205,1,2,0.0,UNCOMMON}~{207,1,2,0.0,UNCOMMON}~{209,1,2,0.0,UNCOMMON}~{211,1,2,0.0,UNCOMMON}~{215,1,2,0.0,UNCOMMON}~{2485,1,2,0.0,UNCOMMON}~{213,1,2,0.0,UNCOMMON}~{217,1,2,0.0,UNCOMMON}~{995,64,64,0.0,COMMON}~{995,95,95,0.0,COMMON}~{121,1,1,0.0,UNCOMMON}~{385,1,2,0.0,UNCOMMON}~{1456,1,1,0.0,UNCOMMON}~{2361,1,1,0.0,UNCOMMON}~{10977,1,1,0.0,RARE}~{10976,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.645,ALWAYS}~{12158,1,1,0.09,ALWAYS}~{12159,1,1,0.045,ALWAYS}~{12160,1,1,0.08,ALWAYS}~{12163,1,1,0.14,ALWAYS}'), +(2784, '{526,1,1,0.0,ALWAYS}~{1506,1,1,0.0,ALWAYS}~{6065,1,1,0.0,ALWAYS}~{6067,1,1,0.0,ALWAYS}~{6069,1,1,0.0,ALWAYS}~{6068,1,1,0.0,ALWAYS}~{6070,1,1,0.0,ALWAYS}', '', ''), +(2801, '{532,1,1,0.0,ALWAYS}', '{5294,1,1,0.0,COMMON}~{5298,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5291,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{5292,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{5324,1,3,0.0,COMMON}~{5104,1,1,0.0,COMMON}~{5100,1,1,0.0,COMMON}~{5318,1,4,0.0,COMMON}~{5321,1,1,0.0,COMMON}~{5319,1,3,0.0,COMMON}~{5281,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5320,1,1,0.0,UNCOMMON}~{5322,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{12148,2,2,0.0,UNCOMMON}~{5280,1,1,0.0,RARE}~{5105,1,1,0.0,RARE}~{5311,1,1,0.0,RARE}~{5106,1,1,0.0,RARE}~{345,1,1,0.0,COMMON}~{327,1,1,0.0,COMMON}~{371,1,1,0.0,COMMON}~{372,2,5,0.0,COMMON}~{359,1,1,0.0,COMMON}~{360,1,3,0.0,COMMON}~{383,1,1,0.0,UNCOMMON}~{349,1,1,0.0,RARE}~{331,1,1,0.0,RARE}~{313,5,15,0.0,COMMON}~{1511,1,1,0.0,COMMON}~{1383,1,1,0.0,COMMON}~{7853,1,1,0.0,COMMON}~{407,1,1,0.0,UNCOMMON}~{402,4,8,0.0,UNCOMMON}~{555,5,18,0.0,UNCOMMON}~{6660,4,6,0.0,UNCOMMON}~{12502,1,1,0.0,UNCOMMON}~{6666,1,1,0.0,UNCOMMON}~{6665,1,1,0.0,UNCOMMON}~{10977,1,1,0.0,RARE}~{6672,1,1,0.0,RARE}~{401,1,1,0.0,RARE}~{10976,1,1,0.0,RARE}', ''), +(2803, '{526,1,1,0.0,ALWAYS}', '{436,1,1,0.0,COMMON}~{441,1,2,0.0,COMMON}~{2355,1,1,0.0,UNCOMMON}~{438,1,1,0.0,COMMON}~{454,1,2,0.0,COMMON}~{442,1,1,0.0,UNCOMMON}~{447,1,1,0.0,UNCOMMON}~{5322,3,3,0.0,COMMON}~{5324,3,3,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5318,4,4,0.0,UNCOMMON}~{5323,3,3,0.0,UNCOMMON}~{5321,1,1,0.0,RARE}~{5320,1,3,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{554,5,42,0.0,COMMON}~{561,5,5,0.0,COMMON}~{946,1,1,0.0,COMMON}~{1831,2,2,0.0,COMMON}~{1829,1,2,0.0,COMMON}~{1827,1,1,0.0,COMMON}~{1825,1,1,0.0,COMMON}~{1971,1,1,0.0,COMMON}~{1823,2,2,0.0,RARE}~{10976,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2804, '{526,1,1,0.0,ALWAYS}', '{436,1,1,0.0,COMMON}~{441,1,2,0.0,COMMON}~{2355,1,1,0.0,UNCOMMON}~{438,1,1,0.0,COMMON}~{454,1,2,0.0,COMMON}~{442,1,1,0.0,UNCOMMON}~{447,1,1,0.0,UNCOMMON}~{5322,3,3,0.0,COMMON}~{5324,3,3,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5318,4,4,0.0,UNCOMMON}~{5323,3,3,0.0,UNCOMMON}~{5321,1,1,0.0,RARE}~{5320,1,3,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{554,5,42,0.0,COMMON}~{561,5,5,0.0,COMMON}~{946,1,1,0.0,COMMON}~{1831,2,2,0.0,COMMON}~{1829,1,2,0.0,COMMON}~{1827,1,1,0.0,COMMON}~{1825,1,1,0.0,COMMON}~{1971,1,1,0.0,COMMON}~{1823,2,2,0.0,RARE}~{10976,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2805, '{526,1,1,0.0,ALWAYS}', '{436,1,1,0.0,COMMON}~{441,1,2,0.0,COMMON}~{2355,1,1,0.0,UNCOMMON}~{438,1,1,0.0,COMMON}~{454,1,2,0.0,COMMON}~{442,1,1,0.0,UNCOMMON}~{447,1,1,0.0,UNCOMMON}~{5322,3,3,0.0,COMMON}~{5324,3,3,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5318,4,4,0.0,UNCOMMON}~{5323,3,3,0.0,UNCOMMON}~{5321,1,1,0.0,RARE}~{5320,1,3,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{554,5,42,0.0,COMMON}~{561,5,5,0.0,COMMON}~{946,1,1,0.0,COMMON}~{1831,2,2,0.0,COMMON}~{1829,1,2,0.0,COMMON}~{1827,1,1,0.0,COMMON}~{1825,1,1,0.0,COMMON}~{1971,1,1,0.0,COMMON}~{1823,2,2,0.0,RARE}~{10976,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2806, '{526,1,1,0.0,ALWAYS}', '{436,1,1,0.0,COMMON}~{441,1,2,0.0,COMMON}~{2355,1,1,0.0,UNCOMMON}~{438,1,1,0.0,COMMON}~{454,1,2,0.0,COMMON}~{442,1,1,0.0,UNCOMMON}~{447,1,1,0.0,UNCOMMON}~{5322,3,3,0.0,COMMON}~{5324,3,3,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5318,4,4,0.0,UNCOMMON}~{5323,3,3,0.0,UNCOMMON}~{5321,1,1,0.0,RARE}~{5320,1,3,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{554,5,42,0.0,COMMON}~{561,5,5,0.0,COMMON}~{946,1,1,0.0,COMMON}~{1831,2,2,0.0,COMMON}~{1829,1,2,0.0,COMMON}~{1827,1,1,0.0,COMMON}~{1825,1,1,0.0,COMMON}~{1971,1,1,0.0,COMMON}~{1823,2,2,0.0,RARE}~{10976,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2807, '{526,1,1,0.0,ALWAYS}', '{436,1,1,0.0,COMMON}~{441,1,2,0.0,COMMON}~{2355,1,1,0.0,UNCOMMON}~{438,1,1,0.0,COMMON}~{454,1,2,0.0,COMMON}~{442,1,1,0.0,UNCOMMON}~{447,1,1,0.0,UNCOMMON}~{5322,3,3,0.0,COMMON}~{5324,3,3,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5318,4,4,0.0,UNCOMMON}~{5323,3,3,0.0,UNCOMMON}~{5321,1,1,0.0,RARE}~{5320,1,3,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{554,5,42,0.0,COMMON}~{561,5,5,0.0,COMMON}~{946,1,1,0.0,COMMON}~{1831,2,2,0.0,COMMON}~{1829,1,2,0.0,COMMON}~{1827,1,1,0.0,COMMON}~{1825,1,1,0.0,COMMON}~{1971,1,1,0.0,COMMON}~{1823,2,2,0.0,RARE}~{10976,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2808, '{526,1,1,0.0,ALWAYS}', '{436,1,1,0.0,COMMON}~{441,1,2,0.0,COMMON}~{2355,1,1,0.0,UNCOMMON}~{438,1,1,0.0,COMMON}~{454,1,2,0.0,COMMON}~{442,1,1,0.0,UNCOMMON}~{447,1,1,0.0,UNCOMMON}~{5322,3,3,0.0,COMMON}~{5324,3,3,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5318,4,4,0.0,UNCOMMON}~{5323,3,3,0.0,UNCOMMON}~{5321,1,1,0.0,RARE}~{5320,1,3,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{554,5,42,0.0,COMMON}~{561,5,5,0.0,COMMON}~{946,1,1,0.0,COMMON}~{1831,2,2,0.0,COMMON}~{1829,1,2,0.0,COMMON}~{1827,1,1,0.0,COMMON}~{1825,1,1,0.0,COMMON}~{1971,1,1,0.0,COMMON}~{1823,2,2,0.0,RARE}~{10976,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2837, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(2838, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(2839, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(2840, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(2841, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(2842, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(2843, '', '{555,17,17,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{562,4,4,0.0,UNCOMMON}~{559,3,3,0.0,COMMON}~{556,3,3,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{7863,1,1,0.0,COMMON}~{995,10,40,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,7,7,0.0,COMMON}~{1325,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,COMMON}~{6721,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(2844, '', '{555,17,17,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{562,4,4,0.0,UNCOMMON}~{559,3,3,0.0,COMMON}~{556,3,3,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{7863,1,1,0.0,COMMON}~{995,10,40,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,7,7,0.0,COMMON}~{1325,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,COMMON}~{6721,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(2845, '', '{555,17,17,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{562,4,4,0.0,UNCOMMON}~{559,3,3,0.0,COMMON}~{556,3,3,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{7863,1,1,0.0,COMMON}~{995,10,40,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,7,7,0.0,COMMON}~{1325,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,COMMON}~{6721,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(2846, '', '{555,17,17,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{562,4,4,0.0,UNCOMMON}~{559,3,3,0.0,COMMON}~{556,3,3,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{7863,1,1,0.0,COMMON}~{995,10,40,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,7,7,0.0,COMMON}~{1325,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,COMMON}~{6721,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(2847, '', '{555,17,17,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{562,4,4,0.0,UNCOMMON}~{559,3,3,0.0,COMMON}~{556,3,3,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{7863,1,1,0.0,COMMON}~{995,10,40,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,7,7,0.0,COMMON}~{1325,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,COMMON}~{6721,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(2848, '', '{555,17,17,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{562,4,4,0.0,UNCOMMON}~{559,3,3,0.0,COMMON}~{556,3,3,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{7863,1,1,0.0,COMMON}~{995,10,40,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,7,7,0.0,COMMON}~{1325,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,COMMON}~{6721,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(2850, '', '{213,1,1,0.0,UNCOMMON}', ''), +(2863, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2866, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2869, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2878, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2880, '{526,1,1,0.0,ALWAYS}', '', ''), +(2881, '{6729,1,1,0.0,ALWAYS}~{6155,1,1,0.0,ALWAYS}', '{1357,1,1,0.0,UNCOMMON}~{1303,1,1,0.0,RARE}~{3757,1,1,0.0,RARE}~{1373,1,1,0.0,RARE}~{1319,1,1,0.0,RARE}~{6724,1,1,0.0,RARE}~{6739,1,1,0.0,RARE}~{884,218,590,0.0,COMMON}~{886,54,98,0.0,COMMON}~{863,214,500,0.0,UNCOMMON}~{865,54,90,0.0,UNCOMMON}~{866,31,69,0.0,UNCOMMON}~{805,7,7,0.0,UNCOMMON}~{830,1,10,0.0,UNCOMMON}~{9144,2,14,0.0,UNCOMMON}~{2489,1,1,0.0,UNCOMMON}~{6133,1,1,0.0,UNCOMMON}~{6135,1,1,0.0,UNCOMMON}~{3758,1,1,0.0,UNCOMMON}~{3748,1,1,0.0,UNCOMMON}~{3749,1,1,0.0,RARE}~{385,5,5,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{1438,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{1440,1,1,0.0,RARE}~{1442,1,1,0.0,RARE}~{1446,1,1,0.0,RARE}~{1454,1,1,0.0,RARE}~{995,900,3000,0.0,COMMON}~{45,1,3,0.0,COMMON}~{1516,94,94,0.0,UNCOMMON}~{1518,91,125,0.0,UNCOMMON}~{413,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{314,1,200,0.0,RARE}~{9431,1,1,0.0,RARE}~{2725,1,1,0.0,RARE}~{31,1,1,0.0,RARE}~{6733,1,1,0.0,VERY_RARE,256}', ''), +(2882, '{6729,1,1,0.0,ALWAYS}~{6155,1,1,0.0,ALWAYS}', '{1397,1,1,0.0,COMMON}~{1399,1,1,0.0,COMMON}~{1395,1,1,0.0,COMMON}~{6562,1,1,0.0,RARE}~{1392,1,10,0.0,RARE}~{6739,1,1,0.0,RARE}~{1439,1,80,0.0,UNCOMMON}~{1441,1,80,0.0,UNCOMMON}~{1445,1,80,0.0,UNCOMMON}~{556,155,155,0.0,UNCOMMON}~{4698,32,32,0.0,UNCOMMON}~{560,22,85,0.0,UNCOMMON}~{3758,1,1,0.0,UNCOMMON}~{3748,1,1,0.0,UNCOMMON}~{6139,1,1,0.0,RARE}~{6141,1,1,0.0,RARE}~{3755,1,1,0.0,RARE}~{995,972,3000,0.0,COMMON}~{7937,150,150,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{2739,1,1,0.0,RARE}~{5281,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{31,1,1,0.0,RARE}~{6731,1,1,0.0,VERY_RARE,256}', ''), +(2883, '{6729,1,1,0.0,ALWAYS}~{6155,1,1,0.0,ALWAYS}', '{3757,1,1,0.0,COMMON}~{1343,1,1,0.0,COMMON}~{1357,1,1,0.0,COMMON}~{1315,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,UNCOMMON}~{1373,1,1,0.0,RARE}~{6739,1,1,0.0,RARE}~{1193,1,1,0.0,COMMON}~{1119,1,1,0.0,COMMON}~{1123,1,1,0.0,UNCOMMON}~{3758,1,1,0.0,UNCOMMON}~{3748,1,1,0.0,UNCOMMON}~{6737,1,1,0.0,RARE,256}~{6735,1,1,0.0,RARE,256}~{2570,1,1,0.0,RARE}~{6129,1,1,0.0,RARE}~{6130,1,1,0.0,RARE}~{147,1,1,0.0,UNCOMMON}~{159,1,1,0.0,UNCOMMON}~{165,1,1,0.0,UNCOMMON}~{141,1,1,0.0,UNCOMMON}~{191,1,1,0.0,UNCOMMON}~{129,1,1,0.0,RARE}~{2361,1,1,0.0,UNCOMMON}~{448,25,25,0.0,UNCOMMON}~{454,100,100,0.0,UNCOMMON}~{441,150,150,0.0,RARE}~{2354,15,38,0.0,RARE}~{365,5,5,0.0,UNCOMMON}~{373,5,5,0.0,UNCOMMON}~{385,5,5,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{1446,1,1,0.0,COMMON}~{1440,1,1,0.0,COMMON}~{995,156,3000,0.0,UNCOMMON}~{2739,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(2884, '{526,1,1,0.0,ALWAYS}', '{554,1,1,0.0,UNCOMMON}~{563,1,1,0.0,UNCOMMON}~{556,1,6,0.0,COMMON}~{558,1,9,0.0,COMMON}~{555,1,10,0.0,COMMON}~{557,4,9,0.0,COMMON}~{562,1,10,0.0,COMMON}~{564,1,1,0.0,COMMON}~{561,1,1,0.0,COMMON}~{560,1,10,0.0,COMMON}~{565,4,5,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{1448,1,1,0.0,UNCOMMON}~{1444,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{1454,1,1,0.0,UNCOMMON}~{1462,1,1,0.0,UNCOMMON}~{5291,1,1,0.0,COMMON}~{5292,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5296,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{7937,9,9,0.0,COMMON}~{886,1,10,0.0,COMMON}~{6167,1,1,0.0,UNCOMMON}~{6165,1,1,0.0,UNCOMMON}~{6153,1,1,0.0,UNCOMMON}~{6147,1,1,0.0,UNCOMMON}~{6163,1,1,0.0,UNCOMMON}~{353,1,2,0.0,UNCOMMON}~{995,5,489,0.0,RARE}~{359,1,1,0.0,RARE}~{2803,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.5650000000000001,ALWAYS}~{12158,1,1,0.155,ALWAYS}~{12159,1,1,0.075,ALWAYS}~{12160,1,1,0.085,ALWAYS}~{12163,1,1,0.12,ALWAYS}'), +(2885, '{526,1,1,0.0,ALWAYS}', '{555,1,39,0.0,COMMON}~{557,2,37,0.0,COMMON}~{1438,1,1,0.0,UNCOMMON}~{1448,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{1454,1,1,0.0,RARE}~{1446,1,1,0.0,RARE}~{1444,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1462,1,1,0.0,RARE}~{1452,1,1,0.0,UNCOMMON}~{1119,1,1,0.0,COMMON}~{1125,1,1,0.0,COMMON}~{1355,1,1,0.0,COMMON}~{6151,1,1,0.0,UNCOMMON}~{6145,1,1,0.0,UNCOMMON}~{1341,1,1,0.0,UNCOMMON}~{1301,1,1,0.0,UNCOMMON}~{1345,1,1,0.0,RARE}~{5106,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5291,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5298,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,27,27,0.0,COMMON}~{995,28,28,0.0,COMMON}~{377,1,1,0.0,COMMON}~{363,1,1,0.0,COMMON}~{590,1,1,0.0,COMMON}~{405,1,1,0.0,RARE}~{6161,1,1,0.0,UNCOMMON}~{6157,1,1,0.0,RARE}~{6159,1,1,0.0,RARE}~{2839,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.315,ALWAYS}~{12158,1,1,0.44,ALWAYS}~{12159,1,1,0.1,ALWAYS}~{12160,1,1,0.11,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(2887, '', '{2677,1,1,0.0,RARE}', ''), +(2888, '', '{2677,1,1,0.0,RARE}', ''), +(2889, '', '{557,5,5,0.0,COMMON}~{555,9,9,0.0,COMMON}~{7936,4,8,0.0,COMMON}~{1442,1,1,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{1454,1,1,0.0,UNCOMMON}~{1446,1,1,0.0,UNCOMMON}~{1444,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{886,4,7,0.0,COMMON}~{884,2,17,0.0,COMMON}~{3757,1,1,0.0,RARE}~{5319,1,1,0.0,UNCOMMON}~{5318,1,1,0.0,UNCOMMON}~{5324,1,1,0.0,UNCOMMON}~{5322,1,1,0.0,UNCOMMON}~{5321,1,3,0.0,RARE}~{12148,1,3,0.0,RARE}~{401,4,4,0.0,COMMON}~{403,4,4,0.0,COMMON}~{377,1,1,0.0,COMMON}~{301,1,1,0.0,COMMON}~{590,1,1,0.0,COMMON}~{1781,1,1,0.0,UNCOMMON}~{995,355,355,0.0,UNCOMMON}~{231,1,1,0.0,UNCOMMON}~{2819,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.47500000000000003,ALWAYS}~{12158,1,1,0.17,ALWAYS}~{12159,1,1,0.09,ALWAYS}~{12160,1,1,0.229,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(2962, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2811,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(2963, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2801,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(2964, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2853,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(2965, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2803,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(2966, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2815,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(2967, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2831,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(2968, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2835,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(2969, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2831,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(2970, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2813,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(2971, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2841,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(2972, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2821,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(2973, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2801,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(3068, '{6812,1,1,0.0,ALWAYS}', '{1285,1,1,0.0,COMMON}~{1361,1,1,0.0,UNCOMMON}~{1357,1,1,0.0,UNCOMMON}~{1399,1,1,0.0,RARE}~{6809,1,1,0.0,RARE}~{7937,250,250,0.0,UNCOMMON}~{556,225,225,0.0,UNCOMMON}~{555,120,150,0.0,UNCOMMON}~{562,80,80,0.0,UNCOMMON}~{563,45,45,0.0,UNCOMMON}~{565,2,11,0.0,UNCOMMON}~{566,20,20,0.0,RARE}~{560,35,40,0.0,UNCOMMON}~{9142,8,39,0.0,COMMON}~{9143,7,99,0.0,COMMON}~{9144,5,44,0.0,COMMON}~{2485,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5300,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5295,3,3,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{995,20,420,0.0,COMMON}~{379,3,3,0.0,UNCOMMON}~{365,1,1,0.0,UNCOMMON}~{149,1,1,0.0,UNCOMMON}~{133,1,1,0.0,UNCOMMON}~{2733,1,1,0.0,UNCOMMON}~{9465,1,1,0.0,RARE}~{995,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}~{11286,1,1,0.0,VERY_RARE,10000}~{1359,1,1,0.0,UNCOMMON}~{1373,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1201,1,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{6809,1,1,0.0,RARE}~{1399,1,1,0.0,UNCOMMON}~{1618,5,5,0.0,UNCOMMON}~{1620,10,10,0.0,UNCOMMON}~{568,75,75,0.0,UNCOMMON}~{441,200,200,0.0,UNCOMMON}~{1514,35,35,0.0,COMMON}~{892,36,36,0.0,UNCOMMON}', '{0,1,1,0.34,ALWAYS}~{12158,1,1,0.065,ALWAYS}~{12159,1,1,0.035,ALWAYS}~{12160,1,1,0.545,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(3069, '{6812,1,1,0.0,ALWAYS}', '{1285,1,1,0.0,COMMON}~{1361,1,1,0.0,UNCOMMON}~{1357,1,1,0.0,UNCOMMON}~{6324,1,1,0.0,UNCOMMON}~{1399,1,1,0.0,RARE}~{6809,1,1,0.0,RARE}~{7937,60,60,0.0,UNCOMMON}~{556,10,64,0.0,UNCOMMON}~{555,11,33,0.0,UNCOMMON}~{562,10,10,0.0,UNCOMMON}~{563,2,5,0.0,UNCOMMON}~{565,2,11,0.0,UNCOMMON}~{566,5,14,0.0,UNCOMMON}~{560,1,5,0.0,UNCOMMON}~{8882,2,29,0.0,COMMON}~{9142,8,39,0.0,COMMON}~{9143,5,29,0.0,COMMON}~{9144,5,25,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5300,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{995,20,420,0.0,COMMON}~{379,3,3,0.0,UNCOMMON}~{365,1,1,0.0,UNCOMMON}~{149,1,1,0.0,UNCOMMON}~{133,1,1,0.0,UNCOMMON}~{2723,1,1,0.0,UNCOMMON}~{9463,1,1,0.0,RARE}~{995,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}~{11286,1,1,0.0,VERY_RARE,10000}', '{0,1,1,0.34,ALWAYS}~{12158,1,1,0.065,ALWAYS}~{12159,1,1,0.035,ALWAYS}~{12160,1,1,0.545,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(3070, '{6812,1,1,0.0,ALWAYS}', '{1285,1,1,0.0,COMMON}~{1361,1,1,0.0,UNCOMMON}~{1357,1,1,0.0,UNCOMMON}~{6324,1,1,0.0,UNCOMMON}~{1399,1,1,0.0,RARE}~{6809,1,1,0.0,RARE}~{7937,60,60,0.0,UNCOMMON}~{556,10,64,0.0,UNCOMMON}~{555,11,33,0.0,UNCOMMON}~{562,10,10,0.0,UNCOMMON}~{563,2,5,0.0,UNCOMMON}~{565,2,11,0.0,UNCOMMON}~{566,5,14,0.0,UNCOMMON}~{560,1,5,0.0,UNCOMMON}~{8882,2,29,0.0,COMMON}~{9142,8,39,0.0,COMMON}~{9143,5,29,0.0,COMMON}~{9144,5,25,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5300,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{995,20,420,0.0,COMMON}~{379,3,3,0.0,UNCOMMON}~{365,1,1,0.0,UNCOMMON}~{149,1,1,0.0,UNCOMMON}~{133,1,1,0.0,UNCOMMON}~{2745,1,1,0.0,UNCOMMON}~{9463,1,1,0.0,RARE}~{995,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}~{11286,1,1,0.0,VERY_RARE,10000}', '{0,1,1,0.34,ALWAYS}~{12158,1,1,0.065,ALWAYS}~{12159,1,1,0.035,ALWAYS}~{12160,1,1,0.545,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(3071, '{6812,1,1,0.0,ALWAYS}', '{1285,1,1,0.0,COMMON}~{1361,1,1,0.0,UNCOMMON}~{1357,1,1,0.0,UNCOMMON}~{6324,1,1,0.0,UNCOMMON}~{1399,1,1,0.0,RARE}~{6809,1,1,0.0,RARE}~{7937,60,60,0.0,UNCOMMON}~{556,10,64,0.0,UNCOMMON}~{555,11,33,0.0,UNCOMMON}~{562,10,10,0.0,UNCOMMON}~{563,2,5,0.0,UNCOMMON}~{565,2,11,0.0,UNCOMMON}~{566,5,14,0.0,UNCOMMON}~{560,1,5,0.0,UNCOMMON}~{8882,2,29,0.0,COMMON}~{9142,8,39,0.0,COMMON}~{9143,5,29,0.0,COMMON}~{9144,5,25,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5300,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{995,20,420,0.0,COMMON}~{379,3,3,0.0,UNCOMMON}~{365,1,1,0.0,UNCOMMON}~{149,1,1,0.0,UNCOMMON}~{133,1,1,0.0,UNCOMMON}~{2743,1,1,0.0,UNCOMMON}~{9463,1,1,0.0,RARE}~{995,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}~{11286,1,1,0.0,VERY_RARE,10000}', '{0,1,1,0.34,ALWAYS}~{12158,1,1,0.065,ALWAYS}~{12159,1,1,0.035,ALWAYS}~{12160,1,1,0.545,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(3072, '{532,1,1,0.0,ALWAYS}', '{1363,1,1,0.0,COMMON}~{1067,1,1,0.0,COMMON}~{1309,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{1281,1,1,0.0,COMMON}~{1195,1,1,0.0,COMMON}~{890,5,5,0.0,UNCOMMON}~{1181,1,1,0.0,RARE}~{1428,1,1,0.0,RARE}~{555,12,12,0.0,COMMON}~{558,24,24,0.0,COMMON}~{559,37,37,0.0,COMMON}~{564,2,4,0.0,COMMON}~{563,3,3,0.0,UNCOMMON}~{561,6,6,0.0,UNCOMMON}~{560,2,4,0.0,RARE}~{565,2,4,0.0,RARE}~{5292,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5323,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,RARE}~{5296,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5298,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5311,1,1,0.0,RARE}~{5280,1,1,0.0,RARE}~{5281,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5106,1,1,0.0,RARE}~{995,8,450,0.0,COMMON}~{7875,1,1,0.0,COMMON}~{1963,1,1,0.0,UNCOMMON}~{1993,1,1,0.0,UNCOMMON}~{447,1,1,0.0,UNCOMMON}~{1454,1,1,0.0,RARE}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{2827,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3073, '', '{1363,1,1,0.0,COMMON}~{888,3,3,0.0,COMMON}~{1428,1,1,0.0,UNCOMMON}~{890,2,2,0.0,UNCOMMON}~{890,5,5,0.0,UNCOMMON}~{1309,1,1,0.0,UNCOMMON}~{1281,1,1,0.0,RARE}~{1195,1,1,0.0,RARE}~{1181,1,1,0.0,RARE}~{1303,1,1,0.0,RARE}~{892,2,2,0.0,RARE}~{9185,1,1,0.0,RARE}~{564,2,4,0.0,COMMON}~{562,3,3,0.0,COMMON}~{561,4,4,0.0,COMMON}~{563,2,4,0.0,COMMON}~{560,2,2,0.0,UNCOMMON}~{560,5,5,0.0,UNCOMMON}~{565,2,50,0.0,UNCOMMON}~{558,24,24,0.0,RARE}~{4694,2,2,0.0,RARE}~{5291,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5100,1,1,0.0,COMMON}~{5311,1,1,0.0,COMMON}~{5323,1,1,0.0,COMMON}~{5104,1,1,0.0,COMMON}~{12176,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,RARE}~{5296,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5105,1,1,0.0,RARE}~{5106,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5280,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5281,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,15,15,0.0,COMMON}~{995,465,465,0.0,COMMON}~{447,1,1,0.0,RARE}~{2845,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3151, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2843,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3153, '', '{1157,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{1387,1,1,0.0,COMMON}~{1109,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,UNCOMMON}~{1313,1,1,0.0,RARE}~{4123,1,1,0.0,UNCOMMON}~{562,15,30,0.0,COMMON}~{554,20,90,0.0,COMMON}~{560,3,3,0.0,UNCOMMON}~{995,30,30,0.0,COMMON}~{995,40,40,0.0,COMMON}~{444,1,1,0.0,COMMON}~{453,1,1,0.0,UNCOMMON}~{1993,1,1,0.0,UNCOMMON}~{2815,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.02,ALWAYS}~{12159,1,1,0.056,ALWAYS}~{12160,1,1,0.005,ALWAYS}~{12163,1,1,0.002,ALWAYS}'), +(3167, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3168, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3169, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3170, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3171, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3172, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3173, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3174, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(3175, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3176, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3177, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3178, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3179, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3180, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3181, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3182, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3183, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3184, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3185, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3186, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3187, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3188, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3189, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3190, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3191, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3192, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3193, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3194, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3195, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3196, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3200, '', '{2739,1,1,0.0,RARE}~{31,1,1,0.0,RARE}~{7158,1,1,0.0,RARE,128}~{1215,1,1,0.0,UNCOMMON}~{562,250,250,0.0,COMMON}~{809,300,300,0.0,COMMON}~{556,500,500,0.0,UNCOMMON}~{560,1,125,0.0,UNCOMMON}~{565,75,75,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{2440,1,1,0.0,COMMON}~{2436,1,1,0.0,COMMON}~{2442,1,1,0.0,COMMON}~{2297,3,3,0.0,COMMON}~{265,10,10,0.0,COMMON}~{361,5,5,0.0,UNCOMMON}~{5940,1,1,0.0,UNCOMMON}~{5952,1,1,0.0,UNCOMMON}~{526,4,4,0.0,COMMON}~{530,5,5,0.0,COMMON}~{532,3,3,0.0,COMMON}~{995,7500,7500,0.0,UNCOMMON}~{536,1,1,0.0,UNCOMMON}~{534,2,2,0.0,UNCOMMON}~{1462,1,1,0.0,RARE}~{14669,1,1,0.0,RARE,256}', ''), +(3201, '{592,1,1,0.0,ALWAYS}', '{1397,1,1,0.0,UNCOMMON}~{1393,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{1387,1,1,0.0,UNCOMMON}~{1401,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{556,5,17,0.0,COMMON}~{554,18,45,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{561,4,37,0.0,COMMON}~{4694,2,2,0.0,UNCOMMON}~{560,2,2,0.0,UNCOMMON}~{995,11,200,0.0,COMMON}~{2,3,3,0.0,UNCOMMON}~{569,2,2,0.0,UNCOMMON}~{1781,4,4,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.845,ALWAYS}~{12158,1,1,0.134,ALWAYS}~{12159,1,1,0.011,ALWAYS}~{12160,1,1,0.008,ALWAYS}~{12163,1,1,0.001,ALWAYS}'), +(3202, '{592,1,1,0.0,ALWAYS}', '{1397,1,1,0.0,UNCOMMON}~{1393,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{1387,1,1,0.0,UNCOMMON}~{1401,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{556,5,17,0.0,COMMON}~{554,18,45,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{561,4,37,0.0,COMMON}~{4694,2,2,0.0,UNCOMMON}~{560,2,2,0.0,UNCOMMON}~{995,11,200,0.0,COMMON}~{2,3,3,0.0,UNCOMMON}~{569,2,2,0.0,UNCOMMON}~{1781,4,4,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.845,ALWAYS}~{12158,1,1,0.134,ALWAYS}~{12159,1,1,0.011,ALWAYS}~{12160,1,1,0.008,ALWAYS}~{12163,1,1,0.001,ALWAYS}'), +(3216, '{526,1,1,0.0,ALWAYS}~{1506,1,1,0.0,ALWAYS}~{6065,1,1,0.0,ALWAYS}~{6067,1,1,0.0,ALWAYS}~{6069,1,1,0.0,ALWAYS}~{6068,1,1,0.0,ALWAYS}~{6070,1,1,0.0,ALWAYS}', '', ''), +(3219, '{526,1,1,0.0,ALWAYS}', '{1265,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{2349,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{440,1,1,0.0,COMMON}~{1267,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{561,2,2,0.0,RARE}~{562,2,2,0.0,RARE}~{1139,1,1,0.0,COMMON}~{1375,1,1,0.0,UNCOMMON}~{1363,1,1,0.0,UNCOMMON}~{877,2,2,0.0,UNCOMMON}~{877,11,11,0.0,UNCOMMON}~{995,4,4,0.0,COMMON}~{995,10,10,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1913,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.905,ALWAYS}~{12158,1,1,0.039,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(3220, '{526,1,1,0.0,ALWAYS}', '{1265,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{2349,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{440,1,1,0.0,COMMON}~{1267,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{561,2,2,0.0,RARE}~{562,2,2,0.0,RARE}~{1139,1,1,0.0,COMMON}~{1375,1,1,0.0,UNCOMMON}~{1363,1,1,0.0,UNCOMMON}~{877,2,2,0.0,UNCOMMON}~{877,11,11,0.0,UNCOMMON}~{995,4,4,0.0,COMMON}~{995,10,10,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1913,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.905,ALWAYS}~{12158,1,1,0.039,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(3221, '{526,1,1,0.0,ALWAYS}', '{1265,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{2349,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{440,1,1,0.0,COMMON}~{1267,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{561,2,2,0.0,RARE}~{562,2,2,0.0,RARE}~{1139,1,1,0.0,COMMON}~{1375,1,1,0.0,UNCOMMON}~{1363,1,1,0.0,UNCOMMON}~{877,2,2,0.0,UNCOMMON}~{877,11,11,0.0,UNCOMMON}~{995,4,4,0.0,COMMON}~{995,10,10,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1913,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.905,ALWAYS}~{12158,1,1,0.039,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(3222, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{877,2,12,0.0,COMMON}~{882,7,7,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{995,1,40,0.0,COMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{2702,1,1,0.0,RARE}', ''), +(3223, '{526,1,1,0.0,ALWAYS}', '{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{877,2,12,0.0,COMMON}~{882,7,7,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{995,1,40,0.0,COMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{2713,1,1,0.0,RARE}', ''), +(3224, '{526,1,1,0.0,ALWAYS}', '{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{877,2,12,0.0,COMMON}~{882,7,7,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{995,1,40,0.0,COMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{2707,1,1,0.0,RARE}', ''), +(3225, '{526,1,1,0.0,ALWAYS}', '{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{877,2,12,0.0,COMMON}~{882,7,7,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{995,1,40,0.0,COMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{2705,1,1,0.0,RARE}', ''), +(3226, '{526,1,1,0.0,ALWAYS}', '{877,7,7,0.0,COMMON}~{882,2,12,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{995,1,400,0.0,COMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{2712,1,1,0.0,RARE}', ''), +(3227, '{526,1,1,0.0,ALWAYS}', '{877,7,7,0.0,COMMON}~{882,2,12,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{995,1,400,0.0,COMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{2715,1,1,0.0,RARE}~{2677,1,1,0.0,RARE}', ''), +(3228, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2845,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(3229, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2805,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(3230, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2811,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(3231, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2841,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(3232, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2833,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(3233, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2847,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(3237, '', '{877,2,12,0.0,COMMON}~{882,7,7,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{562,2,4,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,13,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,3,3,0.0,COMMON}~{995,5,5,0.0,COMMON}~{1139,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{2714,1,1,0.0,RARE}', ''), +(3238, '{526,1,1,0.0,ALWAYS}', '{562,2,2,0.0,UNCOMMON}~{562,4,4,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{882,7,7,0.0,UNCOMMON}~{877,2,12,0.0,COMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,3,3,0.0,COMMON}~{995,5,5,0.0,COMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{2707,1,1,0.0,RARE}', ''), +(3239, '{526,1,1,0.0,ALWAYS}', '{882,7,7,0.0,UNCOMMON}~{877,2,12,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{562,2,2,0.0,UNCOMMON}~{562,4,4,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,3,3,0.0,UNCOMMON}~{995,5,5,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{2680,1,1,0.0,UNCOMMON}', ''), +(3240, '', '{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,3,3,0.0,UNCOMMON}~{995,5,5,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{2684,1,1,0.0,RARE}', ''), +(3241, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2819,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(3242, '{526,1,1,0.0,ALWAYS}', '{557,10,10,0.0,COMMON}~{557,18,18,0.0,COMMON}~{556,10,10,0.0,COMMON}~{556,18,18,0.0,COMMON}~{555,10,10,0.0,COMMON}~{555,18,18,0.0,COMMON}~{554,10,10,0.0,COMMON}~{554,18,18,0.0,COMMON}~{558,10,10,0.0,COMMON}~{558,18,18,0.0,COMMON}~{559,10,10,0.0,COMMON}~{559,18,18,0.0,COMMON}~{562,4,4,0.0,COMMON}~{562,5,5,0.0,COMMON}~{561,2,5,0.0,UNCOMMON}~{563,3,3,0.0,COMMON}~{564,2,2,0.0,UNCOMMON}~{564,4,4,0.0,UNCOMMON}~{565,2,2,0.0,COMMON}~{565,4,4,0.0,COMMON}~{995,1,30,0.0,COMMON}~{1379,1,1,0.0,COMMON}~{1381,1,1,0.0,COMMON}~{1444,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,COMMON}~{1440,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{1383,3,3,0.0,RARE}', ''), +(3243, '{526,1,1,0.0,ALWAYS}', '{557,10,10,0.0,COMMON}~{557,18,18,0.0,COMMON}~{556,10,10,0.0,COMMON}~{556,18,18,0.0,COMMON}~{555,10,10,0.0,COMMON}~{555,18,18,0.0,COMMON}~{554,10,10,0.0,COMMON}~{554,18,18,0.0,COMMON}~{558,10,10,0.0,COMMON}~{558,18,18,0.0,COMMON}~{559,10,10,0.0,COMMON}~{559,18,18,0.0,COMMON}~{562,4,4,0.0,COMMON}~{562,5,5,0.0,COMMON}~{561,2,5,0.0,UNCOMMON}~{563,3,3,0.0,COMMON}~{564,2,2,0.0,UNCOMMON}~{564,4,4,0.0,UNCOMMON}~{565,2,2,0.0,COMMON}~{565,4,4,0.0,COMMON}~{995,1,30,0.0,COMMON}~{1379,1,1,0.0,COMMON}~{1381,1,1,0.0,COMMON}~{1444,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,COMMON}~{1440,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{1383,3,3,0.0,RARE}', ''), +(3244, '{526,1,1,0.0,ALWAYS}', '{557,10,10,0.0,COMMON}~{557,18,18,0.0,COMMON}~{556,10,10,0.0,COMMON}~{556,18,18,0.0,COMMON}~{555,10,10,0.0,COMMON}~{555,18,18,0.0,COMMON}~{554,10,10,0.0,COMMON}~{554,18,18,0.0,COMMON}~{558,10,10,0.0,COMMON}~{558,18,18,0.0,COMMON}~{559,10,10,0.0,COMMON}~{559,18,18,0.0,COMMON}~{562,4,4,0.0,COMMON}~{562,5,5,0.0,COMMON}~{561,2,5,0.0,UNCOMMON}~{563,3,3,0.0,COMMON}~{564,2,2,0.0,UNCOMMON}~{564,4,4,0.0,UNCOMMON}~{565,2,2,0.0,COMMON}~{565,4,4,0.0,COMMON}~{995,1,30,0.0,COMMON}~{1379,1,1,0.0,COMMON}~{1381,1,1,0.0,COMMON}~{1444,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,COMMON}~{1440,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{1383,3,3,0.0,RARE}', ''), +(3245, '{526,1,1,0.0,ALWAYS}', '{557,10,10,0.0,COMMON}~{557,18,18,0.0,COMMON}~{556,10,10,0.0,COMMON}~{556,18,18,0.0,COMMON}~{555,10,10,0.0,COMMON}~{555,18,18,0.0,COMMON}~{554,10,10,0.0,COMMON}~{554,18,18,0.0,COMMON}~{558,10,10,0.0,COMMON}~{558,18,18,0.0,COMMON}~{559,10,10,0.0,COMMON}~{559,18,18,0.0,COMMON}~{562,4,4,0.0,COMMON}~{562,5,5,0.0,COMMON}~{561,2,5,0.0,UNCOMMON}~{563,3,3,0.0,COMMON}~{564,2,2,0.0,UNCOMMON}~{564,4,4,0.0,UNCOMMON}~{565,2,2,0.0,COMMON}~{565,4,4,0.0,COMMON}~{995,1,30,0.0,COMMON}~{1379,1,1,0.0,COMMON}~{1381,1,1,0.0,COMMON}~{1444,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,COMMON}~{1440,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{1383,3,3,0.0,RARE}', ''), +(3246, '{526,1,1,0.0,ALWAYS}', '{557,2,5,0.0,UNCOMMON}~{562,2,6,0.0,UNCOMMON}~{563,1,2,0.0,UNCOMMON}~{558,4,10,0.0,UNCOMMON}~{554,5,5,0.0,UNCOMMON}~{554,8,8,0.0,UNCOMMON}~{1379,1,1,0.0,UNCOMMON}~{1351,1,1,0.0,COMMON}~{1375,1,1,0.0,COMMON}~{882,5,18,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{884,8,8,0.0,COMMON}~{995,58,315,0.0,COMMON}~{440,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{1917,1,1,0.0,COMMON}~{2142,1,1,0.0,COMMON}~{948,1,1,0.0,COMMON}~{1592,1,1,0.0,UNCOMMON}~{9004,1,1,0.0,RARE}~{1595,1,1,0.0,UNCOMMON}~{1619,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{2702,1,1,0.0,RARE}~{956,1,1,0.0,RARE}~{2349,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.9400000000000001,ALWAYS}~{12158,1,1,0.041,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.003,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(3247, '{526,1,1,0.0,ALWAYS}', '{557,2,5,0.0,UNCOMMON}~{562,2,6,0.0,UNCOMMON}~{563,1,2,0.0,UNCOMMON}~{558,4,10,0.0,UNCOMMON}~{554,5,5,0.0,UNCOMMON}~{554,8,8,0.0,UNCOMMON}~{1379,1,1,0.0,UNCOMMON}~{1351,1,1,0.0,COMMON}~{1375,1,1,0.0,COMMON}~{882,5,18,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{884,8,8,0.0,COMMON}~{995,58,315,0.0,COMMON}~{440,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{1917,1,1,0.0,COMMON}~{2142,1,1,0.0,COMMON}~{948,1,1,0.0,COMMON}~{1592,1,1,0.0,UNCOMMON}~{9004,1,1,0.0,RARE}~{1595,1,1,0.0,UNCOMMON}~{1619,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{2679,1,1,0.0,RARE}~{956,1,1,0.0,RARE}~{2349,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.9400000000000001,ALWAYS}~{12158,1,1,0.041,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.003,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(3248, '{526,1,1,0.0,ALWAYS}', '{557,2,5,0.0,UNCOMMON}~{562,2,6,0.0,UNCOMMON}~{563,1,2,0.0,UNCOMMON}~{558,1,10,0.0,UNCOMMON}~{554,5,5,0.0,UNCOMMON}~{554,8,8,0.0,UNCOMMON}~{1379,1,1,0.0,UNCOMMON}~{1351,1,1,0.0,COMMON}~{1375,1,1,0.0,COMMON}~{882,5,18,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{884,8,8,0.0,COMMON}~{995,58,315,0.0,COMMON}~{440,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{1917,1,1,0.0,COMMON}~{2142,1,1,0.0,COMMON}~{948,1,1,0.0,COMMON}~{1592,1,1,0.0,UNCOMMON}~{9004,1,1,0.0,RARE}~{1595,1,1,0.0,UNCOMMON}~{1619,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{2682,1,1,0.0,RARE}~{956,1,1,0.0,RARE}~{2349,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.9400000000000001,ALWAYS}~{12158,1,1,0.041,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.003,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(3249, '{526,1,1,0.0,ALWAYS}', '{557,2,5,0.0,UNCOMMON}~{562,2,6,0.0,UNCOMMON}~{563,1,2,0.0,UNCOMMON}~{558,1,10,0.0,UNCOMMON}~{554,5,5,0.0,UNCOMMON}~{554,8,8,0.0,UNCOMMON}~{1379,1,1,0.0,UNCOMMON}~{1351,1,1,0.0,COMMON}~{1375,1,1,0.0,COMMON}~{882,5,18,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{884,8,8,0.0,COMMON}~{995,58,315,0.0,COMMON}~{440,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{1917,1,1,0.0,COMMON}~{2142,1,1,0.0,COMMON}~{948,1,1,0.0,COMMON}~{1592,1,1,0.0,UNCOMMON}~{9004,1,1,0.0,RARE}~{1595,1,1,0.0,UNCOMMON}~{1619,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{2696,1,1,0.0,RARE}~{956,1,1,0.0,RARE}~{2349,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.9400000000000001,ALWAYS}~{12158,1,1,0.041,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.003,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(3250, '{526,1,1,0.0,ALWAYS}', '{557,2,5,0.0,UNCOMMON}~{562,2,6,0.0,UNCOMMON}~{563,1,2,0.0,UNCOMMON}~{558,1,10,0.0,UNCOMMON}~{554,5,5,0.0,UNCOMMON}~{554,8,8,0.0,UNCOMMON}~{1379,1,1,0.0,UNCOMMON}~{1351,1,1,0.0,COMMON}~{1375,1,1,0.0,COMMON}~{882,5,18,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{884,8,8,0.0,COMMON}~{995,58,315,0.0,COMMON}~{440,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{1917,1,1,0.0,COMMON}~{2142,1,1,0.0,COMMON}~{948,1,1,0.0,COMMON}~{1592,1,1,0.0,UNCOMMON}~{9004,1,1,0.0,RARE}~{1595,1,1,0.0,UNCOMMON}~{1619,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{2713,1,1,0.0,RARE}~{956,1,1,0.0,RARE}~{2349,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.9400000000000001,ALWAYS}~{12158,1,1,0.041,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.003,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(3251, '{526,1,1,0.0,ALWAYS}', '{557,2,5,0.0,UNCOMMON}~{562,2,6,0.0,UNCOMMON}~{563,1,2,0.0,UNCOMMON}~{558,4,10,0.0,UNCOMMON}~{554,5,5,0.0,UNCOMMON}~{554,8,8,0.0,UNCOMMON}~{1379,1,1,0.0,UNCOMMON}~{1351,1,1,0.0,COMMON}~{1375,1,1,0.0,COMMON}~{882,5,18,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{884,8,8,0.0,COMMON}~{995,58,315,0.0,COMMON}~{440,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{1917,1,1,0.0,COMMON}~{2142,1,1,0.0,COMMON}~{948,1,1,0.0,COMMON}~{1592,1,1,0.0,UNCOMMON}~{9004,1,1,0.0,RARE}~{1595,1,1,0.0,UNCOMMON}~{1619,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{2686,1,1,0.0,RARE}~{956,1,1,0.0,RARE}~{2349,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.9400000000000001,ALWAYS}~{12158,1,1,0.041,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.003,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(3252, '{526,1,1,0.0,ALWAYS}', '{557,2,5,0.0,UNCOMMON}~{562,2,6,0.0,UNCOMMON}~{563,1,2,0.0,UNCOMMON}~{558,4,10,0.0,UNCOMMON}~{554,5,5,0.0,UNCOMMON}~{554,8,8,0.0,UNCOMMON}~{1379,1,1,0.0,UNCOMMON}~{1351,1,1,0.0,COMMON}~{1375,1,1,0.0,COMMON}~{882,5,18,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{884,8,8,0.0,COMMON}~{995,58,315,0.0,COMMON}~{440,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{1917,1,1,0.0,COMMON}~{2142,1,1,0.0,COMMON}~{948,1,1,0.0,COMMON}~{1592,1,1,0.0,UNCOMMON}~{9004,1,1,0.0,RARE}~{1595,1,1,0.0,UNCOMMON}~{1619,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{2698,1,1,0.0,RARE}~{956,1,1,0.0,RARE}~{2349,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.9400000000000001,ALWAYS}~{12158,1,1,0.041,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.003,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(3253, '{526,1,1,0.0,ALWAYS}', '{557,2,5,0.0,UNCOMMON}~{562,2,6,0.0,UNCOMMON}~{563,1,2,0.0,UNCOMMON}~{558,4,10,0.0,UNCOMMON}~{554,5,5,0.0,UNCOMMON}~{554,8,8,0.0,UNCOMMON}~{1379,1,1,0.0,UNCOMMON}~{1351,1,1,0.0,COMMON}~{1375,1,1,0.0,COMMON}~{882,5,18,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{884,8,8,0.0,COMMON}~{995,58,315,0.0,COMMON}~{440,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{1917,1,1,0.0,COMMON}~{2142,1,1,0.0,COMMON}~{948,1,1,0.0,COMMON}~{1592,1,1,0.0,UNCOMMON}~{9004,1,1,0.0,RARE}~{1595,1,1,0.0,UNCOMMON}~{1619,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{2690,1,1,0.0,RARE}~{956,1,1,0.0,RARE}~{2349,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.9400000000000001,ALWAYS}~{12158,1,1,0.041,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.003,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(3255, '{526,1,1,0.0,ALWAYS}', '{557,2,5,0.0,UNCOMMON}~{562,2,6,0.0,UNCOMMON}~{563,1,2,0.0,UNCOMMON}~{558,4,10,0.0,UNCOMMON}~{554,5,5,0.0,UNCOMMON}~{554,8,8,0.0,UNCOMMON}~{1379,1,1,0.0,UNCOMMON}~{1351,1,1,0.0,COMMON}~{1375,1,1,0.0,COMMON}~{882,5,18,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{884,8,8,0.0,COMMON}~{995,58,315,0.0,COMMON}~{440,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{1917,1,1,0.0,COMMON}~{2142,1,1,0.0,COMMON}~{948,1,1,0.0,COMMON}~{1592,1,1,0.0,UNCOMMON}~{9004,1,1,0.0,RARE}~{1595,1,1,0.0,UNCOMMON}~{1619,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{2694,1,1,0.0,RARE}~{956,1,1,0.0,RARE}~{2349,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.9400000000000001,ALWAYS}~{12158,1,1,0.041,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.003,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(3256, '{526,1,1,0.0,ALWAYS}', '{557,2,5,0.0,UNCOMMON}~{562,2,6,0.0,UNCOMMON}~{563,1,2,0.0,UNCOMMON}~{558,4,10,0.0,UNCOMMON}~{554,5,5,0.0,UNCOMMON}~{554,8,8,0.0,UNCOMMON}~{1379,1,1,0.0,UNCOMMON}~{1351,1,1,0.0,COMMON}~{1375,1,1,0.0,COMMON}~{882,5,18,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{884,8,8,0.0,COMMON}~{995,58,315,0.0,COMMON}~{440,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{1917,1,1,0.0,COMMON}~{2142,1,1,0.0,COMMON}~{948,1,1,0.0,COMMON}~{1592,1,1,0.0,UNCOMMON}~{9004,1,1,0.0,RARE}~{1595,1,1,0.0,UNCOMMON}~{1619,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{2692,1,1,0.0,RARE}~{956,1,1,0.0,RARE}~{2349,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.9400000000000001,ALWAYS}~{12158,1,1,0.041,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.003,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(3257, '{526,1,1,0.0,ALWAYS}', '{557,2,5,0.0,UNCOMMON}~{562,2,6,0.0,UNCOMMON}~{563,1,2,0.0,UNCOMMON}~{558,4,10,0.0,UNCOMMON}~{554,5,5,0.0,UNCOMMON}~{554,8,8,0.0,UNCOMMON}~{1379,1,1,0.0,UNCOMMON}~{1351,1,1,0.0,COMMON}~{1375,1,1,0.0,COMMON}~{882,5,18,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{884,8,8,0.0,COMMON}~{995,58,315,0.0,COMMON}~{440,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{1917,1,1,0.0,COMMON}~{2142,1,1,0.0,COMMON}~{948,1,1,0.0,COMMON}~{1592,1,1,0.0,UNCOMMON}~{9004,1,1,0.0,RARE}~{1595,1,1,0.0,UNCOMMON}~{1619,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{2706,1,1,0.0,RARE}~{956,1,1,0.0,RARE}~{2349,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.9400000000000001,ALWAYS}~{12158,1,1,0.041,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.003,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(3258, '{526,1,1,0.0,ALWAYS}', '{557,2,5,0.0,UNCOMMON}~{562,2,6,0.0,UNCOMMON}~{563,1,2,0.0,UNCOMMON}~{558,4,10,0.0,UNCOMMON}~{554,5,5,0.0,UNCOMMON}~{554,8,8,0.0,UNCOMMON}~{1379,1,1,0.0,UNCOMMON}~{1351,1,1,0.0,COMMON}~{1375,1,1,0.0,COMMON}~{882,5,18,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{884,8,8,0.0,COMMON}~{995,58,315,0.0,COMMON}~{440,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{1917,1,1,0.0,COMMON}~{2142,1,1,0.0,COMMON}~{948,1,1,0.0,COMMON}~{1592,1,1,0.0,UNCOMMON}~{9004,1,1,0.0,RARE}~{1595,1,1,0.0,UNCOMMON}~{1619,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{2690,1,1,0.0,RARE}~{956,1,1,0.0,RARE}~{2349,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.9400000000000001,ALWAYS}~{12158,1,1,0.041,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.003,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(3259, '{526,1,1,0.0,ALWAYS}', '{557,2,5,0.0,UNCOMMON}~{562,2,6,0.0,UNCOMMON}~{563,1,2,0.0,UNCOMMON}~{558,4,10,0.0,UNCOMMON}~{554,5,5,0.0,UNCOMMON}~{554,8,8,0.0,UNCOMMON}~{1379,1,1,0.0,UNCOMMON}~{1351,1,1,0.0,COMMON}~{1375,1,1,0.0,COMMON}~{882,5,18,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{884,8,8,0.0,COMMON}~{995,58,315,0.0,COMMON}~{440,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{1917,1,1,0.0,COMMON}~{2142,1,1,0.0,COMMON}~{948,1,1,0.0,COMMON}~{1592,1,1,0.0,UNCOMMON}~{9004,1,1,0.0,RARE}~{1595,1,1,0.0,UNCOMMON}~{1619,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{2710,1,1,0.0,RARE}~{956,1,1,0.0,RARE}~{2349,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.9400000000000001,ALWAYS}~{12158,1,1,0.041,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.003,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(3260, '{526,1,1,0.0,ALWAYS}', '{557,2,5,0.0,UNCOMMON}~{562,2,6,0.0,UNCOMMON}~{563,1,2,0.0,UNCOMMON}~{558,4,10,0.0,UNCOMMON}~{554,5,5,0.0,UNCOMMON}~{554,8,8,0.0,UNCOMMON}~{1379,1,1,0.0,UNCOMMON}~{1351,1,1,0.0,COMMON}~{1375,1,1,0.0,COMMON}~{882,5,18,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{884,8,8,0.0,COMMON}~{995,58,315,0.0,COMMON}~{440,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{1917,1,1,0.0,COMMON}~{2142,1,1,0.0,COMMON}~{948,1,1,0.0,COMMON}~{1592,1,1,0.0,UNCOMMON}~{9004,1,1,0.0,RARE}~{1595,1,1,0.0,UNCOMMON}~{1619,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{2700,1,1,0.0,RARE}~{956,1,1,0.0,RARE}~{2349,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.9400000000000001,ALWAYS}~{12158,1,1,0.041,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.003,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(3261, '{526,1,1,0.0,ALWAYS}', '{557,2,5,0.0,UNCOMMON}~{562,2,6,0.0,UNCOMMON}~{563,1,2,0.0,UNCOMMON}~{558,4,10,0.0,UNCOMMON}~{554,5,5,0.0,UNCOMMON}~{554,8,8,0.0,UNCOMMON}~{1379,1,1,0.0,UNCOMMON}~{1351,1,1,0.0,COMMON}~{1375,1,1,0.0,COMMON}~{882,5,18,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{884,8,8,0.0,COMMON}~{995,58,315,0.0,COMMON}~{440,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{1917,1,1,0.0,COMMON}~{2142,1,1,0.0,COMMON}~{948,1,1,0.0,COMMON}~{1592,1,1,0.0,UNCOMMON}~{9004,1,1,0.0,RARE}~{1595,1,1,0.0,UNCOMMON}~{1619,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{2683,1,1,0.0,RARE}~{956,1,1,0.0,RARE}~{2349,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.9400000000000001,ALWAYS}~{12158,1,1,0.041,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.003,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(3262, '{526,1,1,0.0,ALWAYS}', '{557,2,5,0.0,UNCOMMON}~{562,2,6,0.0,UNCOMMON}~{563,1,2,0.0,UNCOMMON}~{558,4,10,0.0,UNCOMMON}~{554,5,5,0.0,UNCOMMON}~{554,8,8,0.0,UNCOMMON}~{1379,1,1,0.0,UNCOMMON}~{1351,1,1,0.0,COMMON}~{1375,1,1,0.0,COMMON}~{882,5,18,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{884,8,8,0.0,COMMON}~{995,58,315,0.0,COMMON}~{440,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{1917,1,1,0.0,COMMON}~{2142,1,1,0.0,COMMON}~{948,1,1,0.0,COMMON}~{1592,1,1,0.0,UNCOMMON}~{9004,1,1,0.0,RARE}~{1595,1,1,0.0,UNCOMMON}~{1619,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{2684,1,1,0.0,RARE}~{956,1,1,0.0,RARE}~{2349,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.9400000000000001,ALWAYS}~{12158,1,1,0.041,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.003,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(3263, '{526,1,1,0.0,ALWAYS}', '{557,2,5,0.0,UNCOMMON}~{562,2,6,0.0,UNCOMMON}~{563,1,2,0.0,UNCOMMON}~{558,4,10,0.0,UNCOMMON}~{554,5,5,0.0,UNCOMMON}~{554,8,8,0.0,UNCOMMON}~{1379,1,1,0.0,UNCOMMON}~{1351,1,1,0.0,COMMON}~{1375,1,1,0.0,COMMON}~{882,5,18,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{884,8,8,0.0,COMMON}~{995,58,315,0.0,COMMON}~{440,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{1917,1,1,0.0,COMMON}~{2142,1,1,0.0,COMMON}~{948,1,1,0.0,COMMON}~{1592,1,1,0.0,UNCOMMON}~{9004,1,1,0.0,RARE}~{1595,1,1,0.0,UNCOMMON}~{1619,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{2701,1,1,0.0,RARE}~{956,1,1,0.0,RARE}~{2349,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.9400000000000001,ALWAYS}~{12158,1,1,0.041,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.003,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(3264, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2696,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(3265, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2705,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(3266, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2690,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(3267, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2695,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(3268, '{526,1,1,0.0,ALWAYS}', '{1265,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{2349,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{440,1,1,0.0,COMMON}~{1267,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{561,2,2,0.0,RARE}~{562,2,2,0.0,RARE}~{1139,1,1,0.0,COMMON}~{1375,1,1,0.0,UNCOMMON}~{1363,1,1,0.0,UNCOMMON}~{877,2,2,0.0,UNCOMMON}~{877,11,11,0.0,UNCOMMON}~{995,4,4,0.0,COMMON}~{995,10,10,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1913,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.905,ALWAYS}~{12158,1,1,0.039,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(3269, '{526,1,1,0.0,ALWAYS}', '{1265,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{2349,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{440,1,1,0.0,COMMON}~{1267,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{561,2,2,0.0,RARE}~{562,2,2,0.0,RARE}~{1139,1,1,0.0,COMMON}~{1375,1,1,0.0,UNCOMMON}~{1363,1,1,0.0,UNCOMMON}~{877,2,2,0.0,UNCOMMON}~{877,11,11,0.0,UNCOMMON}~{995,4,4,0.0,COMMON}~{995,10,10,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1913,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.905,ALWAYS}~{12158,1,1,0.039,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.006,ALWAYS}'); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(3270, '{526,1,1,0.0,ALWAYS}', '{1265,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{2349,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{440,1,1,0.0,COMMON}~{1267,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{561,2,2,0.0,RARE}~{562,2,2,0.0,RARE}~{1139,1,1,0.0,COMMON}~{1375,1,1,0.0,UNCOMMON}~{1363,1,1,0.0,UNCOMMON}~{877,2,2,0.0,UNCOMMON}~{877,11,11,0.0,UNCOMMON}~{995,4,4,0.0,COMMON}~{995,10,10,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1913,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.905,ALWAYS}~{12158,1,1,0.039,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(3271, '{526,1,1,0.0,ALWAYS}', '{1265,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{2349,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{440,1,1,0.0,COMMON}~{1267,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{561,2,2,0.0,RARE}~{562,2,2,0.0,RARE}~{1139,1,1,0.0,COMMON}~{1375,1,1,0.0,UNCOMMON}~{1363,1,1,0.0,UNCOMMON}~{877,2,2,0.0,UNCOMMON}~{877,11,11,0.0,UNCOMMON}~{995,4,4,0.0,COMMON}~{995,10,10,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1913,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.905,ALWAYS}~{12158,1,1,0.039,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(3272, '{526,1,1,0.0,ALWAYS}', '{1265,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{2349,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{440,1,1,0.0,COMMON}~{1267,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{561,2,2,0.0,RARE}~{562,2,2,0.0,RARE}~{1139,1,1,0.0,COMMON}~{1375,1,1,0.0,UNCOMMON}~{1363,1,1,0.0,UNCOMMON}~{877,2,2,0.0,UNCOMMON}~{877,11,11,0.0,UNCOMMON}~{995,4,4,0.0,COMMON}~{995,10,10,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1913,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.905,ALWAYS}~{12158,1,1,0.039,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(3273, '{526,1,1,0.0,ALWAYS}', '{1265,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{2349,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{440,1,1,0.0,COMMON}~{1267,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{561,2,2,0.0,RARE}~{562,2,2,0.0,RARE}~{1139,1,1,0.0,COMMON}~{1375,1,1,0.0,UNCOMMON}~{1363,1,1,0.0,UNCOMMON}~{877,2,2,0.0,UNCOMMON}~{877,11,11,0.0,UNCOMMON}~{995,4,4,0.0,COMMON}~{995,10,10,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1913,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.905,ALWAYS}~{12158,1,1,0.039,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(3274, '{526,1,1,0.0,ALWAYS}', '{1265,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{2349,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{440,1,1,0.0,COMMON}~{1267,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{561,2,2,0.0,RARE}~{562,2,2,0.0,RARE}~{1139,1,1,0.0,COMMON}~{1375,1,1,0.0,UNCOMMON}~{1363,1,1,0.0,UNCOMMON}~{877,2,2,0.0,UNCOMMON}~{877,11,11,0.0,UNCOMMON}~{995,4,4,0.0,COMMON}~{995,10,10,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1913,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.905,ALWAYS}~{12158,1,1,0.039,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(3275, '{526,1,1,0.0,ALWAYS}', '{1265,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{2349,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{440,1,1,0.0,COMMON}~{1267,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{561,2,2,0.0,RARE}~{562,2,2,0.0,RARE}~{1139,1,1,0.0,COMMON}~{1375,1,1,0.0,UNCOMMON}~{1363,1,1,0.0,UNCOMMON}~{877,2,2,0.0,UNCOMMON}~{877,11,11,0.0,UNCOMMON}~{995,4,4,0.0,COMMON}~{995,10,10,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1913,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.905,ALWAYS}~{12158,1,1,0.039,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(3276, '{526,1,1,0.0,ALWAYS}', '{562,2,2,0.0,UNCOMMON}~{561,2,2,0.0,UNCOMMON}~{1139,1,1,0.0,COMMON}~{1375,1,1,0.0,UNCOMMON}~{877,6,6,0.0,UNCOMMON}~{1337,1,1,0.0,UNCOMMON}~{1265,1,1,0.0,UNCOMMON}~{1363,1,1,0.0,UNCOMMON}~{1341,1,1,0.0,UNCOMMON}~{995,4,42,0.0,COMMON}~{436,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{2347,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2819,1,1,0.0,UNCOMMON}~{3801,1,1,0.0,UNCOMMON}~{1929,1,1,0.0,UNCOMMON}~{1592,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.665,ALWAYS}~{12158,1,1,0.065,ALWAYS}~{12159,1,1,0.125,ALWAYS}~{12160,1,1,0.011,ALWAYS}~{12163,1,1,0.133,ALWAYS}'), +(3277, '{526,1,1,0.0,ALWAYS}', '{562,2,2,0.0,UNCOMMON}~{561,2,2,0.0,UNCOMMON}~{1139,1,1,0.0,COMMON}~{1375,1,1,0.0,UNCOMMON}~{877,6,6,0.0,UNCOMMON}~{1337,1,1,0.0,UNCOMMON}~{1265,1,1,0.0,UNCOMMON}~{1363,1,1,0.0,UNCOMMON}~{1341,1,1,0.0,UNCOMMON}~{995,4,42,0.0,COMMON}~{436,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{2347,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2803,1,1,0.0,UNCOMMON}~{3801,1,1,0.0,UNCOMMON}~{1929,1,1,0.0,UNCOMMON}~{1592,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.665,ALWAYS}~{12158,1,1,0.065,ALWAYS}~{12159,1,1,0.125,ALWAYS}~{12160,1,1,0.011,ALWAYS}~{12163,1,1,0.133,ALWAYS}'), +(3278, '{526,1,1,0.0,ALWAYS}', '{562,2,2,0.0,UNCOMMON}~{561,2,2,0.0,UNCOMMON}~{1139,1,1,0.0,COMMON}~{1375,1,1,0.0,UNCOMMON}~{877,6,6,0.0,UNCOMMON}~{1337,1,1,0.0,UNCOMMON}~{1265,1,1,0.0,UNCOMMON}~{1363,1,1,0.0,UNCOMMON}~{1341,1,1,0.0,UNCOMMON}~{995,4,42,0.0,COMMON}~{436,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{2347,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2853,1,1,0.0,UNCOMMON}~{3801,1,1,0.0,UNCOMMON}~{1929,1,1,0.0,UNCOMMON}~{1592,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.665,ALWAYS}~{12158,1,1,0.065,ALWAYS}~{12159,1,1,0.125,ALWAYS}~{12160,1,1,0.011,ALWAYS}~{12163,1,1,0.133,ALWAYS}'), +(3279, '{526,1,1,0.0,ALWAYS}', '{562,2,2,0.0,UNCOMMON}~{561,2,2,0.0,UNCOMMON}~{1139,1,1,0.0,COMMON}~{1375,1,1,0.0,UNCOMMON}~{877,6,6,0.0,UNCOMMON}~{1337,1,1,0.0,UNCOMMON}~{1265,1,1,0.0,UNCOMMON}~{1363,1,1,0.0,UNCOMMON}~{1341,1,1,0.0,UNCOMMON}~{995,4,42,0.0,COMMON}~{436,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{2347,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2803,1,1,0.0,UNCOMMON}~{3801,1,1,0.0,UNCOMMON}~{1929,1,1,0.0,UNCOMMON}~{1592,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.665,ALWAYS}~{12158,1,1,0.065,ALWAYS}~{12159,1,1,0.125,ALWAYS}~{12160,1,1,0.011,ALWAYS}~{12163,1,1,0.133,ALWAYS}'), +(3291, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2849,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3294, '{526,1,1,0.0,ALWAYS}', '{1265,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{2349,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{440,1,1,0.0,COMMON}~{1267,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{561,2,2,0.0,RARE}~{562,2,2,0.0,RARE}~{1139,1,1,0.0,COMMON}~{1375,1,1,0.0,UNCOMMON}~{1363,1,1,0.0,UNCOMMON}~{877,2,2,0.0,UNCOMMON}~{877,11,11,0.0,UNCOMMON}~{995,4,4,0.0,COMMON}~{995,10,10,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1913,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.905,ALWAYS}~{12158,1,1,0.039,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(3295, '{526,1,1,0.0,ALWAYS}', '{1265,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{2349,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{440,1,1,0.0,COMMON}~{1267,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{561,2,2,0.0,RARE}~{562,2,2,0.0,RARE}~{1139,1,1,0.0,COMMON}~{1375,1,1,0.0,UNCOMMON}~{1363,1,1,0.0,UNCOMMON}~{877,2,2,0.0,UNCOMMON}~{877,11,11,0.0,UNCOMMON}~{995,4,4,0.0,COMMON}~{995,10,10,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1913,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.905,ALWAYS}~{12158,1,1,0.039,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(3300, '{526,1,1,0.0,ALWAYS}~{4517,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{215,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{5004,1,1,0.0,UNCOMMON}~{5004,5,5,0.0,UNCOMMON}~{555,6,6,0.0,COMMON}~{11766,1,1,0.0,UNCOMMON}~{11767,1,1,0.0,UNCOMMON}~{11768,1,1,0.0,UNCOMMON}~{11769,1,1,0.0,UNCOMMON}~{11764,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(3309, '{526,1,1,0.0,ALWAYS}~{1739,1,1,0.0,ALWAYS}~{2132,1,1,0.0,ALWAYS}', '', '{0,1,1,0.9500000000000001,ALWAYS}~{12158,1,1,0.008,ALWAYS}~{12159,1,1,0.038,ALWAYS}~{12160,1,1,0.002,ALWAYS}~{12163,1,1,0.001,ALWAYS}'), +(3340, '{532,1,1,0.0,ALWAYS}~{7416,1,1,0.0,ALWAYS}~{7418,1,6,0.0,ALWAYS}', '{556,105,105,0.0,COMMON}~{554,105,105,0.0,COMMON}~{565,15,15,0.0,COMMON}~{560,7,7,0.0,COMMON}~{563,15,15,0.0,UNCOMMON}~{884,690,690,0.0,UNCOMMON}~{1301,1,1,0.0,COMMON}~{1355,1,1,0.0,COMMON}~{1369,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,RARE}~{1121,1,1,0.0,COMMON}~{1147,1,1,0.0,COMMON}~{1725,1,1,0.0,COMMON}~{1185,1,1,0.0,UNCOMMON}~{2359,1,1,0.0,RARE}~{385,1,5,0.0,UNCOMMON}~{1516,100,100,0.0,UNCOMMON}~{2735,1,1,0.0,RARE}~{413,1,1,0.0,RARE}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.705,ALWAYS}~{12158,1,1,0.09,ALWAYS}~{12159,1,1,0.11,ALWAYS}~{12160,1,1,0.07,ALWAYS}~{12163,1,1,0.025,ALWAYS}'), +(3346, '{592,1,1,0.0,ALWAYS}', '{561,2,2,0.0,UNCOMMON}~{563,10,50,0.0,UNCOMMON}~{557,15,15,0.0,UNCOMMON}~{5323,1,6,0.0,COMMON}~{5305,1,1,0.0,UNCOMMON}~{5308,3,3,0.0,UNCOMMON}~{5318,4,4,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5098,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5322,3,3,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5307,3,3,0.0,UNCOMMON}~{5319,4,4,0.0,UNCOMMON}~{12176,1,1,0.0,RARE}~{5309,1,1,0.0,RARE}~{5306,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5321,1,3,0.0,RARE}~{5096,1,1,0.0,RARE}~{5099,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{1353,1,1,0.0,UNCOMMON}~{1311,1,1,0.0,UNCOMMON}~{1159,1,1,0.0,RARE}~{1163,1,1,0.0,RARE}~{7432,1,1,0.0,COMMON}~{995,44,44,0.0,UNCOMMON}~{995,64,64,0.0,UNCOMMON}~{6035,1,3,0.0,UNCOMMON}~{2970,1,3,0.0,UNCOMMON}~{434,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(3347, '{592,1,1,0.0,ALWAYS}', '{561,2,2,0.0,UNCOMMON}~{563,10,50,0.0,UNCOMMON}~{557,15,15,0.0,UNCOMMON}~{5323,1,6,0.0,COMMON}~{5305,1,1,0.0,UNCOMMON}~{5308,3,3,0.0,UNCOMMON}~{5318,4,4,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5098,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5322,3,3,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5307,3,3,0.0,UNCOMMON}~{5319,4,4,0.0,UNCOMMON}~{12176,1,1,0.0,RARE}~{5309,1,1,0.0,RARE}~{5306,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5321,1,3,0.0,RARE}~{5096,1,1,0.0,RARE}~{5099,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{1353,1,1,0.0,UNCOMMON}~{1311,1,1,0.0,UNCOMMON}~{1159,1,1,0.0,RARE}~{1163,1,1,0.0,RARE}~{7432,1,1,0.0,COMMON}~{995,44,44,0.0,UNCOMMON}~{995,64,64,0.0,UNCOMMON}~{6035,1,3,0.0,UNCOMMON}~{2970,1,3,0.0,UNCOMMON}~{434,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(3348, '{526,1,1,0.0,ALWAYS}', '{555,20,47,0.0,COMMON}~{559,9,24,0.0,COMMON}~{558,5,5,0.0,COMMON}~{558,7,7,0.0,COMMON}~{562,2,5,0.0,UNCOMMON}~{561,4,7,0.0,UNCOMMON}~{563,2,3,0.0,RARE}~{565,2,3,0.0,RARE}~{1293,1,1,0.0,COMMON}~{1281,1,1,0.0,COMMON}~{888,5,5,0.0,COMMON}~{888,7,7,0.0,COMMON}~{890,2,5,0.0,UNCOMMON}~{890,7,7,0.0,UNCOMMON}~{1141,1,1,0.0,COMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{5318,4,4,0.0,COMMON}~{5322,3,3,0.0,COMMON}~{5324,4,4,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5320,3,3,0.0,UNCOMMON}~{5321,2,2,0.0,UNCOMMON}~{5323,2,2,0.0,RARE}~{995,1,200,0.0,COMMON}~{1933,1,1,0.0,RARE}~{2335,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2351,1,2,0.0,COMMON}~{31,1,1,0.0,RARE}', ''), +(3349, '{526,1,1,0.0,ALWAYS}', '{555,20,47,0.0,COMMON}~{559,9,24,0.0,COMMON}~{558,5,5,0.0,COMMON}~{558,7,7,0.0,COMMON}~{562,2,5,0.0,UNCOMMON}~{561,4,7,0.0,UNCOMMON}~{563,2,3,0.0,RARE}~{565,2,3,0.0,RARE}~{1293,1,1,0.0,COMMON}~{1281,1,1,0.0,COMMON}~{888,5,5,0.0,COMMON}~{888,7,7,0.0,COMMON}~{890,2,5,0.0,UNCOMMON}~{890,7,7,0.0,UNCOMMON}~{1141,1,1,0.0,COMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{5318,4,4,0.0,COMMON}~{5322,3,3,0.0,COMMON}~{5324,4,4,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5320,3,3,0.0,UNCOMMON}~{5321,2,2,0.0,UNCOMMON}~{5323,2,2,0.0,RARE}~{995,1,200,0.0,COMMON}~{1933,1,1,0.0,RARE}~{2335,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2351,1,2,0.0,COMMON}~{31,1,1,0.0,RARE}', ''), +(3350, '{526,1,1,0.0,ALWAYS}', '{555,20,47,0.0,COMMON}~{559,9,24,0.0,COMMON}~{558,5,5,0.0,COMMON}~{558,7,7,0.0,COMMON}~{562,2,5,0.0,UNCOMMON}~{561,4,7,0.0,UNCOMMON}~{563,2,3,0.0,RARE}~{565,2,3,0.0,RARE}~{1293,1,1,0.0,COMMON}~{1281,1,1,0.0,COMMON}~{888,5,5,0.0,COMMON}~{888,7,7,0.0,COMMON}~{890,2,5,0.0,UNCOMMON}~{890,7,7,0.0,UNCOMMON}~{1141,1,1,0.0,COMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{5318,4,4,0.0,COMMON}~{5322,3,3,0.0,COMMON}~{5324,4,4,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5320,3,3,0.0,UNCOMMON}~{5321,2,2,0.0,UNCOMMON}~{5323,2,2,0.0,RARE}~{995,1,200,0.0,COMMON}~{1933,1,1,0.0,RARE}~{2335,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2351,1,2,0.0,COMMON}~{31,1,1,0.0,RARE}', ''), +(3376, '{534,1,1,0.0,ALWAYS}', '{145,1,1,0.0,RARE}', '{0,1,1,0.555,ALWAYS}~{12158,1,1,0.095,ALWAYS}~{12159,1,1,0.215,ALWAYS}~{12160,1,1,0.115,ALWAYS}~{12163,1,1,0.02,ALWAYS}'), +(3406, '{592,1,1,0.0,ALWAYS}', '{882,2,9,0.0,COMMON}~{877,1,10,0.0,COMMON}~{1155,1,1,0.0,COMMON}~{1351,1,1,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1277,1,1,0.0,COMMON}~{1265,1,1,0.0,COMMON}~{884,1,5,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1267,1,1,0.0,COMMON}~{886,1,1,0.0,COMMON}~{1141,1,1,0.0,UNCOMMON}~{1353,1,1,0.0,RARE}~{1269,1,1,0.0,RARE}~{1381,1,1,0.0,RARE}~{1383,1,1,0.0,RARE}~{288,1,1,0.0,RARE}~{1993,1,1,0.0,UNCOMMON}~{1913,1,1,0.0,RARE}~{1891,1,1,0.0,RARE}~{1917,1,1,0.0,RARE}~{6794,1,1,0.0,RARE}~{556,1,10,0.0,COMMON}~{555,1,11,0.0,COMMON}~{562,1,6,0.0,RARE}~{560,1,2,0.0,RARE}~{995,1,40,0.0,COMMON}~{2355,1,1,0.0,COMMON}~{442,1,1,0.0,COMMON}~{1718,1,1,0.0,UNCOMMON}~{1444,1,1,0.0,UNCOMMON}~{2700,1,1,0.0,RARE}~{6691,1,1,0.0,RARE}~{193,1,1,0.0,RARE}~{1716,1,1,0.0,RARE}~{2,10,40,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.03,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.032,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(3407, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2805,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(3408, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2819,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(3421, '{7518,1,1,0.0,ALWAYS}', '{7536,1,1,0.0,UNCOMMON}~{7538,1,1,0.0,UNCOMMON}~{407,1,2,0.0,UNCOMMON}', ''), +(3424, '{7518,1,1,0.0,ALWAYS}', '{7536,1,1,0.0,UNCOMMON}~{7538,1,1,0.0,UNCOMMON}~{407,1,2,0.0,UNCOMMON}', ''), +(3581, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2833,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3582, '{526,1,1,0.0,ALWAYS}', '', ''), +(3583, '{526,1,1,0.0,ALWAYS}', '{1237,1,1,0.0,COMMON}~{826,5,5,0.0,COMMON}~{1207,1,1,0.0,COMMON}~{1279,1,1,0.0,COMMON}~{1293,1,1,0.0,UNCOMMON}~{1239,1,1,0.0,UNCOMMON}~{1241,1,1,0.0,UNCOMMON}~{1295,1,1,0.0,UNCOMMON}~{555,2,2,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{554,7,7,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{562,3,3,0.0,UNCOMMON}~{561,4,4,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{5318,4,8,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,COMMON}~{5320,3,3,0.0,COMMON}~{5323,1,2,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5322,3,3,0.0,UNCOMMON}~{5321,1,2,0.0,UNCOMMON}~{5306,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,2,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{211,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{225,1,1,0.0,COMMON}~{288,1,1,0.0,RARE}~{6306,15,15,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(3586, '{526,1,1,0.0,ALWAYS}', '{2727,1,1,0.0,UNCOMMON,64}', ''), +(3587, '{532,1,1,0.0,ALWAYS}', '{7844,1,1,0.0,COMMON}~{10977,1,1,0.0,RARE}~{10976,1,1,0.0,RARE}~{5323,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.8250000000000001,ALWAYS}~{12158,1,1,0.136,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(3588, '{534,1,1,0.0,ALWAYS}', '', ''), +(3590, '{536,1,1,0.0,ALWAYS}~{2353,5,5,0.0,ALWAYS}', '{1371,1,1,0.0,COMMON}~{1359,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,COMMON}~{1199,1,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{4585,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{565,20,20,0.0,COMMON}~{830,7,7,0.0,COMMON}~{566,5,5,0.0,UNCOMMON}~{811,9,12,0.0,UNCOMMON}~{9144,2,14,0.0,UNCOMMON}~{868,7,7,0.0,UNCOMMON}~{995,470,12650,0.0,COMMON}~{9431,1,1,0.0,COMMON}~{145,1,1,0.0,COMMON}~{165,1,1,0.0,UNCOMMON}~{161,1,1,0.0,UNCOMMON}~{2363,1,1,0.0,UNCOMMON}~{2011,1,2,0.0,UNCOMMON}~{2739,1,1,0.0,RARE}~{995,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.335,ALWAYS}~{12158,1,1,0.14,ALWAYS}~{12159,1,1,0.35000000000000003,ALWAYS}~{12160,1,1,0.145,ALWAYS}~{12163,1,1,0.03,ALWAYS}'), +(3591, '', '{2677,1,1,0.0,RARE}', ''), +(3606, '', '{1203,1,1,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{830,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{559,1,3,0.0,COMMON}~{556,1,3,0.0,COMMON}~{554,7,7,0.0,UNCOMMON}~{562,4,4,0.0,UNCOMMON}~{564,2,2,0.0,RARE}~{995,1,125,0.0,COMMON}~{313,7,7,0.0,COMMON}~{438,1,1,0.0,UNCOMMON}~{221,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{7218,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3607, '', '{1203,1,1,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{830,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{559,1,3,0.0,COMMON}~{556,1,3,0.0,COMMON}~{554,7,7,0.0,UNCOMMON}~{562,4,4,0.0,UNCOMMON}~{564,2,2,0.0,RARE}~{995,1,125,0.0,COMMON}~{313,7,7,0.0,COMMON}~{438,1,1,0.0,UNCOMMON}~{221,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{7218,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3608, '', '{1203,1,1,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{830,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{559,1,3,0.0,COMMON}~{556,1,3,0.0,COMMON}~{554,7,7,0.0,UNCOMMON}~{562,4,4,0.0,UNCOMMON}~{564,2,2,0.0,RARE}~{995,1,125,0.0,COMMON}~{313,7,7,0.0,COMMON}~{438,1,1,0.0,UNCOMMON}~{221,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{7218,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3609, '', '{1203,1,1,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{830,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{559,1,3,0.0,COMMON}~{556,1,3,0.0,COMMON}~{554,7,7,0.0,UNCOMMON}~{562,4,4,0.0,UNCOMMON}~{564,2,2,0.0,RARE}~{995,1,125,0.0,COMMON}~{313,7,7,0.0,COMMON}~{438,1,1,0.0,UNCOMMON}~{221,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{7218,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3610, '', '{1203,1,1,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{830,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{559,1,3,0.0,COMMON}~{556,1,3,0.0,COMMON}~{554,7,7,0.0,UNCOMMON}~{562,4,4,0.0,UNCOMMON}~{564,2,2,0.0,RARE}~{995,1,125,0.0,COMMON}~{313,7,7,0.0,COMMON}~{438,1,1,0.0,UNCOMMON}~{221,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{7218,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3611, '', '{1203,1,1,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{830,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{559,1,3,0.0,COMMON}~{556,1,3,0.0,COMMON}~{554,7,7,0.0,UNCOMMON}~{562,4,4,0.0,UNCOMMON}~{564,2,2,0.0,RARE}~{995,1,125,0.0,COMMON}~{313,7,7,0.0,COMMON}~{438,1,1,0.0,UNCOMMON}~{221,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{7218,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3617, '', '{546,1,1,0.0,UNCOMMON}~{548,1,1,0.0,UNCOMMON}', ''), +(3622, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3675, '{526,1,1,0.0,ALWAYS}', '{7911,1,1,0.0,UNCOMMON}~{11965,1,1,0.0,RARE}', ''), +(3676, '{526,1,1,0.0,ALWAYS}', '{7911,1,1,0.0,UNCOMMON}~{11965,1,1,0.0,RARE}', ''), +(3697, '{526,1,1,0.0,ALWAYS}', '{5291,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5298,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{5104,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,RARE}~{5105,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,RARE}~{5311,1,1,0.0,RARE}~{556,60,60,0.0,COMMON}~{562,9,9,0.0,UNCOMMON}~{564,4,4,0.0,UNCOMMON}~{555,20,20,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{1361,1,1,0.0,COMMON}~{1141,1,1,0.0,COMMON}~{1281,1,1,0.0,COMMON}~{888,8,8,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1265,1,1,0.0,UNCOMMON}~{995,20,20,0.0,COMMON}~{995,50,50,0.0,COMMON}~{2359,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3698, '{526,1,1,0.0,ALWAYS}', '{5291,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5298,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{5104,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,RARE}~{5105,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,RARE}~{5311,1,1,0.0,RARE}~{556,60,60,0.0,COMMON}~{562,9,9,0.0,UNCOMMON}~{564,4,4,0.0,UNCOMMON}~{555,20,20,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{1361,1,1,0.0,COMMON}~{1141,1,1,0.0,COMMON}~{1281,1,1,0.0,COMMON}~{888,8,8,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1265,1,1,0.0,UNCOMMON}~{995,20,20,0.0,COMMON}~{995,50,50,0.0,COMMON}~{2359,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3699, '{526,1,1,0.0,ALWAYS}', '{5291,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5298,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{5104,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,RARE}~{5105,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,RARE}~{5311,1,1,0.0,RARE}~{556,60,60,0.0,COMMON}~{562,9,9,0.0,UNCOMMON}~{564,4,4,0.0,UNCOMMON}~{555,20,20,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{1361,1,1,0.0,COMMON}~{1141,1,1,0.0,COMMON}~{1281,1,1,0.0,COMMON}~{888,8,8,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1265,1,1,0.0,UNCOMMON}~{995,20,20,0.0,COMMON}~{995,50,50,0.0,COMMON}~{2359,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3700, '{526,1,1,0.0,ALWAYS}', '{5291,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5298,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{5104,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,RARE}~{5105,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,RARE}~{5311,1,1,0.0,RARE}~{556,60,60,0.0,COMMON}~{562,9,9,0.0,UNCOMMON}~{564,4,4,0.0,UNCOMMON}~{555,20,20,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{1361,1,1,0.0,COMMON}~{1141,1,1,0.0,COMMON}~{1281,1,1,0.0,COMMON}~{888,8,8,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1265,1,1,0.0,UNCOMMON}~{995,20,20,0.0,COMMON}~{995,50,50,0.0,COMMON}~{2359,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3701, '{526,1,1,0.0,ALWAYS}', '{5291,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5298,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{5104,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,RARE}~{5105,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,RARE}~{5311,1,1,0.0,RARE}~{556,60,60,0.0,COMMON}~{562,9,9,0.0,UNCOMMON}~{564,4,4,0.0,UNCOMMON}~{555,20,20,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{1361,1,1,0.0,COMMON}~{1141,1,1,0.0,COMMON}~{1281,1,1,0.0,COMMON}~{888,8,8,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1265,1,1,0.0,UNCOMMON}~{995,20,20,0.0,COMMON}~{995,50,50,0.0,COMMON}~{2359,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3702, '{526,1,1,0.0,ALWAYS}', '{5291,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5298,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{5104,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,RARE}~{5105,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,RARE}~{5311,1,1,0.0,RARE}~{556,60,60,0.0,COMMON}~{562,9,9,0.0,UNCOMMON}~{564,4,4,0.0,UNCOMMON}~{555,20,20,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{1361,1,1,0.0,COMMON}~{1141,1,1,0.0,COMMON}~{1281,1,1,0.0,COMMON}~{888,8,8,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1265,1,1,0.0,UNCOMMON}~{995,20,20,0.0,COMMON}~{995,50,50,0.0,COMMON}~{2359,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3703, '{526,1,1,0.0,ALWAYS}', '{5291,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5298,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{5104,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,RARE}~{5105,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,RARE}~{5311,1,1,0.0,RARE}~{556,60,60,0.0,COMMON}~{562,9,9,0.0,UNCOMMON}~{564,4,4,0.0,UNCOMMON}~{555,20,20,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{1361,1,1,0.0,COMMON}~{1141,1,1,0.0,COMMON}~{1281,1,1,0.0,COMMON}~{888,8,8,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1265,1,1,0.0,UNCOMMON}~{995,20,20,0.0,COMMON}~{995,50,50,0.0,COMMON}~{2359,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3704, '{526,1,1,0.0,ALWAYS}', '{5291,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5298,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{5104,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,RARE}~{5105,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,RARE}~{5311,1,1,0.0,RARE}~{556,60,60,0.0,COMMON}~{562,9,9,0.0,UNCOMMON}~{564,4,4,0.0,UNCOMMON}~{555,20,20,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{1361,1,1,0.0,COMMON}~{1141,1,1,0.0,COMMON}~{1281,1,1,0.0,COMMON}~{888,8,8,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1265,1,1,0.0,UNCOMMON}~{995,20,20,0.0,COMMON}~{995,50,50,0.0,COMMON}~{2359,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3705, '{526,1,1,0.0,ALWAYS}', '{5291,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5298,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{5104,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,RARE}~{5105,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,RARE}~{5311,1,1,0.0,RARE}~{556,60,60,0.0,COMMON}~{562,9,9,0.0,UNCOMMON}~{564,4,4,0.0,UNCOMMON}~{555,20,20,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{1361,1,1,0.0,COMMON}~{1141,1,1,0.0,COMMON}~{1281,1,1,0.0,COMMON}~{888,8,8,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1265,1,1,0.0,UNCOMMON}~{995,20,20,0.0,COMMON}~{995,50,50,0.0,COMMON}~{2359,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3706, '{526,1,1,0.0,ALWAYS}', '', ''), +(3707, '{526,1,1,0.0,ALWAYS}~{2134,1,1,0.0,ALWAYS}', '{378,10,10,0.0,UNCOMMON}~{383,1,1,0.0,UNCOMMON}~{384,3,3,0.0,UNCOMMON}~{384,8,8,0.0,UNCOMMON}~{350,18,18,0.0,UNCOMMON}~{372,9,9,0.0,UNCOMMON}~{2135,18,18,0.0,RARE}~{557,10,10,0.0,COMMON}~{557,18,18,0.0,COMMON}~{560,7,7,0.0,COMMON}~{555,10,10,0.0,UNCOMMON}~{555,18,18,0.0,UNCOMMON}~{556,18,18,0.0,UNCOMMON}~{565,4,4,0.0,UNCOMMON}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1444,1,1,0.0,UNCOMMON}~{11037,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.735,ALWAYS}~{12158,1,1,0.23,ALWAYS}~{12159,1,1,0.015,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(3710, '{526,1,1,0.0,ALWAYS}', '', ''), +(3711, '{530,1,1,0.0,ALWAYS}', '{7829,1,1,0.0,COMMON}', '{0,1,1,0.785,ALWAYS}~{12158,1,1,0.197,ALWAYS}~{12159,1,1,0.005,ALWAYS}~{12160,1,1,0.01,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(3715, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2813,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(3726, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2693,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(3783, '{526,1,1,0.0,ALWAYS}~{4517,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{215,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{5004,1,1,0.0,UNCOMMON}~{5004,5,5,0.0,UNCOMMON}~{555,6,6,0.0,COMMON}~{11766,1,1,0.0,UNCOMMON}~{11767,1,1,0.0,UNCOMMON}~{11768,1,1,0.0,UNCOMMON}~{11769,1,1,0.0,UNCOMMON}~{11764,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(3808, '{532,1,1,0.0,ALWAYS}~{526,3,3,0.0,ALWAYS}', '{5324,10,29,0.0,COMMON}~{5101,1,1,0.0,RARE}~{5318,4,4,0.0,RARE}~{5319,4,4,0.0,RARE}~{5322,1,1,0.0,RARE}~{5321,1,2,0.0,RARE}~{5096,1,1,0.0,RARE}~{5097,1,4,0.0,RARE}~{5099,1,1,0.0,RARE}~{5103,1,1,0.0,RARE}~{5308,1,3,0.0,RARE}~{5305,2,4,0.0,RARE}~{5323,1,2,0.0,RARE}~{5098,1,2,0.0,RARE}~{5309,1,2,0.0,RARE}~{5307,1,2,0.0,RARE}~{5320,1,4,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2150,1,1,0.0,COMMON}~{2114,1,1,0.0,COMMON}~{1968,16,101,0.0,COMMON}~{2253,1,1,0.0,UNCOMMON}~{2217,1,1,0.0,RARE}~{2064,1,1,0.0,RARE}~{2187,1,1,0.0,RARE}~{1458,1,1,0.0,COMMON}~{561,1,3,0.0,COMMON}~{557,10,14,0.0,UNCOMMON}~{566,5,11,0.0,RARE}~{886,12,23,0.0,COMMON}~{888,6,13,0.0,UNCOMMON}~{7939,1,3,0.0,UNCOMMON}~{10995,1,3,0.0,RARE}~{10977,1,1,0.0,RARE}~{10976,1,1,0.0,RARE}~{6333,1,4,0.0,UNCOMMON}~{6332,1,4,0.0,UNCOMMON}', ''), +(3815, '{526,1,1,0.0,ALWAYS}', '', ''), +(3819, '{532,1,1,0.0,ALWAYS}~{526,3,3,0.0,ALWAYS}', '{5324,10,29,0.0,COMMON}~{5101,1,1,0.0,RARE}~{5318,4,4,0.0,RARE}~{5319,4,4,0.0,RARE}~{5322,1,1,0.0,RARE}~{5321,1,2,0.0,RARE}~{5096,1,1,0.0,RARE}~{5097,1,4,0.0,RARE}~{5099,1,1,0.0,RARE}~{5103,1,1,0.0,RARE}~{5308,1,3,0.0,RARE}~{5305,2,4,0.0,RARE}~{5323,1,2,0.0,RARE}~{5098,1,2,0.0,RARE}~{5309,1,2,0.0,RARE}~{5307,1,2,0.0,RARE}~{5320,1,4,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2150,1,1,0.0,COMMON}~{2114,1,1,0.0,COMMON}~{1968,16,101,0.0,COMMON}~{2253,1,1,0.0,UNCOMMON}~{2217,1,1,0.0,RARE}~{2064,1,1,0.0,RARE}~{2187,1,1,0.0,RARE}~{1458,1,1,0.0,COMMON}~{561,1,3,0.0,COMMON}~{557,10,14,0.0,UNCOMMON}~{566,5,11,0.0,RARE}~{886,12,23,0.0,COMMON}~{888,6,13,0.0,UNCOMMON}~{7939,1,3,0.0,UNCOMMON}~{10995,1,3,0.0,RARE}~{10977,1,1,0.0,RARE}~{10976,1,1,0.0,RARE}~{6333,1,4,0.0,UNCOMMON}~{6332,1,4,0.0,UNCOMMON}', ''), +(3835, '', '{1247,2,2,0.0,COMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1347,1,2,0.0,UNCOMMON}~{1301,1,1,0.0,UNCOMMON}~{3053,2,2,0.0,UNCOMMON}~{7158,1,1,0.0,RARE}~{1113,1,4,0.0,COMMON}~{3140,1,1,0.0,RARE}~{888,500,500,0.0,UNCOMMON}~{884,1,355,0.0,UNCOMMON}~{886,1,150,0.0,UNCOMMON}~{892,100,100,0.0,UNCOMMON}~{565,250,300,0.0,COMMON}~{561,200,285,0.0,COMMON}~{563,2045,2045,0.0,COMMON}~{563,250,250,0.0,COMMON}~{560,200,300,0.0,COMMON}~{564,200,300,0.0,COMMON}~{1607,1,1,0.0,UNCOMMON}~{1605,1,1,0.0,UNCOMMON}~{1603,1,1,0.0,UNCOMMON}~{414,40,40,0.0,UNCOMMON}~{246,20,40,0.0,COMMON}~{1731,1,1,0.0,COMMON}~{995,341,75000,0.0,UNCOMMON}~{379,7,7,0.0,UNCOMMON}~{385,714,714,0.0,UNCOMMON}~{2727,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3836, '', '{1247,2,2,0.0,COMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1347,1,2,0.0,UNCOMMON}~{1301,1,1,0.0,UNCOMMON}~{3053,2,2,0.0,UNCOMMON}~{7158,1,1,0.0,RARE}~{1113,1,4,0.0,COMMON}~{3140,1,1,0.0,RARE}~{888,500,500,0.0,UNCOMMON}~{884,1,355,0.0,UNCOMMON}~{886,1,150,0.0,UNCOMMON}~{892,100,100,0.0,UNCOMMON}~{565,250,300,0.0,COMMON}~{561,200,285,0.0,COMMON}~{563,2045,2045,0.0,COMMON}~{563,250,250,0.0,COMMON}~{560,200,300,0.0,COMMON}~{564,200,300,0.0,COMMON}~{1607,1,1,0.0,UNCOMMON}~{1605,1,1,0.0,UNCOMMON}~{1603,1,1,0.0,UNCOMMON}~{414,40,40,0.0,UNCOMMON}~{246,20,40,0.0,COMMON}~{1731,1,1,0.0,COMMON}~{995,341,75000,0.0,UNCOMMON}~{379,7,7,0.0,UNCOMMON}~{385,714,714,0.0,UNCOMMON}~{2733,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3844, '{592,1,1,0.0,ALWAYS}~{526,1,1,0.0,ALWAYS}', '{1391,1,1,0.0,COMMON}~{1013,1,1,0.0,COMMON}~{558,7,9,0.0,COMMON}~{562,2,4,0.0,UNCOMMON}~{563,2,3,0.0,UNCOMMON}~{561,1,3,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{205,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,27,434,0.0,COMMON}~{1625,1,1,0.0,COMMON}~{1934,1,1,0.0,COMMON}~{2351,1,2,0.0,UNCOMMON}~{532,3,4,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3850, '{592,1,1,0.0,ALWAYS}~{526,1,1,0.0,ALWAYS}', '{1391,1,1,0.0,COMMON}~{1013,1,1,0.0,COMMON}~{558,7,9,0.0,COMMON}~{562,2,4,0.0,UNCOMMON}~{563,2,3,0.0,UNCOMMON}~{561,1,3,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{205,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,27,434,0.0,COMMON}~{1625,1,1,0.0,COMMON}~{1934,1,1,0.0,COMMON}~{2351,1,2,0.0,UNCOMMON}~{532,3,4,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3851, '{592,1,1,0.0,ALWAYS}~{526,1,1,0.0,ALWAYS}', '{1391,1,1,0.0,COMMON}~{1013,1,1,0.0,COMMON}~{558,7,9,0.0,COMMON}~{562,2,4,0.0,UNCOMMON}~{563,2,3,0.0,UNCOMMON}~{561,1,3,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{205,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,27,434,0.0,COMMON}~{1625,1,1,0.0,COMMON}~{1934,1,1,0.0,COMMON}~{2351,1,2,0.0,UNCOMMON}~{532,3,4,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(3915, '{526,1,1,0.0,ALWAYS}', '{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{877,2,12,0.0,COMMON}~{882,7,7,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{995,1,40,0.0,COMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{2697,1,1,0.0,RARE}', ''), +(3939, '{532,1,1,0.0,ALWAYS}', '{5100,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,COMMON}~{5323,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,RARE}~{5105,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,RARE}~{5291,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,COMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,RARE}~{12176,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,RARE}~{5299,1,1,0.0,UNCOMMON}~{5300,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{4695,1,1,0.0,COMMON}~{555,15,15,0.0,UNCOMMON}~{1452,1,3,0.0,RARE}~{995,24,24,0.0,COMMON}~{995,32,32,0.0,COMMON}~{405,1,1,0.0,RARE}~{313,50,50,0.0,RARE}~{571,1,1,0.0,UNCOMMON}~{402,5,5,0.0,UNCOMMON}~{404,5,5,0.0,UNCOMMON}~{377,1,1,0.0,UNCOMMON}~{363,2,2,0.0,UNCOMMON}~{411,2,2,0.0,COMMON}~{823,2,2,0.0,UNCOMMON}~{46,1,1,0.0,COMMON}~{46,3,3,0.0,COMMON}~{4160,14,14,0.0,UNCOMMON}~{413,1,1,0.0,RARE}~{2853,1,1,0.0,RARE}', ''), +(3940, '{526,1,1,0.0,ALWAYS}', '{5301,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5300,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5103,1,1,0.0,UNCOMMON}~{5304,1,1,0.0,UNCOMMON}~{995,1,1,0.0,COMMON}~{405,1,1,0.0,COMMON}~{363,2,2,0.0,COMMON}~{377,1,1,0.0,UNCOMMON}~{401,4,4,0.0,UNCOMMON}~{401,5,5,0.0,UNCOMMON}~{4160,4,4,0.0,UNCOMMON}~{4160,5,5,0.0,UNCOMMON}~{823,2,2,0.0,RARE}~{403,15,15,0.0,UNCOMMON}~{313,50,50,0.0,UNCOMMON}~{4695,1,1,0.0,UNCOMMON}~{411,1,1,0.0,UNCOMMON}~{411,2,2,0.0,UNCOMMON}~{46,3,3,0.0,UNCOMMON}~{571,1,1,0.0,UNCOMMON}~{555,15,15,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{2747,1,1,0.0,UNCOMMON}~{995,250,250,0.0,COMMON}~{995,3000,3000,0.0,COMMON}~{1623,1,1,0.0,COMMON}~{1621,1,1,0.0,COMMON}~{1619,1,1,0.0,COMMON}~{1617,1,1,0.0,UNCOMMON}~{987,1,1,0.0,UNCOMMON}~{985,1,1,0.0,UNCOMMON}~{1631,1,1,0.0,RARE}~{1615,1,1,0.0,RARE}~{1215,1,1,0.0,UNCOMMON}~{830,5,5,0.0,RARE}~{829,20,20,0.0,RARE}~{1319,1,1,0.0,RARE}~{1247,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1216,50,50,0.0,RARE}~{1185,1,1,0.0,RARE}~{1201,1,1,0.0,RARE}~{2366,1,1,0.0,RARE}~{1149,1,1,0.0,RARE}~{9143,200,200,0.0,UNCOMMON}~{9342,150,150,0.0,RARE}~{892,150,200,0.0,RARE}~{892,500,500,0.0,RARE}~{1392,200,200,0.0,RARE}~{574,1000,1000,0.0,RARE}~{570,1000,1000,0.0,RARE}~{1444,1,1,0.0,UNCOMMON}~{1441,25,35,0.0,UNCOMMON}~{1443,25,35,0.0,UNCOMMON}~{1452,1,1,0.0,UNCOMMON}~{1462,1,1,0.0,UNCOMMON}~{7937,500,15000,0.0,UNCOMMON}~{561,47,77,0.0,RARE}~{566,20,20,0.0,RARE}~{563,45,45,0.0,RARE}~{560,50,50,0.0,RARE}~{560,121,121,0.0,RARE}~{565,50,50,0.0,RARE}~{372,125,250,0.0,UNCOMMON}~{372,1000,1000,0.0,UNCOMMON}~{384,250,500,0.0,UNCOMMON}~{533,150,500,0.0,UNCOMMON}~{454,150,7500,0.0,UNCOMMON}~{450,150,800,0.0,UNCOMMON}~{443,100,100,0.0,RARE}~{452,100,100,0.0,RARE}~{2362,1000,7000,0.0,RARE}~{2364,1,1,0.0,RARE}~{2364,50,50,0.0,RARE}~{258,33,33,0.0,UNCOMMON}~{2999,25,250,0.0,UNCOMMON}~{3001,30,120,0.0,UNCOMMON}~{270,10,100,0.0,UNCOMMON}~{6686,250,250,0.0,RARE}~{5321,3,3,0.0,UNCOMMON}~{5315,1,50,0.0,RARE}~{5316,1,6,0.0,RARE}~{5289,10,10,0.0,RARE}~{5300,1,1,0.0,RARE}~{5304,1,31,0.0,RARE}~{1516,100,20000,0.0,RARE}', ''), +(3941, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2815,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(3942, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2817,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(3943, '{532,1,1,0.0,ALWAYS}~{7959,1,1,0.0,ALWAYS}', '{5321,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5291,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5300,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5304,1,1,0.0,RARE}~{995,23,23,0.0,UNCOMMON}~{995,32,32,0.0,UNCOMMON}~{2809,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,UNCOMMON}~{823,2,2,0.0,UNCOMMON}~{46,3,3,0.0,UNCOMMON}~{4160,4,4,0.0,UNCOMMON}~{571,1,1,0.0,UNCOMMON}~{555,15,15,0.0,UNCOMMON}~{4695,1,1,0.0,UNCOMMON}~{313,50,50,0.0,UNCOMMON}~{363,2,2,0.0,UNCOMMON}~{377,1,1,0.0,RARE}~{405,1,1,0.0,UNCOMMON}', ''), +(4226, '{526,1,1,0.0,ALWAYS}', '{1059,1,1,0.0,COMMON}~{2902,1,1,0.0,UNCOMMON}~{2922,1,1,0.0,UNCOMMON}~{2912,1,1,0.0,UNCOMMON}~{2942,1,1,0.0,UNCOMMON}~{3799,1,1,0.0,UNCOMMON}~{4155,1,1,0.0,RARE}~{1635,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,UNCOMMON}~{1639,1,1,0.0,UNCOMMON}~{1641,1,1,0.0,UNCOMMON}~{995,5,442,0.0,COMMON}~{592,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.094,ALWAYS}~{12159,1,1,0.007,ALWAYS}~{12160,1,1,0.006,ALWAYS}~{12163,1,1,0.001,ALWAYS}'); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(4227, '{526,1,1,0.0,ALWAYS}', '{1279,1,1,0.0,COMMON}~{1207,1,1,0.0,COMMON}~{1295,1,1,0.0,COMMON}~{826,5,5,0.0,UNCOMMON}~{1069,1,1,0.0,UNCOMMON}~{4121,1,1,0.0,RARE}~{1147,1,1,0.0,RARE}~{1113,1,1,0.0,RARE}~{555,1,2,0.0,COMMON}~{554,7,7,0.0,COMMON}~{561,2,2,0.0,COMMON}~{561,4,4,0.0,COMMON}~{563,2,2,0.0,COMMON}~{563,3,3,0.0,COMMON}~{560,50,50,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{209,1,1,0.0,COMMON}~{211,1,1,0.0,COMMON}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{5318,4,4,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,COMMON}~{5322,3,3,0.0,COMMON}~{5308,3,3,0.0,COMMON}~{5309,2,2,0.0,COMMON}~{5320,3,3,0.0,COMMON}~{5323,24,24,0.0,COMMON}~{5321,2,2,0.0,RARE}~{5295,1,1,0.0,RARE}~{5096,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,5,5,0.0,COMMON}~{225,1,1,0.0,COMMON}~{12109,1,1,0.0,COMMON}~{2817,1,1,0.0,UNCOMMON}~{447,1,1,0.0,RARE}~{7983,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(4228, '{526,1,1,0.0,ALWAYS}', '{555,75,175,0.0,COMMON}~{561,15,45,0.0,UNCOMMON}~{562,12,12,0.0,UNCOMMON}~{563,3,3,0.0,UNCOMMON}~{1365,1,1,0.0,UNCOMMON}~{1243,1,1,0.0,UNCOMMON}~{1355,1,1,0.0,UNCOMMON}~{1197,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,UNCOMMON}~{1161,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,2,0.0,RARE}~{209,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{211,1,2,0.0,RARE}~{215,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,11,495,0.0,COMMON}~{7899,1,1,0.0,COMMON}~{1452,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{449,1,1,0.0,UNCOMMON}~{379,1,1,0.0,RARE}~{7977,1,1,0.0,RARE}~{2823,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.67,ALWAYS}~{12158,1,1,0.07,ALWAYS}~{12159,1,1,0.2,ALWAYS}~{12160,1,1,0.05,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(4229, '{526,1,1,0.0,ALWAYS}', '{561,5,30,0.0,UNCOMMON}~{560,1,6,0.0,UNCOMMON}~{558,4,16,0.0,UNCOMMON}~{9143,5,19,0.0,UNCOMMON}~{1355,1,1,0.0,UNCOMMON}~{4160,1,10,0.0,UNCOMMON}~{1303,1,1,0.0,RARE}~{1123,1,1,0.0,UNCOMMON}~{1197,1,1,0.0,UNCOMMON}~{239,1,1,0.0,COMMON}~{225,2,2,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{5297,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{1963,1,2,0.0,COMMON}~{2115,2,8,0.0,COMMON}~{2289,1,1,0.0,UNCOMMON}~{995,22,748,0.0,COMMON}~{1780,20,30,0.0,COMMON}~{161,1,1,0.0,COMMON}~{526,12,12,0.0,UNCOMMON}~{532,12,12,0.0,UNCOMMON}~{2723,1,1,0.0,RARE}~{7978,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.5650000000000001,ALWAYS}~{12158,1,1,0.085,ALWAYS}~{12159,1,1,0.27,ALWAYS}~{12160,1,1,0.065,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4230, '{592,1,1,0.0,ALWAYS}', '{1283,1,1,0.0,COMMON}~{1361,1,1,0.0,COMMON}~{1365,1,1,0.0,COMMON}~{4151,1,1,0.0,RARE,512}~{1197,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{556,50,50,0.0,COMMON}~{565,7,7,0.0,COMMON}~{562,10,10,0.0,COMMON}~{563,3,3,0.0,UNCOMMON}~{995,9,3000,0.0,COMMON}~{379,1,1,0.0,COMMON}~{1454,1,1,0.0,COMMON}~{7937,60,60,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{2361,1,1,0.0,UNCOMMON}~{133,1,1,0.0,UNCOMMON}~{2745,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.52,ALWAYS}~{12158,1,1,0.08,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.35000000000000003,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(4234, '', '{1247,2,2,0.0,COMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1347,1,2,0.0,UNCOMMON}~{1301,1,1,0.0,UNCOMMON}~{3053,2,2,0.0,UNCOMMON}~{7158,1,1,0.0,RARE}~{1113,1,4,0.0,COMMON}~{3140,1,1,0.0,RARE}~{888,500,500,0.0,UNCOMMON}~{884,1,355,0.0,UNCOMMON}~{886,1,150,0.0,UNCOMMON}~{892,100,100,0.0,UNCOMMON}~{565,250,300,0.0,COMMON}~{561,200,285,0.0,COMMON}~{563,2045,2045,0.0,COMMON}~{563,250,250,0.0,COMMON}~{560,200,300,0.0,COMMON}~{564,200,300,0.0,COMMON}~{1607,1,1,0.0,UNCOMMON}~{1605,1,1,0.0,UNCOMMON}~{1603,1,1,0.0,UNCOMMON}~{414,40,40,0.0,UNCOMMON}~{246,20,40,0.0,COMMON}~{1731,1,1,0.0,COMMON}~{995,341,75000,0.0,UNCOMMON}~{379,7,7,0.0,UNCOMMON}~{385,714,714,0.0,UNCOMMON}~{2745,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(4257, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2817,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(4258, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2819,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(4259, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2819,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(4260, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2819,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(4261, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2689,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4262, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2699,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4263, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2713,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4264, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2715,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}~{2677,1,1,0.0,RARE}', ''), +(4265, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2696,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4266, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2682,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4267, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2681,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4268, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2683,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4269, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2694,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4270, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2684,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4271, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2710,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4272, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2685,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4273, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2716,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4274, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2678,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4275, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2689,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4276, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2704,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4291, '{532,1,1,0.0,ALWAYS}', '{1309,1,1,0.0,COMMON}~{1207,1,1,0.0,COMMON}~{1424,1,1,0.0,COMMON}~{1281,1,1,0.0,COMMON}~{1283,1,1,0.0,COMMON}~{1217,1,1,0.0,COMMON}~{869,4,19,0.0,COMMON}~{1295,1,1,0.0,COMMON}~{1365,1,1,0.0,COMMON}~{1311,1,1,0.0,COMMON}~{1297,1,1,0.0,COMMON}~{1313,1,1,0.0,UNCOMMON}~{1209,1,1,0.0,UNCOMMON}~{1299,1,1,0.0,UNCOMMON}~{1430,1,1,0.0,UNCOMMON}~{1317,1,1,0.0,RARE}~{886,5,5,0.0,RARE}~{1213,1,1,0.0,RARE}~{1101,1,1,0.0,COMMON}~{1105,1,1,0.0,COMMON}~{1153,1,1,0.0,UNCOMMON}~{1191,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,RARE}~{1147,1,1,0.0,RARE}~{563,2,2,0.0,RARE}~{563,3,3,0.0,RARE}~{560,2,2,0.0,RARE}~{561,2,2,0.0,RARE}~{561,3,3,0.0,RARE}~{558,2,2,0.0,RARE}~{558,3,3,0.0,RARE}~{564,2,2,0.0,RARE}~{564,3,3,0.0,RARE}~{555,7,7,0.0,RARE}~{554,15,15,0.0,RARE}~{5101,1,1,0.0,UNCOMMON}~{5318,1,1,0.0,UNCOMMON}~{5320,3,3,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5324,4,4,0.0,UNCOMMON}~{5309,2,2,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5280,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5100,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5296,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{199,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{995,5,473,0.0,COMMON}~{225,1,1,0.0,COMMON}~{1446,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{2731,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(4292, '{532,1,1,0.0,ALWAYS}', '{1309,1,1,0.0,COMMON}~{1207,1,1,0.0,COMMON}~{1424,1,1,0.0,COMMON}~{1281,1,1,0.0,COMMON}~{1283,1,1,0.0,COMMON}~{1217,1,1,0.0,COMMON}~{869,4,19,0.0,COMMON}~{1295,1,1,0.0,COMMON}~{1365,1,1,0.0,COMMON}~{1311,1,1,0.0,COMMON}~{1297,1,1,0.0,COMMON}~{1313,1,1,0.0,UNCOMMON}~{1209,1,1,0.0,UNCOMMON}~{1299,1,1,0.0,UNCOMMON}~{1430,1,1,0.0,UNCOMMON}~{1317,1,1,0.0,RARE}~{886,5,5,0.0,RARE}~{1213,1,1,0.0,RARE}~{1101,1,1,0.0,COMMON}~{1105,1,1,0.0,COMMON}~{1153,1,1,0.0,UNCOMMON}~{1191,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,RARE}~{1147,1,1,0.0,RARE}~{563,2,2,0.0,RARE}~{563,3,3,0.0,RARE}~{560,2,2,0.0,RARE}~{561,2,2,0.0,RARE}~{561,3,3,0.0,RARE}~{558,2,2,0.0,RARE}~{558,3,3,0.0,RARE}~{564,2,2,0.0,RARE}~{564,3,3,0.0,RARE}~{555,7,7,0.0,RARE}~{554,15,15,0.0,RARE}~{5101,1,1,0.0,UNCOMMON}~{5318,1,1,0.0,UNCOMMON}~{5320,3,3,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5324,4,4,0.0,UNCOMMON}~{5309,2,2,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5280,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5100,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5296,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{199,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{995,5,473,0.0,COMMON}~{225,1,1,0.0,COMMON}~{1446,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{2737,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(4301, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2847,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(4302, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2839,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(4303, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2847,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(4304, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2803,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(4305, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2835,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(4306, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2803,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(4307, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2807,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(4308, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2837,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(4309, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2827,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(4310, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2837,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(4311, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2827,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(4316, '{526,1,1,0.0,ALWAYS}', '{1265,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{2349,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{440,1,1,0.0,COMMON}~{1267,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{561,2,2,0.0,RARE}~{562,2,2,0.0,RARE}~{1139,1,1,0.0,COMMON}~{1375,1,1,0.0,UNCOMMON}~{1363,1,1,0.0,UNCOMMON}~{877,2,2,0.0,UNCOMMON}~{877,11,11,0.0,UNCOMMON}~{995,4,4,0.0,COMMON}~{995,10,10,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1913,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.905,ALWAYS}~{12158,1,1,0.039,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(4318, '', '{882,1,20,0.0,COMMON}~{1351,1,1,0.0,COMMON}~{1205,1,1,0.0,COMMON}~{1265,1,1,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1267,1,1,0.0,COMMON}~{886,1,20,0.0,UNCOMMON}~{1353,1,1,0.0,UNCOMMON}~{1207,1,1,0.0,UNCOMMON}~{1269,1,1,0.0,UNCOMMON}~{1129,1,1,0.0,UNCOMMON}~{4170,1,1,0.0,RARE}~{995,2,21,0.0,COMMON}~{319,1,1,0.0,COMMON}~{2138,1,1,0.0,COMMON}~{314,2,5,0.0,COMMON}~{1734,1,6,0.0,COMMON}~{1733,1,1,0.0,COMMON}~{1511,1,1,0.0,COMMON}~{1625,1,1,0.0,COMMON}~{686,1,1,0.0,UNCOMMON}~{697,1,1,0.0,UNCOMMON}~{2682,1,1,0.0,UNCOMMON}~{1627,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{688,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{1739,1,1,0.0,UNCOMMON}', ''), +(4320, '', '{882,1,20,0.0,COMMON}~{1351,1,1,0.0,COMMON}~{1205,1,1,0.0,COMMON}~{1265,1,1,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1267,1,1,0.0,COMMON}~{886,1,20,0.0,UNCOMMON}~{1353,1,1,0.0,UNCOMMON}~{1207,1,1,0.0,UNCOMMON}~{1269,1,1,0.0,UNCOMMON}~{1129,1,1,0.0,UNCOMMON}~{4170,1,1,0.0,RARE}~{995,2,21,0.0,COMMON}~{319,1,1,0.0,COMMON}~{2138,1,1,0.0,COMMON}~{314,2,5,0.0,COMMON}~{1734,1,6,0.0,COMMON}~{1733,1,1,0.0,COMMON}~{1511,1,1,0.0,COMMON}~{1625,1,1,0.0,COMMON}~{686,1,1,0.0,UNCOMMON}~{697,1,1,0.0,UNCOMMON}~{2685,1,1,0.0,UNCOMMON}~{1627,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{688,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{1739,1,1,0.0,UNCOMMON}', ''), +(4327, '', '{882,1,20,0.0,COMMON}~{1351,1,1,0.0,COMMON}~{1205,1,1,0.0,COMMON}~{1265,1,1,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1267,1,1,0.0,COMMON}~{886,1,20,0.0,UNCOMMON}~{1353,1,1,0.0,UNCOMMON}~{1207,1,1,0.0,UNCOMMON}~{1269,1,1,0.0,UNCOMMON}~{1129,1,1,0.0,UNCOMMON}~{4170,1,1,0.0,RARE}~{995,2,21,0.0,COMMON}~{319,1,1,0.0,COMMON}~{2138,1,1,0.0,COMMON}~{314,2,5,0.0,COMMON}~{1734,1,6,0.0,COMMON}~{1733,1,1,0.0,COMMON}~{1511,1,1,0.0,COMMON}~{1625,1,1,0.0,COMMON}~{686,1,1,0.0,UNCOMMON}~{697,1,1,0.0,UNCOMMON}~{2704,1,1,0.0,UNCOMMON}~{1627,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{688,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{1739,1,1,0.0,UNCOMMON}', ''), +(4329, '', '{2677,1,1,0.0,RARE}', ''), +(4336, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2809,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(4343, '{526,1,1,0.0,ALWAYS}', '{7862,1,1,0.0,UNCOMMON}', ''), +(4344, '{3186,1,1,0.0,ALWAYS}~{3166,1,1,0.0,ALWAYS}', '{7856,1,1,0.0,COMMON}', '{0,1,1,1.0,ALWAYS}~{12158,1,1,-0.006,ALWAYS}~{12159,1,1,0.002,ALWAYS}~{12160,1,1,0.002,ALWAYS}~{12163,1,1,0.002,ALWAYS}'), +(4346, '{7518,1,1,0.0,ALWAYS}', '{7536,1,1,0.0,UNCOMMON}~{7538,1,1,0.0,UNCOMMON}~{407,1,2,0.0,UNCOMMON}', ''), +(4348, '{526,1,1,0.0,ALWAYS}', '{1335,1,1,0.0,COMMON}~{826,5,5,0.0,COMMON}~{1191,1,1,0.0,COMMON}~{1239,1,1,0.0,UNCOMMON}~{561,2,6,0.0,COMMON}~{560,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{5318,1,4,0.0,COMMON}~{5319,1,3,0.0,COMMON}~{5324,1,3,0.0,RARE}~{5322,1,2,0.0,RARE}~{5320,1,2,0.0,RARE}~{5323,1,1,0.0,RARE}~{12148,1,4,0.0,RARE}~{5321,1,1,0.0,RARE}~{441,1,1,0.0,COMMON}~{6334,1,4,0.0,COMMON}~{6332,1,1,0.0,COMMON}~{2115,1,3,0.0,COMMON}~{526,1,2,0.0,COMMON}~{532,1,3,0.0,UNCOMMON}~{8778,4,4,0.0,RARE}~{2811,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.8150000000000001,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.125,ALWAYS}~{12160,1,1,0.02,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(4349, '{526,1,1,0.0,ALWAYS}', '{1335,1,1,0.0,COMMON}~{826,5,5,0.0,COMMON}~{1191,1,1,0.0,COMMON}~{1239,1,1,0.0,UNCOMMON}~{561,2,6,0.0,COMMON}~{560,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{5318,1,4,0.0,COMMON}~{5319,1,3,0.0,COMMON}~{5324,1,3,0.0,RARE}~{5322,1,2,0.0,RARE}~{5320,1,2,0.0,RARE}~{5323,1,1,0.0,RARE}~{12148,1,4,0.0,RARE}~{5321,1,1,0.0,RARE}~{441,1,1,0.0,COMMON}~{6334,1,4,0.0,COMMON}~{6332,1,1,0.0,COMMON}~{2115,1,3,0.0,COMMON}~{526,1,2,0.0,COMMON}~{532,1,3,0.0,UNCOMMON}~{8778,4,4,0.0,RARE}~{2809,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.8150000000000001,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.125,ALWAYS}~{12160,1,1,0.02,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(4350, '{526,1,1,0.0,ALWAYS}', '{1335,1,1,0.0,COMMON}~{826,5,5,0.0,COMMON}~{1191,1,1,0.0,COMMON}~{1239,1,1,0.0,UNCOMMON}~{561,2,6,0.0,COMMON}~{560,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{5318,1,4,0.0,COMMON}~{5319,1,3,0.0,COMMON}~{5324,1,3,0.0,RARE}~{5322,1,2,0.0,RARE}~{5320,1,2,0.0,RARE}~{5323,1,1,0.0,RARE}~{12148,1,4,0.0,RARE}~{5321,1,1,0.0,RARE}~{441,1,1,0.0,COMMON}~{6334,1,4,0.0,COMMON}~{6332,1,1,0.0,COMMON}~{2115,1,3,0.0,COMMON}~{526,1,2,0.0,COMMON}~{532,1,3,0.0,UNCOMMON}~{8778,4,4,0.0,RARE}~{2805,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.8150000000000001,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.125,ALWAYS}~{12160,1,1,0.02,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(4351, '{526,1,1,0.0,ALWAYS}', '{1335,1,1,0.0,COMMON}~{826,5,5,0.0,COMMON}~{1191,1,1,0.0,COMMON}~{1239,1,1,0.0,UNCOMMON}~{561,2,6,0.0,COMMON}~{560,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{5318,1,4,0.0,COMMON}~{5319,1,3,0.0,COMMON}~{5324,1,3,0.0,RARE}~{5322,1,2,0.0,RARE}~{5320,1,2,0.0,RARE}~{5323,1,1,0.0,RARE}~{12148,1,4,0.0,RARE}~{5321,1,1,0.0,RARE}~{441,1,1,0.0,COMMON}~{6334,1,4,0.0,COMMON}~{6332,1,1,0.0,COMMON}~{2115,1,3,0.0,COMMON}~{526,1,2,0.0,COMMON}~{532,1,3,0.0,UNCOMMON}~{8778,4,4,0.0,RARE}~{2805,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.8150000000000001,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.125,ALWAYS}~{12160,1,1,0.02,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(4352, '{526,1,1,0.0,ALWAYS}', '{1335,1,1,0.0,COMMON}~{826,5,5,0.0,COMMON}~{1191,1,1,0.0,COMMON}~{1239,1,1,0.0,UNCOMMON}~{561,2,6,0.0,COMMON}~{560,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{5318,1,4,0.0,COMMON}~{5319,1,3,0.0,COMMON}~{5324,1,3,0.0,RARE}~{5322,1,2,0.0,RARE}~{5320,1,2,0.0,RARE}~{5323,1,1,0.0,RARE}~{12148,1,4,0.0,RARE}~{5321,1,1,0.0,RARE}~{441,1,1,0.0,COMMON}~{6334,1,4,0.0,COMMON}~{6332,1,1,0.0,COMMON}~{2115,1,3,0.0,COMMON}~{526,1,2,0.0,COMMON}~{532,1,3,0.0,UNCOMMON}~{8778,4,4,0.0,RARE}~{2817,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.8150000000000001,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.125,ALWAYS}~{12160,1,1,0.02,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(4353, '{532,1,1,0.0,ALWAYS}', '{1355,1,1,0.0,COMMON}~{1197,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,UNCOMMON}~{1247,1,1,0.0,RARE}~{1161,1,1,0.0,UNCOMMON}~{1199,1,1,0.0,RARE}~{8901,1,1,0.0,RARE}~{5281,1,1,0.0,COMMON}~{5324,1,3,0.0,COMMON}~{5296,1,1,0.0,COMMON}~{5318,1,4,0.0,COMMON}~{5297,1,1,0.0,COMMON}~{5319,1,3,0.0,COMMON}~{5299,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5300,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{12148,1,4,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5320,1,2,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5322,1,2,0.0,UNCOMMON}~{5321,1,1,0.0,RARE}~{5302,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{203,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{561,3,6,0.0,COMMON}~{554,50,50,0.0,RARE}~{995,44,495,0.0,COMMON}~{225,1,1,0.0,COMMON}~{6334,4,4,0.0,COMMON}~{6332,2,4,0.0,UNCOMMON}~{2743,1,1,0.0,RARE}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.785,ALWAYS}~{12158,1,1,0.05,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.139,ALWAYS}~{12163,1,1,0.006,ALWAYS}'); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(4354, '{532,1,1,0.0,ALWAYS}', '{1355,1,1,0.0,COMMON}~{1197,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,UNCOMMON}~{1247,1,1,0.0,RARE}~{1161,1,1,0.0,UNCOMMON}~{1199,1,1,0.0,RARE}~{8901,1,1,0.0,RARE}~{5281,1,1,0.0,COMMON}~{5324,1,3,0.0,COMMON}~{5296,1,1,0.0,COMMON}~{5318,1,4,0.0,COMMON}~{5297,1,1,0.0,COMMON}~{5319,1,3,0.0,COMMON}~{5299,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5300,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{12148,1,4,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5320,1,2,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5322,1,2,0.0,UNCOMMON}~{5321,1,1,0.0,RARE}~{5302,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{203,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{561,3,6,0.0,COMMON}~{554,50,50,0.0,RARE}~{995,44,495,0.0,COMMON}~{225,1,1,0.0,COMMON}~{6334,4,4,0.0,COMMON}~{6332,2,4,0.0,UNCOMMON}~{2725,1,1,0.0,RARE}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.785,ALWAYS}~{12158,1,1,0.05,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.139,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(4355, '{532,1,1,0.0,ALWAYS}', '{1355,1,1,0.0,COMMON}~{1197,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,UNCOMMON}~{1247,1,1,0.0,RARE}~{1161,1,1,0.0,UNCOMMON}~{1199,1,1,0.0,RARE}~{8901,1,1,0.0,RARE}~{5281,1,1,0.0,COMMON}~{5324,1,3,0.0,COMMON}~{5296,1,1,0.0,COMMON}~{5318,1,4,0.0,COMMON}~{5297,1,1,0.0,COMMON}~{5319,1,3,0.0,COMMON}~{5299,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5300,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{12148,1,4,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5320,1,2,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5322,1,2,0.0,UNCOMMON}~{5321,1,1,0.0,RARE}~{5302,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{203,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{561,3,6,0.0,COMMON}~{554,50,50,0.0,RARE}~{995,44,495,0.0,COMMON}~{225,1,1,0.0,COMMON}~{6334,4,4,0.0,COMMON}~{6332,2,4,0.0,UNCOMMON}~{2747,1,1,0.0,RARE}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.785,ALWAYS}~{12158,1,1,0.05,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.139,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(4356, '{532,1,1,0.0,ALWAYS}', '{1355,1,1,0.0,COMMON}~{1197,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,UNCOMMON}~{1247,1,1,0.0,RARE}~{1161,1,1,0.0,UNCOMMON}~{1199,1,1,0.0,RARE}~{8901,1,1,0.0,RARE}~{5281,1,1,0.0,COMMON}~{5324,1,3,0.0,COMMON}~{5296,1,1,0.0,COMMON}~{5318,1,4,0.0,COMMON}~{5297,1,1,0.0,COMMON}~{5319,1,3,0.0,COMMON}~{5299,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5300,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{12148,1,4,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5320,1,2,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5322,1,2,0.0,UNCOMMON}~{5321,1,1,0.0,RARE}~{5302,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{203,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{561,3,6,0.0,COMMON}~{554,50,50,0.0,RARE}~{995,44,495,0.0,COMMON}~{225,1,1,0.0,COMMON}~{6334,4,4,0.0,COMMON}~{6332,2,4,0.0,UNCOMMON}~{2727,1,1,0.0,RARE}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.785,ALWAYS}~{12158,1,1,0.05,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.139,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(4357, '{532,1,1,0.0,ALWAYS}', '{1355,1,1,0.0,COMMON}~{1197,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,UNCOMMON}~{1247,1,1,0.0,RARE}~{1161,1,1,0.0,UNCOMMON}~{1199,1,1,0.0,RARE}~{8901,1,1,0.0,RARE}~{5281,1,1,0.0,COMMON}~{5324,1,3,0.0,COMMON}~{5296,1,1,0.0,COMMON}~{5318,1,4,0.0,COMMON}~{5297,1,1,0.0,COMMON}~{5319,1,3,0.0,COMMON}~{5299,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5300,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{12148,1,4,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5320,1,2,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5322,1,2,0.0,UNCOMMON}~{5321,1,1,0.0,RARE}~{5302,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{203,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{561,3,6,0.0,COMMON}~{554,50,50,0.0,RARE}~{995,44,495,0.0,COMMON}~{225,1,1,0.0,COMMON}~{6334,4,4,0.0,COMMON}~{6332,2,4,0.0,UNCOMMON}~{2729,1,1,0.0,RARE}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.785,ALWAYS}~{12158,1,1,0.05,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.139,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(4363, '{3186,1,1,0.0,ALWAYS}~{3166,1,1,0.0,ALWAYS}', '{7856,1,1,0.0,COMMON}', '{0,1,1,1.0,ALWAYS}~{12158,1,1,-0.006,ALWAYS}~{12159,1,1,0.002,ALWAYS}~{12160,1,1,0.002,ALWAYS}~{12163,1,1,0.002,ALWAYS}'), +(4381, '{526,1,1,0.0,ALWAYS}', '{890,5,25,0.0,UNCOMMON}~{1391,1,1,0.0,UNCOMMON}~{869,1,1,0.0,RARE}~{565,3,11,0.0,COMMON}~{563,2,2,0.0,COMMON}~{560,10,10,0.0,COMMON}~{5281,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5098,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5104,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5311,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{205,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{199,1,1,0.0,RARE}~{211,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{365,1,1,0.0,UNCOMMON}~{7082,1,1,0.0,UNCOMMON}~{995,8,500,0.0,COMMON}~{1437,15,15,0.0,UNCOMMON}~{7937,15,15,0.0,UNCOMMON}~{448,3,14,0.0,UNCOMMON}~{187,1,1,0.0,RARE}~{2723,1,1,0.0,RARE}~{9008,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{31,1,1,0.0,RARE}~{14943,12,19,0.0,COMMON}', ''), +(4382, '{526,1,1,0.0,ALWAYS}', '{890,5,25,0.0,UNCOMMON}~{1391,1,1,0.0,UNCOMMON}~{869,1,1,0.0,RARE}~{565,3,11,0.0,COMMON}~{563,2,2,0.0,COMMON}~{560,10,10,0.0,COMMON}~{5281,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5098,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5104,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5311,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{205,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{199,1,1,0.0,RARE}~{211,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{365,1,1,0.0,UNCOMMON}~{7082,1,1,0.0,UNCOMMON}~{995,8,500,0.0,COMMON}~{1437,15,15,0.0,UNCOMMON}~{7937,15,15,0.0,UNCOMMON}~{448,3,4,0.0,UNCOMMON}~{187,1,1,0.0,RARE}~{2739,1,1,0.0,RARE}~{9008,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(4383, '{526,1,1,0.0,ALWAYS}', '{890,5,25,0.0,UNCOMMON}~{1391,1,1,0.0,UNCOMMON}~{869,1,1,0.0,RARE}~{565,3,11,0.0,COMMON}~{563,2,2,0.0,COMMON}~{560,10,10,0.0,COMMON}~{5281,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5098,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5104,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5311,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{205,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{199,1,1,0.0,RARE}~{211,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{365,1,1,0.0,UNCOMMON}~{7082,1,1,0.0,UNCOMMON}~{995,8,500,0.0,COMMON}~{1437,15,15,0.0,UNCOMMON}~{7937,15,15,0.0,UNCOMMON}~{448,3,14,0.0,UNCOMMON}~{187,1,1,0.0,RARE}~{2745,1,1,0.0,RARE}~{9008,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(4384, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2845,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(4385, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2809,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(4386, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2809,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(4389, '', '{559,3,12,0.0,COMMON}~{4696,2,23,0.0,COMMON}~{554,42,42,0.0,COMMON}~{561,5,5,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{209,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,499,0.0,COMMON}~{440,1,1,0.0,COMMON}~{441,1,10,0.0,COMMON}~{592,1,1,0.0,COMMON}~{9011,1,1,0.0,COMMON}~{2355,1,1,0.0,UNCOMMON}~{1165,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(4390, '', '{559,3,12,0.0,COMMON}~{4696,2,23,0.0,COMMON}~{554,42,42,0.0,COMMON}~{561,5,5,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{209,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,499,0.0,COMMON}~{440,1,1,0.0,COMMON}~{441,1,10,0.0,COMMON}~{592,1,1,0.0,COMMON}~{9011,1,1,0.0,COMMON}~{2355,1,1,0.0,UNCOMMON}~{1165,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(4391, '', '{559,3,12,0.0,COMMON}~{4696,2,23,0.0,COMMON}~{554,42,42,0.0,COMMON}~{561,5,5,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{209,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,499,0.0,COMMON}~{440,1,1,0.0,COMMON}~{441,1,10,0.0,COMMON}~{592,1,1,0.0,COMMON}~{9011,1,1,0.0,COMMON}~{2355,1,1,0.0,UNCOMMON}~{1165,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(4392, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(4393, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(4394, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(4397, '{526,1,1,0.0,ALWAYS}', '{1145,1,1,0.0,UNCOMMON}~{888,5,17,0.0,COMMON}~{890,5,14,0.0,COMMON}~{1165,1,1,0.0,COMMON}~{333,1,1,0.0,UNCOMMON}~{329,1,1,0.0,UNCOMMON}~{373,1,1,0.0,RARE}~{1437,15,15,0.0,UNCOMMON}~{1437,30,30,0.0,UNCOMMON}~{555,7,7,0.0,COMMON}~{7937,15,15,0.0,COMMON}~{554,15,15,0.0,UNCOMMON}~{564,2,4,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{5318,1,1,0.0,UNCOMMON}~{5318,2,2,0.0,UNCOMMON}~{5319,1,1,0.0,UNCOMMON}~{5324,3,3,0.0,UNCOMMON}~{5322,1,1,0.0,UNCOMMON}~{5320,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{12148,3,3,0.0,UNCOMMON}~{12148,4,4,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,14,221,0.0,COMMON}~{221,1,1,0.0,COMMON}~{596,1,1,0.0,UNCOMMON}~{2849,1,1,0.0,RARE}~{454,3,7,0.0,RARE}~{9010,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(4398, '{526,1,1,0.0,ALWAYS}', '{1145,1,1,0.0,UNCOMMON}~{888,5,17,0.0,COMMON}~{890,5,14,0.0,COMMON}~{1165,1,1,0.0,COMMON}~{333,1,1,0.0,UNCOMMON}~{329,1,1,0.0,UNCOMMON}~{373,1,1,0.0,RARE}~{1437,15,15,0.0,UNCOMMON}~{1437,30,30,0.0,UNCOMMON}~{555,7,7,0.0,COMMON}~{7937,15,15,0.0,COMMON}~{554,15,15,0.0,UNCOMMON}~{564,2,4,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{5318,1,1,0.0,UNCOMMON}~{5318,2,2,0.0,UNCOMMON}~{5319,1,1,0.0,UNCOMMON}~{5324,3,3,0.0,UNCOMMON}~{5322,1,1,0.0,UNCOMMON}~{5320,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{12148,3,3,0.0,UNCOMMON}~{12148,4,4,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,14,221,0.0,COMMON}~{221,1,1,0.0,COMMON}~{596,1,1,0.0,UNCOMMON}~{2849,1,1,0.0,RARE}~{454,3,7,0.0,RARE}~{9010,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(4399, '{526,1,1,0.0,ALWAYS}', '{1145,1,1,0.0,UNCOMMON}~{888,5,17,0.0,COMMON}~{890,5,14,0.0,COMMON}~{1165,1,1,0.0,COMMON}~{333,1,1,0.0,UNCOMMON}~{329,1,1,0.0,UNCOMMON}~{373,1,1,0.0,RARE}~{1437,15,15,0.0,UNCOMMON}~{1437,30,30,0.0,UNCOMMON}~{555,7,7,0.0,COMMON}~{7937,15,15,0.0,COMMON}~{554,15,15,0.0,UNCOMMON}~{564,2,4,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{5318,1,1,0.0,UNCOMMON}~{5318,2,2,0.0,UNCOMMON}~{5319,1,1,0.0,UNCOMMON}~{5324,3,3,0.0,UNCOMMON}~{5322,1,1,0.0,UNCOMMON}~{5320,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{12148,3,3,0.0,UNCOMMON}~{12148,4,4,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,14,221,0.0,COMMON}~{221,1,1,0.0,COMMON}~{596,1,1,0.0,UNCOMMON}~{2849,1,1,0.0,RARE}~{454,3,7,0.0,RARE}~{9010,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(4401, '', '', '{0,1,1,0.92,ALWAYS}~{12158,1,1,0.02,ALWAYS}~{12159,1,1,0.034,ALWAYS}~{12160,1,1,0.013000000000000001,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(4404, '{526,1,1,0.0,ALWAYS}', '{1155,1,1,0.0,COMMON}~{884,5,20,0.0,COMMON}~{869,1,5,0.0,UNCOMMON}~{1205,1,1,0.0,UNCOMMON}~{882,3,3,0.0,COMMON}~{1237,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{439,1,1,0.0,COMMON}~{437,1,1,0.0,COMMON}~{7937,5,15,0.0,COMMON}~{1437,5,30,0.0,UNCOMMON}~{2357,1,1,0.0,UNCOMMON}~{995,1,469,0.0,COMMON}~{558,1,1,0.0,UNCOMMON}~{555,5,5,0.0,UNCOMMON}~{557,5,5,0.0,UNCOMMON}~{9007,1,1,0.0,UNCOMMON}~{2142,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{2683,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(4405, '{526,1,1,0.0,ALWAYS}', '{1155,1,1,0.0,COMMON}~{884,5,20,0.0,COMMON}~{869,1,5,0.0,COMMON}~{1205,1,1,0.0,COMMON}~{882,3,3,0.0,COMMON}~{1237,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{439,1,1,0.0,COMMON}~{437,1,1,0.0,COMMON}~{7937,5,15,0.0,COMMON}~{1437,5,30,0.0,UNCOMMON}~{2357,1,1,0.0,UNCOMMON}~{995,1,469,0.0,COMMON}~{558,1,1,0.0,COMMON}~{555,5,5,0.0,UNCOMMON}~{557,5,5,0.0,UNCOMMON}~{9007,1,1,0.0,UNCOMMON}~{2142,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{2709,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(4406, '{526,1,1,0.0,ALWAYS}', '{1155,1,1,0.0,COMMON}~{884,5,20,0.0,COMMON}~{869,1,5,0.0,COMMON}~{1205,1,1,0.0,COMMON}~{882,3,3,0.0,COMMON}~{1237,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{439,1,1,0.0,COMMON}~{437,1,1,0.0,COMMON}~{7937,5,15,0.0,COMMON}~{1437,5,30,0.0,UNCOMMON}~{2357,1,1,0.0,UNCOMMON}~{995,1,469,0.0,COMMON}~{558,1,1,0.0,COMMON}~{555,5,5,0.0,UNCOMMON}~{557,5,5,0.0,UNCOMMON}~{9007,1,1,0.0,UNCOMMON}~{2142,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{2713,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(4407, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2701,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4408, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2715,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}~{2677,1,1,0.0,RARE}', ''), +(4409, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2685,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4410, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2711,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4411, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2678,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4412, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2712,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4413, '{526,1,1,0.0,ALWAYS}~{2859,1,1,0.0,ALWAYS}', '{7830,1,1,0.0,COMMON}', '{0,1,1,0.885,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.051000000000000004,ALWAYS}~{12163,1,1,0.009000000000000001,ALWAYS}'), +(4414, '{526,1,1,0.0,ALWAYS}~{2859,1,1,0.0,ALWAYS}', '{7830,1,1,0.0,COMMON}', '{0,1,1,0.885,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.051000000000000004,ALWAYS}~{12163,1,1,0.009000000000000001,ALWAYS}'), +(4418, '', '{1199,1,1,0.0,UNCOMMON}~{1083,1,1,0.0,UNCOMMON}~{1069,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,RARE}~{1113,1,1,0.0,RARE}~{1309,1,1,0.0,UNCOMMON}~{3192,1,1,0.0,COMMON}~{802,1,1,0.0,UNCOMMON}~{1365,1,1,0.0,UNCOMMON}~{803,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,27,27,0.0,COMMON}~{995,97,97,0.0,COMMON}~{9016,1,1,0.0,COMMON}~{2570,1,1,0.0,RARE}~{2737,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(4456, '{526,1,1,0.0,ALWAYS}', '{1205,1,1,0.0,UNCOMMON}~{1307,1,1,0.0,UNCOMMON}~{3190,1,1,0.0,UNCOMMON}~{1321,1,1,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1309,1,1,0.0,UNCOMMON}~{1375,1,1,0.0,UNCOMMON}~{807,2,2,0.0,UNCOMMON}~{1207,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1075,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1101,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{946,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{2684,1,1,0.0,RARE}~{2731,1,1,0.0,RARE}', ''), +(4457, '{526,1,1,0.0,ALWAYS}', '{1205,1,1,0.0,UNCOMMON}~{1307,1,1,0.0,UNCOMMON}~{3190,1,1,0.0,UNCOMMON}~{1321,1,1,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1309,1,1,0.0,UNCOMMON}~{1375,1,1,0.0,UNCOMMON}~{807,2,2,0.0,UNCOMMON}~{1207,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1075,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1101,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{946,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{2687,1,1,0.0,RARE}~{2727,1,1,0.0,RARE}', ''), +(4458, '{526,1,1,0.0,ALWAYS}', '{1205,1,1,0.0,UNCOMMON}~{1307,1,1,0.0,UNCOMMON}~{3190,1,1,0.0,UNCOMMON}~{1321,1,1,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1309,1,1,0.0,UNCOMMON}~{1375,1,1,0.0,UNCOMMON}~{807,2,2,0.0,UNCOMMON}~{1207,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1075,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1101,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{946,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{2678,1,1,0.0,RARE}~{2725,1,1,0.0,RARE}', ''), +(4459, '{526,1,1,0.0,ALWAYS}', '{1205,1,1,0.0,UNCOMMON}~{1307,1,1,0.0,UNCOMMON}~{3190,1,1,0.0,UNCOMMON}~{1321,1,1,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1309,1,1,0.0,UNCOMMON}~{1375,1,1,0.0,UNCOMMON}~{807,2,2,0.0,UNCOMMON}~{1207,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1075,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1101,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{946,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{2694,1,1,0.0,RARE}~{2735,1,1,0.0,RARE}', ''), +(4479, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2691,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4480, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2690,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4481, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2680,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4482, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2710,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4483, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2695,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4484, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2693,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4485, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2711,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4486, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2679,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4487, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2695,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4488, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2695,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4489, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2683,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4490, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2691,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4491, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2678,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(4492, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2704,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4499, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2712,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4527, '', '{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{9079,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{2727,1,1,0.0,UNCOMMON}~{995,325,400,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.655,ALWAYS}~{12158,1,1,0.13,ALWAYS}~{12159,1,1,0.08,ALWAYS}~{12160,1,1,0.06,ALWAYS}~{12163,1,1,0.075,ALWAYS}'), +(4528, '', '{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{9079,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{2735,1,1,0.0,UNCOMMON}~{995,325,400,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.655,ALWAYS}~{12158,1,1,0.13,ALWAYS}~{12159,1,1,0.08,ALWAYS}~{12160,1,1,0.06,ALWAYS}~{12163,1,1,0.075,ALWAYS}'), +(4529, '', '{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{9079,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{2747,1,1,0.0,UNCOMMON}~{995,325,400,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.655,ALWAYS}~{12158,1,1,0.13,ALWAYS}~{12159,1,1,0.08,ALWAYS}~{12160,1,1,0.06,ALWAYS}~{12163,1,1,0.075,ALWAYS}'), +(4530, '', '{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{9079,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{2741,1,1,0.0,UNCOMMON}~{995,325,400,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.655,ALWAYS}~{12158,1,1,0.13,ALWAYS}~{12159,1,1,0.08,ALWAYS}~{12160,1,1,0.06,ALWAYS}~{12163,1,1,0.075,ALWAYS}'), +(4531, '', '{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{9079,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{2741,1,1,0.0,UNCOMMON}~{995,325,400,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.655,ALWAYS}~{12158,1,1,0.13,ALWAYS}~{12159,1,1,0.08,ALWAYS}~{12160,1,1,0.06,ALWAYS}~{12163,1,1,0.075,ALWAYS}'), +(4532, '', '{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{9079,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{2739,1,1,0.0,UNCOMMON}~{995,325,400,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.655,ALWAYS}~{12158,1,1,0.13,ALWAYS}~{12159,1,1,0.08,ALWAYS}~{12160,1,1,0.06,ALWAYS}~{12163,1,1,0.075,ALWAYS}'), +(4533, '', '{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{9079,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{2737,1,1,0.0,UNCOMMON}~{995,325,400,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.655,ALWAYS}~{12158,1,1,0.13,ALWAYS}~{12159,1,1,0.08,ALWAYS}~{12160,1,1,0.06,ALWAYS}~{12163,1,1,0.075,ALWAYS}'), +(4534, '{532,1,1,0.0,ALWAYS}', '{1389,1,1,0.0,COMMON}~{1243,1,1,0.0,COMMON}~{1285,1,1,0.0,COMMON}~{886,30,30,0.0,COMMON}~{884,15,15,0.0,COMMON}~{1287,1,1,0.0,RARE}~{1165,1,1,0.0,COMMON}~{1179,1,1,0.0,COMMON}~{1141,1,1,0.0,COMMON}~{1193,1,1,0.0,UNCOMMON}~{556,18,18,0.0,COMMON}~{564,3,3,0.0,COMMON}~{557,27,27,0.0,COMMON}~{561,6,6,0.0,COMMON}~{563,3,6,0.0,UNCOMMON}~{565,1,1,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{560,13,13,0.0,RARE}~{5323,1,1,0.0,COMMON}~{5311,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5104,1,1,0.0,COMMON}~{5292,1,1,0.0,COMMON}~{5281,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{4206,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,RARE}~{5280,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5106,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{211,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{995,2,500,0.0,COMMON}~{2353,1,1,0.0,COMMON}~{7871,1,1,0.0,COMMON}~{453,1,1,0.0,UNCOMMON}~{1969,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{10976,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(4546, '{526,1,1,0.0,ALWAYS}', '{1025,1,1,0.0,UNCOMMON}', ''), +(4577, '', '{2998,3,3,0.0,UNCOMMON}~{3000,1,1,0.0,UNCOMMON}~{751,1,1,0.0,UNCOMMON}~{9469,5,10,0.0,UNCOMMON}~{9475,8,10,0.0,UNCOMMON}~{4605,1,1,0.0,UNCOMMON}~{985,1,1,0.0,UNCOMMON}~{987,1,1,0.0,UNCOMMON}~{5075,1,1,0.0,UNCOMMON}', ''), +(4585, '', '{564,10,19,0.0,UNCOMMON}~{562,16,27,0.0,UNCOMMON}~{561,9,15,0.0,UNCOMMON}~{563,7,18,0.0,UNCOMMON}~{560,7,13,0.0,UNCOMMON}~{565,6,10,0.0,UNCOMMON}~{566,5,11,0.0,UNCOMMON}~{7936,51,97,0.0,UNCOMMON}~{1624,1,16,0.0,UNCOMMON}~{1622,3,5,0.0,UNCOMMON}~{1620,2,4,0.0,UNCOMMON}~{1617,1,1,0.0,UNCOMMON}~{2998,3,3,0.0,UNCOMMON}~{3000,1,1,0.0,UNCOMMON}~{751,1,1,0.0,UNCOMMON}~{9469,8,15,0.0,UNCOMMON}~{9475,8,10,0.0,UNCOMMON}~{985,1,1,0.0,UNCOMMON}', ''), +(4603, '{526,1,1,0.0,ALWAYS}', '{556,1,1,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,UNCOMMON}~{557,1,1,0.0,COMMON}~{561,1,1,0.0,UNCOMMON}~{554,1,1,0.0,COMMON}~{882,1,1,0.0,COMMON}~{886,1,1,0.0,UNCOMMON}~{1446,1,1,0.0,COMMON}~{5324,1,1,0.0,UNCOMMON}~{995,1,1,0.0,COMMON}~{1947,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,COMMON}~{440,1,1,0.0,UNCOMMON}~{5318,1,1,0.0,UNCOMMON}', ''), +(4604, '{526,1,1,0.0,ALWAYS}', '{556,1,1,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,UNCOMMON}~{557,1,1,0.0,COMMON}~{561,1,1,0.0,UNCOMMON}~{554,1,1,0.0,COMMON}~{882,1,1,0.0,COMMON}~{886,1,1,0.0,UNCOMMON}~{1446,1,1,0.0,COMMON}~{5324,1,1,0.0,UNCOMMON}~{995,1,1,0.0,COMMON}~{1947,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,COMMON}~{440,1,1,0.0,UNCOMMON}~{5318,1,1,0.0,UNCOMMON}', ''), +(4605, '{526,1,1,0.0,ALWAYS}', '{556,1,1,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,UNCOMMON}~{557,1,1,0.0,COMMON}~{561,1,1,0.0,UNCOMMON}~{554,1,1,0.0,COMMON}~{882,1,1,0.0,COMMON}~{886,1,1,0.0,UNCOMMON}~{1446,1,1,0.0,COMMON}~{5324,1,1,0.0,UNCOMMON}~{995,1,1,0.0,COMMON}~{1947,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,COMMON}~{440,1,1,0.0,UNCOMMON}~{5318,1,1,0.0,UNCOMMON}', ''), +(4606, '{526,1,1,0.0,ALWAYS}', '{556,1,1,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,UNCOMMON}~{557,1,1,0.0,COMMON}~{561,1,1,0.0,UNCOMMON}~{554,1,1,0.0,COMMON}~{882,1,1,0.0,COMMON}~{886,1,1,0.0,UNCOMMON}~{1446,1,1,0.0,COMMON}~{5324,1,1,0.0,UNCOMMON}~{995,1,1,0.0,COMMON}~{1947,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,COMMON}~{440,1,1,0.0,UNCOMMON}~{5318,1,1,0.0,UNCOMMON}', ''), +(4633, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2691,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4634, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2703,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4635, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2699,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4636, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2681,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4637, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2696,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(4649, '{526,1,1,0.0,ALWAYS}', '{1311,1,1,0.0,UNCOMMON}~{1365,1,1,0.0,UNCOMMON}~{1353,1,1,0.0,UNCOMMON}~{1197,1,1,0.0,COMMON}~{1163,1,1,0.0,UNCOMMON}~{1073,1,1,0.0,UNCOMMON}~{1135,1,1,0.0,UNCOMMON}~{1065,1,1,0.0,UNCOMMON}~{1099,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{995,1,220,0.0,COMMON}~{554,75,75,0.0,UNCOMMON}~{2357,1,1,0.0,UNCOMMON}~{361,1,1,0.0,UNCOMMON}~{562,15,15,0.0,UNCOMMON}~{1734,10,10,0.0,UNCOMMON}~{2729,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(4658, '{526,1,1,0.0,ALWAYS}', '{557,10,10,0.0,COMMON}~{557,18,18,0.0,COMMON}~{556,10,10,0.0,COMMON}~{556,18,18,0.0,COMMON}~{555,10,10,0.0,COMMON}~{555,18,18,0.0,COMMON}~{554,10,10,0.0,COMMON}~{554,18,18,0.0,COMMON}~{558,10,10,0.0,COMMON}~{558,18,18,0.0,COMMON}~{559,10,10,0.0,COMMON}~{559,18,18,0.0,COMMON}~{562,4,4,0.0,COMMON}~{562,5,5,0.0,COMMON}~{561,2,5,0.0,UNCOMMON}~{563,3,3,0.0,COMMON}~{564,2,2,0.0,UNCOMMON}~{564,4,4,0.0,UNCOMMON}~{565,2,2,0.0,COMMON}~{565,4,4,0.0,COMMON}~{995,1,30,0.0,COMMON}~{1379,1,1,0.0,COMMON}~{1381,1,1,0.0,COMMON}~{1444,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,COMMON}~{1440,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{1383,3,3,0.0,RARE}', ''), +(4659, '{526,1,1,0.0,ALWAYS}', '{557,10,10,0.0,COMMON}~{557,18,18,0.0,COMMON}~{556,10,10,0.0,COMMON}~{556,18,18,0.0,COMMON}~{555,10,10,0.0,COMMON}~{555,18,18,0.0,COMMON}~{554,10,10,0.0,COMMON}~{554,18,18,0.0,COMMON}~{558,10,10,0.0,COMMON}~{558,18,18,0.0,COMMON}~{559,10,10,0.0,COMMON}~{559,18,18,0.0,COMMON}~{562,4,4,0.0,COMMON}~{562,5,5,0.0,COMMON}~{561,2,5,0.0,UNCOMMON}~{563,3,3,0.0,COMMON}~{564,2,2,0.0,UNCOMMON}~{564,4,4,0.0,UNCOMMON}~{565,2,2,0.0,COMMON}~{565,4,4,0.0,COMMON}~{995,1,30,0.0,COMMON}~{1379,1,1,0.0,COMMON}~{1381,1,1,0.0,COMMON}~{1444,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,COMMON}~{1440,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{1383,3,3,0.0,RARE}', ''), +(4660, '{526,1,1,0.0,ALWAYS}', '{557,10,10,0.0,COMMON}~{557,18,18,0.0,COMMON}~{556,10,10,0.0,COMMON}~{556,18,18,0.0,COMMON}~{555,10,10,0.0,COMMON}~{555,18,18,0.0,COMMON}~{554,10,10,0.0,COMMON}~{554,18,18,0.0,COMMON}~{558,10,10,0.0,COMMON}~{558,18,18,0.0,COMMON}~{559,10,10,0.0,COMMON}~{559,18,18,0.0,COMMON}~{562,4,4,0.0,COMMON}~{562,5,5,0.0,COMMON}~{561,2,5,0.0,UNCOMMON}~{563,3,3,0.0,COMMON}~{564,2,2,0.0,UNCOMMON}~{564,4,4,0.0,UNCOMMON}~{565,2,2,0.0,COMMON}~{565,4,4,0.0,COMMON}~{995,1,30,0.0,COMMON}~{1379,1,1,0.0,COMMON}~{1381,1,1,0.0,COMMON}~{1444,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,COMMON}~{1440,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{1383,3,3,0.0,RARE}', ''), +(4661, '{526,1,1,0.0,ALWAYS}', '{557,10,10,0.0,COMMON}~{557,18,18,0.0,COMMON}~{556,10,10,0.0,COMMON}~{556,18,18,0.0,COMMON}~{555,10,10,0.0,COMMON}~{555,18,18,0.0,COMMON}~{554,10,10,0.0,COMMON}~{554,18,18,0.0,COMMON}~{558,10,10,0.0,COMMON}~{558,18,18,0.0,COMMON}~{559,10,10,0.0,COMMON}~{559,18,18,0.0,COMMON}~{562,4,4,0.0,COMMON}~{562,5,5,0.0,COMMON}~{561,2,5,0.0,UNCOMMON}~{563,3,3,0.0,COMMON}~{564,2,2,0.0,UNCOMMON}~{564,4,4,0.0,UNCOMMON}~{565,2,2,0.0,COMMON}~{565,4,4,0.0,COMMON}~{995,1,30,0.0,COMMON}~{1379,1,1,0.0,COMMON}~{1381,1,1,0.0,COMMON}~{1444,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,COMMON}~{1440,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{1383,3,3,0.0,RARE}', ''), +(4665, '{534,1,1,0.0,ALWAYS}', '', ''), +(4666, '{534,1,1,0.0,ALWAYS}', '', ''), +(4667, '{534,1,1,0.0,ALWAYS}', '', ''), +(4668, '{534,1,1,0.0,ALWAYS}', '', ''), +(4669, '{536,1,1,0.0,ALWAYS}~{1749,1,1,0.0,ALWAYS}', '{1315,1,1,0.0,COMMON}~{828,20,20,0.0,COMMON}~{1355,1,1,0.0,COMMON}~{1197,1,1,0.0,UNCOMMON}~{1123,1,1,0.0,UNCOMMON}~{1369,1,1,0.0,UNCOMMON}~{892,4,4,0.0,UNCOMMON}~{811,8,8,0.0,UNCOMMON}~{1303,1,1,0.0,UNCOMMON}~{563,4,4,0.0,UNCOMMON}~{560,5,5,0.0,UNCOMMON}~{565,2,2,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,30,690,0.0,COMMON}~{1897,3,3,0.0,UNCOMMON}~{2361,1,1,0.0,UNCOMMON}~{2747,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.215,ALWAYS}~{12158,1,1,0.185,ALWAYS}~{12159,1,1,0.4,ALWAYS}~{12160,1,1,0.165,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(4670, '{536,1,1,0.0,ALWAYS}~{1749,1,1,0.0,ALWAYS}', '{1315,1,1,0.0,COMMON}~{828,20,20,0.0,COMMON}~{1355,1,1,0.0,COMMON}~{1197,1,1,0.0,UNCOMMON}~{1123,1,1,0.0,UNCOMMON}~{1369,1,1,0.0,UNCOMMON}~{892,4,4,0.0,UNCOMMON}~{811,8,8,0.0,UNCOMMON}~{1303,1,1,0.0,UNCOMMON}~{563,4,4,0.0,UNCOMMON}~{560,5,5,0.0,UNCOMMON}~{565,2,2,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,30,690,0.0,COMMON}~{1897,3,3,0.0,UNCOMMON}~{2361,1,1,0.0,UNCOMMON}~{2725,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.215,ALWAYS}~{12158,1,1,0.185,ALWAYS}~{12159,1,1,0.4,ALWAYS}~{12160,1,1,0.165,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(4671, '{536,1,1,0.0,ALWAYS}~{1749,1,1,0.0,ALWAYS}', '{1315,1,1,0.0,COMMON}~{828,20,20,0.0,COMMON}~{1355,1,1,0.0,COMMON}~{1197,1,1,0.0,UNCOMMON}~{1123,1,1,0.0,UNCOMMON}~{1369,1,1,0.0,UNCOMMON}~{892,4,4,0.0,UNCOMMON}~{811,8,8,0.0,UNCOMMON}~{1303,1,1,0.0,UNCOMMON}~{563,4,4,0.0,UNCOMMON}~{560,5,5,0.0,UNCOMMON}~{565,2,2,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,30,690,0.0,COMMON}~{1897,3,3,0.0,UNCOMMON}~{2361,1,1,0.0,UNCOMMON}~{2731,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.215,ALWAYS}~{12158,1,1,0.185,ALWAYS}~{12159,1,1,0.4,ALWAYS}~{12160,1,1,0.165,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(4672, '{536,1,1,0.0,ALWAYS}~{1749,1,1,0.0,ALWAYS}', '{1315,1,1,0.0,COMMON}~{828,20,20,0.0,COMMON}~{1355,1,1,0.0,COMMON}~{1197,1,1,0.0,UNCOMMON}~{1123,1,1,0.0,UNCOMMON}~{1369,1,1,0.0,UNCOMMON}~{892,4,4,0.0,UNCOMMON}~{811,8,8,0.0,UNCOMMON}~{1303,1,1,0.0,UNCOMMON}~{563,4,4,0.0,UNCOMMON}~{560,5,5,0.0,UNCOMMON}~{565,2,2,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,30,690,0.0,COMMON}~{1897,3,3,0.0,UNCOMMON}~{2361,1,1,0.0,UNCOMMON}~{2727,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.215,ALWAYS}~{12158,1,1,0.185,ALWAYS}~{12159,1,1,0.4,ALWAYS}~{12160,1,1,0.165,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(4673, '{536,1,1,0.0,ALWAYS}~{1747,1,1,0.0,ALWAYS}', '{1355,1,1,0.0,UNCOMMON}~{1361,1,1,0.0,UNCOMMON}~{1369,1,1,0.0,UNCOMMON}~{1315,1,1,0.0,UNCOMMON}~{1123,1,1,0.0,UNCOMMON}~{1303,1,1,0.0,RARE}~{1185,1,1,0.0,RARE}~{1373,1,1,0.0,RARE}~{1319,1,1,0.0,RARE}~{810,16,16,0.0,COMMON}~{829,30,30,0.0,COMMON}~{868,2,2,0.0,UNCOMMON}~{811,10,10,0.0,UNCOMMON}~{556,75,75,0.0,UNCOMMON}~{565,15,15,0.0,UNCOMMON}~{560,45,45,0.0,RARE}~{554,50,50,0.0,UNCOMMON}~{563,10,12,0.0,UNCOMMON}~{563,45,45,0.0,UNCOMMON}~{561,67,79,0.0,UNCOMMON}~{562,90,90,0.0,UNCOMMON}~{2361,1,2,0.0,UNCOMMON}~{2353,1,1,0.0,RARE}~{995,129,3000,0.0,COMMON}~{2739,1,1,0.0,UNCOMMON}~{1897,1,1,0.0,UNCOMMON}~{12480,1,1,0.0,RARE}~{1897,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}~{11286,1,1,0.0,VERY_RARE,10000}', '{0,1,1,0.5700000000000001,ALWAYS}~{12158,1,1,0.085,ALWAYS}~{12159,1,1,0.26,ALWAYS}~{12160,1,1,0.07,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4674, '{536,1,1,0.0,ALWAYS}~{1747,1,1,0.0,ALWAYS}', '{1355,1,1,0.0,UNCOMMON}~{1361,1,1,0.0,UNCOMMON}~{1369,1,1,0.0,UNCOMMON}~{1315,1,1,0.0,UNCOMMON}~{1123,1,1,0.0,UNCOMMON}~{1303,1,1,0.0,RARE}~{1185,1,1,0.0,RARE}~{1373,1,1,0.0,RARE}~{1319,1,1,0.0,RARE}~{810,16,16,0.0,COMMON}~{829,30,30,0.0,COMMON}~{868,2,2,0.0,UNCOMMON}~{811,10,10,0.0,UNCOMMON}~{556,75,75,0.0,UNCOMMON}~{565,15,15,0.0,UNCOMMON}~{560,45,45,0.0,RARE}~{554,50,50,0.0,UNCOMMON}~{563,10,12,0.0,UNCOMMON}~{563,45,45,0.0,UNCOMMON}~{561,67,79,0.0,UNCOMMON}~{562,90,90,0.0,UNCOMMON}~{2361,1,2,0.0,UNCOMMON}~{2353,1,1,0.0,RARE}~{995,129,3000,0.0,COMMON}~{2739,1,1,0.0,UNCOMMON}~{1897,1,1,0.0,UNCOMMON}~{12480,1,1,0.0,RARE}~{9431,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}~{11286,1,1,0.0,VERY_RARE,10000}', '{0,1,1,0.5700000000000001,ALWAYS}~{12158,1,1,0.085,ALWAYS}~{12159,1,1,0.26,ALWAYS}~{12160,1,1,0.07,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4675, '{536,1,1,0.0,ALWAYS}~{1747,1,1,0.0,ALWAYS}', '{1355,1,1,0.0,UNCOMMON}~{1361,1,1,0.0,UNCOMMON}~{1369,1,1,0.0,UNCOMMON}~{1315,1,1,0.0,UNCOMMON}~{1123,1,1,0.0,UNCOMMON}~{1303,1,1,0.0,RARE}~{1185,1,1,0.0,RARE}~{1373,1,1,0.0,RARE}~{1319,1,1,0.0,RARE}~{810,16,16,0.0,COMMON}~{829,30,30,0.0,COMMON}~{868,2,2,0.0,UNCOMMON}~{811,10,10,0.0,UNCOMMON}~{556,75,75,0.0,UNCOMMON}~{565,15,15,0.0,UNCOMMON}~{560,45,45,0.0,RARE}~{554,50,50,0.0,UNCOMMON}~{563,10,12,0.0,UNCOMMON}~{563,45,45,0.0,UNCOMMON}~{561,67,79,0.0,UNCOMMON}~{562,90,90,0.0,UNCOMMON}~{2361,1,2,0.0,UNCOMMON}~{2353,1,1,0.0,RARE}~{995,129,3000,0.0,COMMON}~{2739,1,1,0.0,UNCOMMON}~{1897,1,1,0.0,UNCOMMON}~{12480,1,1,0.0,RARE}~{995,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}~{11286,1,1,0.0,VERY_RARE,10000}', '{0,1,1,0.5700000000000001,ALWAYS}~{12158,1,1,0.085,ALWAYS}~{12159,1,1,0.26,ALWAYS}~{12160,1,1,0.07,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4676, '{536,1,1,0.0,ALWAYS}~{1747,1,1,0.0,ALWAYS}', '{1355,1,1,0.0,UNCOMMON}~{1361,1,1,0.0,UNCOMMON}~{1369,1,1,0.0,UNCOMMON}~{1315,1,1,0.0,UNCOMMON}~{1123,1,1,0.0,UNCOMMON}~{1303,1,1,0.0,RARE}~{1185,1,1,0.0,RARE}~{1373,1,1,0.0,RARE}~{1319,1,1,0.0,RARE}~{810,16,16,0.0,COMMON}~{829,30,30,0.0,COMMON}~{868,2,2,0.0,UNCOMMON}~{811,10,10,0.0,UNCOMMON}~{556,75,75,0.0,UNCOMMON}~{565,15,15,0.0,UNCOMMON}~{560,45,45,0.0,RARE}~{554,50,50,0.0,UNCOMMON}~{563,10,12,0.0,UNCOMMON}~{563,45,45,0.0,UNCOMMON}~{561,67,79,0.0,UNCOMMON}~{562,90,90,0.0,UNCOMMON}~{2361,1,2,0.0,UNCOMMON}~{2353,1,1,0.0,RARE}~{995,129,3000,0.0,COMMON}~{2739,1,1,0.0,UNCOMMON}~{1897,1,1,0.0,UNCOMMON}~{12480,1,1,0.0,RARE}~{995,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}~{11286,1,1,0.0,COMMON,10000}', '{0,1,1,0.5700000000000001,ALWAYS}~{12158,1,1,0.085,ALWAYS}~{12159,1,1,0.26,ALWAYS}~{12160,1,1,0.07,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4677, '{536,1,1,0.0,ALWAYS}~{1753,1,1,0.0,ALWAYS}', '{1069,1,1,0.0,COMMON}~{1197,1,1,0.0,UNCOMMON}~{1161,1,1,0.0,RARE}~{1365,1,1,0.0,COMMON}~{1355,1,1,0.0,COMMON}~{1243,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,UNCOMMON}~{555,75,150,0.0,COMMON}~{554,37,37,0.0,COMMON}~{561,15,15,0.0,COMMON}~{561,30,30,0.0,COMMON}~{563,3,3,0.0,COMMON}~{209,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{199,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,11,440,0.0,COMMON}~{365,1,1,0.0,COMMON}~{449,1,1,0.0,UNCOMMON}~{2733,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.66,ALWAYS}~{12158,1,1,0.085,ALWAYS}~{12159,1,1,0.165,ALWAYS}~{12160,1,1,0.075,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4678, '{536,1,1,0.0,ALWAYS}~{1753,1,1,0.0,ALWAYS}', '{1069,1,1,0.0,COMMON}~{1197,1,1,0.0,UNCOMMON}~{1161,1,1,0.0,RARE}~{1365,1,1,0.0,COMMON}~{1355,1,1,0.0,COMMON}~{1243,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,UNCOMMON}~{555,75,150,0.0,COMMON}~{554,37,37,0.0,COMMON}~{561,15,15,0.0,COMMON}~{561,30,30,0.0,COMMON}~{563,3,3,0.0,COMMON}~{209,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{199,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,11,440,0.0,COMMON}~{365,1,1,0.0,COMMON}~{449,1,1,0.0,UNCOMMON}~{2743,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.66,ALWAYS}~{12158,1,1,0.085,ALWAYS}~{12159,1,1,0.165,ALWAYS}~{12160,1,1,0.075,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4679, '{536,1,1,0.0,ALWAYS}~{1753,1,1,0.0,ALWAYS}', '{1069,1,1,0.0,COMMON}~{1197,1,1,0.0,UNCOMMON}~{1161,1,1,0.0,RARE}~{1365,1,1,0.0,COMMON}~{1355,1,1,0.0,COMMON}~{1243,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,UNCOMMON}~{555,75,150,0.0,COMMON}~{554,37,37,0.0,COMMON}~{561,15,15,0.0,COMMON}~{561,30,30,0.0,COMMON}~{563,3,3,0.0,COMMON}~{209,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{199,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,11,440,0.0,COMMON}~{365,1,1,0.0,COMMON}~{449,1,1,0.0,UNCOMMON}~{2731,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.66,ALWAYS}~{12158,1,1,0.085,ALWAYS}~{12159,1,1,0.165,ALWAYS}~{12160,1,1,0.075,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4680, '{536,1,1,0.0,ALWAYS}~{1753,1,1,0.0,ALWAYS}', '{1069,1,1,0.0,COMMON}~{1197,1,1,0.0,UNCOMMON}~{1161,1,1,0.0,RARE}~{1365,1,1,0.0,COMMON}~{1355,1,1,0.0,COMMON}~{1243,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,UNCOMMON}~{555,75,150,0.0,COMMON}~{554,37,37,0.0,COMMON}~{561,15,15,0.0,COMMON}~{561,30,30,0.0,COMMON}~{563,3,3,0.0,COMMON}~{209,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{199,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,11,440,0.0,COMMON}~{365,1,1,0.0,COMMON}~{449,1,1,0.0,UNCOMMON}~{2737,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.66,ALWAYS}~{12158,1,1,0.085,ALWAYS}~{12159,1,1,0.165,ALWAYS}~{12160,1,1,0.075,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4681, '{536,1,1,0.0,ALWAYS}~{1751,1,1,0.0,ALWAYS}', '{1365,1,1,0.0,UNCOMMON}~{1355,1,1,0.0,UNCOMMON}~{1243,1,1,0.0,UNCOMMON}~{1211,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,RARE}~{1069,1,1,0.0,COMMON}~{1197,1,1,0.0,UNCOMMON}~{1161,1,1,0.0,UNCOMMON}~{555,75,75,0.0,COMMON}~{561,15,15,0.0,UNCOMMON}~{554,37,37,0.0,UNCOMMON}~{563,3,3,0.0,UNCOMMON}~{560,5,5,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{995,11,454,0.0,COMMON}~{449,1,1,0.0,UNCOMMON}~{365,1,1,0.0,UNCOMMON}~{2743,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.495,ALWAYS}~{12158,1,1,0.11,ALWAYS}~{12159,1,1,0.27,ALWAYS}~{12160,1,1,0.105,ALWAYS}~{12163,1,1,0.02,ALWAYS}'), +(4682, '{536,1,1,0.0,ALWAYS}~{1751,1,1,0.0,ALWAYS}', '{1365,1,1,0.0,UNCOMMON}~{1355,1,1,0.0,UNCOMMON}~{1243,1,1,0.0,UNCOMMON}~{1211,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,RARE}~{1069,1,1,0.0,COMMON}~{1197,1,1,0.0,UNCOMMON}~{1161,1,1,0.0,UNCOMMON}~{555,75,75,0.0,COMMON}~{561,15,15,0.0,UNCOMMON}~{554,37,37,0.0,UNCOMMON}~{563,3,3,0.0,UNCOMMON}~{560,5,5,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{995,11,454,0.0,COMMON}~{449,1,1,0.0,UNCOMMON}~{365,1,1,0.0,UNCOMMON}~{2729,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.495,ALWAYS}~{12158,1,1,0.11,ALWAYS}~{12159,1,1,0.27,ALWAYS}~{12160,1,1,0.105,ALWAYS}~{12163,1,1,0.02,ALWAYS}'), +(4683, '{536,1,1,0.0,ALWAYS}~{1751,1,1,0.0,ALWAYS}', '{1365,1,1,0.0,UNCOMMON}~{1355,1,1,0.0,UNCOMMON}~{1243,1,1,0.0,UNCOMMON}~{1211,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,RARE}~{1069,1,1,0.0,COMMON}~{1197,1,1,0.0,UNCOMMON}~{1161,1,1,0.0,UNCOMMON}~{555,75,75,0.0,COMMON}~{561,15,15,0.0,UNCOMMON}~{554,37,37,0.0,UNCOMMON}~{563,3,3,0.0,UNCOMMON}~{560,5,5,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{995,11,454,0.0,COMMON}~{449,1,1,0.0,UNCOMMON}~{365,1,1,0.0,UNCOMMON}~{2735,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.495,ALWAYS}~{12158,1,1,0.11,ALWAYS}~{12159,1,1,0.27,ALWAYS}~{12160,1,1,0.105,ALWAYS}~{12163,1,1,0.02,ALWAYS}'), +(4684, '{536,1,1,0.0,ALWAYS}~{1751,1,1,0.0,ALWAYS}', '{1365,1,1,0.0,UNCOMMON}~{1355,1,1,0.0,UNCOMMON}~{1243,1,1,0.0,UNCOMMON}~{1211,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,RARE}~{1069,1,1,0.0,COMMON}~{1197,1,1,0.0,UNCOMMON}~{1161,1,1,0.0,UNCOMMON}~{555,75,75,0.0,COMMON}~{561,15,15,0.0,UNCOMMON}~{554,37,37,0.0,UNCOMMON}~{563,3,3,0.0,UNCOMMON}~{560,5,5,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{995,11,454,0.0,COMMON}~{449,1,1,0.0,UNCOMMON}~{365,1,1,0.0,UNCOMMON}~{2727,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.495,ALWAYS}~{12158,1,1,0.11,ALWAYS}~{12159,1,1,0.27,ALWAYS}~{12160,1,1,0.105,ALWAYS}~{12163,1,1,0.02,ALWAYS}'), +(4685, '{532,1,1,0.0,ALWAYS}', '{1363,1,1,0.0,COMMON}~{1067,1,1,0.0,COMMON}~{1309,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{1281,1,1,0.0,COMMON}~{1195,1,1,0.0,COMMON}~{890,5,5,0.0,UNCOMMON}~{1181,1,1,0.0,RARE}~{1428,1,1,0.0,RARE}~{555,12,12,0.0,COMMON}~{558,24,24,0.0,COMMON}~{559,37,37,0.0,COMMON}~{564,2,4,0.0,COMMON}~{563,3,3,0.0,UNCOMMON}~{561,6,6,0.0,UNCOMMON}~{560,2,4,0.0,RARE}~{565,2,4,0.0,RARE}~{5292,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5323,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,RARE}~{5296,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5298,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5311,1,1,0.0,RARE}~{5280,1,1,0.0,RARE}~{5281,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5106,1,1,0.0,RARE}~{995,8,450,0.0,COMMON}~{7875,1,1,0.0,COMMON}~{1963,1,1,0.0,UNCOMMON}~{1993,1,1,0.0,UNCOMMON}~{447,1,1,0.0,UNCOMMON}~{1454,1,1,0.0,RARE}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{2819,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(4686, '{532,1,1,0.0,ALWAYS}', '{1363,1,1,0.0,COMMON}~{1067,1,1,0.0,COMMON}~{1309,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{1281,1,1,0.0,COMMON}~{1195,1,1,0.0,COMMON}~{890,5,5,0.0,UNCOMMON}~{1181,1,1,0.0,RARE}~{1428,1,1,0.0,RARE}~{555,12,12,0.0,COMMON}~{558,24,24,0.0,COMMON}~{559,37,37,0.0,COMMON}~{564,2,4,0.0,COMMON}~{563,3,3,0.0,UNCOMMON}~{561,6,6,0.0,UNCOMMON}~{560,2,4,0.0,RARE}~{565,2,4,0.0,RARE}~{5292,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5323,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,RARE}~{5296,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5298,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5311,1,1,0.0,RARE}~{5280,1,1,0.0,RARE}~{5281,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5106,1,1,0.0,RARE}~{995,8,450,0.0,COMMON}~{7875,1,1,0.0,COMMON}~{1963,1,1,0.0,UNCOMMON}~{1993,1,1,0.0,UNCOMMON}~{447,1,1,0.0,UNCOMMON}~{1454,1,1,0.0,RARE}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{2807,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(4687, '{532,1,1,0.0,ALWAYS}', '{1363,1,1,0.0,COMMON}~{1067,1,1,0.0,COMMON}~{1309,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{1281,1,1,0.0,COMMON}~{1195,1,1,0.0,COMMON}~{890,5,5,0.0,UNCOMMON}~{1181,1,1,0.0,RARE}~{1428,1,1,0.0,RARE}~{555,12,12,0.0,COMMON}~{558,24,24,0.0,COMMON}~{559,37,37,0.0,COMMON}~{564,2,4,0.0,COMMON}~{563,3,3,0.0,UNCOMMON}~{561,6,6,0.0,UNCOMMON}~{560,2,4,0.0,RARE}~{565,2,4,0.0,RARE}~{5292,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5323,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,RARE}~{5296,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5298,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5311,1,1,0.0,RARE}~{5280,1,1,0.0,RARE}~{5281,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5106,1,1,0.0,RARE}~{995,8,450,0.0,COMMON}~{7875,1,1,0.0,COMMON}~{1963,1,1,0.0,UNCOMMON}~{1993,1,1,0.0,UNCOMMON}~{447,1,1,0.0,UNCOMMON}~{1454,1,1,0.0,RARE}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{2835,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(4688, '{532,1,1,0.0,ALWAYS}', '{1389,1,1,0.0,COMMON}~{1243,1,1,0.0,COMMON}~{1285,1,1,0.0,COMMON}~{886,30,30,0.0,COMMON}~{884,15,15,0.0,COMMON}~{1287,1,1,0.0,RARE}~{1165,1,1,0.0,COMMON}~{1179,1,1,0.0,COMMON}~{1141,1,1,0.0,COMMON}~{1193,1,1,0.0,UNCOMMON}~{556,18,18,0.0,COMMON}~{564,3,3,0.0,COMMON}~{557,27,27,0.0,COMMON}~{561,6,6,0.0,COMMON}~{563,3,6,0.0,UNCOMMON}~{565,1,1,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{560,13,13,0.0,RARE}~{5323,1,1,0.0,COMMON}~{5311,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5104,1,1,0.0,COMMON}~{5292,1,1,0.0,COMMON}~{5281,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{4206,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,RARE}~{5280,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5106,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{211,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{995,2,500,0.0,COMMON}~{2353,1,1,0.0,COMMON}~{7871,1,1,0.0,COMMON}~{453,1,1,0.0,UNCOMMON}~{1969,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{10976,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(4689, '{532,1,1,0.0,ALWAYS}', '{884,3,3,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1153,1,1,0.0,COMMON}~{886,10,15,0.0,UNCOMMON}~{1191,1,1,0.0,COMMON}~{1295,1,1,0.0,UNCOMMON}~{1309,1,1,0.0,UNCOMMON}~{888,1,1,0.0,RARE}~{1207,1,1,0.0,COMMON}~{1119,1,1,0.0,UNCOMMON}~{890,1,5,0.0,RARE}~{555,7,7,0.0,COMMON}~{554,15,15,0.0,COMMON}~{564,2,2,0.0,COMMON}~{563,2,3,0.0,UNCOMMON}~{561,6,6,0.0,UNCOMMON}~{558,3,3,0.0,COMMON}~{560,2,2,0.0,RARE}~{562,2,2,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{207,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{5322,1,3,0.0,COMMON}~{5306,1,3,0.0,UNCOMMON}~{5318,1,4,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5319,8,8,0.0,COMMON}~{5323,2,2,0.0,COMMON}~{5324,4,4,0.0,COMMON}~{5307,2,3,0.0,UNCOMMON}~{5100,1,1,0.0,RARE}~{5320,3,3,0.0,RARE}~{5302,1,1,0.0,UNCOMMON}~{5321,2,2,0.0,RARE}~{5308,3,3,0.0,UNCOMMON}~{995,8,8,0.0,COMMON}~{995,15,15,0.0,COMMON}~{225,1,1,0.1,COMMON}~{1917,1,1,0.0,COMMON}~{1446,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(4690, '{532,1,1,0.0,ALWAYS}', '{884,3,3,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1153,1,1,0.0,COMMON}~{886,10,15,0.0,UNCOMMON}~{1191,1,1,0.0,COMMON}~{1295,1,1,0.0,UNCOMMON}~{1309,1,1,0.0,UNCOMMON}~{888,1,1,0.0,RARE}~{1207,1,1,0.0,COMMON}~{1119,1,1,0.0,UNCOMMON}~{890,1,5,0.0,RARE}~{555,7,7,0.0,COMMON}~{554,15,15,0.0,COMMON}~{564,2,2,0.0,COMMON}~{563,2,3,0.0,UNCOMMON}~{561,6,6,0.0,UNCOMMON}~{558,3,3,0.0,COMMON}~{560,2,2,0.0,RARE}~{562,2,2,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{207,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{5322,1,3,0.0,COMMON}~{5306,1,3,0.0,UNCOMMON}~{5318,1,4,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5319,8,8,0.0,COMMON}~{5323,2,2,0.0,COMMON}~{5324,4,4,0.0,COMMON}~{5307,2,3,0.0,UNCOMMON}~{5100,1,1,0.0,RARE}~{5320,3,3,0.0,RARE}~{5302,1,1,0.0,UNCOMMON}~{5321,2,2,0.0,RARE}~{5308,3,3,0.0,UNCOMMON}~{995,8,8,0.0,COMMON}~{995,15,15,0.0,COMMON}~{225,1,1,0.0,COMMON}~{1917,1,1,0.0,COMMON}~{1446,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(4691, '{532,1,1,0.0,ALWAYS}', '{884,3,3,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1153,1,1,0.0,COMMON}~{886,10,15,0.0,UNCOMMON}~{1191,1,1,0.0,COMMON}~{1295,1,1,0.0,UNCOMMON}~{1309,1,1,0.0,UNCOMMON}~{888,1,1,0.0,RARE}~{1207,1,1,0.0,COMMON}~{1119,1,1,0.0,UNCOMMON}~{890,1,5,0.0,RARE}~{555,7,7,0.0,COMMON}~{554,15,15,0.0,COMMON}~{564,2,2,0.0,COMMON}~{563,2,3,0.0,UNCOMMON}~{561,6,6,0.0,UNCOMMON}~{558,3,3,0.0,COMMON}~{560,2,2,0.0,RARE}~{562,2,2,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{207,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{5322,1,3,0.0,COMMON}~{5306,1,3,0.0,UNCOMMON}~{5318,1,4,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5319,8,8,0.0,COMMON}~{5323,2,2,0.0,COMMON}~{5324,4,4,0.0,COMMON}~{5307,2,3,0.0,UNCOMMON}~{5100,1,1,0.0,RARE}~{5320,3,3,0.0,RARE}~{5302,1,1,0.0,UNCOMMON}~{5321,2,2,0.0,RARE}~{5308,3,3,0.0,UNCOMMON}~{995,8,8,0.0,COMMON}~{995,15,15,0.0,COMMON}~{225,1,1,0.0,COMMON}~{1917,1,1,0.0,COMMON}~{1446,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(4692, '{532,1,1,0.0,ALWAYS}', '{884,3,3,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1153,1,1,0.0,COMMON}~{886,10,15,0.0,UNCOMMON}~{1191,1,1,0.0,COMMON}~{1295,1,1,0.0,UNCOMMON}~{1309,1,1,0.0,UNCOMMON}~{888,1,1,0.0,RARE}~{1207,1,1,0.0,COMMON}~{1119,1,1,0.0,UNCOMMON}~{890,1,5,0.0,RARE}~{555,7,7,0.0,COMMON}~{554,15,15,0.0,COMMON}~{564,2,2,0.0,COMMON}~{563,2,3,0.0,UNCOMMON}~{561,6,6,0.0,UNCOMMON}~{558,3,3,0.0,COMMON}~{560,2,2,0.0,RARE}~{562,2,2,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{207,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{5322,1,3,0.0,COMMON}~{5306,1,3,0.0,UNCOMMON}~{5318,1,4,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5319,8,8,0.0,COMMON}~{5323,2,2,0.0,COMMON}~{5324,4,4,0.0,COMMON}~{5307,2,3,0.0,UNCOMMON}~{5100,1,1,0.0,RARE}~{5320,3,3,0.0,RARE}~{5302,1,1,0.0,UNCOMMON}~{5321,2,2,0.0,RARE}~{5308,3,3,0.0,UNCOMMON}~{995,8,8,0.0,COMMON}~{995,15,15,0.0,COMMON}~{225,1,1,0.0,COMMON}~{1917,1,1,0.0,COMMON}~{1446,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(4693, '{532,1,1,0.0,ALWAYS}', '{884,3,3,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1153,1,1,0.0,COMMON}~{886,10,15,0.0,UNCOMMON}~{1191,1,1,0.0,COMMON}~{1295,1,1,0.0,UNCOMMON}~{1309,1,1,0.0,UNCOMMON}~{888,1,1,0.0,RARE}~{1207,1,1,0.0,COMMON}~{1119,1,1,0.0,UNCOMMON}~{890,1,5,0.0,RARE}~{555,7,7,0.0,COMMON}~{554,15,15,0.0,COMMON}~{564,2,2,0.0,COMMON}~{563,2,3,0.0,UNCOMMON}~{561,6,6,0.0,UNCOMMON}~{558,3,3,0.0,COMMON}~{560,2,2,0.0,RARE}~{562,2,2,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{207,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{5322,1,3,0.0,COMMON}~{5306,1,3,0.0,UNCOMMON}~{5318,1,4,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5319,8,8,0.0,COMMON}~{5323,2,2,0.0,COMMON}~{5324,4,4,0.0,COMMON}~{5307,2,3,0.0,UNCOMMON}~{5100,1,1,0.0,RARE}~{5320,3,3,0.0,RARE}~{5302,1,1,0.0,UNCOMMON}~{5321,2,2,0.0,RARE}~{5308,3,3,0.0,UNCOMMON}~{995,8,8,0.0,COMMON}~{995,15,15,0.0,COMMON}~{225,1,1,0.0,COMMON}~{1917,1,1,0.0,COMMON}~{1446,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(4694, '{592,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1157,1,1,0.0,COMMON}~{1313,1,1,0.0,COMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,RARE}~{1195,1,1,0.0,RARE}~{554,10,120,0.0,UNCOMMON}~{562,6,24,0.0,UNCOMMON}~{560,3,6,0.0,RARE}~{199,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{995,10,630,0.0,COMMON}~{445,1,3,0.0,UNCOMMON}~{1993,1,1,0.0,UNCOMMON}~{2857,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(4695, '{592,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1157,1,1,0.0,COMMON}~{1313,1,1,0.0,COMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,RARE}~{1195,1,1,0.0,RARE}~{554,10,120,0.0,UNCOMMON}~{562,6,24,0.0,UNCOMMON}~{560,3,6,0.0,RARE}~{199,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{995,10,630,0.0,COMMON}~{445,1,3,0.0,UNCOMMON}~{1993,1,1,0.0,UNCOMMON}~{2817,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(4696, '{592,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1157,1,1,0.0,COMMON}~{1313,1,1,0.0,COMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,RARE}~{1195,1,1,0.0,RARE}~{554,10,120,0.0,UNCOMMON}~{562,6,24,0.0,UNCOMMON}~{560,3,6,0.0,RARE}~{199,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{995,10,630,0.0,COMMON}~{445,1,3,0.0,UNCOMMON}~{1993,1,1,0.0,UNCOMMON}~{2819,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(4697, '{592,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1157,1,1,0.0,COMMON}~{1313,1,1,0.0,COMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,RARE}~{1195,1,1,0.0,RARE}~{554,10,120,0.0,UNCOMMON}~{562,6,24,0.0,UNCOMMON}~{560,3,6,0.0,RARE}~{199,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{995,10,630,0.0,COMMON}~{445,1,3,0.0,UNCOMMON}~{1993,1,1,0.0,UNCOMMON}~{2835,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(4698, '{592,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1365,1,1,0.0,COMMON}~{1311,1,1,0.0,COMMON}~{1197,1,1,0.0,UNCOMMON}~{1313,1,1,0.0,UNCOMMON}~{1163,1,1,0.0,RARE}~{1073,1,1,0.0,RARE}~{1317,1,1,0.0,RARE}~{995,10,630,0.0,COMMON}~{554,75,75,0.0,COMMON}~{562,15,15,0.0,COMMON}~{560,5,5,0.0,COMMON}~{1734,10,10,0.0,UNCOMMON}~{361,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,UNCOMMON}~{2725,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.62,ALWAYS}~{12158,1,1,0.07,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.26,ALWAYS}~{12163,1,1,0.009000000000000001,ALWAYS}'), +(4699, '{592,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1365,1,1,0.0,COMMON}~{1311,1,1,0.0,COMMON}~{1197,1,1,0.0,UNCOMMON}~{1313,1,1,0.0,UNCOMMON}~{1163,1,1,0.0,RARE}~{1073,1,1,0.0,RARE}~{1317,1,1,0.0,RARE}~{995,10,630,0.0,COMMON}~{554,75,75,0.0,COMMON}~{562,15,15,0.0,COMMON}~{560,5,5,0.0,COMMON}~{1734,10,10,0.0,UNCOMMON}~{361,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,UNCOMMON}~{2723,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.62,ALWAYS}~{12158,1,1,0.07,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.26,ALWAYS}~{12163,1,1,0.009000000000000001,ALWAYS}'), +(4700, '{592,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1365,1,1,0.0,COMMON}~{1311,1,1,0.0,COMMON}~{1197,1,1,0.0,UNCOMMON}~{1313,1,1,0.0,UNCOMMON}~{1163,1,1,0.0,RARE}~{1073,1,1,0.0,RARE}~{1317,1,1,0.0,RARE}~{995,10,630,0.0,COMMON}~{554,75,75,0.0,COMMON}~{562,15,15,0.0,COMMON}~{560,5,5,0.0,COMMON}~{1734,10,10,0.0,UNCOMMON}~{361,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,UNCOMMON}~{2731,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.62,ALWAYS}~{12158,1,1,0.07,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.26,ALWAYS}~{12163,1,1,0.009000000000000001,ALWAYS}'), +(4701, '{592,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1365,1,1,0.0,COMMON}~{1311,1,1,0.0,COMMON}~{1197,1,1,0.0,UNCOMMON}~{1313,1,1,0.0,UNCOMMON}~{1163,1,1,0.0,RARE}~{1073,1,1,0.0,RARE}~{1317,1,1,0.0,RARE}~{995,10,630,0.0,COMMON}~{554,75,75,0.0,COMMON}~{562,15,15,0.0,COMMON}~{560,5,5,0.0,COMMON}~{1734,10,10,0.0,UNCOMMON}~{361,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,UNCOMMON}~{2737,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.62,ALWAYS}~{12158,1,1,0.07,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.26,ALWAYS}~{12163,1,1,0.009000000000000001,ALWAYS}'), +(4702, '{592,1,1,0.0,ALWAYS}', '{1365,1,1,0.0,COMMON}~{1361,1,1,0.0,COMMON}~{1283,1,1,0.0,COMMON}~{1313,1,1,0.0,COMMON}~{1165,1,1,0.0,COMMON}~{1197,1,1,0.0,COMMON}~{1147,1,1,0.0,RARE}~{1163,1,1,0.0,RARE}~{1113,1,1,0.0,RARE}~{1185,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{556,50,75,0.0,COMMON}~{565,7,7,0.0,UNCOMMON}~{554,37,40,0.0,COMMON}~{562,10,10,0.0,COMMON}~{563,3,5,0.0,RARE}~{2361,1,1,0.0,COMMON}~{454,20,20,0.0,RARE}~{995,132,1100,0.0,COMMON}~{379,1,1,0.0,UNCOMMON}~{133,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.23,ALWAYS}~{12158,1,1,0.20500000000000002,ALWAYS}~{12159,1,1,0.105,ALWAYS}~{12160,1,1,0.44,ALWAYS}~{12163,1,1,0.02,ALWAYS}'), +(4703, '{592,1,1,0.0,ALWAYS}', '{1365,1,1,0.0,COMMON}~{1361,1,1,0.0,COMMON}~{1283,1,1,0.0,COMMON}~{1313,1,1,0.0,COMMON}~{1165,1,1,0.0,COMMON}~{1197,1,1,0.0,COMMON}~{1147,1,1,0.0,RARE}~{1163,1,1,0.0,RARE}~{1113,1,1,0.0,RARE}~{1185,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{556,50,75,0.0,COMMON}~{565,7,7,0.0,UNCOMMON}~{554,37,40,0.0,COMMON}~{562,10,10,0.0,COMMON}~{563,3,5,0.0,COMMON}~{2361,1,1,0.0,COMMON}~{454,20,20,0.0,RARE}~{995,132,1100,0.0,COMMON}~{379,1,1,0.0,UNCOMMON}~{133,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.23,ALWAYS}~{12158,1,1,0.20500000000000002,ALWAYS}~{12159,1,1,0.105,ALWAYS}~{12160,1,1,0.44,ALWAYS}~{12163,1,1,0.02,ALWAYS}'), +(4704, '{592,1,1,0.0,ALWAYS}', '{1365,1,1,0.0,COMMON}~{1361,1,1,0.0,COMMON}~{1283,1,1,0.0,COMMON}~{1313,1,1,0.0,COMMON}~{1165,1,1,0.0,COMMON}~{1197,1,1,0.0,COMMON}~{1147,1,1,0.0,RARE}~{1163,1,1,0.0,RARE}~{1113,1,1,0.0,RARE}~{1185,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{556,50,75,0.0,COMMON}~{565,7,7,0.0,UNCOMMON}~{554,37,40,0.0,COMMON}~{562,10,10,0.0,COMMON}~{563,3,5,0.0,RARE}~{2361,1,1,0.0,COMMON}~{454,20,20,0.0,RARE}~{995,132,1100,0.0,COMMON}~{379,1,1,0.0,UNCOMMON}~{133,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.23,ALWAYS}~{12158,1,1,0.20500000000000002,ALWAYS}~{12159,1,1,0.105,ALWAYS}~{12160,1,1,0.44,ALWAYS}~{12163,1,1,0.02,ALWAYS}'), +(4705, '{592,1,1,0.0,ALWAYS}', '{1365,1,1,0.0,COMMON}~{1361,1,1,0.0,COMMON}~{1283,1,1,0.0,COMMON}~{1313,1,1,0.0,COMMON}~{1165,1,1,0.0,COMMON}~{1197,1,1,0.0,COMMON}~{1147,1,1,0.0,RARE}~{1163,1,1,0.0,RARE}~{1113,1,1,0.0,RARE}~{1185,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{556,50,75,0.0,COMMON}~{565,7,7,0.0,UNCOMMON}~{554,37,40,0.0,COMMON}~{562,10,10,0.0,COMMON}~{563,3,5,0.0,COMMON}~{2361,1,1,0.0,COMMON}~{454,20,20,0.0,RARE}~{995,132,1100,0.0,COMMON}~{379,1,1,0.0,UNCOMMON}~{133,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.23,ALWAYS}~{12158,1,1,0.20500000000000002,ALWAYS}~{12159,1,1,0.105,ALWAYS}~{12160,1,1,0.44,ALWAYS}~{12163,1,1,0.02,ALWAYS}'); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(4706, '{532,1,1,0.0,ALWAYS}', '{1389,1,1,0.0,COMMON}~{1243,1,1,0.0,COMMON}~{1285,1,1,0.0,COMMON}~{886,30,30,0.0,COMMON}~{884,15,15,0.0,COMMON}~{1287,1,1,0.0,RARE}~{1165,1,1,0.0,COMMON}~{1179,1,1,0.0,COMMON}~{1141,1,1,0.0,COMMON}~{1193,1,1,0.0,UNCOMMON}~{556,18,18,0.0,COMMON}~{564,3,3,0.0,COMMON}~{557,27,27,0.0,COMMON}~{561,6,6,0.0,COMMON}~{563,3,6,0.0,UNCOMMON}~{565,1,1,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{560,13,13,0.0,RARE}~{5323,1,1,0.0,COMMON}~{5311,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5104,1,1,0.0,COMMON}~{5292,1,1,0.0,COMMON}~{5281,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{4206,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,RARE}~{5280,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5106,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{211,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{995,2,500,0.0,COMMON}~{2353,1,1,0.0,COMMON}~{7871,1,1,0.0,COMMON}~{453,1,1,0.0,UNCOMMON}~{1969,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{10976,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(4805, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4806, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4807, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4808, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4813, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4814, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4815, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4816, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4817, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4818, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4819, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4820, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4821, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4822, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4823, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4824, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4825, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4826, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4827, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4828, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4829, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4830, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4831, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4832, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4833, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4834, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4835, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4836, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4837, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4838, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4839, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4840, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4841, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4842, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4843, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4844, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4849, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4850, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4851, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4852, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(4898, '{526,1,1,0.0,ALWAYS}', '{1237,1,1,0.0,COMMON}~{826,5,5,0.0,COMMON}~{1207,1,1,0.0,COMMON}~{1279,1,1,0.0,COMMON}~{1293,1,1,0.0,UNCOMMON}~{1239,1,1,0.0,UNCOMMON}~{1241,1,1,0.0,UNCOMMON}~{1295,1,1,0.0,UNCOMMON}~{555,2,2,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{554,7,7,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{562,3,3,0.0,UNCOMMON}~{561,4,4,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{5318,4,8,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,COMMON}~{5320,3,3,0.0,COMMON}~{5323,1,2,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5322,3,3,0.0,UNCOMMON}~{5321,1,2,0.0,UNCOMMON}~{5306,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,2,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{211,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{225,1,1,0.0,COMMON}~{288,1,1,0.0,RARE}~{6306,15,15,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(4910, '{2892,1,1,0.0,ALWAYS}', '{565,1,2,0.0,UNCOMMON}~{560,1,1,0.0,UNCOMMON}~{563,1,1,0.0,UNCOMMON}~{562,2,2,0.0,UNCOMMON}~{557,15,20,0.0,UNCOMMON}~{561,2,2,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1385,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,12,12,0.0,COMMON}~{995,42,42,0.0,COMMON}~{995,250,250,0.0,COMMON}~{995,3000,3000,0.0,COMMON}~{1623,1,1,0.0,COMMON}~{1621,1,1,0.0,COMMON}~{1619,1,1,0.0,COMMON}~{1617,1,1,0.0,UNCOMMON}~{987,1,1,0.0,UNCOMMON}~{985,1,1,0.0,UNCOMMON}~{1631,1,1,0.0,RARE}~{1615,1,1,0.0,RARE}~{1215,1,1,0.0,UNCOMMON}~{830,5,5,0.0,RARE}~{829,20,20,0.0,RARE}~{1319,1,1,0.0,RARE}~{1247,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1216,50,50,0.0,RARE}~{1185,1,1,0.0,RARE}~{1201,1,1,0.0,RARE}~{2366,1,1,0.0,RARE}~{1149,1,1,0.0,RARE}~{9143,200,200,0.0,UNCOMMON}~{9342,150,150,0.0,RARE}~{892,150,200,0.0,RARE}~{892,500,500,0.0,RARE}~{1392,200,200,0.0,RARE}~{574,1000,1000,0.0,RARE}~{570,1000,1000,0.0,RARE}~{1444,1,1,0.0,UNCOMMON}~{1441,25,35,0.0,UNCOMMON}~{1443,25,35,0.0,UNCOMMON}~{1452,1,1,0.0,UNCOMMON}~{1462,1,1,0.0,UNCOMMON}~{7937,500,15000,0.0,UNCOMMON}~{561,47,77,0.0,RARE}~{566,20,20,0.0,RARE}~{563,45,45,0.0,RARE}~{560,50,50,0.0,RARE}~{560,121,121,0.0,RARE}~{565,50,50,0.0,RARE}~{372,125,250,0.0,UNCOMMON}~{372,1000,1000,0.0,UNCOMMON}~{384,250,500,0.0,UNCOMMON}~{533,150,500,0.0,UNCOMMON}~{454,150,7500,0.0,UNCOMMON}~{450,150,800,0.0,UNCOMMON}~{443,100,100,0.0,RARE}~{452,100,100,0.0,RARE}~{2362,1000,7000,0.0,RARE}~{2364,1,1,0.0,RARE}~{2364,50,50,0.0,RARE}~{258,33,33,0.0,UNCOMMON}~{2999,25,250,0.0,UNCOMMON}~{3001,30,120,0.0,UNCOMMON}~{270,10,100,0.0,UNCOMMON}~{6686,250,250,0.0,RARE}~{5321,3,3,0.0,UNCOMMON}~{5315,1,50,0.0,RARE}~{5316,1,6,0.0,RARE}~{5289,10,10,0.0,RARE}~{5300,1,1,0.0,RARE}~{5304,1,31,0.0,RARE}~{1516,100,20000,0.0,RARE}', ''), +(4920, '{526,1,1,0.0,ALWAYS}', '{7824,1,1,0.0,UNCOMMON}', '{0,1,1,0.925,ALWAYS}~{12158,1,1,0.04,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.009000000000000001,ALWAYS}~{12163,1,1,0.005,ALWAYS}'), +(4921, '{526,1,1,0.0,ALWAYS}', '{7824,1,1,0.0,UNCOMMON}', '{0,1,1,0.925,ALWAYS}~{12158,1,1,0.04,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.009000000000000001,ALWAYS}~{12163,1,1,0.005,ALWAYS}'), +(4928, '{526,1,1,0.0,ALWAYS}', '{2134,1,1,0.0,UNCOMMON}', ''), +(4929, '{526,1,1,0.0,ALWAYS}', '{2134,1,1,0.0,UNCOMMON}', ''), +(4930, '{9735,1,1,0.0,ALWAYS}', '', ''), +(4932, '{9735,1,1,0.0,ALWAYS}', '', ''), +(4936, '{526,1,1,0.0,ALWAYS}', '{2134,1,1,0.0,UNCOMMON}', ''), +(4937, '{526,1,1,0.0,ALWAYS}', '{2134,1,1,0.0,UNCOMMON}', ''), +(4993, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2805,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(4994, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2833,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(4995, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2837,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(4996, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2851,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(4997, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2837,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(4998, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2809,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(4999, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2839,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(5000, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2817,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(5001, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2819,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(5002, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2823,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(5025, '', '{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,3,3,0.0,UNCOMMON}~{995,5,5,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{2692,1,1,0.0,RARE}', ''), +(5048, '', '{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,3,3,0.0,UNCOMMON}~{995,5,5,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{2690,1,1,0.0,RARE}', ''), +(5088, '{526,1,1,0.0,ALWAYS}~{10129,1,1,0.0,ALWAYS}', '', ''), +(5116, NULL, NULL, NULL), +(5174, '{532,1,1,0.0,ALWAYS}', '{5292,1,1,0.0,RARE}~{5294,1,1,0.0,RARE}~{5311,1,1,0.0,RARE}~{5106,1,1,0.0,RARE}~{5100,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5304,1,1,0.0,RARE}~{5296,1,1,0.0,RARE}', ''), +(5178, '{536,1,1,0.0,ALWAYS}~{1751,1,1,0.0,ALWAYS}', '{1365,1,1,0.0,UNCOMMON}~{1355,1,1,0.0,UNCOMMON}~{1243,1,1,0.0,UNCOMMON}~{1211,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,RARE}~{1069,1,1,0.0,COMMON}~{1197,1,1,0.0,UNCOMMON}~{1161,1,1,0.0,UNCOMMON}~{555,75,75,0.0,COMMON}~{561,15,15,0.0,UNCOMMON}~{554,37,37,0.0,UNCOMMON}~{563,3,3,0.0,UNCOMMON}~{560,5,5,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{995,11,454,0.0,COMMON}~{449,1,1,0.0,UNCOMMON}~{365,1,1,0.0,UNCOMMON}~{2735,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.495,ALWAYS}~{12158,1,1,0.11,ALWAYS}~{12159,1,1,0.27,ALWAYS}~{12160,1,1,0.105,ALWAYS}~{12163,1,1,0.02,ALWAYS}'), +(5195, '', '{556,5,5,0.0,COMMON}~{556,12,12,0.0,COMMON}~{554,5,5,0.0,COMMON}~{554,12,12,0.0,COMMON}~{555,5,5,0.0,COMMON}~{555,12,12,0.0,COMMON}~{557,5,5,0.0,COMMON}~{557,12,12,0.0,COMMON}~{559,5,5,0.0,COMMON}~{559,12,12,0.0,COMMON}~{558,5,5,0.0,COMMON}~{558,12,12,0.0,COMMON}~{562,2,2,0.0,RARE}~{562,10,10,0.0,RARE}~{561,2,2,0.0,RARE}~{563,2,2,0.0,RARE}~{565,2,2,0.0,RARE}~{1379,1,1,0.0,COMMON}~{995,1,30,0.0,COMMON}~{1448,1,1,0.0,COMMON}~{1444,1,1,0.0,UNCOMMON}', '{0,1,1,0.78,ALWAYS}~{12158,1,1,0.116,ALWAYS}~{12159,1,1,0.06,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(5196, '', '{556,5,5,0.0,COMMON}~{556,12,12,0.0,COMMON}~{554,5,5,0.0,COMMON}~{554,12,12,0.0,COMMON}~{555,5,5,0.0,COMMON}~{555,12,12,0.0,COMMON}~{557,5,5,0.0,COMMON}~{557,12,12,0.0,COMMON}~{559,5,5,0.0,COMMON}~{559,12,12,0.0,COMMON}~{558,5,5,0.0,COMMON}~{558,12,12,0.0,COMMON}~{562,2,2,0.0,RARE}~{562,10,10,0.0,RARE}~{561,2,2,0.0,RARE}~{563,2,2,0.0,RARE}~{565,2,2,0.0,RARE}~{1379,1,1,0.0,COMMON}~{995,1,30,0.0,COMMON}~{1448,1,1,0.0,COMMON}~{1444,1,1,0.0,UNCOMMON}', '{0,1,1,0.78,ALWAYS}~{12158,1,1,0.116,ALWAYS}~{12159,1,1,0.06,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(5197, '', '{556,5,5,0.0,COMMON}~{556,12,12,0.0,COMMON}~{554,5,5,0.0,COMMON}~{554,12,12,0.0,COMMON}~{555,5,5,0.0,COMMON}~{555,12,12,0.0,COMMON}~{557,5,5,0.0,COMMON}~{557,12,12,0.0,COMMON}~{559,5,5,0.0,COMMON}~{559,12,12,0.0,COMMON}~{558,5,5,0.0,COMMON}~{558,12,12,0.0,COMMON}~{562,2,2,0.0,RARE}~{562,10,10,0.0,RARE}~{561,2,2,0.0,RARE}~{563,2,2,0.0,RARE}~{565,2,2,0.0,RARE}~{1379,1,1,0.0,COMMON}~{995,1,30,0.0,COMMON}~{1448,1,1,0.0,COMMON}~{1444,1,1,0.0,UNCOMMON}', '{0,1,1,0.78,ALWAYS}~{12158,1,1,0.116,ALWAYS}~{12159,1,1,0.06,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(5211, '{526,1,1,0.0,ALWAYS}~{1739,1,1,0.0,ALWAYS}', '{7890,1,1,0.0,UNCOMMON}', ''), +(5250, '{526,1,1,0.0,ALWAYS}', '{1197,1,1,0.0,UNCOMMON}~{890,16,16,0.0,UNCOMMON}~{1391,1,1,0.0,UNCOMMON}~{892,7,8,0.0,RARE}~{1432,1,1,0.0,RARE}~{1319,1,1,0.0,RARE}~{1185,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{565,5,5,0.0,UNCOMMON}~{554,37,37,0.0,UNCOMMON}~{564,3,3,0.0,RARE}~{4699,20,20,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{201,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{9735,3,3,0.0,UNCOMMON}~{379,1,1,0.0,RARE}~{365,1,1,0.0,RARE}~{363,1,1,0.0,RARE}~{10143,7,7,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5251, '{526,1,1,0.0,ALWAYS}', '{1197,1,1,0.0,COMMON}~{890,16,16,0.0,UNCOMMON}~{892,7,7,0.0,UNCOMMON}~{1333,1,1,0.0,RARE}~{1432,1,1,0.0,RARE}~{1391,1,1,0.0,RARE}~{1319,1,1,0.0,RARE}~{4699,20,20,0.0,UNCOMMON}~{554,37,37,0.0,UNCOMMON}~{565,5,5,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,60,302,0.0,COMMON}~{363,1,1,0.0,UNCOMMON}~{365,1,1,0.0,UNCOMMON}~{9738,3,3,0.0,RARE}~{10143,6,6,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.68,ALWAYS}~{12158,1,1,0.045,ALWAYS}~{12159,1,1,0.055,ALWAYS}~{12160,1,1,0.209,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(5252, '{526,1,1,0.0,ALWAYS}', '{1197,1,1,0.0,COMMON}~{890,16,16,0.0,UNCOMMON}~{892,7,7,0.0,UNCOMMON}~{1333,1,1,0.0,RARE}~{1432,1,1,0.0,RARE}~{1391,1,1,0.0,RARE}~{1319,1,1,0.0,RARE}~{4699,20,20,0.0,UNCOMMON}~{554,37,37,0.0,UNCOMMON}~{565,5,5,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,60,302,0.0,COMMON}~{363,1,1,0.0,UNCOMMON}~{365,1,1,0.0,UNCOMMON}~{9738,3,3,0.0,RARE}~{10143,6,6,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.68,ALWAYS}~{12158,1,1,0.045,ALWAYS}~{12159,1,1,0.055,ALWAYS}~{12160,1,1,0.209,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(5254, '{526,1,1,0.0,ALWAYS}', '{1197,1,1,0.0,UNCOMMON}~{890,16,16,0.0,UNCOMMON}~{1391,1,1,0.0,UNCOMMON}~{892,7,8,0.0,RARE}~{1432,1,1,0.0,RARE}~{1319,1,1,0.0,RARE}~{1185,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{565,5,5,0.0,UNCOMMON}~{554,37,37,0.0,UNCOMMON}~{564,3,3,0.0,RARE}~{4699,20,20,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{201,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{9735,3,3,0.0,UNCOMMON}~{379,1,1,0.0,RARE}~{365,1,1,0.0,RARE}~{363,1,1,0.0,RARE}~{10143,7,7,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5255, '{526,1,1,0.0,ALWAYS}', '{1197,1,1,0.0,COMMON}~{890,16,16,0.0,UNCOMMON}~{892,7,7,0.0,UNCOMMON}~{1333,1,1,0.0,RARE}~{1432,1,1,0.0,RARE}~{1391,1,1,0.0,RARE}~{1319,1,1,0.0,RARE}~{4699,20,20,0.0,UNCOMMON}~{554,37,37,0.0,UNCOMMON}~{565,5,5,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,60,302,0.0,COMMON}~{363,1,1,0.0,UNCOMMON}~{365,1,1,0.0,UNCOMMON}~{9738,3,3,0.0,RARE}~{10143,6,6,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.68,ALWAYS}~{12158,1,1,0.045,ALWAYS}~{12159,1,1,0.055,ALWAYS}~{12160,1,1,0.209,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(5256, '{526,1,1,0.0,ALWAYS}', '{1197,1,1,0.0,COMMON}~{890,16,16,0.0,UNCOMMON}~{892,7,7,0.0,UNCOMMON}~{1333,1,1,0.0,RARE}~{1432,1,1,0.0,RARE}~{1391,1,1,0.0,RARE}~{1319,1,1,0.0,RARE}~{4699,20,20,0.0,UNCOMMON}~{554,37,37,0.0,UNCOMMON}~{565,5,5,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,60,302,0.0,COMMON}~{363,1,1,0.0,UNCOMMON}~{365,1,1,0.0,UNCOMMON}~{9738,3,3,0.0,RARE}~{10143,6,6,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.68,ALWAYS}~{12158,1,1,0.045,ALWAYS}~{12159,1,1,0.055,ALWAYS}~{12160,1,1,0.209,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(5293, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5294, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5295, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5296, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5297, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5298, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(5299, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5300, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5301, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5302, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5303, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5304, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5305, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5306, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5307, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5308, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5309, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5310, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5311, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5312, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5313, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5314, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5315, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5316, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5317, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5318, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5319, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5320, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5321, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5322, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5323, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5324, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5325, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5326, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5327, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5328, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5329, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5330, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5331, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5332, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2817,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5333, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2855,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5334, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2849,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5335, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2811,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5336, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2843,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5337, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2843,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5338, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2855,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5339, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2845,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5340, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2857,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5341, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2803,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5360, '{592,1,1,0.0,ALWAYS}', '{1333,1,1,0.0,RARE}~{1185,1,1,0.0,UNCOMMON}~{4675,1,1,0.0,RARE}~{1673,1,1,0.0,COMMON}~{1654,1,1,0.0,COMMON}~{1635,1,1,0.0,COMMON}~{1696,1,1,0.0,COMMON}~{1639,1,1,0.0,COMMON}~{2566,1,1,0.0,UNCOMMON}~{1727,1,1,0.0,COMMON}~{1656,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,COMMON}~{11072,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,1,0.0,UNCOMMON}~{405,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,COMMON}~{444,1,1,0.0,COMMON}~{970,1,1,0.0,COMMON}~{9032,1,1,0.0,COMMON}~{1939,1,17,0.0,COMMON}~{950,1,1,0.0,COMMON}~{2007,10,10,0.0,RARE}~{2833,1,1,0.0,RARE}~{6808,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(5361, '{555,1,1,0.0,ALWAYS}', '{555,90,90,0.0,COMMON}~{565,4,12,0.0,COMMON}~{560,9,19,0.0,UNCOMMON}~{4695,3,10,0.0,UNCOMMON}~{4698,3,9,0.0,UNCOMMON}~{4694,3,12,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5321,1,9,0.0,UNCOMMON}~{5295,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{888,90,90,0.0,COMMON}~{1111,1,1,0.0,UNCOMMON}~{1159,1,1,0.0,UNCOMMON}~{9419,1,1,0.0,UNCOMMON}~{1343,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,UNCOMMON}~{1383,1,1,0.0,UNCOMMON}~{1395,1,1,0.0,UNCOMMON}~{9337,15,15,0.0,UNCOMMON}~{2487,1,1,0.0,RARE}~{1123,1,1,0.0,RARE}~{199,1,10,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,2,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{445,1,6,0.0,UNCOMMON}~{448,1,5,0.0,COMMON}~{454,1,8,0.0,UNCOMMON}~{2359,2,2,0.0,UNCOMMON}~{1624,1,4,0.0,UNCOMMON}~{377,5,12,0.0,UNCOMMON}~{383,3,6,0.0,UNCOMMON}~{385,1,1,0.0,UNCOMMON}~{995,97,692,0.0,COMMON}~{572,5,10,0.0,COMMON}~{232,20,20,0.0,UNCOMMON}~{407,1,1,0.0,UNCOMMON}~{402,10,29,0.0,UNCOMMON}~{1444,1,1,0.0,UNCOMMON}~{228,5,10,0.0,UNCOMMON}~{6672,1,1,0.0,UNCOMMON}~{193,1,1,0.0,RARE}~{2,11,27,0.0,RARE}~{6691,1,1,0.0,RARE}~{2737,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.05,ALWAYS}~{12158,1,1,0.095,ALWAYS}~{12159,1,1,0.045,ALWAYS}~{12160,1,1,0.79,ALWAYS}~{12163,1,1,0.02,ALWAYS}'); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(5362, '{536,1,1,0.0,ALWAYS}~{1753,2,2,0.0,ALWAYS}', '{11373,1,1,0.0,UNCOMMON}~{1317,1,1,0.0,UNCOMMON}~{1215,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,RARE}~{1373,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1145,1,1,0.0,UNCOMMON}~{1199,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,RARE}~{1163,1,1,0.0,RARE}~{565,15,20,0.0,COMMON}~{4699,35,35,0.0,COMMON}~{4694,37,37,0.0,UNCOMMON}~{561,17,17,0.0,UNCOMMON}~{556,34,34,0.0,UNCOMMON}~{563,15,15,0.0,UNCOMMON}~{563,45,45,0.0,UNCOMMON}~{890,8,8,0.0,UNCOMMON}~{805,8,8,0.0,UNCOMMON}~{829,1,1,0.0,UNCOMMON}~{867,8,8,0.0,UNCOMMON}~{888,90,90,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,1813,0.0,COMMON}~{448,5,5,0.0,UNCOMMON}~{2011,1,2,0.0,UNCOMMON}~{2725,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.715,ALWAYS}~{12158,1,1,0.14400000000000002,ALWAYS}~{12159,1,1,0.08,ALWAYS}~{12160,1,1,0.045,ALWAYS}~{12163,1,1,0.016,ALWAYS}'), +(5363, '{536,1,1,0.0,ALWAYS}~{2359,3,3,0.0,ALWAYS}', '{1373,1,1,0.0,COMMON}~{811,14,14,0.0,COMMON}~{830,8,8,0.0,COMMON}~{1432,1,1,0.0,UNCOMMON}~{9144,10,27,0.0,UNCOMMON}~{868,8,18,0.0,UNCOMMON}~{892,8,42,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1247,1,1,0.0,UNCOMMON}~{1149,1,1,0.0,VERY_RARE}~{565,27,27,0.0,COMMON}~{566,10,10,0.0,UNCOMMON}~{563,4,4,0.0,RARE}~{11465,1,1,0.0,UNCOMMON}~{995,283,8441,0.0,COMMON}~{385,1,6,0.0,UNCOMMON}~{11359,1,1,0.0,RARE}~{2743,1,1,0.0,UNCOMMON}~{11338,1,1,0.0,RARE,44}~{2363,2,2,0.0,RARE}~{995,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}~{11286,1,1,0.0,VERY_RARE,5000}~{11335,1,1,0.0,VERY_RARE,10000}', '{0,1,1,0.085,ALWAYS}~{12158,1,1,0.195,ALWAYS}~{12159,1,1,0.495,ALWAYS}~{12160,1,1,0.19,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(5365, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2825,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5366, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2831,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5367, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2841,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5368, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2807,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5375, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5376, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5377, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5378, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5379, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5380, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5381, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2849,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5385, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2803,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5386, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2815,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5387, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2855,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5388, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2801,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5389, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2809,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5390, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2809,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5391, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2843,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5392, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2813,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5393, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5394, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5395, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5396, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5397, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5398, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5399, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5400, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5401, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5402, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5403, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5404, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5405, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5406, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5407, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5408, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5409, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5410, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5411, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2837,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5412, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2845,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5414, '{952,1,1,0.0,ALWAYS}', '', '{0,1,1,0.86,ALWAYS}~{12158,1,1,0.069,ALWAYS}~{12159,1,1,0.045,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(5415, '{526,1,1,0.0,ALWAYS}~{532,1,1,0.0,ALWAYS}', '{1365,1,1,0.0,COMMON}~{1243,1,1,0.0,COMMON}~{1355,1,1,0.0,COMMON}~{1069,1,1,0.0,COMMON}~{10589,1,1,0.0,RARE}~{1161,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,UNCOMMON}~{1197,1,1,0.0,UNCOMMON}~{555,75,75,0.0,COMMON}~{563,3,3,0.0,UNCOMMON}~{561,15,15,0.0,UNCOMMON}~{554,37,37,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,44,200,0.0,COMMON}~{995,440,440,0.0,COMMON}~{449,1,1,0.0,COMMON}~{365,1,1,0.0,COMMON}~{2725,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.705,ALWAYS}~{12158,1,1,0.105,ALWAYS}~{12159,1,1,0.075,ALWAYS}~{12160,1,1,0.085,ALWAYS}~{12163,1,1,0.03,ALWAYS}'), +(5416, '{526,1,1,0.0,ALWAYS}~{532,1,1,0.0,ALWAYS}', '{1365,1,1,0.0,COMMON}~{1243,1,1,0.0,COMMON}~{1355,1,1,0.0,COMMON}~{1069,1,1,0.0,COMMON}~{10589,1,1,0.0,RARE}~{1161,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,UNCOMMON}~{1197,1,1,0.0,UNCOMMON}~{555,75,75,0.0,COMMON}~{563,3,3,0.0,UNCOMMON}~{561,15,15,0.0,UNCOMMON}~{554,37,37,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,44,200,0.0,COMMON}~{995,440,440,0.0,COMMON}~{449,1,1,0.0,COMMON}~{365,1,1,0.0,COMMON}~{2743,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.705,ALWAYS}~{12158,1,1,0.105,ALWAYS}~{12159,1,1,0.075,ALWAYS}~{12160,1,1,0.085,ALWAYS}~{12163,1,1,0.03,ALWAYS}'), +(5417, '{526,1,1,0.0,ALWAYS}~{532,1,1,0.0,ALWAYS}', '{1365,1,1,0.0,COMMON}~{1243,1,1,0.0,COMMON}~{1355,1,1,0.0,COMMON}~{1069,1,1,0.0,COMMON}~{10589,1,1,0.0,RARE}~{1161,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,UNCOMMON}~{1197,1,1,0.0,UNCOMMON}~{555,75,75,0.0,COMMON}~{563,3,3,0.0,UNCOMMON}~{561,15,15,0.0,UNCOMMON}~{554,37,37,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,44,200,0.0,COMMON}~{995,440,440,0.0,COMMON}~{449,1,1,0.0,COMMON}~{365,1,1,0.0,COMMON}~{2727,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.705,ALWAYS}~{12158,1,1,0.105,ALWAYS}~{12159,1,1,0.075,ALWAYS}~{12160,1,1,0.085,ALWAYS}~{12163,1,1,0.03,ALWAYS}'), +(5418, '{526,1,1,0.0,ALWAYS}~{532,1,1,0.0,ALWAYS}', '{1365,1,1,0.0,COMMON}~{1243,1,1,0.0,COMMON}~{1355,1,1,0.0,COMMON}~{1069,1,1,0.0,COMMON}~{10589,1,1,0.0,RARE}~{1161,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,UNCOMMON}~{1197,1,1,0.0,UNCOMMON}~{555,75,75,0.0,COMMON}~{563,3,3,0.0,UNCOMMON}~{561,15,15,0.0,UNCOMMON}~{554,37,37,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,44,200,0.0,COMMON}~{995,440,440,0.0,COMMON}~{449,1,1,0.0,COMMON}~{365,1,1,0.0,COMMON}~{2733,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.705,ALWAYS}~{12158,1,1,0.105,ALWAYS}~{12159,1,1,0.075,ALWAYS}~{12160,1,1,0.085,ALWAYS}~{12163,1,1,0.03,ALWAYS}'), +(5422, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2825,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5473, '', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,COMMON}~{5311,1,1,0.0,COMMON}~{5321,1,1,0.0,COMMON}~{5323,1,1,0.0,COMMON}~{5100,1,2,0.0,COMMON}~{5105,1,1,0.0,COMMON}~{5280,1,1,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5106,1,1,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5295,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{1119,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,COMMON}~{1339,1,1,0.0,UNCOMMON}~{1343,1,1,0.0,UNCOMMON}~{1345,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1161,1,1,0.0,UNCOMMON}~{3122,1,1,0.0,RARE}~{1347,1,1,0.0,RARE}~{1127,1,1,0.0,RARE}~{557,10,60,0.0,COMMON}~{561,1,8,0.0,UNCOMMON}~{563,2,7,0.0,UNCOMMON}~{995,35,352,0.0,COMMON}~{384,1,8,0.0,UNCOMMON}~{354,3,3,0.0,UNCOMMON}~{454,3,3,0.0,UNCOMMON}~{402,4,10,0.0,UNCOMMON}~{1760,1,42,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(5474, '{532,1,1,0.0,ALWAYS}', '{1145,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{3122,1,1,0.0,RARE}~{1161,1,1,0.0,RARE}~{1119,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1341,1,1,0.0,UNCOMMON}~{1357,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,RARE}~{830,1,1,0.0,RARE}~{1345,1,1,0.0,RARE}~{1343,1,1,0.0,RARE}~{1339,1,1,0.0,RARE}~{807,1,1,0.0,RARE}~{557,10,60,0.0,COMMON}~{561,4,10,0.0,UNCOMMON}~{563,3,3,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,COMMON}~{5311,1,1,0.0,COMMON}~{5100,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{402,10,10,0.0,COMMON}~{1760,10,41,0.0,COMMON}~{354,3,3,0.0,UNCOMMON}~{454,3,3,0.0,UNCOMMON}~{384,2,8,0.0,RARE}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.355,ALWAYS}~{12158,1,1,0.195,ALWAYS}~{12159,1,1,0.3,ALWAYS}~{12160,1,1,0.12,ALWAYS}~{12163,1,1,0.03,ALWAYS}'), +(5475, '{532,1,1,0.0,ALWAYS}', '{1341,1,1,0.0,COMMON}~{1339,1,1,0.0,COMMON}~{1141,1,1,0.0,COMMON}~{1343,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,RARE}~{1357,1,1,0.0,RARE}~{1345,1,1,0.0,RARE}~{3122,1,1,0.0,RARE}~{1161,1,1,0.0,RARE}~{1145,1,1,0.0,RARE}~{1121,1,1,0.0,RARE}~{1119,1,1,0.0,RARE}~{557,8,60,0.0,COMMON}~{561,5,7,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{5291,1,1,0.0,COMMON}~{5292,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5296,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,35,300,0.0,COMMON}~{384,2,8,0.0,RARE}~{454,13,13,0.0,RARE}~{402,4,10,0.0,COMMON}~{1760,10,41,0.0,COMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.85,ALWAYS}~{12158,1,1,0.055,ALWAYS}~{12159,1,1,0.045,ALWAYS}~{12160,1,1,0.025,ALWAYS}~{12163,1,1,0.025,ALWAYS}'), +(5476, '{532,1,1,0.0,ALWAYS}', '{1339,1,1,0.0,COMMON}~{1341,1,1,0.0,UNCOMMON}~{1119,1,1,0.0,UNCOMMON}~{1121,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,COMMON}~{1357,1,1,0.0,RARE}~{1145,1,1,0.0,RARE}~{1161,1,1,0.0,UNCOMMON}~{1345,1,1,0.0,UNCOMMON}~{1201,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{3122,1,1,0.0,UNCOMMON}~{557,8,60,0.0,COMMON}~{563,2,12,0.0,UNCOMMON}~{561,7,8,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,COMMON}~{5105,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,COMMON}~{5296,1,1,0.0,RARE}~{5295,1,1,0.0,UNCOMMON}~{203,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{995,8,200,0.0,COMMON}~{1759,1,42,0.0,UNCOMMON}~{453,3,6,0.0,UNCOMMON}~{353,3,3,0.0,UNCOMMON}~{401,5,5,0.0,UNCOMMON}~{383,6,7,0.0,UNCOMMON}', ''), +(5489, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2829,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(5490, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2829,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(5491, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2857,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(5492, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2821,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(5521, '', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,COMMON}~{5311,1,1,0.0,COMMON}~{5321,1,1,0.0,COMMON}~{5323,1,1,0.0,COMMON}~{5100,1,2,0.0,COMMON}~{5105,1,1,0.0,COMMON}~{5280,1,1,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5106,1,1,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5295,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{1119,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,COMMON}~{1339,1,1,0.0,UNCOMMON}~{1343,1,1,0.0,UNCOMMON}~{1345,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1161,1,1,0.0,UNCOMMON}~{3122,1,1,0.0,RARE}~{1347,1,1,0.0,RARE}~{1127,1,1,0.0,RARE}~{557,10,60,0.0,COMMON}~{561,1,8,0.0,UNCOMMON}~{563,2,7,0.0,UNCOMMON}~{995,35,352,0.0,COMMON}~{384,1,8,0.0,UNCOMMON}~{354,3,3,0.0,UNCOMMON}~{454,3,3,0.0,UNCOMMON}~{402,4,10,0.0,UNCOMMON}~{1760,1,42,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5522, '{532,1,1,0.0,ALWAYS}', '{1145,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{3122,1,1,0.0,RARE}~{1161,1,1,0.0,RARE}~{1119,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1341,1,1,0.0,UNCOMMON}~{1357,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,RARE}~{830,1,1,0.0,RARE}~{1345,1,1,0.0,RARE}~{1343,1,1,0.0,RARE}~{1339,1,1,0.0,RARE}~{807,1,1,0.0,RARE}~{557,10,60,0.0,COMMON}~{561,4,10,0.0,UNCOMMON}~{563,3,3,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,COMMON}~{5311,1,1,0.0,COMMON}~{5100,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{402,10,10,0.0,COMMON}~{1760,10,41,0.0,COMMON}~{354,3,3,0.0,UNCOMMON}~{454,3,3,0.0,UNCOMMON}~{384,2,8,0.0,RARE}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.355,ALWAYS}~{12158,1,1,0.195,ALWAYS}~{12159,1,1,0.3,ALWAYS}~{12160,1,1,0.12,ALWAYS}~{12163,1,1,0.03,ALWAYS}'), +(5523, '{532,1,1,0.0,ALWAYS}', '{1341,1,1,0.0,COMMON}~{1339,1,1,0.0,COMMON}~{1141,1,1,0.0,COMMON}~{1343,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,RARE}~{1357,1,1,0.0,RARE}~{1345,1,1,0.0,RARE}~{3122,1,1,0.0,RARE}~{1161,1,1,0.0,RARE}~{1145,1,1,0.0,RARE}~{1121,1,1,0.0,RARE}~{1119,1,1,0.0,RARE}~{557,8,60,0.0,COMMON}~{561,5,7,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{5291,1,1,0.0,COMMON}~{5292,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5296,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,35,300,0.0,COMMON}~{384,2,8,0.0,RARE}~{454,13,13,0.0,RARE}~{402,4,10,0.0,COMMON}~{1760,10,41,0.0,COMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.85,ALWAYS}~{12158,1,1,0.055,ALWAYS}~{12159,1,1,0.045,ALWAYS}~{12160,1,1,0.025,ALWAYS}~{12163,1,1,0.025,ALWAYS}'), +(5524, '{532,1,1,0.0,ALWAYS}', '{1339,1,1,0.0,COMMON}~{1341,1,1,0.0,UNCOMMON}~{1119,1,1,0.0,UNCOMMON}~{1121,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,COMMON}~{1357,1,1,0.0,RARE}~{1145,1,1,0.0,RARE}~{1161,1,1,0.0,UNCOMMON}~{1345,1,1,0.0,UNCOMMON}~{1201,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{3122,1,1,0.0,UNCOMMON}~{557,8,60,0.0,COMMON}~{563,2,12,0.0,UNCOMMON}~{561,7,8,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,COMMON}~{5105,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,COMMON}~{5296,1,1,0.0,RARE}~{5295,1,1,0.0,UNCOMMON}~{203,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{995,8,200,0.0,COMMON}~{1759,1,42,0.0,UNCOMMON}~{453,3,6,0.0,UNCOMMON}~{353,3,3,0.0,UNCOMMON}~{401,5,5,0.0,UNCOMMON}~{383,6,7,0.0,UNCOMMON}', ''), +(5525, '', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,COMMON}~{5311,1,1,0.0,COMMON}~{5321,1,1,0.0,COMMON}~{5323,1,1,0.0,COMMON}~{5100,1,2,0.0,COMMON}~{5105,1,1,0.0,COMMON}~{5280,1,1,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5106,1,1,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5295,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{1119,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,COMMON}~{1339,1,1,0.0,UNCOMMON}~{1343,1,1,0.0,UNCOMMON}~{1345,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1161,1,1,0.0,UNCOMMON}~{3122,1,1,0.0,RARE}~{1347,1,1,0.0,RARE}~{1127,1,1,0.0,RARE}~{557,10,60,0.0,COMMON}~{561,1,8,0.0,UNCOMMON}~{563,2,7,0.0,UNCOMMON}~{995,35,352,0.0,COMMON}~{384,1,8,0.0,UNCOMMON}~{354,3,3,0.0,UNCOMMON}~{454,3,3,0.0,UNCOMMON}~{402,4,10,0.0,UNCOMMON}~{1760,1,42,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5526, '{532,1,1,0.0,ALWAYS}', '{1145,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{3122,1,1,0.0,RARE}~{1161,1,1,0.0,RARE}~{1119,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1341,1,1,0.0,UNCOMMON}~{1357,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,RARE}~{830,1,1,0.0,RARE}~{1345,1,1,0.0,RARE}~{1343,1,1,0.0,RARE}~{1339,1,1,0.0,RARE}~{807,1,1,0.0,RARE}~{557,10,60,0.0,COMMON}~{561,4,10,0.0,UNCOMMON}~{563,3,3,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,COMMON}~{5311,1,1,0.0,COMMON}~{5100,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{402,10,10,0.0,COMMON}~{1760,10,41,0.0,COMMON}~{354,3,3,0.0,UNCOMMON}~{454,3,3,0.0,UNCOMMON}~{384,2,8,0.0,RARE}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.355,ALWAYS}~{12158,1,1,0.195,ALWAYS}~{12159,1,1,0.3,ALWAYS}~{12160,1,1,0.12,ALWAYS}~{12163,1,1,0.03,ALWAYS}'), +(5527, '{532,1,1,0.0,ALWAYS}', '{1341,1,1,0.0,COMMON}~{1339,1,1,0.0,COMMON}~{1141,1,1,0.0,COMMON}~{1343,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,RARE}~{1357,1,1,0.0,RARE}~{1345,1,1,0.0,RARE}~{3122,1,1,0.0,RARE}~{1161,1,1,0.0,RARE}~{1145,1,1,0.0,RARE}~{1121,1,1,0.0,RARE}~{1119,1,1,0.0,RARE}~{557,8,60,0.0,COMMON}~{561,5,7,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{5291,1,1,0.0,COMMON}~{5292,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5296,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,35,300,0.0,COMMON}~{384,2,8,0.0,RARE}~{454,13,13,0.0,RARE}~{402,4,10,0.0,COMMON}~{1760,10,41,0.0,COMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.85,ALWAYS}~{12158,1,1,0.055,ALWAYS}~{12159,1,1,0.045,ALWAYS}~{12160,1,1,0.025,ALWAYS}~{12163,1,1,0.025,ALWAYS}'), +(5528, '{532,1,1,0.0,ALWAYS}', '{1339,1,1,0.0,COMMON}~{1341,1,1,0.0,UNCOMMON}~{1119,1,1,0.0,UNCOMMON}~{1121,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,COMMON}~{1357,1,1,0.0,RARE}~{1145,1,1,0.0,RARE}~{1161,1,1,0.0,UNCOMMON}~{1345,1,1,0.0,UNCOMMON}~{1201,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{3122,1,1,0.0,UNCOMMON}~{557,8,60,0.0,COMMON}~{563,2,12,0.0,UNCOMMON}~{561,7,8,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,COMMON}~{5105,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,COMMON}~{5296,1,1,0.0,RARE}~{5295,1,1,0.0,UNCOMMON}~{203,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{995,8,200,0.0,COMMON}~{1759,1,42,0.0,UNCOMMON}~{453,3,6,0.0,UNCOMMON}~{353,3,3,0.0,UNCOMMON}~{401,5,5,0.0,UNCOMMON}~{383,6,7,0.0,UNCOMMON}', ''), +(5529, '{526,1,1,0.0,ALWAYS}~{10818,1,1,0.0,ALWAYS}~{10814,1,1,0.0,ALWAYS}~{10816,1,1,0.0,ALWAYS}', '', ''), +(5593, '{526,1,1,0.0,ALWAYS}~{5001,5,10,0.0,ALWAYS}', '{10877,1,1,0.0,UNCOMMON}~{10859,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}', ''), +(5594, '{526,1,1,0.0,ALWAYS}~{223,2,7,0.0,ALWAYS}', '{10879,1,1,0.0,UNCOMMON}~{10859,1,1,0.0,UNCOMMON}', ''), +(5595, '{526,1,1,0.0,ALWAYS}~{314,10,40,0.0,ALWAYS}~{314,100,100,0.0,ALWAYS}', '{10859,1,1,0.0,UNCOMMON}~{2138,4,4,0.0,RARE}~{2138,8,8,0.0,RARE}~{10880,1,1,0.0,COMMON}', ''), +(5596, '{526,1,1,0.0,ALWAYS}~{7566,3,7,0.0,ALWAYS}', '{10881,1,1,0.0,UNCOMMON}~{10859,1,1,0.0,UNCOMMON}', ''), +(5597, '{526,1,1,0.0,ALWAYS}~{221,4,4,0.0,ALWAYS}~{221,6,6,0.0,ALWAYS}', '{10882,1,1,0.0,UNCOMMON}~{10859,1,1,0.0,COMMON}', ''), +(5603, '{526,1,1,0.0,ALWAYS}~{237,2,4,0.0,ALWAYS}', '{10878,1,1,0.0,COMMON}~{10859,1,1,0.0,UNCOMMON}', ''), +(5627, '{526,1,1,0.0,ALWAYS}', '{9141,2,6,0.0,COMMON}~{1209,1,1,0.0,UNCOMMON}~{1329,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{555,23,23,0.0,COMMON}~{559,6,6,0.0,COMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{7863,1,1,0.0,UNCOMMON}~{7157,1,1,0.0,UNCOMMON}~{995,30,65,0.0,COMMON}~{1025,1,1,0.0,RARE}~{313,10,10,0.0,COMMON}~{987,1,1,0.0,RARE}~{985,1,1,0.0,RARE}~{1623,1,1,0.0,UNCOMMON}~{1621,1,1,0.0,RARE}~{1619,1,1,0.0,RARE}~{1617,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5628, '{526,1,1,0.0,ALWAYS}', '{9141,2,6,0.0,COMMON}~{1209,1,1,0.0,UNCOMMON}~{1329,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{555,23,23,0.0,COMMON}~{559,6,6,0.0,COMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{7863,1,1,0.0,UNCOMMON}~{7157,1,1,0.0,UNCOMMON}~{995,30,65,0.0,COMMON}~{1025,1,1,0.0,RARE}~{313,10,10,0.0,COMMON}~{987,1,1,0.0,RARE}~{985,1,1,0.0,RARE}~{1623,1,1,0.0,UNCOMMON}~{1621,1,1,0.0,RARE}~{1619,1,1,0.0,RARE}~{1617,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5629, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5630, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5631, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5632, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5633, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5634, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5635, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5636, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5637, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5638, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5639, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5640, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5641, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5642, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5643, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5644, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5645, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5646, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5647, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5648, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5649, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5650, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5651, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5652, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5653, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5654, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5655, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5656, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5657, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5658, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5659, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5660, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5661, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5662, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5663, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5664, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5665, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1329,1,1,0.0,RARE}~{1209,1,1,0.0,UNCOMMON}~{9141,2,2,0.0,COMMON}~{556,3,3,0.0,COMMON}~{555,23,23,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{562,7,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{563,2,2,0.0,RARE}~{995,38,46,0.0,COMMON}~{6716,1,1,0.0,UNCOMMON}~{313,10,10,0.0,COMMON}~{7157,1,1,0.0,RARE}~{440,1,1,0.0,UNCOMMON}~{6721,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,COMMON}', ''), +(5678, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5679, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5680, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5681, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5682, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5683, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5684, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5685, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5686, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5687, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5688, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5689, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5690, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5691, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5692, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5693, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5694, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5695, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5696, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(5697, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5698, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5699, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5700, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5701, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5702, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5703, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5704, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5705, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5706, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5707, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5708, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5709, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5710, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5711, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5712, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5713, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5714, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5715, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5716, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5717, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5718, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5719, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5720, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5721, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5722, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5723, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5724, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5725, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5726, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5727, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5728, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5729, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5730, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5731, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5732, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5733, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5734, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5735, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5736, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5737, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5738, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5739, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5740, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5741, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5742, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5743, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5744, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5745, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5746, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5747, '{526,1,1,0.0,ALWAYS}~{960,1,1,0.0,ALWAYS}', '{7863,1,1,0.0,COMMON}~{10940,1,1,0.0,RARE}~{10945,1,1,0.0,RARE}~{10941,1,1,0.0,RARE}~{10933,1,1,0.0,RARE}~{7666,1,1,0.0,UNCOMMON}~{3363,1,1,0.0,UNCOMMON}~{3365,1,1,0.0,UNCOMMON}~{3367,3,3,0.0,UNCOMMON}~{884,5,5,0.0,UNCOMMON}~{886,5,5,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{12158,1,1,0.0,UNCOMMON}~{12159,1,1,0.0,RARE}~{12160,1,1,0.0,RARE}~{12163,1,1,0.0,RARE}', ''), +(5750, '', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{221,1,1,0.0,COMMON}~{225,1,1,0.0,COMMON}~{231,1,1,0.0,COMMON}~{223,1,1,0.0,COMMON}~{235,1,1,0.0,COMMON}~{995,3,8,0.0,COMMON}~{590,1,1,0.0,COMMON}~{10978,1,8,0.0,COMMON}~{4529,1,1,0.0,UNCOMMON}~{36,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{555,1,167,0.0,COMMON}~{557,1,147,0.0,COMMON}~{554,1,91,0.0,UNCOMMON}~{561,1,8,0.0,UNCOMMON}~{995,2,36,0.0,COMMON}~{10978,1,8,0.0,COMMON}~{2712,1,1,0.0,RARE}~{1395,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.505,ALWAYS}~{12158,1,1,0.07,ALWAYS}~{12159,1,1,0.373,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.011,ALWAYS}'), +(5751, '{526,1,1,0.0,ALWAYS}', '{557,1,20,0.0,COMMON}~{555,1,13,0.0,COMMON}~{4698,1,15,0.0,UNCOMMON}~{564,1,7,0.0,RARE}~{561,1,5,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{10978,1,8,0.0,COMMON}~{995,1,444,0.0,UNCOMMON}~{7416,1,1,0.0,RARE}~{2714,1,1,0.0,RARE}~{31,1,1,0.0,RARE}~{2677,1,1,0.0,RARE}', ''), +(5752, '{526,1,1,0.0,ALWAYS}', '{555,6,6,0.0,COMMON}~{559,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{558,13,19,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{877,8,8,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{5016,1,1,0.0,RARE}~{5018,1,1,0.0,RARE}~{1381,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,COMMON}~{1917,1,1,0.0,RARE}~{10999,1,1,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{590,1,1,0.0,UNCOMMON}~{2681,1,1,0.0,RARE}~{995,5,49,0.0,COMMON}~{1987,3,3,0.0,UNCOMMON}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.061,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(5753, '{526,1,1,0.0,ALWAYS}', '{555,6,6,0.0,COMMON}~{559,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{558,13,19,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{877,8,8,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{5016,1,1,0.0,RARE}~{5018,1,1,0.0,RARE}~{1381,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,COMMON}~{1917,1,1,0.0,RARE}~{10999,1,1,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{590,1,1,0.0,UNCOMMON}~{2694,1,1,0.0,RARE}~{995,5,49,0.0,COMMON}~{1987,3,3,0.0,UNCOMMON}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.061,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(5754, '{526,1,1,0.0,ALWAYS}', '{555,6,6,0.0,COMMON}~{559,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{558,13,19,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{877,8,8,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{5016,1,1,0.0,RARE}~{5018,1,1,0.0,RARE}~{1381,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,COMMON}~{1917,1,1,0.0,RARE}~{10999,1,1,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{590,1,1,0.0,UNCOMMON}~{2682,1,1,0.0,RARE}~{995,5,49,0.0,COMMON}~{1987,3,3,0.0,UNCOMMON}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.061,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(5755, '{526,1,1,0.0,ALWAYS}', '{555,6,6,0.0,COMMON}~{559,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{558,13,19,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{877,8,8,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{5016,1,1,0.0,RARE}~{5018,1,1,0.0,RARE}~{1381,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,COMMON}~{1917,1,1,0.0,RARE}~{10999,1,1,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{590,1,1,0.0,UNCOMMON}~{2716,1,1,0.0,RARE}~{995,5,49,0.0,COMMON}~{1987,3,3,0.0,UNCOMMON}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.061,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(5756, '{526,1,1,0.0,ALWAYS}', '{555,6,6,0.0,COMMON}~{559,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{558,13,19,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{877,8,8,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{5016,1,1,0.0,RARE}~{5018,1,1,0.0,RARE}~{1381,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,COMMON}~{1917,1,1,0.0,RARE}~{10999,1,1,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{590,1,1,0.0,UNCOMMON}~{2708,1,1,0.0,RARE}~{995,5,49,0.0,COMMON}~{1987,3,3,0.0,UNCOMMON}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.061,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(5757, '{526,1,1,0.0,ALWAYS}', '{555,6,6,0.0,COMMON}~{559,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{558,13,19,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{877,8,8,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{5016,1,1,0.0,RARE}~{5018,1,1,0.0,RARE}~{1381,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,COMMON}~{1917,1,1,0.0,RARE}~{10999,1,1,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{590,1,1,0.0,UNCOMMON}~{2699,1,1,0.0,RARE}~{995,5,49,0.0,COMMON}~{1987,3,3,0.0,UNCOMMON}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.061,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(5758, '{526,1,1,0.0,ALWAYS}', '{555,6,6,0.0,COMMON}~{559,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{558,13,19,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{877,8,8,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{5016,1,1,0.0,RARE}~{5018,1,1,0.0,RARE}~{1381,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,COMMON}~{1917,1,1,0.0,RARE}~{10999,1,1,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{590,1,1,0.0,UNCOMMON}~{2716,1,1,0.0,RARE}~{995,5,49,0.0,COMMON}~{1987,3,3,0.0,UNCOMMON}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.061,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(5759, '{526,1,1,0.0,ALWAYS}', '{555,6,6,0.0,COMMON}~{559,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{558,13,19,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{877,8,8,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{5016,1,1,0.0,RARE}~{5018,1,1,0.0,RARE}~{1381,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,COMMON}~{1917,1,1,0.0,RARE}~{10999,1,1,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{590,1,1,0.0,UNCOMMON}~{2700,1,1,0.0,RARE}~{995,5,49,0.0,COMMON}~{1987,3,3,0.0,UNCOMMON}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.061,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(5760, '{526,1,1,0.0,ALWAYS}', '{555,6,6,0.0,COMMON}~{559,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{558,13,19,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{877,8,8,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{5016,1,1,0.0,RARE}~{5018,1,1,0.0,RARE}~{1381,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,COMMON}~{1917,1,1,0.0,RARE}~{10999,1,1,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{590,1,1,0.0,UNCOMMON}~{2689,1,1,0.0,RARE}~{995,5,49,0.0,COMMON}~{1987,3,3,0.0,UNCOMMON}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.061,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(5761, '{526,1,1,0.0,ALWAYS}', '{555,6,6,0.0,COMMON}~{559,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{558,13,19,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{877,8,8,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{5016,1,1,0.0,RARE}~{5018,1,1,0.0,RARE}~{1381,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,COMMON}~{1917,1,1,0.0,RARE}~{10999,1,1,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{590,1,1,0.0,UNCOMMON}~{2679,1,1,0.0,RARE}~{995,5,49,0.0,COMMON}~{1987,3,3,0.0,UNCOMMON}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.061,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(5762, '{526,1,1,0.0,ALWAYS}', '{555,6,6,0.0,COMMON}~{559,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{558,13,19,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{877,8,8,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{5016,1,1,0.0,RARE}~{5018,1,1,0.0,RARE}~{1381,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,COMMON}~{1917,1,1,0.0,RARE}~{10999,1,1,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{590,1,1,0.0,UNCOMMON}~{2715,1,1,0.0,RARE}~{995,5,49,0.0,COMMON}~{1987,3,3,0.0,UNCOMMON}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.061,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(5763, '{526,1,1,0.0,ALWAYS}', '{555,6,6,0.0,COMMON}~{559,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{558,13,19,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{877,8,8,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{5016,1,1,0.0,RARE}~{5018,1,1,0.0,RARE}~{1381,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,COMMON}~{1917,1,1,0.0,RARE}~{10999,1,1,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{590,1,1,0.0,UNCOMMON}~{2706,1,1,0.0,RARE}~{995,5,49,0.0,COMMON}~{1987,3,3,0.0,UNCOMMON}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.061,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(5764, '{526,1,1,0.0,ALWAYS}', '{555,6,6,0.0,COMMON}~{559,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{558,13,19,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{877,8,8,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{5016,1,1,0.0,RARE}~{5018,1,1,0.0,RARE}~{1381,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,COMMON}~{1917,1,1,0.0,RARE}~{10999,1,1,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{590,1,1,0.0,UNCOMMON}~{2715,1,1,0.0,RARE}~{995,5,49,0.0,COMMON}~{1987,3,3,0.0,UNCOMMON}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.061,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(5765, '{526,1,1,0.0,ALWAYS}', '{555,6,6,0.0,COMMON}~{559,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{558,13,19,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{877,8,8,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{5016,1,1,0.0,RARE}~{5018,1,1,0.0,RARE}~{1381,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,COMMON}~{1917,1,1,0.0,RARE}~{10999,1,1,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{590,1,1,0.0,UNCOMMON}~{2706,1,1,0.0,RARE}~{995,5,49,0.0,COMMON}~{1987,3,3,0.0,UNCOMMON}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.061,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(5766, '{526,1,1,0.0,ALWAYS}', '{555,6,6,0.0,COMMON}~{559,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{558,13,19,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{877,8,8,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{5016,1,1,0.0,RARE}~{5018,1,1,0.0,RARE}~{1381,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,COMMON}~{1917,1,1,0.0,RARE}~{10999,1,1,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{590,1,1,0.0,UNCOMMON}~{2686,1,1,0.0,RARE}~{995,5,49,0.0,COMMON}~{1987,3,3,0.0,UNCOMMON}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.061,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(5767, '{526,1,1,0.0,ALWAYS}', '{555,6,6,0.0,COMMON}~{559,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{558,13,19,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{877,8,8,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{5016,1,1,0.0,RARE}~{5018,1,1,0.0,RARE}~{1381,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,COMMON}~{1917,1,1,0.0,RARE}~{10999,1,1,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{590,1,1,0.0,UNCOMMON}~{2709,1,1,0.0,RARE}~{995,5,49,0.0,COMMON}~{1987,3,3,0.0,UNCOMMON}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.061,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(5768, '{526,1,1,0.0,ALWAYS}', '{555,6,6,0.0,COMMON}~{559,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{558,13,19,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{877,8,8,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{5016,1,1,0.0,RARE}~{5018,1,1,0.0,RARE}~{1381,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,COMMON}~{1917,1,1,0.0,RARE}~{10999,1,1,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{590,1,1,0.0,UNCOMMON}~{2700,1,1,0.0,RARE}~{995,5,49,0.0,COMMON}~{1987,3,3,0.0,UNCOMMON}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.061,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(5769, '{526,1,1,0.0,ALWAYS}', '{555,6,6,0.0,COMMON}~{559,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{558,13,19,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{877,8,8,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{5016,1,1,0.0,RARE}~{5018,1,1,0.0,RARE}~{1381,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,COMMON}~{1917,1,1,0.0,RARE}~{10999,1,1,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{590,1,1,0.0,UNCOMMON}~{2680,1,1,0.0,RARE}~{995,5,49,0.0,COMMON}~{1987,3,3,0.0,UNCOMMON}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.061,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(5783, '{526,1,1,0.0,ALWAYS}', '{555,6,6,0.0,COMMON}~{559,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{558,13,19,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{877,8,8,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{5016,1,1,0.0,RARE}~{5018,1,1,0.0,RARE}~{1381,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,COMMON}~{1917,1,1,0.0,RARE}~{10999,1,1,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{590,1,1,0.0,UNCOMMON}~{2689,1,1,0.0,RARE}~{995,5,49,0.0,COMMON}~{1987,3,3,0.0,UNCOMMON}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.061,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(5785, '{526,1,1,0.0,ALWAYS}', '{555,6,6,0.0,COMMON}~{559,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{558,13,19,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{877,8,8,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{5016,1,1,0.0,RARE}~{5018,1,1,0.0,RARE}~{1381,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,COMMON}~{1917,1,1,0.0,RARE}~{10999,1,1,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{590,1,1,0.0,UNCOMMON}~{2716,1,1,0.0,RARE}~{995,5,49,0.0,COMMON}~{1987,3,3,0.0,UNCOMMON}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.061,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(5800, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2839,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(5801, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2857,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(5842, '{526,1,1,0.0,ALWAYS}~{11008,1,1,0.0,ALWAYS}', '{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{555,6,6,0.0,UNCOMMON}~{557,5,5,0.0,UNCOMMON}~{995,5,5,0.0,COMMON}~{995,10,10,0.0,COMMON}~{954,1,1,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{313,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{946,1,1,0.0,COMMON}', ''), +(5843, '{526,1,1,0.0,ALWAYS}~{11008,1,1,0.0,ALWAYS}', '{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{555,6,6,0.0,UNCOMMON}~{557,5,5,0.0,UNCOMMON}~{995,5,5,0.0,COMMON}~{995,10,10,0.0,COMMON}~{954,1,1,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{313,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{946,1,1,0.0,COMMON}', ''), +(5844, '{526,1,1,0.0,ALWAYS}~{11008,1,1,0.0,ALWAYS}', '{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{555,6,6,0.0,UNCOMMON}~{557,5,5,0.0,UNCOMMON}~{995,5,5,0.0,COMMON}~{995,10,10,0.0,COMMON}~{954,1,1,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{313,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{946,1,1,0.0,COMMON}', ''), +(5845, '{526,1,1,0.0,ALWAYS}~{11008,1,1,0.0,ALWAYS}', '{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{555,6,6,0.0,UNCOMMON}~{557,5,5,0.0,UNCOMMON}~{995,5,5,0.0,COMMON}~{995,10,10,0.0,COMMON}~{954,1,1,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{313,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{946,1,1,0.0,COMMON}', ''), +(5846, '{526,1,1,0.0,ALWAYS}~{11008,1,1,0.0,ALWAYS}', '{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{555,6,6,0.0,UNCOMMON}~{557,5,5,0.0,UNCOMMON}~{995,5,5,0.0,COMMON}~{995,10,10,0.0,COMMON}~{954,1,1,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{313,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{946,1,1,0.0,COMMON}', ''), +(5847, '{526,1,1,0.0,ALWAYS}~{11008,1,1,0.0,ALWAYS}', '{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{555,6,6,0.0,UNCOMMON}~{557,5,5,0.0,UNCOMMON}~{995,5,5,0.0,COMMON}~{995,10,10,0.0,COMMON}~{954,1,1,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{313,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{946,1,1,0.0,COMMON}', ''), +(5848, '{526,1,1,0.0,ALWAYS}~{11008,1,1,0.0,ALWAYS}', '{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{555,6,6,0.0,UNCOMMON}~{557,5,5,0.0,UNCOMMON}~{995,5,5,0.0,COMMON}~{995,10,10,0.0,COMMON}~{954,1,1,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{313,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{946,1,1,0.0,COMMON}', ''), +(5849, '{526,1,1,0.0,ALWAYS}~{11008,1,1,0.0,ALWAYS}', '{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{555,6,6,0.0,UNCOMMON}~{557,5,5,0.0,UNCOMMON}~{995,5,5,0.0,COMMON}~{995,10,10,0.0,COMMON}~{954,1,1,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{313,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{946,1,1,0.0,COMMON}', ''), +(5850, '{526,1,1,0.0,ALWAYS}~{11008,1,1,0.0,ALWAYS}', '{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{555,6,6,0.0,UNCOMMON}~{557,5,5,0.0,UNCOMMON}~{995,5,5,0.0,COMMON}~{995,10,10,0.0,COMMON}~{954,1,1,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{313,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{946,1,1,0.0,COMMON}', ''), +(5851, '{526,1,1,0.0,ALWAYS}~{11008,1,1,0.0,ALWAYS}', '{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{555,6,6,0.0,UNCOMMON}~{557,5,5,0.0,UNCOMMON}~{995,5,5,0.0,COMMON}~{995,10,10,0.0,COMMON}~{954,1,1,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{313,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{946,1,1,0.0,COMMON}', ''), +(5852, '{3186,1,1,0.0,ALWAYS}~{3166,1,1,0.0,ALWAYS}', '{7856,1,1,0.0,COMMON}', '{0,1,1,1.0,ALWAYS}~{12158,1,1,-0.006,ALWAYS}~{12159,1,1,0.002,ALWAYS}~{12160,1,1,0.002,ALWAYS}~{12163,1,1,0.002,ALWAYS}'), +(5855, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2681,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(5856, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2714,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}~{2677,1,1,0.0,RARE}', ''), +(5859, '', '{2677,1,1,0.0,RARE}', ''), +(5860, '', '{2677,1,1,0.0,RARE}', ''); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(5873, '{526,1,1,0.0,ALWAYS}', '{555,6,6,0.0,COMMON}~{559,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{558,13,19,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{877,8,8,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{5016,1,1,0.0,RARE}~{5018,1,1,0.0,RARE}~{1381,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,COMMON}~{1917,1,1,0.0,RARE}~{10999,1,1,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{590,1,1,0.0,UNCOMMON}~{2690,1,1,0.0,RARE}~{995,5,49,0.0,COMMON}~{1987,3,3,0.0,UNCOMMON}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.061,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(5874, '{526,1,1,0.0,ALWAYS}', '{555,6,6,0.0,COMMON}~{559,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{558,13,19,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{877,8,8,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{5016,1,1,0.0,RARE}~{5018,1,1,0.0,RARE}~{1381,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,COMMON}~{1917,1,1,0.0,RARE}~{10999,1,1,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{590,1,1,0.0,UNCOMMON}~{2705,1,1,0.0,RARE}~{995,5,49,0.0,COMMON}~{1987,3,3,0.0,UNCOMMON}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.061,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(5875, '{526,1,1,0.0,ALWAYS}', '{555,6,6,0.0,COMMON}~{559,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{558,13,19,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{877,8,8,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{5016,1,1,0.0,RARE}~{5018,1,1,0.0,RARE}~{1381,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,COMMON}~{1917,1,1,0.0,RARE}~{10999,1,1,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{590,1,1,0.0,UNCOMMON}~{2694,1,1,0.0,RARE}~{995,5,49,0.0,COMMON}~{1987,3,3,0.0,UNCOMMON}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.061,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(5876, '{526,1,1,0.0,ALWAYS}', '{555,6,6,0.0,COMMON}~{559,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{558,13,19,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{877,8,8,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{5016,1,1,0.0,RARE}~{5018,1,1,0.0,RARE}~{1381,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,COMMON}~{1917,1,1,0.0,RARE}~{10999,1,1,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{590,1,1,0.0,UNCOMMON}~{2708,1,1,0.0,RARE}~{995,5,49,0.0,COMMON}~{1987,3,3,0.0,UNCOMMON}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.061,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(5877, '{526,1,1,0.0,ALWAYS}', '{555,6,6,0.0,COMMON}~{559,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{558,13,19,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{877,8,8,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{5016,1,1,0.0,RARE}~{5018,1,1,0.0,RARE}~{1381,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,COMMON}~{1917,1,1,0.0,RARE}~{10999,1,1,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{590,1,1,0.0,UNCOMMON}~{2685,1,1,0.0,RARE}~{995,5,49,0.0,COMMON}~{1987,3,3,0.0,UNCOMMON}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.061,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(5878, '{526,1,1,0.0,ALWAYS}', '{555,6,6,0.0,COMMON}~{559,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{558,13,19,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{877,8,8,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{5016,1,1,0.0,RARE}~{5018,1,1,0.0,RARE}~{1381,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,UNCOMMON}~{7907,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,COMMON}~{1917,1,1,0.0,RARE}~{10999,1,1,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{590,1,1,0.0,UNCOMMON}~{2692,1,1,0.0,RARE}~{995,5,49,0.0,COMMON}~{1987,3,3,0.0,UNCOMMON}', '{0,1,1,0.87,ALWAYS}~{12158,1,1,0.061,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(5880, '{526,1,1,0.0,ALWAYS}', '{1265,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{2349,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{440,1,1,0.0,COMMON}~{1267,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{561,2,2,0.0,RARE}~{562,2,2,0.0,RARE}~{1139,1,1,0.0,COMMON}~{1375,1,1,0.0,UNCOMMON}~{1363,1,1,0.0,UNCOMMON}~{877,2,2,0.0,UNCOMMON}~{877,11,11,0.0,UNCOMMON}~{995,4,4,0.0,COMMON}~{995,10,10,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1913,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.905,ALWAYS}~{12158,1,1,0.039,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(5881, '{526,1,1,0.0,ALWAYS}', '{1265,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{2349,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{440,1,1,0.0,COMMON}~{1267,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{561,2,2,0.0,RARE}~{562,2,2,0.0,RARE}~{1139,1,1,0.0,COMMON}~{1375,1,1,0.0,UNCOMMON}~{1363,1,1,0.0,UNCOMMON}~{877,2,2,0.0,UNCOMMON}~{877,11,11,0.0,UNCOMMON}~{995,4,4,0.0,COMMON}~{995,10,10,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1913,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.905,ALWAYS}~{12158,1,1,0.039,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(5882, '{526,1,1,0.0,ALWAYS}', '{1265,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{2349,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{440,1,1,0.0,COMMON}~{1267,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{561,2,2,0.0,RARE}~{562,2,2,0.0,RARE}~{1139,1,1,0.0,COMMON}~{1375,1,1,0.0,UNCOMMON}~{1363,1,1,0.0,UNCOMMON}~{877,2,2,0.0,UNCOMMON}~{877,11,11,0.0,UNCOMMON}~{995,4,4,0.0,COMMON}~{995,10,10,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1913,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.905,ALWAYS}~{12158,1,1,0.039,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(5883, '{526,1,1,0.0,ALWAYS}', '{1265,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{2349,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{440,1,1,0.0,COMMON}~{1267,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{561,2,2,0.0,RARE}~{562,2,2,0.0,RARE}~{1139,1,1,0.0,COMMON}~{1375,1,1,0.0,UNCOMMON}~{1363,1,1,0.0,UNCOMMON}~{877,2,2,0.0,UNCOMMON}~{877,11,11,0.0,UNCOMMON}~{995,4,4,0.0,COMMON}~{995,10,10,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1913,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.905,ALWAYS}~{12158,1,1,0.039,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(5884, '{526,1,1,0.0,ALWAYS}', '{1265,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{2349,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{440,1,1,0.0,COMMON}~{1267,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{561,2,2,0.0,RARE}~{562,2,2,0.0,RARE}~{1139,1,1,0.0,COMMON}~{1375,1,1,0.0,UNCOMMON}~{1363,1,1,0.0,UNCOMMON}~{877,2,2,0.0,UNCOMMON}~{877,11,11,0.0,UNCOMMON}~{995,4,4,0.0,COMMON}~{995,10,10,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1913,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.905,ALWAYS}~{12158,1,1,0.039,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(5885, '{526,1,1,0.0,ALWAYS}', '{1265,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{2349,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{440,1,1,0.0,COMMON}~{1267,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2351,1,1,0.0,UNCOMMON}~{561,2,2,0.0,RARE}~{562,2,2,0.0,RARE}~{1139,1,1,0.0,COMMON}~{1375,1,1,0.0,UNCOMMON}~{1363,1,1,0.0,UNCOMMON}~{877,2,2,0.0,UNCOMMON}~{877,11,11,0.0,UNCOMMON}~{995,4,4,0.0,COMMON}~{995,10,10,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1913,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.905,ALWAYS}~{12158,1,1,0.039,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(5909, '{526,1,1,0.0,ALWAYS}', '{557,2,5,0.0,UNCOMMON}~{562,2,6,0.0,UNCOMMON}~{563,1,2,0.0,UNCOMMON}~{558,4,10,0.0,UNCOMMON}~{554,5,5,0.0,UNCOMMON}~{554,8,8,0.0,UNCOMMON}~{1379,1,1,0.0,UNCOMMON}~{1351,1,1,0.0,COMMON}~{1375,1,1,0.0,COMMON}~{882,5,18,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{884,8,8,0.0,COMMON}~{995,58,315,0.0,COMMON}~{440,1,1,0.0,COMMON}~{438,1,1,0.0,COMMON}~{1917,1,1,0.0,COMMON}~{2142,1,1,0.0,COMMON}~{948,1,1,0.0,COMMON}~{1592,1,1,0.0,UNCOMMON}~{9004,1,1,0.0,RARE}~{1595,1,1,0.0,UNCOMMON}~{1619,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{2698,1,1,0.0,RARE}~{956,1,1,0.0,RARE}~{2349,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.9400000000000001,ALWAYS}~{12158,1,1,0.041,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.003,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(5919, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2857,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(5920, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2833,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(5923, '{526,1,1,0.0,ALWAYS}', '{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{877,2,12,0.0,COMMON}~{882,7,7,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{995,1,40,0.0,COMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{2703,1,1,0.0,RARE}', ''), +(5924, '{526,1,1,0.0,ALWAYS}', '{877,7,7,0.0,COMMON}~{882,2,12,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{555,7,7,0.0,UNCOMMON}~{557,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{562,2,2,0.0,RARE}~{559,7,7,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{995,1,400,0.0,COMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{2701,1,1,0.0,RARE}', ''), +(5926, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{882,1,1,0.0,UNCOMMON}~{877,2,2,0.0,UNCOMMON}~{877,4,4,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{863,1,1,0.0,UNCOMMON}~{562,1,1,0.0,RARE}~{557,1,1,0.0,RARE}~{554,1,1,0.0,RARE}~{558,1,1,0.0,RARE}~{995,3,3,0.0,COMMON}~{995,5,5,0.0,COMMON}~{1440,1,1,0.0,RARE}~{2747,1,1,0.0,RARE}~{436,1,1,0.0,RARE}', ''), +(5927, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{882,1,1,0.0,UNCOMMON}~{877,2,2,0.0,UNCOMMON}~{877,4,4,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{863,1,1,0.0,UNCOMMON}~{562,1,1,0.0,RARE}~{557,1,1,0.0,RARE}~{554,1,1,0.0,RARE}~{558,1,1,0.0,RARE}~{995,3,3,0.0,COMMON}~{995,5,5,0.0,COMMON}~{1440,1,1,0.0,RARE}~{2747,1,1,0.0,RARE}~{436,1,1,0.0,RARE}', ''), +(5928, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{882,1,1,0.0,UNCOMMON}~{877,2,2,0.0,UNCOMMON}~{877,4,4,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{863,1,1,0.0,UNCOMMON}~{562,1,1,0.0,RARE}~{557,1,1,0.0,RARE}~{554,1,1,0.0,RARE}~{558,1,1,0.0,RARE}~{995,3,3,0.0,COMMON}~{995,5,5,0.0,COMMON}~{1440,1,1,0.0,RARE}~{2747,1,1,0.0,RARE}~{436,1,1,0.0,RARE}', ''), +(5929, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{882,1,1,0.0,UNCOMMON}~{877,2,2,0.0,UNCOMMON}~{877,4,4,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{863,1,1,0.0,UNCOMMON}~{562,1,1,0.0,RARE}~{557,1,1,0.0,RARE}~{554,1,1,0.0,RARE}~{558,1,1,0.0,RARE}~{995,3,3,0.0,COMMON}~{995,5,5,0.0,COMMON}~{1440,1,1,0.0,RARE}~{2747,1,1,0.0,RARE}~{436,1,1,0.0,RARE}', ''), +(5993, '{526,1,1,0.0,ALWAYS}~{11205,1,1,0.0,ALWAYS}', '{203,1,3,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{557,3,3,0.0,UNCOMMON}~{555,11,11,0.0,UNCOMMON}~{562,11,11,0.0,UNCOMMON}~{561,3,4,0.0,UNCOMMON}~{1407,1,1,0.0,COMMON}~{995,57,57,0.0,UNCOMMON}~{1385,1,1,0.0,UNCOMMON}~{7416,1,1,0.0,UNCOMMON}~{2725,1,1,0.0,RARE}~{7893,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(5996, '{532,2,2,0.0,ALWAYS}~{11210,1,1,0.0,ALWAYS}', '{5331,1,1,0.0,COMMON}~{10976,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6006, '{2859,1,1,0.0,ALWAYS}', '{2138,5,5,0.0,COMMON}~{2132,5,5,0.0,COMMON}~{2136,1,5,0.0,COMMON}~{1993,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{886,50,50,0.0,UNCOMMON}~{1157,1,1,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,UNCOMMON}~{830,1,1,0.0,UNCOMMON}~{203,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,10,10,0.0,COMMON}~{995,90,90,0.0,COMMON}~{6814,1,1,0.0,COMMON}~{958,1,1,0.0,COMMON}~{7868,1,1,0.0,COMMON}~{2815,1,1,0.0,RARE}~{245,1,1,0.0,RARE}~{983,1,1,0.0,RARE}~{239,1,1,0.0,RARE}~{1925,1,1,0.0,RARE}~{440,1,5,0.0,UNCOMMON}~{453,2,2,0.0,UNCOMMON}~{227,1,1,0.0,RARE}~{590,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,COMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.465,ALWAYS}~{12158,1,1,0.445,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(6007, '{2859,1,1,0.0,ALWAYS}', '{2138,5,5,0.0,COMMON}~{2132,5,5,0.0,COMMON}~{2136,1,5,0.0,COMMON}~{1993,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{886,50,50,0.0,UNCOMMON}~{1157,1,1,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,UNCOMMON}~{830,1,1,0.0,UNCOMMON}~{203,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,10,10,0.0,COMMON}~{995,90,90,0.0,COMMON}~{6814,1,1,0.0,COMMON}~{958,1,1,0.0,COMMON}~{7868,1,1,0.0,COMMON}~{2831,1,1,0.0,RARE}~{245,1,1,0.0,RARE}~{983,1,1,0.0,RARE}~{239,1,1,0.0,RARE}~{1925,1,1,0.0,RARE}~{440,1,5,0.0,UNCOMMON}~{453,2,2,0.0,UNCOMMON}~{227,1,1,0.0,RARE}~{590,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,COMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.465,ALWAYS}~{12158,1,1,0.445,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(6008, '{2859,1,1,0.0,ALWAYS}', '{2138,5,5,0.0,COMMON}~{2132,5,5,0.0,COMMON}~{2136,1,5,0.0,COMMON}~{1993,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{886,50,50,0.0,UNCOMMON}~{1157,1,1,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,UNCOMMON}~{830,1,1,0.0,UNCOMMON}~{203,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,10,10,0.0,COMMON}~{995,90,90,0.0,COMMON}~{6814,1,1,0.0,COMMON}~{958,1,1,0.0,COMMON}~{7868,1,1,0.0,COMMON}~{2825,1,1,0.0,RARE}~{245,1,1,0.0,RARE}~{983,1,1,0.0,RARE}~{239,1,1,0.0,RARE}~{1925,1,1,0.0,RARE}~{440,1,5,0.0,UNCOMMON}~{453,2,2,0.0,UNCOMMON}~{227,1,1,0.0,RARE}~{590,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,COMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.465,ALWAYS}~{12158,1,1,0.445,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(6009, '{2859,1,1,0.0,ALWAYS}', '{2138,5,5,0.0,COMMON}~{2132,5,5,0.0,COMMON}~{2136,1,5,0.0,COMMON}~{1993,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{886,50,50,0.0,UNCOMMON}~{1157,1,1,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,UNCOMMON}~{830,1,1,0.0,UNCOMMON}~{203,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,10,10,0.0,COMMON}~{995,90,90,0.0,COMMON}~{6814,1,1,0.0,COMMON}~{958,1,1,0.0,COMMON}~{7868,1,1,0.0,COMMON}~{2837,1,1,0.0,RARE}~{245,1,1,0.0,RARE}~{983,1,1,0.0,RARE}~{239,1,1,0.0,RARE}~{1925,1,1,0.0,RARE}~{440,1,5,0.0,UNCOMMON}~{453,2,2,0.0,UNCOMMON}~{227,1,1,0.0,RARE}~{590,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,COMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.465,ALWAYS}~{12158,1,1,0.445,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(6010, '{2859,1,1,0.0,ALWAYS}', '{2138,5,5,0.0,COMMON}~{2132,5,5,0.0,COMMON}~{2136,1,5,0.0,COMMON}~{1993,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{886,50,50,0.0,UNCOMMON}~{1157,1,1,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,UNCOMMON}~{830,1,1,0.0,UNCOMMON}~{203,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,10,10,0.0,COMMON}~{995,90,90,0.0,COMMON}~{6814,1,1,0.0,COMMON}~{958,1,1,0.0,COMMON}~{7868,1,1,0.0,COMMON}~{2855,1,1,0.0,RARE}~{245,1,1,0.0,RARE}~{983,1,1,0.0,RARE}~{239,1,1,0.0,RARE}~{1925,1,1,0.0,RARE}~{440,1,5,0.0,UNCOMMON}~{453,2,2,0.0,UNCOMMON}~{227,1,1,0.0,RARE}~{590,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,COMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.465,ALWAYS}~{12158,1,1,0.445,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(6011, '{2859,1,1,0.0,ALWAYS}', '{2138,5,5,0.0,COMMON}~{2132,5,5,0.0,COMMON}~{2136,1,5,0.0,COMMON}~{1993,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{886,50,50,0.0,UNCOMMON}~{1157,1,1,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,UNCOMMON}~{830,1,1,0.0,UNCOMMON}~{203,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,10,10,0.0,COMMON}~{995,90,90,0.0,COMMON}~{6814,1,1,0.0,COMMON}~{958,1,1,0.0,COMMON}~{7868,1,1,0.0,COMMON}~{2841,1,1,0.0,RARE}~{245,1,1,0.0,RARE}~{983,1,1,0.0,RARE}~{239,1,1,0.0,RARE}~{1925,1,1,0.0,RARE}~{440,1,5,0.0,UNCOMMON}~{453,2,2,0.0,UNCOMMON}~{227,1,1,0.0,RARE}~{590,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,COMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.465,ALWAYS}~{12158,1,1,0.445,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(6012, '{2859,1,1,0.0,ALWAYS}', '{2138,5,5,0.0,COMMON}~{2132,5,5,0.0,COMMON}~{2136,1,5,0.0,COMMON}~{1993,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{886,50,50,0.0,UNCOMMON}~{1157,1,1,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,UNCOMMON}~{830,1,1,0.0,UNCOMMON}~{203,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,10,10,0.0,COMMON}~{995,90,90,0.0,COMMON}~{6814,1,1,0.0,COMMON}~{958,1,1,0.0,COMMON}~{7868,1,1,0.0,COMMON}~{2839,1,1,0.0,RARE}~{245,1,1,0.0,RARE}~{983,1,1,0.0,RARE}~{239,1,1,0.0,RARE}~{1925,1,1,0.0,RARE}~{440,1,5,0.0,UNCOMMON}~{453,2,2,0.0,UNCOMMON}~{227,1,1,0.0,RARE}~{590,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,COMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.465,ALWAYS}~{12158,1,1,0.445,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(6013, '{2859,1,1,0.0,ALWAYS}', '{2138,5,5,0.0,COMMON}~{2132,5,5,0.0,COMMON}~{2136,1,5,0.0,COMMON}~{1993,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{886,50,50,0.0,UNCOMMON}~{1157,1,1,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,UNCOMMON}~{830,1,1,0.0,UNCOMMON}~{203,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,10,10,0.0,COMMON}~{995,90,90,0.0,COMMON}~{6814,1,1,0.0,COMMON}~{958,1,1,0.0,COMMON}~{7868,1,1,0.0,COMMON}~{2855,1,1,0.0,RARE}~{245,1,1,0.0,RARE}~{983,1,1,0.0,RARE}~{239,1,1,0.0,RARE}~{1925,1,1,0.0,RARE}~{440,1,5,0.0,UNCOMMON}~{453,2,2,0.0,UNCOMMON}~{227,1,1,0.0,RARE}~{590,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,COMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.465,ALWAYS}~{12158,1,1,0.445,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(6014, '{2859,1,1,0.0,ALWAYS}', '{2138,5,5,0.0,COMMON}~{2132,5,5,0.0,COMMON}~{2136,1,5,0.0,COMMON}~{1993,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{886,50,50,0.0,UNCOMMON}~{1157,1,1,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,UNCOMMON}~{830,1,1,0.0,UNCOMMON}~{203,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,10,10,0.0,COMMON}~{995,90,90,0.0,COMMON}~{6814,1,1,0.0,COMMON}~{958,1,1,0.0,COMMON}~{7868,1,1,0.0,COMMON}~{2857,1,1,0.0,RARE}~{245,1,1,0.0,RARE}~{983,1,1,0.0,RARE}~{239,1,1,0.0,RARE}~{1925,1,1,0.0,RARE}~{440,1,5,0.0,UNCOMMON}~{453,2,2,0.0,UNCOMMON}~{227,1,1,0.0,RARE}~{590,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,COMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.465,ALWAYS}~{12158,1,1,0.445,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(6015, '{2859,1,1,0.0,ALWAYS}', '{2138,5,5,0.0,COMMON}~{2132,5,5,0.0,COMMON}~{2136,1,5,0.0,COMMON}~{1993,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{886,50,50,0.0,UNCOMMON}~{1157,1,1,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,UNCOMMON}~{830,1,1,0.0,UNCOMMON}~{203,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,10,10,0.0,COMMON}~{995,90,90,0.0,COMMON}~{6814,1,1,0.0,COMMON}~{958,1,1,0.0,COMMON}~{7868,1,1,0.0,COMMON}~{2827,1,1,0.0,RARE}~{245,1,1,0.0,RARE}~{983,1,1,0.0,RARE}~{239,1,1,0.0,RARE}~{1925,1,1,0.0,RARE}~{440,1,5,0.0,UNCOMMON}~{453,2,2,0.0,UNCOMMON}~{227,1,1,0.0,RARE}~{590,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,COMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.465,ALWAYS}~{12158,1,1,0.445,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(6016, '{2859,1,1,0.0,ALWAYS}', '{2138,5,5,0.0,COMMON}~{2132,5,5,0.0,COMMON}~{2136,1,5,0.0,COMMON}~{1993,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{886,50,50,0.0,UNCOMMON}~{1157,1,1,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,UNCOMMON}~{830,1,1,0.0,UNCOMMON}~{203,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,10,10,0.0,COMMON}~{995,90,90,0.0,COMMON}~{6814,1,1,0.0,COMMON}~{958,1,1,0.0,COMMON}~{7868,1,1,0.0,COMMON}~{2837,1,1,0.0,RARE}~{245,1,1,0.0,RARE}~{983,1,1,0.0,RARE}~{239,1,1,0.0,RARE}~{1925,1,1,0.0,RARE}~{440,1,5,0.0,UNCOMMON}~{453,2,2,0.0,UNCOMMON}~{227,1,1,0.0,RARE}~{590,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,COMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.465,ALWAYS}~{12158,1,1,0.445,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(6017, '{2859,1,1,0.0,ALWAYS}', '{2138,5,5,0.0,COMMON}~{2132,5,5,0.0,COMMON}~{2136,1,5,0.0,COMMON}~{1993,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{886,50,50,0.0,UNCOMMON}~{1157,1,1,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,UNCOMMON}~{830,1,1,0.0,UNCOMMON}~{203,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,10,10,0.0,COMMON}~{995,90,90,0.0,COMMON}~{6814,1,1,0.0,COMMON}~{958,1,1,0.0,COMMON}~{7868,1,1,0.0,COMMON}~{2857,1,1,0.0,RARE}~{245,1,1,0.0,RARE}~{983,1,1,0.0,RARE}~{239,1,1,0.0,RARE}~{1925,1,1,0.0,RARE}~{440,1,5,0.0,UNCOMMON}~{453,2,2,0.0,UNCOMMON}~{227,1,1,0.0,RARE}~{590,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,COMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.465,ALWAYS}~{12158,1,1,0.445,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(6018, '{2859,1,1,0.0,ALWAYS}', '{2138,5,5,0.0,COMMON}~{2132,5,5,0.0,COMMON}~{2136,1,5,0.0,COMMON}~{1993,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{886,50,50,0.0,UNCOMMON}~{1157,1,1,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,UNCOMMON}~{830,1,1,0.0,UNCOMMON}~{203,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,10,10,0.0,COMMON}~{995,90,90,0.0,COMMON}~{6814,1,1,0.0,COMMON}~{958,1,1,0.0,COMMON}~{7868,1,1,0.0,COMMON}~{2829,1,1,0.0,RARE}~{245,1,1,0.0,RARE}~{983,1,1,0.0,RARE}~{239,1,1,0.0,RARE}~{1925,1,1,0.0,RARE}~{440,1,5,0.0,UNCOMMON}~{453,2,2,0.0,UNCOMMON}~{227,1,1,0.0,RARE}~{590,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,COMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.465,ALWAYS}~{12158,1,1,0.445,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(6019, '{2859,1,1,0.0,ALWAYS}', '{2138,5,5,0.0,COMMON}~{2132,5,5,0.0,COMMON}~{2136,1,5,0.0,COMMON}~{1993,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{886,50,50,0.0,UNCOMMON}~{1157,1,1,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,UNCOMMON}~{830,1,1,0.0,UNCOMMON}~{203,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,10,10,0.0,COMMON}~{995,90,90,0.0,COMMON}~{6814,1,1,0.0,COMMON}~{958,1,1,0.0,COMMON}~{7868,1,1,0.0,COMMON}~{2813,1,1,0.0,RARE}~{245,1,1,0.0,RARE}~{983,1,1,0.0,RARE}~{239,1,1,0.0,RARE}~{1925,1,1,0.0,RARE}~{440,1,5,0.0,UNCOMMON}~{453,2,2,0.0,UNCOMMON}~{227,1,1,0.0,RARE}~{590,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,COMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.465,ALWAYS}~{12158,1,1,0.445,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(6020, '{2859,1,1,0.0,ALWAYS}', '{2138,5,5,0.0,COMMON}~{2132,5,5,0.0,COMMON}~{2136,1,5,0.0,COMMON}~{1993,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{886,50,50,0.0,UNCOMMON}~{1157,1,1,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,UNCOMMON}~{830,1,1,0.0,UNCOMMON}~{203,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,10,10,0.0,COMMON}~{995,90,90,0.0,COMMON}~{6814,1,1,0.0,COMMON}~{958,1,1,0.0,COMMON}~{7868,1,1,0.0,COMMON}~{2829,1,1,0.0,RARE}~{245,1,1,0.0,RARE}~{983,1,1,0.0,RARE}~{239,1,1,0.0,RARE}~{1925,1,1,0.0,RARE}~{440,1,5,0.0,UNCOMMON}~{453,2,2,0.0,UNCOMMON}~{227,1,1,0.0,RARE}~{590,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,COMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.465,ALWAYS}~{12158,1,1,0.445,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(6021, '{2859,1,1,0.0,ALWAYS}', '{2138,5,5,0.0,COMMON}~{2132,5,5,0.0,COMMON}~{2136,1,5,0.0,COMMON}~{1993,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{886,50,50,0.0,UNCOMMON}~{1157,1,1,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,UNCOMMON}~{830,1,1,0.0,UNCOMMON}~{203,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,10,10,0.0,COMMON}~{995,90,90,0.0,COMMON}~{6814,1,1,0.0,COMMON}~{958,1,1,0.0,COMMON}~{7868,1,1,0.0,COMMON}~{2819,1,1,0.0,RARE}~{245,1,1,0.0,RARE}~{983,1,1,0.0,RARE}~{239,1,1,0.0,RARE}~{1925,1,1,0.0,RARE}~{440,1,5,0.0,UNCOMMON}~{453,2,2,0.0,UNCOMMON}~{227,1,1,0.0,RARE}~{590,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,COMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.465,ALWAYS}~{12158,1,1,0.445,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(6022, '{2859,1,1,0.0,ALWAYS}', '{2138,5,5,0.0,COMMON}~{2132,5,5,0.0,COMMON}~{2136,1,5,0.0,COMMON}~{1993,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{886,50,50,0.0,UNCOMMON}~{1157,1,1,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,UNCOMMON}~{830,1,1,0.0,UNCOMMON}~{203,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,10,10,0.0,COMMON}~{995,90,90,0.0,COMMON}~{6814,1,1,0.0,COMMON}~{958,1,1,0.0,COMMON}~{7868,1,1,0.0,COMMON}~{2845,1,1,0.0,RARE}~{245,1,1,0.0,RARE}~{983,1,1,0.0,RARE}~{239,1,1,0.0,RARE}~{1925,1,1,0.0,RARE}~{440,1,5,0.0,UNCOMMON}~{453,2,2,0.0,UNCOMMON}~{227,1,1,0.0,RARE}~{590,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,COMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.465,ALWAYS}~{12158,1,1,0.445,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(6023, '{2859,1,1,0.0,ALWAYS}', '{2138,5,5,0.0,COMMON}~{2132,5,5,0.0,COMMON}~{2136,1,5,0.0,COMMON}~{1993,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{886,50,50,0.0,UNCOMMON}~{1157,1,1,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,UNCOMMON}~{830,1,1,0.0,UNCOMMON}~{203,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,10,10,0.0,COMMON}~{995,90,90,0.0,COMMON}~{6814,1,1,0.0,COMMON}~{958,1,1,0.0,COMMON}~{7868,1,1,0.0,COMMON}~{2821,1,1,0.0,RARE}~{245,1,1,0.0,RARE}~{983,1,1,0.0,RARE}~{239,1,1,0.0,RARE}~{1925,1,1,0.0,RARE}~{440,1,5,0.0,UNCOMMON}~{453,2,2,0.0,UNCOMMON}~{227,1,1,0.0,RARE}~{590,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,COMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.465,ALWAYS}~{12158,1,1,0.445,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(6024, '{2859,1,1,0.0,ALWAYS}', '{2138,5,5,0.0,COMMON}~{2132,5,5,0.0,COMMON}~{2136,1,5,0.0,COMMON}~{1993,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{886,50,50,0.0,UNCOMMON}~{1157,1,1,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,UNCOMMON}~{830,1,1,0.0,UNCOMMON}~{203,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,10,10,0.0,COMMON}~{995,90,90,0.0,COMMON}~{6814,1,1,0.0,COMMON}~{958,1,1,0.0,COMMON}~{7868,1,1,0.0,COMMON}~{2807,1,1,0.0,RARE}~{245,1,1,0.0,RARE}~{983,1,1,0.0,RARE}~{239,1,1,0.0,RARE}~{1925,1,1,0.0,RARE}~{440,1,5,0.0,UNCOMMON}~{453,2,2,0.0,UNCOMMON}~{227,1,1,0.0,RARE}~{590,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,COMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.465,ALWAYS}~{12158,1,1,0.445,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(6025, '{2859,1,1,0.0,ALWAYS}', '{2138,5,5,0.0,COMMON}~{2132,5,5,0.0,COMMON}~{2136,1,5,0.0,COMMON}~{1993,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{886,50,50,0.0,UNCOMMON}~{1157,1,1,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,UNCOMMON}~{830,1,1,0.0,UNCOMMON}~{203,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,10,10,0.0,COMMON}~{995,90,90,0.0,COMMON}~{6814,1,1,0.0,COMMON}~{958,1,1,0.0,COMMON}~{7868,1,1,0.0,COMMON}~{2805,1,1,0.0,RARE}~{245,1,1,0.0,RARE}~{983,1,1,0.0,RARE}~{239,1,1,0.0,RARE}~{1925,1,1,0.0,RARE}~{440,1,5,0.0,UNCOMMON}~{453,2,2,0.0,UNCOMMON}~{227,1,1,0.0,RARE}~{590,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,COMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.465,ALWAYS}~{12158,1,1,0.445,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(6028, '{2859,1,1,0.0,ALWAYS}', '{2138,5,5,0.0,COMMON}~{2132,5,5,0.0,COMMON}~{2136,5,5,0.0,COMMON}~{1993,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{886,50,50,0.0,UNCOMMON}~{1157,1,1,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,UNCOMMON}~{830,1,1,0.0,UNCOMMON}~{203,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,10,10,0.0,COMMON}~{995,90,90,0.0,COMMON}~{6814,1,1,0.0,COMMON}~{958,1,1,0.0,COMMON}~{7868,1,1,0.0,COMMON}~{227,1,1,0.0,COMMON}~{2733,1,1,0.0,RARE}~{245,1,1,0.0,RARE}~{983,1,1,0.0,RARE}~{239,1,1,0.0,RARE}~{1925,1,1,0.0,RARE}~{440,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.465,ALWAYS}~{12158,1,1,0.445,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(6047, '{526,1,1,0.0,ALWAYS}~{2859,1,1,0.0,ALWAYS}', '{7830,1,1,0.0,COMMON}', '{0,1,1,0.885,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.051000000000000004,ALWAYS}~{12163,1,1,0.009000000000000001,ALWAYS}'), +(6048, '{526,1,1,0.0,ALWAYS}~{2859,1,1,0.0,ALWAYS}', '{7830,1,1,0.0,COMMON}', '{0,1,1,0.885,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.051000000000000004,ALWAYS}~{12163,1,1,0.009000000000000001,ALWAYS}'), +(6049, '{526,1,1,0.0,ALWAYS}~{2859,1,1,0.0,ALWAYS}', '{7830,1,1,0.0,COMMON}', '{0,1,1,0.885,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.051000000000000004,ALWAYS}~{12163,1,1,0.009000000000000001,ALWAYS}'), +(6050, '{2859,1,1,0.0,ALWAYS}', '', ''), +(6051, '{2859,1,1,0.0,ALWAYS}', '', ''), +(6052, '{2859,1,1,0.0,ALWAYS}', '', '{0,1,1,0.8250000000000001,ALWAYS}~{12158,1,1,0.10300000000000001,ALWAYS}~{12159,1,1,0.045,ALWAYS}~{12160,1,1,0.013000000000000001,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(6053, '', '{6328,1,1,0.0,COMMON}~{3385,1,1,0.0,COMMON}~{3391,1,1,0.0,COMMON}~{1113,1,1,0.0,UNCOMMON}~{3101,1,1,0.0,COMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1215,1,1,0.0,UNCOMMON}~{6313,1,1,0.0,COMMON}~{892,70,70,0.0,COMMON}~{811,70,70,0.0,COMMON}~{868,40,40,0.0,COMMON}~{805,50,50,0.0,COMMON}~{9342,2,2,0.0,UNCOMMON}~{9194,4,4,0.0,RARE}~{1747,1016,1016,0.0,COMMON}~{140,4,4,0.0,COMMON}~{5938,4,4,0.0,UNCOMMON}~{6155,3,3,0.0,UNCOMMON}~{2364,4,4,0.0,RARE}', ''), +(6054, '', '{1705,2,3,0.0,RARE}~{5547,1,1,0.0,RARE}~{1703,2,3,0.0,RARE}~{11212,100,500,0.0,COMMON}~{9341,3,40,0.0,COMMON}~{1305,1,1,0.0,COMMON}~{1215,3,3,0.0,UNCOMMON}~{11230,105,350,0.0,UNCOMMON}~{11232,105,350,0.0,COMMON}~{11237,100,500,0.0,COMMON}~{9193,10,49,0.0,COMMON}~{535,111,297,0.0,COMMON}~{5316,1,1,0.0,UNCOMMON}~{537,52,99,0.0,UNCOMMON}~{1616,3,6,0.0,UNCOMMON}~{5300,6,6,0.0,RARE}~{7219,5,15,0.0,RARE}', ''), +(6056, '', '{855,1,1,0.0,UNCOMMON}~{1353,1,1,0.0,UNCOMMON}~{1097,1,1,0.0,RARE}~{1157,1,1,0.0,RARE}~{361,1,1,0.0,COMMON}~{1901,1,1,0.0,COMMON}~{2293,1,1,0.0,UNCOMMON}~{7178,1,1,0.0,UNCOMMON}~{247,1,1,0.0,UNCOMMON}~{1539,5,5,0.0,COMMON}~{1784,4,4,0.0,COMMON}~{1523,1,1,0.0,COMMON}~{7936,1,1,0.0,COMMON}~{5970,1,1,0.0,COMMON}~{453,1,1,0.0,UNCOMMON}~{1777,1,1,0.0,UNCOMMON}~{231,1,1,0.0,UNCOMMON}~{1761,1,1,0.0,UNCOMMON}~{8778,1,1,0.0,RARE}~{133,1,1,0.0,RARE}~{2359,1,1,0.0,RARE}~{2347,1,1,0.0,UNCOMMON}', ''), +(6057, '', '{365,1,1,0.0,COMMON}~{361,1,1,0.0,COMMON}~{2011,1,1,0.0,COMMON}~{2327,1,1,0.0,COMMON}~{1897,1,1,0.0,COMMON}~{2293,1,1,0.0,COMMON}~{5004,1,1,0.0,COMMON}~{1883,1,1,0.0,UNCOMMON}~{247,1,1,0.0,UNCOMMON}~{380,4,4,0.0,UNCOMMON}~{386,3,3,0.0,UNCOMMON}~{7170,1,1,0.0,UNCOMMON}~{5755,1,1,0.0,UNCOMMON}~{7178,1,1,0.0,UNCOMMON}~{7188,1,1,0.0,UNCOMMON}~{10137,5,5,0.0,RARE}~{7179,6,6,0.0,RARE}~{374,3,3,0.0,RARE}~{10136,1,1,0.0,RARE}~{5406,1,1,0.0,RARE}~{2007,1,1,0.0,COMMON}~{5970,1,1,0.0,COMMON}~{3145,2,2,0.0,RARE}~{3143,2,2,0.0,RARE}', ''), +(6059, '', '{562,4,4,0.0,COMMON}~{555,1330,1330,0.0,COMMON}~{558,25,25,0.0,COMMON}~{556,10,60,0.0,COMMON}~{559,28,30,0.0,COMMON}~{554,50,50,0.0,COMMON}~{1448,1,1,0.0,COMMON}~{7937,20,35,0.0,COMMON}~{1436,20,20,0.0,COMMON}~{564,4,4,0.0,UNCOMMON}~{4695,4,4,0.0,UNCOMMON}~{4696,4,4,0.0,UNCOMMON}~{4698,4,4,0.0,UNCOMMON}~{4694,4,4,0.0,UNCOMMON}~{4699,4,4,0.0,RARE}~{4697,4,4,0.0,RARE}~{565,7,7,0.0,RARE}~{566,11,11,0.0,RARE}~{563,13,13,0.0,RARE}~{561,13,13,0.0,RARE}~{560,13,13,0.0,RARE}~{1442,1,1,0.0,RARE}', ''), +(6060, '', '{1391,1,1,0.0,RARE}~{1273,1,1,0.0,COMMON}~{2493,1,1,0.0,RARE}~{1199,1,1,0.0,UNCOMMON}~{10083,1,1,0.0,RARE}~{1213,1,1,0.0,RARE}~{5970,1,1,0.0,COMMON}~{231,1,1,0.0,COMMON}~{444,1,1,0.0,UNCOMMON}~{2358,5,5,0.0,UNCOMMON}~{450,10,10,0.0,RARE}~{556,30,57,0.0,COMMON}~{7936,20,35,0.0,UNCOMMON}~{237,1,1,0.0,UNCOMMON}~{1601,1,1,0.0,RARE}~{5760,2,2,0.0,RARE}~{7208,1,1,0.0,RARE}~{8779,4,4,0.0,COMMON}~{5321,3,3,0.0,RARE}', ''), +(6062, '', '{1701,3,3,0.0,COMMON}~{1732,3,3,0.0,COMMON}~{2569,3,3,0.0,COMMON}~{3391,1,1,0.0,COMMON}~{1347,1,1,0.0,UNCOMMON}~{2571,4,5,0.0,UNCOMMON}~{1215,1,1,0.0,RARE}~{1185,1,1,0.0,RARE}~{5541,1,1,0.0,COMMON}~{1748,6,6,0.0,COMMON}~{2364,2,2,0.0,UNCOMMON}~{1603,1,1,0.0,UNCOMMON}~{1602,4,4,0.0,RARE}~{5287,1,1,0.0,RARE}~{987,1,1,0.0,RARE}~{985,1,1,0.0,RARE}~{993,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{12121,1,1,0.0,RARE}', ''), +(6063, '', '{6328,1,1,0.0,COMMON}~{3385,1,1,0.0,COMMON}~{3391,1,1,0.0,COMMON}~{1113,1,1,0.0,UNCOMMON}~{3101,1,1,0.0,COMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1215,1,1,0.0,UNCOMMON}~{6313,1,1,0.0,COMMON}~{892,70,70,0.0,COMMON}~{811,70,70,0.0,COMMON}~{868,40,40,0.0,COMMON}~{805,50,50,0.0,COMMON}~{9342,2,2,0.0,UNCOMMON}~{9194,4,4,0.0,RARE}~{1747,1016,1016,0.0,COMMON}~{140,4,4,0.0,COMMON}~{5938,4,4,0.0,UNCOMMON}~{6155,3,3,0.0,UNCOMMON}~{2364,4,4,0.0,RARE}', ''), +(6064, '', '{1705,2,3,0.0,RARE}~{5547,1,1,0.0,RARE}~{1703,2,3,0.0,RARE}~{11212,100,500,0.0,COMMON}~{9341,3,40,0.0,COMMON}~{1305,1,1,0.0,COMMON}~{1215,3,3,0.0,UNCOMMON}~{11230,105,350,0.0,UNCOMMON}~{11232,105,350,0.0,COMMON}~{11237,100,500,0.0,COMMON}~{9193,10,49,0.0,COMMON}~{535,111,297,0.0,COMMON}~{5316,1,1,0.0,UNCOMMON}~{537,52,99,0.0,UNCOMMON}~{1616,3,6,0.0,UNCOMMON}~{5300,6,6,0.0,RARE}~{7219,5,15,0.0,RARE}', ''), +(6078, '{532,1,2,0.0,ALWAYS}', '{1309,1,1,0.0,COMMON}~{1207,1,1,0.0,COMMON}~{1424,1,1,0.0,COMMON}~{1281,1,1,0.0,COMMON}~{1283,1,1,0.0,COMMON}~{1217,1,1,0.0,COMMON}~{869,4,19,0.0,COMMON}~{1295,1,1,0.0,COMMON}~{1365,1,1,0.0,COMMON}~{1311,1,1,0.0,COMMON}~{1297,1,1,0.0,COMMON}~{1313,1,1,0.0,UNCOMMON}~{1209,1,1,0.0,UNCOMMON}~{1299,1,1,0.0,UNCOMMON}~{1430,1,1,0.0,UNCOMMON}~{1317,1,1,0.0,RARE}~{886,5,5,0.0,RARE}~{1213,1,1,0.0,RARE}~{1101,1,1,0.0,COMMON}~{1105,1,1,0.0,COMMON}~{1153,1,1,0.0,UNCOMMON}~{1191,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,RARE}~{1147,1,1,0.0,RARE}~{563,2,2,0.0,RARE}~{563,3,3,0.0,RARE}~{560,2,2,0.0,RARE}~{561,2,2,0.0,RARE}~{561,3,3,0.0,RARE}~{558,2,2,0.0,RARE}~{558,3,3,0.0,RARE}~{564,2,2,0.0,RARE}~{564,3,3,0.0,RARE}~{555,7,7,0.0,RARE}~{554,15,15,0.0,RARE}~{5101,1,1,0.0,UNCOMMON}~{5318,1,1,0.0,UNCOMMON}~{5320,3,3,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5324,4,4,0.0,UNCOMMON}~{5309,2,2,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5280,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5100,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5296,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{199,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{995,5,473,0.0,COMMON}~{225,1,1,0.0,COMMON}~{1446,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{2731,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6079, '{532,1,2,0.0,ALWAYS}', '{1309,1,1,0.0,COMMON}~{1207,1,1,0.0,COMMON}~{1424,1,1,0.0,COMMON}~{1281,1,1,0.0,COMMON}~{1283,1,1,0.0,COMMON}~{1217,1,1,0.0,COMMON}~{869,4,19,0.0,COMMON}~{1295,1,1,0.0,COMMON}~{1365,1,1,0.0,COMMON}~{1311,1,1,0.0,COMMON}~{1297,1,1,0.0,COMMON}~{1313,1,1,0.0,UNCOMMON}~{1209,1,1,0.0,UNCOMMON}~{1299,1,1,0.0,UNCOMMON}~{1430,1,1,0.0,UNCOMMON}~{1317,1,1,0.0,RARE}~{886,5,5,0.0,RARE}~{1213,1,1,0.0,RARE}~{1101,1,1,0.0,COMMON}~{1105,1,1,0.0,COMMON}~{1153,1,1,0.0,UNCOMMON}~{1191,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,RARE}~{1147,1,1,0.0,RARE}~{563,2,2,0.0,RARE}~{563,3,3,0.0,RARE}~{560,2,2,0.0,RARE}~{561,2,2,0.0,RARE}~{561,3,3,0.0,RARE}~{558,2,2,0.0,RARE}~{558,3,3,0.0,RARE}~{564,2,2,0.0,RARE}~{564,3,3,0.0,RARE}~{555,7,7,0.0,RARE}~{554,15,15,0.0,RARE}~{5101,1,1,0.0,UNCOMMON}~{5318,1,1,0.0,UNCOMMON}~{5320,3,3,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5324,4,4,0.0,UNCOMMON}~{5309,2,2,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5280,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5100,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5296,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{199,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{995,5,473,0.0,COMMON}~{225,1,1,0.0,COMMON}~{1446,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{2733,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6080, '{532,1,2,0.0,ALWAYS}', '{1309,1,1,0.0,COMMON}~{1207,1,1,0.0,COMMON}~{1424,1,1,0.0,COMMON}~{1281,1,1,0.0,COMMON}~{1283,1,1,0.0,COMMON}~{1217,1,1,0.0,COMMON}~{869,4,19,0.0,COMMON}~{1295,1,1,0.0,COMMON}~{1365,1,1,0.0,COMMON}~{1311,1,1,0.0,COMMON}~{1297,1,1,0.0,COMMON}~{1313,1,1,0.0,UNCOMMON}~{1209,1,1,0.0,UNCOMMON}~{1299,1,1,0.0,UNCOMMON}~{1430,1,1,0.0,UNCOMMON}~{1317,1,1,0.0,RARE}~{886,5,5,0.0,RARE}~{1213,1,1,0.0,RARE}~{1101,1,1,0.0,COMMON}~{1105,1,1,0.0,COMMON}~{1153,1,1,0.0,UNCOMMON}~{1191,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,RARE}~{1147,1,1,0.0,RARE}~{563,2,2,0.0,RARE}~{563,3,3,0.0,RARE}~{560,2,2,0.0,RARE}~{561,2,2,0.0,RARE}~{561,3,3,0.0,RARE}~{558,2,2,0.0,RARE}~{558,3,3,0.0,RARE}~{564,2,2,0.0,RARE}~{564,3,3,0.0,RARE}~{555,7,7,0.0,RARE}~{554,15,15,0.0,RARE}~{5101,1,1,0.0,UNCOMMON}~{5318,1,1,0.0,UNCOMMON}~{5320,3,3,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5324,4,4,0.0,UNCOMMON}~{5309,2,2,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5280,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5100,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5296,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{199,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{995,5,473,0.0,COMMON}~{225,1,1,0.0,COMMON}~{1446,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{2745,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6081, '{532,1,2,0.0,ALWAYS}', '{1309,1,1,0.0,COMMON}~{1207,1,1,0.0,COMMON}~{1424,1,1,0.0,COMMON}~{1281,1,1,0.0,COMMON}~{1283,1,1,0.0,COMMON}~{1217,1,1,0.0,COMMON}~{869,4,19,0.0,COMMON}~{1295,1,1,0.0,COMMON}~{1365,1,1,0.0,COMMON}~{1311,1,1,0.0,COMMON}~{1297,1,1,0.0,COMMON}~{1313,1,1,0.0,UNCOMMON}~{1209,1,1,0.0,UNCOMMON}~{1299,1,1,0.0,UNCOMMON}~{1430,1,1,0.0,UNCOMMON}~{1317,1,1,0.0,RARE}~{886,5,5,0.0,RARE}~{1213,1,1,0.0,RARE}~{1101,1,1,0.0,COMMON}~{1105,1,1,0.0,COMMON}~{1153,1,1,0.0,UNCOMMON}~{1191,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,RARE}~{1147,1,1,0.0,RARE}~{563,2,2,0.0,RARE}~{563,3,3,0.0,RARE}~{560,2,2,0.0,RARE}~{561,2,2,0.0,RARE}~{561,3,3,0.0,RARE}~{558,2,2,0.0,RARE}~{558,3,3,0.0,RARE}~{564,2,2,0.0,RARE}~{564,3,3,0.0,RARE}~{555,7,7,0.0,RARE}~{554,15,15,0.0,RARE}~{5101,1,1,0.0,UNCOMMON}~{5318,1,1,0.0,UNCOMMON}~{5320,3,3,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5324,4,4,0.0,UNCOMMON}~{5309,2,2,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5280,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5100,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5296,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{199,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{995,5,473,0.0,COMMON}~{225,1,1,0.0,COMMON}~{1446,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{2741,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6091, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2803,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(6092, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2825,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6093, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2829,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6099, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6100, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6101, '{592,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1157,1,1,0.0,COMMON}~{1313,1,1,0.0,COMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,RARE}~{1195,1,1,0.0,RARE}~{554,10,120,0.0,UNCOMMON}~{562,6,24,0.0,UNCOMMON}~{560,3,6,0.0,RARE}~{199,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{995,10,630,0.0,COMMON}~{445,1,3,0.0,UNCOMMON}~{1993,1,1,0.0,UNCOMMON}~{2851,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6103, '{526,1,1,0.0,ALWAYS}', '{995,323,323,0.0,COMMON}~{444,1,1,0.0,COMMON}~{2357,1,1,0.0,COMMON}~{1515,1,1,0.0,COMMON}~{1391,1,1,0.0,UNCOMMON}~{1325,1,1,0.0,COMMON}~{11371,1,1,0.0,COMMON}~{1333,1,1,0.0,RARE}~{2851,1,1,0.0,RARE}~{11359,1,1,0.0,UNCOMMON}', ''), +(6104, '{526,1,1,0.0,ALWAYS}', '{1371,1,1,0.0,RARE}~{1391,1,1,0.0,RARE}~{1081,1,1,0.0,COMMON}~{1191,1,1,0.0,COMMON}~{1143,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,RARE}~{1157,1,1,0.0,RARE}~{11371,1,1,0.0,COMMON}~{1193,1,1,0.0,UNCOMMON}~{1295,1,1,0.0,UNCOMMON}~{1424,1,1,0.0,UNCOMMON}~{1325,1,1,0.0,UNCOMMON}~{857,1,1,0.0,UNCOMMON}~{890,5,5,0.0,UNCOMMON}~{565,1,1,0.0,UNCOMMON}~{560,5,5,0.0,UNCOMMON}~{9419,2,2,0.0,UNCOMMON}~{9145,5,5,0.0,COMMON}~{886,20,20,0.0,COMMON}~{808,10,10,0.0,UNCOMMON}~{865,10,10,0.0,UNCOMMON}~{2361,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,COMMON}~{444,1,1,0.0,UNCOMMON}~{2356,3,3,0.0,COMMON}~{2354,3,3,0.0,COMMON}~{199,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{11443,1,1,0.0,COMMON}~{995,106,106,0.0,COMMON}~{995,142,142,0.0,COMMON}~{11359,1,1,0.0,UNCOMMON}~{2809,1,1,0.0,UNCOMMON}~{11337,1,1,0.0,RARE}~{1637,1,1,0.0,UNCOMMON}~{1619,1,1,0.0,RARE}~{1515,1,1,0.0,COMMON}', ''), +(6105, '', '{995,1,1,0.0,COMMON}~{1515,1,1,0.0,COMMON}~{1637,1,1,0.0,COMMON}~{1191,1,1,0.0,COMMON}~{1081,1,1,0.0,COMMON}~{865,10,10,0.0,COMMON}~{2354,3,3,0.0,UNCOMMON}~{9145,5,5,0.0,UNCOMMON}~{9419,2,2,0.0,RARE}~{201,1,1,0.0,COMMON}~{11443,1,1,0.0,COMMON}~{2356,3,3,0.0,UNCOMMON}~{857,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{2361,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,UNCOMMON}~{444,1,1,0.0,UNCOMMON}~{890,5,5,0.0,RARE}~{11371,1,1,0.0,UNCOMMON}~{2821,1,1,0.0,RARE}~{1373,1,1,0.0,RARE}~{1391,1,1,0.0,RARE}~{11359,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6106, '{526,1,1,0.0,ALWAYS}', '{1333,1,1,0.0,RARE}~{1181,1,1,0.0,RARE}~{1391,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,106,142,0.0,COMMON}~{2356,3,3,0.0,COMMON}~{2354,3,3,0.0,COMMON}~{444,1,1,0.0,RARE}~{9419,1,2,0.0,UNCOMMON}~{2839,1,1,0.0,RARE}~{11359,1,1,0.0,UNCOMMON}', ''), +(6107, '{526,1,1,0.0,ALWAYS}', '{1295,1,1,0.0,COMMON}~{1424,1,1,0.0,UNCOMMON}~{1325,1,1,0.0,UNCOMMON}~{11371,1,1,0.0,UNCOMMON}~{857,1,1,0.0,UNCOMMON}~{886,20,20,0.0,UNCOMMON}~{9145,5,5,0.0,UNCOMMON}~{9419,2,2,0.0,UNCOMMON}~{1371,1,1,0.0,RARE}~{1333,1,1,0.0,RARE}~{808,10,10,0.0,RARE}~{865,10,10,0.0,RARE}~{890,5,5,0.0,RARE}~{1391,1,1,0.0,RARE}~{1191,1,1,0.0,UNCOMMON}~{1193,1,1,0.0,UNCOMMON}~{1157,1,1,0.0,UNCOMMON}~{1143,1,1,0.0,UNCOMMON}~{1197,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,106,323,0.0,COMMON}~{11443,1,1,0.0,COMMON}~{2357,1,1,0.0,COMMON}~{2354,3,3,0.0,COMMON}~{2356,3,3,0.0,COMMON}~{1515,1,1,0.0,COMMON}~{444,1,1,0.0,UNCOMMON}~{565,3,3,0.0,UNCOMMON}~{560,5,5,0.0,UNCOMMON}~{1637,1,1,0.0,UNCOMMON}~{2361,1,1,0.0,RARE}~{2841,1,1,0.0,RARE}~{11359,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6109, '{526,1,1,0.0,ALWAYS}', '{2128,1,1,0.0,COMMON}~{2102,1,1,0.0,COMMON}~{2171,1,1,0.0,COMMON}~{2120,1,1,0.0,COMMON}~{2165,1,1,0.0,UNCOMMON}~{2166,1,1,0.0,UNCOMMON}~{2169,1,1,0.0,UNCOMMON}~{2164,1,1,0.0,UNCOMMON}~{7878,1,1,0.0,RARE}', '{0,1,1,0.8200000000000001,ALWAYS}~{12158,1,1,0.11900000000000001,ALWAYS}~{12159,1,1,0.009000000000000001,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.011,ALWAYS}'), +(6110, '{526,1,1,0.0,ALWAYS}', '{2128,1,1,0.0,COMMON}~{2102,1,1,0.0,COMMON}~{2171,1,1,0.0,COMMON}~{2120,1,1,0.0,COMMON}~{2165,1,1,0.0,UNCOMMON}~{2166,1,1,0.0,UNCOMMON}~{2169,1,1,0.0,UNCOMMON}~{2164,1,1,0.0,UNCOMMON}~{7878,1,1,0.0,RARE}', '{0,1,1,0.8200000000000001,ALWAYS}~{12158,1,1,0.11900000000000001,ALWAYS}~{12159,1,1,0.009000000000000001,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.011,ALWAYS}'), +(6111, '{526,1,1,0.0,ALWAYS}', '{2128,1,1,0.0,COMMON}~{2102,1,1,0.0,COMMON}~{2171,1,1,0.0,COMMON}~{2120,1,1,0.0,COMMON}~{2165,1,1,0.0,UNCOMMON}~{2166,1,1,0.0,UNCOMMON}~{2169,1,1,0.0,UNCOMMON}~{2164,1,1,0.0,UNCOMMON}~{7878,1,1,0.0,RARE}', '{0,1,1,0.8200000000000001,ALWAYS}~{12158,1,1,0.11900000000000001,ALWAYS}~{12159,1,1,0.009000000000000001,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.011,ALWAYS}'), +(6115, '{526,1,1,0.0,ALWAYS}', '{7889,1,1,0.0,COMMON}', ''), +(6116, '{526,1,1,0.0,ALWAYS}', '{7889,1,1,0.0,COMMON}', ''), +(6125, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2712,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6126, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2683,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6131, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1351,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{1349,1,1,0.0,UNCOMMON}~{1420,1,1,0.0,UNCOMMON}~{884,58,58,0.0,UNCOMMON}~{886,5,32,0.0,COMMON}~{888,12,12,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{559,3,11,0.0,COMMON}~{562,4,4,0.0,UNCOMMON}~{556,3,3,0.0,UNCOMMON}~{554,7,84,0.0,UNCOMMON}~{558,5,7,0.0,UNCOMMON}~{561,5,5,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{6476,1,1,0.0,UNCOMMON}~{7863,1,1,0.0,UNCOMMON}~{995,1,82,0.0,COMMON}~{313,1,9,0.0,COMMON}~{3420,2,2,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{966,1,1,0.0,UNCOMMON}~{1917,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{221,1,1,0.0,UNCOMMON}~{1594,1,1,0.0,UNCOMMON}~{2331,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6132, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2716,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6133, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2685,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6183, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2837,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(6184, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2847,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(6189, '{526,1,1,0.0,ALWAYS}', '{1279,1,1,0.0,COMMON}~{1153,1,1,0.0,COMMON}~{1424,1,1,0.0,COMMON}~{1165,1,1,0.0,RARE}~{888,3,3,0.0,UNCOMMON}~{1313,1,1,0.0,RARE}~{1283,1,1,0.0,RARE}~{1125,1,1,0.0,RARE}~{1077,1,1,0.0,RARE}~{558,29,29,0.0,UNCOMMON}~{557,10,10,0.0,UNCOMMON}~{559,9,9,0.0,UNCOMMON}~{564,7,7,0.0,UNCOMMON}~{562,46,46,0.0,UNCOMMON}~{560,2,2,0.0,UNCOMMON}~{563,34,34,0.0,UNCOMMON}~{561,6,6,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{5318,4,4,0.0,UNCOMMON}~{5319,4,4,0.0,UNCOMMON}~{5324,4,4,0.0,RARE}~{5322,3,3,0.0,RARE}~{5320,3,3,0.0,RARE}~{5323,23,23,0.0,RARE}~{5321,2,2,0.0,RARE}~{995,1,500,0.0,COMMON}~{2353,1,1,0.0,COMMON}~{1933,1,1,0.0,COMMON}~{2309,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(6190, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2801,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(6203, '{592,1,1,0.0,ALWAYS}', '{14726,1,1,0.0,VERY_RARE,512}~{1333,1,1,0.0,COMMON}~{11716,1,1,0.0,VERY_RARE,128}~{11736,1,1,0.0,VERY_RARE,128}~{560,120,125,0.0,COMMON}~{565,80,90,0.0,UNCOMMON}~{1123,1,1,0.0,COMMON}~{1079,1,1,0.0,COMMON}~{145,3,3,0.0,COMMON}~{3026,3,3,0.0,COMMON}~{157,3,3,0.0,COMMON}~{189,3,3,0.0,COMMON}~{995,19362,19362,0.0,COMMON}~{5302,3,3,0.0,UNCOMMON}~{2486,10,10,0.0,UNCOMMON}~{11710,1,1,0.0,VERY_RARE}~{11712,1,1,0.0,VERY_RARE}~{11714,1,1,0.0,VERY_RARE}~{11708,1,1,0.0,VERY_RARE,512}~{2735,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.59,ALWAYS}~{12158,1,1,0.115,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.095,ALWAYS}~{12163,1,1,0.16,ALWAYS}'), +(6204, '{592,1,1,0.0,ALWAYS}', '{808,98,98,0.0,UNCOMMON}~{11736,1,1,0.0,VERY_RARE,5400}~{11716,1,1,0.0,VERY_RARE,5400}~{11710,1,1,0.0,VERY_RARE}~{11712,1,1,0.0,VERY_RARE}~{11714,1,1,0.0,VERY_RARE}~{995,1,1,0.0,COMMON}~{245,7,7,0.0,UNCOMMON}~{886,98,98,0.0,UNCOMMON}~{385,3,3,0.0,UNCOMMON}~{7060,2,2,0.0,UNCOMMON}~{157,1,1,0.0,UNCOMMON}~{145,1,1,0.0,UNCOMMON}~{189,1,1,0.0,UNCOMMON}~{2747,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(6206, '{592,1,1,0.0,ALWAYS}', '{808,96,100,0.0,UNCOMMON}~{11736,1,1,0.0,VERY_RARE,5400}~{11716,1,1,0.0,VERY_RARE,5400}~{11710,1,1,0.0,VERY_RARE}~{11712,1,1,0.0,VERY_RARE}~{11714,1,1,0.0,VERY_RARE}~{995,1300,1500,0.0,COMMON}~{886,95,100,0.0,UNCOMMON}~{565,5,10,0.0,UNCOMMON}~{560,5,10,0.0,UNCOMMON}~{7060,2,2,0.0,UNCOMMON}~{157,1,1,0.0,UNCOMMON}~{245,5,10,0.0,UNCOMMON}~{385,2,2,0.0,UNCOMMON}~{2747,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6208, '{592,1,1,0.0,ALWAYS}', '{808,98,98,0.0,UNCOMMON}~{11736,1,1,0.0,VERY_RARE,5400}~{11716,1,1,0.0,VERY_RARE,5400}~{11710,1,1,0.0,VERY_RARE}~{11712,1,1,0.0,VERY_RARE}~{11714,1,1,0.0,RARE}~{245,3,10,0.0,UNCOMMON}~{385,3,3,0.0,UNCOMMON}~{7060,2,2,0.0,UNCOMMON}~{886,98,100,0.0,UNCOMMON}~{157,1,1,0.0,UNCOMMON}~{145,1,1,0.0,UNCOMMON}~{2731,1,1,0.0,UNCOMMON}', ''), +(6210, '{526,1,1,0.0,ALWAYS}', '{2743,1,1,0.0,UNCOMMON,64}', ''), +(6211, '{592,1,1,0.0,ALWAYS}', '{877,1,1,0.0,COMMON}~{1949,1,1,0.0,UNCOMMON}~{1944,1,1,0.0,UNCOMMON}~{2138,1,1,0.0,UNCOMMON}~{2309,1,1,0.0,UNCOMMON}~{2307,1,1,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{2142,1,1,0.0,RARE}~{1933,1,1,0.0,RARE}~{1759,1,1,0.0,COMMON}~{2347,1,1,0.0,COMMON}~{1474,1,1,0.0,UNCOMMON}~{1470,1,1,0.0,UNCOMMON}~{1476,1,1,0.0,UNCOMMON}~{1472,1,1,0.0,UNCOMMON}~{1448,1,1,0.0,UNCOMMON}~{592,1,1,0.0,UNCOMMON}~{2146,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{753,1,1,0.0,UNCOMMON}~{590,1,1,0.0,UNCOMMON}~{1735,1,1,0.0,UNCOMMON}~{1925,1,1,0.0,UNCOMMON}~{1929,1,1,0.0,RARE}~{1935,1,1,0.0,RARE}~{1937,1,1,0.0,RARE}~{1993,1,1,0.0,RARE}~{195,1,1,0.0,RARE}~{1931,1,1,0.0,RARE}~{2311,1,1,0.0,RARE}~{956,1,1,0.0,RARE}~{1438,1,1,0.0,RARE}~{2349,1,1,0.0,RARE}~{1927,1,1,0.0,RARE}~{2357,1,1,0.0,RARE}~{9442,1,1,0.0,RARE}~{434,1,1,0.0,RARE}', ''), +(6212, '{2859,1,1,0.0,ALWAYS}', '{2138,5,5,0.0,COMMON}~{2132,5,5,0.0,COMMON}~{2136,1,5,0.0,COMMON}~{1993,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{886,50,50,0.0,UNCOMMON}~{1157,1,1,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,UNCOMMON}~{830,1,1,0.0,UNCOMMON}~{203,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,10,10,0.0,COMMON}~{995,90,90,0.0,COMMON}~{6814,1,1,0.0,COMMON}~{958,1,1,0.0,COMMON}~{7868,1,1,0.0,COMMON}~{2843,1,1,0.0,RARE}~{245,1,1,0.0,RARE}~{983,1,1,0.0,RARE}~{239,1,1,0.0,RARE}~{1925,1,1,0.0,RARE}~{440,1,5,0.0,UNCOMMON}~{453,2,2,0.0,UNCOMMON}~{227,1,1,0.0,RARE}~{590,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,COMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.465,ALWAYS}~{12158,1,1,0.445,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(6213, '{2859,1,1,0.0,ALWAYS}', '{2138,5,5,0.0,COMMON}~{2132,5,5,0.0,COMMON}~{2136,1,5,0.0,COMMON}~{1993,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{886,50,50,0.0,UNCOMMON}~{1157,1,1,0.0,UNCOMMON}~{1329,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,UNCOMMON}~{830,1,1,0.0,UNCOMMON}~{203,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,10,10,0.0,COMMON}~{995,90,90,0.0,COMMON}~{6814,1,1,0.0,COMMON}~{958,1,1,0.0,COMMON}~{7868,1,1,0.0,COMMON}~{2813,1,1,0.0,RARE}~{245,1,1,0.0,RARE}~{983,1,1,0.0,RARE}~{239,1,1,0.0,RARE}~{1925,1,1,0.0,RARE}~{440,1,5,0.0,UNCOMMON}~{453,2,2,0.0,UNCOMMON}~{227,1,1,0.0,RARE}~{590,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,COMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.465,ALWAYS}~{12158,1,1,0.445,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(6214, '', '{1361,1,1,0.0,UNCOMMON}~{562,3,3,0.0,COMMON}~{560,2,2,0.0,COMMON}~{557,4,4,0.0,UNCOMMON}~{565,1,2,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,RARE}~{5298,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{201,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{995,15,15,0.0,COMMON}~{2855,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.895,ALWAYS}~{12158,1,1,0.045,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.035,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(6215, '{526,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1325,1,1,0.0,UNCOMMON}~{1157,1,1,0.0,COMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{4125,1,1,0.0,RARE}~{1147,1,1,0.0,RARE}~{1163,1,1,0.0,RARE}~{554,60,60,0.0,COMMON}~{565,3,3,0.0,UNCOMMON}~{565,10,10,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,10,10,0.0,COMMON}~{995,40,40,0.0,COMMON}~{444,1,1,0.0,UNCOMMON}~{526,2,3,0.0,UNCOMMON}~{532,1,1,0.0,UNCOMMON}~{532,4,4,0.0,UNCOMMON}~{2293,1,1,0.0,UNCOMMON}~{1635,1,1,0.0,RARE}~{31,1,1,0.0,RARE}~{2677,1,1,0.0,RARE}', '{0,1,1,0.54,ALWAYS}~{12158,1,1,0.095,ALWAYS}~{12159,1,1,0.305,ALWAYS}~{12160,1,1,0.05,ALWAYS}~{12163,1,1,0.01,ALWAYS}'), +(6216, '{592,1,1,0.0,ALWAYS}', '{554,30,30,0.0,COMMON}~{554,60,60,0.0,COMMON}~{562,12,12,0.0,COMMON}~{563,1,1,0.0,UNCOMMON}~{560,3,3,0.0,UNCOMMON}~{1157,1,1,0.0,COMMON}~{1387,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{1365,1,1,0.0,UNCOMMON}~{886,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{4123,1,1,0.0,RARE}~{1145,1,1,0.0,RARE}~{995,10,10,0.0,COMMON}~{995,40,40,0.0,COMMON}~{444,1,1,0.0,COMMON}~{1993,1,1,0.0,UNCOMMON}~{2855,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.865,ALWAYS}~{12158,1,1,0.05,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.055,ALWAYS}~{12163,1,1,0.005,ALWAYS}'), +(6217, '{592,1,1,0.0,ALWAYS}', '{882,2,9,0.0,COMMON}~{877,1,10,0.0,COMMON}~{1155,1,1,0.0,COMMON}~{1351,1,1,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1277,1,1,0.0,COMMON}~{1265,1,1,0.0,COMMON}~{884,1,5,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1267,1,1,0.0,COMMON}~{886,1,1,0.0,COMMON}~{1141,1,1,0.0,UNCOMMON}~{1353,1,1,0.0,RARE}~{1269,1,1,0.0,RARE}~{1381,1,1,0.0,RARE}~{1383,1,1,0.0,RARE}~{288,1,1,0.0,RARE}~{1993,1,1,0.0,UNCOMMON}~{1913,1,1,0.0,RARE}~{1891,1,1,0.0,RARE}~{1917,1,1,0.0,RARE}~{6794,1,1,0.0,RARE}~{556,1,10,0.0,COMMON}~{555,1,11,0.0,COMMON}~{562,1,6,0.0,RARE}~{560,1,2,0.0,RARE}~{995,1,40,0.0,COMMON}~{2355,1,1,0.0,COMMON}~{442,1,1,0.0,COMMON}~{1718,1,1,0.0,UNCOMMON}~{1444,1,1,0.0,UNCOMMON}~{2698,1,1,0.0,RARE}~{6691,1,1,0.0,RARE}~{193,1,1,0.0,RARE}~{1716,1,1,0.0,RARE}~{2,10,40,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.03,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.032,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(6218, '', '{1199,1,1,0.0,UNCOMMON}~{1083,1,1,0.0,UNCOMMON}~{1069,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,RARE}~{1113,1,1,0.0,RARE}~{1309,1,1,0.0,UNCOMMON}~{3192,1,1,0.0,COMMON}~{802,1,1,0.0,UNCOMMON}~{1365,1,1,0.0,UNCOMMON}~{803,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{995,27,27,0.0,COMMON}~{995,97,97,0.0,COMMON}~{9016,1,1,0.0,COMMON}~{2570,1,1,0.0,RARE}~{2739,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6219, '', '{1295,1,1,0.0,COMMON}~{1281,1,1,0.0,COMMON}~{1428,1,1,0.0,COMMON}~{1371,1,1,0.0,UNCOMMON}~{1341,1,1,0.0,UNCOMMON}~{1217,1,1,0.0,UNCOMMON}~{1355,1,1,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,UNCOMMON}~{1303,1,1,0.0,UNCOMMON}~{3202,1,1,0.0,RARE}~{1317,1,1,0.0,RARE}~{1243,1,1,0.0,COMMON}~{1105,1,1,0.0,COMMON}~{1161,1,1,0.0,COMMON}~{1071,1,1,0.0,COMMON}~{1059,1,1,0.0,COMMON}~{1195,1,1,0.0,UNCOMMON}~{1081,1,1,0.0,UNCOMMON}~{1201,1,1,0.0,RARE}~{2747,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6220, '', '{886,1,12,0.0,COMMON}~{884,1,24,0.0,COMMON}~{882,1,58,0.0,COMMON}~{559,1,12,0.0,UNCOMMON}~{892,1,5,0.0,UNCOMMON}~{890,3,12,0.0,UNCOMMON}~{40,5,5,0.0,COMMON}~{53,12,12,0.0,COMMON}~{687,1,1,0.0,COMMON}~{1778,7,7,0.0,COMMON}~{57,11,11,0.0,COMMON}~{57,12,12,0.0,COMMON}~{843,1,1,0.0,COMMON}~{851,1,1,0.0,UNCOMMON}~{43,1,13,0.0,RARE}~{861,1,1,0.0,RARE}~{2729,1,1,0.0,RARE}', ''), +(6221, '', '{556,11,11,0.0,COMMON}~{556,13,13,0.0,COMMON}~{555,5,5,0.0,COMMON}~{555,9,9,0.0,COMMON}~{561,4,4,0.0,COMMON}~{561,9,9,0.0,COMMON}~{562,1,6,0.0,UNCOMMON}~{560,2,2,0.0,UNCOMMON}~{9075,3,3,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{4695,3,3,0.0,UNCOMMON}~{4696,1,1,0.0,UNCOMMON}~{4698,2,2,0.0,UNCOMMON}~{559,5,5,0.0,UNCOMMON}~{559,12,12,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{554,7,7,0.0,UNCOMMON}~{565,2,2,0.0,UNCOMMON}~{11732,1,1,0.0,RARE}~{7937,23,23,0.0,COMMON}~{175,5,5,0.0,UNCOMMON}~{2727,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6222, '{532,1,1,0.0,ALWAYS}~{314,1,15,0.0,ALWAYS}', '{9185,1,1,0.0,COMMON}~{9144,18,25,0.0,COMMON}~{558,500,601,0.0,UNCOMMON}~{9244,2,15,0.0,UNCOMMON}~{2503,1,1,0.0,COMMON}~{11718,1,1,0.0,VERY_RARE,580}~{11720,1,1,0.0,VERY_RARE,580}~{163,3,3,0.0,UNCOMMON}~{995,18000,21000,0.0,COMMON}~{218,5,22,0.0,COMMON}~{5303,3,3,0.0,COMMON}~{10977,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,UNCOMMON}~{2743,1,1,0.0,UNCOMMON}~{5315,1,1,0.0,VERY_RARE}~{11710,1,1,0.0,VERY_RARE}~{11712,1,1,0.0,VERY_RARE}~{11714,1,1,0.0,VERY_RARE}~{989,1,1,0.0,VERY_RARE}~{11702,1,1,0.0,VERY_RARE,512}~{31,1,1,0.0,RARE}~{11722,1,1,0.0,VERY_RARE,580}', '{0,1,1,0.365,ALWAYS}~{12158,1,1,0.26,ALWAYS}~{12159,1,1,0.145,ALWAYS}~{12160,1,1,0.16,ALWAYS}~{12163,1,1,0.07,ALWAYS}'), +(6223, '', '{11720,1,1,0.0,VERY_RARE,5400}~{11718,1,1,0.0,VERY_RARE,5400}~{886,95,100,0.0,COMMON}~{4697,15,25,0.0,UNCOMMON}~{391,2,2,0.0,UNCOMMON}~{7058,3,3,0.0,UNCOMMON}~{7056,3,3,0.0,UNCOMMON}~{808,95,100,0.0,COMMON}~{995,1300,1500,0.0,COMMON}~{6693,2,2,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{11710,1,1,0.0,VERY_RARE}~{11712,1,1,0.0,VERY_RARE}~{11714,1,1,0.0,VERY_RARE}~{2733,1,1,0.0,RARE}~{11722,1,1,0.0,VERY_RARE,5400}', ''), +(6225, '', '{11720,1,1,0.0,VERY_RARE,5400}~{11718,1,1,0.0,VERY_RARE,5400}~{7056,3,3,0.0,UNCOMMON}~{391,2,2,0.0,UNCOMMON}~{7058,3,3,0.0,UNCOMMON}~{4697,13,25,0.0,COMMON}~{808,95,100,0.0,COMMON}~{886,95,100,0.0,COMMON}~{995,1300,1500,0.0,COMMON}~{6693,2,2,0.0,COMMON}~{213,1,1,0.0,COMMON}~{11710,1,1,0.0,VERY_RARE}~{11712,1,1,0.0,VERY_RARE}~{11714,1,1,0.0,RARE}~{2727,1,1,0.0,RARE}~{11722,1,1,0.0,VERY_RARE,5400}', ''), +(6227, '{526,1,1,0.0,COMMON}', '{391,2,2,0.0,UNCOMMON}~{7058,3,3,0.0,UNCOMMON}~{995,1006,1500,0.0,COMMON}~{6693,2,2,0.0,UNCOMMON}~{2725,1,1,0.0,UNCOMMON}~{11720,1,1,0.0,VERY_RARE,5400}~{11718,1,1,0.0,VERY_RARE,5400}~{11722,1,1,0.0,VERY_RARE,5400}', ''), +(6229, '', '{1295,1,1,0.0,COMMON}~{1281,1,1,0.0,COMMON}~{1428,1,1,0.0,COMMON}~{1371,1,1,0.0,UNCOMMON}~{1341,1,1,0.0,UNCOMMON}~{1217,1,1,0.0,UNCOMMON}~{1355,1,1,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,UNCOMMON}~{1303,1,1,0.0,UNCOMMON}~{3202,1,1,0.0,RARE}~{1317,1,1,0.0,RARE}~{1243,1,1,0.0,COMMON}~{1105,1,1,0.0,COMMON}~{1161,1,1,0.0,COMMON}~{1071,1,1,0.0,COMMON}~{1059,1,1,0.0,COMMON}~{1195,1,1,0.0,UNCOMMON}~{1081,1,1,0.0,UNCOMMON}~{1201,1,1,0.0,RARE}~{2741,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6230, '', '{886,1,12,0.0,COMMON}~{884,1,24,0.0,COMMON}~{882,1,58,0.0,COMMON}~{559,1,12,0.0,UNCOMMON}~{892,1,5,0.0,UNCOMMON}~{890,3,12,0.0,UNCOMMON}~{40,5,5,0.0,COMMON}~{53,12,12,0.0,COMMON}~{687,1,1,0.0,COMMON}~{1778,7,7,0.0,COMMON}~{57,11,11,0.0,COMMON}~{57,12,12,0.0,COMMON}~{843,1,1,0.0,COMMON}~{851,1,1,0.0,UNCOMMON}~{43,1,13,0.0,RARE}~{861,1,1,0.0,RARE}~{2747,1,1,0.0,RARE}', ''), +(6231, '', '{556,11,11,0.0,COMMON}~{556,13,13,0.0,COMMON}~{555,5,5,0.0,COMMON}~{555,9,9,0.0,COMMON}~{561,4,4,0.0,COMMON}~{561,9,9,0.0,COMMON}~{562,1,6,0.0,UNCOMMON}~{560,2,2,0.0,UNCOMMON}~{9075,3,3,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{4695,3,3,0.0,UNCOMMON}~{4696,1,1,0.0,UNCOMMON}~{4698,2,2,0.0,UNCOMMON}~{559,5,5,0.0,UNCOMMON}~{559,12,12,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{554,7,7,0.0,UNCOMMON}~{565,2,2,0.0,UNCOMMON}~{11732,1,1,0.0,RARE}~{7937,23,23,0.0,COMMON}~{175,5,5,0.0,UNCOMMON}~{2743,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6232, '{526,1,1,0.0,ALWAYS}~{314,1,7,0.0,ALWAYS}', '{556,15,30,0.0,COMMON}~{555,30,30,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{561,9,9,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{565,11,11,0.0,UNCOMMON}~{562,3,3,0.0,UNCOMMON}~{562,16,16,0.0,UNCOMMON}~{559,12,12,0.0,UNCOMMON}~{442,1,1,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{9431,1,1,0.0,RARE}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{373,5,5,0.0,UNCOMMON}~{175,5,5,0.0,UNCOMMON}~{2729,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(6233, '{526,1,1,0.0,ALWAYS}~{314,1,7,0.0,ALWAYS}', '{556,15,30,0.0,COMMON}~{555,30,30,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{561,9,9,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{565,11,11,0.0,UNCOMMON}~{562,3,3,0.0,UNCOMMON}~{562,16,16,0.0,UNCOMMON}~{559,12,12,0.0,UNCOMMON}~{442,1,1,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{9431,1,1,0.0,RARE}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{373,5,5,0.0,UNCOMMON}~{175,5,5,0.0,UNCOMMON}~{2729,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(6234, '{526,1,1,0.0,ALWAYS}~{314,1,7,0.0,ALWAYS}', '{556,15,30,0.0,COMMON}~{555,30,30,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{561,9,9,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{565,11,11,0.0,UNCOMMON}~{562,3,3,0.0,UNCOMMON}~{562,16,16,0.0,UNCOMMON}~{559,12,12,0.0,UNCOMMON}~{442,1,1,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{9431,1,1,0.0,RARE}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{373,5,5,0.0,UNCOMMON}~{175,5,5,0.0,UNCOMMON}~{2729,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(6235, '{526,1,1,0.0,ALWAYS}~{314,1,7,0.0,ALWAYS}', '{556,15,30,0.0,COMMON}~{555,30,30,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{561,9,9,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{565,11,11,0.0,UNCOMMON}~{562,3,3,0.0,UNCOMMON}~{562,16,16,0.0,UNCOMMON}~{559,12,12,0.0,UNCOMMON}~{442,1,1,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{9431,1,1,0.0,RARE}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{373,5,5,0.0,UNCOMMON}~{175,5,5,0.0,UNCOMMON}~{2729,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(6236, '{526,1,1,0.0,ALWAYS}~{314,1,7,0.0,ALWAYS}', '{556,15,30,0.0,COMMON}~{555,30,30,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{561,9,9,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{565,11,11,0.0,UNCOMMON}~{562,3,3,0.0,UNCOMMON}~{562,16,16,0.0,UNCOMMON}~{559,12,12,0.0,UNCOMMON}~{442,1,1,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{9431,1,1,0.0,RARE}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{373,5,5,0.0,UNCOMMON}~{175,5,5,0.0,UNCOMMON}~{2729,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(6237, '{526,1,1,0.0,ALWAYS}~{314,1,7,0.0,ALWAYS}', '{556,15,30,0.0,COMMON}~{555,30,30,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{561,9,9,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{565,11,11,0.0,UNCOMMON}~{562,3,3,0.0,UNCOMMON}~{562,16,16,0.0,UNCOMMON}~{559,12,12,0.0,UNCOMMON}~{442,1,1,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{9431,1,1,0.0,RARE}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{373,5,5,0.0,UNCOMMON}~{175,5,5,0.0,UNCOMMON}~{2729,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(6238, '{526,1,1,0.0,ALWAYS}~{314,1,7,0.0,ALWAYS}', '{556,15,30,0.0,COMMON}~{555,30,30,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{561,9,9,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{565,11,11,0.0,UNCOMMON}~{562,3,3,0.0,UNCOMMON}~{562,16,16,0.0,UNCOMMON}~{559,12,12,0.0,UNCOMMON}~{442,1,1,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{9431,1,1,0.0,RARE}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{373,5,5,0.0,UNCOMMON}~{175,5,5,0.0,UNCOMMON}~{2729,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(6239, '{526,1,1,0.0,ALWAYS}~{314,1,7,0.0,ALWAYS}', '{556,15,30,0.0,COMMON}~{555,30,30,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{561,9,9,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{565,11,11,0.0,UNCOMMON}~{562,3,3,0.0,UNCOMMON}~{562,16,16,0.0,UNCOMMON}~{559,12,12,0.0,UNCOMMON}~{442,1,1,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{9431,1,1,0.0,RARE}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{373,5,5,0.0,UNCOMMON}~{175,5,5,0.0,UNCOMMON}~{2729,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(6240, '{526,1,1,0.0,ALWAYS}~{314,1,7,0.0,ALWAYS}', '{556,15,30,0.0,COMMON}~{555,30,30,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{561,9,9,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{565,11,11,0.0,UNCOMMON}~{562,3,3,0.0,UNCOMMON}~{562,16,16,0.0,UNCOMMON}~{559,12,12,0.0,UNCOMMON}~{442,1,1,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{9431,1,1,0.0,RARE}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{373,5,5,0.0,UNCOMMON}~{175,5,5,0.0,UNCOMMON}~{2729,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(6241, '{526,1,1,0.0,ALWAYS}~{314,1,7,0.0,ALWAYS}', '{556,15,30,0.0,COMMON}~{555,30,30,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{561,9,9,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{565,11,11,0.0,UNCOMMON}~{562,3,3,0.0,UNCOMMON}~{562,16,16,0.0,UNCOMMON}~{559,12,12,0.0,UNCOMMON}~{442,1,1,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{9431,1,1,0.0,RARE}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{373,5,5,0.0,UNCOMMON}~{175,5,5,0.0,UNCOMMON}~{2729,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(6242, '{526,1,1,0.0,ALWAYS}~{314,1,7,0.0,ALWAYS}', '{556,15,30,0.0,COMMON}~{555,30,30,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{561,9,9,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{565,11,11,0.0,UNCOMMON}~{562,3,3,0.0,UNCOMMON}~{562,16,16,0.0,UNCOMMON}~{559,12,12,0.0,UNCOMMON}~{442,1,1,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{9431,1,1,0.0,RARE}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{373,5,5,0.0,UNCOMMON}~{175,5,5,0.0,UNCOMMON}~{2729,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(6243, '{526,1,1,0.0,ALWAYS}~{314,1,7,0.0,ALWAYS}', '{556,15,30,0.0,COMMON}~{555,30,30,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{561,9,9,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{565,11,11,0.0,UNCOMMON}~{562,3,3,0.0,UNCOMMON}~{562,16,16,0.0,UNCOMMON}~{559,12,12,0.0,UNCOMMON}~{442,1,1,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{9431,1,1,0.0,RARE}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{373,5,5,0.0,UNCOMMON}~{175,5,5,0.0,UNCOMMON}~{2729,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(6244, '{526,1,1,0.0,ALWAYS}~{314,1,7,0.0,ALWAYS}', '{556,15,30,0.0,COMMON}~{555,30,30,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{561,9,9,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{565,11,11,0.0,UNCOMMON}~{562,3,3,0.0,UNCOMMON}~{562,16,16,0.0,UNCOMMON}~{559,12,12,0.0,UNCOMMON}~{442,1,1,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{9431,1,1,0.0,RARE}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{373,5,5,0.0,UNCOMMON}~{175,5,5,0.0,UNCOMMON}~{2729,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(6245, '{526,1,1,0.0,ALWAYS}~{314,1,7,0.0,ALWAYS}', '{556,15,30,0.0,COMMON}~{555,30,30,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{561,9,9,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{565,11,11,0.0,UNCOMMON}~{562,3,3,0.0,UNCOMMON}~{562,16,16,0.0,UNCOMMON}~{559,12,12,0.0,UNCOMMON}~{442,1,1,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{9431,1,1,0.0,RARE}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{373,5,5,0.0,UNCOMMON}~{175,5,5,0.0,UNCOMMON}~{2729,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(6246, '{526,1,1,0.0,ALWAYS}~{314,1,7,0.0,ALWAYS}', '{556,15,30,0.0,COMMON}~{555,30,30,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{561,9,9,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{565,11,11,0.0,UNCOMMON}~{562,3,3,0.0,UNCOMMON}~{562,16,16,0.0,UNCOMMON}~{559,12,12,0.0,UNCOMMON}~{442,1,1,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{9431,1,1,0.0,RARE}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{373,5,5,0.0,UNCOMMON}~{175,5,5,0.0,UNCOMMON}~{2729,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(6247, '{526,1,1,0.0,ALWAYS}', '{14671,1,1,0.0,VERY_RARE,625}~{11730,1,1,0.0,VERY_RARE,580}~{811,36,40,0.0,COMMON}~{563,96,105,0.0,COMMON}~{1093,1,1,0.0,COMMON}~{1123,1,1,0.0,UNCOMMON}~{1201,1,1,0.0,UNCOMMON}~{207,5,5,0.0,COMMON}~{5295,2,2,0.0,COMMON}~{2434,3,3,0.0,UNCOMMON}~{6687,3,3,0.0,UNCOMMON}~{2442,3,3,0.0,UNCOMMON}~{3024,3,3,0.0,UNCOMMON}~{5316,1,1,0.0,RARE}~{995,361,20300,0.0,COMMON}~{1602,6,6,0.0,UNCOMMON}~{11710,1,1,0.0,VERY_RARE}~{11712,1,1,0.0,VERY_RARE}~{11714,1,1,0.0,VERY_RARE}~{2733,1,1,0.0,VERY_RARE}~{11706,1,1,0.0,VERY_RARE,575}~{31,1,1,0.0,RARE}', ''), +(6248, '{526,1,1,0.0,ALWAYS}', '{808,95,100,0.0,COMMON}~{11730,1,1,0.0,RARE}~{563,7,10,0.0,COMMON}~{886,97,100,0.0,COMMON}~{207,1,1,0.0,COMMON}~{11710,1,1,0.0,VERY_RARE}~{11712,1,1,0.0,VERY_RARE}~{11714,1,1,0.0,VERY_RARE}~{995,1300,2000,0.0,COMMON}~{231,5,5,0.0,COMMON}~{237,6,6,0.0,UNCOMMON}~{7946,3,3,0.0,UNCOMMON}~{2745,1,1,0.0,UNCOMMON}', ''), +(6250, '{526,1,1,0.0,ALWAYS}', '{808,95,100,0.0,COMMON}~{11730,1,1,0.0,VERY_RARE}~{886,95,100,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{11710,1,1,0.0,VERY_RARE}~{11712,1,1,0.0,VERY_RARE}~{11714,1,1,0.0,VERY_RARE}~{995,1300,1500,0.0,COMMON}~{231,4,4,0.0,UNCOMMON}~{7218,1,1,0.0,UNCOMMON}~{2727,1,1,0.0,RARE}', ''), +(6252, '{526,1,1,0.0,ALWAYS}', '{11730,1,1,0.0,VERY_RARE}~{11710,1,1,0.0,VERY_RARE}~{11712,1,1,0.0,VERY_RARE}~{11714,1,1,0.0,VERY_RARE}~{995,1300,1500,0.0,COMMON}~{592,1,1,0.0,UNCOMMON}~{237,6,6,0.0,UNCOMMON}~{231,5,5,0.0,UNCOMMON}~{7218,1,1,0.0,UNCOMMON}~{2735,1,1,0.0,UNCOMMON}', ''), +(6254, '{526,1,1,0.0,ALWAYS}~{2747,1,1,0.0,ALWAYS}', '', ''), +(6255, '', '{1295,1,1,0.0,COMMON}~{1281,1,1,0.0,COMMON}~{1428,1,1,0.0,COMMON}~{1371,1,1,0.0,UNCOMMON}~{1341,1,1,0.0,UNCOMMON}~{1217,1,1,0.0,UNCOMMON}~{1355,1,1,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,UNCOMMON}~{1303,1,1,0.0,UNCOMMON}~{3202,1,1,0.0,RARE}~{1317,1,1,0.0,RARE}~{1243,1,1,0.0,COMMON}~{1105,1,1,0.0,COMMON}~{1161,1,1,0.0,COMMON}~{1071,1,1,0.0,COMMON}~{1059,1,1,0.0,COMMON}~{1195,1,1,0.0,UNCOMMON}~{1081,1,1,0.0,UNCOMMON}~{1201,1,1,0.0,RARE}~{2733,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6256, '', '{886,1,12,0.0,COMMON}~{884,1,24,0.0,COMMON}~{882,1,58,0.0,COMMON}~{559,1,12,0.0,UNCOMMON}~{892,1,5,0.0,UNCOMMON}~{890,3,12,0.0,UNCOMMON}~{40,5,5,0.0,COMMON}~{53,12,12,0.0,COMMON}~{687,1,1,0.0,COMMON}~{1778,7,7,0.0,COMMON}~{57,11,11,0.0,COMMON}~{57,12,12,0.0,COMMON}~{843,1,1,0.0,COMMON}~{851,1,1,0.0,UNCOMMON}~{43,1,13,0.0,RARE}~{861,1,1,0.0,RARE}~{2725,1,1,0.0,RARE}', ''), +(6257, '', '{556,11,11,0.0,COMMON}~{556,13,13,0.0,COMMON}~{555,5,5,0.0,COMMON}~{555,9,9,0.0,COMMON}~{561,4,4,0.0,COMMON}~{561,9,9,0.0,COMMON}~{562,1,6,0.0,UNCOMMON}~{560,2,2,0.0,UNCOMMON}~{9075,3,3,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{4695,3,3,0.0,UNCOMMON}~{4696,1,1,0.0,UNCOMMON}~{4698,2,2,0.0,UNCOMMON}~{559,5,5,0.0,UNCOMMON}~{559,12,12,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{554,7,7,0.0,UNCOMMON}~{565,2,2,0.0,UNCOMMON}~{11732,1,1,0.0,RARE}~{7937,23,23,0.0,COMMON}~{175,5,5,0.0,UNCOMMON}~{2727,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6258, '{526,1,1,0.0,ALWAYS}', '{2747,1,1,0.0,RARE}', '{0,1,1,0.0,ALWAYS}~{12158,1,1,0.0,ALWAYS}~{12159,1,1,0.0,ALWAYS}~{12160,1,1,0.0,ALWAYS}~{12163,1,1,0.0,ALWAYS}'), +(6259, '{526,1,1,0.0,ALWAYS}', '{2723,1,1,0.0,RARE}', '{0,1,1,0.0,ALWAYS}~{12158,1,1,0.0,ALWAYS}~{12159,1,1,0.0,ALWAYS}~{12160,1,1,0.0,ALWAYS}~{12163,1,1,0.0,ALWAYS}'), +(6260, '{4834,1,1,0.0,ALWAYS}', '{1319,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1275,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,COMMON}~{11724,1,1,0.0,RARE,600}~{11726,1,1,0.0,RARE,600}~{11728,1,1,0.0,RARE}~{561,60,70,0.0,UNCOMMON}~{450,15,20,0.0,COMMON}~{454,115,120,0.0,COMMON}~{995,19902,21000,0.0,COMMON}~{5300,1,1,0.0,COMMON}~{1514,15,20,0.0,UNCOMMON}~{3024,3,3,0.0,UNCOMMON}~{3052,3,3,0.0,UNCOMMON}~{10976,1,1,0.0,UNCOMMON}~{10977,1,1,0.0,UNCOMMON}~{11710,1,1,0.0,RARE}~{11712,1,1,0.0,RARE}~{11714,1,1,0.0,RARE}~{11704,1,1,0.0,RARE,512}~{2741,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.41500000000000004,ALWAYS}~{12158,1,1,0.19,ALWAYS}~{12159,1,1,0.145,ALWAYS}~{12160,1,1,0.15,ALWAYS}~{12163,1,1,0.1,ALWAYS}'), +(6261, '{526,1,1,0.0,ALWAYS}', '{808,95,100,0.0,COMMON}~{11724,1,1,0.0,VERY_RARE,5400}~{11726,1,1,0.0,VERY_RARE,5400}~{11728,1,1,0.0,VERY_RARE,5400}~{11710,1,1,0.0,VERY_RARE}~{11712,1,1,0.0,VERY_RARE}~{11714,1,1,0.0,VERY_RARE}~{564,25,30,0.0,COMMON}~{561,20,28,0.0,COMMON}~{886,95,100,0.0,COMMON}~{995,1300,1450,0.0,COMMON}~{9741,1,1,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{385,2,2,0.0,COMMON}~{7054,3,3,0.0,COMMON}~{2735,1,1,0.0,RARE}', ''), +(6263, '{526,1,1,0.0,ALWAYS}', '{808,95,100,0.0,COMMON}~{11724,1,1,0.0,VERY_RARE,5400}~{11726,1,1,0.0,VERY_RARE,5400}~{11728,1,1,0.0,VERY_RARE,5400}~{11710,1,1,0.0,VERY_RARE}~{11712,1,1,0.0,VERY_RARE}~{11714,1,1,0.0,VERY_RARE}~{564,25,30,0.0,COMMON}~{886,95,100,0.0,COMMON}~{995,1300,1500,0.0,COMMON}~{225,5,5,0.0,COMMON}~{1917,1,1,0.0,COMMON}~{1971,1,1,0.0,COMMON}~{385,2,2,0.0,COMMON}~{9741,1,1,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{7054,3,3,0.0,COMMON}~{2733,1,1,0.0,RARE}', ''), +(6265, '{526,1,1,0.0,ALWAYS}', '{808,95,100,0.0,COMMON}~{11724,1,1,0.0,VERY_RARE,5400}~{11726,1,1,0.0,VERY_RARE,5400}~{11728,1,1,0.0,VERY_RARE,5400}~{11710,1,1,0.0,VERY_RARE}~{11712,1,1,0.0,VERY_RARE}~{11714,1,1,0.0,VERY_RARE}~{564,25,30,0.0,COMMON}~{561,15,20,0.0,COMMON}~{886,95,100,0.0,COMMON}~{995,1300,1500,0.0,COMMON}~{9741,1,1,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{385,2,2,0.0,COMMON}~{7054,3,3,0.0,COMMON}~{2741,1,1,0.0,RARE}', ''), +(6267, '{532,1,1,0.0,ALWAYS}', '{7844,1,1,0.0,COMMON}~{10977,1,1,0.0,RARE}~{10976,1,1,0.0,RARE}~{5323,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.8250000000000001,ALWAYS}~{12158,1,1,0.136,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(6268, '{3125,1,1,0.0,ALWAYS}', '{1237,1,1,0.0,COMMON}~{1239,1,1,0.0,COMMON}~{827,3,5,0.0,UNCOMMON}~{561,2,2,0.0,COMMON}~{561,5,5,0.0,COMMON}~{5100,1,1,0.0,COMMON}~{5292,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5294,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{1533,1,1,0.0,COMMON}~{1525,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{946,1,1,0.0,COMMON}~{2114,2,2,0.0,COMMON}~{6306,22,22,0.0,COMMON}~{995,22,22,0.0,COMMON}~{7847,1,1,0.0,COMMON}~{532,1,6,0.0,COMMON}~{526,1,1,0.0,COMMON}~{526,2,2,0.0,COMMON}~{1963,1,1,0.0,UNCOMMON}~{2819,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.56,ALWAYS}~{12158,1,1,0.386,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.025,ALWAYS}~{12163,1,1,0.004,ALWAYS}'); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(6269, '{532,1,2,0.0,ALWAYS}', '{1309,1,1,0.0,COMMON}~{1207,1,1,0.0,COMMON}~{1424,1,1,0.0,COMMON}~{1281,1,1,0.0,COMMON}~{1283,1,1,0.0,COMMON}~{1217,1,1,0.0,COMMON}~{869,4,19,0.0,COMMON}~{1295,1,1,0.0,COMMON}~{1365,1,1,0.0,COMMON}~{1311,1,1,0.0,COMMON}~{1297,1,1,0.0,COMMON}~{1313,1,1,0.0,UNCOMMON}~{1209,1,1,0.0,UNCOMMON}~{1299,1,1,0.0,UNCOMMON}~{1430,1,1,0.0,UNCOMMON}~{1317,1,1,0.0,RARE}~{886,5,5,0.0,RARE}~{1213,1,1,0.0,RARE}~{1101,1,1,0.0,COMMON}~{1105,1,1,0.0,COMMON}~{1153,1,1,0.0,UNCOMMON}~{1191,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,RARE}~{1147,1,1,0.0,RARE}~{563,2,2,0.0,RARE}~{563,3,3,0.0,RARE}~{560,2,2,0.0,RARE}~{561,2,2,0.0,RARE}~{561,3,3,0.0,RARE}~{558,2,2,0.0,RARE}~{558,3,3,0.0,RARE}~{564,2,2,0.0,RARE}~{564,3,3,0.0,RARE}~{555,7,7,0.0,RARE}~{554,15,15,0.0,RARE}~{5101,1,1,0.0,UNCOMMON}~{5318,1,1,0.0,UNCOMMON}~{5320,3,3,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5324,4,4,0.0,UNCOMMON}~{5309,2,2,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5280,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5100,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5296,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{199,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{995,5,473,0.0,COMMON}~{225,1,1,0.0,COMMON}~{1446,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{2739,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6270, '{532,1,2,0.0,ALWAYS}', '{1309,1,1,0.0,COMMON}~{1207,1,1,0.0,COMMON}~{1424,1,1,0.0,COMMON}~{1281,1,1,0.0,COMMON}~{1283,1,1,0.0,COMMON}~{1217,1,1,0.0,COMMON}~{869,4,19,0.0,COMMON}~{1295,1,1,0.0,COMMON}~{1365,1,1,0.0,COMMON}~{1311,1,1,0.0,COMMON}~{1297,1,1,0.0,COMMON}~{1313,1,1,0.0,UNCOMMON}~{1209,1,1,0.0,UNCOMMON}~{1299,1,1,0.0,UNCOMMON}~{1430,1,1,0.0,UNCOMMON}~{1317,1,1,0.0,RARE}~{886,5,5,0.0,RARE}~{1213,1,1,0.0,RARE}~{1101,1,1,0.0,COMMON}~{1105,1,1,0.0,COMMON}~{1153,1,1,0.0,UNCOMMON}~{1191,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,RARE}~{1147,1,1,0.0,RARE}~{563,2,2,0.0,RARE}~{563,3,3,0.0,RARE}~{560,2,2,0.0,RARE}~{561,2,2,0.0,RARE}~{561,3,3,0.0,RARE}~{558,2,2,0.0,RARE}~{558,3,3,0.0,RARE}~{564,2,2,0.0,RARE}~{564,3,3,0.0,RARE}~{555,7,7,0.0,RARE}~{554,15,15,0.0,RARE}~{5101,1,1,0.0,UNCOMMON}~{5318,1,1,0.0,UNCOMMON}~{5320,3,3,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5324,4,4,0.0,UNCOMMON}~{5309,2,2,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5280,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5100,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5296,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{199,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{995,5,473,0.0,COMMON}~{225,1,1,0.0,COMMON}~{1446,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{2727,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6271, '{526,1,1,0.0,ALWAYS}', '{1205,1,1,0.0,UNCOMMON}~{1307,1,1,0.0,UNCOMMON}~{3190,1,1,0.0,UNCOMMON}~{1321,1,1,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1309,1,1,0.0,UNCOMMON}~{1375,1,1,0.0,UNCOMMON}~{807,2,2,0.0,UNCOMMON}~{1207,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1075,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1101,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{946,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{2688,1,1,0.0,RARE}~{2727,1,1,0.0,RARE}', ''), +(6272, '{526,1,1,0.0,ALWAYS}', '{1205,1,1,0.0,UNCOMMON}~{1307,1,1,0.0,UNCOMMON}~{3190,1,1,0.0,UNCOMMON}~{1321,1,1,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1309,1,1,0.0,UNCOMMON}~{1375,1,1,0.0,UNCOMMON}~{807,2,2,0.0,UNCOMMON}~{1207,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1075,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1101,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{946,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{2714,1,1,0.0,RARE}~{2739,1,1,0.0,RARE}', ''), +(6273, '{526,1,1,0.0,ALWAYS}', '{1205,1,1,0.0,UNCOMMON}~{1307,1,1,0.0,UNCOMMON}~{3190,1,1,0.0,UNCOMMON}~{1321,1,1,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1309,1,1,0.0,UNCOMMON}~{1375,1,1,0.0,UNCOMMON}~{807,2,2,0.0,UNCOMMON}~{1207,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1075,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1101,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{946,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{2691,1,1,0.0,RARE}~{2741,1,1,0.0,RARE}', ''), +(6274, '{526,1,1,0.0,ALWAYS}', '{1205,1,1,0.0,UNCOMMON}~{1307,1,1,0.0,UNCOMMON}~{3190,1,1,0.0,UNCOMMON}~{1321,1,1,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1309,1,1,0.0,UNCOMMON}~{1375,1,1,0.0,UNCOMMON}~{807,2,2,0.0,UNCOMMON}~{1207,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1075,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1101,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{946,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{2702,1,1,0.0,RARE}~{2741,1,1,0.0,RARE}', ''), +(6275, '{526,1,1,0.0,ALWAYS}', '{1237,1,1,0.0,COMMON}~{826,5,5,0.0,COMMON}~{1207,1,1,0.0,COMMON}~{1279,1,1,0.0,COMMON}~{1293,1,1,0.0,UNCOMMON}~{1239,1,1,0.0,UNCOMMON}~{1241,1,1,0.0,UNCOMMON}~{1295,1,1,0.0,UNCOMMON}~{555,2,2,0.0,UNCOMMON}~{559,6,6,0.0,UNCOMMON}~{554,7,7,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{562,3,3,0.0,UNCOMMON}~{561,4,4,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{5318,4,8,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,COMMON}~{5320,3,3,0.0,COMMON}~{5323,1,2,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5322,3,3,0.0,UNCOMMON}~{5321,1,2,0.0,UNCOMMON}~{5306,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,2,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{211,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{225,1,1,0.0,COMMON}~{288,1,1,0.0,RARE}~{6306,15,15,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(6276, '', '{886,1,12,0.0,COMMON}~{884,1,24,0.0,COMMON}~{882,1,58,0.0,COMMON}~{559,1,12,0.0,UNCOMMON}~{892,1,5,0.0,UNCOMMON}~{890,3,12,0.0,UNCOMMON}~{40,5,5,0.0,COMMON}~{53,12,12,0.0,COMMON}~{687,1,1,0.0,COMMON}~{1778,7,7,0.0,COMMON}~{57,11,11,0.0,COMMON}~{57,12,12,0.0,COMMON}~{843,1,1,0.0,COMMON}~{851,1,1,0.0,UNCOMMON}~{43,1,13,0.0,RARE}~{861,1,1,0.0,RARE}~{2729,1,1,0.0,RARE}', ''), +(6277, '', '{1295,1,1,0.0,COMMON}~{1281,1,1,0.0,COMMON}~{1428,1,1,0.0,COMMON}~{1371,1,1,0.0,UNCOMMON}~{1341,1,1,0.0,UNCOMMON}~{1217,1,1,0.0,UNCOMMON}~{1355,1,1,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,UNCOMMON}~{1303,1,1,0.0,UNCOMMON}~{3202,1,1,0.0,RARE}~{1317,1,1,0.0,RARE}~{1243,1,1,0.0,COMMON}~{1105,1,1,0.0,COMMON}~{1161,1,1,0.0,COMMON}~{1071,1,1,0.0,COMMON}~{1059,1,1,0.0,COMMON}~{1195,1,1,0.0,UNCOMMON}~{1081,1,1,0.0,UNCOMMON}~{1201,1,1,0.0,RARE}~{2725,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6278, '', '{556,11,11,0.0,COMMON}~{556,13,13,0.0,COMMON}~{555,5,5,0.0,COMMON}~{555,9,9,0.0,COMMON}~{561,4,4,0.0,COMMON}~{561,9,9,0.0,COMMON}~{562,1,6,0.0,UNCOMMON}~{560,2,2,0.0,UNCOMMON}~{9075,3,3,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{4695,3,3,0.0,UNCOMMON}~{4696,1,1,0.0,UNCOMMON}~{4698,2,2,0.0,UNCOMMON}~{559,5,5,0.0,UNCOMMON}~{559,12,12,0.0,UNCOMMON}~{558,5,5,0.0,UNCOMMON}~{554,7,7,0.0,UNCOMMON}~{565,2,2,0.0,UNCOMMON}~{11732,1,1,0.0,RARE}~{7937,23,23,0.0,COMMON}~{175,5,5,0.0,UNCOMMON}~{2731,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6279, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2714,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}~{2677,1,1,0.0,RARE}', ''), +(6280, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2678,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6281, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2681,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6282, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2697,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6283, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2699,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6285, '{526,1,1,0.0,ALWAYS}', '{556,24,60,0.0,COMMON}~{557,12,36,0.0,COMMON}~{560,4,28,0.0,UNCOMMON}~{563,1,10,0.0,UNCOMMON}~{566,1,10,0.0,UNCOMMON}~{1121,1,1,0.0,UNCOMMON}~{1201,1,1,0.0,RARE}~{9190,16,24,0.0,COMMON}~{9191,16,24,0.0,COMMON}~{9192,16,24,0.0,COMMON}~{9143,5,15,0.0,COMMON}~{1343,1,1,0.0,UNCOMMON}~{9144,3,12,0.0,UNCOMMON}~{1347,1,1,0.0,RARE}~{1275,1,1,0.0,RARE}~{995,15,479,0.0,COMMON}~{314,23,99,0.0,COMMON}~{1939,10,52,0.0,COMMON}~{449,1,1,0.0,COMMON}~{187,1,1,0.0,UNCOMMON}~{2185,1,3,0.0,UNCOMMON}~{2187,1,3,0.0,UNCOMMON}~{1458,1,1,0.0,UNCOMMON}~{384,1,6,0.0,UNCOMMON}~{3209,1,1,0.0,RARE}~{1462,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6286, '{526,1,1,0.0,ALWAYS}', '{556,24,60,0.0,COMMON}~{557,12,36,0.0,COMMON}~{560,4,28,0.0,UNCOMMON}~{563,1,10,0.0,UNCOMMON}~{566,1,10,0.0,UNCOMMON}~{1121,1,1,0.0,UNCOMMON}~{1201,1,1,0.0,RARE}~{9190,16,24,0.0,COMMON}~{9191,16,24,0.0,COMMON}~{9192,16,24,0.0,COMMON}~{9143,5,15,0.0,COMMON}~{1343,1,1,0.0,UNCOMMON}~{9144,3,12,0.0,UNCOMMON}~{1347,1,1,0.0,RARE}~{1275,1,1,0.0,RARE}~{995,15,479,0.0,COMMON}~{314,23,99,0.0,COMMON}~{1939,10,52,0.0,COMMON}~{449,1,1,0.0,COMMON}~{187,1,1,0.0,UNCOMMON}~{2185,1,3,0.0,UNCOMMON}~{2187,1,3,0.0,UNCOMMON}~{1458,1,1,0.0,UNCOMMON}~{384,1,6,0.0,UNCOMMON}~{3209,1,1,0.0,RARE}~{1462,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6287, '{526,1,1,0.0,ALWAYS}', '{556,24,60,0.0,COMMON}~{557,12,36,0.0,COMMON}~{560,4,28,0.0,UNCOMMON}~{563,1,10,0.0,UNCOMMON}~{566,1,10,0.0,UNCOMMON}~{1121,1,1,0.0,UNCOMMON}~{1201,1,1,0.0,RARE}~{9190,16,24,0.0,COMMON}~{9191,16,24,0.0,COMMON}~{9192,16,24,0.0,COMMON}~{9143,5,15,0.0,COMMON}~{1343,1,1,0.0,UNCOMMON}~{9144,3,12,0.0,UNCOMMON}~{1347,1,1,0.0,RARE}~{1275,1,1,0.0,RARE}~{995,15,479,0.0,COMMON}~{314,23,99,0.0,COMMON}~{1939,10,52,0.0,COMMON}~{449,1,1,0.0,COMMON}~{187,1,1,0.0,UNCOMMON}~{2185,1,3,0.0,UNCOMMON}~{2187,1,3,0.0,UNCOMMON}~{1458,1,1,0.0,UNCOMMON}~{384,1,6,0.0,UNCOMMON}~{3209,1,1,0.0,RARE}~{1462,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6288, '{526,1,1,0.0,ALWAYS}', '{556,24,60,0.0,COMMON}~{557,12,36,0.0,COMMON}~{560,4,28,0.0,UNCOMMON}~{563,1,10,0.0,UNCOMMON}~{566,1,10,0.0,UNCOMMON}~{1121,1,1,0.0,UNCOMMON}~{1201,1,1,0.0,RARE}~{9190,16,24,0.0,COMMON}~{9191,16,24,0.0,COMMON}~{9192,16,24,0.0,COMMON}~{9143,5,15,0.0,COMMON}~{1343,1,1,0.0,UNCOMMON}~{9144,3,12,0.0,UNCOMMON}~{1347,1,1,0.0,RARE}~{1275,1,1,0.0,RARE}~{995,15,479,0.0,COMMON}~{314,23,99,0.0,COMMON}~{1939,10,52,0.0,COMMON}~{449,1,1,0.0,COMMON}~{187,1,1,0.0,UNCOMMON}~{2185,1,3,0.0,UNCOMMON}~{2187,1,3,0.0,UNCOMMON}~{1458,1,1,0.0,UNCOMMON}~{384,1,6,0.0,UNCOMMON}~{3209,1,1,0.0,RARE}~{1462,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6289, '{526,1,1,0.0,ALWAYS}', '{556,24,60,0.0,COMMON}~{557,12,36,0.0,COMMON}~{560,4,28,0.0,UNCOMMON}~{563,1,10,0.0,UNCOMMON}~{566,1,10,0.0,UNCOMMON}~{1121,1,1,0.0,UNCOMMON}~{1201,1,1,0.0,RARE}~{9190,16,24,0.0,COMMON}~{9191,16,24,0.0,COMMON}~{9192,16,24,0.0,COMMON}~{9143,5,15,0.0,COMMON}~{1343,1,1,0.0,UNCOMMON}~{9144,3,12,0.0,UNCOMMON}~{1347,1,1,0.0,RARE}~{1275,1,1,0.0,RARE}~{995,15,479,0.0,COMMON}~{314,23,99,0.0,COMMON}~{1939,10,52,0.0,COMMON}~{449,1,1,0.0,COMMON}~{187,1,1,0.0,UNCOMMON}~{2185,1,3,0.0,UNCOMMON}~{2187,1,3,0.0,UNCOMMON}~{1458,1,1,0.0,UNCOMMON}~{384,1,6,0.0,UNCOMMON}~{3209,1,1,0.0,RARE}~{1462,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6290, '{526,1,1,0.0,ALWAYS}', '{556,24,60,0.0,COMMON}~{557,12,36,0.0,COMMON}~{560,4,28,0.0,UNCOMMON}~{563,1,10,0.0,UNCOMMON}~{566,1,10,0.0,UNCOMMON}~{1121,1,1,0.0,UNCOMMON}~{1201,1,1,0.0,RARE}~{9190,16,24,0.0,COMMON}~{9191,16,24,0.0,COMMON}~{9192,16,24,0.0,COMMON}~{9143,5,15,0.0,COMMON}~{1343,1,1,0.0,UNCOMMON}~{9144,3,12,0.0,UNCOMMON}~{1347,1,1,0.0,RARE}~{1275,1,1,0.0,RARE}~{995,15,479,0.0,COMMON}~{314,23,99,0.0,COMMON}~{1939,10,52,0.0,COMMON}~{449,1,1,0.0,COMMON}~{187,1,1,0.0,UNCOMMON}~{2185,1,3,0.0,UNCOMMON}~{2187,1,3,0.0,UNCOMMON}~{1458,1,1,0.0,UNCOMMON}~{384,1,6,0.0,UNCOMMON}~{3209,1,1,0.0,RARE}~{1462,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6291, '{526,1,1,0.0,ALWAYS}', '{556,24,60,0.0,COMMON}~{557,12,36,0.0,COMMON}~{560,4,28,0.0,UNCOMMON}~{563,1,10,0.0,UNCOMMON}~{566,1,10,0.0,UNCOMMON}~{1121,1,1,0.0,UNCOMMON}~{1201,1,1,0.0,RARE}~{9190,16,24,0.0,COMMON}~{9191,16,24,0.0,COMMON}~{9192,16,24,0.0,COMMON}~{9143,5,15,0.0,COMMON}~{1343,1,1,0.0,UNCOMMON}~{9144,3,12,0.0,UNCOMMON}~{1347,1,1,0.0,RARE}~{1275,1,1,0.0,RARE}~{995,15,479,0.0,COMMON}~{314,23,99,0.0,COMMON}~{1939,10,52,0.0,COMMON}~{449,1,1,0.0,COMMON}~{187,1,1,0.0,UNCOMMON}~{2185,1,3,0.0,UNCOMMON}~{2187,1,3,0.0,UNCOMMON}~{1458,1,1,0.0,UNCOMMON}~{384,1,6,0.0,UNCOMMON}~{3209,1,1,0.0,RARE}~{1462,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6292, '{526,1,1,0.0,ALWAYS}', '{556,24,60,0.0,COMMON}~{557,12,36,0.0,COMMON}~{560,4,28,0.0,UNCOMMON}~{563,1,10,0.0,UNCOMMON}~{566,1,10,0.0,UNCOMMON}~{1121,1,1,0.0,UNCOMMON}~{1201,1,1,0.0,RARE}~{9190,16,24,0.0,COMMON}~{9191,16,24,0.0,COMMON}~{9192,16,24,0.0,COMMON}~{9143,5,15,0.0,COMMON}~{1343,1,1,0.0,UNCOMMON}~{9144,3,12,0.0,UNCOMMON}~{1347,1,1,0.0,RARE}~{1275,1,1,0.0,RARE}~{995,15,479,0.0,COMMON}~{314,23,99,0.0,COMMON}~{1939,10,52,0.0,COMMON}~{449,1,1,0.0,COMMON}~{187,1,1,0.0,UNCOMMON}~{2185,1,3,0.0,UNCOMMON}~{2187,1,3,0.0,UNCOMMON}~{1458,1,1,0.0,UNCOMMON}~{384,1,6,0.0,UNCOMMON}~{3209,1,1,0.0,RARE}~{1462,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6293, '{526,1,1,0.0,ALWAYS}', '{556,24,60,0.0,COMMON}~{557,12,36,0.0,COMMON}~{560,4,28,0.0,UNCOMMON}~{563,1,10,0.0,UNCOMMON}~{566,1,10,0.0,UNCOMMON}~{1121,1,1,0.0,UNCOMMON}~{1201,1,1,0.0,RARE}~{9190,16,24,0.0,COMMON}~{9191,16,24,0.0,COMMON}~{9192,16,24,0.0,COMMON}~{9143,5,15,0.0,COMMON}~{1343,1,1,0.0,UNCOMMON}~{9144,3,12,0.0,UNCOMMON}~{1347,1,1,0.0,RARE}~{1275,1,1,0.0,RARE}~{995,15,479,0.0,COMMON}~{314,23,99,0.0,COMMON}~{1939,10,52,0.0,COMMON}~{449,1,1,0.0,COMMON}~{187,1,1,0.0,UNCOMMON}~{2185,1,3,0.0,UNCOMMON}~{2187,1,3,0.0,UNCOMMON}~{1458,1,1,0.0,UNCOMMON}~{384,1,6,0.0,UNCOMMON}~{3209,1,1,0.0,RARE}~{1462,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6294, '{526,1,1,0.0,ALWAYS}', '{556,24,60,0.0,COMMON}~{557,12,36,0.0,COMMON}~{560,4,28,0.0,UNCOMMON}~{563,1,10,0.0,UNCOMMON}~{566,1,10,0.0,UNCOMMON}~{1121,1,1,0.0,UNCOMMON}~{1201,1,1,0.0,RARE}~{9190,16,24,0.0,COMMON}~{9191,16,24,0.0,COMMON}~{9192,16,24,0.0,COMMON}~{9143,5,15,0.0,COMMON}~{1343,1,1,0.0,UNCOMMON}~{9144,3,12,0.0,UNCOMMON}~{1347,1,1,0.0,RARE}~{1275,1,1,0.0,RARE}~{995,15,479,0.0,COMMON}~{314,23,99,0.0,COMMON}~{1939,10,52,0.0,COMMON}~{449,1,1,0.0,COMMON}~{187,1,1,0.0,UNCOMMON}~{2185,1,3,0.0,UNCOMMON}~{2187,1,3,0.0,UNCOMMON}~{1458,1,1,0.0,UNCOMMON}~{384,1,6,0.0,UNCOMMON}~{3209,1,1,0.0,RARE}~{1462,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6295, '{526,1,1,0.0,ALWAYS}', '{556,24,60,0.0,COMMON}~{557,12,36,0.0,COMMON}~{560,4,28,0.0,UNCOMMON}~{563,1,10,0.0,UNCOMMON}~{566,1,10,0.0,UNCOMMON}~{1121,1,1,0.0,UNCOMMON}~{1201,1,1,0.0,RARE}~{9190,16,24,0.0,COMMON}~{9191,16,24,0.0,COMMON}~{9192,16,24,0.0,COMMON}~{9143,5,15,0.0,COMMON}~{1343,1,1,0.0,UNCOMMON}~{9144,3,12,0.0,UNCOMMON}~{1347,1,1,0.0,RARE}~{1275,1,1,0.0,RARE}~{995,15,479,0.0,COMMON}~{314,23,99,0.0,COMMON}~{1939,10,52,0.0,COMMON}~{449,1,1,0.0,COMMON}~{187,1,1,0.0,UNCOMMON}~{2185,1,3,0.0,UNCOMMON}~{2187,1,3,0.0,UNCOMMON}~{1458,1,1,0.0,UNCOMMON}~{384,1,6,0.0,UNCOMMON}~{3209,1,1,0.0,RARE}~{1462,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6296, '{532,1,1,0.0,ALWAYS}', '{1343,1,1,0.0,COMMON}~{1357,1,1,0.0,COMMON}~{1121,1,1,0.0,UNCOMMON}~{1275,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,RARE}~{449,1,1,0.0,COMMON}~{448,3,9,0.0,COMMON}~{454,6,16,0.0,COMMON}~{563,3,6,0.0,UNCOMMON}~{1458,1,1,0.0,UNCOMMON}~{1462,1,1,0.0,RARE}~{556,49,49,0.0,RARE}~{10995,1,3,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{3209,1,1,0.0,COMMON}~{995,30,180,0.0,COMMON}~{1939,10,32,0.0,COMMON}~{1968,2,54,0.0,UNCOMMON}~{2187,1,4,0.0,UNCOMMON}~{7939,1,3,0.0,UNCOMMON}~{187,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6297, '{532,1,1,0.0,ALWAYS}', '{1343,1,1,0.0,COMMON}~{1357,1,1,0.0,COMMON}~{1121,1,1,0.0,UNCOMMON}~{1275,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,RARE}~{449,1,1,0.0,COMMON}~{448,3,9,0.0,COMMON}~{454,6,16,0.0,COMMON}~{563,3,6,0.0,UNCOMMON}~{1458,1,1,0.0,UNCOMMON}~{1462,1,1,0.0,RARE}~{556,49,49,0.0,RARE}~{10995,1,3,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{3209,1,1,0.0,COMMON}~{995,30,180,0.0,COMMON}~{1939,10,32,0.0,COMMON}~{1968,2,54,0.0,UNCOMMON}~{2187,1,4,0.0,UNCOMMON}~{7939,1,3,0.0,UNCOMMON}~{187,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6322, '{526,1,1,0.0,ALWAYS}', '{556,24,60,0.0,COMMON}~{557,12,36,0.0,COMMON}~{560,4,28,0.0,UNCOMMON}~{563,1,10,0.0,UNCOMMON}~{566,1,10,0.0,UNCOMMON}~{1121,1,1,0.0,UNCOMMON}~{1201,1,1,0.0,RARE}~{9190,16,24,0.0,COMMON}~{9191,16,24,0.0,COMMON}~{9192,16,24,0.0,COMMON}~{9143,5,15,0.0,COMMON}~{1343,1,1,0.0,UNCOMMON}~{9144,3,12,0.0,UNCOMMON}~{1347,1,1,0.0,RARE}~{1275,1,1,0.0,RARE}~{995,15,479,0.0,COMMON}~{314,23,99,0.0,COMMON}~{1939,10,52,0.0,COMMON}~{449,1,1,0.0,COMMON}~{187,1,1,0.0,UNCOMMON}~{2185,1,3,0.0,UNCOMMON}~{2187,1,3,0.0,UNCOMMON}~{1458,1,1,0.0,UNCOMMON}~{384,1,6,0.0,UNCOMMON}~{3209,1,1,0.0,RARE}~{1462,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6323, '{526,1,1,0.0,ALWAYS}', '{556,24,60,0.0,COMMON}~{557,12,36,0.0,COMMON}~{560,4,28,0.0,UNCOMMON}~{563,1,10,0.0,UNCOMMON}~{566,1,10,0.0,UNCOMMON}~{1121,1,1,0.0,UNCOMMON}~{1201,1,1,0.0,RARE}~{9190,16,24,0.0,COMMON}~{9191,16,24,0.0,COMMON}~{9192,16,24,0.0,COMMON}~{9143,5,15,0.0,COMMON}~{1343,1,1,0.0,UNCOMMON}~{9144,3,12,0.0,UNCOMMON}~{1347,1,1,0.0,RARE}~{1275,1,1,0.0,RARE}~{995,15,479,0.0,COMMON}~{314,23,99,0.0,COMMON}~{1939,10,52,0.0,COMMON}~{449,1,1,0.0,COMMON}~{187,1,1,0.0,UNCOMMON}~{2185,1,3,0.0,UNCOMMON}~{2187,1,3,0.0,UNCOMMON}~{1458,1,1,0.0,UNCOMMON}~{384,1,6,0.0,UNCOMMON}~{3209,1,1,0.0,RARE}~{1462,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6324, '{526,1,1,0.0,ALWAYS}', '{556,24,60,0.0,COMMON}~{557,12,36,0.0,COMMON}~{560,4,28,0.0,UNCOMMON}~{563,1,10,0.0,UNCOMMON}~{566,1,10,0.0,UNCOMMON}~{1121,1,1,0.0,UNCOMMON}~{1201,1,1,0.0,RARE}~{9190,16,24,0.0,COMMON}~{9191,16,24,0.0,COMMON}~{9192,16,24,0.0,COMMON}~{9143,5,15,0.0,COMMON}~{1343,1,1,0.0,UNCOMMON}~{9144,3,12,0.0,UNCOMMON}~{1347,1,1,0.0,RARE}~{1275,1,1,0.0,RARE}~{995,15,479,0.0,COMMON}~{314,23,99,0.0,COMMON}~{1939,10,52,0.0,COMMON}~{449,1,1,0.0,COMMON}~{187,1,1,0.0,UNCOMMON}~{2185,1,3,0.0,UNCOMMON}~{2187,1,3,0.0,UNCOMMON}~{1458,1,1,0.0,UNCOMMON}~{384,1,6,0.0,UNCOMMON}~{3209,1,1,0.0,RARE}~{1462,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6325, '{526,1,1,0.0,ALWAYS}', '{556,24,60,0.0,COMMON}~{557,12,36,0.0,COMMON}~{560,4,28,0.0,UNCOMMON}~{563,1,10,0.0,UNCOMMON}~{566,1,10,0.0,UNCOMMON}~{1121,1,1,0.0,UNCOMMON}~{1201,1,1,0.0,RARE}~{9190,16,24,0.0,COMMON}~{9191,16,24,0.0,COMMON}~{9192,16,24,0.0,COMMON}~{9143,5,15,0.0,COMMON}~{1343,1,1,0.0,UNCOMMON}~{9144,3,12,0.0,UNCOMMON}~{1347,1,1,0.0,RARE}~{1275,1,1,0.0,RARE}~{995,15,479,0.0,COMMON}~{314,23,99,0.0,COMMON}~{1939,10,52,0.0,COMMON}~{449,1,1,0.0,COMMON}~{187,1,1,0.0,UNCOMMON}~{2185,1,3,0.0,UNCOMMON}~{2187,1,3,0.0,UNCOMMON}~{1458,1,1,0.0,UNCOMMON}~{384,1,6,0.0,UNCOMMON}~{3209,1,1,0.0,RARE}~{1462,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6326, '{526,1,1,0.0,ALWAYS}', '{556,24,60,0.0,COMMON}~{557,12,36,0.0,COMMON}~{560,4,28,0.0,UNCOMMON}~{563,1,10,0.0,UNCOMMON}~{566,1,10,0.0,UNCOMMON}~{1121,1,1,0.0,UNCOMMON}~{1201,1,1,0.0,RARE}~{9190,16,24,0.0,COMMON}~{9191,16,24,0.0,COMMON}~{9192,16,24,0.0,COMMON}~{9143,5,15,0.0,COMMON}~{1343,1,1,0.0,UNCOMMON}~{9144,3,12,0.0,UNCOMMON}~{1347,1,1,0.0,RARE}~{1275,1,1,0.0,RARE}~{995,15,479,0.0,COMMON}~{314,23,99,0.0,COMMON}~{1939,10,52,0.0,COMMON}~{449,1,1,0.0,COMMON}~{187,1,1,0.0,UNCOMMON}~{2185,1,3,0.0,UNCOMMON}~{2187,1,3,0.0,UNCOMMON}~{1458,1,1,0.0,UNCOMMON}~{384,1,6,0.0,UNCOMMON}~{3209,1,1,0.0,RARE}~{1462,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6327, '{526,1,1,0.0,ALWAYS}', '{556,24,60,0.0,COMMON}~{557,12,36,0.0,COMMON}~{560,4,28,0.0,UNCOMMON}~{563,1,10,0.0,UNCOMMON}~{566,1,10,0.0,UNCOMMON}~{1121,1,1,0.0,UNCOMMON}~{1201,1,1,0.0,RARE}~{9190,16,24,0.0,COMMON}~{9191,16,24,0.0,COMMON}~{9192,16,24,0.0,COMMON}~{9143,5,15,0.0,COMMON}~{1343,1,1,0.0,UNCOMMON}~{9144,3,12,0.0,UNCOMMON}~{1347,1,1,0.0,RARE}~{1275,1,1,0.0,RARE}~{995,15,479,0.0,COMMON}~{314,23,99,0.0,COMMON}~{1939,10,52,0.0,COMMON}~{449,1,1,0.0,COMMON}~{187,1,1,0.0,UNCOMMON}~{2185,1,3,0.0,UNCOMMON}~{2187,1,3,0.0,UNCOMMON}~{1458,1,1,0.0,UNCOMMON}~{384,1,6,0.0,UNCOMMON}~{3209,1,1,0.0,RARE}~{1462,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6328, '{526,1,1,0.0,ALWAYS}', '{556,24,60,0.0,COMMON}~{557,12,36,0.0,COMMON}~{560,4,28,0.0,UNCOMMON}~{563,1,10,0.0,UNCOMMON}~{566,1,10,0.0,UNCOMMON}~{1121,1,1,0.0,UNCOMMON}~{1201,1,1,0.0,RARE}~{9190,16,24,0.0,COMMON}~{9191,16,24,0.0,COMMON}~{9192,16,24,0.0,COMMON}~{9143,5,15,0.0,COMMON}~{1343,1,1,0.0,UNCOMMON}~{9144,3,12,0.0,UNCOMMON}~{1347,1,1,0.0,RARE}~{1275,1,1,0.0,RARE}~{995,15,479,0.0,COMMON}~{314,23,99,0.0,COMMON}~{1939,10,52,0.0,COMMON}~{449,1,1,0.0,COMMON}~{187,1,1,0.0,UNCOMMON}~{2185,1,3,0.0,UNCOMMON}~{2187,1,3,0.0,UNCOMMON}~{1458,1,1,0.0,UNCOMMON}~{384,1,6,0.0,UNCOMMON}~{3209,1,1,0.0,RARE}~{1462,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6329, '{526,1,1,0.0,ALWAYS}', '{556,24,60,0.0,COMMON}~{557,12,36,0.0,COMMON}~{560,4,28,0.0,UNCOMMON}~{563,1,10,0.0,UNCOMMON}~{566,1,10,0.0,UNCOMMON}~{1121,1,1,0.0,UNCOMMON}~{1201,1,1,0.0,RARE}~{9190,16,24,0.0,COMMON}~{9191,16,24,0.0,COMMON}~{9192,16,24,0.0,COMMON}~{9143,5,15,0.0,COMMON}~{1343,1,1,0.0,UNCOMMON}~{9144,3,12,0.0,UNCOMMON}~{1347,1,1,0.0,RARE}~{1275,1,1,0.0,RARE}~{995,15,479,0.0,COMMON}~{314,23,99,0.0,COMMON}~{1939,10,52,0.0,COMMON}~{449,1,1,0.0,COMMON}~{187,1,1,0.0,UNCOMMON}~{2185,1,3,0.0,UNCOMMON}~{2187,1,3,0.0,UNCOMMON}~{1458,1,1,0.0,UNCOMMON}~{384,1,6,0.0,UNCOMMON}~{3209,1,1,0.0,RARE}~{1462,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6330, '', '{556,24,60,0.0,COMMON}~{557,12,36,0.0,COMMON}~{560,4,28,0.0,UNCOMMON}~{563,1,10,0.0,UNCOMMON}~{566,1,10,0.0,UNCOMMON}~{1121,1,1,0.0,UNCOMMON}~{1201,1,1,0.0,RARE}~{9190,16,24,0.0,COMMON}~{9191,16,24,0.0,COMMON}~{9192,16,24,0.0,COMMON}~{9143,5,15,0.0,COMMON}~{1343,1,1,0.0,UNCOMMON}~{9144,3,12,0.0,UNCOMMON}~{1347,1,1,0.0,RARE}~{1275,1,1,0.0,RARE}~{995,15,479,0.0,COMMON}~{314,23,99,0.0,COMMON}~{1939,10,52,0.0,COMMON}~{449,1,1,0.0,COMMON}~{187,1,1,0.0,UNCOMMON}~{2185,1,3,0.0,UNCOMMON}~{2187,1,3,0.0,UNCOMMON}~{1458,1,1,0.0,UNCOMMON}~{384,1,6,0.0,UNCOMMON}~{3209,1,1,0.0,RARE}~{1462,1,1,0.0,RARE}~{995,250,250,0.0,COMMON}~{995,3000,3000,0.0,COMMON}~{1623,1,1,0.0,COMMON}~{1621,1,1,0.0,COMMON}~{1619,1,1,0.0,COMMON}~{1617,1,1,0.0,UNCOMMON}~{987,1,1,0.0,UNCOMMON}~{985,1,1,0.0,UNCOMMON}~{1631,1,1,0.0,RARE}~{1615,1,1,0.0,RARE}~{1215,1,1,0.0,UNCOMMON}~{830,5,5,0.0,RARE}~{829,20,20,0.0,RARE}~{1319,1,1,0.0,RARE}~{1247,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1216,50,50,0.0,RARE}~{1185,1,1,0.0,RARE}~{1201,1,1,0.0,RARE}~{2366,1,1,0.0,RARE}~{1149,1,1,0.0,RARE}~{9143,200,200,0.0,UNCOMMON}~{9342,150,150,0.0,RARE}~{892,150,200,0.0,RARE}~{892,500,500,0.0,RARE}~{1392,200,200,0.0,RARE}~{574,1000,1000,0.0,RARE}~{570,1000,1000,0.0,RARE}~{1444,1,1,0.0,UNCOMMON}~{1441,25,35,0.0,UNCOMMON}~{1443,25,35,0.0,UNCOMMON}~{1452,1,1,0.0,UNCOMMON}~{1462,1,1,0.0,UNCOMMON}~{7937,500,15000,0.0,UNCOMMON}~{561,47,77,0.0,RARE}~{566,20,20,0.0,RARE}~{563,45,45,0.0,RARE}~{560,50,50,0.0,RARE}~{560,121,121,0.0,RARE}~{565,50,50,0.0,RARE}~{372,125,250,0.0,UNCOMMON}~{372,1000,1000,0.0,UNCOMMON}~{384,250,500,0.0,UNCOMMON}~{533,150,500,0.0,UNCOMMON}~{454,150,7500,0.0,UNCOMMON}~{450,150,800,0.0,UNCOMMON}~{443,100,100,0.0,RARE}~{452,100,100,0.0,RARE}~{2362,1000,7000,0.0,RARE}~{2364,1,1,0.0,RARE}~{2364,50,50,0.0,RARE}~{258,33,33,0.0,UNCOMMON}~{2999,25,250,0.0,UNCOMMON}~{3001,30,120,0.0,UNCOMMON}~{270,10,100,0.0,UNCOMMON}~{6686,250,250,0.0,RARE}~{5321,3,3,0.0,UNCOMMON}~{5315,1,50,0.0,RARE}~{5316,1,6,0.0,RARE}~{5289,10,10,0.0,RARE}~{5300,1,1,0.0,RARE}~{5304,1,31,0.0,RARE}~{1516,100,20000,0.0,RARE}', ''), +(6331, '', '{556,24,60,0.0,COMMON}~{557,12,36,0.0,COMMON}~{560,4,28,0.0,UNCOMMON}~{563,1,10,0.0,UNCOMMON}~{566,1,10,0.0,UNCOMMON}~{1121,1,1,0.0,UNCOMMON}~{1201,1,1,0.0,RARE}~{9190,16,24,0.0,COMMON}~{9191,16,24,0.0,COMMON}~{9192,16,24,0.0,COMMON}~{9143,5,15,0.0,COMMON}~{1343,1,1,0.0,UNCOMMON}~{9144,3,12,0.0,UNCOMMON}~{1347,1,1,0.0,RARE}~{1275,1,1,0.0,RARE}~{995,15,479,0.0,COMMON}~{314,23,99,0.0,COMMON}~{1939,10,52,0.0,COMMON}~{449,1,1,0.0,COMMON}~{187,1,1,0.0,UNCOMMON}~{2185,1,3,0.0,UNCOMMON}~{2187,1,3,0.0,UNCOMMON}~{1458,1,1,0.0,UNCOMMON}~{384,1,6,0.0,UNCOMMON}~{3209,1,1,0.0,RARE}~{1462,1,1,0.0,RARE}~{995,250,250,0.0,COMMON}~{995,3000,3000,0.0,COMMON}~{1623,1,1,0.0,COMMON}~{1621,1,1,0.0,COMMON}~{1619,1,1,0.0,COMMON}~{1617,1,1,0.0,UNCOMMON}~{987,1,1,0.0,UNCOMMON}~{985,1,1,0.0,UNCOMMON}~{1631,1,1,0.0,RARE}~{1615,1,1,0.0,RARE}~{1215,1,1,0.0,UNCOMMON}~{830,5,5,0.0,RARE}~{829,20,20,0.0,RARE}~{1319,1,1,0.0,RARE}~{1247,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1216,50,50,0.0,RARE}~{1185,1,1,0.0,RARE}~{1201,1,1,0.0,RARE}~{2366,1,1,0.0,RARE}~{1149,1,1,0.0,RARE}~{9143,200,200,0.0,UNCOMMON}~{9342,150,150,0.0,RARE}~{892,150,200,0.0,RARE}~{892,500,500,0.0,RARE}~{1392,200,200,0.0,RARE}~{574,1000,1000,0.0,RARE}~{570,1000,1000,0.0,RARE}~{1444,1,1,0.0,UNCOMMON}~{1441,25,35,0.0,UNCOMMON}~{1443,25,35,0.0,UNCOMMON}~{1452,1,1,0.0,UNCOMMON}~{1462,1,1,0.0,UNCOMMON}~{7937,500,15000,0.0,UNCOMMON}~{561,47,77,0.0,RARE}~{566,20,20,0.0,RARE}~{563,45,45,0.0,RARE}~{560,50,50,0.0,RARE}~{560,121,121,0.0,RARE}~{565,50,50,0.0,RARE}~{372,125,250,0.0,UNCOMMON}~{372,1000,1000,0.0,UNCOMMON}~{384,250,500,0.0,UNCOMMON}~{533,150,500,0.0,UNCOMMON}~{454,150,7500,0.0,UNCOMMON}~{450,150,800,0.0,UNCOMMON}~{443,100,100,0.0,RARE}~{452,100,100,0.0,RARE}~{2362,1000,7000,0.0,RARE}~{2364,1,1,0.0,RARE}~{2364,50,50,0.0,RARE}~{258,33,33,0.0,UNCOMMON}~{2999,25,250,0.0,UNCOMMON}~{3001,30,120,0.0,UNCOMMON}~{270,10,100,0.0,UNCOMMON}~{6686,250,250,0.0,RARE}~{5321,3,3,0.0,UNCOMMON}~{5315,1,50,0.0,RARE}~{5316,1,6,0.0,RARE}~{5289,10,10,0.0,RARE}~{5300,1,1,0.0,RARE}~{5304,1,31,0.0,RARE}~{1516,100,20000,0.0,RARE}', ''), +(6332, '', '{556,24,60,0.0,COMMON}~{557,12,36,0.0,COMMON}~{560,4,28,0.0,UNCOMMON}~{563,1,10,0.0,UNCOMMON}~{566,1,10,0.0,UNCOMMON}~{1121,1,1,0.0,UNCOMMON}~{1201,1,1,0.0,RARE}~{9190,16,24,0.0,COMMON}~{9191,16,24,0.0,COMMON}~{9192,16,24,0.0,COMMON}~{9143,5,15,0.0,COMMON}~{1343,1,1,0.0,UNCOMMON}~{9144,3,12,0.0,UNCOMMON}~{1347,1,1,0.0,RARE}~{1275,1,1,0.0,RARE}~{995,15,479,0.0,COMMON}~{314,23,99,0.0,COMMON}~{1939,10,52,0.0,COMMON}~{449,1,1,0.0,COMMON}~{187,1,1,0.0,UNCOMMON}~{2185,1,3,0.0,UNCOMMON}~{2187,1,3,0.0,UNCOMMON}~{1458,1,1,0.0,UNCOMMON}~{384,1,6,0.0,UNCOMMON}~{3209,1,1,0.0,RARE}~{1462,1,1,0.0,RARE}~{995,250,250,0.0,COMMON}~{995,3000,3000,0.0,COMMON}~{1623,1,1,0.0,COMMON}~{1621,1,1,0.0,COMMON}~{1619,1,1,0.0,COMMON}~{1617,1,1,0.0,UNCOMMON}~{987,1,1,0.0,UNCOMMON}~{985,1,1,0.0,UNCOMMON}~{1631,1,1,0.0,RARE}~{1615,1,1,0.0,RARE}~{1215,1,1,0.0,UNCOMMON}~{830,5,5,0.0,RARE}~{829,20,20,0.0,RARE}~{1319,1,1,0.0,RARE}~{1247,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1216,50,50,0.0,RARE}~{1185,1,1,0.0,RARE}~{1201,1,1,0.0,RARE}~{2366,1,1,0.0,RARE}~{1149,1,1,0.0,RARE}~{9143,200,200,0.0,UNCOMMON}~{9342,150,150,0.0,RARE}~{892,150,200,0.0,RARE}~{892,500,500,0.0,RARE}~{1392,200,200,0.0,RARE}~{574,1000,1000,0.0,RARE}~{570,1000,1000,0.0,RARE}~{1444,1,1,0.0,UNCOMMON}~{1441,25,35,0.0,UNCOMMON}~{1443,25,35,0.0,UNCOMMON}~{1452,1,1,0.0,UNCOMMON}~{1462,1,1,0.0,UNCOMMON}~{7937,500,15000,0.0,UNCOMMON}~{561,47,77,0.0,RARE}~{566,20,20,0.0,RARE}~{563,45,45,0.0,RARE}~{560,50,50,0.0,RARE}~{560,121,121,0.0,RARE}~{565,50,50,0.0,RARE}~{372,125,250,0.0,UNCOMMON}~{372,1000,1000,0.0,UNCOMMON}~{384,250,500,0.0,UNCOMMON}~{533,150,500,0.0,UNCOMMON}~{454,150,7500,0.0,UNCOMMON}~{450,150,800,0.0,UNCOMMON}~{443,100,100,0.0,RARE}~{452,100,100,0.0,RARE}~{2362,1000,7000,0.0,RARE}~{2364,1,1,0.0,RARE}~{2364,50,50,0.0,RARE}~{258,33,33,0.0,UNCOMMON}~{2999,25,250,0.0,UNCOMMON}~{3001,30,120,0.0,UNCOMMON}~{270,10,100,0.0,UNCOMMON}~{6686,250,250,0.0,RARE}~{5321,3,3,0.0,UNCOMMON}~{5315,1,50,0.0,RARE}~{5316,1,6,0.0,RARE}~{5289,10,10,0.0,RARE}~{5300,1,1,0.0,RARE}~{5304,1,31,0.0,RARE}~{1516,100,20000,0.0,RARE}', ''), +(6346, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6347, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6348, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6349, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6350, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6351, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6352, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6353, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6354, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6355, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6356, '{526,1,1,0.0,ALWAYS}', '{556,10,10,0.0,COMMON}~{557,9,9,0.0,COMMON}~{554,5,5,0.0,COMMON}~{562,2,2,0.0,COMMON}~{561,2,2,0.0,COMMON}~{563,2,2,0.0,RARE}~{565,1,1,0.0,RARE}~{1321,1,1,0.0,COMMON}~{882,9,12,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{9140,2,10,0.0,UNCOMMON}~{1381,1,1,0.0,UNCOMMON}~{877,2,10,0.0,UNCOMMON}~{1115,1,1,0.0,RARE}~{995,4,55,0.0,COMMON}~{1025,1,1,0.0,COMMON}~{2351,1,1,0.0,RARE}~{1949,1,1,0.0,RARE}~{225,1,1,0.0,RARE}~{590,1,1,0.0,RARE}~{946,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6363, '{526,1,1,0.0,ALWAYS}', '{1213,1,1,0.0,COMMON}~{1301,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1207,1,1,0.0,COMMON}~{1333,1,1,0.0,UNCOMMON}~{995,100,100,0.0,COMMON}~{379,3,3,0.0,COMMON}', '{0,1,1,0.75,ALWAYS}~{12158,1,1,0.186,ALWAYS}~{12159,1,1,0.03,ALWAYS}~{12160,1,1,0.025,ALWAYS}~{12163,1,1,0.008,ALWAYS}'), +(6364, '{526,1,1,0.0,ALWAYS}', '{1213,1,1,0.0,COMMON}~{1301,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1207,1,1,0.0,COMMON}~{1333,1,1,0.0,UNCOMMON}~{995,100,100,0.0,COMMON}~{379,3,3,0.0,COMMON}', '{0,1,1,0.75,ALWAYS}~{12158,1,1,0.186,ALWAYS}~{12159,1,1,0.03,ALWAYS}~{12160,1,1,0.025,ALWAYS}~{12163,1,1,0.008,ALWAYS}'), +(6365, '{526,1,1,0.0,ALWAYS}', '{995,100,100,0.0,COMMON}~{1777,10,10,0.0,UNCOMMON}~{849,1,1,0.0,UNCOMMON}~{847,1,1,0.0,RARE}~{886,10,10,0.0,UNCOMMON}~{888,20,20,0.0,RARE}~{861,1,1,0.0,RARE}', '{0,1,1,0.785,ALWAYS}~{12158,1,1,0.014,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.045,ALWAYS}~{12163,1,1,0.131,ALWAYS}'), +(6366, '{526,1,1,0.0,ALWAYS}', '{995,100,100,0.0,COMMON}~{1777,10,10,0.0,UNCOMMON}~{849,1,1,0.0,UNCOMMON}~{847,1,1,0.0,RARE}~{886,10,10,0.0,UNCOMMON}~{888,20,20,0.0,RARE}~{861,1,1,0.0,RARE}', '{0,1,1,0.785,ALWAYS}~{12158,1,1,0.014,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.045,ALWAYS}~{12163,1,1,0.131,ALWAYS}'), +(6374, '{526,1,1,0.0,ALWAYS}', '', ''), +(6376, '', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{808,1,1,0.0,UNCOMMON}~{557,13,13,0.0,UNCOMMON}~{9141,20,20,0.0,UNCOMMON}~{11766,1,1,0.0,UNCOMMON}~{11767,1,1,0.0,UNCOMMON}~{11768,1,1,0.0,UNCOMMON}~{11769,1,1,0.0,UNCOMMON}~{11764,1,1,0.0,UNCOMMON}', ''), +(6377, '', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{808,1,1,0.0,UNCOMMON}~{557,13,13,0.0,UNCOMMON}~{9141,20,20,0.0,UNCOMMON}~{11766,1,1,0.0,UNCOMMON}~{11767,1,1,0.0,UNCOMMON}~{11768,1,1,0.0,UNCOMMON}~{11769,1,1,0.0,UNCOMMON}~{11764,1,1,0.0,UNCOMMON}', ''), +(6378, '', '{5318,1,4,0.0,COMMON}~{5319,1,3,0.0,UNCOMMON}~{5320,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{2108,1,1,0.0,UNCOMMON}~{3142,1,1,0.0,UNCOMMON}~{5972,1,1,0.0,UNCOMMON}~{5984,1,1,0.0,UNCOMMON}~{314,1020,1020,0.0,COMMON}~{1515,1,1,0.0,UNCOMMON}~{227,1,1,0.0,UNCOMMON}~{6306,12,18,0.0,UNCOMMON}~{2747,1,1,0.0,UNCOMMON}~{11766,1,1,0.0,UNCOMMON}~{11767,1,1,0.0,UNCOMMON}~{11768,1,1,0.0,UNCOMMON}~{11769,1,1,0.0,UNCOMMON}~{11764,1,1,0.0,UNCOMMON}', ''), +(6379, '', '{5318,1,1,0.0,COMMON}~{5319,1,1,0.0,COMMON}~{5322,1,1,0.0,UNCOMMON}~{5320,2,2,0.0,UNCOMMON}~{5323,2,2,0.0,RARE}~{5321,1,1,0.0,RARE}~{5288,1,1,0.0,RARE}~{556,3,48,0.0,COMMON}~{555,28,28,0.0,COMMON}~{557,1,9,0.0,COMMON}~{561,1,15,0.0,COMMON}~{560,2,10,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,380,380,0.0,RARE}~{5504,2,2,0.0,COMMON}~{235,1,1,0.0,COMMON}~{454,1,10,0.0,UNCOMMON}~{6306,1,1,0.0,UNCOMMON}~{2823,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(6380, '', '{554,5,5,0.0,COMMON}~{554,6,6,0.0,COMMON}~{4696,1,3,0.0,COMMON}~{561,2,2,0.0,COMMON}~{561,9,9,0.0,COMMON}~{563,1,1,0.0,UNCOMMON}~{563,9,9,0.0,UNCOMMON}~{557,10,10,0.0,UNCOMMON}~{566,1,1,0.0,RARE}~{565,2,2,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{5291,1,1,0.0,COMMON}~{5292,1,1,0.0,COMMON}~{5293,1,1,0.0,COMMON}~{5294,1,1,0.0,COMMON}~{5296,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5288,1,1,0.0,RARE}~{6306,5,23,0.0,COMMON}~{440,1,1,0.0,UNCOMMON}~{5504,2,2,0.0,UNCOMMON}~{453,1,7,0.0,UNCOMMON}~{235,1,1,0.0,RARE}~{2817,1,1,0.0,RARE}~{11766,1,1,0.0,UNCOMMON}~{11767,1,1,0.0,UNCOMMON}~{11768,1,1,0.0,UNCOMMON}~{11769,1,1,0.0,UNCOMMON}~{11764,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', '{0,1,1,0.8250000000000001,ALWAYS}~{12158,1,1,0.05,ALWAYS}~{12159,1,1,0.093,ALWAYS}~{12160,1,1,0.021,ALWAYS}~{12163,1,1,0.011,ALWAYS}'), +(6381, '', '{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{562,1,2,0.0,UNCOMMON}~{562,8,10,0.0,UNCOMMON}~{555,32,32,0.0,UNCOMMON}~{555,35,35,0.0,UNCOMMON}~{566,1,3,0.0,UNCOMMON}~{247,1,3,0.0,UNCOMMON}~{2815,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6383, '', '{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{562,1,2,0.0,UNCOMMON}~{562,8,10,0.0,UNCOMMON}~{555,32,32,0.0,UNCOMMON}~{555,35,35,0.0,UNCOMMON}~{566,1,3,0.0,UNCOMMON}~{247,1,3,0.0,UNCOMMON}~{2817,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6389, '', '{1311,1,1,0.0,COMMON}~{1365,1,1,0.0,COMMON}~{1353,1,1,0.0,COMMON}~{4153,1,1,0.0,RARE}~{1163,1,1,0.0,UNCOMMON}~{4129,1,1,0.0,UNCOMMON}~{1157,1,1,0.0,RARE}~{554,37,37,0.0,COMMON}~{554,75,75,0.0,COMMON}~{562,15,15,0.0,COMMON}~{560,5,5,0.0,UNCOMMON}~{995,11,498,0.0,COMMON}~{7937,35,35,0.0,UNCOMMON}~{2359,3,3,0.0,UNCOMMON}~{2353,3,3,0.0,UNCOMMON}~{2357,1,1,0.0,UNCOMMON}~{1734,10,10,0.0,UNCOMMON}~{2725,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.74,ALWAYS}~{12158,1,1,0.09,ALWAYS}~{12159,1,1,0.05,ALWAYS}~{12160,1,1,0.05,ALWAYS}~{12163,1,1,0.07,ALWAYS}'), +(6402, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2701,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6403, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2698,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(6404, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2706,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6405, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2680,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6406, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2703,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6407, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2684,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6408, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2681,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6409, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2694,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6410, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2707,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6411, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2704,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6412, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2690,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6413, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2694,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6414, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2697,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6415, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2700,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6416, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2689,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6417, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2707,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6418, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2700,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6419, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2691,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6420, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2697,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6421, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2692,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6422, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2688,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6423, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2687,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6424, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2708,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6425, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2708,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6426, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2690,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6427, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2716,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6428, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2696,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6429, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2715,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}~{2677,1,1,0.0,RARE}', ''), +(6430, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2692,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6431, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2681,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6432, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2689,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6433, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2690,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6434, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2707,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6435, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2688,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6436, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2679,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6437, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2700,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6438, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2703,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6439, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2709,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6440, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2700,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6441, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2679,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(6442, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2687,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6443, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2691,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6444, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2684,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6445, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2690,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6446, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2679,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6447, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2705,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6448, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2681,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6449, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2689,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6450, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2695,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6451, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2707,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6452, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2698,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6453, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2683,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6454, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2705,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6455, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2685,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6456, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2696,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6457, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2701,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6458, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2694,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6459, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2698,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6460, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2685,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6461, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2687,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6462, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2701,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6463, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2715,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}~{2677,1,1,0.0,RARE}', ''), +(6464, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2689,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6465, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2684,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6466, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2713,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6467, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2708,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6468, '{526,1,1,0.0,ALWAYS}', '{841,1,1,0.0,COMMON}~{882,28,28,0.0,COMMON}~{1422,1,1,0.0,COMMON}~{1389,1,1,0.0,COMMON}~{1379,1,1,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{555,68,68,0.0,COMMON}~{554,6,6,0.0,COMMON}~{557,6,6,0.0,COMMON}~{556,12,12,0.0,UNCOMMON}~{558,33,33,0.0,UNCOMMON}~{1438,1,1,0.0,UNCOMMON}~{1448,1,1,0.0,UNCOMMON}~{1440,1,1,0.0,RARE}~{1444,1,1,0.0,RARE}~{1442,1,1,0.0,RARE}~{1167,1,1,0.0,COMMON}~{1061,1,1,0.0,COMMON}~{1059,1,1,0.0,COMMON}~{1129,1,1,0.0,UNCOMMON}~{1103,1,1,0.0,UNCOMMON}~{1173,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1635,1,1,0.0,COMMON}~{1654,1,1,0.0,COMMON}~{1673,1,1,0.0,UNCOMMON}~{1718,1,1,0.0,UNCOMMON}~{1729,1,1,0.0,RARE}~{1727,1,1,0.0,RARE}~{436,1,1,0.0,UNCOMMON}~{438,2,2,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{995,225,225,0.0,COMMON}~{995,400,400,0.0,COMMON}~{1734,1042,1042,0.0,COMMON}~{314,10,10,0.0,COMMON}~{1741,1,1,0.0,COMMON}~{313,20,50,0.0,COMMON}', ''), +(6490, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2706,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6491, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2695,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6492, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2686,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6493, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2712,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6494, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2695,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6495, '{526,1,1,0.0,ALWAYS}', '{1203,1,1,0.0,COMMON}~{882,16,16,0.0,COMMON}~{877,8,8,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1237,1,1,0.0,COMMON}~{1173,1,1,0.0,COMMON}~{1103,1,1,0.0,UNCOMMON}~{1155,1,1,0.0,UNCOMMON}~{1189,1,1,0.0,UNCOMMON}~{1277,1,1,0.0,UNCOMMON}~{1291,1,1,0.0,UNCOMMON}~{1009,1,1,0.0,UNCOMMON}~{884,3,6,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1351,1,1,0.0,RARE}~{825,5,5,0.0,RARE}~{1321,1,1,0.0,RARE}~{1153,1,1,0.0,RARE}~{1141,1,1,0.0,RARE}~{1129,1,1,0.0,RARE}~{1917,1,1,0.0,COMMON}~{2307,1,1,0.0,COMMON}~{1965,1,1,0.0,COMMON}~{2138,1,1,0.0,UNCOMMON}~{556,2,10,0.0,COMMON}~{559,27,27,0.0,COMMON}~{557,4,4,0.0,RARE}~{555,6,6,0.0,COMMON}~{558,2,19,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{562,1,1,0.0,RARE}~{561,1,1,0.0,RARE}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{1438,1,1,0.0,COMMON}~{1949,1,1,0.0,COMMON}~{995,1,24,0.0,COMMON}~{288,1,1,0.0,COMMON}~{1440,1,1,0.0,UNCOMMON}~{1987,1,3,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{10999,1,1,0.0,UNCOMMON}~{7812,1,1,0.0,UNCOMMON}~{9057,1,1,0.0,UNCOMMON}~{9054,1,1,0.0,UNCOMMON}~{2712,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{1448,1,1,0.0,RARE}~{438,1,1,0.0,RARE}', ''), +(6498, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2835,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(6499, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2857,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(6500, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2823,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(6501, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2843,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(6502, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2839,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(6503, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2829,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(6512, '{532,1,1,0.0,ALWAYS}', '{1341,1,1,0.0,COMMON}~{1345,1,1,0.0,UNCOMMON}~{1361,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{1339,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,COMMON}~{1181,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{5291,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5300,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5304,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{995,35,35,0.0,COMMON}~{561,7,7,0.0,COMMON}~{557,25,25,0.0,COMMON}~{557,45,45,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{454,3,3,0.0,UNCOMMON}~{354,3,3,0.0,UNCOMMON}~{7884,1,1,0.0,COMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6513, '{532,1,1,0.0,ALWAYS}', '{1341,1,1,0.0,COMMON}~{1345,1,1,0.0,UNCOMMON}~{1361,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{1339,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,COMMON}~{1181,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{5291,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5300,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5304,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{995,35,35,0.0,COMMON}~{561,7,7,0.0,COMMON}~{557,25,25,0.0,COMMON}~{557,45,45,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{454,3,3,0.0,UNCOMMON}~{354,3,3,0.0,UNCOMMON}~{7884,1,1,0.0,COMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(6514, '{532,1,1,0.0,ALWAYS}', '{1341,1,1,0.0,COMMON}~{1345,1,1,0.0,UNCOMMON}~{1361,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{1339,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,COMMON}~{1181,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{5291,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5300,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5304,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{995,35,35,0.0,COMMON}~{561,7,7,0.0,COMMON}~{557,25,25,0.0,COMMON}~{557,45,45,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{454,3,3,0.0,UNCOMMON}~{354,3,3,0.0,UNCOMMON}~{7884,1,1,0.0,COMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6515, '{532,1,1,0.0,ALWAYS}', '{1341,1,1,0.0,COMMON}~{1345,1,1,0.0,UNCOMMON}~{1361,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{1339,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,COMMON}~{1181,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{5291,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5300,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5304,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{995,35,35,0.0,COMMON}~{561,7,7,0.0,COMMON}~{557,25,25,0.0,COMMON}~{557,45,45,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{454,3,3,0.0,UNCOMMON}~{354,3,3,0.0,UNCOMMON}~{7884,1,1,0.0,COMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6516, '{532,1,1,0.0,ALWAYS}', '{1341,1,1,0.0,COMMON}~{1345,1,1,0.0,UNCOMMON}~{1361,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{1339,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,COMMON}~{1181,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{5291,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5300,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5304,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{995,35,35,0.0,COMMON}~{561,7,7,0.0,COMMON}~{557,25,25,0.0,COMMON}~{557,45,45,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{454,3,3,0.0,UNCOMMON}~{354,3,3,0.0,UNCOMMON}~{7884,1,1,0.0,COMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6517, '{532,1,1,0.0,ALWAYS}', '{1341,1,1,0.0,COMMON}~{1345,1,1,0.0,UNCOMMON}~{1361,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{1339,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,COMMON}~{1181,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{5291,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5300,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5304,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{995,35,35,0.0,COMMON}~{561,7,7,0.0,COMMON}~{557,25,25,0.0,COMMON}~{557,45,45,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{454,3,3,0.0,UNCOMMON}~{354,3,3,0.0,UNCOMMON}~{7884,1,1,0.0,COMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6518, '{532,1,1,0.0,ALWAYS}', '{1341,1,1,0.0,COMMON}~{1345,1,1,0.0,UNCOMMON}~{1361,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{1339,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,COMMON}~{1181,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{5291,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5300,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5304,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{995,35,35,0.0,COMMON}~{561,7,7,0.0,COMMON}~{557,25,25,0.0,COMMON}~{557,45,45,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{454,3,3,0.0,UNCOMMON}~{354,3,3,0.0,UNCOMMON}~{7884,1,1,0.0,COMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6519, '{532,1,1,0.0,ALWAYS}', '{1341,1,1,0.0,COMMON}~{1345,1,1,0.0,UNCOMMON}~{1361,1,1,0.0,UNCOMMON}~{1141,1,1,0.0,UNCOMMON}~{1339,1,1,0.0,UNCOMMON}~{1145,1,1,0.0,COMMON}~{1181,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{5291,1,1,0.0,UNCOMMON}~{5292,1,1,0.0,UNCOMMON}~{5293,1,1,0.0,UNCOMMON}~{5294,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5295,1,1,0.0,UNCOMMON}~{12176,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5299,1,1,0.0,UNCOMMON}~{5300,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5321,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5304,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{995,35,35,0.0,COMMON}~{561,7,7,0.0,COMMON}~{557,25,25,0.0,COMMON}~{557,45,45,0.0,COMMON}~{563,2,2,0.0,UNCOMMON}~{454,3,3,0.0,UNCOMMON}~{354,3,3,0.0,UNCOMMON}~{7884,1,1,0.0,COMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6604, '{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6605, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6606, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6607, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6608, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6609, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6610, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6611, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6612, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6613, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6614, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6615, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(6616, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6617, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6618, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6619, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6620, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6621, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6622, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6623, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6624, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6625, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6626, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6627, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6628, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(6629, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6630, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6631, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6632, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6633, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6634, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6635, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6636, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6637, '{995,100,200,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6638, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6639, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6640, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6641, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(6642, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6643, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6644, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6645, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6646, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6647, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6648, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6649, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6650, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6651, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6652, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6653, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6654, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(6655, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6656, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6657, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6658, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6659, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6660, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6661, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6662, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6663, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6664, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6665, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6666, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6667, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(6668, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6669, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6670, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6671, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6672, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6673, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6674, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6675, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6676, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6677, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6678, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6679, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6680, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(6681, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6682, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6683, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6684, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6685, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6686, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6687, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6688, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6689, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6690, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6691, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6692, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6693, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(6694, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6695, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6696, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6697, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6698, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6699, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6700, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6701, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6702, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6703, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6704, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6705, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6706, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(6707, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6708, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6709, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6710, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6711, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6712, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6713, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6714, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6715, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6716, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6717, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6718, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6719, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(6720, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6721, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6722, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6723, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6724, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6725, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6726, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6727, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6728, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6729, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6730, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6753, '{592,1,1,0.0,ALWAYS}', '{1333,1,1,0.0,RARE}~{1185,1,1,0.0,UNCOMMON}~{4675,1,1,0.0,RARE}~{1673,1,1,0.0,COMMON}~{1654,1,1,0.0,COMMON}~{1635,1,1,0.0,COMMON}~{1696,1,1,0.0,COMMON}~{1639,1,1,0.0,COMMON}~{2566,1,1,0.0,UNCOMMON}~{1727,1,1,0.0,COMMON}~{1656,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,COMMON}~{11072,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,1,0.0,UNCOMMON}~{405,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,COMMON}~{444,1,1,0.0,COMMON}~{970,1,1,0.0,COMMON}~{9032,1,1,0.0,COMMON}~{1939,1,17,0.0,COMMON}~{950,1,1,0.0,COMMON}~{2007,10,10,0.0,RARE}~{2815,1,1,0.0,RARE}~{6808,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(6754, '{592,1,1,0.0,ALWAYS}', '{1333,1,1,0.0,RARE}~{1185,1,1,0.0,UNCOMMON}~{4675,1,1,0.0,RARE}~{1673,1,1,0.0,COMMON}~{1654,1,1,0.0,COMMON}~{1635,1,1,0.0,COMMON}~{1696,1,1,0.0,COMMON}~{1639,1,1,0.0,COMMON}~{2566,1,1,0.0,UNCOMMON}~{1727,1,1,0.0,COMMON}~{1656,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,COMMON}~{11072,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,1,0.0,UNCOMMON}~{405,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,COMMON}~{444,1,1,0.0,COMMON}~{970,1,1,0.0,COMMON}~{9032,1,1,0.0,COMMON}~{1939,1,17,0.0,COMMON}~{950,1,1,0.0,COMMON}~{2007,10,10,0.0,RARE}~{2811,1,1,0.0,RARE}~{6808,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(6755, '{592,1,1,0.0,ALWAYS}', '{1333,1,1,0.0,RARE}~{1185,1,1,0.0,UNCOMMON}~{4675,1,1,0.0,RARE}~{1673,1,1,0.0,COMMON}~{1654,1,1,0.0,COMMON}~{1635,1,1,0.0,COMMON}~{1696,1,1,0.0,COMMON}~{1639,1,1,0.0,COMMON}~{2566,1,1,0.0,UNCOMMON}~{1727,1,1,0.0,COMMON}~{1656,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,COMMON}~{11072,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,1,0.0,UNCOMMON}~{405,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,COMMON}~{444,1,1,0.0,COMMON}~{970,1,1,0.0,COMMON}~{9032,1,1,0.0,COMMON}~{1939,1,17,0.0,COMMON}~{950,1,1,0.0,COMMON}~{2007,10,10,0.0,RARE}~{2843,1,1,0.0,RARE}~{6808,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(6756, '{592,1,1,0.0,ALWAYS}', '{1333,1,1,0.0,RARE}~{1185,1,1,0.0,UNCOMMON}~{4675,1,1,0.0,RARE}~{1673,1,1,0.0,COMMON}~{1654,1,1,0.0,COMMON}~{1635,1,1,0.0,COMMON}~{1696,1,1,0.0,COMMON}~{1639,1,1,0.0,COMMON}~{2566,1,1,0.0,UNCOMMON}~{1727,1,1,0.0,COMMON}~{1656,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,COMMON}~{11072,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,1,0.0,UNCOMMON}~{405,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,COMMON}~{444,1,1,0.0,COMMON}~{970,1,1,0.0,COMMON}~{9032,1,1,0.0,COMMON}~{1939,1,17,0.0,COMMON}~{950,1,1,0.0,COMMON}~{2007,10,10,0.0,RARE}~{2841,1,1,0.0,RARE}~{6808,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(6757, '{592,1,1,0.0,ALWAYS}', '{1333,1,1,0.0,RARE}~{1185,1,1,0.0,UNCOMMON}~{4675,1,1,0.0,RARE}~{1673,1,1,0.0,COMMON}~{1654,1,1,0.0,COMMON}~{1635,1,1,0.0,COMMON}~{1696,1,1,0.0,COMMON}~{1639,1,1,0.0,COMMON}~{2566,1,1,0.0,UNCOMMON}~{1727,1,1,0.0,COMMON}~{1656,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,COMMON}~{11072,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,1,0.0,UNCOMMON}~{405,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,COMMON}~{444,1,1,0.0,COMMON}~{970,1,1,0.0,COMMON}~{9032,1,1,0.0,COMMON}~{1939,1,17,0.0,COMMON}~{950,1,1,0.0,COMMON}~{2007,10,10,0.0,RARE}~{2827,1,1,0.0,RARE}~{6808,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(6758, '{592,1,1,0.0,ALWAYS}', '{1333,1,1,0.0,RARE}~{1185,1,1,0.0,UNCOMMON}~{4675,1,1,0.0,RARE}~{1673,1,1,0.0,COMMON}~{1654,1,1,0.0,COMMON}~{1635,1,1,0.0,COMMON}~{1696,1,1,0.0,COMMON}~{1639,1,1,0.0,COMMON}~{2566,1,1,0.0,UNCOMMON}~{1727,1,1,0.0,COMMON}~{1656,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,COMMON}~{11072,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,1,0.0,UNCOMMON}~{405,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,COMMON}~{444,1,1,0.0,COMMON}~{970,1,1,0.0,COMMON}~{9032,1,1,0.0,COMMON}~{1939,1,17,0.0,COMMON}~{950,1,1,0.0,COMMON}~{2007,10,10,0.0,RARE}~{2847,1,1,0.0,RARE}~{6808,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(6759, '{592,1,1,0.0,ALWAYS}', '{1333,1,1,0.0,RARE}~{1185,1,1,0.0,UNCOMMON}~{4675,1,1,0.0,RARE}~{1673,1,1,0.0,COMMON}~{1654,1,1,0.0,COMMON}~{1635,1,1,0.0,COMMON}~{1696,1,1,0.0,COMMON}~{1639,1,1,0.0,COMMON}~{2566,1,1,0.0,UNCOMMON}~{1727,1,1,0.0,COMMON}~{1656,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,COMMON}~{11072,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,1,0.0,UNCOMMON}~{405,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,COMMON}~{444,1,1,0.0,COMMON}~{970,1,1,0.0,COMMON}~{9032,1,1,0.0,COMMON}~{1939,1,17,0.0,COMMON}~{950,1,1,0.0,COMMON}~{2007,10,10,0.0,RARE}~{2813,1,1,0.0,RARE}~{6808,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(6760, '{592,1,1,0.0,ALWAYS}', '{1333,1,1,0.0,RARE}~{1185,1,1,0.0,UNCOMMON}~{4675,1,1,0.0,RARE}~{1673,1,1,0.0,COMMON}~{1654,1,1,0.0,COMMON}~{1635,1,1,0.0,COMMON}~{1696,1,1,0.0,COMMON}~{1639,1,1,0.0,COMMON}~{2566,1,1,0.0,UNCOMMON}~{1727,1,1,0.0,COMMON}~{1656,1,1,0.0,UNCOMMON}~{1637,1,1,0.0,COMMON}~{11072,1,1,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{201,1,1,0.0,RARE}~{203,1,1,0.0,RARE}~{205,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,1,1,0.0,UNCOMMON}~{405,1,1,0.0,UNCOMMON}~{2357,1,1,0.0,COMMON}~{444,1,1,0.0,COMMON}~{970,1,1,0.0,COMMON}~{9032,1,1,0.0,COMMON}~{1939,1,17,0.0,COMMON}~{950,1,1,0.0,COMMON}~{2007,10,10,0.0,RARE}~{2819,1,1,0.0,RARE}~{6808,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.89,ALWAYS}~{12158,1,1,0.035,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.015,ALWAYS}~{12163,1,1,0.035,ALWAYS}'), +(6761, '{526,1,1,0.0,ALWAYS}', '{886,1,23,0.0,UNCOMMON}~{890,1,14,0.0,UNCOMMON}~{9142,1,14,0.0,COMMON}~{1321,1,1,0.0,COMMON}~{1323,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1329,1,1,0.0,UNCOMMON}~{1371,1,1,0.0,UNCOMMON}~{808,1,25,0.0,UNCOMMON}~{1241,1,1,0.0,COMMON}~{857,1,1,0.0,COMMON}~{565,3,3,0.0,UNCOMMON}~{560,1,10,0.0,COMMON}~{554,75,75,0.0,UNCOMMON}~{4699,25,25,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2354,3,3,0.0,COMMON}~{2357,1,1,0.0,COMMON}~{2356,3,3,0.0,UNCOMMON}~{442,1,1,0.0,UNCOMMON}~{2359,1,1,0.0,RARE}~{995,106,323,0.0,COMMON}~{1835,1,1,0.0,COMMON}~{1641,1,1,0.0,COMMON}~{161,1,1,0.0,COMMON}~{1833,1,1,0.0,COMMON}~{954,3,3,0.0,COMMON}~{946,1,1,0.0,COMMON}~{11986,1,1,0.0,UNCOMMON}~{9419,1,1,0.0,UNCOMMON}~{9737,3,3,0.0,RARE}~{9745,1,1,0.0,RARE}~{2831,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.8,ALWAYS}~{12158,1,1,0.065,ALWAYS}~{12159,1,1,0.035,ALWAYS}~{12160,1,1,0.035,ALWAYS}~{12163,1,1,0.065,ALWAYS}'), +(6762, '{526,1,1,0.0,ALWAYS}', '{886,1,23,0.0,UNCOMMON}~{890,1,14,0.0,UNCOMMON}~{9142,1,14,0.0,COMMON}~{1321,1,1,0.0,COMMON}~{1323,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1329,1,1,0.0,UNCOMMON}~{1371,1,1,0.0,UNCOMMON}~{808,1,25,0.0,UNCOMMON}~{1241,1,1,0.0,COMMON}~{857,1,1,0.0,COMMON}~{565,3,3,0.0,UNCOMMON}~{560,1,10,0.0,COMMON}~{554,75,75,0.0,UNCOMMON}~{4699,25,25,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2354,3,3,0.0,COMMON}~{2357,1,1,0.0,COMMON}~{2356,3,3,0.0,UNCOMMON}~{442,1,1,0.0,UNCOMMON}~{2359,1,1,0.0,RARE}~{995,106,323,0.0,COMMON}~{1835,1,1,0.0,COMMON}~{1641,1,1,0.0,COMMON}~{161,1,1,0.0,COMMON}~{1833,1,1,0.0,COMMON}~{954,3,3,0.0,COMMON}~{946,1,1,0.0,COMMON}~{11986,1,1,0.0,UNCOMMON}~{9419,1,1,0.0,UNCOMMON}~{9737,3,3,0.0,RARE}~{9745,1,1,0.0,RARE}~{2857,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.8,ALWAYS}~{12158,1,1,0.065,ALWAYS}~{12159,1,1,0.035,ALWAYS}~{12160,1,1,0.035,ALWAYS}~{12163,1,1,0.065,ALWAYS}'); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(6763, '{526,1,1,0.0,ALWAYS}', '{886,1,23,0.0,UNCOMMON}~{890,1,14,0.0,UNCOMMON}~{9142,1,14,0.0,COMMON}~{1321,1,1,0.0,COMMON}~{1323,1,1,0.0,COMMON}~{1325,1,1,0.0,COMMON}~{1329,1,1,0.0,UNCOMMON}~{1371,1,1,0.0,UNCOMMON}~{808,1,25,0.0,UNCOMMON}~{1241,1,1,0.0,COMMON}~{857,1,1,0.0,COMMON}~{565,3,3,0.0,UNCOMMON}~{560,1,10,0.0,COMMON}~{554,75,75,0.0,UNCOMMON}~{4699,25,25,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2354,3,3,0.0,COMMON}~{2357,1,1,0.0,COMMON}~{2356,3,3,0.0,UNCOMMON}~{442,1,1,0.0,UNCOMMON}~{2359,1,1,0.0,RARE}~{995,106,323,0.0,COMMON}~{1835,1,1,0.0,COMMON}~{1641,1,1,0.0,COMMON}~{161,1,1,0.0,COMMON}~{1833,1,1,0.0,COMMON}~{954,3,3,0.0,COMMON}~{946,1,1,0.0,COMMON}~{11986,1,1,0.0,UNCOMMON}~{9419,1,1,0.0,UNCOMMON}~{9737,3,3,0.0,RARE}~{9745,1,1,0.0,RARE}~{2801,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.8,ALWAYS}~{12158,1,1,0.065,ALWAYS}~{12159,1,1,0.035,ALWAYS}~{12160,1,1,0.035,ALWAYS}~{12163,1,1,0.065,ALWAYS}'), +(6764, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2837,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6765, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2807,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6766, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2835,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6767, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2813,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6768, '{526,1,1,0.0,ALWAYS}', '{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{1381,1,1,0.0,COMMON}~{1203,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{882,1,11,0.0,COMMON}~{1420,1,1,0.0,COMMON}~{1349,1,1,0.0,UNCOMMON}~{884,1,1,0.0,UNCOMMON}~{884,12,15,0.0,UNCOMMON}~{1279,1,1,0.0,UNCOMMON}~{1323,1,1,0.0,RARE}~{886,1,1,0.0,RARE}~{556,12,15,0.0,COMMON}~{555,2,9,0.0,COMMON}~{557,1,3,0.0,COMMON}~{554,2,2,0.0,COMMON}~{558,1,25,0.0,COMMON}~{562,3,8,0.0,UNCOMMON}~{561,1,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{563,2,2,0.0,UNCOMMON}~{560,1,50,0.0,RARE}~{995,1,65,0.0,COMMON}~{1925,1,1,0.0,UNCOMMON}~{2,3,3,0.0,UNCOMMON}~{1947,1,1,0.0,UNCOMMON}~{438,1,1,0.0,UNCOMMON}~{440,1,1,0.0,UNCOMMON}~{2349,1,1,0.0,UNCOMMON}~{1442,1,1,0.0,RARE}~{1623,1,1,0.0,RARE}~{4440,1,1,0.0,RARE}~{2809,1,1,0.0,RARE}~{121,1,1,0.0,UNCOMMON}~{3036,1,1,0.0,UNCOMMON}~{175,1,1,0.0,UNCOMMON}~{155,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(6773, '{526,1,1,0.0,ALWAYS}', '{1391,1,1,0.0,UNCOMMON}~{1199,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,RARE}~{830,5,5,0.0,RARE}~{554,1,1,0.0,COMMON}~{890,24,24,0.0,UNCOMMON}~{10143,8,8,0.0,UNCOMMON}~{562,1,1,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{4699,37,37,0.0,RARE}~{205,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{207,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{11986,1,1,0.0,COMMON}~{9735,3,3,0.0,UNCOMMON}~{371,1,1,0.0,UNCOMMON}~{2727,1,1,0.0,RARE}', '{0,1,1,0.46,ALWAYS}~{12158,1,1,0.31,ALWAYS}~{12159,1,1,0.07,ALWAYS}~{12160,1,1,0.105,ALWAYS}~{12163,1,1,0.055,ALWAYS}'), +(6774, '{526,1,1,0.0,ALWAYS}', '{1347,1,1,0.0,RARE}~{890,24,24,0.0,RARE}~{1199,1,1,0.0,RARE}~{1319,1,1,0.0,UNCOMMON}~{892,9,9,0.0,UNCOMMON}~{1373,1,1,0.0,UNCOMMON}~{1149,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1391,1,1,0.0,UNCOMMON}~{371,1,1,0.0,UNCOMMON}~{373,1,1,0.0,RARE}~{565,7,7,0.0,UNCOMMON}~{4699,20,20,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{2735,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{9735,3,3,0.0,RARE}~{987,1,1,0.0,RARE}~{10143,1,1,0.0,RARE}~{11986,1,1,0.0,UNCOMMON}~{985,1,1,0.0,UNCOMMON}~{1621,1,2,0.0,RARE}~{1621,1,1,0.0,RARE}~{1607,1,1,0.0,UNCOMMON}~{1605,1,2,0.0,UNCOMMON}~{1603,1,1,0.0,UNCOMMON}~{1823,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(6777, '{526,1,1,0.0,ALWAYS}~{11986,1,1,0.0,ALWAYS}', '{565,1,7,0.0,UNCOMMON}~{4699,20,20,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{890,24,24,0.0,UNCOMMON}~{1199,1,1,0.0,UNCOMMON}~{892,9,9,0.0,UNCOMMON}~{1185,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1373,1,1,0.0,UNCOMMON}~{1391,5,5,0.0,UNCOMMON}~{1623,1,2,0.0,UNCOMMON}~{1621,1,2,0.0,UNCOMMON}~{1619,1,2,0.0,UNCOMMON}~{1617,1,2,0.0,RARE}~{5280,1,1,0.0,UNCOMMON}~{2293,1,1,0.0,UNCOMMON}~{371,1,1,0.0,UNCOMMON}~{373,1,1,0.0,UNCOMMON}~{995,15,15,0.0,COMMON}~{995,29,29,0.0,COMMON}~{9735,3,3,0.0,UNCOMMON}~{2733,1,1,0.0,RARE}~{10143,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(6778, '{526,1,1,0.0,ALWAYS}', '{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,UNCOMMON}~{3389,1,1,0.0,UNCOMMON}~{3393,1,1,0.0,RARE}~{3391,1,1,0.0,UNCOMMON}~{1199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{561,30,30,0.0,UNCOMMON}~{4699,20,20,0.0,UNCOMMON}~{565,1,7,0.0,UNCOMMON}~{564,5,5,0.0,UNCOMMON}~{1391,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1373,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{890,24,24,0.0,UNCOMMON}~{892,9,9,0.0,UNCOMMON}~{9143,200,200,0.0,RARE}~{371,1,1,0.0,UNCOMMON}~{373,1,1,0.0,UNCOMMON}~{365,1,1,0.0,UNCOMMON}~{2293,1,1,0.0,UNCOMMON}~{9052,1,1,0.0,UNCOMMON}~{363,1,1,0.0,COMMON}~{995,60,500,0.0,UNCOMMON}~{11986,1,1,0.0,UNCOMMON}~{1623,1,2,0.0,UNCOMMON}~{1621,1,2,0.0,UNCOMMON}~{9735,3,3,0.0,UNCOMMON}~{2727,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(6792, '{526,1,1,0.0,ALWAYS}', '{7911,1,1,0.0,UNCOMMON}~{11965,1,1,0.0,RARE}', ''), +(6943, '{3186,1,1,0.0,ALWAYS}~{3166,1,1,0.0,ALWAYS}', '{7856,1,1,0.0,COMMON}', '{0,1,1,1.0,ALWAYS}~{12158,1,1,-0.006,ALWAYS}~{12159,1,1,0.002,ALWAYS}~{12160,1,1,0.002,ALWAYS}~{12163,1,1,0.002,ALWAYS}'), +(6945, '{526,1,1,0.0,ALWAYS}', '{7911,1,1,0.0,UNCOMMON}~{11965,1,1,0.0,RARE}', ''), +(6946, '{526,1,1,0.0,ALWAYS}', '{7911,1,1,0.0,UNCOMMON}~{11965,1,1,0.0,RARE}', ''), +(6998, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(6999, '{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}~{995,100,250,0.0,ALWAYS}', '{1149,1,1,0.0,RARE}~{1187,1,1,0.0,RARE}~{1215,1,1,0.0,RARE}~{1249,1,1,0.0,RARE}~{1305,1,1,0.0,RARE}~{1377,1,1,0.0,RARE}~{1434,1,1,0.0,RARE}~{3204,1,1,0.0,RARE}~{4087,1,1,0.0,RARE}~{4585,1,1,0.0,RARE}~{4587,1,1,0.0,RARE}~{7158,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{1712,1,1,0.0,RARE}~{2572,1,1,0.0,RARE}~{11126,1,1,0.0,RARE}~{11732,1,1,0.0,RARE}~{1079,1,1,0.0,UNCOMMON}~{1093,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{1127,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,COMMON}~{1163,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{1201,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,COMMON}~{1275,1,1,0.0,UNCOMMON}~{1289,1,1,0.0,COMMON}~{1303,1,1,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{1347,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,COMMON}~{1373,1,1,0.0,UNCOMMON}~{1432,1,1,0.0,UNCOMMON}~{7937,100,1000,0.0,UNCOMMON}~{563,50,500,0.0,UNCOMMON}~{565,50,500,0.0,UNCOMMON}~{560,50,500,0.0,UNCOMMON}~{454,50,250,0.0,UNCOMMON}~{2677,1,1,0.0,UNCOMMON}~{1602,1,50,0.0,UNCOMMON}~{2358,10,125,0.0,UNCOMMON}~{114,5,15,0.0,COMMON}~{208,1,15,0.0,UNCOMMON}~{450,10,75,0.0,COMMON}~{452,1,5,0.0,RARE}~{3050,5,15,0.0,UNCOMMON}~{232,10,500,0.0,UNCOMMON}~{554,20,500,0.0,COMMON}~{555,10,500,0.0,COMMON}~{556,10,500,0.0,COMMON}~{1516,5,10,0.0,UNCOMMON}~{31,1,1,0.0,RARE}~{392,20,250,0.0,UNCOMMON}~{995,100,1000,0.0,COMMON}~{5315,1,5,0.0,RARE}~{5316,1,5,0.0,RARE}~{5300,1,5,0.0,RARE}~{5289,1,10,0.0,COMMON}~{5288,1,10,0.0,COMMON}~{5318,1,50,0.0,COMMON}~{9144,100,100,0.0,UNCOMMON}~{9143,300,300,0.0,UNCOMMON}~{892,150,150,0.0,UNCOMMON}~{441,100,500,0.0,UNCOMMON}~{12183,1000,15000,0.0,UNCOMMON}~{386,50,100,0.0,UNCOMMON}~{7061,5,20,0.0,UNCOMMON}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(7003, '{532,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1181,1,1,0.0,COMMON}~{1393,1,1,0.0,UNCOMMON}~{892,12,42,0.0,UNCOMMON}~{1333,1,1,0.0,RARE}~{1373,1,1,0.0,RARE}~{554,37,37,0.0,COMMON}~{554,50,50,0.0,COMMON}~{554,150,150,0.0,COMMON}~{562,5,5,0.0,UNCOMMON}~{565,5,5,0.0,UNCOMMON}~{563,24,24,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{211,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,15,15,0.0,COMMON}~{995,25,25,0.0,COMMON}~{7872,1,1,0.0,COMMON}~{379,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,UNCOMMON}~{117,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{987,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.31,ALWAYS}~{12158,1,1,0.55,ALWAYS}~{12159,1,1,0.07,ALWAYS}~{12160,1,1,0.05,ALWAYS}~{12163,1,1,0.02,ALWAYS}'), +(7004, '{532,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1181,1,1,0.0,COMMON}~{1393,1,1,0.0,UNCOMMON}~{892,12,42,0.0,UNCOMMON}~{1333,1,1,0.0,RARE}~{1373,1,1,0.0,RARE}~{554,37,37,0.0,COMMON}~{554,50,50,0.0,COMMON}~{554,150,150,0.0,COMMON}~{562,5,5,0.0,UNCOMMON}~{565,5,5,0.0,UNCOMMON}~{563,24,24,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{211,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,15,15,0.0,COMMON}~{995,25,25,0.0,COMMON}~{7872,1,1,0.0,COMMON}~{379,1,1,0.0,UNCOMMON}~{2353,1,1,0.0,UNCOMMON}~{117,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}~{987,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.31,ALWAYS}~{12158,1,1,0.55,ALWAYS}~{12159,1,1,0.07,ALWAYS}~{12160,1,1,0.05,ALWAYS}~{12163,1,1,0.02,ALWAYS}'), +(7078, '{532,1,1,0.0,ALWAYS}', '{12570,1,1,0.0,COMMON}~{1239,1,1,0.0,COMMON}~{2745,1,1,0.0,RARE}', '{0,1,1,0.135,ALWAYS}~{12158,1,1,0.791,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.025,ALWAYS}~{12163,1,1,0.008,ALWAYS}'), +(7079, '{532,1,1,0.0,ALWAYS}', '{1239,1,1,0.0,COMMON}~{12570,1,1,0.0,COMMON}~{10976,1,1,0.0,RARE}', '{0,1,1,0.535,ALWAYS}~{12158,1,1,0.368,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.026000000000000002,ALWAYS}'), +(7080, '{532,1,1,0.0,ALWAYS}', '{1239,1,1,0.0,COMMON}~{12570,1,1,0.0,COMMON}~{10976,1,1,0.0,RARE}', '{0,1,1,0.535,ALWAYS}~{12158,1,1,0.368,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.03,ALWAYS}~{12163,1,1,0.026000000000000002,ALWAYS}'), +(7081, '{532,1,1,0.0,ALWAYS}', '{12570,1,1,0.0,UNCOMMON}~{1239,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}', '{0,1,1,0.53,ALWAYS}~{12158,1,1,0.379,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.045,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(7082, '{532,1,1,0.0,ALWAYS}', '{12570,1,1,0.0,UNCOMMON}~{1239,1,1,0.0,UNCOMMON}~{10976,1,1,0.0,RARE}~{10977,1,1,0.0,RARE}', '{0,1,1,0.53,ALWAYS}~{12158,1,1,0.379,ALWAYS}~{12159,1,1,0.04,ALWAYS}~{12160,1,1,0.045,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(7105, '{526,1,1,0.0,ALWAYS}', '{199,1,2,0.0,COMMON}~{201,1,2,0.0,COMMON}~{203,1,2,0.0,COMMON}~{205,1,2,0.0,COMMON}~{211,1,2,0.0,UNCOMMON}~{209,1,2,0.0,UNCOMMON}~{213,1,2,0.0,UNCOMMON}~{207,1,2,0.0,UNCOMMON}~{2485,1,2,0.0,UNCOMMON}~{217,1,2,0.0,UNCOMMON}~{215,1,2,0.0,UNCOMMON}~{219,1,2,0.0,RARE}~{563,2,2,0.0,COMMON}~{559,9,9,0.0,COMMON}~{556,9,36,0.0,COMMON}~{557,9,9,0.0,COMMON}~{558,12,12,0.0,COMMON}~{561,3,3,0.0,UNCOMMON}~{995,2,2,0.0,COMMON}~{995,3,3,0.0,COMMON}~{9142,2,12,0.0,COMMON}~{227,1,1,0.0,COMMON}~{1291,1,1,0.0,UNCOMMON}~{231,1,1,0.0,RARE}~{1594,1,1,0.0,RARE}~{1454,1,1,0.0,RARE}~{1137,1,1,0.0,RARE}~{1627,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(7106, '{526,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{1363,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1309,1,1,0.0,RARE}~{1203,1,1,0.0,RARE}~{561,2,4,0.0,COMMON}~{562,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{560,2,2,0.0,UNCOMMON}~{563,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{2351,1,1,0.0,COMMON}~{440,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2701,1,1,0.0,RARE}~{167,1,1,0.0,RARE}~{161,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.865,ALWAYS}~{12158,1,1,0.114,ALWAYS}~{12159,1,1,0.009000000000000001,ALWAYS}~{12160,1,1,0.007,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(7107, '{526,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{1363,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1309,1,1,0.0,RARE}~{1203,1,1,0.0,RARE}~{561,2,4,0.0,COMMON}~{562,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{560,2,2,0.0,UNCOMMON}~{563,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{2351,1,1,0.0,COMMON}~{440,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2698,1,1,0.0,RARE}~{167,1,1,0.0,RARE}~{161,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.865,ALWAYS}~{12158,1,1,0.114,ALWAYS}~{12159,1,1,0.009000000000000001,ALWAYS}~{12160,1,1,0.007,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(7108, '{526,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{1363,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1309,1,1,0.0,RARE}~{1203,1,1,0.0,RARE}~{561,2,4,0.0,COMMON}~{562,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{560,2,2,0.0,UNCOMMON}~{563,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{2351,1,1,0.0,COMMON}~{440,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2697,1,1,0.0,RARE}~{167,1,1,0.0,RARE}~{161,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.865,ALWAYS}~{12158,1,1,0.114,ALWAYS}~{12159,1,1,0.009000000000000001,ALWAYS}~{12160,1,1,0.007,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(7109, '{526,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{1363,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1309,1,1,0.0,RARE}~{1203,1,1,0.0,RARE}~{561,2,4,0.0,COMMON}~{562,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{560,2,2,0.0,UNCOMMON}~{563,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{2351,1,1,0.0,COMMON}~{440,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2701,1,1,0.0,RARE}~{167,1,1,0.0,RARE}~{161,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.865,ALWAYS}~{12158,1,1,0.114,ALWAYS}~{12159,1,1,0.009000000000000001,ALWAYS}~{12160,1,1,0.007,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(7110, '{526,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{1363,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1309,1,1,0.0,RARE}~{1203,1,1,0.0,RARE}~{561,2,4,0.0,COMMON}~{562,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{560,2,2,0.0,UNCOMMON}~{563,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{2351,1,1,0.0,COMMON}~{440,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2695,1,1,0.0,RARE}~{167,1,1,0.0,RARE}~{161,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.865,ALWAYS}~{12158,1,1,0.114,ALWAYS}~{12159,1,1,0.009000000000000001,ALWAYS}~{12160,1,1,0.007,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(7111, '{526,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{1363,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1309,1,1,0.0,RARE}~{1203,1,1,0.0,RARE}~{561,2,4,0.0,COMMON}~{562,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{560,2,2,0.0,UNCOMMON}~{563,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{2351,1,1,0.0,COMMON}~{440,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2689,1,1,0.0,RARE}~{167,1,1,0.0,RARE}~{161,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.865,ALWAYS}~{12158,1,1,0.114,ALWAYS}~{12159,1,1,0.009000000000000001,ALWAYS}~{12160,1,1,0.007,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(7112, '{526,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{1363,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1309,1,1,0.0,RARE}~{1203,1,1,0.0,RARE}~{561,2,4,0.0,COMMON}~{562,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{560,2,2,0.0,UNCOMMON}~{563,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{2351,1,1,0.0,COMMON}~{440,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2681,1,1,0.0,RARE}~{167,1,1,0.0,RARE}~{161,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.865,ALWAYS}~{12158,1,1,0.114,ALWAYS}~{12159,1,1,0.009000000000000001,ALWAYS}~{12160,1,1,0.007,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(7113, '{526,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{1363,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1309,1,1,0.0,RARE}~{1203,1,1,0.0,RARE}~{561,2,4,0.0,COMMON}~{562,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{560,2,2,0.0,UNCOMMON}~{563,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{2351,1,1,0.0,COMMON}~{440,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2686,1,1,0.0,RARE}~{167,1,1,0.0,RARE}~{161,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.865,ALWAYS}~{12158,1,1,0.114,ALWAYS}~{12159,1,1,0.009000000000000001,ALWAYS}~{12160,1,1,0.007,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(7114, '{526,1,1,0.0,ALWAYS}', '{1353,1,1,0.0,COMMON}~{1137,1,1,0.0,COMMON}~{1363,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1309,1,1,0.0,RARE}~{1203,1,1,0.0,RARE}~{561,2,4,0.0,COMMON}~{562,2,2,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{560,2,2,0.0,UNCOMMON}~{563,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{995,8,8,0.0,COMMON}~{2351,1,1,0.0,COMMON}~{440,1,1,0.0,UNCOMMON}~{453,1,1,0.0,UNCOMMON}~{2714,1,1,0.0,RARE}~{167,1,1,0.0,RARE}~{161,1,1,0.0,RARE}~{31,1,1,0.0,RARE}~{2677,1,1,0.0,RARE}', '{0,1,1,0.865,ALWAYS}~{12158,1,1,0.114,ALWAYS}~{12159,1,1,0.009000000000000001,ALWAYS}~{12160,1,1,0.007,ALWAYS}~{12163,1,1,0.004,ALWAYS}'), +(7120, '{526,1,1,0.0,ALWAYS}', '{1311,1,1,0.0,UNCOMMON}~{1365,1,1,0.0,UNCOMMON}~{1353,1,1,0.0,UNCOMMON}~{1197,1,1,0.0,COMMON}~{1163,1,1,0.0,UNCOMMON}~{1073,1,1,0.0,UNCOMMON}~{1135,1,1,0.0,UNCOMMON}~{1065,1,1,0.0,UNCOMMON}~{1099,1,1,0.0,UNCOMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,RARE}~{995,1,220,0.0,COMMON}~{554,75,75,0.0,UNCOMMON}~{2357,1,1,0.0,UNCOMMON}~{361,1,1,0.0,UNCOMMON}~{562,15,15,0.0,UNCOMMON}~{1734,10,10,0.0,UNCOMMON}~{2727,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(7128, '{526,1,1,0.0,ALWAYS}', '{5345,1,1,0.0,RARE}~{5341,1,1,0.0,UNCOMMON}~{5329,1,1,0.0,COMMON}~{5331,1,1,0.0,RARE}~{5324,4,4,0.0,UNCOMMON}~{5323,4,4,0.0,COMMON}~{5318,1,4,0.0,COMMON}~{5322,4,4,0.0,UNCOMMON}~{5321,4,4,0.0,UNCOMMON}~{12148,4,4,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{562,2,2,0.0,UNCOMMON}~{556,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{882,7,7,0.0,UNCOMMON}~{877,3,12,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{5320,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{217,1,1,0.0,UNCOMMON}~{5319,1,1,0.0,UNCOMMON}~{2687,1,1,0.0,RARE}~{995,3,15,0.0,COMMON}', ''), +(7129, '{526,1,1,0.0,ALWAYS}', '{5345,1,1,0.0,RARE}~{5341,1,1,0.0,UNCOMMON}~{5329,1,1,0.0,COMMON}~{5331,1,1,0.0,RARE}~{5324,4,4,0.0,UNCOMMON}~{5323,4,4,0.0,COMMON}~{5318,1,4,0.0,COMMON}~{5322,4,4,0.0,UNCOMMON}~{5321,4,4,0.0,UNCOMMON}~{12148,4,4,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{562,2,2,0.0,UNCOMMON}~{556,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{882,7,7,0.0,UNCOMMON}~{877,3,12,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{5320,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{217,1,1,0.0,UNCOMMON}~{5319,1,1,0.0,UNCOMMON}~{2698,1,1,0.0,RARE}~{995,3,15,0.0,COMMON}', ''), +(7130, '{526,1,1,0.0,ALWAYS}', '{5345,1,1,0.0,RARE}~{5341,1,1,0.0,UNCOMMON}~{5329,1,1,0.0,COMMON}~{5331,1,1,0.0,RARE}~{5324,4,4,0.0,UNCOMMON}~{5323,4,4,0.0,COMMON}~{5318,1,4,0.0,COMMON}~{5322,4,4,0.0,UNCOMMON}~{5321,4,4,0.0,UNCOMMON}~{12148,4,4,0.0,UNCOMMON}~{1965,1,1,0.0,UNCOMMON}~{313,1,1,0.0,UNCOMMON}~{562,2,2,0.0,UNCOMMON}~{556,4,4,0.0,UNCOMMON}~{554,6,6,0.0,UNCOMMON}~{558,9,9,0.0,UNCOMMON}~{1440,1,1,0.0,UNCOMMON}~{882,7,7,0.0,UNCOMMON}~{877,3,12,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{1203,1,1,0.0,UNCOMMON}~{436,1,1,0.0,UNCOMMON}~{207,1,1,0.0,RARE}~{5320,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{217,1,1,0.0,UNCOMMON}~{5319,1,1,0.0,UNCOMMON}~{2712,1,1,0.0,RARE}~{995,3,15,0.0,COMMON}', ''), +(7133, '', '{2741,1,1,0.0,RARE}~{1147,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}', ''), +(7134, '', '{2723,1,1,0.0,RARE}~{12158,10,10,0.0,RARE}~{1147,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(7135, '', '{2739,1,1,0.0,RARE}', ''), +(7138, '', '{14497,1,1,0.0,VERY_RARE}~{14499,1,1,0.0,VERY_RARE}~{14501,1,1,0.0,VERY_RARE}~{557,10,10,0.0,COMMON}~{557,18,18,0.0,COMMON}~{556,10,36,0.0,COMMON}~{559,10,36,0.0,COMMON}~{554,10,36,0.0,COMMON}~{555,10,18,0.0,COMMON}~{558,10,10,0.0,COMMON}~{558,18,18,0.0,COMMON}~{561,4,4,0.0,UNCOMMON}~{562,4,4,0.0,UNCOMMON}~{563,3,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{565,2,2,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{1444,1,1,0.0,UNCOMMON}~{1379,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}', ''), +(7139, '', '{14497,1,1,0.0,VERY_RARE}~{14499,1,1,0.0,VERY_RARE}~{14501,1,1,0.0,VERY_RARE}~{557,10,10,0.0,COMMON}~{557,18,18,0.0,COMMON}~{556,10,36,0.0,COMMON}~{559,10,36,0.0,COMMON}~{554,10,36,0.0,COMMON}~{555,10,18,0.0,COMMON}~{558,10,10,0.0,COMMON}~{558,18,18,0.0,COMMON}~{561,4,4,0.0,UNCOMMON}~{562,4,4,0.0,UNCOMMON}~{563,3,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{565,2,2,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{1444,1,1,0.0,UNCOMMON}~{1379,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}', ''), +(7140, '', '{14497,1,1,0.0,VERY_RARE}~{14499,1,1,0.0,VERY_RARE}~{14501,1,1,0.0,VERY_RARE}~{557,10,10,0.0,COMMON}~{557,18,18,0.0,COMMON}~{556,10,36,0.0,COMMON}~{559,10,36,0.0,COMMON}~{554,10,36,0.0,COMMON}~{555,10,18,0.0,COMMON}~{558,10,10,0.0,COMMON}~{558,18,18,0.0,COMMON}~{561,4,4,0.0,UNCOMMON}~{562,4,4,0.0,UNCOMMON}~{563,3,3,0.0,UNCOMMON}~{564,2,2,0.0,UNCOMMON}~{565,2,2,0.0,UNCOMMON}~{1442,1,1,0.0,UNCOMMON}~{1444,1,1,0.0,UNCOMMON}~{1379,1,1,0.0,UNCOMMON}~{1213,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,UNCOMMON}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}', ''), +(7142, '{526,1,1,0.0,ALWAYS}', '{5318,4,6,0.0,COMMON}~{5319,4,4,0.0,COMMON}~{5324,4,4,0.0,UNCOMMON}~{5322,3,4,0.0,UNCOMMON}~{5320,3,3,0.0,RARE}~{5323,1,4,0.0,RARE}~{5321,2,4,0.0,RARE}~{556,6,6,0.0,COMMON}~{557,3,6,0.0,COMMON}~{554,2,2,0.0,COMMON}~{1446,1,1,0.0,COMMON}~{1458,1,1,0.0,UNCOMMON}~{565,1,4,0.0,RARE}~{561,1,1,0.0,RARE}~{562,1,2,0.0,RARE}~{1203,1,1,0.0,COMMON}~{1339,1,1,0.0,RARE}~{884,12,12,0.0,COMMON}~{9140,2,18,0.0,COMMON}~{882,125,125,0.0,UNCOMMON}~{886,1,11,0.0,UNCOMMON}~{199,1,1,0.0,RARE}~{995,1,1,0.0,COMMON}~{995,2,2,0.0,COMMON}~{1987,3,3,0.0,COMMON}~{2347,1,1,0.0,UNCOMMON}~{1947,1,1,0.0,RARE}~{1947,4,4,0.0,RARE}~{440,1,1,0.0,RARE}~{2801,1,1,0.0,RARE}~{1115,1,1,0.0,RARE}~{2353,1,1,0.0,RARE}~{2434,1,1,0.0,RARE}~{173,1,1,0.0,RARE}', ''), +(7158, '', '{1205,1,1,0.0,UNCOMMON}~{1139,1,1,0.0,UNCOMMON}~{556,1,10,0.0,COMMON}~{554,1,11,0.0,COMMON}~{555,1,8,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,10,30,0.0,COMMON}~{454,2,2,0.0,COMMON}~{225,1,1,0.0,UNCOMMON}~{223,1,1,0.0,UNCOMMON}~{1621,1,1,0.0,UNCOMMON}~{1617,1,1,0.0,UNCOMMON}~{1607,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(7159, '', '{1165,1,1,0.0,COMMON}~{1181,1,1,0.0,UNCOMMON}~{1391,1,1,0.0,UNCOMMON}~{1121,1,1,0.0,RARE}~{1333,1,1,0.0,VERY_RARE}~{209,1,1,0.0,COMMON}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{207,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{213,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{448,2,3,0.0,COMMON}~{454,1,2,0.0,UNCOMMON}~{564,1,2,0.0,COMMON}~{561,1,20,0.0,COMMON}~{562,1,18,0.0,COMMON}~{557,1,22,0.0,COMMON}~{31,1,1,0.0,RARE}', ''), +(7160, '', '{1143,1,1,0.0,UNCOMMON}~{1185,1,1,0.0,UNCOMMON}~{1333,1,1,0.0,VERY_RARE}~{1165,1,1,0.0,RARE}~{560,1,15,0.0,COMMON}~{563,1,20,0.0,COMMON}~{554,1,65,0.0,COMMON}~{565,1,16,0.0,UNCOMMON}~{5104,1,1,0.0,UNCOMMON}~{5311,1,1,0.0,UNCOMMON}~{5100,1,1,0.0,UNCOMMON}~{5323,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,RARE}~{5281,1,1,0.0,RARE}~{5280,1,1,0.0,RARE}~{5301,1,1,0.0,RARE}~{5297,1,1,0.0,RARE}~{5299,1,1,0.0,RARE}~{5292,1,1,0.0,RARE}~{5106,1,1,0.0,RARE}~{5293,1,1,0.0,RARE}~{5296,1,1,0.0,RARE}~{5105,1,1,0.0,RARE}~{5294,1,1,0.0,RARE}~{12176,1,1,0.0,RARE}~{5295,1,1,0.0,RARE}~{5303,1,1,0.0,RARE}~{5302,1,1,0.0,RARE}~{5321,1,1,0.0,RARE}~{448,3,3,0.0,COMMON}~{450,1,1,0.0,UNCOMMON}~{1623,1,1,0.0,UNCOMMON}~{1621,1,1,0.0,UNCOMMON}~{1619,1,1,0.0,RARE}~{1617,1,1,0.0,RARE}~{995,5,493,0.0,COMMON}~{2679,1,1,0.0,RARE}~{2841,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(7161, '{526,1,1,0.0,ALWAYS}', '{877,4,11,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1139,1,1,0.0,RARE}~{555,6,6,0.0,UNCOMMON}~{557,5,5,0.0,UNCOMMON}~{558,9,9,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,5,5,0.0,COMMON}~{995,10,10,0.0,COMMON}~{954,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{313,1,1,0.0,COMMON}~{1965,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{2682,1,1,0.0,RARE}', ''), +(7162, '{526,1,1,0.0,ALWAYS}', '{877,4,11,0.0,UNCOMMON}~{1381,1,1,0.0,RARE}~{1139,1,1,0.0,RARE}~{555,6,6,0.0,UNCOMMON}~{557,5,5,0.0,UNCOMMON}~{558,9,9,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,RARE}~{215,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,5,5,0.0,COMMON}~{995,10,10,0.0,COMMON}~{954,1,1,0.0,COMMON}~{436,1,1,0.0,COMMON}~{313,1,1,0.0,COMMON}~{1965,1,1,0.0,UNCOMMON}~{946,1,1,0.0,RARE}~{2713,1,1,0.0,RARE}', ''), +(7207, '', '', '{0,1,1,0.92,ALWAYS}~{12158,1,1,0.02,ALWAYS}~{12159,1,1,0.034,ALWAYS}~{12160,1,1,0.013000000000000001,ALWAYS}~{12163,1,1,0.013000000000000001,ALWAYS}'), +(7211, '{3186,1,1,0.0,ALWAYS}~{3166,1,1,0.0,ALWAYS}', '{7856,1,1,0.0,COMMON}', '{0,1,1,1.0,ALWAYS}~{12158,1,1,-0.006,ALWAYS}~{12159,1,1,0.002,ALWAYS}~{12160,1,1,0.002,ALWAYS}~{12163,1,1,0.002,ALWAYS}'), +(7213, '{3186,1,1,0.0,ALWAYS}~{3166,1,1,0.0,ALWAYS}', '{7856,1,1,0.0,COMMON}', '{0,1,1,1.0,ALWAYS}~{12158,1,1,-0.006,ALWAYS}~{12159,1,1,0.002,ALWAYS}~{12160,1,1,0.002,ALWAYS}~{12163,1,1,0.002,ALWAYS}'), +(7215, '{3186,1,1,0.0,ALWAYS}~{3166,1,1,0.0,ALWAYS}', '{7856,1,1,0.0,COMMON}', '{0,1,1,1.0,ALWAYS}~{12158,1,1,-0.006,ALWAYS}~{12159,1,1,0.002,ALWAYS}~{12160,1,1,0.002,ALWAYS}~{12163,1,1,0.002,ALWAYS}'), +(7217, '{3186,1,1,0.0,ALWAYS}~{3166,1,1,0.0,ALWAYS}', '{7856,1,1,0.0,COMMON}', '{0,1,1,1.0,ALWAYS}~{12158,1,1,-0.006,ALWAYS}~{12159,1,1,0.002,ALWAYS}~{12160,1,1,0.002,ALWAYS}~{12163,1,1,0.002,ALWAYS}'), +(7219, '{3186,1,1,0.0,ALWAYS}~{3166,1,1,0.0,ALWAYS}', '{7856,1,1,0.0,COMMON}', '{0,1,1,1.0,ALWAYS}~{12158,1,1,-0.006,ALWAYS}~{12159,1,1,0.002,ALWAYS}~{12160,1,1,0.002,ALWAYS}~{12163,1,1,0.002,ALWAYS}'), +(7221, '{3186,1,1,0.0,ALWAYS}~{3166,1,1,0.0,ALWAYS}', '{7856,1,1,0.0,COMMON}', '{0,1,1,1.0,ALWAYS}~{12158,1,1,-0.006,ALWAYS}~{12159,1,1,0.002,ALWAYS}~{12160,1,1,0.002,ALWAYS}~{12163,1,1,0.002,ALWAYS}'), +(7223, '{3186,1,1,0.0,ALWAYS}~{3166,1,1,0.0,ALWAYS}', '{7856,1,1,0.0,COMMON}', '{0,1,1,1.0,ALWAYS}~{12158,1,1,-0.006,ALWAYS}~{12159,1,1,0.002,ALWAYS}~{12160,1,1,0.002,ALWAYS}~{12163,1,1,0.002,ALWAYS}'), +(7225, '{3186,1,1,0.0,ALWAYS}~{3166,1,1,0.0,ALWAYS}', '{7856,1,1,0.0,COMMON}', '{0,1,1,1.0,ALWAYS}~{12158,1,1,-0.006,ALWAYS}~{12159,1,1,0.002,ALWAYS}~{12160,1,1,0.002,ALWAYS}~{12163,1,1,0.002,ALWAYS}'), +(7227, '{3186,1,1,0.0,ALWAYS}~{3166,1,1,0.0,ALWAYS}', '{7856,1,1,0.0,COMMON}', '{0,1,1,1.0,ALWAYS}~{12158,1,1,-0.006,ALWAYS}~{12159,1,1,0.002,ALWAYS}~{12160,1,1,0.002,ALWAYS}~{12163,1,1,0.002,ALWAYS}'), +(7319, '{526,1,1,0.0,ALWAYS}', '{7911,1,1,0.0,UNCOMMON}~{11965,1,1,0.0,RARE}', ''), +(7320, '{526,1,1,0.0,ALWAYS}', '{7911,1,1,0.0,UNCOMMON}~{11965,1,1,0.0,RARE}', ''), +(7321, '{526,1,1,0.0,ALWAYS}', '{7911,1,1,0.0,UNCOMMON}~{11965,1,1,0.0,RARE}', ''), +(7322, '{526,1,1,0.0,ALWAYS}', '{7911,1,1,0.0,UNCOMMON}~{11965,1,1,0.0,RARE}', ''), +(7323, '{526,1,1,0.0,ALWAYS}', '{7911,1,1,0.0,UNCOMMON}~{11965,1,1,0.0,RARE}', ''), +(7324, '{526,1,1,0.0,ALWAYS}', '{7911,1,1,0.0,UNCOMMON}~{11965,1,1,0.0,RARE}', ''), +(7325, '{526,1,1,0.0,ALWAYS}', '{7911,1,1,0.0,UNCOMMON}~{11965,1,1,0.0,RARE}', ''), +(7326, '{526,1,1,0.0,ALWAYS}', '{7911,1,1,0.0,UNCOMMON}~{11965,1,1,0.0,RARE}', ''), +(7327, '{526,1,1,0.0,ALWAYS}', '{7911,1,1,0.0,UNCOMMON}~{11965,1,1,0.0,RARE}', ''), +(7328, '{526,1,1,0.0,ALWAYS}', '{7911,1,1,0.0,UNCOMMON}~{11965,1,1,0.0,RARE}', ''), +(7438, '{526,1,1,0.0,ALWAYS}', '{555,70,70,0.0,COMMON}~{554,37,37,0.0,UNCOMMON}~{563,1,3,0.0,UNCOMMON}~{561,12,12,0.0,UNCOMMON}~{1243,1,1,0.0,COMMON}~{1213,1,1,0.0,UNCOMMON}~{1197,1,1,0.0,COMMON}~{1099,1,1,0.0,COMMON}~{1135,1,1,0.0,COMMON}~{1065,1,1,0.0,COMMON}~{1161,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,RARE}~{365,1,1,0.0,UNCOMMON}~{385,1,1,0.0,UNCOMMON}~{379,1,1,0.0,UNCOMMON}~{397,1,1,0.0,RARE}~{391,1,1,0.0,RARE}~{5299,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,20,427,0.0,COMMON}~{6103,1,1,0.0,COMMON}~{449,1,1,0.0,UNCOMMON}~{6102,1,1,0.0,RARE}~{2743,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.615,ALWAYS}~{12158,1,1,0.08,ALWAYS}~{12159,1,1,0.23500000000000001,ALWAYS}~{12160,1,1,0.055,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7439, '{526,1,1,0.0,ALWAYS}', '{555,70,70,0.0,COMMON}~{554,37,37,0.0,UNCOMMON}~{563,1,3,0.0,UNCOMMON}~{561,12,12,0.0,UNCOMMON}~{1243,1,1,0.0,COMMON}~{1213,1,1,0.0,UNCOMMON}~{1197,1,1,0.0,COMMON}~{1099,1,1,0.0,COMMON}~{1135,1,1,0.0,COMMON}~{1065,1,1,0.0,COMMON}~{1161,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,RARE}~{365,1,1,0.0,UNCOMMON}~{385,1,1,0.0,UNCOMMON}~{379,1,1,0.0,UNCOMMON}~{397,1,1,0.0,RARE}~{391,1,1,0.0,RARE}~{5299,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,20,427,0.0,COMMON}~{6103,1,1,0.0,COMMON}~{449,1,1,0.0,UNCOMMON}~{6102,1,1,0.0,RARE}~{2733,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.615,ALWAYS}~{12158,1,1,0.08,ALWAYS}~{12159,1,1,0.23500000000000001,ALWAYS}~{12160,1,1,0.055,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7440, '{526,1,1,0.0,ALWAYS}', '{555,70,70,0.0,COMMON}~{554,37,37,0.0,UNCOMMON}~{563,1,3,0.0,UNCOMMON}~{561,12,12,0.0,UNCOMMON}~{1243,1,1,0.0,COMMON}~{1213,1,1,0.0,UNCOMMON}~{1197,1,1,0.0,COMMON}~{1099,1,1,0.0,COMMON}~{1135,1,1,0.0,COMMON}~{1065,1,1,0.0,COMMON}~{1161,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,RARE}~{365,1,1,0.0,UNCOMMON}~{385,1,1,0.0,UNCOMMON}~{379,1,1,0.0,UNCOMMON}~{397,1,1,0.0,RARE}~{391,1,1,0.0,RARE}~{5299,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,20,427,0.0,COMMON}~{6103,1,1,0.0,COMMON}~{449,1,1,0.0,UNCOMMON}~{6102,1,1,0.0,RARE}~{2745,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.615,ALWAYS}~{12158,1,1,0.08,ALWAYS}~{12159,1,1,0.23500000000000001,ALWAYS}~{12160,1,1,0.055,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7441, '{526,1,1,0.0,ALWAYS}', '{555,70,70,0.0,COMMON}~{554,37,37,0.0,UNCOMMON}~{563,1,3,0.0,UNCOMMON}~{561,12,12,0.0,UNCOMMON}~{1243,1,1,0.0,COMMON}~{1213,1,1,0.0,UNCOMMON}~{1197,1,1,0.0,COMMON}~{1099,1,1,0.0,COMMON}~{1135,1,1,0.0,COMMON}~{1065,1,1,0.0,COMMON}~{1161,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,RARE}~{365,1,1,0.0,UNCOMMON}~{385,1,1,0.0,UNCOMMON}~{379,1,1,0.0,UNCOMMON}~{397,1,1,0.0,RARE}~{391,1,1,0.0,RARE}~{5299,1,1,0.0,UNCOMMON}~{5297,1,1,0.0,UNCOMMON}~{5298,1,1,0.0,UNCOMMON}~{5296,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5281,1,1,0.0,UNCOMMON}~{5301,1,1,0.0,UNCOMMON}~{5303,1,1,0.0,UNCOMMON}~{5280,1,1,0.0,UNCOMMON}~{5302,1,1,0.0,RARE}~{5300,1,1,0.0,RARE}~{199,1,1,0.0,COMMON}~{201,1,1,0.0,COMMON}~{203,1,1,0.0,COMMON}~{205,1,1,0.0,COMMON}~{209,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,RARE}~{2485,1,1,0.0,RARE}~{207,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{995,20,427,0.0,COMMON}~{6103,1,1,0.0,COMMON}~{449,1,1,0.0,UNCOMMON}~{6102,1,1,0.0,RARE}~{2723,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.615,ALWAYS}~{12158,1,1,0.08,ALWAYS}~{12159,1,1,0.23500000000000001,ALWAYS}~{12160,1,1,0.055,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7606, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7607, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7608, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7609, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7614, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7615, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7616, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7617, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7618, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7619, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(7620, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7621, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7622, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7623, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7624, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7625, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7626, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7627, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7628, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7629, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7630, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7631, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7632, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7633, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7634, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7635, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7640, '{526,1,1,0.0,ALWAYS}', '{1179,1,1,0.0,COMMON}~{1195,1,1,0.0,COMMON}~{1325,1,1,0.0,UNCOMMON}~{5322,3,3,0.0,COMMON}~{5100,3,3,0.0,COMMON}~{5320,3,3,0.0,COMMON}~{5105,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5104,3,3,0.0,UNCOMMON}~{5323,3,3,0.0,UNCOMMON}~{5281,3,3,0.0,RARE}~{564,3,3,0.0,COMMON}~{560,3,3,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{4695,3,3,0.0,RARE}~{4697,3,3,0.0,RARE}~{4696,3,3,0.0,RARE}~{4694,3,3,0.0,RARE}~{11069,1,1,0.0,COMMON}~{11072,1,1,0.0,COMMON}~{11074,1,1,0.0,UNCOMMON}~{11076,1,1,0.0,UNCOMMON}~{1641,1,1,0.0,UNCOMMON}~{11085,1,1,0.0,RARE}~{11092,1,1,0.0,RARE}~{1643,1,1,0.0,RARE}~{11095,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{207,1,1,0.0,UNCOMMON}~{3049,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{313,10,10,0.0,COMMON}~{1539,20,20,0.0,COMMON}~{4821,10,10,0.0,COMMON}~{995,750,750,0.0,RARE}~{2359,1,1,0.0,RARE}', '{0,1,1,0.735,ALWAYS}~{12158,1,1,0.219,ALWAYS}~{12159,1,1,0.025,ALWAYS}~{12160,1,1,0.014,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(7641, '', '{1059,1,1,0.0,COMMON}~{1179,1,1,0.0,UNCOMMON}~{1195,1,1,0.0,UNCOMMON}~{1325,1,1,0.0,UNCOMMON}~{1635,1,1,0.0,COMMON}~{1637,1,1,0.0,COMMON}~{1639,1,1,0.0,COMMON}~{11069,1,1,0.0,COMMON}~{11072,1,1,0.0,COMMON}~{1641,1,1,0.0,UNCOMMON}~{11076,1,1,0.0,UNCOMMON}~{11074,1,1,0.0,UNCOMMON}~{11085,1,1,0.0,RARE}~{11092,1,1,0.0,RARE}~{11088,1,1,0.0,RARE}~{1643,1,1,0.0,RARE}~{11095,1,1,0.0,RARE}~{11115,1,1,0.0,RARE}~{564,3,3,0.0,COMMON}~{560,3,3,0.0,UNCOMMON}~{565,1,1,0.0,RARE}~{4695,3,3,0.0,RARE}~{4697,3,3,0.0,RARE}~{4696,3,3,0.0,RARE}~{4694,3,3,0.0,RARE}~{5322,3,3,0.0,COMMON}~{5100,3,3,0.0,COMMON}~{5320,3,3,0.0,COMMON}~{5323,3,3,0.0,UNCOMMON}~{5105,1,1,0.0,UNCOMMON}~{5106,1,1,0.0,UNCOMMON}~{5104,3,3,0.0,UNCOMMON}~{5105,3,3,0.0,RARE}~{5281,3,3,0.0,RARE}~{207,1,1,0.0,UNCOMMON}~{3049,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{209,1,1,0.0,RARE}~{211,1,1,0.0,RARE}~{217,1,1,0.0,RARE}~{313,10,10,0.0,COMMON}~{1539,20,20,0.0,COMMON}~{4821,10,10,0.0,COMMON}~{995,750,750,0.0,RARE}~{2359,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.765,ALWAYS}~{12158,1,1,0.199,ALWAYS}~{12159,1,1,0.013000000000000001,ALWAYS}~{12160,1,1,0.016,ALWAYS}~{12163,1,1,0.006,ALWAYS}'), +(7642, '{526,1,1,0.0,ALWAYS}', '{892,6,6,0.0,COMMON}~{867,10,10,0.0,COMMON}~{1357,1,1,0.0,UNCOMMON}~{1331,1,1,0.0,UNCOMMON}~{868,2,2,0.0,UNCOMMON}~{1333,1,1,0.0,RARE}~{4125,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1111,1,1,0.0,UNCOMMON}~{1183,1,1,0.0,UNCOMMON}~{4129,1,1,0.0,RARE}~{1147,1,1,0.0,RARE}~{1149,1,1,0.0,RARE}~{556,50,50,0.0,COMMON}~{557,50,50,0.0,COMMON}~{554,50,50,0.0,COMMON}~{7936,10,10,0.0,COMMON}~{562,20,20,0.0,COMMON}~{560,5,5,0.0,COMMON}~{565,6,30,0.0,UNCOMMON}~{454,3,3,0.0,UNCOMMON}~{445,3,3,0.0,UNCOMMON}~{448,3,3,0.0,UNCOMMON}~{450,1,1,0.0,UNCOMMON}~{5001,3,3,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{995,250,250,0.0,COMMON}~{163,1,1,0.0,UNCOMMON}~{1539,20,20,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.465,ALWAYS}~{12158,1,1,0.429,ALWAYS}~{12159,1,1,0.055,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.011,ALWAYS}'), +(7643, '{526,1,1,0.0,ALWAYS}', '{892,6,6,0.0,COMMON}~{867,10,10,0.0,COMMON}~{1357,1,1,0.0,UNCOMMON}~{1331,1,1,0.0,UNCOMMON}~{868,2,2,0.0,UNCOMMON}~{1333,1,1,0.0,RARE}~{4125,1,1,0.0,UNCOMMON}~{1181,1,1,0.0,UNCOMMON}~{1109,1,1,0.0,UNCOMMON}~{1111,1,1,0.0,UNCOMMON}~{1183,1,1,0.0,UNCOMMON}~{4129,1,1,0.0,RARE}~{1147,1,1,0.0,RARE}~{1149,1,1,0.0,RARE}~{556,50,50,0.0,COMMON}~{557,50,50,0.0,COMMON}~{554,50,50,0.0,COMMON}~{7936,10,10,0.0,COMMON}~{562,20,20,0.0,COMMON}~{560,5,5,0.0,COMMON}~{565,6,30,0.0,UNCOMMON}~{454,3,3,0.0,UNCOMMON}~{445,3,3,0.0,UNCOMMON}~{448,3,3,0.0,UNCOMMON}~{450,1,1,0.0,UNCOMMON}~{5001,3,3,0.0,UNCOMMON}~{199,1,1,0.0,UNCOMMON}~{201,1,1,0.0,UNCOMMON}~{205,1,1,0.0,UNCOMMON}~{203,1,1,0.0,UNCOMMON}~{207,1,1,0.0,UNCOMMON}~{209,1,1,0.0,UNCOMMON}~{213,1,1,0.0,UNCOMMON}~{215,1,1,0.0,UNCOMMON}~{2485,1,1,0.0,UNCOMMON}~{217,1,1,0.0,UNCOMMON}~{211,1,1,0.0,UNCOMMON}~{995,250,250,0.0,COMMON}~{163,1,1,0.0,UNCOMMON}~{1539,20,20,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.465,ALWAYS}~{12158,1,1,0.429,ALWAYS}~{12159,1,1,0.055,ALWAYS}~{12160,1,1,0.04,ALWAYS}~{12163,1,1,0.011,ALWAYS}'), +(7682, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7683, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7684, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7685, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7691, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7692, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7693, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7694, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7695, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7696, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7697, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7698, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7699, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7700, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7701, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7702, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7703, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7704, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7705, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7706, '{13157,1,1,0.0,ALWAYS}', '{560,1,25,0.0,COMMON}~{565,10,15,0.0,COMMON}~{554,80,80,0.0,COMMON}~{200,4,4,0.0,UNCOMMON}~{202,4,4,0.0,UNCOMMON}~{206,4,4,0.0,UNCOMMON}~{204,4,4,0.0,UNCOMMON}~{208,4,4,0.0,UNCOMMON}~{212,4,4,0.0,UNCOMMON}~{210,4,4,0.0,UNCOMMON}~{216,4,4,0.0,UNCOMMON}~{214,4,4,0.0,UNCOMMON}~{218,4,4,0.0,UNCOMMON}~{995,100,1240,0.0,COMMON}~{3385,1,1,0.0,UNCOMMON}~{3387,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.025,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.033,ALWAYS}~{12163,1,1,0.015,ALWAYS}'), +(7714, '{592,1,1,0.0,ALWAYS}', '{882,2,9,0.0,COMMON}~{877,1,10,0.0,COMMON}~{1155,1,1,0.0,COMMON}~{1351,1,1,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1277,1,1,0.0,COMMON}~{1265,1,1,0.0,COMMON}~{884,1,5,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1267,1,1,0.0,COMMON}~{886,1,1,0.0,COMMON}~{1141,1,1,0.0,UNCOMMON}~{1353,1,1,0.0,RARE}~{1269,1,1,0.0,RARE}~{1381,1,1,0.0,RARE}~{1383,1,1,0.0,RARE}~{288,1,1,0.0,RARE}~{1993,1,1,0.0,UNCOMMON}~{1913,1,1,0.0,RARE}~{1891,1,1,0.0,RARE}~{1917,1,1,0.0,RARE}~{6794,1,1,0.0,RARE}~{556,1,10,0.0,COMMON}~{555,1,11,0.0,COMMON}~{562,1,6,0.0,RARE}~{560,1,2,0.0,RARE}~{995,1,40,0.0,COMMON}~{2355,1,1,0.0,COMMON}~{442,1,1,0.0,COMMON}~{1718,1,1,0.0,UNCOMMON}~{1444,1,1,0.0,UNCOMMON}~{2677,1,1,0.0,RARE}~{6691,1,1,0.0,RARE}~{193,1,1,0.0,RARE}~{1716,1,1,0.0,RARE}~{2,10,40,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.03,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.032,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(7715, '{592,1,1,0.0,ALWAYS}', '{882,2,9,0.0,COMMON}~{877,1,10,0.0,COMMON}~{1155,1,1,0.0,COMMON}~{1351,1,1,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1277,1,1,0.0,COMMON}~{1265,1,1,0.0,COMMON}~{884,1,5,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1267,1,1,0.0,COMMON}~{886,1,1,0.0,COMMON}~{1141,1,1,0.0,UNCOMMON}~{1353,1,1,0.0,RARE}~{1269,1,1,0.0,RARE}~{1381,1,1,0.0,RARE}~{1383,1,1,0.0,RARE}~{288,1,1,0.0,RARE}~{1993,1,1,0.0,UNCOMMON}~{1913,1,1,0.0,RARE}~{1891,1,1,0.0,RARE}~{1917,1,1,0.0,RARE}~{6794,1,1,0.0,RARE}~{556,1,10,0.0,COMMON}~{555,1,11,0.0,COMMON}~{562,1,6,0.0,RARE}~{560,1,2,0.0,RARE}~{995,1,40,0.0,COMMON}~{2355,1,1,0.0,COMMON}~{442,1,1,0.0,COMMON}~{1718,1,1,0.0,UNCOMMON}~{1444,1,1,0.0,UNCOMMON}~{2715,1,1,0.0,RARE}~{2747,1,1,0.0,RARE}~{6691,1,1,0.0,RARE}~{193,1,1,0.0,RARE}~{1716,1,1,0.0,RARE}~{2,10,40,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.03,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.032,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(7716, '{592,1,1,0.0,ALWAYS}', '{882,2,9,0.0,COMMON}~{877,1,10,0.0,COMMON}~{1155,1,1,0.0,COMMON}~{1351,1,1,0.0,COMMON}~{1139,1,1,0.0,COMMON}~{1277,1,1,0.0,COMMON}~{1265,1,1,0.0,COMMON}~{884,1,5,0.0,COMMON}~{1101,1,1,0.0,COMMON}~{1349,1,1,0.0,COMMON}~{1267,1,1,0.0,COMMON}~{886,1,1,0.0,COMMON}~{1141,1,1,0.0,UNCOMMON}~{1353,1,1,0.0,RARE}~{1269,1,1,0.0,RARE}~{1381,1,1,0.0,RARE}~{1383,1,1,0.0,RARE}~{288,1,1,0.0,RARE}~{1993,1,1,0.0,UNCOMMON}~{1913,1,1,0.0,RARE}~{1891,1,1,0.0,RARE}~{1917,1,1,0.0,RARE}~{6794,1,1,0.0,RARE}~{556,1,10,0.0,COMMON}~{555,1,11,0.0,COMMON}~{562,1,6,0.0,RARE}~{560,1,2,0.0,RARE}~{995,1,40,0.0,COMMON}~{2355,1,1,0.0,COMMON}~{442,1,1,0.0,COMMON}~{1718,1,1,0.0,UNCOMMON}~{1444,1,1,0.0,UNCOMMON}~{2677,1,1,0.0,RARE}~{2747,1,1,0.0,RARE}~{6691,1,1,0.0,RARE}~{193,1,1,0.0,RARE}~{1716,1,1,0.0,RARE}~{2,10,40,0.0,RARE}~{31,1,1,0.0,RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.03,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.032,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(7727, '{526,1,1,0.0,ALWAYS}', '{542,1,1,0.0,COMMON}~{544,1,1,0.0,COMMON}', ''), +(7753, '', '{1393,1,1,0.0,UNCOMMON}~{1387,1,1,0.0,UNCOMMON}~{6568,1,1,0.0,VERY_RARE}~{6526,1,1,0.0,VERY_RARE}~{557,10,80,0.0,COMMON}~{554,10,80,0.0,COMMON}~{556,10,80,0.0,UNCOMMON}~{555,10,80,0.0,UNCOMMON}~{562,5,10,0.0,UNCOMMON}~{561,1,8,0.0,UNCOMMON}~{563,2,5,0.0,UNCOMMON}~{560,1,6,0.0,RARE}~{565,1,6,0.0,RARE}~{4697,1,10,0.0,RARE}~{4699,10,40,0.0,RARE}~{1442,1,1,0.0,RARE}~{6529,1,700,0.0,COMMON}~{12168,1,1,0.0,COMMON}~{9194,1,1,0.0,UNCOMMON}~{7936,4,10,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(7754, '', '{6529,150,800,0.0,COMMON}~{12168,1,1,0.0,COMMON}~{12168,2,2,0.0,COMMON}~{1775,2,2,0.0,UNCOMMON}~{149,1,1,0.0,UNCOMMON}~{161,1,1,0.0,UNCOMMON}~{1780,4,12,0.0,UNCOMMON}~{1391,1,1,0.0,RARE}~{1744,3,3,0.0,RARE}~{1741,3,3,0.0,RARE}~{1738,2,8,0.0,RARE}~{7936,2,6,0.0,RARE}~{379,1,1,0.0,RARE}~{9194,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(7755, '', '{6522,9,9,0.0,VERY_RARE}~{6522,11,11,0.0,VERY_RARE}~{6523,1,1,0.0,VERY_RARE}~{6525,1,1,0.0,VERY_RARE}~{6524,1,1,0.0,VERY_RARE}~{6568,1,1,0.0,VERY_RARE}~{161,1,1,0.0,UNCOMMON}~{149,1,1,0.0,UNCOMMON}~{167,1,1,0.0,UNCOMMON}~{6529,100,1500,0.0,COMMON}~{12168,2,2,0.0,COMMON}~{379,1,1,0.0,UNCOMMON}~{9194,1,1,0.0,UNCOMMON}~{31,1,1,0.0,RARE}', ''), +(7767, '', '{6529,150,800,0.0,COMMON}~{12168,1,1,0.0,COMMON}~{12168,2,2,0.0,COMMON}~{1775,2,2,0.0,UNCOMMON}~{149,1,1,0.0,UNCOMMON}~{161,1,1,0.0,UNCOMMON}~{1780,4,12,0.0,UNCOMMON}~{1391,1,1,0.0,RARE}~{1744,3,3,0.0,RARE}~{1741,3,3,0.0,RARE}~{1738,2,8,0.0,RARE}~{7936,2,6,0.0,RARE}~{379,1,1,0.0,RARE}~{9194,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(7768, '', '{6529,150,800,0.0,COMMON}~{12168,1,1,0.0,COMMON}~{12168,2,2,0.0,COMMON}~{1775,2,2,0.0,UNCOMMON}~{149,1,1,0.0,UNCOMMON}~{161,1,1,0.0,UNCOMMON}~{1780,4,12,0.0,UNCOMMON}~{1391,1,1,0.0,RARE}~{1744,3,3,0.0,RARE}~{1741,3,3,0.0,RARE}~{1738,2,8,0.0,RARE}~{7936,2,6,0.0,RARE}~{379,1,1,0.0,RARE}~{9194,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(7769, '', '{6529,150,800,0.0,COMMON}~{12168,1,1,0.0,COMMON}~{12168,2,2,0.0,COMMON}~{1775,2,2,0.0,UNCOMMON}~{149,1,1,0.0,UNCOMMON}~{161,1,1,0.0,UNCOMMON}~{1780,4,12,0.0,UNCOMMON}~{1391,1,1,0.0,RARE}~{1744,3,3,0.0,RARE}~{1741,3,3,0.0,RARE}~{1738,2,8,0.0,RARE}~{7936,2,6,0.0,RARE}~{379,1,1,0.0,RARE}~{9194,1,1,0.0,RARE}~{31,1,1,0.0,RARE}', ''), +(8133, '', '{13746,1,1,0.0,VERY_RARE,570}~{13748,1,1,0.0,VERY_RARE,718}~{13750,1,1,0.0,VERY_RARE,570}~{13752,1,1,0.0,VERY_RARE,570}~{995,20000,50000,0.0,UNCOMMON,42}~{1624,1,10,0.0,COMMON,42}~{1622,1,8,0.0,COMMON,42}~{1620,1,8,0.0,COMMON,42}~{1618,1,8,0.0,COMMON,42}~{2366,1,1,0.0,VERY_RARE,50}~{1250,1,1,0.0,VERY_RARE,42}~{13734,1,1,0.0,UNCOMMON,256}~{890,750,750,0.0,COMMON}~{9144,250,250,0.0,COMMON}~{2,2000,2000,0.0,COMMON,50}~{9245,175,175,0.0,COMMON}~{7937,2500,2500,0.0,COMMON}~{563,250,250,0.0,COMMON}~{564,500,500,0.0,COMMON}~{560,209,300,0.0,COMMON}~{566,250,250,0.0,COMMON}~{384,70,70,0.0,COMMON}~{240,120,120,0.0,COMMON}~{9738,120,120,0.0,COMMON}~{5321,24,24,0.0,UNCOMMON}~{5295,10,10,0.0,UNCOMMON}~{7061,30,30,0.0,UNCOMMON}~{2449,40,40,0.0,UNCOMMON}~{13754,1,1,0.0,RARE,384}', '{12158,13,13,0.21,ALWAYS}~{12159,13,13,0.13,ALWAYS}~{12160,13,13,0.23,ALWAYS}~{12163,13,13,0.43,ALWAYS}'), +(8149, '{526,1,1,0.0,ALWAYS}', '{888,4,4,0.0,UNCOMMON}~{1424,1,1,0.0,UNCOMMON}~{1199,1,1,0.0,UNCOMMON}~{1163,1,1,0.0,RARE}~{564,6,6,0.0,UNCOMMON}~{562,12,12,0.0,UNCOMMON}~{561,3,3,0.0,UNCOMMON}~{565,3,3,0.0,UNCOMMON}~{560,3,3,0.0,UNCOMMON}~{7937,3,12,0.0,UNCOMMON}~{222,1,4,0.0,UNCOMMON}~{961,9,9,0.0,UNCOMMON}~{8779,5,5,0.0,UNCOMMON}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.03,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.032,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(8150, '{526,1,1,0.0,ALWAYS}', '{888,4,4,0.0,UNCOMMON}~{1424,1,1,0.0,UNCOMMON}~{1199,1,1,0.0,UNCOMMON}~{1163,1,1,0.0,RARE}~{564,6,6,0.0,UNCOMMON}~{562,12,12,0.0,UNCOMMON}~{561,3,3,0.0,UNCOMMON}~{565,3,3,0.0,UNCOMMON}~{560,3,3,0.0,UNCOMMON}~{7937,3,12,0.0,UNCOMMON}~{222,1,4,0.0,UNCOMMON}~{961,9,9,0.0,UNCOMMON}~{8779,5,5,0.0,UNCOMMON}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.03,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.032,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(8151, '{526,1,1,0.0,ALWAYS}', '{888,4,4,0.0,UNCOMMON}~{1424,1,1,0.0,UNCOMMON}~{1199,1,1,0.0,UNCOMMON}~{1163,1,1,0.0,RARE}~{564,6,6,0.0,UNCOMMON}~{562,12,12,0.0,UNCOMMON}~{561,3,3,0.0,UNCOMMON}~{565,3,3,0.0,UNCOMMON}~{560,3,3,0.0,UNCOMMON}~{7937,3,12,0.0,UNCOMMON}~{222,1,4,0.0,UNCOMMON}~{961,9,9,0.0,UNCOMMON}~{8779,5,5,0.0,UNCOMMON}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.03,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.032,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(8349, '{592,1,1,0.0,ALWAYS}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE, 299}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}', '{12158,1,1,0.041,ALWAYS}~{12159,1,1,0.012,ALWAYS}~{12160,1,1,0.003,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(8350, '{592,1,1,0.0,ALWAYS}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE, 299}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}'), +(8351, '{592,1,1,0.0,ALWAYS}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE, 299}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}'), +(8352, '{592,1,1,0.0,ALWAYS}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE, 299}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}'), +(8353, '{592,1,1,0.0,ALWAYS}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE, 299}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}'), +(8354, '{592,1,1,0.0,ALWAYS}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE, 299}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}'), +(8355, '{592,1,1,0.0,ALWAYS}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE, 299}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}'), +(8356, '{592,1,1,0.0,ALWAYS}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE, 299}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}'); +INSERT INTO `npc_drops` (`npc_id`, `default`, `main`, `charm`) VALUES +(8357, '{592,1,1,0.0,ALWAYS}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE, 299}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}'), +(8358, '{592,1,1,0.0,ALWAYS}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE, 299}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}'), +(8359, '{592,1,1,0.0,ALWAYS}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE, 299}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}'), +(8360, '{592,1,1,0.0,ALWAYS}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE, 299}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}'), +(8361, '{592,1,1,0.0,ALWAYS}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE, 299}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}'), +(8362, '{592,1,1,0.0,ALWAYS}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE, 299}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}'), +(8363, '{592,1,1,0.0,ALWAYS}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE, 299}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}'), +(8364, '{592,1,1,0.0,ALWAYS}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE, 299}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}'), +(8365, '{592,1,1,0.0,ALWAYS}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE, 299}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}'), +(8366, '{592,1,1,0.0,ALWAYS}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}', '{1371,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1432,1,1,0.0,COMMON}~{1289,1,1,0.0,COMMON}~{1185,1,1,0.0,COMMON}~{5298,1,2,0.0,COMMON}~{5281,1,1,0.0,COMMON}~{5294,1,2,0.0,COMMON}~{5104,1,3,0.0,COMMON}~{5292,1,2,0.0,COMMON}~{5311,3,1,0.0,COMMON}~{5299,1,2,0.0,COMMON}~{200,1,11,0.0,COMMON}~{202,1,11,0.0,COMMON}~{204,1,11,0.0,COMMON}~{206,1,11,0.0,COMMON}~{210,1,11,0.0,COMMON}~{212,1,11,0.0,COMMON}~{214,1,11,0.0,COMMON}~{216,1,11,0.0,COMMON}~{2486,1,11,0.0,COMMON}~{1602,4,4,0.0,COMMON}~{2362,4,4,0.0,COMMON}~{560,20,40,0.0,COMMON}~{563,20,45,0.0,COMMON}~{1443,4,4,0.0,COMMON}~{995,3000,15000,0.0,COMMON}~{5302,1,2,0.0,UNCOMMON}~{5303,1,2,0.0,UNCOMMON}~{5105,1,3,0.0,UNCOMMON}~{5296,1,2,0.0,UNCOMMON}~{5323,1,4,0.0,UNCOMMON}~{12176,1,2,0.0,UNCOMMON}~{5295,1,3,0.0,UNCOMMON}~{5100,1,2,0.0,UNCOMMON}~{5280,4,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{1113,1,1,0.0,UNCOMMON}~{208,1,11,0.0,UNCOMMON}~{5301,1,3,0.0,UNCOMMON}~{218,1,11,0.0,UNCOMMON}~{565,10,20,0.0,UNCOMMON}~{14484,1,1,0.0,VERY_RARE, 299}~{14474,1,1,0.0,VERY_RARE}~{14476,1,1,0.0,VERY_RARE}~{14472,1,1,0.0,VERY_RARE}~{31,1,1,0.0,RARE}'), +(8610, '{532,1,1,0.0,ALWAYS}', '{560,250,250,0.0,COMMON}~{562,400,400,0.0,COMMON}~{560,300,300,0.0,COMMON}~{565,200,200,0.0,COMMON}~{1620,20,20,0.0,COMMON}~{1618,10,10,0.0,COMMON}~{6035,100,100,0.0,UNCOMMON}~{238,100,100,0.0,UNCOMMON}~{224,500,500,0.0,UNCOMMON}~{445,300,300,0.0,UNCOMMON}~{2,250,250,0.0,UNCOMMON}~{1514,100,100,0.0,RARE}~{226,50,50,0.0,RARE}~{1631,1,1,0.0,RARE}~{5315,1,1,0.0,RARE}~{5316,1,1,0.0,RARE}~{5289,1,1,0.0,RARE}~{3052,100,100,0.0,RARE}~{3024,3,3,0.0,RARE}~{995,15000,20000,0.0,COMMON}~{9194,60,60,0.0,UNCOMMON}~{1275,1,1,0.0,COMMON}~{9244,100,100,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{868,60,60,0.0,COMMON}~{14669,1,1,0.0,RARE,256}~{7158,1,1,0.0,RARE,256}~{14722,1,1,0.0,RARE,512}~{14939,8,8,0.0,COMMON}~{14943,375,375,0.0,RARE,128}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(8612, '{562,1,1,0.0,ALWAYS}', '{562,400,400,0.0,COMMON}~{560,300,300,0.0,COMMON}~{565,200,200,0.0,COMMON}~{1620,20,20,0.0,COMMON}~{1618,10,10,0.0,COMMON}~{6035,100,100,0.0,UNCOMMON}~{238,100,100,0.0,UNCOMMON}~{224,500,500,0.0,UNCOMMON}~{445,300,300,0.0,UNCOMMON}~{2,250,250,0.0,UNCOMMON}~{1514,100,100,0.0,RARE}~{226,50,50,0.0,RARE}~{1631,1,1,0.0,RARE}~{5315,1,1,0.0,RARE}~{5316,1,1,0.0,RARE}~{5289,1,1,0.0,RARE}~{3052,100,100,0.0,RARE}~{3024,3,3,0.0,RARE}~{995,15000,20000,0.0,COMMON}~{9194,60,60,0.0,UNCOMMON}~{1275,1,1,0.0,COMMON}~{9244,100,100,0.0,UNCOMMON}~{1319,1,1,0.0,UNCOMMON}~{868,60,60,0.0,COMMON}~{14669,1,1,0.0,RARE,256}~{7158,1,1,0.0,RARE,256}~{14862,1,1,0.0,RARE,512}~{14939,8,8,0.0,COMMON}~{14943,375,375,0.0,RARE,128}', '{12158,4,4,0.06,ALWAYS}~{12159,4,4,0.03,ALWAYS}~{12160,4,4,0.63,ALWAYS}~{12163,4,4,0.02,ALWAYS}'), +(8629, '{14693,1,1,0.0,ALWAYS}~{14695,1,1,0.0,ALWAYS}~{1747,1,1,0.0,ALWAYS}~', '{811,12,12,0.0,COMMON}~{830,20,20,0.0,COMMON}~{554,75,75,0.0,COMMON}~{4699,15,30,0.0,COMMON}~{868,8,8,0.0,UNCOMMON}~{9144,30,30,0.0,UNCOMMON}~{560,20,20,0.0,UNCOMMON}~{565,20,20,0.0,UNCOMMON}~{563,20,20,0.0,UNCOMMON}~{9194,12,12,0.0,UNCOMMON}~{1317,1,1,0.0,UNCOMMON}~{1303,1,1,0.0,UNCOMMON}~{3053,1,1,0.0,UNCOMMON}~{1359,1,1,0.0,UNCOMMON}~{1123,1,1,0.0,UNCOMMON}~{1201,1,1,0.0,UNCOMMON}~{1147,1,1,0.0,UNCOMMON}~{1163,1,1,0.0,UNCOMMON}~{995,66,3000,0.0,COMMON}~{1442,1,1,0.0,COMMON}~{570,15,15,0.0,UNCOMMON}~{1897,3,3,0.0,UNCOMMON}~{2362,2,2,0.0,UNCOMMON}~{11286,1,1,0.0,VERY_RARE}', '{0,1,1,0.915,ALWAYS}~{12158,1,1,0.03,ALWAYS}~{12159,1,1,0.02,ALWAYS}~{12160,1,1,0.032,ALWAYS}~{12163,1,1,0.003,ALWAYS}'), +(8656, '{526,1,1,0.0,ALWAYS}', '{1731,1,1,0.0,COMMON}~{2501,1,1,0.0,UNCOMMON}~{868,10,10,0.0,UNCOMMON}~{4698,30,30,0.0,UNCOMMON}~{2,150,150,0.0,UNCOMMON}~{11212,75,75,0.0,RARE}~{385,1,1,0.0,COMMON}~{6705,3,3,0.0,COMMON}~{2434,1,1,0.0,COMMON}~{2298,8,8,0.0,UNCOMMON}~{995,499,3998,0.0,COMMON}~{218,4,4,0.0,COMMON}~{240,10,10,0.0,COMMON}~{443,40,40,0.0,COMMON}~{1622,6,6,0.0,UNCOMMON}~{1624,4,4,0.0,UNCOMMON}~{1750,10,10,0.0,UNCOMMON}~{991,1,1,0.0,UNCOMMON}~{9194,12,12,0.0,RARE}~{10976,1,1,0.0,RARE}~{4675,1,1,0.0,RARE}', ''); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `npc_spawns` +-- + +CREATE TABLE `npc_spawns` ( + `npc_id` int(11) NOT NULL, + `loc_data` longtext NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- +-- Dumping data for table `npc_spawns` +-- + +INSERT INTO `npc_spawns` (`npc_id`, `loc_data`) VALUES +(0, '{3221,3218,0,1,0}'), +(1, '{3222,3221,0,1,3}-{2804,3427,0,1,2}-{3285,3208,0,1,4}-{3093,3509,0,1,3}-{3098,3508,0,1,7}-{3096,3510,0,1,3}-{3017,3239,0,1,2}-{2712,3484,0,1,4}-{2693,3495,0,1,1}-{3237,3404,0,1,6}-{3237,3408,0,1,0}-{3247,3396,0,1,3}-{3263,3403,0,1,3}-{3210,3223,1,1,4}-{3230,3208,0,1,1}'), +(2, '{3298,3185,0,1,3}-{3101,3511,0,1,4}-{2690,3489,0,1,3}-{3236,3203,0,1,4}-{3217,3209,0,1,4}-{3237,3217,0,1,6}-{3282,3503,0,1,6}'), +(3, '{2818,3443,0,1,3}-{3306,3200,0,1,6}-{3300,3208,0,1,3}-{3095,3511,0,1,3}-{3094,3513,0,1,4}-{3097,3510,0,1,4}-{2699,3491,0,1,1}-{3231,3239,0,1,4}-{3278,3502,0,1,6}'), +(4, '{3010,3236,0,1,6}-{2693,3493,0,1,7}-{2693,3492,0,1,0}-{2695,3497,0,1,1}-{2700,3496,0,1,5}-{3230,3204,0,1,3}-{3281,3499,0,1,4}'), +(5, '{2817,3447,0,1,5}-{2697,3493,0,1,4}-{3236,3205,0,1,2}-{3229,3238,0,1,1}-{3279,3497,0,1,3}'), +(6, '{3097,3259,0,1,4}-{3280,3491,0,1,0}'), +(7, '{2920,3434,0,0,0}-{3226,3290,0,0,3}-{2629,3360,0,1,4}-{3158, 3301, 0, 1, 0}'), +(8, '{3019,3230,0,1,4}-{2804,3186,0,1,4}'), +(9, '{2964,3392,0,1,6}-{2967,3393,0,1,1}-{3008,3324,0,1,2}-{3007,3321,0,1,6}-{3005,3321,0,1,4}-{2965,3389,0,1,6}-{2966,3392,0,1,1}-{2964,3392,0,1,1}'), +(11, '{3235,3399,0,1,5}'), +(13, '{3108,3157,1,1,3}-{3113,3157,1,1,4}-{3107,3170,0,0,0}-{3112,3167,0,0,0}-{3106,3157,0,1,3}-{3110,3155,0,1,6}-{2588,3087,0,1,4}-{2592,3086,0,1,6}-{2590,3083,1,1,4}-{2587,3086,1,1,4}-{2594,3084,1,1,6}-{2593,3090,2,1,5}-{2594,3085,2,1,1}-{2588,3089,2,1,4}'), +(14, '{2890,3443,0,1,1}-{2897,3444,0,1,3}-{2897,3435,0,1,2}-{2899,3438,0,1,0}-{2904,3441,0,1,5}-{2899,3449,0,1,3}-{2913,3450,0,1,4}-{2888,3447,0,1,6}-{2886,3421,0,1,1}-{2892,3414,0,1,7}-{2896,3421,0,1,3}-{2900,3428,0,1,3}-{2883,3431,0,1,4}-{2885,3436,0,1,1}-{2914,3444,0,1,3}'), +(15, '{2584,3304,0,1,3}-{2588,3291,0,1,7}-{2584,3288,0,1,0}-{2631,3294,0,1,6}-{2629,3296,0,1,4}-{2563,3382,0,1,6}-{2569,3383,0,1,6}-{2571,3381,0,1,1}-{2575,3384,0,1,4}-{2572,3385,0,1,4}'), +(16, '{3279,3191,0,1,4}-{3296,3202,1,1,3}'), +(17, '{3193,3959,0,0,0}'), +(18, '{3282,3176,0,0,0}-{3284,3170,0,0,7}-{3284,3174,0,0,0}-{3288,3168,0,0,5}-{3292,3169,0,0,3}-{3295,3168,0,0,3}-{3301,3170,0,0,6}-{3301,3174,0,0,6}-{3301,3177,0,0,0}'), +(19, '{2971,3349,0,1,4}-{2979,3350,0,1,2}-{2973,3337,0,1,3}-{2959,3335,0,1,6}-{2982,3339,0,1,6}-{2983,3346,0,1,4}-{2980,3329,0,1,4}-{2987,3330,0,1,6}-{2958,3340,1,1,1}-{2970,3333,1,1,3}-{2966,3329,1,1,4}-{2961,3353,1,1,4}-{2973,3337,1,1,6}-{2998,3341,0,1,6}-{2983,3342,2,1,6}'), +(20, '{2588,3301,1,0,0}'), +(21, '{2630,3288,0,1,1}-{2647,3306,0,1,1}-{2667,3315,0,1,4}'), +(23, '{2582,3297,0,1,6}-{2652,3318,0,1,0}-{2653,3300,0,1,5}-{2669,3298,0,1,4}-{2671,3313,0,1,6}'), +(24, '{2614,3318,0,1,6}-{2621,3293,0,1,3}'), +(25, '{2612,3316,0,1,1}-{2574,3321,1,1,4}-{2621,3293,1,1,3}'), +(27, '{2574,3285,2,0,0}-{2574,3308,2,0,0}-{2582,3284,2,0,0}-{2582,3309,2,0,0}-{2588,3290,2,0,0}-{2588,3303,2,0,0}'), +(28, '{2611,3269,0,0,0}'), +(31, '{2616,3308,0,1,1}'), +(32, '{2651,3307,0,1,1}-{2659,3309,0,1,6}-{2660,3309,0,1,3}-{2661,3309,0,1,1}-{2661,3317,0,1,5}-{2663,3301,0,1,3}-{2665,3300,0,1,3}-{2636,3342,0,1,4}-{2634,3342,0,1,3}-{2635,3339,0,1,3}-{2548,3111,1,1,3}-{2545,3116,1,1,7}-{2549,3115,1,1,1}-{2549,3112,1,1,4}'), +(35, '{2545,3094,0,1,3}-{2549,3093,0,1,2}-{2543,3089,0,1,3}-{2540,3098,0,1,3}'), +(36, '{3020,3373,0,0,0}'), +(38, '{2952,3063,0,0,0}-{2955,3057,0,0,0}-{2956,3035,0,0,0}-{2969,3034,0,0,0}-{2984,3048,0,0,0}'), +(39, '{2958,3055,0,0,0}-{2954,3029,0,0,0}-{2968,3039,0,0,0}-{2984,3048,0,0,0}-{2989,3058,0,0,0}-{2982,3060,0,0,0}-{2972,3060,0,0,0}-{2998,3061,0,0,0}-{2999,3049,0,0,0}'), +(40, '{3005,3060,0,0,0}-{3008,3067,0,0,0}'), +(41, '{3197,3356,0,1,4}-{3234,3297,0,1,3}-{3230,3296,0,1,5}-{3236,3288,0,1,6}-{3236,3300,0,1,2}-{3231,3308,0,1,3}-{2965,3336,0,1,4}-{3110,9573,0,1,6}-{2655,3441,0,1,6}-{2649,3438,0,1,7}-{2649,3446,0,1,6}-{2653,3444,0,1,6}-{2647,3441,0,1,1}-{2784,3062,0,1,4}-{2789,3063,0,1,4}-{3160,3082,0,1,3}-{3140,3096,0,1,3}-{3140,3093,0,1,0}-{3138,3094,0,1,1}-{3140,3093,0,1,3}-{3138,3093,0,1,1}-{3138,3094,0,1,0}-{3189,3278,0,1,3}-{3187,3276,0,1,5}-{3188,3278,0,1,4}-{2851,3370,0,1,3}-{2846,3374,0,1,3}-{2853,3372,0,1,3}-{2847,3373,0,1,3}-{2850,3371,0,1,1}-{2851,3373,0,1,4}-{2852,3370,0,1,4}-{3234,3293,0,1,4}-{3229,3298,0,1,1}-{3228,3296,0,1,4}-{2815,3560,0,1,7}-{2819,3561,0,1,4}-{2818,3559,0,1,6}-{3140,3093,0,1,1}-{2674,3652,0,1,3}-{2672,3655,0,1,6}-{2677,3655,0,1,6}'), +(42, '{3237,3346,0,1,1}'), +(43, '{3241,3354,0,1,3}-{3200,3263,0,0,0}-{3212,3262,0,1,1}-{2926,3323,0,1,0}-{2922,3325,0,1,3}'), +(44, '{3251,3418,0,0,1}-{3252,3418,0,0,1}-{3253,3418,0,0,1}-{3096,3489,0,0,3}-{3254,3418,0,0,1}-{3255,3418,0,0,1}-{3256,3418,0,0,1}-{3147,3448,0,0,1}-{3180,3436,0,0,4}-{3180,3440,0,0,4}-{3180,3444,0,0,4}-{3096,3493,0,0,3}-{3097,3494,0,0,1}-{3191,3437,0,0,3}-{3191,3441,0,0,3}-{3191,3445,0,0,3}'), +(45, '{3096,3491,0,0,3}-{3148,3448,0,0,0}-{3191,3443,0,0,3}-{3191,3439,0,0,3}-{3191,3435,0,0,3}-{3180,3442,0,0,4}-{3180,3434,0,0,4}-{2843,5214,0,0,4}-{3180,3438,0,0,4}'), +(46, '{3179,3348,0,1,0}-{3178,3353,0,1,0}-{3211,3322,0,1,0}-{3214,3314,0,1,0}-{3214,3318,0,1,0}-{3216,3314,0,1,0}-{3218,3287,0,1,0}-{3223,3281,0,1,0}-{3231,3271,0,1,0}-{3233,3267,0,1,0}-{3233,3270,0,1,0}-{3235,3265,0,1,0}-{3235,3259,0,1,0}-{3238,3244,0,1,0}-{3241,3230,0,1,0}-{3241,3234,0,1,0}-{3243,3228,0,1,0}-{3247,3221,0,1,0}-{3248,3220,0,1,0}-{3259,3212,0,1,0}-{2979,3359,0,1,0}-{2979,3357,0,1,0}-{2993,3384,0,1,6}-{3015,3285,0,1,0}'), +(47, '{3097,3364,0,1,3}-{3102,3363,0,1,5}-{3341,3267,0,1,5}-{3235,3224,0,1,3}-{3229,3220,0,1,4}-{3211,3211,0,1,3}-{3225,3220,0,1,1}-{3237,3215,0,1,5}-{3211,3210,0,1,7}-{3227,3220,0,1,7}-{3233,3227,0,1,5}-{3227,3210,0,1,6}-{3228,3222,0,1,4}-{3229,3226,0,1,0}-{3127,3487,0,1,4}-{3125,3486,0,1,6}-{3127,3486,0,1,4}-{3019,3292,0,1,7}-{3018,3295,0,1,7}-{3001,3202,0,1,5}-{3021,3205,0,1,6}-{3026,3174,0,1,5}-{3019,3176,0,1,7}-{3076,3282,0,1,5}-{3089,3266,0,1,4}-{3091,3266,0,1,4}-{3243,3687,0,1,5}-{3249,3669,0,1,3}-{3252,3675,0,1,4}-{3252,3680,0,1,3}-{3259,3683,0,1,0}-{3276,9871,0,1,1}-{3277,9871,0,1,3}-{3225,9862,0,1,4}-{3222,9861,0,1,6}-{3220,9860,0,1,6}-{3219,9865,0,1,6}-{3237,9862,0,1,4}-{3236,3217,0,1,4}-{3259,3230,0,1,4}-{3158,3226,0,1,5}-{3160,3202,0,1,4}-{3233,3237,0,1,7}-{2821,3170,0,1,1}-{2801,3158,0,1,2}-{2852,9642,0,1,6}-{2858,9632,0,1,3}-{2536,2982,0,1,3}-{2531,2980,0,1,0}-{2522,2981,0,1,4}-{2545,2989,0,1,4}-{2523,2970,0,1,2}-{2603,9480,0,1,1}-{2600,9477,0,1,0}-{2579,9496,0,1,4}-{2580,9508,0,1,0}-{2571,9522,0,1,4}-{2654,9640,0,1,6}-{2655,9637,0,1,4}-{2656,9639,0,1,7}-{2651,9636,0,1,5}-{2648,9637,0,1,4}-{2651,9642,0,1,1}-{2654,9640,0,1,0}-{2654,9635,0,1,6}-{2655,9635,0,1,3}-{2664,9626,0,1,6}-{2664,9624,0,1,1}-{2661,9623,0,1,1}-{2663,9623,0,1,3}-{2664,9626,0,1,6}-{2592,9831,0,1,3}-{2588,9825,0,1,6}-{2583,9829,0,1,4}-{2581,9841,0,1,0}-{2597,9823,0,1,2}-{2579,9805,0,1,3}-{2576,9804,0,1,0}-{2573,9805,0,1,5}-{2571,9808,0,1,3}-{2576,9810,0,1,2}-{2587,9802,0,1,2}-{2592,9800,0,1,4}-{2596,9805,0,1,6}-{2601,9802,0,1,5}-{2585,9801,0,1,7}-{2594,9803,0,1,0}-{2590,9806,0,1,3}-{2612,9808,0,1,6}-{2604,9810,0,1,6}-{2579,9821,0,1,2}-{2576,9812,0,1,6}-{2580,9813,0,1,6}-{2600,9813,0,1,4}-{2599,9809,0,1,4}-{2514,3193,0,1,6}-{2518,3192,0,1,3}-{2507,3181,0,1,3}-{2508,3178,0,1,6}-{2511,3183,0,1,3}-{2515,3182,0,1,1}-{2565,9505,0,1,1}-{2566,9510,0,1,6}-{2594,9497,0,1,4}-{3475,9840,0,1,6}-{3481,9842,0,1,1}-{3486,9843,0,1,7}-{3483,9824,0,1,4}-{3496,9808,0,0,5}-{3490,9815,0,1,1}-{3478,9834,0,0,3}-{3490,9824,0,1,4}'), +(48, '{2775,2929,0,1,2}-{2789,2926,0,1,5}-{2795,2932,0,1,6}-{2775,2933,0,1,0}-{2769,2928,0,1,3}-{2817,2921,0,1,2}'), +(49, '{2861,9838,0,1,3}-{2858,9842,0,1,4}-{2854,9847,0,1,5}-{2857,9850,0,1,7}-{2865,9849,0,1,6}-{2869,9838,0,1,6}-{3104,3680,0,1,3}-{3114,3688,0,1,1}-{3121,3675,0,1,1}-{3127,3695,0,1,3}-{3129,3678,0,1,2}-{3130,3689,0,1,2}-{3128,3665,0,1,3}-{3135,3701,0,1,6}-{3085,10134,0,1,0}-{3090,10123,0,1,0}-{3094,10133,0,1,0}-{3095,10120,0,1,0}-{3095,10128,0,1,0}-{3098,10122,0,1,0}-{3104,10127,0,1,0}-{3105,10125,0,1,0}-{3177,3905,0,1,4}-{3180,3908,0,1,2}-{3189,3914,0,1,6}-{3193,3906,0,1,2}-{2402,9785,0,1,1}-{2403,9782,0,1,1}-{2408,9782,0,1,1}-{2408,9785,0,1,1}-{2413,9776,0,1,1}-{2417,9777,0,1,1}-{2412,9773,0,1,1}-{2416,9773,0,1,1}'), +(50, '{2273,4698,0,0,0}'), +(52, '{2899,9765,0,1,1}-{2893,9768,0,1,1}-{2895,9771,0,1,6}-{2894,9781,0,1,6}-{2891,9787,0,1,2}-{2904,9798,0,1,0}-{2910,9799,0,1,4}'), +(53, '{2694,9508,0,0,3}-{2703,9505,0,0,6}-{2710,9499,0,0,1}-{2704,9520,0,0,5}-{2714,9523,0,0,3}-{2722,9520,0,0,7}-{3232,3790,0,0,4}'), +(54, '{2831,9825,0,1,0}-{2838,9824,0,1,1}-{2344,9763,0,1,1}'), +(55, '{2914,9800,0,1,2}-{2906,9804,0,1,6}-{2896,9798,0,1,0}-{2909,9906,0,1,4}'), +(58, '{3289,5482,0,1,1}-{3296,5472,0,1,0}-{3291,5466,0,1,6}-{3294,5481,0,1,0}-{3300,5479,0,1,7}-{3288,5480,0,1,3}-{3293,5475,0,1,3}-{3293,5481,0,1,2}-{3286,5465,0,1,3}-{3279,5478,0,1,4}-{3270,5464,0,1,2}-{3270,5468,0,1,1}-{2574,9874,0,1,0}-{2577,9877,0,1,3}-{2574,9878,0,1,0}-{2575,9871,0,1,4}'), +(59, '{3182,3244,0,1,1}-{3250,3239,0,1,1}-{3241,3241,0,1,1}-{3188,3216,0,1,1}-{3082,3362,0,1,4}-{3146,3347,0,1,3}-{3249,3249,0,1,1}-{3102,9881,0,1,3}-{3095,9883,0,1,2}-{3218,9890,0,1,3}-{3220,9887,0,1,0}-{3218,9887,0,1,1}-{3218,9889,0,1,5}-{3213,9890,0,1,1}-{3169,3257,0,1,1}-{3164,3236,0,1,6}-{3148,3226,0,1,5}-{3162,3223,0,1,7}-{3151,3221,0,1,0}-{3160,3221,0,1,0}-{2461,2880,0,1,5}-{2489,2935,0,1,7}-{2492,2907,0,1,1}-{2496,2890,0,1,4}-{2487,2894,0,1,2}-{2487,2888,0,1,7}-{2483,2877,0,1,3}-{2481,2876,0,1,4}-{2457,2867,0,1,4}-{2481,2847,0,1,0}-{2475,2854,0,1,3}-{2482,2873,0,1,3}-{2485,2876,0,1,2}-{2449,2865,0,1,1}-{2478,2916,0,1,5}-{2485,2902,0,1,3}-{2487,2902,0,1,2}-{2489,2894,0,1,2}-{2490,2905,0,1,7}-{2490,2917,0,1,5}-{2484,2890,0,1,1}-{2503,2889,0,1,1}-{2491,2927,0,1,1}-{2497,2939,0,1,2}-{2648,9766,0,1,4}-{2653,9761,0,1,3}'), +(60, '{3189,3883,0,1,5}-{3182,3882,0,1,5}-{3177,3871,0,1,0}-{3176,3878,0,1,0}-{3173,3892,0,1,6}-{3171,3884,0,1,4}-{3166,3874,0,1,1}-{3169,3900,0,1,1}-{3165,3881,0,1,3}-{3164,3888,0,1,6}-{3163,3894,0,1,7}-{3162,3894,0,1,4}-{2547,2982,0,1,6}-{2477,2866,0,1,5}-{2484,2897,0,1,3}-{2455,2857,0,1,6}-{2434,2845,0,1,4}-{2544,2904,0,1,2}-{2548,2981,0,1,1}-{2448,2784,0,1,7}-{2460,2869,0,1,3}-{2471,2890,0,1,6}-{2491,2906,0,1,0}-{2523,2975,0,1,1}'), +(61, '{3321,3145,0,1,3}-{3327,3131,0,1,5}-{3322,3143,0,1,3}-{3182,3878,0,1,6}-{3182,3886,0,1,7}-{3182,3888,0,1,5}-{3175,3888,0,1,4}-{3175,3879,0,1,7}-{3174,3879,0,1,3}-{3174,3882,0,1,0}-{3175,3885,0,1,3}-{3172,3876,0,1,2}-{3172,3894,0,1,1}-{3172,3885,0,1,3}-{3165,3886,0,1,3}-{3165,3896,0,1,1}-{3166,3886,0,1,1}-{3164,3893,0,1,4}-{3163,3881,0,1,4}-{3159,3889,0,1,0}-{3213,9890,0,1,5}-{3210,9886,0,1,4}-{3213,9887,0,1,1}-{3207,9880,0,1,0}-{3255,9870,0,1,4}-{3258,9872,0,1,3}-{3261,9870,0,1,4}-{3156,3248,0,1,4}-{3143,3241,0,1,4}-{3156,3249,0,1,4}-{3175,3248,0,1,7}-{3169,3260,0,1,4}-{3171,3254,0,1,5}-{3162,3246,0,1,6}-{3179,3262,0,1,1}-{3162,3226,0,1,1}-{3166,3222,0,1,1}-{3157,3229,0,1,5}-{3168,3222,0,1,4}-{3211,9622,0,1,2}-{3215,9620,0,1,4}-{3212,9618,0,1,3}-{3217,9617,0,1,3}-{3214,9620,0,1,7}-{2541,3189,0,1,3}-{2542,3187,0,1,6}-{2543,3186,0,1,4}-{2545,3183,0,1,3}-{2545,3183,0,1,3}-{2545,3182,0,1,3}-{2543,3183,0,1,0}-{2543,3182,0,1,3}-{2539,3182,0,1,0}'), +(62, '{2769,3198,0,1,7}-{2768,3206,0,1,1}-{2776,3107,0,1,1}-{2794,3121,0,1,3}-{2795,3118,0,1,1}-{2796,3109,0,1,1}-{2808,3112,0,1,6}-{2791,3124,0,1,1}-{2860,3094,0,1,6}-{2854,3086,0,1,6}-{2863,3083,0,1,3}-{2853,3081,0,1,4}-{2859,3079,0,1,4}-{2859,3075,0,1,6}-{2871,3092,0,1,1}-{2867,3094,0,1,1}-{2861,3082,0,1,3}-{2861,3094,0,1,3}-{2863,3081,0,1,2}-{2864,3089,0,1,3}-{2859,3084,0,1,0}-{2850,3060,0,1,6}-{2857,3044,0,1,7}-{2856,3066,0,1,4}-{2784,3030,0,1,4}-{2783,3017,0,1,3}-{2811,2975,0,1,7}-{2815,2987,0,1,5}-{2808,3007,0,1,6}-{2812,3007,0,1,1}-{2885,2950,0,1,4}-{2891,2951,0,1,6}-{2894,2946,0,1,4}-{2928,3022,0,1,3}-{2930,3029,0,1,4}-{2927,3039,0,1,6}-{2928,3043,0,1,0}-{2929,3036,0,1,7}-{2919,3040,0,1,4}-{2934,3045,0,1,2}-{2929,3035,0,1,4}-{2914,3055,0,1,4}-{2922,3059,0,1,3}-{2930,3049,0,1,4}-{2914,3047,0,1,4}-{2935,3049,0,1,1}-{2927,3058,0,1,3}'), +(63, '{3118,9950,0,1,6}-{3116,9956,0,1,0}-{3127,9953,0,1,7}-{3122,9955,0,1,4}-{3124,9951,0,1,4}-{3124,9950,0,1,3}-{3074,3892,0,1,3}-{3071,3894,0,1,7}-{3062,3897,0,1,3}-{3058,3889,0,1,4}-{3054,3880,0,1,2}-{3054,3895,0,1,7}-{3051,3879,0,1,6}-{3051,3886,0,1,6}-{3047,3893,0,1,1}-{3047,3881,0,1,4}-{3044,3893,0,1,5}-{3041,3894,0,1,1}-{3038,3890,0,1,1}-{3046,3872,0,1,4}-{3165,9891,0,1,6}-{3177,9886,0,1,4}-{3175,9889,0,1,4}-{3177,9879,0,1,4}-{3177,9888,0,1,1}-{3178,9895,0,1,4}-{3182,9884,0,1,3}-{2841,9583,0,1,4}-{2841,9582,0,1,4}-{2839,9582,0,1,1}-{2837,9572,0,1,6}-{2832,9580,0,1,1}-{3164,9888,0,1,3}-{3169,9892,0,1,6}-{3258,5560,0,1,2}-{3258,5555,0,1,3}-{3260,5557,0,1,3}-{3257,5552,0,1,1}-{3260,5558,0,1,5}-{3258,5556,0,1,6}-{3257,5555,0,1,6}-{3260,5559,0,1,7}-{3257,5561,0,1,1}'), +(64, '{2684,9798,0,1,2}-{2691,9814,0,1,5}-{2694,9819,0,1,6}-{2696,9831,0,1,3}-{2702,9837,0,1,6}-{2709,9844,0,1,3}-{2720,9847,0,1,4}-{2724,9843,0,1,6}-{2733,9846,0,1,4}-{2740,9841,0,1,3}-{2745,9836,0,1,4}-{2745,9828,0,1,5}-{2747,9826,0,1,1}'), +(66, '{2507,3204,0,1,5}-{2506,3205,0,1,6}-{2526,3169,0,1,6}-{2540,3226,0,1,6}-{2528,3164,0,1,6}-{2529,3169,0,1,1}-{2537,3170,0,1,1}'), +(67, '{2507,3200,0,1,6}-{2516,3212,0,1,1}'), +(68, '{2518,3209,0,1,3}-{2533,3209,0,1,5}-{2530,3212,0,1,1}'), +(73, '{3268,9893,0,1,3}-{3251,9896,0,1,6}-{3087,9672,0,1,1}-{3103,9672,0,1,1}-{3119,9670,0,1,1}-{3123,9657,0,1,2}'), +(74, '{3148,9899,0,1,3}-{3147,9905,0,1,6}-{3141,9901,0,1,5}-{3142,9891,0,1,6}-{3139,9886,0,1,2}-{3148,9883,0,1,1}-{3151,9889,0,1,3}-{3126,9865,0,1,7}-{3129,9859,0,1,3}-{3121,9863,0,1,3}-{3126,9862,0,1,5}-{3082,9671,0,1,3}-{3105,9672,0,1,1}-{3113,9673,0,1,3}-{3124,9660,0,1,3}-{3122,9656,0,1,4}-{3117,9646,0,1,1}-{3124,9651,0,1,2}-{3117,9645,0,1,3}-{3094,9671,0,1,3}-{2843,9767,0,1,3}-{2845,9762,0,1,7}-{2842,9759,0,1,6}'), +(75, '{2931,9641,0,1,6}-{3226,9909,0,1,4}-{3225,9905,0,1,0}-{3234,9907,0,1,4}-{2931,9643,0,1,6}-{2588,9493,0,1,3}-{2584,9491,0,1,3}-{2589,9492,0,1,4}-{2591,9492,0,1,6}-{2593,9491,0,1,6}-{2588,9491,0,1,3}-{2839,9774,0,1,4}'), +(76, '{2843,9774,0,1,6}-{2842,9769,0,1,4}-{2842,9764,0,1,7}-{2845,9754,0,1,4}-{2849,9751,0,1,1}-{2850,9747,0,1,3}-{2844,9758,0,1,7}-{2540,9814,0,1,6}-{2547,9817,0,1,6}'), +(78, '{2911,9836,0,1,3}-{2904,9831,0,1,5}-{2914,9827,0,1,4}-{2927,9830,0,1,5}-{3069,3901,0,1,4}-{3079,3955,0,1,3}-{3076,3953,0,1,0}-{3079,3952,0,1,1}-{3072,3952,0,1,0}-{3075,3948,0,1,2}-{3072,3956,0,1,1}-{3085,3951,0,1,6}-{2862,9569,0,1,4}-{2857,9571,0,1,7}-{2837,9561,0,1,1}-{3787,9459,0,1,1}-{3725,9369,0,1,1}-{3737,9390,0,1,4}-{3738,9399,0,1,0}-{3740,9407,0,1,1}-{3755,9424,0,1,0}-{3803,9447,0,1,4}-{3765,9407,0,1,1}-{3762,9395,0,1,3}-{3760,9440,0,1,4}-{3737,9425,0,1,7}-{3720,9430,0,1,4}-{3736,9451,0,1,3}-{3728,9463,0,1,2}-{3740,9462,0,1,4}-{3770,9463,0,1,1}-{3778,9438,0,1,1}-{3786,9422,0,1,4}-{3800,9419,0,1,3}-{3797,9427,0,1,4}-{3820,9432,0,1,5}-{3825,9414,0,1,3}-{3833,9415,0,1,0}-{3752,9450,0,1,6}-{3825,9449,0,1,3}-{3827,9459,0,1,1}-{3818,9466,0,1,4}-{3799,9460,0,1,1}-{3794,9451,0,1,1}-{3762,9432,0,1,1}-{3725,9390,0,1,3}-{2672,9805,0,1,3}-{2663,9804,0,1,4}-{2658,9809,0,1,5}-{3753,9387,0,1,0}-{3728,9382,0,1,3}-{3733,9421,0,1,7}-{2568,9528,0,1,5}-{2573,9530,0,1,3}-{2575,9525,0,1,6}-{2571,9528,0,1,7}-{2608,9818,0,1,7}-{2609,9825,0,1,5}-{2607,9830,0,1,1}-{2605,9837,0,1,1}-{2607,9833,0,1,6}-{3729,9360,0,1,6}-{2759,3402,0,1,2}-{2756,3400,0,1,0}-{2543,9564,0,1,1}-{2543,9562,0,1,1}-{2542,9557,0,1,1}-{2542,9569,0,1,4}-{2540,9566,0,1,0}-{2549,9568,0,1,6}-{2538,9568,0,1,3}'), +(80, '{2619,3265,0,1,0}-{2619,3265,0,1,3}-{2615,3267,0,1,4}'), +(81, '{3255,3255,0,1,3}-{3255,3256,0,1,4}-{3038,3310,0,1,5}-{3028,3312,0,1,6}-{3028,3299,0,1,6}-{3042,3300,0,1,6}-{2923,3277,0,1,1}-{2921,3289,0,1,1}-{2923,3280,0,1,6}-{2589,3120,0,1,4}-{2605,3116,0,1,5}-{3259,3261,0,1,1}-{3263,3283,0,1,6}-{3257,3268,0,1,4}'), +(82, '{2936,9652,0,1,3}-{2932,9809,0,1,0}-{2929,9803,0,1,2}-{2934,9795,0,1,6}-{2933,9791,0,1,1}-{3052,3117,2,1,1}-{2841,9557,0,1,3}-{2831,9562,0,1,3}-{2838,9605,0,1,3}-{3058,10128,0,1,0}-{3046,10139,0,1,0}-{3110,3157,2,1,5}'), +(83, '{3169,3711,0,1,7}-{3095,10095,0,1,0}-{3095,10086,0,1,0}-{2639,9477,2,0,3}-{2635,9497,2,0,2}'), +(84, '{2861,9766,0,1,7}-{2875,9776,0,1,3}-{2869,9782,0,1,3}-{2856,9779,0,1,3}-{2867,9773,0,1,0}-{2863,9780,0,1,4}-{2858,9775,0,1,4}-{2700,9481,0,0,5}-{2729,9483,0,0,5}'), +(86, '{2632,9696,0,1,1}-{2639,9697,0,1,3}-{2646,9696,0,1,3}-{2650,9697,0,1,4}-{2646,9702,0,1,6}-{3098,9880,0,1,5}-{3094,9883,0,1,1}-{3196,3208,0,1,1}-{3119,9891,0,1,4}-{3249,9868,0,1,4}-{3237,9868,0,1,3}-{3221,9873,0,1,6}-{3225,9862,0,1,2}-{3199,3209,0,1,1}-{3193,3211,0,1,5}-{3197,3203,0,1,1}-{3201,3200,0,1,4}-{3199,3210,0,1,0}-{3191,3207,0,1,4}-{3037,9511,0,1,6}-{3105,9517,0,1,7}-{3101,9517,0,1,6}-{3102,9521,0,1,4}-{3106,9519,0,1,1}-{3104,9514,0,1,4}-{3104,9518,0,1,1}-{3107,9519,0,1,1}-{3109,9516,0,1,1}-{3107,9515,0,1,7}-{3105,9512,0,1,6}-{3102,9513,0,1,3}-{3100,9514,0,1,1}-{3100,9516,0,1,7}-{3099,9521,0,1,0}-{3103,9523,0,1,1}-{3212,3191,0,1,6}-{3207,3192,0,1,2}-{3216,3184,0,1,2}-{3224,3174,0,1,4}-{3229,3183,0,1,5}-{3222,3185,0,1,3}-{3216,3177,0,1,4}-{3200,3182,0,1,5}-{3202,3189,0,1,6}-{3188,3181,0,1,7}-{3181,3191,0,1,7}-{3185,3199,0,1,4}-{3176,3198,0,1,6}-{3168,3188,0,1,4}-{3172,3178,0,1,1}-{3179,3174,0,1,1}-{3189,3168,0,1,5}-{3237,9866,0,1,6}-{3232,9867,0,1,7}-{3219,9862,0,1,7}-{3227,9875,0,1,4}-{3276,9870,0,1,3}-{3291,3388,0,1,6}-{2647,9713,0,1,3}-{2641,9719,0,1,1}-{2650,9716,0,1,1}-{2518,3187,0,1,3}-{3481,9830,0,0,3}-{3495,9812,0,1,1}-{3502,9807,0,0,4}'), +(87, '{3241,3531,0,1,7}-{3260,3540,0,1,7}-{3103,9881,0,1,3}-{3122,9889,0,1,2}-{3117,9890,0,1,2}-{3293,3382,0,1,4}-{2520,3188,0,1,3}'), +(88, '{2601,9802,0,1,6}-{2594,9805,0,1,1}-{2587,9806,0,1,2}-{2585,9803,0,1,1}-{2584,9801,0,1,5}'), +(89, '{2783,3463,0,1,7}-{2629,3266,0,1,2}-{2634,3265,0,1,1}-{2575,3058,0,0,6}-{3080,3451,0,1,1}-{3096,3460,0,1,3}-{3142,3211,0,1,6}-{2557,3065,0,0,1}-{3294,3344,0,1,3}-{3289,3349,0,1,6}-{3286,3345,0,1,1}'), +(90, '{2925,3254,2,1,3}-{2882,9815,0,1,3}-{2883,9822,0,1,6}-{2883,9827,0,1,6}-{2890,9847,0,1,1}-{2896,9849,0,1,5}-{2900,9848,0,1,3}-{2907,9849,0,1,5}-{3116,3534,0,1,4}-{3110,3367,0,1,3}-{3110,9909,0,1,4}-{3121,9910,0,1,4}-{3133,9909,0,1,5}-{3133,9904,0,1,6}-{3129,9916,0,1,3}-{3133,9916,0,1,0}-{3141,9875,0,1,6}-{3208,9905,0,1,4}-{2852,9577,0,1,1}-{2865,9567,0,1,3}-{2924,3252,2,1,3}-{2926,3255,2,1,4}-{2932,3255,2,1,3}-{2931,3251,2,1,4}-{3194,5448,0,1,3}-{3183,5447,0,1,3}-{3177,5457,0,1,4}-{3187,5456,0,1,1}-{3003,3593,0,1,5}-{3007,3596,0,1,4}-{3025,3595,0,1,4}-{3022,3594,0,1,0}'), +(91, '{3099,9910,0,1,0}-{3100,9906,0,1,6}-{3212,9906,0,1,6}-{3252,9916,0,1,3}-{3259,9915,0,1,3}-{3272,9913,0,1,6}-{3274,9914,0,1,1}-{3278,9908,0,1,1}-{3275,9911,0,1,5}-{3194,5454,0,1,4}'), +(92, '{3111,3561,0,1,3}-{3132,9915,0,1,5}-{3095,9909,0,1,3}-{3149,9869,0,1,6}-{3138,9878,0,1,5}-{3137,9869,0,1,3}-{2840,9652,0,1,1}-{2829,9657,0,1,4}-{2819,3288,0,1,1}-{2848,3248,0,1,3}-{2850,3235,0,1,3}-{3117,9671,0,1,1}-{3122,9661,0,1,6}-{3123,9648,0,1,6}-{3005,10362,0,1,1}-{3003,10358,0,1,1}-{3005,10351,0,1,1}-{3003,10345,0,1,5}-{2993,3940,0,1,4}-{2593,9883,0,1,1}-{2590,9885,0,1,4}-{2586,9883,0,1,1}-{2585,9878,0,1,3}-{2537,9845,0,1,1}-{2540,9846,0,1,4}-{2552,9844,0,1,6}-{2556,9846,0,1,4}-{2535,9844,0,1,3}-{2532,9843,0,1,4}-{2530,9845,0,1,3}-{2540,9820,0,1,4}-{2544,9824,0,1,4}'), +(93, '{3101,9956,0,1,3}-{3104,9948,0,1,0}-{3104,9955,0,1,4}-{3108,9951,0,1,4}-{3108,9954,0,1,1}-{3111,9954,0,1,6}-{3112,9958,0,1,4}-{2841,9625,0,1,4}-{2845,9628,0,1,3}-{2841,9638,0,1,6}-{2845,9645,0,1,1}-{2655,9824,0,1,1}-{2669,9824,0,1,4}-{2667,9823,0,1,5}-{2658,9830,0,1,6}-{2666,9829,0,1,6}-{3194,5460,0,1,6}-{3192,5466,0,1,7}-{2566,9507,0,1,3}-{2562,9505,0,1,1}-{2568,9509,0,1,3}-{3185,5493,0,1,4}-{3182,5494,0,1,6}-{3185,5486,0,1,7}-{3175,5492,0,1,3}-{3169,5496,0,1,4}-{3170,5492,0,1,3}-{3186,5487,0,1,4}-{3169,5491,0,1,2}-{2571,9509,0,1,1}-{2564,9504,0,1,1}-{2566,9505,0,1,1}-{2544,9841,0,1,1}-{2536,9844,0,1,6}-{2527,9844,0,1,3}-{2530,9842,0,1,4}-{2543,9815,0,1,3}'), +(94, '{2589,9881,0,1,6}-{2591,9882,0,1,4}'), +(95, '{2616,3283,0,1,3}-{2620,3283,0,1,3}-{2502,2969,0,1,6}-{2507,2971,0,1,2}-{2600,2959,0,1,6}-{2606,2971,0,1,6}-{2606,2963,0,1,4}-{2612,2965,0,1,6}-{2611,2973,0,1,5}-{2613,2963,0,1,3}-{2459,2884,0,1,7}-{2496,2907,0,1,6}-{2489,2887,0,1,7}-{2473,2885,0,1,7}-{2466,2872,0,1,4}-{2452,2883,0,1,5}-{2440,2869,0,1,5}-{2460,2849,0,1,1}-{2451,2842,0,1,4}-{2467,2838,0,1,6}-{2444,2832,0,1,6}-{2498,2845,0,1,3}-{2615,2957,0,1,4}-{2599,2960,0,1,2}-{2609,2966,0,1,0}-{2605,2967,0,1,5}-{2609,2963,0,1,2}-{2496,2857,0,1,4}-{2493,2849,0,1,4}-{2474,2860,0,1,1}-{2470,2865,0,1,4}-{2462,2874,0,1,1}-{2458,2853,0,1,4}-{2454,2876,0,1,5}-{2478,2884,0,1,6}-{2469,2886,0,1,5}-{2442,2876,0,1,1}-{2490,2903,0,1,1}-{2477,2928,0,1,4}-{2492,2956,0,1,1}-{2502,2956,0,1,4}-{2499,2965,0,1,0}-{2508,2968,0,1,4}-{2500,2974,0,1,0}-{3175,3948,0,1,1}-{3200,3931,0,1,1}-{3220,3921,0,1,7}-{2478,3272,0,1,1}-{2465,3276,0,1,1}-{2468,3277,0,1,4}-{2466,3271,0,1,5}-{2468,3277,0,1,0}'), +(96, '{2842,3450,0,0,0}-{2872,3437,0,0,0}-{2873,3449,0,0,0}-{2868,3456,0,0,0}-{2856,3490,0,0,0}-{2861,3492,0,0,0}-{2862,3505,0,0,0}-{2856,3507,0,0,0}-{3004,3920,0,1,7}-{3007,3925,0,1,3}-{3005,3927,0,1,0}-{3004,3924,0,1,3}-{2988,3918,0,1,2}-{2992,3921,0,1,2}-{2990,3923,0,1,3}-{2988,3925,0,1,6}-{2987,3921,0,1,6}'), +(97, '{2847,3485,0,0,0}-{2847,3489,0,0,0}-{2833,3511,0,0,0}-{2831,3506,0,0,0}-{2834,3514,0,0,0}-{3003,3921,0,1,6}-{3009,3920,0,1,3}-{3001,3923,0,1,1}-{3001,3927,0,1,4}-{2993,3919,0,1,4}-{2994,3924,0,1,1}-{2988,3918,0,1,4}'), +(98, '{3014,3294,0,1,1}'), +(99, '{2624,3319,0,1,1}-{2624,3327,0,1,6}-{2642,3314,0,1,4}-{2646,3325,0,1,1}-{2790,3199,0,1,2}-{2784,3188,0,1,1}-{2779,3207,0,1,1}'), +(100, '{2551,3408,0,1,6}-{2553,3405,0,1,3}-{2559,3452,0,1,3}-{2567,3440,0,1,3}'), +(101, '{2555,3407,0,1,3}-{2624,3391,0,1,1}-{2622,3389,0,1,4}-{2619,3390,0,1,4}-{2553,3457,0,1,3}-{2573,3437,0,1,3}'), +(102, '{2622,3390,0,1,7}-{2622,3390,0,1,7}'), +(103, '{2501,3289,0,1,1}-{2928,3251,1,1,3}-{3277,3659,0,1,1}-{3280,3658,0,1,1}-{3277,3661,0,1,3}-{3276,3657,0,1,3}-{3241,9907,0,1,4}-{3243,9914,0,1,1}-{3242,9913,0,1,6}-{3242,9916,0,1,5}-{3239,9914,0,1,1}-{2928,3244,1,1,4}-{2924,3253,1,1,3}-{2927,3252,1,1,4}-{2927,3254,1,1,3}'), +(104, '{3093,3357,1,1,6}'), +(105, '{2632,3280,0,1,1}-{2633,3274,0,1,3}-{3094,3601,0,1,6}-{3109,3600,0,1,2}-{3091,3604,0,1,0}-{2497,3164,0,1,2}-{3023,4508,0,1,7}-{2696, 3329, 0,1,4}-{2708, 3336, 0,1,4}'), +(106, '{2968,3480,0,1,6}-{2968,3490,0,1,0}-{2978,3507,0,1,1}-{2959,3445,0,1,3}-{2807,3377,0,1,6}-{3289,3353,0,1,3}'), +(107, '{2602,3267,0,1,6}-{2603,3270,0,1,4}-{2607,3268,0,1,5}-{3275,3154,0,1,6}-{3038,9802,0,1,5}-{3041,9804,0,1,6}-{3040,9795,0,1,7}-{3055,9776,0,1,4}-{3039,9769,0,1,6}-{3049,9764,0,1,3}-{3050,9770,0,1,1}-{3039,9765,0,1,1}-{3048,9762,0,1,4}-{3044,9760,0,1,6}-{3048,9779,0,1,1}-{2870,3166,0,1,3}-{2868,3159,0,1,4}-{2867,3172,0,1,5}-{2813,3112,0,1,4}-{2858,3167,0,1,3}-{2846,3153,0,1,3}-{2851,3149,0,1,1}-{2789,2949,0,1,3}-{2787,2943,0,1,3}-{2781,2949,0,1,3}-{3253,9909,0,1,4}-{3300,3312,0,1,1}-{3300,3305,0,1,3}-{3298,3300,0,1,5}-{3298,3294,0,1,0}-{3299,3290,0,1,6}-{2645,9823,0,1,1}-{2641,9819,0,1,7}-{2641,9817,0,1,2}-{2642,9813,0,1,5}-{2639,9809,0,1,2}-{2585,3479,0,1,1}-{2578,3476,0,1,7}-{2588,3485,0,1,3}'), +(108, '{2715,3218,0,0,0}-{2719,3223,0,0,0}-{2720,3212,0,0,0}-{2722,3220,0,0,0}-{2724,3215,0,0,0}-{2729,3224,0,0,0}-{2733,3225,0,0,0}-{2936,9777,0,0,0}-{2934,9765,0,0,0}-{2932,9755,0,0,0}-{2726,3217,0,0,0}-{2728,3218,0,0,0}-{2735,3219,0,0,0}-{2723,3212,0,0,0}-{2721,3216,0,0,0}-{2716,3219,0,0,0}-{2725,3227,0,0,0}'), +(109, '{2601,3269,0,0,0}-{2604,3272,0,0,0}-{2605,3268,0,0,0}-{2606,3271,0,0,0}'), +(110, '{3050,10337,0,1,4}-{3047,10340,0,1,4}-{3048,10346,0,1,0}-{3048,10346,0,1,3}-{3305,9400,0,1,1}-{3296,9378,0,1,3}-{3234,5497,0,1,1}-{2564,9887,0,1,4}-{2581,9897,0,1,1}-{2577,9888,0,1,1}'), +(111, '{2920,3800,0,1,0}-{2955,3901,0,1,6}-{3043,9581,0,1,1}-{3055,9577,0,1,6}-{3061,9576,0,1,4}-{3055,9571,0,1,7}-{3052,9566,0,1,6}'), +(112, '{2699,3206,0,1,1}-{3165,9880,0,1,3}-{3168,9880,0,1,1}-{3159,9903,0,1,4}-{2825,3249,0,1,6}-{3156,9907,0,1,0}-{2554,3411,0,1,3}-{2560,3406,0,1,3}-{2554,3400,0,1,3}-{2551,3401,0,1,4}-{3202,5490,0,1,4}-{3237,5555,0,1,5}-{2543,9823,0,1,3}-{2540,9819,0,1,5}-{2543,9817,0,1,4}'), +(113, '{2622,3272,0,0,0}-{2896,2946,0,0,0}-{2918,2961,0,0,0}-{2926,2986,0,0,0}-{2930,3044,0,0,0}-{2926,3056,0,0,0}-{2916,3065,0,0,0}-{2835,9526,0,1,4}-{2832,9514,0,1,4}-{2825,9521,0,1,5}-{2846,9520,0,1,3}-{2838,9508,0,1,0}-{2832,9495,0,1,6}-{2838,9492,0,1,6}-{2851,9485,0,1,3}-{2847,9481,0,1,3}-{2865,9494,0,1,3}-{2855,9502,0,1,2}-{2870,9496,0,1,1}-{2851,9511,0,1,2}-{2853,9519,0,1,3}-{2857,9520,0,1,6}-{2863,9525,0,1,1}-{2869,9530,0,1,5}-{2865,9515,0,1,4}-{2868,9507,0,1,3}-{2874,9512,0,1,6}'), +(115, '{2572,3028,0,1,2}-{2550,3046,0,1,4}-{2572,3034,0,1,3}-{2576,3026,0,1,4}-{2534,2975,0,1,1}-{2518,2974,0,1,1}-{2573,2987,0,1,1}-{2592,2967,0,1,3}-{2589,2961,0,0,2}-{2575,2989,0,1,0}-{2574,2992,0,1,4}-{2521,2974,0,1,4}-{2500,3092,0,1,6}-{2524,3375,0,1,3}-{2524,3374,0,1,3}-{2529,3374,0,1,3}-{2532,3375,0,1,1}-{2532,3373,0,1,1}-{2527,3376,0,1,6}-{2525,3373,0,1,7}-{2525,3373,0,1,5}-{2511,3086,0,1,1}-{2511,3084,0,1,3}-{2503,3114,0,1,6}-{2509,3120,0,1,4}-{2506,3107,0,1,4}-{2500,3112,0,1,4}-{2521,3045,0,1,6}-{2517,3043,0,1,5}-{2500,3095,0,1,3}-{2497,3090,0,1,4}-{2502,3099,0,1,4}-{2504,3097,0,1,4}-{2503,3134,0,1,3}-{2554,3196,0,1,7}-{2519,3039,0,1,4}'), +(116, '{2622,3277,0,1,5}'), +(117, '{2907,9737,0,1,5}-{2913,9733,0,1,2}-{2904,9728,0,1,6}-{2902,9736,0,1,3}-{2908,9732,0,1,4}-{2909,9726,0,1,1}-{3118,9845,0,1,4}-{3111,9844,0,1,6}-{3123,9845,0,1,3}-{3114,9833,0,1,3}-{3110,9841,0,1,1}-{3119,9839,0,1,1}-{3097,9832,0,1,0}-{3101,9832,0,1,1}-{3107,9829,0,1,3}-{3115,9831,0,1,4}-{3109,9835,0,1,4}-{3044,10321,0,1,2}-{3044,10316,0,1,4}-{3045,10308,0,1,4}-{3048,10317,0,1,2}-{2548,3146,0,1,1}-{2542,3145,0,1,4}-{2503,3150,0,1,4}'), +(118, '{3042,3465,0,1,1}-{3035,3443,0,1,6}-{3042,3468,0,1,3}-{3008,3449,0,1,4}-{3000,9842,0,1,2}-{2996,9844,0,1,4}-{3003,9828,0,1,1}-{2995,9811,0,1,3}-{3002,9811,0,1,3}-{2994,9809,0,1,5}-{3004,9813,0,1,6}-{2998,9828,0,1,4}-{3004,9799,0,1,4}-{2997,9809,0,1,0}-{3019,9813,0,1,4}-{2983,9807,0,1,6}-{3012,9812,0,1,3}-{3010,9811,0,1,3}-{2964,9811,0,1,1}-{3025,9801,0,1,4}-{3026,9824,0,1,1}-{3018,9819,0,1,6}-{3028,9815,0,1,3}-{3024,9811,0,1,4}-{3021,9826,0,1,5}-{3022,9832,0,1,1}-{3023,9833,0,1,6}-{3027,9833,0,1,3}-{3028,9828,0,1,6}-{3023,9814,0,1,6}-{3042,9831,0,1,4}-{3024,9824,0,1,6}-{3019,9847,0,1,0}-{3034,9847,0,1,7}-{3021,9851,0,1,5}-{3043,9824,0,1,3}-{3038,9821,0,1,1}-{3044,9818,0,1,4}-{3047,9814,0,1,4}-{3037,9814,0,1,6}-{2603,3056,0,1,0}-{2598,3064,0,1,3}-{2589,3068,0,1,5}'), +(119, '{3248,3794,0,1,1}-{2925,9766,0,1,7}-{2921,9758,0,1,3}-{2935,9770,0,1,1}-{2935,9761,0,1,0}-{3029,10313,0,1,4}-{3028,10309,0,1,4}-{3033,10311,0,1,6}-{3035,10309,0,1,1}-{3035,10313,0,1,1}-{3244,3797,0,1,3}-{3245,3790,0,1,4}-{3239,3781,0,1,5}-{3253,3791,0,1,1}-{3245,3802,0,1,1}-{3250,3808,0,1,3}-{3246,3800,0,1,6}-{3246,3795,0,1,2}'), +(122, '{2996,9574,0,1,6}-{3007,9579,0,1,7}-{3001,9580,0,1,4}-{3018,9580,0,1,3}-{3021,9585,0,1,4}-{3024,9582,0,1,4}-{2507,3726,0,1,2}-{2523,3724,0,1,3}-{2535,9556,0,1,4}'), +(123, '{3023,3801,0,1,4}-{3021,3805,0,1,0}-{3026,3805,0,1,1}-{3029,3801,0,1,3}-{3020,3808,0,1,3}-{3027,3810,0,1,6}-{3032,3805,0,1,1}-{2533,9554,0,1,4}-{2531,9556,0,1,5}-{2522,9562,0,1,4}-{2524,9558,0,1,4}-{2518,9562,0,1,6}-{2515,9566,0,1,3}-{2517,9573,0,1,1}'), +(124, '{3118,9974,0,1,6}-{3119,9971,0,1,3}-{3120,9976,0,1,3}-{3124,9974,0,1,6}-{3142,5532,0,1,6}-{3141,5531,0,1,6}-{3139,5526,0,1,3}-{3143,5524,0,1,3}-{3148,5523,0,1,4}-{3148,5531,0,1,4}'), +(125, '{2845,3517,0,1,4}-{2848,3515,0,1,4}-{3050,9570,0,1,3}-{2958,3867,0,1,3}-{2956,3857,0,1,6}-{2952,3862,0,1,3}-{2949,3858,0,1,4}-{2955,3875,0,1,7}-{2954,3874,0,1,5}-{2962,3876,0,1,1}-{2961,3877,0,1,3}-{2947,3878,0,1,6}-{2959,3884,0,1,4}-{2956,3885,0,1,3}-{2956,3886,0,1,3}-{2948,3886,0,1,1}-{3043,9579,0,1,2}-{3056,9585,0,1,0}-{3058,9575,0,1,1}-{3052,9582,0,1,0}-{3049,9577,0,1,4}-{3042,9586,0,1,6}-{3052,9588,0,1,1}-{3049,9590,0,1,5}-{3060,9578,0,1,3}-{3054,9566,0,1,7}-{3227,5443,0,1,5}-{3220,5448,0,1,5}-{3208,5443,0,1,6}-{3207,5448,0,1,4}'), +(126, '{2381,4422,0,1,5}-{2381,4425,0,1,4}-{2382,4429,0,1,0}-{2385,4419,0,1,0}-{2388,4421,0,1,1}-{2388,4428,0,1,4}'), +(127, '{2956,9794,0,0,0}-{2954,9786,0,0,0}-{2966,9790,0,0,0}-{2963,9781,0,0,0}-{3193,3959,0,0,0}-{3188,3960,0,0,0}-{3190,3962,0,0,0}-{3187,3959,0,0,0}-{3192,3961,0,0,0}-{3187,3960,0,0,0}-{3193,3959,0,0,0}-{3187,3961,0,0,0}'), +(128, '{2610,3274,0,0,0}-{2610,3275,0,0,0}-{2615,3276,0,0,0}-{2616,3275,0,0,0}-{2616,3276,0,0,0}-{3193,3958,0,0,0}-{2877,3154,0,0,0}-{2878,3153,0,0,0}-{2870,3161,0,0,0}-{2822,3192,0,1,5}-{2770,3213,0,0,0}-{2759,3179,0,0,0}-{2741,3173,0,0,0}-{2757,3170,0,0,0}-{2746,3167,0,0,0}-{2784,3173,0,0,0}-{2746,3147,0,0,0}-{2733,3162,0,0,0}-{2730,3146,0,0,0}-{2782,3104,0,0,0}-{2782,3103,0,0,0}-{2777,3090,0,0,0}-{2773,3089,0,0,0}-{2803,3115,0,0,0}-{2808,3112,0,0,0}-{2887,3145,0,0,0}-{2824,3084,0,0,0}-{2821,3078,0,0,0}-{2817,3078,0,0,0}-{2837,3076,0,0,0}-{2844,3040,0,0,0}-{2840,3049,0,0,0}-{2837,3043,0,0,0}-{2834,3042,0,0,0}-{2827,3026,0,0,0}-{2824,3018,0,0,0}-{2830,3021,0,0,0}-{2832,3018,0,0,0}-{2925,2969,0,0,0}-{2939,2977,0,0,0}-{2936,2980,0,0,0}-{2933,2976,0,0,0}-{2930,2971,0,0,0}-{2928,2984,0,0,0}-{2942,2983,0,0,0}-{2936,2989,0,0,0}'), +(131, '{2594,3271,0,1,4}-{2593,3269,0,1,1}-{2592,3272,0,1,6}'), +(132, '{2600,3275,0,1,6}-{2600,3279,0,1,4}-{2603,3279,0,1,3}-{2603,3281,0,1,3}-{2604,3277,0,1,6}-{2867,3163,0,1,3}-{2883,3147,0,1,6}-{2856,3144,0,1,7}-{2812,3180,0,1,1}-{2791,3181,0,1,3}-{2749,3173,0,1,3}-{2758,3170,0,1,4}-{2754,3167,0,1,3}-{2754,3175,0,1,1}-{2891,3079,0,1,1}-{2897,3064,0,1,0}-{2896,3071,0,1,1}-{2837,3038,0,1,0}-{2837,3041,0,1,3}-{2831,3031,0,1,3}-{2818,3054,0,1,4}-{2832,3050,0,1,6}-{2832,3011,0,1,4}-{2784,3005,0,1,1}-{2782,3008,0,1,1}-{2791,2999,0,1,2}-{2791,2988,0,1,1}-{2795,2987,0,1,6}-{2797,2985,0,1,3}-{2876,3011,0,1,3}-{2863,3021,0,1,3}-{2867,3016,0,1,1}-{2871,3022,0,1,4}-{2877,3028,0,1,3}-{2868,3012,0,1,4}-{2910,3026,0,1,5}-{2902,3010,0,1,1}-{2928,3029,0,1,4}-{2920,3027,0,1,6}-{2875,2936,0,1,2}-{2945,2979,0,1,3}-{2953,2965,0,1,4}-{2952,2982,0,1,4}-{2955,3003,0,1,3}-{2944,2999,0,1,5}-{2932,3023,0,1,3}-{2933,3024,0,1,3}-{2929,3009,0,1,0}-{2927,3022,0,1,1}-{2926,3023,0,1,6}-{2927,3020,0,1,7}-{2908,3078,0,1,4}-{2920,3081,0,1,4}-{2890,3082,0,1,1}-{2916,3082,0,1,1}'), +(133, '{3079,3618,0,0,7}-{3070,3629,0,0,3}-{3073,3634,0,0,6}-{3088,3636,0,0,3}-{3092,3637,0,0,2}-{3073,3636,0,0,0}-{3070,3657,0,0,5}-{3109,3634,0,0,2}-{3114,3628,0,0,1}-{3107,3626,0,0,2}-{3118,3639,0,0,5}-{3119,3627,0,0,3}-{3119,3604,0,0,1}-{3136,3612,0,0,5}-{3124,3586,0,0,0}'), +(134, '{3088,9945,0,1,3}-{3089,9943,0,1,0}-{3090,9944,0,1,7}-{3043,10262,0,1,1}-{3044,10252,0,1,4}-{3051,10257,0,1,3}-{3055,10253,0,1,3}-{3067,10255,0,1,3}-{3067,10257,0,1,3}-{3068,10253,0,1,2}-{3069,10257,0,1,4}-{3069,10259,0,1,0}-{2876,9810,0,1,4}-{2876,9803,0,1,5}-{2869,9799,0,1,4}-{2858,9804,0,1,7}-{2857,9821,0,1,4}-{2869,9816,0,1,0}-{2849,9817,0,1,6}-{3278,5477,0,1,1}-{3278,5476,0,1,2}-{3277,5451,0,1,5}-{3283,5449,0,1,4}-{3280,5476,0,1,3}-{3274,5463,0,1,1}-{3272,5477,0,1,1}-{3271,5473,0,1,4}-{3270,5459,0,1,1}-{3271,5454,0,1,3}-{3278,5525,0,1,3}-{3272,5529,0,1,3}-{3270,5536,0,1,6}-{3277,5536,0,1,4}-{3277,5512,0,1,3}-{3279,5516,0,1,6}-{3280,5531,0,1,6}-{2598,9558,0,1,6}-{2599,9557,0,1,4}-{2598,9556,0,1,4}-{2600,9555,0,1,3}-{2601,9553,0,1,1}-{2572,9569,0,1,3}-{2599,9552,0,1,6}-{2601,9560,0,1,1}-{2599,9564,0,1,6}-{2600,9563,0,1,4}-{2597,9569,0,1,1}-{2594,9571,0,1,2}-{2589,9571,0,1,4}-{2589,9574,0,1,3}-{2584,9572,0,1,6}-{2581,9575,0,1,6}-{2583,9577,0,1,6}-{2582,9572,0,1,3}-{2572,9568,0,1,1}-{2570,9567,0,1,1}-{2572,9571,0,1,3}-{2575,9572,0,1,0}-{2577,9574,0,1,3}-{2580,9578,0,1,3}-{2597,9572,0,1,6}'), +(138, '{2375,3434,0,1,4}-{2379,3438,0,1,6}'), +(139, '{2378,3432,0,1,2}-{2375,3438,0,1,7}-{2376,3431,0,1,1}-{2380,3438,0,1,4}'), +(141, '{3324,5510,0,1,3}-{3286,5512,0,1,1}-{3310,5524,0,1,2}-{3289,5527,0,1,7}-{3296,5519,0,1,4}'), +(142, '{2514,3194,0,1,3}-{2547,3178,0,1,1}'), +(143, '{2787,2929,0,1,6}-{2835,2934,0,1,4}-{2889,2936,0,1,2}-{2921,2937,0,1,1}'), +(144, '{3043,9779,0,1,4}-{3047,9769,0,1,1}-{2847,3282,0,1,6}-{2846,3293,0,1,6}-{2850,3301,0,1,4}-{2852,3308,0,1,4}-{2861,3297,0,1,1}-{2863,3283,0,1,5}'), +(146, '{2827,3139,0,1,0}-{2976,3053,0,1,0}-{2985,3038,0,1,0}-{2994,3048,0,1,5}-{2992,3030,0,1,0}-{2896,2992,0,1,7}'), +(151, '{2756,3156,0,1,4}-{2760,3152,0,1,6}'), +(152, '{3103,3347,0,0,0}-{3107,3337,0,0,0}-{3107,3342,0,0,0}-{3107,3344,0,0,0}-{3108,3346,0,0,0}-{3111,3339,0,0,0}-{3111,3348,0,0,0}-{3115,3344,0,0,0}-{3120,3344,0,0,0}-{3122,3335,0,0,0}'), +(153, '{2415,4466,0,0,0}-{2419,4427,0,0,0}-{2421,4468,0,0,0}-{2426,4431,0,0,0}-{2500,3492,0,1,4}-{2245,3147,0,1,4}-{2246,3143,0,1,0}-{2242,3140,0,1,3}-{2247,3149,0,1,1}'), +(154, '{2394,4453,0,0,0}-{2394,4457,0,0,0}-{2406,4447,0,0,0}-{2568,3470,0,1,5}-{2523,3164,0,1,4}-{2534,3173,0,1,3}-{2538,3160,0,1,3}-{2246,3144,0,1,4}-{2245,3147,0,1,4}-{2240,3147,0,1,3}-{2247,3142,0,1,5}'), +(155, '{3235,3222,0,0,0}-{3255,3226,0,0,0}-{2561,3471,0,1,0}'), +(157, '{2502,3521,0,1,0}'), +(162, '{2480,3426,0,1,6}-{2489,3429,0,1,1}-{2480,3431,0,1,0}-{2475,3418,0,1,4}-{2470,3423,0,1,1}'), +(166, '{2450,3480,1,0,1}-{2449,3480,1,0,1}-{2448,3480,1,0,1}-{2440,3488,1,0,4}-{2440,3487,1,0,4}-{2448,3427,1,0,6}-{2448,3424,1,0,6}-{2443,3424,1,0,3}-{2443,3425,1,0,3}'), +(170, '{2890,3175,0,1,4}'), +(172, '{3225,3369,0,1,3}-{3226,3371,0,1,7}-{3230,3372,0,1,0}-{3230,3370,0,1,3}-{3229,3368,0,1,1}-{3227,3367,0,1,1}'), +(174, '{3095,3232,0,1,6}-{3095,3231,0,1,0}-{3225,3370,0,1,4}-{3230,3370,0,1,3}'), +(175, '{3084,3495,0,1,4}-{2994,9549,0,1,6}-{2993,9551,0,1,6}-{2995,9555,0,1,6}-{2999,9548,0,1,0}-{3182,3365,0,1,6}'), +(178, '{2892,9709,0,1,6}-{2915,9708,0,1,7}-{2899,9702,0,1,1}-{2907,9711,0,1,4}-{2938,9811,0,1,6}-{3096,3220,0,1,1}-{3273,3507,0,1,6}'), +(179, '{3025,3511,1,1,3}-{3038,3505,0,1,4}-{3026,3494,0,1,6}-{3026,3505,0,1,4}-{3026,3512,0,1,6}-{3025,3512,0,1,4}-{3027,3512,0,1,6}-{3030,3511,0,1,6}-{3028,3511,0,1,1}-{3039,3855,0,1,4}-{3031,3852,0,1,1}-{3032,3849,0,1,3}-{3023,3849,0,1,6}-{3022,3847,0,1,3}-{3023,3514,1,1,3}-{3014,3516,2,1,1}'), +(180, '{2744,3519,0,0,0}-{2957,3238,0,1,4}-{2988,3423,0,1,7}-{2953,3240,0,1,3}-{3011,3277,0,1,1}-{3009,3280,0,1,1}-{3110,3295,0,1,4}'), +(181, '{3105,9942,0,1,3}-{3106,9934,0,1,3}-{3109,9930,0,1,1}-{2937,9847,0,0,0}-{2930,9850,0,0,0}-{2934,9846,0,0,0}-{2930,9845,0,0,0}-{2563,3355,0,1,4}-{2561,3355,0,1,3}-{2561,3357,0,1,1}-{2563,3358,0,1,4}'), +(182, '{3041,3958,0,0,0}-{3043,3958,0,0,0}-{3039,3958,0,0,0}-{3039,3950,0,0,0}-{3041,3958,0,0,0}-{3041,3954,0,0,0}-{3038,3957,0,0,0}-{3041,3954,0,0,0}-{3038,3955,0,0,0}-{3690,2966,0,1,4}'), +(183, '{3043,3958,0,0,0}-{3043,3950,0,0,0}-{3042,3950,0,0,0}-{3039,3951,0,0,0}-{3044,3949,0,0,0}-{2805,3160,0,0,0}-{2803,3190,0,1,4}-{2795,3167,0,0,0}-{2793,3184,0,1,3}-{3670,2977,0,1,1}-{3654,2960,0,1,0}-{3698,2969,0,1,2}-{3676,2991,0,1,3}-{3666,2994,0,1,7}-{3666,2981,1,1,4}'), +(184, '{2994,9584,0,1,6}-{2992,9573,0,1,1}-{2990,9583,0,1,4}-{2998,9572,0,1,2}-{2998,9573,0,1,4}-{2989,9578,0,1,0}-{2993,9566,0,1,4}-{2994,9570,0,1,3}-{3659,2952,0,1,6}-{3669,2961,0,1,4}-{3683,2977,0,1,6}-{3668,2981,0,1,3}-{3655,2973,0,1,1}-{3675,2967,0,1,3}'), +(186, '{3158,3571,0,0,7}-{3170,3575,0,0,0}-{3172,3578,0,0,5}-{3175,3564,0,0,4}-{3176,3570,0,0,2}-{3180,3565,0,0,5}-{3189,3565,0,0,7}-{3189,3580,0,0,0}-{3192,3568,0,0,7}-{3159,3563,0,0,1}-{3163,3572,0,0,6}-{3173,3574,0,0,3}-{3179,3561,0,0,2}'), +(188, '{2933,3516,0,1,3}-{2935,3515,0,1,3}-{2932,3514,0,1,2}-{3158,5497,0,1,6}-{3157,5494,0,1,1}-{3155,5498,0,1,6}-{3140,5494,0,1,6}-{3143,5493,0,1,5}-{3142,5497,0,1,4}-{3156,5494,0,1,5}-{3148,5496,0,1,4}'), +(189, '{3151,5489,0,1,7}-{3145,5495,0,1,3}-{3142,5493,0,1,3}-{3149,5489,0,1,6}-{3155,5491,0,1,2}-{3142,5497,0,1,3}'), +(190, '{2837,9815,0,1,1}-{2833,9814,0,1,2}-{2831,9808,0,1,3}-{2829,9804,0,1,7}-{2825,9806,0,1,1}-{2828,9809,0,1,3}-{2826,9813,0,1,6}'), +(191, '{2730,3161,0,0,0}-{2729,3159,0,0,0}-{2727,3163,0,0,0}-{2725,3157,0,0,0}-{2726,3161,0,0,0}-{2725,3161,0,0,0}-{2723,3155,0,0,0}-{2723,3156,0,0,0}-{2725,3162,0,0,0}-{2775,3066,0,0,0}-{2802,3071,0,0,0}-{2800,3016,0,0,0}-{2868,3053,0,0,0}-{2770,3018,0,0,0}-{2770,3014,0,0,0}-{2840,3018,0,0,0}-{2919,2983,0,0,0}-{2937,2993,0,0,0}-{2940,2994,0,0,0}-{2940,2997,0,0,0}-{2942,2997,0,0,0}'), +(192, '{3027,3612,0,1,6}-{3021,3611,0,1,1}-{3036,3613,0,1,4}-{3024,3606,0,1,1}-{3023,3634,0,1,3}-{3026,3637,0,1,5}-{3031,3637,0,1,2}-{3035,3637,0,1,6}-{3034,3632,0,1,6}-{3035,3629,0,1,6}-{3035,3625,0,1,5}-{3029,3626,0,1,3}-{3032,3626,0,1,4}-{3022,3626,0,1,1}-{3023,3623,0,1,6}'), +(193, '{2581,9505,0,1,4}-{2594,9497,0,1,1}-{2593,9499,0,1,7}-{2587,9498,0,1,3}-{2573,9500,0,1,5}-{2579,9503,0,1,5}-{2580,9500,0,1,4}-{2578,9497,0,1,7}'), +(195, '{3042,3708,0,0,6}-{3037,3702,0,0,5}'), +(196, '{3038,3670,0,1,1}-{3034,3674,0,1,2}'), +(198, '{3190,3358,0,1,1}'), +(199, '{3079,3443,0,1,3}'), +(201, '{2931,9692,0,0,0}'), +(205, '{2613,9523,0,1,0}'), +(206, '{3026,3455,0,1,6}-{3015,3458,0,1,5}'), +(208, '{2568,3459,0,1,4}'), +(209, '{3013,3452,0,1,6}'), +(216, '{2851,3348,0,0,7}'), +(217, '{2852,3343,0,1,2}'), +(222, '{2851,3351,0,0,7}-{2849,3348,0,0,7}'), +(225, '{2641,3437,0,0,0}'), +(227, '{2643,3439,0,0,0}'), +(228, '{2634,3427,0,0,0}'), +(229, '{2628,3413,0,1,4}'), +(230, '{2649,3454,0,0,0}'), +(231, '{2650,3468,0,0,0}'), +(232, '{2879,3465,0,0,0}'), +(237, '{2769,3403,0,1,0}-{2766,3402,0,1,3}-{2770,3402,0,1,0}-{2772,3404,0,1,1}-{2767,3405,1,1,0}-{2771,3403,1,1,6}-{2767,3401,1,1,7}'), +(239, '{2758,3516,1,0,0}'), +(240, '{2760,3501,0,1,1}'), +(241, '{2762,3498,0,0,0}'), +(242, '{2764,3509,1,0,0}'), +(243, '{2756,3513,1,0,0}'), +(244, '{2765,3504,1,0,0}'), +(245, '{2755,3517,0,0,0}'), +(247, '{2769,3402,2,1,5}'), +(250, '{2924,3405,0,0,1}'), +(251, '{2761,3512,0,0,0}'), +(253, '{2616,3172,0,1,1}-{2583,3142,0,1,6}'), +(254, '{2565,3150,0,1,6}-{2564,3146,0,1,5}-{2572,3143,0,1,4}'), +(255, '{2601,3195,0,1,3}-{2615,3188,0,1,6}-{2606,3186,0,1,3}'), +(256, '{2568,3144,0,1,3}-{2606,3180,0,1,5}-{2600,3184,0,1,4}-{2598,3185,0,1,6}-{2593,3175,0,1,2}-{2594,3182,0,1,3}-{2594,3188,0,1,3}-{2593,3193,0,1,3}-{2592,3179,0,1,1}-{2605,3171,0,1,3}-{2581,3170,0,1,6}-{2580,3166,0,1,6}-{2577,3163,0,1,1}-{2585,3150,0,1,4}'), +(259, '{2567,3140,0,0,0}'), +(260, '{2589,3142,0,0,0}'), +(261, '{2587,3142,0,0,0}'), +(262, '{2616,3162,0,0,0}-{2616,3161,0,0,0}-{2596,3142,0,0,0}'), +(263, '{2597,3143,0,0,0}'), +(265, '{2616,3167,0,0,0}'), +(267, '{2601,3168,0,0,0}'), +(268, '{2583,3171,0,0,0}'), +(278, '{3209,3215,0,0,0}'), +(279, '{2604,3209,0,0,0}'), +(281, '{2604,3219,0,0,0}-{2609,3207,0,0,0}-{2618,3211,0,0,0}'), +(282, '{3280,3494,0,1,6}'), +(284, '{2953,3450,0,0,0}'), +(285, '{3110,3330,0,0,0}'), +(286, '{3111,3367,2,0,4}'), +(287, '{2770,3403,2,1,3}'), +(288, '{3110,3366,2,0,2}-{2677,3655,0,1,3}-{2681,3653,0,1,6}'), +(289, '{2616,3302,0,1,3}'), +(290, '{2614,3306,0,1,4}'), +(296, '{3084,3518,0,1,1}'), +(297, '{3093,3518,0,1,5}'), +(298, '{3113,3513,0,1,3}'), +(299, '{3113,3511,0,1,3}'), +(300, '{3105,9569,0,0,0}'), +(302, '{2519,3429,0,1,1}'), +(304, '{2520,3496,0,1,0}'), +(305, '{2511,3484,0,0,4}'), +(306, '{2514,9580,0,1,1}'), +(307, '{2968,3206,0,0,0}'), +(308, '{2611,3393,0,1,4}'), +(309, '{2716,3530,0,0,0}-{2840,3356,0,0,4}-{2561,3374,0,0,4}-{2562,3374,0,0,4}-{2566,3370,0,0,4}-{2633,3693,0,0,4}-{2633,3694,0,0,4}-{2215,3248,0,0,4}-{2217,3245,0,0,4}-{2213,3241,0,0,4}-{2840,3356,0,0,0}-{2840,3356,0,0,0}-{3104,3424,0,0,0}-{3104,3425,0,0,0}-{2561,3374,0,0,0}-{2561,3374,0,0,0}-{2562,3374,0,0,0}-{2562,3374,0,0,0}-{2566,3370,0,0,0}-{2566,3370,0,0,0}-{2637,3444,0,0,0}-{2633,3693,0,0,0}-{2633,3693,0,0,0}-{2633,3694,0,0,0}-{2633,3694,0,0,0}-{2215,3248,0,0,0}-{2215,3248,0,0,0}-{2217,3245,0,0,0}-{2217,3245,0,0,0}-{2213,3241,0,0,0}-{2213,3241,0,0,0}-{2860,2972,0,0,0}-{2860,2972,0,0,2}-{160,41,0,0,1}'), +(310, '{2537,3406,0,0,4}-{2527,3412,0,0,4}-{2507,3421,0,0,4}-{2508,3421,0,0,4}-{2537,3406,0,0,0}-{2537,3406,0,0,0}-{2527,3412,0,0,0}-{2527,3412,0,0,0}-{2507,3421,0,0,0}-{2507,3421,0,0,0}-{2508,3421,0,0,0}-{2508,3421,0,0,0}-{3239,3243,0,0,6}-{3239,3241,0,0,6}-{3238,3252,0,0,6}-{2860,2972,0,0,6}-{2865,2972,0,0,4}-{162,30,0,0,4}'), +(312, '{2860,3426,0,0,1}-{162,30,0,0,4}-{161,41,0,0,1}'), +(313, '{2853,3423,0,0,1}-{162,30,0,0,4}-{159,41,0,0,1}'), +(316, '{2986,3176,0,0,4}-{3086,3227,0,0,1}-{2996,3157,0,0,1}-{2986,3176,0,0,0}-{2986,3176,0,0,0}-{3085,3230,0,0,0}-{162,41,0,0,6}'), +(322, '{2641,3700,0,0,4}-{2640,3700,0,0,4}-{2266,3253,0,0,4}-{2262,3249,0,0,4}-{2777,2740,0,0,4}-{2780,2741,0,0,4}-{2788,2741,0,0,4}-{2771,2733,0,0,4}-{2771,2734,0,0,4}-{2641,3700,0,0,0}-{2641,3700,0,0,0}-{2641,3700,0,0,0}-{2640,3700,0,0,0}-{2640,3700,0,0,0}-{2640,3700,0,0,0}-{2266,3253,0,0,0}-{2266,3253,0,0,0}-{2266,3253,0,0,0}-{2262,3249,0,0,0}-{2262,3249,0,0,0}-{2262,3249,0,0,0}-{2777,2740,0,0,0}-{2777,2740,0,0,0}-{2777,2740,0,0,0}-{2780,2741,0,0,0}-{2780,2741,0,0,0}-{2780,2741,0,0,0}-{2788,2741,0,0,0}-{2788,2741,0,0,0}-{2788,2741,0,0,0}-{2771,2733,0,0,0}-{2771,2733,0,0,0}-{2771,2733,0,0,0}-{2771,2734,0,0,0}-{2771,2734,0,0,0}-{2771,2734,0,0,0}'), +(323, '{3259,3204,0,0,3}-{3248,3161,0,0,4}-{3259,3206,0,0,3}-{2516,3575,0,0,7}-{2511,3562,0,0,7}-{2498,3547,0,0,7}'), +(324, '{2645,3708,0,0,1}-{2648,3708,0,0,1}-{2632,3427,0,0,0}-{2647,3711,0,0,1}'), +(325, '{2671,3160,0,0,4}-{2672,3160,0,0,4}-{2678,3160,0,0,4}-{2682,3160,0,0,4}-{2683,3160,0,0,4}-{2686,3162,0,0,4}-{2671,3160,0,0,0}-{2671,3160,0,0,0}-{2672,3160,0,0,0}-{2672,3160,0,0,0}-{2678,3160,0,0,0}-{2678,3160,0,0,0}-{2682,3160,0,0,0}-{2682,3160,0,0,0}-{2683,3160,0,0,0}-{2683,3160,0,0,0}-{2686,3162,0,0,0}-{2686,3162,0,0,0}'), +(326, '{2840,3431,0,0,0}-{3246,3156,0,0,0}-{3245,3152,0,0,0}-{3242,3148,0,0,0}-{2855,3423,0,0,1}-{3267,3148,0,0,6}-{3276,3140,0,0,6}-{3275,3140,0,0,6}-{3169,3266,0,0,3}-{3173,3274,0,0,3}-{2607,3416,0,0,1}-{2604,3417,0,0,1}-{2602,3419,0,0,1}'), +(333, '{2845,3429,0,0,6}-{2923,3178,0,0,6}-{2923,3180,0,0,6}-{2926,3180,0,0,6}-{2926,3177,0,0,6}-{2602,3411,0,0,3}-{2605,3413,0,0,3}-{2609,3416,0,0,3}-{2610,3413,0,0,3}-{2605,3421,0,0,1}-{2602,3423,0,0,1}-{2603,3426,0,0,1}-{3128,3510,0,0,1}'), +(334, '{2639,3698,0,0,4}-{2642,3698,0,0,4}-{2267,3253,0,0,4}-{2273,3247,0,0,4}-{2699,2702,0,0,4}-{2694,2706,0,0,4}-{2700,2702,0,0,4}-{2707,2698,0,0,4}-{2612,3411,0,0,0}-{2627,3415,0,0,0}-{2639,3698,0,0,0}-{2639,3698,0,0,0}-{2639,3698,0,0,0}-{2642,3698,0,0,0}-{2642,3698,0,0,0}-{2642,3698,0,0,0}-{2267,3253,0,0,0}-{2267,3253,0,0,0}-{2267,3253,0,0,0}-{2273,3247,0,0,0}-{2273,3247,0,0,0}-{2273,3247,0,0,0}-{2699,2702,0,0,0}-{2699,2702,0,0,0}-{2699,2702,0,0,0}-{2694,2706,0,0,0}-{2694,2706,0,0,0}-{2694,2706,0,0,0}-{2700,2702,0,0,0}-{2700,2702,0,0,0}-{2700,2702,0,0,0}-{2707,2698,0,0,0}-{2707,2698,0,0,0}-{2707,2698,0,0,0}'), +(336, '{2928,3218,0,1,4}'), +(338, '{2929,3222,0,0,6}'), +(340, '{2929,3217,0,1,6}'), +(342, '{3281,3382,0,0,0}'), +(343, '{3284,3382,0,0,0}'), +(344, '{3016,3187,1,1,0}-{3015,3183,1,1,0}-{3014,3181,1,1,0}-{3011,3185,1,1,0}'), +(345, '{3018,3185,2,1,0}'), +(347, '{2523,3292,0,0,0}-{2536,3294,0,0,0}-{2538,3321,0,0,0}'), +(348, '{2501,3315,0,0,0}-{2513,3325,0,0,0}-{2526,3279,0,0,0}-{2528,3297,0,0,0}-{2535,3288,0,0,0}-{2548,3287,0,0,0}'), +(349, '{2556,3266,0,0,0}'), +(350, '{2559,3266,0,0,0}'), +(351, '{2507,3325,0,1,4}'), +(352, '{2511,3322,0,1,0}-{2540,3279,0,1,6}'), +(353, '{2504,3326,0,1,1}-{2509,3314,0,1,3}-{2545,3278,0,1,3}'), +(354, '{2510,3318,0,1,6}-{2524,3271,0,1,3}'), +(355, '{2504,3318,0,0,0}'), +(356, '{2523,3307,0,0,0}'), +(357, '{2518,3309,0,0,0}-{2526,3303,0,0,0}-{2543,3309,0,0,0}-{2550,3319,0,0,0}-{2552,3319,0,0,0}'), +(358, '{2529,3285,0,0,0}'), +(360, '{2550,3272,0,1,4}'), +(361, '{2519,3277,0,1,6}'), +(362, '{2537,3324,0,1,6}'), +(363, '{2513,3315,0,1,4}'), +(364, '{2577,3298,1,0,0}'), +(366, '{2612,3324,0,0,0}'), +(367, '{2935,3210,0,1,2}'), +(368, '{3263,3407,0,1,2}'), +(369, '{2542,3326,0,0,0}-{2545,3324,0,0,0}-{2545,3327,0,0,0}-{2552,3326,0,0,0}-{2553,3322,0,0,0}-{2553,3324,0,0,0}'), +(370, '{2551,3324,1,0,0}-{2551,3327,1,0,0}'), +(371, '{2547,3326,0,0,0}-{2549,3322,0,0,0}-{2550,3326,0,0,0}-{2552,3323,0,0,0}'), +(372, '{2559,3303,0,0,6}-{2561,3303,0,0,6}-{2561,3305,0,0,4}-{2559,3305,0,0,1}'), +(373, '{2516,3274,0,0,0}'), +(375, '{3053,3249,0,0,0}'), +(376, '{3027,3217,0,1,4}'), +(377, '{3028,3223,0,1,2}'), +(378, '{3028,3220,0,1,4}'), +(379, '{2939,3156,0,1,4}'), +(380, '{2953,3149,0,0,0}-{2770,3226,0,0,0}'), +(381, '{2684,3272,0,1,4}'), +(382, '{3044,9758,0,1,3}'), +(384, '{2545,3568,0,1,7}-{2545,3571,0,1,6}'), +(385, '{2549,3568,0,1,6}'), +(387, '{3000,3440,1,0,0}'), +(388, '{2709,3485,0,1,1}-{2716,3475,0,1,3}-{2697,3472,0,1,6}-{2702,3469,0,1,3}'), +(397, '{3254,3258,0,1,1}-{3264,3258,0,1,2}-{3026,3303,0,1,4}-{2880,3248,0,1,0}-{3259,3279,0,1,6}-{3247,3292,0,1,3}-{3260,3291,0,1,2}-{3247,3282,0,1,5}-{3261,3260,0,1,1}-{3252,3283,0,1,6}'), +(398, '{2849,5091,0,0,0}-{2726,3349,0,1,6}'), +(399, '{2846,5081,0,0,0}-{2730,3349,0,1,1}'), +(400, '{2728,3377,0,1,1}'), +(401, '{2800,2943,0,0,0}-{2762,2944,0,0,0}-{2823,2941,0,0,0}-{2861,2941,0,0,0}'), +(402, '{2791,2944,0,0,0}-{2762,2943,0,0,0}-{2818,2939,0,0,0}-{2870,2943,0,0,0}-{2933,2944,0,0,0}'), +(407, '{3059,4507,0,0,3}'), +(411, '{2887,3164,0,0,0}-{2878,3161,0,0,0}'), +(412, '{2728,10122,0,1,1}-{2735,10123,0,1,3}-{2733,10129,0,1,1}-{2728,10133,0,1,6}-{2722,10133,0,1,6}-{2736,10137,0,1,1}-{2732,10142,0,1,0}-{2726,10142,0,1,6}-{2729,10140,0,1,3}-{2720,10144,0,1,6}-{2712,10142,0,1,3}-{2760,3402,0,1,4}-{2759,3400,0,1,1}-{2756,3403,0,1,1}-{2759,3400,0,1,3}-{2755,3402,0,1,1}'), +(419, '{3195,5450,0,1,6}-{3181,5449,0,1,1}'), +(420, '{3175,5454,0,1,4}'), +(421, '{3195,5459,0,1,6}-{3186,5454,0,1,5}-{3173,5494,0,1,6}-{3179,5491,0,1,1}-{3185,5492,0,1,4}-{3184,5487,0,1,3}'), +(423, '{2731,5340,0,1,7}'), +(424, '{2724,5359,0,1,3}'), +(425, '{2717,5332,0,1,7}'), +(428, '{2361,5209,0,1,4}-{2359,5213,0,1,1}-{2364,5215,0,1,6}-{2361,5216,0,1,1}-{2361,5212,0,1,0}'), +(429, '{2363,5214,0,1,6}-{2358,5214,0,1,7}-{2361,5212,0,1,6}'), +(437, '{2807,3191,0,0,0}'), +(444, '{2551,3197,0,1,1}-{2555,3194,0,1,4}-{2551,3157,0,1,3}-{2525,3155,0,1,3}-{2518,3149,0,1,3}-{2502,3175,0,1,1}'), +(445, '{2550,3196,0,1,4}-{2557,3197,0,1,1}-{2538,3155,0,1,7}'), +(446, '{2994,3194,0,1,1}-{3285,9896,0,1,1}-{3279,9895,0,1,6}'), +(447, '{3114,3242,0,1,1}'), +(448, '{3120,3238,0,1,6}'), +(449, '{3127,3248,0,1,1}'), +(450, '{3081,3220,0,1,0}-{3081,3222,0,1,0}'), +(451, '{2994,3215,0,1,2}-{3077,3234,0,1,0}'), +(452, '{3223,3293,0,0,0}'), +(454, '{2899,3430,1,1,3}'), +(455, '{2925,3485,0,1,5}'), +(456, '{3244,3205,0,0,0}'), +(458, '{3148,3175,0,0,4}'), +(459, '{2566,9507,0,1,6}-{2565,9506,0,0,5}-{2566,9507,0,1,3}'), +(460, '{2590,9488,0,1,3}'), +(461, '{2588,3091,1,1,3}'), +(462, '{2590,3084,0,1,5}'), +(469, '{2542,3169,0,1,4}'), +(470, '{2519,3212,0,1,3}'), +(471, '{2526,3160,1,1,6}'), +(472, '{2521,3168,0,1,4}'), +(473, '{2503,3192,0,0,0}-{2514,3159,0,0,6}'), +(475, '{2513,3262,0,1,3}-{2522,3251,0,1,1}-{2454,3300,0,1,7}-{2455,3301,0,1,7}'), +(477, '{2455,3301,0,1,6}'), +(478, '{2509,3255,0,1,3}-{2503,3254,1,1,3}'), +(481, '{2499,3266,0,0,4}'), +(482, '{2524,3258,0,1,4}'), +(483, '{2501,3234,0,0,4}'), +(484, '{2542,3169,0,1,4}-{2541,3170,0,1,4}-{2537,3168,0,1,5}'), +(491, '{2919,9849,0,1,4}-{2915,9845,0,1,3}-{2922,9833,0,1,6}'), +(494, '{2807,3443,0,0,6}-{2810,3443,0,0,6}-{2657,3283,0,0,3}-{2657,3286,0,0,3}-{2615,3094,0,0,3}-{2615,3092,0,0,3}-{2615,3092,0,0,3}-{2615,3094,0,0,3}-{3122,3125,0,0,6}-{3120,3125,0,0,6}-{3090,3242,0,0,4}-{3090,3245,0,0,4}-{3090,3243,0,0,4}-{2584,3422,0,0,4}-{2584,3419,0,0,4}-{3682,2981,0,0,3}-{2618,3330,0,0,0}-{2619,3330,0,0,0}-{2584,3418,0,0,4}'), +(495, '{2809,3443,0,0,6}-{2811,3443,0,0,6}-{2615,3091,0,0,3}-{2615,3091,0,0,3}-{2615,3330,0,0,0}-{2584,3421,0,0,4}'), +(496, '{3267,3164,0,0,4}-{3267,3167,0,0,4}-{3267,3169,0,0,4}-{3682,2983,0,0,3}'), +(497, '{3267,3166,0,0,4}-{3267,3168,0,0,4}-{3682,2982,0,0,3}'), +(498, '{2384,4457,0,0,7}-{2385,4461,0,0,1}'), +(499, '{2853,2953,0,0,1}-{2852,2953,0,0,1}'), +(500, '{2880,2951,0,0,6}'), +(504, '{2870,2950,0,0,0}-{2877,2959,0,0,0}'), +(505, '{2868,2954,0,0,6}-{2876,2948,0,0,1}'), +(510, '{2780,3211,0,0,0}'), +(511, '{2834,2956,0,0,0}'), +(512, '{2862,2995,1,0,0}'), +(513, '{2857,2962,0,0,6}'), +(514, '{2824,2888,1,0,0}'), +(515, '{2834,2987,0,0,0}'), +(516, '{2826,2958,0,1,3}'), +(517, '{2870,2970,0,0,0}'), +(518, '{2764,2959,1,0,0}'), +(519, '{3228,3203,0,1,6}'), +(520, '{3217,3241,0,1,4}'), +(521, '{3217,3240,0,1,3}'), +(522, '{3218,3415,0,1,3}'), +(523, '{3217,3411,0,1,3}'), +(524, '{3316,3184,0,1,3}'), +(525, '{3316,3182,0,1,3}'), +(527, '{2959,3390,0,1,1}-{2957,3388,0,1,3}'), +(528, '{3078,3512,0,1,3}'), +(529, '{3079,3507,0,1,7}'), +(530, '{2947,3217,0,1,1}'), +(531, '{2947,3212,0,1,1}'), +(532, '{2906,3145,0,1,3}'), +(533, '{2906,3144,0,1,3}'), +(534, '{2375,4449,0,1,5}'), +(535, '{2376,4447,0,0,0}'), +(536, '{3192,3359,1,1,3}'), +(537, '{3192,3355,1,1,6}'), +(538, '{3076,3429,0,1,3}'), +(539, '{3299,3204,0,0,0}'), +(540, '{3288,3212,0,1,6}'), +(541, '{3288,3190,0,1,3}'), +(542, '{3316,3175,0,1,3}'), +(543, '{3272,3182,0,1,6}'), +(544, '{3316,3164,0,1,3}'), +(545, '{3322,3195,0,1,3}'), +(546, '{3203,3433,0,1,3}'), +(547, '{3217,3435,0,0,3}'), +(548, '{3205,3416,0,1,6}'), +(549, '{3229,3438,0,1,6}'), +(550, '{3232,3423,0,1,6}'), +(551, '{3203,3397,0,1,3}'), +(552, '{3205,3399,0,1,3}'), +(553, '{3253,3403,0,1,1}'), +(554, '{3281,3398,0,1,3}'), +(556, '{3012,3244,0,1,6}'), +(557, '{3012,3203,0,1,1}'), +(558, '{3013,3221,0,1,6}-{160,27,0,1,7}'), +(559, '{3026,3252,0,1,3}'), +(560, '{2766,3117,0,1,6}'), +(561, '{156,52,0,1,3}'), +(562, '{2799,3438,0,1,1}'), +(563, '{2803,3430,0,1,6}'), +(564, '{2485,4450,0,1,3}'), +(565, '{2476,4467,0,1,2}'), +(566, '{2480,4471,0,1,4}'), +(568, '{2925,3143,0,1,3}'), +(569, '{2659,3316,0,1,2}'), +(570, '{2669,3303,0,1,5}'), +(571, '{2655,3310,0,1,1}-{2669,3310,0,1,3}'), +(572, '{2659,3296,0,1,4}'), +(573, '{2663,3296,0,1,4}'), +(574, '{2656,3300,0,1,3}'), +(575, '{2821,3442,0,1,6}'), +(576, '{2836,3447,0,1,4}-{161,42,0,1,6}'), +(577, '{2975,3384,0,1,3}'), +(578, '{2807,3342,0,1,6}'), +(579, '{3034,9845,0,1,3}-{147,15,0,1,3}'), +(580, '{2952,3388,0,1,3}'), +(581, '{2975,3314,0,1,3}'), +(582, '{2998,9828,0,1,1}'), +(583, '{3011,3257,0,1,3}'), +(584, '{2944,3332,0,1,3}'), +(585, '{2946,3205,0,1,6}'), +(586, '{2884,3450,0,1,3}'), +(587, '{2897,3428,0,1,3}'), +(588, '{2803,3152,0,1,3}'), +(589, '{2660,3291,0,1,3}'), +(590, '{2613,3294,0,1,3}'), +(591, '{2615,3292,0,1,6}'), +(592, '{2597,3401,0,1,2}'), +(593, '{2569,3098,0,1,3}'), +(594, '{2998,9840,0,1,3}'), +(595, '{3271,3412,0,1,3}'), +(596, '{3037,3705,0,0,0}'), +(597, '{3025,3701,0,1,5}'), +(598, '{2943,3384,0,1,3}'), +(600, '{2449,3511,1,1,6}'), +(601, '{2482,3509,1,1,3}'), +(602, '{2469,3488,2,1,6}'), +(603, '{2491,3488,1,1,6}'), +(604, '{3001,3144,0,0,0}'), +(605, '{2985,3343,2,1,2}'), +(606, '{2974,3343,0,1,0}'), +(607, '{2539,3547,0,1,4}'), +(608, '{2962,3337,2,1,4}'), +(610, '{3027,3506,0,0,0}'), +(611, '{3029,3505,0,1,0}'); +INSERT INTO `npc_spawns` (`npc_id`, `loc_data`) VALUES +(612, '{3028,3510,0,0,0}'), +(619, '{3353,3333,0,1,3}'), +(636, '{2395,3494,0,0,6}-{2396,3494,0,0,6}-{2397,3494,0,0,6}-{2396,3493,0,0,6}'), +(637, '{3158,3425,1,1,5}'), +(638, '{3195,3404,0,0,0}'), +(639, '{3211,3425,0,1,7}'), +(640, '{3253,3487,0,1,6}'), +(641, '{3207,3392,0,1,6}'), +(642, '{3185,3385,0,1,6}'), +(643, '{3246,3383,1,1,5}'), +(644, '{3247,9781,0,1,6}'), +(645, '{3223,3401,0,1,2}'), +(646, '{3257,3447,0,0,0}'), +(648, '{3220,3471,0,0,6}'), +(649, '{3149,3210,0,0,0}'), +(650, '{3148,3205,0,0,0}'), +(651, '{3148,3207,0,0,0}'), +(652, '{3151,3209,0,0,0}'), +(656, '{2822,3374,0,0,3}'), +(657, '{3048,3236,0,1,2}'), +(658, '{2832,3336,0,1,2}'), +(659, '{3052,3373,0,0,0}'), +(665, '{2986,9811,0,0,0}'), +(666, '{2819,3451,0,0,3}-{3158,3405,0,0,0}'), +(670, '{2465,3496,0,1,6}'), +(674, '{3001,3041,0,0,0}'), +(675, '{2944,3041,0,0,0}'), +(677, '{2708,9486,0,0,5}'), +(678, '{2658,3436,0,1,3}-{2655,3431,0,1,0}-{2656,3424,0,1,1}-{2664,3426,0,1,4}-{2671,3438,0,1,1}-{2669,3441,0,1,7}-{2674,3438,0,1,5}-{2671,3418,0,1,7}-{2666,3417,0,1,3}-{2666,3415,0,1,2}-{2664,3416,0,1,3}-{2680,3431,0,1,6}-{2678,3431,0,1,1}-{2661,3430,0,1,4}'), +(679, '{2658,3439,0,0,0}'), +(680, '{2679,3432,0,1,6}'), +(682, '{2671,3434,0,1,4}'), +(683, '{2673,3434,0,1,3}'), +(684, '{2666,3427,2,0,6}-{2669,3426,2,0,1}-{2667,3430,2,0,6}-{2670,3429,2,0,3}-{2673,3416,0,0,0}'), +(692, '{2661,3419,0,1,7}'), +(694, '{2659,3431,0,0,3}'), +(705, '{3208,3252,0,0,6}'), +(706, '{3103,3163,2,0,0}'), +(707, '{3113,3160,2,0,0}'), +(708, '{3215,3282,0,1,1}-{3242,3306,0,1,1}-{3208,3357,0,1,3}-{3240,3393,0,1,3}-{3219,3221,0,1,4}-{3162,3410,0,1,2}-{2962,3424,0,1,6}-{3011,3513,0,1,1}-{2980,3337,0,1,6}-{2997,3300,0,1,3}-{3031,3322,0,1,1}-{2957,3308,0,1,0}-{2935,3343,0,1,1}-{2942,3247,0,1,7}-{2976,3176,0,1,6}-{3239,3523,0,1,4}-{3262,3523,0,1,2}-{2865,3175,0,1,0}-{2855,3188,0,1,1}-{2838,3194,0,1,3}-{2806,3181,0,1,3}-{2827,3170,0,1,5}-{2788,3179,0,1,3}-{2753,3178,0,1,3}-{2759,3155,0,1,0}-{2603,3221,0,1,7}-{2604,3212,0,1,3}-{2614,3230,0,1,1}-{2611,3204,0,1,7}-{2544,3184,0,1,3}-{2627,3231,0,1,4}-{2595,3125,0,1,1}-{2598,3145,0,1,1}-{2588,3145,0,1,7}-{2601,3135,0,1,3}-{2598,3120,0,1,6}-{2615,3120,0,1,4}-{2598,3108,0,1,4}-{2733,3459,0,1,3}-{2732,3457,0,1,6}-{2715,3451,0,1,4}-{2715,3436,0,1,3}-{2977,3377,0,0,3}-{2941,3356,0,0,7}-{2932,3322,0,0,5}-{2934,3301,0,1,5}-{2934,3301,0,1,3}-{2973,3274,0,1,3}-{2994,3270,0,1,0}-{3010,3271,0,1,6}-{2977,3202,0,1,7}-{3068,3251,0,1,6}-{3189,3503,0,1,6}'), +(711, '{2536,3314,1,0,0}'), +(713, '{2526,3319,0,0,0}'), +(716, '{2540,3286,0,0,0}'), +(717, '{2513,3294,0,0,0}-{2518,3320,0,0,0}-{2530,3274,0,0,0}-{2535,3296,0,0,0}'), +(719, '{2560,3288,0,0,0}-{2026,4619,0,1,6}-{2026,4615,0,0,6}-{2020,4614,0,1,1}-{2021,4614,0,1,6}-{2008,4612,0,1,3}-{2002,4613,0,1,4}'), +(720, '{2542,3306,0,0,0}'), +(725, '{2540,3305,0,0,0}'), +(728, '{2540,3308,0,1,6}'), +(729, '{2536,3308,0,1,4}'), +(731, '{3278,3487,0,1,1}'), +(732, '{3267,3392,0,0,0}'), +(733, '{3226,3399,0,0,0}'), +(734, '{3045,3256,0,1,3}'), +(735, '{2795,3155,0,1,7}'), +(736, '{2957,3373,0,1,7}'), +(737, '{2572,3319,0,1,3}'), +(738, '{2691,3492,0,0,0}'), +(739, '{2554,3080,0,1,3}'), +(740, '{2808,3086,0,1,0}'), +(741, '{3212,3220,1,1,1}'), +(742, '{2854,9636,0,1,4}'), +(743, '{3098,3257,0,1,4}'), +(744, '{3047,3204,0,0,0}'), +(745, '{3013,3189,0,1,1}'), +(746, '{3010,3502,0,1,3}'), +(747, '{3069,3516,0,1,6}'), +(749, '{1749,5323,0,1,4}'), +(750, '{1765,5321,0,1,2}-{1744,5326,0,1,4}'), +(751, '{1778,5323,0,1,6}'), +(753, '{2929,9649,0,1,4}'), +(755, '{3100,3268,0,0,0}'), +(756, '{3222,3398,0,0,3}'), +(758, '{3189,3273,0,0,4}'), +(767, '{3303,3511,0,0,1}-{3302,3514,0,0,1}'), +(780, '{3151,3410,0,1,6}'), +(781, '{3221,3434,0,0,0}'), +(782, '{3150,3406,0,0,0}'), +(783, '{3221,3435,0,0,0}'), +(784, '{3155,3406,0,0,0}'), +(788, '{2773,3187,0,0,6}'), +(789, '{2811,3167,0,0,0}'), +(791, '{2450,3056,0,0,0}'), +(792, '{2774,3197,0,0,0}'), +(793, '{2790,3189,0,1,1}'), +(794, '{2793,3191,0,1,3}'), +(797, '{2900,3511,1,1,6}'), +(799, '{2778,3197,0,1,4}-{2777,3194,0,1,4}-{2777,3199,0,1,3}-{2771,3193,0,1,3}-{2761,3192,0,1,5}-{2775,3190,0,1,4}-{2803,3195,0,1,4}'), +(801, '{3058,3485,0,1,6}'), +(802, '{3046,3486,1,0,0}'), +(804, '{2934,3285,1,1,0}'), +(805, '{2936,3288,0,1,4}'), +(812, '{2738,3473,0,0,1}-{2733,3473,0,0,1}'), +(820, '{2697,3496,0,0,0}'), +(822, '{3302,9466,0,1,6}'), +(827, '{3273,9417,0,1,6}-{3289,9443,0,1,4}'), +(830, '{3271,3028,0,1,4}'), +(831, '{3291,3032,1,0,1}'), +(832, '{3171,3025,0,1,4}'), +(833, '{3167,3033,0,1,2}-{3170,3027,0,1,5}-{3174,3028,0,1,6}'), +(834, '{3170,3045,0,0,3}'), +(836, '{3304,3124,0,1,6}'), +(837, '{3305,3121,0,1,0}-{3301,3120,0,1,1}-{3302,3123,0,1,6}-{3307,3125,0,1,1}'), +(838, '{3306,3117,0,1,4}'), +(839, '{3153,3035,0,1,3}'), +(841, '{3288,3022,0,1,1}'), +(843, '{2644,3274,0,1,3}-{2644,3276,0,1,5}-{2647,3271,0,1,6}'), +(844, '{2683,3323,0,0,0}'), +(845, '{2635,3311,0,0,0}'), +(846, '{2787,3184,0,1,4}'), +(847, '{3143,3447,0,1,5}'), +(848, '{2480,3489,1,1,3}'), +(850, '{2439,3502,1,0,4}'), +(851, '{2449,3503,1,1,4}'), +(853, '{2506,3115,0,1,3}'), +(854, '{2511,3085,0,1,4}'), +(858, '{2550,3032,0,0,0}-{2552,3033,0,0,0}-{2550,3030,0,0,0}-{2550,3032,0,0,0}'), +(860, '{2503,3013,0,0,0}'), +(872, '{2547,3117,2,1,3}-{2547,3112,2,1,6}-{2544,3114,2,1,3}-{2547,3118,2,1,3}'), +(877, '{2536,3092,0,1,1}-{2534,3091,0,1,1}-{2550,3118,0,1,4}-{2543,3117,0,1,3}-{2546,3113,0,1,4}'), +(878, '{2534,3092,0,1,1}'), +(881, '{3112,3162,1,0,0}'), +(882, '{3203,3424,0,0,6}'), +(883, '{3204,3470,0,1,3}'), +(884, '{3204,3495,2,1,6}'), +(885, '{2565,3271,0,0,0}-{2573,3268,1,0,0}'), +(887, '{2570,3275,0,1,3}'), +(888, '{2565,3273,0,0,0}'), +(889, '{2571,3270,0,0,0}'), +(890, '{2569,3272,0,0,0}-{2573,3269,1,0,0}'), +(895, '{2929,3456,0,1,4}'), +(902, '{2535,4715,0,1,6}'), +(903, '{2541,4715,0,1,3}'), +(904, '{2507,4693,0,1,3}'), +(905, '{2540,4719,0,1,6}'), +(912, '{3101,3940,0,0,0}-{3109,3931,0,0,0}-{3109,3939,0,0,0}-{3097,3931,0,1,4}-{3098,3938,0,1,6}-{3113,3938,0,1,7}'), +(913, '{3105,3931,0,0,0}-{3101,3929,0,0,1}-{3111,3939,0,1,6}-{3109,3926,0,1,1}'), +(914, '{3099,3936,0,0,7}-{3104,3929,0,0,0}-{3110,3936,0,1,2}-{3096,3932,0,1,4}-{3113,3928,0,1,1}'), +(915, '{3108,3264,0,1,2}'), +(916, '{3122,3245,0,0,0}'), +(917, '{3125,3250,0,1,6}-{3122,3249,0,1,6}'), +(918, '{3048,3209,1,1,3}'), +(919, '{3128,3245,0,1,4}'), +(920, '{3123,3241,0,1,1}'), +(922, '{3086,3261,0,1,7}'), +(923, '{3302,3163,0,0,0}'), +(924, '{3286,3180,0,0,0}'), +(925, '{3267,3226,0,0,3}-{3266,3229,0,0,3}-{3269,3229,0,0,4}-{3268,3226,0,0,4}'), +(931, '{2792,2929,0,0,0}-{2815,2935,0,0,0}-{2842,2935,0,0,0}-{2842,2929,0,0,0}'), +(933, '{2725,3367,0,0,2}-{2725,3380,2,0,6}'), +(941, '{2974,3620,0,1,3}-{2975,3609,0,1,3}-{2983,3614,0,1,3}-{3340,3678,0,1,1}-{3339,3695,0,1,6}-{3344,3705,0,1,3}-{3307,5462,0,1,0}-{3121,10085,0,1,0}'), +(942, '{3074,3086,0,0,0}'), +(943, '{3103,3096,0,0,0}'), +(944, '{3107,9511,0,1,5}'), +(945, '{3093,3107,0,0,0}'), +(946, '{3141,3090,0,0,6}'), +(947, '{3127,3124,0,0,3}'), +(948, '{3084,9506,0,0,0}'), +(949, '{3086,3122,0,0,0}'), +(952, '{3101,3092,0,0,4}'), +(954, '{3123,3107,0,1,5}'), +(955, '{3176,3317,0,1,3}-{3169,3319,0,1,1}'), +(957, '{3314,3241,0,0,1}-{3314,3240,1,0,0}'), +(958, '{3383,3272,0,1,3}'), +(959, '{3359,3272,0,1,5}'), +(960, '{3370,3276,0,1,3}'), +(961, '{3377,3276,0,1,4}'), +(962, '{3362,3276,0,1,3}'), +(963, '{3375,3274,0,1,2}'), +(970, '{3082,3248,0,1,4}'), +(1005, '{3057,3905,0,1,3}'), +(1013, '{2544,2988,0,0,0}-{2532,2983,0,0,0}-{2549,2983,0,0,0}-{2545,2983,0,0,0}-{2528,2986,0,0,0}-{2550,2979,0,0,0}-{2522,2978,0,0,0}-{2523,2976,0,0,0}-{2526,2974,0,0,0}-{2593,2971,0,0,0}-{2594,2971,0,0,0}-{2596,2961,0,0,0}-{2598,2971,0,0,0}-{2599,2960,0,0,0}-{2598,2960,0,0,0}-{2603,2966,0,0,0}-{2603,2970,0,0,0}-{2598,2960,0,0,0}-{2596,2963,0,0,0}-{2595,2964,0,0,0}-{2594,2964,0,0,0}-{2601,2964,0,0,0}-{2598,2969,0,0,0}-{2604,2971,0,0,0}-{2601,2972,0,0,0}-{2544,2904,0,0,0}-{2548,2990,0,0,0}-{2552,2988,0,0,0}-{2548,2979,0,0,0}-{2547,2991,0,0,0}-{2525,2975,0,0,0}-{2464,2912,0,0,0}'), +(1017, '{3198,3359,0,1,0}-{3231,3296,0,1,6}-{3233,3300,0,1,4}-{3235,3293,0,1,3}-{3232,3288,0,1,0}-{3234,3298,0,1,6}-{2785,3069,0,1,4}-{2800,3072,0,1,6}-{3234,3297,0,1,3}-{3234,3292,0,1,4}-{3235,3289,0,1,1}-{2677,3656,0,1,2}-{2672,3654,0,1,2}-{2676,3652,0,1,4}-{2681,3652,0,1,4}-{2675,3652,0,1,3}'), +(1019, '{3187,5555,0,1,4}-{3213,9377,0,1,3}-{3209,9397,0,1,4}-{3245,9401,0,1,6}-{3237,9402,0,1,2}-{3207,9349,0,1,3}-{3220,9347,0,1,6}-{3233,9359,0,1,4}-{3235,9354,0,0,6}-{3259,9370,0,1,1}-{3258,9387,0,1,6}-{3278,9368,0,1,5}-{3271,9359,0,1,3}-{3287,9359,0,1,5}-{3301,9394,0,1,5}-{3318,9352,0,1,5}-{3190,5563,0,1,1}-{3193,5555,0,1,3}'), +(1027, '{3278,3155,0,0,0}-{2354,3608,0,0,0}'), +(1028, '{2778,3436,0,0,0}'), +(1029, '{2920,3499,0,0,0}-{2784,3480,0,0,0}'), +(1030, '{2768,3470,0,0,0}-{2843,3155,0,0,0}'), +(1032, '{2865,3504,0,0,0}'), +(1033, '{2606,2967,0,0,0}'), +(1035, '{2599,2954,0,0,0}'), +(1036, '{3514,3479,1,0,0}-{3514,3481,1,0,0}-{3514,3481,0,0,3}-{3514,3479,0,0,3}'), +(1037, '{2435,3412,0,1,3}'), +(1038, '{3507,3496,1,1,1}-{3508,3494,0,1,1}'), +(1039, '{3499,3506,1,1,5}-{3500,3505,0,1,5}'), +(1040, '{3475,3494,0,1,6}'), +(1041, '{3490,3503,1,0,0}-{3490,3500,0,1,4}'), +(1042, '{3495,3469,0,1,3}'), +(1043, '{3459,3457,0,0,0}-{3460,3462,0,0,0}-{3462,3459,0,0,0}-{3463,3490,0,0,0}-{3464,3511,0,0,0}-{3465,3466,0,0,0}-{3466,3495,0,0,0}-{3466,3497,0,0,0}-{3467,3485,0,0,0}-{3467,3497,0,0,0}-{3467,3509,0,0,0}-{3469,3470,0,0,0}-{3470,3469,0,0,0}-{3471,3477,0,0,0}-{3474,3505,0,0,0}-{3476,3507,0,0,0}-{3479,3511,0,0,0}-{3480,3468,0,0,0}-{3480,3470,0,0,0}-{3482,3469,0,0,0}-{3483,3511,0,0,0}-{3484,3464,0,0,0}-{3485,3509,0,0,0}-{3490,3461,0,0,0}-{3491,3460,0,0,0}-{3494,3461,0,0,0}-{3494,3512,0,0,0}-{3498,3461,0,0,0}-{3499,3513,0,0,0}-{3501,3513,0,0,0}-{3502,3464,0,0,0}-{3504,3463,0,0,0}-{3506,3512,0,0,0}-{3506,3515,0,0,0}-{3507,3515,0,0,0}-{3509,3512,0,0,0}-{3511,3488,0,0,0}-{3513,3467,0,0,0}-{3513,3487,0,0,0}-{3513,3489,0,0,0}-{3513,3503,0,0,0}-{3514,3490,0,0,0}-{3515,3495,0,0,0}-{3515,3499,0,0,0}-{3516,3469,0,0,0}'), +(1044, '{3408,3484,0,1,6}-{3408,3493,0,1,1}-{3410,3489,1,1,3}-{3412,3487,1,1,4}'), +(1045, '{3413,3489,0,1,3}-{3409,3485,1,1,4}-{3413,3489,1,1,1}-{3213,3476,0,1,3}'), +(1046, '{3409,3489,0,1,4}-{3413,3485,0,1,4}-{3414,3491,1,1,6}'), +(1047, '{3415,3489,2,0,0}'), +(1048, '{3437,3486,0,0,0}'), +(1049, '{3440,9895,0,0,0}'), +(1054, '{3444,3459,0,0,0}'), +(1055, '{2811,3191,0,0,0}'), +(1060, '{2898,3528,0,0,1}'), +(1061, '{2898,3532,0,0,4}'), +(1062, '{2893,3540,0,0,3}'), +(1063, '{2900,3531,0,0,7}-{2900,3533,0,0,7}'), +(1064, '{2895,3537,0,0,5}-{2894,3537,0,0,5}-{2893,3537,0,0,5}-{2892,3537,0,0,5}-{2891,3537,0,0,3}-{2891,3538,0,0,3}-{2892,3538,0,0,3}-{2893,3538,0,0,3}-{2894,3538,0,0,3}-{2895,3538,0,0,3}'), +(1065, '{2889,3529,0,1,1}-{2904,3538,0,1,6}-{2882,3531,0,1,4}-{2903,3544,0,1,4}-{2911,3542,0,1,4}-{2906,3540,0,1,3}'), +(1066, '{2892,3532,0,0,4}'), +(1067, '{2893,3533,0,0,6}'), +(1068, '{2894,3532,0,0,3}'), +(1069, '{2840,3589,0,0,3}'), +(1070, '{2269,4758,0,1,3}'), +(1071, '{2820,3554,0,1,1}'), +(1072, '{2897,3569,0,0,0}-{2893,3565,0,0,0}'), +(1073, '{2900,3549,0,0,3}'), +(1074, '{2897,3549,0,0,5}'), +(1076, '{2900,3556,0,0,1}-{2897,3565,0,1,4}'), +(1077, '{2897,3556,0,0,5}'), +(1079, '{2906,3537,0,1,5}'), +(1081, '{2896,3562,0,0,0}-{2891,3568,0,0,0}'), +(1082, '{2919,3576,0,0,0}'), +(1083, '{2931,3546,0,1,3}'), +(1084, '{2915,3549,0,0,0}'), +(1085, '{2921,3558,0,1,6}'), +(1086, '{2965,3262,0,1,4}'), +(1087, '{2911,3540,0,0,7}'), +(1088, '{2918,3545,0,0,0}'), +(1089, '{2919,3529,0,0,0}'), +(1090, '{2931,3566,0,1,1}'), +(1093, '{2817,3560,0,1,3}'), +(1096, '{2852,3591,0,1,7}'), +(1097, '{2858,3596,0,1,4}'), +(1098, '{2868,3591,0,1,6}'), +(1099, '{2857,3589,0,0,0}-{2857,3589,0,0,0}'), +(1100, '{2859,3589,0,0,0}-{2859,3589,0,0,0}'), +(1101, '{2851,3598,0,0,0}-{2854,3600,0,0,0}'), +(1106, '{2864,3594,0,1,1}-{2881,3592,0,1,5}-{2857,3587,0,1,7}-{2855,3596,0,1,4}-{2827,10078,1,1,6}-{2925,3626,0,1,0}-{2843,3682,0,1,1}'), +(1107, '{2874,3595,0,1,3}-{2875,3596,0,1,1}-{2873,3598,0,1,1}-{2836,10088,1,1,5}-{2845,3674,0,1,4}'), +(1108, '{2878,3592,0,1,6}-{2861,3586,0,1,6}-{2855,10058,2,1,4}-{2852,3673,0,1,2}'), +(1109, '{2875,3588,0,1,1}-{2883,3586,0,1,6}-{2825,10087,1,1,3}-{2836,10080,1,1,6}-{2784,10040,2,1,3}-{2920,3627,0,1,0}-{2923,10029,0,1,7}-{2851,3667,0,1,3}'), +(1110, '{2883,3591,0,1,4}-{2869,3594,0,1,3}-{2861,3587,0,1,4}-{2872,3594,0,1,5}-{2829,10080,1,1,6}-{2836,10097,2,1,4}-{2852,10110,2,1,4}'), +(1111, '{2863,3588,0,1,6}-{2865,3591,0,1,0}-{2866,3598,0,1,1}-{2840,10101,1,1,4}-{2857,10055,2,1,3}-{2836,10090,2,1,1}-{2925,10033,0,1,6}-{2855,3685,0,1,1}'), +(1112, '{2867,3595,0,1,6}-{2871,3597,0,1,4}-{2832,10089,1,1,1}-{2836,10077,2,1,1}-{2925,10030,0,1,1}'), +(1113, '{2831,10083,0,0,0}'), +(1114, '{2826,10078,0,0,0}'), +(1115, '{2832,10088,2,0,0}'), +(1116, '{2824,10073,2,0,0}'), +(1117, '{2829,10101,2,0,0}'), +(1118, '{2920,3613,0,0,0}'), +(1119, '{2930,3614,0,0,0}'), +(1120, '{2927,3608,0,0,0}'), +(1121, '{2930,3600,0,0,0}'), +(1122, '{2918,3604,0,0,0}'), +(1123, '{2914,3603,0,0,0}'), +(1124, '{2925,3600,0,0,0}'), +(1125, '{2916,3610,0,0,0}'), +(1128, '{2833,10080,0,0,0}'), +(1129, '{2833,10084,0,0,0}'), +(1131, '{2905,3694,0,0,1}'), +(1132, '{2901,3697,0,0,1}'), +(1133, '{2895,3699,0,0,1}'), +(1134, '{2891,3699,0,0,1}'), +(1135, '{2843,10057,1,0,0}'), +(1136, '{2840,10056,1,0,0}'), +(1137, '{2847,10056,1,0,0}'), +(1138, '{2826,10083,1,1,0}-{2837,10083,2,1,1}-{2909,3639,0,1,3}-{2923,10031,0,1,3}'), +(1140, '{2856,10054,1,0,0}-{2860,10057,1,0,0}-{2898,3688,0,0,0}-{2819,3586,0,1,4}'), +(1141, '{2857,10059,1,0,0}-{2857,10057,1,0,0}'), +(1142, '{2851,10089,0,1,1}-{2854,10092,0,1,3}'), +(1143, '{2850,10088,0,1,3}-{2854,10086,0,1,6}'), +(1144, '{2856,10089,0,1,4}-{2858,10089,0,1,6}'), +(1146, '{2864,10081,0,1,7}'), +(1147, '{2853,10076,0,1,5}'), +(1148, '{2858,10082,0,1,3}'), +(1149, '{2861,10085,0,1,2}'), +(1150, '{2857,10075,0,1,1}'), +(1151, '{2845,10058,1,0,0}'), +(1153, '{3489,9509,2,1,4}-{3499,9515,2,1,6}-{3505,9527,2,1,5}-{3510,9521,2,1,1}-{3490,9526,2,1,3}-{3475,9524,2,1,5}-{3465,9505,2,1,1}-{3479,9501,2,1,3}-{3487,9491,2,1,3}'), +(1154, '{3472,9501,2,1,3}-{3495,9494,2,1,4}-{3479,9484,2,1,1}-{3500,9477,2,1,6}'), +(1155, '{3468,9486,2,1,0}-{3467,9480,2,1,1}-{3505,9496,2,1,6}-{3513,9496,2,1,7}'), +(1157, '{3480,9508,0,1,0}-{3495,9505,0,1,2}-{3492,9490,0,1,1}-{3472,9497,0,1,6}'), +(1158, '{3484,9491,0,1,2}'), +(1161, '{3487,9526,2,1,5}-{3474,9519,2,1,1}-{3465,9512,2,1,0}-{3489,9501,2,1,4}-{3494,9501,2,1,3}-{3480,9489,2,1,6}-{3483,9477,2,1,3}-{3494,9476,2,1,3}-{3473,9487,0,1,3}-{3476,9496,0,1,6}-{3473,9501,0,1,7}-{3481,9504,0,1,6}-{3488,9514,0,1,6}-{3497,9501,0,1,3}-{3486,9490,0,1,0}'), +(1162, '{2781,3088,1,0,0}'), +(1171, '{2766,3168,0,1,6}'), +(1172, '{2909,3086,0,0,0}'), +(1174, '{2792,3015,0,0,0}-{2792,3019,0,0,0}-{2801,3010,0,0,0}-{2792,3015,0,0,4}-{2792,3019,0,0,4}-{2801,3010,0,0,4}'), +(1176, '{2928,3112,0,0,0}'), +(1177, '{2912,3119,0,0,0}'), +(1178, '{2768,3165,0,0,0}'), +(1179, '{2941,3100,0,1,6}'), +(1180, '{2916,3110,0,1,7}'), +(1181, '{2902,3101,0,1,1}-{2922,3105,0,1,6}'), +(1192, '{2924,3506,0,1,0}-{2927,3498,0,0,0}-{2297,3176,0,1,6}'), +(1193, '{2297,3176,0,1,6}'), +(1194, '{2298,3177,0,1,4}'), +(1195, '{3228,3501,0,1,5}-{3023,4504,0,1,4}-{2216,3174,0,1,4}-{2294,3155,0,1,3}'), +(1196, '{3025,4506,0,1,5}-{3023,4504,0,1,4}-{2212,3174,0,1,3}-{2294,3152,0,1,1}'), +(1198, '{2296,3192,0,1,2}'), +(1199, '{2262,3151,0,1,0}'), +(1201, '{2264,3147,0,1,1}-{2266,3145,0,1,4}'), +(1202, '{2352,3172,0,1,4}'), +(1203, '{2189,3155,0,0,1}-{2183,3156,0,1,4}-{2194,3156,0,1,6}-{2182,3148,0,1,4}-{2179,3137,0,1,3}-{2189,3136,0,1,3}-{2182,3146,0,1,3}-{2187,3172,0,0,1}-{2180,3180,0,1,1}'), +(1205, '{3054,3254,0,0,0}'), +(1206, '{2185,3144,0,0,4}'), +(1207, '{3055,3254,0,0,0}'), +(1208, '{2194,3140,0,1,5}'), +(1213, '{2914,3418,0,0,6}'), +(1215, '{2612,3287,0,0,0}-{2613,3287,0,0,0}'), +(1216, '{2611,3285,0,0,0}'), +(1217, '{3000,3386,0,0,0}-{3019,3368,0,0,0}'), +(1218, '{3412,3512,0,1,4}-{3412,3515,0,1,1}-{3413,3514,0,1,6}-{3414,3512,0,1,5}-{3415,3518,0,1,5}-{3416,3509,0,1,7}-{3416,3511,0,1,4}-{3417,3518,0,1,4}-{3418,3509,0,1,4}-{3419,3512,0,1,7}-{3420,3517,0,1,7}-{3420,3518,0,1,6}-{3423,3461,0,1,5}-{3426,3465,0,1,4}-{3427,3463,0,1,5}-{3428,3458,0,1,4}-{3428,3465,0,1,2}-{3430,3462,0,1,1}-{3430,3467,0,1,3}-{3433,3458,0,1,1}-{3433,3468,0,1,4}-{3434,3464,0,1,6}'), +(1219, '{3292,5455,0,1,3}-{3295,5452,0,1,0}-{3290,5448,0,1,4}'), +(1220, '{3600,3491,0,1,2}-{3598,3498,0,1,4}-{3600,3496,0,1,0}-{3600,3496,0,1,6}-{3602,3494,0,1,1}-{3597,3490,0,1,6}-{3595,3497,0,1,4}-{3605,3491,0,1,4}-{3604,3495,0,1,0}'), +(1227, '{3424,3318,0,1,0}-{3423,3312,0,1,4}-{3507,3435,0,1,4}-{3484,3456,0,1,0}-{3486,3458,0,1,4}-{3511,3455,0,1,0}-{3508,3420,0,1,3}-{3508,3420,0,1,4}-{3506,3402,0,1,7}-{3494,3388,0,1,0}-{3502,3392,0,1,3}'), +(1228, '{3420,3302,0,1,1}-{3424,3296,0,1,4}-{3509,3440,0,1,4}-{3518,3454,0,1,1}-{3504,3406,0,1,4}-{3497,3404,0,1,1}'), +(1229, '{3421,3302,0,1,4}-{3417,3291,0,1,4}-{3423,3288,0,1,4}-{3418,3284,0,1,6}-{3427,3298,0,1,3}-{3431,3303,0,1,1}-{3432,3311,0,1,1}-{3492,3457,0,1,1}-{3502,3455,0,1,2}-{3516,3415,0,1,4}-{3511,3401,0,1,1}'), +(1230, '{3419,3280,0,1,4}-{3421,3277,0,1,4}-{3431,3275,0,1,3}-{3428,3314,0,1,1}-{3436,3318,0,1,5}-{3434,3322,0,1,6}-{3496,3447,0,1,7}-{3520,3437,0,1,4}'), +(1231, '{3426,3271,0,1,4}-{3435,3268,0,1,7}-{3443,3266,0,1,7}-{3442,3319,0,1,1}-{3445,3318,0,1,6}-{3518,3397,0,1,4}-{3519,3408,0,1,2}-{3516,3410,0,1,2}-{3489,3391,0,1,2}-{3487,3409,0,1,3}'), +(1232, '{3441,3265,0,1,5}-{3438,3277,0,1,7}-{3438,3283,0,1,4}-{3439,3315,0,1,3}-{3439,3310,0,1,1}-{3435,3302,0,1,3}-{3508,3420,0,1,1}-{3514,3415,0,1,7}-{3525,3417,0,1,3}'), +(1233, '{3432,3285,0,1,4}-{3434,3288,0,1,5}-{3428,3290,0,1,3}-{3440,3295,0,1,4}-{3436,3288,0,1,1}-{3446,3289,0,1,3}-{3514,3415,0,1,6}-{3509,3415,0,1,1}-{3516,3402,0,1,2}-{3492,3393,0,1,7}-{3493,3401,0,1,6}-{3487,3406,0,1,3}'), +(1234, '{3446,3282,0,1,1}-{3446,3298,0,1,3}-{3449,3304,0,1,1}-{3493,3454,0,1,2}-{3493,3454,0,1,0}-{3518,3454,0,1,2}-{3519,3441,0,1,7}-{3506,3417,0,1,5}-{3519,3401,0,1,2}-{3499,3420,0,1,3}-{3520,3412,0,1,0}-{3516,3410,0,1,7}-{3513,3383,0,1,0}-{3491,3388,0,1,3}'), +(1235, '{3425,3306,0,1,1}-{3442,3303,0,1,3}-{3437,3299,0,1,1}-{3422,3321,0,1,1}-{3486,3458,0,1,7}-{3503,3420,0,1,3}-{3514,3398,0,1,4}-{3524,3419,0,1,1}-{3509,3386,0,1,2}'), +(1239, '{3166,3033,0,1,1}-{3174,3043,0,1,6}-{3177,3041,0,1,4}-{3176,3038,0,1,4}-{3177,3035,0,1,7}-{3183,3035,0,1,6}-{3182,3032,0,1,6}'), +(1240, '{3502,3288,0,1,4}-{3505,3284,0,1,4}-{3490,3292,0,1,4}-{3502,3300,0,1,4}-{3492,3303,0,1,4}-{3516,3303,0,1,4}-{3478,3281,0,1,4}-{3473,3273,0,1,4}-{3469,3288,0,1,4}-{3469,3304,0,1,4}'), +(1251, '{3474,3309,0,1,5}-{3486,3277,0,1,4}-{3496,3289,0,0,3}'), +(1253, '{3488,3297,0,0,6}'), +(1257, '{3490,3290,0,0,3}-{3487,3303,0,1,5}-{3496,3296,0,1,4}-{3479,3303,0,1,4}-{3498,3282,0,1,3}-{3473,3281,0,1,3}-{3478,3308,0,1,1}'), +(1258, '{3488,3287,0,1,1}-{3501,3285,0,1,5}-{3478,3274,0,1,4}-{3497,3283,0,1,1}'), +(1261, '{3492,3300,0,1,4}-{3498,3300,0,1,5}-{3487,3302,0,1,6}-{3497,3299,0,1,5}-{3488,3273,0,1,6}'), +(1262, '{3487,3283,0,1,1}-{3477,3300,0,1,4}-{3497,3276,0,1,1}-{3502,3279,0,1,1}-{3481,3296,0,1,2}'), +(1263, '{3108,3160,1,1,1}'), +(1266, '{2680,3719,0,0,7}-{2684,3722,0,0,1}-{2684,3726,0,0,1}-{2678,3728,0,0,2}-{2673,3728,0,0,0}-{2670,3724,0,0,3}-{2671,3726,0,0,2}-{2679,3731,0,0,2}-{2684,3729,0,0,6}-{2688,3721,0,0,1}-{2693,3715,0,0,5}-{2699,3715,0,0,2}-{2706,3711,0,0,1}-{2712,3718,0,0,5}-{2716,3721,0,0,7}-{2722,3726,0,0,1}-{2525,3763,0,0,7}-{2508,3762,0,0,0}-{2510,3755,0,0,2}-{2523,3756,0,0,1}-{2532,3752,0,0,0}-{2529,3755,0,0,1}-{2528,3739,0,0,6}-{2529,3730,0,0,0}-{2518,3724,0,0,1}-{2508,3723,0,0,1}-{2525,3718,0,0,1}-{2549,3733,0,0,3}'), +(1268, '{2681,3716,0,0,2}-{2678,3721,0,0,2}-{2684,3719,0,0,1}-{2699,3719,0,0,4}-{2701,3717,0,0,2}-{2707,3719,0,0,0}-{2700,3726,0,0,2}-{2695,3713,0,0,2}-{2716,3718,0,0,5}-{2706,3713,0,0,2}-{2537,3761,0,0,7}-{2537,3761,0,0,7}-{2528,3767,0,0,3}-{2526,3753,0,0,2}-{2513,3755,0,0,3}-{2505,3753,0,0,3}-{2530,3751,0,0,1}-{2527,3755,0,0,1}-{2532,3758,0,0,6}-{2532,3751,0,0,3}-{2530,3738,0,0,2}-{2531,3729,0,0,0}-{2523,3723,0,0,1}-{2520,3722,0,0,3}-{2515,3720,0,0,3}-{2505,3724,0,0,4}-{2505,3729,0,0,6}-{2535,3717,0,0,4}-{2536,3724,0,0,1}-{2543,3729,0,0,6}-{2550,3734,0,0,1}-{2552,3747,0,0,6}-{2552,3752,0,0,6}'), +(1269, '{2669,3683,0,1,1}'), +(1270, '{2770,3624,0,0,0}'), +(1278, '{2668,3685,0,1,6}'), +(1281, '{2661,3651,0,1,3}'), +(1282, '{2644,3681,0,1,5}'), +(1283, '{2645,3661,0,1,6}'), +(1284, '{2658,3673,0,1,1}'), +(1285, '{2657,3669,0,1,1}'), +(1286, '{2656,3676,0,1,1}'), +(1287, '{2652,3588,0,1,1}'), +(1288, '{2633,3671,0,1,6}'), +(1289, '{2667,3692,0,1,1}'), +(1294, '{2659,3667,0,1,1}'), +(1296, '{2660,3663,0,0,6}-{2657,3663,0,0,6}'), +(1298, '{2663,3646,0,0,6}'), +(1299, '{2660,3646,0,0,6}'), +(1300, '{2662,3674,0,1,1}'), +(1301, '{2623,3675,0,1,6}'), +(1303, '{2663,3693,0,1,1}'), +(1304, '{2582,3845,0,0,3}'), +(1306, '{2674,3677,0,1,6}'), +(1307, '{2680,3691,0,1,4}'), +(1308, '{2669,3652,0,1,2}'), +(1309, '{2667,3653,0,1,3}'), +(1310, '{2667,3701,0,1,4}'), +(1311, '{2655,3651,0,1,3}'), +(1312, '{2639,3651,0,1,6}'), +(1313, '{2626,3653,0,1,5}'), +(1315, '{2646,3675,0,1,3}'), +(1317, '{2632,3677,0,1,2}-{2641,3682,0,1,3}-{2643,3675,0,1,6}-{2643,3674,0,1,4}-{2646,3668,0,1,3}-{2651,3669,0,1,3}-{2648,3688,0,1,4}-{2656,3692,0,1,1}'), +(1318, '{2671,3658,0,1,2}-{2638,3648,0,1,3}-{2626,3658,0,1,4}-{2626,3668,0,1,1}-{2613,3668,0,1,3}-{2630,3673,0,1,7}-{2635,3680,0,1,4}-{2644,3675,0,1,5}-{2642,3681,0,1,3}-{2631,3678,0,1,6}-{2661,3698,0,1,1}-{2663,3687,0,1,3}-{2673,3695,0,1,3}-{2674,3710,0,1,1}-{2676,3693,0,1,3}-{2675,3685,0,1,4}-{2669,3677,0,1,1}-{2667,3670,0,1,2}-{2675,3670,0,1,4}-{2679,3685,0,1,2}-{2667,3671,0,1,3}-{2666,3663,0,1,6}-{2688,3659,0,1,2}-{2658,3657,0,1,4}-{2684,3649,0,1,4}-{2679,3649,0,1,4}-{2646,3664,0,1,4}-{2646,3655,0,1,1}-{2637,3655,0,1,3}-{2667,3658,0,1,3}'), +(1320, '{2738,3636,0,1,7}-{2739,3636,0,1,7}-{2738,3637,0,1,4}-{2735,3637,0,1,3}'), +(1321, '{2736,3642,0,1,4}-{2744,3638,0,1,4}'), +(1329, '{3073,3640,0,0,0}'), +(1334, '{2510,3644,1,1,3}'), +(1338, '{3151,5559,0,1,2}-{3157,5548,0,1,3}-{3155,5553,0,1,4}-{3145,5559,0,1,6}-{3152,5556,0,1,3}-{3149,5544,0,1,0}-{3145,5548,0,1,3}'), +(1339, '{3153,5547,0,1,0}-{3150,5545,0,1,1}'), +(1340, '{3147,5557,0,1,3}-{3154,5559,0,1,4}'), +(1343, '{3145,5548,0,1,6}'), +(1359, '{2612,3875,1,1,6}'), +(1360, '{2620,3896,0,0,3}'), +(1369, '{2527,5806,0,1,4}'), +(1373, '{2500,3860,1,1,4}'), +(1374, '{2505,3854,1,0,4}-{2509,3849,0,0,4}'), +(1375, '{2501,3858,1,0,4}'), +(1376, '{2548,3895,0,1,0}'), +(1377, '{2544,3843,0,1,6}'), +(1378, '{2516,3865,0,1,4}'), +(1385, '{2629,3694,0,0,6}'), +(1389, '{2603,3877,0,1,1}'), +(1390, '{2604,3876,0,1,4}'), +(1391, '{2604,3876,0,1,3}'), +(1393, '{2519,3868,0,0,3}'), +(1394, '{2519,3863,0,0,1}'), +(1395, '{2547,3868,0,0,1}'), +(1396, '{2525,3892,0,0,4}'), +(1397, '{2573,3856,0,0,4}'), +(1398, '{2526,3850,0,0,6}'), +(1399, '{2577,3854,0,0,1}'), +(1400, '{3037,4512,0,1,0}-{3049,4498,0,1,1}'), +(1401, '{2605,3878,0,1,1}'), +(1402, '{2603,3877,0,1,1}'), +(1404, '{3037,4492,0,1,4}-{3036,4502,0,1,4}-{3029,4520,0,1,1}-{3019,4512,0,1,1}-{2239,3164,0,1,2}-{2241,3166,0,1,3}-{2242,3163,0,1,3}'), +(1405, '{2576,3843,0,0,6}'), +(1427, '{2957,3025,0,0,0}'), +(1434, '{2753,2770,0,1,6}'), +(1447, '{2761,2785,0,1,3}'), +(1452, '{2743,2796,0,1,6}'), +(1454, '{2742,2790,0,1,1}'), +(1457, '{2747,2782,0,0,1}-{2754,2778,0,1,1}-{2761,2778,0,1,1}-{2765,2779,0,1,4}-{2767,2784,0,1,6}-{2772,2781,0,1,5}-{2774,2787,0,1,1}-{2777,2790,0,1,4}-{2762,2793,0,1,3}-{2756,2789,0,1,3}'), +(1458, '{2728,2751,0,1,1}-{2728,2758,0,1,1}-{2727,2762,0,1,6}-{2728,2755,0,1,6}-{2714,2753,0,1,1}-{2714,2757,0,1,6}-{2714,2761,0,1,6}-{2715,2749,0,1,2}'), +(1459, '{2790,2791,0,1,4}-{2803,2785,0,1,7}-{2797,2792,0,1,0}-{2800,2779,0,1,5}-{2788,2779,0,1,7}-{2795,2776,0,1,3}'), +(1460, '{2787,2794,0,1,3}'), +(1463, '{2600,3276,0,1,4}-{2601,3276,0,1,6}-{2601,3277,0,1,6}-{2601,3278,0,1,2}-{2602,3279,0,1,5}-{2602,3282,0,1,4}-{2604,3276,0,1,4}-{2605,3280,0,1,4}-{2605,3281,0,1,7}-{2606,3280,0,1,4}'), +(1469, '{2595,3277,0,0,0}'), +(1514, '{3432,3487,0,0,0}'), +(1515, '{3438,3487,0,0,0}'), +(1516, '{3437,3487,0,0,0}'), +(1517, '{3434,3483,0,0,0}'), +(1518, '{3435,3483,0,0,0}'), +(1519, '{3433,3486,0,0,0}'), +(1520, '{3434,3486,0,0,0}'), +(1553, '{2828,10065,1,0,0}'), +(1554, '{2829,10104,1,0,0}'), +(1555, '{2829,10096,1,0,0}'), +(1560, '{3150,5454,0,1,4}-{3144,5446,0,1,7}-{3166,5446,0,1,3}-{3158,5451,0,1,7}'), +(1561, '{3144,5450,0,1,1}-{3153,5454,0,1,5}-{3160,5450,0,1,5}-{3167,5450,0,1,3}-{3161,5451,0,1,1}'), +(1562, '{3147,5448,0,1,4}'), +(1563, '{3152,5453,0,1,0}'), +(1582, '{2657,9500,0,0,1}-{2632,9589,2,0,1}-{2628,9549,2,0,5}-{2629,9543,2,0,2}-{3249,5517,0,1,3}-{2568,9889,0,1,6}-{2578,9898,0,1,1}-{2352,9755,0,1,1}-{2343,9775,0,1,1}-{2340,9777,0,1,1}-{2334,9775,0,1,1}'), +(1583, '{2655,9481,0,0,3}-{2631,9579,2,0,4}-{3211,5519,0,1,0}-{3254,5513,0,1,7}-{2563,9885,0,1,7}-{2575,9897,0,1,1}-{2352,9760,0,1,1}'), +(1584, '{2661,9481,0,0,4}-{2635,9570,2,0,1}-{2627,9539,2,0,5}-{3209,5512,0,1,6}-{3231,5494,0,1,7}-{2350,9776,0,1,1}-{2337,9773,0,1,1}'), +(1585, '{2666,9482,0,0,5}-{2641,9563,2,0,5}-{3257,5523,0,1,1}-{3204,5516,0,1,3}-{2575,9892,0,1,6}-{2355,9762,0,1,1}-{2354,9768,0,1,1}-{2351,9770,0,1,1}-{2354,9773,0,1,1}'), +(1586, '{2668,9497,0,0,4}-{2635,9565,2,0,4}-{2633,9554,2,0,4}-{3247,5520,0,1,5}-{3205,5513,0,1,6}-{3213,5519,0,1,7}'), +(1587, '{2692,3202,0,1,4}-{2695,3216,0,1,0}-{2830,3241,0,1,6}-{2681,9577,0,0,0}-{2673,9591,0,0,5}-{2655,9575,0,0,5}-{2640,9580,0,0,0}-{2646,9553,0,0,1}-{2650,9536,0,0,7}-{2645,9489,0,0,7}-{2670,9543,0,0,0}-{2663,9555,0,0,7}-{3237,5557,0,1,3}'), +(1588, '{2691,3215,0,1,3}-{2826,3245,0,1,3}-{2679,9592,0,0,2}-{2654,9587,0,0,3}-{2650,9564,0,0,6}-{2647,9548,0,0,6}-{2637,9545,0,0,5}-{2637,9532,0,0,5}-{2634,9521,0,0,0}-{2642,9493,0,0,0}-{2645,9484,0,0,7}-{2678,9548,0,0,4}-{2658,9551,0,0,1}-{3246,5558,0,1,4}'), +(1589, '{2698,9503,0,0,7}-{2713,9505,0,0,0}-{2717,9502,0,0,7}-{2699,9523,0,0,0}-{2706,9525,0,0,2}-{2719,9517,0,0,5}-{2724,9515,0,0,3}'), +(1590, '{2730,9490,0,1,0}-{2731,9482,0,1,7}-{2742,9491,0,1,0}-{3184,5557,0,1,7}-{3148,5514,0,1,6}-{3144,5514,0,1,3}-{2340,9733,0,1,3}-{2348,9733,0,1,3}-{2348,9743,0,1,3}'), +(1591, '{2703,9456,0,0,0}-{2717,9459,0,0,7}-{2731,9460,0,0,3}-{2737,9454,0,0,3}-{2737,9444,0,0,3}-{2736,9432,0,0,3}-{2738,9421,0,0,5}-{2727,9418,0,0,1}-{2724,9439,0,0,0}-{2715,9443,0,0,4}-{2891,3919,0,1,0}-{2901,3914,0,1,0}-{2911,3914,0,1,0}-{2920,3919,0,1,0}-{2929,3919,0,1,0}-{2929,3935,0,1,0}-{2929,3944,0,1,0}-{2702,9443,0,0,3}-{2700,9428,0,0,3}-{2705,9419,0,0,7}-{2311,9744,0,1,3}-{2313,9733,0,1,3}-{2317,9735,0,1,3}-{2329,9736,0,1,3}'), +(1592, '{2893,3929,0,1,0}-{2893,3942,0,1,0}-{2897,3951,0,1,0}-{2903,3954,0,1,0}-{2910,3954,0,1,0}-{2920,3952,0,1,0}-{2929,3952,0,1,0}-{2728,9426,0,0,4}-{2714,9432,0,0,0}-{2707,9450,0,0,6}-{2724,9451,0,0,6}-{2311,9778,0,1,3}-{2313,9772,0,1,2}-{2318,9776,0,1,3}-{2318,9764,0,1,3}-{2318,9760,0,1,3}-{2313,9752,0,1,3}'), +(1593, '{2744,9503,0,0,2}-{2681,9563,0,0,5}-{2677,9586,0,0,2}-{2644,9587,0,0,1}-{2652,9526,0,0,7}-{2656,9514,0,0,7}-{2666,9522,0,0,4}-{2665,9513,0,0,3}-{2666,9489,0,0,1}-{2702,9525,0,0,2}-{2704,9487,0,0,7}-{2711,9485,0,0,2}-{2722,9486,0,0,4}-{2717,9480,0,0,6}-{2733,9494,0,0,1}-{2742,9489,0,0,0}-{2638,9592,2,0,5}-{2633,9583,2,0,7}-{2627,9545,2,0,6}-{2626,9535,2,0,6}-{2628,9507,2,0,5}-{2635,9508,2,0,2}-{2634,9483,2,0,7}'), +(1594, '{2672,9569,0,0,1}-{2657,9577,0,0,3}-{2643,9543,0,0,7}-{2646,9530,0,0,7}-{2643,9519,0,0,7}-{2660,9521,0,0,1}-{2665,9527,0,0,2}-{2671,9521,0,0,7}-{2670,9516,0,0,6}-{2660,9497,0,0,7}-{2643,9487,0,0,5}-{2653,9488,0,0,2}-{2677,9501,0,0,2}-{2699,9516,0,0,0}-{2709,9524,0,0,7}-{2683,9476,0,0,7}-{2700,9489,0,0,5}-{2703,9484,0,0,5}-{2710,9481,0,0,2}-{2716,9486,0,0,2}-{2726,9489,0,0,1}-{2735,9481,0,0,4}-{2740,9497,0,0,2}-{2739,9506,0,0,0}-{2658,9546,0,0,6}-{2636,9574,2,0,7}-{2643,9566,2,0,7}-{2635,9559,2,0,7}-{2630,9515,2,0,7}-{2642,9506,2,0,7}-{2629,9487,2,0,5}-{2648,9476,2,0,7}'), +(1595, '{2744,3152,0,1,7}'), +(1597, '{3146,9913,0,1,6}-{168,50,0,1,3}'), +(1598, '{2447,4429,0,1,6}-{162,54,0,1,6}'), +(1600, '{2791,9997,0,1,3}-{3190,9574,0,1,6}'), +(1601, '{2797,9997,0,1,6}-{2781,9996,0,1,7}'), +(1602, '{2793,9995,0,1,3}-{2783,9998,0,1,6}'), +(1603, '{2789,9994,0,1,1}-{2786,9998,0,1,5}'), +(1604, '{3434,3550,1,1,3}-{3439,3549,1,1,4}-{3425,3549,1,1,5}-{3423,3553,1,1,4}-{3426,3541,1,1,1}-{3425,3541,1,1,2}-{3426,3539,1,1,0}-{3420,3537,1,1,3}-{3417,3536,1,1,6}-{2373,9778,0,1,1}-{2372,9768,0,1,1}-{2371,9774,0,1,1}-{2375,9770,0,1,1}-{2383,9777,0,1,1}-{2387,9774,0,1,1}-{2384,9772,0,1,1}-{2387,9770,0,1,1}-{2392,9780,0,1,1}-{2396,9775,0,1,1}-{2399,9777,0,1,1}'), +(1608, '{2698,9999,0,1,6}-{2695,9997,0,1,7}-{2697,9996,0,1,5}-{2695,9999,0,1,6}'), +(1609, '{2700,9994,0,1,6}-{2698,10001,0,1,4}-{2703,9994,0,1,4}-{2701,10000,0,1,4}'), +(1610, '{3443,3537,2,1,4}-{3434,3536,2,1,4}-{3443,3540,2,1,3}-{3446,3548,2,1,4}-{3439,3549,2,1,3}-{3434,3547,2,1,1}-{3444,3537,2,1,3}-{3174,5474,0,1,4}-{3175,5479,0,1,6}-{3183,5473,0,1,7}-{3178,5468,0,1,4}-{2428,9745,0,1,1}-{2428,9742,0,1,1}-{2428,9735,0,1,1}-{2425,9737,0,1,1}-{2422,9735,0,1,1}-{2419,9738,0,1,1}'), +(1612, '{3438,3562,0,1,1}-{3430,3564,0,1,3}-{3434,3555,0,1,5}-{3443,3551,0,1,4}-{3442,3545,0,1,1}-{3449,3536,0,1,1}-{3440,3539,0,1,4}'), +(1613, '{3439,3565,2,1,6}-{3443,3571,2,1,1}-{3435,3565,2,1,3}-{3443,3564,2,1,2}-{3444,3559,2,1,2}-{3427,3558,2,1,0}-{3425,3557,2,1,4}-{3430,3557,2,1,3}-{3170,5554,0,1,2}-{3166,5556,0,1,5}-{3171,5560,0,1,4}-{3173,5556,0,1,3}-{2426,9751,0,1,1}-{2427,9754,0,1,1}-{2425,9757,0,1,1}-{2422,9756,0,1,1}-{2426,9753,0,1,1}-{2420,9755,0,1,1}-{2417,9755,0,1,1}-{2406,9763,0,1,1}-{2404,9765,0,1,1}-{2407,9766,0,1,1}-{2410,9764,0,1,1}-{2416,9765,0,1,1}-{2417,9763,0,1,1}-{2420,9764,0,1,1}-{2418,9765,0,1,1}'), +(1615, '{3422,3566,2,1,5}-{3426,3568,2,1,6}-{3418,3562,2,1,4}-{3414,3566,2,1,3}-{3412,3570,2,1,4}-{3421,3572,2,1,2}-{3422,3571,2,1,1}-{3033,4873,0,1,7}-{3039,4885,0,1,3}-{3050,4890,0,1,3}-{3062,4892,0,1,5}-{3064,4901,0,1,3}-{3056,4912,0,1,3}-{3048,4916,0,1,5}-{3038,4911,0,1,6}-{3022,4914,0,1,6}-{3018,4902,0,1,6}-{3025,4898,0,1,4}-{3033,4885,0,1,0}-{3021,4877,0,1,3}-{3048,4872,0,1,1}-{3061,4880,0,1,3}-{3061,4891,0,1,1}-{3054,4901,0,1,1}-{2402,9739,0,1,1}-{2402,9742,0,1,1}-{2402,9751,0,1,1}-{2406,9753,0,1,1}-{2408,9750,0,1,1}-{2404,9748,0,1,1}-{2407,9748,0,1,1}-{2416,9748,0,1,1}-{2415,9745,0,1,1}-{2418,9745,0,1,1}'), +(1616, '{2741,10011,0,1,2}-{2742,10010,0,1,3}-{2739,10014,0,1,1}-{2740,10006,0,1,3}'), +(1617, '{2743,10003,0,1,1}-{2746,10008,0,1,2}-{2743,10015,0,1,3}-{2745,10011,0,1,5}-{2744,10016,0,1,1}'), +(1618, '{3424,3565,1,1,1}-{3416,3562,1,1,6}-{3423,3559,1,1,0}-{3424,3560,1,1,4}-{3412,3558,1,1,1}-{3412,3568,1,1,1}-{3417,3565,1,1,3}-{2425,9774,0,1,1}-{2425,9776,0,1,1}-{2423,9779,0,1,1}-{2419,9785,0,1,1}-{2415,9785,0,1,1}-{2416,9788,0,1,1}-{2430,9788,0,1,1}-{2434,9789,0,1,1}-{2436,9794,0,1,1}'), +(1620, '{2794,10036,0,1,4}-{2788,10037,0,1,0}-{2795,10034,0,1,3}-{2785,10035,0,1,3}'), +(1621, '{2797,10035,0,1,6}-{2787,10032,0,1,3}-{2802,10031,0,1,3}'), +(1624, '{3179,5522,0,1,6}-{3223,9393,0,1,5}-{3225,9401,0,1,0}-{3222,9375,0,1,6}-{3220,9380,0,1,6}-{3215,9364,0,1,3}-{3213,9361,0,1,1}-{3212,9355,0,1,2}-{3230,9367,0,1,3}-{3240,9350,0,1,5}-{3248,9348,0,1,4}-{3255,9350,0,1,4}-{3256,9392,0,1,4}-{3168,5513,0,1,3}-{3174,5514,0,1,6}-{3178,5517,0,1,4}-{3178,5528,0,1,1}-{3169,5516,0,1,3}-{3179,5524,0,1,4}'), +(1626, '{3165,5537,0,1,3}-{3159,5538,0,1,4}-{3155,5539,0,1,3}-{3158,5537,0,1,4}'), +(1627, '{2724,10008,0,1,4}'), +(1628, '{2723,10004,0,1,4}-{2722,9999,0,1,1}-{2729,10002,0,1,1}'), +(1629, '{2723,10005,0,1,0}-{2726,9998,0,1,1}-{2723,10009,0,1,3}-{2727,9998,0,1,4}-{2727,10001,0,1,3}'), +(1630, '{2721,10005,0,1,1}-{2724,10005,0,1,3}-{2729,10004,0,1,3}-{2724,10012,0,1,4}-{2718,10009,0,1,1}-{2721,10001,0,1,7}-{2720,9996,0,1,7}-{2721,10006,0,1,3}'), +(1631, '{2800,10017,0,1,1}-{2796,10021,0,1,1}-{2805,10021,0,1,1}-{2803,10013,0,1,1}-{3160,9589,0,1,3}-{3167,9589,0,1,6}-{3179,9585,0,1,1}-{3188,9572,0,1,7}-{3190,9580,0,1,3}-{3206,9586,0,1,3}-{3221,9586,0,1,7}-{3226,9573,0,1,5}-{3223,9569,0,1,1}'), +(1632, '{2798,10019,0,1,1}-{2800,10015,0,1,1}-{2797,10018,0,1,1}'), +(1633, '{1935,3217,0,1,0}-{1933,3209,0,1,0}-{1930,3208,0,1,0}-{1929,3217,0,1,0}-{1927,3219,0,1,0}-{1924,3211,0,1,0}-{1920,3216,0,1,0}-{1925,3213,0,1,0}-{1837,3244,0,1,0}-{1836,3250,0,1,0}-{1845,3251,0,1,0}-{1845,3247,0,1,0}-{1849,3241,0,1,0}-{1858,3251,0,1,0}-{1853,3247,0,1,0}-{1848,3254,0,1,0}-{2761,10007,0,1,0}-{2757,10010,0,1,3}-{2763,10000,0,1,5}-{2760,10011,0,1,0}-{2761,9997,0,1,4}-{3263,9399,0,1,3}-{3274,9397,0,1,1}-{3275,9393,0,1,6}-{3271,9384,0,1,0}-{3270,9380,0,1,2}-{3283,9378,0,1,6}-{3285,9386,0,1,5}-{3284,9401,0,1,4}-{3278,9353,0,1,1}-{3299,9380,0,1,1}-{3319,9402,0,1,1}-{3305,9350,0,1,4}'), +(1634, '{2757,10008,0,1,6}-{2760,10005,0,1,5}'), +(1635, '{2758,10001,0,1,1}-{2763,10006,0,1,1}-{2766,10000,0,1,6}-{2759,9999,0,1,7}'), +(1636, '{2760,10004,0,1,1}-{2760,10002,0,1,6}'), +(1637, '{3276,5454,0,1,4}-{3279,5450,0,1,0}-{3271,5446,0,1,3}-{3277,5512,0,1,1}-{2700,10027,0,1,6}-{3278,5535,0,0,0}-{3277,5520,0,1,1}'), +(1638, '{3284,5456,0,1,1}-{3278,5453,0,1,1}-{3271,5512,0,1,4}-{2704,10022,0,1,4}-{2707,10023,0,1,4}'), +(1639, '{3283,5461,0,1,4}-{3285,5456,0,1,6}-{3275,5455,0,1,5}-{3272,5446,0,1,4}-{3277,5445,0,1,3}-{2711,10028,0,1,2}-{2710,10030,0,1,6}'), +(1640, '{3272,5445,0,1,4}-{2705,10028,0,1,3}-{2704,10031,0,1,6}'), +(1641, '{2708,10025,0,1,6}'), +(1642, '{2703,10020,0,1,0}'), +(1643, '{3246,5446,0,1,3}-{3434,3562,1,1,6}-{3439,3558,1,1,5}-{3444,3567,1,1,4}-{3439,3571,1,1,3}-{3435,3570,1,1,7}-{3447,3561,1,1,4}-{3442,3573,1,1,6}-{3237,5455,0,1,0}-{3246,5450,0,1,4}'), +(1644, '{3240,5448,0,1,7}'), +(1648, '{3426,3537,0,1,4}-{3413,3536,0,1,3}-{3419,3545,0,1,2}-{3426,3544,0,1,6}-{3410,3535,0,1,2}-{3425,3556,0,1,6}-{3418,3557,0,1,1}-{3428,3571,0,1,3}-{3432,3573,0,1,4}'), +(1650, '{3411,3541,0,1,3}'), +(1655, '{3424,3544,0,1,1}-{3423,3546,0,1,1}-{3409,3538,0,1,3}-{3421,3559,0,1,4}-{3413,3559,0,1,6}-{3433,3574,0,1,3}-{3428,3571,0,1,6}'), +(1658, '{2595,3087,1,1,1}'), +(1679, '{2291,3145,0,1,2}'), +(1680, '{2290,3143,0,1,3}'), +(1681, '{3202,5483,0,1,4}-{2544,9843,0,1,3}'), +(1683, '{3678,3511,0,1,4}'), +(1684, '{3660,3517,0,1,7}'), +(1685, '{3659,3497,0,1,0}'), +(1686, '{3657,3516,0,1,3}-{3663,3522,0,1,7}-{3654,3518,1,1,6}'), +(1688, '{3709,3497,0,0,3}'), +(1691, '{3624,3530,0,1,1}-{3623,3524,0,1,2}-{3618,3526,0,1,6}-{3612,3527,0,1,6}-{3609,3527,0,1,4}'), +(1692, '{3632,3528,0,1,5}-{3633,3525,0,1,6}-{3631,3529,0,1,3}-{3631,3529,0,1,2}-{3628,3530,0,1,1}-{3631,3530,0,1,4}-{3629,3529,0,1,4}'), +(1694, '{3673,3491,0,1,3}'), +(1695, '{3461,3558,0,0,3}'), +(1697, '{3662,3502,0,1,4}-{3664,3493,0,1,6}-{3672,3486,0,1,2}-{3685,3485,0,1,3}-{3684,3496,0,1,3}-{3675,3502,0,1,3}-{3667,3484,0,1,0}-{3666,3471,0,1,4}-{3676,3464,0,1,3}-{3683,3467,0,1,6}-{3685,3474,0,1,4}-{3690,3474,0,1,1}-{3695,3473,0,1,3}-{3693,3466,0,1,7}-{3698,3463,0,1,3}-{3688,3467,0,1,3}-{3675,3474,0,1,4}-{3665,3476,0,1,6}-{3662,3491,0,1,1}-{3662,3495,0,1,4}-{3661,3501,0,1,6}-{3682,3486,0,1,4}-{3678,3493,0,1,4}-{3673,3491,0,1,3}-{3658,3502,0,1,4}-{3660,3505,0,1,1}-{3665,3469,0,1,6}-{3659,3465,0,1,6}-{3667,3461,0,1,1}'), +(1699, '{3659,3480,0,1,3}'), +(1700, '{3681,3493,0,1,5}'), +(1702, '{3690,3464,0,0,1}-{3691,3464,0,0,1}-{3688,3464,0,0,1}-{3687,3464,0,0,1}'), +(1703, '{3697,3496,0,1,3}-{3699,3497,0,1,2}-{3689,3503,0,1,3}-{3690,3508,0,1,6}-{3690,3512,0,1,6}-{3689,3517,0,1,1}-{3690,3524,0,1,6}-{3689,3528,0,1,5}-{3690,3518,0,1,5}-{3689,3503,0,1,3}-{3689,3496,0,1,0}'), +(1704, '{3703,3487,0,0,3}'), +(1706, '{3661,3508,0,0,1}-{3658,3508,0,0,1}-{3652,3487,0,0,3}-{3652,3484,0,0,3}'), +(1710, '{3165,9631,0,1,6}-{3165,9633,0,1,0}-{3160,9634,0,1,7}-{3156,9630,0,1,6}-{3152,9627,0,1,4}-{3148,9621,0,1,4}-{3175,9630,0,1,1}-{3174,9634,0,1,3}-{3172,9638,0,1,0}'), +(1711, '{3160,9638,0,1,1}-{3159,9633,0,1,6}-{3161,9626,0,1,6}-{3169,9626,0,1,4}-{3171,9634,0,1,4}-{3164,9634,0,1,3}-{3165,9631,0,1,7}-{3180,9631,0,1,7}-{3183,9629,0,1,6}-{3182,9633,0,1,1}-{3172,9632,0,1,4}-{3158,9631,0,1,1}-{3160,9630,0,1,1}-{3159,9633,0,1,4}-{3150,9623,0,1,6}-{3152,9620,0,1,6}-{3159,9622,0,1,0}-{3169,9623,0,1,6}-{3169,9623,0,1,4}'), +(1712, '{3153,9646,0,1,3}-{3151,9651,0,1,1}'), +(1714, '{3172,9624,0,1,2}-{3161,9623,0,1,1}-{3151,9624,0,1,1}-{3150,9622,0,1,4}-{3153,9627,0,1,3}-{3157,9634,0,1,2}-{3171,9636,0,1,6}-{3174,9639,0,1,3}-{3174,9634,0,1,3}'), +(1715, '{3171,9635,0,1,3}-{3159,9636,0,1,2}-{3169,9630,0,1,3}-{3172,9625,0,1,0}-{3159,9627,0,1,3}'), +(1752, '{2510,3228,0,1,3}'), +(1754, '{3259,3308,0,1,4}-{3100,3246,0,1,2}-{3131,3263,0,1,5}-{3122,3278,0,1,2}'), +(1755, '{3258,3312,0,1,3}-{3106,3275,0,1,1}-{3106,3266,0,1,3}-{3114,3273,0,1,4}'), +(1756, '{3262,3320,0,1,1}-{3096,3251,0,1,3}-{3117,3278,0,1,0}-{3102,3261,0,1,1}'), +(1757, '{3233,3308,0,0,4}'), +(1758, '{2895,3403,0,0,0}-{3262,3325,0,0,0}'), +(1759, '{3250,3310,0,0,0}'), +(1761, '{3121,3274,0,0,0}'), +(1765, '{3206,3265,0,1,4}-{2923,3320,0,1,7}-{2921,3320,0,1,4}-{2923,3320,0,1,5}'), +(1766, '{3259,3262,0,1,4}-{3262,3274,0,1,3}-{3259,3278,0,1,1}-{3263,3273,0,1,7}-{3171,3320,0,1,0}'), +(1767, '{3262,3262,0,1,6}-{3025,3311,0,1,5}-{2924,3288,0,0,1}-{2921,3290,0,1,1}-{2926,3279,0,1,1}-{2931,3272,0,1,1}-{2936,3273,0,1,6}'), +(1769, '{2979,3203,0,1,4}-{3264,3249,0,1,4}-{2596,9822,0,1,4}'), +(1770, '{2999,3212,0,1,1}-{3262,3253,0,1,6}-{3259,3254,0,1,3}-{2595,9826,0,1,1}'), +(1771, '{2993,3199,0,1,6}-{3248,3233,0,1,6}-{3247,3240,0,1,3}-{3187, 3286, 0, 1, 0}-{3209, 3277, 0, 1, 0}-{3174, 3294, 0, 1, 0}-{3178, 3294, 0, 1, 0}-{3144, 3302, 0, 1, 0}-{3142, 3303, 0, 1, 0}-{3151, 3300, 0, 1, 0}-{3139, 3299, 0, 1, 0}'), +(1772, '{2993,3203,0,1,0}-{3251,3231,0,1,1}-{3260,3241,0,1,0}-{3259,3222,0,0,4}'), +(1773, '{2991,3219,0,1,1}-{3252,3227,0,1,1}-{3263,3219,0,1,0}'), +(1774, '{3012,3204,0,1,3}-{3255,3228,0,1,4}-{3265,3219,0,1,2}-{2592,9834,0,1,6}'), +(1775, '{3010,3211,0,1,6}-{3254,3224,0,1,1}-{2585,9829,0,1,1}'), +(1776, '{2999,3216,0,1,6}-{3264,3247,0,1,2}'), +(1778, '{3260,3859,0,0,0}'), +(1779, '{2978,3752,0,1,6}'), +(1780, '{3272,3687,0,1,3}'), +(1781, '{3008,3862,0,0,0}'), +(1782, '{3363,3883,0,1,4}'), +(1783, '{3079,3516,0,1,6}'), +(1784, '{3025,3705,0,1,1}'), +(1785, '{3144,3788,0,1,6}'), +(1786, '{3234,3633,0,1,1}'), +(1787, '{3074,3609,0,1,3}'), +(1795, '{2967,9811,0,0,0}'), +(1796, '{2968,9809,0,0,0}'), +(1798, '{2701,3471,0,0,0}'), +(1805, '{2765,3652,0,1,0}'), +(1828, '{3231,9545,0,1,6}'), +(1829, '{3153,9548,0,1,1}-{3154,9547,0,1,4}-{3176,9546,0,1,4}-{3221,9558,0,1,4}-{3226,9548,0,1,7}-{3224,9551,0,1,1}-{3219,9558,0,1,7}'), +(1831, '{3208,9555,0,1,1}-{3165,9542,0,1,3}-{3211,9570,0,1,5}'), +(1832, '{3150,9573,0,1,1}-{3188,9550,0,1,0}-{3148,9578,0,1,4}-{3152,9556,0,1,3}-{3150,9553,0,1,2}-{3167,9547,0,1,1}-{3168,9546,0,1,3}-{3184,9551,0,1,3}-{3220,9573,0,1,4}-{3224,9574,0,1,1}-{3208,9588,0,1,6}-{3210,9585,0,1,4}-{3191,9583,0,1,4}-{3187,9583,0,1,3}-{3272,5549,0,1,0}-{3275,5546,0,1,0}-{3281,5545,0,1,2}-{3286,5544,0,1,0}-{3285,5539,0,1,3}-{3268,5553,0,1,1}-{3274,5558,0,1,6}-{3281,5557,0,1,4}-{3282,5554,0,1,4}-{3269,5551,0,1,3}-{3287,5549,0,1,3}-{3279,5546,0,1,6}-{3283,5545,0,1,0}-{3269,5548,0,1,1}'), +(1833, '{3151,9575,0,1,3}-{3150,9577,0,1,4}-{3148,9554,0,1,6}-{3165,9547,0,1,1}-{3165,9546,0,1,2}-{3184,9551,0,1,3}-{3222,9575,0,1,4}-{3226,9576,0,1,3}-{3210,9587,0,1,2}-{3189,9581,0,1,4}'), +(1834, '{3169,3174,0,1,6}'), +(1841, '{3020,3452,0,0,0}'), +(1860, '{2957,3203,0,1,3}'), +(1861, '{3208,3256,0,0,1}'), +(1862, '{3304,3211,0,1,1}'), +(1863, '{3358,2956,0,0,6}'), +(1864, '{3363,2956,0,0,3}'), +(1865, '{3352,2974,0,1,4}'), +(1866, '{3360,2983,0,1,4}'), +(1867, '{3347,2966,0,0,6}'), +(1870, '{3373,2972,0,1,5}'), +(1871, '{3344,2986,0,1,3}'), +(1872, '{3354,2953,0,0,6}'), +(1873, '{3343,2962,0,1,0}-{3343,2964,0,1,1}'), +(1875, '{3354,2952,0,0,1}'), +(1884, '{2811,3174,0,0,0}'), +(1902, '{3333,2946,0,0,1}'), +(1905, '{3335,2948,0,1,2}-{3331,2948,0,1,6}-{3333,2950,0,1,0}'), +(1917, '{3177,2987,0,1,6}'), +(1918, '{3180,3043,0,1,2}'), +(1920, '{3497,3478,0,0,0}'), +(1921, '{3159,2980,0,1,1}'), +(1923, '{3183,2974,0,0,7}'), +(1926, '{3179,2967,0,1,3}-{3172,2966,0,1,1}-{3171,2980,0,1,3}-{3166,2972,0,1,0}-{3181,2979,0,1,3}-{3187,2976,0,1,7}-{3174,2984,0,1,3}-{3183,2982,0,1,4}-{3187,2985,0,1,1}-{3182,2988,0,1,5}-{3188,2990,0,1,2}-{3172,2992,0,1,4}-{3171,2987,0,1,4}-{3161,2982,0,1,2}-{3161,2986,0,1,3}-{3159,2987,0,1,3}-{3163,2976,0,1,4}-{3161,2977,0,1,4}-{3161,2979,0,1,6}-{3162,2982,0,1,6}-{3164,2985,0,1,2}-{3158,2970,0,1,3}-{3155,2979,0,1,4}-{3167,2972,0,1,6}-{3172,2973,0,1,5}-{3175,2973,0,1,4}-{3185,2967,0,1,2}'), +(1927, '{3160,2979,0,0,5}-{3162,2989,0,0,1}'), +(1928, '{3161,2977,0,0,4}-{3161,2987,0,0,1}'), +(1929, '{3158,2987,0,0,3}'), +(1930, '{3161,2985,0,0,6}-{3161,2983,0,0,6}-{3161,2982,0,0,6}-{3161,2981,0,0,6}-{3161,2984,0,0,6}'), +(1951, '{2886,3723,0,1,3}-{2887,3720,0,1,4}-{2890,3721,0,1,7}-{2890,3724,0,1,1}-{2909,3736,0,1,5}-{2910,3736,0,1,2}-{2891,3724,0,1,7}'), +(1952, '{2892,3726,0,1,0}-{2894,3726,0,1,6}-{2895,3728,0,1,0}-{2895,3730,0,1,5}-{2922,3755,0,1,3}-{2893,3725,0,1,2}-{2894,3727,0,1,6}-{2895,3725,0,1,3}-{2898,3735,0,1,6}'), +(1953, '{2897,3733,0,1,5}-{2897,3737,0,1,5}-{2913,3736,0,1,3}-{2897,3737,0,1,6}-{2915,3740,0,1,1}-{2894,3742,0,1,0}'), +(1954, '{2895,3751,0,1,1}-{2895,3755,0,1,6}-{2898,3751,0,1,3}-{2898,3755,0,1,6}-{2930,3765,0,1,5}-{2893,3748,0,1,5}-{2896,3749,0,1,1}-{2929,3762,0,1,3}'), +(1955, '{2895,3740,0,1,1}-{2895,3744,0,1,3}-{2898,3740,0,1,6}-{2898,3744,0,1,1}-{2908,3739,0,1,0}-{2928,3763,0,1,3}-{2899,3737,0,1,2}-{2897,3739,0,1,6}-{2912,3742,0,1,2}-{2898,3750,0,1,3}-{2895,3751,0,1,4}'), +(1956, '{2886,3758,0,1,6}-{2886,3762,0,1,3}-{2890,3756,0,1,4}-{2890,3762,0,1,1}-{2928,3753,0,1,2}-{2926,3753,0,1,6}-{2895,3754,0,1,3}'), +(1958, '{3240,9326,0,1,3}-{3209,9310,0,1,4}-{3245,9333,0,1,4}-{3213,9307,0,1,4}-{3221,9318,0,1,3}-{3229,9333,0,1,3}-{3216,9329,0,1,4}-{3208,9294,0,1,3}-{3201,9286,0,1,1}-{3212,9326,0,1,4}-{3217,9284,0,1,7}-{3226,9284,0,1,4}-{3232,9299,0,1,6}-{3242,9295,0,1,1}-{3220,9302,0,1,0}-{3238,9305,0,1,6}-{3220,9296,0,1,1}-{3246,9291,0,1,3}-{3240,9289,0,1,4}-{3237,9305,0,1,3}-{3257,9292,0,0,5}-{3246,9321,0,1,1}-{3261,9310,0,1,3}-{3258,9309,0,1,4}-{3251,9316,0,1,3}-{3247,9310,0,1,3}-{3147,5467,0,1,1}-{3144,5466,0,1,2}-{3147,5479,0,1,2}-{3144,5475,0,1,6}-{3161,5482,0,1,5}-{3147,5475,0,1,6}'), +(1961, '{3250,9326,0,1,4}-{3258,9327,0,1,6}-{3256,9333,0,1,1}-{3220,9309,0,1,4}-{3252,9333,0,1,3}-{3208,9318,0,1,3}-{3241,9331,0,1,6}-{3204,9328,0,1,3}-{3209,9328,0,1,3}-{3228,9323,0,1,4}-{3210,9282,0,1,7}-{3225,9329,0,1,6}-{3207,9299,0,1,4}-{3215,9295,0,1,3}-{3213,9322,0,1,3}-{3214,9315,0,1,0}-{3221,9291,0,1,0}-{3213,9303,0,1,4}-{3227,9304,0,1,6}-{3247,9301,0,1,1}-{3228,9284,0,1,3}-{3254,9286,0,1,4}-{3262,9291,0,1,6}-{3224,9302,0,1,3}-{3250,9298,0,1,3}-{3252,9293,0,1,6}-{3262,9299,0,1,1}-{3256,9297,0,1,7}-{3262,9285,0,1,1}-{3254,9322,0,1,0}-{3261,9318,0,1,4}-{3242,9316,0,1,6}-{3250,9306,0,1,3}-{3250,9327,0,1,3}-{3156,5477,0,1,5}-{3162,5479,0,1,4}-{3159,5477,0,1,6}-{3150,5474,0,1,3}-{3147,5480,0,1,1}-{3159,5484,0,1,3}'), +(1962, '{3168,5458,0,1,2}-{3242,9331,0,1,3}-{3238,9333,0,1,6}-{3261,9330,0,1,1}-{3232,9333,0,1,0}-{3222,9324,0,1,4}-{3205,9303,0,1,3}'), +(1963, '{3166,5465,0,1,7}-{3168,5462,0,1,0}-{3167,5467,0,1,1}-{3167,5467,0,1,7}'), +(1972, '{2536, 3426, 0, 1, 0}'), +(1976, '{3315,5508,0,1,5}-{3308,5510,0,1,3}-{3304,5507,0,1,4}-{3299,5509,0,1,3}-{3317,5514,0,1,3}-{3319,5518,0,1,4}-{3320,5507,0,1,4}-{3324,5513,0,1,1}-{3283,5510,0,1,5}-{3320,5550,0,1,0}-{3313,5523,0,1,4}-{3310,5541,0,1,4}-{3308,5535,0,1,5}-{3301,5531,0,1,4}-{3315,5530,0,1,1}-{3322,5536,0,1,4}-{3320,5539,0,1,7}-{3311,5519,0,1,3}-{3289,5525,0,1,2}-{3300,5519,0,1,6}-{3289,5515,0,1,7}-{3287,5523,0,1,3}'), +(1990, '{3300,2797,0,0,6}'), +(1993, '{3360,2935,0,1,4}-{3359,2924,0,1,6}-{3352,2936,0,1,0}-{3349,2931,0,1,6}-{3341,2924,0,1,4}'), +(1994, '{3344,2933,0,1,3}-{3350,2936,0,1,4}'), +(2014, '{3293,2788,0,1,0}'), +(2020, '{3503,3477,0,0,0}'), +(2021, '{3222,9525,2,1,3}-{3216,9522,2,1,3}-{3219,9518,2,1,3}-{3224,9521,2,1,3}-{3218,9523,2,1,3}-{3215,9521,2,1,3}-{3213,9522,2,1,3}-{3227,9517,2,1,3}'), +(2031, '{3290,5448,0,1,6}-{3291,5452,0,1,1}-{3293,5456,0,1,6}-{3551,9680,0,0,2}-{3553,9679,0,0,1}-{3551,9675,0,0,6}-{3554,9676,0,0,7}-{3548,9676,0,0,5}-{3552,9691,0,0,2}-{3569,9681,0,0,7}-{3577,9711,0,0,5}-{3567,9675,0,0,5}-{3567,9675,0,0,5}-{3570,9678,0,0,2}-{3568,9686,0,0,1}-{3545,9721,0,0,7}-{3560,9712,0,0,6}-{3552,9685,0,0,1}-{3525,9698,0,0,6}-{3538,9668,0,0,4}'), +(2032, '{3549,9678,0,0,0}-{3569,9676,0,0,5}-{3566,9678,0,0,1}-{3560,9678,0,0,2}-{3526,9678,0,0,2}-{3532,9693,0,0,5}-{3534,9690,0,0,7}-{3536,9695,0,0,2}-{3542,9694,0,0,7}-{3548,9695,0,0,7}-{3556,9695,0,0,5}-{3554,9709,0,0,2}-{3533,9708,0,0,5}-{3534,9703,0,0,5}-{3538,9721,0,0,7}-{3567,9720,0,0,6}-{3561,9711,0,0,7}-{3552,9703,0,0,1}-{3551,9698,0,0,1}-{3532,9678,0,0,5}-{3531,9675,0,0,5}-{3537,9677,0,0,2}-{3187,5513,0,1,3}-{3186,5510,0,1,6}-{3186,5516,0,1,6}-{3194,5511,0,1,1}-{3185,5514,0,1,5}'), +(2033, '{3300,5494,0,1,2}-{3285,5492,0,1,6}-{3285,5495,0,1,0}-{3288,5497,0,1,3}-{3268,5487,0,0,0}-{3533,9691,0,0,4}-{3537,9694,0,0,2}-{3533,9696,0,0,2}-{3533,9693,0,0,5}-{3188,5511,0,1,7}-{3190,5511,0,1,6}'), +(2034, '{3288,5484,0,1,4}-{3288,5467,0,1,0}-{3293,5468,0,1,2}-{3296,5475,0,1,7}-{3296,5473,0,1,2}-{3297,5480,0,1,4}-{3565,9695,0,0,1}-{3566,9692,0,0,5}-{3572,9695,0,0,7}'), +(2035, '{3569,9696,0,0,2}-{3569,9693,0,0,6}-{3566,9694,0,0,6}-{3567,9698,0,0,2}-{3572,9692,0,0,5}'), +(2036, '{3569,9674,0,0,0}-{3561,9677,0,0,6}-{3535,9686,0,0,6}-{3535,9698,0,0,1}-{3576,9677,0,0,3}-{3577,9679,0,0,1}-{3568,9691,0,0,2}-{3560,9694,0,0,6}-{3570,9682,0,0,1}-{3569,9687,0,0,2}-{3550,9711,0,0,5}-{3551,9708,0,0,6}-{3548,9713,0,0,6}-{3537,9711,0,0,4}-{3535,9702,0,0,7}-{3553,9722,0,0,4}-{3567,9712,0,0,5}-{3569,9704,0,0,6}-{3579,9693,0,0,7}-{3534,9675,0,0,2}-{3526,9711,0,0,1}-{3566,9668,0,0,4}'), +(2037, '{3543,9677,0,0,3}-{3572,9680,0,0,7}-{3559,9677,0,0,4}-{3535,9685,0,0,1}-{3537,9693,0,0,1}-{3570,9697,0,0,2}-{3552,9713,0,0,6}-{3553,9711,0,0,3}-{3567,9708,0,0,6}-{3535,9679,0,0,1}-{3525,9683,0,0,6}'), +(2038, '{2392,2984,0,0,0}'), +(2039, '{2392,2984,0,0,0}'), +(2040, '{2444,3047,0,0,0}'), +(2041, '{2447,3050,0,0,0}'), +(2042, '{2455,3048,0,0,0}'), +(2043, '{2451,3030,0,0,0}-{2446,3040,0,0,0}'), +(2050, '{2460,3046,0,0,0}-{2465,3052,0,0,0}'), +(2051, '{2463,3053,0,0,0}'), +(2052, '{2468,3045,0,0,0}'), +(2053, '{2467,3051,0,0,0}'), +(2054, '{2466,3046,0,0,0}'), +(2055, '{2471,3056,0,0,0}'), +(2056, '{2470,3040,0,0,0}'), +(2059, '{2588,3088,0,1,3}'), +(2082, '{3210,3220,1,1,6}'), +(2180, '{2997,9837,0,1,3}'), +(2234, '{3081,3251,0,1,6}-{2636,3365,0,1,6}'), +(2235, '{3241,3345,0,1,4}'), +(2236, '{3078,3250,0,1,1}-{3081,3250,0,1,2}'), +(2237, '{3249,3266,0,1,5}'), +(2240, '{3077,3259,0,1,4}'), +(2241, '{3078,3260,0,1,3}'), +(2242, '{3076,3260,0,1,1}-{3078,3260,0,1,6}'), +(2243, '{3078,3259,0,1,3}'), +(2244, '{3233,3228,0,1,3}'), +(2245, '{2505,3240,0,1,4}-{2512,3250,0,1,1}-{2506,3242,0,1,3}-{2510,3252,0,1,4}-{2516,3248,0,1,1}-{2518,3245,0,1,7}-{2518,3245,0,1,1}-{2517,3242,0,1,6}-{2523,3241,0,1,4}-{2525,3241,0,1,1}-{2515,3256,0,1,6}-{2519,3257,0,1,4}'), +(2246, '{2521,3239,0,1,5}'), +(2247, '{2543,3225,0,1,7}-{2553,3220,0,1,3}-{2545,3220,0,1,4}-{2525,3220,0,1,4}-{2518,3218,0,1,1}'), +(2248, '{2540,3218,0,1,1}-{2515,3216,0,1,1}-{2512,3215,0,1,7}'), +(2249, '{2530,3224,0,1,4}-{2524,3221,0,1,2}-{2543,3217,0,1,4}-{2530,3212,0,1,4}-{2557,3234,0,1,4}-{2540,3226,0,1,5}-{2532,3213,0,1,4}-{2527,3201,0,1,6}-{2544,3216,0,1,6}-{2519,3222,0,1,6}-{2526,3227,0,1,4}-{2550,3234,0,1,3}-{2553,3220,0,1,3}-{2521,3202,0,1,6}-{2525,3220,0,1,4}-{2544,3230,0,1,3}-{2547,3212,0,1,4}-{2545,3212,0,1,0}-{2540,3208,0,1,4}-{2533,3202,0,1,6}-{2536,3236,0,1,6}-{2525,3204,0,1,0}-{2539,3238,0,1,4}'), +(2250, '{2525,3209,0,1,4}-{2558,3228,0,1,4}-{2543,3212,0,1,3}-{2538,3223,0,1,0}-{2527,3201,0,1,7}-{2517,3222,0,1,3}-{2547,3231,0,1,6}-{2550,3220,0,1,4}-{2538,3224,0,1,3}-{2545,3213,0,1,0}-{2542,3208,0,1,5}'), +(2251, '{2520,3217,0,1,3}-{2524,3209,0,1,1}-{2529,3200,0,1,5}-{2530,3209,0,1,1}-{2519,3223,0,1,4}-{2518,3224,0,1,2}-{2527,3201,0,1,7}-{2521,3202,0,1,4}-{2542,3208,0,1,4}-{2539,3233,0,1,6}'), +(2252, '{3199,3302,0,1,3}-{3079,3257,0,1,1}-{3091,3250,0,1,6}-{3137,3254,0,1,0}'), +(2256, '{2571,3305,0,1,7}-{2572,3297,0,1,2}-{2572,3304,0,1,1}-{2577,3308,0,1,6}-{2582,3287,0,1,3}-{2582,3299,0,1,0}-{2583,3292,0,1,4}-{2572,3292,1,1,1}-{2577,3295,1,1,6}-{2576,3286,1,1,1}-{2585,3289,1,1,7}-{2585,3304,1,1,1}-{2582,3306,1,1,5}-{2582,3286,1,1,3}-{2653,3315,0,1,6}-{2658,3306,0,1,4}'), +(2257, '{3105,3554,0,1,1}'), +(2259, '{155,55,0,1,6}'), +(2260, '{3259,3385,0,1,6}'), +(2262, '{3039,4834,0,0,7}'), +(2263, '{3037,4906,0,1,2}-{3021,4812,0,1,5}-{3057,4875,0,0,6}-{3014,4838,0,1,6}-{3016,4892,0,1,6}-{3058,4877,0,0,6}-{3051,4874,0,1,0}-{3061,4836,0,1,4}-{3029,4890,0,1,6}-{3032,4901,0,1,2}-{3024,4916,0,1,3}-{3020,4903,0,1,4}-{3061,4883,0,0,3}-{3058,4889,0,0,3}-{3053,4896,0,0,3}-{3038,4871,0,1,6}-{3053,4900,0,0,7}-{3017,4812,0,1,6}-{3061,4842,0,1,3}-{3048,4808,0,1,3}-{3021,4847,0,1,6}-{3054,4849,0,1,6}-{3055,4915,0,0,5}-{3015,4833,0,1,0}-{3035,4854,0,1,6}-{3016,4829,0,1,4}-{3037,4906,0,0,5}-{3040,4810,0,1,3}-{3047,4886,0,1,4}-{3059,4815,0,1,1}-{3033,4884,0,1,4}-{3027,4851,0,1,6}-{3020,4819,0,1,4}-{3020,4845,0,1,2}-{3061,4829,0,1,0}-{3030,4877,0,1,2}-{3026,4879,0,1,3}-{3024,4879,0,1,3}-{3018,4842,0,1,4}'), +(2264, '{3020,4888,0,1,3}-{3039,4871,0,1,4}-{3049,4921,0,1,7}-{3019,4877,0,1,6}-{3017,4893,0,1,7}-{3017,4821,0,1,4}-{3019,4898,0,1,4}-{3059,4813,0,1,0}-{3020,4912,0,1,2}-{3032,4808,0,1,3}-{3059,4820,0,1,3}-{3062,4828,0,1,6}-{3036,4856,0,1,7}-{3062,4837,0,1,5}-{3025,4850,0,1,1}-{3052,4859,0,1,1}-{3024,4813,0,1,4}-{3054,4915,0,1,7}-{3048,4854,0,1,3}-{3034,4852,0,1,1}-{3052,4898,0,1,1}-{3028,4808,0,1,1}-{3034,4905,0,1,4}-{3018,4843,0,1,2}-{3028,4851,0,1,0}-{3016,4831,0,1,1}-{3052,4896,0,1,3}-{3046,4901,0,1,2}-{3043,4810,0,1,3}-{3062,4884,0,1,6}-{3049,4873,0,1,1}-{3041,4871,0,1,1}'), +(2265, '{3020,4914,0,1,2}-{3038,4809,0,1,6}-{3059,4890,0,1,3}-{3024,4850,0,1,3}-{3031,4901,0,1,7}-{3044,4915,0,1,6}-{3052,4808,0,1,5}-{3021,4847,0,1,3}-{3058,4811,0,1,4}-{3055,4848,0,1,0}-{3062,4822,0,1,6}-{3017,4837,0,1,3}-{3044,4883,0,1,4}-{3017,4817,0,1,7}-{3025,4812,0,1,1}-{3039,4885,0,1,1}-{3048,4917,0,1,5}-{3060,4825,0,1,3}-{3059,4888,0,1,5}-{3047,4874,0,1,2}-{3062,4838,0,1,3}-{3055,4908,0,1,5}-{3016,4876,0,1,1}-{3029,4890,0,1,5}-{3059,4906,0,1,1}-{3021,4875,0,1,3}-{3032,4903,0,1,3}-{3054,4850,0,1,6}-{3026,4914,0,1,6}'), +(2266, '{3053,4978,1,1,1}'), +(2270, '{3048,4975,1,1,6}'), +(2271, '{3045,4971,1,0,4}'), +(2274, '{3243,3245,0,1,4}'), +(2275, '{3244,3248,0,1,1}'), +(2276, '{3243,3247,0,1,1}'), +(2277, '{3248,3247,0,1,4}'), +(2278, '{3247,3244,0,1,2}'), +(2279, '{3244,3247,0,1,3}'), +(2280, '{3245,3244,0,1,4}'), +(2281, '{3246,3245,0,1,4}'), +(2290, '{2997,3373,0,0,0}'), +(2291, '{3311,3109,0,0,3}'), +(2292, '{3182,3043,0,0,3}'), +(2293, '{3469,3111,0,1,6}'), +(2294, '{3350,3004,0,0,6}'), +(2296, '{3399,2916,0,0,6}'), +(2298, '{3287,2813,0,1,1}'), +(2301, '{3310,3107,0,1,4}-{3181,3043,0,1,3}'), +(2304, '{3038,3292,0,1,6}'), +(2305, '{2821,3463,0,1,3}'), +(2306, '{2643,3363,0,0,5}'), +(2307, '{3627,3526,0,1,6}'), +(2310, '{3025,3312,0,1,4}-{3043,3308,0,1,6}-{3023,3297,0,1,5}-{2928,3282,0,1,1}-{2927,3269,0,1,1}'), +(2312, '{3014,3292,0,0,0}'), +(2313, '{3020,3297,0,1,6}-{3040,3296,0,1,3}-{3031,3283,0,1,4}-{3020,3288,0,1,0}'), +(2314, '{3018,3296,0,1,1}-{3016,3288,0,1,4}-{3030,3287,0,1,4}-{3017,3282,0,1,3}-{2549,3566,0,1,2}-{2553,3564,0,1,4}'), +(2315, '{3018,3282,0,1,5}-{3037,3289,0,1,1}-{2551,3562,0,1,1}-{2554,3561,0,1,3}'), +(2316, '{3015,3311,0,1,4}'); +INSERT INTO `npc_spawns` (`npc_id`, `loc_data`) VALUES +(2317, '{3016,3309,0,1,6}'), +(2318, '{3017,3307,0,0,0}'), +(2319, '{3017,3309,0,0,0}'), +(2323, '{3056,3306,0,1,1}'), +(2324, '{2807,3464,0,1,3}'), +(2325, '{2664,3374,0,1,1}'), +(2326, '{3600,3527,0,1,1}'), +(2327, '{2814,3337,0,1,6}'), +(2329, '{1702,4823,0,0,6}'), +(2330, '{2766,3211,0,0,0}'), +(2331, '{2860,3430,0,1,4}'), +(2332, '{2573,3102,0,1,4}'), +(2333, '{3226,3311,0,0,0}'), +(2334, '{2662,3525,0,1,1}'), +(2335, '{3181,3359,0,0,0}'), +(2336, '{2938,3221,0,1,0}'), +(2337, '{2615,3855,0,0,3}'), +(2338, '{2615,3229,0,0,0}'), +(2339, '{2934,3438,0,1,6}'), +(2340, '{3007,3373,0,1,4}'), +(2341, '{3229,3456,0,0,0}'), +(2342, '{3196,3231,0,1,4}'), +(2343, '{2473,3446,0,1,6}'), +(2344, '{2490,3183,0,1,3}'), +(2353, '{2324,3179,0,1,5}'), +(2355, '{2353,3163,0,0,4}'), +(2359, '{2335,3169,0,1,3}'), +(2360, '{2335,3174,0,1,4}-{2322,3172,0,1,5}'), +(2361, '{2345,3172,0,1,2}-{2340,3178,0,1,3}'), +(2362, '{2330,3163,0,1,3}'), +(2372, '{2044,4632,0,1,3}'), +(2374, '{2041,4632,0,1,3}-{2037,4630,0,1,3}-{2041,4644,0,1,4}'), +(2385, '{3112,3159,0,0,0}'), +(2386, '{3051,3496,1,0,0}'), +(2389, '{3219,3677,0,0,0}'), +(2392, '{3043,3204,0,0,0}'), +(2414, '{3263,3400,1,0,0}'), +(2435, '{2621,3682,0,0,6}'), +(2438, '{2544,3761,0,0,6}'), +(2439, '{2659,3657,0,1,3}'), +(2440, '{2545,10141,0,0,6}'), +(2443, '{2543,10143,0,0,3}'), +(2446, '{2545,10145,0,0,6}'), +(2449, '{2546,10144,0,0,1}-{2546,10142,0,0,6}'), +(2452, '{2526,10166,0,1,6}'), +(2453, '{2521,10160,0,0,1}-{2535,10163,0,0,6}-{2520,10165,0,0,3}-{2533,10162,0,0,3}-{2545,10158,0,0,5}-{2547,10151,0,0,3}-{2543,10166,0,0,3}-{2538,10160,0,0,6}-{2506,10163,0,0,3}-{2516,10163,0,0,3}-{2498,10164,0,0,5}-{2544,10160,0,0,0}-{2525,10162,0,0,3}-{2530,10161,0,0,0}-{2537,10167,0,0,7}-{2519,10163,0,0,3}-{2511,10163,0,0,3}-{2530,10161,0,0,7}-{2524,10166,0,0,3}-{2508,10159,0,0,0}-{1846,4405,3,0,2}-{1839,4400,3,0,3}-{1835,4394,3,0,3}-{1834,4406,3,0,1}-{1843,4406,3,0,2}-{1899,4372,0,0,2}-{1888,4362,0,0,7}-{1896,4362,0,0,2}-{1897,4368,0,0,5}'), +(2455, '{2457,10139,0,1,2}-{2465,10133,0,1,4}-{2449,10148,0,1,1}-{2471,10133,0,1,6}-{2446,10145,0,1,4}-{2443,10148,0,1,1}-{2452,10161,0,1,3}-{2444,10145,0,1,1}-{2462,10163,0,1,3}-{2446,10141,0,1,3}-{2454,10149,0,1,0}-{2476,10155,0,1,4}-{2456,10153,0,1,0}-{2485,10142,0,1,3}-{2457,10152,0,1,4}-{2485,10126,0,1,4}-{2475,10148,0,1,3}-{2471,10160,0,1,1}-{2453,10145,0,1,3}-{2463,10158,0,1,4}-{2457,10163,0,1,2}-{2471,10154,0,1,6}-{2476,10151,0,1,7}-{2479,10154,0,1,1}-{2486,10158,0,1,4}-{2485,10165,0,1,5}-{2485,10153,0,1,4}-{2474,10140,0,1,7}-{2466,10130,0,1,6}-{2464,10138,0,1,6}-{2486,10150,0,1,6}-{2473,10127,0,1,4}-{2483,10126,0,1,3}-{2456,10133,0,1,6}-{2467,10163,0,1,6}-{2477,10143,0,1,3}-{2489,10139,0,1,4}-{2486,10127,0,1,1}-{2480,10141,0,1,7}-{2490,10155,0,1,3}-{2459,10133,0,1,3}-{2455,10163,0,1,0}-{2496,10166,0,1,1}-{2494,10162,0,1,1}-{2502,10167,0,1,1}-{2493,10132,0,1,3}-{2499,10162,0,1,0}-{2502,10159,0,1,1}-{2502,10166,0,1,4}-{2494,10129,0,1,5}-{2496,10130,0,1,3}-{2498,10128,0,1,1}-{2497,10126,0,1,4}-{2499,10128,0,1,5}-{2501,10126,0,1,3}-{2506,10125,0,1,4}-{2506,10127,0,1,4}-{2507,10128,0,1,3}-{2507,10126,0,1,6}-{2511,10126,0,1,0}-{2513,10126,0,1,4}-{2517,10129,0,1,3}-{2513,10127,0,1,3}-{2516,10124,0,1,4}-{2520,10122,0,1,5}-{2522,10126,0,1,3}-{2524,10129,0,1,4}-{2525,10125,0,1,4}-{2529,10122,0,1,4}-{2529,10124,0,1,2}-{2526,10126,0,1,3}-{2529,10130,0,1,6}-{2530,10127,0,1,5}-{2532,10121,0,1,0}-{2532,10123,0,1,3}-{2538,10126,0,1,0}-{2535,10125,0,1,7}-{2536,10127,0,1,1}-{2539,10130,0,1,6}-{2543,10130,0,1,6}-{2548,10131,0,1,1}-{2542,10128,0,1,3}-{1815,4405,2,1,6}-{1818,4403,2,1,3}-{1813,4404,2,1,7}-{1814,4407,2,1,7}-{1821,4393,2,1,1}-{1823,4389,2,1,1}-{1828,4387,2,1,3}-{1821,4392,2,1,0}-{1826,4391,2,1,0}-{1865,4377,2,1,1}-{1865,4397,1,1,6}-{1844,4360,1,1,4}-{1844,4361,1,1,5}-{1851,4360,1,1,3}-{1857,4360,1,1,1}-{1862,4362,1,1,1}-{1862,4362,1,1,7}-{1864,4366,1,1,1}-{1865,4383,2,1,4}-{1864,4390,1,1,1}-{1865,4408,1,1,4}-{1877,4410,1,1,1}-{1883,4411,1,1,4}-{1889,4410,1,1,4}-{1887,4374,0,1,6}-{1890,4372,0,1,4}-{1890,4366,0,1,4}-{1896,4371,0,1,3}-{1890,4364,0,1,7}-{1831,4378,3,1,2}-{1838,4379,3,1,2}-{1824,4376,3,1,1}-{1832,4380,3,1,6}-{1844,4373,2,1,4}-{1849,4381,2,1,4}-{1846,4374,2,1,1}'), +(2456, '{2452,10145,0,0,4}-{2445,10138,0,0,7}'), +(2457, '{2500,10148,0,1,3}-{2505,10150,0,1,2}-{2510,10148,0,1,1}-{2511,10147,0,1,6}-{2517,10151,0,1,3}-{2519,10143,0,1,7}-{2529,10148,0,1,3}-{2528,10144,0,1,0}-{2532,10145,0,1,1}-{2532,10140,0,1,7}-{2520,10144,0,1,2}-{1804,4369,2,1,2}-{1812,4363,2,1,5}-{1817,4368,2,1,6}-{1801,4404,3,1,6}-{1805,4405,3,1,1}-{1803,4404,3,1,7}-{1811,4394,1,1,7}-{1804,4391,1,1,2}-{1798,4391,1,1,4}-{1802,4389,1,1,4}-{1799,4386,2,1,1}-{1799,4381,2,1,6}-{1798,4375,1,1,4}-{1803,4376,1,1,6}-{1797,4380,1,1,6}-{1902,4367,0,1,6}-{1894,4367,0,1,1}-{1893,4361,0,1,3}-{1886,4369,0,1,1}-{1848,4394,1,1,3}-{1850,4389,1,1,1}-{1850,4391,1,1,2}'), +(2458, '{2599,4774,0,0,3}'), +(2459, '{2604,4772,0,1,4}-{2606,4771,0,1,6}-{2604,4769,0,1,2}'), +(2460, '{2600,4778,0,1,1}-{2607,4777,0,1,1}'), +(2461, '{2597,4776,0,1,1}-{2606,4771,0,1,1}'), +(2462, '{2596,4773,0,1,2}-{2602,4771,0,1,6}-{2596,4780,0,1,4}'), +(2482, '{3057,3902,0,1,3}'), +(2483, '{2914,3116,0,0,0}'), +(2484, '{2782,3058,0,0,0}'), +(2486, '{2789,3055,0,0,0}'), +(2487, '{2848,3042,0,0,0}'), +(2488, '{2799,3058,0,0,0}'), +(2489, '{3781,3031,0,1,5}-{3775,3033,0,1,4}-{3780,3022,0,1,1}-{3788,3011,0,1,2}-{3793,3019,0,1,5}-{3766,3010,0,1,4}-{3764,3020,0,1,1}-{3779,3045,0,1,1}-{3784,3040,0,1,3}-{3802,3037,0,1,2}-{3808,3026,0,1,3}-{3799,3024,0,1,4}-{3749,3000,0,1,6}-{3738,3010,0,1,3}-{3723,2998,0,1,2}-{3731,2991,0,1,1}-{3703,3040,0,1,3}-{3706,3051,0,1,1}-{3664,3013,0,1,7}-{3720,3040,0,1,6}-{3719,3045,0,1,6}'), +(2490, '{3782,3016,0,1,7}'), +(2491, '{2679,3080,0,1,6}-{2684,3084,0,1,4}-{2682,3093,0,1,4}-{2678,3095,0,1,3}-{2679,3102,0,1,1}-{2681,3110,0,1,4}-{2683,3115,0,1,6}-{2675,3108,0,1,3}-{2671,3109,0,1,3}-{2671,3113,0,1,4}-{2676,3090,0,1,4}-{2670,3088,0,1,6}-{2671,3086,0,1,6}-{2664,3088,0,1,7}-{2660,3086,0,1,6}-{2662,3088,0,1,6}-{2670,3082,0,1,7}-{2674,3081,0,1,3}-{2663,3086,0,1,6}-{2679,3082,0,1,1}-{2682,3093,0,1,3}'), +(2504, '{2796,3077,1,0,0}'), +(2507, '{2792,3077,0,0,0}'), +(2510, '{2784,3076,1,0,0}'), +(2513, '{2802,3088,0,0,0}'), +(2516, '{2792,3102,0,0,0}'), +(2519, '{2794,3064,0,0,0}'), +(2520, '{2800,3064,0,1,3}'), +(2522, '{2758,3099,0,0,0}'), +(2525, '{2800,3048,0,0,0}'), +(2528, '{2815,3084,0,0,0}'), +(2529, '{2816,3079,0,0,3}'), +(2531, '{2785,3094,0,0,0}'), +(2547, '{3109,9942,0,1,4}-{3111,9938,0,1,4}-{3116,9926,0,1,4}-{2615,9525,0,1,4}-{2615,9521,0,1,1}'), +(2548, '{3349,2970,0,0,4}-{3358,2987,0,0,4}'), +(2549, '{3364,3001,0,0,6}'), +(2568, '{2729,3495,0,0,6}-{2724,3495,0,0,6}-{2728,3495,0,0,6}-{2721,3495,0,0,6}'), +(2569, '{2727,3495,0,0,6}-{2722,3495,0,0,6}'), +(2572, '{3079,3250,0,1,2}'), +(2574, '{3087,3247,0,0,7}'), +(2580, '{2889,3436,0,0,0}'), +(2591, '{4786,5106,0,1,6}-{2474,5145,0,1,2}'), +(2592, '{4680,5117,0,1,6}-{2461,5142,0,1,6}'), +(2594, '{4703,5123,0,1,5}-{4680,5126,0,1,7}-{4730,5077,0,1,5}'), +(2595, '{4699,5100,0,1,6}-{4647,5132,0,1,7}-{4633,5069,0,1,4}-{4757,5100,0,1,2}'), +(2596, '{4628,5117,0,1,4}-{4787,5118,0,1,7}-{2483,5155,0,1,4}'), +(2597, '{4621,5094,0,1,5}-{2446,5144,0,1,1}-{2470,5141,0,1,6}'), +(2598, '{2485,5159,0,1,4}-{2489,5155,0,1,1}-{2471,5144,0,1,3}-{2476,5153,0,1,0}-{2477,5150,0,1,1}'), +(2600, '{4656,5125,0,1,5}-{4711,5072,0,1,4}-{4751,5087,0,1,3}'), +(2601, '{4676,5123,0,1,5}-{4693,5127,0,1,7}-{4724,5107,0,1,5}-{4788,5110,0,1,4}'), +(2602, '{4668,5133,0,1,7}-{4627,5122,0,1,5}-{4714,5113,0,1,6}-{4752,5074,0,1,7}-{4789,5122,0,1,2}'), +(2603, '{4711,5086,0,1,2}-{4760,5091,0,1,4}'), +(2604, '{2439,5170,0,1,3}-{2451,5170,0,1,3}-{2453,5161,0,1,6}-{2460,5160,0,1,7}-{2457,5155,0,1,3}-{2480,5168,0,1,6}-{2469,5166,0,1,1}-{2490,5173,0,1,3}-{2488,5171,0,1,4}-{2483,5156,0,1,3}-{2470,5147,0,1,4}-{2468,5139,0,1,7}-{2458,5141,0,1,3}-{2454,5141,0,1,1}-{2452,5124,0,1,3}-{2454,5122,0,1,2}-{2453,5143,0,1,3}-{2443,5144,0,1,6}'), +(2605, '{4633,5125,0,1,7}-{4631,5088,0,1,7}-{4760,5074,0,1,4}'), +(2606, '{4670,5081,0,1,6}-{4642,5115,0,1,7}-{4756,5086,0,1,4}'), +(2607, '{4638,5095,0,1,2}-{4647,5141,0,1,4}-{4699,5141,0,1,3}-{4774,5098,0,1,3}'), +(2608, '{4656,5091,0,1,5}-{4637,5093,0,1,0}'), +(2609, '{4691,5090,0,1,7}-{4617,5073,0,1,6}-{4711,5125,0,1,4}-{4727,5082,0,1,6}-{4748,5070,0,1,4}-{2440,5128,0,1,3}-{2436,5133,0,1,3}-{2450,5168,0,1,2}-{2443,5170,0,1,4}-{2445,5177,0,1,3}'), +(2610, '{2446,5169,0,1,4}-{2458,5159,0,1,3}-{2466,5166,0,1,7}-{2471,5166,0,1,3}-{2478,5164,0,1,4}-{2490,5174,0,1,4}-{2485,5159,0,1,5}-{2442,5173,0,1,0}-{2440,5171,0,1,7}-{2440,5170,0,1,3}'), +(2611, '{4646,5107,0,1,6}-{4683,5098,0,1,4}-{4690,5113,0,1,5}-{4720,5118,0,1,7}-{4716,5097,0,1,5}-{4762,5088,0,1,0}'), +(2614, '{4666,5082,0,1,0}-{4669,5103,0,1,2}-{4664,5121,0,1,4}-{4639,5074,0,1,3}-{4704,5077,0,1,5}-{4688,5016,0,1,3}'), +(2615, '{4695,5128,0,1,7}-{4625,5084,0,1,7}-{4628,5134,0,1,3}-{4725,5067,0,1,5}-{4748,5076,0,1,6}-{4790,5127,0,1,0}'), +(2616, '{4673,5114,0,1,1}-{4631,5106,0,1,0}-{2441,5130,0,1,1}-{2438,5135,0,1,6}-{2443,5138,0,1,2}'), +(2617, '{4611,5132,0,1,5}-{2440,5168,0,0,1}'), +(2618, '{4603,5065,0,1,1}-{2399,5178,0,1,6}'), +(2619, '{2446,5179,0,0,6}-{4644,5149,0,1,7}-{2418,5203,0,1,6}'), +(2620, '{4701,5153,0,1,0}-{2478,5146,0,1,2}'), +(2622, '{4689,5173,0,0,0}-{2464,5149,0,0,7}'), +(2623, '{4655,5172,0,1,0}-{2462,5125,0,1,5}'), +(2624, '{4718,5148,0,1,6}-{4708,5173,0,1,6}-{4716,5178,0,1,7}-{4726,5173,0,1,0}-{4730,5163,0,1,3}-{4726,5153,0,1,5}'), +(2625, '{4668,5177,0,1,4}-{4676,5177,0,1,2}'), +(2634, '{3095,3252,0,0,0}'), +(2652, '{2868,3579,0,0,0}-{2851,3582,0,0,0}'), +(2660, '{3208,3496,0,1,3}'), +(2674, '{3017,3231,0,1,1}'), +(2676, '{2914,3322,0,0,0}'), +(2677, '{2945,3307,0,0,0}'), +(2678, '{2988,3210,0,1,7}'), +(2679, '{3000,3222,0,1,1}'), +(2680, '{2985,3193,0,1,1}-{2582,9836,0,1,2}'), +(2681, '{2991,3199,0,1,3}'), +(2682, '{1866,4237,0,1,0}-{1866,4240,0,1,0}-{1867,4243,0,1,0}-{2950,3204,0,1,5}-{2971,3212,0,1,4}-{2960,3201,0,1,1}-{2959,3202,0,1,4}-{2904,3208,0,1,0}-{2956,3203,0,1,1}-{2969,3204,0,1,4}'), +(2683, '{2967,3212,1,0,7}'), +(2684, '{2965,3213,1,0,0}'), +(2685, '{3124,9873,0,1,3}-{2911,3285,0,1,1}'), +(2686, '{2907,3293,0,1,4}'), +(2687, '{2907,3293,0,1,6}-{2908,3290,0,1,3}'), +(2688, '{3127,9874,0,1,4}-{2906,3288,0,1,1}-{2910,3293,0,1,4}'), +(2689, '{2918,3319,0,0,0}'), +(2690, '{3048,3258,0,1,3}'), +(2691, '{3048,3256,0,1,4}'), +(2692, '{3049,3256,0,0,0}'), +(2693, '{3214,3313,0,1,0}-{3214,3320,0,1,0}-{3215,3303,0,1,0}-{3219,3285,0,1,0}-{3219,3288,0,1,0}-{3234,3267,0,1,0}-{3234,3268,0,1,0}-{3238,3238,0,1,0}-{3238,3246,0,1,0}-{3239,3235,0,1,0}-{2976,3359,0,1,0}-{2977,3357,0,1,0}-{2988,3383,0,1,1}-{2992,3385,0,1,3}-{3015,3285,0,1,0}'), +(2695, '{3013,3192,0,1,1}'), +(2696, '{3013,3196,0,1,1}'), +(2697, '{3018,3189,0,1,4}'), +(2698, '{3018,3181,0,1,6}'), +(2699, '{3037,2982,0,0,6}-{3036,2979,0,0,6}'), +(2700, '{3037,2982,0,0,6}'), +(2704, '{3019,3185,0,0,0}-{3034,2979,0,0,1}-{3033,2980,1,0,4}-{3032,2979,0,0,1}-{3034,2985,0,0,1}-{3035,2982,0,0,1}'), +(2705, '{3034,2985,1,0,1}'), +(2706, '{3725,3015,0,1,4}-{3745,3026,0,1,6}-{3741,3033,0,1,6}-{3734,3045,0,1,1}-{3019,3145,0,1,3}-{3015,3142,0,1,4}-{3022,3139,0,1,4}'), +(2709, '{3002,3266,0,1,6}'), +(2710, '{3001,3268,0,1,4}'), +(2711, '{3002,3268,0,1,4}'), +(2712, '{3001,3268,0,1,3}'), +(2713, '{3002,3267,0,1,2}'), +(2725, '{2500,3488,0,1,2}'), +(2726, '{2994,3138,0,1,0}'), +(2727, '{2969,3146,0,1,0}'), +(2728, '{3043,3235,0,1,7}'), +(2729, '{3047,3234,0,1,7}'), +(2730, '{2835,3335,0,0,5}'), +(2731, '{2833,3335,0,0,3}'), +(2732, '{2933,3281,0,1,1}'), +(2733, '{2932,3286,0,1,1}'), +(2759, '{3254,3418,0,0,0}-{3255,3418,0,0,0}-{3256,3418,0,0,0}-{3096,3493,0,0,0}-{3097,3494,0,0,0}-{3104,3368,0,0,0}-{3180,3438,0,0,0}-{3180,3442,0,0,0}-{3191,3441,0,0,0}-{3191,3437,0,0,0}-{3191,3445,0,0,0}'), +(2782, '{1925,4636,0,1,7}'), +(2783, '{1995,4660,0,1,7}-{1989,4660,0,1,0}-{1989,4664,0,1,7}-{1995,4660,0,1,2}-{1997,4664,0,1,3}-{1989,4658,0,1,0}-{2001,4646,0,1,4}-{2000,4645,0,1,3}-{1997,4644,0,1,1}-{2006,4639,0,1,6}-{1999,4636,0,1,3}'), +(2792, '{3228,3412,0,0,0}'), +(2794, '{2606,3100,0,0,0}'), +(2796, '{3089,3124,0,0,3}-{3096,3108,0,0,6}-{3075,3091,0,0,6}-{3121,3103,0,0,1}-{3105,3095,0,0,3}'), +(2800, '{2981,3190,0,0,0}'), +(2803, '{3391,3066,0,1,6}-{3397,3054,0,1,6}-{3398,3060,0,1,0}-{3412,3059,0,1,3}'), +(2804, '{3388,3067,0,1,0}-{3396,3064,0,1,6}-{3402,3063,0,1,1}-{3423,3019,0,1,3}-{3420,3015,0,1,6}-{3430,3014,0,1,2}-{3426,3020,0,0,0}-{3416,3013,0,1,4}-{3410,3016,0,1,6}'), +(2805, '{3391,3071,0,1,2}-{3397,3069,0,1,2}-{3398,3068,0,1,1}-{3385,3064,0,1,6}-{3406,3064,0,1,6}-{3413,3053,0,1,6}-{3424,3061,0,1,2}-{3423,3020,0,1,0}-{3429,3019,0,0,0}'), +(2806, '{3426,3052,0,1,4}-{3423,3044,0,1,3}-{3415,3018,0,1,5}-{3425,3009,0,1,3}'), +(2807, '{3414,3045,0,1,1}-{3403,3050,0,1,4}-{3407,3058,0,1,3}-{3420,3022,0,0,0}'), +(2808, '{3384,3072,0,1,2}-{3394,3076,0,1,1}-{3403,3069,0,1,1}-{3402,3061,0,1,1}-{3419,3006,0,1,4}'), +(2809, '{3274,3168,0,0,0}'), +(2810, '{3311,3208,0,0,0}'), +(2811, '{3289,3209,0,0,0}'), +(2812, '{3296,3227,0,0,0}'), +(2813, '{3285,3201,0,0,0}'), +(2816, '{3301,3190,0,0,0}'), +(2817, '{3306,3197,0,0,0}'), +(2818, '{3303,3204,0,0,0}'), +(2819, '{3295,3193,0,0,0}'), +(2824, '{3275,3193,0,0,0}'), +(2860, '{2345,3165,0,1,4}'), +(2881, '{2907,4440,0,1,6}'), +(2882, '{2910,4457,0,1,6}'), +(2883, '{2923,4443,0,1,4}'), +(2890, '{1889,4411,0,0,4}-{1895,4409,0,0,2}-{1903,4409,0,0,3}-{1906,4407,0,0,5}-{1903,4400,0,0,1}-{1899,4400,0,0,2}-{1893,4398,0,0,2}-{1888,4386,0,0,6}-{1884,4383,0,0,5}-{1879,4376,0,0,5}-{1883,4376,0,0,1}-{1921,4368,0,0,2}-{1927,4362,0,0,7}-{1935,4360,0,0,7}-{1942,4356,0,0,7}-{1948,4355,0,0,7}-{1951,4358,0,0,2}-{1957,4365,0,0,2}-{1958,4368,0,0,2}'), +(2894, '{2908,4435,0,0,1}-{2924,4436,0,0,5}-{2924,4460,0,0,6}-{2908,4463,0,0,3}-{2901,4458,0,0,3}-{2928,4441,0,0,3}-{2929,4449,0,0,6}-{2902,4437,0,0,1}'), +(2935, '{3671,3484,0,1,4}'), +(2939, '{2657,3701,0,1,0}'), +(2940, '{2675,3671,0,1,3}'), +(2942, '{3017,3234,0,1,7}'), +(2943, '{3265,3400,0,0,0}'), +(2945, '{2562,3319,0,0,0}'), +(2946, '{3246,9865,0,1,1}'), +(2947, '{3245,9868,0,1,3}'), +(2948, '{3265,3403,0,0,0}'), +(2949, '{2562,3320,0,0,0}'), +(2950, '{3020,3229,0,0,7}'), +(2997, '{3308,3511,1,1,1}'), +(2998, '{2657,9641,0,1,0}'), +(2999, '{2658,9634,0,1,1}'), +(3001, '{2646,9639,0,1,4}'), +(3002, '{2666,9630,0,1,6}'), +(3003, '{2660,9624,0,1,6}'), +(3020, '{3348,2942,0,1,3}'), +(3021, '{2815,3466,0,0,3}-{2859,3431,0,0,0}-{2933,3434,0,1,4}-{3182,3354,0,0,0}-{3087,3352,0,0,0}-{3065,3255,0,0,0}-{3192,3229,0,0,0}-{3232,3459,0,0,3}-{3451,3475,0,0,6}-{2812,3333,0,1,4}-{3007,3371,0,1,2}-{3053,3304,0,0,1}-{2663,3374,0,0,4}-{3603,3529,0,0,6}-{2474,3446,0,1,4}-{2611,3859,0,0,6}-{2434,3415,0,1,3}-{2764,3210,0,1,1}-{2940,3225,0,0,6}-{2614,3226,0,0,4}-{3315,3205,0,0,6}-{2827,3692,0,1,5}-{2666,3521,0,1,4}'), +(3029, '{3422,2937,0,1,1}'), +(3030, '{3421,2912,0,0,1}'), +(3031, '{3439,2890,0,0,3}'), +(3032, '{3439,2927,0,1,5}'), +(3034, '{3409,2929,1,1,4}'), +(3035, '{3450,2895,0,0,3}'), +(3036, '{3424,2900,0,1,3}'), +(3037, '{3424,2906,0,0,1}'), +(3038, '{3406,2924,0,1,3}'), +(3039, '{3414,2907,0,1,3}'), +(3040, '{3443,2914,0,0,3}'), +(3041, '{3445,2910,0,0,1}'), +(3042, '{3441,2920,0,1,4}'), +(3043, '{3445,2917,0,0,3}'), +(3044, '{3428,2928,0,1,5}'), +(3045, '{3432,2912,0,0,1}'), +(3046, '{3425,2891,0,0,4}-{3425,2894,0,0,4}-{3425,2893,0,0,4}-{3425,2889,0,0,4}'), +(3050, '{3187,9758,0,1,3}'), +(3068, '{3062,9550,0,1,5}-{3050,9554,0,1,7}-{3048,9545,0,1,4}-{3061,9542,0,1,3}-{3065,9548,0,1,1}-{3034,9544,0,1,4}-{3033,9552,0,1,3}-{3029,9545,0,1,7}-{3027,9555,0,1,3}'), +(3072, '{3210,5562,0,1,3}-{3207,5448,0,1,3}-{3223,5446,0,1,4}'), +(3073, '{3217,5442,0,1,4}-{3231,5444,0,1,0}'), +(3075, '{3404,3492,0,0,0}'), +(3076, '{3403,3492,0,0,0}'), +(3090, '{3082,3442,0,0,0}'), +(3094, '{3361,3306,0,1,6}'), +(3095, '{3364,3309,0,1,3}-{3363,3317,1,1,1}'), +(3097, '{3364,3304,0,1,6}'), +(3099, '{3364,9626,2,1,1}'), +(3100, '{3363,9646,0,1,1}'), +(3101, '{3364,9644,1,1,6}'), +(3103, '{3362,3318,1,0,6}'), +(3104, '{3364,3310,0,1,1}-{3379,9627,0,1,0}-{3367,9647,2,1,4}'), +(3105, '{3367,3304,1,1,1}-{3376,9655,0,1,7}'), +(3106, '{3360,3305,1,1,3}-{3348,9654,0,1,4}-{3362,9648,2,1,4}'), +(3107, '{3361,3306,0,1,3}-{3348,9626,0,1,6}'), +(3108, '{2549,3100,0,0,4}'), +(3109, '{2551,3079,0,1,3}'), +(3110, '{2789,3175,0,0,4}'), +(3111, '{2788,3176,0,0,0}'), +(3114, '{2815,3344,0,1,3}'), +(3123, '{3344,2827,0,1,5}'), +(3124, '{3372,2847,1,0,3}'), +(3125, '{3366,2845,3,0,6}'), +(3127, '{3331,2948,0,1,4}'), +(3153, '{2871,3091,0,1,4}-{2862,3111,0,1,1}-{2861,3101,0,1,3}-{2870,3113,0,1,4}-{2870,3110,0,1,6}-{2865,3103,0,1,3}-{2873,3103,0,1,2}-{2863,3118,0,1,4}-{2886,3109,0,1,1}-{2892,3109,0,1,2}-{2883,3105,0,1,4}-{2889,3111,0,1,6}-{2883,3110,0,1,3}'), +(3155, '{3679,3494,0,1,3}-{3687,2953,0,1,1}'), +(3162, '{3691,2954,0,1,3}'), +(3164, '{3667,2990,0,1,3}'), +(3166, '{3693,2979,0,1,3}'), +(3167, '{3662,2978,1,1,4}'), +(3168, '{3663,2981,0,1,3}'), +(3170, '{3674,2970,0,1,0}'), +(3188, '{3664,2971,0,1,6}'), +(3189, '{3690,2976,0,1,1}-{3671,3006,0,1,6}'), +(3191, '{3659,2955,0,1,3}-{3683,2994,0,1,4}-{3662,3005,0,1,4}'), +(3192, '{3700,2994,0,1,4}-{3683,3005,0,1,3}'), +(3193, '{3696,2993,0,1,3}-{3693,3006,0,1,3}'), +(3194, '{3654,2992,0,1,4}-{3682,2962,0,1,3}-{3704,3006,0,1,0}'), +(3195, '{3696,2978,0,1,1}'), +(3196, '{3649,3004,0,1,6}'), +(3200, '{3263,3932,0,1,3}'), +(3205, '{3139,3448,0,1,3}'), +(3216, '{2534,3273,0,0,0}-{2539,3273,0,0,0}'), +(3217, '{2956,3370,0,1,3}'), +(3219, '{3027,3344,0,1,4}'), +(3220, '{3013,3338,0,1,4}'), +(3221, '{3016,3334,0,1,3}-{3016,3339,0,1,6}-{3019,3341,0,1,4}'), +(3223, '{2994,3365,0,1,4}'), +(3224, '{3047,3365,0,1,6}'), +(3226, '{2996,3375,0,1,4}'), +(3227, '{2756,3182,0,1,6}'), +(3228, '{2969,3373,0,1,3}-{2948,3353,0,1,3}-{3036,3357,0,1,3}'), +(3229, '{2912,3344,0,1,7}-{3040,3354,0,1,2}'), +(3230, '{2986,3370,0,1,1}'), +(3234, '{3011,3383,0,0,0}'), +(3237, '{2984,3435,0,0,0}'), +(3238, '{2981,3434,0,0,0}'), +(3239, '{2975,3436,0,0,0}'), +(3240, '{2977,3442,0,0,0}'), +(3241, '{2969,3451,0,1,4}'), +(3242, '{2910,3332,0,1,0}-{2910,3337,0,1,4}-{2904,3331,0,1,3}-{2979,3568,0,1,7}-{2983,3566,0,1,3}-{2979,3566,0,1,3}-{2981,3570,0,1,6}-{2984,3561,0,1,6}'), +(3243, '{2906,3331,0,1,6}-{2909,3333,0,1,6}'), +(3244, '{2909,3333,0,1,1}'), +(3245, '{2907,3336,0,1,0}'), +(3246, '{3071,3446,0,1,6}-{2548,3567,0,1,4}'), +(3247, '{2548,3567,0,1,1}'), +(3248, '{3073,3442,0,1,5}'), +(3249, '{3082,3441,0,1,0}'), +(3250, '{3088,3426,0,1,3}-{2547,3571,0,1,7}'), +(3251, '{3073,3422,0,1,6}'), +(3252, '{3077,3424,0,1,6}'), +(3253, '{2542,3578,0,1,3}'), +(3255, '{3073,3423,0,1,3}'), +(3256, '{3080,3415,0,1,3}-{3084,3415,0,1,6}'), +(3257, '{3096,3432,0,1,0}'), +(3258, '{3080,3444,0,1,3}'), +(3259, '{3075,3438,0,1,4}'), +(3260, '{3083,3425,0,1,3}-{2554,3564,0,1,6}-{2547,3558,0,1,6}'), +(3261, '{3086,3425,0,1,3}'), +(3262, '{3080,3423,0,1,1}'), +(3263, '{3084,3419,0,1,4}'), +(3264, '{3265,3331,0,1,7}-{3146,3460,0,1,6}-{3115,3414,0,1,3}-{3195,3240,0,1,6}-{2565,9843,0,1,0}'), +(3265, '{3121,3427,0,1,2}-{2582,9836,0,1,1}'), +(3266, '{3094,3406,0,1,3}'), +(3267, '{3134,3459,0,1,1}-{3194,3240,0,1,0}-{3178,3257,0,1,1}-{3170,3255,0,1,7}-{3192,3243,0,1,1}-{3175,3249,0,1,1}-{3170,3242,0,1,2}-{3193,3243,0,1,7}-{3189,3258,0,1,1}-{3172,3245,0,1,4}-{3172,3238,0,1,6}-{3187,3246,0,1,4}-{3186,3243,0,1,7}-{3222,3238,0,1,1}-{3144,3235,0,1,6}-{3147,3224,0,1,1}-{3131,3243,0,1,7}-{3142,3242,0,1,4}-{3157,3228,0,1,6}-{3151,3217,0,1,6}-{3152,3246,0,1,1}-{3145,3266,0,1,4}-{3148,3240,0,1,1}-{3135,3258,0,1,2}-{3140,3260,0,1,3}'), +(3268, '{3012,3454,0,1,1}'), +(3269, '{3022,3447,0,1,4}'), +(3270, '{3010,3452,0,1,3}'), +(3272, '{3042,3468,0,1,1}'), +(3273, '{3030,3465,0,1,5}'), +(3276, '{3039,3475,0,1,4}'), +(3277, '{3035,3471,0,1,2}'), +(3278, '{3045,3477,0,1,1}'), +(3279, '{3039,3471,0,1,6}'), +(3280, '{3015,3451,0,0,0}'), +(3281, '{3018,3450,0,0,0}'), +(3282, '{3008,3442,0,0,0}'), +(3283, '{3039,3424,0,1,5}-{3043,3429,0,1,4}-{3047,3427,0,1,1}-{2964,3455,0,0,0}-{3048,3441,0,1,3}'), +(3284, '{3058,3419,0,0,0}-{3048,3423,0,1,6}-{2969,3437,0,0,0}-{3054,3432,0,1,5}'), +(3285, '{3036,3430,0,1,3}-{3025,3442,0,0,0}-{2952,3376,0,0,0}'), +(3286, '{3034,3450,0,1,3}-{3057,3447,0,1,6}-{2968,3448,0,1,1}'), +(3287, '{3073,3443,0,1,0}-{3046,3453,0,1,6}-{2987,3444,0,1,0}'), +(3288, '{3034,3437,0,1,0}-{2987,3446,0,1,7}'), +(3294, '{3014,3339,0,1,2}'), +(3295, '{3020,3337,0,1,1}'), +(3296, '{2957,3359,0,1,0}-{2958,3358,0,1,0}-{2967,3360,0,1,0}-{2970,3361,0,1,0}-{2973,3359,0,1,0}-{2977,3357,0,1,0}-{2989,3384,0,1,0}'), +(3298, '{3366,9637,2,1,3}'), +(3299, '{3077,3257,0,1,1}'), +(3302, '{2453,4449,0,1,2}'), +(3307, '{2467,4438,0,1,4}-{2471,4439,0,1,7}-{2465,4436,0,1,3}-{2464,4432,0,1,4}'), +(3310, '{2415,4451,0,1,6}-{2416,4435,0,1,7}-{2423,4432,0,1,4}'), +(3318, '{2401,4378,0,0,0}'), +(3324, '{3159, 3433, 0, 1, 0}'), +(3325, '{3161,3432,1,1,4}'), +(3328, '{3203,3344,0,0,0}'), +(3329, '{3112,3414,0,0,0}'), +(3330, '{3132,3508,0,0,0}'), +(3331, '{3242,3240,0,0,4}'), +(3340, '{1759,5182,0,1,0}'), +(3341, '{1759,5191,0,0,0}-{1754,5200,0,0,0}-{1748,5223,0,0,0}-{1784,5199,0,0,0}-{1739,5154,0,0,0}'), +(3342, '{1745,5208,0,0,0}-{1737,5215,0,0,0}-{1758,5210,0,0,0}-{1768,5175,0,0,0}-{1760,5152,0,0,0}-{1745,5169,0,0,0}'), +(3343, '{1764,5198,0,0,0}-{1774,5195,0,0,0}-{1773,5149,0,0,0}-{1742,5292,0,0,0}'), +(3344, '{2412,4470,0,0,0}-{2414,4467,0,0,0}-{2415,4475,0,0,0}-{2419,4467,0,0,0}-{2419,4474,0,0,0}'), +(3345, '{2412,4370,0,0,0}-{2416,4376,0,0,0}-{2419,4374,0,0,0}-{2420,4377,0,0,0}-{2421,4370,0,0,0}'), +(3348, '{2978,3343,0,1,4}-{2978,3337,0,1,1}-{2966,3337,1,1,6}-{2970,3330,2,1,1}'), +(3349, '{2961,3330,2,1,0}-{2966,3352,2,1,1}-{2974,3328,2,1,6}'), +(3350, '{2959,3340,2,1,3}'), +(3376, '{3313,5453,0,1,3}-{3312,5452,0,1,3}-{3310,5452,0,1,6}-{3311,5462,0,1,5}-{3313,5554,0,1,6}-{3297,5562,0,1,1}-{3305,5554,0,1,1}-{3300,5540,0,1,1}'), +(3384, '{3211,3225,0,0,0}'), +(3402, '{2560,2842,0,0,0}'), +(3407, '{3114,3515,0,1,4}'), +(3408, '{3113,3510,0,1,7}'), +(3419, '{2540,3020,0,0,0}-{2555,2953,0,0,0}'), +(3450, '{2901,2947,0,0,0}-{2925,2959,0,0,0}-{2920,3053,0,0,0}-{2924,3063,0,0,0}'), +(3469, '{2657,2966,0,0,0}'), +(3470, '{2755,3083,0,0,0}'), +(3479, '{2906,3514,1,0,0}'), +(3541, '{3517,3240,0,1,6}'), +(3587, '{2587,9741,0,1,4}-{2585,9739,0,1,7}-{2582,9736,0,1,3}-{2589,9734,0,1,4}-{2582,9743,0,1,3}-{2576,9746,0,1,7}-{2579,9741,0,1,6}'), +(3671, '{3084,3250,0,1,1}'), +(3673, '{2925,3321,0,1,4}-{2924,3319,0,1,0}'), +(3675, '{3321,2857,0,1,3}-{3322,2861,0,0,4}-{3319,2855,0,1,1}-{3319,2853,0,1,6}-{3331,2791,0,1,1}-{3333,2803,0,1,2}-{3338,2801,0,1,4}-{3338,2776,0,1,3}'), +(3677, '{2637,3440,0,0,0}'), +(3680, '{3281,3331,0,1,7}'), +(3695, '{2661,3701,0,1,0}'), +(3696, '{2673,3658,0,1,3}'), +(3707, '{2713,10133,0,1,2}-{2708,10133,0,1,4}-{2706,10135,0,0,3}-{2708,10133,0,1,3}-{2703,10135,0,1,6}-{2702,10131,0,1,4}-{2717,10133,0,1,0}-{2708,10130,0,1,1}'), +(3709, '{2974,2906,0,0,0}-{2847,5075,0,0,0}'), +(3711, '{2575,9746,0,1,0}-{2581,9747,0,1,0}-{2577,9743,0,1,1}-{2579,9740,0,1,0}-{2588,9733,0,1,4}'), +(3777, '{3230,3231,0,1,5}'), +(3778, '{1867,4233,0,0,0}'), +(3780, '{1906,4281,0,0,0}'), +(3781, '{2659,2675,0,1,1}'), +(3786, '{2658,2666,0,1,1}'), +(3787, '{2754,3509,0,0,0}'), +(3788, '{2664,2653,0,1,3}'), +(3789, '{2660,2649,0,1,3}'), +(3790, '{3041,3203,0,0,6}'), +(3791, '{2653,2655,0,1,1}'), +(3793, '{2659,2660,0,1,6}'), +(3796, '{2667,2661,0,0,3}'), +(3797, '{2649,2659,0,0,2}'), +(3798, '{2658,2652,0,1,6}'), +(3799, '{2650,2663,0,0,4}'), +(3802, '{2657,2637,0,0,6}'), +(3804, '{3349,3793,0,0,0}-{3349,3793,0,0,4}-{3349,3793,0,0,4}'), +(3806, '{3166, 3304, 0, 1, 0}'), +(3807, '{3254,3274,0,0,0}'), +(3808, '{2517,3205,0,1,3}-{2513,3204,0,1,3}-{2422,3526,0,1,1}'), +(3809, '{2465,3501,3,1,3}'), +(3810, '{2847,3499,0,1,7}'), +(3811, '{2918,3057,0,0,0}-{2894,2730,0,1,2}'), +(3812, '{2970,2973,0,0,0}-{3285,3213,0,1,1}'), +(3813, '{2541,2969,0,1,4}'), +(3817, '{2521,3208,0,1,1}'), +(3819, '{2416,3525,0,1,3}-{2412,3527,0,1,6}'), +(3820, '{3088,3255,0,0,6}'), +(3823, '{2343,3668,0,0,0}'), +(3824, '{2329,3689,0,1,6}'), +(3831, '{2357,3637,0,0,0}'), +(3832, '{2345,3651,0,0,0}'), +(3848, '{2337,3703,0,0,6}-{2340,3702,0,0,6}-{2343,3702,0,0,3}-{2349,3702,0,0,6}-{2353,3703,0,0,6}-{2310,3704,0,0,6}-{2311,3696,0,0,4}-{2343,3702,0,0,3}'), +(3851, '{2332,3669,0,0,0}-{2325,3671,0,0,4}-{2331,3670,0,0,1}-{2333,3671,0,0,3}'), +(3915, '{2945,3146,0,1,3}'), +(3916, '{2595,3890,0,0,3}'), +(3917, '{2581,3861,0,0,1}'), +(3937, '{2508,3866,0,0,3}'), +(4235, '{2669,3332,0,0,1}'), +(4237, '{2669,3331,0,0,6}'), +(4239, '{2669,3331,0,0,6}'), +(4241, '{2669,3331,0,0,6}'), +(4243, '{2669,3331,0,0,6}'), +(4246, '{3480,3484,1,0,0}-{3479,3484,0,1,3}'), +(4247, '{2639,3291,0,0,0}-{2981,3370,0,0,0}-{3240,3474,0,0,0}-{2737,3500,0,1,6}'), +(4250, '{3302,3492,0,1,3}'), +(4251, '{3009,3380,0,1,0}'), +(4261, '{2569,9851,0,1,3}-{2579,9851,0,1,4}'), +(4263, '{2584,9838,0,1,6}'), +(4264, '{2588,9837,0,1,4}'), +(4269, '{2608,9817,0,1,3}'), +(4270, '{2593,9820,0,1,4}'), +(4271, '{2596,9822,0,1,0}'), +(4273, '{2564,9851,0,1,4}'), +(4274, '{2586,9826,0,1,7}-{2569,9849,0,1,4}-{2581,9847,0,1,0}-{2609,9826,0,1,1}'), +(4275, '{2594,9817,0,1,0}'), +(4276, '{2581,9851,0,1,1}'), +(4285, '{2880,3546,0,0,4}'), +(4286, '{2866,3543,0,1,1}'), +(4287, '{2840,3541,1,0,2}'), +(4288, '{2851,3554,0,1,6}'), +(4289, '{2792,3488,2,0,0}-{2845,3539,2,0,7}'), +(4290, '{2854,3542,0,1,3}'), +(4291, '{2863,3546,2,1,3}-{2870,3551,2,1,0}-{2850,3547,2,1,0}-{2844,3552,2,1,5}-{2843,3547,2,1,5}-{2872,3542,2,1,3}-{2861,3551,2,1,1}-{2865,3538,2,1,2}'), +(4292, '{2847,3541,2,1,3}-{2855,3554,2,1,5}-{2860,3542,2,1,0}-{2869,3554,2,1,3}-{2872,3537,2,1,4}-{2850,3534,2,1,3}-{2857,3546,2,1,0}-{2838,3554,2,1,6}-{2869,3552,2,1,4}'), +(4293, '{2840,3554,0,1,1}'), +(4294, '{2847,3553,0,1,6}'), +(4295, '{2856,3537,1,1,1}'), +(4296, '{2841,3543,0,0,4}'), +(4297, '{2856,3549,1,0,2}'), +(4298, '{2864,3541,1,1,3}'), +(4299, '{2866,3556,1,0,5}'), +(4300, '{2865,3544,1,0,6}'), +(4312, '{3218,9618,0,1,3}'), +(4315, '{3224,3286,0,0,0}'), +(4317, '{3230,3285,0,0,0}'), +(4344, '{3747,3013,0,1,4}-{3766,3034,0,1,6}-{3733,2972,0,1,4}'), +(4346, '{3786,9463,0,1,6}-{3714,2952,0,1,1}'), +(4347, '{3728,3043,0,1,4}-{3725,3015,0,1,0}-{3722,3021,0,1,6}-{3717,3017,0,1,7}-{3723,3019,0,1,5}-{3731,3018,0,1,1}-{3734,3028,0,1,7}-{3743,3038,0,1,4}-{3749,2978,0,1,7}-{3756,2966,0,1,2}-{3759,2962,0,1,2}-{3749,2968,0,1,2}-{3757,2980,0,0,5}-{3742,3036,0,1,1}-{3747,3040,0,1,4}-{3748,3030,0,1,6}-{3748,3019,0,1,1}-{3745,3016,0,1,4}-{3741,3020,0,1,3}-{3727,3039,0,1,3}-{3734,3046,0,1,1}-{3736,3050,0,1,6}-{3735,3053,0,1,3}-{3741,3053,0,1,6}-{3756,3030,0,1,3}-{3754,3024,0,1,4}-{3769,3039,0,1,6}-{3766,3045,0,1,7}-{3764,3042,0,1,1}'), +(4348, '{3676,3017,0,1,3}-{3687,3018,0,1,3}-{3707,3015,0,1,6}-{3729,3021,0,1,3}'), +(4349, '{3664,3018,0,1,6}-{3658,3012,0,1,4}-{3718,3030,0,1,4}-{3757,3009,0,1,3}-{3729,2984,0,1,4}-{3720,3000,0,1,4}-{3727,3051,0,1,4}-{3809,3028,0,1,6}'), +(4350, '{3680,3026,0,1,4}-{3675,3029,0,1,3}-{3711,3028,0,1,4}-{3733,3011,0,1,4}-{3793,3036,0,1,4}-{3698,3046,0,1,6}'), +(4351, '{3694,3019,0,1,4}-{3760,3015,0,1,1}-{3758,3034,0,1,2}-{3728,2965,0,1,7}-{3787,3026,0,1,6}-{3714,3049,0,1,7}-{3770,3008,0,1,4}'), +(4352, '{3683,3034,0,1,4}-{3719,3037,0,1,7}-{3770,3027,0,1,5}-{3747,3007,0,1,4}-{3735,2957,0,1,2}-{3719,3011,0,1,3}-{3727,3003,0,1,3}-{3787,3035,0,1,1}'), +(4353, '{3719,9358,0,1,6}-{3738,9378,0,1,0}-{3765,9422,0,1,1}-{3741,9436,0,1,6}-{3727,9455,0,1,2}-{3780,9456,0,1,2}-{3827,9430,0,1,2}-{3737,9413,0,1,0}-{3735,9444,0,1,3}-{3819,9422,0,1,2}'), +(4354, '{3739,9369,0,1,0}-{3737,9350,0,1,4}-{3721,9349,0,1,4}-{3733,9396,0,1,6}-{3813,9445,0,1,0}-{3749,9461,0,1,0}-{3786,9443,0,1,6}-{3783,9430,0,1,5}-{3821,9443,0,1,4}-{3746,9423,0,1,0}-{3764,9404,0,1,6}-{3790,9456,0,1,7}-{3760,9417,0,1,3}-{3760,9451,0,1,6}-{3732,9368,0,1,1}'), +(4355, '{3728,9349,0,1,3}-{3749,9413,0,1,4}-{3810,9448,0,1,4}-{3752,9398,0,1,4}-{3721,9419,0,1,3}-{3786,9412,0,1,3}-{3797,9452,0,1,4}-{3754,9408,0,1,4}-{3723,9377,0,1,4}'), +(4356, '{3755,9391,0,1,5}-{3723,9441,0,1,4}-{3766,9459,0,1,4}-{3800,9414,0,1,2}-{3821,9418,0,1,3}-{3810,9462,0,1,0}-{3809,9440,0,1,2}-{3748,9450,0,1,6}-{3765,9424,0,1,2}-{3787,9464,0,1,0}'), +(4357, '{3771,9450,0,1,4}-{3730,9443,0,1,4}-{3808,9423,0,1,7}-{3797,9427,0,1,4}-{3833,9438,0,1,6}-{3834,9458,0,1,6}-{3797,9440,0,1,1}-{3793,9441,0,1,4}-{3829,9425,0,1,7}'), +(4358, '{3751,2977,0,1,2}'), +(4359, '{3669,2977,0,1,3}'), +(4375, '{3012,3192,1,0,2}'), +(4376, '{3081,3421,0,1,3}'), +(4381, '{3024,10152,0,0,0}-{3020,10148,0,0,0}-{3023,10145,0,0,0}-{3018,10140,0,0,0}-{3033,10139,0,0,0}-{3028,10137,0,0,0}-{2361,5241,0,0,1}-{2358,5240,0,0,1}-{2362,5239,0,0,1}-{2364,5240,0,0,1}-{2364,5242,0,0,1}-{2372,9743,0,1,1}-{2373,9745,0,1,1}-{2374,9742,0,1,1}-{2377,9750,0,1,1}-{2378,9752,0,1,1}-{2377,9754,0,1,1}'), +(4382, '{3162,3716,0,0,0}-{3175,3717,0,0,0}-{3161,3727,0,0,0}-{2304,5160,0,0,2}-{2324,5210,0,0,2}-{2322,5201,0,0,7}-{2324,5210,0,0,2}-{2322,5201,0,0,7}-{2327,5205,0,0,7}-{2328,5200,0,0,7}-{2326,5198,0,0,7}-{2331,5198,0,0,4}-{2333,5201,0,0,4}-{2333,5199,0,0,2}'), +(4383, '{2321,5225,0,0,3}-{2321,5223,0,0,4}-{2317,5229,0,0,7}-{2322,5225,0,0,1}-{2325,5231,0,0,6}-{2321,5225,0,0,1}-{2314,5227,0,0,2}-{2312,5229,0,0,2}-{2330,5229,0,0,1}-{2324,5233,0,0,4}-{2320,5232,0,0,3}-{2324,5237,0,0,1}-{2329,5229,0,0,6}-{2315,5227,0,0,7}-{2318,5226,0,0,6}-{2322,5222,0,0,6}'), +(4384, '{2355,5204,0,1,3}-{2347,5195,0,1,0}-{2336,5202,0,1,4}-{2332,5201,0,1,3}-{2327,5201,0,1,1}-{2328,5199,0,1,6}'), +(4385, '{2350,5201,0,1,1}-{2353,5192,0,1,1}-{2324,5203,0,1,1}-{2333,5204,0,1,4}-{2264,5136,0,1,6}-{2326,5197,0,1,5}'), +(4386, '{2312,5188,0,1,6}'), +(4387, '{2350,5192,0,1,6}-{2350,5191,0,1,4}-{2347,5188,0,1,2}'), +(4388, '{2305,5231,0,0,2}-{2312,5225,0,0,2}-{2314,5240,0,0,2}-{2310,5241,0,0,2}-{2308,5246,0,0,2}-{2309,5245,0,0,2}-{2315,5237,0,0,2}'), +(4389, '{2013,5238,0,1,0}'), +(4390, '{1984,5160,0,1,2}-{2040,5190,0,1,3}-{2044,5187,0,1,2}-{2042,5191,0,1,1}-{2045,5190,0,1,7}-{2041,5187,0,1,2}'), +(4391, '{1952,5192,0,1,2}-{1993,5240,0,1,4}-{1991,5235,0,1,4}-{1990,5240,0,1,3}-{1989,5237,0,1,6}-{2009,5202,0,1,1}-{2005,5199,0,1,3}'), +(4392, '{2033,5233,0,1,4}-{2033,5233,0,1,7}-{2026,5236,0,1,1}-{1984,5160,0,1,7}'), +(4393, '{2045,5222,0,1,4}-{1944,5152,0,1,2}-{1993,5190,0,1,6}-{1993,5190,0,1,4}-{2044,5216,0,1,4}-{2008,5203,0,1,1}-{2006,5208,0,1,1}-{2037,5214,0,1,3}-{2037,5210,0,1,1}'), +(4394, '{1997,5244,0,1,3}-{1992,5238,0,1,5}-{1990,5234,0,1,1}-{2010,5191,0,1,7}-{2018,5188,0,1,4}-{1989,5231,0,1,4}-{2018,5187,0,1,6}'), +(4395, '{2016,5237,0,1,7}-{1988,5190,0,1,2}-{2039,5216,0,1,6}'), +(4396, '{2034,5243,0,1,5}-{2034,5239,0,1,5}-{2032,5243,0,1,4}-{2034,5232,0,1,1}-{2033,5240,0,1,1}-{2029,5230,0,1,6}-{2030,5234,0,1,4}-{2029,5230,0,1,1}-{2029,5233,0,1,2}-{2031,5244,0,1,1}-{2039,5208,0,1,4}-{2029,5235,0,1,6}-{2028,5234,0,1,6}-{2030,5237,0,1,4}-{2033,5238,0,1,4}-{2030,5238,0,1,4}-{2032,5238,0,1,3}-{2027,5238,0,1,6}-{2034,5239,0,1,0}-{2016,5235,0,1,5}-{2015,5237,0,1,3}-{2004,5244,0,1,4}-{2005,5241,0,1,4}-{2035,5245,0,1,5}-{2004,5240,0,1,1}-{2027,5235,0,1,5}-{2027,5235,0,1,4}-{2027,5236,0,1,6}-{1999,5244,0,1,4}-{1995,5234,0,1,6}-{1993,5242,0,1,1}-{1990,5239,0,1,1}-{1990,5243,0,1,7}-{1989,5230,0,1,6}-{1990,5224,0,1,5}-{1993,5222,0,1,7}-{1986,5221,0,1,3}-{1990,5221,0,1,3}-{1986,5222,0,1,6}-{2002,5215,0,1,1}-{1996,5215,0,1,1}-{1994,5215,0,1,2}-{2002,5215,0,1,6}-{1995,5208,0,1,1}-{1993,5206,0,1,4}-{1986,5204,0,1,3}-{1986,5201,0,1,6}-{2001,5201,0,1,6}-{1987,5200,0,1,3}-{1986,5199,0,1,6}-{2009,5198,0,1,6}-{1995,5197,0,1,3}-{2009,5194,0,1,3}-{1944,5152,0,1,2}-{2005,5191,0,1,3}-{2004,5190,0,1,4}-{1991,5190,0,1,1}-{2003,5185,0,1,4}-{2004,5190,0,1,4}-{2004,5188,0,1,1}-{2005,5188,0,1,6}-{2008,5192,0,1,6}-{2008,5193,0,1,3}-{2009,5200,0,1,7}-{2010,5192,0,1,4}-{2010,5194,0,1,4}-{2013,5190,0,1,6}-{2018,5189,0,1,6}-{2018,5192,0,1,6}-{2018,5187,0,1,4}-{1993,5205,0,1,4}-{1994,5206,0,1,3}-{1989,5206,0,1,0}-{1993,5210,0,1,3}-{1989,5200,0,1,4}-{2002,5215,0,1,1}-{2022,5193,0,1,3}-{1995,5220,0,1,1}-{1992,5222,0,1,6}-{1992,5222,0,1,6}-{1988,5201,0,1,4}-{1988,5224,0,1,4}-{1989,5206,0,1,4}-{1987,5225,0,1,4}-{1988,5225,0,1,4}-{1986,5204,0,1,3}-{1987,5226,0,1,4}-{1990,5227,0,1,3}-{1993,5200,0,1,7}-{1990,5228,0,1,4}-{2004,5200,0,1,6}-{1990,5227,0,1,4}-{1990,5224,0,1,6}-{1994,5223,0,1,4}-{2036,5201,0,1,6}-{2038,5215,0,1,4}-{2042,5208,0,1,1}-{2045,5204,0,1,1}-{2046,5205,0,1,3}-{2028,5195,0,1,3}-{2026,5195,0,1,0}-{2039,5193,0,1,3}-{2025,5193,0,1,1}-{2022,5193,0,1,6}-{2043,5192,0,1,2}-{2018,5192,0,1,1}-{2045,5192,0,1,1}-{2032,5190,0,1,1}-{2030,5189,0,1,4}-{2024,5187,0,1,3}-{2038,5186,0,1,4}-{2038,5185,0,1,3}-{2033,5185,0,1,3}-{2016,5186,0,1,1}-{2017,5194,0,1,1}-{2024,5193,0,1,4}-{2008,5201,0,1,4}-{2005,5220,0,1,1}-{2005,5204,0,1,4}-{2037,5203,0,1,3}-{2037,5206,0,1,4}-{2041,5208,0,1,1}'), +(4397, '{2072,5200,0,1,5}-{2145,5251,0,1,3}-{2153,5253,0,1,1}-{2149,5255,0,1,3}-{2146,5252,0,1,5}-{2146,5261,0,1,6}-{2147,5254,0,1,4}'), +(4398, '{2160,5282,0,1,3}-{2162,5284,0,1,1}-{2164,5281,0,1,7}'), +(4399, '{2122,5290,0,1,0}-{2131,5297,0,1,6}-{2119,5297,0,1,4}-{2120,5302,0,1,3}-{2080,5240,0,1,2}-{2129,5306,0,1,3}-{2123,5304,0,1,1}-{2130,5306,0,1,4}-{2163,5301,0,1,5}-{2166,5306,0,1,0}-{2169,5303,0,1,4}-{2122,5291,0,1,0}-{2119,5296,0,1,3}-{2131,5297,0,1,6}-{2125,5302,0,1,0}-{2127,5304,0,1,4}-{2165,5302,0,1,3}-{2163,5301,0,1,4}-{2168,5306,0,1,4}-{2132,5300,0,1,6}-{2132,5302,0,1,4}'), +(4400, '{3018,10313,0,1,4}-{3016,10315,0,1,4}-{3018,10322,0,1,4}-{3024,10326,0,1,3}-{3030,10332,0,1,4}-{3029,10337,0,1,6}-{3034,10342,0,1,3}-{2072,5200,0,1,7}-{2130,5267,0,1,7}-{2140,5252,0,1,5}-{2141,5252,0,1,1}-{2142,5252,0,1,0}-{2148,5255,0,1,3}-{2125,5270,0,1,1}-{2148,5257,0,1,1}-{2117,5274,0,1,4}-{2146,5307,0,1,2}-{2145,5305,0,1,5}-{2152,5307,0,1,4}-{2148,5252,0,1,0}-{2142,5262,0,1,3}-{2124,5275,0,1,4}-{2121,5276,0,1,3}-{2148,5304,0,1,0}-{2146,5305,0,1,5}-{2148,5304,0,1,1}-{2151,5304,0,1,6}-{2145,5306,0,1,3}-{2134,5272,0,1,6}'), +(4401, '{2124,5273,0,1,1}-{2072,5200,0,1,6}-{2128,5270,0,1,4}-{2117,5274,0,1,3}-{2154,5273,0,1,3}-{2167,5259,0,1,6}-{2170,5257,0,1,1}-{2170,5256,0,1,0}-{2171,5256,0,1,4}-{2167,5256,0,1,3}-{2153,5273,0,1,3}-{2153,5270,0,1,1}-{2171,5255,0,1,2}-{2168,5250,0,1,4}-{2168,5251,0,1,3}-{2131,5264,0,1,6}-{2096,5248,0,1,6}-{2157,5272,0,1,6}-{2150,5268,0,1,0}-{2133,5272,0,1,2}-{2157,5274,0,1,1}-{2156,5270,0,1,3}-{2154,5271,0,1,5}'), +(4402, '{2080,5240,0,1,5}-{2171,5283,0,1,6}-{2170,5287,0,1,6}-{2170,5281,0,1,6}-{2172,5272,0,1,4}-{2172,5272,0,1,4}'), +(4403, '{2096,5248,0,1,4}-{2172,5276,0,1,1}-{2172,5284,0,1,1}-{2172,5281,0,1,2}'), +(4404, '{1872,5242,0,1,3}-{1873,5230,0,1,2}-{1870,5235,0,1,3}-{1872,5217,0,1,6}-{1873,5212,0,1,4}-{1877,5218,0,1,2}-{1877,5216,0,1,3}-{1875,5218,0,1,6}-{1808,5152,0,1,2}-{1871,5191,0,1,4}-{1868,5188,0,1,4}-{1861,5189,0,1,3}-{1882,5216,0,1,6}-{1874,5215,0,1,5}-{1873,5238,0,1,3}'), +(4406, '{1898,5197,0,1,6}-{1898,5191,0,1,7}-{1890,5195,0,1,3}-{1893,5191,0,1,4}-{1903,5190,0,1,0}-{1889,5190,0,1,3}-{1889,5190,0,1,4}-{1885,5191,0,1,4}-{1900,5208,0,1,1}-{1900,5210,0,1,1}-{1903,5243,0,1,6}-{1848,5176,0,1,2}-{1901,5245,0,1,4}-{1894,5243,0,1,5}-{1890,5242,0,1,6}-{1889,5244,0,1,4}-{1897,5196,0,1,1}-{1902,5207,0,1,3}'), +(4407, '{1860,5226,0,1,0}-{1859,5200,0,1,0}-{1860,5222,0,1,4}-{1865,5205,0,1,4}-{1862,5205,0,1,7}-{1862,5205,0,1,7}-{1864,5206,0,1,7}'), +(4408, '{1860,5215,0,1,5}-{1864,5218,0,1,1}'), +(4409, '{1864,5226,0,1,1}-{1859,5220,0,1,4}-{1861,5224,0,1,6}'), +(4410, '{1890,5205,0,1,6}-{1897,5232,0,1,6}-{1906,5236,0,1,3}-{1848,5176,0,1,2}-{1904,5235,0,1,6}-{1895,5227,0,1,3}-{1863,5221,0,1,4}'), +(4411, '{1882,5201,0,1,0}-{1884,5207,0,1,3}-{1912,5239,0,1,4}-{1912,5244,0,1,5}-{1890,5204,0,1,5}'), +(4412, '{1880,5200,0,1,6}-{1911,5241,0,1,0}-{1893,5228,0,1,3}'), +(4413, '{1871,5228,0,1,6}-{1872,5233,0,1,1}-{2645,3580,0,1,4}'), +(4414, '{1808,5152,0,1,2}-{1890,5215,0,1,5}-{1892,5216,0,1,1}-{1889,5223,0,1,3}-{1892,5224,0,1,2}-{1893,5219,0,1,5}'), +(4415, '{1874,5230,0,1,3}-{1870,5232,0,1,4}-{1858,5235,0,1,3}-{1871,5241,0,1,7}-{1860,5223,0,1,4}-{1862,5222,0,1,4}-{1874,5234,0,1,5}-{1874,5230,0,1,5}-{1875,5219,0,1,5}-{1876,5215,0,1,3}-{1876,5220,0,1,6}-{1859,5206,0,1,5}-{1877,5216,0,1,4}-{1862,5201,0,1,5}-{1858,5201,0,1,6}-{1874,5201,0,1,2}-{1858,5202,0,1,0}-{1860,5200,0,1,7}-{1875,5197,0,1,6}-{1875,5201,0,1,2}-{1861,5194,0,1,3}-{1861,5224,0,1,6}-{1808,5152,0,1,2}-{1860,5192,0,1,2}-{1874,5188,0,1,7}-{1867,5188,0,1,4}-{1866,5189,0,1,4}-{1876,5189,0,1,1}-{1876,5196,0,1,3}-{1876,5188,0,1,4}-{1876,5191,0,1,4}-{1877,5191,0,1,4}-{1877,5197,0,1,6}-{1881,5198,0,1,4}-{1882,5197,0,1,5}-{1883,5203,0,1,3}-{1882,5198,0,1,4}-{1863,5205,0,1,4}-{1883,5205,0,1,5}-{1861,5205,0,1,5}-{1887,5204,0,1,3}-{1883,5205,0,1,3}-{1884,5206,0,1,1}-{1876,5215,0,1,6}-{1879,5215,0,1,2}-{1870,5217,0,1,6}-{1881,5221,0,1,1}-{1871,5218,0,1,1}-{1872,5191,0,1,3}-{1874,5219,0,1,5}-{1884,5228,0,1,4}-{1882,5231,0,1,7}-{1882,5234,0,1,5}-{1879,5234,0,1,6}-{1897,5234,0,1,6}-{1884,5234,0,1,4}-{1884,5235,0,1,3}-{1885,5236,0,1,6}-{1879,5239,0,1,4}-{1893,5243,0,1,7}-{1880,5243,0,1,7}-{1882,5241,0,1,1}-{1902,5242,0,1,4}-{1848,5176,0,1,2}-{1901,5244,0,1,3}-{1910,5243,0,1,5}-{1911,5235,0,1,3}-{1881,5243,0,1,2}-{1879,5234,0,1,3}-{1880,5234,0,1,4}-{1879,5239,0,1,1}-{1874,5230,0,1,4}-{1874,5236,0,1,4}-{1911,5235,0,1,5}-{1912,5243,0,1,4}-{1912,5238,0,1,3}-{1913,5244,0,1,4}-{1890,5244,0,1,4}-{1907,5204,0,1,1}-{1909,5204,0,1,1}-{1908,5204,0,1,3}-{1889,5206,0,1,3}-{1890,5207,0,1,1}-{1890,5207,0,1,2}-{1912,5237,0,1,7}'), +(4422, '{2377,4450,0,0,0}-{2381,4459,0,0,0}-{2388,4425,0,0,0}-{2394,4440,0,0,0}-{2418,4447,0,0,0}-{2427,4461,0,0,0}'), +(4423, '{2387,4456,0,0,0}-{2423,4461,0,0,0}'), +(4424, '{2396,4455,0,0,0}'), +(4425, '{2398,4453,0,0,0}'), +(4431, '{2388,4470,0,0,0}'), +(4437, '{2447,4429,0,1,0}'), +(4438, '{3028,4498,0,1,3}-{3046,4493,0,1,4}'), +(4439, '{3035,4507,0,1,6}-{3041,4493,0,1,0}'), +(4443, '{2451,4424,0,1,6}-{2452,4428,0,1,3}-{2443,4423,0,1,7}-{2446,4422,0,1,3}-{2443,4431,0,1,1}-{2441,4427,0,1,1}-{2463,4422,0,1,4}-{2478,4420,0,1,6}-{2489,4428,0,1,6}-{2478,4452,0,1,3}-{2474,4444,0,1,6}-{2493,4454,0,1,3}-{2486,4463,0,1,4}-{2486,4469,0,1,7}-{2479,4456,0,1,4}-{2477,4462,0,1,3}'), +(4455, '{2410,4434,0,0,0}'), +(4472, '{2524,3056,0,1,2}'), +(4474, '{3214,3252,0,0,0}-{3214,3253,0,0,0}-{3214,3254,0,0,0}'), +(4478, '{3291,2787,0,0,6}'), +(4479, '{2952,3477,0,1,0}-{2959,3501,0,1,3}'), +(4481, '{2943,3474,0,1,3}'), +(4482, '{2952,3505,0,1,7}-{2884,3463,0,1,4}'), +(4483, '{2944,3467,0,1,6}-{2961,3508,0,1,6}-{2953,3467,0,1,3}'), +(4484, '{2956,3496,0,1,6}'), +(4485, '{2951,3509,0,1,4}'), +(4487, '{2943,3478,0,1,3}'), +(4488, '{2946,3474,0,1,4}-{2956,3494,0,1,3}'), +(4489, '{2946,3469,0,1,5}-{2943,3487,0,1,3}'), +(4491, '{2963,3510,0,1,2}-{2949,3475,0,1,3}'), +(4492, '{2953,3509,0,1,4}-{2987,3426,0,1,6}'), +(4493, '{2957,3513,0,1,6}'), +(4494, '{2957,3512,0,1,4}'), +(4495, '{2957,3512,0,1,5}'), +(4511, '{2149,3866,0,0,7}'), +(4512, '{2092,3930,0,1,4}'), +(4513, '{2450,4647,0,1,5}'), +(4514, '{2079,3923,0,1,7}'), +(4515, '{2081,3899,0,1,1}'), +(4516, '{2096,3907,0,1,6}'), +(4517, '{2086,3915,0,1,0}'), +(4518, '{2106,3907,0,1,6}'), +(4519, '{2098,3921,0,0,6}-{2099,3921,0,0,6}-{2097,3921,0,0,6}'), +(4524, '{2083,3903,0,1,3}'), +(4525, '{2098,3894,0,1,3}'), +(4526, '{2103,3914,0,1,7}'), +(4527, '{2071,3877,0,1,2}-{2084,3868,0,1,1}-{2089,3864,0,1,4}'), +(4528, '{2115,3864,0,1,6}-{2105,3848,0,1,1}-{2122,3946,0,1,3}'), +(4529, '{2070,3879,0,1,7}-{2097,3862,0,1,3}-{2118,3852,0,1,4}-{2144,3853,0,1,5}'), +(4530, '{2076,3866,0,1,1}-{2133,3874,0,1,4}-{2107,3945,0,1,1}'), +(4531, '{2103,3866,0,1,3}-{2134,3851,0,1,4}-{2116,3950,0,1,0}'), +(4534, '{3206,5487,0,1,6}-{3200,5492,0,1,1}'), +(4536, '{2213,3794,0,0,3}'), +(4537, '{2621,3688,0,0,6}'), +(4539, '{2079,3925,0,1,1}'), +(4540, '{2221,3797,2,1,3}-{2137,3899,2,1,2}'), +(4560, '{3062,3260,0,1,6}'), +(4563, '{3003,9798,0,1,3}'), +(4568, '{3364,3338,0,1,6}'), +(4570, '{3201,3301,0,1,3}-{3115,3276,0,1,6}'), +(4571, '{3205,3298,0,1,3}-{3095,3286,0,1,4}-{3098,3225,0,1,4}-{3056,3248,0,1,0}'), +(4572, '{2448,3510,1,0,4}'), +(4573, '{2441,3501,1,1,3}'), +(4575, '{2441,3503,1,1,4}'), +(4578, '{2933,2972,0,0,0}'), +(4580, '{2572,3299,1,0,0}'), +(4585, '{3115,3160,0,0,0}'), +(4586, '{2593,3087,0,1,4}'), +(4587, '{2449,3503,1,0,6}'), +(4588, '{2448,3500,1,0,3}'), +(4597, '{2375,3433,0,1,0}'), +(4599, '{2417,3513,0,1,4}'), +(4603, '{3008,3514,0,1,3}'), +(4604, '{3017,3513,0,1,0}-{3018,3515,0,1,1}'), +(4605, '{3018,3512,0,1,7}-{3019,3514,0,1,1}-{3019,3516,0,1,1}'), +(4606, '{3017,3514,0,1,4}'), +(4607, '{3030,3505,0,0,0}'), +(4611, '{3076,3259,0,0,0}'), +(4649, '{2142,3122,0,1,4}-{2147,3122,0,1,3}'), +(4650, '{3041,3194,0,1,4}'), +(4651, '{2760,3239,0,1,3}-{2143,3121,0,1,6}'), +(4652, '{2674,3144,0,1,3}-{3701,3501,0,1,6}'), +(4653, '{2794,3414,0,1,6}-{3040,3192,0,1,3}-{2954,3154,0,1,6}-{3671,2930,0,1,6}'), +(4654, '{3001,3033,0,1,6}-{2674,3146,0,1,6}-{2145,3122,0,1,3}'), +(4655, '{2954,3157,0,1,3}-{3701,3503,0,1,1}'), +(4656, '{2795,3414,0,1,6}-{3038,3192,0,1,3}-{2760,3238,0,1,3}'), +(4675, '{3048,10266,0,1,4}'), +(4676, '{3054,10269,0,1,4}'), +(4677, '{3335,3687,0,1,4}-{3338,3700,0,1,2}-{3316,5448,0,1,2}-{3107,10065,0,1,0}-{3299,5545,0,1,6}'), +(4678, '{3335,3701,0,1,6}-{3350,3687,0,1,5}-{3305,5454,0,1,6}-{3110,10076,0,1,0}'), +(4679, '{3333,3694,0,1,6}-{3341,3685,0,1,4}-{3118,10068,0,1,0}-{3312,5558,0,1,1}'), +(4680, '{3349,3696,0,1,5}-{3120,10080,0,1,0}'), +(4685, '{2957,3895,0,1,4}-{3209,5552,0,1,1}-{3223,5555,0,1,4}-{3220,5548,0,1,6}-{3220,5557,0,1,4}'), +(4686, '{2827,3512,0,1,5}-{2957,3898,0,1,6}-{2946,3898,0,1,7}-{3213,5548,0,1,4}'), +(4688, '{2700,3212,0,1,6}'), +(4690, '{3256,3624,0,1,5}-{3105,3876,0,1,2}'), +(4694, '{3098,3870,0,1,1}-{3020,3854,0,1,7}-{2843,9558,0,1,1}-{2840,9605,0,1,4}-{3053,10124,0,1,0}-{3056,10140,0,1,0}'), +(4695, '{3097,3696,0,1,4}-{3017,3851,0,1,2}-{2839,9565,0,1,3}-{2837,9601,0,1,4}-{2840,3279,0,1,6}-{3048,10134,0,1,0}-{3061,10138,0,1,0}'), +(4696, '{3118,3695,0,1,6}-{3010,3851,0,1,1}-{2839,9560,0,1,4}-{2846,9613,0,1,6}-{3062,10131,0,1,0}'), +(4697, '{3125,3706,0,1,5}-{3331,3853,0,1,2}-{3016,3841,0,1,4}-{2845,9557,0,1,2}-{2839,9624,0,1,6}-{2825,3277,0,1,3}-{3065,10125,0,1,0}'), +(4698, '{3139,3712,0,1,5}-{3306,3890,0,1,6}-{3085,10093,0,1,0}-{3090,10084,0,1,0}-{2861,9752,0,1,4}-{2363,9776,0,1,1}-{2361,9755,0,1,1}-{2365,9754,0,1,1}-{2362,9751,0,1,1}'), +(4699, '{3035,10245,0,1,4}-{3159,3707,0,1,3}-{3301,3871,0,1,5}-{3097,10092,0,1,0}-{3082,10083,0,1,0}-{2629,9477,2,0,0}-{2640,9502,2,0,1}-{2359,9741,0,1,1}'), +(4700, '{3030,10259,0,1,3}-{3144,3701,0,1,4}-{3279,3876,0,1,4}-{3094,10092,0,1,0}-{3089,10081,0,1,0}-{2633,9488,2,0,6}-{2862,9750,0,1,7}-{2358,9737,0,1,1}-{2366,9763,0,1,1}'), +(4701, '{3028,10250,0,1,4}-{3149,3690,0,1,4}-{3286,3901,0,1,3}-{3089,10089,0,1,0}-{3085,10081,0,1,0}-{2628,9489,2,0,0}-{2631,9504,2,0,5}-{2361,9755,0,1,1}-{2363,9743,0,1,1}-{2363,9772,0,1,1}'), +(4702, '{3084,9957,0,1,6}-{2712,9480,0,0,5}'), +(4703, '{3092,9958,0,1,2}'), +(4704, '{3160,5521,0,1,1}'), +(4705, '{3088,9961,0,1,1}-{3169,5528,0,1,0}'), +(4706, '{3242,5555,0,1,3}-{3206,5493,0,1,5}'), +(4707, '{3213,3253,0,0,6}'), +(4710, '{3222,3475,0,0,5}'), +(4732, '{3429,3701,0,0,0}'), +(4898, '{3124,9874,0,1,3}-{3128,9875,0,1,6}'), +(4899, '{3231,3197,0,1,6}'), +(4900, '{3210,3213,1,1,1}'), +(4901, '{3245,3157,0,0,7}'), +(4902, '{3227,3147,0,0,1}'), +(4903, '{3244,3214,0,1,1}'), +(4904, '{3228,3254,0,1,3}'), +(4906, '{3230,3244,0,1,4}'), +(4907, '{3208,3222,2,0,6}'), +(4909, '{2831,3352,0,0,7}'), +(4920, '{3289,5496,0,0,5}-{3272,5490,0,0,0}-{3188,5510,0,1,6}-{3194,5510,0,1,2}'), +(4921, '{3304,5493,0,1,3}-{3303,5496,0,1,0}-{3271,5490,0,0,5}'), +(4926, '{3225,3551,0,1,1}-{3248,3524,0,1,1}'), +(4927, '{3227,3529,0,1,1}'), +(4930, '{3412,2889,0,1,3}-{3414,2892,0,1,1}-{3414,2890,0,1,1}-{3416,2886,0,1,4}-{3416,2893,0,1,6}'), +(4932, '{3414,2891,0,1,1}-{3410,2888,0,1,7}'), +(4944, '{2042,5213,0,1,5}-{2020,5236,0,1,2}-{1944,5152,0,1,2}-{2041,5216,0,1,0}'), +(4945, '{1994,5192,0,1,4}-{1997,5190,0,1,1}'), +(4946, '{2721,3432,0,1,4}'), +(4947, '{2825,3696,0,1,3}'), +(4950, '{2855,10051,1,0,0}'), +(4953, '{2684,3274,1,0,0}'), +(4955, '{2772,3223,0,0,0}'), +(4956, '{2783,3119,0,0,0}'), +(4961, '{2683,3275,1,0,0}'), +(4975, '{3303,3024,0,0,7}-{3299,3016,0,0,2}-{3280,9438,0,0,6}-{3275,9460,0,0,3}-{3267,9458,0,0,3}-{3270,9415,0,0,6}-{3272,9429,0,0,4}-{3272,9421,0,0,4}-{3271,9450,0,0,1}-{3288,9413,0,0,6}-{3297,9414,0,0,6}-{3300,9414,0,0,6}-{3304,9424,0,0,1}-{3292,9426,0,0,4}-{3295,9421,0,0,3}-{3297,9412,0,0,1}-{3292,9413,0,0,3}-{3324,9429,0,0,3}-{3311,9440,0,0,6}-{3294,9459,0,0,1}-{3291,9463,0,0,6}-{3296,9468,0,0,1}-{3288,9468,0,0,1}-{3313,9449,0,0,1}-{3034,2971,0,0,5}-{3030,2971,0,0,1}'), +(4976, '{3301,3017,0,0,7}-{3281,9446,0,0,1}-{3270,9451,0,0,4}-{3269,9418,0,0,1}-{3267,9441,0,0,1}-{3280,9436,0,0,1}-{3291,9414,0,0,6}-{3305,9413,0,0,6}-{3308,9415,0,0,1}-{3309,9420,0,0,1}-{3296,9425,0,0,1}-{3294,9420,0,0,1}-{3295,9412,0,0,3}-{3323,9439,0,0,6}-{3295,9460,0,0,3}-{3294,9464,0,0,6}-{3294,9467,0,0,1}-{3311,9454,0,0,6}-{3036,2972,0,0,1}-{3039,2968,0,0,1}-{3046,2982,0,0,6}-{3045,2974,0,0,6}-{3042,2972,0,0,6}'), +(4977, '{3294,3016,0,0,6}-{3287,3016,0,0,3}-{3277,9452,0,0,1}-{3267,9443,0,0,6}-{3267,9431,0,0,6}-{3269,9420,0,0,6}-{3273,9460,0,0,4}-{3277,9454,0,0,6}-{3281,9448,0,0,6}-{3294,9413,0,0,6}-{3306,9423,0,0,1}-{3298,9436,0,0,6}-{3292,9466,0,0,6}-{3296,9462,0,0,3}-{3290,9467,0,0,1}-{3315,9451,0,0,1}-{3316,9454,0,0,3}-{3038,2973,0,0,1}-{3027,2974,0,0,1}-{3023,2977,0,0,1}-{3035,2989,0,0,4}-{3039,2985,0,0,4}'), +(4978, '{3291,3017,0,0,5}-{3275,9463,0,0,1}-{3273,9430,0,0,6}-{3273,9422,0,0,6}-{3267,9428,0,0,1}-{3294,9411,0,0,6}-{3300,9424,0,0,1}-{3289,9412,0,0,3}-{3042,2969,0,0,1}-{3038,2976,0,0,6}-{3041,2983,0,0,6}-{3043,2983,0,0,6}-{3044,2981,0,0,6}-{3043,2979,0,0,1}-{3038,2989,0,0,1}-{3025,2984,0,0,1}-{3026,2988,0,0,1}-{3030,2990,0,0,1}-{3024,2979,0,0,3}'), +(4985, '{3304,3027,0,1,2}'), +(4986, '{3308,3112,0,1,1}'), +(4989, '{3272,3029,0,1,4}'), +(4990, '{3269,3029,0,1,4}'), +(4991, '{3270,3030,0,1,6}'), +(4992, '{3267,3029,0,1,0}'), +(4993, '{3277,3028,0,1,1}-{3279,9441,0,1,4}'), +(4994, '{3285,3027,0,1,7}'), +(4995, '{3279,3024,0,1,3}-{3286,3036,1,1,4}'), +(4996, '{3284,3022,0,1,2}'), +(4997, '{3289,3026,0,1,3}-{3317,9438,0,0,3}'), +(4998, '{3293,3027,0,1,5}-{3286,9419,0,1,3}-{3296,9433,0,1,7}-{3310,9457,0,1,1}'), +(4999, '{3280,3020,0,1,6}-{3319,9439,0,1,0}-{3299,9467,0,1,3}'), +(5000, '{3285,3022,0,1,6}-{3295,9434,0,1,3}'), +(5001, '{3297,3020,0,1,6}-{3280,9414,0,1,1}-{3279,9416,0,1,1}'), +(5002, '{3295,3028,0,1,3}-{3291,9423,0,1,1}'), +(5020, '{2905,3180,0,0,0}'), +(5021, '{2906,3173,0,0,0}'), +(5022, '{2907,3169,0,0,0}'), +(5029, '{2534,3575,0,1,0}'), +(5030, '{2533,3570,0,1,4}'), +(5031, '{2525,3575,0,1,3}'), +(5032, '{2525,3566,0,1,3}'), +(5033, '{2520,3569,0,1,3}'), +(5049, '{2808,3355,0,1,6}'), +(5062, '{2927,3410,0,0,0}'), +(5065, '{2925,3303,0,0,0}'), +(5070, '{2912,3480,0,0,0}-{2911,3480,0,0,0}'), +(5071, '{2609,2922,0,0,0}'), +(5072, '{2526,2928,0,1,6}-{2510,2876,0,1,3}-{2517,2878,0,1,6}-{2527,2877,0,1,2}-{2532,2938,0,1,4}-{2527,2933,0,1,4}-{2521,2938,0,1,6}-{2507,2914,0,1,0}-{2512,2910,0,1,4}-{2517,2912,0,1,1}-{2517,2921,0,1,6}-{2511,2911,0,1,3}-{2521,2917,0,1,7}-{2522,2929,0,1,4}-{2510,2888,0,1,1}-{2502,2890,0,1,3}-{2520,2882,0,1,7}-{2507,2877,0,1,1}-{2464,2832,0,1,2}-{2500,2893,0,1,4}-{2548,2887,0,1,1}-{2544,2889,0,1,7}-{2536,2877,0,1,3}-{2530,2872,0,1,3}-{2520,2885,0,1,0}-{2517,2870,0,1,4}-{2498,2883,0,1,6}-{2501,2886,0,1,7}-{2508,2916,0,1,4}-{2502,2888,0,1,7}-{2514,2915,0,1,4}-{2520,2908,0,1,6}-{2515,2944,0,1,4}-{2526,2943,0,1,4}-{2525,2893,0,1,4}-{2521,2896,0,1,1}'), +(5073, '{2907,3481,0,1,1}-{2907,3484,0,1,2}-{2908,3491,0,1,4}-{2910,3497,0,1,5}-{2905,3491,0,1,3}-{2904,3491,0,1,6}-{2901,3502,0,1,2}-{2578,2885,0,1,3}-{2582,2892,0,1,2}-{2603,2892,0,1,1}-{2604,2892,0,1,6}-{2611,2917,0,1,6}-{2611,2916,0,1,3}-{2613,2894,0,1,1}-{2614,2892,0,1,6}-{2608,2927,0,1,2}-{2612,2934,0,1,4}-{2609,2930,0,1,0}-{2594,2929,0,1,2}-{2616,2922,0,1,4}-{2593,2911,0,1,1}-{2617,2911,0,1,1}-{2602,2900,0,1,3}-{2601,2886,0,1,6}-{2587,2897,0,1,4}-{2612,2936,0,1,3}-{2606,2929,0,1,5}-{2615,2930,0,1,3}-{2576,2896,0,1,1}-{2588,2879,0,1,6}-{2593,2880,0,1,7}-{2583,2886,0,1,5}-{2609,2897,0,1,3}-{2608,2905,0,1,2}-{2606,2917,0,1,4}-{2604,2918,0,1,4}-{2613,2890,0,1,5}-{2608,2921,0,1,6}-{2604,2886,0,1,6}-{2602,2920,0,1,1}-{2607,2932,0,1,6}-{2578,2885,0,1,1}'), +(5076, '{2310,3581,0,1,2}-{2314,3580,0,1,2}-{2311,3583,0,1,2}-{2304,3588,0,1,6}-{2305,3601,0,1,7}-{2341,3610,0,1,7}-{2344,3606,0,1,3}-{2340,3603,0,1,4}-{2348,3591,0,1,1}-{2356,3595,0,1,6}-{2361,3595,0,1,1}-{2359,3589,0,1,4}-{2346,3585,0,1,6}-{2360,3584,0,1,7}'); +INSERT INTO `npc_spawns` (`npc_id`, `loc_data`) VALUES +(5077, '{2558,2911,0,0,0}-{2558,2913,0,0,0}-{2556,2913,0,0,0}-{2557,2912,0,0,0}-{2560,2911,0,0,0}-{2559,2910,0,0,0}-{2559,2909,0,0,0}-{2559,2917,0,0,0}-{2558,2914,0,0,0}-{2559,2915,0,0,0}-{2558,2916,0,0,0}-{2559,2932,0,0,0}-{2559,2928,0,0,0}-{2558,2928,0,0,0}-{2558,2931,0,0,0}-{2558,2929,0,0,0}-{2556,2911,0,0,0}-{2557,2911,0,0,0}-{2556,2910,0,0,0}-{2556,2912,0,0,0}-{2557,2919,0,0,0}-{2556,2914,0,0,0}-{2556,2913,0,0,0}-{2556,2918,0,0,0}-{2556,2929,0,0,0}-{2557,2933,0,0,0}-{2556,2932,0,0,0}-{2557,2932,0,0,0}-{2557,2928,0,0,0}-{2559,2934,0,0,0}-{2554,2911,0,0,0}-{2555,2911,0,0,0}-{2554,2912,0,0,0}-{2555,2915,0,0,0}-{2555,2919,0,0,0}-{2554,2919,0,0,0}-{2554,2913,0,0,0}-{2556,2915,0,0,0}-{2555,2931,0,0,0}-{2554,2933,0,0,0}-{2555,2934,0,0,0}-{2555,2933,0,0,0}-{2555,2932,0,0,0}-{2554,2935,0,0,0}-{2554,2934,0,0,0}-{2556,2936,0,0,0}-{2558,2936,0,0,0}-{2554,2936,0,0,0}-{2553,2935,0,0,0}-{2556,2933,0,0,0}-{2558,2938,0,0,0}-{2556,2938,0,0,0}-{2557,2937,0,0,0}-{2557,2917,0,0,0}-{2555,2917,0,0,0}-{2555,2912,0,0,0}-{2555,2935,0,0,0}-{2547,2940,0,0,0}-{2546,2939,0,0,0}-{2548,2939,0,0,0}-{2557,2930,0,0,0}-{2556,2929,0,0,0}-{2546,2941,0,0,0}-{2548,2941,0,0,0}-{2557,2931,0,0,0}-{2556,2935,0,0,0}-{2555,2936,0,0,0}-{2553,2935,0,0,0}-{2559,2930,0,0,0}-{2547,2940,0,0,0}-{2509,2910,0,0,0}-{2507,2910,0,0,0}-{2509,2908,0,0,0}-{2508,2908,0,0,0}-{2508,2909,0,0,0}-{2510,2908,0,0,0}-{2506,2906,0,0,0}-{2508,2906,0,0,0}-{2507,2906,0,0,0}-{2507,2905,0,0,0}-{2509,2905,0,0,0}-{2505,2907,0,0,0}-{2504,2908,0,0,0}-{2467,2879,0,0,0}-{2484,2877,0,0,0}-{2485,2876,0,0,0}-{2511,2908,0,0,0}-{2504,2906,0,0,0}-{2508,2907,0,0,0}-{2509,2906,0,0,0}-{2508,2909,0,0,0}-{2506,2906,0,0,0}-{2510,2907,0,0,0}-{2503,2907,0,0,0}-{2509,2908,0,0,0}-{2507,2908,0,0,0}-{2508,2906,0,0,0}-{2505,2907,0,0,0}-{2507,2905,0,0,0}-{2506,2904,0,0,0}-{2505,2903,0,0,0}-{2508,2902,0,0,0}-{2504,2901,0,0,0}-{2506,2907,0,0,0}-{2507,2906,0,0,0}-{2524,2898,0,0,0}-{2524,2896,0,0,0}-{2525,2897,0,0,0}-{2521,2895,0,0,0}-{2525,2895,0,0,0}-{2507,2903,0,0,0}-{2526,2898,0,0,0}-{2507,2889,0,0,0}-{2506,2903,0,0,0}-{2503,2905,0,0,0}-{2507,2905,0,0,0}-{2511,2908,0,0,0}-{2507,2887,0,0,0}-{2554,2937,0,0,0}-{2558,2938,0,0,0}-{2557,2937,0,0,0}-{2556,2938,0,0,0}-{2553,2937,0,0,0}-{2556,2937,0,0,0}-{2553,2935,0,0,0}-{2556,2935,0,0,0}-{2558,2936,0,0,0}-{2555,2936,0,0,0}-{2552,2936,0,0,0}-{2554,2936,0,0,0}-{2552,2934,0,0,0}-{2553,2934,0,0,0}-{2557,2931,0,0,0}-{2559,2932,0,0,0}-{2558,2932,0,0,0}-{2556,2936,0,0,0}-{2553,2936,0,0,0}-{2554,2935,0,0,0}-{2559,2917,0,0,0}-{2556,2916,0,0,0}-{2555,2917,0,0,0}-{2559,2914,0,0,0}-{2557,2915,0,0,0}-{2561,2914,0,0,0}-{2557,2912,0,0,0}-{2559,2912,0,0,0}-{2558,2913,0,0,0}-{2555,2911,0,0,0}-{2554,2910,0,0,0}-{2559,2916,0,0,0}-{2557,2932,0,0,0}-{2557,2909,0,0,0}-{2559,2913,0,0,0}-{2552,2935,0,0,0}-{2512,2864,0,0,0}-{2560,2909,0,0,0}-{2561,2916,0,0,0}-{2559,2909,0,0,0}-{2557,2914,0,0,0}-{2555,2915,0,0,0}-{2527,2896,0,0,0}-{2524,2895,0,0,0}-{2524,2894,0,0,0}-{2525,2896,0,0,0}-{2524,2896,0,0,0}-{2523,2893,0,0,0}-{2523,2896,0,0,0}-{2523,2897,0,0,0}-{2521,2895,0,0,0}-{2521,2893,0,0,0}-{2526,2895,0,0,0}-{2507,2887,0,0,0}-{2507,2890,0,0,0}-{2506,2886,0,0,0}-{2505,2887,0,0,0}-{2505,2888,0,0,0}-{2503,2889,0,0,0}-{2504,2889,0,0,0}-{2504,2903,0,0,0}-{2505,2907,0,0,0}-{2504,2906,0,0,0}-{2505,2905,0,0,0}-{2506,2907,0,0,0}-{2506,2905,0,0,0}-{2506,2906,0,0,0}-{2507,2903,0,0,0}-{2507,2906,0,0,0}-{2507,2907,0,0,0}-{2505,2893,0,0,0}-{2504,2892,0,0,0}-{2508,2909,0,0,0}-{2502,2891,0,0,0}-{2503,2890,0,0,0}-{2503,2891,0,0,0}-{2508,2891,0,0,0}-{2507,2891,0,0,0}-{2507,2890,0,0,0}-{2503,2889,0,0,0}-{2504,2889,0,0,0}-{2505,2888,0,0,0}-{2506,2909,0,0,0}-{2507,2887,0,0,0}-{2505,2887,0,0,0}-{2506,2887,0,0,0}-{2508,2890,0,0,0}-{2504,2894,0,0,0}-{2502,2891,0,0,0}-{2524,2899,0,0,0}-{2524,2898,0,0,0}-{2526,2899,0,0,0}-{2526,2895,0,0,0}-{2526,2900,0,0,0}-{2524,2900,0,0,0}-{2525,2900,0,0,0}-{2525,2899,0,0,0}-{2524,2893,0,0,0}-{2522,2894,0,0,0}-{2521,2895,0,0,0}-{2523,2895,0,0,0}-{2524,2895,0,0,0}-{2506,2886,0,0,0}-{2521,2893,0,0,0}-{2526,2898,0,0,0}-{2524,2899,0,0,0}-{2456,2832,0,0,0}-{2523,2896,0,0,0}-{2522,2894,0,0,0}-{2524,2901,0,0,0}-{2524,2900,0,0,0}-{2523,2895,0,0,0}-{2526,2901,0,0,0}-{2525,2896,0,0,0}-{2526,2900,0,0,0}-{2523,2893,0,0,0}-{2525,2900,0,0,0}-{2524,2898,0,0,0}-{2525,2894,0,0,0}-{2527,2894,0,0,0}-{2524,2899,0,0,0}-{2508,2904,0,0,0}-{2507,2907,0,0,0}-{2506,2902,0,0,0}-{2506,2907,0,0,0}-{2506,2906,0,0,0}-{2503,2907,0,0,0}-{2503,2905,0,0,0}-{2505,2893,0,0,0}-{2503,2891,0,0,0}-{2506,2891,0,0,0}-{2508,2891,0,0,0}-{2506,2892,0,0,0}-{2506,2909,0,0,0}-{2503,2890,0,0,0}-{2503,2889,0,0,0}-{2504,2889,0,0,0}-{2507,2890,0,0,0}-{2505,2887,0,0,0}-{2505,2888,0,0,0}-{2508,2890,0,0,0}-{2507,2905,0,0,0}-{2456,2832,0,0,0}-{2503,2890,0,0,0}-{2503,2891,0,0,0}-{2504,2892,0,0,0}-{2504,2894,0,0,0}-{2506,2887,0,0,0}-{2507,2887,0,0,0}-{2507,2891,0,0,0}-{2504,2889,0,0,0}-{2508,2891,0,0,0}-{2505,2888,0,0,0}-{2506,2894,0,0,0}-{2506,2902,0,0,0}-{2506,2904,0,0,0}-{2506,2886,0,0,0}-{2507,2903,0,0,0}-{2505,2893,0,0,0}-{2506,2891,0,0,0}-{2503,2889,0,0,0}-{2506,2887,0,0,0}-{2506,2892,0,0,0}-{2507,2891,0,0,0}-{2456,2832,0,0,0}-{2456,2832,0,0,0}-{2507,2887,0,0,0}-{2507,2890,0,0,0}-{2503,2905,0,0,0}-{2505,2906,0,0,0}-{2506,2905,0,0,0}-{2506,2906,0,0,0}-{2507,2905,0,0,0}-{2505,2905,0,0,0}-{2504,2906,0,0,0}-{2503,2907,0,0,0}-{2506,2894,0,0,0}-{2507,2908,0,0,0}-{2507,2907,0,0,0}-{2508,2909,0,0,0}-{2505,2888,0,0,0}-{2505,2907,0,0,0}-{2494,2940,0,0,0}-{2495,2940,0,0,0}-{2496,2939,0,0,0}-{2497,2938,0,0,0}-{2498,2942,0,0,0}-{2499,2943,0,0,0}-{2498,2944,0,0,0}-{2500,2942,0,0,0}-{2503,2940,0,0,0}-{2496,2939,0,0,0}-{2502,2939,0,0,0}-{2500,2944,0,0,0}'), +(5078, '{2556,2911,0,0,0}-{2560,2909,0,0,0}-{2560,2933,0,0,0}-{2558,2910,0,0,0}-{2558,2909,0,0,0}-{2558,2918,0,0,0}-{2559,2930,0,0,0}-{2557,2915,0,0,0}-{2557,2931,0,0,0}-{2558,2935,0,0,0}-{2555,2936,0,0,0}-{2553,2936,0,0,0}-{2553,2933,0,0,0}-{2553,2934,0,0,0}-{2506,2908,0,0,0}-{2507,2908,0,0,0}-{2510,2906,0,0,0}-{2509,2907,0,0,0}-{2508,2907,0,0,0}-{2506,2904,0,0,0}-{2508,2904,0,0,0}-{2504,2906,0,0,0}-{2467,2878,0,0,0}-{2486,2877,0,0,0}-{2506,2909,0,0,0}-{2508,2904,0,0,0}-{2506,2902,0,0,0}-{2504,2903,0,0,0}-{2504,2902,0,0,0}-{2525,2899,0,0,0}-{2523,2897,0,0,0}-{2522,2897,0,0,0}-{2523,2895,0,0,0}-{2521,2893,0,0,0}-{2523,2893,0,0,0}-{2506,2888,0,0,0}-{2509,2889,0,0,0}-{2505,2889,0,0,0}-{2508,2888,0,0,0}-{2506,2887,0,0,0}-{2505,2887,0,0,0}-{2554,2935,0,0,0}-{2552,2935,0,0,0}-{2557,2934,0,0,0}-{2554,2934,0,0,0}-{2558,2933,0,0,0}-{2559,2931,0,0,0}-{2560,2918,0,0,0}-{2558,2916,0,0,0}-{2557,2917,0,0,0}-{2561,2916,0,0,0}-{2555,2915,0,0,0}-{2557,2914,0,0,0}-{2560,2915,0,0,0}-{2554,2912,0,0,0}-{2556,2912,0,0,0}-{2559,2909,0,0,0}-{2558,2909,0,0,0}-{2527,2894,0,0,0}-{2525,2894,0,0,0}-{2523,2895,0,0,0}-{2522,2894,0,0,0}-{2508,2890,0,0,0}-{2508,2891,0,0,0}-{2503,2905,0,0,0}-{2503,2907,0,0,0}-{2506,2902,0,0,0}-{2506,2904,0,0,0}-{2504,2894,0,0,0}-{2506,2894,0,0,0}-{2506,2892,0,0,0}-{2508,2904,0,0,0}-{2506,2891,0,0,0}-{2524,2901,0,0,0}-{2526,2901,0,0,0}-{2524,2894,0,0,0}-{2525,2894,0,0,0}-{2527,2894,0,0,0}-{2523,2896,0,0,0}-{2525,2896,0,0,0}-{2507,2903,0,0,0}-{2507,2905,0,0,0}-{2505,2902,0,0,0}-{2506,2904,0,0,0}-{2505,2907,0,0,0}-{2506,2905,0,0,0}-{2505,2905,0,0,0}-{2504,2906,0,0,0}-{2506,2894,0,0,0}-{2504,2894,0,0,0}-{2507,2891,0,0,0}-{2507,2887,0,0,0}-{2506,2891,0,0,0}-{2506,2907,0,0,0}-{2495,2938,0,0,0}-{2501,2938,0,0,0}-{2501,2940,0,0,0}-{2503,2938,0,0,0}'), +(5079, '{2323,3538,0,1,6}-{2319,3539,0,1,6}-{2321,3545,0,1,5}-{2324,3556,0,1,1}-{2322,3594,0,1,5}-{2323,3594,0,1,1}-{2323,3602,0,1,1}-{2326,3602,0,1,4}-{2324,3622,0,1,1}-{2326,3630,0,1,6}-{2347,3617,0,1,7}-{2341,3615,0,1,3}-{2339,3596,0,1,3}-{2329,3584,0,1,6}-{2337,3589,0,1,5}-{2358,3573,0,1,3}-{2360,3571,0,1,4}-{2371,3560,0,1,3}-{2342,3549,0,1,0}-{2357,3539,0,1,1}-{2357,3537,0,1,4}-{2357,3549,0,1,6}'), +(5080, '{2562,2927,0,1,4}-{2557,2915,0,1,3}-{2557,2921,0,1,1}-{2556,2938,0,1,7}-{2551,2930,0,1,6}-{2558,2912,0,1,4}-{2558,2909,0,1,3}-{2557,2932,0,1,6}-{2556,2935,0,1,1}-{2555,2915,0,1,2}-{2553,2935,0,1,4}-{2559,2918,0,1,4}-{2508,2909,0,1,3}-{2466,2878,0,1,6}-{2467,2881,0,1,7}-{2501,2912,0,1,6}-{2507,2907,0,1,1}-{2505,2902,0,1,2}-{2504,2896,0,1,2}-{2522,2895,0,1,3}-{2526,2897,0,1,1}-{2527,2904,0,1,0}-{2507,2889,0,1,4}-{2464,2832,0,1,2}-{2545,2948,0,1,2}-{2553,2935,0,1,1}-{2556,2931,0,1,5}-{2555,2915,0,1,6}-{2559,2911,0,1,4}-{2559,2918,0,1,3}-{2527,2896,0,1,4}-{2533,2896,0,1,5}-{2508,2890,0,1,4}-{2522,2895,0,1,2}-{2490,2877,0,1,1}-{2496,2897,0,1,1}-{2506,2906,0,1,0}-{2506,2894,0,1,3}-{2506,2902,0,1,6}-{2499,2942,0,1,7}-{2496,2936,0,1,4}-{2498,2939,0,1,3}'), +(5081, '{2318,3501,0,1,5}-{2316,3502,0,1,6}-{2317,3512,0,1,6}-{2315,3512,0,1,5}-{2312,3504,0,1,1}-{2307,3513,0,1,6}-{2311,3517,0,1,0}-{2320,3517,0,1,1}-{2309,3520,0,1,6}'), +(5082, '{2554,2894,0,1,4}-{2538,2897,0,1,6}-{2545,2899,0,1,3}-{2561,2913,0,1,1}-{2559,2908,0,1,6}-{2557,2920,0,1,4}-{2553,2913,0,1,4}-{2544,2910,0,1,2}-{2547,2909,0,1,4}-{2537,2906,0,1,5}-{2525,2914,0,1,3}-{2561,2918,0,1,7}-{2560,2915,0,1,1}-{2555,2920,0,1,6}-{2557,2908,0,1,6}-{2539,2920,0,1,1}-{2528,2915,0,1,4}-{2527,2904,0,1,0}-{2487,2878,0,1,4}-{2518,2901,0,1,5}-{2528,2902,0,1,1}-{2529,2918,0,1,6}-{2566,2881,0,1,7}-{2568,2917,0,1,6}-{2568,2918,0,1,4}-{2557,2915,0,1,7}-{2546,2912,0,1,3}-{2542,2911,0,1,5}-{2548,2910,0,1,6}-{2554,2907,0,1,1}-{2568,2885,0,1,4}-{2548,2896,0,1,5}-{2545,2895,0,1,6}-{2544,2910,0,1,7}-{2536,2895,0,1,3}-{2538,2902,0,1,6}-{2523,2910,0,1,3}-{2533,2910,0,1,2}'), +(5085, '{2328,3526,0,0,0}-{2313,3528,0,0,0}-{2312,3542,0,0,0}-{2312,3544,0,0,0}-{2323,3543,0,0,0}-{2325,3544,0,0,0}-{2328,3539,0,0,0}-{2311,3564,0,0,0}-{2332,3548,0,0,0}-{2335,3545,0,0,0}-{2320,3580,0,0,0}-{2325,3582,0,0,0}-{2330,3583,0,0,0}-{2310,3585,0,0,0}-{2324,3584,0,0,0}-{2312,3587,0,0,0}-{2316,3599,0,0,0}-{2324,3599,0,0,0}-{2323,3600,0,0,0}-{2315,3602,0,0,0}-{2309,3605,0,0,0}-{2316,3608,0,0,0}-{2315,3608,0,0,0}-{2325,3614,0,0,0}-{2313,3620,0,0,0}-{2333,3612,0,0,0}-{2331,3608,0,0,0}-{2331,3604,0,0,0}-{2346,3591,0,0,0}-{2355,3573,0,0,0}-{2369,3573,0,0,0}-{2359,3571,0,0,0}-{2352,3567,0,0,0}-{2372,3561,0,0,0}-{2361,3554,0,0,0}-{2329,3561,0,0,0}-{2341,3560,0,0,0}-{2344,3543,0,0,0}-{2342,3539,0,0,0}-{2349,3547,0,0,0}-{2352,3545,0,0,0}-{2334,3522,0,0,0}'), +(5086, '{2321,3593,0,1,1}-{2322,3597,0,1,0}-{2309,3603,0,1,5}-{2306,3607,0,1,0}-{2305,3619,0,1,1}-{2309,3618,0,1,6}-{2322,3627,0,1,3}-{2324,3614,0,1,1}-{2323,3614,0,1,1}-{2323,3629,0,1,6}-{2329,3633,0,1,4}-{2328,3634,0,1,3}-{2311,3642,0,1,1}-{2307,3644,0,1,6}-{2318,3645,0,1,1}-{2323,3645,0,1,3}-{2333,3629,0,1,3}-{2340,3641,0,1,7}-{2343,3640,0,1,6}-{2335,3633,0,1,6}'), +(5088, '{2586,2883,0,1,6}-{2589,2909,0,1,1}-{2574,2915,0,1,3}-{2572,2928,0,1,3}-{2567,2932,0,1,6}-{2568,2933,0,1,0}-{2538,2889,0,1,3}-{2538,2902,0,1,4}-{2536,2872,0,1,4}-{2536,2872,0,1,6}-{2536,2872,0,1,4}-{2536,2872,0,1,6}-{2536,2872,0,1,3}-{2585,2884,0,1,5}-{2577,2890,0,1,0}-{2578,2918,0,1,1}-{2536,2864,0,1,7}-{2568,2934,0,1,1}-{2574,2930,0,1,1}-{2576,2928,0,1,4}-{2512,2864,0,1,6}-{2512,2864,0,1,1}-{2580,2889,0,1,1}-{2580,2886,0,1,1}-{2580,2886,0,1,0}-{2572,2900,0,1,4}-{2572,2896,0,1,3}-{2568,2905,0,1,4}'), +(5089, '{2315,3523,0,1,1}-{2315,3530,0,1,6}-{2308,3536,0,1,4}-{2307,3538,0,1,1}-{2325,3551,0,1,3}-{2316,3559,0,1,1}-{2312,3559,0,1,1}-{2310,3572,0,1,3}-{2334,3552,0,1,4}-{2308,3582,0,1,2}-{2363,3579,0,1,1}-{2363,3577,0,1,1}-{2350,3568,0,1,1}-{2352,3561,0,1,1}-{2346,3547,0,1,7}-{2347,3546,0,1,3}-{2363,3541,0,1,1}-{2362,3536,0,1,2}-{2350,3526,0,1,7}-{2350,3521,0,1,4}-{2351,3562,0,1,0}-{2310,3574,0,1,6}'), +(5093, '{2375,3607,0,0,0}'), +(5098, '{2372,3592,0,1,5}-{2370,3587,0,1,3}-{2371,3586,0,1,6}-{2376,3582,0,1,6}-{2378,3582,0,1,1}-{2383,3582,0,1,5}-{2393,3590,0,1,6}'), +(5099, '{2365,3597,0,1,5}-{2369,3588,0,1,4}-{2366,3577,0,1,4}-{2372,3573,0,1,1}-{2377,3584,0,1,1}-{2385,3590,0,1,3}-{2388,3598,0,1,3}'), +(5100, '{2369,3579,0,1,5}-{2373,3575,0,1,1}-{2390,3588,0,1,4}'), +(5103, '{2733,3777,0,1,6}-{2731,3784,0,1,4}-{2735,3790,0,1,6}-{2741,3783,0,1,2}-{2738,3790,0,1,1}-{2731,3783,0,1,1}-{2724,3791,0,1,4}'), +(5104, '{2551,2890,0,0,1}-{2541,2899,0,0,0}-{2564,2896,0,0,4}-{2571,2882,0,1,1}-{2552,2910,0,0,0}-{2573,2900,0,1,3}-{2558,2881,0,0,0}-{2543,2899,0,0,0}-{2545,2925,0,0,0}-{2549,2905,0,1,3}'), +(5105, '{2780,3017,0,0,0}-{2766,3013,0,0,0}-{2785,3006,0,0,0}-{2775,2996,0,0,0}'), +(5109, '{3443,2902,0,1,3}'), +(5110, '{2566,3084,0,1,6}'), +(5111, '{2569,3083,0,1,1}'), +(5113, '{2525,2916,0,1,5}'), +(5114, '{3411,3076,0,1,6}-{3415,3075,0,1,1}-{3406,3093,0,1,3}-{3413,3078,0,1,1}-{3403,3093,0,1,1}-{3412,3081,0,1,3}-{3405,3099,0,1,3}-{3405,3102,0,1,0}-{3406,3098,0,1,4}-{3401,3099,0,1,7}-{3405,3093,0,1,4}-{3404,3085,0,1,5}-{3402,3094,0,1,6}-{3399,3096,0,1,1}-{3405,3088,0,1,3}-{3411,3088,0,1,2}'), +(5115, '{2451,3219,0,1,3}-{2448,3221,0,1,3}-{2476,3236,0,1,3}-{2450,3226,0,1,6}-{2474,3239,0,1,0}-{2470,3240,0,1,2}-{2468,3243,0,1,0}-{2455,3219,0,1,6}-{2449,3225,0,1,7}-{2445,3226,0,1,2}-{2467,3241,0,1,1}-{2452,3221,0,1,3}-{2473,3235,0,1,7}-{2472,3241,0,1,4}-{2475,3237,0,1,3}'), +(5116, '{3291,3675,0,1,6}-{3293,3678,0,1,1}-{3302,3671,0,1,0}-{3299,3666,0,1,5}-{3319,3662,0,1,2}-{3309,3661,0,1,5}-{3321,3661,0,1,1}-{3298,3672,0,1,0}-{3316,3657,0,1,4}-{3302,3667,0,1,1}-{3302,3666,0,1,3}-{3315,3663,0,1,1}'), +(5117, '{3537,3449,0,1,2}-{3535,3447,0,1,6}-{3539,3447,0,1,2}-{3533,3446,0,1,1}-{3549,3439,0,1,4}-{3547,3439,0,1,7}-{3549,3439,0,1,4}'), +(5120, '{2326,3488,0,1,0}-{2325,3483,0,1,0}-{2315,3482,0,1,0}-{2336,3491,0,1,0}'), +(5125, '{2316,3501,0,0,0}'), +(5138, '{2607,3264,0,0,0}'), +(5139, '{2607,3260,0,0,0}'), +(5146, '{3205,3263,0,0,0}-{2925,3324,0,1,0}'), +(5147, '{3207, 3270, 0, 1, 0}'), +(5148, '{3229,3347,0,1,1}-{3238,3347,0,1,1}'), +(5149, '{3233,3350,0,1,0}'), +(5156, '{3203,3262,0,1,5}'), +(5157, '{3205,3262,0,1,1}'), +(5160, '{3205,3270,0,1,4}-{3249,3345,0,1,5}'), +(5161, '{3210,3273,0,1,6}-{3233,3340,0,1,5}-{3241,3344,0,1,3}-{2926,3326,0,1,6}-{2924,3324,0,1,1}'), +(5164, '{2410,4456,0,1,1}-{2415,4429,0,1,2}'), +(5168, '{3207,3260,0,1,3}-{3197,3268,0,1,1}'), +(5171, '{2860,10054,1,0,0}'), +(5173, '{2769,3611,0,1,7}-{2768,3607,0,1,6}-{2764,3612,0,1,2}-{2763,3608,0,1,6}-{2762,3611,0,1,4}-{2765,3606,0,1,0}'), +(5199, '{3093,3357,0,0,0}'), +(5200, '{3099,3369,0,1,1}'), +(5202, '{3621,3528,0,1,4}'), +(5291, '{3300,2792,0,0,6}-{3282,2807,0,0,6}-{3285,2811,0,0,1}-{3283,2772,0,1,5}-{3281,2771,0,1,7}-{3283,2776,0,1,6}-{3278,2770,0,1,6}'), +(5298, '{2499,3286,0,1,6}'), +(5300, '{2500,3283,0,1,0}'), +(5303, '{2506,3284,0,1,6}'), +(5310, '{3212,3682,0,1,0}-{3228,3680,0,1,6}-{3230,3683,0,1,1}-{3234,3692,0,1,5}'), +(5311, '{3231,3673,0,1,0}-{3225,3677,0,1,3}-{3229,3689,0,1,4}-{3239,3681,0,1,4}-{3236,3694,0,1,6}'), +(5312, '{3210,3667,0,1,4}-{3217,3688,0,1,4}-{3241,3694,0,1,3}'), +(5313, '{3224,3686,0,1,5}-{3243,3688,0,1,1}-{3242,3687,0,1,0}'), +(5314, '{2588,9491,0,1,3}-{2585,9492,0,1,3}-{2586,9491,0,1,5}-{2591,9492,0,1,3}'), +(5316, '{2497,3292,0,1,3}'), +(5318, '{2511,3287,0,1,3}'), +(5323, '{3221,3693,0,1,6}'), +(5324, '{3221,3682,0,1,4}'), +(5325, '{3125,3627,0,1,6}-{3232,3698,0,1,7}'), +(5326, '{3229,3683,0,1,0}'), +(5327, '{3224,3671,0,1,6}'), +(5332, '{3102,3571,0,1,3}-{2855,9571,0,1,0}'), +(5333, '{3100,3560,0,1,4}-{3108,3545,0,1,2}-{2860,9571,0,1,7}'), +(5334, '{3108,3533,0,1,1}-{2860,9569,0,1,6}'), +(5337, '{3100,3563,0,1,1}-{2832,9656,0,1,6}-{2846,3250,0,1,7}-{2834,3233,0,1,5}-{3003,10347,0,1,7}-{3003,10350,0,1,6}-{3003,10357,0,1,4}-{2996,10343,0,1,3}-{2993,10346,0,1,4}-{2995,3938,0,1,4}'), +(5338, '{3119,3565,0,1,1}-{2838,9648,0,1,5}-{2831,9654,0,1,1}-{2843,3248,0,1,1}-{2840,3240,0,1,3}-{2994,10349,0,1,5}-{2998,10350,0,1,0}-{3003,10350,0,1,4}'), +(5339, '{3095,3554,0,1,4}-{2831,9655,0,1,7}-{2844,3239,0,1,0}'), +(5340, '{3112,3573,0,1,6}-{2833,9655,0,1,6}-{2848,3246,0,1,3}'), +(5341, '{2840,9633,0,1,1}-{2844,9634,0,1,6}-{2842,9637,0,1,3}'), +(5345, '{2501,3294,0,1,3}'), +(5349, '{3099,3354,1,1,3}'), +(5350, '{3116,3367,1,1,3}'), +(5351, '{3110,3358,1,1,1}'), +(5352, '{3121,3359,1,1,4}'), +(5355, '{2873,2950,0,0,0}-{2876,2951,0,0,0}'), +(5356, '{2877,2958,0,0,0}'), +(5357, '{2876,2958,0,0,0}'), +(5358, '{2874,2954,0,0,6}'), +(5361, '{3176,5543,0,1,3}-{3191,5542,0,1,4}-{1757,5358,0,1,5}-{1760,5357,0,1,5}-{1755,5352,0,1,5}-{1751,5342,0,1,3}-{1745,5342,0,1,6}-{1739,5342,0,1,3}-{1737,5344,0,1,7}-{1739,5347,0,1,6}-{1740,5350,0,1,5}-{1739,5355,0,1,3}-{1747,5363,0,1,4}-{1749,5363,0,1,4}-{1743,5360,0,1,3}-{1739,5356,0,1,0}-{3175,5543,0,1,2}-{3178,5541,0,1,2}-{3187,5542,0,1,3}-{3192,5545,0,1,2}-{3192,5542,0,1,3}-{3179,5549,0,1,6}-{2386,9745,0,1,1}-{2385,9748,0,1,1}-{2389,9746,0,1,1}-{2390,9751,0,1,1}-{2306,9760,0,1,1}-{2395,9757,0,1,1}-{2397,9756,0,1,1}-{2399,9758,0,1,1}-{2385,9762,0,1,1}-{2382,9759,0,1,1}-{2385,9757,0,1,1}-{2388,9759,0,1,1}-{2393,9768,0,1,1}-{2394,9741,0,1,1}'), +(5362, '{1774,5361,0,1,3}-{1776,5350,0,1,3}-{1772,5342,0,1,1}-{1772,5336,0,1,4}-{1778,5328,0,1,7}-{1761,5334,0,1,4}-{1754,5337,0,1,7}-{1749,5331,0,0,1}'), +(5363, '{1781,5340,1,1,5}-{1782,5356,1,1,1}-{1767,5343,1,1,6}-{1761,5338,1,1,3}-{1767,5332,1,1,6}-{1757,5326,1,1,7}-{1784,5329,1,1,1}'), +(5364, '{1765,5344,0,1,3}'), +(5365, '{2354,5191,0,1,4}-{2351,5191,0,1,5}'), +(5366, '{2357,5196,0,1,2}-{2356,5188,0,1,4}-{2343,5195,0,1,6}-{2335,5202,0,1,3}-{2323,5211,0,1,1}'), +(5367, '{2312,5189,0,1,7}'), +(5369, '{2345,5195,0,1,3}-{2264,5136,0,1,1}-{2323,5227,0,1,5}-{2319,5223,0,1,6}'), +(5370, '{2347,5195,0,1,3}-{2323,5225,0,1,3}-{2319,5227,0,1,0}-{2323,5227,0,1,3}-{2318,5227,0,1,0}-{2326,5227,0,1,6}'), +(5371, '{2356,5204,0,1,1}-{2324,5223,0,1,1}'), +(5375, '{2029,5236,0,1,6}-{2031,5235,0,1,1}-{2029,5230,0,1,3}'), +(5376, '{2031,5233,0,1,1}'), +(5377, '{2004,5189,0,1,3}-{2002,5207,0,1,3}-{2009,5199,0,1,5}-{2004,5203,0,1,6}'), +(5378, '{1993,5192,0,1,5}-{1999,5190,0,1,6}-{1989,5187,0,1,4}-{2008,5205,0,1,4}'), +(5379, '{1952,5192,0,1,5}-{1995,5240,0,1,5}-{1944,5152,0,1,2}-{2010,5186,0,1,4}-{2023,5190,0,1,1}'), +(5380, '{1952,5192,0,1,2}-{2028,5192,0,1,0}'), +(5383, '{3194,4569,0,0,0}'), +(5384, '{3165,4598,0,0,0}-{3167,4577,0,0,0}'), +(5385, '{3191,4595,1,1,1}-{3191,4601,1,1,2}'), +(5386, '{3143,4595,0,1,1}-{3145,4598,0,1,3}-{3182,4577,0,1,1}-{3187,4578,0,1,0}-{3158,4589,1,1,7}-{3194,4599,1,1,4}'), +(5387, '{3158,4584,0,1,4}-{3159,4577,0,1,6}-{3169,4587,0,1,1}-{3152,4569,1,1,1}'), +(5388, '{3156,4567,2,1,0}'), +(5389, '{3157,4568,0,1,6}-{3185,4562,0,1,3}'), +(5390, '{3182,4562,0,1,3}-{3185,4560,0,1,3}'), +(5391, '{3158,4552,0,1,4}-{3163,4569,0,1,1}-{3177,4549,0,1,3}-{3184,4550,0,1,3}-{3158,4560,1,1,4}-{3174,4566,1,1,1}-{3195,4577,1,1,6}'), +(5393, '{3146,4596,0,1,1}-{3163,4598,0,1,3}-{3155,4591,1,1,3}'), +(5394, '{3167,4589,0,1,6}-{3172,4598,0,1,1}-{2677,9688,0,1,1}-{2676,9679,0,1,4}-{2669,9681,0,1,1}'), +(5395, '{3141,4598,0,1,3}-{3170,4592,0,1,6}-{3144,4589,1,1,3}'), +(5396, '{3145,4583,1,1,0}'), +(5397, '{3155,4583,0,1,3}-{3176,4576,1,1,3}'), +(5398, '{3145,4574,1,1,3}-{3182,4586,1,1,3}'), +(5399, '{3140,4557,2,1,4}-{3188,4578,2,1,1}'), +(5400, '{3175,4579,1,1,6}-{3142,4560,2,1,3}-{3159,4569,2,1,1}'), +(5401, '{3151,4573,1,1,4}'), +(5402, '{3154,4559,0,1,6}-{3171,4571,1,1,6}-{3179,4586,1,1,1}'), +(5403, '{3141,4557,0,1,4}-{3182,4577,2,1,6}'), +(5404, '{3143,4555,0,1,4}-{3144,4549,1,1,4}-{3190,4587,1,1,1}-{3186,4576,2,1,3}'), +(5405, '{3163,4559,0,1,4}-{3146,4565,1,1,3}-{3195,4582,1,1,6}'), +(5406, '{3159,4603,1,1,1}'), +(5407, '{3141,4547,1,1,3}'), +(5408, '{3170,4559,1,1,4}'), +(5409, '{3173,4550,0,1,6}-{3190,4551,0,1,2}'), +(5410, '{3190,4561,0,1,5}'), +(5413, '{3187,5450,0,1,6}-{3177,5453,0,1,6}'), +(5414, '{3176,5454,0,1,3}-{3182,5447,0,1,3}'), +(5423, '{3212,3263,0,0,0}'), +(5439, '{3017,3277,0,0,0}'), +(5445, '{2596,3269,0,1,4}-{2571,3907,0,1,7}-{2571,3907,0,1,3}-{2569,3908,0,1,3}-{2571,3908,0,1,3}-{2572,3906,0,1,6}'), +(5478, '{2407,3803,0,1,3}'), +(5479, '{2407,3803,0,1,3}'), +(5480, '{2406,3803,0,1,3}'), +(5483, '{2395,3796,0,1,2}'), +(5484, '{2418,3816,0,1,3}'), +(5485, '{2393,3796,0,1,2}'), +(5486, '{2396,3805,0,1,3}'), +(5487, '{2417,3815,0,1,3}'), +(5488, '{2416,3800,0,0,0}'), +(5489, '{2372,3801,2,0,3}'), +(5490, '{2364,3800,2,0,4}'), +(5493, '{2391,3800,0,1,5}'), +(5494, '{2416,3808,0,1,5}'), +(5495, '{2406,3813,0,1,3}'), +(5496, '{2402,3800,0,1,4}'), +(5499, '{2403,3807,0,1,4}'), +(5500, '{2395,3812,0,2,2}'), +(5501, '{2408,3816,0,1,3}'), +(5502, '{2409,3814,0,1,3}'), +(5504, '{2336,3799,0,0,4}'), +(5505, '{2334,3800,0,0,4}'), +(5506, '{2334,3798,0,0,4}'), +(5507, '{2311,3781,0,0,1}'), +(5508, '{2646,3710,0,0,4}'), +(5509, '{2336,3808,0,0,6}'), +(5510, '{2333,3804,0,1,1}'), +(5511, '{2327,3794,0,1,6}'), +(5512, '{2319,3795,0,1,3}'), +(5513, '{2352,3797,0,1,2}'), +(5514, '{2333,3795,1,1,4}'), +(5515, '{2330,3799,1,1,3}'), +(5516, '{2329,3808,1,1,4}'), +(5518, '{2338,3798,0,0,1}'), +(5519, '{2338,3800,0,0,6}'), +(5520, '{2338,3810,0,0,3}'), +(5529, '{2323,3790,0,1,1}-{2323,3795,0,1,0}-{2322,3795,0,1,0}-{2317,3794,0,1,6}-{2317,3790,0,1,3}-{2321,3792,0,1,6}-{2327,3796,0,1,7}-{2319,3791,0,1,6}'), +(5531, '{3323,3138,1,1,6}'), +(5532, '{3320,3138,0,1,3}'), +(5533, '{2904,5460,0,1,4}'), +(5534, '{2900,5455,0,1,1}'), +(5535, '{2903,5449,0,1,4}'), +(5536, '{2905,5451,0,1,1}'), +(5537, '{2905,5457,0,1,4}'), +(5538, '{2912,5455,0,1,3}'), +(5539, '{2922,5464,0,1,1}'), +(5540, '{2924,5462,0,1,4}'), +(5541, '{2924,5458,0,1,4}'), +(5542, '{2930,5458,0,1,1}'), +(5544, '{2931,5469,0,1,3}'), +(5545, '{2925,5471,0,1,1}'), +(5546, '{2931,5475,0,1,1}'), +(5547, '{2907,5486,0,1,6}'), +(5548, '{2907,5492,0,1,6}'), +(5549, '{2910,5491,0,1,6}'), +(5550, '{2915,5483,0,1,1}'), +(5551, '{2922,5486,0,1,4}'), +(5552, '{2921,5493,0,1,4}'), +(5553, '{2899,5468,0,1,4}'), +(5554, '{2894,5470,0,1,3}'), +(5555, '{2898,5478,0,1,4}'), +(5556, '{2896,5482,0,1,3}'), +(5557, '{2894,5483,0,1,4}'), +(5558, '{2894,5485,0,1,3}'), +(5562, '{2913,5462,0,0,0}-{2900,5458,0,0,0}-{2908,5455,0,0,0}-{2910,5455,0,0,0}-{2913,5452,0,0,0}-{2914,5453,0,0,0}'), +(5563, '{2911,5474,0,0,0}'), +(5574, '{2836,3066,0,0,0}'), +(5576, '{3072,3336,0,0,0}-{3063,3348,0,0,0}'), +(5608, '{3786,2827,2,0,0}'), +(5609, '{3786,2824,1,0,0}'), +(5610, '{3785,2827,0,0,0}'), +(5611, '{3784,2824,0,0,0}'), +(5614, '{3779,2826,0,0,0}-{3789,2817,0,0,0}-{3794,2821,0,0,0}-{3808,2823,0,0,0}-{3812,2861,0,0,0}-{3813,2822,0,0,0}-{3818,2862,0,0,0}-{3819,2870,0,0,0}-{3821,2824,0,0,0}-{3831,2828,0,0,0}'), +(5627, '{3808,2845,0,0,0}-{3812,2846,0,0,0}-{3815,2844,0,0,3}-{3819,2839,0,0,0}-{3819,2851,0,0,0}-{3819,2838,1,0,0}-{3823,2836,1,0,0}-{3823,2846,1,0,0}'), +(5628, '{3810,2843,0,0,0}-{3813,2844,0,0,0}-{3821,2837,0,0,0}-{3820,2840,1,0,0}-{3820,2851,1,0,0}-{3823,2839,1,0,0}'), +(5629, '{3811,2826,0,0,0}'), +(5631, '{3827,2833,0,0,0}'), +(5633, '{3815,2859,0,0,0}'), +(5634, '{3793,2851,0,0,0}'), +(5635, '{3784,2843,0,0,0}'), +(5637, '{3803,2843,0,0,0}'), +(5638, '{3810,2833,0,0,0}'), +(5639, '{3824,2857,0,0,0}'), +(5640, '{3817,2824,0,0,0}'), +(5641, '{3799,2855,0,0,0}'), +(5642, '{3796,2858,0,0,0}'), +(5644, '{3795,2845,0,0,3}'), +(5646, '{3792,2830,0,0,0}'), +(5647, '{3803,2872,2,0,0}'), +(5650, '{3800,2835,0,0,0}'), +(5656, '{3794,2873,1,0,0}'), +(5658, '{3804,2873,1,0,0}'), +(5659, '{3805,2874,2,0,0}'), +(5661, '{3794,2874,3,0,0}'), +(5665, '{3803,2848,0,0,0}'), +(5668, '{3787,2824,0,0,0}'), +(5669, '{3787,2827,0,0,0}'), +(5670, '{3786,2827,1,0,0}'), +(5671, '{3788,2826,1,0,0}'), +(5672, '{3788,2825,2,0,0}'), +(5750, '{3290,5544,0,1,4}-{3270,5552,0,1,1}-{3274,5547,0,1,7}'), +(5752, '{2711,5331,0,0,0}'), +(5753, '{2697,5332,0,0,0}'), +(5755, '{2723,5336,0,0,0}'), +(5756, '{2702,5352,1,0,0}'), +(5757, '{2743,5358,0,0,0}'), +(5758, '{2693,5332,0,0,0}-{2729,5329,0,0,0}'), +(5761, '{2725,5349,0,0,0}'), +(5764, '{2712,5342,0,0,0}'), +(5765, '{2694,5333,0,0,0}'), +(5766, '{2701,5352,1,0,0}'), +(5767, '{2695,5331,0,0,0}-{2719,5331,0,0,0}'), +(5770, '{2717,5359,0,0,0}'), +(5771, '{2722,5333,0,0,0}'), +(5772, '{2716,5359,0,0,0}'), +(5776, '{2699,5349,0,0,4}'), +(5777, '{2699,5348,0,0,4}'), +(5780, '{2722,5313,0,0,0}'), +(5781, '{2723,5321,0,0,0}'), +(5782, '{2742,5339,1,0,0}'), +(5783, '{2701,5348,0,0,0}'), +(5785, '{2726,5372,1,0,0}'), +(5786, '{2712,5369,1,0,0}'), +(5787, '{2704,5366,0,0,0}'), +(5789, '{2718,5313,0,0,0}'), +(5790, '{2715,5313,0,0,0}'), +(5794, '{2712,5321,0,0,0}'), +(5796, '{2711,5314,0,0,0}'), +(5798, '{2717,5315,0,1,2}'), +(5799, '{2730,5365,1,0,0}'), +(5800, '{2719,5335,0,1,1}-{2747,5373,0,1,3}'), +(5801, '{2730,5333,0,1,2}'), +(5802, '{2744,5353,1,0,0}'), +(5803, '{2741,5344,1,0,0}'), +(5804, '{2744,5333,1,0,0}'), +(5805, '{2743,5345,1,0,0}'), +(5806, '{2746,5333,1,0,0}'), +(5807, '{2741,5334,1,0,0}'), +(5809, '{2741,5341,1,0,0}'), +(5811, '{2744,5342,1,0,0}'), +(5813, '{2742,5338,1,0,0}'), +(5815, '{2743,5341,1,0,0}'), +(5817, '{2744,5338,1,0,0}'), +(5819, '{2744,5336,1,0,0}'), +(5821, '{2740,5334,1,0,0}'), +(5827, '{2699,5329,0,0,0}-{2699,5335,0,0,0}-{2747,5342,0,0,0}'), +(5828, '{2697,5316,0,0,0}'), +(5832, '{2730,5366,1,0,0}'), +(5833, '{3267,3334,0,1,3}'), +(5834, '{3208,3496,0,1,6}'), +(5837, '{3285,3468,0,0,4}'), +(5839, '{3183,5205,0,0,0}'), +(5840, '{3159,5211,0,0,0}'), +(5841, '{3176,5215,0,0,0}'), +(5842, '{3115,3475,0,1,1}'), +(5843, '{3117,3474,0,1,4}'), +(5844, '{3113,3473,0,1,7}'), +(5845, '{3115,3475,0,1,2}'), +(5846, '{3110,3471,0,0,2}'), +(5847, '{3115,3476,0,1,6}'), +(5848, '{3116,3475,0,1,1}'), +(5849, '{3112,3473,0,1,3}'), +(5850, '{3115,3476,0,1,4}'), +(5851, '{3119,3474,0,1,5}'), +(5869, '{2744,5344,0,0,0}'), +(5887, '{2737,5351,1,0,0}'), +(5909, '{3224,3402,0,1,4}'), +(5910, '{3230,3401,0,0,0}-{3284,3491,0,1,1}'), +(5916, '{3250,3429,0,1,5}'), +(5917, '{3200,3399,0,0,4}-{3262,3410,0,0,3}-{3176,3431,0,1,5}-{3261,3424,0,1,2}'), +(5918, '{3233,3394,0,0,7}-{3271,3399,0,1,3}'), +(5919, '{3205,3379,0,1,6}-{3211,3381,0,1,3}-{3172,3430,0,1,2}-{3175,3416,1,1,6}-{3175,3404,1,1,7}'), +(5920, '{3211,3378,0,1,0}-{3272,3429,0,1,1}-{3274,3427,0,1,3}-{3220,3461,0,1,3}-{3221,3464,0,1,4}-{3213,3466,0,1,1}-{3214,3461,0,1,5}-{3215,3464,0,1,0}-{3208,3467,0,1,6}-{3209,3460,0,1,4}-{3205,3463,0,1,4}'), +(5923, '{3224,3394,1,1,6}'), +(5924, '{3227,3396,0,1,1}'), +(5925, '{3220,3433,0,1,5}'), +(5926, '{3229,3392,0,1,6}-{3184,3386,0,1,4}-{3247,9775,0,1,3}-{3185,3391,0,1,5}-{3240,9770,0,1,4}-{3235,9766,0,1,3}'), +(5927, '{3250,9776,0,1,3}'), +(5928, '{3249,9772,0,1,5}'), +(5929, '{3245,9772,0,1,7}-{3239,9766,0,1,2}'), +(5930, '{3257,3454,2,0,0}'), +(5932, '{3255,3442,0,0,0}'), +(5933, '{3254,3443,0,0,0}'), +(5934, '{3259,3443,0,0,0}'), +(5935, '{3260,3442,0,0,0}'), +(5938, '{3253,3454,0,0,0}'), +(5939, '{3253,3453,1,0,0}'), +(5940, '{3262,3442,1,0,0}'), +(5941, '{3260,3447,0,0,0}'), +(5943, '{3263,3441,0,0,0}'), +(5946, '{3261,3455,0,0,0}'), +(5947, '{3260,3452,0,0,0}-{3261,3451,2,0,0}'), +(5956, '{2659,2664,0,1,3}'), +(5984, '{3263,3452,0,0,0}'), +(5987, '{2891,3455,0,1,0}'), +(5991, '{2966,3466,0,0,0}'), +(5997, '{2862,3511,0,0,0}'), +(5998, '{2971,3473,0,0,0}'), +(6026, '{3489,3490,0,1,3}'), +(6027, '{3493,3472,0,1,4}'), +(6028, '{3497,3497,0,1,2}'), +(6030, '{3496,3476,0,1,2}'), +(6031, '{3511,3482,1,0,0}'), +(6032, '{3502,3487,0,1,1}'), +(6033, '{3484,3478,0,1,4}'), +(6034, '{3502,3493,0,1,3}'), +(6035, '{3486,3488,0,1,3}'), +(6036, '{3499,3474,1,0,0}'), +(6037, '{3499,3477,0,1,3}'), +(6038, '{3490,3472,1,0,0}'), +(6039, '{3483,3495,0,1,4}'), +(6040, '{3498,3472,1,0,0}'), +(6041, '{3479,3492,0,1,4}'), +(6042, '{3479,3498,0,1,4}'), +(6044, '{3505,3491,1,0,0}'), +(6045, '{3479,3498,1,0,0}'), +(6046, '{2835,3509,0,0,1}-{3306,5510,0,1,5}-{3309,5543,0,1,6}'), +(6047, '{2839,3497,0,1,6}-{2845,3502,0,1,0}'), +(6050, '{3291,3081,0,1,7}-{3298,3075,0,1,1}-{3284,3076,0,1,3}-{3266,3072,0,1,1}-{3259,3080,0,1,2}-{3246,3080,0,1,3}-{3252,3069,0,1,1}-{3244,3082,0,1,1}-{3235,3072,0,1,4}-{3242,3059,0,1,7}-{3235,3051,0,1,5}-{3248,3051,0,1,4}-{3257,3055,0,1,3}-{3263,3063,0,1,3}-{3267,3048,0,1,0}-{3253,3040,0,1,6}-{3243,3039,0,1,6}-{3254,3031,0,1,1}-{3243,3035,0,1,5}-{3232,3039,0,1,2}-{3230,3046,0,1,6}-{3219,3033,0,1,3}-{3219,3022,0,1,1}-{3227,3017,0,1,5}-{3235,3012,0,1,4}-{3243,3019,0,1,2}-{3251,3028,0,1,3}'), +(6051, '{3292,3069,0,1,1}-{3285,3071,0,1,1}-{3279,3078,0,1,4}-{3273,3065,0,1,3}-{3288,3066,0,1,6}-{3281,3057,0,1,5}-{3294,3056,0,1,5}-{3305,3064,0,1,3}-{3312,3075,0,1,6}-{3306,3086,0,1,4}-{3272,3082,0,1,4}'), +(6070, '{2589,4313,0,1,6}'), +(6072, '{2426,4442,0,0,0}'), +(6073, '{2424,4436,0,0,0}-{2594,4319,0,1,6}'), +(6074, '{2603,4306,0,1,4}-{2607,4312,0,1,7}-{2610,4319,0,1,6}-{2613,4326,0,1,5}-{2616,4333,0,1,0}-{2619,4340,0,1,6}-{2614,4344,0,1,3}-{2609,4347,0,1,4}-{2605,4347,0,1,4}-{2599,4345,0,1,3}-{2598,4342,0,1,3}-{2597,4339,0,1,3}-{2596,4336,0,1,3}-{2595,4333,0,1,3}-{2594,4330,0,1,4}-{2587,4330,0,1,3}-{2583,4332,0,1,4}-{2579,4335,0,1,3}-{2576,4339,0,1,4}-{2571,4342,0,1,1}-{2569,4332,0,1,4}-{2572,4326,0,1,6}-{2572,4297,0,1,1}-{2585,4291,0,1,3}-{2599,4297,0,1,4}-{2607,4300,0,1,1}-{2614,4301,0,1,6}-{2619,4305,0,1,0}-{2616,4320,0,1,6}-{2613,4327,0,1,0}-{2611,4335,0,1,6}-{2607,4336,0,1,6}-{2581,4322,0,1,1}-{2578,4315,0,1,6}-{2575,4308,0,1,6}-{2572,4301,0,1,4}-{2567,4295,0,1,3}-{2577,4291,0,1,3}-{2587,4298,0,1,3}-{2595,4307,0,1,3}-{2603,4314,0,1,3}'), +(6085, '{3046,3207,1,0,2}'), +(6088, '{2932,3253,0,1,4}-{2936,3249,0,1,2}-{2933,3244,0,1,4}-{2927,3247,0,1,5}-{2925,3256,0,1,0}'), +(6089, '{2932,3249,0,1,0}-{2929,3253,0,1,3}-{2938,3248,0,1,5}'), +(6090, '{2932,3245,0,1,0}-{2934,3246,0,1,3}'), +(6102, '{1762,5329,0,1,1}'), +(6104, '{1751,5326,0,1,1}'), +(6105, '{1767,5355,0,0,6}'), +(6108, '{2854,3385,0,1,0}'), +(6109, '{2526,3215,0,1,6}-{2545,3231,0,1,4}-{2537,3236,0,1,4}'), +(6110, '{2532,3222,0,1,3}-{2533,3209,0,1,4}'), +(6112, '{3238,3247,0,1,0}'), +(6113, '{3232,3280,0,1,4}-{3222,3289,0,1,1}'), +(6114, '{3232,3283,0,1,1}'), +(6115, '{3033,3236,0,1,3}-{3041,3237,0,1,6}-{3035,3234,0,1,7}-{3028,3205,0,1,4}-{3019,3202,0,1,6}-{3026,3203,0,1,1}'), +(6116, '{3030,3244,0,1,0}-{3025,3203,0,1,3}-{3034,3204,0,1,4}'), +(6135, '{3254,3427,0,1,1}'), +(6136, '{3077,3250,0,1,0}'), +(6137, '{2952,3381,0,0,0}'), +(6138, '{2665,3311,0,0,0}'), +(6139, '{2734,3484,0,1,1}'), +(6140, '{2644,2641,0,0,6}'), +(6141, '{2638,2656,0,0,0}'), +(6166, '{1904,4279,0,0,0}'), +(6167, '{1906,4277,0,0,0}'), +(6168, '{1904,4274,0,0,0}'), +(6188, '{1901,4271,0,0,0}-{1909,4271,0,0,0}'), +(6189, '{3016,3516,0,1,7}'), +(6190, '{1906,4270,0,1,0}'), +(6200, '{2947,3366,0,0,1}-{2949,3366,0,0,1}-{2946,3366,0,0,1}-{2948,3366,0,0,1}-{3010,3353,0,0,1}-{3011,3353,0,0,1}-{3012,3353,0,0,1}-{3013,3353,0,0,1}-{3014,3353,0,0,1}-{3015, 3353, 0, 0, 1}-{2945, 3366, 0, 0, 1}'), +(6202, '{2912,3749,0,0,0}'), +(6203, '{2924,5322,2,1,4}'), +(6205, '{2933,5329,2,1,1}'), +(6210, '{2927,5340,2,1,3}-{2884,5325,2,1,3}-{2837,5336,2,1,4}-{2876,5326,2,1,4}-{2898,5306,2,1,5}-{2886,5325,2,1,1}-{2838,5336,2,1,4}-{2919,5345,2,1,5}'), +(6211, '{2920,5353,2,1,4}-{2902,5357,2,1,4}-{2885,5315,2,1,4}-{2898,5313,2,1,2}-{2908,5354,2,1,2}-{2924,5354,2,1,6}-{2925,5352,2,1,3}-{2928,5355,2,1,6}'), +(6212, '{2920,5339,2,1,1}-{2836,5289,2,1,0}-{2869,5287,2,1,1}-{2867,5333,2,1,0}-{2921,5293,1,1,6}-{2877,5321,2,1,1}-{2888,5326,2,1,3}-{2872,5318,2,1,2}-{2894,5286,2,1,7}-{2896,5312,2,1,4}-{2894,5322,2,1,3}-{2836,5349,2,1,2}-{2858,5267,2,1,6}'), +(6213, '{2894,5353,2,1,0}-{2838,5347,2,1,6}-{2872,5318,2,1,4}-{2875,5313,2,1,4}-{2865,5327,2,1,4}-{2886,5293,2,1,5}-{2909,5297,2,1,0}-{2919,5293,3,1,4}-{2843,5352,2,1,4}-{2908,5346,2,1,6}-{2913,5355,2,1,3}-{2916,5345,2,1,1}-{2919,5349,2,1,2}-{2922,5356,2,1,1}-{2927,5354,2,1,6}-{2928,5350,2,1,4}-{2931,5357,2,1,3}-{2911,5338,2,1,6}-{2925,5295,3,1,0}-{2862,5290,2,1,1}-{2919,5293,1,1,5}'), +(6214, '{2919,5284,1,1,0}-{2862,5292,2,1,7}-{2864,5319,2,1,7}-{2828,5337,2,1,6}-{2878,5327,2,1,4}-{2884,5312,2,1,2}-{2883,5320,2,1,0}-{2895,5309,2,1,6}-{2853,5327,2,1,4}-{2854,5345,2,1,2}-{2861,5292,2,1,4}-{2881,5291,2,1,1}-{2892,5328,2,1,1}-{2828,5331,2,1,1}-{2924,5292,3,1,6}-{2918,5281,1,1,1}-{2918,5280,1,1,1}'), +(6215, '{2926,5345,2,1,7}-{2888,5361,2,1,5}-{2856,5349,2,1,1}-{2839,5275,2,1,5}-{2880,5293,2,1,4}-{2886,5313,2,1,3}-{2862,5334,2,1,0}-{2881,5320,2,1,3}-{2886,5325,2,1,2}-{2862,5337,2,1,4}-{2845,5286,2,1,0}-{2889,5322,2,1,4}-{2919,5359,2,1,0}-{2855,5352,2,1,1}-{2923,5357,2,1,6}-{2891,5353,2,1,1}-{2832,5288,2,1,6}'), +(6216, '{2888,5290,2,1,1}-{2865,5306,2,1,3}-{2871,5312,2,1,3}-{2867,5304,2,1,6}-{2871,5281,2,1,1}-{2864,5279,2,1,4}'), +(6217, '{2884,5307,2,1,0}-{2899,5304,2,1,3}-{2915,5270,0,1,5}'), +(6218, '{2906,5347,2,1,6}-{2913,5358,2,1,6}-{2856,5267,2,1,7}-{2911,5268,0,1,4}-{2887,5318,2,1,4}-{2888,5314,2,1,6}-{2859,5328,2,1,6}-{2861,5294,2,1,0}-{2931,5345,2,1,2}-{2903,5353,2,1,4}-{2836,5290,2,1,6}-{2907,5346,2,1,6}-{2921,5351,2,1,2}-{2858,5266,2,1,1}-{2916,5269,0,1,1}-{3044,5347,0,1,2}-{3041,5347,0,1,0}-{3031,5346,0,1,2}-{3023,5346,0,1,6}-{3038,5333,0,1,3}-{3048,5333,0,1,1}-{3054,5345,0,1,3}-{3043,5360,0,1,3}-{3030,5362,0,1,3}-{3040,5341,0,1,4}'), +(6219, '{2915,5340,2,1,6}'), +(6220, '{2931,5356,2,1,3}-{2846,5286,2,1,5}-{2937,5351,2,1,3}-{2848,5268,2,1,4}'), +(6221, '{2906,5354,2,1,7}-{2886,5354,2,1,5}-{2885,5352,2,1,2}-{2901,5362,2,1,1}-{2914,5344,2,1,3}-{2918,5343,2,1,2}-{2918,5361,2,1,0}-{2923,5345,2,1,3}-{2924,5352,2,1,4}'), +(6222, '{2831,5301,2,1,4}'), +(6229, '{2841,5285,2,1,3}-{2841,5289,2,1,1}-{2856,5264,2,1,5}-{2842,5282,2,1,6}'), +(6230, '{2843,5265,2,1,4}-{2851,5273,2,1,3}-{2846,5262,2,1,4}'), +(6231, '{2870,5265,2,1,0}-{2869,5266,2,1,7}-{2855,5273,2,1,2}-{2840,5263,2,1,3}-{2831,5285,2,1,4}'), +(6232, '{2872,5261,2,1,4}-{2863,5308,2,1,1}-{2872,5288,2,1,4}'), +(6233, '{2861,5261,2,1,0}-{2852,5264,2,1,0}-{2865,5263,2,1,6}'), +(6234, '{2862,5313,2,1,3}-{2839,5293,2,1,0}-{2842,5264,2,1,4}'), +(6235, '{2864,5270,2,1,3}-{2869,5314,2,1,3}-{2859,5303,2,1,4}-{2863,5293,2,1,7}-{2862,5286,2,1,1}'), +(6236, '{2854,5271,2,1,6}-{2872,5267,2,1,0}-{2858,5269,2,1,5}'), +(6237, '{2840,5290,2,1,6}-{2841,5269,2,1,7}-{2833,5292,2,1,3}'), +(6238, '{2874,5308,2,1,3}-{2851,5276,2,1,2}-{2864,5268,2,1,2}'), +(6239, '{2875,5298,2,1,4}-{2846,5288,2,1,0}-{2845,5281,2,1,1}-{2824,5216,2,1,7}'), +(6240, '{2837,5269,2,1,2}-{2860,5300,2,1,1}-{2852,5311,2,1,4}-{2879,5286,2,1,5}'), +(6241, '{2863,5272,2,1,6}-{2850,5269,2,1,7}'), +(6242, '{2836,5272,2,1,1}'), +(6243, '{2848,5275,2,1,0}-{2869,5304,2,1,4}-{2850,5292,2,1,1}-{2857,5300,2,1,3}-{2874,5287,2,1,4}'), +(6244, '{2847,5299,2,1,6}-{2844,5283,2,1,6}'), +(6245, '{2861,5299,2,1,4}-{2833,5290,2,1,1}-{2851,5262,2,1,0}'), +(6246, '{2855,5311,2,1,1}-{2872,5299,2,1,0}-{2872,5315,2,1,1}-{2856,5284,2,1,4}'), +(6247, '{2894,5265,0,1,2}'), +(6254, '{2917,5272,0,1,7}-{2898,5295,2,1,4}-{2881,5283,2,1,1}-{2883,5311,2,1,2}-{2894,5301,2,1,3}-{2882,5284,2,1,5}-{2890,5292,2,1,4}-{2896,5296,2,1,2}-{2905,5299,2,1,3}-{2905,5301,2,1,5}-{2921,5283,3,1,1}-{2925,5292,3,1,7}-{2906,5299,0,1,6}-{2910,5297,0,1,6}-{2915,5270,0,1,2}-{2910,5269,0,1,5}'), +(6255, '{2922,5290,1,1,5}-{2880,5304,2,1,1}-{2884,5311,2,1,2}-{2885,5311,2,1,2}-{2887,5312,2,1,1}-{2886,5313,2,1,0}-{2895,5310,2,1,1}-{2884,5280,2,1,3}-{2885,5293,2,1,6}-{2886,5291,2,1,6}-{2894,5285,2,1,3}-{2893,5286,2,1,7}-{2905,5292,2,1,4}-{2908,5297,2,1,4}-{2910,5297,2,1,6}-{2897,5308,2,1,4}-{2919,5299,3,1,1}-{2921,5292,3,1,5}-{2924,5288,3,1,0}-{2925,5287,3,1,1}-{2908,5300,0,1,6}-{2907,5294,0,1,6}-{2923,5293,1,1,5}-{2919,5298,1,1,1}-{2922,5291,1,1,6}-{2917,5285,1,1,0}-{2905,5295,0,1,6}'), +(6256, '{2922,5285,1,1,0}-{2886,5295,2,1,1}-{2891,5300,2,1,1}-{2889,5310,2,1,2}-{2887,5299,2,1,6}-{2891,5297,2,1,3}-{2884,5283,2,1,3}-{2885,5286,2,1,3}-{2886,5294,2,1,1}-{2896,5286,2,1,4}-{2908,5302,2,1,1}-{2919,5290,3,1,1}-{2923,5298,3,1,4}-{2924,5298,3,1,4}-{2911,5298,0,1,6}-{2919,5293,1,1,1}-{2917,5294,1,1,2}-{2923,5284,1,1,1}-{2916,5267,0,1,2}'), +(6257, '{2913,5267,0,1,6}-{2892,5291,2,1,4}-{2895,5313,2,1,6}-{2879,5329,2,1,5}-{2886,5311,2,1,0}-{2888,5305,2,1,3}-{2877,5293,2,1,5}-{2894,5284,2,1,0}-{2900,5287,2,1,0}-{2905,5302,2,1,1}-{2898,5307,2,1,6}-{2918,5292,3,1,3}-{2924,5286,3,1,0}-{2924,5292,3,1,1}-{2924,5297,3,1,3}-{2926,5285,3,1,1}-{2921,5289,1,1,6}-{2923,5294,1,1,0}-{2922,5285,1,1,3}-{2915,5273,0,1,7}-{2915,5271,0,1,4}'), +(6258, '{2918,5289,1,1,6}-{2884,5287,2,1,0}-{2895,5294,2,1,4}-{2897,5307,2,1,7}-{2918,5298,3,1,5}-{2917,5291,1,1,4}-{2916,5269,0,1,2}'), +(6259, '{2890,5304,2,1,7}-{2886,5299,2,1,3}-{2891,5297,2,1,5}-{2890,5291,2,1,3}-{2900,5286,2,1,7}-{2905,5303,2,1,1}-{2918,5282,3,1,6}-{2924,5295,3,1,2}-{2905,5297,0,1,6}-{2920,5291,1,1,5}-{2930,5290,0,1,6}'), +(6260, '{2870,5359,2,1,4}'), +(6262, '{2873,5356,0,1,1}-{2866,5358,2,1,6}'), +(6264, '{2870,5354,2,1,4}'), +(6266, '{2868,5362,2,1,3}'), +(6267, '{2851,5310,2,1,0}'), +(6268, '{2856,5355,2,1,7}-{2838,5358,2,1,2}-{2841,5319,2,1,7}-{2856,5331,2,1,2}-{2854,5325,2,1,2}-{2873,5323,2,1,6}-{2860,5321,2,1,7}-{2868,5334,2,1,0}-{2856,5328,2,1,6}-{2855,5332,2,1,1}-{2845,5339,2,1,5}-{2831,5320,2,1,3}-{2847,5334,2,1,1}-{2858,5349,2,1,2}-{2829,5339,2,1,6}-{2856,5361,2,1,5}-{2839,5360,2,1,6}'), +(6269, '{2846,5351,2,1,3}-{2846,5339,2,1,2}-{2840,5327,2,1,1}-{2836,5345,2,1,7}-{2834,5328,2,1,2}-{2857,5359,2,1,4}-{2846,5357,2,1,3}'), +(6270, '{2845,5336,2,1,2}-{2848,5344,2,1,6}-{2842,5328,2,1,6}-{2844,5349,2,1,2}-{2836,5323,2,1,4}-{2832,5353,2,1,6}-{2848,5358,2,1,7}'), +(6271, '{2840,5330,2,1,0}-{2859,5328,2,1,6}-{2873,5317,2,1,3}-{2862,5332,2,1,2}-{2869,5332,2,1,6}'), +(6272, '{2838,5326,2,1,4}-{2870,5313,2,1,1}-{2865,5332,2,1,0}-{2838,5334,2,1,6}-{2837,5353,2,1,7}'), +(6273, '{2832,5324,2,1,7}-{2864,5325,2,1,2}-{2873,5325,2,1,7}-{2873,5324,2,1,7}-{2865,5336,2,1,6}-{2840,5333,2,1,6}-{2836,5336,2,1,4}-{2838,5354,2,1,6}'), +(6274, '{2858,5325,2,1,4}-{2873,5319,2,1,6}-{2872,5307,2,1,5}-{2867,5333,2,1,6}-{2866,5333,2,1,0}-{2839,5331,2,1,5}-{2837,5355,2,1,6}'), +(6275, '{2865,5340,2,1,1}-{2869,5326,2,1,7}-{2875,5318,2,1,1}-{2875,5314,2,1,1}-{2878,5313,2,1,3}-{2879,5322,2,1,3}-{2859,5317,2,1,6}-{2858,5319,2,1,4}-{2878,5320,2,1,0}-{2863,5337,2,1,7}-{2862,5338,2,1,7}-{2867,5341,2,1,6}-{2852,5312,2,1,2}'), +(6276, '{2856,5360,2,1,7}-{2854,5346,2,1,3}-{2845,5332,2,1,0}-{2845,5344,2,1,3}-{2848,5349,2,1,6}-{2837,5347,2,1,3}-{2835,5324,2,1,2}-{2835,5321,2,1,5}-{2858,5349,2,1,4}-{2830,5339,2,1,3}-{2828,5332,2,1,3}-{2846,5358,2,1,4}-{2855,5356,2,1,7}'), +(6277, '{2843,5341,2,1,3}-{2843,5331,2,1,3}-{2847,5341,2,1,5}-{2852,5350,2,1,1}-{2844,5341,2,1,6}-{2843,5347,2,1,1}-{2836,5325,2,1,6}-{2826,5335,2,1,2}-{2837,5351,2,1,4}-{2845,5353,2,1,3}-{2840,5361,2,1,3}'), +(6278, '{2845,5359,2,1,4}-{2830,5318,2,1,3}-{2848,5342,2,1,0}-{2846,5332,2,1,1}-{2843,5320,2,1,3}-{2838,5329,2,1,1}-{2855,5349,2,1,0}-{2837,5342,2,1,1}-{2792,5280,2,1,6}-{2827,5331,2,1,6}-{2830,5315,2,1,6}-{2845,5352,2,1,6}-{2839,5360,2,1,6}-{2851,5359,2,1,7}-{2860,5353,2,1,6}'), +(6279, '{2857,5315,2,1,6}-{2859,5318,2,1,5}-{2858,5329,2,1,3}-{2879,5326,2,1,4}'), +(6280, '{2869,5332,2,1,6}-{2871,5313,2,1,2}-{2879,5330,2,1,2}-{2877,5327,2,1,0}'), +(6281, '{2865,5316,2,1,2}-{2861,5333,2,1,2}'), +(6282, '{2874,5318,2,1,0}-{2859,5316,2,1,3}-{2878,5329,2,1,2}-{2858,5330,2,1,2}'), +(6283, '{2877,5326,2,1,2}-{2857,5328,2,1,3}-{2861,5315,2,1,7}'), +(6339, '{2547,3277,0,0,0}'), +(6345, '{2518,3275,0,0,0}'), +(6346, '{2799,3186,0,1,7}-{2797,3169,0,0,0}-{2793,3161,0,1,3}'), +(6347, '{2799,3167,0,0,0}-{2787,3188,0,1,1}'), +(6348, '{2793,3158,0,1,3}-{2798,3154,0,1,4}-{2796,3189,0,1,0}'), +(6349, '{2797,3186,0,1,6}-{2793,3161,0,1,0}'), +(6350, '{2798,3182,0,1,7}-{2793,3161,0,1,1}'), +(6357, '{3359,2969,0,1,3}'), +(6362, '{3270,4856,0,1,3}'), +(6363, '{3251,5455,0,1,4}-{3258,5456,0,1,6}-{3257,5451,0,1,6}-{3257,5464,0,1,2}-{3256,5473,0,1,2}-{3244,5469,0,1,1}-{3269,4829,0,1,3}-{3271,4823,0,1,2}-{3283,4809,0,1,3}-{3190,5523,0,1,3}-{3225,5485,0,1,5}-{3219,5528,0,1,2}-{3223,5520,0,1,3}-{3225,5511,0,1,0}-{3236,5511,0,1,6}-{3232,5523,0,1,0}-{3239,5530,0,1,4}-{3233,5546,0,1,3}-{3222,5539,0,1,5}-{3218,5482,0,1,7}-{3219,5486,0,1,4}-{3207,5461,0,1,6}-{3208,5458,0,1,3}-{3194,5530,0,1,3}'), +(6364, '{3271,4809,0,1,3}-{3188,5529,0,1,3}-{3194,5531,0,1,1}-{3222,5486,0,1,3}-{3221,5482,0,1,4}-{3212,5459,0,1,6}-{3210,5462,0,1,2}-{3188,5527,0,1,3}-{3234,5510,0,1,6}'), +(6365, '{3267,4817,0,1,4}-{3290,4803,0,1,3}'), +(6367, '{3276,4808,0,1,3}-{3291,4812,0,1,6}-{3207,5466,0,1,6}-{3223,5462,0,1,1}-{3237,5524,0,1,6}-{3229,5510,0,1,4}'), +(6368, '{3226,5458,0,1,3}-{3222,5470,0,1,6}-{3238,5541,0,1,1}-{3226,5540,0,1,7}-{3222,5522,0,1,7}'), +(6369, '{3268,4825,0,1,6}-{3268,4809,0,1,4}-{3288,4803,0,1,6}-{3298,4810,0,1,4}'), +(6376, '{2925,2976,0,1,1}-{2909,2978,0,1,5}'), +(6377, '{2920,2973,0,1,6}-{2919,2976,0,1,6}-{2910,2978,0,1,7}'), +(6379, '{2894,2995,0,0,0}-{2909,2970,0,0,0}-{3303,5485,0,1,1}-{3320,5494,0,1,4}-{3313,5490,0,1,4}-{3315,5484,0,1,3}-{3323,5471,0,1,6}-{3319,5471,0,1,4}-{3323,5477,0,1,0}-{3310,5484,0,1,4}-{3313,5488,0,1,6}-{3309,5481,0,1,1}-{3320,5495,0,1,0}'), +(6380, '{2883,2994,0,0,0}-{2882,2994,0,0,0}-{3319,5490,0,1,5}-{3298,5486,0,1,3}-{3312,5480,0,1,4}-{3315,5480,0,1,1}-{3308,5482,0,1,2}-{3321,5477,0,1,0}-{3317,5470,0,1,6}-{3324,5472,0,1,6}-{3311,5482,0,1,0}'), +(6383, '{2888,3001,0,0,0}-{2891,3002,0,0,0}-{2890,2998,0,0,0}-{2887,2994,0,0,0}-{2901,2991,0,0,0}-{2905,2990,0,0,0}-{2886,2989,0,0,0}-{2927,2979,0,0,0}-{2926,2973,0,0,0}-{2919,2973,0,0,0}-{2919,2976,0,0,0}-{2920,2979,0,0,0}'), +(6386, '{2683,3326,0,0,0}'), +(6387, '{3275,4808,0,1,3}-{3276,4808,0,1,4}'), +(6388, '{3369,2999,0,1,7}-{3368,2995,0,1,6}-{3362,2997,0,1,3}-{3361,2988,0,1,2}-{3367,2988,0,1,7}-{3379,2983,0,1,1}'), +(6390, '{1707,4814,0,0,6}'), +(6394, '{2703,5366,0,0,0}'), +(6396, '{2791,4279,0,0,0}'), +(6405, '{2799,4260,0,1,0}'), +(6406, '{2765,4267,0,1,0}'), +(6407, '{2802,4246,0,1,0}'), +(6408, '{2770,4238,0,1,0}'), +(6409, '{2787,4262,0,1,0}-{2792,4275,0,1,0}'), +(6410, '{2766,4257,0,1,0}'), +(6416, '{2801,4258,0,1,0}'), +(6417, '{2765,4264,0,1,0}-{2777,4260,0,1,0}'), +(6418, '{2799,4243,0,1,0}'), +(6419, '{2771,4237,0,1,0}'), +(6420, '{2796,4277,0,1,0}'), +(6421, '{2768,4254,0,1,0}'), +(6427, '{2802,4259,0,1,0}'), +(6428, '{2768,4268,0,1,0}'), +(6429, '{2776,4252,0,1,0}-{2805,4242,0,1,0}'), +(6430, '{2769,4236,0,1,0}'), +(6431, '{2792,4260,0,1,0}-{2796,4275,0,1,0}'), +(6432, '{2766,4255,0,1,0}'), +(6438, '{2790,4254,0,1,0}-{2800,4256,0,1,0}'), +(6439, '{2766,4265,0,1,0}'), +(6440, '{2789,4248,0,1,0}-{2802,4244,0,1,0}'), +(6441, '{2771,4241,0,1,0}-{2777,4252,0,1,0}'), +(6442, '{2795,4273,0,1,0}'), +(6443, '{2767,4252,0,1,0}-{2776,4250,0,1,0}'), +(6449, '{2792,4252,0,1,0}-{2800,4254,0,1,0}'), +(6450, '{2764,4266,0,1,0}-{2781,4261,0,1,0}'), +(6451, '{2802,4243,0,1,0}'), +(6452, '{2772,4235,0,1,0}'), +(6453, '{2797,4272,0,1,0}'), +(6454, '{2765,4253,0,1,0}-{2779,4256,0,1,0}'), +(6458, '{2784,4249,0,1,0}'), +(6459, '{2778,4264,0,1,0}-{2784,4252,0,1,0}'), +(6460, '{2783,4251,0,1,0}-{2789,4264,0,1,0}-{2801,4252,0,1,0}'), +(6461, '{2787,4250,0,1,0}-{2791,4249,0,1,0}'), +(6462, '{2785,4248,0,1,0}-{2786,4251,0,1,0}-{2801,4242,0,1,0}'), +(6463, '{2773,4238,0,1,0}-{2779,4248,0,1,0}-{2785,4250,0,1,0}'), +(6464, '{2796,4267,0,1,0}'), +(6465, '{2764,4251,0,1,0}'), +(6482, '{2801,4260,0,0,0}'), +(6483, '{2804,4246,0,0,0}'), +(6484, '{2795,4276,0,0,0}'), +(6485, '{2766,4250,0,0,0}'), +(6486, '{2774,4236,0,0,0}'), +(6487, '{2765,4268,0,0,0}'), +(6488, '{2784,4255,1,0,0}'), +(6489, '{2787,4266,0,0,0}'), +(6498, '{2796,4256,0,1,0}'), +(6499, '{2793,4247,0,1,0}'), +(6500, '{2793,4265,0,1,0}'), +(6501, '{2772,4256,0,1,0}'), +(6502, '{2775,4247,0,1,0}'), +(6503, '{2775,4265,0,1,0}'), +(6521, '{3161,3475,0,0,6}'), +(6522, '{3168,3475,0,0,6}'), +(6523, '{3173,3498,0,0,1}'), +(6524, '{3156,3481,0,0,1}'), +(6525, '{3175,3481,0,0,1}'), +(6526, '{3152,3490,0,0,1}'), +(6527, '{3154,3498,0,0,1}'), +(6528, '{3165,3491,0,0,1}'), +(6529, '{3164,3488,0,0,6}'), +(6530, '{3164,3491,0,0,1}'), +(6531, '{3165,3488,0,0,6}'), +(6532, '{3163,3489,0,0,3}'), +(6533, '{3166,3489,0,0,4}'), +(6534, '{3166,3490,0,0,4}'), +(6535, '{3163,3490,0,0,3}'), +(6538, '{3189,3690,0,0,3}'), +(6731, '{2655,5615,0,1,4}'), +(6750, '{2577,3078,0,1,3}'), +(6773, '{3439,2808,0,0,0}'), +(6774, '{3435,2808,0,0,0}'), +(6776, '{3441,2810,0,0,0}-{3445,2813,0,0,0}'), +(6777, '{3432,2810,0,0,0}'), +(6778, '{3440,2806,0,0,0}'), +(6779, '{3392,2759,0,1,2}-{3408,2763,0,1,7}-{3410,2786,0,1,2}-{3420,2778,0,1,6}-{3427,2792,0,1,6}-{3429,2802,0,1,4}'), +(6786, '{3409,2812,1,0,0}'), +(6787, '{3408,2813,1,0,0}'), +(6891, '{2598,3272,0,0,0}'), +(6893, '{2926,3435,0,1,2}'), +(6917, '{2916,3082,0,0,0}-{2917,3089,0,0,0}-{2912,3090,0,0,0}'), +(6918, '{2917,3088,0,1,4}-{2917,3092,0,1,4}'), +(6921, '{2974,3448,0,1,4}-{2971,3442,0,1,6}-{2968,3451,0,1,1}-{2967,3439,0,1,4}-{2965,3451,0,1,5}-{2954,3273,0,1,6}'), +(6942, '{2890,3100,0,1,4}'), +(6944, '{2855,3028,0,0,0}-{2841,3039,0,0,0}-{2838,3031,0,0,0}-{2836,3014,0,0,0}-{2839,3022,0,0,0}'), +(6958, '{2574,3082,0,1,4}'), +(6962, '{2842,5222,0,1,6}'), +(6966, '{2927,3431,0,1,1}'), +(6971, '{2926,3443,0,0,5}-{149,39,0,1,7}'), +(6997, '{3002,3257,0,0,0}-{3058,3429,0,0,0}-{3059,3420,0,0,0}-{3059,3425,0,0,0}-{3049,3429,0,0,0}-{3007,3261,0,0,0}'), +(7003, '{3253,5535,0,1,7}-{3230,5493,0,1,1}-{3224,5497,0,1,5}-{2582,9895,0,1,7}'), +(7004, '{3256,5540,0,1,4}-{3247,5536,0,1,6}-{3225,5495,0,1,4}-{2581,9891,0,1,2}'), +(7009, '{3282,3467,0,0,0}'), +(7021, '{2510,2822,0,1,3}-{2511,2823,0,1,4}-{2509,2825,0,1,6}'), +(7022, '{2503,2821,0,1,1}-{2500,2818,0,1,4}-{2503,2819,0,1,3}'), +(7023, '{2552,2821,0,1,4}-{2555,2826,0,1,5}-{2550,2821,0,1,1}'), +(7024, '{2523,2823,0,0,0}-{2525,2821,0,0,0}-{2525,2820,0,0,0}'), +(7025, '{2537,2820,0,0,0}-{2539,2819,0,0,0}-{2543,2817,0,0,0}'), +(7026, '{2543,2822,0,0,0}-{2542,2818,0,0,0}-{2549,2822,0,0,0}'), +(7031, '{2499,2820,0,1,4}-{2511,2819,0,1,3}-{2525,2820,0,1,0}-{2527,2818,0,1,3}-{2542,2819,0,1,4}-{2551,2817,0,1,3}-{2554,2819,0,1,3}-{2559,2819,0,1,4}-{2566,2820,0,1,5}-{2575,2818,0,1,4}-{2578,2819,0,1,4}-{2587,2819,0,1,7}-{2595,2821,0,1,4}-{2595,2826,0,1,0}-{2503,2824,0,1,3}-{2509,2822,0,1,4}-{2518,2825,0,1,7}-{2526,2822,0,1,1}-{2547,2822,0,1,4}-{2588,2801,0,1,1}-{2557,2826,0,1,4}-{2562,2819,0,1,6}-{2565,2828,0,1,0}-{2573,2825,0,1,1}-{2578,2820,0,1,6}-{2584,2822,0,1,4}-{2590,2831,0,1,4}-{2594,2823,0,1,4}-{2502,2823,0,1,4}-{2513,2820,0,1,7}-{2527,2819,0,1,4}-{2529,2818,0,1,6}-{2541,2822,0,1,3}-{2549,2817,0,1,2}-{2557,2818,0,1,2}-{2488,2768,0,1,1}'), +(7032, '{2539,2838,0,0,0}-{2542,2832,0,0,0}-{2532,2836,0,0,0}'), +(7033, '{2541,2837,0,0,0}-{2535,2832,0,0,0}-{2543,2832,0,0,0}'), +(7034, '{2536,2839,0,0,0}-{2537,2840,0,0,0}-{2533,2836,0,0,0}'), +(7035, '{2542,2839,0,0,0}-{2549,2835,0,0,0}-{2541,2839,0,0,0}'), +(7036, '{2538,2841,0,0,0}-{2537,2836,0,0,0}-{2531,2836,0,0,0}'), +(7039, '{2503,2824,0,1,4}-{2518,2824,0,1,4}-{2534,2821,0,1,1}-{2548,2823,0,1,4}-{2560,2822,0,1,1}-{2570,2823,0,1,1}-{2582,2824,0,1,6}-{2588,2828,0,1,4}-{2503,2825,0,1,4}-{2493,2828,0,1,3}-{2515,2823,0,1,6}-{2525,2827,0,1,4}-{2589,2808,0,1,2}-{2562,2825,0,1,7}-{2568,2820,0,1,4}-{2577,2821,0,1,4}-{2582,2832,0,1,6}-{2500,2818,0,1,1}-{2525,2827,0,1,7}-{2536,2826,0,1,2}-{2541,2819,0,1,4}-{2503,2822,0,1,3}'), +(7040, '{2563,2862,0,0,0}-{2563,2856,0,0,0}'), +(7041, '{2562,2863,0,0,0}-{2553,2861,0,0,0}'), +(7042, '{2551,2863,0,0,0}-{2552,2859,0,0,0}'), +(7043, '{2553,2862,0,0,0}-{2561,2861,0,0,0}'), +(7044, '{2435,2893,0,0,0}-{2435,2895,0,0,0}-{2466,2936,0,0,0}-{2435,2893,0,0,4}-{2435,2893,0,0,4}-{2435,2893,0,0,4}-{2435,2895,0,0,4}-{2435,2895,0,0,4}-{2435,2895,0,0,4}-{2466,2936,0,0,4}-{2466,2936,0,0,4}-{2466,2936,0,0,4}'), +(7045, '{2435,2895,0,0,0}-{2435,2894,0,0,0}-{2442,2916,0,0,0}-{2435,2895,0,0,4}-{2435,2895,0,0,4}-{2435,2894,0,0,4}-{2435,2894,0,0,4}-{2442,2916,0,0,4}-{2442,2916,0,0,4}'), +(7046, '{2450,2922,0,0,0}-{2456,2929,0,0,0}-{2450,2922,0,0,4}-{2450,2922,0,0,4}-{2456,2929,0,0,4}-{2456,2929,0,0,4}'), +(7047, '{2557,2836,0,0,0}-{2559,2838,0,0,0}'), +(7048, '{2545,2836,0,0,0}'), +(7049, '{2553,2839,0,0,4}-{2553,2836,0,0,4}'), +(7051, '{2547,2852,0,0,0}-{2549,2854,0,0,0}'), +(7052, '{2571,2855,0,0,0}'), +(7055, '{2559,2851,0,0,0}-{2560,2852,0,0,0}'), +(7056, '{2560,2851,0,0,0}-{2561,2852,0,0,0}'), +(7057, '{2596,2845,0,0,0}'), +(7062, '{2571,2840,0,0,0}-{2572,2840,0,0,0}'), +(7065, '{2621,2857,1,0,0}-{2622,2857,0,0,0}'), +(7066, '{2619,2856,1,0,0}-{2620,2857,0,0,0}'), +(7067, '{2518,2842,0,0,0}'), +(7068, '{2531,2850,0,0,0}'), +(7069, '{2559,2858,0,0,0}'), +(7070, '{2581,2866,0,0,0}'), +(7071, '{2598,2864,0,0,0}'), +(7072, '{2517,2840,0,0,0}'), +(7073, '{2533,2848,0,0,0}'), +(7074, '{2556,2858,0,0,0}'), +(7075, '{2583,2865,0,0,0}'), +(7076, '{2596,2865,0,0,0}'), +(7077, '{2617,2856,1,0,0}-{2618,2857,0,0,0}'), +(7078, '{2502,2838,0,0,0}-{2478,2884,0,0,0}-{2476,2895,0,0,0}-{2472,2870,0,0,0}-{2455,2873,0,0,0}-{2455,2857,0,0,0}-{2474,2833,0,0,0}-{2505,2842,0,0,0}-{2507,2843,0,0,0}-{2481,2833,0,0,0}-{2476,2865,0,0,0}-{2456,2856,0,0,0}-{2454,2879,0,0,0}-{2472,2884,0,0,0}-{2475,2894,0,0,0}'), +(7079, '{2501,2851,0,0,0}-{2466,2878,0,0,0}-{2454,2847,0,0,0}-{2471,2857,0,0,0}-{2483,2840,0,0,0}-{2498,2854,0,0,0}-{2504,2851,0,0,0}-{2491,2838,0,0,0}-{2475,2852,0,0,0}-{2464,2873,0,0,0}-{2474,2903,0,0,0}-{2479,2906,0,0,0}'), +(7080, '{2508,2853,0,0,0}-{2492,2893,0,0,0}-{2483,2876,0,0,0}-{2456,2868,0,0,0}-{2459,2836,0,0,0}-{2514,2851,0,0,0}-{2506,2852,0,0,0}-{2487,2877,0,0,0}-{2486,2860,0,0,0}-{2458,2866,0,0,0}-{2416,2856,0,0,0}-{2495,2884,0,0,0}'), +(7081, '{2499,2860,0,0,0}-{2485,2892,0,0,0}-{2451,2870,0,0,0}-{2466,2864,0,0,0}-{2449,2826,0,0,0}-{2487,2842,0,0,0}-{2497,2863,0,0,0}-{2489,2843,0,0,0}-{2471,2860,0,0,0}-{2448,2870,0,0,0}-{2478,2888,0,0,0}-{2485,2922,0,0,0}'), +(7082, '{2516,2858,0,0,0}-{2493,2903,0,0,0}-{2485,2869,0,0,0}-{2484,2888,0,0,0}-{2444,2861,0,0,0}-{2457,2863,0,0,0}-{2474,2837,0,0,0}-{2521,2862,0,0,0}-{2483,2865,0,0,0}-{2474,2844,0,0,0}-{2460,2859,0,0,0}-{2492,2901,0,0,0}-{2486,2889,0,0,0}'), +(7091, '{2525,2852,0,0,0}-{2529,2844,0,0,0}'), +(7092, '{2526,2854,0,0,0}-{2528,2850,0,0,0}'), +(7093, '{2527,2853,0,0,0}-{2528,2849,0,0,0}'), +(7094, '{2527,2851,0,0,0}-{2523,2850,0,0,0}'), +(7095, '{2609,2863,0,0,0}-{2610,2862,0,0,0}'), +(7096, '{2610,2865,0,0,0}-{2605,2866,0,0,0}'), +(7097, '{2611,2862,0,0,0}-{2607,2867,0,0,0}'), +(7098, '{2611,2864,0,0,0}-{2608,2863,0,0,0}'), +(7099, '{2585,2844,0,0,0}-{2581,2845,0,0,0}'), +(7100, '{2586,2840,0,0,0}-{2587,2841,0,0,0}'), +(7101, '{2585,2842,0,0,0}'), +(7102, '{2576,2840,0,0,0}-{2576,2840,0,0,0}'), +(7103, '{2579,2843,0,0,0}-{2582,2843,0,0,0}-{2579,2843,0,0,0}-{2582,2843,0,0,0}'), +(7104, '{2549,2852,0,0,0}-{2547,2856,0,0,0}'), +(7105, '{3111,9929,0,1,7}-{3106,9941,0,1,1}-{3111,9935,0,1,4}-{3114,9931,0,1,1}-{2612,9484,0,1,1}-{2611,9484,0,1,0}-{2614,9484,0,1,6}-{2611,9486,0,1,1}'), +(7106, '{3131,9930,0,1,4}'), +(7107, '{3130,9928,0,1,0}-{3131,9931,0,1,4}'), +(7109, '{3127,9932,0,1,1}'), +(7110, '{3121,9929,0,1,4}'), +(7112, '{3130,9934,0,1,3}'), +(7113, '{3127,9932,0,1,4}'), +(7114, '{3132,9921,0,0,0}-{3132,9935,0,1,1}'), +(7115, '{3050,3259,0,0,0}'), +(7121, '{2189,3148,0,1,4}'), +(7138, '{3245,5462,0,1,7}-{3257,5454,0,1,3}-{3255,5461,0,1,1}-{3251,5473,0,1,3}-{3224,5540,0,1,0}-{3240,5541,0,1,6}-{3239,5529,0,1,6}-{3233,5524,0,1,4}-{3237,5512,0,1,6}-{3225,5510,0,1,1}-{3222,5524,0,1,1}-{3213,5472,0,1,3}-{3210,5469,0,1,5}-{3221,5468,0,1,0}-{3223,5465,0,1,0}-{3190,5523,0,1,2}-{3225,5540,0,1,7}-{3218,5537,0,1,3}-{3195,5527,0,1,6}'), +(7139, '{3220,5463,0,1,7}'), +(7142, '{3082,4246,0,1,4}'), +(7143, '{3082,3459,0,0,0}'), +(7144, '{3085,4230,0,1,3}'), +(7145, '{3081,4252,0,1,7}'), +(7146, '{3078,4240,0,1,4}'), +(7147, '{3079,4245,0,1,4}'), +(7148, '{3077,4229,0,1,4}'), +(7149, '{3085,4235,0,1,4}'), +(7150, '{3085,4240,0,1,3}'), +(7151, '{3081,3457,0,0,4}'), +(7152, '{3081,3455,0,0,4}'), +(7153, '{3081,3453,0,0,4}'), +(7154, '{3079,3457,0,0,4}'), +(7155, '{3079,3455,0,0,4}'), +(7156, '{3077,3457,0,0,4}'), +(7157, '{3077,3453,0,0,4}'); +INSERT INTO `npc_spawns` (`npc_id`, `loc_data`) VALUES +(7158, '{3080,3463,0,0,0}-{3079,3463,0,0,0}-{3144,4250,2,1,4}-{3143,4255,2,1,2}-{3140,4253,2,1,3}-{3145,4255,2,1,6}-{3149,4257,2,1,5}-{3148,4262,2,1,5}-{3142,4260,2,1,3}-{3144,4259,2,1,4}-{3145,4261,2,1,4}-{3146,4265,2,1,5}-{3143,4264,2,1,3}-{3144,4266,2,1,5}-{3141,4265,2,1,1}-{3144,4270,2,1,1}-{3142,4269,2,1,6}-{3157,4262,2,1,1}-{3164,4265,2,1,6}-{3162,4266,2,1,6}-{3165,4266,2,1,3}-{3164,4261,2,1,2}-{3162,4259,2,1,5}-{3162,4255,2,1,7}-{3165,4256,2,1,4}-{3163,4251,2,1,3}-{3165,4249,2,1,6}-{3162,4250,2,1,4}-{3163,4241,2,1,4}-{3165,4239,2,1,4}-{3165,4241,2,1,0}-{3160,4235,2,1,2}-{3165,4235,2,1,4}-{3165,4237,2,1,4}-{3162,4234,2,1,3}-{3164,4231,2,1,4}-{3166,4229,2,1,6}-{3162,4230,2,1,1}-{3167,4229,2,1,3}-{3184,4236,2,1,1}-{3153,4246,1,1,3}-{3159,4236,1,1,6}-{3163,4236,1,1,4}-{3163,4234,1,1,7}-{3146,4235,1,1,5}-{3144,4236,1,1,1}-{3143,4234,1,1,2}-{3145,4240,1,1,4}-{3148,4242,1,1,1}-{3145,4241,1,1,7}-{3142,4242,1,1,3}-{3146,4230,1,1,4}'), +(7159, '{3174,4238,2,1,6}-{3175,4243,2,1,6}-{3179,4236,2,1,4}-{3145,4272,1,1,3}-{3145,4276,1,1,3}-{3152,4271,1,1,6}-{3144,4264,1,1,4}-{3153,4266,1,1,1}-{3152,4261,1,1,4}-{3145,4259,1,1,6}-{3161,4259,1,1,0}-{3160,4265,1,1,0}-{3153,4246,1,1,3}-{3157,4248,1,1,6}-{3161,4247,1,1,4}-{3146,4247,1,1,6}-{3153,4233,1,1,4}-{3153,4240,1,1,6}-{3155,4238,1,1,5}-{3169,4267,3,1,3}-{3160,4265,3,1,6}-{3168,4250,3,1,4}-{3168,4244,3,1,6}-{3160,4239,3,1,1}-{3160,4228,3,1,3}-{3147,4225,3,1,3}-{3145,4242,3,1,5}-{3139,4249,3,1,6}-{3144,4253,3,1,3}-{3145,4266,3,1,0}-{3138,4266,3,1,3}'), +(7160, '{3175,4254,2,1,7}-{3176,4247,2,1,5}-{3174,4269,2,1,1}-{3190,4253,2,1,3}-{3192,4247,2,1,3}-{3189,4235,2,1,0}-{3152,4269,0,1,4}-{3160,4278,0,1,1}-{3160,4262,0,1,3}-{3149,4250,0,1,0}-{3158,4250,0,1,5}-{3161,4236,0,1,6}-{3172,4250,0,1,2}-{3171,4269,3,1,1}-{3157,4277,3,1,3}-{3150,4278,3,1,3}'), +(7161, '{3142,4230,2,1,6}-{3143,4231,2,1,3}-{3141,4235,2,1,4}-{3144,4241,2,1,4}'), +(7162, '{3144,4229,2,1,1}-{3143,4236,2,1,1}-{3145,4235,2,1,1}-{3148,4244,2,1,6}'), +(7228, '{2862,3101,0,0,0}-{2879,3109,0,0,0}-{2882,3104,0,0,0}-{2874,3098,0,0,0}-{2882,3098,0,0,0}'), +(7229, '{2833,3088,0,0,0}-{2830,3085,0,0,0}-{2844,3089,0,0,0}-{2837,3084,0,0,0}-{2840,3076,0,0,0}'), +(7230, '{2887,3051,0,0,0}-{2890,3052,0,0,0}-{2894,3058,0,0,0}-{2840,3008,0,0,0}-{2897,3035,0,0,0}'), +(7231, '{2930,2961,0,0,0}-{2942,2964,0,0,0}-{2933,2964,0,0,0}-{2932,2967,0,0,0}-{2936,2973,0,0,0}'), +(7232, '{2802,3106,0,0,0}-{2807,3101,0,0,0}-{2806,3108,0,0,0}-{2808,3105,0,0,0}-{2814,3100,0,0,0}'), +(7233, '{2922,3070,0,0,0}-{2929,3075,0,0,0}-{2919,3080,0,0,0}-{2924,3080,0,0,0}-{2923,3081,0,0,0}'), +(7234, '{2900,3107,0,0,0}-{2903,3098,0,0,0}-{2908,3104,0,0,0}-{2905,3107,0,0,0}-{2904,3107,0,0,0}'), +(7235, '{2820,3065,0,0,0}-{2830,3059,0,0,0}-{2825,3057,0,0,0}-{2827,3050,0,0,0}-{2822,3053,0,0,0}'), +(7236, '{2799,3005,0,0,0}-{2801,2995,0,0,0}-{2804,3001,0,0,0}-{2803,2986,0,0,0}-{2811,2999,0,0,0}'), +(7237, '{2927,3432,0,1,4}'), +(7251, '{2574,3082,0,1,1}'), +(7275, '{2995,3252,0,0,0}-{2996,3259,0,0,0}-{2993,3250,0,0,0}-{3000,3258,0,0,0}'), +(7276, '{2994,3256,0,0,0}-{3002,3250,0,0,0}-{2992,3252,0,0,0}-{3000,3250,0,0,0}-{2728,3422,0,1,1}-{2718,3413,0,1,4}-{2729,3420,0,1,4}-{2727,3414,0,1,6}-{2714,3419,0,1,3}-{2719,3427,0,1,7}'), +(7285, '{2835,3107,0,0,0}-{2836,3101,0,0,0}-{2836,3110,0,0,0}-{2837,3112,0,0,0}-{2841,3107,0,0,0}-{2885,3018,0,0,0}-{2885,3019,0,0,0}-{2891,3018,0,0,0}'), +(7286, '{2931,3090,0,0,0}-{2925,3097,0,0,0}-{2936,3096,0,0,0}-{2924,3102,0,0,0}-{2933,3104,0,0,0}'), +(7288, '{2834,3045,0,0,0}-{2826,3048,0,0,0}-{2824,3043,0,0,0}-{2822,3045,0,0,0}-{2818,3049,0,0,0}'), +(7289, '{2882,3018,0,1,7}-{2887,3024,0,1,2}'), +(7290, '{2845,3088,0,1,6}-{2854,3085,0,1,1}'), +(7292, '{2863,3048,0,1,5}-{2868,3037,0,1,4}'), +(7309, '{3023,3410,0,0,0}-{2946,3280,0,0,0}'), +(7310, '{3015,3409,0,0,0}-{2946,3272,0,0,0}'), +(7311, '{2956,3273,0,0,0}'), +(7312, '{2950,3268,0,0,0}'), +(7363, '{2793,2996,0,0,0}'), +(7420, '{3168,3334,0,0,3}'), +(7421, '{3163,3336,0,0,1}'), +(7451, '{2328,3170,0,1,6}-{2341,3179,0,1,4}-{2338,3164,0,1,4}-{2189,3181,0,1,2}-{2178,3186,0,1,7}-{2199,3182,0,1,0}-{2288,3149,0,1,2}-{2282,3144,0,1,3}-{2285,3144,0,1,2}-{2281,3139,0,1,1}-{2289,3152,0,1,6}-{2287,3155,0,1,1}-{2286,3146,0,1,1}-{2289,3156,0,0,5}-{2285,3136,0,1,3}'), +(7550, '{2617,3144,0,0,0}'), +(7636, '{3618,9736,0,0,0}-{3620,9732,0,0,0}-{3624,9736,0,0,0}-{3625,9738,0,0,0}-{3618,9736,0,0,4}-{3620,9732,0,0,4}-{3624,9736,0,0,4}-{3625,9738,0,0,4}'), +(7637, '{3588,9768,0,0,0}-{3600,9768,0,0,0}-{3606,9780,0,0,0}-{3612,9729,0,0,0}-{3613,9764,0,0,0}-{3614,9740,0,0,0}-{3614,9750,0,0,0}-{3621,9748,0,0,0}-{3629,9737,0,0,0}'), +(7639, '{3592,9766,0,0,0}-{3603,9770,0,0,0}-{3605,9757,0,0,0}-{3611,9749,0,0,0}-{3611,9766,0,0,0}-{3616,9737,0,0,0}-{3616,9756,0,0,0}-{3616,9762,0,0,0}-{3617,9779,0,0,0}-{3621,9754,0,0,0}'), +(7640, '{3608,9780,0,1,3}-{3610,9777,0,1,1}-{3613,9772,0,1,4}-{3617,9748,0,1,7}-{3617,9758,0,1,1}-{3621,9751,0,1,1}'), +(7641, '{3607,9776,0,1,1}-{3610,9772,0,1,0}-{3614,9778,0,1,7}-{3615,9746,0,1,7}-{3618,9753,0,1,1}-{3619,9748,0,1,6}'), +(7642, '{3595,9742,0,0,0}-{3597,9751,0,0,0}-{3598,9736,0,0,0}-{3604,9746,0,0,0}'), +(7643, '{3587,9737,0,0,0}-{3592,9746,0,0,0}-{3600,9740,0,0,0}-{3605,9738,0,0,0}'), +(7711, '{3405,9902,0,0,0}'), +(7716, '{3005,3475,0,1,7}-{3003,3473,0,1,4}-{2997,3471,0,0,0}-{3004,3494,0,0,0}-{3005,3505,0,0,0}'), +(7726, '{2996,3451,0,0,0}'), +(7727, '{3045,3483,0,0,0}-{3053,3492,0,0,4}-{3055,3491,0,0,0}-{3045,3496,0,0,0}-{3046,3490,1,0,0}-{3057,3497,1,0,3}'), +(7728, '{3009,3433,0,0,0}'), +(7731, '{3008,3466,0,0,0}'), +(7732, '{3009,3466,0,0,0}'), +(7733, '{3008,3479,0,0,0}'), +(7734, '{3009,3487,0,0,0}'), +(7735, '{2999,3469,0,0,0}'), +(7744, '{3149,3411,0,0,0}'), +(7746, '{4755,5116,0,1,7}'), +(7747, '{4751,5116,0,1,5}'), +(7748, '{4752,5114,0,1,5}'), +(7749, '{4739,5070,0,1,0}'), +(7750, '{4765,5064,0,1,7}'), +(7751, '{4778,5070,0,1,2}'), +(7752, '{4432,5096,0,1,0}'), +(7753, '{4438,5089,0,1,0}-{4428,5083,0,1,0}-{4437,5075,0,1,0}'), +(7763, '{4777,5080,0,1,2}'), +(7765, '{4776,5076,0,1,6}'), +(7767, '{4762,5145,0,1,2}-{2457,5139,0,1,6}-{2460,5140,0,1,0}-{2443,5147,0,1,3}-{2454,5155,0,1,5}-{2461,5125,0,1,3}-{2456,5124,0,1,4}-{2458,5129,0,1,4}-{2443,5145,0,1,1}-{2451,5148,0,1,1}-{2447,5143,0,1,4}-{2443,5138,0,1,4}'), +(7768, '{4762,5156,0,1,6}'), +(7823, '{3215,9560,0,0,1}-{3161,9547,0,0,3}-{3164,9556,0,0,4}-{3162,9574,0,0,3}-{3198,9554,0,0,7}-{3216,9588,0,0,1}-{3198,9572,0,0,1}'), +(7891, '{3207,3250,0,0,0}-{3208,3250,0,0,0}-{3209,3250,0,0,0}'), +(7959, '{3188, 3425, 0, 1, 0}'), +(7969, '{3205,3240,0,0,0}'), +(8082, '{3552,5590,2,1,2}'), +(8083, '{3560,5602,0,1,3}'), +(8084, '{3541,5597,0,1,4}'), +(8085, '{3550,5598,0,1,3}'), +(8149, '{3244,9996,0,1,6}-{3229,10008,0,1,6}-{3222,10012,0,1,6}-{3205,10010,0,1,6}-{3212,10012,0,1,6}-{3205,10023,0,1,6}-{3210,10030,0,1,6}-{3212,10039,0,1,6}-{3213,10009,0,1,6}-{3243,9993,0,1,6}-{3218,10036,0,1,6}-{3218,10010,0,1,6}'), +(8150, '{3241,9997,0,1,6}-{3230,10011,0,1,6}-{3221,10012,0,1,6}-{3207,10006,0,1,6}-{3207,10017,0,1,6-{3209,10031,0,1,6}-{3209,10019,0,1,6}-{3217,10012,0,1,6}-{3224,10012,0,1,6}'), +(8151, '{3241,9998,0,1,6}-{3223,10010,0,1,6}-{3208,10012,0,1,6}-{3209,10026,0,1,6}-{3214,10038,0,1,6}-{3211,10035,0,1,6}-{3214,10037,0,1,6}-{3240,9991,0,1,6}-{3231,10010,0,1,6}-{3210,10007,0,1,6}-{3222,10010,0,1,6}'), +(8273, '{2931,3536,0,1,5}-{166,54,0,1,6}'), +(8274, '{3514,3513,0,1,6}-{168,53,0,1,3}'), +(8275, '{2869,2982,1,1,5}-{169,52,0,1,3}'), +(8349, '{2603,5740,0,0,7}-{2591,5739,0,1,3}-{2616,5733,0,1,3}-{2613,5712,0,1,3}-{2603,5712,0,1,3}-{2588,5712,0,1,3}'), +(8536, '{2654,5600,0,1,3}-{2650,5600,0,0,3}-{2662,5593,0,0,3}-{2653,5590,0,0,3}-{2644,5592,0,0,3-{2644,5601,0,0,3}-{2654,5604,0,0,3}-{2663,5606,0,0,3}-{2670,5597,0,0,3}-{2657,5589,0,0,3}-'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `range_configs` +-- + +CREATE TABLE `range_configs` ( + `itemId` int(11) UNSIGNED NOT NULL, + `name` varchar(50) NOT NULL DEFAULT '', + `ammo_slot` int(11) NOT NULL, + `weapon_type` int(11) NOT NULL, + `animation` int(11) NOT NULL, + `drop_ammo` tinyint(4) NOT NULL, + `ammunition` longtext NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- +-- Dumping data for table `range_configs` +-- + +INSERT INTO `range_configs` (`itemId`, `name`, `ammo_slot`, `weapon_type`, `animation`, `drop_ammo`, `ammunition`) VALUES +(732, 'Holy water', 3, 3, 385, 1, '732'), +(767, 'Phoenix crossbow', 13, 1, 4230, 1, '877,878,6061,6062,879,9236,13280'), +(800, 'Bronze thrownaxe', 3, 3, 929, 1, '800'), +(801, 'Iron thrownaxe', 3, 3, 929, 1, '801'), +(802, 'Steel thrownaxe', 3, 3, 929, 1, '802'), +(803, 'Mithril thrownaxe', 3, 3, 929, 1, '803'), +(804, 'Adamant thrownaxe', 3, 3, 929, 1, '804'), +(805, 'Rune thrownaxe', 3, 3, 929, 1, '805'), +(806, 'Bronze dart', 3, 3, 6600, 1, '806'), +(807, 'Iron dart', 3, 3, 6600, 1, '807'), +(808, 'Steel dart', 3, 3, 6600, 1, '808'), +(809, 'Mithril dart', 3, 3, 6600, 1, '809'), +(810, 'Adamant dart', 3, 3, 6600, 1, '810'), +(811, 'Rune dart', 3, 3, 6600, 1, '811'), +(812, 'Bronze dart(p)', 3, 3, 6600, 1, '812'), +(813, 'Iron dart(p)', 3, 3, 6600, 1, '813'), +(814, 'Steel dart(p)', 3, 3, 6600, 1, '814'), +(815, 'Mithril dart(p)', 3, 3, 6600, 1, '815'), +(816, 'Adamant dart(p)', 3, 3, 6600, 1, '816'), +(817, 'Rune dart(p)', 3, 3, 6600, 1, '817'), +(825, 'Bronze javelin', 3, 3, 929, 1, '825'), +(826, 'Iron javelin', 3, 3, 929, 1, '826'), +(827, 'Steel javelin', 3, 3, 929, 1, '827'), +(828, 'Mithril javelin', 3, 3, 929, 1, '828'), +(829, 'Adamant javelin', 3, 3, 929, 1, '829'), +(830, 'Rune javelin', 3, 3, 929, 1, '830'), +(831, 'Bronze javelin(p)', 3, 3, 929, 1, '831'), +(832, 'Iron javelin(p)', 3, 3, 929, 1, '832'), +(833, 'Steel javelin(p)', 3, 3, 929, 1, '833'), +(834, 'Mithril javelin(p)', 3, 3, 929, 1, '834'), +(835, 'Adamant javelin(p)', 3, 3, 929, 1, '835'), +(836, 'Rune javelin(p)', 3, 3, 929, 1, '836'), +(837, 'Crossbow', 13, 1, 4230, 1, '877,878,6061,6062,879,9236,13280'), +(839, 'Longbow', 13, 0, 426, 1, '882,883,5616,5622,598,884,885,5617,5623,2532'), +(841, 'Shortbow', 13, 0, 426, 1, '882,883,5616,5622,598,884,885,5617,5623,2532'), +(843, 'Oak shortbow', 13, 0, 426, 1, '882,883,5616,5622,598,884,885,5617,5623,2532,886,887,5618,5624,2534'), +(845, 'Oak longbow', 13, 0, 426, 1, '882,883,5616,5622,598,884,885,5617,5623,2532,886,887,5618,5624,2534'), +(847, 'Willow longbow', 13, 0, 426, 1, '882,883,5616,5622,598,884,885,5617,5623,2532,886,887,5618,5624,2534,888,889,5619,5625,2536'), +(849, 'Willow shortbow', 13, 0, 426, 1, '882,883,5616,5622,598,884,885,5617,5623,2532,886,887,5618,5624,2534,888,889,5619,5625,2536'), +(851, 'Maple longbow', 13, 0, 426, 1, '882,883,5616,5622,598,884,885,5617,5623,2532,886,887,5618,5624,2534,888,889,5619,5625,2536,890,891,5620,5626,2538'), +(853, 'Maple shortbow', 13, 0, 426, 1, '882,883,5616,5622,598,884,885,5617,5623,2532,886,887,5618,5624,2534,888,889,5619,5625,2536,890,891,5620,5626,2538'), +(855, 'Yew longbow', 13, 0, 426, 1, '882,883,5616,5622,598,884,885,5617,5623,2532,886,887,5618,5624,2534,888,889,5619,5625,2536,890,891,5620,5626,2538,892,893,5621,5627,2540,78'), +(857, 'Yew shortbow', 13, 0, 426, 1, '882,883,5616,5622,598,884,885,5617,5623,2532,886,887,5618,5624,2534,888,889,5619,5625,2536,890,891,5620,5626,2538,892,893,5621,5627,2540,78'), +(859, 'Magic longbow', 13, 0, 426, 1, '882,883,5616,5622,598,884,885,5617,5623,2532,886,887,5618,5624,2534,888,889,5619,5625,2536,890,891,5620,5626,2538,892,893,5621,5627,2540,78,4160'), +(861, 'Magic shortbow', 13, 0, 426, 1, '882,883,5616,5622,598,884,885,5617,5623,2532,886,887,5618,5624,2534,888,889,5619,5625,2536,890,891,5620,5626,2538,892,893,5621,5627,2540,78,4160'), +(863, 'Iron knife', 3, 3, 929, 1, '863'), +(864, 'Bronze knife', 3, 3, 929, 1, '864'), +(865, 'Steel knife', 3, 3, 929, 1, '865'), +(866, 'Mithril knife', 3, 3, 929, 1, '866'), +(867, 'Adamant knife', 3, 3, 929, 1, '867'), +(868, 'Rune knife', 3, 3, 929, 1, '868'), +(869, 'Black knife', 3, 3, 929, 1, '869'), +(870, 'Bronze knife(p)', 3, 3, 929, 1, '870'), +(871, 'Iron knife(p)', 3, 3, 929, 1, '871'), +(872, 'Steel knife(p)', 3, 3, 929, 1, '872'), +(873, 'Mithril knife(p)', 3, 3, 929, 1, '873'), +(874, 'Black knife(p)', 3, 3, 929, 1, '874'), +(875, 'Adamant knife(p)', 3, 3, 929, 1, '875'), +(876, 'Rune knife(p)', 3, 3, 929, 1, '876'), +(2883, 'Ogre bow', 13, 0, 426, 1, '2866'), +(3093, 'Black dart', 3, 3, 6600, 1, '3093'), +(3094, 'Black dart(p)', 3, 3, 6600, 1, '3094'), +(4212, 'New crystal bow', 3, 4, 426, 0, '4212'), +(4214, 'Crystal bow full', 3, 4, 426, 0, '4214'), +(4215, 'Crystal bow 9/10', 3, 4, 426, 0, '4215'), +(4216, 'Crystal bow 8/10', 3, 4, 426, 0, '4216'), +(4217, 'Crystal bow 7/10', 3, 4, 426, 0, '4217'), +(4218, 'Crystal bow 6/10', 3, 4, 426, 0, '4218'), +(4219, 'Crystal bow 5/10', 3, 4, 426, 0, '4219'), +(4220, 'Crystal bow 4/10', 3, 4, 426, 0, '4220'), +(4221, 'Crystal bow 3/10', 3, 4, 426, 0, '4221'), +(4222, 'Crystal bow 2/10', 3, 4, 426, 0, '4222'), +(4223, 'Crystal bow 1/10', 3, 4, 426, 0, '4223'), +(4734, 'Karil\'s crossbow', 13, 1, 2075, 0, '4740'), +(4827, 'Comp ogre bow', 13, 0, 426, 1, '2866,4773,4778,4783,4788,4793,4798,4803'), +(4934, 'Karil\'s x-bow 100', 13, 1, 2075, 0, '4740'), +(4935, 'Karil\'s x-bow 75', 13, 1, 2075, 0, '4740'), +(4936, 'Karil\'s x-bow 50', 13, 1, 2075, 0, '4740'), +(4937, 'Karil\'s x-bow 25', 13, 1, 2075, 0, '4740'), +(5628, 'Bronze dart(p+)', 3, 3, 6600, 1, '5628'), +(5629, 'Iron dart(p+)', 3, 3, 6600, 1, '5629'), +(5630, 'Steel dart(p+)', 3, 3, 6600, 1, '5630'), +(5631, 'Black dart(p+)', 3, 3, 6600, 1, '5631'), +(5632, 'Mithril dart(p+)', 3, 3, 6600, 1, '5632'), +(5633, 'Adamant dart(p+)', 3, 3, 6600, 1, '5633'), +(5634, 'Rune dart(p+)', 3, 3, 6600, 1, '5634'), +(5635, 'Bronze dart(p++)', 3, 3, 6600, 1, '5635'), +(5636, 'Iron dart(p++)', 3, 3, 6600, 1, '5636'), +(5637, 'Steel dart(p++)', 3, 3, 6600, 1, '5637'), +(5638, 'Black dart(p++)', 3, 3, 6600, 1, '5638'), +(5639, 'Mithril dart(p++)', 3, 3, 6600, 1, '5639'), +(5640, 'Adamant dart(p++)', 3, 3, 6600, 1, '5640'), +(5641, 'Rune dart(p++)', 3, 3, 6600, 1, '5641'), +(5642, 'Bronze javelin(p+)', 3, 3, 929, 1, '5642'), +(5643, 'Iron javelin(p+)', 3, 3, 929, 1, '5643'), +(5644, 'Steel javelin(p+)', 3, 3, 929, 1, '5644'), +(5645, 'Mithril javelin(p+)', 3, 3, 929, 1, '5645'), +(5646, 'Adamant javelin(p+)', 3, 3, 929, 1, '5646'), +(5647, 'Rune javelin(p+)', 3, 3, 929, 1, '5647'), +(5648, 'Bronze jav\'n(p++)', 3, 3, 929, 1, '5648'), +(5649, 'Iron javelin(p++)', 3, 3, 929, 1, '5649'), +(5650, 'Steel javelin(p++)', 3, 3, 929, 1, '5650'), +(5651, 'Mithril javelin(p++)', 3, 3, 929, 1, '5651'), +(5652, 'Adamant javelin(p++)', 3, 3, 929, 1, '5652'), +(5653, 'Rune javelin(p++)', 3, 3, 929, 1, '5653'), +(5654, 'Bronze knife(p+)', 3, 3, 929, 1, '5654'), +(5655, 'Iron knife(p+)', 3, 3, 929, 1, '5655'), +(5656, 'Steel knife(p+)', 3, 3, 929, 1, '5656'), +(5657, 'Mithril knife(p+)', 3, 3, 929, 1, '5657'), +(5658, 'Black knife(p+)', 3, 3, 929, 1, '5658'), +(5659, 'Adamant knife(p+)', 3, 3, 929, 1, '5659'), +(5660, 'Rune knife(p+)', 3, 3, 929, 1, '5660'), +(5661, 'Bronze knife(p++)', 3, 3, 929, 1, '5661'), +(5662, 'Iron knife(p++)', 3, 3, 929, 1, '5662'), +(5663, 'Steel knife(p++)', 3, 3, 929, 1, '5663'), +(5664, 'Mithril knife(p++)', 3, 3, 929, 1, '5664'), +(5665, 'Black knife(p++)', 3, 3, 929, 1, '5665'), +(5666, 'Adamant knife(p++)', 3, 3, 929, 1, '5666'), +(5667, 'Rune knife(p++)', 3, 3, 929, 1, '5667'), +(6522, 'Toktz-xil-ul', 3, 3, 2614, 1, '6522'), +(6724, 'Seercull', 13, 0, 426, 1, '882,883,5616,5622,598,884,885,5617,5623,2532,886,887,5618,5624,2534,888,889,5619,5625,2536,890,891,5620,5626,2538,892,893,5621,5627,2540,78,4160'), +(8880, 'Dorgeshuun c\'bow', 13, 1, 4230, 1, '8882,877,878,6061,6062,879,9236'), +(9174, 'Bronze crossbow', 13, 1, 4230, 1, '877,878,6061,6062,879,9236,13280'), +(9176, 'Blurite crossbow', 13, 1, 4230, 1, '877,878,6061,6062,9140,879,9236,13280'), +(9177, 'Iron crossbow', 13, 1, 4230, 1, '877,878,6061,6062,879,9236,9140,9287,9294,9301,880,9238,13280'), +(9179, 'Steel crossbow', 13, 1, 4230, 1, '877,878,6061,6062,879,9140,9236,9141,9288,9295,9302,9336,9239,13280'), +(9181, 'Mith crossbow', 13, 1, 4230, 1, '877,878,6061,6062,879,9236,9141,9288,9295,9302,9336,9239,13083,13084,13085,13086,9142,9289,9296,9303,9337,9240,9338,9140,9241,13280'), +(9183, 'Adamant crossbow', 13, 1, 4230, 1, '877,878,6061,6062,879,9236,9141,9288,9295,9302,9336,9239,13083,13084,13085,13086,9142,9289,9296,9303,9337,9240,9338,9241,9143,9290,9297,9304,9339,9242,9340,9243,13280'), +(9185, 'Rune crossbow', 13, 1, 4230, 1, '877,878,6061,6062,879,9236,9141,9288,9295,9302,9336,9239,9236,9237,9238,9239,9240,9241,9242,9243,9244,9245,13083,13084,13085,13086,9142,9289,9296,9303,9337,9240,9338,9241,9143,9290,9297,9304,9339,9242,9340,9243,9144,9291,9298,9305,9341,9244,9342,9245,9140,13280'), +(9705, 'Training bow', 13, 0, 426, 1, '9706'), +(10033, 'Chinchompa', 3, 6, 2779, 0, '10034'), +(10034, 'Red chinchompa', 3, 6, 2779, 0, '10034'), +(10156, 'Hunters\' crossbow', 13, 1, 4230, 1, '10158,10159'), +(10280, 'Willow comp bow', 13, 0, 426, 1, '882,883,5616,5622,598,884,885,5617,5623,2532,886,887,5618,5624,2534,888,889,5619,5625,2536'), +(10282, 'Yew comp bow', 13, 0, 426, 1, '882,883,5616,5622,598,884,885,5617,5623,2532,886,887,5618,5624,2534,888,889,5619,5625,2536,890,891,5620,5626,2538,892,893,5621,5627,2540,78'), +(10284, 'Magic comp bow', 13, 0, 426, 1, '882,883,5616,5622,598,884,885,5617,5623,2532,886,887,5618,5624,2534,888,889,5619,5625,2536,890,891,5620,5626,2538,892,893,5621,5627,2540,78,4160'), +(11165, 'Phoenix crossbow', 13, 1, 4230, 1, '877,878,6061,6062,879,9236,13280'), +(11167, 'Phoenix crossbow', 13, 1, 4230, 1, '877,878,6061,6062,879,9236,13280'), +(11230, 'Dragon dart', 3, 3, 6600, 1, '11230'), +(11231, 'Dragon dart(p)', 3, 3, 6600, 1, '11231'), +(11233, 'Dragon dart(p+)', 3, 3, 6600, 1, '11233'), +(11234, 'Dragon dart(p++)', 3, 3, 6600, 1, '11234'), +(11235, 'Dark bow', 13, 2, 426, 1, '882,883,5616,5622,598,884,885,5617,5623,2532,886,887,5618,5624,2534,888,889,5619,5625,2536,890,891,5620,5626,2538,892,893,5621,5627,2540,11212,11227,11228,11229,11217,78,4160'), +(13081, 'Black crossbow', 13, 1, 4230, 1, '877,878,6061,6062,879,9236,9141,9288,9295,9302,9140,9336,9239,13083,13084,13085,13086,13280'), +(13405, 'Dark bow', 13, 2, 426, 1, '882,883,5616,5622,598,884,885,5617,5623,2532,886,887,5618,5624,2534,888,889,5619,5625,2536,890,891,5620,5626,2538,892,893,5621,5627,2540,11212,11227,11228,11229,11217,78,4160'), +(13523, 'Maple longbow', 13, 0, 426, 1, '882,883,5616,5622,598,884,885,5617,5623,2532,886,887,5618,5624,2534,888,889,5619,5625,2536,890,891,5620,5626,2538'), +(13524, 'Maple shortbow', 13, 0, 426, 1, '882,883,5616,5622,598,884,885,5617,5623,2532,886,887,5618,5624,2534,888,889,5619,5625,2536,890,891,5620,5626,2538'), +(13525, 'Yew longbow', 13, 0, 426, 1, '882,883,5616,5622,598,884,885,5617,5623,2532,886,887,5618,5624,2534,888,889,5619,5625,2536,890,891,5620,5626,2538,892,893,5621,5627,2540,78'), +(13526, 'Yew shortbow', 13, 0, 426, 1, '882,883,5616,5622,598,884,885,5617,5623,2532,886,887,5618,5624,2534,888,889,5619,5625,2536,890,891,5620,5626,2538,892,893,5621,5627,2540,78'), +(13527, 'Magic longbow', 13, 0, 426, 1, '882,883,5616,5622,598,884,885,5617,5623,2532,886,887,5618,5624,2534,888,889,5619,5625,2536,890,891,5620,5626,2538,892,893,5621,5627,2540,78,4160'), +(13528, 'Magic shortbow', 13, 0, 426, 1, '882,883,5616,5622,598,884,885,5617,5623,2532,886,887,5618,5624,2534,888,889,5619,5625,2536,890,891,5620,5626,2538,892,893,5621,5627,2540,78,4160'), +(13529, 'Seercull', 13, 0, 426, 1, '882,883,5616,5622,598,884,885,5617,5623,2532,886,887,5618,5624,2534,888,889,5619,5625,2536,890,891,5620,5626,2538,892,893,5621,5627,2540,78,4160'), +(13530, 'Rune crossbow', 13, 1, 4230, 1, '877,878,6061,6062,879,9236,9237,9238,9239,9240,9241,9242,9243,9244,9245,9141,9288,9295,9302,9336,9239,13083,13084,13085,13086,9142,9289,9296,9303,9337,9240,9338,9241,9143,9290,9297,9304,9339,9242,9340,9243,9144,9291,9298,9305,9341,9244,9342,9245,13280'), +(13541, 'Willow comp bow', 13, 0, 426, 1, '882,883,5616,5622,598,884,885,5617,5623,2532,886,887,5618,5624,2534,888,889,5619,5625,2536'), +(13542, 'Yew comp bow', 13, 0, 426, 1, '882,883,5616,5622,598,884,885,5617,5623,2532,886,887,5618,5624,2534,888,889,5619,5625,2536,890,891,5620,5626,2538,892,893,5621,5627,2540,78'), +(13543, 'Magic comp bow', 13, 0, 426, 1, '882,883,5616,5622,598,884,885,5617,5623,2532,886,887,5618,5624,2534,888,889,5619,5625,2536,890,891,5620,5626,2538,892,893,5621,5627,2540,78,4160'), +(13879, 'Morrigan\'s javelin', 3, 3, 10501, 1, '13879'), +(13880, 'Morrigan\'s javelin(p)', 3, 3, 10501, 1, '13880'), +(13881, 'Morrigan\'s javelin(p+)', 3, 3, 10501, 1, '13881'), +(13882, 'Morrigan\'s javelin(p++)', 3, 3, 10501, 1, '13882'), +(13883, 'Morrigan\'s throwing axe', 3, 3, 10504, 1, '13883'), +(13953, 'Corrupt morrigan\'s javelin', 3, 3, 10501, 1, '13953'), +(13954, 'C. morrigan\'s javelin (p)', 3, 3, 10501, 1, '13954'), +(13955, 'C. morrigan\'s javelin (p+)', 3, 3, 10501, 1, '13955'), +(13956, 'C. morrigan\'s javelin (p++)', 3, 3, 10501, 1, '13956'), +(13957, 'C. morrigan\'s throwing axe', 3, 3, 10504, 1, '13957'), +(14121, 'Sacred clay bow', 13, 0, 426, 1, '882,883,5616,5622,598,884,885,5617,5623,2532,886,887,5618,5624,2534,888,889,5619,5625,2536,890,891,5620,5626,2538,892,893,5621,5627,2540,78,4160'), +(14671, 'Armadyl crossbow', 13, 1, 4230, 1, '877,878,6061,6062,879,9236,9141,9288,9295,9302,9336,9239,9236,9237,9238,9239,9240,9241,9242,9243,9244,9245,13083,13084,13085,13086,9142,9289,9296,9303,9337,9240,9338,9241,9143,9290,9297,9304,9339,9242,9340,9243,9144,9291,9298,9305,9341,9244,9342,9245,9140,13280'), +(14684, 'Odium ward', 13, 1, 4230, 1, '8882,877,878,6061,6062,879,9236,9141,9288,9295,9302,9336,9239,13083,13084,13085,13086,9142,9289,9296,9303,9337,9240,9338,9241,9143,9290,9297,9304,9339,9242,9340,9243'), +(14685, 'Odium shard 1', 13, 1, 4230, 1, '877,878,6061,6062,879,9236'), +(14803, 'Dark bow', 13, 2, 426, 1, '882,883,5616,5622,598,884,885,5617,5623,2532,886,887,5618,5624,2534,888,889,5619,5625,2536,890,891,5620,5626,2538,892,893,5621,5627,2540,11212,11227,11228,11229,11217,78,4160'), +(14804, 'Dark bow', 13, 2, 426, 1, '882,883,5616,5622,598,884,885,5617,5623,2532,886,887,5618,5624,2534,888,889,5619,5625,2536,890,891,5620,5626,2538,892,893,5621,5627,2540,11212,11227,11228,11229,11217,78,4160'), +(14805, 'Dark bow', 13, 2, 426, 1, '882,883,5616,5622,598,884,885,5617,5623,2532,886,887,5618,5624,2534,888,889,5619,5625,2536,890,891,5620,5626,2538,892,893,5621,5627,2540,11212,11227,11228,11229,11217,78,4160'), +(14806, 'Dark bow', 13, 2, 426, 1, '882,883,5616,5622,598,884,885,5617,5623,2532,886,887,5618,5624,2534,888,889,5619,5625,2536,890,891,5620,5626,2538,892,893,5621,5627,2540,11212,11227,11228,11229,11217,78,4160'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `region_xtea` +-- + +CREATE TABLE `region_xtea` ( + `regionId` int(11) UNSIGNED NOT NULL, + `keys` varchar(60) NOT NULL DEFAULT '0,0,0,0' +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- +-- Dumping data for table `region_xtea` +-- + +INSERT INTO `region_xtea` (`regionId`, `keys`) VALUES +(6230, '0,0,0,0'), +(6231, '0,0,0,0'), +(6232, '0,0,0,0'), +(6234, '-1591922206,-1429764510,-1087339341,1592935185'), +(6473, '-895585464,-461480444,-1851545592,-837241102'), +(6475, '779607549,1253385498,-2146148208,-1240685073'), +(6484, '0,0,0,0'), +(6485, '0,0,0,0'), +(6486, '0,0,0,0'), +(6487, '-844708758,693908396,-1724237422,-2131620302'), +(6488, '-285330291,1051990177,205476286,1929287225'), +(6489, '1563065045,-1659976681,-1630140039,908238605'), +(6722, '1365340377,429184662,-767507159,-1766554953'), +(6725, '-798347038,29419308,-1054119992,193134650'), +(6726, '-3492110,65044555,1450623668,-483811536'), +(6732, '0,0,0,0'), +(6733, '0,0,0,0'), +(6734, '0,0,0,0'), +(6735, '0,0,0,0'), +(6736, '0,0,0,0'), +(6737, '0,0,0,0'), +(6738, '0,0,0,0'), +(6739, '0,0,0,0'), +(6740, '0,0,0,0'), +(6741, '-1634995791,710519356,-47126463,-1180416882'), +(6742, '0,0,0,0'), +(6743, '-1239303400,-1604922847,-1532369005,982307785'), +(6744, '-496944733,-779028234,-230846664,150558918'), +(6745, '365190378,-1767339898,2011432030,276148826'), +(6746, '0,0,0,0'), +(6979, '0,0,0,0'), +(6980, '0,0,0,0'), +(6981, '0,0,0,0'), +(6988, '0,0,0,0'), +(6989, '-891749173,-113432144,-1228601828,695082558'), +(6990, '0,0,0,0'), +(6991, '-1448188175,626198836,1985989165,-1062391664'), +(6992, '793817707,983201574,1970817843,1370732667'), +(6993, '-932618963,243797238,-1433505613,-236523555'), +(6994, '1970708736,-245310471,1179446032,-620283247'), +(6995, '-1227889203,-199624313,2143494494,531356102'), +(6996, '0,0,0,0'), +(6997, '0,0,0,0'), +(6998, '0,0,0,0'), +(6999, '0,0,0,0'), +(7000, '0,0,0,0'), +(7001, '170738852,2045755396,-1580637869,-1933392334'), +(7002, '0,0,0,0'), +(7235, '0,0,0,0'), +(7236, '570290255,-1513898184,-1269691884,782850050'), +(7237, '0,0,0,0'), +(7238, '-853120516,1697831503,-12188711,770411534'), +(7244, '796665731,1335649913,758227393,585095755'), +(7245, '0,0,0,0'), +(7246, '0,0,0,0'), +(7247, '-122734679,-1029771956,1633683499,846700218'), +(7248, '-339349863,-706006976,1444664020,-668854242'), +(7249, '104968959,1007983047,-1342360496,1832152849'), +(7250, '497663526,-1258315657,-785166329,-999527877'), +(7251, '0,0,0,0'), +(7252, '0,0,0,0'), +(7491, '0,0,0,0'), +(7492, '417150556,1135530200,2139696777,-742314409'), +(7493, '0,0,0,0'), +(7494, '-1653750072,103282771,384178856,1122166637'), +(7496, '-1890766195,-149577199,919306397,-954784877'), +(7497, '0,0,0,0'), +(7498, '0,0,0,0'), +(7499, '1187151706,718898064,1304406549,-1997198061'), +(7500, '-1797612105,-469426862,-1728147007,-646639650'), +(7501, '2127797097,-994429649,-35298241,-1340339542'), +(7502, '1592232730,1693978666,-878012906,867925201'), +(7503, '-895717823,-2040871288,1280251884,-1205523998'), +(7504, '-1824142464,-1651867367,-1541058541,-1034512274'), +(7505, '-1177354806,-1864641630,23736540,750869235'), +(7506, '0,0,0,0'), +(7507, '-1476331852,1093075535,-2003580146,734573751'), +(7508, '1640963123,1896768721,879048302,-1776414657'), +(7509, '-1575412129,-1725410171,-2003328048,1050396588'), +(7510, '2073894230,-553352720,274325814,-1461052837'), +(7513, '1066375195,548376104,-1771348528,1096433429'), +(7745, '1212560091,-662504525,-1213494614,-1245629284'), +(7747, '0,0,0,0'), +(7748, '-850453392,-249468744,1635462867,100471784'), +(7749, '369356966,-1038198212,282112206,802717032'), +(7750, '0,0,0,0'), +(7752, '1894158557,20416613,-1434347651,-1209846311'), +(7753, '2071150318,-1033460657,638407631,1622436805'), +(7754, '-1095536942,-1766628646,-829395519,716805082'), +(7755, '251339001,946355543,-1190230098,1528548224'), +(7756, '906056473,-2135922837,-855754671,-503357515'), +(7757, '-103936636,-6150806,-1262632665,1507740731'), +(7758, '1989884300,237012546,22566346,1351365126'), +(7759, '645523546,1835996818,-892497478,-366414132'), +(7760, '2042192998,743878512,-1804236758,-1160501924'), +(7761, '0,0,0,0'), +(7762, '0,0,0,0'), +(7763, '-1001265201,-470231326,1393096818,2026714448'), +(7764, '0,0,0,0'), +(7765, '0,0,0,0'), +(7769, '560280774,910095015,871073102,263015376'), +(7995, '0,0,0,0'), +(7996, '0,0,0,0'), +(7997, '0,0,0,0'), +(7998, '0,0,0,0'), +(8001, '690512367,1578449236,-1443501555,546253393'), +(8002, '1597309277,469931771,1619035792,663887748'), +(8003, '0,0,0,0'), +(8004, '609107948,-755432209,-723012522,1175820911'), +(8005, '1334074196,-652454149,1601317454,469562426'), +(8006, '-148570664,-1136658706,-1902631968,-1188445291'), +(8008, '-997738189,-1761742229,-1676854941,-885390031'), +(8009, '-1466175704,351054294,-1150290302,-1555608739'), +(8010, '-120476958,772788582,297461207,-245665438'), +(8011, '1990004495,747113508,324107547,-123628033'), +(8012, '-207206478,596983639,-1721843709,-1184583849'), +(8013, '1846865793,1272334140,-253842269,-2073715507'), +(8014, '-1279878558,-211098870,431176504,-1619319528'), +(8015, '305015825,-634097708,865786116,-1850059578'), +(8016, '0,0,0,0'), +(8017, '959968310,-363819769,-1402232275,-1678358818'), +(8018, '0,0,0,0'), +(8019, '-1512999074,1064201012,2143076355,-1937376726'), +(8020, '-955989323,1284433026,690014510,2145912092'), +(8021, '-297039986,-1011877372,-1763869337,-900998253'), +(8022, '-372818046,-734509409,-1405233755,649860582'), +(8025, '400525614,1883669529,-440182999,-357730578'), +(8240, '2101719552,-225162086,293186389,-162955969'), +(8241, '-320813650,-1654452876,-352291520,-290946896'), +(8251, '1142567601,1650263019,49659607,-899246535'), +(8252, '-428244729,-903477551,-931984389,-583689232'), +(8253, '1274757849,1788985771,-1066826733,223495957'), +(8254, '-2072640345,1256455304,497449669,1898688910'), +(8256, '-591763830,-48757057,1738175039,232723115'), +(8260, '-357122149,-546918388,1659548066,2023267334'), +(8262, '937196178,1968517712,1697292009,-2036678778'), +(8263, '-1251027771,-846995999,1156602771,-1922080053'), +(8264, '-1819872894,1038324305,1342314979,-1220415324'), +(8265, '1850912058,-559075374,924054405,-1595809620'), +(8266, '-1571771132,-1956678912,-454057689,65399733'), +(8267, '-474856962,-1295973639,789657650,-1769058462'), +(8268, '0,0,0,0'), +(8269, '-497435078,2028988145,486156819,-1178938803'), +(8270, '832265044,-1682160790,1376131373,1516015571'), +(8271, '2011499665,-1820626075,-1349106171,1373054648'), +(8272, '-279193034,-753054903,626747605,-1887843183'), +(8273, '978831670,664328414,1943273766,-1823800887'), +(8274, '0,0,0,0'), +(8275, '0,0,0,0'), +(8276, '0,0,0,0'), +(8277, '0,0,0,0'), +(8282, '981025536,812353111,-688221351,-284141633'), +(8496, '-1397271211,-1829692174,-1138445890,-1384844481'), +(8497, '2127424498,1622469596,-1889017351,-1927651722'), +(8498, '-1323684593,-1102390619,1456317314,-2027993898'), +(8499, '1158999293,2131770333,-861122128,1149793504'), +(8500, '0,0,0,0'), +(8506, '-1227747958,1491928866,1293676120,2065870654'), +(8507, '1765022148,-80255262,-725852452,-1286377093'), +(8508, '-2081560462,-761421769,-880257396,-1678043286'), +(8509, '1177709231,-1828086540,-860279535,2071959242'), +(8510, '-1808638230,-1458952839,-798099535,1502725514'), +(8514, '-860052712,1822870800,-1847449751,-1914055926'), +(8518, '2036940233,1361257283,-1629264154,-858326595'), +(8519, '-2051430502,-746663069,-593970049,379050420'), +(8520, '76118065,2000660952,-1441067939,-1293828961'), +(8521, '-118666576,-7617915,708835107,-449427634'), +(8522, '-1916075284,1880898106,-1618113268,464036603'), +(8523, '-1203368702,359745318,-2127031319,-1802364988'), +(8524, '37036095,-259799144,-1679313180,74723020'), +(8525, '1128073531,987906789,1511073840,455662935'), +(8526, '17223090,-1297369957,1547271072,-1038573542'), +(8527, '1802043449,1098466035,-1011563733,-1036725278'), +(8528, '-1141049958,1626814655,206252937,924426084'), +(8529, '2008179575,1983086010,22167022,2114412614'), +(8530, '-1466808210,962381183,-1581244207,-457271917'), +(8531, '0,0,0,0'), +(8532, '-137058185,1747601450,-625086059,184813810'), +(8533, '0,0,0,0'), +(8534, '1712031920,299813553,484205392,-939092911'), +(8545, '1322297584,105544016,-1148309508,-574484176'), +(8751, '0,0,0,0'), +(8752, '238354066,1687454525,1494747147,1911377137'), +(8753, '-2045400446,-157254916,-1938039698,1143548881'), +(8754, '576590945,726748596,-159128087,905509251'), +(8755, '-1165798584,772244190,-402783978,541755309'), +(8756, '0,0,0,0'), +(8757, '0,0,0,0'), +(8759, '0,0,0,0'), +(8760, '0,0,0,0'), +(8761, '1760753095,-1427813077,266675077,-255782653'), +(8762, '-1868090282,-1544166661,-731821081,1736861342'), +(8763, '1119677832,690614046,2050117701,105876696'), +(8764, '1880374454,1213514336,-2078057600,-2021473694'), +(8765, '1948979312,134066799,-78879371,-323055687'), +(8766, '1244410566,-1397143615,-1848205088,-1435723900'), +(8769, '2044453226,-2064473213,1306128347,784973817'), +(8770, '2057744615,1697537962,528178774,-1047470804'), +(8771, '353086160,838307611,374264785,-686519866'), +(8774, '1016149511,-1118500660,-968978308,486472340'), +(8775, '-147836833,971452977,1498176968,-231259499'), +(8776, '-1754587844,664188970,-1128425220,59583193'), +(8777, '-137310003,1329143043,-669559936,-1913927786'), +(8778, '2142407721,-1514375765,1855937572,220818342'), +(8779, '-1680845199,-1149954104,-1177525481,-576614197'), +(8780, '0,0,0,0'), +(8781, '-2133721491,843228961,1706232103,-934369964'), +(8782, '-1567987347,-2104385976,443181406,-256058951'), +(8783, '412947427,-974210888,817804533,712249271'), +(8784, '-460994736,1511026573,402950670,-6026193'), +(8785, '1543774040,-487517297,-1630373503,102220753'), +(8786, '0,0,0,0'), +(8787, '1791798624,-1711313280,166719404,-1487207913'), +(8788, '0,0,0,0'), +(8789, '0,0,0,0'), +(8790, '230755787,-1139640838,-21592892,49661984'), +(9006, '0,0,0,0'), +(9007, '0,0,0,0'), +(9008, '2084752401,-1394447522,2084945842,1474596929'), +(9009, '898432013,1464425485,1479297637,1732705669'), +(9010, '1362096653,746663700,338872870,9791230'), +(9011, '-135370293,700991137,-1302596410,-1183796338'), +(9012, '1204696185,-486414605,-1016110497,134649113'), +(9013, '0,0,0,0'), +(9014, '0,0,0,0'), +(9015, '0,0,0,0'), +(9016, '-1274221467,730617286,-1448054569,427043430'), +(9017, '-518439975,-1388520826,203536985,1155539914'), +(9018, '-116231890,2037305449,-518154118,43034164'), +(9019, '-1293726217,-1696419000,-859948399,1059527576'), +(9020, '-1906040194,849367381,2098246444,1605043698'), +(9021, '-665917952,-432697139,-602494723,-2097936281'), +(9025, '1812159970,1795526437,1172074678,289074337'), +(9026, '-788500037,-1522730757,-651789033,304659146'), +(9027, '-2144855461,-75930625,1875031025,-2116300819'), +(9032, '-828656936,1072022787,-640768629,-1761240236'), +(9033, '-1516886192,1081198982,-1267611367,-339961975'), +(9034, '1874260326,1014701729,745849790,-1354790160'), +(9035, '1525685385,1372975156,-2010144170,-1594192581'), +(9036, '0,0,0,0'), +(9037, '0,0,0,0'), +(9038, '-473165893,2110570897,-1726275929,806180444'), +(9040, '0,0,0,0'), +(9041, '0,0,0,0'), +(9042, '0,0,0,0'), +(9043, '0,0,0,0'), +(9044, '1541894861,-2145670115,-138793212,-921922364'), +(9045, '1041036316,-2144924275,-1062048066,755505347'), +(9046, '1823337636,645784236,428459555,987429760'), +(9048, '-2078486774,831084557,-1515890598,-396794300'), +(9049, '1865420136,1880907821,-543917600,1097363521'), +(9050, '-1725663967,1678055280,1100896300,706957861'), +(9109, '0,0,0,0'), +(9110, '0,0,0,0'), +(9111, '0,0,0,0'), +(9113, '-570298090,-864625293,-668545435,8389096'), +(9114, '-962790446,-1706163576,82969599,310163719'), +(9120, '0,0,0,0'), +(9121, '0,0,0,0'), +(9122, '0,0,0,0'), +(9262, '-1327237404,-257519940,-1398355053,-970581711'), +(9263, '-1896898351,81121501,787229912,-904856097'), +(9264, '1517876710,1288106006,-319745194,1340771706'), +(9265, '1050111381,-276500917,1975172977,329246991'), +(9266, '2007797925,-1715573299,642190072,-662957526'), +(9267, '1811361377,-1208567174,103788086,-225339394'), +(9268, '1897267086,556470475,-1130589672,-743996492'), +(9269, '-1228579055,-1634436411,181074707,1831294115'), +(9270, '-1224224741,1755403824,128170045,498510702'), +(9271, '-875378602,-1077772187,594715960,-738079672'), +(9272, '-1755813275,373737884,1517748428,738184348'), +(9273, '-503076140,-319114908,-1349219228,1465453758'), +(9274, '1831263162,2092992846,-1206288816,831074245'), +(9275, '-350994118,-585442377,-1041480219,-1986244402'), +(9276, '-1624253043,1426176358,210641208,773759029'), +(9277, '272801923,1797149371,-131972865,1265002008'), +(9283, '0,0,0,0'), +(9284, '0,0,0,0'), +(9285, '1742241898,-1564206342,-460725435,1614032789'), +(9286, '0,0,0,0'), +(9287, '-272431907,639665846,-1633276264,1645937141'), +(9288, '1322101455,-912043509,-514354639,-977254423'), +(9289, '-1520212935,995884312,481657690,-9846292'), +(9290, '702687456,43635181,-1983533012,-319469910'), +(9291, '0,0,0,0'), +(9292, '0,0,0,0'), +(9293, '-810831340,-1857428683,-892017185,249052010'), +(9294, '990154613,2143262288,2039829180,-2089104408'), +(9295, '224580924,-858933614,-432602901,-1433710083'), +(9296, '0,0,0,0'), +(9297, '-1667110403,-655319123,-2124588845,-262291671'), +(9298, '0,0,0,0'), +(9299, '0,0,0,0'), +(9300, '644587156,-605721698,681391959,1688865408'), +(9301, '0,0,0,0'), +(9304, '611752720,1326485335,251749748,-1744485563'), +(9305, '-262682037,564453965,-698040657,-946867983'), +(9306, '1213624565,1443323179,2068217235,-1098243446'), +(9362, '-253025041,376209206,1663580032,1115549308'), +(9363, '0,0,0,0'), +(9364, '1350964684,-1141243546,-158288919,1853454502'), +(9365, '591308830,1667019329,-1039629756,738471651'), +(9366, '-1691974727,-1591730841,1506117200,822346809'), +(9367, '0,0,0,0'), +(9368, '-911562498,-1433720091,257702084,1652121807'), +(9369, '404061599,492688035,-1416873270,2021546702'), +(9370, '1867571226,-1557589414,74894252,-1402573358'), +(9371, '-1625040094,1138785379,-41923493,400034327'), +(9372, '1005996231,-569567890,-1578994771,-1136932414'), +(9376, '0,0,0,0'), +(9377, '-1671261866,-750153286,1731026368,-1501269926'), +(9378, '0,0,0,0'), +(9515, '0,0,0,0'), +(9516, '0,0,0,0'), +(9517, '0,0,0,0'), +(9518, '-557639005,398566091,-133936467,-850662847'), +(9519, '2045915867,843943848,1479393319,61248459'), +(9520, '-1534254084,-142177068,838351559,798595528'), +(9521, '-1756008730,1701620533,-579278885,1205797104'), +(9522, '1252542168,-1448059709,1122042436,-1636001244'), +(9523, '-1310187207,-834726064,-1799766719,1699616161'), +(9524, '-1209775078,-1209251210,-1747509150,90457302'), +(9525, '273717513,1026318281,-1648631650,-2024237038'), +(9526, '-946191110,746761324,810538817,107990300'), +(9527, '1148278078,-266468530,-243084816,-1561247930'), +(9528, '2102113094,1056838948,-1779359269,700318930'), +(9529, '727060780,-652255702,-1555170272,-2145386007'), +(9530, '-932232860,436123389,-658931046,2094924060'), +(9531, '-1745155259,444744719,2018327862,2021464472'), +(9532, '-1164282027,-620126230,1487448896,565185597'), +(9533, '1393307887,646464303,-1582337843,2048412434'), +(9536, '679931979,-1660801436,-1184954844,-1006016912'), +(9539, '-96476891,-1518725637,-1983538368,1621232019'), +(9540, '-489788621,2021133858,244677479,1058347252'), +(9541, '1352006827,1096305726,805420370,-1426885864'), +(9542, '0,0,0,0'), +(9543, '1852273964,-104833248,-2069080639,-188650169'), +(9544, '-2013112418,-1715158159,1261185685,1357880927'), +(9545, '1322297584,105544016,-1148309508,-574484176'), +(9546, '-257183655,-1481577287,-431332303,-242811730'), +(9547, '-1998382641,30700550,1548517068,-855708219'), +(9548, '0,0,0,0'), +(9549, '-1648136735,1402264941,639592027,348907048'), +(9550, '795472733,-1836130665,-1594549016,884470590'), +(9551, '-355590781,-1549463073,-46968616,648246695'), +(9552, '1925832709,39840626,683796237,-766329117'), +(9553, '-1873675730,-1930195432,759400017,-1395479956'), +(9554, '0,0,0,0'), +(9555, '0,0,0,0'), +(9556, '-300312374,-1152515846,-863452271,-1500855067'), +(9557, '0,0,0,0'), +(9558, '1245928204,-1892089406,-1321168410,-1108146443'), +(9560, '-628764335,1585475717,2036165620,-1921088167'), +(9561, '1291655395,-1426986127,1894534662,-1705749378'), +(9562, '-1047298777,1197811918,663745433,-2098029011'), +(9619, '0,0,0,0'), +(9620, '1941157140,-1630547377,-1114648519,87057467'), +(9621, '-1420915988,2069137101,1981379143,-252845225'), +(9622, '124513614,453662882,-154905102,-2103796118'), +(9623, '496891811,1091959696,690916089,588310866'), +(9624, '-1327451949,-476085243,-125348987,634827214'), +(9625, '632876038,913599309,1089335965,728823985'), +(9626, '-1411729186,1049744836,-1608961973,-1681145313'), +(9627, '0,0,0,0'), +(9629, '0,0,0,0'), +(9630, '0,0,0,0'), +(9631, '1266963397,269916041,734658458,725243574'), +(9632, '1023657558,-2001662423,-46679010,2064543607'), +(9633, '0,0,0,0'), +(9634, '0,0,0,0'), +(9771, '0,0,0,0'), +(9772, '-1742165439,-1273697376,2055229018,901215817'), +(9773, '465644643,-503279415,-1368947935,-1293998544'), +(9774, '-969323176,1775448370,1827500666,-2138545804'), +(9775, '1009031775,1977305970,-699602333,1802690745'), +(9776, '2000999142,205577043,-1417782040,-218453463'), +(9777, '821512120,-1253173249,-1078446427,-122269601'), +(9778, '85368686,-1059751721,-1008551161,-454427033'), +(9779, '-1158828855,-293580830,713180736,762257070'), +(9780, '-2067572823,-571539672,-976614369,-2016221403'), +(9781, '-2124931990,-1174347052,-1107047767,-1503661911'), +(9782, '963803363,-1625577381,-1515560012,797000049'), +(9783, '1785268065,-1215473770,1311222217,-1445453250'), +(9784, '1874487660,1635569708,-1949316626,-1920350613'), +(9785, '-65486938,-1485596203,-1327236566,408455718'), +(9786, '-2073791326,-155318773,-116282245,-1424900475'), +(9787, '218097749,1242681128,-2014981896,1175992711'), +(9788, '432135203,92254316,-1619550296,76065412'), +(9789, '-620749099,528872615,1976629038,667155751'), +(9792, '1500471532,1729075639,-304984137,1117230148'), +(9794, '1788083183,2097372895,1633476682,-589223611'), +(9795, '0,0,0,0'), +(9796, '517509106,-2019799796,1066150754,-676371780'), +(9797, '672333395,-284721288,262558790,-344798491'), +(9798, '0,0,0,0'), +(9799, '181886191,758691911,810524169,1456599388'), +(9800, '1230198769,708911105,-539692192,1126153482'), +(9801, '-1411921732,1651102545,-1826113310,-859079982'), +(9802, '209485096,602940753,2048389198,1202197220'), +(9803, '-1262437179,-1086288107,1393145472,-1318086655'), +(9804, '-439033034,-361310510,37875158,-1700152748'), +(9805, '-2114807953,-1293116867,-1013807366,-1068548578'), +(9806, '368995667,940146211,957819918,-761335591'), +(9807, '0,0,0,0'), +(9808, '308766586,-214665927,-1255727041,-1034716346'), +(9809, '-128763363,653932339,-1040336001,-372452691'), +(9810, '-752844904,1782384595,1054043870,282233468'), +(9811, '-929935426,1005492936,-2143736251,386758357'), +(9812, '50571970,-1762921782,-1667424270,524742325'), +(9813, '0,0,0,0'), +(9814, '-34428628,1940609264,-1638642159,-295486604'), +(9874, '-1211069631,-930191762,-1989737435,-1798369704'), +(9875, '991829915,-192761962,1424546941,2003334283'), +(9876, '1133268311,-1303891370,1138954157,-1069688346'), +(9877, '727463922,-941540275,874446728,-1678669133'), +(9878, '-664032051,-488667648,685343368,-1970848496'), +(9879, '921274725,1426716778,-1067082627,-1824724'), +(9880, '38957255,666017454,671177307,-803617279'), +(9881, '21755694,-1408974145,1341158791,-1638315086'), +(9882, '-440130527,495078969,2058162871,-510883365'), +(9883, '472234846,1198089044,500187071,239458328'), +(9884, '0,0,0,0'), +(9885, '0,0,0,0'), +(9886, '1515209815,-1457146379,-146402808,-1454274033'), +(9887, '0,0,0,0'), +(9888, '0,0,0,0'), +(9889, '0,0,0,0'), +(10027, '1491811841,1724263915,-1397066186,1733646819'), +(10028, '0,0,0,0'), +(10029, '203145796,-773666188,-569831878,-1510455793'), +(10030, '1533193920,-157056689,-1706395009,2060884310'), +(10031, '-1239300919,1798229092,-1044578379,493913447'), +(10032, '-855251381,1871716645,1835777659,2032052033'), +(10033, '1902138469,-641202141,715430361,2060827965'), +(10034, '-1435464304,-836439389,-788586899,1579582706'), +(10035, '0,0,0,0'), +(10036, '689954852,-1377739344,-847433475,-1883927289'), +(10037, '914357934,960797390,753237255,-1274576207'), +(10038, '-10852366,551587390,-821401504,-1151814286'), +(10039, '2005404778,-1913619257,-2029034667,-276727853'), +(10040, '-691368982,1823514267,-284316500,-1573696560'), +(10041, '1187862613,-117754960,130411769,-1192628982'), +(10042, '-1666575192,2084626585,2023809342,-1587593937'), +(10043, '1912880022,-1723964516,2062562401,-1162129761'), +(10044, '1044974347,726311355,-917896013,-1659516255'), +(10045, '-1429464298,1580360509,-1936477065,-337842786'), +(10048, '-1457016886,349941309,-400267403,-1711584223'), +(10051, '0,0,0,0'), +(10052, '0,0,0,0'), +(10053, '0,0,0,0'), +(10054, '0,0,0,0'), +(10055, '-813287484,-1417786621,-1794468339,578992617'), +(10056, '799806902,-1359852248,484436692,-1205184204'), +(10057, '1308484583,-2063649066,898275176,-860496835'), +(10058, '-504878866,1988421643,-1036984650,513341227'), +(10059, '1185163869,-1047826729,-1461057337,139139001'), +(10060, '0,0,0,0'), +(10061, '1683880127,1851133137,-567572662,-1477799312'), +(10062, '2024717410,-1807032706,1106507805,1426160484'), +(10063, '0,0,0,0'), +(10064, '1978019309,1433546802,-1989346624,-1611361553'), +(10065, '924349786,-326314365,-2042125189,1066401699'), +(10066, '105954939,-1741244981,-1491777272,207112205'), +(10067, '0,0,0,0'), +(10068, '-452138979,-1929816521,364996963,-1315825295'), +(10069, '-1669561589,-1287976882,1220187974,434661979'), +(10070, '337024788,-2037667137,-1229192681,72559338'), +(10071, '917431355,-1337694006,-1242762433,-1310804996'), +(10073, '-381328476,-448982838,1680944624,-2015809073'), +(10074, '-212532394,882343988,2089679345,-303180169'), +(10129, '-1418181074,-681458464,2135343677,-1473942322'), +(10130, '-672924254,-1112220382,1225279473,1100576994'), +(10131, '2085292062,228024419,1890298036,1347089957'), +(10132, '-1019838423,-1536669319,-512064293,-1039678504'), +(10133, '1646350825,-289900492,-802244012,-1058372697'), +(10134, '-1343151186,-867897862,-1265011615,-389855656'), +(10135, '-642848772,814056528,923267823,-1753006596'), +(10136, '512428922,-1090392188,-1855405299,-966311133'), +(10137, '-1946240135,-1871060363,1675566259,-1820554947'), +(10138, '1254633881,-1405578656,1660494880,-748797494'), +(10139, '1226915855,1002704314,-440823591,-129555587'), +(10140, '-104825447,-1092637213,-105814713,-2129567531'), +(10141, '0,0,0,0'), +(10142, '1872120942,-765842959,449655176,-1168971827'), +(10143, '0,0,0,0'), +(10144, '265530509,2033515489,-2022406749,-591072091'), +(10145, '0,0,0,0'), +(10280, '-1245893544,-118079793,-1624599660,-626968532'), +(10281, '2129832996,-1542613289,-1612399066,-323592936'), +(10282, '667792020,292003472,-998896147,7080342'), +(10283, '-2133080221,1327669620,173304076,-151662318'), +(10284, '0,0,0,0'), +(10285, '-1317120534,1321149083,-1700628824,1028203235'), +(10286, '-1040445688,-7408505,807695839,226589344'), +(10287, '105887361,-945638691,1922834114,961561887'), +(10288, '-642909559,1719566555,1831536672,-1910524848'), +(10289, '-1592029672,503478145,-1207378954,-1502774843'), +(10290, '-587752684,-318735232,336724431,-1931735346'), +(10291, '0,0,0,0'), +(10292, '933507835,1135929795,-1932059890,1492191263'), +(10293, '-867083397,-512358173,1502490725,560653474'), +(10294, '1880113662,-767344332,-1364117989,-1128121945'), +(10295, '-1920480496,-1423914110,951774544,-1419269290'), +(10296, '-1699964827,1784080353,113260638,1213918121'), +(10297, '548003786,2085747240,921073357,127574933'), +(10298, '-233124901,1236532280,1418961777,2055047860'), +(10299, '-1615885118,-995676641,-1525013344,1823957481'), +(10300, '-988516294,-1280976850,904135114,1435032921'), +(10301, '-158146381,1698585677,-910760378,815929788'), +(10302, '639277786,-1909940120,130074677,491844814'), +(10303, '187236989,-1452229648,1948816476,-1775249280'), +(10304, '697091890,424251437,-890570835,-1490213215'), +(10305, '-1704965642,953513170,-906801121,1590671819'), +(10307, '-808294570,-945302681,-1122362002,76670054'), +(10309, '1853022849,1563769590,-839166,1806219482'), +(10310, '-1472463766,1824686108,888673126,2074633489'), +(10311, '-1976059860,922032078,-1950673483,394409071'), +(10312, '-736431800,2013006475,1225434861,59504107'), +(10313, '1731455740,156777644,-1031599999,799430192'), +(10314, '-2020182865,-861201399,1793241744,-541294677'), +(10315, '-1034094191,1810212216,618808107,1905492210'), +(10316, '0,0,0,0'), +(10317, '216403117,1910251124,144162918,224240414'), +(10318, '1053988597,-2121917140,1730755899,1549334321'), +(10319, '0,0,0,0'), +(10320, '0,0,0,0'), +(10321, '1996825886,-1552231723,1721080145,-869420516'), +(10322, '1773602876,-1410394076,-239593243,148286798'), +(10323, '0,0,0,0'), +(10324, '-1670587478,-401532783,1705875521,995683837'), +(10325, '0,0,0,0'), +(10326, '-375687378,472100528,-288941184,523344380'), +(10329, '1531226404,988304083,811017843,293412250'), +(10330, '654539047,-1306492503,-1808115050,768495826'), +(10331, '990721395,1603319590,-1050453751,-2054660152'), +(10386, '1123418142,-1191190798,-67920748,-964540310'), +(10387, '883942538,-1316327739,-409646311,1715503465'), +(10388, '1161495838,-228210135,405156354,-1914329414'), +(10389, '1232449212,-728763227,1729853683,-1383669718'), +(10390, '1529348981,363265179,-529329077,-1258205924'), +(10391, '1697636321,993503902,1432113433,-1040062313'), +(10392, '2130459982,-1301889773,1900862262,8338171'), +(10393, '-1385824102,-1224106775,2052804935,-259720956'), +(10394, '201272072,-1622948650,613159689,479293860'), +(10395, '-22365676,-607864450,1375198454,1650832425'), +(10396, '-1878072140,1648991920,1054624070,333445417'), +(10397, '0,0,0,0'), +(10398, '0,0,0,0'), +(10399, '0,0,0,0'), +(10400, '-1656816922,1318311812,-811481661,1625916625'), +(10401, '0,0,0,0'), +(10536, '349537117,1202512092,-698870718,-2083455397'), +(10537, '-1212814675,-1832622210,1483740828,1060911198'), +(10538, '-2091844157,-1013393743,1806920513,-1464143404'), +(10539, '-1468645226,1809562421,-1594801223,389468972'), +(10540, '1624468108,-1439095387,1193987877,1292402073'), +(10541, '1436392581,-334805062,1155918987,-305555465'), +(10542, '49999111,1615631158,-1317472464,893160897'), +(10543, '-1329281012,-1688960186,1798967251,1154324972'), +(10544, '1385633495,-1924761002,1040853985,475919579'), +(10545, '-1415752673,-1618131779,2102457954,-2055391607'), +(10546, '192659093,263441429,29086759,670094037'), +(10547, '0,0,0,0'), +(10548, '-1157394711,-1306553144,2105373539,798383108'), +(10549, '1318595669,-1886528715,150090497,1821415700'), +(10550, '-795923963,-1523185883,-1632108091,-59699166'), +(10551, '-50853484,-2121251994,717523561,-1277392698'), +(10552, '1638763153,-1813807494,-2075537642,109524290'), +(10553, '-177114588,-1502279412,1150652747,-2041470332'), +(10554, '1188457126,-1729374406,-799893645,1217674507'), +(10555, '298183408,-1907842333,1235195826,110456069'), +(10556, '1209135093,-27999571,778897676,-513558195'), +(10557, '-807815903,958215082,-647601710,1350072419'), +(10558, '1337729793,1717973268,-1721269042,-65511201'), +(10559, '905435949,206096000,694415949,384719862'), +(10560, '761635027,-136268132,1896585946,-1863372135'), +(10564, '1279522133,380240348,604239496,1759916207'), +(10565, '0,0,0,0'), +(10566, '221004409,1368318650,-1237341956,25411913'), +(10567, '-542823457,1281716081,-1533620503,-1571738600'), +(10568, '-1256077768,23520063,733929571,440341343'), +(10569, '1088282039,955053277,-1112053231,-1883141767'), +(10570, '-2055371283,-1222616912,-540563619,-101327500'), +(10571, '2044310497,1377055114,-357355629,1279109029'), +(10572, '-1375061166,-1411427241,-294467489,-2106748278'), +(10573, '0,0,0,0'), +(10574, '-1609693854,991245740,148787249,-1011766477'), +(10575, '434036980,-780702800,-1042242727,-354464628'), +(10576, '0,0,0,0'), +(10577, '824897954,-1807466644,2079017570,1299975025'), +(10578, '809464329,-292434275,-2009994217,1859510721'), +(10579, '-123618550,684067223,486273630,-1103816964'), +(10580, '0,0,0,0'), +(10637, '0,0,0,0'), +(10638, '616415398,-1155981361,-1520230064,482531809'), +(10639, '1174910426,137692025,-576373115,754439009'), +(10640, '811726333,-842125498,1799462193,-1151360401'), +(10642, '658277839,1898856178,-1037196236,1620289692'), +(10643, '1834436817,1391913024,-500731515,1550481150'), +(10644, '1308400341,760027142,1015620386,-1917480553'), +(10645, '573801874,1064182706,1692837876,-2084731388'), +(10646, '-180468483,-1085034165,1731369422,-1353138557'), +(10647, '-1503343410,-1634708207,-1757301917,-2003987513'), +(10648, '1512581514,-1121623940,-1861238740,1459885224'), +(10649, '1423886987,-1654331043,-678242006,1738009197'), +(10650, '-908578223,-911827513,1137573080,-419444146'), +(10651, '0,0,0,0'), +(10652, '1580722385,609745227,1407021351,1098485033'), +(10653, '570189753,-1700559836,2108215671,-701775893'), +(10654, '0,0,0,0'), +(10655, '0,0,0,0'), +(10656, '0,0,0,0'), +(10657, '0,0,0,0'), +(10792, '-125671574,254943715,1343095705,-1965171670'), +(10793, '-918820648,-575477272,1826808974,1583566620'), +(10794, '-62638721,-2055205851,-488702423,1198245579'), +(10795, '1763600957,-365178279,1448589605,-1883563545'), +(10796, '-1834928370,1352649164,765865015,1708785419'), +(10797, '1162623334,1082199860,2059929131,-2132110355'), +(10798, '487791818,49811808,-1421313612,1181040843'), +(10799, '1217726924,398085963,-1594428602,886790463'), +(10800, '1040846845,257923177,-1680471073,-1533314482'), +(10801, '850125851,1199386038,-1494136472,-1487577933'), +(10802, '0,0,0,0'), +(10803, '-1028081880,964144306,174845257,1906118817'), +(10804, '2044023784,-1099109846,-1909401127,-1304331091'), +(10805, '-1168385071,683797418,469816742,1479779110'), +(10806, '-1998000009,766783746,1340848604,-610487829'), +(10807, '-1978433603,-211738714,1401562605,-1310990578'), +(10808, '-1264729881,1766238888,-244541987,-605351538'), +(10809, '1586374012,-258505553,-528210036,1595850453'), +(10810, '-2030061920,-333031845,-792169278,597648394'), +(10811, '-1788784737,-1830208994,935346396,517118750'), +(10812, '90198727,258723745,748197903,-426406231'), +(10813, '78604466,-1582607088,691011324,-1155733133'), +(10814, '707246869,541333062,-986248348,-171063894'), +(10815, '2102925673,1133406202,-1885710196,165240951'), +(10819, '-904401587,-2054970579,55120674,-1889562804'), +(10820, '1391829934,487584817,397681771,-2002250378'), +(10821, '547864979,703484266,-571616416,-1277862770'), +(10822, '147390427,1823879919,432432207,-1107512174'), +(10823, '-626951011,-1729338061,-758591782,439072305'), +(10824, '-1104875422,66393069,-739286658,-254408159'), +(10825, '-1671459541,1278917254,1363778127,979691919'), +(10826, '-1930228005,99338983,-859455367,-950728993'), +(10827, '1032543297,-526372126,1157124086,-623019107'), +(10828, '1665018619,-1607107877,-1997272567,1342325223'), +(10829, '0,0,0,0'), +(10830, '-608096960,58771202,1174291927,-1613596249'), +(10831, '-1576700407,-806518664,-901641004,-573449068'), +(10832, '-644307702,-424113333,1143257020,1132671603'), +(10833, '-2021761641,-2091050426,1623160087,-1674608487'), +(10834, '-1640569486,-512141704,-1179536382,720004469'), +(10835, '0,0,0,0'), +(10836, '1637505449,619992365,-1935536269,-1526242295'), +(10837, '0,0,0,0'), +(10838, '1678881362,-952862831,-1804688659,-1247653912'), +(10839, '-885801393,-721089484,-1671928660,-391245118'), +(10840, '-2112185519,-1346264110,624078956,-426600771'), +(10841, '1553036338,2006573090,816979270,1677882458'), +(10842, '89140380,-204251076,-1595945414,1904801559'), +(10893, '-645277901,-963804189,-1583950082,1158107798'), +(10894, '344355193,729779647,-822390098,-250999551'), +(10895, '1704525734,-123453856,-2038510951,229741613'), +(10896, '1622301889,-1463258766,228869805,-1761890776'), +(10897, '-532884907,-856360437,-1856255648,-108994584'), +(10898, '1997981354,1569532835,1920365312,579258114'), +(10899, '889615956,-1979547812,1134305624,56186568'), +(10900, '-1475778003,1161941178,-130498235,-281971512'), +(10901, '675683066,1081382157,224642530,-1939264495'), +(10902, '1363034505,1752486270,-64629826,1887223207'), +(10903, '-1670827594,1280370415,789868677,2002317267'), +(10904, '-275061067,1527943046,1660873402,-995392725'), +(10905, '-1326091047,1551722893,1309735056,613553820'), +(10906, '-1078751493,160151975,937918565,-1173346878'), +(10907, '1703225431,-1175749730,1842579622,-1861290070'), +(10908, '-1924304925,-2143417334,-291856580,1774510860'), +(10909, '1594286276,-309059362,519622640,-2072561673'), +(10910, '-872445206,510847548,-334876446,355059661'), +(10911, '948965123,-545528654,-459191491,-860302360'), +(10912, '0,0,0,0'), +(11049, '-621090199,-1004888612,-749707219,2052444337'), +(11050, '467286343,-1173584329,1828950249,-347448684'), +(11051, '-296929555,609763351,-2080091577,-1042760897'), +(11052, '288578281,-2129494488,774599960,-1782292467'), +(11053, '280137623,-2139580445,-1330319011,-597364950'), +(11054, '-1668355981,-1569925814,-994250231,-2107802880'), +(11055, '374763347,-681855601,109012867,-1743182199'), +(11056, '-406501477,-543853643,1541426156,232589767'), +(11057, '-1133710777,-906783679,-1659353497,-298313847'), +(11058, '-721937224,-607011472,-1902697586,959894629'), +(11059, '-1379234654,-567015201,-213396057,-1450244676'), +(11060, '1341887290,-1539014214,-2027023574,329166812'), +(11061, '-803679875,-723408908,1383151372,-1231504848'), +(11062, '-555568759,1453374289,-14801609,96233628'), +(11063, '-64230628,1920227716,1652611857,-856220145'), +(11064, '564384282,-709585243,1613220025,-1038354302'), +(11065, '1933481202,893646018,1177862990,1245692325'), +(11066, '291008624,-1992710142,-1831766032,1925022398'), +(11067, '1192664190,-341042618,-820464572,602716622'), +(11068, '1956851882,1582504141,-1090835806,1413275925'), +(11069, '281072607,-1791037221,-1221626554,801634958'), +(11070, '1991482486,-631240020,-1616896556,-496223621'), +(11071, '1897069040,1886820064,-149588823,-386960868'), +(11075, '-822254379,1979001089,-222309885,1224296165'), +(11077, '-1820943973,1377081160,541237698,877059643'), +(11078, '368703258,1379906464,-1472415010,289347299'), +(11079, '506641326,1963199125,229965472,-982593319'), +(11080, '-1110513411,181454781,-448189547,-1724524157'), +(11081, '197573217,-913745315,648860964,1604781836'), +(11082, '-1048566284,-1888694855,1387988701,1385807517'), +(11083, '1255503855,-674022312,-807132804,-1287799121'), +(11084, '0,0,0,0'), +(11085, '327229160,-1433790638,1944433240,234034136'), +(11086, '0,0,0,0'), +(11087, '0,0,0,0'), +(11088, '-1943123304,1713176080,-1524844090,-445387865'), +(11089, '0,0,0,0'), +(11090, '2089067081,828176382,-1112393031,-1452165920'), +(11091, '977844365,-245927723,99303766,-735341354'), +(11092, '0,0,0,0'), +(11093, '-379710910,-2088433559,1180928189,-54938349'), +(11094, '1496438748,-566742834,585189704,2074216180'), +(11095, '-1020136454,1747944725,1987554618,-1828989591'), +(11096, '-592943404,1816311621,-1394660709,-627674752'), +(11097, '475166922,1503166866,-1819732882,2126974237'), +(11098, '79370033,-1930799782,2111330013,1328665449'), +(11149, '-673407424,-459515480,-1880462863,2096963221'), +(11150, '685385874,67618271,-450250419,-2086862875'), +(11151, '712251572,-97105648,-615552291,-1419987674'), +(11152, '110595890,-685885763,1230390297,1617167138'), +(11153, '1133518437,1160845567,1259706301,-190274103'), +(11154, '-1390672245,-294524193,1901848082,-1240329686'), +(11155, '740691311,-158757873,133181481,775561317'), +(11156, '-122332432,-2135770681,826741763,-578793086'), +(11157, '-1366388735,-378058761,-1560378292,-1001591092'), +(11158, '160361538,733169435,1244326761,1681727551'), +(11159, '0,0,0,0'), +(11160, '0,0,0,0'), +(11161, '-1713920755,1291269906,320754968,741637543'), +(11162, '-2108680437,-1260585402,-1400451285,2023092270'), +(11163, '-1890796698,-611617711,-1429163994,-740772710'), +(11164, '1046978961,-977367474,1204218608,554630994'), +(11165, '1783387115,1062643659,254207637,-280202231'), +(11166, '1534808050,-1895827266,489865723,1605171942'), +(11167, '-1735216162,2141149053,57787230,-1263840909'), +(11168, '0,0,0,0'), +(11305, '-1429346525,-118378130,1002549662,1383588995'), +(11306, '-215265871,-2043332955,304105107,1443631953'), +(11307, '-530572214,1137382838,1524205137,-1364477332'), +(11308, '313027206,-1690946376,-43334224,216984734'), +(11309, '480918720,-1760104027,-1096191521,-1751168810'), +(11310, '581450375,550120818,-1633145086,862987872'), +(11311, '2122993198,-483099438,-1947019175,453102954'), +(11312, '-1046696594,1468533694,2085200066,-828502933'), +(11313, '910266570,2031866974,-1478026252,-1294052037'), +(11314, '1798320089,-1598590173,-1563649785,173183318'), +(11315, '669874829,-776374692,-285442682,-2063742845'), +(11316, '-2133481275,1183956887,-282614520,-1763887981'), +(11317, '-607461440,-208518302,-1370277091,1586835768'), +(11318, '-214781882,-1242534505,308650486,1398014950'), +(11319, '-561547561,-1342850556,-903509942,-570987704'), +(11320, '-346856430,-716818566,-1629533789,-835719555'), +(11321, '699352627,-565777108,-1385571111,636180354'), +(11322, '-1539862936,-1377050431,1392963326,-711921559'), +(11323, '-1710808226,725482732,1863997544,5983834'), +(11324, '0,0,0,0'), +(11326, '1862093150,1696245244,1320714102,1241887579'), +(11329, '1852262545,929814037,831292048,-138159629'), +(11331, '630464144,-872867374,2001047906,-12413476'), +(11332, '-936631483,-1093055133,-161202591,-1476364681'), +(11333, '0,0,0,0'), +(11334, '0,0,0,0'), +(11335, '-133492081,-915358326,-714649892,-2093709476'), +(11338, '0,0,0,0'), +(11339, '140118336,-1920268877,-1967576060,-1437209189'), +(11340, '0,0,0,0'), +(11341, '-1219163353,-1635920416,-2124217842,-1318908036'), +(11343, '1857048515,-1771448269,265497055,1368981799'), +(11345, '-1311889529,-1925291147,-1246770062,-343643022'), +(11346, '-750575261,-297404295,354820348,2031661388'), +(11347, '-122396964,-1996200666,-585000602,-863390951'), +(11348, '0,0,0,0'), +(11349, '0,0,0,0'), +(11350, '-1365557009,-1350738529,-1074800707,-446118748'), +(11351, '-1227666214,990739070,758255446,-410679401'), +(11352, '-76693830,-865206807,384409960,1285997763'), +(11353, '1903451400,172495816,-26951355,-2020198034'), +(11354, '-104997214,-1634014788,-392797186,-941769095'), +(11356, '2033204014,1416145849,-1721330996,2134394884'), +(11405, '0,0,0,0'), +(11406, '375301159,353365492,-940259891,-223647771'), +(11407, '0,0,0,0'), +(11408, '0,0,0,0'), +(11409, '1937092760,-1545935537,29954084,-1081016062'), +(11410, '1509299526,-892391942,1485831814,1255407038'), +(11411, '0,0,0,0'), +(11412, '-1379772393,621580805,-316850307,1026773740'), +(11413, '1488866121,-484754573,-1471688962,-511348808'), +(11414, '1377762353,1699445159,1913215037,1606010259'), +(11415, '1136524726,-1672016136,-1498346497,-1411607834'), +(11416, '1424707743,282141552,464542584,1000633084'), +(11417, '1581021494,-1994945510,-177217961,455201014'), +(11418, '161282524,-561691741,-293028043,-1466220307'), +(11419, '-1254692109,-721963897,1982559036,2090401358'), +(11420, '1847735585,-1694492924,1127165320,-479409843'), +(11421, '986943416,-2110784934,1490597490,1999343527'), +(11422, '-843901847,-337979146,-867731076,-342235410'), +(11423, '437777194,-1226666437,1806502066,2032844071'), +(11424, '807879302,-1555822450,-271595686,-1725049162'), +(11559, '16777217,1717961767,50359296,1634336841'), +(11561, '-591558979,1108648192,1263458446,2058484886'), +(11562, '1623115614,841254570,365391355,629444052'), +(11563, '-2086554592,-933774380,-1450605238,-515013992'), +(11564, '1353274200,1339785802,-1572198107,1935847233'), +(11565, '-137041923,-1569836238,18743223,-1472669397'), +(11566, '575328672,-285813481,-1608888020,-1018793466'), +(11567, '-1044081427,53182148,606084353,909523725'), +(11568, '90223196,-1877968085,962102514,1727463305'), +(11569, '1995103132,954046526,-736090037,-1261975818'), +(11570, '1764463961,-1394011513,841104317,1009452619'), +(11571, '555412042,1365420838,-819421250,-281395793'), +(11572, '892185929,686162443,1793819023,-992991976'), +(11573, '0,0,0,0'), +(11574, '-1406155502,13961326,1071473330,1528558089'), +(11575, '-388816502,637165039,-1660550531,1252748078'), +(11576, '-653186907,1743653193,1590707166,841079490'), +(11577, '1283493672,1550135524,-1621670256,769418438'), +(11578, '0,0,0,0'), +(11579, '-719996638,-1831948234,494156672,1684753309'), +(11580, '0,0,0,0'), +(11581, '0,0,0,0'), +(11582, '602331327,-1036793753,1702673112,-1107214996'), +(11585, '-2002677198,-1770151217,-1572915128,2094989518'), +(11586, '925071192,-1288796869,51183037,-115462507'), +(11587, '1618637156,924324919,-706966841,209620280'), +(11588, '-519511661,-159682581,-172209167,-816666339'), +(11589, '39678032,469576041,-1878694956,-1720799345'), +(11590, '0,0,0,0'), +(11591, '1300749474,-912770362,-1665451776,480747745'), +(11592, '0,0,0,0'), +(11593, '136840373,783265137,1845830981,329025895'), +(11594, '477395683,539436779,-1560356372,-1102990030'), +(11595, '-1497259084,-1208341848,874209282,-1950133061'), +(11596, '0,0,0,0'), +(11597, '-824244627,-1750674106,-2032396270,-451550546'), +(11598, '0,0,0,0'), +(11599, '-1124938025,110281395,-1121479364,68953473'), +(11600, '0,0,0,0'), +(11601, '722657934,1495340205,-437272583,-1331954618'), +(11602, '-1830335785,-544748254,-190875166,1866682430'), +(11603, '-254635141,-1757221941,-2072225761,-752948578'), +(11604, '0,0,0,0'), +(11605, '57037316,1119657363,2040370510,801474589'), +(11606, '-1790275662,-1050505330,-1496410655,679769180'), +(11607, '0,0,0,0'), +(11608, '248039728,1861834308,1335200688,317723667'), +(11609, '-1581925228,-215021003,-1695323698,-1853661356'), +(11610, '0,0,0,0'), +(11612, '-1751954695,954770889,-337304771,986015401'), +(11664, '1190807823,1104329472,374421371,1684960233'), +(11665, '1421755107,-1753781642,148994094,-1190683420'), +(11666, '-341360024,-822905169,-778532221,-885891559'), +(11667, '-1991130334,-1460099297,758552332,1913132025'), +(11668, '-257024301,-661941375,-687408097,-1243612535'), +(11669, '-2019291079,1299725119,2078401543,-99676412'), +(11670, '549318992,1085934989,710708603,-1635474946'), +(11671, '141459802,-808095674,779257961,-1662929599'), +(11672, '-1845806596,1811189482,329650354,-628982335'), +(11673, '-1063593336,-1597944673,1273002319,-1348952650'), +(11674, '1210448615,-1069893745,1849844672,-2020497288'), +(11675, '-1885801977,-74559034,1670696344,449082888'), +(11676, '-497232340,-1339196313,-2027479925,-368682937'), +(11677, '536395294,1131483635,-2029771861,-1394887559'), +(11678, '-804330631,-1574570644,457636469,-2078367975'), +(11679, '538734781,-438496848,-1620632820,1342830944'), +(11680, '1628843011,-904651047,841205079,-2056142962'), +(11817, '740863947,-1459447536,-1272357052,-1730407126'), +(11818, '-2034608097,1147002393,-720701760,-1045127369'), +(11819, '-1632272271,-1134214079,-1204220834,-1633494895'), +(11820, '1770850144,-166786106,-684161481,-1708595579'), +(11821, '-707628647,-1786826314,1726639607,1329014754'), +(11822, '-1814853584,-1136244468,-411716523,-1293542025'), +(11823, '-1467961870,-332715907,828094751,497688107'), +(11824, '-1116727390,-659788658,307002260,354360287'), +(11825, '0,0,0,0'), +(11826, '0,0,0,0'), +(11827, '379001889,1835230493,1861106702,338991847'), +(11828, '-483956226,1333559890,409484157,259080419'), +(11829, '201013583,-1953655991,-1314566361,-531272086'), +(11830, '1371203331,1456322164,1830551817,1881701938'), +(11831, '2070834186,89622912,-2093327347,-1499870034'), +(11832, '912914769,1794955235,953692213,833376694'), +(11833, '-1650041704,120707908,795850411,-1243236268'), +(11834, '-1469717920,-822155319,1177768019,987379908'), +(11835, '1706086657,-184799142,1874207624,-980291727'), +(11836, '-1380985244,-357598195,-1439932150,1526942363'), +(11837, '-1038342108,2043521930,585928227,-2111003977'), +(11838, '-1244353559,318399250,-531450733,1472599251'), +(11842, '-1217922297,-1739467375,1236768219,-519170083'), +(11843, '-970160562,776045252,188992499,588376278'), +(11844, '46502425,-1301719099,-1597781617,1434487073'), +(11845, '0,0,0,0'), +(11846, '0,0,0,0'), +(11847, '0,0,0,0'), +(11848, '0,0,0,0'), +(11849, '0,0,0,0'), +(11850, '0,0,0,0'), +(11851, '-516358140,791692293,-1663509747,1243508195'), +(11852, '0,0,0,0'), +(11853, '0,0,0,0'), +(11854, '311566497,-486013229,1351929142,744327317'), +(11855, '770787544,-1305958539,670684335,208100825'), +(11856, '0,0,0,0'), +(11857, '150488681,419659968,-1871963555,1031596369'), +(11858, '0,0,0,0'), +(11859, '0,0,0,0'), +(11860, '0,0,0,0'), +(11861, '0,0,0,0'), +(11862, '2071521092,797384499,364423664,-1286422461'), +(11863, '-117384431,428352610,-41119857,1227430828'), +(11864, '415237490,-1571743714,-1596630690,-846850340'), +(11865, '-1962002904,26354278,-969232265,1948165207'), +(11866, '1586054337,290394491,-979194848,-573910165'), +(11920, '-1502792287,1854795762,2014359664,-757683160'), +(11921, '-1190097358,-717950981,1892307569,1647143186'), +(11922, '1588123970,2064849194,1386289019,-716346213'), +(11924, '1085111846,-1815997315,216841486,2022451249'), +(11925, '-989523453,913815552,345668487,-1351819941'), +(11926, '-501586879,235710413,-1122707717,-354940885'), +(11927, '0,0,0,0'), +(11928, '-445378710,-788377286,1363332226,627739779'), +(11929, '747285535,375064048,-1156931456,-126201237'), +(11930, '1436132147,-902725534,590285278,2018675988'), +(11931, '0,0,0,0'), +(11932, '0,0,0,0'), +(11933, '0,0,0,0'), +(11934, '-854127330,1609124159,-999989310,-734721734'), +(11935, '-1453725493,-1575973068,1979334907,1130399929'), +(11936, '0,0,0,0'), +(11937, '-1518927827,1819850502,-992647105,299958470'), +(11938, '0,0,0,0'), +(12073, '-882281631,257910959,1642484329,-1342807140'), +(12076, '193939514,-115011236,-1406304015,-1626342231'), +(12077, '1638808709,1254156985,809776183,-1544950482'), +(12078, '-525973296,-1548155792,-1385110219,-1985763988'), +(12079, '-1011045091,-936937530,315153197,1186727635'), +(12080, '-871039166,671466658,-1667543860,-2035538436'), +(12081, '1035017991,592263100,-1547948034,1792058205'), +(12082, '-503983849,469781652,-1875993426,1605772035'), +(12083, '-359077405,-975212733,-1032910232,80337581'), +(12084, '1719212980,-270023138,175706506,-308924243'), +(12085, '-1262595098,-465048704,-1463905457,1372729353'), +(12086, '1720662391,1428111249,873760745,-580366661'), +(12087, '-1019515374,-1885024451,-1336165534,1322614963'), +(12088, '-2139185262,-1806601505,1536573357,72818727'), +(12089, '-1047505229,1482518318,895541409,-1048492631'), +(12090, '120066737,434314789,-2139665893,-8665118'), +(12091, '1479001755,2119142088,-653624921,702014943'), +(12092, '1834140299,801520697,152435624,2017368659'), +(12093, '-1609567378,-1639522221,1730303123,-248179982'), +(12094, '2120437359,222442049,41777842,-509732529'), +(12097, '-862465947,2109948185,583246321,-850147469'), +(12098, '0,0,0,0'), +(12099, '0,0,0,0'), +(12100, '1852910519,712916664,1670787779,1294835477'), +(12101, '0,0,0,0'), +(12105, '1153497516,-449169462,-635419798,-1471828315'), +(12106, '38647587,1522565828,-949257419,1943032512'), +(12107, '790028083,952090857,-1393754794,1896821277'), +(12108, '-31531459,-1804597772,712452096,1915359882'), +(12109, '1939715187,-796094750,-1071860977,-1024683065'), +(12110, '808144600,-616213476,2026296096,1539298914'), +(12111, '-746445771,1759120362,1253848335,1433199232'), +(12112, '0,0,0,0'), +(12113, '-1749952613,1569535680,1900425482,-1993748284'), +(12115, '2146362785,1996258091,-613445101,539756591'), +(12116, '0,0,0,0'), +(12117, '-97063310,1962833557,-849078816,-1560293275'), +(12118, '714042847,-1192681674,-1453080351,-88273278'), +(12119, '-873110513,-162095225,-381892128,-346588457'), +(12120, '-774739481,1496283218,893257461,-1168642419'), +(12121, '1557445081,682103339,1577593678,-1850587643'), +(12122, '-2014648814,571564491,-1983897919,-612605198'), +(12180, '1388683192,-872219469,437507075,812232152'), +(12181, '-995343774,-1071540200,1667841236,1318274883'), +(12182, '-499997333,1910872683,-234510566,-361238419'), +(12183, '0,0,0,0'), +(12184, '-1993918550,1977224805,-1048356116,-1578331413'), +(12185, '-733095133,-1797134669,1813691911,-117267989'), +(12186, '-259674875,-949495016,1835821953,1740556829'), +(12187, '0,0,0,0'), +(12188, '22801476,-1237575758,2139201694,-163382547'), +(12189, '-626419958,-861781849,-400257621,465575053'), +(12191, '0,0,0,0'), +(12192, '0,0,0,0'), +(12193, '1013552068,-364826455,4137749,729786125'), +(12194, '0,0,0,0'), +(12332, '0,0,0,0'), +(12333, '372281878,-809369100,-1989039261,-980074402'), +(12334, '-208871238,397971218,827338731,-602814995'), +(12335, '-932235881,-440697769,-2073934211,-1071764865'), +(12336, '-1452500433,-1602128254,-1629750057,1243308175'), +(12337, '-1376987128,-85363217,1977650657,-2129657037'), +(12338, '-983999026,1403872391,385102350,-194124711'), +(12339, '518441298,1531173904,430682398,595384049'), +(12340, '1946410965,-211089460,-1145931943,-92341347'), +(12341, '2121187294,1555327396,-2072187998,-1348805114'), +(12342, '-1082588441,1243176731,-1284334046,-1428935477'), +(12343, '-609214795,980135617,-695357998,-160803647'), +(12344, '-1265758544,1128006461,-466859463,-1851036690'), +(12345, '-134733709,151853724,-1437846337,335319448'), +(12346, '-657476809,-1958794621,-573708398,1064135013'), +(12347, '-1599627156,201181799,-1978827396,-76735331'), +(12348, '1498945330,-1007588865,989046743,-1246005481'), +(12349, '1690287681,1306543027,-1953379158,1167181646'), +(12350, '1136900728,1196784066,-231560317,20860732'), +(12353, '1632384552,-1909179432,-618653336,-1612279868'), +(12354, '1499391996,1113335840,1679448224,-1743073054'), +(12355, '2068164694,1652405742,-1354799119,-2005137631'), +(12356, '-1201681208,106398334,-2123418385,1010672418'), +(12362, '0,0,0,0'), +(12363, '0,0,0,0'), +(12364, '0,0,0,0'), +(12365, '0,0,0,0'), +(12366, '0,0,0,0'), +(12367, '-2006617355,-1390093250,-1950318553,1842364433'), +(12368, '0,0,0,0'), +(12369, '-891954120,1710352781,-1883639556,-1461026236'), +(12372, '0,0,0,0'), +(12373, '0,0,0,0'), +(12374, '1620519366,-1309341299,68411383,1308746010'), +(12375, '0,0,0,0'), +(12376, '1918934265,1530066885,-1991367516,1783839145'), +(12377, '-1926215959,-398085479,-1931593602,-1073869938'), +(12378, '-369504798,1961362499,749656660,-356368606'), +(12434, '-1419269744,1750656375,119876026,1040224763'), +(12436, '-2138826728,1169519405,-411858931,491428'), +(12437, '1402191614,1606631666,-257071195,939962410'), +(12438, '-634183085,122332197,2063223083,1861049708'), +(12439, '-128537652,-667417558,998246693,-1147655385'), +(12440, '2053762285,-354590835,1580877387,-2123860710'), +(12441, '-1858539590,267273914,-776577096,-1251026502'), +(12442, '1883167946,191149821,-1270401415,-126025128'), +(12443, '0,0,0,0'), +(12444, '1576354846,-1768236409,821965805,-861456742'), +(12447, '0,0,0,0'), +(12448, '0,0,0,0'), +(12449, '0,0,0,0'), +(12450, '0,0,0,0'), +(12587, '0,0,0,0'), +(12588, '0,0,0,0'), +(12589, '1981659006,1591583400,1958084245,667979721'), +(12590, '-755814299,1579260481,892984208,577453947'), +(12591, '351660323,1292140128,-1256148041,78535482'), +(12592, '-1630268797,-1503112818,1383264816,1705116684'), +(12593, '-1653558720,2119901478,-1449369788,-1829505468'), +(12594, '1150282919,572626783,-257791473,2031745700'), +(12595, '690344167,598639865,1375558029,1809058157'), +(12596, '1570322737,1165043749,1246435002,1408253611'), +(12597, '306679611,1182603714,427243016,1648062434'), +(12598, '1874555134,-1535151559,1145435834,-578461761'), +(12599, '1053581692,-982140470,419327673,-163055372'), +(12600, '-649213147,1195379532,134339031,1178706012'), +(12601, '1770077800,-625870452,1753986528,1205115023'), +(12602, '1289058435,-2013760918,1538318852,396639740'), +(12603, '-1135486565,-470016325,1594745611,161611213'), +(12604, '-1812120898,-1662909112,-1432124543,571589094'), +(12605, '-1547116565,1817338996,-1727020832,2025648539'), +(12606, '1621768314,2112223568,-739546935,1952137045'), +(12609, '-352333436,1298769242,715602788,55374575'), +(12610, '923086085,-1676713919,-1072336340,1600346998'), +(12611, '-2099572651,-2127878366,1782860351,-1451326946'), +(12614, '1621048325,1179863793,357058137,-1896311701'), +(12616, '1951523008,-2131232747,-381301931,2007660709'), +(12617, '-2118850546,-2021217761,-713637260,-1661397318'), +(12619, '1922733696,773456556,-1923866275,-1305839916'), +(12620, '0,0,0,0'), +(12621, '1619333755,-1869146576,77302288,-937694202'), +(12622, '0,0,0,0'), +(12623, '-369583241,545715110,-134871454,1404138108'), +(12624, '0,0,0,0'), +(12625, '-260562230,1208275247,436993278,30028881'), +(12628, '1557696523,1576331159,-2104822183,-309564623'), +(12629, '-992807501,-2062158526,-154775275,804488735'), +(12630, '-1108090696,710523517,2082926636,107778168'), +(12631, '693308333,-269450306,-924437218,309489139'), +(12632, '0,0,0,0'), +(12633, '0,0,0,0'), +(12634, '0,0,0,0'), +(12688, '1861636222,1638403446,-649444098,2131977195'), +(12689, '-1177832090,806845610,-2074522350,793591882'), +(12690, '-1658567313,-1665136661,638517615,-2091981200'), +(12691, '-998717750,-178246764,973015517,-1732934591'), +(12692, '0,0,0,0'), +(12693, '1339198001,799729854,-750687990,1703141753'), +(12694, '631068451,-510806123,2026757696,207332608'); +INSERT INTO `region_xtea` (`regionId`, `keys`) VALUES +(12695, '0,0,0,0'), +(12696, '690970369,-466418236,-666391415,1091047140'), +(12697, '1764668344,-101513352,-710472869,-1014452411'), +(12698, '-161912285,-1949783111,790481303,987975274'), +(12699, '-1844552510,896294306,973094427,-653509731'), +(12700, '-1802430094,1220107446,-1897971895,-1437873968'), +(12842, '0,0,0,0'), +(12843, '-203885401,22803731,234561826,140244374'), +(12844, '226013993,-442175197,1072280142,-2076608354'), +(12845, '993041158,1401235448,1282019826,44639213'), +(12846, '1813291988,-1182316575,55462006,-1149391696'), +(12847, '1632239854,-1407430240,1205200323,-60923789'), +(12848, '-830415762,-1655127901,1335930534,2043180488'), +(12849, '183396243,-461663209,-212681663,-266126212'), +(12850, '0,0,0,0'), +(12851, '0,0,0,0'), +(12852, '0,0,0,0'), +(12853, '0,0,0,0'), +(12854, '-648789394,672092351,713515997,1153393095'), +(12855, '1344813934,973665164,454507197,-840789600'), +(12856, '1867506737,-1154362361,691839047,840600959'), +(12857, '-1061890019,-1503652546,838153390,-1952904011'), +(12858, '-503936065,-153634959,2139131102,1736317222'), +(12859, '-885548568,-1406566619,-1095540548,-463966144'), +(12860, '1143684881,-2095747982,-392775805,1095955025'), +(12861, '1816963481,-496926322,1214068433,1190940799'), +(12862, '-362546063,986809728,-732925351,-437970150'), +(12865, '-1217194532,-1442060965,1622194497,-675929760'), +(12866, '-545091180,1146916512,-1890387271,553903087'), +(12867, '1462732309,395803116,803023666,-1139113006'), +(12874, '0,0,0,0'), +(12875, '0,0,0,0'), +(12876, '0,0,0,0'), +(12877, '0,0,0,0'), +(12878, '0,0,0,0'), +(12879, '-1368673067,915871651,-1626507432,1807642543'), +(12880, '1048762260,1169103285,187905242,-483193099'), +(12884, '219137432,-588958221,643827879,166439179'), +(12885, '-295659180,1892042068,-983165209,-765523083'), +(12886, '-1441695147,730261545,-221502328,1839243995'), +(12887, '-1781165696,2082501875,1317465410,954416699'), +(12944, '-1975958933,-1193334151,-159998783,-193649368'), +(12945, '-901643304,-529015531,-696518247,1093695083'), +(12946, '2090546911,-1557720051,696207620,-406031091'), +(12947, '721381121,1046071497,646740952,1074713668'), +(12948, '-847695159,115342539,-986683415,833544368'), +(12949, '-824331278,-1926121844,1635081242,1203632017'), +(12950, '-231438779,-295053046,17143297,-1148893582'), +(12951, '-1979754927,574273135,-1414539851,-766497717'), +(12952, '-1425997721,-1885862885,-1157108098,1841563038'), +(12953, '-1250188060,-1799181120,779026206,758487113'), +(12954, '1661321273,-1954068524,82368798,1528722778'), +(12955, '2001176320,-515563756,-1019109153,347995784'), +(12956, '-1383918319,-1190517730,-1037058957,534994622'), +(13098, '0,0,0,0'), +(13099, '919393388,-1011543647,454982828,-809340931'), +(13100, '284097754,-1500159810,-705437259,-939519544'), +(13101, '-381920894,-806030125,-1295289124,905654937'), +(13102, '376149710,553132983,-1519502826,1450133972'), +(13103, '560689103,-372924587,1002681194,-1313254694'), +(13104, '-421493992,1381068261,1710426242,2142500778'), +(13105, '0,0,0,0'), +(13106, '0,0,0,0'), +(13107, '-1161498786,-880845643,1588242926,2124040528'), +(13108, '-762783054,-1655608106,1991658602,-817463829'), +(13109, '-349563312,1574791115,-229143592,422091049'), +(13110, '1594041118,976656639,1899969266,-1424829001'), +(13111, '-956338858,1803589973,-1931845203,844602202'), +(13112, '-1779719436,779690941,517280009,1427658886'), +(13113, '1359701469,1140178566,1020850677,-502692445'), +(13114, '-1724578067,1811021965,-703977777,-1144440338'), +(13115, '135594186,-1586061714,1570753800,1382701347'), +(13116, '343282082,-57441829,-10906049,1340555326'), +(13117, '-798152548,75895015,1520035830,-1236244245'), +(13118, '1803456807,778621268,1763810696,-1674740332'), +(13123, '-1731332675,1372380814,1360357859,-476783265'), +(13124, '1112524398,1364561637,-1050280898,-561068804'), +(13126, '1732039952,536833573,-81136437,1031070663'), +(13130, '0,0,0,0'), +(13131, '-1234145533,479347649,1835828804,1685593501'), +(13132, '0,0,0,0'), +(13133, '-1026003062,917176839,-84576515,-1037395862'), +(13134, '0,0,0,0'), +(13135, '425723212,580084357,1788364975,1608414630'), +(13136, '0,0,0,0'), +(13140, '-1757870261,1824774693,-1461099709,1915501139'), +(13141, '1705435594,233219482,279736542,2096923137'), +(13142, '2062386940,-24765133,-1126233768,475032842'), +(13143, '1411276783,-169287799,-1924979618,-1103634209'), +(13199, '413099653,-805662108,320157580,923467388'), +(13200, '-384958441,757681189,-1060421200,1710552745'), +(13201, '-777242905,1490139407,-62422504,1747570013'), +(13202, '-1507613907,-934138926,557937275,2130611737'), +(13203, '-1342258113,-2106603709,395365404,-973258459'), +(13204, '0,0,0,0'), +(13205, '1250202258,-2009534633,1981493488,10068968'), +(13206, '1456157358,1036496685,-1478577110,-1039552689'), +(13207, '0,0,0,0'), +(13208, '0,0,0,0'), +(13209, '-441828435,-1834839387,-1652863357,1161715526'), +(13210, '-1843718280,1703682437,-955823154,-1545029718'), +(13211, '1293288083,1390574804,1838161452,887056395'), +(13354, '-697361682,-1108068736,-491371566,-1750045046'), +(13355, '1045096887,204321120,-803556278,-865381665'), +(13356, '-1202647115,-2077370353,-776213042,-208608901'), +(13357, '1828573590,-917113205,880280264,133645860'), +(13358, '41136211,1469481233,1950303317,-915910893'), +(13359, '231092921,-248629409,1012469199,966196096'), +(13360, '-1860635048,-1994403194,-261420877,899213732'), +(13361, '1581119671,589912019,-953848433,669787750'), +(13362, '647685229,1735122662,202525670,-1430696427'), +(13363, '-1437683143,1313459135,-572808465,628532614'), +(13364, '271092435,-91354012,450005855,1673700762'), +(13365, '550472972,-90477551,1424060678,-500359242'), +(13366, '1555883756,1714912813,693854980,605793741'), +(13367, '1443888340,40258892,-827546717,-1706190544'), +(13368, '-922499048,1143654396,1593518953,1160947087'), +(13369, '-854229759,-1850773237,-273243753,151474217'), +(13370, '-1866559281,-1693659798,-1335114197,1185838193'), +(13371, '-172414174,1775715954,1436041524,-90862670'), +(13372, '1523911372,351024518,1404660376,-1833782282'), +(13373, '-1762860860,2070816046,-1848056827,538155683'), +(13374, '-2094243426,-1792618509,-1562985614,633233826'), +(13385, '-1844924042,1501923681,2039827392,1750236728'), +(13386, '897729617,1760669580,-1691319896,1585388050'), +(13387, '50769406,1445159687,1657343198,-1977600563'), +(13388, '0,0,0,0'), +(13389, '0,0,0,0'), +(13397, '0,0,0,0'), +(13398, '0,0,0,0'), +(13399, '0,0,0,0'), +(13456, '-476100316,-1682296770,133855524,112315923'), +(13457, '377761737,-478773092,2106772372,2013273184'), +(13458, '-528778477,1188068801,-831895341,-843066318'), +(13459, '-1539823334,1488607814,-1446817557,887877521'), +(13460, '1351713069,1605558913,1016270393,-1439479852'), +(13461, '460291665,970577463,-987694183,1332083960'), +(13462, '-1293267774,-1055869460,-1910211914,-1862132200'), +(13463, '1800919536,-447254446,-1090413707,-1023788925'), +(13464, '761967717,-1170068472,1138080117,-622709482'), +(13465, '-1620975981,842688962,1124919019,1534496149'), +(13466, '-460228398,-76181685,2062962515,1167974062'), +(13467, '0,0,0,0'), +(13610, '-1259340500,2094890289,-1255134464,1578867778'), +(13611, '-2074654953,2114352944,-1715482214,786241055'), +(13612, '1485341915,-607675942,-37541602,-1009921417'), +(13613, '1215281736,-1131653641,-2080246040,1849397312'), +(13614, '987461267,1277137633,-383892538,1924229470'), +(13615, '-1386012819,-1667483384,235442560,2108663059'), +(13616, '-2043312890,38355965,-1115381550,-1284493932'), +(13617, '778193894,-1569947064,1574720047,1996357073'), +(13618, '-710010520,-1679541351,-1318048442,1911381340'), +(13619, '-2066053329,414750452,-672870734,-712334802'), +(13620, '-2036291738,1473612575,9834035,-1983739737'), +(13621, '-1291167236,-1205011126,-1949699235,1530879202'), +(13622, '0,0,0,0'), +(13623, '-1700397822,-1427942931,1638091118,438962861'), +(13624, '2111564081,-1121458759,1205557925,-386058131'), +(13625, '-1688194808,-751145145,-64310690,-9400824'), +(13626, '2091552269,-19993197,919014338,-2088295508'), +(13627, '341129543,405594157,-935930552,1362472171'), +(13628, '83847925,-1748584368,-1828230097,915424426'), +(13629, '-1526659316,194744161,-1617203167,1822755797'), +(13630, '-1632016999,-2015192780,-2137722473,477794767'), +(13641, '-1254291903,557840049,-1132517830,-721853650'), +(13642, '1339676474,261360204,1438006333,-388997930'), +(13643, '1113875885,-236852397,193142585,-854043613'), +(13644, '0,0,0,0'), +(13650, '-1281992532,-252178835,-207196406,32900092'), +(13712, '1182236806,-2109123887,1909535742,814317528'), +(13713, '676853493,-1887443315,-998811191,1947183065'), +(13715, '0,0,0,0'), +(13716, '-913580283,340446282,893998558,589419388'), +(13717, '1559468575,-1513642990,42449462,-1614119576'), +(13718, '1236641739,1389287026,-557291512,739408472'), +(13719, '869116958,119952924,524051369,-980103253'), +(13720, '1147506557,-1510069284,-691462718,-1314001105'), +(13721, '-1188425330,1307846097,888707126,-1843934128'), +(13722, '0,0,0,0'), +(13723, '-310574621,110640497,1685108265,-1931806505'), +(13866, '1975204579,1739471741,-609874514,-809721138'), +(13867, '249804189,-1087394076,-1963925587,-493571779'), +(13868, '255205616,-1585903009,-1371243067,-264891948'), +(13869, '0,0,0,0'), +(13870, '0,0,0,0'), +(13871, '0,0,0,0'), +(13872, '-865041276,1374390842,-909885942,30088570'), +(13873, '-2072799260,1290574946,-1228463084,1431541780'), +(13874, '301169312,1180543257,595363434,555835168'), +(13875, '1853922477,1565380766,632797823,-2047432156'), +(13876, '-1056000495,1278886569,-1666375011,492887698'), +(13877, '1498185652,2064367906,152992439,585271079'), +(13878, '0,0,0,0'), +(13879, '-2101514338,-1139447054,51825149,-512907347'), +(13880, '-672032867,-104766980,-780173326,-1476119873'), +(13897, '313069291,-285427198,720562158,55799827'), +(13898, '-975892323,-614503529,1538650880,-1348349880'), +(13899, '-2117805741,-268051413,-733527930,471010998'), +(13900, '0,0,0,0'), +(13901, '0,0,0,0'), +(13902, '0,0,0,0'), +(13968, '-620062336,-1110235330,-1095431209,-470716307'), +(13971, '0,0,0,0'), +(13972, '1266294685,1139088638,1514900183,-1389022839'), +(13973, '0,0,0,0'), +(13974, '1384510929,1857691725,-293821029,-1219099456'), +(13975, '715007080,565579966,-981729179,-1644711038'), +(13976, '-2067573994,1313918283,-503877523,-561145139'), +(13977, '-2103542752,-239401853,-1270017944,-346347052'), +(13978, '605186559,-2092944993,404136076,399569943'), +(13979, '-1418903263,-1115529276,-670759508,770213401'), +(13980, '-12957944,-743456598,2041601862,618819565'), +(14127, '0,0,0,0'), +(14128, '1907787432,-241593923,1152767085,-541422403'), +(14129, '1656428349,-1031219549,1014397898,274724415'), +(14130, '415779481,-1959726011,1999247323,1438983993'), +(14131, '-489058667,-1946048627,826928526,-193826197'), +(14132, '-602589023,1702162086,-1444941032,1758850020'), +(14133, '61264177,326475438,1849288713,-191758257'), +(14134, '-1102558063,817524163,-892019492,-1799662614'), +(14135, '-1676933435,2078032557,110306649,-960667243'), +(14136, '-1104533465,1792124817,-1564247177,79706641'), +(14154, '0,0,0,0'), +(14155, '0,0,0,0'), +(14156, '0,0,0,0'), +(14157, '-852479713,1901063521,-1097484894,1013793379'), +(14158, '0,0,0,0'), +(14167, '-1398455,-469478596,190482870,-1233173597'), +(14227, '0,0,0,0'), +(14228, '0,0,0,0'), +(14229, '0,0,0,0'), +(14230, '-453901412,-2074594443,-809419406,1774073603'), +(14231, '-1716965138,-1451197740,-1942368593,-900089071'), +(14232, '-154845838,1035699282,361824423,-776192310'), +(14233, '1754401715,23594529,1369802619,1852247641'), +(14234, '1142480925,-261960203,-1951671560,-1615735123'), +(14235, '-264565085,233987061,-1946292625,1978910655'), +(14236, '816141215,-2114312227,1578950035,1471842311'), +(14381, '-534048527,1614741928,-469012711,1064350100'), +(14382, '-1852773504,1082744219,-1346163454,554948186'), +(14383, '2130321690,-902060426,334275700,1881115024'), +(14384, '1875853789,1099975670,-125982769,-1614539446'), +(14385, '1424549406,1734560367,1402577124,882941348'), +(14386, '454702874,-889424896,1044373821,1857098733'), +(14387, '-1786083312,-89773863,-203660164,1188286162'), +(14388, '2048238173,2003642395,1658667134,411519881'), +(14389, '0,0,0,0'), +(14390, '-1631704360,1281079278,-1549067757,-2034268623'), +(14391, '-1092656394,771935864,-1698940035,222468187'), +(14392, '993603906,-1477196579,593064486,166369140'), +(14412, '0,0,0,0'), +(14413, '0,0,0,0'), +(14414, '0,0,0,0'), +(14486, '-131982139,-1189975142,-1667401999,-1794787704'), +(14487, '-330478679,11506767,395036194,-971774384'), +(14488, '0,0,0,0'), +(14489, '0,0,0,0'), +(14490, '1578682567,-1175551739,170259358,-1972709096'), +(14491, '1131750208,-969132110,-1692936039,708031851'), +(14492, '420310205,1004898846,889537686,13961361'), +(14637, '112774068,-1867270219,-442076728,-1436438131'), +(14638, '139650389,-1351993356,-191474863,1802091532'), +(14639, '303035230,-26013293,2131971123,-1774131228'), +(14640, '-95254230,-1094148730,-1768319507,105210786'), +(14641, '-310201697,1724559662,90126688,-664432561'), +(14645, '0,0,0,0'), +(14646, '-2069357113,-2117603296,1620573021,-239596308'), +(14647, '727908174,1305814331,1158279049,-671924266'), +(14648, '-1757352130,-1996516705,263017190,1647356258'), +(14745, '0,0,0,0'), +(14746, '2081288932,-143900986,-1978370486,-544919360'), +(14747, '-1578483383,-20501195,-1713759865,-1923019830'), +(14891, '-1481978705,1351387379,139803217,1691844424'), +(14892, '989249908,1611912325,-656482965,739987970'), +(14893, '-102394113,1484262111,933695487,-283213546'), +(14894, '1977203476,853289993,-2077288740,253834425'), +(14895, '1294223700,778677766,-2141486577,1402077049'), +(14896, '548765086,801664009,-1716752945,-1492954302'), +(14901, '0,0,0,0'), +(14902, '1158948283,-12013143,1242958376,-1265402384'), +(14903, '-1111240831,1790345264,-366658712,-331374702'), +(14904, '-1967472485,-192437954,1186759929,-2078112945'), +(14994, '413330323,-1806118667,1556971780,2103428744'), +(14995, '958328498,239876404,608758325,933929091'), +(15001, '0,0,0,0'), +(15002, '0,0,0,0'), +(15003, '0,0,0,0'), +(15147, '-423978185,359589519,280220972,-1608470374'), +(15149, '-1200628316,15132614,-465260385,-1525542932'), +(15150, '902891554,-1636848032,-1477430033,594794601'), +(15151, '867970623,-1689124083,1669326780,1599898304'), +(15152, '608495786,-1850745649,1481459068,44047411'), +(15158, '-974248920,-1426940984,-551894435,1783499939'), +(15159, '777796740,816768733,590882478,-1949779286'), +(15160, '-553466395,-1372948696,-1385390322,710626387'), +(15248, '552557289,1687845482,-1717041637,1667279986'), +(15251, '-1712638393,-327927536,168969136,485363494'), +(15403, '858832565,1542433274,-759104113,425400841'), +(15404, '1359247125,-1375693391,-1964404624,-1289877028'), +(15405, '1745315296,704015968,-1726703759,250744336'), +(15406, '900232781,1037303290,2099698517,-1839409134'), +(15407, '-1139819812,165771634,462281145,-1626973480'), +(15408, '1024233955,-1429048064,1595885074,-1194249874'), +(15414, '918566284,-159243781,471949969,-1198041007'), +(15415, '-1274724478,1165018389,2048231360,2009587731'), +(15416, '-1802759876,1171188898,1330028340,1790091100'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `shops` +-- + +CREATE TABLE `shops` ( + `id` int(11) UNSIGNED NOT NULL, + `title` longtext NOT NULL, + `general_store` tinyint(1) NOT NULL, + `stock` longtext NOT NULL, + `npcs` longtext NOT NULL, + `currency` int(11) NOT NULL DEFAULT 995, + `high_alch` tinyint(1) NOT NULL DEFAULT 0 +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- +-- Dumping data for table `shops` +-- + +INSERT INTO `shops` (`id`, `title`, `general_store`, `stock`, `npcs`, `currency`, `high_alch`) VALUES +(1, 'Ava\'s Odds and Ends', 0, '{314,1000}-{884,40}-{886,10}-{40,30}-{41,20}', '5198,5199', 995, 0), +(2, 'Edgeville General Store', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '528,529', 995, 0), +(3, 'Al Kharid General Store', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '525,524', 995, 0), +(4, 'Void Knight General Store', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}-{7934,25}', '3799', 995, 0), +(5, 'Ifaba\'s General Store', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '1436', 995, 0), +(6, 'Aemad\'s Adventuring Supplies Store', 1, '{1759,100}-{882,1000}-{1265,10}-{2142,10}-{1349,10}-{946,10}-{970,10}-{954,10}-{590,10}-{227,10}', '590', 995, 0), +(7, 'Kortan General Store', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '591', 995, 0), +(8, 'West Ardougne General Store', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '971', 995, 0), +(9, 'Bandit Bargains', 1, '{1823,5}-{1831,5}-{1937,5}-{1921,5}-{1929,5}-{1935,5}-{1923,5}-{1925,5}-{1837,5}-{1833,5}-{1835,5}-{946,5}', '1917', 995, 0), +(10, 'Bandit Duty Free', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '597', 995, 1), +(11, 'Burthorpe Supplies', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '1083', 995, 0), +(12, 'Aurel\'s Supplies', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '3541,7396', 995, 0), +(13, 'General Store (Canifis)', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '1040', 995, 0), +(14, 'Arhein\'s Store', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '563', 995, 0), +(15, 'Dorgesh-Kaan General Supplies', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '5798', 995, 0), +(16, 'Dwarven Shopping Store', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '582', 995, 0), +(17, 'Falador General Store', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '526,527', 995, 0), +(18, 'Dal\'s General Ogre Supplies', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '873', 995, 0), +(19, 'Karamja General Store', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '532,533', 995, 0), +(20, 'Karamja Wines, Spirits, and Beers', 1, '{1917,3}-{431,3}-{1993,1}', '568', 995, 0), +(21, 'Gunslik\'s Assorted Items', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '2154', 995, 0), +(22, 'The Lighthouse Store', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '1334', 995, 0), +(23, 'Lletya General Store', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '2352', 995, 0), +(24, 'Moon Clan General Store', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '4516', 995, 0), +(25, 'Lumbridge General Store', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '520,521', 995, 0), +(26, 'Trader Sven\'s Black Market Goods', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '4716', 995, 0), +(27, 'Miscellanian General Store', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '3922', 995, 0), +(28, 'Razmire General Store', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '1254', 995, 0), +(29, 'Nardah General Store', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '2086', 995, 0), +(30, 'Arnold\'s Eclectic Supplies', 1, '{303,10}-{311,10}-{7944,0}-{7946,0}-{2309,10}-{1931,30}-{1927,10}-{1733,10}-{1734,1000}-{1755,10}-{1917,10}-{1785,10}-{946,10}', '3824', 995, 0), +(31, 'Pollnivneach General Store', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '1866', 995, 0), +(32, 'Khazard General Store', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '-1', 995, 0), +(33, 'Port Phasmatys General Store', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '1699', 995, 0), +(34, 'Rimmington General Store', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '530,531', 995, 0), +(35, 'Shantay Pass Shop', 1, '{1823,100}-{1831,100}-{1937,10}-{1921,10}-{1929,10}-{946,10}-{1833,10}-{1835,10}-{1837,10}-{2349,10}-{314,500}-{2347,10}-{1925,0}-{1923,0}-{1935,0}-{1854,500}-{954,20}', '836', 995, 0), +(36, 'Obli\'s General Store', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '516', 995, 0), +(37, 'Jiminua\'s Jungle Store', 1, '{590,2}-{36,10}-{596,10}-{1931,3}-{954,10}-{1129,12}-{1059,10}-{1061,10}-{2142,2}-{2309,8}-{227,10}-{227,300}-{233,300}-{175,10}-{970,10}-{973,10}-{946,10}-{2347,10}-{975,10}-{1755,10}-{952,10}-{1351,10}-{1265,10}-{1349,10}', '560', 995, 0), +(38, 'Bolkoy\'s Village Shop', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '471', 995, 0), +(39, 'Quartermaster\'s Stores', 1, '{1931,30}-{1935,10}-{1735,10}-{590,10}-{2309,10}-{3190,10}-{3192,10}-{3194,10}-{3196,10}-{3198,10}-{3200,10}-{3202,10}-{3204,10}', '1208', 995, 0), +(40, 'Varrock General Store', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '522,523', 995, 0), +(41, 'Trader Stan\'s Trading Post', 1, '{1931,5}-{1935,2}-{1735,2}-{1925,3}-{1923,2}-{1887,2}-{590,2}-{1755,2}-{2347,5}-{550,5}-{9003,5}-{954,2}-{946,2}-{2114,14}-{1963,15}-{2108,10}-{4286,10}-{1785,15}-{1783,10}-{401,20}-{1781,10}-{301,20}-{307,20}-{1941,30}-{9629,25}-{3226,20}-{1025,5}', '4651,4652,4653,4654,4655,4656,4650', 995, 0), +(42, 'Zanaris General Store', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '534', 995, 0), +(43, 'Davon\'s Amulet Store', 0, '{1718,0}-{1727,1}-{1729,0}-{1725,0}-{1731,0}', '588', 995, 0), +(44, 'Lletya Archery Shop', 0, '{884,1000}-{886,300}-{888,100}-{890,100}-{892,30}-{877,1000}-{843,10}-{837,10}-{849,10}', '2356', 995, 0), +(45, 'Void Knight Archery Store', 0, '{825,300}-{826,300}-{827,100}-{828,100}-{829,250}-{830,10}-{39,100}-{40,100}-{41,100}-{42,30}-{43,30}-{44,10}', '3796', 995, 0), +(46, 'Brians Archery Supplies', 0, '{886,100}-{888,30}-{890,0}-{843,10}-{849,10}-{853,10}', '1860', 995, 0), +(47, 'Lowe\'s Archery Emporium', 0, '{882,2500}-{884,500}-{886,500}-{888,500}-{890,300}-{877,500}-{841,10}-{843,10}-{849,10}-{853,10}-{837,10}-{9177,10}-{9179,10}', '550', 995, 0), +(48, 'Hicktons Archery Emporium', 0, '{877,300}-{882,1000}-{884,100}-{886,0}-{888,0}-{890,0}-{892,0}-{4773,0}-{4778,0}-{4783,0}-{4788,0}-{4793,0}-{4798,0}-{4803,0}-{841,10}-{837,10}-{843,10}-{4827,10}-{1133,10}-{1097,10}', '575', 995, 0), +(49, 'Dargauds Bows And Arrows', 0, '{52,1000}-{39,1000}-{40,300}-{41,300}-{42,100}-{43,100}-{44,100}-{882,1000}-{884,300}-{886,300}-{888,100}-{890,100}-{892,100}-{4773,0}-{4778,0}-{4783,0}-{4788,0}-{4793,0}-{4798,0}-{4803,0}-{841,10}-{843,10}-{849,10}-{839,20}-{845,20}-{847,20}-{4827,10}', '683', 995, 0), +(50, 'Aarons Archery Appendages', 0, '{1129,10}-{1131,10}-{1133,10}-{1095,10}-{1097,10}-{1169,10}-{1167,10}-{1063,10}', '682', 995, 0), +(51, 'Crossbow Shop (dwarven Mine)', 0, '{9440,10}-{9442,10}-{9444,10}-{9446,10}-{9448,10}-{9450,10}-{9452,0}-{9420,10}-{9423,10}-{9425,10}-{9427,10}-{9429,10}-{9431,0}', '4563', 995, 0), +(52, 'Crossbow Shop (keldagrim)', 0, '{9440,10}-{9442,10}-{9444,10}-{9446,10}-{9448,10}-{9450,10}-{9452,0}-{9420,10}-{9423,10}-{9425,10}-{9427,10}-{9429,10}-{9431,0}', '4558', 995, 0), +(53, 'Crossbow Shop (white Wolf Mountain)', 0, '{9440,10}-{9442,10}-{9444,10}-{9446,10}-{9448,10}-{9450,10}-{9452,0}-{9420,10}-{9423,10}-{9425,10}-{9427,10}-{9429,10}-{9431,0}', '4559', 995, 0), +(54, 'Bob\'s Brilliant Axes', 0, '{1265,10}-{1351,10}-{1349,10}-{1353,10}-{1355,10}-{1265,10}-{1363,10}-{1365,10}-{1369,10}', '519', 995, 0), +(55, 'Brians Battleaxe Bazaar', 0, '{1375,10}-{1363,10}-{1365,10}-{1367,10}-{1369,10}-{1371,10}', '559', 995, 0), +(56, 'Candle Shop (type)', 0, '{36,10}-{38,10}', '562', 995, 0), +(57, 'Candle Shop', 0, '{36,10}', '562', 995, 0), +(58, 'Chainmail Shop', 0, '{1103,10}-{1101,10}-{1105,10}-{1107,10}-{1109,10}-{1111,10}', '581', 995, 0), +(59, 'Fancy Clothes Store', 0, '{1949,10}-{958,10}-{948,10}-{1733,10}-{1734,1000}-{1059,30}-{1061,10}-{1757,10}-{1013,10}-{1025,10}-{10088,0}-{10090,0}-{10091,0}-{10089,0}-{10087,0}-{11525,0}', '554', 995, 0), +(60, 'Thessalias Fine Clothes', 0, '{1005,10}-{1129,10}-{1059,10}-{1061,10}-{1757,10}-{1013,10}-{1015,10}-{1011,10}-{1007,10}-{950,10}-{426,10}-{428,10}', '548', 995, 0), +(61, 'Fine Fashions', 0, '{646,30}-{648,30}-{650,30}-{652,30}-{654,30}-{656,30}-{658,30}-{660,30}-{662,30}-{664,30}-{636,30}-{638,30}-{640,30}-{642,30}-{644,30}-{626,30}-{628,30}-{630,30}-{632,30}-{634,30}', '601', 995, 0), +(62, 'Yrsas Accoutrements', 0, '{3775,10}-{3773,10}-{3767,10}-{3769,10}-{3771,10}-{3793,10}-{3795,10}-{3797,10}-{3791,10}-{3799,10}-{3767,10}-{3759,10}-{3761,10}-{3765,10}-{3763,10}-{3777,10}-{3779,10}-{3781,10}-{3783,10}-{3785,10}-{3787,10}-{3789,10}', '1301', 995, 0), +(63, 'Barkers Haberdashery', 0, '{2894,5}-{2896,5}-{2898,5}-{2900,5}-{2902,5}-{2904,5}-{2906,5}-{2908,5}-{2910,5}-{2912,5}-{2914,5}-{2916,5}-{2918,5}-{2920,5}-{2922,5}-{2924,5}-{2926,5}-{2928,5}-{2930,5}-{2932,5}-{2934,5}-{2936,5}-{2938,5}-{2940,5}-{2942,5}-{1007,5}-{1023,5}-{1019,5}-{1021,5}-{1027,5}', '1039', 995, 0), +(64, 'Lletya Seamstress', 0, '{1734,1000}-{1733,10}-{1759,100}-{1763,10}-{1765,10}-{1767,10}-{1769,10}-{1771,10}-{1773,10}', '2353', 995, 0), +(65, 'Dodgy Mikes Second-hand Clothing', 0, '{7114,10}', '3166', 995, 0), +(66, 'Agmundi Quality Clothes', 0, '', '2161', 995, 0), +(67, 'Vermundis Clothes Stall', 0, '{950,10}', '2162', 995, 0), +(68, 'Grand Season Groceries', 0, '{2171,10}-{2128,10}-{1933,10}-{2169,10}-{1957,10}-{1967,10}-{1982,10}-{1985,10}-{2120,10}-{2108,10}-{2102,10}-{2114,10}-{2126,10}-{2025,10}-{1973,10}-{1975,10}-{2130,10}-{1927,10}-{946,10}-{2167,10}-{2164,10}-{2165,10}-{2166,10}', '600', 995, 0), +(69, 'Frenitas Cookery Shop', 0, '{2313,10}-{1955,0}-{1887,10}-{1923,10}-{590,10}-{1935,10}-{1931,30}-{1973,10}-{1933,500}-{1980,10}', '593', 995, 0), +(70, 'Dommiks Crafting Store', 0, '{1755,10}-{1592,10}-{1597,10}-{1595,10}-{1733,10}-{1734,1000}-{1599,10}-{2976,10}-{5523,10}-{9434,10}-{11065,10}', '545', 995, 0), +(71, 'Rommiks Crafty Supplies', 0, '{1755,10}-{1592,10}-{1597,10}-{1595,10}-{1733,10}-{1734,1000}-{1599,10}-{2976,10}-{5523,10}-{9434,10}-{11065,10}', '585', 995, 0), +(72, 'Jamilas Craft Stall', 0, '{1755,10}-{1592,10}-{1597,10}-{1595,10}-{1733,10}-{1734,1000}-{1599,10}-{2976,10}-{5523,10}-{11065,10}', '5268', 995, 0), +(73, 'Vanessas Farming Shop', 0, '{6032,300}-{5341,10}-{5325,10}-{6036,10}-{5343,10}-{5331,30}-{5329,10}-{952,10}-{5354,100}-{1925,100}-{5418,10}-{5376,10}-{5996,0}-{6006,0}-{1967,0}-{5994,0}-{5931,0}-{6000,0}-{1957,0}-{5504,0}-{5986,0}-{1982,0}-{5982,0}-{6002,0}-{5998,0}', '2305', 995, 0), +(74, 'Alices Farming Shop', 0, '{5376,10}-{6032,300}-{5418,10}-{5376,10}-{6036,10}-{5354,100}-{5341,10}-{5329,10}-{5343,10}-{952,10}-{5325,10}-{1925,100}-{5331,30}-{5996,0}-{6006,0}-{1967,0}-{5994,0}-{5931,0}-{6000,0}-{1957,0}-{5504,0}-{5986,0}-{1982,0}-{5982,0}-{6002,0}-{5998,0}', '2307', 995, 0), +(75, 'Sarahs Farming Shop', 0, '{5376,10}-{6032,300}-{5418,10}-{5376,10}-{6036,10}-{5354,100}-{5341,10}-{5329,10}-{5343,10}-{952,10}-{5325,10}-{1925,100}-{5331,30}-{5996,0}-{6006,0}-{1967,0}-{5994,0}-{5931,0}-{6000,0}-{1957,0}-{5504,0}-{5986,0}-{1982,0}-{5982,0}-{6002,0}-{5998,0}', '2304', 995, 0), +(76, 'Richards Farming Shop', 0, '{5376,10}-{6032,300}-{5418,10}-{5376,10}-{6036,10}-{5354,100}-{5341,10}-{5329,10}-{5343,10}-{952,10}-{5325,10}-{1925,100}-{5331,30}-{5996,0}-{6006,0}-{1967,0}-{5994,0}-{5931,0}-{6000,0}-{1957,0}-{5504,0}-{5986,0}-{1982,0}-{5982,0}-{6002,0}-{5998,0}', '1783', 995, 0), +(77, 'Wydins Consumables Store', 0, '{1933,500}-{2132,10}-{2138,10}-{1967,10}-{1963,0}-{1951,0}-{2309,10}-{1973,10}-{1985,10}-{1982,10}-{1550,10}', '557', 995, 0), +(78, 'Rufuss Meat Emporium', 0, '{2132,100}-{2138,30}-{2134,10}-{2136,10}-{335,0}-{349,0}-{331,0}-{383,0}', '1038', 995, 0), +(79, 'Solihibs Consumables Stall', 0, '{4012,10}-{1963,10}-{4016,10}-{4014,10}', '1433', 995, 0), +(80, 'Fresh Meat', 0, '{2134,10}-{2132,300}-{2136,10}-{2142,10}-{2138,10}-{2140,10}-{3226,100}-{7224,0}-{7223,0}-{3228,10}-{2876,0}-{7230,0}-{2878,0}-{7566,0}-{2337,0}-{9978,10}-{9984,0}-{9980,0}-{9986,0}-{9992,0}-{9988,0}', '7053', 995, 0), +(81, 'Ardougne Bakers Stall', 0, '{2309,10}-{1891,10}-{1973,100}', '571', 995, 0), +(82, 'Keepa Kettilon\'s Store', 0, '{361,20}-{329,20}-{339,20}-{379,10}-{373,0}-{385,0}', '5487', 995, 0), +(83, 'Giannes Restaurant', 0, '{2223,10}-{2225,10}-{2221,10}-{2219,10}-{2227,10}-{2233,10}-{2231,10}-{2235,10}-{2229,10}-{2241,10}-{2243,10}-{2239,10}-{2237,10}', '', 995, 0), +(84, 'Warriors\' Guild Potion Shop', 0, '{115,10}-{121,10}-{133,10}', '4294', 995, 0), +(85, 'Warriors\' Guild Consumables Shop', 0, '{333,10}-{365,10}-{2289,10}-{6705,10}-{2003,10}', '4293', 995, 0), +(86, 'Warriors\' Guild Armoury', 0, '{1363,10}-{1365,10}-{1369,10}-{1277,10}-{1279,10}-{1281,10}-{1283,10}-{1285,10}-{1287,10}-{1307,10}-{1309,10}-{1311,10}-{1313,10}-{1315,10}-{1317,10}-{1211,10}-{1301,10}-{1317,10}-{1297,10}', '4295', 995, 0), +(87, 'Herquins Gem', 0, '{1623,0}-{1621,0}-{1619,0}-{1617,0}-{1607,0}-{1605,0}-{1603,0}-{1601,0}', '584', 995, 0), +(88, 'Ardougne Gem Stall', 0, '{1623,0}-{1621,0}-{1619,0}-{1617,0}-{1607,0}-{1605,0}-{1603,0}-{1601,0}', '570', 995, 0), +(89, 'Green Gemstone Gem', 0, '{1607,0}-{1605,0}-{1603,0}-{1601,0}', '2157', 995, 0), +(90, 'Gem Trader (stall)', 0, '{1623,0}-{1621,0}-{1619,0}-{1617,0}-{1607,0}-{1605,0}-{1603,0}-{1601,0}', '540', 995, 0), +(91, 'Gem Trader (stall)', 0, '{1623,0}-{1621,0}-{1619,0}-{1617,0}-{1607,0}-{1605,0}-{1603,0}-{1601,0}', '540', 995, 0), +(92, 'Gem Store (monkey Colony)', 0, '{1623,1}-{1621,1}-{1619,0}-{1617,0}', '2157', 995, 0), +(93, 'Pelters\' Veg Stall', 0, '{2518,100}', '', 995, 0), +(94, 'Ardougne Silver Stall', 0, '{1714,10}-{442,0}-{2355,0}', '569', 995, 0), +(95, 'Ardougne Spice Stall', 0, '{2007,10}-{946,10}-{1550,10}', '572', 995, 0), +(96, 'Shop of Distate', 0, '{2518,1}', '958', 995, 0), +(97, 'Ardougne Fur Stall', 0, '{948,10}-{958,10}-{10117,0}-{10121,0}-{10119,0}-{10123,0}-{10093,0}-{10095,0}-{10097,0}-{10099,0}-{10101,0}-{10103,0}', '573', 995, 0), +(98, 'Peksa\'s Helmet Shop', 0, '{1139,5}-{1137,3}-{1141,3}-{1143,1}-{1145,1}-{1155,4}-{1153,3}-{1157,2}-{1159,1}-{1161,1}', '538', 995, 0), +(99, 'Skulgrimens Battle Gear', 0, '{1337,10}-{1335,10}-{1339,10}-{1341,10}-{1343,10}-{1347,0}-{3749,10}-{3751,10}-{3753,10}-{3755,10}', '1303', 995, 0), +(100, 'Tea Shop', 0, '{712,10}', '595', 995, 0), +(101, 'Frincoss Fabulous Herb Store', 0, '{229,10}-{233,10}-{221,10}', '297', 995, 0), +(102, 'Gruds Herblore Stall', 0, '{229,10}-{233,10}-{221,10}', '704', 995, 0), +(103, 'Jatixs Herblore Shop', 0, '{229,10}-{233,10}-{221,10}', '587', 995, 0), +(104, 'Alecks Hunter Emporium', 0, '{10010,10}-{10012,300}-{10025,300}-{10150,10}-{10006,30}-{10008,30}-{10029,10}-{596,10}-{10031,30}-{12539,0}', '5110', 995, 0), +(105, 'Nardah Hunter Shop', 0, '{10010,10}-{10012,300}-{10025,300}-{10150,10}-{10006,30}-{10008,30}-{10029,10}-{596,10}-{10031,30}-{12539,0}', '5109', 995, 0), +(106, 'Jewellery Shop', 0, '{1635,0}-{1637,0}-{1639,0}-{1641,0}-{1643,0}-{1654,0}-{1656,0}-{1658,0}-{1660,0}-{1662,0}-{1673,0}-{1675,0}-{1696,0}-{1698,0}-{1700,0}-{11069,0}-{11072,0}-{11076,0}-{11085,0}-{11092,0}', '556', 995, 0), +(107, 'Ali\'s Discount Wares.', 0, '{1931,30}-{1935,10}-{1825,10}-{1833,10}-{1837,10}-{1925,30}-{4593,10}-{4591,10}-{970,1}-{946,10}-{590,10}-{1265,10}-{2138,10}', '1862', 995, 0), +(108, 'Ali the Kebab Seller', 0, '{1971,10}', '1865', 995, 0), +(109, 'Karim', 0, '{1971,10}', '543', 995, 0), +(110, 'Kjut\'s KEbabs', 0, '{1971,10}', '2198', 995, 0), +(111, 'Mace Shop', 0, '{1422,10}-{1420,10}-{1424,10}-{1428,10}-{1430,10}', '580', 995, 0), +(112, 'Alis Discount Wares#runes', 0, '{1931,30}-{1935,10}-{1833,10}-{1837,10}-{1925,10}-{4593,10}-{4591,10}-{970,10}-{946,10}-{590,10}-{1265,10}-{2138,10}-{6416,10}-{4600,10}-{6416,10}-{4600,10}-{556,300}-{555,300}-{557,300}-{554,300}-{561,300}-{563,300}-{562,300}-{560,300}-{558,300}-{559,300}-{565,100}-{564,300}-{566,100}-{6382,30}-{6388,30}-{6390,30}-{1835,30}', '1862', 995, 0), +(113, 'Bettys Magic Emporium', 0, '{554,3000}-{555,3000}-{556,3000}-{557,3000}-{558,100}-{559,100}-{562,30}-{560,10}-{221,150}-{579,10}-{1017,10}-{14730,100}-{14732,100}-{14734,100}-{14736,100}-{14738,100}-{14740,100}', '583', 995, 0), +(114, 'Auburys Rune Shop', 0, '{554,5000}-{555,5000}-{556,5000}-{557,5000}-{558,5000}-{559,5000}-{562,500}-{560,500}-{14730,100}-{14732,100}-{14734,100}-{14736,100}-{14738,100}-{14740,100}', '553', 995, 0), +(115, 'Magic Guild Store', 0, '{556,5000}-{555,5000}-{557,5000}-{554,5000}-{558,5000}-{559,5000}-{562,250}-{561,250}-{560,250}-{563,250}-{565,250}-{566,250}-{1391,5}-{1387,2}-{1383,2}-{1381,2}-{1385,2}-{14730,100}-{14732,100}-{14734,100}-{14736,100}-{14738,100}-{14740,100}', '461', 995, 0), +(116, 'Baba Yagas Magic Shop', 0, '{556,1000}-{555,1000}-{557,1000}-{554,1000}-{558,1000}-{559,1000}-{562,300}-{561,300}-{560,300}-{563,100}-{565,100}-{566,100}-{9075,100}-{1391,20}-{1387,10}-{1383,10}-{1381,10}-{1385,10}-{9078,10}', '4513', 995, 0), +(117, 'Mage Training Arena#rewards', 0, '', '3097', 995, 0), +(118, 'Lundails Arena-side Rune Shop', 0, '{554,1000}-{555,1000}-{556,1000}-{557,1000}-{558,1000}-{559,1000}-{561,300}-{562,300}-{563,100}-{564,300}-{560,300}', '903', 995, 0), +(119, 'Tutabs Magical Market', 0, '{554,1000}-{555,1000}-{556,1000}-{557,1000}-{563,100}-{4009,10}-{4006,10}-{4023,10}', '1435', 995, 0), +(120, 'Void Knight Magic Store', 0, '{554,1000}-{555,1000}-{556,1000}-{557,1000}-{558,1000}-{559,1000}-{562,300}-{560,300}', '3798', 995, 0), +(121, 'Tzhaar-mej-rohs Rune Store', 0, '{554,1000}-{555,1000}-{557,1000}-{556,1000}-{558,1000}-{559,1000}-{562,300}-{560,100}', '2623', 6529, 0), +(122, 'Tzhaar-Hur-Lek\'s Ore and Gem Store.', 0, '{438,5}-{436,5}-{440,2}-{442,0}-{453,0}-{444,0}-{447,0}-{449,0}-{451,0}-{1623,1}-{1621,1}-{1619,0}-{1617,0}-{1631,0}-{6571,1}-{9194,50}', '2622', 6529, 0), +(123, 'Magic Guild Store', 0, '{4089,1000}-{4091,1000}-{4093,1000}-{4095,1000}-{4097,1000}', '1658', 995, 0), +(124, 'Nurmofs Pickaxe Shop', 0, '{1265,10}-{1267,10}-{1269,10}-{1273,10}-{1271,10}-{1275,10}', '594', 995, 0), +(125, 'Drogos Mining Emporium', 0, '{2347,10}-{1265,10}-{436,0}-{438,0}-{440,0}-{453,0}-{2349,0}-{2351,0}-{2357,0}', '579', 995, 0), +(126, 'Pickaxe-is-mine', 0, '{1265,10}-{1269,10}-{1273,10}-{1271,10}-{1275,10}', '2160', 995, 0), +(127, 'Pet Shop', 0, '{12130,10}-{12125,1000}-{12127,10}-{12183,125000}', '6750,6898,6893', 995, 0), +(128, 'Zeneshas Platebody Shop', 0, '{1117,10}-{1115,10}-{1119,10}-{1125,10}-{1121,10}', '589', 995, 0), +(129, 'Horviks Armour Shop', 0, '{1103,10}-{1101,10}-{1173,10}-{1175,10}-{1075,10}-{1067,10}-{1087,10}-{1081,10}-{1117,10}-{1115,10}-{1119,10}-{1125,10}-{1121,10}', '549', 995, 0), +(130, 'Armour Shop', 0, '{1109,4}-{1159,4}-{1181,4}-{1197,4}-{1071,4}-{1085,4}-{1121,4}', '5485', 995, 0), +(131, 'Louies Armoured Legs Bazaar', 0, '{1075,10}-{1067,10}-{1069,10}-{1077,10}-{1071,10}-{1073,10}', '542', 995, 0), +(132, 'Horviks Armour Shop', 0, '{1103,10}-{1101,10}-{1173,10}-{1175,10}-{1075,10}-{1067,10}-{1087,10}-{1081,10}-{1117,10}-{1115,10}-{1119,10}-{1125,10}-{1121,10}', '549', 995, 0), +(133, 'Seddus Adventurers Store', 0, '{1093,10}-{1079,10}-{1113,10}-{1099,10}-{1193,10}', '3038', 995, 0), +(134, 'Ranaels Super Skirt Store', 0, '{1087,10}-{1081,10}-{1083,10}-{1089,10}-{1085,10}-{1091,10}', '544', 995, 0), +(135, 'Zekes Superior Scimitars', 0, '{1321,10}-{1323,10}-{1325,10}-{1329,10}', '541', 995, 0), +(136, 'Daga\'s Scimitar Smithy', 0, '{1321,10}-{1323,10}-{1325,10}-{1329,10}-{4587,10}', '1434', 995, 0), +(137, 'Shield Shop', 0, '{1171,10}-{1173,10}-{1189,10}-{1175,10}-{1191,10}-{1177,10}-{1193,10}-{1181,10}', '577', 995, 0), +(138, 'Multicannon parts for sale', 0, '{6,5}-{8,5}-{10,5}-{12,5}-{5,5}-{4,5}', '209', 995, 0), +(139, 'Spice Shop', 0, '{1931,30}-{2169,10}-{5970,0}', '1980', 995, 0), +(140, 'Staff Shop', 0, '{1379,10}-{1389,10}-{1381,10}-{1383,10}-{1385,10}-{1387,10}-{2890,10}', '546', 995, 0), +(141, 'Pikkupstix\'s Summoning Shop', 0, '{12204,10}-{12207,10}-{12210,10}-{12213,10}-{12216,10}-{12219,10}-{12222,10}-{12183,125000}-{12155,5000}', '6971', 995, 0), +(142, 'Bogrog\'s Summoning Shop', 0, '{12204,10}-{12207,10}-{12210,10}-{12213,10}-{12216,10}-{12219,10}-{12222,10}-{12183,125000}-{12155,5000}', '6996', 995, 0), +(143, 'Fortunato\'s Fine Wine', 0, '{1993,10}-{1937,10}-{7919,10}-{1935,10}', '3671', 995, 0), +(144, 'Gerrants Fishy Business', 0, '{303,10}-{307,10}-{309,10}-{311,1000}-{301,10}-{313,1000}-{314,1000}-{317,0}-{327,10}-{345,0}-{321,0}-{335,0}-{349,0}-{331,0}-{359,0}-{377,0}-{371,0}', '558', 995, 0), +(145, 'Harrys Fishing Shop', 0, '{303,10}-{307,10}-{311,1000}-{301,10}-{313,1000}-{305,10}-{317,0}-{327,0}-{345,0}-{353,0}-{341,0}-{321,0}-{359,0}-{377,0}-{363,0}-{371,0}-{383,0}-{7810,1000}', '576', 995, 0), +(146, 'Blades By Urbi', 0, '{1205,10}-{1203,10}-{1207,10}-{1217,0}-{1209,10}-{1211,10}-{1213,10}-{1215,0}-{1321,10}-{1323,10}-{1325,10}', '5266', 995, 0), +(147, 'Gaius Two Handed Shop', 0, '{1307,10}-{1309,10}-{1311,10}-{1313,10}-{1315,10}-{1317,10}', '586', 995, 0), +(148, 'Gulluck And Sons', 0, '{882,1000}-{877,300}-{880,0}-{841,10}-{837,10}-{1363,10}-{1365,10}-{1369,10}-{1307,10}-{1309,10}-{1311,10}-{1313,10}-{1315,10}-{1317,10}', '602', 995, 0), +(149, 'Varrock Sword Shop', 0, '{1277,10}-{1277,10}-{1279,10}-{1281,10}-{1283,10}-{1285,10}-{1287,10}-{1291,10}-{1293,10}-{1295,10}-{1297,10}-{1299,10}-{1301,10}-{1205,10}-{1203,10}-{1207,10}-{1217,10}-{1209,10}-{1211,10}', '552,551', 995, 0), +(150, 'Zekes Superior Scimitars', 0, '{1321,10}-{1323,10}-{1325,10}-{1329,10}', '541', 995, 0), +(151, 'Authentic Throwing Weapons', 0, '{825,1000}-{826,1000}-{827,1000}-{828,300}-{829,100}-{830,100}-{800,900}-{801,800}-{802,700}-{803,600}-{804,500}-{805,400}', '692', 995, 0), +(152, 'Happy Heroes Hemporium', 0, '{1377,1}-{1434,1}', '797', 995, 0), +(153, 'Jukats Dragon Sword Shop', 0, '{1305,2}-{1215,2}', '564', 995, 0), +(154, 'Nardoks Bone Weapons', 0, '{5018,10}-{5016,10}-{8872,10}-{8880,10}-{8882,25000}', '4312', 995, 0), +(155, 'Quality Weapons Shop', 0, '{1365,10}-{1369,10}-{1285,10}-{1287,10}-{1325,10}-{1297,10}-{1303,10}-{853,10}-{888,100}-{890,100}', '2152', 995, 0), +(156, 'Quartermasters Stores', 0, '{1931,30}-{1935,10}-{1735,10}-{590,10}-{2309,10}-{3190,10}-{3192,10}-{3194,10}-{3196,10}-{3198,10}-{3200,10}-{3202,10}-{3204,10}', '1208', 995, 0), +(157, 'Draynor Seed Marker', 0, '{5318,0}-{5319,0}-{5324,0}-{5322,0}-{5320,0}-{5323,0}-{5321,0}-{5305,0}-{5306,5}-{5097,20}-{5096,20}-{5307,20}-{5308,5}-{5310,0}-{5311,0}', '2572,2233', 995, 0), +(158, 'Romily Weaklax Pie\'s', 0, '{2323,1}-{2325,1}-{2327,1}-{7178,1}-{7188,1}-{7198,1}', '3205', 995, 0), +(159, 'Slayer Equipment', 0, '{4155,50}-{4156,50}-{4158,50}-{4160,50000}-{4161,5000}-{4162,50}-{4164,50}-{4166,50}-{4168,50}-{4170,50}-{4551,50}-{6664,5000}-{6696,3000}-{6720,50}-{7051,50}-{7159,50}-{7421,50}-{7432,50}-{8923,50}-{10952,50}-{13279,5000}-{13278,3000}', '70,1598,1596,1597,1599,8274,8275,8276,8277,8273,8271,8270,2253', 995, 0), +(160, 'Battle Runes', 0, '{554,100}-{555,100}-{556,100}-{557,100}-{558,100}-{559,100}-{562,30}-{560,30}', '2257,2258,2259', 995, 0), +(161, 'Smithing Smiths Shop', 0, '{1321,10}-{1323,10}-{1325,10}-{1329,10}-{2347,10}', '3162', 995, 0), +(162, 'Tamayus Spear Stall', 0, '{3188,10}', '1167', 995, 0), +(163, 'Tzhaar-hur-tels Equipment Store', 0, '{6522,500}-{6525,1}-{6523,1}-{6524,1}-{6526,1}-{6527,1}-{6528,1}-{6568,1}', '2620', 6529, 0), +(164, 'Vigrs Warhammers', 0, '{1337,10}-{1335,10}-{139,10}-{1341,10}-{1343,10}', '2151', 995, 0), +(165, 'Weapons Galore', 0, '{1315,10}-{1343,10}-{1369,10}-{1299,10}', '5486', 995, 0), +(166, 'Construction supplies', 0, '{8794,1000}-{8790,1000}-{4819,1000}-{4820,1000}-{1539,1000}', '4250', 995, 0), +(167, 'The Toad and Chicken', 0, '{1905,12}-{1907,12}-{1913,12}', '1079', 995, 0), +(168, 'Martin Thwait\'s Lost and Found.', 0, '{954,50}-{1523,25}-{1755,30}-{946,20}-{5560,25}-{864,15}-{863,10}-{865,5}-{3095,3}-{3096,2}-{3097,1}', '2270', 995, 0), +(169, 'Diango\'s Toy Store', 0, '{2526,10}-{2520,10}-{2522,10}-{2524,10}-{4613,10}-{12844,10}', '970', 995, 0), +(170, 'The Shrimps and Parrot', 0, '{347,5}-{339,5}-{379,5}-{373,6}-{3144,0}', '793', 995, 0), +(171, 'Oziach', 0, '{1127,2}-{1135,2}', '747', 995, 0), +(172, 'Scavvo\'s Rune Store', 0, '{1093,1}-{1079,1}-{1432,1}-{1113,1}-{1303,1}-{1289,1}-{1099,1}-{1065,1}-{1169,2}', '537', 995, 0), +(173, 'Valaine\'s Shop of Champions.', 0, '{1021,2}-{1165,1}-{1077,1}-{1123,1}', '536', 995, 0), +(174, 'Bebadin Village Bartering', 1, '{1823,30}-{1831,30}-{1937,10}-{1921,10}-{1929,10}-{946,10}-{2347,10}', '833', 995, 0), +(175, 'Irksol', 0, '{1641,5}', '566', 995, 0), +(176, 'Mage Arena Staffs.', 0, '{2415,5}-{2416,5}-{2417,5}', '904', 995, 0), +(177, 'Culinaromancer\'s Chest', 0, '{1973,50}-{1982,50}-{1987,9}-{2283,1}-{1927,50}-{6697,50}-{2313,50}-{1973,50}-{1923,50}-{1931,50}-{1925,50}-{1985,50}-{1955,50}-{1933,50}-{1944,50}-{2130,50}-{2007,50}-{1887,50}-{1935,50}-{1980,50}', '', 995, 0), +(178, 'Culinaromancer\'s Chest', 0, '{7453,5}-{7454,5}-{7455,5}-{7456,5}-{7457,5}-{7458,5}-{7459,5}-{7460,5}-{7461,5}-{7462,5}-{7433,5}-{7435,5}-{7437,5}-{7439,5}-{7441,5}-{7443,5}-{7445,5}-{7447,5}-{7449,5}-{7451,5}', '', 995, 0), +(179, 'Sir Tiffy Cashien', 0, '{5574,10}-{5576,10}-{5575,10}-{9672,10}-{9676,10}-{9674,10}-{9678,10}', '2290', 995, 0), +(180, 'Legends\' Guild Shop of Useful Items', 0, '{299,100}-{1542,5}-{1590,3}-{1052,1}-{2368,3}', '933', 995, 0), +(181, 'MoonClan Fine Clothes', 0, '{9068,10}-{9069,10}-{9070,10}-{9071,10}-{9072,10}-{9073,10}-{9074,10}-{1733,50}-{1734,500}', '4518', 995, 0), +(182, 'Delicious Goods', 0, '{2436,150000}-{2440,150000}-{2442,150000}-{2444,150000}-{3040,150000}-{2434,150000}-{3024,150000}-{2452,150000}-{6685,150000}-{9739,150000}-{385,150000}-{3144,150000}-{391,150000}-{7060,150000}-{7946,150000}-{379,150000}-{7218,150000}-{2301,150000}', '3117', 995, 0), +(183, 'Armour & Supplies', 0, '{5698,150000}-{1305,150000}-{4587,150000}-{1377,150000}-{1434,150000}-{7158,150000}-{3204,150000}-{4151,150000}-{4153,150000}-{6528,150000}-{1333,150000}-{1319,150000}-{10887,150000}-{5574,150000}-{5575,150000}-{5576,150000}-{9672,150000}-{9674,150000}-{9676,150000}-{1067,150000}-{1115,150000}-{1153,150000}-{1079,150000}-{1127,150000}-{1163,150000}-{6107,150000}-{6109,150000}-{6108,150000}-{6524,150000}-{10828,150000}-{3751,150000}-{3753,150000}-{3105,150000}-{7460,150000}', '5503', 995, 0), +(184, 'Range Supplies', 0, '{9241,150000}-{9243,150000}-{9242,150000}-{9244,150000}-{9245,150000}-{9144,150000}-{9305,150000}-{868,150000}-{11230,150000}-{6522,150000}-{892,150000}-{2491,150000}-{2497,150000}-{2503,150000}-{6328,150000}-{3749,150000}-{861,150000}-{9185,150000}-{4214,150000}-{1169,150000}-{1129,150000}-{10034,150000}', '649', 995, 0), +(185, 'Magic Emporium', 0, '{554,150000}-{555,150000}-{556,150000}-{557,150000}-{558,150000}-{559,150000}-{560,150000}-{561,150000}-{562,150000}-{563,150000}-{564,150000}-{565,150000}-{566,150000}-{9075,150000}-{4089,150000}-{4091,150000}-{4093,150000}-{4095,150000}-{4097,150000}-{4099,150000}-{4101,150000}-{4103,150000}-{4105,150000}-{4107,150000}-{4109,150000}-{4111,150000}-{4113,150000}-{4115,150000}-{4117,150000}-{6912,150000}-{3840,150000}-{3842,150000}-{3844,150000}-{1540,150000}-{2412,150000}-{2413,150000}-{2414,150000}-{4675,150000}-{2415,150000}-{2416,150000}-{2417,150000}-{577,150000}-{579,150000}-{2579,150000}', '707', 995, 0), +(186, 'Neitiznot Supplies', 0, '{946,10}-{2347,10}-{1734,10}-{1733,10}-{1351,10}-{1759,100}', '5509', 995, 0), +(187, 'William\'s Wilderness Cape Shop', 0, '{4315,100}-{4335,100}-{4375,100}-{4395,100}', '1778', 995, 0), +(188, 'Ian\'s Wilderness Cape Shop', 0, '{4317,100}-{4337,100}-{4357,100}-{4377,100}-{4397,100}', '1779', 995, 0), +(189, 'Larry\'s Wilderness Cape Shop', 0, '{4319,100}-{4339,100}-{4359,100}-{4379,100}-{4399,100}', '1780', 995, 0), +(190, 'Darren\'s Wilderness Cape Shop', 0, '{4321,100}-{4341,100}-{4361,100}-{4381,100}-{4401,100}', '1781', 995, 0), +(191, 'Edward\'s Wilderness Cape Shop', 0, '{4323,100}-{4343,100}-{4363,100}-{4383,100}-{4403,100}', '1782', 995, 0), +(192, 'Richard\'s Wilderness Cape Shop', 0, '{4325,100}-{4345,100}-{4365,100}-{4385,100}-{4405,100}', '1783', 995, 0), +(193, 'Neil\'s Wilderness Cape Shop', 0, '{4327,100}-{4347,100}-{4367,100}-{4387,100}-{4407,100}', '1784', 995, 0), +(194, 'Edmond\'s Wilderness Cape Shop', 0, '{4329,100}-{4349,100}-{4369,100}-{4389,100}-{4409,100}', '1785', 995, 0), +(195, 'Simon\'s Wilderness Cape Shop', 0, '{4331,100}-{4351,100}-{4371,100}-{4391,100}-{4411,100}', '1786', 995, 0), +(196, 'Sam\'s Wilderness Cape Shop', 0, '{4333,100}-{4353,100}-{4373,100}-{4393,100}-{4413,100}', '1787', 995, 0), +(197, 'Donator Island General Store', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '561', 995, 0), +(198, 'Candle Shop (type)', 0, '{36,10}-{38,10}', '', 995, 0), +(199, 'The Researcher\'s Wares', 0, '{7409,1}-{4081,1}-{10588,1}-{7003,1}-{4502,1}-{775,1}-{777,1}-{776,1}-{6617,1}-{6619,1}-{6623,1}-{6625,1}-{6627,1}-{6629,1}-{6631,1}-{6633,1}-{2379,1}', '4568', 995, 0), +(200, 'The Teleporter\'s Tabs', 0, '{8007,100}-{8008,100}-{8009,100}-{8010,100}-{8011,100}-{8012,100}', '', 995, 0), +(201, 'The Fairy\'s Culinary Goods', 0, '{330, 10000000}-{6706, 10000000}-{380, 10000000}-{7219, 10000000}-{2290, 10000000}-{2302, 10000000}-{1892, 10000000}-{229, 10000000}', '3322', 995, 0), +(202, 'The Wizard\'s Goods', 0, '{554,10000000}-{555,10000000}-{556,10000000}-{557,10000000}-{558,10000000}-{559,10000000}-{562,10000000}-{560,10000000}-{563,10000000}-{14730,10000000}-{14732,10000000}-{14734,10000000}-{14736,10000000}-{14738,10000000}-{14740,10000000}-{11872,10}-{11960,10}-{11962,10}-{579,10}-{577,10}-{1011,10}-{1389,10}-{1381,10}-{1381,10}-{1383,10}-{1385,10}-{1387,10}-{4675,10}-{2890,10}-{9731,10}-{3755,10}-{1727,10}-{656, 10}-{658,10}-{660,10}-{662, 10}-{664,10}-{3839, 10}-{3841, 10}-{3843,10}', '8029', 995, 0), +(203, '2009Scape Protective Goods', 0, '{11814,10}-{11816,10}-{11818,10}-{11820,10}-{11822,10}-{11824, 10}-{11826,10}-{11828,10}-{11830,10}-{11832,10}-{11834,10}-{11836,10}-{11838,10}-{11840,10}-{3105,10}-{4119,10}-{4121,10}-{4123,10}-{4125,10}-{4127,10}-{4129,10}-{1725,10}-{1729,10}-{3751,10}-{3753,10}-{1149,10}-{542,10}-{544,10}-{5574,10}-{5575,10}-{5576,10}-{6106,10}-{6107,10}-{6108,10}-{6109,10}-{6110,10}-{6111,10}-{4502,10}-{7458,10}', '4905', 995, 0), +(204, '2009Scape Weapon Store (Bronze - Mithril)', 0, '{1205,10}-{1237,10}-{1265,10}-{1277,10}-{1291,10}-{1307,10}-{1321,10}-{1337,10}-{1351,10}-{1375,10}-{1203,10}-{1239,10}-{1267,10}-{1279,10}-{1293,10}-{1309,10}-{1323,10}-{1335,10}-{1349,10}-{1363,10}-{1207,10}-{1241,10}-{1269,10}-{1281,10}-{1295,10}-{1311,10}-{1325,10}-{1339,10}-{1353,10}-{1365,10}-{1209,10}-{1243,10}-{1273,10}-{1285,10}-{1299,10}-{1315,10}-{1329,10}-{1343,10}-{1355,10}-{1369,10}', '', 995, 0), +(205, '2009Scape Weapon Store (Adamant - Dragon)', 0, '{1211,10}-{1245,10}-{1271,10}-{1287,10}-{1301,10}-{1317,10}-{1331,10}-{1345,10}-{1357,10}-{1371,10}-{1213,10}-{1247,10}-{1275,10}-{1289,10}-{1303,10}-{1319,10}-{1333,10}-{1347,10}-{1359,10}-{1373,10}-{1215,10}-{4587,10}', '', 995, 0), +(206, '2009Scape Tool Store', 0, '{1925,10}-{2347,10}-{590,10}-{946,10}-{952,10}-{301,10}-{305,10}-{307,10}-{309,10}-{311,10}-{313,1000}-{1734,10}-{233,10}-{1349,10}-{1353,10}-{1355,10}-{1267,10}-{1269,10}-{1271,10}-{1273,10}-{1734,100}-{1733,100}-{1779,1000}-{526, 500}-{532,500}', '8174', 995, 0), +(207, '2009Scape General Store', 1, '{1931,30}-{1935,30}-{1735,10}-{1925,10}-{1923,10}-{1887,10}-{590,10}-{1755,10}-{2347,10}-{550,10}-{9003,10}', '7967,3039', 995, 0), +(208, 'Hartwin\'s Longrange Tools', 0, '{882,10000000}-{884,10000000}-{886,10000000}-{888,10000000}-{890,10000000}-{877,10000000}-{9140,10000000}-{9141,10000000}-{841,10}-{843,10}-{849,10}-{853,10}-{857,10}-{861,10}-{837,10}-{9177,10}-{9179,10}-{9181,10}-{9183,10}-{11864,10}-{11866,10}-{11868,10}-{11870,10}-{1063,10}-{1095,10}-{1129,10}-{1129,10}-{1131,10}-{1167,10}-{1133,10}-{1097,10}-{6328,10}-{3749,10}-{1478,10}-{8880,10}-{8882,10000000}-{863,10000000}', '8139', 995, 0), +(209, 'Holy Wares', 0, '{6746, 20}-{732, 100000}', '1369', 995, 0), +(210, 'Ranging Guild Ticket Exchange', 0, '{47,10000000}-{1133,10000000}-{892,10000000}-{1169,10000000}-{1135,10000000}-{829,10000000}', '694', 1464, 0), +(211, 'Rok\'s Choc Box', 0, '{6794,30}-{1973,25}', '3045', 995, 0), +(212, 'Ak-haranu\'s Exotic Goods', 0, '{4740,100000}', '1688', 995, 0), +(213, 'The Garden Centre', 0, '{8417,1000}-{8419,1000}-{8421,1000}-{8423,1000}-{8425,1000}-{8427,1000}-{8429,1000}-{8431,1000}-{8433,1000}-{8435,1000}-{8451,1000}-{8453,1000}-{8455,1000}-{8457,1000}-{8459,1000}-{8461,1000}-{8437,1000}-{8439,1000}-{8441,1000}-{8443,1000}-{8445,1000}-{8447,1000}-{8449,1000}', '4251', 995, 0), +(214, 'Rasolo\'s Goods', 0, '{1969,2}-{2023,4}-{740,10}-{1215,1}-{550,1}-{583,2}-{1941,10}-{970,1}-{975,1}-{1599,1}-{2976,1}-{1823,1}-{1837,1}-{1864,5}-{2520,1}-{3377,1}-{626,1}-{1909,1}-{3787,1}-{3711,1}-{3678,1}-{3424,5}-{3420,1}-{5,1}', '1972', 995, 0), +(215, 'Fishing Guild Shop', 0, '{313,2000}-{314,1500}-{341,0}-{353,0}-{363,0}-{359,0}-{377,0}-{371,0}-{339,0}-{355,0}-{365,0}-{361,0}-{379,0}-{373,0}', '592', 995, 0), +(216, 'Ore Store', 0, '{436,20}-{438,10}-{440,10}-{442,5}-{453,10}-{444,5}-{447,0}-{449,0}', '5483', 995, 0); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `staff_accounts` +-- + +CREATE TABLE `staff_accounts` ( + `username` varchar(15) NOT NULL DEFAULT '', + `admin` tinyint(1) NOT NULL, + `serials` longtext NOT NULL, + `macs` longtext NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +-- +-- Indexes for dumped tables +-- + +-- +-- Indexes for table `ammo_configs` +-- +ALTER TABLE `ammo_configs` + ADD PRIMARY KEY (`itemId`); + +-- +-- Indexes for table `door_configs` +-- +ALTER TABLE `door_configs` + ADD PRIMARY KEY (`id`); + +-- +-- Indexes for table `ground_spawns` +-- +ALTER TABLE `ground_spawns` + ADD PRIMARY KEY (`item_id`); + +-- +-- Indexes for table `interface_configs` +-- +ALTER TABLE `interface_configs` + ADD PRIMARY KEY (`id`); + +-- +-- Indexes for table `item_configs` +-- +ALTER TABLE `item_configs` + ADD PRIMARY KEY (`id`); + +-- +-- Indexes for table `music_configs` +-- +ALTER TABLE `music_configs` + ADD PRIMARY KEY (`id`); + +-- +-- Indexes for table `npc_configs` +-- +ALTER TABLE `npc_configs` + ADD PRIMARY KEY (`id`); + +-- +-- Indexes for table `npc_drops` +-- +ALTER TABLE `npc_drops` + ADD PRIMARY KEY (`npc_id`); + +-- +-- Indexes for table `npc_spawns` +-- +ALTER TABLE `npc_spawns` + ADD PRIMARY KEY (`npc_id`); + +-- +-- Indexes for table `range_configs` +-- +ALTER TABLE `range_configs` + ADD PRIMARY KEY (`itemId`); + +-- +-- Indexes for table `region_xtea` +-- +ALTER TABLE `region_xtea` + ADD PRIMARY KEY (`regionId`); + +-- +-- Indexes for table `shops` +-- +ALTER TABLE `shops` + ADD PRIMARY KEY (`id`); + +-- +-- Indexes for table `staff_accounts` +-- +ALTER TABLE `staff_accounts` + ADD PRIMARY KEY (`username`); + +-- +-- AUTO_INCREMENT for dumped tables +-- + +-- +-- AUTO_INCREMENT for table `door_configs` +-- +ALTER TABLE `door_configs` + MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=38142; + +-- +-- AUTO_INCREMENT for table `shops` +-- +ALTER TABLE `shops` + MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5484; +COMMIT; + +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/database/COPYING b/database/COPYING new file mode 100644 index 0000000..6e475df --- /dev/null +++ b/database/COPYING @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/database/EXCEPTIONS-CLIENT b/database/EXCEPTIONS-CLIENT new file mode 100644 index 0000000..11ba42c --- /dev/null +++ b/database/EXCEPTIONS-CLIENT @@ -0,0 +1,136 @@ + FOSS License Exception + + http://www.mysql.com/about/legal/licensing/foss-exception/ + Updated February 23, 2012 + +What is the FOSS License Exception? + + Oracle's Free and Open Source Software ("FOSS") License Exception + (formerly known as the FLOSS License Exception) allows developers of FOSS + applications to include Oracle's MySQL Client Libraries (also referred to + as "MySQL Drivers" or "MySQL Connectors") with their FOSS applications. + MySQL Client Libraries are typically licensed pursuant to version 2 of the + General Public License ("GPL"), but this exception permits distribution of + certain MySQL Client Libraries with a developer's FOSS applications + licensed under the terms of another FOSS license listed below, even though + such other FOSS license may be incompatible with the GPL. + + The following terms and conditions describe the circumstances under which + Oracle's FOSS License Exception applies. + +Oracle's FOSS License Exception Terms and Conditions + + 1. Definitions. "Derivative Work" means a derivative work, as defined + under applicable copyright law, formed entirely from the Program and + one or more FOSS Applications. + + "FOSS Application" means a free and open source software application + distributed subject to a license listed in the section below titled + "FOSS License List." + + "FOSS Notice" means a notice placed by Oracle or MySQL in a copy of + the MySQL Client Libraries stating that such copy of the MySQL Client + Libraries may be distributed under Oracle's or MySQL's FOSS (or FLOSS) + License Exception. + + "Independent Work" means portions of the Derivative Work that are not + derived from the Program and can reasonably be considered independent + and separate works. + + "Program" means a copy of Oracle's MySQL Client Libraries that + contains a FOSS Notice. + + 2. A FOSS application developer ("you" or "your") may distribute a + Derivative Work provided that you and the Derivative Work meet all of + the following conditions: + + a. You obey the GPL in all respects for the Program and all portions + (including modifications) of the Program included in the + Derivative Work (provided that this condition does not apply to + Independent Works); + b. The Derivative Work does not include any work licensed under the + GPL other than the Program; + c. You distribute Independent Works subject to a license listed in + the section below titled "FOSS License List"; + d. You distribute Independent Works in object code or executable + form with the complete corresponding machine-readable source code + on the same medium and under the same FOSS license applying to + the object code or executable forms; + e. All works that are aggregated with the Program or the Derivative + Work on a medium or volume of storage are not derivative works of + the Program, Derivative Work or FOSS Application, and must + reasonably be considered independent and separate works. + + 3. Oracle reserves all rights not expressly granted in these terms and + conditions. If all of the above conditions are not met, then this FOSS + License Exception does not apply to you or your Derivative Work. + +FOSS License List + ++------------------------------------------------------------------------+ +|License Name |Version(s)/Copyright Date| +|----------------------------------------------+-------------------------| +|Academic Free License |2.0 | +|----------------------------------------------+-------------------------| +|Apache Software License |1.0/1.1/2.0 | +|----------------------------------------------+-------------------------| +|Apple Public Source License |2.0 | +|----------------------------------------------+-------------------------| +|Artistic license |From Perl 5.8.0 | +|----------------------------------------------+-------------------------| +|BSD license |"July 22 1999" | +|----------------------------------------------+-------------------------| +|Common Development and Distribution License |1.0 | +|(CDDL) | | +|----------------------------------------------+-------------------------| +|Common Public License |1.0 | +|----------------------------------------------+-------------------------| +|Eclipse Public License |1.0 | +|----------------------------------------------+-------------------------| +|European Union Public License (EUPL)¹ |1.1 | +|----------------------------------------------+-------------------------| +|GNU Affero General Public License (AGPL) |3.0 | +|----------------------------------------------+-------------------------| +|GNU Library or "Lesser" General Public License|2.0/2.1/3.0 | +|(LGPL) | | +|----------------------------------------------+-------------------------| +|GNU General Public License (GPL) |3.0 | +|----------------------------------------------+-------------------------| +|IBM Public License |1.0 | +|----------------------------------------------+-------------------------| +|Jabber Open Source License |1.0 | +|----------------------------------------------+-------------------------| +|MIT License (As listed in file |- | +|MIT-License.txt) | | +|----------------------------------------------+-------------------------| +|Mozilla Public License (MPL) |1.0/1.1 | +|----------------------------------------------+-------------------------| +|Open Software License |2.0 | +|----------------------------------------------+-------------------------| +|OpenSSL license (with original SSLeay license)|"2003" ("1998") | +|----------------------------------------------+-------------------------| +|PHP License |3.0/3.01 | +|----------------------------------------------+-------------------------| +|Python license (CNRI Python License) |- | +|----------------------------------------------+-------------------------| +|Python Software Foundation License |2.1.1 | +|----------------------------------------------+-------------------------| +|Sleepycat License |"1999" | +|----------------------------------------------+-------------------------| +|University of Illinois/NCSA Open Source |- | +|License | | +|----------------------------------------------+-------------------------| +|W3C License |"2001" | +|----------------------------------------------+-------------------------| +|X11 License |"2001" | +|----------------------------------------------+-------------------------| +|Zlib/libpng License |- | +|----------------------------------------------+-------------------------| +|Zope Public License |2.0 | ++------------------------------------------------------------------------+ + +¹) When an Independent Work is licensed under a "Compatible License" +pursuant to the EUPL, the Compatible License rather than the EUPL is the +applicable license for purposes of these FOSS License Exception Terms and +Conditions. + diff --git a/database/INSTALL-BINARY b/database/INSTALL-BINARY new file mode 100644 index 0000000..7ff33c7 --- /dev/null +++ b/database/INSTALL-BINARY @@ -0,0 +1,192 @@ +MariaDB and MySQL have identical install methods. In this document we +describe how to install MariaDB; However all documentation at www.mysql.com +also applies. + + +2.2. Installing MariaDB from Generic Binaries on Unix/Linux + + This section covers the installation of MariaDB binary distributions + that are provided for various platforms in the form of compressed + tar files (files with a .tar.gz extension). + + MariaDB tar file binary distributions have names of the form + mariadb-VERSION-OS.tar.gz, where VERSION is a number (for example, + 5.1.39), and OS indicates the type of operating system for which + the distribution is intended (for example, pc-linux-i686). + + You need the following tools to install a MariaDB tar file binary + distribution: + + * GNU gunzip to uncompress the distribution. + + * A reasonable tar to unpack the distribution. GNU tar is known + to work. Some operating systems come with a preinstalled + version of tar that is known to have problems. For example, + the tar provided with early versions of Mac OS X, SunOS 4.x, + Solaris 8, Solaris 9, Solaris 10 and OpenSolaris, and HP-UX + are known to have problems with long file names. On Mac OS X, + you can use the preinstalled gnutar program. On Solaris 10 and + OpenSolaris you can use the preinstalled gtar. On other + systems with a deficient tar, you should install GNU tar + first. + + If you run into problems and need to file a bug report, + please report them to: http://mariadb.org/jira + + See the instructions in Section 1.6, "How to Report Bugs or Problems." + + The basic commands that you must execute to install and use a + MariaDB binary distribution are: + +shell> groupadd mysql +shell> useradd -g mysql mysql +shell> cd /usr/local +shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf - +shell> ln -s full-path-to-mysql-VERSION-OS mysql +shell> cd mysql +shell> chown -R mysql . +shell> chgrp -R mysql . +shell> scripts/mysql_install_db --user=mysql +shell> chown -R root . +shell> chown -R mysql data +shell> bin/mysqld_safe --user=mysql & + +Note + + This procedure does not set up any passwords for MariaDB accounts. + After following the procedure, proceed to Section 2.13, + "Post-Installation Setup and Testing." + + A more detailed version of the preceding description for + installing a binary distribution follows: + + 1. Add a login user and group for mysqld to run as: +shell> groupadd mysql +shell> useradd -g mysql mysql + These commands add the mysql group and the mysql user. The + syntax for useradd and groupadd may differ slightly on + different versions of Unix, or they may have different names + such as adduser and addgroup. + You might want to call the user and group something else + instead of mysql. If so, substitute the appropriate name in + the following steps. + + 2. Pick the directory under which you want to unpack the + distribution and change location into it. In the following + example, we unpack the distribution under /usr/local. (The + instructions, therefore, assume that you have permission to + create files and directories in /usr/local. If that directory + is protected, you must perform the installation as root.) +shell> cd /usr/local + + 3. Obtain a distribution file using the instructions in Section + 2.1.3, "How to Get MariaDB." For a given release, binary + distributions for all platforms are built from the same MariaDB + source distribution. + + 4. Unpack the distribution, which creates the installation + directory. Then create a symbolic link to that directory: +shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf - +shell> ln -s full-path-to-mysql-VERSION-OS mysql + The tar command creates a directory named mysql-VERSION-OS. + The ln command makes a symbolic link to that directory. This + lets you refer more easily to the installation directory as + /usr/local/mysql. + With GNU tar, no separate invocation of gunzip is necessary. + You can replace the first line with the following alternative + command to uncompress and extract the distribution: +shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz + + 5. Change location into the installation directory: +shell> cd mysql + You will find several files and subdirectories in the mysql + directory. The most important for installation purposes are + the bin and scripts subdirectories: + + + The bin directory contains client programs and the + server. You should add the full path name of this + directory to your PATH environment variable so that your + shell finds the MariaDB programs properly. See Section + 2.14, "Environment Variables." + + + The scripts directory contains the mysql_install_db + script used to initialize the mysql database containing + the grant tables that store the server access + permissions. + + 6. Ensure that the distribution contents are accessible to mysql. + If you unpacked the distribution as mysql, no further action + is required. If you unpacked the distribution as root, its + contents will be owned by root. Change its ownership to mysql + by executing the following commands as root in the + installation directory: +shell> chown -R mysql . +shell> chgrp -R mysql . + The first command changes the owner attribute of the files to + the mysql user. The second changes the group attribute to the + mysql group. + + 7. If you have not installed MariaDB before, you must create the + MariaDB data directory and initialize the grant tables: +shell> scripts/mysql_install_db --user=mysql + If you run the command as root, include the --user option as + shown. If you run the command while logged in as that user, + you can omit the --user option. + The command should create the data directory and its contents + with mysql as the owner. + After creating or updating the grant tables, you need to + restart the server manually. + + 8. Most of the MariaDB installation can be owned by root if you + like. The exception is that the data directory must be owned + by mysql. To accomplish this, run the following commands as + root in the installation directory: + +shell> chown -R root . +shell> chown -R mysql data + + 9. If you want MariaDB to start automatically when you boot your + machine, you can copy support-files/mysql.server to the + location where your system has its startup files. More + information can be found in the support-files/mysql.server + script itself and in Section 2.13.1.2, "Starting and Stopping + MariaDB Automatically." + 10. You can set up new accounts using the bin/mysql_setpermission + script if you install the DBI and DBD::mysql Perl modules. See + Section 4.6.14, "mysql_setpermission --- Interactively Set + Permissions in Grant Tables." For Perl module installation + instructions, see Section 2.15, "Perl Installation Notes." + 11. If you would like to use mysqlaccess and have the MariaDB + distribution in some nonstandard location, you must change the + location where mysqlaccess expects to find the mysql client. + Edit the bin/mysqlaccess script at approximately line 18. + Search for a line that looks like this: +$MYSQL = '/usr/local/bin/mysql'; # path to mysql executable + Change the path to reflect the location where mysql actually + is stored on your system. If you do not do this, a Broken pipe + error will occur when you run mysqlaccess. + + After everything has been unpacked and installed, you should test + your distribution. To start the MariaDB server, use the following + command: +shell> bin/mysqld_safe --user=mysql & + + If you run the command as root, you must use the --user option as + shown. The value of the option is the name of the login account + that you created in the first step to use for running the server. + If you run the command while logged in as mysql, you can omit the + --user option. + + If the command fails immediately and prints mysqld ended, you can + find some information in the host_name.err file in the data + directory. + + More information about mysqld_safe is given in Section 4.3.2, + "mysqld_safe --- MySQL Server Startup Script." + +Note + + The accounts that are listed in the MariaDB grant tables initially + have no passwords. After starting the server, you should set up + passwords for them using the instructions in Section 2.13, + "Post-Installation Setup and Testing." diff --git a/database/README b/database/README new file mode 100644 index 0000000..f7be80a --- /dev/null +++ b/database/README @@ -0,0 +1,2194 @@ +This is a release of MariaDB. + +MariaDB is designed as a drop-in replacement of MySQL(R) with more +features, new storage engines, fewer bugs, and better performance. + +MariaDB is brought to you by many of the original developers of MySQL +who now work for Monty Program Ab, and by many people in the +community. + +MySQL, which is the base of MariaDB, is a product and trademark of Oracle +Corporation, Inc. For a list of developers and other contributors, +see the Credits appendix. You can also do 'SHOW authors' to get a +list of active contributors. + +A description of the MariaDB project and a manual can be found at: +http://kb.askmonty.org/ +http://kb.askmonty.org/en/mariadb-versus-mysql-features/ +http://kb.askmonty.org/en/mariadb-versus-mysql-compatibility/ + +As MariaDB is a full replacement of MySQL, the MySQL manual at +http://dev.mysql.com/doc is generally applicable. + +More help is available from the Maria Discuss mailing list +https://launchpad.net/~maria-discuss +and the #maria IRC channel on Freenode. + +*************************************************************************** + +NOTE: + +MariaDB is specifically available only under version 2 of the GNU +General Public License (GPLv2). (I.e. Without the "any later version" +clause.) This is inherited from MySQL. Please see the README file in +the MySQL distribution for more information. + +License information can be found in the COPYING file and the +EXCEPTIONS-CLIENT file. + +*************************************************************************** + +IMPORTANT: + +Bug and/or error reports regarding MariaDB should be submitted at +http://mariadb.org/jira + +Bugs in the MySQL code can also be submitted at http://bugs.mysql.com + +The code for MariaDB, including all revision history, can be found at: +https://code.launchpad.net/maria + +*************************************************************************** + +%%The following software may be included in this product: +FindGTest.cmake (part of CMake 2.8.0) + +Use of any of this software is governed by the terms of the license below: + +# Copyright 2009 Kitware, Inc. +# Copyright 2009 Philip Lowman +# Copyright 2009 Daniel Blezek +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#=========================================================================== +# (To distributed this file outside of CMake, substitute the full +# License text for the above reference.) +# +# Thanks to Daniel Blezek for the GTEST_ADD_TESTS code + + +Text of Copyright.txt mentioned above: + +CMake - Cross Platform Makefile Generator +Copyright 2000-2009 Kitware, Inc., Insight Software Consortium +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +* Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +* Neither the names of Kitware, Inc., the Insight Software Consortium, + nor the names of their contributors may be used to endorse or promote + products derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +*************************************************************************** + +%%The following software may be included in this product: +Cmake + +Use of any of this software is governed by the terms of the license below: + +CMake is distributed under BSD License + + Copyright (c) 2008, Kitware, Inc. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + * Neither the name of Kitware, Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY Kitware, Inc. "AS IS" AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL Kitware Inc. BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +Additional License(s) + +cmake-2.4.8/Utilities/cmtar/compat/gethostname.c: + gethostname.c: minimal substitute for missing gethostname() function + created 2000-Mar-02 jmk + requires SVR4 uname() and -lc + + by Jim Knoble + Copyright ? 2000 Jim Knoble + + Permission to use, copy, modify, distribute, and sell this software + and its documentation for any purpose is hereby granted without fee, + provided that the above copyright notice appear in all copies and + that both that copyright notice and this permission notice appear in + supporting documentation. + + This software is provided "as is", without warranty of any kind, + express or implied, including but not limited to the warranties of + merchantability, fitness for a particular purpose and + noninfringement. In no event shall the author(s) be liable for any + claim, damages or other liability, whether in an action of contract, + tort or otherwise, arising from, out of or in connection with the + software or the use or other dealings in the software. + +---------------------------------- + +* Originally written by Steven M. Bellovin while +* at the University of North Carolina at Chapel Hill. Later tweaked by +* a couple of people on Usenet. Completely overhauled by Rich $alz +* and Jim Berets in August, 1990. +* +* This code is in the public domain and has no copyright. + +------------------------------- + + THIS CODE IS SPECIFICALLY EXEMPTED FROM THE NCURSES PACKAGE COPYRIGHT. + You may freely copy it for use as a template for your own field types. + If you develop a field type that might be of general use, please send + it back to the ncurses maintainers for inclusion in the next version. + +************************************************************************** + + * Author : Per Foreby, perf@efd.lth.se + * Author : Juergen Pfeifer, juergen.pfeifer@gmx.net + +************************************************************************** + +---------------------------------------- + + Copyright (c) 2002 Insight Consortium. All rights reserved. + See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for + details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +-------------------------------------------- + + Skeleton parser for Yacc-like parsing with Bison, + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software + Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1335 USA. + + As a special exception, when this file is copied by Bison into a + Bison output file, you may use that output file without restriction. + This special exception was added by the Free Software Foundation + in version 1.24 of Bison. + +--------------------------------------------------- + +cmake-2.4.8/Utilities/cmzlib/zlib.h: + zlib.h -- interface of the 'zlib' general purpose compression library + version 1.1.4, March 11th, 2002 + + Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must + not be misrepresented as being the original software. + 3. This notice may not be removed or altered from any source + distribution. + + Jean-loup Gailly Mark Adler + +---------------------------------------------- + + This source code was modified by Martin Hedenfalk for use in Curl. His + latest changes were done 2000-09-18. + + It has since been patched away like a madman by Daniel Stenberg to make it + better applied to curl conditions, and to make it not use globals, pollute + name space and more. This source code awaits a rewrite to work around the + paragraph 2 in the BSD licenses as explained below. + + Copyright (c) 1995, 1996, 1997, 1998, 1999 Kungliga Tekniska Hgskolan + It has since been patched and modified a lot by Daniel Stenberg to make it + better applied to curl conditions, and to make it not use globals, pollute + name space and more. This source code awaits a rewrite to work around the + paragraph 2 in the BSD licenses as explained below. + + Copyright (c) 1998, 1999 Kungliga Tekniska Hgskolan + (Royal Institute of Technology, Stockholm, Sweden). + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. Neither the name of the Institute nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + +--------------------------------------------- + + Permission to use, copy, modify, and distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED + WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF + MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND + CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER. + +-------------------------------------------------- + +cmake-2.4.8/Utilities/cmcurl/inet_pton.c, +cmake-2.4.8/Source/CTest/Curl/inet_pton.c: + This is from the BIND 4.9.4 release, modified to compile by itself + + Copyright (c) 1996 by Internet Software Consortium. + + Permission to use, copy, modify, and distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM + DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL + INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, + OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF + USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + +------------------------------------------------------- + +* Copyright (C) 2001 by Eric Kidd. All rights reserved. +* Copyright (C) 2001 by Luke Howard. All rights reserved. +* Copyright (C) 2002 Ximian, Inc. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions +* are met: +* 1. Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* 2. Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* 3. The name of the author may not be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR +* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +* SUCH DAMAGE. + +--------------------------------------------------- + + Copyright (c) 1994 + The Regents of the University of California. All rights reserved. + + This code is derived from software contributed to Berkeley by + Chuck Karish of Mindcraft, Inc. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. Neither the name of the University nor the names of its contributors + Copyright (c) 1985, 1986 The Regents of the University of California. + All rights reserved. + + This code is derived from software contributed to Berkeley by + James A. Woods, derived from original work by Spencer Thomas + and Joseph Orost. + +------------------------------------------------ + + Copyright (c) 1989, 1993, 1994 + The Regents of the University of California. All rights reserved. + + This code is derived from software contributed to Berkeley by + Guido van Rossum. + + Copyright (c) 1990 The Regents of the University of California. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: + This product includes software developed by the University of + California, Berkeley and its contributors. + 4. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + +------------------------------------------------------ + + Project ___| | | | _ \| | + / __| | | | |_) | | + | (__| |_| | _ <| |___ + \___|\___/|_| \_\_____| + + Copyright (C) 1998 - 2004, Daniel Stenberg, , et al. + + Copyright (C) 2004, Daniel Stenberg, , et al. + + This software is licensed as described in the file COPYING, which + you should have received as part of this distribution. The terms + are also available at http://curl.haxx.se/docs/copyright.html. + + You may opt to use, copy, modify, merge, publish, distribute and/or sell + copies of the Software, and permit persons to whom the Software is + furnished to do so, under the terms of the COPYING file. + + This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + KIND, either express or implied. + +------------------------------------------------------------ + +*************************************************************************** + Copyright (c) 1998 Free Software Foundation, Inc. + Copyright (c) 1998,2000 Free Software Foundation, Inc. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, distribute with modifications, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is furnished + to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. + + + Except as contained in this notice, the name(s) of the above copyright + holders shall not be used in advertising or otherwise to promote the sale, + use or other dealings in this Software without prior written + authorization. +*************************************************************************** + +------------------------------------------------------ + + Copyright (c) 1997 Todd C. Miller + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR + ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + +*************************************************************************** + + + +*************************************************************************** +%%The following software may be included in this product: +Fred Fish's Dbug Library + +Use of any of this software is governed by the terms of the license below: + + * + * N O T I C E * + * * + * Copyright Abandoned, 1987, Fred Fish * + * * + * * + * This previously copyrighted work has been placed into the public * + * domain by the author and may be freely used for any purpose, * + * private or commercial. * + * * + * Because of the number of inquiries I was receiving about the use * + * of this product in commercially developed works I have decided to * + * simply make it public domain to further its unrestricted use. I * + * specifically would be most happy to see this material become a * + * part of the standard Unix distributions by AT&T and the Berkeley * + * Computer Science Research Group, and a standard part of the GNU * + * system from the Free Software Foundation. * + * * + * I would appreciate it, as a courtesy, if this notice is left in * + * all copies and derivative works. Thank you. * + * * + * The author makes no warranty of any kind with respect to this * + * product and explicitly disclaims any implied warranties of mer- * + * chantability or fitness for any particular purpose. * + * + +*************************************************************************** + +%%The following software may be included in this product: +dbug_analyze.c (part of Fred Fish's Dbug Library) + +Use of any of this software is governed by the terms of the license below: + +* Copyright Abandoned, 1987, Fred Fish * +* * +* * +* This previously copyrighted work has been placed into the public * +* domain by the author and may be freely used for any purpose, * +* private or commercial. * +* * +* Because of the number of inquiries I was receiving about the use * +* of this product in commercially developed works I have decided to * +* simply make it public domain to further its unrestricted use. I * +* specifically would be most happy to see this material become a * +* part of the standard Unix distributions by AT&T and the Berkeley * +* Computer Science Research Group, and a standard part of the GNU * +* system from the Free Software Foundation. * +* * +* I would appreciate it, as a courtesy, if this notice is left in * +* all copies and derivative works. Thank you. * +* * +* The author makes no warranty of any kind with respect to this * +* product and explicitly disclaims any implied warranties of mer- * +* chantability or fitness for any particular purpose. * + +*************************************************************************** + +%%The following software may be included in this product: +GNU Libtool, only ltmain.sh, libtool, auto-gen fil + +Use of any of this software is governed by the terms of the license below: + +ltmain.sh inclusion: +# ltmain.sh - Provide generalized library-building support services. +# NOTE: Changing this file will not affect anything until you rerun configure. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, +# 2007 Free Software Foundation, Inc. +# Originally by Gordon Matzigkeit , 1996 +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + + +libtool inclusion: +# libtoolT - Provide generalized library-building support services. +# Generated automatically by (GNU mysql 5.1.30) +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, +# 2006, 2007 Free Software Foundation, Inc. +# +# This file is part of GNU Libtool: +# Originally by Gordon Matzigkeit , 1996 +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + + +Auto-generated files: +# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building +# support services. +# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, +# 2004, 2005, 2006, 2007 Free Software Foundation, Inc. +# +# This file is part of GNU Libtool: +# Originally by Gordon Matzigkeit , 1996 +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +Additional License(s) + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +*************************************************************************** + +%%The following software may be included in this product: +innochecksum.c + +Use of any of this software is governed by the terms of the license below: + +GNU GENERAL PUBLIC LICENSE + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to most +of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you can +do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for a +fee, you must give the recipients all the rights that you have. You must make +sure that they, too, receive or can get the source code. And you must show them +these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) offer +you this license which gives you legal permission to copy, distribute and/or +modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced by +others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We wish +to avoid the danger that redistributors of a free program will individually +obtain patent licenses, in effect making the program proprietary. To prevent +this, we have made it clear that any patent must be licensed for everyone's free +use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification follow. +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program or +work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included without +limitation in the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is not +restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and appropriately +publish on each copy an appropriate copyright notice and disclaimer of warranty; +keep intact all the notices that refer to this License and to the absence of any +warranty; and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may at +your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating that +you changed the files and the date of any change. + b) You must cause any work that you distribute or publish, that in whole or +in part contains or is derived from the Program or any part thereof, to be +licensed as a whole at no charge to all third parties under the terms of this +License. + c) If the modified program normally reads commands interactively when run, +you must cause it, when started running for such interactive use in the most +ordinary way, to print or display an announcement including an appropriate +copyright notice and a notice that there is no warranty (or else, saying that +you provide a warranty) and that users may redistribute the program under these +conditions, and telling the user how to view a copy of this License. (Exception: +if the Program itself is interactive but does not normally print such an +announcement, your work based on the Program is not required to print an +announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the entire whole, +and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on the +Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this License. + +3. You may copy and distribute the Program (or a work based on it, under Section +2) in object code or executable form under the terms of Sections 1 and 2 above +provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source +code, which must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange; or, + b) Accompany it with a written offer, valid for at least three years, to +give any third party, for a charge no more than your cost of physically +performing source distribution, a complete machine-readable copy of the +corresponding source code, to be distributed under the terms of Sections 1 and 2 +above on a medium customarily used for software interchange; or, + c) Accompany it with the information you received as to the offer to +distribute corresponding source code. (This alternative is allowed only for +noncommercial distribution and only if you received the program in object code +or executable form with such an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all the +source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code distributed +need not include anything that is normally distributed (in either source or +binary form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component itself +accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source code +from the same place counts as distribution of the source code, even though third +parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or any +work based on the Program), you indicate your acceptance of this License to do +so, and all its terms and conditions for copying, distributing or modifying the +Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by third +parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent infringement +or for any other reason (not limited to patent issues), conditions are imposed +on you (whether by court order, agreement or otherwise) that contradict the +conditions of this License, they do not excuse you from the conditions of this +License. If you cannot distribute so as to satisfy simultaneously your +obligations under this License and any other pertinent obligations, then as a +consequence you may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by all those +who receive copies directly or indirectly through you, then the only way you +could satisfy both it and this License would be to refrain entirely from +distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and the +section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original copyright +holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In such +case, this License incorporates the limitation as if written in the body of this +License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program specifies +a version number of this License which applies to it and "any later version", +you have the option of following the terms and conditions either of that version +or of any later version published by the Free Software Foundation. If the +Program does not specify a version number of this License, you may choose any +version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE +PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED +IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS +IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT +NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, +SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY +TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF +THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER +PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +END OF TERMS AND CONDITIONS +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible use +to the public, the best way to achieve this is to make it free software which +everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + +one line to give the program's name and an idea of what it does. +Copyright (C) yyyy name of author + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + +Gnomovision version 69, Copyright (C) year name of author +Gnomovision comes with ABSOLUTELY NO WARRANTY; for details +type `show w'. This is free software, and you are welcome +to redistribute it under certain conditions; type `show c' +for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here is +a sample; alter the names: + +Yoyodyne, Inc., hereby disclaims all copyright +interest in the program `Gnomovision' +(which makes passes at compilers) written +by James Hacker. + +signature of Ty Coon, 1 April 1989 +Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may consider +it more useful to permit linking proprietary applications with the library. If +this is what you want to do, use the GNU Lesser General Public License instead +of this License. + +Additional Documentation License(s) + +innochecksum.c is documented in the MySQL Reference +Manual at http://dev.mysql.com/doc/refman/5.1/en/innochecksum.html +The Reference Manual is not licensed under the GPL; rather, it +is offered under normal copyright, but with permission to +copy/redistribute electronically. + +*************************************************************************** + +%%The following software may be included in this product: +lib_sql.cc + +Use of any of this software is governed by the terms of the license below: + +/* + * Copyright (c) 2000 + * SWsoft company + * + * This material is provided "as is", with absolutely no warranty expressed + * or implied. Any use is at your own risk. + * + * Permission to use or copy this software for any purpose is hereby granted + * without fee, provided the above notices are retained on all copies. + * Permission to modify the code and to distribute modified code is granted, + * provided the above notices are retained, and a notice that the code was + * modified is included with the above copyright notice. + * + + This code was modified by the MySQL team +*/ + +*************************************************************************** + +%%The following software may be included in this product: +libevent + +Use of any of this software is governed by the terms of the license below: + +/* + * Copyright (c) 2000-2004 Niels Provos + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +Additional License(s) + +http://creativecommons.org/licenses/publicdomain + +*************************************************************************** + +%%The following software may be included in this product: +Async DNS Library + +Use of any of this software is governed by the terms of the license below: + +/* Async DNS Library + * Adam Langley + * http://www.imperialviolet.org/eventdns.html + * Public Domain code + * + * This software is Public Domain. To view a copy of the public domain dedication, + * visit http://creativecommons.org/licenses/publicdomain/ or send a letter to + * Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. + * + * I ask and expect, but do not require, that all derivative works contain an + * attribution similar to: + * Parts developed by Adam Langley + * + * You may wish to replace the word "Parts" with something else depending on + * the amount of original code. + * + * (Derivative works does not include programs which link against, run or include + * the source verbatim in their source distributions) + * + * Version: 0.1b + */ + +*************************************************************************** + +%%The following software may be included in this product: +log.c + +Use of any of this software is governed by the terms of the license below: + +/* $OpenBSD: err.c,v 1.2 2002/06/25 15:50:15 mickey Exp $ */ + +/* + * log.c + * + * Based on err.c, which was adapted from OpenBSD libc *err* *warn* code. + * + * Copyright (c) 2005 Nick Mathewson + * + * Copyright (c) 2000 Dug Song + * + * Copyright (c) 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +*************************************************************************** + +%%The following software may be included in this product: +min_heap.h + +Use of any of this software is governed by the terms of the license below: + +/* + * Copyright (c) 2006 Maxim Yegorushkin + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +*************************************************************************** + +%%The following software may be included in this product: +win32.c + +Use of any of this software is governed by the terms of the license below: + +/* + * Copyright 2000-2002 Niels Provos + * Copyright 2003 Michael A. Davis + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +*************************************************************************** + +%%The following software may be included in this product: +regex++ + +Use of any of this software is governed by the terms of the license below: + +Copyright 1992, 1993, 1994 Henry Spencer. All rights reserved. +This software is not subject to any license of the American Telephone +and Telegraph Company or of the Regents of the University of California. + +Permission is granted to anyone to use this software for any purpose on +any computer system, and to alter it and redistribute it, subject +to the following restrictions: + +1. The author is not responsible for the consequences of use of this + software, no matter how awful, even if they arise from flaws in it. + +2. The origin of this software must not be misrepresented, either by + explicit claim or by omission. Since few users ever read sources, + credits must appear in the documentation. + +3. Altered versions must be plainly marked as such, and must not be + misrepresented as being the original software. Since few users + ever read sources, credits must appear in the documentation. + +4. This notice may not be removed or altered. + +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +/*- + * Copyright (c) 1994 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)COPYRIGHT 8.1 (Berkeley) 3/16/94 + */ + +*************************************************************************** + +%%The following software may be included in this product: +Richard A. O'Keefe strings package + +Use of any of this software is governed by the terms of the license below: + +These files are in the public domain. This includes getopt.c, which +is the work of Henry Spencer, University of Toronto Zoology, who says of +it "None of this software is derived from Bell software. I had no access +to the source for Bell's versions at the time I wrote it. This software +is hereby explicitly placed in the public domain. It may be used for +any purpose on any machine by anyone." I would greatly prefer it if *my* +material received no military use. + +*************************************************************************** + +%%The following software may be included in this product: +t_ctype.h + +Use of any of this software is governed by the terms of the license below: + +http://bioinfo.mbb.yale.edu/genome/yeast/cluster/database/mysql/include/t_ctype.h + +/* + Copyright (C) 1998, 1999 by Pruet Boonma, all rights reserved. + Copyright (C) 1998 by Theppitak Karoonboonyanan, all rights reserved. + Permission to use, copy, modify, distribute and sell this software + and its documentation for any purpose is hereby granted without fee, + provided that the above copyright notice appear in all copies. + Smaphan Raruenrom and Pruet Boonma makes no representations about + the suitability of this software for any purpose. It is provided + "as is" without express or implied warranty. +*/ + +*************************************************************************** + +%%The following software may be included in this product: +SHA-1 in C + +Use of any of this software is governed by the terms of the license below: + + SHA-1 in C + By Steve Reid + 100% Public Domain + +Additional License(s) + +100% Public Domain + +*************************************************************************** + +%%The following software may be included in this product: +TCMalloc (part of google-perftools) + +Use of any of this software is governed by the terms of the license below: + +# Copyright (c) 1998-2006, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Additional License(s) + +*** File src/tests/ptmalloc/thread-m.h contains this GPLv2 (or later) +text: + +/* Basic platform-independent macro definitions for mutexes and + thread-specific data. + Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Wolfram Gloger , 1996. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1335 USA. */ + + + +*** File src/tests/ptmalloc/malloc-machine.h contains this BSD like text: + +/* Basic platform-independent macro definitions for mutexes, + thread-specific data and parameters for malloc. + Posix threads (pthreads) version. + Copyright (C) 2004 Wolfram Gloger . + +Permission to use, copy, modify, distribute, and sell this software +and its documentation for any purpose is hereby granted without fee, +provided that (i) the above copyright notices and this permission +notice appear in all copies of the software and related documentation, +and (ii) the name of Wolfram Gloger may not be used in any advertising +or publicity relating to the software. + +THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +IN NO EVENT SHALL WOLFRAM GLOGER BE LIABLE FOR ANY SPECIAL, +INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY +DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY +OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +*/ + +*************************************************************************** + +%%The following software may be included in this product: +The tz database + +Use of any of this software is governed by the terms of the license below: + +Sources for Time Zone and Daylight Saving Time Data +@(#)tz-link.htm 7.54 + +Please send corrections to this web page to the time zone mailing list. +The tz database + +The public-domain time zone database contains code and data that represent the +history of local time for many representative locations around the globe. It is +updated periodically to reflect changes made by political bodies to time zone +boundaries, UTC offsets, and daylight-saving rules. This database (often called +tz or zoneinfo) is used by several implementations, including the GNU C Library +used in GNU/Linux, FreeBSD, NetBSD, OpenBSD, Cygwin, DJGPP, HP-UX, IRIX, Mac OS +X, OpenVMS, Solaris, Tru64, and UnixWare. + +Each location in the database represents a national region where all clocks +keeping local time have agreed since 1970. Locations are identified by continent +or ocean and then by the name of the location, which is typically the largest +city within the region. For example, America/New_York represents most of the US +eastern time zone; America/Phoenix represents most of Arizona, which uses +mountain time without daylight saving time (DST); America/Detroit represents +most of Michigan, which uses eastern time but with different DST rules in 1975; +and other entries represent smaller regions like Starke County, Indiana, which +switched from central to eastern time in 1991 and switched back in 2006. To use +the database on an extended POSIX implementation set the TZ environment variable +to the location's full name, e.g., TZ="America/New_York". + +In the tz database's FTP distribution the code is in the file tzcodeC.tar.gz, +where C is the code's version; similarly, the data are in tzdataD.tar.gz, where +D is the data's version. The following shell commands download these files to a +GNU/Linux or similar host; see the downloaded README file for what to do next. + +wget 'ftp://elsie.nci.nih.gov/pub/tz*.tar.gz' +gzip -dc tzcode*.tar.gz | tar -xf - +gzip -dc tzdata*.tar.gz | tar -xf - + +The code lets you compile the tz source files into machine-readable binary +files, one for each location. It also lets you read a tz binary file and +interpret time stamps for that location. + +The data are by no means authoritative. If you find errors, please send changes +to the time zone mailing list. You can also subscribe to the mailing list, +retrieve the archive of old messages (in gzip compressed format), or retrieve +archived older versions of code and data; there is also a smaller HTTP mirror. + +*************************************************************************** + +%%The following software may be included in this product: +UnicodeData.txt + +Use of any of this software is governed by the terms of the license below: + +Unicode Terms of Use + + For the general privacy policy governing access to this site, see the + Unicode Privacy Policy. For trademark usage, see the Unicode + Consortium (R) Trademarks and Logo Policy. + Notice to End User: Terms of Use + Carefully read the following legal agreement ("Agreement"). Use or + copying of the software and/or codes provided with this agreement (The + "Software") constitutes your acceptance of these terms + + 1. Unicode Copyright. + 1. Copyright (c) 1991-2008 Unicode, Inc. All rights reserved. + 2. Certain documents and files on this website contain a + legend indicating that "Modification is permitted." Any person + is hereby authorized, without fee, to modify such documents + and files to create derivative works conforming to the + Unicode (R) Standard, subject to Terms and Conditions herein. + 3. Any person is hereby authorized, without fee, to view, use, + reproduce, and distribute all documents and files solely for + informational purposes in the creation of products supporting + the Unicode Standard, subject to the Terms and Conditions + herein. + 4. Further specifications of rights and restrictions + pertaining to the use of the particular set of data files + known as the "Unicode Character Database" can be found in + Exhibit 1. + 5. Each version of the Unicode Standard has further + specifications of rights and restrictions of use. For the book + editions, these are found on the back of the title page. For + the online edition, certain files (such as the PDF files for + book chapters and code charts) carry specific restrictions. + All other files are covered under these general Terms of Use. + To request a permission to reproduce any part of the Unicode + Standard, please contact the Unicode Consortium. + 6. No license is granted to "mirror" the Unicode website where + a fee is charged for access to the "mirror" site. + 7. Modification is not permitted with respect to this + document. All copies of this document must be verbatim. + 2. Restricted Rights Legend. Any technical data or software which is + licensed to the United States of America, its agencies and/or + instrumentalities under this Agreement is commercial technical data + or commercial computer software developed exclusively at private + expense as defined in FAR 2.101, or DFARS 252.227-7014 (June 1995), + as applicable. For technical data, use, duplication, or disclosure + by the Government is subject to restrictions as set forth in DFARS + 202.227-7015 Technical Data, Commercial and Items (Nov 1995) and + this Agreement. For Software, in accordance with FAR 12-212 or DFARS + 227-7202, as applicable, use, duplication or disclosure by the + Government is subject to the restrictions set forth in this + Agreement. + 3. Warranties and Disclaimers. + 1. This publication and/or website may include technical or + typographical errors or other inaccuracies . Changes are + periodically added to the information herein; these changes + will be incorporated in new editions of the publication and/or + website. Unicode may make improvements and/or changes in the + product(s) and/or program(s) described in this publication + and/or website at any time. + 2. If this file has been purchased on magnetic or optical + media from Unicode, Inc. the sole and exclusive remedy for any + claim will be exchange of the defective media within ninety + (90) days of original purchase. + 3. EXCEPT AS PROVIDED IN SECTION C.2, THIS PUBLICATION AND/OR + SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND + EITHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT + LIMITED TO, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A + PARTICULAR PURPOSE, OR NON-INFRINGEMENT. UNICODE AND ITS + LICENSORS ASSUME NO RESPONSIBILITY FOR ERRORS OR OMISSIONS IN + THIS PUBLICATION AND/OR SOFTWARE OR OTHER DOCUMENTS WHICH ARE + REFERENCED BY OR LINKED TO THIS PUBLICATION OR THE UNICODE + WEBSITE. + 4. Waiver of Damages. In no event shall Unicode or its licensors be + liable for any special, incidental, indirect or consequential + damages of any kind, or any damages whatsoever, whether or not + Unicode was advised of the possibility of the damage, including, + without limitation, those resulting from the following: loss of use, + data or profits, in connection with the use, modification or + distribution of this information or its derivatives. + 5. Trademarks. + 1. Unicode and the Unicode logo are registered trademarks of + Unicode, Inc. + 2. This site contains product names and corporate names of + other companies. All product names and company names and logos + mentioned herein are the trademarks or registered trademarks + of their respective owners. Other products and corporate names + mentioned herein which are trademarks of a third party are + used only for explanation and for the owners' benefit and with + no intent to infringe. + 3. Use of third party products or information referred to + herein is at the user's risk. + 6. Miscellaneous. + 1. Jurisdiction and Venue. This server is operated from a + location in the State of California, United States of America. + Unicode makes no representation that the materials are + appropriate for use in other locations. If you access this + server from other locations, you are responsible for + compliance with local laws. This Agreement, all use of this + site and any claims and damages resulting from use of this + site are governed solely by the laws of the State of + California without regard to any principles which would apply + the laws of a different jurisdiction. The user agrees that any + disputes regarding this site shall be resolved solely in the + courts located in Santa Clara County, California. The user + agrees said courts have personal jurisdiction and agree to + waive any right to transfer the dispute to any other forum. + 2. Modification by Unicode Unicode shall have the right to + modify this Agreement at any time by posting it to this site. + The user may not assign any part of this Agreement without + Unicode's prior written consent. + 3. Taxes. The user agrees to pay any taxes arising from access + to this website or use of the information herein, except for + those based on Unicode's net income. + 4. Severability. If any provision of this Agreement is + declared invalid or unenforceable, the remaining provisions of + this Agreement shall remain in effect. + 5. Entire Agreement. This Agreement constitutes the entire + agreement between the parties. + +EXHIBIT 1 +UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE + + Unicode Data Files include all data files under the directories +http://www.unicode.org/Public/, http://www.unicode.org/reports/, and +http://www.unicode.org/cldr/data/ . Unicode Software includes any source code +published in the Unicode Standard or under the directories +http://www.unicode.org/Public/, http://www.unicode.org/reports/, and +http://www.unicode.org/cldr/data/. + + NOTICE TO USER: Carefully read the following legal agreement. BY +DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA FILES +("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY ACCEPT, AND +AGREE TO BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU +DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES +OR SOFTWARE. + + COPYRIGHT AND PERMISSION NOTICE + + Copyright (c) 1991-2008 Unicode, Inc. All rights reserved. Distributed under +the Terms of Use in http://www.unicode.org/copyright.html. + + Permission is hereby granted, free of charge, to any person obtaining a copy +of the Unicode data files and any associated documentation (the "Data Files") or +Unicode software and any associated documentation (the "Software") to deal in +the Data Files or Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, and/or sell copies of +the Data Files or Software, and to permit persons to whom the Data Files or +Software are furnished to do so, provided that (a) the above copyright notice(s) +and this permission notice appear with all copies of the Data Files or Software, +(b) both the above copyright notice(s) and this permission notice appear in +associated documentation, and (c) there is clear notice in each modified Data +File or in the Software as well as in the documentation associated with the Data +File(s) or Software that the data or software has been modified. + + THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY +KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD +PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING +OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA FILES OR SOFTWARE. + + Except as contained in this notice, the name of a copyright holder shall not +be used in advertising or otherwise to promote the sale, use or other dealings +in these Data Files or Software without prior written authorization of the +copyright holder. + + Unicode and the Unicode logo are trademarks of Unicode, Inc., and may be +registered in some jurisdictions. All other trademarks and registered trademarks +mentioned herein are the property of their respective owners. + +*************************************************************************** + +%%The following software may be included in this product: +zlib + +Use of any of this software is governed by the terms of the license below: + +/* zlib.h -- interface of the 'zlib' general purpose compression library + version 1.2.3, July 18th, 2005 + + Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly jloup@gzip.org + Mark Adler madler@alumni.caltech.edu + +*/ + +*************************************************************************** + +%%The following software may be included in this product: +dtoa.c + +Use of any of this software is governed by the terms of the license below: + +/**************************************************************** + + This file incorporates work covered by the following copyright and + permission notice: + + The author of this software is David M. Gay. + + Copyright (c) 1991, 2000, 2001 by Lucent Technologies. + + Permission to use, copy, modify, and distribute this software for any + purpose without fee is hereby granted, provided that this entire + notice is included in all copies of any software which is or includes a copy + or modification of this software and in all copies of the supporting + documentation for such software. + + THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED + WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR LUCENT MAKES ANY + REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY + OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. + + ***************************************************************/ + +*************************************************************************** + +%%The following software may be included in this product: +getarg.{c,h} + +Use of any of this software is governed by the terms of the license below: + +/* Copyright (C) 2003 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* + * Copyright (c) 1997, 1999 Kungliga Tekniska H366gskolan + * (Royal Institute of Technology, Stockholm, Sweden). + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +*************************************************************************** + +%%The following software may be included in this product: +MD5 message-digest algorithm (md5_hash.cpp) + +Use of any of this software is governed by the terms of the license below: + +/* + * This code implements the MD5 message-digest algorithm. + * The algorithm is due to Ron Rivest. This code was + * written by Colin Plumb in 1993, no copyright is claimed. + * This code is in the public domain; do with it what you wish. + * + * Equivalent code is available from RSA Data Security, Inc. + * This code has been tested against that, and is equivalent, + * except that you don't need to include two pages of legalese + * with every copy. + * + * The code has been modified by Mikael Ronstroem to handle + * calculating a hash value of a key that is always a multiple + * of 4 bytes long. Word 0 of the calculated 4-word hash value + * is returned as the hash value. + */ + +*************************************************************************** + +%%The following software may be included in this product: +nt_servc.{cc,h} + +Use of any of this software is governed by the terms of the license below: + +/** + @file + + @brief + Windows NT Service class library. + + Copyright Abandoned 1998 Irena Pancirov - Irnet Snc + This file is public domain and comes with NO WARRANTY of any kind +*/ + +*************************************************************************** + +%%The following software may be included in this product: +GNU Readline + +Use of any of this software is governed by the terms of the license below: + +GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. + +*************************************************************************** + +%%The following software may be included in this product: +HandlerSocket plugin for MySQL + +Copyright (c) 2010 DeNA Co.,Ltd. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of DeNA Co.,Ltd. nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY DeNA Co.,Ltd. "AS IS" AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +EVENT SHALL DeNA Co.,Ltd. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +*************************************************************************** diff --git a/database/bin/aria_chk b/database/bin/aria_chk new file mode 100755 index 0000000..2d87f75 Binary files /dev/null and b/database/bin/aria_chk differ diff --git a/database/bin/aria_dump_log b/database/bin/aria_dump_log new file mode 100755 index 0000000..7a5e2fe Binary files /dev/null and b/database/bin/aria_dump_log differ diff --git a/database/bin/aria_ftdump b/database/bin/aria_ftdump new file mode 100755 index 0000000..0792d4c Binary files /dev/null and b/database/bin/aria_ftdump differ diff --git a/database/bin/aria_pack b/database/bin/aria_pack new file mode 100755 index 0000000..165ff03 Binary files /dev/null and b/database/bin/aria_pack differ diff --git a/database/bin/aria_read_log b/database/bin/aria_read_log new file mode 100755 index 0000000..c640975 Binary files /dev/null and b/database/bin/aria_read_log differ diff --git a/database/bin/innochecksum b/database/bin/innochecksum new file mode 100755 index 0000000..b47eee5 Binary files /dev/null and b/database/bin/innochecksum differ diff --git a/database/bin/msql2mysql b/database/bin/msql2mysql new file mode 100755 index 0000000..a7452b1 --- /dev/null +++ b/database/bin/msql2mysql @@ -0,0 +1,19 @@ +#!/bin/sh +# Copyright (C) 1979-2007 MySQL AB +# Use is subject to license terms +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; see the file COPYING. If not, write to the +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston +# MA 02110-1335 USA. + +/usr/local/mysql/bin/replace msqlConnect mysql_connect msqlListDBs mysql_list_dbs msqlNumRows mysql_num_rows msqlFetchRow mysql_fetch_row msqlFetchField mysql_fetch_field msqlFreeResult mysql_free_result msqlListFields mysql_list_fields msqlListTables mysql_list_tables msqlErrMsg 'mysql_error(mysql)' msqlStoreResult mysql_store_result msqlQuery mysql_query msqlField mysql_field msqlSelect mysql_select msqlSelectDB mysql_select_db msqlNumFields mysql_num_fields msqlClose mysql_close msqlDataSeek mysql_data_seek m_field MYSQL_FIELD m_result MYSQL_RES m_row MYSQL_ROW msql mysql mSQL mySQL MSQL MYSQL msqlCreateDB mysql_create_db msqlDropDB mysql_drop_db msqlFieldSeek mysql_field_seek -- $* diff --git a/database/bin/my_print_defaults b/database/bin/my_print_defaults new file mode 100755 index 0000000..45f5fb1 Binary files /dev/null and b/database/bin/my_print_defaults differ diff --git a/database/bin/myisam_ftdump b/database/bin/myisam_ftdump new file mode 100755 index 0000000..57c5123 Binary files /dev/null and b/database/bin/myisam_ftdump differ diff --git a/database/bin/myisamchk b/database/bin/myisamchk new file mode 100755 index 0000000..1ca7814 Binary files /dev/null and b/database/bin/myisamchk differ diff --git a/database/bin/myisamlog b/database/bin/myisamlog new file mode 100755 index 0000000..9dab643 Binary files /dev/null and b/database/bin/myisamlog differ diff --git a/database/bin/myisampack b/database/bin/myisampack new file mode 100755 index 0000000..c92bb61 Binary files /dev/null and b/database/bin/myisampack differ diff --git a/database/bin/mysql b/database/bin/mysql new file mode 100755 index 0000000..a4e1973 Binary files /dev/null and b/database/bin/mysql differ diff --git a/database/bin/mysql_client_test b/database/bin/mysql_client_test new file mode 100755 index 0000000..d2df6c6 Binary files /dev/null and b/database/bin/mysql_client_test differ diff --git a/database/bin/mysql_client_test_embedded b/database/bin/mysql_client_test_embedded new file mode 100755 index 0000000..6919521 Binary files /dev/null and b/database/bin/mysql_client_test_embedded differ diff --git a/database/bin/mysql_config b/database/bin/mysql_config new file mode 100755 index 0000000..40b11da --- /dev/null +++ b/database/bin/mysql_config @@ -0,0 +1,222 @@ +#!/bin/sh +# Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA + +# This script reports various configuration settings that may be needed +# when using the MySQL client library. + +which () +{ + IFS="${IFS= }"; save_ifs="$IFS"; IFS=':' + for file + do + for dir in $PATH + do + if test -f $dir/$file + then + echo "$dir/$file" + continue 2 + fi + done + echo "which: no $file in ($PATH)" + exit 1 + done + IFS="$save_ifs" +} + +# +# If we can find the given directory relatively to where mysql_config is +# we should use this instead of the incompiled one. +# This is to ensure that this script also works with the binary MySQL +# version + +fix_path () +{ + var=$1 + shift + for filename + do + path=$basedir/$filename + if [ -d "$path" ] ; + then + eval "$var"=$path + return + fi + done +} + +get_full_path () +{ + file=$1 + + # if the file is a symlink, try to resolve it + if [ -h $file ]; + then + file=`ls -l $file | awk '{ print $NF }'` + fi + + case $file in + /*) echo "$file";; + */*) tmp=`pwd`/$file; echo $tmp | sed -e 's;/\./;/;' ;; + *) which $file ;; + esac +} + +me=`get_full_path $0` + +# Script might have been renamed but assume mysql_config +basedir=`echo $me | sed -e 's;/bin/mysql_.*config.*;;'` + +ldata='/usr/local/mysql/data' +execdir='/usr/local/mysql/bin' +bindir='/usr/local/mysql/bin' + +# If installed, search for the compiled in directory first (might be "lib64") +pkglibdir='/usr/local/mysql/lib' +pkglibdir_rel=`echo $pkglibdir | sed -e "s;^$basedir/;;"` +fix_path pkglibdir $pkglibdir_rel lib/mysql lib + +plugindir='/usr/local/mysql/lib/plugin' +plugindir_rel=`echo $plugindir | sed -e "s;^$basedir/;;"` +fix_path plugindir $plugindir_rel lib/mysql/plugin lib/plugin + +pkgincludedir='/usr/local/mysql/include/mysql' +fix_path pkgincludedir include/mysql + +version='5.5.68' +socket='/tmp/mysql.sock' +ldflags='' + +if [ 0 -eq 0 ]; then + port=0 +else + port=3306 +fi + +# Create options +# We intentionally add a space to the beginning and end of lib strings, simplifies replace later +libs=" $ldflags -L$pkglibdir -lmysqlclient -lpthread -lm -lrt -ldl " +libs="$libs " +libs_r=" $ldflags -L$pkglibdir -lmysqlclient_r -lpthread -lm -lrt -ldl " +embedded_libs=" $ldflags -L$pkglibdir -lmysqld " + +if [ -r "$pkglibdir/libmygcc.a" ]; then + # When linking against the static library with a different version of GCC + # from what was used to compile the library, some symbols may not be defined + # automatically. We package the libmygcc.a from the build host, to provide + # definitions for those. Bugs 4921, 19561, 19817, 21158, etc. + libs="$libs -lmygcc " + libs_r="$libs_r -lmygcc " + embedded_libs="$embedded_libs -lmygcc " +fi + +include="-I$pkgincludedir" +if [ "$basedir" != "/usr" ]; then + include="$include -I$pkgincludedir/.." +fi +cflags="$include " #note: end space! + +# Remove some options that a client doesn't have to care about +# FIXME until we have a --cxxflags, we need to remove -Xa +# and -xstrconst to make --cflags usable for Sun Forte C++ +# FIXME until we have a --cxxflags, we need to remove -AC99 +# to make --cflags usable for HP C++ (aCC) +for remove in DDBUG_OFF DSAFE_MUTEX DUNIV_MUST_NOT_INLINE DFORCE_INIT_OF_VARS \ + DEXTRA_DEBUG DHAVE_valgrind O 'O[0-9]' 'xO[0-9]' 'W[-A-Za-z]*' \ + 'mtune=[-A-Za-z0-9]*' 'mcpu=[-A-Za-z0-9]*' 'march=[-A-Za-z0-9]*' \ + Xa xstrconst "xc99=none" AC99 'W[-A-Za-z]*=[-A-Za-z0-9]*' \ + unroll2 ip mp restrict +do + # The first option we might strip will always have a space before it because + # we set -I$pkgincludedir as the first option + cflags=`echo "$cflags"|sed -e ':again' -e "s/ -$remove */ /g" -e 't again'` +done +cflags=`echo "$cflags"|sed -e 's/ *\$//'` + +# Same for --libs(_r) +for remove in lmtmalloc static-libcxa i-static static-intel +do + # We know the strings starts with a space + libs=`echo "$libs"|sed -e "s/ -$remove */ /g"` + libs_r=`echo "$libs_r"|sed -e "s/ -$remove */ /g"` + embedded_libs=`echo "$embedded_libs"|sed -e "s/ -$remove */ /g"` +done + +# Strip trailing and ending space if any, and '+' (FIXME why?) +libs=`echo "$libs" | sed -e 's; \+; ;g' | sed -e 's;^ *;;' | sed -e 's; *\$;;'` +libs_r=`echo "$libs_r" | sed -e 's; \+; ;g' | sed -e 's;^ *;;' | sed -e 's; *\$;;'` +embedded_libs=`echo "$embedded_libs" | sed -e 's; \+; ;g' | sed -e 's;^ *;;' | sed -e 's; *\$;;'` + +usage () { + cat < \$opt_engine, + "f|force" => \$opt_force, + "help|?" => \$opt_help, + "h|host=s" => \$opt_host, + "p|password=s" => \$opt_password, + "u|user=s" => \$opt_user, + "v|verbose" => \$opt_verbose, + "V|version" => \$opt_version, + "S|socket=s" => \$opt_socket, + "P|port=i" => \$opt_port +) || usage(0); + +usage($opt_version) if ($#ARGV < 0 || $opt_help || $opt_version); + +$opt_database=shift(@ARGV); + +if (grep { /^$opt_engine$/i } qw(HEAP MEMORY BLACKHOLE)) +{ + print "Converting to '$opt_engine' would delete your data; aborting\n"; + exit(1); +} + +$connect_opt=""; +if ($opt_port) +{ + $connect_opt.= ";port=$opt_port"; +} +if (length($opt_socket)) +{ + $connect_opt.=";mysql_socket=$opt_socket"; +} + +$dbh = DBI->connect("DBI:mysql:$opt_database:${opt_host}$connect_opt", + $opt_user, + $opt_password, + { PrintError => 0}) + || die "Can't connect to database $opt_database: $DBI::errstr\n"; + +my @tables; + +push(@ARGV, "%") if(!@ARGV); + +foreach $pattern (@ARGV) +{ + my ($sth,$row); + $sth=$dbh->prepare("SHOW TABLES LIKE ?"); + $rv= $sth->execute($pattern); + if(!int($rv)) + { + warn "Can't get tables matching '$pattern' from $opt_database; $DBI::errstr\n"; + exit(1) unless $opt_force; + } + while (($row = $sth->fetchrow_arrayref)) + { + push(@tables, $row->[0]); + } + $sth->finish; +} + +print "Converting tables:\n" if ($opt_verbose); +foreach $table (@tables) +{ + my ($sth,$row); + + # Check if table is already converted + $sth=$dbh->prepare("show table status like '$table'"); + if ($sth->execute && ($row = $sth->fetchrow_arrayref)) + { + if (uc($row->[1]) eq uc($opt_engine)) + { + print "$table already uses the '$opt_engine' engine; Ignored\n"; + next; + } + } + print "converting $table\n" if ($opt_verbose); + $table=~ s/`/``/g; + if (!$dbh->do("ALTER TABLE `$table` ENGINE=$opt_engine")) + { + print STDERR "Can't convert $table: Error $DBI::errstr\n"; + exit(1) if (!$opt_force); + $exit_status=1; + } +} + +$dbh->disconnect; +exit($exit_status); + + +sub usage +{ + my($version)=shift; + print "$0 version 1.1\n"; + exit(0) if ($version); + + print <) +{ + next if (length($query) == 0 && /^\#/); # Skip comments + $query.=search($_); + if ($eoq) + { + if ($query =~ /^use /i || $query =~ /^SET / || + ($query =~ /$opt_regexp/o && $database =~ /$opt_dbregexp/o)) + { + if ($opt_skip_use_db && $query =~ /^use /i) + { + $query=""; + next; + } + if ($opt_start_row <= 1) + { + if ($database) + { + print $database, $set; + $database=$set=""; + } + print $query; + last if (--$opt_rows == 0); + } + else + { + $opt_start_row--; + if ($query =~ /^use /) + { + $database=$query; + $set=""; + } + elsif ($query =~ /^SET/) + { + $set=$query; + } + else + { + $set=""; + } + } + } + $query=""; $search=""; $eoq=0; + } +} + +exit 0; + +sub search +{ + my($row)=shift; + my($i); + + for ($i=0 ; $i < length($row) ; $i++) + { + if (length($search)) + { + if (length($search) > 1) + { # Comment + next if (substr($row,$i,length($search)) ne $search); + $i+=length($search)-1; + $search=""; + } + elsif (substr($row,$i,1) eq '\\') # Escaped char in string + { + $i++; + } + elsif (substr($row,$i,1) eq $search) + { + if (substr($row,$i+1,1) eq $search) # Double " or ' + { + $i++; + } + else + { + $search=""; + } + } + next; + } + if (substr($row,$i,2) eq '/*') # Comment + { + $search="*/"; + $i++; + } + elsif (substr($row,$i,1) eq "'" || substr($row,$i,1) eq '"') + { + $search=substr($row,$i,1); + } + } + $eoq=1 if (!length($search) && $row =~ /;\s*$/); + return $row; +} + + +sub usage +{ + print <) { $_=$a; + s/\.frm$/.frm/i; + s/\.(is[md]|my[id])$/\U$&/i; + rename ($a, $_) || warn "Cannot rename $a => $_ : $!"; +} diff --git a/database/bin/mysql_plugin b/database/bin/mysql_plugin new file mode 100755 index 0000000..250252b Binary files /dev/null and b/database/bin/mysql_plugin differ diff --git a/database/bin/mysql_secure_installation b/database/bin/mysql_secure_installation new file mode 100755 index 0000000..99925f2 --- /dev/null +++ b/database/bin/mysql_secure_installation @@ -0,0 +1,535 @@ +#!/bin/sh + +# Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA + +config=".my.cnf.$$" +command=".mysql.$$" + +trap "interrupt" 1 2 3 6 15 + +rootpass="" +echo_n= +echo_c= +basedir= +bindir= + +parse_arg() +{ + echo "$1" | sed -e 's/^[^=]*=//' +} + +parse_arguments() +{ + # We only need to pass arguments through to the server if we don't + # handle them here. So, we collect unrecognized options (passed on + # the command line) into the args variable. + pick_args= + if test "$1" = PICK-ARGS-FROM-ARGV + then + pick_args=1 + shift + fi + + for arg + do + case "$arg" in + --basedir=*) basedir=`parse_arg "$arg"` ;; + --no-defaults|--defaults-file=*|--defaults-extra-file=*) + defaults="$arg" ;; + *) + if test -n "$pick_args" + then + # This sed command makes sure that any special chars are quoted, + # so the arg gets passed exactly to the server. + # XXX: This is broken; true fix requires using eval and proper + # quoting of every single arg ($basedir, $ldata, etc.) + #args="$args "`echo "$arg" | sed -e 's,\([^a-zA-Z0-9_.-]\),\\\\\1,g'` + args="$args $arg" + fi + ;; + esac + done +} + +# Try to find a specific file within --basedir which can either be a binary +# release or installed source directory and return the path. +find_in_basedir() +{ + return_dir=0 + found=0 + case "$1" in + --dir) + return_dir=1; shift + ;; + esac + + file=$1; shift + + for dir in "$@" + do + if test -f "$basedir/$dir/$file" + then + found=1 + if test $return_dir -eq 1 + then + echo "$basedir/$dir" + else + echo "$basedir/$dir/$file" + fi + break + fi + done + + if test $found -eq 0 + then + # Test if command is in PATH + $file --no-defaults --version > /dev/null 2>&1 + status=$? + if test $status -eq 0 + then + echo $file + fi + fi +} + +cannot_find_file() +{ + echo + echo "FATAL ERROR: Could not find $1" + + shift + if test $# -ne 0 + then + echo + echo "The following directories were searched:" + echo + for dir in "$@" + do + echo " $dir" + done + fi + + echo + echo "If you compiled from source, you need to run 'make install' to" + echo "copy the software into the correct location ready for operation." + echo + echo "If you are using a binary release, you must either be at the top" + echo "level of the extracted archive, or pass the --basedir option" + echo "pointing to that location." + echo +} + +# Ok, let's go. We first need to parse arguments which are required by +# my_print_defaults so that we can execute it first, then later re-parse +# the command line to add any extra bits that we need. +parse_arguments PICK-ARGS-FROM-ARGV "$@" + +# +# We can now find my_print_defaults. This script supports: +# +# --srcdir=path pointing to compiled source tree +# --basedir=path pointing to installed binary location +# +# or default to compiled-in locations. +# + +if test -n "$basedir" +then + print_defaults=`find_in_basedir my_print_defaults bin extra` + echo "print: $print_defaults" + if test -z "$print_defaults" + then + cannot_find_file my_print_defaults $basedir/bin $basedir/extra + exit 1 + fi +else + print_defaults="/usr/local/mysql/bin/my_print_defaults" +fi + +if test ! -x "$print_defaults" +then + cannot_find_file "$print_defaults" + exit 1 +fi + +# Now we can get arguments from the group [client] and [client-server] +# in the my.cfg file, then re-run to merge with command line arguments. +parse_arguments `$print_defaults $defaults client client-server client-mariadb` +parse_arguments PICK-ARGS-FROM-ARGV "$@" + +# Configure paths to support files +if test -n "$basedir" +then + bindir="$basedir/bin" +elif test -f "./bin/mysql" + then + bindir="./bin" +else + bindir="/usr/local/mysql/bin" +fi + +mysql_command=`find_in_basedir mysql $bindir` +if test -z "$print_defaults" +then + cannot_find_file mysql $bindir + exit 1 +fi + +set_echo_compat() { + case `echo "testing\c"`,`echo -n testing` in + *c*,-n*) echo_n= echo_c= ;; + *c*,*) echo_n=-n echo_c= ;; + *) echo_n= echo_c='\c' ;; + esac +} + +validate_reply () { + ret=0 + if [ -z "$1" ]; then + reply=y + return $ret + fi + case $1 in + y|Y|yes|Yes|YES) reply=y ;; + n|N|no|No|NO) reply=n ;; + *) ret=1 ;; + esac + return $ret +} + +prepare() { + touch $config $command + chmod 600 $config $command +} + +do_query() { + echo "$1" >$command + #sed 's,^,> ,' < $command # Debugging + $bindir/mysql --defaults-file=$config <$command + return $? +} + +# Simple escape mechanism (\-escape any ' and \), suitable for two contexts: +# - single-quoted SQL strings +# - single-quoted option values on the right hand side of = in my.cnf +# +# These two contexts don't handle escapes identically. SQL strings allow +# quoting any character (\C => C, for any C), but my.cnf parsing allows +# quoting only \, ' or ". For example, password='a\b' quotes a 3-character +# string in my.cnf, but a 2-character string in SQL. +# +# This simple escape works correctly in both places. +basic_single_escape () { + # The quoting on this sed command is a bit complex. Single-quoted strings + # don't allow *any* escape mechanism, so they cannot contain a single + # quote. The string sed gets (as argv[1]) is: s/\(['\]\)/\\\1/g + # + # Inside a character class, \ and ' are not special, so the ['\] character + # class is balanced and contains two characters. + echo "$1" | sed 's/\(['"'"'\]\)/\\\1/g' +} + +make_config() { + echo "# mysql_secure_installation config file" >$config + echo "[mysql]" >>$config + echo "user=root" >>$config + esc_pass=`basic_single_escape "$rootpass"` + echo "password='$esc_pass'" >>$config + #sed 's,^,> ,' < $config # Debugging +} + +get_root_password() { + status=1 + while [ $status -eq 1 ]; do + stty -echo + echo $echo_n "Enter current password for root (enter for none): $echo_c" + read password + echo + stty echo + if [ "x$password" = "x" ]; then + hadpass=0 + else + hadpass=1 + fi + rootpass=$password + make_config + do_query "" + status=$? + done + echo "OK, successfully used password, moving on..." + echo +} + +set_root_password() { + stty -echo + echo $echo_n "New password: $echo_c" + read password1 + echo + echo $echo_n "Re-enter new password: $echo_c" + read password2 + echo + stty echo + + if [ "$password1" != "$password2" ]; then + echo "Sorry, passwords do not match." + echo + return 1 + fi + + if [ "$password1" = "" ]; then + echo "Sorry, you can't use an empty password here." + echo + return 1 + fi + + esc_pass=`basic_single_escape "$password1"` + do_query "UPDATE mysql.user SET Password=PASSWORD('$esc_pass') WHERE User='root';" + if [ $? -eq 0 ]; then + echo "Password updated successfully!" + echo "Reloading privilege tables.." + reload_privilege_tables + if [ $? -eq 1 ]; then + clean_and_exit + fi + echo + rootpass=$password1 + make_config + else + echo "Password update failed!" + clean_and_exit + fi + + return 0 +} + +remove_anonymous_users() { + do_query "DELETE FROM mysql.user WHERE User='';" + if [ $? -eq 0 ]; then + echo " ... Success!" + else + echo " ... Failed!" + clean_and_exit + fi + + return 0 +} + +remove_remote_root() { + do_query "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');" + if [ $? -eq 0 ]; then + echo " ... Success!" + else + echo " ... Failed!" + fi +} + +remove_test_database() { + echo " - Dropping test database..." + do_query "DROP DATABASE IF EXISTS test;" + if [ $? -eq 0 ]; then + echo " ... Success!" + else + echo " ... Failed! Not critical, keep moving..." + fi + + echo " - Removing privileges on test database..." + do_query "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'" + if [ $? -eq 0 ]; then + echo " ... Success!" + else + echo " ... Failed! Not critical, keep moving..." + fi + + return 0 +} + +reload_privilege_tables() { + do_query "FLUSH PRIVILEGES;" + if [ $? -eq 0 ]; then + echo " ... Success!" + return 0 + else + echo " ... Failed!" + return 1 + fi +} + +interrupt() { + echo + echo "Aborting!" + echo + cleanup + stty echo + exit 1 +} + +cleanup() { + echo "Cleaning up..." + rm -f $config $command +} + +# Remove the files before exiting. +clean_and_exit() { + cleanup + exit 1 +} + +# The actual script starts here + +prepare +find_mysql_client +set_echo_compat + +echo +echo "NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB" +echo " SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!" +echo +echo "In order to log into MariaDB to secure it, we'll need the current" +echo "password for the root user. If you've just installed MariaDB, and" +echo "you haven't set the root password yet, the password will be blank," +echo "so you should just press enter here." +echo + +get_root_password + + +# +# Set the root password +# + +echo "Setting the root password ensures that nobody can log into the MariaDB" +echo "root user without the proper authorisation." +echo + +while true ; do + if [ $hadpass -eq 0 ]; then + echo $echo_n "Set root password? [Y/n] $echo_c" + else + echo "You already have a root password set, so you can safely answer 'n'." + echo + echo $echo_n "Change the root password? [Y/n] $echo_c" + fi + read reply + validate_reply $reply && break +done + +if [ "$reply" = "n" ]; then + echo " ... skipping." +else + status=1 + while [ $status -eq 1 ]; do + set_root_password + status=$? + done +fi +echo + + +# +# Remove anonymous users +# + +echo "By default, a MariaDB installation has an anonymous user, allowing anyone" +echo "to log into MariaDB without having to have a user account created for" +echo "them. This is intended only for testing, and to make the installation" +echo "go a bit smoother. You should remove them before moving into a" +echo "production environment." +echo + +while true ; do + echo $echo_n "Remove anonymous users? [Y/n] $echo_c" + read reply + validate_reply $reply && break +done +if [ "$reply" = "n" ]; then + echo " ... skipping." +else + remove_anonymous_users +fi +echo + + +# +# Disallow remote root login +# + +echo "Normally, root should only be allowed to connect from 'localhost'. This" +echo "ensures that someone cannot guess at the root password from the network." +echo +while true ; do + echo $echo_n "Disallow root login remotely? [Y/n] $echo_c" + read reply + validate_reply $reply && break +done +if [ "$reply" = "n" ]; then + echo " ... skipping." +else + remove_remote_root +fi +echo + + +# +# Remove test database +# + +echo "By default, MariaDB comes with a database named 'test' that anyone can" +echo "access. This is also intended only for testing, and should be removed" +echo "before moving into a production environment." +echo + +while true ; do + echo $echo_n "Remove test database and access to it? [Y/n] $echo_c" + read reply + validate_reply $reply && break +done + +if [ "$reply" = "n" ]; then + echo " ... skipping." +else + remove_test_database +fi +echo + + +# +# Reload privilege tables +# + +echo "Reloading the privilege tables will ensure that all changes made so far" +echo "will take effect immediately." +echo + +while true ; do + echo $echo_n "Reload privilege tables now? [Y/n] $echo_c" + read reply + validate_reply $reply && break +done + +if [ "$reply" = "n" ]; then + echo " ... skipping." +else + reload_privilege_tables +fi +echo + +cleanup + +echo +echo "All done! If you've completed all of the above steps, your MariaDB" +echo "installation should now be secure." +echo +echo "Thanks for using MariaDB!" diff --git a/database/bin/mysql_setpermission b/database/bin/mysql_setpermission new file mode 100755 index 0000000..e827cff --- /dev/null +++ b/database/bin/mysql_setpermission @@ -0,0 +1,672 @@ +#!/usr/bin/perl +## Emacs, this is -*- perl -*- mode? :-) + +# Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Library General Public +# License as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Library General Public License for more details. +# +# You should have received a copy of the GNU Library General Public +# License along with this library; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1335 USA + +## +## Permission setter for MySQL +## +## mady by Luuk de Boer (luuk@wxs.nl) 1998. +## it's made under GPL ...:-)) +## +## +############################################################################ +## History +## +## 1.0 first start of the program +## 1.1 some changes from monty and after that +## initial release in mysql 3.22.10 (nov 1998) +## 1.2 begin screen now in a loop + quit is using 0 instead of 9 +## after ideas of Paul DuBois. +## 1.2a Add Grant, References, Index and Alter privilege handling (Monty) +## 1.3 Applied patch provided by Martin Mokrejs +## (General code cleanup, use the GRANT statement instead of updating +## the privilege tables directly, added option to revoke privileges) +## 1.4 Remove option 6 which attempted to erroneously grant global privileges + +#### TODO +# +# empty ... suggestions ... mail them to me ... + + +$version="1.4"; + +use DBI; +use Getopt::Long; +use strict; +use vars qw($dbh $sth $hostname $opt_user $opt_password $opt_help $opt_host + $opt_socket $opt_port $host $version); + +my $sqlhost = ""; +my $user = ""; + +$dbh=$host=$opt_user= $opt_password= $opt_help= $opt_host= $opt_socket= ""; +$opt_port=0; + +read_my_cnf(); # Read options from ~/.my.cnf + +GetOptions("user=s","password=s","help","host=s","socket=s","port=i"); + +usage() if ($opt_help); # the help function + +if ($opt_host eq '') +{ + $sqlhost = "localhost"; +} +else +{ + $sqlhost = $opt_host; +} + +# ask for a password if no password is set already +if ($opt_password eq '') +{ + system "stty -echo"; + print "Password for user $opt_user to connect to MySQL: "; + $opt_password = ; + chomp($opt_password); + system "stty echo"; + print "\n"; +} + + +# make the connection to MySQL +$dbh= DBI->connect("DBI:mysql:mysql:host=$sqlhost:port=$opt_port:mysql_socket=$opt_socket",$opt_user,$opt_password, {PrintError => 0}) || + die("Can't make a connection to the mysql server.\n The error: $DBI::errstr"); + +# the start of the program +&q1(); +exit(0); # the end... + +##### +# below all subroutines of the program +##### + +### +# the beginning of the program +### +sub q1 { # first question ... + my ($answer,$end); + while (! $end) { + print "#"x70; + print "\n"; + print "## Welcome to the permission setter $version for MySQL.\n"; + print "## made by Luuk de Boer\n"; + print "#"x70; + print "\n"; + print "What would you like to do:\n"; + print " 1. Set password for an existing user.\n"; + print " 2. Create a database + user privilege for that database\n"; + print " and host combination (user can only do SELECT)\n"; + print " 3. Create/append user privilege for an existing database\n"; + print " and host combination (user can only do SELECT)\n"; + print " 4. Create/append broader user privileges for an existing\n"; + print " database and host combination\n"; + print " (user can do SELECT,INSERT,UPDATE,DELETE)\n"; + print " 5. Create/append quite extended user privileges for an\n"; + print " existing database and host combination (user can do\n"; + print " SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,\n"; + print " LOCK TABLES,CREATE TEMPORARY TABLES)\n"; + print " 6. Create/append full privileges for an existing database\n"; + print " and host combination (user has FULL privilege)\n"; + print " 7. Remove all privileges for for an existing database and\n"; + print " host combination.\n"; + print " (user will have all permission fields set to N)\n"; + print " 0. exit this program\n"; + print "\nMake your choice [1,2,3,4,5,6,7,0]: "; + while () { + $answer = $_; + chomp($answer); + if ($answer =~ /^[1234567]$/) { + if ($answer == 1) { + setpwd(); + } elsif ($answer =~ /^[234567]$/) { + addall($answer); + } else { + print "Sorry, something went wrong. With such option number you should not get here.\n\n"; + $end = 1; + } + } elsif ($answer == 0) { + print "We hope we can help you next time \n\n"; + $end = 1; + } else { + print "Your answer was $answer\n"; + print "and that's wrong .... Try again\n"; + } + last; + } + } +} + +### +# set a password for a user +### +sub setpwd +{ + my ($user,$pass,$host) = ""; + print "\n\nSetting a (new) password for a user.\n"; + + $user = user(); + $pass = newpass($user); + $host = hosts($user); + + print "#"x70; + print "\n\n"; + print "That was it ... here is an overview of what you gave to me:\n"; + print "The username : $user\n"; +# print "The password : $pass\n"; + print "The host : $host\n"; + print "#"x70; + print "\n\n"; + print "Are you pretty sure you would like to implement this [yes/no]: "; + my $no = ; + chomp($no); + if ($no =~ /n/i) + { + print "Okay .. that was it then ... See ya\n\n"; + return(0); + } + else + { + print "Okay ... let's go then ...\n\n"; + } + $user = $dbh->quote($user); + $host = $dbh->quote($host); + if ($pass eq '') + { + $pass = "''"; + } + else + { + $pass = "PASSWORD(". $dbh->quote($pass) . ")"; + } + my $sth = $dbh->prepare("update user set Password=$pass where User = $user and Host = $host") || die $dbh->errstr; + $sth->execute || die $dbh->errstr; + $sth->finish; + print "The password is set for user $user.\n\n"; + +} + +### +# all things which will be added are done here +### +sub addall { + my ($todo) = @_; + my ($answer,$good,$db,$user,$pass,$host,$priv); + + if ($todo == 2) { + $db = newdatabase(); + } else { + $db = database(); + } + + $user = newuser(); + $pass = newpass("$user"); + $host = newhosts(); + + print "#"x70; + print "\n\n"; + print "That was it ... here is an overview of what you gave to me:\n"; + print "The database name : $db\n"; + print "The username : $user\n"; +# print "The password : $pass\n"; + print "The host(s) : $host\n"; + print "#"x70; + print "\n\n"; + print "Are you pretty sure you would like to implement this [yes/no]: "; + my $no = ; + chomp($no); + if ($no =~ /n/i) { + print "Okay .. that was it then ... See ya\n\n"; + return(0); + } else { + print "Okay ... let's go then ...\n\n"; + } + + if ($todo == 2) { + # create the database + if ($db) { + my $sth = $dbh->do("CREATE DATABASE $db") || $dbh->errstr; + } else { + print STDERR "What do you want? You wanted to create new database and add new user, right?\n"; + die "But then specify databasename, please\n"; + } + } + + if ( ( !$todo ) or not ( $todo =~ m/^[2-7]$/ ) ) { + print STDERR "Sorry, select option $todo isn't known inside the program .. See ya\n"; + quit(); + } + + my @hosts = split(/,/,$host); + if (!$user) { + die "username not specified: $user\n"; + } + if (!$db) { + die "databasename is not specified nor *\n"; + } + foreach $host (@hosts) { + # user privileges: SELECT + if (($todo == 2) || ($todo == 3)) { + $sth = $dbh->do("GRANT SELECT ON $db.* TO \'$user\'@\'$host\' IDENTIFIED BY \'$pass\'") || die $dbh->errstr; + } elsif ($todo == 4) { + # user privileges: SELECT,INSERT,UPDATE,DELETE + $sth = $dbh->do("GRANT SELECT,INSERT,UPDATE,DELETE ON $db.* TO \'$user\'@\'$host\' IDENTIFIED BY \'$pass\'") || die $dbh->errstr; + } elsif ($todo == 5) { + # user privileges: SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,LOCK TABLES,CREATE TEMPORARY TABLES + $sth = $dbh->do("GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,LOCK TABLES,CREATE TEMPORARY TABLES ON $db.* TO \'$user\'@\'$host\' IDENTIFIED BY \'$pass\'") || die $dbh->errstr; + } elsif ($todo == 6) { + # all privileges + $sth = $dbh->do("GRANT ALL ON $db.* TO \'$user\'\@\'$host\' IDENTIFIED BY \'$pass\'") || die $dbh->errstr; + } elsif ($todo == 7) { + # all privileges set to N + $sth = $dbh->do("REVOKE ALL ON $db.* FROM \'$user\'\@\'$host\'") || die $dbh->errstr; + } + } + $dbh->do("FLUSH PRIVILEGES") || print STDERR "Can't flush privileges\n"; + print "Everything is inserted and mysql privileges have been reloaded.\n\n"; +} + +### +# ask for a new database name +### +sub newdatabase { + my ($answer,$good,$db); + print "\n\nWhich database would you like to add: "; + while () { + $answer = $_; + $good = 0; + chomp($answer); + if ($answer) { + my $sth = $dbh->prepare("SHOW DATABASES") || die $dbh->errstr; + $sth->execute || die $dbh->errstr; + while (my @r = $sth->fetchrow_array) { + if ($r[0] eq $answer) { + print "\n\nSorry, this database name is already in use; try something else: "; + $good = 1; + } + } + } else { + print "You must type something ...\nTry again: "; + next; + } + last if ($good == 0); + } + $db = $answer; + print "The new database $db will be created\n"; + return($db); +} + +### +# select a database +### +sub database { + my ($answer,$good,$db); + print "\n\nWhich database from existing databases would you like to select: \n"; + print "You can choose from: \n"; + my $sth = $dbh->prepare("show databases") || die $dbh->errstr; + $sth->execute || die $dbh->errstr; + while (my @r = $sth->fetchrow_array) { + print " - $r[0] \n"; + } + print "Which database will it be (case sensitive). Type * for any: \n"; + while () { + $answer = $_; + $good = 0; + chomp($answer); + if ($answer) { + if ($answer eq "*") { + print "OK, the user entry will NOT be limited to any database"; + return("*"); + } + my $sth = $dbh->prepare("show databases") || die $dbh->errstr; + $sth->execute || die $dbh->errstr; + while (my @r = $sth->fetchrow_array) { + if ($r[0] eq $answer) { + $good = 1; + $db = $r[0]; + last; + } + } + } else { + print "Type either database name or * meaning any databasename. That means"; + print " any of those above but also any which will be created in future!"; + print " This option gives a user chance to operate on databse mysql, which"; + print " contains privilege settings. That is really risky!\n"; + next; + } + if ($good == 1) { + last; + } else { + print "You must select one from the list.\nTry again: "; + next; + } + } + print "The database $db will be used.\n"; + return($db); +} + +### +# ask for a new username +### +sub newuser +{ + my $user = ""; + my $answer = ""; + + print "\nWhat username is to be created: "; + while() + { + $answer = $_; + chomp($answer); + if ($answer) + { + $user = $answer; + } + else + { + print "You must type something ...\nTry again: "; + next; + } + last; + } + print "Username = $user\n"; + return($user); +} + +### +# ask for a user which is already in the user table +### +sub user +{ + my ($answer,$user); + + print "\nFor which user do you want to specify a password: "; + while() + { + $answer = $_; + chomp($answer); + if ($answer) + { + my $sth = $dbh->prepare("select User from user where User = '$answer'") || die $dbh->errstr; + $sth->execute || die $dbh->errstr; + my @r = $sth->fetchrow_array; + if ($r[0]) + { + $user = $r[0]; + } + else + { + print "Sorry, user $answer isn't known in the user table.\nTry again: "; + next; + } + } + else + { + print "You must type something ...\nTry again: "; + next; + } + last; + } + print "Username = $user\n"; + return($user); +} + +### +# ask for a new password +### +sub newpass +{ + my ($user) = @_; + my ($pass,$answer,$good,$yes); + + print "Would you like to set a password for $user [y/n]: "; + $yes = ; + chomp($yes); + if ($yes =~ /y/) + { + system "stty -echo"; + print "What password do you want to specify for $user: "; + while() + { + $answer = $_; + chomp($answer); + system "stty echo"; + print "\n"; + if ($answer) + { + system "stty -echo"; + print "Type the password again: "; + my $second = ; + chomp($second); + system "stty echo"; + print "\n"; + if ($answer ne $second) + { + print "Passwords aren't the same; we begin from scratch again.\n"; + system "stty -echo"; + print "Password please: "; + next; + } + else + { + $pass = $answer; + } + } + else + { + print "You must type something ...\nTry again: "; + next; + } + last; + } +# print "The password for $user is $pass.\n"; + } + else + { + print "We won't set a password so the user doesn't have to use it\n"; + $pass = ""; + } + return($pass); +} + +### +# ask for new hosts +### +sub newhosts +{ + my ($host,$answer,$good); + + print "We now need to know from what host(s) the user will connect.\n"; + print "Keep in mind that % means 'from any host' ...\n"; + print "The host please: "; + while() + { + $answer = $_; + chomp($answer); + if ($answer) + { + $host .= ",$answer"; + print "Would you like to add another host [yes/no]: "; + my $yes = ; + chomp($yes); + if ($yes =~ /y/i) + { + print "Okay, give us the host please: "; + next; + } + else + { + print "Okay we keep it with this ...\n"; + } + } + else + { + print "You must type something ...\nTry again: "; + next; + } + last; + } + $host =~ s/^,//; + print "The following host(s) will be used: $host.\n"; + return($host); +} + +### +# ask for a host which is already in the user table +### +sub hosts +{ + my ($user) = @_; + my ($answer,$good,$host); + + print "We now need to know which host for $user we have to change.\n"; + print "Choose from the following hosts: \n"; + $user = $dbh->quote($user); + my $sth = $dbh->prepare("select Host,User from user where User = $user") || die $dbh->errstr; + $sth->execute || die $dbh->errstr; + while (my @r = $sth->fetchrow_array) + { + print " - $r[0] \n"; + } + print "The host please (case sensitive): "; + while() + { + $answer = $_; + chomp($answer); + if ($answer) + { + $sth = $dbh->prepare("select Host,User from user where Host = '$answer' and User = $user") || die $dbh->errstr; + $sth->execute || die $dbh->errstr; + my @r = $sth->fetchrow_array; + if ($r[0]) + { + $host = $answer; + last; + } + else + { + print "You have to select a host from the list ...\nTry again: "; + next; + } + } + else + { + print "You have to type something ...\nTry again: "; + next; + } + last; + } + print "The following host will be used: $host.\n"; + return($host); +} + +### +# a nice quit (first disconnect and then exit +### +sub quit +{ + $dbh->disconnect; + exit(0); +} + +### +# Read variables password, port and socket from .my.cnf under the client +# or perl groups +### + +sub read_my_cnf +{ + open(TMP,$ENV{'HOME'} . "/.my.cnf") || return 1; + while () + { + if (/^\[(client|perl)\]/i) + { + while ((defined($_=)) && !/^\[\w+\]/) + { + print $_; + if (/^host\s*=\s*(\S+)/i) + { + $opt_host = $1; + } + elsif (/^user\s*=\s*(\S+)/i) + { + $opt_user = $1; + } + elsif (/^password\s*=\s*(\S+)/i) + { + $opt_password = $1; + } + elsif (/^port\s*=\s*(\S+)/i) + { + $opt_port = $1; + } + elsif (/^socket\s*=\s*(\S+)/i) + { + $opt_socket = $1; + } + } + } + } + close(TMP); +} + +### +# the help text +### +sub usage +{ + print < +---------------------------------------------------------------------- + +The permission setter is a little program which can help you add users +or databases or change passwords in MySQL. Keep in mind that we don't +check permissions which already been set in MySQL. So if you can't +connect to MySQL using the permission you just added, take a look at +the permissions which have already been set in MySQL. + +The permission setter first reads your .my.cnf file in your Home +directory if it exists. + +Options for the permission setter: + +--help : print this help message and exit. + +The options shown below are used for making the connection to the MySQL +server. Keep in mind that the permissions for the user specified via +these options must be sufficient to add users / create databases / set +passwords. + +--user : is the username to connect with. +--password : the password of the username. +--host : the host to connect to. +--socket : the socket to connect to. +--port : the port number of the host to connect to. + +If you don't give a password and no password is set in your .my.cnf +file, then the permission setter will ask for a password. + + +EOL +exit(0); +} diff --git a/database/bin/mysql_tzinfo_to_sql b/database/bin/mysql_tzinfo_to_sql new file mode 100755 index 0000000..4351831 Binary files /dev/null and b/database/bin/mysql_tzinfo_to_sql differ diff --git a/database/bin/mysql_upgrade b/database/bin/mysql_upgrade new file mode 100755 index 0000000..2f11a04 Binary files /dev/null and b/database/bin/mysql_upgrade differ diff --git a/database/bin/mysql_waitpid b/database/bin/mysql_waitpid new file mode 100755 index 0000000..b11c06d Binary files /dev/null and b/database/bin/mysql_waitpid differ diff --git a/database/bin/mysql_zap b/database/bin/mysql_zap new file mode 100755 index 0000000..51a5a27 --- /dev/null +++ b/database/bin/mysql_zap @@ -0,0 +1,171 @@ +#!/usr/bin/perl +# Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA + +# This is a utility for MySQL. It is not needed by any standard part +# of MySQL. + +# Usage: mysql_zap [-signal] [-f] [-t] pattern + +# Configuration parameters. + +$sig = ""; # Default to try all signals +$ans = "y"; +$opt_f= 0; +$opt_t= 0; +$opt_a = ""; + +$BSD = -f '/vmunix' || $ENV{"OS"} eq "SunOS4"; +$LINUX = $^O eq 'linux' || $^O eq 'darwin'; +$pscmd = $BSD ? "/bin/ps -auxww" : $LINUX ? "/bin/ps axuw" : "/bin/ps -ef"; + +open(TTYIN, "/dev/tty") || die "can't write /dev/tty: $!"; +select(TTYOUT); +$| = 1; +select(STDOUT); +$SIG{'INT'} = 'cleanup'; + +while ($#ARGV >= $[ && $ARGV[0] =~ /^-/) { + if ($ARGV[0] =~ /(ZERO|HUP|INT|QUIT|ILL|TRAP|ABRT|EMT|FPE|KILL|BUS|SEGV|SYS|PIPE|ALRM|TERM|URG|STOP|TSTP|CONT|CLD|TTIN|TTOU|IO|XCPU|XFSZ|VTALRM|PROF|WINCH|LOST|USR1|USR2)/ || $ARGV[0] =~ /-(\d+)$/) { + $sig = $1; + } elsif ($ARGV[0] eq "-f") { + $opt_f=1; + } elsif ($ARGV[0] eq "-t") { + $opt_t=1; + $ans = "n"; + } + elsif ($ARGV[0] eq "-a") + { + $opt_a = 1; + } + elsif ($ARGV[0] eq "-?" || $ARGV[0] eq "-I" || $ARGV[0] eq "--help") + { + &usage; + } + else { + print STDERR "$0: illegal argument $ARGV[0] ignored\n"; + } + shift; +} + +&usage if $#ARGV < 0; + +if (!$opt_f) +{ + if ($BSD) { + system "stty cbreak /dev/tty 2>&1"; + } + else { + system "stty", 'cbreak', + system "stty", 'eol', '^A'; + } +} + +open(PS, "$pscmd|") || die "can't run $pscmd: $!"; +$title = ; +print TTYOUT $title; + +# Catch any errors with eval. A bad pattern, for instance. +eval <<'EOF'; +process: while ($cand = ) +{ + chop($cand); + ($user, $pid) = split(' ', $cand); + next if $pid == $$; + $found = !@ARGV; + if ($opt_a) { $found = 1; } + foreach $pat (@ARGV) + { + if ($opt_a) + { + if (! ($cand =~ $pat)) + { + next process; + } + } + else + { + $found = 1 if $cand =~ $pat; + } + } + next if (!$found); + if (! $opt_f && ! $opt_t) + { + print TTYOUT "$cand? "; + read(TTYIN, $ans, 1); + print TTYOUT "\n" if ($ans ne "\n"); + } + else + { + print TTYOUT "$cand\n"; + } + if ($ans =~ /^y/i) { &killpid($sig, $pid); } + if ($ans =~ /^q/i) { last; } +} +EOF + +&cleanup; + + +sub usage { + print </dev/tty 2>&1"; + } + else { + system "stty", 'icanon'; + system "stty", 'eol', '^@'; + } + print "\n"; + exit; +} + +sub killpid { + local($signal,$pid) = @_; + if ($signal) + { + kill $signal,$pid; + } + else + { + print "kill -15\n"; + kill 15, $pid; + for (1..5) { + sleep 2; + return if kill(0, $pid) == 0; + } + print "kill -9\n"; + kill 9, $pid; + for (1..5) { + sleep 2; + return if kill(0, $pid) == 0; + } + print "$pid will not die!\n"; + } +} diff --git a/database/bin/mysqlaccess b/database/bin/mysqlaccess new file mode 100755 index 0000000..30f1444 --- /dev/null +++ b/database/bin/mysqlaccess @@ -0,0 +1,3265 @@ +#!/usr/bin/perl + +# Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Library General Public +# License as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Library General Public License for more details. +# +# You should have received a copy of the GNU Library General Public +# License along with this library; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1335 USA + +# **************************** +package MySQLaccess; +#use strict; +use File::Temp qw(tempfile tmpnam); +use Fcntl; + +BEGIN { + # **************************** + # static information... + $VERSION = "2.10, 13 Sep 2019"; + $0 =~ m%/([^/]+)$%o; + $script = $1; + $script = 'MySQLAccess' unless $script; + $script_conf = "$script.conf"; + $script_log = $ENV{'HOME'}."/$script.log"; + + # **************************** + # information on MySQL + $MYSQL = '/usr/local/mysql/bin/mysql'; # path to mysql executable + $SERVER = '3.21'; + $MYSQL_OPT = ' --batch --unbuffered'; + $ACCESS_DB = 'mysql'; # name of DB with grant-tables + $ACCESS_H = 'host'; # + $ACCESS_U = 'user'; # + $ACCESS_D = 'db'; # + # Add/Edit privileges + $ACCESS_H_TMP = 'host_tmp'; + $ACCESS_U_TMP = 'user_tmp'; + $ACCESS_D_TMP = 'db_tmp'; + $ACCESS_H_BCK = 'host_backup'; + $ACCESS_U_BCK = 'user_backup'; + $ACCESS_D_BCK = 'db_backup'; + $DIFF = '/usr/bin/diff'; + $MYSQLDUMP = '/usr/local/mysql/bin/mysqldump'; + #path to mysqldump executable + + $MYSQLADMIN= 'http://foobar.com/MySQLadmin'; + #URL of CGI for manipulating + #the temporary grant-tables +} + +END { + unlink $MYSQL_CNF if defined $MYSQL_CNF and not $DEBUG; +} + +$INFO = <<"_INFO"; +-------------------------------------------------------------------------- + mysqlaccess (Version $VERSION) + ~~~~~~~~~~~ + Copyright (C) 1997,1998 Yves.Carlier\@rug.ac.be + University of Ghent (RUG), Belgium + Administratieve Informatieverwerking (AIV) + + report the access-privileges for a USER from a HOST to a DB + + Many thanks go to and + for their suggestions, debugging and patches. + + use `$script -?' to get more information on available options. + + From version 2.0x, $script can also be used through a WEB-browser + if it is ran as a CGI-script. (See the release-notes) + +-------------------------------------------------------------------------- +_INFO + +$OPTIONS = <<_OPTIONS; + +Usage: $script [host [user [db]]] OPTIONS + + -?, --help display this helpscreen and exit + -v, --version print information on the program `$script' + + -u, --user=# username for logging in to the db + -p, --password=# validate password for user + -h, --host=# name or IP-number of the host + -d, --db=# name of the database + + -U, --superuser=# connect as superuser + -P, --spassword=# password for superuser + -H, --rhost=# remote MySQL-server to connect to + --old_server connect to old MySQL-server (before v3.21) which + does not yet know how to handle full where clauses. + + -b, --brief single-line tabular report + -t, --table report in table-format + + --relnotes print release-notes + --plan print suggestions/ideas for future releases + --howto some examples of how to run `$script' + --debug=N enter debuglevel N (0..3) + + --copy reload temporary grant-tables from original ones + --preview show differences in privileges after making + changes in (temporary) grant-tables + --commit copy grant-rules from temporary tables to grant-tables + (!don't forget to do an mysqladmin reload) + --rollback undo the last changes to the grant-tables. + + Note: + At least the user and the db must be given (even with wildcards) + If no host is given, `localhost' is assumed + Wilcards (*,?,%,_) are allowed for host, user and db, but be sure + to escape them from your shell!! (ie type \\* or '*') +_OPTIONS + +$RELEASE = <<'_RELEASE'; + +Release Notes: +------------- + 0.1-beta1: internal + - first trial. + + 0.1-beta2: (1997-02-27) + - complete rewrite of the granting-rules, based on the documentation + found in de FAQ. + - IP-number and name for a host are equiv. + + 0.1-beta3: (1997-03-10) + - more information + - 'localhost' and the name/ip of the local machine are now equiv. + + 0.1-beta4: (1997-03-11) + - inform the user if he has not enough priv. to read the mysql db + + 1.0-beta1: (1997-03-12) + suggestions by Monty: + - connect as superuser with superpassword. + - mysqlaccess could also notice if all tables are empty. This means + that all user have full access! + - It would be nice if one could optionally start mysqlaccess without + any options just the arguments 'user db' or 'host user db', where + host is 'localhost' if one uses only two arguments. + + 1.0-beta2: (1997-03-14) + - bugfix: translation to reg.expr of \_ and \%. + - bugfix: error in matching regular expression and string given + by user which resulted in + 'test_123' being matched with 'test' + + 1.0-beta3: (1997-03-14) + - bugfix: the user-field should not be treated as a sql-regexpr, + but as a plain string. + - bugfix: the host-table should not be used if the host isn't empty in db + or if the host isn't emty in user + (Monty) + + 1.0-beta4: (1997-03-14) + - bugfix: in an expression "$i = $j or $k", the '=' binds tighter than the or + which results in problems... + (by Monty) + - running mysqlaccess with "perl -w" gives less warnings... ;-) + + 1.0-beta5: (1997-04-04) + - bugfix: The table sorting was only being applied to the "user" table; all + the tables need to be sorted. Rewrote the sort algorithm, and + the table walk algorithm (no temp file anymore), and various + other cleanups. I believe the access calculation is 100% correct. + (by Paul D. Smith ) + - Allow the debug level to be set on the cmd line with --debug=N. + (by Paul D. Smith ) + - More -w cleanups; should be totally -w-clean. + (by Paul D. Smith ) + + 1.1-beta1: (1997-04-xx) + 1.1-beta2: (1997-04-11) + - new options: + --all_users : report access-rights for all possible users + --all_dbs : report access-rights for all possible dbs + --all_hosts : report access-rights for all possible hosts + --brief : as brief as possible, don't mention notes,warnings and rules + --password : validate password for user + - layout: long messages are wrapped on the report. + - functionality: + more descriptive notes and warnings + wildcards (*,?) are allowed in the user,host and db options + setting xxxx=* is equiv to using option --all_xxxx + note: make sure you escape your wildcards, so they don't get + interpreted by the shell. use \* or '*' + - bugfix: Fieldnames which should be skipped on the output can now have + a first capital letter. + - bugfix: any option with a '.' (eg ip-number) was interpreted as + a wildcard-expression. + - bugfix: When no entry was found in the db-table, the default accessrights are + N, instead of the faulty Y in a previous version. + + 1.1-beta-3 : (1997-04-xx) + 1.1-beta-4 : (1997-04-xx) + 1.1-beta-5 : (1997-04-xx) + 1.1 : (1997-04-28) + - new options: + --rhost : name of mysql-server to connect to + --plan : print suggestions/ideas for future releases + --relnotes : display release-notes + --howto : display examples on how to use mysqlaccess + --brief : single-line tabular output + - functionality/bugfix: + * removed options --all_users,--all_dbs,--all_hosts, which + were redundant with the wildcard-expressions for the corresponding + options. They made the processing of the commandline too painful + and confusing ;-) + (suggested by psmith) + * redefined the option --brief, which now gives a single-line + tabular output + * Now we check if the right version of the mysql-client is used, + since we might use an option not yet implemented in an + older version (--unbuffered, since 3.0.18) + Also the error-messages the mysql-client reports are + better interpreted ;-) + * Wildcards can now be given following the SQL-expression + (%,_) and the Regular-expression (*,?) syntax. + - speed: we now open a bidirectional pipe to the mysql-client, and keep + it open throughout the whole run. Queries are written to, + and the answers read from the pipe. + (suggested by monty) + - bugfixes: + * the Rules were not properly reset over iterations + * when in different tables the field-names were not identical, + eg. Select_priv and select_priv, they were considered as + definitions of 2 different access-rights. + * the IP-number of a host with a name containing wildcards should + not be searched for in Name2IP and IP2Name. + * various other small things, pointed out by and + + 1.2 : (1997-05-13) + - bugfix: + * Fixed bug in acl with anonymous user: Now if one gets accepted by the + user table as a empty user name, the user name is set to '' when + checking against the 'db' and 'host' tables. (Bug fixed in MySQL3.20.19) + + 1.2-1 : (1997-xx-xx) + - bugfix: + * hashes should be initialized with () instead of {} + * "my" variable $name masks earlier declaration in same scope, + using perl 5.004 + + 1.2-2 : (1997-06-10) + + 2.0p1-3 : (1997-10-xx) + - new + * packages + * log-file for debug-output : /tmp/mysqlaccess.log + * default values are read from a configuration file $script.conf + first this file is looked for in the current directory; if not + found it is looked for in /etc/ + Note that when default-values are given, these can't get overriden + by empty (blanc) values! + * CGI-BIN version with HTML and forms interface. Simply place the + script in an ScriptAliased directory, make the configuration file + available in the that directory or in /etc, and point your browser + to the right URL. + * copy the grant-rules to temporary tables, where you are safe to + play with them. + * preview changes in privileges after changing grant-rules, + before taking them into production + * copy the new grant-rules from the temporary tables back to the + grant-tables. + * Undo all changes made in the grant-tables (1-level undo). + -new options: + * --table : as opposite of the --brief option. + * --copy : (re)load temporary grant-tables from original ones. + * --preview : preview changes in privileges after changing + some or more entries in the grant-tables. + * --commit : copy grant-rules from temporary tables to grant-tables + (!don't forget to do an mysqladmin reload) + * --rollback: undo the last changes to the grant-tables. + + - bugfix: + * if the table db is empty, mysqlaccess freezed + (by X Zhu ) + + 2.0 : (1997-10-09) + - fixed some "-w" warnings. + - complain when certain programs and paths can't be found. + + 2.01 : (1997-12-12) + - bugfix: + * rules for db-table where not calculated and reported correctly. + 2.02 : (1998-01-xx) + - bugfix: + * Privileges of the user-table were not AND-ed properly with the + other privileges. (reported by monty) + - new option: + * --old_server: mysqlaccess will now use a full where clause when + retrieving information from the MySQL-server. If + you are connecting to an old server (before v3.21) + then use the option --old_server. + 2.03 : (1998-02-27) + - bugfix: + * in Host::MatchTemplate: incorrect match if host-field was left empty. + + 2.04-alpha1 : (2000-02-11) + Closes vulnerability due to former implementation requiring passwords + to be passed on the command line. + - functionality + Option values for --password -p -spassword -P may now be omitted from + command line, in which case the values will be prompted for. + (fix supplied by Steve Harvey ) + + 2.05: (2000-02-17) Monty + Moved the log file from /tmp to ~ + + 2.06: Don't print '+++USING FULL WHERE CLAUSE+++' + +_RELEASE + +$TODO = <<_TODO; + + Plans: + ----- + -a full where clause is use now. How can we handle older servers? + -add some more functionality for DNS. + -select the warnings more carefuly. + >> I think that the warnings should either be enhanced to _really_ + >> understand and report real problems accurately, or restricted to + >> only printing things that it knows with 100% certainty. > Why do I have both '%' and 'any_other_host' in there? Isn't that + >> the same thing? I think it's because I have an actual host '%' in + >> one of my tables. Probably the script should catch that and not + >> duplicate output. + +_TODO + +# From the FAQ: the Grant-algorithm +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# The host table is mainly to maintain a list of "secure" servers. +# At TCX hosts contain a list of all machines on local network. These are granted +# all privileges. +# Technically the user grant is calculated by: +# +# 1.First sort all entries by host by putting host without wildcards first, +# after this host with wildcards and entries with host = ". +# Under each host sort user by the same criterias. +# 2.Get grant for user from the "db" table. +# 3.If hostname is "empty" for the found entry, AND the privileges with +# the privileges for the host in "host" table. +# (Remove all which is not "Y" in both) +# 4.OR (add) the privileges for the user from the "user" table. +# (add all privileges which is "Y" in "user") +# +# When matching, use the first found match. +# +# ----------------------------------------------------------------------------------- + +$HOWTO = <<_HOWTO; + +Examples of how to call $script: +~~~~~~~~ +1)Calling $script with 2 arguments: + + \$ $script root mysql + ->report rights of user root logged on at the local host in db mysql + + Access-rights + for USER 'root', from HOST 'localhost', to DB 'mysql' + +-----------------+---+ +-----------------+---+ + | select_priv | Y | | drop_priv | Y | + | insert_priv | Y | | reload_priv | Y | + | update_priv | Y | | shutdown_priv | Y | + | delete_priv | Y | | process_priv | Y | + | create_priv | Y | | file_priv | Y | + +-----------------+---+ +-----------------+---+ + BEWARE: Everybody can access your DB as user 'root' + : WITHOUT supplying a password. Be very careful about it!! + + The following rules are used: + db : 'No matching rule' + host : 'Not processed: host-field is not empty in db-table.' + user : 'localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y' + +2)Calling $script with 3 arguments: + + \$ $script foo.bar nobody Foo + ->report rights of user root logged in at machine foobar to db Foo + + Access-rights + for USER 'nobody', from HOST 'foo.bar', to DB 'Foo' + +-----------------+---+ +-----------------+---+ + | select_priv | Y | | drop_priv | N | + | insert_priv | Y | | reload_priv | N | + | update_priv | Y | | shutdown_priv | N | + | delete_priv | Y | | process_priv | N | + | create_priv | N | | file_priv | N | + +-----------------+---+ +-----------------+---+ + BEWARE: Everybody can access your DB as user 'nobody' + : WITHOUT supplying a password. Be very careful about it!! + + The following rules are used: + db : 'foo.bar','Foo','nobody','Y','Y','Y','N','N','N' + host : 'Not processed: host-field is not empty in db-table.' + user : 'foo.bar','nobody','','N','N','N','Y','N','N','N','N','N','N' + +3)Using wildcards: + + \$ $script \\* nobody Foo --brief + ->report access-rights of user nobody from all machines to db Foo, + and use a matrix-report. + + Sel Ins Upd Del Crea Drop Reld Shut Proc File Host,User,DB + ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- -------------------- + Y Y Y Y N N N N N N localhost,nobody,Foo + N N N N N N N N N N %,nobody,Foo + N N N N N N N N N N any_other_host,nobody,Foo + +_HOWTO + + +# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # +# START OF THE PROGRAM # +# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ # + +use Getopt::Long; +use Sys::Hostname; +use IPC::Open3; + + +# **************************** +# debugging flag +# can be set to 0,1,2,3 +# a higher value gives more info +# ! this can also be set on the command-line + $DEBUG = 0; + +# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>8 +# Normaly nothing should be changed beneeth this line + + +# **************************** +# no caching on STDOUT + $|=1; + + $MYSQL_CNF = tmpnam(); + %MYSQL_CNF = (client => { }, + mysql => { }, + mysqldump => { }, + ); + + + +$NEW_USER = 'ANY_NEW_USER'; +$NEW_DB = 'ANY_NEW_DB' ; + + +# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% # +# mysqlaccess: # +# ~~~~~~~~~~~ # +# Lets get to it, # +# and start the program by processing the parameters # +# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% # + +($CMD,$CGI) = GetMode(); + +# **************************** +# the copyright message should +# always be printed (once) +MySQLaccess::Report::Print_Header(); + +# ***************************** +# Read configuration-file + MySQLaccess::Debug::Print(1, "Reading configuration file..."); + if (-f "/usr/local/mysql/$script_conf") { + print "Configuration file '$script_conf' is found in '/usr/local/mysql/'\n"; + require "/usr/local/mysql/$script_conf"; + } + elsif (-f "/etc/$script_conf") { + print "Configuration file '$script_conf' is found in '/etc/'\n"; + require "/etc/$script_conf"; + } + elsif (-f "./$script_conf") { + print "\nERROR! Configuration file '$script_conf' is found in the current "; + print "directory.\nThe permissible locations for this file are either "; + print "/usr/local/mysql/ or /etc/\n"; + print "Please move it to one of these locations and retry.\n\n"; + exit 0; + } + + +# **************************** +# Read in all parameters +if ($MySQLaccess::CMD) { #command-line version + # ---------------------------- + # Get options from commandline + $Getopt::Long::ignorecase=0; #case sensitive options + if ( grep(/\-\?/,@ARGV) ) { MySQLaccess::Report::Print_Usage(); exit 0; } + GetOptions("help" => \$Param{'help'} + ,"host|h=s" => \$Param{'host'} + ,"user|u=s" => \$Param{'user'} + ,"password|p:s" => \$Param{'password'} + ,"db|d=s" => \$Param{'db'} + ,"superuser|U=s" => \$Param{'superuser'} + ,"spassword|P:s" => \$Param{'spassword'} + ,"rhost|H=s" => \$Param{'rhost'} + ,"old_server" => \$Param{'old_server'} + ,"debug=i" => \$Param{'DEBUG'} + ,"brief|b" => \$Param{'brief'} + ,"table|t" => \$Param{'table'} + ,"relnotes" => \$Param{'relnotes'} + ,"plan" => \$Param{'plan'} + ,"howto" => \$Param{'howto'} + ,"version|v" => \$Param{'version'} + ,"preview" => \$Param{'preview'} + ,"copy" => \$Param{'copy'} + ,"commit" => \$Param{'commit'} + ,'rollback' => \$Param{'rollback'} + ); + + # ----------------------------- + # set DEBUG + $DEBUG = $Param{'DEBUG'} if ($Param{'DEBUG'}>=$DEBUG); + + # ----------------------------- + # check for things which aren't + # declared as options: + # 2 arguments: (user,db) -> ('localhost','user','db') + if ($#ARGV == 1) { + MySQLaccess::Debug::Print(2,"$script called with 2 arguments:"); + $Param{'host'} = $Param{'host'} || 'localhost'; + $Param{'user'} = $ARGV[0] || $Param{'user'}; + $Param{'db'} = $ARGV[1] || $Param{'db'}; + } + # 3 arguments: (host,user,db) + if ($#ARGV == 2) { + MySQLaccess::Debug::Print(2,"$script called with 3 arguments:"); + $Param{'host'} = $ARGV[0] || $Param{'host'}; + $Param{'user'} = $ARGV[1] || $Param{'user'}; + $Param{'db'} = $ARGV[2] || $Param{'db'}; + } + + # ------------------------------------- + # prompt for user password if requested + if ( defined($Param{'password'}) && length($Param{'password'}) == 0 ) { + $Param{'password'} = PromptPass( + "Password for MySQL user $Param{'user'}: "); + } +} +if ($MySQLaccess::CGI) { #CGI-version + require CGI; + $Q = new CGI; + $Param{'help'} = $Q->param('help') ; + $Param{'host'} = $Q->param('host') || $Q->param('h') || $Param{'host'}; + $Param{'user'} = $Q->param('user') || $Q->param('u') || $Param{'user'}; + $Param{'db'} = $Q->param('db') || $Q->param('d') || $Param{'db'}; + $Param{'password'} = $Q->param('password') || $Q->param('p') || $Param{'password'}; + $Param{'superuser'} = $Q->param('superuser') || $Q->param('U') || $Param{'superuser'}; + $Param{'spassword'} = $Q->param('spassword') || $Q->param('P') || $Param{'spassword'}; + $Param{'rhost'} = $Q->param('rhost') || $Q->param('H') || $Param{'rhost'}; + $Param{'old_server'}= $Q->param('old_server')|| $Param{'old_server'}; + $Param{'debug'} = $Q->param('debug') || $Param{'debug'}; + $Param{'brief'} = $Q->param('brief') || $Param{'brief'}; + $Param{'table'} = $Q->param('table') || $Param{'table'}; + $Param{'relnotes'} = $Q->param('relnotes'); + $Param{'plan'} = $Q->param('plan'); + $Param{'howto'} = $Q->param('howto'); + $Param{'version'} = $Q->param('version') ? $Q->param('version') : $Q->param('v'); + $Param{'edit'} = $Q->param('edit'); + $Param{'preview'} = $Q->param('preview'); + $Param{'copy'} = $Q->param('copy'); + $Param{'commit'} = $Q->param('commit'); + $Param{'rollback'} = $Q->param('rollback'); + # ----------------------------- + # set DEBUG + $DEBUG = $Q->param('debug') if ($Q->param('debug')>=$DEBUG); +} + +# ---------------------- +# brief and table-format +# exclude each-other +# table-format is prefered +if (defined($Param{'table'})) { undef($Param{'brief'}); } +if (defined($Param{'preview'}) or + defined($Param{'copy'}) or + defined($Param{'commit'}) or + defined($Param{'rollback'}) ) { $Param{'edit'}='on'; } + + +# ---------------------- +# if no host is given +# assume we mean 'localhost' +if (!defined($Param{'host'})) { $Param{'host'}='localhost'; } + +# ---------------------- +# perform some checks +# -> eliminate 'broken pipe' error +push(@MySQLaccess::Grant::Error,'not_found_mysql') if !(-x $MYSQL); +push(@MySQLaccess::Grant::Error,'not_found_diff') if !(-x $DIFF); +push(@MySQLaccess::Grant::Error,'not_found_mysqldump') if !(-x $MYSQLDUMP); +if (@MySQLaccess::Grant::Error) { + MySQLaccess::Report::Print_Error_Messages() ; + exit 0; +} + +#----------------------- +# get info/help if necc. +$print_usage=1; +if ( defined($Param{'version'}) ) { + MySQLaccess::Report::Print_Version(); + $print_usage=0; + MySQLaccess::Report::Print_Footer(); + MySQLaccess::DB::CloseConnection(); + exit 0; +# exit 0; +} +if ( defined($Param{'relnotes'}) ) { + MySQLaccess::Report::Print_Relnotes(); + $print_usage=0; + MySQLaccess::Report::Print_Footer(); + MySQLaccess::DB::CloseConnection(); + exit 0; +# exit 0; +} +if ( defined($Param{'plan'}) ) { + MySQLaccess::Report::Print_Plans(); + $print_usage=0; + MySQLaccess::Report::Print_Footer(); + MySQLaccess::DB::CloseConnection(); + exit 0; +# exit 0; +} +if ( defined($Param{'howto'}) ) { + MySQLaccess::Report::Print_HowTo(); + $print_usage=0; + MySQLaccess::Report::Print_Footer(); + MySQLaccess::DB::CloseConnection(); + exit 0; +# exit 0; +} + +# ----------------------------- +# generate a help-screen in CMD-mode +# or a blanc form in CGI-mode +if ( defined($Param{'help'}) + or !defined($Param{'user'}) + or !defined($Param{'host'}) + or !defined($Param{'db'}) + ) { + push(@MySQLaccess::Grant::Error,'user_required') unless defined($Param{'user'}); + push(@MySQLaccess::Grant::Error,'db_required') unless defined($Param{'db'}); + push(@MySQLaccess::Grant::Error,'host_required') unless defined($Param{'host'}); + MySQLaccess::Report::Print_Usage() if $print_usage; + exit 0; +} + + +# ---------------------------- +# get hostname and local-ip +# for localhost +$localhost = MySQLaccess::Host::LocalHost(); +$local_ip = MySQLaccess::Host::Name2IP($localhost); +$MySQLaccess::Host::localhost = MySQLaccess::Host::LocalHost(); +$MySQLaccess::Host::local_ip = MySQLaccess::Host::Name2IP($localhost); +MySQLaccess::Debug::Print(3, "localhost name=$localhost, ip=$local_ip"); + +#----------------------------------- +# version of MySQL-server to connect +# to determine use of full where clause +$MySQLaccess::Host::SERVER = $Param{'old_server'} ? '3.20' : $SERVER; + +#--------------------------------- +# create the config file for mysql and mysqldump +# to avoid passing authentication info on the command line +# +MergeConfigFiles(); +die "Unsafe config file found: $unsafeConfig\n" if $unsafeConfig; +if (defined($Param{'superuser'})) { + $MYSQL_CNF{'mysql'}{'user'} = $Param{'superuser'}; + $MYSQL_CNF{'mysqldump'}{'user'} = $Param{'superuser'}; +} +if (defined($Param{'spassword'})) { + if ( $CMD && length($Param{'spassword'}) == 0 ) { + $Param{'spassword'} = + PromptPass("Password for MySQL superuser $Param{'superuser'}: "); + } + if ( length($Param{'spassword'}) > 0 ) { + $MYSQL_CNF{'mysql'}{'password'} = $Param{'spassword'}; + $MYSQL_CNF{'mysqldump'}{'password'} = $Param{'spassword'}; + } +} +WriteTempConfigFile(); + +#--------------------------------- +# Inform user if he has not enough +# privileges to read the access-db +if ( $nerror=MySQLaccess::DB::OpenConnection() ) { + MySQLaccess::Report::Print_Error_Access($nerror); + exit 0; +} + +# ----------------------- +# Read MySQL ACL-files +if ($nerror=MySQLaccess::Grant::ReadTables()) { + MySQLaccess::Report::Print_Error_Access($nerror); + exit 0; +}; +if ($Param{'edit'} and $nerror=MySQLaccess::Grant::ReadTables('tmp')) { + MySQLaccess::Report::Print_Error_Access($nerror); + exit 0; +} + +#--------------------------------- +# reload temporay grant-tables +# with data from original ones +if ( defined($Param{'copy'}) ) { + $nerror=MySQLaccess::DB::LoadTmpTables(); + if ($nerror) { + MySQLaccess::Report::Print_Error_Access($nerror); + exit 0; + } + my $msg = "The grant-rules are copied from the grant-tables to\n" + . "the temporary tables."; + MySQLaccess::Report::Print_Message([$msg]); +# MySQLaccess::Report::Print_Footer(); +# MySQLaccess::DB::CloseConnection(); +# exit 0; +} + + +#--------------------------------- +# preview result of changes in the +# grant-tables +if ( defined($Param{'preview'}) ) { + $aref=MySQLaccess::Grant::Diff_Privileges(); + MySQLaccess::Report::Print_Diff_ACL($aref); +# MySQLaccess::Report::Print_Footer(); +# MySQLaccess::DB::CloseConnection(); +# exit 0; +} + + +#--------------------------------- +# reload grant-tables +# with data from temporary tables +if ( defined($Param{'commit'}) ) { + if ($nerror = MySQLaccess::DB::CommitGrantTables()) { + MySQLaccess::Report::Print_Error_Access($nerror); + exit 0; + } + my $msg = "The grant-rules have been copied from the temporary tables\n" + . "to the grant-tables."; + my $msg1= "Don't forget to do an 'mysqladmin reload' before these\n" + . "changes take effect."; + my $msg2= "A backup-version of your original grant-rules are saved in the\n" + . "backup-tables, so you can always perform a 1-level rollback."; + MySQLaccess::Report::Print_Message([$msg,$msg1,$msg2]); +# MySQLaccess::Report::Print_Footer(); +# MySQLaccess::DB::CloseConnection(); +# exit 0; +} + +#--------------------------------- +# restore previous grant-rules +# with data from backup tables +if ( defined($Param{'rollback'}) ) { + if ($nerror = MySQLaccess::DB::RollbackGrantTables()) { + MySQLaccess::Report::Print_Error_Access($nerror); + exit 0; + } + my $msg = "The old grant-rules have been copied back from the backup tables\n" + . "to the grant-tables."; + my $msg1= "Don't forget to do an 'mysqladmin reload' before these\n" + . "changes take effect."; + MySQLaccess::Report::Print_Message([$msg,$msg1]); +# MySQLaccess::Report::Print_Footer(); +# MySQLaccess::DB::CloseConnection(); +# exit 0; +} +#---------------------------------- +# show edit-taskbar +if ( defined($Param{'edit'})) { + if ($MySQLaccess::CGI ) { + MySQLaccess::Report::Print_Edit(); + $print_usage=0; + MySQLaccess::Report::Print_Footer(); + MySQLaccess::DB::CloseConnection(); + exit 0; + } + else { + MySQLaccess::Report::Print_Edit(); + $print_usage=0; + MySQLaccess::Report::Print_Footer(); + MySQLaccess::DB::CloseConnection(); + exit 0; + } +} + + +# ----------------------------- +# Build list of users,dbs,hosts +# to process... +@all_dbs = @{MySQLaccess::DB::Get_All_dbs($Param{'db'})}; +@all_users = @{MySQLaccess::DB::Get_All_users($Param{'user'})}; +@all_hosts = @{MySQLaccess::DB::Get_All_hosts($Param{'host'})}; +#if EDIT-mode +#@all_dbs_tmp = @{MySQLaccess::DB::Get_All_dbs($Param{'db'},'tmp')}; +#@all_users_tmp = @{MySQLaccess::DB::Get_All_users($Param{'user'},'tmp')}; +#@all_hosts_tmp = @{MySQLaccess::DB::Get_All_hosts($Param{'host'},'tmp')}; + +# ----------------------------- +# Report access-rights for each +# tuple (host,user,db) +#$headers=0; +my %Access = (); +foreach $host (@all_hosts) { + foreach $user (@all_users) { + foreach $db (@all_dbs) { + MySQLaccess::Grant::Initialize(); + %Access = MySQLaccess::Grant::Get_Access_Rights($host,$user,$db); + MySQLaccess::Report::Print_Access_rights($host,$user,$db,\%Access); + } + } +} + +# ----------------------------- +# End script +MySQLaccess::Report::Print_Footer(); +MySQLaccess::DB::CloseConnection(); +exit 0; + +############################################################# +# FUNCTIONS # +############### +sub GetMode { + my $cmd=0; + my $cgi=0; + if (defined($ENV{'HTTP_HOST'})) { $cmd=0; $cgi=1; } + else { $cmd=1; $cgi=0; } + return ($cmd,$cgi); +} + +# ================================ +# sub PromptPass +# prompt tty for a password +# ================================ +sub PromptPass { + my ($prompt) = @_; + my $password; + $ENV{PATH} = "/bin:/usr/bin"; + $ENV{IFS} = " \t\n"; + $ENV{SHELL} = "/bin/sh"; + system "stty -echo"; + print $prompt; + chomp($password = ); + print "\n"; + system "stty echo"; + $password; +} + +# ================================= +# sub CheckUnsafeFile +# tell if a config file containing a password is unsafe +# ================================= +sub CheckUnsafeFile { + my ($fname) = @_; + my ($dev, $ino, $mode, $nlink, + $uid, $gid, $rdev, $size, + $atime, $mtime, $ctime, $blksize, $blocks) = stat($fname); + + if ( $uid != $< ) { # unsafe if owned by other than current user + return 1; + } + if ( $mode & 066 ) { # unsafe if accessible by other + return 1; + } + $fname =~ s#/[^/]+$##; + if ( (length $fname) > 0 ) { + return CheckUnsafeDir($fname); + } + return 0; +} + +# ================================= +# sub CheckUnsafeDir +# tell if a directory is unsafe +# ================================= +sub CheckUnsafeDir { + my ($fname) = @_; + my ($dev, $ino, $mode, $nlink, + $uid, $gid, $rdev, $size, + $atime, $mtime, $ctime, $blksize, $blocks) = stat($fname); + + # not owned by me or root + if ( ($uid != $<) && ($uid != 0) ) { + return 1; + } + if ( $mode & 022 ) { # unsafe if writable by other + return 1 unless $mode & 01000; # but sticky bit ok + } + $fname =~ s#/[^/]+$##; + if ( (length $fname) > 0 ) { + return CheckUnsafeDir($fname); + } + return 0; +} + +# ================================= +# sub MergeConfigFile +# merge data from .cnf file +# ================================= +sub MergeConfigFile { + my ($fname) = @_; + my ($group, $item, $value); + if ( open CNF, $fname ) { + while () { + s/^\s+//; + next if /^[#;]/; + if ( /\[\s*(\w+)\s*]/ ) { + $group = $1; + $group =~ tr/A-Z/a-z/; + if ( !exists $MYSQL_CNF{$group} ) { + undef $group; + } + } elsif ( defined $group ) { + ($item, $value) = /((?:\w|-)+)\s*=\s*(\S+)/; + # don't unquote backslashes as we just write it back out + if ( defined $item ) { + if ( $item =~ /^password$/ ) { + if ( CheckUnsafeFile($fname) ) { + $unsafeConfig = $fname; + } + } + if ( $group eq 'client' || $group eq "client-server") { + $MYSQL_CNF{'mysql'}{$item} = $value; + $MYSQL_CNF{'mysqldump'}{$item} = $value; + } else { + $MYSQL_CNF{$group}{$item} = $value; + } + } + } + } + close(CNF); + } +} + +# ================================= +# sub MergeConfigFiles +# merge options from config files +# NOTE: really should do two separate merges for each +# client to exactly duplicate order of resulting argument lists +# ================================= +sub MergeConfigFiles { + my ($name,$pass,$uid,$gid,$quota,$comment,$gcos,$dir,$shell) = getpwuid $<; + MergeConfigFile("/usr/local/mysql/my.cnf"); + MergeConfigFile("/etc/my.cnf"); + MergeConfigFile("$dir/.my.cnf"); +} + +# ================================= +# sub WriteTempConfigFile +# write +# ================================= +sub WriteTempConfigFile { + sysopen CNFFILE, $MYSQL_CNF, O_RDWR|O_CREAT|O_EXCL, 0700 + or die "sysopen $MYSQL_CNF: $!"; + + # groups may be in any order, generic groups such as [client] assumed + # here to be empty + foreach $group (keys %MYSQL_CNF) { + print CNFFILE "[$group]\n"; + foreach $item (keys %{$MYSQL_CNF{$group}}) { + if ( defined $MYSQL_CNF{$group}{$item} ) { + print CNFFILE "$item=$MYSQL_CNF{$group}{$item}\n"; + } else { + print CNFFILE "$item\n"; + } + } + print CNFFILE "\n"; + } + close(CNFFILE); +} + +###################################################################### +package MySQLaccess::DB; +########### +BEGIN { + $DEBUG = 2; + $DEBUG = $MySQLaccess::DEBUG unless ($DEBUG); + # Error-messages from the MySQL client + %ACCESS_ERR= ('Access_denied' => 'Access denied' + ,'Dbaccess_denied' => 'Access to database denied' + ,'Unrecognized_option' => 'unrecognized option' + ,'Unknown_table' => "Can't find file:" + ,'unknown_error' => '^ERROR:' + ); +} +# ###################################### +# Connecting to the MYSQL DB +# ====================================== +# sub OpenConnection +# Open an connection to the mysql-db +# questions to MYSQL_Q +# answers from MYSQL_A +# ====================================== +sub OpenConnection { + my $pid; + MySQLaccess::Debug::Print(2,"OpenConnection:"); + + # check path to mysql-client executable + if (! -f $MySQLaccess::MYSQL) { + if ($MySQLaccess::CMD) { die "Could not find MySQL-client '$MySQLaccess::MYSQL'"; } + if ($MySQLaccess::CGI) { + print "
\n\n"; + print "ERROR: Could not find MySQL-client '$MySQLaccess::MYSQL'"; + print "
\n\n"; + exit 0; + } + } + + # path to mysql executable + my $connect = "$MySQLaccess::MYSQL --defaults-file=$MySQLaccess::MYSQL_CNF"; + $connect .= " $MySQLaccess::MYSQL_OPT"; + # superuser, spassword transmitted via defaults-file + if (defined($MySQLaccess::Param{'rhost'})) { $connect .= " --host=$MySQLaccess::Param{'rhost'}"; } + # other options?? + + # grant-database + $connect .= " $MySQLaccess::ACCESS_DB"; + + # open connection (not using /bin/sh -c) + MySQLaccess::Debug::Print(2,"Connecting to: $connect"); + $pid=IPC::Open3::open3(\*MYSQL_Q,\*MYSQL_A,"",split /\s+/,$connect); + MySQLaccess::Debug::Print(2,"PID of open pipe: $pid"); + + # check connection + print MYSQL_Q "select 'ok';\n"; + $answer = ; #answer from mysql + MySQLaccess::Debug::Print(2,"Answer: $answer\n"); + foreach $nerror (sort(keys(%ACCESS_ERR))) { + MySQLaccess::Debug::Print(3,"check answer for error $ACCESS_ERR{$nerror}"); + if (grep(/$ACCESS_ERR{$nerror}/i,$answer)) { + MySQLaccess::Debug::Print(2,"Answer contain error [$nerror]"); + return $nerror; + } + } + +if (0) { + # check server-version + print MYSQL_Q "select 'ok';\n"; + $answer = ; #answer from mysql + MySQLaccess::Debug::Print(2,"Answer: $answer\n"); + foreach $nerror (sort(keys(%ACCESS_ERR))) { + MySQLaccess::Debug::Print(3,"check answer for error $ACCESS_ERR{$nerror}"); + if (grep(/$ACCESS_ERR{$nerror}/i,$answer)) { + MySQLaccess::Debug::Print(2,"Answer contain error [$nerror]"); + return $nerror; + } + } +} + + my $skip=; + return 0; +} + +# ====================================== +# sub CloseConnection +# Close the connection to the mysql-db +# ====================================== +sub CloseConnection { + close MYSQL_Q; + close MYSQL_A; +} + +# =========================================================== +# sub CreateTable($table) +# Create temporary/backup table +# =========================================================== +sub CreateTable { + my $pid; + my ($table,$force) = @_; + my %tables = ( $MySQLaccess::ACCESS_U_TMP => $MySQLaccess::ACCESS_U, + $MySQLaccess::ACCESS_H_TMP => $MySQLaccess::ACCESS_H, + $MySQLaccess::ACCESS_D_TMP => $MySQLaccess::ACCESS_D, + $MySQLaccess::ACCESS_U_BCK => $MySQLaccess::ACCESS_U, + $MySQLaccess::ACCESS_H_BCK => $MySQLaccess::ACCESS_H, + $MySQLaccess::ACCESS_D_BCK => $MySQLaccess::ACCESS_D, + $MySQLaccess::ACCESS_U => $MySQLaccess::ACCESS_U_BCK, + $MySQLaccess::ACCESS_H => $MySQLaccess::ACCESS_H_BCK, + $MySQLaccess::ACCESS_D => $MySQLaccess::ACCESS_D_BCK, + ); + my $tbl; + my $query=""; + my $delim; + my $skip; + my $create; + my @known_tables=(); + +# print STDERR "CreateTable($table)\n"; + MySQLaccess::Debug::Print(1,"CreateTable($table):"); + + ## error-handling + return 'Unknown_table' unless defined($tables{$table}); + + ## build list of known/existing tables; + ## if 'force' existing table is dropped first + if (defined($force) and $force) { + @known_tables = Show_Tables(); + if (grep(/^$table$/,@known_tables)) { + $query = "DROP TABLE $table;"; + } + } + + ## path to mysqldump executable + my $connect = $MySQLaccess::MYSQLDUMP; + $connect .= " --defaults-file=$MySQLaccess::MYSQL_CNF --no-data"; + # superuser, spassword transmitted via defaults-file + if (defined($MySQLaccess::Param{'rhost'})) { $connect .= " --host=$MySQLaccess::Param{'rhost'}"; } + $connect .= " $MySQLaccess::ACCESS_DB"; + $connect .= " $tables{$table}"; + + + ## get creation-data for original table + $create = ''; + my $mysqldump = $connect; + $mysqldump =~ s/ \$TABLE / $tbl /; + + # open connection (not using /bin/sh -c) + MySQLaccess::Debug::Print(2,"Connecting to: $connect"); + $pid=IPC::Open3::open3(\*DONTCARE,\*CREATE,"",split /\s+/,$mysqldump); + MySQLaccess::Debug::Print(2,"PID of open pipe: $pid"); + #open(CREATE,"$mysqldump"); + @create = ; + $create = "@create"; + foreach $nerror (sort(keys(%ACCESS_ERR))) { + MySQLaccess::Debug::Print(3,"check answer for error $ACCESS_ERR{$nerror}"); + if (grep(/$ACCESS_ERR{$nerror}/i,$create)) { + MySQLaccess::Debug::Print(2,"Answer contain error [$nerror]"); + return $nerror; + } + } + close(CREATE); + close(DONTCARE); + + ## manipulate result for creation-data for temporary table + $create =~ s/CREATE TABLE $tables{$table} \(/CREATE TABLE $table \(/; + + ## recreate temporary table + $query .= "$create\n"; + $query .= "select 'ok';"; + + ## execute query + print MYSQL_Q "$query\n"; +# print STDERR $query; + + $answer = ; #answer from mysql +# print STDERR "A>",$answer; + MySQLaccess::Debug::Print(2,"Answer: $answer\n"); + foreach $nerror (sort(keys(%ACCESS_ERR))) { +# print STDERR "->$nerror?"; + MySQLaccess::Debug::Print(3,"check answer for error $ACCESS_ERR{$nerror}"); + if (grep(/$ACCESS_ERR{$nerror}/i,$answer)) { +# print STDERR "Yes!"; + MySQLaccess::Debug::Print(2,"Answer contain error [$nerror]"); + return $nerror; + } + } + + $delim = ; # read header + if ($delim ne "ok\n") { + while (($line=) ne "ok\n") + { MySQLaccess::Debug::Print(3," A> $line"); } + $skip = ; # skip result 'ok' + } +# print STDERR "CreateTable done\n"; + return 0; +} + + +# =========================================================== +# sub CopyTable() +# Copy the structure and the data of a table to another table +# =========================================================== +sub CopyTable { + my ($from,$to,$force) = @_; + my @known_tables = Show_Tables(); + my $query = ""; + my $nerror= 0; + my $skip; + +# print STDERR "CopyTable($from,$to)\n"; + MySQLaccess::Debug::Print(1,"MySQLaccess::DB::CopyTable($from,$to)"); + + ## error-handling + if (!grep(/^$from$/,@known_tables)) { return 'Unknown_table'; } + + ## copy structure + ## if forced + if (defined($force) and $force) { + return $nerror if ($nerror=CreateTable($to,$force)); +# print STDERR "Structure copied\n"; + } + + ## copy data + $query .= "DELETE FROM $to;"; + $query .= "INSERT INTO $to SELECT * FROM $from;"; + $query .= "SELECT 'ok';\n"; + MySQLaccess::Debug::Print(2,"Query: $query"); + + ## execute query + print MYSQL_Q "$query\n"; +# print STDERR $query; + + ## check for errors... + my $answer = ; #answer from mysql +# print STDERR $answer; + MySQLaccess::Debug::Print(2,"Answer: $answer\n"); + foreach $nerror (sort(keys(%ACCESS_ERR))) { + MySQLaccess::Debug::Print(3,"check answer for error $ACCESS_ERR{$nerror}"); + if (grep(/$ACCESS_ERR{$nerror}/i,$answer)) { + MySQLaccess::Debug::Print(2,"Answer contain error [$nerror]"); + return $nerror; + } + } + + my $delim = ; # read header +# print STDERR $delim; + if ($delim ne "ok\n") { + while (($line=) ne "ok\n") + { MySQLaccess::Debug::Print(3," A> $line"); } + $skip = ; # skip result 'ok' + } + + return 0; +} + +# =========================================================== +# sub LoadTmpTables() +# (Re)load temporary tables with entries of ACL-tables +# =========================================================== +sub LoadTmpTables { + my %tables = ( $MySQLaccess::ACCESS_U => $MySQLaccess::ACCESS_U_TMP, + $MySQLaccess::ACCESS_H => $MySQLaccess::ACCESS_H_TMP, + $MySQLaccess::ACCESS_D => $MySQLaccess::ACCESS_D_TMP, + ); + my $tbl; + my $nerror; + +# print STDERR "LoadTmpTables:\n"; + MySQLaccess::Debug::Print(1,"LoadTmpTables():"); + foreach $tbl (keys(%tables)) { +# print STDERR "$tbl -> $tables{$tbl}\n"; + MySQLaccess::Debug::Print(2,"Loading table $tbl -> $tables{$tbl}."); + return $nerror if ($nerror=CopyTable($tbl,$tables{$tbl},'force')); + } + return 0; +} + +# =========================================================== +# sub BackupGrantTables() +# Make a backup of the original grant-tables +# =========================================================== +sub BackupGrantTables { + my %tables = ( $MySQLaccess::ACCESS_U => $MySQLaccess::ACCESS_U_BCK, + $MySQLaccess::ACCESS_H => $MySQLaccess::ACCESS_H_BCK, + $MySQLaccess::ACCESS_D => $MySQLaccess::ACCESS_D_BCK, + ); + my $tbl; + my $nerror; + +# print STDERR "BackupGrantTables:\n"; + MySQLaccess::Debug::Print(1,"BackupGrantTables():"); + foreach $tbl (keys(%tables)) { +# print STDERR "$tbl -> $tables{$tbl}\n"; + MySQLaccess::Debug::Print(2,"Backup table $tbl -> $tables{$tbl}."); + return $nerror if ($nerror=CopyTable($tbl,$tables{$tbl},'force')); + } + return 0; +} + +# =========================================================== +# sub RollbackGrantTables() +# Rollback the backup of the grant-tables +# =========================================================== +sub RollbackGrantTables { + my %tables = ( $MySQLaccess::ACCESS_U_BCK => $MySQLaccess::ACCESS_U, + $MySQLaccess::ACCESS_H_BCK => $MySQLaccess::ACCESS_H, + $MySQLaccess::ACCESS_D_BCK => $MySQLaccess::ACCESS_D, + ); + my $tbl; + my $nerror; + +# print STDERR "RollbackGrantTables:\n"; + MySQLaccess::Debug::Print(1,"RollbackGrantTables():"); + foreach $tbl (keys(%tables)) { +# print STDERR "$tbl -> $tables{$tbl}\n"; + MySQLaccess::Debug::Print(2,"Rollback table $tbl -> $tables{$tbl}."); + return $nerror if ($nerror=CopyTable($tbl,$tables{$tbl},'force')); + } + return 0; +} + + +# =========================================================== +# sub CommitGrantTables() +# Copy grant-rules from temporary tables to the ACL-tables +# =========================================================== +sub CommitGrantTables { + my %tables = ( $MySQLaccess::ACCESS_U => $MySQLaccess::ACCESS_U_TMP, + $MySQLaccess::ACCESS_H => $MySQLaccess::ACCESS_H_TMP, + $MySQLaccess::ACCESS_D => $MySQLaccess::ACCESS_D_TMP, + ); + my $tbl; + my $query; + my $delim; + my $skip; + my $create; + + print STDERR "CommitGrantTables()\n"; + MySQLaccess::Debug::Print(1,"CommitGrantTables():"); + + ## Make backup of original grant-tables + MySQLaccess::Debug::Print(2,"Making backup of original grant-tables..."); + BackupGrantTables(); + + ## Copy data from temporay tables to grant-tables + foreach $tbl (keys(%tables)) { + print STDERR "$tbl -> $tables{$tbl}\n"; + MySQLaccess::Debug::Print(2,"Loading data $tables{$tbl} -> $tbl."); + return $nerror if ($nerror=CopyTable($tables{$tbl},$tbl)); + } + return 0; +} + + +# =========================================================== +# sub Show_Fields($table): +# return (a reference to) a hash which holds the names +# of all relevant grant-fields, with their index in the record, +# and (a reference to) an array which holds the fieldnames. +# =========================================================== +sub Show_Fields { + my ($table) = @_; + my %skip = ('host' => [0,1] + ,'user' => [0,1,2] + ,'db' => [0,1,2] + ); + my %Struct = (); + my @Struct = (); + my $query = "show fields from $table;select 'ok';\n"; + my $i=0; + my $line; + +#print STDERR $query; + MySQLaccess::Debug::Print(1,"Show_Fields($table):"); + MySQLaccess::Debug::Print(2,"SQL: $query"); + + print MYSQL_Q "$query"; + my $skip = ; #skip header + while (($line=) ne "ok\n") + { +#print STDERR ">",$line; + chop($line); + MySQLaccess::Debug::Print(2," $table>: $line"); + my ($field,$type,$null,$key,$default,$extra) = split(' ',$line); + $field = ucfirst($field); + MySQLaccess::Debug::Print(3, " added column[$i]: $field ($Struct{$field})"); + } + else { + MySQLaccess::Debug::Print(3," ==> skipped column[$i], value=[$field]"); + } + $i++; + } + + $skip=; # Get ok row (found already ok header) + + MySQLaccess::Debug::Print(2, "Array:"); + foreach $field (@Struct) { MySQLaccess::Debug::Print(2,"+ $field"); } + MySQLaccess::Debug::Print(2,"Hash:"); + foreach $field (keys(%Struct)) { MySQLaccess::Debug::Print(2,"+ $field -> $Struct{$field}"); } + + return (\%Struct,\@Struct); +} + +# =========================================================== +# sub Show_Tables(): +# return (a reference to) an array which holds all +# known tables. +# =========================================================== +sub Show_Tables { + my @Tables = (); + my $query = "show tables;select 'ok';\n"; + my $i=0; + my $line; + + MySQLaccess::Debug::Print(1,"Show_Tables():"); + MySQLaccess::Debug::Print(2,"SQL: $query"); + + print MYSQL_Q "$query"; + my $skip = ; #skip header + while (($line=) ne "ok\n") + { + chop($line); + push(@Tables,$line); #array + MySQLaccess::Debug::Print(3," ==> added table: $line"); + } + + $skip=; # Get ok row (found already ok header) + + MySQLaccess::Debug::Print(2, "Array:"); + foreach $tbl (@Tables) { MySQLaccess::Debug::Print(2,"+ $tbl"); } + + return @Tables; +} + +# ====================================== +# sub Validate_Password($passwd,$host,$user,$encpw) +# Validate the given password +# for user '$user' +# connecting from host '$host' +# ====================================== +sub Validate_Password { + my ($password,$host,$user,$encpw) = @_; + my $valid=0; + + MySQLaccess::Debug::Print(1,"Validate_Password($password,$host,$user,$encpw)"); + my $sql = "select host,user,password from user having " + ."host='$host' and user='$user' and password='$encpw' " + ."and password=PASSWORD('$password');\n"; + $sql .= "select 'ok';\n"; + MySQLaccess::Debug::Print(2,"SQL = $sql"); + print MYSQL_Q "$sql"; + + # if password is valid, at least 1 row returns before we read 'ok' + while ( ($line=) ne "ok\n") { + MySQLaccess::Debug::Print(2," A> $line"); + $valid = defined($line); + } + my $skip = ; # read 'ok' + + return $valid; +} + + +# ========================================================== +# sub Sort_fields: (rewritten by psmith) +# Build the query for an ordered list of entries +# ========================================================== +sub Sort_fields { + my ($start, $end, $sofar, $this, @rest) = (@_); + my @where = ("((FIELD not like '\\%') AND (FIELD <> ''))", + "((FIELD like '%\\%%') OR (FIELD like '%\\_%'))", + "(FIELD = '')"); + my $res = ''; + + $this or return ("$start $sofar $end"); + + $sofar .= ' AND ' if $sofar; + + foreach $w (@where) { + my $f = $w; + $f =~ s/FIELD/$this/g; + + $res .= Sort_fields($start, $end, "$sofar$f", @rest); + } + + return ($res); +} + +# =========================================================== +# sub Sort_table: (rewritten by psmith) +# return all entries in the given table, +# in an ordered fashion +# =========================================================== +sub Sort_table { + my ($tbl, @order) = @_; + my @res=(); + + # as long as there's no full where clause (Distrib 3.20)... + # use having :-( + # NOTE: this clause WILL NOT work on 3.21, because of the + # order of 'ORDER BY' and 'HAVING' + my $start = "SELECT *,UCASE(host) as ucase_host FROM $tbl "; + $start .= 'ORDER BY ' . join(',', @order) ." HAVING "; + my $end = ";\n"; + + # server version 3.21 has a full where clause :-) + if ($MySQLaccess::Host::SERVER >= '3.21') { + # print "+++USING FULL WHERE CLAUSE+++\n"; + $start = "SELECT *,UCASE(host) as ucase_host FROM $tbl WHERE "; + $end = ' ORDER BY ' . join(',', @order) . ";\n"; + } + + MySQLaccess::Debug::Print(1,"Sort_table():"); + MySQLaccess::Debug::Print(2,"Sorting table $tbl by `@order'"); + + my $tmp; + foreach $tmp (@order) + { + $tmp="UCASE(host)" if ($tmp eq "ucase_host"); + } + my $query = Sort_fields($start, $end, '', @order); + $query .= "select 'ok';\n"; + MySQLaccess::Debug::Print(2,"Query: $query"); + + print MYSQL_Q "$query\n"; + + my $delim = ; # read header + MySQLaccess::Debug::Print(3," A> $delim"); + if ($delim ne "ok\n") { + if ($delim =~ /^ERROR/) { + push(@MySQLaccess::Grant::Error,'use_old_server'); + MySQLaccess::Report::Print_Error_Messages() ; + exit 1; + } + while (($line=) ne "ok\n") + { + MySQLaccess::Debug::Print(3," A> $line"); + push(@res,$line); + } + } + my $skip = ; # skip result 'ok' + + # remove columnheaders from output + @res = grep(!/^\Q$delim\E$/, @res); + # remove trailing \n from each returned record + chomp(@res); + # each record has 1 field to much : ucase_host + @res = grep { /(.*)\t.*$/; $_ = $1; } @res; + + MySQLaccess::Debug::Print(2,"Result of sorted table $tbl:"); + foreach $line (@res) { MySQLaccess::Debug::Print(2," >>$line"); } + return @res; +} + +# =========================================================== +# sub Get_All_db(template): +# return all db the grant-tables are working on, +# which conform to the template +# =========================================================== +sub Get_All_dbs { + my ($template,$tmp) = @_; + my @db=(); + my $aref; + + # working with temporary tables or production tables + if (defined($tmp) and $tmp) { + $aref = \@MySQLaccess::Grant::sorted_db_tmp_table ; + } + else { + $aref = \@MySQLaccess::Grant::sorted_db_table; + } + + MySQLaccess::Debug::Print(1," template=[$template]"); + + # get all db for which access-rights can be calculated, + # which conform to the template. + # !! these db's don't have to exist yet, so it's not + # enough to look which db already exist on the system + $reg_expr = $template; + if ($template =~ /[\*\?]/) { + $reg_expr =~ tr/*?/%_/; + #$reg_expr = MySQLaccess::Wildcards::Wild2Reg($template); + } + $reg_expr = MySQLaccess::Wildcards::SQL2Reg("$reg_expr"); + + if ( ! ($template =~ /[\*\?%_]/) ) { + push(@db,$template); + return \@db; + } + + MySQLaccess::Debug::Print(2,"#Reading db-table..."); + foreach $record (@{$aref}) { #MySQLaccess::Grant::sorted_db_table) { + my @record=split(/\t/,$record); + my $db = $record[1]; + MySQLaccess::Debug::Print(2,"> $db "); + if ( (!grep(/$db/i,@db)) and ($db =~/$reg_expr/i) ) { + push(@db,$db); + MySQLaccess::Debug::Print(2,"added"); + } + else { + MySQLaccess::Debug::Print(2,"skipped"); + } + } + # if no rule is found for a certain db in the db-table, + # the rights of the user are used, so we should inform + # the user for + if (!grep(/^%$/,@db)) { push(@db,"$MySQLaccess::NEW_DB"); } + return \@db; +} + +# =========================================================== +# sub Get_All_users(template): +# return all users the grant-tables are working on, +# which conform to the template +# =========================================================== +sub Get_All_users { + ($template,$tmp) = @_; # nog verder uitwerken!!! + my @user=(); + my $aref; + + # working with temporary tables or production tables + if (defined($tmp) and $tmp) { + $aref = \@MySQLaccess::Grant::sorted_user_tmp_table ; + } + else { + $aref = \@MySQLaccess::Grant::sorted_user_table; + } + + MySQLaccess::Debug::Print(1,"Debug Get_All_users:"); + # get all db for which access-rights can be calculated. + # !! these db's don't have to exist yet, so it's not + # enough to look which db already exist on the system + $reg_expr = $template; + if ($template =~ /[\*\?]/) { + $reg_expr =~ tr/*?/%_/; + #$reg_expr = MySQLaccess::Wildcards::Wild2Reg($template); + } + $reg_expr = MySQLaccess::Wildcards::SQL2Reg("$reg_expr"); + + if ( ! ($template =~ /[\*\?%_]/) ) { + push(@user,$template); + return \@user; + } + + MySQLaccess::Debug::Print(2,"#Reading user-table..."); + foreach $record (@{$aref}) { #MySQLaccess::Grant::sorted_user_table) { + my @record=split(/\t/,$record); + my $user = $record[1]; + MySQLaccess::Debug::Print(2,"> $user "); + if ( (!grep(/$user/,@user)) and ($user=~/$reg_expr/)) { + push(@user,$user); + MySQLaccess::Debug::Print(2, "added"); + } + else { + MySQLaccess::Debug::Print(2, "skipped"); + } + } + # Any user means also: + # - the 'empty' user, ie without supplying a username + # - any user still to be defined/created + #push(@user,''); #without_suplying_a_username + push(@user,"$MySQLaccess::NEW_USER"); + #push(@Warnings,'minimum_priv'); + return \@user; +} + +# =========================================================== +# sub Get_All_hosts(template): +# return all hosts the grant-tables are working on, +# which conform to the template +# =========================================================== +sub Get_All_hosts { + my ($template,$tmp) = @_; + my @host=(); + my $aref; + my $aref1; + + # working with temporary tables or production tables + if (defined($tmp) and $tmp) { + $aref = \@MySQLaccess::Grant::sorted_host_tmp_table ; + $aref1= \@MySQLaccess::Grant::sorted_db_tmp_table ; + } + else { + $aref = \@MySQLaccess::Grant::sorted_host_table; + $aref1= \@MySQLaccess::Grant::sorted_db_table ; + } + + MySQLaccess::Debug::Print(1, "Debug Get_All_hosts:"); + # get all db for which access-rights can be calculated. + # !! these db's don't have to exist yet, so it's not + # enough to look which db already exist on the system + $reg_expr = $template; + if ($template =~ /[\*\?]/) { + $reg_expr =~ tr/*?/%_/; + #$reg_expr = MySQLaccess::Wildcards::Wild2Reg($template); + } + $reg_expr = MySQLaccess::Wildcards::SQL2Reg("$reg_expr"); + + if ( ! ($template =~ /[\*\?%_]/) ) { + push(@host,$template); + return \@host; + } + + MySQLaccess::Debug::Print(1, "#Reading db-table..."); + foreach $record (@{$aref1}) { #MySQLaccess::Grant::sorted_db_table) { + my @record=split(/\t/,$record); + my $host = $record[0]; + MySQLaccess::Debug::Print(2, "> $host "); + if (! grep(/$host/i,@host)) { + push(@host,$host); + MySQLaccess::Debug::Print(2, "added"); + } + else { + MySQLaccess::Debug::Print(2, "skipped"); + } + } + MySQLaccess::Debug::Print(1, "#Reading host-table..."); + foreach $record (@{$aref}) { + my @record=split(/\t/,$record); + my $host = $record[0]; + MySQLaccess::Debug::Print(2, "> $host "); + if ( (!grep(/$host/,@host)) and ($host=~/$reg_expr/)) { + push(@host,$host); + MySQLaccess::Debug::Print(2, "added"); + } + else { + MySQLaccess::Debug::Print(2, "skipped"); + } + } + # DOUBT: + #print "#Reading user-table...\n" if ($DEBUG>1); + #foreach $record (@MySQLaccess::Grant::sorted_user_table) { + # my @record=split(/\t/,$record); + # my $host = $record[0]; + # print "> $host " if ($DEBUG>2); + # if ( (!grep(/$host/,@host)) and ($host=~/$reg_expr/)) { + # push(@host,$host); + # print "added\n" if ($DEBUG>2); + # } + # else { + # print "skipped\n" if ($DEBUG>2); + # } + #} + # Any host also means: + # - any host still to be defined/created + #push(@host,"any_other_host"); + + @host = sort(@host); + return \@host; +} + + +########################################################################## +package MySQLaccess::Grant; +############## +BEGIN { + $DEBUG = 0; + $DEBUG = $MySQLaccess::DEBUG unless ($DEBUG); +} + + + +# =========================================================== +# sub Diff_Privileges() +# Calculate diff between temporary and original grant-tables +# =========================================================== +sub Diff_Privileges { + my @before=(); + my @after =(); + my @diffs =(); + + # ----------------------------- + # Build list of users,dbs,hosts + # to process... + my @all_dbs = @{MySQLaccess::DB::Get_All_dbs('*')}; + my @all_users = @{MySQLaccess::DB::Get_All_users('*')}; + my @all_hosts = @{MySQLaccess::DB::Get_All_hosts('*')}; + #if EDIT-mode + my @all_dbs_tmp = @{MySQLaccess::DB::Get_All_dbs('*','tmp')}; + my @all_users_tmp = @{MySQLaccess::DB::Get_All_users('*','tmp')}; + my @all_hosts_tmp = @{MySQLaccess::DB::Get_All_hosts('*','tmp')}; + + + my %Access; + # ------------------------------------ + # Build list of priv. for grant-tables + foreach $host (@all_hosts) { + foreach $user (@all_users) { + foreach $db (@all_dbs) { + MySQLaccess::Grant::Initialize(); + %Access = MySQLaccess::Grant::Get_Access_Rights($host,$user,$db); + push(@before,MySQLaccess::Report::Raw_Report($host,$user,$db,\%Access)); + } + } + } + + # ---------------------------------- + # Build list of priv. for tmp-tables + foreach $host (@all_hosts_tmp) { + foreach $user (@all_users_tmp) { + foreach $db (@all_dbs_tmp) { + MySQLaccess::Grant::Initialize('tmp'); + %Access = MySQLaccess::Grant::Get_Access_Rights($host,$user,$db,'tmp'); + push(@after,MySQLaccess::Report::Raw_Report($host,$user,$db,\%Access)); + } + } + } + + # ---------------------------------- + # Write results to temp-file to make + # DIFF + @before = sort(@before); + @after = sort(@after); + + ($hb, $before) = tempfile("$MySQLaccess::script.XXXXXX") or + push(@MySQLaccess::Report::Errors,"Can't create temporary file: $!"); + ($ha, $after) = tempfile("$MySQLaccess::script.XXXXXX") or + push(@MySQLaccess::Report::Errors,"Can't create temporary file: $!"); + + print $hb join("\n",@before); + print $ha join("\n",@after); + close $hb; + close $ha; + + # ---------------------------------- + # compute difference + my $cmd="$MySQLaccess::DIFF $before $after |"; + open(DIFF,"$cmd"); + @diffs = ; + @diffs = grep(/[<>]/,@diffs); + chomp(@diffs); + close(DIFF); + + # ---------------------------------- + # cleanup temp. files + unlink($before); + unlink($after); + + return \@diffs; +} + +# =========================================================== +# sub Initialize() +# +# =========================================================== +sub Initialize { + %MySQLaccess::Grant::Access = %{Default_Access_Rights()}; + @MySQLaccess::Grant::Errors = (); + @MySQLaccess::Grant::Warnings = (); + @MySQLaccess::Grant::Notes = (); + # ----- + # rules + $MySQLaccess::Grant::Rules{'user'} = 'no_rule_found'; + $MySQLaccess::Grant::Rules{'db'} = 'no_rule_found'; + $MySQLaccess::Grant::Rules{'host'} = 'no_equiv_host'; + $MySQLaccess::Grant::full_access = 1; + + $MySQLaccess::Grant::process_host_table = 0; + return 1; +} + +# =========================================================== +# sub ReadTables() +# +# =========================================================== +sub ReadTables { + my ($tmp) = @_; + my ($HOST,$DB,$USER); + my @tables; + + # build list of available tables + @tables = MySQLaccess::DB::Show_Tables(); + + # reading production grant-tables or temporary tables? + $tmp = (defined($tmp) and $tmp) ? 1 : 0; + if ($tmp) { #reading temporary tables + $HOST=$MySQLaccess::ACCESS_H_TMP; + $DB =$MySQLaccess::ACCESS_D_TMP; + $USER=$MySQLaccess::ACCESS_U_TMP; + + # ---------------------------- + # do tables exist? + if (!grep(/$HOST/,@tables)) { MySQLaccess::DB::CreateTable($HOST); } + if (!grep(/$USER/,@tables)) { MySQLaccess::DB::CreateTable($USER); } + if (!grep(/$DB/,@tables)) { MySQLaccess::DB::CreateTable($DB); } + + MySQLaccess::Debug::Print(1,"Finding fields in tmp-ACL files:"); + # ----------------------------- + # Get record-layout + my ($h1,$h2) = MySQLaccess::DB::Show_Fields($HOST); + my ($d1,$d2) = MySQLaccess::DB::Show_Fields($DB); + my ($u1,$u2) = MySQLaccess::DB::Show_Fields($USER); + %MySQLaccess::Grant::H_tmp = %{$h1}; @MySQLaccess::Grant::H_tmp = @{$h2}; + %MySQLaccess::Grant::D_tmp = %{$d1}; @MySQLaccess::Grant::D_tmp = @{$d2}; + %MySQLaccess::Grant::U_tmp = %{$u1}; @MySQLaccess::Grant::U_tmp = @{$u2}; + +# @MySQLaccess::Grant::Privileges_tmp=@{Make_Privlist()}; +# + MySQLaccess::Debug::Print(1, "Reading sorted temp-tables:"); + @MySQLaccess::Grant::sorted_db_tmp_table = MySQLaccess::DB::Sort_table($DB, 'ucase_host', 'user', 'db'); + @MySQLaccess::Grant::sorted_host_tmp_table= MySQLaccess::DB::Sort_table($HOST, 'ucase_host', 'db'); + @MySQLaccess::Grant::sorted_user_tmp_table= defined($MySQLaccess::Param{'password'}) ? + MySQLaccess::DB::Sort_table($USER, 'ucase_host', 'user', 'password'): + MySQLaccess::DB::Sort_table($USER, 'ucase_host', 'user'); + } + else { #reading production grant-tables + $HOST=$MySQLaccess::ACCESS_H; + $DB =$MySQLaccess::ACCESS_D; + $USER=$MySQLaccess::ACCESS_U; + + MySQLaccess::Debug::Print(1,"Finding fields in ACL files:"); + # ----------------------------- + # Get record-layout + my ($h1,$h2) = MySQLaccess::DB::Show_Fields($HOST); + my ($d1,$d2) = MySQLaccess::DB::Show_Fields($DB); + my ($u1,$u2) = MySQLaccess::DB::Show_Fields($USER); + %MySQLaccess::Grant::H = %{$h1}; @MySQLaccess::Grant::H = @{$h2}; + %MySQLaccess::Grant::D = %{$d1}; @MySQLaccess::Grant::D = @{$d2}; + %MySQLaccess::Grant::U = %{$u1}; @MySQLaccess::Grant::U = @{$u2}; + + @MySQLaccess::Grant::Privileges=@{Make_Privlist()}; + + MySQLaccess::Debug::Print(1, "Reading sorted tables:"); + @MySQLaccess::Grant::sorted_db_table = MySQLaccess::DB::Sort_table($DB, 'ucase_host', 'user', 'db'); + @MySQLaccess::Grant::sorted_host_table= MySQLaccess::DB::Sort_table($HOST, 'ucase_host', 'db'); + @MySQLaccess::Grant::sorted_user_table= defined($MySQLaccess::Param{'password'}) ? + MySQLaccess::DB::Sort_table($USER, 'ucase_host', 'user', 'password'): + MySQLaccess::DB::Sort_table($USER, 'ucase_host', 'user'); + } + + return 0; +} + +# =========================================================== +# sub Get_Access_Rights(host,user,db) +# report the access_rights for the tuple ($host,$user,$db). +# =========================================================== +sub Get_Access_Rights { + local ($host,$user,$db,$tmp) = @_; + + my $aref_user; + my $aref_host; + my $aref_db; + # working with temporary tables or production tables + if (defined($tmp) and $tmp) { + $aref_user = \@MySQLaccess::Grant::sorted_user_tmp_table; + $aref_host = \@MySQLaccess::Grant::sorted_host_tmp_table; + $aref_db = \@MySQLaccess::Grant::sorted_db_tmp_table; + } + else { + $aref_user = \@MySQLaccess::Grant::sorted_user_table; + $aref_host = \@MySQLaccess::Grant::sorted_host_table; + $aref_db = \@MySQLaccess::Grant::sorted_db_table; + } + + + my ($refrecord,$refgrant); + my ($_host_,$_user_,$encpw_); + my %_Access_; + + MySQLaccess::Debug::Print(1, "for ($host,$user,$db):"); + + # ****************************************************************************** + # Create default access-rights + # default access-rights are no access at all!! + + + # ****************************************************************************** + # get hostname for IP-address + # get IP-address for hostname + local $host_name = MySQLaccess::Host::IP2Name($host); + local $host_ip = MySQLaccess::Host::Name2IP($host); + + MySQLaccess::Debug::Print(3,"host=$host, hostname=$host_name, host-ip =$host_ip"); + MySQLaccess::Debug::Print(3,"user=$user"); + MySQLaccess::Debug::Print(3,"db =$db"); + + # *********************************************************************** + # retrieve information on USER + # check all records in mysql::user for matches with the tuple (host,user) + # *********************************************************************** + # 4.OR (add) the privileges for the user from the "user" table. + # (add all privileges which is "Y" in "user") + ($refrecord,$refgrant) = Get_grant_from_user($host,$user,$aref_user); + ($_host_,$_user_,$encpw_) = @{$refrecord}; + %_access_ = %{$refgrant}; + + foreach $field (keys(%U)) { ##only priv. set in user-table + $MySQLaccess::Grant::Access{$field} = ($MySQLaccess::Grant::Access{$field} or $_access_{$field}); + } + + if ($_user_ eq $MySQLaccess::NEW_USER) { + push(@Warnings,'minimum_priv'); + } + if ($_user_ ne $user) { + $user=$_user_; + push(@Warnings,'anonymous_access'); + } + + # ******************************************************* + # Validate password if this has been asked to do + # ******************************************************* + if (defined($password)) { + $valid = Validate_Password($password,$_host_,$_user_,$_encpw_,$aref_user); + if (!$valid) { push(@Errors,'invalid_password'); } + else { push(@Notes,'valid_password'); } + } + + # ****************************************************************************** + # retrieve information on DB + # check all records in mysql::db for matches with the triple (host,db,user) + # first match is used. + # ****************************************************************************** + # 2.Get grant for user from the "db" table. + + ($refrecord,$refgrant)=Get_grant_from_db($host,$db,$user,$aref_db); #set process_host_table + ($_host_,$_user_,$encpw_) = @{$refrecord}; + %_access_ = %{$refgrant}; + + foreach $field (keys(%D)) { ##only priv. set in db-table + $MySQLaccess::Grant::Access{$field} = ($MySQLaccess::Grant::Access{$field} or $_access_{$field}); + } + + # *********************************************************************** + # retrieve information on HOST + # check all records in mysql::host for matches with the tuple (host,db) + # + # ' The host table is mainly to maintain a list of "secure" servers. ' + # *********************************************************************** + # 3.If hostname is "empty" for the found entry, AND the privileges with + # the privileges for the host in "host" table. + # (Remove all which is not "Y" in both) + + if ($MySQLaccess::Grant::process_host_table) { + ($refrecord,$refgrant)=Get_grant_from_host($host,$db,$aref_host); + ($_host_,$_user_,$encpw_) = @{$refrecord}; + %_access_ = %{$refgrant}; + + foreach $field (keys(%H)) { ##only priv. set in host-table + $MySQLaccess::Grant::Access{$field} = ($MySQLaccess::Grant::Access{$field} and $_access_{$field}); + } + } + + MySQLaccess::Debug::Print(1,"done for ($host,$user,$db)"); + return %MySQLaccess::Grant::Access; +} + +# #################################### +# FINDING THE RIGHT GRANT-RULE +# ========================================================== +# sub Get_grant_from_user: +# ========================================================== +sub Get_grant_from_user { + my ($host,$user,$aref) = @_; + + MySQLaccess::Debug::Print(1, ""); + MySQLaccess::Debug::Print(1, "(host=$host,user=$user)"); + + my %Access_user = %{Default_Access_Rights()}; + + my $rule_found=0; + my @record = (); + my $record; + + foreach $record (@{$aref}) { + $MySQLaccess::Grant::full_access=0; + MySQLaccess::Debug::Print(3, "Record= $record"); + @record=split(/\t/,$record); + + # check host and db + # with possible wildcards in field + # replace mysql-wildcards by reg-wildcards + my $host_tpl = MySQLaccess::Wildcards::SQL2Reg($record[0]); + my $user_tpl = $record[1]; #user field isn't pattern-matched!! + my $passwd = $record[2]; + + MySQLaccess::Debug::Print(3, "=>host_tpl : read=$record[0] -> converted=$host_tpl"); + MySQLaccess::Debug::Print(3, "=>user_tpl : read=$record[1] -> $user_tpl"); + MySQLaccess::Debug::Print(3, "=>password : read=$record[2] -> $passwd"); + + + if ( MySQLaccess::Host::MatchTemplate($host,$host_tpl) and + MySQLaccess::Wildcards::MatchTemplate($user_tpl,$user) + ) + { + MySQLaccess::Debug::Print(2, "FOUND!!"); + if ($passwd eq '') { push(@Warnings,'insecure_user'); } + else { push(@Notes,'password_required'); } + + foreach $field (keys(%U)) { + $Access_user{$field} = $MySQLaccess::Report::Answer{$record[$U{$field}]}; + } + #print "\n" if $DEBUG; + $MySQLaccess::Grant::Rules{'user'} = $record; + $rule_found=1; + last; + } + } + + # ------------------------------- + # setting privileges to user-priv + MySQLaccess::Debug::Print(2, "Rights after parsing user-table..:"); + if (! $rule_found ) { + @record=(); + MySQLaccess::Debug::Print(2, "NO record found in the user-table!!"); + } + else { + MySQLaccess::Debug::Print(2, "Selected record=@record"); + MySQLaccess::Debug::Print(2, "<=?=> $record"); + } + + MySQLaccess::Debug::Print(1, "returning @record"); + + return (\@record,\%Access_user); #matching record in user-table +} + +# ========================================================== +# sub Get_grant_from_db: +# ========================================================== +sub Get_grant_from_db { + my ($host,$db,$user,$aref) = @_; + + MySQLaccess::Debug::Print(1, "(host=$host,user=$user,db=$db)"); + + my %Access_db = %{Default_Access_Rights()}; + my $rule_found=0; + + foreach $record (@{$aref}) { + $full_access=0; + MySQLaccess::Debug::Print(2, "Read db: $record"); + @record=split(/\t/,$record); + + # check host and db + # with possible wildcards in field + # replace mysql-wildcards by reg-wildcards + my $host_tpl = MySQLaccess::Wildcards::SQL2Reg($record[0]); + my $db_tpl = MySQLaccess::Wildcards::SQL2Reg($record[1]); + my $user_tpl = $record[2]; #user field isn't pattern matched!! + MySQLaccess::Debug::Print(3, "=>host_tpl : read=$record[0] -> converted=$host_tpl"); + MySQLaccess::Debug::Print(3, "=>db_tpl : read=$record[1] -> $db_tpl"); + MySQLaccess::Debug::Print(3, "=>user_tpl : read=$record[2] -> $user_tpl"); + + if ( ( MySQLaccess::Host::Is_localhost($host_tpl) + or MySQLaccess::Wildcards::MatchTemplate($host_tpl,$host_name) + or MySQLaccess::Wildcards::MatchTemplate($host_tpl,$host_ip) ) + and ( MySQLaccess::Wildcards::MatchTemplate($db_tpl,$db) ) + and ( MySQLaccess::Wildcards::MatchTemplate($user_tpl,$user) ) ) { + + $MySQLaccess::Grant::process_host_table = ($record[0] eq ''); + + if ($user_tpl eq '') { push(@Warnings,'public_database'); } + + foreach $field (keys(%D)) { + $Access_db{$field} = $MySQLaccess::Report::Answer{$record[$D{$field}]}; + } + $rule_found=1; + $MySQLaccess::Grant::Rules{'db'} = $record; + last; + } + } + + # ------------------------------- + # setting privileges to db-priv + MySQLaccess::Debug::Print(2, "Rights after parsing db-table..:"); + if (! $rule_found ) { + MySQLaccess::Debug::Print(2, "NO rule found in db-table => no access granted!!"); + } + + return (\@record,\%Access_db); +} + +# ========================================================== +# sub Get_grant_from_host: +# ========================================================== +sub Get_grant_from_host { + my ($host,$db,$aref) = @_; + + MySQLaccess::Debug::Print(1, "Get_grant_from_host()"); + + my %Access_host = %{Default_Access_Rights()}; + + # the host-table doesn't have to be processed if the host-field + # in the db-table isn't empty + if (!$MySQLaccess::Grant::process_host_table) { + MySQLaccess::Debug::Print(2, ">> Host-table doesn't have to be processed!!"); + $MySQLaccess::Grant::Rules{'host'} = 'no_equiv_host'; + return ([],\%Access_host); + } + + my $rule_found=0; + my @record = (); + + foreach $record (@{$aref}) { + $full_access=0; + MySQLaccess::Debug::Print(2, "host: $record"); + @record=split(/\t/,$record); + + # check host and db + # with possible wildcards in field + # replace mysql-wildcards by reg-wildcards + my $host_tpl = MySQLaccess::Wildcards::SQL2Reg($record[0]); + my $db_tpl = MySQLaccess::Wildcards::SQL2Reg($record[1]); + MySQLaccess::Debug::Print(3, "=>host_tpl : $record[0] -> $host_tpl"); + MySQLaccess::Debug::Print(3, "=>db_tpl : $record[1] -> $db_tpl"); + + if ( ( MySQLaccess::Host::Is_localhost($host_tpl) + or MySQLaccess::Wildcards::MatchTemplate($host_tpl,$host_name) + or MySQLaccess::Wildcards::MatchTemplate($host_tpl,$host_ip) ) + and ( MySQLaccess::Wildcards::MatchTemplate($db_tpl,$db) ) ) { + + $MySQLaccess::Grant::Rules{'host'} = $record; + $rule_found=1; + foreach $field (keys(%H)) { + $Access_host{$field} = $MySQLaccess::Report::Answer{$record[$H{$field}]}; + } + last; + } + } + + # ------------------------------- + # setting privileges to host-priv + MySQLaccess::Debug::Print(2, "Rights after parsing host-table..:"); + if (! $rule_found ) { + @record=(); + MySQLaccess::Debug::Print(2, "NO restrictions found in the host-table!!"); + } + + # -------------------------------- + # debugging access-rights in db + + return (\@record,\%Access_host); #matching record in host-table +} + + + +# =========================================================== +# sub Default_Access_Rights(): +# return (a reference to) a hash which holds all default +# priviliges currently defined in the grant-tables. +# =========================================================== +sub Default_Access_Rights { + my %right = (); + + MySQLaccess::Debug::Print(2, "Debug Default_Access_Rights():"); + # add entry for all fields in the HOST-table + foreach $field (keys(%MySQLaccess::Grant::H)) { + $right{$field}='0' unless (defined($right{$field})); + } + # add entry for all fields in the DB-table + foreach $field (keys(%MySQLaccess::Grant::D)) { + $right{$field}='0' unless (defined($right{$field})); + } + # add entry for all fields in the USER-table + foreach $field (keys(%MySQLaccess::Grant::U)) { + $right{$field}='0' unless (defined($right{$field})); + } + # -------------- + # debugging info + foreach $field (keys(%right)) { MySQLaccess::Debug::Print(3, sprintf("> %15s : %1s",$field,$right{$field})); } + + return \%right; +} + +# ====================================== +# sub Make_Privlist +# Make an ordered list of the privileges +# that should be reported +# ====================================== +sub Make_Privlist { + # layout: + #'select_priv', 'create_priv', + #'insert_priv', 'drop_priv', + #'update_priv', 'reload_priv', + #'delete_priv', 'process_priv', + #'file_priv', 'shutdown_priv'); + my $right; + my @privlist=(); + foreach $right (@U) { + if (! grep(/$right/,@privlist)) { push(@privlist,$right); } + }; + foreach $right (@D) { + if (! grep(/$right/,@privlist)) { push(@privlist,$right); } + }; + foreach $right (@H) { + if (! grep(/$right/,@privlist)) { push(@privlist,$right); } + }; +# print "Privileges:\n"; +# foreach $field (@privlist) { print " > $field\n"; } + return \@privlist; +} + + + +######################################################################## +package MySQLaccess::Report; +use Exporter (); +@EXPORT = qw(&Print_Header()); +BEGIN { + $FORM = $ENV{'SCRIPT_NAME'}; + $DEBUG = 0; + $DEBUG = $MySQLaccess::DEBUG unless ($DEBUG); + + # translation-table for poss. answers + %Answer = ('Y' => 1 , 'N' => 0 + , 1 => 'Y', 0 => 'N' + ,'?' => '?', '' => '?' + ); + $headers = 0; + $separator = 0; + +# **************************** +# Notes and warnings +%MESSAGES = ( + 'insecure_user' + => "Everybody can access your DB as user `\$user' from host `\$host'\n" + ."WITHOUT supplying a password.\n" + ."Be very careful about it!!" + ,'password_required' + => "A password is required for user `\$user' :-(" + ,'invalid_password' + => "The password '\$password' for user `\$user' is invalid :-P" + , 'valid_password' + => "You supplied the right password for user `\$user' :-)" + ,'public_database' + => "Any user with the appropriate permissions has access to your DB!\n" + ."Check your users!" + ,'full_access' + => "All grant-tables are empty, which gives full access to ALL users !!" + ,'no_rule_found' + => "No matching rule" + ,'no_equiv_host' + => "Not processed: host-field is not empty in db-table." + ,'least_priv' + => "If the final priveliges of the user are more then you gave the user,\n" + ."check the priveliges in the db-table `\$db'." + ,'minimum_priv' + => "The privileges for any new user are AT LEAST\n" + ."the ones shown in the table above,\n" + ."since these are the privileges of the db `\$db'.\n" + ,'not_found_mysql' + => "The MySQL client program <$MySQLaccess::MYSQL> could not be found.\n" + ."+ Check your path, or\n" + ."+ edit the source of this script to point \$MYSQL to the mysql client.\n" + ,'not_found_mysqldump' + => "The MySQL dump program <$MySQLaccess::MYSQLDUMP> could not be found.\n" + ."+ Check your path, or\n" + ."+ edit the source of this script to point \$MYSQLDUMP to the mysqldump program.\n" + ,'not_found_diff' + => "The diff program <$MySQLaccess::DIFF> could not be found.\n" + ."+ Check your path, or\n" + ."+ edit the source of this script to point \$DIFF to the diff program.\n" + ,'Unrecognized_option' + => "Sorry,\n" + ."You are using an old version of the mysql-program,\n" + ."which does not yet implement a neccessary option.\n" + ."\n" + ."You need at least Version 6.2 of the mysql-client,\n" + ."which was build in MySQL v3.0.18, to use this version\n" + ."of `$MySQLaccess::script'." + ,'Access_denied' + => "Sorry,\n" + ."An error occured when trying to connect to the database\n" + ."with the grant-tables:\n" + ."* Maybe YOU do not have READ-access to this database?\n" + ."* If you used the -U option, you may have supplied an invalid username?\n" + ." for the superuser?\n" + ."* If you used the -U option, it may be possible you have to supply\n" + ." a superuser-password to, with the -P option?\n" + ."* If you used the -P option, you may have supplied an invalid password?\n" + ,'Dbaccess_denied' + => "Sorry,\n" + ."An error occured when trying to connect to the database\n" + ."with the grant-tables. (dbaccess denied)\n" + ,'Unknown_tmp_table' + => "Sorry,\n" + ."An error occured when trying to work with the temporary tables in the database\n" + ."with the grant-tables. (One of the temporary tables does not exist)\n" + ,'Unknown_table' + => "Sorry,\n" + ."An error occured when trying to work with some tables in the database\n" + ."with the grant-tables. (table does not exist)\n" + ,'use_old_server' + => "Sorry,\n" + ."An error occured when executing an SQL statement.\n" + ."You might consider altering the use of the parameter `--old_server' when \n" + ."calling `$MySQLaccess::script'." + ,'unknown_error' + => "Sorry,\n" + ."An error occured when trying to connect to the database\n" + ."with the grant-tables. (unknown error)\n" + ,'anonymous_access' + => "Accessing the db as an anonymous user.\n" + ."Your username has no relevance\n" + ,'user_required' + => "You have to supply a userid." + ,'db_required' + => "You have to supply the name of a database." + ,'host_required' + => "You have to supply the name of a host." + ); + + +} +# ===================================== +# sub Print_Header: +# print header info +# ===================================== +sub Print_Header { + if ($MySQLaccess::CMD) { #command-line mode + print "$MySQLaccess::script Version $MySQLaccess::VERSION\n" + ."By RUG-AIV, by Yves Carlier (Yves.Carlier\@rug.ac.be)\n" + ."Changes by Steve Harvey (sgh\@vex.net)\n" + ."This software comes with ABSOLUTELY NO WARRANTY.\n"; + } + if ($MySQLaccess::CGI) { #CGI-BIN mode + print "content-type: text/html\n\n" + . "\n" + ."\n" + ."MySQLaccess\n" + ."\n" + ."\n" + ."

$MySQLaccess::script Version $MySQLaccess::VERSION

\n" + ."
\n
\n" + ."By RUG-AIV, by Yves Carlier (Yves.Carlier\@rug.ac.be)
\n" + ."Changes by Steve Harvey (sgh\@vex.net)
\n" + ."This software comes with ABSOLUTELY NO WARRANTY.
\n" + ."
\n
\n" + ."
\n"; + Print_Taskbar(); + print "
\n"; + } + return 1; +} + +# ===================================== +# sub Print_Footer: +# print footer info +# ===================================== +sub Print_Footer { + if ($MySQLaccess::CMD) { #command-line mode + print "\n" + ."BUGs can be reported at https://mariadb.atlassian.net/browse/MDEV\n"; + } + if ($MySQLaccess::CGI) { #CGI-BIN mode + if ($MySQLaccess::Param{'brief'}) { + print "\n"; #close table in brief-output + } + print "
\n" + ."
\n" + ."BUGs can be reported at MariaDB JIRA
\n" +# ."Don't forget to mention the version $VERSION!
\n" + ."
\n" + ."\n" + ."\n"; + } + return 1; +} + +# ===================================== +# sub Print_Taskbar: +# print taskbar on STDOUT +# ===================================== +sub Print_Taskbar { + print "
\n" + ."[Release Notes] \n" + ."[Version] \n" + ."[Future Plans] \n" + ."[Examples] \n" + ."[New check] \n" + ."[Change/edit ACL] \n" + ."
\n"; + return 1; +} + +# ===================================== +# sub Print_Form: +# print CGI-form +# ===================================== +sub Print_Form { +print < + +
+ + + + + + + + + + + + + + + + +
MySQL serverUser informationReports
+ + + + + + + + + + + + + +
Host
(Host on which MySQL-server resides.)
Superuser
(User which has read-access to grant-tables.)
Password
(of Superuser.)
+
+ + + + + + + + + + + + + + + + + +
User
(Userid used to connect to MySQL-database.)
Password
(Password user has to give to get access to MySQL-database.)
Database
(Name of MySQL-database user tries to connect to.
Wildcards (*,?,%,_) are allowed.)
Host
(Host from where the user is trying to connect to MySQL-database.
Wildcards (*,?,%,_) are allowed.)
+
+ + + + + + + + + + +

+
+
+
+ + + + +EOForm + return 1; +} + +# ===================================== +# sub Print_Usage: +# print some information on STDOUT +# ===================================== +sub Print_Usage { + Print_Error_Messages(); + if ($MySQLaccess::CMD) { #command-line mode + Print_Options(); + } + if ($MySQLaccess::CGI) { #CGI-BIN mode + Print_Form(); + } + return 1; +} + +# ====================================== +# sub Print_Version: +# ====================================== +sub Print_Version { + if ($MySQLaccess::CMD) { + print $MySQLaccess::INFO; + } + if ($MySQLaccess::CGI) { + print "
\n"; 
+       print $MySQLaccess::INFO;
+       print "
\n"; + } + return 1; +} + +# ====================================== +# sub Print_Relnotes: +# ====================================== +sub Print_Relnotes { + if ($MySQLaccess::CMD) { + print $MySQLaccess::RELEASE; + } + if ($MySQLaccess::CGI) { + print "
\n";
+       print $MySQLaccess::RELEASE;
+       print "
\n"; + } + return 1; +} + +# ====================================== +# sub Print_Plans: +# ====================================== +sub Print_Plans { + if ($MySQLaccess::CMD) { + print $MySQLaccess::TODO; + } + if ($MySQLaccess::CGI) { + print "
\n";
+       print $MySQLaccess::TODO;
+       print "
\n"; + } + return 1; +} + +# ====================================== +# sub Print_HowTo: +# ====================================== +sub Print_HowTo { + if ($MySQLaccess::CMD) { + print $MySQLaccess::HOWTO; + } + if ($MySQLaccess::CGI) { + print "
\n"; 
+       print $MySQLaccess::HOWTO;
+       print "
\n"; + } + return 1; +} + +# ====================================== +# sub Print_Options: +# ====================================== +sub Print_Options { + if ($MySQLaccess::CGI) { print "
\n"; }
+    print $MySQLaccess::OPTIONS;
+    if ($MySQLaccess::CGI) { print "
\n"; } + return 1; +} + +# ====================================== +# sub Print_Error_Access: +# ====================================== +sub Print_Error_Access { + my ($error) = @_; + print "\n"; + if ($MySQLaccess::CGI) { print "\n
\n"; }
+    print $MESSAGES{$error};
+    if ($MySQLaccess::CGI) { print "
\n
\n"; } + print "\n"; + return 1; +} + +# ====================================== +# sub Print_Error_Messages: +# ====================================== +sub Print_Error_Messages { +# my ($error) = @_; + print "\n"; + if ($MySQLaccess::CGI) { print "\n
\n"; } + foreach $error (@MySQLaccess::Grant::Error) { + print $MESSAGES{$error}; + print $MySQLaccess::CGI ? "
\n" : "\n"; + } + if ($MySQLaccess::CGI) { print "
\n
\n"; } + print "\n"; + return 1; +} + +# ====================================== +# sub Print_Message: +# ====================================== +sub Print_Message { + my ($aref) = @_; + my @messages = @{$aref}; + print "\n"; + if ($MySQLaccess::CGI) { print "\n
\n"; } + foreach $msg (@messages) { + print $msg; + print $MySQLaccess::CGI ? "
\n" : "\n"; + } + if ($MySQLaccess::CGI) { print "
\n
\n"; } + print "\n"; + return 1; +} + +# ====================================== +# sub Print_Edit: +# ====================================== +sub Print_Edit { + print "\n"; + if (!$MySQLaccess::CGI) { + print "Note: Editing the temporary tables is NOT supported in CMD-line mode!\n"; + return 0; + } + print "
\n" + ."
\n" + ."\n" + ."\n" + ." \n" + ." \n" + ."\n" + ."\n" + ." \n" + ."\n" + ."\n" + ." \n" + ."\n" + ."\n" + ." \n" + ."\n" + ."\n" + ." \n" + ."\n" + ."\n" + ." \n" + ."\n" + ."
Copy grant-rules to temporary tables
Edit temporary tables with external application:
" + ." $MySQLaccess::MYSQLADMIN
Preview changes made in temporary tables
Make changes permanent
Restore previous grand-rules
You need write,delete and drop-privileges to perform the above actions
\n" + ."
\n" + ."
\n"; + + return 1; +} + + +# ====================================== +# sub Print_Access_rights: +# print the access-rights on STDOUT +# ====================================== +sub Print_Access_rights { + my ($host,$user,$db,$refhash) = @_; + + if (defined($MySQLaccess::Param{'brief'})) { +# if ($MySQLaccess::CGI) { print "
\n"; }
+       Matrix_Report($host,$user,$db,$refhash);  
+#       if ($MySQLaccess::CGI) { print "
\n"; } + } + else { + Tabular_Report($host,$user,$db,$refhash); + $MySQLaccess::Report::separator = $MySQLaccess::CGI ? "
" : "-"x80; + } + return 1; +} + +# ====================================== +# sub Print_Diff_ACL: +# print the diff. in the grants before and after +# ====================================== +sub Print_Diff_ACL { + my ($aref) = @_; + my @diffs = @{$aref}; + my %block = ( '<' => 'Before', + '>' => 'After', + ); + my %color = ( '<' => 'Green', + '>' => 'Red', + ); + my $curblock = ''; + + # ----------------------------- + # create column-headers + foreach $field (@MySQLaccess::Grant::Privileges) { + push(@headers,substr($field,0,4)); + } + + if ($MySQLaccess::CMD) { + print "\n"; + print "Differences in access-rights BEFORE and AFTER changes in grant-tables\n"; +# print "---------------------------------------------------------------------\n"; + my $line1=""; + my $line2=""; + $line1 .= sprintf("| %-30s|",'Host,User,DB'); + $line2 .= sprintf("+-%-30s+",'-' x 30); + foreach $header (@headers) { + $line1 .= sprintf("%-4s|",$header); + $line2 .= sprintf("%s+",'----'); + } + print "$line2\n"; + print "$line1\n"; + print "$line2\n"; + + $format = "format STDOUT = \n" + . "^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< " . " @|||" x 10 ."\n" + . '$host_user_db,@priv' . "\n" + . ".\n"; +#print $format; + eval $format; + } + if ($MySQLaccess::CGI) { + print "\n"; + print "\n"; + print ""; + print "\n"; + print "\n"; + $line1 .= sprintf("",'Host, User, DB'); + foreach $header (@headers) { + $line1 .= sprintf("",$header); + } + print "$line1\n"; + } + + foreach $line (@diffs) { + $type = substr($line,0,1); + $line = substr($line,1); + ($host,$user,$db,@priv) = split(/,/,$line); + if ($MySQLaccess::CMD) { + if ($type ne $curblock) { + $curblock = $type; + print $block{$curblock},":\n"; + } + #print "$line\n"; + write; + } + if ($MySQLaccess::CGI) { + if ($type ne $curblock) { + $curblock = $type; + print "\n"; + } + $line1=""; + foreach $field (@priv) { + $line1 .= sprintf("",$field); + } + print "$line1\n"; + } + } + print "\n"; + if ($MySQLaccess::CMD) { + print "---------------------------------------------------------------------\n"; + } + if ($MySQLaccess::CGI) { + print "
"; + print "Differences in access-rights BEFORE " + ."and '}>AFTER changes to grant-tables\n"; + print "
%-20s%-4s
$block{$curblock}
$host, $user, $db%-4s

"; + } + + + return 1; +} + +# ====================================== +# sub Tabular_Report +# Tabular report, +# suitable for 1 triple (host,db,user) +# ====================================== +sub Tabular_Report { + my ($host,$user,$db,$a) = @_; + my $column=2; + + # ----------------------------- + # separator + if ($MySQLaccess::Report::separator) { print "$MySQLaccess::Report::separator\n"; } + + # ----------------------------- + # print table of access-rights + my $rows = int(@MySQLaccess::Grant::Privileges/2); #round up + my @table=(); + $j=0; + for $i (0 .. $rows-1) { + $table[$j]=$MySQLaccess::Grant::Privileges[$i]; + $j = $j+2; + } + $j=1; + for $i ($rows .. $#MySQLaccess::Grant::Privileges) { + $table[$j]=$MySQLaccess::Grant::Privileges[$i]; + $j = $j+2; + } + if ($MySQLaccess::CMD) { + print "\n"; + print "Access-rights\n"; + print "for USER '$user', from HOST '$host', to DB '$db'\n"; + } + if ($MySQLaccess::CGI) { + print "\n"; + print "\n"; + } + if ($MySQLaccess::CGI) { + print ""; + print "\n"; + print "\n"; + } + if ($MySQLaccess::CMD) { + print "\t+-----------------+---+\t+-----------------+---+"; + } + foreach $field (@table) { + if ($MySQLaccess::CMD) { + if ($column==2) { print "\n\t"; $column=1;} + else { print "\t"; $column=2;} + printf "| %-15s | %s |",$field,$Answer{$a->{$field}}; + } + if ($MySQLaccess::CGI) { + if ($column==2) { print "\n\n"; $column=1;} + else { print ""; $column=2;} + printf " \n",$field,$Answer{$a->{$field}}; + } + } + print "\n"; + if ($MySQLaccess::CMD) { + print "\t+-----------------+---+\t+-----------------+---+\n"; + } + if ($MySQLaccess::CGI) { + print "\n
"; + print "Access-rights\n"; + print "for USER '$user', from HOST '$host', to DB '$db'\n"; + print "
%-15s%s

"; + } + + # --------------- + # print notes: + foreach $note (@MySQLaccess::Grant::Notes) { + my $message = $MESSAGES{$note}; + $message =~ s/\$user/$user/g; + $message =~ s/\$db/$db/g; + $message =~ s/\$host/$host/g; + $message =~ s/\$password/$password/g; + $PREFIX='NOTE'; + if ($MySQLaccess::CMD) { + my @lines = split(/\n/,$message); + foreach $line (@lines) { + print "$PREFIX:\t $line\n"; + $PREFIX=' '; + } + } + if ($MySQLaccess::CGI) { + print "$PREFIX: $message
\n"; + } + } + + # --------------- + # print warnings: + foreach $warning (@MySQLaccess::Grant::Warnings) { + my $message = $MESSAGES{$warning}; + $message =~ s/\$user/$user/g; + $message =~ s/\$db/$db/g; + $message =~ s/\$host/$host/g; + $message =~ s/\$password/$password/g; + $PREFIX='BEWARE'; + if ($MySQLaccess::CMD) { + my @lines = split(/\n/,$message); + foreach $line (@lines) { + print "$PREFIX:\t $line\n"; + $PREFIX=' '; + } + } + if ($MySQLaccess::CGI) { + print "$PREFIX: $message
\n"; + } + } + + # --------------- + # print errors: + foreach $error (@MySQLaccess::Grant::Errors) { + my $message = $MESSAGES{$error}; + $message =~ s/\$user/$user/g; + $message =~ s/\$db/$db/g; + $message =~ s/\$host/$host/g; + $message =~ s/\$password/$password/g; + $PREFIX='ERROR'; + if ($MySQLaccess::CMD) { + my @lines = split(/\n/,$message); + foreach $line (@lines) { + print "$PREFIX:\t $line\n"; + $PREFIX=' '; + } + } + if ($MySQLaccess::CGI) { + print "$PREFIX: $message
\n"; + } + } + + # --------------- + # inform if there are no rules ==> full access for everyone. + if ($MySQLaccess::Grant::full_access) { print "$MESSAGES{'full_access'}\n"; } + + # --------------- + # print the rules used + print "\n"; + if ($MySQLaccess::CMD) { + print "The following rules are used:\n"; + foreach $field (sort(keys(%MySQLaccess::Grant::Rules))) { + my $rule = (defined($MESSAGES{$MySQLaccess::Grant::Rules{$field}}) ? $MESSAGES{$MySQLaccess::Grant::Rules{$field}} : $MySQLaccess::Grant::Rules{$field}); + $rule =~ s/\t/','/g; + printf " %-5s : '%s'\n",$field,$rule; + } + } + if ($MySQLaccess::CGI) { + print "
\n"; + print "\n"; + print "\n"; + foreach $field (sort(keys(%MySQLaccess::Grant::Rules))) { + my $rule = (defined($MESSAGES{$MySQLaccess::Grant::Rules{$field}}) ? $MESSAGES{$MySQLaccess::Grant::Rules{$field}} : $MySQLaccess::Grant::Rules{$field}); + $rule =~ s/\t/','/g; + printf "\n",$field,$rule; + } + print "
The following rules are used:
%-5s'%s'
\n"; + } + + return 1; +} + +# ====================================== +# sub Matrix_Report: +# single-line output foreach triple, +# no notes,warnings,... +# ====================================== +sub Matrix_Report { + my ($host,$user,$db,$a) = @_; + my @headers = (); + + if (! $headers) { + # ----------------------------- + # create column-headers + foreach $field (@MySQLaccess::Grant::Privileges) { + push(@headers,substr($field,0,4)); + } + + # ----------------------------- + # print column-headers + print "\n"; + if ($MySQLaccess::CMD) { + my $line1=""; + my $line2=""; + foreach $header (@headers) { + $line1 .= sprintf("%-4s ",$header); + $line2 .= sprintf("%s ",'----'); + } + $line1 .= sprintf("| %-20s",'Host,User,DB'); + $line2 .= sprintf("+ %-20s",'-' x 20); + print "$line1\n"; + print "$line2\n"; + } + if ($MySQLaccess::CGI) { + print "\n"; + my $line1=""; + foreach $header (@headers) { + $line1 .= sprintf("",$header); + } + $line1 .= sprintf("",'Host, User, DB'); + print "$line1\n"; + } + + # ---------------------------- + # column-headers should only be + # printed once. + $MySQLaccess::Report::headers=1; + } + + # ------------------------ + # print access-information + if ($MySQLaccess::CMD) { + foreach $field (@MySQLaccess::Grant::Privileges) { + printf " %-2s ",$Answer{$a->{$field}}; + } + printf "| %-20s",join(',',$host,$user,$db); + print "\n"; + } + if ($MySQLaccess::CGI) { + print ""; + foreach $field (@MySQLaccess::Grant::Privileges) { + printf "",$Answer{$a->{$field}}; + } + printf "",join(', ',$host,$user,$db); + print "\n"; + } + + return 1; +} + + +# ====================================== +# sub Raw_Report: +# single-line output foreach triple, +# no notes,warnings,... +# ====================================== +sub Raw_Report { + my ($host,$user,$db,$a) = @_; + my @headers = (); + my $string = ""; + + # ------------------------ + # print access-information + $string = "$host,$user,$db,"; + foreach $field (@MySQLaccess::Grant::Privileges) { + $string .= $Answer{$a->{$field}} . ","; + } + return $string; +} + + +####################################################################### +package MySQLaccess::Wildcards; +BEGIN { + $DEBUG = 0; + $DEBUG = $MySQLaccess::DEBUG unless ($DEBUG); +} +# ############################################ +# SQL, WILDCARDS and REGULAR EXPRESSIONS +# ============================================ +# translage SQL-expressions to Reg-expressions +# ============================================ +sub SQL2Reg { + my ($expr) = @_; + my $expr_o = $expr; + $expr =~ s/\./\\./g; + $expr =~ s/\\%/\002/g; + $expr =~ s/%/.*/g; + $expr =~ s/\002/%/g; + $expr =~ s/\\_/\002/g; + $expr =~ s/_/.+/g; + $expr =~ s/\002/_/g; + MySQLaccess::Debug::Print(2,"$expr_o --> $expr"); + return $expr; +} + +# translage WILDcards to Reg-expressions +# ============================================ +sub Wild2Reg { + my ($expr) = @_; + my $expr_o = $expr; + $expr =~ s/\./\\./g; + $expr =~ s/\\\*/\002/g; + $expr =~ s/\*/.*/g; + $expr =~ s/\002/*/g; + $expr =~ s/\\\?/\002/g; + $expr =~ s/\?/.+/g; + $expr =~ s/\002/?/g; + MySQLaccess::Debug::Print(2,"$expr_o --> $expr"); + return $expr; +} + +# ============================================= +# match a given string with a template +# ============================================= +sub MatchTemplate { + my ($tpl,$string) = @_; + my $match=0; + if ($string=~ /^$tpl$/ or $tpl eq '') { $match=1; } + else { $match=0;} + MySQLaccess::Debug::Print(2,"($tpl,$string) --> $match"); + return $match; +} + +####################################################################### +package MySQLaccess::Host; +BEGIN { + $localhost = undef; + $DEBUG = 2; + $DEBUG = $MySQLaccess::DEBUG unless ($DEBUG); +} +# ====================================== +# sub IP2Name +# return the Name with the corr. IP-nmbr +# (no aliases yet!!) +# ====================================== +sub IP2Name { + my ($ip) = @_; + my $ip_o = $ip; + if ($ip !~ /([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/o) { + MySQLaccess::Debug::Print(3,"'$ip' is not an ip-number, returning IP=$ip"); + return $ip; + } + MySQLaccess::Debug::Print(4,"IP=$ip split up => $1.$2.$3.$4"); + $ip = pack "C4",$1,$2,$3,$4; + MySQLaccess::Debug::Print(4,"IP packed -> >>$ip<<\n"); + my ($name,$aliases,$addrtype,$length,@addrs) = gethostbyaddr($ip, AF_INET); + MySQLaccess::Debug::Print(3,"IP=$ip_o => hostname=$name"); + MySQLaccess::Debug::Print(4,"aliases=$aliases"); + MySQLaccess::Debug::Print(4,"addrtype=$addrtype - length=$length"); + return ($name || $ip); + #return ($name || undef); +} + +# ====================================== +# sub Name2IP +# return the IP-number of the host +# ====================================== +sub Name2IP { + my ($name) = @_; + if ($name =~ /[%_]/) { + MySQLaccess::Debug::Print(3,"'$name' contains SQL-wildcards, returning name=$name"); + return $name; + } + my ($_name,$aliases,$addrtype,$length,@addrs) = gethostbyname($name); + my ($a,$b,$c,$d) = unpack('C4',$addrs[0]); + my $ip = "$a.$b.$c.$d"; + MySQLaccess::Debug::Print(3,"hostname=$name => IP=$ip"); + MySQLaccess::Debug::Print(4,"aliases=$aliases"); + MySQLaccess::Debug::Print(4,"addrtype=$addrtype - length=$length"); + #if ($ip ne "") { return "$ip"; } + #else { return undef; } + return ($ip || $name); +} + +# ======================================== +# sub LocalHost +# some special action has to be taken for +# the localhost +# ======================================== +sub LocalHost { + if (!defined($MySQLaccess::Host::localhost)) { + $MySQLaccess::Host::localhost = Sys::Hostname::hostname(); + MySQLaccess::Debug::Print(3,"Setting package variable \$localhost=$MySQLaccess::Host::localhost"); + } + my $host = $localhost; + MySQLaccess::Debug::Print(3,"localhost = $host"); + return $host; +} + +# ======================================== +# check if the given hostname (or ip) +# corresponds with the localhost +# ======================================== +sub Is_localhost { + my ($host_tpl) = @_; + my $isit = 0; + if (($MySQLaccess::host_name eq $localhost) or ($MySQLaccess::host_ip eq $local_ip)) { + MySQLaccess::Debug::Print(2,"Checking for localhost"); + MySQLaccess::Debug::Print(3,"because ($MySQLaccess::host_name EQ $localhost) AND ($MySQLaccess::host_ip EQ $local_ip)"); + $isit = ( 'localhost' =~ /$host_tpl/ ) ? 1 : 0; + MySQLaccess::Debug::Print(3," 'localhost' =?= $host_tpl -> $isit"); + return $isit; + } + else { + MySQLaccess::Debug::Print(4,"Not checking for localhost"); + MySQLaccess::Debug::Print(4,"because ($MySQLaccess::host_name != $localhost) AND ($MySQLaccess::host_ip != $local_ip)"); + return 0; + } +} + + +# ========================================= +# check if host (IP or name) can be matched +# on the template. +# ========================================= +sub MatchTemplate { + my ($host,$tpl) = @_; + my $match = 0; + + MySQLaccess::Debug::Print(1, "($host) =?= ($tpl)"); + + my $host_name = IP2Name($host); + my $host_ip = Name2IP($host); + + MySQLaccess::Debug::Print(2, "name=$host_name ; ip=$host_ip"); + $match = (MySQLaccess::Wildcards::MatchTemplate($tpl,$host_name) or + MySQLaccess::Wildcards::MatchTemplate($tpl,$host_ip)); + + MySQLaccess::Debug::Print(2, "($host_name,$host_ip) =?= ($tpl): $ncount"); + + return $match; +} + +######################################################################## +package MySQLaccess::Debug; +BEGIN { + my $dbg_file = "$MySQLaccess::script_log"; + open(DEBUG,"> $dbg_file") or warn "Could not open outputfile $dbg_file for debugging-info\n"; + select DEBUG; + $| = 1; + select STDOUT; +} +# ========================================= +# Print debugging information on STDERR +# ========================================= +sub Print { + my ($level,$mesg) = @_; + my ($pack,$file,$line,$subname,$hasargs,$wantarray) = caller(1); + my ($PACK) = split('::',$subname); + my $DEBUG = ${$PACK."::DEBUG"} ? ${$PACK."::DEBUG"} : $MySQLaccess::DEBUG ; + my ($sec,$min,$hour) = localtime(); + print DEBUG "[$hour:$min:$sec $subname] $mesg\n" if ($DEBUG>=$level); +} + diff --git a/database/bin/mysqladmin b/database/bin/mysqladmin new file mode 100755 index 0000000..5200d75 Binary files /dev/null and b/database/bin/mysqladmin differ diff --git a/database/bin/mysqlbinlog b/database/bin/mysqlbinlog new file mode 100755 index 0000000..2de728b Binary files /dev/null and b/database/bin/mysqlbinlog differ diff --git a/database/bin/mysqlbug b/database/bin/mysqlbug new file mode 100755 index 0000000..7c58d5a --- /dev/null +++ b/database/bin/mysqlbug @@ -0,0 +1,408 @@ +#!/bin/sh +# Copyright (C) 2000-2002, 2004 MySQL AB +# Use is subject to license terms +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA + +# Create a bug report and mail it to the mysql mailing list +# Based on glibc bug reporting script. + +echo "Finding system information for a MySQL bug report" + +VERSION="5.5.68" +COMPILATION_COMMENT="MariaDB Server" +BUGmysql="maria-developers@lists.launchpad.net" +# This is set by configure +COMP_CALL_INFO="CC='/usr/local/bin/cc' CFLAGS='' CXX='/usr/local/bin/c++' CXXFLAGS='' LDFLAGS='' ASFLAGS=''" +COMP_RUN_INFO="CC='/usr/local/bin/cc' CFLAGS='' CXX='/usr/local/bin/c++' CXXFLAGS='' LDFLAGS='' ASFLAGS=''" +CONFIGURE_LINE="" + +LIBC_INFO="" +for pat in /lib/libc.* /lib/libc-* /usr/lib/libc.* /usr/lib/libc-* +do + TMP=`ls -l $pat 2>/dev/null` + if test $? = 0 + then + LIBC_INFO="$LIBC_INFO +$TMP" + fi +done + +PATH=../client:$PATH:/bin:/usr/bin:/usr/local/bin +export PATH + +BUGADDR=${1-$BUGmysql} +ENVIRONMENT=`uname -a` + +: ${USER=${LOGNAME-`whoami`}} + +COMMAND=`echo $0|sed 's%.*/\([^/]*\)%\1%'` + +# Try to create a secure tmpfile +umask 077 +TEMPDIR=/tmp/mysqlbug-$$ +mkdir $TEMPDIR || (echo "can not create directory in /tmp, aborting"; exit 1;) +TEMP=${TEMPDIR}/mysqlbug + +trap 'rm -f $TEMP $TEMP.x; rmdir $TEMPDIR; exit 1' 1 2 3 13 15 +trap 'rm -f $TEMP $TEMP.x; rmdir $TEMPDIR' 0 + +# How to read the passwd database. +PASSWD="cat /etc/passwd" + +if test -f /usr/lib/sendmail +then + MAIL_AGENT="/usr/lib/sendmail -oi -t" +elif test -f /usr/sbin/sendmail +then + MAIL_AGENT="/usr/sbin/sendmail -oi -t" +else + MAIL_AGENT="rmail $BUGmysql" +fi + +# Figure out how to echo a string without a trailing newline +N=`echo 'hi there\c'` +case "$N" in + *c) ECHON1='echo -n' ECHON2= ;; + *) ECHON1=echo ECHON2='\c' ;; +esac + +# Find out the name of the originator of this PR. +if test -n "$NAME" +then + ORIGINATOR="$NAME" +elif test -f $HOME/.fullname +then + ORIGINATOR="`sed -e '1q' $HOME/.fullname`" +else + # Must use temp file due to incompatibilities in quoting behavior + # and to protect shell metacharacters in the expansion of $LOGNAME + $PASSWD | grep "^$LOGNAME:" | awk -F: '{print $5}' | sed -e 's/,.*//' > $TEMP + ORIGINATOR="`cat $TEMP`" + rm -f $TEMP +fi + +if test -n "$ORGANIZATION" +then + if test -f "$ORGANIZATION" + then + ORGANIZATION="`cat $ORGANIZATION`" + fi +else + if test -f $HOME/.organization + then + ORGANIZATION="`cat $HOME/.organization`" + elif test -f $HOME/.signature + then + ORGANIZATION=`sed -e "s/^/ /" $HOME/.signature; echo ">"` + fi +fi + +PATH_DIRS=`echo $PATH | sed -e 's/^:/. /' -e 's/:$/ ./' -e 's/::/ . /g' -e 's/:/ /g' ` + +which_1 () +{ + for cmd + do + # Absolute path ?. + if expr "x$cmd" : "x/" > /dev/null + then + echo "$cmd" + exit 0 + else + for d in $PATH_DIRS + do + file="$d/$cmd" + if test -x "$file" -a ! -d "$file" + then + echo "$file" + exit 0 + fi + done + fi + done + exit 1 +} + +change_editor () +{ + echo "You can change editor by setting the environment variable VISUAL." + echo "If your shell is a bourne shell (sh) do" + echo "VISUAL=your_editors_name; export VISUAL" + echo "If your shell is a C shell (csh) do" + echo "setenv VISUAL your_editors_name" +} + +# If they don't have a preferred editor set, then use emacs +if test -z "$VISUAL" +then + if test -z "$EDITOR" + then + # Honor debian sensible-editor + if test -x "/usr/bin/sensible-editor" + then + EDIT=/usr/bin/sensible-editor + else + EDIT=emacs + fi + else + EDIT="$EDITOR" + fi +else + EDIT="$VISUAL" +fi + +#which_1 $EDIT +used_editor=`which_1 $EDIT` + +echo "test -x $used_editor" +if test -x "$used_editor" +then + echo "Using editor $used_editor"; + change_editor + sleep 2 +else + echo "Could not find a text editor. (tried $EDIT)" + change_editor + exit 1 +fi + +# Find out some information. +SYSTEM=`( test -f /bin/uname && /bin/uname -a ) || \ + ( test -f /usr/bin/uname && /usr/bin/uname -a ) || echo ""` +ARCH=`test -f /bin/arch && /bin/arch` +MACHINE=`test -f /bin/machine && /bin/machine` +FILE_PATHS= + +for cmd in perl make gmake gcc cc +do + file=`which_1 $cmd` + if test $? = 0 + then + if test $cmd = "gcc" + then + GCC_INFO=`$file -v 2>&1` + elif test $cmd = "perl" + then + PERL_INFO=`$file -v | grep -i version 2>&1` + fi + FILE_PATHS="$FILE_PATHS $file" + fi +done + +admin=`which_1 mysqladmin` +MYSQL_SERVER= +if test -x "$admin" +then + MYSQL_SERVER=`$admin version 2> /dev/null` + if test "$?" = "1" + then + MYSQL_SERVER="" + fi +fi + +SUBJECT_C="[50 character or so descriptive subject here (for reference)]" +ORGANIZATION_C='' +LICENCE_C='[none | licence | email support | extended email support ]' +SYNOPSIS_C='' +SEVERITY_C='<[ non-critical | serious | critical ] (one line)>' +PRIORITY_C='<[ low | medium | high ] (one line)>' +CLASS_C='<[ sw-bug | doc-bug | change-request | support ] (one line)>' +RELEASE_C='' +ENVIRONMENT_C='' +DESCRIPTION_C='' +HOW_TO_REPEAT_C='' +FIX_C='' + + +cat > $TEMP <'). +SEND-PR: +From: ${USER} +To: ${BUGADDR} +Subject: $SUBJECT_C + +>Description: + $DESCRIPTION_C +>How-To-Repeat: + $HOW_TO_REPEAT_C +>Fix: + $FIX_C + +>Submitter-Id: +>Originator: ${ORIGINATOR} +>Organization: +${ORGANIZATION- $ORGANIZATION_C} +>MySQL support: $LICENCE_C +>Synopsis: $SYNOPSIS_C +>Severity: $SEVERITY_C +>Priority: $PRIORITY_C +>Category: mysql +>Class: $CLASS_C +>Release: mysql-${VERSION} ($COMPILATION_COMMENT) +`test -n "$MYSQL_SERVER" && echo ">Server: $MYSQL_SERVER"` +>C compiler: cc (GCC) 4.8.5 + +>C++ compiler: c++ (GCC) 4.8.5 + +>Environment: + $ENVIRONMENT_C +`test -n "$SYSTEM" && echo "System: $SYSTEM"` +`test -n "$ARCH" && echo "Architecture: $ARCH"` +`test -n "$MACHINE" && echo "Machine: $MACHINE"` +`test -n "$FILE_PATHS" && echo "Some paths: $FILE_PATHS"` +`test -n "$GCC_INFO" && echo "GCC: $GCC_INFO"` +`test -n "$COMP_CALL_INFO" && echo "Compilation info (call): $COMP_CALL_INFO"` +`test -n "$COMP_RUN_INFO" && echo "Compilation info (used): $COMP_RUN_INFO"` +`test -n "$LIBC_INFO" && echo "LIBC: $LIBC_INFO"` +`test -n "$CONFIGURE_LINE" && echo "Configure command: $CONFIGURE_LINE"` +`test -n "$PERL_INFO" && echo "Perl: $PERL_INFO"` +EOF + +chmod u+w $TEMP +cp $TEMP $TEMP.x + +eval $EDIT $TEMP + +if cmp -s $TEMP $TEMP.x +then + echo "File not changed, no bug report submitted." + mv -f $TEMP /tmp/failed-mysql-bugreport + echo "The raw bug report exists in /tmp/failed-mysql-bugreport" + echo "If you use this remember that the first lines of the report are now a lie.." + exit 1 +fi + +# +# Check the enumeration fields + +# This is a "sed-subroutine" with one keyword parameter +# (with workaround for Sun sed bug) +# +SED_CMD=' +/$PATTERN/{ +s||| +s|<.*>|| +s|^[ ]*|| +s|[ ]*$|| +p +q +}' + + +while :; do + CNT=0 + + # + # 1) Severity + # + PATTERN=">Severity:" + SEVERITY=`eval sed -n -e "\"$SED_CMD\"" $TEMP` + case "$SEVERITY" in + ""|non-critical|serious|critical) CNT=`expr $CNT + 1` ;; + *) echo "$COMMAND: \`$SEVERITY' is not a valid value for \`Severity'." + esac + # + # 2) Priority + # + PATTERN=">Priority:" + PRIORITY=`eval sed -n -e "\"$SED_CMD\"" $TEMP` + case "$PRIORITY" in + ""|low|medium|high) CNT=`expr $CNT + 1` ;; + *) echo "$COMMAND: \`$PRIORITY' is not a valid value for \`Priority'." + esac + # + # 3) Class + # + PATTERN=">Class:" + CLASS=`eval sed -n -e "\"$SED_CMD\"" $TEMP` + case "$CLASS" in + ""|sw-bug|doc-bug|change-request|support) CNT=`expr $CNT + 1` ;; + *) echo "$COMMAND: \`$CLASS' is not a valid value for \`Class'." + esac + + # + # 4) Synopsis + # + VALUE=`grep "^>Synopsis:" $TEMP | sed 's/>Synopsis:[ ]*//'` + case "$VALUE" in + "$SYNOPSIS_C") echo "$COMMAND: \`$VALUE' is not a valid value for \`Synopsis'." ;; + *) CNT=`expr $CNT + 1` + esac + + test $CNT -lt 4 && + echo "Errors were found with the problem report." + + + # Check if subject of mail was changed, if not, use Synopsis field + # + subject=`grep "^Subject" $TEMP| sed 's/^Subject:[ ]*//'` + if [ X"$subject" = X"$SUBJECT_C" -o X"$subject" = X"$SYNOPSIS_C" ]; then + subject=`grep Synopsis $TEMP | sed 's/>Synopsis:[ ]*//'` + sed "s/^Subject:[ ]*.*/Subject: $subject/" $TEMP > $TEMP.tmp + mv -f $TEMP.tmp $TEMP + fi + + while :; do + $ECHON1 "a)bort, e)dit or s)end? $ECHON2" + read input + case "$input" in + a*) + echo "$COMMAND: problem report saved in $HOME/dead.mysqlbug." + cat $TEMP >> $HOME/dead.mysqlbug + xs=1; exit + ;; + e*) + eval $EDIT $TEMP + continue 2 + ;; + s*) + break 2 + ;; + esac + done +done +# +# Remove comments and send the problem report +# (we have to use patterns, where the comment contains regex chars) +# +# /^>Originator:/s;$ORIGINATOR;; +sed -e " +/^SEND-PR:/d +/^>Organization:/,/^>[A-Za-z-]*:/s;$ORGANIZATION_C;; +/^>Confidential:/s;<.*>;; +/^>Synopsis:/s;$SYNOPSIS_C;; +/^>Severity:/s;<.*>;; +/^>Priority:/s;<.*>;; +/^>Class:/s;<.*>;; +/^>Release:/,/^>[A-Za-z-]*:/s;$RELEASE_C;; +/^>Environment:/,/^>[A-Za-z-]*:/s;$ENVIRONMENT_C;; +/^>Description:/,/^>[A-Za-z-]*:/s;$DESCRIPTION_C;; +/^>How-To-Repeat:/,/^>[A-Za-z-]*:/s;$HOW_TO_REPEAT_C;; +/^>Fix:/,/^>[A-Za-z-]*:/s;$FIX_C;; +" $TEMP > $TEMP.x + +if $MAIL_AGENT < $TEMP.x +then + echo "$COMMAND: problem report sent" + xs=0; exit +else + echo "$COMMAND: mysterious mail failure, report not sent." + echo "$COMMAND: problem report saved in $HOME/dead.mysqlbug." + cat $TEMP >> $HOME/dead.mysqlbug +fi + +exit 0 diff --git a/database/bin/mysqlcheck b/database/bin/mysqlcheck new file mode 100755 index 0000000..e2516f5 Binary files /dev/null and b/database/bin/mysqlcheck differ diff --git a/database/bin/mysqld b/database/bin/mysqld new file mode 100755 index 0000000..cda6e03 Binary files /dev/null and b/database/bin/mysqld differ diff --git a/database/bin/mysqld_multi b/database/bin/mysqld_multi new file mode 100755 index 0000000..c045c31 --- /dev/null +++ b/database/bin/mysqld_multi @@ -0,0 +1,837 @@ +#!/usr/bin/perl + +# Copyright (c) 2000, 2017, Oracle and/or its affiliates. +# Copyright (c) 2010, 2017, MariaDB Corporation +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Library General Public +# License as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Library General Public License for more details. +# +# You should have received a copy of the GNU Library General Public +# License along with this library; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1335 USA + +use Getopt::Long; +use POSIX qw(strftime getcwd); + +$|=1; +$VER="2.16"; + +my @defaults_options; # Leading --no-defaults, --defaults-file, etc. + +$opt_example = 0; +$opt_help = 0; +$opt_log = undef(); +$opt_mysqladmin = "/usr/local/mysql/bin/mysqladmin"; +$opt_mysqld = "./bin/mysqld"; +$opt_no_log = 0; +$opt_password = undef(); +$opt_tcp_ip = 0; +$opt_user = "root"; +$opt_version = 0; +$opt_silent = 0; +$opt_verbose = 0; + +my $my_print_defaults_exists= 1; +my $logdir= undef(); + +my ($mysqld, $mysqladmin, $groupids, $homedir, $my_progname); + +$homedir = $ENV{HOME}; +$my_progname = $0; +$my_progname =~ s/.*[\/]//; + + +if (defined($ENV{UMASK})) { + my $UMASK = $ENV{UMASK}; + my $m; + my $fmode = "0640"; + + if(($UMASK =~ m/[^0246]/) || ($UMASK =~ m/^[^0]/) || (length($UMASK) != 4)) { + printf("UMASK must be a 3-digit mode with an additional leading 0 to indicate octal.\n"); + printf("The first digit will be corrected to 6, the others may be 0, 2, 4, or 6.\n"); } + else { + $fmode= substr $UMASK, 2, 2; + $fmode= "06${fmode}"; } + + if($fmode != $UMASK) { + printf("UMASK corrected from $UMASK to $fmode ...\n"); } + + $fmode= oct($fmode); + + umask($fmode); +} + + +main(); + +#### +#### main sub routine +#### + +sub main +{ + my $flag_exit= 0; + + if (!defined(my_which(my_print_defaults))) + { + # We can't throw out yet, since --version, --help, or --example may + # have been given + print "WARNING: my_print_defaults command not found.\n"; + print "Please make sure you have this command available and\n"; + print "in your path. The command is available from the latest\n"; + print "MySQL distribution.\n"; + $my_print_defaults_exists= 0; + } + + # Remove leading defaults options from @ARGV + while (@ARGV > 0) + { + last unless $ARGV[0] =~ + /^--(?:no-defaults$|(?:defaults-file|defaults-extra-file)=)/; + push @defaults_options, (shift @ARGV); + } + + foreach (@defaults_options) + { + $_ = quote_shell_word($_); + } + + # Add [mysqld_multi] options to front of @ARGV, ready for GetOptions() + unshift @ARGV, defaults_for_group('mysqld_multi'); + + # We've already handled --no-defaults, --defaults-file, etc. + if (!GetOptions("help", "example", "version", "mysqld=s", "mysqladmin=s", + "user=s", "password=s", "log=s", "no-log", + "tcp-ip", "silent", "verbose")) + { + $flag_exit= 1; + } + usage() if ($opt_help); + + if ($opt_verbose && $opt_silent) + { + print "Both --verbose and --silent have been given. Some of the warnings "; + print "will be disabled\nand some will be enabled.\n\n"; + } + + $groupids = $ARGV[1]; + if ($opt_version) + { + print "$my_progname version $VER by Jani Tolonen\n"; + exit(0); + } + example() if ($opt_example); + if ($flag_exit) + { + print "Error with an option, see $my_progname --help for more info.\n"; + exit(1); + } + if (!defined(my_which(my_print_defaults))) + { + print "ABORT: Can't find command 'my_print_defaults'.\n"; + print "This command is available from the latest MySQL\n"; + print "distribution. Please make sure you have the command\n"; + print "in your PATH.\n"; + exit(1); + } + usage() if (!defined($ARGV[0]) || + (!($ARGV[0] =~ m/^start$/i) && + !($ARGV[0] =~ m/^stop$/i) && + !($ARGV[0] =~ m/^report$/i))); + + init_log() if (!defined($opt_log)); + if (!$opt_no_log) + { + w2log("$my_progname log file version $VER; run: ", + "$opt_log", 1, 0); + } + else + { + print "$my_progname log file version $VER; run: "; + print strftime "%a %b %e %H:%M:%S %Y", localtime; + print "\n"; + } + if ($ARGV[0] =~ m/^start$/i) + { + if (!defined(($mysqld= my_which($opt_mysqld))) && $opt_verbose) + { + print "WARNING: Couldn't find the default mysqld binary.\n"; + print "Tried: $opt_mysqld\n"; + print "This is OK, if you are using option \"mysqld=...\" in "; + print "groups [mysqldN] separately for each.\n\n"; + } + start_mysqlds(); + } + else + { + if (!defined(($mysqladmin= my_which($opt_mysqladmin))) && $opt_verbose) + { + print "WARNING: Couldn't find the default mysqladmin binary.\n"; + print "Tried: $opt_mysqladmin\n"; + print "This is OK, if you are using option \"mysqladmin=...\" in "; + print "groups [mysqldN] separately for each.\n\n"; + } + if ($ARGV[0] =~ m/^report$/i) + { + report_mysqlds(); + } + else + { + stop_mysqlds(); + } + } +} + +# +# Quote word for shell +# + +sub quote_shell_word +{ + my ($option)= @_; + + $option =~ s!([^\w=./-])!\\$1!g; + return $option; +} + +sub defaults_for_group +{ + my ($group) = @_; + + return () unless $my_print_defaults_exists; + + my $com= join ' ', 'my_print_defaults', @defaults_options, $group; + my @defaults = `$com`; + chomp @defaults; + return @defaults; +} + +#### +#### Init log file. Check for appropriate place for log file, in the following +#### order: my_print_defaults mysqld datadir, /usr/local/mysql/share +#### + +sub init_log +{ + foreach my $opt (defaults_for_group('--mysqld')) + { + if ($opt =~ m/^--datadir=(.*)/ && -d "$1" && -w "$1") + { + $logdir= $1; + } + } + if (!defined($logdir)) + { + $logdir= "/usr/local/mysql/share" if (-d "/usr/local/mysql/share" && -w "/usr/local/mysql/share"); + } + if (!defined($logdir)) + { + # Log file was not specified and we could not log to a standard place, + # so log file be disabled for now. + if (!$opt_silent) + { + print "WARNING: Log file disabled. Maybe directory or file isn't writable?\n"; + } + $opt_no_log= 1; + } + else + { + $opt_log= "$logdir/mysqld_multi.log"; + } +} + +#### +#### Report living and not running MySQL servers +#### + +sub report_mysqlds +{ + my (@groups, $com, $i, @options, $pec); + + print "Reporting MySQL servers\n"; + if (!$opt_no_log) + { + w2log("\nReporting MySQL servers","$opt_log",0,0); + } + @groups = &find_groups($groupids); + for ($i = 0; defined($groups[$i]); $i++) + { + $com= get_mysqladmin_options($i, @groups); + $com.= " ping >> /dev/null 2>&1"; + system($com); + $pec = $? >> 8; + if ($pec) + { + print "MySQL server from group: $groups[$i] is not running\n"; + if (!$opt_no_log) + { + w2log("MySQL server from group: $groups[$i] is not running", + "$opt_log", 0, 0); + } + } + else + { + print "MySQL server from group: $groups[$i] is running\n"; + if (!$opt_no_log) + { + w2log("MySQL server from group: $groups[$i] is running", + "$opt_log", 0, 0); + } + } + } + if (!$i) + { + print "No groups to be reported (check your GNRs)\n"; + if (!$opt_no_log) + { + w2log("No groups to be reported (check your GNRs)", "$opt_log", 0, 0); + } + } +} + +#### +#### start multiple servers +#### + +sub start_mysqlds() +{ + my (@groups, $com, $tmp, $i, @options, $j, $mysqld_found, $info_sent); + + if (!$opt_no_log) + { + w2log("\nStarting MySQL servers\n","$opt_log",0,0); + } + else + { + print "\nStarting MySQL servers\n"; + } + @groups = &find_groups($groupids); + for ($i = 0; defined($groups[$i]); $i++) + { + @options = defaults_for_group($groups[$i]); + + $basedir_found= 0; # The default + $mysqld_found= 1; # The default + $mysqld_found= 0 if (!length($mysqld)); + $com= "$mysqld"; + for ($j = 0, $tmp= ""; defined($options[$j]); $j++) + { + if ("--mysqladmin=" eq substr($options[$j], 0, 13)) + { + # catch this and ignore + } + elsif ("--mysqld=" eq substr($options[$j], 0, 9)) + { + $options[$j]=~ s/\-\-mysqld\=//; + $com= $options[$j]; + $mysqld_found= 1; + } + elsif ("--basedir=" eq substr($options[$j], 0, 10)) + { + $basedir= $options[$j]; + $basedir =~ s/^--basedir=//; + $basedir_found= 1; + $options[$j]= quote_shell_word($options[$j]); + $tmp.= " $options[$j]"; + } + else + { + $options[$j]= quote_shell_word($options[$j]); + $tmp.= " $options[$j]"; + } + } + if ($opt_verbose && $com =~ m/\/(safe_mysqld|mysqld_safe)$/ && !$info_sent) + { + print "WARNING: $1 is being used to start mysqld. In this case you "; + print "may need to pass\n\"ledir=...\" under groups [mysqldN] to "; + print "$1 in order to find the actual mysqld binary.\n"; + print "ledir (library executable directory) should be the path to the "; + print "wanted mysqld binary.\n\n"; + $info_sent= 1; + } + $com.= $tmp; + $com.= " >> $opt_log 2>&1" if (!$opt_no_log); + $com.= " &"; + if (!$mysqld_found) + { + print "\n"; + print "FATAL ERROR: Tried to start mysqld under group [$groups[$i]], "; + print "but no mysqld binary was found.\n"; + print "Please add \"mysqld=...\" in group [mysqld_multi], or add it to "; + print "group [$groups[$i]] separately.\n"; + exit(1); + } + if ($basedir_found) + { + $curdir=getcwd(); + chdir($basedir) or die "Can't change to datadir $basedir"; + } + system($com); + if ($basedir_found) + { + chdir($curdir) or die "Can't change back to original dir $curdir"; + } + } + if (!$i && !$opt_no_log) + { + w2log("No MySQL servers to be started (check your GNRs)", + "$opt_log", 0, 0); + } +} + +#### +#### stop multiple servers +#### + +sub stop_mysqlds() +{ + my (@groups, $com, $i, @options); + + if (!$opt_no_log) + { + w2log("\nStopping MySQL servers\n","$opt_log",0,0); + } + else + { + print "\nStopping MySQL servers\n"; + } + @groups = &find_groups($groupids); + for ($i = 0; defined($groups[$i]); $i++) + { + $com= get_mysqladmin_options($i, @groups); + $com.= " shutdown"; + $com.= " >> $opt_log 2>&1" if (!$opt_no_log); + $com.= " &"; + system($com); + } + if (!$i && !$opt_no_log) + { + w2log("No MySQL servers to be stopped (check your GNRs)", + "$opt_log", 0, 0); + } +} + +#### +#### Sub function for mysqladmin option parsing +#### + +sub get_mysqladmin_options +{ + my ($i, @groups)= @_; + my ($mysqladmin_found, $com, $tmp, $j); + + @options = defaults_for_group($groups[$i]); + + $mysqladmin_found= 1; # The default + $mysqladmin_found= 0 if (!length($mysqladmin)); + $com = "$mysqladmin"; + $tmp = " -u $opt_user"; + if (defined($opt_password)) { + my $pw= $opt_password; + # Protect single quotes in password + $pw =~ s/'/'"'"'/g; + $tmp.= " -p'$pw'"; + } + $tmp.= $opt_tcp_ip ? " -h 127.0.0.1" : ""; + for ($j = 0; defined($options[$j]); $j++) + { + if ("--mysqladmin=" eq substr($options[$j], 0, 13)) + { + $options[$j]=~ s/\-\-mysqladmin\=//; + $com= $options[$j]; + $mysqladmin_found= 1; + } + elsif ((($options[$j] =~ m/^(\-\-socket\=)(.*)$/) && !$opt_tcp_ip) || + ($options[$j] =~ m/^(\-\-port\=)(.*)$/)) + { + $tmp.= " $options[$j]"; + } + } + if (!$mysqladmin_found) + { + print "\n"; + print "FATAL ERROR: Tried to use mysqladmin in group [$groups[$i]], "; + print "but no mysqladmin binary was found.\n"; + print "Please add \"mysqladmin=...\" in group [mysqld_multi], or "; + print "in group [$groups[$i]].\n"; + exit(1); + } + $com.= $tmp; + return $com; +} + +# Return a list of option files which can be opened. Similar, but not +# identical, to behavior of my_search_option_files() +# TODO implement and use my_print_defaults --list-groups instead +sub list_defaults_files +{ + my %opt; + foreach (@defaults_options) + { + return () if /^--no-defaults$/; + $opt{$1} = $2 if /^--defaults-(extra-file|file)=(.*)$/; + } + + return ($opt{file}) if exists $opt{file}; + + return ('/etc/my.cnf', + '/etc/mysql/my.cnf', + '/usr/local/mysql/my.cnf', + ($ENV{MYSQL_HOME} ? "$ENV{MYSQL_HOME}/my.cnf" : undef), + $opt{'extra-file'}, + ($ENV{HOME} ? "$ENV{HOME}/.my.cnf" : undef)); +} + + +# Takes a specification of GNRs (see --help), and returns a list of matching +# groups which actually are mentioned in a relevant config file +sub find_groups +{ + my ($raw_gids) = @_; + + my %gids; + my @groups; + + if (defined($raw_gids)) + { + # Make a hash of the wanted group ids + foreach my $raw_gid (split ',', $raw_gids) + { + # Match 123 or 123-456 + my ($start, $end) = ($raw_gid =~ /^\s*(\d+)(?:\s*-\s*(\d+))?\s*$/); + $end = $start if not defined $end; + if (not defined $start or $end < $start or $start < 0) + { + print "ABORT: Bad GNR: $raw_gid; see $my_progname --help\n"; + exit(1); + } + + foreach my $i ($start .. $end) + { + # Use $i + 0 to normalize numbers (002 + 0 -> 2) + $gids{$i + 0}= 1; + } + } + } + + my %seen; + my @defaults_files = list_defaults_files(); + while (@defaults_files) + { + my $file = shift @defaults_files; + next unless defined $file and not $seen{$file}++ and open CONF, '<', $file; + + while () + { + if (/^\s*\[\s*(mysqld)(\d+)\s*\]\s*$/) + { + #warn "Found a group: $1$2\n"; + # Use $2 + 0 to normalize numbers (002 + 0 -> 2) + if (not defined($raw_gids) or $gids{$2 + 0}) + { + push @groups, "$1$2"; + } + } + elsif (/^\s*!include\s+(\S.*?)\s*$/) + { + push @defaults_files, $1; + } + elsif (/^\s*!includedir\s+(\S.*?)\s*$/) + { + push @defaults_files, <$1/*.cnf>; + } + } + + close CONF; + } + return @groups; +} + +#### +#### w2log: Write to a logfile. +#### 1.arg: append to the log file (given string, or from a file. if a file, +#### file will be read from $opt_logdir) +#### 2.arg: logfile -name (w2log assumes that the logfile is in $opt_logdir). +#### 3.arg. 0 | 1, if true, print current date to the logfile. 3. arg will +#### be ignored, if 1. arg is a file. +#### 4.arg. 0 | 1, if true, first argument is a file, else a string +#### + +sub w2log +{ + my ($msg, $file, $date_flag, $is_file)= @_; + my (@data); + + open (LOGFILE, ">>$opt_log") + or die "FATAL: w2log: Couldn't open log file: $opt_log\n"; + + if ($is_file) + { + open (FROMFILE, "<$msg") && (@data=) && + close(FROMFILE) + or die "FATAL: w2log: Couldn't open file: $msg\n"; + foreach my $line (@data) + { + print LOGFILE "$line"; + } + } + else + { + print LOGFILE "$msg"; + print LOGFILE strftime "%a %b %e %H:%M:%S %Y", localtime if ($date_flag); + print LOGFILE "\n"; + } + close (LOGFILE); + return; +} + +#### +#### my_which is used, because we can't assume that every system has the +#### which -command. my_which can take only one argument at a time. +#### Return values: requested system command with the first found path, +#### or undefined, if not found. +#### + +sub my_which +{ + my ($command) = @_; + my (@paths, $path); + + # If the argument is not 'my_print_defaults' then it would be of the format + # / + return $command if ($command ne 'my_print_defaults' && -f $command && + -x $command); + + @paths = split(':', $ENV{'PATH'}); + foreach $path (@paths) + { + $path .= "/$command"; + return $path if (-f $path && -x $path); + } + return undef(); +} + + +#### +#### example +#### + +sub example +{ + print <&2 + echo "The first digit will be corrected to 6, the others may be 0, 2, 4, or 6." >&2 +fi +fmode=`echo "$fmode"|cut -c3-4` +fmode="6$fmode" +if [ "x$UMASK" != "x0$fmode" ] +then + echo "UMASK corrected from $UMASK to 0$fmode ..." +fi + +defaults= +case "$1" in + --no-defaults|--defaults-file=*|--defaults-extra-file=*) + defaults="$1"; shift + ;; +esac + +usage () { + cat <&2 + ;; + esac +} + +log_error () { + log_generic daemon.error "$@" >&2 +} + +log_notice () { + log_generic daemon.notice "$@" +} + +eval_log_error () { + cmd="$1" + case $logging in + file) cmd="$cmd 2>&1 | "`shell_quote_string "$helper"`" $user log "`shell_quote_string "$err_log"` ;; + syslog) + # mysqld often prefixes its messages with a timestamp, which is + # redundant when logging to syslog (which adds its own timestamp) + # However, we don't strip the timestamp with sed here, because + # sed buffers output (only GNU sed supports a -u (unbuffered) option) + # which means that messages may not get sent to syslog until the + # mysqld process quits. + cmd="$cmd 2>&1 | logger -t '$syslog_tag_mysqld' -p daemon.error" + ;; + *) + echo "Internal program error (non-fatal):" \ + " unknown logging method '$logging'" >&2 + ;; + esac + + if test $nowatch -eq 1 + then + # We'd prefer to exec $cmd here, but SELinux needs to be fixed first + #/usr/bin/logger "Running mysqld: $cmd" + eval "$cmd &" + exit 0 + else + #echo "Running mysqld: [$cmd]" + eval "$cmd" + fi +} + +shell_quote_string() { + # This sed command makes sure that any special chars are quoted, + # so the arg gets passed exactly to the server. + echo "$1" | sed -e 's,\([^a-zA-Z0-9/_.=-]\),\\\1,g' +} + +check_executable_location() { + if test "$unsafe_my_cnf" = 1 -a "$unrecognized_handling" != collect; then + log_error "Cannot accept $1 from a config file, when my.cnf is in the datadir" + exit 1 + fi +} + +parse_arguments() { + for arg do + # the parameter after "=", or the whole $arg if no match + val=`echo "$arg" | sed -e 's;^--[^=]*=;;'` + # what's before "=", or the whole $arg if no match + optname=`echo "$arg" | sed -e 's/^\(--[^=]*\)=.*$/\1/'` + # replace "_" by "-" ; mysqld_safe must accept "_" like mysqld does. + optname_subst=`echo "$optname" | sed 's/_/-/g'` + arg=`echo $arg | sed "s/^$optname/$optname_subst/"` + case "$arg" in + # these get passed explicitly to mysqld + --basedir=*) MY_BASEDIR_VERSION="$val" ;; + --datadir=*|--data=*) DATADIR="$val" ;; + --pid-file=*) pid_file="$val" ;; + --plugin-dir=*) PLUGIN_DIR="$val" ;; + --user=*) user="$val"; SET_USER=1 ;; + --log-basename=*|--hostname=*|--loose-log-basename=*) + pid_file="$val.pid"; + err_log_base="$val"; + ;; + + # these might have been set in a [mysqld_safe] section of my.cnf + # they are added to mysqld command line to override settings from my.cnf + --log-error=*) err_log="$val" ;; + --port=*) mysql_tcp_port="$val" ;; + --socket=*) mysql_unix_port="$val" ;; + + # mysqld_safe-specific options - must be set in my.cnf ([mysqld_safe])! + --core-file-size=*) core_file_size="$val" ;; + --ledir=*) check_executable_location "$arg" ; ledir="$val" ;; + --malloc-lib=*) check_executable_location "$arg"; set_malloc_lib "$val" ;; + --crash-script=*) check_executable_location "$arg"; crash_script="$val" ;; + --mysqld=*) check_executable_location "$arg"; MYSQLD="$val" ;; + --mysqld-version=*) + if test -n "$val" + then + check_executable_location "$arg" + MYSQLD="mysqld-$val" + PLUGIN_VARIANT="/$val" + else + MYSQLD="mysqld" + fi + ;; + --nice=*) niceness="$val" ;; + --nowatch|--no-watch|--no-auto-restart) nowatch=1 ;; + --open-files-limit=*) open_files="$val" ;; + --open_files_limit=*) open_files="$val" ;; + --skip-kill-mysqld*) KILL_MYSQLD=0 ;; + --syslog) want_syslog=1 ;; + --skip-syslog) want_syslog=0 ;; + --syslog-tag=*) syslog_tag="$val" ;; + --timezone=*) TZ="$val"; export TZ; ;; + --flush-caches) flush_caches=1 ;; + --numa-interleave) numa_interleave=1 ;; + + --defaults-group-suffix=*) defaults_group_suffix="$arg" ;; + + --help) usage ;; + + *) + case "$unrecognized_handling" in + collect) append_arg_to_args "$arg" ;; + complain) log_error "unknown option '$arg'" ;; + esac + esac + done +} + + +# Add a single shared library to the list of libraries which will be added to +# LD_PRELOAD for mysqld +# +# Since LD_PRELOAD is a space-separated value (for historical reasons), if a +# shared lib's path contains spaces, that path will be prepended to +# LD_LIBRARY_PATH and stripped from the lib value. +add_mysqld_ld_preload() { + lib_to_add="$1" + log_notice "Adding '$lib_to_add' to LD_PRELOAD for mysqld" + + case "$lib_to_add" in + *' '*) + # Must strip path from lib, and add it to LD_LIBRARY_PATH + lib_file=`basename "$lib_to_add"` + case "$lib_file" in + *' '*) + # The lib file itself has a space in its name, and can't + # be used in LD_PRELOAD + log_error "library name '$lib_to_add' contains spaces and can not be used with LD_PRELOAD" + exit 1 + ;; + esac + lib_path=`dirname "$lib_to_add"` + lib_to_add="$lib_file" + [ -n "$mysqld_ld_library_path" ] && mysqld_ld_library_path="$mysqld_ld_library_path:" + mysqld_ld_library_path="$mysqld_ld_library_path$lib_path" + ;; + esac + + # LD_PRELOAD is a space-separated + [ -n "$mysqld_ld_preload" ] && mysqld_ld_preload="$mysqld_ld_preload " + mysqld_ld_preload="${mysqld_ld_preload}$lib_to_add" +} + + +# Returns LD_PRELOAD (and LD_LIBRARY_PATH, if needed) text, quoted to be +# suitable for use in the eval that calls mysqld. +# +# All values in mysqld_ld_preload are prepended to LD_PRELOAD. +mysqld_ld_preload_text() { + text= + + if [ -n "$mysqld_ld_preload" ]; then + new_text="$mysqld_ld_preload" + [ -n "$LD_PRELOAD" ] && new_text="$new_text $LD_PRELOAD" + text="${text}LD_PRELOAD="`shell_quote_string "$new_text"`' ' + fi + + if [ -n "$mysqld_ld_library_path" ]; then + new_text="$mysqld_ld_library_path" + [ -n "$LD_LIBRARY_PATH" ] && new_text="$new_text:$LD_LIBRARY_PATH" + text="${text}LD_LIBRARY_PATH="`shell_quote_string "$new_text"`' ' + fi + + echo "$text" +} + + +mysql_config= +get_mysql_config() { + if [ -z "$mysql_config" ]; then + mysql_config=`echo "$0" | sed 's,/[^/][^/]*$,/mysql_config,'` + if [ ! -x "$mysql_config" ]; then + log_error "Can not run mysql_config $@ from '$mysql_config'" + exit 1 + fi + fi + + "$mysql_config" "$@" +} + + +# set_malloc_lib LIB +# - If LIB is empty, do nothing and return +# - If LIB is 'tcmalloc', look for tcmalloc shared library in /usr/lib +# then pkglibdir. tcmalloc is part of the Google perftools project. +# - If LIB is an absolute path, assume it is a malloc shared library +# +# Put LIB in mysqld_ld_preload, which will be added to LD_PRELOAD when +# running mysqld. See ld.so for details. +set_malloc_lib() { + malloc_lib="$1" + + if [ "$malloc_lib" = tcmalloc ]; then + pkglibdir=`get_mysql_config --variable=pkglibdir` + malloc_lib= + # This list is kept intentionally simple. Simply set --malloc-lib + # to a full path if another location is desired. + for libdir in /usr/lib "$pkglibdir" "$pkglibdir/mysql"; do + for flavor in _minimal '' _and_profiler _debug; do + tmp="$libdir/libtcmalloc$flavor.so" + #log_notice "DEBUG: Checking for malloc lib '$tmp'" + [ -r "$tmp" ] || continue + malloc_lib="$tmp" + break 2 + done + done + + if [ -z "$malloc_lib" ]; then + log_error "no shared library for --malloc-lib=tcmalloc found in /usr/lib or $pkglibdir" + exit 1 + fi + fi + + # Allow --malloc-lib='' to override other settings + [ -z "$malloc_lib" ] && return + + case "$malloc_lib" in + /*) + if [ ! -r "$malloc_lib" ]; then + log_error "--malloc-lib '$malloc_lib' can not be read and will not be used" + exit 1 + fi + ;; + *) + log_error "--malloc-lib must be an absolute path or 'tcmalloc'; " \ + "ignoring value '$malloc_lib'" + exit 1 + ;; + esac + + add_mysqld_ld_preload "$malloc_lib" +} + + +# +# First, try to find BASEDIR and ledir (where mysqld is) +# + +MY_PWD=`dirname $0` +MY_PWD=`cd "$MY_PWD"/.. && pwd` +# Check for the directories we would expect from a binary release install +if test -n "$MY_BASEDIR_VERSION" -a -d "$MY_BASEDIR_VERSION" +then + # BASEDIR is already overridden on command line. Do not re-set. + + # Use BASEDIR to discover le. + if test -x "$MY_BASEDIR_VERSION/libexec/mysqld" + then + ledir="$MY_BASEDIR_VERSION/libexec" + elif test -x "$MY_BASEDIR_VERSION/sbin/mysqld" + then + ledir="$MY_BASEDIR_VERSION/sbin" + else + ledir="$MY_BASEDIR_VERSION/bin" + fi +elif test -x "$MY_PWD/bin/mysqld" +then + MY_BASEDIR_VERSION="$MY_PWD" # Where bin, share and data are + ledir="$MY_PWD/bin" # Where mysqld is +# Check for the directories we would expect from a source install +elif test -x "$MY_PWD/libexec/mysqld" +then + MY_BASEDIR_VERSION="$MY_PWD" # Where libexec, share and var are + ledir="$MY_PWD/libexec" # Where mysqld is +elif test -x "$MY_PWD/sbin/mysqld" +then + MY_BASEDIR_VERSION="$MY_PWD" # Where sbin, share and var are + ledir="$MY_PWD/sbin" # Where mysqld is +# Since we didn't find anything, used the compiled-in defaults +else + MY_BASEDIR_VERSION='/usr/local/mysql' + ledir='/usr/local/mysql/bin' +fi + +helper=`find_in_bin mysqld_safe_helper` +print_defaults=`find_in_bin my_print_defaults` + +# +# Second, try to find the data directory +# + +# Try where the binary installs put it +if test -d $MY_BASEDIR_VERSION/data/mysql +then + DATADIR=$MY_BASEDIR_VERSION/data + if test -z "$defaults" -a -r "$DATADIR/my.cnf" + then + defaults="--defaults-extra-file=$DATADIR/my.cnf" + fi +# Next try where the source installs put it +elif test -d $MY_BASEDIR_VERSION/var/mysql +then + DATADIR=$MY_BASEDIR_VERSION/var +# Or just give up and use our compiled-in default +else + DATADIR=/usr/local/mysql/data +fi + +if test -z "$MYSQL_HOME" +then + if test -r "$MY_BASEDIR_VERSION/my.cnf" && test -r "$DATADIR/my.cnf" + then + log_error "WARNING: Found two instances of my.cnf - +$MY_BASEDIR_VERSION/my.cnf and +$DATADIR/my.cnf +IGNORING $DATADIR/my.cnf" + + MYSQL_HOME=$MY_BASEDIR_VERSION + elif test -r "$DATADIR/my.cnf" + then + log_error "WARNING: Found $DATADIR/my.cnf +The data directory is a deprecated location for my.cnf, please move it to +$MY_BASEDIR_VERSION/my.cnf" + unsafe_my_cnf=1 + MYSQL_HOME=$DATADIR + else + MYSQL_HOME=$MY_BASEDIR_VERSION + fi +fi +export MYSQL_HOME + +append_arg_to_args () { + args="$args "`shell_quote_string "$1"` +} + +args= + +# Get first arguments from the my.cnf file, groups [mysqld] and [mysqld_safe] +# and then merge with the command line arguments + +SET_USER=2 +parse_arguments `$print_defaults $defaults --loose-verbose --mysqld` +if test $SET_USER -eq 2 +then + SET_USER=0 +fi + +# If arguments come from [mysqld_safe] section of my.cnf +# we complain about unrecognized options +unrecognized_handling=complain +parse_arguments `$print_defaults $defaults --loose-verbose mysqld_safe safe_mysqld mariadb_safe` + +# We only need to pass arguments through to the server if we don't +# handle them here. So, we collect unrecognized options (passed on +# the command line) into the args variable. +unrecognized_handling=collect +parse_arguments "$@" + + +# +# Try to find the plugin directory +# + +# Use user-supplied argument +if [ -n "${PLUGIN_DIR}" ]; then + plugin_dir="${PLUGIN_DIR}" +else + # Try to find plugin dir relative to basedir + for dir in lib64/mysql/plugin lib64/plugin lib/mysql/plugin lib/plugin + do + if [ -d "${MY_BASEDIR_VERSION}/${dir}" ]; then + plugin_dir="${MY_BASEDIR_VERSION}/${dir}" + break + fi + done + # Give up and use compiled-in default + if [ -z "${plugin_dir}" ]; then + plugin_dir='/usr/local/mysql/lib/plugin' + fi +fi +plugin_dir="${plugin_dir}${PLUGIN_VARIANT}" + +# Determine what logging facility to use + +# Ensure that 'logger' exists, if it's requested +if [ $want_syslog -eq 1 ] +then + my_which logger > /dev/null 2>&1 + if [ $? -ne 0 ] + then + log_error "--syslog requested, but no 'logger' program found. Please ensure that 'logger' is in your PATH, or do not specify the --syslog option to mysqld_safe." + exit 1 + fi +fi + +if [ -n "$err_log" -o $want_syslog -eq 0 ] +then + if [ -n "$err_log" ] + then + # mysqld adds ".err" if there is no extension on the --log-error + # argument; must match that here, or mysqld_safe will write to a + # different log file than mysqld + + # mysqld does not add ".err" to "--log-error=foo."; it considers a + # trailing "." as an extension + + if expr "$err_log" : '.*\.[^/]*$' > /dev/null + then + : + else + err_log="$err_log".err + fi + + case "$err_log" in + /* ) ;; + * ) err_log="$DATADIR/$err_log" ;; + esac + else + if [ -n "$err_log_base" ] + then + err_log=$err_log_base.err + case "$err_log" in + /* ) ;; + * ) err_log="$DATADIR/$err_log" ;; + esac + else + err_log=$DATADIR/`hostname`.err + fi + fi + + append_arg_to_args "--log-error=$err_log" + + if [ $want_syslog -eq 1 ] + then + # User explicitly asked for syslog, so warn that it isn't used + log_error "Can't log to error log and syslog at the same time. Remove all --log-error configuration options for --syslog to take effect." + want_syslog=0 + fi + + # Log to err_log file + log_notice "Logging to '$err_log'." + logging=file + +else + if [ -n "$syslog_tag" ] + then + # Sanitize the syslog tag + syslog_tag=`echo "$syslog_tag" | sed -e 's/[^a-zA-Z0-9_-]/_/g'` + syslog_tag_mysqld_safe="${syslog_tag_mysqld_safe}-$syslog_tag" + syslog_tag_mysqld="${syslog_tag_mysqld}-$syslog_tag" + fi + log_notice "Logging to syslog." + logging=syslog +fi + +USER_OPTION="" +if test -w / -o "$USER" = "root" +then + if test "$user" != "root" -o $SET_USER = 1 + then + USER_OPTION="--user=$user" + fi + if test -n "$open_files" + then + ulimit -n $open_files + fi +fi + +if test -n "$open_files" +then + append_arg_to_args "--open-files-limit=$open_files" +fi + +safe_mysql_unix_port=${mysql_unix_port:-${MYSQL_UNIX_PORT:-/tmp/mysql.sock}} +# Make sure that directory for $safe_mysql_unix_port exists +mysql_unix_port_dir=`dirname $safe_mysql_unix_port` +if [ ! -d $mysql_unix_port_dir ] +then + if ! `mkdir -p $mysql_unix_port_dir` + then + log_error "Fatal error Can't create database directory '$mysql_unix_port'" + exit 1 + fi + chown $user $mysql_unix_port_dir + chmod 755 $mysql_unix_port_dir +fi + +# If the user doesn't specify a binary, we assume name "mysqld" +if test -z "$MYSQLD" +then + MYSQLD=mysqld +fi + +if test ! -x "$ledir/$MYSQLD" +then + log_error "The file $ledir/$MYSQLD +does not exist or is not executable. Please cd to the mysql installation +directory and restart this script from there as follows: +./bin/mysqld_safe& +See http://dev.mysql.com/doc/mysql/en/mysqld-safe.html for more information" + exit 1 +fi + +if test -z "$pid_file" +then + pid_file="`hostname`.pid" +fi +# MariaDB wants pid file without datadir +append_arg_to_args "--pid-file=$pid_file" +case "$pid_file" in + /* ) ;; + * ) pid_file="$DATADIR/$pid_file" ;; +esac + +if test -n "$mysql_unix_port" +then + append_arg_to_args "--socket=$mysql_unix_port" +fi +if test -n "$mysql_tcp_port" +then + append_arg_to_args "--port=$mysql_tcp_port" +fi + +if test $niceness -eq 0 +then + NOHUP_NICENESS="nohup" +else + NOHUP_NICENESS="nohup nice -$niceness" +fi + +# Using nice with no args to get the niceness level is GNU-specific. +# This check could be extended for other operating systems (e.g., +# BSD could use "nohup sh -c 'ps -o nice -p $$' | tail -1"). +# But, it also seems that GNU nohup is the only one which messes +# with the priority, so this is okay. +if nohup nice > /dev/null 2>&1 +then + normal_niceness=`nice` + nohup_niceness=`nohup nice 2>/dev/null` + + numeric_nice_values=1 + for val in $normal_niceness $nohup_niceness + do + case "$val" in + -[0-9] | -[0-9][0-9] | -[0-9][0-9][0-9] | \ + [0-9] | [0-9][0-9] | [0-9][0-9][0-9] ) + ;; + * ) + numeric_nice_values=0 ;; + esac + done + + if test $numeric_nice_values -eq 1 + then + nice_value_diff=`expr $nohup_niceness - $normal_niceness` + if test $? -eq 0 && test $nice_value_diff -gt 0 && \ + nice --$nice_value_diff echo testing > /dev/null 2>&1 + then + # nohup increases the priority (bad), and we are permitted + # to lower the priority with respect to the value the user + # might have been given + niceness=`expr $niceness - $nice_value_diff` + NOHUP_NICENESS="nice -$niceness nohup" + fi + fi +else + if nohup echo testing > /dev/null 2>&1 + then + : + else + # nohup doesn't work on this system + NOHUP_NICENESS="" + fi +fi + +# Try to set the core file size (even if we aren't root) because many systems +# don't specify a hard limit on core file size. +if test -n "$core_file_size" +then + ulimit -c $core_file_size +fi + +# +# If there exists an old pid file, check if the daemon is already running +# Note: The switches to 'ps' may depend on your operating system +if test -f "$pid_file" +then + PID=`cat "$pid_file"` + if kill -0 $PID > /dev/null 2> /dev/null + then + if ps wwwp $PID | grep -v mysqld_safe | grep -- $MYSQLD > /dev/null + then # The pid contains a mysqld process + log_error "A mysqld process already exists" + exit 1 + fi + fi + rm -f "$pid_file" + if test -f "$pid_file" + then + log_error "Fatal error: Can't remove the pid file: +$pid_file +Please remove it manually and start $0 again; +mysqld daemon not started" + exit 1 + fi +fi + +# +# Flush and purge buffers/caches. +# + +if true && test $flush_caches -eq 1 +then + # Locate sync, ensure it exists. + if ! my_which sync > /dev/null 2>&1 + then + log_error "sync command not found, required for --flush-caches" + exit 1 + # Flush file system buffers. + elif ! sync + then + # Huh, the sync() function is always successful... + log_error "sync failed, check if sync is properly installed" + fi + + # Locate sysctl, ensure it exists. + if ! my_which sysctl > /dev/null 2>&1 + then + log_error "sysctl command not found, required for --flush-caches" + exit 1 + # Purge page cache, dentries and inodes. + elif ! sysctl -q -w vm.drop_caches=3 + then + log_error "sysctl failed, check the error message for details" + exit 1 + fi +elif test $flush_caches -eq 1 +then + log_error "--flush-caches is not supported on this platform" + exit 1 +fi + +# +# Uncomment the following lines if you want all tables to be automatically +# checked and repaired during startup. You should add sensible key_buffer +# and sort_buffer values to my.cnf to improve check performance or require +# less disk space. +# Alternatively, you can start mysqld with the "myisam-recover" option. See +# the manual for details. +# +# echo "Checking tables in $DATADIR" +# $MY_BASEDIR_VERSION/bin/myisamchk --silent --force --fast --medium-check $DATADIR/*/*.MYI +# $MY_BASEDIR_VERSION/bin/isamchk --silent --force $DATADIR/*/*.ISM + +# Does this work on all systems? +#if type ulimit | grep "shell builtin" > /dev/null +#then +# ulimit -n 256 > /dev/null 2>&1 # Fix for BSD and FreeBSD systems +#fi + +cmd="`mysqld_ld_preload_text`$NOHUP_NICENESS" + +# +# Set mysqld's memory interleave policy. +# + +if true && test $numa_interleave -eq 1 +then + # Locate numactl, ensure it exists. + if ! my_which numactl > /dev/null 2>&1 + then + log_error "numactl command not found, required for --numa-interleave" + exit 1 + # Attempt to run a command, ensure it works. + elif ! numactl --interleave=all true + then + log_error "numactl failed, check if numactl is properly installed" + fi + + # Launch mysqld with numactl. + cmd="$cmd numactl --interleave=all" +elif test $numa_interleave -eq 1 +then + log_error "--numa-interleave is not supported on this platform" + exit 1 +fi + +for i in "$ledir/$MYSQLD" "$defaults_group_suffix" "$defaults" "--basedir=$MY_BASEDIR_VERSION" \ + "--datadir=$DATADIR" "--plugin-dir=$plugin_dir" "$USER_OPTION" +do + cmd="$cmd "`shell_quote_string "$i"` +done +cmd="$cmd $args" +# Avoid 'nohup: ignoring input' warning +test -n "$NOHUP_NICENESS" && cmd="$cmd < /dev/null" + +log_notice "Starting $MYSQLD daemon with databases from $DATADIR" + +# variable to track the current number of "fast" (a.k.a. subsecond) restarts +fast_restart=0 +# maximum number of restarts before trottling kicks in +max_fast_restarts=5 +# flag whether a usable sleep command exists +have_sleep=1 + +# close stdout and stderr, everything goes to $logging now +if expr "${-}" : '.*x' > /dev/null +then + : +else + exec 1>/dev/null + exec 2>/dev/null +fi + +while true +do + rm -f "$pid_file" # Some extra safety + + start_time=`date +%M%S` + + eval_log_error "$cmd" + end_time=`date +%M%S` + + if test ! -f "$pid_file" # This is removed if normal shutdown + then + break + fi + + + # sanity check if time reading is sane and there's sleep + if test $end_time -gt 0 -a $have_sleep -gt 0 + then + # throttle down the fast restarts + if test $end_time -eq $start_time + then + fast_restart=`expr $fast_restart + 1` + if test $fast_restart -ge $max_fast_restarts + then + log_notice "The server is respawning too fast. Sleeping for 1 second." + sleep 1 + sleep_state=$? + if test $sleep_state -gt 0 + then + log_notice "The server is respawning too fast and no working sleep command. Turning off trottling." + have_sleep=0 + fi + + fast_restart=0 + fi + else + fast_restart=0 + fi + fi + + if true && test $KILL_MYSQLD -eq 1 + then + # Test if one process was hanging. + # This is only a fix for Linux (running as base 3 mysqld processes) + # but should work for the rest of the servers. + # The only thing is ps x => redhat 5 gives warnings when using ps -x. + # kill -9 is used or the process won't react on the kill. + numofproces=`ps xaww | grep -v "grep" | grep "$ledir/$MYSQLD\>" | grep -c "pid-file=$pid_file"` + + log_notice "Number of processes running now: $numofproces" + I=1 + while test "$I" -le "$numofproces" + do + PROC=`ps xaww | grep "$ledir/$MYSQLD\>" | grep -v "grep" | grep "pid-file=$pid_file" | sed -n '$p'` + + for T in $PROC + do + break + done + # echo "TEST $I - $T **" + if kill -9 $T + then + log_error "$MYSQLD process hanging, pid $T - killed" + else + break + fi + I=`expr $I + 1` + done + fi + log_notice "mysqld restarted" + if test -n "$crash_script" + then + crash_script_output=`$crash_script 2>&1` + log_error "$crash_script_output" + fi +done + +log_notice "mysqld from pid file $pid_file ended" diff --git a/database/bin/mysqld_safe_helper b/database/bin/mysqld_safe_helper new file mode 100755 index 0000000..28c0d9b Binary files /dev/null and b/database/bin/mysqld_safe_helper differ diff --git a/database/bin/mysqldump b/database/bin/mysqldump new file mode 100755 index 0000000..382c1e2 Binary files /dev/null and b/database/bin/mysqldump differ diff --git a/database/bin/mysqldumpslow b/database/bin/mysqldumpslow new file mode 100755 index 0000000..ec37f19 --- /dev/null +++ b/database/bin/mysqldumpslow @@ -0,0 +1,228 @@ +#!/usr/bin/perl + +# Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU Library General Public +# License as published by the Free Software Foundation; version 2 +# of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Library General Public License for more details. +# +# You should have received a copy of the GNU Library General Public +# License along with this library; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1335 USA + +# mysqldumpslow - parse and summarize the MySQL slow query log + +# Original version by Tim Bunce, sometime in 2000. +# Further changes by Tim Bunce, 8th March 2001. +# Handling of strings with \ and double '' by Monty 11 Aug 2001. + +use strict; +use Getopt::Long; + +# t=time, l=lock time, r=rows +# at, al, and ar are the corresponding averages + +my %opt = ( + s => 'at', + h => '*', +); + +GetOptions(\%opt, + 'v|verbose+',# verbose + 'help+', # write usage info + 'd|debug+', # debug + 's=s', # what to sort by (al, at, ar, ae, c, t, l, r, e) + 'r!', # reverse the sort order (largest last instead of first) + 't=i', # just show the top n queries + 'a!', # don't abstract all numbers to N and strings to 'S' + 'n=i', # abstract numbers with at least n digits within names + 'g=s', # grep: only consider stmts that include this string + 'h=s', # hostname/basename of db server for *-slow.log filename (can be wildcard) + 'i=s', # name of server instance (if using mysql.server startup script) + 'l!', # don't subtract lock time from total time +) or usage("bad option"); + +$opt{'help'} and usage(); + +unless (@ARGV) { + my $defaults = `my_print_defaults --mysqld`; + + my $datadir = ($defaults =~ m/--datadir=(.*)/g)[-1]; + if (!$datadir or $opt{i}) { + # determine the datadir from the instances section of /etc/my.cnf, if any + my $instances = `my_print_defaults instances`; + die "Can't determine datadir from 'my_print_defaults instances' output: $defaults" + unless $instances; + my @instances = ($instances =~ m/^--(\w+)-/mg); + die "No -i 'instance_name' specified to select among known instances: @instances.\n" + unless $opt{i}; + die "Instance '$opt{i}' is unknown (known instances: @instances)\n" + unless grep { $_ eq $opt{i} } @instances; + $datadir = ($instances =~ m/--$opt{i}-datadir=(.*)/g)[-1] + or die "Can't determine --$opt{i}-datadir from 'my_print_defaults instances' output: $instances"; + warn "datadir=$datadir\n" if $opt{v}; + } + + my $slowlog = ($defaults =~ m/--log[-_]slow[-_]queries=(.*)/g)[-1]; + if (!$slowlog) + { + $slowlog = ($defaults =~ m/--slow[-_]query[-_]log[-_]file=(.*)/g)[-1]; + } + if ( $slowlog ) + { + @ARGV = ($slowlog); + die "Can't find '$slowlog'\n" unless @ARGV; + } + else + { + if (!$opt{h}) + { + $opt{h}= ($defaults =~ m/--log[-_]basename=(.*)/g)[-1]; + } + @ARGV = <$datadir/$opt{h}-slow.log>; + die "Can't find '$datadir/$opt{h}-slow.log'\n" unless @ARGV; + } +} + +warn "\nReading mysql slow query log from @ARGV\n"; + +my @pending; +my %stmt; +$/ = ";\n#"; # read entire statements using paragraph mode +while ( defined($_ = shift @pending) or defined($_ = <>) ) { + warn "[[$_]]\n" if $opt{d}; # show raw paragraph being read + + my @chunks = split /^\/.*Version.*started with[\000-\377]*?Time.*Id.*Command.*Argument.*\n/m; + if (@chunks > 1) { + unshift @pending, map { length($_) ? $_ : () } @chunks; + warn "<<".join(">>\n<<",@chunks).">>" if $opt{d}; + next; + } + + s/^#? Time: \d{6}\s+\d+:\d+:\d+.*\n//; + my ($user,$host) = s/^#? User\@Host:\s+(\S+)\s+\@\s+(\S+).*\n// ? ($1,$2) : ('',''); + + s/^# Thread_id: [0-9]+\s+Schema: [^\n]+\n//; + s/^# Query_time: ([0-9.]+)\s+Lock_time: ([0-9.]+)\s+Rows_sent: ([0-9.]+)\s+Rows_examined: ([0-9.]+).*\n//; + my ($t, $l, $r, $e) = ($1, $2, $3, $4); + + $t -= $l unless $opt{l}; + + # remove fluff that mysqld writes to log when it (re)starts: + s!^/.*Version.*started with:.*\n!!mg; + s!^Tcp port: \d+ Unix socket: \S+\n!!mg; + s!^Time.*Id.*Command.*Argument.*\n!!mg; + + # Remove optimizer info + s!^# QC_Hit: \S+\s+Full_scan: \S+\s+Full_join: \S+\s+Tmp_table: \S+\s+Tmp_table_on_disk: \S+[^\n]+\n!!mg; + s!^# Filesort: \S+\s+Filesort_on_disk: \S+[^\n]+\n!!mg; + s!^# Full_scan: \S+\s+Full_join: \S+[^\n]+\n!!mg; + + s/^use \w+;\n//; # not consistently added + s/^SET timestamp=\d+;\n//; + + s/^[ ]*\n//mg; # delete blank lines + s/^[ ]*/ /mg; # normalize leading whitespace + s/\s*;\s*(#\s*)?$//; # remove trailing semicolon(+newline-hash) + + next if $opt{g} and !m/$opt{g}/io; + + unless ($opt{a}) { + s/\b\d+\b/N/g; + s/\b0x[0-9A-Fa-f]+\b/N/g; + s/''/'S'/g; + s/""/"S"/g; + s/(\\')//g; + s/(\\")//g; + s/'[^']+'/'S'/g; + s/"[^"]+"/"S"/g; + # -n=8: turn log_20001231 into log_NNNNNNNN + s/([a-z_]+)(\d{$opt{n},})/$1.('N' x length($2))/ieg if $opt{n}; + # abbreviate massive "in (...)" statements and similar + s!(([NS],){100,})!sprintf("$2,{repeated %d times}",length($1)/2)!eg; + } + + my $s = $stmt{$_} ||= { users=>{}, hosts=>{} }; + $s->{c} += 1; + $s->{t} += $t; + $s->{l} += $l; + $s->{r} += $r; + $s->{e} += $e; + $s->{users}->{$user}++ if $user; + $s->{hosts}->{$host}++ if $host; + + warn "{{$_}}\n\n" if $opt{d}; # show processed statement string +} + +foreach (keys %stmt) { + my $v = $stmt{$_} || die; + my ($c, $t, $l, $r, $e) = @{ $v }{qw(c t l r e)}; + $v->{at} = $t / $c; + $v->{al} = $l / $c; + $v->{ar} = $r / $c; + $v->{ae} = $e / $c; +} + +my @sorted = sort { $stmt{$b}->{$opt{s}} <=> $stmt{$a}->{$opt{s}} } keys %stmt; +@sorted = @sorted[0 .. $opt{t}-1] if $opt{t}; +@sorted = reverse @sorted if $opt{r}; + +foreach (@sorted) { + my $v = $stmt{$_} || die; + my ($c, $t,$at, $l,$al, $r,$ar,$e, $ae) = @{ $v }{qw(c t at l al r ar e ae)}; + my @users = keys %{$v->{users}}; + my $user = (@users==1) ? $users[0] : sprintf "%dusers",scalar @users; + my @hosts = keys %{$v->{hosts}}; + my $host = (@hosts==1) ? $hosts[0] : sprintf "%dhosts",scalar @hosts; + printf "Count: %d Time=%.2fs (%ds) Lock=%.2fs (%ds) Rows_sent=%.1f (%d), Rows_examined=%.1f (%d), $user\@$host\n%s\n\n", + $c, $at,$t, $al,$l, $ar,$r, $ae, $e, $_; +} + +sub usage { + my $str= shift; + my $text= < 0, + allowold => 0, # for safety + keepold => 0, + method => "cp", + flushlog => 0, +); +Getopt::Long::Configure(qw(no_ignore_case)); # disambiguate -p and -P +GetOptions( \%opt, + "help", + "host|h=s", + "user|u=s", + "password|p=s", + "port|P=s", + "socket|S=s", + "old_server", + "allowold!", + "keepold!", + "addtodest!", + "noindices!", + "method=s", + "debug", + "quiet|q", + "mv!", + "regexp=s", + "suffix=s", + "checkpoint=s", + "record_log_pos=s", + "flushlog", + "resetmaster", + "resetslave", + "tmpdir|t=s", + "dryrun|n", + "chroot=s", +) or usage("Invalid option"); + +# @db_desc +# ========== +# a list of hash-refs containing: +# +# 'src' - name of the db to copy +# 't_regex' - regex describing tables in src +# 'target' - destination directory of the copy +# 'tables' - array-ref to list of tables in the db +# 'files' - array-ref to list of files to be copied +# 'index' - array-ref to list of indexes to be copied +# + +my @db_desc = (); +my $tgt_name = undef; + +usage("") if ($opt{help}); + +if ( $opt{regexp} || $opt{suffix} || @ARGV > 2 ) { + $tgt_name = pop @ARGV unless ( exists $opt{suffix} ); + @db_desc = map { s{^([^\.]+)\./(.+)/$}{$1}; { 'src' => $_, 't_regex' => ( $2 ? $2 : '.*' ) } } @ARGV; +} +else { + usage("Database name to hotcopy not specified") unless ( @ARGV ); + + $ARGV[0] =~ s{^([^\.]+)\./(.+)/$}{$1}; + @db_desc = ( { 'src' => $ARGV[0], 't_regex' => ( $2 ? $2 : '.*' ) } ); + + if ( @ARGV == 2 ) { + $tgt_name = $ARGV[1]; + } + else { + $opt{suffix} = "_copy"; + } +} + +my %mysqld_vars; +my $start_time = time; +$opt_tmpdir= $opt{tmpdir} if $opt{tmpdir}; +$0 = $1 if $0 =~ m:/([^/]+)$:; +$opt{quiet} = 0 if $opt{debug}; +$opt{allowold} = 1 if $opt{keepold}; + +# --- connect to the database --- +my $dsn; +$dsn = ";host=" . (defined($opt{host}) ? $opt{host} : "localhost"); +$dsn .= ";port=$opt{port}" if $opt{port}; +$dsn .= ";mysql_socket=$opt{socket}" if $opt{socket}; + +# use mysql_read_default_group=mysqlhotcopy so that [client] and +# [mysqlhotcopy] groups will be read from standard options files. + +my $dbh = DBI->connect("dbi:mysql:$dsn;mysql_read_default_group=mysqlhotcopy", + $opt{user}, $opt{password}, +{ + RaiseError => 1, + PrintError => 0, + AutoCommit => 1, +}); + +# --- check that checkpoint table exists if specified --- +if ( $opt{checkpoint} ) { + $opt{checkpoint} = quote_names( $opt{checkpoint} ); + eval { $dbh->do( qq{ select time_stamp, src, dest, msg + from $opt{checkpoint} where 1 != 1} ); + }; + + die "Error accessing Checkpoint table ($opt{checkpoint}): $@" + if ( $@ ); +} + +# --- check that log_pos table exists if specified --- +if ( $opt{record_log_pos} ) { + $opt{record_log_pos} = quote_names( $opt{record_log_pos} ); + + eval { $dbh->do( qq{ select host, time_stamp, log_file, log_pos, master_host, master_log_file, master_log_pos + from $opt{record_log_pos} where 1 != 1} ); + }; + + die "Error accessing log_pos table ($opt{record_log_pos}): $@" + if ( $@ ); +} + +# --- get variables from database --- +my $sth_vars = $dbh->prepare("show variables like 'datadir'"); +$sth_vars->execute; +while ( my ($var,$value) = $sth_vars->fetchrow_array ) { + $mysqld_vars{ $var } = $value; +} +my $datadir = $mysqld_vars{'datadir'} + || die "datadir not in mysqld variables"; + $datadir= $opt{chroot}.$datadir if ($opt{chroot}); +$datadir =~ s:/$::; + + +# --- get target path --- +my ($tgt_dirname, $to_other_database); +$to_other_database=0; +if (defined($tgt_name) && $tgt_name =~ m:^\w+$: && @db_desc <= 1) +{ + $tgt_dirname = "$datadir/$tgt_name"; + $to_other_database=1; +} +elsif (defined($tgt_name) && ($tgt_name =~ m:/: || $tgt_name eq '.')) { + $tgt_dirname = $tgt_name; +} +elsif ( $opt{suffix} ) { + print "Using copy suffix '$opt{suffix}'\n" unless $opt{quiet}; +} +else +{ + $tgt_name="" if (!defined($tgt_name)); + die "Target '$tgt_name' doesn't look like a database name or directory path.\n"; +} + +# --- resolve database names from regexp --- +if ( defined $opt{regexp} ) { + my $t_regex = '.*'; + if ( $opt{regexp} =~ s{^/(.+)/\./(.+)/$}{$1} ) { + $t_regex = $2; + } + + my $sth_dbs = $dbh->prepare("show databases"); + $sth_dbs->execute; + while ( my ($db_name) = $sth_dbs->fetchrow_array ) { + next if $db_name =~ m/^information_schema$/i; + push @db_desc, { 'src' => $db_name, 't_regex' => $t_regex } if ( $db_name =~ m/$opt{regexp}/o ); + } +} + +# --- get list of tables and views to hotcopy --- + +my $hc_locks = ""; +my $hc_tables = ""; +my $hc_base_tables = ""; +my $hc_views = ""; +my $num_base_tables = 0; +my $num_views = 0; +my $num_tables = 0; +my $num_files = 0; + +foreach my $rdb ( @db_desc ) { + my $db = $rdb->{src}; + my @dbh_base_tables = get_list_of_tables( $db ); + my @dbh_views = get_list_of_views( $db ); + + ## filter out certain system non-lockable tables. + ## keep in sync with mysqldump. + if ($db =~ m/^mysql$/i) + { + @dbh_base_tables = grep + { !/^(apply_status|schema|general_log|slow_log)$/ } @dbh_base_tables + } + + ## generate regex for tables/files + my $t_regex; + my $negated; + if ($rdb->{t_regex}) { + $t_regex = $rdb->{t_regex}; ## assign temporary regex + $negated = $t_regex =~ s/^~//; ## note and remove negation operator + + $t_regex = qr/$t_regex/; ## make regex string from + ## user regex + + ## filter (out) tables specified in t_regex + print "Filtering tables with '$t_regex'\n" if $opt{debug}; + @dbh_base_tables = ( $negated + ? grep { $_ !~ $t_regex } @dbh_base_tables + : grep { $_ =~ $t_regex } @dbh_base_tables ); + + ## filter (out) views specified in t_regex + print "Filtering tables with '$t_regex'\n" if $opt{debug}; + @dbh_views = ( $negated + ? grep { $_ !~ $t_regex } @dbh_views + : grep { $_ =~ $t_regex } @dbh_views ); + } + + ## Now concatenate the base table and view arrays. + my @dbh_tables = (@dbh_base_tables, @dbh_views); + + ## get list of files to copy + my $db_dir = "$datadir/$db"; + opendir(DBDIR, $db_dir ) + or die "Cannot open dir '$db_dir': $!"; + + my %db_files; + + while ( defined( my $name = readdir DBDIR ) ) { + $db_files{$name} = $1 if ( $name =~ /(.+)\.\w+$/ ); + } + closedir( DBDIR ); + + unless( keys %db_files ) { + warn "'$db' is an empty database\n"; + } + + ## filter (out) files specified in t_regex + my @db_files; + if ($rdb->{t_regex}) { + @db_files = ($negated + ? grep { $db_files{$_} !~ $t_regex } keys %db_files + : grep { $db_files{$_} =~ $t_regex } keys %db_files ); + } + else { + @db_files = keys %db_files; + } + + @db_files = sort @db_files; + + my @index_files=(); + + ## remove indices unless we're told to keep them + if ($opt{noindices}) { + @index_files= grep { /\.(ISM|MYI)$/ } @db_files; + @db_files = grep { not /\.(ISM|MYI)$/ } @db_files; + } + + $rdb->{files} = [ @db_files ]; + $rdb->{index} = [ @index_files ]; + my @hc_base_tables = map { quote_names("$db.$_") } @dbh_base_tables; + my @hc_views = map { quote_names("$db.$_") } @dbh_views; + + my @hc_tables = (@hc_base_tables, @hc_views); + $rdb->{tables} = [ @hc_tables ]; + + $hc_locks .= ", " if ( length $hc_locks && @hc_tables ); + $hc_locks .= join ", ", map { "$_ READ" } @hc_tables; + + $hc_base_tables .= ", " if ( length $hc_base_tables && @hc_base_tables ); + $hc_base_tables .= join ", ", @hc_base_tables; + $hc_views .= ", " if ( length $hc_views && @hc_views ); + $hc_views .= join " READ, ", @hc_views; + + @hc_tables = (@hc_base_tables, @hc_views); + + $num_base_tables += scalar @hc_base_tables; + $num_views += scalar @hc_views; + $num_tables += $num_base_tables + $num_views; + $num_files += scalar @{$rdb->{files}}; +} + +# --- resolve targets for copies --- + +if (defined($tgt_name) && length $tgt_name ) { + # explicit destination directory specified + + # GNU `cp -r` error message + die "copying multiple databases, but last argument ($tgt_dirname) is not a directory\n" + if ( @db_desc > 1 && !(-e $tgt_dirname && -d $tgt_dirname ) ); + + if ($to_other_database) + { + foreach my $rdb ( @db_desc ) { + $rdb->{target} = "$tgt_dirname"; + } + } + elsif ($opt{method} =~ /^scp\b/) + { # we have to trust scp to hit the target + foreach my $rdb ( @db_desc ) { + $rdb->{target} = "$tgt_dirname/$rdb->{src}"; + } + } + else + { + die "Last argument ($tgt_dirname) is not a directory\n" + if (!(-e $tgt_dirname && -d $tgt_dirname ) ); + foreach my $rdb ( @db_desc ) { + $rdb->{target} = "$tgt_dirname/$rdb->{src}"; + } + } + } +else { + die "Error: expected \$opt{suffix} to exist" unless ( exists $opt{suffix} ); + + foreach my $rdb ( @db_desc ) { + $rdb->{target} = "$datadir/$rdb->{src}$opt{suffix}"; + } +} + +print Dumper( \@db_desc ) if ( $opt{debug} ); + +# --- bail out if all specified databases are empty --- + +die "No tables to hot-copy" unless ( length $hc_locks ); + +# --- create target directories if we are using 'cp' --- + +my @existing = (); + +if ($opt{method} =~ /^cp\b/) +{ + foreach my $rdb ( @db_desc ) { + push @existing, $rdb->{target} if ( -d $rdb->{target} ); + } + + if ( @existing && !($opt{allowold} || $opt{addtodest}) ) + { + $dbh->disconnect(); + die "Can't hotcopy to '", join( "','", @existing ), "' because directory\nalready exist and the --allowold or --addtodest options were not given.\n" + } +} + +retire_directory( @existing ) if @existing && !$opt{addtodest}; + +foreach my $rdb ( @db_desc ) { + my $tgt_dirpath = "$rdb->{target}"; + # Remove trailing slashes (needed for Mac OS X) + substr($tgt_dirpath, 1) =~ s|/+$||; + if ( $opt{dryrun} ) { + print "mkdir $tgt_dirpath, 0750\n"; + } + elsif ($opt{method} =~ /^scp\b/) { + ## assume it's there? + ## ... + } + else { + mkdir($tgt_dirpath, 0750) or die "Can't create '$tgt_dirpath': $!\n" + unless -d $tgt_dirpath; + my @f_info= stat "$datadir/$rdb->{src}"; + chown $f_info[4], $f_info[5], $tgt_dirpath; + } +} + +############################## +# --- PERFORM THE HOT-COPY --- +# +# Note that we try to keep the time between the LOCK and the UNLOCK +# as short as possible, and only start when we know that we should +# be able to complete without error. + +# read lock all the tables we'll be copying +# in order to get a consistent snapshot of the database + +if ( $opt{checkpoint} || $opt{record_log_pos} ) { + # convert existing READ lock on checkpoint and/or log_pos table into WRITE lock + foreach my $table ( grep { defined } ( $opt{checkpoint}, $opt{record_log_pos} ) ) { + $hc_locks .= ", $table WRITE" + unless ( $hc_locks =~ s/$table\s+READ/$table WRITE/ ); + } +} + +my $hc_started = time; # count from time lock is granted + +if ( $opt{dryrun} ) { + if ( $opt{old_server} ) { + print "LOCK TABLES $hc_locks\n"; + print "FLUSH TABLES /*!32323 $hc_tables */\n"; + } + else { + # Lock base tables and views separately. + print "FLUSH TABLES $hc_base_tables WITH READ LOCK\n" + if ( $hc_base_tables ); + print "LOCK TABLES $hc_views READ\n" if ( $hc_views ); + } + + print "FLUSH LOGS\n" if ( $opt{flushlog} ); + print "RESET MASTER\n" if ( $opt{resetmaster} ); + print "RESET SLAVE\n" if ( $opt{resetslave} ); +} +else { + my $start = time; + if ( $opt{old_server} ) { + $dbh->do("LOCK TABLES $hc_locks"); + printf "Locked $num_tables tables in %d seconds.\n", time-$start unless $opt{quiet}; + $hc_started = time; # count from time lock is granted + + # flush tables to make on-disk copy up to date + $start = time; + $dbh->do("FLUSH TABLES /*!32323 $hc_tables */"); + printf "Flushed tables ($hc_tables) in %d seconds.\n", time-$start unless $opt{quiet}; + } + else { + # Lock base tables and views separately, as 'FLUSH TABLES + # ... WITH READ LOCK' (introduced in 5.5) would fail for views. + # Also, flush tables to make on-disk copy up to date + $dbh->do("FLUSH TABLES $hc_base_tables WITH READ LOCK") + if ( $hc_base_tables ); + printf "Flushed $num_base_tables tables with read lock ($hc_base_tables) in %d seconds.\n", + time-$start unless $opt{quiet}; + + $start = time; + $dbh->do("LOCK TABLES $hc_views READ") if ( $hc_views ); + printf "Locked $num_views views ($hc_views) in %d seconds.\n", + time-$start unless $opt{quiet}; + + $hc_started = time; # count from time lock is granted + } + $dbh->do( "FLUSH LOGS" ) if ( $opt{flushlog} ); + $dbh->do( "RESET MASTER" ) if ( $opt{resetmaster} ); + $dbh->do( "RESET SLAVE" ) if ( $opt{resetslave} ); + + if ( $opt{record_log_pos} ) { + record_log_pos( $dbh, $opt{record_log_pos} ); + $dbh->do("FLUSH TABLES /*!32323 $hc_tables */"); + } +} + +my @failed = (); + +foreach my $rdb ( @db_desc ) +{ + my @files = map { "$datadir/$rdb->{src}/$_" } @{$rdb->{files}}; + next unless @files; + + eval { copy_files($opt{method}, \@files, $rdb->{target}); }; + push @failed, "$rdb->{src} -> $rdb->{target} failed: $@" + if ( $@ ); + + @files = @{$rdb->{index}}; + if ($rdb->{index}) + { + copy_index($opt{method}, \@files, + "$datadir/$rdb->{src}", $rdb->{target} ); + } + + if ( $opt{checkpoint} ) { + my $msg = ( $@ ) ? "Failed: $@" : "Succeeded"; + + eval { + $dbh->do( qq{ insert into $opt{checkpoint} (src, dest, msg) + VALUES ( '$rdb->{src}', '$rdb->{target}', '$msg' ) + } ); + }; + + if ( $@ ) { + warn "Failed to update checkpoint table: $@\n"; + } + } +} + +if ( $opt{dryrun} ) { + print "UNLOCK TABLES\n"; + if ( @existing && !$opt{keepold} ) { + my @oldies = map { $_ . '_old' } @existing; + print "rm -rf @oldies\n" + } + $dbh->disconnect(); + exit(0); +} +else { + $dbh->do("UNLOCK TABLES"); +} + +my $hc_dur = time - $hc_started; +printf "Unlocked tables.\n" unless $opt{quiet}; + +# +# --- HOT-COPY COMPLETE --- +########################### + +$dbh->disconnect; + +if ( @failed ) { + # hotcopy failed - cleanup + # delete any @targets + # rename _old copy back to original + + my @targets = (); + foreach my $rdb ( @db_desc ) { + push @targets, $rdb->{target} if ( -d $rdb->{target} ); + } + print "Deleting @targets \n" if $opt{debug}; + + print "Deleting @targets \n" if $opt{debug}; + rmtree([@targets]); + if (@existing) { + print "Restoring @existing from back-up\n" if $opt{debug}; + foreach my $dir ( @existing ) { + rename("${dir}_old", $dir ) + or warn "Can't rename ${dir}_old to $dir: $!\n"; + } + } + + die join( "\n", @failed ); +} +else { + # hotcopy worked + # delete _old unless $opt{keepold} + + if ( @existing && !$opt{keepold} ) { + my @oldies = map { $_ . '_old' } @existing; + print "Deleting previous copy in @oldies\n" if $opt{debug}; + rmtree([@oldies]); + } + + printf "$0 copied %d tables (%d files) in %d second%s (%d seconds overall).\n", + $num_tables, $num_files, + $hc_dur, ($hc_dur==1)?"":"s", time - $start_time + unless $opt{quiet}; +} + +exit 0; + + +# --- + +sub copy_files { + my ($method, $files, $target) = @_; + my @cmd; + print "Copying ".@$files." files...\n" unless $opt{quiet}; + + if ($method =~ /^s?cp\b/) # cp or scp with optional flags + { + my $cp = $method; + # add option to preserve mod time etc of copied files + # not critical, but nice to have + $cp.= " -p" if $^O =~ m/^(solaris|linux|freebsd|darwin)$/; + + # add recursive option for scp + $cp.= " -r" if $^O =~ /m^(solaris|linux|freebsd|darwin)$/ && $method =~ /^scp\b/; + + # perform the actual copy + safe_system( $cp, (map { "'$_'" } @$files), "'$target'" ); + } + else + { + die "Can't use unsupported method '$method'\n"; + } +} + +# +# Copy only the header of the index file +# + +sub copy_index +{ + my ($method, $files, $source, $target) = @_; + + print "Copying indices for ".@$files." files...\n" unless $opt{quiet}; + foreach my $file (@$files) + { + my $from="$source/$file"; + my $to="$target/$file"; + my $buff; + open(INPUT, "<$from") || die "Can't open file $from: $!\n"; + binmode(INPUT, ":raw"); + my $length=read INPUT, $buff, 2048; + die "Can't read index header from $from\n" if ($length < 1024); + close INPUT; + + if ( $opt{dryrun} ) + { + print "$opt{method}-header $from $to\n"; + } + elsif ($opt{method} eq 'cp') + { + open(OUTPUT,">$to") || die "Can\'t create file $to: $!\n"; + if (syswrite(OUTPUT,$buff) != length($buff)) + { + die "Error when writing data to $to: $!\n"; + } + close OUTPUT || die "Error on close of $to: $!\n"; + } + elsif ($opt{method} =~ /^scp\b/) + { + my ($fh, $tmp)= tempfile('mysqlhotcopy-XXXXXX', DIR => $opt_tmpdir) or + die "Can\'t create/open file in $opt_tmpdir\n"; + if (syswrite($fh,$buff) != length($buff)) + { + die "Error when writing data to $tmp: $!\n"; + } + close $fh || die "Error on close of $tmp: $!\n"; + safe_system("$opt{method} $tmp $to"); + unlink $tmp; + } + else + { + die "Can't use unsupported method '$opt{method}'\n"; + } + } +} + + +sub safe_system { + my @sources= @_; + my $method= shift @sources; + my $target= pop @sources; + ## @sources = list of source file names + + ## We have to deal with very long command lines, otherwise they may generate + ## "Argument list too long". + ## With 10000 tables the command line can be around 1MB, much more than 128kB + ## which is the common limit on Linux (can be read from + ## /usr/src/linux/include/linux/binfmts.h + ## see http://www.linuxjournal.com/article.php?sid=6060). + + my $chunk_limit= 100 * 1024; # 100 kB + my @chunk= (); + my $chunk_length= 0; + foreach (@sources) { + push @chunk, $_; + $chunk_length+= length($_); + if ($chunk_length > $chunk_limit) { + safe_simple_system($method, @chunk, $target); + @chunk=(); + $chunk_length= 0; + } + } + if ($chunk_length > 0) { # do not forget last small chunk + safe_simple_system($method, @chunk, $target); + } +} + +sub safe_simple_system { + my @cmd= @_; + + if ( $opt{dryrun} ) { + print "@cmd\n"; + } + else { + ## for some reason system fails but backticks works ok for scp... + print "Executing '@cmd'\n" if $opt{debug}; + my $cp_status = system "@cmd > /dev/null"; + if ($cp_status != 0) { + warn "Executing command failed ($cp_status). Trying backtick execution...\n"; + ## try something else + `@cmd` || die "Error: @cmd failed ($?) while copying files.\n"; + } + } +} + +sub retire_directory { + my ( @dir ) = @_; + + foreach my $dir ( @dir ) { + my $tgt_oldpath = $dir . '_old'; + if ( $opt{dryrun} ) { + print "rmtree $tgt_oldpath\n" if ( -d $tgt_oldpath ); + print "rename $dir, $tgt_oldpath\n"; + next; + } + + if ( -d $tgt_oldpath ) { + print "Deleting previous 'old' hotcopy directory ('$tgt_oldpath')\n" unless $opt{quiet}; + rmtree([$tgt_oldpath],0,1); + } + rename($dir, $tgt_oldpath) + or die "Can't rename $dir=>$tgt_oldpath: $!\n"; + print "Existing hotcopy directory renamed to '$tgt_oldpath'\n" unless $opt{quiet}; + } +} + +sub record_log_pos { + my ( $dbh, $table_name ) = @_; + + eval { + my ($file,$position) = get_row( $dbh, "show master status" ); + die "master status is undefined" if !defined $file || !defined $position; + + my $row_hash = get_row_hash( $dbh, "show slave status" ); + my ($master_host, $log_file, $log_pos ); + if ( $dbh->{mysql_serverinfo} =~ /^3\.23/ ) { + ($master_host, $log_file, $log_pos ) + = @{$row_hash}{ qw / Master_Host Log_File Pos / }; + } else { + ($master_host, $log_file, $log_pos ) + = @{$row_hash}{ qw / Master_Host Relay_Master_Log_File Exec_Master_Log_Pos / }; + } + my $hostname = hostname(); + + $dbh->do( qq{ replace into $table_name + set host=?, log_file=?, log_pos=?, + master_host=?, master_log_file=?, master_log_pos=? }, + undef, + $hostname, $file, $position, + $master_host, $log_file, $log_pos ); + + }; + + if ( $@ ) { + warn "Failed to store master position: $@\n"; + } +} + +sub get_row { + my ( $dbh, $sql ) = @_; + + my $sth = $dbh->prepare($sql); + $sth->execute; + return $sth->fetchrow_array(); +} + +sub get_row_hash { + my ( $dbh, $sql ) = @_; + + my $sth = $dbh->prepare($sql); + $sth->execute; + return $sth->fetchrow_hashref(); +} + +sub get_list_of_tables { + my ( $db ) = @_; + + my $tables = + eval { + $dbh->selectall_arrayref('SHOW FULL TABLES FROM ' . + $dbh->quote_identifier($db) . + ' WHERE Table_type = \'BASE TABLE\'') + } || []; + warn "Unable to retrieve list of tables in $db: $@" if $@; + + return (map { $_->[0] } @$tables); +} + +sub get_list_of_views { + my ( $db ) = @_; + + my $views = + eval { + $dbh->selectall_arrayref('SHOW FULL TABLES FROM ' . + $dbh->quote_identifier($db) . + ' WHERE Table_type = \'VIEW\'') + } || []; + warn "Unable to retrieve list of views in $db: $@" if $@; + + return (map { $_->[0] } @$views); +} + +sub quote_names { + my ( $name ) = @_; + # given a db.table name, add quotes + + my ($db, $table, @cruft) = split( /\./, $name ); + die "Invalid db.table name '$name'" if (@cruft || !defined $db || !defined $table ); + + # Earlier versions of DBD return table name non-quoted, + # such as DBD-2.1012 and the newer ones, such as DBD-2.9002 + # returns it quoted. Let's have a support for both. + $table=~ s/\`//g; + return "`$db`.`$table`"; +} + +__END__ + +=head1 DESCRIPTION + +mysqlhotcopy is designed to make stable copies of live MySQL databases. + +Here "live" means that the database server is running and the database +may be in active use. And "stable" means that the copy will not have +any corruptions that could occur if the table files were simply copied +without first being locked and flushed from within the server. + +=head1 OPTIONS + +=over 4 + +=item --checkpoint checkpoint-table + +As each database is copied, an entry is written to the specified +checkpoint-table. This has the happy side-effect of updating the +MySQL update-log (if it is switched on) giving a good indication of +where roll-forward should begin for backup+rollforward schemes. + +The name of the checkpoint table should be supplied in database.table format. +The checkpoint-table must contain at least the following fields: + +=over 4 + + time_stamp timestamp not null + src varchar(32) + dest varchar(60) + msg varchar(255) + +=back + +=item --record_log_pos log-pos-table + +Just before the database files are copied, update the record in the +log-pos-table from the values returned from "show master status" and +"show slave status". The master status values are stored in the +log_file and log_pos columns, and establish the position in the binary +logs that any slaves of this host should adopt if initialised from +this dump. The slave status values are stored in master_host, +master_log_file, and master_log_pos, corresponding to the coordinates +of the next to the last event the slave has executed. The slave or its +siblings can connect to the master next time and request replication +starting from the recorded values. + +The name of the log-pos table should be supplied in database.table format. +A sample log-pos table definition: + +=over 4 + +CREATE TABLE log_pos ( + host varchar(60) NOT null, + time_stamp timestamp NOT NULL, + log_file varchar(32) default NULL, + log_pos int(11) default NULL, + master_host varchar(60) NULL, + master_log_file varchar(32) NULL, + master_log_pos int NULL, + + PRIMARY KEY (host) +); + +=back + + +=item --suffix suffix + +Each database is copied back into the originating datadir under +a new name. The new name is the original name with the suffix +appended. + +If only a single db_name is supplied and the --suffix flag is not +supplied, then "--suffix=_copy" is assumed. + +=item --allowold + +Move any existing version of the destination to a backup directory for +the duration of the copy. If the copy successfully completes, the backup +directory is deleted - unless the --keepold flag is set. If the copy fails, +the backup directory is restored. + +The backup directory name is the original name with "_old" appended. +Any existing versions of the backup directory are deleted. + +=item --keepold + +Behaves as for the --allowold, with the additional feature +of keeping the backup directory after the copy successfully completes. + +=item --addtodest + +Don't rename target directory if it already exists, just add the +copied files into it. + +This is most useful when backing up a database with many large +tables and you don't want to have all the tables locked for the +whole duration. + +In this situation, I you are happy for groups of tables to be +backed up separately (and thus possibly not be logically consistent +with one another) then you can run mysqlhotcopy several times on +the same database each with different db_name./table_regex/. +All but the first should use the --addtodest option so the tables +all end up in the same directory. + +=item --flushlog + +Rotate the log files by executing "FLUSH LOGS" after all tables are +locked, and before they are copied. + +=item --resetmaster + +Reset the bin-log by executing "RESET MASTER" after all tables are +locked, and before they are copied. Useful if you are recovering a +slave in a replication setup. + +=item --resetslave + +Reset the master.info by executing "RESET SLAVE" after all tables are +locked, and before they are copied. Useful if you are recovering a +server in a mutual replication setup. + +=item --regexp pattern + +Copy all databases with names matching the pattern. + +=item --regexp /pattern1/./pattern2/ + +Copy all tables with names matching pattern2 from all databases with +names matching pattern1. For example, to select all tables which +names begin with 'bar' from all databases which names end with 'foo': + + mysqlhotcopy --indices --method=cp --regexp /foo$/./^bar/ + +=item db_name./pattern/ + +Copy only tables matching pattern. Shell metacharacters ( (, ), |, !, +etc.) have to be escaped (e.g., \). For example, to select all tables +in database db1 whose names begin with 'foo' or 'bar': + + mysqlhotcopy --indices --method=cp db1./^\(foo\|bar\)/ + +=item db_name./~pattern/ + +Copy only tables not matching pattern. For example, to copy tables +that do not begin with foo nor bar: + + mysqlhotcopy --indices --method=cp db1./~^\(foo\|bar\)/ + +=item -?, --help + +Display help-screen and exit. + +=item -u, --user=# + +User for database login if not current user. + +=item -p, --password=# + +Password to use when connecting to the server. Note that you are strongly +encouraged *not* to use this option as every user would be able to see the +password in the process list. Instead use the '[mysqlhotcopy]' section in +one of the config files, normally /etc/my.cnf or your personal ~/.my.cnf. +(See the chapter 'my.cnf Option Files' in the manual.) + +=item -h, -h, --host=# + +Hostname for local server when connecting over TCP/IP. By specifying this +different from 'localhost' will trigger mysqlhotcopy to use TCP/IP connection. + +=item -P, --port=# + +Port to use when connecting to MySQL server with TCP/IP. This is only used +when using the --host option. + +=item -S, --socket=# + +UNIX domain socket to use when connecting to local server. + +=item --old_server + +Use old server (pre v5.5) commands. + +=item --noindices + +Don\'t include index files in copy. Only up to the first 2048 bytes +are copied; You can restore the indexes with isamchk -r or myisamchk -r +on the backup. + +=item --method=# + +Method for copy (only "cp" currently supported). Alpha support for +"scp" was added in November 2000. Your experience with the scp method +will vary with your ability to understand how scp works. 'man scp' +and 'man ssh' are your friends. + +The destination directory _must exist_ on the target machine using the +scp method. --keepold and --allowold are meaningless with scp. +Liberal use of the --debug option will help you figure out what\'s +really going on when you do an scp. + +Note that using scp will lock your tables for a _long_ time unless +your network connection is _fast_. If this is unacceptable to you, +use the 'cp' method to copy the tables to some temporary area and then +scp or rsync the files at your leisure. + +=item -q, --quiet + +Be silent except for errors. + +=item --debug + +Debug messages are displayed. + +=item -n, --dryrun + +Display commands without actually doing them. + +=back + +=head1 WARRANTY + +This software is free and comes without warranty of any kind. You +should never trust backup software without studying the code yourself. +Study the code inside this script and only rely on it if I believe +that it does the right thing for you. + +Patches adding bug fixes, documentation and new features are welcome. +Please send these to internals@lists.mysql.com. + +=head1 TO DO + +Extend the individual table copy to allow multiple subsets of tables +to be specified on the command line: + + mysqlhotcopy db newdb t1 t2 /^foo_/ : t3 /^bar_/ : + + +where ":" delimits the subsets, the /^foo_/ indicates all tables +with names beginning with "foo_" and the "+" indicates all tables +not copied by the previous subsets. + +'newdb' is either the name of the new database, or the full path name +of the new database file. The database should not already exist. + +Add option to lock each table in turn for people who don\'t need +cross-table integrity. + +Add option to FLUSH STATUS just before UNLOCK TABLES. + +Add support for other copy methods (e.g., tar to single file?). + +Add support for forthcoming MySQL ``RAID'' table subdirectory layouts. + +=head1 AUTHOR + +Tim Bunce + +Martin Waite - Added checkpoint, flushlog, regexp and dryrun options. + Fixed cleanup of targets when hotcopy fails. + Added --record_log_pos. + RAID tables are now copied (don't know if this works over scp). + +Ralph Corderoy - Added synonyms for commands. + +Scott Wiersdorf - Added table regex and scp support. + +Monty - Working --noindex (copy only first 2048 bytes of index file). + Fixes for --method=scp. + +Ask Bjoern Hansen - Cleanup code to fix a few bugs and enable -w again. + +Emil S. Hansen - Added resetslave and resetmaster. + +Jeremy D. Zawodny - Removed deprecated DBI calls. Fixed bug which +resulted in nothing being copied when a regexp was specified but no +database name(s). + +Martin Waite - Fix to handle database name that contains space. + +Paul DuBois - Remove end '/' from directory names. diff --git a/database/bin/mysqlimport b/database/bin/mysqlimport new file mode 100755 index 0000000..55b055c Binary files /dev/null and b/database/bin/mysqlimport differ diff --git a/database/bin/mysqlshow b/database/bin/mysqlshow new file mode 100755 index 0000000..4ae7893 Binary files /dev/null and b/database/bin/mysqlshow differ diff --git a/database/bin/mysqlslap b/database/bin/mysqlslap new file mode 100755 index 0000000..55733e3 Binary files /dev/null and b/database/bin/mysqlslap differ diff --git a/database/bin/mysqltest b/database/bin/mysqltest new file mode 100755 index 0000000..b95ef73 Binary files /dev/null and b/database/bin/mysqltest differ diff --git a/database/bin/mysqltest_embedded b/database/bin/mysqltest_embedded new file mode 100755 index 0000000..74006cd Binary files /dev/null and b/database/bin/mysqltest_embedded differ diff --git a/database/bin/mytop b/database/bin/mytop new file mode 100755 index 0000000..b3dbf55 --- /dev/null +++ b/database/bin/mytop @@ -0,0 +1,2468 @@ +#!/usr/bin/perl -w +# +# $Id: mytop,v 1.91 2012/01/18 16:49:12 mgrennan Exp $ + +=pod + +=head1 NAME + +mytop - display MySQL server performance info like `top' + +=cut + +## most of the POD is at the bottom of the file + +use 5.005; +use strict; +use DBI; +use Getopt::Long; +use Socket; +use List::Util qw(min max); +use File::Basename; + +$main::VERSION = "1.91a"; +my $path_for_script= dirname($0); + +$|=1; +$0 = 'mytop'; + +my $WIN = ($^O eq 'MSWin32') ? 1 : 0; + +## Test for color support. + +eval { require Term::ANSIColor; }; + +my $HAS_COLOR = $@ ? 0 : 1; + +$HAS_COLOR = 0 if $WIN; + +## Test of Time::HiRes support + +eval { require Time::HiRes }; + +my $HAS_TIME = $@ ? 0 : 1; + +my $debug = 0; + +## Try to lower our priority (which, who, pri) + +setpriority(0,0,10) unless $WIN; + +## Prototypes + +sub Clear(); +sub GetData(); +sub GetQPS(); +sub FullQueryInfo($); +sub Explain($); +sub PrintTable(@); +sub PrintHelp(); +sub Sum(@); +sub commify($); +sub make_short($); +sub Hashes($); +sub Execute($); +sub StringOrRegex($); +sub GetInnoDBStatus(); +sub GetCmdSummary(); +sub GetShowVariables(); +sub GetShowStatus(); +sub cmd_s; +sub cmd_S; +sub cmd_q; +sub FindProg($); + +## Default Config Values + +my %config = ( + batchmode => 0, + color => 1, + db => 'test', + delay => 5, + filter_user => qr/.?/, + filter_db => qr/.?/, + filter_host => qr/.?/, + filter_state => qr/.?/, + header => 1, + help => 0, + host => 'localhost', + idle => 1, + long => 120, + long_nums => 0, + mode => 'top', + prompt => 0, + pass => '', + port => 3306, + resolve => 0, + slow => 10, # slow query time + socket => '', + sort => 1, # default or reverse sort ("s") + user => 'root', + fullqueries => 0 +); + +my %qcache = (); ## The query cache--used for full query info support. +my %ucache = (); ## The user cache--used for full killing by user +my %dbcache = (); ## The db cache. This should be merged at some point. +my %statcache = (); ## The show status cache for GetShowStatus() + +my (%STATUS, %OLD_STATUS); # header stuff. + +my $CLEAR = $WIN ? '': `clear`; + +## Term::ReadKey values + +my $RM_RESET = 0; +my $RM_NOBLKRD = 3; ## using 4 traps Ctrl-C :-( + +# Add options from .my.cnf first + +my $my_print_defaults; +if (!defined($my_print_defaults=my_which("my_print_defaults"))) +{ + print "Warning: Can't find my_print_defaults. Please add it to your PATH!\n"; + exit(1); +} + +unshift @ARGV, split "\n", `$my_print_defaults client mytop`; + +## Read the user's config file, if it exists. + +my $config = "$ENV{HOME}/.mytop"; + +if (-e $config) +{ + if (open CFG, "<$config") + { + while () + { + next if /^\s*$/; ## skip blanks + next if /^\s*#/; ## skip comments + + chomp; + + if (/(\S+)\s*=\s*(.*\S)/) + { + $config{lc $1} = $2 if exists $config{lc $1}; + } + } + close CFG; + } +} + +## Command-line args. + +use vars qw($opt_foo); + +Getopt::Long::Configure('no_ignore_case', 'bundling'); + +GetOptions( + "color!" => \$config{color}, + "user|u=s" => \$config{user}, + "pass|password|p=s" => \$config{pass}, + "database|db|d=s" => \$config{db}, + "host|h=s" => \$config{host}, + "port|P=i" => \$config{port}, + "socket|S=s" => \$config{socket}, + "delay|s=i" => \$config{delay}, + "batch|batchmode|b" => \$config{batchmode}, + "header!" => \$config{header}, + "idle|i!" => \$config{idle}, + "resolve|r!" => \$config{resolve}, + "prompt!" => \$config{prompt}, + "long=i" => \$config{long}, + "long_nums!" => \$config{long_nums}, + "mode|m=s" => \$config{mode}, + "slow=i" => \$config{slow}, + "sort=s" => \$config{sort}, + "fullqueries|L!" => \$config{fullqueries} +); + +## User may have put the port with the host. + +if ($config{host} =~ s/:(\d+)$//) +{ + $config{port} = $1; +} + +## Don't use Term::ReadKey unless running interactively. + +if (not $config{batchmode}) +{ + require Term::ReadKey; + Term::ReadKey->import(); +} + +## User may want to disable color. + +if ($HAS_COLOR and not $config{color}) +{ + $HAS_COLOR = 0; +} + +if ($HAS_COLOR) +{ + import Term::ANSIColor ':constants'; +} +else +{ + *RESET = sub { }; + *YELLOW = sub { }; + *RED = sub { }; + *MAGENTA = sub { }; + *GREEN = sub { }; + *BLUE = sub { }; + *WHITE = sub { }; + *BOLD = sub { }; +} + +my $RESET = RESET() || ''; +my $YELLOW = YELLOW() || ''; +my $RED = RED() || ''; +my $MAGENTA = MAGENTA() || ''; +my $GREEN = GREEN() || ''; +my $BLUE = BLUE() || ''; +my $WHITE = WHITE() || ''; +my $BOLD = BOLD() || ''; + +## Connect + +my $dsn; + +## Socket takes precedence. + +$dsn ="DBI:mysql:database=$config{db};mysql_read_default_group=mytop;"; + +if ($config{socket} and -S $config{socket}) +{ + $dsn .= "mysql_socket=$config{socket}"; +} +else +{ + $dsn .= "host=$config{host};port=$config{port}"; +} + +if ($config{prompt}) +{ + print "Password: "; + ReadMode(2); + chomp($config{pass} = ); + ReadMode(0); + print "\n"; +} + +my $dbh = DBI->connect($dsn, $config{user}, $config{pass}, + { PrintError => 0 }); + +if (not ref $dbh) +{ + my $Error = <{Variable_name} eq "version") + { + $db_version = $_->{Value}; + $db_version =~ /(\d+)/; + $db_release= $1; + $server="MariaDB" if ($db_version =~ /maria/i); + next; + } + if ($_->{Variable_name} eq "have_query_cache") + { +# if ($_->{Value} eq 'YES') + if ($_->{Value} eq 'YES' or $_->{Value} eq 'DEMAND') # http://freshmeat.net/users/jerjones + { + $have_query_cache = 1; + } + else + { + $have_query_cache = 0; + } + next; + } +} + +######################################################################### +## +## The main loop +## +######################################################################### + +ReadMode($RM_NOBLKRD) unless $config{batchmode}; + +while (1) +{ + my $key; + + if ($config{mode} eq 'qps') + { + GetQPS(); + $key = ReadKey(1); + + next unless $key; + + if ($key =~ /t/i) + { + $config{mode} = 'top'; + } + if ($key =~ /q/) + { + cmd_q(); + } + next; + } + if ($config{mode} eq 'top') + { + GetData(); + last if $config{batchmode}; + $key = ReadKey($config{delay}); + next unless $key; + } + elsif ($config{mode} eq 'cmd') + { + GetCmdSummary(); + last if $config{batchmode}; + $key = ReadKey($config{delay}); + next unless $key; + } + elsif ($config{mode} eq 'innodb') + { + GetInnoDBStatus(); + last if $config{batchmode}; + $key = ReadKey($config{delay}); + next unless $key; + } + elsif ($config{mode} eq 'status') + { + GetShowStatus(); + last if $config{batchmode}; + $key = ReadKey($config{delay}); + next unless $key; + } + + ## + ## keystroke command processing (if we get this far) + ## + + if ($key eq '!') + { + Execute("stop slave"); + Execute("set global sql_slave_skip_counter=1"); + Execute("start slave"); + } + + # t - top + + if ($key =~ /t/i) + { + $config{mode} = 'top'; + } + + ## q - quit + + if ($key eq 'q') + { + cmd_q(); + } + + if ($key eq 'D') + { + require Data::Dumper; + print Data::Dumper::Dumper([\%config]); + ReadKey(0); + } + + ## l - change long running hightling + + if ($key eq 'l') + { + cmd_l(); + next; + } + + ## m - mode switch to qps + + if ($key eq 'm') + { + $config{mode} = 'qps'; + Clear() unless $config{batchmode}; + print "Queries Per Second [hit q to exit this mode]\n"; + next; + } + + ## c - mode switch to command summary + + if ($key eq 'c') + { + $config{mode} = 'cmd'; + Clear() unless $config{batchmode}; + print "Command Summary [hit q to exit this mode]\n"; + next; + } + + ## C - change Color on and off + + if ($key eq 'C') + { + if ( $HAS_COLOR ) + { + $HAS_COLOR = 0; + } + else + { + $HAS_COLOR = 1; + } + } + + ## s - seconds of delay + + if ($key eq 's') + { + cmd_s(); + next; + } + + if ($key eq 'S') + { + cmd_S(); + next; + } + + ## R - resolve hostnames + if ($key eq 'R') + { + if ($config{resolve}) + { + $config{resolve} = 0; + } + else + { + $config{resolve} = 1; + } + } + + ## t - username based filter + + if ($key eq 't') + { + ReadMode($RM_RESET); + print RED(), "Which state (blank for all, /.../ for regex): ", RESET(); + $config{filter_state} = StringOrRegex(ReadLine(0)); + ReadMode($RM_NOBLKRD); + next; + } + + ## u - username based filter + + if ($key eq 'u') + { + ReadMode($RM_RESET); + print RED(), "Which user (blank for all, /.../ for regex): ", RESET(); + $config{filter_user} = StringOrRegex(ReadLine(0)); + ReadMode($RM_NOBLKRD); + next; + } + + ## d - database name based filter + + if ($key eq 'd') + { + ReadMode($RM_RESET); + print RED(), "Which database (blank for all, /.../ for regex): ", + RESET(); + $config{filter_db} = StringOrRegex(ReadLine(0)); + ReadMode($RM_NOBLKRD); + next; + } + + ## h - hostname based filter + + if ($key eq 'h') + { + ReadMode($RM_RESET); + print RED(), "Which hostname (blank for all, /.../ for regex): ", + RESET(); + $config{filter_host} = StringOrRegex(ReadLine(0)); + ReadMode($RM_NOBLKRD); + next; + } + + ## E - Show full Replication Error + + if ($key eq 'E') + { + my($data) = Hashes('SHOW SLAVE STATUS'); + Clear(); + print "Error is: $data->{Last_Error}\n"; + print RED(), "-- paused. press any key to resume --", RESET(); + ReadKey(0); + next; + } + ## F - remove all filters + + if ($key eq 'F') + { + $config{filter_host} = qr/.?/; + $config{filter_db} = qr/.?/; + $config{filter_user} = qr/.?/; + $config{filter_state} = qr/.?/; + print RED(), "-- display unfiltered --", RESET(); + sleep 1; + next; + } + + ## p - pause + + if ($key eq 'p') + { + print RED(), "-- paused. press any key to resume --", RESET(); + ReadKey(0); + next; + } + + ## i - idle toggle + + if ($key =~ /i/) + { + if ($config{idle}) + { + $config{idle} = 0; + $config{sort} = 1; + print RED(), "-- idle (sleeping) processed filtered --", RESET(); + sleep 1; + } + else + { + $config{idle} = 1; + $config{sort} = 0; + print RED(), "-- idle (sleeping) processed unfiltered --", RESET(); + sleep 1; + } + } + + ## I - InnoDB status + + if ($key =~ 'I') + { + $config{mode} = 'innodb'; + Clear() unless $config{batchmode}; + print "InnoDB Status [hit q to exit this mode]\n"; + next; + } + + ## o - sort order + + if ($key =~ /o/) + { + if ($config{sort}) + { + $config{sort} = 0; + print RED(), "-- sort order reversed --", RESET(); + sleep 1; + } + else + { + $config{sort} = 1; + print RED(), "-- sort order reversed --", RESET(); + sleep 1; + } + } + + ## ? - help + + if ($key eq '?') + { + Clear(); + PrintHelp(); + ReadKey(0); + next; + } + + ## k - kill + + if ($key eq 'k') + { + ReadMode($RM_RESET); + + print RED(), "Thread id to kill: ", RESET(); + my $id = ReadLine(0); + + $id =~ s/\s//g; + + if ($id =~ /^\d+$/) + { + Execute("KILL $id"); + } + else + { + print RED(), "-- invalid thread id --", RESET(); + sleep 1; + } + + ReadMode($RM_NOBLKRD); + next; + } + + ## K - kill based on a username + if ($key =~ /K/) + { + ReadMode($RM_RESET); + + print RED(), "User to kill: ", RESET(); + my $user = ReadLine(0); + + $user =~ s/\s//g; + + if ($user =~ /^\S+$/) + { + for my $pid (keys %ucache) + { + next unless $ucache{$pid} eq $user; + Execute("KILL $pid"); + select(undef, undef, undef, 0.2); + } + } + else + { + print RED(), "-- invalid thread id --", RESET(); + sleep 1; + } + + ReadMode($RM_NOBLKRD); + } + + ## f - full info + + if ($key =~ /f/) + { + ReadMode($RM_RESET); + print RED(), "Full query for which thread id: ", RESET(); + my $id = ReadLine(0); + chomp $id; + FullQueryInfo($id); + ReadMode($RM_NOBLKRD); + print RED(), "-- paused. press any key to resume or (e) to explain --", + RESET(); + my $key = ReadKey(0); + + if ($key eq 'e') + { + Explain($id); + print RED(), "-- paused. press any key to resume --", RESET(); + ReadKey(0); + } + + next; + } + + ## e - explain + + if ($key =~ /e/) + { + ReadMode($RM_RESET); + print RED(), "Explain which query (id): ", RESET(); + my $id = ReadLine(0); + chomp $id; + Explain($id); + ReadMode($RM_NOBLKRD); + print RED(), "-- paused. press any key to resume --", RESET(); + ReadKey(0); + next; + } + + ## r - reset status counters + + if ($key =~ /r/) + { + Execute("FLUSH STATUS"); + print RED(), "-- counters reset --", RESET(); + sleep 1; + next; + } + + ## H - header toggle + + if ($key eq 'H') + { + if ($config{header}) + { + $config{header} = 0; + } + else + { + $config{header}++; + } + } + + ## # - magic debug key + + if ($key eq '#') + { + $debug = 1; + } + + if ($key eq 'V') + { + GetShowVariables(); + print RED(), "-- paused. press any key to resume --", RESET(); + ReadKey(0); + } + + # Switch to show status mode + + if ($key eq 'M') + { + $config{mode} = 'status'; + } + + ## L - full queries toggle + + if ($key eq 'L') + { + if ($config{fullqueries}) + { + $config{fullqueries} = 0; + print RED(), "-- full queries OFF --", RESET(); + sleep 1; + } + else + { + $config{fullqueries} = 1; + print RED(), "-- full queries ON --", RESET(); + sleep 1; + } + } + +} + +ReadMode($RM_RESET) unless $config{batchmode}; + +exit; + +####################################################################### + +sub Clear() +{ + if (not $WIN) + { + print "$CLEAR" + } + else + { + print "\n" x 90; ## dumb hack for now. Anyone know how to + ## clear the screen in dos window on a Win32 + ## system?? + } +} + +my $last_time; + +sub GetData() +{ + ## Get terminal info + my $now_time; + %qcache = (); ## recycle memory + %dbcache = (); + + my ($width, $height, $wpx, $hpx, $lines_left); + + if (not $config{batchmode}) + { + ($width, $height, $wpx, $hpx) = GetTerminalSize(); + $lines_left = $height - 2; + } + else + { + $height = 999_999; ## I hope you don't have more than that! + $lines_left = 999_999; + $width = 80; + } + + ## + ## Header stuff. + ## + if ($config{header}) + { + my @recs = ""; + if ( $db_release > 4 ) + { + @recs = Hashes("show global status"); + } + else + { + @recs = Hashes("show status"); + } + + ## if the server died or we lost connectivity + if (not @recs) + { + ReadMode($RM_RESET); + exit 1; + } + + ## get high-res or low-res time + my ($t_delta); + + if ($HAS_TIME) + { + $now_time = Time::HiRes::gettimeofday(); + } + else + { + $now_time = time; + } + + if ($last_time and $last_time != $now_time) + { + $t_delta = $now_time - $last_time; + } + + %OLD_STATUS = %STATUS; + + # Set some status that may not exist in all versions + $STATUS{Handler_tmp_write}= 0; + $STATUS{Handler_tmp_update}= 0; + $STATUS{Rows_tmp_read}= 0; + + foreach my $ref (@recs) + { + my $key = $ref->{Variable_name}; + my $val = $ref->{Value}; + + $STATUS{$key} = $val; + } + + ## Compute Key Cache Hit Stats + + $STATUS{Key_read_requests} ||= 1; ## can't divide by zero next + + my $cache_hits_percent = (100-($STATUS{Key_reads}/$STATUS{Key_read_requests}) * 100); + $cache_hits_percent = sprintf("%2.2f",$cache_hits_percent); + + ## Query Cache info for <= Ver. 4.1 + ## + ## mysql> show status like 'qcache%'; + ## +-------------------------+----------+ + ## | Variable_name | Value | + ## +-------------------------+----------+ + ## | Qcache_queries_in_cache | 81 | + ## | Qcache_inserts | 4961668 | + ## | Qcache_hits | 1374170 | + ## | Qcache_not_cached | 5656249 | + ## | Qcache_free_memory | 33164800 | + ## | Qcache_free_blocks | 2 | + ## | Qcache_total_blocks | 168 | + ## +-------------------------+----------+ + ## + ## Query Cache info for => Ver. 5.0 + ## + ## mysql> show status like 'qcache%'; + ## +-------------------------+------------+ + ## | Variable_name | Value | + ## +-------------------------+------------+ + ## | Qcache_free_blocks | 37652 | + ## | Qcache_free_memory | 110289712 | + ## | Qcache_hits | 1460617356 | + ## | Qcache_inserts | 390563495 | + ## | Qcache_lowmem_prunes | 6414172 | + ## | Qcache_not_cached | 93002420 | + ## | Qcache_queries_in_cache | 66558 | + ## | Qcache_total_blocks | 192031 | + ## +-------------------------+------------+ + + my $query_cache_hits = 0; + my $query_cache_hits_per_sec = 0; + my $now_query_cache_hits_per_sec = 0; + + if ($have_query_cache) + { + $query_cache_hits = $STATUS{Qcache_hits}; + $query_cache_hits_per_sec = $STATUS{Qcache_hits} / $STATUS{Uptime}; + + if (defined $last_time and $last_time != $now_time) + { + my $q_delta = $STATUS{Qcache_hits} - $OLD_STATUS{Qcache_hits}; + $now_query_cache_hits_per_sec = sprintf "%.2f", $q_delta / $t_delta; + } + } + + open L, "; + close L; + chomp $l; + + $last_time = $now_time; + + ## Server Uptime in meaningful terms... + + my $time = $STATUS{Uptime}; + my ($d,$h,$m,$s) = (0, 0, 0, 0); + + $d += int($time / (60*60*24)); $time -= $d * (60*60*24); + $h += int($time / (60*60)); $time -= $h * (60*60); + $m += int($time / (60)); $time -= $m * (60); + $s += int($time); + + my $uptime = sprintf("%d+%02d:%02d:%02d", $d, $h, $m, $s); + + ## Queries per second... + + my $avg_queries_per_sec = sprintf("%.2f", $STATUS{Questions} / $STATUS{Uptime}); + my $num_queries = $STATUS{Questions}; + + my @t = localtime(time); + + my $current_time = sprintf "[%02d:%02d:%02d]", $t[2], $t[1], $t[0]; + + my $host_width = 50; + my $up_width = $width - $host_width - 1; + Clear() unless $config{batchmode}; + print RESET(); + + printf "%-.${host_width}s %${up_width}s\n", + "$server on $config{host} ($db_version)", + "up $uptime $current_time"; +# "load $l up $uptime $current_time"; + $lines_left--; + + + printf " Queries: %-6s qps: %4.0f Slow: %7s Se/In/Up/De(%%): %02.0f/%02.0f/%02.0f/%02.0f\n", + make_short( $STATUS{Questions} ), # q total + $STATUS{Questions} / $STATUS{Uptime}, # qps, average + make_short( $STATUS{Slow_queries} ), # slow + + # hmm. a Qcache hit is really a select and should be counted. + 100 * ($STATUS{Com_select} + ($STATUS{Qcache_hits}||0) ) / $STATUS{Questions}, + 100 * ($STATUS{Com_insert} + $STATUS{Com_replace} ) / $STATUS{Questions}, + 100 * ($STATUS{Com_update} ) / $STATUS{Questions}, + 100 * $STATUS{Com_delete} / $STATUS{Questions}; + + $lines_left--; + + if ($t_delta) + { + my $q_diff = ( $STATUS{Questions} - $OLD_STATUS{Questions} ); +# print("q_diff: $STATUS{Questions} - $OLD_STATUS{Questions} / $t_delta = $q_diff\n"); + + printf(" Sorts: %5.0f qps now: %4.0f Slow qps: %3.1f Threads: %4.0f (%4.0f/%4.0f) %02.0f/%02.0f/%02.0f/%02.0f\n", + ( $STATUS{Sort_rows} - $OLD_STATUS{Sort_rows} ) / $t_delta, + ( $STATUS{Questions} - $OLD_STATUS{Questions} ) / $t_delta, + ( # slow now (qps) + ($STATUS{Slow_queries} ) ? + ( $STATUS{Slow_queries} - $OLD_STATUS{Slow_queries} ) / $t_delta : + 0 + ), + $STATUS{Threads_connected}, + $STATUS{Threads_running}, + $STATUS{Threads_cached}, + + (100 * ($STATUS{Com_select} - $OLD_STATUS{Com_select} + + ($STATUS{Qcache_hits}||0) - ($OLD_STATUS{Qcache_hits}||0) + ) ) / ($q_diff ), + (100 * ($STATUS{Com_insert} - $OLD_STATUS{Com_insert} + + $STATUS{Com_replace} - $OLD_STATUS{Com_replace} + ) ) / ($q_diff ), + (100 * ($STATUS{Com_update} - $OLD_STATUS{Com_update}) ) / ($q_diff ), + (100 * ($STATUS{Com_delete} - $OLD_STATUS{Com_delete}) ) / ($q_diff ), + ); + } + else + { + print "\n"; + } + $lines_left--; + + if ($have_query_cache and $STATUS{Com_select} and $query_cache_hits) + { + printf(" Cache Hits: %-5s Hits/s: %4.1f Hits now: %5.1f Ratio: ", + make_short($STATUS{Qcache_hits}), # cache hits + $STATUS{Qcache_hits} / $STATUS{Uptime}, # hits / sec + ($t_delta) ? ($STATUS{Qcache_hits} - $OLD_STATUS{Qcache_hits}) / $t_delta : 0, # Hits Now + ); + + my($Ratio) = 100 * ($STATUS{Qcache_hits}) / ($STATUS{Qcache_hits} + $STATUS{Com_select} ); + if ($HAS_COLOR) + { + print YELLOW() if ($Ratio < 80.0); + print RED() if ($Ratio < 50.0); + print MAGENTA() if ($Ratio < 20.0); + } + printf("%4.1f%% ",$Ratio); + if ($HAS_COLOR) + { + print RESET(); + } + + print " Ratio now: "; + my($Ratio_now) = ($t_delta) ? # ratio now + 100 * ($STATUS{Qcache_hits} - $OLD_STATUS{Qcache_hits} ) / + ( ($STATUS{Com_select} + $STATUS{Qcache_hits} - + ($OLD_STATUS{Qcache_hits} + $OLD_STATUS{Com_select}) + ) || 1) : 0; + if ($HAS_COLOR) + { + print GREEN() if ($Ratio_now >= 80.0); + print YELLOW() if ($Ratio_now < 80.0); + print RED() if ($Ratio_now < 50.0); + print MAGENTA() if ($Ratio_now < 20.0); + } + printf("%4.1f%% \n",$Ratio_now); + if ($HAS_COLOR) + { + print RESET(); + } + } + $lines_left--; + + if ($t_delta) + { + my $rows_read; + if (defined($STATUS{Rows_read})) + { + $rows_read= $STATUS{Rows_read} - $OLD_STATUS{Rows_read}; + } + else + { + $rows_read= + ($STATUS{Handler_read_first}+$STATUS{Handler_read_key}+ + $STATUS{Handler_read_next}+$STATUS{Handler_read_prev}+ + $STATUS{Handler_read_rnd}+$STATUS{Handler_read_rnd_next} - + $OLD_STATUS{Handler_read_first}-$OLD_STATUS{Handler_read_key}- + $OLD_STATUS{Handler_read_next}-$OLD_STATUS{Handler_read_prev}- + $OLD_STATUS{Handler_read_rnd}- + $OLD_STATUS{Handler_read_rnd_next}); + } + printf(" Handler: (R/W/U/D) %5d/%5d/%5d/%5d Tmp: R/W/U: %5d/%5d/%5d\n", + $rows_read/$t_delta, + ($STATUS{Handler_write} - $OLD_STATUS{Handler_write}) / + $t_delta, + ($STATUS{Handler_update} - $OLD_STATUS{Handler_update}) / + $t_delta, + ($STATUS{Handler_delete} - $OLD_STATUS{Handler_delete}) / + $t_delta, + ($STATUS{Rows_tmp_read} - $OLD_STATUS{Rows_tmp_read}) / + $t_delta, + ($STATUS{Handler_tmp_write} + -$OLD_STATUS{Handler_tmp_write})/$t_delta, + ($STATUS{Handler_tmp_update} - + $OLD_STATUS{Handler_tmp_update})/$t_delta); + } + else + { + print "\n"; + } + + $lines_left--; + + printf(" ISAM Key Efficiency: %2.1f%% Bps in/out: %5s/%5s ", + $cache_hits_percent, + make_short($STATUS{Bytes_received} / $STATUS{Uptime} ), + make_short($STATUS{Bytes_sent} / $STATUS{Uptime})); + printf("Now in/out: %5s/%5s", + make_short(($STATUS{Bytes_received} - $OLD_STATUS{Bytes_received}) / $t_delta ), + make_short(($STATUS{Bytes_sent} - $OLD_STATUS{Bytes_sent}) / $t_delta )) + if ($t_delta); + print "\n"; + + $lines_left--; + + my($data) = Hashes('show global variables like "read_only"'); + if ($data->{Value} ne "OFF") + { + print RED() if ($HAS_COLOR) ; + print " ReadOnly"; + RESET() if ($HAS_COLOR); + } + + ($data) = Hashes('SHOW SLAVE STATUS'); + if (defined($data->{Master_Host})) + { + if (defined($data->{Seconds_Behind_Master})) + { + if ($HAS_COLOR) { + print GREEN(); + print YELLOW() if ($data->{Seconds_Behind_Master} > 60); + print MAGENTA() if ($data->{Seconds_Behind_Master} > 360); + } + } + print " Replication "; + print "Master:$data->{Master_Host} "; + print "IO:$data->{Slave_IO_Running} "; + print "SQL:$data->{Slave_SQL_Running} "; + print RESET() if ($HAS_COLOR); + + if (defined($data->{Seconds_Behind_Master})) + { + if ($HAS_COLOR) { + print GREEN(); + print YELLOW() if ($data->{Seconds_Behind_Master} > 60); + print MAGENTA() if ($data->{Seconds_Behind_Master} > 360); + } + print "Delay: $data->{Seconds_Behind_Master} sec."; + } else { + my $free = $width - 45; + my $Err = substr $data->{Last_Error},0 ,$free; + printf(" ERR: %-${free}s", $Err) if ( $Err ne "" ); + } + print WHITE() if ($HAS_COLOR); + print "\n"; + $lines_left--; + } + print "\n"; + } + + if (not $config{batchmode} and not $config{header}) + { + Clear(); + print RESET(); + } + + ## + ## Threads + ## + + my @sz = (9, 8, 15, 9, 6, 5, 6, 8); + my $used = scalar(@sz) + Sum(@sz); + my $state= $width <= 80 ? 6 : int(min(6+($width-80)/3, 15)); + my $free = $width - $used - ($state - 6); + my $format= "%9s %8s %15s %9s %6s %5s %6s %${state}s %-.${free}s\n"; + my $format2; + if ($config{fullqueries}) + { + $format2 = "%9d %8.8s %15.15s %9.9s %6d %5.1f %6.6s %${state}.${state}s %-${free}s\n"; + } else { + $format2 = "%9d %8.8s %15.15s %9.9s %6d %5.1f %6.6s %${state}.${state}s %-${free}.${free}s\n"; + } + print BOLD() if ($HAS_COLOR); + + printf $format, + 'Id','User','Host/IP','DB','Time', '%', 'Cmd', 'State', 'Query'; + + print RESET() if ($HAS_COLOR); + + ## Id User Host DB + printf $format, + '--','----','-------','--','----', '-', '---', '-----', '----------'; + + $lines_left -= 2; + + my $proc_cmd = "show full processlist"; + + my @data = Hashes($proc_cmd); + + foreach my $thread (@data) + { + last if not $lines_left; + + ## Drop Domain Name, unless it looks like an IP address. If + ## it's an IP, we'll strip the port number because it's rarely + ## interesting. + + my $is_ip = 0; + + if ($thread->{Host} =~ /^(\d{1,3}\.){3}(\d{1,3})(:\d+)?$/) + { + $thread->{Host} =~ s/:.*$//; + $is_ip = 1; + } + else + { + $thread->{Host} =~ s/^([^.]+).*/$1/; + } + + ## Otherwise, look up the IP (if resolve is set) and strip the + ## name + if ($is_ip and $config{resolve}) + { + $thread->{Host} =~ s/:\d+$//; +# my $host = $thread->{Host}; + my $host = gethostbyaddr(inet_aton($thread->{Host}), AF_INET); +# $host =~ s/^([^.]+).*/$1/; + $thread->{Host} = $host; + } + + ## Fix possible undefs + + $thread->{db} ||= ''; + $thread->{Info} ||= ''; + $thread->{Time} ||= 0 ; + $thread->{Id} ||= 0 ; + $thread->{User} ||= ''; + $thread->{Command} ||= ''; + $thread->{Host} ||= ''; + $thread->{State} ||= ""; + $thread->{Progress} ||= 0; + + ## alter double hyphen comments so they don't break + ## the query when newlines are removed - http://freshmeat.net/users/jerjones + $thread->{Info} =~ s~\s--(.*)$~ /* $1 */ ~mg; + + ## Normalize spaces -- mostly disabled for now. This can + ## break EXPLAIN if you try to explain a mangled query. It + ## may be re-enabled later as an option. + + ## leading space removal + $thread->{Info} =~ s/^\s*//; + + if (1) + { + ## remove newlines and carriage returns + $thread->{Info} =~ s/[\n\r]//g; + + ## collpase whitespace + $thread->{Info} =~ s/\s+/ /g; + } + + ## stow it in the cache + + $qcache{$thread->{Id}} = $thread->{Info}; + $dbcache{$thread->{Id}} = $thread->{db}; + $ucache{$thread->{Id}} = $thread->{User}; + + } + + ## Sort by idle time (closest thing to CPU usage I can think of). + + my @sorted; + + if (not $config{sort}) + { + @sorted = sort { $a->{Time} <=> $b->{Time} } @data + } + else + { + @sorted = sort { $b->{Time} <=> $a->{Time} } @data + } + + foreach my $thread (@sorted) + { + # Check to see if we can skip out. We skip out if we know the + # given line doesn't match. + + next if (($thread->{Command} eq "Sleep") + and + (not $config{idle})); + + next if (($thread->{Command} eq "Binlog Dump") + and + (not $config{idle})); + + next if (($thread->{Command} eq "Daemon") + and + (not $config{idle})); + + next if ($thread->{User} !~ $config{filter_user}); + next if ($thread->{db} !~ $config{filter_db}); + next if ($thread->{Host} !~ $config{filter_host}); + next if ($thread->{State} !~ $config{filter_state}); + + # Otherwise, print. + + my $smInfo; + + if ($thread->{Info}) + { + if ($config{fullqueries}) + { + $smInfo = $thread->{Info}; + } else { + $smInfo = substr $thread->{Info}, 0, $free; + } + } +# if ($thread->{State}) +# { +# $smInfo = substr $thread->{State}, 0, $free; +# } + else + { + $smInfo = ""; + } + + if ($HAS_COLOR) + { + print YELLOW() if $thread->{Command} eq 'Query'; + print WHITE() if $thread->{Command} eq 'Sleep'; + print GREEN() if $thread->{Command} eq 'Connect'; + print BOLD() if $thread->{Time} > $config{slow}; + print MAGENTA() if $thread->{Time} > $config{long}; + } + + printf $format2, + $thread->{Id}, $thread->{User}, $thread->{Host}, $thread->{db}, + $thread->{Time}, $thread->{Progress}, $thread->{Command}, $thread->{State}, $smInfo; + + print RESET() if $HAS_COLOR; + + $lines_left--; + + last if $lines_left == 0; + + } + +} + +########################################################################### + +my $questions; + +sub GetQPS() +{ + my($data) = Hashes('SHOW STATUS LIKE "Questions"'); + my $num = $data->{Value}; + + if (not defined $questions) ## first time? + { + $questions = $num; + return; + } + + my $qps = $num - $questions; + $questions = $num; + print "$qps\n"; +} + +########################################################################### + +sub GetQcacheSummary() +{ +} + +########################################################################### + +sub GetInnoDBStatus() +{ + if (not $config{pager}) + { + if (not $config{pager} = FindProg('less')) + { + $config{pager} = FindProg('more'); + } + } + + my @data = Hashes("SHOW INNODB STATUS"); + + open P, "|$config{pager}" or die "$!"; + print keys %{$data[0]}; + print $data[0]->{Status},"\n"; + close P; +} + +########################################################################### + +my %prev_data; + +sub GetCmdSummary() +{ + my ($width, $height, $wpx, $hpx, $lines_left); + + if (not $config{batchmode}) + { + ($width, $height, $wpx, $hpx) = GetTerminalSize(); + + $lines_left = $height - 2; + } + else + { + $height = 999_999; ## I hope you don't have more than that! + $lines_left = 999_999; + $width = 80; + } + + # Variable_name and Value pairs come back... + my @data = Hashes("SHOW STATUS LIKE 'Com_%'"); + my %cmd_data; + my %cmd_delta; + my %cmd_pct; + my %cmd_delta_pct; + my $total; + my $delta_total; + + for my $item (@data) + { + next unless $item->{Value}; + $item->{Variable_name} =~ s/^Com_//; + $item->{Variable_name} =~ s/_/ /g; + $cmd_data{$item->{Variable_name}} = $item->{Value}; + $total += $item->{Value}; + } + + ## Populate other stats + + for my $item (keys %cmd_data) + { + $cmd_delta{$item} = $cmd_data{$item} - + ($prev_data{$item} || $cmd_data{$item} - 1); + + $delta_total += $cmd_delta{$item}; + + $cmd_pct{$item} = int(($cmd_data{$item} / $total) * 100); + } + + for my $item (keys %cmd_data) + { + $cmd_delta_pct{$item} = int(($cmd_delta{$item} / $delta_total) * 100); + } + + + ## Display + + Clear() unless $config{batchmode}; + print RESET(); + printf "%18s %10s %4s | %5s %4s\n", 'Command', 'Total', 'Pct', 'Last', 'Pct'; + printf "%18s %10s %4s | %5s %4s\n", '-------', '-----', '---', '----', '---'; + $lines_left -= 2; + + for my $item (sort { $cmd_data{$b} <=> $cmd_data{$a} } keys %cmd_data) + { + printf "%18s %10d %4s | %5d %4s\n", + $item, + $cmd_data{$item}, + $cmd_pct{$item} . "%", + $cmd_delta{$item}, + $cmd_delta_pct{$item} . "%"; + + last if not $lines_left; + $lines_left -= 1; + } + + %prev_data = %cmd_data; +} + +########################################################################### + +sub GetShowVariables() +{ + if (not $config{pager}) + { + if (not $config{pager} = FindProg('less')) + { + $config{pager} = FindProg('more'); + } + } + + my @rows = Hashes("SHOW VARIABLES"); + + open P, "|$config{pager}" or die "$!"; + + for my $row (@rows) + { + my $name = $row->{Variable_name}; + my $value = $row->{Value}; + printf P "%32s: %s\n", $name, $value; + } + + close P; +} + +########################################################################### + +sub GetShowStatus() +{ + Clear() unless $config{batchmode}; + my @rows = Hashes("SHOW STATUS"); + + printf "%32s %10s %10s Toggle idle with 'i'\n", 'Counter', 'Total', 'Change'; + printf "%32s %10s %10s\n", '-------', '-----', '------'; + + for my $row (@rows) + { + my $name = $row->{Variable_name}; + my $value = $row->{Value}; + my $old = $statcache{$name}; + my $delta = 0; + + next if $name =~ m/^Com_/; ## skip Com_ stats + next if $value =~ m/^[^0-9]*$/; ## skip non-numeric + + ## TODO: if Qcache is off, we should skip Qcache_ values + + if ($HAS_COLOR and defined $old and $old =~ /^\d/) + { + if ($value > $old) + { + print YELLOW(); + $delta = $value - $old; + } + elsif ($value < $old) + { + print RED(); + $delta = $value - $old; + } + + if (not $config{idle} and $value == $old) + { + # filter unchanging stats, maybe + print RESET(); + next; + } + } + + printf "%32s: %10s %10s\n", $name, $value, $delta; + print RESET() if $HAS_COLOR; + + $statcache{$name} = $value; + } + +} + +########################################################################### + +sub FullQueryInfo($) +{ + my $id = shift; + + if (not exists $qcache{$id} or not defined $qcache{$id}) + { + print "*** Invalid id. ***\n"; + return; + } + + my $sql = $qcache{$id}; + print $CLEAR; + print "Thread $id was executing following query:\n\n"; + print YELLOW(), $sql,"\n\n", RESET(); +} + +########################################################################### + +sub Explain($) +{ + my $id = shift; + + if (not exists $qcache{$id} or not defined $qcache{$id}) + { + print "*** Invalid id. ***\n"; + return; + } + + my $sql = $qcache{$id}; + my $db = $dbcache{$id}; + + Execute("USE $db"); + my @info = Hashes("EXPLAIN $sql"); + print $CLEAR; + print "EXPLAIN $sql:\n\n"; + PrintTable(@info); +} + +########################################################################### + +sub PrintTable(@) +{ + my $cnt = 1; + my @cols = qw(table type possible_keys key key_len ref rows Extra); + + for my $row (@_) + { + print "*** row $cnt ***\n"; + for my $key (@cols) + { + my $val = $row->{$key} || 'NULL'; + printf "%15s: %s\n", $key, $val; + } + $cnt++; + } +} + +########################################################################### + +sub StringOrRegex($) +{ + my $input = shift; + chomp $input; + if (defined $input) + { + # regex, strip /.../ and use via qr// + if ($input =~ m{^/} and $input =~ m{/$}) + { + $input =~ s{^/}{} if $config{filter_user}; + $input =~ s{/$}{} if $config{filter_user}; + $input = qr/$input/; + } + + + # reset to match anything + elsif ($input eq '') + { + $input = qr/.*/; + } + + # string, build a simple regex + else + { + $input = '^' . $input . '$'; + $input = qr/$input/; + } + } + + # reset to match anything + else + { + $input = qr/.*/; + } + return $input; +} + +########################################################################### + +sub cmd_l +{ + ReadMode($RM_RESET); + + print RED(), "Seconds for long queries: ", RESET(); + my $secs = ReadLine(0); + + if ($secs =~ /^\s*(\d+)/) + { + $config{long} = $1; + if ($config{long} < 1) + { + $config{long} = 1; + } + } + ReadMode($RM_NOBLKRD); +} + +sub cmd_s +{ + ReadMode($RM_RESET); + + print RED(), "Seconds of Delay: ", RESET(); + my $secs = ReadLine(0); + + if ($secs =~ /^\s*(\d+)/) + { + $config{delay} = $1; + if ($config{delay} < 1) + { + $config{delay} = 1; + } + } + ReadMode($RM_NOBLKRD); +} + +sub cmd_S +{ + ReadMode($RM_RESET); + + print RED(), "Seconds for Slow queries: ", RESET(); + my $secs = ReadLine(0); + + if ($secs =~ /^\s*(\d+)/) + { + $config{slow} = $1; + if ($config{slow} < 1) + { + $config{slow} = 1; + } + } + ReadMode($RM_NOBLKRD); +} + +sub cmd_q +{ + ReadMode($RM_RESET); + print "\n"; + exit; +} + +sub trim($) +{ + my $string = shift; + $string =~ s/^\s+//; + $string =~ s/\s+$//; + return $string; +} + +########################################################################### + +sub PrintHelp() +{ + my $help = qq[ +Help for mytop version $main::VERSION by Jeremy D. Zawodny <${YELLOW}Jeremy\@Zawodny.com${RESET}> + with updates by Mark Grennan <${YELLOW}mark\@grennan.com${RESET}> + + ? - display this screen + # - toggle short/long numbers (not yet implemented) + c - command summary view (based on Com_* counters) + C - turn color on and off + d - show only a specific database + e - explain the query that a thread is running + E - display current replication error + f - show full query info for a given thread + F - unFilter the dispaly + h - show only a specifc host's connections + H - toggle the mytop header + i - toggle the display of idle (sleeping) threads + I - show innodb status + k - kill a thread + p - pause the display + l - change long running queries hightlighing + m - switch [mode] to qps (queries/sec) scrolling view + M - switch [mode] to status + o - reverse the sort order (toggle) + q - quit + r - reset the status counters (via FLUSH STATUS on your server) + R - change reverse IP lookup + s - change the delay between screen updates + S - change slow quiery hightlighting + t - switch to thread view (default) + u - show only a specific user + V - show variables + : - enter a command (not yet implemented) + ! - Skip an error that has stopped replications (at your own risk) + L - show full queries (do not strip to terminal width) + +Base version from ${GREEN}http://www.mysqlfanboy.com/mytop${RESET} +This version comes as part of the ${GREEN}MariaDB${RESET} distribution. +]; + + print $help; +} + +sub Sum(@) +{ + my $sum; + while (my $val = shift @_) { $sum += $val; } + return $sum; +} + +## A useful routine from perlfaq + +sub commify($) +{ + local $_ = shift; + return 0 unless defined $_; + 1 while s/^([-+]?\d+)(\d{3})/$1,$2/; + return $_; +} + +## Compact numeric representation (10,000 -> 10.0k) + +sub make_short($) +{ + my $number = shift; + return commify($number) if $config{long_nums}; + my $n = 0; + while ($number > 1_025) { $number /= 1024; $n++; }; + return sprintf "%.1f%s", $number, ('','k','M','G', 'T')[$n]; +} + + + +## Run a query and return the records has an array of hashes. + +sub Hashes($) +{ + my $sql = shift; + my @records; + + if (my $sth = Execute($sql)) + { + while (my $ref = $sth->fetchrow_hashref) + { + print "record\n" if $debug; + push @records, $ref; + } + } + return @records; +} + +## Execute an SQL query and return the statement handle. + +sub Execute($) +{ + my $sql = shift; + my $sth = $dbh->prepare($sql); + + if (not $sth) { ReadMode($RM_RESET); die $DBI::errstr; } + + my $ReturnCode = $sth->execute; + + if (not $ReturnCode) + { + if ($debug) + { + print "query failed\n"; + sleep 10; + } + return undef; + } + + return $sth; +} + +sub FindProg($) +{ + my $prog = shift; + my $found = undef; + my @search_dirs = ("/bin", "/usr/bin", "/usr/sbin", + "/usr/local/bin", "/usr/local/sbin"); + + for (@search_dirs) + { + my $loc = "$_/$prog"; + if (-e $loc) + { + $found = $loc; + last; + } + } + return $found; +} + +#### +#### my_which is used, because we can't assume that every system has the +#### which -command. my_which can take only one argument at a time. +#### Return values: requested system command with the first found path, +#### or undefined, if not found. +#### + +sub my_which +{ + my ($command) = @_; + my (@paths, $path); + + return $command if (-f $command && -x $command); + + # Check first if this is a source distribution, then if this binary + # distribution and last in the path + + push @paths, "./extra"; + push @paths, $path_for_script; + push @paths, split(':', $ENV{'PATH'}); + + foreach $path (@paths) + { + $path .= "/$command"; + return $path if (-f $path && -x $path); + } + return undef(); +} + +=pod + +=head1 SYNOPSIS + +B [options] + +=head1 AVAILABILITY + +Base version from B. + +This version comes as part of the B distribution. See B. + +And older (the original) version B is available from +http://jeremy.zawodny.com/mysql/mytop/ it B also be on CPAN as +well. + +=head1 REQUIREMENTS + +In order for B to function properly, you must have the +following: + + * Perl 5.005 or newer + * Getopt::Long + * DBI and DBD::mysql + * Term::ReadKey from CPAN + +Most systems are likely to have all of those installed--except for +Term::ReadKey. You will need to pick that up from the CPAN. You can +pick up Term::ReadKey here: + + http://search.cpan.org/search?dist=TermReadKey + +And you obviously need access to a MySQL server (version 3.22.x or +3.23.x) with the necessary security to run the I and +I commands. + +If you are a Windows user, using ActiveState's Perl, you can use PPM +(the Perl Package Manager) to install the MySQL and Term::ReadKey +modules. + +=head2 Optional Color Support + +In additon, if you want a color B (recommended), install +Term::ANSIColor from the CPAN: + + http://search.cpan.org/search?dist=ANSIColor + +Once you do, B will automatically use it. However, color is not +yet working on Windows. Patches welcome. :-) + +=head2 Optional Hi-Res Timing + +If you want B to provide more accurate real-time +queries-per-second statistics, install the Time::HiRes module from +CPAN. B will automatically notice that you have it and use it +rather than the standard timing mechanism. + +=head2 Platforms + +B is known to work on: + + * Linux (2.2.x, 2.4.x) + * FreeBSD (2.2, 3.x, 4.x) + * Mac OS X + * BSDI 4.x + * Solaris 2.x + * Windows NT 4.x (ActivePerl) + +If you find that it works on another platform, please let me +know. Given that it is all Perl code, I expect it to be rather +portable to Unix and Unix-like systems. Heck, it I even work on +Win32 systems. + +=head1 DESCRIPTION + +Help is always welcome in improving this software. Feel free to +contact the author (see L<"AUTHOR"> below) with bug reports, fixes, +suggestions, and comments. Additionally L<"BUGS"> will provide a list +of things this software is not able to do yet. + +Having said that, here are the details on how it works and what you can +do with it. + +=head2 The Basics + +B was inspired by the system monitoring tool B. I +routinely use B on Linux, FreeBSD, and Solaris. You are likely to +notice features from each of them here. + +B will connect to a MySQL server and periodically run the +I and I commands and attempt to +summarize the information from them in a useful format. + +=head2 The Display + +The B display screen is really broken into two parts. The top 4 +lines (header) contain summary information about your MySQL +server. For example, you might see something like: + +MySQL on localhost (4.0.13-log) up 1+11:13:00 [23:29:11] + Queries: 19.3M qps: 160 Slow: 1.0 Se/In/Up/De(%): 00/80/03/17 + qps now: 219 Slow qps: 0.0 Threads: 1 ( 1/ 16) 00/74/00/25 + Key Efficiency: 99.3% Bps in/out: 30.5k/162.8 Now in/out: 32.7k/ 3.3k + +The first line identifies the hostname of the server (localhost) and +the version of MySQL it is running. The right had side shows the +uptime of the MySQL server process in days+hours:minutes:seconds +format (much like FreeBSD's top) as well as the current time. + +The second line displays the total number of queries the server has +processed, the average number of queries per second, the number of +slow queries, and the percentage of Select, Insert, Update, and Delete +queries. + +The third real-time values. First is the number of queries per second, +then the number of slow queries, followed by query precentages (like +on the previous line). + +And the fourth line displays key buffer efficiency (how often keys are +read from the buffer rather than disk) and the number of bytes that +MySQL has sent and received, both over all and in the last cycle. + +You can toggle the header by hitting B when running B. + +The second part of the display lists as many threads as can fit on +screen. By default they are sorted according to their idle time (least +idle first). The display looks like: + + Id User Host Dbase Time Cmd Query or State + -- ---- ---- ----- ---- --- -------------- + 61 jzawodn localhost music 0 Query show processlist + +As you can see, the thread id, username, host from which the user is +connecting, database to which the user is connected, number of seconds +of idle time, the command the thread is executing, and the query info +are all displayed. + +Often times the query info is what you are really interested in, so it +is good to run B in an xterm that is wider than the normal 80 +columns if possible. + +The thread display color-codes the threads if you have installed color +support. The current color scheme only works well in a window with a +dark (like black) background. The colors are selected according to the +C column of the display: + + Query - Yellow + Sleep - White + Connect - Green + Slow - Bright + Long - Magenta + +Those are purely arbitrary and will be customizable in a future +release. If they annoy you just start B with the B<--nocolor> +flag or adjust your config file appropriately. + +=head2 Arguments + +B handles long and short command-line arguments. Not all +options have both long and short formats, however. The long arguments +have two dashes `--'. Short arguments only have one '-'. + +=over + +=item B<-u> or B<-user> username + +Username to use when logging in to the MySQL server. Default: ``root''. + +=item B<-p> or B<-pass> or B<-password> password + +Password to use when logging in to the MySQL server. Default: none. + +=item B<-h> or B<--host> hostname[:port] + +Hostname of the MySQL server. The hostname may be followed by an +option port number. Note that the port is specified separate from the +host when using a config file. Default: ``localhost''. + +=item B<--port> or B<-P> port + +If you're running MySQL on a non-standard port, use this to specify +the port number. Default: 3306. + +=item B<-s> or B<--delay> seconds + +How long between display refreshes. Default: 5 + +=item B<-d> or B<--db> or B<--database> database + +Use if you'd like B to connect to a specific database by +default. Default: ``test''. + +=item B<-b> or B<--batch> or B<--batchmode> + +In batch mode, mytop runs only once, does not clear the screen, and +places no limit on the number of lines it will print. This is suitable +for running periodically (perhaps from cron) to capture the +information into a file for later viewing. You might use batch mode in +a CGI script to occasionally display your MySQL server status on the +web. + +Default: unset. + +=item B<-S> or B<--socket> /path/to/socket + +If you're running B on the same host as MySQL, you may wish to +have it use the MySQL socket directly rather than a standard TCP/IP +connection. If you do,just specify one. + +Note that specifying a socket will make B ignore any host +and/or port that you might have specified. If the socket does not +exist (or the file specified is not a socket), this option will be +ignored and B will use the hostname and port number instead. + +Default: none. + +=item B<--header> or B<--noheader> + +Sepcify if you want the header to display or not. You can toggle this +with the B key while B is running. + +Default: header. + +=item B<--color> or B<--nocolor> + +Specify if you want a color display. This has no effect if you don't +have color support available. + +Default: If you have color support, B will try color unless you +tell it not to. + +=item B<-i> or B<--idle> or B<--noi> or B<--noidle> + +Specify if you want idle (sleeping) threads to appear in the list. If +sleeping threads are omitted, the default sorting order is reversed so +that the longest running queries appear at the top of the list. + +Default: idle. + +=item B<--prompt> or B<--noprompt> + +Specify if you want to be prompted to type in your database password. +This provides a little bit more security since it not only prevents +the password from viewable in a process list, but also doesn't require +the password to be stored in plain text in your ~/.mytop config file. +You will B be prompted if a password has not been specified in +your config file or through another command line option. + +Default: noprompt. + +=item B<--resolve> + +If you have skip-resolve set on MySQL (to keep it from doing a reverse +DNS lookup on each inbound connection), mytop can replace IP addresses +with hostnames but toggling this option. + +Default: noresolve + +=back + +Command-line arguments will always take precedence over config file +options. That happens because the config file is read I the +command-line arguments are applied. + +=head2 Config File + +Instead of always using bulky command-line parameters, you can also +use a config files for the default value of your options. + +mytop will first read the [client] and [mytop] sections from your +my.cnf files. After that it will read the (C<~/.mytop>) file from your +home directory (if present). These are read I any of your +command-line arguments are processed, so your command-line arguments +will override directives in the config file. + + +Here is a sample config file C<~/.mytop> which implements the defaults +described above. + + user=root + pass= + host=localhost + db=test + delay=5 + port=3306 + slow=10 + socket= + batchmode=0 + header=1 + color=1 + idle=1 + long=120 + +Using a config file will help to ensure that your database password +isn't visible to users on the command-line. Just make sure that the +permissions on C<~/.mytop> are such that others cannot read it (unless +you want them to, of course). + +You may have white space on either side of the C<=> in lines of the +config file. + +=head2 Shortcut Keys + +The following keys perform various actions while B is +running. Those which have not been implemented are listed as +such. They are included to give the user idea of what is coming. + +=over + +=item B + +Display help. + +=item B + +Show "command counters" based on the Com_* values in SHOW STATUS. +This is a new feature. Feedback welcome. + +=item B + +Turn display color on and off. Default is on. + +=item B + +Show only threads connected to a particular database. + +=item B + +Given a thread id, display the entire query that thread was (and still +may be) running. + +=item B + +Disable all filtering (host, user, and db). + +=item B + +Only show queries from a particular host. + +=item B + +Toggle the header display. You can also specify either C or +C in your config file to set the default behavior. + +=item B + +Toggle the display of idle (sleeping) threads. If sleeping threads are +filtered, the default sorting order is reversed so that the longest +running queries appear at the top of the list. + +=item B + +Switch to InnoDB Status mode. The output of "SHOW INNODB STATUS" will +be displayed every cycle. In a future version, this may actually +summarize that data rather than producing raw output. + +=item B + +Kill a thread. + +=item B + +Toggle modes. Currently this switches from `top' mode to `qps' +(Queries Per Second Mode). In this mode, mytop will write out one +integer per second. The number written reflects the number of queries +executed by the server in the previous one second interval. + +More modes may be added in the future. + +=item B + +Reverse the default sort order. + +=item B

+ +Pause display. + +=item B + +Quit B + +=item B + +Reset the server's status counters via a I command. + +=item B + +Togle IP reverse lookup. Default is on. + +=item B + +Change the sleep time (number of seconds between display refreshes). + +=item B + +Set the number of seconds a query will need to run before it is +considered old and will be highlighted. + +=item B + +Show only threads owned by a giver user. + +=back + +The B key has a command-line counterpart: B<-s>. + +The B key has two command-line counterparts: B<-header> and +B<-noheader>. + +=head1 BUGS + +This is more of a BUGS + WishList. + +Some performance information is not available when talking to a +version 3.22.x MySQL server. Additional information (about threads +mostly) was added to the output of I in MySQL 3.23.x and +B makes use of it. If the information is not available, you +will simply see zeros where the real numbers should be. + +Simply running this program will increase your overall counters (such +as the number of queries run). But you may or may not view that as a +bug. + +B consumes too much CPU time when running (verified on older +versions of Linux and FreeBSD). It's likely a problem related to +Term::ReadKey. I haven't had time to investigate yet, so B now +automatically lowers its priority when you run it. You may also think +about running B on another workstation instead of your database +server. However, C on Solaris does B have this problem. +Newer versions of Linux and FreeBSD seem to have fixed this. + +You can't specify the maximum number of threads to list. If you have +many threads and a tall xterm, B will always try to display as +many as it can fit. + +The size of most of the columns in the display has a small maximum +width. If you have fairly long database/user/host names the display +may appear odd. I have no good idea as to how best to deal with that +yet. Suggestions are welcome. + +It'd be nice if you could just add B configuration directives +in your C file instead of having a separate config file. + +You should be able to specify the columns you'd like to see in the +display and the order in which they appear. If you only have one +username that connects to your database, it's probably not worth +having the User column appear, for example. + +=head1 AUTHOR + +mytop was developed and is maintained by Jeremy D. Zawodny +(Jeremy@Zawodny.com). + +If you wish to e-mail me regarding this software, B subscribe +to the B mailing list. See the B homepage for details. + +=head1 DISCLAIMER + +While I use this software in my job at Yahoo!, I am solely responsible +for it. Yahoo! does not necessarily support this software in any +way. It is merely a personal idea which happened to be very useful in +my job. + +=head1 SEE ALSO + +Please check the MySQL manual if you're not sure where some of the +output of B is coming from. + +=head1 COPYRIGHT + +Copyright (C) 2000-2010, Jeremy D. Zawodny. + +=head1 CREDITS + +Fix a bug. Add a feature. See your name here! + +Many thanks go to these fine folks: + +=over + +=Item Jean Weisbuch + +Added --fullqueries and reading of .my.cnf + +=item Mark Grennan (mark@grennan.com) www.linuxfangoy.com + +Added updates for MySQL 5.x. Added 'S' (slow) highlighting. +Added 'C' to turn on and off Color. Added 'l' command to change +color for long running queries. Fixed a few documentation issues. +Monitors Slave status. Added color to Queue hit ratio. +Added number of rows sorted per second. +Created release 1.7. + +=item Sami Ahlroos (sami@avis-net.de) + +Suggested the idle/noidle stuff. + +=item Jan Willamowius (jan@janhh.shnet.org) + +Mirnor bug report. Documentation fixes. + +=item Alex Osipov (alex@acky.net) + +Long command-line options, Unix socket support. + +=item Stephane Enten (tuf@grolier.fr) + +Suggested batch mode. + +=item Richard Ellerbrock (richarde@eskom.co.za) + +Bug reports and usability suggestions. + +=item William R. Mattil (wrm@newton.irngtx.tel.gte.com) + +Bug report about empty passwords not working. + +=item Benjamin Pflugmann (philemon@spin.de) + +Suggested -P command-line flag as well as other changes. + +=item Justin Mecham + +Suggested setting $0 to `mytop'. + +=item Thorsten Kunz + +Provided a fix for cases when we try remove the domain name from the +display even if it is actually an IP address. + +=item Sasha Pachev + +Provided the idea of real-time queries per second in the main display. + +=item Paul DuBois + +Pointed out some option-handling bugs. + +=item Mike Wexler + +Suggested that we don't mangle (normalize) whitespace in query info by +default. + +=item Mark Zweifel + +Make the --idle command-line argument negatable. + +=item Axel Schwenke + +Noticed the inccorect formula for query cache hit percentages in +version 1.2. + +=item Steven Roussey + +Supplied a patch to help filter binary junk in queries so that +terminals don't freak out. + +=item jon r. luini + +Supplied a patch that formed the basis for C<-prompt> support. Sean +Leach submitted a similar patch. + +=item Yogish Baliga + +Supplied a patch that formed the basis for C<-resolve> support. + +=item Per Andreas Buer + +Supplied an excellent patch to tidy up the top display. This includes +showing most values in short form, such as 10k rather than 10000. + +=item Michael "Monty" Widenius + +Fixed a couple of minor bugs that gave warnings on startup. +Added support for MariaDB (show MariaDB at top and % done). +Cut long server version names to display width. +Made 'State' length dynamic. + +=back + +See the Changes file on the B distribution page for more +details on what has changed. + +=head1 LICENSE + +B is licensed under the GNU General Public License version +2. For the full license information, please visit +http://www.gnu.org/copyleft/gpl.html + +=cut + +__END__ diff --git a/database/bin/perror b/database/bin/perror new file mode 100755 index 0000000..29b8f0c Binary files /dev/null and b/database/bin/perror differ diff --git a/database/bin/replace b/database/bin/replace new file mode 100755 index 0000000..61143d7 Binary files /dev/null and b/database/bin/replace differ diff --git a/database/bin/resolve_stack_dump b/database/bin/resolve_stack_dump new file mode 100755 index 0000000..3c1635f Binary files /dev/null and b/database/bin/resolve_stack_dump differ diff --git a/database/bin/resolveip b/database/bin/resolveip new file mode 100755 index 0000000..c6d1a79 Binary files /dev/null and b/database/bin/resolveip differ diff --git a/database/bin/tokuft_logprint b/database/bin/tokuft_logprint new file mode 100755 index 0000000..5eed732 Binary files /dev/null and b/database/bin/tokuft_logprint differ diff --git a/database/bin/tokuftdump b/database/bin/tokuftdump new file mode 100755 index 0000000..37929fb Binary files /dev/null and b/database/bin/tokuftdump differ diff --git a/database/docs/README-TOKUDB b/database/docs/README-TOKUDB new file mode 100644 index 0000000..7dbf976 --- /dev/null +++ b/database/docs/README-TOKUDB @@ -0,0 +1,82 @@ +COPYING CONDITIONS NOTICE: + + This program is free software; you can redistribute it and/or modify + it under the terms of version 2 of the GNU General Public License as + published by the Free Software Foundation, and provided that the + following conditions are met: + + * Redistributions of source code must retain this COPYING + CONDITIONS NOTICE, the COPYRIGHT NOTICE (below), the + DISCLAIMER (below), the UNIVERSITY PATENT NOTICE (below), the + PATENT MARKING NOTICE (below), and the PATENT RIGHTS + GRANT (below). + + * Redistributions in binary form must reproduce this COPYING + CONDITIONS NOTICE, the COPYRIGHT NOTICE (below), the + DISCLAIMER (below), the UNIVERSITY PATENT NOTICE (below), the + PATENT MARKING NOTICE (below), and the PATENT RIGHTS + GRANT (below) in the documentation and/or other materials + provided with the distribution. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1335 USA. + +COPYRIGHT NOTICE: + + TokuFT, Tokutek Fractal Tree Indexing Library. + Copyright (C) 2007-2013 Tokutek, Inc. + +DISCLAIMER: + + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + +UNIVERSITY PATENT NOTICE: + + The technology is licensed by the Massachusetts Institute of + Technology, Rutgers State University of New Jersey, and the Research + Foundation of State University of New York at Stony Brook under + United States of America Serial No. 11/760379 and to the patents + and/or patent applications resulting from it. + +PATENT MARKING NOTICE: + + This software is covered by US Patent No. 8,185,551. + This software is covered by US Patent No. 8,489,638. + +PATENT RIGHTS GRANT: + + "THIS IMPLEMENTATION" means the copyrightable works distributed by + Tokutek as part of the Fractal Tree project. + + "PATENT CLAIMS" means the claims of patents that are owned or + licensable by Tokutek, both currently or in the future; and that in + the absence of this license would be infringed by THIS + IMPLEMENTATION or by using or running THIS IMPLEMENTATION. + + "PATENT CHALLENGE" shall mean a challenge to the validity, + patentability, enforceability and/or non-infringement of any of the + PATENT CLAIMS or otherwise opposing any of the PATENT CLAIMS. + + Tokutek hereby grants to you, for the term and geographical scope of + the PATENT CLAIMS, a non-exclusive, no-charge, royalty-free, + irrevocable (except as stated in this section) patent license to + make, have made, use, offer to sell, sell, import, transfer, and + otherwise run, modify, and propagate the contents of THIS + IMPLEMENTATION, where such license applies only to the PATENT + CLAIMS. This grant does not include claims that would be infringed + only as a consequence of further modifications of THIS + IMPLEMENTATION. If you or your agent or licensee institute or order + or agree to the institution of patent litigation against any entity + (including a cross-claim or counterclaim in a lawsuit) alleging that + THIS IMPLEMENTATION constitutes direct or contributory patent + infringement, or inducement of patent infringement, then any rights + granted to you under this License shall terminate as of the date + such litigation is filed. If you or your agent or exclusive + licensee institute or order or agree to the institution of a PATENT + CHALLENGE, then Tokutek may terminate any rights granted to you + under this License. diff --git a/database/docs/README.md b/database/docs/README.md new file mode 100644 index 0000000..2914ff9 --- /dev/null +++ b/database/docs/README.md @@ -0,0 +1,127 @@ +TokuFT +====== + +TokuFT is a high-performance, transactional key-value store, used in the +TokuDB storage engine for MySQL and MariaDB and in TokuMX, the +high-performance MongoDB distribution. + +TokuFT is provided as a shared library with an interface similar to +Berkeley DB. + +To build the full MySQL product, see the instructions for +[Tokutek/ft-engine][ft-engine]. To build TokuMX, see the instructions +for [Tokutek/mongo][mongo]. This document covers TokuFT only. + +[ft-engine]: https://github.com/Tokutek/ft-engine +[mongo]: https://github.com/Tokutek/mongo + + +Building +-------- + +TokuFT is built using CMake >= 2.8.9. Out-of-source builds are +recommended. You need a C++11 compiler, though only GCC >= 4.7 and +Apple's Clang are tested. You also need zlib development packages +(`yum install zlib-devel` or `apt-get install zlib1g-dev`). + +You will also need the source code for jemalloc, checked out in +`third_party/`. + +```sh +git clone git://github.com/Tokutek/ft-index.git ft-index +cd ft-index +git clone git://github.com/Tokutek/jemalloc.git third_party/jemalloc +mkdir build +cd build +CC=gcc47 CXX=g++47 cmake \ + -D CMAKE_BUILD_TYPE=Debug \ + -D BUILD_TESTING=OFF \ + -D USE_VALGRIND=OFF \ + -D CMAKE_INSTALL_PREFIX=../prefix/ \ + .. +cmake --build . --target install +``` + +This will build `libtokudb.so` and `libtokuportability.so` and install it, +some header files, and some examples to `ft-index/prefix/`. It will also +build jemalloc and install it alongside these libraries, you should link +to that if you are planning to run benchmarks or in production. + +### Platforms + +TokuFT is supported on 64-bit Centos, should work on other 64-bit linux +distributions, and may work on OSX 10.8 and FreeBSD. TokuFT is not +supported on 32-bit systems. + +[Transparent hugepages][transparent-hugepages] is a feature in newer linux +kernel versions that causes problems for the memory usage tracking +calculations in TokuFT and can lead to memory overcommit. If you have +this feature enabled, TokuFT will not start, and you should turn it off. +If you want to run with transparent hugepages on, you can set an +environment variable `TOKU_HUGE_PAGES_OK=1`, but only do this for testing, +and only with a small cache size. + +[transparent-hugepages]: https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Performance_Tuning_Guide/s-memory-transhuge.html + + +Examples +-------- + +There are some sample programs that can use either TokuFT or Berkeley DB +in the `examples/` directory. Follow the above instructions to build and +install TokuFT, and then look in the installed `examples/` directory for +instructions on building and running them. + + +Testing +------- + +TokuFT uses CTest for testing. The CDash testing dashboard is not +currently public, but you can run the tests without submitting them. + +There are some large data files not stored in the git repository, that +will be made available soon. For now, the tests that use these files will +not run. + +In the build directory from above: + +```sh +cmake -D BUILD_TESTING=ON .. +ctest -D ExperimentalStart \ + -D ExperimentalConfigure \ + -D ExperimentalBuild \ + -D ExperimentalTest +``` + + +Contributing +------------ + +Please report bugs in TokuFT to the [issue tracker][jira]. + +We have two publicly accessible mailing lists for TokuDB: + + - tokudb-user@googlegroups.com is for general and support related + questions about the use of TokuDB. + - tokudb-dev@googlegroups.com is for discussion of the development of + TokuDB. + +and two for TokuMX: + + - tokumx-user@googlegroups.com is for general and support related + questions about the use of TokuMX. + - tokumx-dev@googlegroups.com is for discussion of the development of + TokuMX. + +We are also available on IRC on freenode.net, in the #tokutek channel. + +[jira]: https://tokutek.atlassian.net/browse/FT/ + + +License +------- + +TokuFT is available under the GPL version 2, with slight modifications. +See [README-TOKUDB][license]. + +[license]: http://github.com/Tokutek/ft-index/blob/master/README-TOKUDB diff --git a/database/include/mysql/auth_dialog_client.h b/database/include/mysql/auth_dialog_client.h new file mode 100644 index 0000000..f1ad3e6 --- /dev/null +++ b/database/include/mysql/auth_dialog_client.h @@ -0,0 +1,56 @@ +#ifndef MYSQL_AUTH_DIALOG_CLIENT_INCLUDED +/* Copyright (C) 2010 Sergei Golubchik and Monty Program Ab + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +/** + @file + + Definitions needed to use Dialog client authentication plugin +*/ + +struct st_mysql; + +#define MYSQL_AUTH_DIALOG_CLIENT_INCLUDED + +/** + type of the mysql_authentication_dialog_ask function + + @param mysql mysql + @param type type of the input + 1 - ordinary string input + 2 - password string + @param prompt prompt + @param buf a buffer to store the use input + @param buf_len the length of the buffer + + @retval a pointer to the user input string. + It may be equal to 'buf' or to 'mysql->password'. + In all other cases it is assumed to be an allocated + string, and the "dialog" plugin will free() it. +*/ +typedef char *(*mysql_authentication_dialog_ask_t)(struct st_mysql *mysql, + int type, const char *prompt, char *buf, int buf_len); + +/** + first byte of the question string is the question "type". + It can be an "ordinary" or a "password" question. + The last bit set marks a last question in the authentication exchange. +*/ +#define ORDINARY_QUESTION "\2" +#define LAST_QUESTION "\3" +#define PASSWORD_QUESTION "\4" +#define LAST_PASSWORD "\5" + +#endif diff --git a/database/include/mysql/client_plugin.h b/database/include/mysql/client_plugin.h new file mode 100644 index 0000000..db25239 --- /dev/null +++ b/database/include/mysql/client_plugin.h @@ -0,0 +1,186 @@ +#ifndef MYSQL_CLIENT_PLUGIN_INCLUDED +/* Copyright (C) 2010 Sergei Golubchik and Monty Program Ab + Copyright (c) 2010, 2011, Oracle and/or its affiliates. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/** + @file + + MySQL Client Plugin API + + This file defines the API for plugins that work on the client side +*/ +#define MYSQL_CLIENT_PLUGIN_INCLUDED + +/* + On Windows, exports from DLL need to be declared + Also, plugin needs to be declared as extern "C" because MSVC + unlike other compilers, uses C++ mangling for variables not only + for functions. +*/ +#undef MYSQL_PLUGIN_EXPORT +#if defined(_MSC_VER) + #ifdef __cplusplus + #define MYSQL_PLUGIN_EXPORT extern "C" __declspec(dllexport) + #else + #define MYSQL_PLUGIN_EXPORT __declspec(dllexport) + #endif +#else /*_MSC_VER */ + #ifdef __cplusplus + #define MYSQL_PLUGIN_EXPORT extern "C" + #else + #define MYSQL_PLUGIN_EXPORT + #endif +#endif + +#ifndef MYSQL_ABI_CHECK +#include +#include +#endif + +/* known plugin types */ +#define MYSQL_CLIENT_reserved1 0 +#define MYSQL_CLIENT_reserved2 1 +#define MYSQL_CLIENT_AUTHENTICATION_PLUGIN 2 + +#define MYSQL_CLIENT_AUTHENTICATION_PLUGIN_INTERFACE_VERSION 0x0100 + +#define MYSQL_CLIENT_MAX_PLUGINS 3 + +#define mysql_declare_client_plugin(X) \ + MYSQL_PLUGIN_EXPORT struct st_mysql_client_plugin_ ## X \ + _mysql_client_plugin_declaration_ = { \ + MYSQL_CLIENT_ ## X ## _PLUGIN, \ + MYSQL_CLIENT_ ## X ## _PLUGIN_INTERFACE_VERSION, +#define mysql_end_client_plugin } + +/* generic plugin header structure */ +#define MYSQL_CLIENT_PLUGIN_HEADER \ + int type; \ + unsigned int interface_version; \ + const char *name; \ + const char *author; \ + const char *desc; \ + unsigned int version[3]; \ + const char *license; \ + void *mysql_api; \ + int (*init)(char *, size_t, int, va_list); \ + int (*deinit)(); \ + int (*options)(const char *option, const void *); + +struct st_mysql_client_plugin +{ + MYSQL_CLIENT_PLUGIN_HEADER +}; + +struct st_mysql; + +/******** authentication plugin specific declarations *********/ +#include + +struct st_mysql_client_plugin_AUTHENTICATION +{ + MYSQL_CLIENT_PLUGIN_HEADER + int (*authenticate_user)(MYSQL_PLUGIN_VIO *vio, struct st_mysql *mysql); +}; + +#include + +/******** using plugins ************/ + +/** + loads a plugin and initializes it + + @param mysql MYSQL structure. + @param name a name of the plugin to load + @param type type of plugin that should be loaded, -1 to disable type check + @param argc number of arguments to pass to the plugin initialization + function + @param ... arguments for the plugin initialization function + + @retval + a pointer to the loaded plugin, or NULL in case of a failure +*/ +struct st_mysql_client_plugin * +mysql_load_plugin(struct st_mysql *mysql, const char *name, int type, + int argc, ...); + +/** + loads a plugin and initializes it, taking va_list as an argument + + This is the same as mysql_load_plugin, but take va_list instead of + a list of arguments. + + @param mysql MYSQL structure. + @param name a name of the plugin to load + @param type type of plugin that should be loaded, -1 to disable type check + @param argc number of arguments to pass to the plugin initialization + function + @param args arguments for the plugin initialization function + + @retval + a pointer to the loaded plugin, or NULL in case of a failure +*/ +struct st_mysql_client_plugin * +mysql_load_plugin_v(struct st_mysql *mysql, const char *name, int type, + int argc, va_list args); + +/** + finds an already loaded plugin by name, or loads it, if necessary + + @param mysql MYSQL structure. + @param name a name of the plugin to load + @param type type of plugin that should be loaded + + @retval + a pointer to the plugin, or NULL in case of a failure +*/ +struct st_mysql_client_plugin * +mysql_client_find_plugin(struct st_mysql *mysql, const char *name, int type); + +/** + adds a plugin structure to the list of loaded plugins + + This is useful if an application has the necessary functionality + (for example, a special load data handler) statically linked into + the application binary. It can use this function to register the plugin + directly, avoiding the need to factor it out into a shared object. + + @param mysql MYSQL structure. It is only used for error reporting + @param plugin an st_mysql_client_plugin structure to register + + @retval + a pointer to the plugin, or NULL in case of a failure +*/ +struct st_mysql_client_plugin * +mysql_client_register_plugin(struct st_mysql *mysql, + struct st_mysql_client_plugin *plugin); + +/** + set plugin options + + Can be used to set extra options and affect behavior for a plugin. + This function may be called multiple times to set several options + + @param plugin an st_mysql_client_plugin structure + @param option a string which specifies the option to set + @param value value for the option. + + @retval 0 on success, 1 in case of failure +**/ +int mysql_plugin_options(struct st_mysql_client_plugin *plugin, + const char *option, const void *value); +#endif + diff --git a/database/include/mysql/decimal.h b/database/include/mysql/decimal.h new file mode 100644 index 0000000..8fd7f34 --- /dev/null +++ b/database/include/mysql/decimal.h @@ -0,0 +1,116 @@ +/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef _decimal_h +#define _decimal_h + +typedef enum +{TRUNCATE=0, HALF_EVEN, HALF_UP, CEILING, FLOOR} + decimal_round_mode; +typedef int32 decimal_digit_t; + +/** + intg is the number of *decimal* digits (NOT number of decimal_digit_t's !) + before the point + frac is the number of decimal digits after the point + len is the length of buf (length of allocated space) in decimal_digit_t's, + not in bytes + sign false means positive, true means negative + buf is an array of decimal_digit_t's + */ +typedef struct st_decimal_t { + int intg, frac, len; + my_bool sign; + decimal_digit_t *buf; +} decimal_t; + +int internal_str2dec(const char *from, decimal_t *to, char **end, + my_bool fixed); +int decimal2string(const decimal_t *from, char *to, int *to_len, + int fixed_precision, int fixed_decimals, + char filler); +int decimal2ulonglong(const decimal_t *from, ulonglong *to); +int ulonglong2decimal(ulonglong from, decimal_t *to); +int decimal2longlong(const decimal_t *from, longlong *to); +int longlong2decimal(longlong from, decimal_t *to); +int decimal2double(const decimal_t *from, double *to); +int double2decimal(double from, decimal_t *to); +int decimal_actual_fraction(decimal_t *from); +int decimal2bin(const decimal_t *from, uchar *to, int precision, int scale); +int bin2decimal(const uchar *from, decimal_t *to, int precision, int scale); + +int decimal_size(int precision, int scale); +int decimal_bin_size(int precision, int scale); +int decimal_result_size(decimal_t *from1, decimal_t *from2, char op, + int param); + +int decimal_intg(const decimal_t *from); +int decimal_add(const decimal_t *from1, const decimal_t *from2, decimal_t *to); +int decimal_sub(const decimal_t *from1, const decimal_t *from2, decimal_t *to); +int decimal_cmp(const decimal_t *from1, const decimal_t *from2); +int decimal_mul(const decimal_t *from1, const decimal_t *from2, decimal_t *to); +int decimal_div(const decimal_t *from1, const decimal_t *from2, decimal_t *to, + int scale_incr); +int decimal_mod(const decimal_t *from1, const decimal_t *from2, decimal_t *to); +int decimal_round(const decimal_t *from, decimal_t *to, int new_scale, + decimal_round_mode mode); +int decimal_is_zero(const decimal_t *from); +void max_decimal(int precision, int frac, decimal_t *to); + +#define string2decimal(A,B,C) internal_str2dec((A), (B), (C), 0) +#define string2decimal_fixed(A,B,C) internal_str2dec((A), (B), (C), 1) + +/* set a decimal_t to zero */ + +#define decimal_make_zero(dec) do { \ + (dec)->buf[0]=0; \ + (dec)->intg=1; \ + (dec)->frac=0; \ + (dec)->sign=0; \ + } while(0) + +/* + returns the length of the buffer to hold string representation + of the decimal (including decimal dot, possible sign and \0) +*/ + +#define decimal_string_size(dec) (((dec)->intg ? (dec)->intg : 1) + \ + (dec)->frac + ((dec)->frac > 0) + 2) + +/* negate a decimal */ +#define decimal_neg(dec) do { (dec)->sign^=1; } while(0) + +/* + conventions: + + decimal_smth() == 0 -- everything's ok + decimal_smth() <= 1 -- result is usable, but precision loss is possible + decimal_smth() <= 2 -- result can be unusable, most significant digits + could've been lost + decimal_smth() > 2 -- no result was generated +*/ + +#define E_DEC_OK 0 +#define E_DEC_TRUNCATED 1 +#define E_DEC_OVERFLOW 2 +#define E_DEC_DIV_ZERO 4 +#define E_DEC_BAD_NUM 8 +#define E_DEC_OOM 16 + +#define E_DEC_ERROR 31 +#define E_DEC_FATAL_ERROR 30 + +#endif + diff --git a/database/include/mysql/errmsg.h b/database/include/mysql/errmsg.h new file mode 100644 index 0000000..252c921 --- /dev/null +++ b/database/include/mysql/errmsg.h @@ -0,0 +1,110 @@ +#ifndef ERRMSG_INCLUDED +#define ERRMSG_INCLUDED + +/* Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* Error messages for MySQL clients */ +/* (Error messages for the daemon are in sql/share/errmsg.txt) */ + +#ifdef __cplusplus +extern "C" { +#endif +void init_client_errs(void); +void finish_client_errs(void); +extern const char *client_errors[]; /* Error messages */ +#ifdef __cplusplus +} +#endif + +#define CR_MIN_ERROR 2000 /* For easier client code */ +#define CR_MAX_ERROR 2999 +#if !defined(ER) +#define ER(X) (((X) >= CR_ERROR_FIRST && (X) <= CR_ERROR_LAST)? \ + client_errors[(X)-CR_ERROR_FIRST]: client_errors[CR_UNKNOWN_ERROR]) + +#endif +#define CLIENT_ERRMAP 2 /* Errormap used by my_error() */ + +/* Do not add error numbers before CR_ERROR_FIRST. */ +/* If necessary to add lower numbers, change CR_ERROR_FIRST accordingly. */ +#define CR_ERROR_FIRST 2000 /*Copy first error nr.*/ +#define CR_UNKNOWN_ERROR 2000 +#define CR_SOCKET_CREATE_ERROR 2001 +#define CR_CONNECTION_ERROR 2002 +#define CR_CONN_HOST_ERROR 2003 +#define CR_IPSOCK_ERROR 2004 +#define CR_UNKNOWN_HOST 2005 +#define CR_SERVER_GONE_ERROR 2006 +#define CR_VERSION_ERROR 2007 +#define CR_OUT_OF_MEMORY 2008 +#define CR_WRONG_HOST_INFO 2009 +#define CR_LOCALHOST_CONNECTION 2010 +#define CR_TCP_CONNECTION 2011 +#define CR_SERVER_HANDSHAKE_ERR 2012 +#define CR_SERVER_LOST 2013 +#define CR_COMMANDS_OUT_OF_SYNC 2014 +#define CR_NAMEDPIPE_CONNECTION 2015 +#define CR_NAMEDPIPEWAIT_ERROR 2016 +#define CR_NAMEDPIPEOPEN_ERROR 2017 +#define CR_NAMEDPIPESETSTATE_ERROR 2018 +#define CR_CANT_READ_CHARSET 2019 +#define CR_NET_PACKET_TOO_LARGE 2020 +#define CR_EMBEDDED_CONNECTION 2021 +#define CR_PROBE_SLAVE_STATUS 2022 +#define CR_PROBE_SLAVE_HOSTS 2023 +#define CR_PROBE_SLAVE_CONNECT 2024 +#define CR_PROBE_MASTER_CONNECT 2025 +#define CR_SSL_CONNECTION_ERROR 2026 +#define CR_MALFORMED_PACKET 2027 +#define CR_WRONG_LICENSE 2028 + +/* new 4.1 error codes */ +#define CR_NULL_POINTER 2029 +#define CR_NO_PREPARE_STMT 2030 +#define CR_PARAMS_NOT_BOUND 2031 +#define CR_DATA_TRUNCATED 2032 +#define CR_NO_PARAMETERS_EXISTS 2033 +#define CR_INVALID_PARAMETER_NO 2034 +#define CR_INVALID_BUFFER_USE 2035 +#define CR_UNSUPPORTED_PARAM_TYPE 2036 + +#define CR_SHARED_MEMORY_CONNECTION 2037 +#define CR_SHARED_MEMORY_CONNECT_REQUEST_ERROR 2038 +#define CR_SHARED_MEMORY_CONNECT_ANSWER_ERROR 2039 +#define CR_SHARED_MEMORY_CONNECT_FILE_MAP_ERROR 2040 +#define CR_SHARED_MEMORY_CONNECT_MAP_ERROR 2041 +#define CR_SHARED_MEMORY_FILE_MAP_ERROR 2042 +#define CR_SHARED_MEMORY_MAP_ERROR 2043 +#define CR_SHARED_MEMORY_EVENT_ERROR 2044 +#define CR_SHARED_MEMORY_CONNECT_ABANDONED_ERROR 2045 +#define CR_SHARED_MEMORY_CONNECT_SET_ERROR 2046 +#define CR_CONN_UNKNOW_PROTOCOL 2047 +#define CR_INVALID_CONN_HANDLE 2048 +#define CR_SECURE_AUTH 2049 +#define CR_FETCH_CANCELED 2050 +#define CR_NO_DATA 2051 +#define CR_NO_STMT_METADATA 2052 +#define CR_NO_RESULT_SET 2053 +#define CR_NOT_IMPLEMENTED 2054 +#define CR_SERVER_LOST_EXTENDED 2055 +#define CR_STMT_CLOSED 2056 +#define CR_NEW_STMT_METADATA 2057 +#define CR_ALREADY_CONNECTED 2058 +#define CR_AUTH_PLUGIN_CANNOT_LOAD 2059 +#define CR_ERROR_LAST /*Copy last error nr:*/ 2059 +/* Add error numbers before CR_ERROR_LAST and change it accordingly. */ + +#endif /* ERRMSG_INCLUDED */ diff --git a/database/include/mysql/handler_ername.h b/database/include/mysql/handler_ername.h new file mode 100644 index 0000000..fe55062 --- /dev/null +++ b/database/include/mysql/handler_ername.h @@ -0,0 +1,81 @@ +/* Copyright (c) 2013 SkySQL Ab + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* Names of all handler error numbers. Used by mysqltest */ + +{ "HA_ERR_KEY_NOT_FOUND", HA_ERR_KEY_NOT_FOUND, "" }, +{ "HA_ERR_FOUND_DUPP_KEY", HA_ERR_FOUND_DUPP_KEY, "" }, +{ "HA_ERR_INTERNAL_ERROR", HA_ERR_INTERNAL_ERROR, "" }, +{ "HA_ERR_RECORD_CHANGED", HA_ERR_RECORD_CHANGED, "" }, +{ "HA_ERR_WRONG_INDEX", HA_ERR_WRONG_INDEX, "" }, +{ "HA_ERR_CRASHED", HA_ERR_CRASHED, "" }, +{ "HA_ERR_WRONG_IN_RECORD", HA_ERR_WRONG_IN_RECORD, "" }, +{ "HA_ERR_OUT_OF_MEM", HA_ERR_OUT_OF_MEM, "" }, +{ "HA_ERR_NOT_A_TABLE", HA_ERR_NOT_A_TABLE, "" }, +{ "HA_ERR_WRONG_COMMAND", HA_ERR_WRONG_COMMAND, "" }, +{ "HA_ERR_OLD_FILE", HA_ERR_OLD_FILE, "" }, +{ "HA_ERR_NO_ACTIVE_RECORD", HA_ERR_NO_ACTIVE_RECORD, "" }, +{ "HA_ERR_RECORD_DELETED", HA_ERR_RECORD_DELETED, "" }, +{ "HA_ERR_RECORD_FILE_FULL", HA_ERR_RECORD_FILE_FULL, "" }, +{ "HA_ERR_INDEX_FILE_FULL", HA_ERR_INDEX_FILE_FULL, "" }, +{ "HA_ERR_END_OF_FILE", HA_ERR_END_OF_FILE, "" }, +{ "HA_ERR_UNSUPPORTED", HA_ERR_UNSUPPORTED, "" }, +{ "HA_ERR_TO_BIG_ROW", HA_ERR_TO_BIG_ROW, "" }, +{ "HA_WRONG_CREATE_OPTION", HA_WRONG_CREATE_OPTION, "" }, +{ "HA_ERR_FOUND_DUPP_UNIQUE", HA_ERR_FOUND_DUPP_UNIQUE, "" }, +{ "HA_ERR_UNKNOWN_CHARSET", HA_ERR_UNKNOWN_CHARSET, "" }, +{ "HA_ERR_WRONG_MRG_TABLE_DEF", HA_ERR_WRONG_MRG_TABLE_DEF, "" }, +{ "HA_ERR_CRASHED_ON_REPAIR", HA_ERR_CRASHED_ON_REPAIR, "" }, +{ "HA_ERR_CRASHED_ON_USAGE", HA_ERR_CRASHED_ON_USAGE, "" }, +{ "HA_ERR_LOCK_WAIT_TIMEOUT", HA_ERR_LOCK_WAIT_TIMEOUT, "" }, +{ "HA_ERR_LOCK_TABLE_FULL", HA_ERR_LOCK_TABLE_FULL, "" }, +{ "HA_ERR_READ_ONLY_TRANSACTION", HA_ERR_READ_ONLY_TRANSACTION, "" }, +{ "HA_ERR_LOCK_DEADLOCK", HA_ERR_LOCK_DEADLOCK, "" }, +{ "HA_ERR_CANNOT_ADD_FOREIGN", HA_ERR_CANNOT_ADD_FOREIGN, "" }, +{ "HA_ERR_NO_REFERENCED_ROW", HA_ERR_NO_REFERENCED_ROW, "" }, +{ "HA_ERR_ROW_IS_REFERENCED", HA_ERR_ROW_IS_REFERENCED, "" }, +{ "HA_ERR_NO_SAVEPOINT", HA_ERR_NO_SAVEPOINT, "" }, +{ "HA_ERR_NON_UNIQUE_BLOCK_SIZE", HA_ERR_NON_UNIQUE_BLOCK_SIZE, "" }, +{ "HA_ERR_NO_SUCH_TABLE", HA_ERR_NO_SUCH_TABLE, "" }, +{ "HA_ERR_TABLE_EXIST", HA_ERR_TABLE_EXIST, "" }, +{ "HA_ERR_NO_CONNECTION", HA_ERR_NO_CONNECTION, "" }, +{ "HA_ERR_NULL_IN_SPATIAL", HA_ERR_NULL_IN_SPATIAL, "" }, +{ "HA_ERR_TABLE_DEF_CHANGED", HA_ERR_TABLE_DEF_CHANGED, "" }, +{ "HA_ERR_NO_PARTITION_FOUND", HA_ERR_NO_PARTITION_FOUND, "" }, +{ "HA_ERR_RBR_LOGGING_FAILED", HA_ERR_RBR_LOGGING_FAILED, "" }, +{ "HA_ERR_DROP_INDEX_FK", HA_ERR_DROP_INDEX_FK, "" }, +{ "HA_ERR_FOREIGN_DUPLICATE_KEY", HA_ERR_FOREIGN_DUPLICATE_KEY, "" }, +{ "HA_ERR_TABLE_NEEDS_UPGRADE", HA_ERR_TABLE_NEEDS_UPGRADE, "" }, +{ "HA_ERR_TABLE_READONLY", HA_ERR_TABLE_READONLY, "" }, +{ "HA_ERR_AUTOINC_READ_FAILED", HA_ERR_AUTOINC_READ_FAILED, "" }, +{ "HA_ERR_AUTOINC_ERANGE", HA_ERR_AUTOINC_ERANGE, "" }, +{ "HA_ERR_GENERIC", HA_ERR_GENERIC, "" }, +{ "HA_ERR_RECORD_IS_THE_SAME", HA_ERR_RECORD_IS_THE_SAME, "" }, +{ "HA_ERR_LOGGING_IMPOSSIBLE", HA_ERR_LOGGING_IMPOSSIBLE, "" }, +{ "HA_ERR_CORRUPT_EVENT", HA_ERR_CORRUPT_EVENT, "" }, +{ "HA_ERR_NEW_FILE", HA_ERR_NEW_FILE, "" }, +{ "HA_ERR_ROWS_EVENT_APPLY", HA_ERR_ROWS_EVENT_APPLY, "" }, +{ "HA_ERR_INITIALIZATION", HA_ERR_INITIALIZATION, "" }, +{ "HA_ERR_FILE_TOO_SHORT", HA_ERR_FILE_TOO_SHORT, "" }, +{ "HA_ERR_WRONG_CRC", HA_ERR_WRONG_CRC, "" }, +{ "HA_ERR_TOO_MANY_CONCURRENT_TRXS", HA_ERR_TOO_MANY_CONCURRENT_TRXS, "" }, +{ "HA_ERR_INDEX_COL_TOO_LONG", HA_ERR_INDEX_COL_TOO_LONG, "" }, +{ "HA_ERR_INDEX_CORRUPT", HA_ERR_INDEX_CORRUPT, "" }, +{ "HA_ERR_UNDO_REC_TOO_BIG", HA_ERR_UNDO_REC_TOO_BIG, "" }, +{ "HA_ERR_TABLE_IN_FK_CHECK", HA_ERR_TABLE_IN_FK_CHECK, "" }, +{ "HA_ERR_ROW_NOT_VISIBLE", HA_ERR_ROW_NOT_VISIBLE, "" }, +{ "HA_ERR_ABORTED_BY_USER", HA_ERR_ABORTED_BY_USER, "" }, +{ "HA_ERR_DISK_FULL", HA_ERR_DISK_FULL, "" }, +{ "HA_ERR_INCOMPATIBLE_DEFINITION", HA_ERR_INCOMPATIBLE_DEFINITION, "" }, diff --git a/database/include/mysql/handler_state.h b/database/include/mysql/handler_state.h new file mode 100644 index 0000000..65604a6 --- /dev/null +++ b/database/include/mysql/handler_state.h @@ -0,0 +1,21 @@ +/* + Map handler error message to sql states. Note that this list MUST be in + increasing order! + See sql_state.c for usage +*/ + +{ HA_ERR_KEY_NOT_FOUND, "02000", "" }, +{ HA_ERR_FOUND_DUPP_KEY, "23000", "" }, +{ HA_ERR_WRONG_COMMAND, "0A000", "" }, +{ HA_ERR_UNSUPPORTED, "0A000", "" }, +{ HA_WRONG_CREATE_OPTION, "0A000", "" }, +{ HA_ERR_FOUND_DUPP_UNIQUE, "23000", "" }, +{ HA_ERR_UNKNOWN_CHARSET, "0A000", "" }, +{ HA_ERR_READ_ONLY_TRANSACTION, "25000", "" }, +{ HA_ERR_LOCK_DEADLOCK, "40001", "" }, +{ HA_ERR_NO_REFERENCED_ROW, "23000", "" }, +{ HA_ERR_ROW_IS_REFERENCED, "23000", "" }, +{ HA_ERR_TABLE_EXIST, "42S01", "" }, +{ HA_ERR_FOREIGN_DUPLICATE_KEY, "23000", "" }, +{ HA_ERR_TABLE_READONLY, "25000", "" }, +{ HA_ERR_AUTOINC_ERANGE, "22003", "" }, diff --git a/database/include/mysql/keycache.h b/database/include/mysql/keycache.h new file mode 100644 index 0000000..5e2df48 --- /dev/null +++ b/database/include/mysql/keycache.h @@ -0,0 +1,207 @@ +/* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* Key cache variable structures */ + +#ifndef _keycache_h +#define _keycache_h + +#include "my_sys.h" /* flush_type */ + +C_MODE_START + +/* + Currently the default key cache is created as non-partitioned at + the start of the server unless the server is started with the parameter + --key-cache-partitions that is greater than 0 +*/ + +#define DEFAULT_KEY_CACHE_PARTITIONS 0 + +/* + MAX_KEY_CACHE_PARTITIONS cannot be greater than + sizeof(MYISAM_SHARE::dirty_part_map) + Currently sizeof(MYISAM_SHARE::dirty_part_map)=sizeof(ulonglong) +*/ + +#define MAX_KEY_CACHE_PARTITIONS 64 + +/* The structure to get statistical data about a key cache */ + +typedef struct st_key_cache_statistics +{ + ulonglong mem_size; /* memory for cache buffers/auxiliary structures */ + ulonglong block_size; /* size of the each buffers in the key cache */ + ulonglong blocks_used; /* maximum number of used blocks/buffers */ + ulonglong blocks_unused; /* number of currently unused blocks */ + ulonglong blocks_changed; /* number of currently dirty blocks */ + ulonglong blocks_warm; /* number of blocks in warm sub-chain */ + ulonglong read_requests; /* number of read requests (read hits) */ + ulonglong reads; /* number of actual reads from files into buffers */ + ulonglong write_requests; /* number of write requests (write hits) */ + ulonglong writes; /* number of actual writes from buffers into files */ +} KEY_CACHE_STATISTICS; + +#define NUM_LONG_KEY_CACHE_STAT_VARIABLES 3 + +/* The type of a key cache object */ +typedef enum key_cache_type +{ + SIMPLE_KEY_CACHE, + PARTITIONED_KEY_CACHE +} KEY_CACHE_TYPE; + + +typedef + int (*INIT_KEY_CACHE) + (void *, uint key_cache_block_size, + size_t use_mem, uint division_limit, uint age_threshold); +typedef + int (*RESIZE_KEY_CACHE) + (void *, uint key_cache_block_size, + size_t use_mem, uint division_limit, uint age_threshold); +typedef + void (*CHANGE_KEY_CACHE_PARAM) + (void *keycache_cb, + uint division_limit, uint age_threshold); +typedef + uchar* (*KEY_CACHE_READ) + (void *keycache_cb, + File file, my_off_t filepos, int level, + uchar *buff, uint length, + uint block_length, int return_buffer); +typedef + int (*KEY_CACHE_INSERT) + (void *keycache_cb, + File file, my_off_t filepos, int level, + uchar *buff, uint length); +typedef + int (*KEY_CACHE_WRITE) + (void *keycache_cb, + File file, void *file_extra, + my_off_t filepos, int level, + uchar *buff, uint length, + uint block_length, int force_write); +typedef + int (*FLUSH_KEY_BLOCKS) + (void *keycache_cb, + int file, void *file_extra, + enum flush_type type); +typedef + int (*RESET_KEY_CACHE_COUNTERS) + (const char *name, void *keycache_cb); +typedef + void (*END_KEY_CACHE) + (void *keycache_cb, my_bool cleanup); +typedef + void (*GET_KEY_CACHE_STATISTICS) + (void *keycache_cb, uint partition_no, + KEY_CACHE_STATISTICS *key_cache_stats); + +/* + An object of the type KEY_CACHE_FUNCS contains pointers to all functions + from the key cache interface. + Currently a key cache can be of two types: simple and partitioned. + For each of them its own static structure of the type KEY_CACHE_FUNCS is + defined . The structures contain the pointers to the implementations of + the interface functions used by simple key caches and partitioned key + caches respectively. Pointers to these structures are assigned to key cache + objects at the time of their creation. +*/ + +typedef struct st_key_cache_funcs +{ + INIT_KEY_CACHE init; + RESIZE_KEY_CACHE resize; + CHANGE_KEY_CACHE_PARAM change_param; + KEY_CACHE_READ read; + KEY_CACHE_INSERT insert; + KEY_CACHE_WRITE write; + FLUSH_KEY_BLOCKS flush; + RESET_KEY_CACHE_COUNTERS reset_counters; + END_KEY_CACHE end; + GET_KEY_CACHE_STATISTICS get_stats; +} KEY_CACHE_FUNCS; + + +typedef struct st_key_cache +{ + KEY_CACHE_TYPE key_cache_type; /* type of the key cache used for debugging */ + void *keycache_cb; /* control block of the used key cache */ + KEY_CACHE_FUNCS *interface_funcs; /* interface functions of the key cache */ + ulonglong param_buff_size; /* size the memory allocated for the cache */ + ulonglong param_block_size; /* size of the blocks in the key cache */ + ulonglong param_division_limit;/* min. percentage of warm blocks */ + ulonglong param_age_threshold; /* determines when hot block is downgraded */ + ulonglong param_partitions; /* number of the key cache partitions */ + my_bool key_cache_inited; /* <=> key cache has been created */ + my_bool can_be_used; /* usage of cache for read/write is allowed */ + my_bool in_init; /* set to 1 in MySQL during init/resize */ + uint partitions; /* actual number of partitions */ + size_t key_cache_mem_size; /* specified size of the cache memory */ + pthread_mutex_t op_lock; /* to serialize operations like 'resize' */ +} KEY_CACHE; + + +/* The default key cache */ +extern KEY_CACHE dflt_key_cache_var, *dflt_key_cache; + +extern int init_key_cache(KEY_CACHE *keycache, uint key_cache_block_size, + size_t use_mem, uint division_limit, + uint age_threshold, uint partitions); +extern int resize_key_cache(KEY_CACHE *keycache, uint key_cache_block_size, + size_t use_mem, uint division_limit, + uint age_threshold); +extern void change_key_cache_param(KEY_CACHE *keycache, uint division_limit, + uint age_threshold); +extern uchar *key_cache_read(KEY_CACHE *keycache, + File file, my_off_t filepos, int level, + uchar *buff, uint length, + uint block_length,int return_buffer); +extern int key_cache_insert(KEY_CACHE *keycache, + File file, my_off_t filepos, int level, + uchar *buff, uint length); +extern int key_cache_write(KEY_CACHE *keycache, + File file, void *file_extra, + my_off_t filepos, int level, + uchar *buff, uint length, + uint block_length, int force_write); +extern int flush_key_blocks(KEY_CACHE *keycache, + int file, void *file_extra, + enum flush_type type); +extern void end_key_cache(KEY_CACHE *keycache, my_bool cleanup); +extern void get_key_cache_statistics(KEY_CACHE *keycache, + uint partition_no, + KEY_CACHE_STATISTICS *key_cache_stats); + +/* Functions to handle multiple key caches */ +extern my_bool multi_keycache_init(void); +extern void multi_keycache_free(void); +extern KEY_CACHE *multi_key_cache_search(uchar *key, uint length, + KEY_CACHE *def); +extern my_bool multi_key_cache_set(const uchar *key, uint length, + KEY_CACHE *key_cache); +extern void multi_key_cache_change(KEY_CACHE *old_data, + KEY_CACHE *new_data); +extern int reset_key_cache_counters(const char *name, + KEY_CACHE *key_cache, void *); +extern int repartition_key_cache(KEY_CACHE *keycache, + uint key_cache_block_size, + size_t use_mem, + uint division_limit, + uint age_threshold, + uint partitions); +C_MODE_END +#endif /* _keycache_h */ diff --git a/database/include/mysql/m_ctype.h b/database/include/mysql/m_ctype.h new file mode 100644 index 0000000..c5e8b37 --- /dev/null +++ b/database/include/mysql/m_ctype.h @@ -0,0 +1,662 @@ +/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* + A better inplementation of the UNIX ctype(3) library. +*/ + +#ifndef _m_ctype_h +#define _m_ctype_h + +#include +#include "my_global.h" /* uint16, uchar */ + +#ifdef __cplusplus +extern "C" { +#endif + +#define MY_CS_NAME_SIZE 32 +#define MY_CS_CTYPE_TABLE_SIZE 257 +#define MY_CS_TO_LOWER_TABLE_SIZE 256 +#define MY_CS_TO_UPPER_TABLE_SIZE 256 +#define MY_CS_SORT_ORDER_TABLE_SIZE 256 +#define MY_CS_TO_UNI_TABLE_SIZE 256 + +#define CHARSET_DIR "charsets/" + +#define my_wc_t ulong + +#define MY_CS_REPLACEMENT_CHARACTER 0xFFFD + +/* + On i386 we store Unicode->CS conversion tables for + some character sets using Big-endian order, + to copy two bytes at onces. + This gives some performance improvement. +*/ +#ifdef __i386__ +#define MB2(x) (((x) >> 8) + (((x) & 0xFF) << 8)) +#define MY_PUT_MB2(s, code) { *((uint16*)(s))= (code); } +#else +#define MB2(x) (x) +#define MY_PUT_MB2(s, code) { (s)[0]= code >> 8; (s)[1]= code & 0xFF; } +#endif + +typedef const struct my_charset_handler_st MY_CHARSET_HANDLER; +typedef const struct my_collation_handler_st MY_COLLATION_HANDLER; + +typedef const struct unicase_info_st MY_UNICASE_INFO; +typedef const struct uni_ctype_st MY_UNI_CTYPE; +typedef const struct my_uni_idx_st MY_UNI_IDX; + +struct unicase_info_st +{ + uint32 toupper; + uint32 tolower; + uint32 sort; +}; + +extern MY_UNICASE_INFO *const my_unicase_default[256]; +extern MY_UNICASE_INFO *const my_unicase_turkish[256]; +extern MY_UNICASE_INFO *const my_unicase_mysql500[256]; + +#define MY_UCA_MAX_CONTRACTION 4 +#define MY_UCA_MAX_WEIGHT_SIZE 8 + +typedef struct my_contraction_t +{ + my_wc_t ch[MY_UCA_MAX_CONTRACTION]; /* Character sequence */ + uint16 weight[MY_UCA_MAX_WEIGHT_SIZE];/* Its weight string, 0-terminated */ +} MY_CONTRACTION; + + +typedef struct my_contraction_list_t +{ + size_t nitems; /* Number of items in the list */ + MY_CONTRACTION *item; /* List of contractions */ + char *flags; /* Character flags, e.g. "is contraction head") */ +} MY_CONTRACTIONS; + + +struct uni_ctype_st +{ + uchar pctype; + const uchar *ctype; +}; + +extern MY_UNI_CTYPE my_uni_ctype[256]; + +/* wm_wc and wc_mb return codes */ +#define MY_CS_ILSEQ 0 /* Wrong by sequence: wb_wc */ +#define MY_CS_ILUNI 0 /* Cannot encode Unicode to charset: wc_mb */ +#define MY_CS_TOOSMALL -101 /* Need at least one byte: wc_mb and mb_wc */ +#define MY_CS_TOOSMALL2 -102 /* Need at least two bytes: wc_mb and mb_wc */ +#define MY_CS_TOOSMALL3 -103 /* Need at least three bytes: wc_mb and mb_wc */ +/* These following three are currently not really used */ +#define MY_CS_TOOSMALL4 -104 /* Need at least 4 bytes: wc_mb and mb_wc */ +#define MY_CS_TOOSMALL5 -105 /* Need at least 5 bytes: wc_mb and mb_wc */ +#define MY_CS_TOOSMALL6 -106 /* Need at least 6 bytes: wc_mb and mb_wc */ +/* A helper macros for "need at least n bytes" */ +#define MY_CS_TOOSMALLN(n) (-100-(n)) + +#define MY_SEQ_INTTAIL 1 +#define MY_SEQ_SPACES 2 + + /* My charsets_list flags */ +#define MY_CS_COMPILED 1 /* compiled-in sets */ +#define MY_CS_CONFIG 2 /* sets that have a *.conf file */ +#define MY_CS_INDEX 4 /* sets listed in the Index file */ +#define MY_CS_LOADED 8 /* sets that are currently loaded */ +#define MY_CS_BINSORT 16 /* if binary sort order */ +#define MY_CS_PRIMARY 32 /* if primary collation */ +#define MY_CS_STRNXFRM 64 /* if strnxfrm is used for sort */ +#define MY_CS_UNICODE 128 /* is a charset is full unicode */ +#define MY_CS_READY 256 /* if a charset is initialized */ +#define MY_CS_AVAILABLE 512 /* If either compiled-in or loaded*/ +#define MY_CS_CSSORT 1024 /* if case sensitive sort order */ +#define MY_CS_HIDDEN 2048 /* don't display in SHOW */ +#define MY_CS_PUREASCII 4096 /* if a charset is pure ascii */ +#define MY_CS_NONASCII 8192 /* if not ASCII-compatible */ +#define MY_CS_UNICODE_SUPPLEMENT 16384 /* Non-BMP Unicode characters */ +#define MY_CHARSET_UNDEFINED 0 + +/* Character repertoire flags */ +#define MY_REPERTOIRE_ASCII 1 /* Pure ASCII U+0000..U+007F */ +#define MY_REPERTOIRE_EXTENDED 2 /* Extended characters: U+0080..U+FFFF */ +#define MY_REPERTOIRE_UNICODE30 3 /* ASCII | EXTENDED: U+0000..U+FFFF */ + +struct my_uni_idx_st +{ + uint16 from; + uint16 to; + const uchar *tab; +}; + +typedef struct +{ + uint beg; + uint end; + uint mb_len; +} my_match_t; + +enum my_lex_states +{ + MY_LEX_START, MY_LEX_CHAR, MY_LEX_IDENT, + MY_LEX_IDENT_SEP, MY_LEX_IDENT_START, + MY_LEX_REAL, MY_LEX_HEX_NUMBER, MY_LEX_BIN_NUMBER, + MY_LEX_CMP_OP, MY_LEX_LONG_CMP_OP, MY_LEX_STRING, MY_LEX_COMMENT, MY_LEX_END, + MY_LEX_OPERATOR_OR_IDENT, MY_LEX_NUMBER_IDENT, MY_LEX_INT_OR_REAL, + MY_LEX_REAL_OR_POINT, MY_LEX_BOOL, MY_LEX_EOL, MY_LEX_ESCAPE, + MY_LEX_LONG_COMMENT, MY_LEX_END_LONG_COMMENT, MY_LEX_SEMICOLON, + MY_LEX_SET_VAR, MY_LEX_USER_END, MY_LEX_HOSTNAME, MY_LEX_SKIP, + MY_LEX_USER_VARIABLE_DELIMITER, MY_LEX_SYSTEM_VAR, + MY_LEX_IDENT_OR_KEYWORD, + MY_LEX_IDENT_OR_HEX, MY_LEX_IDENT_OR_BIN, MY_LEX_IDENT_OR_NCHAR, + MY_LEX_STRING_OR_DELIMITER, MY_LEX_MINUS_OR_COMMENT, MY_LEX_PLACEHOLDER, + MY_LEX_COMMA +}; + +struct charset_info_st; + + +extern int (*my_string_stack_guard)(int); + +/* See strings/CHARSET_INFO.txt for information about this structure */ +struct my_collation_handler_st +{ + my_bool (*init)(struct charset_info_st *, void *(*alloc)(size_t)); + /* Collation routines */ + int (*strnncoll)(CHARSET_INFO *, + const uchar *, size_t, const uchar *, size_t, my_bool); + int (*strnncollsp)(CHARSET_INFO *, + const uchar *, size_t, const uchar *, size_t, + my_bool diff_if_only_endspace_difference); + size_t (*strnxfrm)(CHARSET_INFO *, + uchar *, size_t, const uchar *, size_t); + size_t (*strnxfrmlen)(CHARSET_INFO *, size_t); + my_bool (*like_range)(CHARSET_INFO *, + const char *s, size_t s_length, + pchar w_prefix, pchar w_one, pchar w_many, + size_t res_length, + char *min_str, char *max_str, + size_t *min_len, size_t *max_len); + int (*wildcmp)(CHARSET_INFO *, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape,int w_one, int w_many); + + int (*strcasecmp)(CHARSET_INFO *, const char *, const char *); + + uint (*instr)(CHARSET_INFO *, + const char *b, size_t b_length, + const char *s, size_t s_length, + my_match_t *match, uint nmatch); + + /* Hash calculation */ + void (*hash_sort)(CHARSET_INFO *cs, const uchar *key, size_t len, + ulong *nr1, ulong *nr2); + my_bool (*propagate)(CHARSET_INFO *cs, const uchar *str, size_t len); +}; + +extern MY_COLLATION_HANDLER my_collation_mb_bin_handler; +extern MY_COLLATION_HANDLER my_collation_8bit_bin_handler; +extern MY_COLLATION_HANDLER my_collation_8bit_simple_ci_handler; +extern MY_COLLATION_HANDLER my_collation_ucs2_uca_handler; + +/* Some typedef to make it easy for C++ to make function pointers */ +typedef int (*my_charset_conv_mb_wc)(CHARSET_INFO *, my_wc_t *, + const uchar *, const uchar *); +typedef int (*my_charset_conv_wc_mb)(CHARSET_INFO *, my_wc_t, + uchar *, uchar *); +typedef size_t (*my_charset_conv_case)(CHARSET_INFO *, + char *, size_t, char *, size_t); + + +/* See strings/CHARSET_INFO.txt about information on this structure */ +struct my_charset_handler_st +{ + my_bool (*init)(struct charset_info_st *, void *(*alloc)(size_t)); + /* Multibyte routines */ + uint (*ismbchar)(CHARSET_INFO *, const char *, const char *); + uint (*mbcharlen)(CHARSET_INFO *, uint c); + size_t (*numchars)(CHARSET_INFO *, const char *b, const char *e); + size_t (*charpos)(CHARSET_INFO *, const char *b, const char *e, + size_t pos); + size_t (*well_formed_len)(CHARSET_INFO *, + const char *b,const char *e, + size_t nchars, int *error); + size_t (*lengthsp)(CHARSET_INFO *, const char *ptr, size_t length); + size_t (*numcells)(CHARSET_INFO *, const char *b, const char *e); + + /* Unicode conversion */ + my_charset_conv_mb_wc mb_wc; + my_charset_conv_wc_mb wc_mb; + + /* CTYPE scanner */ + int (*ctype)(CHARSET_INFO *cs, int *ctype, + const uchar *s, const uchar *e); + + /* Functions for case and sort conversion */ + size_t (*caseup_str)(CHARSET_INFO *, char *); + size_t (*casedn_str)(CHARSET_INFO *, char *); + + my_charset_conv_case caseup; + my_charset_conv_case casedn; + + /* Charset dependant snprintf() */ + size_t (*snprintf)(CHARSET_INFO *, char *to, size_t n, + const char *fmt, + ...) ATTRIBUTE_FORMAT_FPTR(printf, 4, 5); + size_t (*long10_to_str)(CHARSET_INFO *, char *to, size_t n, + int radix, long int val); + size_t (*longlong10_to_str)(CHARSET_INFO *, char *to, size_t n, + int radix, longlong val); + + void (*fill)(CHARSET_INFO *, char *to, size_t len, int fill); + + /* String-to-number conversion routines */ + long (*strntol)(CHARSET_INFO *, const char *s, size_t l, + int base, char **e, int *err); + ulong (*strntoul)(CHARSET_INFO *, const char *s, size_t l, + int base, char **e, int *err); + longlong (*strntoll)(CHARSET_INFO *, const char *s, size_t l, + int base, char **e, int *err); + ulonglong (*strntoull)(CHARSET_INFO *, const char *s, size_t l, + int base, char **e, int *err); + double (*strntod)(CHARSET_INFO *, char *s, size_t l, char **e, + int *err); + longlong (*strtoll10)(CHARSET_INFO *cs, + const char *nptr, char **endptr, int *error); + ulonglong (*strntoull10rnd)(CHARSET_INFO *cs, + const char *str, size_t length, + int unsigned_fl, + char **endptr, int *error); + size_t (*scan)(CHARSET_INFO *, const char *b, const char *e, + int sq); +}; + +extern MY_CHARSET_HANDLER my_charset_8bit_handler; +extern MY_CHARSET_HANDLER my_charset_ucs2_handler; + +/* See strings/CHARSET_INFO.txt about information on this structure */ +struct charset_info_st +{ + uint number; + uint primary_number; + uint binary_number; + uint state; + const char *csname; + const char *name; + const char *comment; + const char *tailoring; + const uchar *ctype; + const uchar *to_lower; + const uchar *to_upper; + const uchar *sort_order; + const MY_CONTRACTIONS *contractions; + const uint16 *const *sort_order_big; + const uint16 *tab_to_uni; + MY_UNI_IDX *tab_from_uni; + MY_UNICASE_INFO *const *caseinfo; + const uchar *state_map; + const uchar *ident_map; + uint strxfrm_multiply; + uchar caseup_multiply; + uchar casedn_multiply; + uint mbminlen; + uint mbmaxlen; + uint16 min_sort_char; + uint16 max_sort_char; /* For LIKE optimization */ + uchar pad_char; + my_bool escape_with_backslash_is_dangerous; + + MY_CHARSET_HANDLER *cset; + MY_COLLATION_HANDLER *coll; + +}; +#define ILLEGAL_CHARSET_INFO_NUMBER (~0U) + +extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_bin; +extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_latin1; +extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_filename; +extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_utf8_general_ci; + +extern struct charset_info_st my_charset_big5_bin; +extern struct charset_info_st my_charset_big5_chinese_ci; +extern struct charset_info_st my_charset_cp1250_czech_ci; +extern struct charset_info_st my_charset_cp932_bin; +extern struct charset_info_st my_charset_cp932_japanese_ci; +extern struct charset_info_st my_charset_eucjpms_bin; +extern struct charset_info_st my_charset_eucjpms_japanese_ci; +extern struct charset_info_st my_charset_euckr_bin; +extern struct charset_info_st my_charset_euckr_korean_ci; +extern struct charset_info_st my_charset_gb2312_bin; +extern struct charset_info_st my_charset_gb2312_chinese_ci; +extern struct charset_info_st my_charset_gbk_bin; +extern struct charset_info_st my_charset_gbk_chinese_ci; +extern struct charset_info_st my_charset_latin1_bin; +extern struct charset_info_st my_charset_latin1_german2_ci; +extern struct charset_info_st my_charset_latin2_czech_ci; +extern struct charset_info_st my_charset_sjis_bin; +extern struct charset_info_st my_charset_sjis_japanese_ci; +extern struct charset_info_st my_charset_tis620_bin; +extern struct charset_info_st my_charset_tis620_thai_ci; +extern struct charset_info_st my_charset_ucs2_bin; +extern struct charset_info_st my_charset_ucs2_general_ci; +extern struct charset_info_st my_charset_ucs2_general_mysql500_ci; +extern struct charset_info_st my_charset_ucs2_unicode_ci; +extern struct charset_info_st my_charset_ucs2_general_mysql500_ci; +extern struct charset_info_st my_charset_ujis_bin; +extern struct charset_info_st my_charset_ujis_japanese_ci; +extern struct charset_info_st my_charset_utf16_bin; +extern struct charset_info_st my_charset_utf16_general_ci; +extern struct charset_info_st my_charset_utf16_unicode_ci; +extern struct charset_info_st my_charset_utf32_bin; +extern struct charset_info_st my_charset_utf32_general_ci; +extern struct charset_info_st my_charset_utf32_unicode_ci; +extern struct charset_info_st my_charset_utf8_bin; +extern struct charset_info_st my_charset_utf8_general_mysql500_ci; +extern struct charset_info_st my_charset_utf8_unicode_ci; +extern struct charset_info_st my_charset_utf8mb4_bin; +extern struct charset_info_st my_charset_utf8mb4_general_ci; +extern struct charset_info_st my_charset_utf8mb4_unicode_ci; + +#define MY_UTF8MB3 "utf8" +#define MY_UTF8MB4 "utf8mb4" + +my_bool my_cs_have_contractions(CHARSET_INFO *cs); +my_bool my_cs_can_be_contraction_head(CHARSET_INFO *cs, my_wc_t wc); +my_bool my_cs_can_be_contraction_tail(CHARSET_INFO *cs, my_wc_t wc); +const uint16 *my_cs_contraction2_weight(CHARSET_INFO *cs, my_wc_t wc1, + my_wc_t wc2); + +/* declarations for simple charsets */ +extern size_t my_strnxfrm_simple(CHARSET_INFO *, uchar *, size_t, + const uchar *, size_t); +size_t my_strnxfrmlen_simple(CHARSET_INFO *, size_t); +extern int my_strnncoll_simple(CHARSET_INFO *, const uchar *, size_t, + const uchar *, size_t, my_bool); + +extern int my_strnncollsp_simple(CHARSET_INFO *, const uchar *, size_t, + const uchar *, size_t, + my_bool diff_if_only_endspace_difference); + +extern void my_hash_sort_simple(CHARSET_INFO *cs, + const uchar *key, size_t len, + ulong *nr1, ulong *nr2); +extern void my_hash_sort_bin(CHARSET_INFO *cs, + const uchar *key, size_t len, ulong *nr1, + ulong *nr2); + +extern size_t my_lengthsp_8bit(CHARSET_INFO *cs, const char *ptr, size_t length); + +extern uint my_instr_simple(CHARSET_INFO *, + const char *b, size_t b_length, + const char *s, size_t s_length, + my_match_t *match, uint nmatch); + + +/* Functions for 8bit */ +extern size_t my_caseup_str_8bit(CHARSET_INFO *, char *); +extern size_t my_casedn_str_8bit(CHARSET_INFO *, char *); +extern size_t my_caseup_8bit(CHARSET_INFO *, char *src, size_t srclen, + char *dst, size_t dstlen); +extern size_t my_casedn_8bit(CHARSET_INFO *, char *src, size_t srclen, + char *dst, size_t dstlen); + +extern int my_strcasecmp_8bit(CHARSET_INFO * cs, const char *, const char *); + +int my_mb_wc_8bit(CHARSET_INFO *cs,my_wc_t *wc, const uchar *s,const uchar *e); +int my_wc_mb_8bit(CHARSET_INFO *cs,my_wc_t wc, uchar *s, uchar *e); + +int my_mb_ctype_8bit(CHARSET_INFO *,int *, const uchar *,const uchar *); +int my_mb_ctype_mb(CHARSET_INFO *,int *, const uchar *,const uchar *); + +size_t my_scan_8bit(CHARSET_INFO *cs, const char *b, const char *e, int sq); + +size_t my_snprintf_8bit(CHARSET_INFO *, char *to, size_t n, + const char *fmt, ...) + ATTRIBUTE_FORMAT(printf, 4, 5); + +long my_strntol_8bit(CHARSET_INFO *, const char *s, size_t l, int base, + char **e, int *err); +ulong my_strntoul_8bit(CHARSET_INFO *, const char *s, size_t l, int base, + char **e, int *err); +longlong my_strntoll_8bit(CHARSET_INFO *, const char *s, size_t l, int base, + char **e, int *err); +ulonglong my_strntoull_8bit(CHARSET_INFO *, const char *s, size_t l, int base, + char **e, int *err); +double my_strntod_8bit(CHARSET_INFO *, char *s, size_t l,char **e, + int *err); +size_t my_long10_to_str_8bit(CHARSET_INFO *, char *to, size_t l, int radix, + long int val); +size_t my_longlong10_to_str_8bit(CHARSET_INFO *, char *to, size_t l, int radix, + longlong val); + +longlong my_strtoll10_8bit(CHARSET_INFO *cs, + const char *nptr, char **endptr, int *error); +longlong my_strtoll10_ucs2(CHARSET_INFO *cs, + const char *nptr, char **endptr, int *error); + +ulonglong my_strntoull10rnd_8bit(CHARSET_INFO *cs, + const char *str, size_t length, int + unsigned_fl, char **endptr, int *error); +ulonglong my_strntoull10rnd_ucs2(CHARSET_INFO *cs, + const char *str, size_t length, + int unsigned_fl, char **endptr, int *error); + +void my_fill_8bit(CHARSET_INFO *cs, char* to, size_t l, int fill); + +/* For 8-bit character set */ +my_bool my_like_range_simple(CHARSET_INFO *cs, + const char *ptr, size_t ptr_length, + pbool escape, pbool w_one, pbool w_many, + size_t res_length, + char *min_str, char *max_str, + size_t *min_length, size_t *max_length); + +/* For ASCII-based multi-byte character sets with mbminlen=1 */ +my_bool my_like_range_mb(CHARSET_INFO *cs, + const char *ptr, size_t ptr_length, + pbool escape, pbool w_one, pbool w_many, + size_t res_length, + char *min_str, char *max_str, + size_t *min_length, size_t *max_length); + +/* For other character sets, with arbitrary mbminlen and mbmaxlen numbers */ +my_bool my_like_range_generic(CHARSET_INFO *cs, + const char *ptr, size_t ptr_length, + pbool escape, pbool w_one, pbool w_many, + size_t res_length, + char *min_str, char *max_str, + size_t *min_length, size_t *max_length); + +int my_wildcmp_8bit(CHARSET_INFO *, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many); + +int my_wildcmp_bin(CHARSET_INFO *, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many); + +size_t my_numchars_8bit(CHARSET_INFO *, const char *b, const char *e); +size_t my_numcells_8bit(CHARSET_INFO *, const char *b, const char *e); +size_t my_charpos_8bit(CHARSET_INFO *, const char *b, const char *e, size_t pos); +size_t my_well_formed_len_8bit(CHARSET_INFO *, const char *b, const char *e, + size_t pos, int *error); +uint my_mbcharlen_8bit(CHARSET_INFO *, uint c); + + +/* Functions for multibyte charsets */ +extern size_t my_caseup_str_mb(CHARSET_INFO *, char *); +extern size_t my_casedn_str_mb(CHARSET_INFO *, char *); +extern size_t my_caseup_mb(CHARSET_INFO *, char *src, size_t srclen, + char *dst, size_t dstlen); +extern size_t my_casedn_mb(CHARSET_INFO *, char *src, size_t srclen, + char *dst, size_t dstlen); +extern size_t my_caseup_mb_varlen(CHARSET_INFO *, char *src, size_t srclen, + char *dst, size_t dstlen); +extern size_t my_casedn_mb_varlen(CHARSET_INFO *, char *src, size_t srclen, + char *dst, size_t dstlen); +extern size_t my_caseup_ujis(CHARSET_INFO *, char *src, size_t srclen, + char *dst, size_t dstlen); +extern size_t my_casedn_ujis(CHARSET_INFO *, char *src, size_t srclen, + char *dst, size_t dstlen); +extern int my_strcasecmp_mb(CHARSET_INFO * cs,const char *, const char *); + +int my_wildcmp_mb(CHARSET_INFO *, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many); +size_t my_numchars_mb(CHARSET_INFO *, const char *b, const char *e); +size_t my_numcells_mb(CHARSET_INFO *, const char *b, const char *e); +size_t my_charpos_mb(CHARSET_INFO *, const char *b, const char *e, size_t pos); +size_t my_well_formed_len_mb(CHARSET_INFO *, const char *b, const char *e, + size_t pos, int *error); +uint my_instr_mb(CHARSET_INFO *, + const char *b, size_t b_length, + const char *s, size_t s_length, + my_match_t *match, uint nmatch); + +int my_strnncoll_mb_bin(CHARSET_INFO * cs, + const uchar *s, size_t slen, + const uchar *t, size_t tlen, + my_bool t_is_prefix); + +int my_strnncollsp_mb_bin(CHARSET_INFO *cs, + const uchar *a, size_t a_length, + const uchar *b, size_t b_length, + my_bool diff_if_only_endspace_difference); + +int my_wildcmp_mb_bin(CHARSET_INFO *cs, + const char *str,const char *str_end, + const char *wildstr,const char *wildend, + int escape, int w_one, int w_many); + +int my_strcasecmp_mb_bin(CHARSET_INFO * cs __attribute__((unused)), + const char *s, const char *t); + +void my_hash_sort_mb_bin(CHARSET_INFO *cs __attribute__((unused)), + const uchar *key, size_t len,ulong *nr1, ulong *nr2); + +size_t my_strnxfrm_unicode(CHARSET_INFO *, + uchar *dst, size_t dstlen, + const uchar *src, size_t srclen); + +size_t my_strnxfrm_unicode_full_bin(CHARSET_INFO *, + uchar *dst, size_t dstlen, + const uchar *src, size_t srclen); +size_t my_strnxfrmlen_unicode_full_bin(CHARSET_INFO *, size_t); + +int my_wildcmp_unicode(CHARSET_INFO *cs, + const char *str, const char *str_end, + const char *wildstr, const char *wildend, + int escape, int w_one, int w_many, + MY_UNICASE_INFO *const *weights); + +extern my_bool my_parse_charset_xml(const char *bug, size_t len, + int (*add)(struct charset_info_st *cs)); +extern char *my_strchr(CHARSET_INFO *cs, const char *str, const char *end, + pchar c); +extern size_t my_strcspn(CHARSET_INFO *cs, const char *str, const char *end, + const char *accept); + +my_bool my_propagate_simple(CHARSET_INFO *cs, const uchar *str, size_t len); +my_bool my_propagate_complex(CHARSET_INFO *cs, const uchar *str, size_t len); + + +uint my_string_repertoire(CHARSET_INFO *cs, const char *str, ulong len); +my_bool my_charset_is_ascii_based(CHARSET_INFO *cs); +my_bool my_charset_is_8bit_pure_ascii(CHARSET_INFO *cs); +uint my_charset_repertoire(CHARSET_INFO *cs); + +my_bool my_charset_is_ascii_compatible(CHARSET_INFO *cs); + +extern size_t my_vsnprintf_ex(CHARSET_INFO *cs, char *to, size_t n, + const char* fmt, va_list ap); + +#define _MY_U 01 /* Upper case */ +#define _MY_L 02 /* Lower case */ +#define _MY_NMR 04 /* Numeral (digit) */ +#define _MY_SPC 010 /* Spacing character */ +#define _MY_PNT 020 /* Punctuation */ +#define _MY_CTR 040 /* Control character */ +#define _MY_B 0100 /* Blank */ +#define _MY_X 0200 /* heXadecimal digit */ + + +#define my_isascii(c) (!((c) & ~0177)) +#define my_toascii(c) ((c) & 0177) +#define my_tocntrl(c) ((c) & 31) +#define my_toprint(c) ((c) | 64) +#define my_toupper(s,c) (char) ((s)->to_upper[(uchar) (c)]) +#define my_tolower(s,c) (char) ((s)->to_lower[(uchar) (c)]) +#define my_isalpha(s, c) (((s)->ctype+1)[(uchar) (c)] & (_MY_U | _MY_L)) +#define my_isupper(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_U) +#define my_islower(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_L) +#define my_isdigit(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_NMR) +#define my_isxdigit(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_X) +#define my_isalnum(s, c) (((s)->ctype+1)[(uchar) (c)] & (_MY_U | _MY_L | _MY_NMR)) +#define my_isspace(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_SPC) +#define my_ispunct(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_PNT) +#define my_isprint(s, c) (((s)->ctype+1)[(uchar) (c)] & (_MY_PNT | _MY_U | _MY_L | _MY_NMR | _MY_B)) +#define my_isgraph(s, c) (((s)->ctype+1)[(uchar) (c)] & (_MY_PNT | _MY_U | _MY_L | _MY_NMR)) +#define my_iscntrl(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_CTR) + +/* Some macros that should be cleaned up a little */ +#define my_isvar(s,c) (my_isalnum(s,c) || (c) == '_') +#define my_isvar_start(s,c) (my_isalpha(s,c) || (c) == '_') + +#define my_binary_compare(s) ((s)->state & MY_CS_BINSORT) +#define use_strnxfrm(s) ((s)->state & MY_CS_STRNXFRM) +#define my_strnxfrm(s, a, b, c, d) ((s)->coll->strnxfrm((s), (a), (b), (c), (d))) +#define my_strnncoll(s, a, b, c, d) ((s)->coll->strnncoll((s), (a), (b), (c), (d), 0)) +#define my_like_range(s, a, b, c, d, e, f, g, h, i, j) \ + ((s)->coll->like_range((s), (a), (b), (c), (d), (e), (f), (g), (h), (i), (j))) +#define my_wildcmp(cs,s,se,w,we,e,o,m) ((cs)->coll->wildcmp((cs),(s),(se),(w),(we),(e),(o),(m))) +#define my_strcasecmp(s, a, b) ((s)->coll->strcasecmp((s), (a), (b))) +#define my_charpos(cs, b, e, num) (cs)->cset->charpos((cs), (const char*) (b), (const char *)(e), (num)) + +#define use_mb(s) ((s)->cset->ismbchar != NULL) +#define my_ismbchar(s, a, b) ((s)->cset->ismbchar((s), (a), (b))) +#ifdef USE_MB +#define my_mbcharlen(s, a) ((s)->cset->mbcharlen((s),(a))) +#else +#define my_mbcharlen(s, a) 1 +#endif + +#define my_caseup_str(s, a) ((s)->cset->caseup_str((s), (a))) +#define my_casedn_str(s, a) ((s)->cset->casedn_str((s), (a))) +#define my_strntol(s, a, b, c, d, e) ((s)->cset->strntol((s),(a),(b),(c),(d),(e))) +#define my_strntoul(s, a, b, c, d, e) ((s)->cset->strntoul((s),(a),(b),(c),(d),(e))) +#define my_strntoll(s, a, b, c, d, e) ((s)->cset->strntoll((s),(a),(b),(c),(d),(e))) +#define my_strntoull(s, a, b, c,d, e) ((s)->cset->strntoull((s),(a),(b),(c),(d),(e))) +#define my_strntod(s, a, b, c, d) ((s)->cset->strntod((s),(a),(b),(c),(d))) + + +/* XXX: still need to take care of this one */ +#ifdef MY_CHARSET_TIS620 +#error The TIS620 charset is broken at the moment. Tell tim to fix it. +#define USE_TIS620 +#include "t_ctype.h" +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _m_ctype_h */ diff --git a/database/include/mysql/m_string.h b/database/include/mysql/m_string.h new file mode 100644 index 0000000..66de67c --- /dev/null +++ b/database/include/mysql/m_string.h @@ -0,0 +1,240 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* There may be prolems include all of theese. Try to test in + configure with ones are needed? */ + +/* This is needed for the definitions of strchr... on solaris */ + +#ifndef _m_string_h +#define _m_string_h + +#include "my_global.h" /* HAVE_* */ + +#ifndef __USE_GNU +#define __USE_GNU /* We want to use stpcpy */ +#endif +#if defined(HAVE_STRINGS_H) +#include +#endif +#if defined(HAVE_STRING_H) +#include +#endif + +/* need by my_vsnprintf */ +#include + +/* This is needed for the definitions of bzero... on solaris */ +#if defined(HAVE_STRINGS_H) +#include +#endif + +/* This is needed for the definitions of memcpy... on solaris */ +#if defined(HAVE_MEMORY_H) && !defined(__cplusplus) +#include +#endif + +#if !defined(HAVE_MEMCPY) && !defined(HAVE_MEMMOVE) +# define memcpy(d, s, n) bcopy ((s), (d), (n)) +# define memset(A,C,B) bfill((A),(B),(C)) +# define memmove(d, s, n) bmove ((d), (s), (n)) +#elif defined(HAVE_MEMMOVE) +# define bmove(d, s, n) memmove((d), (s), (n)) +#endif + +/* Unixware 7 */ +#if !defined(HAVE_BFILL) +# define bfill(A,B,C) memset((A),(C),(B)) +#endif + +# define bmove_align(A,B,C) memcpy((A),(B),(C)) + +# define bcmp(A,B,C) memcmp((A),(B),(C)) + +#if !defined(bzero) +# define bzero(A,B) memset((A),0,(B)) +#endif + +#if defined(__cplusplus) +extern "C" { +#endif + +/* + my_str_malloc() and my_str_free() are assigned to implementations in + strings/alloc.c, but can be overridden in the calling program. + */ +extern void *(*my_str_malloc)(size_t); +extern void (*my_str_free)(void *); + +#if defined(HAVE_STPCPY) && MY_GNUC_PREREQ(3, 4) && !defined(__INTEL_COMPILER) +#define strmov(A,B) __builtin_stpcpy((A),(B)) +#elif defined(HAVE_STPCPY) +#define strmov(A,B) stpcpy((A),(B)) +#endif + +/* Declared in int2str() */ +extern const char _dig_vec_upper[]; +extern const char _dig_vec_lower[]; + +extern char *strmov_overlapp(char *dest, const char *src); + +#if defined(_lint) || defined(FORCE_INIT_OF_VARS) +#define LINT_INIT_STRUCT(var) bzero(&var, sizeof(var)) /* No uninitialize-warning */ +#else +#define LINT_INIT_STRUCT(var) +#endif + +/* Prototypes for string functions */ + +extern void bmove_upp(uchar *dst,const uchar *src,size_t len); +extern void bchange(uchar *dst,size_t old_len,const uchar *src, + size_t new_len,size_t tot_len); +extern void strappend(char *s,size_t len,pchar fill); +extern char *strend(const char *s); +extern char *strcend(const char *, pchar); +extern char *strfill(char * s,size_t len,pchar fill); +extern char *strmake(char *dst,const char *src,size_t length); + +#if !defined(__GNUC__) || (__GNUC__ < 4) +#define strmake_buf(D,S) strmake(D, S, sizeof(D) - 1) +#else +#define strmake_buf(D,S) ({ \ + compile_time_assert(sizeof(D) != sizeof(char*)); \ + strmake(D, S, sizeof(D) - 1); \ + }) +#endif + +#ifndef strmov +extern char *strmov(char *dst,const char *src); +#endif +extern char *strnmov(char *dst, const char *src, size_t n); +extern char *strcont(const char *src, const char *set); +extern char *strxmov(char *dst, const char *src, ...); +extern char *strxnmov(char *dst, size_t len, const char *src, ...); + +/* Prototypes of normal stringfunctions (with may ours) */ +#ifndef HAVE_STRNLEN +extern size_t strnlen(const char *s, size_t n); +#endif + +extern int is_prefix(const char *, const char *); + +/* Conversion routines */ +typedef enum { + MY_GCVT_ARG_FLOAT, + MY_GCVT_ARG_DOUBLE +} my_gcvt_arg_type; + +double my_strtod(const char *str, char **end, int *error); +double my_atof(const char *nptr); +size_t my_fcvt(double x, int precision, char *to, my_bool *error); +size_t my_gcvt(double x, my_gcvt_arg_type type, int width, char *to, + my_bool *error); + +#define NOT_FIXED_DEC 31 + +/* + The longest string my_fcvt can return is 311 + "precision" bytes. + Here we assume that we never cal my_fcvt() with precision >= NOT_FIXED_DEC + (+ 1 byte for the terminating '\0'). +*/ +#define FLOATING_POINT_BUFFER (311 + NOT_FIXED_DEC) + +/* + We want to use the 'e' format in some cases even if we have enough space + for the 'f' one just to mimic sprintf("%.15g") behavior for large integers, + and to improve it for numbers < 10^(-4). + That is, for |x| < 1 we require |x| >= 10^(-15), and for |x| > 1 we require + it to be integer and be <= 10^DBL_DIG for the 'f' format to be used. + We don't lose precision, but make cases like "1e200" or "0.00001" look nicer. +*/ +#define MAX_DECPT_FOR_F_FORMAT DBL_DIG + +/* + The maximum possible field width for my_gcvt() conversion. + (DBL_DIG + 2) significant digits + sign + "." + ("e-NNN" or + MAX_DECPT_FOR_F_FORMAT zeros for cases when |x|<1 and the 'f' format is used). +*/ +#define MY_GCVT_MAX_FIELD_WIDTH (DBL_DIG + 4 + max(5, MAX_DECPT_FOR_F_FORMAT)) \ + +extern char *llstr(longlong value,char *buff); +extern char *ullstr(longlong value,char *buff); +#ifndef HAVE_STRTOUL +extern long strtol(const char *str, char **ptr, int base); +extern ulong strtoul(const char *str, char **ptr, int base); +#endif + +extern char *int2str(long val, char *dst, int radix, int upcase); +extern char *int10_to_str(long val,char *dst,int radix); +extern char *str2int(const char *src,int radix,long lower,long upper, + long *val); +longlong my_strtoll10(const char *nptr, char **endptr, int *error); +#if SIZEOF_LONG == SIZEOF_LONG_LONG +#define ll2str(A,B,C,D) int2str((A),(B),(C),(D)) +#define longlong10_to_str(A,B,C) int10_to_str((A),(B),(C)) +#undef strtoll +#define strtoll(A,B,C) strtol((A),(B),(C)) +#define strtoull(A,B,C) strtoul((A),(B),(C)) +#ifndef HAVE_STRTOULL +#define HAVE_STRTOULL +#endif +#ifndef HAVE_STRTOLL +#define HAVE_STRTOLL +#endif +#else +#ifdef HAVE_LONG_LONG +extern char *ll2str(longlong val,char *dst,int radix, int upcase); +extern char *longlong10_to_str(longlong val,char *dst,int radix); +#if (!defined(HAVE_STRTOULL) || defined(NO_STRTOLL_PROTO)) +extern longlong strtoll(const char *str, char **ptr, int base); +extern ulonglong strtoull(const char *str, char **ptr, int base); +#endif +#endif +#endif +#define longlong2str(A,B,C) ll2str((A),(B),(C),1) + +#if defined(__cplusplus) +} +#endif + +#include + +#define STRING_WITH_LEN(X) (X), ((size_t) (sizeof(X) - 1)) +#define USTRING_WITH_LEN(X) ((uchar*) X), ((size_t) (sizeof(X) - 1)) +#define C_STRING_WITH_LEN(X) ((char *) (X)), ((size_t) (sizeof(X) - 1)) + +struct st_mysql_const_lex_string +{ + const char *str; + size_t length; +}; +typedef struct st_mysql_const_lex_string LEX_CSTRING; + +/* A variant with const and unsigned */ +struct st_mysql_const_unsigned_lex_string +{ + const uchar *str; + size_t length; +}; +typedef struct st_mysql_const_unsigned_lex_string LEX_CUSTRING; + +static inline void lex_string_set(LEX_STRING *lex_str, const char *c_str) +{ + lex_str->str= (char *) c_str; + lex_str->length= strlen(c_str); +} + +#endif diff --git a/database/include/mysql/ma_dyncol.h b/database/include/mysql/ma_dyncol.h new file mode 100644 index 0000000..6174328 --- /dev/null +++ b/database/include/mysql/ma_dyncol.h @@ -0,0 +1,147 @@ +/* Copyright (c) 2011, Monty Program Ab + Copyright (c) 2011, Oleksandr Byelkin + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + THIS SOFTWARE IS PROVIDED BY ``AS IS'' AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. +*/ + +#ifndef ma_dyncol_h +#define ma_dyncol_h + +#include +#include +#include + +/* + Max length for data in a dynamic colums. This comes from how the + how the offset are stored. +*/ +#define MAX_DYNAMIC_COLUMN_LENGTH 0X1FFFFFFFL + +/* NO and OK is the same used just to show semantics */ +#define ER_DYNCOL_NO ER_DYNCOL_OK + +enum enum_dyncol_func_result +{ + ER_DYNCOL_OK= 0, + ER_DYNCOL_YES= 1, /* For functions returning 0/1 */ + ER_DYNCOL_FORMAT= -1, /* Wrong format of the encoded string */ + ER_DYNCOL_LIMIT= -2, /* Some limit reached */ + ER_DYNCOL_RESOURCE= -3, /* Out of resourses */ + ER_DYNCOL_DATA= -4, /* Incorrect input data */ + ER_DYNCOL_UNKNOWN_CHARSET= -5 /* Unknown character set */ +}; + +typedef DYNAMIC_STRING DYNAMIC_COLUMN; + +enum enum_dynamic_column_type +{ + DYN_COL_NULL= 0, + DYN_COL_INT, + DYN_COL_UINT, + DYN_COL_DOUBLE, + DYN_COL_STRING, + DYN_COL_DECIMAL, + DYN_COL_DATETIME, + DYN_COL_DATE, + DYN_COL_TIME +}; + +typedef enum enum_dynamic_column_type DYNAMIC_COLUMN_TYPE; + +struct st_dynamic_column_value +{ + DYNAMIC_COLUMN_TYPE type; + union + { + long long long_value; + unsigned long long ulong_value; + double double_value; + struct { + LEX_STRING value; + CHARSET_INFO *charset; + } string; + struct { + decimal_digit_t buffer[DECIMAL_BUFF_LENGTH]; + decimal_t value; + } decimal; + MYSQL_TIME time_value; + } x; +}; + +typedef struct st_dynamic_column_value DYNAMIC_COLUMN_VALUE; + +enum enum_dyncol_func_result +dynamic_column_create(DYNAMIC_COLUMN *str, + uint column_nr, DYNAMIC_COLUMN_VALUE *value); + +enum enum_dyncol_func_result +dynamic_column_create_many(DYNAMIC_COLUMN *str, + uint column_count, + uint *column_numbers, + DYNAMIC_COLUMN_VALUE *values); + +enum enum_dyncol_func_result +dynamic_column_update(DYNAMIC_COLUMN *org, uint column_nr, + DYNAMIC_COLUMN_VALUE *value); +enum enum_dyncol_func_result +dynamic_column_update_many(DYNAMIC_COLUMN *str, + uint add_column_count, + uint *column_numbers, + DYNAMIC_COLUMN_VALUE *values); + +enum enum_dyncol_func_result +dynamic_column_delete(DYNAMIC_COLUMN *org, uint column_nr); + +enum enum_dyncol_func_result +dynamic_column_exists(DYNAMIC_COLUMN *org, uint column_nr); + +/* List of not NULL columns */ +enum enum_dyncol_func_result +dynamic_column_list(DYNAMIC_COLUMN *org, DYNAMIC_ARRAY *array_of_uint); + +/* + if the column do not exists it is NULL +*/ +enum enum_dyncol_func_result +dynamic_column_get(DYNAMIC_COLUMN *org, uint column_nr, + DYNAMIC_COLUMN_VALUE *store_it_here); + +#define dynamic_column_initialize(A) memset((A), 0, sizeof(*(A))) +#define dynamic_column_column_free(V) dynstr_free(V) + +/*************************************************************************** + Internal functions, don't use if you don't know what you are doing... +***************************************************************************/ + +#define dynamic_column_reassociate(V,P,L, A) dynstr_reassociate((V),(P),(L),(A)) + +#define dynamic_column_value_init(V) (V)->type= DYN_COL_NULL + +/* + Prepare value for using as decimal +*/ +void dynamic_column_prepare_decimal(DYNAMIC_COLUMN_VALUE *value); + +#endif diff --git a/database/include/mysql/my_alloc.h b/database/include/mysql/my_alloc.h new file mode 100644 index 0000000..52c04fe --- /dev/null +++ b/database/include/mysql/my_alloc.h @@ -0,0 +1,60 @@ +/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* + Data structures for mysys/my_alloc.c (root memory allocator) +*/ + +#ifndef _my_alloc_h +#define _my_alloc_h + +#define ALLOC_MAX_BLOCK_TO_DROP 4096 +#define ALLOC_MAX_BLOCK_USAGE_BEFORE_DROP 10 + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct st_used_mem +{ /* struct for once_alloc (block) */ + struct st_used_mem *next; /* Next block in use */ + size_t left; /* memory left in block */ + size_t size; /* size of block */ +} USED_MEM; + + +typedef struct st_mem_root +{ + USED_MEM *free; /* blocks with free memory in it */ + USED_MEM *used; /* blocks almost without free memory */ + USED_MEM *pre_alloc; /* preallocated block */ + /* if block have less memory it will be put in 'used' list */ + size_t min_malloc; + size_t block_size; /* initial block size */ + unsigned int block_num; /* allocated blocks counter */ + /* + first free block in queue test counter (if it exceed + MAX_BLOCK_USAGE_BEFORE_DROP block will be dropped in 'used' list) + */ + unsigned int first_block_usage; + + void (*error_handler)(void); +} MEM_ROOT; + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/database/include/mysql/my_attribute.h b/database/include/mysql/my_attribute.h new file mode 100644 index 0000000..0bdec17 --- /dev/null +++ b/database/include/mysql/my_attribute.h @@ -0,0 +1,74 @@ +/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* + Helper macros used for setting different __attributes__ + on functions in a portable fashion +*/ + +#ifndef _my_attribute_h +#define _my_attribute_h + +#if defined(__GNUC__) +# ifndef GCC_VERSION +# define GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__) +# endif +#endif + +/* + Disable __attribute__() on gcc < 2.7, g++ < 3.4, and non-gcc compilers. + Some forms of __attribute__ are actually supported in earlier versions of + g++, but we just disable them all because we only use them to generate + compilation warnings. +*/ +#ifndef __attribute__ +# if !defined(__GNUC__) +# define __attribute__(A) +# else +# ifndef GCC_VERSION +# define GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__) +# endif +# if GCC_VERSION < 2008 +# define __attribute__(A) +# elif defined(__cplusplus) && GCC_VERSION < 3004 +# define __attribute__(A) +# endif +# endif +#endif + +/* + __attribute__((format(...))) is only supported in gcc >= 2.8 and g++ >= 3.4 + But that's already covered by the __attribute__ tests above, so this is + just a convenience macro. +*/ +#ifndef ATTRIBUTE_FORMAT +# define ATTRIBUTE_FORMAT(style, m, n) __attribute__((format(style, m, n))) +#endif + +/* + + __attribute__((format(...))) on a function pointer is not supported + until gcc 3.1 +*/ +#ifndef ATTRIBUTE_FORMAT_FPTR +# if (GCC_VERSION >= 3001) +# define ATTRIBUTE_FORMAT_FPTR(style, m, n) ATTRIBUTE_FORMAT(style, m, n) +# else +# define ATTRIBUTE_FORMAT_FPTR(style, m, n) +# endif /* GNUC >= 3.1 */ +#endif + + +#endif diff --git a/database/include/mysql/my_compiler.h b/database/include/mysql/my_compiler.h new file mode 100644 index 0000000..86ba250 --- /dev/null +++ b/database/include/mysql/my_compiler.h @@ -0,0 +1,153 @@ +#ifndef MY_COMPILER_INCLUDED +#define MY_COMPILER_INCLUDED + +/* Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/** + Header for compiler-dependent features. + + Intended to contain a set of reusable wrappers for preprocessor + macros, attributes, pragmas, and any other features that are + specific to a target compiler. +*/ + +#include /* stddef.h offsetof */ + +/** + Compiler-dependent internal convenience macros. +*/ + +/* GNU C/C++ */ +#if defined __GNUC__ +/* Convenience macro to test the minimum required GCC version. */ +# define MY_GNUC_PREREQ(maj, min) \ + ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) +/* Any after 2.95... */ +# define MY_ALIGN_EXT +/* Comunicate to the compiler the unreachability of the code. */ +# if MY_GNUC_PREREQ(4,5) +# define MY_ASSERT_UNREACHABLE() __builtin_unreachable() +# endif + +/* Microsoft Visual C++ */ +#elif defined _MSC_VER +# define MY_ALIGNOF(type) __alignof(type) +# define MY_ALIGNED(n) __declspec(align(n)) + +/* Oracle Solaris Studio */ +#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC) +# if __SUNPRO_C >= 0x590 +# define MY_ALIGN_EXT +# endif + +/* IBM XL C/C++ */ +#elif defined __xlC__ +# if __xlC__ >= 0x0600 +# define MY_ALIGN_EXT +# endif + +/* HP aCC */ +#elif defined(__HP_aCC) || defined(__HP_cc) +# if (__HP_aCC >= 60000) || (__HP_cc >= 60000) +# define MY_ALIGN_EXT +# endif +#endif + +#ifdef MY_ALIGN_EXT +/** Specifies the minimum alignment of a type. */ +# define MY_ALIGNOF(type) __alignof__(type) +/** Determine the alignment requirement of a type. */ +# define MY_ALIGNED(n) __attribute__((__aligned__((n)))) +#endif + +/** + Generic (compiler-independent) features. +*/ + +#ifndef MY_GNUC_PREREQ +# define MY_GNUC_PREREQ(maj, min) (0) +#endif + +#ifndef MY_ALIGNOF +# ifdef __cplusplus + template struct my_alignof_helper { char m1; type m2; }; + /* Invalid for non-POD types, but most compilers give the right answer. */ +# define MY_ALIGNOF(type) offsetof(my_alignof_helper, m2) +# else +# define MY_ALIGNOF(type) offsetof(struct { char m1; type m2; }, m2) +# endif +#endif + +#ifndef MY_ASSERT_UNREACHABLE +# define MY_ASSERT_UNREACHABLE() do { assert(0); } while (0) +#endif + +/** + C++ Type Traits +*/ + +#ifdef __cplusplus + +/** + Opaque storage with a particular alignment. +*/ +# if defined(MY_ALIGNED) +/* Partial specialization used due to MSVC++. */ +template struct my_alignment_imp; +template<> struct MY_ALIGNED(1) my_alignment_imp<1> {}; +template<> struct MY_ALIGNED(2) my_alignment_imp<2> {}; +template<> struct MY_ALIGNED(4) my_alignment_imp<4> {}; +template<> struct MY_ALIGNED(8) my_alignment_imp<8> {}; +template<> struct MY_ALIGNED(16) my_alignment_imp<16> {}; +/* ... expand as necessary. */ +# else +template +struct my_alignment_imp { double m1; }; +# endif + +/** + A POD type with a given size and alignment. + + @remark If the compiler does not support a alignment attribute + (MY_ALIGN macro), the default alignment of a double is + used instead. + + @tparam size The minimum size. + @tparam alignment The desired alignment: 1, 2, 4, 8 or 16. +*/ +template +struct my_aligned_storage +{ + union + { + char data[size]; + my_alignment_imp align; + }; +}; + +#endif /* __cplusplus */ + +# ifndef MY_ALIGNED +/* + Make sure MY_ALIGNED can be used also on platforms where we don't + have a way of aligning data structures. +*/ +#define MY_ALIGNED(size) +#endif + +#include + +#endif /* MY_COMPILER_INCLUDED */ diff --git a/database/include/mysql/my_config.h b/database/include/mysql/my_config.h new file mode 100644 index 0000000..44b4a6f --- /dev/null +++ b/database/include/mysql/my_config.h @@ -0,0 +1,654 @@ +/* Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef MY_CONFIG_H +#define MY_CONFIG_H +#define DOT_FRM_VERSION 6 +/* Headers we may want to use. */ +#define STDC_HEADERS 1 +#define _GNU_SOURCE 1 +#define HAVE_ALLOCA_H 1 +#define HAVE_AIO_H 1 +#define HAVE_ARPA_INET_H 1 +#define HAVE_ASM_MSR_H 1 +#define HAVE_ASM_TERMBITS_H 1 +#define HAVE_BSEARCH 1 +#define HAVE_CRYPT_H 1 +#define HAVE_CURSES_H 1 +#define HAVE_CXXABI_H 1 +/* #undef HAVE_BFD_H */ +/* #undef HAVE_NCURSES_H */ +/* #undef HAVE_NDIR_H */ +#define HAVE_DIRENT_H 1 +#define HAVE_DLFCN_H 1 +#define HAVE_EXECINFO_H 1 +#define HAVE_FCNTL_H 1 +#define HAVE_FENV_H 1 +#define HAVE_FLOAT_H 1 +/* #undef HAVE_FLOATINGPOINT_H */ +#define HAVE_FNMATCH_H 1 +#define HAVE_FPU_CONTROL_H 1 +#define HAVE_GRP_H 1 +#define HAVE_EXPLICIT_TEMPLATE_INSTANTIATION 1 +/* #undef HAVE_IA64INTRIN_H */ +/* #undef HAVE_IEEEFP_H */ +#define HAVE_INTTYPES_H 1 +/* #undef HAVE_KQUEUE */ +#define HAVE_LIMITS_H 1 +#define HAVE_LINUX_UNISTD_H 1 +#define HAVE_LOCALE_H 1 +#define HAVE_MALLOC_H 1 +#define HAVE_MEMORY_H 1 +#define HAVE_NETINET_IN_H 1 +#define HAVE_PATHS_H 1 +#define HAVE_POLL_H 1 +/* #undef HAVE_PORT_H */ +#define HAVE_PWD_H 1 +#define HAVE_SCHED_H 1 +/* #undef HAVE_SELECT_H */ +/* #undef HAVE_SOLARIS_LARGE_PAGES */ +#define HAVE_STDDEF_H 1 +#define HAVE_STDLIB_H 1 +#define HAVE_STDARG_H 1 +#define HAVE_STRINGS_H 1 +#define HAVE_STRING_H 1 +#define HAVE_STDINT_H 1 +#define HAVE_SEMAPHORE_H 1 +/* #undef HAVE_SYNCH_H */ +/* #undef HAVE_SYSENT_H */ +#define HAVE_SYS_DIR_H 1 +#define HAVE_SYS_CDEFS_H 1 +#define HAVE_SYS_FILE_H 1 +/* #undef HAVE_SYS_FPU_H */ +#define HAVE_SYS_IOCTL_H 1 +#define HAVE_SYS_IPC_H 1 +/* #undef HAVE_SYS_MALLOC_H */ +#define HAVE_SYS_MMAN_H 1 +/* #undef HAVE_SYS_NDIR_H */ +/* #undef HAVE_SYS_PTE_H */ +/* #undef HAVE_SYS_PTEM_H */ +#define HAVE_SYS_PRCTL_H 1 +#define HAVE_SYS_RESOURCE_H 1 +#define HAVE_SYS_SELECT_H 1 +#define HAVE_SYS_SHM_H 1 +#define HAVE_SYS_SOCKET_H 1 +/* #undef HAVE_SYS_SOCKIO_H */ +#define HAVE_SYS_UTSNAME_H 1 +#define HAVE_SYS_STAT_H 1 +/* #undef HAVE_SYS_STREAM_H */ +/* #undef HAVE_SYS_TERMCAP_H */ +/* #undef HAVE_SYS_TIMEB_H */ +#define HAVE_SYS_TIMES_H 1 +#define HAVE_SYS_TIME_H 1 +#define HAVE_SYS_TYPES_H 1 +#define HAVE_SYS_UN_H 1 +/* #undef HAVE_SYS_VADVISE_H */ +#define HAVE_UCONTEXT_H 1 +#define HAVE_TERM_H 1 +/* #undef HAVE_TERMBITS_H */ +#define HAVE_TERMIOS_H 1 +#define HAVE_TERMIO_H 1 +#define HAVE_TERMCAP_H 1 +#define HAVE_TIME_H 1 +#define HAVE_UNISTD_H 1 +#define HAVE_UTIME_H 1 +/* #undef HAVE_VARARGS_H */ +/* #undef HAVE_VIS_H */ +/* #undef HAVE_SYS_UTIME_H */ +#define HAVE_SYS_WAIT_H 1 +#define HAVE_SYS_PARAM_H 1 + +/* Libraries */ +/* #undef HAVE_LIBPTHREAD */ +#define HAVE_LIBM 1 +#define HAVE_LIBDL 1 +#define HAVE_LIBRT 1 +/* #undef HAVE_LIBSOCKET */ +/* #undef HAVE_LIBNSL */ +#define HAVE_LIBCRYPT 1 +/* #undef HAVE_LIBMTMALLOC */ +/* #undef HAVE_LIBWRAP */ +/* Does "struct timespec" have a "sec" and "nsec" field? */ +/* #undef HAVE_TIMESPEC_TS_SEC */ + +/* Readline */ +/* #undef HAVE_HIST_ENTRY */ +/* #undef USE_LIBEDIT_INTERFACE */ +#define USE_NEW_READLINE_INTERFACE 1 + +#define FIONREAD_IN_SYS_IOCTL 1 +#define GWINSZ_IN_SYS_IOCTL 1 +/* #undef TIOCSTAT_IN_SYS_IOCTL */ +/* #undef FIONREAD_IN_SYS_FILIO */ + +/* Functions we may want to use. */ +#define HAVE_ACCESS 1 +/* #undef HAVE_AIOWAIT */ +#define HAVE_ALARM 1 +#define HAVE_ALLOCA 1 +/* #undef HAVE_BFILL */ +/* #undef HAVE_BMOVE */ +#define HAVE_BZERO 1 +#define HAVE_INDEX 1 +#define HAVE_CHOWN 1 +#define HAVE_CLOCK_GETTIME 1 +#define HAVE_CRYPT 1 +#define HAVE_CUSERID 1 +#define HAVE_CXX_NEW 1 +/* #undef HAVE_DIRECTIO */ +#define HAVE_DLADDR 1 +#define HAVE_DLERROR 1 +#define HAVE_DLOPEN 1 +/* #undef HAVE_DOPRNT */ +#define HAVE_FCHMOD 1 +#define HAVE_FCNTL 1 +/* #undef HAVE_FCONVERT */ +#define HAVE_FDATASYNC 1 +#define HAVE_DECL_FDATASYNC 1 +#define HAVE_FEDISABLEEXCEPT 1 +#define HAVE_FESETROUND 1 +#define HAVE_FINITE 1 +/* #undef HAVE_FP_EXCEPT */ +/* #undef HAVE_FPSETMASK */ +#define HAVE_FSEEKO 1 +#define HAVE_FSYNC 1 +#define HAVE_FTIME 1 +#define HAVE_GETADDRINFO 1 +#define HAVE_GETCWD 1 +#define HAVE_GETHOSTBYADDR_R 1 +/* #undef HAVE_GETHRTIME */ +#define HAVE_GETLINE 1 +#define HAVE_GETNAMEINFO 1 +#define HAVE_GETPAGESIZE 1 +#define HAVE_GETPASS 1 +/* #undef HAVE_GETPASSPHRASE */ +#define HAVE_GETPWNAM 1 +#define HAVE_GETPWUID 1 +#define HAVE_GETRLIMIT 1 +#define HAVE_GETRUSAGE 1 +#define HAVE_GETTIMEOFDAY 1 +#define HAVE_GETWD 1 +#define HAVE_GMTIME_R 1 +/* #undef gmtime_r */ +#define HAVE_IN_ADDR_T 1 +#define HAVE_INITGROUPS 1 +/* #undef HAVE_ISSETUGID */ +#define HAVE_GETUID 1 +#define HAVE_GETEUID 1 +#define HAVE_GETGID 1 +#define HAVE_GETEGID 1 +#define HAVE_ISNAN 1 +#define HAVE_ISINF 1 +#define HAVE_LARGE_PAGE_OPTION 1 +#define HAVE_LDIV 1 +#define HAVE_LRAND48 1 +#define HAVE_LOCALTIME_R 1 +#define HAVE_LOG2 1 +#define HAVE_LONGJMP 1 +#define HAVE_LSTAT 1 +#define HAVE_MEMALIGN 1 +/* #define HAVE_MLOCK 1 see Bug#54662 */ +#define HAVE_NPTL 1 +#define HAVE_NL_LANGINFO 1 +#define HAVE_MADVISE 1 +#define HAVE_DECL_MADVISE 1 +/* #undef HAVE_DECL_TGOTO */ +/* #undef HAVE_DECL_MHA_MAPSIZE_VA */ +#define HAVE_MALLINFO 1 +#define HAVE_MEMCPY 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MKSTEMP 1 +#define HAVE_MLOCKALL 1 +#define HAVE_MMAP 1 +#define HAVE_MMAP64 1 +#define HAVE_PERROR 1 +#define HAVE_POLL 1 +/* #undef HAVE_PORT_CREATE */ +#define HAVE_POSIX_FALLOCATE 1 +#define HAVE_PREAD 1 +#define HAVE_PAUSE_INSTRUCTION 1 +/* #undef HAVE_FAKE_PAUSE_INSTRUCTION */ +/* #undef HAVE_RDTSCLL */ +/* #undef HAVE_READ_REAL_TIME */ +/* #undef HAVE_PTHREAD_ATTR_CREATE */ +#define HAVE_PTHREAD_ATTR_GETGUARDSIZE 1 +#define HAVE_PTHREAD_ATTR_GETSTACKSIZE 1 +/* #undef HAVE_PTHREAD_ATTR_SETPRIO */ +/* #undef HAVE_PTHREAD_ATTR_SETSCHEDPARAM */ +#define HAVE_PTHREAD_ATTR_SETSCOPE 1 +#define HAVE_PTHREAD_ATTR_SETSTACKSIZE 1 +/* #undef HAVE_PTHREAD_CONDATTR_CREATE */ +#define HAVE_PTHREAD_CONDATTR_SETCLOCK 1 +#define HAVE_PTHREAD_KEY_DELETE 1 +#define HAVE_PTHREAD_KEY_DELETE 1 +/* #undef HAVE_PTHREAD_KILL */ +#define HAVE_PTHREAD_RWLOCK_RDLOCK 1 +/* #undef HAVE_PTHREAD_SETPRIO_NP */ +/* #undef HAVE_PTHREAD_SETSCHEDPARAM */ +#define HAVE_PTHREAD_SIGMASK 1 +/* #undef HAVE_PTHREAD_THREADMASK */ +/* #undef HAVE_PTHREAD_YIELD_NP */ +#define HAVE_PTHREAD_YIELD_ZERO_ARG 1 +#define PTHREAD_ONCE_INITIALIZER PTHREAD_ONCE_INIT +#define HAVE_PUTENV 1 +#define HAVE_RE_COMP 1 +#define HAVE_REGCOMP 1 +#define HAVE_READDIR_R 1 +#define HAVE_READLINK 1 +#define HAVE_REALPATH 1 +#define HAVE_RENAME 1 +#define HAVE_RINT 1 +/* #undef HAVE_RWLOCK_INIT */ +#define HAVE_SCHED_YIELD 1 +#define HAVE_SELECT 1 +/* #undef HAVE_SETFD */ +#define HAVE_SETENV 1 +#define HAVE_SETLOCALE 1 +#define HAVE_SETUPTERM 1 +#define HAVE_SIGADDSET 1 +#define HAVE_SIGEMPTYSET 1 +#define HAVE_SIGHOLD 1 +#define HAVE_SIGSET 1 +#define HAVE_SIGSET_T 1 +#define HAVE_SIGACTION 1 +/* #undef HAVE_SIGTHREADMASK */ +#define HAVE_SIGWAIT 1 +#define HAVE_SLEEP 1 +#define HAVE_SNPRINTF 1 +#define HAVE_STPCPY 1 +#define HAVE_STRERROR 1 +#define HAVE_STRCOLL 1 +#define HAVE_STRSIGNAL 1 +/* #undef HAVE_STRLCPY */ +/* #undef HAVE_STRLCAT */ +/* #undef HAVE_FGETLN */ +#define HAVE_STRNLEN 1 +#define HAVE_STRPBRK 1 +/* #undef HAVE_STRSEP */ +#define HAVE_STRSTR 1 +#define HAVE_STRTOK_R 1 +#define HAVE_STRTOL 1 +#define HAVE_STRTOLL 1 +#define HAVE_STRTOUL 1 +#define HAVE_STRTOULL 1 +#define HAVE_SHMAT 1 +#define HAVE_SHMCTL 1 +#define HAVE_SHMDT 1 +#define HAVE_SHMGET 1 +/* #undef HAVE_TELL */ +#define HAVE_TEMPNAM 1 +/* #undef HAVE_THR_SETCONCURRENCY */ +/* #undef HAVE_THR_YIELD */ +#define HAVE_TIME 1 +#define HAVE_TIMES 1 +#define HAVE_VALLOC 1 +#define HAVE_VIDATTR 1 +#define HAVE_VIO_READ_BUFF 1 +#define HAVE_VASPRINTF 1 +#define HAVE_VPRINTF 1 +#define HAVE_VSNPRINTF 1 +#define HAVE_FTRUNCATE 1 +#define HAVE_TZNAME 1 +#define HAVE_AIO_READ 1 +/* Symbols we may use */ +/* #undef HAVE_SYS_ERRLIST */ +/* used by stacktrace functions */ +#define HAVE_BSS_START 1 +#define HAVE_BACKTRACE 1 +#define HAVE_BACKTRACE_SYMBOLS 1 +#define HAVE_BACKTRACE_SYMBOLS_FD 1 +/* #undef HAVE_PRINTSTACK */ +#define HAVE_STRUCT_SOCKADDR_IN6 1 +#define HAVE_STRUCT_IN6_ADDR 1 +/* #undef HAVE_NETINET_IN6_H */ +#define HAVE_IPV6 1 +/* #undef ss_family */ +/* #undef HAVE_SOCKADDR_IN_SIN_LEN */ +/* #undef HAVE_SOCKADDR_IN6_SIN6_LEN */ +/* #undef HAVE_TIMESPEC_TS_SEC */ +#define STRUCT_DIRENT_HAS_D_INO 1 +/* #undef STRUCT_DIRENT_HAS_D_NAMLEN */ +#define STRUCT_TIMESPEC_HAS_TV_SEC 1 +#define STRUCT_TIMESPEC_HAS_TV_NSEC 1 +#define SPRINTF_RETURNS_INT 1 + +#define USE_MB 1 +#define USE_MB_IDENT 1 + +/* this means that valgrind headers and macros are available */ +/* #undef HAVE_VALGRIND */ + +/* this means WITH_VALGRIND - we change some code paths for valgrind */ +/* #undef HAVE_valgrind */ + +/* Types we may use */ +#ifdef __APPLE__ + /* + Special handling required for OSX to support universal binaries that + mix 32 and 64 bit architectures. + */ + #if(__LP64__) + #define SIZEOF_LONG 8 + #else + #define SIZEOF_LONG 4 + #endif + #define SIZEOF_VOIDP SIZEOF_LONG + #define SIZEOF_CHARP SIZEOF_LONG + #define SIZEOF_SIZE_T SIZEOF_LONG +#else +/* No indentation, to fetch the lines from verification scripts */ +#define SIZEOF_LONG 8 +#define SIZEOF_VOIDP 8 +#define SIZEOF_CHARP 8 +#define SIZEOF_SIZE_T 8 +#endif + +#define SIZEOF_CHAR 1 +#define HAVE_CHAR 1 +#define HAVE_LONG 1 +#define HAVE_CHARP 1 +#define SIZEOF_SHORT 2 +#define HAVE_SHORT 1 +#define SIZEOF_INT 4 +#define HAVE_INT 1 +#define SIZEOF_LONG_LONG 8 +#define HAVE_LONG_LONG 1 +#define SIZEOF_OFF_T 8 +#define HAVE_OFF_T 1 +#define SIZEOF_SIGSET_T 128 +#define HAVE_SIGSET_T 1 +#define HAVE_SIZE_T 1 +/* #undef SIZEOF_UCHAR */ +/* #undef HAVE_UCHAR */ +#define SIZEOF_UINT 4 +#define HAVE_UINT 1 +#define SIZEOF_ULONG 8 +#define HAVE_ULONG 1 +/* #undef SIZEOF_INT8 */ +/* #undef HAVE_INT8 */ +/* #undef SIZEOF_UINT8 */ +/* #undef HAVE_UINT8 */ +/* #undef SIZEOF_INT16 */ +/* #undef HAVE_INT16 */ +/* #undef SIZEOF_UINT16 */ +/* #undef HAVE_UINT16 */ +/* #undef SIZEOF_INT32 */ +/* #undef HAVE_INT32 */ +/* #undef SIZEOF_UINT32 */ +/* #undef HAVE_UINT32 */ +#define SIZEOF_U_INT32_T 4 +#define HAVE_U_INT32_T 1 +/* #undef SIZEOF_INT64 */ +/* #undef HAVE_INT64 */ +/* #undef SIZEOF_UINT64 */ +/* #undef HAVE_UINT64 */ +/* #undef SIZEOF_BOOL */ +/* #undef HAVE_BOOL */ + +#define SOCKET_SIZE_TYPE socklen_t + +#define HAVE_MBSTATE_T 1 + +#define MAX_INDEXES 64 + +#define QSORT_TYPE_IS_VOID 1 +#define RETQSORTTYPE void + +#define SIGNAL_RETURN_TYPE_IS_VOID 1 +#define RETSIGTYPE void +#define VOID_SIGHANDLER 1 +#define STRUCT_RLIMIT struct rlimit + +#ifdef __APPLE__ + #if __BIG_ENDIAN + #define WORDS_BIGENDIAN 1 + #endif +#else +/* #undef WORDS_BIGENDIAN */ +#endif + +/* Define to `__inline__' or `__inline' if that's what the C compiler calls + it, or to nothing if 'inline' is not supported under any name. */ +#define C_HAS_inline 1 +#if !(C_HAS_inline) +#ifndef __cplusplus +# define inline +#endif +#endif + + +#define TARGET_OS_LINUX 1 + +#define HAVE_WCTYPE_H 1 +#define HAVE_WCHAR_H 1 +#define HAVE_LANGINFO_H 1 +#define HAVE_MBRLEN 1 +/* #undef HAVE_MBSCMP */ +#define HAVE_MBSRTOWCS 1 +#define HAVE_WCRTOMB 1 +#define HAVE_MBRTOWC 1 +#define HAVE_WCSCOLL 1 +#define HAVE_WCSDUP 1 +#define HAVE_WCWIDTH 1 +#define HAVE_WCTYPE 1 +#define HAVE_ISWLOWER 1 +#define HAVE_ISWUPPER 1 +#define HAVE_TOWLOWER 1 +#define HAVE_TOWUPPER 1 +#define HAVE_ISWCTYPE 1 +#define HAVE_WCHAR_T 1 +#define HAVE_WCTYPE_T 1 +#define HAVE_WINT_T 1 + + +#define HAVE_STRCASECMP 1 +#define HAVE_STRNCASECMP 1 +#define HAVE_STRDUP 1 +#define HAVE_LANGINFO_CODESET 1 +#define HAVE_TCGETATTR 1 +#define HAVE_FLOCKFILE 1 + +#define HAVE_WEAK_SYMBOL 1 +#define HAVE_ABI_CXA_DEMANGLE 1 + + +#define HAVE_POSIX_SIGNALS 1 +/* #undef HAVE_BSD_SIGNALS */ +/* #undef HAVE_SVR3_SIGNALS */ +/* #undef HAVE_V7_SIGNALS */ +/* #undef HAVE_ERR_remove_thread_state */ + +/* #undef HAVE_SOLARIS_STYLE_GETHOST */ + +/* #undef MY_ATOMIC_MODE_DUMMY */ +/* #undef MY_ATOMIC_MODE_RWLOCKS */ +#define HAVE_GCC_ATOMIC_BUILTINS 1 +/* #undef HAVE_SOLARIS_ATOMIC */ +#define HAVE_DECL_SHM_HUGETLB 1 +#define HAVE_LARGE_PAGES 1 +#define HUGETLB_USE_PROC_MEMINFO 1 +/* #undef NO_FCNTL_NONBLOCK */ +#define NO_ALARM 1 + +/* #undef _LARGE_FILES */ +#define _LARGEFILE_SOURCE 1 +/* #undef _LARGEFILE64_SOURCE */ + +#define TIME_WITH_SYS_TIME 1 + +#define STACK_DIRECTION -1 + +#define SYSTEM_TYPE "Linux" +#define MACHINE_TYPE "x86_64" +/* #undef HAVE_DTRACE */ + +#define SIGNAL_WITH_VIO_CLOSE 1 + +/* Windows stuff, mostly functions, that have Posix analogs but named differently */ +/* #undef S_IROTH */ +/* #undef S_IFIFO */ +/* #undef IPPROTO_IPV6 */ +/* #undef IPV6_V6ONLY */ +/* #undef sigset_t */ +/* #undef mode_t */ +/* #undef SIGQUIT */ +/* #undef SIGPIPE */ +/* #undef isnan */ +/* #undef finite */ +/* #undef popen */ +/* #undef pclose */ +/* #undef ssize_t */ +/* #undef strcasecmp */ +/* #undef strncasecmp */ +/* #undef snprintf */ +/* #undef strtok_r */ +/* #undef strtoll */ +/* #undef strtoull */ +/* #undef vsnprintf */ +#if (_MSC_VER > 1800) +#define tzname _tzname +#define P_tmpdir "C:\\TEMP" +#endif +#if (_MSC_VER > 1310) +# define HAVE_SETENV +#define setenv(a,b,c) _putenv_s(a,b) +#endif +#define PSAPI_VERSION 1 /* for GetProcessMemoryInfo() */ + +/* + MySQL features +*/ +#define LOCAL_INFILE_MODE_OFF 0 +#define LOCAL_INFILE_MODE_ON 1 +#define LOCAL_INFILE_MODE_AUTO 2 +#define ENABLED_LOCAL_INFILE LOCAL_INFILE_MODE_AUTO + +#define ENABLED_PROFILING 1 +/* #undef EXTRA_DEBUG */ +/* #undef BACKUP_TEST */ +/* #undef CYBOZU */ +/* #undef USE_SYMDIR */ + +/* Character sets and collations */ +#define MYSQL_DEFAULT_CHARSET_NAME "latin1" +#define MYSQL_DEFAULT_COLLATION_NAME "latin1_swedish_ci" + +#define USE_MB 1 +#define USE_MB_IDENT 1 +/* #undef USE_STRCOLL */ + +/* This should mean case insensitive file system */ +/* #undef FN_NO_CASE_SENSE */ + +#define HAVE_CHARSET_armscii8 1 +#define HAVE_CHARSET_ascii 1 +#define HAVE_CHARSET_big5 1 +#define HAVE_CHARSET_cp1250 1 +#define HAVE_CHARSET_cp1251 1 +#define HAVE_CHARSET_cp1256 1 +#define HAVE_CHARSET_cp1257 1 +#define HAVE_CHARSET_cp850 1 +#define HAVE_CHARSET_cp852 1 +#define HAVE_CHARSET_cp866 1 +#define HAVE_CHARSET_cp932 1 +#define HAVE_CHARSET_dec8 1 +#define HAVE_CHARSET_eucjpms 1 +#define HAVE_CHARSET_euckr 1 +#define HAVE_CHARSET_gb2312 1 +#define HAVE_CHARSET_gbk 1 +#define HAVE_CHARSET_geostd8 1 +#define HAVE_CHARSET_greek 1 +#define HAVE_CHARSET_hebrew 1 +#define HAVE_CHARSET_hp8 1 +#define HAVE_CHARSET_keybcs2 1 +#define HAVE_CHARSET_koi8r 1 +#define HAVE_CHARSET_koi8u 1 +#define HAVE_CHARSET_latin1 1 +#define HAVE_CHARSET_latin2 1 +#define HAVE_CHARSET_latin5 1 +#define HAVE_CHARSET_latin7 1 +#define HAVE_CHARSET_macce 1 +#define HAVE_CHARSET_macroman 1 +#define HAVE_CHARSET_sjis 1 +#define HAVE_CHARSET_swe7 1 +#define HAVE_CHARSET_tis620 1 +#define HAVE_CHARSET_ucs2 1 +#define HAVE_CHARSET_ujis 1 +#define HAVE_CHARSET_utf8mb4 1 +/* #undef HAVE_CHARSET_utf8mb3 */ +#define HAVE_CHARSET_utf8 1 +#define HAVE_CHARSET_utf16 1 +#define HAVE_CHARSET_utf32 1 +#define HAVE_UCA_COLLATIONS 1 +#define HAVE_COMPRESS 1 + + +/* + Stuff that always need to be defined (compile breaks without it) +*/ +#define HAVE_SPATIAL 1 +#define HAVE_RTREE_KEYS 1 +#define HAVE_QUERY_CACHE 1 +#define BIG_TABLES 1 + +/* + Important storage engines (those that really need define + WITH__STORAGE_ENGINE for the whole server) +*/ +#define WITH_MYISAM_STORAGE_ENGINE 1 +#define WITH_MYISAMMRG_STORAGE_ENGINE 1 +#define WITH_HEAP_STORAGE_ENGINE 1 +#define WITH_INNOBASE_STORAGE_ENGINE 1 +#define WITH_XTRADB_STORAGE_ENGINE 1 +#define WITH_CSV_STORAGE_ENGINE 1 +#define WITH_PARTITION_STORAGE_ENGINE 1 +#define WITH_PERFSCHEMA_STORAGE_ENGINE 1 +/* #undef WITH_NDBCLUSTER_STORAGE_ENGINE */ +#if (WITH_NDBCLUSTER_STORAGE_ENGINE) && !defined(EMBEDDED_LIBRARY) +# define HAVE_NDB_BINLOG 1 +#endif +#define WITH_ARIA_STORAGE_ENGINE 1 +#define USE_ARIA_FOR_TMP_TABLES 1 + +#define DEFAULT_MYSQL_HOME "/usr/local/mysql" +#define SHAREDIR "/usr/local/mysql/share" +#define DEFAULT_BASEDIR "/usr/local/mysql" +#define MYSQL_DATADIR "/usr/local/mysql/data" +#define DEFAULT_CHARSET_HOME "/usr/local/mysql" +#define PLUGINDIR "/usr/local/mysql/lib/plugin" +/* #undef DEFAULT_SYSCONFDIR */ +#define DEFAULT_TMPDIR P_tmpdir + +/* #undef SO_EXT */ + +#define MYSQL_MAJOR_VERSION 5 +#define MYSQL_MINOR_VERSION 5 + +#define PACKAGE "mysql" +#define PACKAGE_BUGREPORT "" +#define PACKAGE_NAME "MySQL Server" +#define PACKAGE_STRING "MySQL Server 5.5.68" +#define PACKAGE_TARNAME "mysql" +#define PACKAGE_VERSION "5.5.68" +#define VERSION "5.5.68" +#define PROTOCOL_VERSION 10 + + +/* time_t related defines */ + +#define SIZEOF_TIME_T 8 +/* #undef TIME_T_UNSIGNED */ + +#endif diff --git a/database/include/mysql/my_dbug.h b/database/include/mysql/my_dbug.h new file mode 100644 index 0000000..7fbdc6e --- /dev/null +++ b/database/include/mysql/my_dbug.h @@ -0,0 +1,187 @@ +/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. + Copyright (C) 2000-2011 Monty Program Ab + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef _my_dbug_h +#define _my_dbug_h + +#ifndef __WIN__ +#include +#endif /* not __WIN__ */ + +#ifdef __cplusplus +extern "C" { +#endif +#if !defined(DBUG_OFF) && !defined(_lint) + +struct _db_stack_frame_ { + const char *func; /* function name of the previous stack frame */ + const char *file; /* filename of the function of previous frame */ + uint level; /* this nesting level, highest bit enables tracing */ + struct _db_stack_frame_ *prev; /* pointer to the previous frame */ +}; + +struct _db_code_state_; +extern my_bool _dbug_on_; +extern my_bool _db_keyword_(struct _db_code_state_ *, const char *, int); +extern int _db_explain_(struct _db_code_state_ *cs, char *buf, size_t len); +extern int _db_explain_init_(char *buf, size_t len); +extern int _db_is_pushed_(void); +extern void _db_setjmp_(void); +extern void _db_longjmp_(void); +extern void _db_process_(const char *name); +extern void _db_push_(const char *control); +extern void _db_pop_(void); +extern void _db_set_(const char *control); +extern void _db_set_init_(const char *control); +extern void _db_enter_(const char *_func_, const char *_file_, uint _line_, + struct _db_stack_frame_ *_stack_frame_); +extern void _db_return_(uint _line_, struct _db_stack_frame_ *_stack_frame_); +extern void _db_pargs_(uint _line_,const char *keyword); +extern void _db_doprnt_(const char *format,...) + ATTRIBUTE_FORMAT(printf, 1, 2); +extern void _db_dump_(uint _line_,const char *keyword, + const unsigned char *memory, size_t length); +extern void _db_end_(void); +extern void _db_lock_file_(void); +extern void _db_unlock_file_(void); +extern FILE *_db_fp_(void); +extern void _db_flush_(); +extern void dbug_swap_code_state(void **code_state_store); +extern void dbug_free_code_state(void **code_state_store); +extern const char* _db_get_func_(void); + +#define DBUG_ENTER(a) struct _db_stack_frame_ _db_stack_frame_; \ + _db_enter_ (a,__FILE__,__LINE__,&_db_stack_frame_) +#define DBUG_LEAVE _db_return_ (__LINE__, &_db_stack_frame_) + +#define DBUG_RETURN(a1) do {DBUG_LEAVE; return(a1);} while(0) +#define DBUG_VOID_RETURN do {DBUG_LEAVE; return;} while(0) +#define DBUG_EXECUTE(keyword,a1) \ + do {if (_db_keyword_(0, (keyword), 0)) { a1 }} while(0) +#define DBUG_EXECUTE_IF(keyword,a1) \ + do {if (_db_keyword_(0, (keyword), 1)) { a1 }} while(0) +#define DBUG_EVALUATE(keyword,a1,a2) \ + (_db_keyword_(0,(keyword), 0) ? (a1) : (a2)) +#define DBUG_EVALUATE_IF(keyword,a1,a2) \ + (_db_keyword_(0,(keyword), 1) ? (a1) : (a2)) +#define DBUG_PRINT(keyword,arglist) \ + do {_db_pargs_(__LINE__,keyword); _db_doprnt_ arglist;} while(0) +#define DBUG_PUSH(a1) _db_push_ (a1) +#define DBUG_POP() _db_pop_ () +#define DBUG_SET(a1) _db_set_ (a1) +#define DBUG_SET_INITIAL(a1) _db_set_init_ (a1) +#define DBUG_PROCESS(a1) _db_process_(a1) +#define DBUG_FILE _db_fp_() +#define DBUG_DUMP(keyword,a1,a2) _db_dump_(__LINE__,keyword,a1,a2) +#define DBUG_END() _db_end_ () +#define DBUG_LOCK_FILE _db_lock_file_() +#define DBUG_UNLOCK_FILE _db_unlock_file_() +#define DBUG_ASSERT(A) do { _db_flush_(); assert(A); } while(0) +#define DBUG_EXPLAIN(buf,len) _db_explain_(0, (buf),(len)) +#define DBUG_EXPLAIN_INITIAL(buf,len) _db_explain_init_((buf),(len)) +#define DEBUGGER_OFF do { _dbug_on_= 0; } while(0) +#define DEBUGGER_ON do { _dbug_on_= 1; } while(0) +#define IF_DBUG(A,B) A +#define DBUG_SWAP_CODE_STATE(arg) dbug_swap_code_state(arg) +#define DBUG_FREE_CODE_STATE(arg) dbug_free_code_state(arg) + +#ifndef __WIN__ +#define DBUG_ABORT() (_db_flush_(), abort()) +#else +/* + Avoid popup with abort/retry/ignore buttons. When BUG#31745 is fixed we can + call abort() instead of _exit(3) (now it would cause a "test signal" popup). +*/ +#include +#define DBUG_ABORT() (_db_flush_(),\ + (void)_CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE),\ + (void)_CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR),\ + _exit(3)) +#endif + +/* + Make the program fail, without creating a core file. + abort() will send SIGABRT which (most likely) generates core. + Use SIGKILL instead, which cannot be caught. + We also pause the current thread, until the signal is actually delivered. + An alternative would be to use _exit(EXIT_FAILURE), + but then valgrind would report lots of memory leaks. + */ +#ifdef __WIN__ +#define DBUG_SUICIDE() DBUG_ABORT() +#else +extern void _db_suicide_(); +#define DBUG_SUICIDE() (_db_flush_(), _db_suicide_()) +#endif + +#else /* No debugger */ + +#define DBUG_ENTER(a1) +#define DBUG_VIOLATION_HELPER_LEAVE do { } while(0) +#define DBUG_LEAVE +#define DBUG_RETURN(a1) do { return(a1); } while(0) +#define DBUG_VOID_RETURN do { return; } while(0) +#define DBUG_EXECUTE(keyword,a1) do { } while(0) +#define DBUG_EXECUTE_IF(keyword,a1) do { } while(0) +#define DBUG_EVALUATE(keyword,a1,a2) (a2) +#define DBUG_EVALUATE_IF(keyword,a1,a2) (a2) +#define DBUG_PRINT(keyword,arglist) do { } while(0) +#define DBUG_PUSH(a1) do { } while(0) +#define DBUG_SET(a1) do { } while(0) +#define DBUG_SET_INITIAL(a1) do { } while(0) +#define DBUG_POP() do { } while(0) +#define DBUG_PROCESS(a1) do { } while(0) +#define DBUG_DUMP(keyword,a1,a2) do { } while(0) +#define DBUG_END() do { } while(0) +#define DBUG_ASSERT(A) do { } while(0) +#define DBUG_LOCK_FILE do { } while(0) +#define DBUG_FILE (stderr) +#define DBUG_UNLOCK_FILE do { } while(0) +#define DBUG_EXPLAIN(buf,len) +#define DBUG_EXPLAIN_INITIAL(buf,len) +#define DEBUGGER_OFF do { } while(0) +#define DEBUGGER_ON do { } while(0) +#define IF_DBUG(A,B) B +#define DBUG_SWAP_CODE_STATE(arg) do { } while(0) +#define DBUG_FREE_CODE_STATE(arg) do { } while(0) +#define DBUG_ABORT() do { } while(0) +#define DBUG_CRASH_ENTER(func) +#define DBUG_CRASH_RETURN(val) do { return(val); } while(0) +#define DBUG_CRASH_VOID_RETURN do { return; } while(0) +#define DBUG_SUICIDE() do { } while(0) + +#endif + +#ifdef EXTRA_DEBUG +/** + Sync points allow us to force the server to reach a certain line of code + and block there until the client tells the server it is ok to go on. + The client tells the server to block with SELECT GET_LOCK() + and unblocks it with SELECT RELEASE_LOCK(). Used for debugging difficult + concurrency problems +*/ +#define DBUG_SYNC_POINT(lock_name,lock_timeout) \ + debug_sync_point(lock_name,lock_timeout) +void debug_sync_point(const char* lock_name, uint lock_timeout); +#else +#define DBUG_SYNC_POINT(lock_name,lock_timeout) +#endif /* EXTRA_DEBUG */ + +#ifdef __cplusplus +} +#endif + +#endif /* _my_dbug_h */ diff --git a/database/include/mysql/my_decimal_limits.h b/database/include/mysql/my_decimal_limits.h new file mode 100644 index 0000000..34117f8 --- /dev/null +++ b/database/include/mysql/my_decimal_limits.h @@ -0,0 +1,45 @@ +#ifndef MY_DECIMAL_LIMITS_INCLUDED +#define MY_DECIMAL_LIMITS_INCLUDED +/* Copyright (c) 2011 Monty Program Ab + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +#define DECIMAL_LONGLONG_DIGITS 22 +#define DECIMAL_LONG_DIGITS 10 +#define DECIMAL_LONG3_DIGITS 8 + +/** maximum length of buffer in our big digits (uint32). */ +#define DECIMAL_BUFF_LENGTH 9 + +/* the number of digits that my_decimal can possibly contain */ +#define DECIMAL_MAX_POSSIBLE_PRECISION (DECIMAL_BUFF_LENGTH * 9) + + +/** + maximum guaranteed precision of number in decimal digits (number of our + digits * number of decimal digits in one our big digit - number of decimal + digits in one our big digit decreased by 1 (because we always put decimal + point on the border of our big digits)) +*/ +#define DECIMAL_MAX_PRECISION (DECIMAL_MAX_POSSIBLE_PRECISION - 8*2) +#define DECIMAL_MAX_SCALE 30 +#define DECIMAL_NOT_SPECIFIED 31 + +/** + maximum length of string representation (number of maximum decimal + digits + 1 position for sign + 1 position for decimal point, no terminator) +*/ +#define DECIMAL_MAX_STR_LENGTH (DECIMAL_MAX_POSSIBLE_PRECISION + 2) + +#endif /* MY_DECIMAL_LIMITS_INCLUDED */ diff --git a/database/include/mysql/my_dir.h b/database/include/mysql/my_dir.h new file mode 100644 index 0000000..28036a3 --- /dev/null +++ b/database/include/mysql/my_dir.h @@ -0,0 +1,109 @@ +/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef MY_DIR_H +#define MY_DIR_H + +#include "my_global.h" + +#include + +#ifdef __cplusplus +extern "C" { +#endif + + /* Defines for my_dir and my_stat */ + +#define MY_S_IFMT S_IFMT /* type of file */ +#define MY_S_IFDIR S_IFDIR /* directory */ +#define MY_S_IFCHR S_IFCHR /* character special */ +#define MY_S_IFBLK S_IFBLK /* block special */ +#define MY_S_IFREG S_IFREG /* regular */ +#define MY_S_IFIFO S_IFIFO /* fifo */ +#define MY_S_ISUID S_ISUID /* set user id on execution */ +#define MY_S_ISGID S_ISGID /* set group id on execution */ +#define MY_S_ISVTX S_ISVTX /* save swapped text even after use */ +#define MY_S_IREAD S_IREAD /* read permission, owner */ +#define MY_S_IWRITE S_IWRITE /* write permission, owner */ +#define MY_S_IEXEC S_IEXEC /* execute/search permission, owner */ + +#define MY_S_ISDIR(m) (((m) & MY_S_IFMT) == MY_S_IFDIR) +#define MY_S_ISCHR(m) (((m) & MY_S_IFMT) == MY_S_IFCHR) +#define MY_S_ISBLK(m) (((m) & MY_S_IFMT) == MY_S_IFBLK) +#define MY_S_ISREG(m) (((m) & MY_S_IFMT) == MY_S_IFREG) +#define MY_S_ISFIFO(m) (((m) & MY_S_IFMT) == MY_S_IFIFO) + +#define MY_DONT_SORT 512 /* my_lib; Don't sort files */ +#define MY_WANT_STAT 1024 /* my_lib; stat files */ + + /* typedefs for my_dir & my_stat */ + +#ifdef USE_MY_STAT_STRUCT + +typedef struct my_stat +{ + dev_t st_dev; /* major & minor device numbers */ + ino_t st_ino; /* inode number */ + ushort st_mode; /* file permissons (& suid sgid .. bits) */ + short st_nlink; /* number of links to file */ + ushort st_uid; /* user id */ + ushort st_gid; /* group id */ + dev_t st_rdev; /* more major & minor device numbers (???) */ + off_t st_size; /* size of file */ + time_t st_atime; /* time for last read */ + time_t st_mtime; /* time for last contens modify */ + time_t st_ctime; /* time for last inode or contents modify */ +} MY_STAT; + +#else + +#if(_MSC_VER) +#define MY_STAT struct _stati64 /* 64 bit file size */ +#else +#define MY_STAT struct stat /* Orginal struct have what we need */ +#endif + +#endif /* USE_MY_STAT_STRUCT */ + +/* Struct describing one file returned from my_dir */ +typedef struct fileinfo +{ + char *name; + MY_STAT *mystat; +} FILEINFO; + +typedef struct st_my_dir /* Struct returned from my_dir */ +{ + /* + These members are just copies of parts of DYNAMIC_ARRAY structure, + which is allocated right after the end of MY_DIR structure (MEM_ROOT + for storing names is also resides there). We've left them here because + we don't want to change code that uses my_dir. + */ + struct fileinfo *dir_entry; + uint number_off_files; +} MY_DIR; + +extern MY_DIR *my_dir(const char *path,myf MyFlags); +extern void my_dirend(MY_DIR *buffer); +extern MY_STAT *my_stat(const char *path, MY_STAT *stat_area, myf my_flags); +extern int my_fstat(int filenr, MY_STAT *stat_area, myf MyFlags); + +#ifdef __cplusplus +} +#endif + +#endif /* MY_DIR_H */ + diff --git a/database/include/mysql/my_getopt.h b/database/include/mysql/my_getopt.h new file mode 100644 index 0000000..62ba3e6 --- /dev/null +++ b/database/include/mysql/my_getopt.h @@ -0,0 +1,129 @@ +/* + Copyright (c) 2002, 2013, Oracle and/or its affiliates. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef _my_getopt_h +#define _my_getopt_h + +#include "my_sys.h" /* loglevel */ + +C_MODE_START + +#define GET_NO_ARG 1 +#define GET_BOOL 2 +#define GET_INT 3 +#define GET_UINT 4 +#define GET_LONG 5 +#define GET_ULONG 6 +#define GET_LL 7 +#define GET_ULL 8 +#define GET_STR 9 +#define GET_STR_ALLOC 10 +#define GET_DISABLED 11 +#define GET_ENUM 12 +#define GET_SET 13 +#define GET_DOUBLE 14 +#define GET_FLAGSET 15 + +#define GET_ASK_ADDR 128 +#define GET_TYPE_MASK 127 + +/** + Enumeration of the my_option::arg_type attributes. + It should be noted that for historical reasons variables with the combination + arg_type=NO_ARG, my_option::var_type=GET_BOOL still accepts + arguments. This is someone counter intuitive and care should be taken + if the code is refactored. +*/ +enum get_opt_arg_type { NO_ARG, OPT_ARG, REQUIRED_ARG }; + +struct st_typelib; + +struct my_option +{ + const char *name; /**< Name of the option. name=NULL + marks the end of the my_option[] + array. + */ + int id; /**< For 0255 no short option + is created, but a long option still + can be identified uniquely in the + my_get_one_option() callback. + If an opton needs neither special + treatment in the my_get_one_option() + nor one-letter short equivalent + use id=0 + */ + const char *comment; /**< option comment, for autom. --help. + if it's NULL the option is not + visible in --help. + */ + void *value; /**< A pointer to the variable value */ + void *u_max_value; /**< The user def. max variable value */ + struct st_typelib *typelib; /**< Pointer to possible values */ + ulong var_type; /**< GET_BOOL, GET_ULL, etc */ + enum get_opt_arg_type arg_type; /**< e.g. REQUIRED_ARG or OPT_ARG */ + longlong def_value; /**< Default value */ + longlong min_value; /**< Min allowed value (for numbers) */ + ulonglong max_value; /**< Max allowed value (for numbers) */ + longlong sub_size; /**< Unused */ + long block_size; /**< Value should be a mult. of this (for numbers) */ + void *app_type; /**< To be used by an application */ +}; + + +typedef my_bool (*my_get_one_option)(int, const struct my_option *, char *); +typedef void (*my_error_reporter)(enum loglevel level, const char *format, ...) + ATTRIBUTE_FORMAT_FPTR(printf, 2, 3); + +/** + Used to retrieve a reference to the object (variable) that holds the value + for the given option. For example, if var_type is GET_UINT, the function + must return a pointer to a variable of type uint. A argument is stored in + the location pointed to by the returned pointer. +*/ +typedef void *(*my_getopt_value)(const char *, uint, const struct my_option *, + int *); + + +extern char *disabled_my_option; +extern my_bool my_getopt_print_errors; +extern my_bool my_getopt_skip_unknown; +extern my_error_reporter my_getopt_error_reporter; + +extern int handle_options (int *argc, char ***argv, + const struct my_option *longopts, my_get_one_option); +extern void my_cleanup_options(const struct my_option *options); +extern void my_print_help(const struct my_option *options); +extern void my_print_variables(const struct my_option *options); +extern void my_getopt_register_get_addr(my_getopt_value); + +ulonglong getopt_ull_limit_value(ulonglong num, const struct my_option *optp, + my_bool *fix); +longlong getopt_ll_limit_value(longlong, const struct my_option *, + my_bool *fix); +double getopt_double_limit_value(double num, const struct my_option *optp, + my_bool *fix); +my_bool getopt_compare_strings(const char *s, const char *t, uint length); + +ulonglong getopt_double2ulonglong(double); +double getopt_ulonglong2double(ulonglong); + +C_MODE_END + +#endif /* _my_getopt_h */ + diff --git a/database/include/mysql/my_global.h b/database/include/mysql/my_global.h new file mode 100644 index 0000000..01a1dca --- /dev/null +++ b/database/include/mysql/my_global.h @@ -0,0 +1,1517 @@ +/* + Copyright (c) 2001, 2013, Oracle and/or its affiliates. + Copyright (c) 2009, 2017, MariaDB Corporation + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* This is the include file that should be included 'first' in every C file. */ + +#ifndef _global_h +#define _global_h + +/* Client library users on Windows need this macro defined here. */ +#if !defined(__WIN__) && defined(_WIN32) +#define __WIN__ +#endif + +/* + InnoDB depends on some MySQL internals which other plugins should not + need. This is because of InnoDB's foreign key support, "safe" binlog + truncation, and other similar legacy features. + + We define accessors for these internals unconditionally, but do not + expose them in mysql/plugin.h. They are declared in ha_innodb.h for + InnoDB's use. +*/ +#define INNODB_COMPATIBILITY_HOOKS + +#ifdef __CYGWIN__ +/* We use a Unix API, so pretend it's not Windows */ +#undef WIN +#undef WIN32 +#undef _WIN +#undef _WIN32 +#undef _WIN64 +#undef __WIN__ +#undef __WIN32__ +#define HAVE_ERRNO_AS_DEFINE +#define _POSIX_MONOTONIC_CLOCK +#define _POSIX_THREAD_CPUTIME +#endif /* __CYGWIN__ */ + +/* to make command line shorter we'll define USE_PRAGMA_INTERFACE here */ +#ifdef USE_PRAGMA_IMPLEMENTATION +#define USE_PRAGMA_INTERFACE +#endif + +#if defined(__OpenBSD__) && (OpenBSD >= 200411) +#define HAVE_ERRNO_AS_DEFINE +#endif + +#if defined(i386) && !defined(__i386__) +#define __i386__ +#endif + +/* Macros to make switching between C and C++ mode easier */ +#ifdef __cplusplus +#define C_MODE_START extern "C" { +#define C_MODE_END } +#else +#define C_MODE_START +#define C_MODE_END +#endif + +#ifdef __cplusplus +#define CPP_UNNAMED_NS_START namespace { +#define CPP_UNNAMED_NS_END } +#endif + +#include + +#ifdef WITH_PERFSCHEMA_STORAGE_ENGINE +#define HAVE_PSI_INTERFACE +#endif /* WITH_PERFSCHEMA_STORAGE_ENGINE */ + +/* Make it easier to add conditional code in _expressions_ */ +#ifdef __WIN__ +#define IF_WIN(A,B) A +#else +#define IF_WIN(A,B) B +#endif + +#ifdef WITH_PARTITION_STORAGE_ENGINE +#define IF_PARTITIONING(A,B) A +#else +#define IF_PARTITIONING(A,B) B +#endif + +#ifndef EMBEDDED_LIBRARY +#ifdef WITH_NDB_BINLOG +#define HAVE_NDB_BINLOG 1 +#endif +#endif /* !EMBEDDED_LIBRARY */ + +#ifndef EMBEDDED_LIBRARY +#define HAVE_REPLICATION +#define HAVE_EXTERNAL_CLIENT +#endif + +#if defined (_WIN32) +/* + off_t is 32 bit long. We do not use C runtime functions + with off_t but native Win32 file IO APIs, that work with + 64 bit offsets. +*/ +#undef SIZEOF_OFF_T +#define SIZEOF_OFF_T 8 + +/* + Prevent inclusion of Windows GDI headers - they define symbol + ERROR that conflicts with mysql headers. +*/ +#ifndef NOGDI +#define NOGDI +#endif + +/* Include common headers.*/ +#include +#include /* SOCKET */ +#include /* access(), chmod() */ +#include /* getpid() */ + +#define sleep(a) Sleep((a)*1000) + +/* Define missing access() modes. */ +#define F_OK 0 +#define W_OK 2 + +/* Define missing file locking constants. */ +#define F_RDLCK 1 +#define F_WRLCK 2 +#define F_UNLCK 3 +#define F_TO_EOF 0x3FFFFFFF + +/* Shared memory and named pipe connections are supported. */ +#define HAVE_SMEM 1 +#define HAVE_NAMED_PIPE 1 +#define shared_memory_buffer_length 16000 +#define default_shared_memory_base_name "MYSQL" +#endif /* _WIN32*/ + + +/* Workaround for _LARGE_FILES and _LARGE_FILE_API incompatibility on AIX */ +#if defined(_AIX) && defined(_LARGE_FILE_API) +#undef _LARGE_FILE_API +#endif + +/* + The macros below are used to allow build of Universal/fat binaries of + MySQL and MySQL applications under darwin. +*/ +#if defined(__APPLE__) && defined(__MACH__) +# undef SIZEOF_CHARP +# undef SIZEOF_SHORT +# undef SIZEOF_INT +# undef SIZEOF_LONG +# undef SIZEOF_LONG_LONG +# undef SIZEOF_OFF_T +# undef WORDS_BIGENDIAN +# define SIZEOF_SHORT 2 +# define SIZEOF_INT 4 +# define SIZEOF_LONG_LONG 8 +# define SIZEOF_OFF_T 8 +# if defined(__i386__) || defined(__ppc__) +# define SIZEOF_CHARP 4 +# define SIZEOF_LONG 4 +# elif defined(__x86_64__) || defined(__ppc64__) +# define SIZEOF_CHARP 8 +# define SIZEOF_LONG 8 +# else +# error Building FAT binary for an unknown architecture. +# endif +# if defined(__ppc__) || defined(__ppc64__) +# define WORDS_BIGENDIAN +# endif +#endif /* defined(__APPLE__) && defined(__MACH__) */ + + +/* + The macros below are borrowed from include/linux/compiler.h in the + Linux kernel. Use them to indicate the likelyhood of the truthfulness + of a condition. This serves two purposes - newer versions of gcc will be + able to optimize for branch predication, which could yield siginficant + performance gains in frequently executed sections of the code, and the + other reason to use them is for documentation +*/ + +#if !defined(__GNUC__) || (__GNUC__ == 2 && __GNUC_MINOR__ < 96) +#define __builtin_expect(x, expected_value) (x) +#endif + +/** + The semantics of builtin_expect() are that + 1) its two arguments are long + 2) it's likely that they are == + Those of our likely(x) are that x can be bool/int/longlong/pointer. +*/ +#define likely(x) __builtin_expect(((x) != 0),1) +#define unlikely(x) __builtin_expect(((x) != 0),0) + +/* Fix problem with S_ISLNK() on Linux */ +#if defined(TARGET_OS_LINUX) || defined(__GLIBC__) +#undef _GNU_SOURCE +#define _GNU_SOURCE 1 +#endif + +/* + Temporary solution to solve bug#7156. Include "sys/types.h" before + the thread headers, else the function madvise() will not be defined +*/ +#if defined(HAVE_SYS_TYPES_H) && ( defined(sun) || defined(__sun) ) +#include +#endif + +#define __EXTENSIONS__ 1 /* We want some extension */ +#ifndef __STDC_EXT__ +#define __STDC_EXT__ 1 /* To get large file support on hpux */ +#endif + +/* + Solaris 9 include file refers to X/Open document + + System Interfaces and Headers, Issue 5 + + saying we should define _XOPEN_SOURCE=500 to get POSIX.1c prototypes, + but apparently other systems (namely FreeBSD) don't agree. + + On a newer Solaris 10, the above file recognizes also _XOPEN_SOURCE=600. + Furthermore, it tests that if a program requires older standard + (_XOPEN_SOURCE<600 or _POSIX_C_SOURCE<200112L) it cannot be + run on a new compiler (that defines _STDC_C99) and issues an #error. + It's also an #error if a program requires new standard (_XOPEN_SOURCE=600 + or _POSIX_C_SOURCE=200112L) and a compiler does not define _STDC_C99. + + To add more to this mess, Sun Studio C compiler defines _STDC_C99 while + C++ compiler does not! + + So, in a desperate attempt to get correct prototypes for both + C and C++ code, we define either _XOPEN_SOURCE=600 or _XOPEN_SOURCE=500 + depending on the compiler's announced C standard support. + + Cleaner solutions are welcome. +*/ +#ifdef __sun +#if __STDC_VERSION__ - 0 >= 199901L +#define _XOPEN_SOURCE 600 +#else +#define _XOPEN_SOURCE 500 +#endif +#endif + +#if !defined(__WIN__) +#ifndef _POSIX_PTHREAD_SEMANTICS +#define _POSIX_PTHREAD_SEMANTICS /* We want posix threads */ +#endif + +#if !defined(SCO) +#define _REENTRANT 1 /* Some thread libraries require this */ +#endif +#if !defined(_THREAD_SAFE) && !defined(_AIX) +#define _THREAD_SAFE /* Required for OSF1 */ +#endif +#if defined(HPUX10) || defined(HPUX11) +C_MODE_START /* HPUX needs this, signal.h bug */ +#include +C_MODE_END +#else +#include /* AIX must have this included first */ +#endif +#if !defined(SCO) && !defined(_REENTRANT) +#define _REENTRANT 1 /* Threads requires reentrant code */ +#endif +#endif /* !defined(__WIN__) */ + +/* Go around some bugs in different OS and compilers */ +#ifdef _AIX /* By soren@t.dk */ +#define _H_STRINGS +#define _SYS_STREAM_H +/* #define _AIX32_CURSES */ /* XXX: this breaks AIX 4.3.3 (others?). */ +#define ulonglong2double(A) my_ulonglong2double(A) +#define my_off_t2double(A) my_ulonglong2double(A) +C_MODE_START +inline double my_ulonglong2double(unsigned long long A) { return (double)A; } +C_MODE_END +#endif /* _AIX */ + +#ifdef UNDEF_HAVE_INITGROUPS /* For AIX 4.3 */ +#undef HAVE_INITGROUPS +#endif + +/* gcc/egcs issues */ + +#if defined(__GNUC) && defined(__EXCEPTIONS) +#error "Please add -fno-exceptions to CXXFLAGS and reconfigure/recompile" +#endif + +#if defined(_lint) && !defined(lint) +#define lint +#endif +#if SIZEOF_LONG_LONG > 4 && !defined(_LONG_LONG) +#define _LONG_LONG 1 /* For AIX string library */ +#endif + +#ifndef stdin +#include +#endif +#include +#ifdef HAVE_STDLIB_H +#include +#endif +#ifdef HAVE_STDDEF_H +#include +#endif + +#include +#ifdef HAVE_LIMITS_H +#include +#endif +#ifdef HAVE_FLOAT_H +#include +#endif +#ifdef HAVE_FENV_H +#include /* For fesetround() */ +#endif + +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_FCNTL_H +#include +#endif +#ifdef HAVE_SYS_STAT_H +#include +#endif +#if TIME_WITH_SYS_TIME +# include +# include +#else +# if HAVE_SYS_TIME_H +# include +# else +# include +# endif +#endif /* TIME_WITH_SYS_TIME */ +#ifdef HAVE_UNISTD_H +#include +#endif +#if defined(__cplusplus) && defined(NO_CPLUSPLUS_ALLOCA) +#undef HAVE_ALLOCA +#undef HAVE_ALLOCA_H +#endif +#ifdef HAVE_ALLOCA_H +#include +#endif + +#include /* Recommended by debian */ +/* We need the following to go around a problem with openssl on solaris */ +#if defined(HAVE_CRYPT_H) +#include +#endif + +/* + A lot of our programs uses asserts, so better to always include it + This also fixes a problem when people uses DBUG_ASSERT without including + assert.h +*/ +#include + +/* an assert that works at compile-time. only for constant expression */ +#ifdef _some_old_compiler_that_does_not_understand_the_construct_below_ +#define compile_time_assert(X) do { } while(0) +#else +#define compile_time_assert(X) \ + do \ + { \ + typedef char compile_time_assert[(X) ? 1 : -1] __attribute__((unused)); \ + } while(0) +#endif + +/* Go around some bugs in different OS and compilers */ +#if defined (HPUX11) && defined(_LARGEFILE_SOURCE) +#ifndef _LARGEFILE64_SOURCE +#define _LARGEFILE64_SOURCE +#endif +#endif + +#if defined(_HPUX_SOURCE) && defined(HAVE_SYS_STREAM_H) +#include /* HPUX 10.20 defines ulong here. UGLY !!! */ +#define HAVE_ULONG +#endif +#if defined(HPUX10) && defined(_LARGEFILE64_SOURCE) +/* Fix bug in setrlimit */ +#undef setrlimit +#define setrlimit cma_setrlimit64 +#endif +/* Declare madvise where it is not declared for C++, like Solaris */ +#if HAVE_MADVISE && !HAVE_DECL_MADVISE && defined(__cplusplus) +extern "C" int madvise(void *addr, size_t len, int behav); +#endif + +#define QUOTE_ARG(x) #x /* Quote argument (before cpp) */ +#define STRINGIFY_ARG(x) QUOTE_ARG(x) /* Quote argument, after cpp */ + +/* Paranoid settings. Define I_AM_PARANOID if you are paranoid */ +#ifdef I_AM_PARANOID +#define DONT_ALLOW_USER_CHANGE 1 +#define DONT_USE_MYSQL_PWD 1 +#endif + +/* Does the system remember a signal handler after a signal ? */ +#if !defined(HAVE_BSD_SIGNALS) && !defined(HAVE_SIGACTION) +#define SIGNAL_HANDLER_RESET_ON_DELIVERY +#endif + +/* don't assume that STDERR_FILENO is 2, mysqld can freopen */ +#undef STDERR_FILENO + +/* + Deprecated workaround for false-positive uninitialized variables + warnings. Those should be silenced using tool-specific heuristics. + + Enabled by default for g++ due to the bug referenced below. +*/ +#if defined(_lint) || defined(FORCE_INIT_OF_VARS) || \ + (defined(__GNUC__) && defined(__cplusplus)) +#define LINT_INIT(var) var= 0 +#else +#define LINT_INIT(var) +#endif + +#ifndef SO_EXT +#ifdef _WIN32 +#define SO_EXT ".dll" +#else +#define SO_EXT ".so" +#endif +#endif + +/* + Suppress uninitialized variable warning without generating code. + + The _cplusplus is a temporary workaround for C++ code pending a fix + for a g++ bug (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34772). +*/ +#if defined(_lint) || defined(FORCE_INIT_OF_VARS) || \ + defined(__cplusplus) || !defined(__GNUC__) +#define UNINIT_VAR(x) x= 0 +#else +/* GCC specific self-initialization which inhibits the warning. */ +#define UNINIT_VAR(x) x= x +#endif + +#if !defined(HAVE_UINT) +#undef HAVE_UINT +#define HAVE_UINT +typedef unsigned int uint; +typedef unsigned short ushort; +#endif + +#define swap_variables(t, a, b) { t dummy; dummy= a; a= b; b= dummy; } +#define test(a) ((a) ? 1 : 0) +#define MY_TEST(a) ((a) ? 1 : 0) +#define set_if_bigger(a,b) do { if ((a) < (b)) (a)=(b); } while(0) +#define set_if_smaller(a,b) do { if ((a) > (b)) (a)=(b); } while(0) +#define set_bits(type, bit_count) (sizeof(type)*8 <= (bit_count) ? ~(type) 0 : ((((type) 1) << (bit_count)) - (type) 1)) +#define test_all_bits(a,b) (((a) & (b)) == (b)) +#define array_elements(A) ((uint) (sizeof(A)/sizeof(A[0]))) + +/* Define some general constants */ +#ifndef TRUE +#define TRUE (1) /* Logical true */ +#define FALSE (0) /* Logical false */ +#endif + +#include + +/* + Wen using the embedded library, users might run into link problems, + duplicate declaration of __cxa_pure_virtual, solved by declaring it a + weak symbol. +*/ +#if defined(USE_MYSYS_NEW) && ! defined(DONT_DECLARE_CXA_PURE_VIRTUAL) +C_MODE_START +int __cxa_pure_virtual () __attribute__ ((weak)); +C_MODE_END +#endif + +/* The DBUG_ON flag always takes precedence over default DBUG_OFF */ +#if defined(DBUG_ON) && defined(DBUG_OFF) +#undef DBUG_OFF +#endif + +/* We might be forced to turn debug off, if not turned off already */ +#if (defined(FORCE_DBUG_OFF) || defined(_lint)) && !defined(DBUG_OFF) +# define DBUG_OFF +# ifdef DBUG_ON +# undef DBUG_ON +# endif +#endif + +#ifdef DBUG_OFF +#undef EXTRA_DEBUG +#endif + +/* Some types that is different between systems */ + +typedef int File; /* File descriptor */ +#ifdef _WIN32 +typedef SOCKET my_socket; +#else +typedef int my_socket; /* File descriptor for sockets */ +#define INVALID_SOCKET -1 +#endif +/* Type for fuctions that handles signals */ +#define sig_handler RETSIGTYPE +C_MODE_START +typedef void (*sig_return)();/* Returns type from signal */ +C_MODE_END +#if defined(__GNUC__) && !defined(_lint) +typedef char pchar; /* Mixed prototypes can take char */ +typedef char puchar; /* Mixed prototypes can take char */ +typedef char pbool; /* Mixed prototypes can take char */ +typedef short pshort; /* Mixed prototypes can take short int */ +typedef float pfloat; /* Mixed prototypes can take float */ +#else +typedef int pchar; /* Mixed prototypes can't take char */ +typedef uint puchar; /* Mixed prototypes can't take char */ +typedef int pbool; /* Mixed prototypes can't take char */ +typedef int pshort; /* Mixed prototypes can't take short int */ +typedef double pfloat; /* Mixed prototypes can't take float */ +#endif +C_MODE_START +typedef int (*qsort_cmp)(const void *,const void *); +typedef int (*qsort_cmp2)(void*, const void *,const void *); +C_MODE_END +#define qsort_t RETQSORTTYPE /* Broken GCC cant handle typedef !!!! */ +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +typedef SOCKET_SIZE_TYPE size_socket; + +#ifndef SOCKOPT_OPTLEN_TYPE +#define SOCKOPT_OPTLEN_TYPE size_socket +#endif + +/* file create flags */ + +#ifndef O_SHARE /* Probably not windows */ +#define O_SHARE 0 /* Flag to my_open for shared files */ +#ifndef O_BINARY +#define O_BINARY 0 /* Flag to my_open for binary files */ +#endif +#ifndef FILE_BINARY +#define FILE_BINARY O_BINARY /* Flag to my_fopen for binary streams */ +#endif +#ifdef HAVE_FCNTL +#define HAVE_FCNTL_LOCK +#define F_TO_EOF 0L /* Param to lockf() to lock rest of file */ +#endif +#endif /* O_SHARE */ + +#ifndef O_TEMPORARY +#define O_TEMPORARY 0 +#endif +#ifndef O_SHORT_LIVED +#define O_SHORT_LIVED 0 +#endif +#ifndef O_NOFOLLOW +#define O_NOFOLLOW 0 +#endif + +/* additional file share flags for win32 */ +#ifdef __WIN__ +#define _SH_DENYRWD 0x110 /* deny read/write mode & delete */ +#define _SH_DENYWRD 0x120 /* deny write mode & delete */ +#define _SH_DENYRDD 0x130 /* deny read mode & delete */ +#define _SH_DENYDEL 0x140 /* deny delete only */ +#endif /* __WIN__ */ + + +/* General constants */ +#define FN_LEN 256 /* Max file name len */ +#define FN_HEADLEN 253 /* Max length of filepart of file name */ +#define FN_EXTLEN 20 /* Max length of extension (part of FN_LEN) */ +#define FN_REFLEN 512 /* Max length of full path-name */ +#define FN_EXTCHAR '.' +#define FN_HOMELIB '~' /* ~/ is used as abbrev for home dir */ +#define FN_CURLIB '.' /* ./ is used as abbrev for current dir */ +#define FN_PARENTDIR ".." /* Parent directory; Must be a string */ + +#ifdef _WIN32 +#define FN_LIBCHAR '\\' +#define FN_LIBCHAR2 '/' +#define FN_DIRSEP "/\\" /* Valid directory separators */ +#define FN_EXEEXT ".exe" +#define FN_SOEXT ".dll" +#define FN_ROOTDIR "\\" +#define FN_DEVCHAR ':' +#define FN_NETWORK_DRIVES /* Uses \\ to indicate network drives */ +#define FN_NO_CASE_SENCE /* Files are not case-sensitive */ +#else +#define FN_LIBCHAR '/' +#define FN_LIBCHAR2 '/' +#define FN_DIRSEP "/" /* Valid directory separators */ +#define FN_EXEEXT "" +#define FN_SOEXT ".so" +#define FN_ROOTDIR "/" +#endif + +/* + MY_FILE_MIN is Windows speciality and is used to quickly detect + the mismatch of CRT and mysys file IO usage on Windows at runtime. + CRT file descriptors can be in the range 0-2047, whereas descriptors returned + by my_open() will start with 2048. If a file descriptor with value less then + MY_FILE_MIN is passed to mysys IO function, chances are it stemms from + open()/fileno() and not my_open()/my_fileno. + + For Posix, mysys functions are light wrappers around libc, and MY_FILE_MIN + is logically 0. +*/ + +#ifdef _WIN32 +#define MY_FILE_MIN 2048 +#else +#define MY_FILE_MIN 0 +#endif + +/* + MY_NFILE is the default size of my_file_info array. + + It is larger on Windows, because it all file handles are stored in my_file_info + Default size is 16384 and this should be enough for most cases.If it is not + enough, --max-open-files with larger value can be used. + + For Posix , my_file_info array is only used to store filenames for + error reporting and its size is not a limitation for number of open files. +*/ +#ifdef _WIN32 +#define MY_NFILE (16384 + MY_FILE_MIN) +#else +#define MY_NFILE 64 +#endif + +#ifndef OS_FILE_LIMIT +#define OS_FILE_LIMIT UINT_MAX +#endif + +/* + Io buffer size; Must be a power of 2 and a multiple of 512. May be + smaller what the disk page size. This influences the speed of the + isam btree library. eg to big to slow. +*/ +#define IO_SIZE 4096 +/* + How much overhead does malloc have. The code often allocates + something like 1024-MALLOC_OVERHEAD bytes +*/ +#define MALLOC_OVERHEAD 8 + + /* get memory in huncs */ +#define ONCE_ALLOC_INIT (uint) 4096 + /* Typical record cache */ +#define RECORD_CACHE_SIZE (uint) (128*1024) + /* Typical key cache */ +#define KEY_CACHE_SIZE (uint) (128L*1024L*1024L) + /* Default size of a key cache block */ +#define KEY_CACHE_BLOCK_SIZE (uint) 1024 + + /* Some things that this system doesn't have */ + +#ifdef _WIN32 +#define NO_DIR_LIBRARY /* Not standard dir-library */ +#endif + +/* Some defines of functions for portability */ + +#undef remove /* Crashes MySQL on SCO 5.0.0 */ +#ifndef __WIN__ +#define closesocket(A) close(A) +#endif + +#if (_MSC_VER) +#if !defined(_WIN64) +inline double my_ulonglong2double(unsigned long long value) +{ + long long nr=(long long) value; + if (nr >= 0) + return (double) nr; + return (18446744073709551616.0 + (double) nr); +} +#define ulonglong2double my_ulonglong2double +#define my_off_t2double my_ulonglong2double +#endif /* _WIN64 */ +inline unsigned long long my_double2ulonglong(double d) +{ + double t= d - (double) 0x8000000000000000ULL; + + if (t >= 0) + return ((unsigned long long) t) + 0x8000000000000000ULL; + return (unsigned long long) d; +} +#define double2ulonglong my_double2ulonglong +#endif + +#ifndef ulonglong2double +#define ulonglong2double(A) ((double) (ulonglong) (A)) +#define my_off_t2double(A) ((double) (my_off_t) (A)) +#endif +#ifndef double2ulonglong +#define double2ulonglong(A) ((ulonglong) (double) (A)) +#endif + +#ifndef offsetof +#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) +#endif +#define ulong_to_double(X) ((double) (ulong) (X)) + +#ifndef STACK_DIRECTION +#error "please add -DSTACK_DIRECTION=1 or -1 to your CPPFLAGS" +#endif + +#if !defined(HAVE_STRTOK_R) +#define strtok_r(A,B,C) strtok((A),(B)) +#endif + +#if SIZEOF_LONG_LONG >= 8 +#define HAVE_LONG_LONG 1 +#else +#error WHAT? sizeof(long long) < 8 ??? +#endif + +/* + Some pre-ANSI-C99 systems like AIX 5.1 and Linux/GCC 2.95 define + ULONGLONG_MAX, LONGLONG_MIN, LONGLONG_MAX; we use them if they're defined. +*/ + +#if defined(HAVE_LONG_LONG) && !defined(LONGLONG_MIN) +#define LONGLONG_MIN ((long long) 0x8000000000000000LL) +#define LONGLONG_MAX ((long long) 0x7FFFFFFFFFFFFFFFLL) +#endif + +#if defined(HAVE_LONG_LONG) && !defined(ULONGLONG_MAX) +/* First check for ANSI C99 definition: */ +#ifdef ULLONG_MAX +#define ULONGLONG_MAX ULLONG_MAX +#else +#define ULONGLONG_MAX ((unsigned long long)(~0ULL)) +#endif +#endif /* defined (HAVE_LONG_LONG) && !defined(ULONGLONG_MAX)*/ + +#define INT_MIN64 (~0x7FFFFFFFFFFFFFFFLL) +#define INT_MAX64 0x7FFFFFFFFFFFFFFFLL +#define INT_MIN32 (~0x7FFFFFFFL) +#define INT_MAX32 0x7FFFFFFFL +#define UINT_MAX32 0xFFFFFFFFL +#define INT_MIN24 (~0x007FFFFF) +#define INT_MAX24 0x007FFFFF +#define UINT_MAX24 0x00FFFFFF +#define INT_MIN16 (~0x7FFF) +#define INT_MAX16 0x7FFF +#define UINT_MAX16 0xFFFF +#define INT_MIN8 (~0x7F) +#define INT_MAX8 0x7F +#define UINT_MAX8 0xFF + +/* From limits.h instead */ +#ifndef DBL_MIN +#define DBL_MIN 4.94065645841246544e-324 +#define FLT_MIN ((float)1.40129846432481707e-45) +#endif +#ifndef DBL_MAX +#define DBL_MAX 1.79769313486231470e+308 +#define FLT_MAX ((float)3.40282346638528860e+38) +#endif +#ifndef SIZE_T_MAX +#define SIZE_T_MAX (~((size_t) 0)) +#endif + +#ifndef isfinite +#ifdef HAVE_FINITE +#define isfinite(x) finite(x) +#else +#define finite(x) (1.0 / fabs(x) > 0.0) +#endif /* HAVE_FINITE */ +#endif /* isfinite */ + +#ifndef HAVE_ISNAN +#define isnan(x) ((x) != (x)) +#endif + +#ifdef HAVE_ISINF +#define my_isinf(X) isinf(X) +#else /* !HAVE_ISINF */ +#define my_isinf(X) (!finite(X) && !isnan(X)) +#endif + +/* Define missing math constants. */ +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif +#ifndef M_E +#define M_E 2.7182818284590452354 +#endif +#ifndef M_LN2 +#define M_LN2 0.69314718055994530942 +#endif + +#ifndef HAVE_LOG2 +/* + This will be slightly slower and perhaps a tiny bit less accurate than + doing it the IEEE754 way but log2() should be available on C99 systems. +*/ +static inline double log2(double x) +{ + return (log(x) / M_LN2); +} +#endif + +/* + Max size that must be added to a so that we know Size to make + adressable obj. +*/ +#if SIZEOF_CHARP == 4 +typedef long my_ptrdiff_t; +#else +typedef long long my_ptrdiff_t; +#endif + +#define MY_ALIGN(A,L) (((A) + (L) - 1) & ~((L) - 1)) +#define ALIGN_SIZE(A) MY_ALIGN((A),sizeof(double)) +#define ALIGN_MAX_UNIT (sizeof(double)) +/* Size to make adressable obj. */ +#define ALIGN_PTR(A, t) ((t*) MY_ALIGN((A), sizeof(double))) +#define ADD_TO_PTR(ptr,size,type) (type) ((uchar*) (ptr)+size) +#define PTR_BYTE_DIFF(A,B) (my_ptrdiff_t) ((uchar*) (A) - (uchar*) (B)) +#define PREV_BITS(type,A) ((type) (((type) 1 << (A)) -1)) + +/* + Custom version of standard offsetof() macro which can be used to get + offsets of members in class for non-POD types (according to the current + version of C++ standard offsetof() macro can't be used in such cases and + attempt to do so causes warnings to be emitted, OTOH in many cases it is + still OK to assume that all instances of the class has the same offsets + for the same members). + + This is temporary solution which should be removed once File_parser class + and related routines are refactored. +*/ + +#define my_offsetof(TYPE, MEMBER) PTR_BYTE_DIFF(&((TYPE *)0x10)->MEMBER, 0x10) + +#define NullS (char *) 0 + +#ifdef STDCALL +#undef STDCALL +#endif + +#ifdef _WIN32 +#define STDCALL __stdcall +#else +#define STDCALL +#endif + +/* Typdefs for easyier portability */ + +#ifndef HAVE_UCHAR +typedef unsigned char uchar; /* Short for unsigned char */ +#endif + +#ifndef HAVE_INT8 +typedef signed char int8; /* Signed integer >= 8 bits */ +#endif +#ifndef HAVE_UINT8 +typedef unsigned char uint8; /* Unsigned integer >= 8 bits */ +#endif +#ifndef HAVE_INT16 +typedef short int16; +#endif +#ifndef HAVE_UINT16 +typedef unsigned short uint16; +#endif +#if SIZEOF_INT == 4 +#ifndef HAVE_INT32 +typedef int int32; +#endif +#ifndef HAVE_UINT32 +typedef unsigned int uint32; +#endif +#elif SIZEOF_LONG == 4 +#ifndef HAVE_INT32 +typedef long int32; +#endif +#ifndef HAVE_UINT32 +typedef unsigned long uint32; +#endif +#else +#error Neither int or long is of 4 bytes width +#endif + +#if !defined(HAVE_ULONG) && !defined(__USE_MISC) +typedef unsigned long ulong; /* Short for unsigned long */ +#endif +#ifndef longlong_defined +/* + Using [unsigned] long long is preferable as [u]longlong because we use + [unsigned] long long unconditionally in many places, + for example in constants with [U]LL suffix. +*/ +#if defined(HAVE_LONG_LONG) && SIZEOF_LONG_LONG == 8 +typedef unsigned long long int ulonglong; /* ulong or unsigned long long */ +typedef long long int longlong; +#else +typedef unsigned long ulonglong; /* ulong or unsigned long long */ +typedef long longlong; +#endif +#endif +#ifndef HAVE_INT64 +typedef longlong int64; +#endif +#ifndef HAVE_UINT64 +typedef ulonglong uint64; +#endif + +#if defined(NO_CLIENT_LONG_LONG) +typedef unsigned long my_ulonglong; +#elif defined (__WIN__) +typedef unsigned __int64 my_ulonglong; +#else +typedef unsigned long long my_ulonglong; +#endif + +#if SIZEOF_CHARP == SIZEOF_INT +typedef unsigned int intptr; +#elif SIZEOF_CHARP == SIZEOF_LONG +typedef unsigned long intptr; +#elif SIZEOF_CHARP == SIZEOF_LONG_LONG +typedef unsigned long long intptr; +#else +#error sizeof(void *) is neither sizeof(int) nor sizeof(long) nor sizeof(long long) +#endif + +#define MY_ERRPTR ((void*)(intptr)1) + +#if defined(_WIN32) +typedef unsigned long long my_off_t; +typedef unsigned long long os_off_t; +#else +typedef off_t os_off_t; +#if SIZEOF_OFF_T > 4 +typedef ulonglong my_off_t; +#else +typedef unsigned long my_off_t; +#endif +#endif /*_WIN32*/ +#define MY_FILEPOS_ERROR (~(my_off_t) 0) + +/* + TODO Convert these to use Bitmap class. + */ +typedef ulonglong table_map; /* Used for table bits in join */ +typedef ulong nesting_map; /* Used for flags of nesting constructs */ + +/* often used type names - opaque declarations */ +typedef const struct charset_info_st CHARSET_INFO; +typedef struct st_mysql_lex_string LEX_STRING; + +#if defined(__WIN__) +#define socket_errno WSAGetLastError() +#define SOCKET_EINTR WSAEINTR +#define SOCKET_EAGAIN WSAEINPROGRESS +#define SOCKET_ETIMEDOUT WSAETIMEDOUT +#define SOCKET_EWOULDBLOCK WSAEWOULDBLOCK +#define SOCKET_EADDRINUSE WSAEADDRINUSE +#define SOCKET_ENFILE ENFILE +#define SOCKET_EMFILE EMFILE +#else /* Unix */ +#define socket_errno errno +#define closesocket(A) close(A) +#define SOCKET_EINTR EINTR +#define SOCKET_EAGAIN EAGAIN +#define SOCKET_ETIMEDOUT SOCKET_EINTR +#define SOCKET_EWOULDBLOCK EWOULDBLOCK +#define SOCKET_EADDRINUSE EADDRINUSE +#define SOCKET_ENFILE ENFILE +#define SOCKET_EMFILE EMFILE +#endif + +typedef int myf; /* Type of MyFlags in my_funcs */ +typedef char my_bool; /* Small bool */ + +/* Macros for converting *constants* to the right type */ +#define MYF(v) (myf) (v) + +#ifndef LL +#ifdef HAVE_LONG_LONG +#define LL(A) A ## LL +#else +#define LL(A) A ## L +#endif +#endif + +#ifndef ULL +#ifdef HAVE_LONG_LONG +#define ULL(A) A ## ULL +#else +#define ULL(A) A ## UL +#endif +#endif + +/* + Defines to make it possible to prioritize register assignments. No + longer that important with modern compilers. +*/ +#ifndef USING_X +#define reg1 register +#define reg2 register +#define reg3 register +#define reg4 register +#define reg5 register +#define reg6 register +#define reg7 register +#define reg8 register +#define reg9 register +#define reg10 register +#define reg11 register +#define reg12 register +#define reg13 register +#define reg14 register +#define reg15 register +#define reg16 register +#endif + +#include + +/* Some helper macros */ +#define YESNO(X) ((X) ? "yes" : "no") + +#define MY_HOW_OFTEN_TO_ALARM 2 /* How often we want info on screen */ +#define MY_HOW_OFTEN_TO_WRITE 10000 /* How often we want info on screen */ + +/* + Define-funktions for reading and storing in machine independent format + (low byte first) +*/ + +/* Optimized store functions for Intel x86 */ +#if defined(__i386__) || defined(_WIN32) +#define sint2korr(A) (*((const int16 *) (A))) +#define sint3korr(A) ((int32) ((((uchar) (A)[2]) & 128) ? \ + (((uint32) 255L << 24) | \ + (((uint32) (uchar) (A)[2]) << 16) |\ + (((uint32) (uchar) (A)[1]) << 8) | \ + ((uint32) (uchar) (A)[0])) : \ + (((uint32) (uchar) (A)[2]) << 16) |\ + (((uint32) (uchar) (A)[1]) << 8) | \ + ((uint32) (uchar) (A)[0]))) +#define sint4korr(A) (*((const long *) (A))) +#define uint2korr(A) (*((const uint16 *) (A))) +#if defined(HAVE_valgrind) && !defined(_WIN32) +#define uint3korr(A) (uint32) (((uint32) ((uchar) (A)[0])) +\ + (((uint32) ((uchar) (A)[1])) << 8) +\ + (((uint32) ((uchar) (A)[2])) << 16)) +#else +/* + ATTENTION ! + + Please, note, uint3korr reads 4 bytes (not 3) ! + It means, that you have to provide enough allocated space ! +*/ +#define uint3korr(A) (long) (*((const unsigned int *) (A)) & 0xFFFFFF) +#endif /* HAVE_valgrind && !_WIN32 */ +#define uint4korr(A) (*((const uint32 *) (A))) +#define uint5korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) +\ + (((uint32) ((uchar) (A)[1])) << 8) +\ + (((uint32) ((uchar) (A)[2])) << 16) +\ + (((uint32) ((uchar) (A)[3])) << 24)) +\ + (((ulonglong) ((uchar) (A)[4])) << 32)) +#define uint6korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) + \ + (((uint32) ((uchar) (A)[1])) << 8) + \ + (((uint32) ((uchar) (A)[2])) << 16) + \ + (((uint32) ((uchar) (A)[3])) << 24)) + \ + (((ulonglong) ((uchar) (A)[4])) << 32) + \ + (((ulonglong) ((uchar) (A)[5])) << 40)) +#define uint8korr(A) (*((const ulonglong *) (A))) +#define sint8korr(A) (*((const longlong *) (A))) +#define int2store(T,A) *((uint16*) (T))= (uint16) (A) +#define int3store(T,A) do { *(T)= (uchar) ((A));\ + *(T+1)=(uchar) (((uint) (A) >> 8));\ + *(T+2)=(uchar) (((A) >> 16)); } while (0) +#define int4store(T,A) *((long *) (T))= (long) (A) +#define int5store(T,A) do { *(T)= (uchar)((A));\ + *((T)+1)=(uchar) (((A) >> 8));\ + *((T)+2)=(uchar) (((A) >> 16));\ + *((T)+3)=(uchar) (((A) >> 24)); \ + *((T)+4)=(uchar) (((A) >> 32)); } while(0) +#define int6store(T,A) do { *(T)= (uchar)((A)); \ + *((T)+1)=(uchar) (((A) >> 8)); \ + *((T)+2)=(uchar) (((A) >> 16)); \ + *((T)+3)=(uchar) (((A) >> 24)); \ + *((T)+4)=(uchar) (((A) >> 32)); \ + *((T)+5)=(uchar) (((A) >> 40)); } while(0) +#define int8store(T,A) *((ulonglong *) (T))= (ulonglong) (A) + +typedef union { + double v; + long m[2]; +} doubleget_union; +#define doubleget(V,M) \ +do { doubleget_union _tmp; \ + _tmp.m[0] = *((const long*)(M)); \ + _tmp.m[1] = *(((const long*) (M))+1); \ + (V) = _tmp.v; } while(0) +#define doublestore(T,V) do { *((long *) T) = ((const doubleget_union *)&V)->m[0]; \ + *(((long *) T)+1) = ((const doubleget_union *)&V)->m[1]; \ + } while (0) +#define float4get(V,M) do { *((float *) &(V)) = *((const float*) (M)); } while(0) +#define float8get(V,M) doubleget((V),(M)) +#define float4store(V,M) memcpy((uchar*) V,(uchar*) (&M),sizeof(float)) +#define floatstore(T,V) memcpy((uchar*)(T), (uchar*)(&V),sizeof(float)) +#define floatget(V,M) memcpy((uchar*) &V,(uchar*) (M),sizeof(float)) +#define float8store(V,M) doublestore((V),(M)) +#else + +/* + We're here if it's not a IA-32 architecture (Win32 and UNIX IA-32 defines + were done before) +*/ +#define sint2korr(A) (int16) (((int16) ((uchar) (A)[0])) +\ + ((int16) ((int16) (A)[1]) << 8)) +#define sint3korr(A) ((int32) ((((uchar) (A)[2]) & 128) ? \ + (((uint32) 255L << 24) | \ + (((uint32) (uchar) (A)[2]) << 16) |\ + (((uint32) (uchar) (A)[1]) << 8) | \ + ((uint32) (uchar) (A)[0])) : \ + (((uint32) (uchar) (A)[2]) << 16) |\ + (((uint32) (uchar) (A)[1]) << 8) | \ + ((uint32) (uchar) (A)[0]))) +#define sint4korr(A) (int32) (((int32) ((uchar) (A)[0])) +\ + (((int32) ((uchar) (A)[1]) << 8)) +\ + (((int32) ((uchar) (A)[2]) << 16)) +\ + (((int32) ((int16) (A)[3]) << 24))) +#define sint8korr(A) (longlong) uint8korr(A) +#define uint2korr(A) (uint16) (((uint16) ((uchar) (A)[0])) +\ + ((uint16) ((uchar) (A)[1]) << 8)) +#define uint3korr(A) (uint32) (((uint32) ((uchar) (A)[0])) +\ + (((uint32) ((uchar) (A)[1])) << 8) +\ + (((uint32) ((uchar) (A)[2])) << 16)) +#define uint4korr(A) (uint32) (((uint32) ((uchar) (A)[0])) +\ + (((uint32) ((uchar) (A)[1])) << 8) +\ + (((uint32) ((uchar) (A)[2])) << 16) +\ + (((uint32) ((uchar) (A)[3])) << 24)) +#define uint5korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) +\ + (((uint32) ((uchar) (A)[1])) << 8) +\ + (((uint32) ((uchar) (A)[2])) << 16) +\ + (((uint32) ((uchar) (A)[3])) << 24)) +\ + (((ulonglong) ((uchar) (A)[4])) << 32)) +#define uint6korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) + \ + (((uint32) ((uchar) (A)[1])) << 8) + \ + (((uint32) ((uchar) (A)[2])) << 16) + \ + (((uint32) ((uchar) (A)[3])) << 24)) + \ + (((ulonglong) ((uchar) (A)[4])) << 32) + \ + (((ulonglong) ((uchar) (A)[5])) << 40)) +#define uint8korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) +\ + (((uint32) ((uchar) (A)[1])) << 8) +\ + (((uint32) ((uchar) (A)[2])) << 16) +\ + (((uint32) ((uchar) (A)[3])) << 24)) +\ + (((ulonglong) (((uint32) ((uchar) (A)[4])) +\ + (((uint32) ((uchar) (A)[5])) << 8) +\ + (((uint32) ((uchar) (A)[6])) << 16) +\ + (((uint32) ((uchar) (A)[7])) << 24))) <<\ + 32)) +#define int2store(T,A) do { uint def_temp= (uint) (A) ;\ + *((uchar*) (T))= (uchar)(def_temp); \ + *((uchar*) (T)+1)=(uchar)((def_temp >> 8)); \ + } while(0) +#define int3store(T,A) do { /*lint -save -e734 */\ + *((uchar*)(T))=(uchar) ((A));\ + *((uchar*) (T)+1)=(uchar) (((A) >> 8));\ + *((uchar*)(T)+2)=(uchar) (((A) >> 16)); \ + /*lint -restore */} while(0) +#define int4store(T,A) do { *((char *)(T))=(char) ((A));\ + *(((char *)(T))+1)=(char) (((A) >> 8));\ + *(((char *)(T))+2)=(char) (((A) >> 16));\ + *(((char *)(T))+3)=(char) (((A) >> 24)); } while(0) +#define int5store(T,A) do { *((char *)(T))= (char)((A)); \ + *(((char *)(T))+1)= (char)(((A) >> 8)); \ + *(((char *)(T))+2)= (char)(((A) >> 16)); \ + *(((char *)(T))+3)= (char)(((A) >> 24)); \ + *(((char *)(T))+4)= (char)(((A) >> 32)); \ + } while(0) +#define int6store(T,A) do { *((char *)(T))= (char)((A)); \ + *(((char *)(T))+1)= (char)(((A) >> 8)); \ + *(((char *)(T))+2)= (char)(((A) >> 16)); \ + *(((char *)(T))+3)= (char)(((A) >> 24)); \ + *(((char *)(T))+4)= (char)(((A) >> 32)); \ + *(((char *)(T))+5)= (char)(((A) >> 40)); \ + } while(0) +#define int8store(T,A) do { uint def_temp= (uint) (A), def_temp2= (uint) ((A) >> 32); \ + int4store((T),def_temp); \ + int4store((T+4),def_temp2); } while(0) +#ifdef WORDS_BIGENDIAN +#define float4store(T,A) do { *(T)= ((uchar *) &A)[3];\ + *((T)+1)=(char) ((uchar *) &A)[2];\ + *((T)+2)=(char) ((uchar *) &A)[1];\ + *((T)+3)=(char) ((uchar *) &A)[0]; } while(0) + +#define float4get(V,M) do { float def_temp;\ + ((uchar*) &def_temp)[0]=(M)[3];\ + ((uchar*) &def_temp)[1]=(M)[2];\ + ((uchar*) &def_temp)[2]=(M)[1];\ + ((uchar*) &def_temp)[3]=(M)[0];\ + (V)=def_temp; } while(0) +#define float8store(T,V) do { *(T)= ((uchar *) &V)[7];\ + *((T)+1)=(char) ((uchar *) &V)[6];\ + *((T)+2)=(char) ((uchar *) &V)[5];\ + *((T)+3)=(char) ((uchar *) &V)[4];\ + *((T)+4)=(char) ((uchar *) &V)[3];\ + *((T)+5)=(char) ((uchar *) &V)[2];\ + *((T)+6)=(char) ((uchar *) &V)[1];\ + *((T)+7)=(char) ((uchar *) &V)[0]; } while(0) + +#define float8get(V,M) do { double def_temp;\ + ((uchar*) &def_temp)[0]=(M)[7];\ + ((uchar*) &def_temp)[1]=(M)[6];\ + ((uchar*) &def_temp)[2]=(M)[5];\ + ((uchar*) &def_temp)[3]=(M)[4];\ + ((uchar*) &def_temp)[4]=(M)[3];\ + ((uchar*) &def_temp)[5]=(M)[2];\ + ((uchar*) &def_temp)[6]=(M)[1];\ + ((uchar*) &def_temp)[7]=(M)[0];\ + (V) = def_temp; } while(0) +#else +#define float4get(V,M) memcpy(&V, (M), sizeof(float)) +#define float4store(V,M) memcpy(V, (&M), sizeof(float)) + +#if defined(__FLOAT_WORD_ORDER) && (__FLOAT_WORD_ORDER == __BIG_ENDIAN) +#define doublestore(T,V) do { *(((char*)T)+0)=(char) ((uchar *) &V)[4];\ + *(((char*)T)+1)=(char) ((uchar *) &V)[5];\ + *(((char*)T)+2)=(char) ((uchar *) &V)[6];\ + *(((char*)T)+3)=(char) ((uchar *) &V)[7];\ + *(((char*)T)+4)=(char) ((uchar *) &V)[0];\ + *(((char*)T)+5)=(char) ((uchar *) &V)[1];\ + *(((char*)T)+6)=(char) ((uchar *) &V)[2];\ + *(((char*)T)+7)=(char) ((uchar *) &V)[3]; }\ + while(0) +#define doubleget(V,M) do { double def_temp;\ + ((uchar*) &def_temp)[0]=(M)[4];\ + ((uchar*) &def_temp)[1]=(M)[5];\ + ((uchar*) &def_temp)[2]=(M)[6];\ + ((uchar*) &def_temp)[3]=(M)[7];\ + ((uchar*) &def_temp)[4]=(M)[0];\ + ((uchar*) &def_temp)[5]=(M)[1];\ + ((uchar*) &def_temp)[6]=(M)[2];\ + ((uchar*) &def_temp)[7]=(M)[3];\ + (V) = def_temp; } while(0) +#endif /* __FLOAT_WORD_ORDER */ + +#define float8get(V,M) doubleget((V),(M)) +#define float8store(V,M) doublestore((V),(M)) +#endif /* WORDS_BIGENDIAN */ + +#endif /* __i386__ OR _WIN32 */ + +/* + Macro for reading 32-bit integer from network byte order (big-endian) + from unaligned memory location. +*/ +#define int4net(A) (int32) (((uint32) ((uchar) (A)[3])) |\ + (((uint32) ((uchar) (A)[2])) << 8) |\ + (((uint32) ((uchar) (A)[1])) << 16) |\ + (((uint32) ((uchar) (A)[0])) << 24)) +/* + Define-funktions for reading and storing in machine format from/to + short/long to/from some place in memory V should be a (not + register) variable, M is a pointer to byte +*/ + +#ifdef WORDS_BIGENDIAN + +#define ushortget(V,M) do { V = (uint16) (((uint16) ((uchar) (M)[1]))+\ + ((uint16) ((uint16) (M)[0]) << 8)); } while(0) +#define shortget(V,M) do { V = (short) (((short) ((uchar) (M)[1]))+\ + ((short) ((short) (M)[0]) << 8)); } while(0) +#define longget(V,M) do { int32 def_temp;\ + ((uchar*) &def_temp)[0]=(M)[0];\ + ((uchar*) &def_temp)[1]=(M)[1];\ + ((uchar*) &def_temp)[2]=(M)[2];\ + ((uchar*) &def_temp)[3]=(M)[3];\ + (V)=def_temp; } while(0) +#define ulongget(V,M) do { uint32 def_temp;\ + ((uchar*) &def_temp)[0]=(M)[0];\ + ((uchar*) &def_temp)[1]=(M)[1];\ + ((uchar*) &def_temp)[2]=(M)[2];\ + ((uchar*) &def_temp)[3]=(M)[3];\ + (V)=def_temp; } while(0) +#define shortstore(T,A) do { uint def_temp=(uint) (A) ;\ + *(((char*)T)+1)=(char)(def_temp); \ + *(((char*)T)+0)=(char)(def_temp >> 8); } while(0) +#define longstore(T,A) do { *(((char*)T)+3)=((A));\ + *(((char*)T)+2)=(((A) >> 8));\ + *(((char*)T)+1)=(((A) >> 16));\ + *(((char*)T)+0)=(((A) >> 24)); } while(0) + +#define floatget(V,M) memcpy(&V, (M), sizeof(float)) +#define floatstore(T,V) memcpy((T), (void*) (&V), sizeof(float)) +#define doubleget(V,M) memcpy(&V, (M), sizeof(double)) +#define doublestore(T,V) memcpy((T), (void *) &V, sizeof(double)) +#define longlongget(V,M) memcpy(&V, (M), sizeof(ulonglong)) +#define longlongstore(T,V) memcpy((T), &V, sizeof(ulonglong)) + +#else + +#define ushortget(V,M) do { V = uint2korr(M); } while(0) +#define shortget(V,M) do { V = sint2korr(M); } while(0) +#define longget(V,M) do { V = sint4korr(M); } while(0) +#define ulongget(V,M) do { V = uint4korr(M); } while(0) +#define shortstore(T,V) int2store(T,V) +#define longstore(T,V) int4store(T,V) +#ifndef floatstore +#define floatstore(T,V) memcpy((T), (void *) (&V), sizeof(float)) +#define floatget(V,M) memcpy(&V, (M), sizeof(float)) +#endif +#ifndef doubleget +#define doubleget(V,M) memcpy(&V, (M), sizeof(double)) +#define doublestore(T,V) memcpy((T), (void *) &V, sizeof(double)) +#endif /* doubleget */ +#define longlongget(V,M) memcpy(&V, (M), sizeof(ulonglong)) +#define longlongstore(T,V) memcpy((T), &V, sizeof(ulonglong)) + +#endif /* WORDS_BIGENDIAN */ + +#ifdef HAVE_CHARSET_utf8 +#define MYSQL_UNIVERSAL_CLIENT_CHARSET "utf8" +#else +#define MYSQL_UNIVERSAL_CLIENT_CHARSET MYSQL_DEFAULT_CHARSET_NAME +#endif + +#if defined(EMBEDDED_LIBRARY) && !defined(HAVE_EMBEDDED_PRIVILEGE_CONTROL) +#define NO_EMBEDDED_ACCESS_CHECKS +#endif + +#ifdef _WIN32 +#define dlsym(lib, name) (void*)GetProcAddress((HMODULE)lib, name) +#define dlopen(libname, unused) LoadLibraryEx(libname, NULL, 0) +#define dlclose(lib) FreeLibrary((HMODULE)lib) +static inline char *dlerror(void) +{ + static char win_errormsg[2048]; + if(FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, + 0, GetLastError(), 0, win_errormsg, 2048, NULL)) + return win_errormsg; + return ""; +} +#define HAVE_DLOPEN 1 +#define HAVE_DLERROR 1 +#endif + +#ifdef HAVE_DLFCN_H +#include +#endif + +#ifdef HAVE_DLOPEN +#ifndef HAVE_DLERROR +#define dlerror() "" +#endif +#ifndef HAVE_DLADDR +#define dladdr(A, B) 0 +/* Dummy definition in case we're missing dladdr() */ +typedef struct { const char *dli_fname, dli_fbase; } Dl_info; +#endif +#else +#define dlerror() "No support for dynamic loading (static build?)" +#define dlopen(A,B) 0 +#define dlsym(A,B) 0 +#define dlclose(A) 0 +#define dladdr(A, B) 0 +/* Dummy definition in case we're missing dladdr() */ +typedef struct { const char *dli_fname, dli_fbase; } Dl_info; +#endif + +/* + * Include standard definitions of operator new and delete. + */ +#ifdef __cplusplus +#include +#endif + +/* Length of decimal number represented by INT32. */ +#define MY_INT32_NUM_DECIMAL_DIGITS 11 + +/* Length of decimal number represented by INT64. */ +#define MY_INT64_NUM_DECIMAL_DIGITS 21 + +#ifdef __cplusplus +#include /* should be included before min/max macros */ +#endif + +/* Define some useful general macros (should be done after all headers). */ +#if !defined(max) +#define max(a, b) ((a) > (b) ? (a) : (b)) +#define min(a, b) ((a) < (b) ? (a) : (b)) +#endif + +#define CMP_NUM(a,b) (((a) < (b)) ? -1 : ((a) == (b)) ? 0 : 1) + +/* + Only Linux is known to need an explicit sync of the directory to make sure a + file creation/deletion/renaming in(from,to) this directory durable. +*/ +#ifdef TARGET_OS_LINUX +#define NEED_EXPLICIT_SYNC_DIR 1 +#else +/* + On linux default rwlock scheduling policy is good enough for + waiting_threads.c, on other systems use our special implementation + (which is slower). + + QQ perhaps this should be tested in configure ? how ? +*/ +#define WT_RWLOCKS_USE_MUTEXES 1 +#endif + +#if !defined(__cplusplus) && !defined(bool) +#define bool In_C_you_should_use_my_bool_instead() +#endif + +/* Provide __func__ macro definition for platforms that miss it. */ +#if !defined (__func__) +#if __STDC_VERSION__ < 199901L +# if __GNUC__ >= 2 +# define __func__ __FUNCTION__ +# else +# define __func__ "" +# endif +#elif defined(_MSC_VER) +# if _MSC_VER < 1300 +# define __func__ "" +# else +# define __func__ __FUNCTION__ +# endif +#elif defined(__BORLANDC__) +# define __func__ __FUNC__ +#else +# define __func__ "" +#endif +#endif /* !defined(__func__) */ + +#ifndef HAVE_RINT +/** + All integers up to this number can be represented exactly as double precision + values (DBL_MANT_DIG == 53 for IEEE 754 hardware). +*/ +#define MAX_EXACT_INTEGER ((1LL << DBL_MANT_DIG) - 1) + +/** + rint(3) implementation for platforms that do not have it. + Always rounds to the nearest integer with ties being rounded to the nearest + even integer to mimic glibc's rint() behavior in the "round-to-nearest" + FPU mode. Hardware-specific optimizations are possible (frndint on x86). + Unlike this implementation, hardware will also honor the FPU rounding mode. +*/ + +static inline double rint(double x) +{ + double f, i; + f = modf(x, &i); + /* + All doubles with absolute values > MAX_EXACT_INTEGER are even anyway, + no need to check it. + */ + if (x > 0.0) + i += (double) ((f > 0.5) || (f == 0.5 && + i <= (double) MAX_EXACT_INTEGER && + (longlong) i % 2)); + else + i -= (double) ((f < -0.5) || (f == -0.5 && + i >= (double) -MAX_EXACT_INTEGER && + (longlong) i % 2)); + return i; +} +#endif /* HAVE_RINT */ + +/* + MYSQL_PLUGIN_IMPORT macro is used to export mysqld data + (i.e variables) for usage in storage engine loadable plugins. + Outside of Windows, it is dummy. +*/ +#ifndef MYSQL_PLUGIN_IMPORT +#if (defined(_WIN32) && defined(MYSQL_DYNAMIC_PLUGIN)) +#define MYSQL_PLUGIN_IMPORT __declspec(dllimport) +#else +#define MYSQL_PLUGIN_IMPORT +#endif +#endif + +/* Defines that are unique to the embedded version of MySQL */ + +#ifdef EMBEDDED_LIBRARY + +/* Things we don't need in the embedded version of MySQL */ +/* TODO HF add #undef HAVE_VIO if we don't want client in embedded library */ + +#undef HAVE_SMEM /* No shared memory */ + +#endif /* EMBEDDED_LIBRARY */ + +#endif /* my_global_h */ diff --git a/database/include/mysql/my_list.h b/database/include/mysql/my_list.h new file mode 100644 index 0000000..0bb785b --- /dev/null +++ b/database/include/mysql/my_list.h @@ -0,0 +1,45 @@ +/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef _list_h_ +#define _list_h_ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct st_list { + struct st_list *prev,*next; + void *data; +} LIST; + +typedef int (*list_walk_action)(void *,void *); + +extern LIST *list_add(LIST *root,LIST *element); +extern LIST *list_delete(LIST *root,LIST *element); +extern LIST *list_cons(void *data,LIST *root); +extern LIST *list_reverse(LIST *root); +extern void list_free(LIST *root,unsigned int free_data); +extern unsigned int list_length(LIST *); +extern int list_walk(LIST *,list_walk_action action,unsigned char * argument); + +#define list_rest(a) ((a)->next) +#define list_push(a,b) (a)=list_cons((b),(a)) +#define list_pop(A) {LIST *old=(A); (A)=list_delete(old,old); my_free(old); } + +#ifdef __cplusplus +} +#endif +#endif diff --git a/database/include/mysql/my_net.h b/database/include/mysql/my_net.h new file mode 100644 index 0000000..63c9e8f --- /dev/null +++ b/database/include/mysql/my_net.h @@ -0,0 +1,78 @@ +/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* + This file is also used to make handling of sockets and ioctl() + portable accross systems. + +*/ + +#ifndef _my_net_h +#define _my_net_h + +#include "my_global.h" /* C_MODE_START, C_MODE_END */ + +C_MODE_START + +#include +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif +#ifdef HAVE_ARPA_INET_H +#include +#endif +#ifdef HAVE_POLL +#include +#endif +#ifdef HAVE_SYS_IOCTL_H +#include +#endif + +#if !defined(__WIN__) +#include +#include +#include +#if !defined(alpha_linux_port) +#include +#endif +#endif + +#if defined(__WIN__) +#define O_NONBLOCK 1 /* For emulation of fcntl() */ + +/* + SHUT_RDWR is called SD_BOTH in windows and + is defined to 2 in winsock2.h + #define SD_BOTH 0x02 +*/ +#define SHUT_RDWR 0x02 + +#endif + +/* + On OSes which don't have the in_addr_t, we guess that using uint32 is the best + possible choice. We guess this from the fact that on HP-UX64bit & FreeBSD64bit + & Solaris64bit, in_addr_t is equivalent to uint32. And on Linux32bit too. +*/ +#ifndef HAVE_IN_ADDR_T +#define in_addr_t uint32 +#endif + + +C_MODE_END +#endif diff --git a/database/include/mysql/my_pthread.h b/database/include/mysql/my_pthread.h new file mode 100644 index 0000000..200facf --- /dev/null +++ b/database/include/mysql/my_pthread.h @@ -0,0 +1,879 @@ +/* Copyright (c) 2000, 2014, Oracle and/or its affiliates. + Copyright (c) 2009, 2014, MariaDB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* Defines to make different thread packages compatible */ + +#ifndef _my_pthread_h +#define _my_pthread_h + +#include "my_global.h" /* myf */ + +#ifndef ETIME +#define ETIME ETIMEDOUT /* For FreeBSD */ +#endif + +#ifdef __cplusplus +#define EXTERNC extern "C" +extern "C" { +#else +#define EXTERNC +#endif /* __cplusplus */ + +#if defined(__WIN__) +typedef CRITICAL_SECTION pthread_mutex_t; +typedef DWORD pthread_t; +typedef struct thread_attr { + DWORD dwStackSize ; + DWORD dwCreatingFlag ; +} pthread_attr_t ; + +typedef struct { int dummy; } pthread_condattr_t; + +/* Implementation of posix conditions */ + +typedef struct st_pthread_link { + DWORD thread_id; + struct st_pthread_link *next; +} pthread_link; + +/** + Implementation of Windows condition variables. + We use native conditions on Vista and later, and fallback to own + implementation on earlier OS version. +*/ +typedef union +{ + /* Native condition (used on Vista and later) */ + CONDITION_VARIABLE native_cond; + + /* Own implementation (used on XP) */ + struct + { + uint32 waiting; + CRITICAL_SECTION lock_waiting; + enum + { + SIGNAL= 0, + BROADCAST= 1, + MAX_EVENTS= 2 + } EVENTS; + HANDLE events[MAX_EVENTS]; + HANDLE broadcast_block_event; + }; +} pthread_cond_t; + + +typedef int pthread_mutexattr_t; +#define pthread_self() GetCurrentThreadId() +#define pthread_handler_t EXTERNC void * __cdecl +typedef void * (__cdecl *pthread_handler)(void *); + +typedef volatile LONG my_pthread_once_t; +#define MY_PTHREAD_ONCE_INIT 0 +#define MY_PTHREAD_ONCE_INPROGRESS 1 +#define MY_PTHREAD_ONCE_DONE 2 + +#if !STRUCT_TIMESPEC_HAS_TV_SEC || !STRUCT_TIMESPEC_HAS_TV_NSEC +struct timespec { + time_t tv_sec; + long tv_nsec; +}; +#endif + +int win_pthread_mutex_trylock(pthread_mutex_t *mutex); +int pthread_create(pthread_t *, const pthread_attr_t *, pthread_handler, void *); +int pthread_cond_init(pthread_cond_t *cond, const pthread_condattr_t *attr); +int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex); +int pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex, + const struct timespec *abstime); +int pthread_cond_signal(pthread_cond_t *cond); +int pthread_cond_broadcast(pthread_cond_t *cond); +int pthread_cond_destroy(pthread_cond_t *cond); +int pthread_attr_init(pthread_attr_t *connect_att); +int pthread_attr_setstacksize(pthread_attr_t *connect_att,DWORD stack); +int pthread_attr_destroy(pthread_attr_t *connect_att); +int my_pthread_once(my_pthread_once_t *once_control,void (*init_routine)(void)); + +static inline struct tm *localtime_r(const time_t *timep, struct tm *tmp) +{ + localtime_s(tmp, timep); + return tmp; +} + +static inline struct tm *gmtime_r(const time_t *clock, struct tm *res) +{ + gmtime_s(res, clock); + return res; +} + +void pthread_exit(void *a); +int pthread_join(pthread_t thread, void **value_ptr); +int pthread_cancel(pthread_t thread); + +#ifndef ETIMEDOUT +#define ETIMEDOUT 145 /* Win32 doesn't have this */ +#endif + +#define getpid() GetCurrentThreadId() +#define HAVE_LOCALTIME_R 1 +#define _REENTRANT 1 +#define HAVE_PTHREAD_ATTR_SETSTACKSIZE 1 + +#undef SAFE_MUTEX /* This will cause conflicts */ +#define pthread_key(T,V) DWORD V +#define pthread_key_create(A,B) ((*A=TlsAlloc())==0xFFFFFFFF) +#define pthread_key_delete(A) TlsFree(A) +#define my_pthread_setspecific_ptr(T,V) (!TlsSetValue((T),(V))) +#define pthread_setspecific(A,B) (!TlsSetValue((A),(B))) +#define pthread_getspecific(A) (TlsGetValue(A)) +#define my_pthread_getspecific(T,A) ((T) TlsGetValue(A)) +#define my_pthread_getspecific_ptr(T,V) ((T) TlsGetValue(V)) + +#define pthread_equal(A,B) ((A) == (B)) +#define pthread_mutex_init(A,B) (InitializeCriticalSection(A),0) +#define pthread_mutex_lock(A) (EnterCriticalSection(A),0) +#define pthread_mutex_trylock(A) win_pthread_mutex_trylock((A)) +#define pthread_mutex_unlock(A) (LeaveCriticalSection(A), 0) +#define pthread_mutex_destroy(A) (DeleteCriticalSection(A), 0) +#define pthread_kill(A,B) pthread_dummy((A) ? 0 : ESRCH) + +/* Dummy defines for easier code */ +#define pthread_attr_setdetachstate(A,B) pthread_dummy(0) +#define pthread_attr_setscope(A,B) +#define pthread_detach_this_thread() +#define pthread_condattr_init(A) +#define pthread_condattr_destroy(A) +#define pthread_yield() SwitchToThread() +#define my_sigset(A,B) signal(A,B) + +#else /* Normal threads */ + +#ifdef HAVE_rts_threads +#define sigwait org_sigwait +#include +#undef sigwait +#endif +#include +#ifndef _REENTRANT +#define _REENTRANT +#endif +#ifdef HAVE_THR_SETCONCURRENCY +#include /* Probably solaris */ +#endif +#ifdef HAVE_SCHED_H +#include +#endif +#ifdef HAVE_SYNCH_H +#include +#endif + +#define pthread_key(T,V) pthread_key_t V +#define my_pthread_getspecific_ptr(T,V) my_pthread_getspecific(T,(V)) +#define my_pthread_setspecific_ptr(T,V) pthread_setspecific(T,(void*) (V)) +#define pthread_detach_this_thread() +#define pthread_handler_t EXTERNC void * +typedef void *(* pthread_handler)(void *); + +#define my_pthread_once_t pthread_once_t +#if defined(PTHREAD_ONCE_INITIALIZER) +#define MY_PTHREAD_ONCE_INIT PTHREAD_ONCE_INITIALIZER +#else +#define MY_PTHREAD_ONCE_INIT PTHREAD_ONCE_INIT +#endif +#define my_pthread_once(C,F) pthread_once(C,F) + +/* Test first for RTS or FSU threads */ + +#if defined(PTHREAD_SCOPE_GLOBAL) && !defined(PTHREAD_SCOPE_SYSTEM) +#define HAVE_rts_threads +extern int my_pthread_create_detached; +#define pthread_sigmask(A,B,C) sigprocmask((A),(B),(C)) +#define PTHREAD_CREATE_DETACHED &my_pthread_create_detached +#define PTHREAD_SCOPE_SYSTEM PTHREAD_SCOPE_GLOBAL +#define PTHREAD_SCOPE_PROCESS PTHREAD_SCOPE_LOCAL +#define USE_ALARM_THREAD +#endif /* defined(PTHREAD_SCOPE_GLOBAL) && !defined(PTHREAD_SCOPE_SYSTEM) */ + +#if defined(_BSDI_VERSION) && _BSDI_VERSION < 199910 +int sigwait(sigset_t *set, int *sig); +#endif + +#define my_sigwait(A,B) sigwait((A),(B)) + +#if defined(HAVE_SIGTHREADMASK) && !defined(HAVE_PTHREAD_SIGMASK) +#define pthread_sigmask(A,B,C) sigthreadmask((A),(B),(C)) +#endif + +#if !defined(HAVE_SIGWAIT) && !defined(HAVE_rts_threads) && !defined(sigwait) && !defined(alpha_linux_port) && !defined(_AIX) +int sigwait(sigset_t *setp, int *sigp); /* Use our implemention */ +#endif + + +/* + We define my_sigset() and use that instead of the system sigset() so that + we can favor an implementation based on sigaction(). On some systems, such + as Mac OS X, sigset() results in flags such as SA_RESTART being set, and + we want to make sure that no such flags are set. +*/ +#if defined(HAVE_SIGACTION) && !defined(my_sigset) +#define my_sigset(A,B) do { struct sigaction l_s; sigset_t l_set; \ + DBUG_ASSERT((A) != 0); \ + sigemptyset(&l_set); \ + l_s.sa_handler = (B); \ + l_s.sa_mask = l_set; \ + l_s.sa_flags = 0; \ + sigaction((A), &l_s, NULL); \ + } while (0) +#elif defined(HAVE_SIGSET) && !defined(my_sigset) +#define my_sigset(A,B) sigset((A),(B)) +#elif !defined(my_sigset) +#define my_sigset(A,B) signal((A),(B)) +#endif + +#if !defined(HAVE_PTHREAD_ATTR_SETSCOPE) +#define pthread_attr_setscope(A,B) +#undef HAVE_GETHOSTBYADDR_R /* No definition */ +#endif + +#define my_pthread_getspecific(A,B) ((A) pthread_getspecific(B)) + +#ifndef HAVE_LOCALTIME_R +struct tm *localtime_r(const time_t *clock, struct tm *res); +#endif + +#ifndef HAVE_GMTIME_R +struct tm *gmtime_r(const time_t *clock, struct tm *res); +#endif + +#ifdef HAVE_PTHREAD_CONDATTR_CREATE +/* DCE threads on HPUX 10.20 */ +#define pthread_condattr_init pthread_condattr_create +#define pthread_condattr_destroy pthread_condattr_delete +#endif + +/* FSU THREADS */ +#if !defined(HAVE_PTHREAD_KEY_DELETE) && !defined(pthread_key_delete) +#define pthread_key_delete(A) pthread_dummy(0) +#endif + +#if defined(HAVE_PTHREAD_ATTR_CREATE) && !defined(HAVE_SIGWAIT) +/* This is set on AIX_3_2 and Siemens unix (and DEC OSF/1 3.2 too) */ +#define pthread_key_create(A,B) \ + pthread_keycreate(A,(B) ?\ + (pthread_destructor_t) (B) :\ + (pthread_destructor_t) pthread_dummy) +#define pthread_attr_init(A) pthread_attr_create(A) +#define pthread_attr_destroy(A) pthread_attr_delete(A) +#define pthread_attr_setdetachstate(A,B) pthread_dummy(0) +#define pthread_create(A,B,C,D) pthread_create((A),*(B),(C),(D)) +#ifndef pthread_sigmask +#define pthread_sigmask(A,B,C) sigprocmask((A),(B),(C)) +#endif +#define pthread_kill(A,B) pthread_dummy((A) ? 0 : ESRCH) +#undef pthread_detach_this_thread +#define pthread_detach_this_thread() { pthread_t tmp=pthread_self() ; pthread_detach(&tmp); } +#else /* HAVE_PTHREAD_ATTR_CREATE && !HAVE_SIGWAIT */ +#define HAVE_PTHREAD_KILL +#endif + +#endif /* defined(__WIN__) */ + +#if defined(HPUX10) && !defined(DONT_REMAP_PTHREAD_FUNCTIONS) +#undef pthread_cond_timedwait +#define pthread_cond_timedwait(a,b,c) my_pthread_cond_timedwait((a),(b),(c)) +int my_pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex, + struct timespec *abstime); +#endif + +#if defined(HPUX10) +#define pthread_attr_getstacksize(A,B) my_pthread_attr_getstacksize(A,B) +void my_pthread_attr_getstacksize(pthread_attr_t *attrib, size_t *size); +#endif + +#if defined(HAVE_POSIX1003_4a_MUTEX) && !defined(DONT_REMAP_PTHREAD_FUNCTIONS) +#undef pthread_mutex_trylock +#define pthread_mutex_trylock(a) my_pthread_mutex_trylock((a)) +int my_pthread_mutex_trylock(pthread_mutex_t *mutex); +#endif + +#if !defined(HAVE_PTHREAD_YIELD_ZERO_ARG) +/* no pthread_yield() available */ +#ifdef HAVE_SCHED_YIELD +#define pthread_yield() sched_yield() +#elif defined(HAVE_PTHREAD_YIELD_NP) /* can be Mac OS X */ +#define pthread_yield() pthread_yield_np() +#elif defined(HAVE_THR_YIELD) +#define pthread_yield() thr_yield() +#endif +#endif + +/* + The defines set_timespec and set_timespec_nsec should be used + for calculating an absolute time at which + pthread_cond_timedwait should timeout +*/ + +#define set_timespec(ABSTIME,SEC) set_timespec_nsec((ABSTIME),(SEC)*1000000000ULL) + +#ifndef set_timespec_nsec +#define set_timespec_nsec(ABSTIME,NSEC) \ + set_timespec_time_nsec((ABSTIME), my_hrtime().val*1000 + (NSEC)) +#endif /* !set_timespec_nsec */ + +/* adapt for two different flavors of struct timespec */ +#ifdef HAVE_TIMESPEC_TS_SEC +#define MY_tv_sec ts_sec +#define MY_tv_nsec ts_nsec +#else +#define MY_tv_sec tv_sec +#define MY_tv_nsec tv_nsec +#endif /* HAVE_TIMESPEC_TS_SEC */ + +/** + Compare two timespec structs. + + @retval 1 If TS1 ends after TS2. + + @retval 0 If TS1 is equal to TS2. + + @retval -1 If TS1 ends before TS2. +*/ +#ifndef cmp_timespec +#define cmp_timespec(TS1, TS2) \ + ((TS1.MY_tv_sec > TS2.MY_tv_sec || \ + (TS1.MY_tv_sec == TS2.MY_tv_sec && TS1.MY_tv_nsec > TS2.MY_tv_nsec)) ? 1 : \ + ((TS1.MY_tv_sec < TS2.MY_tv_sec || \ + (TS1.MY_tv_sec == TS2.MY_tv_sec && TS1.MY_tv_nsec < TS2.MY_tv_nsec)) ? -1 : 0)) +#endif /* !cmp_timespec */ + +#ifndef set_timespec_time_nsec +#define set_timespec_time_nsec(ABSTIME,NSEC) do { \ + ulonglong _now_= (NSEC); \ + (ABSTIME).MY_tv_sec= (_now_ / 1000000000ULL); \ + (ABSTIME).MY_tv_nsec= (_now_ % 1000000000ULL); \ +} while(0) +#endif /* !set_timespec_time_nsec */ + +/* safe_mutex adds checking to mutex for easier debugging */ +struct st_hash; +typedef struct st_safe_mutex_t +{ + pthread_mutex_t global,mutex; + const char *file, *name; + uint line,count; + myf create_flags, active_flags; + ulong id; + pthread_t thread; + struct st_hash *locked_mutex, *used_mutex; + struct st_safe_mutex_t *prev, *next; +#ifdef SAFE_MUTEX_DETECT_DESTROY + struct st_safe_mutex_info_t *info; /* to track destroying of mutexes */ +#endif +} safe_mutex_t; + +typedef struct st_safe_mutex_deadlock_t +{ + const char *file, *name; + safe_mutex_t *mutex; + uint line; + ulong count; + ulong id; + my_bool warning_only; +} safe_mutex_deadlock_t; + +#ifdef SAFE_MUTEX_DETECT_DESTROY +/* + Used to track the destroying of mutexes. This needs to be a seperate + structure because the safe_mutex_t structure could be freed before + the mutexes are destroyed. +*/ + +typedef struct st_safe_mutex_info_t +{ + struct st_safe_mutex_info_t *next; + struct st_safe_mutex_info_t *prev; + const char *init_file; + uint32 init_line; +} safe_mutex_info_t; +#endif /* SAFE_MUTEX_DETECT_DESTROY */ + +int safe_mutex_init(safe_mutex_t *mp, const pthread_mutexattr_t *attr, + const char *name, const char *file, uint line); +int safe_mutex_lock(safe_mutex_t *mp, myf my_flags, const char *file, + uint line); +int safe_mutex_unlock(safe_mutex_t *mp,const char *file, uint line); +int safe_mutex_destroy(safe_mutex_t *mp,const char *file, uint line); +int safe_cond_wait(pthread_cond_t *cond, safe_mutex_t *mp,const char *file, + uint line); +int safe_cond_timedwait(pthread_cond_t *cond, safe_mutex_t *mp, + const struct timespec *abstime, + const char *file, uint line); +void safe_mutex_global_init(void); +void safe_mutex_end(FILE *file); +void safe_mutex_free_deadlock_data(safe_mutex_t *mp); + + /* Wrappers if safe mutex is actually used */ +#define MYF_TRY_LOCK 1 +#define MYF_NO_DEADLOCK_DETECTION 2 + +#ifdef SAFE_MUTEX +#undef pthread_mutex_init +#undef pthread_mutex_lock +#undef pthread_mutex_unlock +#undef pthread_mutex_destroy +#undef pthread_mutex_wait +#undef pthread_mutex_timedwait +#undef pthread_mutex_t +#undef pthread_cond_wait +#undef pthread_cond_timedwait +#undef pthread_mutex_trylock +#define pthread_mutex_init(A,B) safe_mutex_init((A),(B),#A,__FILE__,__LINE__) +#define pthread_mutex_lock(A) safe_mutex_lock((A),0,__FILE__, __LINE__) +#define pthread_mutex_unlock(A) safe_mutex_unlock((A),__FILE__,__LINE__) +#define pthread_mutex_destroy(A) safe_mutex_destroy((A),__FILE__,__LINE__) +#define pthread_cond_wait(A,B) safe_cond_wait((A),(B),__FILE__,__LINE__) +#define pthread_cond_timedwait(A,B,C) safe_cond_timedwait((A),(B),(C),__FILE__,__LINE__) +#define pthread_mutex_trylock(A) safe_mutex_lock((A), MYF_TRY_LOCK, __FILE__, __LINE__) +#define pthread_mutex_t safe_mutex_t +#define safe_mutex_assert_owner(mp) \ + DBUG_ASSERT((mp)->count > 0 && \ + pthread_equal(pthread_self(), (mp)->thread)) +#define safe_mutex_assert_not_owner(mp) \ + DBUG_ASSERT(! (mp)->count || \ + ! pthread_equal(pthread_self(), (mp)->thread)) +#define safe_mutex_setflags(mp, F) do { (mp)->create_flags|= (F); } while (0) +#else +#define my_pthread_mutex_init(A,B,C,D) pthread_mutex_init((A),(B)) +#define safe_mutex_assert_owner(mp) do {} while(0) +#define safe_mutex_assert_not_owner(mp) do {} while(0) +#define safe_mutex_free_deadlock_data(mp) do {} while(0) +#define safe_mutex_setflags(mp, F) do {} while (0) +#endif /* SAFE_MUTEX */ + +#if defined(MY_PTHREAD_FASTMUTEX) && !defined(SAFE_MUTEX) +typedef struct st_my_pthread_fastmutex_t +{ + pthread_mutex_t mutex; + uint spins; + uint rng_state; +} my_pthread_fastmutex_t; +void fastmutex_global_init(void); + +int my_pthread_fastmutex_init(my_pthread_fastmutex_t *mp, + const pthread_mutexattr_t *attr); +int my_pthread_fastmutex_lock(my_pthread_fastmutex_t *mp); + +#undef pthread_mutex_init +#undef pthread_mutex_lock +#undef pthread_mutex_unlock +#undef pthread_mutex_destroy +#undef pthread_mutex_wait +#undef pthread_mutex_timedwait +#undef pthread_mutex_t +#undef pthread_cond_wait +#undef pthread_cond_timedwait +#undef pthread_mutex_trylock +#define pthread_mutex_init(A,B) my_pthread_fastmutex_init((A),(B)) +#define pthread_mutex_lock(A) my_pthread_fastmutex_lock(A) +#define pthread_mutex_unlock(A) pthread_mutex_unlock(&(A)->mutex) +#define pthread_mutex_destroy(A) pthread_mutex_destroy(&(A)->mutex) +#define pthread_cond_wait(A,B) pthread_cond_wait((A),&(B)->mutex) +#define pthread_cond_timedwait(A,B,C) pthread_cond_timedwait((A),&(B)->mutex,(C)) +#define pthread_mutex_trylock(A) pthread_mutex_trylock(&(A)->mutex) +#define pthread_mutex_t my_pthread_fastmutex_t +#endif /* defined(MY_PTHREAD_FASTMUTEX) && !defined(SAFE_MUTEX) */ + + /* READ-WRITE thread locking */ + +#if defined(USE_MUTEX_INSTEAD_OF_RW_LOCKS) +/* use these defs for simple mutex locking */ +#define rw_lock_t pthread_mutex_t +#define my_rwlock_init(A,B) pthread_mutex_init((A),(B)) +#define rw_rdlock(A) pthread_mutex_lock((A)) +#define rw_wrlock(A) pthread_mutex_lock((A)) +#define rw_tryrdlock(A) pthread_mutex_trylock((A)) +#define rw_trywrlock(A) pthread_mutex_trylock((A)) +#define rw_unlock(A) pthread_mutex_unlock((A)) +#define rwlock_destroy(A) pthread_mutex_destroy((A)) +#elif defined(HAVE_PTHREAD_RWLOCK_RDLOCK) +#define rw_lock_t pthread_rwlock_t +#define my_rwlock_init(A,B) pthread_rwlock_init((A),(B)) +#define rw_rdlock(A) pthread_rwlock_rdlock(A) +#define rw_wrlock(A) pthread_rwlock_wrlock(A) +#define rw_tryrdlock(A) pthread_rwlock_tryrdlock((A)) +#define rw_trywrlock(A) pthread_rwlock_trywrlock((A)) +#define rw_unlock(A) pthread_rwlock_unlock(A) +#define rwlock_destroy(A) pthread_rwlock_destroy(A) +#elif defined(HAVE_RWLOCK_INIT) +#ifdef HAVE_RWLOCK_T /* For example Solaris 2.6-> */ +#define rw_lock_t rwlock_t +#endif +#define my_rwlock_init(A,B) rwlock_init((A),USYNC_THREAD,0) +#else +/* Use our own version of read/write locks */ +#define NEED_MY_RW_LOCK 1 +#define rw_lock_t my_rw_lock_t +#define my_rwlock_init(A,B) my_rw_init((A)) +#define rw_rdlock(A) my_rw_rdlock((A)) +#define rw_wrlock(A) my_rw_wrlock((A)) +#define rw_tryrdlock(A) my_rw_tryrdlock((A)) +#define rw_trywrlock(A) my_rw_trywrlock((A)) +#define rw_unlock(A) my_rw_unlock((A)) +#define rwlock_destroy(A) my_rw_destroy((A)) +#define rw_lock_assert_write_owner(A) my_rw_lock_assert_write_owner((A)) +#define rw_lock_assert_not_write_owner(A) my_rw_lock_assert_not_write_owner((A)) +#endif /* USE_MUTEX_INSTEAD_OF_RW_LOCKS */ + + +/** + Portable implementation of special type of read-write locks. + + These locks have two properties which are unusual for rwlocks: + 1) They "prefer readers" in the sense that they do not allow + situations in which rwlock is rd-locked and there is a + pending rd-lock which is blocked (e.g. due to pending + request for wr-lock). + This is a stronger guarantee than one which is provided for + PTHREAD_RWLOCK_PREFER_READER_NP rwlocks in Linux. + MDL subsystem deadlock detector relies on this property for + its correctness. + 2) They are optimized for uncontended wr-lock/unlock case. + This is scenario in which they are most oftenly used + within MDL subsystem. Optimizing for it gives significant + performance improvements in some of tests involving many + connections. + + Another important requirement imposed on this type of rwlock + by the MDL subsystem is that it should be OK to destroy rwlock + object which is in unlocked state even though some threads might + have not yet fully left unlock operation for it (of course there + is an external guarantee that no thread will try to lock rwlock + which is destroyed). + Putting it another way the unlock operation should not access + rwlock data after changing its state to unlocked. + + TODO/FIXME: We should consider alleviating this requirement as + it blocks us from doing certain performance optimizations. +*/ + +typedef struct st_rw_pr_lock_t { + /** + Lock which protects the structure. + Also held for the duration of wr-lock. + */ + pthread_mutex_t lock; + /** + Condition variable which is used to wake-up + writers waiting for readers to go away. + */ + pthread_cond_t no_active_readers; + /** Number of active readers. */ + uint active_readers; + /** Number of writers waiting for readers to go away. */ + uint writers_waiting_readers; + /** Indicates whether there is an active writer. */ + my_bool active_writer; +#ifdef SAFE_MUTEX + /** Thread holding wr-lock (for debug purposes only). */ + pthread_t writer_thread; +#endif +} rw_pr_lock_t; + +extern int rw_pr_init(rw_pr_lock_t *); +extern int rw_pr_rdlock(rw_pr_lock_t *); +extern int rw_pr_wrlock(rw_pr_lock_t *); +extern int rw_pr_unlock(rw_pr_lock_t *); +extern int rw_pr_destroy(rw_pr_lock_t *); +#ifdef SAFE_MUTEX +#define rw_pr_lock_assert_write_owner(A) \ + DBUG_ASSERT((A)->active_writer && pthread_equal(pthread_self(), \ + (A)->writer_thread)) +#define rw_pr_lock_assert_not_write_owner(A) \ + DBUG_ASSERT(! (A)->active_writer || ! pthread_equal(pthread_self(), \ + (A)->writer_thread)) +#else +#define rw_pr_lock_assert_write_owner(A) +#define rw_pr_lock_assert_not_write_owner(A) +#endif /* SAFE_MUTEX */ + + +#ifdef NEED_MY_RW_LOCK + +#ifdef _WIN32 + +/** + Implementation of Windows rwlock. + + We use native (slim) rwlocks on Win7 and later, and fallback to portable + implementation on earlier Windows. + + slim rwlock are also available on Vista/WS2008, but we do not use it + ("trylock" APIs are missing on Vista) +*/ +typedef union +{ + /* Native rwlock (is_srwlock == TRUE) */ + struct + { + SRWLOCK srwlock; /* native reader writer lock */ + BOOL have_exclusive_srwlock; /* used for unlock */ + }; + + /* + Portable implementation (is_srwlock == FALSE) + Fields are identical with Unix my_rw_lock_t fields. + */ + struct + { + pthread_mutex_t lock; /* lock for structure */ + pthread_cond_t readers; /* waiting readers */ + pthread_cond_t writers; /* waiting writers */ + int state; /* -1:writer,0:free,>0:readers */ + int waiters; /* number of waiting writers */ +#ifdef SAFE_MUTEX + pthread_t write_thread; +#endif + }; +} my_rw_lock_t; + + +#else /* _WIN32 */ + +/* + On systems which don't support native read/write locks we have + to use own implementation. +*/ +typedef struct st_my_rw_lock_t { + pthread_mutex_t lock; /* lock for structure */ + pthread_cond_t readers; /* waiting readers */ + pthread_cond_t writers; /* waiting writers */ + int state; /* -1:writer,0:free,>0:readers */ + int waiters; /* number of waiting writers */ +#ifdef SAFE_MUTEX + pthread_t write_thread; +#endif +} my_rw_lock_t; + +#endif /*! _WIN32 */ + +extern int my_rw_init(my_rw_lock_t *); +extern int my_rw_destroy(my_rw_lock_t *); +extern int my_rw_rdlock(my_rw_lock_t *); +extern int my_rw_wrlock(my_rw_lock_t *); +extern int my_rw_unlock(my_rw_lock_t *); +extern int my_rw_tryrdlock(my_rw_lock_t *); +extern int my_rw_trywrlock(my_rw_lock_t *); +#ifdef SAFE_MUTEX +#define my_rw_lock_assert_write_owner(A) \ + DBUG_ASSERT((A)->state == -1 && pthread_equal(pthread_self(), \ + (A)->write_thread)) +#define my_rw_lock_assert_not_write_owner(A) \ + DBUG_ASSERT((A)->state >= 0 || ! pthread_equal(pthread_self(), \ + (A)->write_thread)) +#else +#define my_rw_lock_assert_write_owner(A) +#define my_rw_lock_assert_not_write_owner(A) +#endif +#endif /* NEED_MY_RW_LOCK */ + + +#define GETHOSTBYADDR_BUFF_SIZE 2048 + +#ifndef HAVE_THR_SETCONCURRENCY +#define thr_setconcurrency(A) pthread_dummy(0) +#endif +#if !defined(HAVE_PTHREAD_ATTR_SETSTACKSIZE) && ! defined(pthread_attr_setstacksize) +#define pthread_attr_setstacksize(A,B) pthread_dummy(0) +#endif + +/* Define mutex types, see my_thr_init.c */ +#define MY_MUTEX_INIT_SLOW NULL +#ifdef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP +extern pthread_mutexattr_t my_fast_mutexattr; +#define MY_MUTEX_INIT_FAST &my_fast_mutexattr +#else +#define MY_MUTEX_INIT_FAST NULL +#endif +#ifdef PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP +extern pthread_mutexattr_t my_errorcheck_mutexattr; +#define MY_MUTEX_INIT_ERRCHK &my_errorcheck_mutexattr +#else +#define MY_MUTEX_INIT_ERRCHK NULL +#endif + +#ifndef ESRCH +/* Define it to something */ +#define ESRCH 1 +#endif + +typedef ulong my_thread_id; + +extern void my_threadattr_global_init(void); +extern my_bool my_thread_global_init(void); +extern void my_thread_global_reinit(void); +extern void my_thread_global_end(void); +extern my_bool my_thread_init(void); +extern void my_thread_end(void); +extern const char *my_thread_name(void); +extern my_thread_id my_thread_dbug_id(void); +extern int pthread_dummy(int); +extern void my_mutex_init(); +extern void my_mutex_end(); + +/* All thread specific variables are in the following struct */ + +#define THREAD_NAME_SIZE 10 +#ifndef DEFAULT_THREAD_STACK +/* + We need to have at least 256K stack to handle calls to myisamchk_init() + with the current number of keys and key parts. +*/ +#define DEFAULT_THREAD_STACK (288*1024L) +#endif + +#define MY_PTHREAD_LOCK_READ 0 +#define MY_PTHREAD_LOCK_WRITE 1 + +#include + +#define INSTRUMENT_ME 0 + +struct st_my_thread_var +{ + int thr_errno; + mysql_cond_t suspend; + mysql_mutex_t mutex; + mysql_mutex_t * volatile current_mutex; + mysql_cond_t * volatile current_cond; + pthread_t pthread_self; + my_thread_id id; + int cmp_length; + int volatile abort; + my_bool init; + struct st_my_thread_var *next,**prev; + void *opt_info; + uint lock_type; /* used by conditional release the queue */ + void *stack_ends_here; + safe_mutex_t *mutex_in_use; +#ifndef DBUG_OFF + void *dbug; + char name[THREAD_NAME_SIZE+1]; +#endif +}; + +extern struct st_my_thread_var *_my_thread_var(void) __attribute__ ((const)); +extern void **my_thread_var_dbug(); +extern safe_mutex_t **my_thread_var_mutex_in_use(); +extern uint my_thread_end_wait_time; +extern my_bool safe_mutex_deadlock_detector; +#define my_thread_var (_my_thread_var()) +#define my_errno my_thread_var->thr_errno +/* + Keep track of shutdown,signal, and main threads so that my_end() will not + report errors with them +*/ + +/* Which kind of thread library is in use */ + +#define THD_LIB_OTHER 1 +#define THD_LIB_NPTL 2 +#define THD_LIB_LT 4 + +extern uint thd_lib_detected; + +/* + thread_safe_xxx functions are for critical statistic or counters. + The implementation is guaranteed to be thread safe, on all platforms. + Note that the calling code should *not* assume the counter is protected + by the mutex given, as the implementation of these helpers may change + to use my_atomic operations instead. +*/ + +#ifndef thread_safe_increment +#ifdef _WIN32 +#define thread_safe_increment(V,L) InterlockedIncrement((long*) &(V)) +#define thread_safe_decrement(V,L) InterlockedDecrement((long*) &(V)) +#else +#define thread_safe_increment(V,L) \ + (mysql_mutex_lock((L)), (V)++, mysql_mutex_unlock((L))) +#define thread_safe_decrement(V,L) \ + (mysql_mutex_lock((L)), (V)--, mysql_mutex_unlock((L))) +#endif +#endif + +#ifndef thread_safe_add +#ifdef _WIN32 +#define thread_safe_add(V,C,L) InterlockedExchangeAdd((long*) &(V),(C)) +#define thread_safe_sub(V,C,L) InterlockedExchangeAdd((long*) &(V),-(long) (C)) +#else +#define thread_safe_add(V,C,L) \ + (mysql_mutex_lock((L)), (V)+=(C), mysql_mutex_unlock((L))) +#define thread_safe_sub(V,C,L) \ + (mysql_mutex_lock((L)), (V)-=(C), mysql_mutex_unlock((L))) +#endif +#endif + + +/* + statistics_xxx functions are for non critical statistic, + maintained in global variables. + When compiling with SAFE_STATISTICS: + - race conditions can not occur. + - some locking occurs, which may cause performance degradation. + + When compiling without SAFE_STATISTICS: + - race conditions can occur, making the result slightly inaccurate. + - the lock given is not honored. +*/ +#ifdef SAFE_STATISTICS +#define statistic_increment(V,L) thread_safe_increment((V),(L)) +#define statistic_decrement(V,L) thread_safe_decrement((V),(L)) +#define statistic_add(V,C,L) thread_safe_add((V),(C),(L)) +#define statistic_sub(V,C,L) thread_safe_sub((V),(C),(L)) +#else +#define statistic_decrement(V,L) (V)-- +#define statistic_increment(V,L) (V)++ +#define statistic_add(V,C,L) (V)+=(C) +#define statistic_sub(V,C,L) (V)-=(C) +#endif /* SAFE_STATISTICS */ + +/* + No locking needed, the counter is owned by the thread +*/ +#define status_var_increment(V) (V)++ +#define status_var_decrement(V) (V)-- +#define status_var_add(V,C) (V)+=(C) +#define status_var_sub(V,C) (V)-=(C) + +#ifdef SAFE_MUTEX +#define mysql_mutex_record_order(A,B) \ + do { \ + mysql_mutex_lock(A); mysql_mutex_lock(B); \ + mysql_mutex_unlock(B); mysql_mutex_unlock(A); \ + } while(0) +#else +#define mysql_mutex_record_order(A,B) do { } while(0) +#endif + +/* At least Windows and NetBSD do not have this definition */ +#ifndef PTHREAD_STACK_MIN +#define PTHREAD_STACK_MIN 65536 +#endif + +#ifdef __cplusplus +} +#endif +#endif /* _my_ptread_h */ diff --git a/database/include/mysql/my_sys.h b/database/include/mysql/my_sys.h new file mode 100644 index 0000000..a7142fe --- /dev/null +++ b/database/include/mysql/my_sys.h @@ -0,0 +1,1010 @@ +/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. + Copyright (c) 2010, 2017, MariaDB Corporation + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef _my_sys_h +#define _my_sys_h + +#include "my_global.h" /* C_MODE_START, C_MODE_END */ + +C_MODE_START + +#ifdef HAVE_AIOWAIT +#include /* Used by record-cache */ +typedef struct my_aio_result { + aio_result_t result; + int pending; +} my_aio_result; +#endif + +#include + +#include + +#include /* for CHARSET_INFO */ +#include +#include +#ifdef _WIN32 +#include /*for alloca*/ +#endif +#include + +#define MY_INIT(name) { my_progname= name; my_init(); } + +/** + Max length of an error message generated by mysys utilities. + Some mysys functions produce error messages. These mostly go + to stderr. + This constant defines the size of the buffer used to format + the message. It should be kept in sync with MYSQL_ERRMSG_SIZE, + since sometimes mysys errors are stored in the server diagnostics + area, and we would like to avoid unexpected truncation. +*/ +#define MYSYS_ERRMSG_SIZE (512) + +#define MY_FILE_ERROR ((size_t) -1) + + /* General bitmaps for my_func's */ +#define MY_FFNF 1 /* Fatal if file not found */ +#define MY_FNABP 2 /* Fatal if not all bytes read/writen */ +#define MY_NABP 4 /* Error if not all bytes read/writen */ +#define MY_FAE 8 /* Fatal if any error */ +#define MY_WME 16 /* Write message on error */ +#define MY_WAIT_IF_FULL 32 /* Wait and try again if disk full error */ +#define MY_IGNORE_BADFD 32 /* my_sync(): ignore 'bad descriptor' errors */ +#define MY_NOSYMLINKS 512 /* my_open(): don't follow symlinks */ +#define MY_FULL_IO 512 /* my_read(): loop intil I/O is complete */ +#define MY_DONT_CHECK_FILESIZE 128 /* Option to init_io_cache() */ +#define MY_LINK_WARNING 32 /* my_redel() gives warning if links */ +#define MY_COPYTIME 64 /* my_redel() copys time */ +#define MY_DELETE_OLD 256 /* my_create_with_symlink() */ +#define MY_RESOLVE_LINK 128 /* my_realpath(); Only resolve links */ +#define MY_HOLD_ORIGINAL_MODES 128 /* my_copy() holds to file modes */ +#define MY_REDEL_MAKE_BACKUP 256 +#define MY_SEEK_NOT_DONE 32 /* my_lock may have to do a seek */ +#define MY_SHORT_WAIT 64 /* my_lock() don't wait if can't lock */ +#define MY_FORCE_LOCK 128 /* use my_lock() even if disable_locking */ +#define MY_NO_WAIT 256 /* my_lock() don't wait at all */ +#define MY_ZEROFILL 32 /* my_malloc(), fill array with zero */ +#define MY_ALLOW_ZERO_PTR 64 /* my_realloc() ; zero ptr -> malloc */ +#define MY_FREE_ON_ERROR 128 /* my_realloc() ; Free old ptr on error */ +#define MY_HOLD_ON_ERROR 256 /* my_realloc() ; Return old ptr on error */ +#define MY_DONT_OVERWRITE_FILE 2048 /* my_copy: Don't overwrite file */ +#define MY_THREADSAFE 2048 /* my_seek(): lock fd mutex */ +#define MY_SYNC 4096 /* my_copy(): sync dst file */ +#define MY_SYNC_DIR 32768 /* my_create/delete/rename: sync directory */ +#define MY_SYNC_FILESIZE 65536 /* my_sync(): safe sync when file is extended */ + +#define MY_CHECK_ERROR 1 /* Params to my_end; Check open-close */ +#define MY_GIVE_INFO 2 /* Give time info about process*/ +#define MY_DONT_FREE_DBUG 4 /* Do not call DBUG_END() in my_end() */ + +#define ME_HIGHBYTE 8 /* Shift for colours */ +#define ME_NOCUR 1 /* Don't use curses message */ +#define ME_OLDWIN 2 /* Use old window */ +#define ME_BELL 4 /* Ring bell then printing message */ +#define ME_HOLDTANG 8 /* Don't delete last keys */ +#define ME_WAITTOT 16 /* Wait for errtime secs of for a action */ +#define ME_WAITTANG 32 /* Wait for a user action */ +#define ME_NOREFRESH 64 /* Write the error message to error log */ +#define ME_NOINPUT 128 /* Dont use the input libary */ +#define ME_COLOUR1 ((1 << ME_HIGHBYTE)) /* Possibly error-colours */ +#define ME_COLOUR2 ((2 << ME_HIGHBYTE)) +#define ME_COLOUR3 ((3 << ME_HIGHBYTE)) +#define ME_JUST_INFO 1024 /**< not error but just info */ +#define ME_JUST_WARNING 2048 /**< not error but just warning */ +#define ME_FATALERROR 4096 /* Fatal statement error */ + + /* Bits in last argument to fn_format */ +#define MY_REPLACE_DIR 1 /* replace dir in name with 'dir' */ +#define MY_REPLACE_EXT 2 /* replace extension with 'ext' */ +#define MY_UNPACK_FILENAME 4 /* Unpack name (~ -> home) */ +#define MY_PACK_FILENAME 8 /* Pack name (home -> ~) */ +#define MY_RESOLVE_SYMLINKS 16 /* Resolve all symbolic links */ +#define MY_RETURN_REAL_PATH 32 /* return full path for file */ +#define MY_SAFE_PATH 64 /* Return NULL if too long path */ +#define MY_RELATIVE_PATH 128 /* name is relative to 'dir' */ +#define MY_APPEND_EXT 256 /* add 'ext' as additional extension*/ + + + /* My seek flags */ +#define MY_SEEK_SET 0 +#define MY_SEEK_CUR 1 +#define MY_SEEK_END 2 + + /* Some constants */ +#define MY_WAIT_FOR_USER_TO_FIX_PANIC 60 /* in seconds */ +#define MY_WAIT_GIVE_USER_A_MESSAGE 10 /* Every 10 times of prev */ +#define MIN_COMPRESS_LENGTH 50 /* Don't compress small bl. */ +#define DFLT_INIT_HITS 3 + + /* root_alloc flags */ +#define MY_KEEP_PREALLOC 1 +#define MY_MARK_BLOCKS_FREE 2 /* move used to free list and reuse them */ + + /* Internal error numbers (for assembler functions) */ +#define MY_ERRNO_EDOM 33 +#define MY_ERRNO_ERANGE 34 + + /* Bits for get_date timeflag */ +#define GETDATE_DATE_TIME 1 +#define GETDATE_SHORT_DATE 2 +#define GETDATE_HHMMSSTIME 4 +#define GETDATE_GMT 8 +#define GETDATE_FIXEDLENGTH 16 + +/* Extra length needed for filename if one calls my_create_backup_name */ +#define MY_BACKUP_NAME_EXTRA_LENGTH 17 + + /* defines when allocating data */ +extern void *my_malloc(size_t Size,myf MyFlags); +extern void *my_multi_malloc(myf MyFlags, ...); +extern void *my_realloc(void *oldpoint, size_t Size, myf MyFlags); +extern void my_free(void *ptr); +extern void *my_memdup(const void *from,size_t length,myf MyFlags); +extern char *my_strdup(const char *from,myf MyFlags); +extern char *my_strndup(const char *from, size_t length, myf MyFlags); + +extern int sf_leaking_memory; /* set to 1 to disable memleak detection */ + +#ifdef HAVE_LARGE_PAGES +extern uint my_get_large_page_size(void); +extern uchar * my_large_malloc(size_t size, myf my_flags); +extern void my_large_free(uchar *ptr); +#else +#define my_get_large_page_size() (0) +#define my_large_malloc(A,B) my_malloc_lock((A),(B)) +#define my_large_free(A) my_free_lock((A)) +#endif /* HAVE_LARGE_PAGES */ + +#if defined(HAVE_ALLOCA) && !defined(HAVE_valgrind) +#if defined(_AIX) && !defined(__GNUC__) && !defined(_AIX43) +#pragma alloca +#endif /* _AIX */ +#if defined(__MWERKS__) +#undef alloca +#define alloca _alloca +#endif /* __MWERKS__ */ +#if defined(__GNUC__) && !defined(HAVE_ALLOCA_H) && ! defined(alloca) +#define alloca __builtin_alloca +#endif /* GNUC */ +#define my_alloca(SZ) alloca((size_t) (SZ)) +#define my_afree(PTR) ((void)0) +#else +#define my_alloca(SZ) my_malloc(SZ,MYF(MY_FAE)) +#define my_afree(PTR) my_free(PTR) +#endif /* HAVE_ALLOCA */ + +#define my_safe_alloca(size, min_length) ((size <= min_length) ? my_alloca(size) : my_malloc(size,MYF(MY_FAE))) +#define my_safe_afree(ptr, size, min_length) ((size <= min_length) ? my_afree(ptr) : my_free(ptr)) + +#ifndef errno /* did we already get it? */ +#ifdef HAVE_ERRNO_AS_DEFINE +#include /* errno is a define */ +#else +extern int errno; /* declare errno */ +#endif +#endif /* #ifndef errno */ +extern char *home_dir; /* Home directory for user */ +extern MYSQL_PLUGIN_IMPORT char *mysql_data_home; +extern const char *my_progname; /* program-name (printed in errors) */ +extern const char *my_progname_short; /* like above but without directory */ +extern char curr_dir[]; /* Current directory for user */ +extern void (*error_handler_hook)(uint my_err, const char *str,myf MyFlags); +extern void (*fatal_error_handler_hook)(uint my_err, const char *str, + myf MyFlags); +extern uint my_file_limit; +extern ulonglong my_thread_stack_size; + +extern const char *(*proc_info_hook)(MYSQL_THD, const char *, const char *, + const char *, const unsigned int); + +#ifdef HAVE_LARGE_PAGES +extern my_bool my_use_large_pages; +extern uint my_large_page_size; +#endif + +/* charsets */ +#define MY_ALL_CHARSETS_SIZE 2048 +extern MYSQL_PLUGIN_IMPORT CHARSET_INFO *default_charset_info; +extern MYSQL_PLUGIN_IMPORT CHARSET_INFO *all_charsets[MY_ALL_CHARSETS_SIZE]; +extern struct charset_info_st compiled_charsets[]; + +/* statistics */ +extern ulong my_file_opened,my_stream_opened, my_tmp_file_created; +extern ulong my_file_total_opened; +extern ulong my_sync_count; +extern uint mysys_usage_id; +extern my_bool my_init_done, my_thr_key_mysys_exists; +extern my_bool my_assert_on_error; +extern myf my_global_flags; /* Set to MY_WME for more error messages */ + /* Point to current my_message() */ +extern void (*my_sigtstp_cleanup)(void), + /* Executed before jump to shell */ + (*my_sigtstp_restart)(void), + (*my_abort_hook)(int); + /* Executed when comming from shell */ +extern MYSQL_PLUGIN_IMPORT int my_umask; /* Default creation mask */ +extern int my_umask_dir, + my_recived_signals, /* Signals we have got */ + my_safe_to_handle_signal, /* Set when allowed to SIGTSTP */ + my_dont_interrupt; /* call remember_intr when set */ +extern my_bool my_use_symdir; + +extern ulong my_default_record_cache_size; +extern my_bool my_disable_locking, my_disable_async_io, + my_disable_flush_key_blocks, my_disable_symlinks; +extern my_bool my_disable_sync, my_disable_copystat_in_redel; +extern char wild_many,wild_one,wild_prefix; +extern const char *charsets_dir; +/* from default.c */ +extern const char *my_defaults_extra_file; +extern const char *my_defaults_group_suffix; +extern const char *my_defaults_file; + +extern my_bool timed_mutexes; + +enum loglevel { + ERROR_LEVEL, + WARNING_LEVEL, + INFORMATION_LEVEL +}; + +enum cache_type +{ + TYPE_NOT_SET= 0, READ_CACHE, WRITE_CACHE, + SEQ_READ_APPEND /* sequential read or append */, + READ_FIFO, READ_NET,WRITE_NET}; + +enum flush_type +{ + FLUSH_KEEP, /* flush block and keep it in the cache */ + FLUSH_RELEASE, /* flush block and remove it from the cache */ + FLUSH_IGNORE_CHANGED, /* remove block from the cache */ + /* + As my_disable_flush_pagecache_blocks is always 0, the following option + is strictly equivalent to FLUSH_KEEP + */ + FLUSH_FORCE_WRITE, + /** + @brief like FLUSH_KEEP but return immediately if file is already being + flushed (even partially) by another thread; only for page cache, + forbidden for key cache. + */ + FLUSH_KEEP_LAZY +}; + +typedef struct st_record_cache /* Used when cacheing records */ +{ + File file; + int rc_seek,error,inited; + uint rc_length,read_length,reclength; + my_off_t rc_record_pos,end_of_file; + uchar *rc_buff,*rc_buff2,*rc_pos,*rc_end,*rc_request_pos; +#ifdef HAVE_AIOWAIT + int use_async_io; + my_aio_result aio_result; +#endif + enum cache_type type; +} RECORD_CACHE; + +enum file_type +{ + UNOPEN = 0, FILE_BY_OPEN, FILE_BY_CREATE, STREAM_BY_FOPEN, STREAM_BY_FDOPEN, + FILE_BY_MKSTEMP, FILE_BY_DUP +}; + +struct st_my_file_info +{ + char *name; +#ifdef _WIN32 + HANDLE fhandle; /* win32 file handle */ + int oflag; /* open flags, e.g O_APPEND */ +#endif + enum file_type type; +}; + +extern struct st_my_file_info *my_file_info; + +typedef struct st_dynamic_array +{ + uchar *buffer; + uint elements,max_element; + uint alloc_increment; + uint size_of_element; +} DYNAMIC_ARRAY; + +typedef struct st_my_tmpdir +{ + DYNAMIC_ARRAY full_list; + char **list; + uint cur, max; + mysql_mutex_t mutex; +} MY_TMPDIR; + +typedef struct st_dynamic_string +{ + char *str; + size_t length,max_length,alloc_increment; +} DYNAMIC_STRING; + +struct st_io_cache; +typedef int (*IO_CACHE_CALLBACK)(struct st_io_cache*); + +typedef struct st_io_cache_share +{ + mysql_mutex_t mutex; /* To sync on reads into buffer. */ + mysql_cond_t cond; /* To wait for signals. */ + mysql_cond_t cond_writer; /* For a synchronized writer. */ + /* Offset in file corresponding to the first byte of buffer. */ + my_off_t pos_in_file; + /* If a synchronized write cache is the source of the data. */ + struct st_io_cache *source_cache; + uchar *buffer; /* The read buffer. */ + uchar *read_end; /* Behind last valid byte of buffer. */ + int running_threads; /* threads not in lock. */ + int total_threads; /* threads sharing the cache. */ + int error; /* Last error. */ +#ifdef NOT_YET_IMPLEMENTED + /* whether the structure should be free'd */ + my_bool alloced; +#endif +} IO_CACHE_SHARE; + +typedef struct st_io_cache /* Used when cacheing files */ +{ + /* Offset in file corresponding to the first byte of uchar* buffer. */ + my_off_t pos_in_file; + /* + The offset of end of file for READ_CACHE and WRITE_CACHE. + For SEQ_READ_APPEND it the maximum of the actual end of file and + the position represented by read_end. + */ + my_off_t end_of_file; + /* Points to current read position in the buffer */ + uchar *read_pos; + /* the non-inclusive boundary in the buffer for the currently valid read */ + uchar *read_end; + uchar *buffer; /* The read buffer */ + /* Used in ASYNC_IO */ + uchar *request_pos; + + /* Only used in WRITE caches and in SEQ_READ_APPEND to buffer writes */ + uchar *write_buffer; + /* + Only used in SEQ_READ_APPEND, and points to the current read position + in the write buffer. Note that reads in SEQ_READ_APPEND caches can + happen from both read buffer (uchar* buffer) and write buffer + (uchar* write_buffer). + */ + uchar *append_read_pos; + /* Points to current write position in the write buffer */ + uchar *write_pos; + /* The non-inclusive boundary of the valid write area */ + uchar *write_end; + + /* + Current_pos and current_end are convenience variables used by + my_b_tell() and other routines that need to know the current offset + current_pos points to &write_pos, and current_end to &write_end in a + WRITE_CACHE, and &read_pos and &read_end respectively otherwise + */ + uchar **current_pos, **current_end; + + /* + The lock is for append buffer used in SEQ_READ_APPEND cache + need mutex copying from append buffer to read buffer. + */ + mysql_mutex_t append_buffer_lock; + /* + The following is used when several threads are reading the + same file in parallel. They are synchronized on disk + accesses reading the cached part of the file asynchronously. + It should be set to NULL to disable the feature. Only + READ_CACHE mode is supported. + */ + IO_CACHE_SHARE *share; + + /* + A caller will use my_b_read() macro to read from the cache + if the data is already in cache, it will be simply copied with + memcpy() and internal variables will be accordinging updated with + no functions invoked. However, if the data is not fully in the cache, + my_b_read() will call read_function to fetch the data. read_function + must never be invoked directly. + */ + int (*read_function)(struct st_io_cache *,uchar *,size_t); + /* + Same idea as in the case of read_function, except my_b_write() needs to + be replaced with my_b_append() for a SEQ_READ_APPEND cache + */ + int (*write_function)(struct st_io_cache *,const uchar *,size_t); + /* + Specifies the type of the cache. Depending on the type of the cache + certain operations might not be available and yield unpredicatable + results. Details to be documented later + */ + enum cache_type type; + /* + Callbacks when the actual read I/O happens. These were added and + are currently used for binary logging of LOAD DATA INFILE - when a + block is read from the file, we create a block create/append event, and + when IO_CACHE is closed, we create an end event. These functions could, + of course be used for other things + */ + IO_CACHE_CALLBACK pre_read; + IO_CACHE_CALLBACK post_read; + IO_CACHE_CALLBACK pre_close; + /* + Counts the number of times, when we were forced to use disk. We use it to + increase the binlog_cache_disk_use and binlog_stmt_cache_disk_use status + variables. + */ + ulong disk_writes; + void* arg; /* for use by pre/post_read */ + char *file_name; /* if used with 'open_cached_file' */ + char *dir,*prefix; + File file; /* file descriptor */ + /* + seek_not_done is set by my_b_seek() to inform the upcoming read/write + operation that a seek needs to be preformed prior to the actual I/O + error is 0 if the cache operation was successful, -1 if there was a + "hard" error, and the actual number of I/O-ed bytes if the read/write was + partial. + */ + int seek_not_done,error; + /* buffer_length is memory size allocated for buffer or write_buffer */ + size_t buffer_length; + /* read_length is the same as buffer_length except when we use async io */ + size_t read_length; + myf myflags; /* Flags used to my_read/my_write */ + /* + alloced_buffer is 1 if the buffer was allocated by init_io_cache() and + 0 if it was supplied by the user. + Currently READ_NET is the only one that will use a buffer allocated + somewhere else + */ + my_bool alloced_buffer; +#ifdef HAVE_AIOWAIT + /* + As inidicated by ifdef, this is for async I/O, which is not currently + used (because it's not reliable on all systems) + */ + uint inited; + my_off_t aio_read_pos; + my_aio_result aio_result; +#endif +} IO_CACHE; + +typedef int (*qsort2_cmp)(const void *, const void *, const void *); + + /* defines for mf_iocache */ + + /* Test if buffer is inited */ +#define my_b_clear(info) (info)->buffer=0 +#define my_b_inited(info) (info)->buffer +#define my_b_EOF INT_MIN + +#define my_b_read(info,Buffer,Count) \ + ((info)->read_pos + (Count) <= (info)->read_end ?\ + (memcpy(Buffer,(info)->read_pos,(size_t) (Count)), \ + ((info)->read_pos+=(Count)),0) :\ + (*(info)->read_function)((info),Buffer,Count)) + +#define my_b_write(info,Buffer,Count) \ + ((info)->write_pos + (Count) <=(info)->write_end ?\ + (memcpy((info)->write_pos, (Buffer), (size_t)(Count)),\ + ((info)->write_pos+=(Count)),0) : \ + (*(info)->write_function)((info),(uchar *)(Buffer),(Count))) + +#define my_b_get(info) \ + ((info)->read_pos != (info)->read_end ?\ + ((info)->read_pos++, (int) (uchar) (info)->read_pos[-1]) :\ + _my_b_get(info)) + + /* my_b_write_byte dosn't have any err-check */ +#define my_b_write_byte(info,chr) \ + (((info)->write_pos < (info)->write_end) ?\ + ((*(info)->write_pos++)=(chr)) :\ + (_my_b_write(info,0,0) , ((*(info)->write_pos++)=(chr)))) + +#define my_b_fill_cache(info) \ + (((info)->read_end=(info)->read_pos),(*(info)->read_function)(info,0,0)) + +#define my_b_tell(info) ((info)->pos_in_file + \ + (size_t) (*(info)->current_pos - (info)->request_pos)) +#define my_b_write_tell(info) ((info)->pos_in_file + \ + ((info)->write_pos - (info)->write_buffer)) + +#define my_b_get_buffer_start(info) (info)->request_pos +#define my_b_get_bytes_in_buffer(info) (char*) (info)->read_end - \ + (char*) my_b_get_buffer_start(info) +#define my_b_get_pos_in_file(info) (info)->pos_in_file + +/* tell write offset in the SEQ_APPEND cache */ +int my_b_copy_to_file(IO_CACHE *cache, FILE *file); +my_off_t my_b_append_tell(IO_CACHE* info); +my_off_t my_b_safe_tell(IO_CACHE* info); /* picks the correct tell() */ + +#define my_b_bytes_in_cache(info) (size_t) (*(info)->current_end - \ + *(info)->current_pos) + +typedef uint32 ha_checksum; +extern ulong my_crc_dbug_check; + +/* Define the type of function to be passed to process_default_option_files */ +typedef int (*Process_option_func)(void *ctx, const char *group_name, + const char *option); + +extern int (*mysys_test_invalid_symlink)(const char *filename); + +#include + + + /* Prototypes for mysys and my_func functions */ + +extern int my_copy(const char *from,const char *to,myf MyFlags); +extern int my_delete(const char *name,myf MyFlags); +extern int my_getwd(char * buf,size_t size,myf MyFlags); +extern int my_setwd(const char *dir,myf MyFlags); +extern int my_lock(File fd,int op,my_off_t start, my_off_t length,myf MyFlags); +extern void *my_once_alloc(size_t Size,myf MyFlags); +extern void my_once_free(void); +extern char *my_once_strdup(const char *src,myf myflags); +extern void *my_once_memdup(const void *src, size_t len, myf myflags); +extern File my_open(const char *FileName,int Flags,myf MyFlags); +extern File my_register_filename(File fd, const char *FileName, + enum file_type type_of_file, + uint error_message_number, myf MyFlags); +extern File my_create(const char *FileName,int CreateFlags, + int AccessFlags, myf MyFlags); +extern int my_close(File Filedes,myf MyFlags); +extern int my_mkdir(const char *dir, int Flags, myf MyFlags); +extern int my_readlink(char *to, const char *filename, myf MyFlags); +extern int my_is_symlink(const char *filename); +extern int my_realpath(char *to, const char *filename, myf MyFlags); +extern File my_create_with_symlink(const char *linkname, const char *filename, + int createflags, int access_flags, + myf MyFlags); +extern int my_rename_with_symlink(const char *from,const char *to,myf MyFlags); +extern int my_symlink(const char *content, const char *linkname, myf MyFlags); +extern int my_handler_delete_with_symlink(const char *filename, myf sync_dir); + +extern size_t my_read(File Filedes,uchar *Buffer,size_t Count,myf MyFlags); +extern size_t my_pread(File Filedes,uchar *Buffer,size_t Count,my_off_t offset, + myf MyFlags); +extern int my_rename(const char *from,const char *to,myf MyFlags); +extern my_off_t my_seek(File fd,my_off_t pos,int whence,myf MyFlags); +extern my_off_t my_tell(File fd,myf MyFlags); +extern size_t my_write(File Filedes,const uchar *Buffer,size_t Count, + myf MyFlags); +extern size_t my_pwrite(File Filedes,const uchar *Buffer,size_t Count, + my_off_t offset,myf MyFlags); +extern size_t my_fread(FILE *stream,uchar *Buffer,size_t Count,myf MyFlags); +extern size_t my_fwrite(FILE *stream,const uchar *Buffer,size_t Count, + myf MyFlags); +extern my_off_t my_fseek(FILE *stream,my_off_t pos,int whence,myf MyFlags); +extern my_off_t my_ftell(FILE *stream,myf MyFlags); + +/* implemented in my_memmem.c */ +extern void *my_memmem(const void *haystack, size_t haystacklen, + const void *needle, size_t needlelen); + + +#ifdef _WIN32 +extern int my_access(const char *path, int amode); +#define my_check_user(A,B) (NULL) +#define my_set_user(A,B,C) (0) +#else +#define my_access access +struct passwd *my_check_user(const char *user, myf MyFlags); +int my_set_user(const char *user, struct passwd *user_info, myf MyFlags); +#endif + +extern int check_if_legal_filename(const char *path); +extern int check_if_legal_tablename(const char *path); + +#ifdef _WIN32 +/* Windows-only functions (CRT equivalents)*/ +extern HANDLE my_get_osfhandle(File fd); +extern void my_osmaperr(unsigned long last_error); +#endif + +extern void init_glob_errs(void); +extern const char** get_global_errmsgs(); +extern void wait_for_free_space(const char *filename, int errors); +extern FILE *my_fopen(const char *FileName,int Flags,myf MyFlags); +extern FILE *my_fdopen(File Filedes,const char *name, int Flags,myf MyFlags); +extern FILE *my_freopen(const char *path, const char *mode, FILE *stream); +extern int my_fclose(FILE *fd,myf MyFlags); +extern int my_vfprintf(FILE *stream, const char* format, va_list args); +extern int my_fprintf(FILE *stream, const char* format, ...); +extern File my_fileno(FILE *fd); +extern int my_chsize(File fd,my_off_t newlength, int filler, myf MyFlags); +extern int my_chmod(const char *name, mode_t mode, myf my_flags); +extern const char *my_basename(const char *filename); +extern void thr_set_sync_wait_callback(void (*before_sync)(void), + void (*after_sync)(void)); +extern int my_sync(File fd, myf my_flags); +extern int my_sync_dir(const char *dir_name, myf my_flags); +extern int my_sync_dir_by_file(const char *file_name, myf my_flags); +extern void my_error(int nr,myf MyFlags, ...); +extern void my_printf_error(uint my_err, const char *format, myf MyFlags, ...); +extern void my_printv_error(uint error, const char *format, myf MyFlags, + va_list ap); +extern int my_error_register(const char** (*get_errmsgs) (), + int first, int last); +extern const char **my_error_unregister(int first, int last); +extern void my_message(uint my_err, const char *str,myf MyFlags); +extern void my_message_stderr(uint my_err, const char *str, myf MyFlags); +extern my_bool my_init(void); +extern void my_end(int infoflag); +extern int my_redel(const char *from, const char *to, time_t backup_time_stamp, + myf MyFlags); +void my_create_backup_name(char *to, const char *from, + time_t backup_time_stamp); +extern int my_copystat(const char *from, const char *to, int MyFlags); +extern char * my_filename(File fd); + +#ifdef EXTRA_DEBUG +void my_print_open_files(void); +#else +#define my_print_open_files() +#endif + +extern my_bool init_tmpdir(MY_TMPDIR *tmpdir, const char *pathlist); +extern char *my_tmpdir(MY_TMPDIR *tmpdir); +extern void free_tmpdir(MY_TMPDIR *tmpdir); + +extern void my_remember_signal(int signal_number,sig_handler (*func)(int)); +extern size_t dirname_part(char * to,const char *name, size_t *to_res_length); +extern size_t dirname_length(const char *name); +#define base_name(A) (A+dirname_length(A)) +extern int test_if_hard_path(const char *dir_name); +extern my_bool has_path(const char *name); +extern char *convert_dirname(char *to, const char *from, const char *from_end); +extern void to_unix_path(char * name); +extern char * fn_ext(const char *name); +extern char * fn_ext2(const char *name); +extern char * fn_same(char * toname,const char *name,int flag); +extern char * fn_format(char * to,const char *name,const char *dir, + const char *form, uint flag); +extern size_t strlength(const char *str); +extern void pack_dirname(char * to,const char *from); +extern size_t normalize_dirname(char * to, const char *from); +extern size_t unpack_dirname(char * to,const char *from); +extern size_t cleanup_dirname(char * to,const char *from); +extern size_t system_filename(char * to,const char *from); +extern size_t unpack_filename(char * to,const char *from); +extern char * intern_filename(char * to,const char *from); +extern char * directory_file_name(char * dst, const char *src); +extern int pack_filename(char * to, const char *name, size_t max_length); +extern char * my_path(char * to,const char *progname, + const char *own_pathname_part); +extern char * my_load_path(char * to, const char *path, + const char *own_path_prefix); +extern int wild_compare(const char *str,const char *wildstr, + pbool str_is_pattern); +extern my_bool array_append_string_unique(const char *str, + const char **array, size_t size); +extern void get_date(char * to,int timeflag,time_t use_time); +extern void soundex(CHARSET_INFO *, char * out_pntr, char * in_pntr, + pbool remove_garbage); +extern int init_record_cache(RECORD_CACHE *info,size_t cachesize,File file, + size_t reclength,enum cache_type type, + pbool use_async_io); +extern int read_cache_record(RECORD_CACHE *info,uchar *to); +extern int end_record_cache(RECORD_CACHE *info); +extern int write_cache_record(RECORD_CACHE *info,my_off_t filepos, + const uchar *record,size_t length); +extern int flush_write_cache(RECORD_CACHE *info); +extern void handle_recived_signals(void); + +extern sig_handler my_set_alarm_variable(int signo); +extern void my_string_ptr_sort(uchar *base,uint items,size_t size); +extern void radixsort_for_str_ptr(uchar* base[], uint number_of_elements, + size_t size_of_element,uchar *buffer[]); +extern qsort_t my_qsort(void *base_ptr, size_t total_elems, size_t size, + qsort_cmp cmp); +extern qsort_t my_qsort2(void *base_ptr, size_t total_elems, size_t size, + qsort2_cmp cmp, void *cmp_argument); +extern qsort2_cmp get_ptr_compare(size_t); +void my_store_ptr(uchar *buff, size_t pack_length, my_off_t pos); +my_off_t my_get_ptr(uchar *ptr, size_t pack_length); +extern int init_io_cache(IO_CACHE *info,File file,size_t cachesize, + enum cache_type type,my_off_t seek_offset, + pbool use_async_io, myf cache_myflags); +extern my_bool reinit_io_cache(IO_CACHE *info,enum cache_type type, + my_off_t seek_offset,pbool use_async_io, + pbool clear_cache); +extern void setup_io_cache(IO_CACHE* info); +extern int _my_b_read(IO_CACHE *info,uchar *Buffer,size_t Count); +extern int _my_b_read_r(IO_CACHE *info,uchar *Buffer,size_t Count); +extern void init_io_cache_share(IO_CACHE *read_cache, IO_CACHE_SHARE *cshare, + IO_CACHE *write_cache, uint num_threads); +extern void remove_io_thread(IO_CACHE *info); +extern int _my_b_seq_read(IO_CACHE *info,uchar *Buffer,size_t Count); +extern int _my_b_net_read(IO_CACHE *info,uchar *Buffer,size_t Count); +extern int _my_b_get(IO_CACHE *info); +extern int _my_b_async_read(IO_CACHE *info,uchar *Buffer,size_t Count); +extern int _my_b_write(IO_CACHE *info,const uchar *Buffer,size_t Count); +extern int my_b_append(IO_CACHE *info,const uchar *Buffer,size_t Count); +extern int my_b_safe_write(IO_CACHE *info,const uchar *Buffer,size_t Count); + +extern int my_block_write(IO_CACHE *info, const uchar *Buffer, + size_t Count, my_off_t pos); +extern int my_b_flush_io_cache(IO_CACHE *info, int need_append_buffer_lock); + +#define flush_io_cache(info) my_b_flush_io_cache((info),1) + +extern int end_io_cache(IO_CACHE *info); +extern size_t my_b_fill(IO_CACHE *info); +extern void my_b_seek(IO_CACHE *info,my_off_t pos); +extern size_t my_b_gets(IO_CACHE *info, char *to, size_t max_length); +extern my_off_t my_b_filelength(IO_CACHE *info); +extern size_t my_b_write_backtick_quote(IO_CACHE *info, const char *str, + size_t len); +extern size_t my_b_printf(IO_CACHE *info, const char* fmt, ...); +extern size_t my_b_vprintf(IO_CACHE *info, const char* fmt, va_list ap); +extern my_bool open_cached_file(IO_CACHE *cache,const char *dir, + const char *prefix, size_t cache_size, + myf cache_myflags); +extern my_bool real_open_cached_file(IO_CACHE *cache); +extern void close_cached_file(IO_CACHE *cache); +File create_temp_file(char *to, const char *dir, const char *pfx, + int mode, myf MyFlags); +#define my_init_dynamic_array(A,B,C,D) init_dynamic_array2(A,B,NULL,C,D) +#define my_init_dynamic_array_ci(A,B,C,D) init_dynamic_array2(A,B,NULL,C,D) +#define my_init_dynamic_array2(A,B,C,D,E) init_dynamic_array2(A,B,C,D,E) +#define my_init_dynamic_array2_ci(A,B,C,D,E) init_dynamic_array2(A,B,C,D,E) +extern my_bool init_dynamic_array2(DYNAMIC_ARRAY *array, uint element_size, + void *init_buffer, uint init_alloc, + uint alloc_increment); +/* init_dynamic_array() function is deprecated */ +extern my_bool init_dynamic_array(DYNAMIC_ARRAY *array, uint element_size, + uint init_alloc, uint alloc_increment); +extern my_bool insert_dynamic(DYNAMIC_ARRAY *array, const uchar * element); +extern uchar *alloc_dynamic(DYNAMIC_ARRAY *array); +extern uchar *pop_dynamic(DYNAMIC_ARRAY*); +extern my_bool set_dynamic(DYNAMIC_ARRAY *array,uchar * element,uint array_index); +extern my_bool allocate_dynamic(DYNAMIC_ARRAY *array, uint max_elements); +extern void get_dynamic(DYNAMIC_ARRAY *array,uchar * element,uint array_index); +extern void delete_dynamic(DYNAMIC_ARRAY *array); +extern void delete_dynamic_element(DYNAMIC_ARRAY *array, uint array_index); +extern void freeze_size(DYNAMIC_ARRAY *array); +extern int get_index_dynamic(DYNAMIC_ARRAY *array, uchar * element); +#define dynamic_array_ptr(array,array_index) ((array)->buffer+(array_index)*(array)->size_of_element) +#define dynamic_element(array,array_index,type) ((type)((array)->buffer) +(array_index)) +#define push_dynamic(A,B) insert_dynamic((A),(B)) +#define reset_dynamic(array) ((array)->elements= 0) +#define sort_dynamic(A,cmp) my_qsort((A)->buffer, (A)->elements, (A)->size_of_element, (cmp)) + +extern my_bool init_dynamic_string(DYNAMIC_STRING *str, const char *init_str, + size_t init_alloc,size_t alloc_increment); +extern my_bool dynstr_append(DYNAMIC_STRING *str, const char *append); +my_bool dynstr_append_mem(DYNAMIC_STRING *str, const char *append, + size_t length); +extern my_bool dynstr_append_os_quoted(DYNAMIC_STRING *str, const char *append, + ...); +extern my_bool dynstr_set(DYNAMIC_STRING *str, const char *init_str); +extern my_bool dynstr_realloc(DYNAMIC_STRING *str, size_t additional_size); +extern my_bool dynstr_trunc(DYNAMIC_STRING *str, size_t n); +extern void dynstr_free(DYNAMIC_STRING *str); +extern void dynstr_reassociate(DYNAMIC_STRING *str, char **res, size_t *length, + size_t *alloc_length); +#ifdef HAVE_MLOCK +extern void *my_malloc_lock(size_t length,myf flags); +extern void my_free_lock(void *ptr); +#else +#define my_malloc_lock(A,B) my_malloc((A),(B)) +#define my_free_lock(A) my_free((A)) +#endif +#define alloc_root_inited(A) ((A)->min_malloc != 0) +#define ALLOC_ROOT_MIN_BLOCK_SIZE (MALLOC_OVERHEAD + sizeof(USED_MEM) + 8) +#define clear_alloc_root(A) do { (A)->free= (A)->used= (A)->pre_alloc= 0; (A)->min_malloc=0;} while(0) +extern void init_alloc_root(MEM_ROOT *mem_root, size_t block_size, + size_t pre_alloc_size); +extern void *alloc_root(MEM_ROOT *mem_root, size_t Size); +extern void *multi_alloc_root(MEM_ROOT *mem_root, ...); +extern void free_root(MEM_ROOT *root, myf MyFLAGS); +extern void set_prealloc_root(MEM_ROOT *root, char *ptr); +extern void reset_root_defaults(MEM_ROOT *mem_root, size_t block_size, + size_t prealloc_size); +extern char *strdup_root(MEM_ROOT *root,const char *str); +static inline char *safe_strdup_root(MEM_ROOT *root, const char *str) +{ + return str ? strdup_root(root, str) : 0; +} +extern char *strmake_root(MEM_ROOT *root,const char *str,size_t len); +extern void *memdup_root(MEM_ROOT *root,const void *str, size_t len); +extern int get_defaults_options(int argc, char **argv, + char **defaults, char **extra_defaults, + char **group_suffix); +extern my_bool my_getopt_use_args_separator; +extern my_bool my_getopt_is_args_separator(const char* arg); +extern int my_load_defaults(const char *conf_file, const char **groups, + int *argc, char ***argv, const char ***); +extern int load_defaults(const char *conf_file, const char **groups, + int *argc, char ***argv); +extern int my_search_option_files(const char *conf_file, int *argc, + char ***argv, uint *args_used, + Process_option_func func, void *func_ctx, + const char **default_directories); +extern void free_defaults(char **argv); +extern void my_print_default_files(const char *conf_file); +extern void print_defaults(const char *conf_file, const char **groups); +extern my_bool my_compress(uchar *, size_t *, size_t *); +extern my_bool my_uncompress(uchar *, size_t , size_t *); +extern uchar *my_compress_alloc(const uchar *packet, size_t *len, + size_t *complen); +extern void *my_az_allocator(void *dummy, unsigned int items, unsigned int size); +extern void my_az_free(void *dummy, void *address); +extern int my_compress_buffer(uchar *dest, size_t *destLen, + const uchar *source, size_t sourceLen); +extern int packfrm(uchar *, size_t, uchar **, size_t *); +extern int unpackfrm(uchar **, size_t *, const uchar *); + +extern ha_checksum my_checksum(ha_checksum crc, const uchar *mem, + size_t count); +#ifndef DBUG_OFF +extern void my_debug_put_break_here(void); +#else +#define my_debug_put_break_here() do {} while(0) +#endif + +extern void my_sleep(ulong m_seconds); +extern ulong crc32(ulong crc, const uchar *buf, uint len); +extern uint my_set_max_open_files(uint files); +void my_free_open_file_info(void); + +extern my_bool my_gethwaddr(uchar *to); +extern int my_getncpus(); + +#define HRTIME_RESOLUTION 1000000ULL /* microseconds */ +typedef struct {ulonglong val;} my_hrtime_t; +void my_time_init(); +extern my_hrtime_t my_hrtime(); +extern ulonglong my_interval_timer(void); +extern ulonglong my_getcputime(void); + +#define microsecond_interval_timer() (my_interval_timer()/1000) +#define hrtime_to_time(X) ((X).val/HRTIME_RESOLUTION) +#define hrtime_from_time(X) ((ulonglong)((X)*HRTIME_RESOLUTION)) +#define hrtime_to_double(X) ((X).val/(double)HRTIME_RESOLUTION) +#define hrtime_sec_part(X) ((ulong)((X).val % HRTIME_RESOLUTION)) +#define my_time(X) hrtime_to_time(my_hrtime()) + +#ifdef HAVE_SYS_MMAN_H +#include + +#ifndef MAP_NOSYNC +#define MAP_NOSYNC 0 +#endif +#ifndef MAP_NORESERVE +#define MAP_NORESERVE 0 /* For irix and AIX */ +#endif + +#ifdef HAVE_MMAP64 +#define my_mmap(a,b,c,d,e,f) mmap64(a,b,c,d,e,f) +#else +#define my_mmap(a,b,c,d,e,f) mmap(a,b,c,d,e,f) +#endif +#define my_munmap(a,b) munmap((a),(b)) + +#else +/* not a complete set of mmap() flags, but only those that nesessary */ +#define PROT_READ 1 +#define PROT_WRITE 2 +#define MAP_NORESERVE 0 +#define MAP_SHARED 0x0001 +#define MAP_PRIVATE 0x0002 +#define MAP_NOSYNC 0x0800 +#define MAP_FAILED ((void *)-1) +#define MS_SYNC 0x0000 + +#define HAVE_MMAP +void *my_mmap(void *, size_t, int, int, int, my_off_t); +int my_munmap(void *, size_t); +#endif + +/* my_getpagesize */ +#ifdef HAVE_GETPAGESIZE +#define my_getpagesize() getpagesize() +#else +int my_getpagesize(void); +#endif + +int my_msync(int, void *, size_t, int); + +#define MY_UUID_SIZE 16 +#define MY_UUID_STRING_LENGTH (8+1+4+1+4+1+4+1+12) + +void my_uuid_init(ulong seed1, ulong seed2); +void my_uuid(uchar *guid); +void my_uuid2str(const uchar *guid, char *s); +void my_uuid_end(); + +struct my_rnd_struct { + unsigned long seed1,seed2,max_value; + double max_value_dbl; +}; + +void my_rnd_init(struct my_rnd_struct *rand_st, ulong seed1, ulong seed2); +double my_rnd(struct my_rnd_struct *rand_st); + +/* character sets */ +extern uint get_charset_number(const char *cs_name, uint cs_flags); +extern uint get_collation_number(const char *name); +extern const char *get_charset_name(uint cs_number); + +extern CHARSET_INFO *get_charset(uint cs_number, myf flags); +extern CHARSET_INFO *get_charset_by_name(const char *cs_name, myf flags); +extern CHARSET_INFO *get_charset_by_csname(const char *cs_name, + uint cs_flags, myf my_flags); + +extern my_bool resolve_charset(const char *cs_name, + CHARSET_INFO *default_cs, + CHARSET_INFO **cs); +extern my_bool resolve_collation(const char *cl_name, + CHARSET_INFO *default_cl, + CHARSET_INFO **cl); +extern void free_charsets(void); +extern char *get_charsets_dir(char *buf); +extern my_bool my_charset_same(CHARSET_INFO *cs1, CHARSET_INFO *cs2); +extern my_bool init_compiled_charsets(myf flags); +extern void add_compiled_collation(struct charset_info_st *cs); +extern size_t escape_string_for_mysql(CHARSET_INFO *charset_info, + char *to, size_t to_length, + const char *from, size_t length); +#ifdef __WIN__ +#define BACKSLASH_MBTAIL +/* File system character set */ +extern CHARSET_INFO *fs_character_set(void); +#endif +extern size_t escape_quotes_for_mysql(CHARSET_INFO *charset_info, + char *to, size_t to_length, + const char *from, size_t length); + +extern void thd_increment_bytes_sent(ulong length); +extern void thd_increment_bytes_received(ulong length); +extern void thd_increment_net_big_packet_count(ulong length); + +#ifdef __WIN__ +extern my_bool have_tcpip; /* Is set if tcpip is used */ + +/* implemented in my_windac.c */ + +int my_security_attr_create(SECURITY_ATTRIBUTES **psa, const char **perror, + DWORD owner_rights, DWORD everybody_rights); + +void my_security_attr_free(SECURITY_ATTRIBUTES *sa); + +/* implemented in my_conio.c */ +char* my_cgets(char *string, size_t clen, size_t* plen); + +#endif + +#include + +#ifdef HAVE_PSI_INTERFACE +extern MYSQL_PLUGIN_IMPORT struct PSI_bootstrap *PSI_hook; +void my_init_mysys_psi_keys(void); +#endif + +struct st_mysql_file; +extern struct st_mysql_file *mysql_stdin; + +C_MODE_END +#endif /* _my_sys_h */ diff --git a/database/include/mysql/my_valgrind.h b/database/include/mysql/my_valgrind.h new file mode 100644 index 0000000..7a56b28 --- /dev/null +++ b/database/include/mysql/my_valgrind.h @@ -0,0 +1,73 @@ +/* Copyright (C) 2010, 2019, MariaDB Corporation. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef MY_VALGRIND_INCLUDED +#define MY_VALGRIND_INCLUDED + +/* clang -> gcc */ +#ifndef __has_feature +# define __has_feature(x) 0 +#endif +#if __has_feature(address_sanitizer) +# define __SANITIZE_ADDRESS__ 1 +#endif + +#ifdef HAVE_valgrind +#define IF_VALGRIND(A,B) A +#else +#define IF_VALGRIND(A,B) B +#endif + +#if defined(HAVE_VALGRIND) && defined(HAVE_valgrind) +# include +# define MEM_UNDEFINED(a,len) VALGRIND_MAKE_MEM_UNDEFINED(a,len) +# define MEM_NOACCESS(a,len) VALGRIND_MAKE_MEM_NOACCESS(a,len) +# define MEM_CHECK_ADDRESSABLE(a,len) VALGRIND_CHECK_MEM_IS_ADDRESSABLE(a,len) +# define MEM_CHECK_DEFINED(a,len) VALGRIND_CHECK_MEM_IS_DEFINED(a,len) +# define REDZONE_SIZE 8 +#elif defined(__SANITIZE_ADDRESS__) +# include +/* How to do manual poisoning: +https://github.com/google/sanitizers/wiki/AddressSanitizerManualPoisoning */ +# define MEM_UNDEFINED(a,len) ASAN_UNPOISON_MEMORY_REGION(a,len) +# define MEM_NOACCESS(a,len) ASAN_POISON_MEMORY_REGION(a,len) +# define MEM_CHECK_ADDRESSABLE(a,len) ((void) 0) +# define MEM_CHECK_DEFINED(a,len) ((void) 0) +# define REDZONE_SIZE 8 +#else +# define MEM_UNDEFINED(a,len) ((void) (a), (void) (len)) +# define MEM_NOACCESS(a,len) ((void) 0) +# define MEM_CHECK_ADDRESSABLE(a,len) ((void) 0) +# define MEM_CHECK_DEFINED(a,len) ((void) 0) +# define REDZONE_SIZE 0 +#endif /* HAVE_VALGRIND */ + +#ifndef DBUG_OFF +/* NOTE: Do not invoke TRASH_FILL directly! Use TRASH_ALLOC or TRASH_FREE. + +The MEM_UNDEFINED() call before memset() is for canceling the effect +of any previous MEM_NOACCESS(). We must invoke MEM_UNDEFINED() after +writing the dummy pattern, unless MEM_NOACCESS() is going to be invoked. +On AddressSanitizer, the MEM_UNDEFINED() in TRASH_ALLOC() has no effect. */ +#define TRASH_FILL(A,B,C) do { const size_t trash_tmp= (B); MEM_UNDEFINED(A, trash_tmp); memset(A, C, trash_tmp); } while (0) +#else +#define TRASH_FILL(A,B,C) do { MEM_UNDEFINED((A), (B)); } while (0) +#endif +/** Note that some memory became allocated or uninitialized. */ +#define TRASH_ALLOC(A,B) do { TRASH_FILL(A,B,0xA5); MEM_UNDEFINED(A,B); } while(0) +/** Note that some memory became freed. (Prohibit further access to it.) */ +#define TRASH_FREE(A,B) do { TRASH_FILL(A,B,0x8F); MEM_NOACCESS(A,B); } while(0) + +#endif /* MY_VALGRIND_INCLUDED */ diff --git a/database/include/mysql/my_xml.h b/database/include/mysql/my_xml.h new file mode 100644 index 0000000..d4a9169 --- /dev/null +++ b/database/include/mysql/my_xml.h @@ -0,0 +1,90 @@ +/* Copyright (c) 2000, 2002, 2003, 2005, 2007 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + + +#ifndef _my_xml_h +#define _my_xml_h + +#ifdef __cplusplus +extern "C" { +#endif + + +#define MY_XML_OK 0 +#define MY_XML_ERROR 1 + +/* + A flag whether to use absolute tag names in call-back functions, + like "a", "a.b" and "a.b.c" (used in character set file parser), + or relative names like "a", "b" and "c". +*/ +#define MY_XML_FLAG_RELATIVE_NAMES 1 + +/* + A flag whether to skip normilization of text values before calling + call-back functions: i.e. skip leading/trailing spaces, + \r, \n, \t characters. +*/ +#define MY_XML_FLAG_SKIP_TEXT_NORMALIZATION 2 + +enum my_xml_node_type +{ + MY_XML_NODE_TAG, /* can have TAG, ATTR and TEXT children */ + MY_XML_NODE_ATTR, /* can have TEXT children */ + MY_XML_NODE_TEXT /* cannot have children */ +}; + +typedef struct xml_stack_st +{ + int flags; + enum my_xml_node_type current_node_type; + char errstr[128]; + char attr[128]; + char *attrend; + const char *beg; + const char *cur; + const char *end; + void *user_data; + int (*enter)(struct xml_stack_st *st,const char *val, size_t len); + int (*value)(struct xml_stack_st *st,const char *val, size_t len); + int (*leave_xml)(struct xml_stack_st *st,const char *val, size_t len); +} MY_XML_PARSER; + +void my_xml_parser_create(MY_XML_PARSER *st); +void my_xml_parser_free(MY_XML_PARSER *st); +int my_xml_parse(MY_XML_PARSER *st,const char *str, size_t len); + +void my_xml_set_value_handler(MY_XML_PARSER *st, int (*)(MY_XML_PARSER *, + const char *, + size_t len)); +void my_xml_set_enter_handler(MY_XML_PARSER *st, int (*)(MY_XML_PARSER *, + const char *, + size_t len)); +void my_xml_set_leave_handler(MY_XML_PARSER *st, int (*)(MY_XML_PARSER *, + const char *, + size_t len)); +void my_xml_set_user_data(MY_XML_PARSER *st, void *); + +size_t my_xml_error_pos(MY_XML_PARSER *st); +uint my_xml_error_lineno(MY_XML_PARSER *st); + +const char *my_xml_error_string(MY_XML_PARSER *st); + +#ifdef __cplusplus +} +#endif + +#endif /* _my_xml_h */ diff --git a/database/include/mysql/mysql.h b/database/include/mysql/mysql.h new file mode 100644 index 0000000..543e245 --- /dev/null +++ b/database/include/mysql/mysql.h @@ -0,0 +1,881 @@ +/* + Copyright (c) 2000, 2012, Oracle and/or its affiliates. + Copyright (c) 2012, Monty Program Ab. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* + This file defines the client API to MySQL and also the ABI of the + dynamically linked libmysqlclient. + + The ABI should never be changed in a released product of MySQL, + thus you need to take great care when changing the file. In case + the file is changed so the ABI is broken, you must also update + the SHARED_LIB_MAJOR_VERSION in cmake/mysql_version.cmake +*/ + +#ifndef _mysql_h +#define _mysql_h + +#ifdef _AIX /* large-file support will break without this */ +#include +#endif + +#ifdef __CYGWIN__ /* CYGWIN implements a UNIX API */ +#undef WIN +#undef _WIN +#undef _WIN32 +#undef _WIN64 +#undef __WIN__ +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef _global_h /* If not standard header */ +#ifndef MYSQL_ABI_CHECK +#include +#endif +typedef char my_bool; +#if (defined(_WIN32) || defined(_WIN64)) && !defined(__WIN__) +#define __WIN__ +#endif +#if !defined(__WIN__) +#define STDCALL +#else +#define STDCALL __stdcall +#endif + +#ifndef my_socket_defined +#if defined (_WIN64) +#define my_socket unsigned long long +#elif defined (_WIN32) +#define my_socket unsigned int +#else +typedef int my_socket; +#endif /* _WIN64 */ +#endif /* my_socket_defined */ +#endif /* _global_h */ + +#include "mysql_version.h" +#include "mysql_com.h" +#include "mysql_time.h" + +#include "my_list.h" /* for LISTs used in 'MYSQL' and 'MYSQL_STMT' */ + +extern unsigned int mariadb_deinitialize_ssl; +extern unsigned int mysql_port; +extern char *mysql_unix_port; + +#define CLIENT_NET_READ_TIMEOUT 365*24*3600 /* Timeout on read */ +#define CLIENT_NET_WRITE_TIMEOUT 365*24*3600 /* Timeout on write */ + +#define IS_PRI_KEY(n) ((n) & PRI_KEY_FLAG) +#define IS_NOT_NULL(n) ((n) & NOT_NULL_FLAG) +#define IS_BLOB(n) ((n) & BLOB_FLAG) +/** + Returns true if the value is a number which does not need quotes for + the sql_lex.cc parser to parse correctly. +*/ +#define IS_NUM(t) (((t) <= MYSQL_TYPE_INT24 && (t) != MYSQL_TYPE_TIMESTAMP) || (t) == MYSQL_TYPE_YEAR || (t) == MYSQL_TYPE_NEWDECIMAL) +#define IS_LONGDATA(t) ((t) >= MYSQL_TYPE_TINY_BLOB && (t) <= MYSQL_TYPE_STRING) + + +typedef struct st_mysql_field { + char *name; /* Name of column */ + char *org_name; /* Original column name, if an alias */ + char *table; /* Table of column if column was a field */ + char *org_table; /* Org table name, if table was an alias */ + char *db; /* Database for table */ + char *catalog; /* Catalog for table */ + char *def; /* Default value (set by mysql_list_fields) */ + unsigned long length; /* Width of column (create length) */ + unsigned long max_length; /* Max width for selected set */ + unsigned int name_length; + unsigned int org_name_length; + unsigned int table_length; + unsigned int org_table_length; + unsigned int db_length; + unsigned int catalog_length; + unsigned int def_length; + unsigned int flags; /* Div flags */ + unsigned int decimals; /* Number of decimals in field */ + unsigned int charsetnr; /* Character set */ + enum enum_field_types type; /* Type of field. See mysql_com.h for types */ + void *extension; +} MYSQL_FIELD; + +typedef char **MYSQL_ROW; /* return data as array of strings */ +typedef unsigned int MYSQL_FIELD_OFFSET; /* offset to current field */ + +#ifndef _global_h +#if defined(NO_CLIENT_LONG_LONG) +typedef unsigned long my_ulonglong; +#elif defined (__WIN__) +typedef unsigned __int64 my_ulonglong; +#else +typedef unsigned long long my_ulonglong; +#endif +#endif + +#include "typelib.h" + +#define MYSQL_COUNT_ERROR (~(my_ulonglong) 0) + +/* backward compatibility define - to be removed eventually */ +#define ER_WARN_DATA_TRUNCATED WARN_DATA_TRUNCATED +#define WARN_PLUGIN_DELETE_BUILTIN ER_PLUGIN_DELETE_BUILTIN + +typedef struct st_mysql_rows { + struct st_mysql_rows *next; /* list of rows */ + MYSQL_ROW data; + unsigned long length; +} MYSQL_ROWS; + +typedef MYSQL_ROWS *MYSQL_ROW_OFFSET; /* offset to current row */ + +#include "my_alloc.h" + +typedef struct embedded_query_result EMBEDDED_QUERY_RESULT; +typedef struct st_mysql_data { + MYSQL_ROWS *data; + struct embedded_query_result *embedded_info; + MEM_ROOT alloc; + my_ulonglong rows; + unsigned int fields; + /* extra info for embedded library */ + void *extension; +} MYSQL_DATA; + +enum mysql_option +{ + MYSQL_OPT_CONNECT_TIMEOUT, MYSQL_OPT_COMPRESS, MYSQL_OPT_NAMED_PIPE, + MYSQL_INIT_COMMAND, MYSQL_READ_DEFAULT_FILE, MYSQL_READ_DEFAULT_GROUP, + MYSQL_SET_CHARSET_DIR, MYSQL_SET_CHARSET_NAME, MYSQL_OPT_LOCAL_INFILE, + MYSQL_OPT_PROTOCOL, MYSQL_SHARED_MEMORY_BASE_NAME, MYSQL_OPT_READ_TIMEOUT, + MYSQL_OPT_WRITE_TIMEOUT, MYSQL_OPT_USE_RESULT, + MYSQL_OPT_USE_REMOTE_CONNECTION, MYSQL_OPT_USE_EMBEDDED_CONNECTION, + MYSQL_OPT_GUESS_CONNECTION, MYSQL_SET_CLIENT_IP, MYSQL_SECURE_AUTH, + MYSQL_REPORT_DATA_TRUNCATION, MYSQL_OPT_RECONNECT, + MYSQL_OPT_SSL_VERIFY_SERVER_CERT, MYSQL_PLUGIN_DIR, MYSQL_DEFAULT_AUTH, + MYSQL_ENABLE_CLEARTEXT_PLUGIN, + + /* MariaDB options */ + MYSQL_PROGRESS_CALLBACK=5999, + MYSQL_OPT_NONBLOCK=6000 +}; + +/** + @todo remove the "extension", move st_mysql_options completely + out of mysql.h +*/ +struct st_mysql_options_extention; + +struct st_mysql_options { + unsigned int connect_timeout, read_timeout, write_timeout; + unsigned int port, protocol; + unsigned long client_flag; + char *host,*user,*password,*unix_socket,*db; + struct st_dynamic_array *init_commands; + char *my_cnf_file,*my_cnf_group, *charset_dir, *charset_name; + char *ssl_key; /* PEM key file */ + char *ssl_cert; /* PEM cert file */ + char *ssl_ca; /* PEM CA file */ + char *ssl_capath; /* PEM directory of CA-s? */ + char *ssl_cipher; /* cipher to use */ + char *shared_memory_base_name; + unsigned long max_allowed_packet; + my_bool use_ssl; /* if to use SSL or not */ + my_bool compress,named_pipe; + my_bool unused1; + my_bool unused2; + my_bool unused3; + my_bool unused4; + enum mysql_option methods_to_use; + char *client_ip; + /* Refuse client connecting to server if it uses old (pre-4.1.1) protocol */ + my_bool secure_auth; + /* 0 - never report, 1 - always report (default) */ + my_bool report_data_truncation; + + /* function pointers for local infile support */ + int (*local_infile_init)(void **, const char *, void *); + int (*local_infile_read)(void *, char *, unsigned int); + void (*local_infile_end)(void *); + int (*local_infile_error)(void *, char *, unsigned int); + void *local_infile_userdata; + struct st_mysql_options_extention *extension; +}; + +enum mysql_status +{ + MYSQL_STATUS_READY, MYSQL_STATUS_GET_RESULT, MYSQL_STATUS_USE_RESULT, + MYSQL_STATUS_STATEMENT_GET_RESULT +}; + +enum mysql_protocol_type +{ + MYSQL_PROTOCOL_DEFAULT, MYSQL_PROTOCOL_TCP, MYSQL_PROTOCOL_SOCKET, + MYSQL_PROTOCOL_PIPE, MYSQL_PROTOCOL_MEMORY +}; + +typedef struct character_set +{ + unsigned int number; /* character set number */ + unsigned int state; /* character set state */ + const char *csname; /* collation name */ + const char *name; /* character set name */ + const char *comment; /* comment */ + const char *dir; /* character set directory */ + unsigned int mbminlen; /* min. length for multibyte strings */ + unsigned int mbmaxlen; /* max. length for multibyte strings */ +} MY_CHARSET_INFO; + +struct st_mysql_methods; +struct st_mysql_stmt; + +typedef struct st_mysql +{ + NET net; /* Communication parameters */ + unsigned char *connector_fd; /* ConnectorFd for SSL */ + char *host,*user,*passwd,*unix_socket,*server_version,*host_info; + char *info, *db; + const struct charset_info_st *charset; + MYSQL_FIELD *fields; + MEM_ROOT field_alloc; + my_ulonglong affected_rows; + my_ulonglong insert_id; /* id if insert on table with NEXTNR */ + my_ulonglong extra_info; /* Not used */ + unsigned long thread_id; /* Id for connection in server */ + unsigned long packet_length; + unsigned int port; + unsigned long client_flag,server_capabilities; + unsigned int protocol_version; + unsigned int field_count; + unsigned int server_status; + unsigned int server_language; + unsigned int warning_count; + struct st_mysql_options options; + enum mysql_status status; + my_bool free_me; /* If free in mysql_close */ + my_bool reconnect; /* set to 1 if automatic reconnect */ + + /* session-wide random string */ + char scramble[SCRAMBLE_LENGTH+1]; + my_bool auto_local_infile; + void *unused2, *unused3, *unused4, *unused5; + + LIST *stmts; /* list of all statements */ + const struct st_mysql_methods *methods; + void *thd; + /* + Points to boolean flag in MYSQL_RES or MYSQL_STMT. We set this flag + from mysql_stmt_close if close had to cancel result set of this object. + */ + my_bool *unbuffered_fetch_owner; + /* needed for embedded server - no net buffer to store the 'info' */ + char *info_buffer; + void *extension; +} MYSQL; + + +typedef struct st_mysql_res { + my_ulonglong row_count; + MYSQL_FIELD *fields; + MYSQL_DATA *data; + MYSQL_ROWS *data_cursor; + unsigned long *lengths; /* column lengths of current row */ + MYSQL *handle; /* for unbuffered reads */ + const struct st_mysql_methods *methods; + MYSQL_ROW row; /* If unbuffered read */ + MYSQL_ROW current_row; /* buffer to current row */ + MEM_ROOT field_alloc; + unsigned int field_count, current_field; + my_bool eof; /* Used by mysql_fetch_row */ + /* mysql_stmt_close() had to cancel this result */ + my_bool unbuffered_fetch_cancelled; + void *extension; +} MYSQL_RES; + + +#if !defined(MYSQL_SERVER) && !defined(MYSQL_CLIENT) +#define MYSQL_CLIENT +#endif + + +typedef struct st_mysql_parameters +{ + unsigned long *p_max_allowed_packet; + unsigned long *p_net_buffer_length; + void *extension; +} MYSQL_PARAMETERS; + +/* + Flag bits, the asynchronous methods return a combination of these ORed + together to let the application know when to resume the suspended operation. +*/ + +/* + Wait for data to be available on socket to read. + mysql_get_socket_fd() will return socket descriptor. +*/ +#define MYSQL_WAIT_READ 1 +/* Wait for socket to be ready to write data. */ +#define MYSQL_WAIT_WRITE 2 +/* Wait for select() to mark exception on socket. */ +#define MYSQL_WAIT_EXCEPT 4 +/* + Wait until timeout occurs. Value of timeout can be obtained from + mysql_get_timeout_value(). +*/ +#define MYSQL_WAIT_TIMEOUT 8 + +#if !defined(MYSQL_SERVER) && !defined(EMBEDDED_LIBRARY) +#define max_allowed_packet (*mysql_get_parameters()->p_max_allowed_packet) +#define net_buffer_length (*mysql_get_parameters()->p_net_buffer_length) +#endif + +/* + Set up and bring down the server; to ensure that applications will + work when linked against either the standard client library or the + embedded server library, these functions should be called. +*/ +int STDCALL mysql_server_init(int argc, char **argv, char **groups); +void STDCALL mysql_server_end(void); + +/* + mysql_server_init/end need to be called when using libmysqld or + libmysqlclient (exactly, mysql_server_init() is called by mysql_init() so + you don't need to call it explicitely; but you need to call + mysql_server_end() to free memory). The names are a bit misleading + (mysql_SERVER* to be used when using libmysqlCLIENT). So we add more general + names which suit well whether you're using libmysqld or libmysqlclient. We + intend to promote these aliases over the mysql_server* ones. +*/ +#define mysql_library_init mysql_server_init +#define mysql_library_end mysql_server_end + +MYSQL_PARAMETERS *STDCALL mysql_get_parameters(void); + +/* + Set up and bring down a thread; these function should be called + for each thread in an application which opens at least one MySQL + connection. All uses of the connection(s) should be between these + function calls. +*/ +my_bool STDCALL mysql_thread_init(void); +void STDCALL mysql_thread_end(void); + +/* + Functions to get information from the MYSQL and MYSQL_RES structures + Should definitely be used if one uses shared libraries. +*/ + +my_ulonglong STDCALL mysql_num_rows(MYSQL_RES *res); +unsigned int STDCALL mysql_num_fields(MYSQL_RES *res); +my_bool STDCALL mysql_eof(MYSQL_RES *res); +MYSQL_FIELD *STDCALL mysql_fetch_field_direct(MYSQL_RES *res, + unsigned int fieldnr); +MYSQL_FIELD * STDCALL mysql_fetch_fields(MYSQL_RES *res); +MYSQL_ROW_OFFSET STDCALL mysql_row_tell(MYSQL_RES *res); +MYSQL_FIELD_OFFSET STDCALL mysql_field_tell(MYSQL_RES *res); + +unsigned int STDCALL mysql_field_count(MYSQL *mysql); +my_ulonglong STDCALL mysql_affected_rows(MYSQL *mysql); +my_ulonglong STDCALL mysql_insert_id(MYSQL *mysql); +unsigned int STDCALL mysql_errno(MYSQL *mysql); +const char * STDCALL mysql_error(MYSQL *mysql); +const char *STDCALL mysql_sqlstate(MYSQL *mysql); +unsigned int STDCALL mysql_warning_count(MYSQL *mysql); +const char * STDCALL mysql_info(MYSQL *mysql); +unsigned long STDCALL mysql_thread_id(MYSQL *mysql); +const char * STDCALL mysql_character_set_name(MYSQL *mysql); +int STDCALL mysql_set_character_set(MYSQL *mysql, const char *csname); +int STDCALL mysql_set_character_set_start(int *ret, MYSQL *mysql, + const char *csname); +int STDCALL mysql_set_character_set_cont(int *ret, MYSQL *mysql, + int status); + +MYSQL * STDCALL mysql_init(MYSQL *mysql); +my_bool STDCALL mysql_ssl_set(MYSQL *mysql, const char *key, + const char *cert, const char *ca, + const char *capath, const char *cipher); +const char * STDCALL mysql_get_ssl_cipher(MYSQL *mysql); +my_bool STDCALL mysql_change_user(MYSQL *mysql, const char *user, + const char *passwd, const char *db); +int STDCALL mysql_change_user_start(my_bool *ret, MYSQL *mysql, + const char *user, + const char *passwd, + const char *db); +int STDCALL mysql_change_user_cont(my_bool *ret, MYSQL *mysql, + int status); +MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host, + const char *user, + const char *passwd, + const char *db, + unsigned int port, + const char *unix_socket, + unsigned long clientflag); +int STDCALL mysql_real_connect_start(MYSQL **ret, MYSQL *mysql, + const char *host, + const char *user, + const char *passwd, + const char *db, + unsigned int port, + const char *unix_socket, + unsigned long clientflag); +int STDCALL mysql_real_connect_cont(MYSQL **ret, MYSQL *mysql, + int status); +int STDCALL mysql_select_db(MYSQL *mysql, const char *db); +int STDCALL mysql_select_db_start(int *ret, MYSQL *mysql, + const char *db); +int STDCALL mysql_select_db_cont(int *ret, MYSQL *mysql, + int status); +int STDCALL mysql_query(MYSQL *mysql, const char *q); +int STDCALL mysql_query_start(int *ret, MYSQL *mysql, + const char *q); +int STDCALL mysql_query_cont(int *ret, MYSQL *mysql, + int status); +int STDCALL mysql_send_query(MYSQL *mysql, const char *q, + unsigned long length); +int STDCALL mysql_send_query_start(int *ret, MYSQL *mysql, + const char *q, + unsigned long length); +int STDCALL mysql_send_query_cont(int *ret, MYSQL *mysql, + int status); +int STDCALL mysql_real_query(MYSQL *mysql, const char *q, + unsigned long length); +int STDCALL mysql_real_query_start(int *ret, MYSQL *mysql, + const char *q, + unsigned long length); +int STDCALL mysql_real_query_cont(int *ret, MYSQL *mysql, + int status); +MYSQL_RES * STDCALL mysql_store_result(MYSQL *mysql); +int STDCALL mysql_store_result_start(MYSQL_RES **ret, MYSQL *mysql); +int STDCALL mysql_store_result_cont(MYSQL_RES **ret, MYSQL *mysql, + int status); +MYSQL_RES * STDCALL mysql_use_result(MYSQL *mysql); + +void STDCALL mysql_get_character_set_info(MYSQL *mysql, + MY_CHARSET_INFO *charset); + +/* local infile support */ + +#define LOCAL_INFILE_ERROR_LEN 512 + +void +mysql_set_local_infile_handler(MYSQL *mysql, + int (*local_infile_init)(void **, const char *, + void *), + int (*local_infile_read)(void *, char *, + unsigned int), + void (*local_infile_end)(void *), + int (*local_infile_error)(void *, char*, + unsigned int), + void *); + +void +mysql_set_local_infile_default(MYSQL *mysql); + +int STDCALL mysql_shutdown(MYSQL *mysql, + enum mysql_enum_shutdown_level + shutdown_level); +int STDCALL mysql_shutdown_start(int *ret, MYSQL *mysql, + enum mysql_enum_shutdown_level + shutdown_level); +int STDCALL mysql_shutdown_cont(int *ret, MYSQL *mysql, + int status); +int STDCALL mysql_dump_debug_info(MYSQL *mysql); +int STDCALL mysql_dump_debug_info_start(int *ret, MYSQL *mysql); +int STDCALL mysql_dump_debug_info_cont(int *ret, MYSQL *mysql, + int status); +int STDCALL mysql_refresh(MYSQL *mysql, + unsigned int refresh_options); +int STDCALL mysql_refresh_start(int *ret, MYSQL *mysql, + unsigned int refresh_options); +int STDCALL mysql_refresh_cont(int *ret, MYSQL *mysql, int status); +int STDCALL mysql_kill(MYSQL *mysql,unsigned long pid); +int STDCALL mysql_kill_start(int *ret, MYSQL *mysql, + unsigned long pid); +int STDCALL mysql_kill_cont(int *ret, MYSQL *mysql, int status); +int STDCALL mysql_set_server_option(MYSQL *mysql, + enum enum_mysql_set_option + option); +int STDCALL mysql_set_server_option_start(int *ret, MYSQL *mysql, + enum enum_mysql_set_option + option); +int STDCALL mysql_set_server_option_cont(int *ret, MYSQL *mysql, + int status); +int STDCALL mysql_ping(MYSQL *mysql); +int STDCALL mysql_ping_start(int *ret, MYSQL *mysql); +int STDCALL mysql_ping_cont(int *ret, MYSQL *mysql, int status); +const char * STDCALL mysql_stat(MYSQL *mysql); +int STDCALL mysql_stat_start(const char **ret, MYSQL *mysql); +int STDCALL mysql_stat_cont(const char **ret, MYSQL *mysql, + int status); +const char * STDCALL mysql_get_server_info(MYSQL *mysql); +const char * STDCALL mysql_get_server_name(MYSQL *mysql); +const char * STDCALL mysql_get_client_info(void); +unsigned long STDCALL mysql_get_client_version(void); +const char * STDCALL mysql_get_host_info(MYSQL *mysql); +unsigned long STDCALL mysql_get_server_version(MYSQL *mysql); +unsigned int STDCALL mysql_get_proto_info(MYSQL *mysql); +MYSQL_RES * STDCALL mysql_list_dbs(MYSQL *mysql,const char *wild); +int STDCALL mysql_list_dbs_start(MYSQL_RES **ret, MYSQL *mysql, + const char *wild); +int STDCALL mysql_list_dbs_cont(MYSQL_RES **ret, MYSQL *mysql, + int status); +MYSQL_RES * STDCALL mysql_list_tables(MYSQL *mysql,const char *wild); +int STDCALL mysql_list_tables_start(MYSQL_RES **ret, MYSQL *mysql, + const char *wild); +int STDCALL mysql_list_tables_cont(MYSQL_RES **ret, MYSQL *mysql, + int status); +MYSQL_RES * STDCALL mysql_list_processes(MYSQL *mysql); +int STDCALL mysql_list_processes_start(MYSQL_RES **ret, + MYSQL *mysql); +int STDCALL mysql_list_processes_cont(MYSQL_RES **ret, MYSQL *mysql, + int status); +int STDCALL mysql_options(MYSQL *mysql,enum mysql_option option, + const void *arg); +void STDCALL mysql_free_result(MYSQL_RES *result); +int STDCALL mysql_free_result_start(MYSQL_RES *result); +int STDCALL mysql_free_result_cont(MYSQL_RES *result, int status); +void STDCALL mysql_data_seek(MYSQL_RES *result, + my_ulonglong offset); +MYSQL_ROW_OFFSET STDCALL mysql_row_seek(MYSQL_RES *result, + MYSQL_ROW_OFFSET offset); +MYSQL_FIELD_OFFSET STDCALL mysql_field_seek(MYSQL_RES *result, + MYSQL_FIELD_OFFSET offset); +MYSQL_ROW STDCALL mysql_fetch_row(MYSQL_RES *result); +int STDCALL mysql_fetch_row_start(MYSQL_ROW *ret, + MYSQL_RES *result); +int STDCALL mysql_fetch_row_cont(MYSQL_ROW *ret, MYSQL_RES *result, + int status); +unsigned long * STDCALL mysql_fetch_lengths(MYSQL_RES *result); +MYSQL_FIELD * STDCALL mysql_fetch_field(MYSQL_RES *result); +MYSQL_RES * STDCALL mysql_list_fields(MYSQL *mysql, const char *table, + const char *wild); +int STDCALL mysql_list_fields_start(MYSQL_RES **ret, MYSQL *mysql, + const char *table, + const char *wild); +int STDCALL mysql_list_fields_cont(MYSQL_RES **ret, MYSQL *mysql, + int status); +unsigned long STDCALL mysql_escape_string(char *to,const char *from, + unsigned long from_length); +unsigned long STDCALL mysql_hex_string(char *to,const char *from, + unsigned long from_length); +unsigned long STDCALL mysql_real_escape_string(MYSQL *mysql, + char *to,const char *from, + unsigned long length); +void STDCALL mysql_debug(const char *debug); +void STDCALL myodbc_remove_escape(MYSQL *mysql,char *name); +unsigned int STDCALL mysql_thread_safe(void); +my_bool STDCALL mysql_embedded(void); +my_bool STDCALL mariadb_connection(MYSQL *mysql); +my_bool STDCALL mysql_read_query_result(MYSQL *mysql); +int STDCALL mysql_read_query_result_start(my_bool *ret, + MYSQL *mysql); +int STDCALL mysql_read_query_result_cont(my_bool *ret, + MYSQL *mysql, int status); + + +/* + The following definitions are added for the enhanced + client-server protocol +*/ + +/* statement state */ +enum enum_mysql_stmt_state +{ + MYSQL_STMT_INIT_DONE= 1, MYSQL_STMT_PREPARE_DONE, MYSQL_STMT_EXECUTE_DONE, + MYSQL_STMT_FETCH_DONE +}; + + +/* + This structure is used to define bind information, and + internally by the client library. + Public members with their descriptions are listed below + (conventionally `On input' refers to the binds given to + mysql_stmt_bind_param, `On output' refers to the binds given + to mysql_stmt_bind_result): + + buffer_type - One of the MYSQL_* types, used to describe + the host language type of buffer. + On output: if column type is different from + buffer_type, column value is automatically converted + to buffer_type before it is stored in the buffer. + buffer - On input: points to the buffer with input data. + On output: points to the buffer capable to store + output data. + The type of memory pointed by buffer must correspond + to buffer_type. See the correspondence table in + the comment to mysql_stmt_bind_param. + + The two above members are mandatory for any kind of bind. + + buffer_length - the length of the buffer. You don't have to set + it for any fixed length buffer: float, double, + int, etc. It must be set however for variable-length + types, such as BLOBs or STRINGs. + + length - On input: in case when lengths of input values + are different for each execute, you can set this to + point at a variable containining value length. This + way the value length can be different in each execute. + If length is not NULL, buffer_length is not used. + Note, length can even point at buffer_length if + you keep bind structures around while fetching: + this way you can change buffer_length before + each execution, everything will work ok. + On output: if length is set, mysql_stmt_fetch will + write column length into it. + + is_null - On input: points to a boolean variable that should + be set to TRUE for NULL values. + This member is useful only if your data may be + NULL in some but not all cases. + If your data is never NULL, is_null should be set to 0. + If your data is always NULL, set buffer_type + to MYSQL_TYPE_NULL, and is_null will not be used. + + is_unsigned - On input: used to signify that values provided for one + of numeric types are unsigned. + On output describes signedness of the output buffer. + If, taking into account is_unsigned flag, column data + is out of range of the output buffer, data for this column + is regarded truncated. Note that this has no correspondence + to the sign of result set column, if you need to find it out + use mysql_stmt_result_metadata. + error - where to write a truncation error if it is present. + possible error value is: + 0 no truncation + 1 value is out of range or buffer is too small + + Please note that MYSQL_BIND also has internals members. +*/ + +typedef struct st_mysql_bind +{ + unsigned long *length; /* output length pointer */ + my_bool *is_null; /* Pointer to null indicator */ + void *buffer; /* buffer to get/put data */ + /* set this if you want to track data truncations happened during fetch */ + my_bool *error; + unsigned char *row_ptr; /* for the current data position */ + void (*store_param_func)(NET *net, struct st_mysql_bind *param); + void (*fetch_result)(struct st_mysql_bind *, MYSQL_FIELD *, + unsigned char **row); + void (*skip_result)(struct st_mysql_bind *, MYSQL_FIELD *, + unsigned char **row); + /* output buffer length, must be set when fetching str/binary */ + unsigned long buffer_length; + unsigned long offset; /* offset position for char/binary fetch */ + unsigned long length_value; /* Used if length is 0 */ + unsigned int param_number; /* For null count and error messages */ + unsigned int pack_length; /* Internal length for packed data */ + enum enum_field_types buffer_type; /* buffer type */ + my_bool error_value; /* used if error is 0 */ + my_bool is_unsigned; /* set if integer type is unsigned */ + my_bool long_data_used; /* If used with mysql_send_long_data */ + my_bool is_null_value; /* Used if is_null is 0 */ + void *extension; +} MYSQL_BIND; + + +struct st_mysql_stmt_extension; + +/* statement handler */ +typedef struct st_mysql_stmt +{ + MEM_ROOT mem_root; /* root allocations */ + LIST list; /* list to keep track of all stmts */ + MYSQL *mysql; /* connection handle */ + MYSQL_BIND *params; /* input parameters */ + MYSQL_BIND *bind; /* output parameters */ + MYSQL_FIELD *fields; /* result set metadata */ + MYSQL_DATA result; /* cached result set */ + MYSQL_ROWS *data_cursor; /* current row in cached result */ + /* + mysql_stmt_fetch() calls this function to fetch one row (it's different + for buffered, unbuffered and cursor fetch). + */ + int (*read_row_func)(struct st_mysql_stmt *stmt, + unsigned char **row); + /* copy of mysql->affected_rows after statement execution */ + my_ulonglong affected_rows; + my_ulonglong insert_id; /* copy of mysql->insert_id */ + unsigned long stmt_id; /* Id for prepared statement */ + unsigned long flags; /* i.e. type of cursor to open */ + unsigned long prefetch_rows; /* number of rows per one COM_FETCH */ + /* + Copied from mysql->server_status after execute/fetch to know + server-side cursor status for this statement. + */ + unsigned int server_status; + unsigned int last_errno; /* error code */ + unsigned int param_count; /* input parameter count */ + unsigned int field_count; /* number of columns in result set */ + enum enum_mysql_stmt_state state; /* statement state */ + char last_error[MYSQL_ERRMSG_SIZE]; /* error message */ + char sqlstate[SQLSTATE_LENGTH+1]; + /* Types of input parameters should be sent to server */ + my_bool send_types_to_server; + my_bool bind_param_done; /* input buffers were supplied */ + unsigned char bind_result_done; /* output buffers were supplied */ + /* mysql_stmt_close() had to cancel this result */ + my_bool unbuffered_fetch_cancelled; + /* + Is set to true if we need to calculate field->max_length for + metadata fields when doing mysql_stmt_store_result. + */ + my_bool update_max_length; + struct st_mysql_stmt_extension *extension; +} MYSQL_STMT; + +enum enum_stmt_attr_type +{ + /* + When doing mysql_stmt_store_result calculate max_length attribute + of statement metadata. This is to be consistent with the old API, + where this was done automatically. + In the new API we do that only by request because it slows down + mysql_stmt_store_result sufficiently. + */ + STMT_ATTR_UPDATE_MAX_LENGTH, + /* + unsigned long with combination of cursor flags (read only, for update, + etc) + */ + STMT_ATTR_CURSOR_TYPE, + /* + Amount of rows to retrieve from server per one fetch if using cursors. + Accepts unsigned long attribute in the range 1 - ulong_max + */ + STMT_ATTR_PREFETCH_ROWS +}; + +MYSQL_STMT * STDCALL mysql_stmt_init(MYSQL *mysql); +int STDCALL mysql_stmt_prepare(MYSQL_STMT *stmt, const char *query, + unsigned long length); +int STDCALL mysql_stmt_prepare_start(int *ret, MYSQL_STMT *stmt, + const char *query, unsigned long length); +int STDCALL mysql_stmt_prepare_cont(int *ret, MYSQL_STMT *stmt, int status); +int STDCALL mysql_stmt_execute(MYSQL_STMT *stmt); +int STDCALL mysql_stmt_execute_start(int *ret, MYSQL_STMT *stmt); +int STDCALL mysql_stmt_execute_cont(int *ret, MYSQL_STMT *stmt, int status); +int STDCALL mysql_stmt_fetch(MYSQL_STMT *stmt); +int STDCALL mysql_stmt_fetch_start(int *ret, MYSQL_STMT *stmt); +int STDCALL mysql_stmt_fetch_cont(int *ret, MYSQL_STMT *stmt, int status); +int STDCALL mysql_stmt_fetch_column(MYSQL_STMT *stmt, MYSQL_BIND *bind_arg, + unsigned int column, + unsigned long offset); +int STDCALL mysql_stmt_store_result(MYSQL_STMT *stmt); +int STDCALL mysql_stmt_store_result_start(int *ret, MYSQL_STMT *stmt); +int STDCALL mysql_stmt_store_result_cont(int *ret, MYSQL_STMT *stmt, + int status); +unsigned long STDCALL mysql_stmt_param_count(MYSQL_STMT * stmt); +my_bool STDCALL mysql_stmt_attr_set(MYSQL_STMT *stmt, + enum enum_stmt_attr_type attr_type, + const void *attr); +my_bool STDCALL mysql_stmt_attr_get(MYSQL_STMT *stmt, + enum enum_stmt_attr_type attr_type, + void *attr); +my_bool STDCALL mysql_stmt_bind_param(MYSQL_STMT * stmt, MYSQL_BIND * bnd); +my_bool STDCALL mysql_stmt_bind_result(MYSQL_STMT * stmt, MYSQL_BIND * bnd); +my_bool STDCALL mysql_stmt_close(MYSQL_STMT * stmt); +int STDCALL mysql_stmt_close_start(my_bool *ret, MYSQL_STMT *stmt); +int STDCALL mysql_stmt_close_cont(my_bool *ret, MYSQL_STMT * stmt, int status); +my_bool STDCALL mysql_stmt_reset(MYSQL_STMT * stmt); +int STDCALL mysql_stmt_reset_start(my_bool *ret, MYSQL_STMT * stmt); +int STDCALL mysql_stmt_reset_cont(my_bool *ret, MYSQL_STMT *stmt, int status); +my_bool STDCALL mysql_stmt_free_result(MYSQL_STMT *stmt); +int STDCALL mysql_stmt_free_result_start(my_bool *ret, MYSQL_STMT *stmt); +int STDCALL mysql_stmt_free_result_cont(my_bool *ret, MYSQL_STMT *stmt, + int status); +my_bool STDCALL mysql_stmt_send_long_data(MYSQL_STMT *stmt, + unsigned int param_number, + const char *data, + unsigned long length); +int STDCALL mysql_stmt_send_long_data_start(my_bool *ret, MYSQL_STMT *stmt, + unsigned int param_number, + const char *data, + unsigned long len); +int STDCALL mysql_stmt_send_long_data_cont(my_bool *ret, MYSQL_STMT *stmt, + int status); +MYSQL_RES *STDCALL mysql_stmt_result_metadata(MYSQL_STMT *stmt); +MYSQL_RES *STDCALL mysql_stmt_param_metadata(MYSQL_STMT *stmt); +unsigned int STDCALL mysql_stmt_errno(MYSQL_STMT * stmt); +const char *STDCALL mysql_stmt_error(MYSQL_STMT * stmt); +const char *STDCALL mysql_stmt_sqlstate(MYSQL_STMT * stmt); +MYSQL_ROW_OFFSET STDCALL mysql_stmt_row_seek(MYSQL_STMT *stmt, + MYSQL_ROW_OFFSET offset); +MYSQL_ROW_OFFSET STDCALL mysql_stmt_row_tell(MYSQL_STMT *stmt); +void STDCALL mysql_stmt_data_seek(MYSQL_STMT *stmt, my_ulonglong offset); +my_ulonglong STDCALL mysql_stmt_num_rows(MYSQL_STMT *stmt); +my_ulonglong STDCALL mysql_stmt_affected_rows(MYSQL_STMT *stmt); +my_ulonglong STDCALL mysql_stmt_insert_id(MYSQL_STMT *stmt); +unsigned int STDCALL mysql_stmt_field_count(MYSQL_STMT *stmt); + +my_bool STDCALL mysql_commit(MYSQL * mysql); +int STDCALL mysql_commit_start(my_bool *ret, MYSQL * mysql); +int STDCALL mysql_commit_cont(my_bool *ret, MYSQL * mysql, int status); +my_bool STDCALL mysql_rollback(MYSQL * mysql); +int STDCALL mysql_rollback_start(my_bool *ret, MYSQL * mysql); +int STDCALL mysql_rollback_cont(my_bool *ret, MYSQL * mysql, int status); +my_bool STDCALL mysql_autocommit(MYSQL * mysql, my_bool auto_mode); +int STDCALL mysql_autocommit_start(my_bool *ret, MYSQL * mysql, + my_bool auto_mode); +int STDCALL mysql_autocommit_cont(my_bool *ret, MYSQL * mysql, int status); +my_bool STDCALL mysql_more_results(MYSQL *mysql); +int STDCALL mysql_next_result(MYSQL *mysql); +int STDCALL mysql_next_result_start(int *ret, MYSQL *mysql); +int STDCALL mysql_next_result_cont(int *ret, MYSQL *mysql, int status); +int STDCALL mysql_stmt_next_result(MYSQL_STMT *stmt); +int STDCALL mysql_stmt_next_result_start(int *ret, MYSQL_STMT *stmt); +int STDCALL mysql_stmt_next_result_cont(int *ret, MYSQL_STMT *stmt, int status); +void STDCALL mysql_close_slow_part(MYSQL *mysql); +void STDCALL mysql_close(MYSQL *sock); +int STDCALL mysql_close_start(MYSQL *sock); +int STDCALL mysql_close_cont(MYSQL *sock, int status); +my_socket STDCALL mysql_get_socket(const MYSQL *mysql); +unsigned int STDCALL mysql_get_timeout_value(const MYSQL *mysql); +unsigned int STDCALL mysql_get_timeout_value_ms(const MYSQL *mysql); + +/******************************************************************** + mysql_net_ functions - low-level API to MySQL protocol +*********************************************************************/ +unsigned long STDCALL mysql_net_read_packet(MYSQL *mysql); +unsigned long STDCALL mysql_net_field_length(unsigned char **packet); + +/* status return codes */ +#define MYSQL_NO_DATA 100 +#define MYSQL_DATA_TRUNCATED 101 + +#define mysql_reload(mysql) mysql_refresh((mysql),REFRESH_GRANT) + +#ifdef USE_OLD_FUNCTIONS +MYSQL * STDCALL mysql_connect(MYSQL *mysql, const char *host, + const char *user, const char *passwd); +int STDCALL mysql_create_db(MYSQL *mysql, const char *DB); +int STDCALL mysql_drop_db(MYSQL *mysql, const char *DB); +#endif +#define HAVE_MYSQL_REAL_CONNECT + +#ifdef __cplusplus +} +#endif + +#endif /* _mysql_h */ diff --git a/database/include/mysql/mysql_com.h b/database/include/mysql/mysql_com.h new file mode 100644 index 0000000..62079d9 --- /dev/null +++ b/database/include/mysql/mysql_com.h @@ -0,0 +1,614 @@ +/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. + Copyright (c) 2010, 2018, MariaDB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* +** Common definition between mysql server & client +*/ + +#ifndef _mysql_com_h +#define _mysql_com_h + +#define HOSTNAME_LENGTH 60 +#define SYSTEM_CHARSET_MBMAXLEN 3 +#define NAME_CHAR_LEN 64 /* Field/table name length */ +#define USERNAME_CHAR_LENGTH 128 +#define NAME_LEN (NAME_CHAR_LEN*SYSTEM_CHARSET_MBMAXLEN) +#define USERNAME_LENGTH (USERNAME_CHAR_LENGTH*SYSTEM_CHARSET_MBMAXLEN) +#define DEFINER_CHAR_LENGTH (USERNAME_CHAR_LENGTH + HOSTNAME_LENGTH + 1) +#define DEFINER_LENGTH (USERNAME_LENGTH + HOSTNAME_LENGTH + 1) + +#define MYSQL_AUTODETECT_CHARSET_NAME "auto" + +#define MYSQL50_TABLE_NAME_PREFIX "#mysql50#" +#define MYSQL50_TABLE_NAME_PREFIX_LENGTH (sizeof(MYSQL50_TABLE_NAME_PREFIX)-1) +#define SAFE_NAME_LEN (NAME_LEN + MYSQL50_TABLE_NAME_PREFIX_LENGTH) + +/* + MDEV-4088 + + MySQL (and MariaDB 5.x before the fix) was using the first character of the + server version string (as sent in the first handshake protocol packet) to + decide on the replication event formats. And for 10.x the first character + is "1", which the slave thought comes from some ancient 1.x version + (ignoring the fact that the first ever MySQL version was 3.x). + + To support replication to these old clients, we fake the version in the + first handshake protocol packet to start from "5.5.5-" (for example, + it might be "5.5.5-10.0.1-MariaDB-debug-log". + + On the client side we remove this fake version prefix to restore the + correct server version. The version "5.5.5" did not support + pluggable authentication, so any version starting from "5.5.5-" and + claiming to support pluggable auth, must be using this fake prefix. +*/ +/* this version must be the one that *does not* support pluggable auth */ +#define RPL_VERSION_HACK "5.5.5-" + +#define SERVER_VERSION_LENGTH 60 +#define SQLSTATE_LENGTH 5 +#define LIST_PROCESS_HOST_LEN 64 + +/* + Maximum length of comments +*/ +#define TABLE_COMMENT_INLINE_MAXLEN 180 /* pre 6.0: 60 characters */ +#define TABLE_COMMENT_MAXLEN 2048 +#define COLUMN_COMMENT_MAXLEN 1024 +#define INDEX_COMMENT_MAXLEN 1024 + +/* + USER_HOST_BUFF_SIZE -- length of string buffer, that is enough to contain + username and hostname parts of the user identifier with trailing zero in + MySQL standard format: + user_name_part@host_name_part\0 +*/ +#define USER_HOST_BUFF_SIZE HOSTNAME_LENGTH + USERNAME_LENGTH + 2 + +#define LOCAL_HOST "localhost" +#define LOCAL_HOST_NAMEDPIPE "." + + +#if defined(__WIN__) && !defined( _CUSTOMCONFIG_) +#define MYSQL_NAMEDPIPE "MySQL" +#define MYSQL_SERVICENAME "MySQL" +#endif /* __WIN__ */ + +/* + You should add new commands to the end of this list, otherwise old + servers won't be able to handle them as 'unsupported'. +*/ + +enum enum_server_command +{ + COM_SLEEP, COM_QUIT, COM_INIT_DB, COM_QUERY, COM_FIELD_LIST, + COM_CREATE_DB, COM_DROP_DB, COM_REFRESH, COM_SHUTDOWN, COM_STATISTICS, + COM_PROCESS_INFO, COM_CONNECT, COM_PROCESS_KILL, COM_DEBUG, COM_PING, + COM_TIME, COM_DELAYED_INSERT, COM_CHANGE_USER, COM_BINLOG_DUMP, + COM_TABLE_DUMP, COM_CONNECT_OUT, COM_REGISTER_SLAVE, + COM_STMT_PREPARE, COM_STMT_EXECUTE, COM_STMT_SEND_LONG_DATA, COM_STMT_CLOSE, + COM_STMT_RESET, COM_SET_OPTION, COM_STMT_FETCH, COM_DAEMON, + /* don't forget to update const char *command_name[] in sql_parse.cc */ + + /* Must be last */ + COM_END +}; + +/* sql type stored in .frm files for virtual fields */ +#define MYSQL_TYPE_VIRTUAL 245 +/* + Length of random string sent by server on handshake; this is also length of + obfuscated password, recieved from client +*/ +#define SCRAMBLE_LENGTH 20 +#define SCRAMBLE_LENGTH_323 8 +/* length of password stored in the db: new passwords are preceeded with '*' */ +#define SCRAMBLED_PASSWORD_CHAR_LENGTH (SCRAMBLE_LENGTH*2+1) +#define SCRAMBLED_PASSWORD_CHAR_LENGTH_323 (SCRAMBLE_LENGTH_323*2) + + +#define NOT_NULL_FLAG 1 /* Field can't be NULL */ +#define PRI_KEY_FLAG 2 /* Field is part of a primary key */ +#define UNIQUE_KEY_FLAG 4 /* Field is part of a unique key */ +#define MULTIPLE_KEY_FLAG 8 /* Field is part of a key */ +#define BLOB_FLAG 16 /* Field is a blob */ +#define UNSIGNED_FLAG 32 /* Field is unsigned */ +#define ZEROFILL_FLAG 64 /* Field is zerofill */ +#define BINARY_FLAG 128 /* Field is binary */ + +/* The following are only sent to new clients */ +#define ENUM_FLAG 256 /* field is an enum */ +#define AUTO_INCREMENT_FLAG 512 /* field is a autoincrement field */ +#define TIMESTAMP_FLAG 1024 /* Field is a timestamp */ +#define SET_FLAG 2048 /* field is a set */ +#define NO_DEFAULT_VALUE_FLAG 4096 /* Field doesn't have default value */ +#define ON_UPDATE_NOW_FLAG 8192 /* Field is set to NOW on UPDATE */ +#define NUM_FLAG 32768 /* Field is num (for clients) */ +#define PART_KEY_FLAG 16384 /* Intern; Part of some key */ +#define GROUP_FLAG 32768 /* Intern: Group field */ +#define UNIQUE_FLAG 65536 /* Intern: Used by sql_yacc */ +#define BINCMP_FLAG 131072 /* Intern: Used by sql_yacc */ +#define GET_FIXED_FIELDS_FLAG (1 << 18) /* Used to get fields in item tree */ +#define FIELD_IN_PART_FUNC_FLAG (1 << 19)/* Field part of partition func */ +#define FIELD_IN_ADD_INDEX (1<< 20) /* Intern: Field used in ADD INDEX */ +#define FIELD_IS_RENAMED (1<< 21) /* Intern: Field is being renamed */ +#define FIELD_FLAGS_STORAGE_MEDIA 22 /* Field storage media, bit 22-23, + reserved by MySQL Cluster */ +#define FIELD_FLAGS_COLUMN_FORMAT 24 /* Field column format, bit 24-25, + reserved by MySQL Cluster */ + +#define REFRESH_GRANT (1UL << 0) /* Refresh grant tables */ +#define REFRESH_LOG (1UL << 1) /* Start on new log file */ +#define REFRESH_TABLES (1UL << 2) /* close all tables */ +#define REFRESH_HOSTS (1UL << 3) /* Flush host cache */ +#define REFRESH_STATUS (1UL << 4) /* Flush status variables */ +#define REFRESH_THREADS (1UL << 5) /* Flush thread cache */ +#define REFRESH_SLAVE (1UL << 6) /* Reset master info and restart slave + thread */ +#define REFRESH_MASTER (1UL << 7) /* Remove all bin logs in the index + and truncate the index */ + +/* The following can't be set with mysql_refresh() */ +#define REFRESH_ERROR_LOG (1UL << 8) /* Rotate only the erorr log */ +#define REFRESH_ENGINE_LOG (1UL << 9) /* Flush all storage engine logs */ +#define REFRESH_BINARY_LOG (1UL << 10) /* Flush the binary log */ +#define REFRESH_RELAY_LOG (1UL << 11) /* Flush the relay log */ +#define REFRESH_GENERAL_LOG (1UL << 12) /* Flush the general log */ +#define REFRESH_SLOW_LOG (1UL << 13) /* Flush the slow query log */ + +#define REFRESH_READ_LOCK (1UL << 14) /* Lock tables for read */ +#define REFRESH_CHECKPOINT (1UL << 15) /* With REFRESH_READ_LOCK: block checkpoints too */ + +#define REFRESH_QUERY_CACHE (1UL << 16) /* clear the query cache */ +#define REFRESH_QUERY_CACHE_FREE (1UL << 17) /* pack query cache */ +#define REFRESH_DES_KEY_FILE (1UL << 18) +#define REFRESH_USER_RESOURCES (1UL << 19) + +#define REFRESH_TABLE_STATS (1UL << 20) /* Refresh table stats hash table */ +#define REFRESH_INDEX_STATS (1UL << 21) /* Refresh index stats hash table */ +#define REFRESH_USER_STATS (1UL << 22) /* Refresh user stats hash table */ +#define REFRESH_CLIENT_STATS (1UL << 23) /* Refresh client stats hash table */ + +#define REFRESH_FAST (1UL << 31) /* Intern flag */ + +#define CLIENT_LONG_PASSWORD 1 /* new more secure passwords */ +#define CLIENT_FOUND_ROWS 2 /* Found instead of affected rows */ +#define CLIENT_LONG_FLAG 4 /* Get all column flags */ +#define CLIENT_CONNECT_WITH_DB 8 /* One can specify db on connect */ +#define CLIENT_NO_SCHEMA 16 /* Don't allow database.table.column */ +#define CLIENT_COMPRESS 32 /* Can use compression protocol */ +#define CLIENT_ODBC 64 /* Odbc client */ +#define CLIENT_LOCAL_FILES 128 /* Can use LOAD DATA LOCAL */ +#define CLIENT_IGNORE_SPACE 256 /* Ignore spaces before '(' */ +#define CLIENT_PROTOCOL_41 512 /* New 4.1 protocol */ +#define CLIENT_INTERACTIVE 1024 /* This is an interactive client */ +#define CLIENT_SSL 2048 /* Switch to SSL after handshake */ +#define CLIENT_IGNORE_SIGPIPE 4096 /* IGNORE sigpipes */ +#define CLIENT_TRANSACTIONS 8192 /* Client knows about transactions */ +#define CLIENT_RESERVED 16384 /* Old flag for 4.1 protocol */ +#define CLIENT_SECURE_CONNECTION 32768 /* New 4.1 authentication */ +#define CLIENT_MULTI_STATEMENTS (1UL << 16) /* Enable/disable multi-stmt support */ +#define CLIENT_MULTI_RESULTS (1UL << 17) /* Enable/disable multi-results */ +#define CLIENT_PS_MULTI_RESULTS (1UL << 18) /* Multi-results in PS-protocol */ + +#define CLIENT_PLUGIN_AUTH (1UL << 19) /* Client supports plugin authentication */ +#define CLIENT_PROGRESS (1UL << 29) /* Client support progress indicator */ + +#define CLIENT_SSL_VERIFY_SERVER_CERT (1UL << 30) +/* + It used to be that if mysql_real_connect() failed, it would delete any + options set by the client, unless the CLIENT_REMEMBER_OPTIONS flag was + given. + That behaviour does not appear very useful, and it seems unlikely that + any applications would actually depend on this. So from MariaDB 5.5 we + always preserve any options set in case of failed connect, and this + option is effectively always set. +*/ +#define CLIENT_REMEMBER_OPTIONS (1UL << 31) + +#ifdef HAVE_COMPRESS +#define CAN_CLIENT_COMPRESS CLIENT_COMPRESS +#else +#define CAN_CLIENT_COMPRESS 0 +#endif + +/* Gather all possible capabilites (flags) supported by the server */ +#define CLIENT_ALL_FLAGS (CLIENT_LONG_PASSWORD | \ + CLIENT_FOUND_ROWS | \ + CLIENT_LONG_FLAG | \ + CLIENT_CONNECT_WITH_DB | \ + CLIENT_NO_SCHEMA | \ + CLIENT_COMPRESS | \ + CLIENT_ODBC | \ + CLIENT_LOCAL_FILES | \ + CLIENT_IGNORE_SPACE | \ + CLIENT_PROTOCOL_41 | \ + CLIENT_INTERACTIVE | \ + CLIENT_SSL | \ + CLIENT_IGNORE_SIGPIPE | \ + CLIENT_TRANSACTIONS | \ + CLIENT_RESERVED | \ + CLIENT_SECURE_CONNECTION | \ + CLIENT_MULTI_STATEMENTS | \ + CLIENT_MULTI_RESULTS | \ + CLIENT_PS_MULTI_RESULTS | \ + CLIENT_SSL_VERIFY_SERVER_CERT | \ + CLIENT_REMEMBER_OPTIONS | \ + CLIENT_PROGRESS | \ + CLIENT_PLUGIN_AUTH) + +/* + Switch off the flags that are optional and depending on build flags + If any of the optional flags is supported by the build it will be switched + on before sending to the client during the connection handshake. +*/ +#define CLIENT_BASIC_FLAGS (((CLIENT_ALL_FLAGS & ~CLIENT_SSL) \ + & ~CLIENT_COMPRESS) \ + & ~CLIENT_SSL_VERIFY_SERVER_CERT) + +/** + Is raised when a multi-statement transaction + has been started, either explicitly, by means + of BEGIN or COMMIT AND CHAIN, or + implicitly, by the first transactional + statement, when autocommit=off. +*/ +#define SERVER_STATUS_IN_TRANS 1 +#define SERVER_STATUS_AUTOCOMMIT 2 /* Server in auto_commit mode */ +#define SERVER_MORE_RESULTS_EXISTS 8 /* Multi query - next query exists */ +#define SERVER_QUERY_NO_GOOD_INDEX_USED 16 +#define SERVER_QUERY_NO_INDEX_USED 32 +/** + The server was able to fulfill the clients request and opened a + read-only non-scrollable cursor for a query. This flag comes + in reply to COM_STMT_EXECUTE and COM_STMT_FETCH commands. +*/ +#define SERVER_STATUS_CURSOR_EXISTS 64 +/** + This flag is sent when a read-only cursor is exhausted, in reply to + COM_STMT_FETCH command. +*/ +#define SERVER_STATUS_LAST_ROW_SENT 128 +#define SERVER_STATUS_DB_DROPPED 256 /* A database was dropped */ +#define SERVER_STATUS_NO_BACKSLASH_ESCAPES 512 +/** + Sent to the client if after a prepared statement reprepare + we discovered that the new statement returns a different + number of result set columns. +*/ +#define SERVER_STATUS_METADATA_CHANGED 1024 +#define SERVER_QUERY_WAS_SLOW 2048 + +/** + To mark ResultSet containing output parameter values. +*/ +#define SERVER_PS_OUT_PARAMS 4096 + +#define SERVER_STATUS_ANSI_QUOTES 32768 + +/** + Server status flags that must be cleared when starting + execution of a new SQL statement. + Flags from this set are only added to the + current server status by the execution engine, but + never removed -- the execution engine expects them + to disappear automagically by the next command. +*/ +#define SERVER_STATUS_CLEAR_SET (SERVER_QUERY_NO_GOOD_INDEX_USED| \ + SERVER_QUERY_NO_INDEX_USED|\ + SERVER_MORE_RESULTS_EXISTS|\ + SERVER_STATUS_METADATA_CHANGED |\ + SERVER_QUERY_WAS_SLOW |\ + SERVER_STATUS_DB_DROPPED |\ + SERVER_STATUS_CURSOR_EXISTS|\ + SERVER_STATUS_LAST_ROW_SENT) + +#define MYSQL_ERRMSG_SIZE 512 +#define NET_READ_TIMEOUT 30 /* Timeout on read */ +#define NET_WRITE_TIMEOUT 60 /* Timeout on write */ +#define NET_WAIT_TIMEOUT 8*60*60 /* Wait for new query */ + +#define ONLY_KILL_QUERY 1 + + +struct st_vio; /* Only C */ +typedef struct st_vio Vio; + +#define MAX_TINYINT_WIDTH 3 /* Max width for a TINY w.o. sign */ +#define MAX_SMALLINT_WIDTH 5 /* Max width for a SHORT w.o. sign */ +#define MAX_MEDIUMINT_WIDTH 8 /* Max width for a INT24 w.o. sign */ +#define MAX_INT_WIDTH 10 /* Max width for a LONG w.o. sign */ +#define MAX_BIGINT_WIDTH 20 /* Max width for a LONGLONG */ +#define MAX_CHAR_WIDTH 255 /* Max length for a CHAR colum */ +#define MAX_BLOB_WIDTH 16777216 /* Default width for blob */ + +typedef struct st_net { +#if !defined(CHECK_EMBEDDED_DIFFERENCES) || !defined(EMBEDDED_LIBRARY) + Vio *vio; + unsigned char *buff,*buff_end,*write_pos,*read_pos; + my_socket fd; /* For Perl DBI/dbd */ + /* + The following variable is set if we are doing several queries in one + command ( as in LOAD TABLE ... FROM MASTER ), + and do not want to confuse the client with OK at the wrong time + */ + unsigned long remain_in_buf,length, buf_length, where_b; + unsigned long max_packet,max_packet_size; + unsigned int pkt_nr,compress_pkt_nr; + unsigned int write_timeout, read_timeout, retry_count; + int fcntl; + unsigned int *return_status; + unsigned char reading_or_writing; + char save_char; + char net_skip_rest_factor; + my_bool unused1; /* Please remove with the next incompatible ABI change */ + my_bool compress; + my_bool unused3; /* Please remove with the next incompatible ABI change. */ + /* + Pointer to query object in query cache, do not equal NULL (0) for + queries in cache that have not stored its results yet + */ +#endif + /* + Unused, please remove with the next incompatible ABI change. + */ + unsigned char *unused; + unsigned int last_errno; + unsigned char error; + my_bool unused4; /* Please remove with the next incompatible ABI change. */ + my_bool unused5; /* Please remove with the next incompatible ABI change. */ + /** Client library error message buffer. Actually belongs to struct MYSQL. */ + char last_error[MYSQL_ERRMSG_SIZE]; + /** Client library sqlstate buffer. Set along with the error message. */ + char sqlstate[SQLSTATE_LENGTH+1]; + void *extension; +} NET; + + +#define packet_error (~(unsigned long) 0) + +enum enum_field_types { MYSQL_TYPE_DECIMAL, MYSQL_TYPE_TINY, + MYSQL_TYPE_SHORT, MYSQL_TYPE_LONG, + MYSQL_TYPE_FLOAT, MYSQL_TYPE_DOUBLE, + MYSQL_TYPE_NULL, MYSQL_TYPE_TIMESTAMP, + MYSQL_TYPE_LONGLONG,MYSQL_TYPE_INT24, + MYSQL_TYPE_DATE, MYSQL_TYPE_TIME, + MYSQL_TYPE_DATETIME, MYSQL_TYPE_YEAR, + MYSQL_TYPE_NEWDATE, MYSQL_TYPE_VARCHAR, + MYSQL_TYPE_BIT, + MYSQL_TYPE_NEWDECIMAL=246, + MYSQL_TYPE_ENUM=247, + MYSQL_TYPE_SET=248, + MYSQL_TYPE_TINY_BLOB=249, + MYSQL_TYPE_MEDIUM_BLOB=250, + MYSQL_TYPE_LONG_BLOB=251, + MYSQL_TYPE_BLOB=252, + MYSQL_TYPE_VAR_STRING=253, + MYSQL_TYPE_STRING=254, + MYSQL_TYPE_GEOMETRY=255 + +}; + +/* For backward compatibility */ +#define CLIENT_MULTI_QUERIES CLIENT_MULTI_STATEMENTS +#define FIELD_TYPE_DECIMAL MYSQL_TYPE_DECIMAL +#define FIELD_TYPE_NEWDECIMAL MYSQL_TYPE_NEWDECIMAL +#define FIELD_TYPE_TINY MYSQL_TYPE_TINY +#define FIELD_TYPE_SHORT MYSQL_TYPE_SHORT +#define FIELD_TYPE_LONG MYSQL_TYPE_LONG +#define FIELD_TYPE_FLOAT MYSQL_TYPE_FLOAT +#define FIELD_TYPE_DOUBLE MYSQL_TYPE_DOUBLE +#define FIELD_TYPE_NULL MYSQL_TYPE_NULL +#define FIELD_TYPE_TIMESTAMP MYSQL_TYPE_TIMESTAMP +#define FIELD_TYPE_LONGLONG MYSQL_TYPE_LONGLONG +#define FIELD_TYPE_INT24 MYSQL_TYPE_INT24 +#define FIELD_TYPE_DATE MYSQL_TYPE_DATE +#define FIELD_TYPE_TIME MYSQL_TYPE_TIME +#define FIELD_TYPE_DATETIME MYSQL_TYPE_DATETIME +#define FIELD_TYPE_YEAR MYSQL_TYPE_YEAR +#define FIELD_TYPE_NEWDATE MYSQL_TYPE_NEWDATE +#define FIELD_TYPE_ENUM MYSQL_TYPE_ENUM +#define FIELD_TYPE_SET MYSQL_TYPE_SET +#define FIELD_TYPE_TINY_BLOB MYSQL_TYPE_TINY_BLOB +#define FIELD_TYPE_MEDIUM_BLOB MYSQL_TYPE_MEDIUM_BLOB +#define FIELD_TYPE_LONG_BLOB MYSQL_TYPE_LONG_BLOB +#define FIELD_TYPE_BLOB MYSQL_TYPE_BLOB +#define FIELD_TYPE_VAR_STRING MYSQL_TYPE_VAR_STRING +#define FIELD_TYPE_STRING MYSQL_TYPE_STRING +#define FIELD_TYPE_CHAR MYSQL_TYPE_TINY +#define FIELD_TYPE_INTERVAL MYSQL_TYPE_ENUM +#define FIELD_TYPE_GEOMETRY MYSQL_TYPE_GEOMETRY +#define FIELD_TYPE_BIT MYSQL_TYPE_BIT + + +/* Shutdown/kill enums and constants */ + +/* Bits for THD::killable. */ +#define MYSQL_SHUTDOWN_KILLABLE_CONNECT (unsigned char)(1 << 0) +#define MYSQL_SHUTDOWN_KILLABLE_TRANS (unsigned char)(1 << 1) +#define MYSQL_SHUTDOWN_KILLABLE_LOCK_TABLE (unsigned char)(1 << 2) +#define MYSQL_SHUTDOWN_KILLABLE_UPDATE (unsigned char)(1 << 3) + +enum mysql_enum_shutdown_level { + /* + We want levels to be in growing order of hardness (because we use number + comparisons). Note that DEFAULT does not respect the growing property, but + it's ok. + */ + SHUTDOWN_DEFAULT = 0, + /* wait for existing connections to finish */ + SHUTDOWN_WAIT_CONNECTIONS= MYSQL_SHUTDOWN_KILLABLE_CONNECT, + /* wait for existing trans to finish */ + SHUTDOWN_WAIT_TRANSACTIONS= MYSQL_SHUTDOWN_KILLABLE_TRANS, + /* wait for existing updates to finish (=> no partial MyISAM update) */ + SHUTDOWN_WAIT_UPDATES= MYSQL_SHUTDOWN_KILLABLE_UPDATE, + /* flush InnoDB buffers and other storage engines' buffers*/ + SHUTDOWN_WAIT_ALL_BUFFERS= (MYSQL_SHUTDOWN_KILLABLE_UPDATE << 1), + /* don't flush InnoDB buffers, flush other storage engines' buffers*/ + SHUTDOWN_WAIT_CRITICAL_BUFFERS= (MYSQL_SHUTDOWN_KILLABLE_UPDATE << 1) + 1 +}; + +/* Compatibility */ +#if !defined(MYSQL_SERVER) && defined(USE_OLD_FUNCTIONS) +#define KILL_QUERY SHUTDOWN_KILL_QUERY +#define KILL_CONNECTION SHUTDOWN_KILL_CONNECTION +#endif + +enum enum_cursor_type +{ + CURSOR_TYPE_NO_CURSOR= 0, + CURSOR_TYPE_READ_ONLY= 1, + CURSOR_TYPE_FOR_UPDATE= 2, + CURSOR_TYPE_SCROLLABLE= 4 +}; + + +/* options for mysql_set_option */ +enum enum_mysql_set_option +{ + MYSQL_OPTION_MULTI_STATEMENTS_ON, + MYSQL_OPTION_MULTI_STATEMENTS_OFF +}; + +#define net_new_transaction(net) ((net)->pkt_nr=0) + +#ifdef __cplusplus +extern "C" { +#endif + +my_bool my_net_init(NET *net, Vio* vio); +void my_net_local_init(NET *net); +void net_end(NET *net); + void net_clear(NET *net, my_bool clear_buffer); +my_bool net_realloc(NET *net, size_t length); +my_bool net_flush(NET *net); +my_bool my_net_write(NET *net,const unsigned char *packet, size_t len); +my_bool net_write_command(NET *net,unsigned char command, + const unsigned char *header, size_t head_len, + const unsigned char *packet, size_t len); +int net_real_write(NET *net,const unsigned char *packet, size_t len); +unsigned long my_net_read(NET *net); + +#ifdef _global_h +void my_net_set_write_timeout(NET *net, uint timeout); +void my_net_set_read_timeout(NET *net, uint timeout); +#endif + +struct sockaddr; +int my_connect(my_socket s, const struct sockaddr *name, unsigned int namelen, + unsigned int timeout); +struct my_rnd_struct; + +#ifdef __cplusplus +} +#endif + + /* The following is for user defined functions */ + +enum Item_result +{ + STRING_RESULT=0, REAL_RESULT, INT_RESULT, ROW_RESULT, DECIMAL_RESULT, + TIME_RESULT,IMPOSSIBLE_RESULT +}; + +typedef struct st_udf_args +{ + unsigned int arg_count; /* Number of arguments */ + enum Item_result *arg_type; /* Pointer to item_results */ + char **args; /* Pointer to argument */ + unsigned long *lengths; /* Length of string arguments */ + char *maybe_null; /* Set to 1 for all maybe_null args */ + char **attributes; /* Pointer to attribute name */ + unsigned long *attribute_lengths; /* Length of attribute arguments */ + void *extension; +} UDF_ARGS; + + /* This holds information about the result */ + +typedef struct st_udf_init +{ + my_bool maybe_null; /* 1 if function can return NULL */ + unsigned int decimals; /* for real functions */ + unsigned long max_length; /* For string functions */ + char *ptr; /* free pointer for function data */ + my_bool const_item; /* 1 if function always returns the same value */ + void *extension; +} UDF_INIT; +/* + TODO: add a notion for determinism of the UDF. + See Item_udf_func::update_used_tables () +*/ + + /* Constants when using compression */ +#define NET_HEADER_SIZE 4 /* standard header size */ +#define COMP_HEADER_SIZE 3 /* compression header extra size */ + + /* Prototypes to password functions */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + These functions are used for authentication by client and server and + implemented in sql/password.c +*/ + +void create_random_string(char *to, unsigned int length, + struct my_rnd_struct *rand_st); + +void hash_password(unsigned long *to, const char *password, unsigned int password_len); +void make_scrambled_password_323(char *to, const char *password); +void scramble_323(char *to, const char *message, const char *password); +my_bool check_scramble_323(const unsigned char *reply, const char *message, + unsigned long *salt); +void get_salt_from_password_323(unsigned long *res, const char *password); +void make_password_from_salt_323(char *to, const unsigned long *salt); + +void make_scrambled_password(char *to, const char *password); +void scramble(char *to, const char *message, const char *password); +my_bool check_scramble(const unsigned char *reply, const char *message, + const unsigned char *hash_stage2); +void get_salt_from_password(unsigned char *res, const char *password); +void make_password_from_salt(char *to, const unsigned char *hash_stage2); +char *octet2hex(char *to, const char *str, unsigned int len); + +/* end of password.c */ + +char *get_tty_password(const char *opt_message); +void get_tty_password_buff(const char *opt_message, char *to, size_t length); +const char *mysql_errno_to_sqlstate(unsigned int mysql_errno); + +/* Some other useful functions */ + +my_bool my_thread_init(void); +void my_thread_end(void); + +#ifdef _global_h +ulong STDCALL net_field_length(uchar **packet); +my_ulonglong net_field_length_ll(uchar **packet); +uchar *net_store_length(uchar *pkg, ulonglong length); +#endif + +#ifdef __cplusplus +} +#endif + +#define NULL_LENGTH ((unsigned long) ~0) /* For net_store_length */ +#define MYSQL_STMT_HEADER 4 +#define MYSQL_LONG_DATA_HEADER 6 + +#define NOT_FIXED_DEC 31 +#endif diff --git a/database/include/mysql/mysql_embed.h b/database/include/mysql/mysql_embed.h new file mode 100644 index 0000000..e9cbdb6 --- /dev/null +++ b/database/include/mysql/mysql_embed.h @@ -0,0 +1,31 @@ +#ifndef MYSQL_EMBED_INCLUDED +#define MYSQL_EMBED_INCLUDED + +/* + Copyright (c) 2000, 2011, Oracle and/or its affiliates. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* Defines that are unique to the embedded version of MySQL */ + +#ifdef EMBEDDED_LIBRARY + +/* Things we don't need in the embedded version of MySQL */ +/* TODO HF add #undef HAVE_VIO if we don't want client in embedded library */ + +#undef HAVE_DLOPEN /* No udf functions */ +#undef HAVE_SMEM /* No shared memory */ + +#endif /* EMBEDDED_LIBRARY */ +#endif /* MYSQL_EMBED_INCLUDED */ diff --git a/database/include/mysql/mysql_time.h b/database/include/mysql/mysql_time.h new file mode 100644 index 0000000..379a8fa --- /dev/null +++ b/database/include/mysql/mysql_time.h @@ -0,0 +1,56 @@ +/* Copyright (c) 2004, 2006 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef _mysql_time_h_ +#define _mysql_time_h_ + +/* + Time declarations shared between the server and client API: + you should not add anything to this header unless it's used + (and hence should be visible) in mysql.h. + If you're looking for a place to add new time-related declaration, + it's most likely my_time.h. See also "C API Handling of Date + and Time Values" chapter in documentation. +*/ + +enum enum_mysql_timestamp_type +{ + MYSQL_TIMESTAMP_NONE= -2, MYSQL_TIMESTAMP_ERROR= -1, + MYSQL_TIMESTAMP_DATE= 0, MYSQL_TIMESTAMP_DATETIME= 1, MYSQL_TIMESTAMP_TIME= 2 +}; + + +/* + Structure which is used to represent datetime values inside MySQL. + + We assume that values in this structure are normalized, i.e. year <= 9999, + month <= 12, day <= 31, hour <= 23, hour <= 59, hour <= 59. Many functions + in server such as my_system_gmt_sec() or make_time() family of functions + rely on this (actually now usage of make_*() family relies on a bit weaker + restriction). Also functions that produce MYSQL_TIME as result ensure this. + There is one exception to this rule though if this structure holds time + value (time_type == MYSQL_TIMESTAMP_TIME) days and hour member can hold + bigger values. +*/ +typedef struct st_mysql_time +{ + unsigned int year, month, day, hour, minute, second; + unsigned long second_part; + my_bool neg; + enum enum_mysql_timestamp_type time_type; +} MYSQL_TIME; + +#endif /* _mysql_time_h_ */ diff --git a/database/include/mysql/mysql_version.h b/database/include/mysql/mysql_version.h new file mode 100644 index 0000000..bf84024 --- /dev/null +++ b/database/include/mysql/mysql_version.h @@ -0,0 +1,33 @@ +/* Copyright Abandoned 1996,1999 TCX DataKonsult AB & Monty Program KB + & Detron HB, 1996, 1999-2004, 2007 MySQL AB. + This file is public domain and comes with NO WARRANTY of any kind +*/ + +/* Version numbers for protocol & mysqld */ + +#ifndef _mysql_version_h +#define _mysql_version_h +#ifdef _CUSTOMCONFIG_ +#include +#else +#define PROTOCOL_VERSION 10 +#define MYSQL_SERVER_VERSION "5.5.68-MariaDB" +#define MYSQL_BASE_VERSION "mysqld-5.5" +#define MARIADB_BASE_VERSION "mariadb-5.5" +#define MYSQL_SERVER_SUFFIX_DEF "" +#define FRM_VER 6 +#define MYSQL_VERSION_ID 50568 +#define MYSQL_PORT 3306 +#define MYSQL_PORT_DEFAULT 0 +#define MYSQL_UNIX_ADDR "/tmp/mysql.sock" +#define MYSQL_CONFIG_NAME "my" +#define MYSQL_COMPILATION_COMMENT "MariaDB Server" + +/* mysqld compile time options */ +#endif /* _CUSTOMCONFIG_ */ + +#ifndef LICENSE +#define LICENSE GPL +#endif /* LICENSE */ + +#endif /* _mysql_version_h */ diff --git a/database/include/mysql/mysqld_ername.h b/database/include/mysql/mysqld_ername.h new file mode 100644 index 0000000..5cb7aae --- /dev/null +++ b/database/include/mysql/mysqld_ername.h @@ -0,0 +1,764 @@ +/* Autogenerated file, please don't edit */ + +{ "ER_HASHCHK", 1000, "hashchk" }, +{ "ER_NISAMCHK", 1001, "isamchk" }, +{ "ER_NO", 1002, "NO" }, +{ "ER_YES", 1003, "YES" }, +{ "ER_CANT_CREATE_FILE", 1004, "Can\'t create file \'%-.200s\' (errno: %d)" }, +{ "ER_CANT_CREATE_TABLE", 1005, "Can\'t create table \'%-.200s\' (errno: %d)" }, +{ "ER_CANT_CREATE_DB", 1006, "Can\'t create database \'%-.192s\' (errno: %d)" }, +{ "ER_DB_CREATE_EXISTS", 1007, "Can\'t create database \'%-.192s\'; database exists" }, +{ "ER_DB_DROP_EXISTS", 1008, "Can\'t drop database \'%-.192s\'; database doesn\'t exist" }, +{ "ER_DB_DROP_DELETE", 1009, "Error dropping database (can\'t delete \'%-.192s\', errno: %d)" }, +{ "ER_DB_DROP_RMDIR", 1010, "Error dropping database (can\'t rmdir \'%-.192s\', errno: %d)" }, +{ "ER_CANT_DELETE_FILE", 1011, "Error on delete of \'%-.192s\' (errno: %d)" }, +{ "ER_CANT_FIND_SYSTEM_REC", 1012, "Can\'t read record in system table" }, +{ "ER_CANT_GET_STAT", 1013, "Can\'t get status of \'%-.200s\' (errno: %d)" }, +{ "ER_CANT_GET_WD", 1014, "Can\'t get working directory (errno: %d)" }, +{ "ER_CANT_LOCK", 1015, "Can\'t lock file (errno: %d)" }, +{ "ER_CANT_OPEN_FILE", 1016, "Can\'t open file: \'%-.200s\' (errno: %d)" }, +{ "ER_FILE_NOT_FOUND", 1017, "Can\'t find file: \'%-.200s\' (errno: %d)" }, +{ "ER_CANT_READ_DIR", 1018, "Can\'t read dir of \'%-.192s\' (errno: %d)" }, +{ "ER_CANT_SET_WD", 1019, "Can\'t change dir to \'%-.192s\' (errno: %d)" }, +{ "ER_CHECKREAD", 1020, "Record has changed since last read in table \'%-.192s\'" }, +{ "ER_DISK_FULL", 1021, "Disk full (%s); waiting for someone to free some space..." }, +{ "ER_DUP_KEY", 1022, "Can\'t write; duplicate key in table \'%-.192s\'" }, +{ "ER_ERROR_ON_CLOSE", 1023, "Error on close of \'%-.192s\' (errno: %d)" }, +{ "ER_ERROR_ON_READ", 1024, "Error reading file \'%-.200s\' (errno: %d)" }, +{ "ER_ERROR_ON_RENAME", 1025, "Error on rename of \'%-.210s\' to \'%-.210s\' (errno: %d)" }, +{ "ER_ERROR_ON_WRITE", 1026, "Error writing file \'%-.200s\' (errno: %d)" }, +{ "ER_FILE_USED", 1027, "\'%-.192s\' is locked against change" }, +{ "ER_FILSORT_ABORT", 1028, "Sort aborted" }, +{ "ER_FORM_NOT_FOUND", 1029, "View \'%-.192s\' doesn\'t exist for \'%-.192s\'" }, +{ "ER_GET_ERRNO", 1030, "Got error %d from storage engine" }, +{ "ER_ILLEGAL_HA", 1031, "Table storage engine for \'%-.192s\' doesn\'t have this option" }, +{ "ER_KEY_NOT_FOUND", 1032, "Can\'t find record in \'%-.192s\'" }, +{ "ER_NOT_FORM_FILE", 1033, "Incorrect information in file: \'%-.200s\'" }, +{ "ER_NOT_KEYFILE", 1034, "Incorrect key file for table \'%-.200s\'; try to repair it" }, +{ "ER_OLD_KEYFILE", 1035, "Old key file for table \'%-.192s\'; repair it!" }, +{ "ER_OPEN_AS_READONLY", 1036, "Table \'%-.192s\' is read only" }, +{ "ER_OUTOFMEMORY", 1037, "Out of memory; restart server and try again (needed %d bytes)" }, +{ "ER_OUT_OF_SORTMEMORY", 1038, "Out of sort memory, consider increasing server sort buffer size" }, +{ "ER_UNEXPECTED_EOF", 1039, "Unexpected EOF found when reading file \'%-.192s\' (errno: %d)" }, +{ "ER_CON_COUNT_ERROR", 1040, "Too many connections" }, +{ "ER_OUT_OF_RESOURCES", 1041, "Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use \'ulimit\' to allow mysqld to use more memory or you can add more swap space" }, +{ "ER_BAD_HOST_ERROR", 1042, "Can\'t get hostname for your address" }, +{ "ER_HANDSHAKE_ERROR", 1043, "Bad handshake" }, +{ "ER_DBACCESS_DENIED_ERROR", 1044, "Access denied for user \'%s\'@\'%s\' to database \'%-.192s\'" }, +{ "ER_ACCESS_DENIED_ERROR", 1045, "Access denied for user \'%s\'@\'%s\' (using password: %s)" }, +{ "ER_NO_DB_ERROR", 1046, "No database selected" }, +{ "ER_UNKNOWN_COM_ERROR", 1047, "Unknown command" }, +{ "ER_BAD_NULL_ERROR", 1048, "Column \'%-.192s\' cannot be null" }, +{ "ER_BAD_DB_ERROR", 1049, "Unknown database \'%-.192s\'" }, +{ "ER_TABLE_EXISTS_ERROR", 1050, "Table \'%-.192s\' already exists" }, +{ "ER_BAD_TABLE_ERROR", 1051, "Unknown table \'%-.100s\'" }, +{ "ER_NON_UNIQ_ERROR", 1052, "Column \'%-.192s\' in %-.192s is ambiguous" }, +{ "ER_SERVER_SHUTDOWN", 1053, "Server shutdown in progress" }, +{ "ER_BAD_FIELD_ERROR", 1054, "Unknown column \'%-.192s\' in \'%-.192s\'" }, +{ "ER_WRONG_FIELD_WITH_GROUP", 1055, "\'%-.192s\' isn\'t in GROUP BY" }, +{ "ER_WRONG_GROUP_FIELD", 1056, "Can\'t group on \'%-.192s\'" }, +{ "ER_WRONG_SUM_SELECT", 1057, "Statement has sum functions and columns in same statement" }, +{ "ER_WRONG_VALUE_COUNT", 1058, "Column count doesn\'t match value count" }, +{ "ER_TOO_LONG_IDENT", 1059, "Identifier name \'%-.100s\' is too long" }, +{ "ER_DUP_FIELDNAME", 1060, "Duplicate column name \'%-.192s\'" }, +{ "ER_DUP_KEYNAME", 1061, "Duplicate key name \'%-.192s\'" }, +{ "ER_DUP_ENTRY", 1062, "Duplicate entry \'%-.192s\' for key %d" }, +{ "ER_WRONG_FIELD_SPEC", 1063, "Incorrect column specifier for column \'%-.192s\'" }, +{ "ER_PARSE_ERROR", 1064, "%s near \'%-.80s\' at line %d" }, +{ "ER_EMPTY_QUERY", 1065, "Query was empty" }, +{ "ER_NONUNIQ_TABLE", 1066, "Not unique table/alias: \'%-.192s\'" }, +{ "ER_INVALID_DEFAULT", 1067, "Invalid default value for \'%-.192s\'" }, +{ "ER_MULTIPLE_PRI_KEY", 1068, "Multiple primary key defined" }, +{ "ER_TOO_MANY_KEYS", 1069, "Too many keys specified; max %d keys allowed" }, +{ "ER_TOO_MANY_KEY_PARTS", 1070, "Too many key parts specified; max %d parts allowed" }, +{ "ER_TOO_LONG_KEY", 1071, "Specified key was too long; max key length is %d bytes" }, +{ "ER_KEY_COLUMN_DOES_NOT_EXITS", 1072, "Key column \'%-.192s\' doesn\'t exist in table" }, +{ "ER_BLOB_USED_AS_KEY", 1073, "BLOB column \'%-.192s\' can\'t be used in key specification with the used table type" }, +{ "ER_TOO_BIG_FIELDLENGTH", 1074, "Column length too big for column \'%-.192s\' (max = %lu); use BLOB or TEXT instead" }, +{ "ER_WRONG_AUTO_KEY", 1075, "Incorrect table definition; there can be only one auto column and it must be defined as a key" }, +{ "ER_UNUSED_2", 1076, "You should never see it" }, +{ "ER_NORMAL_SHUTDOWN", 1077, "%s: Normal shutdown" }, +{ "ER_GOT_SIGNAL", 1078, "%s: Got signal %d. Aborting!\n" }, +{ "ER_SHUTDOWN_COMPLETE", 1079, "%s: Shutdown complete\n" }, +{ "ER_FORCING_CLOSE", 1080, "%s: Forcing close of thread %ld user: \'%-.48s\'\n" }, +{ "ER_IPSOCK_ERROR", 1081, "Can\'t create IP socket" }, +{ "ER_NO_SUCH_INDEX", 1082, "Table \'%-.192s\' has no index like the one used in CREATE INDEX; recreate the table" }, +{ "ER_WRONG_FIELD_TERMINATORS", 1083, "Field separator argument is not what is expected; check the manual" }, +{ "ER_BLOBS_AND_NO_TERMINATED", 1084, "You can\'t use fixed rowlength with BLOBs; please use \'fields terminated by\'" }, +{ "ER_TEXTFILE_NOT_READABLE", 1085, "The file \'%-.128s\' must be in the database directory or be readable by all" }, +{ "ER_FILE_EXISTS_ERROR", 1086, "File \'%-.200s\' already exists" }, +{ "ER_LOAD_INFO", 1087, "Records: %ld Deleted: %ld Skipped: %ld Warnings: %ld" }, +{ "ER_ALTER_INFO", 1088, "Records: %ld Duplicates: %ld" }, +{ "ER_WRONG_SUB_KEY", 1089, "Incorrect prefix key; the used key part isn\'t a string, the used length is longer than the key part, or the storage engine doesn\'t support unique prefix keys" }, +{ "ER_CANT_REMOVE_ALL_FIELDS", 1090, "You can\'t delete all columns with ALTER TABLE; use DROP TABLE instead" }, +{ "ER_CANT_DROP_FIELD_OR_KEY", 1091, "Can\'t DROP \'%-.192s\'; check that column/key exists" }, +{ "ER_INSERT_INFO", 1092, "Records: %ld Duplicates: %ld Warnings: %ld" }, +{ "ER_UPDATE_TABLE_USED", 1093, "You can\'t specify target table \'%-.192s\' for update in FROM clause" }, +{ "ER_NO_SUCH_THREAD", 1094, "Unknown thread id: %lu" }, +{ "ER_KILL_DENIED_ERROR", 1095, "You are not owner of thread %lu" }, +{ "ER_NO_TABLES_USED", 1096, "No tables used" }, +{ "ER_TOO_BIG_SET", 1097, "Too many strings for column %-.192s and SET" }, +{ "ER_NO_UNIQUE_LOGFILE", 1098, "Can\'t generate a unique log-filename %-.200s.(1-999)\n" }, +{ "ER_TABLE_NOT_LOCKED_FOR_WRITE", 1099, "Table \'%-.192s\' was locked with a READ lock and can\'t be updated" }, +{ "ER_TABLE_NOT_LOCKED", 1100, "Table \'%-.192s\' was not locked with LOCK TABLES" }, +{ "ER_BLOB_CANT_HAVE_DEFAULT", 1101, "BLOB/TEXT column \'%-.192s\' can\'t have a default value" }, +{ "ER_WRONG_DB_NAME", 1102, "Incorrect database name \'%-.100s\'" }, +{ "ER_WRONG_TABLE_NAME", 1103, "Incorrect table name \'%-.100s\'" }, +{ "ER_TOO_BIG_SELECT", 1104, "The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay" }, +{ "ER_UNKNOWN_ERROR", 1105, "Unknown error" }, +{ "ER_UNKNOWN_PROCEDURE", 1106, "Unknown procedure \'%-.192s\'" }, +{ "ER_WRONG_PARAMCOUNT_TO_PROCEDURE", 1107, "Incorrect parameter count to procedure \'%-.192s\'" }, +{ "ER_WRONG_PARAMETERS_TO_PROCEDURE", 1108, "Incorrect parameters to procedure \'%-.192s\'" }, +{ "ER_UNKNOWN_TABLE", 1109, "Unknown table \'%-.192s\' in %-.32s" }, +{ "ER_FIELD_SPECIFIED_TWICE", 1110, "Column \'%-.192s\' specified twice" }, +{ "ER_INVALID_GROUP_FUNC_USE", 1111, "Invalid use of group function" }, +{ "ER_UNSUPPORTED_EXTENSION", 1112, "Table \'%-.192s\' uses an extension that doesn\'t exist in this MariaDB version" }, +{ "ER_TABLE_MUST_HAVE_COLUMNS", 1113, "A table must have at least 1 column" }, +{ "ER_RECORD_FILE_FULL", 1114, "The table \'%-.192s\' is full" }, +{ "ER_UNKNOWN_CHARACTER_SET", 1115, "Unknown character set: \'%-.64s\'" }, +{ "ER_TOO_MANY_TABLES", 1116, "Too many tables; MariaDB can only use %d tables in a join" }, +{ "ER_TOO_MANY_FIELDS", 1117, "Too many columns" }, +{ "ER_TOO_BIG_ROWSIZE", 1118, "Row size too large. The maximum row size for the used table type, not counting BLOBs, is %ld. You have to change some columns to TEXT or BLOBs" }, +{ "ER_STACK_OVERRUN", 1119, "Thread stack overrun: Used: %ld of a %ld stack. Use \'mysqld --thread_stack=#\' to specify a bigger stack if needed" }, +{ "ER_WRONG_OUTER_JOIN", 1120, "Cross dependency found in OUTER JOIN; examine your ON conditions" }, +{ "ER_NULL_COLUMN_IN_INDEX", 1121, "Table handler doesn\'t support NULL in given index. Please change column \'%-.192s\' to be NOT NULL or use another handler" }, +{ "ER_CANT_FIND_UDF", 1122, "Can\'t load function \'%-.192s\'" }, +{ "ER_CANT_INITIALIZE_UDF", 1123, "Can\'t initialize function \'%-.192s\'; %-.80s" }, +{ "ER_UDF_NO_PATHS", 1124, "No paths allowed for shared library" }, +{ "ER_UDF_EXISTS", 1125, "Function \'%-.192s\' already exists" }, +{ "ER_CANT_OPEN_LIBRARY", 1126, "Can\'t open shared library \'%-.192s\' (errno: %d, %-.128s)" }, +{ "ER_CANT_FIND_DL_ENTRY", 1127, "Can\'t find symbol \'%-.128s\' in library" }, +{ "ER_FUNCTION_NOT_DEFINED", 1128, "Function \'%-.192s\' is not defined" }, +{ "ER_HOST_IS_BLOCKED", 1129, "Host \'%-.64s\' is blocked because of many connection errors; unblock with \'mysqladmin flush-hosts\'" }, +{ "ER_HOST_NOT_PRIVILEGED", 1130, "Host \'%-.64s\' is not allowed to connect to this MariaDB server" }, +{ "ER_PASSWORD_ANONYMOUS_USER", 1131, "You are using MariaDB as an anonymous user and anonymous users are not allowed to change passwords" }, +{ "ER_PASSWORD_NOT_ALLOWED", 1132, "You must have privileges to update tables in the mysql database to be able to change passwords for others" }, +{ "ER_PASSWORD_NO_MATCH", 1133, "Can\'t find any matching row in the user table" }, +{ "ER_UPDATE_INFO", 1134, "Rows matched: %ld Changed: %ld Warnings: %ld" }, +{ "ER_CANT_CREATE_THREAD", 1135, "Can\'t create a new thread (errno %d); if you are not out of available memory, you can consult the manual for a possible OS-dependent bug" }, +{ "ER_WRONG_VALUE_COUNT_ON_ROW", 1136, "Column count doesn\'t match value count at row %lu" }, +{ "ER_CANT_REOPEN_TABLE", 1137, "Can\'t reopen table: \'%-.192s\'" }, +{ "ER_INVALID_USE_OF_NULL", 1138, "Invalid use of NULL value" }, +{ "ER_REGEXP_ERROR", 1139, "Got error \'%-.64s\' from regexp" }, +{ "ER_MIX_OF_GROUP_FUNC_AND_FIELDS", 1140, "Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause" }, +{ "ER_NONEXISTING_GRANT", 1141, "There is no such grant defined for user \'%-.48s\' on host \'%-.64s\'" }, +{ "ER_TABLEACCESS_DENIED_ERROR", 1142, "%-.16s command denied to user \'%s\'@\'%s\' for table \'%-.192s\'" }, +{ "ER_COLUMNACCESS_DENIED_ERROR", 1143, "%-.16s command denied to user \'%s\'@\'%s\' for column \'%-.192s\' in table \'%-.192s\'" }, +{ "ER_ILLEGAL_GRANT_FOR_TABLE", 1144, "Illegal GRANT/REVOKE command; please consult the manual to see which privileges can be used" }, +{ "ER_GRANT_WRONG_HOST_OR_USER", 1145, "The host or user argument to GRANT is too long" }, +{ "ER_NO_SUCH_TABLE", 1146, "Table \'%-.192s.%-.192s\' doesn\'t exist" }, +{ "ER_NONEXISTING_TABLE_GRANT", 1147, "There is no such grant defined for user \'%-.48s\' on host \'%-.64s\' on table \'%-.192s\'" }, +{ "ER_NOT_ALLOWED_COMMAND", 1148, "The used command is not allowed with this MariaDB version" }, +{ "ER_SYNTAX_ERROR", 1149, "You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use" }, +{ "ER_DELAYED_CANT_CHANGE_LOCK", 1150, "Delayed insert thread couldn\'t get requested lock for table %-.192s" }, +{ "ER_TOO_MANY_DELAYED_THREADS", 1151, "Too many delayed threads in use" }, +{ "ER_ABORTING_CONNECTION", 1152, "Aborted connection %ld to db: \'%-.192s\' user: \'%-.48s\' (%-.64s)" }, +{ "ER_NET_PACKET_TOO_LARGE", 1153, "Got a packet bigger than \'max_allowed_packet\' bytes" }, +{ "ER_NET_READ_ERROR_FROM_PIPE", 1154, "Got a read error from the connection pipe" }, +{ "ER_NET_FCNTL_ERROR", 1155, "Got an error from fcntl()" }, +{ "ER_NET_PACKETS_OUT_OF_ORDER", 1156, "Got packets out of order" }, +{ "ER_NET_UNCOMPRESS_ERROR", 1157, "Couldn\'t uncompress communication packet" }, +{ "ER_NET_READ_ERROR", 1158, "Got an error reading communication packets" }, +{ "ER_NET_READ_INTERRUPTED", 1159, "Got timeout reading communication packets" }, +{ "ER_NET_ERROR_ON_WRITE", 1160, "Got an error writing communication packets" }, +{ "ER_NET_WRITE_INTERRUPTED", 1161, "Got timeout writing communication packets" }, +{ "ER_TOO_LONG_STRING", 1162, "Result string is longer than \'max_allowed_packet\' bytes" }, +{ "ER_TABLE_CANT_HANDLE_BLOB", 1163, "The used table type doesn\'t support BLOB/TEXT columns" }, +{ "ER_TABLE_CANT_HANDLE_AUTO_INCREMENT", 1164, "The used table type doesn\'t support AUTO_INCREMENT columns" }, +{ "ER_DELAYED_INSERT_TABLE_LOCKED", 1165, "INSERT DELAYED can\'t be used with table \'%-.192s\' because it is locked with LOCK TABLES" }, +{ "ER_WRONG_COLUMN_NAME", 1166, "Incorrect column name \'%-.100s\'" }, +{ "ER_WRONG_KEY_COLUMN", 1167, "The used storage engine can\'t index column \'%-.192s\'" }, +{ "ER_WRONG_MRG_TABLE", 1168, "Unable to open underlying table which is differently defined or of non-MyISAM type or doesn\'t exist" }, +{ "ER_DUP_UNIQUE", 1169, "Can\'t write, because of unique constraint, to table \'%-.192s\'" }, +{ "ER_BLOB_KEY_WITHOUT_LENGTH", 1170, "BLOB/TEXT column \'%-.192s\' used in key specification without a key length" }, +{ "ER_PRIMARY_CANT_HAVE_NULL", 1171, "All parts of a PRIMARY KEY must be NOT NULL; if you need NULL in a key, use UNIQUE instead" }, +{ "ER_TOO_MANY_ROWS", 1172, "Result consisted of more than one row" }, +{ "ER_REQUIRES_PRIMARY_KEY", 1173, "This table type requires a primary key" }, +{ "ER_NO_RAID_COMPILED", 1174, "This version of MariaDB is not compiled with RAID support" }, +{ "ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE", 1175, "You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column" }, +{ "ER_KEY_DOES_NOT_EXITS", 1176, "Key \'%-.192s\' doesn\'t exist in table \'%-.192s\'" }, +{ "ER_CHECK_NO_SUCH_TABLE", 1177, "Can\'t open table" }, +{ "ER_CHECK_NOT_IMPLEMENTED", 1178, "The storage engine for the table doesn\'t support %s" }, +{ "ER_CANT_DO_THIS_DURING_AN_TRANSACTION", 1179, "You are not allowed to execute this command in a transaction" }, +{ "ER_ERROR_DURING_COMMIT", 1180, "Got error %d during COMMIT" }, +{ "ER_ERROR_DURING_ROLLBACK", 1181, "Got error %d during ROLLBACK" }, +{ "ER_ERROR_DURING_FLUSH_LOGS", 1182, "Got error %d during FLUSH_LOGS" }, +{ "ER_ERROR_DURING_CHECKPOINT", 1183, "Got error %d during CHECKPOINT" }, +{ "ER_NEW_ABORTING_CONNECTION", 1184, "Aborted connection %ld to db: \'%-.192s\' user: \'%-.48s\' host: \'%-.64s\' (%-.64s)" }, +{ "ER_DUMP_NOT_IMPLEMENTED", 1185, "The storage engine for the table does not support binary table dump" }, +{ "ER_FLUSH_MASTER_BINLOG_CLOSED", 1186, "Binlog closed, cannot RESET MASTER" }, +{ "ER_INDEX_REBUILD", 1187, "Failed rebuilding the index of dumped table \'%-.192s\'" }, +{ "ER_MASTER", 1188, "Error from master: \'%-.64s\'" }, +{ "ER_MASTER_NET_READ", 1189, "Net error reading from master" }, +{ "ER_MASTER_NET_WRITE", 1190, "Net error writing to master" }, +{ "ER_FT_MATCHING_KEY_NOT_FOUND", 1191, "Can\'t find FULLTEXT index matching the column list" }, +{ "ER_LOCK_OR_ACTIVE_TRANSACTION", 1192, "Can\'t execute the given command because you have active locked tables or an active transaction" }, +{ "ER_UNKNOWN_SYSTEM_VARIABLE", 1193, "Unknown system variable \'%-.64s\'" }, +{ "ER_CRASHED_ON_USAGE", 1194, "Table \'%-.192s\' is marked as crashed and should be repaired" }, +{ "ER_CRASHED_ON_REPAIR", 1195, "Table \'%-.192s\' is marked as crashed and last (automatic?) repair failed" }, +{ "ER_WARNING_NOT_COMPLETE_ROLLBACK", 1196, "Some non-transactional changed tables couldn\'t be rolled back" }, +{ "ER_TRANS_CACHE_FULL", 1197, "Multi-statement transaction required more than \'max_binlog_cache_size\' bytes of storage; increase this mysqld variable and try again" }, +{ "ER_SLAVE_MUST_STOP", 1198, "This operation cannot be performed with a running slave; run STOP SLAVE first" }, +{ "ER_SLAVE_NOT_RUNNING", 1199, "This operation requires a running slave; configure slave and do START SLAVE" }, +{ "ER_BAD_SLAVE", 1200, "The server is not configured as slave; fix in config file or with CHANGE MASTER TO" }, +{ "ER_MASTER_INFO", 1201, "Could not initialize master info structure; more error messages can be found in the MariaDB error log" }, +{ "ER_SLAVE_THREAD", 1202, "Could not create slave thread; check system resources" }, +{ "ER_TOO_MANY_USER_CONNECTIONS", 1203, "User %-.64s already has more than \'max_user_connections\' active connections" }, +{ "ER_SET_CONSTANTS_ONLY", 1204, "You may only use constant expressions with SET" }, +{ "ER_LOCK_WAIT_TIMEOUT", 1205, "Lock wait timeout exceeded; try restarting transaction" }, +{ "ER_LOCK_TABLE_FULL", 1206, "The total number of locks exceeds the lock table size" }, +{ "ER_READ_ONLY_TRANSACTION", 1207, "Update locks cannot be acquired during a READ UNCOMMITTED transaction" }, +{ "ER_DROP_DB_WITH_READ_LOCK", 1208, "DROP DATABASE not allowed while thread is holding global read lock" }, +{ "ER_CREATE_DB_WITH_READ_LOCK", 1209, "CREATE DATABASE not allowed while thread is holding global read lock" }, +{ "ER_WRONG_ARGUMENTS", 1210, "Incorrect arguments to %s" }, +{ "ER_NO_PERMISSION_TO_CREATE_USER", 1211, "\'%s\'@\'%s\' is not allowed to create new users" }, +{ "ER_UNION_TABLES_IN_DIFFERENT_DIR", 1212, "Incorrect table definition; all MERGE tables must be in the same database" }, +{ "ER_LOCK_DEADLOCK", 1213, "Deadlock found when trying to get lock; try restarting transaction" }, +{ "ER_TABLE_CANT_HANDLE_FT", 1214, "The used table type doesn\'t support FULLTEXT indexes" }, +{ "ER_CANNOT_ADD_FOREIGN", 1215, "Cannot add foreign key constraint" }, +{ "ER_NO_REFERENCED_ROW", 1216, "Cannot add or update a child row: a foreign key constraint fails" }, +{ "ER_ROW_IS_REFERENCED", 1217, "Cannot delete or update a parent row: a foreign key constraint fails" }, +{ "ER_CONNECT_TO_MASTER", 1218, "Error connecting to master: %-.128s" }, +{ "ER_QUERY_ON_MASTER", 1219, "Error running query on master: %-.128s" }, +{ "ER_ERROR_WHEN_EXECUTING_COMMAND", 1220, "Error when executing command %s: %-.128s" }, +{ "ER_WRONG_USAGE", 1221, "Incorrect usage of %s and %s" }, +{ "ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT", 1222, "The used SELECT statements have a different number of columns" }, +{ "ER_CANT_UPDATE_WITH_READLOCK", 1223, "Can\'t execute the query because you have a conflicting read lock" }, +{ "ER_MIXING_NOT_ALLOWED", 1224, "Mixing of transactional and non-transactional tables is disabled" }, +{ "ER_DUP_ARGUMENT", 1225, "Option \'%s\' used twice in statement" }, +{ "ER_USER_LIMIT_REACHED", 1226, "User \'%-.64s\' has exceeded the \'%s\' resource (current value: %ld)" }, +{ "ER_SPECIFIC_ACCESS_DENIED_ERROR", 1227, "Access denied; you need (at least one of) the %-.128s privilege(s) for this operation" }, +{ "ER_LOCAL_VARIABLE", 1228, "Variable \'%-.64s\' is a SESSION variable and can\'t be used with SET GLOBAL" }, +{ "ER_GLOBAL_VARIABLE", 1229, "Variable \'%-.64s\' is a GLOBAL variable and should be set with SET GLOBAL" }, +{ "ER_NO_DEFAULT", 1230, "Variable \'%-.64s\' doesn\'t have a default value" }, +{ "ER_WRONG_VALUE_FOR_VAR", 1231, "Variable \'%-.64s\' can\'t be set to the value of \'%-.200s\'" }, +{ "ER_WRONG_TYPE_FOR_VAR", 1232, "Incorrect argument type to variable \'%-.64s\'" }, +{ "ER_VAR_CANT_BE_READ", 1233, "Variable \'%-.64s\' can only be set, not read" }, +{ "ER_CANT_USE_OPTION_HERE", 1234, "Incorrect usage/placement of \'%s\'" }, +{ "ER_NOT_SUPPORTED_YET", 1235, "This version of MariaDB doesn\'t yet support \'%s\'" }, +{ "ER_MASTER_FATAL_ERROR_READING_BINLOG", 1236, "Got fatal error %d from master when reading data from binary log: \'%-.320s\'" }, +{ "ER_SLAVE_IGNORED_TABLE", 1237, "Slave SQL thread ignored the query because of replicate-*-table rules" }, +{ "ER_INCORRECT_GLOBAL_LOCAL_VAR", 1238, "Variable \'%-.192s\' is a %s variable" }, +{ "ER_WRONG_FK_DEF", 1239, "Incorrect foreign key definition for \'%-.192s\': %s" }, +{ "ER_KEY_REF_DO_NOT_MATCH_TABLE_REF", 1240, "Key reference and table reference don\'t match" }, +{ "ER_OPERAND_COLUMNS", 1241, "Operand should contain %d column(s)" }, +{ "ER_SUBQUERY_NO_1_ROW", 1242, "Subquery returns more than 1 row" }, +{ "ER_UNKNOWN_STMT_HANDLER", 1243, "Unknown prepared statement handler (%.*s) given to %s" }, +{ "ER_CORRUPT_HELP_DB", 1244, "Help database is corrupt or does not exist" }, +{ "ER_CYCLIC_REFERENCE", 1245, "Cyclic reference on subqueries" }, +{ "ER_AUTO_CONVERT", 1246, "Converting column \'%s\' from %s to %s" }, +{ "ER_ILLEGAL_REFERENCE", 1247, "Reference \'%-.64s\' not supported (%s)" }, +{ "ER_DERIVED_MUST_HAVE_ALIAS", 1248, "Every derived table must have its own alias" }, +{ "ER_SELECT_REDUCED", 1249, "Select %u was reduced during optimization" }, +{ "ER_TABLENAME_NOT_ALLOWED_HERE", 1250, "Table \'%-.192s\' from one of the SELECTs cannot be used in %-.32s" }, +{ "ER_NOT_SUPPORTED_AUTH_MODE", 1251, "Client does not support authentication protocol requested by server; consider upgrading MariaDB client" }, +{ "ER_SPATIAL_CANT_HAVE_NULL", 1252, "All parts of a SPATIAL index must be NOT NULL" }, +{ "ER_COLLATION_CHARSET_MISMATCH", 1253, "COLLATION \'%s\' is not valid for CHARACTER SET \'%s\'" }, +{ "ER_SLAVE_WAS_RUNNING", 1254, "Slave is already running" }, +{ "ER_SLAVE_WAS_NOT_RUNNING", 1255, "Slave already has been stopped" }, +{ "ER_TOO_BIG_FOR_UNCOMPRESS", 1256, "Uncompressed data size too large; the maximum size is %d (probably, length of uncompressed data was corrupted)" }, +{ "ER_ZLIB_Z_MEM_ERROR", 1257, "ZLIB: Not enough memory" }, +{ "ER_ZLIB_Z_BUF_ERROR", 1258, "ZLIB: Not enough room in the output buffer (probably, length of uncompressed data was corrupted)" }, +{ "ER_ZLIB_Z_DATA_ERROR", 1259, "ZLIB: Input data corrupted" }, +{ "ER_CUT_VALUE_GROUP_CONCAT", 1260, "Row %u was cut by GROUP_CONCAT()" }, +{ "ER_WARN_TOO_FEW_RECORDS", 1261, "Row %lu doesn\'t contain data for all columns" }, +{ "ER_WARN_TOO_MANY_RECORDS", 1262, "Row %lu was truncated; it contained more data than there were input columns" }, +{ "ER_WARN_NULL_TO_NOTNULL", 1263, "Column set to default value; NULL supplied to NOT NULL column \'%s\' at row %lu" }, +{ "ER_WARN_DATA_OUT_OF_RANGE", 1264, "Out of range value for column \'%s\' at row %lu" }, +{ "WARN_DATA_TRUNCATED", 1265, "Data truncated for column \'%s\' at row %lu" }, +{ "ER_WARN_USING_OTHER_HANDLER", 1266, "Using storage engine %s for table \'%s\'" }, +{ "ER_CANT_AGGREGATE_2COLLATIONS", 1267, "Illegal mix of collations (%s,%s) and (%s,%s) for operation \'%s\'" }, +{ "ER_DROP_USER", 1268, "Cannot drop one or more of the requested users" }, +{ "ER_REVOKE_GRANTS", 1269, "Can\'t revoke all privileges for one or more of the requested users" }, +{ "ER_CANT_AGGREGATE_3COLLATIONS", 1270, "Illegal mix of collations (%s,%s), (%s,%s), (%s,%s) for operation \'%s\'" }, +{ "ER_CANT_AGGREGATE_NCOLLATIONS", 1271, "Illegal mix of collations for operation \'%s\'" }, +{ "ER_VARIABLE_IS_NOT_STRUCT", 1272, "Variable \'%-.64s\' is not a variable component (can\'t be used as XXXX.variable_name)" }, +{ "ER_UNKNOWN_COLLATION", 1273, "Unknown collation: \'%-.64s\'" }, +{ "ER_SLAVE_IGNORED_SSL_PARAMS", 1274, "SSL parameters in CHANGE MASTER are ignored because this MariaDB slave was compiled without SSL support; they can be used later if MariaDB slave with SSL is started" }, +{ "ER_SERVER_IS_IN_SECURE_AUTH_MODE", 1275, "Server is running in --secure-auth mode, but \'%s\'@\'%s\' has a password in the old format; please change the password to the new format" }, +{ "ER_WARN_FIELD_RESOLVED", 1276, "Field or reference \'%-.192s%s%-.192s%s%-.192s\' of SELECT #%d was resolved in SELECT #%d" }, +{ "ER_BAD_SLAVE_UNTIL_COND", 1277, "Incorrect parameter or combination of parameters for START SLAVE UNTIL" }, +{ "ER_MISSING_SKIP_SLAVE", 1278, "It is recommended to use --skip-slave-start when doing step-by-step replication with START SLAVE UNTIL; otherwise, you will get problems if you get an unexpected slave\'s mysqld restart" }, +{ "ER_UNTIL_COND_IGNORED", 1279, "SQL thread is not to be started so UNTIL options are ignored" }, +{ "ER_WRONG_NAME_FOR_INDEX", 1280, "Incorrect index name \'%-.100s\'" }, +{ "ER_WRONG_NAME_FOR_CATALOG", 1281, "Incorrect catalog name \'%-.100s\'" }, +{ "ER_WARN_QC_RESIZE", 1282, "Query cache failed to set size %llu; new query cache size is %lu" }, +{ "ER_BAD_FT_COLUMN", 1283, "Column \'%-.192s\' cannot be part of FULLTEXT index" }, +{ "ER_UNKNOWN_KEY_CACHE", 1284, "Unknown key cache \'%-.100s\'" }, +{ "ER_WARN_HOSTNAME_WONT_WORK", 1285, "MariaDB is started in --skip-name-resolve mode; you must restart it without this switch for this grant to work" }, +{ "ER_UNKNOWN_STORAGE_ENGINE", 1286, "Unknown storage engine \'%s\'" }, +{ "ER_WARN_DEPRECATED_SYNTAX", 1287, "\'%s\' is deprecated and will be removed in a future release. Please use %s instead" }, +{ "ER_NON_UPDATABLE_TABLE", 1288, "The target table %-.100s of the %s is not updatable" }, +{ "ER_FEATURE_DISABLED", 1289, "The \'%s\' feature is disabled; you need MariaDB built with \'%s\' to have it working" }, +{ "ER_OPTION_PREVENTS_STATEMENT", 1290, "The MariaDB server is running with the %s option so it cannot execute this statement" }, +{ "ER_DUPLICATED_VALUE_IN_TYPE", 1291, "Column \'%-.100s\' has duplicated value \'%-.64s\' in %s" }, +{ "ER_TRUNCATED_WRONG_VALUE", 1292, "Truncated incorrect %-.32s value: \'%-.128s\'" }, +{ "ER_TOO_MUCH_AUTO_TIMESTAMP_COLS", 1293, "Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause" }, +{ "ER_INVALID_ON_UPDATE", 1294, "Invalid ON UPDATE clause for \'%-.192s\' column" }, +{ "ER_UNSUPPORTED_PS", 1295, "This command is not supported in the prepared statement protocol yet" }, +{ "ER_GET_ERRMSG", 1296, "Got error %d \'%-.200s\' from %s" }, +{ "ER_GET_TEMPORARY_ERRMSG", 1297, "Got temporary error %d \'%-.200s\' from %s" }, +{ "ER_UNKNOWN_TIME_ZONE", 1298, "Unknown or incorrect time zone: \'%-.64s\'" }, +{ "ER_WARN_INVALID_TIMESTAMP", 1299, "Invalid TIMESTAMP value in column \'%s\' at row %lu" }, +{ "ER_INVALID_CHARACTER_STRING", 1300, "Invalid %s character string: \'%.64s\'" }, +{ "ER_WARN_ALLOWED_PACKET_OVERFLOWED", 1301, "Result of %s() was larger than max_allowed_packet (%ld) - truncated" }, +{ "ER_CONFLICTING_DECLARATIONS", 1302, "Conflicting declarations: \'%s%s\' and \'%s%s\'" }, +{ "ER_SP_NO_RECURSIVE_CREATE", 1303, "Can\'t create a %s from within another stored routine" }, +{ "ER_SP_ALREADY_EXISTS", 1304, "%s %s already exists" }, +{ "ER_SP_DOES_NOT_EXIST", 1305, "%s %s does not exist" }, +{ "ER_SP_DROP_FAILED", 1306, "Failed to DROP %s %s" }, +{ "ER_SP_STORE_FAILED", 1307, "Failed to CREATE %s %s" }, +{ "ER_SP_LILABEL_MISMATCH", 1308, "%s with no matching label: %s" }, +{ "ER_SP_LABEL_REDEFINE", 1309, "Redefining label %s" }, +{ "ER_SP_LABEL_MISMATCH", 1310, "End-label %s without match" }, +{ "ER_SP_UNINIT_VAR", 1311, "Referring to uninitialized variable %s" }, +{ "ER_SP_BADSELECT", 1312, "PROCEDURE %s can\'t return a result set in the given context" }, +{ "ER_SP_BADRETURN", 1313, "RETURN is only allowed in a FUNCTION" }, +{ "ER_SP_BADSTATEMENT", 1314, "%s is not allowed in stored procedures" }, +{ "ER_UPDATE_LOG_DEPRECATED_IGNORED", 1315, "The update log is deprecated and replaced by the binary log; SET SQL_LOG_UPDATE has been ignored. This option will be removed in MariaDB 5.6." }, +{ "ER_UPDATE_LOG_DEPRECATED_TRANSLATED", 1316, "The update log is deprecated and replaced by the binary log; SET SQL_LOG_UPDATE has been translated to SET SQL_LOG_BIN. This option will be removed in MariaDB 5.6." }, +{ "ER_QUERY_INTERRUPTED", 1317, "Query execution was interrupted" }, +{ "ER_SP_WRONG_NO_OF_ARGS", 1318, "Incorrect number of arguments for %s %s; expected %u, got %u" }, +{ "ER_SP_COND_MISMATCH", 1319, "Undefined CONDITION: %s" }, +{ "ER_SP_NORETURN", 1320, "No RETURN found in FUNCTION %s" }, +{ "ER_SP_NORETURNEND", 1321, "FUNCTION %s ended without RETURN" }, +{ "ER_SP_BAD_CURSOR_QUERY", 1322, "Cursor statement must be a SELECT" }, +{ "ER_SP_BAD_CURSOR_SELECT", 1323, "Cursor SELECT must not have INTO" }, +{ "ER_SP_CURSOR_MISMATCH", 1324, "Undefined CURSOR: %s" }, +{ "ER_SP_CURSOR_ALREADY_OPEN", 1325, "Cursor is already open" }, +{ "ER_SP_CURSOR_NOT_OPEN", 1326, "Cursor is not open" }, +{ "ER_SP_UNDECLARED_VAR", 1327, "Undeclared variable: %s" }, +{ "ER_SP_WRONG_NO_OF_FETCH_ARGS", 1328, "Incorrect number of FETCH variables" }, +{ "ER_SP_FETCH_NO_DATA", 1329, "No data - zero rows fetched, selected, or processed" }, +{ "ER_SP_DUP_PARAM", 1330, "Duplicate parameter: %s" }, +{ "ER_SP_DUP_VAR", 1331, "Duplicate variable: %s" }, +{ "ER_SP_DUP_COND", 1332, "Duplicate condition: %s" }, +{ "ER_SP_DUP_CURS", 1333, "Duplicate cursor: %s" }, +{ "ER_SP_CANT_ALTER", 1334, "Failed to ALTER %s %s" }, +{ "ER_SP_SUBSELECT_NYI", 1335, "Subquery value not supported" }, +{ "ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG", 1336, "%s is not allowed in stored function or trigger" }, +{ "ER_SP_VARCOND_AFTER_CURSHNDLR", 1337, "Variable or condition declaration after cursor or handler declaration" }, +{ "ER_SP_CURSOR_AFTER_HANDLER", 1338, "Cursor declaration after handler declaration" }, +{ "ER_SP_CASE_NOT_FOUND", 1339, "Case not found for CASE statement" }, +{ "ER_FPARSER_TOO_BIG_FILE", 1340, "Configuration file \'%-.192s\' is too big" }, +{ "ER_FPARSER_BAD_HEADER", 1341, "Malformed file type header in file \'%-.192s\'" }, +{ "ER_FPARSER_EOF_IN_COMMENT", 1342, "Unexpected end of file while parsing comment \'%-.200s\'" }, +{ "ER_FPARSER_ERROR_IN_PARAMETER", 1343, "Error while parsing parameter \'%-.192s\' (line: \'%-.192s\')" }, +{ "ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER", 1344, "Unexpected end of file while skipping unknown parameter \'%-.192s\'" }, +{ "ER_VIEW_NO_EXPLAIN", 1345, "EXPLAIN/SHOW can not be issued; lacking privileges for underlying table" }, +{ "ER_FRM_UNKNOWN_TYPE", 1346, "File \'%-.192s\' has unknown type \'%-.64s\' in its header" }, +{ "ER_WRONG_OBJECT", 1347, "\'%-.192s.%-.192s\' is not %s" }, +{ "ER_NONUPDATEABLE_COLUMN", 1348, "Column \'%-.192s\' is not updatable" }, +{ "ER_VIEW_SELECT_DERIVED", 1349, "View\'s SELECT contains a subquery in the FROM clause" }, +{ "ER_VIEW_SELECT_CLAUSE", 1350, "View\'s SELECT contains a \'%s\' clause" }, +{ "ER_VIEW_SELECT_VARIABLE", 1351, "View\'s SELECT contains a variable or parameter" }, +{ "ER_VIEW_SELECT_TMPTABLE", 1352, "View\'s SELECT refers to a temporary table \'%-.192s\'" }, +{ "ER_VIEW_WRONG_LIST", 1353, "View\'s SELECT and view\'s field list have different column counts" }, +{ "ER_WARN_VIEW_MERGE", 1354, "View merge algorithm can\'t be used here for now (assumed undefined algorithm)" }, +{ "ER_WARN_VIEW_WITHOUT_KEY", 1355, "View being updated does not have complete key of underlying table in it" }, +{ "ER_VIEW_INVALID", 1356, "View \'%-.192s.%-.192s\' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them" }, +{ "ER_SP_NO_DROP_SP", 1357, "Can\'t drop or alter a %s from within another stored routine" }, +{ "ER_SP_GOTO_IN_HNDLR", 1358, "GOTO is not allowed in a stored procedure handler" }, +{ "ER_TRG_ALREADY_EXISTS", 1359, "Trigger already exists" }, +{ "ER_TRG_DOES_NOT_EXIST", 1360, "Trigger does not exist" }, +{ "ER_TRG_ON_VIEW_OR_TEMP_TABLE", 1361, "Trigger\'s \'%-.192s\' is view or temporary table" }, +{ "ER_TRG_CANT_CHANGE_ROW", 1362, "Updating of %s row is not allowed in %strigger" }, +{ "ER_TRG_NO_SUCH_ROW_IN_TRG", 1363, "There is no %s row in %s trigger" }, +{ "ER_NO_DEFAULT_FOR_FIELD", 1364, "Field \'%-.192s\' doesn\'t have a default value" }, +{ "ER_DIVISION_BY_ZERO", 1365, "Division by 0" }, +{ "ER_TRUNCATED_WRONG_VALUE_FOR_FIELD", 1366, "Incorrect %-.32s value: \'%-.128s\' for column \'%.192s\' at row %lu" }, +{ "ER_ILLEGAL_VALUE_FOR_TYPE", 1367, "Illegal %s \'%-.192s\' value found during parsing" }, +{ "ER_VIEW_NONUPD_CHECK", 1368, "CHECK OPTION on non-updatable view \'%-.192s.%-.192s\'" }, +{ "ER_VIEW_CHECK_FAILED", 1369, "CHECK OPTION failed \'%-.192s.%-.192s\'" }, +{ "ER_PROCACCESS_DENIED_ERROR", 1370, "%-.16s command denied to user \'%s\'@\'%s\' for routine \'%-.192s\'" }, +{ "ER_RELAY_LOG_FAIL", 1371, "Failed purging old relay logs: %s" }, +{ "ER_PASSWD_LENGTH", 1372, "Password hash should be a %d-digit hexadecimal number" }, +{ "ER_UNKNOWN_TARGET_BINLOG", 1373, "Target log not found in binlog index" }, +{ "ER_IO_ERR_LOG_INDEX_READ", 1374, "I/O error reading log index file" }, +{ "ER_BINLOG_PURGE_PROHIBITED", 1375, "Server configuration does not permit binlog purge" }, +{ "ER_FSEEK_FAIL", 1376, "Failed on fseek()" }, +{ "ER_BINLOG_PURGE_FATAL_ERR", 1377, "Fatal error during log purge" }, +{ "ER_LOG_IN_USE", 1378, "A purgeable log is in use, will not purge" }, +{ "ER_LOG_PURGE_UNKNOWN_ERR", 1379, "Unknown error during log purge" }, +{ "ER_RELAY_LOG_INIT", 1380, "Failed initializing relay log position: %s" }, +{ "ER_NO_BINARY_LOGGING", 1381, "You are not using binary logging" }, +{ "ER_RESERVED_SYNTAX", 1382, "The \'%-.64s\' syntax is reserved for purposes internal to the MariaDB server" }, +{ "ER_WSAS_FAILED", 1383, "WSAStartup Failed" }, +{ "ER_DIFF_GROUPS_PROC", 1384, "Can\'t handle procedures with different groups yet" }, +{ "ER_NO_GROUP_FOR_PROC", 1385, "Select must have a group with this procedure" }, +{ "ER_ORDER_WITH_PROC", 1386, "Can\'t use ORDER clause with this procedure" }, +{ "ER_LOGGING_PROHIBIT_CHANGING_OF", 1387, "Binary logging and replication forbid changing the global server %s" }, +{ "ER_NO_FILE_MAPPING", 1388, "Can\'t map file: %-.200s, errno: %d" }, +{ "ER_WRONG_MAGIC", 1389, "Wrong magic in %-.64s" }, +{ "ER_PS_MANY_PARAM", 1390, "Prepared statement contains too many placeholders" }, +{ "ER_KEY_PART_0", 1391, "Key part \'%-.192s\' length cannot be 0" }, +{ "ER_VIEW_CHECKSUM", 1392, "View text checksum failed" }, +{ "ER_VIEW_MULTIUPDATE", 1393, "Can not modify more than one base table through a join view \'%-.192s.%-.192s\'" }, +{ "ER_VIEW_NO_INSERT_FIELD_LIST", 1394, "Can not insert into join view \'%-.192s.%-.192s\' without fields list" }, +{ "ER_VIEW_DELETE_MERGE_VIEW", 1395, "Can not delete from join view \'%-.192s.%-.192s\'" }, +{ "ER_CANNOT_USER", 1396, "Operation %s failed for %.256s" }, +{ "ER_XAER_NOTA", 1397, "XAER_NOTA: Unknown XID" }, +{ "ER_XAER_INVAL", 1398, "XAER_INVAL: Invalid arguments (or unsupported command)" }, +{ "ER_XAER_RMFAIL", 1399, "XAER_RMFAIL: The command cannot be executed when global transaction is in the %.64s state" }, +{ "ER_XAER_OUTSIDE", 1400, "XAER_OUTSIDE: Some work is done outside global transaction" }, +{ "ER_XAER_RMERR", 1401, "XAER_RMERR: Fatal error occurred in the transaction branch - check your data for consistency" }, +{ "ER_XA_RBROLLBACK", 1402, "XA_RBROLLBACK: Transaction branch was rolled back" }, +{ "ER_NONEXISTING_PROC_GRANT", 1403, "There is no such grant defined for user \'%-.48s\' on host \'%-.64s\' on routine \'%-.192s\'" }, +{ "ER_PROC_AUTO_GRANT_FAIL", 1404, "Failed to grant EXECUTE and ALTER ROUTINE privileges" }, +{ "ER_PROC_AUTO_REVOKE_FAIL", 1405, "Failed to revoke all privileges to dropped routine" }, +{ "ER_DATA_TOO_LONG", 1406, "Data too long for column \'%s\' at row %lu" }, +{ "ER_SP_BAD_SQLSTATE", 1407, "Bad SQLSTATE: \'%s\'" }, +{ "ER_STARTUP", 1408, "%s: ready for connections.\nVersion: \'%s\' socket: \'%s\' port: %d %s" }, +{ "ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR", 1409, "Can\'t load value from file with fixed size rows to variable" }, +{ "ER_CANT_CREATE_USER_WITH_GRANT", 1410, "You are not allowed to create a user with GRANT" }, +{ "ER_WRONG_VALUE_FOR_TYPE", 1411, "Incorrect %-.32s value: \'%-.128s\' for function %-.32s" }, +{ "ER_TABLE_DEF_CHANGED", 1412, "Table definition has changed, please retry transaction" }, +{ "ER_SP_DUP_HANDLER", 1413, "Duplicate handler declared in the same block" }, +{ "ER_SP_NOT_VAR_ARG", 1414, "OUT or INOUT argument %d for routine %s is not a variable or NEW pseudo-variable in BEFORE trigger" }, +{ "ER_SP_NO_RETSET", 1415, "Not allowed to return a result set from a %s" }, +{ "ER_CANT_CREATE_GEOMETRY_OBJECT", 1416, "Cannot get geometry object from data you send to the GEOMETRY field" }, +{ "ER_FAILED_ROUTINE_BREAK_BINLOG", 1417, "A routine failed and has neither NO SQL nor READS SQL DATA in its declaration and binary logging is enabled; if non-transactional tables were updated, the binary log will miss their changes" }, +{ "ER_BINLOG_UNSAFE_ROUTINE", 1418, "This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)" }, +{ "ER_BINLOG_CREATE_ROUTINE_NEED_SUPER", 1419, "You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)" }, +{ "ER_EXEC_STMT_WITH_OPEN_CURSOR", 1420, "You can\'t execute a prepared statement which has an open cursor associated with it. Reset the statement to re-execute it." }, +{ "ER_STMT_HAS_NO_OPEN_CURSOR", 1421, "The statement (%lu) has no open cursor." }, +{ "ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG", 1422, "Explicit or implicit commit is not allowed in stored function or trigger." }, +{ "ER_NO_DEFAULT_FOR_VIEW_FIELD", 1423, "Field of view \'%-.192s.%-.192s\' underlying table doesn\'t have a default value" }, +{ "ER_SP_NO_RECURSION", 1424, "Recursive stored functions and triggers are not allowed." }, +{ "ER_TOO_BIG_SCALE", 1425, "Too big scale %u specified for \'%-.192s\'. Maximum is %lu." }, +{ "ER_TOO_BIG_PRECISION", 1426, "Too big precision %u specified for \'%-.192s\'. Maximum is %lu." }, +{ "ER_M_BIGGER_THAN_D", 1427, "For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column \'%-.192s\')." }, +{ "ER_WRONG_LOCK_OF_SYSTEM_TABLE", 1428, "You can\'t combine write-locking of system tables with other tables or lock types" }, +{ "ER_CONNECT_TO_FOREIGN_DATA_SOURCE", 1429, "Unable to connect to foreign data source: %.64s" }, +{ "ER_QUERY_ON_FOREIGN_DATA_SOURCE", 1430, "There was a problem processing the query on the foreign data source. Data source error: %-.64s" }, +{ "ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST", 1431, "The foreign data source you are trying to reference does not exist. Data source error: %-.64s" }, +{ "ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE", 1432, "Can\'t create federated table. The data source connection string \'%-.64s\' is not in the correct format" }, +{ "ER_FOREIGN_DATA_STRING_INVALID", 1433, "The data source connection string \'%-.64s\' is not in the correct format" }, +{ "ER_CANT_CREATE_FEDERATED_TABLE", 1434, "Can\'t create federated table. Foreign data src error: %-.64s" }, +{ "ER_TRG_IN_WRONG_SCHEMA", 1435, "Trigger in wrong schema" }, +{ "ER_STACK_OVERRUN_NEED_MORE", 1436, "Thread stack overrun: %ld bytes used of a %ld byte stack, and %ld bytes needed. Use \'mysqld --thread_stack=#\' to specify a bigger stack." }, +{ "ER_TOO_LONG_BODY", 1437, "Routine body for \'%-.100s\' is too long" }, +{ "ER_WARN_CANT_DROP_DEFAULT_KEYCACHE", 1438, "Cannot drop default keycache" }, +{ "ER_TOO_BIG_DISPLAYWIDTH", 1439, "Display width out of range for \'%-.192s\' (max = %lu)" }, +{ "ER_XAER_DUPID", 1440, "XAER_DUPID: The XID already exists" }, +{ "ER_DATETIME_FUNCTION_OVERFLOW", 1441, "Datetime function: %-.32s field overflow" }, +{ "ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG", 1442, "Can\'t update table \'%-.192s\' in stored function/trigger because it is already used by statement which invoked this stored function/trigger." }, +{ "ER_VIEW_PREVENT_UPDATE", 1443, "The definition of table \'%-.192s\' prevents operation %.192s on table \'%-.192s\'." }, +{ "ER_PS_NO_RECURSION", 1444, "The prepared statement contains a stored routine call that refers to that same statement. It\'s not allowed to execute a prepared statement in such a recursive manner" }, +{ "ER_SP_CANT_SET_AUTOCOMMIT", 1445, "Not allowed to set autocommit from a stored function or trigger" }, +{ "ER_MALFORMED_DEFINER", 1446, "Definer is not fully qualified" }, +{ "ER_VIEW_FRM_NO_USER", 1447, "View \'%-.192s\'.\'%-.192s\' has no definer information (old table format). Current user is used as definer. Please recreate the view!" }, +{ "ER_VIEW_OTHER_USER", 1448, "You need the SUPER privilege for creation view with \'%-.192s\'@\'%-.192s\' definer" }, +{ "ER_NO_SUCH_USER", 1449, "The user specified as a definer (\'%-.64s\'@\'%-.64s\') does not exist" }, +{ "ER_FORBID_SCHEMA_CHANGE", 1450, "Changing schema from \'%-.192s\' to \'%-.192s\' is not allowed." }, +{ "ER_ROW_IS_REFERENCED_2", 1451, "Cannot delete or update a parent row: a foreign key constraint fails (%.192s)" }, +{ "ER_NO_REFERENCED_ROW_2", 1452, "Cannot add or update a child row: a foreign key constraint fails (%.192s)" }, +{ "ER_SP_BAD_VAR_SHADOW", 1453, "Variable \'%-.64s\' must be quoted with `...`, or renamed" }, +{ "ER_TRG_NO_DEFINER", 1454, "No definer attribute for trigger \'%-.192s\'.\'%-.192s\'. The trigger will be activated under the authorization of the invoker, which may have insufficient privileges. Please recreate the trigger." }, +{ "ER_OLD_FILE_FORMAT", 1455, "\'%-.192s\' has an old format, you should re-create the \'%s\' object(s)" }, +{ "ER_SP_RECURSION_LIMIT", 1456, "Recursive limit %d (as set by the max_sp_recursion_depth variable) was exceeded for routine %.192s" }, +{ "ER_SP_PROC_TABLE_CORRUPT", 1457, "Failed to load routine %-.192s. The table mysql.proc is missing, corrupt, or contains bad data (internal code %d)" }, +{ "ER_SP_WRONG_NAME", 1458, "Incorrect routine name \'%-.192s\'" }, +{ "ER_TABLE_NEEDS_UPGRADE", 1459, "Table upgrade required. Please do \"REPAIR TABLE `%-.32s`\" or dump/reload to fix it!" }, +{ "ER_SP_NO_AGGREGATE", 1460, "AGGREGATE is not supported for stored functions" }, +{ "ER_MAX_PREPARED_STMT_COUNT_REACHED", 1461, "Can\'t create more than max_prepared_stmt_count statements (current value: %lu)" }, +{ "ER_VIEW_RECURSIVE", 1462, "`%-.192s`.`%-.192s` contains view recursion" }, +{ "ER_NON_GROUPING_FIELD_USED", 1463, "Non-grouping field \'%-.192s\' is used in %-.64s clause" }, +{ "ER_TABLE_CANT_HANDLE_SPKEYS", 1464, "The used table type doesn\'t support SPATIAL indexes" }, +{ "ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA", 1465, "Triggers can not be created on system tables" }, +{ "ER_REMOVED_SPACES", 1466, "Leading spaces are removed from name \'%s\'" }, +{ "ER_AUTOINC_READ_FAILED", 1467, "Failed to read auto-increment value from storage engine" }, +{ "ER_USERNAME", 1468, "user name" }, +{ "ER_HOSTNAME", 1469, "host name" }, +{ "ER_WRONG_STRING_LENGTH", 1470, "String \'%-.70s\' is too long for %s (should be no longer than %d)" }, +{ "ER_NON_INSERTABLE_TABLE", 1471, "The target table %-.100s of the %s is not insertable-into" }, +{ "ER_ADMIN_WRONG_MRG_TABLE", 1472, "Table \'%-.64s\' is differently defined or of non-MyISAM type or doesn\'t exist" }, +{ "ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT", 1473, "Too high level of nesting for select" }, +{ "ER_NAME_BECOMES_EMPTY", 1474, "Name \'%-.64s\' has become \'\'" }, +{ "ER_AMBIGUOUS_FIELD_TERM", 1475, "First character of the FIELDS TERMINATED string is ambiguous; please use non-optional and non-empty FIELDS ENCLOSED BY" }, +{ "ER_FOREIGN_SERVER_EXISTS", 1476, "The foreign server, %s, you are trying to create already exists." }, +{ "ER_FOREIGN_SERVER_DOESNT_EXIST", 1477, "The foreign server name you are trying to reference does not exist. Data source error: %-.64s" }, +{ "ER_ILLEGAL_HA_CREATE_OPTION", 1478, "Table storage engine \'%-.64s\' does not support the create option \'%.64s\'" }, +{ "ER_PARTITION_REQUIRES_VALUES_ERROR", 1479, "Syntax error: %-.64s PARTITIONING requires definition of VALUES %-.64s for each partition" }, +{ "ER_PARTITION_WRONG_VALUES_ERROR", 1480, "Only %-.64s PARTITIONING can use VALUES %-.64s in partition definition" }, +{ "ER_PARTITION_MAXVALUE_ERROR", 1481, "MAXVALUE can only be used in last partition definition" }, +{ "ER_PARTITION_SUBPARTITION_ERROR", 1482, "Subpartitions can only be hash partitions and by key" }, +{ "ER_PARTITION_SUBPART_MIX_ERROR", 1483, "Must define subpartitions on all partitions if on one partition" }, +{ "ER_PARTITION_WRONG_NO_PART_ERROR", 1484, "Wrong number of partitions defined, mismatch with previous setting" }, +{ "ER_PARTITION_WRONG_NO_SUBPART_ERROR", 1485, "Wrong number of subpartitions defined, mismatch with previous setting" }, +{ "ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR", 1486, "Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed" }, +{ "ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR", 1487, "Expression in RANGE/LIST VALUES must be constant" }, +{ "ER_FIELD_NOT_FOUND_PART_ERROR", 1488, "Field in list of fields for partition function not found in table" }, +{ "ER_LIST_OF_FIELDS_ONLY_IN_HASH_ERROR", 1489, "List of fields is only allowed in KEY partitions" }, +{ "ER_INCONSISTENT_PARTITION_INFO_ERROR", 1490, "The partition info in the frm file is not consistent with what can be written into the frm file" }, +{ "ER_PARTITION_FUNC_NOT_ALLOWED_ERROR", 1491, "The %-.192s function returns the wrong type" }, +{ "ER_PARTITIONS_MUST_BE_DEFINED_ERROR", 1492, "For %-.64s partitions each partition must be defined" }, +{ "ER_RANGE_NOT_INCREASING_ERROR", 1493, "VALUES LESS THAN value must be strictly increasing for each partition" }, +{ "ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR", 1494, "VALUES value must be of same type as partition function" }, +{ "ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR", 1495, "Multiple definition of same constant in list partitioning" }, +{ "ER_PARTITION_ENTRY_ERROR", 1496, "Partitioning can not be used stand-alone in query" }, +{ "ER_MIX_HANDLER_ERROR", 1497, "The mix of handlers in the partitions is not allowed in this version of MariaDB" }, +{ "ER_PARTITION_NOT_DEFINED_ERROR", 1498, "For the partitioned engine it is necessary to define all %-.64s" }, +{ "ER_TOO_MANY_PARTITIONS_ERROR", 1499, "Too many partitions (including subpartitions) were defined" }, +{ "ER_SUBPARTITION_ERROR", 1500, "It is only possible to mix RANGE/LIST partitioning with HASH/KEY partitioning for subpartitioning" }, +{ "ER_CANT_CREATE_HANDLER_FILE", 1501, "Failed to create specific handler file" }, +{ "ER_BLOB_FIELD_IN_PART_FUNC_ERROR", 1502, "A BLOB field is not allowed in partition function" }, +{ "ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF", 1503, "A %-.192s must include all columns in the table\'s partitioning function" }, +{ "ER_NO_PARTS_ERROR", 1504, "Number of %-.64s = 0 is not an allowed value" }, +{ "ER_PARTITION_MGMT_ON_NONPARTITIONED", 1505, "Partition management on a not partitioned table is not possible" }, +{ "ER_FOREIGN_KEY_ON_PARTITIONED", 1506, "Foreign key clause is not yet supported in conjunction with partitioning" }, +{ "ER_DROP_PARTITION_NON_EXISTENT", 1507, "Error in list of partitions to %-.64s" }, +{ "ER_DROP_LAST_PARTITION", 1508, "Cannot remove all partitions, use DROP TABLE instead" }, +{ "ER_COALESCE_ONLY_ON_HASH_PARTITION", 1509, "COALESCE PARTITION can only be used on HASH/KEY partitions" }, +{ "ER_REORG_HASH_ONLY_ON_SAME_NO", 1510, "REORGANIZE PARTITION can only be used to reorganize partitions not to change their numbers" }, +{ "ER_REORG_NO_PARAM_ERROR", 1511, "REORGANIZE PARTITION without parameters can only be used on auto-partitioned tables using HASH PARTITIONs" }, +{ "ER_ONLY_ON_RANGE_LIST_PARTITION", 1512, "%-.64s PARTITION can only be used on RANGE/LIST partitions" }, +{ "ER_ADD_PARTITION_SUBPART_ERROR", 1513, "Trying to Add partition(s) with wrong number of subpartitions" }, +{ "ER_ADD_PARTITION_NO_NEW_PARTITION", 1514, "At least one partition must be added" }, +{ "ER_COALESCE_PARTITION_NO_PARTITION", 1515, "At least one partition must be coalesced" }, +{ "ER_REORG_PARTITION_NOT_EXIST", 1516, "More partitions to reorganize than there are partitions" }, +{ "ER_SAME_NAME_PARTITION", 1517, "Duplicate partition name %-.192s" }, +{ "ER_NO_BINLOG_ERROR", 1518, "It is not allowed to shut off binlog on this command" }, +{ "ER_CONSECUTIVE_REORG_PARTITIONS", 1519, "When reorganizing a set of partitions they must be in consecutive order" }, +{ "ER_REORG_OUTSIDE_RANGE", 1520, "Reorganize of range partitions cannot change total ranges except for last partition where it can extend the range" }, +{ "ER_PARTITION_FUNCTION_FAILURE", 1521, "Partition function not supported in this version for this handler" }, +{ "ER_PART_STATE_ERROR", 1522, "Partition state cannot be defined from CREATE/ALTER TABLE" }, +{ "ER_LIMITED_PART_RANGE", 1523, "The %-.64s handler only supports 32 bit integers in VALUES" }, +{ "ER_PLUGIN_IS_NOT_LOADED", 1524, "Plugin \'%-.192s\' is not loaded" }, +{ "ER_WRONG_VALUE", 1525, "Incorrect %-.32s value: \'%-.128s\'" }, +{ "ER_NO_PARTITION_FOR_GIVEN_VALUE", 1526, "Table has no partition for value %-.64s" }, +{ "ER_FILEGROUP_OPTION_ONLY_ONCE", 1527, "It is not allowed to specify %s more than once" }, +{ "ER_CREATE_FILEGROUP_FAILED", 1528, "Failed to create %s" }, +{ "ER_DROP_FILEGROUP_FAILED", 1529, "Failed to drop %s" }, +{ "ER_TABLESPACE_AUTO_EXTEND_ERROR", 1530, "The handler doesn\'t support autoextend of tablespaces" }, +{ "ER_WRONG_SIZE_NUMBER", 1531, "A size parameter was incorrectly specified, either number or on the form 10M" }, +{ "ER_SIZE_OVERFLOW_ERROR", 1532, "The size number was correct but we don\'t allow the digit part to be more than 2 billion" }, +{ "ER_ALTER_FILEGROUP_FAILED", 1533, "Failed to alter: %s" }, +{ "ER_BINLOG_ROW_LOGGING_FAILED", 1534, "Writing one row to the row-based binary log failed" }, +{ "ER_BINLOG_ROW_WRONG_TABLE_DEF", 1535, "Table definition on master and slave does not match: %s" }, +{ "ER_BINLOG_ROW_RBR_TO_SBR", 1536, "Slave running with --log-slave-updates must use row-based binary logging to be able to replicate row-based binary log events" }, +{ "ER_EVENT_ALREADY_EXISTS", 1537, "Event \'%-.192s\' already exists" }, +{ "ER_EVENT_STORE_FAILED", 1538, "Failed to store event %s. Error code %d from storage engine." }, +{ "ER_EVENT_DOES_NOT_EXIST", 1539, "Unknown event \'%-.192s\'" }, +{ "ER_EVENT_CANT_ALTER", 1540, "Failed to alter event \'%-.192s\'" }, +{ "ER_EVENT_DROP_FAILED", 1541, "Failed to drop %s" }, +{ "ER_EVENT_INTERVAL_NOT_POSITIVE_OR_TOO_BIG", 1542, "INTERVAL is either not positive or too big" }, +{ "ER_EVENT_ENDS_BEFORE_STARTS", 1543, "ENDS is either invalid or before STARTS" }, +{ "ER_EVENT_EXEC_TIME_IN_THE_PAST", 1544, "Event execution time is in the past. Event has been disabled" }, +{ "ER_EVENT_OPEN_TABLE_FAILED", 1545, "Failed to open mysql.event" }, +{ "ER_EVENT_NEITHER_M_EXPR_NOR_M_AT", 1546, "No datetime expression provided" }, +{ "ER_COL_COUNT_DOESNT_MATCH_CORRUPTED", 1547, "Column count of mysql.%s is wrong. Expected %d, found %d. The table is probably corrupted" }, +{ "ER_CANNOT_LOAD_FROM_TABLE", 1548, "Cannot load from mysql.%s. The table is probably corrupted" }, +{ "ER_EVENT_CANNOT_DELETE", 1549, "Failed to delete the event from mysql.event" }, +{ "ER_EVENT_COMPILE_ERROR", 1550, "Error during compilation of event\'s body" }, +{ "ER_EVENT_SAME_NAME", 1551, "Same old and new event name" }, +{ "ER_EVENT_DATA_TOO_LONG", 1552, "Data for column \'%s\' too long" }, +{ "ER_DROP_INDEX_FK", 1553, "Cannot drop index \'%-.192s\': needed in a foreign key constraint" }, +{ "ER_WARN_DEPRECATED_SYNTAX_WITH_VER", 1554, "The syntax \'%s\' is deprecated and will be removed in MariaDB %s. Please use %s instead" }, +{ "ER_CANT_WRITE_LOCK_LOG_TABLE", 1555, "You can\'t write-lock a log table. Only read access is possible" }, +{ "ER_CANT_LOCK_LOG_TABLE", 1556, "You can\'t use locks with log tables." }, +{ "ER_FOREIGN_DUPLICATE_KEY", 1557, "Upholding foreign key constraints for table \'%.192s\', entry \'%-.192s\', key %d would lead to a duplicate entry" }, +{ "ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE", 1558, "Column count of mysql.%s is wrong. Expected %d, found %d. Created with MariaDB %d, now running %d. Please use mysql_upgrade to fix this error." }, +{ "ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR", 1559, "Cannot switch out of the row-based binary log format when the session has open temporary tables" }, +{ "ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT", 1560, "Cannot change the binary logging format inside a stored function or trigger" }, +{ "ER_NDB_CANT_SWITCH_BINLOG_FORMAT", 1561, "The NDB cluster engine does not support changing the binlog format on the fly yet" }, +{ "ER_PARTITION_NO_TEMPORARY", 1562, "Cannot create temporary table with partitions" }, +{ "ER_PARTITION_CONST_DOMAIN_ERROR", 1563, "Partition constant is out of partition function domain" }, +{ "ER_PARTITION_FUNCTION_IS_NOT_ALLOWED", 1564, "This partition function is not allowed" }, +{ "ER_DDL_LOG_ERROR", 1565, "Error in DDL log" }, +{ "ER_NULL_IN_VALUES_LESS_THAN", 1566, "Not allowed to use NULL value in VALUES LESS THAN" }, +{ "ER_WRONG_PARTITION_NAME", 1567, "Incorrect partition name" }, +{ "ER_CANT_CHANGE_TX_ISOLATION", 1568, "Transaction isolation level can\'t be changed while a transaction is in progress" }, +{ "ER_DUP_ENTRY_AUTOINCREMENT_CASE", 1569, "ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry \'%-.192s\' for key \'%-.192s\'" }, +{ "ER_EVENT_MODIFY_QUEUE_ERROR", 1570, "Internal scheduler error %d" }, +{ "ER_EVENT_SET_VAR_ERROR", 1571, "Error during starting/stopping of the scheduler. Error code %u" }, +{ "ER_PARTITION_MERGE_ERROR", 1572, "Engine cannot be used in partitioned tables" }, +{ "ER_CANT_ACTIVATE_LOG", 1573, "Cannot activate \'%-.64s\' log" }, +{ "ER_RBR_NOT_AVAILABLE", 1574, "The server was not built with row-based replication" }, +{ "ER_BASE64_DECODE_ERROR", 1575, "Decoding of base64 string failed" }, +{ "ER_EVENT_RECURSION_FORBIDDEN", 1576, "Recursion of EVENT DDL statements is forbidden when body is present" }, +{ "ER_EVENTS_DB_ERROR", 1577, "Cannot proceed because system tables used by Event Scheduler were found damaged at server start" }, +{ "ER_ONLY_INTEGERS_ALLOWED", 1578, "Only integers allowed as number here" }, +{ "ER_UNSUPORTED_LOG_ENGINE", 1579, "This storage engine cannot be used for log tables" }, +{ "ER_BAD_LOG_STATEMENT", 1580, "You cannot \'%s\' a log table if logging is enabled" }, +{ "ER_CANT_RENAME_LOG_TABLE", 1581, "Cannot rename \'%s\'. When logging enabled, rename to/from log table must rename two tables: the log table to an archive table and another table back to \'%s\'" }, +{ "ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT", 1582, "Incorrect parameter count in the call to native function \'%-.192s\'" }, +{ "ER_WRONG_PARAMETERS_TO_NATIVE_FCT", 1583, "Incorrect parameters in the call to native function \'%-.192s\'" }, +{ "ER_WRONG_PARAMETERS_TO_STORED_FCT", 1584, "Incorrect parameters in the call to stored function \'%-.192s\'" }, +{ "ER_NATIVE_FCT_NAME_COLLISION", 1585, "This function \'%-.192s\' has the same name as a native function" }, +{ "ER_DUP_ENTRY_WITH_KEY_NAME", 1586, "Duplicate entry \'%-.64s\' for key \'%-.192s\'" }, +{ "ER_BINLOG_PURGE_EMFILE", 1587, "Too many files opened, please execute the command again" }, +{ "ER_EVENT_CANNOT_CREATE_IN_THE_PAST", 1588, "Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was dropped immediately after creation." }, +{ "ER_EVENT_CANNOT_ALTER_IN_THE_PAST", 1589, "Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was dropped immediately after creation." }, +{ "ER_SLAVE_INCIDENT", 1590, "The incident %s occured on the master. Message: %-.64s" }, +{ "ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT", 1591, "Table has no partition for some existing values" }, +{ "ER_BINLOG_UNSAFE_STATEMENT", 1592, "Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. %s" }, +{ "ER_SLAVE_FATAL_ERROR", 1593, "Fatal error: %s" }, +{ "ER_SLAVE_RELAY_LOG_READ_FAILURE", 1594, "Relay log read failure: %s" }, +{ "ER_SLAVE_RELAY_LOG_WRITE_FAILURE", 1595, "Relay log write failure: %s" }, +{ "ER_SLAVE_CREATE_EVENT_FAILURE", 1596, "Failed to create %s" }, +{ "ER_SLAVE_MASTER_COM_FAILURE", 1597, "Master command %s failed: %s" }, +{ "ER_BINLOG_LOGGING_IMPOSSIBLE", 1598, "Binary logging not possible. Message: %s" }, +{ "ER_VIEW_NO_CREATION_CTX", 1599, "View `%-.64s`.`%-.64s` has no creation context" }, +{ "ER_VIEW_INVALID_CREATION_CTX", 1600, "Creation context of view `%-.64s`.`%-.64s\' is invalid" }, +{ "ER_SR_INVALID_CREATION_CTX", 1601, "Creation context of stored routine `%-.64s`.`%-.64s` is invalid" }, +{ "ER_TRG_CORRUPTED_FILE", 1602, "Corrupted TRG file for table `%-.64s`.`%-.64s`" }, +{ "ER_TRG_NO_CREATION_CTX", 1603, "Triggers for table `%-.64s`.`%-.64s` have no creation context" }, +{ "ER_TRG_INVALID_CREATION_CTX", 1604, "Trigger creation context of table `%-.64s`.`%-.64s` is invalid" }, +{ "ER_EVENT_INVALID_CREATION_CTX", 1605, "Creation context of event `%-.64s`.`%-.64s` is invalid" }, +{ "ER_TRG_CANT_OPEN_TABLE", 1606, "Cannot open table for trigger `%-.64s`.`%-.64s`" }, +{ "ER_CANT_CREATE_SROUTINE", 1607, "Cannot create stored routine `%-.64s`. Check warnings" }, +{ "ER_NEVER_USED", 1608, "Ambiguous slave modes combination. %s" }, +{ "ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT", 1609, "The BINLOG statement of type `%s` was not preceded by a format description BINLOG statement." }, +{ "ER_SLAVE_CORRUPT_EVENT", 1610, "Corrupted replication event was detected" }, +{ "ER_LOAD_DATA_INVALID_COLUMN", 1611, "Invalid column reference (%-.64s) in LOAD DATA" }, +{ "ER_LOG_PURGE_NO_FILE", 1612, "Being purged log %s was not found" }, +{ "ER_XA_RBTIMEOUT", 1613, "XA_RBTIMEOUT: Transaction branch was rolled back: took too long" }, +{ "ER_XA_RBDEADLOCK", 1614, "XA_RBDEADLOCK: Transaction branch was rolled back: deadlock was detected" }, +{ "ER_NEED_REPREPARE", 1615, "Prepared statement needs to be re-prepared" }, +{ "ER_DELAYED_NOT_SUPPORTED", 1616, "DELAYED option not supported for table \'%-.192s\'" }, +{ "WARN_NO_MASTER_INFO", 1617, "The master info structure does not exist" }, +{ "WARN_OPTION_IGNORED", 1618, "<%-.64s> option ignored" }, +{ "ER_PLUGIN_DELETE_BUILTIN", 1619, "Built-in plugins cannot be deleted" }, +{ "WARN_PLUGIN_BUSY", 1620, "Plugin is busy and will be uninstalled on shutdown" }, +{ "ER_VARIABLE_IS_READONLY", 1621, "%s variable \'%s\' is read-only. Use SET %s to assign the value" }, +{ "ER_WARN_ENGINE_TRANSACTION_ROLLBACK", 1622, "Storage engine %s does not support rollback for this statement. Transaction rolled back and must be restarted" }, +{ "ER_SLAVE_HEARTBEAT_FAILURE", 1623, "Unexpected master\'s heartbeat data: %s" }, +{ "ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE", 1624, "The requested value for the heartbeat period is either negative or exceeds the maximum allowed (%s seconds)." }, +{ "ER_NDB_REPLICATION_SCHEMA_ERROR", 1625, "Bad schema for mysql.ndb_replication table. Message: %-.64s" }, +{ "ER_CONFLICT_FN_PARSE_ERROR", 1626, "Error in parsing conflict function. Message: %-.64s" }, +{ "ER_EXCEPTIONS_WRITE_ERROR", 1627, "Write to exceptions table failed. Message: %-.128s\"" }, +{ "ER_TOO_LONG_TABLE_COMMENT", 1628, "Comment for table \'%-.64s\' is too long (max = %lu)" }, +{ "ER_TOO_LONG_FIELD_COMMENT", 1629, "Comment for field \'%-.64s\' is too long (max = %lu)" }, +{ "ER_FUNC_INEXISTENT_NAME_COLLISION", 1630, "FUNCTION %s does not exist. Check the \'Function Name Parsing and Resolution\' section in the Reference Manual" }, +{ "ER_DATABASE_NAME", 1631, "Database" }, +{ "ER_TABLE_NAME", 1632, "Table" }, +{ "ER_PARTITION_NAME", 1633, "Partition" }, +{ "ER_SUBPARTITION_NAME", 1634, "Subpartition" }, +{ "ER_TEMPORARY_NAME", 1635, "Temporary" }, +{ "ER_RENAMED_NAME", 1636, "Renamed" }, +{ "ER_TOO_MANY_CONCURRENT_TRXS", 1637, "Too many active concurrent transactions" }, +{ "WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED", 1638, "Non-ASCII separator arguments are not fully supported" }, +{ "ER_DEBUG_SYNC_TIMEOUT", 1639, "debug sync point wait timed out" }, +{ "ER_DEBUG_SYNC_HIT_LIMIT", 1640, "debug sync point hit limit reached" }, +{ "ER_DUP_SIGNAL_SET", 1641, "Duplicate condition information item \'%s\'" }, +{ "ER_SIGNAL_WARN", 1642, "Unhandled user-defined warning condition" }, +{ "ER_SIGNAL_NOT_FOUND", 1643, "Unhandled user-defined not found condition" }, +{ "ER_SIGNAL_EXCEPTION", 1644, "Unhandled user-defined exception condition" }, +{ "ER_RESIGNAL_WITHOUT_ACTIVE_HANDLER", 1645, "RESIGNAL when handler not active" }, +{ "ER_SIGNAL_BAD_CONDITION_TYPE", 1646, "SIGNAL/RESIGNAL can only use a CONDITION defined with SQLSTATE" }, +{ "WARN_COND_ITEM_TRUNCATED", 1647, "Data truncated for condition item \'%s\'" }, +{ "ER_COND_ITEM_TOO_LONG", 1648, "Data too long for condition item \'%s\'" }, +{ "ER_UNKNOWN_LOCALE", 1649, "Unknown locale: \'%-.64s\'" }, +{ "ER_SLAVE_IGNORE_SERVER_IDS", 1650, "The requested server id %d clashes with the slave startup option --replicate-same-server-id" }, +{ "ER_QUERY_CACHE_DISABLED", 1651, "Query cache is disabled; set query_cache_type to ON or DEMAND to enable it" }, +{ "ER_SAME_NAME_PARTITION_FIELD", 1652, "Duplicate partition field name \'%-.192s\'" }, +{ "ER_PARTITION_COLUMN_LIST_ERROR", 1653, "Inconsistency in usage of column lists for partitioning" }, +{ "ER_WRONG_TYPE_COLUMN_VALUE_ERROR", 1654, "Partition column values of incorrect type" }, +{ "ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR", 1655, "Too many fields in \'%-.192s\'" }, +{ "ER_MAXVALUE_IN_VALUES_IN", 1656, "Cannot use MAXVALUE as value in VALUES IN" }, +{ "ER_TOO_MANY_VALUES_ERROR", 1657, "Cannot have more than one value for this type of %-.64s partitioning" }, +{ "ER_ROW_SINGLE_PARTITION_FIELD_ERROR", 1658, "Row expressions in VALUES IN only allowed for multi-field column partitioning" }, +{ "ER_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD", 1659, "Field \'%-.192s\' is of a not allowed type for this type of partitioning" }, +{ "ER_PARTITION_FIELDS_TOO_LONG", 1660, "The total length of the partitioning fields is too large" }, +{ "ER_BINLOG_ROW_ENGINE_AND_STMT_ENGINE", 1661, "Cannot execute statement: impossible to write to binary log since both row-incapable engines and statement-incapable engines are involved." }, +{ "ER_BINLOG_ROW_MODE_AND_STMT_ENGINE", 1662, "Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = ROW and at least one table uses a storage engine limited to statement-based logging." }, +{ "ER_BINLOG_UNSAFE_AND_STMT_ENGINE", 1663, "Cannot execute statement: impossible to write to binary log since statement is unsafe, storage engine is limited to statement-based logging, and BINLOG_FORMAT = MIXED. %s" }, +{ "ER_BINLOG_ROW_INJECTION_AND_STMT_ENGINE", 1664, "Cannot execute statement: impossible to write to binary log since statement is in row format and at least one table uses a storage engine limited to statement-based logging." }, +{ "ER_BINLOG_STMT_MODE_AND_ROW_ENGINE", 1665, "Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging.%s" }, +{ "ER_BINLOG_ROW_INJECTION_AND_STMT_MODE", 1666, "Cannot execute statement: impossible to write to binary log since statement is in row format and BINLOG_FORMAT = STATEMENT." }, +{ "ER_BINLOG_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE", 1667, "Cannot execute statement: impossible to write to binary log since more than one engine is involved and at least one engine is self-logging." }, +{ "ER_BINLOG_UNSAFE_LIMIT", 1668, "The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted." }, +{ "ER_BINLOG_UNSAFE_INSERT_DELAYED", 1669, "The statement is unsafe because it uses INSERT DELAYED. This is unsafe because the times when rows are inserted cannot be predicted." }, +{ "ER_BINLOG_UNSAFE_SYSTEM_TABLE", 1670, "The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves." }, +{ "ER_BINLOG_UNSAFE_AUTOINC_COLUMNS", 1671, "Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly." }, +{ "ER_BINLOG_UNSAFE_UDF", 1672, "Statement is unsafe because it uses a UDF which may not return the same value on the slave." }, +{ "ER_BINLOG_UNSAFE_SYSTEM_VARIABLE", 1673, "Statement is unsafe because it uses a system variable that may have a different value on the slave." }, +{ "ER_BINLOG_UNSAFE_SYSTEM_FUNCTION", 1674, "Statement is unsafe because it uses a system function that may return a different value on the slave." }, +{ "ER_BINLOG_UNSAFE_NONTRANS_AFTER_TRANS", 1675, "Statement is unsafe because it accesses a non-transactional table after accessing a transactional table within the same transaction." }, +{ "ER_MESSAGE_AND_STATEMENT", 1676, "%s Statement: %s" }, +{ "ER_SLAVE_CONVERSION_FAILED", 1677, "Column %d of table \'%-.192s.%-.192s\' cannot be converted from type \'%-.32s\' to type \'%-.32s\'" }, +{ "ER_SLAVE_CANT_CREATE_CONVERSION", 1678, "Can\'t create conversion table for table \'%-.192s.%-.192s\'" }, +{ "ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_FORMAT", 1679, "Cannot modify @@session.binlog_format inside a transaction" }, +{ "ER_PATH_LENGTH", 1680, "The path specified for %.64s is too long." }, +{ "ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT", 1681, "\'%s\' is deprecated and will be removed in a future release." }, +{ "ER_WRONG_NATIVE_TABLE_STRUCTURE", 1682, "Native table \'%-.64s\'.\'%-.64s\' has the wrong structure" }, +{ "ER_WRONG_PERFSCHEMA_USAGE", 1683, "Invalid performance_schema usage." }, +{ "ER_WARN_I_S_SKIPPED_TABLE", 1684, "Table \'%s\'.\'%s\' was skipped since its definition is being modified by concurrent DDL statement" }, +{ "ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_DIRECT", 1685, "Cannot modify @@session.binlog_direct_non_transactional_updates inside a transaction" }, +{ "ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_DIRECT", 1686, "Cannot change the binlog direct flag inside a stored function or trigger" }, +{ "ER_SPATIAL_MUST_HAVE_GEOM_COL", 1687, "A SPATIAL index may only contain a geometrical type column" }, +{ "ER_TOO_LONG_INDEX_COMMENT", 1688, "Comment for index \'%-.64s\' is too long (max = %lu)" }, +{ "ER_LOCK_ABORTED", 1689, "Wait on a lock was aborted due to a pending exclusive lock" }, +{ "ER_DATA_OUT_OF_RANGE", 1690, "%s value is out of range in \'%s\'" }, +{ "ER_WRONG_SPVAR_TYPE_IN_LIMIT", 1691, "A variable of a non-integer based type in LIMIT clause" }, +{ "ER_BINLOG_UNSAFE_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE", 1692, "Mixing self-logging and non-self-logging engines in a statement is unsafe." }, +{ "ER_BINLOG_UNSAFE_MIXED_STATEMENT", 1693, "Statement accesses nontransactional table as well as transactional or temporary table, and writes to any of them." }, +{ "ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_SQL_LOG_BIN", 1694, "Cannot modify @@session.sql_log_bin inside a transaction" }, +{ "ER_STORED_FUNCTION_PREVENTS_SWITCH_SQL_LOG_BIN", 1695, "Cannot change the sql_log_bin inside a stored function or trigger" }, +{ "ER_FAILED_READ_FROM_PAR_FILE", 1696, "Failed to read from the .par file" }, +{ "ER_VALUES_IS_NOT_INT_TYPE_ERROR", 1697, "VALUES value for partition \'%-.64s\' must have type INT" }, +{ "ER_ACCESS_DENIED_NO_PASSWORD_ERROR", 1698, "Access denied for user \'%s\'@\'%s\'" }, +{ "ER_SET_PASSWORD_AUTH_PLUGIN", 1699, "SET PASSWORD has no significance for users authenticating via plugins" }, +{ "ER_GRANT_PLUGIN_USER_EXISTS", 1700, "GRANT with IDENTIFIED WITH is illegal because the user %-.*s already exists" }, +{ "ER_TRUNCATE_ILLEGAL_FK", 1701, "Cannot truncate a table referenced in a foreign key constraint (%.192s)" }, +{ "ER_PLUGIN_IS_PERMANENT", 1702, "Plugin \'%s\' is force_plus_permanent and can not be unloaded" }, +{ "ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN", 1703, "The requested value for the heartbeat period is less than 1 millisecond. The value is reset to 0, meaning that heartbeating will effectively be disabled." }, +{ "ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX", 1704, "The requested value for the heartbeat period exceeds the value of `slave_net_timeout\' seconds. A sensible value for the period should be less than the timeout." }, +{ "ER_STMT_CACHE_FULL", 1705, "Multi-row statements required more than \'max_binlog_stmt_cache_size\' bytes of storage; increase this mysqld variable and try again" }, +{ "ER_MULTI_UPDATE_KEY_CONFLICT", 1706, "Primary key/partition key update is not allowed since the table is updated both as \'%-.192s\' and \'%-.192s\'." }, +{ "ER_TABLE_NEEDS_REBUILD", 1707, "Table rebuild required. Please do \"ALTER TABLE `%-.32s` FORCE\" or dump/reload to fix it!" }, +{ "WARN_OPTION_BELOW_LIMIT", 1708, "The value of \'%s\' should be no less than the value of \'%s\'" }, +{ "ER_INDEX_COLUMN_TOO_LONG", 1709, "Index column size too large. The maximum column size is %lu bytes." }, +{ "ER_ERROR_IN_TRIGGER_BODY", 1710, "Trigger \'%-.64s\' has an error in its body: \'%-.256s\'" }, +{ "ER_ERROR_IN_UNKNOWN_TRIGGER_BODY", 1711, "Unknown trigger has an error in its body: \'%-.256s\'" }, +{ "ER_INDEX_CORRUPT", 1712, "Index %s is corrupted" }, +{ "ER_UNDO_RECORD_TOO_BIG", 1713, "Undo log record is too big." }, +{ "ER_BINLOG_UNSAFE_INSERT_IGNORE_SELECT", 1714, "INSERT IGNORE... SELECT is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are ignored. This order cannot be predicted and may differ on master and the slave." }, +{ "ER_BINLOG_UNSAFE_INSERT_SELECT_UPDATE", 1715, "INSERT... SELECT... ON DUPLICATE KEY UPDATE is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are updated. This order cannot be predicted and may differ on master and the slave." }, +{ "ER_BINLOG_UNSAFE_REPLACE_SELECT", 1716, "REPLACE... SELECT is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are replaced. This order cannot be predicted and may differ on master and the slave." }, +{ "ER_BINLOG_UNSAFE_CREATE_IGNORE_SELECT", 1717, "CREATE... IGNORE SELECT is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are ignored. This order cannot be predicted and may differ on master and the slave." }, +{ "ER_BINLOG_UNSAFE_CREATE_REPLACE_SELECT", 1718, "CREATE... REPLACE SELECT is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are replaced. This order cannot be predicted and may differ on master and the slave." }, +{ "ER_BINLOG_UNSAFE_UPDATE_IGNORE", 1719, "UPDATE IGNORE is unsafe because the order in which rows are updated determines which (if any) rows are ignored. This order cannot be predicted and may differ on master and the slave." }, +{ "ER_PLUGIN_NO_UNINSTALL", 1720, "Plugin \'%s\' is marked as not dynamically uninstallable. You have to stop the server to uninstall it." }, +{ "ER_PLUGIN_NO_INSTALL", 1721, "Plugin \'%s\' is marked as not dynamically installable. You have to stop the server to install it." }, +{ "ER_BINLOG_UNSAFE_WRITE_AUTOINC_SELECT", 1722, "Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave." }, +{ "ER_BINLOG_UNSAFE_CREATE_SELECT_AUTOINC", 1723, "CREATE TABLE... SELECT... on a table with an auto-increment column is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are inserted. This order cannot be predicted and may differ on master and the slave." }, +{ "ER_BINLOG_UNSAFE_INSERT_TWO_KEYS", 1724, "INSERT... ON DUPLICATE KEY UPDATE on a table with more than one UNIQUE KEY is unsafe" }, +{ "ER_TABLE_IN_FK_CHECK", 1725, "Table is being used in foreign key check." }, +{ "ER_UNUSED_1", 1726, "You should never see it" }, +{ "ER_BINLOG_UNSAFE_AUTOINC_NOT_FIRST", 1727, "INSERT into autoincrement field which is not the first part in the composed primary key is unsafe." }, +{ "ER_LAST_MYSQL_ERROR_MESSAGE", 1728, "\"" }, +{ "ER_VCOL_BASED_ON_VCOL", 1900, "A computed column cannot be based on a computed column" }, +{ "ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED", 1901, "Function or expression is not allowed for column \'%s\'" }, +{ "ER_DATA_CONVERSION_ERROR_FOR_VIRTUAL_COLUMN", 1902, "Generated value for computed column \'%s\' cannot be converted to type \'%s\'" }, +{ "ER_PRIMARY_KEY_BASED_ON_VIRTUAL_COLUMN", 1903, "Primary key cannot be defined upon a computed column" }, +{ "ER_KEY_BASED_ON_GENERATED_VIRTUAL_COLUMN", 1904, "Key/Index cannot be defined on a non-stored computed column" }, +{ "ER_WRONG_FK_OPTION_FOR_VIRTUAL_COLUMN", 1905, "Cannot define foreign key with %s clause on a computed column" }, +{ "ER_WARNING_NON_DEFAULT_VALUE_FOR_VIRTUAL_COLUMN", 1906, "The value specified for computed column \'%s\' in table \'%s\' has been ignored" }, +{ "ER_UNSUPPORTED_ACTION_ON_VIRTUAL_COLUMN", 1907, "This is not yet supported for computed columns" }, +{ "ER_CONST_EXPR_IN_VCOL", 1908, "Constant expression in computed column function is not allowed" }, +{ "ER_ROW_EXPR_FOR_VCOL", 1909, "Expression for computed column cannot return a row" }, +{ "ER_UNSUPPORTED_ENGINE_FOR_VIRTUAL_COLUMNS", 1910, "%s storage engine does not support computed columns" }, +{ "ER_UNKNOWN_OPTION", 1911, "Unknown option \'%-.64s\'" }, +{ "ER_BAD_OPTION_VALUE", 1912, "Incorrect value \'%-.64s\' for option \'%-.64s\'" }, +{ "ER_NETWORK_READ_EVENT_CHECKSUM_FAILURE", 1913, "Replication event checksum verification failed while reading from network." }, +{ "ER_BINLOG_READ_EVENT_CHECKSUM_FAILURE", 1914, "Replication event checksum verification failed while reading from a log file." }, +{ "ER_CANT_DO_ONLINE", 1915, "Can\'t execute the given \'%s\' command as online" }, +{ "ER_DATA_OVERFLOW", 1916, "Got overflow when converting \'%-.128s\' to %-.32s. Value truncated." }, +{ "ER_DATA_TRUNCATED", 1917, "Truncated value \'%-.128s\' when converting to %-.32s" }, +{ "ER_BAD_DATA", 1918, "Encountered illegal value \'%-.128s\' when converting to %-.32s" }, +{ "ER_DYN_COL_WRONG_FORMAT", 1919, "Encountered illegal format of dynamic column string" }, +{ "ER_DYN_COL_IMPLEMENTATION_LIMIT", 1920, "Dynamic column implementation limit reached" }, +{ "ER_DYN_COL_DATA", 1921, "Illegal value used as argument of dynamic column function" }, +{ "ER_DYN_COL_WRONG_CHARSET", 1922, "Dynamic column contains unknown character set" }, +{ "ER_ILLEGAL_SUBQUERY_OPTIMIZER_SWITCHES", 1923, "At least one of the \'in_to_exists\' or \'materialization\' optimizer_switch flags must be \'on\'." }, +{ "ER_QUERY_CACHE_IS_DISABLED", 1924, "Query cache is disabled (resize or similar command in progress); repeat this command later" }, +{ "ER_QUERY_CACHE_IS_GLOBALY_DISABLED", 1925, "Query cache is globally disabled and you can\'t enable it only for this session" }, +{ "ER_VIEW_ORDERBY_IGNORED", 1926, "View \'%-.192s\'.\'%-.192s\' ORDER BY clause ignored because there is other ORDER BY clause already." }, +{ "ER_CONNECTION_KILLED", 1927, "Connection was killed" }, +{ "ER_INTERNAL_ERROR", 1928, "Internal error: \'%-.192s\'" }, +{ "ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_SKIP_REPLICATION", 1929, "Cannot modify @@session.skip_replication inside a transaction" }, +{ "ER_STORED_FUNCTION_PREVENTS_SWITCH_SKIP_REPLICATION", 1930, "Cannot modify @@session.skip_replication inside a stored function or trigger" }, +{ "ER_QUERY_EXCEEDED_ROWS_EXAMINED_LIMIT", 1931, "Query execution was interrupted. The query examined at least %llu rows, which exceeds LIMIT ROWS EXAMINED (%llu). The query result may be incomplete." }, +{ "ER_NO_SUCH_TABLE_IN_ENGINE", 1932, "Table \'%-.192s.%-.192s\' doesn\'t exist in engine" }, diff --git a/database/include/mysql/mysqld_error.h b/database/include/mysql/mysqld_error.h new file mode 100644 index 0000000..07db928 --- /dev/null +++ b/database/include/mysql/mysqld_error.h @@ -0,0 +1,769 @@ +/* Autogenerated file, please don't edit */ + +#define ER_ERROR_FIRST 1000 +#define ER_HASHCHK 1000 +#define ER_NISAMCHK 1001 +#define ER_NO 1002 +#define ER_YES 1003 +#define ER_CANT_CREATE_FILE 1004 +#define ER_CANT_CREATE_TABLE 1005 +#define ER_CANT_CREATE_DB 1006 +#define ER_DB_CREATE_EXISTS 1007 +#define ER_DB_DROP_EXISTS 1008 +#define ER_DB_DROP_DELETE 1009 +#define ER_DB_DROP_RMDIR 1010 +#define ER_CANT_DELETE_FILE 1011 +#define ER_CANT_FIND_SYSTEM_REC 1012 +#define ER_CANT_GET_STAT 1013 +#define ER_CANT_GET_WD 1014 +#define ER_CANT_LOCK 1015 +#define ER_CANT_OPEN_FILE 1016 +#define ER_FILE_NOT_FOUND 1017 +#define ER_CANT_READ_DIR 1018 +#define ER_CANT_SET_WD 1019 +#define ER_CHECKREAD 1020 +#define ER_DISK_FULL 1021 +#define ER_DUP_KEY 1022 +#define ER_ERROR_ON_CLOSE 1023 +#define ER_ERROR_ON_READ 1024 +#define ER_ERROR_ON_RENAME 1025 +#define ER_ERROR_ON_WRITE 1026 +#define ER_FILE_USED 1027 +#define ER_FILSORT_ABORT 1028 +#define ER_FORM_NOT_FOUND 1029 +#define ER_GET_ERRNO 1030 +#define ER_ILLEGAL_HA 1031 +#define ER_KEY_NOT_FOUND 1032 +#define ER_NOT_FORM_FILE 1033 +#define ER_NOT_KEYFILE 1034 +#define ER_OLD_KEYFILE 1035 +#define ER_OPEN_AS_READONLY 1036 +#define ER_OUTOFMEMORY 1037 +#define ER_OUT_OF_SORTMEMORY 1038 +#define ER_UNEXPECTED_EOF 1039 +#define ER_CON_COUNT_ERROR 1040 +#define ER_OUT_OF_RESOURCES 1041 +#define ER_BAD_HOST_ERROR 1042 +#define ER_HANDSHAKE_ERROR 1043 +#define ER_DBACCESS_DENIED_ERROR 1044 +#define ER_ACCESS_DENIED_ERROR 1045 +#define ER_NO_DB_ERROR 1046 +#define ER_UNKNOWN_COM_ERROR 1047 +#define ER_BAD_NULL_ERROR 1048 +#define ER_BAD_DB_ERROR 1049 +#define ER_TABLE_EXISTS_ERROR 1050 +#define ER_BAD_TABLE_ERROR 1051 +#define ER_NON_UNIQ_ERROR 1052 +#define ER_SERVER_SHUTDOWN 1053 +#define ER_BAD_FIELD_ERROR 1054 +#define ER_WRONG_FIELD_WITH_GROUP 1055 +#define ER_WRONG_GROUP_FIELD 1056 +#define ER_WRONG_SUM_SELECT 1057 +#define ER_WRONG_VALUE_COUNT 1058 +#define ER_TOO_LONG_IDENT 1059 +#define ER_DUP_FIELDNAME 1060 +#define ER_DUP_KEYNAME 1061 +#define ER_DUP_ENTRY 1062 +#define ER_WRONG_FIELD_SPEC 1063 +#define ER_PARSE_ERROR 1064 +#define ER_EMPTY_QUERY 1065 +#define ER_NONUNIQ_TABLE 1066 +#define ER_INVALID_DEFAULT 1067 +#define ER_MULTIPLE_PRI_KEY 1068 +#define ER_TOO_MANY_KEYS 1069 +#define ER_TOO_MANY_KEY_PARTS 1070 +#define ER_TOO_LONG_KEY 1071 +#define ER_KEY_COLUMN_DOES_NOT_EXITS 1072 +#define ER_BLOB_USED_AS_KEY 1073 +#define ER_TOO_BIG_FIELDLENGTH 1074 +#define ER_WRONG_AUTO_KEY 1075 +#define ER_UNUSED_2 1076 +#define ER_NORMAL_SHUTDOWN 1077 +#define ER_GOT_SIGNAL 1078 +#define ER_SHUTDOWN_COMPLETE 1079 +#define ER_FORCING_CLOSE 1080 +#define ER_IPSOCK_ERROR 1081 +#define ER_NO_SUCH_INDEX 1082 +#define ER_WRONG_FIELD_TERMINATORS 1083 +#define ER_BLOBS_AND_NO_TERMINATED 1084 +#define ER_TEXTFILE_NOT_READABLE 1085 +#define ER_FILE_EXISTS_ERROR 1086 +#define ER_LOAD_INFO 1087 +#define ER_ALTER_INFO 1088 +#define ER_WRONG_SUB_KEY 1089 +#define ER_CANT_REMOVE_ALL_FIELDS 1090 +#define ER_CANT_DROP_FIELD_OR_KEY 1091 +#define ER_INSERT_INFO 1092 +#define ER_UPDATE_TABLE_USED 1093 +#define ER_NO_SUCH_THREAD 1094 +#define ER_KILL_DENIED_ERROR 1095 +#define ER_NO_TABLES_USED 1096 +#define ER_TOO_BIG_SET 1097 +#define ER_NO_UNIQUE_LOGFILE 1098 +#define ER_TABLE_NOT_LOCKED_FOR_WRITE 1099 +#define ER_TABLE_NOT_LOCKED 1100 +#define ER_BLOB_CANT_HAVE_DEFAULT 1101 +#define ER_WRONG_DB_NAME 1102 +#define ER_WRONG_TABLE_NAME 1103 +#define ER_TOO_BIG_SELECT 1104 +#define ER_UNKNOWN_ERROR 1105 +#define ER_UNKNOWN_PROCEDURE 1106 +#define ER_WRONG_PARAMCOUNT_TO_PROCEDURE 1107 +#define ER_WRONG_PARAMETERS_TO_PROCEDURE 1108 +#define ER_UNKNOWN_TABLE 1109 +#define ER_FIELD_SPECIFIED_TWICE 1110 +#define ER_INVALID_GROUP_FUNC_USE 1111 +#define ER_UNSUPPORTED_EXTENSION 1112 +#define ER_TABLE_MUST_HAVE_COLUMNS 1113 +#define ER_RECORD_FILE_FULL 1114 +#define ER_UNKNOWN_CHARACTER_SET 1115 +#define ER_TOO_MANY_TABLES 1116 +#define ER_TOO_MANY_FIELDS 1117 +#define ER_TOO_BIG_ROWSIZE 1118 +#define ER_STACK_OVERRUN 1119 +#define ER_WRONG_OUTER_JOIN 1120 +#define ER_NULL_COLUMN_IN_INDEX 1121 +#define ER_CANT_FIND_UDF 1122 +#define ER_CANT_INITIALIZE_UDF 1123 +#define ER_UDF_NO_PATHS 1124 +#define ER_UDF_EXISTS 1125 +#define ER_CANT_OPEN_LIBRARY 1126 +#define ER_CANT_FIND_DL_ENTRY 1127 +#define ER_FUNCTION_NOT_DEFINED 1128 +#define ER_HOST_IS_BLOCKED 1129 +#define ER_HOST_NOT_PRIVILEGED 1130 +#define ER_PASSWORD_ANONYMOUS_USER 1131 +#define ER_PASSWORD_NOT_ALLOWED 1132 +#define ER_PASSWORD_NO_MATCH 1133 +#define ER_UPDATE_INFO 1134 +#define ER_CANT_CREATE_THREAD 1135 +#define ER_WRONG_VALUE_COUNT_ON_ROW 1136 +#define ER_CANT_REOPEN_TABLE 1137 +#define ER_INVALID_USE_OF_NULL 1138 +#define ER_REGEXP_ERROR 1139 +#define ER_MIX_OF_GROUP_FUNC_AND_FIELDS 1140 +#define ER_NONEXISTING_GRANT 1141 +#define ER_TABLEACCESS_DENIED_ERROR 1142 +#define ER_COLUMNACCESS_DENIED_ERROR 1143 +#define ER_ILLEGAL_GRANT_FOR_TABLE 1144 +#define ER_GRANT_WRONG_HOST_OR_USER 1145 +#define ER_NO_SUCH_TABLE 1146 +#define ER_NONEXISTING_TABLE_GRANT 1147 +#define ER_NOT_ALLOWED_COMMAND 1148 +#define ER_SYNTAX_ERROR 1149 +#define ER_DELAYED_CANT_CHANGE_LOCK 1150 +#define ER_TOO_MANY_DELAYED_THREADS 1151 +#define ER_ABORTING_CONNECTION 1152 +#define ER_NET_PACKET_TOO_LARGE 1153 +#define ER_NET_READ_ERROR_FROM_PIPE 1154 +#define ER_NET_FCNTL_ERROR 1155 +#define ER_NET_PACKETS_OUT_OF_ORDER 1156 +#define ER_NET_UNCOMPRESS_ERROR 1157 +#define ER_NET_READ_ERROR 1158 +#define ER_NET_READ_INTERRUPTED 1159 +#define ER_NET_ERROR_ON_WRITE 1160 +#define ER_NET_WRITE_INTERRUPTED 1161 +#define ER_TOO_LONG_STRING 1162 +#define ER_TABLE_CANT_HANDLE_BLOB 1163 +#define ER_TABLE_CANT_HANDLE_AUTO_INCREMENT 1164 +#define ER_DELAYED_INSERT_TABLE_LOCKED 1165 +#define ER_WRONG_COLUMN_NAME 1166 +#define ER_WRONG_KEY_COLUMN 1167 +#define ER_WRONG_MRG_TABLE 1168 +#define ER_DUP_UNIQUE 1169 +#define ER_BLOB_KEY_WITHOUT_LENGTH 1170 +#define ER_PRIMARY_CANT_HAVE_NULL 1171 +#define ER_TOO_MANY_ROWS 1172 +#define ER_REQUIRES_PRIMARY_KEY 1173 +#define ER_NO_RAID_COMPILED 1174 +#define ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE 1175 +#define ER_KEY_DOES_NOT_EXITS 1176 +#define ER_CHECK_NO_SUCH_TABLE 1177 +#define ER_CHECK_NOT_IMPLEMENTED 1178 +#define ER_CANT_DO_THIS_DURING_AN_TRANSACTION 1179 +#define ER_ERROR_DURING_COMMIT 1180 +#define ER_ERROR_DURING_ROLLBACK 1181 +#define ER_ERROR_DURING_FLUSH_LOGS 1182 +#define ER_ERROR_DURING_CHECKPOINT 1183 +#define ER_NEW_ABORTING_CONNECTION 1184 +#define ER_DUMP_NOT_IMPLEMENTED 1185 +#define ER_FLUSH_MASTER_BINLOG_CLOSED 1186 +#define ER_INDEX_REBUILD 1187 +#define ER_MASTER 1188 +#define ER_MASTER_NET_READ 1189 +#define ER_MASTER_NET_WRITE 1190 +#define ER_FT_MATCHING_KEY_NOT_FOUND 1191 +#define ER_LOCK_OR_ACTIVE_TRANSACTION 1192 +#define ER_UNKNOWN_SYSTEM_VARIABLE 1193 +#define ER_CRASHED_ON_USAGE 1194 +#define ER_CRASHED_ON_REPAIR 1195 +#define ER_WARNING_NOT_COMPLETE_ROLLBACK 1196 +#define ER_TRANS_CACHE_FULL 1197 +#define ER_SLAVE_MUST_STOP 1198 +#define ER_SLAVE_NOT_RUNNING 1199 +#define ER_BAD_SLAVE 1200 +#define ER_MASTER_INFO 1201 +#define ER_SLAVE_THREAD 1202 +#define ER_TOO_MANY_USER_CONNECTIONS 1203 +#define ER_SET_CONSTANTS_ONLY 1204 +#define ER_LOCK_WAIT_TIMEOUT 1205 +#define ER_LOCK_TABLE_FULL 1206 +#define ER_READ_ONLY_TRANSACTION 1207 +#define ER_DROP_DB_WITH_READ_LOCK 1208 +#define ER_CREATE_DB_WITH_READ_LOCK 1209 +#define ER_WRONG_ARGUMENTS 1210 +#define ER_NO_PERMISSION_TO_CREATE_USER 1211 +#define ER_UNION_TABLES_IN_DIFFERENT_DIR 1212 +#define ER_LOCK_DEADLOCK 1213 +#define ER_TABLE_CANT_HANDLE_FT 1214 +#define ER_CANNOT_ADD_FOREIGN 1215 +#define ER_NO_REFERENCED_ROW 1216 +#define ER_ROW_IS_REFERENCED 1217 +#define ER_CONNECT_TO_MASTER 1218 +#define ER_QUERY_ON_MASTER 1219 +#define ER_ERROR_WHEN_EXECUTING_COMMAND 1220 +#define ER_WRONG_USAGE 1221 +#define ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT 1222 +#define ER_CANT_UPDATE_WITH_READLOCK 1223 +#define ER_MIXING_NOT_ALLOWED 1224 +#define ER_DUP_ARGUMENT 1225 +#define ER_USER_LIMIT_REACHED 1226 +#define ER_SPECIFIC_ACCESS_DENIED_ERROR 1227 +#define ER_LOCAL_VARIABLE 1228 +#define ER_GLOBAL_VARIABLE 1229 +#define ER_NO_DEFAULT 1230 +#define ER_WRONG_VALUE_FOR_VAR 1231 +#define ER_WRONG_TYPE_FOR_VAR 1232 +#define ER_VAR_CANT_BE_READ 1233 +#define ER_CANT_USE_OPTION_HERE 1234 +#define ER_NOT_SUPPORTED_YET 1235 +#define ER_MASTER_FATAL_ERROR_READING_BINLOG 1236 +#define ER_SLAVE_IGNORED_TABLE 1237 +#define ER_INCORRECT_GLOBAL_LOCAL_VAR 1238 +#define ER_WRONG_FK_DEF 1239 +#define ER_KEY_REF_DO_NOT_MATCH_TABLE_REF 1240 +#define ER_OPERAND_COLUMNS 1241 +#define ER_SUBQUERY_NO_1_ROW 1242 +#define ER_UNKNOWN_STMT_HANDLER 1243 +#define ER_CORRUPT_HELP_DB 1244 +#define ER_CYCLIC_REFERENCE 1245 +#define ER_AUTO_CONVERT 1246 +#define ER_ILLEGAL_REFERENCE 1247 +#define ER_DERIVED_MUST_HAVE_ALIAS 1248 +#define ER_SELECT_REDUCED 1249 +#define ER_TABLENAME_NOT_ALLOWED_HERE 1250 +#define ER_NOT_SUPPORTED_AUTH_MODE 1251 +#define ER_SPATIAL_CANT_HAVE_NULL 1252 +#define ER_COLLATION_CHARSET_MISMATCH 1253 +#define ER_SLAVE_WAS_RUNNING 1254 +#define ER_SLAVE_WAS_NOT_RUNNING 1255 +#define ER_TOO_BIG_FOR_UNCOMPRESS 1256 +#define ER_ZLIB_Z_MEM_ERROR 1257 +#define ER_ZLIB_Z_BUF_ERROR 1258 +#define ER_ZLIB_Z_DATA_ERROR 1259 +#define ER_CUT_VALUE_GROUP_CONCAT 1260 +#define ER_WARN_TOO_FEW_RECORDS 1261 +#define ER_WARN_TOO_MANY_RECORDS 1262 +#define ER_WARN_NULL_TO_NOTNULL 1263 +#define ER_WARN_DATA_OUT_OF_RANGE 1264 +#define WARN_DATA_TRUNCATED 1265 +#define ER_WARN_USING_OTHER_HANDLER 1266 +#define ER_CANT_AGGREGATE_2COLLATIONS 1267 +#define ER_DROP_USER 1268 +#define ER_REVOKE_GRANTS 1269 +#define ER_CANT_AGGREGATE_3COLLATIONS 1270 +#define ER_CANT_AGGREGATE_NCOLLATIONS 1271 +#define ER_VARIABLE_IS_NOT_STRUCT 1272 +#define ER_UNKNOWN_COLLATION 1273 +#define ER_SLAVE_IGNORED_SSL_PARAMS 1274 +#define ER_SERVER_IS_IN_SECURE_AUTH_MODE 1275 +#define ER_WARN_FIELD_RESOLVED 1276 +#define ER_BAD_SLAVE_UNTIL_COND 1277 +#define ER_MISSING_SKIP_SLAVE 1278 +#define ER_UNTIL_COND_IGNORED 1279 +#define ER_WRONG_NAME_FOR_INDEX 1280 +#define ER_WRONG_NAME_FOR_CATALOG 1281 +#define ER_WARN_QC_RESIZE 1282 +#define ER_BAD_FT_COLUMN 1283 +#define ER_UNKNOWN_KEY_CACHE 1284 +#define ER_WARN_HOSTNAME_WONT_WORK 1285 +#define ER_UNKNOWN_STORAGE_ENGINE 1286 +#define ER_WARN_DEPRECATED_SYNTAX 1287 +#define ER_NON_UPDATABLE_TABLE 1288 +#define ER_FEATURE_DISABLED 1289 +#define ER_OPTION_PREVENTS_STATEMENT 1290 +#define ER_DUPLICATED_VALUE_IN_TYPE 1291 +#define ER_TRUNCATED_WRONG_VALUE 1292 +#define ER_TOO_MUCH_AUTO_TIMESTAMP_COLS 1293 +#define ER_INVALID_ON_UPDATE 1294 +#define ER_UNSUPPORTED_PS 1295 +#define ER_GET_ERRMSG 1296 +#define ER_GET_TEMPORARY_ERRMSG 1297 +#define ER_UNKNOWN_TIME_ZONE 1298 +#define ER_WARN_INVALID_TIMESTAMP 1299 +#define ER_INVALID_CHARACTER_STRING 1300 +#define ER_WARN_ALLOWED_PACKET_OVERFLOWED 1301 +#define ER_CONFLICTING_DECLARATIONS 1302 +#define ER_SP_NO_RECURSIVE_CREATE 1303 +#define ER_SP_ALREADY_EXISTS 1304 +#define ER_SP_DOES_NOT_EXIST 1305 +#define ER_SP_DROP_FAILED 1306 +#define ER_SP_STORE_FAILED 1307 +#define ER_SP_LILABEL_MISMATCH 1308 +#define ER_SP_LABEL_REDEFINE 1309 +#define ER_SP_LABEL_MISMATCH 1310 +#define ER_SP_UNINIT_VAR 1311 +#define ER_SP_BADSELECT 1312 +#define ER_SP_BADRETURN 1313 +#define ER_SP_BADSTATEMENT 1314 +#define ER_UPDATE_LOG_DEPRECATED_IGNORED 1315 +#define ER_UPDATE_LOG_DEPRECATED_TRANSLATED 1316 +#define ER_QUERY_INTERRUPTED 1317 +#define ER_SP_WRONG_NO_OF_ARGS 1318 +#define ER_SP_COND_MISMATCH 1319 +#define ER_SP_NORETURN 1320 +#define ER_SP_NORETURNEND 1321 +#define ER_SP_BAD_CURSOR_QUERY 1322 +#define ER_SP_BAD_CURSOR_SELECT 1323 +#define ER_SP_CURSOR_MISMATCH 1324 +#define ER_SP_CURSOR_ALREADY_OPEN 1325 +#define ER_SP_CURSOR_NOT_OPEN 1326 +#define ER_SP_UNDECLARED_VAR 1327 +#define ER_SP_WRONG_NO_OF_FETCH_ARGS 1328 +#define ER_SP_FETCH_NO_DATA 1329 +#define ER_SP_DUP_PARAM 1330 +#define ER_SP_DUP_VAR 1331 +#define ER_SP_DUP_COND 1332 +#define ER_SP_DUP_CURS 1333 +#define ER_SP_CANT_ALTER 1334 +#define ER_SP_SUBSELECT_NYI 1335 +#define ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG 1336 +#define ER_SP_VARCOND_AFTER_CURSHNDLR 1337 +#define ER_SP_CURSOR_AFTER_HANDLER 1338 +#define ER_SP_CASE_NOT_FOUND 1339 +#define ER_FPARSER_TOO_BIG_FILE 1340 +#define ER_FPARSER_BAD_HEADER 1341 +#define ER_FPARSER_EOF_IN_COMMENT 1342 +#define ER_FPARSER_ERROR_IN_PARAMETER 1343 +#define ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER 1344 +#define ER_VIEW_NO_EXPLAIN 1345 +#define ER_FRM_UNKNOWN_TYPE 1346 +#define ER_WRONG_OBJECT 1347 +#define ER_NONUPDATEABLE_COLUMN 1348 +#define ER_VIEW_SELECT_DERIVED 1349 +#define ER_VIEW_SELECT_CLAUSE 1350 +#define ER_VIEW_SELECT_VARIABLE 1351 +#define ER_VIEW_SELECT_TMPTABLE 1352 +#define ER_VIEW_WRONG_LIST 1353 +#define ER_WARN_VIEW_MERGE 1354 +#define ER_WARN_VIEW_WITHOUT_KEY 1355 +#define ER_VIEW_INVALID 1356 +#define ER_SP_NO_DROP_SP 1357 +#define ER_SP_GOTO_IN_HNDLR 1358 +#define ER_TRG_ALREADY_EXISTS 1359 +#define ER_TRG_DOES_NOT_EXIST 1360 +#define ER_TRG_ON_VIEW_OR_TEMP_TABLE 1361 +#define ER_TRG_CANT_CHANGE_ROW 1362 +#define ER_TRG_NO_SUCH_ROW_IN_TRG 1363 +#define ER_NO_DEFAULT_FOR_FIELD 1364 +#define ER_DIVISION_BY_ZERO 1365 +#define ER_TRUNCATED_WRONG_VALUE_FOR_FIELD 1366 +#define ER_ILLEGAL_VALUE_FOR_TYPE 1367 +#define ER_VIEW_NONUPD_CHECK 1368 +#define ER_VIEW_CHECK_FAILED 1369 +#define ER_PROCACCESS_DENIED_ERROR 1370 +#define ER_RELAY_LOG_FAIL 1371 +#define ER_PASSWD_LENGTH 1372 +#define ER_UNKNOWN_TARGET_BINLOG 1373 +#define ER_IO_ERR_LOG_INDEX_READ 1374 +#define ER_BINLOG_PURGE_PROHIBITED 1375 +#define ER_FSEEK_FAIL 1376 +#define ER_BINLOG_PURGE_FATAL_ERR 1377 +#define ER_LOG_IN_USE 1378 +#define ER_LOG_PURGE_UNKNOWN_ERR 1379 +#define ER_RELAY_LOG_INIT 1380 +#define ER_NO_BINARY_LOGGING 1381 +#define ER_RESERVED_SYNTAX 1382 +#define ER_WSAS_FAILED 1383 +#define ER_DIFF_GROUPS_PROC 1384 +#define ER_NO_GROUP_FOR_PROC 1385 +#define ER_ORDER_WITH_PROC 1386 +#define ER_LOGGING_PROHIBIT_CHANGING_OF 1387 +#define ER_NO_FILE_MAPPING 1388 +#define ER_WRONG_MAGIC 1389 +#define ER_PS_MANY_PARAM 1390 +#define ER_KEY_PART_0 1391 +#define ER_VIEW_CHECKSUM 1392 +#define ER_VIEW_MULTIUPDATE 1393 +#define ER_VIEW_NO_INSERT_FIELD_LIST 1394 +#define ER_VIEW_DELETE_MERGE_VIEW 1395 +#define ER_CANNOT_USER 1396 +#define ER_XAER_NOTA 1397 +#define ER_XAER_INVAL 1398 +#define ER_XAER_RMFAIL 1399 +#define ER_XAER_OUTSIDE 1400 +#define ER_XAER_RMERR 1401 +#define ER_XA_RBROLLBACK 1402 +#define ER_NONEXISTING_PROC_GRANT 1403 +#define ER_PROC_AUTO_GRANT_FAIL 1404 +#define ER_PROC_AUTO_REVOKE_FAIL 1405 +#define ER_DATA_TOO_LONG 1406 +#define ER_SP_BAD_SQLSTATE 1407 +#define ER_STARTUP 1408 +#define ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR 1409 +#define ER_CANT_CREATE_USER_WITH_GRANT 1410 +#define ER_WRONG_VALUE_FOR_TYPE 1411 +#define ER_TABLE_DEF_CHANGED 1412 +#define ER_SP_DUP_HANDLER 1413 +#define ER_SP_NOT_VAR_ARG 1414 +#define ER_SP_NO_RETSET 1415 +#define ER_CANT_CREATE_GEOMETRY_OBJECT 1416 +#define ER_FAILED_ROUTINE_BREAK_BINLOG 1417 +#define ER_BINLOG_UNSAFE_ROUTINE 1418 +#define ER_BINLOG_CREATE_ROUTINE_NEED_SUPER 1419 +#define ER_EXEC_STMT_WITH_OPEN_CURSOR 1420 +#define ER_STMT_HAS_NO_OPEN_CURSOR 1421 +#define ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG 1422 +#define ER_NO_DEFAULT_FOR_VIEW_FIELD 1423 +#define ER_SP_NO_RECURSION 1424 +#define ER_TOO_BIG_SCALE 1425 +#define ER_TOO_BIG_PRECISION 1426 +#define ER_M_BIGGER_THAN_D 1427 +#define ER_WRONG_LOCK_OF_SYSTEM_TABLE 1428 +#define ER_CONNECT_TO_FOREIGN_DATA_SOURCE 1429 +#define ER_QUERY_ON_FOREIGN_DATA_SOURCE 1430 +#define ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST 1431 +#define ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE 1432 +#define ER_FOREIGN_DATA_STRING_INVALID 1433 +#define ER_CANT_CREATE_FEDERATED_TABLE 1434 +#define ER_TRG_IN_WRONG_SCHEMA 1435 +#define ER_STACK_OVERRUN_NEED_MORE 1436 +#define ER_TOO_LONG_BODY 1437 +#define ER_WARN_CANT_DROP_DEFAULT_KEYCACHE 1438 +#define ER_TOO_BIG_DISPLAYWIDTH 1439 +#define ER_XAER_DUPID 1440 +#define ER_DATETIME_FUNCTION_OVERFLOW 1441 +#define ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG 1442 +#define ER_VIEW_PREVENT_UPDATE 1443 +#define ER_PS_NO_RECURSION 1444 +#define ER_SP_CANT_SET_AUTOCOMMIT 1445 +#define ER_MALFORMED_DEFINER 1446 +#define ER_VIEW_FRM_NO_USER 1447 +#define ER_VIEW_OTHER_USER 1448 +#define ER_NO_SUCH_USER 1449 +#define ER_FORBID_SCHEMA_CHANGE 1450 +#define ER_ROW_IS_REFERENCED_2 1451 +#define ER_NO_REFERENCED_ROW_2 1452 +#define ER_SP_BAD_VAR_SHADOW 1453 +#define ER_TRG_NO_DEFINER 1454 +#define ER_OLD_FILE_FORMAT 1455 +#define ER_SP_RECURSION_LIMIT 1456 +#define ER_SP_PROC_TABLE_CORRUPT 1457 +#define ER_SP_WRONG_NAME 1458 +#define ER_TABLE_NEEDS_UPGRADE 1459 +#define ER_SP_NO_AGGREGATE 1460 +#define ER_MAX_PREPARED_STMT_COUNT_REACHED 1461 +#define ER_VIEW_RECURSIVE 1462 +#define ER_NON_GROUPING_FIELD_USED 1463 +#define ER_TABLE_CANT_HANDLE_SPKEYS 1464 +#define ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA 1465 +#define ER_REMOVED_SPACES 1466 +#define ER_AUTOINC_READ_FAILED 1467 +#define ER_USERNAME 1468 +#define ER_HOSTNAME 1469 +#define ER_WRONG_STRING_LENGTH 1470 +#define ER_NON_INSERTABLE_TABLE 1471 +#define ER_ADMIN_WRONG_MRG_TABLE 1472 +#define ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT 1473 +#define ER_NAME_BECOMES_EMPTY 1474 +#define ER_AMBIGUOUS_FIELD_TERM 1475 +#define ER_FOREIGN_SERVER_EXISTS 1476 +#define ER_FOREIGN_SERVER_DOESNT_EXIST 1477 +#define ER_ILLEGAL_HA_CREATE_OPTION 1478 +#define ER_PARTITION_REQUIRES_VALUES_ERROR 1479 +#define ER_PARTITION_WRONG_VALUES_ERROR 1480 +#define ER_PARTITION_MAXVALUE_ERROR 1481 +#define ER_PARTITION_SUBPARTITION_ERROR 1482 +#define ER_PARTITION_SUBPART_MIX_ERROR 1483 +#define ER_PARTITION_WRONG_NO_PART_ERROR 1484 +#define ER_PARTITION_WRONG_NO_SUBPART_ERROR 1485 +#define ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR 1486 +#define ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR 1487 +#define ER_FIELD_NOT_FOUND_PART_ERROR 1488 +#define ER_LIST_OF_FIELDS_ONLY_IN_HASH_ERROR 1489 +#define ER_INCONSISTENT_PARTITION_INFO_ERROR 1490 +#define ER_PARTITION_FUNC_NOT_ALLOWED_ERROR 1491 +#define ER_PARTITIONS_MUST_BE_DEFINED_ERROR 1492 +#define ER_RANGE_NOT_INCREASING_ERROR 1493 +#define ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR 1494 +#define ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR 1495 +#define ER_PARTITION_ENTRY_ERROR 1496 +#define ER_MIX_HANDLER_ERROR 1497 +#define ER_PARTITION_NOT_DEFINED_ERROR 1498 +#define ER_TOO_MANY_PARTITIONS_ERROR 1499 +#define ER_SUBPARTITION_ERROR 1500 +#define ER_CANT_CREATE_HANDLER_FILE 1501 +#define ER_BLOB_FIELD_IN_PART_FUNC_ERROR 1502 +#define ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF 1503 +#define ER_NO_PARTS_ERROR 1504 +#define ER_PARTITION_MGMT_ON_NONPARTITIONED 1505 +#define ER_FOREIGN_KEY_ON_PARTITIONED 1506 +#define ER_DROP_PARTITION_NON_EXISTENT 1507 +#define ER_DROP_LAST_PARTITION 1508 +#define ER_COALESCE_ONLY_ON_HASH_PARTITION 1509 +#define ER_REORG_HASH_ONLY_ON_SAME_NO 1510 +#define ER_REORG_NO_PARAM_ERROR 1511 +#define ER_ONLY_ON_RANGE_LIST_PARTITION 1512 +#define ER_ADD_PARTITION_SUBPART_ERROR 1513 +#define ER_ADD_PARTITION_NO_NEW_PARTITION 1514 +#define ER_COALESCE_PARTITION_NO_PARTITION 1515 +#define ER_REORG_PARTITION_NOT_EXIST 1516 +#define ER_SAME_NAME_PARTITION 1517 +#define ER_NO_BINLOG_ERROR 1518 +#define ER_CONSECUTIVE_REORG_PARTITIONS 1519 +#define ER_REORG_OUTSIDE_RANGE 1520 +#define ER_PARTITION_FUNCTION_FAILURE 1521 +#define ER_PART_STATE_ERROR 1522 +#define ER_LIMITED_PART_RANGE 1523 +#define ER_PLUGIN_IS_NOT_LOADED 1524 +#define ER_WRONG_VALUE 1525 +#define ER_NO_PARTITION_FOR_GIVEN_VALUE 1526 +#define ER_FILEGROUP_OPTION_ONLY_ONCE 1527 +#define ER_CREATE_FILEGROUP_FAILED 1528 +#define ER_DROP_FILEGROUP_FAILED 1529 +#define ER_TABLESPACE_AUTO_EXTEND_ERROR 1530 +#define ER_WRONG_SIZE_NUMBER 1531 +#define ER_SIZE_OVERFLOW_ERROR 1532 +#define ER_ALTER_FILEGROUP_FAILED 1533 +#define ER_BINLOG_ROW_LOGGING_FAILED 1534 +#define ER_BINLOG_ROW_WRONG_TABLE_DEF 1535 +#define ER_BINLOG_ROW_RBR_TO_SBR 1536 +#define ER_EVENT_ALREADY_EXISTS 1537 +#define ER_EVENT_STORE_FAILED 1538 +#define ER_EVENT_DOES_NOT_EXIST 1539 +#define ER_EVENT_CANT_ALTER 1540 +#define ER_EVENT_DROP_FAILED 1541 +#define ER_EVENT_INTERVAL_NOT_POSITIVE_OR_TOO_BIG 1542 +#define ER_EVENT_ENDS_BEFORE_STARTS 1543 +#define ER_EVENT_EXEC_TIME_IN_THE_PAST 1544 +#define ER_EVENT_OPEN_TABLE_FAILED 1545 +#define ER_EVENT_NEITHER_M_EXPR_NOR_M_AT 1546 +#define ER_COL_COUNT_DOESNT_MATCH_CORRUPTED 1547 +#define ER_CANNOT_LOAD_FROM_TABLE 1548 +#define ER_EVENT_CANNOT_DELETE 1549 +#define ER_EVENT_COMPILE_ERROR 1550 +#define ER_EVENT_SAME_NAME 1551 +#define ER_EVENT_DATA_TOO_LONG 1552 +#define ER_DROP_INDEX_FK 1553 +#define ER_WARN_DEPRECATED_SYNTAX_WITH_VER 1554 +#define ER_CANT_WRITE_LOCK_LOG_TABLE 1555 +#define ER_CANT_LOCK_LOG_TABLE 1556 +#define ER_FOREIGN_DUPLICATE_KEY 1557 +#define ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE 1558 +#define ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR 1559 +#define ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT 1560 +#define ER_NDB_CANT_SWITCH_BINLOG_FORMAT 1561 +#define ER_PARTITION_NO_TEMPORARY 1562 +#define ER_PARTITION_CONST_DOMAIN_ERROR 1563 +#define ER_PARTITION_FUNCTION_IS_NOT_ALLOWED 1564 +#define ER_DDL_LOG_ERROR 1565 +#define ER_NULL_IN_VALUES_LESS_THAN 1566 +#define ER_WRONG_PARTITION_NAME 1567 +#define ER_CANT_CHANGE_TX_ISOLATION 1568 +#define ER_DUP_ENTRY_AUTOINCREMENT_CASE 1569 +#define ER_EVENT_MODIFY_QUEUE_ERROR 1570 +#define ER_EVENT_SET_VAR_ERROR 1571 +#define ER_PARTITION_MERGE_ERROR 1572 +#define ER_CANT_ACTIVATE_LOG 1573 +#define ER_RBR_NOT_AVAILABLE 1574 +#define ER_BASE64_DECODE_ERROR 1575 +#define ER_EVENT_RECURSION_FORBIDDEN 1576 +#define ER_EVENTS_DB_ERROR 1577 +#define ER_ONLY_INTEGERS_ALLOWED 1578 +#define ER_UNSUPORTED_LOG_ENGINE 1579 +#define ER_BAD_LOG_STATEMENT 1580 +#define ER_CANT_RENAME_LOG_TABLE 1581 +#define ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT 1582 +#define ER_WRONG_PARAMETERS_TO_NATIVE_FCT 1583 +#define ER_WRONG_PARAMETERS_TO_STORED_FCT 1584 +#define ER_NATIVE_FCT_NAME_COLLISION 1585 +#define ER_DUP_ENTRY_WITH_KEY_NAME 1586 +#define ER_BINLOG_PURGE_EMFILE 1587 +#define ER_EVENT_CANNOT_CREATE_IN_THE_PAST 1588 +#define ER_EVENT_CANNOT_ALTER_IN_THE_PAST 1589 +#define ER_SLAVE_INCIDENT 1590 +#define ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT 1591 +#define ER_BINLOG_UNSAFE_STATEMENT 1592 +#define ER_SLAVE_FATAL_ERROR 1593 +#define ER_SLAVE_RELAY_LOG_READ_FAILURE 1594 +#define ER_SLAVE_RELAY_LOG_WRITE_FAILURE 1595 +#define ER_SLAVE_CREATE_EVENT_FAILURE 1596 +#define ER_SLAVE_MASTER_COM_FAILURE 1597 +#define ER_BINLOG_LOGGING_IMPOSSIBLE 1598 +#define ER_VIEW_NO_CREATION_CTX 1599 +#define ER_VIEW_INVALID_CREATION_CTX 1600 +#define ER_SR_INVALID_CREATION_CTX 1601 +#define ER_TRG_CORRUPTED_FILE 1602 +#define ER_TRG_NO_CREATION_CTX 1603 +#define ER_TRG_INVALID_CREATION_CTX 1604 +#define ER_EVENT_INVALID_CREATION_CTX 1605 +#define ER_TRG_CANT_OPEN_TABLE 1606 +#define ER_CANT_CREATE_SROUTINE 1607 +#define ER_NEVER_USED 1608 +#define ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT 1609 +#define ER_SLAVE_CORRUPT_EVENT 1610 +#define ER_LOAD_DATA_INVALID_COLUMN 1611 +#define ER_LOG_PURGE_NO_FILE 1612 +#define ER_XA_RBTIMEOUT 1613 +#define ER_XA_RBDEADLOCK 1614 +#define ER_NEED_REPREPARE 1615 +#define ER_DELAYED_NOT_SUPPORTED 1616 +#define WARN_NO_MASTER_INFO 1617 +#define WARN_OPTION_IGNORED 1618 +#define ER_PLUGIN_DELETE_BUILTIN 1619 +#define WARN_PLUGIN_BUSY 1620 +#define ER_VARIABLE_IS_READONLY 1621 +#define ER_WARN_ENGINE_TRANSACTION_ROLLBACK 1622 +#define ER_SLAVE_HEARTBEAT_FAILURE 1623 +#define ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE 1624 +#define ER_NDB_REPLICATION_SCHEMA_ERROR 1625 +#define ER_CONFLICT_FN_PARSE_ERROR 1626 +#define ER_EXCEPTIONS_WRITE_ERROR 1627 +#define ER_TOO_LONG_TABLE_COMMENT 1628 +#define ER_TOO_LONG_FIELD_COMMENT 1629 +#define ER_FUNC_INEXISTENT_NAME_COLLISION 1630 +#define ER_DATABASE_NAME 1631 +#define ER_TABLE_NAME 1632 +#define ER_PARTITION_NAME 1633 +#define ER_SUBPARTITION_NAME 1634 +#define ER_TEMPORARY_NAME 1635 +#define ER_RENAMED_NAME 1636 +#define ER_TOO_MANY_CONCURRENT_TRXS 1637 +#define WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED 1638 +#define ER_DEBUG_SYNC_TIMEOUT 1639 +#define ER_DEBUG_SYNC_HIT_LIMIT 1640 +#define ER_DUP_SIGNAL_SET 1641 +#define ER_SIGNAL_WARN 1642 +#define ER_SIGNAL_NOT_FOUND 1643 +#define ER_SIGNAL_EXCEPTION 1644 +#define ER_RESIGNAL_WITHOUT_ACTIVE_HANDLER 1645 +#define ER_SIGNAL_BAD_CONDITION_TYPE 1646 +#define WARN_COND_ITEM_TRUNCATED 1647 +#define ER_COND_ITEM_TOO_LONG 1648 +#define ER_UNKNOWN_LOCALE 1649 +#define ER_SLAVE_IGNORE_SERVER_IDS 1650 +#define ER_QUERY_CACHE_DISABLED 1651 +#define ER_SAME_NAME_PARTITION_FIELD 1652 +#define ER_PARTITION_COLUMN_LIST_ERROR 1653 +#define ER_WRONG_TYPE_COLUMN_VALUE_ERROR 1654 +#define ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR 1655 +#define ER_MAXVALUE_IN_VALUES_IN 1656 +#define ER_TOO_MANY_VALUES_ERROR 1657 +#define ER_ROW_SINGLE_PARTITION_FIELD_ERROR 1658 +#define ER_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD 1659 +#define ER_PARTITION_FIELDS_TOO_LONG 1660 +#define ER_BINLOG_ROW_ENGINE_AND_STMT_ENGINE 1661 +#define ER_BINLOG_ROW_MODE_AND_STMT_ENGINE 1662 +#define ER_BINLOG_UNSAFE_AND_STMT_ENGINE 1663 +#define ER_BINLOG_ROW_INJECTION_AND_STMT_ENGINE 1664 +#define ER_BINLOG_STMT_MODE_AND_ROW_ENGINE 1665 +#define ER_BINLOG_ROW_INJECTION_AND_STMT_MODE 1666 +#define ER_BINLOG_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE 1667 +#define ER_BINLOG_UNSAFE_LIMIT 1668 +#define ER_BINLOG_UNSAFE_INSERT_DELAYED 1669 +#define ER_BINLOG_UNSAFE_SYSTEM_TABLE 1670 +#define ER_BINLOG_UNSAFE_AUTOINC_COLUMNS 1671 +#define ER_BINLOG_UNSAFE_UDF 1672 +#define ER_BINLOG_UNSAFE_SYSTEM_VARIABLE 1673 +#define ER_BINLOG_UNSAFE_SYSTEM_FUNCTION 1674 +#define ER_BINLOG_UNSAFE_NONTRANS_AFTER_TRANS 1675 +#define ER_MESSAGE_AND_STATEMENT 1676 +#define ER_SLAVE_CONVERSION_FAILED 1677 +#define ER_SLAVE_CANT_CREATE_CONVERSION 1678 +#define ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_FORMAT 1679 +#define ER_PATH_LENGTH 1680 +#define ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT 1681 +#define ER_WRONG_NATIVE_TABLE_STRUCTURE 1682 +#define ER_WRONG_PERFSCHEMA_USAGE 1683 +#define ER_WARN_I_S_SKIPPED_TABLE 1684 +#define ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_DIRECT 1685 +#define ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_DIRECT 1686 +#define ER_SPATIAL_MUST_HAVE_GEOM_COL 1687 +#define ER_TOO_LONG_INDEX_COMMENT 1688 +#define ER_LOCK_ABORTED 1689 +#define ER_DATA_OUT_OF_RANGE 1690 +#define ER_WRONG_SPVAR_TYPE_IN_LIMIT 1691 +#define ER_BINLOG_UNSAFE_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE 1692 +#define ER_BINLOG_UNSAFE_MIXED_STATEMENT 1693 +#define ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_SQL_LOG_BIN 1694 +#define ER_STORED_FUNCTION_PREVENTS_SWITCH_SQL_LOG_BIN 1695 +#define ER_FAILED_READ_FROM_PAR_FILE 1696 +#define ER_VALUES_IS_NOT_INT_TYPE_ERROR 1697 +#define ER_ACCESS_DENIED_NO_PASSWORD_ERROR 1698 +#define ER_SET_PASSWORD_AUTH_PLUGIN 1699 +#define ER_GRANT_PLUGIN_USER_EXISTS 1700 +#define ER_TRUNCATE_ILLEGAL_FK 1701 +#define ER_PLUGIN_IS_PERMANENT 1702 +#define ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN 1703 +#define ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX 1704 +#define ER_STMT_CACHE_FULL 1705 +#define ER_MULTI_UPDATE_KEY_CONFLICT 1706 +#define ER_TABLE_NEEDS_REBUILD 1707 +#define WARN_OPTION_BELOW_LIMIT 1708 +#define ER_INDEX_COLUMN_TOO_LONG 1709 +#define ER_ERROR_IN_TRIGGER_BODY 1710 +#define ER_ERROR_IN_UNKNOWN_TRIGGER_BODY 1711 +#define ER_INDEX_CORRUPT 1712 +#define ER_UNDO_RECORD_TOO_BIG 1713 +#define ER_BINLOG_UNSAFE_INSERT_IGNORE_SELECT 1714 +#define ER_BINLOG_UNSAFE_INSERT_SELECT_UPDATE 1715 +#define ER_BINLOG_UNSAFE_REPLACE_SELECT 1716 +#define ER_BINLOG_UNSAFE_CREATE_IGNORE_SELECT 1717 +#define ER_BINLOG_UNSAFE_CREATE_REPLACE_SELECT 1718 +#define ER_BINLOG_UNSAFE_UPDATE_IGNORE 1719 +#define ER_PLUGIN_NO_UNINSTALL 1720 +#define ER_PLUGIN_NO_INSTALL 1721 +#define ER_BINLOG_UNSAFE_WRITE_AUTOINC_SELECT 1722 +#define ER_BINLOG_UNSAFE_CREATE_SELECT_AUTOINC 1723 +#define ER_BINLOG_UNSAFE_INSERT_TWO_KEYS 1724 +#define ER_TABLE_IN_FK_CHECK 1725 +#define ER_UNUSED_1 1726 +#define ER_BINLOG_UNSAFE_AUTOINC_NOT_FIRST 1727 +#define ER_LAST_MYSQL_ERROR_MESSAGE 1728 + +/* New section */ + +#define ER_VCOL_BASED_ON_VCOL 1900 +#define ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED 1901 +#define ER_DATA_CONVERSION_ERROR_FOR_VIRTUAL_COLUMN 1902 +#define ER_PRIMARY_KEY_BASED_ON_VIRTUAL_COLUMN 1903 +#define ER_KEY_BASED_ON_GENERATED_VIRTUAL_COLUMN 1904 +#define ER_WRONG_FK_OPTION_FOR_VIRTUAL_COLUMN 1905 +#define ER_WARNING_NON_DEFAULT_VALUE_FOR_VIRTUAL_COLUMN 1906 +#define ER_UNSUPPORTED_ACTION_ON_VIRTUAL_COLUMN 1907 +#define ER_CONST_EXPR_IN_VCOL 1908 +#define ER_ROW_EXPR_FOR_VCOL 1909 +#define ER_UNSUPPORTED_ENGINE_FOR_VIRTUAL_COLUMNS 1910 +#define ER_UNKNOWN_OPTION 1911 +#define ER_BAD_OPTION_VALUE 1912 +#define ER_NETWORK_READ_EVENT_CHECKSUM_FAILURE 1913 +#define ER_BINLOG_READ_EVENT_CHECKSUM_FAILURE 1914 +#define ER_CANT_DO_ONLINE 1915 +#define ER_DATA_OVERFLOW 1916 +#define ER_DATA_TRUNCATED 1917 +#define ER_BAD_DATA 1918 +#define ER_DYN_COL_WRONG_FORMAT 1919 +#define ER_DYN_COL_IMPLEMENTATION_LIMIT 1920 +#define ER_DYN_COL_DATA 1921 +#define ER_DYN_COL_WRONG_CHARSET 1922 +#define ER_ILLEGAL_SUBQUERY_OPTIMIZER_SWITCHES 1923 +#define ER_QUERY_CACHE_IS_DISABLED 1924 +#define ER_QUERY_CACHE_IS_GLOBALY_DISABLED 1925 +#define ER_VIEW_ORDERBY_IGNORED 1926 +#define ER_CONNECTION_KILLED 1927 +#define ER_INTERNAL_ERROR 1928 +#define ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_SKIP_REPLICATION 1929 +#define ER_STORED_FUNCTION_PREVENTS_SWITCH_SKIP_REPLICATION 1930 +#define ER_QUERY_EXCEEDED_ROWS_EXAMINED_LIMIT 1931 +#define ER_NO_SUCH_TABLE_IN_ENGINE 1932 +#define ER_ERROR_LAST 1932 diff --git a/database/include/mysql/plugin.h b/database/include/mysql/plugin.h new file mode 100644 index 0000000..74c58eb --- /dev/null +++ b/database/include/mysql/plugin.h @@ -0,0 +1,702 @@ +/* Copyright (c) 2005, 2013, Oracle and/or its affiliates + Copyright (C) 2009, 2013, Monty Program Ab + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef _my_plugin_h +#define _my_plugin_h + +/* + On Windows, exports from DLL need to be declared + Also, plugin needs to be declared as extern "C" because MSVC + unlike other compilers, uses C++ mangling for variables not only + for functions. +*/ +#if defined(_MSC_VER) + #ifdef __cplusplus + #define MYSQL_PLUGIN_EXPORT extern "C" __declspec(dllexport) + #else + #define MYSQL_PLUGIN_EXPORT __declspec(dllexport) + #endif +#else /*_MSC_VER */ + #ifdef __cplusplus + #define MYSQL_PLUGIN_EXPORT extern "C" + #else + #define MYSQL_PLUGIN_EXPORT + #endif +#endif + +#ifdef __cplusplus +class THD; +class Item; +#define MYSQL_THD THD* +#else +#define MYSQL_THD void* +#endif + +#include + +#define MYSQL_XIDDATASIZE 128 +/** + struct st_mysql_xid is binary compatible with the XID structure as + in the X/Open CAE Specification, Distributed Transaction Processing: + The XA Specification, X/Open Company Ltd., 1991. + http://www.opengroup.org/bookstore/catalog/c193.htm + + @see XID in sql/handler.h +*/ +struct st_mysql_xid { + long formatID; + long gtrid_length; + long bqual_length; + char data[MYSQL_XIDDATASIZE]; /* Not \0-terminated */ +}; +typedef struct st_mysql_xid MYSQL_XID; + +/************************************************************************* + Plugin API. Common for all plugin types. +*/ + +/* MySQL plugin interface version */ +#define MYSQL_PLUGIN_INTERFACE_VERSION 0x0103 + +/* MariaDB plugin interface version */ +#define MARIA_PLUGIN_INTERFACE_VERSION 0x0104 + +/* + The allowable types of plugins +*/ +#define MYSQL_UDF_PLUGIN 0 /* User-defined function */ +#define MYSQL_STORAGE_ENGINE_PLUGIN 1 /* Storage Engine */ +#define MYSQL_FTPARSER_PLUGIN 2 /* Full-text parser plugin */ +#define MYSQL_DAEMON_PLUGIN 3 /* The daemon/raw plugin type */ +#define MYSQL_INFORMATION_SCHEMA_PLUGIN 4 /* The I_S plugin type */ +#define MYSQL_AUDIT_PLUGIN 5 /* The Audit plugin type */ +#define MYSQL_REPLICATION_PLUGIN 6 /* The replication plugin type */ +#define MYSQL_AUTHENTICATION_PLUGIN 7 /* The authentication plugin type */ +#define MYSQL_MAX_PLUGIN_TYPE_NUM 8 /* The number of plugin types */ + +/* We use the following strings to define licenses for plugins */ +#define PLUGIN_LICENSE_PROPRIETARY 0 +#define PLUGIN_LICENSE_GPL 1 +#define PLUGIN_LICENSE_BSD 2 + +#define PLUGIN_LICENSE_PROPRIETARY_STRING "PROPRIETARY" +#define PLUGIN_LICENSE_GPL_STRING "GPL" +#define PLUGIN_LICENSE_BSD_STRING "BSD" + +/* definitions of code maturity for plugins */ +#define MariaDB_PLUGIN_MATURITY_UNKNOWN 0 +#define MariaDB_PLUGIN_MATURITY_EXPERIMENTAL 1 +#define MariaDB_PLUGIN_MATURITY_ALPHA 2 +#define MariaDB_PLUGIN_MATURITY_BETA 3 +#define MariaDB_PLUGIN_MATURITY_GAMMA 4 +#define MariaDB_PLUGIN_MATURITY_STABLE 5 + +/* + Macros for beginning and ending plugin declarations. Between + mysql_declare_plugin and mysql_declare_plugin_end there should + be a st_mysql_plugin struct for each plugin to be declared. +*/ + + +#ifndef MYSQL_DYNAMIC_PLUGIN +#define __MYSQL_DECLARE_PLUGIN(NAME, VERSION, PSIZE, DECLS) \ +int VERSION= MYSQL_PLUGIN_INTERFACE_VERSION; \ +int PSIZE= sizeof(struct st_mysql_plugin); \ +struct st_mysql_plugin DECLS[]= { + +#define MARIA_DECLARE_PLUGIN__(NAME, VERSION, PSIZE, DECLS) \ +MYSQL_PLUGIN_EXPORT int VERSION; \ +int VERSION= MARIA_PLUGIN_INTERFACE_VERSION; \ +MYSQL_PLUGIN_EXPORT int PSIZE; \ +int PSIZE= sizeof(struct st_maria_plugin); \ +MYSQL_PLUGIN_EXPORT struct st_maria_plugin DECLS[]; \ +struct st_maria_plugin DECLS[]= { +#else + +#define __MYSQL_DECLARE_PLUGIN(NAME, VERSION, PSIZE, DECLS) \ +MYSQL_PLUGIN_EXPORT int _mysql_plugin_interface_version_; \ +int _mysql_plugin_interface_version_= MYSQL_PLUGIN_INTERFACE_VERSION; \ +MYSQL_PLUGIN_EXPORT int _mysql_sizeof_struct_st_plugin_; \ +int _mysql_sizeof_struct_st_plugin_= sizeof(struct st_mysql_plugin); \ +MYSQL_PLUGIN_EXPORT struct st_mysql_plugin _mysql_plugin_declarations_[]; \ +struct st_mysql_plugin _mysql_plugin_declarations_[]= { + +#define MARIA_DECLARE_PLUGIN__(NAME, VERSION, PSIZE, DECLS) \ +MYSQL_PLUGIN_EXPORT int _maria_plugin_interface_version_; \ +int _maria_plugin_interface_version_= MARIA_PLUGIN_INTERFACE_VERSION; \ +MYSQL_PLUGIN_EXPORT int _maria_sizeof_struct_st_plugin_; \ +int _maria_sizeof_struct_st_plugin_= sizeof(struct st_maria_plugin); \ +MYSQL_PLUGIN_EXPORT struct st_maria_plugin _maria_plugin_declarations_[]; \ +struct st_maria_plugin _maria_plugin_declarations_[]= { + +#endif + +#define mysql_declare_plugin(NAME) \ +__MYSQL_DECLARE_PLUGIN(NAME, \ + builtin_ ## NAME ## _plugin_interface_version, \ + builtin_ ## NAME ## _sizeof_struct_st_plugin, \ + builtin_ ## NAME ## _plugin) + +#define maria_declare_plugin(NAME) \ +MARIA_DECLARE_PLUGIN__(NAME, \ + builtin_maria_ ## NAME ## _plugin_interface_version, \ + builtin_maria_ ## NAME ## _sizeof_struct_st_plugin, \ + builtin_maria_ ## NAME ## _plugin) + +#define mysql_declare_plugin_end ,{0,0,0,0,0,0,0,0,0,0,0,0,0}} +#define maria_declare_plugin_end ,{0,0,0,0,0,0,0,0,0,0,0,0,0}} + +/* + declarations for SHOW STATUS support in plugins +*/ +enum enum_mysql_show_type +{ + SHOW_UNDEF, SHOW_BOOL, SHOW_UINT, SHOW_ULONG, + SHOW_ULONGLONG, SHOW_CHAR, SHOW_CHAR_PTR, + SHOW_ARRAY, SHOW_FUNC, SHOW_DOUBLE, + SHOW_SINT, SHOW_SLONG, SHOW_SLONGLONG, + SHOW_always_last +}; + +/* backward compatibility mapping. */ +#define SHOW_INT SHOW_UINT +#define SHOW_LONG SHOW_ULONG +#define SHOW_LONGLONG SHOW_ULONGLONG + +struct st_mysql_show_var { + const char *name; + char *value; + enum enum_mysql_show_type type; +}; + +#define SHOW_VAR_FUNC_BUFF_SIZE 1024 +typedef int (*mysql_show_var_func)(MYSQL_THD, struct st_mysql_show_var*, char *); + + +/* + Constants for plugin flags. + */ + +#define PLUGIN_OPT_NO_INSTALL 1UL /* Not dynamically loadable */ +#define PLUGIN_OPT_NO_UNINSTALL 2UL /* Not dynamically unloadable */ + + +/* + declarations for server variables and command line options +*/ + + +#define PLUGIN_VAR_BOOL 0x0001 +#define PLUGIN_VAR_INT 0x0002 +#define PLUGIN_VAR_LONG 0x0003 +#define PLUGIN_VAR_LONGLONG 0x0004 +#define PLUGIN_VAR_STR 0x0005 +#define PLUGIN_VAR_ENUM 0x0006 +#define PLUGIN_VAR_SET 0x0007 +#define PLUGIN_VAR_DOUBLE 0x0008 +#define PLUGIN_VAR_UNSIGNED 0x0080 +#define PLUGIN_VAR_THDLOCAL 0x0100 /* Variable is per-connection */ +#define PLUGIN_VAR_READONLY 0x0200 /* Server variable is read only */ +#define PLUGIN_VAR_NOSYSVAR 0x0400 /* Not a server variable */ +#define PLUGIN_VAR_NOCMDOPT 0x0800 /* Not a command line option */ +#define PLUGIN_VAR_NOCMDARG 0x1000 /* No argument for cmd line */ +#define PLUGIN_VAR_RQCMDARG 0x0000 /* Argument required for cmd line */ +#define PLUGIN_VAR_OPCMDARG 0x2000 /* Argument optional for cmd line */ +#define PLUGIN_VAR_MEMALLOC 0x8000 /* String needs memory allocated */ + +struct st_mysql_sys_var; +struct st_mysql_value; + +/* + SYNOPSIS + (*mysql_var_check_func)() + thd thread handle + var dynamic variable being altered + save pointer to temporary storage + value user provided value + RETURN + 0 user provided value is OK and the update func may be called. + any other value indicates error. + + This function should parse the user provided value and store in the + provided temporary storage any data as required by the update func. + There is sufficient space in the temporary storage to store a double. + Note that the update func may not be called if any other error occurs + so any memory allocated should be thread-local so that it may be freed + automatically at the end of the statement. +*/ + +typedef int (*mysql_var_check_func)(MYSQL_THD thd, + struct st_mysql_sys_var *var, + void *save, struct st_mysql_value *value); + +/* + SYNOPSIS + (*mysql_var_update_func)() + thd thread handle + var dynamic variable being altered + var_ptr pointer to dynamic variable + save pointer to temporary storage + RETURN + NONE + + This function should use the validated value stored in the temporary store + and persist it in the provided pointer to the dynamic variable. + For example, strings may require memory to be allocated. +*/ +typedef void (*mysql_var_update_func)(MYSQL_THD thd, + struct st_mysql_sys_var *var, + void *var_ptr, const void *save); + + +/* the following declarations are for internal use only */ + + +#define PLUGIN_VAR_MASK \ + (PLUGIN_VAR_READONLY | PLUGIN_VAR_NOSYSVAR | \ + PLUGIN_VAR_NOCMDOPT | PLUGIN_VAR_NOCMDARG | \ + PLUGIN_VAR_OPCMDARG | PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_MEMALLOC) + +#define MYSQL_PLUGIN_VAR_HEADER \ + int flags; \ + const char *name; \ + const char *comment; \ + mysql_var_check_func check; \ + mysql_var_update_func update + +#define MYSQL_SYSVAR_NAME(name) mysql_sysvar_ ## name +#define MYSQL_SYSVAR(name) \ + ((struct st_mysql_sys_var *)&(MYSQL_SYSVAR_NAME(name))) + +/* + for global variables, the value pointer is the first + element after the header, the default value is the second. + for thread variables, the value offset is the first + element after the header, the default value is the second. +*/ + + +#define DECLARE_MYSQL_SYSVAR_BASIC(name, type) struct { \ + MYSQL_PLUGIN_VAR_HEADER; \ + type *value; \ + const type def_val; \ +} MYSQL_SYSVAR_NAME(name) + +#define DECLARE_MYSQL_SYSVAR_SIMPLE(name, type) struct { \ + MYSQL_PLUGIN_VAR_HEADER; \ + type *value; type def_val; \ + type min_val; type max_val; \ + type blk_sz; \ +} MYSQL_SYSVAR_NAME(name) + +#define DECLARE_MYSQL_SYSVAR_TYPELIB(name, type) struct { \ + MYSQL_PLUGIN_VAR_HEADER; \ + type *value; type def_val; \ + TYPELIB *typelib; \ +} MYSQL_SYSVAR_NAME(name) + +#define DECLARE_THDVAR_FUNC(type) \ + type *(*resolve)(MYSQL_THD thd, int offset) + +#define DECLARE_MYSQL_THDVAR_BASIC(name, type) struct { \ + MYSQL_PLUGIN_VAR_HEADER; \ + int offset; \ + const type def_val; \ + DECLARE_THDVAR_FUNC(type); \ +} MYSQL_SYSVAR_NAME(name) + +#define DECLARE_MYSQL_THDVAR_SIMPLE(name, type) struct { \ + MYSQL_PLUGIN_VAR_HEADER; \ + int offset; \ + type def_val; type min_val; \ + type max_val; type blk_sz; \ + DECLARE_THDVAR_FUNC(type); \ +} MYSQL_SYSVAR_NAME(name) + +#define DECLARE_MYSQL_THDVAR_TYPELIB(name, type) struct { \ + MYSQL_PLUGIN_VAR_HEADER; \ + int offset; \ + const type def_val; \ + DECLARE_THDVAR_FUNC(type); \ + TYPELIB *typelib; \ +} MYSQL_SYSVAR_NAME(name) + + +/* + the following declarations are for use by plugin implementors +*/ + +#define MYSQL_SYSVAR_BOOL(name, varname, opt, comment, check, update, def) \ +DECLARE_MYSQL_SYSVAR_BASIC(name, char) = { \ + PLUGIN_VAR_BOOL | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, &varname, def} + +#define MYSQL_SYSVAR_STR(name, varname, opt, comment, check, update, def) \ +DECLARE_MYSQL_SYSVAR_BASIC(name, char *) = { \ + PLUGIN_VAR_STR | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, &varname, def} + +#define MYSQL_SYSVAR_INT(name, varname, opt, comment, check, update, def, min, max, blk) \ +DECLARE_MYSQL_SYSVAR_SIMPLE(name, int) = { \ + PLUGIN_VAR_INT | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, &varname, def, min, max, blk } + +#define MYSQL_SYSVAR_UINT(name, varname, opt, comment, check, update, def, min, max, blk) \ +DECLARE_MYSQL_SYSVAR_SIMPLE(name, unsigned int) = { \ + PLUGIN_VAR_INT | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, &varname, def, min, max, blk } + +#define MYSQL_SYSVAR_LONG(name, varname, opt, comment, check, update, def, min, max, blk) \ +DECLARE_MYSQL_SYSVAR_SIMPLE(name, long) = { \ + PLUGIN_VAR_LONG | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, &varname, def, min, max, blk } + +#define MYSQL_SYSVAR_ULONG(name, varname, opt, comment, check, update, def, min, max, blk) \ +DECLARE_MYSQL_SYSVAR_SIMPLE(name, unsigned long) = { \ + PLUGIN_VAR_LONG | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, &varname, def, min, max, blk } + +#define MYSQL_SYSVAR_LONGLONG(name, varname, opt, comment, check, update, def, min, max, blk) \ +DECLARE_MYSQL_SYSVAR_SIMPLE(name, long long) = { \ + PLUGIN_VAR_LONGLONG | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, &varname, def, min, max, blk } + +#define MYSQL_SYSVAR_ULONGLONG(name, varname, opt, comment, check, update, def, min, max, blk) \ +DECLARE_MYSQL_SYSVAR_SIMPLE(name, unsigned long long) = { \ + PLUGIN_VAR_LONGLONG | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, &varname, def, min, max, blk } + +#define MYSQL_SYSVAR_ENUM(name, varname, opt, comment, check, update, def, typelib) \ +DECLARE_MYSQL_SYSVAR_TYPELIB(name, unsigned long) = { \ + PLUGIN_VAR_ENUM | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, &varname, def, typelib } + +#define MYSQL_SYSVAR_SET(name, varname, opt, comment, check, update, def, typelib) \ +DECLARE_MYSQL_SYSVAR_TYPELIB(name, unsigned long long) = { \ + PLUGIN_VAR_SET | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, &varname, def, typelib } + +#define MYSQL_SYSVAR_DOUBLE(name, varname, opt, comment, check, update, def, min, max, blk) \ +DECLARE_MYSQL_SYSVAR_SIMPLE(name, double) = { \ + PLUGIN_VAR_DOUBLE | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, &varname, def, min, max, blk } + +#define MYSQL_THDVAR_BOOL(name, opt, comment, check, update, def) \ +DECLARE_MYSQL_THDVAR_BASIC(name, char) = { \ + PLUGIN_VAR_BOOL | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, -1, def, NULL} + +#define MYSQL_THDVAR_STR(name, opt, comment, check, update, def) \ +DECLARE_MYSQL_THDVAR_BASIC(name, char *) = { \ + PLUGIN_VAR_STR | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, -1, def, NULL} + +#define MYSQL_THDVAR_INT(name, opt, comment, check, update, def, min, max, blk) \ +DECLARE_MYSQL_THDVAR_SIMPLE(name, int) = { \ + PLUGIN_VAR_INT | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, -1, def, min, max, blk, NULL } + +#define MYSQL_THDVAR_UINT(name, opt, comment, check, update, def, min, max, blk) \ +DECLARE_MYSQL_THDVAR_SIMPLE(name, unsigned int) = { \ + PLUGIN_VAR_INT | PLUGIN_VAR_THDLOCAL | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, -1, def, min, max, blk, NULL } + +#define MYSQL_THDVAR_LONG(name, opt, comment, check, update, def, min, max, blk) \ +DECLARE_MYSQL_THDVAR_SIMPLE(name, long) = { \ + PLUGIN_VAR_LONG | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, -1, def, min, max, blk, NULL } + +#define MYSQL_THDVAR_ULONG(name, opt, comment, check, update, def, min, max, blk) \ +DECLARE_MYSQL_THDVAR_SIMPLE(name, unsigned long) = { \ + PLUGIN_VAR_LONG | PLUGIN_VAR_THDLOCAL | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, -1, def, min, max, blk, NULL } + +#define MYSQL_THDVAR_LONGLONG(name, opt, comment, check, update, def, min, max, blk) \ +DECLARE_MYSQL_THDVAR_SIMPLE(name, long long) = { \ + PLUGIN_VAR_LONGLONG | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, -1, def, min, max, blk, NULL } + +#define MYSQL_THDVAR_ULONGLONG(name, opt, comment, check, update, def, min, max, blk) \ +DECLARE_MYSQL_THDVAR_SIMPLE(name, unsigned long long) = { \ + PLUGIN_VAR_LONGLONG | PLUGIN_VAR_THDLOCAL | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, -1, def, min, max, blk, NULL } + +#define MYSQL_THDVAR_ENUM(name, opt, comment, check, update, def, typelib) \ +DECLARE_MYSQL_THDVAR_TYPELIB(name, unsigned long) = { \ + PLUGIN_VAR_ENUM | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, -1, def, NULL, typelib } + +#define MYSQL_THDVAR_SET(name, opt, comment, check, update, def, typelib) \ +DECLARE_MYSQL_THDVAR_TYPELIB(name, unsigned long long) = { \ + PLUGIN_VAR_SET | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, -1, def, NULL, typelib } + +#define MYSQL_THDVAR_DOUBLE(name, opt, comment, check, update, def, min, max, blk) \ +DECLARE_MYSQL_THDVAR_SIMPLE(name, double) = { \ + PLUGIN_VAR_DOUBLE | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \ + #name, comment, check, update, -1, def, min, max, blk, NULL } + +/* accessor macros */ + +#define SYSVAR(name) \ + (*(MYSQL_SYSVAR_NAME(name).value)) + +/* when thd == null, result points to global value */ +#define THDVAR(thd, name) \ + (*(MYSQL_SYSVAR_NAME(name).resolve(thd, MYSQL_SYSVAR_NAME(name).offset))) + + +/* + Plugin description structure. +*/ + +struct st_mysql_plugin +{ + int type; /* the plugin type (a MYSQL_XXX_PLUGIN value) */ + void *info; /* pointer to type-specific plugin descriptor */ + const char *name; /* plugin name */ + const char *author; /* plugin author (for I_S.PLUGINS) */ + const char *descr; /* general descriptive text (for I_S.PLUGINS) */ + int license; /* the plugin license (PLUGIN_LICENSE_XXX) */ + int (*init)(void *); /* the function to invoke when plugin is loaded */ + int (*deinit)(void *);/* the function to invoke when plugin is unloaded */ + unsigned int version; /* plugin version (for I_S.PLUGINS) */ + struct st_mysql_show_var *status_vars; + struct st_mysql_sys_var **system_vars; + void * __reserved1; /* reserved for dependency checking */ + unsigned long flags; /* flags for plugin */ +}; + +/* + MariaDB extension for plugins declaration structure. + + It also copy current MySQL plugin fields to have more independency + in plugins extension +*/ + +struct st_maria_plugin +{ + int type; /* the plugin type (a MYSQL_XXX_PLUGIN value) */ + void *info; /* pointer to type-specific plugin descriptor */ + const char *name; /* plugin name */ + const char *author; /* plugin author (for SHOW PLUGINS) */ + const char *descr; /* general descriptive text (for SHOW PLUGINS ) */ + int license; /* the plugin license (PLUGIN_LICENSE_XXX) */ + int (*init)(void *); /* the function to invoke when plugin is loaded */ + int (*deinit)(void *);/* the function to invoke when plugin is unloaded */ + unsigned int version; /* plugin version (for SHOW PLUGINS) */ + struct st_mysql_show_var *status_vars; + struct st_mysql_sys_var **system_vars; + const char *version_info; /* plugin version string */ + unsigned int maturity; /* MariaDB_PLUGIN_MATURITY_XXX */ +}; + +/************************************************************************* + API for Full-text parser plugin. (MYSQL_FTPARSER_PLUGIN) +*/ +#include "plugin_ftparser.h" + +/************************************************************************* + API for Storage Engine plugin. (MYSQL_DAEMON_PLUGIN) +*/ + +/* handlertons of different MySQL releases are incompatible */ +#define MYSQL_DAEMON_INTERFACE_VERSION (MYSQL_VERSION_ID << 8) + +/* + Here we define only the descriptor structure, that is referred from + st_mysql_plugin. +*/ + +struct st_mysql_daemon +{ + int interface_version; +}; + + +/************************************************************************* + API for I_S plugin. (MYSQL_INFORMATION_SCHEMA_PLUGIN) +*/ + +/* handlertons of different MySQL releases are incompatible */ +#define MYSQL_INFORMATION_SCHEMA_INTERFACE_VERSION (MYSQL_VERSION_ID << 8) + +/* + Here we define only the descriptor structure, that is referred from + st_mysql_plugin. +*/ + +struct st_mysql_information_schema +{ + int interface_version; +}; + + +/************************************************************************* + API for Storage Engine plugin. (MYSQL_STORAGE_ENGINE_PLUGIN) +*/ + +/* handlertons of different MySQL releases are incompatible */ +#define MYSQL_HANDLERTON_INTERFACE_VERSION (MYSQL_VERSION_ID << 8) + +/* + The real API is in the sql/handler.h + Here we define only the descriptor structure, that is referred from + st_mysql_plugin. +*/ + +struct st_mysql_storage_engine +{ + int interface_version; +}; + +struct handlerton; + + +/* + API for Replication plugin. (MYSQL_REPLICATION_PLUGIN) +*/ + #define MYSQL_REPLICATION_INTERFACE_VERSION 0x0100 + + /** + Replication plugin descriptor + */ + struct Mysql_replication { + int interface_version; + }; + +/************************************************************************* + st_mysql_value struct for reading values from mysqld. + Used by server variables framework to parse user-provided values. + Will be used for arguments when implementing UDFs. + + Note that val_str() returns a string in temporary memory + that will be freed at the end of statement. Copy the string + if you need it to persist. +*/ + +#define MYSQL_VALUE_TYPE_STRING 0 +#define MYSQL_VALUE_TYPE_REAL 1 +#define MYSQL_VALUE_TYPE_INT 2 + +struct st_mysql_value +{ + int (*value_type)(struct st_mysql_value *); + const char *(*val_str)(struct st_mysql_value *, char *buffer, int *length); + int (*val_real)(struct st_mysql_value *, double *realbuf); + int (*val_int)(struct st_mysql_value *, long long *intbuf); + int (*is_unsigned)(struct st_mysql_value *); +}; + + +/************************************************************************* + Miscellaneous functions for plugin implementors +*/ + +#ifdef __cplusplus +extern "C" { +#endif + +int thd_in_lock_tables(const MYSQL_THD thd); +int thd_tablespace_op(const MYSQL_THD thd); +long long thd_test_options(const MYSQL_THD thd, long long test_options); +int thd_sql_command(const MYSQL_THD thd); +void **thd_ha_data(const MYSQL_THD thd, const struct handlerton *hton); +void thd_storage_lock_wait(MYSQL_THD thd, long long value); +int thd_tx_isolation(const MYSQL_THD thd); +char *thd_security_context(MYSQL_THD thd, char *buffer, unsigned int length, + unsigned int max_query_len); +/* Increments the row counter, see THD::row_count */ +void thd_inc_row_count(MYSQL_THD thd); + +/** + Create a temporary file. + + @details + The temporary file is created in a location specified by the mysql + server configuration (--tmpdir option). The caller does not need to + delete the file, it will be deleted automatically. + + @param prefix prefix for temporary file name + @retval -1 error + @retval >= 0 a file handle that can be passed to dup or my_close +*/ +int mysql_tmpfile(const char *prefix); + +/** + Return the thread id of a user thread + + @param thd user thread connection handle + @return thread id +*/ +unsigned long thd_get_thread_id(const MYSQL_THD thd); + +/** + Get the XID for this connection's transaction + + @param thd user thread connection handle + @param xid location where identifier is stored +*/ +void thd_get_xid(const MYSQL_THD thd, MYSQL_XID *xid); + +/** + Invalidate the query cache for a given table. + + @param thd user thread connection handle + @param key databasename\\0tablename\\0 + @param key_length length of key in bytes, including the NUL bytes + @param using_trx flag: TRUE if using transactions, FALSE otherwise +*/ +void mysql_query_cache_invalidate4(MYSQL_THD thd, + const char *key, unsigned int key_length, + int using_trx); + + +/** + Provide a handler data getter to simplify coding +*/ +void *thd_get_ha_data(const MYSQL_THD thd, const struct handlerton *hton); + + +/** + Provide a handler data setter to simplify coding + + @details + Set ha_data pointer (storage engine per-connection information). + + To avoid unclean deactivation (uninstall) of storage engine plugin + in the middle of transaction, additional storage engine plugin + lock is acquired. + + If ha_data is not null and storage engine plugin was not locked + by thd_set_ha_data() in this connection before, storage engine + plugin gets locked. + + If ha_data is null and storage engine plugin was locked by + thd_set_ha_data() in this connection before, storage engine + plugin lock gets released. + + If handlerton::close_connection() didn't reset ha_data, server does + it immediately after calling handlerton::close_connection(). +*/ +void thd_set_ha_data(MYSQL_THD thd, const struct handlerton *hton, + const void *ha_data); +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/database/include/mysql/plugin_audit.h b/database/include/mysql/plugin_audit.h new file mode 100644 index 0000000..4777d42 --- /dev/null +++ b/database/include/mysql/plugin_audit.h @@ -0,0 +1,178 @@ +/* Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; version 2 of + the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef _my_audit_h +#define _my_audit_h + +/************************************************************************* + API for Audit plugin. (MYSQL_AUDIT_PLUGIN) +*/ + +#include "plugin.h" + +#define MYSQL_AUDIT_CLASS_MASK_SIZE 1 + +#define MYSQL_AUDIT_INTERFACE_VERSION 0x0302 + + +/************************************************************************* + AUDIT CLASS : GENERAL + + LOG events occurs before emitting to the general query log. + ERROR events occur before transmitting errors to the user. + RESULT events occur after transmitting a resultset to the user. + STATUS events occur after transmitting a resultset or errors + to the user. +*/ + +#define MYSQL_AUDIT_GENERAL_CLASS 0 +#define MYSQL_AUDIT_GENERAL_CLASSMASK (1 << MYSQL_AUDIT_GENERAL_CLASS) +#define MYSQL_AUDIT_GENERAL_LOG 0 +#define MYSQL_AUDIT_GENERAL_ERROR 1 +#define MYSQL_AUDIT_GENERAL_RESULT 2 +#define MYSQL_AUDIT_GENERAL_STATUS 3 + +struct mysql_event_general +{ + unsigned int event_subclass; + int general_error_code; + unsigned long general_thread_id; + const char *general_user; + unsigned int general_user_length; + const char *general_command; + unsigned int general_command_length; + const char *general_query; + unsigned int general_query_length; + struct charset_info_st *general_charset; + unsigned long long general_time; + unsigned long long general_rows; + /* Added in version 0x302 */ + unsigned long long query_id; + const char *database; + unsigned int database_length; +}; + + +/* + AUDIT CLASS : CONNECTION + + CONNECT occurs after authentication phase is completed. + DISCONNECT occurs after connection is terminated. + CHANGE_USER occurs after COM_CHANGE_USER RPC is completed. +*/ + +#define MYSQL_AUDIT_CONNECTION_CLASS 1 +#define MYSQL_AUDIT_CONNECTION_CLASSMASK (1 << MYSQL_AUDIT_CONNECTION_CLASS) +#define MYSQL_AUDIT_CONNECTION_CONNECT 0 +#define MYSQL_AUDIT_CONNECTION_DISCONNECT 1 +#define MYSQL_AUDIT_CONNECTION_CHANGE_USER 2 + +struct mysql_event_connection +{ + unsigned int event_subclass; + int status; + unsigned long thread_id; + const char *user; + unsigned int user_length; + const char *priv_user; + unsigned int priv_user_length; + const char *external_user; + unsigned int external_user_length; + const char *proxy_user; + unsigned int proxy_user_length; + const char *host; + unsigned int host_length; + const char *ip; + unsigned int ip_length; + const char *database; + unsigned int database_length; +}; + +/* + AUDIT CLASS : TABLE + + LOCK occurs when a connection "locks" (this does not necessarily mean a table + lock and also happens for row-locking engines) the table at the beginning of + a statement. This event is generated at the beginning of every statement for + every affected table, unless there's a LOCK TABLES statement in effect (in + which case it is generated once for LOCK TABLES and then is suppressed until + the tables are unlocked). + + CREATE/DROP/RENAME occur when a table is created, dropped, or renamed. +*/ + +#define MYSQL_AUDIT_TABLE_CLASS 15 +#define MYSQL_AUDIT_TABLE_CLASSMASK (1 << MYSQL_AUDIT_TABLE_CLASS) +#define MYSQL_AUDIT_TABLE_LOCK 0 +#define MYSQL_AUDIT_TABLE_CREATE 1 +#define MYSQL_AUDIT_TABLE_DROP 2 +#define MYSQL_AUDIT_TABLE_RENAME 3 +#define MYSQL_AUDIT_TABLE_ALTER 4 + +struct mysql_event_table +{ + unsigned int event_subclass; + unsigned long thread_id; + const char *user; + const char *priv_user; + const char *priv_host; + const char *external_user; + const char *proxy_user; + const char *host; + const char *ip; + const char *database; + unsigned int database_length; + const char *table; + unsigned int table_length; + /* for MYSQL_AUDIT_TABLE_LOCK, true if read-only, false if read/write */ + int read_only; + /* for MYSQL_AUDIT_TABLE_RENAME */ + const char *new_database; + unsigned int new_database_length; + const char *new_table; + unsigned int new_table_length; + /* Added in version 0x302 */ + unsigned long long query_id; +}; + +/************************************************************************* + Here we define the descriptor structure, that is referred from + st_mysql_plugin. + + release_thd() event occurs when the event class consumer is to be + disassociated from the specified THD. This would typically occur + before some operation which may require sleeping - such as when + waiting for the next query from the client. + + event_notify() is invoked whenever an event occurs which is of any + class for which the plugin has interest. The second argument + indicates the specific event class and the third argument is data + as required for that class. + + class_mask is an array of bits used to indicate what event classes + that this plugin wants to receive. +*/ + +struct st_mysql_audit +{ + int interface_version; + void (*release_thd)(MYSQL_THD); + void (*event_notify)(MYSQL_THD, unsigned int, const void *); + unsigned long class_mask[MYSQL_AUDIT_CLASS_MASK_SIZE]; +}; + + +#endif diff --git a/database/include/mysql/plugin_auth.h b/database/include/mysql/plugin_auth.h new file mode 100644 index 0000000..5050cbd --- /dev/null +++ b/database/include/mysql/plugin_auth.h @@ -0,0 +1,126 @@ +#ifndef MYSQL_PLUGIN_AUTH_INCLUDED +/* Copyright (C) 2010 Sergei Golubchik and Monty Program Ab + Copyright (c) 2010, Oracle and/or its affiliates. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/** + @file + + Authentication Plugin API. + + This file defines the API for server authentication plugins. +*/ + +#define MYSQL_PLUGIN_AUTH_INCLUDED + +#include + +#define MYSQL_AUTHENTICATION_INTERFACE_VERSION 0x0200 + +#include + +/* defines for MYSQL_SERVER_AUTH_INFO.password_used */ + +#define PASSWORD_USED_NO 0 +#define PASSWORD_USED_YES 1 +#define PASSWORD_USED_NO_MENTION 2 + + +/** + Provides server plugin access to authentication information +*/ +typedef struct st_mysql_server_auth_info +{ + /** + User name as sent by the client and shown in USER(). + NULL if the client packet with the user name was not received yet. + */ + char *user_name; + + /** + Length of user_name + */ + unsigned int user_name_length; + + /** + A corresponding column value from the mysql.user table for the + matching account name + */ + const char *auth_string; + + /** + Length of auth_string + */ + unsigned long auth_string_length; + + /** + Matching account name as found in the mysql.user table. + A plugin can override it with another name that will be + used by MySQL for authorization, and shown in CURRENT_USER() + */ + char authenticated_as[MYSQL_USERNAME_LENGTH+1]; + + + /** + The unique user name that was used by the plugin to authenticate. + Not used by the server. + Available through the @@EXTERNAL_USER variable. + */ + char external_user[MYSQL_USERNAME_LENGTH+1]; + + /** + This only affects the "Authentication failed. Password used: %s" + error message. has the following values : + 0 : %s will be NO. + 1 : %s will be YES. + 2 : there will be no %s. + Set it as appropriate or ignore at will. + */ + int password_used; + + /** + Set to the name of the connected client host, if it can be resolved, + or to its IP address otherwise. + */ + const char *host_or_ip; + + /** + Length of host_or_ip + */ + unsigned int host_or_ip_length; + +} MYSQL_SERVER_AUTH_INFO; + +/** + Server authentication plugin descriptor +*/ +struct st_mysql_auth +{ + int interface_version; /**< version plugin uses */ + /** + A plugin that a client must use for authentication with this server + plugin. Can be NULL to mean "any plugin". + */ + const char *client_auth_plugin; + /** + Function provided by the plugin which should perform authentication (using + the vio functions if necessary) and return 0 if successful. The plugin can + also fill the info.authenticated_as field if a different username should be + used for authorization. + */ + int (*authenticate_user)(MYSQL_PLUGIN_VIO *vio, MYSQL_SERVER_AUTH_INFO *info); +}; +#endif + diff --git a/database/include/mysql/plugin_auth_common.h b/database/include/mysql/plugin_auth_common.h new file mode 100644 index 0000000..475b1e0 --- /dev/null +++ b/database/include/mysql/plugin_auth_common.h @@ -0,0 +1,110 @@ +#ifndef MYSQL_PLUGIN_AUTH_COMMON_INCLUDED +/* Copyright (C) 2010 Sergei Golubchik and Monty Program Ab + Copyright (c) 2010, Oracle and/or its affiliates. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifdef _WIN32 +#include +#endif + +/** + @file + + This file defines constants and data structures that are the same for + both client- and server-side authentication plugins. +*/ +#define MYSQL_PLUGIN_AUTH_COMMON_INCLUDED + +/** the max allowed length for a user name */ +#define MYSQL_USERNAME_LENGTH 512 + +/** + return values of the plugin authenticate_user() method. +*/ + +/** + Authentication failed. Additionally, all other CR_xxx values + (libmysql error code) can be used too. + + The client plugin may set the error code and the error message directly + in the MYSQL structure and return CR_ERROR. If a CR_xxx specific error + code was returned, an error message in the MYSQL structure will be + overwritten. If CR_ERROR is returned without setting the error in MYSQL, + CR_UNKNOWN_ERROR will be user. +*/ +#define CR_ERROR 0 +/** + Authentication (client part) was successful. It does not mean that the + authentication as a whole was successful, usually it only means + that the client was able to send the user name and the password to the + server. If CR_OK is returned, the libmysql reads the next packet expecting + it to be one of OK, ERROR, or CHANGE_PLUGIN packets. +*/ +#define CR_OK -1 +/** + Authentication was successful. + It means that the client has done its part successfully and also that + a plugin has read the last packet (one of OK, ERROR, CHANGE_PLUGIN). + In this case, libmysql will not read a packet from the server, + but it will use the data at mysql->net.read_pos. + + A plugin may return this value if the number of roundtrips in the + authentication protocol is not known in advance, and the client plugin + needs to read one packet more to determine if the authentication is finished + or not. +*/ +#define CR_OK_HANDSHAKE_COMPLETE -2 + +typedef struct st_plugin_vio_info +{ + enum { MYSQL_VIO_INVALID, MYSQL_VIO_TCP, MYSQL_VIO_SOCKET, + MYSQL_VIO_PIPE, MYSQL_VIO_MEMORY } protocol; + int socket; /**< it's set, if the protocol is SOCKET or TCP */ +#ifdef _WIN32 + HANDLE handle; /**< it's set, if the protocol is PIPE or MEMORY */ +#endif +} MYSQL_PLUGIN_VIO_INFO; + +/** + Provides plugin access to communication channel +*/ +typedef struct st_plugin_vio +{ + /** + Plugin provides a pointer reference and this function sets it to the + contents of any incoming packet. Returns the packet length, or -1 if + the plugin should terminate. + */ + int (*read_packet)(struct st_plugin_vio *vio, + unsigned char **buf); + + /** + Plugin provides a buffer with data and the length and this + function sends it as a packet. Returns 0 on success, 1 on failure. + */ + int (*write_packet)(struct st_plugin_vio *vio, + const unsigned char *packet, + int packet_len); + + /** + Fills in a st_plugin_vio_info structure, providing the information + about the connection. + */ + void (*info)(struct st_plugin_vio *vio, struct st_plugin_vio_info *info); + +} MYSQL_PLUGIN_VIO; + +#endif + diff --git a/database/include/mysql/plugin_ftparser.h b/database/include/mysql/plugin_ftparser.h new file mode 100644 index 0000000..0d0375b --- /dev/null +++ b/database/include/mysql/plugin_ftparser.h @@ -0,0 +1,212 @@ +/* Copyright (c) 2005 MySQL AB, 2009 Sun Microsystems, Inc. + Use is subject to license terms. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef _my_plugin_ftparser_h +#define _my_plugin_ftparser_h +#include "plugin.h" + +/************************************************************************* + API for Full-text parser plugin. (MYSQL_FTPARSER_PLUGIN) +*/ + +#define MYSQL_FTPARSER_INTERFACE_VERSION 0x0100 + +/* Parsing modes. Set in MYSQL_FTPARSER_PARAM::mode */ +enum enum_ftparser_mode +{ +/* + Fast and simple mode. This mode is used for indexing, and natural + language queries. + + The parser is expected to return only those words that go into the + index. Stopwords or too short/long words should not be returned. The + 'boolean_info' argument of mysql_add_word() does not have to be set. +*/ + MYSQL_FTPARSER_SIMPLE_MODE= 0, + +/* + Parse with stopwords mode. This mode is used in boolean searches for + "phrase matching." + + The parser is not allowed to ignore words in this mode. Every word + should be returned, including stopwords and words that are too short + or long. The 'boolean_info' argument of mysql_add_word() does not + have to be set. +*/ + MYSQL_FTPARSER_WITH_STOPWORDS= 1, + +/* + Parse in boolean mode. This mode is used to parse a boolean query string. + + The parser should provide a valid MYSQL_FTPARSER_BOOLEAN_INFO + structure in the 'boolean_info' argument to mysql_add_word(). + Usually that means that the parser should recognize boolean operators + in the parsing stream and set appropriate fields in + MYSQL_FTPARSER_BOOLEAN_INFO structure accordingly. As for + MYSQL_FTPARSER_WITH_STOPWORDS mode, no word should be ignored. + Instead, use FT_TOKEN_STOPWORD for the token type of such a word. +*/ + MYSQL_FTPARSER_FULL_BOOLEAN_INFO= 2 +}; + +/* + Token types for boolean mode searching (used for the type member of + MYSQL_FTPARSER_BOOLEAN_INFO struct) + + FT_TOKEN_EOF: End of data. + FT_TOKEN_WORD: Regular word. + FT_TOKEN_LEFT_PAREN: Left parenthesis (start of group/sub-expression). + FT_TOKEN_RIGHT_PAREN: Right parenthesis (end of group/sub-expression). + FT_TOKEN_STOPWORD: Stopword. +*/ + +enum enum_ft_token_type +{ + FT_TOKEN_EOF= 0, + FT_TOKEN_WORD= 1, + FT_TOKEN_LEFT_PAREN= 2, + FT_TOKEN_RIGHT_PAREN= 3, + FT_TOKEN_STOPWORD= 4 +}; + +/* + This structure is used in boolean search mode only. It conveys + boolean-mode metadata to the MySQL search engine for every word in + the search query. A valid instance of this structure must be filled + in by the plugin parser and passed as an argument in the call to + mysql_add_word (the callback function in the MYSQL_FTPARSER_PARAM + structure) when a query is parsed in boolean mode. + + type: The token type. Should be one of the enum_ft_token_type values. + + yesno: Whether the word must be present for a match to occur: + >0 Must be present + <0 Must not be present + 0 Neither; the word is optional but its presence increases the relevance + With the default settings of the ft_boolean_syntax system variable, + >0 corresponds to the '+' operator, <0 corrresponds to the '-' operator, + and 0 means neither operator was used. + + weight_adjust: A weighting factor that determines how much a match + for the word counts. Positive values increase, negative - decrease the + relative word's importance in the query. + + wasign: The sign of the word's weight in the query. If it's non-negative + the match for the word will increase document relevance, if it's + negative - decrease (the word becomes a "noise word", the less of it the + better). + + trunc: Corresponds to the '*' operator in the default setting of the + ft_boolean_syntax system variable. +*/ + +typedef struct st_mysql_ftparser_boolean_info +{ + enum enum_ft_token_type type; + int yesno; + int weight_adjust; + char wasign; + char trunc; + /* These are parser state and must be removed. */ + char prev; + char *quot; +} MYSQL_FTPARSER_BOOLEAN_INFO; + +/* + The following flag means that buffer with a string (document, word) + may be overwritten by the caller before the end of the parsing (that is + before st_mysql_ftparser::deinit() call). If one needs the string + to survive between two successive calls of the parsing function, she + needs to save a copy of it. The flag may be set by MySQL before calling + st_mysql_ftparser::parse(), or it may be set by a plugin before calling + st_mysql_ftparser_param::mysql_parse() or + st_mysql_ftparser_param::mysql_add_word(). +*/ +#define MYSQL_FTFLAGS_NEED_COPY 1 + +/* + An argument of the full-text parser plugin. This structure is + filled in by MySQL server and passed to the parsing function of the + plugin as an in/out parameter. + + mysql_parse: A pointer to the built-in parser implementation of the + server. It's set by the server and can be used by the parser plugin + to invoke the MySQL default parser. If plugin's role is to extract + textual data from .doc, .pdf or .xml content, it might extract + plaintext from the content, and then pass the text to the default + MySQL parser to be parsed. + + mysql_add_word: A server callback to add a new word. When parsing + a document, the server sets this to point at a function that adds + the word to MySQL full-text index. When parsing a search query, + this function will add the new word to the list of words to search + for. The boolean_info argument can be NULL for all cases except + when mode is MYSQL_FTPARSER_FULL_BOOLEAN_INFO. + + ftparser_state: A generic pointer. The plugin can set it to point + to information to be used internally for its own purposes. + + mysql_ftparam: This is set by the server. It is used by MySQL functions + called via mysql_parse() and mysql_add_word() callback. The plugin + should not modify it. + + cs: Information about the character set of the document or query string. + + doc: A pointer to the document or query string to be parsed. + + length: Length of the document or query string, in bytes. + + flags: See MYSQL_FTFLAGS_* constants above. + + mode: The parsing mode. With boolean operators, with stopwords, or + nothing. See enum_ftparser_mode above. +*/ + +typedef struct st_mysql_ftparser_param +{ + int (*mysql_parse)(struct st_mysql_ftparser_param *, + const char *doc, int doc_len); + int (*mysql_add_word)(struct st_mysql_ftparser_param *, + const char *word, int word_len, + MYSQL_FTPARSER_BOOLEAN_INFO *boolean_info); + void *ftparser_state; + void *mysql_ftparam; + const struct charset_info_st *cs; + const char *doc; + int length; + unsigned int flags; + enum enum_ftparser_mode mode; +} MYSQL_FTPARSER_PARAM; + +/* + Full-text parser descriptor. + + interface_version is, e.g., MYSQL_FTPARSER_INTERFACE_VERSION. + The parsing, initialization, and deinitialization functions are + invoked per SQL statement for which the parser is used. +*/ + +struct st_mysql_ftparser +{ + int interface_version; + int (*parse)(MYSQL_FTPARSER_PARAM *param); + int (*init)(MYSQL_FTPARSER_PARAM *param); + int (*deinit)(MYSQL_FTPARSER_PARAM *param); +}; + + +#endif + diff --git a/database/include/mysql/private/atomic/gcc_builtins.h b/database/include/mysql/private/atomic/gcc_builtins.h new file mode 100644 index 0000000..49b7125 --- /dev/null +++ b/database/include/mysql/private/atomic/gcc_builtins.h @@ -0,0 +1,42 @@ +#ifndef ATOMIC_GCC_BUILTINS_INCLUDED +#define ATOMIC_GCC_BUILTINS_INCLUDED + +/* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#define make_atomic_add_body(S) \ + v= __sync_fetch_and_add(a, v); +#define make_atomic_fas_body(S) \ + v= __sync_lock_test_and_set(a, v); +#define make_atomic_cas_body(S) \ + int ## S sav; \ + int ## S cmp_val= *cmp; \ + sav= __sync_val_compare_and_swap(a, cmp_val, set);\ + if (!(ret= (sav == cmp_val))) *cmp= sav + +#ifdef MY_ATOMIC_MODE_DUMMY +#define make_atomic_load_body(S) ret= *a +#define make_atomic_store_body(S) *a= v +#define MY_ATOMIC_MODE "gcc-builtins-up" + +#else +#define MY_ATOMIC_MODE "gcc-builtins-smp" +#define make_atomic_load_body(S) \ + ret= __sync_fetch_and_or(a, 0); +#define make_atomic_store_body(S) \ + (void) __sync_lock_test_and_set(a, v); +#endif + +#endif /* ATOMIC_GCC_BUILTINS_INCLUDED */ diff --git a/database/include/mysql/private/atomic/generic-msvc.h b/database/include/mysql/private/atomic/generic-msvc.h new file mode 100644 index 0000000..754f0bf --- /dev/null +++ b/database/include/mysql/private/atomic/generic-msvc.h @@ -0,0 +1,135 @@ +/* Copyright (c) 2006-2008 MySQL AB, 2009 Sun Microsystems, Inc. + Use is subject to license terms. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef _atomic_h_cleanup_ +#define _atomic_h_cleanup_ "atomic/generic-msvc.h" + +/* + We don't implement anything specific for MY_ATOMIC_MODE_DUMMY, always use + intrinsics. + 8 and 16-bit atomics are not implemented, but it can be done if necessary. +*/ +#undef MY_ATOMIC_HAS_8_16 + +#include +/* + x86 compilers (both VS2003 or VS2005) never use instrinsics, but generate + function calls to kernel32 instead, even in the optimized build. + We force intrinsics as described in MSDN documentation for + _InterlockedCompareExchange. +*/ +#ifdef _M_IX86 + +#if (_MSC_VER >= 1500) +#include +#else +C_MODE_START +/*Visual Studio 2003 and earlier do not have prototypes for atomic intrinsics*/ +LONG _InterlockedCompareExchange (LONG volatile *Target, LONG Value, LONG Comp); +LONGLONG _InterlockedCompareExchange64 (LONGLONG volatile *Target, + LONGLONG Value, LONGLONG Comp); +C_MODE_END + +#pragma intrinsic(_InterlockedCompareExchange) +#pragma intrinsic(_InterlockedCompareExchange64) +#endif + +#define InterlockedCompareExchange _InterlockedCompareExchange +#define InterlockedCompareExchange64 _InterlockedCompareExchange64 +/* + No need to do something special for InterlockedCompareExchangePointer + as it is a #define to InterlockedCompareExchange. The same applies to + InterlockedExchangePointer. +*/ +#endif /*_M_IX86*/ + +#define MY_ATOMIC_MODE "msvc-intrinsics" +/* Implement using CAS on WIN32 */ +#define IL_COMP_EXCHG32(X,Y,Z) \ + InterlockedCompareExchange((volatile LONG *)(X),(Y),(Z)) +#define IL_COMP_EXCHG64(X,Y,Z) \ + InterlockedCompareExchange64((volatile LONGLONG *)(X), \ + (LONGLONG)(Y),(LONGLONG)(Z)) +#define IL_COMP_EXCHGptr InterlockedCompareExchangePointer + +#define make_atomic_cas_body(S) \ + int ## S initial_cmp= *cmp; \ + int ## S initial_a= IL_COMP_EXCHG ## S (a, set, initial_cmp); \ + if (!(ret= (initial_a == initial_cmp))) *cmp= initial_a; + +#ifndef _M_IX86 +/* Use full set of optimised functions on WIN64 */ +#define IL_EXCHG_ADD32(X,Y) \ + InterlockedExchangeAdd((volatile LONG *)(X),(Y)) +#define IL_EXCHG_ADD64(X,Y) \ + InterlockedExchangeAdd64((volatile LONGLONG *)(X),(LONGLONG)(Y)) +#define IL_EXCHG32(X,Y) \ + InterlockedExchange((volatile LONG *)(X),(Y)) +#define IL_EXCHG64(X,Y) \ + InterlockedExchange64((volatile LONGLONG *)(X),(LONGLONG)(Y)) +#define IL_EXCHGptr InterlockedExchangePointer + +#define make_atomic_add_body(S) \ + v= IL_EXCHG_ADD ## S (a, v) +#define make_atomic_swap_body(S) \ + v= IL_EXCHG ## S (a, v) +#define make_atomic_load_body(S) \ + ret= 0; /* avoid compiler warning */ \ + ret= IL_COMP_EXCHG ## S (a, ret, ret); +#endif +/* + my_yield_processor (equivalent of x86 PAUSE instruction) should be used + to improve performance on hyperthreaded CPUs. Intel recommends to use it in + spin loops also on non-HT machines to reduce power consumption (see e.g + http://softwarecommunity.intel.com/articles/eng/2004.htm) + + Running benchmarks for spinlocks implemented with InterlockedCompareExchange + and YieldProcessor shows that much better performance is achieved by calling + YieldProcessor in a loop - that is, yielding longer. On Intel boxes setting + loop count in the range 200-300 brought best results. + */ +#ifndef YIELD_LOOPS +#define YIELD_LOOPS 200 +#endif + +static __inline int my_yield_processor() +{ + int i; + for(i=0; irw) +#define my_atomic_rwlock_init(name) pthread_mutex_init(& (name)->rw, 0) +#define my_atomic_rwlock_rdlock(name) pthread_mutex_lock(& (name)->rw) +#define my_atomic_rwlock_wrlock(name) pthread_mutex_lock(& (name)->rw) +#define my_atomic_rwlock_rdunlock(name) pthread_mutex_unlock(& (name)->rw) +#define my_atomic_rwlock_wrunlock(name) pthread_mutex_unlock(& (name)->rw) + +#else /* SAFE_MUTEX */ + +/* + SAFE_MUTEX pollutes the compiling name space with macros + that alter pthread_mutex_t, pthread_mutex_init, etc. + Atomic operations should never use the safe mutex wrappers. + Unfortunately, there is no way to have both: + - safe mutex macros expanding pthread_mutex_lock to safe_mutex_lock + - my_atomic macros expanding to unmodified pthread_mutex_lock + inlined in the same compilation unit. + So, in case of SAFE_MUTEX, a function call is required. + Given that SAFE_MUTEX is a debugging facility, + this extra function call is not a performance concern for + production builds. +*/ +C_MODE_START +extern void plain_pthread_mutex_init(safe_mutex_t *); +extern void plain_pthread_mutex_destroy(safe_mutex_t *); +extern void plain_pthread_mutex_lock(safe_mutex_t *); +extern void plain_pthread_mutex_unlock(safe_mutex_t *); +C_MODE_END + +#define my_atomic_rwlock_destroy(name) plain_pthread_mutex_destroy(&(name)->rw) +#define my_atomic_rwlock_init(name) plain_pthread_mutex_init(&(name)->rw) +#define my_atomic_rwlock_rdlock(name) plain_pthread_mutex_lock(&(name)->rw) +#define my_atomic_rwlock_wrlock(name) plain_pthread_mutex_lock(&(name)->rw) +#define my_atomic_rwlock_rdunlock(name) plain_pthread_mutex_unlock(&(name)->rw) +#define my_atomic_rwlock_wrunlock(name) plain_pthread_mutex_unlock(&(name)->rw) + +#endif /* SAFE_MUTEX */ + +#define MY_ATOMIC_MODE "mutex" +#ifndef MY_ATOMIC_MODE_RWLOCKS +#define MY_ATOMIC_MODE_RWLOCKS 1 +#endif +#endif + +#define make_atomic_add_body(S) int ## S sav; sav= *a; *a+= v; v=sav; +#define make_atomic_fas_body(S) int ## S sav; sav= *a; *a= v; v=sav; +#define make_atomic_cas_body(S) if ((ret= (*a == *cmp))) *a= set; else *cmp=*a; +#define make_atomic_load_body(S) ret= *a; +#define make_atomic_store_body(S) *a= v; + +#endif /* ATOMIC_RWLOCK_INCLUDED */ diff --git a/database/include/mysql/private/atomic/solaris.h b/database/include/mysql/private/atomic/solaris.h new file mode 100644 index 0000000..cac3404 --- /dev/null +++ b/database/include/mysql/private/atomic/solaris.h @@ -0,0 +1,72 @@ +/* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef _atomic_h_cleanup_ +#define _atomic_h_cleanup_ "atomic/solaris.h" + +#include + +#define MY_ATOMIC_MODE "solaris-atomic" + +#if defined(__GNUC__) +#define atomic_typeof(T,V) __typeof__(V) +#else +#define atomic_typeof(T,V) T +#endif + +#define uintptr_t void * +#define atomic_or_ptr_nv(X,Y) (void *)atomic_or_ulong_nv((volatile ulong_t *)X, Y) + +#define make_atomic_cas_body(S) \ + atomic_typeof(uint ## S ## _t, *cmp) sav; \ + sav = atomic_cas_ ## S( \ + (volatile uint ## S ## _t *)a, \ + (uint ## S ## _t)*cmp, \ + (uint ## S ## _t)set); \ + if (! (ret= (sav == *cmp))) \ + *cmp= sav; + +#define make_atomic_add_body(S) \ + int ## S nv; /* new value */ \ + nv= atomic_add_ ## S ## _nv((volatile uint ## S ## _t *)a, v); \ + v= nv - v + +/* ------------------------------------------------------------------------ */ + +#ifdef MY_ATOMIC_MODE_DUMMY + +#define make_atomic_load_body(S) ret= *a +#define make_atomic_store_body(S) *a= v + +#else /* MY_ATOMIC_MODE_DUMMY */ + +#define make_atomic_load_body(S) \ + ret= atomic_or_ ## S ## _nv((volatile uint ## S ## _t *)a, 0) + +#define make_atomic_store_body(S) \ + (void) atomic_swap_ ## S((volatile uint ## S ## _t *)a, (uint ## S ## _t)v) + +#endif + +#define make_atomic_fas_body(S) \ + v= atomic_swap_ ## S((volatile uint ## S ## _t *)a, (uint ## S ## _t)v) + +#else /* cleanup */ + +#undef uintptr_t +#undef atomic_or_ptr_nv + +#endif + diff --git a/database/include/mysql/private/atomic/x86-gcc.h b/database/include/mysql/private/atomic/x86-gcc.h new file mode 100644 index 0000000..679ecd3 --- /dev/null +++ b/database/include/mysql/private/atomic/x86-gcc.h @@ -0,0 +1,145 @@ +#ifndef ATOMIC_X86_GCC_INCLUDED +#define ATOMIC_X86_GCC_INCLUDED + +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* + XXX 64-bit atomic operations can be implemented using + cmpxchg8b, if necessary. Though I've heard that not all 64-bit + architectures support double-word (128-bit) cas. +*/ + +/* + No special support of 8 and 16 bit operations are implemented here + currently. +*/ +#undef MY_ATOMIC_HAS_8_AND_16 + +#ifdef __x86_64__ +# ifdef MY_ATOMIC_NO_XADD +# define MY_ATOMIC_MODE "gcc-amd64" LOCK_prefix "-no-xadd" +# else +# define MY_ATOMIC_MODE "gcc-amd64" LOCK_prefix +# endif +#else +# ifdef MY_ATOMIC_NO_XADD +# define MY_ATOMIC_MODE "gcc-x86" LOCK_prefix "-no-xadd" +# else +# define MY_ATOMIC_MODE "gcc-x86" LOCK_prefix +# endif +#endif + +/* fix -ansi errors while maintaining readability */ +#ifndef asm +#define asm __asm__ +#endif + +#ifndef MY_ATOMIC_NO_XADD +#define make_atomic_add_body(S) make_atomic_add_body ## S +#define make_atomic_cas_body(S) make_atomic_cas_body ## S +#endif + +#define make_atomic_add_body32 \ + asm volatile (LOCK_prefix "; xadd %0, %1;" \ + : "+r" (v), "=m" (*a) \ + : "m" (*a) \ + : "memory") + +#define make_atomic_cas_body32 \ + __typeof__(*cmp) sav; \ + asm volatile (LOCK_prefix "; cmpxchg %3, %0; setz %2;" \ + : "=m" (*a), "=a" (sav), "=q" (ret) \ + : "r" (set), "m" (*a), "a" (*cmp) \ + : "memory"); \ + if (!ret) \ + *cmp= sav + +#ifdef __x86_64__ +#define make_atomic_add_body64 make_atomic_add_body32 +#define make_atomic_cas_body64 make_atomic_cas_body32 + +#define make_atomic_fas_body(S) \ + asm volatile ("xchg %0, %1;" \ + : "+r" (v), "=m" (*a) \ + : "m" (*a) \ + : "memory") + +/* + Actually 32/64-bit reads/writes are always atomic on x86_64, + nonetheless issue memory barriers as appropriate. +*/ +#define make_atomic_load_body(S) \ + /* Serialize prior load and store operations. */ \ + asm volatile ("mfence" ::: "memory"); \ + ret= *a; \ + /* Prevent compiler from reordering instructions. */ \ + asm volatile ("" ::: "memory") +#define make_atomic_store_body(S) \ + asm volatile ("; xchg %0, %1;" \ + : "=m" (*a), "+r" (v) \ + : "m" (*a) \ + : "memory") + +#else +/* + Use default implementations of 64-bit operations since we solved + the 64-bit problem on 32-bit platforms for CAS, no need to solve it + once more for ADD, LOAD, STORE and FAS as well. + Since we already added add32 support, we need to define add64 + here, but we haven't defined fas, load and store at all, so + we can fallback on default implementations. +*/ +#define make_atomic_add_body64 \ + int64 tmp=*a; \ + while (!my_atomic_cas64(a, &tmp, tmp+v)) ; \ + v=tmp; + +/* + On some platforms (e.g. Mac OS X and Solaris) the ebx register + is held as a pointer to the global offset table. Thus we're not + allowed to use the b-register on those platforms when compiling + PIC code, to avoid this we push ebx and pop ebx. The new value + is copied directly from memory to avoid problems with a implicit + manipulation of the stack pointer by the push. + + cmpxchg8b works on both 32-bit platforms and 64-bit platforms but + the code here is only used on 32-bit platforms, on 64-bit + platforms the much simpler make_atomic_cas_body32 will work + fine. +*/ +#define make_atomic_cas_body64 \ + asm volatile ("push %%ebx;" \ + "movl (%%ecx), %%ebx;" \ + "movl 4(%%ecx), %%ecx;" \ + LOCK_prefix "; cmpxchg8b (%%esi);" \ + "setz %2; pop %%ebx" \ + : "+S" (a), "+A" (*cmp), "=c" (ret) \ + : "c" (&set) \ + : "memory", "esp") +#endif + +/* + The implementation of make_atomic_cas_body32 is adaptable to + the OS word size, so on 64-bit platforms it will automatically + adapt to 64-bits and so it will work also on 64-bit platforms +*/ +#define make_atomic_cas_bodyptr make_atomic_cas_body32 + +#ifdef MY_ATOMIC_MODE_DUMMY +#define make_atomic_load_body(S) ret=*a +#define make_atomic_store_body(S) *a=v +#endif +#endif /* ATOMIC_X86_GCC_INCLUDED */ diff --git a/database/include/mysql/private/authors.h b/database/include/mysql/private/authors.h new file mode 100644 index 0000000..148ae16 --- /dev/null +++ b/database/include/mysql/private/authors.h @@ -0,0 +1,164 @@ +#ifndef AUTHORS_INCLUDED +#define AUTHORS_INCLUDED + +/* Copyright (c) 2005, 2010, Oracle and/or its affiliates. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* Structure of the name list */ + +struct show_table_authors_st { + const char *name; + const char *location; + const char *comment; +}; + +/* + Output from "SHOW AUTHORS" + + If you can update it, you get to be in it :) + + Don't be offended if your name is not in here, just add it! + + IMPORTANT: Names should be added in alphabetical order (by last name). + + Names should be encoded using UTF-8. +*/ + +struct show_table_authors_st show_table_authors[]= { + { "Michael (Monty) Widenius", "Tusby, Finland", + "Lead developer and main author" }, + { "David Axmark", "London, England", + "MySQL founder; Small stuff long time ago, Monty ripped it out!" }, + { "Sergei Golubchik", "Kerpen, Germany", + "Full-text search, precision math" }, + { "Igor Babaev", "Bellevue, USA", "Optimizer, keycache, core work"}, + { "Sergey Petrunia", "St. Petersburg, Russia", "Optimizer"}, + { "Oleksandr Byelkin", "Lugansk, Ukraine", + "Query Cache (4.0), Subqueries (4.1), Views (5.0)" }, + { "Brian (Krow) Aker", "Seattle, WA, USA", + "Architecture, archive, federated, bunch of little stuff :)" }, + { "Marc Alff", "Denver, CO, USA", "Signal, Resignal, Performance schema" }, + { "Venu Anuganti", "", "Client/server protocol (4.1)" }, + { "Kristian Nielsen", "Copenhagen, Denmark", + "General build stuff," }, + { "Alexander (Bar) Barkov", "Izhevsk, Russia", + "Unicode and character sets (4.1)" }, + { "Guilhem Bichot", "Bordeaux, France", "Replication (since 4.0)" }, + { "Konstantin Osipov", "Moscow, Russia", + "Prepared statements (4.1), Cursors (5.0)" }, + { "Dmitri Lenev", "Moscow, Russia", + "Time zones support (4.1), Triggers (5.0)" }, + { "Omer BarNir", "Sunnyvale, CA, USA", + "Testing (sometimes) and general QA stuff" }, + { "John Birrell", "", "Emulation of pthread_mutex() for OS/2" }, + { "Andreas F. Bobak", "", "AGGREGATE extension to user-defined functions" }, + { "Alexey Botchkov (Holyfoot)", "Izhevsk, Russia", + "GIS extensions (4.1), embedded server (4.1), precision math (5.0)"}, + { "Reggie Burnett", "Nashville, TN, USA", "Windows development, Connectors" }, + { "Kent Boortz", "Orebro, Sweden", "Test platform, and general build stuff" }, + { "Tim Bunce", "", "mysqlhotcopy" }, + { "Yves Carlier", "", "mysqlaccess" }, + { "Joshua Chamas", "Cupertino, CA, USA", + "Concurrent insert, extended date syntax" }, + { "Petr Chardin", "Moscow, Russia", + "Instance Manager (5.0), Server log tables (5.1)" }, + { "Wei-Jou Chen", "", "Chinese (Big5) character set" }, + { "Albert Chin-A-Young", "", + "Tru64 port, large file support, better TCP wrappers support" }, + { "Jorge del Conde", "Mexico City, Mexico", "Windows development" }, + { "Antony T. Curtis", "Norwalk, CA, USA", + "Parser, port to OS/2, storage engines and some random stuff" }, + { "Yuri Dario", "", "OS/2 port" }, + { "Andrei Elkin", "Espoo, Finland", "Replication" }, + { "Patrick Galbraith", "Sharon, NH", "Federated Engine, mysqlslap" }, + { "Lenz Grimmer", "Hamburg, Germany", + "Production (build and release) engineering" }, + { "Nikolay Grishakin", "Austin, TX, USA", "Testing - Server" }, + { "Wei He", "", "Chinese (GBK) character set" }, + { "Eric Herman", "Amsterdam, Netherlands", "Bug fixing - federated" }, + { "Andrey Hristov", "Walldorf, Germany", "Event scheduler (5.1)" }, + { "Alexander (Alexi) Ivanov", "St. Petersburg, Russia", "Replication" }, + { "Mattias Jonsson", "Uppsala, Sweden", "Partitioning" }, + { "Alexander (Salle) Keremidarski", "Sofia, Bulgaria", + "Bug fixing" }, + { "Mats Kindahl", "Storvreta, Sweden", "Replication" }, + { "Serge Kozlov", "Velikie Luki, Russia", "Testing - Cluster" }, + { "Hakan Küçükyılmaz", "Walldorf, Germany", "Testing - Server" }, + { "Greg (Groggy) Lehey", "Uchunga, SA, Australia", "Backup" }, + { "Matthias Leich", "Berlin, Germany", "Testing - Server" }, + { "Arjen Lentz", "Brisbane, Australia", + "Documentation (2001-2004), Dutch error messages, LOG2()" }, + { "Marc Liyanage", "", "Created Mac OS X packages" }, + { "Kelly Long", "Denver, CO, USA", "Pool Of Threads" }, + { "Zarko Mocnik", "", "Sorting for Slovenian language" }, + { "Per-Erik Martin", "Uppsala, Sweden", "Stored Procedures (5.0)" }, + { "Alexis Mikhailov", "", "User-defined functions" }, + { "Sinisa Milivojevic", "Larnaca, Cyprus", + "UNION (4.0), Subqueries in FROM clause (4.1), many other features" }, + { "Jonathan (Jeb) Miller", "Kyle, TX, USA", + "Testing - Cluster, Replication" }, + { "Elliot Murphy", "Cocoa, FL, USA", "Replication and backup" }, + { "Pekka Nouisiainen", "Stockholm, Sweden", + "NDB Cluster: BLOB support, character set support, ordered indexes" }, + { "Alexander Nozdrin", "Moscow, Russia", + "Bug fixing (Stored Procedures, 5.0)" }, + { "Per Eric Olsson", "", "Testing of dynamic record format" }, + { "Jonas Oreland", "Stockholm, Sweden", + "NDB Cluster, Online Backup, lots of other things" }, + { "Alexander (Sasha) Pachev", "Provo, UT, USA", + "Statement-based replication, SHOW CREATE TABLE, mysql-bench" }, + { "Irena Pancirov", "", "Port to Windows with Borland compiler" }, + { "Jan Pazdziora", "", "Czech sorting order" }, + { "Benjamin Pflugmann", "", + "Extended MERGE storage engine to handle INSERT" }, + { "Igor Romanenko", "", + "mysqldump" }, + { "Mikael Ronström", "Stockholm, Sweden", + "NDB Cluster, Partitioning (5.1), Optimizations" }, + { "Tõnu Samuel", "", + "VIO interface, other miscellaneous features" }, + { "Carsten Segieth (Pino)", "Fredersdorf, Germany", "Testing - Server"}, + { "Martin Sköld", "Stockholm, Sweden", + "NDB Cluster: Unique indexes, integration into MySQL" }, + { "Timothy Smith", "Auckland, New Zealand", + "Dynamic character sets, parts of the build system, libmysqld"}, + { "Miguel Solorzano", "Florianopolis, Santa Catarina, Brazil", + "Windows development, Windows NT service"}, + { "Punita Srivastava", "Austin, TX, USA", "Testing - Merlin"}, + { "Alexey Stroganov (Ranger)", "Lugansk, Ukraine", "Testing - Benchmarks"}, + { "Ingo Strüwing", "Berlin, Germany", "Bug fixing" }, + { "Magnus Svensson", "Öregrund, Sweden", + "NDB Cluster: Integration into MySQL, test framework" }, + { "Zeev Suraski", "", "FROM_UNIXTIME(), ENCRYPT()" }, + { "TAMITO", "", + "The _MB character set macros and UJIS and SJIS character sets" }, + { "Jani Tolonen", "Helsinki, Finland", + "mysqlimport, extensions to command-line clients, PROCEDURE ANALYSE()" }, + { "Lars Thalmann", "Stockholm, Sweden", + "Replication and cluster development" }, + { "Tomas Ulin", "Stockholm, Sweden", + "NDB Cluster: Configuration, installation" }, + { "Gianmassimo Vigazzola", "", "Initial Windows port" }, + { "Sergey Vojtovich", "Izhevsk, Russia", "Plugins infrastructure (5.1)" }, + { "Matt Wagner", "Northfield, MN, USA", "Bug fixing" }, + { "Jim Winstead Jr.", "Los Angeles, CA, USA", "Bug fixing" }, + { "Peter Zaitsev", "Tacoma, WA, USA", + "SHA1(), AES_ENCRYPT(), AES_DECRYPT(), bug fixing" }, + {"Mark Mark Callaghan", "Texas, USA", "Statistics patches"}, + {"Percona", "CA, USA", "Microslow patches"}, + {NULL, NULL, NULL} +}; + +#endif /* AUTHORS_INCLUDED */ diff --git a/database/include/mysql/private/base64.h b/database/include/mysql/private/base64.h new file mode 100644 index 0000000..5651298 --- /dev/null +++ b/database/include/mysql/private/base64.h @@ -0,0 +1,49 @@ +/* Copyright (c) 2003-2006 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef __BASE64_H_INCLUDED__ +#define __BASE64_H_INCLUDED__ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + Calculate how much memory needed for dst of base64_encode() +*/ +int base64_needed_encoded_length(int length_of_data); + +/* + Calculate how much memory needed for dst of base64_decode() +*/ +int base64_needed_decoded_length(int length_of_encoded_data); + +/* + Encode data as a base64 string +*/ +int base64_encode(const void *src, size_t src_len, char *dst); + +/* + Decode a base64 string into data +*/ +int base64_decode(const char *src, size_t src_len, + void *dst, const char **end_ptr); + + +#ifdef __cplusplus +} +#endif +#endif /* !__BASE64_H_INCLUDED__ */ diff --git a/database/include/mysql/private/client_settings.h b/database/include/mysql/private/client_settings.h new file mode 100644 index 0000000..0e418a3 --- /dev/null +++ b/database/include/mysql/private/client_settings.h @@ -0,0 +1,52 @@ +/* Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + + +#ifndef CLIENT_SETTINGS_INCLUDED +#define CLIENT_SETTINGS_INCLUDED +#else +#error You have already included an client_settings.h and it should not be included twice +#endif /* CLIENT_SETTINGS_INCLUDED */ + +#include +#include + +/* + Note: CLIENT_CAPABILITIES is also defined in libmysql/client_settings.h. + When adding capabilities here, consider if they should be also added to + the libmysql version. +*/ +#define CLIENT_CAPABILITIES (CLIENT_LONG_PASSWORD | \ + CLIENT_LONG_FLAG | \ + CLIENT_SECURE_CONNECTION | \ + CLIENT_TRANSACTIONS | \ + CLIENT_PROTOCOL_41 | \ + CLIENT_SECURE_CONNECTION | \ + CLIENT_PLUGIN_AUTH) + +#define read_user_name(A) {} +#undef _CUSTOMCONFIG_ + +#define mysql_server_init(a,b,c) mysql_client_plugin_init() +#define mysql_server_end() mysql_client_plugin_deinit() + +#ifdef HAVE_REPLICATION +C_MODE_START +void slave_io_thread_detach_vio(); +C_MODE_END +#else +#define slave_io_thread_detach_vio() +#endif + diff --git a/database/include/mysql/private/config.h b/database/include/mysql/private/config.h new file mode 100644 index 0000000..44b4a6f --- /dev/null +++ b/database/include/mysql/private/config.h @@ -0,0 +1,654 @@ +/* Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef MY_CONFIG_H +#define MY_CONFIG_H +#define DOT_FRM_VERSION 6 +/* Headers we may want to use. */ +#define STDC_HEADERS 1 +#define _GNU_SOURCE 1 +#define HAVE_ALLOCA_H 1 +#define HAVE_AIO_H 1 +#define HAVE_ARPA_INET_H 1 +#define HAVE_ASM_MSR_H 1 +#define HAVE_ASM_TERMBITS_H 1 +#define HAVE_BSEARCH 1 +#define HAVE_CRYPT_H 1 +#define HAVE_CURSES_H 1 +#define HAVE_CXXABI_H 1 +/* #undef HAVE_BFD_H */ +/* #undef HAVE_NCURSES_H */ +/* #undef HAVE_NDIR_H */ +#define HAVE_DIRENT_H 1 +#define HAVE_DLFCN_H 1 +#define HAVE_EXECINFO_H 1 +#define HAVE_FCNTL_H 1 +#define HAVE_FENV_H 1 +#define HAVE_FLOAT_H 1 +/* #undef HAVE_FLOATINGPOINT_H */ +#define HAVE_FNMATCH_H 1 +#define HAVE_FPU_CONTROL_H 1 +#define HAVE_GRP_H 1 +#define HAVE_EXPLICIT_TEMPLATE_INSTANTIATION 1 +/* #undef HAVE_IA64INTRIN_H */ +/* #undef HAVE_IEEEFP_H */ +#define HAVE_INTTYPES_H 1 +/* #undef HAVE_KQUEUE */ +#define HAVE_LIMITS_H 1 +#define HAVE_LINUX_UNISTD_H 1 +#define HAVE_LOCALE_H 1 +#define HAVE_MALLOC_H 1 +#define HAVE_MEMORY_H 1 +#define HAVE_NETINET_IN_H 1 +#define HAVE_PATHS_H 1 +#define HAVE_POLL_H 1 +/* #undef HAVE_PORT_H */ +#define HAVE_PWD_H 1 +#define HAVE_SCHED_H 1 +/* #undef HAVE_SELECT_H */ +/* #undef HAVE_SOLARIS_LARGE_PAGES */ +#define HAVE_STDDEF_H 1 +#define HAVE_STDLIB_H 1 +#define HAVE_STDARG_H 1 +#define HAVE_STRINGS_H 1 +#define HAVE_STRING_H 1 +#define HAVE_STDINT_H 1 +#define HAVE_SEMAPHORE_H 1 +/* #undef HAVE_SYNCH_H */ +/* #undef HAVE_SYSENT_H */ +#define HAVE_SYS_DIR_H 1 +#define HAVE_SYS_CDEFS_H 1 +#define HAVE_SYS_FILE_H 1 +/* #undef HAVE_SYS_FPU_H */ +#define HAVE_SYS_IOCTL_H 1 +#define HAVE_SYS_IPC_H 1 +/* #undef HAVE_SYS_MALLOC_H */ +#define HAVE_SYS_MMAN_H 1 +/* #undef HAVE_SYS_NDIR_H */ +/* #undef HAVE_SYS_PTE_H */ +/* #undef HAVE_SYS_PTEM_H */ +#define HAVE_SYS_PRCTL_H 1 +#define HAVE_SYS_RESOURCE_H 1 +#define HAVE_SYS_SELECT_H 1 +#define HAVE_SYS_SHM_H 1 +#define HAVE_SYS_SOCKET_H 1 +/* #undef HAVE_SYS_SOCKIO_H */ +#define HAVE_SYS_UTSNAME_H 1 +#define HAVE_SYS_STAT_H 1 +/* #undef HAVE_SYS_STREAM_H */ +/* #undef HAVE_SYS_TERMCAP_H */ +/* #undef HAVE_SYS_TIMEB_H */ +#define HAVE_SYS_TIMES_H 1 +#define HAVE_SYS_TIME_H 1 +#define HAVE_SYS_TYPES_H 1 +#define HAVE_SYS_UN_H 1 +/* #undef HAVE_SYS_VADVISE_H */ +#define HAVE_UCONTEXT_H 1 +#define HAVE_TERM_H 1 +/* #undef HAVE_TERMBITS_H */ +#define HAVE_TERMIOS_H 1 +#define HAVE_TERMIO_H 1 +#define HAVE_TERMCAP_H 1 +#define HAVE_TIME_H 1 +#define HAVE_UNISTD_H 1 +#define HAVE_UTIME_H 1 +/* #undef HAVE_VARARGS_H */ +/* #undef HAVE_VIS_H */ +/* #undef HAVE_SYS_UTIME_H */ +#define HAVE_SYS_WAIT_H 1 +#define HAVE_SYS_PARAM_H 1 + +/* Libraries */ +/* #undef HAVE_LIBPTHREAD */ +#define HAVE_LIBM 1 +#define HAVE_LIBDL 1 +#define HAVE_LIBRT 1 +/* #undef HAVE_LIBSOCKET */ +/* #undef HAVE_LIBNSL */ +#define HAVE_LIBCRYPT 1 +/* #undef HAVE_LIBMTMALLOC */ +/* #undef HAVE_LIBWRAP */ +/* Does "struct timespec" have a "sec" and "nsec" field? */ +/* #undef HAVE_TIMESPEC_TS_SEC */ + +/* Readline */ +/* #undef HAVE_HIST_ENTRY */ +/* #undef USE_LIBEDIT_INTERFACE */ +#define USE_NEW_READLINE_INTERFACE 1 + +#define FIONREAD_IN_SYS_IOCTL 1 +#define GWINSZ_IN_SYS_IOCTL 1 +/* #undef TIOCSTAT_IN_SYS_IOCTL */ +/* #undef FIONREAD_IN_SYS_FILIO */ + +/* Functions we may want to use. */ +#define HAVE_ACCESS 1 +/* #undef HAVE_AIOWAIT */ +#define HAVE_ALARM 1 +#define HAVE_ALLOCA 1 +/* #undef HAVE_BFILL */ +/* #undef HAVE_BMOVE */ +#define HAVE_BZERO 1 +#define HAVE_INDEX 1 +#define HAVE_CHOWN 1 +#define HAVE_CLOCK_GETTIME 1 +#define HAVE_CRYPT 1 +#define HAVE_CUSERID 1 +#define HAVE_CXX_NEW 1 +/* #undef HAVE_DIRECTIO */ +#define HAVE_DLADDR 1 +#define HAVE_DLERROR 1 +#define HAVE_DLOPEN 1 +/* #undef HAVE_DOPRNT */ +#define HAVE_FCHMOD 1 +#define HAVE_FCNTL 1 +/* #undef HAVE_FCONVERT */ +#define HAVE_FDATASYNC 1 +#define HAVE_DECL_FDATASYNC 1 +#define HAVE_FEDISABLEEXCEPT 1 +#define HAVE_FESETROUND 1 +#define HAVE_FINITE 1 +/* #undef HAVE_FP_EXCEPT */ +/* #undef HAVE_FPSETMASK */ +#define HAVE_FSEEKO 1 +#define HAVE_FSYNC 1 +#define HAVE_FTIME 1 +#define HAVE_GETADDRINFO 1 +#define HAVE_GETCWD 1 +#define HAVE_GETHOSTBYADDR_R 1 +/* #undef HAVE_GETHRTIME */ +#define HAVE_GETLINE 1 +#define HAVE_GETNAMEINFO 1 +#define HAVE_GETPAGESIZE 1 +#define HAVE_GETPASS 1 +/* #undef HAVE_GETPASSPHRASE */ +#define HAVE_GETPWNAM 1 +#define HAVE_GETPWUID 1 +#define HAVE_GETRLIMIT 1 +#define HAVE_GETRUSAGE 1 +#define HAVE_GETTIMEOFDAY 1 +#define HAVE_GETWD 1 +#define HAVE_GMTIME_R 1 +/* #undef gmtime_r */ +#define HAVE_IN_ADDR_T 1 +#define HAVE_INITGROUPS 1 +/* #undef HAVE_ISSETUGID */ +#define HAVE_GETUID 1 +#define HAVE_GETEUID 1 +#define HAVE_GETGID 1 +#define HAVE_GETEGID 1 +#define HAVE_ISNAN 1 +#define HAVE_ISINF 1 +#define HAVE_LARGE_PAGE_OPTION 1 +#define HAVE_LDIV 1 +#define HAVE_LRAND48 1 +#define HAVE_LOCALTIME_R 1 +#define HAVE_LOG2 1 +#define HAVE_LONGJMP 1 +#define HAVE_LSTAT 1 +#define HAVE_MEMALIGN 1 +/* #define HAVE_MLOCK 1 see Bug#54662 */ +#define HAVE_NPTL 1 +#define HAVE_NL_LANGINFO 1 +#define HAVE_MADVISE 1 +#define HAVE_DECL_MADVISE 1 +/* #undef HAVE_DECL_TGOTO */ +/* #undef HAVE_DECL_MHA_MAPSIZE_VA */ +#define HAVE_MALLINFO 1 +#define HAVE_MEMCPY 1 +#define HAVE_MEMMOVE 1 +#define HAVE_MKSTEMP 1 +#define HAVE_MLOCKALL 1 +#define HAVE_MMAP 1 +#define HAVE_MMAP64 1 +#define HAVE_PERROR 1 +#define HAVE_POLL 1 +/* #undef HAVE_PORT_CREATE */ +#define HAVE_POSIX_FALLOCATE 1 +#define HAVE_PREAD 1 +#define HAVE_PAUSE_INSTRUCTION 1 +/* #undef HAVE_FAKE_PAUSE_INSTRUCTION */ +/* #undef HAVE_RDTSCLL */ +/* #undef HAVE_READ_REAL_TIME */ +/* #undef HAVE_PTHREAD_ATTR_CREATE */ +#define HAVE_PTHREAD_ATTR_GETGUARDSIZE 1 +#define HAVE_PTHREAD_ATTR_GETSTACKSIZE 1 +/* #undef HAVE_PTHREAD_ATTR_SETPRIO */ +/* #undef HAVE_PTHREAD_ATTR_SETSCHEDPARAM */ +#define HAVE_PTHREAD_ATTR_SETSCOPE 1 +#define HAVE_PTHREAD_ATTR_SETSTACKSIZE 1 +/* #undef HAVE_PTHREAD_CONDATTR_CREATE */ +#define HAVE_PTHREAD_CONDATTR_SETCLOCK 1 +#define HAVE_PTHREAD_KEY_DELETE 1 +#define HAVE_PTHREAD_KEY_DELETE 1 +/* #undef HAVE_PTHREAD_KILL */ +#define HAVE_PTHREAD_RWLOCK_RDLOCK 1 +/* #undef HAVE_PTHREAD_SETPRIO_NP */ +/* #undef HAVE_PTHREAD_SETSCHEDPARAM */ +#define HAVE_PTHREAD_SIGMASK 1 +/* #undef HAVE_PTHREAD_THREADMASK */ +/* #undef HAVE_PTHREAD_YIELD_NP */ +#define HAVE_PTHREAD_YIELD_ZERO_ARG 1 +#define PTHREAD_ONCE_INITIALIZER PTHREAD_ONCE_INIT +#define HAVE_PUTENV 1 +#define HAVE_RE_COMP 1 +#define HAVE_REGCOMP 1 +#define HAVE_READDIR_R 1 +#define HAVE_READLINK 1 +#define HAVE_REALPATH 1 +#define HAVE_RENAME 1 +#define HAVE_RINT 1 +/* #undef HAVE_RWLOCK_INIT */ +#define HAVE_SCHED_YIELD 1 +#define HAVE_SELECT 1 +/* #undef HAVE_SETFD */ +#define HAVE_SETENV 1 +#define HAVE_SETLOCALE 1 +#define HAVE_SETUPTERM 1 +#define HAVE_SIGADDSET 1 +#define HAVE_SIGEMPTYSET 1 +#define HAVE_SIGHOLD 1 +#define HAVE_SIGSET 1 +#define HAVE_SIGSET_T 1 +#define HAVE_SIGACTION 1 +/* #undef HAVE_SIGTHREADMASK */ +#define HAVE_SIGWAIT 1 +#define HAVE_SLEEP 1 +#define HAVE_SNPRINTF 1 +#define HAVE_STPCPY 1 +#define HAVE_STRERROR 1 +#define HAVE_STRCOLL 1 +#define HAVE_STRSIGNAL 1 +/* #undef HAVE_STRLCPY */ +/* #undef HAVE_STRLCAT */ +/* #undef HAVE_FGETLN */ +#define HAVE_STRNLEN 1 +#define HAVE_STRPBRK 1 +/* #undef HAVE_STRSEP */ +#define HAVE_STRSTR 1 +#define HAVE_STRTOK_R 1 +#define HAVE_STRTOL 1 +#define HAVE_STRTOLL 1 +#define HAVE_STRTOUL 1 +#define HAVE_STRTOULL 1 +#define HAVE_SHMAT 1 +#define HAVE_SHMCTL 1 +#define HAVE_SHMDT 1 +#define HAVE_SHMGET 1 +/* #undef HAVE_TELL */ +#define HAVE_TEMPNAM 1 +/* #undef HAVE_THR_SETCONCURRENCY */ +/* #undef HAVE_THR_YIELD */ +#define HAVE_TIME 1 +#define HAVE_TIMES 1 +#define HAVE_VALLOC 1 +#define HAVE_VIDATTR 1 +#define HAVE_VIO_READ_BUFF 1 +#define HAVE_VASPRINTF 1 +#define HAVE_VPRINTF 1 +#define HAVE_VSNPRINTF 1 +#define HAVE_FTRUNCATE 1 +#define HAVE_TZNAME 1 +#define HAVE_AIO_READ 1 +/* Symbols we may use */ +/* #undef HAVE_SYS_ERRLIST */ +/* used by stacktrace functions */ +#define HAVE_BSS_START 1 +#define HAVE_BACKTRACE 1 +#define HAVE_BACKTRACE_SYMBOLS 1 +#define HAVE_BACKTRACE_SYMBOLS_FD 1 +/* #undef HAVE_PRINTSTACK */ +#define HAVE_STRUCT_SOCKADDR_IN6 1 +#define HAVE_STRUCT_IN6_ADDR 1 +/* #undef HAVE_NETINET_IN6_H */ +#define HAVE_IPV6 1 +/* #undef ss_family */ +/* #undef HAVE_SOCKADDR_IN_SIN_LEN */ +/* #undef HAVE_SOCKADDR_IN6_SIN6_LEN */ +/* #undef HAVE_TIMESPEC_TS_SEC */ +#define STRUCT_DIRENT_HAS_D_INO 1 +/* #undef STRUCT_DIRENT_HAS_D_NAMLEN */ +#define STRUCT_TIMESPEC_HAS_TV_SEC 1 +#define STRUCT_TIMESPEC_HAS_TV_NSEC 1 +#define SPRINTF_RETURNS_INT 1 + +#define USE_MB 1 +#define USE_MB_IDENT 1 + +/* this means that valgrind headers and macros are available */ +/* #undef HAVE_VALGRIND */ + +/* this means WITH_VALGRIND - we change some code paths for valgrind */ +/* #undef HAVE_valgrind */ + +/* Types we may use */ +#ifdef __APPLE__ + /* + Special handling required for OSX to support universal binaries that + mix 32 and 64 bit architectures. + */ + #if(__LP64__) + #define SIZEOF_LONG 8 + #else + #define SIZEOF_LONG 4 + #endif + #define SIZEOF_VOIDP SIZEOF_LONG + #define SIZEOF_CHARP SIZEOF_LONG + #define SIZEOF_SIZE_T SIZEOF_LONG +#else +/* No indentation, to fetch the lines from verification scripts */ +#define SIZEOF_LONG 8 +#define SIZEOF_VOIDP 8 +#define SIZEOF_CHARP 8 +#define SIZEOF_SIZE_T 8 +#endif + +#define SIZEOF_CHAR 1 +#define HAVE_CHAR 1 +#define HAVE_LONG 1 +#define HAVE_CHARP 1 +#define SIZEOF_SHORT 2 +#define HAVE_SHORT 1 +#define SIZEOF_INT 4 +#define HAVE_INT 1 +#define SIZEOF_LONG_LONG 8 +#define HAVE_LONG_LONG 1 +#define SIZEOF_OFF_T 8 +#define HAVE_OFF_T 1 +#define SIZEOF_SIGSET_T 128 +#define HAVE_SIGSET_T 1 +#define HAVE_SIZE_T 1 +/* #undef SIZEOF_UCHAR */ +/* #undef HAVE_UCHAR */ +#define SIZEOF_UINT 4 +#define HAVE_UINT 1 +#define SIZEOF_ULONG 8 +#define HAVE_ULONG 1 +/* #undef SIZEOF_INT8 */ +/* #undef HAVE_INT8 */ +/* #undef SIZEOF_UINT8 */ +/* #undef HAVE_UINT8 */ +/* #undef SIZEOF_INT16 */ +/* #undef HAVE_INT16 */ +/* #undef SIZEOF_UINT16 */ +/* #undef HAVE_UINT16 */ +/* #undef SIZEOF_INT32 */ +/* #undef HAVE_INT32 */ +/* #undef SIZEOF_UINT32 */ +/* #undef HAVE_UINT32 */ +#define SIZEOF_U_INT32_T 4 +#define HAVE_U_INT32_T 1 +/* #undef SIZEOF_INT64 */ +/* #undef HAVE_INT64 */ +/* #undef SIZEOF_UINT64 */ +/* #undef HAVE_UINT64 */ +/* #undef SIZEOF_BOOL */ +/* #undef HAVE_BOOL */ + +#define SOCKET_SIZE_TYPE socklen_t + +#define HAVE_MBSTATE_T 1 + +#define MAX_INDEXES 64 + +#define QSORT_TYPE_IS_VOID 1 +#define RETQSORTTYPE void + +#define SIGNAL_RETURN_TYPE_IS_VOID 1 +#define RETSIGTYPE void +#define VOID_SIGHANDLER 1 +#define STRUCT_RLIMIT struct rlimit + +#ifdef __APPLE__ + #if __BIG_ENDIAN + #define WORDS_BIGENDIAN 1 + #endif +#else +/* #undef WORDS_BIGENDIAN */ +#endif + +/* Define to `__inline__' or `__inline' if that's what the C compiler calls + it, or to nothing if 'inline' is not supported under any name. */ +#define C_HAS_inline 1 +#if !(C_HAS_inline) +#ifndef __cplusplus +# define inline +#endif +#endif + + +#define TARGET_OS_LINUX 1 + +#define HAVE_WCTYPE_H 1 +#define HAVE_WCHAR_H 1 +#define HAVE_LANGINFO_H 1 +#define HAVE_MBRLEN 1 +/* #undef HAVE_MBSCMP */ +#define HAVE_MBSRTOWCS 1 +#define HAVE_WCRTOMB 1 +#define HAVE_MBRTOWC 1 +#define HAVE_WCSCOLL 1 +#define HAVE_WCSDUP 1 +#define HAVE_WCWIDTH 1 +#define HAVE_WCTYPE 1 +#define HAVE_ISWLOWER 1 +#define HAVE_ISWUPPER 1 +#define HAVE_TOWLOWER 1 +#define HAVE_TOWUPPER 1 +#define HAVE_ISWCTYPE 1 +#define HAVE_WCHAR_T 1 +#define HAVE_WCTYPE_T 1 +#define HAVE_WINT_T 1 + + +#define HAVE_STRCASECMP 1 +#define HAVE_STRNCASECMP 1 +#define HAVE_STRDUP 1 +#define HAVE_LANGINFO_CODESET 1 +#define HAVE_TCGETATTR 1 +#define HAVE_FLOCKFILE 1 + +#define HAVE_WEAK_SYMBOL 1 +#define HAVE_ABI_CXA_DEMANGLE 1 + + +#define HAVE_POSIX_SIGNALS 1 +/* #undef HAVE_BSD_SIGNALS */ +/* #undef HAVE_SVR3_SIGNALS */ +/* #undef HAVE_V7_SIGNALS */ +/* #undef HAVE_ERR_remove_thread_state */ + +/* #undef HAVE_SOLARIS_STYLE_GETHOST */ + +/* #undef MY_ATOMIC_MODE_DUMMY */ +/* #undef MY_ATOMIC_MODE_RWLOCKS */ +#define HAVE_GCC_ATOMIC_BUILTINS 1 +/* #undef HAVE_SOLARIS_ATOMIC */ +#define HAVE_DECL_SHM_HUGETLB 1 +#define HAVE_LARGE_PAGES 1 +#define HUGETLB_USE_PROC_MEMINFO 1 +/* #undef NO_FCNTL_NONBLOCK */ +#define NO_ALARM 1 + +/* #undef _LARGE_FILES */ +#define _LARGEFILE_SOURCE 1 +/* #undef _LARGEFILE64_SOURCE */ + +#define TIME_WITH_SYS_TIME 1 + +#define STACK_DIRECTION -1 + +#define SYSTEM_TYPE "Linux" +#define MACHINE_TYPE "x86_64" +/* #undef HAVE_DTRACE */ + +#define SIGNAL_WITH_VIO_CLOSE 1 + +/* Windows stuff, mostly functions, that have Posix analogs but named differently */ +/* #undef S_IROTH */ +/* #undef S_IFIFO */ +/* #undef IPPROTO_IPV6 */ +/* #undef IPV6_V6ONLY */ +/* #undef sigset_t */ +/* #undef mode_t */ +/* #undef SIGQUIT */ +/* #undef SIGPIPE */ +/* #undef isnan */ +/* #undef finite */ +/* #undef popen */ +/* #undef pclose */ +/* #undef ssize_t */ +/* #undef strcasecmp */ +/* #undef strncasecmp */ +/* #undef snprintf */ +/* #undef strtok_r */ +/* #undef strtoll */ +/* #undef strtoull */ +/* #undef vsnprintf */ +#if (_MSC_VER > 1800) +#define tzname _tzname +#define P_tmpdir "C:\\TEMP" +#endif +#if (_MSC_VER > 1310) +# define HAVE_SETENV +#define setenv(a,b,c) _putenv_s(a,b) +#endif +#define PSAPI_VERSION 1 /* for GetProcessMemoryInfo() */ + +/* + MySQL features +*/ +#define LOCAL_INFILE_MODE_OFF 0 +#define LOCAL_INFILE_MODE_ON 1 +#define LOCAL_INFILE_MODE_AUTO 2 +#define ENABLED_LOCAL_INFILE LOCAL_INFILE_MODE_AUTO + +#define ENABLED_PROFILING 1 +/* #undef EXTRA_DEBUG */ +/* #undef BACKUP_TEST */ +/* #undef CYBOZU */ +/* #undef USE_SYMDIR */ + +/* Character sets and collations */ +#define MYSQL_DEFAULT_CHARSET_NAME "latin1" +#define MYSQL_DEFAULT_COLLATION_NAME "latin1_swedish_ci" + +#define USE_MB 1 +#define USE_MB_IDENT 1 +/* #undef USE_STRCOLL */ + +/* This should mean case insensitive file system */ +/* #undef FN_NO_CASE_SENSE */ + +#define HAVE_CHARSET_armscii8 1 +#define HAVE_CHARSET_ascii 1 +#define HAVE_CHARSET_big5 1 +#define HAVE_CHARSET_cp1250 1 +#define HAVE_CHARSET_cp1251 1 +#define HAVE_CHARSET_cp1256 1 +#define HAVE_CHARSET_cp1257 1 +#define HAVE_CHARSET_cp850 1 +#define HAVE_CHARSET_cp852 1 +#define HAVE_CHARSET_cp866 1 +#define HAVE_CHARSET_cp932 1 +#define HAVE_CHARSET_dec8 1 +#define HAVE_CHARSET_eucjpms 1 +#define HAVE_CHARSET_euckr 1 +#define HAVE_CHARSET_gb2312 1 +#define HAVE_CHARSET_gbk 1 +#define HAVE_CHARSET_geostd8 1 +#define HAVE_CHARSET_greek 1 +#define HAVE_CHARSET_hebrew 1 +#define HAVE_CHARSET_hp8 1 +#define HAVE_CHARSET_keybcs2 1 +#define HAVE_CHARSET_koi8r 1 +#define HAVE_CHARSET_koi8u 1 +#define HAVE_CHARSET_latin1 1 +#define HAVE_CHARSET_latin2 1 +#define HAVE_CHARSET_latin5 1 +#define HAVE_CHARSET_latin7 1 +#define HAVE_CHARSET_macce 1 +#define HAVE_CHARSET_macroman 1 +#define HAVE_CHARSET_sjis 1 +#define HAVE_CHARSET_swe7 1 +#define HAVE_CHARSET_tis620 1 +#define HAVE_CHARSET_ucs2 1 +#define HAVE_CHARSET_ujis 1 +#define HAVE_CHARSET_utf8mb4 1 +/* #undef HAVE_CHARSET_utf8mb3 */ +#define HAVE_CHARSET_utf8 1 +#define HAVE_CHARSET_utf16 1 +#define HAVE_CHARSET_utf32 1 +#define HAVE_UCA_COLLATIONS 1 +#define HAVE_COMPRESS 1 + + +/* + Stuff that always need to be defined (compile breaks without it) +*/ +#define HAVE_SPATIAL 1 +#define HAVE_RTREE_KEYS 1 +#define HAVE_QUERY_CACHE 1 +#define BIG_TABLES 1 + +/* + Important storage engines (those that really need define + WITH__STORAGE_ENGINE for the whole server) +*/ +#define WITH_MYISAM_STORAGE_ENGINE 1 +#define WITH_MYISAMMRG_STORAGE_ENGINE 1 +#define WITH_HEAP_STORAGE_ENGINE 1 +#define WITH_INNOBASE_STORAGE_ENGINE 1 +#define WITH_XTRADB_STORAGE_ENGINE 1 +#define WITH_CSV_STORAGE_ENGINE 1 +#define WITH_PARTITION_STORAGE_ENGINE 1 +#define WITH_PERFSCHEMA_STORAGE_ENGINE 1 +/* #undef WITH_NDBCLUSTER_STORAGE_ENGINE */ +#if (WITH_NDBCLUSTER_STORAGE_ENGINE) && !defined(EMBEDDED_LIBRARY) +# define HAVE_NDB_BINLOG 1 +#endif +#define WITH_ARIA_STORAGE_ENGINE 1 +#define USE_ARIA_FOR_TMP_TABLES 1 + +#define DEFAULT_MYSQL_HOME "/usr/local/mysql" +#define SHAREDIR "/usr/local/mysql/share" +#define DEFAULT_BASEDIR "/usr/local/mysql" +#define MYSQL_DATADIR "/usr/local/mysql/data" +#define DEFAULT_CHARSET_HOME "/usr/local/mysql" +#define PLUGINDIR "/usr/local/mysql/lib/plugin" +/* #undef DEFAULT_SYSCONFDIR */ +#define DEFAULT_TMPDIR P_tmpdir + +/* #undef SO_EXT */ + +#define MYSQL_MAJOR_VERSION 5 +#define MYSQL_MINOR_VERSION 5 + +#define PACKAGE "mysql" +#define PACKAGE_BUGREPORT "" +#define PACKAGE_NAME "MySQL Server" +#define PACKAGE_STRING "MySQL Server 5.5.68" +#define PACKAGE_TARNAME "mysql" +#define PACKAGE_VERSION "5.5.68" +#define VERSION "5.5.68" +#define PROTOCOL_VERSION 10 + + +/* time_t related defines */ + +#define SIZEOF_TIME_T 8 +/* #undef TIME_T_UNSIGNED */ + +#endif diff --git a/database/include/mysql/private/contributors.h b/database/include/mysql/private/contributors.h new file mode 100644 index 0000000..9b43d22 --- /dev/null +++ b/database/include/mysql/private/contributors.h @@ -0,0 +1,45 @@ +#ifndef CONTRIBUTORS_INCLUDED +#define CONTRIBUTORS_INCLUDED + +/* Copyright (c) 2006 MySQL AB, 2009 Sun Microsystems, Inc. + Use is subject to license terms. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* Structure of the name list */ + +struct show_table_contributors_st { + const char *name; + const char *location; + const char *comment; +}; + +/* + Output from "SHOW CONTRIBUTORS" + + Get permission before editing. + + IMPORTANT: Names should be left in historical order. + + Names should be encoded using UTF-8. +*/ + +struct show_table_contributors_st show_table_contributors[]= { + {"Ronald Bradford", "Brisbane, Australia", "EFF contribution for UC2006 Auction"}, + {"Sheeri Kritzer", "Boston, Mass. USA", "EFF contribution for UC2006 Auction"}, + {"Mark Shuttleworth", "London, UK.", "EFF contribution for UC2006 Auction"}, + {NULL, NULL, NULL} +}; + +#endif /* CONTRIBUTORS_INCLUDED */ diff --git a/database/include/mysql/private/create_options.h b/database/include/mysql/private/create_options.h new file mode 100644 index 0000000..5cd1edd --- /dev/null +++ b/database/include/mysql/private/create_options.h @@ -0,0 +1,93 @@ +/* Copyright (C) 2010 Monty Program Ab + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +/** + @file + + Engine defined options of tables/fields/keys in CREATE/ALTER TABLE. +*/ + +#ifndef SQL_CREATE_OPTIONS_INCLUDED +#define SQL_CREATE_OPTIONS_INCLUDED + +#include "sql_class.h" +//#include "handler.h" + +class engine_option_value: public Sql_alloc +{ + public: + LEX_STRING name; + LEX_STRING value; + engine_option_value *next; ///< parser puts them in a FIFO linked list + bool parsed; ///< to detect unrecognized options + bool quoted_value; ///< option=VAL vs. option='VAL' + + engine_option_value(LEX_STRING &name_arg, LEX_STRING &value_arg, bool quoted, + engine_option_value **start, engine_option_value **end) : + name(name_arg), value(value_arg), + next(NULL), parsed(false), quoted_value(quoted) + { + link(start, end); + } + engine_option_value(LEX_STRING &name_arg, + engine_option_value **start, engine_option_value **end) : + name(name_arg), value(null_lex_str), + next(NULL), parsed(false), quoted_value(false) + { + link(start, end); + } + engine_option_value(LEX_STRING &name_arg, ulonglong value_arg, + engine_option_value **start, engine_option_value **end, + MEM_ROOT *root) : + name(name_arg), next(NULL), parsed(false), quoted_value(false) + { + if ((value.str= (char *)alloc_root(root, 22))) + { + value.length= longlong10_to_str(value_arg, value.str, 10) - value.str; + link(start, end); + } + } + static uchar *frm_read(const uchar *buff, engine_option_value **start, + engine_option_value **end, MEM_ROOT *root); + void link(engine_option_value **start, engine_option_value **end); + uint frm_length(); + uchar *frm_image(uchar *buff); +}; + +typedef struct st_key KEY; +class Create_field; + +my_bool parse_engine_table_options(THD *thd, handlerton *ht, + TABLE_SHARE *share); +my_bool parse_option_list(THD* thd, void *option_struct, + engine_option_value *option_list, + ha_create_table_option *rules, + my_bool suppress_warning, + MEM_ROOT *root); +my_bool engine_table_options_frm_read(const uchar *buff, + uint length, + TABLE_SHARE *share); +engine_option_value *merge_engine_table_options(engine_option_value *source, + engine_option_value *changes, + MEM_ROOT *root); + +uint engine_table_options_frm_length(engine_option_value *table_option_list, + List &create_fields, + uint keys, KEY *key_info); +uchar *engine_table_options_frm_image(uchar *buff, + engine_option_value *table_option_list, + List &create_fields, + uint keys, KEY *key_info); +#endif diff --git a/database/include/mysql/private/custom_conf.h b/database/include/mysql/private/custom_conf.h new file mode 100644 index 0000000..5847b93 --- /dev/null +++ b/database/include/mysql/private/custom_conf.h @@ -0,0 +1,28 @@ +/* Copyright (c) 2000, 2006 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef __MYSQL_CUSTOM_BUILD_CONFIG__ +#define __MYSQL_CUSTOM_BUILD_CONFIG__ + +#define MYSQL_PORT 5002 +#ifdef __WIN__ +#define MYSQL_NAMEDPIPE "SwSqlServer" +#define MYSQL_SERVICENAME "SwSqlServer" +#define KEY_SERVICE_PARAMETERS +"SYSTEM\\CurrentControlSet\\Services\\SwSqlServer\\Parameters" +#endif + +#endif /* __MYSQL_CUSTOM_BUILD_CONFIG__ */ diff --git a/database/include/mysql/private/datadict.h b/database/include/mysql/private/datadict.h new file mode 100644 index 0000000..2dfec63 --- /dev/null +++ b/database/include/mysql/private/datadict.h @@ -0,0 +1,41 @@ +#ifndef DATADICT_INCLUDED +#define DATADICT_INCLUDED +/* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#include "handler.h" + +/* + Data dictionary API. +*/ + +enum frm_type_enum +{ + FRMTYPE_ERROR= 0, + FRMTYPE_TABLE, + FRMTYPE_VIEW +}; + +frm_type_enum dd_frm_type(THD *thd, char *path, enum legacy_db_type *dbt); + +bool dd_frm_storage_engine(THD *thd, const char *db, const char *table_name, + handlerton **table_type); +bool dd_check_storage_engine_flag(THD *thd, + const char *db, const char *table_name, + uint32 flag, + bool *yes_no); +bool dd_recreate_table(THD *thd, const char *db, const char *table_name); + +#endif // DATADICT_INCLUDED diff --git a/database/include/mysql/private/debug_sync.h b/database/include/mysql/private/debug_sync.h new file mode 100644 index 0000000..0db807f --- /dev/null +++ b/database/include/mysql/private/debug_sync.h @@ -0,0 +1,47 @@ +#ifndef DEBUG_SYNC_INCLUDED +#define DEBUG_SYNC_INCLUDED + +/* Copyright (c) 2009, 2010, Oracle and/or its affiliates. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/** + @file + + Declarations for the Debug Sync Facility. See debug_sync.cc for details. +*/ + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif + +#include + +class THD; + +#if defined(ENABLED_DEBUG_SYNC) + +/* Default WAIT_FOR timeout if command line option is given without argument. */ +#define DEBUG_SYNC_DEFAULT_WAIT_TIMEOUT 300 + +/* Debug Sync prototypes. See debug_sync.cc. */ +extern int debug_sync_init(void); +extern void debug_sync_end(void); +extern void debug_sync_init_thread(THD *thd); +extern void debug_sync_end_thread(THD *thd); +extern bool debug_sync_set_action(THD *thd, const char *action_str, size_t len); + +#endif /* defined(ENABLED_DEBUG_SYNC) */ + +#endif /* DEBUG_SYNC_INCLUDED */ diff --git a/database/include/mysql/private/derror.h b/database/include/mysql/private/derror.h new file mode 100644 index 0000000..e7b913b --- /dev/null +++ b/database/include/mysql/private/derror.h @@ -0,0 +1,25 @@ +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef DERROR_INCLUDED +#define DERROR_INCLUDED + +#include "my_global.h" /* uint */ + +bool init_errmessage(void); +bool read_texts(const char *file_name, const char *language, + const char ***point, uint error_messages); + +#endif /* DERROR_INCLUDED */ diff --git a/database/include/mysql/private/des_key_file.h b/database/include/mysql/private/des_key_file.h new file mode 100644 index 0000000..847cd76 --- /dev/null +++ b/database/include/mysql/private/des_key_file.h @@ -0,0 +1,40 @@ +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef DES_KEY_FILE_INCLUDED +#define DES_KEY_FILE_INCLUDED + +#ifdef HAVE_OPENSSL +#include + +#include "violite.h" /* DES_cblock, DES_key_schedule */ + +struct st_des_keyblock +{ + DES_cblock key1, key2, key3; +}; + +struct st_des_keyschedule +{ + DES_key_schedule ks1, ks2, ks3; +}; + +extern struct st_des_keyschedule des_keyschedule[10]; +extern uint des_default_key; + +bool load_des_key_file(const char *file_name); +#endif /* HAVE_OPENSSL */ + +#endif /* DES_KEY_FILE_INCLUDED */ diff --git a/database/include/mysql/private/discover.h b/database/include/mysql/private/discover.h new file mode 100644 index 0000000..5b903d6 --- /dev/null +++ b/database/include/mysql/private/discover.h @@ -0,0 +1,24 @@ +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef DISCOVER_INCLUDED +#define DISCOVER_INCLUDED + +#include "my_global.h" /* uchar */ + +int readfrm(const char *name, uchar **data, size_t *length); +int writefrm(const char* name, const uchar* data, size_t len); + +#endif /* DISCOVER_INCLUDED */ diff --git a/database/include/mysql/private/embedded_priv.h b/database/include/mysql/private/embedded_priv.h new file mode 100644 index 0000000..77955ea --- /dev/null +++ b/database/include/mysql/private/embedded_priv.h @@ -0,0 +1,41 @@ +/* Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* Prototypes for the embedded version of MySQL */ + +#include + +C_MODE_START +void lib_connection_phase(NET *net, int phase); +void init_embedded_mysql(MYSQL *mysql, int client_flag); +void *create_embedded_thd(int client_flag); +int check_embedded_connection(MYSQL *mysql, const char *db); +void free_old_query(MYSQL *mysql); +extern MYSQL_METHODS embedded_methods; + +/* This one is used by embedded library to gather returning data */ +typedef struct embedded_query_result +{ + MYSQL_ROWS **prev_ptr; + unsigned int warning_count, server_status; + struct st_mysql_data *next; + my_ulonglong affected_rows, insert_id; + char info[MYSQL_ERRMSG_SIZE]; + MYSQL_FIELD *fields_list; + unsigned int last_errno; + char sqlstate[SQLSTATE_LENGTH+1]; +} EQR; + +C_MODE_END diff --git a/database/include/mysql/private/event_data_objects.h b/database/include/mysql/private/event_data_objects.h new file mode 100644 index 0000000..26c00e8 --- /dev/null +++ b/database/include/mysql/private/event_data_objects.h @@ -0,0 +1,195 @@ +#ifndef _EVENT_DATA_OBJECTS_H_ +#define _EVENT_DATA_OBJECTS_H_ +/* Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/** + @addtogroup Event_Scheduler + @{ + + @file event_data_objects.h +*/ + +#include "event_parse_data.h" +#include "thr_lock.h" /* thr_lock_type */ + +class Field; +class THD; +class Time_zone; +struct TABLE; + +class Event_queue_element_for_exec +{ +public: + Event_queue_element_for_exec(){}; + ~Event_queue_element_for_exec(); + + bool + init(LEX_STRING dbname, LEX_STRING name); + + LEX_STRING dbname; + LEX_STRING name; + bool dropped; + THD *thd; + +private: + /* Prevent use of these */ + Event_queue_element_for_exec(const Event_queue_element_for_exec &); + void operator=(Event_queue_element_for_exec &); +}; + + +class Event_basic +{ +protected: + MEM_ROOT mem_root; + +public: + + LEX_STRING dbname; + LEX_STRING name; + LEX_STRING definer;// combination of user and host + + Time_zone *time_zone; + + Event_basic(); + virtual ~Event_basic(); + + virtual bool + load_from_row(THD *thd, TABLE *table) = 0; + +protected: + bool + load_string_fields(Field **fields, ...); + + bool + load_time_zone(THD *thd, const LEX_STRING tz_name); +}; + + + +class Event_queue_element : public Event_basic +{ +public: + int on_completion; + int status; + longlong originator; + + my_time_t last_executed; + my_time_t execute_at; + my_time_t starts; + my_time_t ends; + bool starts_null; + bool ends_null; + bool execute_at_null; + + longlong expression; + interval_type interval; + + bool dropped; + + uint execution_count; + + Event_queue_element(); + virtual ~Event_queue_element(); + + virtual bool + load_from_row(THD *thd, TABLE *table); + + bool + compute_next_execution_time(); + + void + mark_last_executed(THD *thd); +}; + + +class Event_timed : public Event_queue_element +{ + Event_timed(const Event_timed &); /* Prevent use of these */ + void operator=(Event_timed &); + +public: + LEX_STRING body; + + LEX_STRING definer_user; + LEX_STRING definer_host; + + LEX_STRING comment; + + ulonglong created; + ulonglong modified; + + ulong sql_mode; + + class Stored_program_creation_ctx *creation_ctx; + LEX_STRING body_utf8; + + Event_timed(); + virtual ~Event_timed(); + + void + init(); + + virtual bool + load_from_row(THD *thd, TABLE *table); + + int + get_create_event(THD *thd, String *buf); +}; + + +class Event_job_data : public Event_basic +{ +public: + LEX_STRING body; + LEX_STRING definer_user; + LEX_STRING definer_host; + + ulong sql_mode; + + class Stored_program_creation_ctx *creation_ctx; + + Event_job_data(); + + virtual bool + load_from_row(THD *thd, TABLE *table); + + bool + execute(THD *thd, bool drop); +private: + bool + construct_sp_sql(THD *thd, String *sp_sql); + bool + construct_drop_event_sql(THD *thd, String *sp_sql); + + Event_job_data(const Event_job_data &); /* Prevent use of these */ + void operator=(Event_job_data &); +}; + + +/* Compares only the schema part of the identifier */ +bool +event_basic_db_equal(LEX_STRING db, Event_basic *et); + +/* Compares the whole identifier*/ +bool +event_basic_identifier_equal(LEX_STRING db, LEX_STRING name, Event_basic *b); + +/** + @} (End of group Event_Scheduler) +*/ + +#endif /* _EVENT_DATA_OBJECTS_H_ */ diff --git a/database/include/mysql/private/event_db_repository.h b/database/include/mysql/private/event_db_repository.h new file mode 100644 index 0000000..ab53b41 --- /dev/null +++ b/database/include/mysql/private/event_db_repository.h @@ -0,0 +1,127 @@ +#ifndef _EVENT_DB_REPOSITORY_H_ +#define _EVENT_DB_REPOSITORY_H_ +/* Copyright (c) 2006, 2011, Oracle and/or its affiliates. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA +*/ + +/** + @addtogroup Event_Scheduler + @{ + + @file event_db_repository.h + + Data Dictionary related operations of Event Scheduler. + + This is a private header file of Events module. Please do not include it + directly. All public declarations of Events module should be stored in + events.h and event_data_objects.h. +*/ + +enum enum_events_table_field +{ + ET_FIELD_DB = 0, + ET_FIELD_NAME, + ET_FIELD_BODY, + ET_FIELD_DEFINER, + ET_FIELD_EXECUTE_AT, + ET_FIELD_INTERVAL_EXPR, + ET_FIELD_TRANSIENT_INTERVAL, + ET_FIELD_CREATED, + ET_FIELD_MODIFIED, + ET_FIELD_LAST_EXECUTED, + ET_FIELD_STARTS, + ET_FIELD_ENDS, + ET_FIELD_STATUS, + ET_FIELD_ON_COMPLETION, + ET_FIELD_SQL_MODE, + ET_FIELD_COMMENT, + ET_FIELD_ORIGINATOR, + ET_FIELD_TIME_ZONE, + ET_FIELD_CHARACTER_SET_CLIENT, + ET_FIELD_COLLATION_CONNECTION, + ET_FIELD_DB_COLLATION, + ET_FIELD_BODY_UTF8, + ET_FIELD_COUNT /* a cool trick to count the number of fields :) */ +}; + + +int +events_table_index_read_for_db(THD *thd, TABLE *schema_table, + TABLE *event_table); + +int +events_table_scan_all(THD *thd, TABLE *schema_table, TABLE *event_table); + + +class Event_basic; +class Event_parse_data; + +class Event_db_repository +{ +public: + Event_db_repository(){} + + bool + create_event(THD *thd, Event_parse_data *parse_data, bool create_if_not, + bool *event_already_exists); + bool + update_event(THD *thd, Event_parse_data *parse_data, LEX_STRING *new_dbname, + LEX_STRING *new_name); + + bool + drop_event(THD *thd, LEX_STRING db, LEX_STRING name, bool drop_if_exists); + + void + drop_schema_events(THD *thd, LEX_STRING schema); + + bool + find_named_event(LEX_STRING db, LEX_STRING name, TABLE *table); + + bool + load_named_event(THD *thd, LEX_STRING dbname, LEX_STRING name, Event_basic *et); + + static bool + open_event_table(THD *thd, enum thr_lock_type lock_type, TABLE **table); + + bool + fill_schema_events(THD *thd, TABLE_LIST *tables, const char *db); + + bool + update_timing_fields_for_event(THD *thd, + LEX_STRING event_db_name, + LEX_STRING event_name, + my_time_t last_executed, + ulonglong status); +public: + static bool + check_system_tables(THD *thd); +private: + bool + index_read_for_db_for_i_s(THD *thd, TABLE *schema_table, TABLE *event_table, + const char *db); + + bool + table_scan_all_for_i_s(THD *thd, TABLE *schema_table, TABLE *event_table); + +private: + /* Prevent use of these */ + Event_db_repository(const Event_db_repository &); + void operator=(Event_db_repository &); +}; + +/** + @} (End of group Event_Scheduler) +*/ +#endif /* _EVENT_DB_REPOSITORY_H_ */ diff --git a/database/include/mysql/private/event_parse_data.h b/database/include/mysql/private/event_parse_data.h new file mode 100644 index 0000000..8242483 --- /dev/null +++ b/database/include/mysql/private/event_parse_data.h @@ -0,0 +1,132 @@ +/* + Copyright (c) 2008, 2011, Oracle and/or its affiliates. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef _EVENT_PARSE_DATA_H_ +#define _EVENT_PARSE_DATA_H_ + +#include "sql_list.h" /* Sql_alloc */ + +class Item; +class THD; +class sp_name; + +#define EVEX_GET_FIELD_FAILED -2 +#define EVEX_BAD_PARAMS -5 +#define EVEX_MICROSECOND_UNSUP -6 +#define EVEX_MAX_INTERVAL_VALUE 1000000000L + +class Event_parse_data : public Sql_alloc +{ +public: + /* + ENABLED = feature can function normally (is turned on) + SLAVESIDE_DISABLED = feature is turned off on slave + DISABLED = feature is turned off + */ + enum enum_status + { + ENABLED = 1, + DISABLED, + SLAVESIDE_DISABLED + }; + + enum enum_on_completion + { + /* + On CREATE EVENT, DROP is the DEFAULT as per the docs. + On ALTER EVENT, "no change" is the DEFAULT. + */ + ON_COMPLETION_DEFAULT = 0, + ON_COMPLETION_DROP, + ON_COMPLETION_PRESERVE + }; + + int on_completion; + int status; + bool status_changed; + longlong originator; + /* + do_not_create will be set if STARTS time is in the past and + on_completion == ON_COMPLETION_DROP. + */ + bool do_not_create; + + bool body_changed; + + LEX_STRING dbname; + LEX_STRING name; + LEX_STRING definer;// combination of user and host + LEX_STRING comment; + + Item* item_starts; + Item* item_ends; + Item* item_execute_at; + + my_time_t starts; + my_time_t ends; + my_time_t execute_at; + bool starts_null; + bool ends_null; + bool execute_at_null; + + sp_name *identifier; + Item* item_expression; + longlong expression; + interval_type interval; + + static Event_parse_data * + new_instance(THD *thd); + + bool + check_parse_data(THD *thd); + + bool + check_dates(THD *thd, int previous_on_completion); + +private: + + void + init_definer(THD *thd); + + void + init_name(THD *thd, sp_name *spn); + + int + init_execute_at(THD *thd); + + int + init_interval(THD *thd); + + int + init_starts(THD *thd); + + int + init_ends(THD *thd); + + Event_parse_data(); + ~Event_parse_data(); + + void + report_bad_value(const char *item_name, Item *bad_item); + + void + check_if_in_the_past(THD *thd, my_time_t ltime_utc); + + Event_parse_data(const Event_parse_data &); /* Prevent use of these */ + void check_originator_id(THD *thd); + void operator=(Event_parse_data &); +}; +#endif diff --git a/database/include/mysql/private/event_queue.h b/database/include/mysql/private/event_queue.h new file mode 100644 index 0000000..e98dcda --- /dev/null +++ b/database/include/mysql/private/event_queue.h @@ -0,0 +1,135 @@ +#ifndef _EVENT_QUEUE_H_ +#define _EVENT_QUEUE_H_ +/* Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/** + + @addtogroup Event_Scheduler + @{ + + @file event_queue.h + + Queue of events awaiting execution. +*/ + +#ifdef HAVE_PSI_INTERFACE +extern PSI_mutex_key key_LOCK_event_queue; +extern PSI_cond_key key_COND_queue_state; +#endif /* HAVE_PSI_INTERFACE */ + +#include "queues.h" // QUEUE +#include "sql_string.h" /* LEX_STRING */ +#include "my_time.h" /* my_time_t, interval_type */ + +class Event_basic; +class Event_queue_element; +class Event_queue_element_for_exec; + +class THD; + +/** + Queue of active events awaiting execution. +*/ + +class Event_queue +{ +public: + Event_queue(); + ~Event_queue(); + + bool + init_queue(THD *thd); + + /* Methods for queue management follow */ + + bool + create_event(THD *thd, Event_queue_element *new_element, + bool *created); + + void + update_event(THD *thd, LEX_STRING dbname, LEX_STRING name, + Event_queue_element *new_element); + + void + drop_event(THD *thd, LEX_STRING dbname, LEX_STRING name); + + void + drop_schema_events(THD *thd, LEX_STRING schema); + + void + recalculate_activation_times(THD *thd); + + bool + get_top_for_execution_if_time(THD *thd, + Event_queue_element_for_exec **event_name); + + + void + dump_internal_status(); + +private: + void + empty_queue(); + + void + deinit_queue(); + /* helper functions for working with mutexes & conditionals */ + void + lock_data(const char *func, uint line); + + void + unlock_data(const char *func, uint line); + + void + cond_wait(THD *thd, struct timespec *abstime, const char* msg, + const char *func, uint line); + + void + find_n_remove_event(LEX_STRING db, LEX_STRING name); + + + void + drop_matching_events(THD *thd, LEX_STRING pattern, + bool (*)(LEX_STRING, Event_basic *)); + + + void + dbug_dump_queue(my_time_t now); + + /* LOCK_event_queue is the mutex which protects the access to the queue. */ + mysql_mutex_t LOCK_event_queue; + mysql_cond_t COND_queue_state; + + /* The sorted queue with the Event_queue_element objects */ + QUEUE queue; + + my_time_t next_activation_at; + + uint mutex_last_locked_at_line; + uint mutex_last_unlocked_at_line; + uint mutex_last_attempted_lock_at_line; + const char* mutex_last_locked_in_func; + const char* mutex_last_unlocked_in_func; + const char* mutex_last_attempted_lock_in_func; + bool mutex_queue_data_locked; + bool mutex_queue_data_attempting_lock; + bool waiting_on_cond; +}; +/** + @} (End of group Event_Scheduler) +*/ + +#endif /* _EVENT_QUEUE_H_ */ diff --git a/database/include/mysql/private/event_scheduler.h b/database/include/mysql/private/event_scheduler.h new file mode 100644 index 0000000..8ecb34a --- /dev/null +++ b/database/include/mysql/private/event_scheduler.h @@ -0,0 +1,157 @@ +#ifndef _EVENT_SCHEDULER_H_ +#define _EVENT_SCHEDULER_H_ +/* Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/** + @addtogroup Event_Scheduler + @{ +*/ +/** + @file + + Declarations of the scheduler thread class + and related functionality. + + This file is internal to Event_Scheduler module. Please do not + include it directly. All public declarations of Event_Scheduler + module are in events.h and event_data_objects.h. +*/ + + +class Event_queue; +class Event_job_data; +class Event_db_repository; +class Event_queue_element_for_exec; +class Events; +class THD; + +void +pre_init_event_thread(THD* thd); + +bool +post_init_event_thread(THD* thd); + +void +deinit_event_thread(THD *thd); + + +class Event_worker_thread +{ +public: + static void + init(Event_db_repository *db_repository_arg) + { + db_repository= db_repository_arg; + } + + void + run(THD *thd, Event_queue_element_for_exec *event); + +private: + void + print_warnings(THD *thd, Event_job_data *et); + + static Event_db_repository *db_repository; +}; + + +class Event_scheduler +{ +public: + Event_scheduler(Event_queue *event_queue_arg); + ~Event_scheduler(); + + + /* State changing methods follow */ + + bool + start(int *err_no); + + bool + stop(); + + /* + Need to be public because has to be called from the function + passed to pthread_create. + */ + bool + run(THD *thd); + + + /* Information retrieving methods follow */ + bool + is_running(); + + void + dump_internal_status(); + +private: + uint + workers_count(); + + /* helper functions */ + bool + execute_top(Event_queue_element_for_exec *event_name); + + /* helper functions for working with mutexes & conditionals */ + void + lock_data(const char *func, uint line); + + void + unlock_data(const char *func, uint line); + + void + cond_wait(THD *thd, struct timespec *abstime, const char* msg, + const char *func, uint line); + + mysql_mutex_t LOCK_scheduler_state; + + enum enum_state + { + INITIALIZED = 0, + RUNNING, + STOPPING + }; + + /* This is the current status of the life-cycle of the scheduler. */ + enum enum_state state; + + THD *scheduler_thd; + + mysql_cond_t COND_state; + + Event_queue *queue; + + uint mutex_last_locked_at_line; + uint mutex_last_unlocked_at_line; + const char* mutex_last_locked_in_func; + const char* mutex_last_unlocked_in_func; + bool mutex_scheduler_data_locked; + bool waiting_on_cond; + + ulonglong started_events; + +private: + /* Prevent use of these */ + Event_scheduler(const Event_scheduler &); + void operator=(Event_scheduler &); +}; + +/** + @} (End of group Event_Scheduler) +*/ + +#endif /* _EVENT_SCHEDULER_H_ */ diff --git a/database/include/mysql/private/events.h b/database/include/mysql/private/events.h new file mode 100644 index 0000000..c5c5c80 --- /dev/null +++ b/database/include/mysql/private/events.h @@ -0,0 +1,150 @@ +#ifndef _EVENT_H_ +#define _EVENT_H_ +/* Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/** + @defgroup Event_Scheduler Event Scheduler + @ingroup Runtime_Environment + @{ + + @file events.h + + A public interface of Events_Scheduler module. +*/ + +#ifdef HAVE_PSI_INTERFACE +extern PSI_mutex_key key_event_scheduler_LOCK_scheduler_state; +extern PSI_cond_key key_event_scheduler_COND_state; +extern PSI_thread_key key_thread_event_scheduler, key_thread_event_worker; +#endif /* HAVE_PSI_INTERFACE */ + +#include "sql_string.h" /* LEX_STRING */ +#include "my_time.h" /* interval_type */ + +class Event_db_repository; +class Event_parse_data; +class Event_queue; +class Event_scheduler; +struct TABLE_LIST; +class THD; +typedef class Item COND; + +int +sortcmp_lex_string(LEX_STRING s, LEX_STRING t, CHARSET_INFO *cs); + +/** + @brief A facade to the functionality of the Event Scheduler. + + Every public operation against the scheduler has to be executed via the + interface provided by a static method of this class. No instance of this + class is ever created and it has no non-static data members. + + The life cycle of the Events module is the following: + + At server start up: + init_mutexes() -> init() + When the server is running: + create_event(), drop_event(), start_or_stop_event_scheduler(), etc + At shutdown: + deinit(), destroy_mutexes(). + + The peculiar initialization and shutdown cycle is an adaptation to the + outside server startup/shutdown framework and mimics the rest of MySQL + subsystems (ACL, time zone tables, etc). +*/ + +class Events +{ +public: + /* + the following block is to support --event-scheduler command line option + and the @@global.event_scheduler SQL variable. + See sys_var.cc + */ + enum enum_opt_event_scheduler { EVENTS_OFF, EVENTS_ON, EVENTS_DISABLED }; + /* Protected using LOCK_global_system_variables only. */ + static ulong opt_event_scheduler; + static bool check_if_system_tables_error(); + static bool start(int *err_no); + static bool stop(); + +public: + /* A hack needed for Event_queue_element */ + static Event_db_repository * + get_db_repository() { return db_repository; } + + static bool + init(bool opt_noacl); + + static void + deinit(); + + static void + init_mutexes(); + + static void + destroy_mutexes(); + + static bool + create_event(THD *thd, Event_parse_data *parse_data, bool if_exists); + + static bool + update_event(THD *thd, Event_parse_data *parse_data, + LEX_STRING *new_dbname, LEX_STRING *new_name); + + static bool + drop_event(THD *thd, LEX_STRING dbname, LEX_STRING name, bool if_exists); + + static void + drop_schema_events(THD *thd, char *db); + + static bool + show_create_event(THD *thd, LEX_STRING dbname, LEX_STRING name); + + /* Needed for both SHOW CREATE EVENT and INFORMATION_SCHEMA */ + static int + reconstruct_interval_expression(String *buf, interval_type interval, + longlong expression); + + static int + fill_schema_events(THD *thd, TABLE_LIST *tables, COND * /* cond */); + + static void + dump_internal_status(); + +private: + + static bool + load_events_from_db(THD *thd); + +private: + static Event_queue *event_queue; + static Event_scheduler *scheduler; + static Event_db_repository *db_repository; + /* Set to TRUE if an error at start up */ + static bool check_system_tables_error; + +private: + /* Prevent use of these */ + Events(const Events &); + void operator=(Events &); +}; + +/** + @} (end of group Event Scheduler) +*/ + +#endif /* _EVENT_H_ */ diff --git a/database/include/mysql/private/field.h b/database/include/mysql/private/field.h new file mode 100644 index 0000000..e77e173 --- /dev/null +++ b/database/include/mysql/private/field.h @@ -0,0 +1,2452 @@ +#ifndef FIELD_INCLUDED +#define FIELD_INCLUDED +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. + Copyright (c) 2008, 2015, MariaDB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* + Because of the function new_field() all field classes that have static + variables must declare the size_of() member function. +*/ + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif + +#include "mysqld.h" /* system_charset_info */ +#include "table.h" /* TABLE */ +#include "sql_string.h" /* String */ +#include "my_decimal.h" /* my_decimal */ +#include "sql_error.h" /* MYSQL_ERROR */ + +class Send_field; +class Protocol; +class Create_field; +class Relay_log_info; +class Field; + +enum enum_check_fields +{ + CHECK_FIELD_IGNORE, + CHECK_FIELD_WARN, + CHECK_FIELD_ERROR_FOR_NULL +}; + + +enum Derivation +{ + DERIVATION_IGNORABLE= 6, + DERIVATION_NUMERIC= 5, + DERIVATION_COERCIBLE= 4, + DERIVATION_SYSCONST= 3, + DERIVATION_IMPLICIT= 2, + DERIVATION_NONE= 1, + DERIVATION_EXPLICIT= 0 +}; + +#define STORAGE_TYPE_MASK 7 +#define COLUMN_FORMAT_MASK 7 +#define COLUMN_FORMAT_SHIFT 3 + +#define my_charset_numeric my_charset_latin1 +#define MY_REPERTOIRE_NUMERIC MY_REPERTOIRE_ASCII + +/* The length of the header part for each virtual column in the .frm file */ +#define FRM_VCOL_HEADER_SIZE(b) (3 + test(b)) + +struct ha_field_option_struct; + +struct st_cache_field; +int field_conv(Field *to,Field *from); +int truncate_double(double *nr, uint field_length, uint dec, + bool unsigned_flag, double max_value); +longlong double_to_longlong(double nr, bool unsigned_flag, bool *error); + +inline uint get_enum_pack_length(int elements) +{ + return elements < 256 ? 1 : 2; +} + +inline uint get_set_pack_length(int elements) +{ + uint len= (elements + 7) / 8; + return len > 4 ? 8 : len; +} + + +static inline enum enum_mysql_timestamp_type +mysql_type_to_time_type(enum enum_field_types mysql_type) +{ + switch(mysql_type) { + case MYSQL_TYPE_TIME: return MYSQL_TIMESTAMP_TIME; + case MYSQL_TYPE_TIMESTAMP: + case MYSQL_TYPE_DATETIME: return MYSQL_TIMESTAMP_DATETIME; + case MYSQL_TYPE_NEWDATE: + case MYSQL_TYPE_DATE: return MYSQL_TIMESTAMP_DATE; + default: return MYSQL_TIMESTAMP_ERROR; + } +} + + +/** + Tests if field type is temporal, i.e. represents + DATE, TIME, DATETIME or TIMESTAMP types in SQL. + + @param type Field type, as returned by field->type(). + @retval true If field type is temporal + @retval false If field type is not temporal +*/ +inline bool is_temporal_type(enum_field_types type) +{ + return mysql_type_to_time_type(type) != MYSQL_TIMESTAMP_ERROR; +} + + +/** + Tests if field type is temporal and has time part, + i.e. represents TIME, DATETIME or TIMESTAMP types in SQL. + + @param type Field type, as returned by field->type(). + @retval true If field type is temporal type with time part. + @retval false If field type is not temporal type with time part. +*/ +inline bool is_temporal_type_with_time(enum_field_types type) +{ + switch (type) + { + case MYSQL_TYPE_TIME: + case MYSQL_TYPE_DATETIME: + case MYSQL_TYPE_TIMESTAMP: + return true; + default: + return false; + } +} + + +/* + Virtual_column_info is the class to contain additional + characteristics that is specific for a virtual/computed + field such as: + - the defining expression that is evaluated to compute the value + of the field + - whether the field is to be stored in the database + - whether the field is used in a partitioning expression +*/ + +class Virtual_column_info: public Sql_alloc +{ +private: + /* + The following data is only updated by the parser and read + when a Create_field object is created/initialized. + */ + enum_field_types field_type; /* Real field type*/ + /* Flag indicating that the field is physically stored in the database */ + bool stored_in_db; + /* Flag indicating that the field used in a partitioning expression */ + bool in_partitioning_expr; + +public: + /* The expression to compute the value of the virtual column */ + Item *expr_item; + /* Text representation of the defining expression */ + LEX_STRING expr_str; + + Virtual_column_info() + : field_type((enum enum_field_types)MYSQL_TYPE_VIRTUAL), + stored_in_db(FALSE), in_partitioning_expr(FALSE), + expr_item(NULL) + { + expr_str.str= NULL; + expr_str.length= 0; + }; + ~Virtual_column_info() {} + enum_field_types get_real_type() + { + return field_type; + } + void set_field_type(enum_field_types fld_type) + { + /* Calling this function can only be done once. */ + field_type= fld_type; + } + bool is_stored() + { + return stored_in_db; + } + void set_stored_in_db_flag(bool stored) + { + stored_in_db= stored; + } + bool is_in_partitioning_expr() + { + return in_partitioning_expr; + } + void mark_as_in_partitioning_expr() + { + in_partitioning_expr= TRUE; + } +}; + +class Field +{ + Field(const Item &); /* Prevent use of these */ + void operator=(Field &); +public: + static void *operator new(size_t size) throw () + { return sql_alloc(size); } + static void operator delete(void *ptr_arg, size_t size) { TRASH_FREE(ptr_arg, size); } + + uchar *ptr; // Position to field in record + /** + Byte where the @c NULL bit is stored inside a record. If this Field is a + @c NOT @c NULL field, this member is @c NULL. + */ + uchar *null_ptr; + /* + Note that you can use table->in_use as replacement for current_thd member + only inside of val_*() and store() members (e.g. you can't use it in cons) + */ + TABLE *table; // Pointer for table + TABLE *orig_table; // Pointer to original table + const char * const *table_name; + const char *field_name; + /** reference to the list of options or NULL */ + engine_option_value *option_list; + ha_field_option_struct *option_struct; /* structure with parsed options */ + LEX_STRING comment; + /* Field is part of the following keys */ + key_map key_start, part_of_key, part_of_key_not_clustered; + key_map part_of_sortkey; + /* + We use three additional unireg types for TIMESTAMP to overcome limitation + of current binary format of .frm file. We'd like to be able to support + NOW() as default and on update value for such fields but unable to hold + this info anywhere except unireg_check field. This issue will be resolved + in more clean way with transition to new text based .frm format. + See also comment for Field_timestamp::Field_timestamp(). + */ + enum utype { NONE,DATE,SHIELD,NOEMPTY,CASEUP,PNR,BGNR,PGNR,YES,NO,REL, + CHECK,EMPTY,UNKNOWN_FIELD,CASEDN,NEXT_NUMBER,INTERVAL_FIELD, + BIT_FIELD, TIMESTAMP_OLD_FIELD, CAPITALIZE, BLOB_FIELD, + TIMESTAMP_DN_FIELD, TIMESTAMP_UN_FIELD, TIMESTAMP_DNUN_FIELD}; + enum geometry_type + { + GEOM_GEOMETRY = 0, GEOM_POINT = 1, GEOM_LINESTRING = 2, GEOM_POLYGON = 3, + GEOM_MULTIPOINT = 4, GEOM_MULTILINESTRING = 5, GEOM_MULTIPOLYGON = 6, + GEOM_GEOMETRYCOLLECTION = 7 + }; + enum imagetype { itRAW, itMBR}; + + utype unireg_check; + uint32 field_length; // Length of field + uint32 flags; + uint16 field_index; // field number in fields array + uchar null_bit; // Bit used to test null bit + /** + If true, this field was created in create_tmp_field_from_item from a NULL + value. This means that the type of the field is just a guess, and the type + may be freely coerced to another type. + + @see create_tmp_field_from_item + @see Item_type_holder::get_real_type + + */ + bool is_created_from_null_item; + + /* + This is additional data provided for any computed(virtual) field. + In particular it includes a pointer to the item by which this field + can be computed from other fields. + */ + Virtual_column_info *vcol_info; + /* + Flag indicating that the field is physically stored in tables + rather than just computed from other fields. + As of now, FALSE can be set only for computed virtual columns. + */ + bool stored_in_db; + + Field(uchar *ptr_arg,uint32 length_arg,uchar *null_ptr_arg, + uchar null_bit_arg, utype unireg_check_arg, + const char *field_name_arg); + virtual ~Field() {} + /* Store functions returns 1 on overflow and -1 on fatal error */ + virtual int store(const char *to, uint length,CHARSET_INFO *cs)=0; + virtual int store(double nr)=0; + virtual int store(longlong nr, bool unsigned_val)=0; + virtual int store_decimal(const my_decimal *d)=0; + virtual int store_time_dec(MYSQL_TIME *ltime, uint dec); + int store_time(MYSQL_TIME *ltime) + { return store_time_dec(ltime, TIME_SECOND_PART_DIGITS); } + int store(const char *to, uint length, CHARSET_INFO *cs, + enum_check_fields check_level); + virtual double val_real(void)=0; + virtual longlong val_int(void)=0; + virtual my_decimal *val_decimal(my_decimal *); + inline String *val_str(String *str) { return val_str(str, str); } + /* + val_str(buf1, buf2) gets two buffers and should use them as follows: + if it needs a temp buffer to convert result to string - use buf1 + example Field_tiny::val_str() + if the value exists as a string already - use buf2 + example Field_string::val_str() + consequently, buf2 may be created as 'String buf;' - no memory + will be allocated for it. buf1 will be allocated to hold a + value if it's too small. Using allocated buffer for buf2 may result in + an unnecessary free (and later, may be an alloc). + This trickery is used to decrease a number of malloc calls. + */ + virtual String *val_str(String*,String *)=0; + String *val_int_as_str(String *val_buffer, bool unsigned_flag); + /* + str_needs_quotes() returns TRUE if the value returned by val_str() needs + to be quoted when used in constructing an SQL query. + */ + virtual bool str_needs_quotes() { return FALSE; } + virtual Item_result result_type () const=0; + virtual Item_result cmp_type () const { return result_type(); } + static bool type_can_have_key_part(enum_field_types); + static enum_field_types field_type_merge(enum_field_types, enum_field_types); + static Item_result result_merge_type(enum_field_types); + virtual bool eq(Field *field) + { + return (ptr == field->ptr && null_ptr == field->null_ptr && + null_bit == field->null_bit && field->type() == type()); + } + virtual bool eq_def(Field *field); + + /* + pack_length() returns size (in bytes) used to store field data in memory + (i.e. it returns the maximum size of the field in a row of the table, + which is located in RAM). + */ + virtual uint32 pack_length() const { return (uint32) field_length; } + + /* + pack_length_in_rec() returns size (in bytes) used to store field data on + storage (i.e. it returns the maximal size of the field in a row of the + table, which is located on disk). + */ + virtual uint32 pack_length_in_rec() const { return pack_length(); } + virtual bool compatible_field_size(uint metadata, Relay_log_info *rli, + uint16 mflags, int *order); + virtual uint pack_length_from_metadata(uint field_metadata) + { + DBUG_ENTER("Field::pack_length_from_metadata"); + DBUG_RETURN(field_metadata); + } + virtual uint row_pack_length() const { return 0; } + virtual int save_field_metadata(uchar *first_byte) + { return do_save_field_metadata(first_byte); } + + /* + data_length() return the "real size" of the data in memory. + */ + virtual uint32 data_length() { return pack_length(); } + virtual uint32 sort_length() const { return pack_length(); } + + /** + Get the maximum size of the data in packed format. + + @return Maximum data length of the field when packed using the + Field::pack() function. + */ + virtual uint32 max_data_length() const { + return pack_length(); + }; + + virtual int reset(void) { bzero(ptr,pack_length()); return 0; } + virtual void reset_fields() {} + virtual void set_default() + { + my_ptrdiff_t l_offset= (my_ptrdiff_t) (table->s->default_values - + table->record[0]); + memcpy(ptr, ptr + l_offset, pack_length()); + if (null_ptr) + *null_ptr= ((*null_ptr & (uchar) ~null_bit) | + (null_ptr[l_offset] & null_bit)); + } + virtual bool binary() const { return 1; } + virtual bool zero_pack() const { return 1; } + virtual enum ha_base_keytype key_type() const { return HA_KEYTYPE_BINARY; } + virtual uint32 key_length() const { return pack_length(); } + virtual enum_field_types type() const =0; + virtual enum_field_types real_type() const { return type(); } + inline int cmp(const uchar *str) { return cmp(ptr,str); } + virtual int cmp_max(const uchar *a, const uchar *b, uint max_len) + { return cmp(a, b); } + virtual int cmp(const uchar *,const uchar *)=0; + virtual int cmp_binary(const uchar *a,const uchar *b, uint32 max_length=~0L) + { return memcmp(a,b,pack_length()); } + virtual int cmp_offset(uint row_offset) + { return cmp(ptr,ptr+row_offset); } + virtual int cmp_binary_offset(uint row_offset) + { return cmp_binary(ptr, ptr+row_offset); }; + virtual int key_cmp(const uchar *a,const uchar *b) + { return cmp(a, b); } + virtual int key_cmp(const uchar *str, uint length) + { return cmp(ptr,str); } + virtual uint decimals() const { return 0; } + /* + Caller beware: sql_type can change str.Ptr, so check + ptr() to see if it changed if you are using your own buffer + in str and restore it with set() if needed + */ + virtual void sql_type(String &str) const =0; + virtual uint size_of() const =0; // For new field + inline bool is_null(my_ptrdiff_t row_offset= 0) + { return null_ptr ? (null_ptr[row_offset] & null_bit ? 1 : 0) : table->null_row; } + inline bool is_real_null(my_ptrdiff_t row_offset= 0) + { return null_ptr ? (null_ptr[row_offset] & null_bit ? 1 : 0) : 0; } + inline bool is_null_in_record(const uchar *record) + { + if (!null_ptr) + return 0; + return test(record[(uint) (null_ptr -table->record[0])] & + null_bit); + } + inline bool is_null_in_record_with_offset(my_ptrdiff_t col_offset) + { + if (!null_ptr) + return 0; + return test(null_ptr[col_offset] & null_bit); + } + inline void set_null(my_ptrdiff_t row_offset= 0) + { if (null_ptr) null_ptr[row_offset]|= null_bit; } + inline void set_notnull(my_ptrdiff_t row_offset= 0) + { if (null_ptr) null_ptr[row_offset]&= (uchar) ~null_bit; } + inline bool maybe_null(void) { return null_ptr != 0 || table->maybe_null; } + /** + Signals that this field is NULL-able. + */ + inline bool real_maybe_null(void) { return null_ptr != 0; } + + enum { + LAST_NULL_BYTE_UNDEF= 0 + }; + + /* + Find the position of the last null byte for the field. + + SYNOPSIS + last_null_byte() + + DESCRIPTION + Return a pointer to the last byte of the null bytes where the + field conceptually is placed. + + RETURN VALUE + The position of the last null byte relative to the beginning of + the record. If the field does not use any bits of the null + bytes, the value 0 (LAST_NULL_BYTE_UNDEF) is returned. + */ + size_t last_null_byte() const { + size_t bytes= do_last_null_byte(); + DBUG_PRINT("debug", ("last_null_byte() ==> %ld", (long) bytes)); + DBUG_ASSERT(bytes <= table->s->null_bytes); + return bytes; + } + + void make_sort_key(uchar *buff, uint length); + virtual void make_field(Send_field *); + virtual void sort_string(uchar *buff,uint length)=0; + virtual bool optimize_range(uint idx, uint part); + virtual void free() {} + virtual Field *new_field(MEM_ROOT *root, TABLE *new_table, + bool keep_type); + virtual Field *new_key_field(MEM_ROOT *root, TABLE *new_table, + uchar *new_ptr, uchar *new_null_ptr, + uint new_null_bit); + Field *clone(MEM_ROOT *mem_root, TABLE *new_table); + inline void move_field(uchar *ptr_arg,uchar *null_ptr_arg,uchar null_bit_arg) + { + ptr=ptr_arg; null_ptr=null_ptr_arg; null_bit=null_bit_arg; + } + inline void move_field(uchar *ptr_arg) { ptr=ptr_arg; } + virtual void move_field_offset(my_ptrdiff_t ptr_diff) + { + ptr=ADD_TO_PTR(ptr,ptr_diff, uchar*); + if (null_ptr) + null_ptr=ADD_TO_PTR(null_ptr,ptr_diff,uchar*); + } + virtual void get_image(uchar *buff, uint length, CHARSET_INFO *cs) + { memcpy(buff,ptr,length); } + virtual void set_image(const uchar *buff,uint length, CHARSET_INFO *cs) + { memcpy(ptr,buff,length); } + + + /* + Copy a field part into an output buffer. + + SYNOPSIS + Field::get_key_image() + buff [out] output buffer + length output buffer size + type itMBR for geometry blobs, otherwise itRAW + + DESCRIPTION + This function makes a copy of field part of size equal to or + less than "length" parameter value. + For fields of string types (CHAR, VARCHAR, TEXT) the rest of buffer + is padded by zero byte. + + NOTES + For variable length character fields (i.e. UTF-8) the "length" + parameter means a number of output buffer bytes as if all field + characters have maximal possible size (mbmaxlen). In the other words, + "length" parameter is a number of characters multiplied by + field_charset->mbmaxlen. + + RETURN + Number of copied bytes (excluding padded zero bytes -- see above). + */ + + virtual uint get_key_image(uchar *buff, uint length, imagetype type_arg) + { + get_image(buff, length, &my_charset_bin); + return length; + } + virtual void set_key_image(const uchar *buff,uint length) + { set_image(buff,length, &my_charset_bin); } + inline longlong val_int_offset(uint row_offset) + { + ptr+=row_offset; + longlong tmp=val_int(); + ptr-=row_offset; + return tmp; + } + inline longlong val_int(const uchar *new_ptr) + { + uchar *old_ptr= ptr; + longlong return_value; + ptr= (uchar*) new_ptr; + return_value= val_int(); + ptr= old_ptr; + return return_value; + } + inline String *val_str(String *str, const uchar *new_ptr) + { + uchar *old_ptr= ptr; + ptr= (uchar*) new_ptr; + val_str(str); + ptr= old_ptr; + return str; + } + virtual bool send_binary(Protocol *protocol); + + virtual uchar *pack(uchar *to, const uchar *from, uint max_length); + /** + @overload Field::pack(uchar*, const uchar*, uint, bool) + */ + uchar *pack(uchar *to, const uchar *from) + { + DBUG_ENTER("Field::pack"); + uchar *result= this->pack(to, from, UINT_MAX); + DBUG_RETURN(result); + } + + virtual const uchar *unpack(uchar* to, const uchar *from, + const uchar *from_end, uint param_data=0); + + virtual uint packed_col_length(const uchar *to, uint length) + { return length;} + virtual uint max_packed_col_length(uint max_length) + { return max_length;} + + uint offset(uchar *record) + { + return (uint) (ptr - record); + } + void copy_from_tmp(int offset); + uint fill_cache_field(struct st_cache_field *copy); + virtual bool get_date(MYSQL_TIME *ltime, ulonglong fuzzydate); + bool get_time(MYSQL_TIME *ltime) { return get_date(ltime, TIME_TIME_ONLY); } + virtual CHARSET_INFO *charset(void) const { return &my_charset_bin; } + virtual CHARSET_INFO *charset_for_protocol(void) const + { return binary() ? &my_charset_bin : charset(); } + virtual CHARSET_INFO *sort_charset(void) const { return charset(); } + virtual bool has_charset(void) const { return FALSE; } + virtual enum Derivation derivation(void) const + { return DERIVATION_IMPLICIT; } + virtual uint repertoire(void) const { return MY_REPERTOIRE_UNICODE30; } + virtual void set_derivation(enum Derivation derivation_arg, + uint repertoire_arg) + { } + virtual int set_time() { return 1; } + void set_warning(MYSQL_ERROR::enum_warning_level, unsigned int code, + int cuted_increment); + void set_datetime_warning(MYSQL_ERROR::enum_warning_level, uint code, + const ErrConv *str, timestamp_type ts_type, + int cuted_increment); + inline bool check_overflow(int op_result) + { + return (op_result == E_DEC_OVERFLOW); + } + int warn_if_overflow(int op_result); + void set_table_name(String *alias) + { + table_name= &alias->Ptr; + } + void init(TABLE *table_arg) + { + orig_table= table= table_arg; + set_table_name(&table_arg->alias); + } + + /* maximum possible display length */ + virtual uint32 max_display_length()= 0; + + /** + Whether a field being created is compatible with a existing one. + + Used by the ALTER TABLE code to evaluate whether the new definition + of a table is compatible with the old definition so that it can + determine if data needs to be copied over (table data change). + */ + virtual uint is_equal(Create_field *new_field); + /* convert decimal to longlong with overflow check */ + longlong convert_decimal2longlong(const my_decimal *val, bool unsigned_flag, + int *err); + /* The max. number of characters */ + virtual uint32 char_length() + { + return field_length / charset()->mbmaxlen; + } + + virtual geometry_type get_geometry_type() + { + /* shouldn't get here. */ + DBUG_ASSERT(0); + return GEOM_GEOMETRY; + } + + key_map get_possible_keys(); + + /* Hash value */ + virtual void hash(ulong *nr, ulong *nr2); + +/** + Checks whether a string field is part of write_set. + + @return + FALSE - If field is not char/varchar/.... + - If field is char/varchar/.. and is not part of write set. + TRUE - If field is char/varchar/.. and is part of write set. +*/ + virtual bool is_updatable() const { return FALSE; } + + /* Check whether the field can be used as a join attribute in hash join */ + virtual bool hash_join_is_possible() { return TRUE; } + virtual bool eq_cmp_as_binary() { return TRUE; } + + friend int cre_myisam(char * name, register TABLE *form, uint options, + ulonglong auto_increment_value); + friend class Copy_field; + friend class Item_avg_field; + friend class Item_std_field; + friend class Item_sum_num; + friend class Item_sum_sum; + friend class Item_sum_str; + friend class Item_sum_count; + friend class Item_sum_avg; + friend class Item_sum_std; + friend class Item_sum_min; + friend class Item_sum_max; + friend class Item_func_group_concat; + +private: + /* + Primitive for implementing last_null_byte(). + + SYNOPSIS + do_last_null_byte() + + DESCRIPTION + Primitive for the implementation of the last_null_byte() + function. This represents the inheritance interface and can be + overridden by subclasses. + */ + virtual size_t do_last_null_byte() const; + +/** + Retrieve the field metadata for fields. + + This default implementation returns 0 and saves 0 in the metadata_ptr + value. + + @param metadata_ptr First byte of field metadata + + @returns 0 no bytes written. +*/ + virtual int do_save_field_metadata(uchar *metadata_ptr) + { return 0; } + +protected: + uchar *pack_int(uchar *to, const uchar *from, size_t size) + { + memcpy(to, from, size); + return to + size; + } + + const uchar *unpack_int(uchar* to, const uchar *from, + const uchar *from_end, size_t size) + { + if (from + size > from_end) + return 0; + memcpy(to, from, size); + return from + size; + } + + uchar *pack_int16(uchar *to, const uchar *from) + { return pack_int(to, from, 2); } + const uchar *unpack_int16(uchar* to, const uchar *from, const uchar *from_end) + { return unpack_int(to, from, from_end, 2); } + uchar *pack_int24(uchar *to, const uchar *from) + { return pack_int(to, from, 3); } + const uchar *unpack_int24(uchar* to, const uchar *from, const uchar *from_end) + { return unpack_int(to, from, from_end, 3); } + uchar *pack_int32(uchar *to, const uchar *from) + { return pack_int(to, from, 4); } + const uchar *unpack_int32(uchar* to, const uchar *from, const uchar *from_end) + { return unpack_int(to, from, from_end, 4); } + uchar *pack_int64(uchar* to, const uchar *from) + { return pack_int(to, from, 8); } + const uchar *unpack_int64(uchar* to, const uchar *from, const uchar *from_end) + { return unpack_int(to, from, from_end, 8); } + + bool field_flags_are_binary() + { + return (flags & (BINCMP_FLAG | BINARY_FLAG)) != 0; + } + +}; + + +class Field_num :public Field { +public: + const uint8 dec; + bool zerofill,unsigned_flag; // Purify cannot handle bit fields + Field_num(uchar *ptr_arg,uint32 len_arg, uchar *null_ptr_arg, + uchar null_bit_arg, utype unireg_check_arg, + const char *field_name_arg, + uint8 dec_arg, bool zero_arg, bool unsigned_arg); + enum Item_result result_type () const { return INT_RESULT; } + enum Derivation derivation(void) const { return DERIVATION_NUMERIC; } + uint repertoire(void) const { return MY_REPERTOIRE_NUMERIC; } + CHARSET_INFO *charset(void) const { return &my_charset_numeric; } + void prepend_zeros(String *value); + void add_zerofill_and_unsigned(String &res) const; + friend class Create_field; + void make_field(Send_field *); + uint decimals() const { return (uint) dec; } + uint size_of() const { return sizeof(*this); } + bool eq_def(Field *field); + int store_decimal(const my_decimal *); + my_decimal *val_decimal(my_decimal *); + uint is_equal(Create_field *new_field); + uint row_pack_length() const { return pack_length(); } + uint32 pack_length_from_metadata(uint field_metadata) { + uint32 length= pack_length(); + DBUG_PRINT("result", ("pack_length_from_metadata(%d): %u", + field_metadata, length)); + return length; + } + int store_time_dec(MYSQL_TIME *ltime, uint dec); + int check_int(CHARSET_INFO *cs, const char *str, int length, + const char *int_end, int error); + bool get_int(CHARSET_INFO *cs, const char *from, uint len, + longlong *rnd, ulonglong unsigned_max, + longlong signed_min, longlong signed_max); +}; + + +class Field_str :public Field { +protected: + // TODO-10.2: Reuse DTCollation instead of these three members + CHARSET_INFO *field_charset; + enum Derivation field_derivation; + uint field_repertoire; +public: + Field_str(uchar *ptr_arg,uint32 len_arg, uchar *null_ptr_arg, + uchar null_bit_arg, utype unireg_check_arg, + const char *field_name_arg, CHARSET_INFO *charset); + Item_result result_type () const { return STRING_RESULT; } + /* + match_collation_to_optimize_range() is to distinguish in + range optimizer (see opt_range.cc) between real string types: + CHAR, VARCHAR, TEXT + and the other string-alike types with result_type() == STRING_RESULT: + DATE, TIME, DATETIME, TIMESTAMP + We need it to decide whether to test if collation of the operation + matches collation of the field (needed only for real string types). + QQ: shouldn't DATE/TIME types have their own XXX_RESULT types eventually? + */ + virtual bool match_collation_to_optimize_range() const=0; + uint decimals() const { return NOT_FIXED_DEC; } + int store(double nr); + int store(longlong nr, bool unsigned_val)=0; + int store_decimal(const my_decimal *); + int store(const char *to,uint length,CHARSET_INFO *cs)=0; + uint size_of() const { return sizeof(*this); } + uint repertoire(void) const { return field_repertoire; } + CHARSET_INFO *charset(void) const { return field_charset; } + enum Derivation derivation(void) const { return field_derivation; } + void set_derivation(enum Derivation derivation_arg, + uint repertoire_arg) + { + field_derivation= derivation_arg; + field_repertoire= repertoire_arg; + } + bool binary() const { return field_charset == &my_charset_bin; } + uint32 max_display_length() { return field_length; } + friend class Create_field; + my_decimal *val_decimal(my_decimal *); + virtual bool str_needs_quotes() { return TRUE; } + uint is_equal(Create_field *new_field); + bool eq_cmp_as_binary() { return test(flags & BINARY_FLAG); } +}; + +/* base class for Field_string, Field_varstring and Field_blob */ + +class Field_longstr :public Field_str +{ +protected: + int report_if_important_data(const char *ptr, const char *end, + bool count_spaces); +public: + Field_longstr(uchar *ptr_arg, uint32 len_arg, uchar *null_ptr_arg, + uchar null_bit_arg, utype unireg_check_arg, + const char *field_name_arg, CHARSET_INFO *charset_arg) + :Field_str(ptr_arg, len_arg, null_ptr_arg, null_bit_arg, unireg_check_arg, + field_name_arg, charset_arg) + {} + + int store_decimal(const my_decimal *d); + uint32 max_data_length() const; + bool is_updatable() const + { + DBUG_ASSERT(table && table->write_set); + return bitmap_is_set(table->write_set, field_index); + } +}; + +/* base class for float and double and decimal (old one) */ +class Field_real :public Field_num { +public: + bool not_fixed; + + Field_real(uchar *ptr_arg, uint32 len_arg, uchar *null_ptr_arg, + uchar null_bit_arg, utype unireg_check_arg, + const char *field_name_arg, + uint8 dec_arg, bool zero_arg, bool unsigned_arg) + :Field_num(ptr_arg, len_arg, null_ptr_arg, null_bit_arg, unireg_check_arg, + field_name_arg, dec_arg, zero_arg, unsigned_arg), + not_fixed(dec_arg >= NOT_FIXED_DEC) + {} + Item_result result_type () const { return REAL_RESULT; } + int store_decimal(const my_decimal *); + int store_time_dec(MYSQL_TIME *ltime, uint dec); + bool get_date(MYSQL_TIME *ltime, ulonglong fuzzydate); + my_decimal *val_decimal(my_decimal *); + uint32 max_display_length() { return field_length; } + uint size_of() const { return sizeof(*this); } +}; + + +class Field_decimal :public Field_real { +public: + Field_decimal(uchar *ptr_arg, uint32 len_arg, uchar *null_ptr_arg, + uchar null_bit_arg, + enum utype unireg_check_arg, const char *field_name_arg, + uint8 dec_arg,bool zero_arg,bool unsigned_arg) + :Field_real(ptr_arg, len_arg, null_ptr_arg, null_bit_arg, + unireg_check_arg, field_name_arg, + dec_arg, zero_arg, unsigned_arg) + {} + enum_field_types type() const { return MYSQL_TYPE_DECIMAL;} + enum ha_base_keytype key_type() const + { return zerofill ? HA_KEYTYPE_BINARY : HA_KEYTYPE_NUM; } + int reset(void); + int store(const char *to,uint length,CHARSET_INFO *charset); + int store(double nr); + int store(longlong nr, bool unsigned_val); + double val_real(void); + longlong val_int(void); + String *val_str(String*,String *); + int cmp(const uchar *,const uchar *); + void sort_string(uchar *buff,uint length); + void overflow(bool negative); + bool zero_pack() const { return 0; } + void sql_type(String &str) const; + virtual uchar *pack(uchar* to, const uchar *from, uint max_length) + { + return Field::pack(to, from, max_length); + } +}; + + +/* New decimal/numeric field which use fixed point arithmetic */ +class Field_new_decimal :public Field_num { +private: + int do_save_field_metadata(uchar *first_byte); +public: + /* The maximum number of decimal digits can be stored */ + uint precision; + uint bin_size; + /* + Constructors take max_length of the field as a parameter - not the + precision as the number of decimal digits allowed. + So for example we need to count length from precision handling + CREATE TABLE ( DECIMAL(x,y)) + */ + Field_new_decimal(uchar *ptr_arg, uint32 len_arg, uchar *null_ptr_arg, + uchar null_bit_arg, + enum utype unireg_check_arg, const char *field_name_arg, + uint8 dec_arg, bool zero_arg, bool unsigned_arg); + Field_new_decimal(uint32 len_arg, bool maybe_null_arg, + const char *field_name_arg, uint8 dec_arg, + bool unsigned_arg); + enum_field_types type() const { return MYSQL_TYPE_NEWDECIMAL;} + enum ha_base_keytype key_type() const { return HA_KEYTYPE_BINARY; } + Item_result result_type () const { return DECIMAL_RESULT; } + int reset(void); + bool store_value(const my_decimal *decimal_value); + void set_value_on_overflow(my_decimal *decimal_value, bool sign); + int store(const char *to, uint length, CHARSET_INFO *charset); + int store(double nr); + int store(longlong nr, bool unsigned_val); + int store_time_dec(MYSQL_TIME *ltime, uint dec); + int store_decimal(const my_decimal *); + double val_real(void); + longlong val_int(void); + my_decimal *val_decimal(my_decimal *); + String *val_str(String*, String *); + int cmp(const uchar *, const uchar *); + void sort_string(uchar *buff, uint length); + bool zero_pack() const { return 0; } + void sql_type(String &str) const; + uint32 max_display_length() { return field_length; } + uint size_of() const { return sizeof(*this); } + uint32 pack_length() const { return (uint32) bin_size; } + uint pack_length_from_metadata(uint field_metadata); + uint row_pack_length() const { return pack_length(); } + bool compatible_field_size(uint field_metadata, Relay_log_info *rli, + uint16 mflags, int *order_var); + uint is_equal(Create_field *new_field); + virtual const uchar *unpack(uchar* to, const uchar *from, const uchar *from_end, uint param_data); + static Field *create_from_item (Item *); +}; + + +class Field_tiny :public Field_num { +public: + Field_tiny(uchar *ptr_arg, uint32 len_arg, uchar *null_ptr_arg, + uchar null_bit_arg, + enum utype unireg_check_arg, const char *field_name_arg, + bool zero_arg, bool unsigned_arg) + :Field_num(ptr_arg, len_arg, null_ptr_arg, null_bit_arg, + unireg_check_arg, field_name_arg, + 0, zero_arg,unsigned_arg) + {} + enum_field_types type() const { return MYSQL_TYPE_TINY;} + enum ha_base_keytype key_type() const + { return unsigned_flag ? HA_KEYTYPE_BINARY : HA_KEYTYPE_INT8; } + int store(const char *to,uint length,CHARSET_INFO *charset); + int store(double nr); + int store(longlong nr, bool unsigned_val); + int reset(void) { ptr[0]=0; return 0; } + double val_real(void); + longlong val_int(void); + String *val_str(String*,String *); + bool send_binary(Protocol *protocol); + int cmp(const uchar *,const uchar *); + void sort_string(uchar *buff,uint length); + uint32 pack_length() const { return 1; } + void sql_type(String &str) const; + uint32 max_display_length() { return 4; } + + virtual uchar *pack(uchar* to, const uchar *from, uint max_length) + { + *to= *from; + return to + 1; + } + + virtual const uchar *unpack(uchar* to, const uchar *from, + const uchar *from_end, uint param_data) + { + if (from == from_end) + return 0; + *to= *from; + return from + 1; + } +}; + + +class Field_short :public Field_num { +public: + Field_short(uchar *ptr_arg, uint32 len_arg, uchar *null_ptr_arg, + uchar null_bit_arg, + enum utype unireg_check_arg, const char *field_name_arg, + bool zero_arg, bool unsigned_arg) + :Field_num(ptr_arg, len_arg, null_ptr_arg, null_bit_arg, + unireg_check_arg, field_name_arg, + 0, zero_arg,unsigned_arg) + {} + Field_short(uint32 len_arg,bool maybe_null_arg, const char *field_name_arg, + bool unsigned_arg) + :Field_num((uchar*) 0, len_arg, maybe_null_arg ? (uchar*) "": 0,0, + NONE, field_name_arg, 0, 0, unsigned_arg) + {} + enum_field_types type() const { return MYSQL_TYPE_SHORT;} + enum ha_base_keytype key_type() const + { return unsigned_flag ? HA_KEYTYPE_USHORT_INT : HA_KEYTYPE_SHORT_INT;} + int store(const char *to,uint length,CHARSET_INFO *charset); + int store(double nr); + int store(longlong nr, bool unsigned_val); + int reset(void) { ptr[0]=ptr[1]=0; return 0; } + double val_real(void); + longlong val_int(void); + String *val_str(String*,String *); + bool send_binary(Protocol *protocol); + int cmp(const uchar *,const uchar *); + void sort_string(uchar *buff,uint length); + uint32 pack_length() const { return 2; } + void sql_type(String &str) const; + uint32 max_display_length() { return 6; } + + virtual uchar *pack(uchar* to, const uchar *from, uint max_length) + { return pack_int16(to, from); } + + virtual const uchar *unpack(uchar* to, const uchar *from, + const uchar *from_end, uint param_data) + { return unpack_int16(to, from, from_end); } +}; + +class Field_medium :public Field_num { +public: + Field_medium(uchar *ptr_arg, uint32 len_arg, uchar *null_ptr_arg, + uchar null_bit_arg, + enum utype unireg_check_arg, const char *field_name_arg, + bool zero_arg, bool unsigned_arg) + :Field_num(ptr_arg, len_arg, null_ptr_arg, null_bit_arg, + unireg_check_arg, field_name_arg, + 0, zero_arg,unsigned_arg) + {} + enum_field_types type() const { return MYSQL_TYPE_INT24;} + enum ha_base_keytype key_type() const + { return unsigned_flag ? HA_KEYTYPE_UINT24 : HA_KEYTYPE_INT24; } + int store(const char *to,uint length,CHARSET_INFO *charset); + int store(double nr); + int store(longlong nr, bool unsigned_val); + int reset(void) { ptr[0]=ptr[1]=ptr[2]=0; return 0; } + double val_real(void); + longlong val_int(void); + String *val_str(String*,String *); + bool send_binary(Protocol *protocol); + int cmp(const uchar *,const uchar *); + void sort_string(uchar *buff,uint length); + uint32 pack_length() const { return 3; } + void sql_type(String &str) const; + uint32 max_display_length() { return 8; } + + virtual uchar *pack(uchar* to, const uchar *from, uint max_length) + { + return Field::pack(to, from, max_length); + } +}; + + +class Field_long :public Field_num { +public: + Field_long(uchar *ptr_arg, uint32 len_arg, uchar *null_ptr_arg, + uchar null_bit_arg, + enum utype unireg_check_arg, const char *field_name_arg, + bool zero_arg, bool unsigned_arg) + :Field_num(ptr_arg, len_arg, null_ptr_arg, null_bit_arg, + unireg_check_arg, field_name_arg, + 0, zero_arg,unsigned_arg) + {} + Field_long(uint32 len_arg,bool maybe_null_arg, const char *field_name_arg, + bool unsigned_arg) + :Field_num((uchar*) 0, len_arg, maybe_null_arg ? (uchar*) "": 0,0, + NONE, field_name_arg,0,0,unsigned_arg) + {} + enum_field_types type() const { return MYSQL_TYPE_LONG;} + enum ha_base_keytype key_type() const + { return unsigned_flag ? HA_KEYTYPE_ULONG_INT : HA_KEYTYPE_LONG_INT; } + int store(const char *to,uint length,CHARSET_INFO *charset); + int store(double nr); + int store(longlong nr, bool unsigned_val); + int reset(void) { ptr[0]=ptr[1]=ptr[2]=ptr[3]=0; return 0; } + double val_real(void); + longlong val_int(void); + bool send_binary(Protocol *protocol); + String *val_str(String*,String *); + int cmp(const uchar *,const uchar *); + void sort_string(uchar *buff,uint length); + uint32 pack_length() const { return 4; } + void sql_type(String &str) const; + uint32 max_display_length() { return MY_INT32_NUM_DECIMAL_DIGITS; } + virtual uchar *pack(uchar* to, const uchar *from, + uint max_length __attribute__((unused))) + { + return pack_int32(to, from); + } + virtual const uchar *unpack(uchar* to, const uchar *from, + const uchar *from_end, + uint param_data __attribute__((unused))) + { + return unpack_int32(to, from, from_end); + } +}; + + +class Field_longlong :public Field_num { +public: + Field_longlong(uchar *ptr_arg, uint32 len_arg, uchar *null_ptr_arg, + uchar null_bit_arg, + enum utype unireg_check_arg, const char *field_name_arg, + bool zero_arg, bool unsigned_arg) + :Field_num(ptr_arg, len_arg, null_ptr_arg, null_bit_arg, + unireg_check_arg, field_name_arg, + 0, zero_arg,unsigned_arg) + {} + Field_longlong(uint32 len_arg,bool maybe_null_arg, + const char *field_name_arg, + bool unsigned_arg) + :Field_num((uchar*) 0, len_arg, maybe_null_arg ? (uchar*) "": 0,0, + NONE, field_name_arg,0,0,unsigned_arg) + {} + enum_field_types type() const { return MYSQL_TYPE_LONGLONG;} + enum ha_base_keytype key_type() const + { return unsigned_flag ? HA_KEYTYPE_ULONGLONG : HA_KEYTYPE_LONGLONG; } + int store(const char *to,uint length,CHARSET_INFO *charset); + int store(double nr); + int store(longlong nr, bool unsigned_val); + int reset(void) + { + ptr[0]=ptr[1]=ptr[2]=ptr[3]=ptr[4]=ptr[5]=ptr[6]=ptr[7]=0; + return 0; + } + double val_real(void); + longlong val_int(void); + String *val_str(String*,String *); + bool send_binary(Protocol *protocol); + int cmp(const uchar *,const uchar *); + void sort_string(uchar *buff,uint length); + uint32 pack_length() const { return 8; } + void sql_type(String &str) const; + uint32 max_display_length() { return 20; } + virtual uchar *pack(uchar* to, const uchar *from, + uint max_length __attribute__((unused))) + { + return pack_int64(to, from); + } + const uchar *unpack(uchar* to, const uchar *from, const uchar *from_end, + uint param_data __attribute__((unused))) + { + return unpack_int64(to, from, from_end); + } +}; + + +class Field_float :public Field_real { +public: + Field_float(uchar *ptr_arg, uint32 len_arg, uchar *null_ptr_arg, + uchar null_bit_arg, + enum utype unireg_check_arg, const char *field_name_arg, + uint8 dec_arg,bool zero_arg,bool unsigned_arg) + :Field_real(ptr_arg, len_arg, null_ptr_arg, null_bit_arg, + unireg_check_arg, field_name_arg, + dec_arg, zero_arg, unsigned_arg) + {} + Field_float(uint32 len_arg, bool maybe_null_arg, const char *field_name_arg, + uint8 dec_arg) + :Field_real((uchar*) 0, len_arg, maybe_null_arg ? (uchar*) "": 0, (uint) 0, + NONE, field_name_arg, dec_arg, 0, 0) + {} + enum_field_types type() const { return MYSQL_TYPE_FLOAT;} + enum ha_base_keytype key_type() const { return HA_KEYTYPE_FLOAT; } + int store(const char *to,uint length,CHARSET_INFO *charset); + int store(double nr); + int store(longlong nr, bool unsigned_val); + int reset(void) { bzero(ptr,sizeof(float)); return 0; } + double val_real(void); + longlong val_int(void); + String *val_str(String*,String *); + bool send_binary(Protocol *protocol); + int cmp(const uchar *,const uchar *); + void sort_string(uchar *buff,uint length); + uint32 pack_length() const { return sizeof(float); } + uint row_pack_length() const { return pack_length(); } + void sql_type(String &str) const; +private: + int do_save_field_metadata(uchar *first_byte); +}; + + +class Field_double :public Field_real { +public: + Field_double(uchar *ptr_arg, uint32 len_arg, uchar *null_ptr_arg, + uchar null_bit_arg, + enum utype unireg_check_arg, const char *field_name_arg, + uint8 dec_arg,bool zero_arg,bool unsigned_arg) + :Field_real(ptr_arg, len_arg, null_ptr_arg, null_bit_arg, + unireg_check_arg, field_name_arg, + dec_arg, zero_arg, unsigned_arg) + {} + Field_double(uint32 len_arg, bool maybe_null_arg, const char *field_name_arg, + uint8 dec_arg) + :Field_real((uchar*) 0, len_arg, maybe_null_arg ? (uchar*) "" : 0, (uint) 0, + NONE, field_name_arg, dec_arg, 0, 0) + {} + Field_double(uint32 len_arg, bool maybe_null_arg, const char *field_name_arg, + uint8 dec_arg, bool not_fixed_arg) + :Field_real((uchar*) 0, len_arg, maybe_null_arg ? (uchar*) "" : 0, (uint) 0, + NONE, field_name_arg, dec_arg, 0, 0) + {not_fixed= not_fixed_arg; } + enum_field_types type() const { return MYSQL_TYPE_DOUBLE;} + enum ha_base_keytype key_type() const { return HA_KEYTYPE_DOUBLE; } + int store(const char *to,uint length,CHARSET_INFO *charset); + int store(double nr); + int store(longlong nr, bool unsigned_val); + int reset(void) { bzero(ptr,sizeof(double)); return 0; } + double val_real(void); + longlong val_int(void); + String *val_str(String*,String *); + bool send_binary(Protocol *protocol); + int cmp(const uchar *,const uchar *); + void sort_string(uchar *buff,uint length); + uint32 pack_length() const { return sizeof(double); } + uint row_pack_length() const { return pack_length(); } + void sql_type(String &str) const; +private: + int do_save_field_metadata(uchar *first_byte); +}; + + +/* Everything saved in this will disappear. It will always return NULL */ + +class Field_null :public Field_str { + static uchar null[1]; +public: + Field_null(uchar *ptr_arg, uint32 len_arg, + enum utype unireg_check_arg, const char *field_name_arg, + CHARSET_INFO *cs) + :Field_str(ptr_arg, len_arg, null, 1, + unireg_check_arg, field_name_arg, cs) + {} + enum_field_types type() const { return MYSQL_TYPE_NULL;} + bool match_collation_to_optimize_range() const { return FALSE; } + int store(const char *to, uint length, CHARSET_INFO *cs) + { null[0]=1; return 0; } + int store(double nr) { null[0]=1; return 0; } + int store(longlong nr, bool unsigned_val) { null[0]=1; return 0; } + int store_decimal(const my_decimal *d) { null[0]=1; return 0; } + int reset(void) { return 0; } + double val_real(void) { return 0.0;} + longlong val_int(void) { return 0;} + my_decimal *val_decimal(my_decimal *) { return 0; } + String *val_str(String *value,String *value2) + { value2->length(0); return value2;} + int cmp(const uchar *a, const uchar *b) { return 0;} + void sort_string(uchar *buff, uint length) {} + uint32 pack_length() const { return 0; } + void sql_type(String &str) const; + uint size_of() const { return sizeof(*this); } + uint32 max_display_length() { return 4; } + void move_field_offset(my_ptrdiff_t ptr_diff) {} +}; + + +class Field_timestamp :public Field_str { +protected: + int store_TIME_with_warning(THD *, MYSQL_TIME *, const ErrConv *, + bool, bool); +public: + Field_timestamp(uchar *ptr_arg, uint32 len_arg, + uchar *null_ptr_arg, uchar null_bit_arg, + enum utype unireg_check_arg, const char *field_name_arg, + TABLE_SHARE *share, CHARSET_INFO *cs); + Field_timestamp(bool maybe_null_arg, const char *field_name_arg, + CHARSET_INFO *cs); + enum_field_types type() const { return MYSQL_TYPE_TIMESTAMP;} + bool match_collation_to_optimize_range() const { return FALSE; } + enum ha_base_keytype key_type() const { return HA_KEYTYPE_ULONG_INT; } + enum Item_result cmp_type () const { return TIME_RESULT; } + enum Derivation derivation(void) const { return DERIVATION_NUMERIC; } + uint repertoire(void) const { return MY_REPERTOIRE_NUMERIC; } + CHARSET_INFO *charset(void) const { return &my_charset_numeric; } + bool binary() const { return 1; } + int store(const char *to,uint length,CHARSET_INFO *charset); + int store(double nr); + int store(longlong nr, bool unsigned_val); + int store_time_dec(MYSQL_TIME *ltime, uint dec); + double val_real(void); + longlong val_int(void); + String *val_str(String*,String *); + bool send_binary(Protocol *protocol); + int cmp(const uchar *,const uchar *); + void sort_string(uchar *buff,uint length); + uint32 pack_length() const { return 4; } + void sql_type(String &str) const; + bool zero_pack() const { return 0; } + uint decimals() const { return 0; } + virtual int set_time(); + virtual void set_default() + { + if (table->timestamp_field == this && + unireg_check != TIMESTAMP_UN_FIELD) + set_time(); + else + Field::set_default(); + } + /* Get TIMESTAMP field value as seconds since begging of Unix Epoch */ + virtual my_time_t get_timestamp(ulong *sec_part) const; + virtual void store_TIME(my_time_t timestamp, ulong sec_part) + { + int4store(ptr,timestamp); + } + bool get_date(MYSQL_TIME *ltime, ulonglong fuzzydate); + timestamp_auto_set_type get_auto_set_type() const; + uchar *pack(uchar *to, const uchar *from, + uint max_length __attribute__((unused))) + { + return pack_int32(to, from); + } + const uchar *unpack(uchar* to, const uchar *from, const uchar *from_end, + uint param_data __attribute__((unused))) + { + return unpack_int32(to, from, from_end); + } +}; + + +class Field_timestamp_hires :public Field_timestamp { + uint dec; +public: + Field_timestamp_hires(uchar *ptr_arg, + uchar *null_ptr_arg, uchar null_bit_arg, + enum utype unireg_check_arg, const char *field_name_arg, + TABLE_SHARE *share, uint dec_arg, CHARSET_INFO *cs) : + Field_timestamp(ptr_arg, MAX_DATETIME_WIDTH + dec_arg + 1, null_ptr_arg, + null_bit_arg, unireg_check_arg, field_name_arg, share, cs), + dec(dec_arg) + { + DBUG_ASSERT(dec); + DBUG_ASSERT(dec <= TIME_SECOND_PART_DIGITS); + } + void sql_type(String &str) const; + my_time_t get_timestamp(ulong *sec_part) const; + void store_TIME(my_time_t timestamp, ulong sec_part); + int store_decimal(const my_decimal *d); + double val_real(void); + String *val_str(String*,String *); + my_decimal* val_decimal(my_decimal*); + bool send_binary(Protocol *protocol); + int cmp(const uchar *,const uchar *); + void sort_string(uchar *buff,uint length); + uint decimals() const { return dec; } + int set_time(); + enum ha_base_keytype key_type() const { return HA_KEYTYPE_BINARY; } + void make_field(Send_field *field); + uint32 pack_length() const; + uchar *pack(uchar *to, const uchar *from, uint max_length) + { return Field::pack(to, from, max_length); } + const uchar *unpack(uchar* to, const uchar *from, const uchar *from_end, + uint param_data) + { return Field::unpack(to, from, from_end, param_data); } + uint size_of() const { return sizeof(*this); } + bool eq_def(Field *field) + { return Field_str::eq_def(field) && dec == field->decimals(); } +}; + + +class Field_year :public Field_tiny { +public: + Field_year(uchar *ptr_arg, uint32 len_arg, uchar *null_ptr_arg, + uchar null_bit_arg, + enum utype unireg_check_arg, const char *field_name_arg) + :Field_tiny(ptr_arg, len_arg, null_ptr_arg, null_bit_arg, + unireg_check_arg, field_name_arg, 1, 1) + {} + enum_field_types type() const { return MYSQL_TYPE_YEAR;} + int store(const char *to,uint length,CHARSET_INFO *charset); + int store(double nr); + int store(longlong nr, bool unsigned_val); + int store_time_dec(MYSQL_TIME *ltime, uint dec); + double val_real(void); + longlong val_int(void); + String *val_str(String*,String *); + bool get_date(MYSQL_TIME *ltime, ulonglong fuzzydate); + bool send_binary(Protocol *protocol); + uint32 max_display_length() { return field_length; } + void sql_type(String &str) const; +}; + + +class Field_temporal: public Field_str { +protected: + int store_TIME_with_warning(MYSQL_TIME *ltime, const ErrConv *str, + int was_cut, int have_smth_to_conv); + virtual void store_TIME(MYSQL_TIME *ltime) = 0; +public: + Field_temporal(uchar *ptr_arg,uint32 len_arg, uchar *null_ptr_arg, + uchar null_bit_arg, utype unireg_check_arg, + const char *field_name_arg, CHARSET_INFO *charset_arg) + :Field_str(ptr_arg, len_arg, null_ptr_arg, null_bit_arg, unireg_check_arg, + field_name_arg, charset_arg) + { flags|= BINARY_FLAG; } + enum Derivation derivation(void) const { return DERIVATION_NUMERIC; } + uint repertoire(void) const { return MY_REPERTOIRE_NUMERIC; } + CHARSET_INFO *charset(void) const { return &my_charset_numeric; } + bool binary() const { return 1; } + bool match_collation_to_optimize_range() const { return FALSE; } + enum Item_result cmp_type () const { return TIME_RESULT; } + int store(const char *to,uint length,CHARSET_INFO *charset); + int store(double nr); + int store(longlong nr, bool unsigned_val); + int store_time_dec(MYSQL_TIME *ltime, uint dec); + my_decimal *val_decimal(my_decimal*); + bool eq_def(Field *field) + { + return (Field_str::eq_def(field) && decimals() == field->decimals()); + } +}; + +class Field_date :public Field_temporal { + void store_TIME(MYSQL_TIME *ltime); +public: + Field_date(uchar *ptr_arg, uchar *null_ptr_arg, uchar null_bit_arg, + enum utype unireg_check_arg, const char *field_name_arg, + CHARSET_INFO *cs) + :Field_temporal(ptr_arg, MAX_DATE_WIDTH, null_ptr_arg, null_bit_arg, + unireg_check_arg, field_name_arg, cs) {} + enum_field_types type() const { return MYSQL_TYPE_DATE;} + enum ha_base_keytype key_type() const { return HA_KEYTYPE_ULONG_INT; } + int reset(void) { ptr[0]=ptr[1]=ptr[2]=ptr[3]=0; return 0; } + double val_real(void); + longlong val_int(void); + String *val_str(String*,String *); + uint decimals() const { return 0; } + bool send_binary(Protocol *protocol); + int cmp(const uchar *,const uchar *); + void sort_string(uchar *buff,uint length); + uint32 pack_length() const { return 4; } + void sql_type(String &str) const; + bool zero_pack() const { return 1; } + uchar *pack(uchar* to, const uchar *from, + uint max_length __attribute__((unused))) + { + return pack_int32(to, from); + } + const uchar *unpack(uchar* to, const uchar *from, const uchar *from_end, + uint param_data __attribute__((unused))) + { + return unpack_int32(to, from, from_end); + } +}; + + +class Field_newdate :public Field_temporal { + void store_TIME(MYSQL_TIME *ltime); +public: + Field_newdate(uchar *ptr_arg, uchar *null_ptr_arg, uchar null_bit_arg, + enum utype unireg_check_arg, const char *field_name_arg, + CHARSET_INFO *cs) + :Field_temporal(ptr_arg, MAX_DATE_WIDTH, null_ptr_arg, null_bit_arg, + unireg_check_arg, field_name_arg, cs) + {} + enum_field_types type() const { return MYSQL_TYPE_DATE;} + enum_field_types real_type() const { return MYSQL_TYPE_NEWDATE; } + enum ha_base_keytype key_type() const { return HA_KEYTYPE_UINT24; } + int reset(void) { ptr[0]=ptr[1]=ptr[2]=0; return 0; } + uint decimals() const { return 0; } + double val_real(void); + longlong val_int(void); + String *val_str(String*,String *); + bool send_binary(Protocol *protocol); + int cmp(const uchar *,const uchar *); + void sort_string(uchar *buff,uint length); + uint32 pack_length() const { return 3; } + void sql_type(String &str) const; + bool zero_pack() const { return 1; } + bool get_date(MYSQL_TIME *ltime, ulonglong fuzzydate); +}; + + +class Field_time :public Field_temporal { + void store_TIME(MYSQL_TIME *ltime); +public: + Field_time(uchar *ptr_arg, uint length_arg, uchar *null_ptr_arg, + uchar null_bit_arg, enum utype unireg_check_arg, + const char *field_name_arg, CHARSET_INFO *cs) + :Field_temporal(ptr_arg, length_arg, null_ptr_arg, null_bit_arg, + unireg_check_arg, field_name_arg, cs) + {} + enum_field_types type() const { return MYSQL_TYPE_TIME;} + enum ha_base_keytype key_type() const { return HA_KEYTYPE_INT24; } + int store_time_dec(MYSQL_TIME *ltime, uint dec); + int store(const char *to,uint length,CHARSET_INFO *charset); + int store(double nr); + int store(longlong nr, bool unsigned_val); + uint decimals() const { return 0; } + double val_real(void); + longlong val_int(void); + String *val_str(String*,String *); + bool get_date(MYSQL_TIME *ltime, ulonglong fuzzydate); + bool send_binary(Protocol *protocol); + int cmp(const uchar *,const uchar *); + void sort_string(uchar *buff,uint length); + uint32 pack_length() const { return 3; } + void sql_type(String &str) const; + bool zero_pack() const { return 1; } +}; + +class Field_time_hires :public Field_time { + uint dec; + longlong zero_point; + void store_TIME(MYSQL_TIME *ltime); +public: + Field_time_hires(uchar *ptr_arg, uchar *null_ptr_arg, uchar null_bit_arg, + enum utype unireg_check_arg, const char *field_name_arg, + uint dec_arg, CHARSET_INFO *cs) + :Field_time(ptr_arg, MIN_TIME_WIDTH + dec_arg + 1, null_ptr_arg, + null_bit_arg, unireg_check_arg, field_name_arg, cs), + dec(dec_arg) + { + DBUG_ASSERT(dec); + DBUG_ASSERT(dec <= TIME_SECOND_PART_DIGITS); + zero_point= sec_part_shift( + ((TIME_MAX_VALUE_SECONDS+1LL)*TIME_SECOND_PART_FACTOR), dec); + } + enum ha_base_keytype key_type() const { return HA_KEYTYPE_BINARY; } + uint decimals() const { return dec; } + int store_decimal(const my_decimal *d); + longlong val_int(void); + double val_real(void); + String *val_str(String*,String *); + int reset(void); + bool get_date(MYSQL_TIME *ltime, ulonglong fuzzydate); + bool send_binary(Protocol *protocol); + int cmp(const uchar *,const uchar *); + void sort_string(uchar *buff,uint length); + uint32 pack_length() const; + void sql_type(String &str) const; + void make_field(Send_field *); + uint size_of() const { return sizeof(*this); } +}; + +class Field_datetime :public Field_temporal { + void store_TIME(MYSQL_TIME *ltime); +public: + Field_datetime(uchar *ptr_arg, uint length_arg, uchar *null_ptr_arg, + uchar null_bit_arg, enum utype unireg_check_arg, + const char *field_name_arg, CHARSET_INFO *cs) + :Field_temporal(ptr_arg, length_arg, null_ptr_arg, null_bit_arg, + unireg_check_arg, field_name_arg, cs) + {} + enum_field_types type() const { return MYSQL_TYPE_DATETIME;} + enum ha_base_keytype key_type() const { return HA_KEYTYPE_ULONGLONG; } + uint decimals() const { return 0; } + double val_real(void); + longlong val_int(void); + String *val_str(String*,String *); + bool send_binary(Protocol *protocol); + int cmp(const uchar *,const uchar *); + void sort_string(uchar *buff,uint length); + uint32 pack_length() const { return 8; } + void sql_type(String &str) const; + bool zero_pack() const { return 1; } + bool get_date(MYSQL_TIME *ltime, ulonglong fuzzydate); + uchar *pack(uchar* to, const uchar *from, + uint max_length __attribute__((unused))) + { + return pack_int64(to, from); + } + const uchar *unpack(uchar* to, const uchar *from, const uchar *from_end, + uint param_data __attribute__((unused))) + { + return unpack_int64(to, from, from_end); + } +}; + + +class Field_datetime_hires :public Field_datetime { + void store_TIME(MYSQL_TIME *ltime); + uint dec; +public: + Field_datetime_hires(uchar *ptr_arg, uchar *null_ptr_arg, + uchar null_bit_arg, enum utype unireg_check_arg, + const char *field_name_arg, uint dec_arg, + CHARSET_INFO *cs) + :Field_datetime(ptr_arg, MAX_DATETIME_WIDTH + dec_arg + 1, + null_ptr_arg, null_bit_arg, unireg_check_arg, + field_name_arg, cs), dec(dec_arg) + { + DBUG_ASSERT(dec); + DBUG_ASSERT(dec <= TIME_SECOND_PART_DIGITS); + } + enum ha_base_keytype key_type() const { return HA_KEYTYPE_BINARY; } + uint decimals() const { return dec; } + void make_field(Send_field *field); + int store_decimal(const my_decimal *d); + double val_real(void); + longlong val_int(void); + String *val_str(String*,String *); + bool send_binary(Protocol *protocol); + int cmp(const uchar *,const uchar *); + void sort_string(uchar *buff,uint length); + uint32 pack_length() const; + void sql_type(String &str) const; + bool get_date(MYSQL_TIME *ltime, ulonglong fuzzydate); + uchar *pack(uchar *to, const uchar *from, uint max_length) + { return Field::pack(to, from, max_length); } + const uchar *unpack(uchar* to, const uchar *from, const uchar *from_end, + uint param_data) + { return Field::unpack(to, from, from_end, param_data); } + uint size_of() const { return sizeof(*this); } +}; + +static inline Field_timestamp * +new_Field_timestamp(uchar *ptr, uchar *null_ptr, uchar null_bit, + enum Field::utype unireg_check, const char *field_name, + TABLE_SHARE *share, uint dec, CHARSET_INFO *cs) +{ + if (dec==0) + return new Field_timestamp(ptr, MAX_DATETIME_WIDTH, null_ptr, null_bit, + unireg_check, field_name, share, cs); + if (dec == NOT_FIXED_DEC) + dec= MAX_DATETIME_PRECISION; + return new Field_timestamp_hires(ptr, null_ptr, null_bit, unireg_check, + field_name, share, dec, cs); +} + +static inline Field_time * +new_Field_time(uchar *ptr, uchar *null_ptr, uchar null_bit, + enum Field::utype unireg_check, const char *field_name, + uint dec, CHARSET_INFO *cs) +{ + if (dec == 0) + return new Field_time(ptr, MIN_TIME_WIDTH, null_ptr, null_bit, + unireg_check, field_name, cs); + if (dec == NOT_FIXED_DEC) + dec= MAX_DATETIME_PRECISION; + return new Field_time_hires(ptr, null_ptr, null_bit, + unireg_check, field_name, dec, cs); +} + +static inline Field_datetime * +new_Field_datetime(uchar *ptr, uchar *null_ptr, uchar null_bit, + enum Field::utype unireg_check, + const char *field_name, uint dec, CHARSET_INFO *cs) +{ + if (dec == 0) + return new Field_datetime(ptr, MAX_DATETIME_WIDTH, null_ptr, null_bit, + unireg_check, field_name, cs); + if (dec == NOT_FIXED_DEC) + dec= MAX_DATETIME_PRECISION; + return new Field_datetime_hires(ptr, null_ptr, null_bit, + unireg_check, field_name, dec, cs); +} + +class Field_string :public Field_longstr { +public: + bool can_alter_field_type; + Field_string(uchar *ptr_arg, uint32 len_arg,uchar *null_ptr_arg, + uchar null_bit_arg, + enum utype unireg_check_arg, const char *field_name_arg, + CHARSET_INFO *cs) + :Field_longstr(ptr_arg, len_arg, null_ptr_arg, null_bit_arg, + unireg_check_arg, field_name_arg, cs), + can_alter_field_type(1) {}; + Field_string(uint32 len_arg,bool maybe_null_arg, const char *field_name_arg, + CHARSET_INFO *cs) + :Field_longstr((uchar*) 0, len_arg, maybe_null_arg ? (uchar*) "": 0, 0, + NONE, field_name_arg, cs), + can_alter_field_type(1) {}; + + enum_field_types type() const + { + return ((can_alter_field_type && orig_table && + orig_table->s->db_create_options & HA_OPTION_PACK_RECORD && + field_length >= 4) && + orig_table->s->frm_version < FRM_VER_TRUE_VARCHAR ? + MYSQL_TYPE_VAR_STRING : MYSQL_TYPE_STRING); + } + bool match_collation_to_optimize_range() const { return TRUE; } + enum ha_base_keytype key_type() const + { return binary() ? HA_KEYTYPE_BINARY : HA_KEYTYPE_TEXT; } + bool zero_pack() const { return 0; } + int reset(void) + { + charset()->cset->fill(charset(),(char*) ptr, field_length, + (has_charset() ? ' ' : 0)); + return 0; + } + int store(const char *to,uint length,CHARSET_INFO *charset); + int store(longlong nr, bool unsigned_val); + int store(double nr) { return Field_str::store(nr); } /* QQ: To be deleted */ + double val_real(void); + longlong val_int(void); + String *val_str(String*,String *); + my_decimal *val_decimal(my_decimal *); + int cmp(const uchar *,const uchar *); + void sort_string(uchar *buff,uint length); + void sql_type(String &str) const; + virtual uchar *pack(uchar *to, const uchar *from, + uint max_length); + virtual const uchar *unpack(uchar* to, const uchar *from, + const uchar *from_end,uint param_data); + uint pack_length_from_metadata(uint field_metadata) + { + DBUG_PRINT("debug", ("field_metadata: 0x%04x", field_metadata)); + if (field_metadata == 0) + return row_pack_length(); + return (((field_metadata >> 4) & 0x300) ^ 0x300) + (field_metadata & 0x00ff); + } + bool compatible_field_size(uint field_metadata, Relay_log_info *rli, + uint16 mflags, int *order_var); + uint row_pack_length() const { return field_length; } + int pack_cmp(const uchar *a,const uchar *b,uint key_length, + bool insert_or_update); + int pack_cmp(const uchar *b,uint key_length,bool insert_or_update); + uint packed_col_length(const uchar *to, uint length); + uint max_packed_col_length(uint max_length); + uint size_of() const { return sizeof(*this); } + enum_field_types real_type() const { return MYSQL_TYPE_STRING; } + bool has_charset(void) const + { return charset() == &my_charset_bin ? FALSE : TRUE; } + Field *new_field(MEM_ROOT *root, TABLE *new_table, bool keep_type); + virtual uint get_key_image(uchar *buff,uint length, imagetype type); +private: + int do_save_field_metadata(uchar *first_byte); +}; + + +class Field_varstring :public Field_longstr { +public: + /* + The maximum space available in a Field_varstring, in bytes. See + length_bytes. + */ + static const uint MAX_SIZE; + /* Store number of bytes used to store length (1 or 2) */ + uint32 length_bytes; + Field_varstring(uchar *ptr_arg, + uint32 len_arg, uint length_bytes_arg, + uchar *null_ptr_arg, uchar null_bit_arg, + enum utype unireg_check_arg, const char *field_name_arg, + TABLE_SHARE *share, CHARSET_INFO *cs) + :Field_longstr(ptr_arg, len_arg, null_ptr_arg, null_bit_arg, + unireg_check_arg, field_name_arg, cs), + length_bytes(length_bytes_arg) + { + share->varchar_fields++; + } + Field_varstring(uint32 len_arg,bool maybe_null_arg, + const char *field_name_arg, + TABLE_SHARE *share, CHARSET_INFO *cs) + :Field_longstr((uchar*) 0,len_arg, maybe_null_arg ? (uchar*) "": 0, 0, + NONE, field_name_arg, cs), + length_bytes(len_arg < 256 ? 1 :2) + { + share->varchar_fields++; + } + + enum_field_types type() const { return MYSQL_TYPE_VARCHAR; } + bool match_collation_to_optimize_range() const { return TRUE; } + enum ha_base_keytype key_type() const; + uint row_pack_length() const { return field_length; } + bool zero_pack() const { return 0; } + int reset(void) { bzero(ptr,field_length+length_bytes); return 0; } + uint32 pack_length() const { return (uint32) field_length+length_bytes; } + uint32 key_length() const { return (uint32) field_length; } + uint32 sort_length() const + { + return (uint32) field_length + (field_charset == &my_charset_bin ? + length_bytes : 0); + } + int store(const char *to,uint length,CHARSET_INFO *charset); + int store(longlong nr, bool unsigned_val); + int store(double nr) { return Field_str::store(nr); } /* QQ: To be deleted */ + double val_real(void); + longlong val_int(void); + String *val_str(String*,String *); + my_decimal *val_decimal(my_decimal *); + int cmp_max(const uchar *, const uchar *, uint max_length); + int cmp(const uchar *a,const uchar *b) + { + return cmp_max(a, b, ~0L); + } + void sort_string(uchar *buff,uint length); + uint get_key_image(uchar *buff,uint length, imagetype type); + void set_key_image(const uchar *buff,uint length); + void sql_type(String &str) const; + virtual uchar *pack(uchar *to, const uchar *from, uint max_length); + virtual const uchar *unpack(uchar* to, const uchar *from, + const uchar *from_end, uint param_data); + int cmp_binary(const uchar *a,const uchar *b, uint32 max_length=~0L); + int key_cmp(const uchar *,const uchar*); + int key_cmp(const uchar *str, uint length); + uint packed_col_length(const uchar *to, uint length); + uint max_packed_col_length(uint max_length); + uint32 data_length(); + uint size_of() const { return sizeof(*this); } + enum_field_types real_type() const { return MYSQL_TYPE_VARCHAR; } + bool has_charset(void) const + { return charset() == &my_charset_bin ? FALSE : TRUE; } + Field *new_field(MEM_ROOT *root, TABLE *new_table, bool keep_type); + Field *new_key_field(MEM_ROOT *root, TABLE *new_table, + uchar *new_ptr, uchar *new_null_ptr, + uint new_null_bit); + uint is_equal(Create_field *new_field); + void hash(ulong *nr, ulong *nr2); +private: + int do_save_field_metadata(uchar *first_byte); +}; + + +class Field_blob :public Field_longstr { +protected: + /** + The number of bytes used to represent the length of the blob. + */ + uint packlength; + + /** + The 'value'-object is a cache fronting the storage engine. + */ + String value; + +public: + Field_blob(uchar *ptr_arg, uchar *null_ptr_arg, uchar null_bit_arg, + enum utype unireg_check_arg, const char *field_name_arg, + TABLE_SHARE *share, uint blob_pack_length, CHARSET_INFO *cs); + Field_blob(uint32 len_arg,bool maybe_null_arg, const char *field_name_arg, + CHARSET_INFO *cs) + :Field_longstr((uchar*) 0, len_arg, maybe_null_arg ? (uchar*) "": 0, 0, + NONE, field_name_arg, cs), + packlength(4) + { + flags|= BLOB_FLAG; + } + Field_blob(uint32 len_arg,bool maybe_null_arg, const char *field_name_arg, + CHARSET_INFO *cs, bool set_packlength) + :Field_longstr((uchar*) 0,len_arg, maybe_null_arg ? (uchar*) "": 0, 0, + NONE, field_name_arg, cs) + { + flags|= BLOB_FLAG; + packlength= 4; + if (set_packlength) + { + packlength= len_arg <= 255 ? 1 : + len_arg <= 65535 ? 2 : + len_arg <= 16777215 ? 3 : 4; + } + } + Field_blob(uint32 packlength_arg) + :Field_longstr((uchar*) 0, 0, (uchar*) "", 0, NONE, "temp", system_charset_info), + packlength(packlength_arg) {} + enum_field_types type() const { return MYSQL_TYPE_BLOB;} + bool match_collation_to_optimize_range() const { return TRUE; } + enum ha_base_keytype key_type() const + { return binary() ? HA_KEYTYPE_VARBINARY2 : HA_KEYTYPE_VARTEXT2; } + int store(const char *to,uint length,CHARSET_INFO *charset); + int store(double nr); + int store(longlong nr, bool unsigned_val); + double val_real(void); + longlong val_int(void); + String *val_str(String*,String *); + my_decimal *val_decimal(my_decimal *); + int cmp_max(const uchar *, const uchar *, uint max_length); + int cmp(const uchar *a,const uchar *b) + { return cmp_max(a, b, ~0L); } + int cmp(const uchar *a, uint32 a_length, const uchar *b, uint32 b_length); + int cmp_binary(const uchar *a,const uchar *b, uint32 max_length=~0L); + int key_cmp(const uchar *,const uchar*); + int key_cmp(const uchar *str, uint length); + uint32 key_length() const { return 0; } + void sort_string(uchar *buff,uint length); + uint32 pack_length() const + { return (uint32) (packlength+table->s->blob_ptr_size); } + + /** + Return the packed length without the pointer size added. + + This is used to determine the size of the actual data in the row + buffer. + + @returns The length of the raw data itself without the pointer. + */ + uint32 pack_length_no_ptr() const + { return (uint32) (packlength); } + uint row_pack_length() const { return pack_length_no_ptr(); } + uint32 sort_length() const; + virtual uint32 max_data_length() const + { + return (uint32) (((ulonglong) 1 << (packlength*8)) -1); + } + int reset(void) { bzero(ptr, packlength+sizeof(uchar*)); return 0; } + void reset_fields() { bzero((uchar*) &value,sizeof(value)); } + uint32 get_field_buffer_size(void) { return value.alloced_length(); } + void store_length(uchar *i_ptr, uint i_packlength, uint32 i_number); + inline void store_length(uint32 number) + { + store_length(ptr, packlength, number); + } + inline uint32 get_length(uint row_offset= 0) + { return get_length(ptr+row_offset, this->packlength); } + uint32 get_length(const uchar *ptr, uint packlength); + uint32 get_length(const uchar *ptr_arg) + { return get_length(ptr_arg, this->packlength); } + inline void get_ptr(uchar **str) + { + memcpy(str, ptr+packlength, sizeof(uchar*)); + } + inline void get_ptr(uchar **str, uint row_offset) + { + memcpy(str, ptr+packlength+row_offset, sizeof(char*)); + } + inline void set_ptr(uchar *length, uchar *data) + { + memcpy(ptr,length,packlength); + memcpy(ptr+packlength, &data,sizeof(char*)); + } + void set_ptr_offset(my_ptrdiff_t ptr_diff, uint32 length, uchar *data) + { + uchar *ptr_ofs= ADD_TO_PTR(ptr,ptr_diff,uchar*); + store_length(ptr_ofs, packlength, length); + memcpy(ptr_ofs+packlength, &data, sizeof(char*)); + } + inline void set_ptr(uint32 length, uchar *data) + { + set_ptr_offset(0, length, data); + } + int copy_value(Field_blob *from); + uint get_key_image(uchar *buff,uint length, imagetype type); + void set_key_image(const uchar *buff,uint length); + void sql_type(String &str) const; + inline bool copy() + { + uchar *tmp; + get_ptr(&tmp); + if (value.copy((char*) tmp, get_length(), charset())) + { + Field_blob::reset(); + return 1; + } + tmp=(uchar*) value.ptr(); + memcpy(ptr+packlength, &tmp, sizeof(char*)); + return 0; + } + virtual uchar *pack(uchar *to, const uchar *from, uint max_length); + virtual const uchar *unpack(uchar *to, const uchar *from, + const uchar *from_end, uint param_data); + uint packed_col_length(const uchar *col_ptr, uint length); + uint max_packed_col_length(uint max_length); + void free() { value.free(); } + inline void clear_temporary() { bzero((uchar*) &value,sizeof(value)); } + friend int field_conv(Field *to,Field *from); + uint size_of() const { return sizeof(*this); } + bool has_charset(void) const + { return charset() == &my_charset_bin ? FALSE : TRUE; } + uint32 max_display_length(); + uint32 char_length(); + uint is_equal(Create_field *new_field); + inline bool in_read_set() { return bitmap_is_set(table->read_set, field_index); } + inline bool in_write_set() { return bitmap_is_set(table->write_set, field_index); } +private: + int do_save_field_metadata(uchar *first_byte); +}; + + +#ifdef HAVE_SPATIAL +class Field_geom :public Field_blob { +public: + enum geometry_type geom_type; + + Field_geom(uchar *ptr_arg, uchar *null_ptr_arg, uint null_bit_arg, + enum utype unireg_check_arg, const char *field_name_arg, + TABLE_SHARE *share, uint blob_pack_length, + enum geometry_type geom_type_arg) + :Field_blob(ptr_arg, null_ptr_arg, null_bit_arg, unireg_check_arg, + field_name_arg, share, blob_pack_length, &my_charset_bin) + { geom_type= geom_type_arg; } + Field_geom(uint32 len_arg,bool maybe_null_arg, const char *field_name_arg, + TABLE_SHARE *share, enum geometry_type geom_type_arg) + :Field_blob(len_arg, maybe_null_arg, field_name_arg, &my_charset_bin) + { geom_type= geom_type_arg; } + enum ha_base_keytype key_type() const { return HA_KEYTYPE_VARBINARY2; } + enum_field_types type() const { return MYSQL_TYPE_GEOMETRY; } + bool match_collation_to_optimize_range() const { return FALSE; } + void sql_type(String &str) const; + int store(const char *to, uint length, CHARSET_INFO *charset); + int store(double nr); + int store(longlong nr, bool unsigned_val); + int store_decimal(const my_decimal *); + uint size_of() const { return sizeof(*this); } + /** + Key length is provided only to support hash joins. (compared byte for byte) + Ex: SELECT .. FROM t1,t2 WHERE t1.field_geom1=t2.field_geom2. + + The comparison is not very relevant, as identical geometry might be + represented differently, but we need to support it either way. + */ + uint32 key_length() const { return packlength; } + + /** + Non-nullable GEOMETRY types cannot have defaults, + but the underlying blob must still be reset. + */ + int reset(void) { return Field_blob::reset() || !maybe_null(); } + + geometry_type get_geometry_type() { return geom_type; }; + static geometry_type geometry_type_merge(geometry_type, geometry_type); +}; +#endif /*HAVE_SPATIAL*/ + + +class Field_enum :public Field_str { +protected: + uint packlength; +public: + TYPELIB *typelib; + Field_enum(uchar *ptr_arg, uint32 len_arg, uchar *null_ptr_arg, + uchar null_bit_arg, + enum utype unireg_check_arg, const char *field_name_arg, + uint packlength_arg, + TYPELIB *typelib_arg, + CHARSET_INFO *charset_arg) + :Field_str(ptr_arg, len_arg, null_ptr_arg, null_bit_arg, + unireg_check_arg, field_name_arg, charset_arg), + packlength(packlength_arg),typelib(typelib_arg) + { + flags|=ENUM_FLAG; + } + Field *new_field(MEM_ROOT *root, TABLE *new_table, bool keep_type); + enum_field_types type() const { return MYSQL_TYPE_STRING; } + bool match_collation_to_optimize_range() const { return FALSE; } + enum Item_result cmp_type () const { return INT_RESULT; } + enum ha_base_keytype key_type() const; + int store(const char *to,uint length,CHARSET_INFO *charset); + int store(double nr); + int store(longlong nr, bool unsigned_val); + double val_real(void); + longlong val_int(void); + String *val_str(String*,String *); + int cmp(const uchar *,const uchar *); + void sort_string(uchar *buff,uint length); + uint32 pack_length() const { return (uint32) packlength; } + void store_type(ulonglong value); + void sql_type(String &str) const; + uint size_of() const { return sizeof(*this); } + enum_field_types real_type() const { return MYSQL_TYPE_ENUM; } + uint pack_length_from_metadata(uint field_metadata) + { return (field_metadata & 0x00ff); } + uint row_pack_length() const { return pack_length(); } + virtual bool zero_pack() const { return 0; } + bool optimize_range(uint idx, uint part) { return 0; } + bool eq_def(Field *field); + bool has_charset(void) const { return TRUE; } + /* enum and set are sorted as integers */ + CHARSET_INFO *sort_charset(void) const { return &my_charset_bin; } + uint decimals() const { return 0; } + + virtual uchar *pack(uchar *to, const uchar *from, uint max_length); + virtual const uchar *unpack(uchar *to, const uchar *from, + const uchar *from_end, uint param_data); + +private: + int do_save_field_metadata(uchar *first_byte); + uint is_equal(Create_field *new_field); +}; + + +class Field_set :public Field_enum { +public: + Field_set(uchar *ptr_arg, uint32 len_arg, uchar *null_ptr_arg, + uchar null_bit_arg, + enum utype unireg_check_arg, const char *field_name_arg, + uint32 packlength_arg, + TYPELIB *typelib_arg, CHARSET_INFO *charset_arg) + :Field_enum(ptr_arg, len_arg, null_ptr_arg, null_bit_arg, + unireg_check_arg, field_name_arg, + packlength_arg, + typelib_arg,charset_arg), + empty_set_string("", 0, charset_arg) + { + flags=(flags & ~ENUM_FLAG) | SET_FLAG; + } + int store(const char *to,uint length,CHARSET_INFO *charset); + int store(double nr) { return Field_set::store((longlong) nr, FALSE); } + int store(longlong nr, bool unsigned_val); + + virtual bool zero_pack() const { return 1; } + String *val_str(String*,String *); + void sql_type(String &str) const; + uint size_of() const { return sizeof(*this); } + enum_field_types real_type() const { return MYSQL_TYPE_SET; } + bool has_charset(void) const { return TRUE; } +private: + const String empty_set_string; +}; + + +/* + Note: + To use Field_bit::cmp_binary() you need to copy the bits stored in + the beginning of the record (the NULL bytes) to each memory you + want to compare (where the arguments point). + + This is the reason: + - Field_bit::cmp_binary() is only implemented in the base class + (Field::cmp_binary()). + - Field::cmp_binary() currenly use pack_length() to calculate how + long the data is. + - pack_length() includes size of the bits stored in the NULL bytes + of the record. +*/ +class Field_bit :public Field { +public: + uchar *bit_ptr; // position in record where 'uneven' bits store + uchar bit_ofs; // offset to 'uneven' high bits + uint bit_len; // number of 'uneven' high bits + uint bytes_in_rec; + Field_bit(uchar *ptr_arg, uint32 len_arg, uchar *null_ptr_arg, + uchar null_bit_arg, uchar *bit_ptr_arg, uchar bit_ofs_arg, + enum utype unireg_check_arg, const char *field_name_arg); + enum_field_types type() const { return MYSQL_TYPE_BIT; } + enum ha_base_keytype key_type() const { return HA_KEYTYPE_BIT; } + uint32 key_length() const { return (uint32) (field_length + 7) / 8; } + uint32 max_data_length() const { return (field_length + 7) / 8; } + uint32 max_display_length() { return field_length; } + uint size_of() const { return sizeof(*this); } + Item_result result_type () const { return INT_RESULT; } + int reset(void) { + bzero(ptr, bytes_in_rec); + if (bit_ptr && (bit_len > 0)) // reset odd bits among null bits + clr_rec_bits(bit_ptr, bit_ofs, bit_len); + return 0; + } + int store(const char *to, uint length, CHARSET_INFO *charset); + int store(double nr); + int store(longlong nr, bool unsigned_val); + int store_decimal(const my_decimal *); + double val_real(void); + longlong val_int(void); + String *val_str(String*, String *); + virtual bool str_needs_quotes() { return TRUE; } + my_decimal *val_decimal(my_decimal *); + int cmp(const uchar *a, const uchar *b) + { + DBUG_ASSERT(ptr == a || ptr == b); + if (ptr == a) + return Field_bit::key_cmp(b, bytes_in_rec+test(bit_len)); + else + return Field_bit::key_cmp(a, bytes_in_rec+test(bit_len)) * -1; + } + int cmp_binary_offset(uint row_offset) + { return cmp_offset(row_offset); } + int cmp_max(const uchar *a, const uchar *b, uint max_length); + int key_cmp(const uchar *a, const uchar *b) + { return cmp_binary((uchar *) a, (uchar *) b); } + int key_cmp(const uchar *str, uint length); + int cmp_offset(uint row_offset); + void get_image(uchar *buff, uint length, CHARSET_INFO *cs) + { get_key_image(buff, length, itRAW); } + void set_image(const uchar *buff,uint length, CHARSET_INFO *cs) + { Field_bit::store((char *) buff, length, cs); } + uint get_key_image(uchar *buff, uint length, imagetype type); + void set_key_image(const uchar *buff, uint length) + { Field_bit::store((char*) buff, length, &my_charset_bin); } + void sort_string(uchar *buff, uint length) + { get_key_image(buff, length, itRAW); } + uint32 pack_length() const { return (uint32) (field_length + 7) / 8; } + uint32 pack_length_in_rec() const { return bytes_in_rec; } + uint pack_length_from_metadata(uint field_metadata); + uint row_pack_length() const + { return (bytes_in_rec + ((bit_len > 0) ? 1 : 0)); } + bool compatible_field_size(uint metadata, Relay_log_info *rli, + uint16 mflags, int *order_var); + void sql_type(String &str) const; + virtual uchar *pack(uchar *to, const uchar *from, uint max_length); + virtual const uchar *unpack(uchar *to, const uchar *from, + const uchar *from_end, uint param_data); + virtual void set_default(); + + Field *new_key_field(MEM_ROOT *root, TABLE *new_table, + uchar *new_ptr, uchar *new_null_ptr, + uint new_null_bit); + void set_bit_ptr(uchar *bit_ptr_arg, uchar bit_ofs_arg) + { + bit_ptr= bit_ptr_arg; + bit_ofs= bit_ofs_arg; + } + bool eq(Field *field) + { + return (Field::eq(field) && + bit_ptr == ((Field_bit *)field)->bit_ptr && + bit_ofs == ((Field_bit *)field)->bit_ofs); + } + uint is_equal(Create_field *new_field); + void move_field_offset(my_ptrdiff_t ptr_diff) + { + Field::move_field_offset(ptr_diff); + bit_ptr= ADD_TO_PTR(bit_ptr, ptr_diff, uchar*); + } + void hash(ulong *nr, ulong *nr2); + +private: + virtual size_t do_last_null_byte() const; + int do_save_field_metadata(uchar *first_byte); +}; + + +/** + BIT field represented as chars for non-MyISAM tables. + + @todo The inheritance relationship is backwards since Field_bit is + an extended version of Field_bit_as_char and not the other way + around. Hence, we should refactor it to fix the hierarchy order. + */ +class Field_bit_as_char: public Field_bit { +public: + Field_bit_as_char(uchar *ptr_arg, uint32 len_arg, uchar *null_ptr_arg, + uchar null_bit_arg, + enum utype unireg_check_arg, const char *field_name_arg); + enum ha_base_keytype key_type() const { return HA_KEYTYPE_BINARY; } + uint size_of() const { return sizeof(*this); } + int store(const char *to, uint length, CHARSET_INFO *charset); + int store(double nr) { return Field_bit::store(nr); } + int store(longlong nr, bool unsigned_val) + { return Field_bit::store(nr, unsigned_val); } + void sql_type(String &str) const; +}; + + +/* + Create field class for CREATE TABLE +*/ + +class Create_field :public Sql_alloc +{ +public: + const char *field_name; + const char *change; // If done with alter table + const char *after; // Put column after this one + LEX_STRING comment; // Comment for field + Item *def; // Default value + enum enum_field_types sql_type; + /* + At various stages in execution this can be length of field in bytes or + max number of characters. + */ + ulong length; + /* + The value of `length' as set by parser: is the number of characters + for most of the types, or of bytes for BLOBs or numeric types. + */ + uint32 char_length; + uint decimals, flags, pack_length, key_length; + Field::utype unireg_check; + TYPELIB *interval; // Which interval to use + TYPELIB *save_interval; // Temporary copy for the above + // Used only for UCS2 intervals + List interval_list; + CHARSET_INFO *charset; + Field::geometry_type geom_type; + Field *field; // For alter table + engine_option_value *option_list; + /** structure with parsed options (for comparing fields in ALTER TABLE) */ + ha_field_option_struct *option_struct; + + uint8 row,col,sc_length,interval_id; // For rea_create_table + uint offset,pack_flag; + + /* + This is additinal data provided for any computed(virtual) field. + In particular it includes a pointer to the item by which this field + can be computed from other fields. + */ + Virtual_column_info *vcol_info; + /* + Flag indicating that the field is physically stored in tables + rather than just computed from other fields. + As of now, FALSE can be set only for computed virtual columns. + */ + bool stored_in_db; + + Create_field() :after(0), option_list(NULL), option_struct(NULL) + {} + Create_field(Field *field, Field *orig_field); + /* Used to make a clone of this object for ALTER/CREATE TABLE */ + Create_field *clone(MEM_ROOT *mem_root) const; + void create_length_to_internal_length(void); + + /* Init for a tmp table field. To be extended if need be. */ + void init_for_tmp_table(enum_field_types sql_type_arg, + uint32 max_length, uint32 decimals, + bool maybe_null, bool is_unsigned, + uint pack_length = ~0U); + + bool init(THD *thd, char *field_name, enum_field_types type, char *length, + char *decimals, uint type_modifier, Item *default_value, + Item *on_update_value, LEX_STRING *comment, char *change, + List *interval_list, CHARSET_INFO *cs, + uint uint_geom_type, Virtual_column_info *vcol_info, + engine_option_value *option_list); + + bool field_flags_are_binary() + { + return (flags & (BINCMP_FLAG | BINARY_FLAG)) != 0; + } + uint virtual_col_expr_maxlen() + { + return 255 - FRM_VCOL_HEADER_SIZE(interval != NULL); + } +private: + const String empty_set_string; +}; + + +/* + A class for sending info to the client +*/ + +class Send_field :public Sql_alloc { + public: + const char *db_name; + const char *table_name,*org_table_name; + const char *col_name,*org_col_name; + ulong length; + uint charsetnr, flags, decimals; + enum_field_types type; + Send_field() {} +}; + + +/* + A class for quick copying data to fields +*/ + +class Copy_field :public Sql_alloc { + /** + Convenience definition of a copy function returned by + get_copy_func. + */ + typedef void Copy_func(Copy_field*); + Copy_func *get_copy_func(Field *to, Field *from); +public: + uchar *from_ptr,*to_ptr; + uchar *from_null_ptr,*to_null_ptr; + bool *null_row; + uint from_bit,to_bit; + /** + Number of bytes in the fields pointed to by 'from_ptr' and + 'to_ptr'. Usually this is the number of bytes that are copied from + 'from_ptr' to 'to_ptr'. + + For variable-length fields (VARCHAR), the first byte(s) describe + the actual length of the text. For VARCHARs with length + < 256 there is 1 length byte + >= 256 there is 2 length bytes + Thus, if from_field is VARCHAR(10), from_length (and in most cases + to_length) is 11. For VARCHAR(1024), the length is 1026. @see + Field_varstring::length_bytes + + Note that for VARCHARs, do_copy() will be do_varstring*() which + only copies the length-bytes (1 or 2) + the actual length of the + text instead of from/to_length bytes. @see get_copy_func() + */ + uint from_length,to_length; + Field *from_field,*to_field; + String tmp; // For items + + Copy_field() {} + ~Copy_field() {} + void set(Field *to,Field *from,bool save); // Field to field + void set(uchar *to,Field *from); // Field to string + void (*do_copy)(Copy_field *); + void (*do_copy2)(Copy_field *); // Used to handle null values +}; + + +Field *make_field(TABLE_SHARE *share, uchar *ptr, uint32 field_length, + uchar *null_pos, uchar null_bit, + uint pack_flag, enum_field_types field_type, + CHARSET_INFO *cs, + Field::geometry_type geom_type, + Field::utype unireg_check, + TYPELIB *interval, const char *field_name); +uint pack_length_to_packflag(uint type); +enum_field_types get_blob_type_from_length(ulong length); +uint32 calc_pack_length(enum_field_types type,uint32 length); +int set_field_to_null(Field *field); +int set_field_to_null_with_conversions(Field *field, bool no_conversions); + +/* + The following are for the interface with the .frm file +*/ + +#define FIELDFLAG_DECIMAL 1 +#define FIELDFLAG_BINARY 1 // Shares same flag +#define FIELDFLAG_NUMBER 2 +#define FIELDFLAG_ZEROFILL 4 +#define FIELDFLAG_PACK 120 // Bits used for packing +#define FIELDFLAG_INTERVAL 256 // mangled with decimals! +#define FIELDFLAG_BITFIELD 512 // mangled with decimals! +#define FIELDFLAG_BLOB 1024 // mangled with decimals! +#define FIELDFLAG_GEOM 2048 // mangled with decimals! + +#define FIELDFLAG_TREAT_BIT_AS_CHAR 4096 /* use Field_bit_as_char */ + +#define FIELDFLAG_LEFT_FULLSCREEN 8192 +#define FIELDFLAG_RIGHT_FULLSCREEN 16384 +#define FIELDFLAG_FORMAT_NUMBER 16384 // predit: ###,,## in output +#define FIELDFLAG_NO_DEFAULT 16384 /* sql */ +#define FIELDFLAG_SUM ((uint) 32768)// predit: +#fieldflag +#define FIELDFLAG_MAYBE_NULL ((uint) 32768)// sql +#define FIELDFLAG_HEX_ESCAPE ((uint) 0x10000) +#define FIELDFLAG_PACK_SHIFT 3 +#define FIELDFLAG_DEC_SHIFT 8 +#define FIELDFLAG_MAX_DEC 31 +#define FIELDFLAG_NUM_SCREEN_TYPE 0x7F01 +#define FIELDFLAG_ALFA_SCREEN_TYPE 0x7800 + +#define MTYP_TYPENR(type) (type & 127) /* Remove bits from type */ + +#define f_is_dec(x) ((x) & FIELDFLAG_DECIMAL) +#define f_is_num(x) ((x) & FIELDFLAG_NUMBER) +#define f_is_zerofill(x) ((x) & FIELDFLAG_ZEROFILL) +#define f_is_packed(x) ((x) & FIELDFLAG_PACK) +#define f_packtype(x) (((x) >> FIELDFLAG_PACK_SHIFT) & 15) +#define f_decimals(x) ((uint8) (((x) >> FIELDFLAG_DEC_SHIFT) & FIELDFLAG_MAX_DEC)) +#define f_is_alpha(x) (!f_is_num(x)) +#define f_is_binary(x) ((x) & FIELDFLAG_BINARY) // 4.0- compatibility +#define f_is_enum(x) (((x) & (FIELDFLAG_INTERVAL | FIELDFLAG_NUMBER)) == FIELDFLAG_INTERVAL) +#define f_is_bitfield(x) (((x) & (FIELDFLAG_BITFIELD | FIELDFLAG_NUMBER)) == FIELDFLAG_BITFIELD) +#define f_is_blob(x) (((x) & (FIELDFLAG_BLOB | FIELDFLAG_NUMBER)) == FIELDFLAG_BLOB) +#define f_is_geom(x) (((x) & (FIELDFLAG_GEOM | FIELDFLAG_NUMBER)) == FIELDFLAG_GEOM) +#define f_is_equ(x) ((x) & (1+2+FIELDFLAG_PACK+31*256)) +#define f_settype(x) (((int) x) << FIELDFLAG_PACK_SHIFT) +#define f_maybe_null(x) (x & FIELDFLAG_MAYBE_NULL) +#define f_no_default(x) (x & FIELDFLAG_NO_DEFAULT) +#define f_bit_as_char(x) ((x) & FIELDFLAG_TREAT_BIT_AS_CHAR) +#define f_is_hex_escape(x) ((x) & FIELDFLAG_HEX_ESCAPE) + +#endif /* FIELD_INCLUDED */ diff --git a/database/include/mysql/private/filesort.h b/database/include/mysql/private/filesort.h new file mode 100644 index 0000000..d72f303 --- /dev/null +++ b/database/include/mysql/private/filesort.h @@ -0,0 +1,38 @@ +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef FILESORT_INCLUDED +#define FILESORT_INCLUDED + +class SQL_SELECT; + +#include "my_global.h" /* uint, uchar */ +#include "my_base.h" /* ha_rows */ + +class SQL_SELECT; +class THD; +struct TABLE; +typedef struct st_sort_field SORT_FIELD; + +ha_rows filesort(THD *thd, TABLE *table, st_sort_field *sortorder, + uint s_length, SQL_SELECT *select, + ha_rows max_rows, bool sort_positions, + ha_rows *examined_rows); +void filesort_free_buffers(TABLE *table, bool full); +double get_merge_many_buffs_cost(uint *buffer, uint last_n_elems, + int elem_size); +void change_double_for_sort(double nr,uchar *to); + +#endif /* FILESORT_INCLUDED */ diff --git a/database/include/mysql/private/frm_crypt.h b/database/include/mysql/private/frm_crypt.h new file mode 100644 index 0000000..d229cff --- /dev/null +++ b/database/include/mysql/private/frm_crypt.h @@ -0,0 +1,23 @@ +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef FRM_CRYPT_INCLUDED +#define FRM_CRYPT_INCLUDED + +class SQL_CRYPT; + +SQL_CRYPT *get_crypt_for_frm(void); + +#endif /* FRM_CRYPT_INCLUDED */ diff --git a/database/include/mysql/private/ft_global.h b/database/include/mysql/private/ft_global.h new file mode 100644 index 0000000..1fb5621 --- /dev/null +++ b/database/include/mysql/private/ft_global.h @@ -0,0 +1,90 @@ +/* Copyright (c) 2000-2005, 2007 MySQL AB, 2009 Sun Microsystems, Inc. + Use is subject to license terms. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* Written by Sergei A. Golubchik, who has a shared copyright to this code */ + +/* some definitions for full-text indices */ + +/* #include "myisam.h" */ + +#ifndef _ft_global_h +#define _ft_global_h +#ifdef __cplusplus +extern "C" { +#endif + +#include + +#define HA_FT_MAXBYTELEN 254 +#define HA_FT_MAXCHARLEN (HA_FT_MAXBYTELEN/3) + +#define DEFAULT_FTB_SYNTAX "+ -><()~*:\"\"&|" + +typedef struct st_ft_info FT_INFO; +struct _ft_vft +{ + int (*read_next)(FT_INFO *, char *); + float (*find_relevance)(FT_INFO *, uchar *, uint); + void (*close_search)(FT_INFO *); + float (*get_relevance)(FT_INFO *); + void (*reinit_search)(FT_INFO *); +}; + +#ifndef FT_CORE +struct st_ft_info +{ + struct _ft_vft *please; /* INTERCAL style :-) */ +}; +#endif + +extern const char *ft_stopword_file; +extern const char *ft_precompiled_stopwords[]; + +extern ulong ft_min_word_len; +extern ulong ft_max_word_len; +extern ulong ft_query_expansion_limit; +extern const char *ft_boolean_syntax; +extern struct st_mysql_ftparser ft_default_parser; + +int ft_init_stopwords(void); +void ft_free_stopwords(void); + +#define FT_NL 0 +#define FT_BOOL 1 +#define FT_SORTED 2 +#define FT_EXPAND 4 /* query expansion */ + +FT_INFO *ft_init_search(uint,void *, uint, uchar *, size_t, + CHARSET_INFO *, uchar *); +my_bool ft_boolean_check_syntax_string(const uchar *); + +/* Internal symbols for fulltext between maria and MyISAM */ + +#define HA_FT_WTYPE HA_KEYTYPE_FLOAT +#define HA_FT_WLEN 4 +#define FT_SEGS 2 + +#define ft_sintXkorr(A) mi_sint4korr(A) +#define ft_intXstore(T,A) mi_int4store(T,A) + +extern const HA_KEYSEG ft_keysegs[FT_SEGS]; + +typedef union {int32 i; float f;} FT_WEIGTH; + +#ifdef __cplusplus +} +#endif +#endif diff --git a/database/include/mysql/private/gcalc_slicescan.h b/database/include/mysql/private/gcalc_slicescan.h new file mode 100644 index 0000000..7b70388 --- /dev/null +++ b/database/include/mysql/private/gcalc_slicescan.h @@ -0,0 +1,600 @@ +/* Copyright (c) 2000, 2010 Oracle and/or its affiliates. All rights reserved. + Copyright (C) 2011 Monty Program Ab. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + + +#ifndef GCALC_SLICESCAN_INCLUDED +#define GCALC_SLICESCAN_INCLUDED + +#ifndef DBUG_OFF +// #define GCALC_CHECK_WITH_FLOAT +#else +#define GCALC_DBUG_OFF +#endif /*DBUG_OFF*/ + +#ifndef GCALC_DBUG_OFF +#define GCALC_DBUG_PRINT(b) DBUG_PRINT("Gcalc", b) +#define GCALC_DBUG_ENTER(a) DBUG_ENTER("Gcalc " a) +#define GCALC_DBUG_RETURN(r) DBUG_RETURN(r) +#define GCALC_DBUG_VOID_RETURN DBUG_VOID_RETURN +#define GCALC_DBUG_ASSERT(r) DBUG_ASSERT(r) +#else +#define GCALC_DBUG_PRINT(b) do {} while(0) +#define GCALC_DBUG_ENTER(a) do {} while(0) +#define GCALC_DBUG_RETURN(r) return (r) +#define GCALC_DBUG_VOID_RETURN do {} while(0) +#define GCALC_DBUG_ASSERT(r) do {} while(0) +#endif /*GCALC_DBUG_OFF*/ + +#define GCALC_TERMINATED(state_var) (state_var && (*state_var)) +#define GCALC_SET_TERMINATED(state_var, val) state_var= val +#define GCALC_DECL_TERMINATED_STATE(varname) \ + volatile int *varname; + +/* + Gcalc_dyn_list class designed to manage long lists of same-size objects + with the possible efficiency. + It allocates fixed-size blocks of memory (blk_size specified at the time + of creation). When new object is added to the list, it occupies part of + this block until it's full. Then the new block is allocated. + Freed objects are chained to the m_free list, and if it's not empty, the + newly added object is taken from this list instead the block. +*/ + +class Gcalc_dyn_list +{ +public: + class Item + { + public: + Item *next; + }; + + Gcalc_dyn_list(size_t blk_size, size_t sizeof_item); + ~Gcalc_dyn_list(); + Item *new_item() + { + Item *result; + if (m_free) + { + result= m_free; + m_free= m_free->next; + } + else + result= alloc_new_blk(); + + return result; + } + inline void free_item(Item *item) + { + item->next= m_free; + m_free= item; + } + inline void free_list(Item **list, Item **hook) + { + *hook= m_free; + m_free= *list; + } + + void free_list(Item *list) + { + Item **hook= &list; + while (*hook) + hook= &(*hook)->next; + free_list(&list, hook); + } + + void reset(); + void cleanup(); + +protected: + size_t m_blk_size; + size_t m_sizeof_item; + unsigned int m_points_per_blk; + void *m_first_blk; + void **m_blk_hook; + Item *m_free; + Item *m_keep; + + Item *alloc_new_blk(); + void format_blk(void* block); + inline Item *ptr_add(Item *ptr, int n_items) + { + return (Item *)(((char*)ptr) + n_items * m_sizeof_item); + } +}; + +/* Internal Gcalc coordinates to provide the precise calculations */ + +#define GCALC_DIG_BASE 1000000000 +typedef uint32 gcalc_digit_t; +typedef unsigned long long gcalc_coord2; +typedef gcalc_digit_t Gcalc_internal_coord; +#define GCALC_COORD_BASE 2 +#define GCALC_COORD_BASE2 4 +#define GCALC_COORD_BASE3 6 +#define GCALC_COORD_BASE4 8 +#define GCALC_COORD_BASE5 10 + +typedef gcalc_digit_t Gcalc_coord1[GCALC_COORD_BASE]; +typedef gcalc_digit_t Gcalc_coord2[GCALC_COORD_BASE*2]; +typedef gcalc_digit_t Gcalc_coord3[GCALC_COORD_BASE*3]; + + +void gcalc_mul_coord(Gcalc_internal_coord *result, int result_len, + const Gcalc_internal_coord *a, int a_len, + const Gcalc_internal_coord *b, int b_len); + +void gcalc_add_coord(Gcalc_internal_coord *result, int result_len, + const Gcalc_internal_coord *a, + const Gcalc_internal_coord *b); + +void gcalc_sub_coord(Gcalc_internal_coord *result, int result_len, + const Gcalc_internal_coord *a, + const Gcalc_internal_coord *b); + +int gcalc_cmp_coord(const Gcalc_internal_coord *a, + const Gcalc_internal_coord *b, int len); + +/* Internal coordinates declarations end. */ + + +typedef uint gcalc_shape_info; + +/* + Gcalc_heap represents the 'dynamic list' of Info objects, that + contain information about vertexes of all the shapes that take + part in some spatial calculation. Can become quite long. + After filled, the list is usually sorted and then walked through + in the slicescan algorithm. + The Gcalc_heap and the algorithm can only operate with two + kinds of shapes - polygon and polyline. So all the spatial + objects should be represented as sets of these two. +*/ + +class Gcalc_heap : public Gcalc_dyn_list +{ +public: + enum node_type + { + nt_shape_node, + nt_intersection, + nt_eq_node + }; + class Info : public Gcalc_dyn_list::Item + { + public: + node_type type; + union + { + struct + { + /* nt_shape_node */ + gcalc_shape_info shape; + Info *left; + Info *right; + double x,y; + Gcalc_coord1 ix, iy; + int top_node; + } shape; + struct + { + /* nt_intersection */ + /* Line p1-p2 supposed to intersect line p3-p4 */ + const Info *p1; + const Info *p2; + const Info *p3; + const Info *p4; + void *data; + int equal; + } intersection; + struct + { + /* nt_eq_node */ + const Info *node; + void *data; + } eq; + } node; + + bool is_bottom() const + { GCALC_DBUG_ASSERT(type == nt_shape_node); return !node.shape.left; } + bool is_top() const + { GCALC_DBUG_ASSERT(type == nt_shape_node); return node.shape.top_node; } + bool is_single_node() const + { return is_bottom() && is_top(); } + + void calc_xy(double *x, double *y) const; + int equal_pi(const Info *pi) const; +#ifdef GCALC_CHECK_WITH_FLOAT + void calc_xy_ld(long double *x, long double *y) const; +#endif /*GCALC_CHECK_WITH_FLOAT*/ + + Info *get_next() { return (Info *)next; } + const Info *get_next() const { return (const Info *)next; } + }; + + Gcalc_heap(size_t blk_size=8192) : + Gcalc_dyn_list(blk_size, sizeof(Info)), + m_hook(&m_first), m_n_points(0) + {} + void set_extent(double xmin, double xmax, double ymin, double ymax); + Info *new_point_info(double x, double y, gcalc_shape_info shape); + void free_point_info(Info *i, Gcalc_dyn_list::Item **i_hook); + Info *new_intersection(const Info *p1, const Info *p2, + const Info *p3, const Info *p4); + void prepare_operation(); + inline bool ready() const { return m_hook == NULL; } + Info *get_first() { return (Info *)m_first; } + const Info *get_first() const { return (const Info *)m_first; } + Gcalc_dyn_list::Item **get_last_hook() { return m_hook; } + void reset(); +#ifdef GCALC_CHECK_WITH_FLOAT + long double get_double(const Gcalc_internal_coord *c) const; +#endif /*GCALC_CHECK_WITH_FLOAT*/ + double coord_extent; + Gcalc_dyn_list::Item **get_cur_hook() { return m_hook; } + +private: + Gcalc_dyn_list::Item *m_first; + Gcalc_dyn_list::Item **m_hook; + int m_n_points; +}; + + +/* + the spatial object has to be represented as a set of + simple polygones and polylines to be sent to the slicescan. + + Gcalc_shape_transporter class and his descendants are used to + simplify storing the information about the shape into necessary structures. + This base class only fills the Gcalc_heap with the information about + shapes and vertices. + + Normally the Gcalc_shape_transporter family object is sent as a parameter + to the 'get_shapes' method of an 'spatial' object so it can pass + the spatial information about itself. The virtual methods are + treating this data in a way the caller needs. +*/ + +class Gcalc_shape_transporter +{ +private: + Gcalc_heap::Info *m_first; + Gcalc_heap::Info *m_prev; + Gcalc_dyn_list::Item **m_prev_hook; + int m_shape_started; + void int_complete(); +protected: + Gcalc_heap *m_heap; + int int_single_point(gcalc_shape_info Info, double x, double y); + int int_add_point(gcalc_shape_info Info, double x, double y); + void int_start_line() + { + DBUG_ASSERT(!m_shape_started); + m_shape_started= 1; + m_first= m_prev= NULL; + } + void int_complete_line() + { + DBUG_ASSERT(m_shape_started== 1); + int_complete(); + m_shape_started= 0; + } + void int_start_ring() + { + DBUG_ASSERT(m_shape_started== 2); + m_shape_started= 3; + m_first= m_prev= NULL; + } + void int_complete_ring() + { + DBUG_ASSERT(m_shape_started== 3); + int_complete(); + m_shape_started= 2; + } + void int_start_poly() + { + DBUG_ASSERT(!m_shape_started); + m_shape_started= 2; + } + void int_complete_poly() + { + DBUG_ASSERT(m_shape_started== 2); + m_shape_started= 0; + } + bool line_started() { return m_shape_started == 1; }; +public: + Gcalc_shape_transporter(Gcalc_heap *heap) : + m_shape_started(0), m_heap(heap) {} + + virtual int single_point(double x, double y)=0; + virtual int start_line()=0; + virtual int complete_line()=0; + virtual int start_poly()=0; + virtual int complete_poly()=0; + virtual int start_ring()=0; + virtual int complete_ring()=0; + virtual int add_point(double x, double y)=0; + virtual int start_collection(int n_objects) { return 0; } + virtual int empty_shape() { return 0; } + int start_simple_poly() + { + return start_poly() || start_ring(); + } + int complete_simple_poly() + { + return complete_ring() || complete_poly(); + } + virtual ~Gcalc_shape_transporter() {} +}; + + +enum Gcalc_scan_events +{ + scev_none= 0, + scev_point= 1, /* Just a new point in thread */ + scev_thread= 2, /* Start of the new thread */ + scev_two_threads= 4, /* A couple of new threads started */ + scev_intersection= 8, /* Intersection happened */ + scev_end= 16, /* Single thread finished */ + scev_two_ends= 32, /* A couple of threads finished */ + scev_single_point= 64 /* Got single point */ +}; + + +/* + Gcalc_scan_iterator incapsulates the slisescan algorithm. + It takes filled Gcalc_heap as an datasource. Then can be + iterated trought the vertexes and intersection points with + the step() method. After the 'step()' one usually observes + the current 'slice' to do the necessary calculations, like + looking for intersections, calculating the area, whatever. +*/ + +class Gcalc_scan_iterator : public Gcalc_dyn_list +{ +public: + class point : public Gcalc_dyn_list::Item + { + public: + Gcalc_coord1 dx; + Gcalc_coord1 dy; + Gcalc_heap::Info *pi; + Gcalc_heap::Info *next_pi; + Gcalc_heap::Info *ev_pi; + const Gcalc_coord1 *l_border; + const Gcalc_coord1 *r_border; + point *ev_next; + + Gcalc_scan_events event; + + inline const point *c_get_next() const + { return (const point *)next; } + inline bool is_bottom() const { return !next_pi; } + gcalc_shape_info get_shape() const { return pi->node.shape.shape; } + inline point *get_next() { return (point *)next; } + inline const point *get_next() const { return (const point *)next; } + /* Compare the dx_dy parameters regarding the horiz_dir */ + /* returns -1 if less, 0 if equal, 1 if bigger */ + static int cmp_dx_dy(const Gcalc_coord1 dx_a, + const Gcalc_coord1 dy_a, + const Gcalc_coord1 dx_b, + const Gcalc_coord1 dy_b); + static int cmp_dx_dy(const Gcalc_heap::Info *p1, + const Gcalc_heap::Info *p2, + const Gcalc_heap::Info *p3, + const Gcalc_heap::Info *p4); + int cmp_dx_dy(const point *p) const; + point **next_ptr() { return (point **) &next; } +#ifndef GCALC_DBUG_OFF + unsigned int thread; +#endif /*GCALC_DBUG_OFF*/ +#ifdef GCALC_CHECK_WITH_FLOAT + void calc_x(long double *x, long double y, long double ix) const; +#endif /*GCALC_CHECK_WITH_FLOAT*/ + }; + + /* That class introduced mostly for the 'typecontrol' reason. */ + /* only difference from the point classis the get_next() function. */ + class event_point : public point + { + public: + inline const event_point *get_next() const + { return (const event_point*) ev_next; } + int simple_event() const + { + return !ev_next ? (event & (scev_point | scev_end)) : + (!ev_next->ev_next && event == scev_two_ends); + } + }; + + class intersection_info : public Gcalc_dyn_list::Item + { + public: + point *edge_a; + point *edge_b; + + Gcalc_coord2 t_a; + Gcalc_coord2 t_b; + int t_calculated; + Gcalc_coord3 x_exp; + int x_calculated; + Gcalc_coord3 y_exp; + int y_calculated; + void calc_t() + {if (!t_calculated) do_calc_t(); } + void calc_y_exp() + { if (!y_calculated) do_calc_y(); } + void calc_x_exp() + { if (!x_calculated) do_calc_x(); } + + void do_calc_t(); + void do_calc_x(); + void do_calc_y(); + }; + + + class slice_state + { + public: + point *slice; + point **event_position_hook; + point *event_end; + const Gcalc_heap::Info *pi; + }; + +public: + Gcalc_scan_iterator(size_t blk_size= 8192); + + GCALC_DECL_TERMINATED_STATE(killed) + + void init(Gcalc_heap *points); /* Iterator can be reused */ + void reset(); + int step(); + + Gcalc_heap::Info *more_points() { return m_cur_pi; } + bool more_trapezoids() + { return m_cur_pi && m_cur_pi->next; } + + const point *get_bottom_points() const + { return m_bottom_points; } + const point *get_event_position() const + { return *state.event_position_hook; } + const point *get_event_end() const + { return state.event_end; } + const event_point *get_events() const + { return (const event_point *) + (*state.event_position_hook == state.event_end ? + m_bottom_points : *state.event_position_hook); } + const point *get_b_slice() const { return state.slice; } + double get_h() const; + double get_y() const; + double get_event_x() const; + double get_sp_x(const point *sp) const; + int intersection_step() const + { return state.pi->type == Gcalc_heap::nt_intersection; } + const Gcalc_heap::Info *get_cur_pi() const + { + return state.pi; + } + +private: + Gcalc_heap *m_heap; + Gcalc_heap::Info *m_cur_pi; + slice_state state; + +#ifndef GCALC_DBUG_OFF + unsigned int m_cur_thread; +#endif /*GCALC_DBUG_OFF*/ + + point *m_bottom_points; + point **m_bottom_hook; + + int node_scan(); + void eq_scan(); + void intersection_scan(); + void remove_bottom_node(); + int insert_top_node(); + int add_intersection(point *sp_a, point *sp_b, + Gcalc_heap::Info *pi_from); + int add_eq_node(Gcalc_heap::Info *node, point *sp); + int add_events_for_node(point *sp_node); + + point *new_slice_point() + { + point *new_point= (point *)new_item(); + return new_point; + } + intersection_info *new_intersection_info(point *a, point *b) + { + intersection_info *ii= (intersection_info *)new_item(); + ii->edge_a= a; + ii->edge_b= b; + ii->t_calculated= ii->x_calculated= ii->y_calculated= 0; + return ii; + } + int arrange_event(int do_sorting, int n_intersections); + static double get_pure_double(const Gcalc_internal_coord *d, int d_len); +}; + + +/* + Gcalc_trapezoid_iterator simplifies the calculations on + the current slice of the Gcalc_scan_iterator. + One can walk through the trapezoids formed between + previous and current slices. +*/ + +#ifdef TMP_BLOCK +class Gcalc_trapezoid_iterator +{ +protected: + const Gcalc_scan_iterator::point *sp0; + const Gcalc_scan_iterator::point *sp1; +public: + Gcalc_trapezoid_iterator(const Gcalc_scan_iterator *scan_i) : + sp0(scan_i->get_b_slice()), + sp1(scan_i->get_t_slice()) + {} + + inline bool more() const { return sp1 && sp1->next; } + + const Gcalc_scan_iterator::point *lt() const { return sp1; } + const Gcalc_scan_iterator::point *lb() const { return sp0; } + const Gcalc_scan_iterator::point *rb() const + { + const Gcalc_scan_iterator::point *result= sp0; + while ((result= result->c_get_next())->is_bottom()) + {} + return result; + } + const Gcalc_scan_iterator::point *rt() const + { return sp1->c_get_next(); } + + void operator++() + { + sp0= rb(); + sp1= rt(); + } +}; +#endif /*TMP_BLOCK*/ + + +/* + Gcalc_point_iterator simplifies the calculations on + the current slice of the Gcalc_scan_iterator. + One can walk through the points on the current slice. +*/ + +class Gcalc_point_iterator +{ +protected: + const Gcalc_scan_iterator::point *sp; +public: + Gcalc_point_iterator(const Gcalc_scan_iterator *scan_i): + sp(scan_i->get_b_slice()) + {} + + inline bool more() const { return sp != NULL; } + inline void operator++() { sp= sp->c_get_next(); } + inline const Gcalc_scan_iterator::point *point() const { return sp; } + inline const Gcalc_heap::Info *get_pi() const { return sp->pi; } + inline gcalc_shape_info get_shape() const { return sp->get_shape(); } + inline void restart(const Gcalc_scan_iterator *scan_i) + { sp= scan_i->get_b_slice(); } +}; + +#endif /*GCALC_SLICESCAN_INCLUDED*/ + diff --git a/database/include/mysql/private/gcalc_tools.h b/database/include/mysql/private/gcalc_tools.h new file mode 100644 index 0000000..61a70f9 --- /dev/null +++ b/database/include/mysql/private/gcalc_tools.h @@ -0,0 +1,348 @@ +/* Copyright (c) 2000, 2010 Oracle and/or its affiliates. All rights reserved. + Copyright (C) 2011 Monty Program Ab. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + + +#ifndef GCALC_TOOLS_INCLUDED +#define GCALC_TOOLS_INCLUDED + +#include "gcalc_slicescan.h" +#include "sql_string.h" + + +/* + The Gcalc_function class objects are used to check for a binary relation. + The relation can be constructed with the prefix notation using predicates as + op_not (as !A) + op_union ( A || B || C... ) + op_intersection ( A && B && C ... ) + op_symdifference ( A+B+C+... == 1 ) + op_difference ( A && !(B||C||..)) + with the calls of the add_operation(operation, n_operands) method. + The relation is calculated over a set of shapes, that in turn have + to be added with the add_new_shape() method. All the 'shapes' can + be set to 0 with clear_shapes() method and single value + can be changed with the invert_state() method. + Then the value of the relation can be calculated with the count() method. + Frequently used method is find_function(Gcalc_scan_iterator it) that + iterates through the 'it' until the relation becomes TRUE. +*/ + +class Gcalc_function +{ +private: + String shapes_buffer; + String function_buffer; + int *i_states; + int *b_states; + uint32 cur_object_id; + uint n_shapes; + int count_internal(const char *cur_func, uint set_type, + const char **end); +public: + enum value + { + v_empty= 0x0000000, + v_find_t= 0x1000000, + v_find_f= 0x2000000, + v_t_found= 0x3000000, + v_f_found= 0x4000000, + v_mask= 0x7000000 + }; + enum op_type + { + op_not= 0x80000000, + op_shape= 0x00000000, + op_union= 0x10000000, + op_intersection= 0x20000000, + op_symdifference= 0x30000000, + op_difference= 0x40000000, + op_repeat= 0x50000000, + op_border= 0x60000000, + op_internals= 0x70000000, + op_false= 0x08000000, + op_any= 0x78000000 /* The mask to get any of the operations */ + }; + enum shape_type + { + shape_point= 0, + shape_line= 1, + shape_polygon= 2, + shape_hole= 3 + }; + Gcalc_function() : n_shapes(0) {} + gcalc_shape_info add_new_shape(uint32 shape_id, shape_type shape_kind); + /* + Adds the leaf operation that returns the shape value. + Also adds the shape to the list of operands. + */ + int single_shape_op(shape_type shape_kind, gcalc_shape_info *si); + void add_operation(uint operation, uint32 n_operands); + void add_not_operation(op_type operation, uint32 n_operands); + uint32 get_next_expression_pos() { return function_buffer.length(); } + void add_operands_to_op(uint32 operation_pos, uint32 n_operands); + int repeat_expression(uint32 exp_pos); + void set_cur_obj(uint32 cur_obj) { cur_object_id= cur_obj; } + int reserve_shape_buffer(uint n_shapes); + int reserve_op_buffer(uint n_ops); + uint get_nshapes() const { return n_shapes; } + shape_type get_shape_kind(gcalc_shape_info si) const + { + return (shape_type) uint4korr(shapes_buffer.ptr() + (si*4)); + } + + void set_states(int *shape_states) { i_states= shape_states; } + int alloc_states(); + void invert_i_state(gcalc_shape_info shape) { i_states[shape]^= 1; } + void set_i_state(gcalc_shape_info shape) { i_states[shape]= 1; } + void clear_i_state(gcalc_shape_info shape) { i_states[shape]= 0; } + void set_b_state(gcalc_shape_info shape) { b_states[shape]= 1; } + void clear_b_state(gcalc_shape_info shape) { b_states[shape]= 0; } + int get_state(gcalc_shape_info shape) + { return i_states[shape] | b_states[shape]; } + int get_i_state(gcalc_shape_info shape) { return i_states[shape]; } + int get_b_state(gcalc_shape_info shape) { return b_states[shape]; } + int count() + { return count_internal(function_buffer.ptr(), 0, 0); } + void clear_i_states(); + void clear_b_states(); + void reset(); + + int check_function(Gcalc_scan_iterator &scan_it); +}; + + +/* + Gcalc_operation_transporter class extends the Gcalc_shape_transporter. + In addition to the parent's functionality, it fills the Gcalc_function + object so it has the function that determines the proper shape. + For example Multipolyline will be represented as an union of polylines. +*/ + +class Gcalc_operation_transporter : public Gcalc_shape_transporter +{ +protected: + Gcalc_function *m_fn; + gcalc_shape_info m_si; +public: + Gcalc_operation_transporter(Gcalc_function *fn, Gcalc_heap *heap) : + Gcalc_shape_transporter(heap), m_fn(fn) {} + + int single_point(double x, double y); + int start_line(); + int complete_line(); + int start_poly(); + int complete_poly(); + int start_ring(); + int complete_ring(); + int add_point(double x, double y); + int start_collection(int n_objects); + int empty_shape(); +}; + + +/* + When we calculate the result of an spatial operation like + Union or Intersection, we receive vertexes of the result + one-by-one, and probably need to treat them in variative ways. + So, the Gcalc_result_receiver class designed to get these + vertexes and construct shapes/objects out of them. + and to store the result in an appropriate format +*/ + +class Gcalc_result_receiver +{ + String buffer; + uint32 n_points; + Gcalc_function::shape_type common_shapetype; + bool collection_result; + uint32 n_shapes; + uint32 n_holes; + + Gcalc_function::shape_type cur_shape; + uint32 shape_pos; + double first_x, first_y, prev_x, prev_y; + double shape_area; +public: + Gcalc_result_receiver() : collection_result(FALSE), n_shapes(0), n_holes(0) + {} + int start_shape(Gcalc_function::shape_type shape); + int add_point(double x, double y); + int complete_shape(); + int single_point(double x, double y); + int done(); + void reset(); + + const char *result() { return buffer.ptr(); } + uint length() { return buffer.length(); } + int get_nshapes() { return n_shapes; } + int get_nholes() { return n_holes; } + int get_result_typeid(); + uint32 position() { return buffer.length(); } + int move_hole(uint32 dest_position, uint32 source_position, + uint32 *position_shift); +}; + + +/* + Gcalc_operation_reducer class incapsulates the spatial + operation functionality. It analyses the slices generated by + the slicescan and calculates the shape of the result defined + by some Gcalc_function. +*/ + +class Gcalc_operation_reducer : public Gcalc_dyn_list +{ +public: + enum modes + { + /* Numeric values important here - careful with changing */ + default_mode= 0, + prefer_big_with_holes= 1, + polygon_selfintersections_allowed= 2, /* allowed in the result */ + line_selfintersections_allowed= 4 /* allowed in the result */ + }; + + Gcalc_operation_reducer(size_t blk_size=8192); + void init(Gcalc_function *fn, modes mode= default_mode); + Gcalc_operation_reducer(Gcalc_function *fn, modes mode= default_mode, + size_t blk_size=8192); + GCALC_DECL_TERMINATED_STATE(killed) + int count_slice(Gcalc_scan_iterator *si); + int count_all(Gcalc_heap *hp); + int get_result(Gcalc_result_receiver *storage); + void reset(); + +#ifndef GCALC_DBUG_OFF + int n_res_points; +#endif /*GCALC_DBUG_OFF*/ + class res_point : public Gcalc_dyn_list::Item + { + public: + int intersection_point; + union + { + const Gcalc_heap::Info *pi; + res_point *first_poly_node; + }; + union + { + res_point *outer_poly; + uint32 poly_position; + }; + res_point *up; + res_point *down; + res_point *glue; + Gcalc_function::shape_type type; + Gcalc_dyn_list::Item **prev_hook; +#ifndef GCALC_DBUG_OFF + int point_n; +#endif /*GCALC_DBUG_OFF*/ + void set(const Gcalc_scan_iterator *si); + res_point *get_next() { return (res_point *)next; } + }; + + class active_thread : public Gcalc_dyn_list::Item + { + public: + res_point *rp; + res_point *thread_start; + + const Gcalc_heap::Info *p1, *p2; + res_point *enabled() { return rp; } + active_thread *get_next() { return (active_thread *)next; } + }; + + class poly_instance : public Gcalc_dyn_list::Item + { + public: + uint32 *after_poly_position; + poly_instance *get_next() { return (poly_instance *)next; } + }; + + class line : public Gcalc_dyn_list::Item + { + public: + active_thread *t; + int incoming; + const Gcalc_scan_iterator::point *p; + line *get_next() { return (line *)next; } + }; + + class poly_border : public Gcalc_dyn_list::Item + { + public: + active_thread *t; + int incoming; + int prev_state; + const Gcalc_scan_iterator::point *p; + poly_border *get_next() { return (poly_border *)next; } + }; + + line *m_lines; + Gcalc_dyn_list::Item **m_lines_hook; + poly_border *m_poly_borders; + Gcalc_dyn_list::Item **m_poly_borders_hook; + line *new_line() { return (line *) new_item(); } + poly_border *new_poly_border() { return (poly_border *) new_item(); } + int add_line(int incoming, active_thread *t, + const Gcalc_scan_iterator::point *p); + int add_poly_border(int incoming, active_thread *t, int prev_state, + const Gcalc_scan_iterator::point *p); + +protected: + Gcalc_function *m_fn; + Gcalc_dyn_list::Item **m_res_hook; + res_point *m_result; + int m_mode; + + res_point *result_heap; + active_thread *m_first_active_thread; + + res_point *add_res_point(Gcalc_function::shape_type type); + active_thread *new_active_thread() { return (active_thread *)new_item(); } + + poly_instance *new_poly() { return (poly_instance *) new_item(); } + +private: + int start_line(active_thread *t, const Gcalc_scan_iterator::point *p, + const Gcalc_scan_iterator *si); + int end_line(active_thread *t, const Gcalc_scan_iterator *si); + int connect_threads(int incoming_a, int incoming_b, + active_thread *ta, active_thread *tb, + const Gcalc_scan_iterator::point *pa, + const Gcalc_scan_iterator::point *pb, + active_thread *prev_range, + const Gcalc_scan_iterator *si, + Gcalc_function::shape_type s_t); + int add_single_point(const Gcalc_scan_iterator *si); + poly_border *get_pair_border(poly_border *b1); + int continue_range(active_thread *t, const Gcalc_heap::Info *p, + const Gcalc_heap::Info *p_next); + int continue_i_range(active_thread *t, + const Gcalc_heap::Info *ii); + int end_couple(active_thread *t0, active_thread *t1, const Gcalc_heap::Info *p); + int get_single_result(res_point *res, Gcalc_result_receiver *storage); + int get_result_thread(res_point *cur, Gcalc_result_receiver *storage, + int move_upward, res_point *first_poly_node); + int get_polygon_result(res_point *cur, Gcalc_result_receiver *storage, + res_point *first_poly_node); + int get_line_result(res_point *cur, Gcalc_result_receiver *storage); + + void free_result(res_point *res); +}; + +#endif /*GCALC_TOOLS_INCLUDED*/ + diff --git a/database/include/mysql/private/gstream.h b/database/include/mysql/private/gstream.h new file mode 100644 index 0000000..687627a --- /dev/null +++ b/database/include/mysql/private/gstream.h @@ -0,0 +1,93 @@ +#ifndef GSTREAM_INCLUDED +#define GSTREAM_INCLUDED + +/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + + +#include "my_global.h" /* NULL, NullS */ +#include "my_sys.h" /* MY_ALLOW_ZERO_PTR */ +#include "m_ctype.h" /* my_charset_latin1, my_charset_bin */ + +class Gis_read_stream +{ +public: + enum enum_tok_types + { + unknown, + eostream, + word, + numeric, + l_bra, + r_bra, + comma + }; + + Gis_read_stream(CHARSET_INFO *charset, const char *buffer, int size) + :m_cur(buffer), m_limit(buffer + size), m_err_msg(NULL), m_charset(charset) + {} + Gis_read_stream(): m_cur(NullS), m_limit(NullS), m_err_msg(NullS) + {} + ~Gis_read_stream() + { + my_free(m_err_msg); + } + + enum enum_tok_types get_next_toc_type(); + bool lookup_next_word(LEX_STRING *res); + bool get_next_word(LEX_STRING *); + bool get_next_number(double *); + bool check_next_symbol(char); + + inline void skip_space() + { + while ((m_cur < m_limit) && my_isspace(&my_charset_latin1, *m_cur)) + m_cur++; + } + /* Skip next character, if match. Return 1 if no match */ + inline bool skip_char(char skip) + { + skip_space(); + if ((m_cur >= m_limit) || *m_cur != skip) + return 1; /* Didn't find char */ + m_cur++; + return 0; + } + /* Returns the next notempty character. */ + char next_symbol() + { + skip_space(); + if (m_cur >= m_limit) + return 0; /* EOL meet. */ + return *m_cur; + } + void set_error_msg(const char *msg); + + // caller should free this pointer + char *get_error_msg() + { + char *err_msg = m_err_msg; + m_err_msg= NullS; + return err_msg; + } + +protected: + const char *m_cur; + const char *m_limit; + char *m_err_msg; + CHARSET_INFO *m_charset; +}; + +#endif /* GSTREAM_INCLUDED */ diff --git a/database/include/mysql/private/ha_ndbcluster.h b/database/include/mysql/private/ha_ndbcluster.h new file mode 100644 index 0000000..9b55cf3 --- /dev/null +++ b/database/include/mysql/private/ha_ndbcluster.h @@ -0,0 +1,599 @@ +#ifndef HA_NDBCLUSTER_INCLUDED +#define HA_NDBCLUSTER_INCLUDED + +/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* + This file defines the NDB Cluster handler: the interface between MySQL and + NDB Cluster +*/ + +/* The class defining a handle to an NDB Cluster table */ + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif + +/* Blob tables and events are internal to NDB and must never be accessed */ +#define IS_NDB_BLOB_PREFIX(A) is_prefix(A, "NDB$BLOB") + +#include +#include + +#define NDB_HIDDEN_PRIMARY_KEY_LENGTH 8 + +#ifdef HAVE_PSI_INTERFACE +extern PSI_file_key key_file_ndb; +#endif /* HAVE_PSI_INTERFACE */ + + +class Ndb; // Forward declaration +class NdbOperation; // Forward declaration +class NdbTransaction; // Forward declaration +class NdbRecAttr; // Forward declaration +class NdbScanOperation; +class NdbIndexScanOperation; +class NdbBlob; +class NdbIndexStat; +class NdbEventOperation; +class ha_ndbcluster_cond; + +#include "sql_partition.h" /* part_id_range */ + +// connectstring to cluster if given by mysqld +extern const char *ndbcluster_connectstring; + +typedef enum ndb_index_type { + UNDEFINED_INDEX = 0, + PRIMARY_KEY_INDEX = 1, + PRIMARY_KEY_ORDERED_INDEX = 2, + UNIQUE_INDEX = 3, + UNIQUE_ORDERED_INDEX = 4, + ORDERED_INDEX = 5 +} NDB_INDEX_TYPE; + +typedef enum ndb_index_status { + UNDEFINED = 0, + ACTIVE = 1, + TO_BE_DROPPED = 2 +} NDB_INDEX_STATUS; + +typedef struct ndb_index_data { + NDB_INDEX_TYPE type; + NDB_INDEX_STATUS status; + const NdbDictionary::Index *index; + const NdbDictionary::Index *unique_index; + unsigned char *unique_index_attrid_map; + bool null_in_unique_index; + // In this version stats are not shared between threads + NdbIndexStat* index_stat; + uint index_stat_cache_entries; + // Simple counter mechanism to decide when to connect to db + uint index_stat_update_freq; + uint index_stat_query_count; +} NDB_INDEX_DATA; + +typedef enum ndb_write_op { + NDB_INSERT = 0, + NDB_UPDATE = 1, + NDB_PK_UPDATE = 2 +} NDB_WRITE_OP; + +typedef union { const NdbRecAttr *rec; NdbBlob *blob; void *ptr; } NdbValue; + +int get_ndb_blobs_value(TABLE* table, NdbValue* value_array, + uchar*& buffer, uint& buffer_size, + my_ptrdiff_t ptrdiff); + +typedef enum { + NSS_INITIAL= 0, + NSS_DROPPED, + NSS_ALTERED +} NDB_SHARE_STATE; + +typedef struct st_ndbcluster_share { + NDB_SHARE_STATE state; + MEM_ROOT mem_root; + THR_LOCK lock; + mysql_mutex_t mutex; + char *key; + uint key_length; + THD *util_lock; + uint use_count; + uint commit_count_lock; + ulonglong commit_count; + char *db; + char *table_name; + Ndb::TupleIdRange tuple_id_range; +#ifdef HAVE_NDB_BINLOG + uint32 connect_count; + uint32 flags; + NdbEventOperation *op; + NdbEventOperation *op_old; // for rename table + char *old_names; // for rename table + TABLE_SHARE *table_share; + TABLE *table; + uchar *record[2]; // pointer to allocated records for receiving data + NdbValue *ndb_value[2]; + MY_BITMAP *subscriber_bitmap; +#endif +} NDB_SHARE; + +inline +NDB_SHARE_STATE +get_ndb_share_state(NDB_SHARE *share) +{ + NDB_SHARE_STATE state; + mysql_mutex_lock(&share->mutex); + state= share->state; + mysql_mutex_unlock(&share->mutex); + return state; +} + +inline +void +set_ndb_share_state(NDB_SHARE *share, NDB_SHARE_STATE state) +{ + mysql_mutex_lock(&share->mutex); + share->state= state; + mysql_mutex_unlock(&share->mutex); +} + +struct Ndb_tuple_id_range_guard { + Ndb_tuple_id_range_guard(NDB_SHARE* _share) : + share(_share), + range(share->tuple_id_range) { + mysql_mutex_lock(&share->mutex); + } + ~Ndb_tuple_id_range_guard() { + mysql_mutex_unlock(&share->mutex); + } + NDB_SHARE* share; + Ndb::TupleIdRange& range; +}; + +#ifdef HAVE_NDB_BINLOG +/* NDB_SHARE.flags */ +#define NSF_HIDDEN_PK 1 /* table has hidden primary key */ +#define NSF_BLOB_FLAG 2 /* table has blob attributes */ +#define NSF_NO_BINLOG 4 /* table should not be binlogged */ +#endif + +typedef enum ndb_query_state_bits { + NDB_QUERY_NORMAL = 0, + NDB_QUERY_MULTI_READ_RANGE = 1 +} NDB_QUERY_STATE_BITS; + +/* + Place holder for ha_ndbcluster thread specific data +*/ + +enum THD_NDB_OPTIONS +{ + TNO_NO_LOG_SCHEMA_OP= 1 << 0 +}; + +enum THD_NDB_TRANS_OPTIONS +{ + TNTO_INJECTED_APPLY_STATUS= 1 << 0 + ,TNTO_NO_LOGGING= 1 << 1 +}; + +struct Ndb_local_table_statistics { + int no_uncommitted_rows_count; + ulong last_count; + ha_rows records; +}; + +class Thd_ndb +{ + public: + Thd_ndb(); + ~Thd_ndb(); + + void init_open_tables(); + + Ndb *ndb; + ulong count; + uint lock_count; + uint start_stmt_count; + NdbTransaction *trans; + bool m_error; + bool m_slow_path; + int m_error_code; + uint32 m_query_id; /* query id whn m_error_code was set */ + uint32 options; + uint32 trans_options; + List changed_tables; + uint query_state; + HASH open_tables; +}; + +class ha_ndbcluster: public handler +{ + public: + ha_ndbcluster(handlerton *hton, TABLE_SHARE *table); + ~ha_ndbcluster(); + + int ha_initialise(); + int open(const char *name, int mode, uint test_if_locked); + int close(void); + + int write_row(uchar *buf); + int update_row(const uchar *old_data, uchar *new_data); + int delete_row(const uchar *buf); + int index_init(uint index, bool sorted); + int index_end(); + int index_read(uchar *buf, const uchar *key, uint key_len, + enum ha_rkey_function find_flag); + int index_next(uchar *buf); + int index_prev(uchar *buf); + int index_first(uchar *buf); + int index_last(uchar *buf); + int index_read_last(uchar * buf, const uchar * key, uint key_len); + int rnd_init(bool scan); + int rnd_end(); + int rnd_next(uchar *buf); + int rnd_pos(uchar *buf, uchar *pos); + void position(const uchar *record); + int read_range_first(const key_range *start_key, + const key_range *end_key, + bool eq_range, bool sorted); + int read_range_first_to_buf(const key_range *start_key, + const key_range *end_key, + bool eq_range, bool sorted, + uchar* buf); + int read_range_next(); + int alter_tablespace(st_alter_tablespace *info); + + /** + * Multi range stuff + */ +#if 0 + /* + MRR/NDB is disabled in MariaDB. This is because in MariaDB, we've + backported + - the latest version of MRR interface (BKA needs this) + - the latest version of DS-MRR implementation + but didn't backport the latest version MRR/NDB implementation. + + */ + int read_multi_range_first(KEY_MULTI_RANGE **found_range_p, + KEY_MULTI_RANGE*ranges, uint range_count, + bool sorted, HANDLER_BUFFER *buffer); + int read_multi_range_next(KEY_MULTI_RANGE **found_range_p); +#endif + bool null_value_index_search(KEY_MULTI_RANGE *ranges, + KEY_MULTI_RANGE *end_range, + HANDLER_BUFFER *buffer); + + bool get_error_message(int error, String *buf); + ha_rows records(); + ha_rows estimate_rows_upper_bound() + { return HA_POS_ERROR; } + int info(uint); + void get_dynamic_partition_info(PARTITION_STATS *stat_info, uint part_id); + int extra(enum ha_extra_function operation); + int extra_opt(enum ha_extra_function operation, ulong cache_size); + int reset(); + int external_lock(THD *thd, int lock_type); + void unlock_row(); + int start_stmt(THD *thd, thr_lock_type lock_type); + void print_error(int error, myf errflag); + const char * table_type() const; + const char ** bas_ext() const; + ulonglong table_flags(void) const; + void prepare_for_alter(); + int add_index(TABLE *table_arg, KEY *key_info, uint num_of_keys); + int prepare_drop_index(TABLE *table_arg, uint *key_num, uint num_of_keys); + int final_drop_index(TABLE *table_arg); + void set_part_info(partition_info *part_info); + ulong index_flags(uint idx, uint part, bool all_parts) const; + uint max_supported_record_length() const; + uint max_supported_keys() const; + uint max_supported_key_parts() const; + uint max_supported_key_length() const; + uint max_supported_key_part_length() const; + + int rename_table(const char *from, const char *to); + int delete_table(const char *name); + int create(const char *name, TABLE *form, HA_CREATE_INFO *info); + int create_handler_files(const char *file, const char *old_name, + int action_flag, HA_CREATE_INFO *info); + int get_default_no_partitions(HA_CREATE_INFO *info); + bool get_no_parts(const char *name, uint *no_parts); + void set_auto_partitions(partition_info *part_info); + virtual bool is_fatal_error(int error, uint flags) + { + if (!handler::is_fatal_error(error, flags) || + error == HA_ERR_NO_PARTITION_FOUND) + return FALSE; + return TRUE; + } + + THR_LOCK_DATA **store_lock(THD *thd, + THR_LOCK_DATA **to, + enum thr_lock_type lock_type); + + bool low_byte_first() const; + + const char* index_type(uint key_number); + + double scan_time(); + ha_rows records_in_range(uint inx, key_range *min_key, key_range *max_key); + void start_bulk_insert(ha_rows rows); + int end_bulk_insert(); + + static Thd_ndb* seize_thd_ndb(); + static void release_thd_ndb(Thd_ndb* thd_ndb); + +static void set_dbname(const char *pathname, char *dbname); +static void set_tabname(const char *pathname, char *tabname); + + /* + Condition pushdown + */ + + /* + Push condition down to the table handler. + SYNOPSIS + cond_push() + cond Condition to be pushed. The condition tree must not be + modified by the by the caller. + RETURN + The 'remainder' condition that caller must use to filter out records. + NULL means the handler will not return rows that do not match the + passed condition. + NOTES + The pushed conditions form a stack (from which one can remove the + last pushed condition using cond_pop). + The table handler filters out rows using (pushed_cond1 AND pushed_cond2 + AND ... AND pushed_condN) + or less restrictive condition, depending on handler's capabilities. + + handler->reset() call empties the condition stack. + Calls to rnd_init/rnd_end, index_init/index_end etc do not affect the + condition stack. + The current implementation supports arbitrary AND/OR nested conditions + with comparisons between columns and constants (including constant + expressions and function calls) and the following comparison operators: + =, !=, >, >=, <, <=, like, "not like", "is null", and "is not null". + Negated conditions are supported by NOT which generate NAND/NOR groups. + */ + const COND *cond_push(const COND *cond); + /* + Pop the top condition from the condition stack of the handler instance. + SYNOPSIS + cond_pop() + Pops the top if condition stack, if stack is not empty + */ + void cond_pop(); + + uint8 table_cache_type(); + + /* + * Internal to ha_ndbcluster, used by C functions + */ + int ndb_err(NdbTransaction*); + + my_bool register_query_cache_table(THD *thd, char *table_key, + uint key_length, + qc_engine_callback *engine_callback, + ulonglong *engine_data); + + bool check_if_incompatible_data(HA_CREATE_INFO *info, + uint table_changes); + +private: + int loc_read_multi_range_next(KEY_MULTI_RANGE **found_range_p); + friend int ndbcluster_drop_database_impl(const char *path); + friend int ndb_handle_schema_change(THD *thd, + Ndb *ndb, NdbEventOperation *pOp, + NDB_SHARE *share); + + static int delete_table(ha_ndbcluster *h, Ndb *ndb, + const char *path, + const char *db, + const char *table_name); + int create_ndb_index(const char *name, KEY *key_info, bool unique); + int create_ordered_index(const char *name, KEY *key_info); + int create_unique_index(const char *name, KEY *key_info); + int create_index(const char *name, KEY *key_info, + NDB_INDEX_TYPE idx_type, uint idx_no); +// Index list management + int create_indexes(Ndb *ndb, TABLE *tab); + int open_indexes(Ndb *ndb, TABLE *tab, bool ignore_error); + void renumber_indexes(Ndb *ndb, TABLE *tab); + int drop_indexes(Ndb *ndb, TABLE *tab); + int add_index_handle(THD *thd, NdbDictionary::Dictionary *dict, + KEY *key_info, const char *index_name, uint index_no); + int get_metadata(const char* path); + void release_metadata(THD *thd, Ndb *ndb); + NDB_INDEX_TYPE get_index_type(uint idx_no) const; + NDB_INDEX_TYPE get_index_type_from_table(uint index_no) const; + NDB_INDEX_TYPE get_index_type_from_key(uint index_no, KEY *key_info, + bool primary) const; + bool has_null_in_unique_index(uint idx_no) const; + bool check_index_fields_not_null(KEY *key_info); + + uint set_up_partition_info(partition_info *part_info, + TABLE *table, + void *tab); + char* get_tablespace_name(THD *thd, char *name, uint name_len); + int set_range_data(void *tab, partition_info* part_info); + int set_list_data(void *tab, partition_info* part_info); + int complemented_read(const uchar *old_data, uchar *new_data, + uint32 old_part_id); + int pk_read(const uchar *key, uint key_len, uchar *buf, uint32 part_id); + int ordered_index_scan(const key_range *start_key, + const key_range *end_key, + bool sorted, bool descending, uchar* buf, + part_id_range *part_spec); + int unique_index_read(const uchar *key, uint key_len, + uchar *buf); + int unique_index_scan(const KEY* key_info, + const uchar *key, + uint key_len, + uchar *buf); + int full_table_scan(uchar * buf); + + bool check_all_operations_for_error(NdbTransaction *trans, + const NdbOperation *first, + const NdbOperation *last, + uint errcode); + int peek_indexed_rows(const uchar *record, NDB_WRITE_OP write_op); + int fetch_next(NdbScanOperation* op); + int set_auto_inc(Field *field); + int next_result(uchar *buf); + int define_read_attrs(uchar* buf, NdbOperation* op); + int filtered_scan(const uchar *key, uint key_len, + uchar *buf, + enum ha_rkey_function find_flag); + int close_scan(); + void unpack_record(uchar *buf); + int get_ndb_lock_type(enum thr_lock_type type); + + void set_dbname(const char *pathname); + void set_tabname(const char *pathname); + + bool set_hidden_key(NdbOperation*, + uint fieldnr, const uchar* field_ptr); + int set_ndb_key(NdbOperation*, Field *field, + uint fieldnr, const uchar* field_ptr); + int set_ndb_value(NdbOperation*, Field *field, uint fieldnr, + int row_offset= 0, bool *set_blob_value= 0); + int get_ndb_value(NdbOperation*, Field *field, uint fieldnr, uchar*); + int get_ndb_partition_id(NdbOperation *); + friend int g_get_ndb_blobs_value(NdbBlob *ndb_blob, void *arg); + int set_primary_key(NdbOperation *op, const uchar *key); + int set_primary_key_from_record(NdbOperation *op, const uchar *record); + bool check_index_fields_in_write_set(uint keyno); + int set_index_key_from_record(NdbOperation *op, const uchar *record, + uint keyno); + int set_bounds(NdbIndexScanOperation*, uint inx, bool rir, + const key_range *keys[2], uint= 0); + int key_cmp(uint keynr, const uchar * old_row, const uchar * new_row); + int set_index_key(NdbOperation *, const KEY *key_info, const uchar *key_ptr); + void print_results(); + + virtual void get_auto_increment(ulonglong offset, ulonglong increment, + ulonglong nb_desired_values, + ulonglong *first_value, + ulonglong *nb_reserved_values); + bool uses_blob_value(); + + char *update_table_comment(const char * comment); + + int write_ndb_file(const char *name); + + int check_ndb_connection(THD* thd= current_thd); + + void set_rec_per_key(); + int records_update(); + void no_uncommitted_rows_execute_failure(); + void no_uncommitted_rows_update(int); + void no_uncommitted_rows_reset(THD *); + + void release_completed_operations(NdbTransaction*, bool); + + friend int execute_commit(ha_ndbcluster*, NdbTransaction*); + friend int execute_no_commit_ignore_no_key(ha_ndbcluster*, NdbTransaction*); + friend int execute_no_commit(ha_ndbcluster*, NdbTransaction*, bool); + friend int execute_no_commit_ie(ha_ndbcluster*, NdbTransaction*, bool); + + void transaction_checks(THD *thd); + int start_statement(THD *thd, Thd_ndb *thd_ndb, Ndb* ndb); + int init_handler_for_statement(THD *thd, Thd_ndb *thd_ndb); + + NdbTransaction *m_active_trans; + NdbScanOperation *m_active_cursor; + const NdbDictionary::Table *m_table; + struct Ndb_local_table_statistics *m_table_info; + struct Ndb_local_table_statistics m_table_info_instance; + char m_dbname[FN_HEADLEN]; + //char m_schemaname[FN_HEADLEN]; + char m_tabname[FN_HEADLEN]; + ulonglong m_table_flags; + THR_LOCK_DATA m_lock; + bool m_lock_tuple; + NDB_SHARE *m_share; + NDB_INDEX_DATA m_index[MAX_KEY]; + // NdbRecAttr has no reference to blob + NdbValue m_value[NDB_MAX_ATTRIBUTES_IN_TABLE]; + uchar m_ref[NDB_HIDDEN_PRIMARY_KEY_LENGTH]; + partition_info *m_part_info; + uint32 m_part_id; + uchar *m_rec0; + Field **m_part_field_array; + bool m_use_partition_function; + bool m_sorted; + bool m_use_write; + bool m_ignore_dup_key; + bool m_has_unique_index; + bool m_primary_key_update; + bool m_write_op; + bool m_ignore_no_key; + ha_rows m_rows_to_insert; // TODO: merge it with handler::estimation_rows_to_insert? + ha_rows m_rows_inserted; + ha_rows m_bulk_insert_rows; + ha_rows m_rows_changed; + bool m_bulk_insert_not_flushed; + bool m_delete_cannot_batch; + bool m_update_cannot_batch; + ha_rows m_ops_pending; + bool m_skip_auto_increment; + bool m_blobs_pending; + bool m_slow_path; + my_ptrdiff_t m_blobs_offset; + // memory for blobs in one tuple + uchar *m_blobs_buffer; + uint32 m_blobs_buffer_size; + uint m_dupkey; + // set from thread variables at external lock + bool m_ha_not_exact_count; + bool m_force_send; + ha_rows m_autoincrement_prefetch; + bool m_transaction_on; + + ha_ndbcluster_cond *m_cond; + bool m_disable_multi_read; + uchar *m_multi_range_result_ptr; + KEY_MULTI_RANGE *m_multi_ranges; + KEY_MULTI_RANGE *m_multi_range_defined; + const NdbOperation *m_current_multi_operation; + NdbIndexScanOperation *m_multi_cursor; + uchar *m_multi_range_cursor_result_ptr; + int setup_recattr(const NdbRecAttr*); + Ndb *get_ndb(); +}; + +extern SHOW_VAR ndb_status_variables[]; + +int ndbcluster_discover(THD* thd, const char* dbname, const char* name, + const void** frmblob, uint* frmlen); +int ndbcluster_find_files(THD *thd,const char *db,const char *path, + const char *wild, bool dir, List *files); +int ndbcluster_table_exists_in_engine(THD* thd, + const char *db, const char *name); +void ndbcluster_print_error(int error, const NdbOperation *error_op); + +static const char ndbcluster_hton_name[]= "ndbcluster"; +static const int ndbcluster_hton_name_length=sizeof(ndbcluster_hton_name)-1; +extern int ndbcluster_terminating; +extern int ndb_util_thread_running; +extern mysql_cond_t COND_ndb_util_ready; + +#endif /* HA_NDBCLUSTER_INCLUDED */ diff --git a/database/include/mysql/private/ha_ndbcluster_binlog.h b/database/include/mysql/private/ha_ndbcluster_binlog.h new file mode 100644 index 0000000..a2a8574 --- /dev/null +++ b/database/include/mysql/private/ha_ndbcluster_binlog.h @@ -0,0 +1,239 @@ +#ifndef HA_NDBCLUSTER_BINLOG_INCLUDED +#define HA_NDBCLUSTER_BINLOG_INCLUDED + +/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA +*/ + +#include "sql_class.h" /* THD */ + +// Typedefs for long names +typedef NdbDictionary::Object NDBOBJ; +typedef NdbDictionary::Column NDBCOL; +typedef NdbDictionary::Table NDBTAB; +typedef NdbDictionary::Index NDBINDEX; +typedef NdbDictionary::Dictionary NDBDICT; +typedef NdbDictionary::Event NDBEVENT; + +#define IS_TMP_PREFIX(A) (is_prefix(A, tmp_file_prefix)) + +#define INJECTOR_EVENT_LEN 200 + +#define NDB_INVALID_SCHEMA_OBJECT 241 + +/* server id's with high bit set is reservered */ +#define NDB_ANYVALUE_FOR_NOLOGGING 0xFFFFFFFF +#define NDB_ANYVALUE_RESERVED 0x80000000 + +extern handlerton *ndbcluster_hton; + +/* + The numbers below must not change as they + are passed between mysql servers, and if changed + would break compatablility. Add new numbers to + the end. +*/ +enum SCHEMA_OP_TYPE +{ + SOT_DROP_TABLE= 0, + SOT_CREATE_TABLE= 1, + SOT_RENAME_TABLE_NEW= 2, + SOT_ALTER_TABLE= 3, + SOT_DROP_DB= 4, + SOT_CREATE_DB= 5, + SOT_ALTER_DB= 6, + SOT_CLEAR_SLOCK= 7, + SOT_TABLESPACE= 8, + SOT_LOGFILE_GROUP= 9, + SOT_RENAME_TABLE= 10, + SOT_TRUNCATE_TABLE= 11 +}; + +const uint max_ndb_nodes= 64; /* multiple of 32 */ + +static const char *ha_ndb_ext=".ndb"; +static const char share_prefix[]= "./"; + +class Ndb_table_guard +{ +public: + Ndb_table_guard(NDBDICT *dict, const char *tabname) + : m_dict(dict) + { + DBUG_ENTER("Ndb_table_guard"); + m_ndbtab= m_dict->getTableGlobal(tabname); + m_invalidate= 0; + DBUG_PRINT("info", ("m_ndbtab: %p", m_ndbtab)); + DBUG_VOID_RETURN; + } + ~Ndb_table_guard() + { + DBUG_ENTER("~Ndb_table_guard"); + if (m_ndbtab) + { + DBUG_PRINT("info", ("m_ndbtab: %p m_invalidate: %d", + m_ndbtab, m_invalidate)); + m_dict->removeTableGlobal(*m_ndbtab, m_invalidate); + } + DBUG_VOID_RETURN; + } + const NDBTAB *get_table() { return m_ndbtab; } + void invalidate() { m_invalidate= 1; } + const NDBTAB *release() + { + DBUG_ENTER("Ndb_table_guard::release"); + const NDBTAB *tmp= m_ndbtab; + DBUG_PRINT("info", ("m_ndbtab: %p", m_ndbtab)); + m_ndbtab = 0; + DBUG_RETURN(tmp); + } +private: + const NDBTAB *m_ndbtab; + NDBDICT *m_dict; + int m_invalidate; +}; + +#ifdef HAVE_NDB_BINLOG + +#ifdef HAVE_PSI_INTERFACE +extern PSI_mutex_key key_injector_mutex, key_ndb_schema_share_mutex, + key_ndb_schema_object_mutex; +extern PSI_cond_key key_injector_cond; +extern PSI_thread_key key_thread_ndb_binlog; +#endif /* HAVE_PSI_INTERFACE */ + +extern pthread_t ndb_binlog_thread; +extern mysql_mutex_t injector_mutex; +extern mysql_cond_t injector_cond; + +extern unsigned char g_node_id_map[max_ndb_nodes]; +extern pthread_t ndb_util_thread; +extern mysql_mutex_t LOCK_ndb_util_thread; +extern mysql_cond_t COND_ndb_util_thread; +extern int ndbcluster_util_inited; +extern mysql_mutex_t ndbcluster_mutex; +extern HASH ndbcluster_open_tables; +extern Ndb_cluster_connection* g_ndb_cluster_connection; +extern long ndb_number_of_storage_nodes; + +/* + Initialize the binlog part of the ndb handlerton +*/ +void ndbcluster_binlog_init_handlerton(); +/* + Initialize the binlog part of the NDB_SHARE +*/ +int ndbcluster_binlog_init_share(NDB_SHARE *share, TABLE *table); + +bool ndbcluster_check_if_local_table(const char *dbname, const char *tabname); +bool ndbcluster_check_if_local_tables_in_db(THD *thd, const char *dbname); + +int ndbcluster_create_binlog_setup(Ndb *ndb, const char *key, + uint key_len, + const char *db, + const char *table_name, + my_bool share_may_exist); +int ndbcluster_create_event(Ndb *ndb, const NDBTAB *table, + const char *event_name, NDB_SHARE *share, + int push_warning= 0); +int ndbcluster_create_event_ops(NDB_SHARE *share, + const NDBTAB *ndbtab, + const char *event_name); +int ndbcluster_log_schema_op(THD *thd, NDB_SHARE *share, + const char *query, int query_length, + const char *db, const char *table_name, + uint32 ndb_table_id, + uint32 ndb_table_version, + enum SCHEMA_OP_TYPE type, + const char *new_db, + const char *new_table_name); +int ndbcluster_handle_drop_table(Ndb *ndb, const char *event_name, + NDB_SHARE *share, + const char *type_str); +void ndb_rep_event_name(String *event_name, + const char *db, const char *tbl); +int ndb_create_table_from_engine(THD *thd, const char *db, + const char *table_name); +int ndbcluster_binlog_start(); +pthread_handler_t ndb_binlog_thread_func(void *arg); + +/* + table mysql.ndb_apply_status +*/ +int ndbcluster_setup_binlog_table_shares(THD *thd); +extern NDB_SHARE *ndb_apply_status_share; +extern NDB_SHARE *ndb_schema_share; + +extern THD *injector_thd; +extern my_bool ndb_binlog_running; +extern my_bool ndb_binlog_tables_inited; + +bool +ndbcluster_show_status_binlog(THD* thd, stat_print_fn *stat_print, + enum ha_stat_type stat_type); + +/* + prototypes for ndb handler utility function also needed by + the ndb binlog code +*/ +int cmp_frm(const NDBTAB *ndbtab, const void *pack_data, + uint pack_length); +int ndbcluster_find_all_files(THD *thd); +#endif /* HAVE_NDB_BINLOG */ + +void ndb_unpack_record(TABLE *table, NdbValue *value, + MY_BITMAP *defined, uchar *buf); +char *ndb_pack_varchar(const NDBCOL *col, char *buf, + const char *str, int sz); + +NDB_SHARE *ndbcluster_get_share(const char *key, + TABLE *table, + bool create_if_not_exists, + bool have_lock); +NDB_SHARE *ndbcluster_get_share(NDB_SHARE *share); +void ndbcluster_free_share(NDB_SHARE **share, bool have_lock); +void ndbcluster_real_free_share(NDB_SHARE **share); +int handle_trailing_share(NDB_SHARE *share); +inline NDB_SHARE *get_share(const char *key, + TABLE *table, + bool create_if_not_exists= TRUE, + bool have_lock= FALSE) +{ + return ndbcluster_get_share(key, table, create_if_not_exists, have_lock); +} + +inline NDB_SHARE *get_share(NDB_SHARE *share) +{ + return ndbcluster_get_share(share); +} + +inline void free_share(NDB_SHARE **share, bool have_lock= FALSE) +{ + ndbcluster_free_share(share, have_lock); +} + +inline +Thd_ndb * +get_thd_ndb(THD *thd) +{ return (Thd_ndb *) thd_get_ha_data(thd, ndbcluster_hton); } + +inline +void +set_thd_ndb(THD *thd, Thd_ndb *thd_ndb) +{ thd_set_ha_data(thd, ndbcluster_hton, thd_ndb); } + +Ndb* check_ndb_in_thd(THD* thd); + +#endif /* HA_NDBCLUSTER_BINLOG_INCLUDED */ diff --git a/database/include/mysql/private/ha_ndbcluster_cond.h b/database/include/mysql/private/ha_ndbcluster_cond.h new file mode 100644 index 0000000..ab647f8 --- /dev/null +++ b/database/include/mysql/private/ha_ndbcluster_cond.h @@ -0,0 +1,500 @@ +#ifndef HA_NDBCLUSTER_COND_INCLUDED +#define HA_NDBCLUSTER_COND_INCLUDED + +/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* + This file defines the data structures used by engine condition pushdown in + the NDB Cluster handler +*/ + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif + +/* + It is necessary to include set_var.h instead of item.h because there + are dependencies on include order for set_var.h and item.h. This + will be resolved later. +*/ +#include "set_var.h" /* Item, Item_field */ + +typedef enum ndb_item_type { + NDB_VALUE = 0, // Qualified more with Item::Type + NDB_FIELD = 1, // Qualified from table definition + NDB_FUNCTION = 2,// Qualified from Item_func::Functype + NDB_END_COND = 3 // End marker for condition group +} NDB_ITEM_TYPE; + +typedef enum ndb_func_type { + NDB_EQ_FUNC = 0, + NDB_NE_FUNC = 1, + NDB_LT_FUNC = 2, + NDB_LE_FUNC = 3, + NDB_GT_FUNC = 4, + NDB_GE_FUNC = 5, + NDB_ISNULL_FUNC = 6, + NDB_ISNOTNULL_FUNC = 7, + NDB_LIKE_FUNC = 8, + NDB_NOTLIKE_FUNC = 9, + NDB_NOT_FUNC = 10, + NDB_UNKNOWN_FUNC = 11, + NDB_COND_AND_FUNC = 12, + NDB_COND_OR_FUNC = 13, + NDB_UNSUPPORTED_FUNC = 14 +} NDB_FUNC_TYPE; + +typedef union ndb_item_qualification { + Item::Type value_type; + enum_field_types field_type; // Instead of Item::FIELD_ITEM + NDB_FUNC_TYPE function_type; // Instead of Item::FUNC_ITEM +} NDB_ITEM_QUALIFICATION; + +typedef struct ndb_item_field_value { + Field* field; + int column_no; +} NDB_ITEM_FIELD_VALUE; + +typedef union ndb_item_value { + const Item *item; + NDB_ITEM_FIELD_VALUE *field_value; + uint arg_count; +} NDB_ITEM_VALUE; + +struct negated_function_mapping +{ + NDB_FUNC_TYPE pos_fun; + NDB_FUNC_TYPE neg_fun; +}; + +/* + Define what functions can be negated in condition pushdown. + Note, these HAVE to be in the same order as in definition enum +*/ +static const negated_function_mapping neg_map[]= +{ + {NDB_EQ_FUNC, NDB_NE_FUNC}, + {NDB_NE_FUNC, NDB_EQ_FUNC}, + {NDB_LT_FUNC, NDB_GE_FUNC}, + {NDB_LE_FUNC, NDB_GT_FUNC}, + {NDB_GT_FUNC, NDB_LE_FUNC}, + {NDB_GE_FUNC, NDB_LT_FUNC}, + {NDB_ISNULL_FUNC, NDB_ISNOTNULL_FUNC}, + {NDB_ISNOTNULL_FUNC, NDB_ISNULL_FUNC}, + {NDB_LIKE_FUNC, NDB_NOTLIKE_FUNC}, + {NDB_NOTLIKE_FUNC, NDB_LIKE_FUNC}, + {NDB_NOT_FUNC, NDB_UNSUPPORTED_FUNC}, + {NDB_UNKNOWN_FUNC, NDB_UNSUPPORTED_FUNC}, + {NDB_COND_AND_FUNC, NDB_UNSUPPORTED_FUNC}, + {NDB_COND_OR_FUNC, NDB_UNSUPPORTED_FUNC}, + {NDB_UNSUPPORTED_FUNC, NDB_UNSUPPORTED_FUNC} +}; + +/* + This class is the construction element for serialization of Item tree + in condition pushdown. + An instance of Ndb_Item represents a constant, table field reference, + unary or binary comparison predicate, and start/end of AND/OR. + Instances of Ndb_Item are stored in a linked list implemented by Ndb_cond + class. + The order of elements produced by Ndb_cond::next corresponds to + breadth-first traversal of the Item (i.e. expression) tree in prefix order. + AND and OR have arbitrary arity, so the end of AND/OR group is marked with + Ndb_item with type == NDB_END_COND. + NOT items represent negated conditions and generate NAND/NOR groups. +*/ +class Ndb_item : public Sql_alloc +{ +public: + Ndb_item(NDB_ITEM_TYPE item_type) : type(item_type) {}; + Ndb_item(NDB_ITEM_TYPE item_type, + NDB_ITEM_QUALIFICATION item_qualification, + const Item *item_value) + : type(item_type), qualification(item_qualification) + { + switch(item_type) { + case(NDB_VALUE): + value.item= item_value; + break; + case(NDB_FIELD): { + NDB_ITEM_FIELD_VALUE *field_value= new NDB_ITEM_FIELD_VALUE(); + Item_field *field_item= (Item_field *) item_value; + field_value->field= field_item->field; + field_value->column_no= -1; // Will be fetched at scan filter generation + value.field_value= field_value; + break; + } + case(NDB_FUNCTION): + value.item= item_value; + value.arg_count= ((Item_func *) item_value)->argument_count(); + break; + case(NDB_END_COND): + break; + } + }; + Ndb_item(Field *field, int column_no) : type(NDB_FIELD) + { + NDB_ITEM_FIELD_VALUE *field_value= new NDB_ITEM_FIELD_VALUE(); + qualification.field_type= field->type(); + field_value->field= field; + field_value->column_no= column_no; + value.field_value= field_value; + }; + Ndb_item(Item_func::Functype func_type, const Item *item_value) + : type(NDB_FUNCTION) + { + qualification.function_type= item_func_to_ndb_func(func_type); + value.item= item_value; + value.arg_count= ((Item_func *) item_value)->argument_count(); + }; + Ndb_item(Item_func::Functype func_type, uint no_args) + : type(NDB_FUNCTION) + { + qualification.function_type= item_func_to_ndb_func(func_type); + value.arg_count= no_args; + }; + ~Ndb_item() + { + if (type == NDB_FIELD) + { + delete value.field_value; + value.field_value= NULL; + } + }; + + uint32 pack_length() + { + switch(type) { + case(NDB_VALUE): + if(qualification.value_type == Item::STRING_ITEM) + return value.item->str_value.length(); + break; + case(NDB_FIELD): + return value.field_value->field->pack_length(); + default: + break; + } + + return 0; + }; + + Field * get_field() { return value.field_value->field; }; + + int get_field_no() { return value.field_value->column_no; }; + + int argument_count() + { + return value.arg_count; + }; + + const char* get_val() + { + switch(type) { + case(NDB_VALUE): + if(qualification.value_type == Item::STRING_ITEM) + return value.item->str_value.ptr(); + break; + case(NDB_FIELD): + return (char*) value.field_value->field->ptr; + default: + break; + } + + return NULL; + }; + + void save_in_field(Ndb_item *field_item) + { + Field *field = field_item->value.field_value->field; + const Item *item= value.item; + + if (item && field) + { + my_bitmap_map *old_map= + dbug_tmp_use_all_columns(field->table, field->table->write_set); + ((Item *)item)->save_in_field(field, FALSE); + dbug_tmp_restore_column_map(field->table->write_set, old_map); + } + }; + + static NDB_FUNC_TYPE item_func_to_ndb_func(Item_func::Functype fun) + { + switch (fun) { + case (Item_func::EQ_FUNC): { return NDB_EQ_FUNC; } + case (Item_func::NE_FUNC): { return NDB_NE_FUNC; } + case (Item_func::LT_FUNC): { return NDB_LT_FUNC; } + case (Item_func::LE_FUNC): { return NDB_LE_FUNC; } + case (Item_func::GT_FUNC): { return NDB_GT_FUNC; } + case (Item_func::GE_FUNC): { return NDB_GE_FUNC; } + case (Item_func::ISNULL_FUNC): { return NDB_ISNULL_FUNC; } + case (Item_func::ISNOTNULL_FUNC): { return NDB_ISNOTNULL_FUNC; } + case (Item_func::LIKE_FUNC): { return NDB_LIKE_FUNC; } + case (Item_func::NOT_FUNC): { return NDB_NOT_FUNC; } + case (Item_func::NEG_FUNC): { return NDB_UNKNOWN_FUNC; } + case (Item_func::UNKNOWN_FUNC): { return NDB_UNKNOWN_FUNC; } + case (Item_func::COND_AND_FUNC): { return NDB_COND_AND_FUNC; } + case (Item_func::COND_OR_FUNC): { return NDB_COND_OR_FUNC; } + default: { return NDB_UNSUPPORTED_FUNC; } + } + }; + + static NDB_FUNC_TYPE negate(NDB_FUNC_TYPE fun) + { + uint i= (uint) fun; + DBUG_ASSERT(fun == neg_map[i].pos_fun); + return neg_map[i].neg_fun; + }; + + NDB_ITEM_TYPE type; + NDB_ITEM_QUALIFICATION qualification; + private: + NDB_ITEM_VALUE value; +}; + +/* + This class implements a linked list used for storing a + serialization of the Item tree for condition pushdown. + */ +class Ndb_cond : public Sql_alloc +{ + public: + Ndb_cond() : ndb_item(NULL), next(NULL), prev(NULL) {}; + ~Ndb_cond() + { + if (ndb_item) delete ndb_item; + ndb_item= NULL; + /* + First item in the linked list deletes all in a loop + Note - doing it recursively causes stack issues for + big IN clauses + */ + Ndb_cond *n= next; + while (n) + { + Ndb_cond *tmp= n; + n= n->next; + tmp->next= NULL; + delete tmp; + } + next= prev= NULL; + }; + Ndb_item *ndb_item; + Ndb_cond *next; + Ndb_cond *prev; +}; + +/* + This class implements a stack for storing several conditions + for pushdown (represented as serialized Item trees using Ndb_cond). + The current implementation only pushes one condition, but is + prepared for handling several (C1 AND C2 ...) if the logic for + pushing conditions is extended in sql_select. +*/ +class Ndb_cond_stack : public Sql_alloc +{ + public: + Ndb_cond_stack() : ndb_cond(NULL), next(NULL) {}; + ~Ndb_cond_stack() + { + if (ndb_cond) delete ndb_cond; + ndb_cond= NULL; + if (next) delete next; + next= NULL; + }; + Ndb_cond *ndb_cond; + Ndb_cond_stack *next; +}; + +class Ndb_rewrite_context : public Sql_alloc +{ +public: + Ndb_rewrite_context(Item_func *func) + : func_item(func), left_hand_item(NULL), count(0) {}; + ~Ndb_rewrite_context() + { + if (next) delete next; + } + const Item_func *func_item; + const Item *left_hand_item; + uint count; + Ndb_rewrite_context *next; +}; + +/* + This class is used for storing the context when traversing + the Item tree. It stores a reference to the table the condition + is defined on, the serialized representation being generated, + if the condition found is supported, and information what is + expected next in the tree inorder for the condition to be supported. +*/ +class Ndb_cond_traverse_context : public Sql_alloc +{ + public: + Ndb_cond_traverse_context(TABLE *tab, const NdbDictionary::Table *ndb_tab, + Ndb_cond_stack* stack) + : table(tab), ndb_table(ndb_tab), + supported(TRUE), stack_ptr(stack), cond_ptr(NULL), + skip(0), collation(NULL), rewrite_stack(NULL) + { + // Allocate type checking bitmaps + bitmap_init(&expect_mask, 0, 512, FALSE); + bitmap_init(&expect_field_type_mask, 0, 512, FALSE); + bitmap_init(&expect_field_result_mask, 0, 512, FALSE); + + if (stack) + cond_ptr= stack->ndb_cond; + }; + ~Ndb_cond_traverse_context() + { + bitmap_free(&expect_mask); + bitmap_free(&expect_field_type_mask); + bitmap_free(&expect_field_result_mask); + if (rewrite_stack) delete rewrite_stack; + } + void expect(Item::Type type) + { + bitmap_set_bit(&expect_mask, (uint) type); + if (type == Item::FIELD_ITEM) expect_all_field_types(); + }; + void dont_expect(Item::Type type) + { + bitmap_clear_bit(&expect_mask, (uint) type); + }; + bool expecting(Item::Type type) + { + return bitmap_is_set(&expect_mask, (uint) type); + }; + void expect_nothing() + { + bitmap_clear_all(&expect_mask); + }; + bool expecting_nothing() + { + return bitmap_is_clear_all(&expect_mask); + } + void expect_only(Item::Type type) + { + expect_nothing(); + expect(type); + }; + + void expect_field_type(enum_field_types type) + { + bitmap_set_bit(&expect_field_type_mask, (uint) type); + }; + void expect_all_field_types() + { + bitmap_set_all(&expect_field_type_mask); + }; + bool expecting_field_type(enum_field_types type) + { + return bitmap_is_set(&expect_field_type_mask, (uint) type); + }; + void expect_no_field_type() + { + bitmap_clear_all(&expect_field_type_mask); + }; + bool expecting_no_field_type() + { + return bitmap_is_clear_all(&expect_field_type_mask); + } + void expect_only_field_type(enum_field_types result) + { + expect_no_field_type(); + expect_field_type(result); + }; + + void expect_field_result(Item_result result) + { + bitmap_set_bit(&expect_field_result_mask, (uint) result); + }; + bool expecting_field_result(Item_result result) + { + return bitmap_is_set(&expect_field_result_mask, (uint) result); + }; + void expect_no_field_result() + { + bitmap_clear_all(&expect_field_result_mask); + }; + bool expecting_no_field_result() + { + return bitmap_is_clear_all(&expect_field_result_mask); + } + void expect_only_field_result(Item_result result) + { + expect_no_field_result(); + expect_field_result(result); + }; + void expect_collation(CHARSET_INFO* col) + { + collation= col; + }; + bool expecting_collation(CHARSET_INFO* col) + { + bool matching= (!collation) ? true : (collation == col); + collation= NULL; + + return matching; + }; + + TABLE* table; + const NdbDictionary::Table *ndb_table; + bool supported; + Ndb_cond_stack* stack_ptr; + Ndb_cond* cond_ptr; + MY_BITMAP expect_mask; + MY_BITMAP expect_field_type_mask; + MY_BITMAP expect_field_result_mask; + uint skip; + CHARSET_INFO* collation; + Ndb_rewrite_context *rewrite_stack; +}; + +class ha_ndbcluster; + +class ha_ndbcluster_cond +{ +public: + ha_ndbcluster_cond() + : m_cond_stack(NULL) + {} + ~ha_ndbcluster_cond() + { if (m_cond_stack) delete m_cond_stack; } + const COND *cond_push(const COND *cond, + TABLE *table, const NdbDictionary::Table *ndb_table); + void cond_pop(); + void cond_clear(); + int generate_scan_filter(NdbScanOperation* op); + int generate_scan_filter_from_cond(NdbScanFilter& filter); + int generate_scan_filter_from_key(NdbScanOperation* op, + const KEY* key_info, + const uchar *key, + uint key_len, + uchar *buf); +private: + bool serialize_cond(const COND *cond, Ndb_cond_stack *ndb_cond, + TABLE *table, const NdbDictionary::Table *ndb_table); + int build_scan_filter_predicate(Ndb_cond* &cond, + NdbScanFilter* filter, + bool negated= false); + int build_scan_filter_group(Ndb_cond* &cond, + NdbScanFilter* filter); + int build_scan_filter(Ndb_cond* &cond, NdbScanFilter* filter); + + Ndb_cond_stack *m_cond_stack; +}; + +#endif /* HA_NDBCLUSTER_COND_INCLUDED */ diff --git a/database/include/mysql/private/ha_ndbcluster_tables.h b/database/include/mysql/private/ha_ndbcluster_tables.h new file mode 100644 index 0000000..9777a18 --- /dev/null +++ b/database/include/mysql/private/ha_ndbcluster_tables.h @@ -0,0 +1,29 @@ +#ifndef HA_NDBCLUSTER_TABLES_INCLUDED +#define HA_NDBCLUSTER_TABLES_INCLUDED + +/* Copyright (c) 2000-2003, 2006, 2007 MySQL AB, 2009 Sun Microsystems, Inc. + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA +*/ + +#define NDB_REP_DB "mysql" +#define OLD_NDB_REP_DB "cluster" +#define NDB_REP_TABLE "ndb_binlog_index" +#define NDB_APPLY_TABLE "ndb_apply_status" +#define OLD_NDB_APPLY_TABLE "apply_status" +#define NDB_SCHEMA_TABLE "ndb_schema" +#define OLD_NDB_SCHEMA_TABLE "schema" + +#endif /* HA_NDBCLUSTER_TABLES_INCLUDED */ diff --git a/database/include/mysql/private/ha_partition.h b/database/include/mysql/private/ha_partition.h new file mode 100644 index 0000000..d721a0d --- /dev/null +++ b/database/include/mysql/private/ha_partition.h @@ -0,0 +1,1198 @@ +#ifndef HA_PARTITION_INCLUDED +#define HA_PARTITION_INCLUDED + +/* + Copyright (c) 2005, 2013, Oracle and/or its affiliates. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifdef __GNUC__ +#pragma interface /* gcc class implementation */ +#endif + +#include "sql_partition.h" /* part_id_range, partition_element */ +#include "queues.h" /* QUEUE */ + +enum partition_keywords +{ + PKW_HASH= 0, PKW_RANGE, PKW_LIST, PKW_KEY, PKW_MAXVALUE, PKW_LINEAR, + PKW_COLUMNS, PKW_ALGORITHM +}; + +#define PARTITION_BYTES_IN_POS 2 +#define PARTITION_ENABLED_TABLE_FLAGS (HA_FILE_BASED | \ + HA_REC_NOT_IN_SEQ | \ + HA_CAN_REPAIR) +#define PARTITION_DISABLED_TABLE_FLAGS (HA_CAN_GEOMETRY | \ + HA_CAN_FULLTEXT | \ + HA_DUPLICATE_POS | \ + HA_CAN_SQL_HANDLER | \ + HA_CAN_INSERT_DELAYED) + +/* First 4 bytes in the .par file is the number of 32-bit words in the file */ +#define PAR_WORD_SIZE 4 +/* offset to the .par file checksum */ +#define PAR_CHECKSUM_OFFSET 4 +/* offset to the total number of partitions */ +#define PAR_NUM_PARTS_OFFSET 8 +/* offset to the engines array */ +#define PAR_ENGINES_OFFSET 12 + +extern "C" int cmp_key_rowid_part_id(void *ptr, uchar *ref1, uchar *ref2); + +class ha_partition :public handler +{ +private: + enum partition_index_scan_type + { + partition_index_read= 0, + partition_index_first= 1, + partition_index_first_unordered= 2, + partition_index_last= 3, + partition_read_range = 4, + partition_no_index_scan= 5 + }; + /* Data for the partition handler */ + int m_mode; // Open mode + uint m_open_test_lock; // Open test_if_locked + char *m_file_buffer; // Content of the .par file + char *m_name_buffer_ptr; // Pointer to first partition name + MEM_ROOT m_mem_root; + plugin_ref *m_engine_array; // Array of types of the handlers + handler **m_file; // Array of references to handler inst. + uint m_file_tot_parts; // Debug + handler **m_new_file; // Array of references to new handlers + handler **m_reorged_file; // Reorganised partitions + handler **m_added_file; // Added parts kept for errors + LEX_STRING *m_connect_string; + partition_info *m_part_info; // local reference to partition + Field **m_part_field_array; // Part field array locally to save acc + uchar *m_ordered_rec_buffer; // Row and key buffer for ord. idx scan + /* + Current index. + When used in key_rec_cmp: If clustered pk, index compare + must compare pk if given index is same for two rows. + So normally m_curr_key_info[0]= current index and m_curr_key[1]= NULL, + and if clustered pk, [0]= current index, [1]= pk, [2]= NULL + */ + KEY *m_curr_key_info[3]; // Current index + uchar *m_rec0; // table->record[0] + const uchar *m_err_rec; // record which gave error + QUEUE m_queue; // Prio queue used by sorted read + + /* + Length of an element in m_ordered_rec_buffer. The elements are composed of + + [part_no] [table->record copy] [underlying_table_rowid] + + underlying_table_rowid is only stored when the table has no extended keys. + */ + uint m_priority_queue_rec_len; + + /* + If true, then sorting records by key value also sorts them by their + underlying_table_rowid. + */ + bool m_using_extended_keys; + + /* + Since the partition handler is a handler on top of other handlers, it + is necessary to keep information about what the underlying handler + characteristics is. It is not possible to keep any handler instances + for this since the MySQL Server sometimes allocating the handler object + without freeing them. + */ + enum enum_handler_status + { + handler_not_initialized= 0, + handler_initialized, + handler_opened, + handler_closed + }; + enum_handler_status m_handler_status; + + uint m_reorged_parts; // Number of reorganised parts + uint m_tot_parts; // Total number of partitions; + uint m_num_locks; // For engines like ha_blackhole, which needs no locks + uint m_last_part; // Last file that we update,write,read + int m_lock_type; // Remembers type of last + // external_lock + part_id_range m_part_spec; // Which parts to scan + uint m_scan_value; // Value passed in rnd_init + // call + uint m_ref_length; // Length of position in this + // handler object + key_range m_start_key; // index read key range + enum partition_index_scan_type m_index_scan_type;// What type of index + // scan + uint m_top_entry; // Which partition is to + // deliver next result + uint m_rec_length; // Local copy of record length + + bool m_ordered; // Ordered/Unordered index scan + bool m_pkey_is_clustered; // Is primary key clustered + bool m_create_handler; // Handler used to create table + bool m_is_sub_partitioned; // Is subpartitioned + bool m_ordered_scan_ongoing; + + /* + If set, this object was created with ha_partition::clone and doesn't + "own" the m_part_info structure. + */ + ha_partition *m_is_clone_of; + MEM_ROOT *m_clone_mem_root; + + /* + We keep track if all underlying handlers are MyISAM since MyISAM has a + great number of extra flags not needed by other handlers. + */ + bool m_myisam; // Are all underlying handlers + // MyISAM + /* + We keep track of InnoDB handlers below since it requires proper setting + of query_id in fields at index_init and index_read calls. + */ + bool m_innodb; // Are all underlying handlers + // InnoDB + /* + When calling extra(HA_EXTRA_CACHE) we do not pass this to the underlying + handlers immediately. Instead we cache it and call the underlying + immediately before starting the scan on the partition. This is to + prevent allocating a READ CACHE for each partition in parallel when + performing a full table scan on MyISAM partitioned table. + This state is cleared by extra(HA_EXTRA_NO_CACHE). + */ + bool m_extra_cache; + uint m_extra_cache_size; + /* The same goes for HA_EXTRA_PREPARE_FOR_UPDATE */ + bool m_extra_prepare_for_update; + /* Which partition has active cache */ + uint m_extra_cache_part_id; + + void init_handler_variables(); + /* + Variables for lock structures. + */ + THR_LOCK_DATA lock; /* MySQL lock */ + + bool auto_increment_lock; /**< lock reading/updating auto_inc */ + /** + Flag to keep the auto_increment lock through out the statement. + This to ensure it will work with statement based replication. + */ + bool auto_increment_safe_stmt_log_lock; + /** For optimizing ha_start_bulk_insert calls */ + MY_BITMAP m_bulk_insert_started; + ha_rows m_bulk_inserted_rows; + /** used for prediction of start_bulk_insert rows */ + enum_monotonicity_info m_part_func_monotonicity_info; + /** Sorted array of partition ids in descending order of number of rows. */ + uint32 *m_part_ids_sorted_by_num_of_records; + /* Compare function for my_qsort2, for reversed order. */ + static int compare_number_of_records(ha_partition *me, + const uint32 *a, + const uint32 *b); + /** partitions that returned HA_ERR_KEY_NOT_FOUND. */ + MY_BITMAP m_key_not_found_partitions; + bool m_key_not_found; +public: + handler *clone(const char *name, MEM_ROOT *mem_root); + virtual void set_part_info(partition_info *part_info) + { + m_part_info= part_info; + m_is_sub_partitioned= part_info->is_sub_partitioned(); + } + /* + ------------------------------------------------------------------------- + MODULE create/delete handler object + ------------------------------------------------------------------------- + Object create/delete methode. The normal called when a table object + exists. There is also a method to create the handler object with only + partition information. This is used from mysql_create_table when the + table is to be created and the engine type is deduced to be the + partition handler. + ------------------------------------------------------------------------- + */ + ha_partition(handlerton *hton, TABLE_SHARE * table); + ha_partition(handlerton *hton, partition_info * part_info); + ha_partition(handlerton *hton, TABLE_SHARE *share, + partition_info *part_info_arg, + ha_partition *clone_arg, + MEM_ROOT *clone_mem_root_arg); + ~ha_partition(); + /* + A partition handler has no characteristics in itself. It only inherits + those from the underlying handlers. Here we set-up those constants to + enable later calls of the methods to retrieve constants from the under- + lying handlers. Returns false if not successful. + */ + bool initialize_partition(MEM_ROOT *mem_root); + + /* + ------------------------------------------------------------------------- + MODULE meta data changes + ------------------------------------------------------------------------- + Meta data routines to CREATE, DROP, RENAME table and often used at + ALTER TABLE (update_create_info used from ALTER TABLE and SHOW ..). + + update_table_comment is used in SHOW TABLE commands to provide a + chance for the handler to add any interesting comments to the table + comments not provided by the users comment. + + create_handler_files is called before opening a new handler object + with openfrm to call create. It is used to create any local handler + object needed in opening the object in openfrm + ------------------------------------------------------------------------- + */ + virtual int delete_table(const char *from); + virtual int rename_table(const char *from, const char *to); + virtual int create(const char *name, TABLE *form, + HA_CREATE_INFO *create_info); + virtual int create_handler_files(const char *name, + const char *old_name, int action_flag, + HA_CREATE_INFO *create_info); + virtual void update_create_info(HA_CREATE_INFO *create_info); + virtual char *update_table_comment(const char *comment); + virtual int change_partitions(HA_CREATE_INFO *create_info, + const char *path, + ulonglong * const copied, + ulonglong * const deleted, + const uchar *pack_frm_data, + size_t pack_frm_len); + virtual int drop_partitions(const char *path); + virtual int rename_partitions(const char *path); + bool get_no_parts(const char *name, uint *num_parts) + { + DBUG_ENTER("ha_partition::get_no_parts"); + *num_parts= m_tot_parts; + DBUG_RETURN(0); + } + virtual void change_table_ptr(TABLE *table_arg, TABLE_SHARE *share); + virtual bool check_if_incompatible_data(HA_CREATE_INFO *create_info, + uint table_changes); +private: + int prepare_for_rename(); + int copy_partitions(ulonglong * const copied, ulonglong * const deleted); + void cleanup_new_partition(uint part_count); + int prepare_new_partition(TABLE *table, HA_CREATE_INFO *create_info, + handler *file, const char *part_name, + partition_element *p_elem, + uint disable_non_uniq_indexes); + /* + delete_table, rename_table and create uses very similar logic which + is packed into this routine. + */ + int del_ren_cre_table(const char *from, const char *to, + TABLE *table_arg, HA_CREATE_INFO *create_info); + /* + One method to create the table_name.par file containing the names of the + underlying partitions, their engine and the number of partitions. + And one method to read it in. + */ + bool create_handler_file(const char *name); + bool setup_engine_array(MEM_ROOT *mem_root); + bool read_par_file(const char *name); + bool get_from_handler_file(const char *name, MEM_ROOT *mem_root, + bool is_clone); + bool new_handlers_from_part_info(MEM_ROOT *mem_root); + bool create_handlers(MEM_ROOT *mem_root); + void clear_handler_file(); + int set_up_table_before_create(TABLE *table_arg, + const char *partition_name_with_path, + HA_CREATE_INFO *info, + uint part_id, + partition_element *p_elem); + partition_element *find_partition_element(uint part_id); + +public: + + /* + ------------------------------------------------------------------------- + MODULE open/close object + ------------------------------------------------------------------------- + Open and close handler object to ensure all underlying files and + objects allocated and deallocated for query handling is handled + properly. + ------------------------------------------------------------------------- + + A handler object is opened as part of its initialisation and before + being used for normal queries (not before meta-data changes always. + If the object was opened it will also be closed before being deleted. + */ + virtual int open(const char *name, int mode, uint test_if_locked); + virtual int close(void); + + /* + ------------------------------------------------------------------------- + MODULE start/end statement + ------------------------------------------------------------------------- + This module contains methods that are used to understand start/end of + statements, transaction boundaries, and aid for proper concurrency + control. + The partition handler need not implement abort and commit since this + will be handled by any underlying handlers implementing transactions. + There is only one call to each handler type involved per transaction + and these go directly to the handlers supporting transactions + currently InnoDB, BDB and NDB). + ------------------------------------------------------------------------- + */ + virtual THR_LOCK_DATA **store_lock(THD * thd, THR_LOCK_DATA ** to, + enum thr_lock_type lock_type); + virtual int external_lock(THD * thd, int lock_type); + /* + When table is locked a statement is started by calling start_stmt + instead of external_lock + */ + virtual int start_stmt(THD * thd, thr_lock_type lock_type); + /* + Lock count is number of locked underlying handlers (I assume) + */ + virtual uint lock_count(void) const; + /* + Call to unlock rows not to be updated in transaction + */ + virtual void unlock_row(); + /* + Check if semi consistent read + */ + virtual bool was_semi_consistent_read(); + /* + Call to hint about semi consistent read + */ + virtual void try_semi_consistent_read(bool); + + /* + ------------------------------------------------------------------------- + MODULE change record + ------------------------------------------------------------------------- + This part of the handler interface is used to change the records + after INSERT, DELETE, UPDATE, REPLACE method calls but also other + special meta-data operations as ALTER TABLE, LOAD DATA, TRUNCATE. + ------------------------------------------------------------------------- + + These methods are used for insert (write_row), update (update_row) + and delete (delete_row). All methods to change data always work on + one row at a time. update_row and delete_row also contains the old + row. + delete_all_rows will delete all rows in the table in one call as a + special optimisation for DELETE from table; + + Bulk inserts are supported if all underlying handlers support it. + start_bulk_insert and end_bulk_insert is called before and after a + number of calls to write_row. + */ + virtual int write_row(uchar * buf); + virtual int update_row(const uchar * old_data, uchar * new_data); + virtual int delete_row(const uchar * buf); + virtual int delete_all_rows(void); + virtual int truncate(); + virtual void start_bulk_insert(ha_rows rows); + virtual int end_bulk_insert(); +private: + ha_rows guess_bulk_insert_rows(); + void start_part_bulk_insert(THD *thd, uint part_id); + long estimate_read_buffer_size(long original_size); +public: + + /* + Method for truncating a specific partition. + (i.e. ALTER TABLE t1 TRUNCATE PARTITION p). + + @remark This method is a partitioning-specific hook + and thus not a member of the general SE API. + */ + int truncate_partition(Alter_info *, bool *binlog_stmt); + + virtual bool is_fatal_error(int error, uint flags) + { + if (!handler::is_fatal_error(error, flags) || + error == HA_ERR_NO_PARTITION_FOUND) + return FALSE; + return TRUE; + } + /* + ------------------------------------------------------------------------- + MODULE full table scan + ------------------------------------------------------------------------- + This module is used for the most basic access method for any table + handler. This is to fetch all data through a full table scan. No + indexes are needed to implement this part. + It contains one method to start the scan (rnd_init) that can also be + called multiple times (typical in a nested loop join). Then proceeding + to the next record (rnd_next) and closing the scan (rnd_end). + To remember a record for later access there is a method (position) + and there is a method used to retrieve the record based on the stored + position. + The position can be a file position, a primary key, a ROWID dependent + on the handler below. + ------------------------------------------------------------------------- + */ + /* + unlike index_init(), rnd_init() can be called two times + without rnd_end() in between (it only makes sense if scan=1). + then the second call should prepare for the new table scan + (e.g if rnd_init allocates the cursor, second call should + position it to the start of the table, no need to deallocate + and allocate it again + */ + virtual int rnd_init(bool scan); + virtual int rnd_end(); + virtual int rnd_next(uchar * buf); + virtual int rnd_pos(uchar * buf, uchar * pos); + virtual int rnd_pos_by_record(uchar *record); + virtual void position(const uchar * record); + + /* + ------------------------------------------------------------------------- + MODULE index scan + ------------------------------------------------------------------------- + This part of the handler interface is used to perform access through + indexes. The interface is defined as a scan interface but the handler + can also use key lookup if the index is a unique index or a primary + key index. + Index scans are mostly useful for SELECT queries but are an important + part also of UPDATE, DELETE, REPLACE and CREATE TABLE table AS SELECT + and so forth. + Naturally an index is needed for an index scan and indexes can either + be ordered, hash based. Some ordered indexes can return data in order + but not necessarily all of them. + There are many flags that define the behavior of indexes in the + various handlers. These methods are found in the optimizer module. + ------------------------------------------------------------------------- + + index_read is called to start a scan of an index. The find_flag defines + the semantics of the scan. These flags are defined in + include/my_base.h + index_read_idx is the same but also initializes index before calling doing + the same thing as index_read. Thus it is similar to index_init followed + by index_read. This is also how we implement it. + + index_read/index_read_idx does also return the first row. Thus for + key lookups, the index_read will be the only call to the handler in + the index scan. + + index_init initializes an index before using it and index_end does + any end processing needed. + */ + virtual int index_read_map(uchar * buf, const uchar * key, + key_part_map keypart_map, + enum ha_rkey_function find_flag); + virtual int index_init(uint idx, bool sorted); + virtual int index_end(); + + /** + @breif + Positions an index cursor to the index specified in the hanlde. Fetches the + row if available. If the key value is null, begin at first key of the + index. + */ + virtual int index_read_idx_map(uchar *buf, uint index, const uchar *key, + key_part_map keypart_map, + enum ha_rkey_function find_flag); + /* + These methods are used to jump to next or previous entry in the index + scan. There are also methods to jump to first and last entry. + */ + virtual int index_next(uchar * buf); + virtual int index_prev(uchar * buf); + virtual int index_first(uchar * buf); + virtual int index_last(uchar * buf); + virtual int index_next_same(uchar * buf, const uchar * key, uint keylen); + + /* + read_first_row is virtual method but is only implemented by + handler.cc, no storage engine has implemented it so neither + will the partition handler. + + virtual int read_first_row(uchar *buf, uint primary_key); + */ + + /* + We don't implement multi read range yet, will do later. + virtual int read_multi_range_first(KEY_MULTI_RANGE **found_range_p, + KEY_MULTI_RANGE *ranges, uint range_count, + bool sorted, HANDLER_BUFFER *buffer); + virtual int read_multi_range_next(KEY_MULTI_RANGE **found_range_p); + */ + + + virtual int read_range_first(const key_range * start_key, + const key_range * end_key, + bool eq_range, bool sorted); + virtual int read_range_next(); + +private: + bool init_record_priority_queue(); + void destroy_record_priority_queue(); + int common_index_read(uchar * buf, bool have_start_key); + int common_first_last(uchar * buf); + int partition_scan_set_up(uchar * buf, bool idx_read_flag); + int handle_unordered_next(uchar * buf, bool next_same); + int handle_unordered_scan_next_partition(uchar * buf); + int handle_ordered_index_scan(uchar * buf, bool reverse_order); + int handle_ordered_index_scan_key_not_found(); + int handle_ordered_next(uchar * buf, bool next_same); + int handle_ordered_prev(uchar * buf); + void return_top_record(uchar * buf); + void column_bitmaps_signal(); +public: + /* + ------------------------------------------------------------------------- + MODULE information calls + ------------------------------------------------------------------------- + This calls are used to inform the handler of specifics of the ongoing + scans and other actions. Most of these are used for optimisation + purposes. + ------------------------------------------------------------------------- + */ + virtual int info(uint); + void get_dynamic_partition_info(PARTITION_STATS *stat_info, + uint part_id); + virtual int extra(enum ha_extra_function operation); + virtual int extra_opt(enum ha_extra_function operation, ulong cachesize); + virtual int reset(void); + virtual uint count_query_cache_dependant_tables(uint8 *tables_type); + virtual my_bool + register_query_cache_dependant_tables(THD *thd, + Query_cache *cache, + Query_cache_block_table **block, + uint *n); + +private: + my_bool reg_query_cache_dependant_table(THD *thd, + char *key, uint key_len, uint8 type, + Query_cache *cache, + Query_cache_block_table + **block_table, + handler *file, uint *n); + static const uint NO_CURRENT_PART_ID; + int loop_extra(enum ha_extra_function operation); + void late_extra_cache(uint partition_id); + void late_extra_no_cache(uint partition_id); + void prepare_extra_cache(uint cachesize); +public: + + /* + ------------------------------------------------------------------------- + MODULE optimiser support + ------------------------------------------------------------------------- + ------------------------------------------------------------------------- + */ + + /* + NOTE !!!!!! + ------------------------------------------------------------------------- + ------------------------------------------------------------------------- + One important part of the public handler interface that is not depicted in + the methods is the attribute records + + which is defined in the base class. This is looked upon directly and is + set by calling info(HA_STATUS_INFO) ? + ------------------------------------------------------------------------- + */ + +private: + /* Helper functions for optimizer hints. */ + ha_rows min_rows_for_estimate(); + uint get_biggest_used_partition(uint *part_index); +public: + + /* + keys_to_use_for_scanning can probably be implemented as the + intersection of all underlying handlers if mixed handlers are used. + This method is used to derive whether an index can be used for + index-only scanning when performing an ORDER BY query. + Only called from one place in sql_select.cc + */ + virtual const key_map *keys_to_use_for_scanning(); + + /* + Called in test_quick_select to determine if indexes should be used. + */ + virtual double scan_time(); + + /* + The next method will never be called if you do not implement indexes. + */ + virtual double read_time(uint index, uint ranges, ha_rows rows); + /* + For the given range how many records are estimated to be in this range. + Used by optimiser to calculate cost of using a particular index. + */ + virtual ha_rows records_in_range(uint inx, key_range * min_key, + key_range * max_key); + + /* + Upper bound of number records returned in scan is sum of all + underlying handlers. + */ + virtual ha_rows estimate_rows_upper_bound(); + + /* + table_cache_type is implemented by the underlying handler but all + underlying handlers must have the same implementation for it to work. + */ + virtual uint8 table_cache_type(); + virtual ha_rows records(); + + /* + ------------------------------------------------------------------------- + MODULE print messages + ------------------------------------------------------------------------- + This module contains various methods that returns text messages for + table types, index type and error messages. + ------------------------------------------------------------------------- + */ + /* + The name of the index type that will be used for display + Here we must ensure that all handlers use the same index type + for each index created. + */ + virtual const char *index_type(uint inx); + + /* The name of the table type that will be used for display purposes */ + virtual const char *table_type() const; + + /* The name of the row type used for the underlying tables. */ + virtual enum row_type get_row_type() const; + + /* + Handler specific error messages + */ + virtual void print_error(int error, myf errflag); + virtual bool get_error_message(int error, String * buf); + /* + ------------------------------------------------------------------------- + MODULE handler characteristics + ------------------------------------------------------------------------- + This module contains a number of methods defining limitations and + characteristics of the handler. The partition handler will calculate + this characteristics based on underlying handler characteristics. + ------------------------------------------------------------------------- + + This is a list of flags that says what the storage engine + implements. The current table flags are documented in handler.h + The partition handler will support whatever the underlying handlers + support except when specifically mentioned below about exceptions + to this rule. + NOTE: This cannot be cached since it can depend on TRANSACTION ISOLATION + LEVEL which is dynamic, see bug#39084. + + HA_READ_RND_SAME: + Not currently used. (Means that the handler supports the rnd_same() call) + (MyISAM, HEAP) + + HA_TABLE_SCAN_ON_INDEX: + Used to avoid scanning full tables on an index. If this flag is set then + the handler always has a primary key (hidden if not defined) and this + index is used for scanning rather than a full table scan in all + situations. + (InnoDB, BDB, Federated) + + HA_REC_NOT_IN_SEQ: + This flag is set for handlers that cannot guarantee that the rows are + returned accroding to incremental positions (0, 1, 2, 3...). + This also means that rnd_next() should return HA_ERR_RECORD_DELETED + if it finds a deleted row. + (MyISAM (not fixed length row), BDB, HEAP, NDB, InooDB) + + HA_CAN_GEOMETRY: + Can the storage engine handle spatial data. + Used to check that no spatial attributes are declared unless + the storage engine is capable of handling it. + (MyISAM) + + HA_FAST_KEY_READ: + Setting this flag indicates that the handler is equally fast in + finding a row by key as by position. + This flag is used in a very special situation in conjunction with + filesort's. For further explanation see intro to init_read_record. + (BDB, HEAP, InnoDB) + + HA_NULL_IN_KEY: + Is NULL values allowed in indexes. + If this is not allowed then it is not possible to use an index on a + NULLable field. + (BDB, HEAP, MyISAM, NDB, InnoDB) + + HA_DUPLICATE_POS: + Tells that we can the position for the conflicting duplicate key + record is stored in table->file->dupp_ref. (insert uses rnd_pos() on + this to find the duplicated row) + (MyISAM) + + HA_CAN_INDEX_BLOBS: + Is the storage engine capable of defining an index of a prefix on + a BLOB attribute. + (BDB, Federated, MyISAM, InnoDB) + + HA_AUTO_PART_KEY: + Auto increment fields can be part of a multi-part key. For second part + auto-increment keys, the auto_incrementing is done in handler.cc + (BDB, Federated, MyISAM, NDB) + + HA_REQUIRE_PRIMARY_KEY: + Can't define a table without primary key (and cannot handle a table + with hidden primary key) + (No handler has this limitation currently) + + HA_STATS_RECORDS_IS_EXACT: + Does the counter of records after the info call specify an exact + value or not. If it does this flag is set. + Only MyISAM and HEAP uses exact count. + + HA_CAN_INSERT_DELAYED: + Can the storage engine support delayed inserts. + To start with the partition handler will not support delayed inserts. + Further investigation needed. + (HEAP, MyISAM) + + HA_PRIMARY_KEY_IN_READ_INDEX: + This parameter is set when the handler will also return the primary key + when doing read-only-key on another index. + + HA_NOT_DELETE_WITH_CACHE: + Seems to be an old MyISAM feature that is no longer used. No handler + has it defined but it is checked in init_read_record. + Further investigation needed. + (No handler defines it) + + HA_NO_PREFIX_CHAR_KEYS: + Indexes on prefixes of character fields is not allowed. + (NDB) + + HA_CAN_FULLTEXT: + Does the storage engine support fulltext indexes + The partition handler will start by not supporting fulltext indexes. + (MyISAM) + + HA_CAN_SQL_HANDLER: + Can the HANDLER interface in the MySQL API be used towards this + storage engine. + (MyISAM, InnoDB) + + HA_NO_AUTO_INCREMENT: + Set if the storage engine does not support auto increment fields. + (Currently not set by any handler) + + HA_HAS_CHECKSUM: + Special MyISAM feature. Has special SQL support in CREATE TABLE. + No special handling needed by partition handler. + (MyISAM) + + HA_FILE_BASED: + Should file names always be in lower case (used by engines + that map table names to file names. + Since partition handler has a local file this flag is set. + (BDB, Federated, MyISAM) + + HA_CAN_BIT_FIELD: + Is the storage engine capable of handling bit fields? + (MyISAM, NDB) + + HA_NEED_READ_RANGE_BUFFER: + Is Read Multi-Range supported => need multi read range buffer + This parameter specifies whether a buffer for read multi range + is needed by the handler. Whether the handler supports this + feature or not is dependent of whether the handler implements + read_multi_range* calls or not. The only handler currently + supporting this feature is NDB so the partition handler need + not handle this call. There are methods in handler.cc that will + transfer those calls into index_read and other calls in the + index scan module. + (NDB) + + HA_PRIMARY_KEY_REQUIRED_FOR_POSITION: + Does the storage engine need a PK for position? + (InnoDB) + + HA_FILE_BASED is always set for partition handler since we use a + special file for handling names of partitions, engine types. + HA_REC_NOT_IN_SEQ is always set for partition handler since we cannot + guarantee that the records will be returned in sequence. + HA_CAN_GEOMETRY, HA_CAN_FULLTEXT, HA_CAN_SQL_HANDLER, HA_DUPLICATE_POS, + HA_CAN_INSERT_DELAYED, HA_PRIMARY_KEY_REQUIRED_FOR_POSITION is disabled + until further investigated. + */ + virtual Table_flags table_flags() const + { + DBUG_ENTER("ha_partition::table_flags"); + if (m_handler_status < handler_initialized || + m_handler_status >= handler_closed) + DBUG_RETURN(PARTITION_ENABLED_TABLE_FLAGS); + + DBUG_RETURN((m_file[0]->ha_table_flags() & + ~(PARTITION_DISABLED_TABLE_FLAGS)) | + (PARTITION_ENABLED_TABLE_FLAGS)); + } + + /* + This is a bitmap of flags that says how the storage engine + implements indexes. The current index flags are documented in + handler.h. If you do not implement indexes, just return zero + here. + + part is the key part to check. First key part is 0 + If all_parts it's set, MySQL want to know the flags for the combined + index up to and including 'part'. + + HA_READ_NEXT: + Does the index support read next, this is assumed in the server + code and never checked so all indexes must support this. + Note that the handler can be used even if it doesn't have any index. + (BDB, HEAP, MyISAM, Federated, NDB, InnoDB) + + HA_READ_PREV: + Can the index be used to scan backwards. + (BDB, HEAP, MyISAM, NDB, InnoDB) + + HA_READ_ORDER: + Can the index deliver its record in index order. Typically true for + all ordered indexes and not true for hash indexes. + In first step this is not true for partition handler until a merge + sort has been implemented in partition handler. + Used to set keymap part_of_sortkey + This keymap is only used to find indexes usable for resolving an ORDER BY + in the query. Thus in most cases index_read will work just fine without + order in result production. When this flag is set it is however safe to + order all output started by index_read since most engines do this. With + read_multi_range calls there is a specific flag setting order or not + order so in those cases ordering of index output can be avoided. + (BDB, InnoDB, HEAP, MyISAM, NDB) + + HA_READ_RANGE: + Specify whether index can handle ranges, typically true for all + ordered indexes and not true for hash indexes. + Used by optimiser to check if ranges (as key >= 5) can be optimised + by index. + (BDB, InnoDB, NDB, MyISAM, HEAP) + + HA_ONLY_WHOLE_INDEX: + Can't use part key searches. This is typically true for hash indexes + and typically not true for ordered indexes. + (Federated, NDB, HEAP) + + HA_KEYREAD_ONLY: + Does the storage engine support index-only scans on this index. + Enables use of HA_EXTRA_KEYREAD and HA_EXTRA_NO_KEYREAD + Used to set key_map keys_for_keyread and to check in optimiser for + index-only scans. When doing a read under HA_EXTRA_KEYREAD the handler + only have to fill in the columns the key covers. If + HA_PRIMARY_KEY_IN_READ_INDEX is set then also the PRIMARY KEY columns + must be updated in the row. + (BDB, InnoDB, MyISAM) + */ + virtual ulong index_flags(uint inx, uint part, bool all_parts) const + { + /* + The following code is not safe if you are using different + storage engines or different index types per partition. + */ + return m_file[0]->index_flags(inx, part, all_parts); + } + + /** + wrapper function for handlerton alter_table_flags, since + the ha_partition_hton cannot know all its capabilities + */ + virtual uint alter_table_flags(uint flags); + /* + extensions of table handler files + */ + virtual const char **bas_ext() const; + /* + unireg.cc will call the following to make sure that the storage engine + can handle the data it is about to send. + + The maximum supported values is the minimum of all handlers in the table + */ + uint min_of_the_max_uint(uint (handler::*operator_func)(void) const) const; + virtual uint max_supported_record_length() const; + virtual uint max_supported_keys() const; + virtual uint max_supported_key_parts() const; + virtual uint max_supported_key_length() const; + virtual uint max_supported_key_part_length() const; + + /* + The extra record buffer length is the maximum needed by all handlers. + The minimum record length is the maximum of all involved handlers. + */ + virtual uint extra_rec_buf_length() const; + virtual uint min_record_length(uint options) const; + + /* + Primary key is clustered can only be true if all underlying handlers have + this feature. + */ + virtual bool primary_key_is_clustered() + { return m_pkey_is_clustered; } + + /* + ------------------------------------------------------------------------- + MODULE compare records + ------------------------------------------------------------------------- + cmp_ref checks if two references are the same. For most handlers this is + a simple memcmp of the reference. However some handlers use primary key + as reference and this can be the same even if memcmp says they are + different. This is due to character sets and end spaces and so forth. + For the partition handler the reference is first two bytes providing the + partition identity of the referred record and then the reference of the + underlying handler. + Thus cmp_ref for the partition handler always returns FALSE for records + not in the same partition and uses cmp_ref on the underlying handler + to check whether the rest of the reference part is also the same. + ------------------------------------------------------------------------- + */ + virtual int cmp_ref(const uchar * ref1, const uchar * ref2); + /* + ------------------------------------------------------------------------- + MODULE auto increment + ------------------------------------------------------------------------- + This module is used to handle the support of auto increments. + + This variable in the handler is used as part of the handler interface + It is maintained by the parent handler object and should not be + touched by child handler objects (see handler.cc for its use). + + auto_increment_column_changed + ------------------------------------------------------------------------- + */ + virtual void get_auto_increment(ulonglong offset, ulonglong increment, + ulonglong nb_desired_values, + ulonglong *first_value, + ulonglong *nb_reserved_values); + virtual void release_auto_increment(); +private: + virtual int reset_auto_increment(ulonglong value); + virtual void lock_auto_increment() + { + /* lock already taken */ + if (auto_increment_safe_stmt_log_lock) + return; + DBUG_ASSERT(table_share->ha_part_data && !auto_increment_lock); + if(table_share->tmp_table == NO_TMP_TABLE) + { + auto_increment_lock= TRUE; + mysql_mutex_lock(&table_share->ha_part_data->LOCK_auto_inc); + } + } + virtual void unlock_auto_increment() + { + DBUG_ASSERT(table_share->ha_part_data); + /* + If auto_increment_safe_stmt_log_lock is true, we have to keep the lock. + It will be set to false and thus unlocked at the end of the statement by + ha_partition::release_auto_increment. + */ + if(auto_increment_lock && !auto_increment_safe_stmt_log_lock) + { + mysql_mutex_unlock(&table_share->ha_part_data->LOCK_auto_inc); + auto_increment_lock= FALSE; + } + } + virtual void set_auto_increment_if_higher(Field *field) + { + ulonglong nr= (((Field_num*) field)->unsigned_flag || + field->val_int() > 0) ? field->val_int() : 0; + lock_auto_increment(); + DBUG_ASSERT(table_share->ha_part_data->auto_inc_initialized == TRUE); + /* must check when the mutex is taken */ + if (nr >= table_share->ha_part_data->next_auto_inc_val) + table_share->ha_part_data->next_auto_inc_val= nr + 1; + unlock_auto_increment(); + } + +public: + + /* + ------------------------------------------------------------------------- + MODULE initialize handler for HANDLER call + ------------------------------------------------------------------------- + This method is a special InnoDB method called before a HANDLER query. + ------------------------------------------------------------------------- + */ + virtual void init_table_handle_for_HANDLER(); + + /* + The remainder of this file defines the handler methods not implemented + by the partition handler + */ + + /* + ------------------------------------------------------------------------- + MODULE foreign key support + ------------------------------------------------------------------------- + The following methods are used to implement foreign keys as supported by + InnoDB. Implement this ?? + get_foreign_key_create_info is used by SHOW CREATE TABLE to get a textual + description of how the CREATE TABLE part to define FOREIGN KEY's is done. + free_foreign_key_create_info is used to free the memory area that provided + this description. + can_switch_engines checks if it is ok to switch to a new engine based on + the foreign key info in the table. + ------------------------------------------------------------------------- + + virtual char* get_foreign_key_create_info() + virtual void free_foreign_key_create_info(char* str) + + virtual int get_foreign_key_list(THD *thd, + List *f_key_list) + virtual uint referenced_by_foreign_key() + */ + virtual bool can_switch_engines(); + /* + ------------------------------------------------------------------------- + MODULE fulltext index + ------------------------------------------------------------------------- + Fulltext stuff not yet. + ------------------------------------------------------------------------- + virtual int ft_init() { return HA_ERR_WRONG_COMMAND; } + virtual FT_INFO *ft_init_ext(uint flags,uint inx,const uchar *key, + uint keylen) + { return NULL; } + virtual int ft_read(uchar *buf) { return HA_ERR_WRONG_COMMAND; } + */ + + /* + ------------------------------------------------------------------------- + MODULE restart full table scan at position (MyISAM) + ------------------------------------------------------------------------- + The following method is only used by MyISAM when used as + temporary tables in a join. + virtual int restart_rnd_next(uchar *buf, uchar *pos); + */ + + /* + ------------------------------------------------------------------------- + MODULE on-line ALTER TABLE + ------------------------------------------------------------------------- + These methods are in the handler interface. (used by innodb-plugin) + They are used for on-line/fast alter table add/drop index: + ------------------------------------------------------------------------- + */ + virtual int add_index(TABLE *table_arg, KEY *key_info, uint num_of_keys, + handler_add_index **add); + virtual int final_add_index(handler_add_index *add, bool commit); + virtual int prepare_drop_index(TABLE *table_arg, uint *key_num, + uint num_of_keys); + virtual int final_drop_index(TABLE *table_arg); + + /* + ------------------------------------------------------------------------- + MODULE tablespace support + ------------------------------------------------------------------------- + Admin of table spaces is not applicable to the partition handler (InnoDB) + This means that the following method is not implemented: + ------------------------------------------------------------------------- + virtual int discard_or_import_tablespace(my_bool discard) + */ + + /* + ------------------------------------------------------------------------- + MODULE admin MyISAM + ------------------------------------------------------------------------- + + ------------------------------------------------------------------------- + OPTIMIZE TABLE, CHECK TABLE, ANALYZE TABLE and REPAIR TABLE are + mapped to a routine that handles looping over a given set of + partitions and those routines send a flag indicating to execute on + all partitions. + ------------------------------------------------------------------------- + */ + virtual int optimize(THD* thd, HA_CHECK_OPT *check_opt); + virtual int analyze(THD* thd, HA_CHECK_OPT *check_opt); + virtual int check(THD* thd, HA_CHECK_OPT *check_opt); + virtual int repair(THD* thd, HA_CHECK_OPT *check_opt); + virtual bool check_and_repair(THD *thd); + virtual bool auto_repair(int error) const; + virtual bool is_crashed() const; + virtual int check_for_upgrade(HA_CHECK_OPT *check_opt); + + private: + int handle_opt_partitions(THD *thd, HA_CHECK_OPT *check_opt, uint flags); + int handle_opt_part(THD *thd, HA_CHECK_OPT *check_opt, uint part_id, + uint flag); + /** + Check if the rows are placed in the correct partition. If the given + argument is true, then move the rows to the correct partition. + */ + int check_misplaced_rows(uint read_part_id, bool repair); + void append_row_to_str(String &str); + public: + /* + ------------------------------------------------------------------------- + Admin commands not supported currently (almost purely MyISAM routines) + This means that the following methods are not implemented: + ------------------------------------------------------------------------- + + virtual int backup(TD* thd, HA_CHECK_OPT *check_opt); + virtual int restore(THD* thd, HA_CHECK_OPT *check_opt); + virtual int dump(THD* thd, int fd = -1); + virtual int net_read_dump(NET* net); + virtual uint checksum() const; + */ + /* Enabled keycache for performance reasons, WL#4571 */ + virtual int assign_to_keycache(THD* thd, HA_CHECK_OPT *check_opt); + virtual int preload_keys(THD* thd, HA_CHECK_OPT* check_opt); + + /* + ------------------------------------------------------------------------- + MODULE enable/disable indexes + ------------------------------------------------------------------------- + Enable/Disable Indexes are only supported by HEAP and MyISAM. + ------------------------------------------------------------------------- + */ + virtual int disable_indexes(uint mode); + virtual int enable_indexes(uint mode); + virtual int indexes_are_disabled(void); + + /* + ------------------------------------------------------------------------- + MODULE append_create_info + ------------------------------------------------------------------------- + append_create_info is only used by MyISAM MERGE tables and the partition + handler will not support this handler as underlying handler. + Implement this?? + ------------------------------------------------------------------------- + virtual void append_create_info(String *packet) + */ + + /* + the following heavily relies on the fact that all partitions + are in the same storage engine. + + When this limitation is lifted, the following hack should go away, + and a proper interface for engines needs to be introduced: + + an PARTITION_SHARE structure that has a pointer to the TABLE_SHARE. + is given to engines everywhere where TABLE_SHARE is used now + has members like option_struct, ha_data + perhaps TABLE needs to be split the same way too... + + this can also be done before partition will support a mix of engines, + but preferably together with other incompatible API changes. + */ + virtual handlerton *partition_ht() const + { + handlerton *h= m_file[0]->ht; + for (uint i=1; i < m_tot_parts; i++) + DBUG_ASSERT(h == m_file[i]->ht); + return h; + } + + + friend int cmp_key_rowid_part_id(void *ptr, uchar *ref1, uchar *ref2); +}; + +#endif /* HA_PARTITION_INCLUDED */ diff --git a/database/include/mysql/private/handler.h b/database/include/mysql/private/handler.h new file mode 100644 index 0000000..32a7686 --- /dev/null +++ b/database/include/mysql/private/handler.h @@ -0,0 +1,3114 @@ +#ifndef HANDLER_INCLUDED +#define HANDLER_INCLUDED +/* + Copyright (c) 2000, 2016, Oracle and/or its affiliates. + Copyright (c) 2009, 2016, MariaDB + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; version 2 of + the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA +*/ + +/* Definitions for parameters to do with handler-routines */ + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif + +#include "sql_const.h" +#include "mysqld.h" /* server_id */ +#include "sql_plugin.h" /* plugin_ref, st_plugin_int, plugin */ +#include "thr_lock.h" /* thr_lock_type, THR_LOCK_DATA */ +#include "sql_cache.h" +#include "structs.h" /* SHOW_COMP_OPTION */ + +#include +#include +#include + +#if MAX_KEY > 128 +#error MAX_KEY is too large. Values up to 128 are supported. +#endif + +// the following is for checking tables + +#define HA_ADMIN_ALREADY_DONE 1 +#define HA_ADMIN_OK 0 +#define HA_ADMIN_NOT_IMPLEMENTED -1 +#define HA_ADMIN_FAILED -2 +#define HA_ADMIN_CORRUPT -3 +#define HA_ADMIN_INTERNAL_ERROR -4 +#define HA_ADMIN_INVALID -5 +#define HA_ADMIN_REJECT -6 +#define HA_ADMIN_TRY_ALTER -7 +#define HA_ADMIN_WRONG_CHECKSUM -8 +#define HA_ADMIN_NOT_BASE_TABLE -9 +#define HA_ADMIN_NEEDS_UPGRADE -10 +#define HA_ADMIN_NEEDS_ALTER -11 +#define HA_ADMIN_NEEDS_CHECK -12 + +/* Bits in table_flags() to show what database can do */ + +#define HA_NO_TRANSACTIONS (1 << 0) /* Doesn't support transactions */ +#define HA_PARTIAL_COLUMN_READ (1 << 1) /* read may not return all columns */ +#define HA_TABLE_SCAN_ON_INDEX (1 << 2) /* No separate data/index file */ +/* + The following should be set if the following is not true when scanning + a table with rnd_next() + - We will see all rows (including deleted ones) + - Row positions are 'table->s->db_record_offset' apart + If this flag is not set, filesort will do a position() call for each matched + row to be able to find the row later. +*/ +#define HA_REC_NOT_IN_SEQ (1 << 3) +#define HA_CAN_GEOMETRY (1 << 4) +/* + Reading keys in random order is as fast as reading keys in sort order + (Used in records.cc to decide if we should use a record cache and by + filesort to decide if we should sort key + data or key + pointer-to-row +*/ +#define HA_FAST_KEY_READ (1 << 5) +/* + Set the following flag if we on delete should force all key to be read + and on update read all keys that changes +*/ +#define HA_REQUIRES_KEY_COLUMNS_FOR_DELETE (1 << 6) +#define HA_NULL_IN_KEY (1 << 7) /* One can have keys with NULL */ +#define HA_DUPLICATE_POS (1 << 8) /* ha_position() gives dup row */ +#define HA_NO_BLOBS (1 << 9) /* Doesn't support blobs */ +#define HA_CAN_INDEX_BLOBS (1 << 10) +#define HA_AUTO_PART_KEY (1 << 11) /* auto-increment in multi-part key */ +#define HA_REQUIRE_PRIMARY_KEY (1 << 12) /* .. and can't create a hidden one */ +#define HA_STATS_RECORDS_IS_EXACT (1 << 13) /* stats.records is exact */ +/* + INSERT_DELAYED only works with handlers that uses MySQL internal table + level locks +*/ +#define HA_CAN_INSERT_DELAYED (1 << 14) +/* + If we get the primary key columns for free when we do an index read + It also implies that we have to retrive the primary key when using + position() and rnd_pos(). +*/ +#define HA_PRIMARY_KEY_IN_READ_INDEX (1 << 15) +/* + If HA_PRIMARY_KEY_REQUIRED_FOR_POSITION is set, it means that to position() + uses a primary key given by the record argument. + Without primary key, we can't call position(). + If not set, the position is returned as the current rows position + regardless of what argument is given. +*/ +#define HA_PRIMARY_KEY_REQUIRED_FOR_POSITION (1 << 16) +#define HA_CAN_RTREEKEYS (1 << 17) +#define HA_NOT_DELETE_WITH_CACHE (1 << 18) +/* + The following is we need to a primary key to delete (and update) a row. + If there is no primary key, all columns needs to be read on update and delete +*/ +#define HA_PRIMARY_KEY_REQUIRED_FOR_DELETE (1 << 19) +#define HA_NO_PREFIX_CHAR_KEYS (1 << 20) +#define HA_CAN_FULLTEXT (1 << 21) +#define HA_CAN_SQL_HANDLER (1 << 22) +#define HA_NO_AUTO_INCREMENT (1 << 23) +/* Has automatic checksums and uses the old checksum format */ +#define HA_HAS_OLD_CHECKSUM (1 << 24) +/* Table data are stored in separate files (for lower_case_table_names) */ +#define HA_FILE_BASED (1 << 26) +#define HA_NO_VARCHAR (1 << 27) +#define HA_CAN_BIT_FIELD (1 << 28) /* supports bit fields */ +#define HA_NEED_READ_RANGE_BUFFER (1 << 29) /* for read_multi_range */ +#define HA_ANY_INDEX_MAY_BE_UNIQUE (1 << 30) +#define HA_NO_COPY_ON_ALTER (LL(1) << 31) +#define HA_HAS_RECORDS (LL(1) << 32) /* records() gives exact count*/ +/* Has it's own method of binlog logging */ +#define HA_HAS_OWN_BINLOGGING (LL(1) << 33) +/* + Engine is capable of row-format and statement-format logging, + respectively +*/ +#define HA_BINLOG_ROW_CAPABLE (LL(1) << 34) +#define HA_BINLOG_STMT_CAPABLE (LL(1) << 35) +/* + When a multiple key conflict happens in a REPLACE command mysql + expects the conflicts to be reported in the ascending order of + key names. + + For e.g. + + CREATE TABLE t1 (a INT, UNIQUE (a), b INT NOT NULL, UNIQUE (b), c INT NOT + NULL, INDEX(c)); + + REPLACE INTO t1 VALUES (1,1,1),(2,2,2),(2,1,3); + + MySQL expects the conflict with 'a' to be reported before the conflict with + 'b'. + + If the underlying storage engine does not report the conflicting keys in + ascending order, it causes unexpected errors when the REPLACE command is + executed. + + This flag helps the underlying SE to inform the server that the keys are not + ordered. +*/ +#define HA_DUPLICATE_KEY_NOT_IN_ORDER (LL(1) << 36) + +/* + Engine supports REPAIR TABLE. Used by CHECK TABLE FOR UPGRADE if an + incompatible table is detected. If this flag is set, CHECK TABLE FOR UPGRADE + will report ER_TABLE_NEEDS_UPGRADE, otherwise ER_TABLE_NEED_REBUILD. +*/ +#define HA_CAN_REPAIR (LL(1) << 37) + +/* Has automatic checksums and uses the new checksum format */ +#define HA_HAS_NEW_CHECKSUM (LL(1) << 38) +#define HA_CAN_VIRTUAL_COLUMNS (LL(1) << 39) +#define HA_MRR_CANT_SORT (LL(1) << 40) +#define HA_RECORD_MUST_BE_CLEAN_ON_WRITE (LL(1) << 41) + +/* + Table condition pushdown must be performed regardless of + 'engine_condition_pushdown' setting. + + This flag is aimed at storage engines that come with "special" predicates + that can only be evaluated inside the storage engine. + For example, when one does + select * from sphinx_table where query='{fulltext_query}' + then the "query=..." condition must be always pushed down into storage + engine. +*/ +#define HA_MUST_USE_TABLE_CONDITION_PUSHDOWN (LL(1) << 42) + +/* + Set of all binlog flags. Currently only contain the capabilities + flags. + */ +#define HA_BINLOG_FLAGS (HA_BINLOG_ROW_CAPABLE | HA_BINLOG_STMT_CAPABLE) + +/* bits in index_flags(index_number) for what you can do with index */ +#define HA_READ_NEXT 1 /* TODO really use this flag */ +#define HA_READ_PREV 2 /* supports ::index_prev */ +#define HA_READ_ORDER 4 /* index_next/prev follow sort order */ +#define HA_READ_RANGE 8 /* can find all records in a range */ +#define HA_ONLY_WHOLE_INDEX 16 /* Can't use part key searches */ +#define HA_KEYREAD_ONLY 64 /* Support HA_EXTRA_KEYREAD */ + +/* + Index scan will not return records in rowid order. Not guaranteed to be + set for unordered (e.g. HASH) indexes. +*/ +#define HA_KEY_SCAN_NOT_ROR 128 +#define HA_DO_INDEX_COND_PUSHDOWN 256 /* Supports Index Condition Pushdown */ +/* + Data is clustered on this key. This means that when you read the key + you also get the row data without any additional disk reads. +*/ +#define HA_CLUSTERED_INDEX 512 + +/* + bits in alter_table_flags: +*/ +/* + These bits are set if different kinds of indexes can be created or dropped + in-place without re-creating the table using a temporary table. + NO_READ_WRITE indicates that the handler needs concurrent reads and writes + of table data to be blocked. + Partitioning needs both ADD and DROP to be supported by its underlying + handlers, due to error handling, see bug#57778. +*/ +#define HA_INPLACE_ADD_INDEX_NO_READ_WRITE (1L << 0) +#define HA_INPLACE_DROP_INDEX_NO_READ_WRITE (1L << 1) +#define HA_INPLACE_ADD_UNIQUE_INDEX_NO_READ_WRITE (1L << 2) +#define HA_INPLACE_DROP_UNIQUE_INDEX_NO_READ_WRITE (1L << 3) +#define HA_INPLACE_ADD_PK_INDEX_NO_READ_WRITE (1L << 4) +#define HA_INPLACE_DROP_PK_INDEX_NO_READ_WRITE (1L << 5) +/* + These are set if different kinds of indexes can be created or dropped + in-place while still allowing concurrent reads (but not writes) of table + data. If a handler is capable of one or more of these, it should also set + the corresponding *_NO_READ_WRITE bit(s). +*/ +#define HA_INPLACE_ADD_INDEX_NO_WRITE (1L << 6) +#define HA_INPLACE_DROP_INDEX_NO_WRITE (1L << 7) +#define HA_INPLACE_ADD_UNIQUE_INDEX_NO_WRITE (1L << 8) +#define HA_INPLACE_DROP_UNIQUE_INDEX_NO_WRITE (1L << 9) +#define HA_INPLACE_ADD_PK_INDEX_NO_WRITE (1L << 10) +#define HA_INPLACE_DROP_PK_INDEX_NO_WRITE (1L << 11) +/* + HA_PARTITION_FUNCTION_SUPPORTED indicates that the function is + supported at all. + HA_FAST_CHANGE_PARTITION means that optimised variants of the changes + exists but they are not necessarily done online. + + HA_ONLINE_DOUBLE_WRITE means that the handler supports writing to both + the new partition and to the old partitions when updating through the + old partitioning schema while performing a change of the partitioning. + This means that we can support updating of the table while performing + the copy phase of the change. For no lock at all also a double write + from new to old must exist and this is not required when this flag is + set. + This is actually removed even before it was introduced the first time. + The new idea is that handlers will handle the lock level already in + store_lock for ALTER TABLE partitions. + + HA_PARTITION_ONE_PHASE is a flag that can be set by handlers that take + care of changing the partitions online and in one phase. Thus all phases + needed to handle the change are implemented inside the storage engine. + The storage engine must also support auto-discovery since the frm file + is changed as part of the change and this change must be controlled by + the storage engine. A typical engine to support this is NDB (through + WL #2498). +*/ +#define HA_PARTITION_FUNCTION_SUPPORTED (1L << 12) +#define HA_FAST_CHANGE_PARTITION (1L << 13) +#define HA_PARTITION_ONE_PHASE (1L << 14) + +/* operations for disable/enable indexes */ +#define HA_KEY_SWITCH_NONUNIQ 0 +#define HA_KEY_SWITCH_ALL 1 +#define HA_KEY_SWITCH_NONUNIQ_SAVE 2 +#define HA_KEY_SWITCH_ALL_SAVE 3 + +/* + Note: the following includes binlog and closing 0. + so: innodb + bdb + ndb + binlog + myisam + myisammrg + archive + + example + csv + heap + blackhole + federated + 0 + (yes, the sum is deliberately inaccurate) + TODO remove the limit, use dynarrays +*/ +#define MAX_HA 64 + +/* + Use this instead of 0 as the initial value for the slot number of + handlerton, so that we can distinguish uninitialized slot number + from slot 0. +*/ +#define HA_SLOT_UNDEF ((uint)-1) + +/* + Parameters for open() (in register form->filestat) + HA_GET_INFO does an implicit HA_ABORT_IF_LOCKED +*/ + +#define HA_OPEN_KEYFILE 1 +#define HA_OPEN_RNDFILE 2 +#define HA_GET_INDEX 4 +#define HA_GET_INFO 8 /* do a ha_info() after open */ +#define HA_READ_ONLY 16 /* File opened as readonly */ +/* Try readonly if can't open with read and write */ +#define HA_TRY_READ_ONLY 32 +#define HA_WAIT_IF_LOCKED 64 /* Wait if locked on open */ +#define HA_ABORT_IF_LOCKED 128 /* skip if locked on open.*/ +#define HA_BLOCK_LOCK 256 /* unlock when reading some records */ +#define HA_OPEN_TEMPORARY 512 + + /* Some key definitions */ +#define HA_KEY_NULL_LENGTH 1 +#define HA_KEY_BLOB_LENGTH 2 + +#define HA_LEX_CREATE_TMP_TABLE 1 +#define HA_LEX_CREATE_IF_NOT_EXISTS 2 +#define HA_LEX_CREATE_TABLE_LIKE 4 +#define HA_CREATE_TMP_ALTER 8 +#define HA_MAX_REC_LENGTH 65535 + +/* Table caching type */ +#define HA_CACHE_TBL_NONTRANSACT 0 +#define HA_CACHE_TBL_NOCACHE 1 +#define HA_CACHE_TBL_ASKTRANSACT 2 +#define HA_CACHE_TBL_TRANSACT 4 + +/* Options of START TRANSACTION statement (and later of SET TRANSACTION stmt) */ +#define MYSQL_START_TRANS_OPT_WITH_CONS_SNAPSHOT 1 + +/* Flags for method is_fatal_error */ +#define HA_CHECK_DUP_KEY 1 +#define HA_CHECK_DUP_UNIQUE 2 +#define HA_CHECK_FK_ERROR 4 +#define HA_CHECK_DUP (HA_CHECK_DUP_KEY + HA_CHECK_DUP_UNIQUE) +#define HA_CHECK_ALL (~0U) + +enum legacy_db_type +{ + DB_TYPE_UNKNOWN=0,DB_TYPE_DIAB_ISAM=1, + DB_TYPE_HASH,DB_TYPE_MISAM,DB_TYPE_PISAM, + DB_TYPE_RMS_ISAM, DB_TYPE_HEAP, DB_TYPE_ISAM, + DB_TYPE_MRG_ISAM, DB_TYPE_MYISAM, DB_TYPE_MRG_MYISAM, + DB_TYPE_BERKELEY_DB, DB_TYPE_INNODB, + DB_TYPE_GEMINI, DB_TYPE_NDBCLUSTER, + DB_TYPE_EXAMPLE_DB, DB_TYPE_ARCHIVE_DB, DB_TYPE_CSV_DB, + DB_TYPE_FEDERATED_DB, + DB_TYPE_BLACKHOLE_DB, + DB_TYPE_PARTITION_DB, + DB_TYPE_BINLOG, + DB_TYPE_SOLID, + DB_TYPE_PBXT, + DB_TYPE_TABLE_FUNCTION, + DB_TYPE_MEMCACHE, + DB_TYPE_FALCON, + DB_TYPE_MARIA, + /** Performance schema engine. */ + DB_TYPE_PERFORMANCE_SCHEMA, + DB_TYPE_ARIA=42, + DB_TYPE_TOKUDB=43, + DB_TYPE_FIRST_DYNAMIC=44, + DB_TYPE_DEFAULT=127 // Must be last +}; +/* + Better name for DB_TYPE_UNKNOWN. Should be used for engines that do not have + a hard-coded type value here. + */ +#define DB_TYPE_AUTOASSIGN DB_TYPE_UNKNOWN + +enum row_type { ROW_TYPE_NOT_USED=-1, ROW_TYPE_DEFAULT, ROW_TYPE_FIXED, + ROW_TYPE_DYNAMIC, ROW_TYPE_COMPRESSED, + ROW_TYPE_REDUNDANT, ROW_TYPE_COMPACT, ROW_TYPE_PAGE }; + +/* not part of the enum, so that it shouldn't be in switch(row_type) */ +#define ROW_TYPE_MAX ((uint)ROW_TYPE_PAGE + 1) + +enum enum_binlog_func { + BFN_RESET_LOGS= 1, + BFN_RESET_SLAVE= 2, + BFN_BINLOG_WAIT= 3, + BFN_BINLOG_END= 4, + BFN_BINLOG_PURGE_FILE= 5 +}; + +enum enum_binlog_command { + LOGCOM_CREATE_TABLE, + LOGCOM_ALTER_TABLE, + LOGCOM_RENAME_TABLE, + LOGCOM_DROP_TABLE, + LOGCOM_CREATE_DB, + LOGCOM_ALTER_DB, + LOGCOM_DROP_DB +}; + +/* struct to hold information about the table that should be created */ + +/* Bits in used_fields */ +#define HA_CREATE_USED_AUTO (1L << 0) +#define HA_CREATE_USED_RAID (1L << 1) //RAID is no longer availble +#define HA_CREATE_USED_UNION (1L << 2) +#define HA_CREATE_USED_INSERT_METHOD (1L << 3) +#define HA_CREATE_USED_MIN_ROWS (1L << 4) +#define HA_CREATE_USED_MAX_ROWS (1L << 5) +#define HA_CREATE_USED_AVG_ROW_LENGTH (1L << 6) +#define HA_CREATE_USED_PACK_KEYS (1L << 7) +#define HA_CREATE_USED_CHARSET (1L << 8) +#define HA_CREATE_USED_DEFAULT_CHARSET (1L << 9) +#define HA_CREATE_USED_DATADIR (1L << 10) +#define HA_CREATE_USED_INDEXDIR (1L << 11) +#define HA_CREATE_USED_ENGINE (1L << 12) +#define HA_CREATE_USED_CHECKSUM (1L << 13) +#define HA_CREATE_USED_DELAY_KEY_WRITE (1L << 14) +#define HA_CREATE_USED_ROW_FORMAT (1L << 15) +#define HA_CREATE_USED_COMMENT (1L << 16) +#define HA_CREATE_USED_PASSWORD (1L << 17) +#define HA_CREATE_USED_CONNECTION (1L << 18) +#define HA_CREATE_USED_KEY_BLOCK_SIZE (1L << 19) +/* The following two are used by Maria engine: */ +#define HA_CREATE_USED_TRANSACTIONAL (1L << 20) +#define HA_CREATE_USED_PAGE_CHECKSUM (1L << 21) + +typedef ulonglong my_xid; // this line is the same as in log_event.h +#define MYSQL_XID_PREFIX "MySQLXid" +#define MYSQL_XID_PREFIX_LEN 8 // must be a multiple of 8 +#define MYSQL_XID_OFFSET (MYSQL_XID_PREFIX_LEN+sizeof(server_id)) +#define MYSQL_XID_GTRID_LEN (MYSQL_XID_OFFSET+sizeof(my_xid)) + +#define XIDDATASIZE MYSQL_XIDDATASIZE +#define MAXGTRIDSIZE 64 +#define MAXBQUALSIZE 64 + +#define COMPATIBLE_DATA_YES 0 +#define COMPATIBLE_DATA_NO 1 + +/** + struct xid_t is binary compatible with the XID structure as + in the X/Open CAE Specification, Distributed Transaction Processing: + The XA Specification, X/Open Company Ltd., 1991. + http://www.opengroup.org/bookstore/catalog/c193.htm + + @see MYSQL_XID in mysql/plugin.h +*/ +struct xid_t { + long formatID; + long gtrid_length; + long bqual_length; + char data[XIDDATASIZE]; // not \0-terminated ! + + xid_t() {} /* Remove gcc warning */ + bool eq(struct xid_t *xid) + { return eq(xid->gtrid_length, xid->bqual_length, xid->data); } + bool eq(long g, long b, const char *d) + { return g == gtrid_length && b == bqual_length && !memcmp(d, data, g+b); } + void set(struct xid_t *xid) + { memcpy(this, xid, xid->length()); } + void set(long f, const char *g, long gl, const char *b, long bl) + { + formatID= f; + memcpy(data, g, gtrid_length= gl); + memcpy(data+gl, b, bqual_length= bl); + } + void set(ulonglong xid) + { + my_xid tmp; + formatID= 1; + set(MYSQL_XID_PREFIX_LEN, 0, MYSQL_XID_PREFIX); + memcpy(data+MYSQL_XID_PREFIX_LEN, &server_id, sizeof(server_id)); + tmp= xid; + memcpy(data+MYSQL_XID_OFFSET, &tmp, sizeof(tmp)); + gtrid_length=MYSQL_XID_GTRID_LEN; + } + void set(long g, long b, const char *d) + { + formatID= 1; + gtrid_length= g; + bqual_length= b; + memcpy(data, d, g+b); + } + bool is_null() { return formatID == -1; } + void null() { formatID= -1; } + my_xid quick_get_my_xid() + { + my_xid tmp; + memcpy(&tmp, data+MYSQL_XID_OFFSET, sizeof(tmp)); + return tmp; + } + my_xid get_my_xid() + { + return gtrid_length == MYSQL_XID_GTRID_LEN && bqual_length == 0 && + !memcmp(data, MYSQL_XID_PREFIX, MYSQL_XID_PREFIX_LEN) ? + quick_get_my_xid() : 0; + } + uint length() + { + return sizeof(formatID)+sizeof(gtrid_length)+sizeof(bqual_length)+ + gtrid_length+bqual_length; + } + uchar *key() + { + return (uchar *)>rid_length; + } + uint key_length() + { + return sizeof(gtrid_length)+sizeof(bqual_length)+gtrid_length+bqual_length; + } +}; +typedef struct xid_t XID; + +/* for recover() handlerton call */ +#define MIN_XID_LIST_SIZE 128 +#define MAX_XID_LIST_SIZE (1024*128) + +/* + These structures are used to pass information from a set of SQL commands + on add/drop/change tablespace definitions to the proper hton. +*/ +#define UNDEF_NODEGROUP 65535 +enum ts_command_type +{ + TS_CMD_NOT_DEFINED = -1, + CREATE_TABLESPACE = 0, + ALTER_TABLESPACE = 1, + CREATE_LOGFILE_GROUP = 2, + ALTER_LOGFILE_GROUP = 3, + DROP_TABLESPACE = 4, + DROP_LOGFILE_GROUP = 5, + CHANGE_FILE_TABLESPACE = 6, + ALTER_ACCESS_MODE_TABLESPACE = 7 +}; + +enum ts_alter_tablespace_type +{ + TS_ALTER_TABLESPACE_TYPE_NOT_DEFINED = -1, + ALTER_TABLESPACE_ADD_FILE = 1, + ALTER_TABLESPACE_DROP_FILE = 2 +}; + +enum tablespace_access_mode +{ + TS_NOT_DEFINED= -1, + TS_READ_ONLY = 0, + TS_READ_WRITE = 1, + TS_NOT_ACCESSIBLE = 2 +}; + +struct handlerton; +class st_alter_tablespace : public Sql_alloc +{ + public: + const char *tablespace_name; + const char *logfile_group_name; + enum ts_command_type ts_cmd_type; + enum ts_alter_tablespace_type ts_alter_tablespace_type; + const char *data_file_name; + const char *undo_file_name; + const char *redo_file_name; + ulonglong extent_size; + ulonglong undo_buffer_size; + ulonglong redo_buffer_size; + ulonglong initial_size; + ulonglong autoextend_size; + ulonglong max_size; + uint nodegroup_id; + handlerton *storage_engine; + bool wait_until_completed; + const char *ts_comment; + enum tablespace_access_mode ts_access_mode; + st_alter_tablespace() + { + tablespace_name= NULL; + logfile_group_name= "DEFAULT_LG"; //Default log file group + ts_cmd_type= TS_CMD_NOT_DEFINED; + data_file_name= NULL; + undo_file_name= NULL; + redo_file_name= NULL; + extent_size= 1024*1024; //Default 1 MByte + undo_buffer_size= 8*1024*1024; //Default 8 MByte + redo_buffer_size= 8*1024*1024; //Default 8 MByte + initial_size= 128*1024*1024; //Default 128 MByte + autoextend_size= 0; //No autoextension as default + max_size= 0; //Max size == initial size => no extension + storage_engine= NULL; + nodegroup_id= UNDEF_NODEGROUP; + wait_until_completed= TRUE; + ts_comment= NULL; + ts_access_mode= TS_NOT_DEFINED; + } +}; + +/* The handler for a table type. Will be included in the TABLE structure */ + +struct TABLE; + +/* + Make sure that the order of schema_tables and enum_schema_tables are the same. +*/ +enum enum_schema_tables +{ + SCH_CHARSETS= 0, + SCH_CLIENT_STATS, + SCH_COLLATIONS, + SCH_COLLATION_CHARACTER_SET_APPLICABILITY, + SCH_COLUMNS, + SCH_COLUMN_PRIVILEGES, + SCH_ENGINES, + SCH_EVENTS, + SCH_FILES, + SCH_GLOBAL_STATUS, + SCH_GLOBAL_VARIABLES, + SCH_INDEX_STATS, + SCH_KEY_CACHES, + SCH_KEY_COLUMN_USAGE, + SCH_OPEN_TABLES, + SCH_PARAMETERS, + SCH_PARTITIONS, + SCH_PLUGINS, + SCH_PROCESSLIST, + SCH_PROFILES, + SCH_REFERENTIAL_CONSTRAINTS, + SCH_PROCEDURES, + SCH_SCHEMATA, + SCH_SCHEMA_PRIVILEGES, + SCH_SESSION_STATUS, + SCH_SESSION_VARIABLES, + SCH_STATISTICS, + SCH_STATUS, + SCH_TABLES, + SCH_TABLESPACES, + SCH_TABLE_CONSTRAINTS, + SCH_TABLE_NAMES, + SCH_TABLE_PRIVILEGES, + SCH_TABLE_STATS, + SCH_TRIGGERS, + SCH_USER_PRIVILEGES, + SCH_USER_STATS, + SCH_VARIABLES, + SCH_VIEWS +}; + +struct TABLE_SHARE; +struct st_foreign_key_info; +typedef struct st_foreign_key_info FOREIGN_KEY_INFO; +typedef bool (stat_print_fn)(THD *thd, const char *type, uint type_len, + const char *file, uint file_len, + const char *status, uint status_len); +enum ha_stat_type { HA_ENGINE_STATUS, HA_ENGINE_LOGS, HA_ENGINE_MUTEX }; +extern st_plugin_int *hton2plugin[MAX_HA]; + +/* Transaction log maintains type definitions */ +enum log_status +{ + HA_LOG_STATUS_FREE= 0, /* log is free and can be deleted */ + HA_LOG_STATUS_INUSE= 1, /* log can't be deleted because it is in use */ + HA_LOG_STATUS_NOSUCHLOG= 2 /* no such log (can't be returned by + the log iterator status) */ +}; +/* + Function for signaling that the log file changed its state from + LOG_STATUS_INUSE to LOG_STATUS_FREE + + Now it do nothing, will be implemented as part of new transaction + log management for engines. + TODO: implement the function. +*/ +void signal_log_not_needed(struct handlerton, char *log_file); +/* + Data of transaction log iterator. +*/ +struct handler_log_file_data { + LEX_STRING filename; + enum log_status status; +}; + +/* + Definitions for engine-specific table/field/index options in the CREATE TABLE. + + Options are declared with HA_*OPTION_* macros (HA_TOPTION_NUMBER, + HA_FOPTION_ENUM, HA_IOPTION_STRING, etc). + + Every macros takes the option name, and the name of the underlying field of + the appropriate C structure. The "appropriate C structure" is + ha_table_option_struct for table level options, + ha_field_option_struct for field level options, + ha_index_option_struct for key level options. The engine either + defines a structure of this name, or uses #define's to map + these "appropriate" names to the actual structure type name. + + ULL options use a ulonglong as the backing store. + HA_*OPTION_NUMBER() takes the option name, the structure field name, + the default value for the option, min, max, and blk_siz values. + + STRING options use a char* as a backing store. + HA_*OPTION_STRING takes the option name and the structure field name. + The default value will be 0. + + ENUM options use a uint as a backing store (not enum!!!). + HA_*OPTION_ENUM takes the option name, the structure field name, + the default value for the option as a number, and a string with the + permitted values for this enum - one string with comma separated values, + for example: "gzip,bzip2,lzma" + + BOOL options use a bool as a backing store. + HA_*OPTION_BOOL takes the option name, the structure field name, + and the default value for the option. + From the SQL, BOOL options accept YES/NO, ON/OFF, and 1/0. + + The name of the option is limited to 255 bytes, + the value (for string options) - to the 32767 bytes. + + See ha_example.cc for an example. +*/ + +struct ha_table_option_struct; +struct ha_field_option_struct; +struct ha_index_option_struct; + +enum ha_option_type { HA_OPTION_TYPE_ULL, /* unsigned long long */ + HA_OPTION_TYPE_STRING, /* char * */ + HA_OPTION_TYPE_ENUM, /* uint */ + HA_OPTION_TYPE_BOOL}; /* bool */ + +#define HA_xOPTION_NUMBER(name, struc, field, def, min, max, blk_siz) \ + { HA_OPTION_TYPE_ULL, name, sizeof(name)-1, \ + offsetof(struc, field), def, min, max, blk_siz, 0 } +#define HA_xOPTION_STRING(name, struc, field) \ + { HA_OPTION_TYPE_STRING, name, sizeof(name)-1, \ + offsetof(struc, field), 0, 0, 0, 0, 0 } +#define HA_xOPTION_ENUM(name, struc, field, values, def) \ + { HA_OPTION_TYPE_ENUM, name, sizeof(name)-1, \ + offsetof(struc, field), def, 0, \ + sizeof(values)-1, 0, values } +#define HA_xOPTION_BOOL(name, struc, field, def) \ + { HA_OPTION_TYPE_BOOL, name, sizeof(name)-1, \ + offsetof(struc, field), def, 0, 1, 0, 0 } +#define HA_xOPTION_END { HA_OPTION_TYPE_ULL, 0, 0, 0, 0, 0, 0, 0, 0 } + +#define HA_TOPTION_NUMBER(name, field, def, min, max, blk_siz) \ + HA_xOPTION_NUMBER(name, ha_table_option_struct, field, def, min, max, blk_siz) +#define HA_TOPTION_STRING(name, field) \ + HA_xOPTION_STRING(name, ha_table_option_struct, field) +#define HA_TOPTION_ENUM(name, field, values, def) \ + HA_xOPTION_ENUM(name, ha_table_option_struct, field, values, def) +#define HA_TOPTION_BOOL(name, field, def) \ + HA_xOPTION_BOOL(name, ha_table_option_struct, field, def) +#define HA_TOPTION_END HA_xOPTION_END + +#define HA_FOPTION_NUMBER(name, field, def, min, max, blk_siz) \ + HA_xOPTION_NUMBER(name, ha_field_option_struct, field, def, min, max, blk_siz) +#define HA_FOPTION_STRING(name, field) \ + HA_xOPTION_STRING(name, ha_field_option_struct, field) +#define HA_FOPTION_ENUM(name, field, values, def) \ + HA_xOPTION_ENUM(name, ha_field_option_struct, field, values, def) +#define HA_FOPTION_BOOL(name, field, def) \ + HA_xOPTION_BOOL(name, ha_field_option_struct, field, def) +#define HA_FOPTION_END HA_xOPTION_END + +#define HA_IOPTION_NUMBER(name, field, def, min, max, blk_siz) \ + HA_xOPTION_NUMBER(name, ha_index_option_struct, field, def, min, max, blk_siz) +#define HA_IOPTION_STRING(name, field) \ + HA_xOPTION_STRING(name, ha_index_option_struct, field) +#define HA_IOPTION_ENUM(name, field, values, def) \ + HA_xOPTION_ENUM(name, ha_index_option_struct, field, values, def) +#define HA_IOPTION_BOOL(name, field, def) \ + HA_xOPTION_BOOL(name, ha_index_option_struct, field, def) +#define HA_IOPTION_END HA_xOPTION_END + +typedef struct st_ha_create_table_option { + enum ha_option_type type; + const char *name; + size_t name_length; + ptrdiff_t offset; + ulonglong def_value; + ulonglong min_value, max_value, block_size; + const char *values; +} ha_create_table_option; + +enum handler_iterator_type +{ + /* request of transaction log iterator */ + HA_TRANSACTLOG_ITERATOR= 1 +}; +enum handler_create_iterator_result +{ + HA_ITERATOR_OK, /* iterator created */ + HA_ITERATOR_UNSUPPORTED, /* such type of iterator is not supported */ + HA_ITERATOR_ERROR /* error during iterator creation */ +}; + +/* + Iterator structure. Can be used by handler/handlerton for different purposes. + + Iterator should be created in the way to point "before" the first object + it iterate, so next() call move it to the first object or return !=0 if + there is nothing to iterate through. +*/ +struct handler_iterator { + /* + Moves iterator to next record and return 0 or return !=0 + if there is no records. + iterator_object will be filled by this function if next() returns 0. + Content of the iterator_object depend on iterator type. + */ + int (*next)(struct handler_iterator *, void *iterator_object); + /* + Free resources allocated by iterator, after this call iterator + is not usable. + */ + void (*destroy)(struct handler_iterator *); + /* + Pointer to buffer for the iterator to use. + Should be allocated by function which created the iterator and + destroied by freed by above "destroy" call + */ + void *buffer; +}; + +class handler; +/* + handlerton is a singleton structure - one instance per storage engine - + to provide access to storage engine functionality that works on the + "global" level (unlike handler class that works on a per-table basis) + + usually handlerton instance is defined statically in ha_xxx.cc as + + static handlerton { ... } xxx_hton; + + savepoint_*, prepare, recover, and *_by_xid pointers can be 0. +*/ +struct handlerton +{ + /* + Historical marker for if the engine is available of not + */ + SHOW_COMP_OPTION state; + + /* + Historical number used for frm file to determine the correct + storage engine. This is going away and new engines will just use + "name" for this. + */ + enum legacy_db_type db_type; + /* + each storage engine has it's own memory area (actually a pointer) + in the thd, for storing per-connection information. + It is accessed as + + thd->ha_data[xxx_hton.slot] + + slot number is initialized by MySQL after xxx_init() is called. + */ + uint slot; + /* + to store per-savepoint data storage engine is provided with an area + of a requested size (0 is ok here). + savepoint_offset must be initialized statically to the size of + the needed memory to store per-savepoint information. + After xxx_init it is changed to be an offset to savepoint storage + area and need not be used by storage engine. + see binlog_hton and binlog_savepoint_set/rollback for an example. + */ + uint savepoint_offset; + /* + handlerton methods: + + close_connection is only called if + thd->ha_data[xxx_hton.slot] is non-zero, so even if you don't need + this storage area - set it to something, so that MySQL would know + this storage engine was accessed in this connection + */ + int (*close_connection)(handlerton *hton, THD *thd); + /* + Tell handler that query has been killed. + */ + void (*kill_query)(handlerton *hton, THD *thd, enum thd_kill_levels level); + /* + sv points to an uninitialized storage area of requested size + (see savepoint_offset description) + */ + int (*savepoint_set)(handlerton *hton, THD *thd, void *sv); + /* + sv points to a storage area, that was earlier passed + to the savepoint_set call + */ + int (*savepoint_rollback)(handlerton *hton, THD *thd, void *sv); + int (*savepoint_release)(handlerton *hton, THD *thd, void *sv); + /* + 'all' is true if it's a real commit, that makes persistent changes + 'all' is false if it's not in fact a commit but an end of the + statement that is part of the transaction. + NOTE 'all' is also false in auto-commit mode where 'end of statement' + and 'real commit' mean the same event. + */ + int (*commit)(handlerton *hton, THD *thd, bool all); + /* + The commit_ordered() method is called prior to the commit() method, after + the transaction manager has decided to commit (not rollback) the + transaction. Unlike commit(), commit_ordered() is called only when the + full transaction is committed, not for each commit of statement + transaction in a multi-statement transaction. + + Not that like prepare(), commit_ordered() is only called when 2-phase + commit takes place. Ie. when no binary log and only a single engine + participates in a transaction, one commit() is called, no + commit_ordered(). So engines must be prepared for this. + + The calls to commit_ordered() in multiple parallel transactions is + guaranteed to happen in the same order in every participating + handler. This can be used to ensure the same commit order among multiple + handlers (eg. in table handler and binlog). So if transaction T1 calls + into commit_ordered() of handler A before T2, then T1 will also call + commit_ordered() of handler B before T2. + + Engines that implement this method should during this call make the + transaction visible to other transactions, thereby making the order of + transaction commits be defined by the order of commit_ordered() calls. + + The intention is that commit_ordered() should do the minimal amount of + work that needs to happen in consistent commit order among handlers. To + preserve ordering, calls need to be serialised on a global mutex, so + doing any time-consuming or blocking operations in commit_ordered() will + limit scalability. + + Handlers can rely on commit_ordered() calls to be serialised (no two + calls can run in parallel, so no extra locking on the handler part is + required to ensure this). + + Note that commit_ordered() can be called from a different thread than the + one handling the transaction! So it can not do anything that depends on + thread local storage, in particular it can not call my_error() and + friends (instead it can store the error code and delay the call of + my_error() to the commit() method). + + Similarly, since commit_ordered() returns void, any return error code + must be saved and returned from the commit() method instead. + + The commit_ordered method is optional, and can be left unset if not + needed in a particular handler (then there will be no ordering guarantees + wrt. other engines and binary log). + */ + void (*commit_ordered)(handlerton *hton, THD *thd, bool all); + int (*rollback)(handlerton *hton, THD *thd, bool all); + int (*prepare)(handlerton *hton, THD *thd, bool all); + /* + The prepare_ordered method is optional. If set, it will be called after + successful prepare() in all handlers participating in 2-phase + commit. Like commit_ordered(), it is called only when the full + transaction is committed, not for each commit of statement transaction. + + The calls to prepare_ordered() among multiple parallel transactions are + ordered consistently with calls to commit_ordered(). This means that + calls to prepare_ordered() effectively define the commit order, and that + each handler will see the same sequence of transactions calling into + prepare_ordered() and commit_ordered(). + + Thus, prepare_ordered() can be used to define commit order for handlers + that need to do this in the prepare step (like binlog). It can also be + used to release transaction's locks early in an order consistent with the + order transactions will be eventually committed. + + Like commit_ordered(), prepare_ordered() calls are serialised to maintain + ordering, so the intention is that they should execute fast, with only + the minimal amount of work needed to define commit order. Handlers can + rely on this serialisation, and do not need to do any extra locking to + avoid two prepare_ordered() calls running in parallel. + + Like commit_ordered(), prepare_ordered() is not guaranteed to be called + in the context of the thread handling the rest of the transaction. So it + cannot invoke code that relies on thread local storage, in particular it + cannot call my_error(). + + prepare_ordered() cannot cause a rollback by returning an error, all + possible errors must be handled in prepare() (the prepare_ordered() + method returns void). In case of some fatal error, a record of the error + must be made internally by the engine and returned from commit() later. + + Note that for user-level XA SQL commands, no consistent ordering among + prepare_ordered() and commit_ordered() is guaranteed (as that would + require blocking all other commits for an indefinite time). + + When 2-phase commit is not used (eg. only one engine (and no binlog) in + transaction), neither prepare() nor prepare_ordered() is called. + */ + void (*prepare_ordered)(handlerton *hton, THD *thd, bool all); + int (*recover)(handlerton *hton, XID *xid_list, uint len); + int (*commit_by_xid)(handlerton *hton, XID *xid); + int (*rollback_by_xid)(handlerton *hton, XID *xid); + /* + "Disable or enable checkpointing internal to the storage engine. This is + used for FLUSH TABLES WITH READ LOCK AND DISABLE CHECKPOINT to ensure that + the engine will never start any recovery from a time between + FLUSH TABLES ... ; UNLOCK TABLES. + + While checkpointing is disabled, the engine should pause any background + write activity (such as tablespace checkpointing) that require consistency + between different files (such as transaction log and tablespace files) for + crash recovery to succeed. The idea is to use this to make safe + multi-volume LVM snapshot backups. + */ + int (*checkpoint_state)(handlerton *hton, bool disabled); + void *(*create_cursor_read_view)(handlerton *hton, THD *thd); + void (*set_cursor_read_view)(handlerton *hton, THD *thd, void *read_view); + void (*close_cursor_read_view)(handlerton *hton, THD *thd, void *read_view); + handler *(*create)(handlerton *hton, TABLE_SHARE *table, MEM_ROOT *mem_root); + void (*drop_database)(handlerton *hton, char* path); + int (*panic)(handlerton *hton, enum ha_panic_function flag); + int (*start_consistent_snapshot)(handlerton *hton, THD *thd); + bool (*flush_logs)(handlerton *hton); + bool (*show_status)(handlerton *hton, THD *thd, stat_print_fn *print, enum ha_stat_type stat); + uint (*partition_flags)(); + uint (*alter_table_flags)(uint flags); + int (*alter_tablespace)(handlerton *hton, THD *thd, st_alter_tablespace *ts_info); + int (*fill_is_table)(handlerton *hton, THD *thd, TABLE_LIST *tables, + class Item *cond, + enum enum_schema_tables); + uint32 flags; /* global handler flags */ + /* + Those handlerton functions below are properly initialized at handler + init. + */ + int (*binlog_func)(handlerton *hton, THD *thd, enum_binlog_func fn, void *arg); + void (*binlog_log_query)(handlerton *hton, THD *thd, + enum_binlog_command binlog_command, + const char *query, uint query_length, + const char *db, const char *table_name); + int (*release_temporary_latches)(handlerton *hton, THD *thd); + + /* + Get log status. + If log_status is null then the handler do not support transaction + log information (i.e. log iterator can't be created). + (see example of implementation in handler.cc, TRANS_LOG_MGM_EXAMPLE_CODE) + + */ + enum log_status (*get_log_status)(handlerton *hton, char *log); + + /* + Iterators creator. + Presence of the pointer should be checked before using + */ + enum handler_create_iterator_result + (*create_iterator)(handlerton *hton, enum handler_iterator_type type, + struct handler_iterator *fill_this_in); + int (*discover)(handlerton *hton, THD* thd, const char *db, + const char *name, + uchar **frmblob, + size_t *frmlen); + int (*find_files)(handlerton *hton, THD *thd, + const char *db, + const char *path, + const char *wild, bool dir, List *files); + int (*table_exists_in_engine)(handlerton *hton, THD* thd, const char *db, + const char *name); + + uint32 license; /* Flag for Engine License */ + /* + Optional clauses in the CREATE/ALTER TABLE + */ + ha_create_table_option *table_options; // table level options + ha_create_table_option *field_options; // these are specified per field + ha_create_table_option *index_options; // these are specified per index + +}; + + +inline LEX_STRING *hton_name(const handlerton *hton) +{ + return &(hton2plugin[hton->slot]->name); +} + + +/* Possible flags of a handlerton (there can be 32 of them) */ +#define HTON_NO_FLAGS 0 +#define HTON_CLOSE_CURSORS_AT_COMMIT (1 << 0) +#define HTON_ALTER_NOT_SUPPORTED (1 << 1) //Engine does not support alter +#define HTON_CAN_RECREATE (1 << 2) //Delete all is used for truncate +#define HTON_HIDDEN (1 << 3) //Engine does not appear in lists +#define HTON_NOT_USER_SELECTABLE (1 << 5) +#define HTON_TEMPORARY_NOT_SUPPORTED (1 << 6) //Having temporary tables not supported +#define HTON_SUPPORT_LOG_TABLES (1 << 7) //Engine supports log tables +#define HTON_NO_PARTITION (1 << 8) //You can not partition these tables +#define HTON_EXTENDED_KEYS (1 << 9) //supports extended keys + +// MySQL compatibility. Unused. +#define HTON_SUPPORTS_FOREIGN_KEYS (1 << 0) //Foreign key constraint supported. + +class Ha_trx_info; + +struct THD_TRANS +{ + /* true is not all entries in the ht[] support 2pc */ + bool no_2pc; + /* storage engines that registered in this transaction */ + Ha_trx_info *ha_list; + /* + The purpose of this flag is to keep track of non-transactional + tables that were modified in scope of: + - transaction, when the variable is a member of + THD::transaction.all + - top-level statement or sub-statement, when the variable is a + member of THD::transaction.stmt + This member has the following life cycle: + * stmt.modified_non_trans_table is used to keep track of + modified non-transactional tables of top-level statements. At + the end of the previous statement and at the beginning of the session, + it is reset to FALSE. If such functions + as mysql_insert, mysql_update, mysql_delete etc modify a + non-transactional table, they set this flag to TRUE. At the + end of the statement, the value of stmt.modified_non_trans_table + is merged with all.modified_non_trans_table and gets reset. + * all.modified_non_trans_table is reset at the end of transaction + + * Since we do not have a dedicated context for execution of a + sub-statement, to keep track of non-transactional changes in a + sub-statement, we re-use stmt.modified_non_trans_table. + At entrance into a sub-statement, a copy of the value of + stmt.modified_non_trans_table (containing the changes of the + outer statement) is saved on stack. Then + stmt.modified_non_trans_table is reset to FALSE and the + substatement is executed. Then the new value is merged with the + saved value. + */ + bool modified_non_trans_table; + + void reset() { no_2pc= FALSE; modified_non_trans_table= FALSE; } + bool is_empty() const { return ha_list == NULL; } + THD_TRANS() {} /* Remove gcc warning */ +}; + + +/** + Either statement transaction or normal transaction - related + thread-specific storage engine data. + + If a storage engine participates in a statement/transaction, + an instance of this class is present in + thd->transaction.{stmt|all}.ha_list. The addition to + {stmt|all}.ha_list is made by trans_register_ha(). + + When it's time to commit or rollback, each element of ha_list + is used to access storage engine's prepare()/commit()/rollback() + methods, and also to evaluate if a full two phase commit is + necessary. + + @sa General description of transaction handling in handler.cc. +*/ + +class Ha_trx_info +{ +public: + /** Register this storage engine in the given transaction context. */ + void register_ha(THD_TRANS *trans, handlerton *ht_arg) + { + DBUG_ASSERT(m_flags == 0); + DBUG_ASSERT(m_ht == NULL); + DBUG_ASSERT(m_next == NULL); + + m_ht= ht_arg; + m_flags= (int) TRX_READ_ONLY; /* Assume read-only at start. */ + + m_next= trans->ha_list; + trans->ha_list= this; + } + + /** Clear, prepare for reuse. */ + void reset() + { + m_next= NULL; + m_ht= NULL; + m_flags= 0; + } + + Ha_trx_info() { reset(); } + + void set_trx_read_write() + { + DBUG_ASSERT(is_started()); + m_flags|= (int) TRX_READ_WRITE; + } + bool is_trx_read_write() const + { + DBUG_ASSERT(is_started()); + return m_flags & (int) TRX_READ_WRITE; + } + bool is_started() const { return m_ht != NULL; } + /** Mark this transaction read-write if the argument is read-write. */ + void coalesce_trx_with(const Ha_trx_info *stmt_trx) + { + /* + Must be called only after the transaction has been started. + Can be called many times, e.g. when we have many + read-write statements in a transaction. + */ + DBUG_ASSERT(is_started()); + if (stmt_trx->is_trx_read_write()) + set_trx_read_write(); + } + Ha_trx_info *next() const + { + DBUG_ASSERT(is_started()); + return m_next; + } + handlerton *ht() const + { + DBUG_ASSERT(is_started()); + return m_ht; + } +private: + enum { TRX_READ_ONLY= 0, TRX_READ_WRITE= 1 }; + /** Auxiliary, used for ha_list management */ + Ha_trx_info *m_next; + /** + Although a given Ha_trx_info instance is currently always used + for the same storage engine, 'ht' is not-NULL only when the + corresponding storage is a part of a transaction. + */ + handlerton *m_ht; + /** + Transaction flags related to this engine. + Not-null only if this instance is a part of transaction. + May assume a combination of enum values above. + */ + uchar m_flags; +}; + + +enum enum_tx_isolation { ISO_READ_UNCOMMITTED, ISO_READ_COMMITTED, + ISO_REPEATABLE_READ, ISO_SERIALIZABLE}; + + +typedef struct { + ulonglong data_file_length; + ulonglong max_data_file_length; + ulonglong index_file_length; + ulonglong delete_length; + ha_rows records; + ulong mean_rec_length; + time_t create_time; + time_t check_time; + time_t update_time; + ulonglong check_sum; +} PARTITION_STATS; + +#define UNDEF_NODEGROUP 65535 +class Item; +struct st_table_log_memory_entry; + +class partition_info; + +struct st_partition_iter; +#define NOT_A_PARTITION_ID ((uint32)-1) + +enum ha_choice { HA_CHOICE_UNDEF, HA_CHOICE_NO, HA_CHOICE_YES, HA_CHOICE_MAX }; + +typedef struct st_ha_create_information +{ + CHARSET_INFO *table_charset, *default_table_charset; + LEX_STRING connect_string; + const char *password, *tablespace; + LEX_STRING comment; + const char *data_file_name, *index_file_name; + const char *alias; + ulonglong max_rows,min_rows; + ulonglong auto_increment_value; + ulong table_options; + ulong avg_row_length; + ulong used_fields; + ulong key_block_size; + SQL_I_List merge_list; + handlerton *db_type; + /** + Row type of the table definition. + + Defaults to ROW_TYPE_DEFAULT for all non-ALTER statements. + For ALTER TABLE defaults to ROW_TYPE_NOT_USED (means "keep the current"). + + Can be changed either explicitly by the parser. + If nothing speficied inherits the value of the original table (if present). + */ + enum row_type row_type; + uint null_bits; /* NULL bits at start of record */ + uint options; /* OR of HA_CREATE_ options */ + uint merge_insert_method; + uint extra_size; /* length of extra data segment */ + enum ha_choice transactional; + bool frm_only; ///< 1 if no ha_create_table() + bool varchar; ///< 1 if table has a VARCHAR + enum ha_storage_media storage_media; ///< DEFAULT, DISK or MEMORY + enum ha_choice page_checksum; ///< If we have page_checksums + engine_option_value *option_list; ///< list of table create options + /* the following three are only for ALTER TABLE, check_if_incompatible_data() */ + ha_table_option_struct *option_struct; ///< structure with parsed table options + ha_field_option_struct **fields_option_struct; ///< array of field option structures + ha_index_option_struct **indexes_option_struct; ///< array of index option structures +} HA_CREATE_INFO; + + +typedef struct st_key_create_information +{ + enum ha_key_alg algorithm; + ulong block_size; + LEX_STRING parser_name; + LEX_STRING comment; +} KEY_CREATE_INFO; + + +/* + Class for maintaining hooks used inside operations on tables such + as: create table functions, delete table functions, and alter table + functions. + + Class is using the Template Method pattern to separate the public + usage interface from the private inheritance interface. This + imposes no overhead, since the public non-virtual function is small + enough to be inlined. + + The hooks are usually used for functions that does several things, + e.g., create_table_from_items(), which both create a table and lock + it. + */ +class TABLEOP_HOOKS +{ +public: + TABLEOP_HOOKS() {} + virtual ~TABLEOP_HOOKS() {} + + inline void prelock(TABLE **tables, uint count) + { + do_prelock(tables, count); + } + + inline int postlock(TABLE **tables, uint count) + { + return do_postlock(tables, count); + } +private: + /* Function primitive that is called prior to locking tables */ + virtual void do_prelock(TABLE **tables, uint count) + { + /* Default is to do nothing */ + } + + /** + Primitive called after tables are locked. + + If an error is returned, the tables will be unlocked and error + handling start. + + @return Error code or zero. + */ + virtual int do_postlock(TABLE **tables, uint count) + { + return 0; /* Default is to do nothing */ + } +}; + +typedef struct st_savepoint SAVEPOINT; +extern ulong savepoint_alloc_size; +extern KEY_CREATE_INFO default_key_create_info; + +/* Forward declaration for condition pushdown to storage engine */ +typedef class Item COND; + +typedef struct st_ha_check_opt +{ + st_ha_check_opt() {} /* Remove gcc warning */ + uint flags; /* isam layer flags (e.g. for myisamchk) */ + uint sql_flags; /* sql layer flags - for something myisamchk cannot do */ + time_t start_time; /* When check/repair starts */ + KEY_CACHE *key_cache; /* new key cache when changing key cache */ + void init(); +} HA_CHECK_OPT; + + +/******************************************************************************** + * MRR + ********************************************************************************/ + +typedef void *range_seq_t; + +typedef struct st_range_seq_if +{ + /* + Get key information + + SYNOPSIS + get_key_info() + init_params The seq_init_param parameter + length OUT length of the keys in this range sequence + map OUT key_part_map of the keys in this range sequence + + DESCRIPTION + This function is set only when using HA_MRR_FIXED_KEY mode. In that mode, + all ranges are single-point equality ranges that use the same set of key + parts. This function allows the MRR implementation to get the length of + a key, and which keyparts it uses. + */ + void (*get_key_info)(void *init_params, uint *length, key_part_map *map); + + /* + Initialize the traversal of range sequence + + SYNOPSIS + init() + init_params The seq_init_param parameter + n_ranges The number of ranges obtained + flags A combination of HA_MRR_SINGLE_POINT, HA_MRR_FIXED_KEY + + RETURN + An opaque value to be used as RANGE_SEQ_IF::next() parameter + */ + range_seq_t (*init)(void *init_params, uint n_ranges, uint flags); + + + /* + Get the next range in the range sequence + + SYNOPSIS + next() + seq The value returned by RANGE_SEQ_IF::init() + range OUT Information about the next range + + RETURN + FALSE - Ok, the range structure filled with info about the next range + TRUE - No more ranges + */ + bool (*next) (range_seq_t seq, KEY_MULTI_RANGE *range); + + /* + Check whether range_info orders to skip the next record + + SYNOPSIS + skip_record() + seq The value returned by RANGE_SEQ_IF::init() + range_info Information about the next range + (Ignored if MRR_NO_ASSOCIATION is set) + rowid Rowid of the record to be checked (ignored if set to 0) + + RETURN + 1 - Record with this range_info and/or this rowid shall be filtered + out from the stream of records returned by multi_range_read_next() + 0 - The record shall be left in the stream + */ + bool (*skip_record) (range_seq_t seq, range_id_t range_info, uchar *rowid); + + /* + Check if the record combination matches the index condition + SYNOPSIS + skip_index_tuple() + seq The value returned by RANGE_SEQ_IF::init() + range_info Information about the next range + + RETURN + 0 - The record combination satisfies the index condition + 1 - Otherwise + */ + bool (*skip_index_tuple) (range_seq_t seq, range_id_t range_info); +} RANGE_SEQ_IF; + +typedef bool (*SKIP_INDEX_TUPLE_FUNC) (range_seq_t seq, range_id_t range_info); + +class COST_VECT +{ +public: + double io_count; /* number of I/O */ + double avg_io_cost; /* cost of an average I/O oper. */ + double cpu_cost; /* cost of operations in CPU */ + double mem_cost; /* cost of used memory */ + double import_cost; /* cost of remote operations */ + + enum { IO_COEFF=1 }; + enum { CPU_COEFF=1 }; + enum { MEM_COEFF=1 }; + enum { IMPORT_COEFF=1 }; + + COST_VECT() {} // keep gcc happy + + double total_cost() + { + return IO_COEFF*io_count*avg_io_cost + CPU_COEFF * cpu_cost + + MEM_COEFF*mem_cost + IMPORT_COEFF*import_cost; + } + + void zero() + { + avg_io_cost= 1.0; + io_count= cpu_cost= mem_cost= import_cost= 0.0; + } + + void multiply(double m) + { + io_count *= m; + cpu_cost *= m; + import_cost *= m; + /* Don't multiply mem_cost */ + } + + void add(const COST_VECT* cost) + { + double io_count_sum= io_count + cost->io_count; + add_io(cost->io_count, cost->avg_io_cost); + io_count= io_count_sum; + cpu_cost += cost->cpu_cost; + } + void add_io(double add_io_cnt, double add_avg_cost) + { + /* In edge cases add_io_cnt may be zero */ + if (add_io_cnt > 0) + { + double io_count_sum= io_count + add_io_cnt; + avg_io_cost= (io_count * avg_io_cost + + add_io_cnt * add_avg_cost) / io_count_sum; + io_count= io_count_sum; + } + } + + /* + To be used when we go from old single value-based cost calculations to + the new COST_VECT-based. + */ + void convert_from_cost(double cost) + { + zero(); + avg_io_cost= 1.0; + io_count= cost; + } +}; + +void get_sweep_read_cost(TABLE *table, ha_rows nrows, bool interrupted, + COST_VECT *cost); + +/* + Indicates that all scanned ranges will be singlepoint (aka equality) ranges. + The ranges may not use the full key but all of them will use the same number + of key parts. +*/ +#define HA_MRR_SINGLE_POINT 1 +#define HA_MRR_FIXED_KEY 2 + +/* + Indicates that RANGE_SEQ_IF::next(&range) doesn't need to fill in the + 'range' parameter. +*/ +#define HA_MRR_NO_ASSOCIATION 4 + +/* + The MRR user will provide ranges in key order, and MRR implementation + must return rows in key order. +*/ +#define HA_MRR_SORTED 8 + +/* MRR implementation doesn't have to retrieve full records */ +#define HA_MRR_INDEX_ONLY 16 + +/* + The passed memory buffer is of maximum possible size, the caller can't + assume larger buffer. +*/ +#define HA_MRR_LIMITS 32 + + +/* + Flag set <=> default MRR implementation is used + (The choice is made by **_info[_const]() function which may set this + flag. SQL layer remembers the flag value and then passes it to + multi_read_range_init(). +*/ +#define HA_MRR_USE_DEFAULT_IMPL 64 + +/* + Used only as parameter to multi_range_read_info(): + Flag set <=> the caller guarantees that the bounds of the scanned ranges + will not have NULL values. +*/ +#define HA_MRR_NO_NULL_ENDPOINTS 128 + +/* + The MRR user has materialized range keys somewhere in the user's buffer. + This can be used for optimization of the procedure that sorts these keys + since in this case key values don't have to be copied into the MRR buffer. + + In other words, it is guaranteed that after RANGE_SEQ_IF::next() call the + pointer in range->start_key.key will point to a key value that will remain + there until the end of the MRR scan. +*/ +#define HA_MRR_MATERIALIZED_KEYS 256 + +/* + The following bits are reserved for use by MRR implementation. The intended + use scenario: + + * sql layer calls handler->multi_range_read_info[_const]() + - MRR implementation figures out what kind of scan it will perform, saves + the result in *mrr_mode parameter. + * sql layer remembers what was returned in *mrr_mode + + * the optimizer picks the query plan (which may or may not include the MRR + scan that was estimated by the multi_range_read_info[_const] call) + + * if the query is an EXPLAIN statement, sql layer will call + handler->multi_range_read_explain_info(mrr_mode) to get a text description + of the picked MRR scan; the description will be a part of EXPLAIN output. +*/ +#define HA_MRR_IMPLEMENTATION_FLAG1 512 +#define HA_MRR_IMPLEMENTATION_FLAG2 1024 +#define HA_MRR_IMPLEMENTATION_FLAG3 2048 +#define HA_MRR_IMPLEMENTATION_FLAG4 4096 +#define HA_MRR_IMPLEMENTATION_FLAG5 8192 +#define HA_MRR_IMPLEMENTATION_FLAG6 16384 + +#define HA_MRR_IMPLEMENTATION_FLAGS \ + (512 | 1024 | 2048 | 4096 | 8192 | 16384) + +/* + This is a buffer area that the handler can use to store rows. + 'end_of_used_area' should be kept updated after calls to + read-functions so that other parts of the code can use the + remaining area (until next read calls is issued). +*/ + +typedef struct st_handler_buffer +{ + /* const? */uchar *buffer; /* Buffer one can start using */ + /* const? */uchar *buffer_end; /* End of buffer */ + uchar *end_of_used_area; /* End of area that was used by handler */ +} HANDLER_BUFFER; + +typedef struct system_status_var SSV; + +class ha_statistics +{ +public: + ulonglong data_file_length; /* Length off data file */ + ulonglong max_data_file_length; /* Length off data file */ + ulonglong index_file_length; + ulonglong max_index_file_length; + ulonglong delete_length; /* Free bytes */ + ulonglong auto_increment_value; + /* + The number of records in the table. + 0 - means the table has exactly 0 rows + other - if (table_flags() & HA_STATS_RECORDS_IS_EXACT) + the value is the exact number of records in the table + else + it is an estimate + */ + ha_rows records; + ha_rows deleted; /* Deleted records */ + ulong mean_rec_length; /* physical reclength */ + time_t create_time; /* When table was created */ + time_t check_time; + time_t update_time; + uint block_size; /* index block size */ + + /* + number of buffer bytes that native mrr implementation needs, + */ + uint mrr_length_per_rec; + + ha_statistics(): + data_file_length(0), max_data_file_length(0), + index_file_length(0), delete_length(0), auto_increment_value(0), + records(0), deleted(0), mean_rec_length(0), create_time(0), + check_time(0), update_time(0), block_size(0), mrr_length_per_rec(0) + {} +}; + +extern "C" enum icp_result handler_index_cond_check(void* h_arg); + +uint calculate_key_len(TABLE *, uint, const uchar *, key_part_map); +/* + bitmap with first N+1 bits set + (keypart_map for a key prefix of [0..N] keyparts) +*/ +#define make_keypart_map(N) (((key_part_map)2 << (N)) - 1) +/* + bitmap with first N bits set + (keypart_map for a key prefix of [0..N-1] keyparts) +*/ +#define make_prev_keypart_map(N) (((key_part_map)1 << (N)) - 1) + + +/** + Index creation context. + Created by handler::add_index() and destroyed by handler::final_add_index(). + And finally freed at the end of the statement. + (Sql_alloc does not free in delete). +*/ + +class handler_add_index : public Sql_alloc +{ +public: + /* Table where the indexes are added */ + TABLE* const table; + /* Indexes being created */ + KEY* const key_info; + /* Size of key_info[] */ + const uint num_of_keys; + handler_add_index(TABLE *table_arg, KEY *key_info_arg, uint num_of_keys_arg) + : table (table_arg), key_info (key_info_arg), num_of_keys (num_of_keys_arg) + {} + virtual ~handler_add_index() {} +}; + +class Query_cache; +struct Query_cache_block_table; +/** + The handler class is the interface for dynamically loadable + storage engines. Do not add ifdefs and take care when adding or + changing virtual functions to avoid vtable confusion +*/ + +class handler :public Sql_alloc +{ +public: + typedef ulonglong Table_flags; +protected: + TABLE_SHARE *table_share; /* The table definition */ + TABLE *table; /* The current open table */ + Table_flags cached_table_flags; /* Set on init() and open() */ + + ha_rows estimation_rows_to_insert; +public: + handlerton *ht; /* storage engine of this handler */ + uchar *ref; /* Pointer to current row */ + uchar *dup_ref; /* Pointer to duplicate row */ + + ha_statistics stats; + + /** MultiRangeRead-related members: */ + range_seq_t mrr_iter; /* Interator to traverse the range sequence */ + RANGE_SEQ_IF mrr_funcs; /* Range sequence traversal functions */ + HANDLER_BUFFER *multi_range_buffer; /* MRR buffer info */ + uint ranges_in_seq; /* Total number of ranges in the traversed sequence */ + /* TRUE <=> source MRR ranges and the output are ordered */ + bool mrr_is_output_sorted; + + /** TRUE <=> we're currently traversing a range in mrr_cur_range. */ + bool mrr_have_range; + /** Current range (the one we're now returning rows from) */ + KEY_MULTI_RANGE mrr_cur_range; + + /** The following are for read_range() */ + key_range save_end_range, *end_range; + KEY_PART_INFO *range_key_part; + int key_compare_result_on_equal; + bool eq_range; + bool internal_tmp_table; /* If internal tmp table */ + + uint errkey; /* Last dup key */ + uint key_used_on_scan; + uint active_index; + /* + TRUE <=> the engine guarantees that returned records are within the range + being scanned. + */ + bool in_range_check_pushed_down; + + /** Length of ref (1-8 or the clustered key length) */ + uint ref_length; + FT_INFO *ft_handler; + enum {NONE=0, INDEX, RND} inited; + bool locked; + bool implicit_emptied; /* Can be !=0 only if HEAP */ + const COND *pushed_cond; + /** + next_insert_id is the next value which should be inserted into the + auto_increment column: in a inserting-multi-row statement (like INSERT + SELECT), for the first row where the autoinc value is not specified by the + statement, get_auto_increment() called and asked to generate a value, + next_insert_id is set to the next value, then for all other rows + next_insert_id is used (and increased each time) without calling + get_auto_increment(). + */ + ulonglong next_insert_id; + /** + insert id for the current row (*autogenerated*; if not + autogenerated, it's 0). + At first successful insertion, this variable is stored into + THD::first_successful_insert_id_in_cur_stmt. + */ + ulonglong insert_id_for_cur_row; + /** + Interval returned by get_auto_increment() and being consumed by the + inserter. + */ + /* Statistics variables */ + ulonglong rows_read; + ulonglong rows_tmp_read; + ulonglong rows_changed; + /* One bigger than needed to avoid to test if key == MAX_KEY */ + ulonglong index_rows_read[MAX_KEY+1]; + + Item *pushed_idx_cond; + uint pushed_idx_cond_keyno; /* The index which the above condition is for */ + + Discrete_interval auto_inc_interval_for_cur_row; + /** + Number of reserved auto-increment intervals. Serves as a heuristic + when we have no estimation of how many records the statement will insert: + the more intervals we have reserved, the bigger the next one. Reset in + handler::ha_release_auto_increment(). + */ + uint auto_inc_intervals_count; + + /** + Instrumented table associated with this handler. + This member should be set to NULL when no instrumentation is in place, + so that linking an instrumented/non instrumented server/plugin works. + For example: + - the server is compiled with the instrumentation. + The server expects either NULL or valid pointers in m_psi. + - an engine plugin is compiled without instrumentation. + The plugin can not leave this pointer uninitialized, + or can not leave a trash value on purpose in this pointer, + as this would crash the server. + */ + PSI_table *m_psi; + + handler(handlerton *ht_arg, TABLE_SHARE *share_arg) + :table_share(share_arg), table(0), + estimation_rows_to_insert(0), ht(ht_arg), + ref(0), end_range(NULL), key_used_on_scan(MAX_KEY), active_index(MAX_KEY), + in_range_check_pushed_down(FALSE), + ref_length(sizeof(my_off_t)), + ft_handler(0), inited(NONE), + locked(FALSE), implicit_emptied(0), + pushed_cond(0), next_insert_id(0), insert_id_for_cur_row(0), + pushed_idx_cond(NULL), + pushed_idx_cond_keyno(MAX_KEY), + auto_inc_intervals_count(0), + m_psi(NULL) + { + reset_statistics(); + } + virtual ~handler(void) + { + DBUG_ASSERT(locked == FALSE); + DBUG_ASSERT(inited == NONE); + } + virtual handler *clone(const char *name, MEM_ROOT *mem_root); + /** This is called after create to allow us to set up cached variables */ + void init() + { + cached_table_flags= table_flags(); + } + /* ha_ methods: pubilc wrappers for private virtual API */ + + int ha_open(TABLE *table, const char *name, int mode, uint test_if_locked); + int ha_index_init(uint idx, bool sorted) + { + DBUG_EXECUTE_IF("ha_index_init_fail", return HA_ERR_TABLE_DEF_CHANGED;); + int result; + DBUG_ENTER("ha_index_init"); + DBUG_ASSERT(inited==NONE); + if (!(result= index_init(idx, sorted))) + { + inited= INDEX; + active_index= idx; + end_range= NULL; + } + DBUG_RETURN(result); + } + int ha_index_end() + { + DBUG_ENTER("ha_index_end"); + DBUG_ASSERT(inited==INDEX); + inited= NONE; + active_index= MAX_KEY; + end_range= NULL; + DBUG_RETURN(index_end()); + } + /* This is called after index_init() if we need to do a index scan */ + virtual int prepare_index_scan() { return 0; } + virtual int prepare_index_key_scan_map(const uchar * key, key_part_map keypart_map) + { + uint key_len= calculate_key_len(table, active_index, key, keypart_map); + return prepare_index_key_scan(key, key_len); + } + virtual int prepare_index_key_scan( const uchar * key, uint key_len ) + { return 0; } + virtual int prepare_range_scan(const key_range *start_key, const key_range *end_key) + { return 0; } + + int ha_rnd_init(bool scan) __attribute__ ((warn_unused_result)) + { + DBUG_EXECUTE_IF("ha_rnd_init_fail", return HA_ERR_TABLE_DEF_CHANGED;); + int result; + DBUG_ENTER("ha_rnd_init"); + DBUG_ASSERT(inited==NONE || (inited==RND && scan)); + inited= (result= rnd_init(scan)) ? NONE: RND; + end_range= NULL; + DBUG_RETURN(result); + } + int ha_rnd_end() + { + DBUG_ENTER("ha_rnd_end"); + DBUG_ASSERT(inited==RND); + inited=NONE; + end_range= NULL; + DBUG_RETURN(rnd_end()); + } + int ha_rnd_init_with_error(bool scan) __attribute__ ((warn_unused_result)); + int ha_reset(); + /* this is necessary in many places, e.g. in HANDLER command */ + int ha_index_or_rnd_end() + { + return inited == INDEX ? ha_index_end() : inited == RND ? ha_rnd_end() : 0; + } + /** + The cached_table_flags is set at ha_open and ha_external_lock + */ + Table_flags ha_table_flags() const { return cached_table_flags; } + /** + These functions represent the public interface to *users* of the + handler class, hence they are *not* virtual. For the inheritance + interface, see the (private) functions write_row(), update_row(), + and delete_row() below. + */ + int ha_external_lock(THD *thd, int lock_type); + int ha_write_row(uchar * buf); + int ha_update_row(const uchar * old_data, uchar * new_data); + int ha_delete_row(const uchar * buf); + void ha_release_auto_increment(); + + int check_collation_compatibility(); + int ha_check_for_upgrade(HA_CHECK_OPT *check_opt); + /** to be actually called to get 'check()' functionality*/ + int ha_check(THD *thd, HA_CHECK_OPT *check_opt); + int ha_repair(THD* thd, HA_CHECK_OPT* check_opt); + void ha_start_bulk_insert(ha_rows rows) + { + DBUG_ENTER("handler::ha_start_bulk_insert"); + estimation_rows_to_insert= rows; + start_bulk_insert(rows); + DBUG_VOID_RETURN; + } + int ha_end_bulk_insert() + { + DBUG_ENTER("handler::ha_end_bulk_insert"); + estimation_rows_to_insert= 0; + int ret= end_bulk_insert(); + DBUG_RETURN(ret); + } + int ha_bulk_update_row(const uchar *old_data, uchar *new_data, + uint *dup_key_found); + int ha_delete_all_rows(); + int ha_truncate(); + int ha_reset_auto_increment(ulonglong value); + int ha_optimize(THD* thd, HA_CHECK_OPT* check_opt); + int ha_analyze(THD* thd, HA_CHECK_OPT* check_opt); + bool ha_check_and_repair(THD *thd); + int ha_disable_indexes(uint mode); + int ha_enable_indexes(uint mode); + int ha_discard_or_import_tablespace(my_bool discard); + void ha_prepare_for_alter(); + int ha_rename_table(const char *from, const char *to); + int ha_delete_table(const char *name); + void ha_drop_table(const char *name); + + int ha_create(const char *name, TABLE *form, HA_CREATE_INFO *info); + + int ha_create_handler_files(const char *name, const char *old_name, + int action_flag, HA_CREATE_INFO *info); + + int ha_change_partitions(HA_CREATE_INFO *create_info, + const char *path, + ulonglong * const copied, + ulonglong * const deleted, + const uchar *pack_frm_data, + size_t pack_frm_len); + int ha_drop_partitions(const char *path); + int ha_rename_partitions(const char *path); + + void adjust_next_insert_id_after_explicit_value(ulonglong nr); + int update_auto_increment(); + void print_keydup_error(uint key_nr, const char *msg, myf errflag); + virtual void print_error(int error, myf errflag); + virtual bool get_error_message(int error, String *buf); + uint get_dup_key(int error); + void reset_statistics() + { + rows_read= rows_changed= rows_tmp_read= 0; + bzero(index_rows_read, sizeof(index_rows_read)); + } + virtual void change_table_ptr(TABLE *table_arg, TABLE_SHARE *share) + { + table= table_arg; + table_share= share; + reset_statistics(); + } + virtual double scan_time() + { return ulonglong2double(stats.data_file_length) / IO_SIZE + 2; } + virtual double read_time(uint index, uint ranges, ha_rows rows) + { return rows2double(ranges+rows); } + + /** + Calculate cost of 'keyread' scan for given index and number of records. + + @param index index to read + @param ranges #of ranges to read + @param rows #of records to read + */ + virtual double keyread_time(uint index, uint ranges, ha_rows rows); + + virtual const key_map *keys_to_use_for_scanning() { return &key_map_empty; } + bool has_transactions() + { return (ha_table_flags() & HA_NO_TRANSACTIONS) == 0; } + virtual uint extra_rec_buf_length() const { return 0; } + + /** + This method is used to analyse the error to see whether the error + is ignorable or not, certain handlers can have more error that are + ignorable than others. E.g. the partition handler can get inserts + into a range where there is no partition and this is an ignorable + error. + HA_ERR_FOUND_DUP_UNIQUE is a special case in MyISAM that means the + same thing as HA_ERR_FOUND_DUP_KEY but can in some cases lead to + a slightly different error message. + */ + virtual bool is_fatal_error(int error, uint flags) + { + if (!error || + ((flags & HA_CHECK_DUP_KEY) && + (error == HA_ERR_FOUND_DUPP_KEY || + error == HA_ERR_FOUND_DUPP_UNIQUE)) || + error == HA_ERR_AUTOINC_ERANGE || + ((flags & HA_CHECK_FK_ERROR) && + (error == HA_ERR_ROW_IS_REFERENCED || + error == HA_ERR_NO_REFERENCED_ROW))) + return FALSE; + return TRUE; + } + + /** + Number of rows in table. It will only be called if + (table_flags() & (HA_HAS_RECORDS | HA_STATS_RECORDS_IS_EXACT)) != 0 + */ + virtual ha_rows records() { return stats.records; } + /** + Return upper bound of current number of records in the table + (max. of how many records one will retrieve when doing a full table scan) + If upper bound is not known, HA_POS_ERROR should be returned as a max + possible upper bound. + */ + virtual ha_rows estimate_rows_upper_bound() + { return stats.records+EXTRA_RECORDS; } + + /** + Get the row type from the storage engine. If this method returns + ROW_TYPE_NOT_USED, the information in HA_CREATE_INFO should be used. + */ + virtual enum row_type get_row_type() const { return ROW_TYPE_NOT_USED; } + + virtual const char *index_type(uint key_number) { DBUG_ASSERT(0); return "";} + + + /** + Signal that the table->read_set and table->write_set table maps changed + The handler is allowed to set additional bits in the above map in this + call. Normally the handler should ignore all calls until we have done + a ha_rnd_init() or ha_index_init(), write_row(), update_row or delete_row() + as there may be several calls to this routine. + */ + virtual void column_bitmaps_signal(); + /* + We have to check for inited as some engines, like innodb, sets + active_index during table scan. + */ + uint get_index(void) const + { return inited == INDEX ? active_index : MAX_KEY; } + int ha_close(void); + + /** + @retval 0 Bulk update used by handler + @retval 1 Bulk update not used, normal operation used + */ + virtual bool start_bulk_update() { return 1; } + /** + @retval 0 Bulk delete used by handler + @retval 1 Bulk delete not used, normal operation used + */ + virtual bool start_bulk_delete() { return 1; } + /** + After this call all outstanding updates must be performed. The number + of duplicate key errors are reported in the duplicate key parameter. + It is allowed to continue to the batched update after this call, the + handler has to wait until end_bulk_update with changing state. + + @param dup_key_found Number of duplicate keys found + + @retval 0 Success + @retval >0 Error code + */ + virtual int exec_bulk_update(uint *dup_key_found) + { + DBUG_ASSERT(FALSE); + return HA_ERR_WRONG_COMMAND; + } + /** + Perform any needed clean-up, no outstanding updates are there at the + moment. + */ + virtual void end_bulk_update() { return; } + /** + Execute all outstanding deletes and close down the bulk delete. + + @retval 0 Success + @retval >0 Error code + */ + virtual int end_bulk_delete() + { + DBUG_ASSERT(FALSE); + return HA_ERR_WRONG_COMMAND; + } + /** + @brief + Positions an index cursor to the index specified in the + handle. Fetches the row if available. If the key value is null, + begin at the first key of the index. + */ +protected: + virtual int index_read_map(uchar * buf, const uchar * key, + key_part_map keypart_map, + enum ha_rkey_function find_flag) + { + uint key_len= calculate_key_len(table, active_index, key, keypart_map); + return index_read(buf, key, key_len, find_flag); + } + /** + @brief + Positions an index cursor to the index specified in the + handle. Fetches the row if available. If the key value is null, + begin at the first key of the index. + */ + virtual int index_read_idx_map(uchar * buf, uint index, const uchar * key, + key_part_map keypart_map, + enum ha_rkey_function find_flag); + virtual int index_next(uchar * buf) + { return HA_ERR_WRONG_COMMAND; } + virtual int index_prev(uchar * buf) + { return HA_ERR_WRONG_COMMAND; } + virtual int index_first(uchar * buf) + { return HA_ERR_WRONG_COMMAND; } + virtual int index_last(uchar * buf) + { return HA_ERR_WRONG_COMMAND; } + virtual int index_next_same(uchar *buf, const uchar *key, uint keylen); + virtual int close(void)=0; + inline void update_rows_read() + { + if (likely(!internal_tmp_table)) + rows_read++; + else + rows_tmp_read++; + } + inline void update_index_statistics() + { + index_rows_read[active_index]++; + update_rows_read(); + } +public: + + /* Similar functions like the above, but does statistics counting */ + inline int ha_index_read_map(uchar * buf, const uchar * key, + key_part_map keypart_map, + enum ha_rkey_function find_flag); + inline int ha_index_read_idx_map(uchar * buf, uint index, const uchar * key, + key_part_map keypart_map, + enum ha_rkey_function find_flag); + inline int ha_index_next(uchar * buf); + inline int ha_index_prev(uchar * buf); + inline int ha_index_first(uchar * buf); + inline int ha_index_last(uchar * buf); + inline int ha_index_next_same(uchar *buf, const uchar *key, uint keylen); + /* + TODO: should we make for those functions non-virtual ha_func_name wrappers, + too? + */ + virtual ha_rows multi_range_read_info_const(uint keyno, RANGE_SEQ_IF *seq, + void *seq_init_param, + uint n_ranges, uint *bufsz, + uint *mrr_mode, COST_VECT *cost); + virtual ha_rows multi_range_read_info(uint keyno, uint n_ranges, uint keys, + uint key_parts, uint *bufsz, + uint *mrr_mode, COST_VECT *cost); + virtual int multi_range_read_init(RANGE_SEQ_IF *seq, void *seq_init_param, + uint n_ranges, uint mrr_mode, + HANDLER_BUFFER *buf); + virtual int multi_range_read_next(range_id_t *range_info); + /* + Return string representation of the MRR plan. + + This is intended to be used for EXPLAIN, via the following scenario: + 1. SQL layer calls handler->multi_range_read_info(). + 1.1. Storage engine figures out whether it will use some non-default + MRR strategy, sets appropritate bits in *mrr_mode, and returns + control to SQL layer + 2. SQL layer remembers the returned mrr_mode + 3. SQL layer compares various options and choses the final query plan. As + a part of that, it makes a choice of whether to use the MRR strategy + picked in 1.1 + 4. EXPLAIN code converts the query plan to its text representation. If MRR + strategy is part of the plan, it calls + multi_range_read_explain_info(mrr_mode) to get a text representation of + the picked MRR strategy. + + @param mrr_mode Mode which was returned by multi_range_read_info[_const] + @param str INOUT string to be printed for EXPLAIN + @param str_end End of the string buffer. The function is free to put the + string into [str..str_end] memory range. + */ + virtual int multi_range_read_explain_info(uint mrr_mode, char *str, + size_t size) + { return 0; } + + virtual int read_range_first(const key_range *start_key, + const key_range *end_key, + bool eq_range, bool sorted); + virtual int read_range_next(); + int compare_key(key_range *range); + int compare_key2(key_range *range); + virtual int ft_init() { return HA_ERR_WRONG_COMMAND; } + void ft_end() { ft_handler=NULL; } + virtual FT_INFO *ft_init_ext(uint flags, uint inx,String *key) + { return NULL; } +private: + virtual int ft_read(uchar *buf) { return HA_ERR_WRONG_COMMAND; } + virtual int rnd_next(uchar *buf)=0; + virtual int rnd_pos(uchar * buf, uchar *pos)=0; + /** + This function only works for handlers having + HA_PRIMARY_KEY_REQUIRED_FOR_POSITION set. + It will return the row with the PK given in the record argument. + */ + virtual int rnd_pos_by_record(uchar *record) + { + position(record); + return rnd_pos(record, ref); + } + virtual int read_first_row(uchar *buf, uint primary_key); +public: + + /* Same as above, but with statistics */ + inline int ha_ft_read(uchar *buf); + inline int ha_rnd_next(uchar *buf); + inline int ha_rnd_pos(uchar *buf, uchar *pos); + inline int ha_rnd_pos_by_record(uchar *buf); + inline int ha_read_first_row(uchar *buf, uint primary_key); + + /** + The following 3 function is only needed for tables that may be + internal temporary tables during joins. + */ + virtual int remember_rnd_pos() + { return HA_ERR_WRONG_COMMAND; } + virtual int restart_rnd_next(uchar *buf) + { return HA_ERR_WRONG_COMMAND; } + virtual int rnd_same(uchar *buf, uint inx) + { return HA_ERR_WRONG_COMMAND; } + + virtual ha_rows records_in_range(uint inx, key_range *min_key, + key_range *max_key) + { return (ha_rows) 10; } + /* + If HA_PRIMARY_KEY_REQUIRED_FOR_POSITION is set, then it sets ref + (reference to the row, aka position, with the primary key given in + the record). + Otherwise it set ref to the current row. + */ + virtual void position(const uchar *record)=0; + virtual int info(uint)=0; // see my_base.h for full description + virtual void get_dynamic_partition_info(PARTITION_STATS *stat_info, + uint part_id); + virtual int extra(enum ha_extra_function operation) + { return 0; } + virtual int extra_opt(enum ha_extra_function operation, ulong cache_size) + { return extra(operation); } + + /** + In an UPDATE or DELETE, if the row under the cursor was locked by another + transaction, and the engine used an optimistic read of the last + committed row value under the cursor, then the engine returns 1 from this + function. MySQL must NOT try to update this optimistic value. If the + optimistic value does not match the WHERE condition, MySQL can decide to + skip over this row. Currently only works for InnoDB. This can be used to + avoid unnecessary lock waits. + + If this method returns nonzero, it will also signal the storage + engine that the next read will be a locking re-read of the row. + */ + virtual bool was_semi_consistent_read() { return 0; } + /** + Tell the engine whether it should avoid unnecessary lock waits. + If yes, in an UPDATE or DELETE, if the row under the cursor was locked + by another transaction, the engine may try an optimistic read of + the last committed row value under the cursor. + */ + virtual void try_semi_consistent_read(bool) {} + virtual void unlock_row() {} + virtual int start_stmt(THD *thd, thr_lock_type lock_type) {return 0;} + virtual void get_auto_increment(ulonglong offset, ulonglong increment, + ulonglong nb_desired_values, + ulonglong *first_value, + ulonglong *nb_reserved_values); + void set_next_insert_id(ulonglong id) + { + DBUG_PRINT("info",("auto_increment: next value %lu", (ulong)id)); + next_insert_id= id; + } + void restore_auto_increment(ulonglong prev_insert_id) + { + /* + Insertion of a row failed, re-use the lastly generated auto_increment + id, for the next row. This is achieved by resetting next_insert_id to + what it was before the failed insertion (that old value is provided by + the caller). If that value was 0, it was the first row of the INSERT; + then if insert_id_for_cur_row contains 0 it means no id was generated + for this first row, so no id was generated since the INSERT started, so + we should set next_insert_id to 0; if insert_id_for_cur_row is not 0, it + is the generated id of the first and failed row, so we use it. + */ + next_insert_id= (prev_insert_id > 0) ? prev_insert_id : + insert_id_for_cur_row; + } + + virtual void update_create_info(HA_CREATE_INFO *create_info) {} + int check_old_types(); + virtual int assign_to_keycache(THD* thd, HA_CHECK_OPT* check_opt) + { return HA_ADMIN_NOT_IMPLEMENTED; } + virtual int preload_keys(THD* thd, HA_CHECK_OPT* check_opt) + { return HA_ADMIN_NOT_IMPLEMENTED; } + /* end of the list of admin commands */ + + virtual int indexes_are_disabled(void) {return 0;} + virtual char *update_table_comment(const char * comment) + { return (char*) comment;} + virtual void append_create_info(String *packet) {} + /** + If index == MAX_KEY then a check for table is made and if index < + MAX_KEY then a check is made if the table has foreign keys and if + a foreign key uses this index (and thus the index cannot be dropped). + + @param index Index to check if foreign key uses it + + @retval TRUE Foreign key defined on table or index + @retval FALSE No foreign key defined + */ + virtual bool is_fk_defined_on_table_or_index(uint index) + { return FALSE; } + virtual char* get_foreign_key_create_info() + { return(NULL);} /* gets foreign key create string from InnoDB */ + virtual char* get_tablespace_name(THD *thd, char *name, uint name_len) + { return(NULL);} /* gets tablespace name from handler */ + /** used in ALTER TABLE; 1 if changing storage engine is allowed */ + virtual bool can_switch_engines() { return 1; } + virtual int can_continue_handler_scan() { return 0; } + /** + Get the list of foreign keys in this table. + + @remark Returns the set of foreign keys where this table is the + dependent or child table. + + @param thd The thread handle. + @param f_key_list[out] The list of foreign keys. + + @return The handler error code or zero for success. + */ + virtual int + get_foreign_key_list(THD *thd, List *f_key_list) + { return 0; } + /** + Get the list of foreign keys referencing this table. + + @remark Returns the set of foreign keys where this table is the + referenced or parent table. + + @param thd The thread handle. + @param f_key_list[out] The list of foreign keys. + + @return The handler error code or zero for success. + */ + virtual int + get_parent_foreign_key_list(THD *thd, List *f_key_list) + { return 0; } + virtual uint referenced_by_foreign_key() { return 0;} + virtual void init_table_handle_for_HANDLER() + { return; } /* prepare InnoDB for HANDLER */ + virtual void free_foreign_key_create_info(char* str) {} + /** The following can be called without an open handler */ + virtual const char *table_type() const =0; + /** + If frm_error() is called then we will use this to find out what file + extentions exist for the storage engine. This is also used by the default + rename_table and delete_table method in handler.cc. + + For engines that have two file name extentions (separate meta/index file + and data file), the order of elements is relevant. First element of engine + file name extentions array should be meta/index file extention. Second + element - data file extention. This order is assumed by + prepare_for_repair() when REPAIR TABLE ... USE_FRM is issued. + */ + virtual const char **bas_ext() const =0; + + virtual int get_default_no_partitions(HA_CREATE_INFO *create_info) + { return 1;} + virtual void set_auto_partitions(partition_info *part_info) { return; } + virtual bool get_no_parts(const char *name, + uint *no_parts) + { + *no_parts= 0; + return 0; + } + virtual void set_part_info(partition_info *part_info) {return;} + + virtual ulong index_flags(uint idx, uint part, bool all_parts) const =0; + +/** + First phase of in-place add index. + Handlers are supposed to create new indexes here but not make them + visible. + + @param table_arg Table to add index to + @param key_info Information about new indexes + @param num_of_key Number of new indexes + @param add[out] Context of handler specific information needed + for final_add_index(). + + @note This function can be called with less than exclusive metadata + lock depending on which flags are listed in alter_table_flags. +*/ + virtual int add_index(TABLE *table_arg, KEY *key_info, uint num_of_keys, + handler_add_index **add) + { return (HA_ERR_WRONG_COMMAND); } + +/** + Second and last phase of in-place add index. + Commit or rollback pending new indexes. + + @param add Context of handler specific information from add_index(). + @param commit If true, commit. If false, rollback index changes. + + @note This function is called with exclusive metadata lock. +*/ + virtual int final_add_index(handler_add_index *add, bool commit) + { return (HA_ERR_WRONG_COMMAND); } + + virtual int prepare_drop_index(TABLE *table_arg, uint *key_num, + uint num_of_keys) + { return (HA_ERR_WRONG_COMMAND); } + virtual int final_drop_index(TABLE *table_arg) + { return (HA_ERR_WRONG_COMMAND); } + + uint max_record_length() const + { return min(HA_MAX_REC_LENGTH, max_supported_record_length()); } + uint max_keys() const + { return min(MAX_KEY, max_supported_keys()); } + uint max_key_parts() const + { return min(MAX_REF_PARTS, max_supported_key_parts()); } + uint max_key_length() const + { return min(MAX_KEY_LENGTH, max_supported_key_length()); } + uint max_key_part_length() const + { return min(MAX_KEY_LENGTH, max_supported_key_part_length()); } + + virtual uint max_supported_record_length() const { return HA_MAX_REC_LENGTH; } + virtual uint max_supported_keys() const { return 0; } + virtual uint max_supported_key_parts() const { return MAX_REF_PARTS; } + virtual uint max_supported_key_length() const { return MAX_KEY_LENGTH; } + virtual uint max_supported_key_part_length() const { return 255; } + virtual uint min_record_length(uint options) const { return 1; } + + virtual uint checksum() const { return 0; } + virtual bool is_crashed() const { return 0; } + virtual bool auto_repair(int error) const { return 0; } + + void update_global_table_stats(); + void update_global_index_stats(); + +#define CHF_CREATE_FLAG 0 +#define CHF_DELETE_FLAG 1 +#define CHF_RENAME_FLAG 2 +#define CHF_INDEX_FLAG 3 + + /** + @note lock_count() can return > 1 if the table is MERGE or partitioned. + */ + virtual uint lock_count(void) const { return 1; } + /** + Is not invoked for non-transactional temporary tables. + + @note store_lock() can return more than one lock if the table is MERGE + or partitioned. + + @note that one can NOT rely on table->in_use in store_lock(). It may + refer to a different thread if called from mysql_lock_abort_for_thread(). + + @note If the table is MERGE, store_lock() can return less locks + than lock_count() claimed. This can happen when the MERGE children + are not attached when this is called from another thread. + */ + virtual THR_LOCK_DATA **store_lock(THD *thd, + THR_LOCK_DATA **to, + enum thr_lock_type lock_type)=0; + + /** Type of table for caching query */ + virtual uint8 table_cache_type() { return HA_CACHE_TBL_NONTRANSACT; } + + + /** + @brief Register a named table with a call back function to the query cache. + + @param thd The thread handle + @param table_key A pointer to the table name in the table cache + @param key_length The length of the table name + @param[out] engine_callback The pointer to the storage engine call back + function + @param[out] engine_data Storage engine specific data which could be + anything + + This method offers the storage engine, the possibility to store a reference + to a table name which is going to be used with query cache. + The method is called each time a statement is written to the cache and can + be used to verify if a specific statement is cachable. It also offers + the possibility to register a generic (but static) call back function which + is called each time a statement is matched against the query cache. + + @note If engine_data supplied with this function is different from + engine_data supplied with the callback function, and the callback returns + FALSE, a table invalidation on the current table will occur. + + @return Upon success the engine_callback will point to the storage engine + call back function, if any, and engine_data will point to any storage + engine data used in the specific implementation. + @retval TRUE Success + @retval FALSE The specified table or current statement should not be + cached + */ + + virtual my_bool register_query_cache_table(THD *thd, char *table_key, + uint key_length, + qc_engine_callback + *engine_callback, + ulonglong *engine_data) + { + *engine_callback= 0; + return TRUE; + } + + /* + Count tables invisible from all tables list on which current one built + (like myisammrg and partitioned tables) + + tables_type mask for the tables should be added herdde + + returns number of such tables + */ + + virtual uint count_query_cache_dependant_tables(uint8 *tables_type + __attribute__((unused))) + { + return 0; + } + + /* + register tables invisible from all tables list on which current one built + (like myisammrg and partitioned tables). + + @note they should be counted by method above + + cache Query cache pointer + block Query cache block to write the table + n Number of the table + + @retval FALSE - OK + @retval TRUE - Error + */ + + virtual my_bool + register_query_cache_dependant_tables(THD *thd + __attribute__((unused)), + Query_cache *cache + __attribute__((unused)), + Query_cache_block_table **block + __attribute__((unused)), + uint *n __attribute__((unused))) + { + return FALSE; + } + + /* + Check if the primary key (if there is one) is a clustered and a + reference key. This means: + + - Data is stored together with the primary key (no secondary lookup + needed to find the row data). The optimizer uses this to find out + the cost of fetching data. + - The primary key is part of each secondary key and is used + to find the row data in the primary index when reading trough + secondary indexes. + - When doing a HA_KEYREAD_ONLY we get also all the primary key parts + into the row. This is critical property used by index_merge. + + All the above is usually true for engines that store the row + data in the primary key index (e.g. in a b-tree), and use the primary + key value as a position(). InnoDB is an example of such an engine. + + For such a clustered primary key, the following should also hold: + index_flags() should contain HA_CLUSTERED_INDEX + table_flags() should contain HA_TABLE_SCAN_ON_INDEX + + @retval TRUE yes + @retval FALSE No. + */ + virtual bool primary_key_is_clustered() { return FALSE; } + virtual int cmp_ref(const uchar *ref1, const uchar *ref2) + { + return memcmp(ref1, ref2, ref_length); + } + + /* + Condition pushdown to storage engines + */ + + /** + Push condition down to the table handler. + + @param cond Condition to be pushed. The condition tree must not be + modified by the by the caller. + + @return + The 'remainder' condition that caller must use to filter out records. + NULL means the handler will not return rows that do not match the + passed condition. + + @note + The pushed conditions form a stack (from which one can remove the + last pushed condition using cond_pop). + The table handler filters out rows using (pushed_cond1 AND pushed_cond2 + AND ... AND pushed_condN) + or less restrictive condition, depending on handler's capabilities. + + handler->ha_reset() call empties the condition stack. + Calls to rnd_init/rnd_end, index_init/index_end etc do not affect the + condition stack. + */ + virtual const COND *cond_push(const COND *cond) { return cond; }; + /** + Pop the top condition from the condition stack of the handler instance. + + Pops the top if condition stack, if stack is not empty. + */ + virtual void cond_pop() { return; }; + + /** + Push down an index condition to the handler. + + The server will use this method to push down a condition it wants + the handler to evaluate when retrieving records using a specified + index. The pushed index condition will only refer to fields from + this handler that is contained in the index (but it may also refer + to fields in other handlers). Before the handler evaluates the + condition it must read the content of the index entry into the + record buffer. + + The handler is free to decide if and how much of the condition it + will take responsibility for evaluating. Based on this evaluation + it should return the part of the condition it will not evaluate. + If it decides to evaluate the entire condition it should return + NULL. If it decides not to evaluate any part of the condition it + should return a pointer to the same condition as given as argument. + + @param keyno the index number to evaluate the condition on + @param idx_cond the condition to be evaluated by the handler + + @return The part of the pushed condition that the handler decides + not to evaluate + */ + virtual Item *idx_cond_push(uint keyno, Item* idx_cond) { return idx_cond; } + + /** Reset information about pushed index conditions */ + virtual void cancel_pushed_idx_cond() + { + pushed_idx_cond= NULL; + pushed_idx_cond_keyno= MAX_KEY; + in_range_check_pushed_down= false; + } + virtual bool check_if_incompatible_data(HA_CREATE_INFO *create_info, + uint table_changes) + { return COMPATIBLE_DATA_NO; } + + /** + use_hidden_primary_key() is called in case of an update/delete when + (table_flags() and HA_PRIMARY_KEY_REQUIRED_FOR_DELETE) is defined + but we don't have a primary key + */ + virtual void use_hidden_primary_key(); + virtual uint alter_table_flags(uint flags) + { + if (ht->alter_table_flags) + return ht->alter_table_flags(flags); + return 0; + } + + LEX_STRING *engine_name() { return hton_name(ht); } + + /* + @brief + Check whether the engine supports virtual columns + + @retval + FALSE if the engine does not support virtual columns + @retval + TRUE if the engine supports virtual columns + */ + + virtual bool check_if_supported_virtual_columns(void) { return FALSE;} + + TABLE* get_table() { return table; } + TABLE_SHARE* get_table_share() { return table_share; } +protected: + /* deprecated, don't use in new engines */ + inline void ha_statistic_increment(ulong SSV::*offset) const { } + + /* Service methods for use by storage engines. */ + void **ha_data(THD *) const; + THD *ha_thd(void) const; + + /** + Acquire the instrumented table information from a table share. + @param share a table share + @return an instrumented table share, or NULL. + */ + PSI_table_share *ha_table_share_psi(const TABLE_SHARE *share) const; + + inline void psi_open() + { + DBUG_ASSERT(m_psi == NULL); + DBUG_ASSERT(table_share != NULL); +#ifdef HAVE_PSI_INTERFACE + if (PSI_server) + { + PSI_table_share *share_psi= ha_table_share_psi(table_share); + if (share_psi) + m_psi= PSI_server->open_table(share_psi, this); + } +#endif + } + + inline void psi_close() + { +#ifdef HAVE_PSI_INTERFACE + if (PSI_server && m_psi) + { + PSI_server->close_table(m_psi); + m_psi= NULL; /* instrumentation handle, invalid after close_table() */ + } +#endif + DBUG_ASSERT(m_psi == NULL); + } + + /** + Default rename_table() and delete_table() rename/delete files with a + given name and extensions from bas_ext(). + + These methods can be overridden, but their default implementation + provide useful functionality. + */ + virtual int rename_table(const char *from, const char *to); + /** + Delete a table in the engine. Called for base as well as temporary + tables. + */ + virtual int delete_table(const char *name); + +private: + /* Private helpers */ + inline void mark_trx_read_write(); +private: + inline void increment_statistics(ulong SSV::*offset) const; + inline void decrement_statistics(ulong SSV::*offset) const; + + /* + Low-level primitives for storage engines. These should be + overridden by the storage engine class. To call these methods, use + the corresponding 'ha_*' method above. + */ + + virtual int open(const char *name, int mode, uint test_if_locked)=0; + /* Note: ha_index_read_idx_map() may bypass index_init() */ + virtual int index_init(uint idx, bool sorted) { return 0; } + virtual int index_end() { return 0; } + /** + rnd_init() can be called two times without rnd_end() in between + (it only makes sense if scan=1). + then the second call should prepare for the new table scan (e.g + if rnd_init allocates the cursor, second call should position it + to the start of the table, no need to deallocate and allocate it again + */ + virtual int rnd_init(bool scan)= 0; + virtual int rnd_end() { return 0; } + virtual int write_row(uchar *buf __attribute__((unused))) + { + return HA_ERR_WRONG_COMMAND; + } + + virtual int update_row(const uchar *old_data __attribute__((unused)), + uchar *new_data __attribute__((unused))) + { + return HA_ERR_WRONG_COMMAND; + } + + virtual int delete_row(const uchar *buf __attribute__((unused))) + { + return HA_ERR_WRONG_COMMAND; + } + /** + Reset state of file to after 'open'. + This function is called after every statement for all tables used + by that statement. + */ + virtual int reset() { return 0; } + virtual Table_flags table_flags(void) const= 0; + /** + Is not invoked for non-transactional temporary tables. + + Tells the storage engine that we intend to read or write data + from the table. This call is prefixed with a call to handler::store_lock() + and is invoked only for those handler instances that stored the lock. + + Calls to rnd_init/index_init are prefixed with this call. When table + IO is complete, we call external_lock(F_UNLCK). + A storage engine writer should expect that each call to + ::external_lock(F_[RD|WR]LOCK is followed by a call to + ::external_lock(F_UNLCK). If it is not, it is a bug in MySQL. + + The name and signature originate from the first implementation + in MyISAM, which would call fcntl to set/clear an advisory + lock on the data file in this method. + + @param lock_type F_RDLCK, F_WRLCK, F_UNLCK + + @return non-0 in case of failure, 0 in case of success. + When lock_type is F_UNLCK, the return value is ignored. + */ + virtual int external_lock(THD *thd __attribute__((unused)), + int lock_type __attribute__((unused))) + { + return 0; + } + virtual void release_auto_increment() { return; }; + /** admin commands - called from mysql_admin_table */ + virtual int check_for_upgrade(HA_CHECK_OPT *check_opt) + { return 0; } + virtual int check(THD* thd, HA_CHECK_OPT* check_opt) + { return HA_ADMIN_NOT_IMPLEMENTED; } + + /** + In this method check_opt can be modified + to specify CHECK option to use to call check() + upon the table. + */ + virtual int repair(THD* thd, HA_CHECK_OPT* check_opt) + { + DBUG_ASSERT(!(ha_table_flags() & HA_CAN_REPAIR)); + return HA_ADMIN_NOT_IMPLEMENTED; + } + virtual void start_bulk_insert(ha_rows rows) {} + virtual int end_bulk_insert() { return 0; } + virtual int index_read(uchar * buf, const uchar * key, uint key_len, + enum ha_rkey_function find_flag) + { return HA_ERR_WRONG_COMMAND; } + /** + This method is similar to update_row, however the handler doesn't need + to execute the updates at this point in time. The handler can be certain + that another call to bulk_update_row will occur OR a call to + exec_bulk_update before the set of updates in this query is concluded. + + @param old_data Old record + @param new_data New record + @param dup_key_found Number of duplicate keys found + + @retval 0 Bulk delete used by handler + @retval 1 Bulk delete not used, normal operation used + */ + virtual int bulk_update_row(const uchar *old_data, uchar *new_data, + uint *dup_key_found) + { + DBUG_ASSERT(FALSE); + return HA_ERR_WRONG_COMMAND; + } + /** + This is called to delete all rows in a table + If the handler don't support this, then this function will + return HA_ERR_WRONG_COMMAND and MySQL will delete the rows one + by one. + */ + virtual int delete_all_rows() + { return (my_errno=HA_ERR_WRONG_COMMAND); } + /** + Quickly remove all rows from a table. + + @remark This method is responsible for implementing MySQL's TRUNCATE + TABLE statement, which is a DDL operation. As such, a engine + can bypass certain integrity checks and in some cases avoid + fine-grained locking (e.g. row locks) which would normally be + required for a DELETE statement. + + @remark Typically, truncate is not used if it can result in integrity + violation. For example, truncate is not used when a foreign + key references the table, but it might be used if foreign key + checks are disabled. + + @remark Engine is responsible for resetting the auto-increment counter. + + @remark The table is locked in exclusive mode. + */ + virtual int truncate() + { + int error= delete_all_rows(); + return error ? error : reset_auto_increment(0); + } + /** + Reset the auto-increment counter to the given value, i.e. the next row + inserted will get the given value. + */ + virtual int reset_auto_increment(ulonglong value) + { return 0; } + virtual int optimize(THD* thd, HA_CHECK_OPT* check_opt) + { return HA_ADMIN_NOT_IMPLEMENTED; } + virtual int analyze(THD* thd, HA_CHECK_OPT* check_opt) + { return HA_ADMIN_NOT_IMPLEMENTED; } + virtual bool check_and_repair(THD *thd) { return TRUE; } + virtual int disable_indexes(uint mode) { return HA_ERR_WRONG_COMMAND; } + virtual int enable_indexes(uint mode) { return HA_ERR_WRONG_COMMAND; } + virtual int discard_or_import_tablespace(my_bool discard) + { return (my_errno=HA_ERR_WRONG_COMMAND); } + virtual void prepare_for_alter() { return; } + virtual void drop_table(const char *name); + virtual int create(const char *name, TABLE *form, HA_CREATE_INFO *info)=0; + + virtual int create_handler_files(const char *name, const char *old_name, + int action_flag, HA_CREATE_INFO *info) + { return FALSE; } + + virtual int change_partitions(HA_CREATE_INFO *create_info, + const char *path, + ulonglong * const copied, + ulonglong * const deleted, + const uchar *pack_frm_data, + size_t pack_frm_len) + { return HA_ERR_WRONG_COMMAND; } + virtual int drop_partitions(const char *path) + { return HA_ERR_WRONG_COMMAND; } + virtual int rename_partitions(const char *path) + { return HA_ERR_WRONG_COMMAND; } + friend class ha_partition; +public: + /* XXX to be removed, see ha_partition::partition_ht() */ + virtual handlerton *partition_ht() const + { return ht; } + inline int ha_write_tmp_row(uchar *buf); + inline int ha_update_tmp_row(const uchar * old_data, uchar * new_data); + + virtual void set_lock_type(enum thr_lock_type lock); + + friend enum icp_result handler_index_cond_check(void* h_arg); +}; + +#include "multi_range_read.h" + +bool key_uses_partial_cols(TABLE_SHARE *table, uint keyno); + + /* Some extern variables used with handlers */ + +extern const char *ha_row_type[]; +extern MYSQL_PLUGIN_IMPORT const char *tx_isolation_names[]; +extern MYSQL_PLUGIN_IMPORT const char *binlog_format_names[]; +extern TYPELIB tx_isolation_typelib; +extern const char *myisam_stats_method_names[]; +extern ulong total_ha, total_ha_2pc; + +/* lookups */ +handlerton *ha_default_handlerton(THD *thd); +plugin_ref ha_resolve_by_name(THD *thd, const LEX_STRING *name); +plugin_ref ha_lock_engine(THD *thd, const handlerton *hton); +handlerton *ha_resolve_by_legacy_type(THD *thd, enum legacy_db_type db_type); +handler *get_new_handler(TABLE_SHARE *share, MEM_ROOT *alloc, + handlerton *db_type); +handlerton *ha_checktype(THD *thd, enum legacy_db_type database_type, + bool no_substitute, bool report_error); + + +static inline enum legacy_db_type ha_legacy_type(const handlerton *db_type) +{ + return (db_type == NULL) ? DB_TYPE_UNKNOWN : db_type->db_type; +} + +static inline const char *ha_resolve_storage_engine_name(const handlerton *db_type) +{ + return db_type == NULL ? "UNKNOWN" : hton_name(db_type)->str; +} + +static inline bool ha_check_storage_engine_flag(const handlerton *db_type, uint32 flag) +{ + return db_type == NULL ? FALSE : test(db_type->flags & flag); +} + +static inline bool ha_storage_engine_is_enabled(const handlerton *db_type) +{ + return (db_type && db_type->create) ? + (db_type->state == SHOW_OPTION_YES) : FALSE; +} + +/* basic stuff */ +int ha_init_errors(void); +int ha_init(void); +int ha_end(void); +int ha_initialize_handlerton(st_plugin_int *plugin); +int ha_finalize_handlerton(st_plugin_int *plugin); + +TYPELIB *ha_known_exts(void); +int ha_panic(enum ha_panic_function flag); +void ha_close_connection(THD* thd); +void ha_kill_query(THD* thd, enum thd_kill_levels level); +bool ha_flush_logs(handlerton *db_type); +void ha_drop_database(char* path); +void ha_checkpoint_state(bool disable); +int ha_create_table(THD *thd, const char *path, + const char *db, const char *table_name, + HA_CREATE_INFO *create_info, + bool update_create_info); +int ha_delete_table(THD *thd, handlerton *db_type, const char *path, + const char *db, const char *alias, bool generate_warning); + +/* statistics and info */ +bool ha_show_status(THD *thd, handlerton *db_type, enum ha_stat_type stat); + +/* discovery */ +int ha_create_table_from_engine(THD* thd, const char *db, const char *name); +bool ha_check_if_table_exists(THD* thd, const char *db, const char *name, + bool *exists); +int ha_discover(THD* thd, const char* dbname, const char* name, + uchar** frmblob, size_t* frmlen); +int ha_find_files(THD *thd,const char *db,const char *path, + const char *wild, bool dir, List* files); +int ha_table_exists_in_engine(THD* thd, const char* db, const char* name); + +/* key cache */ +extern "C" int ha_init_key_cache(const char *name, KEY_CACHE *key_cache, void *); +int ha_resize_key_cache(KEY_CACHE *key_cache); +int ha_change_key_cache_param(KEY_CACHE *key_cache); +int ha_repartition_key_cache(KEY_CACHE *key_cache); +int ha_change_key_cache(KEY_CACHE *old_key_cache, KEY_CACHE *new_key_cache); + +/* report to InnoDB that control passes to the client */ +int ha_release_temporary_latches(THD *thd); + +/* transactions: interface to handlerton functions */ +int ha_start_consistent_snapshot(THD *thd); +int ha_commit_or_rollback_by_xid(XID *xid, bool commit); +int ha_commit_one_phase(THD *thd, bool all); +int ha_commit_trans(THD *thd, bool all); +int ha_rollback_trans(THD *thd, bool all); +int ha_prepare(THD *thd); +int ha_recover(HASH *commit_list); + +/* transactions: these functions never call handlerton functions directly */ +int ha_enable_transaction(THD *thd, bool on); + +/* savepoints */ +int ha_rollback_to_savepoint(THD *thd, SAVEPOINT *sv); +int ha_savepoint(THD *thd, SAVEPOINT *sv); +int ha_release_savepoint(THD *thd, SAVEPOINT *sv); + +/* these are called by storage engines */ +void trans_register_ha(THD *thd, bool all, handlerton *ht); + +/* + Storage engine has to assume the transaction will end up with 2pc if + - there is more than one 2pc-capable storage engine available + - in the current transaction 2pc was not disabled yet +*/ +#define trans_need_2pc(thd, all) ((total_ha_2pc > 1) && \ + !((all ? &thd->transaction.all : &thd->transaction.stmt)->no_2pc)) + +#ifdef HAVE_NDB_BINLOG +int ha_reset_logs(THD *thd); +int ha_binlog_index_purge_file(THD *thd, const char *file); +void ha_reset_slave(THD *thd); +void ha_binlog_log_query(THD *thd, handlerton *db_type, + enum_binlog_command binlog_command, + const char *query, uint query_length, + const char *db, const char *table_name); +void ha_binlog_wait(THD *thd); +int ha_binlog_end(THD *thd); +#else +#define ha_reset_logs(a) do {} while (0) +#define ha_binlog_index_purge_file(a,b) do {} while (0) +#define ha_reset_slave(a) do {} while (0) +#define ha_binlog_log_query(a,b,c,d,e,f,g) do {} while (0) +#define ha_binlog_wait(a) do {} while (0) +#define ha_binlog_end(a) do {} while (0) +#endif + +const char *get_canonical_filename(handler *file, const char *path, + char *tmp_path); +bool mysql_xa_recover(THD *thd); + +inline const char *table_case_name(HA_CREATE_INFO *info, const char *name) +{ + return ((lower_case_table_names == 2 && info->alias) ? info->alias : name); +} + +#endif /* HANDLER_INCLUDED */ diff --git a/database/include/mysql/private/hash.h b/database/include/mysql/private/hash.h new file mode 100644 index 0000000..2d1ac3c --- /dev/null +++ b/database/include/mysql/private/hash.h @@ -0,0 +1,105 @@ +/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* Dynamic hashing of record with different key-length */ + +#ifndef _hash_h +#define _hash_h + +#include "my_global.h" /* uchar */ +#include "my_sys.h" /* DYNAMIC_ARRAY */ + +/* + This forward declaration is used from C files where the real + definition is included before. Since C does not allow repeated + typedef declarations, even when identical, the definition may not be + repeated. +*/ +#ifdef __cplusplus +extern "C" { +#endif + +/* + Overhead to store an element in hash + Can be used to approximate memory consumption for a hash + */ +#define HASH_OVERHEAD (sizeof(char*)*2) + +/* flags for hash_init */ +#define HASH_UNIQUE 1 /* hash_insert fails on duplicate key */ + +typedef uint my_hash_value_type; +typedef uchar *(*my_hash_get_key)(const uchar *,size_t*,my_bool); +typedef void (*my_hash_free_key)(void *); +typedef my_bool (*my_hash_walk_action)(void *,void *); + +typedef struct st_hash { + size_t key_offset,key_length; /* Length of key if const length */ + size_t blength; + ulong records; + uint flags; + DYNAMIC_ARRAY array; /* Place for hash_keys */ + my_hash_get_key get_key; + void (*free)(void *); + CHARSET_INFO *charset; +} HASH; + +/* A search iterator state */ +typedef uint HASH_SEARCH_STATE; + +#define my_hash_init(A,B,C,D,E,F,G,H) \ + _my_hash_init(A,0,B,C,D,E,F,G,H) +#define my_hash_init2(A,B,C,D,E,F,G,H,I) \ + _my_hash_init(A,B,C,D,E,F,G,H,I) +my_bool _my_hash_init(HASH *hash, uint growth_size, CHARSET_INFO *charset, + ulong default_array_elements, size_t key_offset, + size_t key_length, my_hash_get_key get_key, + void (*free_element)(void*), + uint flags); +void my_hash_free(HASH *tree); +void my_hash_reset(HASH *hash); +uchar *my_hash_element(HASH *hash, ulong idx); +uchar *my_hash_search(const HASH *info, const uchar *key, size_t length); +uchar *my_hash_search_using_hash_value(const HASH *info, + my_hash_value_type hash_value, + const uchar *key, size_t length); +my_hash_value_type my_calc_hash(const HASH *info, + const uchar *key, size_t length); +uchar *my_hash_first(const HASH *info, const uchar *key, size_t length, + HASH_SEARCH_STATE *state); +uchar *my_hash_first_from_hash_value(const HASH *info, + my_hash_value_type hash_value, + const uchar *key, + size_t length, + HASH_SEARCH_STATE *state); +uchar *my_hash_next(const HASH *info, const uchar *key, size_t length, + HASH_SEARCH_STATE *state); +my_bool my_hash_insert(HASH *info, const uchar *data); +my_bool my_hash_delete(HASH *hash, uchar *record); +my_bool my_hash_update(HASH *hash, uchar *record, uchar *old_key, + size_t old_key_length); +void my_hash_replace(HASH *hash, HASH_SEARCH_STATE *state, uchar *new_row); +my_bool my_hash_check(HASH *hash); /* Only in debug library */ +my_bool my_hash_iterate(HASH *hash, my_hash_walk_action action, void *argument); + +#define my_hash_clear(H) bzero((char*) (H), sizeof(*(H))) +#define my_hash_inited(H) ((H)->blength != 0) +#define my_hash_init_opt(A,B,C,D,E,F,G,H) \ + (!my_hash_inited(A) && _my_hash_init(A,0,B,C,D,E,F,G,H)) + +#ifdef __cplusplus +} +#endif +#endif diff --git a/database/include/mysql/private/hash_filo.h b/database/include/mysql/private/hash_filo.h new file mode 100644 index 0000000..f3e31d3 --- /dev/null +++ b/database/include/mysql/private/hash_filo.h @@ -0,0 +1,137 @@ +/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + + +/* +** A class for static sized hash tables where old entries are deleted in +** first-in-last-out to usage. +*/ + +#ifndef HASH_FILO_H +#define HASH_FILO_H + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class interface */ +#endif + +#include "hash.h" /* my_hash_get_key, my_hash_free_key, HASH */ +#include "m_string.h" /* bzero */ +#include "mysqld.h" /* key_hash_filo_lock */ + +class hash_filo_element +{ + hash_filo_element *next_used,*prev_used; + public: + hash_filo_element() {} + friend class hash_filo; +}; + + +class hash_filo +{ + const uint size, key_offset, key_length; + const my_hash_get_key get_key; + my_hash_free_key free_element; + bool init; + CHARSET_INFO *hash_charset; + + hash_filo_element *first_link,*last_link; +public: + mysql_mutex_t lock; + HASH cache; + + hash_filo(uint size_arg, uint key_offset_arg , uint key_length_arg, + my_hash_get_key get_key_arg, my_hash_free_key free_element_arg, + CHARSET_INFO *hash_charset_arg) + :size(size_arg), key_offset(key_offset_arg), key_length(key_length_arg), + get_key(get_key_arg), free_element(free_element_arg),init(0), + hash_charset(hash_charset_arg) + { + bzero((char*) &cache,sizeof(cache)); + } + + ~hash_filo() + { + if (init) + { + if (cache.array.buffer) /* Avoid problems with thread library */ + (void) my_hash_free(&cache); + mysql_mutex_destroy(&lock); + } + } + void clear(bool locked=0) + { + if (!init) + { + init=1; + mysql_mutex_init(key_hash_filo_lock, &lock, MY_MUTEX_INIT_FAST); + } + if (!locked) + mysql_mutex_lock(&lock); + (void) my_hash_free(&cache); + (void) my_hash_init(&cache,hash_charset,size,key_offset, + key_length, get_key, free_element,0); + if (!locked) + mysql_mutex_unlock(&lock); + first_link=last_link=0; + } + + hash_filo_element *search(uchar* key, size_t length) + { + hash_filo_element *entry=(hash_filo_element*) + my_hash_search(&cache,(uchar*) key,length); + if (entry) + { // Found; link it first + if (entry != first_link) + { // Relink used-chain + if (entry == last_link) + last_link=entry->prev_used; + else + { + entry->next_used->prev_used = entry->prev_used; + entry->prev_used->next_used = entry->next_used; + } + if ((entry->next_used= first_link)) + first_link->prev_used=entry; + first_link=entry; + } + } + return entry; + } + + bool add(hash_filo_element *entry) + { + if (cache.records == size) + { + hash_filo_element *tmp=last_link; + last_link=last_link->prev_used; + my_hash_delete(&cache,(uchar*) tmp); + } + if (my_hash_insert(&cache,(uchar*) entry)) + { + if (free_element) + (*free_element)(entry); // This should never happen + return 1; + } + if ((entry->next_used=first_link)) + first_link->prev_used=entry; + else + last_link=entry; + first_link=entry; + return 0; + } +}; + +#endif diff --git a/database/include/mysql/private/heap.h b/database/include/mysql/private/heap.h new file mode 100644 index 0000000..014ec04 --- /dev/null +++ b/database/include/mysql/private/heap.h @@ -0,0 +1,270 @@ +/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA +*/ + +/* This file should be included when using heap_database_functions */ +/* Author: Michael Widenius */ + +#ifndef _heap_h +#define _heap_h +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef _my_base_h +#include +#endif + +#include +#include + +#include "my_compare.h" +#include "my_tree.h" + + /* defines used by heap-funktions */ + +#define HP_MAX_LEVELS 4 /* 128^5 records is enough */ +#define HP_PTRS_IN_NOD 128 + + /* struct used with heap_funktions */ + +typedef struct st_heapinfo /* Struct from heap_info */ +{ + ulong records; /* Records in database */ + ulong deleted; /* Deleted records in database */ + ulong max_records; + ulonglong data_length; + ulonglong index_length; + uint reclength; /* Length of one record */ + int errkey; + ulonglong auto_increment; + time_t create_time; +} HEAPINFO; + + + /* Structs used by heap-database-handler */ + +typedef struct st_heap_ptrs +{ + uchar *blocks[HP_PTRS_IN_NOD]; /* pointers to HP_PTRS or records */ +} HP_PTRS; + +struct st_level_info +{ + /* Number of unused slots in *last_blocks HP_PTRS block (0 for 0th level) */ + uint free_ptrs_in_block; + + /* + Maximum number of records that can be 'contained' inside of each element + of last_blocks array. For level 0 - 1, for level 1 - HP_PTRS_IN_NOD, for + level 2 - HP_PTRS_IN_NOD^2 and so forth. + */ + ulong records_under_level; + + /* + Ptr to last allocated HP_PTRS (or records buffer for level 0) on this + level. + */ + HP_PTRS *last_blocks; +}; + + +/* + Heap table records and hash index entries are stored in HP_BLOCKs. + HP_BLOCK is used as a 'growable array' of fixed-size records. Size of record + is recbuffer bytes. + The internal representation is as follows: + HP_BLOCK is a hierarchical structure of 'blocks'. + A block at level 0 is an array records_in_block records. + A block at higher level is an HP_PTRS structure with pointers to blocks at + lower levels. + At the highest level there is one top block. It is stored in HP_BLOCK::root. + + See hp_find_block for a description of how record pointer is obtained from + its index. + See hp_get_new_block +*/ + +typedef struct st_heap_block +{ + HP_PTRS *root; /* Top-level block */ + struct st_level_info level_info[HP_MAX_LEVELS+1]; + uint levels; /* number of used levels */ + uint recbuffer; /* Length of one saved record */ + ulong records_in_block; /* Records in one heap-block */ + ulong last_allocated; /* number of records there is allocated space for */ +} HP_BLOCK; + +struct st_heap_info; /* For referense */ + +typedef struct st_hp_keydef /* Key definition with open */ +{ + uint flag; /* HA_NOSAME | HA_NULL_PART_KEY */ + uint keysegs; /* Number of key-segment */ + uint length; /* Length of key (automatic) */ + uint8 algorithm; /* HASH / BTREE */ + HA_KEYSEG *seg; + HP_BLOCK block; /* Where keys are saved */ + /* + Number of buckets used in hash table. Used only to provide + #records estimates for heap key scans. + */ + ha_rows hash_buckets; + TREE rb_tree; + int (*write_key)(struct st_heap_info *info, struct st_hp_keydef *keyinfo, + const uchar *record, uchar *recpos); + int (*delete_key)(struct st_heap_info *info, struct st_hp_keydef *keyinfo, + const uchar *record, uchar *recpos, int flag); + uint (*get_key_length)(struct st_hp_keydef *keydef, const uchar *key); +} HP_KEYDEF; + +typedef struct st_heap_share +{ + HP_BLOCK block; + HP_KEYDEF *keydef; + ulonglong data_length,index_length,max_table_size; + ulonglong auto_increment; + ulong min_records,max_records; /* Params to open */ + ulong records; /* records */ + ulong blength; /* records rounded up to 2^n */ + ulong deleted; /* Deleted records in database */ + uint key_stat_version; /* version to indicate insert/delete */ + uint key_version; /* Updated on key change */ + uint file_version; /* Update on clear */ + uint reclength; /* Length of one record */ + uint visible; /* Offset to the visible/deleted mark */ + uint changed; + uint keys,max_key_length; + uint currently_disabled_keys; /* saved value from "keys" when disabled */ + uint open_count; + uchar *del_link; /* Link to next block with del. rec */ + char * name; /* Name of "memory-file" */ + time_t create_time; + THR_LOCK lock; + mysql_mutex_t intern_lock; /* Locking for use with _locking */ + my_bool delete_on_close; + LIST open_list; + uint auto_key; + uint auto_key_type; /* real type of the auto key segment */ +} HP_SHARE; + +struct st_hp_hash_info; + +typedef struct st_heap_info +{ + HP_SHARE *s; + uchar *current_ptr; + struct st_hp_hash_info *current_hash_ptr; + ulong current_record,next_block; + int lastinx,errkey; + int mode; /* Mode of file (READONLY..) */ + uint opt_flag,update; + uchar *lastkey; /* Last used key with rkey */ + uchar *recbuf; /* Record buffer for rb-tree keys */ + enum ha_rkey_function last_find_flag; + TREE_ELEMENT *parents[MAX_TREE_HEIGHT+1]; + TREE_ELEMENT **last_pos; + uint key_version; /* Version at last read */ + uint file_version; /* Version at scan */ + uint lastkey_len; + my_bool implicit_emptied; + THR_LOCK_DATA lock; + LIST open_list; +} HP_INFO; + + +typedef struct st_heap_create_info +{ + HP_KEYDEF *keydef; + uint auto_key; /* keynr [1 - maxkey] for auto key */ + uint auto_key_type; + uint keys; + uint reclength; + ulong max_records; + ulong min_records; + ulonglong max_table_size; + ulonglong auto_increment; + my_bool with_auto_increment; + my_bool internal_table; + /* + TRUE if heap_create should 'pin' the created share by setting + open_count to 1. Is only looked at if not internal_table. + */ + my_bool pin_share; +} HP_CREATE_INFO; + + /* Prototypes for heap-functions */ + +extern HP_INFO *heap_open(const char *name, int mode); +extern HP_INFO *heap_open_from_share(HP_SHARE *share, int mode); +extern HP_INFO *heap_open_from_share_and_register(HP_SHARE *share, int mode); +extern void heap_release_share(HP_SHARE *share, my_bool internal_table); +extern int heap_close(HP_INFO *info); +extern int heap_write(HP_INFO *info,const uchar *buff); +extern int heap_update(HP_INFO *info,const uchar *old,const uchar *newdata); +extern int heap_rrnd(HP_INFO *info,uchar *buf,uchar *pos); +extern int heap_scan_init(HP_INFO *info); +extern int heap_scan(register HP_INFO *info, uchar *record); +extern int heap_delete(HP_INFO *info,const uchar *buff); +extern int heap_info(HP_INFO *info,HEAPINFO *x,int flag); +extern int heap_create(const char *name, + HP_CREATE_INFO *create_info, HP_SHARE **share, + my_bool *created_new_share); +extern int heap_delete_table(const char *name); +extern void heap_drop_table(HP_INFO *info); +extern int heap_extra(HP_INFO *info,enum ha_extra_function function); +extern int heap_reset(HP_INFO *info); +extern int heap_rename(const char *old_name,const char *new_name); +extern int heap_panic(enum ha_panic_function flag); +extern int heap_rsame(HP_INFO *info,uchar *record,int inx); +extern int heap_rnext(HP_INFO *info,uchar *record); +extern int heap_rprev(HP_INFO *info,uchar *record); +extern int heap_rfirst(HP_INFO *info,uchar *record,int inx); +extern int heap_rlast(HP_INFO *info,uchar *record,int inx); +extern void heap_clear(HP_INFO *info); +extern void heap_clear_keys(HP_INFO *info); +extern int heap_disable_indexes(HP_INFO *info); +extern int heap_enable_indexes(HP_INFO *info); +extern int heap_indexes_are_disabled(HP_INFO *info); +extern void heap_update_auto_increment(HP_INFO *info, const uchar *record); +ha_rows hp_rb_records_in_range(HP_INFO *info, int inx, key_range *min_key, + key_range *max_key); +int hp_panic(enum ha_panic_function flag); +int heap_rkey(HP_INFO *info, uchar *record, int inx, const uchar *key, + key_part_map keypart_map, enum ha_rkey_function find_flag); +extern uchar * heap_find(HP_INFO *info,int inx,const uchar *key); +extern int heap_check_heap(const HP_INFO *info, my_bool print_status); +extern uchar *heap_position(HP_INFO *info); + +/* The following is for programs that uses the old HEAP interface where + pointer to rows where a long instead of a (uchar*). +*/ + +#if defined(WANT_OLD_HEAP_VERSION) || defined(OLD_HEAP_VERSION) +extern int heap_rrnd_old(HP_INFO *info,uchar *buf,ulong pos); +extern ulong heap_position_old(HP_INFO *info); +#endif +#ifdef OLD_HEAP_VERSION +typedef ulong HEAP_PTR; +#define heap_position(A) heap_position_old(A) +#define heap_rrnd(A,B,C) heap_rrnd_old(A,B,C) +#else +typedef uchar *HEAP_PTR; +#endif + +#ifdef __cplusplus +} +#endif +#endif diff --git a/database/include/mysql/private/hostname.h b/database/include/mysql/private/hostname.h new file mode 100644 index 0000000..bedf33c --- /dev/null +++ b/database/include/mysql/private/hostname.h @@ -0,0 +1,30 @@ +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef HOSTNAME_INCLUDED +#define HOSTNAME_INCLUDED + +#include "my_global.h" /* uint */ + +bool ip_to_hostname(struct sockaddr_storage *ip_storage, + const char *ip_string, + char **hostname, uint *connect_errors); +void inc_host_errors(const char *ip_string); +void reset_host_errors(const char *ip_string); +bool hostname_cache_init(); +void hostname_cache_free(); +void hostname_cache_refresh(void); + +#endif /* HOSTNAME_INCLUDED */ diff --git a/database/include/mysql/private/init.h b/database/include/mysql/private/init.h new file mode 100644 index 0000000..d051806 --- /dev/null +++ b/database/include/mysql/private/init.h @@ -0,0 +1,24 @@ +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef INIT_INCLUDED +#define INIT_INCLUDED + +#include "my_global.h" /* ulong */ + +void unireg_init(ulong options); +void unireg_end(void) __attribute__((noreturn)); + +#endif /* INIT_INCLUDED */ diff --git a/database/include/mysql/private/innodb_priv.h b/database/include/mysql/private/innodb_priv.h new file mode 100644 index 0000000..3cd7022 --- /dev/null +++ b/database/include/mysql/private/innodb_priv.h @@ -0,0 +1,36 @@ +/* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef INNODB_PRIV_INCLUDED +#define INNODB_PRIV_INCLUDED + +/** @file Declaring server-internal functions that are used by InnoDB. */ + +#include + +class THD; + +int get_quote_char_for_identifier(THD *thd, const char *name, uint length); +bool schema_table_store_record(THD *thd, TABLE *table); +void localtime_to_TIME(MYSQL_TIME *to, struct tm *from); +bool check_global_access(THD *thd, ulong want_access, bool no_errors=false); +uint strconvert(CHARSET_INFO *from_cs, const char *from, + CHARSET_INFO *to_cs, char *to, uint to_length, + uint *errors); +void sql_print_error(const char *format, ...); + + + +#endif /* INNODB_PRIV_INCLUDED */ diff --git a/database/include/mysql/private/item.h b/database/include/mysql/private/item.h new file mode 100644 index 0000000..26bf8b9 --- /dev/null +++ b/database/include/mysql/private/item.h @@ -0,0 +1,4408 @@ +#ifndef SQL_ITEM_INCLUDED +#define SQL_ITEM_INCLUDED + +/* Copyright (c) 2000, 2017, Oracle and/or its affiliates. + Copyright (c) 2009, 2018, MariaDB Corporation + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif + +#include "sql_priv.h" /* STRING_BUFFER_USUAL_SIZE */ +#include "unireg.h" +#include "sql_const.h" /* RAND_TABLE_BIT, MAX_FIELD_NAME */ +#include "unireg.h" // REQUIRED: for other includes +#include "thr_malloc.h" /* sql_calloc */ +#include "field.h" /* Derivation */ + +C_MODE_START +#include +C_MODE_END + +static inline +bool trace_unsupported_func(const char *where, const char *processor_name) +{ + char buff[64]; + sprintf(buff, "%s::%s", where, processor_name); + DBUG_ENTER(buff); + sprintf(buff, "%s returns TRUE: unsupported function", processor_name); + DBUG_PRINT("info", ("%s", buff)); + DBUG_RETURN(TRUE); +} + +static inline +bool trace_unsupported_by_check_vcol_func_processor(const char *where) +{ + return trace_unsupported_func(where, "check_vcol_func_processor"); +} + +#ifdef DBUG_OFF +static inline const char *dbug_print_item(Item *item) { return NULL; } +#else +extern const char *dbug_print_item(Item *item); +#endif + +class Protocol; +struct TABLE_LIST; +void item_init(void); /* Init item functions */ +class Item_field; +class user_var_entry; + + +static inline uint32 +char_to_byte_length_safe(uint32 char_length_arg, uint32 mbmaxlen_arg) +{ + ulonglong tmp= ((ulonglong) char_length_arg) * mbmaxlen_arg; + return (tmp > UINT_MAX32) ? (uint32) UINT_MAX32 : (uint32) tmp; +} + + +/* + "Declared Type Collation" + A combination of collation and its derivation. + + Flags for collation aggregation modes: + MY_COLL_ALLOW_SUPERSET_CONV - allow conversion to a superset + MY_COLL_ALLOW_COERCIBLE_CONV - allow conversion of a coercible value + (i.e. constant). + MY_COLL_ALLOW_CONV - allow any kind of conversion + (combination of the above two) + MY_COLL_ALLOW_NUMERIC_CONV - if all items were numbers, convert to + @@character_set_connection + MY_COLL_DISALLOW_NONE - don't allow return DERIVATION_NONE + (e.g. when aggregating for comparison) + MY_COLL_CMP_CONV - combination of MY_COLL_ALLOW_CONV + and MY_COLL_DISALLOW_NONE +*/ + +#define MY_COLL_ALLOW_SUPERSET_CONV 1 +#define MY_COLL_ALLOW_COERCIBLE_CONV 2 +#define MY_COLL_DISALLOW_NONE 4 +#define MY_COLL_ALLOW_NUMERIC_CONV 8 + +#define MY_COLL_ALLOW_CONV (MY_COLL_ALLOW_SUPERSET_CONV | MY_COLL_ALLOW_COERCIBLE_CONV) +#define MY_COLL_CMP_CONV (MY_COLL_ALLOW_CONV | MY_COLL_DISALLOW_NONE) + +class DTCollation { +public: + CHARSET_INFO *collation; + enum Derivation derivation; + uint repertoire; + + void set_repertoire_from_charset(CHARSET_INFO *cs) + { + repertoire= cs->state & MY_CS_PUREASCII ? + MY_REPERTOIRE_ASCII : MY_REPERTOIRE_UNICODE30; + } + DTCollation() + { + collation= &my_charset_bin; + derivation= DERIVATION_NONE; + repertoire= MY_REPERTOIRE_UNICODE30; + } + DTCollation(CHARSET_INFO *collation_arg, Derivation derivation_arg) + { + collation= collation_arg; + derivation= derivation_arg; + set_repertoire_from_charset(collation_arg); + } + void set(DTCollation &dt) + { + collation= dt.collation; + derivation= dt.derivation; + repertoire= dt.repertoire; + } + void set(CHARSET_INFO *collation_arg, Derivation derivation_arg) + { + collation= collation_arg; + derivation= derivation_arg; + set_repertoire_from_charset(collation_arg); + } + void set(CHARSET_INFO *collation_arg, + Derivation derivation_arg, + uint repertoire_arg) + { + collation= collation_arg; + derivation= derivation_arg; + repertoire= repertoire_arg; + } + void set_numeric() + { + collation= &my_charset_numeric; + derivation= DERIVATION_NUMERIC; + repertoire= MY_REPERTOIRE_NUMERIC; + } + void set(CHARSET_INFO *collation_arg) + { + collation= collation_arg; + set_repertoire_from_charset(collation_arg); + } + void set(Derivation derivation_arg) + { derivation= derivation_arg; } + bool aggregate(DTCollation &dt, uint flags= 0); + bool set(DTCollation &dt1, DTCollation &dt2, uint flags= 0) + { set(dt1); return aggregate(dt2, flags); } + const char *derivation_name() const + { + switch(derivation) + { + case DERIVATION_NUMERIC: return "NUMERIC"; + case DERIVATION_IGNORABLE: return "IGNORABLE"; + case DERIVATION_COERCIBLE: return "COERCIBLE"; + case DERIVATION_IMPLICIT: return "IMPLICIT"; + case DERIVATION_SYSCONST: return "SYSCONST"; + case DERIVATION_EXPLICIT: return "EXPLICIT"; + case DERIVATION_NONE: return "NONE"; + default: return "UNKNOWN"; + } + } +}; + +/*************************************************************************/ +/* + A framework to easily handle different return types for hybrid items + (hybrid item is an item whose operand can be of any type, e.g. integer, + real, decimal). +*/ + +struct Hybrid_type_traits; + +struct Hybrid_type +{ + longlong integer; + + double real; + /* + Use two decimal buffers interchangeably to speed up += operation + which has no native support in decimal library. + Hybrid_type+= arg is implemented as dec_buf[1]= dec_buf[0] + arg. + The third decimal is used as a handy temporary storage. + */ + my_decimal dec_buf[3]; + int used_dec_buf_no; + + /* + Traits moved to a separate class to + a) be able to easily change object traits in runtime + b) they work as a differentiator for the union above + */ + const Hybrid_type_traits *traits; + + Hybrid_type() {} + /* XXX: add traits->copy() when needed */ + Hybrid_type(const Hybrid_type &rhs) :traits(rhs.traits) {} +}; + + +/* Hybryd_type_traits interface + default implementation for REAL_RESULT */ + +struct Hybrid_type_traits +{ + virtual Item_result type() const { return REAL_RESULT; } + + virtual void + fix_length_and_dec(Item *item, Item *arg) const; + + /* Hybrid_type operations. */ + virtual void set_zero(Hybrid_type *val) const { val->real= 0.0; } + virtual void add(Hybrid_type *val, Field *f) const + { val->real+= f->val_real(); } + virtual void div(Hybrid_type *val, ulonglong u) const + { val->real/= ulonglong2double(u); } + + virtual longlong val_int(Hybrid_type *val, bool unsigned_flag) const + { return (longlong) rint(val->real); } + virtual double val_real(Hybrid_type *val) const { return val->real; } + virtual my_decimal *val_decimal(Hybrid_type *val, my_decimal *buf) const; + virtual String *val_str(Hybrid_type *val, String *buf, uint8 decimals) const; + static const Hybrid_type_traits *instance(); + Hybrid_type_traits() {} + virtual ~Hybrid_type_traits() {} +}; + + +struct Hybrid_type_traits_decimal: public Hybrid_type_traits +{ + virtual Item_result type() const { return DECIMAL_RESULT; } + + virtual void + fix_length_and_dec(Item *arg, Item *item) const; + + /* Hybrid_type operations. */ + virtual void set_zero(Hybrid_type *val) const; + virtual void add(Hybrid_type *val, Field *f) const; + virtual void div(Hybrid_type *val, ulonglong u) const; + + virtual longlong val_int(Hybrid_type *val, bool unsigned_flag) const; + virtual double val_real(Hybrid_type *val) const; + virtual my_decimal *val_decimal(Hybrid_type *val, my_decimal *buf) const + { return &val->dec_buf[val->used_dec_buf_no]; } + virtual String *val_str(Hybrid_type *val, String *buf, uint8 decimals) const; + static const Hybrid_type_traits_decimal *instance(); + Hybrid_type_traits_decimal() {}; +}; + + +struct Hybrid_type_traits_integer: public Hybrid_type_traits +{ + virtual Item_result type() const { return INT_RESULT; } + + virtual void + fix_length_and_dec(Item *arg, Item *item) const; + + /* Hybrid_type operations. */ + virtual void set_zero(Hybrid_type *val) const + { val->integer= 0; } + virtual void add(Hybrid_type *val, Field *f) const + { val->integer+= f->val_int(); } + virtual void div(Hybrid_type *val, ulonglong u) const + { val->integer/= (longlong) u; } + + virtual longlong val_int(Hybrid_type *val, bool unsigned_flag) const + { return val->integer; } + virtual double val_real(Hybrid_type *val) const + { return (double) val->integer; } + virtual my_decimal *val_decimal(Hybrid_type *val, my_decimal *buf) const + { + int2my_decimal(E_DEC_FATAL_ERROR, val->integer, 0, &val->dec_buf[2]); + return &val->dec_buf[2]; + } + virtual String *val_str(Hybrid_type *val, String *buf, uint8 decimals) const + { buf->set(val->integer, &my_charset_bin); return buf;} + static const Hybrid_type_traits_integer *instance(); + Hybrid_type_traits_integer() {}; +}; + + +void dummy_error_processor(THD *thd, void *data); + +void view_error_processor(THD *thd, void *data); + +/* + Instances of Name_resolution_context store the information necesary for + name resolution of Items and other context analysis of a query made in + fix_fields(). + + This structure is a part of SELECT_LEX, a pointer to this structure is + assigned when an item is created (which happens mostly during parsing + (sql_yacc.yy)), but the structure itself will be initialized after parsing + is complete + + TODO: move subquery of INSERT ... SELECT and CREATE ... SELECT to + separate SELECT_LEX which allow to remove tricks of changing this + structure before and after INSERT/CREATE and its SELECT to make correct + field name resolution. +*/ +struct Name_resolution_context: Sql_alloc +{ + /* + The name resolution context to search in when an Item cannot be + resolved in this context (the context of an outer select) + */ + Name_resolution_context *outer_context; + + /* + List of tables used to resolve the items of this context. Usually these + are tables from the FROM clause of SELECT statement. The exceptions are + INSERT ... SELECT and CREATE ... SELECT statements, where SELECT + subquery is not moved to a separate SELECT_LEX. For these types of + statements we have to change this member dynamically to ensure correct + name resolution of different parts of the statement. + */ + TABLE_LIST *table_list; + /* + In most cases the two table references below replace 'table_list' above + for the purpose of name resolution. The first and last name resolution + table references allow us to search only in a sub-tree of the nested + join tree in a FROM clause. This is needed for NATURAL JOIN, JOIN ... USING + and JOIN ... ON. + */ + TABLE_LIST *first_name_resolution_table; + /* + Last table to search in the list of leaf table references that begins + with first_name_resolution_table. + */ + TABLE_LIST *last_name_resolution_table; + + /* Cache first_name_resolution_table in setup_natural_join_row_types */ + TABLE_LIST *natural_join_first_table; + /* + SELECT_LEX item belong to, in case of merged VIEW it can differ from + SELECT_LEX where item was created, so we can't use table_list/field_list + from there + */ + st_select_lex *select_lex; + + /* + Processor of errors caused during Item name resolving, now used only to + hide underlying tables in errors about views (i.e. it substitute some + errors for views) + */ + void (*error_processor)(THD *, void *); + void *error_processor_data; + + /* + When TRUE items are resolved in this context both against the + SELECT list and this->table_list. If FALSE, items are resolved + only against this->table_list. + */ + bool resolve_in_select_list; + + /* + Security context of this name resolution context. It's used for views + and is non-zero only if the view is defined with SQL SECURITY DEFINER. + */ + Security_context *security_ctx; + + Name_resolution_context() + :outer_context(0), table_list(0), select_lex(0), + error_processor_data(0), + security_ctx(0) + {} + + void init() + { + resolve_in_select_list= FALSE; + error_processor= &dummy_error_processor; + first_name_resolution_table= NULL; + last_name_resolution_table= NULL; + } + + void resolve_in_table_list_only(TABLE_LIST *tables) + { + table_list= first_name_resolution_table= tables; + resolve_in_select_list= FALSE; + } + + void process_error(THD *thd) + { + (*error_processor)(thd, error_processor_data); + } + st_select_lex *outer_select() + { + return (outer_context ? + outer_context->select_lex : + NULL); + } +}; + + +/* + Store and restore the current state of a name resolution context. +*/ + +class Name_resolution_context_state +{ +private: + TABLE_LIST *save_table_list; + TABLE_LIST *save_first_name_resolution_table; + TABLE_LIST *save_next_name_resolution_table; + bool save_resolve_in_select_list; + TABLE_LIST *save_next_local; + +public: + Name_resolution_context_state() {} /* Remove gcc warning */ + +public: + /* Save the state of a name resolution context. */ + void save_state(Name_resolution_context *context, TABLE_LIST *table_list) + { + save_table_list= context->table_list; + save_first_name_resolution_table= context->first_name_resolution_table; + save_resolve_in_select_list= context->resolve_in_select_list; + save_next_local= table_list->next_local; + save_next_name_resolution_table= table_list->next_name_resolution_table; + } + + /* Restore a name resolution context from saved state. */ + void restore_state(Name_resolution_context *context, TABLE_LIST *table_list) + { + table_list->next_local= save_next_local; + table_list->next_name_resolution_table= save_next_name_resolution_table; + context->table_list= save_table_list; + context->first_name_resolution_table= save_first_name_resolution_table; + context->resolve_in_select_list= save_resolve_in_select_list; + } + + TABLE_LIST *get_first_name_resolution_table() + { + return save_first_name_resolution_table; + } +}; + + +/* + This enum is used to report information about monotonicity of function + represented by Item* tree. + Monotonicity is defined only for Item* trees that represent table + partitioning expressions (i.e. have no subselects/user vars/PS parameters + etc etc). An Item* tree is assumed to have the same monotonicity properties + as its correspoinding function F: + + [signed] longlong F(field1, field2, ...) { + put values of field_i into table record buffer; + return item->val_int(); + } + + NOTE + At the moment function monotonicity is not well defined (and so may be + incorrect) for Item trees with parameters/return types that are different + from INT_RESULT, may be NULL, or are unsigned. + It will be possible to address this issue once the related partitioning bugs + (BUG#16002, BUG#15447, BUG#13436) are fixed. + + The NOT_NULL enums are used in TO_DAYS, since TO_DAYS('2001-00-00') returns + NULL which puts those rows into the NULL partition, but + '2000-12-31' < '2001-00-00' < '2001-01-01'. So special handling is needed + for this (see Bug#20577). +*/ + +typedef enum monotonicity_info +{ + NON_MONOTONIC, /* none of the below holds */ + MONOTONIC_INCREASING, /* F() is unary and (x < y) => (F(x) <= F(y)) */ + MONOTONIC_INCREASING_NOT_NULL, /* But only for valid/real x and y */ + MONOTONIC_STRICT_INCREASING,/* F() is unary and (x < y) => (F(x) < F(y)) */ + MONOTONIC_STRICT_INCREASING_NOT_NULL /* But only for valid/real x and y */ +} enum_monotonicity_info; + +/*************************************************************************/ + +class sp_rcontext; + + +class Item_equal; + +struct st_join_table* const NO_PARTICULAR_TAB= (struct st_join_table*)0x1; + +typedef struct replace_equal_field_arg +{ + Item_equal *item_equal; + struct st_join_table *context_tab; +} REPLACE_EQUAL_FIELD_ARG; + +class Settable_routine_parameter +{ +public: + /* + Set required privileges for accessing the parameter. + + SYNOPSIS + set_required_privilege() + rw if 'rw' is true then we are going to read and set the + parameter, so SELECT and UPDATE privileges might be + required, otherwise we only reading it and SELECT + privilege might be required. + */ + Settable_routine_parameter() {} + virtual ~Settable_routine_parameter() {} + virtual void set_required_privilege(bool rw) {}; + + /* + Set parameter value. + + SYNOPSIS + set_value() + thd thread handle + ctx context to which parameter belongs (if it is local + variable). + it item which represents new value + + RETURN + FALSE if parameter value has been set, + TRUE if error has occured. + */ + virtual bool set_value(THD *thd, sp_rcontext *ctx, Item **it)= 0; + + virtual void set_out_param_info(Send_field *info) {} + + virtual const Send_field *get_out_param_info() const + { return NULL; } +}; + + +struct st_dyncall_create_def +{ + Item *num, *value; + CHARSET_INFO *cs; + uint len, frac; + DYNAMIC_COLUMN_TYPE type; +}; + +typedef struct st_dyncall_create_def DYNCALL_CREATE_DEF; + + +typedef bool (Item::*Item_processor) (uchar *arg); +/* + Analyzer function + SYNOPSIS + argp in/out IN: Analysis parameter + OUT: Parameter to be passed to the transformer + + RETURN + TRUE Invoke the transformer + FALSE Don't do it + +*/ +typedef bool (Item::*Item_analyzer) (uchar **argp); +typedef Item* (Item::*Item_transformer) (uchar *arg); +typedef void (*Cond_traverser) (const Item *item, void *arg); + +class Item_equal; +class COND_EQUAL; + +class st_select_lex_unit; + +class Item { + Item(const Item &); /* Prevent use of these */ + void operator=(Item &); + /** + The index in the JOIN::join_tab array of the JOIN_TAB this Item is attached + to. Items are attached (or 'pushed') to JOIN_TABs during optimization by the + make_cond_for_table procedure. During query execution, this item is + evaluated when the join loop reaches the corresponding JOIN_TAB. + + If the value of join_tab_idx >= MAX_TABLES, this means that there is no + corresponding JOIN_TAB. + */ + uint join_tab_idx; + +public: + static void *operator new(size_t size) throw () + { return sql_alloc(size); } + static void *operator new(size_t size, MEM_ROOT *mem_root) throw () + { return alloc_root(mem_root, size); } + static void operator delete(void *ptr,size_t size) { TRASH_FREE(ptr, size); } + static void operator delete(void *ptr, MEM_ROOT *mem_root) {} + + enum Type {FIELD_ITEM= 0, FUNC_ITEM, SUM_FUNC_ITEM, STRING_ITEM, + INT_ITEM, REAL_ITEM, NULL_ITEM, VARBIN_ITEM, + COPY_STR_ITEM, FIELD_AVG_ITEM, DEFAULT_VALUE_ITEM, + PROC_ITEM,COND_ITEM, REF_ITEM, FIELD_STD_ITEM, + FIELD_VARIANCE_ITEM, INSERT_VALUE_ITEM, + SUBSELECT_ITEM, ROW_ITEM, CACHE_ITEM, TYPE_HOLDER, + PARAM_ITEM, TRIGGER_FIELD_ITEM, DECIMAL_ITEM, + XPATH_NODESET, XPATH_NODESET_CMP, + VIEW_FIXER_ITEM, EXPR_CACHE_ITEM}; + + enum cond_result { COND_UNDEF,COND_OK,COND_TRUE,COND_FALSE }; + + enum traverse_order { POSTFIX, PREFIX }; + + /* Cache of the result of is_expensive(). */ + int8 is_expensive_cache; + + /* Reuse size, only used by SP local variable assignment, otherwise 0 */ + uint rsize; + + /* + str_values's main purpose is to be used to cache the value in + save_in_field + */ + String str_value; + char * name; /* Name from select */ + /* Original item name (if it was renamed)*/ + char * orig_name; + /** + Intrusive list pointer for free list. If not null, points to the next + Item on some Query_arena's free list. For instance, stored procedures + have their own Query_arena's. + + @see Query_arena::free_list + */ + Item *next; + /* + The maximum value length in characters multiplied by collation->mbmaxlen. + Almost always it's the maximum value length in bytes. + */ + uint32 max_length; + /* + TODO: convert name and name_length fields into LEX_STRING to keep them in + sync (see bug #11829681/60295 etc). Then also remove some strlen(name) + calls. + */ + uint name_length; /* Length of name */ + uint decimals; + int marker; + bool maybe_null; /* If item may be null */ + bool in_rollup; /* If used in GROUP BY list + of a query with ROLLUP */ + bool null_value; /* if item is null */ + bool unsigned_flag; + bool with_sum_func; /* True if item contains a sum func */ + bool with_param; /* True if contains an SP parameter */ + /** + True if any item except Item_sum_func contains a field. Set during parsing. + */ + bool with_field; + bool fixed; /* If item fixed with fix_fields */ + bool is_autogenerated_name; /* indicate was name of this Item + autogenerated or set by user */ + bool with_subselect; /* If this item is a subselect or some + of its arguments is or contains a + subselect */ + DTCollation collation; + Item_result cmp_context; /* Comparison context */ + // alloc & destruct is done as start of select using sql_alloc + Item(); + /* + Constructor used by Item_field, Item_ref & aggregate (sum) functions. + Used for duplicating lists in processing queries with temporary + tables + Also it used for Item_cond_and/Item_cond_or for creating + top AND/OR structure of WHERE clause to protect it of + optimisation changes in prepared statements + */ + Item(THD *thd, Item *item); + virtual ~Item() + { +#ifdef EXTRA_DEBUG + name=0; +#endif + } /*lint -e1509 */ + void set_name(const char *str, uint length, CHARSET_INFO *cs); + void set_name_no_truncate(const char *str, uint length, CHARSET_INFO *cs); + void set_name_for_rollback(THD *thd, const char *str, uint length, + CHARSET_INFO *cs); + void rename(char *new_name); + void init_make_field(Send_field *tmp_field,enum enum_field_types type); + virtual void cleanup(); + virtual void make_field(Send_field *field); + virtual Field *make_string_field(TABLE *table); + virtual bool fix_fields(THD *, Item **); + /* + Fix after some tables has been pulled out. Basically re-calculate all + attributes that are dependent on the tables. + */ + virtual void fix_after_pullout(st_select_lex *new_parent, Item **ref) {}; + + /* + This method should be used in case where we are sure that we do not need + complete fix_fields() procedure. + Usually this method is used by the optimizer when it has to create a new + item out of other already fixed items. For example, if the optimizer has + to create a new Item_func for an inferred equality whose left and right + parts are already fixed items. In some cases the optimizer cannot use + directly fixed items as the arguments of the created functional item, + but rather uses intermediate type conversion items. Then the method is + supposed to be applied recursively. + */ + virtual inline void quick_fix_field() { fixed= 1; } + /* Function returns 1 on overflow and -1 on fatal errors */ + int save_in_field_no_warnings(Field *field, bool no_conversions); + virtual int save_in_field(Field *field, bool no_conversions); + virtual void save_org_in_field(Field *field) + { (void) save_in_field(field, 1); } + virtual int save_safe_in_field(Field *field) + { return save_in_field(field, 1); } + virtual bool send(Protocol *protocol, String *str); + virtual bool eq(const Item *, bool binary_cmp) const; + /* result_type() of an item specifies how the value should be returned */ + virtual Item_result result_type() const { return REAL_RESULT; } + /* ... while cmp_type() specifies how it should be compared */ + virtual Item_result cmp_type() const; + virtual Item_result cast_to_int_type() const { return cmp_type(); } + virtual enum_field_types string_field_type() const; + virtual enum_field_types field_type() const; + virtual enum Type type() const =0; + /* + real_type() is the type of base item. This is same as type() for + most items, except Item_ref() and Item_cache_wrapper() where it + shows the type for the underlaying item. + */ + virtual enum Type real_type() const { return type(); } + + /* + Return information about function monotonicity. See comment for + enum_monotonicity_info for details. This function can only be called + after fix_fields() call. + */ + virtual enum_monotonicity_info get_monotonicity_info() const + { return NON_MONOTONIC; } + + /* + Convert "func_arg $CMP$ const" half-interval into "FUNC(func_arg) $CMP2$ const2" + + SYNOPSIS + val_int_endpoint() + left_endp FALSE <=> The interval is "x < const" or "x <= const" + TRUE <=> The interval is "x > const" or "x >= const" + + incl_endp IN FALSE <=> the comparison is '<' or '>' + TRUE <=> the comparison is '<=' or '>=' + OUT The same but for the "F(x) $CMP$ F(const)" comparison + + DESCRIPTION + This function is defined only for unary monotonic functions. The caller + supplies the source half-interval + + x $CMP$ const + + The value of const is supplied implicitly as the value this item's + argument, the form of $CMP$ comparison is specified through the + function's arguments. The calle returns the result interval + + F(x) $CMP2$ F(const) + + passing back F(const) as the return value, and the form of $CMP2$ + through the out parameter. NULL values are assumed to be comparable and + be less than any non-NULL values. + + RETURN + The output range bound, which equal to the value of val_int() + - If the value of the function is NULL then the bound is the + smallest possible value of LONGLONG_MIN + */ + virtual longlong val_int_endpoint(bool left_endp, bool *incl_endp) + { DBUG_ASSERT(0); return 0; } + + + /* valXXX methods must return NULL or 0 or 0.0 if null_value is set. */ + /* + Return double precision floating point representation of item. + + SYNOPSIS + val_real() + + RETURN + In case of NULL value return 0.0 and set null_value flag to TRUE. + If value is not null null_value flag will be reset to FALSE. + */ + virtual double val_real()=0; + /* + Return integer representation of item. + + SYNOPSIS + val_int() + + RETURN + In case of NULL value return 0 and set null_value flag to TRUE. + If value is not null null_value flag will be reset to FALSE. + */ + virtual longlong val_int()=0; + Longlong_hybrid to_longlong_hybrid() + { + return Longlong_hybrid(val_int(), unsigned_flag); + } + /* + This is just a shortcut to avoid the cast. You should still use + unsigned_flag to check the sign of the item. + */ + inline ulonglong val_uint() { return (ulonglong) val_int(); } + /* + Return string representation of this item object. + + SYNOPSIS + val_str() + str an allocated buffer this or any nested Item object can use to + store return value of this method. + + NOTE + Buffer passed via argument should only be used if the item itself + doesn't have an own String buffer. In case when the item maintains + it's own string buffer, it's preferable to return it instead to + minimize number of mallocs/memcpys. + The caller of this method can modify returned string, but only in case + when it was allocated on heap, (is_alloced() is true). This allows + the caller to efficiently use a buffer allocated by a child without + having to allocate a buffer of it's own. The buffer, given to + val_str() as argument, belongs to the caller and is later used by the + caller at it's own choosing. + A few implications from the above: + - unless you return a string object which only points to your buffer + but doesn't manages it you should be ready that it will be + modified. + - even for not allocated strings (is_alloced() == false) the caller + can change charset (see Item_func_{typecast/binary}. XXX: is this + a bug? + - still you should try to minimize data copying and return internal + object whenever possible. + + RETURN + In case of NULL value return 0 (NULL pointer) and set null_value flag + to TRUE. + If value is not null null_value flag will be reset to FALSE. + */ + virtual String *val_str(String *str)=0; + + /* + Returns string representation of this item in ASCII format. + + SYNOPSIS + val_str_ascii() + str - similar to val_str(); + + NOTE + This method is introduced for performance optimization purposes. + + 1. val_str() result of some Items in string context + depends on @@character_set_results. + @@character_set_results can be set to a "real multibyte" character + set like UCS2, UTF16, UTF32. (We'll use only UTF32 in the examples + below for convenience.) + + So the default string result of such functions + in these circumstances is real multi-byte character set, like UTF32. + + For example, all numbers in string context + return result in @@character_set_results: + + SELECT CONCAT(20010101); -> UTF32 + + We do sprintf() first (to get ASCII representation) + and then convert to UTF32; + + So these kind "data sources" can use ASCII representation + internally, but return multi-byte data only because + @@character_set_results wants so. + Therefore, conversion from ASCII to UTF32 is applied internally. + + + 2. Some other functions need in fact ASCII input. + + For example, + inet_aton(), GeometryFromText(), Convert_TZ(), GET_FORMAT(). + + Similar, fields of certain type, like DATE, TIME, + when you insert string data into them, expect in fact ASCII input. + If they get non-ASCII input, for example UTF32, they + convert input from UTF32 to ASCII, and then use ASCII + representation to do further processing. + + + 3. Now imagine we pass result of a data source of the first type + to a data destination of the second type. + + What happens: + a. data source converts data from ASCII to UTF32, because + @@character_set_results wants so and passes the result to + data destination. + b. data destination gets UTF32 string. + c. data destination converts UTF32 string to ASCII, + because it needs ASCII representation to be able to handle data + correctly. + + As a result we get two steps of unnecessary conversion: + From ASCII to UTF32, then from UTF32 to ASCII. + + A better way to handle these situations is to pass ASCII + representation directly from the source to the destination. + + This is why val_str_ascii() introduced. + + RETURN + Similar to val_str() + */ + virtual String *val_str_ascii(String *str); + + /* + Returns the val_str() value converted to the given character set. + */ + String *val_str(String *str, String *converter, CHARSET_INFO *to); + /* + Return decimal representation of item with fixed point. + + SYNOPSIS + val_decimal() + decimal_buffer buffer which can be used by Item for returning value + (but can be not) + + NOTE + Returned value should not be changed if it is not the same which was + passed via argument. + + RETURN + Return pointer on my_decimal (it can be other then passed via argument) + if value is not NULL (null_value flag will be reset to FALSE). + In case of NULL value it return 0 pointer and set null_value flag + to TRUE. + */ + virtual my_decimal *val_decimal(my_decimal *decimal_buffer)= 0; + /* + Return boolean value of item. + + RETURN + FALSE value is false or NULL + TRUE value is true (not equal to 0) + */ + virtual bool val_bool(); + virtual String *val_nodeset(String*) { return 0; } + + /* + save_val() is method of val_* family which stores value in the given + field. + */ + virtual void save_val(Field *to) { save_org_in_field(to); } + /* + save_result() is method of val*result() family which stores value in + the given field. + */ + virtual void save_result(Field *to) { save_val(to); } + /* Helper functions, see item_sum.cc */ + String *val_string_from_real(String *str); + String *val_string_from_int(String *str); + String *val_string_from_decimal(String *str); + String *val_string_from_date(String *str); + my_decimal *val_decimal_from_real(my_decimal *decimal_value); + my_decimal *val_decimal_from_int(my_decimal *decimal_value); + my_decimal *val_decimal_from_string(my_decimal *decimal_value); + my_decimal *val_decimal_from_date(my_decimal *decimal_value); + my_decimal *val_decimal_from_time(my_decimal *decimal_value); + longlong val_int_from_decimal(); + longlong val_int_from_date(); + double val_real_from_decimal(); + double val_real_from_date(); + + int save_time_in_field(Field *field); + int save_date_in_field(Field *field); + int save_str_value_in_field(Field *field, String *result); + + virtual Field *get_tmp_table_field() { return 0; } + /* This is also used to create fields in CREATE ... SELECT: */ + virtual Field *tmp_table_field(TABLE *t_arg) { return 0; } + virtual const char *full_name() const { return name ? name : "???"; } + const char *field_name_or_null() + { return real_item()->type() == Item::FIELD_ITEM ? name : NULL; } + + /* + *result* family of methods is analog of *val* family (see above) but + return value of result_field of item if it is present. If Item have not + result field, it return val(). This methods set null_value flag in same + way as *val* methods do it. + */ + virtual double val_result() { return val_real(); } + virtual longlong val_int_result() { return val_int(); } + virtual String *str_result(String* tmp) { return val_str(tmp); } + virtual my_decimal *val_decimal_result(my_decimal *val) + { return val_decimal(val); } + virtual bool val_bool_result() { return val_bool(); } + virtual bool is_null_result() { return is_null(); } + /* + Returns 1 if result type and collation for val_str() can change between + calls + */ + virtual bool dynamic_result() { return 0; } + /* + Bitmap of tables used by item + (note: if you need to check dependencies on individual columns, check out + class Field_enumerator) + */ + virtual table_map used_tables() const { return (table_map) 0L; } + virtual table_map all_used_tables() const { return used_tables(); } + /* + Return table map of tables that can't be NULL tables (tables that are + used in a context where if they would contain a NULL row generated + by a LEFT or RIGHT join, the item would not be true). + This expression is used on WHERE item to determinate if a LEFT JOIN can be + converted to a normal join. + Generally this function should return used_tables() if the function + would return null if any of the arguments are null + As this is only used in the beginning of optimization, the value don't + have to be updated in update_used_tables() + */ + virtual table_map not_null_tables() const { return used_tables(); } + /* + Returns true if this is a simple constant item like an integer, not + a constant expression. Used in the optimizer to propagate basic constants. + */ + virtual bool basic_const_item() const { return 0; } + /* cloning of constant items (0 if it is not const) */ + virtual Item *clone_item() { return 0; } + virtual cond_result eq_cmp_result() const { return COND_OK; } + inline uint float_length(uint decimals_par) const + { return decimals != NOT_FIXED_DEC ? (DBL_DIG+2+decimals_par) : DBL_DIG+8;} + /* Returns total number of decimal digits */ + virtual uint decimal_precision() const; + /* Returns the number of integer part digits only */ + inline int decimal_int_part() const + { return my_decimal_int_part(decimal_precision(), decimals); } + /* + Returns the number of fractional digits only. + NOT_FIXED_DEC is replaced to the maximum possible number + of fractional digits, taking into account the data type. + */ + uint decimal_scale() const + { + return decimals < NOT_FIXED_DEC ? decimals : + is_temporal_type_with_time(field_type()) ? + TIME_SECOND_PART_DIGITS : + min(max_length, DECIMAL_MAX_SCALE); + } + /* + Returns how many digits a divisor adds into a division result. + This is important when the integer part of the divisor can be 0. + In this example: + SELECT 1 / 0.000001; -> 1000000.0000 + the divisor adds 5 digits into the result precision. + + Currently this method only replaces NOT_FIXED_DEC to + TIME_SECOND_PART_DIGITS for temporal data types. + This method can be made virtual, to create more efficient (smaller) + data types for division results. + For example, in + SELECT 1/1.000001; + the divisor could provide no additional precision into the result, + so could any other items that are know to return a result + with non-zero integer part. + */ + uint divisor_precision_increment() const + { + return decimals < NOT_FIXED_DEC ? decimals : + is_temporal_type_with_time(field_type()) ? + TIME_SECOND_PART_DIGITS : + decimals; + } + /** + TIME or DATETIME precision of the item: 0..6 + */ + uint temporal_precision(enum_field_types type); + /* + Returns true if this is constant (during query execution, i.e. its value + will not change until next fix_fields) and its value is known. + */ + virtual bool const_item() const { return used_tables() == 0; } + /* + Returns true if this is constant but its value may be not known yet. + (Can be used for parameters of prep. stmts or of stored procedures.) + */ + virtual bool const_during_execution() const + { return (used_tables() & ~PARAM_TABLE_BIT) == 0; } + + /** + This method is used for to: + - to generate a view definition query (SELECT-statement); + - to generate a SQL-query for EXPLAIN EXTENDED; + - to generate a SQL-query to be shown in INFORMATION_SCHEMA; + - debug. + + For more information about view definition query, INFORMATION_SCHEMA + query and why they should be generated from the Item-tree, @see + mysql_register_view(). + */ + virtual inline void print(String *str, enum_query_type query_type) + { + str->append(full_name()); + } + + void print_item_w_name(String *, enum_query_type query_type); + void print_value(String *); + virtual void update_used_tables() {} + virtual void split_sum_func(THD *thd, Item **ref_pointer_array, + List &fields) {} + /* Called for items that really have to be split */ + void split_sum_func2(THD *thd, Item **ref_pointer_array, List &fields, + Item **ref, bool skip_registered); + virtual bool get_date(MYSQL_TIME *ltime, ulonglong fuzzydate); + bool get_time(MYSQL_TIME *ltime) + { return get_date(ltime, TIME_TIME_ONLY); } + bool get_seconds(ulonglong *sec, ulong *sec_part); + virtual bool get_date_result(MYSQL_TIME *ltime, ulonglong fuzzydate) + { return get_date(ltime,fuzzydate); } + /* + The method allows to determine nullness of a complex expression + without fully evaluating it, instead of calling val/result*() then + checking null_value. Used in Item_func_isnull/Item_func_isnotnull + and Item_sum_count/Item_sum_count_distinct. + Any new item which can be NULL must implement this method. + */ + virtual bool is_null() { return 0; } + + /* + Make sure the null_value member has a correct value. + */ + virtual void update_null_value () { (void) val_int(); } + + /* + Inform the item that there will be no distinction between its result + being FALSE or NULL. + + NOTE + This function will be called for eg. Items that are top-level AND-parts + of the WHERE clause. Items implementing this function (currently + Item_cond_and and subquery-related item) enable special optimizations + when they are "top level". + */ + virtual void top_level_item() {} + /* + set field of temporary table for Item which can be switched on temporary + table during query processing (grouping and so on) + */ + virtual void set_result_field(Field *field) {} + virtual bool is_result_field() { return 0; } + virtual bool is_bool_func() { return 0; } + virtual void save_in_result_field(bool no_conversions) {} + /* + set value of aggregate function in case of no rows for grouping were found + */ + virtual void no_rows_in_result() {} + virtual void restore_to_before_no_rows_in_result() {} + virtual Item *copy_or_same(THD *thd) { return this; } + virtual Item *copy_andor_structure(THD *thd) { return this; } + virtual Item *real_item() { return this; } + virtual Item *get_tmp_table_item(THD *thd) { return copy_or_same(thd); } + + static CHARSET_INFO *default_charset(); + virtual CHARSET_INFO *compare_collation() { return NULL; } + + /* + For backward compatibility, to make numeric + data types return "binary" charset in client-side metadata. + */ + virtual CHARSET_INFO *charset_for_protocol(void) const + { + return result_type() == STRING_RESULT ? collation.collation : + &my_charset_bin; + }; + + virtual bool walk(Item_processor processor, bool walk_subquery, uchar *arg) + { + return (this->*processor)(arg); + } + + virtual Item* transform(Item_transformer transformer, uchar *arg); + + /* + This function performs a generic "compilation" of the Item tree. + The process of compilation is assumed to go as follows: + + compile() + { + if (this->*some_analyzer(...)) + { + compile children if any; + this->*some_transformer(...); + } + } + + i.e. analysis is performed top-down while transformation is done + bottom-up. + */ + virtual Item* compile(Item_analyzer analyzer, uchar **arg_p, + Item_transformer transformer, uchar *arg_t) + { + if ((this->*analyzer) (arg_p)) + return ((this->*transformer) (arg_t)); + return 0; + } + + virtual void traverse_cond(Cond_traverser traverser, + void *arg, traverse_order order) + { + (*traverser)(this, arg); + } + + /* + This is used to get the most recent version of any function in + an item tree. The version is the version where a MySQL function + was introduced in. So any function which is added should use + this function and set the int_arg to maximum of the input data + and their own version info. + */ + virtual bool intro_version(uchar *int_arg) { return 0; } + + virtual bool remove_dependence_processor(uchar * arg) { return 0; } + virtual bool remove_fixed(uchar * arg) { fixed= 0; return 0; } + virtual bool cleanup_processor(uchar *arg); + virtual bool collect_item_field_processor(uchar * arg) { return 0; } + virtual bool add_field_to_set_processor(uchar * arg) { return 0; } + virtual bool find_item_in_field_list_processor(uchar *arg) { return 0; } + virtual bool change_context_processor(uchar *context) { return 0; } + virtual bool reset_query_id_processor(uchar *query_id_arg) { return 0; } + virtual bool is_expensive_processor(uchar *arg) { return 0; } + virtual bool register_field_in_read_map(uchar *arg) { return 0; } + virtual bool register_field_in_write_map(uchar *arg) { return 0; } + virtual bool enumerate_field_refs_processor(uchar *arg) { return 0; } + virtual bool mark_as_eliminated_processor(uchar *arg) { return 0; } + virtual bool eliminate_subselect_processor(uchar *arg) { return 0; } + virtual bool set_fake_select_as_master_processor(uchar *arg) { return 0; } + virtual bool update_table_bitmaps_processor(uchar *arg) { return 0; } + virtual bool view_used_tables_processor(uchar *arg) { return 0; } + virtual bool eval_not_null_tables(uchar *opt_arg) { return 0; } + virtual bool is_subquery_processor (uchar *opt_arg) { return 0; } + virtual bool count_sargable_conds(uchar *arg) { return 0; } + virtual bool limit_index_condition_pushdown_processor(uchar *opt_arg) + { + return FALSE; + } + bool cleanup_is_expensive_cache_processor(uchar *arg) + { + is_expensive_cache= (int8)(-1); + return 0; + } + + /* To call bool function for all arguments */ + struct bool_func_call_args + { + Item *original_func_item; + void (Item::*bool_function)(); + }; + bool call_bool_func_processor(uchar *org_item) + { + bool_func_call_args *info= (bool_func_call_args*) org_item; + /* Avoid recursion, as walk also calls for original item */ + if (info->original_func_item != this) + (this->*(info->bool_function))(); + return FALSE; + } + + /* + The next function differs from the previous one that a bitmap to be updated + is passed as uchar *arg. + */ + virtual bool register_field_in_bitmap(uchar *arg) { return 0; } + + bool cache_const_expr_analyzer(uchar **arg); + Item* cache_const_expr_transformer(uchar *arg); + + /* + Check if a partition function is allowed + SYNOPSIS + check_partition_func_processor() + int_arg Ignored + RETURN VALUE + TRUE Partition function not accepted + FALSE Partition function accepted + + DESCRIPTION + check_partition_func_processor is used to check if a partition function + uses an allowed function. An allowed function will always ensure that + X=Y guarantees that also part_function(X)=part_function(Y) where X is + a set of partition fields and so is Y. The problems comes mainly from + character sets where two equal strings can be quite unequal. E.g. the + german character for double s is equal to 2 s. + + The default is that an item is not allowed + in a partition function. Allowed functions + can never depend on server version, they cannot depend on anything + related to the environment. They can also only depend on a set of + fields in the table itself. They cannot depend on other tables and + cannot contain any queries and cannot contain udf's or similar. + If a new Item class is defined and it inherits from a class that is + allowed in a partition function then it is very important to consider + whether this should be inherited to the new class. If not the function + below should be defined in the new Item class. + + The general behaviour is that most integer functions are allowed. + If the partition function contains any multi-byte collations then + the function check_part_func_fields will report an error on the + partition function independent of what functions are used. So the + only character sets allowed are single character collation and + even for those only a limited set of functions are allowed. The + problem with multi-byte collations is that almost every string + function has the ability to change things such that two strings + that are equal will not be equal after manipulated by a string + function. E.g. two strings one contains a double s, there is a + special german character that is equal to two s. Now assume a + string function removes one character at this place, then in + one the double s will be removed and in the other there will + still be one s remaining and the strings are no longer equal + and thus the partition function will not sort equal strings into + the same partitions. + + So the check if a partition function is valid is two steps. First + check that the field types are valid, next check that the partition + function is valid. The current set of partition functions valid + assumes that there are no multi-byte collations amongst the partition + fields. + */ + virtual bool check_partition_func_processor(uchar *bool_arg) { return TRUE;} + /* + @brief + Processor used to mark virtual columns used in partitioning expression + + @param + arg always ignored + + @retval + FALSE always + */ + virtual bool vcol_in_partition_func_processor(uchar *arg) + { + return FALSE; + } + + /* + The enumeration Subst_constraint is currently used only in implementations + of the virtual function subst_argument_checker. + */ + enum Subst_constraint + { + NO_SUBST= 0, /* No substitution for a field is allowed */ + ANY_SUBST, /* Any substitution for a field is allowed */ + IDENTITY_SUBST /* Substitution for a field is allowed if any two + different values of the field type are not equal */ + }; + + virtual bool subst_argument_checker(uchar **arg) + { + return (*arg != NULL); + } + + /* + @brief + Processor used to check acceptability of an item in the defining + expression for a virtual column + + @param + arg always ignored + + @retval + FALSE the item is accepted in the definition of a virtual column + @retval + TRUE otherwise + */ + virtual bool check_vcol_func_processor(uchar *arg) + { + return trace_unsupported_by_check_vcol_func_processor(full_name()); + } + + virtual Item *equal_fields_propagator(uchar * arg) { return this; } + virtual bool set_no_const_sub(uchar *arg) { return FALSE; } + /* arg points to REPLACE_EQUAL_FIELD_ARG object */ + virtual Item *replace_equal_field(uchar * arg) { return this; } + /* + Check if an expression value has allowed arguments, like DATE/DATETIME + for date functions. Also used by partitioning code to reject + timezone-dependent expressions in a (sub)partitioning function. + */ + virtual bool check_valid_arguments_processor(uchar *bool_arg) + { + return FALSE; + } + struct Collect_deps_prm + { + List *parameters; + /* unit from which we count nest_level */ + st_select_lex_unit *nest_level_base; + int nest_level; + }; + /** + Collect outer references + */ + virtual bool collect_outer_ref_processor(uchar *arg) {return FALSE; } + + /** + Find a function of a given type + + @param arg the function type to search (enum Item_func::Functype) + @return + @retval TRUE the function type we're searching for is found + @retval FALSE the function type wasn't found + + @description + This function can be used (together with Item::walk()) to find functions + in an item tree fragment. + */ + virtual bool find_function_processor (uchar *arg) + { + return FALSE; + } + + virtual bool check_inner_refs_processor(uchar *arg) { return FALSE; } + + /* + For SP local variable returns pointer to Item representing its + current value and pointer to current Item otherwise. + */ + virtual Item *this_item() { return this; } + virtual const Item *this_item() const { return this; } + + /* + For SP local variable returns address of pointer to Item representing its + current value and pointer passed via parameter otherwise. + */ + virtual Item **this_item_addr(THD *thd, Item **addr_arg) { return addr_arg; } + + // Row emulation + virtual uint cols() { return 1; } + virtual Item* element_index(uint i) { return this; } + virtual Item** addr(uint i) { return 0; } + virtual bool check_cols(uint c); + // It is not row => null inside is impossible + virtual bool null_inside() { return 0; } + // used in row subselects to get value of elements + virtual void bring_value() {} + + Field *tmp_table_field_from_field_type(TABLE *table, bool fixed_length); + virtual Item_field *filed_for_view_update() { return 0; } + + virtual Item *neg_transformer(THD *thd) { return NULL; } + virtual Item *update_value_transformer(uchar *select_arg) { return this; } + virtual Item *expr_cache_insert_transformer(uchar *thd_arg) { return this; } + virtual bool expr_cache_is_needed(THD *) { return FALSE; } + virtual Item *safe_charset_converter(CHARSET_INFO *tocs); + void delete_self() + { + cleanup(); + delete this; + } + + virtual bool is_splocal() { return 0; } /* Needed for error checking */ + + /* + Return Settable_routine_parameter interface of the Item. Return 0 + if this Item is not Settable_routine_parameter. + */ + virtual Settable_routine_parameter *get_settable_routine_parameter() + { + return 0; + } + /** + Check whether this and the given item has compatible comparison context. + Used by the equality propagation. See Item_field::equal_fields_propagator. + + @return + TRUE if the context is the same + FALSE otherwise. + */ + inline bool has_compatible_context(Item *item) const + { + return cmp_context == IMPOSSIBLE_RESULT || item->cmp_context == cmp_context; + } + /** + Test whether an expression is expensive to compute. Used during + optimization to avoid computing expensive expressions during this + phase. Also used to force temp tables when sorting on expensive + functions. + @todo + Normally we should have a method: + cost Item::execution_cost(), + where 'cost' is either 'double' or some structure of various cost + parameters. + + @note + This function is now used to prevent evaluation of expensive subquery + predicates during the optimization phase. It also prevents evaluation + of predicates that are not computable at this moment. + */ + virtual bool is_expensive() + { + if (is_expensive_cache < 0) + is_expensive_cache= walk(&Item::is_expensive_processor, 0, (uchar*)0); + return test(is_expensive_cache); + } + virtual Field::geometry_type get_geometry_type() const + { return Field::GEOM_GEOMETRY; }; + String *check_well_formed_result(String *str, bool send_error= 0); + bool eq_by_collation(Item *item, bool binary_cmp, CHARSET_INFO *cs); + uint32 max_char_length() const + { return max_length / collation.collation->mbmaxlen; } + bool too_big_for_varchar() const + { return max_char_length() > CONVERT_IF_BIGGER_TO_BLOB; } + void fix_length_and_charset(uint32 max_char_length_arg, CHARSET_INFO *cs) + { + max_length= char_to_byte_length_safe(max_char_length_arg, cs->mbmaxlen); + collation.collation= cs; + } + void fix_char_length(uint32 max_char_length_arg) + { + max_length= char_to_byte_length_safe(max_char_length_arg, + collation.collation->mbmaxlen); + } + /* + Return TRUE if the item points to a column of an outer-joined table. + */ + virtual bool is_outer_field() const { DBUG_ASSERT(fixed); return FALSE; } + + /** + Checks if this item or any of its decendents contains a subquery. + */ + virtual bool has_subquery() const { return with_subselect; } + + Item* set_expr_cache(THD *thd); + + virtual Item_equal *get_item_equal() { return NULL; } + virtual void set_item_equal(Item_equal *item_eq) {}; + virtual Item_equal *find_item_equal(COND_EQUAL *cond_equal) { return NULL; } + /** + Set the join tab index to the minimal (left-most) JOIN_TAB to which this + Item is attached. The number is an index is depth_first_tab() traversal + order. + */ + virtual void set_join_tab_idx(uint join_tab_idx_arg) + { + if (join_tab_idx_arg < join_tab_idx) + join_tab_idx= join_tab_idx_arg; + } + virtual uint get_join_tab_idx() { return join_tab_idx; } + + table_map view_used_tables(TABLE_LIST *view) + { + view->view_used_tables= 0; + walk(&Item::view_used_tables_processor, 0, (uchar *) view); + return view->view_used_tables; + } + + /** + Collect and add to the list cache parameters for this Item. + + @note Now implemented only for subqueries and in_optimizer, + if we need it for general function then this method should + be defined for Item_func. + */ + virtual void get_cache_parameters(List ¶meters) { }; + + virtual void mark_as_condition_AND_part(TABLE_LIST *embedding) {}; +}; + + +/** + Compare two Items for List::add_unique() +*/ + +bool cmp_items(Item *a, Item *b); + + +/* + Class to be used to enumerate all field references in an item tree. This + includes references to outside but not fields of the tables within a + subquery. + Suggested usage: + + class My_enumerator : public Field_enumerator + { + virtual void visit_field() { ... your actions ...} + } + + My_enumerator enumerator; + item->walk(Item::enumerate_field_refs_processor, ...,(uchar*)&enumerator); + + This is similar to Visitor pattern. +*/ + +class Field_enumerator +{ +public: + virtual void visit_field(Item_field *field)= 0; + virtual ~Field_enumerator() {}; /* purecov: inspected */ + Field_enumerator() {} /* Remove gcc warning */ +}; + +class sp_head; + +class Item_basic_constant :public Item +{ + table_map used_table_map; +public: + Item_basic_constant(): Item(), used_table_map(0) {}; + void set_used_tables(table_map map) { used_table_map= map; } + table_map used_tables() const { return used_table_map; } + /* to prevent drop fixed flag (no need parent cleanup call) */ + void cleanup() + { + /* + Restore the original field name as it might not have been allocated + in the statement memory. If the name is auto generated, it must be + done again between subsequent executions of a prepared statement. + */ + if (orig_name) + name= orig_name; + } +}; + + +/***************************************************************************** + The class is a base class for representation of stored routine variables in + the Item-hierarchy. There are the following kinds of SP-vars: + - local variables (Item_splocal); + - CASE expression (Item_case_expr); +*****************************************************************************/ + +class Item_sp_variable :public Item +{ +protected: + /* + THD, which is stored in fix_fields() and is used in this_item() to avoid + current_thd use. + */ + THD *m_thd; + +public: + LEX_STRING m_name; + +public: +#ifndef DBUG_OFF + /* + Routine to which this Item_splocal belongs. Used for checking if correct + runtime context is used for variable handling. + */ + sp_head *m_sp; +#endif + +public: + Item_sp_variable(char *sp_var_name_str, uint sp_var_name_length); + +public: + bool fix_fields(THD *thd, Item **); + + double val_real(); + longlong val_int(); + String *val_str(String *sp); + my_decimal *val_decimal(my_decimal *decimal_value); + bool is_null(); + +public: + inline void make_field(Send_field *field); + + inline bool const_item() const; + + inline int save_in_field(Field *field, bool no_conversions); + inline bool send(Protocol *protocol, String *str); +}; + +/***************************************************************************** + Item_sp_variable inline implementation. +*****************************************************************************/ + +inline void Item_sp_variable::make_field(Send_field *field) +{ + Item *it= this_item(); + + if (name) + it->set_name(name, (uint) strlen(name), system_charset_info); + else + it->set_name(m_name.str, (uint) m_name.length, system_charset_info); + it->make_field(field); +} + +inline bool Item_sp_variable::const_item() const +{ + return TRUE; +} + +inline int Item_sp_variable::save_in_field(Field *field, bool no_conversions) +{ + return this_item()->save_in_field(field, no_conversions); +} + +inline bool Item_sp_variable::send(Protocol *protocol, String *str) +{ + return this_item()->send(protocol, str); +} + + +/***************************************************************************** + A reference to local SP variable (incl. reference to SP parameter), used in + runtime. +*****************************************************************************/ + +class Item_splocal :public Item_sp_variable, + private Settable_routine_parameter +{ + uint m_var_idx; + + Type m_type; + Item_result m_result_type; + enum_field_types m_field_type; +public: + /* + If this variable is a parameter in LIMIT clause. + Used only during NAME_CONST substitution, to not append + NAME_CONST to the resulting query and thus not break + the slave. + */ + bool limit_clause_param; + /* + Position of this reference to SP variable in the statement (the + statement itself is in sp_instr_stmt::m_query). + This is valid only for references to SP variables in statements, + excluding DECLARE CURSOR statement. It is used to replace references to SP + variables with NAME_CONST calls when putting statements into the binary + log. + Value of 0 means that this object doesn't corresponding to reference to + SP variable in query text. + */ + uint pos_in_query; + /* + Byte length of SP variable name in the statement (see pos_in_query). + The value of this field may differ from the name_length value because + name_length contains byte length of UTF8-encoded item name, but + the query string (see sp_instr_stmt::m_query) is currently stored with + a charset from the SET NAMES statement. + */ + uint len_in_query; + + Item_splocal(const LEX_STRING &sp_var_name, uint sp_var_idx, + enum_field_types sp_var_type, + uint pos_in_q= 0, uint len_in_q= 0); + + bool is_splocal() { return 1; } /* Needed for error checking */ + + Item *this_item(); + const Item *this_item() const; + Item **this_item_addr(THD *thd, Item **); + + virtual void print(String *str, enum_query_type query_type); + +public: + inline const LEX_STRING *my_name() const; + + inline uint get_var_idx() const; + + inline enum Type type() const; + inline Item_result result_type() const; + inline enum_field_types field_type() const { return m_field_type; } + +private: + bool set_value(THD *thd, sp_rcontext *ctx, Item **it); + +public: + Settable_routine_parameter *get_settable_routine_parameter() + { + return this; + } +}; + +/***************************************************************************** + Item_splocal inline implementation. +*****************************************************************************/ + +inline const LEX_STRING *Item_splocal::my_name() const +{ + return &m_name; +} + +inline uint Item_splocal::get_var_idx() const +{ + return m_var_idx; +} + +inline enum Item::Type Item_splocal::type() const +{ + return m_type; +} + +inline Item_result Item_splocal::result_type() const +{ + return m_result_type; +} + + +/***************************************************************************** + A reference to case expression in SP, used in runtime. +*****************************************************************************/ + +class Item_case_expr :public Item_sp_variable +{ +public: + Item_case_expr(uint case_expr_id); + +public: + Item *this_item(); + const Item *this_item() const; + Item **this_item_addr(THD *thd, Item **); + + inline enum Type type() const; + inline Item_result result_type() const; + +public: + /* + NOTE: print() is intended to be used from views and for debug. + Item_case_expr can not occur in views, so here it is only for debug + purposes. + */ + virtual void print(String *str, enum_query_type query_type); + +private: + uint m_case_expr_id; +}; + +/***************************************************************************** + Item_case_expr inline implementation. +*****************************************************************************/ + +inline enum Item::Type Item_case_expr::type() const +{ + return this_item()->type(); +} + +inline Item_result Item_case_expr::result_type() const +{ + return this_item()->result_type(); +} + + +/* + NAME_CONST(given_name, const_value). + This 'function' has all properties of the supplied const_value (which is + assumed to be a literal constant), and the name given_name. + + This is used to replace references to SP variables when we write PROCEDURE + statements into the binary log. + + TODO + Together with Item_splocal and Item::this_item() we can actually extract + common a base of this class and Item_splocal. Maybe it is possible to + extract a common base with class Item_ref, too. +*/ + +class Item_name_const : public Item +{ + Item *value_item; + Item *name_item; + bool valid_args; +public: + Item_name_const(Item *name_arg, Item *val); + + bool fix_fields(THD *, Item **); + + enum Type type() const; + double val_real(); + longlong val_int(); + String *val_str(String *sp); + my_decimal *val_decimal(my_decimal *); + bool is_null(); + virtual void print(String *str, enum_query_type query_type); + + Item_result result_type() const + { + return value_item->result_type(); + } + + bool const_item() const + { + return TRUE; + } + + int save_in_field(Field *field, bool no_conversions) + { + return value_item->save_in_field(field, no_conversions); + } + + bool send(Protocol *protocol, String *str) + { + return value_item->send(protocol, str); + } + bool check_vcol_func_processor(uchar *arg) + { + return trace_unsupported_by_check_vcol_func_processor("name_const"); + } +}; + +bool agg_item_collations(DTCollation &c, const char *name, + Item **items, uint nitems, uint flags, int item_sep); +bool agg_item_collations_for_comparison(DTCollation &c, const char *name, + Item **items, uint nitems, uint flags); +bool agg_item_set_converter(DTCollation &coll, const char *fname, + Item **args, uint nargs, uint flags, int item_sep); +bool agg_item_charsets(DTCollation &c, const char *name, + Item **items, uint nitems, uint flags, int item_sep); +inline bool +agg_item_charsets_for_string_result(DTCollation &c, const char *name, + Item **items, uint nitems, + int item_sep= 1) +{ + uint flags= MY_COLL_ALLOW_SUPERSET_CONV | + MY_COLL_ALLOW_COERCIBLE_CONV | + MY_COLL_ALLOW_NUMERIC_CONV; + return agg_item_charsets(c, name, items, nitems, flags, item_sep); +} +inline bool +agg_item_charsets_for_comparison(DTCollation &c, const char *name, + Item **items, uint nitems, + int item_sep= 1) +{ + uint flags= MY_COLL_ALLOW_SUPERSET_CONV | + MY_COLL_ALLOW_COERCIBLE_CONV | + MY_COLL_DISALLOW_NONE; + return agg_item_charsets(c, name, items, nitems, flags, item_sep); +} +inline bool +agg_item_charsets_for_string_result_with_comparison(DTCollation &c, + const char *name, + Item **items, uint nitems, + int item_sep= 1) +{ + uint flags= MY_COLL_ALLOW_SUPERSET_CONV | + MY_COLL_ALLOW_COERCIBLE_CONV | + MY_COLL_ALLOW_NUMERIC_CONV | + MY_COLL_DISALLOW_NONE; + return agg_item_charsets(c, name, items, nitems, flags, item_sep); +} + + +class Item_num: public Item_basic_constant +{ +public: + Item_num() { collation.set_numeric(); } /* Remove gcc warning */ + virtual Item_num *neg()= 0; + Item *safe_charset_converter(CHARSET_INFO *tocs); + bool check_partition_func_processor(uchar *int_arg) { return FALSE;} + bool check_vcol_func_processor(uchar *arg) { return FALSE;} +}; + +#define NO_CACHED_FIELD_INDEX ((uint)(-1)) + +class st_select_lex; +class Item_ident :public Item +{ +protected: + /* + We have to store initial values of db_name, table_name and field_name + to be able to restore them during cleanup() because they can be + updated during fix_fields() to values from Field object and life-time + of those is shorter than life-time of Item_field. + */ + const char *orig_db_name; + const char *orig_table_name; + const char *orig_field_name; + +public: + Name_resolution_context *context; + const char *db_name; + const char *table_name; + const char *field_name; + bool alias_name_used; /* true if item was resolved against alias */ + /* + Cached value of index for this field in table->field array, used by prep. + stmts for speeding up their re-execution. Holds NO_CACHED_FIELD_INDEX + if index value is not known. + */ + uint cached_field_index; + /* + Cached pointer to table which contains this field, used for the same reason + by prep. stmt. too in case then we have not-fully qualified field. + 0 - means no cached value. + */ + TABLE_LIST *cached_table; + st_select_lex *depended_from; + /* + Some Items resolved in another select should not be marked as dependency + of the subquery where they are. During normal name resolution, we check + this. Stored procedures and prepared statements first try to resolve an + ident item using a cached table reference and field position from the + previous query execution (cached_table/cached_field_index). If the + tables were not changed, the ident matches the table/field, and we have + faster resolution of the ident without looking through all tables and + fields in the query. But in this case, we can not check all conditions + about this ident item dependency, so we should cache the condition in + this variable. + */ + bool can_be_depended; + Item_ident(Name_resolution_context *context_arg, + const char *db_name_arg, const char *table_name_arg, + const char *field_name_arg); + Item_ident(THD *thd, Item_ident *item); + Item_ident(TABLE_LIST *view_arg, const char *field_name_arg); + const char *full_name() const; + void cleanup(); + st_select_lex *get_depended_from() const; + bool remove_dependence_processor(uchar * arg); + virtual void print(String *str, enum_query_type query_type); + virtual bool change_context_processor(uchar *cntx) + { context= (Name_resolution_context *)cntx; return FALSE; } + /** + Collect outer references + */ + virtual bool collect_outer_ref_processor(uchar *arg); + friend bool insert_fields(THD *thd, Name_resolution_context *context, + const char *db_name, + const char *table_name, List_iterator *it, + bool any_privileges); +}; + + +class Item_ident_for_show :public Item +{ +public: + Field *field; + const char *db_name; + const char *table_name; + + Item_ident_for_show(Field *par_field, const char *db_arg, + const char *table_name_arg) + :field(par_field), db_name(db_arg), table_name(table_name_arg) + {} + + enum Type type() const { return FIELD_ITEM; } + double val_real() { return field->val_real(); } + longlong val_int() { return field->val_int(); } + String *val_str(String *str) { return field->val_str(str); } + my_decimal *val_decimal(my_decimal *dec) { return field->val_decimal(dec); } + void make_field(Send_field *tmp_field); + CHARSET_INFO *charset_for_protocol(void) const + { return field->charset_for_protocol(); } +}; + + +class Item_field :public Item_ident +{ +protected: + void set_field(Field *field); +public: + Field *field,*result_field; + Item_equal *item_equal; + bool no_const_subst; + /* + if any_privileges set to TRUE then here real effective privileges will + be stored + */ + uint have_privileges; + /* field need any privileges (for VIEW creation) */ + bool any_privileges; + Item_field(Name_resolution_context *context_arg, + const char *db_arg,const char *table_name_arg, + const char *field_name_arg); + /* + Constructor needed to process subselect with temporary tables (see Item) + */ + Item_field(THD *thd, Item_field *item); + /* + Constructor used inside setup_wild(), ensures that field, table, + and database names will live as long as Item_field (this is important + in prepared statements). + */ + Item_field(THD *thd, Name_resolution_context *context_arg, Field *field); + /* + If this constructor is used, fix_fields() won't work, because + db_name, table_name and column_name are unknown. It's necessary to call + reset_field() before fix_fields() for all fields created this way. + */ + Item_field(Field *field); + enum Type type() const { return FIELD_ITEM; } + bool eq(const Item *item, bool binary_cmp) const; + double val_real(); + longlong val_int(); + my_decimal *val_decimal(my_decimal *); + String *val_str(String*); + void save_result(Field *to); + double val_result(); + longlong val_int_result(); + String *str_result(String* tmp); + my_decimal *val_decimal_result(my_decimal *); + bool val_bool_result(); + bool is_null_result(); + bool send(Protocol *protocol, String *str_arg); + void reset_field(Field *f); + bool fix_fields(THD *, Item **); + void fix_after_pullout(st_select_lex *new_parent, Item **ref); + void make_field(Send_field *tmp_field); + int save_in_field(Field *field,bool no_conversions); + void save_org_in_field(Field *field); + table_map used_tables() const; + table_map all_used_tables() const; + enum Item_result result_type () const + { + return field->result_type(); + } + Item_result cast_to_int_type() const + { + return field->cmp_type(); + } + enum_field_types field_type() const + { + return field->type(); + } + enum_monotonicity_info get_monotonicity_info() const + { + return MONOTONIC_STRICT_INCREASING; + } + longlong val_int_endpoint(bool left_endp, bool *incl_endp); + Field *get_tmp_table_field() { return result_field; } + Field *tmp_table_field(TABLE *t_arg) { return result_field; } + bool get_date(MYSQL_TIME *ltime, ulonglong fuzzydate); + bool get_date_result(MYSQL_TIME *ltime,ulonglong fuzzydate); + bool is_null() { return field->is_null(); } + void update_null_value(); + void update_table_bitmaps() + { + if (field && field->table) + { + TABLE *tab= field->table; + tab->covering_keys.intersect(field->part_of_key); + tab->merge_keys.merge(field->part_of_key); + if (tab->read_set) + bitmap_fast_test_and_set(tab->read_set, field->field_index); + /* + Do not mark a self-referecing virtual column. + Such virtual columns are reported as invalid. + */ + if (field->vcol_info && tab->vcol_set) + tab->mark_virtual_col(field); + } + } + void update_used_tables() + { + update_table_bitmaps(); + } + Item *get_tmp_table_item(THD *thd); + bool collect_item_field_processor(uchar * arg); + bool add_field_to_set_processor(uchar * arg); + bool find_item_in_field_list_processor(uchar *arg); + bool register_field_in_read_map(uchar *arg); + bool register_field_in_write_map(uchar *arg); + bool register_field_in_bitmap(uchar *arg); + bool check_partition_func_processor(uchar *int_arg) {return FALSE;} + bool vcol_in_partition_func_processor(uchar *bool_arg); + bool check_vcol_func_processor(uchar *arg) { return FALSE;} + bool enumerate_field_refs_processor(uchar *arg); + bool update_table_bitmaps_processor(uchar *arg); + void cleanup(); + Item_equal *get_item_equal() { return item_equal; } + void set_item_equal(Item_equal *item_eq) { item_equal= item_eq; } + Item_equal *find_item_equal(COND_EQUAL *cond_equal); + bool subst_argument_checker(uchar **arg); + Item *equal_fields_propagator(uchar *arg); + bool set_no_const_sub(uchar *arg); + Item *replace_equal_field(uchar *arg); + inline uint32 max_disp_length() { return field->max_display_length(); } + Item_field *filed_for_view_update() { return this; } + Item *safe_charset_converter(CHARSET_INFO *tocs); + int fix_outer_field(THD *thd, Field **field, Item **reference); + virtual Item *update_value_transformer(uchar *select_arg); + virtual void print(String *str, enum_query_type query_type); + bool is_outer_field() const + { + DBUG_ASSERT(fixed); + return field->table->pos_in_table_list->outer_join; + } + Field::geometry_type get_geometry_type() const + { + DBUG_ASSERT(field_type() == MYSQL_TYPE_GEOMETRY); + return field->get_geometry_type(); + } + CHARSET_INFO *charset_for_protocol(void) const + { return field->charset_for_protocol(); } + friend class Item_default_value; + friend class Item_insert_value; + friend class st_select_lex_unit; +}; + +class Item_null :public Item_basic_constant +{ +public: + Item_null(char *name_par=0) + { + maybe_null= null_value= TRUE; + max_length= 0; + name= name_par ? name_par : (char*) "NULL"; + fixed= 1; + collation.set(&my_charset_bin, DERIVATION_IGNORABLE, MY_REPERTOIRE_ASCII); + } + enum Type type() const { return NULL_ITEM; } + bool eq(const Item *item, bool binary_cmp) const; + double val_real(); + longlong val_int(); + String *val_str(String *str); + my_decimal *val_decimal(my_decimal *); + int save_in_field(Field *field, bool no_conversions); + int save_safe_in_field(Field *field); + bool send(Protocol *protocol, String *str); + enum Item_result result_type () const { return STRING_RESULT; } + enum_field_types field_type() const { return MYSQL_TYPE_NULL; } + bool basic_const_item() const { return 1; } + Item *clone_item() { return new Item_null(name); } + bool is_null() { return 1; } + + virtual inline void print(String *str, enum_query_type query_type) + { + str->append(STRING_WITH_LEN("NULL")); + } + + Item *safe_charset_converter(CHARSET_INFO *tocs); + bool check_partition_func_processor(uchar *int_arg) {return FALSE;} + bool check_vcol_func_processor(uchar *arg) { return FALSE;} +}; + +class Item_null_result :public Item_null +{ +public: + Field *result_field; + Item_null_result() : Item_null(), result_field(0) {} + bool is_result_field() { return result_field != 0; } + void save_in_result_field(bool no_conversions) + { + save_in_field(result_field, no_conversions); + } + bool check_partition_func_processor(uchar *int_arg) {return TRUE;} + bool check_vcol_func_processor(uchar *arg) + { + return trace_unsupported_by_check_vcol_func_processor(full_name()); + } +}; + +/* Item represents one placeholder ('?') of prepared statement */ + +class Item_param :public Item, + private Settable_routine_parameter +{ + char cnvbuf[MAX_FIELD_WIDTH]; + String cnvstr; + Item *cnvitem; + +public: + enum enum_item_param_state + { + NO_VALUE, NULL_VALUE, INT_VALUE, REAL_VALUE, + STRING_VALUE, TIME_VALUE, LONG_DATA_VALUE, + DECIMAL_VALUE + } state; + + /* + A buffer for string and long data values. Historically all allocated + values returned from val_str() were treated as eligible to + modification. I. e. in some cases Item_func_concat can append it's + second argument to return value of the first one. Because of that we + can't return the original buffer holding string data from val_str(), + and have to have one buffer for data and another just pointing to + the data. This is the latter one and it's returned from val_str(). + Can not be declared inside the union as it's not a POD type. + */ + String str_value_ptr; + my_decimal decimal_value; + union + { + longlong integer; + double real; + /* + Character sets conversion info for string values. + Character sets of client and connection defined at bind time are used + for all conversions, even if one of them is later changed (i.e. + between subsequent calls to mysql_stmt_execute). + */ + struct CONVERSION_INFO + { + CHARSET_INFO *character_set_client; + CHARSET_INFO *character_set_of_placeholder; + /* + This points at character set of connection if conversion + to it is required (i. e. if placeholder typecode is not BLOB). + Otherwise it's equal to character_set_client (to simplify + check in convert_str_value()). + */ + CHARSET_INFO *final_character_set_of_str_value; + } cs_info; + MYSQL_TIME time; + } value; + + /* Cached values for virtual methods to save us one switch. */ + enum Item_result item_result_type; + enum Type item_type; + + /* + Used when this item is used in a temporary table. + This is NOT placeholder metadata sent to client, as this value + is assigned after sending metadata (in setup_one_conversion_function). + For example in case of 'SELECT ?' you'll get MYSQL_TYPE_STRING both + in result set and placeholders metadata, no matter what type you will + supply for this placeholder in mysql_stmt_execute. + */ + enum enum_field_types param_type; + /* + Offset of placeholder inside statement text. Used to create + no-placeholders version of this statement for the binary log. + */ + uint pos_in_query; + + Item_param(uint pos_in_query_arg); + + enum Item_result result_type () const { return item_result_type; } + enum Item_result cast_to_int_type() const { return item_result_type; } + enum Type type() const { return item_type; } + enum_field_types field_type() const { return param_type; } + + double val_real(); + longlong val_int(); + my_decimal *val_decimal(my_decimal*); + String *val_str(String*); + bool get_date(MYSQL_TIME *tm, ulonglong fuzzydate); + int save_in_field(Field *field, bool no_conversions); + + void set_null(); + void set_int(longlong i, uint32 max_length_arg); + void set_double(double i); + void set_decimal(const char *str, ulong length); + void set_decimal(const my_decimal *dv); + bool set_str(const char *str, ulong length); + bool set_longdata(const char *str, ulong length); + void set_time(MYSQL_TIME *tm, timestamp_type type, uint32 max_length_arg); + bool set_from_user_var(THD *thd, const user_var_entry *entry); + void reset(); + /* + Assign placeholder value from bind data. + Note, that 'len' has different semantics in embedded library (as we + don't need to check that packet is not broken there). See + sql_prepare.cc for details. + */ + void (*set_param_func)(Item_param *param, uchar **pos, ulong len); + + const String *query_val_str(THD *thd, String *str) const; + + bool convert_str_value(THD *thd); + + /* + If value for parameter was not set we treat it as non-const + so noone will use parameters value in fix_fields still + parameter is constant during execution. + */ + virtual table_map used_tables() const + { return state != NO_VALUE ? (table_map)0 : PARAM_TABLE_BIT; } + virtual void print(String *str, enum_query_type query_type); + bool is_null() + { DBUG_ASSERT(state != NO_VALUE); return state == NULL_VALUE; } + bool basic_const_item() const; + /* + This method is used to make a copy of a basic constant item when + propagating constants in the optimizer. The reason to create a new + item and not use the existing one is not precisely known (2005/04/16). + Probably we are trying to preserve tree structure of items, in other + words, avoid pointing at one item from two different nodes of the tree. + Return a new basic constant item if parameter value is a basic + constant, assert otherwise. This method is called only if + basic_const_item returned TRUE. + */ + Item *safe_charset_converter(CHARSET_INFO *tocs); + Item *clone_item(); + /* + Implement by-value equality evaluation if parameter value + is set and is a basic constant (integer, real or string). + Otherwise return FALSE. + */ + bool eq(const Item *item, bool binary_cmp) const; + /** Item is a argument to a limit clause. */ + bool limit_clause_param; + void set_param_type_and_swap_value(Item_param *from); + +private: + virtual inline Settable_routine_parameter * + get_settable_routine_parameter() + { + return this; + } + + virtual bool set_value(THD *thd, sp_rcontext *ctx, Item **it); + + virtual void set_out_param_info(Send_field *info); + +public: + virtual const Send_field *get_out_param_info() const; + + virtual void make_field(Send_field *field); + +private: + Send_field *m_out_param_info; +}; + + +class Item_int :public Item_num +{ +public: + longlong value; + Item_int(int32 i,uint length= MY_INT32_NUM_DECIMAL_DIGITS) + :value((longlong) i) + { max_length=length; fixed= 1; } + Item_int(longlong i,uint length= MY_INT64_NUM_DECIMAL_DIGITS) + :value(i) + { max_length=length; fixed= 1; } + Item_int(ulonglong i, uint length= MY_INT64_NUM_DECIMAL_DIGITS) + :value((longlong)i) + { max_length=length; fixed= 1; unsigned_flag= 1; } + Item_int(const char *str_arg,longlong i,uint length) :value(i) + { max_length=length; name=(char*) str_arg; fixed= 1; } + Item_int(const char *str_arg, uint length=64); + enum Type type() const { return INT_ITEM; } + enum Item_result result_type () const { return INT_RESULT; } + enum_field_types field_type() const { return MYSQL_TYPE_LONGLONG; } + longlong val_int() { DBUG_ASSERT(fixed == 1); return value; } + double val_real() { DBUG_ASSERT(fixed == 1); return (double) value; } + my_decimal *val_decimal(my_decimal *); + String *val_str(String*); + int save_in_field(Field *field, bool no_conversions); + bool basic_const_item() const { return 1; } + Item *clone_item() { return new Item_int(name,value,max_length); } + virtual void print(String *str, enum_query_type query_type); + Item_num *neg() { value= -value; return this; } + uint decimal_precision() const + { return (uint)(max_length - test(value < 0)); } + bool eq(const Item *, bool binary_cmp) const; + bool check_partition_func_processor(uchar *bool_arg) { return FALSE;} + bool check_vcol_func_processor(uchar *arg) { return FALSE;} +}; + + +class Item_uint :public Item_int +{ +public: + Item_uint(const char *str_arg, uint length); + Item_uint(ulonglong i) :Item_int(i, 10) {} + Item_uint(const char *str_arg, longlong i, uint length); + double val_real() + { DBUG_ASSERT(fixed == 1); return ulonglong2double((ulonglong)value); } + String *val_str(String*); + Item *clone_item() { return new Item_uint(name, value, max_length); } + virtual void print(String *str, enum_query_type query_type); + Item_num *neg (); + uint decimal_precision() const { return max_length; } +}; + + +class Item_datetime :public Item_int +{ +protected: + MYSQL_TIME ltime; +public: + Item_datetime() :Item_int(0) { unsigned_flag=0; } + int save_in_field(Field *field, bool no_conversions); + longlong val_int(); + double val_real() { return (double)val_int(); } + void set(longlong packed); +}; + + +/* decimal (fixed point) constant */ +class Item_decimal :public Item_num +{ +protected: + my_decimal decimal_value; +public: + Item_decimal(const char *str_arg, uint length, CHARSET_INFO *charset); + Item_decimal(const char *str, const my_decimal *val_arg, + uint decimal_par, uint length); + Item_decimal(my_decimal *value_par); + Item_decimal(longlong val, bool unsig); + Item_decimal(double val, int precision, int scale); + Item_decimal(const uchar *bin, int precision, int scale); + + enum Type type() const { return DECIMAL_ITEM; } + enum Item_result result_type () const { return DECIMAL_RESULT; } + enum_field_types field_type() const { return MYSQL_TYPE_NEWDECIMAL; } + longlong val_int(); + double val_real(); + String *val_str(String*); + my_decimal *val_decimal(my_decimal *val) { return &decimal_value; } + int save_in_field(Field *field, bool no_conversions); + bool basic_const_item() const { return 1; } + Item *clone_item() + { + return new Item_decimal(name, &decimal_value, decimals, max_length); + } + virtual void print(String *str, enum_query_type query_type); + Item_num *neg() + { + my_decimal_neg(&decimal_value); + unsigned_flag= !decimal_value.sign(); + return this; + } + uint decimal_precision() const { return decimal_value.precision(); } + bool eq(const Item *, bool binary_cmp) const; + void set_decimal_value(my_decimal *value_par); + bool check_partition_func_processor(uchar *bool_arg) { return FALSE;} + bool check_vcol_func_processor(uchar *arg) { return FALSE;} +}; + + +class Item_float :public Item_num +{ + char *presentation; +public: + double value; + // Item_real() :value(0) {} + Item_float(const char *str_arg, uint length); + Item_float(const char *str,double val_arg,uint decimal_par,uint length) + :value(val_arg) + { + presentation= name=(char*) str; + decimals=(uint8) decimal_par; + max_length=length; + fixed= 1; + } + Item_float(double value_par, uint decimal_par) :presentation(0), value(value_par) + { + decimals= (uint8) decimal_par; + fixed= 1; + } + int save_in_field(Field *field, bool no_conversions); + enum Type type() const { return REAL_ITEM; } + enum_field_types field_type() const { return MYSQL_TYPE_DOUBLE; } + double val_real() { DBUG_ASSERT(fixed == 1); return value; } + longlong val_int() + { + DBUG_ASSERT(fixed == 1); + if (value <= (double) LONGLONG_MIN) + { + return LONGLONG_MIN; + } + else if (value >= (double) (ulonglong) LONGLONG_MAX) + { + return LONGLONG_MAX; + } + return (longlong) rint(value); + } + String *val_str(String*); + my_decimal *val_decimal(my_decimal *); + bool basic_const_item() const { return 1; } + Item *clone_item() + { return new Item_float(name, value, decimals, max_length); } + Item_num *neg() { value= -value; return this; } + virtual void print(String *str, enum_query_type query_type); + bool eq(const Item *, bool binary_cmp) const; +}; + + +class Item_static_float_func :public Item_float +{ + const char *func_name; +public: + Item_static_float_func(const char *str, double val_arg, uint decimal_par, + uint length) + :Item_float(NullS, val_arg, decimal_par, length), func_name(str) + {} + + virtual inline void print(String *str, enum_query_type query_type) + { + str->append(func_name); + } + + Item *safe_charset_converter(CHARSET_INFO *tocs); +}; + + +class Item_string :public Item_basic_constant +{ +public: + Item_string(const char *str,uint length, + CHARSET_INFO *cs, Derivation dv= DERIVATION_COERCIBLE, + uint repertoire= MY_REPERTOIRE_UNICODE30) + : m_cs_specified(FALSE) + { + str_value.set_or_copy_aligned(str, length, cs); + collation.set(cs, dv, repertoire); + /* + We have to have a different max_length than 'length' here to + ensure that we get the right length if we do use the item + to create a new table. In this case max_length must be the maximum + number of chars for a string of this type because we in Create_field:: + divide the max_length with mbmaxlen). + */ + max_length= str_value.numchars()*cs->mbmaxlen; + set_name(str, length, cs); + decimals=NOT_FIXED_DEC; + // it is constant => can be used without fix_fields (and frequently used) + fixed= 1; + } + /* Just create an item and do not fill string representation */ + Item_string(CHARSET_INFO *cs, Derivation dv= DERIVATION_COERCIBLE) + : m_cs_specified(FALSE) + { + collation.set(cs, dv); + max_length= 0; + set_name(NULL, 0, cs); + decimals= NOT_FIXED_DEC; + fixed= 1; + } + Item_string(const char *name_par, const char *str, uint length, + CHARSET_INFO *cs, Derivation dv= DERIVATION_COERCIBLE, + uint repertoire= MY_REPERTOIRE_UNICODE30) + : m_cs_specified(FALSE) + { + str_value.set_or_copy_aligned(str, length, cs); + collation.set(cs, dv, repertoire); + max_length= str_value.numchars()*cs->mbmaxlen; + set_name(name_par, 0, cs); + decimals=NOT_FIXED_DEC; + // it is constant => can be used without fix_fields (and frequently used) + fixed= 1; + } + /* + This is used in stored procedures to avoid memory leaks and + does a deep copy of its argument. + */ + void set_str_with_copy(const char *str_arg, uint length_arg) + { + str_value.copy(str_arg, length_arg, collation.collation); + max_length= str_value.numchars() * collation.collation->mbmaxlen; + } + void set_repertoire_from_value() + { + collation.repertoire= my_string_repertoire(str_value.charset(), + str_value.ptr(), + str_value.length()); + } + enum Type type() const { return STRING_ITEM; } + double val_real(); + longlong val_int(); + String *val_str(String*) + { + DBUG_ASSERT(fixed == 1); + return (String*) &str_value; + } + my_decimal *val_decimal(my_decimal *); + int save_in_field(Field *field, bool no_conversions); + enum Item_result result_type () const { return STRING_RESULT; } + enum_field_types field_type() const { return MYSQL_TYPE_VARCHAR; } + bool basic_const_item() const { return 1; } + bool eq(const Item *item, bool binary_cmp) const; + Item *clone_item() + { + return new Item_string(name, str_value.ptr(), + str_value.length(), collation.collation); + } + Item *safe_charset_converter(CHARSET_INFO *tocs); + inline void append(char *str, uint length) + { + str_value.append(str, length); + max_length= str_value.numchars() * collation.collation->mbmaxlen; + } + virtual void print(String *str, enum_query_type query_type); + bool check_partition_func_processor(uchar *int_arg) {return FALSE;} + bool check_vcol_func_processor(uchar *arg) { return FALSE;} + + /** + Return TRUE if character-set-introducer was explicitly specified in the + original query for this item (text literal). + + This operation is to be called from Item_string::print(). The idea is + that when a query is generated (re-constructed) from the Item-tree, + character-set-introducers should appear only for those literals, where + they were explicitly specified by the user. Otherwise, that may lead to + loss collation information (character set introducers implies default + collation for the literal). + + Basically, that makes sense only for views and hopefully will be gone + one day when we start using original query as a view definition. + + @return This operation returns the value of m_cs_specified attribute. + @retval TRUE if character set introducer was explicitly specified in + the original query. + @retval FALSE otherwise. + */ + inline bool is_cs_specified() const + { + return m_cs_specified; + } + + /** + Set the value of m_cs_specified attribute. + + m_cs_specified attribute shows whether character-set-introducer was + explicitly specified in the original query for this text literal or + not. The attribute makes sense (is used) only for views. + + This operation is to be called from the parser during parsing an input + query. + */ + inline void set_cs_specified(bool cs_specified) + { + m_cs_specified= cs_specified; + } + +private: + bool m_cs_specified; +}; + + +longlong +longlong_from_string_with_check(CHARSET_INFO *cs, const char *cptr, + const char *end); +double +double_from_string_with_check(CHARSET_INFO *cs, const char *cptr, + const char *end); + +class Item_static_string_func :public Item_string +{ + const char *func_name; +public: + Item_static_string_func(const char *name_par, const char *str, uint length, + CHARSET_INFO *cs, + Derivation dv= DERIVATION_COERCIBLE) + :Item_string(NullS, str, length, cs, dv), func_name(name_par) + {} + Item *safe_charset_converter(CHARSET_INFO *tocs); + + virtual inline void print(String *str, enum_query_type query_type) + { + str->append(func_name); + } + + bool check_partition_func_processor(uchar *int_arg) {return TRUE;} + bool check_vcol_func_processor(uchar *arg) + { + return trace_unsupported_by_check_vcol_func_processor(func_name); + } +}; + + +/* for show tables */ +class Item_partition_func_safe_string: public Item_string +{ +public: + Item_partition_func_safe_string(const char *name_arg, uint length, + CHARSET_INFO *cs= NULL): + Item_string(name_arg, length, cs) + {} + bool check_vcol_func_processor(uchar *arg) + { + return trace_unsupported_by_check_vcol_func_processor("safe_string"); + } +}; + + +class Item_return_date_time :public Item_partition_func_safe_string +{ + enum_field_types date_time_field_type; +public: + Item_return_date_time(const char *name_arg, uint length_arg, + enum_field_types field_type_arg) + :Item_partition_func_safe_string(name_arg, length_arg, &my_charset_bin), + date_time_field_type(field_type_arg) + { decimals= 0; } + enum_field_types field_type() const { return date_time_field_type; } +}; + + +class Item_blob :public Item_partition_func_safe_string +{ +public: + Item_blob(const char *name_arg, uint length) : + Item_partition_func_safe_string(name_arg, length, &my_charset_bin) + { max_length= length; } + enum Type type() const { return TYPE_HOLDER; } + enum_field_types field_type() const { return MYSQL_TYPE_BLOB; } +}; + + +/** + Item_empty_string -- is a utility class to put an item into List + which is then used in protocol.send_result_set_metadata() when sending SHOW output to + the client. +*/ + +class Item_empty_string :public Item_partition_func_safe_string +{ +public: + Item_empty_string(const char *header,uint length, CHARSET_INFO *cs= NULL) : + Item_partition_func_safe_string("",0, cs ? cs : &my_charset_utf8_general_ci) + { name=(char*) header; max_length= length * collation.collation->mbmaxlen; } + void make_field(Send_field *field); +}; + + +class Item_return_int :public Item_int +{ + enum_field_types int_field_type; +public: + Item_return_int(const char *name_arg, uint length, + enum_field_types field_type_arg, longlong value_arg= 0) + :Item_int(name_arg, value_arg, length), int_field_type(field_type_arg) + { + unsigned_flag=1; + } + enum_field_types field_type() const { return int_field_type; } +}; + + +/** + Item_hex_constant -- a common class for hex literals: X'HHHH' and 0xHHHH +*/ +class Item_hex_constant: public Item_basic_constant +{ +private: + void hex_string_init(const char *str, uint str_length); +public: + Item_hex_constant() + { + hex_string_init("", 0); + } + Item_hex_constant(const char *str, uint str_length) + { + hex_string_init(str, str_length); + } + enum Type type() const { return VARBIN_ITEM; } + enum Item_result result_type () const { return STRING_RESULT; } + enum_field_types field_type() const { return MYSQL_TYPE_VARCHAR; } + virtual Item *safe_charset_converter(CHARSET_INFO *tocs); + bool check_partition_func_processor(uchar *int_arg) {return FALSE;} + bool check_vcol_func_processor(uchar *arg) { return FALSE;} + bool basic_const_item() const { return 1; } + bool eq(const Item *item, bool binary_cmp) const; + String *val_str(String*) { DBUG_ASSERT(fixed == 1); return &str_value; } +}; + + +/** + Item_hex_hybrid -- is a class implementing 0xHHHH literals, e.g.: + SELECT 0x3132; + They can behave as numbers and as strings depending on context. +*/ +class Item_hex_hybrid: public Item_hex_constant +{ +public: + Item_hex_hybrid(): Item_hex_constant() {} + Item_hex_hybrid(const char *str, uint str_length): + Item_hex_constant(str, str_length) {} + double val_real() + { + DBUG_ASSERT(fixed == 1); + return (double) (ulonglong) Item_hex_hybrid::val_int(); + } + longlong val_int(); + my_decimal *val_decimal(my_decimal *decimal_value) + { + // following assert is redundant, because fixed=1 assigned in constructor + DBUG_ASSERT(fixed == 1); + ulonglong value= (ulonglong) Item_hex_hybrid::val_int(); + int2my_decimal(E_DEC_FATAL_ERROR, value, TRUE, decimal_value); + return decimal_value; + } + int save_in_field(Field *field, bool no_conversions); + enum Item_result cast_to_int_type() const { return INT_RESULT; } + void print(String *str, enum_query_type query_type); +}; + + +/** + Item_hex_string -- is a class implementing X'HHHH' literals, e.g.: + SELECT X'3132'; + Unlike Item_hex_hybrid, X'HHHH' literals behave as strings in all contexts. + X'HHHH' are also used in replication of string constants in case of + "dangerous" charsets (sjis, cp932, big5, gbk) who can have backslash (0x5C) + as the second byte of a multi-byte character, so using '\' escaping for + these charsets is not desirable. +*/ +class Item_hex_string: public Item_hex_constant +{ +public: + Item_hex_string(): Item_hex_constant() {} + Item_hex_string(const char *str, uint str_length): + Item_hex_constant(str, str_length) {} + longlong val_int() + { + DBUG_ASSERT(fixed == 1); + return longlong_from_string_with_check(str_value.charset(), + str_value.ptr(), + str_value.ptr()+ + str_value.length()); + } + double val_real() + { + DBUG_ASSERT(fixed == 1); + return double_from_string_with_check(str_value.charset(), + str_value.ptr(), + str_value.ptr() + + str_value.length()); + } + my_decimal *val_decimal(my_decimal *decimal_value) + { + return val_decimal_from_string(decimal_value); + } + int save_in_field(Field *field, bool no_conversions) + { + field->set_notnull(); + return field->store(str_value.ptr(), str_value.length(), + collation.collation); + } + enum Item_result cast_to_int_type() const { return STRING_RESULT; } + void print(String *str, enum_query_type query_type); +}; + + +class Item_bin_string: public Item_hex_hybrid +{ +public: + Item_bin_string(const char *str,uint str_length); +}; + +class Item_result_field :public Item /* Item with result field */ +{ +public: + Field *result_field; /* Save result here */ + Item_result_field() :result_field(0) {} + // Constructor used for Item_sum/Item_cond_and/or (see Item comment) + Item_result_field(THD *thd, Item_result_field *item): + Item(thd, item), result_field(item->result_field) + {} + ~Item_result_field() {} /* Required with gcc 2.95 */ + Field *get_tmp_table_field() { return result_field; } + Field *tmp_table_field(TABLE *t_arg) { return result_field; } + table_map used_tables() const { return 1; } + virtual void fix_length_and_dec()=0; + void set_result_field(Field *field) { result_field= field; } + bool is_result_field() { return 1; } + void save_in_result_field(bool no_conversions) + { + save_in_field(result_field, no_conversions); + } + void cleanup(); + bool check_vcol_func_processor(uchar *arg) { return FALSE;} + /* + This method is used for debug purposes to print the name of an + item to the debug log. The second use of this method is as + a helper function of print() and error messages, where it is + applicable. To suit both goals it should return a meaningful, + distinguishable and sintactically correct string. This method + should not be used for runtime type identification, use enum + {Sum}Functype and Item_func::functype()/Item_sum::sum_func() + instead. + Added here, to the parent class of both Item_func and Item_sum_func. + + NOTE: for Items inherited from Item_sum, func_name() return part of + function name till first argument (including '(') to make difference in + names for functions with 'distinct' clause and without 'distinct' and + also to make printing of items inherited from Item_sum uniform. + */ + virtual const char *func_name() const= 0; +}; + + +class Item_ref :public Item_ident +{ +protected: + void set_properties(); + bool set_properties_only; // the item doesn't need full fix_fields +public: + enum Ref_Type { REF, DIRECT_REF, VIEW_REF, OUTER_REF, AGGREGATE_REF }; + Field *result_field; /* Save result here */ + Item **ref; + bool reference_trough_name; + Item_ref(Name_resolution_context *context_arg, + const char *db_arg, const char *table_name_arg, + const char *field_name_arg) + :Item_ident(context_arg, db_arg, table_name_arg, field_name_arg), + set_properties_only(0), result_field(0), ref(0), reference_trough_name(1) {} + /* + This constructor is used in two scenarios: + A) *item = NULL + No initialization is performed, fix_fields() call will be necessary. + + B) *item points to an Item this Item_ref will refer to. This is + used for GROUP BY. fix_fields() will not be called in this case, + so we call set_properties to make this item "fixed". set_properties + performs a subset of action Item_ref::fix_fields does, and this subset + is enough for Item_ref's used in GROUP BY. + + TODO we probably fix a superset of problems like in BUG#6658. Check this + with Bar, and if we have a more broader set of problems like this. + */ + Item_ref(Name_resolution_context *context_arg, Item **item, + const char *table_name_arg, const char *field_name_arg, + bool alias_name_used_arg= FALSE); + Item_ref(TABLE_LIST *view_arg, Item **item, + const char *field_name_arg, bool alias_name_used_arg= FALSE); + + /* Constructor need to process subselect with temporary tables (see Item) */ + Item_ref(THD *thd, Item_ref *item) + :Item_ident(thd, item), set_properties_only(0), result_field(item->result_field), ref(item->ref) {} + enum Type type() const { return REF_ITEM; } + enum Type real_type() const { return ref ? (*ref)->type() : + REF_ITEM; } + bool eq(const Item *item, bool binary_cmp) const + { + Item *it= ((Item *) item)->real_item(); + return ref && (*ref)->eq(it, binary_cmp); + } + void save_val(Field *to); + void save_result(Field *to); + double val_real(); + longlong val_int(); + my_decimal *val_decimal(my_decimal *); + bool val_bool(); + String *val_str(String* tmp); + bool is_null(); + bool get_date(MYSQL_TIME *ltime, ulonglong fuzzydate); + double val_result(); + longlong val_int_result(); + String *str_result(String* tmp); + my_decimal *val_decimal_result(my_decimal *); + bool val_bool_result(); + bool is_null_result(); + bool send(Protocol *prot, String *tmp); + void make_field(Send_field *field); + bool fix_fields(THD *, Item **); + void fix_after_pullout(st_select_lex *new_parent, Item **ref); + int save_in_field(Field *field, bool no_conversions); + void save_org_in_field(Field *field); + enum Item_result result_type () const { return (*ref)->result_type(); } + enum_field_types field_type() const { return (*ref)->field_type(); } + Field *get_tmp_table_field() + { return result_field ? result_field : (*ref)->get_tmp_table_field(); } + Item *get_tmp_table_item(THD *thd); + table_map used_tables() const; + void update_used_tables(); + bool const_item() const + { + return (*ref)->const_item(); + } + table_map not_null_tables() const + { + return depended_from ? 0 : (*ref)->not_null_tables(); + } + void set_result_field(Field *field) { result_field= field; } + bool is_result_field() { return 1; } + void save_in_result_field(bool no_conversions) + { + (*ref)->save_in_field(result_field, no_conversions); + } + Item *real_item() + { + return ref ? (*ref)->real_item() : this; + } + bool walk(Item_processor processor, bool walk_subquery, uchar *arg) + { + if (ref && *ref) + return (*ref)->walk(processor, walk_subquery, arg) || + (this->*processor)(arg); + else + return FALSE; + } + Item* transform(Item_transformer, uchar *arg); + Item* compile(Item_analyzer analyzer, uchar **arg_p, + Item_transformer transformer, uchar *arg_t); + bool enumerate_field_refs_processor(uchar *arg) + { return (*ref)->enumerate_field_refs_processor(arg); } + void no_rows_in_result() + { + (*ref)->no_rows_in_result(); + } + void restore_to_before_no_rows_in_result() + { + (*ref)->restore_to_before_no_rows_in_result(); + } + virtual void print(String *str, enum_query_type query_type); + void cleanup(); + Item_field *filed_for_view_update() + { return (*ref)->filed_for_view_update(); } + virtual Ref_Type ref_type() { return REF; } + + // Row emulation: forwarding of ROW-related calls to ref + uint cols() + { + return ref && result_type() == ROW_RESULT ? (*ref)->cols() : 1; + } + Item* element_index(uint i) + { + return ref && result_type() == ROW_RESULT ? (*ref)->element_index(i) : this; + } + Item** addr(uint i) + { + return ref && result_type() == ROW_RESULT ? (*ref)->addr(i) : 0; + } + bool check_cols(uint c) + { + return ref && result_type() == ROW_RESULT ? (*ref)->check_cols(c) + : Item::check_cols(c); + } + bool null_inside() + { + return ref && result_type() == ROW_RESULT ? (*ref)->null_inside() : 0; + } + void bring_value() + { + if (ref && result_type() == ROW_RESULT) + (*ref)->bring_value(); + } + bool check_vcol_func_processor(uchar *arg) + { + return trace_unsupported_by_check_vcol_func_processor("ref"); + } + bool basic_const_item() const { return ref && (*ref)->basic_const_item(); } + bool is_outer_field() const + { + DBUG_ASSERT(fixed); + DBUG_ASSERT(ref); + return (*ref)->is_outer_field(); + } + + /** + Checks if the item tree that ref points to contains a subquery. + */ + virtual bool has_subquery() const + { + return (*ref)->has_subquery(); + } +}; + + +/* + The same as Item_ref, but get value from val_* family of method to get + value of item on which it referred instead of result* family. +*/ +class Item_direct_ref :public Item_ref +{ +public: + Item_direct_ref(Name_resolution_context *context_arg, Item **item, + const char *table_name_arg, + const char *field_name_arg, + bool alias_name_used_arg= FALSE) + :Item_ref(context_arg, item, table_name_arg, + field_name_arg, alias_name_used_arg) + {} + /* Constructor need to process subselect with temporary tables (see Item) */ + Item_direct_ref(THD *thd, Item_direct_ref *item) : Item_ref(thd, item) {} + Item_direct_ref(TABLE_LIST *view_arg, Item **item, + const char *field_name_arg, + bool alias_name_used_arg= FALSE) + :Item_ref(view_arg, item, field_name_arg, + alias_name_used_arg) + {} + + void save_val(Field *to); + double val_real(); + longlong val_int(); + String *val_str(String* tmp); + my_decimal *val_decimal(my_decimal *); + bool val_bool(); + bool is_null(); + bool get_date(MYSQL_TIME *ltime, ulonglong fuzzydate); + virtual Ref_Type ref_type() { return DIRECT_REF; } +}; + + +/** + This class is the same as Item_direct_ref but created to wrap Item_ident + before fix_fields() call +*/ + +class Item_direct_ref_to_ident :public Item_direct_ref +{ + Item_ident *ident; +public: + Item_direct_ref_to_ident(Item_ident *item) + :Item_direct_ref(item->context, (Item**)&item, item->table_name, item->field_name, + FALSE) + { + ident= item; + ref= (Item**)&ident; + } + + bool fix_fields(THD *thd, Item **it) + { + DBUG_ASSERT(ident->type() == FIELD_ITEM || ident->type() == REF_ITEM); + if ((!ident->fixed && ident->fix_fields(thd, ref)) || + ident->check_cols(1)) + return TRUE; + set_properties(); + return FALSE; + } + + virtual void print(String *str, enum_query_type query_type) + { ident->print(str, query_type); } + +}; + + +class Item_cache; +class Expression_cache; + +/** + The objects of this class can store its values in an expression cache. +*/ + +class Item_cache_wrapper :public Item_result_field +{ +private: + /* Pointer on the cached expression */ + Item *orig_item; + Expression_cache *expr_cache; + /* + In order to put the expression into the expression cache and return + value of val_*() method, we will need to get the expression value twice + (probably in different types). In order to avoid making two + (potentially costly) orig_item->val_*() calls, we store expression value + in this Item_cache object. + */ + Item_cache *expr_value; + + List parameters; + + Item *check_cache(); + void cache(); + void init_on_demand(); + +public: + Item_cache_wrapper(Item *item_arg); + ~Item_cache_wrapper(); + + const char *func_name() const { return ""; } + enum Type type() const { return EXPR_CACHE_ITEM; } + enum Type real_type() const { return orig_item->type(); } + + bool set_cache(THD *thd); + + bool fix_fields(THD *thd, Item **it); + void fix_length_and_dec() {} + void cleanup(); + + /* Methods of getting value which should be cached in the cache */ + void save_val(Field *to); + double val_real(); + longlong val_int(); + String *val_str(String* tmp); + my_decimal *val_decimal(my_decimal *); + bool val_bool(); + bool is_null(); + bool get_date(MYSQL_TIME *ltime, ulonglong fuzzydate); + bool send(Protocol *protocol, String *buffer); + void save_org_in_field(Field *field) + { + save_val(field); + } + void save_in_result_field(bool no_conversions) + { + save_val(result_field); + } + Item* get_tmp_table_item(THD *thd_arg); + + /* Following methods make this item transparent as much as possible */ + + virtual void print(String *str, enum_query_type query_type); + virtual const char *full_name() const { return orig_item->full_name(); } + virtual void make_field(Send_field *field) { orig_item->make_field(field); } + bool eq(const Item *item, bool binary_cmp) const + { + Item *it= ((Item *) item)->real_item(); + return orig_item->eq(it, binary_cmp); + } + void fix_after_pullout(st_select_lex *new_parent, Item **refptr) + { + orig_item->fix_after_pullout(new_parent, &orig_item); + } + int save_in_field(Field *to, bool no_conversions); + enum Item_result result_type () const { return orig_item->result_type(); } + enum_field_types field_type() const { return orig_item->field_type(); } + table_map used_tables() const { return orig_item->used_tables(); } + void update_used_tables() + { + orig_item->update_used_tables(); + } + bool const_item() const { return orig_item->const_item(); } + table_map not_null_tables() const { return orig_item->not_null_tables(); } + bool walk(Item_processor processor, bool walk_subquery, uchar *arg) + { + return orig_item->walk(processor, walk_subquery, arg) || + (this->*processor)(arg); + } + bool enumerate_field_refs_processor(uchar *arg) + { return orig_item->enumerate_field_refs_processor(arg); } + Item_field *filed_for_view_update() + { return orig_item->filed_for_view_update(); } + + /* Row emulation: forwarding of ROW-related calls to orig_item */ + uint cols() + { return result_type() == ROW_RESULT ? orig_item->cols() : 1; } + Item* element_index(uint i) + { return result_type() == ROW_RESULT ? orig_item->element_index(i) : this; } + Item** addr(uint i) + { return result_type() == ROW_RESULT ? orig_item->addr(i) : 0; } + bool check_cols(uint c) + { + return (result_type() == ROW_RESULT ? + orig_item->check_cols(c) : + Item::check_cols(c)); + } + bool null_inside() + { return result_type() == ROW_RESULT ? orig_item->null_inside() : 0; } + void bring_value() + { + if (result_type() == ROW_RESULT) + orig_item->bring_value(); + } + bool is_expensive() { return orig_item->is_expensive(); } + bool is_expensive_processor(uchar *arg) + { return orig_item->is_expensive_processor(arg); } + bool check_vcol_func_processor(uchar *arg) + { + return trace_unsupported_by_check_vcol_func_processor("cache"); + } +}; + + +/* + Class for view fields, the same as Item_direct_ref, but call fix_fields + of reference if it is not called yet +*/ +class Item_direct_view_ref :public Item_direct_ref +{ + Item_equal *item_equal; + TABLE_LIST *view; + TABLE *null_ref_table; + +#define NO_NULL_TABLE (reinterpret_cast

%-4s%-20s
%-2s%-20s
(0x1)) + + void set_null_ref_table() + { + if (!view->is_inner_table_of_outer_join() || + !(null_ref_table= view->get_real_join_table())) + null_ref_table= NO_NULL_TABLE; + } + + bool check_null_ref() + { + DBUG_ASSERT(null_ref_table); + if (null_ref_table != NO_NULL_TABLE && null_ref_table->null_row) + { + null_value= 1; + return TRUE; + } + return FALSE; + } + +public: + Item_direct_view_ref(Name_resolution_context *context_arg, Item **item, + const char *table_name_arg, + const char *field_name_arg, + TABLE_LIST *view_arg) + :Item_direct_ref(context_arg, item, table_name_arg, field_name_arg), + item_equal(0), view(view_arg), + null_ref_table(NULL) + { + if (fixed) + set_null_ref_table(); + } + + bool fix_fields(THD *, Item **); + bool eq(const Item *item, bool binary_cmp) const; + Item *get_tmp_table_item(THD *thd) + { + Item *item= Item_ref::get_tmp_table_item(thd); + item->name= name; + return item; + } + virtual Ref_Type ref_type() { return VIEW_REF; } + Item_equal *get_item_equal() { return item_equal; } + void set_item_equal(Item_equal *item_eq) { item_equal= item_eq; } + Item_equal *find_item_equal(COND_EQUAL *cond_equal); + bool subst_argument_checker(uchar **arg); + Item *equal_fields_propagator(uchar *arg); + Item *replace_equal_field(uchar *arg); + table_map used_tables() const; + void update_used_tables(); + table_map not_null_tables() const; + bool const_item() const { return used_tables() == 0; } + TABLE *get_null_ref_table() const { return null_ref_table; } + bool walk(Item_processor processor, bool walk_subquery, uchar *arg) + { + return (*ref)->walk(processor, walk_subquery, arg) || + (this->*processor)(arg); + } + bool view_used_tables_processor(uchar *arg) + { + TABLE_LIST *view_arg= (TABLE_LIST *) arg; + if (view_arg == view) + view_arg->view_used_tables|= (*ref)->used_tables(); + return 0; + } + void save_val(Field *to) + { + if (check_null_ref()) + to->set_null(); + else + Item_direct_ref::save_val(to); + } + double val_real() + { + if (check_null_ref()) + return 0; + else + return Item_direct_ref::val_real(); + } + longlong val_int() + { + if (check_null_ref()) + return 0; + else + return Item_direct_ref::val_int(); + } + String *val_str(String* tmp) + { + if (check_null_ref()) + return NULL; + else + return Item_direct_ref::val_str(tmp); + } + my_decimal *val_decimal(my_decimal *tmp) + { + if (check_null_ref()) + return NULL; + else + return Item_direct_ref::val_decimal(tmp); + } + bool val_bool() + { + if (check_null_ref()) + return 0; + else + return Item_direct_ref::val_bool(); + } + bool is_null() + { + if (check_null_ref()) + return 1; + else + return Item_direct_ref::is_null(); + } + bool get_date(MYSQL_TIME *ltime, ulonglong fuzzydate) + { + if (check_null_ref()) + { + bzero((char*) ltime,sizeof(*ltime)); + return 1; + } + return Item_direct_ref::get_date(ltime, fuzzydate); + } + bool send(Protocol *protocol, String *buffer); + void save_org_in_field(Field *field) + { + if (check_null_ref()) + field->set_null(); + else + Item_direct_ref::save_val(field); + } + void save_in_result_field(bool no_conversions) + { + if (check_null_ref()) + result_field->set_null(); + else + Item_direct_ref::save_in_result_field(no_conversions); + } + + void cleanup() + { + null_ref_table= NULL; + item_equal= NULL; + Item_direct_ref::cleanup(); + } +}; + + +/* + Class for outer fields. + An object of this class is created when the select where the outer field was + resolved is a grouping one. After it has been fixed the ref field will point + to either an Item_ref or an Item_direct_ref object which will be used to + access the field. + See also comments for the fix_inner_refs() and the + Item_field::fix_outer_field() functions. +*/ + +class Item_sum; +class Item_outer_ref :public Item_direct_ref +{ +public: + Item *outer_ref; + /* The aggregate function under which this outer ref is used, if any. */ + Item_sum *in_sum_func; + /* + TRUE <=> that the outer_ref is already present in the select list + of the outer select. + */ + bool found_in_select_list; + bool found_in_group_by; + Item_outer_ref(Name_resolution_context *context_arg, + Item_field *outer_field_arg) + :Item_direct_ref(context_arg, 0, outer_field_arg->table_name, + outer_field_arg->field_name), + outer_ref(outer_field_arg), in_sum_func(0), + found_in_select_list(0), found_in_group_by(0) + { + ref= &outer_ref; + set_properties(); + fixed= 0; + } + Item_outer_ref(Name_resolution_context *context_arg, Item **item, + const char *table_name_arg, const char *field_name_arg, + bool alias_name_used_arg) + :Item_direct_ref(context_arg, item, table_name_arg, field_name_arg, + alias_name_used_arg), + outer_ref(0), in_sum_func(0), found_in_select_list(1), found_in_group_by(0) + {} + void save_in_result_field(bool no_conversions) + { + outer_ref->save_org_in_field(result_field); + } + bool fix_fields(THD *, Item **); + void fix_after_pullout(st_select_lex *new_parent, Item **ref); + table_map used_tables() const + { + return (*ref)->const_item() ? 0 : OUTER_REF_TABLE_BIT; + } + table_map not_null_tables() const { return 0; } + virtual Ref_Type ref_type() { return OUTER_REF; } + bool check_inner_refs_processor(uchar * arg); +}; + + +class Item_in_subselect; + + +/* + An object of this class: + - Converts val_XXX() calls to ref->val_XXX_result() calls, like Item_ref. + - Sets owner->was_null=TRUE if it has returned a NULL value from any + val_XXX() function. This allows to inject an Item_ref_null_helper + object into subquery and then check if the subquery has produced a row + with NULL value. +*/ + +class Item_ref_null_helper: public Item_ref +{ +protected: + Item_in_subselect* owner; +public: + Item_ref_null_helper(Name_resolution_context *context_arg, + Item_in_subselect* master, Item **item, + const char *table_name_arg, const char *field_name_arg) + :Item_ref(context_arg, item, table_name_arg, field_name_arg), + owner(master) {} + void save_val(Field *to); + double val_real(); + longlong val_int(); + String* val_str(String* s); + my_decimal *val_decimal(my_decimal *); + bool val_bool(); + bool get_date(MYSQL_TIME *ltime, ulonglong fuzzydate); + virtual void print(String *str, enum_query_type query_type); + table_map used_tables() const; +}; + +/* + The following class is used to optimize comparing of date and bigint columns + We need to save the original item ('ref') to be able to call + ref->save_in_field(). This is used to create index search keys. + + An instance of Item_int_with_ref may have signed or unsigned integer value. + +*/ + +class Item_int_with_ref :public Item_int +{ + Item *ref; +public: + Item_int_with_ref(longlong i, Item *ref_arg, bool unsigned_arg) : + Item_int(i), ref(ref_arg) + { + unsigned_flag= unsigned_arg; + } + int save_in_field(Field *field, bool no_conversions) + { + return ref->save_in_field(field, no_conversions); + } + Item *clone_item(); + virtual Item *real_item() { return ref; } +}; + +#ifdef MYSQL_SERVER +#include "gstream.h" +#include "spatial.h" +#include "item_sum.h" +#include "item_func.h" +#include "item_row.h" +#include "item_cmpfunc.h" +#include "item_strfunc.h" +#include "item_geofunc.h" +#include "item_timefunc.h" +#include "item_subselect.h" +#include "item_xmlfunc.h" +#include "item_create.h" +#endif + +/** + Base class to implement typed value caching Item classes + + Item_copy_ classes are very similar to the corresponding Item_ + classes (e.g. Item_copy_string is similar to Item_string) but they add + the following additional functionality to Item_ : + 1. Nullability + 2. Possibility to store the value not only on instantiation time, + but also later. + Item_copy_ classes are a functionality subset of Item_cache_ + classes, as e.g. they don't support comparisons with the original Item + as Item_cache_ classes do. + Item_copy_ classes are used in GROUP BY calculation. + TODO: Item_copy should be made an abstract interface and Item_copy_ + classes should inherit both the respective Item_ class and the interface. + Ideally we should drop Item_copy_ classes altogether and merge + their functionality to Item_cache_ (and these should be made to inherit + from Item_). +*/ + +class Item_copy :public Item +{ +protected: + + /** + Stores the type of the resulting field that would be used to store the data + in the cache. This is to avoid calls to the original item. + */ + enum enum_field_types cached_field_type; + + /** The original item that is copied */ + Item *item; + + /** + Stores the result type of the original item, so it can be returned + without calling the original item's method + */ + Item_result cached_result_type; + + /** + Constructor of the Item_copy class + + stores metadata information about the original class as well as a + pointer to it. + */ + Item_copy(Item *i) + { + item= i; + null_value=maybe_null=item->maybe_null; + decimals=item->decimals; + max_length=item->max_length; + name=item->name; + cached_field_type= item->field_type(); + cached_result_type= item->result_type(); + unsigned_flag= item->unsigned_flag; + fixed= item->fixed; + collation.set(item->collation); + } + +public: + + /** + Update the cache with the value of the original item + + This is the method that updates the cached value. + It must be explicitly called by the user of this class to store the value + of the orginal item in the cache. + */ + virtual void copy() = 0; + + Item *get_item() { return item; } + /** All of the subclasses should have the same type tag */ + enum Type type() const { return COPY_STR_ITEM; } + enum_field_types field_type() const { return cached_field_type; } + enum Item_result result_type () const { return cached_result_type; } + + void make_field(Send_field *field) { item->make_field(field); } + table_map used_tables() const { return (table_map) 1L; } + bool const_item() const { return 0; } + bool is_null() { return null_value; } + bool check_vcol_func_processor(uchar *arg) + { + return trace_unsupported_by_check_vcol_func_processor("copy"); + } + + /* + Override the methods below as pure virtual to make sure all the + sub-classes implement them. + */ + + virtual String *val_str(String*) = 0; + virtual my_decimal *val_decimal(my_decimal *) = 0; + virtual double val_real() = 0; + virtual longlong val_int() = 0; + virtual int save_in_field(Field *field, bool no_conversions) = 0; + bool walk(Item_processor processor, bool walk_subquery, uchar *args) + { + return (item->walk(processor, walk_subquery, args)) || + (this->*processor)(args); + } +}; + +/** + Implementation of a string cache. + + Uses Item::str_value for storage +*/ +class Item_copy_string : public Item_copy +{ +public: + Item_copy_string (Item *item) : Item_copy(item) {} + + String *val_str(String*); + my_decimal *val_decimal(my_decimal *); + double val_real(); + longlong val_int(); + void copy(); + int save_in_field(Field *field, bool no_conversions); +}; + + +/* + Cached_item_XXX objects are not exactly caches. They do the following: + + Each Cached_item_XXX object has + - its source item + - saved value of the source item + - cmp() method that compares the saved value with the current value of the + source item, and if they were not equal saves item's value into the saved + value. +*/ + +/* + Cached_item_XXX objects are not exactly caches. They do the following: + + Each Cached_item_XXX object has + - its source item + - saved value of the source item + - cmp() method that compares the saved value with the current value of the + source item, and if they were not equal saves item's value into the saved + value. +*/ + +class Cached_item :public Sql_alloc +{ +public: + bool null_value; + Cached_item() :null_value(0) {} + virtual bool cmp(void)=0; + virtual ~Cached_item(); /*line -e1509 */ +}; + +class Cached_item_str :public Cached_item +{ + Item *item; + uint32 value_max_length; + String value,tmp_value; +public: + Cached_item_str(THD *thd, Item *arg); + bool cmp(void); + ~Cached_item_str(); // Deallocate String:s +}; + + +class Cached_item_real :public Cached_item +{ + Item *item; + double value; +public: + Cached_item_real(Item *item_par) :item(item_par),value(0.0) {} + bool cmp(void); +}; + +class Cached_item_int :public Cached_item +{ + Item *item; + longlong value; +public: + Cached_item_int(Item *item_par) :item(item_par),value(0) {} + bool cmp(void); +}; + + +class Cached_item_decimal :public Cached_item +{ + Item *item; + my_decimal value; +public: + Cached_item_decimal(Item *item_par); + bool cmp(void); +}; + +class Cached_item_field :public Cached_item +{ + uchar *buff; + Field *field; + uint length; + +public: + Cached_item_field(Field *arg_field) : field(arg_field) + { + field= arg_field; + /* TODO: take the memory allocation below out of the constructor. */ + buff= (uchar*) sql_calloc(length=field->pack_length()); + } + bool cmp(void); +}; + +class Item_default_value : public Item_field +{ +public: + Item *arg; + Item_default_value(Name_resolution_context *context_arg) + :Item_field(context_arg, (const char *)NULL, (const char *)NULL, + (const char *)NULL), + arg(NULL) {} + Item_default_value(Name_resolution_context *context_arg, Item *a) + :Item_field(context_arg, (const char *)NULL, (const char *)NULL, + (const char *)NULL), + arg(a) {} + enum Type type() const { return DEFAULT_VALUE_ITEM; } + bool eq(const Item *item, bool binary_cmp) const; + bool fix_fields(THD *, Item **); + virtual void print(String *str, enum_query_type query_type); + int save_in_field(Field *field_arg, bool no_conversions); + table_map used_tables() const { return (table_map)0L; } + + bool walk(Item_processor processor, bool walk_subquery, uchar *args) + { + return (arg && arg->walk(processor, walk_subquery, args)) || + (this->*processor)(args); + } + + Item *transform(Item_transformer transformer, uchar *args); +}; + +/* + Item_insert_value -- an implementation of VALUES() function. + You can use the VALUES(col_name) function in the UPDATE clause + to refer to column values from the INSERT portion of the INSERT + ... UPDATE statement. In other words, VALUES(col_name) in the + UPDATE clause refers to the value of col_name that would be + inserted, had no duplicate-key conflict occurred. + In all other places this function returns NULL. +*/ + +class Item_insert_value : public Item_field +{ +public: + Item *arg; + Item_insert_value(Name_resolution_context *context_arg, Item *a) + :Item_field(context_arg, (const char *)NULL, (const char *)NULL, + (const char *)NULL), + arg(a) {} + bool eq(const Item *item, bool binary_cmp) const; + bool fix_fields(THD *, Item **); + virtual void print(String *str, enum_query_type query_type); + int save_in_field(Field *field_arg, bool no_conversions) + { + return Item_field::save_in_field(field_arg, no_conversions); + } + enum Type type() const { return INSERT_VALUE_ITEM; } + /* + We use RAND_TABLE_BIT to prevent Item_insert_value from + being treated as a constant and precalculated before execution + */ + table_map used_tables() const { return RAND_TABLE_BIT; } + + bool walk(Item_processor processor, bool walk_subquery, uchar *args) + { + return arg->walk(processor, walk_subquery, args) || + (this->*processor)(args); + } + bool check_partition_func_processor(uchar *int_arg) {return TRUE;} + bool check_vcol_func_processor(uchar *arg) + { + return trace_unsupported_by_check_vcol_func_processor("values"); + } +}; + + +class Table_triggers_list; + +/* + Represents NEW/OLD version of field of row which is + changed/read in trigger. + + Note: For this item main part of actual binding to Field object happens + not during fix_fields() call (like for Item_field) but right after + parsing of trigger definition, when table is opened, with special + setup_field() call. On fix_fields() stage we simply choose one of + two Field instances representing either OLD or NEW version of this + field. +*/ +class Item_trigger_field : public Item_field, + private Settable_routine_parameter +{ +public: + /* Is this item represents row from NEW or OLD row ? */ + enum row_version_type {OLD_ROW, NEW_ROW}; + row_version_type row_version; + /* Next in list of all Item_trigger_field's in trigger */ + Item_trigger_field *next_trg_field; + /* Index of the field in the TABLE::field array */ + uint field_idx; + /* Pointer to Table_trigger_list object for table of this trigger */ + Table_triggers_list *triggers; + + Item_trigger_field(Name_resolution_context *context_arg, + row_version_type row_ver_arg, + const char *field_name_arg, + ulong priv, const bool ro) + :Item_field(context_arg, + (const char *)NULL, (const char *)NULL, field_name_arg), + row_version(row_ver_arg), field_idx((uint)-1), original_privilege(priv), + want_privilege(priv), table_grants(NULL), read_only (ro) + {} + void setup_field(THD *thd, TABLE *table, GRANT_INFO *table_grant_info); + enum Type type() const { return TRIGGER_FIELD_ITEM; } + bool eq(const Item *item, bool binary_cmp) const; + bool fix_fields(THD *, Item **); + virtual void print(String *str, enum_query_type query_type); + table_map used_tables() const { return (table_map)0L; } + Field *get_tmp_table_field() { return 0; } + Item *copy_or_same(THD *thd) { return this; } + Item *get_tmp_table_item(THD *thd) { return copy_or_same(thd); } + void cleanup(); + +private: + void set_required_privilege(bool rw); + bool set_value(THD *thd, sp_rcontext *ctx, Item **it); + +public: + Settable_routine_parameter *get_settable_routine_parameter() + { + return (read_only ? 0 : this); + } + + bool set_value(THD *thd, Item **it) + { + return set_value(thd, NULL, it); + } + +private: + /* + 'want_privilege' holds privileges required to perform operation on + this trigger field (SELECT_ACL if we are going to read it and + UPDATE_ACL if we are going to update it). It is initialized at + parse time but can be updated later if this trigger field is used + as OUT or INOUT parameter of stored routine (in this case + set_required_privilege() is called to appropriately update + want_privilege and cleanup() is responsible for restoring of + original want_privilege once parameter's value is updated). + */ + ulong original_privilege; + ulong want_privilege; + GRANT_INFO *table_grants; + /* + Trigger field is read-only unless it belongs to the NEW row in a + BEFORE INSERT of BEFORE UPDATE trigger. + */ + bool read_only; + virtual bool check_vcol_func_processor(uchar *arg) + { + return trace_unsupported_by_check_vcol_func_processor("trigger"); + } +}; + + +/** + @todo + Implement the is_null() method for this class. Currently calling is_null() + on any Item_cache object resolves to Item::is_null(), which returns FALSE + for any value. +*/ + +class Item_cache: public Item_basic_constant +{ +protected: + Item *example; + /** + Field that this object will get value from. This is used by + index-based subquery engines to detect and remove the equality injected + by IN->EXISTS transformation. + */ + Field *cached_field; + enum enum_field_types cached_field_type; + /* + TRUE <=> cache holds value of the last stored item (i.e actual value). + store() stores item to be cached and sets this flag to FALSE. + On the first call of val_xxx function if this flag is set to FALSE the + cache_value() will be called to actually cache value of saved item. + cache_value() will set this flag to TRUE. + */ + bool value_cached; +public: + Item_cache(): + example(0), cached_field(0), + cached_field_type(MYSQL_TYPE_STRING), + value_cached(0) + { + fixed= 1; + maybe_null= 1; + null_value= 1; + } + Item_cache(enum_field_types field_type_arg): + example(0), cached_field(0), + cached_field_type(field_type_arg), + value_cached(0) + { + fixed= 1; + maybe_null= 1; + null_value= 1; + } + + virtual bool allocate(uint i) { return 0; } + virtual bool setup(Item *item) + { + example= item; + max_length= item->max_length; + decimals= item->decimals; + collation.set(item->collation); + unsigned_flag= item->unsigned_flag; + if (item->type() == FIELD_ITEM) + cached_field= ((Item_field *)item)->field; + return 0; + }; + enum Type type() const { return CACHE_ITEM; } + enum_field_types field_type() const { return cached_field_type; } + static Item_cache* get_cache(const Item *item); + static Item_cache* get_cache(const Item* item, const Item_result type); + virtual void keep_array() {} + virtual void print(String *str, enum_query_type query_type); + bool eq_def(Field *field) + { + return cached_field ? cached_field->eq_def (field) : FALSE; + } + bool eq(const Item *item, bool binary_cmp) const + { + return this == item; + } + bool check_vcol_func_processor(uchar *arg) + { + return trace_unsupported_by_check_vcol_func_processor("cache"); + } + /** + Check if saved item has a non-NULL value. + Will cache value of saved item if not already done. + @return TRUE if cached value is non-NULL. + */ + bool has_value() + { + return (value_cached || cache_value()) && !null_value; + } + + virtual void store(Item *item); + virtual bool cache_value()= 0; + bool basic_const_item() const + { return test(example && example->basic_const_item());} + virtual void clear() { null_value= TRUE; value_cached= FALSE; } + bool is_null() { return null_value; } + virtual bool is_expensive() + { + if (value_cached) + return false; + return example->is_expensive(); + } + bool is_expensive_processor(uchar *arg) + { + DBUG_ASSERT(example); + if (value_cached) + return false; + return example->is_expensive_processor(arg); + } + virtual void set_null(); + bool walk(Item_processor processor, bool walk_subquery, uchar *arg) + { + if (example && example->walk(processor, walk_subquery, arg)) + return TRUE; + return (this->*processor)(arg); + } + virtual Item *safe_charset_converter(CHARSET_INFO *tocs); +}; + + +class Item_cache_int: public Item_cache +{ +protected: + longlong value; +public: + Item_cache_int(): Item_cache(MYSQL_TYPE_LONGLONG), + value(0) {} + Item_cache_int(enum_field_types field_type_arg): + Item_cache(field_type_arg), value(0) {} + + double val_real(); + longlong val_int(); + String* val_str(String *str); + my_decimal *val_decimal(my_decimal *); + enum Item_result result_type() const { return INT_RESULT; } + bool cache_value(); + int save_in_field(Field *field, bool no_conversions); +}; + + +class Item_cache_temporal: public Item_cache_int +{ +public: + Item_cache_temporal(enum_field_types field_type_arg); + String* val_str(String *str); + my_decimal *val_decimal(my_decimal *); + longlong val_int(); + longlong val_temporal_packed(); + double val_real(); + bool cache_value(); + bool get_date(MYSQL_TIME *ltime, ulonglong fuzzydate); + int save_in_field(Field *field, bool no_conversions); + Item_result cmp_type() const { return TIME_RESULT; } + void store_packed(longlong val_arg, Item *example); + /* + Having a clone_item method tells optimizer that this object + is a constant and need not be optimized further. + Important when storing packed datetime values. + */ + Item *clone_item() + { + Item_cache_temporal *item= new Item_cache_temporal(cached_field_type); + item->store_packed(value, example); + return item; + } +}; + + +class Item_cache_real: public Item_cache +{ + double value; +public: + Item_cache_real(): Item_cache(MYSQL_TYPE_DOUBLE), + value(0) {} + + double val_real(); + longlong val_int(); + String* val_str(String *str); + my_decimal *val_decimal(my_decimal *); + enum Item_result result_type() const { return REAL_RESULT; } + bool cache_value(); +}; + + +class Item_cache_decimal: public Item_cache +{ +protected: + my_decimal decimal_value; +public: + Item_cache_decimal(): Item_cache(MYSQL_TYPE_NEWDECIMAL) {} + + double val_real(); + longlong val_int(); + String* val_str(String *str); + my_decimal *val_decimal(my_decimal *); + enum Item_result result_type() const { return DECIMAL_RESULT; } + bool cache_value(); +}; + + +class Item_cache_str: public Item_cache +{ + char buffer[STRING_BUFFER_USUAL_SIZE]; + String *value, value_buff; + bool is_varbinary; + +public: + Item_cache_str(const Item *item) : + Item_cache(item->field_type()), value(0), + is_varbinary(item->type() == FIELD_ITEM && + cached_field_type == MYSQL_TYPE_VARCHAR && + !((const Item_field *) item)->field->has_charset()) + { + collation.set(const_cast(item->collation)); + } + double val_real(); + longlong val_int(); + String* val_str(String *); + my_decimal *val_decimal(my_decimal *); + enum Item_result result_type() const { return STRING_RESULT; } + CHARSET_INFO *charset() const { return value->charset(); }; + int save_in_field(Field *field, bool no_conversions); + bool cache_value(); +}; + +class Item_cache_row: public Item_cache +{ + Item_cache **values; + uint item_count; + bool save_array; +public: + Item_cache_row() + :Item_cache(), values(0), item_count(2), + save_array(0) {} + + /* + 'allocate' used only in row transformer, to preallocate space for row + cache. + */ + bool allocate(uint num); + /* + 'setup' is needed only by row => it not called by simple row subselect + (only by IN subselect (in subselect optimizer)) + */ + bool setup(Item *item); + void store(Item *item); + void illegal_method_call(const char *); + void make_field(Send_field *) + { + illegal_method_call((const char*)"make_field"); + }; + double val_real() + { + illegal_method_call((const char*)"val"); + return 0; + }; + longlong val_int() + { + illegal_method_call((const char*)"val_int"); + return 0; + }; + String *val_str(String *) + { + illegal_method_call((const char*)"val_str"); + return 0; + }; + my_decimal *val_decimal(my_decimal *val) + { + illegal_method_call((const char*)"val_decimal"); + return 0; + }; + + enum Item_result result_type() const { return ROW_RESULT; } + + uint cols() { return item_count; } + Item *element_index(uint i) { return values[i]; } + Item **addr(uint i) { return (Item **) (values + i); } + bool check_cols(uint c); + bool null_inside(); + void bring_value(); + void keep_array() { save_array= 1; } + void cleanup() + { + DBUG_ENTER("Item_cache_row::cleanup"); + Item_cache::cleanup(); + if (save_array) + bzero(values, item_count*sizeof(Item**)); + else + values= 0; + DBUG_VOID_RETURN; + } + bool cache_value(); + virtual void set_null(); +}; + + +/* + Item_type_holder used to store type. name, length of Item for UNIONS & + derived tables. + + Item_type_holder do not need cleanup() because its time of live limited by + single SP/PS execution. +*/ +class Item_type_holder: public Item +{ +protected: + TYPELIB *enum_set_typelib; + enum_field_types fld_type; + Field::geometry_type geometry_type; + + void get_full_info(Item *item); + + /* It is used to count decimal precision in join_types */ + int prev_decimal_int_part; +public: + Item_type_holder(THD*, Item*); + + Item_result result_type() const; + enum_field_types field_type() const { return fld_type; }; + enum Type type() const { return TYPE_HOLDER; } + double val_real(); + longlong val_int(); + my_decimal *val_decimal(my_decimal *); + String *val_str(String*); + bool join_types(THD *thd, Item *); + Field *make_field_by_type(TABLE *table); + static uint32 display_length(Item *item); + static enum_field_types get_real_type(Item *); + Field::geometry_type get_geometry_type() const { return geometry_type; }; +}; + + +class st_select_lex; +void mark_select_range_as_dependent(THD *thd, + st_select_lex *last_select, + st_select_lex *current_sel, + Field *found_field, Item *found_item, + Item_ident *resolved_item); + +extern Cached_item *new_Cached_item(THD *thd, Item *item, + bool pass_through_ref); +extern Item_result item_cmp_type(Item_result a,Item_result b); +extern void resolve_const_item(THD *thd, Item **ref, Item *cmp_item); +extern int stored_field_cmp_to_item(THD *thd, Field *field, Item *item); + +extern const String my_null_string; + +/** + Interface for Item iterator +*/ + +class Item_iterator +{ +public: + /** + Shall set this iterator to the position before the first item + + @note + This method also may perform some other initialization actions like + allocation of certain resources. + */ + virtual void open()= 0; + /** + Shall return the next Item (or NULL if there is no next item) and + move pointer to position after it. + */ + virtual Item *next()= 0; + /** + Shall force iterator to free resources (if it holds them) + + @note + One should not use the iterator without open() call after close() + */ + virtual void close()= 0; + + virtual ~Item_iterator() {} +}; + + +/** + Item iterator over List_iterator_fast for Item references +*/ + +class Item_iterator_ref_list: public Item_iterator +{ + List_iterator list; +public: + Item_iterator_ref_list(List_iterator &arg_list): + list(arg_list) {} + void open() { list.rewind(); } + Item *next() { return *(list++); } + void close() {} +}; + + +/** + Item iterator over List_iterator_fast for Items +*/ + +class Item_iterator_list: public Item_iterator +{ + List_iterator list; +public: + Item_iterator_list(List_iterator &arg_list): + list(arg_list) {} + void open() { list.rewind(); } + Item *next() { return (list++); } + void close() {} +}; + + +/** + Item iterator over Item interface for rows +*/ + +class Item_iterator_row: public Item_iterator +{ + Item *base_item; + uint current; +public: + Item_iterator_row(Item *base) : base_item(base), current(0) {} + void open() { current= 0; } + Item *next() + { + if (current >= base_item->cols()) + return NULL; + return base_item->element_index(current++); + } + void close() {} +}; + +#endif /* SQL_ITEM_INCLUDED */ diff --git a/database/include/mysql/private/item_cmpfunc.h b/database/include/mysql/private/item_cmpfunc.h new file mode 100644 index 0000000..2eafa0b --- /dev/null +++ b/database/include/mysql/private/item_cmpfunc.h @@ -0,0 +1,1982 @@ +#ifndef ITEM_CMPFUNC_INCLUDED +#define ITEM_CMPFUNC_INCLUDED +/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. + Copyright (c) 2009, 2016, MariaDB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + + +/* compare and test functions */ + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif + +#include "thr_malloc.h" /* sql_calloc */ +#include "item_func.h" /* Item_int_func, Item_bool_func */ +#include "my_regex.h" + +extern Item_result item_cmp_type(Item_result a,Item_result b); +class Item_bool_func2; +class Arg_comparator; + +typedef int (Arg_comparator::*arg_cmp_func)(); + +typedef int (*Item_field_cmpfunc)(Item *f1, Item *f2, void *arg); + +class Arg_comparator: public Sql_alloc +{ + Item **a, **b; + arg_cmp_func func; + Item_result_field *owner; + bool set_null; // TRUE <=> set owner->null_value + Arg_comparator *comparators; // used only for compare_row() + double precision; + /* Fields used in DATE/DATETIME comparison. */ + Item *a_cache, *b_cache; // Cached values of a and b items + // when one of arguments is NULL. +public: + DTCollation cmp_collation; + /* Allow owner function to use string buffers. */ + String value1, value2; + + Arg_comparator(): set_null(TRUE), comparators(0), + a_cache(0), b_cache(0) {}; + Arg_comparator(Item **a1, Item **a2): a(a1), b(a2), set_null(TRUE), + comparators(0), a_cache(0), b_cache(0) {}; + + int set_compare_func(Item_result_field *owner, Item_result type); + inline int set_compare_func(Item_result_field *owner_arg) + { + return set_compare_func(owner_arg, item_cmp_type((*a)->result_type(), + (*b)->result_type())); + } + int set_cmp_func(Item_result_field *owner_arg, + Item **a1, Item **a2, + Item_result type); + + inline int set_cmp_func(Item_result_field *owner_arg, + Item **a1, Item **a2, bool set_null_arg) + { + set_null= set_null_arg; + return set_cmp_func(owner_arg, a1, a2, + item_cmp_type((*a1)->cmp_type(), + (*a2)->cmp_type())); + } + inline int compare() { return (this->*func)(); } + + int compare_string(); // compare args[0] & args[1] + int compare_binary_string(); // compare args[0] & args[1] + int compare_real(); // compare args[0] & args[1] + int compare_decimal(); // compare args[0] & args[1] + int compare_int_signed(); // compare args[0] & args[1] + int compare_int_signed_unsigned(); + int compare_int_unsigned_signed(); + int compare_int_unsigned(); + int compare_row(); // compare args[0] & args[1] + int compare_e_string(); // compare args[0] & args[1] + int compare_e_binary_string(); // compare args[0] & args[1] + int compare_e_real(); // compare args[0] & args[1] + int compare_e_decimal(); // compare args[0] & args[1] + int compare_e_int(); // compare args[0] & args[1] + int compare_e_int_diff_signedness(); + int compare_e_row(); // compare args[0] & args[1] + int compare_real_fixed(); + int compare_e_real_fixed(); + int compare_datetime(); // compare args[0] & args[1] as DATETIMEs + int compare_e_datetime(); + + Item** cache_converted_constant(THD *thd, Item **value, Item **cache, + Item_result type); + void set_datetime_cmp_func(Item_result_field *owner_arg, Item **a1, Item **b1); + static arg_cmp_func comparator_matrix [6][2]; + inline bool is_owner_equal_func() + { + return (owner->type() == Item::FUNC_ITEM && + ((Item_func*)owner)->functype() == Item_func::EQUAL_FUNC); + } + void cleanup() + { + delete [] comparators; + comparators= 0; + } + friend class Item_func; +}; + +class Item_bool_func :public Item_int_func +{ +public: + Item_bool_func() :Item_int_func() {} + Item_bool_func(Item *a) :Item_int_func(a) {} + Item_bool_func(Item *a,Item *b) :Item_int_func(a,b) {} + Item_bool_func(THD *thd, Item_bool_func *item) :Item_int_func(thd, item) {} + bool is_bool_func() { return 1; } + void fix_length_and_dec() { decimals=0; max_length=1; } + uint decimal_precision() const { return 1; } +}; + + +/** + Abstract Item class, to represent X IS [NOT] (TRUE | FALSE) + boolean predicates. +*/ + +class Item_func_truth : public Item_bool_func +{ +public: + virtual bool val_bool(); + virtual longlong val_int(); + virtual void fix_length_and_dec(); + virtual void print(String *str, enum_query_type query_type); + +protected: + Item_func_truth(Item *a, bool a_value, bool a_affirmative) + : Item_bool_func(a), value(a_value), affirmative(a_affirmative) + {} + + ~Item_func_truth() + {} +private: + /** + True for X IS [NOT] TRUE, + false for X IS [NOT] FALSE predicates. + */ + const bool value; + /** + True for X IS Y, false for X IS NOT Y predicates. + */ + const bool affirmative; +}; + + +/** + This Item represents a X IS TRUE boolean predicate. +*/ + +class Item_func_istrue : public Item_func_truth +{ +public: + Item_func_istrue(Item *a) : Item_func_truth(a, true, true) {} + ~Item_func_istrue() {} + virtual const char* func_name() const { return "istrue"; } +}; + + +/** + This Item represents a X IS NOT TRUE boolean predicate. +*/ + +class Item_func_isnottrue : public Item_func_truth +{ +public: + Item_func_isnottrue(Item *a) : Item_func_truth(a, true, false) {} + ~Item_func_isnottrue() {} + virtual const char* func_name() const { return "isnottrue"; } + bool eval_not_null_tables(uchar *opt_arg) + { not_null_tables_cache= 0; return false; } +}; + + +/** + This Item represents a X IS FALSE boolean predicate. +*/ + +class Item_func_isfalse : public Item_func_truth +{ +public: + Item_func_isfalse(Item *a) : Item_func_truth(a, false, true) {} + ~Item_func_isfalse() {} + virtual const char* func_name() const { return "isfalse"; } +}; + + +/** + This Item represents a X IS NOT FALSE boolean predicate. +*/ + +class Item_func_isnotfalse : public Item_func_truth +{ +public: + Item_func_isnotfalse(Item *a) : Item_func_truth(a, false, false) {} + ~Item_func_isnotfalse() {} + virtual const char* func_name() const { return "isnotfalse"; } + bool eval_not_null_tables(uchar *opt_arg) + { not_null_tables_cache= 0; return false; } +}; + + +class Item_cache; +#define UNKNOWN (-1) + + +/* + Item_in_optimizer(left_expr, Item_in_subselect(...)) + + Item_in_optimizer is used to wrap an instance of Item_in_subselect. This + class does the following: + - Evaluate the left expression and store it in Item_cache_* object (to + avoid re-evaluating it many times during subquery execution) + - Shortcut the evaluation of "NULL IN (...)" to NULL in the cases where we + don't care if the result is NULL or FALSE. + + NOTE + It is not quite clear why the above listed functionality should be + placed into a separate class called 'Item_in_optimizer'. +*/ + +class Item_in_optimizer: public Item_bool_func +{ +protected: + Item_cache *cache; + Item *expr_cache; + bool save_cache; + /* + Stores the value of "NULL IN (SELECT ...)" for uncorrelated subqueries: + UNKNOWN - "NULL in (SELECT ...)" has not yet been evaluated + FALSE - result is FALSE + TRUE - result is NULL + */ + int result_for_null_param; +public: + Item_in_optimizer(Item *a, Item_in_subselect *b): + Item_bool_func(a, reinterpret_cast(b)), cache(0), expr_cache(0), + save_cache(0), result_for_null_param(UNKNOWN) + { with_subselect= true; } + bool fix_fields(THD *, Item **); + bool fix_left(THD *thd, Item **ref); + table_map not_null_tables() const { return 0; } + bool is_null(); + longlong val_int(); + void cleanup(); + enum Functype functype() const { return IN_OPTIMIZER_FUNC; } + const char *func_name() const { return ""; } + Item_cache **get_cache() { return &cache; } + void keep_top_level_cache(); + Item *transform(Item_transformer transformer, uchar *arg); + virtual Item *expr_cache_insert_transformer(uchar *thd_arg); + bool is_expensive_processor(uchar *arg); + bool is_expensive(); + void set_join_tab_idx(uint join_tab_idx_arg) + { args[1]->set_join_tab_idx(join_tab_idx_arg); } + virtual void get_cache_parameters(List ¶meters); + bool is_top_level_item(); + bool eval_not_null_tables(uchar *opt_arg); + void fix_after_pullout(st_select_lex *new_parent, Item **ref); + virtual void print(String *str, enum_query_type query_type); + void restore_first_argument(); + Item* get_wrapped_in_subselect_item() + { + return args[1]; + } +}; + +class Comp_creator +{ +public: + Comp_creator() {} /* Remove gcc warning */ + virtual ~Comp_creator() {} /* Remove gcc warning */ + /** + Create operation with given arguments. + */ + virtual Item_bool_func2* create(Item *a, Item *b) const = 0; + /** + Create operation with given arguments in swap order. + */ + virtual Item_bool_func2* create_swap(Item *a, Item *b) const = 0; + virtual const char* symbol(bool invert) const = 0; + virtual bool eqne_op() const = 0; + virtual bool l_op() const = 0; +}; + +class Eq_creator :public Comp_creator +{ +public: + Eq_creator() {} /* Remove gcc warning */ + virtual ~Eq_creator() {} /* Remove gcc warning */ + virtual Item_bool_func2* create(Item *a, Item *b) const; + virtual Item_bool_func2* create_swap(Item *a, Item *b) const; + virtual const char* symbol(bool invert) const { return invert? "<>" : "="; } + virtual bool eqne_op() const { return 1; } + virtual bool l_op() const { return 0; } +}; + +class Ne_creator :public Comp_creator +{ +public: + Ne_creator() {} /* Remove gcc warning */ + virtual ~Ne_creator() {} /* Remove gcc warning */ + virtual Item_bool_func2* create(Item *a, Item *b) const; + virtual Item_bool_func2* create_swap(Item *a, Item *b) const; + virtual const char* symbol(bool invert) const { return invert? "=" : "<>"; } + virtual bool eqne_op() const { return 1; } + virtual bool l_op() const { return 0; } +}; + +class Gt_creator :public Comp_creator +{ +public: + Gt_creator() {} /* Remove gcc warning */ + virtual ~Gt_creator() {} /* Remove gcc warning */ + virtual Item_bool_func2* create(Item *a, Item *b) const; + virtual Item_bool_func2* create_swap(Item *a, Item *b) const; + virtual const char* symbol(bool invert) const { return invert? "<=" : ">"; } + virtual bool eqne_op() const { return 0; } + virtual bool l_op() const { return 0; } +}; + +class Lt_creator :public Comp_creator +{ +public: + Lt_creator() {} /* Remove gcc warning */ + virtual ~Lt_creator() {} /* Remove gcc warning */ + virtual Item_bool_func2* create(Item *a, Item *b) const; + virtual Item_bool_func2* create_swap(Item *a, Item *b) const; + virtual const char* symbol(bool invert) const { return invert? ">=" : "<"; } + virtual bool eqne_op() const { return 0; } + virtual bool l_op() const { return 1; } +}; + +class Ge_creator :public Comp_creator +{ +public: + Ge_creator() {} /* Remove gcc warning */ + virtual ~Ge_creator() {} /* Remove gcc warning */ + virtual Item_bool_func2* create(Item *a, Item *b) const; + virtual Item_bool_func2* create_swap(Item *a, Item *b) const; + virtual const char* symbol(bool invert) const { return invert? "<" : ">="; } + virtual bool eqne_op() const { return 0; } + virtual bool l_op() const { return 0; } +}; + +class Le_creator :public Comp_creator +{ +public: + Le_creator() {} /* Remove gcc warning */ + virtual ~Le_creator() {} /* Remove gcc warning */ + virtual Item_bool_func2* create(Item *a, Item *b) const; + virtual Item_bool_func2* create_swap(Item *a, Item *b) const; + virtual const char* symbol(bool invert) const { return invert? ">" : "<="; } + virtual bool eqne_op() const { return 0; } + virtual bool l_op() const { return 1; } +}; + +class Item_bool_func2 :public Item_int_func +{ /* Bool with 2 string args */ +protected: + Arg_comparator cmp; + bool abort_on_null; + +public: + Item_bool_func2(Item *a,Item *b) + :Item_int_func(a,b), cmp(tmp_arg, tmp_arg+1), + abort_on_null(FALSE) { sargable= TRUE; } + void fix_length_and_dec(); + int set_cmp_func() + { + return cmp.set_cmp_func(this, tmp_arg, tmp_arg+1, TRUE); + } + optimize_type select_optimize() const { return OPTIMIZE_OP; } + virtual enum Functype rev_functype() const { return UNKNOWN_FUNC; } + bool have_rev_func() const { return rev_functype() != UNKNOWN_FUNC; } + + virtual inline void print(String *str, enum_query_type query_type) + { + Item_func::print_op(str, query_type); + } + + bool is_null() { return test(args[0]->is_null() || args[1]->is_null()); } + bool is_bool_func() { return 1; } + CHARSET_INFO *compare_collation() { return cmp.cmp_collation.collation; } + uint decimal_precision() const { return 1; } + void top_level_item() { abort_on_null= TRUE; } + Arg_comparator *get_comparator() { return &cmp; } + void cleanup() + { + Item_int_func::cleanup(); + cmp.cleanup(); + } + + friend class Arg_comparator; +}; + +class Item_bool_rowready_func2 :public Item_bool_func2 +{ +public: + Item_bool_rowready_func2(Item *a, Item *b) :Item_bool_func2(a, b) + { + allowed_arg_cols= 0; // Fetch this value from first argument + } + Item *neg_transformer(THD *thd); + virtual Item *negated_item(); + bool subst_argument_checker(uchar **arg) + { + return (*arg != NULL); + } +}; + +/** + XOR inherits from Item_bool_func2 because it is not optimized yet. + Later, when XOR is optimized, it needs to inherit from + Item_cond instead. See WL#5800. +*/ +class Item_func_xor :public Item_bool_func2 +{ +public: + Item_func_xor(Item *i1, Item *i2) :Item_bool_func2(i1, i2) {} + enum Functype functype() const { return XOR_FUNC; } + const char *func_name() const { return "xor"; } + longlong val_int(); + void top_level_item() {} + Item *neg_transformer(THD *thd); + bool subst_argument_checker(uchar **arg) + { + return (*arg != NULL); + } +}; + +class Item_func_not :public Item_bool_func +{ +public: + Item_func_not(Item *a) :Item_bool_func(a) {} + longlong val_int(); + enum Functype functype() const { return NOT_FUNC; } + const char *func_name() const { return "not"; } + Item *neg_transformer(THD *thd); + bool fix_fields(THD *, Item **); + virtual void print(String *str, enum_query_type query_type); +}; + +class Item_maxmin_subselect; + +/* + trigcond(arg) ::= param? arg : TRUE + + The class Item_func_trig_cond is used for guarded predicates + which are employed only for internal purposes. + A guarded predicate is an object consisting of an a regular or + a guarded predicate P and a pointer to a boolean guard variable g. + A guarded predicate P/g is evaluated to true if the value of the + guard g is false, otherwise it is evaluated to the same value that + the predicate P: val(P/g)= g ? val(P):true. + Guarded predicates allow us to include predicates into a conjunction + conditionally. Currently they are utilized for pushed down predicates + in queries with outer join operations. + + In the future, probably, it makes sense to extend this class to + the objects consisting of three elements: a predicate P, a pointer + to a variable g and a firing value s with following evaluation + rule: val(P/g,s)= g==s? val(P) : true. It will allow us to build only + one item for the objects of the form P/g1/g2... + + Objects of this class are built only for query execution after + the execution plan has been already selected. That's why this + class needs only val_int out of generic methods. + + Current uses of Item_func_trig_cond objects: + - To wrap selection conditions when executing outer joins + - To wrap condition that is pushed down into subquery +*/ + +class Item_func_trig_cond: public Item_bool_func +{ + bool *trig_var; +public: + Item_func_trig_cond(Item *a, bool *f) : Item_bool_func(a) { trig_var= f; } + longlong val_int() { return *trig_var ? args[0]->val_int() : 1; } + enum Functype functype() const { return TRIG_COND_FUNC; }; + const char *func_name() const { return "trigcond"; }; + bool const_item() const { return FALSE; } + bool *get_trig_var() { return trig_var; } +}; + +class Item_func_not_all :public Item_func_not +{ + /* allow to check presence of values in max/min optimization */ + Item_sum_hybrid *test_sum_item; + Item_maxmin_subselect *test_sub_item; + + bool abort_on_null; +public: + bool show; + + Item_func_not_all(Item *a) + :Item_func_not(a), test_sum_item(0), test_sub_item(0), abort_on_null(0), + show(0) + {} + virtual void top_level_item() { abort_on_null= 1; } + bool is_top_level_item() { return abort_on_null; } + table_map not_null_tables() const { return 0; } + longlong val_int(); + enum Functype functype() const { return NOT_ALL_FUNC; } + const char *func_name() const { return ""; } + bool fix_fields(THD *thd, Item **ref) + {return Item_func::fix_fields(thd, ref);} + virtual void print(String *str, enum_query_type query_type); + void set_sum_test(Item_sum_hybrid *item) { test_sum_item= item; test_sub_item= 0; }; + void set_sub_test(Item_maxmin_subselect *item) { test_sub_item= item; test_sum_item= 0;}; + bool empty_underlying_subquery(); + Item *neg_transformer(THD *thd); +}; + + +class Item_func_nop_all :public Item_func_not_all +{ +public: + + Item_func_nop_all(Item *a) :Item_func_not_all(a) {} + longlong val_int(); + const char *func_name() const { return ""; } + Item *neg_transformer(THD *thd); +}; + + +class Item_func_eq :public Item_bool_rowready_func2 +{ +public: + Item_func_eq(Item *a,Item *b) : + Item_bool_rowready_func2(a,b), in_equality_no(UINT_MAX) + {} + longlong val_int(); + enum Functype functype() const { return EQ_FUNC; } + enum Functype rev_functype() const { return EQ_FUNC; } + cond_result eq_cmp_result() const { return COND_TRUE; } + const char *func_name() const { return "="; } + Item *negated_item(); + /* + - If this equality is created from the subquery's IN-equality: + number of the item it was created from, e.g. for + (a,b) IN (SELECT c,d ...) a=c will have in_equality_no=0, + and b=d will have in_equality_no=1. + - Otherwise, UINT_MAX + */ + uint in_equality_no; +}; + +class Item_func_equal :public Item_bool_rowready_func2 +{ +public: + Item_func_equal(Item *a,Item *b) :Item_bool_rowready_func2(a,b) {}; + longlong val_int(); + void fix_length_and_dec(); + table_map not_null_tables() const { return 0; } + enum Functype functype() const { return EQUAL_FUNC; } + enum Functype rev_functype() const { return EQUAL_FUNC; } + cond_result eq_cmp_result() const { return COND_TRUE; } + const char *func_name() const { return "<=>"; } + Item *neg_transformer(THD *thd) { return 0; } +}; + + +class Item_func_ge :public Item_bool_rowready_func2 +{ +public: + Item_func_ge(Item *a,Item *b) :Item_bool_rowready_func2(a,b) {}; + longlong val_int(); + enum Functype functype() const { return GE_FUNC; } + enum Functype rev_functype() const { return LE_FUNC; } + cond_result eq_cmp_result() const { return COND_TRUE; } + const char *func_name() const { return ">="; } + Item *negated_item(); +}; + + +class Item_func_gt :public Item_bool_rowready_func2 +{ +public: + Item_func_gt(Item *a,Item *b) :Item_bool_rowready_func2(a,b) {}; + longlong val_int(); + enum Functype functype() const { return GT_FUNC; } + enum Functype rev_functype() const { return LT_FUNC; } + cond_result eq_cmp_result() const { return COND_FALSE; } + const char *func_name() const { return ">"; } + Item *negated_item(); +}; + + +class Item_func_le :public Item_bool_rowready_func2 +{ +public: + Item_func_le(Item *a,Item *b) :Item_bool_rowready_func2(a,b) {}; + longlong val_int(); + enum Functype functype() const { return LE_FUNC; } + enum Functype rev_functype() const { return GE_FUNC; } + cond_result eq_cmp_result() const { return COND_TRUE; } + const char *func_name() const { return "<="; } + Item *negated_item(); +}; + + +class Item_func_lt :public Item_bool_rowready_func2 +{ +public: + Item_func_lt(Item *a,Item *b) :Item_bool_rowready_func2(a,b) {} + longlong val_int(); + enum Functype functype() const { return LT_FUNC; } + enum Functype rev_functype() const { return GT_FUNC; } + cond_result eq_cmp_result() const { return COND_FALSE; } + const char *func_name() const { return "<"; } + Item *negated_item(); +}; + + +class Item_func_ne :public Item_bool_rowready_func2 +{ +public: + Item_func_ne(Item *a,Item *b) :Item_bool_rowready_func2(a,b) {} + longlong val_int(); + enum Functype functype() const { return NE_FUNC; } + cond_result eq_cmp_result() const { return COND_FALSE; } + optimize_type select_optimize() const { return OPTIMIZE_KEY; } + const char *func_name() const { return "<>"; } + Item *negated_item(); +}; + + +/* + The class Item_func_opt_neg is defined to factor out the functionality + common for the classes Item_func_between and Item_func_in. The objects + of these classes can express predicates or there negations. + The alternative approach would be to create pairs Item_func_between, + Item_func_notbetween and Item_func_in, Item_func_notin. + +*/ + +class Item_func_opt_neg :public Item_int_func +{ +public: + bool negated; /* <=> the item represents NOT */ + bool pred_level; /* <=> [NOT] is used on a predicate level */ +public: + Item_func_opt_neg(Item *a, Item *b, Item *c) + :Item_int_func(a, b, c), negated(0), pred_level(0) {} + Item_func_opt_neg(List &list) + :Item_int_func(list), negated(0), pred_level(0) {} +public: + inline void negate() { negated= !negated; } + inline void top_level_item() { pred_level= 1; } + Item *neg_transformer(THD *thd) + { + negated= !negated; + return this; + } + bool eq(const Item *item, bool binary_cmp) const; + bool subst_argument_checker(uchar **arg) { return TRUE; } +}; + + +class Item_func_between :public Item_func_opt_neg +{ + DTCollation cmp_collation; +public: + Item_result cmp_type; + String value0,value1,value2; + /* TRUE <=> arguments will be compared as dates. */ + Item *compare_as_dates; + Item_func_between(Item *a, Item *b, Item *c) + :Item_func_opt_neg(a, b, c), compare_as_dates(FALSE) { sargable= TRUE; } + longlong val_int(); + optimize_type select_optimize() const { return OPTIMIZE_KEY; } + enum Functype functype() const { return BETWEEN; } + const char *func_name() const { return "between"; } + bool fix_fields(THD *, Item **); + void fix_length_and_dec(); + virtual void print(String *str, enum_query_type query_type); + bool is_bool_func() { return 1; } + CHARSET_INFO *compare_collation() { return cmp_collation.collation; } + uint decimal_precision() const { return 1; } + bool eval_not_null_tables(uchar *opt_arg); + void fix_after_pullout(st_select_lex *new_parent, Item **ref); + bool count_sargable_conds(uchar *arg); + + longlong val_int_cmp_string(); + longlong val_int_cmp_int(); + longlong val_int_cmp_real(); + longlong val_int_cmp_decimal(); +}; + + +class Item_func_strcmp :public Item_bool_func2 +{ +public: + Item_func_strcmp(Item *a,Item *b) :Item_bool_func2(a,b) {} + longlong val_int(); + optimize_type select_optimize() const { return OPTIMIZE_NONE; } + const char *func_name() const { return "strcmp"; } + + virtual inline void print(String *str, enum_query_type query_type) + { + Item_func::print(str, query_type); + } + void fix_length_and_dec() + { + Item_bool_func2::fix_length_and_dec(); + fix_char_length(2); // returns "1" or "0" or "-1" + } +}; + + +struct interval_range +{ + Item_result type; + double dbl; + my_decimal dec; +}; + +class Item_func_interval :public Item_int_func +{ + Item_row *row; + bool use_decimal_comparison; + interval_range *intervals; +public: + Item_func_interval(Item_row *a) + :Item_int_func(a),row(a),intervals(0) + { + allowed_arg_cols= 0; // Fetch this value from first argument + } + bool fix_fields(THD *, Item **); + longlong val_int(); + void fix_length_and_dec(); + const char *func_name() const { return "interval"; } + uint decimal_precision() const { return 2; } +}; + + +class Item_func_coalesce :public Item_func_hybrid_field_type +{ +public: + Item_func_coalesce(Item *a, Item *b) :Item_func_hybrid_field_type(a, b) {} + Item_func_coalesce(List &list) :Item_func_hybrid_field_type(list) {} + double real_op(); + longlong int_op(); + String *str_op(String *); + my_decimal *decimal_op(my_decimal *); + bool date_op(MYSQL_TIME *ltime,uint fuzzydate); + void fix_length_and_dec(); + const char *func_name() const { return "coalesce"; } + table_map not_null_tables() const { return 0; } +}; + + +class Item_func_ifnull :public Item_func_coalesce +{ +protected: + bool field_type_defined; +public: + Item_func_ifnull(Item *a, Item *b) :Item_func_coalesce(a,b) {} + double real_op(); + longlong int_op(); + String *str_op(String *str); + my_decimal *decimal_op(my_decimal *); + bool date_op(MYSQL_TIME *ltime,uint fuzzydate); + void fix_length_and_dec(); + const char *func_name() const { return "ifnull"; } + Field *tmp_table_field(TABLE *table); + uint decimal_precision() const; +}; + + +class Item_func_if :public Item_func_hybrid_field_type +{ +public: + Item_func_if(Item *a,Item *b,Item *c) + :Item_func_hybrid_field_type(a,b,c) + {} + bool date_op(MYSQL_TIME *ltime, uint fuzzydate); + longlong int_op(); + double real_op(); + my_decimal *decimal_op(my_decimal *); + String *str_op(String *); + bool fix_fields(THD *, Item **); + void fix_length_and_dec(); + uint decimal_precision() const; + const char *func_name() const { return "if"; } + bool eval_not_null_tables(uchar *opt_arg); + void fix_after_pullout(st_select_lex *new_parent, Item **ref); +private: + void cache_type_info(Item *source); +}; + + +class Item_func_nullif :public Item_bool_func2 +{ + enum Item_result cached_result_type; +public: + Item_func_nullif(Item *a,Item *b) + :Item_bool_func2(a,b), cached_result_type(INT_RESULT) + {} + double val_real(); + longlong val_int(); + String *val_str(String *str); + my_decimal *val_decimal(my_decimal *); + enum Item_result result_type () const { return cached_result_type; } + void fix_length_and_dec(); + uint decimal_precision() const { return args[0]->decimal_precision(); } + const char *func_name() const { return "nullif"; } + + virtual inline void print(String *str, enum_query_type query_type) + { + Item_func::print(str, query_type); + } + + table_map not_null_tables() const { return 0; } + bool is_null(); +}; + + +/* Functions to handle the optimized IN */ + + +/* A vector of values of some type */ + +class in_vector :public Sql_alloc +{ +public: + char *base; + uint size; + qsort2_cmp compare; + CHARSET_INFO *collation; + uint count; + uint used_count; + in_vector() {} + in_vector(uint elements,uint element_length,qsort2_cmp cmp_func, + CHARSET_INFO *cmp_coll) + :base((char*) sql_calloc(elements*element_length)), + size(element_length), compare(cmp_func), collation(cmp_coll), + count(elements), used_count(elements) {} + virtual ~in_vector() {} + virtual void set(uint pos,Item *item)=0; + virtual uchar *get_value(Item *item)=0; + void sort() + { + my_qsort2(base,used_count,size,compare,(void*)collation); + } + int find(Item *item); + + /* + Create an instance of Item_{type} (e.g. Item_decimal) constant object + which type allows it to hold an element of this vector without any + conversions. + The purpose of this function is to be able to get elements of this + vector in form of Item_xxx constants without creating Item_xxx object + for every array element you get (i.e. this implements "FlyWeight" pattern) + */ + virtual Item* create_item() { return NULL; } + + /* + Store the value at position #pos into provided item object + SYNOPSIS + value_to_item() + pos Index of value to store + item Constant item to store value into. The item must be of the same + type that create_item() returns. + */ + virtual void value_to_item(uint pos, Item *item) { } + + /* Compare values number pos1 and pos2 for equality */ + bool compare_elems(uint pos1, uint pos2) + { + return test(compare(collation, base + pos1*size, base + pos2*size)); + } + virtual Item_result result_type()= 0; +}; + +class in_string :public in_vector +{ + char buff[STRING_BUFFER_USUAL_SIZE]; + String tmp; +public: + in_string(uint elements,qsort2_cmp cmp_func, CHARSET_INFO *cs); + ~in_string(); + void set(uint pos,Item *item); + uchar *get_value(Item *item); + Item* create_item() + { + return new Item_string(collation); + } + void value_to_item(uint pos, Item *item) + { + String *str=((String*) base)+pos; + Item_string *to= (Item_string*)item; + to->str_value= *str; + } + Item_result result_type() { return STRING_RESULT; } +}; + +class in_longlong :public in_vector +{ +protected: + /* + Here we declare a temporary variable (tmp) of the same type as the + elements of this vector. tmp is used in finding if a given value is in + the list. + */ + struct packed_longlong + { + longlong val; + longlong unsigned_flag; // Use longlong, not bool, to preserve alignment + } tmp; +public: + in_longlong(uint elements); + void set(uint pos,Item *item); + uchar *get_value(Item *item); + + Item* create_item() + { + /* + We're created a signed INT, this may not be correct in + general case (see BUG#19342). + */ + return new Item_int((longlong)0); + } + void value_to_item(uint pos, Item *item) + { + ((Item_int*) item)->value= ((packed_longlong*) base)[pos].val; + ((Item_int*) item)->unsigned_flag= (bool) + ((packed_longlong*) base)[pos].unsigned_flag; + } + Item_result result_type() { return INT_RESULT; } + + friend int cmp_longlong(void *cmp_arg, packed_longlong *a,packed_longlong *b); +}; + + +/* + Class to represent a vector of constant DATE/DATETIME values. + Values are obtained with help of the get_datetime_value() function. + If the left item is a constant one then its value is cached in the + lval_cache variable. +*/ +class in_datetime :public in_longlong +{ +public: + /* An item used to issue warnings. */ + Item *warn_item; + /* Cache for the left item. */ + Item *lval_cache; + + in_datetime(Item *warn_item_arg, uint elements) + :in_longlong(elements), warn_item(warn_item_arg), lval_cache(0) {}; + void set(uint pos,Item *item); + uchar *get_value(Item *item); + Item* create_item() + { + return new Item_datetime(); + } + void value_to_item(uint pos, Item *item) + { + packed_longlong *val= reinterpret_cast(base)+pos; + Item_datetime *dt= reinterpret_cast(item); + dt->set(val->val); + } + friend int cmp_longlong(void *cmp_arg, packed_longlong *a,packed_longlong *b); +}; + + +class in_double :public in_vector +{ + double tmp; +public: + in_double(uint elements); + void set(uint pos,Item *item); + uchar *get_value(Item *item); + Item *create_item() + { + return new Item_float(0.0, 0); + } + void value_to_item(uint pos, Item *item) + { + ((Item_float*)item)->value= ((double*) base)[pos]; + } + Item_result result_type() { return REAL_RESULT; } +}; + + +class in_decimal :public in_vector +{ + my_decimal val; +public: + in_decimal(uint elements); + void set(uint pos, Item *item); + uchar *get_value(Item *item); + Item *create_item() + { + return new Item_decimal(0, FALSE); + } + void value_to_item(uint pos, Item *item) + { + my_decimal *dec= ((my_decimal *)base) + pos; + Item_decimal *item_dec= (Item_decimal*)item; + item_dec->set_decimal_value(dec); + } + Item_result result_type() { return DECIMAL_RESULT; } + +}; + + +/* +** Classes for easy comparing of non const items +*/ + +class cmp_item :public Sql_alloc +{ +public: + CHARSET_INFO *cmp_charset; + cmp_item() { cmp_charset= &my_charset_bin; } + virtual ~cmp_item() {} + virtual void store_value(Item *item)= 0; + virtual int cmp(Item *item)= 0; + // for optimized IN with row + virtual int compare(cmp_item *item)= 0; + static cmp_item* get_comparator(Item_result type, Item * warn_item, + CHARSET_INFO *cs); + virtual cmp_item *make_same()= 0; + virtual void store_value_by_template(cmp_item *tmpl, Item *item) + { + store_value(item); + } +}; + +class cmp_item_string :public cmp_item +{ +protected: + String *value_res; +public: + cmp_item_string () {} + cmp_item_string (CHARSET_INFO *cs) { cmp_charset= cs; } + void set_charset(CHARSET_INFO *cs) { cmp_charset= cs; } + friend class cmp_item_sort_string; + friend class cmp_item_sort_string_in_static; +}; + +class cmp_item_sort_string :public cmp_item_string +{ +protected: + char value_buff[STRING_BUFFER_USUAL_SIZE]; + String value; +public: + cmp_item_sort_string(): + cmp_item_string() {} + cmp_item_sort_string(CHARSET_INFO *cs): + cmp_item_string(cs), + value(value_buff, sizeof(value_buff), cs) {} + void store_value(Item *item) + { + value_res= item->val_str(&value); + } + int cmp(Item *arg) + { + char buff[STRING_BUFFER_USUAL_SIZE]; + String tmp(buff, sizeof(buff), cmp_charset), *res; + res= arg->val_str(&tmp); + return (value_res ? (res ? sortcmp(value_res, res, cmp_charset) : 1) : + (res ? -1 : 0)); + } + int compare(cmp_item *ci) + { + cmp_item_string *l_cmp= (cmp_item_string *) ci; + return sortcmp(value_res, l_cmp->value_res, cmp_charset); + } + cmp_item *make_same(); + void set_charset(CHARSET_INFO *cs) + { + cmp_charset= cs; + value.set_quick(value_buff, sizeof(value_buff), cs); + } +}; + +class cmp_item_int :public cmp_item +{ + longlong value; +public: + cmp_item_int() {} /* Remove gcc warning */ + void store_value(Item *item) + { + value= item->val_int(); + } + int cmp(Item *arg) + { + return value != arg->val_int(); + } + int compare(cmp_item *ci) + { + cmp_item_int *l_cmp= (cmp_item_int *)ci; + return (value < l_cmp->value) ? -1 : ((value == l_cmp->value) ? 0 : 1); + } + cmp_item *make_same(); +}; + +/* + Compare items in the DATETIME context. + Values are obtained with help of the get_datetime_value() function. + If the left item is a constant one then its value is cached in the + lval_cache variable. +*/ +class cmp_item_datetime :public cmp_item +{ + longlong value; +public: + /* Item used for issuing warnings. */ + Item *warn_item; + /* Cache for the left item. */ + Item *lval_cache; + + cmp_item_datetime(Item *warn_item_arg) + : warn_item(warn_item_arg), lval_cache(0) {} + void store_value(Item *item); + int cmp(Item *arg); + int compare(cmp_item *ci); + cmp_item *make_same(); +}; + +class cmp_item_real :public cmp_item +{ + double value; +public: + cmp_item_real() {} /* Remove gcc warning */ + void store_value(Item *item) + { + value= item->val_real(); + } + int cmp(Item *arg) + { + return value != arg->val_real(); + } + int compare(cmp_item *ci) + { + cmp_item_real *l_cmp= (cmp_item_real *) ci; + return (value < l_cmp->value)? -1 : ((value == l_cmp->value) ? 0 : 1); + } + cmp_item *make_same(); +}; + + +class cmp_item_decimal :public cmp_item +{ + my_decimal value; +public: + cmp_item_decimal() {} /* Remove gcc warning */ + void store_value(Item *item); + int cmp(Item *arg); + int compare(cmp_item *c); + cmp_item *make_same(); +}; + + +/* + cmp_item for optimized IN with row (right part string, which never + be changed) +*/ + +class cmp_item_sort_string_in_static :public cmp_item_string +{ + protected: + String value; +public: + cmp_item_sort_string_in_static(CHARSET_INFO *cs): + cmp_item_string(cs) {} + void store_value(Item *item) + { + value_res= item->val_str(&value); + } + int cmp(Item *item) + { + // Should never be called + DBUG_ASSERT(0); + return 1; + } + int compare(cmp_item *ci) + { + cmp_item_string *l_cmp= (cmp_item_string *) ci; + return sortcmp(value_res, l_cmp->value_res, cmp_charset); + } + cmp_item *make_same() + { + return new cmp_item_sort_string_in_static(cmp_charset); + } +}; + + +/* + The class Item_func_case is the CASE ... WHEN ... THEN ... END function + implementation. + + When there is no expression between CASE and the first WHEN + (the CASE expression) then this function simple checks all WHEN expressions + one after another. When some WHEN expression evaluated to TRUE then the + value of the corresponding THEN expression is returned. + + When the CASE expression is specified then it is compared to each WHEN + expression individually. When an equal WHEN expression is found + corresponding THEN expression is returned. + In order to do correct comparisons several comparators are used. One for + each result type. Different result types that are used in particular + CASE ... END expression are collected in the fix_length_and_dec() member + function and only comparators for there result types are used. +*/ + +class Item_func_case :public Item_func_hybrid_field_type +{ + int first_expr_num, else_expr_num; + enum Item_result left_result_type; + String tmp_value; + uint ncases; + Item_result cmp_type; + DTCollation cmp_collation; + cmp_item *cmp_items[6]; /* For all result types */ + cmp_item *case_item; +public: + Item_func_case(List &list, Item *first_expr_arg, Item *else_expr_arg) + :Item_func_hybrid_field_type(), first_expr_num(-1), else_expr_num(-1), + left_result_type(INT_RESULT), case_item(0) + { + ncases= list.elements; + if (first_expr_arg) + { + first_expr_num= list.elements; + list.push_back(first_expr_arg); + } + if (else_expr_arg) + { + else_expr_num= list.elements; + list.push_back(else_expr_arg); + } + set_arguments(list); + bzero(&cmp_items, sizeof(cmp_items)); + } + double real_op(); + longlong int_op(); + String *str_op(String *); + my_decimal *decimal_op(my_decimal *); + bool date_op(MYSQL_TIME *ltime, uint fuzzydate); + bool fix_fields(THD *thd, Item **ref); + void fix_length_and_dec(); + uint decimal_precision() const; + table_map not_null_tables() const { return 0; } + const char *func_name() const { return "case"; } + virtual void print(String *str, enum_query_type query_type); + Item *find_item(String *str); + CHARSET_INFO *compare_collation() { return cmp_collation.collation; } + void cleanup(); +}; + +/* + The Item_func_in class implements the in_expr IN(values_list) function. + + The current implementation distinguishes 2 cases: + 1) all items in the value_list are constants and have the same + result type. This case is handled by in_vector class. + 2) items in the value_list have different result types or there is some + non-constant items. + In this case Item_func_in employs several cmp_item objects to performs + comparisons of in_expr and an item from the values_list. One cmp_item + object for each result type. Different result types are collected in the + fix_length_and_dec() member function by means of collect_cmp_types() + function. +*/ +class Item_func_in :public Item_func_opt_neg +{ +public: + /* + an array of values when the right hand arguments of IN + are all SQL constant and there are no nulls + */ + in_vector *array; + bool have_null; + /* + true when all arguments of the IN clause are of compatible types + and can be used safely as comparisons for key conditions + */ + bool arg_types_compatible; + Item_result left_result_type; + cmp_item *cmp_items[6]; /* One cmp_item for each result type */ + DTCollation cmp_collation; + + Item_func_in(List &list) + :Item_func_opt_neg(list), array(0), have_null(0), + arg_types_compatible(FALSE) + { + bzero(&cmp_items, sizeof(cmp_items)); + allowed_arg_cols= 0; // Fetch this value from first argument + sargable= TRUE; + } + longlong val_int(); + bool fix_fields(THD *, Item **); + void fix_length_and_dec(); + uint decimal_precision() const { return 1; } + void cleanup() + { + uint i; + DBUG_ENTER("Item_func_in::cleanup"); + Item_int_func::cleanup(); + delete array; + array= 0; + for (i= 0; i <= (uint)TIME_RESULT; i++) + { + delete cmp_items[i]; + cmp_items[i]= 0; + } + DBUG_VOID_RETURN; + } + optimize_type select_optimize() const + { return OPTIMIZE_KEY; } + virtual void print(String *str, enum_query_type query_type); + enum Functype functype() const { return IN_FUNC; } + const char *func_name() const { return " IN "; } + bool nulls_in_row(); + bool is_bool_func() { return 1; } + CHARSET_INFO *compare_collation() { return cmp_collation.collation; } + bool eval_not_null_tables(uchar *opt_arg); + void fix_after_pullout(st_select_lex *new_parent, Item **ref); +}; + +class cmp_item_row :public cmp_item +{ + cmp_item **comparators; + uint n; +public: + cmp_item_row(): comparators(0), n(0) {} + ~cmp_item_row(); + void store_value(Item *item); + inline void alloc_comparators(); + int cmp(Item *arg); + int compare(cmp_item *arg); + cmp_item *make_same(); + void store_value_by_template(cmp_item *tmpl, Item *); + friend void Item_func_in::fix_length_and_dec(); +}; + + +class in_row :public in_vector +{ + cmp_item_row tmp; +public: + in_row(uint elements, Item *); + ~in_row(); + void set(uint pos,Item *item); + uchar *get_value(Item *item); + friend void Item_func_in::fix_length_and_dec(); + Item_result result_type() { return ROW_RESULT; } +}; + +/* Functions used by where clause */ + +class Item_func_isnull :public Item_bool_func +{ +public: + Item_func_isnull(Item *a) :Item_bool_func(a) { sargable= TRUE; } + longlong val_int(); + enum Functype functype() const { return ISNULL_FUNC; } + void fix_length_and_dec() + { + decimals=0; max_length=1; maybe_null=0; + update_used_tables(); + } + const char *func_name() const { return "isnull"; } + /* Optimize case of not_null_column IS NULL */ + virtual void update_used_tables() + { + if (!args[0]->maybe_null) + { + used_tables_cache= 0; /* is always false */ + const_item_cache= 1; + } + else + { + args[0]->update_used_tables(); + used_tables_cache= args[0]->used_tables(); + const_item_cache= args[0]->const_item(); + } + } + virtual void print(String *str, enum_query_type query_type); + table_map not_null_tables() const { return 0; } + optimize_type select_optimize() const { return OPTIMIZE_NULL; } + Item *neg_transformer(THD *thd); + CHARSET_INFO *compare_collation() { return args[0]->collation.collation; } +}; + +/* Functions used by HAVING for rewriting IN subquery */ + +class Item_in_subselect; + +/* + This is like IS NOT NULL but it also remembers if it ever has + encountered a NULL. +*/ +class Item_is_not_null_test :public Item_func_isnull +{ + Item_in_subselect* owner; +public: + Item_is_not_null_test(Item_in_subselect* ow, Item *a) + :Item_func_isnull(a), owner(ow) + {} + enum Functype functype() const { return ISNOTNULLTEST_FUNC; } + longlong val_int(); + const char *func_name() const { return ""; } + void update_used_tables(); + /* + we add RAND_TABLE_BIT to prevent moving this item from HAVING to WHERE + */ + table_map used_tables() const + { return used_tables_cache | RAND_TABLE_BIT; } + bool const_item() const { return FALSE; } +}; + + +class Item_func_isnotnull :public Item_bool_func +{ + bool abort_on_null; +public: + Item_func_isnotnull(Item *a) :Item_bool_func(a), abort_on_null(0) + { sargable= TRUE; } + longlong val_int(); + enum Functype functype() const { return ISNOTNULL_FUNC; } + void fix_length_and_dec() + { + decimals=0; max_length=1; maybe_null=0; + } + const char *func_name() const { return "isnotnull"; } + optimize_type select_optimize() const { return OPTIMIZE_NULL; } + table_map not_null_tables() const + { return abort_on_null ? not_null_tables_cache : 0; } + Item *neg_transformer(THD *thd); + virtual void print(String *str, enum_query_type query_type); + CHARSET_INFO *compare_collation() { return args[0]->collation.collation; } + void top_level_item() { abort_on_null=1; } +}; + + +class Item_func_like :public Item_bool_func2 +{ + // Turbo Boyer-Moore data + bool canDoTurboBM; // pattern is '%abcd%' case + const char* pattern; + int pattern_len; + + // TurboBM buffers, *this is owner + int* bmGs; // good suffix shift table, size is pattern_len + 1 + int* bmBc; // bad character shift table, size is alphabet_size + + void turboBM_compute_suffixes(int* suff); + void turboBM_compute_good_suffix_shifts(int* suff); + void turboBM_compute_bad_character_shifts(); + bool turboBM_matches(const char* text, int text_len) const; + enum { alphabet_size = 256 }; + + Item *escape_item; + + bool escape_used_in_parsing; + +public: + int escape; + + Item_func_like(Item *a,Item *b, Item *escape_arg, bool escape_used) + :Item_bool_func2(a,b), canDoTurboBM(FALSE), pattern(0), pattern_len(0), + bmGs(0), bmBc(0), escape_item(escape_arg), + escape_used_in_parsing(escape_used) {} + longlong val_int(); + enum Functype functype() const { return LIKE_FUNC; } + optimize_type select_optimize() const; + cond_result eq_cmp_result() const { return COND_TRUE; } + const char *func_name() const { return "like"; } + bool fix_fields(THD *thd, Item **ref); + void cleanup(); +}; + + +class Item_func_regex :public Item_bool_func +{ + my_regex_t preg; + bool regex_compiled; + bool regex_is_const; + String prev_regexp; + DTCollation cmp_collation; + CHARSET_INFO *regex_lib_charset; + int regex_lib_flags; + String conv; + int regcomp(bool send_error); +public: + Item_func_regex(Item *a,Item *b) :Item_bool_func(a,b), + regex_compiled(0),regex_is_const(0) {} + void cleanup(); + longlong val_int(); + bool fix_fields(THD *thd, Item **ref); + const char *func_name() const { return "regexp"; } + + virtual inline void print(String *str, enum_query_type query_type) + { + print_op(str, query_type); + } + + CHARSET_INFO *compare_collation() { return cmp_collation.collation; } +}; + + +typedef class Item COND; + +class Item_cond :public Item_bool_func +{ +protected: + List list; + bool abort_on_null; + table_map and_tables_cache; + +public: + /* Item_cond() is only used to create top level items */ + Item_cond(): Item_bool_func(), abort_on_null(1) + { const_item_cache=0; } + Item_cond(Item *i1,Item *i2) + :Item_bool_func(), abort_on_null(0) + { + list.push_back(i1); + list.push_back(i2); + } + Item_cond(THD *thd, Item_cond *item); + Item_cond(List &nlist) + :Item_bool_func(), list(nlist), abort_on_null(0) {} + bool add(Item *item) + { + DBUG_ASSERT(item); + return list.push_back(item); + } + bool add_at_head(Item *item) + { + DBUG_ASSERT(item); + return list.push_front(item); + } + void add_at_head(List *nlist) + { + DBUG_ASSERT(nlist->elements); + list.prepand(nlist); + } + void add_at_end(List *nlist) + { + DBUG_ASSERT(nlist->elements); + list.concat(nlist); + } + bool fix_fields(THD *, Item **ref); + void fix_after_pullout(st_select_lex *new_parent, Item **ref); + + enum Type type() const { return COND_ITEM; } + List* argument_list() { return &list; } + table_map used_tables() const; + void update_used_tables(); + virtual void print(String *str, enum_query_type query_type); + void split_sum_func(THD *thd, Item **ref_pointer_array, List &fields); + friend int setup_conds(THD *thd, TABLE_LIST *tables, TABLE_LIST *leaves, + COND **conds); + void top_level_item() { abort_on_null=1; } + bool top_level() { return abort_on_null; } + void copy_andor_arguments(THD *thd, Item_cond *item); + bool walk(Item_processor processor, bool walk_subquery, uchar *arg); + Item *transform(Item_transformer transformer, uchar *arg); + void traverse_cond(Cond_traverser, void *arg, traverse_order order); + void neg_arguments(THD *thd); + enum_field_types field_type() const { return MYSQL_TYPE_LONGLONG; } + bool subst_argument_checker(uchar **arg) { return TRUE; } + Item *compile(Item_analyzer analyzer, uchar **arg_p, + Item_transformer transformer, uchar *arg_t); + bool eval_not_null_tables(uchar *opt_arg); +}; + +template class LI, class T> class Item_equal_iterator; + +/* + The class Item_equal is used to represent conjunctions of equality + predicates of the form field1 = field2, and field=const in where + conditions and on expressions. + + All equality predicates of the form field1=field2 contained in a + conjunction are substituted for a sequence of items of this class. + An item of this class Item_equal(f1,f2,...fk) represents a + multiple equality f1=f2=...=fk. + + If a conjunction contains predicates f1=f2 and f2=f3, a new item of + this class is created Item_equal(f1,f2,f3) representing the multiple + equality f1=f2=f3 that substitutes the above equality predicates in + the conjunction. + A conjunction of the predicates f2=f1 and f3=f1 and f3=f2 will be + substituted for the item representing the same multiple equality + f1=f2=f3. + An item Item_equal(f1,f2) can appear instead of a conjunction of + f2=f1 and f1=f2, or instead of just the predicate f1=f2. + + An item of the class Item_equal inherits equalities from outer + conjunctive levels. + + Suppose we have a where condition of the following form: + WHERE f1=f2 AND f3=f4 AND f3=f5 AND ... AND (...OR (f1=f3 AND ...)). + In this case: + f1=f2 will be substituted for Item_equal(f1,f2); + f3=f4 and f3=f5 will be substituted for Item_equal(f3,f4,f5); + f1=f3 will be substituted for Item_equal(f1,f2,f3,f4,f5); + + An object of the class Item_equal can contain an optional constant + item c. Then it represents a multiple equality of the form + c=f1=...=fk. + + Objects of the class Item_equal are used for the following: + + 1. An object Item_equal(t1.f1,...,tk.fk) allows us to consider any + pair of tables ti and tj as joined by an equi-condition. + Thus it provide us with additional access paths from table to table. + + 2. An object Item_equal(t1.f1,...,tk.fk) is applied to deduce new + SARGable predicates: + f1=...=fk AND P(fi) => f1=...=fk AND P(fi) AND P(fj). + It also can give us additional index scans and can allow us to + improve selectivity estimates. + + 3. An object Item_equal(t1.f1,...,tk.fk) is used to optimize the + selected execution plan for the query: if table ti is accessed + before the table tj then in any predicate P in the where condition + the occurrence of tj.fj is substituted for ti.fi. This can allow + an evaluation of the predicate at an earlier step. + + When feature 1 is supported they say that join transitive closure + is employed. + When feature 2 is supported they say that search argument transitive + closure is employed. + Both features are usually supported by preprocessing original query and + adding additional predicates. + We do not just add predicates, we rather dynamically replace some + predicates that can not be used to access tables in the investigated + plan for those, obtained by substitution of some fields for equal fields, + that can be used. + + Prepared Statements/Stored Procedures note: instances of class + Item_equal are created only at the time a PS/SP is executed and + are deleted in the end of execution. All changes made to these + objects need not be registered in the list of changes of the parse + tree and do not harm PS/SP re-execution. + + Item equal objects are employed only at the optimize phase. Usually they are + not supposed to be evaluated. Yet in some cases we call the method val_int() + for them. We have to take care of restricting the predicate such an + object represents f1=f2= ...=fn to the projection of known fields fi1=...=fik. +*/ + +class Item_equal: public Item_bool_func +{ + /* + The list of equal items. Currently the list can contain: + - Item_fields items for references to table columns + - Item_direct_view_ref items for references to view columns + - one const item + + If the list contains a constant item this item is always first in the list. + The list contains at least two elements. + Currently all Item_fields/Item_direct_view_ref items in the list should + refer to table columns with equavalent type definitions. In particular + if these are string columns they should have the same charset/collation. + + Use objects of the companion class Item_equal_fields_iterator to iterate + over all items from the list of the Item_field/Item_direct_view_ref classes. + */ + List equal_items; + /* + TRUE <-> one of the items is a const item. + Such item is always first in in the equal_items list + */ + bool with_const; + /* + The field eval_item is used when this item is evaluated + with the method val_int() + */ + cmp_item *eval_item; + /* + This initially is set to FALSE. It becomes TRUE when this item is evaluated + as being always false. If the flag is TRUE the contents of the list + the equal_items should be ignored. + */ + bool cond_false; + /* + This initially is set to FALSE. It becomes TRUE when this item is evaluated + as being always true. If the flag is TRUE the contents of the list + the equal_items should be ignored. + */ + bool cond_true; + /* + compare_as_dates=TRUE <-> constants equal to fields from equal_items + must be compared as datetimes and not as strings. + compare_as_dates can be TRUE only if with_const=TRUE + */ + bool compare_as_dates; + /* + The comparator used to compare constants equal to fields from equal_items + as datetimes. The comparator is used only if compare_as_dates=TRUE + */ + Arg_comparator cmp; + + /* + For Item_equal objects inside an OR clause: one of the fields that were + used in the original equality. + */ + Item_field *context_field; + +public: + + COND_EQUAL *upper_levels; /* multiple equalities of upper and levels */ + + inline Item_equal() + : Item_bool_func(), with_const(FALSE), eval_item(0), cond_false(0), + context_field(NULL) + { const_item_cache=0; sargable= TRUE; } + Item_equal(Item *f1, Item *f2, bool with_const_item); + Item_equal(Item_equal *item_equal); + /* Currently the const item is always the first in the list of equal items */ + inline Item* get_const() { return with_const ? equal_items.head() : NULL; } + void add_const(Item *c, Item *f = NULL); + /** Add a non-constant item to the multiple equality */ + void add(Item *f) { equal_items.push_back(f); } + bool contains(Field *field); + Item* get_first(struct st_join_table *context, Item *field); + /** Get number of field items / references to field items in this object */ + uint n_field_items() { return equal_items.elements-test(with_const); } + void merge(Item_equal *item); + bool merge_with_check(Item_equal *equal_item, bool save_merged); + void merge_into_list(List *list, bool save_merged, + bool only_intersected); + void update_const(); + enum Functype functype() const { return MULT_EQUAL_FUNC; } + longlong val_int(); + const char *func_name() const { return "multiple equal"; } + optimize_type select_optimize() const { return OPTIMIZE_EQUAL; } + void sort(Item_field_cmpfunc compare, void *arg); + void fix_length_and_dec(); + bool fix_fields(THD *thd, Item **ref); + void update_used_tables(); + bool walk(Item_processor processor, bool walk_subquery, uchar *arg); + Item *transform(Item_transformer transformer, uchar *arg); + virtual void print(String *str, enum_query_type query_type); + CHARSET_INFO *compare_collation(); + + void set_context_field(Item_field *ctx_field) { context_field= ctx_field; } + bool count_sargable_conds(uchar *arg); + friend class Item_equal_iterator; + friend class Item_equal_iterator; + friend Item *eliminate_item_equal(COND *cond, COND_EQUAL *upper_levels, + Item_equal *item_equal); + friend bool setup_sj_materialization_part1(struct st_join_table *tab); + friend bool setup_sj_materialization_part2(struct st_join_table *tab); +}; + +class COND_EQUAL: public Sql_alloc +{ +public: + uint max_members; /* max number of members the current level + list and all lower level lists */ + COND_EQUAL *upper_levels; /* multiple equalities of upper and levels */ + List current_level; /* list of multiple equalities of + the current and level */ + COND_EQUAL() + { + upper_levels= 0; + } + void copy(COND_EQUAL &cond_equal) + { + max_members= cond_equal.max_members; + upper_levels= cond_equal.upper_levels; + if (cond_equal.current_level.is_empty()) + current_level.empty(); + else + current_level= cond_equal.current_level; + } +}; + + +/* + The template Item_equal_iterator is used to define classes + Item_equal_fields_iterator and Item_equal_fields_iterator_slow. + These are helper classes for the class Item equal + Both classes are used to iterate over references to table/view columns + from the list of equal items that included in an Item_equal object. + The second class supports the operation of removal of the current member + from the list when performing an iteration. +*/ + +template class LI, typename T> class Item_equal_iterator + : public LI +{ +protected: + Item_equal *item_equal; + Item *curr_item; +public: + Item_equal_iterator(Item_equal &item_eq) + :LI (item_eq.equal_items) + { + curr_item= NULL; + item_equal= &item_eq; + if (item_eq.with_const) + { + LI *list_it= this; + curr_item= (*list_it)++; + } + } + Item* operator++(int) + { + LI *list_it= this; + curr_item= (*list_it)++; + return curr_item; + } + void rewind(void) + { + LI *list_it= this; + list_it->rewind(); + if (item_equal->with_const) + curr_item= (*list_it)++; + } + Field *get_curr_field() + { + Item_field *item= (Item_field *) (curr_item->real_item()); + return item->field; + } +}; + +typedef Item_equal_iterator Item_equal_iterator_fast; + +class Item_equal_fields_iterator + :public Item_equal_iterator_fast +{ +public: + Item_equal_fields_iterator(Item_equal &item_eq) + :Item_equal_iterator_fast(item_eq) + { } + Item ** ref() + { + return List_iterator_fast::ref(); + } +}; + +typedef Item_equal_iterator Item_equal_iterator_iterator_slow; + +class Item_equal_fields_iterator_slow + :public Item_equal_iterator_iterator_slow +{ +public: + Item_equal_fields_iterator_slow(Item_equal &item_eq) + :Item_equal_iterator_iterator_slow(item_eq) + { } + void remove() + { + List_iterator::remove(); + } +}; + + +class Item_cond_and :public Item_cond +{ +public: + COND_EQUAL cond_equal; /* contains list of Item_equal objects for + the current and level and reference + to multiple equalities of upper and levels */ + Item_cond_and() :Item_cond() {} + Item_cond_and(Item *i1,Item *i2) :Item_cond(i1,i2) {} + Item_cond_and(THD *thd, Item_cond_and *item) :Item_cond(thd, item) {} + Item_cond_and(List &list_arg): Item_cond(list_arg) {} + enum Functype functype() const { return COND_AND_FUNC; } + longlong val_int(); + const char *func_name() const { return "and"; } + table_map not_null_tables() const + { return abort_on_null ? not_null_tables_cache: and_tables_cache; } + Item* copy_andor_structure(THD *thd) + { + Item_cond_and *item; + if ((item= new Item_cond_and(thd, this))) + item->copy_andor_arguments(thd, this); + return item; + } + Item *neg_transformer(THD *thd); + void mark_as_condition_AND_part(TABLE_LIST *embedding); +}; + +inline bool is_cond_and(Item *item) +{ + if (item->type() != Item::COND_ITEM) + return FALSE; + + Item_cond *cond_item= (Item_cond*) item; + return (cond_item->functype() == Item_func::COND_AND_FUNC); +} + +class Item_cond_or :public Item_cond +{ +public: + Item_cond_or() :Item_cond() {} + Item_cond_or(Item *i1,Item *i2) :Item_cond(i1,i2) {} + Item_cond_or(THD *thd, Item_cond_or *item) :Item_cond(thd, item) {} + Item_cond_or(List &list_arg): Item_cond(list_arg) {} + enum Functype functype() const { return COND_OR_FUNC; } + longlong val_int(); + const char *func_name() const { return "or"; } + table_map not_null_tables() const { return and_tables_cache; } + Item* copy_andor_structure(THD *thd) + { + Item_cond_or *item; + if ((item= new Item_cond_or(thd, this))) + item->copy_andor_arguments(thd, this); + return item; + } + Item *neg_transformer(THD *thd); +}; + +class Item_func_dyncol_exists :public Item_bool_func +{ +public: + Item_func_dyncol_exists(Item *str, Item *num) :Item_bool_func(str, num) {} + longlong val_int(); + const char *func_name() const { return "column_exists"; } +}; + +inline bool is_cond_or(Item *item) +{ + if (item->type() != Item::COND_ITEM) + return FALSE; + + Item_cond *cond_item= (Item_cond*) item; + return (cond_item->functype() == Item_func::COND_OR_FUNC); +} + +/* Some useful inline functions */ + +inline Item *and_conds(Item *a, Item *b) +{ + if (!b) return a; + if (!a) return b; + return new Item_cond_and(a, b); +} + + +Item *and_expressions(Item *a, Item *b, Item **org_item); + +longlong get_datetime_value(THD *thd, Item ***item_arg, Item **cache_arg, + Item *warn_item, bool *is_null); + + +bool get_mysql_time_from_str(THD *thd, String *str, timestamp_type warn_type, + const char *warn_name, MYSQL_TIME *l_time); + +/* + These need definitions from this file but the variables are defined + in mysqld.h. The variables really belong in this component, but for + the time being we leave them in mysqld.cc to avoid merge problems. +*/ +extern Eq_creator eq_creator; +extern Ne_creator ne_creator; +extern Gt_creator gt_creator; +extern Lt_creator lt_creator; +extern Ge_creator ge_creator; +extern Le_creator le_creator; + +#endif /* ITEM_CMPFUNC_INCLUDED */ + diff --git a/database/include/mysql/private/item_create.h b/database/include/mysql/private/item_create.h new file mode 100644 index 0000000..c0e45f5 --- /dev/null +++ b/database/include/mysql/private/item_create.h @@ -0,0 +1,184 @@ +/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. + Copyright (c) 2008-2011 Monty Program Ab + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* Functions to create an item. Used by sql/sql_yacc.yy */ + +#ifndef ITEM_CREATE_H +#define ITEM_CREATE_H + +typedef struct st_udf_func udf_func; + +/** + Public function builder interface. + The parser (sql/sql_yacc.yy) uses a factory / builder pattern to + construct an Item object for each function call. + All the concrete function builders implements this interface, + either directly or indirectly with some adapter helpers. + Keeping the function creation separated from the bison grammar allows + to simplify the parser, and avoid the need to introduce a new token + for each function, which has undesirable side effects in the grammar. +*/ + +class Create_func +{ +public: + /** + The builder create method. + Given the function name and list or arguments, this method creates + an Item that represents the function call. + In case or errors, a NULL item is returned, and an error is reported. + Note that the thd object may be modified by the builder. + In particular, the following members/methods can be set/called, + depending on the function called and the function possible side effects. +
    +
  • thd->lex->binlog_row_based_if_mixed
  • +
  • thd->lex->current_context()
  • +
  • thd->lex->safe_to_cache_query
  • +
  • thd->lex->uncacheable(UNCACHEABLE_SIDEEFFECT)
  • +
  • thd->lex->uncacheable(UNCACHEABLE_RAND)
  • +
  • thd->lex->add_time_zone_tables_to_query_tables(thd)
  • +
+ @param thd The current thread + @param name The function name + @param item_list The list of arguments to the function, can be NULL + @return An item representing the parsed function call, or NULL + */ + virtual Item *create_func(THD *thd, LEX_STRING name, List *item_list) = 0; + +protected: + /** Constructor */ + Create_func() {} + /** Destructor */ + virtual ~Create_func() {} +}; + + +/** + Function builder for qualified functions. + This builder is used with functions call using a qualified function name + syntax, as in db.func(expr, expr, ...). +*/ + +class Create_qfunc : public Create_func +{ +public: + /** + The builder create method, for unqualified functions. + This builder will use the current database for the database name. + @param thd The current thread + @param name The function name + @param item_list The list of arguments to the function, can be NULL + @return An item representing the parsed function call + */ + virtual Item *create_func(THD *thd, LEX_STRING name, List *item_list); + + /** + The builder create method, for qualified functions. + @param thd The current thread + @param db The database name + @param name The function name + @param use_explicit_name Should the function be represented as 'db.name'? + @param item_list The list of arguments to the function, can be NULL + @return An item representing the parsed function call + */ + virtual Item *create_with_db(THD *thd, LEX_STRING db, LEX_STRING name, + bool use_explicit_name, + List *item_list) = 0; + +protected: + /** Constructor. */ + Create_qfunc() {} + /** Destructor. */ + virtual ~Create_qfunc() {} +}; + + +/** + Find the native function builder associated with a given function name. + @param thd The current thread + @param name The native function name + @return The native function builder associated with the name, or NULL +*/ +extern Create_func * find_native_function_builder(THD *thd, LEX_STRING name); + + +/** + Find the function builder for qualified functions. + @param thd The current thread + @return A function builder for qualified functions +*/ +extern Create_qfunc * find_qualified_function_builder(THD *thd); + + +#ifdef HAVE_DLOPEN +/** + Function builder for User Defined Functions. +*/ + +class Create_udf_func : public Create_func +{ +public: + virtual Item *create_func(THD *thd, LEX_STRING name, List *item_list); + + /** + The builder create method, for User Defined Functions. + @param thd The current thread + @param fct The User Defined Function metadata + @param item_list The list of arguments to the function, can be NULL + @return An item representing the parsed function call + */ + Item *create(THD *thd, udf_func *fct, List *item_list); + + /** Singleton. */ + static Create_udf_func s_singleton; + +protected: + /** Constructor. */ + Create_udf_func() {} + /** Destructor. */ + virtual ~Create_udf_func() {} +}; +#endif + + +/** + Builder for cast expressions. + @param thd The current thread + @param a The item to cast + @param cast_type the type casted into + @param len TODO + @param dec TODO + @param cs The character set +*/ +Item * +create_func_cast(THD *thd, Item *a, Cast_target cast_type, + const char *len, const char *dec, + CHARSET_INFO *cs); + + +int item_create_init(); +void item_create_cleanup(); + +Item *create_func_dyncol_create(THD *thd, List &list); +Item *create_func_dyncol_add(THD *thd, Item *str, + List &list); +Item *create_func_dyncol_delete(THD *thd, Item *str, List &nums); +Item *create_func_dyncol_get(THD *thd, Item *num, Item *str, + Cast_target cast_type, + const char *c_len, const char *c_dec, + CHARSET_INFO *cs); +#endif + diff --git a/database/include/mysql/private/item_func.h b/database/include/mysql/private/item_func.h new file mode 100644 index 0000000..5527631 --- /dev/null +++ b/database/include/mysql/private/item_func.h @@ -0,0 +1,2200 @@ +#ifndef ITEM_FUNC_INCLUDED +#define ITEM_FUNC_INCLUDED +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. + Copyright (c) 2009, 2016, MariaDB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + + +/* Function items used by mysql */ + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif + +#ifdef HAVE_IEEEFP_H +extern "C" /* Bug in BSDI include file */ +{ +#include +} +#endif + +class Item_func :public Item_result_field +{ +protected: + Item **args, *tmp_arg[2]; + /* + Allowed numbers of columns in result (usually 1, which means scalar value) + 0 means get this number from first argument + */ + uint allowed_arg_cols; + String *val_str_from_val_str_ascii(String *str, String *str2); + + void count_only_length(Item **item, uint nitems); + void count_real_length(Item **item, uint nitems); + void count_decimal_length(Item **item, uint nitems); + void count_datetime_length(Item **item, uint nitems); + bool count_string_result_length(enum_field_types field_type, + Item **item, uint nitems); +public: + uint arg_count; + table_map used_tables_cache, not_null_tables_cache; + bool const_item_cache; + enum Functype { UNKNOWN_FUNC,EQ_FUNC,EQUAL_FUNC,NE_FUNC,LT_FUNC,LE_FUNC, + GE_FUNC,GT_FUNC,FT_FUNC, + LIKE_FUNC,ISNULL_FUNC,ISNOTNULL_FUNC, + COND_AND_FUNC, COND_OR_FUNC, XOR_FUNC, + BETWEEN, IN_FUNC, MULT_EQUAL_FUNC, + INTERVAL_FUNC, ISNOTNULLTEST_FUNC, + SP_EQUALS_FUNC, SP_DISJOINT_FUNC,SP_INTERSECTS_FUNC, + SP_TOUCHES_FUNC,SP_CROSSES_FUNC,SP_WITHIN_FUNC, + SP_CONTAINS_FUNC,SP_OVERLAPS_FUNC, + SP_STARTPOINT,SP_ENDPOINT,SP_EXTERIORRING, + SP_POINTN,SP_GEOMETRYN,SP_INTERIORRINGN, + NOT_FUNC, NOT_ALL_FUNC, + NOW_FUNC, TRIG_COND_FUNC, + SUSERVAR_FUNC, GUSERVAR_FUNC, COLLATE_FUNC, + EXTRACT_FUNC, CHAR_TYPECAST_FUNC, FUNC_SP, UDF_FUNC, + NEG_FUNC, GSYSVAR_FUNC, IN_OPTIMIZER_FUNC }; + enum optimize_type { OPTIMIZE_NONE,OPTIMIZE_KEY,OPTIMIZE_OP, OPTIMIZE_NULL, + OPTIMIZE_EQUAL }; + enum Type type() const { return FUNC_ITEM; } + virtual enum Functype functype() const { return UNKNOWN_FUNC; } + Item_func(void): + allowed_arg_cols(1), arg_count(0) + { + with_sum_func= 0; + with_field= 0; + } + Item_func(Item *a): + allowed_arg_cols(1), arg_count(1) + { + args= tmp_arg; + args[0]= a; + with_sum_func= a->with_sum_func; + with_param= a->with_param; + with_field= a->with_field; + } + Item_func(Item *a,Item *b): + allowed_arg_cols(1), arg_count(2) + { + args= tmp_arg; + args[0]= a; args[1]= b; + with_sum_func= a->with_sum_func || b->with_sum_func; + with_param= a->with_param || b->with_param; + with_field= a->with_field || b->with_field; + } + Item_func(Item *a,Item *b,Item *c): + allowed_arg_cols(1) + { + arg_count= 0; + if ((args= (Item**) sql_alloc(sizeof(Item*)*3))) + { + arg_count= 3; + args[0]= a; args[1]= b; args[2]= c; + with_sum_func= a->with_sum_func || b->with_sum_func || c->with_sum_func; + with_param= a->with_param || b->with_param || c->with_param; + with_field= a->with_field || b->with_field || c->with_field; + } + } + Item_func(Item *a,Item *b,Item *c,Item *d): + allowed_arg_cols(1) + { + arg_count= 0; + if ((args= (Item**) sql_alloc(sizeof(Item*)*4))) + { + arg_count= 4; + args[0]= a; args[1]= b; args[2]= c; args[3]= d; + with_sum_func= a->with_sum_func || b->with_sum_func || + c->with_sum_func || d->with_sum_func; + with_param= a->with_param || b->with_param || + c->with_param || d->with_param; + with_field= a->with_field || b->with_field || + c->with_field || d->with_field; + } + } + Item_func(Item *a,Item *b,Item *c,Item *d,Item* e): + allowed_arg_cols(1) + { + arg_count= 5; + if ((args= (Item**) sql_alloc(sizeof(Item*)*5))) + { + args[0]= a; args[1]= b; args[2]= c; args[3]= d; args[4]= e; + with_sum_func= a->with_sum_func || b->with_sum_func || + c->with_sum_func || d->with_sum_func || e->with_sum_func ; + with_param= a->with_param || b->with_param || + c->with_param || d->with_param || e->with_param; + with_field= a->with_field || b->with_field || + c->with_field || d->with_field || e->with_field; + } + } + Item_func(List &list); + // Constructor used for Item_cond_and/or (see Item comment) + Item_func(THD *thd, Item_func *item); + bool fix_fields(THD *, Item **ref); + void fix_after_pullout(st_select_lex *new_parent, Item **ref); + void quick_fix_field(); + table_map used_tables() const; + table_map not_null_tables() const; + void update_used_tables(); + bool eq(const Item *item, bool binary_cmp) const; + virtual optimize_type select_optimize() const { return OPTIMIZE_NONE; } + virtual bool have_rev_func() const { return 0; } + virtual Item *key_item() const { return args[0]; } + virtual bool const_item() const { return const_item_cache; } + inline Item **arguments() const { return args; } + void set_arguments(List &list); + inline uint argument_count() const { return arg_count; } + inline void remove_arguments() { arg_count=0; } + void split_sum_func(THD *thd, Item **ref_pointer_array, List &fields); + virtual void print(String *str, enum_query_type query_type); + void print_op(String *str, enum_query_type query_type); + void print_args(String *str, uint from, enum_query_type query_type); + inline bool get_arg0_date(MYSQL_TIME *ltime, ulonglong fuzzy_date) + { + return (null_value=args[0]->get_date(ltime, fuzzy_date)); + } + inline bool get_arg0_time(MYSQL_TIME *ltime) + { + null_value= args[0]->get_time(ltime); + DBUG_ASSERT(null_value || + ltime->time_type != MYSQL_TIMESTAMP_TIME || ltime->day == 0); + return null_value; + } + bool is_null() { + update_null_value(); + return null_value; + } + void signal_divide_by_null(); + friend class udf_handler; + Field *tmp_table_field() { return result_field; } + Field *tmp_table_field(TABLE *t_arg); + Item *get_tmp_table_item(THD *thd); + + my_decimal *val_decimal(my_decimal *); + + void fix_char_length_ulonglong(ulonglong max_char_length_arg) + { + ulonglong max_result_length= max_char_length_arg * + collation.collation->mbmaxlen; + if (max_result_length >= MAX_BLOB_WIDTH) + { + max_length= MAX_BLOB_WIDTH; + maybe_null= 1; + } + else + max_length= (uint32) max_result_length; + } + bool agg_arg_charsets(DTCollation &c, Item **items, uint nitems, + uint flags, int item_sep) + { + return agg_item_charsets(c, func_name(), items, nitems, flags, item_sep); + } + /* + Aggregate arguments for string result, e.g: CONCAT(a,b) + - convert to @@character_set_connection if all arguments are numbers + - allow DERIVATION_NONE + */ + bool agg_arg_charsets_for_string_result(DTCollation &c, + Item **items, uint nitems, + int item_sep= 1) + { + return agg_item_charsets_for_string_result(c, func_name(), + items, nitems, item_sep); + } + /* + Aggregate arguments for comparison, e.g: a=b, a LIKE b, a RLIKE b + - don't convert to @@character_set_connection if all arguments are numbers + - don't allow DERIVATION_NONE + */ + bool agg_arg_charsets_for_comparison(DTCollation &c, + Item **items, uint nitems, + int item_sep= 1) + { + return agg_item_charsets_for_comparison(c, func_name(), + items, nitems, item_sep); + } + /* + Aggregate arguments for string result, when some comparison + is involved internally, e.g: REPLACE(a,b,c) + - convert to @@character_set_connection if all arguments are numbers + - disallow DERIVATION_NONE + */ + bool agg_arg_charsets_for_string_result_with_comparison(DTCollation &c, + Item **items, + uint nitems, + int item_sep= 1) + { + return agg_item_charsets_for_string_result_with_comparison(c, func_name(), + items, nitems, + item_sep); + } + bool walk(Item_processor processor, bool walk_subquery, uchar *arg); + Item *transform(Item_transformer transformer, uchar *arg); + Item* compile(Item_analyzer analyzer, uchar **arg_p, + Item_transformer transformer, uchar *arg_t); + void traverse_cond(Cond_traverser traverser, + void * arg, traverse_order order); + bool eval_not_null_tables(uchar *opt_arg); + // bool is_expensive_processor(uchar *arg); + // virtual bool is_expensive() { return 0; } + inline void raise_numeric_overflow(const char *type_name) + { + char buf[256]; + String str(buf, sizeof(buf), system_charset_info); + str.length(0); + print(&str, QT_NO_DATA_EXPANSION); + my_error(ER_DATA_OUT_OF_RANGE, MYF(0), type_name, str.c_ptr_safe()); + } + inline double raise_float_overflow() + { + raise_numeric_overflow("DOUBLE"); + return 0.0; + } + inline longlong raise_integer_overflow() + { + raise_numeric_overflow(unsigned_flag ? "BIGINT UNSIGNED": "BIGINT"); + return 0; + } + inline int raise_decimal_overflow() + { + raise_numeric_overflow("DECIMAL"); + return E_DEC_OVERFLOW; + } + /** + Throw an error if the input double number is not finite, i.e. is either + +/-INF or NAN. + */ + inline double check_float_overflow(double value) + { + return isfinite(value) ? value : raise_float_overflow(); + } + /** + Throw an error if the input BIGINT value represented by the + (longlong value, bool unsigned flag) pair cannot be returned by the + function, i.e. is not compatible with this Item's unsigned_flag. + */ + inline longlong check_integer_overflow(longlong value, bool val_unsigned) + { + if ((unsigned_flag && !val_unsigned && value < 0) || + (!unsigned_flag && val_unsigned && + (ulonglong) value > (ulonglong) LONGLONG_MAX)) + return raise_integer_overflow(); + return value; + } + /** + Throw an error if the error code of a DECIMAL operation is E_DEC_OVERFLOW. + */ + inline int check_decimal_overflow(int error) + { + return (error == E_DEC_OVERFLOW) ? raise_decimal_overflow() : error; + } + + bool has_timestamp_args() + { + DBUG_ASSERT(fixed == TRUE); + for (uint i= 0; i < arg_count; i++) + { + if (args[i]->type() == Item::FIELD_ITEM && + args[i]->field_type() == MYSQL_TYPE_TIMESTAMP) + return TRUE; + } + return FALSE; + } + + bool has_date_args() + { + DBUG_ASSERT(fixed == TRUE); + for (uint i= 0; i < arg_count; i++) + { + if (args[i]->type() == Item::FIELD_ITEM && + (args[i]->field_type() == MYSQL_TYPE_DATE || + args[i]->field_type() == MYSQL_TYPE_DATETIME)) + return TRUE; + } + return FALSE; + } + + bool has_time_args() + { + DBUG_ASSERT(fixed == TRUE); + for (uint i= 0; i < arg_count; i++) + { + if (args[i]->type() == Item::FIELD_ITEM && + (args[i]->field_type() == MYSQL_TYPE_TIME || + args[i]->field_type() == MYSQL_TYPE_DATETIME)) + return TRUE; + } + return FALSE; + } + + bool has_datetime_args() + { + DBUG_ASSERT(fixed == TRUE); + for (uint i= 0; i < arg_count; i++) + { + if (args[i]->type() == Item::FIELD_ITEM && + args[i]->field_type() == MYSQL_TYPE_DATETIME) + return TRUE; + } + return FALSE; + } + + /* + By default only substitution for a field whose two different values + are never equal is allowed in the arguments of a function. + This is overruled for the direct arguments of comparison functions. + */ + bool subst_argument_checker(uchar **arg) + { + if (*arg) + { + *arg= (uchar *) Item::IDENTITY_SUBST; + return TRUE; + } + return FALSE; + } + + /* + We assume the result of any function that has a TIMESTAMP argument to be + timezone-dependent, since a TIMESTAMP value in both numeric and string + contexts is interpreted according to the current timezone. + The only exception is UNIX_TIMESTAMP() which returns the internal + representation of a TIMESTAMP argument verbatim, and thus does not depend on + the timezone. + */ + virtual bool check_valid_arguments_processor(uchar *bool_arg) + { + return has_timestamp_args(); + } + + virtual bool find_function_processor (uchar *arg) + { + return functype() == *(Functype *) arg; + } + + void no_rows_in_result() + { + for (uint i= 0; i < arg_count; i++) + { + args[i]->no_rows_in_result(); + } + } + void restore_to_before_no_rows_in_result() + { + for (uint i= 0; i < arg_count; i++) + { + args[i]->no_rows_in_result(); + } + } +}; + + +class Item_real_func :public Item_func +{ +public: + Item_real_func() :Item_func() { collation.set_numeric(); } + Item_real_func(Item *a) :Item_func(a) { collation.set_numeric(); } + Item_real_func(Item *a,Item *b) :Item_func(a,b) { collation.set_numeric(); } + Item_real_func(List &list) :Item_func(list) { collation.set_numeric(); } + String *val_str(String*str); + my_decimal *val_decimal(my_decimal *decimal_value); + longlong val_int() + { + DBUG_ASSERT(fixed == 1); + bool error; + return double_to_longlong(val_real(), unsigned_flag, &error); + } + enum Item_result result_type () const { return REAL_RESULT; } + void fix_length_and_dec() + { decimals= NOT_FIXED_DEC; max_length= float_length(decimals); } +}; + + +class Item_func_hybrid_result_type: public Item_func +{ + /* + Helper methods to make sure that the result of + decimal_op(), str_op() and date_op() is properly synched with null_value. + */ + bool date_op_with_null_check(MYSQL_TIME *ltime) + { + bool rc= date_op(ltime, + field_type() == MYSQL_TYPE_TIME ? TIME_TIME_ONLY : 0); + DBUG_ASSERT(!rc ^ null_value); + return rc; + } + String *str_op_with_null_check(String *str) + { + String *res= str_op(str); + DBUG_ASSERT((res != NULL) ^ null_value); + return res; + } + my_decimal *decimal_op_with_null_check(my_decimal *decimal_buffer) + { + my_decimal *res= decimal_op(decimal_buffer); + DBUG_ASSERT((res != NULL) ^ null_value); + return res; + } +protected: + Item_result cached_result_type; + void fix_attributes(Item **item, uint nitems); +public: + Item_func_hybrid_result_type() :Item_func(), cached_result_type(REAL_RESULT) + { collation.set_numeric(); } + Item_func_hybrid_result_type(Item *a) :Item_func(a), cached_result_type(REAL_RESULT) + { collation.set_numeric(); } + Item_func_hybrid_result_type(Item *a,Item *b) + :Item_func(a,b), cached_result_type(REAL_RESULT) + { collation.set_numeric(); } + Item_func_hybrid_result_type(Item *a,Item *b,Item *c) + :Item_func(a,b,c), cached_result_type(REAL_RESULT) + { collation.set_numeric(); } + Item_func_hybrid_result_type(List &list) + :Item_func(list), cached_result_type(REAL_RESULT) + { collation.set_numeric(); } + + enum Item_result result_type () const { return cached_result_type; } + + double val_real(); + longlong val_int(); + my_decimal *val_decimal(my_decimal *); + String *val_str(String*str); + bool get_date(MYSQL_TIME *res, ulonglong fuzzy_date); + + /** + @brief Performs the operation that this functions implements when the + result type is INT. + + @return The result of the operation. + */ + virtual longlong int_op()= 0; + + /** + @brief Performs the operation that this functions implements when the + result type is REAL. + + @return The result of the operation. + */ + virtual double real_op()= 0; + + /** + @brief Performs the operation that this functions implements when the + result type is DECIMAL. + + @param A pointer where the DECIMAL value will be allocated. + @return + - 0 If the result is NULL + - The same pointer it was given, with the area initialized to the + result of the operation. + */ + virtual my_decimal *decimal_op(my_decimal *)= 0; + + /** + @brief Performs the operation that this functions implements when the + result type is a string type. + + @return The result of the operation. + */ + virtual String *str_op(String *)= 0; + + /** + @brief Performs the operation that this functions implements when + field type is a temporal type. + @return The result of the operation. + */ + virtual bool date_op(MYSQL_TIME *res, uint fuzzy_date)= 0; + +}; + + + +class Item_func_hybrid_field_type :public Item_func_hybrid_result_type +{ +protected: + enum_field_types cached_field_type; +public: + Item_func_hybrid_field_type() + :Item_func_hybrid_result_type(), cached_field_type(MYSQL_TYPE_DOUBLE) + {} + Item_func_hybrid_field_type(Item *a, Item *b) + :Item_func_hybrid_result_type(a, b), cached_field_type(MYSQL_TYPE_DOUBLE) + {} + Item_func_hybrid_field_type(Item *a, Item *b, Item *c) + :Item_func_hybrid_result_type(a, b, c), + cached_field_type(MYSQL_TYPE_DOUBLE) + {} + Item_func_hybrid_field_type(List &list) + :Item_func_hybrid_result_type(list), + cached_field_type(MYSQL_TYPE_DOUBLE) + {} + enum_field_types field_type() const { return cached_field_type; } +}; + + + +class Item_func_numhybrid: public Item_func_hybrid_result_type +{ +protected: + + inline void fix_decimals() + { + DBUG_ASSERT(result_type() == DECIMAL_RESULT); + if (decimals == NOT_FIXED_DEC) + set_if_smaller(decimals, max_length - 1); + } + +public: + Item_func_numhybrid() :Item_func_hybrid_result_type() + { } + Item_func_numhybrid(Item *a) :Item_func_hybrid_result_type(a) + { } + Item_func_numhybrid(Item *a,Item *b) + :Item_func_hybrid_result_type(a,b) + { } + Item_func_numhybrid(Item *a,Item *b,Item *c) + :Item_func_hybrid_result_type(a,b,c) + { } + Item_func_numhybrid(List &list) + :Item_func_hybrid_result_type(list) + { } + String *str_op(String *str) { DBUG_ASSERT(0); return 0; } + bool date_op(MYSQL_TIME *ltime, uint fuzzydate) { DBUG_ASSERT(0); return true; } +}; + + +/* function where type of result detected by first argument */ +class Item_func_num1: public Item_func_numhybrid +{ +public: + Item_func_num1(Item *a) :Item_func_numhybrid(a) {} + Item_func_num1(Item *a, Item *b) :Item_func_numhybrid(a, b) {} + void fix_length_and_dec(); +}; + + +/* Base class for operations like '+', '-', '*' */ +class Item_num_op :public Item_func_numhybrid +{ + public: + Item_num_op(Item *a,Item *b) :Item_func_numhybrid(a, b) {} + virtual void result_precision()= 0; + + virtual inline void print(String *str, enum_query_type query_type) + { + print_op(str, query_type); + } + + void fix_length_and_dec(); +}; + + +class Item_int_func :public Item_func +{ +protected: + bool sargable; +public: + Item_int_func() :Item_func() + { collation.set_numeric(); fix_char_length(21); sargable= false; } + Item_int_func(Item *a) :Item_func(a) + { collation.set_numeric(); fix_char_length(21); sargable= false; } + Item_int_func(Item *a,Item *b) :Item_func(a,b) + { collation.set_numeric(); fix_char_length(21); sargable= false; } + Item_int_func(Item *a,Item *b,Item *c) :Item_func(a,b,c) + { collation.set_numeric(); fix_char_length(21); sargable= false; } + Item_int_func(List &list) :Item_func(list) + { collation.set_numeric(); fix_char_length(21); sargable= false; } + Item_int_func(THD *thd, Item_int_func *item) :Item_func(thd, item) + { collation.set_numeric(); sargable= false; } + double val_real(); + String *val_str(String*str); + enum Item_result result_type () const { return INT_RESULT; } + void fix_length_and_dec() {} + bool count_sargable_conds(uchar *arg); +}; + + +class Item_func_connection_id :public Item_int_func +{ + longlong value; + +public: + Item_func_connection_id() {} + const char *func_name() const { return "connection_id"; } + void fix_length_and_dec(); + bool fix_fields(THD *thd, Item **ref); + longlong val_int() { DBUG_ASSERT(fixed == 1); return value; } + bool check_vcol_func_processor(uchar *int_arg) { return TRUE;} +}; + + +class Item_func_signed :public Item_int_func +{ +public: + Item_func_signed(Item *a) :Item_int_func(a) + { + unsigned_flag= 0; + } + const char *func_name() const { return "cast_as_signed"; } + longlong val_int(); + longlong val_int_from_str(int *error); + void fix_length_and_dec() + { + fix_char_length(min(args[0]->max_char_length(), + MY_INT64_NUM_DECIMAL_DIGITS)); + } + virtual void print(String *str, enum_query_type query_type); + uint decimal_precision() const { return args[0]->decimal_precision(); } +}; + + +class Item_func_unsigned :public Item_func_signed +{ +public: + Item_func_unsigned(Item *a) :Item_func_signed(a) + { + unsigned_flag= 1; + } + const char *func_name() const { return "cast_as_unsigned"; } + longlong val_int(); + virtual void print(String *str, enum_query_type query_type); +}; + + +class Item_decimal_typecast :public Item_func +{ + my_decimal decimal_value; +public: + Item_decimal_typecast(Item *a, int len, int dec) :Item_func(a) + { + decimals= (uint8) dec; + collation.set_numeric(); + fix_char_length(my_decimal_precision_to_length_no_truncation(len, dec, + unsigned_flag)); + } + String *val_str(String *str); + double val_real(); + longlong val_int(); + my_decimal *val_decimal(my_decimal*); + enum Item_result result_type () const { return DECIMAL_RESULT; } + enum_field_types field_type() const { return MYSQL_TYPE_NEWDECIMAL; } + void fix_length_and_dec() {} + const char *func_name() const { return "decimal_typecast"; } + virtual void print(String *str, enum_query_type query_type); +}; + + +class Item_double_typecast :public Item_real_func +{ +public: + Item_double_typecast(Item *a, int len, int dec) :Item_real_func(a) + { + decimals= (uint8) dec; + max_length= (uint32) len; + } + double val_real(); + enum_field_types field_type() const { return MYSQL_TYPE_DOUBLE; } + void fix_length_and_dec() { maybe_null= 1; } + const char *func_name() const { return "double_typecast"; } + virtual void print(String *str, enum_query_type query_type); +}; + + + +class Item_func_additive_op :public Item_num_op +{ +public: + Item_func_additive_op(Item *a,Item *b) :Item_num_op(a,b) {} + void result_precision(); + bool check_partition_func_processor(uchar *int_arg) {return FALSE;} + bool check_vcol_func_processor(uchar *int_arg) { return FALSE;} +}; + + +class Item_func_plus :public Item_func_additive_op +{ +public: + Item_func_plus(Item *a,Item *b) :Item_func_additive_op(a,b) {} + const char *func_name() const { return "+"; } + longlong int_op(); + double real_op(); + my_decimal *decimal_op(my_decimal *); +}; + +class Item_func_minus :public Item_func_additive_op +{ +public: + Item_func_minus(Item *a,Item *b) :Item_func_additive_op(a,b) {} + const char *func_name() const { return "-"; } + longlong int_op(); + double real_op(); + my_decimal *decimal_op(my_decimal *); + void fix_length_and_dec(); +}; + + +class Item_func_mul :public Item_num_op +{ +public: + Item_func_mul(Item *a,Item *b) :Item_num_op(a,b) {} + const char *func_name() const { return "*"; } + longlong int_op(); + double real_op(); + my_decimal *decimal_op(my_decimal *); + void result_precision(); + bool check_partition_func_processor(uchar *int_arg) {return FALSE;} + bool check_vcol_func_processor(uchar *int_arg) { return FALSE;} +}; + + +class Item_func_div :public Item_num_op +{ +public: + uint prec_increment; + Item_func_div(Item *a,Item *b) :Item_num_op(a,b) {} + longlong int_op() { DBUG_ASSERT(0); return 0; } + double real_op(); + my_decimal *decimal_op(my_decimal *); + const char *func_name() const { return "/"; } + void fix_length_and_dec(); + void result_precision(); +}; + + +class Item_func_int_div :public Item_int_func +{ +public: + Item_func_int_div(Item *a,Item *b) :Item_int_func(a,b) + {} + longlong val_int(); + const char *func_name() const { return "DIV"; } + void fix_length_and_dec(); + + virtual inline void print(String *str, enum_query_type query_type) + { + print_op(str, query_type); + } + + bool check_partition_func_processor(uchar *int_arg) {return FALSE;} + bool check_vcol_func_processor(uchar *int_arg) { return FALSE;} +}; + + +class Item_func_mod :public Item_num_op +{ +public: + Item_func_mod(Item *a,Item *b) :Item_num_op(a,b) {} + longlong int_op(); + double real_op(); + my_decimal *decimal_op(my_decimal *); + const char *func_name() const { return "%"; } + void result_precision(); + void fix_length_and_dec(); + bool check_partition_func_processor(uchar *int_arg) {return FALSE;} + bool check_vcol_func_processor(uchar *int_arg) { return FALSE;} +}; + + +class Item_func_neg :public Item_func_num1 +{ +public: + Item_func_neg(Item *a) :Item_func_num1(a) {} + double real_op(); + longlong int_op(); + my_decimal *decimal_op(my_decimal *); + const char *func_name() const { return "-"; } + enum Functype functype() const { return NEG_FUNC; } + void fix_length_and_dec(); + uint decimal_precision() const { return args[0]->decimal_precision(); } + bool check_partition_func_processor(uchar *int_arg) {return FALSE;} + bool check_vcol_func_processor(uchar *int_arg) { return FALSE;} +}; + + +class Item_func_abs :public Item_func_num1 +{ +public: + Item_func_abs(Item *a) :Item_func_num1(a) {} + double real_op(); + longlong int_op(); + my_decimal *decimal_op(my_decimal *); + const char *func_name() const { return "abs"; } + void fix_length_and_dec(); + bool check_partition_func_processor(uchar *int_arg) {return FALSE;} + bool check_vcol_func_processor(uchar *int_arg) { return FALSE;} +}; + +// A class to handle logarithmic and trigonometric functions + +class Item_dec_func :public Item_real_func +{ + public: + Item_dec_func(Item *a) :Item_real_func(a) {} + Item_dec_func(Item *a,Item *b) :Item_real_func(a,b) {} + void fix_length_and_dec() + { + decimals=NOT_FIXED_DEC; max_length=float_length(decimals); + maybe_null=1; + } +}; + +class Item_func_exp :public Item_dec_func +{ +public: + Item_func_exp(Item *a) :Item_dec_func(a) {} + double val_real(); + const char *func_name() const { return "exp"; } +}; + + +class Item_func_ln :public Item_dec_func +{ +public: + Item_func_ln(Item *a) :Item_dec_func(a) {} + double val_real(); + const char *func_name() const { return "ln"; } +}; + + +class Item_func_log :public Item_dec_func +{ +public: + Item_func_log(Item *a) :Item_dec_func(a) {} + Item_func_log(Item *a,Item *b) :Item_dec_func(a,b) {} + double val_real(); + const char *func_name() const { return "log"; } +}; + + +class Item_func_log2 :public Item_dec_func +{ +public: + Item_func_log2(Item *a) :Item_dec_func(a) {} + double val_real(); + const char *func_name() const { return "log2"; } +}; + + +class Item_func_log10 :public Item_dec_func +{ +public: + Item_func_log10(Item *a) :Item_dec_func(a) {} + double val_real(); + const char *func_name() const { return "log10"; } +}; + + +class Item_func_sqrt :public Item_dec_func +{ +public: + Item_func_sqrt(Item *a) :Item_dec_func(a) {} + double val_real(); + const char *func_name() const { return "sqrt"; } +}; + + +class Item_func_pow :public Item_dec_func +{ +public: + Item_func_pow(Item *a,Item *b) :Item_dec_func(a,b) {} + double val_real(); + const char *func_name() const { return "pow"; } +}; + + +class Item_func_acos :public Item_dec_func +{ +public: + Item_func_acos(Item *a) :Item_dec_func(a) {} + double val_real(); + const char *func_name() const { return "acos"; } +}; + +class Item_func_asin :public Item_dec_func +{ +public: + Item_func_asin(Item *a) :Item_dec_func(a) {} + double val_real(); + const char *func_name() const { return "asin"; } +}; + +class Item_func_atan :public Item_dec_func +{ +public: + Item_func_atan(Item *a) :Item_dec_func(a) {} + Item_func_atan(Item *a,Item *b) :Item_dec_func(a,b) {} + double val_real(); + const char *func_name() const { return "atan"; } +}; + +class Item_func_cos :public Item_dec_func +{ +public: + Item_func_cos(Item *a) :Item_dec_func(a) {} + double val_real(); + const char *func_name() const { return "cos"; } +}; + +class Item_func_sin :public Item_dec_func +{ +public: + Item_func_sin(Item *a) :Item_dec_func(a) {} + double val_real(); + const char *func_name() const { return "sin"; } +}; + +class Item_func_tan :public Item_dec_func +{ +public: + Item_func_tan(Item *a) :Item_dec_func(a) {} + double val_real(); + const char *func_name() const { return "tan"; } +}; + +class Item_func_cot :public Item_dec_func +{ +public: + Item_func_cot(Item *a) :Item_dec_func(a) {} + double val_real(); + const char *func_name() const { return "cot"; } +}; + +class Item_func_integer :public Item_int_func +{ +public: + inline Item_func_integer(Item *a) :Item_int_func(a) {} + void fix_length_and_dec(); +}; + + +class Item_func_int_val :public Item_func_num1 +{ +public: + Item_func_int_val(Item *a) :Item_func_num1(a) {} + void fix_length_and_dec(); +}; + + +class Item_func_ceiling :public Item_func_int_val +{ +public: + Item_func_ceiling(Item *a) :Item_func_int_val(a) {} + const char *func_name() const { return "ceiling"; } + longlong int_op(); + double real_op(); + my_decimal *decimal_op(my_decimal *); + bool check_partition_func_processor(uchar *int_arg) {return FALSE;} + bool check_vcol_func_processor(uchar *int_arg) { return FALSE;} +}; + + +class Item_func_floor :public Item_func_int_val +{ +public: + Item_func_floor(Item *a) :Item_func_int_val(a) {} + const char *func_name() const { return "floor"; } + longlong int_op(); + double real_op(); + my_decimal *decimal_op(my_decimal *); + bool check_partition_func_processor(uchar *int_arg) {return FALSE;} + bool check_vcol_func_processor(uchar *int_arg) { return FALSE;} +}; + +/* This handles round and truncate */ + +class Item_func_round :public Item_func_num1 +{ + bool truncate; +public: + Item_func_round(Item *a, Item *b, bool trunc_arg) + :Item_func_num1(a,b), truncate(trunc_arg) {} + const char *func_name() const { return truncate ? "truncate" : "round"; } + double real_op(); + longlong int_op(); + my_decimal *decimal_op(my_decimal *); + void fix_length_and_dec(); +}; + + +class Item_func_rand :public Item_real_func +{ + struct my_rnd_struct *rand; + bool first_eval; // TRUE if val_real() is called 1st time +public: + Item_func_rand(Item *a) :Item_real_func(a), rand(0), first_eval(TRUE) {} + Item_func_rand() :Item_real_func() {} + double val_real(); + const char *func_name() const { return "rand"; } + bool const_item() const { return 0; } + void update_used_tables(); + bool fix_fields(THD *thd, Item **ref); + void cleanup() { first_eval= TRUE; Item_real_func::cleanup(); } + bool check_vcol_func_processor(uchar *int_arg) + { + return trace_unsupported_by_check_vcol_func_processor(func_name()); + } +private: + void seed_random (Item * val); +}; + + +class Item_func_sign :public Item_int_func +{ +public: + Item_func_sign(Item *a) :Item_int_func(a) {} + const char *func_name() const { return "sign"; } + longlong val_int(); +}; + + +class Item_func_units :public Item_real_func +{ + char *name; + double mul,add; +public: + Item_func_units(char *name_arg,Item *a,double mul_arg,double add_arg) + :Item_real_func(a),name(name_arg),mul(mul_arg),add(add_arg) {} + double val_real(); + const char *func_name() const { return name; } + void fix_length_and_dec() + { decimals= NOT_FIXED_DEC; max_length= float_length(decimals); } +}; + + +class Item_func_min_max :public Item_func +{ + Item_result cmp_type; + String tmp_value; + int cmp_sign; + /* An item used for issuing warnings while string to DATETIME conversion. */ + Item *compare_as_dates; +protected: + enum_field_types cached_field_type; +public: + Item_func_min_max(List &list,int cmp_sign_arg) :Item_func(list), + cmp_type(INT_RESULT), cmp_sign(cmp_sign_arg), compare_as_dates(0) {} + double val_real(); + longlong val_int(); + String *val_str(String *); + my_decimal *val_decimal(my_decimal *); + bool get_date(MYSQL_TIME *res, ulonglong fuzzy_date); + void fix_length_and_dec(); + enum Item_result result_type () const { return cmp_type; } + enum_field_types field_type() const { return cached_field_type; } +}; + +class Item_func_min :public Item_func_min_max +{ +public: + Item_func_min(List &list) :Item_func_min_max(list,1) {} + const char *func_name() const { return "least"; } +}; + +class Item_func_max :public Item_func_min_max +{ +public: + Item_func_max(List &list) :Item_func_min_max(list,-1) {} + const char *func_name() const { return "greatest"; } +}; + + +/* + Objects of this class are used for ROLLUP queries to wrap up + each constant item referred to in GROUP BY list. +*/ + +class Item_func_rollup_const :public Item_func +{ +public: + Item_func_rollup_const(Item *a) :Item_func(a) + { + name= a->name; + name_length= a->name_length; + } + double val_real() { return args[0]->val_real(); } + longlong val_int() { return args[0]->val_int(); } + String *val_str(String *str) { return args[0]->val_str(str); } + my_decimal *val_decimal(my_decimal *dec) { return args[0]->val_decimal(dec); } + const char *func_name() const { return "rollup_const"; } + bool const_item() const { return 0; } + Item_result result_type() const { return args[0]->result_type(); } + void fix_length_and_dec() + { + collation= args[0]->collation; + max_length= args[0]->max_length; + decimals=args[0]->decimals; + /* The item could be a NULL constant. */ + null_value= args[0]->is_null(); + } +}; + + +class Item_func_length :public Item_int_func +{ + String value; +public: + Item_func_length(Item *a) :Item_int_func(a) {} + longlong val_int(); + const char *func_name() const { return "length"; } + void fix_length_and_dec() { max_length=10; } +}; + +class Item_func_bit_length :public Item_func_length +{ +public: + Item_func_bit_length(Item *a) :Item_func_length(a) {} + longlong val_int() + { DBUG_ASSERT(fixed == 1); return Item_func_length::val_int()*8; } + const char *func_name() const { return "bit_length"; } +}; + +class Item_func_char_length :public Item_int_func +{ + String value; +public: + Item_func_char_length(Item *a) :Item_int_func(a) {} + longlong val_int(); + const char *func_name() const { return "char_length"; } + void fix_length_and_dec() { max_length=10; } +}; + +class Item_func_coercibility :public Item_int_func +{ +public: + Item_func_coercibility(Item *a) :Item_int_func(a) {} + longlong val_int(); + const char *func_name() const { return "coercibility"; } + void fix_length_and_dec() { max_length=10; maybe_null= 0; } + bool eval_not_null_tables(uchar *opt_arg) + { + not_null_tables_cache= 0; + return 0; + } +}; + +class Item_func_locate :public Item_int_func +{ + String value1,value2; + DTCollation cmp_collation; +public: + Item_func_locate(Item *a,Item *b) :Item_int_func(a,b) {} + Item_func_locate(Item *a,Item *b,Item *c) :Item_int_func(a,b,c) {} + const char *func_name() const { return "locate"; } + longlong val_int(); + void fix_length_and_dec(); + virtual void print(String *str, enum_query_type query_type); +}; + + +class Item_func_field :public Item_int_func +{ + String value,tmp; + Item_result cmp_type; + DTCollation cmp_collation; +public: + Item_func_field(List &list) :Item_int_func(list) {} + longlong val_int(); + const char *func_name() const { return "field"; } + void fix_length_and_dec(); +}; + + +class Item_func_ascii :public Item_int_func +{ + String value; +public: + Item_func_ascii(Item *a) :Item_int_func(a) {} + longlong val_int(); + const char *func_name() const { return "ascii"; } + void fix_length_and_dec() { max_length=3; } +}; + +class Item_func_ord :public Item_int_func +{ + String value; +public: + Item_func_ord(Item *a) :Item_int_func(a) {} + longlong val_int(); + const char *func_name() const { return "ord"; } +}; + +class Item_func_find_in_set :public Item_int_func +{ + String value,value2; + uint enum_value; + ulonglong enum_bit; + DTCollation cmp_collation; +public: + Item_func_find_in_set(Item *a,Item *b) :Item_int_func(a,b),enum_value(0) {} + longlong val_int(); + const char *func_name() const { return "find_in_set"; } + void fix_length_and_dec(); +}; + +/* Base class for all bit functions: '~', '|', '^', '&', '>>', '<<' */ + +class Item_func_bit: public Item_int_func +{ +public: + Item_func_bit(Item *a, Item *b) :Item_int_func(a, b) {} + Item_func_bit(Item *a) :Item_int_func(a) {} + void fix_length_and_dec() { unsigned_flag= 1; } + + virtual inline void print(String *str, enum_query_type query_type) + { + print_op(str, query_type); + } +}; + +class Item_func_bit_or :public Item_func_bit +{ +public: + Item_func_bit_or(Item *a, Item *b) :Item_func_bit(a, b) {} + longlong val_int(); + const char *func_name() const { return "|"; } +}; + +class Item_func_bit_and :public Item_func_bit +{ +public: + Item_func_bit_and(Item *a, Item *b) :Item_func_bit(a, b) {} + longlong val_int(); + const char *func_name() const { return "&"; } +}; + +class Item_func_bit_count :public Item_int_func +{ +public: + Item_func_bit_count(Item *a) :Item_int_func(a) {} + longlong val_int(); + const char *func_name() const { return "bit_count"; } + void fix_length_and_dec() { max_length=2; } +}; + +class Item_func_shift_left :public Item_func_bit +{ +public: + Item_func_shift_left(Item *a, Item *b) :Item_func_bit(a, b) {} + longlong val_int(); + const char *func_name() const { return "<<"; } +}; + +class Item_func_shift_right :public Item_func_bit +{ +public: + Item_func_shift_right(Item *a, Item *b) :Item_func_bit(a, b) {} + longlong val_int(); + const char *func_name() const { return ">>"; } +}; + +class Item_func_bit_neg :public Item_func_bit +{ +public: + Item_func_bit_neg(Item *a) :Item_func_bit(a) {} + longlong val_int(); + const char *func_name() const { return "~"; } + + virtual inline void print(String *str, enum_query_type query_type) + { + Item_func::print(str, query_type); + } +}; + + +class Item_func_last_insert_id :public Item_int_func +{ +public: + Item_func_last_insert_id() :Item_int_func() {} + Item_func_last_insert_id(Item *a) :Item_int_func(a) {} + longlong val_int(); + const char *func_name() const { return "last_insert_id"; } + void fix_length_and_dec() + { + unsigned_flag= TRUE; + if (arg_count) + max_length= args[0]->max_length; + unsigned_flag=1; + } + bool fix_fields(THD *thd, Item **ref); + bool check_vcol_func_processor(uchar *int_arg) + { + return trace_unsupported_by_check_vcol_func_processor(func_name()); + } +}; + + +class Item_func_benchmark :public Item_int_func +{ +public: + Item_func_benchmark(Item *count_expr, Item *expr) + :Item_int_func(count_expr, expr) + {} + longlong val_int(); + const char *func_name() const { return "benchmark"; } + void fix_length_and_dec() { max_length=1; maybe_null=0; } + virtual void print(String *str, enum_query_type query_type); + bool check_vcol_func_processor(uchar *int_arg) + { + return trace_unsupported_by_check_vcol_func_processor(func_name()); + } +}; + + +class Item_func_sleep :public Item_int_func +{ +public: + Item_func_sleep(Item *a) :Item_int_func(a) {} + bool const_item() const { return 0; } + const char *func_name() const { return "sleep"; } + void update_used_tables() + { + Item_int_func::update_used_tables(); + used_tables_cache|= RAND_TABLE_BIT; + } + longlong val_int(); + bool check_vcol_func_processor(uchar *int_arg) + { + return trace_unsupported_by_check_vcol_func_processor(func_name()); + } +}; + + + +#ifdef HAVE_DLOPEN + +class Item_udf_func :public Item_func +{ +protected: + udf_handler udf; + bool is_expensive_processor(uchar *arg) { return TRUE; } + +public: + Item_udf_func(udf_func *udf_arg) + :Item_func(), udf(udf_arg) {} + Item_udf_func(udf_func *udf_arg, List &list) + :Item_func(list), udf(udf_arg) {} + const char *func_name() const { return udf.name(); } + enum Functype functype() const { return UDF_FUNC; } + bool fix_fields(THD *thd, Item **ref) + { + DBUG_ASSERT(fixed == 0); + bool res= udf.fix_fields(thd, this, arg_count, args); + used_tables_cache= udf.used_tables_cache; + const_item_cache= udf.const_item_cache; + fixed= 1; + return res; + } + void fix_num_length_and_dec(); + void update_used_tables() + { + /* + TODO: Make a member in UDF_INIT and return if a UDF is deterministic or + not. + Currently UDF_INIT has a member (const_item) that is an in/out + parameter to the init() call. + The code in udf_handler::fix_fields also duplicates the arguments + handling code in Item_func::fix_fields(). + + The lack of information if a UDF is deterministic makes writing + a correct update_used_tables() for UDFs impossible. + One solution to this would be : + - Add a is_deterministic member of UDF_INIT + - (optionally) deprecate the const_item member of UDF_INIT + - Take away the duplicate code from udf_handler::fix_fields() and + make Item_udf_func call Item_func::fix_fields() to process its + arguments as for any other function. + - Store the deterministic flag returned by _init into the + udf_handler. + - Don't implement Item_udf_func::fix_fields, implement + Item_udf_func::fix_length_and_dec() instead (similar to non-UDF + functions). + - Override Item_func::update_used_tables to call + Item_func::update_used_tables() and add a RAND_TABLE_BIT to the + result of Item_func::update_used_tables() if the UDF is + non-deterministic. + - (optionally) rename RAND_TABLE_BIT to NONDETERMINISTIC_BIT to + better describe its usage. + + The above would require a change of the UDF API. + Until that change is done here's how the current code works: + We call Item_func::update_used_tables() only when we know that + the function depends on real non-const tables and is deterministic. + This can be done only because we know that the optimizer will + call update_used_tables() only when there's possibly a new const + table. So update_used_tables() can only make a Item_func more + constant than it is currently. + That's why we don't need to do anything if a function is guaranteed + to return non-constant (it's non-deterministic) or is already a + const. + */ + if ((used_tables_cache & ~PSEUDO_TABLE_BITS) && + !(used_tables_cache & RAND_TABLE_BIT)) + { + Item_func::update_used_tables(); + if (!const_item_cache && !used_tables_cache) + used_tables_cache= RAND_TABLE_BIT; + } + } + void cleanup(); + Item_result result_type () const { return udf.result_type(); } + bool eval_not_null_tables(uchar *opt_arg) + { + not_null_tables_cache= 0; + return 0; + } + bool is_expensive() { return 1; } + virtual void print(String *str, enum_query_type query_type); +}; + + +class Item_func_udf_float :public Item_udf_func +{ + public: + Item_func_udf_float(udf_func *udf_arg) + :Item_udf_func(udf_arg) {} + Item_func_udf_float(udf_func *udf_arg, + List &list) + :Item_udf_func(udf_arg, list) {} + longlong val_int() + { + DBUG_ASSERT(fixed == 1); + bool error; + return double_to_longlong(Item_func_udf_float::val_real(), + unsigned_flag, &error); + } + my_decimal *val_decimal(my_decimal *dec_buf) + { + double res=val_real(); + if (null_value) + return NULL; + double2my_decimal(E_DEC_FATAL_ERROR, res, dec_buf); + return dec_buf; + } + double val_real(); + String *val_str(String *str); + void fix_length_and_dec() { fix_num_length_and_dec(); } +}; + + +class Item_func_udf_int :public Item_udf_func +{ +public: + Item_func_udf_int(udf_func *udf_arg) + :Item_udf_func(udf_arg) {} + Item_func_udf_int(udf_func *udf_arg, + List &list) + :Item_udf_func(udf_arg, list) {} + longlong val_int(); + double val_real() { return (double) Item_func_udf_int::val_int(); } + String *val_str(String *str); + enum Item_result result_type () const { return INT_RESULT; } + void fix_length_and_dec() { decimals= 0; max_length= 21; } +}; + + +class Item_func_udf_decimal :public Item_udf_func +{ +public: + Item_func_udf_decimal(udf_func *udf_arg) + :Item_udf_func(udf_arg) {} + Item_func_udf_decimal(udf_func *udf_arg, List &list) + :Item_udf_func(udf_arg, list) {} + longlong val_int(); + double val_real(); + my_decimal *val_decimal(my_decimal *); + String *val_str(String *str); + enum Item_result result_type () const { return DECIMAL_RESULT; } + void fix_length_and_dec() { fix_num_length_and_dec(); } +}; + + +class Item_func_udf_str :public Item_udf_func +{ +public: + Item_func_udf_str(udf_func *udf_arg) + :Item_udf_func(udf_arg) {} + Item_func_udf_str(udf_func *udf_arg, List &list) + :Item_udf_func(udf_arg, list) {} + String *val_str(String *); + double val_real() + { + int err_not_used; + char *end_not_used; + String *res; + res= val_str(&str_value); + return res ? my_strntod(res->charset(),(char*) res->ptr(), + res->length(), &end_not_used, &err_not_used) : 0.0; + } + longlong val_int() + { + int err_not_used; + String *res; res=val_str(&str_value); + return res ? my_strntoll(res->charset(),res->ptr(),res->length(),10, + (char**) 0, &err_not_used) : (longlong) 0; + } + my_decimal *val_decimal(my_decimal *dec_buf) + { + String *res=val_str(&str_value); + if (!res) + return NULL; + string2my_decimal(E_DEC_FATAL_ERROR, res, dec_buf); + return dec_buf; + } + enum Item_result result_type () const { return STRING_RESULT; } + void fix_length_and_dec(); +}; + +#else /* Dummy functions to get sql_yacc.cc compiled */ + +class Item_func_udf_float :public Item_real_func +{ + public: + Item_func_udf_float(udf_func *udf_arg) + :Item_real_func() {} + Item_func_udf_float(udf_func *udf_arg, List &list) + :Item_real_func(list) {} + double val_real() { DBUG_ASSERT(fixed == 1); return 0.0; } +}; + + +class Item_func_udf_int :public Item_int_func +{ +public: + Item_func_udf_int(udf_func *udf_arg) + :Item_int_func() {} + Item_func_udf_int(udf_func *udf_arg, List &list) + :Item_int_func(list) {} + longlong val_int() { DBUG_ASSERT(fixed == 1); return 0; } +}; + + +class Item_func_udf_decimal :public Item_int_func +{ +public: + Item_func_udf_decimal(udf_func *udf_arg) + :Item_int_func() {} + Item_func_udf_decimal(udf_func *udf_arg, List &list) + :Item_int_func(list) {} + my_decimal *val_decimal(my_decimal *) { DBUG_ASSERT(fixed == 1); return 0; } +}; + + +class Item_func_udf_str :public Item_func +{ +public: + Item_func_udf_str(udf_func *udf_arg) + :Item_func() {} + Item_func_udf_str(udf_func *udf_arg, List &list) + :Item_func(list) {} + String *val_str(String *) + { DBUG_ASSERT(fixed == 1); null_value=1; return 0; } + double val_real() { DBUG_ASSERT(fixed == 1); null_value= 1; return 0.0; } + longlong val_int() { DBUG_ASSERT(fixed == 1); null_value=1; return 0; } + enum Item_result result_type () const { return STRING_RESULT; } + void fix_length_and_dec() { maybe_null=1; max_length=0; } +}; + +#endif /* HAVE_DLOPEN */ + +/* +** User level locks +*/ + +class User_level_lock; +void item_user_lock_init(void); +void item_user_lock_release(User_level_lock *ull); +void item_user_lock_free(void); + +class Item_func_get_lock :public Item_int_func +{ + String value; + public: + Item_func_get_lock(Item *a,Item *b) :Item_int_func(a,b) {} + longlong val_int(); + const char *func_name() const { return "get_lock"; } + void fix_length_and_dec() { max_length=1; maybe_null=1;} + bool check_vcol_func_processor(uchar *int_arg) + { + return trace_unsupported_by_check_vcol_func_processor(func_name()); + } +}; + +class Item_func_release_lock :public Item_int_func +{ + String value; +public: + Item_func_release_lock(Item *a) :Item_int_func(a) {} + longlong val_int(); + const char *func_name() const { return "release_lock"; } + void fix_length_and_dec() { max_length=1; maybe_null=1;} + bool check_vcol_func_processor(uchar *int_arg) + { + return trace_unsupported_by_check_vcol_func_processor(func_name()); + } +}; + +/* replication functions */ + +class Item_master_pos_wait :public Item_int_func +{ + String value; +public: + Item_master_pos_wait(Item *a,Item *b) :Item_int_func(a,b) {} + Item_master_pos_wait(Item *a,Item *b,Item *c) :Item_int_func(a,b,c) {} + longlong val_int(); + const char *func_name() const { return "master_pos_wait"; } + void fix_length_and_dec() { max_length=21; maybe_null=1;} + bool check_vcol_func_processor(uchar *int_arg) + { + return trace_unsupported_by_check_vcol_func_processor(func_name()); + } +}; + + +/* Handling of user definable variables */ + +class user_var_entry; + +class Item_func_set_user_var :public Item_func +{ + enum Item_result cached_result_type; + user_var_entry *entry; + /* + The entry_thread_id variable is used: + 1) to skip unnecessary updates of the entry field (see above); + 2) to reset the entry field that was initialized in the other thread + (for example, an item tree of a trigger that updates user variables + may be shared between several connections, and the entry_thread_id field + prevents updates of one connection user variables from a concurrent + connection calling the same trigger that initially updated some + user variable it the first connection context). + */ + my_thread_id entry_thread_id; + char buffer[MAX_FIELD_WIDTH]; + String value; + my_decimal decimal_buff; + bool null_item; + union + { + longlong vint; + double vreal; + String *vstr; + my_decimal *vdec; + } save_result; + +public: + LEX_STRING name; // keep it public + Item_func_set_user_var(LEX_STRING a,Item *b) + :Item_func(b), cached_result_type(INT_RESULT), + entry(NULL), entry_thread_id(0), name(a) + {} + Item_func_set_user_var(THD *thd, Item_func_set_user_var *item) + :Item_func(thd, item), cached_result_type(item->cached_result_type), + entry(item->entry), entry_thread_id(item->entry_thread_id), + value(item->value), decimal_buff(item->decimal_buff), + null_item(item->null_item), save_result(item->save_result), + name(item->name) + {} + + enum Functype functype() const { return SUSERVAR_FUNC; } + double val_real(); + longlong val_int(); + String *val_str(String *str); + my_decimal *val_decimal(my_decimal *); + double val_result(); + longlong val_int_result(); + bool val_bool_result(); + String *str_result(String *str); + my_decimal *val_decimal_result(my_decimal *); + bool is_null_result(); + bool update_hash(void *ptr, uint length, enum Item_result type, + CHARSET_INFO *cs, Derivation dv, bool unsigned_arg); + bool send(Protocol *protocol, String *str_arg); + void make_field(Send_field *tmp_field); + bool check(bool use_result_field); + void save_item_result(Item *item); + bool update(); + enum Item_result result_type () const { return cached_result_type; } + bool fix_fields(THD *thd, Item **ref); + void fix_length_and_dec(); + virtual void print(String *str, enum_query_type query_type); + void print_as_stmt(String *str, enum_query_type query_type); + const char *func_name() const { return "set_user_var"; } + int save_in_field(Field *field, bool no_conversions, + bool can_use_result_field); + int save_in_field(Field *field, bool no_conversions) + { + return save_in_field(field, no_conversions, 1); + } + void save_org_in_field(Field *field) { (void)save_in_field(field, 1, 0); } + bool register_field_in_read_map(uchar *arg); + bool register_field_in_bitmap(uchar *arg); + bool set_entry(THD *thd, bool create_if_not_exists); + void cleanup(); + bool check_vcol_func_processor(uchar *int_arg) {return TRUE;} +}; + + +class Item_func_get_user_var :public Item_func, + private Settable_routine_parameter +{ + user_var_entry *var_entry; + Item_result m_cached_result_type; + +public: + LEX_STRING name; // keep it public + Item_func_get_user_var(LEX_STRING a): + Item_func(), m_cached_result_type(STRING_RESULT), name(a) {} + enum Functype functype() const { return GUSERVAR_FUNC; } + LEX_STRING get_name() { return name; } + double val_real(); + longlong val_int(); + my_decimal *val_decimal(my_decimal*); + String *val_str(String* str); + void fix_length_and_dec(); + virtual void print(String *str, enum_query_type query_type); + enum Item_result result_type() const; + /* + We must always return variables as strings to guard against selects of type + select @t1:=1,@t1,@t:="hello",@t from foo where (@t1:= t2.b) + */ + const char *func_name() const { return "get_user_var"; } + bool const_item() const; + table_map used_tables() const + { return const_item() ? 0 : RAND_TABLE_BIT; } + bool eq(const Item *item, bool binary_cmp) const; +private: + bool set_value(THD *thd, sp_rcontext *ctx, Item **it); + +public: + Settable_routine_parameter *get_settable_routine_parameter() + { + return this; + } + bool check_vcol_func_processor(uchar *int_arg) { return TRUE;} +}; + + +/* + This item represents user variable used as out parameter (e.g in LOAD DATA), + and it is supposed to be used only for this purprose. So it is simplified + a lot. Actually you should never obtain its value. + + The only two reasons for this thing being an Item is possibility to store it + in List and desire to place this code somewhere near other functions + working with user variables. +*/ +class Item_user_var_as_out_param :public Item +{ + LEX_STRING name; + user_var_entry *entry; +public: + Item_user_var_as_out_param(LEX_STRING a) : name(a) + { set_name(a.str, 0, system_charset_info); } + /* We should return something different from FIELD_ITEM here */ + enum Type type() const { return STRING_ITEM;} + double val_real(); + longlong val_int(); + String *val_str(String *str); + my_decimal *val_decimal(my_decimal *decimal_buffer); + /* fix_fields() binds variable name with its entry structure */ + bool fix_fields(THD *thd, Item **ref); + void print_for_load(THD *thd, String *str); + void set_null_value(CHARSET_INFO* cs); + void set_value(const char *str, uint length, CHARSET_INFO* cs); +}; + + +/* A system variable */ + +#define GET_SYS_VAR_CACHE_LONG 1 +#define GET_SYS_VAR_CACHE_DOUBLE 2 +#define GET_SYS_VAR_CACHE_STRING 4 + +class Item_func_get_system_var :public Item_func +{ + sys_var *var; + enum_var_type var_type, orig_var_type; + LEX_STRING component; + longlong cached_llval; + double cached_dval; + String cached_strval; + bool cached_null_value; + query_id_t used_query_id; + uchar cache_present; + +public: + Item_func_get_system_var(sys_var *var_arg, enum_var_type var_type_arg, + LEX_STRING *component_arg, const char *name_arg, + size_t name_len_arg); + enum Functype functype() const { return GSYSVAR_FUNC; } + void update_null_value(); + void fix_length_and_dec(); + void print(String *str, enum_query_type query_type); + bool const_item() const { return true; } + table_map used_tables() const { return 0; } + enum Item_result result_type() const; + enum_field_types field_type() const; + double val_real(); + longlong val_int(); + String* val_str(String*); + my_decimal *val_decimal(my_decimal *dec_buf) + { return val_decimal_from_real(dec_buf); } + /* TODO: fix to support views */ + const char *func_name() const { return "get_system_var"; } + /** + Indicates whether this system variable is written to the binlog or not. + + Variables are written to the binlog as part of "status_vars" in + Query_log_event, as an Intvar_log_event, or a Rand_log_event. + + @return true if the variable is written to the binlog, false otherwise. + */ + bool is_written_to_binlog(); + bool eq(const Item *item, bool binary_cmp) const; + + void cleanup(); + bool check_vcol_func_processor(uchar *int_arg) { return TRUE;} +}; + + +class Item_func_inet_aton : public Item_int_func +{ +public: + Item_func_inet_aton(Item *a) :Item_int_func(a) {} + longlong val_int(); + const char *func_name() const { return "inet_aton"; } + void fix_length_and_dec() { decimals= 0; max_length= 21; maybe_null= 1; unsigned_flag= 1;} +}; + + +/* for fulltext search */ + +class Item_func_match :public Item_real_func +{ +public: + uint key, flags; + bool join_key; + DTCollation cmp_collation; + FT_INFO *ft_handler; + TABLE *table; + Item_func_match *master; // for master-slave optimization + Item *concat_ws; // Item_func_concat_ws + String value; // value of concat_ws + String search_value; // key_item()'s value converted to cmp_collation + + Item_func_match(List &a, uint b): Item_real_func(a), key(0), flags(b), + join_key(0), ft_handler(0), table(0), master(0), concat_ws(0) { } + void cleanup() + { + DBUG_ENTER("Item_func_match::cleanup"); + Item_real_func::cleanup(); + if (!master && ft_handler) + ft_handler->please->close_search(ft_handler); + ft_handler= 0; + concat_ws= 0; + table= 0; // required by Item_func_match::eq() + DBUG_VOID_RETURN; + } + bool is_expensive_processor(uchar *arg) { return TRUE; } + enum Functype functype() const { return FT_FUNC; } + const char *func_name() const { return "match"; } + bool eval_not_null_tables(uchar *opt_arg) + { + not_null_tables_cache= 0; + return 0; + } + bool fix_fields(THD *thd, Item **ref); + bool eq(const Item *, bool binary_cmp) const; + /* The following should be safe, even if we compare doubles */ + longlong val_int() { DBUG_ASSERT(fixed == 1); return val_real() != 0.0; } + double val_real(); + virtual void print(String *str, enum_query_type query_type); + + bool fix_index(); + void init_search(bool no_order); + bool check_vcol_func_processor(uchar *int_arg) + { + /* TODO: consider adding in support for the MATCH-based virtual columns */ + return trace_unsupported_by_check_vcol_func_processor(func_name()); + } +}; + + +class Item_func_bit_xor : public Item_func_bit +{ +public: + Item_func_bit_xor(Item *a, Item *b) :Item_func_bit(a, b) {} + longlong val_int(); + const char *func_name() const { return "^"; } +}; + +class Item_func_is_free_lock :public Item_int_func +{ + String value; +public: + Item_func_is_free_lock(Item *a) :Item_int_func(a) {} + longlong val_int(); + const char *func_name() const { return "is_free_lock"; } + void fix_length_and_dec() { decimals=0; max_length=1; maybe_null=1;} + bool check_vcol_func_processor(uchar *int_arg) + { + return trace_unsupported_by_check_vcol_func_processor(func_name()); + } +}; + +class Item_func_is_used_lock :public Item_int_func +{ + String value; +public: + Item_func_is_used_lock(Item *a) :Item_int_func(a) {} + longlong val_int(); + const char *func_name() const { return "is_used_lock"; } + void fix_length_and_dec() { decimals=0; max_length=10; maybe_null=1;} + bool check_vcol_func_processor(uchar *int_arg) + { + return trace_unsupported_by_check_vcol_func_processor(func_name()); + } +}; + +/* For type casts */ + +enum Cast_target +{ + ITEM_CAST_BINARY, ITEM_CAST_SIGNED_INT, ITEM_CAST_UNSIGNED_INT, + ITEM_CAST_DATE, ITEM_CAST_TIME, ITEM_CAST_DATETIME, ITEM_CAST_CHAR, + ITEM_CAST_DECIMAL, ITEM_CAST_DOUBLE +}; + + +class Item_func_row_count :public Item_int_func +{ +public: + Item_func_row_count() :Item_int_func() {} + longlong val_int(); + const char *func_name() const { return "row_count"; } + void fix_length_and_dec() { decimals= 0; maybe_null=0; } + bool check_vcol_func_processor(uchar *int_arg) + { + + return trace_unsupported_by_check_vcol_func_processor(func_name()); + } +}; + + +/* + * + * Stored FUNCTIONs + * + */ + +class sp_head; +class sp_name; +struct st_sp_security_context; + +class Item_func_sp :public Item_func +{ +private: + Name_resolution_context *context; + sp_name *m_name; + mutable sp_head *m_sp; + TABLE *dummy_table; + uchar result_buf[64]; + /* + The result field of the concrete stored function. + */ + Field *sp_result_field; + + bool execute(); + bool execute_impl(THD *thd); + bool init_result_field(THD *thd); + +protected: + bool is_expensive_processor(uchar *arg) + { return is_expensive(); } + +public: + + Item_func_sp(Name_resolution_context *context_arg, sp_name *name); + + Item_func_sp(Name_resolution_context *context_arg, + sp_name *name, List &list); + + virtual ~Item_func_sp() + {} + + void update_used_tables(); + + void cleanup(); + + const char *func_name() const; + + enum enum_field_types field_type() const; + + Field *tmp_table_field(TABLE *t_arg); + + void make_field(Send_field *tmp_field); + + Item_result result_type() const; + + longlong val_int() + { + if (execute()) + return (longlong) 0; + return sp_result_field->val_int(); + } + + double val_real() + { + if (execute()) + return 0.0; + return sp_result_field->val_real(); + } + + my_decimal *val_decimal(my_decimal *dec_buf) + { + if (execute()) + return NULL; + return sp_result_field->val_decimal(dec_buf); + } + + String *val_str(String *str) + { + String buf; + char buff[20]; + buf.set(buff, 20, str->charset()); + buf.length(0); + if (execute()) + return NULL; + /* + result_field will set buf pointing to internal buffer + of the resul_field. Due to this it will change any time + when SP is executed. In order to prevent occasional + corruption of returned value, we make here a copy. + */ + sp_result_field->val_str(&buf); + str->copy(buf); + return str; + } + + void update_null_value() + { + execute(); + } + + virtual bool change_context_processor(uchar *cntx) + { context= (Name_resolution_context *)cntx; return FALSE; } + + bool sp_check_access(THD * thd); + virtual enum Functype functype() const { return FUNC_SP; } + + bool fix_fields(THD *thd, Item **ref); + void fix_length_and_dec(void); + bool is_expensive(); + + inline Field *get_sp_result_field() + { + return sp_result_field; + } + + bool check_vcol_func_processor(uchar *int_arg) + { + return trace_unsupported_by_check_vcol_func_processor(func_name()); + } + bool limit_index_condition_pushdown_processor(uchar *opt_arg) + { + return TRUE; + } + bool eval_not_null_tables(uchar *opt_arg) + { + not_null_tables_cache= 0; + return 0; + } +}; + + +class Item_func_found_rows :public Item_int_func +{ +public: + Item_func_found_rows() :Item_int_func() {} + longlong val_int(); + const char *func_name() const { return "found_rows"; } + void fix_length_and_dec() { decimals= 0; maybe_null=0; } + bool check_vcol_func_processor(uchar *int_arg) + { + return trace_unsupported_by_check_vcol_func_processor(func_name()); + } +}; + + +void uuid_short_init(); + +class Item_func_uuid_short :public Item_int_func +{ +public: + Item_func_uuid_short() :Item_int_func() {} + const char *func_name() const { return "uuid_short"; } + longlong val_int(); + bool const_item() const { return false; } + table_map used_tables() const { return RAND_TABLE_BIT; } + void fix_length_and_dec() + { max_length= 21; unsigned_flag=1; } + bool check_vcol_func_processor(uchar *int_arg) + { + return trace_unsupported_by_check_vcol_func_processor(func_name()); + } +}; + + +class Item_func_last_value :public Item_func +{ +protected: + Item *last_value; +public: + Item_func_last_value(List &list) :Item_func(list) {} + double val_real(); + longlong val_int(); + String *val_str(String *); + my_decimal *val_decimal(my_decimal *); + void fix_length_and_dec(); + enum Item_result result_type () const { return last_value->result_type(); } + const char *func_name() const { return "last_value"; } + bool eval_not_null_tables(uchar *opt_arg) + { + not_null_tables_cache= 0; + return 0; + } + enum_field_types field_type() const { return last_value->field_type(); } + bool const_item() const { return 0; } + void evaluate_sideeffects(); + void update_used_tables() + { + Item_func::update_used_tables(); + maybe_null= last_value->maybe_null; + } +}; + + +Item *get_system_var(THD *thd, enum_var_type var_type, LEX_STRING name, + LEX_STRING component); +extern bool check_reserved_words(LEX_STRING *name); +extern enum_field_types agg_field_type(Item **items, uint nitems); +Item *find_date_time_item(Item **args, uint nargs, uint col); +double my_double_round(double value, longlong dec, bool dec_unsigned, + bool truncate); +bool eval_const_cond(COND *cond); + +extern bool volatile mqh_used; + +#endif /* ITEM_FUNC_INCLUDED */ diff --git a/database/include/mysql/private/item_geofunc.h b/database/include/mysql/private/item_geofunc.h new file mode 100644 index 0000000..91dbc14 --- /dev/null +++ b/database/include/mysql/private/item_geofunc.h @@ -0,0 +1,506 @@ +#ifndef ITEM_GEOFUNC_INCLUDED +#define ITEM_GEOFUNC_INCLUDED + +/* Copyright (c) 2000, 2016 Oracle and/or its affiliates. + Copyright (C) 2011, 2016, MariaDB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + + +/* This file defines all spatial functions */ + +#ifdef HAVE_SPATIAL + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif + +#include "gcalc_slicescan.h" +#include "gcalc_tools.h" + +class Item_geometry_func: public Item_str_func +{ +public: + Item_geometry_func() :Item_str_func() {} + Item_geometry_func(Item *a) :Item_str_func(a) {} + Item_geometry_func(Item *a,Item *b) :Item_str_func(a,b) {} + Item_geometry_func(Item *a,Item *b,Item *c) :Item_str_func(a,b,c) {} + Item_geometry_func(List &list) :Item_str_func(list) {} + void fix_length_and_dec(); + enum_field_types field_type() const { return MYSQL_TYPE_GEOMETRY; } + Field *tmp_table_field(TABLE *t_arg); + bool is_null() { (void) val_int(); return null_value; } +}; + +class Item_func_geometry_from_text: public Item_geometry_func +{ +public: + Item_func_geometry_from_text(Item *a) :Item_geometry_func(a) {} + Item_func_geometry_from_text(Item *a, Item *srid) :Item_geometry_func(a, srid) {} + const char *func_name() const { return "st_geometryfromtext"; } + String *val_str(String *); +}; + +class Item_func_geometry_from_wkb: public Item_geometry_func +{ +public: + Item_func_geometry_from_wkb(Item *a): Item_geometry_func(a) {} + Item_func_geometry_from_wkb(Item *a, Item *srid): Item_geometry_func(a, srid) {} + const char *func_name() const { return "st_geometryfromwkb"; } + String *val_str(String *); +}; + +class Item_func_as_wkt: public Item_str_ascii_func +{ +public: + Item_func_as_wkt(Item *a): Item_str_ascii_func(a) {} + const char *func_name() const { return "st_astext"; } + String *val_str_ascii(String *); + void fix_length_and_dec(); +}; + +class Item_func_as_wkb: public Item_geometry_func +{ +public: + Item_func_as_wkb(Item *a): Item_geometry_func(a) {} + const char *func_name() const { return "st_aswkb"; } + String *val_str(String *); + enum_field_types field_type() const { return MYSQL_TYPE_BLOB; } +}; + +class Item_func_geometry_type: public Item_str_ascii_func +{ +public: + Item_func_geometry_type(Item *a): Item_str_ascii_func(a) {} + String *val_str_ascii(String *); + const char *func_name() const { return "st_geometrytype"; } + void fix_length_and_dec() + { + // "GeometryCollection" is the longest + fix_length_and_charset(20, default_charset()); + maybe_null= 1; + }; +}; + +class Item_func_centroid: public Item_geometry_func +{ +public: + Item_func_centroid(Item *a): Item_geometry_func(a) {} + const char *func_name() const { return "st_centroid"; } + String *val_str(String *); + Field::geometry_type get_geometry_type() const; +}; + +class Item_func_envelope: public Item_geometry_func +{ +public: + Item_func_envelope(Item *a): Item_geometry_func(a) {} + const char *func_name() const { return "st_envelope"; } + String *val_str(String *); + Field::geometry_type get_geometry_type() const; +}; + +class Item_func_point: public Item_geometry_func +{ +public: + Item_func_point(Item *a, Item *b): Item_geometry_func(a, b) {} + Item_func_point(Item *a, Item *b, Item *srid): Item_geometry_func(a, b, srid) {} + const char *func_name() const { return "point"; } + String *val_str(String *); + Field::geometry_type get_geometry_type() const; +}; + +class Item_func_spatial_decomp: public Item_geometry_func +{ + enum Functype decomp_func; +public: + Item_func_spatial_decomp(Item *a, Item_func::Functype ft) : + Item_geometry_func(a) { decomp_func = ft; } + const char *func_name() const + { + switch (decomp_func) + { + case SP_STARTPOINT: + return "st_startpoint"; + case SP_ENDPOINT: + return "st_endpoint"; + case SP_EXTERIORRING: + return "st_exteriorring"; + default: + DBUG_ASSERT(0); // Should never happened + return "spatial_decomp_unknown"; + } + } + String *val_str(String *); +}; + +class Item_func_spatial_decomp_n: public Item_geometry_func +{ + enum Functype decomp_func_n; +public: + Item_func_spatial_decomp_n(Item *a, Item *b, Item_func::Functype ft): + Item_geometry_func(a, b) { decomp_func_n = ft; } + const char *func_name() const + { + switch (decomp_func_n) + { + case SP_POINTN: + return "st_pointn"; + case SP_GEOMETRYN: + return "st_geometryn"; + case SP_INTERIORRINGN: + return "st_interiorringn"; + default: + DBUG_ASSERT(0); // Should never happened + return "spatial_decomp_n_unknown"; + } + } + String *val_str(String *); +}; + +class Item_func_spatial_collection: public Item_geometry_func +{ + String tmp_value; + enum Geometry::wkbType coll_type; + enum Geometry::wkbType item_type; +public: + Item_func_spatial_collection( + List &list, enum Geometry::wkbType ct, enum Geometry::wkbType it): + Item_geometry_func(list) + { + coll_type=ct; + item_type=it; + } + String *val_str(String *); + void fix_length_and_dec() + { + Item_geometry_func::fix_length_and_dec(); + for (unsigned int i= 0; i < arg_count; ++i) + { + if (args[i]->fixed && args[i]->field_type() != MYSQL_TYPE_GEOMETRY) + { + String str; + args[i]->print(&str, QT_NO_DATA_EXPANSION); + str.append('\0'); + my_error(ER_ILLEGAL_VALUE_FOR_TYPE, MYF(0), "non geometric", + str.ptr()); + } + } + } + + const char *func_name() const { return "st_multipoint"; } +}; + + +/* + Spatial relations +*/ + +class Item_func_spatial_mbr_rel: public Item_bool_func2 +{ + enum Functype spatial_rel; +public: + Item_func_spatial_mbr_rel(Item *a,Item *b, enum Functype sp_rel) : + Item_bool_func2(a,b) { spatial_rel = sp_rel; } + longlong val_int(); + enum Functype functype() const + { + return spatial_rel; + } + enum Functype rev_functype() const { return spatial_rel; } + const char *func_name() const; + virtual inline void print(String *str, enum_query_type query_type) + { + Item_func::print(str, query_type); + } + void fix_length_and_dec() { maybe_null= 1; } + bool is_null() { (void) val_int(); return null_value; } +}; + + +class Item_func_spatial_rel: public Item_bool_func2 +{ + enum Functype spatial_rel; + Gcalc_heap collector; + Gcalc_scan_iterator scan_it; + Gcalc_function func; + String tmp_value1,tmp_value2; +public: + Item_func_spatial_rel(Item *a,Item *b, enum Functype sp_rel); + virtual ~Item_func_spatial_rel(); + longlong val_int(); + enum Functype functype() const + { + return spatial_rel; + } + enum Functype rev_functype() const { return spatial_rel; } + const char *func_name() const; + virtual inline void print(String *str, enum_query_type query_type) + { + Item_func::print(str, query_type); + } + + void fix_length_and_dec() { maybe_null= 1; } + bool is_null() { (void) val_int(); return null_value; } +}; + + +/* + Spatial operations +*/ + +class Item_func_spatial_operation: public Item_geometry_func +{ +public: + Gcalc_function::op_type spatial_op; + Gcalc_heap collector; + Gcalc_function func; + + Gcalc_result_receiver res_receiver; + Gcalc_operation_reducer operation; + String tmp_value1,tmp_value2; +public: + Item_func_spatial_operation(Item *a,Item *b, Gcalc_function::op_type sp_op) : + Item_geometry_func(a, b), spatial_op(sp_op) + {} + virtual ~Item_func_spatial_operation(); + String *val_str(String *); + const char *func_name() const; + virtual inline void print(String *str, enum_query_type query_type) + { + Item_func::print(str, query_type); + } +}; + + +class Item_func_buffer: public Item_geometry_func +{ +protected: + class Transporter : public Gcalc_operation_transporter + { + int m_npoints; + double m_d; + double x1,y1,x2,y2; + double x00,y00,x01,y01; + int add_edge_buffer(double x3, double y3, bool round_p1, bool round_p2); + int add_last_edge_buffer(); + int add_point_buffer(double x, double y); + int complete(); + int m_nshapes; + Gcalc_function::op_type buffer_op; + int last_shape_pos; + bool skip_line; + + public: + Transporter(Gcalc_function *fn, Gcalc_heap *heap, double d) : + Gcalc_operation_transporter(fn, heap), m_npoints(0), m_d(d), + m_nshapes(0), buffer_op((d > 0.0) ? Gcalc_function::op_union : + Gcalc_function::op_difference), + skip_line(FALSE) + {} + int single_point(double x, double y); + int start_line(); + int complete_line(); + int start_poly(); + int complete_poly(); + int start_ring(); + int complete_ring(); + int add_point(double x, double y); + + int start_collection(int n_objects); + }; + Gcalc_heap collector; + Gcalc_function func; + + Gcalc_result_receiver res_receiver; + Gcalc_operation_reducer operation; + String tmp_value; + +public: + Item_func_buffer(Item *obj, Item *distance): + Item_geometry_func(obj, distance) {} + const char *func_name() const { return "st_buffer"; } + String *val_str(String *); +}; + + +class Item_func_isempty: public Item_bool_func +{ +public: + Item_func_isempty(Item *a): Item_bool_func(a) {} + longlong val_int(); + optimize_type select_optimize() const { return OPTIMIZE_NONE; } + const char *func_name() const { return "st_isempty"; } + void fix_length_and_dec() { maybe_null= 1; } +}; + +class Item_func_issimple: public Item_bool_func +{ + Gcalc_heap collector; + Gcalc_function func; + Gcalc_scan_iterator scan_it; + String tmp; +public: + Item_func_issimple(Item *a): Item_bool_func(a) {} + longlong val_int(); + optimize_type select_optimize() const { return OPTIMIZE_NONE; } + const char *func_name() const { return "st_issimple"; } + void fix_length_and_dec() { maybe_null= 1; } +}; + +class Item_func_isclosed: public Item_bool_func +{ +public: + Item_func_isclosed(Item *a): Item_bool_func(a) {} + longlong val_int(); + optimize_type select_optimize() const { return OPTIMIZE_NONE; } + const char *func_name() const { return "st_isclosed"; } + void fix_length_and_dec() { maybe_null= 1; } +}; + +class Item_func_dimension: public Item_int_func +{ + String value; +public: + Item_func_dimension(Item *a): Item_int_func(a) {} + longlong val_int(); + const char *func_name() const { return "st_dimension"; } + void fix_length_and_dec() { max_length= 10; maybe_null= 1; } +}; + +class Item_func_x: public Item_real_func +{ + String value; +public: + Item_func_x(Item *a): Item_real_func(a) {} + double val_real(); + const char *func_name() const { return "st_x"; } + void fix_length_and_dec() + { + Item_real_func::fix_length_and_dec(); + maybe_null= 1; + } +}; + + +class Item_func_y: public Item_real_func +{ + String value; +public: + Item_func_y(Item *a): Item_real_func(a) {} + double val_real(); + const char *func_name() const { return "st_y"; } + void fix_length_and_dec() + { + Item_real_func::fix_length_and_dec(); + maybe_null= 1; + } +}; + + +class Item_func_numgeometries: public Item_int_func +{ + String value; +public: + Item_func_numgeometries(Item *a): Item_int_func(a) {} + longlong val_int(); + const char *func_name() const { return "st_numgeometries"; } + void fix_length_and_dec() { max_length= 10; maybe_null= 1; } +}; + + +class Item_func_numinteriorring: public Item_int_func +{ + String value; +public: + Item_func_numinteriorring(Item *a): Item_int_func(a) {} + longlong val_int(); + const char *func_name() const { return "st_numinteriorrings"; } + void fix_length_and_dec() { max_length= 10; maybe_null= 1; } +}; + + +class Item_func_numpoints: public Item_int_func +{ + String value; +public: + Item_func_numpoints(Item *a): Item_int_func(a) {} + longlong val_int(); + const char *func_name() const { return "st_numpoints"; } + void fix_length_and_dec() { max_length= 10; maybe_null= 1; } +}; + + +class Item_func_area: public Item_real_func +{ + String value; +public: + Item_func_area(Item *a): Item_real_func(a) {} + double val_real(); + const char *func_name() const { return "st_area"; } + void fix_length_and_dec() + { + Item_real_func::fix_length_and_dec(); + maybe_null= 1; + } +}; + + +class Item_func_glength: public Item_real_func +{ + String value; +public: + Item_func_glength(Item *a): Item_real_func(a) {} + double val_real(); + const char *func_name() const { return "st_length"; } + void fix_length_and_dec() + { + Item_real_func::fix_length_and_dec(); + maybe_null= 1; + } +}; + + +class Item_func_srid: public Item_int_func +{ + String value; +public: + Item_func_srid(Item *a): Item_int_func(a) {} + longlong val_int(); + const char *func_name() const { return "srid"; } + void fix_length_and_dec() { max_length= 10; maybe_null= 1; } +}; + + +class Item_func_distance: public Item_real_func +{ + String tmp_value1; + String tmp_value2; + Gcalc_heap collector; + Gcalc_function func; + Gcalc_scan_iterator scan_it; +public: + Item_func_distance(Item *a, Item *b): Item_real_func(a, b) {} + double val_real(); + const char *func_name() const { return "st_distance"; } +}; + +#define GEOM_NEW(thd, obj_constructor) new (thd->mem_root) obj_constructor + +#else /*HAVE_SPATIAL*/ + +#define GEOM_NEW(thd, obj_constructor) NULL + +#endif /*HAVE_SPATIAL*/ +#endif /* ITEM_GEOFUNC_INCLUDED */ diff --git a/database/include/mysql/private/item_row.h b/database/include/mysql/private/item_row.h new file mode 100644 index 0000000..d21f28a --- /dev/null +++ b/database/include/mysql/private/item_row.h @@ -0,0 +1,92 @@ +#ifndef ITEM_ROW_INCLUDED +#define ITEM_ROW_INCLUDED + +/* + Copyright (c) 2002, 2010, Oracle and/or its affiliates. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +class Item_row: public Item +{ + Item **items; + table_map used_tables_cache, not_null_tables_cache; + uint arg_count; + bool const_item_cache; + bool with_null; +public: + Item_row(List &); + Item_row(Item_row *item): + Item(), + items(item->items), + used_tables_cache(item->used_tables_cache), + not_null_tables_cache(0), + arg_count(item->arg_count), + const_item_cache(item->const_item_cache), + with_null(0) + {} + Item_row(Item *item); + + enum Type type() const { return ROW_ITEM; }; + void illegal_method_call(const char *); + bool is_null() { return null_value; } + void make_field(Send_field *) + { + illegal_method_call((const char*)"make_field"); + }; + double val_real() + { + illegal_method_call((const char*)"val"); + return 0; + }; + longlong val_int() + { + illegal_method_call((const char*)"val_int"); + return 0; + }; + String *val_str(String *) + { + illegal_method_call((const char*)"val_str"); + return 0; + }; + my_decimal *val_decimal(my_decimal *) + { + illegal_method_call((const char*)"val_decimal"); + return 0; + }; + bool fix_fields(THD *thd, Item **ref); + void fix_after_pullout(st_select_lex *new_parent, Item **ref); + void cleanup(); + void split_sum_func(THD *thd, Item **ref_pointer_array, List &fields); + table_map used_tables() const { return used_tables_cache; }; + bool const_item() const { return const_item_cache; }; + enum Item_result result_type() const { return ROW_RESULT; } + Item_result cmp_type() const { return ROW_RESULT; } + void update_used_tables(); + table_map not_null_tables() const { return not_null_tables_cache; } + virtual void print(String *str, enum_query_type query_type); + + bool walk(Item_processor processor, bool walk_subquery, uchar *arg); + Item *transform(Item_transformer transformer, uchar *arg); + bool eval_not_null_tables(uchar *opt_arg); + + uint cols() { return arg_count; } + Item* element_index(uint i) { return items[i]; } + Item** addr(uint i) { return items + i; } + bool check_cols(uint c); + bool null_inside() { return with_null; }; + void bring_value(); + bool check_vcol_func_processor(uchar *int_arg) {return FALSE; } +}; + +#endif /* ITEM_ROW_INCLUDED */ diff --git a/database/include/mysql/private/item_strfunc.h b/database/include/mysql/private/item_strfunc.h new file mode 100644 index 0000000..b91912c --- /dev/null +++ b/database/include/mysql/private/item_strfunc.h @@ -0,0 +1,1079 @@ +#ifndef ITEM_STRFUNC_INCLUDED +#define ITEM_STRFUNC_INCLUDED + +/* + Copyright (c) 2000, 2011, Oracle and/or its affiliates. + Copyright (c) 2009, 2013, Monty Program Ab. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + + +/* This file defines all string functions */ + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif + +extern size_t username_char_length; + +class MY_LOCALE; + +class Item_str_func :public Item_func +{ +protected: + /** + Sets the result value of the function an empty string, using the current + character set. No memory is allocated. + @retval A pointer to the str_value member. + */ + String *make_empty_result() + { + /* + Reset string length to an empty string. We don't use str_value.set() as + we don't want to free and potentially have to reallocate the buffer + for each call. + */ + str_value.length(0); + str_value.set_charset(collation.collation); + return &str_value; + } +public: + Item_str_func() :Item_func() { decimals=NOT_FIXED_DEC; } + Item_str_func(Item *a) :Item_func(a) {decimals=NOT_FIXED_DEC; } + Item_str_func(Item *a,Item *b) :Item_func(a,b) { decimals=NOT_FIXED_DEC; } + Item_str_func(Item *a,Item *b,Item *c) :Item_func(a,b,c) { decimals=NOT_FIXED_DEC; } + Item_str_func(Item *a,Item *b,Item *c,Item *d) :Item_func(a,b,c,d) {decimals=NOT_FIXED_DEC; } + Item_str_func(Item *a,Item *b,Item *c,Item *d, Item* e) :Item_func(a,b,c,d,e) {decimals=NOT_FIXED_DEC; } + Item_str_func(List &list) :Item_func(list) {decimals=NOT_FIXED_DEC; } + longlong val_int(); + double val_real(); + my_decimal *val_decimal(my_decimal *); + enum Item_result result_type () const { return STRING_RESULT; } + void left_right_max_length(); + bool fix_fields(THD *thd, Item **ref); +}; + + + +/* + Functions that return values with ASCII repertoire +*/ +class Item_str_ascii_func :public Item_str_func +{ + String ascii_buf; +public: + Item_str_ascii_func() :Item_str_func() {} + Item_str_ascii_func(Item *a) :Item_str_func(a) {} + Item_str_ascii_func(Item *a,Item *b) :Item_str_func(a,b) {} + Item_str_ascii_func(Item *a,Item *b,Item *c) :Item_str_func(a,b,c) {} + String *val_str(String *str) + { + return val_str_from_val_str_ascii(str, &ascii_buf); + } + virtual String *val_str_ascii(String *)= 0; +}; + + +class Item_func_md5 :public Item_str_ascii_func +{ + String tmp_value; +public: + Item_func_md5(Item *a) :Item_str_ascii_func(a) {} + String *val_str_ascii(String *); + void fix_length_and_dec(); + const char *func_name() const { return "md5"; } +}; + + +class Item_func_sha :public Item_str_ascii_func +{ +public: + Item_func_sha(Item *a) :Item_str_ascii_func(a) {} + String *val_str_ascii(String *); + void fix_length_and_dec(); + const char *func_name() const { return "sha"; } +}; + +class Item_func_sha2 :public Item_str_ascii_func +{ +public: + Item_func_sha2(Item *a, Item *b) :Item_str_ascii_func(a, b) {} + String *val_str_ascii(String *); + void fix_length_and_dec(); + const char *func_name() const { return "sha2"; } +}; + +class Item_func_aes_encrypt :public Item_str_func +{ +public: + Item_func_aes_encrypt(Item *a, Item *b) :Item_str_func(a,b) {} + String *val_str(String *); + void fix_length_and_dec(); + const char *func_name() const { return "aes_encrypt"; } +}; + +class Item_func_aes_decrypt :public Item_str_func +{ +public: + Item_func_aes_decrypt(Item *a, Item *b) :Item_str_func(a,b) {} + String *val_str(String *); + void fix_length_and_dec(); + const char *func_name() const { return "aes_decrypt"; } +}; + + +class Item_func_concat :public Item_str_func +{ + String tmp_value; +public: + Item_func_concat(List &list) :Item_str_func(list) {} + Item_func_concat(Item *a,Item *b) :Item_str_func(a,b) {} + String *val_str(String *); + void fix_length_and_dec(); + const char *func_name() const { return "concat"; } +}; + +class Item_func_concat_ws :public Item_str_func +{ + String tmp_value; +public: + Item_func_concat_ws(List &list) :Item_str_func(list) {} + String *val_str(String *); + void fix_length_and_dec(); + const char *func_name() const { return "concat_ws"; } + table_map not_null_tables() const { return 0; } +}; + +class Item_func_reverse :public Item_str_func +{ + String tmp_value; +public: + Item_func_reverse(Item *a) :Item_str_func(a) {} + String *val_str(String *); + void fix_length_and_dec(); + const char *func_name() const { return "reverse"; } +}; + + +class Item_func_replace :public Item_str_func +{ + String tmp_value,tmp_value2; +public: + Item_func_replace(Item *org,Item *find,Item *replace) + :Item_str_func(org,find,replace) {} + String *val_str(String *); + void fix_length_and_dec(); + const char *func_name() const { return "replace"; } +}; + + +class Item_func_insert :public Item_str_func +{ + String tmp_value; +public: + Item_func_insert(Item *org,Item *start,Item *length,Item *new_str) + :Item_str_func(org,start,length,new_str) {} + String *val_str(String *); + void fix_length_and_dec(); + const char *func_name() const { return "insert"; } +}; + + +class Item_str_conv :public Item_str_func +{ +protected: + uint multiply; + my_charset_conv_case converter; + String tmp_value; +public: + Item_str_conv(Item *item) :Item_str_func(item) {} + String *val_str(String *); +}; + + +class Item_func_lcase :public Item_str_conv +{ +public: + Item_func_lcase(Item *item) :Item_str_conv(item) {} + const char *func_name() const { return "lcase"; } + void fix_length_and_dec(); +}; + +class Item_func_ucase :public Item_str_conv +{ +public: + Item_func_ucase(Item *item) :Item_str_conv(item) {} + const char *func_name() const { return "ucase"; } + void fix_length_and_dec(); +}; + + +class Item_func_left :public Item_str_func +{ + String tmp_value; +public: + Item_func_left(Item *a,Item *b) :Item_str_func(a,b) {} + String *val_str(String *); + void fix_length_and_dec(); + const char *func_name() const { return "left"; } +}; + + +class Item_func_right :public Item_str_func +{ + String tmp_value; +public: + Item_func_right(Item *a,Item *b) :Item_str_func(a,b) {} + String *val_str(String *); + void fix_length_and_dec(); + const char *func_name() const { return "right"; } +}; + + +class Item_func_substr :public Item_str_func +{ + String tmp_value; +public: + Item_func_substr(Item *a,Item *b) :Item_str_func(a,b) {} + Item_func_substr(Item *a,Item *b,Item *c) :Item_str_func(a,b,c) {} + String *val_str(String *); + void fix_length_and_dec(); + const char *func_name() const { return "substr"; } +}; + + +class Item_func_substr_index :public Item_str_func +{ + String tmp_value; +public: + Item_func_substr_index(Item *a,Item *b,Item *c) :Item_str_func(a,b,c) {} + String *val_str(String *); + void fix_length_and_dec(); + const char *func_name() const { return "substring_index"; } +}; + + +class Item_func_trim :public Item_str_func +{ +protected: + String tmp_value; + String remove; + String *trimmed_value(String *res, uint32 offset, uint32 length) + { + tmp_value.set(*res, offset, length); + /* + Make sure to return correct charset and collation: + TRIM(0x000000 FROM _ucs2 0x0061) + should set charset to "binary" rather than to "ucs2". + */ + tmp_value.set_charset(collation.collation); + return &tmp_value; + } + String *non_trimmed_value(String *res) + { + return trimmed_value(res, 0, res->length()); + } +public: + Item_func_trim(Item *a,Item *b) :Item_str_func(a,b) {} + Item_func_trim(Item *a) :Item_str_func(a) {} + String *val_str(String *); + void fix_length_and_dec(); + const char *func_name() const { return "trim"; } + virtual void print(String *str, enum_query_type query_type); + virtual const char *mode_name() const { return "both"; } +}; + + +class Item_func_ltrim :public Item_func_trim +{ +public: + Item_func_ltrim(Item *a,Item *b) :Item_func_trim(a,b) {} + Item_func_ltrim(Item *a) :Item_func_trim(a) {} + String *val_str(String *); + const char *func_name() const { return "ltrim"; } + const char *mode_name() const { return "leading"; } +}; + + +class Item_func_rtrim :public Item_func_trim +{ +public: + Item_func_rtrim(Item *a,Item *b) :Item_func_trim(a,b) {} + Item_func_rtrim(Item *a) :Item_func_trim(a) {} + String *val_str(String *); + const char *func_name() const { return "rtrim"; } + const char *mode_name() const { return "trailing"; } +}; + + +/* + Item_func_password -- new (4.1.1) PASSWORD() function implementation. + Returns strcat('*', octet2hex(sha1(sha1(password)))). '*' stands for new + password format, sha1(sha1(password) is so-called hash_stage2 value. + Length of returned string is always 41 byte. To find out how entire + authentication procedure works, see comments in password.c. +*/ + +class Item_func_password :public Item_str_ascii_func +{ + char tmp_value[SCRAMBLED_PASSWORD_CHAR_LENGTH+1]; +public: + Item_func_password(Item *a) :Item_str_ascii_func(a) {} + String *val_str_ascii(String *str); + void fix_length_and_dec() + { + fix_length_and_charset(SCRAMBLED_PASSWORD_CHAR_LENGTH, default_charset()); + } + const char *func_name() const { return "password"; } + static char *alloc(THD *thd, const char *password, size_t pass_len); +}; + + +/* + Item_func_old_password -- PASSWORD() implementation used in MySQL 3.21 - 4.0 + compatibility mode. This item is created in sql_yacc.yy when + 'old_passwords' session variable is set, and to handle OLD_PASSWORD() + function. +*/ + +class Item_func_old_password :public Item_str_ascii_func +{ + char tmp_value[SCRAMBLED_PASSWORD_CHAR_LENGTH_323+1]; +public: + Item_func_old_password(Item *a) :Item_str_ascii_func(a) {} + String *val_str_ascii(String *str); + void fix_length_and_dec() + { + fix_length_and_charset(SCRAMBLED_PASSWORD_CHAR_LENGTH_323, default_charset()); + } + const char *func_name() const { return "old_password"; } + static char *alloc(THD *thd, const char *password, size_t pass_len); +}; + + +class Item_func_des_encrypt :public Item_str_func +{ + String tmp_value,tmp_arg; +public: + Item_func_des_encrypt(Item *a) :Item_str_func(a) {} + Item_func_des_encrypt(Item *a, Item *b): Item_str_func(a,b) {} + String *val_str(String *); + void fix_length_and_dec() + { + maybe_null=1; + /* 9 = MAX ((8- (arg_len % 8)) + 1) */ + max_length = args[0]->max_length + 9; + } + const char *func_name() const { return "des_encrypt"; } +}; + +class Item_func_des_decrypt :public Item_str_func +{ + String tmp_value; +public: + Item_func_des_decrypt(Item *a) :Item_str_func(a) {} + Item_func_des_decrypt(Item *a, Item *b): Item_str_func(a,b) {} + String *val_str(String *); + void fix_length_and_dec() + { + maybe_null=1; + /* 9 = MAX ((8- (arg_len % 8)) + 1) */ + max_length= args[0]->max_length; + if (max_length >= 9U) + max_length-= 9U; + } + const char *func_name() const { return "des_decrypt"; } +}; + +class Item_func_encrypt :public Item_str_func +{ + String tmp_value; + + /* Encapsulate common constructor actions */ + void constructor_helper() + { + collation.set(&my_charset_bin); + } +public: + Item_func_encrypt(Item *a) :Item_str_func(a) + { + constructor_helper(); + } + Item_func_encrypt(Item *a, Item *b): Item_str_func(a,b) + { + constructor_helper(); + } + String *val_str(String *); + void fix_length_and_dec() { maybe_null=1; max_length = 13; } + const char *func_name() const { return "encrypt"; } + bool check_vcol_func_processor(uchar *int_arg) + { + return trace_unsupported_by_check_vcol_func_processor(func_name()); + } +}; + +#include "sql_crypt.h" + + +class Item_func_encode :public Item_str_func +{ +private: + /** Whether the PRNG has already been seeded. */ + bool seeded; +protected: + SQL_CRYPT sql_crypt; +public: + Item_func_encode(Item *a, Item *seed): + Item_str_func(a, seed) {} + String *val_str(String *); + void fix_length_and_dec(); + const char *func_name() const { return "encode"; } +protected: + virtual void crypto_transform(String *); +private: + /** Provide a seed for the PRNG sequence. */ + bool seed(); +}; + + +class Item_func_decode :public Item_func_encode +{ +public: + Item_func_decode(Item *a, Item *seed): Item_func_encode(a, seed) {} + const char *func_name() const { return "decode"; } +protected: + void crypto_transform(String *); +}; + + +class Item_func_sysconst :public Item_str_func +{ +public: + Item_func_sysconst() + { collation.set(system_charset_info,DERIVATION_SYSCONST); } + Item *safe_charset_converter(CHARSET_INFO *tocs); + /* + Used to create correct Item name in new converted item in + safe_charset_converter, return string representation of this function + call + */ + virtual const char *fully_qualified_func_name() const = 0; + bool check_vcol_func_processor(uchar *int_arg) + { + return trace_unsupported_by_check_vcol_func_processor( + fully_qualified_func_name()); + } +}; + + +class Item_func_database :public Item_func_sysconst +{ +public: + Item_func_database() :Item_func_sysconst() {} + String *val_str(String *); + void fix_length_and_dec() + { + max_length= MAX_FIELD_NAME * system_charset_info->mbmaxlen; + maybe_null=1; + } + const char *func_name() const { return "database"; } + const char *fully_qualified_func_name() const { return "database()"; } +}; + + +class Item_func_user :public Item_func_sysconst +{ +protected: + bool init (const char *user, const char *host); + +public: + Item_func_user() + { + str_value.set("", 0, system_charset_info); + } + String *val_str(String *) + { + DBUG_ASSERT(fixed == 1); + return (null_value ? 0 : &str_value); + } + bool fix_fields(THD *thd, Item **ref); + void fix_length_and_dec() + { + max_length= (username_char_length + + HOSTNAME_LENGTH + 1) * SYSTEM_CHARSET_MBMAXLEN; + } + const char *func_name() const { return "user"; } + const char *fully_qualified_func_name() const { return "user()"; } + int save_in_field(Field *field, bool no_conversions) + { + return save_str_value_in_field(field, &str_value); + } +}; + + +class Item_func_current_user :public Item_func_user +{ + Name_resolution_context *context; + +public: + Item_func_current_user(Name_resolution_context *context_arg) + : context(context_arg) {} + bool fix_fields(THD *thd, Item **ref); + const char *func_name() const { return "current_user"; } + const char *fully_qualified_func_name() const { return "current_user()"; } +}; + + +class Item_func_soundex :public Item_str_func +{ + String tmp_value; +public: + Item_func_soundex(Item *a) :Item_str_func(a) {} + String *val_str(String *); + void fix_length_and_dec(); + const char *func_name() const { return "soundex"; } +}; + + +class Item_func_elt :public Item_str_func +{ +public: + Item_func_elt(List &list) :Item_str_func(list) {} + double val_real(); + longlong val_int(); + String *val_str(String *str); + void fix_length_and_dec(); + const char *func_name() const { return "elt"; } +}; + + +class Item_func_make_set :public Item_str_func +{ + String tmp_str; + +public: + Item_func_make_set(List &list) :Item_str_func(list) {} + String *val_str(String *str); + void fix_length_and_dec(); + const char *func_name() const { return "make_set"; } +}; + + +class Item_func_format :public Item_str_ascii_func +{ + String tmp_str; + MY_LOCALE *locale; +public: + Item_func_format(Item *org, Item *dec): Item_str_ascii_func(org, dec) {} + Item_func_format(Item *org, Item *dec, Item *lang): + Item_str_ascii_func(org, dec, lang) {} + + MY_LOCALE *get_locale(Item *item); + String *val_str_ascii(String *); + void fix_length_and_dec(); + const char *func_name() const { return "format"; } + virtual void print(String *str, enum_query_type query_type); +}; + + +class Item_func_char :public Item_str_func +{ +public: + Item_func_char(List &list) :Item_str_func(list) + { collation.set(&my_charset_bin); } + Item_func_char(List &list, CHARSET_INFO *cs) :Item_str_func(list) + { collation.set(cs); } + String *val_str(String *); + void fix_length_and_dec() + { + max_length= arg_count * 4; + } + const char *func_name() const { return "char"; } +}; + + +class Item_func_repeat :public Item_str_func +{ + String tmp_value; +public: + Item_func_repeat(Item *arg1,Item *arg2) :Item_str_func(arg1,arg2) {} + String *val_str(String *); + void fix_length_and_dec(); + const char *func_name() const { return "repeat"; } +}; + + +class Item_func_rpad :public Item_str_func +{ + String tmp_value, rpad_str; +public: + Item_func_rpad(Item *arg1,Item *arg2,Item *arg3) + :Item_str_func(arg1,arg2,arg3) {} + String *val_str(String *); + void fix_length_and_dec(); + const char *func_name() const { return "rpad"; } +}; + + +class Item_func_lpad :public Item_str_func +{ + String tmp_value, lpad_str; +public: + Item_func_lpad(Item *arg1,Item *arg2,Item *arg3) + :Item_str_func(arg1,arg2,arg3) {} + String *val_str(String *); + void fix_length_and_dec(); + const char *func_name() const { return "lpad"; } +}; + + +class Item_func_conv :public Item_str_func +{ +public: + Item_func_conv(Item *a,Item *b,Item *c) :Item_str_func(a,b,c) {} + const char *func_name() const { return "conv"; } + String *val_str(String *); + void fix_length_and_dec() + { + collation.set(default_charset()); + max_length=64; + maybe_null= 1; + } +}; + + +class Item_func_hex :public Item_str_ascii_func +{ + String tmp_value; +public: + Item_func_hex(Item *a) :Item_str_ascii_func(a) {} + const char *func_name() const { return "hex"; } + String *val_str_ascii(String *); + void fix_length_and_dec() + { + collation.set(default_charset()); + decimals=0; + fix_char_length(args[0]->max_length * 2); + } +}; + +class Item_func_unhex :public Item_str_func +{ + String tmp_value; +public: + Item_func_unhex(Item *a) :Item_str_func(a) + { + /* there can be bad hex strings */ + maybe_null= 1; + } + const char *func_name() const { return "unhex"; } + String *val_str(String *); + void fix_length_and_dec() + { + collation.set(&my_charset_bin); + decimals=0; + max_length=(1+args[0]->max_length)/2; + } +}; + + +#ifndef DBUG_OFF +class Item_func_like_range :public Item_str_func +{ +protected: + String min_str; + String max_str; + const bool is_min; +public: + Item_func_like_range(Item *a, Item *b, bool is_min_arg) + :Item_str_func(a, b), is_min(is_min_arg) + { maybe_null= 1; } + String *val_str(String *); + void fix_length_and_dec() + { + collation.set(args[0]->collation); + decimals=0; + max_length= MAX_BLOB_WIDTH; + } +}; + + +class Item_func_like_range_min :public Item_func_like_range +{ +public: + Item_func_like_range_min(Item *a, Item *b) + :Item_func_like_range(a, b, true) { } + const char *func_name() const { return "like_range_min"; } +}; + + +class Item_func_like_range_max :public Item_func_like_range +{ +public: + Item_func_like_range_max(Item *a, Item *b) + :Item_func_like_range(a, b, false) { } + const char *func_name() const { return "like_range_max"; } +}; +#endif + + +class Item_func_binary :public Item_str_func +{ +public: + Item_func_binary(Item *a) :Item_str_func(a) {} + String *val_str(String *a) + { + DBUG_ASSERT(fixed == 1); + String *tmp=args[0]->val_str(a); + null_value=args[0]->null_value; + if (tmp) + tmp->set_charset(&my_charset_bin); + return tmp; + } + void fix_length_and_dec() + { + collation.set(&my_charset_bin); + max_length=args[0]->max_length; + } + virtual void print(String *str, enum_query_type query_type); + const char *func_name() const { return "cast_as_binary"; } +}; + + +class Item_load_file :public Item_str_func +{ + String tmp_value; +public: + Item_load_file(Item *a) :Item_str_func(a) {} + String *val_str(String *); + const char *func_name() const { return "load_file"; } + void fix_length_and_dec() + { + collation.set(&my_charset_bin, DERIVATION_COERCIBLE); + maybe_null=1; + max_length=MAX_BLOB_WIDTH; + } + bool check_vcol_func_processor(uchar *int_arg) + { + return trace_unsupported_by_check_vcol_func_processor(func_name()); + } +}; + + +class Item_func_export_set: public Item_str_func +{ + public: + Item_func_export_set(Item *a,Item *b,Item* c) :Item_str_func(a,b,c) {} + Item_func_export_set(Item *a,Item *b,Item* c,Item* d) :Item_str_func(a,b,c,d) {} + Item_func_export_set(Item *a,Item *b,Item* c,Item* d,Item* e) :Item_str_func(a,b,c,d,e) {} + String *val_str(String *str); + void fix_length_and_dec(); + const char *func_name() const { return "export_set"; } +}; + +class Item_func_inet_ntoa : public Item_str_func +{ +public: + Item_func_inet_ntoa(Item *a) :Item_str_func(a) + { + } + String* val_str(String* str); + const char *func_name() const { return "inet_ntoa"; } + void fix_length_and_dec() + { + decimals= 0; + fix_length_and_charset(3 * 8 + 7, default_charset()); + maybe_null= 1; + } +}; + +class Item_func_quote :public Item_str_func +{ + String tmp_value; +public: + Item_func_quote(Item *a) :Item_str_func(a) {} + const char *func_name() const { return "quote"; } + String *val_str(String *); + void fix_length_and_dec() + { + collation.set(args[0]->collation); + ulonglong max_result_length= (ulonglong) args[0]->max_length * 2 + + 2 * collation.collation->mbmaxlen; + max_length= (uint32) min(max_result_length, MAX_BLOB_WIDTH); + } +}; + +class Item_func_conv_charset :public Item_str_func +{ + bool use_cached_value; + String tmp_value; +public: + bool safe; + CHARSET_INFO *conv_charset; // keep it public + Item_func_conv_charset(Item *a, CHARSET_INFO *cs) :Item_str_func(a) + { conv_charset= cs; use_cached_value= 0; safe= 0; } + Item_func_conv_charset(Item *a, CHARSET_INFO *cs, bool cache_if_const) + :Item_str_func(a) + { + conv_charset= cs; + if (cache_if_const && args[0]->const_item() && !args[0]->is_expensive()) + { + uint errors= 0; + String tmp, *str= args[0]->val_str(&tmp); + if (!str || str_value.copy(str->ptr(), str->length(), + str->charset(), conv_charset, &errors)) + null_value= 1; + use_cached_value= 1; + str_value.mark_as_const(); + safe= (errors == 0); + } + else + { + use_cached_value= 0; + /* + Conversion from and to "binary" is safe. + Conversion to Unicode is safe. + Other kind of conversions are potentially lossy. + */ + safe= (args[0]->collation.collation == &my_charset_bin || + cs == &my_charset_bin || + (cs->state & MY_CS_UNICODE)); + } + } + String *val_str(String *); + longlong val_int() + { + if (args[0]->result_type() == STRING_RESULT) + return Item_str_func::val_int(); + longlong res= args[0]->val_int(); + if ((null_value= args[0]->null_value)) + return 0; + return res; + } + double val_real() + { + if (args[0]->result_type() == STRING_RESULT) + return Item_str_func::val_real(); + double res= args[0]->val_real(); + if ((null_value= args[0]->null_value)) + return 0; + return res; + } + my_decimal *val_decimal(my_decimal *d) + { + if (args[0]->result_type() == STRING_RESULT) + return Item_str_func::val_decimal(d); + my_decimal *res= args[0]->val_decimal(d); + if ((null_value= args[0]->null_value)) + return NULL; + return res; + } + bool get_date(MYSQL_TIME *ltime, ulonglong fuzzydate) + { + if (args[0]->result_type() == STRING_RESULT) + return Item_str_func::get_date(ltime, fuzzydate); + bool res= args[0]->get_date(ltime, fuzzydate); + if ((null_value= args[0]->null_value)) + return 1; + return res; + } + void fix_length_and_dec(); + const char *func_name() const { return "convert"; } + virtual void print(String *str, enum_query_type query_type); +}; + +class Item_func_set_collation :public Item_str_func +{ +public: + Item_func_set_collation(Item *a, Item *b) :Item_str_func(a,b) {}; + String *val_str(String *); + void fix_length_and_dec(); + bool eq(const Item *item, bool binary_cmp) const; + const char *func_name() const { return "collate"; } + enum Functype functype() const { return COLLATE_FUNC; } + virtual void print(String *str, enum_query_type query_type); + Item_field *filed_for_view_update() + { + /* this function is transparent for view updating */ + return args[0]->filed_for_view_update(); + } +}; + +class Item_func_charset :public Item_str_func +{ +public: + Item_func_charset(Item *a) :Item_str_func(a) {} + String *val_str(String *); + const char *func_name() const { return "charset"; } + void fix_length_and_dec() + { + collation.set(system_charset_info); + max_length= 64 * collation.collation->mbmaxlen; // should be enough + maybe_null= 0; + }; + table_map not_null_tables() const { return 0; } +}; + +class Item_func_collation :public Item_str_func +{ +public: + Item_func_collation(Item *a) :Item_str_func(a) {} + String *val_str(String *); + const char *func_name() const { return "collation"; } + void fix_length_and_dec() + { + collation.set(system_charset_info); + max_length= 64 * collation.collation->mbmaxlen; // should be enough + maybe_null= 0; + }; + table_map not_null_tables() const { return 0; } +}; + +class Item_func_crc32 :public Item_int_func +{ + String value; +public: + Item_func_crc32(Item *a) :Item_int_func(a) { unsigned_flag= 1; } + const char *func_name() const { return "crc32"; } + void fix_length_and_dec() { max_length=10; } + longlong val_int(); +}; + +class Item_func_uncompressed_length : public Item_int_func +{ + String value; +public: + Item_func_uncompressed_length(Item *a):Item_int_func(a){} + const char *func_name() const{return "uncompressed_length";} + void fix_length_and_dec() { max_length=10; maybe_null= true; } + longlong val_int(); +}; + +#ifdef HAVE_COMPRESS +#define ZLIB_DEPENDED_FUNCTION ; +#else +#define ZLIB_DEPENDED_FUNCTION { null_value=1; return 0; } +#endif + +class Item_func_compress: public Item_str_func +{ + String buffer; +public: + Item_func_compress(Item *a):Item_str_func(a){} + void fix_length_and_dec(){max_length= (args[0]->max_length*120)/100+12;} + const char *func_name() const{return "compress";} + String *val_str(String *) ZLIB_DEPENDED_FUNCTION +}; + +class Item_func_uncompress: public Item_str_func +{ + String buffer; +public: + Item_func_uncompress(Item *a): Item_str_func(a){} + void fix_length_and_dec(){ maybe_null= 1; max_length= MAX_BLOB_WIDTH; } + const char *func_name() const{return "uncompress";} + String *val_str(String *) ZLIB_DEPENDED_FUNCTION +}; + + +class Item_func_uuid: public Item_str_func +{ +public: + Item_func_uuid(): Item_str_func() {} + void fix_length_and_dec() + { + collation.set(system_charset_info, + DERIVATION_COERCIBLE, MY_REPERTOIRE_ASCII); + fix_char_length(MY_UUID_STRING_LENGTH); + } + bool const_item() const { return false; } + table_map used_tables() const { return RAND_TABLE_BIT; } + const char *func_name() const{ return "uuid"; } + String *val_str(String *); + bool check_vcol_func_processor(uchar *int_arg) + { + return trace_unsupported_by_check_vcol_func_processor(func_name()); + } +}; + + +class Item_func_dyncol_create: public Item_str_func +{ +protected: + DYNCALL_CREATE_DEF *defs; + DYNAMIC_COLUMN_VALUE *vals; + uint *nums; + void prepare_arguments(); + void cleanup_arguments(); + void print_arguments(String *str, enum_query_type query_type); +public: + Item_func_dyncol_create(List &args, DYNCALL_CREATE_DEF *dfs); + bool fix_fields(THD *thd, Item **ref); + void fix_length_and_dec(); + const char *func_name() const{ return "column_create"; } + String *val_str(String *); + virtual void print(String *str, enum_query_type query_type); +}; + + +class Item_func_dyncol_add: public Item_func_dyncol_create +{ +public: + Item_func_dyncol_add(List &args, DYNCALL_CREATE_DEF *dfs) + :Item_func_dyncol_create(args, dfs) + {} + const char *func_name() const{ return "column_add"; } + String *val_str(String *); + virtual void print(String *str, enum_query_type query_type); +}; + + +/* + The following functions is always called from an Item_cast function +*/ + +class Item_dyncol_get: public Item_str_func +{ +public: + Item_dyncol_get(Item *str, Item *num) + :Item_str_func(str, num) + { + max_length= MAX_DYNAMIC_COLUMN_LENGTH; + } + void fix_length_and_dec() + { maybe_null= 1; } + /* Mark that collation can change between calls */ + bool dynamic_result() { return 1; } + + const char *func_name() const { return "column_get"; } + String *val_str(String *); + longlong val_int(); + double val_real(); + my_decimal *val_decimal(my_decimal *); + bool get_dyn_value(DYNAMIC_COLUMN_VALUE *val, String *tmp); + bool get_date(MYSQL_TIME *ltime, ulonglong fuzzydate); + void print(String *str, enum_query_type query_type); +}; + + +class Item_func_dyncol_list: public Item_str_func +{ +public: + Item_func_dyncol_list(Item *str) :Item_str_func(str) {}; + void fix_length_and_dec() { maybe_null= 1; max_length= MAX_BLOB_WIDTH; }; + const char *func_name() const{ return "column_list"; } + String *val_str(String *); +}; + +#endif /* ITEM_STRFUNC_INCLUDED */ diff --git a/database/include/mysql/private/item_subselect.h b/database/include/mysql/private/item_subselect.h new file mode 100644 index 0000000..f72ceda --- /dev/null +++ b/database/include/mysql/private/item_subselect.h @@ -0,0 +1,1447 @@ +#ifndef ITEM_SUBSELECT_INCLUDED +#define ITEM_SUBSELECT_INCLUDED + +/* Copyright (c) 2002, 2011, Oracle and/or its affiliates. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* subselect Item */ + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif + +#include + +class st_select_lex; +class st_select_lex_unit; +class JOIN; +class select_result_interceptor; +class subselect_engine; +class subselect_hash_sj_engine; +class Item_bool_func2; +class Comp_creator; + +typedef class st_select_lex SELECT_LEX; + +/** + Convenience typedef used in this file, and further used by any files + including this file. +*/ +typedef Comp_creator* (*chooser_compare_func_creator)(bool invert); +class Cached_item; + +/* base class for subselects */ + +class Item_subselect :public Item_result_field +{ + bool value_assigned; /* value already assigned to subselect */ + bool own_engine; /* the engine was not taken from other Item_subselect */ +protected: + /* thread handler, will be assigned in fix_fields only */ + THD *thd; + /* old engine if engine was changed */ + subselect_engine *old_engine; + /* cache of used external tables */ + table_map used_tables_cache; + /* allowed number of columns (1 for single value subqueries) */ + uint max_columns; + /* where subquery is placed */ + enum_parsing_place parsing_place; + /* work with 'substitution' */ + bool have_to_be_excluded; + /* cache of constant state */ + bool const_item_cache; + + bool inside_first_fix_fields; + bool done_first_fix_fields; + Item *expr_cache; + /* + Set to TRUE if at optimization or execution time we determine that this + item's value is a constant. We need this member because it is not possible + to substitute 'this' with a constant item. + */ + bool forced_const; +#ifndef DBUG_OFF + /* Count the number of times this subquery predicate has been executed. */ + uint exec_counter; +#endif +public: + /* + Used inside Item_subselect::fix_fields() according to this scenario: + > Item_subselect::fix_fields + > engine->prepare + > child_join->prepare + (Here we realize we need to do the rewrite and set + substitution= some new Item, eg. Item_in_optimizer ) + < child_join->prepare + < engine->prepare + *ref= substitution; + substitution= NULL; + < Item_subselect::fix_fields + */ + /* TODO make this protected member again. */ + Item *substitution; + /* engine that perform execution of subselect (single select or union) */ + /* TODO make this protected member again. */ + subselect_engine *engine; + /* unit of subquery */ + st_select_lex_unit *unit; + /* A reference from inside subquery predicate to somewhere outside of it */ + class Ref_to_outside : public Sql_alloc + { + public: + st_select_lex *select; /* Select where the reference is pointing to */ + /* + What is being referred. This may be NULL when we're referring to an + aggregate function. + */ + Item *item; + }; + /* + References from within this subquery to somewhere outside of it (i.e. to + parent select, grandparent select, etc) + */ + List upper_refs; + st_select_lex *parent_select; + + /* + TRUE<=>Table Elimination has made it redundant to evaluate this select + (and so it is not part of QEP, etc) + */ + bool eliminated; + + /* subquery is transformed */ + bool changed; + + /* TRUE <=> The underlying SELECT is correlated w.r.t some ancestor select */ + bool is_correlated; + + enum subs_type {UNKNOWN_SUBS, SINGLEROW_SUBS, + EXISTS_SUBS, IN_SUBS, ALL_SUBS, ANY_SUBS}; + + Item_subselect(); + + virtual subs_type substype() { return UNKNOWN_SUBS; } + bool is_in_predicate() + { + return (substype() == Item_subselect::IN_SUBS || + substype() == Item_subselect::ALL_SUBS || + substype() == Item_subselect::ANY_SUBS); + } + + /* + We need this method, because some compilers do not allow 'this' + pointer in constructor initialization list, but we need to pass a pointer + to subselect Item class to select_result_interceptor's constructor. + */ + virtual void init (st_select_lex *select_lex, + select_result_interceptor *result); + + ~Item_subselect(); + void cleanup(); + virtual void reset() + { + eliminated= FALSE; + null_value= 1; + } + /** + Set the subquery result to a default value consistent with the semantics of + the result row produced for queries with implicit grouping. + */ + void no_rows_in_result()= 0; + virtual bool select_transformer(JOIN *join); + bool assigned() { return value_assigned; } + void assigned(bool a) { value_assigned= a; } + enum Type type() const; + bool is_null() + { + update_null_value(); + return null_value; + } + bool fix_fields(THD *thd, Item **ref); + bool mark_as_dependent(THD *thd, st_select_lex *select, Item *item); + void fix_after_pullout(st_select_lex *new_parent, Item **ref); + void recalc_used_tables(st_select_lex *new_parent, bool after_pullout); + virtual bool exec(); + /* + If subquery optimization or execution determines that the subquery has + an empty result, mark the subquery predicate as a constant value. + */ + void make_const() + { + used_tables_cache= 0; + const_item_cache= 0; + forced_const= TRUE; + } + virtual void fix_length_and_dec(); + table_map used_tables() const; + table_map not_null_tables() const { return 0; } + bool const_item() const; + inline table_map get_used_tables_cache() { return used_tables_cache; } + Item *get_tmp_table_item(THD *thd); + void update_used_tables(); + virtual void print(String *str, enum_query_type query_type); + virtual bool have_guarded_conds() { return FALSE; } + bool change_engine(subselect_engine *eng) + { + old_engine= engine; + engine= eng; + return eng == 0; + } + bool engine_changed(subselect_engine *eng) { return engine != eng; } + /* + True if this subquery has been already evaluated. Implemented only for + single select and union subqueries only. + */ + bool is_evaluated() const; + bool is_uncacheable() const; + bool is_expensive(); + + /* + Used by max/min subquery to initialize value presence registration + mechanism. Engine call this method before rexecution query. + */ + virtual void reset_value_registration() {} + enum_parsing_place place() { return parsing_place; } + bool walk(Item_processor processor, bool walk_subquery, uchar *arg); + bool mark_as_eliminated_processor(uchar *arg); + bool eliminate_subselect_processor(uchar *arg); + bool set_fake_select_as_master_processor(uchar *arg); + bool enumerate_field_refs_processor(uchar *arg); + bool check_vcol_func_processor(uchar *int_arg) + { + return trace_unsupported_by_check_vcol_func_processor("subselect"); + } + /** + Callback to test if an IN predicate is expensive. + + @notes + The return value affects the behavior of make_cond_for_table(). + + @retval TRUE if the predicate is expensive + @retval FALSE otherwise + */ + bool is_expensive_processor(uchar *arg) { return is_expensive(); } + + /** + Get the SELECT_LEX structure associated with this Item. + @return the SELECT_LEX structure associated with this Item + */ + st_select_lex* get_select_lex(); + const char *func_name() const { DBUG_ASSERT(0); return "subselect"; } + virtual bool expr_cache_is_needed(THD *); + virtual void get_cache_parameters(List ¶meters); + virtual bool is_subquery_processor (uchar *opt_arg) { return 1; } + bool limit_index_condition_pushdown_processor(uchar *opt_arg) + { + return TRUE; + } + + friend class select_result_interceptor; + friend class Item_in_optimizer; + friend bool Item_field::fix_fields(THD *, Item **); + friend int Item_field::fix_outer_field(THD *, Field **, Item **); + friend bool Item_ref::fix_fields(THD *, Item **); + friend void mark_select_range_as_dependent(THD*, + st_select_lex*, st_select_lex*, + Field*, Item*, Item_ident*); + friend bool convert_join_subqueries_to_semijoins(JOIN *join); +}; + +/* single value subselect */ + +class Item_cache; +class Item_singlerow_subselect :public Item_subselect +{ +protected: + Item_cache *value, **row; +public: + Item_singlerow_subselect(st_select_lex *select_lex); + Item_singlerow_subselect() :Item_subselect(), value(0), row (0) + {} + + void cleanup(); + subs_type substype() { return SINGLEROW_SUBS; } + + void reset(); + void no_rows_in_result(); + bool select_transformer(JOIN *join); + void store(uint i, Item* item); + double val_real(); + longlong val_int (); + String *val_str (String *); + my_decimal *val_decimal(my_decimal *); + bool val_bool(); + bool get_date(MYSQL_TIME *ltime, ulonglong fuzzydate); + enum Item_result result_type() const; + enum Item_result cmp_type() const; + enum_field_types field_type() const; + void fix_length_and_dec(); + + uint cols(); + Item* element_index(uint i) { return reinterpret_cast(row[i]); } + Item** addr(uint i) { return (Item**)row + i; } + bool check_cols(uint c); + bool null_inside(); + void bring_value(); + + /** + This method is used to implement a special case of semantic tree + rewriting, mandated by a SQL:2003 exception in the specification. + The only caller of this method is handle_sql2003_note184_exception(), + see the code there for more details. + Note that this method breaks the object internal integrity, by + removing it's association with the corresponding SELECT_LEX, + making this object orphan from the parse tree. + No other method, beside the destructor, should be called on this + object, as it is now invalid. + @return the SELECT_LEX structure that was given in the constructor. + */ + st_select_lex* invalidate_and_restore_select_lex(); + + Item* expr_cache_insert_transformer(uchar *thd_arg); + + friend class select_singlerow_subselect; +}; + +/* used in static ALL/ANY optimization */ +class select_max_min_finder_subselect; +class Item_maxmin_subselect :public Item_singlerow_subselect +{ +protected: + bool max; + bool was_values; // Set if we have found at least one row +public: + Item_maxmin_subselect(THD *thd, Item_subselect *parent, + st_select_lex *select_lex, bool max); + virtual void print(String *str, enum_query_type query_type); + void cleanup(); + bool any_value() { return was_values; } + void register_value() { was_values= TRUE; } + void reset_value_registration() { was_values= FALSE; } + void no_rows_in_result(); +}; + +/* exists subselect */ + +class Item_exists_subselect :public Item_subselect +{ +protected: + bool value; /* value of this item (boolean: exists/not-exists) */ + + void init_length_and_dec(); + +public: + Item_exists_subselect(st_select_lex *select_lex); + Item_exists_subselect(): Item_subselect() {} + + subs_type substype() { return EXISTS_SUBS; } + void reset() + { + eliminated= FALSE; + value= 0; + } + void no_rows_in_result(); + + enum Item_result result_type() const { return INT_RESULT;} + longlong val_int(); + double val_real(); + String *val_str(String*); + my_decimal *val_decimal(my_decimal *); + bool val_bool(); + void fix_length_and_dec(); + virtual void print(String *str, enum_query_type query_type); + + Item* expr_cache_insert_transformer(uchar *thd_arg); + + friend class select_exists_subselect; + friend class subselect_uniquesubquery_engine; + friend class subselect_indexsubquery_engine; +}; + + +TABLE_LIST * const NO_JOIN_NEST=(TABLE_LIST*)0x1; + +/* + Possible methods to execute an IN predicate. These are set by the optimizer + based on user-set optimizer switches, semantic analysis and cost comparison. +*/ +#define SUBS_NOT_TRANSFORMED 0 /* No execution method was chosen for this IN. */ +/* The Final decision about the strategy is made. */ +#define SUBS_STRATEGY_CHOSEN 1 +#define SUBS_SEMI_JOIN 2 /* IN was converted to semi-join. */ +#define SUBS_IN_TO_EXISTS 4 /* IN was converted to correlated EXISTS. */ +#define SUBS_MATERIALIZATION 8 /* Execute IN via subquery materialization. */ +/* Partial matching substrategies of MATERIALIZATION. */ +#define SUBS_PARTIAL_MATCH_ROWID_MERGE 16 +#define SUBS_PARTIAL_MATCH_TABLE_SCAN 32 +/* ALL/ANY will be transformed with max/min optimization */ +/* The subquery has not aggregates, transform it into a MAX/MIN query. */ +#define SUBS_MAXMIN_INJECTED 64 +/* The subquery has aggregates, use a special max/min subselect engine. */ +#define SUBS_MAXMIN_ENGINE 128 + + +/** + Representation of IN subquery predicates of the form + "left_expr IN (SELECT ...)". + + @details + This class has: + - A "subquery execution engine" (as a subclass of Item_subselect) that allows + it to evaluate subqueries. (and this class participates in execution by + having was_null variable where part of execution result is stored. + - Transformation methods (todo: more on this). + + This class is not used directly, it is "wrapped" into Item_in_optimizer + which provides some small bits of subquery evaluation. +*/ + +class Item_in_subselect :public Item_exists_subselect +{ +protected: + /* + Cache of the left operand of the subquery predicate. Allocated in the + runtime memory root, for each execution, thus need not be freed. + */ + List *left_expr_cache; + bool first_execution; + + /* + expr & optimizer used in subselect rewriting to store Item for + all JOIN in UNION + */ + Item *expr; + bool was_null; + bool abort_on_null; + /* A bitmap of possible execution strategies for an IN predicate. */ + uchar in_strategy; +public: + Item_in_optimizer *optimizer; +protected: + /* Used to trigger on/off conditions that were pushed down to subselect */ + bool *pushed_cond_guards; + Comp_creator *func; + +protected: + bool init_cond_guards(); + bool select_in_like_transformer(JOIN *join); + bool single_value_transformer(JOIN *join); + bool row_value_transformer(JOIN * join); + bool fix_having(Item *having, st_select_lex *select_lex); + bool create_single_in_to_exists_cond(JOIN * join, + Item **where_item, + Item **having_item); + bool create_row_in_to_exists_cond(JOIN * join, + Item **where_item, + Item **having_item); +public: + Item *left_expr; + /* + Important for PS/SP: left_expr_orig is the item that left_expr originally + pointed at. That item is allocated on the statement arena, while + left_expr could later be changed to something on the execution arena. + */ + Item *left_expr_orig; + /* Priority of this predicate in the convert-to-semi-join-nest process. */ + int sj_convert_priority; + /* + Used by subquery optimizations to keep track about in which clause this + subquery predicate is located: + NO_JOIN_NEST - the predicate is an AND-part of the WHERE + join nest pointer - the predicate is an AND-part of ON expression + of a join nest + NULL - for all other locations + */ + TABLE_LIST *emb_on_expr_nest; + /* May be TRUE only for the candidates to semi-join conversion */ + bool do_not_convert_to_sj; + /* + Types of left_expr and subquery's select list allow to perform subquery + materialization. Currently, we set this to FALSE when it as well could + be TRUE. This is to be properly addressed with fix for BUG#36752. + */ + bool types_allow_materialization; + + /* + Same as above, but they also allow to scan the materialized table. + */ + bool sjm_scan_allowed; + + /* + JoinTaB Materialization (JTBM) members + */ + + /* + TRUE <=> This subselect has been converted into non-mergeable semi-join + table. + */ + bool is_jtbm_merged; + + /* (Applicable if is_jtbm_merged==TRUE) Time required to run the materialized join */ + double jtbm_read_time; + + /* (Applicable if is_jtbm_merged==TRUE) Number of output rows in materialized join */ + double jtbm_record_count; + + /* + (Applicable if is_jtbm_merged==TRUE) TRUE <=> The materialized subselect is + a degenerate subselect which produces 0 or 1 rows, which we know at + optimization phase. + Examples: + 1. subquery has "Impossible WHERE": + + SELECT * FROM ot WHERE ot.column IN (SELECT it.col FROM it WHERE 2 > 3) + + 2. Subquery produces one row which opt_sum.cc is able to get with one lookup: + + SELECT * FROM ot WHERE ot.column IN (SELECT MAX(it.key_col) FROM it) + */ + bool is_jtbm_const_tab; + + /* + (Applicable if is_jtbm_const_tab==TRUE) Whether the subquery has produced + the row (or not) + */ + bool jtbm_const_row_found; + + /* + TRUE<=>this is a flattenable semi-join, false overwise. + */ + bool is_flattenable_semijoin; + + /* + TRUE<=>registered in the list of semijoins in outer select + */ + bool is_registered_semijoin; + + /* + Used to determine how this subselect item is represented in the item tree, + in case there is a need to locate it there and replace with something else. + Two options are possible: + 1. This item is there 'as-is'. + 1. This item is wrapped within Item_in_optimizer. + */ + Item *original_item() + { + return is_flattenable_semijoin ? (Item*)this : (Item*)optimizer; + } + + bool *get_cond_guard(int i) + { + return pushed_cond_guards ? pushed_cond_guards + i : NULL; + } + void set_cond_guard_var(int i, bool v) + { + if ( pushed_cond_guards) + pushed_cond_guards[i]= v; + } + bool have_guarded_conds() { return test(pushed_cond_guards); } + + Item_func_not_all *upper_item; // point on NOT/NOP before ALL/SOME subquery + + Item_in_subselect(Item * left_expr, st_select_lex *select_lex); + Item_in_subselect() + :Item_exists_subselect(), left_expr_cache(0), first_execution(TRUE), + abort_on_null(0), in_strategy(SUBS_NOT_TRANSFORMED), optimizer(0), + pushed_cond_guards(NULL), func(NULL), emb_on_expr_nest(NULL), + do_not_convert_to_sj(FALSE), is_jtbm_merged(FALSE), + is_jtbm_const_tab(FALSE), upper_item(0) + {} + void cleanup(); + subs_type substype() { return IN_SUBS; } + void reset() + { + eliminated= FALSE; + value= 0; + null_value= 0; + was_null= 0; + } + bool select_transformer(JOIN *join); + bool create_in_to_exists_cond(JOIN *join_arg); + bool inject_in_to_exists_cond(JOIN *join_arg); + + virtual bool exec(); + longlong val_int(); + double val_real(); + String *val_str(String*); + my_decimal *val_decimal(my_decimal *); + void update_null_value () { (void) val_bool(); } + bool val_bool(); + void top_level_item() { abort_on_null=1; } + inline bool is_top_level_item() { return abort_on_null; } + bool test_limit(st_select_lex_unit *unit); + virtual void print(String *str, enum_query_type query_type); + bool fix_fields(THD *thd, Item **ref); + void fix_length_and_dec(); + void fix_after_pullout(st_select_lex *new_parent, Item **ref); + bool const_item() const + { + return Item_subselect::const_item() && left_expr->const_item(); + } + void update_used_tables(); + bool setup_mat_engine(); + bool init_left_expr_cache(); + /* Inform 'this' that it was computed, and contains a valid result. */ + void set_first_execution() { if (first_execution) first_execution= FALSE; } + bool expr_cache_is_needed(THD *thd); + inline bool left_expr_has_null(); + void disable_cond_guard_for_const_null_left_expr(int i) + { + if (left_expr->const_item() && !left_expr->is_expensive()) + { + if (left_expr->element_index(i)->is_null()) + set_cond_guard_var(i,FALSE); + } + } + + int optimize(double *out_rows, double *cost); + /* + Return the identifier that we could use to identify the subquery for the + user. + */ + int get_identifier(); + + void mark_as_condition_AND_part(TABLE_LIST *embedding) + { + emb_on_expr_nest= embedding; + } + + void block_conversion_to_sj () { do_not_convert_to_sj= TRUE; } + + bool test_strategy(uchar strategy) + { return test(in_strategy & strategy); } + + /** + Test that the IN strategy was chosen for execution. This is so + when the CHOSEN flag is ON, and there is no other strategy. + */ + bool test_set_strategy(uchar strategy) + { + DBUG_ASSERT(strategy == SUBS_SEMI_JOIN || + strategy == SUBS_IN_TO_EXISTS || + strategy == SUBS_MATERIALIZATION || + strategy == SUBS_PARTIAL_MATCH_ROWID_MERGE || + strategy == SUBS_PARTIAL_MATCH_TABLE_SCAN || + strategy == SUBS_MAXMIN_INJECTED || + strategy == SUBS_MAXMIN_ENGINE); + return ((in_strategy & SUBS_STRATEGY_CHOSEN) && + (in_strategy & ~SUBS_STRATEGY_CHOSEN) == strategy); + } + + bool is_set_strategy() + { return test(in_strategy & SUBS_STRATEGY_CHOSEN); } + + bool has_strategy() + { return in_strategy != SUBS_NOT_TRANSFORMED; } + + void add_strategy (uchar strategy) + { + DBUG_ASSERT(strategy != SUBS_NOT_TRANSFORMED); + DBUG_ASSERT(!(strategy & SUBS_STRATEGY_CHOSEN)); + /* + TODO: PS re-execution breaks this condition, because + check_and_do_in_subquery_rewrites() is called for each reexecution + and re-adds the same strategies. + DBUG_ASSERT(!(in_strategy & SUBS_STRATEGY_CHOSEN)); + */ + in_strategy|= strategy; + } + + void reset_strategy(uchar strategy) + { + DBUG_ASSERT(strategy != SUBS_NOT_TRANSFORMED); + in_strategy= strategy; + } + + void set_strategy(uchar strategy) + { + /* Check that only one strategy is set for execution. */ + DBUG_ASSERT(strategy == SUBS_SEMI_JOIN || + strategy == SUBS_IN_TO_EXISTS || + strategy == SUBS_MATERIALIZATION || + strategy == SUBS_PARTIAL_MATCH_ROWID_MERGE || + strategy == SUBS_PARTIAL_MATCH_TABLE_SCAN || + strategy == SUBS_MAXMIN_INJECTED || + strategy == SUBS_MAXMIN_ENGINE); + in_strategy= (SUBS_STRATEGY_CHOSEN | strategy); + } + + friend class Item_ref_null_helper; + friend class Item_is_not_null_test; + friend class Item_in_optimizer; + friend class subselect_indexsubquery_engine; + friend class subselect_hash_sj_engine; + friend class subselect_partial_match_engine; +}; + + +/* ALL/ANY/SOME subselect */ +class Item_allany_subselect :public Item_in_subselect +{ +public: + chooser_compare_func_creator func_creator; + bool all; + + Item_allany_subselect(Item * left_expr, chooser_compare_func_creator fc, + st_select_lex *select_lex, bool all); + + void cleanup(); + // only ALL subquery has upper not + subs_type substype() { return all?ALL_SUBS:ANY_SUBS; } + bool select_transformer(JOIN *join); + void create_comp_func(bool invert) { func= func_creator(invert); } + virtual void print(String *str, enum_query_type query_type); + bool is_maxmin_applicable(JOIN *join); + bool transform_into_max_min(JOIN *join); + void no_rows_in_result(); +}; + + +class subselect_engine: public Sql_alloc +{ +protected: + select_result_interceptor *result; /* results storage class */ + THD *thd; /* pointer to current THD */ + Item_subselect *item; /* item, that use this engine */ + enum Item_result res_type; /* type of results */ + enum Item_result cmp_type; /* how to compare the results */ + enum_field_types res_field_type; /* column type of the results */ + bool maybe_null; /* may be null (first item in select) */ +public: + + enum enum_engine_type {ABSTRACT_ENGINE, SINGLE_SELECT_ENGINE, + UNION_ENGINE, UNIQUESUBQUERY_ENGINE, + INDEXSUBQUERY_ENGINE, HASH_SJ_ENGINE, + ROWID_MERGE_ENGINE, TABLE_SCAN_ENGINE}; + + subselect_engine(Item_subselect *si, + select_result_interceptor *res): + thd(NULL) + { + result= res; + item= si; + cmp_type= res_type= STRING_RESULT; + res_field_type= MYSQL_TYPE_VAR_STRING; + maybe_null= 0; + } + virtual ~subselect_engine() {}; // to satisfy compiler + virtual void cleanup()= 0; + + /* + Also sets "thd" for subselect_engine::result. + Should be called before prepare(). + */ + void set_thd(THD *thd_arg); + THD * get_thd() { return thd ? thd : current_thd; } + virtual int prepare(THD *)= 0; + virtual void fix_length_and_dec(Item_cache** row)= 0; + /* + Execute the engine + + SYNOPSIS + exec() + + DESCRIPTION + Execute the engine. The result of execution is subquery value that is + either captured by previously set up select_result-based 'sink' or + stored somewhere by the exec() method itself. + + A required side effect: If at least one pushed-down predicate is + disabled, subselect_engine->no_rows() must return correct result after + the exec() call. + + RETURN + 0 - OK + 1 - Either an execution error, or the engine was "changed", and the + caller should call exec() again for the new engine. + */ + virtual int exec()= 0; + virtual uint cols()= 0; /* return number of columns in select */ + virtual uint8 uncacheable()= 0; /* query is uncacheable */ + enum Item_result type() { return res_type; } + enum Item_result cmptype() { return cmp_type; } + enum_field_types field_type() { return res_field_type; } + virtual void exclude()= 0; + virtual bool may_be_null() { return maybe_null; }; + virtual table_map upper_select_const_tables()= 0; + static table_map calc_const_tables(TABLE_LIST *); + static table_map calc_const_tables(List &list); + virtual void print(String *str, enum_query_type query_type)= 0; + virtual bool change_result(Item_subselect *si, + select_result_interceptor *result, + bool temp= FALSE)= 0; + virtual bool no_tables()= 0; + virtual bool is_executed() const { return FALSE; } + /* Check if subquery produced any rows during last query execution */ + virtual bool no_rows() = 0; + virtual enum_engine_type engine_type() { return ABSTRACT_ENGINE; } + virtual int get_identifier() { DBUG_ASSERT(0); return 0; } +protected: + void set_row(List &item_list, Item_cache **row); +}; + + +class subselect_single_select_engine: public subselect_engine +{ + bool prepared; /* simple subselect is prepared */ + bool executed; /* simple subselect is executed */ + st_select_lex *select_lex; /* corresponding select_lex */ + JOIN * join; /* corresponding JOIN structure */ +public: + subselect_single_select_engine(st_select_lex *select, + select_result_interceptor *result, + Item_subselect *item); + void cleanup(); + int prepare(THD *thd); + void fix_length_and_dec(Item_cache** row); + int exec(); + uint cols(); + uint8 uncacheable(); + void exclude(); + table_map upper_select_const_tables(); + virtual void print (String *str, enum_query_type query_type); + bool change_result(Item_subselect *si, + select_result_interceptor *result, + bool temp); + bool no_tables(); + bool may_be_null(); + bool is_executed() const { return executed; } + bool no_rows(); + virtual enum_engine_type engine_type() { return SINGLE_SELECT_ENGINE; } + int get_identifier(); + + friend class subselect_hash_sj_engine; + friend class Item_in_subselect; + friend bool setup_jtbm_semi_joins(JOIN *join, List *join_list, + Item **join_where); + +}; + + +class subselect_union_engine: public subselect_engine +{ + st_select_lex_unit *unit; /* corresponding unit structure */ +public: + subselect_union_engine(st_select_lex_unit *u, + select_result_interceptor *result, + Item_subselect *item); + void cleanup(); + int prepare(THD *); + void fix_length_and_dec(Item_cache** row); + int exec(); + uint cols(); + uint8 uncacheable(); + void exclude(); + table_map upper_select_const_tables(); + virtual void print (String *str, enum_query_type query_type); + bool change_result(Item_subselect *si, + select_result_interceptor *result, + bool temp= FALSE); + bool no_tables(); + bool is_executed() const; + bool no_rows(); + virtual enum_engine_type engine_type() { return UNION_ENGINE; } +}; + + +struct st_join_table; + + +/* + A subquery execution engine that evaluates the subquery by doing one index + lookup in a unique index. + + This engine is used to resolve subqueries in forms + + outer_expr IN (SELECT tbl.unique_key FROM tbl WHERE subq_where) + + or, tuple-based: + + (oe1, .. oeN) IN (SELECT uniq_key_part1, ... uniq_key_partK + FROM tbl WHERE subqwhere) + + i.e. the subquery is a single table SELECT without GROUP BY, aggregate + functions, etc. +*/ + +class subselect_uniquesubquery_engine: public subselect_engine +{ +protected: + st_join_table *tab; + Item *cond; /* The WHERE condition of subselect */ + /* + TRUE<=> last execution produced empty set. Valid only when left + expression is NULL. + */ + bool empty_result_set; +public: + + // constructor can assign THD because it will be called after JOIN::prepare + subselect_uniquesubquery_engine(THD *thd_arg, st_join_table *tab_arg, + Item_subselect *subs, Item *where) + :subselect_engine(subs, 0), tab(tab_arg), cond(where) + {} + ~subselect_uniquesubquery_engine(); + void cleanup(); + int prepare(THD *); + void fix_length_and_dec(Item_cache** row); + int exec(); + uint cols() { return 1; } + uint8 uncacheable() { return UNCACHEABLE_DEPENDENT_INJECTED; } + void exclude(); + table_map upper_select_const_tables() { return 0; } + virtual void print (String *str, enum_query_type query_type); + bool change_result(Item_subselect *si, + select_result_interceptor *result, + bool temp= FALSE); + bool no_tables(); + int index_lookup(); /* TIMOUR: this method needs refactoring. */ + int scan_table(); + bool copy_ref_key(bool skip_constants); + bool no_rows() { return empty_result_set; } + virtual enum_engine_type engine_type() { return UNIQUESUBQUERY_ENGINE; } +}; + + +class subselect_indexsubquery_engine: public subselect_uniquesubquery_engine +{ + /* FALSE for 'ref', TRUE for 'ref-or-null'. */ + bool check_null; + /* + The "having" clause. This clause (further reffered to as "artificial + having") was inserted by subquery transformation code. It contains + Item(s) that have a side-effect: they record whether the subquery has + produced a row with NULL certain components. We need to use it for cases + like + (oe1, oe2) IN (SELECT t.key, t.no_key FROM t1) + where we do index lookup on t.key=oe1 but need also to check if there + was a row such that t.no_key IS NULL. + + NOTE: This is currently here and not in the uniquesubquery_engine. Ideally + it should have been in uniquesubquery_engine in order to allow execution of + subqueries like + + (oe1, oe2) IN (SELECT primary_key, non_key_maybe_null_field FROM tbl) + + We could use uniquesubquery_engine for the first component and let + Item_is_not_null_test( non_key_maybe_null_field) to handle the second. + + However, subqueries like the above are currently not handled by index + lookup-based subquery engines, the engine applicability check misses + them: it doesn't switch the engine for case of artificial having and + [eq_]ref access (only for artifical having + ref_or_null or no having). + The above example subquery is handled as a full-blown SELECT with eq_ref + access to one table. + + Due to this limitation, the "artificial having" currently needs to be + checked by only in indexsubquery_engine. + */ + Item *having; +public: + + // constructor can assign THD because it will be called after JOIN::prepare + subselect_indexsubquery_engine(THD *thd_arg, st_join_table *tab_arg, + Item_subselect *subs, Item *where, + Item *having_arg, bool chk_null) + :subselect_uniquesubquery_engine(thd_arg, tab_arg, subs, where), + check_null(chk_null), + having(having_arg) + {} + int exec(); + virtual void print (String *str, enum_query_type query_type); + virtual enum_engine_type engine_type() { return INDEXSUBQUERY_ENGINE; } +}; + +/* + This function is actually defined in sql_parse.cc, but it depends on + chooser_compare_func_creator defined in this file. + */ +Item * all_any_subquery_creator(Item *left_expr, + chooser_compare_func_creator cmp, + bool all, + SELECT_LEX *select_lex); + + +inline bool Item_subselect::is_evaluated() const +{ + return engine->is_executed(); +} + + +inline bool Item_subselect::is_uncacheable() const +{ + return engine->uncacheable(); +} + +/** + Compute an IN predicate via a hash semi-join. This class is responsible for + the materialization of the subquery, and the selection of the correct and + optimal execution method (e.g. direct index lookup, or partial matching) for + the IN predicate. +*/ + +class subselect_hash_sj_engine : public subselect_engine +{ +public: + /* The table into which the subquery is materialized. */ + TABLE *tmp_table; + /* TRUE if the subquery was materialized into a temp table. */ + bool is_materialized; + /* + The old engine already chosen at parse time and stored in permanent memory. + Through this member we can re-create and re-prepare materialize_join for + each execution of a prepared statement. We also reuse the functionality + of subselect_single_select_engine::[prepare | cols]. + */ + subselect_single_select_engine *materialize_engine; + /* + QEP to execute the subquery and materialize its result into a + temporary table. Created during the first call to exec(). + */ + JOIN *materialize_join; + /* + A conjunction of all the equality condtions between all pairs of expressions + that are arguments of an IN predicate. We need these to post-filter some + IN results because index lookups sometimes match values that are actually + not equal to the search key in SQL terms. + */ + Item_cond_and *semi_join_conds; + Name_resolution_context *semi_join_conds_context; + + + subselect_hash_sj_engine(THD *thd, Item_subselect *in_predicate, + subselect_single_select_engine *old_engine) + : subselect_engine(in_predicate, NULL), + tmp_table(NULL), is_materialized(FALSE), materialize_engine(old_engine), + materialize_join(NULL), semi_join_conds(NULL), lookup_engine(NULL), + count_partial_match_columns(0), count_null_only_columns(0), + count_columns_with_nulls(0), strategy(UNDEFINED) + {} + ~subselect_hash_sj_engine(); + + bool init(List *tmp_columns, uint subquery_id); + void cleanup(); + int prepare(THD *); + int exec(); + virtual void print(String *str, enum_query_type query_type); + uint cols() + { + return materialize_engine->cols(); + } + uint8 uncacheable() { return materialize_engine->uncacheable(); } + table_map upper_select_const_tables() { return 0; } + bool no_rows() { return !tmp_table->file->stats.records; } + virtual enum_engine_type engine_type() { return HASH_SJ_ENGINE; } + /* + TODO: factor out all these methods in a base subselect_index_engine class + because all of them have dummy implementations and should never be called. + */ + void fix_length_and_dec(Item_cache** row);//=>base class + void exclude(); //=>base class + //=>base class + bool change_result(Item_subselect *si, + select_result_interceptor *result, + bool temp= FALSE); + bool no_tables();//=>base class + +protected: + /* The engine used to compute the IN predicate. */ + subselect_engine *lookup_engine; + /* Keyparts of the only non-NULL composite index in a rowid merge. */ + MY_BITMAP non_null_key_parts; + /* Keyparts of the single column indexes with NULL, one keypart per index. */ + MY_BITMAP partial_match_key_parts; + uint count_partial_match_columns; + uint count_null_only_columns; + uint count_columns_with_nulls; + /* Possible execution strategies that can be used to compute hash semi-join.*/ + enum exec_strategy { + UNDEFINED, + COMPLETE_MATCH, /* Use regular index lookups. */ + PARTIAL_MATCH, /* Use some partial matching strategy. */ + PARTIAL_MATCH_MERGE, /* Use partial matching through index merging. */ + PARTIAL_MATCH_SCAN, /* Use partial matching through table scan. */ + IMPOSSIBLE /* Subquery materialization is not applicable. */ + }; + /* The chosen execution strategy. Computed after materialization. */ + exec_strategy strategy; + exec_strategy get_strategy_using_schema(); + exec_strategy get_strategy_using_data(); + ulonglong rowid_merge_buff_size(bool has_non_null_key, + bool has_covering_null_row, + MY_BITMAP *partial_match_key_parts); + void choose_partial_match_strategy(bool has_non_null_key, + bool has_covering_null_row, + MY_BITMAP *partial_match_key_parts); + bool make_semi_join_conds(); + subselect_uniquesubquery_engine* make_unique_engine(); + +}; + + +/* + Distinguish the type of (0-based) row numbers from the type of the index into + an array of row numbers. +*/ +typedef ha_rows rownum_t; + + +/* + An Ordered_key is an in-memory table index that allows O(log(N)) time + lookups of a multi-part key. + + If the index is over a single column, then this column may contain NULLs, and + the NULLs are stored and tested separately for NULL in O(1) via is_null(). + Multi-part indexes assume that the indexed columns do not contain NULLs. + + TODO: + = Due to the unnatural assymetry between single and multi-part indexes, it + makes sense to somehow refactor or extend the class. + + = This class can be refactored into a base abstract interface, and two + subclasses: + - one to represent single-column indexes, and + - another to represent multi-column indexes. + Such separation would allow slightly more efficient implementation of + the single-column indexes. + = The current design requires such indexes to be fully recreated for each + PS (re)execution, however most of the comprising objects can be reused. +*/ + +class Ordered_key : public Sql_alloc +{ +protected: + /* + Index of the key in an array of keys. This index allows to + construct (sub)sets of keys represented by bitmaps. + */ + uint keyid; + /* The table being indexed. */ + TABLE *tbl; + /* The columns being indexed. */ + Item_field **key_columns; + /* Number of elements in 'key_columns' (number of key parts). */ + uint key_column_count; + /* + An expression, or sequence of expressions that forms the search key. + The search key is a sequence when it is Item_row. Each element of the + sequence is accessible via Item::element_index(int i). + */ + Item *search_key; + +/* Value index related members. */ + /* + The actual value index, consists of a sorted sequence of row numbers. + */ + rownum_t *key_buff; + /* Number of elements in key_buff. */ + ha_rows key_buff_elements; + /* Current element in 'key_buff'. */ + ha_rows cur_key_idx; + /* + Mapping from row numbers to row ids. The element row_num_to_rowid[i] + contains a buffer with the rowid for the row numbered 'i'. + The memory for this member is not maintanined by this class because + all Ordered_key indexes of the same table share the same mapping. + */ + uchar *row_num_to_rowid; + /* + A sequence of predicates to compare the search key with the corresponding + columns of a table row from the index. + */ + Item_func_lt **compare_pred; + +/* Null index related members. */ + MY_BITMAP null_key; + /* Count of NULLs per column. */ + ha_rows null_count; + /* The row number that contains the first NULL in a column. */ + rownum_t min_null_row; + /* The row number that contains the last NULL in a column. */ + rownum_t max_null_row; + +protected: + bool alloc_keys_buffers(); + /* + Quick sort comparison function that compares two rows of the same table + indentfied with their row numbers. + */ + int cmp_keys_by_row_data(rownum_t a, rownum_t b); + static int cmp_keys_by_row_data_and_rownum(Ordered_key *key, + rownum_t* a, rownum_t* b); + + int cmp_key_with_search_key(rownum_t row_num); + +public: + Ordered_key(uint keyid_arg, TABLE *tbl_arg, + Item *search_key_arg, ha_rows null_count_arg, + ha_rows min_null_row_arg, ha_rows max_null_row_arg, + uchar *row_num_to_rowid_arg); + ~Ordered_key(); + void cleanup(); + /* Initialize a multi-column index. */ + bool init(MY_BITMAP *columns_to_index); + /* Initialize a single-column index. */ + bool init(int col_idx); + + uint get_column_count() { return key_column_count; } + uint get_keyid() { return keyid; } + uint get_field_idx(uint i) + { + DBUG_ASSERT(i < key_column_count); + return key_columns[i]->field->field_index; + } + rownum_t get_min_null_row() { return min_null_row; } + rownum_t get_max_null_row() { return max_null_row; } + MY_BITMAP * get_null_key() { return &null_key; } + ha_rows get_null_count() { return null_count; } + /* + Get the search key element that corresponds to the i-th key part of this + index. + */ + Item *get_search_key(uint i) + { + return search_key->element_index(key_columns[i]->field->field_index); + } + void add_key(rownum_t row_num) + { + /* The caller must know how many elements to add. */ + DBUG_ASSERT(key_buff_elements && cur_key_idx < key_buff_elements); + key_buff[cur_key_idx]= row_num; + ++cur_key_idx; + } + + void sort_keys(); + double null_selectivity(); + + /* + Position the current element at the first row that matches the key. + The key itself is propagated by evaluating the current value(s) of + this->search_key. + */ + bool lookup(); + /* Move the current index cursor to the first key. */ + void first() + { + DBUG_ASSERT(key_buff_elements); + cur_key_idx= 0; + } + /* TODO */ + bool next_same(); + /* Move the current index cursor to the next key. */ + bool next() + { + DBUG_ASSERT(key_buff_elements); + if (cur_key_idx < key_buff_elements - 1) + { + ++cur_key_idx; + return TRUE; + } + return FALSE; + }; + /* Return the current index element. */ + rownum_t current() + { + DBUG_ASSERT(key_buff_elements && cur_key_idx < key_buff_elements); + return key_buff[cur_key_idx]; + } + + void set_null(rownum_t row_num) + { + bitmap_set_bit(&null_key, (uint)row_num); + } + bool is_null(rownum_t row_num) + { + /* + Indexes consisting of only NULLs do not have a bitmap buffer at all. + Their only initialized member is 'n_bits', which is equal to the number + of temp table rows. + */ + if (null_count == tbl->file->stats.records) + { + DBUG_ASSERT(tbl->file->stats.records == null_key.n_bits); + return TRUE; + } + if (row_num > max_null_row || row_num < min_null_row) + return FALSE; + return bitmap_is_set(&null_key, (uint)row_num); + } + void print(String *str); +}; + + +class subselect_partial_match_engine : public subselect_engine +{ +protected: + /* The temporary table that contains a materialized subquery. */ + TABLE *tmp_table; + /* + The engine used to check whether an IN predicate is TRUE or not. If not + TRUE, then subselect_rowid_merge_engine further distinguishes between + FALSE and UNKNOWN. + */ + subselect_uniquesubquery_engine *lookup_engine; + /* A list of equalities between each pair of IN operands. */ + List *equi_join_conds; + /* + True if there is an all NULL row in tmp_table. If so, then if there is + no complete match, there is a guaranteed partial match. + */ + bool has_covering_null_row; + + /* + True if all nullable columns of tmp_table consist of only NULL values. + If so, then if there is a match in the non-null columns, there is a + guaranteed partial match. + */ + bool has_covering_null_columns; + uint count_columns_with_nulls; + +protected: + virtual bool partial_match()= 0; +public: + subselect_partial_match_engine(subselect_uniquesubquery_engine *engine_arg, + TABLE *tmp_table_arg, Item_subselect *item_arg, + select_result_interceptor *result_arg, + List *equi_join_conds_arg, + bool has_covering_null_row_arg, + bool has_covering_null_columns_arg, + uint count_columns_with_nulls_arg); + int prepare(THD *thd_arg) { set_thd(thd_arg); return 0; } + int exec(); + void fix_length_and_dec(Item_cache**) {} + uint cols() { /* TODO: what is the correct value? */ return 1; } + uint8 uncacheable() { return UNCACHEABLE_DEPENDENT; } + void exclude() {} + table_map upper_select_const_tables() { return 0; } + bool change_result(Item_subselect*, + select_result_interceptor*, + bool temp= FALSE) + { DBUG_ASSERT(FALSE); return false; } + bool no_tables() { return false; } + bool no_rows() + { + /* + TODO: It is completely unclear what is the semantics of this + method. The current result is computed so that the call to no_rows() + from Item_in_optimizer::val_int() sets Item_in_optimizer::null_value + correctly. + */ + return !(((Item_in_subselect *) item)->null_value); + } + void print(String*, enum_query_type); + + friend void subselect_hash_sj_engine::cleanup(); +}; + + +class subselect_rowid_merge_engine: public subselect_partial_match_engine +{ +protected: + /* + Mapping from row numbers to row ids. The rowids are stored sequentially + in the array - rowid[i] is located in row_num_to_rowid + i * rowid_length. + */ + uchar *row_num_to_rowid; + /* + A subset of all the keys for which there is a match for the same row. + Used during execution. Computed for each outer reference + */ + MY_BITMAP matching_keys; + /* + The columns of the outer reference that are NULL. Computed for each + outer reference. + */ + MY_BITMAP matching_outer_cols; + /* + Indexes of row numbers, sorted by . If an + index may contain NULLs, the NULLs are stored efficiently in a bitmap. + + The indexes are sorted by the selectivity of their NULL sub-indexes, the + one with the fewer NULLs is first. Thus, if there is any index on + non-NULL columns, it is contained in keys[0]. + */ + Ordered_key **merge_keys; + /* The number of elements in merge_keys. */ + uint merge_keys_count; + /* The NULL bitmaps of merge keys.*/ + MY_BITMAP **null_bitmaps; + /* + An index on all non-NULL columns of 'tmp_table'. The index has the + logical form: <[v_i1 | ... | v_ik], rownum>. It allows to find the row + number where the columns c_i1,...,c1_k contain the values v_i1,...,v_ik. + If such an index exists, it is always the first element of 'merge_keys'. + */ + Ordered_key *non_null_key; + /* + Priority queue of Ordered_key indexes, one per NULLable column. + This queue is used by the partial match algorithm in method exec(). + */ + QUEUE pq; +protected: + /* + Comparison function to compare keys in order of decreasing bitmap + selectivity. + */ + static int cmp_keys_by_null_selectivity(Ordered_key **k1, Ordered_key **k2); + /* + Comparison function used by the priority queue pq, the 'smaller' key + is the one with the smaller current row number. + */ + static int cmp_keys_by_cur_rownum(void *arg, uchar *k1, uchar *k2); + + bool test_null_row(rownum_t row_num); + bool exists_complementing_null_row(MY_BITMAP *keys_to_complement); + bool partial_match(); +public: + subselect_rowid_merge_engine(subselect_uniquesubquery_engine *engine_arg, + TABLE *tmp_table_arg, uint merge_keys_count_arg, + bool has_covering_null_row_arg, + bool has_covering_null_columns_arg, + uint count_columns_with_nulls_arg, + Item_subselect *item_arg, + select_result_interceptor *result_arg, + List *equi_join_conds_arg) + :subselect_partial_match_engine(engine_arg, tmp_table_arg, + item_arg, result_arg, equi_join_conds_arg, + has_covering_null_row_arg, + has_covering_null_columns_arg, + count_columns_with_nulls_arg), + merge_keys_count(merge_keys_count_arg), non_null_key(NULL) + {} + ~subselect_rowid_merge_engine(); + bool init(MY_BITMAP *non_null_key_parts, MY_BITMAP *partial_match_key_parts); + void cleanup(); + virtual enum_engine_type engine_type() { return ROWID_MERGE_ENGINE; } +}; + + +class subselect_table_scan_engine: public subselect_partial_match_engine +{ +protected: + bool partial_match(); +public: + subselect_table_scan_engine(subselect_uniquesubquery_engine *engine_arg, + TABLE *tmp_table_arg, Item_subselect *item_arg, + select_result_interceptor *result_arg, + List *equi_join_conds_arg, + bool has_covering_null_row_arg, + bool has_covering_null_columns_arg, + uint count_columns_with_nulls_arg); + void cleanup(); + virtual enum_engine_type engine_type() { return TABLE_SCAN_ENGINE; } +}; +#endif /* ITEM_SUBSELECT_INCLUDED */ diff --git a/database/include/mysql/private/item_sum.h b/database/include/mysql/private/item_sum.h new file mode 100644 index 0000000..79b5fc3 --- /dev/null +++ b/database/include/mysql/private/item_sum.h @@ -0,0 +1,1505 @@ +#ifndef ITEM_SUM_INCLUDED +#define ITEM_SUM_INCLUDED +/* Copyright (c) 2000, 2013 Oracle and/or its affiliates. + Copyright (c) 2008, 2013 Monty Program Ab. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + + +/* classes for sum functions */ + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif + +#include +#include "sql_udf.h" /* udf_handler */ + +class Item_sum; +class Aggregator_distinct; +class Aggregator_simple; + +/** + The abstract base class for the Aggregator_* classes. + It implements the data collection functions (setup/add/clear) + as either pass-through to the real functionality or + as collectors into an Unique (for distinct) structure. + + Note that update_field/reset_field are not in that + class, because they're simply not called when + GROUP BY/DISTINCT can be handled with help of index on grouped + fields (quick_group = 0); +*/ + +class Aggregator : public Sql_alloc +{ + friend class Item_sum; + friend class Item_sum_sum; + friend class Item_sum_count; + friend class Item_sum_avg; + + /* + All members are protected as this class is not usable outside of an + Item_sum descendant. + */ +protected: + /* the aggregate function class to act on */ + Item_sum *item_sum; + +public: + Aggregator (Item_sum *arg): item_sum(arg) {} + virtual ~Aggregator () {} /* Keep gcc happy */ + + enum Aggregator_type { SIMPLE_AGGREGATOR, DISTINCT_AGGREGATOR }; + virtual Aggregator_type Aggrtype() = 0; + + /** + Called before adding the first row. + Allocates and sets up the internal aggregation structures used, + e.g. the Unique instance used to calculate distinct. + */ + virtual bool setup(THD *) = 0; + + /** + Called when we need to wipe out all the data from the aggregator : + all the values acumulated and all the state. + Cleans up the internal structures and resets them to their initial state. + */ + virtual void clear() = 0; + + /** + Called when there's a new value to be aggregated. + Updates the internal state of the aggregator to reflect the new value. + */ + virtual bool add() = 0; + + /** + Called when there are no more data and the final value is to be retrieved. + Finalises the state of the aggregator, so the final result can be retrieved. + */ + virtual void endup() = 0; + + /** Decimal value of being-aggregated argument */ + virtual my_decimal *arg_val_decimal(my_decimal * value) = 0; + /** Floating point value of being-aggregated argument */ + virtual double arg_val_real() = 0; + /** + NULLness of being-aggregated argument. + + @param use_null_value Optimization: to determine if the argument is NULL + we must, in the general case, call is_null() on it, which itself might + call val_*() on it, which might be costly. If you just have called + arg_val*(), you can pass use_null_value=true; this way, arg_is_null() + might avoid is_null() and instead do a cheap read of the Item's null_value + (updated by arg_val*()). + */ + virtual bool arg_is_null(bool use_null_value) = 0; +}; + + +class st_select_lex; + +/** + Class Item_sum is the base class used for special expressions that SQL calls + 'set functions'. These expressions are formed with the help of aggregate + functions such as SUM, MAX, GROUP_CONCAT etc. + + GENERAL NOTES + + A set function cannot be used in certain positions where expressions are + accepted. There are some quite explicable restrictions for the usage of + set functions. + + In the query: + SELECT AVG(b) FROM t1 WHERE SUM(b) > 20 GROUP by a + the usage of the set function AVG(b) is legal, while the usage of SUM(b) + is illegal. A WHERE condition must contain expressions that can be + evaluated for each row of the table. Yet the expression SUM(b) can be + evaluated only for each group of rows with the same value of column a. + In the query: + SELECT AVG(b) FROM t1 WHERE c > 30 GROUP BY a HAVING SUM(b) > 20 + both set function expressions AVG(b) and SUM(b) are legal. + + We can say that in a query without nested selects an occurrence of a + set function in an expression of the SELECT list or/and in the HAVING + clause is legal, while in the WHERE clause it's illegal. + + The general rule to detect whether a set function is legal in a query with + nested subqueries is much more complicated. + + Consider the the following query: + SELECT t1.a FROM t1 GROUP BY t1.a + HAVING t1.a > ALL (SELECT t2.c FROM t2 WHERE SUM(t1.b) < t2.c). + The set function SUM(b) is used here in the WHERE clause of the subquery. + Nevertheless it is legal since it is under the HAVING clause of the query + to which this function relates. The expression SUM(t1.b) is evaluated + for each group defined in the main query, not for groups of the subquery. + + The problem of finding the query where to aggregate a particular + set function is not so simple as it seems to be. + + In the query: + SELECT t1.a FROM t1 GROUP BY t1.a + HAVING t1.a > ALL(SELECT t2.c FROM t2 GROUP BY t2.c + HAVING SUM(t1.a) < t2.c) + the set function can be evaluated for both outer and inner selects. + If we evaluate SUM(t1.a) for the outer query then we get the value of t1.a + multiplied by the cardinality of a group in table t1. In this case + in each correlated subquery SUM(t1.a) is used as a constant. But we also + can evaluate SUM(t1.a) for the inner query. In this case t1.a will be a + constant for each correlated subquery and summation is performed + for each group of table t2. + (Here it makes sense to remind that the query + SELECT c FROM t GROUP BY a HAVING SUM(1) < a + is quite legal in our SQL). + + So depending on what query we assign the set function to we + can get different result sets. + + The general rule to detect the query where a set function is to be + evaluated can be formulated as follows. + Consider a set function S(E) where E is an expression with occurrences + of column references C1, ..., CN. Resolve these column references against + subqueries that contain the set function S(E). Let Q be the innermost + subquery of those subqueries. (It should be noted here that S(E) + in no way can be evaluated in the subquery embedding the subquery Q, + otherwise S(E) would refer to at least one unbound column reference) + If S(E) is used in a construct of Q where set functions are allowed then + we evaluate S(E) in Q. + Otherwise we look for a innermost subquery containing S(E) of those where + usage of S(E) is allowed. + + Let's demonstrate how this rule is applied to the following queries. + + 1. SELECT t1.a FROM t1 GROUP BY t1.a + HAVING t1.a > ALL(SELECT t2.b FROM t2 GROUP BY t2.b + HAVING t2.b > ALL(SELECT t3.c FROM t3 GROUP BY t3.c + HAVING SUM(t1.a+t2.b) < t3.c)) + For this query the set function SUM(t1.a+t2.b) depends on t1.a and t2.b + with t1.a defined in the outermost query, and t2.b defined for its + subquery. The set function is in the HAVING clause of the subquery and can + be evaluated in this subquery. + + 2. SELECT t1.a FROM t1 GROUP BY t1.a + HAVING t1.a > ALL(SELECT t2.b FROM t2 + WHERE t2.b > ALL (SELECT t3.c FROM t3 GROUP BY t3.c + HAVING SUM(t1.a+t2.b) < t3.c)) + Here the set function SUM(t1.a+t2.b)is in the WHERE clause of the second + subquery - the most upper subquery where t1.a and t2.b are defined. + If we evaluate the function in this subquery we violate the context rules. + So we evaluate the function in the third subquery (over table t3) where it + is used under the HAVING clause. + + 3. SELECT t1.a FROM t1 GROUP BY t1.a + HAVING t1.a > ALL(SELECT t2.b FROM t2 + WHERE t2.b > ALL (SELECT t3.c FROM t3 + WHERE SUM(t1.a+t2.b) < t3.c)) + In this query evaluation of SUM(t1.a+t2.b) is not legal neither in the second + nor in the third subqueries. So this query is invalid. + + Mostly set functions cannot be nested. In the query + SELECT t1.a from t1 GROUP BY t1.a HAVING AVG(SUM(t1.b)) > 20 + the expression SUM(b) is not acceptable, though it is under a HAVING clause. + Yet it is acceptable in the query: + SELECT t.1 FROM t1 GROUP BY t1.a HAVING SUM(t1.b) > 20. + + An argument of a set function does not have to be a reference to a table + column as we saw it in examples above. This can be a more complex expression + SELECT t1.a FROM t1 GROUP BY t1.a HAVING SUM(t1.b+1) > 20. + The expression SUM(t1.b+1) has a very clear semantics in this context: + we sum up the values of t1.b+1 where t1.b varies for all values within a + group of rows that contain the same t1.a value. + + A set function for an outer query yields a constant within a subquery. So + the semantics of the query + SELECT t1.a FROM t1 GROUP BY t1.a + HAVING t1.a IN (SELECT t2.c FROM t2 GROUP BY t2.c + HAVING AVG(t2.c+SUM(t1.b)) > 20) + is still clear. For a group of the rows with the same t1.a values we + calculate the value of SUM(t1.b). This value 's' is substituted in the + the subquery: + SELECT t2.c FROM t2 GROUP BY t2.c HAVING AVG(t2.c+s) + than returns some result set. + + By the same reason the following query with a subquery + SELECT t1.a FROM t1 GROUP BY t1.a + HAVING t1.a IN (SELECT t2.c FROM t2 GROUP BY t2.c + HAVING AVG(SUM(t1.b)) > 20) + is also acceptable. + + IMPLEMENTATION NOTES + + Three methods were added to the class to check the constraints specified + in the previous section. These methods utilize several new members. + + The field 'nest_level' contains the number of the level for the subquery + containing the set function. The main SELECT is of level 0, its subqueries + are of levels 1, the subqueries of the latter are of level 2 and so on. + + The field 'aggr_level' is to contain the nest level of the subquery + where the set function is aggregated. + + The field 'max_arg_level' is for the maximun of the nest levels of the + unbound column references occurred in the set function. A column reference + is unbound within a set function if it is not bound by any subquery + used as a subexpression in this function. A column reference is bound by + a subquery if it is a reference to the column by which the aggregation + of some set function that is used in the subquery is calculated. + For the set function used in the query + SELECT t1.a FROM t1 GROUP BY t1.a + HAVING t1.a > ALL(SELECT t2.b FROM t2 GROUP BY t2.b + HAVING t2.b > ALL(SELECT t3.c FROM t3 GROUP BY t3.c + HAVING SUM(t1.a+t2.b) < t3.c)) + the value of max_arg_level is equal to 1 since t1.a is bound in the main + query, and t2.b is bound by the first subquery whose nest level is 1. + Obviously a set function cannot be aggregated in the subquery whose + nest level is less than max_arg_level. (Yet it can be aggregated in the + subqueries whose nest level is greater than max_arg_level.) + In the query + SELECT t.a FROM t1 HAVING AVG(t1.a+(SELECT MIN(t2.c) FROM t2)) + the value of the max_arg_level for the AVG set function is 0 since + the reference t2.c is bound in the subquery. + + The field 'max_sum_func_level' is to contain the maximum of the + nest levels of the set functions that are used as subexpressions of + the arguments of the given set function, but not aggregated in any + subquery within this set function. A nested set function s1 can be + used within set function s0 only if s1.max_sum_func_level < + s0.max_sum_func_level. Set function s1 is considered as nested + for set function s0 if s1 is not calculated in any subquery + within s0. + + A set function that is used as a subexpression in an argument of another + set function refers to the latter via the field 'in_sum_func'. + + The condition imposed on the usage of set functions are checked when + we traverse query subexpressions with the help of the recursive method + fix_fields. When we apply this method to an object of the class + Item_sum, first, on the descent, we call the method init_sum_func_check + that initialize members used at checking. Then, on the ascent, we + call the method check_sum_func that validates the set function usage + and reports an error if it is illegal. + The method register_sum_func serves to link the items for the set functions + that are aggregated in the embedding (sub)queries. Circular chains of such + functions are attached to the corresponding st_select_lex structures + through the field inner_sum_func_list. + + Exploiting the fact that the members mentioned above are used in one + recursive function we could have allocated them on the thread stack. + Yet we don't do it now. + + We assume that the nesting level of subquries does not exceed 127. + TODO: to catch queries where the limit is exceeded to make the + code clean here. + +*/ + +class Item_sum :public Item_result_field +{ + friend class Aggregator_distinct; + friend class Aggregator_simple; + +protected: + /** + Aggregator class instance. Not set initially. Allocated only after + it is determined if the incoming data are already distinct. + */ + Aggregator *aggr; + +private: + /** + Used in making ROLLUP. Set for the ROLLUP copies of the original + Item_sum and passed to create_tmp_field() to cause it to work + over the temp table buffer that is referenced by + Item_result_field::result_field. + */ + bool force_copy_fields; + + /** + Indicates how the aggregate function was specified by the parser : + 1 if it was written as AGGREGATE(DISTINCT), + 0 if it was AGGREGATE() + */ + bool with_distinct; + +public: + + bool has_force_copy_fields() const { return force_copy_fields; } + bool has_with_distinct() const { return with_distinct; } + + enum Sumfunctype + { COUNT_FUNC, COUNT_DISTINCT_FUNC, SUM_FUNC, SUM_DISTINCT_FUNC, AVG_FUNC, + AVG_DISTINCT_FUNC, MIN_FUNC, MAX_FUNC, STD_FUNC, + VARIANCE_FUNC, SUM_BIT_FUNC, UDF_SUM_FUNC, GROUP_CONCAT_FUNC + }; + + Item **ref_by; /* pointer to a ref to the object used to register it */ + Item_sum *next; /* next in the circular chain of registered objects */ + Item_sum *in_sum_func; /* embedding set function if any */ + st_select_lex * aggr_sel; /* select where the function is aggregated */ + int8 nest_level; /* number of the nesting level of the set function */ + int8 aggr_level; /* nesting level of the aggregating subquery */ + int8 max_arg_level; /* max level of unbound column references */ + int8 max_sum_func_level;/* max level of aggregation for embedded functions */ + bool quick_group; /* If incremental update of fields */ + /* + This list is used by the check for mixing non aggregated fields and + sum functions in the ONLY_FULL_GROUP_BY_MODE. We save all outer fields + directly or indirectly used under this function it as it's unclear + at the moment of fixing outer field whether it's aggregated or not. + */ + List outer_fields; + +protected: + uint arg_count; + Item **args, *tmp_args[2]; + /* + Copy of the arguments list to hold the original set of arguments. + Used in EXPLAIN EXTENDED instead of the current argument list because + the current argument list can be altered by usage of temporary tables. + */ + Item **orig_args, *tmp_orig_args[2]; + table_map used_tables_cache; + + /* + TRUE <=> We've managed to calculate the value of this Item in + opt_sum_query(), hence it can be considered constant at all subsequent + steps. + */ + bool forced_const; + static ulonglong ram_limitation(THD *thd); + +public: + + void mark_as_sum_func(); + Item_sum() :quick_group(1), arg_count(0), forced_const(FALSE) + { + mark_as_sum_func(); + init_aggregator(); + } + Item_sum(Item *a) :quick_group(1), arg_count(1), args(tmp_args), + orig_args(tmp_orig_args), forced_const(FALSE) + { + args[0]=a; + mark_as_sum_func(); + init_aggregator(); + } + Item_sum( Item *a, Item *b ) :quick_group(1), arg_count(2), args(tmp_args), + orig_args(tmp_orig_args), forced_const(FALSE) + { + args[0]=a; args[1]=b; + mark_as_sum_func(); + init_aggregator(); + } + Item_sum(List &list); + //Copy constructor, need to perform subselects with temporary tables + Item_sum(THD *thd, Item_sum *item); + enum Type type() const { return SUM_FUNC_ITEM; } + virtual enum Sumfunctype sum_func () const=0; + /** + Resets the aggregate value to its default and aggregates the current + value of its attribute(s). + */ + inline bool reset_and_add() + { + aggregator_clear(); + return aggregator_add(); + }; + + /* + Called when new group is started and results are being saved in + a temporary table. Similarly to reset_and_add() it resets the + value to its default and aggregates the value of its + attribute(s), but must also store it in result_field. + This set of methods (result_item(), reset_field, update_field()) of + Item_sum is used only if quick_group is not null. Otherwise + copy_or_same() is used to obtain a copy of this item. + */ + virtual void reset_field()=0; + /* + Called for each new value in the group, when temporary table is in use. + Similar to add(), but uses temporary table field to obtain current value, + Updated value is then saved in the field. + */ + virtual void update_field()=0; + virtual bool keep_field_type(void) const { return 0; } + virtual void fix_length_and_dec() { maybe_null=1; null_value=1; } + virtual Item *result_item(Field *field) + { return new Item_field(field); } + /* + Return bitmap of tables that are needed to evaluate the item. + + The implementation takes into account the used strategy: items resolved + at optimization phase will report 0. + Items that depend on the number of join output records, but not columns + of any particular table (like COUNT(*)) will report 0 from used_tables(), + but will still return false from const_item(). + */ + table_map used_tables() const { return used_tables_cache; } + void update_used_tables (); + bool is_null() { return null_value; } + void make_const () + { + used_tables_cache= 0; + forced_const= TRUE; + } + void reset_forced_const() { forced_const= FALSE; } + virtual bool const_item() const { return forced_const; } + virtual bool const_during_execution() const { return false; } + virtual void print(String *str, enum_query_type query_type); + void fix_num_length_and_dec(); + + /** + Mark an aggregate as having no rows. + + This function is called by the execution engine to assign 'NO ROWS + FOUND' value to an aggregate item, when the underlying result set + has no rows. Such value, in a general case, may be different from + the default value of the item after 'clear()': e.g. a numeric item + may be initialized to 0 by clear() and to NULL by + no_rows_in_result(). + */ + virtual void no_rows_in_result() + { + set_aggregator(with_distinct ? + Aggregator::DISTINCT_AGGREGATOR : + Aggregator::SIMPLE_AGGREGATOR); + aggregator_clear(); + } + virtual void make_unique() { force_copy_fields= TRUE; } + Item *get_tmp_table_item(THD *thd); + virtual Field *create_tmp_field(bool group, TABLE *table, + uint convert_blob_length); + bool walk(Item_processor processor, bool walk_subquery, uchar *argument); + virtual bool collect_outer_ref_processor(uchar *param); + bool init_sum_func_check(THD *thd); + bool check_sum_func(THD *thd, Item **ref); + bool register_sum_func(THD *thd, Item **ref); + st_select_lex *depended_from() + { return (nest_level == aggr_level ? 0 : aggr_sel); } + + Item *get_arg(uint i) { return args[i]; } + Item *set_arg(uint i, THD *thd, Item *new_val); + uint get_arg_count() const { return arg_count; } + + /* Initialization of distinct related members */ + void init_aggregator() + { + aggr= NULL; + with_distinct= FALSE; + force_copy_fields= FALSE; + } + + /** + Called to initialize the aggregator. + */ + + inline bool aggregator_setup(THD *thd) { return aggr->setup(thd); }; + + /** + Called to cleanup the aggregator. + */ + + inline void aggregator_clear() { aggr->clear(); } + + /** + Called to add value to the aggregator. + */ + + inline bool aggregator_add() { return aggr->add(); }; + + /* stores the declared DISTINCT flag (from the parser) */ + void set_distinct(bool distinct) + { + with_distinct= distinct; + quick_group= with_distinct ? 0 : 1; + } + + /* + Set the type of aggregation : DISTINCT or not. + + May be called multiple times. + */ + + int set_aggregator(Aggregator::Aggregator_type aggregator); + + virtual void clear()= 0; + virtual bool add()= 0; + virtual bool setup(THD *thd) { return false; } + + virtual void cleanup(); + bool check_vcol_func_processor(uchar *int_arg) + { + return trace_unsupported_by_check_vcol_func_processor(func_name()); + } +}; + + +class Unique; + + +/** + The distinct aggregator. + Implements AGGFN (DISTINCT ..) + Collects all the data into an Unique (similarly to what Item_sum_distinct + does currently) and then (if applicable) iterates over the list of + unique values and pumps them back into its object +*/ + +class Aggregator_distinct : public Aggregator +{ + friend class Item_sum_sum; + + /* + flag to prevent consecutive runs of endup(). Normally in endup there are + expensive calculations (like walking the distinct tree for example) + which we must do only once if there are no data changes. + We can re-use the data for the second and subsequent val_xxx() calls. + endup_done set to TRUE also means that the calculated values for + the aggregate functions are correct and don't need recalculation. + */ + bool endup_done; + + /* + Used depending on the type of the aggregate function and the presence of + blob columns in it: + - For COUNT(DISTINCT) and no blob fields this points to a real temporary + table. It's used as a hash table. + - For AVG/SUM(DISTINCT) or COUNT(DISTINCT) with blob fields only the + in-memory data structure of a temporary table is constructed. + It's used by the Field classes to transform data into row format. + */ + TABLE *table; + + /* + An array of field lengths on row allocated and used only for + COUNT(DISTINCT) with multiple columns and no blobs. Used in + Aggregator_distinct::composite_key_cmp (called from Unique to compare + nodes + */ + uint32 *field_lengths; + + /* + Used in conjunction with 'table' to support the access to Field classes + for COUNT(DISTINCT). Needed by copy_fields()/copy_funcs(). + */ + TMP_TABLE_PARAM *tmp_table_param; + + /* + If there are no blobs in the COUNT(DISTINCT) arguments, we can use a tree, + which is faster than heap table. In that case, we still use the table + to help get things set up, but we insert nothing in it. + For AVG/SUM(DISTINCT) we always use this tree (as it takes a single + argument) to get the distinct rows. + */ + Unique *tree; + + /* + The length of the temp table row. Must be a member of the class as it + gets passed down to simple_raw_key_cmp () as a compare function argument + to Unique. simple_raw_key_cmp () is used as a fast comparison function + when the entire row can be binary compared. + */ + uint tree_key_length; + + /* + Set to true if the result is known to be always NULL. + If set deactivates creation and usage of the temporary table (in the + 'table' member) and the Unique instance (in the 'tree' member) as well as + the calculation of the final value on the first call to + Item_[sum|avg|count]::val_xxx(). + */ + bool always_null; + + /** + When feeding back the data in endup() from Unique/temp table back to + Item_sum::add() methods we must read the data from Unique (and not + recalculate the functions that are given as arguments to the aggregate + function. + This flag is to tell the arg_*() methods to take the data from the Unique + instead of calling the relevant val_..() method. + */ + bool use_distinct_values; + +public: + Aggregator_distinct (Item_sum *sum) : + Aggregator(sum), table(NULL), tmp_table_param(NULL), tree(NULL), + always_null(false), use_distinct_values(false) {} + virtual ~Aggregator_distinct (); + Aggregator_type Aggrtype() { return DISTINCT_AGGREGATOR; } + + bool setup(THD *); + void clear(); + bool add(); + void endup(); + virtual my_decimal *arg_val_decimal(my_decimal * value); + virtual double arg_val_real(); + virtual bool arg_is_null(bool use_null_value); + + bool unique_walk_function(void *element); + bool unique_walk_function_for_count(void *element); + static int composite_key_cmp(void* arg, uchar* key1, uchar* key2); +}; + + +/** + The pass-through aggregator. + Implements AGGFN (DISTINCT ..) by knowing it gets distinct data on input. + So it just pumps them back to the Item_sum descendant class. +*/ +class Aggregator_simple : public Aggregator +{ +public: + + Aggregator_simple (Item_sum *sum) : + Aggregator(sum) {} + Aggregator_type Aggrtype() { return Aggregator::SIMPLE_AGGREGATOR; } + + bool setup(THD * thd) { return item_sum->setup(thd); } + void clear() { item_sum->clear(); } + bool add() { return item_sum->add(); } + void endup() {}; + virtual my_decimal *arg_val_decimal(my_decimal * value); + virtual double arg_val_real(); + virtual bool arg_is_null(bool use_null_value); +}; + + +class Item_sum_num :public Item_sum +{ +protected: + /* + val_xxx() functions may be called several times during the execution of a + query. Derived classes that require extensive calculation in val_xxx() + maintain cache of aggregate value. This variable governs the validity of + that cache. + */ + bool is_evaluated; +public: + Item_sum_num() :Item_sum(),is_evaluated(FALSE) {} + Item_sum_num(Item *item_par) + :Item_sum(item_par), is_evaluated(FALSE) {} + Item_sum_num(Item *a, Item* b) :Item_sum(a,b),is_evaluated(FALSE) {} + Item_sum_num(List &list) + :Item_sum(list), is_evaluated(FALSE) {} + Item_sum_num(THD *thd, Item_sum_num *item) + :Item_sum(thd, item),is_evaluated(item->is_evaluated) {} + bool fix_fields(THD *, Item **); + longlong val_int() + { + DBUG_ASSERT(fixed == 1); + // Real as default + bool error; + return double_to_longlong(val_real(), unsigned_flag, &error); + } + String *val_str(String*str); + my_decimal *val_decimal(my_decimal *); + void reset_field(); +}; + + +class Item_sum_int :public Item_sum_num +{ +public: + Item_sum_int(Item *item_par) :Item_sum_num(item_par) {} + Item_sum_int(List &list) :Item_sum_num(list) {} + Item_sum_int(THD *thd, Item_sum_int *item) :Item_sum_num(thd, item) {} + double val_real() { DBUG_ASSERT(fixed == 1); return (double) val_int(); } + String *val_str(String*str); + my_decimal *val_decimal(my_decimal *); + enum Item_result result_type () const { return INT_RESULT; } + void fix_length_and_dec() + { decimals=0; max_length=21; maybe_null=null_value=0; } +}; + + +class Item_sum_sum :public Item_sum_num +{ +protected: + Item_result hybrid_type; + double sum; + my_decimal dec_buffs[2]; + uint curr_dec_buff; + void fix_length_and_dec(); + +public: + Item_sum_sum(Item *item_par, bool distinct) :Item_sum_num(item_par) + { + set_distinct(distinct); + } + Item_sum_sum(THD *thd, Item_sum_sum *item); + enum Sumfunctype sum_func () const + { + return has_with_distinct() ? SUM_DISTINCT_FUNC : SUM_FUNC; + } + void clear(); + bool add(); + double val_real(); + longlong val_int(); + String *val_str(String*str); + my_decimal *val_decimal(my_decimal *); + enum Item_result result_type () const { return hybrid_type; } + void reset_field(); + void update_field(); + void no_rows_in_result() {} + const char *func_name() const + { + return has_with_distinct() ? "sum(distinct " : "sum("; + } + Item *copy_or_same(THD* thd); +}; + + +class Item_sum_count :public Item_sum_int +{ + longlong count; + + friend class Aggregator_distinct; + + void clear(); + bool add(); + void cleanup(); + + public: + Item_sum_count(Item *item_par) + :Item_sum_int(item_par),count(0) + {} + + /** + Constructs an instance for COUNT(DISTINCT) + + @param list a list of the arguments to the aggregate function + + This constructor is called by the parser only for COUNT (DISTINCT). + */ + + Item_sum_count(List &list) + :Item_sum_int(list),count(0) + { + set_distinct(TRUE); + } + Item_sum_count(THD *thd, Item_sum_count *item) + :Item_sum_int(thd, item), count(item->count) + {} + enum Sumfunctype sum_func () const + { + return has_with_distinct() ? COUNT_DISTINCT_FUNC : COUNT_FUNC; + } + void no_rows_in_result() { count=0; } + void make_const(longlong count_arg) + { + count=count_arg; + Item_sum::make_const(); + } + longlong val_int(); + void reset_field(); + void update_field(); + const char *func_name() const + { + return has_with_distinct() ? "count(distinct " : "count("; + } + Item *copy_or_same(THD* thd); +}; + + +/* Item to get the value of a stored sum function */ + +class Item_sum_avg; + +class Item_avg_field :public Item_result_field +{ +public: + Field *field; + Item_result hybrid_type; + uint f_precision, f_scale, dec_bin_size; + uint prec_increment; + Item_avg_field(Item_result res_type, Item_sum_avg *item); + enum Type type() const { return FIELD_AVG_ITEM; } + double val_real(); + longlong val_int(); + my_decimal *val_decimal(my_decimal *); + bool is_null() { update_null_value(); return null_value; } + String *val_str(String*); + enum_field_types field_type() const + { + return hybrid_type == DECIMAL_RESULT ? + MYSQL_TYPE_NEWDECIMAL : MYSQL_TYPE_DOUBLE; + } + void fix_length_and_dec() {} + enum Item_result result_type () const { return hybrid_type; } + bool check_vcol_func_processor(uchar *int_arg) + { + return trace_unsupported_by_check_vcol_func_processor("avg_field"); + } + const char *func_name() const { DBUG_ASSERT(0); return "avg_field"; } +}; + + +class Item_sum_avg :public Item_sum_sum +{ +public: + ulonglong count; + uint prec_increment; + uint f_precision, f_scale, dec_bin_size; + + Item_sum_avg(Item *item_par, bool distinct) + :Item_sum_sum(item_par, distinct), count(0) + {} + Item_sum_avg(THD *thd, Item_sum_avg *item) + :Item_sum_sum(thd, item), count(item->count), + prec_increment(item->prec_increment) {} + + void fix_length_and_dec(); + enum Sumfunctype sum_func () const + { + return has_with_distinct() ? AVG_DISTINCT_FUNC : AVG_FUNC; + } + void clear(); + bool add(); + double val_real(); + // In SPs we might force the "wrong" type with select into a declare variable + longlong val_int() + { + bool error; + return double_to_longlong(val_real(), unsigned_flag, &error); + } + my_decimal *val_decimal(my_decimal *); + String *val_str(String *str); + void reset_field(); + void update_field(); + Item *result_item(Field *field) + { return new Item_avg_field(hybrid_type, this); } + void no_rows_in_result() {} + const char *func_name() const + { + return has_with_distinct() ? "avg(distinct " : "avg("; + } + Item *copy_or_same(THD* thd); + Field *create_tmp_field(bool group, TABLE *table, uint convert_blob_length); + void cleanup() + { + count= 0; + Item_sum_sum::cleanup(); + } +}; + +class Item_sum_variance; + +class Item_variance_field :public Item_result_field +{ +public: + Field *field; + Item_result hybrid_type; + uint f_precision0, f_scale0; + uint f_precision1, f_scale1; + uint dec_bin_size0, dec_bin_size1; + uint sample; + uint prec_increment; + Item_variance_field(Item_sum_variance *item); + enum Type type() const {return FIELD_VARIANCE_ITEM; } + double val_real(); + longlong val_int() + { /* can't be fix_fields()ed */ + bool error; + return double_to_longlong(val_real(), unsigned_flag, &error); + } + String *val_str(String *str) + { return val_string_from_real(str); } + my_decimal *val_decimal(my_decimal *dec_buf) + { return val_decimal_from_real(dec_buf); } + bool is_null() { update_null_value(); return null_value; } + enum_field_types field_type() const + { + return hybrid_type == DECIMAL_RESULT ? + MYSQL_TYPE_NEWDECIMAL : MYSQL_TYPE_DOUBLE; + } + void fix_length_and_dec() {} + enum Item_result result_type () const { return hybrid_type; } + bool check_vcol_func_processor(uchar *int_arg) + { + return trace_unsupported_by_check_vcol_func_processor("var_field"); + } + const char *func_name() const { DBUG_ASSERT(0); return "variance_field"; } +}; + + +/* + variance(a) = + + = sum (ai - avg(a))^2 / count(a) ) + = sum (ai^2 - 2*ai*avg(a) + avg(a)^2) / count(a) + = (sum(ai^2) - sum(2*ai*avg(a)) + sum(avg(a)^2))/count(a) = + = (sum(ai^2) - 2*avg(a)*sum(a) + count(a)*avg(a)^2)/count(a) = + = (sum(ai^2) - 2*sum(a)*sum(a)/count(a) + count(a)*sum(a)^2/count(a)^2 )/count(a) = + = (sum(ai^2) - 2*sum(a)^2/count(a) + sum(a)^2/count(a) )/count(a) = + = (sum(ai^2) - sum(a)^2/count(a))/count(a) + +But, this falls prey to catastrophic cancellation. Instead, use the recurrence formulas + + M_{1} = x_{1}, ~ M_{k} = M_{k-1} + (x_{k} - M_{k-1}) / k newline + S_{1} = 0, ~ S_{k} = S_{k-1} + (x_{k} - M_{k-1}) times (x_{k} - M_{k}) newline + for 2 <= k <= n newline + ital variance = S_{n} / (n-1) + +*/ + +class Item_sum_variance : public Item_sum_num +{ + void fix_length_and_dec(); + +public: + Item_result hybrid_type; + int cur_dec; + double recurrence_m, recurrence_s; /* Used in recurrence relation. */ + ulonglong count; + uint f_precision0, f_scale0; + uint f_precision1, f_scale1; + uint dec_bin_size0, dec_bin_size1; + uint sample; + uint prec_increment; + + Item_sum_variance(Item *item_par, uint sample_arg) :Item_sum_num(item_par), + hybrid_type(REAL_RESULT), count(0), sample(sample_arg) + {} + Item_sum_variance(THD *thd, Item_sum_variance *item); + enum Sumfunctype sum_func () const { return VARIANCE_FUNC; } + void clear(); + bool add(); + double val_real(); + my_decimal *val_decimal(my_decimal *); + void reset_field(); + void update_field(); + Item *result_item(Field *field) + { return new Item_variance_field(this); } + void no_rows_in_result() {} + const char *func_name() const + { return sample ? "var_samp(" : "variance("; } + Item *copy_or_same(THD* thd); + Field *create_tmp_field(bool group, TABLE *table, uint convert_blob_length); + enum Item_result result_type () const { return REAL_RESULT; } + void cleanup() + { + count= 0; + Item_sum_num::cleanup(); + } +}; + +class Item_sum_std; + +class Item_std_field :public Item_variance_field +{ +public: + Item_std_field(Item_sum_std *item); + enum Type type() const { return FIELD_STD_ITEM; } + double val_real(); + my_decimal *val_decimal(my_decimal *); + enum Item_result result_type () const { return REAL_RESULT; } + enum_field_types field_type() const { return MYSQL_TYPE_DOUBLE;} + const char *func_name() const { DBUG_ASSERT(0); return "std_field"; } +}; + +/* + standard_deviation(a) = sqrt(variance(a)) +*/ + +class Item_sum_std :public Item_sum_variance +{ + public: + Item_sum_std(Item *item_par, uint sample_arg) + :Item_sum_variance(item_par, sample_arg) {} + Item_sum_std(THD *thd, Item_sum_std *item) + :Item_sum_variance(thd, item) + {} + enum Sumfunctype sum_func () const { return STD_FUNC; } + double val_real(); + Item *result_item(Field *field) + { return new Item_std_field(this); } + const char *func_name() const { return "std("; } + Item *copy_or_same(THD* thd); + enum Item_result result_type () const { return REAL_RESULT; } + enum_field_types field_type() const { return MYSQL_TYPE_DOUBLE;} +}; + +// This class is a string or number function depending on num_func +class Arg_comparator; +class Item_cache; +class Item_sum_hybrid :public Item_sum +{ +protected: + Item_cache *value, *arg_cache; + Arg_comparator *cmp; + Item_result hybrid_type; + enum_field_types hybrid_field_type; + int cmp_sign; + bool was_values; // Set if we have found at least one row (for max/min only) + bool was_null_value; + + public: + Item_sum_hybrid(Item *item_par,int sign) + :Item_sum(item_par), value(0), arg_cache(0), cmp(0), + hybrid_type(INT_RESULT), hybrid_field_type(MYSQL_TYPE_LONGLONG), + cmp_sign(sign), was_values(TRUE) + { collation.set(&my_charset_bin); } + Item_sum_hybrid(THD *thd, Item_sum_hybrid *item) + :Item_sum(thd, item), value(item->value), arg_cache(0), + hybrid_type(item->hybrid_type), hybrid_field_type(item->hybrid_field_type), + cmp_sign(item->cmp_sign), was_values(item->was_values) + { } + bool fix_fields(THD *, Item **); + void setup_hybrid(Item *item, Item *value_arg); + void clear(); + double val_real(); + longlong val_int(); + my_decimal *val_decimal(my_decimal *); + void reset_field(); + String *val_str(String *); + bool keep_field_type(void) const { return 1; } + enum Item_result result_type () const { return hybrid_type; } + enum enum_field_types field_type() const { return hybrid_field_type; } + void update_field(); + void min_max_update_str_field(); + void min_max_update_real_field(); + void min_max_update_int_field(); + void min_max_update_decimal_field(); + void cleanup(); + bool any_value() { return was_values; } + void no_rows_in_result(); + void restore_to_before_no_rows_in_result(); + Field *create_tmp_field(bool group, TABLE *table, + uint convert_blob_length); +}; + + +class Item_sum_min :public Item_sum_hybrid +{ +public: + Item_sum_min(Item *item_par) :Item_sum_hybrid(item_par,1) {} + Item_sum_min(THD *thd, Item_sum_min *item) :Item_sum_hybrid(thd, item) {} + enum Sumfunctype sum_func () const {return MIN_FUNC;} + + bool add(); + const char *func_name() const { return "min("; } + Item *copy_or_same(THD* thd); +}; + + +class Item_sum_max :public Item_sum_hybrid +{ +public: + Item_sum_max(Item *item_par) :Item_sum_hybrid(item_par,-1) {} + Item_sum_max(THD *thd, Item_sum_max *item) :Item_sum_hybrid(thd, item) {} + enum Sumfunctype sum_func () const {return MAX_FUNC;} + + bool add(); + const char *func_name() const { return "max("; } + Item *copy_or_same(THD* thd); +}; + + +class Item_sum_bit :public Item_sum_int +{ +protected: + ulonglong reset_bits,bits; + +public: + Item_sum_bit(Item *item_par,ulonglong reset_arg) + :Item_sum_int(item_par),reset_bits(reset_arg),bits(reset_arg) {} + Item_sum_bit(THD *thd, Item_sum_bit *item): + Item_sum_int(thd, item), reset_bits(item->reset_bits), bits(item->bits) {} + enum Sumfunctype sum_func () const {return SUM_BIT_FUNC;} + void clear(); + longlong val_int(); + void reset_field(); + void update_field(); + void fix_length_and_dec() + { decimals= 0; max_length=21; unsigned_flag= 1; maybe_null= null_value= 0; } + void cleanup() + { + bits= reset_bits; + Item_sum_int::cleanup(); + } +}; + + +class Item_sum_or :public Item_sum_bit +{ +public: + Item_sum_or(Item *item_par) :Item_sum_bit(item_par,LL(0)) {} + Item_sum_or(THD *thd, Item_sum_or *item) :Item_sum_bit(thd, item) {} + bool add(); + const char *func_name() const { return "bit_or("; } + Item *copy_or_same(THD* thd); +}; + + +class Item_sum_and :public Item_sum_bit +{ + public: + Item_sum_and(Item *item_par) :Item_sum_bit(item_par, ULONGLONG_MAX) {} + Item_sum_and(THD *thd, Item_sum_and *item) :Item_sum_bit(thd, item) {} + bool add(); + const char *func_name() const { return "bit_and("; } + Item *copy_or_same(THD* thd); +}; + +class Item_sum_xor :public Item_sum_bit +{ + public: + Item_sum_xor(Item *item_par) :Item_sum_bit(item_par,LL(0)) {} + Item_sum_xor(THD *thd, Item_sum_xor *item) :Item_sum_bit(thd, item) {} + bool add(); + const char *func_name() const { return "bit_xor("; } + Item *copy_or_same(THD* thd); +}; + + +/* + User defined aggregates +*/ + +#ifdef HAVE_DLOPEN + +class Item_udf_sum : public Item_sum +{ +protected: + udf_handler udf; + +public: + Item_udf_sum(udf_func *udf_arg) + :Item_sum(), udf(udf_arg) + { quick_group=0; } + Item_udf_sum(udf_func *udf_arg, List &list) + :Item_sum(list), udf(udf_arg) + { quick_group=0;} + Item_udf_sum(THD *thd, Item_udf_sum *item) + :Item_sum(thd, item), udf(item->udf) + { udf.not_original= TRUE; } + const char *func_name() const { return udf.name(); } + bool fix_fields(THD *thd, Item **ref) + { + DBUG_ASSERT(fixed == 0); + + if (init_sum_func_check(thd)) + return TRUE; + + fixed= 1; + if (udf.fix_fields(thd, this, this->arg_count, this->args)) + return TRUE; + + memcpy (orig_args, args, sizeof (Item *) * arg_count); + return check_sum_func(thd, ref); + } + enum Sumfunctype sum_func () const { return UDF_SUM_FUNC; } + virtual bool have_field_update(void) const { return 0; } + + void clear(); + bool add(); + void reset_field() {}; + void update_field() {}; + void cleanup(); + virtual void print(String *str, enum_query_type query_type); +}; + + +class Item_sum_udf_float :public Item_udf_sum +{ + public: + Item_sum_udf_float(udf_func *udf_arg) + :Item_udf_sum(udf_arg) {} + Item_sum_udf_float(udf_func *udf_arg, List &list) + :Item_udf_sum(udf_arg, list) {} + Item_sum_udf_float(THD *thd, Item_sum_udf_float *item) + :Item_udf_sum(thd, item) {} + longlong val_int() + { + DBUG_ASSERT(fixed == 1); + bool error; + return double_to_longlong(Item_sum_udf_float::val_real(), + unsigned_flag, &error); + } + double val_real(); + String *val_str(String*str); + my_decimal *val_decimal(my_decimal *); + void fix_length_and_dec() { fix_num_length_and_dec(); } + Item *copy_or_same(THD* thd); +}; + + +class Item_sum_udf_int :public Item_udf_sum +{ +public: + Item_sum_udf_int(udf_func *udf_arg) + :Item_udf_sum(udf_arg) {} + Item_sum_udf_int(udf_func *udf_arg, List &list) + :Item_udf_sum(udf_arg, list) {} + Item_sum_udf_int(THD *thd, Item_sum_udf_int *item) + :Item_udf_sum(thd, item) {} + longlong val_int(); + double val_real() + { DBUG_ASSERT(fixed == 1); return (double) Item_sum_udf_int::val_int(); } + String *val_str(String*str); + my_decimal *val_decimal(my_decimal *); + enum Item_result result_type () const { return INT_RESULT; } + void fix_length_and_dec() { decimals=0; max_length=21; } + Item *copy_or_same(THD* thd); +}; + + +class Item_sum_udf_str :public Item_udf_sum +{ +public: + Item_sum_udf_str(udf_func *udf_arg) + :Item_udf_sum(udf_arg) {} + Item_sum_udf_str(udf_func *udf_arg, List &list) + :Item_udf_sum(udf_arg,list) {} + Item_sum_udf_str(THD *thd, Item_sum_udf_str *item) + :Item_udf_sum(thd, item) {} + String *val_str(String *); + double val_real() + { + int err_not_used; + char *end_not_used; + String *res; + res=val_str(&str_value); + return res ? my_strntod(res->charset(),(char*) res->ptr(),res->length(), + &end_not_used, &err_not_used) : 0.0; + } + longlong val_int() + { + int err_not_used; + char *end; + String *res; + CHARSET_INFO *cs; + + if (!(res= val_str(&str_value))) + return 0; /* Null value */ + cs= res->charset(); + end= (char*) res->ptr()+res->length(); + return cs->cset->strtoll10(cs, res->ptr(), &end, &err_not_used); + } + my_decimal *val_decimal(my_decimal *dec); + enum Item_result result_type () const { return STRING_RESULT; } + void fix_length_and_dec(); + Item *copy_or_same(THD* thd); +}; + + +class Item_sum_udf_decimal :public Item_udf_sum +{ +public: + Item_sum_udf_decimal(udf_func *udf_arg) + :Item_udf_sum(udf_arg) {} + Item_sum_udf_decimal(udf_func *udf_arg, List &list) + :Item_udf_sum(udf_arg, list) {} + Item_sum_udf_decimal(THD *thd, Item_sum_udf_decimal *item) + :Item_udf_sum(thd, item) {} + String *val_str(String *); + double val_real(); + longlong val_int(); + my_decimal *val_decimal(my_decimal *); + enum Item_result result_type () const { return DECIMAL_RESULT; } + void fix_length_and_dec() { fix_num_length_and_dec(); } + Item *copy_or_same(THD* thd); +}; + +#else /* Dummy functions to get sql_yacc.cc compiled */ + +class Item_sum_udf_float :public Item_sum_num +{ + public: + Item_sum_udf_float(udf_func *udf_arg) + :Item_sum_num() {} + Item_sum_udf_float(udf_func *udf_arg, List &list) :Item_sum_num() {} + Item_sum_udf_float(THD *thd, Item_sum_udf_float *item) + :Item_sum_num(thd, item) {} + enum Sumfunctype sum_func () const { return UDF_SUM_FUNC; } + double val_real() { DBUG_ASSERT(fixed == 1); return 0.0; } + void clear() {} + bool add() { return 0; } + void update_field() {} +}; + + +class Item_sum_udf_int :public Item_sum_num +{ +public: + Item_sum_udf_int(udf_func *udf_arg) + :Item_sum_num() {} + Item_sum_udf_int(udf_func *udf_arg, List &list) :Item_sum_num() {} + Item_sum_udf_int(THD *thd, Item_sum_udf_int *item) + :Item_sum_num(thd, item) {} + enum Sumfunctype sum_func () const { return UDF_SUM_FUNC; } + longlong val_int() { DBUG_ASSERT(fixed == 1); return 0; } + double val_real() { DBUG_ASSERT(fixed == 1); return 0; } + void clear() {} + bool add() { return 0; } + void update_field() {} +}; + + +class Item_sum_udf_decimal :public Item_sum_num +{ + public: + Item_sum_udf_decimal(udf_func *udf_arg) + :Item_sum_num() {} + Item_sum_udf_decimal(udf_func *udf_arg, List &list) + :Item_sum_num() {} + Item_sum_udf_decimal(THD *thd, Item_sum_udf_float *item) + :Item_sum_num(thd, item) {} + enum Sumfunctype sum_func () const { return UDF_SUM_FUNC; } + double val_real() { DBUG_ASSERT(fixed == 1); return 0.0; } + my_decimal *val_decimal(my_decimal *) { DBUG_ASSERT(fixed == 1); return 0; } + void clear() {} + bool add() { return 0; } + void update_field() {} +}; + + +class Item_sum_udf_str :public Item_sum_num +{ +public: + Item_sum_udf_str(udf_func *udf_arg) + :Item_sum_num() {} + Item_sum_udf_str(udf_func *udf_arg, List &list) + :Item_sum_num() {} + Item_sum_udf_str(THD *thd, Item_sum_udf_str *item) + :Item_sum_num(thd, item) {} + String *val_str(String *) + { DBUG_ASSERT(fixed == 1); null_value=1; return 0; } + double val_real() { DBUG_ASSERT(fixed == 1); null_value=1; return 0.0; } + longlong val_int() { DBUG_ASSERT(fixed == 1); null_value=1; return 0; } + enum Item_result result_type () const { return STRING_RESULT; } + void fix_length_and_dec() { maybe_null=1; max_length=0; } + enum Sumfunctype sum_func () const { return UDF_SUM_FUNC; } + void clear() {} + bool add() { return 0; } + void update_field() {} +}; + +#endif /* HAVE_DLOPEN */ + +C_MODE_START +int group_concat_key_cmp_with_distinct(void* arg, const void* key1, + const void* key2); +int group_concat_key_cmp_with_order(void* arg, const void* key1, + const void* key2); +int dump_leaf_key(void* key_arg, + element_count count __attribute__((unused)), + void* item_arg); +C_MODE_END + +class Item_func_group_concat : public Item_sum +{ + TMP_TABLE_PARAM *tmp_table_param; + String result; + String *separator; + TREE tree_base; + TREE *tree; + Item **ref_pointer_array; + + /** + If DISTINCT is used with this GROUP_CONCAT, this member is used to filter + out duplicates. + @see Item_func_group_concat::setup + @see Item_func_group_concat::add + @see Item_func_group_concat::clear + */ + Unique *unique_filter; + TABLE *table; + ORDER **order; + Name_resolution_context *context; + /** The number of ORDER BY items. */ + uint arg_count_order; + /** The number of selected items, aka the expr list. */ + uint arg_count_field; + uint row_count; + bool distinct; + bool warning_for_row; + bool always_null; + bool force_copy_fields; + bool no_appended; + /* + Following is 0 normal object and pointer to original one for copy + (to correctly free resources) + */ + Item_func_group_concat *original; + + friend int group_concat_key_cmp_with_distinct(void* arg, const void* key1, + const void* key2); + friend int group_concat_key_cmp_with_order(void* arg, const void* key1, + const void* key2); + friend int dump_leaf_key(void* key_arg, + element_count count __attribute__((unused)), + void* item_arg); + +public: + Item_func_group_concat(Name_resolution_context *context_arg, + bool is_distinct, List *is_select, + const SQL_I_List &is_order, String *is_separator); + + Item_func_group_concat(THD *thd, Item_func_group_concat *item); + ~Item_func_group_concat(); + void cleanup(); + + enum Sumfunctype sum_func () const {return GROUP_CONCAT_FUNC;} + const char *func_name() const { return "group_concat"; } + virtual Item_result result_type () const { return STRING_RESULT; } + virtual Field *make_string_field(TABLE *table); + enum_field_types field_type() const + { + if (too_big_for_varchar()) + return MYSQL_TYPE_BLOB; + else + return MYSQL_TYPE_VARCHAR; + } + void clear(); + bool add(); + void reset_field() { DBUG_ASSERT(0); } // not used + void update_field() { DBUG_ASSERT(0); } // not used + bool fix_fields(THD *,Item **); + bool setup(THD *thd); + void make_unique(); + double val_real() + { + int error; + const char *end; + String *res; + if (!(res= val_str(&str_value))) + return 0.0; + end= res->ptr() + res->length(); + return (my_strtod(res->ptr(), (char**) &end, &error)); + } + longlong val_int() + { + String *res; + char *end_ptr; + int error; + if (!(res= val_str(&str_value))) + return (longlong) 0; + end_ptr= (char*) res->ptr()+ res->length(); + return my_strtoll10(res->ptr(), &end_ptr, &error); + } + my_decimal *val_decimal(my_decimal *decimal_value) + { + return val_decimal_from_string(decimal_value); + } + String* val_str(String* str); + Item *copy_or_same(THD* thd); + void no_rows_in_result() {} + virtual void print(String *str, enum_query_type query_type); + virtual bool change_context_processor(uchar *cntx) + { context= (Name_resolution_context *)cntx; return FALSE; } +}; + +#endif /* ITEM_SUM_INCLUDED */ diff --git a/database/include/mysql/private/item_timefunc.h b/database/include/mysql/private/item_timefunc.h new file mode 100644 index 0000000..1689868 --- /dev/null +++ b/database/include/mysql/private/item_timefunc.h @@ -0,0 +1,1096 @@ +#ifndef ITEM_TIMEFUNC_INCLUDED +#define ITEM_TIMEFUNC_INCLUDED +/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. + Copyright (c) 2009-2011, Monty Program Ab + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + + +/* Function items used by mysql */ + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif + +class MY_LOCALE; + +enum date_time_format_types +{ + TIME_ONLY= 0, TIME_MICROSECOND, DATE_ONLY, DATE_TIME, DATE_TIME_MICROSECOND +}; + + +static inline uint +mysql_temporal_int_part_length(enum enum_field_types mysql_type) +{ + static uint max_time_type_width[5]= + { MAX_DATETIME_WIDTH, MAX_DATETIME_WIDTH, MAX_DATE_WIDTH, + MAX_DATETIME_WIDTH, MIN_TIME_WIDTH }; + return max_time_type_width[mysql_type_to_time_type(mysql_type)+2]; +} + + +bool get_interval_value(Item *args,interval_type int_type, INTERVAL *interval); + +class Item_func_period_add :public Item_int_func +{ +public: + Item_func_period_add(Item *a,Item *b) :Item_int_func(a,b) {} + longlong val_int(); + const char *func_name() const { return "period_add"; } + void fix_length_and_dec() + { + max_length=6*MY_CHARSET_BIN_MB_MAXLEN; + } +}; + + +class Item_func_period_diff :public Item_int_func +{ +public: + Item_func_period_diff(Item *a,Item *b) :Item_int_func(a,b) {} + longlong val_int(); + const char *func_name() const { return "period_diff"; } + void fix_length_and_dec() + { + decimals=0; + max_length=6*MY_CHARSET_BIN_MB_MAXLEN; + } +}; + + +class Item_func_to_days :public Item_int_func +{ +public: + Item_func_to_days(Item *a) :Item_int_func(a) {} + longlong val_int(); + const char *func_name() const { return "to_days"; } + void fix_length_and_dec() + { + decimals=0; + max_length=6*MY_CHARSET_BIN_MB_MAXLEN; + maybe_null=1; + } + enum_monotonicity_info get_monotonicity_info() const; + longlong val_int_endpoint(bool left_endp, bool *incl_endp); + bool check_partition_func_processor(uchar *int_arg) {return FALSE;} + bool check_vcol_func_processor(uchar *int_arg) { return FALSE;} + bool check_valid_arguments_processor(uchar *int_arg) + { + return !has_date_args(); + } +}; + + +class Item_func_to_seconds :public Item_int_func +{ +public: + Item_func_to_seconds(Item *a) :Item_int_func(a) {} + longlong val_int(); + const char *func_name() const { return "to_seconds"; } + void fix_length_and_dec() + { + decimals=0; + max_length=6*MY_CHARSET_BIN_MB_MAXLEN; + maybe_null= 1; + } + enum_monotonicity_info get_monotonicity_info() const; + longlong val_int_endpoint(bool left_endp, bool *incl_endp); + bool check_partition_func_processor(uchar *bool_arg) { return FALSE;} + + bool intro_version(uchar *int_arg) + { + int *input_version= (int*)int_arg; + /* This function was introduced in 5.5 */ + int output_version= max(*input_version, 50500); + *input_version= output_version; + return 0; + } + + /* Only meaningful with date part and optional time part */ + bool check_valid_arguments_processor(uchar *int_arg) + { + return !has_date_args(); + } +}; + + +class Item_func_dayofmonth :public Item_int_func +{ +public: + Item_func_dayofmonth(Item *a) :Item_int_func(a) {} + longlong val_int(); + const char *func_name() const { return "dayofmonth"; } + void fix_length_and_dec() + { + decimals=0; + max_length=2*MY_CHARSET_BIN_MB_MAXLEN; + maybe_null=1; + } + bool check_partition_func_processor(uchar *int_arg) {return FALSE;} + bool check_vcol_func_processor(uchar *int_arg) { return FALSE;} + bool check_valid_arguments_processor(uchar *int_arg) + { + return !has_date_args(); + } +}; + + +class Item_func_month :public Item_func +{ +public: + Item_func_month(Item *a) :Item_func(a) { collation.set_numeric(); } + longlong val_int(); + double val_real() + { DBUG_ASSERT(fixed == 1); return (double) Item_func_month::val_int(); } + String *val_str(String *str) + { + longlong nr= val_int(); + if (null_value) + return 0; + str->set(nr, collation.collation); + return str; + } + const char *func_name() const { return "month"; } + enum Item_result result_type () const { return INT_RESULT; } + void fix_length_and_dec() + { + decimals= 0; + fix_char_length(2); + maybe_null=1; + } + bool check_partition_func_processor(uchar *int_arg) {return FALSE;} + bool check_vcol_func_processor(uchar *int_arg) { return FALSE;} + bool check_valid_arguments_processor(uchar *int_arg) + { + return !has_date_args(); + } +}; + + +class Item_func_monthname :public Item_str_func +{ + MY_LOCALE *locale; +public: + Item_func_monthname(Item *a) :Item_str_func(a) {} + const char *func_name() const { return "monthname"; } + String *val_str(String *str); + void fix_length_and_dec(); + bool check_partition_func_processor(uchar *int_arg) {return TRUE;} + bool check_vcol_func_processor(uchar *int_arg) {return FALSE;} + bool check_valid_arguments_processor(uchar *int_arg) + { + return !has_date_args(); + } +}; + + +class Item_func_dayofyear :public Item_int_func +{ +public: + Item_func_dayofyear(Item *a) :Item_int_func(a) {} + longlong val_int(); + const char *func_name() const { return "dayofyear"; } + void fix_length_and_dec() + { + decimals= 0; + fix_char_length(3); + maybe_null=1; + } + bool check_partition_func_processor(uchar *int_arg) {return FALSE;} + bool check_vcol_func_processor(uchar *int_arg) { return FALSE;} + bool check_valid_arguments_processor(uchar *int_arg) + { + return !has_date_args(); + } +}; + + +class Item_func_hour :public Item_int_func +{ +public: + Item_func_hour(Item *a) :Item_int_func(a) {} + longlong val_int(); + const char *func_name() const { return "hour"; } + void fix_length_and_dec() + { + decimals=0; + max_length=2*MY_CHARSET_BIN_MB_MAXLEN; + maybe_null=1; + } + bool check_partition_func_processor(uchar *int_arg) {return FALSE;} + bool check_vcol_func_processor(uchar *int_arg) { return FALSE;} + bool check_valid_arguments_processor(uchar *int_arg) + { + return !has_time_args(); + } +}; + + +class Item_func_minute :public Item_int_func +{ +public: + Item_func_minute(Item *a) :Item_int_func(a) {} + longlong val_int(); + const char *func_name() const { return "minute"; } + void fix_length_and_dec() + { + decimals=0; + max_length=2*MY_CHARSET_BIN_MB_MAXLEN; + maybe_null=1; + } + bool check_partition_func_processor(uchar *int_arg) {return FALSE;} + bool check_vcol_func_processor(uchar *int_arg) { return FALSE;} + bool check_valid_arguments_processor(uchar *int_arg) + { + return !has_time_args(); + } +}; + + +class Item_func_quarter :public Item_int_func +{ +public: + Item_func_quarter(Item *a) :Item_int_func(a) {} + longlong val_int(); + const char *func_name() const { return "quarter"; } + void fix_length_and_dec() + { + decimals=0; + max_length=1*MY_CHARSET_BIN_MB_MAXLEN; + maybe_null=1; + } + bool check_partition_func_processor(uchar *int_arg) {return FALSE;} + bool check_vcol_func_processor(uchar *int_arg) { return FALSE;} + bool check_valid_arguments_processor(uchar *int_arg) + { + return !has_date_args(); + } +}; + + +class Item_func_second :public Item_int_func +{ +public: + Item_func_second(Item *a) :Item_int_func(a) {} + longlong val_int(); + const char *func_name() const { return "second"; } + void fix_length_and_dec() + { + decimals=0; + max_length=2*MY_CHARSET_BIN_MB_MAXLEN; + maybe_null=1; + } + bool check_partition_func_processor(uchar *int_arg) {return FALSE;} + bool check_vcol_func_processor(uchar *int_arg) { return FALSE;} + bool check_valid_arguments_processor(uchar *int_arg) + { + return !has_time_args(); + } +}; + + +class Item_func_week :public Item_int_func +{ +public: + Item_func_week(Item *a,Item *b) :Item_int_func(a,b) {} + longlong val_int(); + const char *func_name() const { return "week"; } + void fix_length_and_dec() + { + decimals=0; + max_length=2*MY_CHARSET_BIN_MB_MAXLEN; + maybe_null=1; + } +}; + +class Item_func_yearweek :public Item_int_func +{ +public: + Item_func_yearweek(Item *a,Item *b) :Item_int_func(a,b) {} + longlong val_int(); + const char *func_name() const { return "yearweek"; } + void fix_length_and_dec() + { + decimals=0; + max_length=6*MY_CHARSET_BIN_MB_MAXLEN; + maybe_null=1; + } + bool check_partition_func_processor(uchar *int_arg) {return FALSE;} + bool check_vcol_func_processor(uchar *int_arg) { return FALSE;} + bool check_valid_arguments_processor(uchar *int_arg) + { + return !has_date_args(); + } +}; + + +class Item_func_year :public Item_int_func +{ +public: + Item_func_year(Item *a) :Item_int_func(a) {} + longlong val_int(); + const char *func_name() const { return "year"; } + enum_monotonicity_info get_monotonicity_info() const; + longlong val_int_endpoint(bool left_endp, bool *incl_endp); + void fix_length_and_dec() + { + decimals=0; + max_length=4*MY_CHARSET_BIN_MB_MAXLEN; + maybe_null=1; + } + bool check_partition_func_processor(uchar *int_arg) {return FALSE;} + bool check_vcol_func_processor(uchar *int_arg) { return FALSE;} + bool check_valid_arguments_processor(uchar *int_arg) + { + return !has_date_args(); + } +}; + + +class Item_func_weekday :public Item_func +{ + bool odbc_type; +public: + Item_func_weekday(Item *a,bool type_arg) + :Item_func(a), odbc_type(type_arg) { collation.set_numeric(); } + longlong val_int(); + double val_real() { DBUG_ASSERT(fixed == 1); return (double) val_int(); } + String *val_str(String *str) + { + DBUG_ASSERT(fixed == 1); + str->set(val_int(), &my_charset_bin); + return null_value ? 0 : str; + } + const char *func_name() const + { + return (odbc_type ? "dayofweek" : "weekday"); + } + enum Item_result result_type () const { return INT_RESULT; } + void fix_length_and_dec() + { + decimals= 0; + fix_char_length(1); + maybe_null=1; + } + bool check_partition_func_processor(uchar *int_arg) {return FALSE;} + bool check_vcol_func_processor(uchar *int_arg) { return FALSE;} + bool check_valid_arguments_processor(uchar *int_arg) + { + return !has_date_args(); + } +}; + +class Item_func_dayname :public Item_func_weekday +{ + MY_LOCALE *locale; + public: + Item_func_dayname(Item *a) :Item_func_weekday(a,0) {} + const char *func_name() const { return "dayname"; } + String *val_str(String *str); + enum Item_result result_type () const { return STRING_RESULT; } + void fix_length_and_dec(); + bool check_partition_func_processor(uchar *int_arg) {return TRUE;} + bool check_vcol_func_processor(uchar *int_arg) { return FALSE;} +}; + + +class Item_func_seconds_hybrid: public Item_func_numhybrid +{ +protected: + virtual enum_field_types arg0_expected_type() const = 0; +public: + Item_func_seconds_hybrid() :Item_func_numhybrid() {} + Item_func_seconds_hybrid(Item *a) :Item_func_numhybrid(a) {} + void fix_length_and_dec() + { + if (arg_count) + decimals= args[0]->temporal_precision(arg0_expected_type()); + set_if_smaller(decimals, TIME_SECOND_PART_DIGITS); + max_length=17 + (decimals ? decimals + 1 : 0); + maybe_null= true; + cached_result_type= decimals ? DECIMAL_RESULT : INT_RESULT; + } + double real_op() { DBUG_ASSERT(0); return 0; } + String *str_op(String *str) { DBUG_ASSERT(0); return 0; } + bool date_op(MYSQL_TIME *ltime, uint fuzzydate) { DBUG_ASSERT(0); return true; } +}; + + +class Item_func_unix_timestamp :public Item_func_seconds_hybrid +{ + bool get_timestamp_value(my_time_t *seconds, ulong *second_part); +protected: + enum_field_types arg0_expected_type() const { return MYSQL_TYPE_DATETIME; } +public: + Item_func_unix_timestamp() :Item_func_seconds_hybrid() {} + Item_func_unix_timestamp(Item *a) :Item_func_seconds_hybrid(a) {} + const char *func_name() const { return "unix_timestamp"; } + enum_monotonicity_info get_monotonicity_info() const; + longlong val_int_endpoint(bool left_endp, bool *incl_endp); + bool check_partition_func_processor(uchar *int_arg) {return FALSE;} + /* + UNIX_TIMESTAMP() depends on the current timezone + (and thus may not be used as a partitioning function) + when its argument is NOT of the TIMESTAMP type. + */ + bool check_valid_arguments_processor(uchar *int_arg) + { + return !has_timestamp_args(); + } + bool check_vcol_func_processor(uchar *int_arg) + { + /* + TODO: Allow UNIX_TIMESTAMP called with an argument to be a part + of the expression for a virtual column + */ + return trace_unsupported_by_check_vcol_func_processor(func_name()); + } + longlong int_op(); + my_decimal *decimal_op(my_decimal* buf); +}; + + +class Item_func_time_to_sec :public Item_func_seconds_hybrid +{ +protected: + enum_field_types arg0_expected_type() const { return MYSQL_TYPE_TIME; } +public: + Item_func_time_to_sec(Item *item) :Item_func_seconds_hybrid(item) {} + const char *func_name() const { return "time_to_sec"; } + bool check_partition_func_processor(uchar *int_arg) {return FALSE;} + bool check_vcol_func_processor(uchar *int_arg) { return FALSE;} + bool check_valid_arguments_processor(uchar *int_arg) + { + return !has_time_args(); + } + longlong int_op(); + my_decimal *decimal_op(my_decimal* buf); +}; + + +class Item_temporal_func: public Item_func +{ + ulonglong sql_mode; +public: + Item_temporal_func() :Item_func() {} + Item_temporal_func(Item *a) :Item_func(a) {} + Item_temporal_func(Item *a, Item *b) :Item_func(a,b) {} + Item_temporal_func(Item *a, Item *b, Item *c) :Item_func(a,b,c) {} + enum Item_result result_type () const { return STRING_RESULT; } + CHARSET_INFO *charset_for_protocol(void) const { return &my_charset_bin; } + enum_field_types field_type() const { return MYSQL_TYPE_DATETIME; } + Item_result cmp_type() const { return TIME_RESULT; } + String *val_str(String *str); + longlong val_int() { return val_int_from_date(); } + double val_real() { return val_real_from_date(); } + bool get_date(MYSQL_TIME *res, ulonglong fuzzy_date) { DBUG_ASSERT(0); return 1; } + my_decimal *val_decimal(my_decimal *decimal_value) + { return val_decimal_from_date(decimal_value); } + Field *tmp_table_field(TABLE *table) + { return tmp_table_field_from_field_type(table, 0); } +#if MARIADB_VERSION_ID > 100300 +#error This code should be removed in 10.3, to use the derived save_in_field() +#else + int save_in_field(Field *field, bool no_conversions) + { + return field_type() == MYSQL_TYPE_TIME ? + save_time_in_field(field) : + save_date_in_field(field); + } +#endif + void fix_length_and_dec(); +}; + + +/** + Abstract class for functions returning TIME, DATE, DATETIME or string values, + whose data type depends on parameters and is set at fix_fields time. +*/ +class Item_temporal_hybrid_func: public Item_temporal_func +{ +protected: + enum_field_types cached_field_type; // TIME, DATE, DATETIME or STRING + String ascii_buf; // Conversion buffer +public: + Item_temporal_hybrid_func(Item *a,Item *b) + :Item_temporal_func(a,b) {} + enum_field_types field_type() const { return cached_field_type; } + Item_result cmp_type() const + { + return cached_field_type == MYSQL_TYPE_STRING ? + STRING_RESULT : TIME_RESULT; + } + const CHARSET_INFO *charset_for_protocol() const + { + /* + Can return TIME, DATE, DATETIME or VARCHAR depending on arguments. + Send using "binary" when TIME, DATE or DATETIME, + or using collation.collation when VARCHAR + (which is fixed from @@collation_connection in fix_length_and_dec). + */ + DBUG_ASSERT(fixed == 1); + return cached_field_type == MYSQL_TYPE_STRING ? + collation.collation : &my_charset_bin; + } + /** + Return string value in ASCII character set. + */ + String *val_str_ascii(String *str); + /** + Return string value in @@character_set_connection. + */ + String *val_str(String *str) + { + return val_str_from_val_str_ascii(str, &ascii_buf); + } +}; + + +class Item_datefunc :public Item_temporal_func +{ +public: + Item_datefunc() :Item_temporal_func() { } + Item_datefunc(Item *a) :Item_temporal_func(a) { } + enum_field_types field_type() const { return MYSQL_TYPE_DATE; } +}; + + +class Item_timefunc :public Item_temporal_func +{ +public: + Item_timefunc() :Item_temporal_func() {} + Item_timefunc(Item *a) :Item_temporal_func(a) {} + Item_timefunc(Item *a,Item *b) :Item_temporal_func(a,b) {} + Item_timefunc(Item *a, Item *b, Item *c) :Item_temporal_func(a, b ,c) {} + enum_field_types field_type() const { return MYSQL_TYPE_TIME; } +}; + + +/* Abstract CURTIME function. Children should define what time zone is used */ + +class Item_func_curtime :public Item_timefunc +{ + MYSQL_TIME ltime; +public: + Item_func_curtime(uint dec) :Item_timefunc() { decimals= dec; } + bool fix_fields(THD *, Item **); + void fix_length_and_dec() + { + store_now_in_TIME(<ime); + Item_timefunc::fix_length_and_dec(); + maybe_null= false; + } + bool get_date(MYSQL_TIME *res, ulonglong fuzzy_date); + /* + Abstract method that defines which time zone is used for conversion. + Converts time current time in my_time_t representation to broken-down + MYSQL_TIME representation using UTC-SYSTEM or per-thread time zone. + */ + virtual void store_now_in_TIME(MYSQL_TIME *now_time)=0; + bool check_vcol_func_processor(uchar *int_arg) + { + return trace_unsupported_by_check_vcol_func_processor(func_name()); + } +}; + + +class Item_func_curtime_local :public Item_func_curtime +{ +public: + Item_func_curtime_local(uint dec) :Item_func_curtime(dec) {} + const char *func_name() const { return "curtime"; } + virtual void store_now_in_TIME(MYSQL_TIME *now_time); +}; + + +class Item_func_curtime_utc :public Item_func_curtime +{ +public: + Item_func_curtime_utc(uint dec) :Item_func_curtime(dec) {} + const char *func_name() const { return "utc_time"; } + virtual void store_now_in_TIME(MYSQL_TIME *now_time); +}; + + +/* Abstract CURDATE function. See also Item_func_curtime. */ + +class Item_func_curdate :public Item_datefunc +{ + MYSQL_TIME ltime; +public: + Item_func_curdate() :Item_datefunc() {} + void fix_length_and_dec(); + bool get_date(MYSQL_TIME *res, ulonglong fuzzy_date); + virtual void store_now_in_TIME(MYSQL_TIME *now_time)=0; + bool check_vcol_func_processor(uchar *int_arg) + { + return trace_unsupported_by_check_vcol_func_processor(func_name()); + } +}; + + +class Item_func_curdate_local :public Item_func_curdate +{ +public: + Item_func_curdate_local() :Item_func_curdate() {} + const char *func_name() const { return "curdate"; } + void store_now_in_TIME(MYSQL_TIME *now_time); +}; + + +class Item_func_curdate_utc :public Item_func_curdate +{ +public: + Item_func_curdate_utc() :Item_func_curdate() {} + const char *func_name() const { return "utc_date"; } + void store_now_in_TIME(MYSQL_TIME *now_time); +}; + + +/* Abstract CURRENT_TIMESTAMP function. See also Item_func_curtime */ + + +class Item_func_now :public Item_temporal_func +{ + MYSQL_TIME ltime; +public: + Item_func_now(uint dec) :Item_temporal_func() { decimals= dec; } + bool fix_fields(THD *, Item **); + void fix_length_and_dec() + { + store_now_in_TIME(<ime); + Item_temporal_func::fix_length_and_dec(); + maybe_null= false; + } + bool get_date(MYSQL_TIME *res, ulonglong fuzzy_date); + virtual void store_now_in_TIME(MYSQL_TIME *now_time)=0; + bool check_vcol_func_processor(uchar *int_arg) + { + return trace_unsupported_by_check_vcol_func_processor(func_name()); + } +}; + + +class Item_func_now_local :public Item_func_now +{ +public: + Item_func_now_local(uint dec) :Item_func_now(dec) {} + const char *func_name() const { return "now"; } + virtual void store_now_in_TIME(MYSQL_TIME *now_time); + virtual enum Functype functype() const { return NOW_FUNC; } +}; + + +class Item_func_now_utc :public Item_func_now +{ +public: + Item_func_now_utc(uint dec) :Item_func_now(dec) {} + const char *func_name() const { return "utc_timestamp"; } + virtual void store_now_in_TIME(MYSQL_TIME *now_time); +}; + + +/* + This is like NOW(), but always uses the real current time, not the + query_start(). This matches the Oracle behavior. +*/ +class Item_func_sysdate_local :public Item_func_now +{ +public: + Item_func_sysdate_local(uint dec) :Item_func_now(dec) {} + bool const_item() const { return 0; } + const char *func_name() const { return "sysdate"; } + void store_now_in_TIME(MYSQL_TIME *now_time); + bool get_date(MYSQL_TIME *res, ulonglong fuzzy_date); + void update_used_tables() + { + Item_func_now::update_used_tables(); + maybe_null= 0; + used_tables_cache|= RAND_TABLE_BIT; + } +}; + + +class Item_func_from_days :public Item_datefunc +{ +public: + Item_func_from_days(Item *a) :Item_datefunc(a) {} + const char *func_name() const { return "from_days"; } + bool get_date(MYSQL_TIME *res, ulonglong fuzzy_date); + bool check_partition_func_processor(uchar *int_arg) {return FALSE;} + bool check_vcol_func_processor(uchar *int_arg) { return FALSE;} + bool check_valid_arguments_processor(uchar *int_arg) + { + return has_date_args() || has_time_args(); + } +}; + + +class Item_func_date_format :public Item_str_func +{ + MY_LOCALE *locale; + int fixed_length; + const bool is_time_format; + String value; +public: + Item_func_date_format(Item *a,Item *b,bool is_time_format_arg) + :Item_str_func(a,b),is_time_format(is_time_format_arg) {} + String *val_str(String *str); + const char *func_name() const + { return is_time_format ? "time_format" : "date_format"; } + void fix_length_and_dec(); + uint format_length(const String *format); + bool eq(const Item *item, bool binary_cmp) const; +}; + + +class Item_func_from_unixtime :public Item_temporal_func +{ + Time_zone *tz; + public: + Item_func_from_unixtime(Item *a) :Item_temporal_func(a) {} + const char *func_name() const { return "from_unixtime"; } + void fix_length_and_dec(); + bool get_date(MYSQL_TIME *res, ulonglong fuzzy_date); +}; + + +/* + We need Time_zone class declaration for storing pointers in + Item_func_convert_tz. +*/ +class Time_zone; + +/* + This class represents CONVERT_TZ() function. + The important fact about this function that it is handled in special way. + When such function is met in expression time_zone system tables are added + to global list of tables to open, so later those already opened and locked + tables can be used during this function calculation for loading time zone + descriptions. +*/ +class Item_func_convert_tz :public Item_temporal_func +{ + /* + If time zone parameters are constants we are caching objects that + represent them (we use separate from_tz_cached/to_tz_cached members + to indicate this fact, since NULL is legal value for from_tz/to_tz + members. + */ + bool from_tz_cached, to_tz_cached; + Time_zone *from_tz, *to_tz; + public: + Item_func_convert_tz(Item *a, Item *b, Item *c): + Item_temporal_func(a, b, c), from_tz_cached(0), to_tz_cached(0) {} + const char *func_name() const { return "convert_tz"; } + void fix_length_and_dec(); + bool get_date(MYSQL_TIME *res, ulonglong fuzzy_date); + void cleanup(); +}; + + +class Item_func_sec_to_time :public Item_timefunc +{ +public: + Item_func_sec_to_time(Item *item) :Item_timefunc(item) {} + bool get_date(MYSQL_TIME *res, ulonglong fuzzy_date); + void fix_length_and_dec() + { + decimals= args[0]->decimals; + Item_timefunc::fix_length_and_dec(); + } + const char *func_name() const { return "sec_to_time"; } +}; + + +class Item_date_add_interval :public Item_temporal_hybrid_func +{ +public: + const interval_type int_type; // keep it public + const bool date_sub_interval; // keep it public + Item_date_add_interval(Item *a,Item *b,interval_type type_arg,bool neg_arg) + :Item_temporal_hybrid_func(a,b),int_type(type_arg), date_sub_interval(neg_arg) {} + const char *func_name() const { return "date_add_interval"; } + void fix_length_and_dec(); + bool get_date(MYSQL_TIME *res, ulonglong fuzzy_date); + bool eq(const Item *item, bool binary_cmp) const; + void print(String *str, enum_query_type query_type); +}; + + +class Item_extract :public Item_int_func +{ + bool date_value; + public: + const interval_type int_type; // keep it public + Item_extract(interval_type type_arg, Item *a) + :Item_int_func(a), int_type(type_arg) {} + longlong val_int(); + enum Functype functype() const { return EXTRACT_FUNC; } + const char *func_name() const { return "extract"; } + void fix_length_and_dec(); + bool eq(const Item *item, bool binary_cmp) const; + void print(String *str, enum_query_type query_type); + bool check_partition_func_processor(uchar *int_arg) {return FALSE;} + bool check_vcol_func_processor(uchar *int_arg) { return FALSE;} + bool check_valid_arguments_processor(uchar *int_arg) + { + switch (int_type) { + case INTERVAL_YEAR: + case INTERVAL_YEAR_MONTH: + case INTERVAL_QUARTER: + case INTERVAL_MONTH: + /* case INTERVAL_WEEK: Not allowed as partitioning function, bug#57071 */ + case INTERVAL_DAY: + return !has_date_args(); + case INTERVAL_DAY_HOUR: + case INTERVAL_DAY_MINUTE: + case INTERVAL_DAY_SECOND: + case INTERVAL_DAY_MICROSECOND: + return !has_datetime_args(); + case INTERVAL_HOUR: + case INTERVAL_HOUR_MINUTE: + case INTERVAL_HOUR_SECOND: + case INTERVAL_MINUTE: + case INTERVAL_MINUTE_SECOND: + case INTERVAL_SECOND: + case INTERVAL_MICROSECOND: + case INTERVAL_HOUR_MICROSECOND: + case INTERVAL_MINUTE_MICROSECOND: + case INTERVAL_SECOND_MICROSECOND: + return !has_time_args(); + default: + /* + INTERVAL_LAST is only an end marker, + INTERVAL_WEEK depends on default_week_format which is a session + variable and cannot be used for partitioning. See bug#57071. + */ + break; + } + return true; + } +}; + + +class Item_char_typecast :public Item_str_func +{ + uint cast_length; + CHARSET_INFO *cast_cs, *from_cs; + bool charset_conversion; + String tmp_value; +public: + Item_char_typecast(Item *a, uint length_arg, CHARSET_INFO *cs_arg) + :Item_str_func(a), cast_length(length_arg), cast_cs(cs_arg) {} + enum Functype functype() const { return CHAR_TYPECAST_FUNC; } + bool eq(const Item *item, bool binary_cmp) const; + const char *func_name() const { return "cast_as_char"; } + String *val_str(String *a); + void fix_length_and_dec(); + void print(String *str, enum_query_type query_type); +}; + + +class Item_temporal_typecast: public Item_temporal_func +{ +public: + Item_temporal_typecast(Item *a) :Item_temporal_func(a) {} + virtual const char *cast_type() const = 0; + void print(String *str, enum_query_type query_type); + void fix_length_and_dec() + { + if (decimals == NOT_FIXED_DEC) + decimals= args[0]->temporal_precision(field_type()); + Item_temporal_func::fix_length_and_dec(); + } +}; + +class Item_date_typecast :public Item_temporal_typecast +{ +public: + Item_date_typecast(Item *a) :Item_temporal_typecast(a) {} + const char *func_name() const { return "cast_as_date"; } + bool get_date(MYSQL_TIME *ltime, ulonglong fuzzy_date); + const char *cast_type() const { return "date"; } + enum_field_types field_type() const { return MYSQL_TYPE_DATE; } +}; + + +class Item_time_typecast :public Item_temporal_typecast +{ +public: + Item_time_typecast(Item *a, uint dec_arg) + :Item_temporal_typecast(a) { decimals= dec_arg; } + const char *func_name() const { return "cast_as_time"; } + bool get_date(MYSQL_TIME *ltime, ulonglong fuzzy_date); + const char *cast_type() const { return "time"; } + enum_field_types field_type() const { return MYSQL_TYPE_TIME; } +}; + + +class Item_datetime_typecast :public Item_temporal_typecast +{ +public: + Item_datetime_typecast(Item *a, uint dec_arg) + :Item_temporal_typecast(a) { decimals= dec_arg; } + const char *func_name() const { return "cast_as_datetime"; } + const char *cast_type() const { return "datetime"; } + enum_field_types field_type() const { return MYSQL_TYPE_DATETIME; } + bool get_date(MYSQL_TIME *ltime, ulonglong fuzzy_date); +}; + + +class Item_func_makedate :public Item_temporal_func +{ +public: + Item_func_makedate(Item *a,Item *b) :Item_temporal_func(a,b) {} + const char *func_name() const { return "makedate"; } + enum_field_types field_type() const { return MYSQL_TYPE_DATE; } + bool get_date(MYSQL_TIME *ltime, ulonglong fuzzy_date); +}; + + +class Item_func_add_time :public Item_temporal_hybrid_func +{ + const bool is_date; + int sign; + +public: + Item_func_add_time(Item *a, Item *b, bool type_arg, bool neg_arg) + :Item_temporal_hybrid_func(a, b), is_date(type_arg) { sign= neg_arg ? -1 : 1; } + void fix_length_and_dec(); + bool get_date(MYSQL_TIME *ltime, ulonglong fuzzy_date); + void print(String *str, enum_query_type query_type); + const char *func_name() const { return "add_time"; } +}; + +class Item_func_timediff :public Item_timefunc +{ +public: + Item_func_timediff(Item *a, Item *b) + :Item_timefunc(a, b) {} + const char *func_name() const { return "timediff"; } + void fix_length_and_dec() + { + decimals= max(args[0]->temporal_precision(MYSQL_TYPE_TIME), + args[1]->temporal_precision(MYSQL_TYPE_TIME)); + Item_timefunc::fix_length_and_dec(); + } + bool get_date(MYSQL_TIME *ltime, ulonglong fuzzy_date); +}; + +class Item_func_maketime :public Item_timefunc +{ +public: + Item_func_maketime(Item *a, Item *b, Item *c) + :Item_timefunc(a, b, c) + {} + void fix_length_and_dec() + { + decimals= min(args[2]->decimals, TIME_SECOND_PART_DIGITS); + Item_timefunc::fix_length_and_dec(); + } + const char *func_name() const { return "maketime"; } + bool get_date(MYSQL_TIME *ltime, ulonglong fuzzy_date); +}; + + +class Item_func_microsecond :public Item_int_func +{ +public: + Item_func_microsecond(Item *a) :Item_int_func(a) {} + longlong val_int(); + const char *func_name() const { return "microsecond"; } + void fix_length_and_dec() + { + decimals=0; + maybe_null=1; + } + bool check_partition_func_processor(uchar *int_arg) {return FALSE;} + bool check_vcol_func_processor(uchar *int_arg) { return FALSE;} + bool check_valid_arguments_processor(uchar *int_arg) + { + return !has_time_args(); + } +}; + + +class Item_func_timestamp_diff :public Item_int_func +{ + const interval_type int_type; +public: + Item_func_timestamp_diff(Item *a,Item *b,interval_type type_arg) + :Item_int_func(a,b), int_type(type_arg) {} + const char *func_name() const { return "timestampdiff"; } + longlong val_int(); + void fix_length_and_dec() + { + decimals=0; + maybe_null=1; + } + virtual void print(String *str, enum_query_type query_type); +}; + + +enum date_time_format +{ + USA_FORMAT, JIS_FORMAT, ISO_FORMAT, EUR_FORMAT, INTERNAL_FORMAT +}; + +class Item_func_get_format :public Item_str_ascii_func +{ +public: + const timestamp_type type; // keep it public + Item_func_get_format(timestamp_type type_arg, Item *a) + :Item_str_ascii_func(a), type(type_arg) + {} + String *val_str_ascii(String *str); + const char *func_name() const { return "get_format"; } + void fix_length_and_dec() + { + maybe_null= 1; + decimals=0; + fix_length_and_charset(17, default_charset()); + } + virtual void print(String *str, enum_query_type query_type); +}; + + +class Item_func_str_to_date :public Item_temporal_hybrid_func +{ + timestamp_type cached_timestamp_type; + bool const_item; + String subject_converter; + String format_converter; + CHARSET_INFO *internal_charset; +public: + Item_func_str_to_date(Item *a, Item *b) + :Item_temporal_hybrid_func(a, b), const_item(false), + internal_charset(NULL) + {} + bool get_date(MYSQL_TIME *ltime, ulonglong fuzzy_date); + const char *func_name() const { return "str_to_date"; } + void fix_length_and_dec(); +}; + + +class Item_func_last_day :public Item_datefunc +{ +public: + Item_func_last_day(Item *a) :Item_datefunc(a) {} + const char *func_name() const { return "last_day"; } + bool get_date(MYSQL_TIME *res, ulonglong fuzzy_date); +}; + +#endif /* ITEM_TIMEFUNC_INCLUDED */ diff --git a/database/include/mysql/private/item_xmlfunc.h b/database/include/mysql/private/item_xmlfunc.h new file mode 100644 index 0000000..5cac858 --- /dev/null +++ b/database/include/mysql/private/item_xmlfunc.h @@ -0,0 +1,72 @@ +#ifndef ITEM_XMLFUNC_INCLUDED +#define ITEM_XMLFUNC_INCLUDED + +/* Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + + +/* This file defines all XML functions */ + + +#ifdef __GNUC__ +#pragma interface /* gcc class implementation */ +#endif + + +class Item_xml_str_func: public Item_str_func +{ +protected: + String tmp_value, pxml; + Item *nodeset_func; + String xpath_tmp_value; +public: + Item_xml_str_func(Item *a, Item *b): + Item_str_func(a,b) + { + maybe_null= TRUE; + } + Item_xml_str_func(Item *a, Item *b, Item *c): + Item_str_func(a,b,c) + { + maybe_null= TRUE; + } + void fix_length_and_dec(); + String *parse_xml(String *raw_xml, String *parsed_xml_buf); + bool check_vcol_func_processor(uchar *int_arg) + { + return trace_unsupported_by_check_vcol_func_processor(func_name()); + } +}; + + +class Item_func_xml_extractvalue: public Item_xml_str_func +{ +public: + Item_func_xml_extractvalue(Item *a,Item *b) :Item_xml_str_func(a,b) {} + const char *func_name() const { return "extractvalue"; } + String *val_str(String *); +}; + + +class Item_func_xml_update: public Item_xml_str_func +{ + String tmp_value2, tmp_value3; +public: + Item_func_xml_update(Item *a,Item *b,Item *c) :Item_xml_str_func(a,b,c) {} + const char *func_name() const { return "updatexml"; } + String *val_str(String *); +}; + +#endif /* ITEM_XMLFUNC_INCLUDED */ diff --git a/database/include/mysql/private/key.h b/database/include/mysql/private/key.h new file mode 100644 index 0000000..ce2b3a9 --- /dev/null +++ b/database/include/mysql/private/key.h @@ -0,0 +1,46 @@ +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef KEY_INCLUDED +#define KEY_INCLUDED + +#include "my_global.h" /* uchar */ + +class Field; +class String; +struct TABLE; +typedef struct st_bitmap MY_BITMAP; +typedef struct st_key KEY; +typedef struct st_key_part_info KEY_PART_INFO; + +int find_ref_key(KEY *key, uint key_count, uchar *record, Field *field, + uint *key_length, uint *keypart); +void key_copy(uchar *to_key, uchar *from_record, KEY *key_info, uint key_length, + bool with_zerofill= FALSE); +void key_restore(uchar *to_record, uchar *from_key, KEY *key_info, + uint key_length); +bool key_cmp_if_same(TABLE *form,const uchar *key,uint index,uint key_length); +void key_unpack(String *to,TABLE *form,uint index); +void field_unpack(String *to, Field *field, const uchar *rec, uint max_length, + bool prefix_key); +bool is_key_used(TABLE *table, uint idx, const MY_BITMAP *fields); +int key_cmp(KEY_PART_INFO *key_part, const uchar *key, uint key_length); +ulong key_hashnr(KEY *key_info, uint used_key_parts, const uchar *key); +bool key_buf_cmp(KEY *key_info, uint used_key_parts, + const uchar *key1, const uchar *key2); +extern "C" int key_rec_cmp(void *key_info, uchar *a, uchar *b); +int key_tuple_cmp(KEY_PART_INFO *part, uchar *key1, uchar *key2, uint tuple_length); + +#endif /* KEY_INCLUDED */ diff --git a/database/include/mysql/private/keycaches.h b/database/include/mysql/private/keycaches.h new file mode 100644 index 0000000..72e9496 --- /dev/null +++ b/database/include/mysql/private/keycaches.h @@ -0,0 +1,45 @@ +#ifndef KEYCACHES_INCLUDED +#define KEYCACHES_INCLUDED + +/* Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#include "sql_list.h" +#include + +extern "C" +{ + typedef int (*process_key_cache_t) (const char *, KEY_CACHE *, void *); +} + +class NAMED_ILINK; + +class NAMED_ILIST: public I_List +{ + public: + void delete_elements(void (*free_element)(const char*, uchar*)); +}; + +extern LEX_STRING default_key_cache_base; +extern KEY_CACHE zero_key_cache; +extern NAMED_ILIST key_caches; + +KEY_CACHE *create_key_cache(const char *name, uint length); +KEY_CACHE *get_key_cache(LEX_STRING *cache_name); +KEY_CACHE *get_or_create_key_cache(const char *name, uint length); +void free_key_cache(const char *name, KEY_CACHE *key_cache); +bool process_key_caches(process_key_cache_t func, void *param); + +#endif /* KEYCACHES_INCLUDED */ diff --git a/database/include/mysql/private/lex.h b/database/include/mysql/private/lex.h new file mode 100644 index 0000000..da2cfe2 --- /dev/null +++ b/database/include/mysql/private/lex.h @@ -0,0 +1,682 @@ +#ifndef LEX_INCLUDED +#define LEX_INCLUDED + +/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + + +/* This file includes all reserved words and functions */ + +#include "lex_symbol.h" + +SYM_GROUP sym_group_common= {"", ""}; +SYM_GROUP sym_group_geom= {"Spatial extentions", "HAVE_SPATIAL"}; +SYM_GROUP sym_group_rtree= {"RTree keys", "HAVE_RTREE_KEYS"}; + +/* We don't want to include sql_yacc.h into gen_lex_hash */ +#ifdef NO_YACC_SYMBOLS +#define SYM_OR_NULL(A) 0 +#else +#define SYM_OR_NULL(A) A +#endif + +#define SYM(A) SYM_OR_NULL(A),0,&sym_group_common + +/* + Symbols are broken into separated arrays to allow field names with + same name as functions. + These are kept sorted for human lookup (the symbols are hashed). + + NOTE! The symbol tables should be the same regardless of what features + are compiled into the server. Don't add ifdef'ed symbols to the + lists +*/ + +static SYMBOL symbols[] = { + { "&&", SYM(AND_AND_SYM)}, + { "<=", SYM(LE)}, + { "<>", SYM(NE)}, + { "!=", SYM(NE)}, + { ">=", SYM(GE)}, + { "<<", SYM(SHIFT_LEFT)}, + { ">>", SYM(SHIFT_RIGHT)}, + { "<=>", SYM(EQUAL_SYM)}, + { "ACCESSIBLE", SYM(ACCESSIBLE_SYM)}, + { "ACTION", SYM(ACTION)}, + { "ADD", SYM(ADD)}, + { "AFTER", SYM(AFTER_SYM)}, + { "AGAINST", SYM(AGAINST)}, + { "AGGREGATE", SYM(AGGREGATE_SYM)}, + { "ALL", SYM(ALL)}, + { "ALGORITHM", SYM(ALGORITHM_SYM)}, + { "ALTER", SYM(ALTER)}, + { "ALWAYS", SYM(ALWAYS_SYM)}, + { "ANALYZE", SYM(ANALYZE_SYM)}, + { "AND", SYM(AND_SYM)}, + { "ANY", SYM(ANY_SYM)}, + { "AS", SYM(AS)}, + { "ASC", SYM(ASC)}, + { "ASCII", SYM(ASCII_SYM)}, + { "ASENSITIVE", SYM(ASENSITIVE_SYM)}, + { "AT", SYM(AT_SYM)}, + { "AUTHORS", SYM(AUTHORS_SYM)}, + { "AUTO_INCREMENT", SYM(AUTO_INC)}, + { "AUTOEXTEND_SIZE", SYM(AUTOEXTEND_SIZE_SYM)}, + { "AVG", SYM(AVG_SYM)}, + { "AVG_ROW_LENGTH", SYM(AVG_ROW_LENGTH)}, + { "BACKUP", SYM(BACKUP_SYM)}, + { "BEFORE", SYM(BEFORE_SYM)}, + { "BEGIN", SYM(BEGIN_SYM)}, + { "BETWEEN", SYM(BETWEEN_SYM)}, + { "BIGINT", SYM(BIGINT)}, + { "BINARY", SYM(BINARY)}, + { "BINLOG", SYM(BINLOG_SYM)}, + { "BIT", SYM(BIT_SYM)}, + { "BLOB", SYM(BLOB_SYM)}, + { "BLOCK", SYM(BLOCK_SYM)}, + { "BOOL", SYM(BOOL_SYM)}, + { "BOOLEAN", SYM(BOOLEAN_SYM)}, + { "BOTH", SYM(BOTH)}, + { "BTREE", SYM(BTREE_SYM)}, + { "BY", SYM(BY)}, + { "BYTE", SYM(BYTE_SYM)}, + { "CACHE", SYM(CACHE_SYM)}, + { "CALL", SYM(CALL_SYM)}, + { "CASCADE", SYM(CASCADE)}, + { "CASCADED", SYM(CASCADED)}, + { "CASE", SYM(CASE_SYM)}, + { "CATALOG_NAME", SYM(CATALOG_NAME_SYM)}, + { "CHAIN", SYM(CHAIN_SYM)}, + { "CHANGE", SYM(CHANGE)}, + { "CHANGED", SYM(CHANGED)}, + { "CHAR", SYM(CHAR_SYM)}, + { "CHARACTER", SYM(CHAR_SYM)}, + { "CHARSET", SYM(CHARSET)}, + { "CHECK", SYM(CHECK_SYM)}, + { "CHECKPOINT", SYM(CHECKPOINT_SYM)}, + { "CHECKSUM", SYM(CHECKSUM_SYM)}, + { "CIPHER", SYM(CIPHER_SYM)}, + { "CLASS_ORIGIN", SYM(CLASS_ORIGIN_SYM)}, + { "CLIENT", SYM(CLIENT_SYM)}, + { "CLIENT_STATISTICS", SYM(CLIENT_STATS_SYM)}, + { "CLOSE", SYM(CLOSE_SYM)}, + { "COALESCE", SYM(COALESCE)}, + { "CODE", SYM(CODE_SYM)}, + { "COLLATE", SYM(COLLATE_SYM)}, + { "COLLATION", SYM(COLLATION_SYM)}, + { "COLUMN", SYM(COLUMN_SYM)}, + { "COLUMN_NAME", SYM(COLUMN_NAME_SYM)}, + { "COLUMNS", SYM(COLUMNS)}, + { "COLUMN_ADD", SYM(COLUMN_ADD_SYM)}, + { "COLUMN_CREATE", SYM(COLUMN_CREATE_SYM)}, + { "COLUMN_DELETE", SYM(COLUMN_DELETE_SYM)}, + { "COLUMN_EXISTS", SYM(COLUMN_EXISTS_SYM)}, + { "COLUMN_GET", SYM(COLUMN_GET_SYM)}, + { "COLUMN_LIST", SYM(COLUMN_LIST_SYM)}, + { "COMMENT", SYM(COMMENT_SYM)}, + { "COMMIT", SYM(COMMIT_SYM)}, + { "COMMITTED", SYM(COMMITTED_SYM)}, + { "COMPACT", SYM(COMPACT_SYM)}, + { "COMPLETION", SYM(COMPLETION_SYM)}, + { "COMPRESSED", SYM(COMPRESSED_SYM)}, + { "CONCURRENT", SYM(CONCURRENT)}, + { "CONDITION", SYM(CONDITION_SYM)}, + { "CONNECTION", SYM(CONNECTION_SYM)}, + { "CONSISTENT", SYM(CONSISTENT_SYM)}, + { "CONSTRAINT", SYM(CONSTRAINT)}, + { "CONSTRAINT_CATALOG", SYM(CONSTRAINT_CATALOG_SYM)}, + { "CONSTRAINT_NAME", SYM(CONSTRAINT_NAME_SYM)}, + { "CONSTRAINT_SCHEMA", SYM(CONSTRAINT_SCHEMA_SYM)}, + { "CONTAINS", SYM(CONTAINS_SYM)}, + { "CONTEXT", SYM(CONTEXT_SYM)}, + { "CONTINUE", SYM(CONTINUE_SYM)}, + { "CONTRIBUTORS", SYM(CONTRIBUTORS_SYM)}, + { "CONVERT", SYM(CONVERT_SYM)}, + { "CPU", SYM(CPU_SYM)}, + { "CREATE", SYM(CREATE)}, + { "CROSS", SYM(CROSS)}, + { "CUBE", SYM(CUBE_SYM)}, + { "CURRENT_DATE", SYM(CURDATE)}, + { "CURRENT_TIME", SYM(CURTIME)}, + { "CURRENT_TIMESTAMP", SYM(NOW_SYM)}, + { "CURRENT_USER", SYM(CURRENT_USER)}, + { "CURSOR", SYM(CURSOR_SYM)}, + { "CURSOR_NAME", SYM(CURSOR_NAME_SYM)}, + { "DATA", SYM(DATA_SYM)}, + { "DATABASE", SYM(DATABASE)}, + { "DATABASES", SYM(DATABASES)}, + { "DATAFILE", SYM(DATAFILE_SYM)}, + { "DATE", SYM(DATE_SYM)}, + { "DATETIME", SYM(DATETIME)}, + { "DAY", SYM(DAY_SYM)}, + { "DAY_HOUR", SYM(DAY_HOUR_SYM)}, + { "DAY_MICROSECOND", SYM(DAY_MICROSECOND_SYM)}, + { "DAY_MINUTE", SYM(DAY_MINUTE_SYM)}, + { "DAY_SECOND", SYM(DAY_SECOND_SYM)}, + { "DEALLOCATE", SYM(DEALLOCATE_SYM)}, + { "DEC", SYM(DECIMAL_SYM)}, + { "DECIMAL", SYM(DECIMAL_SYM)}, + { "DECLARE", SYM(DECLARE_SYM)}, + { "DEFAULT", SYM(DEFAULT)}, + { "DEFINER", SYM(DEFINER_SYM)}, + { "DELAYED", SYM(DELAYED_SYM)}, + { "DELAY_KEY_WRITE", SYM(DELAY_KEY_WRITE_SYM)}, + { "DELETE", SYM(DELETE_SYM)}, + { "DESC", SYM(DESC)}, + { "DESCRIBE", SYM(DESCRIBE)}, + { "DES_KEY_FILE", SYM(DES_KEY_FILE)}, + { "DETERMINISTIC", SYM(DETERMINISTIC_SYM)}, + { "DIRECTORY", SYM(DIRECTORY_SYM)}, + { "DISABLE", SYM(DISABLE_SYM)}, + { "DISCARD", SYM(DISCARD)}, + { "DISK", SYM(DISK_SYM)}, + { "DISTINCT", SYM(DISTINCT)}, + { "DISTINCTROW", SYM(DISTINCT)}, /* Access likes this */ + { "DIV", SYM(DIV_SYM)}, + { "DO", SYM(DO_SYM)}, + { "DOUBLE", SYM(DOUBLE_SYM)}, + { "DROP", SYM(DROP)}, + { "DUAL", SYM(DUAL_SYM)}, + { "DUMPFILE", SYM(DUMPFILE)}, + { "DUPLICATE", SYM(DUPLICATE_SYM)}, + { "DYNAMIC", SYM(DYNAMIC_SYM)}, + { "EACH", SYM(EACH_SYM)}, + { "ELSE", SYM(ELSE)}, + { "ELSEIF", SYM(ELSEIF_SYM)}, + { "ENABLE", SYM(ENABLE_SYM)}, + { "ENCLOSED", SYM(ENCLOSED)}, + { "END", SYM(END)}, + { "ENDS", SYM(ENDS_SYM)}, + { "ENGINE", SYM(ENGINE_SYM)}, + { "ENGINES", SYM(ENGINES_SYM)}, + { "ENUM", SYM(ENUM)}, + { "ERROR", SYM(ERROR_SYM)}, + { "ERRORS", SYM(ERRORS)}, + { "ESCAPE", SYM(ESCAPE_SYM)}, + { "ESCAPED", SYM(ESCAPED)}, + { "EVENT", SYM(EVENT_SYM)}, + { "EVENTS", SYM(EVENTS_SYM)}, + { "EVERY", SYM(EVERY_SYM)}, + { "EXAMINED", SYM(EXAMINED_SYM)}, + { "EXECUTE", SYM(EXECUTE_SYM)}, + { "EXISTS", SYM(EXISTS)}, + { "EXIT", SYM(EXIT_SYM)}, + { "EXPANSION", SYM(EXPANSION_SYM)}, + { "EXPLAIN", SYM(DESCRIBE)}, + { "EXTENDED", SYM(EXTENDED_SYM)}, + { "EXTENT_SIZE", SYM(EXTENT_SIZE_SYM)}, + { "FALSE", SYM(FALSE_SYM)}, + { "FAST", SYM(FAST_SYM)}, + { "FAULTS", SYM(FAULTS_SYM)}, + { "FETCH", SYM(FETCH_SYM)}, + { "FIELDS", SYM(COLUMNS)}, + { "FILE", SYM(FILE_SYM)}, + { "FIRST", SYM(FIRST_SYM)}, + { "FIXED", SYM(FIXED_SYM)}, + { "FLOAT", SYM(FLOAT_SYM)}, + { "FLOAT4", SYM(FLOAT_SYM)}, + { "FLOAT8", SYM(DOUBLE_SYM)}, + { "FLUSH", SYM(FLUSH_SYM)}, + { "FOR", SYM(FOR_SYM)}, + { "FORCE", SYM(FORCE_SYM)}, + { "FOREIGN", SYM(FOREIGN)}, + { "FOUND", SYM(FOUND_SYM)}, + { "FROM", SYM(FROM)}, + { "FULL", SYM(FULL)}, + { "FULLTEXT", SYM(FULLTEXT_SYM)}, + { "FUNCTION", SYM(FUNCTION_SYM)}, + { "GENERAL", SYM(GENERAL)}, + { "GENERATED", SYM(GENERATED_SYM)}, + { "GEOMETRY", SYM(GEOMETRY_SYM)}, + { "GEOMETRYCOLLECTION",SYM(GEOMETRYCOLLECTION)}, + { "GET_FORMAT", SYM(GET_FORMAT)}, + { "GLOBAL", SYM(GLOBAL_SYM)}, + { "GRANT", SYM(GRANT)}, + { "GRANTS", SYM(GRANTS)}, + { "GROUP", SYM(GROUP_SYM)}, + { "HANDLER", SYM(HANDLER_SYM)}, + { "HARD", SYM(HARD_SYM)}, + { "HASH", SYM(HASH_SYM)}, + { "HAVING", SYM(HAVING)}, + { "HELP", SYM(HELP_SYM)}, + { "HIGH_PRIORITY", SYM(HIGH_PRIORITY)}, + { "HOST", SYM(HOST_SYM)}, + { "HOSTS", SYM(HOSTS_SYM)}, + { "HOUR", SYM(HOUR_SYM)}, + { "HOUR_MICROSECOND", SYM(HOUR_MICROSECOND_SYM)}, + { "HOUR_MINUTE", SYM(HOUR_MINUTE_SYM)}, + { "HOUR_SECOND", SYM(HOUR_SECOND_SYM)}, + { "IDENTIFIED", SYM(IDENTIFIED_SYM)}, + { "IF", SYM(IF)}, + { "IGNORE", SYM(IGNORE_SYM)}, + { "IGNORE_SERVER_IDS", SYM(IGNORE_SERVER_IDS_SYM)}, + { "IMPORT", SYM(IMPORT)}, + { "IN", SYM(IN_SYM)}, + { "INDEX", SYM(INDEX_SYM)}, + { "INDEXES", SYM(INDEXES)}, + { "INDEX_STATISTICS", SYM(INDEX_STATS_SYM)}, + { "INFILE", SYM(INFILE)}, + { "INITIAL_SIZE", SYM(INITIAL_SIZE_SYM)}, + { "INNER", SYM(INNER_SYM)}, + { "INOUT", SYM(INOUT_SYM)}, + { "INSENSITIVE", SYM(INSENSITIVE_SYM)}, + { "INSERT", SYM(INSERT)}, + { "INSERT_METHOD", SYM(INSERT_METHOD)}, + { "INSTALL", SYM(INSTALL_SYM)}, + { "INT", SYM(INT_SYM)}, + { "INT1", SYM(TINYINT)}, + { "INT2", SYM(SMALLINT)}, + { "INT3", SYM(MEDIUMINT)}, + { "INT4", SYM(INT_SYM)}, + { "INT8", SYM(BIGINT)}, + { "INTEGER", SYM(INT_SYM)}, + { "INTERVAL", SYM(INTERVAL_SYM)}, + { "INTO", SYM(INTO)}, + { "IO", SYM(IO_SYM)}, + { "IO_THREAD", SYM(RELAY_THREAD)}, + { "IPC", SYM(IPC_SYM)}, + { "IS", SYM(IS)}, + { "ISOLATION", SYM(ISOLATION)}, + { "ISSUER", SYM(ISSUER_SYM)}, + { "ITERATE", SYM(ITERATE_SYM)}, + { "INVOKER", SYM(INVOKER_SYM)}, + { "JOIN", SYM(JOIN_SYM)}, + { "KEY", SYM(KEY_SYM)}, + { "KEYS", SYM(KEYS)}, + { "KEY_BLOCK_SIZE", SYM(KEY_BLOCK_SIZE)}, + { "KILL", SYM(KILL_SYM)}, + { "LANGUAGE", SYM(LANGUAGE_SYM)}, + { "LAST", SYM(LAST_SYM)}, + { "LAST_VALUE", SYM(LAST_VALUE)}, + { "LEADING", SYM(LEADING)}, + { "LEAVE", SYM(LEAVE_SYM)}, + { "LEAVES", SYM(LEAVES)}, + { "LEFT", SYM(LEFT)}, + { "LESS", SYM(LESS_SYM)}, + { "LEVEL", SYM(LEVEL_SYM)}, + { "LIKE", SYM(LIKE)}, + { "LIMIT", SYM(LIMIT)}, + { "LINEAR", SYM(LINEAR_SYM)}, + { "LINES", SYM(LINES)}, + { "LINESTRING", SYM(LINESTRING)}, + { "LIST", SYM(LIST_SYM)}, + { "LOAD", SYM(LOAD)}, + { "LOCAL", SYM(LOCAL_SYM)}, + { "LOCALTIME", SYM(NOW_SYM)}, + { "LOCALTIMESTAMP", SYM(NOW_SYM)}, + { "LOCK", SYM(LOCK_SYM)}, + { "LOCKS", SYM(LOCKS_SYM)}, + { "LOGFILE", SYM(LOGFILE_SYM)}, + { "LOGS", SYM(LOGS_SYM)}, + { "LONG", SYM(LONG_SYM)}, + { "LONGBLOB", SYM(LONGBLOB)}, + { "LONGTEXT", SYM(LONGTEXT)}, + { "LOOP", SYM(LOOP_SYM)}, + { "LOW_PRIORITY", SYM(LOW_PRIORITY)}, + { "MASTER", SYM(MASTER_SYM)}, + { "MASTER_CONNECT_RETRY", SYM(MASTER_CONNECT_RETRY_SYM)}, + { "MASTER_HOST", SYM(MASTER_HOST_SYM)}, + { "MASTER_LOG_FILE", SYM(MASTER_LOG_FILE_SYM)}, + { "MASTER_LOG_POS", SYM(MASTER_LOG_POS_SYM)}, + { "MASTER_PASSWORD", SYM(MASTER_PASSWORD_SYM)}, + { "MASTER_PORT", SYM(MASTER_PORT_SYM)}, + { "MASTER_SERVER_ID", SYM(MASTER_SERVER_ID_SYM)}, + { "MASTER_SSL", SYM(MASTER_SSL_SYM)}, + { "MASTER_SSL_CA", SYM(MASTER_SSL_CA_SYM)}, + { "MASTER_SSL_CAPATH",SYM(MASTER_SSL_CAPATH_SYM)}, + { "MASTER_SSL_CERT", SYM(MASTER_SSL_CERT_SYM)}, + { "MASTER_SSL_CIPHER",SYM(MASTER_SSL_CIPHER_SYM)}, + { "MASTER_SSL_KEY", SYM(MASTER_SSL_KEY_SYM)}, + { "MASTER_SSL_VERIFY_SERVER_CERT", SYM(MASTER_SSL_VERIFY_SERVER_CERT_SYM)}, + { "MASTER_USER", SYM(MASTER_USER_SYM)}, + { "MASTER_HEARTBEAT_PERIOD", SYM(MASTER_HEARTBEAT_PERIOD_SYM)}, + { "MATCH", SYM(MATCH)}, + { "MAX_CONNECTIONS_PER_HOUR", SYM(MAX_CONNECTIONS_PER_HOUR)}, + { "MAX_QUERIES_PER_HOUR", SYM(MAX_QUERIES_PER_HOUR)}, + { "MAX_ROWS", SYM(MAX_ROWS)}, + { "MAX_SIZE", SYM(MAX_SIZE_SYM)}, + { "MAX_UPDATES_PER_HOUR", SYM(MAX_UPDATES_PER_HOUR)}, + { "MAX_USER_CONNECTIONS", SYM(MAX_USER_CONNECTIONS_SYM)}, + { "MAXVALUE", SYM(MAX_VALUE_SYM)}, + { "MEDIUM", SYM(MEDIUM_SYM)}, + { "MEDIUMBLOB", SYM(MEDIUMBLOB)}, + { "MEDIUMINT", SYM(MEDIUMINT)}, + { "MEDIUMTEXT", SYM(MEDIUMTEXT)}, + { "MEMORY", SYM(MEMORY_SYM)}, + { "MERGE", SYM(MERGE_SYM)}, + { "MESSAGE_TEXT", SYM(MESSAGE_TEXT_SYM)}, + { "MICROSECOND", SYM(MICROSECOND_SYM)}, + { "MIDDLEINT", SYM(MEDIUMINT)}, /* For powerbuilder */ + { "MIGRATE", SYM(MIGRATE_SYM)}, + { "MINUTE", SYM(MINUTE_SYM)}, + { "MINUTE_MICROSECOND", SYM(MINUTE_MICROSECOND_SYM)}, + { "MINUTE_SECOND", SYM(MINUTE_SECOND_SYM)}, + { "MIN_ROWS", SYM(MIN_ROWS)}, + { "MOD", SYM(MOD_SYM)}, + { "MODE", SYM(MODE_SYM)}, + { "MODIFIES", SYM(MODIFIES_SYM)}, + { "MODIFY", SYM(MODIFY_SYM)}, + { "MONTH", SYM(MONTH_SYM)}, + { "MULTILINESTRING", SYM(MULTILINESTRING)}, + { "MULTIPOINT", SYM(MULTIPOINT)}, + { "MULTIPOLYGON", SYM(MULTIPOLYGON)}, + { "MUTEX", SYM(MUTEX_SYM)}, + { "MYSQL", SYM(MYSQL_SYM)}, + { "MYSQL_ERRNO", SYM(MYSQL_ERRNO_SYM)}, + { "NAME", SYM(NAME_SYM)}, + { "NAMES", SYM(NAMES_SYM)}, + { "NATIONAL", SYM(NATIONAL_SYM)}, + { "NATURAL", SYM(NATURAL)}, + { "NDB", SYM(NDBCLUSTER_SYM)}, + { "NDBCLUSTER", SYM(NDBCLUSTER_SYM)}, + { "NCHAR", SYM(NCHAR_SYM)}, + { "NEW", SYM(NEW_SYM)}, + { "NEXT", SYM(NEXT_SYM)}, + { "NO", SYM(NO_SYM)}, + { "NO_WAIT", SYM(NO_WAIT_SYM)}, + { "NODEGROUP", SYM(NODEGROUP_SYM)}, + { "NONE", SYM(NONE_SYM)}, + { "NOT", SYM(NOT_SYM)}, + { "NO_WRITE_TO_BINLOG", SYM(NO_WRITE_TO_BINLOG)}, + { "NULL", SYM(NULL_SYM)}, + { "NUMERIC", SYM(NUMERIC_SYM)}, + { "NVARCHAR", SYM(NVARCHAR_SYM)}, + { "OFFSET", SYM(OFFSET_SYM)}, + { "OLD_PASSWORD", SYM(OLD_PASSWORD)}, + { "ON", SYM(ON)}, + { "ONE", SYM(ONE_SYM)}, + { "ONE_SHOT", SYM(ONE_SHOT_SYM)}, + { "ONLINE", SYM(ONLINE_SYM)}, + { "OPEN", SYM(OPEN_SYM)}, + { "OPTIMIZE", SYM(OPTIMIZE)}, + { "OPTIONS", SYM(OPTIONS_SYM)}, + { "OPTION", SYM(OPTION)}, + { "OPTIONALLY", SYM(OPTIONALLY)}, + { "OR", SYM(OR_SYM)}, + { "ORDER", SYM(ORDER_SYM)}, + { "OUT", SYM(OUT_SYM)}, + { "OUTER", SYM(OUTER)}, + { "OUTFILE", SYM(OUTFILE)}, + { "OWNER", SYM(OWNER_SYM)}, + { "PACK_KEYS", SYM(PACK_KEYS_SYM)}, + { "PAGE", SYM(PAGE_SYM)}, + { "PAGE_CHECKSUM", SYM(PAGE_CHECKSUM_SYM)}, + { "PARSER", SYM(PARSER_SYM)}, + { "PARSE_VCOL_EXPR", SYM(PARSE_VCOL_EXPR_SYM)}, + { "PARTIAL", SYM(PARTIAL)}, + { "PARTITION", SYM(PARTITION_SYM)}, + { "PARTITIONING", SYM(PARTITIONING_SYM)}, + { "PARTITIONS", SYM(PARTITIONS_SYM)}, + { "PASSWORD", SYM(PASSWORD)}, + { "PERSISTENT", SYM(PERSISTENT_SYM)}, + { "PHASE", SYM(PHASE_SYM)}, + { "PLUGIN", SYM(PLUGIN_SYM)}, + { "PLUGINS", SYM(PLUGINS_SYM)}, + { "POINT", SYM(POINT_SYM)}, + { "POLYGON", SYM(POLYGON)}, + { "PORT", SYM(PORT_SYM)}, + { "PRECISION", SYM(PRECISION)}, + { "PREPARE", SYM(PREPARE_SYM)}, + { "PRESERVE", SYM(PRESERVE_SYM)}, + { "PREV", SYM(PREV_SYM)}, + { "PRIMARY", SYM(PRIMARY_SYM)}, + { "PRIVILEGES", SYM(PRIVILEGES)}, + { "PROCEDURE", SYM(PROCEDURE_SYM)}, + { "PROCESS" , SYM(PROCESS)}, + { "PROCESSLIST", SYM(PROCESSLIST_SYM)}, + { "PROFILE", SYM(PROFILE_SYM)}, + { "PROFILES", SYM(PROFILES_SYM)}, + { "PROXY", SYM(PROXY_SYM)}, + { "PURGE", SYM(PURGE)}, + { "QUARTER", SYM(QUARTER_SYM)}, + { "QUERY", SYM(QUERY_SYM)}, + { "QUICK", SYM(QUICK)}, + { "RANGE", SYM(RANGE_SYM)}, + { "READ", SYM(READ_SYM)}, + { "READ_ONLY", SYM(READ_ONLY_SYM)}, + { "READ_WRITE", SYM(READ_WRITE_SYM)}, + { "READS", SYM(READS_SYM)}, + { "REAL", SYM(REAL)}, + { "REBUILD", SYM(REBUILD_SYM)}, + { "RECOVER", SYM(RECOVER_SYM)}, + { "REDO_BUFFER_SIZE", SYM(REDO_BUFFER_SIZE_SYM)}, + { "REDOFILE", SYM(REDOFILE_SYM)}, + { "REDUNDANT", SYM(REDUNDANT_SYM)}, + { "REFERENCES", SYM(REFERENCES)}, + { "REGEXP", SYM(REGEXP)}, + { "RELAY", SYM(RELAY)}, + { "RELAYLOG", SYM(RELAYLOG_SYM)}, + { "RELAY_LOG_FILE", SYM(RELAY_LOG_FILE_SYM)}, + { "RELAY_LOG_POS", SYM(RELAY_LOG_POS_SYM)}, + { "RELAY_THREAD", SYM(RELAY_THREAD)}, + { "RELEASE", SYM(RELEASE_SYM)}, + { "RELOAD", SYM(RELOAD)}, + { "REMOVE", SYM(REMOVE_SYM)}, + { "RENAME", SYM(RENAME)}, + { "REORGANIZE", SYM(REORGANIZE_SYM)}, + { "REPAIR", SYM(REPAIR)}, + { "REPEATABLE", SYM(REPEATABLE_SYM)}, + { "REPLACE", SYM(REPLACE)}, + { "REPLICATION", SYM(REPLICATION)}, + { "REPEAT", SYM(REPEAT_SYM)}, + { "REQUIRE", SYM(REQUIRE_SYM)}, + { "RESET", SYM(RESET_SYM)}, + { "RESIGNAL", SYM(RESIGNAL_SYM)}, + { "RESTORE", SYM(RESTORE_SYM)}, + { "RESTRICT", SYM(RESTRICT)}, + { "RESUME", SYM(RESUME_SYM)}, + { "RETURN", SYM(RETURN_SYM)}, + { "RETURNS", SYM(RETURNS_SYM)}, + { "REVOKE", SYM(REVOKE)}, + { "RIGHT", SYM(RIGHT)}, + { "RLIKE", SYM(REGEXP)}, /* Like in mSQL2 */ + { "ROLLBACK", SYM(ROLLBACK_SYM)}, + { "ROLLUP", SYM(ROLLUP_SYM)}, + { "ROUTINE", SYM(ROUTINE_SYM)}, + { "ROW", SYM(ROW_SYM)}, + { "ROWS", SYM(ROWS_SYM)}, + { "ROW_FORMAT", SYM(ROW_FORMAT_SYM)}, + { "RTREE", SYM(RTREE_SYM)}, + { "SAVEPOINT", SYM(SAVEPOINT_SYM)}, + { "SCHEDULE", SYM(SCHEDULE_SYM)}, + { "SCHEMA", SYM(DATABASE)}, + { "SCHEMA_NAME", SYM(SCHEMA_NAME_SYM)}, + { "SCHEMAS", SYM(DATABASES)}, + { "SECOND", SYM(SECOND_SYM)}, + { "SECOND_MICROSECOND", SYM(SECOND_MICROSECOND_SYM)}, + { "SECURITY", SYM(SECURITY_SYM)}, + { "SELECT", SYM(SELECT_SYM)}, + { "SENSITIVE", SYM(SENSITIVE_SYM)}, + { "SEPARATOR", SYM(SEPARATOR_SYM)}, + { "SERIAL", SYM(SERIAL_SYM)}, + { "SERIALIZABLE", SYM(SERIALIZABLE_SYM)}, + { "SESSION", SYM(SESSION_SYM)}, + { "SERVER", SYM(SERVER_SYM)}, + { "SET", SYM(SET)}, + { "SHARE", SYM(SHARE_SYM)}, + { "SHOW", SYM(SHOW)}, + { "SHUTDOWN", SYM(SHUTDOWN)}, + { "SIGNAL", SYM(SIGNAL_SYM)}, + { "SIGNED", SYM(SIGNED_SYM)}, + { "SIMPLE", SYM(SIMPLE_SYM)}, + { "SLAVE", SYM(SLAVE)}, + { "SLOW", SYM(SLOW)}, + { "SNAPSHOT", SYM(SNAPSHOT_SYM)}, + { "SMALLINT", SYM(SMALLINT)}, + { "SOCKET", SYM(SOCKET_SYM)}, + { "SOFT", SYM(SOFT_SYM)}, + { "SOME", SYM(ANY_SYM)}, + { "SONAME", SYM(SONAME_SYM)}, + { "SOUNDS", SYM(SOUNDS_SYM)}, + { "SOURCE", SYM(SOURCE_SYM)}, + { "SPATIAL", SYM(SPATIAL_SYM)}, + { "SPECIFIC", SYM(SPECIFIC_SYM)}, + { "SQL", SYM(SQL_SYM)}, + { "SQLEXCEPTION", SYM(SQLEXCEPTION_SYM)}, + { "SQLSTATE", SYM(SQLSTATE_SYM)}, + { "SQLWARNING", SYM(SQLWARNING_SYM)}, + { "SQL_BIG_RESULT", SYM(SQL_BIG_RESULT)}, + { "SQL_BUFFER_RESULT", SYM(SQL_BUFFER_RESULT)}, + { "SQL_CACHE", SYM(SQL_CACHE_SYM)}, + { "SQL_CALC_FOUND_ROWS", SYM(SQL_CALC_FOUND_ROWS)}, + { "SQL_NO_CACHE", SYM(SQL_NO_CACHE_SYM)}, + { "SQL_SMALL_RESULT", SYM(SQL_SMALL_RESULT)}, + { "SQL_THREAD", SYM(SQL_THREAD)}, + { "SQL_TSI_SECOND", SYM(SECOND_SYM)}, + { "SQL_TSI_MINUTE", SYM(MINUTE_SYM)}, + { "SQL_TSI_HOUR", SYM(HOUR_SYM)}, + { "SQL_TSI_DAY", SYM(DAY_SYM)}, + { "SQL_TSI_WEEK", SYM(WEEK_SYM)}, + { "SQL_TSI_MONTH", SYM(MONTH_SYM)}, + { "SQL_TSI_QUARTER", SYM(QUARTER_SYM)}, + { "SQL_TSI_YEAR", SYM(YEAR_SYM)}, + { "SSL", SYM(SSL_SYM)}, + { "START", SYM(START_SYM)}, + { "STARTING", SYM(STARTING)}, + { "STARTS", SYM(STARTS_SYM)}, + { "STATUS", SYM(STATUS_SYM)}, + { "STOP", SYM(STOP_SYM)}, + { "STORAGE", SYM(STORAGE_SYM)}, + { "STRAIGHT_JOIN", SYM(STRAIGHT_JOIN)}, + { "STRING", SYM(STRING_SYM)}, + { "SUBCLASS_ORIGIN", SYM(SUBCLASS_ORIGIN_SYM)}, + { "SUBJECT", SYM(SUBJECT_SYM)}, + { "SUBPARTITION", SYM(SUBPARTITION_SYM)}, + { "SUBPARTITIONS", SYM(SUBPARTITIONS_SYM)}, + { "SUPER", SYM(SUPER_SYM)}, + { "SUSPEND", SYM(SUSPEND_SYM)}, + { "SWAPS", SYM(SWAPS_SYM)}, + { "SWITCHES", SYM(SWITCHES_SYM)}, + { "TABLE", SYM(TABLE_SYM)}, + { "TABLE_NAME", SYM(TABLE_NAME_SYM)}, + { "TABLES", SYM(TABLES)}, + { "TABLESPACE", SYM(TABLESPACE)}, + { "TABLE_STATISTICS", SYM(TABLE_STATS_SYM)}, + { "TABLE_CHECKSUM", SYM(TABLE_CHECKSUM_SYM)}, + { "TEMPORARY", SYM(TEMPORARY)}, + { "TEMPTABLE", SYM(TEMPTABLE_SYM)}, + { "TERMINATED", SYM(TERMINATED)}, + { "TEXT", SYM(TEXT_SYM)}, + { "THAN", SYM(THAN_SYM)}, + { "THEN", SYM(THEN_SYM)}, + { "TIME", SYM(TIME_SYM)}, + { "TIMESTAMP", SYM(TIMESTAMP)}, + { "TIMESTAMPADD", SYM(TIMESTAMP_ADD)}, + { "TIMESTAMPDIFF", SYM(TIMESTAMP_DIFF)}, + { "TINYBLOB", SYM(TINYBLOB)}, + { "TINYINT", SYM(TINYINT)}, + { "TINYTEXT", SYM(TINYTEXT)}, + { "TO", SYM(TO_SYM)}, + { "TRAILING", SYM(TRAILING)}, + { "TRANSACTION", SYM(TRANSACTION_SYM)}, + { "TRANSACTIONAL", SYM(TRANSACTIONAL_SYM)}, + { "TRIGGER", SYM(TRIGGER_SYM)}, + { "TRIGGERS", SYM(TRIGGERS_SYM)}, + { "TRUE", SYM(TRUE_SYM)}, + { "TRUNCATE", SYM(TRUNCATE_SYM)}, + { "TYPE", SYM(TYPE_SYM)}, + { "TYPES", SYM(TYPES_SYM)}, + { "UNCOMMITTED", SYM(UNCOMMITTED_SYM)}, + { "UNDEFINED", SYM(UNDEFINED_SYM)}, + { "UNDO_BUFFER_SIZE", SYM(UNDO_BUFFER_SIZE_SYM)}, + { "UNDOFILE", SYM(UNDOFILE_SYM)}, + { "UNDO", SYM(UNDO_SYM)}, + { "UNICODE", SYM(UNICODE_SYM)}, + { "UNION", SYM(UNION_SYM)}, + { "UNIQUE", SYM(UNIQUE_SYM)}, + { "UNKNOWN", SYM(UNKNOWN_SYM)}, + { "UNLOCK", SYM(UNLOCK_SYM)}, + { "UNINSTALL", SYM(UNINSTALL_SYM)}, + { "UNSIGNED", SYM(UNSIGNED)}, + { "UNTIL", SYM(UNTIL_SYM)}, + { "UPDATE", SYM(UPDATE_SYM)}, + { "UPGRADE", SYM(UPGRADE_SYM)}, + { "USAGE", SYM(USAGE)}, + { "USE", SYM(USE_SYM)}, + { "USER", SYM(USER)}, + { "USER_RESOURCES", SYM(RESOURCES)}, + { "USER_STATISTICS", SYM(USER_STATS_SYM)}, + { "USE_FRM", SYM(USE_FRM)}, + { "USING", SYM(USING)}, + { "UTC_DATE", SYM(UTC_DATE_SYM)}, + { "UTC_TIME", SYM(UTC_TIME_SYM)}, + { "UTC_TIMESTAMP", SYM(UTC_TIMESTAMP_SYM)}, + { "VALUE", SYM(VALUE_SYM)}, + { "VALUES", SYM(VALUES)}, + { "VARBINARY", SYM(VARBINARY)}, + { "VARCHAR", SYM(VARCHAR)}, + { "VARCHARACTER", SYM(VARCHAR)}, + { "VARIABLES", SYM(VARIABLES)}, + { "VARYING", SYM(VARYING)}, + { "VIA", SYM(VIA_SYM)}, + { "VIEW", SYM(VIEW_SYM)}, + { "VIRTUAL", SYM(VIRTUAL_SYM)}, + { "WAIT", SYM(WAIT_SYM)}, + { "WARNINGS", SYM(WARNINGS)}, + { "WEEK", SYM(WEEK_SYM)}, + { "WHEN", SYM(WHEN_SYM)}, + { "WHERE", SYM(WHERE)}, + { "WHILE", SYM(WHILE_SYM)}, + { "WITH", SYM(WITH)}, + { "WORK", SYM(WORK_SYM)}, + { "WRAPPER", SYM(WRAPPER_SYM)}, + { "WRITE", SYM(WRITE_SYM)}, + { "X509", SYM(X509_SYM)}, + { "XOR", SYM(XOR)}, + { "XA", SYM(XA_SYM)}, + { "XML", SYM(XML_SYM)}, /* LOAD XML Arnold/Erik */ + { "YEAR", SYM(YEAR_SYM)}, + { "YEAR_MONTH", SYM(YEAR_MONTH_SYM)}, + { "ZEROFILL", SYM(ZEROFILL)}, + { "||", SYM(OR_OR_SYM)} +}; + + +static SYMBOL sql_functions[] = { + { "ADDDATE", SYM(ADDDATE_SYM)}, + { "BIT_AND", SYM(BIT_AND)}, + { "BIT_OR", SYM(BIT_OR)}, + { "BIT_XOR", SYM(BIT_XOR)}, + { "CAST", SYM(CAST_SYM)}, + { "COUNT", SYM(COUNT_SYM)}, + { "CURDATE", SYM(CURDATE)}, + { "CURTIME", SYM(CURTIME)}, + { "DATE_ADD", SYM(DATE_ADD_INTERVAL)}, + { "DATE_SUB", SYM(DATE_SUB_INTERVAL)}, + { "EXTRACT", SYM(EXTRACT_SYM)}, + { "GROUP_CONCAT", SYM(GROUP_CONCAT_SYM)}, + { "MAX", SYM(MAX_SYM)}, + { "MID", SYM(SUBSTRING)}, /* unireg function */ + { "MIN", SYM(MIN_SYM)}, + { "NOW", SYM(NOW_SYM)}, + { "POSITION", SYM(POSITION_SYM)}, + { "SESSION_USER", SYM(USER)}, + { "STD", SYM(STD_SYM)}, + { "STDDEV", SYM(STD_SYM)}, + { "STDDEV_POP", SYM(STD_SYM)}, + { "STDDEV_SAMP", SYM(STDDEV_SAMP_SYM)}, + { "SUBDATE", SYM(SUBDATE_SYM)}, + { "SUBSTR", SYM(SUBSTRING)}, + { "SUBSTRING", SYM(SUBSTRING)}, + { "SUM", SYM(SUM_SYM)}, + { "SYSDATE", SYM(SYSDATE)}, + { "SYSTEM_USER", SYM(USER)}, + { "TRIM", SYM(TRIM)}, + { "VARIANCE", SYM(VARIANCE_SYM)}, + { "VAR_POP", SYM(VARIANCE_SYM)}, + { "VAR_SAMP", SYM(VAR_SAMP_SYM)}, +}; + +#endif /* LEX_INCLUDED */ diff --git a/database/include/mysql/private/lex_symbol.h b/database/include/mysql/private/lex_symbol.h new file mode 100644 index 0000000..e7819cd --- /dev/null +++ b/database/include/mysql/private/lex_symbol.h @@ -0,0 +1,48 @@ +/* Copyright (c) 2000, 2001, 2004, 2006, 2007 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + + +/* This struct includes all reserved words and functions */ + +#ifndef _lex_symbol_h +#define _lex_symbol_h + +struct st_sym_group; + +typedef struct st_symbol { + const char *name; + uint tok; + uint length; + struct st_sym_group *group; +} SYMBOL; + +typedef struct st_lex_symbol +{ + SYMBOL *symbol; + char *str; + uint length; +} LEX_SYMBOL; + +typedef struct st_sym_group { + const char *name; + const char *needed_define; +} SYM_GROUP; + +extern SYM_GROUP sym_group_common; +extern SYM_GROUP sym_group_geom; +extern SYM_GROUP sym_group_rtree; + +#endif /* _lex_symbol_h */ diff --git a/database/include/mysql/private/lf.h b/database/include/mysql/private/lf.h new file mode 100644 index 0000000..21f656e --- /dev/null +++ b/database/include/mysql/private/lf.h @@ -0,0 +1,269 @@ +/* Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef _lf_h +#define _lf_h + +#include + +C_MODE_START + +/* + Helpers to define both func() and _func(), where + func() is a _func() protected by my_atomic_rwlock_wrlock() +*/ + +#define lock_wrap(f, t, proto_args, args, lock) \ +t _ ## f proto_args; \ +static inline t f proto_args \ +{ \ + t ret; \ + my_atomic_rwlock_wrlock(lock); \ + ret= _ ## f args; \ + my_atomic_rwlock_wrunlock(lock); \ + return ret; \ +} + +#define lock_wrap_void(f, proto_args, args, lock) \ +void _ ## f proto_args; \ +static inline void f proto_args \ +{ \ + my_atomic_rwlock_wrlock(lock); \ + _ ## f args; \ + my_atomic_rwlock_wrunlock(lock); \ +} + +#define nolock_wrap(f, t, proto_args, args) \ +t _ ## f proto_args; \ +static inline t f proto_args \ +{ \ + return _ ## f args; \ +} + +#define nolock_wrap_void(f, proto_args, args) \ +void _ ## f proto_args; \ +static inline void f proto_args \ +{ \ + _ ## f args; \ +} + +/* + wait-free dynamic array, see lf_dynarray.c + + 4 levels of 256 elements each mean 4311810304 elements in an array - it + should be enough for a while +*/ +#define LF_DYNARRAY_LEVEL_LENGTH 256 +#define LF_DYNARRAY_LEVELS 4 + +typedef struct { + void * volatile level[LF_DYNARRAY_LEVELS]; + uint size_of_element; + my_atomic_rwlock_t lock; +} LF_DYNARRAY; + +typedef int (*lf_dynarray_func)(void *, void *); + +void lf_dynarray_init(LF_DYNARRAY *array, uint element_size); +void lf_dynarray_destroy(LF_DYNARRAY *array); + +nolock_wrap(lf_dynarray_value, void *, + (LF_DYNARRAY *array, uint idx), + (array, idx)) +lock_wrap(lf_dynarray_lvalue, void *, + (LF_DYNARRAY *array, uint idx), + (array, idx), + &array->lock) +nolock_wrap(lf_dynarray_iterate, int, + (LF_DYNARRAY *array, lf_dynarray_func func, void *arg), + (array, func, arg)) + +/* + pin manager for memory allocator, lf_alloc-pin.c +*/ + +#define LF_PINBOX_PINS 4 +#define LF_PURGATORY_SIZE 100 + +typedef void lf_pinbox_free_func(void *, void *, void*); + +typedef struct { + LF_DYNARRAY pinarray; + lf_pinbox_free_func *free_func; + void *free_func_arg; + uint free_ptr_offset; + uint32 volatile pinstack_top_ver; /* this is a versioned pointer */ + uint32 volatile pins_in_array; /* number of elements in array */ +} LF_PINBOX; + +typedef struct { + void * volatile pin[LF_PINBOX_PINS]; + LF_PINBOX *pinbox; + void **stack_ends_here; + void *purgatory; + uint32 purgatory_count; + uint32 volatile link; +/* we want sizeof(LF_PINS) to be 128 to avoid false sharing */ + char pad[128-sizeof(uint32)*2 + -sizeof(LF_PINBOX *) + -sizeof(void*) + -sizeof(void *)*(LF_PINBOX_PINS+1)]; +} LF_PINS; + +/* + shortcut macros to do an atomic_wrlock on a structure that uses pins + (e.g. lf_hash). +*/ +#define lf_rwlock_by_pins(PINS) \ + my_atomic_rwlock_wrlock(&(PINS)->pinbox->pinarray.lock) +#define lf_rwunlock_by_pins(PINS) \ + my_atomic_rwlock_wrunlock(&(PINS)->pinbox->pinarray.lock) + +/* + compile-time assert, to require "no less than N" pins + it's enough if it'll fail on at least one compiler, so + we'll enable it on GCC only, which supports zero-length arrays. +*/ +#if defined(__GNUC__) && defined(MY_LF_EXTRA_DEBUG) +#define LF_REQUIRE_PINS(N) \ + static const char require_pins[LF_PINBOX_PINS-N] \ + __attribute__ ((unused)); \ + static const int LF_NUM_PINS_IN_THIS_FILE= N; +#define _lf_pin(PINS, PIN, ADDR) \ + ( \ + assert(PIN < LF_NUM_PINS_IN_THIS_FILE), \ + my_atomic_storeptr(&(PINS)->pin[PIN], (ADDR)) \ + ) +#else +#define LF_REQUIRE_PINS(N) +#define _lf_pin(PINS, PIN, ADDR) my_atomic_storeptr(&(PINS)->pin[PIN], (ADDR)) +#endif + +#define _lf_unpin(PINS, PIN) _lf_pin(PINS, PIN, NULL) +#define lf_pin(PINS, PIN, ADDR) \ + do { \ + lf_rwlock_by_pins(PINS); \ + _lf_pin(PINS, PIN, ADDR); \ + lf_rwunlock_by_pins(PINS); \ + } while (0) +#define lf_unpin(PINS, PIN) lf_pin(PINS, PIN, NULL) +#define _lf_assert_pin(PINS, PIN) assert((PINS)->pin[PIN] != 0) +#define _lf_assert_unpin(PINS, PIN) assert((PINS)->pin[PIN] == 0) + +void lf_pinbox_init(LF_PINBOX *pinbox, uint free_ptr_offset, + lf_pinbox_free_func *free_func, void * free_func_arg); +void lf_pinbox_destroy(LF_PINBOX *pinbox); + +lock_wrap(lf_pinbox_get_pins, LF_PINS *, + (LF_PINBOX *pinbox), + (pinbox), + &pinbox->pinarray.lock) +lock_wrap_void(lf_pinbox_put_pins, + (LF_PINS *pins), + (pins), + &pins->pinbox->pinarray.lock) +lock_wrap_void(lf_pinbox_free, + (LF_PINS *pins, void *addr), + (pins, addr), + &pins->pinbox->pinarray.lock) + +/* + memory allocator, lf_alloc-pin.c +*/ + +typedef struct st_lf_allocator { + LF_PINBOX pinbox; + uchar * volatile top; + uint element_size; + uint32 volatile mallocs; + void (*constructor)(uchar *); /* called, when an object is malloc()'ed */ + void (*destructor)(uchar *); /* called, when an object is free()'d */ +} LF_ALLOCATOR; + +void lf_alloc_init(LF_ALLOCATOR *allocator, uint size, uint free_ptr_offset); +void lf_alloc_destroy(LF_ALLOCATOR *allocator); +uint lf_alloc_pool_count(LF_ALLOCATOR *allocator); +/* + shortcut macros to access underlying pinbox functions from an LF_ALLOCATOR + see _lf_pinbox_get_pins() and _lf_pinbox_put_pins() +*/ +#define _lf_alloc_free(PINS, PTR) _lf_pinbox_free((PINS), (PTR)) +#define lf_alloc_free(PINS, PTR) lf_pinbox_free((PINS), (PTR)) +#define _lf_alloc_get_pins(A) _lf_pinbox_get_pins(&(A)->pinbox) +#define lf_alloc_get_pins(A) lf_pinbox_get_pins(&(A)->pinbox) +#define _lf_alloc_put_pins(PINS) _lf_pinbox_put_pins(PINS) +#define lf_alloc_put_pins(PINS) lf_pinbox_put_pins(PINS) +#define lf_alloc_direct_free(ALLOC, ADDR) my_free((ADDR)) + +lock_wrap(lf_alloc_new, void *, + (LF_PINS *pins), + (pins), + &pins->pinbox->pinarray.lock) + +C_MODE_END + +/* + extendible hash, lf_hash.c +*/ +#include + +C_MODE_START + +#define LF_HASH_UNIQUE 1 + +/* lf_hash overhead per element (that is, sizeof(LF_SLIST) */ +extern const int LF_HASH_OVERHEAD; + +typedef struct { + LF_DYNARRAY array; /* hash itself */ + LF_ALLOCATOR alloc; /* allocator for elements */ + my_hash_get_key get_key; /* see HASH */ + CHARSET_INFO *charset; /* see HASH */ + uint key_offset, key_length; /* see HASH */ + uint element_size; /* size of memcpy'ed area on insert */ + uint flags; /* LF_HASH_UNIQUE, etc */ + int32 volatile size; /* size of array */ + int32 volatile count; /* number of elements in the hash */ +} LF_HASH; + +void lf_hash_init(LF_HASH *hash, uint element_size, uint flags, + uint key_offset, uint key_length, my_hash_get_key get_key, + CHARSET_INFO *charset); +void lf_hash_destroy(LF_HASH *hash); +int lf_hash_insert(LF_HASH *hash, LF_PINS *pins, const void *data); +void *lf_hash_search(LF_HASH *hash, LF_PINS *pins, const void *key, uint keylen); +int lf_hash_delete(LF_HASH *hash, LF_PINS *pins, const void *key, uint keylen); +/* + shortcut macros to access underlying pinbox functions from an LF_HASH + see _lf_pinbox_get_pins() and _lf_pinbox_put_pins() +*/ +#define _lf_hash_get_pins(HASH) _lf_alloc_get_pins(&(HASH)->alloc) +#define lf_hash_get_pins(HASH) lf_alloc_get_pins(&(HASH)->alloc) +#define _lf_hash_put_pins(PINS) _lf_pinbox_put_pins(PINS) +#define lf_hash_put_pins(PINS) lf_pinbox_put_pins(PINS) +#define lf_hash_search_unpin(PINS) lf_unpin((PINS), 2) +/* + cleanup +*/ + +#undef lock_wrap_void +#undef lock_wrap +#undef nolock_wrap_void +#undef nolock_wrap + +C_MODE_END + +#endif + diff --git a/database/include/mysql/private/lock.h b/database/include/mysql/private/lock.h new file mode 100644 index 0000000..e123bb6 --- /dev/null +++ b/database/include/mysql/private/lock.h @@ -0,0 +1,51 @@ +/* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef LOCK_INCLUDED +#define LOCK_INCLUDED + +#include "thr_lock.h" /* thr_lock_type */ +#include "mdl.h" + +// Forward declarations +struct TABLE; +struct TABLE_LIST; +class THD; +typedef struct st_mysql_lock MYSQL_LOCK; + + +MYSQL_LOCK *mysql_lock_tables(THD *thd, TABLE **table, uint count, uint flags); +bool mysql_lock_tables(THD *thd, MYSQL_LOCK *sql_lock, uint flags); +void mysql_unlock_tables(THD *thd, MYSQL_LOCK *sql_lock, bool free_lock= 1); +void mysql_unlock_read_tables(THD *thd, MYSQL_LOCK *sql_lock); +void mysql_unlock_some_tables(THD *thd, TABLE **table,uint count); +void mysql_lock_remove(THD *thd, MYSQL_LOCK *locked,TABLE *table); +void mysql_lock_abort(THD *thd, TABLE *table, bool upgrade_lock); +bool mysql_lock_abort_for_thread(THD *thd, TABLE *table); +MYSQL_LOCK *mysql_lock_merge(MYSQL_LOCK *a,MYSQL_LOCK *b); +/* Lock based on name */ +bool lock_schema_name(THD *thd, const char *db); +/* Lock based on stored routine name */ +bool lock_object_name(THD *thd, MDL_key::enum_mdl_namespace mdl_type, + const char *db, const char *name); + +/* flags for get_lock_data */ +#define GET_LOCK_UNLOCK 1 +#define GET_LOCK_STORE_LOCKS 2 + +MYSQL_LOCK *get_lock_data(THD *thd, TABLE **table_ptr, uint count, uint flags); +void reset_lock_data(MYSQL_LOCK *sql_lock, bool unlock); + +#endif /* LOCK_INCLUDED */ diff --git a/database/include/mysql/private/log.h b/database/include/mysql/private/log.h new file mode 100644 index 0000000..e98d234 --- /dev/null +++ b/database/include/mysql/private/log.h @@ -0,0 +1,964 @@ +/* Copyright (c) 2005, 2016, Oracle and/or its affiliates. + Copyright (c) 2009, 2016, Monty Program Ab + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef LOG_H +#define LOG_H + +#include "unireg.h" // REQUIRED: for other includes +#include "handler.h" /* my_xid */ + +class Relay_log_info; + +class Format_description_log_event; + +bool trans_has_updated_trans_table(const THD* thd); +bool stmt_has_updated_trans_table(const THD *thd); +bool use_trans_cache(const THD* thd, bool is_transactional); +bool ending_trans(THD* thd, const bool all); +bool ending_single_stmt_trans(THD* thd, const bool all); +bool trans_has_updated_non_trans_table(const THD* thd); +bool stmt_has_updated_non_trans_table(const THD* thd); + +/* + Transaction Coordinator log - a base abstract class + for two different implementations +*/ +class TC_LOG +{ + public: + int using_heuristic_recover(); + TC_LOG() {} + virtual ~TC_LOG() {} + + virtual int open(const char *opt_name)=0; + virtual void close()=0; + virtual int log_and_order(THD *thd, my_xid xid, bool all, + bool need_prepare_ordered, + bool need_commit_ordered) = 0; + virtual int unlog(ulong cookie, my_xid xid)=0; + +protected: + /* + These methods are meant to be invoked from log_and_order() implementations + to run any prepare_ordered() respectively commit_ordered() methods in + participating handlers. + + They must be called using suitable thread syncronisation to ensure that + they are each called in the correct commit order among all + transactions. However, it is only necessary to call them if the + corresponding flag passed to log_and_order is set (it is safe, but not + required, to call them when the flag is false). + + The caller must be holding LOCK_prepare_ordered respectively + LOCK_commit_ordered when calling these methods. + */ + void run_prepare_ordered(THD *thd, bool all); + void run_commit_ordered(THD *thd, bool all); +}; + +/* + Locks used to ensure serialised execution of TC_LOG::run_prepare_ordered() + and TC_LOG::run_commit_ordered(), or any other code that calls handler + prepare_ordered() or commit_ordered() methods. +*/ +extern mysql_mutex_t LOCK_prepare_ordered; +extern mysql_mutex_t LOCK_commit_ordered; +#ifdef HAVE_PSI_INTERFACE +extern PSI_mutex_key key_LOCK_prepare_ordered, key_LOCK_commit_ordered; +#endif + +class TC_LOG_DUMMY: public TC_LOG // use it to disable the logging +{ +public: + TC_LOG_DUMMY() {} + int open(const char *opt_name) { return 0; } + void close() { } + /* + TC_LOG_DUMMY is only used when there are <= 1 XA-capable engines, and we + only use internal XA during commit when >= 2 XA-capable engines + participate. + */ + int log_and_order(THD *thd, my_xid xid, bool all, + bool need_prepare_ordered, bool need_commit_ordered) + { + DBUG_ASSERT(0 /* Internal error - TC_LOG_DUMMY::log_and_order() called */); + return 1; + } + int unlog(ulong cookie, my_xid xid) { return 0; } +}; + +#ifdef HAVE_MMAP +class TC_LOG_MMAP: public TC_LOG +{ + public: // only to keep Sun Forte on sol9x86 happy + typedef enum { + PS_POOL, // page is in pool + PS_ERROR, // last sync failed + PS_DIRTY // new xids added since last sync + } PAGE_STATE; + + private: + typedef struct st_page { + struct st_page *next; // page a linked in a fifo queue + my_xid *start, *end; // usable area of a page + my_xid *ptr; // next xid will be written here + int size, free; // max and current number of free xid slots on the page + int waiters; // number of waiters on condition + PAGE_STATE state; // see above + mysql_mutex_t lock; // to access page data or control structure + mysql_cond_t cond; // to wait for a sync + } PAGE; + + /* List of THDs for which to invoke commit_ordered(), in order. */ + struct commit_entry + { + struct commit_entry *next; + THD *thd; + }; + + char logname[FN_REFLEN]; + File fd; + my_off_t file_length; + uint npages, inited; + uchar *data; + struct st_page *pages, *syncing, *active, *pool, **pool_last_ptr; + /* + note that, e.g. LOCK_active is only used to protect + 'active' pointer, to protect the content of the active page + one has to use active->lock. + Same for LOCK_pool and LOCK_sync + */ + mysql_mutex_t LOCK_active, LOCK_pool, LOCK_sync; + mysql_cond_t COND_pool, COND_active; + /* + Queue of threads that need to call commit_ordered(). + Access to this queue must be protected by LOCK_prepare_ordered. + */ + commit_entry *commit_ordered_queue; + /* + This flag and condition is used to reserve the queue while threads in it + each run the commit_ordered() methods one after the other. Only once the + last commit_ordered() in the queue is done can we start on a new queue + run. + + Since we start this process in the first thread in the queue and finish in + the last (and possibly different) thread, we need a condition variable for + this (we cannot unlock a mutex in a different thread than the one who + locked it). + + The condition is used together with the LOCK_prepare_ordered mutex. + */ + mysql_cond_t COND_queue_busy; + my_bool commit_ordered_queue_busy; + + public: + TC_LOG_MMAP(): inited(0) {} + int open(const char *opt_name); + void close(); + int log_and_order(THD *thd, my_xid xid, bool all, + bool need_prepare_ordered, bool need_commit_ordered); + int unlog(ulong cookie, my_xid xid); + int recover(); + + private: + int log_one_transaction(my_xid xid); + void get_active_from_pool(); + int sync(); + int overflow(); +}; +#else +#define TC_LOG_MMAP TC_LOG_DUMMY +#endif + +extern TC_LOG *tc_log; +extern TC_LOG_MMAP tc_log_mmap; +extern TC_LOG_DUMMY tc_log_dummy; + +/* log info errors */ +#define LOG_INFO_EOF -1 +#define LOG_INFO_IO -2 +#define LOG_INFO_INVALID -3 +#define LOG_INFO_SEEK -4 +#define LOG_INFO_MEM -6 +#define LOG_INFO_FATAL -7 +#define LOG_INFO_IN_USE -8 +#define LOG_INFO_EMFILE -9 + + +/* bitmap to SQL_LOG::close() */ +#define LOG_CLOSE_INDEX 1 +#define LOG_CLOSE_TO_BE_OPENED 2 +#define LOG_CLOSE_STOP_EVENT 4 +#define LOG_CLOSE_DELAYED_CLOSE 8 + +/* + Maximum unique log filename extension. + Note: setting to 0x7FFFFFFF due to atol windows + overflow/truncate. + */ +#define MAX_LOG_UNIQUE_FN_EXT 0x7FFFFFFF + +/* + Number of warnings that will be printed to error log + before extension number is exhausted. +*/ +#define LOG_WARN_UNIQUE_FN_EXT_LEFT 1000 + +class Relay_log_info; + +#ifdef HAVE_PSI_INTERFACE +extern PSI_mutex_key key_LOG_INFO_lock; +#endif + +/* + Note that we destroy the lock mutex in the desctructor here. + This means that object instances cannot be destroyed/go out of scope, + until we have reset thd->current_linfo to NULL; + */ +typedef struct st_log_info +{ + char log_file_name[FN_REFLEN]; + my_off_t index_file_offset, index_file_start_offset; + my_off_t pos; + bool fatal; // if the purge happens to give us a negative offset + mysql_mutex_t lock; + st_log_info() : index_file_offset(0), index_file_start_offset(0), + pos(0), fatal(0) + { + DBUG_ENTER("LOG_INFO"); + log_file_name[0] = '\0'; + mysql_mutex_init(key_LOG_INFO_lock, &lock, MY_MUTEX_INIT_FAST); + DBUG_VOID_RETURN; + } + ~st_log_info() + { + DBUG_ENTER("~LOG_INFO"); + mysql_mutex_destroy(&lock); + DBUG_VOID_RETURN; + } +} LOG_INFO; + +/* + Currently we have only 3 kinds of logging functions: old-fashioned + logs, stdout and csv logging routines. +*/ +#define MAX_LOG_HANDLERS_NUM 3 + +/* log event handler flags */ +#define LOG_NONE 1 +#define LOG_FILE 2 +#define LOG_TABLE 4 + +class Log_event; +class Rows_log_event; + +enum enum_log_type { LOG_UNKNOWN, LOG_NORMAL, LOG_BIN }; +enum enum_log_state { LOG_OPENED, LOG_CLOSED, LOG_TO_BE_OPENED }; + +/* + TODO use mmap instead of IO_CACHE for binlog + (mmap+fsync is two times faster than write+fsync) +*/ + +class MYSQL_LOG +{ +public: + MYSQL_LOG(); + void init_pthread_objects(); + void cleanup(); + bool open( +#ifdef HAVE_PSI_INTERFACE + PSI_file_key log_file_key, +#endif + const char *log_name, + enum_log_type log_type, + const char *new_name, + enum cache_type io_cache_type_arg); + bool init_and_set_log_file_name(const char *log_name, + const char *new_name, + enum_log_type log_type_arg, + enum cache_type io_cache_type_arg); + void init(enum_log_type log_type_arg, + enum cache_type io_cache_type_arg); + void close(uint exiting); + inline bool is_open() { return log_state != LOG_CLOSED; } + const char *generate_name(const char *log_name, const char *suffix, + bool strip_ext, char *buff); + int generate_new_name(char *new_name, const char *log_name); + protected: + /* LOCK_log is inited by init_pthread_objects() */ + mysql_mutex_t LOCK_log; + char *name; + char log_file_name[FN_REFLEN]; + char time_buff[20], db[NAME_LEN + 1]; + bool write_error, inited; + IO_CACHE log_file; + enum_log_type log_type; + volatile enum_log_state log_state; + enum cache_type io_cache_type; + friend class Log_event; +#ifdef HAVE_PSI_INTERFACE + /** Instrumentation key to use for file io in @c log_file */ + PSI_file_key m_log_file_key; +#endif +}; + +class MYSQL_QUERY_LOG: public MYSQL_LOG +{ +public: + MYSQL_QUERY_LOG() : last_time(0) {} + void reopen_file(); + bool write(time_t event_time, const char *user_host, + uint user_host_len, int thread_id, + const char *command_type, uint command_type_len, + const char *sql_text, uint sql_text_len); + bool write(THD *thd, time_t current_time, + const char *user_host, uint user_host_len, + ulonglong query_utime, ulonglong lock_utime, bool is_command, + const char *sql_text, uint sql_text_len); + bool open_slow_log(const char *log_name) + { + char buf[FN_REFLEN]; + return open( +#ifdef HAVE_PSI_INTERFACE + key_file_slow_log, +#endif + generate_name(log_name, "-slow.log", 0, buf), + LOG_NORMAL, 0, WRITE_CACHE); + } + bool open_query_log(const char *log_name) + { + char buf[FN_REFLEN]; + return open( +#ifdef HAVE_PSI_INTERFACE + key_file_query_log, +#endif + generate_name(log_name, ".log", 0, buf), + LOG_NORMAL, 0, WRITE_CACHE); + } + +private: + time_t last_time; +}; + +class binlog_cache_mngr; +class MYSQL_BIN_LOG: public TC_LOG, private MYSQL_LOG +{ + private: +#ifdef HAVE_PSI_INTERFACE + /** The instrumentation key to use for @ LOCK_index. */ + PSI_mutex_key m_key_LOCK_index; + /** The instrumentation key to use for @ update_cond. */ + PSI_cond_key m_key_update_cond; + /** The instrumentation key to use for opening the log file. */ + PSI_file_key m_key_file_log; + /** The instrumentation key to use for opening the log index file. */ + PSI_file_key m_key_file_log_index; + + PSI_file_key m_key_COND_queue_busy; +#endif + + struct group_commit_entry + { + struct group_commit_entry *next; + THD *thd; + binlog_cache_mngr *cache_mngr; + bool using_stmt_cache; + bool using_trx_cache; + /* + Extra events (BEGIN, COMMIT/ROLLBACK/XID, and possibly INCIDENT) to be + written during group commit. The incident_event is only valid if + trx_data->has_incident() is true. + */ + Log_event *begin_event; + Log_event *end_event; + Log_event *incident_event; + /* Set during group commit to record any per-thread error. */ + int error; + int commit_errno; + IO_CACHE *error_cache; + /* This is the `all' parameter for ha_commit_ordered(). */ + bool all; + }; + + /* LOCK_log and LOCK_index are inited by init_pthread_objects() */ + mysql_mutex_t LOCK_index; + mysql_mutex_t LOCK_prep_xids; + mysql_cond_t COND_prep_xids; + mysql_cond_t update_cond; + ulonglong bytes_written; + IO_CACHE index_file; + char index_file_name[FN_REFLEN]; + /* + purge_file is a temp file used in purge_logs so that the index file + can be updated before deleting files from disk, yielding better crash + recovery. It is created on demand the first time purge_logs is called + and then reused for subsequent calls. It is cleaned up in cleanup(). + */ + IO_CACHE purge_index_file; + char purge_index_file_name[FN_REFLEN]; + /* + The max size before rotation (usable only if log_type == LOG_BIN: binary + logs and relay logs). + For a binlog, max_size should be max_binlog_size. + For a relay log, it should be max_relay_log_size if this is non-zero, + max_binlog_size otherwise. + max_size is set in init(), and dynamically changed (when one does SET + GLOBAL MAX_BINLOG_SIZE|MAX_RELAY_LOG_SIZE) by fix_max_binlog_size and + fix_max_relay_log_size). + */ + ulong max_size; + long prepared_xids; /* for tc log - number of xids to remember */ + // current file sequence number for load data infile binary logging + uint file_id; + uint open_count; // For replication + int readers_count; + bool need_start_event; + /* + no_auto_events means we don't want any of these automatic events : + Start/Rotate/Stop. That is, in 4.x when we rotate a relay log, we don't + want a Rotate_log event to be written to the relay log. When we start a + relay log etc. So in 4.x this is 1 for relay logs, 0 for binlogs. + In 5.0 it's 0 for relay logs too! + */ + bool no_auto_events; + /* Queue of transactions queued up to participate in group commit. */ + group_commit_entry *group_commit_queue; + /* + Condition variable to mark that the group commit queue is busy. + Used when each thread does it's own commit_ordered() (when + binlog_optimize_thread_scheduling=1). + Used with the LOCK_commit_ordered mutex. + */ + my_bool group_commit_queue_busy; + mysql_cond_t COND_queue_busy; + /* Total number of committed transactions. */ + ulonglong num_commits; + /* Number of group commits done. */ + ulonglong num_group_commits; + + /* pointer to the sync period variable, for binlog this will be + sync_binlog_period, for relay log this will be + sync_relay_log_period + */ + uint *sync_period_ptr; + uint sync_counter; + + inline uint get_sync_period() + { + return *sync_period_ptr; + } + + int write_to_file(IO_CACHE *cache); + /* + This is used to start writing to a new log file. The difference from + new_file() is locking. new_file_without_locking() does not acquire + LOCK_log. + */ + int new_file_without_locking(); + int new_file_impl(bool need_lock); + int write_transaction_or_stmt(group_commit_entry *entry); + bool write_transaction_to_binlog_events(group_commit_entry *entry); + void trx_group_commit_leader(group_commit_entry *leader); + void mark_xid_done(); + void mark_xids_active(uint xid_count); + +public: + using MYSQL_LOG::generate_name; + using MYSQL_LOG::is_open; + + /* This is relay log */ + bool is_relay_log; + ulong signal_cnt; // update of the counter is checked by heartbeat + uint8 checksum_alg_reset; // to contain a new value when binlog is rotated + /* + Holds the last seen in Relay-Log FD's checksum alg value. + The initial value comes from the slave's local FD that heads + the very first Relay-Log file. In the following the value may change + with each received master's FD_m. + Besides to be used in verification events that IO thread receives + (except the 1st fake Rotate, see @c Master_info:: checksum_alg_before_fd), + the value specifies if/how to compute checksum for slave's local events + and the first fake Rotate (R_f^1) coming from the master. + R_f^1 needs logging checksum-compatibly with the RL's heading FD_s. + + Legends for the checksum related comments: + + FD - Format-Description event, + R - Rotate event + R_f - the fake Rotate event + E - an arbirary event + + The underscore indexes for any event + `_s' indicates the event is generated by Slave + `_m' - by Master + + Two special underscore indexes of FD: + FD_q - Format Description event for queuing (relay-logging) + FD_e - Format Description event for executing (relay-logging) + + Upper indexes: + E^n - n:th event is a sequence + + RL - Relay Log + (A) - checksum algorithm descriptor value + FD.(A) - the value of (A) in FD + */ + uint8 relay_log_checksum_alg; + /* + These describe the log's format. This is used only for relay logs. + _for_exec is used by the SQL thread, _for_queue by the I/O thread. It's + necessary to have 2 distinct objects, because the I/O thread may be reading + events in a different format from what the SQL thread is reading (consider + the case of a master which has been upgraded from 5.0 to 5.1 without doing + RESET MASTER, or from 4.x to 5.0). + */ + Format_description_log_event *description_event_for_exec, + *description_event_for_queue; + /* + Binlog position of last commit (or non-transactional write) to the binlog. + Access to this is protected by LOCK_commit_ordered. + */ + char last_commit_pos_file[FN_REFLEN]; + my_off_t last_commit_pos_offset; + + MYSQL_BIN_LOG(uint *sync_period); + /* + note that there's no destructor ~MYSQL_BIN_LOG() ! + The reason is that we don't want it to be automatically called + on exit() - but only during the correct shutdown process + */ + +#ifdef HAVE_PSI_INTERFACE + void set_psi_keys(PSI_mutex_key key_LOCK_index, + PSI_cond_key key_update_cond, + PSI_file_key key_file_log, + PSI_file_key key_file_log_index, + PSI_file_key key_COND_queue_busy) + { + m_key_LOCK_index= key_LOCK_index; + m_key_update_cond= key_update_cond; + m_key_file_log= key_file_log; + m_key_file_log_index= key_file_log_index; + m_key_COND_queue_busy= key_COND_queue_busy; + } +#endif + + int open(const char *opt_name); + void close(); + int log_and_order(THD *thd, my_xid xid, bool all, + bool need_prepare_ordered, bool need_commit_ordered); + int unlog(ulong cookie, my_xid xid); + int recover(IO_CACHE *log, Format_description_log_event *fdle); +#if !defined(MYSQL_CLIENT) + + int flush_and_set_pending_rows_event(THD *thd, Rows_log_event* event, + bool is_transactional); + int remove_pending_rows_event(THD *thd, bool is_transactional); + +#endif /* !defined(MYSQL_CLIENT) */ + void reset_bytes_written() + { + bytes_written = 0; + } + void harvest_bytes_written(ulonglong* counter) + { +#ifndef DBUG_OFF + char buf1[22],buf2[22]; +#endif + DBUG_ENTER("harvest_bytes_written"); + (*counter)+=bytes_written; + DBUG_PRINT("info",("counter: %s bytes_written: %s", llstr(*counter,buf1), + llstr(bytes_written,buf2))); + bytes_written=0; + DBUG_VOID_RETURN; + } + void set_max_size(ulong max_size_arg); + void signal_update(); + void wait_for_update_relay_log(THD* thd); + int wait_for_update_bin_log(THD* thd, const struct timespec * timeout); + void set_need_start_event() { need_start_event = 1; } + void init(bool no_auto_events_arg, ulong max_size); + void init_pthread_objects(); + void cleanup(); + bool open(const char *log_name, + enum_log_type log_type, + const char *new_name, + enum cache_type io_cache_type_arg, + bool no_auto_events_arg, ulong max_size, + bool null_created, + bool need_mutex); + bool open_index_file(const char *index_file_name_arg, + const char *log_name, bool need_mutex); + /* Use this to start writing a new log file */ + int new_file(); + + bool write(Log_event* event_info, + my_bool *with_annotate= 0); // binary log write + bool write_transaction_to_binlog(THD *thd, binlog_cache_mngr *cache_mngr, + Log_event *end_ev, bool all, + bool using_stmt_cache, bool using_trx_cache); + + bool write_incident_already_locked(THD *thd); + bool write_incident(THD *thd); + int write_cache(THD *thd, IO_CACHE *cache); + void set_write_error(THD *thd, bool is_transactional); + bool check_write_error(THD *thd); + + void start_union_events(THD *thd, query_id_t query_id_param); + void stop_union_events(THD *thd); + bool is_query_in_union(THD *thd, query_id_t query_id_param); + + /* + v stands for vector + invoked as appendv(buf1,len1,buf2,len2,...,bufn,lenn,0) + */ + bool appendv(const char* buf,uint len,...); + bool append(Log_event* ev); + + void make_log_name(char* buf, const char* log_ident); + bool is_active(const char* log_file_name); + int update_log_index(LOG_INFO* linfo, bool need_update_threads); + int rotate(bool force_rotate, bool* check_purge); + void purge(); + int rotate_and_purge(bool force_rotate); + /** + Flush binlog cache and synchronize to disk. + + This function flushes events in binlog cache to binary log file, + it will do synchronizing according to the setting of system + variable 'sync_binlog'. If file is synchronized, @c synced will + be set to 1, otherwise 0. + + @param[out] synced if not NULL, set to 1 if file is synchronized, otherwise 0 + + @retval 0 Success + @retval other Failure + */ + bool flush_and_sync(bool *synced); + int purge_logs(const char *to_log, bool included, + bool need_mutex, bool need_update_threads, + ulonglong *decrease_log_space); + int purge_logs_before_date(time_t purge_time); + int purge_first_log(Relay_log_info* rli, bool included); + int set_purge_index_file_name(const char *base_file_name); + int open_purge_index_file(bool destroy); + bool is_inited_purge_index_file(); + int close_purge_index_file(); + int clean_purge_index_file(); + int sync_purge_index_file(); + int register_purge_index_entry(const char* entry); + int register_create_index_entry(const char* entry); + int purge_index_entry(THD *thd, ulonglong *decrease_log_space, + bool need_mutex); + bool reset_logs(THD* thd); + void close(uint exiting); + void clear_inuse_flag_when_closing(File file); + + // iterating through the log index file + int find_log_pos(LOG_INFO* linfo, const char* log_name, + bool need_mutex); + int find_next_log(LOG_INFO* linfo, bool need_mutex); + int get_current_log(LOG_INFO* linfo); + int raw_get_current_log(LOG_INFO* linfo); + uint next_file_id(); + inline char* get_index_fname() { return index_file_name;} + inline char* get_log_fname() { return log_file_name; } + inline char* get_name() { return name; } + inline mysql_mutex_t* get_log_lock() { return &LOCK_log; } + inline mysql_cond_t* get_log_cond() { return &update_cond; } + inline IO_CACHE* get_log_file() { return &log_file; } + + inline void lock_index() { mysql_mutex_lock(&LOCK_index);} + inline void unlock_index() { mysql_mutex_unlock(&LOCK_index);} + inline IO_CACHE *get_index_file() { return &index_file;} + inline uint32 get_open_count() { return open_count; } + void set_status_variables(THD *thd); +}; + +class Log_event_handler +{ +public: + Log_event_handler() {} + virtual bool init()= 0; + virtual void cleanup()= 0; + + virtual bool log_slow(THD *thd, my_hrtime_t current_time, + const char *user_host, + uint user_host_len, ulonglong query_utime, + ulonglong lock_utime, bool is_command, + const char *sql_text, uint sql_text_len)= 0; + virtual bool log_error(enum loglevel level, const char *format, + va_list args)= 0; + virtual bool log_general(THD *thd, my_hrtime_t event_time, const char *user_host, + uint user_host_len, int thread_id, + const char *command_type, uint command_type_len, + const char *sql_text, uint sql_text_len, + CHARSET_INFO *client_cs)= 0; + virtual ~Log_event_handler() {} +}; + + +int check_if_log_table(size_t db_len, const char *db, size_t table_name_len, + const char *table_name, bool check_if_opened); + +class Log_to_csv_event_handler: public Log_event_handler +{ + friend class LOGGER; + +public: + Log_to_csv_event_handler(); + ~Log_to_csv_event_handler(); + virtual bool init(); + virtual void cleanup(); + + virtual bool log_slow(THD *thd, my_hrtime_t current_time, + const char *user_host, + uint user_host_len, ulonglong query_utime, + ulonglong lock_utime, bool is_command, + const char *sql_text, uint sql_text_len); + virtual bool log_error(enum loglevel level, const char *format, + va_list args); + virtual bool log_general(THD *thd, my_hrtime_t event_time, const char *user_host, + uint user_host_len, int thread_id, + const char *command_type, uint command_type_len, + const char *sql_text, uint sql_text_len, + CHARSET_INFO *client_cs); + + int activate_log(THD *thd, uint log_type); +}; + + +/* type of the log table */ +#define QUERY_LOG_SLOW 1 +#define QUERY_LOG_GENERAL 2 + +class Log_to_file_event_handler: public Log_event_handler +{ + MYSQL_QUERY_LOG mysql_log; + MYSQL_QUERY_LOG mysql_slow_log; + bool is_initialized; +public: + Log_to_file_event_handler(): is_initialized(FALSE) + {} + virtual bool init(); + virtual void cleanup(); + + virtual bool log_slow(THD *thd, my_hrtime_t current_time, + const char *user_host, + uint user_host_len, ulonglong query_utime, + ulonglong lock_utime, bool is_command, + const char *sql_text, uint sql_text_len); + virtual bool log_error(enum loglevel level, const char *format, + va_list args); + virtual bool log_general(THD *thd, my_hrtime_t event_time, const char *user_host, + uint user_host_len, int thread_id, + const char *command_type, uint command_type_len, + const char *sql_text, uint sql_text_len, + CHARSET_INFO *client_cs); + void flush(); + void init_pthread_objects(); + MYSQL_QUERY_LOG *get_mysql_slow_log() { return &mysql_slow_log; } + MYSQL_QUERY_LOG *get_mysql_log() { return &mysql_log; } +}; + + +/* Class which manages slow, general and error log event handlers */ +class LOGGER +{ + mysql_rwlock_t LOCK_logger; + /* flag to check whether logger mutex is initialized */ + uint inited; + + /* available log handlers */ + Log_to_csv_event_handler *table_log_handler; + Log_to_file_event_handler *file_log_handler; + + /* NULL-terminated arrays of log handlers */ + Log_event_handler *error_log_handler_list[MAX_LOG_HANDLERS_NUM + 1]; + Log_event_handler *slow_log_handler_list[MAX_LOG_HANDLERS_NUM + 1]; + Log_event_handler *general_log_handler_list[MAX_LOG_HANDLERS_NUM + 1]; + +public: + + bool is_log_tables_initialized; + + LOGGER() : inited(0), table_log_handler(NULL), + file_log_handler(NULL), is_log_tables_initialized(FALSE) + {} + void lock_shared() { mysql_rwlock_rdlock(&LOCK_logger); } + void lock_exclusive() { mysql_rwlock_wrlock(&LOCK_logger); } + void unlock() { mysql_rwlock_unlock(&LOCK_logger); } + bool is_log_table_enabled(uint log_table_type); + bool log_command(THD *thd, enum enum_server_command command); + + /* + We want to initialize all log mutexes as soon as possible, + but we cannot do it in constructor, as safe_mutex relies on + initialization, performed by MY_INIT(). This why this is done in + this function. + */ + void init_base(); + void init_log_tables(); + bool flush_logs(THD *thd); + bool flush_slow_log(); + bool flush_general_log(); + /* Perform basic logger cleanup. this will leave e.g. error log open. */ + void cleanup_base(); + /* Free memory. Nothing could be logged after this function is called */ + void cleanup_end(); + bool error_log_print(enum loglevel level, const char *format, + va_list args); + bool slow_log_print(THD *thd, const char *query, uint query_length, + ulonglong current_utime); + bool general_log_print(THD *thd,enum enum_server_command command, + const char *format, va_list args); + bool general_log_write(THD *thd, enum enum_server_command command, + const char *query, uint query_length); + + /* we use this function to setup all enabled log event handlers */ + int set_handlers(ulonglong error_log_printer, + ulonglong slow_log_printer, + ulonglong general_log_printer); + void init_error_log(ulonglong error_log_printer); + void init_slow_log(ulonglong slow_log_printer); + void init_general_log(ulonglong general_log_printer); + void deactivate_log_handler(THD* thd, uint log_type); + bool activate_log_handler(THD* thd, uint log_type); + MYSQL_QUERY_LOG *get_slow_log_file_handler() const + { + if (file_log_handler) + return file_log_handler->get_mysql_slow_log(); + return NULL; + } + MYSQL_QUERY_LOG *get_log_file_handler() const + { + if (file_log_handler) + return file_log_handler->get_mysql_log(); + return NULL; + } +}; + +enum enum_binlog_format { + BINLOG_FORMAT_MIXED= 0, ///< statement if safe, otherwise row - autodetected + BINLOG_FORMAT_STMT= 1, ///< statement-based + BINLOG_FORMAT_ROW= 2, ///< row-based + BINLOG_FORMAT_UNSPEC=3 ///< thd_binlog_format() returns it when binlog is closed +}; + +int query_error_code(THD *thd, bool not_killed); +uint purge_log_get_error_code(int res); + +int vprint_msg_to_log(enum loglevel level, const char *format, va_list args); +void sql_print_error(const char *format, ...); +void sql_print_warning(const char *format, ...); +void sql_print_information(const char *format, ...); +typedef void (*sql_print_message_func)(const char *format, ...); +extern sql_print_message_func sql_print_message_handlers[]; + +int error_log_print(enum loglevel level, const char *format, + va_list args); + +bool slow_log_print(THD *thd, const char *query, uint query_length, + ulonglong current_utime); + +bool general_log_print(THD *thd, enum enum_server_command command, + const char *format,...); + +bool general_log_write(THD *thd, enum enum_server_command command, + const char *query, uint query_length); + +void sql_perror(const char *message); +bool flush_error_log(); + +File open_binlog(IO_CACHE *log, const char *log_file_name, + const char **errmsg); + +void make_default_log_name(char **out, const char* log_ext, bool once); + +extern MYSQL_PLUGIN_IMPORT MYSQL_BIN_LOG mysql_bin_log; +extern LOGGER logger; + + +/** + Turns a relative log binary log path into a full path, based on the + opt_bin_logname or opt_relay_logname. + + @param from The log name we want to make into an absolute path. + @param to The buffer where to put the results of the + normalization. + @param is_relay_log Switch that makes is used inside to choose which + option (opt_bin_logname or opt_relay_logname) to + use when calculating the base path. + + @returns true if a problem occurs, false otherwise. + */ + +inline bool normalize_binlog_name(char *to, const char *from, bool is_relay_log) +{ + DBUG_ENTER("normalize_binlog_name"); + bool error= false; + char buff[FN_REFLEN]; + char *ptr= (char*) from; + char *opt_name= is_relay_log ? opt_relay_logname : opt_bin_logname; + + DBUG_ASSERT(from); + + /* opt_name is not null and not empty and from is a relative path */ + if (opt_name && opt_name[0] && from && !test_if_hard_path(from)) + { + // take the path from opt_name + // take the filename from from + char log_dirpart[FN_REFLEN], log_dirname[FN_REFLEN]; + size_t log_dirpart_len, log_dirname_len; + dirname_part(log_dirpart, opt_name, &log_dirpart_len); + dirname_part(log_dirname, from, &log_dirname_len); + + /* log may be empty => relay-log or log-bin did not + hold paths, just filename pattern */ + if (log_dirpart_len > 0) + { + /* create the new path name */ + if(fn_format(buff, from+log_dirname_len, log_dirpart, "", + MYF(MY_UNPACK_FILENAME | MY_SAFE_PATH)) == NULL) + { + error= true; + goto end; + } + + ptr= buff; + } + } + + DBUG_ASSERT(ptr); + + if (ptr) + strmake(to, ptr, strlen(ptr)); + +end: + DBUG_RETURN(error); +} + +static inline TC_LOG *get_tc_log_implementation() +{ + if (total_ha_2pc <= 1) + return &tc_log_dummy; + if (opt_bin_log) + return &mysql_bin_log; + return &tc_log_mmap; +} + +#endif /* LOG_H */ diff --git a/database/include/mysql/private/log_event.h b/database/include/mysql/private/log_event.h new file mode 100644 index 0000000..c181b5c --- /dev/null +++ b/database/include/mysql/private/log_event.h @@ -0,0 +1,4366 @@ +/* Copyright (c) 2000, 2014, Oracle and/or its affiliates. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/** + @addtogroup Replication + @{ + + @file + + @brief Binary log event definitions. This includes generic code + common to all types of log events, as well as specific code for each + type of log event. +*/ + + +#ifndef _log_event_h +#define _log_event_h + +#if defined(USE_PRAGMA_INTERFACE) && defined(MYSQL_SERVER) +#pragma interface /* gcc class implementation */ +#endif + +#include +#include "rpl_constants.h" + +#ifdef MYSQL_CLIENT +#include "sql_const.h" +#include "rpl_utility.h" +#include "hash.h" +#include "rpl_tblmap.h" +#endif + +#ifdef MYSQL_SERVER +#include "rpl_record.h" +#include "rpl_reporting.h" +#include "sql_class.h" /* THD */ +#endif + +/* Forward declarations */ +class String; + +#define PREFIX_SQL_LOAD "SQL_LOAD-" +#define LONG_FIND_ROW_THRESHOLD 60 /* seconds */ + +/** + Either assert or return an error. + + In debug build, the condition will be checked, but in non-debug + builds, the error code given will be returned instead. + + @param COND Condition to check + @param ERRNO Error number to return in non-debug builds +*/ +#ifdef DBUG_OFF +#define ASSERT_OR_RETURN_ERROR(COND, ERRNO) \ + do { if (!(COND)) return ERRNO; } while (0) +#else +#define ASSERT_OR_RETURN_ERROR(COND, ERRNO) \ + DBUG_ASSERT(COND) +#endif + +#define LOG_READ_EOF -1 +#define LOG_READ_BOGUS -2 +#define LOG_READ_IO -3 +#define LOG_READ_MEM -5 +#define LOG_READ_TRUNC -6 +#define LOG_READ_TOO_LARGE -7 +#define LOG_READ_CHECKSUM_FAILURE -8 + +#define LOG_EVENT_OFFSET 4 + +/* + 3 is MySQL 4.x; 4 is MySQL 5.0.0. + Compared to version 3, version 4 has: + - a different Start_log_event, which includes info about the binary log + (sizes of headers); this info is included for better compatibility if the + master's MySQL version is different from the slave's. + - all events have a unique ID (the triplet (server_id, timestamp at server + start, other) to be sure an event is not executed more than once in a + multimaster setup, example: + M1 + / \ + v v + M2 M3 + \ / + v v + S + if a query is run on M1, it will arrive twice on S, so we need that S + remembers the last unique ID it has processed, to compare and know if the + event should be skipped or not. Example of ID: we already have the server id + (4 bytes), plus: + timestamp_when_the_master_started (4 bytes), a counter (a sequence number + which increments every time we write an event to the binlog) (3 bytes). + Q: how do we handle when the counter is overflowed and restarts from 0 ? + + - Query and Load (Create or Execute) events may have a more precise + timestamp (with microseconds), number of matched/affected/warnings rows + and fields of session variables: SQL_MODE, + FOREIGN_KEY_CHECKS, UNIQUE_CHECKS, SQL_AUTO_IS_NULL, the collations and + charsets, the PASSWORD() version (old/new/...). +*/ +#define BINLOG_VERSION 4 + +/* + We could have used SERVER_VERSION_LENGTH, but this introduces an + obscure dependency - if somebody decided to change SERVER_VERSION_LENGTH + this would break the replication protocol +*/ +#define ST_SERVER_VER_LEN 50 + +/* + These are flags and structs to handle all the LOAD DATA INFILE options (LINES + TERMINATED etc). +*/ + +/* + These are flags and structs to handle all the LOAD DATA INFILE options (LINES + TERMINATED etc). + DUMPFILE_FLAG is probably useless (DUMPFILE is a clause of SELECT, not of LOAD + DATA). +*/ +#define DUMPFILE_FLAG 0x1 +#define OPT_ENCLOSED_FLAG 0x2 +#define REPLACE_FLAG 0x4 +#define IGNORE_FLAG 0x8 + +#define FIELD_TERM_EMPTY 0x1 +#define ENCLOSED_EMPTY 0x2 +#define LINE_TERM_EMPTY 0x4 +#define LINE_START_EMPTY 0x8 +#define ESCAPED_EMPTY 0x10 + +/***************************************************************************** + + old_sql_ex struct + + ****************************************************************************/ +struct old_sql_ex +{ + char field_term; + char enclosed; + char line_term; + char line_start; + char escaped; + char opt_flags; + char empty_flags; +}; + +#define NUM_LOAD_DELIM_STRS 5 + +/***************************************************************************** + + sql_ex_info struct + + ****************************************************************************/ +struct sql_ex_info +{ + sql_ex_info() {} /* Remove gcc warning */ + const char* field_term; + const char* enclosed; + const char* line_term; + const char* line_start; + const char* escaped; + int cached_new_format; + uint8 field_term_len,enclosed_len,line_term_len,line_start_len, escaped_len; + char opt_flags; + char empty_flags; + + // store in new format even if old is possible + void force_new_format() { cached_new_format = 1;} + int data_size() + { + return (new_format() ? + field_term_len + enclosed_len + line_term_len + + line_start_len + escaped_len + 6 : 7); + } + bool write_data(IO_CACHE* file); + const char* init(const char* buf, const char* buf_end, bool use_new_format); + bool new_format() + { + return ((cached_new_format != -1) ? cached_new_format : + (cached_new_format=(field_term_len > 1 || + enclosed_len > 1 || + line_term_len > 1 || line_start_len > 1 || + escaped_len > 1))); + } +}; + +/***************************************************************************** + + MySQL Binary Log + + This log consists of events. Each event has a fixed-length header, + possibly followed by a variable length data body. + + The data body consists of an optional fixed length segment (post-header) + and an optional variable length segment. + + See the #defines below for the format specifics. + + The events which really update data are Query_log_event, + Execute_load_query_log_event and old Load_log_event and + Execute_load_log_event events (Execute_load_query is used together with + Begin_load_query and Append_block events to replicate LOAD DATA INFILE. + Create_file/Append_block/Execute_load (which includes Load_log_event) + were used to replicate LOAD DATA before the 5.0.3). + + ****************************************************************************/ + +#define LOG_EVENT_HEADER_LEN 19 /* the fixed header length */ +#define OLD_HEADER_LEN 13 /* the fixed header length in 3.23 */ +/* + Fixed header length, where 4.x and 5.0 agree. That is, 5.0 may have a longer + header (it will for sure when we have the unique event's ID), but at least + the first 19 bytes are the same in 4.x and 5.0. So when we have the unique + event's ID, LOG_EVENT_HEADER_LEN will be something like 26, but + LOG_EVENT_MINIMAL_HEADER_LEN will remain 19. +*/ +#define LOG_EVENT_MINIMAL_HEADER_LEN 19 + +/* event-specific post-header sizes */ +// where 3.23, 4.x and 5.0 agree +#define QUERY_HEADER_MINIMAL_LEN (4 + 4 + 1 + 2) +// where 5.0 differs: 2 for len of N-bytes vars. +#define QUERY_HEADER_LEN (QUERY_HEADER_MINIMAL_LEN + 2) +#define STOP_HEADER_LEN 0 +#define LOAD_HEADER_LEN (4 + 4 + 4 + 1 +1 + 4) +#define SLAVE_HEADER_LEN 0 +#define START_V3_HEADER_LEN (2 + ST_SERVER_VER_LEN + 4) +#define ROTATE_HEADER_LEN 8 // this is FROZEN (the Rotate post-header is frozen) +#define INTVAR_HEADER_LEN 0 +#define CREATE_FILE_HEADER_LEN 4 +#define APPEND_BLOCK_HEADER_LEN 4 +#define EXEC_LOAD_HEADER_LEN 4 +#define DELETE_FILE_HEADER_LEN 4 +#define NEW_LOAD_HEADER_LEN LOAD_HEADER_LEN +#define RAND_HEADER_LEN 0 +#define USER_VAR_HEADER_LEN 0 +#define FORMAT_DESCRIPTION_HEADER_LEN (START_V3_HEADER_LEN+1+LOG_EVENT_TYPES) +#define XID_HEADER_LEN 0 +#define BEGIN_LOAD_QUERY_HEADER_LEN APPEND_BLOCK_HEADER_LEN +#define ROWS_HEADER_LEN 8 +#define TABLE_MAP_HEADER_LEN 8 +#define EXECUTE_LOAD_QUERY_EXTRA_HEADER_LEN (4 + 4 + 4 + 1) +#define EXECUTE_LOAD_QUERY_HEADER_LEN (QUERY_HEADER_LEN + EXECUTE_LOAD_QUERY_EXTRA_HEADER_LEN) +#define INCIDENT_HEADER_LEN 2 +#define HEARTBEAT_HEADER_LEN 0 +#define ANNOTATE_ROWS_HEADER_LEN 0 + +/* + Max number of possible extra bytes in a replication event compared to a + packet (i.e. a query) sent from client to master; + First, an auxiliary log_event status vars estimation: +*/ +#define MAX_SIZE_LOG_EVENT_STATUS (1 + 4 /* type, flags2 */ + \ + 1 + 8 /* type, sql_mode */ + \ + 1 + 1 + 255 /* type, length, catalog */ + \ + 1 + 4 /* type, auto_increment */ + \ + 1 + 6 /* type, charset */ + \ + 1 + 1 + 255 /* type, length, time_zone */ + \ + 1 + 2 /* type, lc_time_names_number */ + \ + 1 + 2 /* type, charset_database_number */ + \ + 1 + 8 /* type, table_map_for_update */ + \ + 1 + 4 /* type, master_data_written */ + \ + 1 + 3 /* type, sec_part of NOW() */ + \ + 1 + 16 + 1 + 60/* type, user_len, user, host_len, host */) +#define MAX_LOG_EVENT_HEADER ( /* in order of Query_log_event::write */ \ + LOG_EVENT_HEADER_LEN + /* write_header */ \ + QUERY_HEADER_LEN + /* write_data */ \ + EXECUTE_LOAD_QUERY_EXTRA_HEADER_LEN + /*write_post_header_for_derived */ \ + MAX_SIZE_LOG_EVENT_STATUS + /* status */ \ + NAME_LEN + 1) + +/* + The new option is added to handle large packets that are sent from the master + to the slave. It is used to increase the thd(max_allowed) for both the + DUMP thread on the master and the SQL/IO thread on the slave. +*/ +#define MAX_MAX_ALLOWED_PACKET 1024*1024*1024 + +/* + Event header offsets; + these point to places inside the fixed header. +*/ + +#define EVENT_TYPE_OFFSET 4 +#define SERVER_ID_OFFSET 5 +#define EVENT_LEN_OFFSET 9 +#define LOG_POS_OFFSET 13 +#define FLAGS_OFFSET 17 + +/* start event post-header (for v3 and v4) */ + +#define ST_BINLOG_VER_OFFSET 0 +#define ST_SERVER_VER_OFFSET 2 +#define ST_CREATED_OFFSET (ST_SERVER_VER_OFFSET + ST_SERVER_VER_LEN) +#define ST_COMMON_HEADER_LEN_OFFSET (ST_CREATED_OFFSET + 4) + +/* slave event post-header (this event is never written) */ + +#define SL_MASTER_PORT_OFFSET 8 +#define SL_MASTER_POS_OFFSET 0 +#define SL_MASTER_HOST_OFFSET 10 + +/* query event post-header */ + +#define Q_THREAD_ID_OFFSET 0 +#define Q_EXEC_TIME_OFFSET 4 +#define Q_DB_LEN_OFFSET 8 +#define Q_ERR_CODE_OFFSET 9 +#define Q_STATUS_VARS_LEN_OFFSET 11 +#define Q_DATA_OFFSET QUERY_HEADER_LEN +/* these are codes, not offsets; not more than 256 values (1 byte). */ +#define Q_FLAGS2_CODE 0 +#define Q_SQL_MODE_CODE 1 +/* + Q_CATALOG_CODE is catalog with end zero stored; it is used only by MySQL + 5.0.x where 0<=x<=3. We have to keep it to be able to replicate these + old masters. +*/ +#define Q_CATALOG_CODE 2 +#define Q_AUTO_INCREMENT 3 +#define Q_CHARSET_CODE 4 +#define Q_TIME_ZONE_CODE 5 +/* + Q_CATALOG_NZ_CODE is catalog withOUT end zero stored; it is used by MySQL + 5.0.x where x>=4. Saves one byte in every Query_log_event in binlog, + compared to Q_CATALOG_CODE. The reason we didn't simply re-use + Q_CATALOG_CODE is that then a 5.0.3 slave of this 5.0.x (x>=4) master would + crash (segfault etc) because it would expect a 0 when there is none. +*/ +#define Q_CATALOG_NZ_CODE 6 + +#define Q_LC_TIME_NAMES_CODE 7 + +#define Q_CHARSET_DATABASE_CODE 8 + +#define Q_TABLE_MAP_FOR_UPDATE_CODE 9 + +#define Q_MASTER_DATA_WRITTEN_CODE 10 + +#define Q_INVOKER 11 + +#define Q_HRNOW 128 + +/* Intvar event post-header */ + +/* Intvar event data */ +#define I_TYPE_OFFSET 0 +#define I_VAL_OFFSET 1 + +/* Rand event data */ +#define RAND_SEED1_OFFSET 0 +#define RAND_SEED2_OFFSET 8 + +/* User_var event data */ +#define UV_VAL_LEN_SIZE 4 +#define UV_VAL_IS_NULL 1 +#define UV_VAL_TYPE_SIZE 1 +#define UV_NAME_LEN_SIZE 4 +#define UV_CHARSET_NUMBER_SIZE 4 + +/* Load event post-header */ +#define L_THREAD_ID_OFFSET 0 +#define L_EXEC_TIME_OFFSET 4 +#define L_SKIP_LINES_OFFSET 8 +#define L_TBL_LEN_OFFSET 12 +#define L_DB_LEN_OFFSET 13 +#define L_NUM_FIELDS_OFFSET 14 +#define L_SQL_EX_OFFSET 18 +#define L_DATA_OFFSET LOAD_HEADER_LEN + +/* Rotate event post-header */ +#define R_POS_OFFSET 0 +#define R_IDENT_OFFSET 8 + +/* CF to DF handle LOAD DATA INFILE */ + +/* CF = "Create File" */ +#define CF_FILE_ID_OFFSET 0 +#define CF_DATA_OFFSET CREATE_FILE_HEADER_LEN + +/* AB = "Append Block" */ +#define AB_FILE_ID_OFFSET 0 +#define AB_DATA_OFFSET APPEND_BLOCK_HEADER_LEN + +/* EL = "Execute Load" */ +#define EL_FILE_ID_OFFSET 0 + +/* DF = "Delete File" */ +#define DF_FILE_ID_OFFSET 0 + +/* TM = "Table Map" */ +#define TM_MAPID_OFFSET 0 +#define TM_FLAGS_OFFSET 6 + +/* RW = "RoWs" */ +#define RW_MAPID_OFFSET 0 +#define RW_FLAGS_OFFSET 6 + +/* ELQ = "Execute Load Query" */ +#define ELQ_FILE_ID_OFFSET QUERY_HEADER_LEN +#define ELQ_FN_POS_START_OFFSET ELQ_FILE_ID_OFFSET + 4 +#define ELQ_FN_POS_END_OFFSET ELQ_FILE_ID_OFFSET + 8 +#define ELQ_DUP_HANDLING_OFFSET ELQ_FILE_ID_OFFSET + 12 + +/* 4 bytes which all binlogs should begin with */ +#define BINLOG_MAGIC (const uchar*) "\xfe\x62\x69\x6e" + +/* + The 2 flags below were useless : + - the first one was never set + - the second one was set in all Rotate events on the master, but not used for + anything useful. + So they are now removed and their place may later be reused for other + flags. Then one must remember that Rotate events in 4.x have + LOG_EVENT_FORCED_ROTATE_F set, so one should not rely on the value of the + replacing flag when reading a Rotate event. + I keep the defines here just to remember what they were. +*/ +#ifdef TO_BE_REMOVED +#define LOG_EVENT_TIME_F 0x1 +#define LOG_EVENT_FORCED_ROTATE_F 0x2 +#endif + +/* + This flag only makes sense for Format_description_log_event. It is set + when the event is written, and *reset* when a binlog file is + closed (yes, it's the only case when MySQL modifies already written + part of binlog). Thus it is a reliable indicator that binlog was + closed correctly. (Stop_log_event is not enough, there's always a + small chance that mysqld crashes in the middle of insert and end of + the binlog would look like a Stop_log_event). + + This flag is used to detect a restart after a crash, and to provide + "unbreakable" binlog. The problem is that on a crash storage engines + rollback automatically, while binlog does not. To solve this we use this + flag and automatically append ROLLBACK to every non-closed binlog (append + virtually, on reading, file itself is not changed). If this flag is found, + mysqlbinlog simply prints "ROLLBACK" Replication master does not abort on + binlog corruption, but takes it as EOF, and replication slave forces a + rollback in this case. + + Note, that old binlogs does not have this flag set, so we get a + a backward-compatible behaviour. +*/ + +#define LOG_EVENT_BINLOG_IN_USE_F 0x1 + +/** + @def LOG_EVENT_THREAD_SPECIFIC_F + + If the query depends on the thread (for example: TEMPORARY TABLE). + Currently this is used by mysqlbinlog to know it must print + SET @@PSEUDO_THREAD_ID=xx; before the query (it would not hurt to print it + for every query but this would be slow). +*/ +#define LOG_EVENT_THREAD_SPECIFIC_F 0x4 + +/** + @def LOG_EVENT_SUPPRESS_USE_F + + Suppress the generation of 'USE' statements before the actual + statement. This flag should be set for any events that does not need + the current database set to function correctly. Most notable cases + are 'CREATE DATABASE' and 'DROP DATABASE'. + + This flags should only be used in exceptional circumstances, since + it introduce a significant change in behaviour regarding the + replication logic together with the flags --binlog-do-db and + --replicated-do-db. + */ +#define LOG_EVENT_SUPPRESS_USE_F 0x8 + +/* + Note: this is a place holder for the flag + LOG_EVENT_UPDATE_TABLE_MAP_VERSION_F (0x10), which is not used any + more, please do not reused this value for other flags. + */ + +/** + @def LOG_EVENT_ARTIFICIAL_F + + Artificial events are created arbitarily and not written to binary + log + + These events should not update the master log position when slave + SQL thread executes them. +*/ +#define LOG_EVENT_ARTIFICIAL_F 0x20 + +/** + @def LOG_EVENT_RELAY_LOG_F + + Events with this flag set are created by slave IO thread and written + to relay log +*/ +#define LOG_EVENT_RELAY_LOG_F 0x40 + +/** + @def LOG_EVENT_SKIP_REPLICATION_F + + Flag set by application creating the event (with @@skip_replication); the + slave will skip replication of such events if + --replicate-events-marked-for-skip is not set to REPLICATE. + + This is a MariaDB flag; we allocate it from the end of the available + values to reduce risk of conflict with new MySQL flags. +*/ +#define LOG_EVENT_SKIP_REPLICATION_F 0x8000 + + +/** + @def OPTIONS_WRITTEN_TO_BIN_LOG + + OPTIONS_WRITTEN_TO_BIN_LOG are the bits of thd->options which must + be written to the binlog. OPTIONS_WRITTEN_TO_BIN_LOG could be + written into the Format_description_log_event, so that if later we + don't want to replicate a variable we did replicate, or the + contrary, it's doable. But it should not be too hard to decide once + for all of what we replicate and what we don't, among the fixed 32 + bits of thd->options. + + I (Guilhem) have read through every option's usage, and it looks + like OPTION_AUTO_IS_NULL and OPTION_NO_FOREIGN_KEYS are the only + ones which alter how the query modifies the table. It's good to + replicate OPTION_RELAXED_UNIQUE_CHECKS too because otherwise, the + slave may insert data slower than the master, in InnoDB. + OPTION_BIG_SELECTS is not needed (the slave thread runs with + max_join_size=HA_POS_ERROR) and OPTION_BIG_TABLES is not needed + either, as the manual says (because a too big in-memory temp table + is automatically written to disk). +*/ +#define OPTIONS_WRITTEN_TO_BIN_LOG \ + (OPTION_AUTO_IS_NULL | OPTION_NO_FOREIGN_KEY_CHECKS | \ + OPTION_RELAXED_UNIQUE_CHECKS | OPTION_NOT_AUTOCOMMIT) + +/* Shouldn't be defined before */ +#define EXPECTED_OPTIONS \ + ((ULL(1) << 14) | (ULL(1) << 26) | (ULL(1) << 27) | (ULL(1) << 19)) + +#if OPTIONS_WRITTEN_TO_BIN_LOG != EXPECTED_OPTIONS +#error OPTIONS_WRITTEN_TO_BIN_LOG must NOT change their values! +#endif +#undef EXPECTED_OPTIONS /* You shouldn't use this one */ + +enum enum_binlog_checksum_alg { + BINLOG_CHECKSUM_ALG_OFF= 0, // Events are without checksum though its generator + // is checksum-capable New Master (NM). + BINLOG_CHECKSUM_ALG_CRC32= 1, // CRC32 of zlib algorithm. + BINLOG_CHECKSUM_ALG_ENUM_END, // the cut line: valid alg range is [1, 0x7f]. + BINLOG_CHECKSUM_ALG_UNDEF= 255 // special value to tag undetermined yet checksum + // or events from checksum-unaware servers +}; + +#define CHECKSUM_CRC32_SIGNATURE_LEN 4 +/** + defined statically while there is just one alg implemented +*/ +#define BINLOG_CHECKSUM_LEN CHECKSUM_CRC32_SIGNATURE_LEN +#define BINLOG_CHECKSUM_ALG_DESC_LEN 1 /* 1 byte checksum alg descriptor */ + +/** + @enum Log_event_type + + Enumeration type for the different types of log events. +*/ +enum Log_event_type +{ + /* + Every time you update this enum (when you add a type), you have to + fix Format_description_log_event::Format_description_log_event(). + */ + UNKNOWN_EVENT= 0, + START_EVENT_V3= 1, + QUERY_EVENT= 2, + STOP_EVENT= 3, + ROTATE_EVENT= 4, + INTVAR_EVENT= 5, + LOAD_EVENT= 6, + SLAVE_EVENT= 7, + CREATE_FILE_EVENT= 8, + APPEND_BLOCK_EVENT= 9, + EXEC_LOAD_EVENT= 10, + DELETE_FILE_EVENT= 11, + /* + NEW_LOAD_EVENT is like LOAD_EVENT except that it has a longer + sql_ex, allowing multibyte TERMINATED BY etc; both types share the + same class (Load_log_event) + */ + NEW_LOAD_EVENT= 12, + RAND_EVENT= 13, + USER_VAR_EVENT= 14, + FORMAT_DESCRIPTION_EVENT= 15, + XID_EVENT= 16, + BEGIN_LOAD_QUERY_EVENT= 17, + EXECUTE_LOAD_QUERY_EVENT= 18, + + TABLE_MAP_EVENT = 19, + + /* + These event numbers were used for 5.1.0 to 5.1.15 and are + therefore obsolete. + */ + PRE_GA_WRITE_ROWS_EVENT = 20, + PRE_GA_UPDATE_ROWS_EVENT = 21, + PRE_GA_DELETE_ROWS_EVENT = 22, + + /* + These event numbers are used from 5.1.16 and forward + */ + WRITE_ROWS_EVENT = 23, + UPDATE_ROWS_EVENT = 24, + DELETE_ROWS_EVENT = 25, + + /* + Something out of the ordinary happened on the master + */ + INCIDENT_EVENT= 26, + + /* + Heartbeat event to be send by master at its idle time + to ensure master's online status to slave + */ + HEARTBEAT_LOG_EVENT= 27, + + /* + Add new events here - right above this comment! + Existing events (except ENUM_END_EVENT) should never change their numbers + */ + + /* New MySQL/Sun events are to be added right above this comment */ + MYSQL_EVENTS_END, + + MARIA_EVENTS_BEGIN= 160, + /* New Maria event numbers start from here */ + ANNOTATE_ROWS_EVENT= 160, + + /* Add new MariaDB events here - right above this comment! */ + + ENUM_END_EVENT /* end marker */ +}; + +/* + The number of types we handle in Format_description_log_event (UNKNOWN_EVENT + is not to be handled, it does not exist in binlogs, it does not have a + format). +*/ +#define LOG_EVENT_TYPES (ENUM_END_EVENT-1) + +enum Int_event_type +{ + INVALID_INT_EVENT = 0, LAST_INSERT_ID_EVENT = 1, INSERT_ID_EVENT = 2 +}; + + +#ifdef MYSQL_SERVER +class String; +class MYSQL_BIN_LOG; +class THD; +#endif + +class Format_description_log_event; +class Relay_log_info; + +#ifdef MYSQL_CLIENT +enum enum_base64_output_mode { + BASE64_OUTPUT_NEVER= 0, + BASE64_OUTPUT_AUTO= 1, + BASE64_OUTPUT_ALWAYS= 2, + BASE64_OUTPUT_UNSPEC= 3, + BASE64_OUTPUT_DECODE_ROWS= 4, + /* insert new output modes here */ + BASE64_OUTPUT_MODE_COUNT +}; + +/* + A structure for mysqlbinlog to know how to print events + + This structure is passed to the event's print() methods, + + There are two types of settings stored here: + 1. Last db, flags2, sql_mode etc comes from the last printed event. + They are stored so that only the necessary USE and SET commands + are printed. + 2. Other information on how to print the events, e.g. short_form, + hexdump_from. These are not dependent on the last event. +*/ +typedef struct st_print_event_info +{ + /* + Settings for database, sql_mode etc that comes from the last event + that was printed. We cache these so that we don't have to print + them if they are unchanged. + */ + // TODO: have the last catalog here ?? + char db[FN_REFLEN+1]; // TODO: make this a LEX_STRING when thd->db is + bool flags2_inited; + uint32 flags2; + bool sql_mode_inited; + ulonglong sql_mode; /* must be same as THD.variables.sql_mode */ + ulong auto_increment_increment, auto_increment_offset; + bool charset_inited; + char charset[6]; // 3 variables, each of them storable in 2 bytes + char time_zone_str[MAX_TIME_ZONE_NAME_LENGTH]; + uint lc_time_names_number; + uint charset_database_number; + uint thread_id; + bool thread_id_printed; + /* + Track when @@skip_replication changes so we need to output a SET + statement for it. + */ + int skip_replication; + + st_print_event_info(); + + ~st_print_event_info() { + close_cached_file(&head_cache); + close_cached_file(&body_cache); + } + bool init_ok() /* tells if construction was successful */ + { return my_b_inited(&head_cache) && my_b_inited(&body_cache); } + + + /* Settings on how to print the events */ + bool short_form; + enum_base64_output_mode base64_output_mode; + /* + This is set whenever a Format_description_event is printed. + Later, when an event is printed in base64, this flag is tested: if + no Format_description_event has been seen, it is unsafe to print + the base64 event, so an error message is generated. + */ + bool printed_fd_event; + my_off_t hexdump_from; + uint8 common_header_len; + char delimiter[16]; + + uint verbose; + table_mapping m_table_map; + table_mapping m_table_map_ignored; + + /* + These two caches are used by the row-based replication events to + collect the header information and the main body of the events + making up a statement. + */ + IO_CACHE head_cache; + IO_CACHE body_cache; +} PRINT_EVENT_INFO; +#endif + +/** + the struct aggregates two paramenters that identify an event + uniquely in scope of communication of a particular master and slave couple. + I.e there can not be 2 events from the same staying connected master which + have the same coordinates. + @note + Such identifier is not yet unique generally as the event originating master + is resetable. Also the crashed master can be replaced with some other. +*/ +typedef struct event_coordinates +{ + char * file_name; // binlog file name (directories stripped) + my_off_t pos; // event's position in the binlog file +} LOG_POS_COORD; + +/** + @class Log_event + + This is the abstract base class for binary log events. + + @section Log_event_binary_format Binary Format + + Any @c Log_event saved on disk consists of the following three + components. + + - Common-Header + - Post-Header + - Body + + The Common-Header, documented in the table @ref Table_common_header + "below", always has the same form and length within one version of + MySQL. Each event type specifies a format and length of the + Post-Header. The length of the Common-Header is the same for all + events of the same type. The Body may be of different format and + length even for different events of the same type. The binary + formats of Post-Header and Body are documented separately in each + subclass. The binary format of Common-Header is as follows. + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Common-Header
NameFormatDescription
timestamp4 byte unsigned integerThe time when the query started, in seconds since 1970. +
type1 byte enumerationSee enum #Log_event_type.
server_id4 byte unsigned integerServer ID of the server that created the event.
total_size4 byte unsigned integerThe total size of this event, in bytes. In other words, this + is the sum of the sizes of Common-Header, Post-Header, and Body. +
master_position4 byte unsigned integerThe position of the next event in the master binary log, in + bytes from the beginning of the file. In a binlog that is not a + relay log, this is just the position of the next event, in bytes + from the beginning of the file. In a relay log, this is + the position of the next event in the master's binlog. +
flags2 byte bitfieldSee Log_event::flags.
+ + Summing up the numbers above, we see that the total size of the + common header is 19 bytes. + + @subsection Log_event_format_of_atomic_primitives Format of Atomic Primitives + + - All numbers, whether they are 16-, 24-, 32-, or 64-bit numbers, + are stored in little endian, i.e., the least significant byte first, + unless otherwise specified. + + @anchor packed_integer + - Some events use a special format for efficient representation of + unsigned integers, called Packed Integer. A Packed Integer has the + capacity of storing up to 8-byte integers, while small integers + still can use 1, 3, or 4 bytes. The value of the first byte + determines how to read the number, according to the following table: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Format of Packed Integer
First byteFormat
0-250The first byte is the number (in the range 0-250), and no more + bytes are used.
252Two more bytes are used. The number is in the range + 251-0xffff.
253Three more bytes are used. The number is in the range + 0xffff-0xffffff.
254Eight more bytes are used. The number is in the range + 0xffffff-0xffffffffffffffff.
+ + - Strings are stored in various formats. The format of each string + is documented separately. +*/ +class Log_event +{ +public: + /** + Enumeration of what kinds of skipping (and non-skipping) that can + occur when the slave executes an event. + + @see shall_skip + @see do_shall_skip + */ + enum enum_skip_reason { + /** + Don't skip event. + */ + EVENT_SKIP_NOT, + + /** + Skip event by ignoring it. + + This means that the slave skip counter will not be changed. + */ + EVENT_SKIP_IGNORE, + + /** + Skip event and decrease skip counter. + */ + EVENT_SKIP_COUNT + }; + + enum enum_event_cache_type + { + EVENT_INVALID_CACHE, + /* + If possible the event should use a non-transactional cache before + being flushed to the binary log. This means that it must be flushed + right after its correspondent statement is completed. + */ + EVENT_STMT_CACHE, + /* + The event should use a transactional cache before being flushed to + the binary log. This means that it must be flushed upon commit or + rollback. + */ + EVENT_TRANSACTIONAL_CACHE, + /* + The event must be written directly to the binary log without going + through a cache. + */ + EVENT_NO_CACHE, + /** + If there is a need for different types, introduce them before this. + */ + EVENT_CACHE_COUNT + }; + + /* + The following type definition is to be used whenever data is placed + and manipulated in a common buffer. Use this typedef for buffers + that contain data containing binary and character data. + */ + typedef unsigned char Byte; + + /* + The offset in the log where this event originally appeared (it is + preserved in relay logs, making SHOW SLAVE STATUS able to print + coordinates of the event in the master's binlog). Note: when a + transaction is written by the master to its binlog (wrapped in + BEGIN/COMMIT) the log_pos of all the queries it contains is the + one of the BEGIN (this way, when one does SHOW SLAVE STATUS it + sees the offset of the BEGIN, which is logical as rollback may + occur), except the COMMIT query which has its real offset. + */ + my_off_t log_pos; + /* + A temp buffer for read_log_event; it is later analysed according to the + event's type, and its content is distributed in the event-specific fields. + */ + char *temp_buf; + + /* + TRUE <=> this event 'owns' temp_buf and should call my_free() when done + with it + */ + bool event_owns_temp_buf; + + /* + Timestamp on the master(for debugging and replication of + NOW()/TIMESTAMP). It is important for queries and LOAD DATA + INFILE. This is set at the event's creation time, except for Query + and Load (et al.) events where this is set at the query's + execution time, which guarantees good replication (otherwise, we + could have a query and its event with different timestamps). + */ + my_time_t when; + ulong when_sec_part; + /* The number of seconds the query took to run on the master. */ + ulong exec_time; + /* Number of bytes written by write() function */ + ulong data_written; + + /* + The master's server id (is preserved in the relay log; used to + prevent from infinite loops in circular replication). + */ + uint32 server_id; + + /** + Some 16 flags. See the definitions above for LOG_EVENT_TIME_F, + LOG_EVENT_FORCED_ROTATE_F, LOG_EVENT_THREAD_SPECIFIC_F, + LOG_EVENT_SUPPRESS_USE_F, and LOG_EVENT_SKIP_REPLICATION_F for notes. + */ + uint16 flags; + + uint16 cache_type; + + /** + A storage to cache the global system variable's value. + Handling of a separate event will be governed its member. + */ + ulong slave_exec_mode; + + /** + Placeholder for event checksum while writing to binlog. + */ + ha_checksum crc; + +#ifdef MYSQL_SERVER + THD* thd; + + Log_event(); + Log_event(THD* thd_arg, uint16 flags_arg, bool is_transactional); + /* + read_log_event() functions read an event from a binlog or relay + log; used by SHOW BINLOG EVENTS, the binlog_dump thread on the + master (reads master's binlog), the slave IO thread (reads the + event sent by binlog_dump), the slave SQL thread (reads the event + from the relay log). If mutex is 0, the read will proceed without + mutex. We need the description_event to be able to parse the + event (to know the post-header's size); in fact in read_log_event + we detect the event's type, then call the specific event's + constructor and pass description_event as an argument. + */ + static Log_event* read_log_event(IO_CACHE* file, + mysql_mutex_t* log_lock, + const Format_description_log_event + *description_event, + my_bool crc_check); + + /** + Reads an event from a binlog or relay log. Used by the dump thread + this method reads the event into a raw buffer without parsing it. + + @Note If mutex is 0, the read will proceed without mutex. + + @Note If a log name is given than the method will check if the + given binlog is still active. + + @param[in] file log file to be read + @param[out] packet packet to hold the event + @param[in] lock the lock to be used upon read + @param[in] log_file_name_arg the log's file name + @param[out] is_binlog_active is the current log still active + + @retval 0 success + @retval LOG_READ_EOF end of file, nothing was read + @retval LOG_READ_BOGUS malformed event + @retval LOG_READ_IO io error while reading + @retval LOG_READ_MEM packet memory allocation failed + @retval LOG_READ_TRUNC only a partial event could be read + @retval LOG_READ_TOO_LARGE event too large + */ + static int read_log_event(IO_CACHE* file, String* packet, + mysql_mutex_t* log_lock, + uint8 checksum_alg_arg, + const char *log_file_name_arg = NULL, + bool* is_binlog_active = NULL); + /* + init_show_field_list() prepares the column names and types for the + output of SHOW BINLOG EVENTS; it is used only by SHOW BINLOG + EVENTS. + */ + static void init_show_field_list(List* field_list); +#ifdef HAVE_REPLICATION + int net_send(THD *thd, Protocol *protocol, const char* log_name, + my_off_t pos); + + /* + pack_info() is used by SHOW BINLOG EVENTS; as print() it prepares and sends + a string to display to the user, so it resembles print(). + */ + + virtual void pack_info(THD *thd, Protocol *protocol); + +#endif /* HAVE_REPLICATION */ + virtual const char* get_db() + { + return thd ? thd->db : 0; + } +#else + Log_event() : temp_buf(0), flags(0) {} + /* avoid having to link mysqlbinlog against libpthread */ + static Log_event* read_log_event(IO_CACHE* file, + const Format_description_log_event + *description_event, my_bool crc_check); + /* print*() functions are used by mysqlbinlog */ + virtual void print(FILE* file, PRINT_EVENT_INFO* print_event_info) = 0; + void print_timestamp(IO_CACHE* file, time_t *ts = 0); + void print_header(IO_CACHE* file, PRINT_EVENT_INFO* print_event_info, + bool is_more); + void print_base64(IO_CACHE* file, PRINT_EVENT_INFO* print_event_info, + bool is_more); +#endif + /* + The value is set by caller of FD constructor and + Log_event::write_header() for the rest. + In the FD case it's propagated into the last byte + of post_header_len[] at FD::write(). + On the slave side the value is assigned from post_header_len[last] + of the last seen FD event. + */ + uint8 checksum_alg; + + static void *operator new(size_t size) + { + return (void*) my_malloc((uint)size, MYF(MY_WME|MY_FAE)); + } + + static void operator delete(void *ptr, size_t) + { + my_free(ptr); + } + + /* Placement version of the above operators */ + static void *operator new(size_t, void* ptr) { return ptr; } + static void operator delete(void*, void*) { } + bool wrapper_my_b_safe_write(IO_CACHE* file, const uchar* buf, ulong data_length); + +#ifdef MYSQL_SERVER + bool write_header(IO_CACHE* file, ulong data_length); + bool write_footer(IO_CACHE* file); + my_bool need_checksum(); + + virtual bool write(IO_CACHE* file) + { + return(write_header(file, get_data_size()) || + write_data_header(file) || + write_data_body(file) || + write_footer(file)); + } + virtual bool write_data_header(IO_CACHE* file) + { return 0; } + virtual bool write_data_body(IO_CACHE* file __attribute__((unused))) + { return 0; } + inline my_time_t get_time() + { + THD *tmp_thd; + if (when) + return when; + if (thd) + { + when= thd->start_time; + when_sec_part= thd->start_time_sec_part; + return when; + } + /* thd will only be 0 here at time of log creation */ + if ((tmp_thd= current_thd)) + { + when= tmp_thd->start_time; + when_sec_part= tmp_thd->start_time_sec_part; + return when; + } + my_hrtime_t hrtime= my_hrtime(); + when= hrtime_to_my_time(hrtime); + when_sec_part= hrtime_sec_part(hrtime); + return when; + } +#endif + virtual Log_event_type get_type_code() = 0; + virtual bool is_valid() const = 0; + void set_artificial_event() { flags |= LOG_EVENT_ARTIFICIAL_F; } + void set_relay_log_event() { flags |= LOG_EVENT_RELAY_LOG_F; } + bool is_artificial_event() const { return flags & LOG_EVENT_ARTIFICIAL_F; } + bool is_relay_log_event() const { return flags & LOG_EVENT_RELAY_LOG_F; } + inline bool use_trans_cache() const + { + return (cache_type == Log_event::EVENT_TRANSACTIONAL_CACHE); + } + inline void set_direct_logging() + { + cache_type = Log_event::EVENT_NO_CACHE; + } + inline bool use_direct_logging() + { + return (cache_type == Log_event::EVENT_NO_CACHE); + } + Log_event(const char* buf, const Format_description_log_event + *description_event); + virtual ~Log_event() { free_temp_buf();} + void register_temp_buf(char* buf, bool must_free) + { + temp_buf= buf; + event_owns_temp_buf= must_free; + } + void free_temp_buf() + { + if (temp_buf) + { + if (event_owns_temp_buf) + my_free(temp_buf); + temp_buf = 0; + } + } + /* + Get event length for simple events. For complicated events the length + is calculated during write() + */ + virtual int get_data_size() { return 0;} + static Log_event* read_log_event(const char* buf, uint event_len, + const char **error, + const Format_description_log_event + *description_event, my_bool crc_check); + /** + Returns the human readable name of the given event type. + */ + static const char* get_type_str(Log_event_type type); + /** + Returns the human readable name of this event's type. + */ + const char* get_type_str(); + + /* Return start of query time or current time */ + +#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION) +public: + + /** + Apply the event to the database. + + This function represents the public interface for applying an + event. + + @see do_apply_event + */ + int apply_event(Relay_log_info const *rli) + { + return do_apply_event(rli); + } + + + /** + Update the relay log position. + + This function represents the public interface for "stepping over" + the event and will update the relay log information. + + @see do_update_pos + */ + int update_pos(Relay_log_info *rli) + { + return do_update_pos(rli); + } + + /** + Decide if the event shall be skipped, and the reason for skipping + it. + + @see do_shall_skip + */ + enum_skip_reason shall_skip(Relay_log_info *rli) + { + return do_shall_skip(rli); + } + +protected: + + /** + Helper function to ignore an event w.r.t. the slave skip counter. + + This function can be used inside do_shall_skip() for functions + that cannot end a group. If the slave skip counter is 1 when + seeing such an event, the event shall be ignored, the counter + left intact, and processing continue with the next event. + + A typical usage is: + @code + enum_skip_reason do_shall_skip(Relay_log_info *rli) { + return continue_group(rli); + } + @endcode + + @return Skip reason + */ + enum_skip_reason continue_group(Relay_log_info *rli); + + /** + Primitive to apply an event to the database. + + This is where the change to the database is made. + + @note The primitive is protected instead of private, since there + is a hierarchy of actions to be performed in some cases. + + @see Format_description_log_event::do_apply_event() + + @param rli Pointer to relay log info structure + + @retval 0 Event applied successfully + @retval errno Error code if event application failed + */ + virtual int do_apply_event(Relay_log_info const *rli) + { + return 0; /* Default implementation does nothing */ + } + + + /** + Advance relay log coordinates. + + This function is called to advance the relay log coordinates to + just after the event. It is essential that both the relay log + coordinate and the group log position is updated correctly, since + this function is used also for skipping events. + + Normally, each implementation of do_update_pos() shall: + + - Update the event position to refer to the position just after + the event. + + - Update the group log position to refer to the position just + after the event if the event is last in a group + + @param rli Pointer to relay log info structure + + @retval 0 Coordinates changed successfully + @retval errno Error code if advancing failed (usually just + 1). Observe that handler errors are returned by the + do_apply_event() function, and not by this one. + */ + virtual int do_update_pos(Relay_log_info *rli); + + + /** + Decide if this event shall be skipped or not and the reason for + skipping it. + + The default implementation decide that the event shall be skipped + if either: + + - the server id of the event is the same as the server id of the + server and rli->replicate_same_server_id is true, + or + + - if rli->slave_skip_counter is greater than zero. + + @see do_apply_event + @see do_update_pos + + @retval Log_event::EVENT_SKIP_NOT + The event shall not be skipped and should be applied. + + @retval Log_event::EVENT_SKIP_IGNORE + The event shall be skipped by just ignoring it, i.e., the slave + skip counter shall not be changed. This happends if, for example, + the originating server id of the event is the same as the server + id of the slave. + + @retval Log_event::EVENT_SKIP_COUNT + The event shall be skipped because the slave skip counter was + non-zero. The caller shall decrease the counter by one. + */ + virtual enum_skip_reason do_shall_skip(Relay_log_info *rli); +#endif +}; + + +/* + One class for each type of event. + Two constructors for each class: + - one to create the event for logging (when the server acts as a master), + called after an update to the database is done, + which accepts parameters like the query, the database, the options for LOAD + DATA INFILE... + - one to create the event from a packet (when the server acts as a slave), + called before reproducing the update, which accepts parameters (like a + buffer). Used to read from the master, from the relay log, and in + mysqlbinlog. This constructor must be format-tolerant. +*/ + +/** + @class Query_log_event + + A @c Query_log_event is created for each query that modifies the + database, unless the query is logged row-based. + + @section Query_log_event_binary_format Binary format + + See @ref Log_event_binary_format "Binary format for log events" for + a general discussion and introduction to the binary format of binlog + events. + + The Post-Header has five components: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Post-Header for Query_log_event
NameFormatDescription
slave_proxy_id4 byte unsigned integerAn integer identifying the client thread that issued the + query. The id is unique per server. (Note, however, that two + threads on different servers may have the same slave_proxy_id.) + This is used when a client thread creates a temporary table local + to the client. The slave_proxy_id is used to distinguish + temporary tables that belong to different clients. +
exec_time4 byte unsigned integerThe time from when the query started to when it was logged in + the binlog, in seconds.
db_len1 byte integerThe length of the name of the currently selected database.
error_code2 byte unsigned integerError code generated by the master. If the master fails, the + slave will fail with the same error code, except for the error + codes ER_DB_CREATE_EXISTS == 1007 and ER_DB_DROP_EXISTS == 1008. +
status_vars_len2 byte unsigned integerThe length of the status_vars block of the Body, in bytes. See + @ref query_log_event_status_vars "below". +
+ + The Body has the following components: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Body for Query_log_event
NameFormatDescription
@anchor query_log_event_status_vars status_varsstatus_vars_len bytesZero or more status variables. Each status variable consists + of one byte identifying the variable stored, followed by the value + of the variable. The possible variables are listed separately in + the table @ref Table_query_log_event_status_vars "below". MySQL + always writes events in the order defined below; however, it is + capable of reading them in any order.
dbdb_len+1The currently selected database, as a null-terminated string. + + (The trailing zero is redundant since the length is already known; + it is db_len from Post-Header.) +
queryvariable length string without trailing zero, extending to the + end of the event (determined by the length field of the + Common-Header) + The SQL query.
+ + The following table lists the status variables that may appear in + the status_vars field. + + @anchor Table_query_log_event_status_vars + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Status variables for Query_log_event
Status variable1 byte identifierFormatDescription
flags2Q_FLAGS2_CODE == 04 byte bitfieldThe flags in @c thd->options, binary AND-ed with @c + OPTIONS_WRITTEN_TO_BIN_LOG. The @c thd->options bitfield contains + options for "SELECT". @c OPTIONS_WRITTEN identifies those options + that need to be written to the binlog (not all do). Specifically, + @c OPTIONS_WRITTEN_TO_BIN_LOG equals (@c OPTION_AUTO_IS_NULL | @c + OPTION_NO_FOREIGN_KEY_CHECKS | @c OPTION_RELAXED_UNIQUE_CHECKS | + @c OPTION_NOT_AUTOCOMMIT), or 0x0c084000 in hex. + + These flags correspond to the SQL variables SQL_AUTO_IS_NULL, + FOREIGN_KEY_CHECKS, UNIQUE_CHECKS, and AUTOCOMMIT, documented in + the "SET Syntax" section of the MySQL Manual. + + This field is always written to the binlog in version >= 5.0, and + never written in version < 5.0. +
sql_modeQ_SQL_MODE_CODE == 18 byte bitfieldThe @c sql_mode variable. See the section "SQL Modes" in the + MySQL manual, and see sql_priv.h for a list of the possible + flags. Currently (2007-10-04), the following flags are available: +
+    MODE_REAL_AS_FLOAT==0x1
+    MODE_PIPES_AS_CONCAT==0x2
+    MODE_ANSI_QUOTES==0x4
+    MODE_IGNORE_SPACE==0x8
+    MODE_IGNORE_BAD_TABLE_OPTIONS==0x10
+    MODE_ONLY_FULL_GROUP_BY==0x20
+    MODE_NO_UNSIGNED_SUBTRACTION==0x40
+    MODE_NO_DIR_IN_CREATE==0x80
+    MODE_POSTGRESQL==0x100
+    MODE_ORACLE==0x200
+    MODE_MSSQL==0x400
+    MODE_DB2==0x800
+    MODE_MAXDB==0x1000
+    MODE_NO_KEY_OPTIONS==0x2000
+    MODE_NO_TABLE_OPTIONS==0x4000
+    MODE_NO_FIELD_OPTIONS==0x8000
+    MODE_MYSQL323==0x10000
+    MODE_MYSQL323==0x20000
+    MODE_MYSQL40==0x40000
+    MODE_ANSI==0x80000
+    MODE_NO_AUTO_VALUE_ON_ZERO==0x100000
+    MODE_NO_BACKSLASH_ESCAPES==0x200000
+    MODE_STRICT_TRANS_TABLES==0x400000
+    MODE_STRICT_ALL_TABLES==0x800000
+    MODE_NO_ZERO_IN_DATE==0x1000000
+    MODE_NO_ZERO_DATE==0x2000000
+    MODE_INVALID_DATES==0x4000000
+    MODE_ERROR_FOR_DIVISION_BY_ZERO==0x8000000
+    MODE_TRADITIONAL==0x10000000
+    MODE_NO_AUTO_CREATE_USER==0x20000000
+    MODE_HIGH_NOT_PRECEDENCE==0x40000000
+    MODE_PAD_CHAR_TO_FULL_LENGTH==0x80000000
+    
+ All these flags are replicated from the server. However, all + flags except @c MODE_NO_DIR_IN_CREATE are honored by the slave; + the slave always preserves its old value of @c + MODE_NO_DIR_IN_CREATE. For a rationale, see comment in + @c Query_log_event::do_apply_event in @c log_event.cc. + + This field is always written to the binlog. +
catalogQ_CATALOG_NZ_CODE == 6Variable-length string: the length in bytes (1 byte) followed + by the characters (at most 255 bytes) + Stores the client's current catalog. Every database belongs + to a catalog, the same way that every table belongs to a + database. Currently, there is only one catalog, "std". + + This field is written if the length of the catalog is > 0; + otherwise it is not written. +
auto_incrementQ_AUTO_INCREMENT == 3two 2 byte unsigned integers, totally 2+2=4 bytesThe two variables auto_increment_increment and + auto_increment_offset, in that order. For more information, see + "System variables" in the MySQL manual. + + This field is written if auto_increment > 1. Otherwise, it is not + written. +
charsetQ_CHARSET_CODE == 4three 2 byte unsigned integers, totally 2+2+2=6 bytesThe three variables character_set_client, + collation_connection, and collation_server, in that order. + character_set_client is a code identifying the character set and + collation used by the client to encode the query. + collation_connection identifies the character set and collation + that the master converts the query to when it receives it; this is + useful when comparing literal strings. collation_server is the + default character set and collation used when a new database is + created. + + See also "Connection Character Sets and Collations" in the MySQL + 5.1 manual. + + All three variables are codes identifying a (character set, + collation) pair. To see which codes map to which pairs, run the + query "SELECT id, character_set_name, collation_name FROM + COLLATIONS". + + Cf. Q_CHARSET_DATABASE_CODE below. + + This field is always written. +
time_zoneQ_TIME_ZONE_CODE == 5Variable-length string: the length in bytes (1 byte) followed + by the characters (at most 255 bytes). + The time_zone of the master. + + See also "System Variables" and "MySQL Server Time Zone Support" + in the MySQL manual. + + This field is written if the length of the time zone string is > + 0; otherwise, it is not written. +
lc_time_names_numberQ_LC_TIME_NAMES_CODE == 72 byte integerA code identifying a table of month and day names. The + mapping from codes to languages is defined in @c sql_locale.cc. + + This field is written if it is not 0, i.e., if the locale is not + en_US. +
charset_database_numberQ_CHARSET_DATABASE_CODE == 82 byte integerThe value of the collation_database system variable (in the + source code stored in @c thd->variables.collation_database), which + holds the code for a (character set, collation) pair as described + above (see Q_CHARSET_CODE). + + collation_database was used in old versions (???WHEN). Its value + was loaded when issuing a "use db" query and could be changed by + issuing a "SET collation_database=xxx" query. It used to affect + the "LOAD DATA INFILE" and "CREATE TABLE" commands. + + In newer versions, "CREATE TABLE" has been changed to take the + character set from the database of the created table, rather than + the character set of the current database. This makes a + difference when creating a table in another database than the + current one. "LOAD DATA INFILE" has not yet changed to do this, + but there are plans to eventually do it, and to make + collation_database read-only. + + This field is written if it is not 0. +
table_map_for_updateQ_TABLE_MAP_FOR_UPDATE_CODE == 98 byte integerThe value of the table map that is to be updated by the + multi-table update query statement. Every bit of this variable + represents a table, and is set to 1 if the corresponding table is + to be updated by this statement. + + The value of this variable is set when executing a multi-table update + statement and used by slave to apply filter rules without opening + all the tables on slave. This is required because some tables may + not exist on slave because of the filter rules. +
+ + @subsection Query_log_event_notes_on_previous_versions Notes on Previous Versions + + * Status vars were introduced in version 5.0. To read earlier + versions correctly, check the length of the Post-Header. + + * The status variable Q_CATALOG_CODE == 2 existed in MySQL 5.0.x, + where 0<=x<=3. It was identical to Q_CATALOG_CODE, except that the + string had a trailing '\0'. The '\0' was removed in 5.0.4 since it + was redundant (the string length is stored before the string). The + Q_CATALOG_CODE will never be written by a new master, but can still + be understood by a new slave. + + * See Q_CHARSET_DATABASE_CODE in the table above. + + * When adding new status vars, please don't forget to update the + MAX_SIZE_LOG_EVENT_STATUS, and update function code_name + +*/ +class Query_log_event: public Log_event +{ + LEX_STRING user; + LEX_STRING host; +protected: + Log_event::Byte* data_buf; +public: + const char* query; + const char* catalog; + const char* db; + /* + If we already know the length of the query string + we pass it with q_len, so we would not have to call strlen() + otherwise, set it to 0, in which case, we compute it with strlen() + */ + uint32 q_len; + uint32 db_len; + uint16 error_code; + ulong thread_id; + /* + For events created by Query_log_event::do_apply_event (and + Load_log_event::do_apply_event()) we need the *original* thread + id, to be able to log the event with the original (=master's) + thread id (fix for BUG#1686). + */ + ulong slave_proxy_id; + + /* + Binlog format 3 and 4 start to differ (as far as class members are + concerned) from here. + */ + + uint catalog_len; // <= 255 char; 0 means uninited + + /* + We want to be able to store a variable number of N-bit status vars: + (generally N=32; but N=64 for SQL_MODE) a user may want to log the number + of affected rows (for debugging) while another does not want to lose 4 + bytes in this. + The storage on disk is the following: + status_vars_len is part of the post-header, + status_vars are in the variable-length part, after the post-header, before + the db & query. + status_vars on disk is a sequence of pairs (code, value) where 'code' means + 'sql_mode', 'affected' etc. Sometimes 'value' must be a short string, so + its first byte is its length. For now the order of status vars is: + flags2 - sql_mode - catalog - autoinc - charset + We should add the same thing to Load_log_event, but in fact + LOAD DATA INFILE is going to be logged with a new type of event (logging of + the plain text query), so Load_log_event would be frozen, so no need. The + new way of logging LOAD DATA INFILE would use a derived class of + Query_log_event, so automatically benefit from the work already done for + status variables in Query_log_event. + */ + uint16 status_vars_len; + + /* + 'flags2' is a second set of flags (on top of those in Log_event), for + session variables. These are thd->options which is & against a mask + (OPTIONS_WRITTEN_TO_BIN_LOG). + flags2_inited helps make a difference between flags2==0 (3.23 or 4.x + master, we don't know flags2, so use the slave server's global options) and + flags2==0 (5.0 master, we know this has a meaning of flags all down which + must influence the query). + */ + bool flags2_inited; + bool sql_mode_inited; + bool charset_inited; + + uint32 flags2; + /* In connections sql_mode is 32 bits now but will be 64 bits soon */ + ulonglong sql_mode; + ulong auto_increment_increment, auto_increment_offset; + char charset[6]; + uint time_zone_len; /* 0 means uninited */ + const char *time_zone_str; + uint lc_time_names_number; /* 0 means en_US */ + uint charset_database_number; + /* + map for tables that will be updated for a multi-table update query + statement, for other query statements, this will be zero. + */ + ulonglong table_map_for_update; + /* + Holds the original length of a Query_log_event that comes from a + master of version < 5.0 (i.e., binlog_version < 4). When the IO + thread writes the relay log, it augments the Query_log_event with a + Q_MASTER_DATA_WRITTEN_CODE status_var that holds the original event + length. This field is initialized to non-zero in the SQL thread when + it reads this augmented event. SQL thread does not write + Q_MASTER_DATA_WRITTEN_CODE to the slave's server binlog. + */ + uint32 master_data_written; + +#ifdef MYSQL_SERVER + + Query_log_event(THD* thd_arg, const char* query_arg, ulong query_length, + bool using_trans, bool direct, bool suppress_use, int error); + const char* get_db() { return db; } +#ifdef HAVE_REPLICATION + void pack_info(THD *thd, Protocol* protocol); +#endif /* HAVE_REPLICATION */ +#else + void print_query_header(IO_CACHE* file, PRINT_EVENT_INFO* print_event_info); + void print(FILE* file, PRINT_EVENT_INFO* print_event_info); +#endif + + Query_log_event(); + Query_log_event(const char* buf, uint event_len, + const Format_description_log_event *description_event, + Log_event_type event_type); + ~Query_log_event() + { + if (data_buf) + my_free(data_buf); + } + Log_event_type get_type_code() { return QUERY_EVENT; } +#ifdef MYSQL_SERVER + bool write(IO_CACHE* file); + virtual bool write_post_header_for_derived(IO_CACHE* file) { return FALSE; } +#endif + bool is_valid() const { return query != 0; } + + /* + Returns number of bytes additionaly written to post header by derived + events (so far it is only Execute_load_query event). + */ + virtual ulong get_post_header_size_for_derived() { return 0; } + /* Writes derived event-specific part of post header. */ + +public: /* !!! Public in this patch to allow old usage */ +#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION) + virtual enum_skip_reason do_shall_skip(Relay_log_info *rli); + virtual int do_apply_event(Relay_log_info const *rli); + virtual int do_update_pos(Relay_log_info *rli); + + int do_apply_event(Relay_log_info const *rli, + const char *query_arg, + uint32 q_len_arg); +#endif /* HAVE_REPLICATION */ + /* + If true, the event always be applied by slave SQL thread or be printed by + mysqlbinlog + */ + bool is_trans_keyword() + { + /* + Before the patch for bug#50407, The 'SAVEPOINT and ROLLBACK TO' + queries input by user was written into log events directly. + So the keywords can be written in both upper case and lower case + together, strncasecmp is used to check both cases. they also could be + binlogged with comments in the front of these keywords. for examples: + / * bla bla * / SAVEPOINT a; + / * bla bla * / ROLLBACK TO a; + but we don't handle these cases and after the patch, both quiries are + binlogged in upper case with no comments. + */ + return !strncmp(query, "BEGIN", q_len) || + !strncmp(query, "COMMIT", q_len) || + !strncasecmp(query, "SAVEPOINT", 9) || + !strncasecmp(query, "ROLLBACK", 8); + } +}; + + +#ifdef HAVE_REPLICATION + +/** + @class Slave_log_event + + Note that this class is currently not used at all; no code writes a + @c Slave_log_event (though some code in @c repl_failsafe.cc reads @c + Slave_log_event). So it's not a problem if this code is not + maintained. + + @section Slave_log_event_binary_format Binary Format + + This event type has no Post-Header. The Body has the following + four components. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Body for Slave_log_event
NameFormatDescription
master_pos8 byte integer???TODO +
master_port2 byte integer???TODO
master_hostnull-terminated string???TODO
master_lognull-terminated string???TODO
+*/ +class Slave_log_event: public Log_event +{ +protected: + char* mem_pool; + void init_from_mem_pool(int data_size); +public: + my_off_t master_pos; + char* master_host; + char* master_log; + int master_host_len; + int master_log_len; + uint16 master_port; + +#ifdef MYSQL_SERVER + Slave_log_event(THD* thd_arg, Relay_log_info* rli); + void pack_info(THD *thd, Protocol* protocol); +#else + void print(FILE* file, PRINT_EVENT_INFO* print_event_info); +#endif + + Slave_log_event(const char* buf, + uint event_len, + const Format_description_log_event *description_event); + ~Slave_log_event(); + int get_data_size(); + bool is_valid() const { return master_host != 0; } + Log_event_type get_type_code() { return SLAVE_EVENT; } +#ifdef MYSQL_SERVER + bool write(IO_CACHE* file); +#endif + +private: +#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION) + virtual int do_apply_event(Relay_log_info const* rli); +#endif +}; + +#endif /* HAVE_REPLICATION */ + + +/** + @class Load_log_event + + This log event corresponds to a "LOAD DATA INFILE" SQL query on the + following form: + + @verbatim + (1) USE db; + (2) LOAD DATA [CONCURRENT] [LOCAL] INFILE 'file_name' + (3) [REPLACE | IGNORE] + (4) INTO TABLE 'table_name' + (5) [FIELDS + (6) [TERMINATED BY 'field_term'] + (7) [[OPTIONALLY] ENCLOSED BY 'enclosed'] + (8) [ESCAPED BY 'escaped'] + (9) ] + (10) [LINES + (11) [TERMINATED BY 'line_term'] + (12) [LINES STARTING BY 'line_start'] + (13) ] + (14) [IGNORE skip_lines LINES] + (15) (field_1, field_2, ..., field_n)@endverbatim + + @section Load_log_event_binary_format Binary Format + + The Post-Header consists of the following six components. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Post-Header for Load_log_event
NameFormatDescription
slave_proxy_id4 byte unsigned integerAn integer identifying the client thread that issued the + query. The id is unique per server. (Note, however, that two + threads on different servers may have the same slave_proxy_id.) + This is used when a client thread creates a temporary table local + to the client. The slave_proxy_id is used to distinguish + temporary tables that belong to different clients. +
exec_time4 byte unsigned integerThe time from when the query started to when it was logged in + the binlog, in seconds.
skip_lines4 byte unsigned integerThe number on line (14) above, if present, or 0 if line (14) + is left out. +
table_name_len1 byte unsigned integerThe length of 'table_name' on line (4) above.
db_len1 byte unsigned integerThe length of 'db' on line (1) above.
num_fields4 byte unsigned integerThe number n of fields on line (15) above.
+ + The Body contains the following components. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Body of Load_log_event
NameFormatDescription
sql_exvariable lengthDescribes the part of the query on lines (3) and + (5)–(13) above. More precisely, it stores the five strings + (on lines) field_term (6), enclosed (7), escaped (8), line_term + (11), and line_start (12); as well as a bitfield indicating the + presence of the keywords REPLACE (3), IGNORE (3), and OPTIONALLY + (7). + + The data is stored in one of two formats, called "old" and "new". + The type field of Common-Header determines which of these two + formats is used: type LOAD_EVENT means that the old format is + used, and type NEW_LOAD_EVENT means that the new format is used. + When MySQL writes a Load_log_event, it uses the new format if at + least one of the five strings is two or more bytes long. + Otherwise (i.e., if all strings are 0 or 1 bytes long), the old + format is used. + + The new and old format differ in the way the five strings are + stored. + +
    +
  • In the new format, the strings are stored in the order + field_term, enclosed, escaped, line_term, line_start. Each string + consists of a length (1 byte), followed by a sequence of + characters (0-255 bytes). Finally, a boolean combination of the + following flags is stored in 1 byte: REPLACE_FLAG==0x4, + IGNORE_FLAG==0x8, and OPT_ENCLOSED_FLAG==0x2. If a flag is set, + it indicates the presence of the corresponding keyword in the SQL + query. + +
  • In the old format, we know that each string has length 0 or + 1. Therefore, only the first byte of each string is stored. The + order of the strings is the same as in the new format. These five + bytes are followed by the same 1 byte bitfield as in the new + format. Finally, a 1 byte bitfield called empty_flags is stored. + The low 5 bits of empty_flags indicate which of the five strings + have length 0. For each of the following flags that is set, the + corresponding string has length 0; for the flags that are not set, + the string has length 1: FIELD_TERM_EMPTY==0x1, + ENCLOSED_EMPTY==0x2, LINE_TERM_EMPTY==0x4, LINE_START_EMPTY==0x8, + ESCAPED_EMPTY==0x10. +
+ + Thus, the size of the new format is 6 bytes + the sum of the sizes + of the five strings. The size of the old format is always 7 + bytes. +
field_lensnum_fields 1 byte unsigned integersAn array of num_fields integers representing the length of + each field in the query. (num_fields is from the Post-Header). +
fieldsnum_fields null-terminated stringsAn array of num_fields null-terminated strings, each + representing a field in the query. (The trailing zero is + redundant, since the length are stored in the num_fields array.) + The total length of all strings equals to the sum of all + field_lens, plus num_fields bytes for all the trailing zeros. +
table_namenull-terminated string of length table_len+1 bytesThe 'table_name' from the query, as a null-terminated string. + (The trailing zero is actually redundant since the table_len is + known from Post-Header.) +
dbnull-terminated string of length db_len+1 bytesThe 'db' from the query, as a null-terminated string. + (The trailing zero is actually redundant since the db_len is known + from Post-Header.) +
file_namevariable length string without trailing zero, extending to the + end of the event (determined by the length field of the + Common-Header) + The 'file_name' from the query. +
+ + @subsection Load_log_event_notes_on_previous_versions Notes on Previous Versions + + This event type is understood by current versions, but only + generated by MySQL 3.23 and earlier. +*/ +class Load_log_event: public Log_event +{ +private: +protected: + int copy_log_event(const char *buf, ulong event_len, + int body_offset, + const Format_description_log_event* description_event); + +public: + void print_query(THD *thd, bool need_db, const char *cs, String *buf, + my_off_t *fn_start, my_off_t *fn_end, + const char *qualify_db); + ulong thread_id; + ulong slave_proxy_id; + uint32 table_name_len; + /* + No need to have a catalog, as these events can only come from 4.x. + TODO: this may become false if Dmitri pushes his new LOAD DATA INFILE in + 5.0 only (not in 4.x). + */ + uint32 db_len; + uint32 fname_len; + uint32 num_fields; + const char* fields; + const uchar* field_lens; + uint32 field_block_len; + + const char* table_name; + const char* db; + const char* fname; + uint32 skip_lines; + sql_ex_info sql_ex; + bool local_fname; + /** + Indicates that this event corresponds to LOAD DATA CONCURRENT, + + @note Since Load_log_event event coming from the binary log + lacks information whether LOAD DATA on master was concurrent + or not, this flag is only set to TRUE for an auxiliary + Load_log_event object which is used in mysql_load() to + re-construct LOAD DATA statement from function parameters, + for logging. + */ + bool is_concurrent; + + /* fname doesn't point to memory inside Log_event::temp_buf */ + void set_fname_outside_temp_buf(const char *afname, uint alen) + { + fname= afname; + fname_len= alen; + local_fname= TRUE; + } + /* fname doesn't point to memory inside Log_event::temp_buf */ + int check_fname_outside_temp_buf() + { + return local_fname; + } + +#ifdef MYSQL_SERVER + String field_lens_buf; + String fields_buf; + + Load_log_event(THD* thd, sql_exchange* ex, const char* db_arg, + const char* table_name_arg, + List& fields_arg, + bool is_concurrent_arg, + enum enum_duplicates handle_dup, bool ignore, + bool using_trans); + void set_fields(const char* db, List &fields_arg, + Name_resolution_context *context); + const char* get_db() { return db; } +#ifdef HAVE_REPLICATION + void pack_info(THD *thd, Protocol* protocol); +#endif /* HAVE_REPLICATION */ +#else + void print(FILE* file, PRINT_EVENT_INFO* print_event_info); + void print(FILE* file, PRINT_EVENT_INFO* print_event_info, bool commented); +#endif + + /* + Note that for all the events related to LOAD DATA (Load_log_event, + Create_file/Append/Exec/Delete, we pass description_event; however as + logging of LOAD DATA is going to be changed in 4.1 or 5.0, this is only used + for the common_header_len (post_header_len will not be changed). + */ + Load_log_event(const char* buf, uint event_len, + const Format_description_log_event* description_event); + ~Load_log_event() + {} + Log_event_type get_type_code() + { + return sql_ex.new_format() ? NEW_LOAD_EVENT: LOAD_EVENT; + } +#ifdef MYSQL_SERVER + bool write_data_header(IO_CACHE* file); + bool write_data_body(IO_CACHE* file); +#endif + bool is_valid() const { return table_name != 0; } + int get_data_size() + { + return (table_name_len + db_len + 2 + fname_len + + LOAD_HEADER_LEN + + sql_ex.data_size() + field_block_len + num_fields); + } + +public: /* !!! Public in this patch to allow old usage */ +#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION) + virtual int do_apply_event(Relay_log_info const* rli) + { + return do_apply_event(thd->slave_net,rli,0); + } + + int do_apply_event(NET *net, Relay_log_info const *rli, + bool use_rli_only_for_errors); +#endif +}; + +/** + @class Start_log_event_v3 + + Start_log_event_v3 is the Start_log_event of binlog format 3 (MySQL 3.23 and + 4.x). + + Format_description_log_event derives from Start_log_event_v3; it is + the Start_log_event of binlog format 4 (MySQL 5.0), that is, the + event that describes the other events' Common-Header/Post-Header + lengths. This event is sent by MySQL 5.0 whenever it starts sending + a new binlog if the requested position is >4 (otherwise if ==4 the + event will be sent naturally). + + @section Start_log_event_v3_binary_format Binary Format +*/ +class Start_log_event_v3: public Log_event +{ +public: + /* + If this event is at the start of the first binary log since server + startup 'created' should be the timestamp when the event (and the + binary log) was created. In the other case (i.e. this event is at + the start of a binary log created by FLUSH LOGS or automatic + rotation), 'created' should be 0. This "trick" is used by MySQL + >=4.0.14 slaves to know whether they must drop stale temporary + tables and whether they should abort unfinished transaction. + + Note that when 'created'!=0, it is always equal to the event's + timestamp; indeed Start_log_event is written only in log.cc where + the first constructor below is called, in which 'created' is set + to 'when'. So in fact 'created' is a useless variable. When it is + 0 we can read the actual value from timestamp ('when') and when it + is non-zero we can read the same value from timestamp + ('when'). Conclusion: + - we use timestamp to print when the binlog was created. + - we use 'created' only to know if this is a first binlog or not. + In 3.23.57 we did not pay attention to this identity, so mysqlbinlog in + 3.23.57 does not print 'created the_date' if created was zero. This is now + fixed. + */ + time_t created; + uint16 binlog_version; + char server_version[ST_SERVER_VER_LEN]; + /* + We set this to 1 if we don't want to have the created time in the log, + which is the case when we rollover to a new log. + */ + bool dont_set_created; + +#ifdef MYSQL_SERVER + Start_log_event_v3(); +#ifdef HAVE_REPLICATION + void pack_info(THD *thd, Protocol* protocol); +#endif /* HAVE_REPLICATION */ +#else + Start_log_event_v3() {} + void print(FILE* file, PRINT_EVENT_INFO* print_event_info); +#endif + + Start_log_event_v3(const char* buf, uint event_len, + const Format_description_log_event* description_event); + ~Start_log_event_v3() {} + Log_event_type get_type_code() { return START_EVENT_V3;} +#ifdef MYSQL_SERVER + bool write(IO_CACHE* file); +#endif + bool is_valid() const { return server_version[0] != 0; } + int get_data_size() + { + return START_V3_HEADER_LEN; //no variable-sized part + } + +protected: +#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION) + virtual int do_apply_event(Relay_log_info const *rli); + virtual enum_skip_reason do_shall_skip(Relay_log_info*) + { + /* + Events from ourself should be skipped, but they should not + decrease the slave skip counter. + */ + if (this->server_id == ::server_id) + return Log_event::EVENT_SKIP_IGNORE; + else + return Log_event::EVENT_SKIP_NOT; + } +#endif +}; + + +/** + @class Format_description_log_event + + For binlog version 4. + This event is saved by threads which read it, as they need it for future + use (to decode the ordinary events). + + @section Format_description_log_event_binary_format Binary Format +*/ + +class Format_description_log_event: public Start_log_event_v3 +{ +public: + /* + The size of the fixed header which _all_ events have + (for binlogs written by this version, this is equal to + LOG_EVENT_HEADER_LEN), except FORMAT_DESCRIPTION_EVENT and ROTATE_EVENT + (those have a header of size LOG_EVENT_MINIMAL_HEADER_LEN). + */ + uint8 common_header_len; + uint8 number_of_event_types; + /* + The list of post-headers' lengths followed + by the checksum alg decription byte + */ + uint8 *post_header_len; + struct master_version_split { + enum {KIND_MYSQL, KIND_MARIADB}; + int kind; + uchar ver[3]; + }; + master_version_split server_version_split; + const uint8 *event_type_permutation; + + Format_description_log_event(uint8 binlog_ver, const char* server_ver=0); + Format_description_log_event(const char* buf, uint event_len, + const Format_description_log_event + *description_event); + ~Format_description_log_event() + { + my_free(post_header_len); + } + Log_event_type get_type_code() { return FORMAT_DESCRIPTION_EVENT;} +#ifdef MYSQL_SERVER + bool write(IO_CACHE* file); +#endif + bool header_is_valid() const + { + return ((common_header_len >= ((binlog_version==1) ? OLD_HEADER_LEN : + LOG_EVENT_MINIMAL_HEADER_LEN)) && + (post_header_len != NULL)); + } + + bool version_is_valid() const + { + /* It is invalid only when all version numbers are 0 */ + return !(server_version_split.ver[0] == 0 && + server_version_split.ver[1] == 0 && + server_version_split.ver[2] == 0); + } + + bool is_valid() const + { + return header_is_valid() && version_is_valid(); + } + + int get_data_size() + { + /* + The vector of post-header lengths is considered as part of the + post-header, because in a given version it never changes (contrary to the + query in a Query_log_event). + */ + return FORMAT_DESCRIPTION_HEADER_LEN; + } + + void calc_server_version_split(); + static bool is_version_before_checksum(const master_version_split *version_split); +protected: +#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION) + virtual int do_apply_event(Relay_log_info const *rli); + virtual int do_update_pos(Relay_log_info *rli); + virtual enum_skip_reason do_shall_skip(Relay_log_info *rli); +#endif +}; + + +/** + @class Intvar_log_event + + An Intvar_log_event will be created just before a Query_log_event, + if the query uses one of the variables LAST_INSERT_ID or INSERT_ID. + Each Intvar_log_event holds the value of one of these variables. + + @section Intvar_log_event_binary_format Binary Format + + The Post-Header for this event type is empty. The Body has two + components: + + + + + + + + + + + + + + + + + + + + + + +
Body for Intvar_log_event
NameFormatDescription
type1 byte enumerationOne byte identifying the type of variable stored. Currently, + two identifiers are supported: LAST_INSERT_ID_EVENT==1 and + INSERT_ID_EVENT==2. +
value8 byte unsigned integerThe value of the variable.
+*/ +class Intvar_log_event: public Log_event +{ +public: + ulonglong val; + uchar type; + +#ifdef MYSQL_SERVER +Intvar_log_event(THD* thd_arg,uchar type_arg, ulonglong val_arg, + bool using_trans, bool direct) + :Log_event(thd_arg,0,using_trans),val(val_arg),type(type_arg) + { + if (direct) + cache_type= Log_event::EVENT_NO_CACHE; + } +#ifdef HAVE_REPLICATION + void pack_info(THD *thd, Protocol* protocol); +#endif /* HAVE_REPLICATION */ +#else + void print(FILE* file, PRINT_EVENT_INFO* print_event_info); +#endif + + Intvar_log_event(const char* buf, + const Format_description_log_event *description_event); + ~Intvar_log_event() {} + Log_event_type get_type_code() { return INTVAR_EVENT;} + const char* get_var_type_name(); + int get_data_size() { return 9; /* sizeof(type) + sizeof(val) */;} +#ifdef MYSQL_SERVER + bool write(IO_CACHE* file); +#endif + bool is_valid() const { return 1; } + +private: +#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION) + virtual int do_apply_event(Relay_log_info const *rli); + virtual int do_update_pos(Relay_log_info *rli); + virtual enum_skip_reason do_shall_skip(Relay_log_info *rli); +#endif +}; + + +/** + @class Rand_log_event + + Logs random seed used by the next RAND(), and by PASSWORD() in 4.1.0. + 4.1.1 does not need it (it's repeatable again) so this event needn't be + written in 4.1.1 for PASSWORD() (but the fact that it is written is just a + waste, it does not cause bugs). + + The state of the random number generation consists of 128 bits, + which are stored internally as two 64-bit numbers. + + @section Rand_log_event_binary_format Binary Format + + The Post-Header for this event type is empty. The Body has two + components: + + + + + + + + + + + + + + + + + + + + + +
Body for Rand_log_event
NameFormatDescription
seed18 byte unsigned integer64 bit random seed1.
seed28 byte unsigned integer64 bit random seed2.
+*/ + +class Rand_log_event: public Log_event +{ + public: + ulonglong seed1; + ulonglong seed2; + +#ifdef MYSQL_SERVER + Rand_log_event(THD* thd_arg, ulonglong seed1_arg, ulonglong seed2_arg, + bool using_trans, bool direct) + :Log_event(thd_arg,0,using_trans),seed1(seed1_arg),seed2(seed2_arg) + { + if (direct) + cache_type= Log_event::EVENT_NO_CACHE; + } +#ifdef HAVE_REPLICATION + void pack_info(THD *thd, Protocol* protocol); +#endif /* HAVE_REPLICATION */ +#else + void print(FILE* file, PRINT_EVENT_INFO* print_event_info); +#endif + + Rand_log_event(const char* buf, + const Format_description_log_event *description_event); + ~Rand_log_event() {} + Log_event_type get_type_code() { return RAND_EVENT;} + int get_data_size() { return 16; /* sizeof(ulonglong) * 2*/ } +#ifdef MYSQL_SERVER + bool write(IO_CACHE* file); +#endif + bool is_valid() const { return 1; } + +private: +#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION) + virtual int do_apply_event(Relay_log_info const *rli); + virtual int do_update_pos(Relay_log_info *rli); + virtual enum_skip_reason do_shall_skip(Relay_log_info *rli); +#endif +}; + +/** + @class Xid_log_event + + Logs xid of the transaction-to-be-committed in the 2pc protocol. + Has no meaning in replication, slaves ignore it. + + @section Xid_log_event_binary_format Binary Format +*/ +#ifdef MYSQL_CLIENT +typedef ulonglong my_xid; // this line is the same as in handler.h +#endif + +class Xid_log_event: public Log_event +{ + public: + my_xid xid; + +#ifdef MYSQL_SERVER + Xid_log_event(THD* thd_arg, my_xid x, bool direct): + Log_event(thd_arg, 0, TRUE), xid(x) + { + if (direct) + cache_type= Log_event::EVENT_NO_CACHE; + } +#ifdef HAVE_REPLICATION + void pack_info(THD *thd, Protocol* protocol); +#endif /* HAVE_REPLICATION */ +#else + void print(FILE* file, PRINT_EVENT_INFO* print_event_info); +#endif + + Xid_log_event(const char* buf, + const Format_description_log_event *description_event); + ~Xid_log_event() {} + Log_event_type get_type_code() { return XID_EVENT;} + int get_data_size() { return sizeof(xid); } +#ifdef MYSQL_SERVER + bool write(IO_CACHE* file); +#endif + bool is_valid() const { return 1; } + +private: +#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION) + virtual int do_apply_event(Relay_log_info const *rli); + enum_skip_reason do_shall_skip(Relay_log_info *rli); +#endif +}; + +/** + @class User_var_log_event + + Every time a query uses the value of a user variable, a User_var_log_event is + written before the Query_log_event, to set the user variable. + + @section User_var_log_event_binary_format Binary Format +*/ + +class User_var_log_event: public Log_event +{ +public: + enum { + UNDEF_F= 0, + UNSIGNED_F= 1 + }; + char *name; + uint name_len; + char *val; + ulong val_len; + Item_result type; + uint charset_number; + bool is_null; + uchar flags; +#ifdef MYSQL_SERVER + bool deferred; + query_id_t query_id; + User_var_log_event(THD* thd_arg, char *name_arg, uint name_len_arg, + char *val_arg, ulong val_len_arg, Item_result type_arg, + uint charset_number_arg, uchar flags_arg, + bool using_trans, bool direct) + :Log_event(thd_arg, 0, using_trans), + name(name_arg), name_len(name_len_arg), val(val_arg), + val_len(val_len_arg), type(type_arg), charset_number(charset_number_arg), + flags(flags_arg), deferred(false) + { + is_null= !val; + if (direct) + cache_type= Log_event::EVENT_NO_CACHE; + } + void pack_info(THD *thd, Protocol* protocol); +#else + void print(FILE* file, PRINT_EVENT_INFO* print_event_info); +#endif + + User_var_log_event(const char* buf, uint event_len, + const Format_description_log_event *description_event); + ~User_var_log_event() {} + Log_event_type get_type_code() { return USER_VAR_EVENT;} +#ifdef MYSQL_SERVER + bool write(IO_CACHE* file); + /* + Getter and setter for deferred User-event. + Returns true if the event is not applied directly + and which case the applier adjusts execution path. + */ + bool is_deferred() { return deferred; } + /* + In case of the deffered applying the variable instance is flagged + and the parsing time query id is stored to be used at applying time. + */ + void set_deferred(query_id_t qid) { deferred= true; query_id= qid; } +#endif + bool is_valid() const { return name != 0; } + +private: +#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION) + virtual int do_apply_event(Relay_log_info const *rli); + virtual int do_update_pos(Relay_log_info *rli); + virtual enum_skip_reason do_shall_skip(Relay_log_info *rli); +#endif +}; + + +/** + @class Stop_log_event + + @section Stop_log_event_binary_format Binary Format + + The Post-Header and Body for this event type are empty; it only has + the Common-Header. +*/ +class Stop_log_event: public Log_event +{ +public: +#ifdef MYSQL_SERVER + Stop_log_event() :Log_event() + {} +#else + void print(FILE* file, PRINT_EVENT_INFO* print_event_info); +#endif + + Stop_log_event(const char* buf, + const Format_description_log_event *description_event): + Log_event(buf, description_event) + {} + ~Stop_log_event() {} + Log_event_type get_type_code() { return STOP_EVENT;} + bool is_valid() const { return 1; } + +private: +#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION) + virtual int do_update_pos(Relay_log_info *rli); + virtual enum_skip_reason do_shall_skip(Relay_log_info *rli) + { + /* + Events from ourself should be skipped, but they should not + decrease the slave skip counter. + */ + if (this->server_id == ::server_id) + return Log_event::EVENT_SKIP_IGNORE; + else + return Log_event::EVENT_SKIP_NOT; + } +#endif +}; + +/** + @class Rotate_log_event + + This will be deprecated when we move to using sequence ids. + + @section Rotate_log_event_binary_format Binary Format + + The Post-Header has one component: + + + + + + + + + + + + + + + + +
Post-Header for Rotate_log_event
NameFormatDescription
position8 byte integerThe position within the binlog to rotate to.
+ + The Body has one component: + + + + + + + + + + + + + + + + +
Body for Rotate_log_event
NameFormatDescription
new_logvariable length string without trailing zero, extending to the + end of the event (determined by the length field of the + Common-Header) + Name of the binlog to rotate to.
+*/ + +class Rotate_log_event: public Log_event +{ +public: + enum { + DUP_NAME= 2, // if constructor should dup the string argument + RELAY_LOG=4 // rotate event for relay log + }; + const char* new_log_ident; + ulonglong pos; + uint ident_len; + uint flags; +#ifdef MYSQL_SERVER + Rotate_log_event(const char* new_log_ident_arg, + uint ident_len_arg, + ulonglong pos_arg, uint flags); +#ifdef HAVE_REPLICATION + void pack_info(THD *thd, Protocol* protocol); +#endif /* HAVE_REPLICATION */ +#else + void print(FILE* file, PRINT_EVENT_INFO* print_event_info); +#endif + + Rotate_log_event(const char* buf, uint event_len, + const Format_description_log_event* description_event); + ~Rotate_log_event() + { + if (flags & DUP_NAME) + my_free((void*) new_log_ident); + } + Log_event_type get_type_code() { return ROTATE_EVENT;} + int get_data_size() { return ident_len + ROTATE_HEADER_LEN;} + bool is_valid() const { return new_log_ident != 0; } +#ifdef MYSQL_SERVER + bool write(IO_CACHE* file); +#endif + +private: +#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION) + virtual int do_update_pos(Relay_log_info *rli); + virtual enum_skip_reason do_shall_skip(Relay_log_info *rli); +#endif +}; + + +/* the classes below are for the new LOAD DATA INFILE logging */ + +/** + @class Create_file_log_event + + @section Create_file_log_event_binary_format Binary Format +*/ + +class Create_file_log_event: public Load_log_event +{ +protected: + /* + Pretend we are Load event, so we can write out just + our Load part - used on the slave when writing event out to + SQL_LOAD-*.info file + */ + bool fake_base; +public: + uchar* block; + const char *event_buf; + uint block_len; + uint file_id; + bool inited_from_old; + +#ifdef MYSQL_SERVER + Create_file_log_event(THD* thd, sql_exchange* ex, const char* db_arg, + const char* table_name_arg, + List& fields_arg, + bool is_concurrent_arg, + enum enum_duplicates handle_dup, bool ignore, + uchar* block_arg, uint block_len_arg, + bool using_trans); +#ifdef HAVE_REPLICATION + void pack_info(THD *thd, Protocol* protocol); +#endif /* HAVE_REPLICATION */ +#else + void print(FILE* file, PRINT_EVENT_INFO* print_event_info); + void print(FILE* file, PRINT_EVENT_INFO* print_event_info, + bool enable_local); +#endif + + Create_file_log_event(const char* buf, uint event_len, + const Format_description_log_event* description_event); + ~Create_file_log_event() + { + my_free((void*) event_buf); + } + + Log_event_type get_type_code() + { + return fake_base ? Load_log_event::get_type_code() : CREATE_FILE_EVENT; + } + int get_data_size() + { + return (fake_base ? Load_log_event::get_data_size() : + Load_log_event::get_data_size() + + 4 + 1 + block_len); + } + bool is_valid() const { return inited_from_old || block != 0; } +#ifdef MYSQL_SERVER + bool write_data_header(IO_CACHE* file); + bool write_data_body(IO_CACHE* file); + /* + Cut out Create_file extentions and + write it as Load event - used on the slave + */ + bool write_base(IO_CACHE* file); +#endif + +private: +#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION) + virtual int do_apply_event(Relay_log_info const *rli); +#endif +}; + + +/** + @class Append_block_log_event + + @section Append_block_log_event_binary_format Binary Format +*/ + +class Append_block_log_event: public Log_event +{ +public: + uchar* block; + uint block_len; + uint file_id; + /* + 'db' is filled when the event is created in mysql_load() (the + event needs to have a 'db' member to be well filtered by + binlog-*-db rules). 'db' is not written to the binlog (it's not + used by Append_block_log_event::write()), so it can't be read in + the Append_block_log_event(const char* buf, int event_len) + constructor. In other words, 'db' is used only for filtering by + binlog-*-db rules. Create_file_log_event is different: it's 'db' + (which is inherited from Load_log_event) is written to the binlog + and can be re-read. + */ + const char* db; + +#ifdef MYSQL_SERVER + Append_block_log_event(THD* thd, const char* db_arg, uchar* block_arg, + uint block_len_arg, bool using_trans); +#ifdef HAVE_REPLICATION + void pack_info(THD *thd, Protocol* protocol); + virtual int get_create_or_append() const; +#endif /* HAVE_REPLICATION */ +#else + void print(FILE* file, PRINT_EVENT_INFO* print_event_info); +#endif + + Append_block_log_event(const char* buf, uint event_len, + const Format_description_log_event + *description_event); + ~Append_block_log_event() {} + Log_event_type get_type_code() { return APPEND_BLOCK_EVENT;} + int get_data_size() { return block_len + APPEND_BLOCK_HEADER_LEN ;} + bool is_valid() const { return block != 0; } +#ifdef MYSQL_SERVER + bool write(IO_CACHE* file); + const char* get_db() { return db; } +#endif + +private: +#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION) + virtual int do_apply_event(Relay_log_info const *rli); +#endif +}; + + +/** + @class Delete_file_log_event + + @section Delete_file_log_event_binary_format Binary Format +*/ + +class Delete_file_log_event: public Log_event +{ +public: + uint file_id; + const char* db; /* see comment in Append_block_log_event */ + +#ifdef MYSQL_SERVER + Delete_file_log_event(THD* thd, const char* db_arg, bool using_trans); +#ifdef HAVE_REPLICATION + void pack_info(THD *thd, Protocol* protocol); +#endif /* HAVE_REPLICATION */ +#else + void print(FILE* file, PRINT_EVENT_INFO* print_event_info); + void print(FILE* file, PRINT_EVENT_INFO* print_event_info, + bool enable_local); +#endif + + Delete_file_log_event(const char* buf, uint event_len, + const Format_description_log_event* description_event); + ~Delete_file_log_event() {} + Log_event_type get_type_code() { return DELETE_FILE_EVENT;} + int get_data_size() { return DELETE_FILE_HEADER_LEN ;} + bool is_valid() const { return file_id != 0; } +#ifdef MYSQL_SERVER + bool write(IO_CACHE* file); + const char* get_db() { return db; } +#endif + +private: +#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION) + virtual int do_apply_event(Relay_log_info const *rli); +#endif +}; + + +/** + @class Execute_load_log_event + + @section Delete_file_log_event_binary_format Binary Format +*/ + +class Execute_load_log_event: public Log_event +{ +public: + uint file_id; + const char* db; /* see comment in Append_block_log_event */ + +#ifdef MYSQL_SERVER + Execute_load_log_event(THD* thd, const char* db_arg, bool using_trans); +#ifdef HAVE_REPLICATION + void pack_info(THD *thd, Protocol* protocol); +#endif /* HAVE_REPLICATION */ +#else + void print(FILE* file, PRINT_EVENT_INFO* print_event_info); +#endif + + Execute_load_log_event(const char* buf, uint event_len, + const Format_description_log_event + *description_event); + ~Execute_load_log_event() {} + Log_event_type get_type_code() { return EXEC_LOAD_EVENT;} + int get_data_size() { return EXEC_LOAD_HEADER_LEN ;} + bool is_valid() const { return file_id != 0; } +#ifdef MYSQL_SERVER + bool write(IO_CACHE* file); + const char* get_db() { return db; } +#endif + +private: +#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION) + virtual int do_apply_event(Relay_log_info const *rli); +#endif +}; + + +/** + @class Begin_load_query_log_event + + Event for the first block of file to be loaded, its only difference from + Append_block event is that this event creates or truncates existing file + before writing data. + + @section Begin_load_query_log_event_binary_format Binary Format +*/ +class Begin_load_query_log_event: public Append_block_log_event +{ +public: +#ifdef MYSQL_SERVER + Begin_load_query_log_event(THD* thd_arg, const char *db_arg, + uchar* block_arg, uint block_len_arg, + bool using_trans); +#ifdef HAVE_REPLICATION + Begin_load_query_log_event(THD* thd); + int get_create_or_append() const; +#endif /* HAVE_REPLICATION */ +#endif + Begin_load_query_log_event(const char* buf, uint event_len, + const Format_description_log_event + *description_event); + ~Begin_load_query_log_event() {} + Log_event_type get_type_code() { return BEGIN_LOAD_QUERY_EVENT; } +private: +#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION) + virtual enum_skip_reason do_shall_skip(Relay_log_info *rli); +#endif +}; + + +/* + Elements of this enum describe how LOAD DATA handles duplicates. +*/ +enum enum_load_dup_handling { LOAD_DUP_ERROR= 0, LOAD_DUP_IGNORE, + LOAD_DUP_REPLACE }; + +/** + @class Execute_load_query_log_event + + Event responsible for LOAD DATA execution, it similar to Query_log_event + but before executing the query it substitutes original filename in LOAD DATA + query with name of temporary file. + + @section Execute_load_query_log_event_binary_format Binary Format +*/ +class Execute_load_query_log_event: public Query_log_event +{ +public: + uint file_id; // file_id of temporary file + uint fn_pos_start; // pointer to the part of the query that should + // be substituted + uint fn_pos_end; // pointer to the end of this part of query + /* + We have to store type of duplicate handling explicitly, because + for LOAD DATA it also depends on LOCAL option. And this part + of query will be rewritten during replication so this information + may be lost... + */ + enum_load_dup_handling dup_handling; + +#ifdef MYSQL_SERVER + Execute_load_query_log_event(THD* thd, const char* query_arg, + ulong query_length, uint fn_pos_start_arg, + uint fn_pos_end_arg, + enum_load_dup_handling dup_handling_arg, + bool using_trans, bool direct, + bool suppress_use, int errcode); +#ifdef HAVE_REPLICATION + void pack_info(THD *thd, Protocol* protocol); +#endif /* HAVE_REPLICATION */ +#else + void print(FILE* file, PRINT_EVENT_INFO* print_event_info); + /* Prints the query as LOAD DATA LOCAL and with rewritten filename */ + void print(FILE* file, PRINT_EVENT_INFO* print_event_info, + const char *local_fname); +#endif + Execute_load_query_log_event(const char* buf, uint event_len, + const Format_description_log_event + *description_event); + ~Execute_load_query_log_event() {} + + Log_event_type get_type_code() { return EXECUTE_LOAD_QUERY_EVENT; } + bool is_valid() const { return Query_log_event::is_valid() && file_id != 0; } + + ulong get_post_header_size_for_derived(); +#ifdef MYSQL_SERVER + bool write_post_header_for_derived(IO_CACHE* file); +#endif + +private: +#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION) + virtual int do_apply_event(Relay_log_info const *rli); +#endif +}; + + +#ifdef MYSQL_CLIENT +/** + @class Unknown_log_event + + @section Unknown_log_event_binary_format Binary Format +*/ +class Unknown_log_event: public Log_event +{ +public: + /* + Even if this is an unknown event, we still pass description_event to + Log_event's ctor, this way we can extract maximum information from the + event's header (the unique ID for example). + */ + Unknown_log_event(const char* buf, + const Format_description_log_event *description_event): + Log_event(buf, description_event) + {} + ~Unknown_log_event() {} + void print(FILE* file, PRINT_EVENT_INFO* print_event_info); + Log_event_type get_type_code() { return UNKNOWN_EVENT;} + bool is_valid() const { return 1; } +}; +#endif +char *str_to_hex(char *to, const char *from, uint len); + +/** + @class Annotate_rows_log_event + + In row-based mode, if binlog_annotate_row_events = ON, each group of + Table_map_log_events is preceded by an Annotate_rows_log_event which + contains the query which caused the subsequent rows operations. + + The Annotate_rows_log_event has no post-header and its body contains + the corresponding query (without trailing zero). Note. The query length + is to be calculated as a difference between the whole event length and + the common header length. +*/ +class Annotate_rows_log_event: public Log_event +{ +public: +#ifndef MYSQL_CLIENT + Annotate_rows_log_event(THD*, bool using_trans, bool direct); +#endif + Annotate_rows_log_event(const char *buf, uint event_len, + const Format_description_log_event*); + ~Annotate_rows_log_event(); + + virtual int get_data_size(); + virtual Log_event_type get_type_code(); + virtual bool is_valid() const; + +#ifndef MYSQL_CLIENT + virtual bool write_data_header(IO_CACHE*); + virtual bool write_data_body(IO_CACHE*); +#endif + +#if !defined(MYSQL_CLIENT) && defined(HAVE_REPLICATION) + virtual void pack_info(THD *thd, Protocol*); +#endif + +#ifdef MYSQL_CLIENT + virtual void print(FILE*, PRINT_EVENT_INFO*); +#endif + +#if !defined(MYSQL_CLIENT) && defined(HAVE_REPLICATION) +private: + virtual int do_apply_event(Relay_log_info const*); + virtual int do_update_pos(Relay_log_info*); + virtual enum_skip_reason do_shall_skip(Relay_log_info*); +#endif + +private: + char *m_query_txt; + uint m_query_len; + char *m_save_thd_query_txt; + uint m_save_thd_query_len; +}; + +/** + @class Table_map_log_event + + In row-based mode, every row operation event is preceded by a + Table_map_log_event which maps a table definition to a number. The + table definition consists of database name, table name, and column + definitions. + + @section Table_map_log_event_binary_format Binary Format + + The Post-Header has the following components: + + + + + + + + + + + + + + + + + + + + + + +
Post-Header for Table_map_log_event
NameFormatDescription
table_id6 bytes unsigned integerThe number that identifies the table.
flags2 byte bitfieldReserved for future use; currently always 0.
+ + The Body has the following components: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Body for Table_map_log_event
NameFormatDescription
database_nameone byte string length, followed by null-terminated stringThe name of the database in which the table resides. The name + is represented as a one byte unsigned integer representing the + number of bytes in the name, followed by length bytes containing + the database name, followed by a terminating 0 byte. (Note the + redundancy in the representation of the length.)
table_nameone byte string length, followed by null-terminated stringThe name of the table, encoded the same way as the database + name above.
column_count@ref packed_integer "Packed Integer"The number of columns in the table, represented as a packed + variable-length integer.
column_typeList of column_count 1 byte enumeration valuesThe type of each column in the table, listed from left to + right. Each byte is mapped to a column type according to the + enumeration type enum_field_types defined in mysql_com.h. The + mapping of types to numbers is listed in the table @ref + Table_table_map_log_event_column_types "below" (along with + description of the associated metadata field).
metadata_length@ref packed_integer "Packed Integer"The length of the following metadata block
metadatalist of metadata for each columnFor each column from left to right, a chunk of data who's + length and semantics depends on the type of the column. The + length and semantics for the metadata for each column are listed + in the table @ref Table_table_map_log_event_column_types + "below".
null_bitscolumn_count bits, rounded up to nearest byteFor each column, a bit indicating whether data in the column + can be NULL or not. The number of bytes needed for this is + int((column_count+7)/8). The flag for the first column from the + left is in the least-significant bit of the first byte, the second + is in the second least significant bit of the first byte, the + ninth is in the least significant bit of the second byte, and so + on.
+ + The table below lists all column types, along with the numerical + identifier for it and the size and interpretation of meta-data used + to describe the type. + + @anchor Table_table_map_log_event_column_types + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Table_map_log_event column types: numerical identifier and + metadata
NameIdentifierSize of metadata in bytesDescription of metadata
MYSQL_TYPE_DECIMAL00No column metadata.
MYSQL_TYPE_TINY10No column metadata.
MYSQL_TYPE_SHORT20No column metadata.
MYSQL_TYPE_LONG30No column metadata.
MYSQL_TYPE_FLOAT41 byte1 byte unsigned integer, representing the "pack_length", which + is equal to sizeof(float) on the server from which the event + originates.
MYSQL_TYPE_DOUBLE51 byte1 byte unsigned integer, representing the "pack_length", which + is equal to sizeof(double) on the server from which the event + originates.
MYSQL_TYPE_NULL60No column metadata.
MYSQL_TYPE_TIMESTAMP70No column metadata.
MYSQL_TYPE_LONGLONG80No column metadata.
MYSQL_TYPE_INT2490No column metadata.
MYSQL_TYPE_DATE100No column metadata.
MYSQL_TYPE_TIME110No column metadata.
MYSQL_TYPE_DATETIME120No column metadata.
MYSQL_TYPE_YEAR130No column metadata.
MYSQL_TYPE_NEWDATE14This enumeration value is only used internally and cannot + exist in a binlog.
MYSQL_TYPE_VARCHAR152 bytes2 byte unsigned integer representing the maximum length of + the string.
MYSQL_TYPE_BIT162 bytesA 1 byte unsigned int representing the length in bits of the + bitfield (0 to 64), followed by a 1 byte unsigned int + representing the number of bytes occupied by the bitfield. The + number of bytes is either int((length+7)/8) or int(length/8).
MYSQL_TYPE_NEWDECIMAL2462 bytesA 1 byte unsigned int representing the precision, followed + by a 1 byte unsigned int representing the number of decimals.
MYSQL_TYPE_ENUM247This enumeration value is only used internally and cannot + exist in a binlog.
MYSQL_TYPE_SET248This enumeration value is only used internally and cannot + exist in a binlog.
MYSQL_TYPE_TINY_BLOB249This enumeration value is only used internally and cannot + exist in a binlog.
MYSQL_TYPE_MEDIUM_BLOB250This enumeration value is only used internally and cannot + exist in a binlog.
MYSQL_TYPE_LONG_BLOB251This enumeration value is only used internally and cannot + exist in a binlog.
MYSQL_TYPE_BLOB2521 byteThe pack length, i.e., the number of bytes needed to represent + the length of the blob: 1, 2, 3, or 4.
MYSQL_TYPE_VAR_STRING2532 bytesThis is used to store both strings and enumeration values. + The first byte is a enumeration value storing the real + type, which may be either MYSQL_TYPE_VAR_STRING or + MYSQL_TYPE_ENUM. The second byte is a 1 byte unsigned integer + representing the field size, i.e., the number of bytes needed to + store the length of the string.
MYSQL_TYPE_STRING2542 bytesThe first byte is always MYSQL_TYPE_VAR_STRING (i.e., 253). + The second byte is the field size, i.e., the number of bytes in + the representation of size of the string: 3 or 4.
MYSQL_TYPE_GEOMETRY2551 byteThe pack length, i.e., the number of bytes needed to represent + the length of the geometry: 1, 2, 3, or 4.
+*/ +class Table_map_log_event : public Log_event +{ +public: + /* Constants */ + enum + { + TYPE_CODE = TABLE_MAP_EVENT + }; + + /** + Enumeration of the errors that can be returned. + */ + enum enum_error + { + ERR_OPEN_FAILURE = -1, /**< Failure to open table */ + ERR_OK = 0, /**< No error */ + ERR_TABLE_LIMIT_EXCEEDED = 1, /**< No more room for tables */ + ERR_OUT_OF_MEM = 2, /**< Out of memory */ + ERR_BAD_TABLE_DEF = 3, /**< Table definition does not match */ + ERR_RBR_TO_SBR = 4 /**< daisy-chanining RBR to SBR not allowed */ + }; + + enum enum_flag + { + /* + Nothing here right now, but the flags support is there in + preparation for changes that are coming. Need to add a + constant to make it compile under HP-UX: aCC does not like + empty enumerations. + */ + ENUM_FLAG_COUNT + }; + + typedef uint16 flag_set; + + /* Special constants representing sets of flags */ + enum + { + TM_NO_FLAGS = 0U, + TM_BIT_LEN_EXACT_F = (1U << 0) + }; + + flag_set get_flags(flag_set flag) const { return m_flags & flag; } + +#ifdef MYSQL_SERVER + Table_map_log_event(THD *thd, TABLE *tbl, ulong tid, bool is_transactional); +#endif +#ifdef HAVE_REPLICATION + Table_map_log_event(const char *buf, uint event_len, + const Format_description_log_event *description_event); +#endif + + ~Table_map_log_event(); + +#ifdef MYSQL_CLIENT + table_def *create_table_def() + { + return new table_def(m_coltype, m_colcnt, m_field_metadata, + m_field_metadata_size, m_null_bits, m_flags); + } + int rewrite_db(const char* new_name, size_t new_name_len, + const Format_description_log_event*); +#endif + ulong get_table_id() const { return m_table_id; } + const char *get_table_name() const { return m_tblnam; } + const char *get_db_name() const { return m_dbnam; } + + virtual Log_event_type get_type_code() { return TABLE_MAP_EVENT; } + virtual bool is_valid() const { return m_memory != NULL; /* we check malloc */ } + + virtual int get_data_size() { return (uint) m_data_size; } +#ifdef MYSQL_SERVER + virtual int save_field_metadata(); + virtual bool write_data_header(IO_CACHE *file); + virtual bool write_data_body(IO_CACHE *file); + virtual const char *get_db() { return m_dbnam; } +#endif + +#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION) + virtual void pack_info(THD *thd, Protocol *protocol); +#endif + +#ifdef MYSQL_CLIENT + virtual void print(FILE *file, PRINT_EVENT_INFO *print_event_info); +#endif + + +private: +#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION) + virtual int do_apply_event(Relay_log_info const *rli); + virtual int do_update_pos(Relay_log_info *rli); + virtual enum_skip_reason do_shall_skip(Relay_log_info *rli); +#endif + +#ifdef MYSQL_SERVER + TABLE *m_table; +#endif + char const *m_dbnam; + size_t m_dblen; + char const *m_tblnam; + size_t m_tbllen; + ulong m_colcnt; + uchar *m_coltype; + + uchar *m_memory; + ulong m_table_id; + flag_set m_flags; + + size_t m_data_size; + + uchar *m_field_metadata; // buffer for field metadata + /* + The size of field metadata buffer set by calling save_field_metadata() + */ + ulong m_field_metadata_size; + uchar *m_null_bits; + uchar *m_meta_memory; +}; + + +/** + @class Rows_log_event + + Common base class for all row-containing log events. + + RESPONSIBILITIES + + Encode the common parts of all events containing rows, which are: + - Write data header and data body to an IO_CACHE. + - Provide an interface for adding an individual row to the event. + + @section Rows_log_event_binary_format Binary Format +*/ + + +class Rows_log_event : public Log_event +{ +public: + /** + Enumeration of the errors that can be returned. + */ + enum enum_error + { + ERR_OPEN_FAILURE = -1, /**< Failure to open table */ + ERR_OK = 0, /**< No error */ + ERR_TABLE_LIMIT_EXCEEDED = 1, /**< No more room for tables */ + ERR_OUT_OF_MEM = 2, /**< Out of memory */ + ERR_BAD_TABLE_DEF = 3, /**< Table definition does not match */ + ERR_RBR_TO_SBR = 4 /**< daisy-chanining RBR to SBR not allowed */ + }; + + /* + These definitions allow you to combine the flags into an + appropriate flag set using the normal bitwise operators. The + implicit conversion from an enum-constant to an integer is + accepted by the compiler, which is then used to set the real set + of flags. + */ + enum enum_flag + { + /* Last event of a statement */ + STMT_END_F = (1U << 0), + + /* Value of the OPTION_NO_FOREIGN_KEY_CHECKS flag in thd->options */ + NO_FOREIGN_KEY_CHECKS_F = (1U << 1), + + /* Value of the OPTION_RELAXED_UNIQUE_CHECKS flag in thd->options */ + RELAXED_UNIQUE_CHECKS_F = (1U << 2), + + /** + Indicates that rows in this event are complete, that is contain + values for all columns of the table. + */ + COMPLETE_ROWS_F = (1U << 3) + }; + + typedef uint16 flag_set; + + /* Special constants representing sets of flags */ + enum + { + RLE_NO_FLAGS = 0U + }; + + virtual ~Rows_log_event(); + + void set_flags(flag_set flags_arg) { m_flags |= flags_arg; } + void clear_flags(flag_set flags_arg) { m_flags &= ~flags_arg; } + flag_set get_flags(flag_set flags_arg) const { return m_flags & flags_arg; } + +#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION) + virtual void pack_info(THD *thd, Protocol *protocol); +#endif + +#ifdef MYSQL_CLIENT + /* not for direct call, each derived has its own ::print() */ + virtual void print(FILE *file, PRINT_EVENT_INFO *print_event_info)= 0; + void print_verbose(IO_CACHE *file, + PRINT_EVENT_INFO *print_event_info); + size_t print_verbose_one_row(IO_CACHE *file, table_def *td, + PRINT_EVENT_INFO *print_event_info, + MY_BITMAP *cols_bitmap, + const uchar *ptr, const uchar *prefix); +#endif + +#ifdef MYSQL_SERVER + int add_row_data(uchar *data, size_t length) + { + return do_add_row_data(data,length); + } +#endif + + /* Member functions to implement superclass interface */ + virtual int get_data_size(); + + MY_BITMAP const *get_cols() const { return &m_cols; } + size_t get_width() const { return m_width; } + ulong get_table_id() const { return m_table_id; } + +#ifdef MYSQL_SERVER + virtual bool write_data_header(IO_CACHE *file); + virtual bool write_data_body(IO_CACHE *file); + virtual const char *get_db() { return m_table->s->db.str; } +#endif + /* + Check that malloc() succeeded in allocating memory for the rows + buffer and the COLS vector. Checking that an Update_rows_log_event + is valid is done in the Update_rows_log_event::is_valid() + function. + */ + virtual bool is_valid() const + { + return m_rows_buf && m_cols.bitmap; + } + + uint m_row_count; /* The number of rows added to the event */ + +protected: + /* + The constructors are protected since you're supposed to inherit + this class, not create instances of this class. + */ +#ifdef MYSQL_SERVER + Rows_log_event(THD*, TABLE*, ulong table_id, + MY_BITMAP const *cols, bool is_transactional); +#endif + Rows_log_event(const char *row_data, uint event_len, + Log_event_type event_type, + const Format_description_log_event *description_event); + +#ifdef MYSQL_CLIENT + void print_helper(FILE *, PRINT_EVENT_INFO *, char const *const name); +#endif + +#ifdef MYSQL_SERVER + virtual int do_add_row_data(uchar *data, size_t length); +#endif + +#ifdef MYSQL_SERVER + TABLE *m_table; /* The table the rows belong to */ +#endif + ulong m_table_id; /* Table ID */ + MY_BITMAP m_cols; /* Bitmap denoting columns available */ + ulong m_width; /* The width of the columns bitmap */ + /* + Bitmap for columns available in the after image, if present. These + fields are only available for Update_rows events. Observe that the + width of both the before image COLS vector and the after image + COLS vector is the same: the number of columns of the table on the + master. + */ + MY_BITMAP m_cols_ai; + + ulong m_master_reclength; /* Length of record on master side */ + + /* Bit buffers in the same memory as the class */ + uint32 m_bitbuf[128/(sizeof(uint32)*8)]; + uint32 m_bitbuf_ai[128/(sizeof(uint32)*8)]; + + uchar *m_rows_buf; /* The rows in packed format */ + uchar *m_rows_cur; /* One-after the end of the data */ + uchar *m_rows_end; /* One-after the end of the allocated space */ + + flag_set m_flags; /* Flags for row-level events */ + + /* helper functions */ + +#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION) + const uchar *m_curr_row; /* Start of the row being processed */ + const uchar *m_curr_row_end; /* One-after the end of the current row */ + uchar *m_key; /* Buffer to keep key value during searches */ + KEY *m_key_info; /* Pointer to KEY info for m_key_nr */ + uint m_key_nr; /* Key number */ + + int find_key(); // Find a best key to use in find_row() + int find_row(const Relay_log_info *const); + int write_row(const Relay_log_info *const, const bool); + + // Unpack the current row into m_table->record[0] + int unpack_current_row(const Relay_log_info *const rli) + { + DBUG_ASSERT(m_table); + + ASSERT_OR_RETURN_ERROR(m_curr_row < m_rows_end, HA_ERR_CORRUPT_EVENT); + return ::unpack_row(rli, m_table, m_width, m_curr_row, &m_cols, + &m_curr_row_end, &m_master_reclength, m_rows_end); + } + + /** + Helper function to check whether there is an auto increment + column on the table where the event is to be applied. + + @return true if there is an autoincrement field on the extra + columns, false otherwise. + */ + inline bool is_auto_inc_in_extra_columns() + { + DBUG_ASSERT(m_table); + return (m_table->next_number_field && + m_table->next_number_field->field_index >= m_width); + } +#endif + +private: + +#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION) + virtual int do_apply_event(Relay_log_info const *rli); + virtual int do_update_pos(Relay_log_info *rli); + virtual enum_skip_reason do_shall_skip(Relay_log_info *rli); + + /* + Primitive to prepare for a sequence of row executions. + + DESCRIPTION + + Before doing a sequence of do_prepare_row() and do_exec_row() + calls, this member function should be called to prepare for the + entire sequence. Typically, this member function will allocate + space for any buffers that are needed for the two member + functions mentioned above. + + RETURN VALUE + + The member function will return 0 if all went OK, or a non-zero + error code otherwise. + */ + virtual + int do_before_row_operations(const Slave_reporting_capability *const log) = 0; + + /* + Primitive to clean up after a sequence of row executions. + + DESCRIPTION + + After doing a sequence of do_prepare_row() and do_exec_row(), + this member function should be called to clean up and release + any allocated buffers. + + The error argument, if non-zero, indicates an error which happened during + row processing before this function was called. In this case, even if + function is successful, it should return the error code given in the argument. + */ + virtual + int do_after_row_operations(const Slave_reporting_capability *const log, + int error) = 0; + + /* + Primitive to do the actual execution necessary for a row. + + DESCRIPTION + The member function will do the actual execution needed to handle a row. + The row is located at m_curr_row. When the function returns, + m_curr_row_end should point at the next row (one byte after the end + of the current row). + + RETURN VALUE + 0 if execution succeeded, 1 if execution failed. + + */ + virtual int do_exec_row(const Relay_log_info *const rli) = 0; +#endif /* defined(MYSQL_SERVER) && defined(HAVE_REPLICATION) */ + + friend class Old_rows_log_event; +}; + +/** + @class Write_rows_log_event + + Log row insertions and updates. The event contain several + insert/update rows for a table. Note that each event contains only + rows for one table. + + @section Write_rows_log_event_binary_format Binary Format +*/ +class Write_rows_log_event : public Rows_log_event +{ +public: + enum + { + /* Support interface to THD::binlog_prepare_pending_rows_event */ + TYPE_CODE = WRITE_ROWS_EVENT + }; + +#if defined(MYSQL_SERVER) + Write_rows_log_event(THD*, TABLE*, ulong table_id, + MY_BITMAP const *cols, bool is_transactional); +#endif +#ifdef HAVE_REPLICATION + Write_rows_log_event(const char *buf, uint event_len, + const Format_description_log_event *description_event); +#endif +#if defined(MYSQL_SERVER) + static bool binlog_row_logging_function(THD *thd, TABLE *table, + bool is_transactional, + MY_BITMAP *cols, + uint fields, + const uchar *before_record + __attribute__((unused)), + const uchar *after_record) + { + return thd->binlog_write_row(table, is_transactional, + cols, fields, after_record); + } +#endif + +private: + virtual Log_event_type get_type_code() { return (Log_event_type)TYPE_CODE; } + +#ifdef MYSQL_CLIENT + void print(FILE *file, PRINT_EVENT_INFO *print_event_info); +#endif + +#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION) + virtual int do_before_row_operations(const Slave_reporting_capability *const); + virtual int do_after_row_operations(const Slave_reporting_capability *const,int); + virtual int do_exec_row(const Relay_log_info *const); +#endif +}; + + +/** + @class Update_rows_log_event + + Log row updates with a before image. The event contain several + update rows for a table. Note that each event contains only rows for + one table. + + Also note that the row data consists of pairs of row data: one row + for the old data and one row for the new data. + + @section Update_rows_log_event_binary_format Binary Format +*/ +class Update_rows_log_event : public Rows_log_event +{ +public: + enum + { + /* Support interface to THD::binlog_prepare_pending_rows_event */ + TYPE_CODE = UPDATE_ROWS_EVENT + }; + +#ifdef MYSQL_SERVER + Update_rows_log_event(THD*, TABLE*, ulong table_id, + MY_BITMAP const *cols_bi, + MY_BITMAP const *cols_ai, + bool is_transactional); + + Update_rows_log_event(THD*, TABLE*, ulong table_id, + MY_BITMAP const *cols, + bool is_transactional); + + void init(MY_BITMAP const *cols); +#endif + + virtual ~Update_rows_log_event(); + +#ifdef HAVE_REPLICATION + Update_rows_log_event(const char *buf, uint event_len, + const Format_description_log_event *description_event); +#endif + +#ifdef MYSQL_SERVER + static bool binlog_row_logging_function(THD *thd, TABLE *table, + bool is_transactional, + MY_BITMAP *cols, + uint fields, + const uchar *before_record, + const uchar *after_record) + { + return thd->binlog_update_row(table, is_transactional, + cols, fields, before_record, after_record); + } +#endif + + virtual bool is_valid() const + { + return Rows_log_event::is_valid() && m_cols_ai.bitmap; + } + +protected: + virtual Log_event_type get_type_code() { return (Log_event_type)TYPE_CODE; } + +#ifdef MYSQL_CLIENT + void print(FILE *file, PRINT_EVENT_INFO *print_event_info); +#endif + +#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION) + virtual int do_before_row_operations(const Slave_reporting_capability *const); + virtual int do_after_row_operations(const Slave_reporting_capability *const,int); + virtual int do_exec_row(const Relay_log_info *const); +#endif /* defined(MYSQL_SERVER) && defined(HAVE_REPLICATION) */ +}; + +/** + @class Delete_rows_log_event + + Log row deletions. The event contain several delete rows for a + table. Note that each event contains only rows for one table. + + RESPONSIBILITIES + + - Act as a container for rows that has been deleted on the master + and should be deleted on the slave. + + COLLABORATION + + Row_writer + Create the event and add rows to the event. + Row_reader + Extract the rows from the event. + + @section Delete_rows_log_event_binary_format Binary Format +*/ +class Delete_rows_log_event : public Rows_log_event +{ +public: + enum + { + /* Support interface to THD::binlog_prepare_pending_rows_event */ + TYPE_CODE = DELETE_ROWS_EVENT + }; + +#ifdef MYSQL_SERVER + Delete_rows_log_event(THD*, TABLE*, ulong, + MY_BITMAP const *cols, bool is_transactional); +#endif +#ifdef HAVE_REPLICATION + Delete_rows_log_event(const char *buf, uint event_len, + const Format_description_log_event *description_event); +#endif +#ifdef MYSQL_SERVER + static bool binlog_row_logging_function(THD *thd, TABLE *table, + bool is_transactional, + MY_BITMAP *cols, + uint fields, + const uchar *before_record, + const uchar *after_record + __attribute__((unused))) + { + return thd->binlog_delete_row(table, is_transactional, + cols, fields, before_record); + } +#endif + +protected: + virtual Log_event_type get_type_code() { return (Log_event_type)TYPE_CODE; } + +#ifdef MYSQL_CLIENT + void print(FILE *file, PRINT_EVENT_INFO *print_event_info); +#endif + +#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION) + virtual int do_before_row_operations(const Slave_reporting_capability *const); + virtual int do_after_row_operations(const Slave_reporting_capability *const,int); + virtual int do_exec_row(const Relay_log_info *const); +#endif +}; + + +#include "log_event_old.h" + +/** + @class Incident_log_event + + Class representing an incident, an occurance out of the ordinary, + that happened on the master. + + The event is used to inform the slave that something out of the + ordinary happened on the master that might cause the database to be + in an inconsistent state. + + + + + + + + + + + + + + + + + + + + + + + +
Incident event format
SymbolFormatDescription
INCIDENT2Incident number as an unsigned integer
MSGLEN1Message length as an unsigned integer
MESSAGEMSGLENThe message, if present. Not null terminated.
+ + @section Delete_rows_log_event_binary_format Binary Format +*/ +class Incident_log_event : public Log_event { +public: +#ifdef MYSQL_SERVER + Incident_log_event(THD *thd_arg, Incident incident) + : Log_event(thd_arg, 0, FALSE), m_incident(incident) + { + DBUG_ENTER("Incident_log_event::Incident_log_event"); + DBUG_PRINT("enter", ("m_incident: %d", m_incident)); + m_message.str= NULL; /* Just as a precaution */ + m_message.length= 0; + set_direct_logging(); + /* Replicate the incident irregardless of @@skip_replication. */ + flags&= ~LOG_EVENT_SKIP_REPLICATION_F; + DBUG_VOID_RETURN; + } + + Incident_log_event(THD *thd_arg, Incident incident, LEX_STRING const msg) + : Log_event(thd_arg, 0, FALSE), m_incident(incident) + { + DBUG_ENTER("Incident_log_event::Incident_log_event"); + DBUG_PRINT("enter", ("m_incident: %d", m_incident)); + m_message= msg; + set_direct_logging(); + /* Replicate the incident irregardless of @@skip_replication. */ + flags&= ~LOG_EVENT_SKIP_REPLICATION_F; + DBUG_VOID_RETURN; + } +#endif + +#ifdef MYSQL_SERVER + void pack_info(THD *thd, Protocol*); +#endif + + Incident_log_event(const char *buf, uint event_len, + const Format_description_log_event *descr_event); + + virtual ~Incident_log_event(); + +#ifdef MYSQL_CLIENT + virtual void print(FILE *file, PRINT_EVENT_INFO *print_event_info); +#endif + +#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION) + virtual int do_apply_event(Relay_log_info const *rli); +#endif + + virtual bool write_data_header(IO_CACHE *file); + virtual bool write_data_body(IO_CACHE *file); + + virtual Log_event_type get_type_code() { return INCIDENT_EVENT; } + + virtual bool is_valid() const + { + return m_incident > INCIDENT_NONE && m_incident < INCIDENT_COUNT; + } + virtual int get_data_size() { + return INCIDENT_HEADER_LEN + 1 + (uint) m_message.length; + } + +private: + const char *description() const; + + Incident m_incident; + LEX_STRING m_message; +}; + +static inline bool copy_event_cache_to_file_and_reinit(IO_CACHE *cache, + FILE *file) +{ + return + my_b_copy_to_file(cache, file) || + reinit_io_cache(cache, WRITE_CACHE, 0, FALSE, TRUE); +} + +#ifdef MYSQL_SERVER +/***************************************************************************** + + Heartbeat Log Event class + + Replication event to ensure to slave that master is alive. + The event is originated by master's dump thread and sent straight to + slave without being logged. Slave itself does not store it in relay log + but rather uses a data for immediate checks and throws away the event. + + Two members of the class log_ident and Log_event::log_pos comprise + @see the event_coordinates instance. The coordinates that a heartbeat + instance carries correspond to the last event master has sent from + its binlog. + + ****************************************************************************/ +class Heartbeat_log_event: public Log_event +{ +public: + Heartbeat_log_event(const char* buf, uint event_len, + const Format_description_log_event* description_event); + Log_event_type get_type_code() { return HEARTBEAT_LOG_EVENT; } + bool is_valid() const + { + return (log_ident != NULL && + log_pos >= BIN_LOG_HEADER_SIZE); + } + const char * get_log_ident() { return log_ident; } + uint get_ident_len() { return ident_len; } + +private: + const char* log_ident; + uint ident_len; +}; + +/** + The function is called by slave applier in case there are + active table filtering rules to force gathering events associated + with Query-log-event into an array to execute + them once the fate of the Query is determined for execution. +*/ +bool slave_execute_deferred_events(THD *thd); +#endif + +int append_query_string(THD *thd, CHARSET_INFO *csinfo, + String const *from, String *to); + +bool rpl_get_position_info(const char **log_file_name, ulonglong *log_pos, + const char **group_relay_log_name, + ulonglong *relay_log_pos); + +bool event_checksum_test(uchar *buf, ulong event_len, uint8 alg); +uint8 get_checksum_alg(const char* buf, ulong len); +extern TYPELIB binlog_checksum_typelib; + +#ifndef MYSQL_CLIENT +/** + The function is called by slave applier in case there are + active table filtering rules to force gathering events associated + with Query-log-event into an array to execute + them once the fate of the Query is determined for execution. +*/ +bool slave_execute_deferred_events(THD *thd); +#endif + +/** + @} (end of group Replication) +*/ + +#endif /* _log_event_h */ diff --git a/database/include/mysql/private/log_event_old.h b/database/include/mysql/private/log_event_old.h new file mode 100644 index 0000000..73a541d --- /dev/null +++ b/database/include/mysql/private/log_event_old.h @@ -0,0 +1,569 @@ +/* Copyright (c) 2007, 2013, Oracle and/or its affiliates. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef LOG_EVENT_OLD_H +#define LOG_EVENT_OLD_H + +/* + Need to include this file at the proper position of log_event.h + */ + + +/** + @file + + @brief This file contains classes handling old formats of row-based + binlog events. +*/ +/* + Around 2007-10-31, I made these classes completely separated from + the new classes (before, there was a complex class hierarchy + involving multiple inheritance; see BUG#31581), by simply copying + and pasting the entire contents of Rows_log_event into + Old_rows_log_event and the entire contents of + {Write|Update|Delete}_rows_log_event into + {Write|Update|Delete}_rows_log_event_old. For clarity, I will keep + the comments marking which code was cut-and-pasted for some time. + With the classes collapsed into one, there is probably some + redundancy (maybe some methods can be simplified and/or removed), + but we keep them this way for now. /Sven +*/ + + +/** + @class Old_rows_log_event + + Base class for the three types of row-based events + {Write|Update|Delete}_row_log_event_old, with event type codes + PRE_GA_{WRITE|UPDATE|DELETE}_ROWS_EVENT. These events are never + created any more, except when reading a relay log created by an old + server. +*/ +class Old_rows_log_event : public Log_event +{ + /********** BEGIN CUT & PASTE FROM Rows_log_event **********/ +public: + /** + Enumeration of the errors that can be returned. + */ + enum enum_error + { + ERR_OPEN_FAILURE = -1, /**< Failure to open table */ + ERR_OK = 0, /**< No error */ + ERR_TABLE_LIMIT_EXCEEDED = 1, /**< No more room for tables */ + ERR_OUT_OF_MEM = 2, /**< Out of memory */ + ERR_BAD_TABLE_DEF = 3, /**< Table definition does not match */ + ERR_RBR_TO_SBR = 4 /**< daisy-chanining RBR to SBR not allowed */ + }; + + /* + These definitions allow you to combine the flags into an + appropriate flag set using the normal bitwise operators. The + implicit conversion from an enum-constant to an integer is + accepted by the compiler, which is then used to set the real set + of flags. + */ + enum enum_flag + { + /* Last event of a statement */ + STMT_END_F = (1U << 0), + + /* Value of the OPTION_NO_FOREIGN_KEY_CHECKS flag in thd->options */ + NO_FOREIGN_KEY_CHECKS_F = (1U << 1), + + /* Value of the OPTION_RELAXED_UNIQUE_CHECKS flag in thd->options */ + RELAXED_UNIQUE_CHECKS_F = (1U << 2), + + /** + Indicates that rows in this event are complete, that is contain + values for all columns of the table. + */ + COMPLETE_ROWS_F = (1U << 3) + }; + + typedef uint16 flag_set; + + /* Special constants representing sets of flags */ + enum + { + RLE_NO_FLAGS = 0U + }; + + virtual ~Old_rows_log_event(); + + void set_flags(flag_set flags_arg) { m_flags |= flags_arg; } + void clear_flags(flag_set flags_arg) { m_flags &= ~flags_arg; } + flag_set get_flags(flag_set flags_arg) const { return m_flags & flags_arg; } + +#if !defined(MYSQL_CLIENT) && defined(HAVE_REPLICATION) + virtual void pack_info(THD *thd, Protocol *protocol); +#endif + +#ifdef MYSQL_CLIENT + /* not for direct call, each derived has its own ::print() */ + virtual void print(FILE *file, PRINT_EVENT_INFO *print_event_info)= 0; +#endif + +#ifndef MYSQL_CLIENT + int add_row_data(uchar *data, size_t length) + { + return do_add_row_data(data,length); + } +#endif + + /* Member functions to implement superclass interface */ + virtual int get_data_size(); + + MY_BITMAP const *get_cols() const { return &m_cols; } + size_t get_width() const { return m_width; } + ulong get_table_id() const { return m_table_id; } + +#ifndef MYSQL_CLIENT + virtual bool write_data_header(IO_CACHE *file); + virtual bool write_data_body(IO_CACHE *file); + virtual const char *get_db() { return m_table->s->db.str; } +#endif + /* + Check that malloc() succeeded in allocating memory for the rows + buffer and the COLS vector. Checking that an Update_rows_log_event_old + is valid is done in the Update_rows_log_event_old::is_valid() + function. + */ + virtual bool is_valid() const + { + return m_rows_buf && m_cols.bitmap; + } + + uint m_row_count; /* The number of rows added to the event */ + +protected: + /* + The constructors are protected since you're supposed to inherit + this class, not create instances of this class. + */ +#ifndef MYSQL_CLIENT + Old_rows_log_event(THD*, TABLE*, ulong table_id, + MY_BITMAP const *cols, bool is_transactional); +#endif + Old_rows_log_event(const char *row_data, uint event_len, + Log_event_type event_type, + const Format_description_log_event *description_event); + +#ifdef MYSQL_CLIENT + void print_helper(FILE *, PRINT_EVENT_INFO *, char const *const name); +#endif + +#ifndef MYSQL_CLIENT + virtual int do_add_row_data(uchar *data, size_t length); +#endif + +#ifndef MYSQL_CLIENT + TABLE *m_table; /* The table the rows belong to */ +#endif + ulong m_table_id; /* Table ID */ + MY_BITMAP m_cols; /* Bitmap denoting columns available */ + ulong m_width; /* The width of the columns bitmap */ + + ulong m_master_reclength; /* Length of record on master side */ + + /* Bit buffers in the same memory as the class */ + uint32 m_bitbuf[128/(sizeof(uint32)*8)]; + uint32 m_bitbuf_ai[128/(sizeof(uint32)*8)]; + + uchar *m_rows_buf; /* The rows in packed format */ + uchar *m_rows_cur; /* One-after the end of the data */ + uchar *m_rows_end; /* One-after the end of the allocated space */ + + flag_set m_flags; /* Flags for row-level events */ + + /* helper functions */ + +#if !defined(MYSQL_CLIENT) && defined(HAVE_REPLICATION) + const uchar *m_curr_row; /* Start of the row being processed */ + const uchar *m_curr_row_end; /* One-after the end of the current row */ + uchar *m_key; /* Buffer to keep key value during searches */ + + int find_row(const Relay_log_info *const); + int write_row(const Relay_log_info *const, const bool); + + // Unpack the current row into m_table->record[0] + int unpack_current_row(const Relay_log_info *const rli) + { + DBUG_ASSERT(m_table); + ASSERT_OR_RETURN_ERROR(m_curr_row < m_rows_end, HA_ERR_CORRUPT_EVENT); + return ::unpack_row(rli, m_table, m_width, m_curr_row, &m_cols, + &m_curr_row_end, &m_master_reclength, m_rows_end); + } +#endif + +private: + +#if !defined(MYSQL_CLIENT) && defined(HAVE_REPLICATION) + virtual int do_apply_event(Relay_log_info const *rli); + virtual int do_update_pos(Relay_log_info *rli); + virtual enum_skip_reason do_shall_skip(Relay_log_info *rli); + + /* + Primitive to prepare for a sequence of row executions. + + DESCRIPTION + + Before doing a sequence of do_prepare_row() and do_exec_row() + calls, this member function should be called to prepare for the + entire sequence. Typically, this member function will allocate + space for any buffers that are needed for the two member + functions mentioned above. + + RETURN VALUE + + The member function will return 0 if all went OK, or a non-zero + error code otherwise. + */ + virtual + int do_before_row_operations(const Slave_reporting_capability *const log) = 0; + + /* + Primitive to clean up after a sequence of row executions. + + DESCRIPTION + + After doing a sequence of do_prepare_row() and do_exec_row(), + this member function should be called to clean up and release + any allocated buffers. + + The error argument, if non-zero, indicates an error which happened during + row processing before this function was called. In this case, even if + function is successful, it should return the error code given in the argument. + */ + virtual + int do_after_row_operations(const Slave_reporting_capability *const log, + int error) = 0; + + /* + Primitive to do the actual execution necessary for a row. + + DESCRIPTION + The member function will do the actual execution needed to handle a row. + The row is located at m_curr_row. When the function returns, + m_curr_row_end should point at the next row (one byte after the end + of the current row). + + RETURN VALUE + 0 if execution succeeded, 1 if execution failed. + + */ + virtual int do_exec_row(const Relay_log_info *const rli) = 0; +#endif /* !defined(MYSQL_CLIENT) && defined(HAVE_REPLICATION) */ + + /********** END OF CUT & PASTE FROM Rows_log_event **********/ + protected: + +#if !defined(MYSQL_CLIENT) && defined(HAVE_REPLICATION) + + int do_apply_event(Old_rows_log_event*,const Relay_log_info*); + + /* + Primitive to prepare for a sequence of row executions. + + DESCRIPTION + + Before doing a sequence of do_prepare_row() and do_exec_row() + calls, this member function should be called to prepare for the + entire sequence. Typically, this member function will allocate + space for any buffers that are needed for the two member + functions mentioned above. + + RETURN VALUE + + The member function will return 0 if all went OK, or a non-zero + error code otherwise. + */ + virtual int do_before_row_operations(TABLE *table) = 0; + + /* + Primitive to clean up after a sequence of row executions. + + DESCRIPTION + + After doing a sequence of do_prepare_row() and do_exec_row(), + this member function should be called to clean up and release + any allocated buffers. + */ + virtual int do_after_row_operations(TABLE *table, int error) = 0; + + /* + Primitive to prepare for handling one row in a row-level event. + + DESCRIPTION + + The member function prepares for execution of operations needed for one + row in a row-level event by reading up data from the buffer containing + the row. No specific interpretation of the data is normally done here, + since SQL thread specific data is not available: that data is made + available for the do_exec function. + + A pointer to the start of the next row, or NULL if the preparation + failed. Currently, preparation cannot fail, but don't rely on this + behavior. + + RETURN VALUE + Error code, if something went wrong, 0 otherwise. + */ + virtual int do_prepare_row(THD*, Relay_log_info const*, TABLE*, + uchar const *row_start, + uchar const **row_end) = 0; + + /* + Primitive to do the actual execution necessary for a row. + + DESCRIPTION + The member function will do the actual execution needed to handle a row. + + RETURN VALUE + 0 if execution succeeded, 1 if execution failed. + + */ + virtual int do_exec_row(TABLE *table) = 0; + +#endif /* !defined(MYSQL_CLIENT) && defined(HAVE_REPLICATION) */ +}; + + +/** + @class Write_rows_log_event_old + + Old class for binlog events that write new rows to a table (event + type code PRE_GA_WRITE_ROWS_EVENT). Such events are never produced + by this version of the server, but they may be read from a relay log + created by an old server. New servers create events of class + Write_rows_log_event (event type code WRITE_ROWS_EVENT) instead. +*/ +class Write_rows_log_event_old : public Old_rows_log_event +{ + /********** BEGIN CUT & PASTE FROM Write_rows_log_event **********/ +public: +#if !defined(MYSQL_CLIENT) + Write_rows_log_event_old(THD*, TABLE*, ulong table_id, + MY_BITMAP const *cols, bool is_transactional); +#endif +#ifdef HAVE_REPLICATION + Write_rows_log_event_old(const char *buf, uint event_len, + const Format_description_log_event *description_event); +#endif +#if !defined(MYSQL_CLIENT) + static bool binlog_row_logging_function(THD *thd, TABLE *table, + bool is_transactional, + MY_BITMAP *cols, + uint fields, + const uchar *before_record + __attribute__((unused)), + const uchar *after_record) + { + return thd->binlog_write_row(table, is_transactional, + cols, fields, after_record); + } +#endif + +private: +#ifdef MYSQL_CLIENT + void print(FILE *file, PRINT_EVENT_INFO *print_event_info); +#endif + +#if !defined(MYSQL_CLIENT) && defined(HAVE_REPLICATION) + virtual int do_before_row_operations(const Slave_reporting_capability *const); + virtual int do_after_row_operations(const Slave_reporting_capability *const,int); + virtual int do_exec_row(const Relay_log_info *const); +#endif + /********** END OF CUT & PASTE FROM Write_rows_log_event **********/ + +public: + enum + { + /* Support interface to THD::binlog_prepare_pending_rows_event */ + TYPE_CODE = PRE_GA_WRITE_ROWS_EVENT + }; + +private: + virtual Log_event_type get_type_code() { return (Log_event_type)TYPE_CODE; } + +#if !defined(MYSQL_CLIENT) && defined(HAVE_REPLICATION) + // use old definition of do_apply_event() + virtual int do_apply_event(const Relay_log_info *rli) + { return Old_rows_log_event::do_apply_event(this,rli); } + + // primitives for old version of do_apply_event() + virtual int do_before_row_operations(TABLE *table); + virtual int do_after_row_operations(TABLE *table, int error); + virtual int do_prepare_row(THD*, Relay_log_info const*, TABLE*, + uchar const *row_start, uchar const **row_end); + virtual int do_exec_row(TABLE *table); + +#endif +}; + + +/** + @class Update_rows_log_event_old + + Old class for binlog events that modify existing rows to a table + (event type code PRE_GA_UPDATE_ROWS_EVENT). Such events are never + produced by this version of the server, but they may be read from a + relay log created by an old server. New servers create events of + class Update_rows_log_event (event type code UPDATE_ROWS_EVENT) + instead. +*/ +class Update_rows_log_event_old : public Old_rows_log_event +{ + /********** BEGIN CUT & PASTE FROM Update_rows_log_event **********/ +public: +#ifndef MYSQL_CLIENT + Update_rows_log_event_old(THD*, TABLE*, ulong table_id, + MY_BITMAP const *cols, + bool is_transactional); +#endif + +#ifdef HAVE_REPLICATION + Update_rows_log_event_old(const char *buf, uint event_len, + const Format_description_log_event *description_event); +#endif + +#if !defined(MYSQL_CLIENT) + static bool binlog_row_logging_function(THD *thd, TABLE *table, + bool is_transactional, + MY_BITMAP *cols, + uint fields, + const uchar *before_record, + const uchar *after_record) + { + return thd->binlog_update_row(table, is_transactional, + cols, fields, before_record, after_record); + } +#endif + +protected: +#ifdef MYSQL_CLIENT + void print(FILE *file, PRINT_EVENT_INFO *print_event_info); +#endif + +#if !defined(MYSQL_CLIENT) && defined(HAVE_REPLICATION) + virtual int do_before_row_operations(const Slave_reporting_capability *const); + virtual int do_after_row_operations(const Slave_reporting_capability *const,int); + virtual int do_exec_row(const Relay_log_info *const); +#endif /* !defined(MYSQL_CLIENT) && defined(HAVE_REPLICATION) */ + /********** END OF CUT & PASTE FROM Update_rows_log_event **********/ + + uchar *m_after_image, *m_memory; + +public: + enum + { + /* Support interface to THD::binlog_prepare_pending_rows_event */ + TYPE_CODE = PRE_GA_UPDATE_ROWS_EVENT + }; + +private: + virtual Log_event_type get_type_code() { return (Log_event_type)TYPE_CODE; } + +#if !defined(MYSQL_CLIENT) && defined(HAVE_REPLICATION) + // use old definition of do_apply_event() + virtual int do_apply_event(const Relay_log_info *rli) + { return Old_rows_log_event::do_apply_event(this,rli); } + + // primitives for old version of do_apply_event() + virtual int do_before_row_operations(TABLE *table); + virtual int do_after_row_operations(TABLE *table, int error); + virtual int do_prepare_row(THD*, Relay_log_info const*, TABLE*, + uchar const *row_start, uchar const **row_end); + virtual int do_exec_row(TABLE *table); +#endif /* !defined(MYSQL_CLIENT) && defined(HAVE_REPLICATION) */ +}; + + +/** + @class Delete_rows_log_event_old + + Old class for binlog events that delete existing rows from a table + (event type code PRE_GA_DELETE_ROWS_EVENT). Such events are never + produced by this version of the server, but they may be read from a + relay log created by an old server. New servers create events of + class Delete_rows_log_event (event type code DELETE_ROWS_EVENT) + instead. +*/ +class Delete_rows_log_event_old : public Old_rows_log_event +{ + /********** BEGIN CUT & PASTE FROM Update_rows_log_event **********/ +public: +#ifndef MYSQL_CLIENT + Delete_rows_log_event_old(THD*, TABLE*, ulong, + MY_BITMAP const *cols, bool is_transactional); +#endif +#ifdef HAVE_REPLICATION + Delete_rows_log_event_old(const char *buf, uint event_len, + const Format_description_log_event *description_event); +#endif +#if !defined(MYSQL_CLIENT) + static bool binlog_row_logging_function(THD *thd, TABLE *table, + bool is_transactional, + MY_BITMAP *cols, + uint fields, + const uchar *before_record, + const uchar *after_record + __attribute__((unused))) + { + return thd->binlog_delete_row(table, is_transactional, + cols, fields, before_record); + } +#endif + +protected: +#ifdef MYSQL_CLIENT + void print(FILE *file, PRINT_EVENT_INFO *print_event_info); +#endif + +#if !defined(MYSQL_CLIENT) && defined(HAVE_REPLICATION) + virtual int do_before_row_operations(const Slave_reporting_capability *const); + virtual int do_after_row_operations(const Slave_reporting_capability *const,int); + virtual int do_exec_row(const Relay_log_info *const); +#endif + /********** END CUT & PASTE FROM Delete_rows_log_event **********/ + + uchar *m_after_image, *m_memory; + +public: + enum + { + /* Support interface to THD::binlog_prepare_pending_rows_event */ + TYPE_CODE = PRE_GA_DELETE_ROWS_EVENT + }; + +private: + virtual Log_event_type get_type_code() { return (Log_event_type)TYPE_CODE; } + +#if !defined(MYSQL_CLIENT) && defined(HAVE_REPLICATION) + // use old definition of do_apply_event() + virtual int do_apply_event(const Relay_log_info *rli) + { return Old_rows_log_event::do_apply_event(this,rli); } + + // primitives for old version of do_apply_event() + virtual int do_before_row_operations(TABLE *table); + virtual int do_after_row_operations(TABLE *table, int error); + virtual int do_prepare_row(THD*, Relay_log_info const*, TABLE*, + uchar const *row_start, uchar const **row_end); + virtual int do_exec_row(TABLE *table); +#endif +}; + + +#endif diff --git a/database/include/mysql/private/log_slow.h b/database/include/mysql/private/log_slow.h new file mode 100644 index 0000000..8436309 --- /dev/null +++ b/database/include/mysql/private/log_slow.h @@ -0,0 +1,34 @@ +/* Copyright (C) 2009, 2017, MariaDB Corporation. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 or later of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* Defining what to log to slow log */ + +#define LOG_SLOW_VERBOSITY_INIT 0 +#define LOG_SLOW_VERBOSITY_INNODB (1U << 0) +#define LOG_SLOW_VERBOSITY_QUERY_PLAN (1U << 1) + +#define QPLAN_INIT QPLAN_QC_NO + +#define QPLAN_ADMIN (1U << 0) +#define QPLAN_FILESORT (1U << 1) +#define QPLAN_FILESORT_DISK (1U << 2) +#define QPLAN_FULL_JOIN (1U << 3) +#define QPLAN_FULL_SCAN (1U << 4) +#define QPLAN_QC (1U << 5) +#define QPLAN_QC_NO (1U << 6) +#define QPLAN_TMP_DISK (1U << 7) +#define QPLAN_TMP_TABLE (1U << 8) +/* ... */ +#define QPLAN_MAX (1U << 31) /* reserved as placeholder */ diff --git a/database/include/mysql/private/maria.h b/database/include/mysql/private/maria.h new file mode 100644 index 0000000..b091c88 --- /dev/null +++ b/database/include/mysql/private/maria.h @@ -0,0 +1,412 @@ +/* Copyright (C) 2006-2008 MySQL AB, 2008-2009 Sun Microsystems, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* This file should be included when using maria functions */ + +#ifndef _maria_h +#define _maria_h +#ifdef __cplusplus +extern "C" { +#endif +#include +#include +#include +#include "my_compare.h" +#include "ft_global.h" +#include +#include + +#define MARIA_CANNOT_ROLLBACK + +/* + Limit max keys according to HA_MAX_POSSIBLE_KEY; See myisamchk.h for details +*/ + +#if MAX_INDEXES > HA_MAX_POSSIBLE_KEY +#define MARIA_MAX_KEY HA_MAX_POSSIBLE_KEY /* Max allowed keys */ +#else +#define MARIA_MAX_KEY MAX_INDEXES /* Max allowed keys */ +#endif + +#define MARIA_NAME_IEXT ".MAI" +#define MARIA_NAME_DEXT ".MAD" +/* Max extra space to use when sorting keys */ +#define MARIA_MAX_TEMP_LENGTH 2*1024L*1024L*1024L +/* Possible values for maria_block_size (must be power of 2) */ +#define MARIA_KEY_BLOCK_LENGTH 8192 /* default key block length */ +#define MARIA_MIN_KEY_BLOCK_LENGTH 1024 /* Min key block length */ +#define MARIA_MAX_KEY_BLOCK_LENGTH 32768 +/* Minimal page cache when we only want to be able to scan a table */ +#define MARIA_MIN_PAGE_CACHE_SIZE (8192L*16L) + +/* + In the following macros '_keyno_' is 0 .. keys-1. + If there can be more keys than bits in the key_map, the highest bit + is for all upper keys. They cannot be switched individually. + This means that clearing of high keys is ignored, setting one high key + sets all high keys. +*/ +#define MARIA_KEYMAP_BITS (8 * SIZEOF_LONG_LONG) +#define MARIA_KEYMAP_HIGH_MASK (ULL(1) << (MARIA_KEYMAP_BITS - 1)) +#define maria_get_mask_all_keys_active(_keys_) \ + (((_keys_) < MARIA_KEYMAP_BITS) ? \ + ((ULL(1) << (_keys_)) - ULL(1)) : \ + (~ ULL(0))) +#if MARIA_MAX_KEY > MARIA_KEYMAP_BITS +#define maria_is_key_active(_keymap_,_keyno_) \ + (((_keyno_) < MARIA_KEYMAP_BITS) ? \ + test((_keymap_) & (ULL(1) << (_keyno_))) : \ + test((_keymap_) & MARIA_KEYMAP_HIGH_MASK)) +#define maria_set_key_active(_keymap_,_keyno_) \ + (_keymap_)|= (((_keyno_) < MARIA_KEYMAP_BITS) ? \ + (ULL(1) << (_keyno_)) : \ + MARIA_KEYMAP_HIGH_MASK) +#define maria_clear_key_active(_keymap_,_keyno_) \ + (_keymap_)&= (((_keyno_) < MARIA_KEYMAP_BITS) ? \ + (~ (ULL(1) << (_keyno_))) : \ + (~ (ULL(0))) /*ignore*/ ) +#else +#define maria_is_key_active(_keymap_,_keyno_) \ + test((_keymap_) & (ULL(1) << (_keyno_))) +#define maria_set_key_active(_keymap_,_keyno_) \ + (_keymap_)|= (ULL(1) << (_keyno_)) +#define maria_clear_key_active(_keymap_,_keyno_) \ + (_keymap_)&= (~ (ULL(1) << (_keyno_))) +#endif +#define maria_is_any_key_active(_keymap_) \ + test((_keymap_)) +#define maria_is_all_keys_active(_keymap_,_keys_) \ + ((_keymap_) == maria_get_mask_all_keys_active(_keys_)) +#define maria_set_all_keys_active(_keymap_,_keys_) \ + (_keymap_)= maria_get_mask_all_keys_active(_keys_) +#define maria_clear_all_keys_active(_keymap_) \ + (_keymap_)= 0 +#define maria_intersect_keys_active(_to_,_from_) \ + (_to_)&= (_from_) +#define maria_is_any_intersect_keys_active(_keymap1_,_keys_,_keymap2_) \ + ((_keymap1_) & (_keymap2_) & \ + maria_get_mask_all_keys_active(_keys_)) +#define maria_copy_keys_active(_to_,_maxkeys_,_from_) \ + (_to_)= (maria_get_mask_all_keys_active(_maxkeys_) & \ + (_from_)) + + /* Param to/from maria_info */ + +typedef ulonglong MARIA_RECORD_POS; + +typedef struct st_maria_info +{ + ha_rows records; /* Records in database */ + ha_rows deleted; /* Deleted records in database */ + MARIA_RECORD_POS recpos; /* Pos for last used record */ + MARIA_RECORD_POS newrecpos; /* Pos if we write new record */ + MARIA_RECORD_POS dup_key_pos; /* Position to record with dup key */ + my_off_t data_file_length; /* Length of data file */ + my_off_t max_data_file_length, index_file_length; + my_off_t max_index_file_length, delete_length; + ulonglong auto_increment; + ulonglong key_map; /* Which keys are used */ + time_t create_time; /* When table was created */ + time_t check_time; + time_t update_time; + ulong record_offset; + double *rec_per_key; /* for sql optimizing */ + ulong reclength; /* Recordlength */ + ulong mean_reclength; /* Mean recordlength (if packed) */ + char *data_file_name, *index_file_name; + enum data_file_type data_file_type; + uint keys; /* Number of keys in use */ + uint options; /* HA_OPTION_... used */ + uint reflength; + int errkey, /* With key was dupplicated on err */ + sortkey; /* clustered by this key */ + File filenr; /* (uniq) filenr for datafile */ +} MARIA_INFO; + + +typedef struct st_maria_create_info +{ + const char *index_file_name, *data_file_name; /* If using symlinks */ + ha_rows max_rows; + ha_rows reloc_rows; + ulonglong auto_increment; + ulonglong data_file_length; + ulonglong key_file_length; + /* Size of null bitmap at start of row */ + uint null_bytes; + uint old_options; + enum data_file_type org_data_file_type; + uint8 language; + my_bool with_auto_increment, transactional; +} MARIA_CREATE_INFO; + +struct st_maria_share; +struct st_maria_handler; /* For referense */ +typedef struct st_maria_handler MARIA_HA; +struct st_maria_s_param; +struct st_maria_keydef; +struct st_maria_page; + +typedef struct st_maria_key /* Internal info about a key */ +{ + uchar *data; /* Data for key */ + struct st_maria_keydef *keyinfo; /* Definition for key */ + uint data_length; /* Length of key data */ + uint ref_length; /* record ref + transid */ + uint32 flag; /* 0 or SEARCH_PART_KEY */ +} MARIA_KEY; + + +typedef struct st_maria_keydef /* Key definition with open & info */ +{ + struct st_maria_share *share; /* Pointer to base (set in open) */ + mysql_rwlock_t root_lock; /* locking of tree */ + uint16 keysegs; /* Number of key-segment */ + uint16 flag; /* NOSAME, PACK_USED */ + + uint8 key_alg; /* BTREE, RTREE */ + uint8 key_nr; /* key number (auto) */ + uint16 block_length; /* Length of keyblock (auto) */ + uint16 underflow_block_length; /* When to execute underflow */ + uint16 keylength; /* Tot length of keyparts (auto) */ + uint16 minlength; /* min length of (packed) key (auto) */ + uint16 maxlength; /* max length of (packed) key (auto) */ + uint32 write_comp_flag; /* compare flag for write key (auto) */ + uint32 version; /* For concurrent read/write */ + uint32 ftkey_nr; /* full-text index number */ + + HA_KEYSEG *seg, *end; + struct st_mysql_ftparser *parser; /* Fulltext [pre]parser */ + int (*bin_search)(const MARIA_KEY *key, const struct st_maria_page *page, + uint32 comp_flag, uchar **ret_pos, uchar *buff, + my_bool *was_last_key); + uint (*get_key)(MARIA_KEY *key, uint page_flag, uint nod_flag, + uchar **page); + uchar *(*skip_key)(MARIA_KEY *key, uint page_flag, uint nod_flag, + uchar *page); + int (*pack_key)(const MARIA_KEY *key, uint nod_flag, + uchar *next_key, uchar *org_key, uchar *prev_key, + struct st_maria_s_param *s_temp); + void (*store_key)(struct st_maria_keydef *keyinfo, uchar *key_pos, + struct st_maria_s_param *s_temp); + my_bool (*ck_insert)(MARIA_HA *inf, MARIA_KEY *key); + my_bool (*ck_delete)(MARIA_HA *inf, MARIA_KEY *klen); + MARIA_KEY *(*make_key)(MARIA_HA *info, MARIA_KEY *int_key, uint keynr, + uchar *key, const uchar *record, + MARIA_RECORD_POS filepos, ulonglong trid); +} MARIA_KEYDEF; + + +#define MARIA_UNIQUE_HASH_LENGTH 4 + +typedef struct st_maria_unique_def /* Segment definition of unique */ +{ + uint16 keysegs; /* Number of key-segment */ + uint8 key; /* Mapped to which key */ + uint8 null_are_equal; + HA_KEYSEG *seg, *end; +} MARIA_UNIQUEDEF; + +typedef struct st_maria_decode_tree /* Decode huff-table */ +{ + uint16 *table; + uint quick_table_bits; + uchar *intervalls; +} MARIA_DECODE_TREE; + + +struct st_maria_bit_buff; + +/* + Note that null markers should always be first in a row ! + When creating a column, one should only specify: + type, length, null_bit and null_pos +*/ + +typedef struct st_maria_columndef /* column information */ +{ + enum en_fieldtype type; + uint32 offset; /* Offset to position in row */ + uint16 length; /* length of field */ + uint16 column_nr; + /* Intern variable (size of total storage area for the row) */ + uint16 fill_length; + uint16 null_pos; /* Position for null marker */ + uint16 empty_pos; /* Position for empty marker */ + uint8 null_bit; /* If column may be NULL */ + /* Intern. Set if column should be zero packed (part of empty_bits) */ + uint8 empty_bit; + +#ifndef NOT_PACKED_DATABASES + void(*unpack)(struct st_maria_columndef *rec, + struct st_maria_bit_buff *buff, + uchar *start, uchar *end); + enum en_fieldtype base_type; + uint space_length_bits, pack_type; + MARIA_DECODE_TREE *huff_tree; +#endif +} MARIA_COLUMNDEF; + + +extern ulong maria_block_size, maria_checkpoint_frequency; +extern ulong maria_concurrent_insert; +extern my_bool maria_flush, maria_single_user, maria_page_checksums; +extern my_bool maria_delay_key_write; +extern my_off_t maria_max_temp_length; +extern ulong maria_bulk_insert_tree_size, maria_data_pointer_size; +extern MY_TMPDIR *maria_tmpdir; +/* + This is used to check if a symlink points into the mysql data home, + which is normally forbidden as it can be used to get access to + not privileged data +*/ +extern int (*maria_test_invalid_symlink)(const char *filename); + + /* Prototypes for maria-functions */ + +extern int maria_init(void); +extern void maria_end(void); +extern my_bool maria_upgrade(void); +extern int maria_close(MARIA_HA *file); +extern int maria_delete(MARIA_HA *file, const uchar *buff); +extern MARIA_HA *maria_open(const char *name, int mode, + uint wait_if_locked); +extern MARIA_HA *maria_clone(struct st_maria_share *share, int mode); +extern int maria_panic(enum ha_panic_function function); +extern int maria_rfirst(MARIA_HA *file, uchar *buf, int inx); +extern int maria_rkey(MARIA_HA *file, uchar *buf, int inx, + const uchar *key, key_part_map keypart_map, + enum ha_rkey_function search_flag); +extern int maria_rlast(MARIA_HA *file, uchar *buf, int inx); +extern int maria_rnext(MARIA_HA *file, uchar *buf, int inx); +extern int maria_rnext_same(MARIA_HA *info, uchar *buf); +extern int maria_rprev(MARIA_HA *file, uchar *buf, int inx); +extern int maria_rrnd(MARIA_HA *file, uchar *buf, + MARIA_RECORD_POS pos); +extern int maria_scan_init(MARIA_HA *file); +extern int maria_scan(MARIA_HA *file, uchar *buf); +extern void maria_scan_end(MARIA_HA *file); +extern int maria_rsame(MARIA_HA *file, uchar *record, int inx); +extern int maria_rsame_with_pos(MARIA_HA *file, uchar *record, + int inx, MARIA_RECORD_POS pos); +extern int maria_update(MARIA_HA *file, const uchar *old, + uchar *new_record); +extern int maria_write(MARIA_HA *file, uchar *buff); +extern MARIA_RECORD_POS maria_position(MARIA_HA *file); +extern int maria_status(MARIA_HA *info, MARIA_INFO *x, uint flag); +extern int maria_lock_database(MARIA_HA *file, int lock_type); +extern int maria_create(const char *name, enum data_file_type record_type, + uint keys, MARIA_KEYDEF *keydef, + uint columns, MARIA_COLUMNDEF *columndef, + uint uniques, MARIA_UNIQUEDEF *uniquedef, + MARIA_CREATE_INFO *create_info, uint flags); +extern int maria_delete_table(const char *name); +extern int maria_rename(const char *from, const char *to); +extern int maria_extra(MARIA_HA *file, + enum ha_extra_function function, void *extra_arg); +extern int maria_reset(MARIA_HA *file); +extern ha_rows maria_records_in_range(MARIA_HA *info, int inx, + key_range *min_key, key_range *max_key); +extern int maria_is_changed(MARIA_HA *info); +extern int maria_delete_all_rows(MARIA_HA *info); +extern uint maria_get_pointer_length(ulonglong file_length, uint def); +extern int maria_commit(MARIA_HA *info); +extern int maria_begin(MARIA_HA *info); +extern void maria_disable_logging(MARIA_HA *info); +extern void maria_enable_logging(MARIA_HA *info); + +#define HA_RECOVER_NONE 0 /* No automatic recover */ +#define HA_RECOVER_DEFAULT 1 /* Automatic recover active */ +#define HA_RECOVER_BACKUP 2 /* Make a backupfile on recover */ +#define HA_RECOVER_FORCE 4 /* Recover even if we loose rows */ +#define HA_RECOVER_QUICK 8 /* Don't check rows in data file */ + +#define HA_RECOVER_ANY (HA_RECOVER_DEFAULT | HA_RECOVER_BACKUP | HA_RECOVER_FORCE | HA_RECOVER_QUICK) + +/* this is used to pass to mysql_mariachk_table */ + +#define MARIA_CHK_REPAIR 1 /* equivalent to mariachk -r */ +#define MARIA_CHK_VERIFY 2 /* Verify, run repair if failure */ + +typedef uint maria_bit_type; + +typedef struct st_maria_bit_buff +{ /* Used for packing of record */ + maria_bit_type current_byte; + uint bits; + uchar *pos, *end, *blob_pos, *blob_end; + uint error; +} MARIA_BIT_BUFF; + +/* functions in maria_check */ +void maria_chk_init(HA_CHECK *param); +void maria_chk_init_for_check(HA_CHECK *param, MARIA_HA *info); +int maria_chk_status(HA_CHECK *param, MARIA_HA *info); +int maria_chk_del(HA_CHECK *param, MARIA_HA *info, ulonglong test_flag); +int maria_chk_size(HA_CHECK *param, MARIA_HA *info); +int maria_chk_key(HA_CHECK *param, MARIA_HA *info); +int maria_chk_data_link(HA_CHECK *param, MARIA_HA *info, my_bool extend); +int maria_repair(HA_CHECK *param, MARIA_HA *info, char * name, my_bool); +int maria_sort_index(HA_CHECK *param, MARIA_HA *info, char * name); +int maria_zerofill(HA_CHECK *param, MARIA_HA *info, const char *name); +int maria_repair_by_sort(HA_CHECK *param, MARIA_HA *info, + const char *name, my_bool rep_quick); +int maria_repair_parallel(HA_CHECK *param, register MARIA_HA *info, + const char *name, my_bool rep_quick); +int maria_change_to_newfile(const char *filename, const char *old_ext, + const char *new_ext, time_t backup_time, + myf myflags); +void maria_lock_memory(HA_CHECK *param); +int maria_update_state_info(HA_CHECK *param, MARIA_HA *info, uint update); +void maria_update_key_parts(MARIA_KEYDEF *keyinfo, double *rec_per_key_part, + ulonglong *unique, ulonglong *notnull, + ulonglong records); +int maria_filecopy(HA_CHECK *param, File to, File from, my_off_t start, + my_off_t length, const char *type); +int maria_movepoint(MARIA_HA *info, uchar *record, my_off_t oldpos, + my_off_t newpos, uint prot_key); +int maria_test_if_almost_full(MARIA_HA *info); +int maria_recreate_table(HA_CHECK *param, MARIA_HA **org_info, char *filename); +int maria_disable_indexes(MARIA_HA *info); +int maria_enable_indexes(MARIA_HA *info); +int maria_indexes_are_disabled(MARIA_HA *info); +void maria_disable_non_unique_index(MARIA_HA *info, ha_rows rows); +my_bool maria_test_if_sort_rep(MARIA_HA *info, ha_rows rows, ulonglong key_map, + my_bool force); + +int maria_init_bulk_insert(MARIA_HA *info, size_t cache_size, ha_rows rows); +void maria_flush_bulk_insert(MARIA_HA *info, uint inx); +void maria_end_bulk_insert(MARIA_HA *info); +int maria_preload(MARIA_HA *info, ulonglong key_map, my_bool ignore_leaves); +void maria_versioning(MARIA_HA *info, my_bool versioning); +void maria_ignore_trids(MARIA_HA *info); +uint maria_max_key_length(void); +#define maria_max_key_segments() HA_MAX_KEY_SEG + +/* fulltext functions */ +FT_INFO *maria_ft_init_search(uint,void *, uint, uchar *, size_t, + CHARSET_INFO *, uchar *); + +/* 'Almost-internal' Maria functions */ + +void _ma_update_auto_increment_key(HA_CHECK *param, MARIA_HA *info, + my_bool repair); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/database/include/mysql/private/mdl.h b/database/include/mysql/private/mdl.h new file mode 100644 index 0000000..db76293 --- /dev/null +++ b/database/include/mysql/private/mdl.h @@ -0,0 +1,875 @@ +#ifndef MDL_H +#define MDL_H +/* Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#if defined(__IBMC__) || defined(__IBMCPP__) +/* Further down, "next_in_lock" and "next_in_context" have the same type, + and in "sql_plist.h" this leads to an identical signature, which causes + problems in function overloading. +*/ +#pragma namemangling(v5) +#endif + + +#include "sql_plist.h" +#include +#include +#include +#include + +class THD; + +class MDL_context; +class MDL_lock; +class MDL_ticket; + +/** + Type of metadata lock request. + + @sa Comments for MDL_object_lock::can_grant_lock() and + MDL_scoped_lock::can_grant_lock() for details. +*/ + +enum enum_mdl_type { + /* + An intention exclusive metadata lock. Used only for scoped locks. + Owner of this type of lock can acquire upgradable exclusive locks on + individual objects. + Compatible with other IX locks, but is incompatible with scoped S and + X locks. + */ + MDL_INTENTION_EXCLUSIVE= 0, + /* + A shared metadata lock. + To be used in cases when we are interested in object metadata only + and there is no intention to access object data (e.g. for stored + routines or during preparing prepared statements). + We also mis-use this type of lock for open HANDLERs, since lock + acquired by this statement has to be compatible with lock acquired + by LOCK TABLES ... WRITE statement, i.e. SNRW (We can't get by by + acquiring S lock at HANDLER ... OPEN time and upgrading it to SR + lock for HANDLER ... READ as it doesn't solve problem with need + to abort DML statements which wait on table level lock while having + open HANDLER in the same connection). + To avoid deadlock which may occur when SNRW lock is being upgraded to + X lock for table on which there is an active S lock which is owned by + thread which waits in its turn for table-level lock owned by thread + performing upgrade we have to use thr_abort_locks_for_thread() + facility in such situation. + This problem does not arise for locks on stored routines as we don't + use SNRW locks for them. It also does not arise when S locks are used + during PREPARE calls as table-level locks are not acquired in this + case. + */ + MDL_SHARED, + /* + A high priority shared metadata lock. + Used for cases when there is no intention to access object data (i.e. + data in the table). + "High priority" means that, unlike other shared locks, it is granted + ignoring pending requests for exclusive locks. Intended for use in + cases when we only need to access metadata and not data, e.g. when + filling an INFORMATION_SCHEMA table. + Since SH lock is compatible with SNRW lock, the connection that + holds SH lock lock should not try to acquire any kind of table-level + or row-level lock, as this can lead to a deadlock. Moreover, after + acquiring SH lock, the connection should not wait for any other + resource, as it might cause starvation for X locks and a potential + deadlock during upgrade of SNW or SNRW to X lock (e.g. if the + upgrading connection holds the resource that is being waited for). + */ + MDL_SHARED_HIGH_PRIO, + /* + A shared metadata lock for cases when there is an intention to read data + from table. + A connection holding this kind of lock can read table metadata and read + table data (after acquiring appropriate table and row-level locks). + This means that one can only acquire TL_READ, TL_READ_NO_INSERT, and + similar table-level locks on table if one holds SR MDL lock on it. + To be used for tables in SELECTs, subqueries, and LOCK TABLE ... READ + statements. + */ + MDL_SHARED_READ, + /* + A shared metadata lock for cases when there is an intention to modify + (and not just read) data in the table. + A connection holding SW lock can read table metadata and modify or read + table data (after acquiring appropriate table and row-level locks). + To be used for tables to be modified by INSERT, UPDATE, DELETE + statements, but not LOCK TABLE ... WRITE or DDL). Also taken by + SELECT ... FOR UPDATE. + */ + MDL_SHARED_WRITE, + /* + An upgradable shared metadata lock which blocks all attempts to update + table data, allowing reads. + A connection holding this kind of lock can read table metadata and read + table data. + Can be upgraded to X metadata lock. + Note, that since this type of lock is not compatible with SNRW or SW + lock types, acquiring appropriate engine-level locks for reading + (TL_READ* for MyISAM, shared row locks in InnoDB) should be + contention-free. + To be used for the first phase of ALTER TABLE, when copying data between + tables, to allow concurrent SELECTs from the table, but not UPDATEs. + */ + MDL_SHARED_NO_WRITE, + /* + An upgradable shared metadata lock which allows other connections + to access table metadata, but not data. + It blocks all attempts to read or update table data, while allowing + INFORMATION_SCHEMA and SHOW queries. + A connection holding this kind of lock can read table metadata modify and + read table data. + Can be upgraded to X metadata lock. + To be used for LOCK TABLES WRITE statement. + Not compatible with any other lock type except S and SH. + */ + MDL_SHARED_NO_READ_WRITE, + /* + An exclusive metadata lock. + A connection holding this lock can modify both table's metadata and data. + No other type of metadata lock can be granted while this lock is held. + To be used for CREATE/DROP/RENAME TABLE statements and for execution of + certain phases of other DDL statements. + */ + MDL_EXCLUSIVE, + /* This should be the last !!! */ + MDL_TYPE_END}; + + +/** Duration of metadata lock. */ + +enum enum_mdl_duration { + /** + Locks with statement duration are automatically released at the end + of statement or transaction. + */ + MDL_STATEMENT= 0, + /** + Locks with transaction duration are automatically released at the end + of transaction. + */ + MDL_TRANSACTION, + /** + Locks with explicit duration survive the end of statement and transaction. + They have to be released explicitly by calling MDL_context::release_lock(). + */ + MDL_EXPLICIT, + /* This should be the last ! */ + MDL_DURATION_END }; + + +/** Maximal length of key for metadata locking subsystem. */ +#define MAX_MDLKEY_LENGTH (1 + NAME_LEN + 1 + NAME_LEN + 1) + + +/** + Metadata lock object key. + + A lock is requested or granted based on a fully qualified name and type. + E.g. They key for a table consists of <0 (=table)>++. + Elsewhere in the comments this triple will be referred to simply as "key" + or "name". +*/ + +class MDL_key +{ +public: + /** + Object namespaces. + Sic: when adding a new member to this enum make sure to + update m_namespace_to_wait_state_name array in mdl.cc! + + Different types of objects exist in different namespaces + - TABLE is for tables and views. + - FUNCTION is for stored functions. + - PROCEDURE is for stored procedures. + - TRIGGER is for triggers. + - EVENT is for event scheduler events + Note that although there isn't metadata locking on triggers, + it's necessary to have a separate namespace for them since + MDL_key is also used outside of the MDL subsystem. + */ + enum enum_mdl_namespace { GLOBAL=0, + SCHEMA, + TABLE, + FUNCTION, + PROCEDURE, + TRIGGER, + EVENT, + COMMIT, + /* This should be the last ! */ + NAMESPACE_END }; + + const uchar *ptr() const { return (uchar*) m_ptr; } + uint length() const { return m_length; } + + const char *db_name() const { return m_ptr + 1; } + uint db_name_length() const { return m_db_name_length; } + + const char *name() const { return m_ptr + m_db_name_length + 2; } + uint name_length() const { return m_length - m_db_name_length - 3; } + + enum_mdl_namespace mdl_namespace() const + { return (enum_mdl_namespace)(m_ptr[0]); } + + /** + Construct a metadata lock key from a triplet (mdl_namespace, + database and name). + + @remark The key for a table is ++
+ + @param mdl_namespace Id of namespace of object to be locked + @param db Name of database to which the object belongs + @param name Name of of the object + @param key Where to store the the MDL key. + */ + void mdl_key_init(enum_mdl_namespace mdl_namespace, + const char *db, const char *name) + { + m_ptr[0]= (char) mdl_namespace; + /* + It is responsibility of caller to ensure that db and object names + are not longer than NAME_LEN. Still we play safe and try to avoid + buffer overruns. + */ + m_db_name_length= (uint16) (strmake(m_ptr + 1, db, NAME_LEN) - m_ptr - 1); + m_length= (uint16) (strmake(m_ptr + m_db_name_length + 2, name, NAME_LEN) - + m_ptr + 1); + } + void mdl_key_init(const MDL_key *rhs) + { + memcpy(m_ptr, rhs->m_ptr, rhs->m_length); + m_length= rhs->m_length; + m_db_name_length= rhs->m_db_name_length; + } + bool is_equal(const MDL_key *rhs) const + { + return (m_length == rhs->m_length && + memcmp(m_ptr, rhs->m_ptr, m_length) == 0); + } + /** + Compare two MDL keys lexicographically. + */ + int cmp(const MDL_key *rhs) const + { + /* + The key buffer is always '\0'-terminated. Since key + character set is utf-8, we can safely assume that no + character starts with a zero byte. + */ + return memcmp(m_ptr, rhs->m_ptr, min(m_length, rhs->m_length)); + } + + MDL_key(const MDL_key *rhs) + { + mdl_key_init(rhs); + } + MDL_key(enum_mdl_namespace namespace_arg, + const char *db_arg, const char *name_arg) + { + mdl_key_init(namespace_arg, db_arg, name_arg); + } + MDL_key() {} /* To use when part of MDL_request. */ + + /** + Get thread state name to be used in case when we have to + wait on resource identified by key. + */ + const char * get_wait_state_name() const + { + return m_namespace_to_wait_state_name[(int)mdl_namespace()]; + } + +private: + uint16 m_length; + uint16 m_db_name_length; + char m_ptr[MAX_MDLKEY_LENGTH]; + static const char * m_namespace_to_wait_state_name[NAMESPACE_END]; +private: + MDL_key(const MDL_key &); /* not implemented */ + MDL_key &operator=(const MDL_key &); /* not implemented */ +}; + + +/** + A pending metadata lock request. + + A lock request and a granted metadata lock are represented by + different classes because they have different allocation + sites and hence different lifetimes. The allocation of lock requests is + controlled from outside of the MDL subsystem, while allocation of granted + locks (tickets) is controlled within the MDL subsystem. + + MDL_request is a C structure, you don't need to call a constructor + or destructor for it. +*/ + +class MDL_request +{ +public: + /** Type of metadata lock. */ + enum enum_mdl_type type; + /** Duration for requested lock. */ + enum enum_mdl_duration duration; + + /** + Pointers for participating in the list of lock requests for this context. + */ + MDL_request *next_in_list; + MDL_request **prev_in_list; + /** + Pointer to the lock ticket object for this lock request. + Valid only if this lock request is satisfied. + */ + MDL_ticket *ticket; + + /** A lock is requested based on a fully qualified name and type. */ + MDL_key key; + +public: + static void *operator new(size_t size, MEM_ROOT *mem_root) throw () + { return alloc_root(mem_root, size); } + static void operator delete(void *ptr, MEM_ROOT *mem_root) {} + + void init(MDL_key::enum_mdl_namespace namespace_arg, + const char *db_arg, const char *name_arg, + enum_mdl_type mdl_type_arg, + enum_mdl_duration mdl_duration_arg); + void init(const MDL_key *key_arg, enum_mdl_type mdl_type_arg, + enum_mdl_duration mdl_duration_arg); + /** Set type of lock request. Can be only applied to pending locks. */ + inline void set_type(enum_mdl_type type_arg) + { + DBUG_ASSERT(ticket == NULL); + type= type_arg; + } + + /* + This is to work around the ugliness of TABLE_LIST + compiler-generated assignment operator. It is currently used + in several places to quickly copy "most" of the members of the + table list. These places currently never assume that the mdl + request is carried over to the new TABLE_LIST, or shared + between lists. + + This method does not initialize the instance being assigned! + Use of init() for initialization after this assignment operator + is mandatory. Can only be used before the request has been + granted. + */ + MDL_request& operator=(const MDL_request &rhs) + { + ticket= NULL; + /* Do nothing, in particular, don't try to copy the key. */ + return *this; + } + /* Another piece of ugliness for TABLE_LIST constructor */ + MDL_request() {} + + MDL_request(const MDL_request *rhs) + :type(rhs->type), + duration(rhs->duration), + ticket(NULL), + key(&rhs->key) + {} +}; + + +typedef void (*mdl_cached_object_release_hook)(void *); + + +/** + An abstract class for inspection of a connected + subgraph of the wait-for graph. +*/ + +class MDL_wait_for_graph_visitor +{ +public: + virtual bool enter_node(MDL_context *node) = 0; + virtual void leave_node(MDL_context *node) = 0; + + virtual bool inspect_edge(MDL_context *dest) = 0; + virtual ~MDL_wait_for_graph_visitor(); + MDL_wait_for_graph_visitor() :m_lock_open_count(0) {} +public: + /** + XXX, hack: During deadlock search, we may need to + inspect TABLE_SHAREs and acquire LOCK_open. Since + LOCK_open is not a recursive mutex, count here how many + times we "took" it (but only take and release once). + Not using a native recursive mutex or rwlock in 5.5 for + LOCK_open since it has significant performance impacts. + */ + uint m_lock_open_count; +}; + +/** + Abstract class representing an edge in the waiters graph + to be traversed by deadlock detection algorithm. +*/ + +class MDL_wait_for_subgraph +{ +public: + virtual ~MDL_wait_for_subgraph(); + + /** + Accept a wait-for graph visitor to inspect the node + this edge is leading to. + */ + virtual bool accept_visitor(MDL_wait_for_graph_visitor *gvisitor) = 0; + + enum enum_deadlock_weight + { + DEADLOCK_WEIGHT_DML= 0, + DEADLOCK_WEIGHT_DDL= 100 + }; + /* A helper used to determine which lock request should be aborted. */ + virtual uint get_deadlock_weight() const = 0; +}; + + +/** + A granted metadata lock. + + @warning MDL_ticket members are private to the MDL subsystem. + + @note Multiple shared locks on a same object are represented by a + single ticket. The same does not apply for other lock types. + + @note There are two groups of MDL_ticket members: + - "Externally accessible". These members can be accessed from + threads/contexts different than ticket owner in cases when + ticket participates in some list of granted or waiting tickets + for a lock. Therefore one should change these members before + including then to waiting/granted lists or while holding lock + protecting those lists. + - "Context private". Such members are private to thread/context + owning this ticket. I.e. they should not be accessed from other + threads/contexts. +*/ + +class MDL_ticket : public MDL_wait_for_subgraph +{ +public: + /** + Pointers for participating in the list of lock requests for this context. + Context private. + */ + MDL_ticket *next_in_context; + MDL_ticket **prev_in_context; + /** + Pointers for participating in the list of satisfied/pending requests + for the lock. Externally accessible. + */ + MDL_ticket *next_in_lock; + MDL_ticket **prev_in_lock; +public: + bool has_pending_conflicting_lock() const; + + MDL_context *get_ctx() const { return m_ctx; } + bool is_upgradable_or_exclusive() const + { + return m_type == MDL_SHARED_NO_WRITE || + m_type == MDL_SHARED_NO_READ_WRITE || + m_type == MDL_EXCLUSIVE; + } + enum_mdl_type get_type() const { return m_type; } + MDL_lock *get_lock() const { return m_lock; } + void downgrade_exclusive_lock(enum_mdl_type type); + + bool has_stronger_or_equal_type(enum_mdl_type type) const; + + bool is_incompatible_when_granted(enum_mdl_type type) const; + bool is_incompatible_when_waiting(enum_mdl_type type) const; + + /** Implement MDL_wait_for_subgraph interface. */ + virtual bool accept_visitor(MDL_wait_for_graph_visitor *dvisitor); + virtual uint get_deadlock_weight() const; +private: + friend class MDL_context; + + MDL_ticket(MDL_context *ctx_arg, enum_mdl_type type_arg +#ifndef DBUG_OFF + , enum_mdl_duration duration_arg +#endif + ) + : m_type(type_arg), +#ifndef DBUG_OFF + m_duration(duration_arg), +#endif + m_ctx(ctx_arg), + m_lock(NULL) + {} + + static MDL_ticket *create(MDL_context *ctx_arg, enum_mdl_type type_arg +#ifndef DBUG_OFF + , enum_mdl_duration duration_arg +#endif + ); + static void destroy(MDL_ticket *ticket); +private: + /** Type of metadata lock. Externally accessible. */ + enum enum_mdl_type m_type; +#ifndef DBUG_OFF + /** + Duration of lock represented by this ticket. + Context private. Debug-only. + */ + enum_mdl_duration m_duration; +#endif + /** + Context of the owner of the metadata lock ticket. Externally accessible. + */ + MDL_context *m_ctx; + + /** + Pointer to the lock object for this lock ticket. Externally accessible. + */ + MDL_lock *m_lock; + +private: + MDL_ticket(const MDL_ticket &); /* not implemented */ + MDL_ticket &operator=(const MDL_ticket &); /* not implemented */ +}; + + +/** + Savepoint for MDL context. + + Doesn't include metadata locks with explicit duration as + they are not released during rollback to savepoint. +*/ + +class MDL_savepoint +{ +public: + MDL_savepoint() {}; + +private: + MDL_savepoint(MDL_ticket *stmt_ticket, MDL_ticket *trans_ticket) + : m_stmt_ticket(stmt_ticket), m_trans_ticket(trans_ticket) + {} + + friend class MDL_context; + +private: + /** + Pointer to last lock with statement duration which was taken + before creation of savepoint. + */ + MDL_ticket *m_stmt_ticket; + /** + Pointer to last lock with transaction duration which was taken + before creation of savepoint. + */ + MDL_ticket *m_trans_ticket; +}; + + +/** + A reliable way to wait on an MDL lock. +*/ + +class MDL_wait +{ +public: + MDL_wait(); + ~MDL_wait(); + + enum enum_wait_status { EMPTY = 0, GRANTED, VICTIM, TIMEOUT, KILLED }; + + bool set_status(enum_wait_status result_arg); + enum_wait_status get_status(); + void reset_status(); + enum_wait_status timed_wait(THD *thd, struct timespec *abs_timeout, + bool signal_timeout, const char *wait_state_name); +private: + /** + Condvar which is used for waiting until this context's pending + request can be satisfied or this thread has to perform actions + to resolve a potential deadlock (we subscribe to such + notification by adding a ticket corresponding to the request + to an appropriate queue of waiters). + */ + mysql_mutex_t m_LOCK_wait_status; + mysql_cond_t m_COND_wait_status; + enum_wait_status m_wait_status; +}; + + +typedef I_P_List, + I_P_List_counter> + MDL_request_list; + +/** + Context of the owner of metadata locks. I.e. each server + connection has such a context. +*/ + +class MDL_context +{ +public: + typedef I_P_List > + Ticket_list; + + typedef Ticket_list::Iterator Ticket_iterator; + + MDL_context(); + void destroy(); + + bool try_acquire_lock(MDL_request *mdl_request); + bool acquire_lock(MDL_request *mdl_request, ulong lock_wait_timeout); + bool acquire_locks(MDL_request_list *requests, ulong lock_wait_timeout); + bool upgrade_shared_lock_to_exclusive(MDL_ticket *mdl_ticket, + ulong lock_wait_timeout); + + bool clone_ticket(MDL_request *mdl_request); + + void release_all_locks_for_name(MDL_ticket *ticket); + void release_lock(MDL_ticket *ticket); + + bool is_lock_owner(MDL_key::enum_mdl_namespace mdl_namespace, + const char *db, const char *name, + enum_mdl_type mdl_type); + + bool has_lock(const MDL_savepoint &mdl_savepoint, MDL_ticket *mdl_ticket); + + inline bool has_locks() const + { + return !(m_tickets[MDL_STATEMENT].is_empty() && + m_tickets[MDL_TRANSACTION].is_empty() && + m_tickets[MDL_EXPLICIT].is_empty()); + } + + MDL_savepoint mdl_savepoint() + { + return MDL_savepoint(m_tickets[MDL_STATEMENT].front(), + m_tickets[MDL_TRANSACTION].front()); + } + + void set_explicit_duration_for_all_locks(); + void set_transaction_duration_for_all_locks(); + void set_lock_duration(MDL_ticket *mdl_ticket, enum_mdl_duration duration); + + void release_statement_locks(); + void release_transactional_locks(); + void rollback_to_savepoint(const MDL_savepoint &mdl_savepoint); + + inline THD *get_thd() const { return m_thd; } + + /** @pre Only valid if we started waiting for lock. */ + inline uint get_deadlock_weight() const + { return m_waiting_for->get_deadlock_weight(); } + /** + Post signal to the context (and wake it up if necessary). + + @retval FALSE - Success, signal was posted. + @retval TRUE - Failure, signal was not posted since context + already has received some signal or closed + signal slot. + */ + void init(THD *thd_arg) { m_thd= thd_arg; } + + void set_needs_thr_lock_abort(bool needs_thr_lock_abort) + { + /* + @note In theory, this member should be modified under protection + of some lock since it can be accessed from different threads. + In practice, this is not necessary as code which reads this + value and so might miss the fact that value was changed will + always re-try reading it after small timeout and therefore + will see the new value eventually. + */ + m_needs_thr_lock_abort= needs_thr_lock_abort; + } + bool get_needs_thr_lock_abort() const + { + return m_needs_thr_lock_abort; + } +public: + /** + If our request for a lock is scheduled, or aborted by the deadlock + detector, the result is recorded in this class. + */ + MDL_wait m_wait; +private: + /** + Lists of all MDL tickets acquired by this connection. + + Lists of MDL tickets: + --------------------- + The entire set of locks acquired by a connection can be separated + in three subsets according to their: locks released at the end of + statement, at the end of transaction and locks are released + explicitly. + + Statement and transactional locks are locks with automatic scope. + They are accumulated in the course of a transaction, and released + either at the end of uppermost statement (for statement locks) or + on COMMIT, ROLLBACK or ROLLBACK TO SAVEPOINT (for transactional + locks). They must not be (and never are) released manually, + i.e. with release_lock() call. + + Locks with explicit duration are taken for locks that span + multiple transactions or savepoints. + These are: HANDLER SQL locks (HANDLER SQL is + transaction-agnostic), LOCK TABLES locks (you can COMMIT/etc + under LOCK TABLES, and the locked tables stay locked), and + locks implementing "global read lock". + + Statement/transactional locks are always prepended to the + beginning of the appropriate list. In other words, they are + stored in reverse temporal order. Thus, when we rollback to + a savepoint, we start popping and releasing tickets from the + front until we reach the last ticket acquired after the savepoint. + + Locks with explicit duration stored are not stored in any + particular order, and among each other can be split into + three sets: + + [LOCK TABLES locks] [HANDLER locks] [GLOBAL READ LOCK locks] + + The following is known about these sets: + + * GLOBAL READ LOCK locks are always stored after LOCK TABLES + locks and after HANDLER locks. This is because one can't say + SET GLOBAL read_only=1 or FLUSH TABLES WITH READ LOCK + if one has locked tables. One can, however, LOCK TABLES + after having entered the read only mode. Note, that + subsequent LOCK TABLES statement will unlock the previous + set of tables, but not the GRL! + There are no HANDLER locks after GRL locks because + SET GLOBAL read_only performs a FLUSH TABLES WITH + READ LOCK internally, and FLUSH TABLES, in turn, implicitly + closes all open HANDLERs. + However, one can open a few HANDLERs after entering the + read only mode. + * LOCK TABLES locks include intention exclusive locks on + involved schemas and global intention exclusive lock. + */ + Ticket_list m_tickets[MDL_DURATION_END]; + THD *m_thd; + /** + TRUE - if for this context we will break protocol and try to + acquire table-level locks while having only S lock on + some table. + To avoid deadlocks which might occur during concurrent + upgrade of SNRW lock on such object to X lock we have to + abort waits for table-level locks for such connections. + FALSE - Otherwise. + */ + bool m_needs_thr_lock_abort; + + /** + Read-write lock protecting m_waiting_for member. + + @note The fact that this read-write lock prefers readers is + important as deadlock detector won't work correctly + otherwise. @sa Comment for MDL_lock::m_rwlock. + */ + mysql_prlock_t m_LOCK_waiting_for; + /** + Tell the deadlock detector what metadata lock or table + definition cache entry this session is waiting for. + In principle, this is redundant, as information can be found + by inspecting waiting queues, but we'd very much like it to be + readily available to the wait-for graph iterator. + */ + MDL_wait_for_subgraph *m_waiting_for; +private: + MDL_ticket *find_ticket(MDL_request *mdl_req, + enum_mdl_duration *duration); + void release_locks_stored_before(enum_mdl_duration duration, MDL_ticket *sentinel); + void release_lock(enum_mdl_duration duration, MDL_ticket *ticket); + bool try_acquire_lock_impl(MDL_request *mdl_request, + MDL_ticket **out_ticket); + +public: + void find_deadlock(); + + bool visit_subgraph(MDL_wait_for_graph_visitor *dvisitor); + + /** Inform the deadlock detector there is an edge in the wait-for graph. */ + void will_wait_for(MDL_wait_for_subgraph *waiting_for_arg) + { + mysql_prlock_wrlock(&m_LOCK_waiting_for); + m_waiting_for= waiting_for_arg; + mysql_prlock_unlock(&m_LOCK_waiting_for); + } + + /** Remove the wait-for edge from the graph after we're done waiting. */ + void done_waiting_for() + { + mysql_prlock_wrlock(&m_LOCK_waiting_for); + m_waiting_for= NULL; + mysql_prlock_unlock(&m_LOCK_waiting_for); + } + void lock_deadlock_victim() + { + mysql_prlock_rdlock(&m_LOCK_waiting_for); + } + void unlock_deadlock_victim() + { + mysql_prlock_unlock(&m_LOCK_waiting_for); + } +private: + MDL_context(const MDL_context &rhs); /* not implemented */ + MDL_context &operator=(MDL_context &rhs); /* not implemented */ +}; + + +void mdl_init(); +void mdl_destroy(); + + +/* + Functions in the server's kernel used by metadata locking subsystem. +*/ + +extern bool mysql_notify_thread_having_shared_lock(THD *thd, THD *in_use, + bool needs_thr_lock_abort); +extern "C" const char* thd_enter_cond(MYSQL_THD thd, mysql_cond_t *cond, + mysql_mutex_t *mutex, const char *msg); +extern "C" void thd_exit_cond(MYSQL_THD thd, const char *old_msg); + +#ifndef DBUG_OFF +extern mysql_mutex_t LOCK_open; +#endif + + +/* + Start-up parameter for the maximum size of the unused MDL_lock objects cache + and a constant for its default value. +*/ +extern ulong mdl_locks_cache_size; +static const ulong MDL_LOCKS_CACHE_SIZE_DEFAULT = 1024; + +/* + Metadata locking subsystem tries not to grant more than + max_write_lock_count high-prio, strong locks successively, + to avoid starving out weak, low-prio locks. +*/ +extern "C" ulong max_write_lock_count; +#endif diff --git a/database/include/mysql/private/mem_root_array.h b/database/include/mysql/private/mem_root_array.h new file mode 100644 index 0000000..763fd35 --- /dev/null +++ b/database/include/mysql/private/mem_root_array.h @@ -0,0 +1,175 @@ +/* Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + + +#ifndef MEM_ROOT_ARRAY_INCLUDED +#define MEM_ROOT_ARRAY_INCLUDED + +#include + +/** + A typesafe replacement for DYNAMIC_ARRAY. + We use MEM_ROOT for allocating storage, rather than the C++ heap. + The interface is chosen to be similar to std::vector. + + @remark + Unlike DYNAMIC_ARRAY, elements are properly copied + (rather than memcpy()d) if the underlying array needs to be expanded. + + @remark + Depending on has_trivial_destructor, we destroy objects which are + removed from the array (including when the array object itself is destroyed). + + @remark + Note that MEM_ROOT has no facility for reusing free space, + so don't use this if multiple re-expansions are likely to happen. + + @param Element_type The type of the elements of the container. + Elements must be copyable. + @param has_trivial_destructor If true, we don't destroy elements. + We could have used type traits to determine this. + __has_trivial_destructor is supported by some (but not all) + compilers we use. +*/ +template +class Mem_root_array +{ +public: + Mem_root_array(MEM_ROOT *root) + : m_root(root), m_array(NULL), m_size(0), m_capacity(0) + { + DBUG_ASSERT(m_root != NULL); + } + + ~Mem_root_array() + { + clear(); + } + + Element_type &at(size_t n) + { + DBUG_ASSERT(n < size()); + return m_array[n]; + } + + const Element_type &at(size_t n) const + { + DBUG_ASSERT(n < size()); + return m_array[n]; + } + + // Returns a pointer to the first element in the array. + Element_type *begin() { return &m_array[0]; } + + // Returns a pointer to the past-the-end element in the array. + Element_type *end() { return &m_array[size()]; } + + // Erases all of the elements. + void clear() + { + if (!empty()) + chop(0); + } + + /* + Chops the tail off the array, erasing all tail elements. + @param pos Index of first element to erase. + */ + void chop(const size_t pos) + { + DBUG_ASSERT(pos < m_size); + if (!has_trivial_destructor) + { + for (size_t ix= pos; ix < m_size; ++ix) + { + Element_type *p= &m_array[ix]; + p->~Element_type(); // Destroy discarded element. + } + } + m_size= pos; + } + + /* + Reserves space for array elements. + Copies over existing elements, in case we are re-expanding the array. + + @param n number of elements. + @retval true if out-of-memory, false otherwise. + */ + bool reserve(size_t n) + { + if (n <= m_capacity) + return false; + + void *mem= alloc_root(m_root, n * element_size()); + if (!mem) + return true; + Element_type *array= static_cast(mem); + + // Copy all the existing elements into the new array. + for (size_t ix= 0; ix < m_size; ++ix) + { + Element_type *new_p= &array[ix]; + Element_type *old_p= &m_array[ix]; + new (new_p) Element_type(*old_p); // Copy into new location. + if (!has_trivial_destructor) + old_p->~Element_type(); // Destroy the old element. + } + + // Forget the old array. + m_array= array; + m_capacity= n; + return false; + } + + /* + Adds a new element at the end of the array, after its current last + element. The content of this new element is initialized to a copy of + the input argument. + + @param element Object to copy. + @retval true if out-of-memory, false otherwise. + */ + bool push_back(const Element_type &element) + { + const size_t min_capacity= 20; + const size_t expansion_factor= 2; + if (0 == m_capacity && reserve(min_capacity)) + return true; + if (m_size == m_capacity && reserve(m_capacity * expansion_factor)) + return true; + Element_type *p= &m_array[m_size++]; + new (p) Element_type(element); + return false; + } + + size_t capacity() const { return m_capacity; } + size_t element_size() const { return sizeof(Element_type); } + bool empty() const { return size() == 0; } + size_t size() const { return m_size; } + +private: + MEM_ROOT *const m_root; + Element_type *m_array; + size_t m_size; + size_t m_capacity; + + // Not (yet) implemented. + Mem_root_array(const Mem_root_array&); + Mem_root_array &operator=(const Mem_root_array&); +}; + + +#endif // MEM_ROOT_ARRAY_INCLUDED diff --git a/database/include/mysql/private/message.h b/database/include/mysql/private/message.h new file mode 100644 index 0000000..9345037 --- /dev/null +++ b/database/include/mysql/private/message.h @@ -0,0 +1,77 @@ +#ifndef MESSAGE_INCLUDED +#define MESSAGE_INCLUDED +/* Copyright (c) 2008, 2009 Sun Microsystems, Inc. + Use is subject to license terms. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* + To change or add messages mysqld writes to the Windows error log, run + mc.exe message.mc + and checkin generated messages.h, messages.rc and msg000001.bin under the + source control. + mc.exe can be installed with Windows SDK, some Visual Studio distributions + do not include it. +*/ + + +// +// Values are 32 bit values layed out as follows: +// +// 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 +// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 +// +---+-+-+-----------------------+-------------------------------+ +// |Sev|C|R| Facility | Code | +// +---+-+-+-----------------------+-------------------------------+ +// +// where +// +// Sev - is the severity code +// +// 00 - Success +// 01 - Informational +// 10 - Warning +// 11 - Error +// +// C - is the Customer code flag +// +// R - is a reserved bit +// +// Facility - is the facility code +// +// Code - is the facility's status code +// +// +// Define the facility codes +// + + +// +// Define the severity codes +// + + +// +// MessageId: MSG_DEFAULT +// +// MessageText: +// +// %1For more information, see Help and Support Center at http://www.mysql.com. +// +// +// +#define MSG_DEFAULT 0xC0000064L + +#endif /* MESSAGE_INCLUDED */ + diff --git a/database/include/mysql/private/multi_range_read.h b/database/include/mysql/private/multi_range_read.h new file mode 100644 index 0000000..a2b1a27 --- /dev/null +++ b/database/include/mysql/private/multi_range_read.h @@ -0,0 +1,659 @@ +/* + Copyright (c) 2009, 2011, Monty Program Ab + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +/** + @defgroup DS-MRR declarations + @{ +*/ + +/** + A Disk-Sweep implementation of MRR Interface (DS-MRR for short) + + This is a "plugin"(*) for storage engines that allows to + 1. When doing index scans, read table rows in rowid order; + 2. when making many index lookups, do them in key order and don't + lookup the same key value multiple times; + 3. Do both #1 and #2, when applicable. + These changes are expected to speed up query execution for disk-based + storage engines running io-bound loads and "big" queries (ie. queries that + do joins and enumerate lots of records). + + (*) - only conceptually. No dynamic loading or binary compatibility of any + kind. + + General scheme of things: + + SQL Layer code + | | | + v v v + -|---|---|---- handler->multi_range_read_XXX() function calls + | | | + _____________________________________ + / DS-MRR module \ + | (order/de-duplicate lookup keys, | + | scan indexes in key order, | + | order/de-duplicate rowids, | + | retrieve full record reads in rowid | + | order) | + \_____________________________________/ + | | | + -|---|---|----- handler->read_range_first()/read_range_next(), + | | | handler->index_read(), handler->rnd_pos() calls. + | | | + v v v + Storage engine internals + + + Currently DS-MRR is used by MyISAM, InnoDB/XtraDB and Maria storage engines. + Potentially it can be used with any table handler that has disk-based data + storage and has better performance when reading data in rowid order. +*/ + +#include "sql_lifo_buffer.h" + +class DsMrr_impl; +class Mrr_ordered_index_reader; + + +/* A structure with key parameters that's shared among several classes */ +class Key_parameters +{ +public: + uint key_tuple_length; /* Length of index lookup tuple, in bytes */ + key_part_map key_tuple_map; /* keyparts used in index lookup tuples */ + + /* + This is + = key_tuple_length if we copy keys to buffer + = sizeof(void*) if we're using pointers to materialized keys. + */ + uint key_size_in_keybuf; + + /* TRUE <=> don't copy key values, use pointers to them instead. */ + bool use_key_pointers; + + /* TRUE <=> We can get at most one index tuple for a lookup key */ + bool index_ranges_unique; +}; + + +/** + A class to enumerate (record, range_id) pairs that match given key value. + + @note + + The idea is that we have a Lifo_buffer which holds (key, range_id) pairs + ordered by key value. From the front of the buffer we see + + (key_val1, range_id1), (key_val1, range_id2) ... (key_val2, range_idN) + + we take the first elements that have the same key value (key_val1 in the + example above), and make lookup into the table. The table will have + multiple matches for key_val1: + + == Table Index == + ... + key_val1 -> key_val1, index_tuple1 + key_val1, index_tuple2 + ... + key_val1, index_tupleN + ... + + Our goal is to produce all possible combinations, i.e. we need: + + {(key_val1, index_tuple1), range_id1} + {(key_val1, index_tuple1), range_id2} + ... ... | + {(key_val1, index_tuple1), range_idN}, + + {(key_val1, index_tuple2), range_id1} + {(key_val1, index_tuple2), range_id2} + ... ... | + {(key_val1, index_tuple2), range_idN}, + + ... ... ... + + {(key_val1, index_tupleK), range_idN} +*/ + +class Key_value_records_iterator +{ + /* Use this to get table handler, key buffer and other parameters */ + Mrr_ordered_index_reader *owner; + + /* Iterator to get (key, range_id) pairs from */ + Lifo_buffer_iterator identical_key_it; + + /* + Last of the identical key values (when we get this pointer from + identical_key_it, it will be time to stop). + */ + uchar *last_identical_key_ptr; + + /* + FALSE <=> we're right after the init() call, the record has been already + read with owner->file->index_read_map() call + */ + bool get_next_row; + +public: + int init(Mrr_ordered_index_reader *owner_arg); + int get_next(range_id_t *range_info); + void move_to_next_key_value(); +}; + + +/* + Buffer manager interface. Mrr_reader objects use it to inqure DsMrr_impl + to manage buffer space for them. +*/ +typedef struct st_buffer_manager +{ +public: + /* Opaque value to be passed as the first argument to all member functions */ + void *arg; + + /* + This is called when we've freed more space from the rowid buffer. The + callee will get the unused space from the rowid buffer and give it to the + key buffer. + */ + void (*redistribute_buffer_space)(void *arg); + + /* + This is called when both key and rowid buffers are empty, and so it's time + to reset them to their original size (They've lost their original size, + because we were dynamically growing rowid buffer and shrinking key buffer). + */ + void (*reset_buffer_sizes)(void *arg); + +} Buffer_manager; + + +/* + Mrr_reader - DS-MRR execution strategy abstraction + + A reader produces ([index]_record, range_info) pairs, and requires periodic + refill operations. + + - one starts using the reader by calling reader->get_next(), + - when a get_next() call returns HA_ERR_END_OF_FILE, one must call + refill_buffer() before they can make more get_next() calls. + - when refill_buffer() returns HA_ERR_END_OF_FILE, this means the real + end of stream and get_next() should not be called anymore. + + Both functions can return other error codes, these mean unrecoverable errors + after which one cannot continue. +*/ + +class Mrr_reader +{ +public: + virtual int get_next(range_id_t *range_info) = 0; + virtual int refill_buffer(bool initial) = 0; + virtual ~Mrr_reader() {}; /* just to remove compiler warning */ +}; + + +/* + A common base for readers that do index scans and produce index tuples +*/ + +class Mrr_index_reader : public Mrr_reader +{ +protected: + handler *file; /* Handler object to use */ +public: + virtual int init(handler *h_arg, RANGE_SEQ_IF *seq_funcs, + void *seq_init_param, uint n_ranges, + uint mode, Key_parameters *key_par, + Lifo_buffer *key_buffer, + Buffer_manager *buf_manager_arg) = 0; + + /* Get pointer to place where every get_next() call will put rowid */ + virtual uchar *get_rowid_ptr() = 0; + /* Get the rowid (call this after get_next() call) */ + virtual void position(); + virtual bool skip_record(range_id_t range_id, uchar *rowid) = 0; + + virtual void interrupt_read() {} + virtual void resume_read() {} +}; + + +/* + A "bypass" index reader that just does and index scan. The index scan is done + by calling default MRR implementation (i.e. handler::multi_range_read_XXX()) + functions. +*/ + +class Mrr_simple_index_reader : public Mrr_index_reader +{ +public: + int init(handler *h_arg, RANGE_SEQ_IF *seq_funcs, + void *seq_init_param, uint n_ranges, + uint mode, Key_parameters *key_par, + Lifo_buffer *key_buffer, + Buffer_manager *buf_manager_arg); + int get_next(range_id_t *range_info); + int refill_buffer(bool initial) { return initial? 0: HA_ERR_END_OF_FILE; } + uchar *get_rowid_ptr() { return file->ref; } + bool skip_record(range_id_t range_id, uchar *rowid) + { + return (file->mrr_funcs.skip_record && + file->mrr_funcs.skip_record(file->mrr_iter, range_id, rowid)); + } +}; + + +/* + A reader that sorts the key values before it makes the index lookups. +*/ + +class Mrr_ordered_index_reader : public Mrr_index_reader +{ +public: + int init(handler *h_arg, RANGE_SEQ_IF *seq_funcs, + void *seq_init_param, uint n_ranges, + uint mode, Key_parameters *key_par, + Lifo_buffer *key_buffer, + Buffer_manager *buf_manager_arg); + int get_next(range_id_t *range_info); + int refill_buffer(bool initial); + uchar *get_rowid_ptr() { return file->ref; } + + bool skip_record(range_id_t range_info, uchar *rowid) + { + return (mrr_funcs.skip_record && + mrr_funcs.skip_record(mrr_iter, range_info, rowid)); + } + + bool skip_index_tuple(range_id_t range_info) + { + return (mrr_funcs.skip_index_tuple && + mrr_funcs.skip_index_tuple(mrr_iter, range_info)); + } + + bool set_interruption_temp_buffer(uint rowid_length, uint key_len, + uint saved_pk_len, + uchar **space_start, uchar *space_end); + void set_no_interruption_temp_buffer(); + + void interrupt_read(); + void resume_read(); + void position(); +private: + Key_value_records_iterator kv_it; + + bool scanning_key_val_iter; + + /* Buffer to store (key, range_id) pairs */ + Lifo_buffer *key_buffer; + + /* This manages key buffer allocation and sizing for us */ + Buffer_manager *buf_manager; + + Key_parameters keypar; /* index scan and lookup tuple parameters */ + + /* TRUE <=> need range association, buffers hold {rowid, range_id} pairs */ + bool is_mrr_assoc; + + /* Range sequence iteration members */ + RANGE_SEQ_IF mrr_funcs; + range_seq_t mrr_iter; + + /* TRUE == reached eof when enumerating ranges */ + bool source_exhausted; + + /* + Following members are for interrupt_read()/resume_read(). The idea is that + in some cases index scan that is done by this object is interrupted by + rnd_pos() calls made by Mrr_ordered_rndpos_reader. The problem is that + we're sharing handler->record[0] with that object, and it destroys its + contents. + We need to save/restore our current + - index tuple (for pushed index condition checks) + - clustered primary key values (again, for pushed index condition checks) + - rowid of the last record we've retrieved (in case this rowid matches + multiple ranges and we'll need to return it again) + */ + bool support_scan_interruptions; + /* Space where we save the rowid of the last record we've returned */ + uchar *saved_rowid; + + /* TRUE <=> saved_rowid has the last saved rowid */ + bool have_saved_rowid; + + uchar *saved_key_tuple; /* Saved current key tuple */ + uchar *saved_primary_key; /* Saved current primary key tuple */ + + /* + TRUE<=> saved_key_tuple (and saved_primary_key when applicable) have + valid values. + */ + bool read_was_interrupted; + + static int compare_keys(void* arg, uchar* key1, uchar* key2); + static int compare_keys_reverse(void* arg, uchar* key1, uchar* key2); + + friend class Key_value_records_iterator; + friend class DsMrr_impl; + friend class Mrr_ordered_rndpos_reader; +}; + + +/* + A reader that gets rowids from an Mrr_index_reader, and then sorts them + before getting full records with handler->rndpos() calls. +*/ + +class Mrr_ordered_rndpos_reader : public Mrr_reader +{ +public: + int init(handler *file, Mrr_index_reader *index_reader, uint mode, + Lifo_buffer *buf); + int get_next(range_id_t *range_info); + int refill_buffer(bool initial); +private: + handler *file; /* Handler to use */ + + /* This what we get (rowid, range_info) pairs from */ + Mrr_index_reader *index_reader; + + /* index_reader->get_next() puts rowid here */ + uchar *index_rowid; + + /* TRUE <=> index_reader->refill_buffer() call has returned EOF */ + bool index_reader_exhausted; + + /* + TRUE <=> We should call index_reader->refill_buffer(). This happens if + 1. we've made index_reader->get_next() call which returned EOF + 2. we haven't made any index_reader calls (and our first call should + be index_reader->refill_buffer(initial=TRUE) + */ + bool index_reader_needs_refill; + + /* TRUE <=> need range association, buffers hold {rowid, range_id} pairs */ + bool is_mrr_assoc; + + /* + When reading from ordered rowid buffer: the rowid element of the last + buffer element that has rowid identical to this one. + */ + uchar *last_identical_rowid; + + /* Buffer to store (rowid, range_id) pairs */ + Lifo_buffer *rowid_buffer; + + int refill_from_index_reader(); +}; + + +/* + A primitive "factory" of various Mrr_*_reader classes (the point is to + get various kinds of readers without having to allocate them on the heap) +*/ + +class Mrr_reader_factory +{ +public: + Mrr_ordered_rndpos_reader ordered_rndpos_reader; + Mrr_ordered_index_reader ordered_index_reader; + Mrr_simple_index_reader simple_index_reader; +}; + + +#define DSMRR_IMPL_SORT_KEYS HA_MRR_IMPLEMENTATION_FLAG1 +#define DSMRR_IMPL_SORT_ROWIDS HA_MRR_IMPLEMENTATION_FLAG2 + +/* + DS-MRR implementation for one table. Create/use one object of this class for + each ha_{myisam/innobase/etc} object. That object will be further referred to + as "the handler" + + DsMrr_impl supports has the following execution strategies: + + - Bypass DS-MRR, pass all calls to default MRR implementation, which is + an MRR-to-non-MRR call converter. + - Key-Ordered Retrieval + - Rowid-Ordered Retrieval + + DsMrr_impl will use one of the above strategies, or a combination of them, + according to the following diagram: + + (mrr function calls) + | + +----------------->-----------------+ + | | + ___________v______________ _______________v________________ + / default: use lookup keys \ / KEY-ORDERED RETRIEVAL: \ + | (or ranges) in whatever | | sort lookup keys and then make | + | order they are supplied | | index lookups in index order | + \__________________________/ \________________________________/ + | | | | | + +---<---+ | +--------------->-----------|----+ + | | | | + | | +---------------+ | + | ______v___ ______ | _______________v_______________ + | / default: read \ | / ROWID-ORDERED RETRIEVAL: \ + | | table records | | | Before reading table records, | + v | in random order | v | sort their rowids and then | + | \_________________/ | | read them in rowid order | + | | | \_______________________________/ + | | | | + | | | | + +-->---+ | +----<------+-----------<--------+ + | | | + v v v + (table records and range_ids) + + The choice of strategy depends on MRR scan properties, table properties + (whether we're scanning clustered primary key), and @@optimizer_switch + settings. + + Key-Ordered Retrieval + --------------------- + The idea is: if MRR scan is essentially a series of lookups on + + tbl.key=value1 OR tbl.key=value2 OR ... OR tbl.key=valueN + + then it makes sense to collect and order the set of lookup values, i.e. + + sort(value1, value2, .. valueN) + + and then do index lookups in index order. This results in fewer index page + fetch operations, and we also can avoid making multiple index lookups for the + same value. That is, if value1=valueN we can easily discover that after + sorting and make one index lookup for them instead of two. + + Rowid-Ordered Retrieval + ----------------------- + If we do a regular index scan or a series of index lookups, we'll be hitting + table records at random. For disk-based engines, this is much slower than + reading the same records in disk order. We assume that disk ordering of + rows is the same as ordering of their rowids (which is provided by + handler::cmp_ref()) + In order to retrieve records in different order, we must separate index + scanning and record fetching, that is, MRR scan uses the following steps: + + 1. Scan the index (and only index, that is, with HA_EXTRA_KEYREAD on) and + fill a buffer with {rowid, range_id} pairs + 2. Sort the buffer by rowid value + 3. for each {rowid, range_id} pair in the buffer + get record by rowid and return the {record, range_id} pair + 4. Repeat the above steps until we've exhausted the list of ranges we're + scanning. + + Buffer space management considerations + -------------------------------------- + With regards to buffer/memory management, MRR interface specifies that + - SQL layer provides multi_range_read_init() with buffer of certain size. + - MRR implementation may use (i.e. have at its disposal till the end of + the MRR scan) all of the buffer, or return the unused end of the buffer + to SQL layer. + + DS-MRR needs buffer in order to accumulate and sort rowids and/or keys. When + we need to accumulate/sort only keys (or only rowids), it is fairly trivial. + + When we need to accumulate/sort both keys and rowids, efficient buffer use + gets complicated. We need to: + - First, accumulate keys and sort them + - Then use the keys (smaller values go first) to obtain rowids. A key is not + needed after we've got matching rowids for it. + - Make sure that rowids are accumulated at the front of the buffer, so that we + can return the end part of the buffer to SQL layer, should there be too + few rowid values to occupy the buffer. + + All of these goals are achieved by using the following scheme: + + | | We get an empty buffer from SQL layer. + + | *-| + | *----| First, we fill the buffer with keys. Key_buffer + | *-------| part grows from end of the buffer space to start + | *----------| (In this picture, the buffer is big enough to + | *-------------| accomodate all keys and even have some space left) + + | *=============| We want to do key-ordered index scan, so we sort + the keys + + |-x *===========| Then we use the keys get rowids. Rowids are + |----x *========| stored from start of buffer space towards the end. + |--------x *=====| The part of the buffer occupied with keys + |------------x *===| gradually frees up space for rowids. In this + |--------------x *=| picture we run out of keys before we've ran out + |----------------x | of buffer space (it can be other way as well). + + |================x | Then we sort the rowids. + + | |~~~| The unused part of the buffer is at the end, so + we can return it to the SQL layer. + + |================* Sorted rowids are then used to read table records + in disk order + +*/ + +class DsMrr_impl +{ +public: + typedef void (handler::*range_check_toggle_func_t)(bool on); + + DsMrr_impl() + : secondary_file(NULL) {}; + + void init(handler *h_arg, TABLE *table_arg) + { + primary_file= h_arg; + table= table_arg; + } + int dsmrr_init(handler *h_arg, RANGE_SEQ_IF *seq_funcs, + void *seq_init_param, uint n_ranges, uint mode, + HANDLER_BUFFER *buf); + void dsmrr_close(); + int dsmrr_next(range_id_t *range_info); + + ha_rows dsmrr_info(uint keyno, uint n_ranges, uint keys, uint key_parts, + uint *bufsz, uint *flags, COST_VECT *cost); + + ha_rows dsmrr_info_const(uint keyno, RANGE_SEQ_IF *seq, + void *seq_init_param, uint n_ranges, uint *bufsz, + uint *flags, COST_VECT *cost); + + int dsmrr_explain_info(uint mrr_mode, char *str, size_t size); +private: + /* Buffer to store (key, range_id) pairs */ + Lifo_buffer *key_buffer; + + /* + The "owner" handler object (the one that is expected to "own" this object + and call its functions). + */ + handler *primary_file; + TABLE *table; /* Always equal to primary_file->table */ + + /* + Secondary handler object. (created when needed, we need it when we need + to run both index scan and rnd_pos() scan at the same time) + */ + handler *secondary_file; + + uint keyno; /* index we're running the scan on */ + /* TRUE <=> need range association, buffers hold {rowid, range_id} pairs */ + bool is_mrr_assoc; + + Mrr_reader_factory reader_factory; + + Mrr_reader *strategy; + bool strategy_exhausted; + + Mrr_index_reader *index_strategy; + + /* The whole buffer space that we're using */ + uchar *full_buf; + uchar *full_buf_end; + + /* + When using both rowid and key buffers: the boundary between key and rowid + parts of the buffer. This is the "original" value, actual memory ranges + used by key and rowid parts may be different because of dynamic space + reallocation between them. + */ + uchar *rowid_buffer_end; + + /* + One of the following two is used for key buffer: forward is used when + we only need key buffer, backward is used when we need both key and rowid + buffers. + */ + Forward_lifo_buffer forward_key_buf; + Backward_lifo_buffer backward_key_buf; + + /* + Buffer to store (rowid, range_id) pairs, or just rowids if + is_mrr_assoc==FALSE + */ + Forward_lifo_buffer rowid_buffer; + + bool choose_mrr_impl(uint keyno, ha_rows rows, uint *flags, uint *bufsz, + COST_VECT *cost); + bool get_disk_sweep_mrr_cost(uint keynr, ha_rows rows, uint flags, + uint *buffer_size, COST_VECT *cost); + bool check_cpk_scan(THD *thd, TABLE_SHARE *share, uint keyno, uint mrr_flags); + + bool setup_buffer_sharing(uint key_size_in_keybuf, key_part_map key_tuple_map); + + /* Buffer_manager and its member functions */ + Buffer_manager buf_manager; + static void redistribute_buffer_space(void *dsmrr_arg); + static void reset_buffer_sizes(void *dsmrr_arg); + static void do_nothing(void *dsmrr_arg); + + Lifo_buffer* get_key_buffer() { return key_buffer; } + + friend class Key_value_records_iterator; + friend class Mrr_ordered_index_reader; + friend class Mrr_ordered_rndpos_reader; + + int setup_two_handlers(); + void close_second_handler(); +}; + +/** + @} (end of group DS-MRR declarations) +*/ + diff --git a/database/include/mysql/private/my_aes.h b/database/include/mysql/private/my_aes.h new file mode 100644 index 0000000..1264f42 --- /dev/null +++ b/database/include/mysql/private/my_aes.h @@ -0,0 +1,71 @@ +#ifndef MY_AES_INCLUDED +#define MY_AES_INCLUDED + +/* Copyright (c) 2002, 2006 MySQL AB, 2009 Sun Microsystems, Inc. + Use is subject to license terms. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + + +/* Header file for my_aes.c */ +/* Wrapper to give simple interface for MySQL to AES standard encryption */ + +#include "rijndael.h" + +C_MODE_START + +#define AES_KEY_LENGTH 128 /* Must be 128 192 or 256 */ + +/* + my_aes_encrypt - Crypt buffer with AES encryption algorithm. + source - Pointer to data for encryption + source_length - size of encryption data + dest - buffer to place encrypted data (must be large enough) + key - Key to be used for encryption + kel_length - Length of the key. Will handle keys of any length + + returns - size of encrypted data, or negative in case of error. +*/ + +int my_aes_encrypt(const char *source, int source_length, char *dest, + const char *key, int key_length); + +/* + my_aes_decrypt - DeCrypt buffer with AES encryption algorithm. + source - Pointer to data for decryption + source_length - size of encrypted data + dest - buffer to place decrypted data (must be large enough) + key - Key to be used for decryption + kel_length - Length of the key. Will handle keys of any length + + returns - size of original data, or negative in case of error. +*/ + + +int my_aes_decrypt(const char *source, int source_length, char *dest, + const char *key, int key_length); + +/* + my_aes_get_size - get size of buffer which will be large enough for encrypted + data + source_length - length of data to be encrypted + + returns - size of buffer required to store encrypted data +*/ + +int my_aes_get_size(int source_length); + +C_MODE_END + +#endif /* MY_AES_INCLUDED */ diff --git a/database/include/mysql/private/my_alarm.h b/database/include/mysql/private/my_alarm.h new file mode 100644 index 0000000..19a15a8 --- /dev/null +++ b/database/include/mysql/private/my_alarm.h @@ -0,0 +1,59 @@ +/* + Copyright (c) 2000, 2010, Oracle and/or its affiliates. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* + File to include when we want to use alarm or a loop_counter to display + some information when a program is running +*/ +#ifndef _my_alarm_h +#define _my_alarm_h +#ifdef __cplusplus +extern "C" { +#endif + +extern int volatile my_have_got_alarm; +extern ulong my_time_to_wait_for_lock; + +#if defined(HAVE_ALARM) && !defined(NO_ALARM_LOOP) +#include +#define ALARM_VARIABLES uint alarm_old=0; \ + sig_return alarm_signal=0 +#define ALARM_INIT my_have_got_alarm=0 ; \ + alarm_old=(uint) alarm(MY_HOW_OFTEN_TO_ALARM); \ + alarm_signal=signal(SIGALRM,my_set_alarm_variable); +#define ALARM_END (void) signal(SIGALRM,alarm_signal); \ + (void) alarm(alarm_old); +#define ALARM_TEST my_have_got_alarm +#ifdef SIGNAL_HANDLER_RESET_ON_DELIVERY +#define ALARM_REINIT (void) alarm(MY_HOW_OFTEN_TO_ALARM); \ + (void) signal(SIGALRM,my_set_alarm_variable);\ + my_have_got_alarm=0; +#else +#define ALARM_REINIT (void) alarm((uint) MY_HOW_OFTEN_TO_ALARM); \ + my_have_got_alarm=0; +#endif /* SIGNAL_HANDLER_RESET_ON_DELIVERY */ +#else +#define ALARM_VARIABLES long alarm_pos=0,alarm_end_pos=MY_HOW_OFTEN_TO_WRITE-1 +#define ALARM_INIT +#define ALARM_END +#define ALARM_TEST (alarm_pos++ >= alarm_end_pos) +#define ALARM_REINIT alarm_end_pos+=MY_HOW_OFTEN_TO_WRITE +#endif /* HAVE_ALARM */ + +#ifdef __cplusplus +} +#endif +#endif diff --git a/database/include/mysql/private/my_atomic.h b/database/include/mysql/private/my_atomic.h new file mode 100644 index 0000000..88fdd05 --- /dev/null +++ b/database/include/mysql/private/my_atomic.h @@ -0,0 +1,286 @@ +#ifndef MY_ATOMIC_INCLUDED +#define MY_ATOMIC_INCLUDED + +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* + This header defines five atomic operations: + + my_atomic_add#(&var, what) + 'Fetch and Add' + add 'what' to *var, and return the old value of *var + + my_atomic_fas#(&var, what) + 'Fetch And Store' + store 'what' in *var, and return the old value of *var + + my_atomic_cas#(&var, &old, new) + 'Compare And Swap' + if *var is equal to *old, then store 'new' in *var, and return TRUE + otherwise store *var in *old, and return FALSE + + my_atomic_load#(&var) + return *var + + my_atomic_store#(&var, what) + store 'what' in *var + + '#' is substituted by a size suffix - 8, 16, 32, 64, or ptr + (e.g. my_atomic_add8, my_atomic_fas32, my_atomic_casptr). + + NOTE This operations are not always atomic, so they always must be + enclosed in my_atomic_rwlock_rdlock(lock)/my_atomic_rwlock_rdunlock(lock) + or my_atomic_rwlock_wrlock(lock)/my_atomic_rwlock_wrunlock(lock). + Hint: if a code block makes intensive use of atomic ops, it make sense + to take/release rwlock once for the whole block, not for every statement. + + On architectures where these operations are really atomic, rwlocks will + be optimized away. + 8- and 16-bit atomics aren't implemented for windows (see generic-msvc.h), + but can be added, if necessary. +*/ + +#ifndef my_atomic_rwlock_init + +#define intptr void * +/** + Currently we don't support 8-bit and 16-bit operations. + It can be added later if needed. +*/ +#undef MY_ATOMIC_HAS_8_16 + +#ifndef MY_ATOMIC_MODE_RWLOCKS +/* + * Attempt to do atomic ops without locks + */ +#include "atomic/nolock.h" +#endif + +#ifndef make_atomic_cas_body +/* nolock.h was not able to generate even a CAS function, fall back */ +#include "atomic/rwlock.h" +#endif + +/* define missing functions by using the already generated ones */ +#ifndef make_atomic_add_body +#define make_atomic_add_body(S) \ + int ## S tmp=*a; \ + while (!my_atomic_cas ## S(a, &tmp, tmp+v)) ; \ + v=tmp; +#endif +#ifndef make_atomic_fas_body +#define make_atomic_fas_body(S) \ + int ## S tmp=*a; \ + while (!my_atomic_cas ## S(a, &tmp, v)) ; \ + v=tmp; +#endif +#ifndef make_atomic_load_body +#define make_atomic_load_body(S) \ + ret= 0; /* avoid compiler warning */ \ + (void)(my_atomic_cas ## S(a, &ret, ret)); +#endif +#ifndef make_atomic_store_body +#define make_atomic_store_body(S) \ + (void)(my_atomic_fas ## S (a, v)); +#endif + +/* + transparent_union doesn't work in g++ + Bug ? + + Darwin's gcc doesn't want to put pointers in a transparent_union + when built with -arch ppc64. Complains: + warning: 'transparent_union' attribute ignored +*/ +#if defined(__GNUC__) && !defined(__cplusplus) && \ + ! (defined(__APPLE__) && (defined(_ARCH_PPC64) ||defined (_ARCH_PPC))) +/* + we want to be able to use my_atomic_xxx functions with + both signed and unsigned integers. But gcc will issue a warning + "passing arg N of `my_atomic_XXX' as [un]signed due to prototype" + if the signedness of the argument doesn't match the prototype, or + "pointer targets in passing argument N of my_atomic_XXX differ in signedness" + if int* is used where uint* is expected (or vice versa). + Let's shut these warnings up +*/ +#define make_transparent_unions(S) \ + typedef union { \ + int ## S i; \ + uint ## S u; \ + } U_ ## S __attribute__ ((transparent_union)); \ + typedef union { \ + int ## S volatile *i; \ + uint ## S volatile *u; \ + } Uv_ ## S __attribute__ ((transparent_union)); +#define uintptr intptr +make_transparent_unions(8) +make_transparent_unions(16) +make_transparent_unions(32) +make_transparent_unions(64) +make_transparent_unions(ptr) +#undef uintptr +#undef make_transparent_unions +#define a U_a.i +#define cmp U_cmp.i +#define v U_v.i +#define set U_set.i +#else +#define U_8 int8 +#define U_16 int16 +#define U_32 int32 +#define U_64 int64 +#define U_ptr intptr +#define Uv_8 int8 +#define Uv_16 int16 +#define Uv_32 int32 +#define Uv_64 int64 +#define Uv_ptr intptr +#define U_a volatile *a +#define U_cmp *cmp +#define U_v v +#define U_set set +#endif /* __GCC__ transparent_union magic */ + +#define make_atomic_cas(S) \ +static inline int my_atomic_cas ## S(Uv_ ## S U_a, \ + Uv_ ## S U_cmp, U_ ## S U_set) \ +{ \ + int8 ret; \ + make_atomic_cas_body(S); \ + return ret; \ +} + +#define make_atomic_add(S) \ +static inline int ## S my_atomic_add ## S( \ + Uv_ ## S U_a, U_ ## S U_v) \ +{ \ + make_atomic_add_body(S); \ + return v; \ +} + +#define make_atomic_fas(S) \ +static inline int ## S my_atomic_fas ## S( \ + Uv_ ## S U_a, U_ ## S U_v) \ +{ \ + make_atomic_fas_body(S); \ + return v; \ +} + +#define make_atomic_load(S) \ +static inline int ## S my_atomic_load ## S(Uv_ ## S U_a) \ +{ \ + int ## S ret; \ + make_atomic_load_body(S); \ + return ret; \ +} + +#define make_atomic_store(S) \ +static inline void my_atomic_store ## S( \ + Uv_ ## S U_a, U_ ## S U_v) \ +{ \ + make_atomic_store_body(S); \ +} + +#ifdef MY_ATOMIC_HAS_8_16 +make_atomic_cas(8) +make_atomic_cas(16) +#endif +make_atomic_cas(32) +make_atomic_cas(64) +make_atomic_cas(ptr) + +#ifdef MY_ATOMIC_HAS_8_16 +make_atomic_add(8) +make_atomic_add(16) +#endif +make_atomic_add(32) +make_atomic_add(64) + +#ifdef MY_ATOMIC_HAS_8_16 +make_atomic_load(8) +make_atomic_load(16) +#endif +make_atomic_load(32) +make_atomic_load(64) +make_atomic_load(ptr) + +#ifdef MY_ATOMIC_HAS_8_16 +make_atomic_fas(8) +make_atomic_fas(16) +#endif +make_atomic_fas(32) +make_atomic_fas(64) +make_atomic_fas(ptr) + +#ifdef MY_ATOMIC_HAS_8_16 +make_atomic_store(8) +make_atomic_store(16) +#endif +make_atomic_store(32) +make_atomic_store(64) +make_atomic_store(ptr) + +#ifdef _atomic_h_cleanup_ +#include _atomic_h_cleanup_ +#undef _atomic_h_cleanup_ +#endif + +#undef U_8 +#undef U_16 +#undef U_32 +#undef U_64 +#undef U_ptr +#undef Uv_8 +#undef Uv_16 +#undef Uv_32 +#undef Uv_64 +#undef Uv_ptr +#undef a +#undef cmp +#undef v +#undef set +#undef U_a +#undef U_cmp +#undef U_v +#undef U_set +#undef make_atomic_add +#undef make_atomic_cas +#undef make_atomic_load +#undef make_atomic_store +#undef make_atomic_fas +#undef make_atomic_add_body +#undef make_atomic_cas_body +#undef make_atomic_load_body +#undef make_atomic_store_body +#undef make_atomic_fas_body +#undef intptr + +/* + the macro below defines (as an expression) the code that + will be run in spin-loops. Intel manuals recummend to have PAUSE there. + It is expected to be defined in include/atomic/ *.h files +*/ +#ifndef LF_BACKOFF +#define LF_BACKOFF (1) +#endif + +#define MY_ATOMIC_OK 0 +#define MY_ATOMIC_NOT_1CPU 1 +extern int my_atomic_initialize(); + +#endif + +#endif /* MY_ATOMIC_INCLUDED */ diff --git a/database/include/mysql/private/my_base.h b/database/include/mysql/private/my_base.h new file mode 100644 index 0000000..86be943 --- /dev/null +++ b/database/include/mysql/private/my_base.h @@ -0,0 +1,604 @@ +/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + + +/* This file includes constants used with all databases */ + +#ifndef _my_base_h +#define _my_base_h + +#include +#include /* This includes types */ +#include +#include +#include + +#ifndef EOVERFLOW +#define EOVERFLOW 84 +#endif + +#include + +/* The following is bits in the flag parameter to ha_open() */ + +#define HA_OPEN_ABORT_IF_LOCKED 0 /* default */ +#define HA_OPEN_WAIT_IF_LOCKED 1 +#define HA_OPEN_IGNORE_IF_LOCKED 2 +#define HA_OPEN_TMP_TABLE 4 /* Table is a temp table */ +#define HA_OPEN_DELAY_KEY_WRITE 8 /* Don't update index */ +#define HA_OPEN_ABORT_IF_CRASHED 16 +#define HA_OPEN_FOR_REPAIR 32 /* open even if crashed */ +#define HA_OPEN_FROM_SQL_LAYER 64 +#define HA_OPEN_MMAP 128 /* open memory mapped */ +#define HA_OPEN_COPY 256 /* Open copy (for repair) */ +/* Internal temp table, used for temporary results */ +#define HA_OPEN_INTERNAL_TABLE 512 +#define HA_OPEN_MERGE_TABLE 1024 + +/* The following is parameter to ha_rkey() how to use key */ + +/* + We define a complete-field prefix of a key value as a prefix where + the last included field in the prefix contains the full field, not + just some bytes from the start of the field. A partial-field prefix + is allowed to contain only a few first bytes from the last included + field. + + Below HA_READ_KEY_EXACT, ..., HA_READ_BEFORE_KEY can take a + complete-field prefix of a key value as the search + key. HA_READ_PREFIX and HA_READ_PREFIX_LAST could also take a + partial-field prefix, but currently (4.0.10) they are only used with + complete-field prefixes. MySQL uses a padding trick to implement + LIKE 'abc%' queries. + + NOTE that in InnoDB HA_READ_PREFIX_LAST will NOT work with a + partial-field prefix because InnoDB currently strips spaces from the + end of varchar fields! +*/ + +enum ha_rkey_function { + HA_READ_KEY_EXACT, /* Find first record else error */ + HA_READ_KEY_OR_NEXT, /* Record or next record */ + HA_READ_KEY_OR_PREV, /* Record or previous */ + HA_READ_AFTER_KEY, /* Find next rec. after key-record */ + HA_READ_BEFORE_KEY, /* Find next rec. before key-record */ + HA_READ_PREFIX, /* Key which as same prefix */ + HA_READ_PREFIX_LAST, /* Last key with the same prefix */ + HA_READ_PREFIX_LAST_OR_PREV, /* Last or prev key with the same prefix */ + HA_READ_MBR_CONTAIN, + HA_READ_MBR_INTERSECT, + HA_READ_MBR_WITHIN, + HA_READ_MBR_DISJOINT, + HA_READ_MBR_EQUAL +}; + + /* Key algorithm types */ + +enum ha_key_alg { + HA_KEY_ALG_UNDEF= 0, /* Not specified (old file) */ + HA_KEY_ALG_BTREE= 1, /* B-tree, default one */ + HA_KEY_ALG_RTREE= 2, /* R-tree, for spatial searches */ + HA_KEY_ALG_HASH= 3, /* HASH keys (HEAP tables) */ + HA_KEY_ALG_FULLTEXT= 4 /* FULLTEXT (MyISAM tables) */ +}; + + /* Storage media types */ + +enum ha_storage_media { + HA_SM_DEFAULT= 0, /* Not specified (engine default) */ + HA_SM_DISK= 1, /* DISK storage */ + HA_SM_MEMORY= 2 /* MAIN MEMORY storage */ +}; + + /* The following is parameter to ha_extra() */ + +enum ha_extra_function { + HA_EXTRA_NORMAL=0, /* Optimize for space (def) */ + HA_EXTRA_QUICK=1, /* Optimize for speed */ + HA_EXTRA_NOT_USED=2, /* Should be ignored by handler */ + HA_EXTRA_CACHE=3, /* Cache record in HA_rrnd() */ + HA_EXTRA_NO_CACHE=4, /* End caching of records (def) */ + HA_EXTRA_NO_READCHECK=5, /* No readcheck on update */ + HA_EXTRA_READCHECK=6, /* Use readcheck (def) */ + HA_EXTRA_KEYREAD=7, /* Read only key to database */ + HA_EXTRA_NO_KEYREAD=8, /* Normal read of records (def) */ + HA_EXTRA_NO_USER_CHANGE=9, /* No user is allowed to write */ + HA_EXTRA_KEY_CACHE=10, + HA_EXTRA_NO_KEY_CACHE=11, + HA_EXTRA_WAIT_LOCK=12, /* Wait until file is avalably (def) */ + HA_EXTRA_NO_WAIT_LOCK=13, /* If file is locked, return quickly */ + HA_EXTRA_WRITE_CACHE=14, /* Use write cache in ha_write() */ + HA_EXTRA_FLUSH_CACHE=15, /* flush write_record_cache */ + HA_EXTRA_NO_KEYS=16, /* Remove all update of keys */ + HA_EXTRA_KEYREAD_CHANGE_POS=17, /* Keyread, but change pos */ + /* xxxxchk -r must be used */ + HA_EXTRA_REMEMBER_POS=18, /* Remember pos for next/prev */ + HA_EXTRA_RESTORE_POS=19, + HA_EXTRA_REINIT_CACHE=20, /* init cache from current record */ + HA_EXTRA_FORCE_REOPEN=21, /* Datafile have changed on disk */ + HA_EXTRA_FLUSH, /* Flush tables to disk */ + HA_EXTRA_NO_ROWS, /* Don't write rows */ + HA_EXTRA_RESET_STATE, /* Reset positions */ + HA_EXTRA_IGNORE_DUP_KEY, /* Dup keys don't rollback everything*/ + HA_EXTRA_NO_IGNORE_DUP_KEY, + HA_EXTRA_PREPARE_FOR_DROP, + HA_EXTRA_PREPARE_FOR_UPDATE, /* Remove read cache if problems */ + HA_EXTRA_PRELOAD_BUFFER_SIZE, /* Set buffer size for preloading */ + /* + On-the-fly switching between unique and non-unique key inserting. + */ + HA_EXTRA_CHANGE_KEY_TO_UNIQUE, + HA_EXTRA_CHANGE_KEY_TO_DUP, + /* + When using HA_EXTRA_KEYREAD, overwrite only key member fields and keep + other fields intact. When this is off (by default) InnoDB will use memcpy + to overwrite entire row. + */ + HA_EXTRA_KEYREAD_PRESERVE_FIELDS, + HA_EXTRA_MMAP, + /* + Ignore if the a tuple is not found, continue processing the + transaction and ignore that 'row'. Needed for idempotency + handling on the slave + + Currently only used by NDB storage engine. Partition handler ignores flag. + */ + HA_EXTRA_IGNORE_NO_KEY, + HA_EXTRA_NO_IGNORE_NO_KEY, + /* + Mark the table as a log table. For some handlers (e.g. CSV) this results + in a special locking for the table. + */ + HA_EXTRA_MARK_AS_LOG_TABLE, + /* + Informs handler that write_row() which tries to insert new row into the + table and encounters some already existing row with same primary/unique + key can replace old row with new row instead of reporting error (basically + it informs handler that we do REPLACE instead of simple INSERT). + Off by default. + */ + HA_EXTRA_WRITE_CAN_REPLACE, + HA_EXTRA_WRITE_CANNOT_REPLACE, + /* + Inform handler that delete_row()/update_row() cannot batch deletes/updates + and should perform them immediately. This may be needed when table has + AFTER DELETE/UPDATE triggers which access to subject table. + These flags are reset by the handler::extra(HA_EXTRA_RESET) call. + */ + HA_EXTRA_DELETE_CANNOT_BATCH, + HA_EXTRA_UPDATE_CANNOT_BATCH, + /* + Inform handler that an "INSERT...ON DUPLICATE KEY UPDATE" will be + executed. This condition is unset by HA_EXTRA_NO_IGNORE_DUP_KEY. + */ + HA_EXTRA_INSERT_WITH_UPDATE, + /* Inform handler that we will do a rename */ + HA_EXTRA_PREPARE_FOR_RENAME, + /* + Special actions for MERGE tables. + */ + HA_EXTRA_ADD_CHILDREN_LIST, + HA_EXTRA_ATTACH_CHILDREN, + HA_EXTRA_IS_ATTACHED_CHILDREN, + HA_EXTRA_DETACH_CHILDREN, + HA_EXTRA_DETACH_CHILD, + /* Inform handler we will force a close as part of flush */ + HA_EXTRA_PREPARE_FOR_FORCED_CLOSE +}; + +/* Compatible option, to be deleted in 6.0 */ +#define HA_EXTRA_PREPARE_FOR_DELETE HA_EXTRA_PREPARE_FOR_DROP + + /* The following is parameter to ha_panic() */ + +enum ha_panic_function { + HA_PANIC_CLOSE, /* Close all databases */ + HA_PANIC_WRITE, /* Unlock and write status */ + HA_PANIC_READ /* Lock and read keyinfo */ +}; + + /* The following is parameter to ha_create(); keytypes */ + +enum ha_base_keytype { + HA_KEYTYPE_END=0, + HA_KEYTYPE_TEXT=1, /* Key is sorted as letters */ + HA_KEYTYPE_BINARY=2, /* Key is sorted as unsigned chars */ + HA_KEYTYPE_SHORT_INT=3, + HA_KEYTYPE_LONG_INT=4, + HA_KEYTYPE_FLOAT=5, + HA_KEYTYPE_DOUBLE=6, + HA_KEYTYPE_NUM=7, /* Not packed num with pre-space */ + HA_KEYTYPE_USHORT_INT=8, + HA_KEYTYPE_ULONG_INT=9, + HA_KEYTYPE_LONGLONG=10, + HA_KEYTYPE_ULONGLONG=11, + HA_KEYTYPE_INT24=12, + HA_KEYTYPE_UINT24=13, + HA_KEYTYPE_INT8=14, + /* Varchar (0-255 bytes) with length packed with 1 byte */ + HA_KEYTYPE_VARTEXT1=15, /* Key is sorted as letters */ + HA_KEYTYPE_VARBINARY1=16, /* Key is sorted as unsigned chars */ + /* Varchar (0-65535 bytes) with length packed with 2 bytes */ + HA_KEYTYPE_VARTEXT2=17, /* Key is sorted as letters */ + HA_KEYTYPE_VARBINARY2=18, /* Key is sorted as unsigned chars */ + HA_KEYTYPE_BIT=19 +}; + +#define HA_MAX_KEYTYPE 31 /* Must be log2-1 */ + +/* + These flags kan be OR:ed to key-flag + Note that these can only be up to 16 bits! +*/ + +#define HA_NOSAME 1 /* Set if not dupplicated records */ +#define HA_PACK_KEY 2 /* Pack string key to previous key */ +#define HA_AUTO_KEY 16 +#define HA_BINARY_PACK_KEY 32 /* Packing of all keys to prev key */ +#define HA_FULLTEXT 128 /* For full-text search */ +#define HA_UNIQUE_CHECK 256 /* Check the key for uniqueness */ +#define HA_SPATIAL 1024 /* For spatial search */ +#define HA_NULL_ARE_EQUAL 2048 /* NULL in key are cmp as equal */ +#define HA_GENERATED_KEY 8192 /* Automaticly generated key */ +#define HA_RTREE_INDEX 16384 /* For RTREE search */ + + /* The combination of the above can be used for key type comparison. */ +#define HA_KEYFLAG_MASK (HA_NOSAME | HA_PACK_KEY | HA_AUTO_KEY | \ + HA_BINARY_PACK_KEY | HA_FULLTEXT | HA_UNIQUE_CHECK | \ + HA_SPATIAL | HA_NULL_ARE_EQUAL | HA_GENERATED_KEY | \ + HA_RTREE_INDEX) + +/* + Key contains partial segments. + + This flag is internal to the MySQL server by design. It is not supposed + neither to be saved in FRM-files, nor to be passed to storage engines. + It is intended to pass information into internal static sort_keys(KEY *, + KEY *) function. + + This flag can be calculated -- it's based on key lengths comparison. +*/ +#define HA_KEY_HAS_PART_KEY_SEG 65536 + + /* Automatic bits in key-flag */ + +#define HA_SPACE_PACK_USED 4 /* Test for if SPACE_PACK used */ +#define HA_VAR_LENGTH_KEY 8 +#define HA_NULL_PART_KEY 64 +#define HA_USES_COMMENT 4096 +#define HA_USES_PARSER 16384 /* Fulltext index uses [pre]parser */ +#define HA_USES_BLOCK_SIZE ((uint) 32768) +#define HA_SORT_ALLOWS_SAME 512 /* Intern bit when sorting records */ + +/* This flag can be used only in KEY::ext_key_flags */ +#define HA_EXT_NOSAME 131072 + + /* These flags can be added to key-seg-flag */ + +#define HA_SPACE_PACK 1 /* Pack space in key-seg */ +#define HA_PART_KEY_SEG 4 /* Used by MySQL for part-key-cols */ +#define HA_VAR_LENGTH_PART 8 +#define HA_NULL_PART 16 +#define HA_BLOB_PART 32 +#define HA_SWAP_KEY 64 +#define HA_REVERSE_SORT 128 /* Sort key in reverse order */ +#define HA_NO_SORT 256 /* do not bother sorting on this keyseg */ +/* + End space in unique/varchar are considered equal. (Like 'a' and 'a ') + Only needed for internal temporary tables. +*/ +#define HA_END_SPACE_ARE_EQUAL 512 +#define HA_BIT_PART 1024 +#define HA_CAN_MEMCMP 2048 /* internal, never stored in frm */ + + /* optionbits for database */ +#define HA_OPTION_PACK_RECORD 1 +#define HA_OPTION_PACK_KEYS 2 +#define HA_OPTION_COMPRESS_RECORD 4 +#define HA_OPTION_LONG_BLOB_PTR 8 /* new ISAM format */ +#define HA_OPTION_TMP_TABLE 16 +#define HA_OPTION_CHECKSUM 32 +#define HA_OPTION_DELAY_KEY_WRITE 64 +#define HA_OPTION_NO_PACK_KEYS 128 /* Reserved for MySQL */ +#define HA_OPTION_CREATE_FROM_ENGINE 256 +#define HA_OPTION_RELIES_ON_SQL_LAYER 512 +#define HA_OPTION_NULL_FIELDS 1024 +#define HA_OPTION_PAGE_CHECKSUM 2048 +/* .frm has extra create options in linked-list format */ +#define HA_OPTION_TEXT_CREATE_OPTIONS (1L << 14) +#define HA_OPTION_TEMP_COMPRESS_RECORD (1L << 15) /* set by isamchk */ +#define HA_OPTION_READ_ONLY_DATA (1L << 16) /* Set by isamchk */ +#define HA_OPTION_NO_CHECKSUM (1L << 17) +#define HA_OPTION_NO_DELAY_KEY_WRITE (1L << 18) + + /* Bits in flag to create() */ + +#define HA_DONT_TOUCH_DATA 1 /* Don't empty datafile (isamchk) */ +#define HA_PACK_RECORD 2 /* Request packed record format */ +#define HA_CREATE_TMP_TABLE 4 +#define HA_CREATE_CHECKSUM 8 +#define HA_CREATE_KEEP_FILES 16 /* don't overwrite .MYD and MYI */ +#define HA_CREATE_PAGE_CHECKSUM 32 +#define HA_CREATE_DELAY_KEY_WRITE 64 +#define HA_CREATE_RELIES_ON_SQL_LAYER 128 + +/* + The following flags (OR-ed) are passed to handler::info() method. + The method copies misc handler information out of the storage engine + to data structures accessible from MySQL + + Same flags are also passed down to mi_status, myrg_status, etc. +*/ + +/* this one is not used */ +#define HA_STATUS_POS 1 +/* + assuming the table keeps shared actual copy of the 'info' and + local, possibly outdated copy, the following flag means that + it should not try to get the actual data (locking the shared structure) + slightly outdated version will suffice +*/ +#define HA_STATUS_NO_LOCK 2 +/* update the time of the last modification (in handler::update_time) */ +#define HA_STATUS_TIME 4 +/* + update the 'constant' part of the info: + handler::max_data_file_length, max_index_file_length, create_time + sortkey, ref_length, block_size, data_file_name, index_file_name. + handler::table->s->keys_in_use, keys_for_keyread, rec_per_key +*/ +#define HA_STATUS_CONST 8 +/* + update the 'variable' part of the info: + handler::records, deleted, data_file_length, index_file_length, + check_time, mean_rec_length +*/ +#define HA_STATUS_VARIABLE 16 +/* + get the information about the key that caused last duplicate value error + update handler::errkey and handler::dupp_ref + see handler::get_dup_key() +*/ +#define HA_STATUS_ERRKEY 32 +/* + update handler::auto_increment_value +*/ +#define HA_STATUS_AUTO 64 +/* + Get also delete_length when HA_STATUS_VARIABLE is called. It's ok to set it also + when only HA_STATUS_VARIABLE but it won't be used. +*/ +#define HA_STATUS_VARIABLE_EXTRA 128 + +/* + Errorcodes given by handler functions + + opt_sum_query() assumes these codes are > 1 + Do not add error numbers before HA_ERR_FIRST. + If necessary to add lower numbers, change HA_ERR_FIRST accordingly. +*/ +#define HA_ERR_FIRST 120 /* Copy of first error nr.*/ + +#define HA_ERR_KEY_NOT_FOUND 120 /* Didn't find key on read or update */ +#define HA_ERR_FOUND_DUPP_KEY 121 /* Dupplicate key on write */ +#define HA_ERR_INTERNAL_ERROR 122 /* Internal error */ +#define HA_ERR_RECORD_CHANGED 123 /* Uppdate with is recoverable */ +#define HA_ERR_WRONG_INDEX 124 /* Wrong index given to function */ +#define HA_ERR_CRASHED 126 /* Indexfile is crashed */ +#define HA_ERR_WRONG_IN_RECORD 127 /* Record-file is crashed */ +#define HA_ERR_OUT_OF_MEM 128 /* Record-file is crashed */ +#define HA_ERR_NOT_A_TABLE 130 /* not a MYI file - no signature */ +#define HA_ERR_WRONG_COMMAND 131 /* Command not supported */ +#define HA_ERR_OLD_FILE 132 /* old databasfile */ +#define HA_ERR_NO_ACTIVE_RECORD 133 /* No record read in update() */ +#define HA_ERR_RECORD_DELETED 134 /* A record is not there */ +#define HA_ERR_RECORD_FILE_FULL 135 /* No more room in file */ +#define HA_ERR_INDEX_FILE_FULL 136 /* No more room in file */ +#define HA_ERR_END_OF_FILE 137 /* end in next/prev/first/last */ +#define HA_ERR_UNSUPPORTED 138 /* unsupported extension used */ +#define HA_ERR_TO_BIG_ROW 139 /* Too big row */ +#define HA_WRONG_CREATE_OPTION 140 /* Wrong create option */ +#define HA_ERR_FOUND_DUPP_UNIQUE 141 /* Dupplicate unique on write */ +#define HA_ERR_UNKNOWN_CHARSET 142 /* Can't open charset */ +#define HA_ERR_WRONG_MRG_TABLE_DEF 143 /* conflicting tables in MERGE */ +#define HA_ERR_CRASHED_ON_REPAIR 144 /* Last (automatic?) repair failed */ +#define HA_ERR_CRASHED_ON_USAGE 145 /* Table must be repaired */ +#define HA_ERR_LOCK_WAIT_TIMEOUT 146 +#define HA_ERR_LOCK_TABLE_FULL 147 +#define HA_ERR_READ_ONLY_TRANSACTION 148 /* Updates not allowed */ +#define HA_ERR_LOCK_DEADLOCK 149 +#define HA_ERR_CANNOT_ADD_FOREIGN 150 /* Cannot add a foreign key constr. */ +#define HA_ERR_NO_REFERENCED_ROW 151 /* Cannot add a child row */ +#define HA_ERR_ROW_IS_REFERENCED 152 /* Cannot delete a parent row */ +#define HA_ERR_NO_SAVEPOINT 153 /* No savepoint with that name */ +#define HA_ERR_NON_UNIQUE_BLOCK_SIZE 154 /* Non unique key block size */ +#define HA_ERR_NO_SUCH_TABLE 155 /* The table does not exist in engine */ +#define HA_ERR_TABLE_EXIST 156 /* The table existed in storage engine */ +#define HA_ERR_NO_CONNECTION 157 /* Could not connect to storage engine */ +/* NULLs are not supported in spatial index */ +#define HA_ERR_NULL_IN_SPATIAL 158 +#define HA_ERR_TABLE_DEF_CHANGED 159 /* The table changed in storage engine */ +/* There's no partition in table for given value */ +#define HA_ERR_NO_PARTITION_FOUND 160 +#define HA_ERR_RBR_LOGGING_FAILED 161 /* Row-based binlogging of row failed */ +#define HA_ERR_DROP_INDEX_FK 162 /* Index needed in foreign key constr */ +/* + Upholding foreign key constraints would lead to a duplicate key error + in some other table. +*/ +#define HA_ERR_FOREIGN_DUPLICATE_KEY 163 +/* The table changed in storage engine */ +#define HA_ERR_TABLE_NEEDS_UPGRADE 164 +#define HA_ERR_TABLE_READONLY 165 /* The table is not writable */ + +#define HA_ERR_AUTOINC_READ_FAILED 166 /* Failed to get next autoinc value */ +#define HA_ERR_AUTOINC_ERANGE 167 /* Failed to set row autoinc value */ +#define HA_ERR_GENERIC 168 /* Generic error */ +/* row not actually updated: new values same as the old values */ +#define HA_ERR_RECORD_IS_THE_SAME 169 +/* It is not possible to log this statement */ +#define HA_ERR_LOGGING_IMPOSSIBLE 170 +/* The event was corrupt, leading to illegal data being read */ +#define HA_ERR_CORRUPT_EVENT 171 +#define HA_ERR_NEW_FILE 172 /* New file format */ +/* The event could not be processed no other handler error happened */ +#define HA_ERR_ROWS_EVENT_APPLY 173 +#define HA_ERR_INITIALIZATION 174 /* Error during initialization */ +#define HA_ERR_FILE_TOO_SHORT 175 /* File too short */ +#define HA_ERR_WRONG_CRC 176 /* Wrong CRC on page */ +#define HA_ERR_TOO_MANY_CONCURRENT_TRXS 177 /*Too many active concurrent transactions */ +#define HA_ERR_INDEX_COL_TOO_LONG 178 /* Index column length exceeds limit */ +#define HA_ERR_INDEX_CORRUPT 179 /* Index corrupted */ +#define HA_ERR_UNDO_REC_TOO_BIG 180 /* Undo log record too big */ +#define HA_ERR_TABLE_IN_FK_CHECK 181 /* Table being used in foreign key check */ +#define HA_ERR_ROW_NOT_VISIBLE 182 +#define HA_ERR_ABORTED_BY_USER 183 +#define HA_ERR_DISK_FULL 184 +#define HA_ERR_INCOMPATIBLE_DEFINITION 185 +#define HA_ERR_LAST 185 /* Copy of last error nr */ + +/* Number of different errors */ +#define HA_ERR_ERRORS (HA_ERR_LAST - HA_ERR_FIRST + 1) + + /* Other constants */ + +#define HA_NAMELEN 64 /* Max length of saved filename */ +#define NO_SUCH_KEY (~(uint)0) /* used as a key no. */ + +typedef ulong key_part_map; +#define HA_WHOLE_KEY (~(key_part_map)0) + + /* Intern constants in databases */ + + /* bits in _search */ +#define SEARCH_FIND 1 +#define SEARCH_NO_FIND 2 +#define SEARCH_SAME 4 +#define SEARCH_BIGGER 8 +#define SEARCH_SMALLER 16 +#define SEARCH_SAVE_BUFF 32 +#define SEARCH_UPDATE 64 +#define SEARCH_PREFIX 128 +#define SEARCH_LAST 256 +#define MBR_CONTAIN 512 +#define MBR_INTERSECT 1024 +#define MBR_WITHIN 2048 +#define MBR_DISJOINT 4096 +#define MBR_EQUAL 8192 +#define MBR_DATA 16384 +#define SEARCH_NULL_ARE_EQUAL 32768 /* NULL in keys are equal */ +#define SEARCH_NULL_ARE_NOT_EQUAL 65536 /* NULL in keys are not equal */ +/* Use this when inserting a key in position order */ +#define SEARCH_INSERT SEARCH_NULL_ARE_NOT_EQUAL*2 +/* Only part of the key is specified while reading */ +#define SEARCH_PART_KEY SEARCH_INSERT*2 +/* Used when user key (key 2) contains transaction id's */ +#define SEARCH_USER_KEY_HAS_TRANSID SEARCH_PART_KEY*2 +/* Used when page key (key 1) contains transaction id's */ +#define SEARCH_PAGE_KEY_HAS_TRANSID SEARCH_USER_KEY_HAS_TRANSID*2 + + /* bits in opt_flag */ +#define QUICK_USED 1 +#define READ_CACHE_USED 2 +#define READ_CHECK_USED 4 +#define KEY_READ_USED 8 +#define WRITE_CACHE_USED 16 +#define OPT_NO_ROWS 32 + + /* bits in update */ +#define HA_STATE_CHANGED 1 /* Database has changed */ +#define HA_STATE_AKTIV 2 /* Has a current record */ +#define HA_STATE_WRITTEN 4 /* Record is written */ +#define HA_STATE_DELETED 8 +#define HA_STATE_NEXT_FOUND 16 /* Next found record (record before) */ +#define HA_STATE_PREV_FOUND 32 /* Prev found record (record after) */ +#define HA_STATE_NO_KEY 64 /* Last read didn't find record */ +#define HA_STATE_KEY_CHANGED 128 +#define HA_STATE_WRITE_AT_END 256 /* set in _ps_find_writepos */ +#define HA_STATE_BUFF_SAVED 512 /* If current keybuff is info->buff */ +#define HA_STATE_ROW_CHANGED 1024 /* To invalide ROW cache */ +#define HA_STATE_EXTEND_BLOCK 2048 +#define HA_STATE_RNEXT_SAME 4096 /* rnext_same occupied lastkey2 */ + +/* myisampack expects no more than 32 field types. */ +enum en_fieldtype { + FIELD_LAST=-1,FIELD_NORMAL,FIELD_SKIP_ENDSPACE,FIELD_SKIP_PRESPACE, + FIELD_SKIP_ZERO,FIELD_BLOB,FIELD_CONSTANT,FIELD_INTERVALL,FIELD_ZERO, + FIELD_VARCHAR,FIELD_CHECK, + FIELD_enum_val_count +}; + +enum data_file_type { + STATIC_RECORD, DYNAMIC_RECORD, COMPRESSED_RECORD, BLOCK_RECORD, NO_RECORD +}; + +/* For key ranges */ + +#define NO_MIN_RANGE 1 +#define NO_MAX_RANGE 2 +#define NEAR_MIN 4 +#define NEAR_MAX 8 +#define UNIQUE_RANGE 16 +#define EQ_RANGE 32 +#define NULL_RANGE 64 +#define GEOM_FLAG 128 +#define SKIP_RANGE 256 + +typedef struct st_key_range +{ + const uchar *key; + uint length; + key_part_map keypart_map; + enum ha_rkey_function flag; +} key_range; + +typedef void *range_id_t; + +typedef struct st_key_multi_range +{ + key_range start_key; + key_range end_key; + range_id_t ptr; /* Free to use by caller (ptr to row etc) */ + uint range_flag; /* key range flags see above */ +} KEY_MULTI_RANGE; + + +/* For number of records */ +#ifdef BIG_TABLES +#define rows2double(A) ulonglong2double(A) +typedef my_off_t ha_rows; +#else +#define rows2double(A) (double) (A) +typedef ulong ha_rows; +#endif + +#define HA_POS_ERROR (~ (ha_rows) 0) +#define HA_OFFSET_ERROR (~ (my_off_t) 0) +#define HA_ROWS_MAX HA_POS_ERROR + +#if SYSTEM_SIZEOF_OFF_T == 4 +#define MAX_FILE_SIZE INT_MAX32 +#else +#define MAX_FILE_SIZE LONGLONG_MAX +#endif + +#define HA_VARCHAR_PACKLENGTH(field_length) ((field_length) < 256 ? 1 :2) + +/* invalidator function reference for Query Cache */ +C_MODE_START +typedef void (* invalidator_by_filename)(const char * filename); +C_MODE_END + +#endif /* _my_base_h */ diff --git a/database/include/mysql/private/my_bit.h b/database/include/mysql/private/my_bit.h new file mode 100644 index 0000000..ef8a8c4 --- /dev/null +++ b/database/include/mysql/private/my_bit.h @@ -0,0 +1,126 @@ +/* Copyright (c) 2007, 2011, Oracle and/or its affiliates. + Copyright (c) 2009-2011, Monty Program Ab + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef MY_BIT_INCLUDED +#define MY_BIT_INCLUDED + +#include + +/* + Some useful bit functions +*/ + +C_MODE_START + +extern const char _my_bits_nbits[256]; +extern const uchar _my_bits_reverse_table[256]; + +/* + Find smallest X in 2^X >= value + This can be used to divide a number with value by doing a shift instead +*/ + +static inline uint my_bit_log2(ulong value) +{ + uint bit; + for (bit=0 ; value > 1 ; value>>=1, bit++) ; + return bit; +} + +static inline uint my_count_bits(ulonglong v) +{ +#if SIZEOF_LONG_LONG > 4 + /* The following code is a bit faster on 16 bit machines than if we would + only shift v */ + ulong v2=(ulong) (v >> 32); + return (uint) (uchar) (_my_bits_nbits[(uchar) v] + + _my_bits_nbits[(uchar) (v >> 8)] + + _my_bits_nbits[(uchar) (v >> 16)] + + _my_bits_nbits[(uchar) (v >> 24)] + + _my_bits_nbits[(uchar) (v2)] + + _my_bits_nbits[(uchar) (v2 >> 8)] + + _my_bits_nbits[(uchar) (v2 >> 16)] + + _my_bits_nbits[(uchar) (v2 >> 24)]); +#else + return (uint) (uchar) (_my_bits_nbits[(uchar) v] + + _my_bits_nbits[(uchar) (v >> 8)] + + _my_bits_nbits[(uchar) (v >> 16)] + + _my_bits_nbits[(uchar) (v >> 24)]); +#endif +} + +static inline uint my_count_bits_uint32(uint32 v) +{ + return (uint) (uchar) (_my_bits_nbits[(uchar) v] + + _my_bits_nbits[(uchar) (v >> 8)] + + _my_bits_nbits[(uchar) (v >> 16)] + + _my_bits_nbits[(uchar) (v >> 24)]); +} + + +/* + Next highest power of two + + SYNOPSIS + my_round_up_to_next_power() + v Value to check + + RETURN + Next or equal power of 2 + Note: 0 will return 0 + + NOTES + Algorithm by Sean Anderson, according to: + http://graphics.stanford.edu/~seander/bithacks.html + (Orignal code public domain) + + Comments shows how this works with 01100000000000000000000000001011 +*/ + +static inline uint32 my_round_up_to_next_power(uint32 v) +{ + v--; /* 01100000000000000000000000001010 */ + v|= v >> 1; /* 01110000000000000000000000001111 */ + v|= v >> 2; /* 01111100000000000000000000001111 */ + v|= v >> 4; /* 01111111110000000000000000001111 */ + v|= v >> 8; /* 01111111111111111100000000001111 */ + v|= v >> 16; /* 01111111111111111111111111111111 */ + return v+1; /* 10000000000000000000000000000000 */ +} + +static inline uint32 my_clear_highest_bit(uint32 v) +{ + uint32 w=v >> 1; + w|= w >> 1; + w|= w >> 2; + w|= w >> 4; + w|= w >> 8; + w|= w >> 16; + return v & w; +} + +static inline uint32 my_reverse_bits(uint32 key) +{ + return + (_my_bits_reverse_table[ key & 255] << 24) | + (_my_bits_reverse_table[(key>> 8) & 255] << 16) | + (_my_bits_reverse_table[(key>>16) & 255] << 8) | + _my_bits_reverse_table[(key>>24) ]; +} + +C_MODE_END + +#endif /* MY_BIT_INCLUDED */ diff --git a/database/include/mysql/private/my_bitmap.h b/database/include/mysql/private/my_bitmap.h new file mode 100644 index 0000000..967071a --- /dev/null +++ b/database/include/mysql/private/my_bitmap.h @@ -0,0 +1,152 @@ +/* Copyright (c) 2001, 2011, Oracle and/or its affiliates. + Copyright (c) 2009-2011, Monty Program Ab + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef _my_bitmap_h_ +#define _my_bitmap_h_ + +#define MY_BIT_NONE (~(uint) 0) + +#include +#include + +typedef uint32 my_bitmap_map; + +typedef struct st_bitmap +{ + my_bitmap_map *bitmap; + my_bitmap_map *last_word_ptr; + /* + mutex will be acquired for the duration of each bitmap operation if + thread_safe flag in bitmap_init was set. Otherwise, we optimize by not + acquiring the mutex + */ + mysql_mutex_t *mutex; + my_bitmap_map last_word_mask; + uint32 n_bits; /* number of bits occupied by the above */ +} MY_BITMAP; + +#ifdef __cplusplus +extern "C" { +#endif +extern void create_last_word_mask(MY_BITMAP *map); +#define bitmap_init(A,B,C,D) my_bitmap_init(A,B,C,D) +extern my_bool bitmap_init(MY_BITMAP *map, my_bitmap_map *buf, uint n_bits, + my_bool thread_safe); +extern my_bool bitmap_is_clear_all(const MY_BITMAP *map); +extern my_bool bitmap_is_prefix(const MY_BITMAP *map, uint prefix_size); +extern my_bool bitmap_is_set_all(const MY_BITMAP *map); +extern my_bool bitmap_is_subset(const MY_BITMAP *map1, const MY_BITMAP *map2); +extern my_bool bitmap_is_overlapping(const MY_BITMAP *map1, + const MY_BITMAP *map2); +extern my_bool bitmap_test_and_set(MY_BITMAP *map, uint bitmap_bit); +extern my_bool bitmap_test_and_clear(MY_BITMAP *map, uint bitmap_bit); +extern my_bool bitmap_fast_test_and_set(MY_BITMAP *map, uint bitmap_bit); +extern my_bool bitmap_union_is_set_all(const MY_BITMAP *map1, + const MY_BITMAP *map2); +extern my_bool bitmap_exists_intersection(const MY_BITMAP **bitmap_array, + uint bitmap_count, + uint start_bit, uint end_bit); + +extern uint bitmap_set_next(MY_BITMAP *map); +extern uint bitmap_get_first(const MY_BITMAP *map); +extern uint bitmap_get_first_set(const MY_BITMAP *map); +extern uint bitmap_bits_set(const MY_BITMAP *map); +extern void bitmap_free(MY_BITMAP *map); +extern void bitmap_set_above(MY_BITMAP *map, uint from_byte, uint use_bit); +extern void bitmap_set_prefix(MY_BITMAP *map, uint prefix_size); +extern void bitmap_intersect(MY_BITMAP *map, const MY_BITMAP *map2); +extern void bitmap_subtract(MY_BITMAP *map, const MY_BITMAP *map2); +extern void bitmap_union(MY_BITMAP *map, const MY_BITMAP *map2); +extern void bitmap_xor(MY_BITMAP *map, const MY_BITMAP *map2); +extern void bitmap_invert(MY_BITMAP *map); +extern void bitmap_copy(MY_BITMAP *map, const MY_BITMAP *map2); + +extern uint bitmap_lock_set_next(MY_BITMAP *map); +extern void bitmap_lock_clear_bit(MY_BITMAP *map, uint bitmap_bit); +/* Fast, not thread safe, bitmap functions */ +#define bitmap_buffer_size(bits) (((bits)+31)/32)*4 +#define no_bytes_in_map(map) (((map)->n_bits + 7)/8) +#define no_words_in_map(map) (((map)->n_bits + 31)/32) +#define bytes_word_aligned(bytes) (4*((bytes + 3)/4)) +#define _bitmap_set_bit(MAP, BIT) (((uchar*)(MAP)->bitmap)[(BIT) / 8] \ + |= (1 << ((BIT) & 7))) +#define _bitmap_flip_bit(MAP, BIT) (((uchar*)(MAP)->bitmap)[(BIT) / 8] \ + ^= (1 << ((BIT) & 7))) +#define _bitmap_clear_bit(MAP, BIT) (((uchar*)(MAP)->bitmap)[(BIT) / 8] \ + &= ~ (1 << ((BIT) & 7))) +#define _bitmap_is_set(MAP, BIT) (uint) (((uchar*)(MAP)->bitmap)[(BIT) / 8] \ + & (1 << ((BIT) & 7))) +/* + WARNING! + + The below symbols are inline functions in DEBUG builds and macros in + non-DEBUG builds. The latter evaluate their 'bit' argument twice. + + NEVER use an increment/decrement operator with the 'bit' argument. + It would work with DEBUG builds, but fails later in production builds! + + FORBIDDEN: bitmap_set_bit($my_bitmap, (field++)->field_index); +*/ +#ifndef DBUG_OFF +static inline void +bitmap_set_bit(MY_BITMAP *map,uint bit) +{ + DBUG_ASSERT(bit < (map)->n_bits); + _bitmap_set_bit(map,bit); +} +static inline void +bitmap_flip_bit(MY_BITMAP *map,uint bit) +{ + DBUG_ASSERT(bit < (map)->n_bits); + _bitmap_flip_bit(map,bit); +} +static inline void +bitmap_clear_bit(MY_BITMAP *map,uint bit) +{ + DBUG_ASSERT(bit < (map)->n_bits); + _bitmap_clear_bit(map,bit); +} +static inline uint +bitmap_is_set(const MY_BITMAP *map,uint bit) +{ + DBUG_ASSERT(bit < (map)->n_bits); + return _bitmap_is_set(map,bit); +} +#else +#define bitmap_set_bit(MAP, BIT) _bitmap_set_bit(MAP, BIT) +#define bitmap_flip_bit(MAP, BIT) _bitmap_flip_bit(MAP, BIT) +#define bitmap_clear_bit(MAP, BIT) _bitmap_clear_bit(MAP, BIT) +#define bitmap_is_set(MAP, BIT) _bitmap_is_set(MAP, BIT) +#endif + +static inline my_bool bitmap_cmp(const MY_BITMAP *map1, const MY_BITMAP *map2) +{ + if (memcmp(map1->bitmap, map2->bitmap, 4*(no_words_in_map(map1)-1)) != 0) + return FALSE; + return ((*map1->last_word_ptr | map1->last_word_mask) == + (*map2->last_word_ptr | map2->last_word_mask)); +} + +#define bitmap_clear_all(MAP) \ + { memset((MAP)->bitmap, 0, 4*no_words_in_map((MAP))); } +#define bitmap_set_all(MAP) \ + (memset((MAP)->bitmap, 0xFF, 4*no_words_in_map((MAP)))) + +#ifdef __cplusplus +} +#endif + +#endif /* _my_bitmap_h_ */ diff --git a/database/include/mysql/private/my_check_opt.h b/database/include/mysql/private/my_check_opt.h new file mode 100644 index 0000000..6ada510 --- /dev/null +++ b/database/include/mysql/private/my_check_opt.h @@ -0,0 +1,75 @@ +/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; version 2 of the License. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef _my_check_opt_h +#define _my_check_opt_h + +#ifdef __cplusplus +extern "C" { +#endif + +/* + All given definitions needed for MyISAM storage engine: + myisamchk.c or/and ha_myisam.cc or/and micheck.c + Some definitions are needed by the MySQL parser. +*/ + +#define T_AUTO_INC (1UL << 0) +#define T_AUTO_REPAIR (1UL << 1) +#define T_BACKUP_DATA (1UL << 2) +#define T_CALC_CHECKSUM (1UL << 3) +#define T_CHECK (1UL << 4) +#define T_CHECK_ONLY_CHANGED (1UL << 5) +#define T_CREATE_MISSING_KEYS (1UL << 6) +#define T_DESCRIPT (1UL << 7) +#define T_DONT_CHECK_CHECKSUM (1UL << 8) +#define T_EXTEND (1UL << 9) +#define T_FAST (1UL << 10) +#define T_FORCE_CREATE (1UL << 11) +#define T_FORCE_UNIQUENESS (1UL << 12) +#define T_INFO (1UL << 13) +/** CHECK TABLE...MEDIUM (the default) */ +#define T_MEDIUM (1UL << 14) +/** CHECK TABLE...QUICK */ +#define T_QUICK (1UL << 15) +#define T_READONLY (1UL << 16) +#define T_REP (1UL << 17) +#define T_REP_BY_SORT (1UL << 18) +#define T_REP_PARALLEL (1UL << 19) +#define T_RETRY_WITHOUT_QUICK (1UL << 20) +#define T_SAFE_REPAIR (1UL << 21) +#define T_SILENT (1UL << 22) +#define T_SORT_INDEX (1UL << 23) +#define T_SORT_RECORDS (1UL << 24) +#define T_STATISTICS (1UL << 25) +#define T_UNPACK (1UL << 26) +#define T_UPDATE_STATE (1UL << 27) +#define T_VERBOSE (1UL << 28) +#define T_VERY_SILENT (1UL << 29) +#define T_WAIT_FOREVER (1UL << 30) +#define T_WRITE_LOOP (1UL << 31) +#define T_ZEROFILL (1ULL << 32) +#define T_ZEROFILL_KEEP_LSN (1ULL << 33) +/** If repair should not bump create_rename_lsn */ +#define T_NO_CREATE_RENAME_LSN (1ULL << 34) +/** If repair shouldn't do any locks */ +#define T_NO_LOCKS (1ULL << 35) + +#define T_REP_ANY (T_REP | T_REP_BY_SORT | T_REP_PARALLEL) + +#ifdef __cplusplus +} +#endif +#endif diff --git a/database/include/mysql/private/my_compare.h b/database/include/mysql/private/my_compare.h new file mode 100644 index 0000000..1d45a33 --- /dev/null +++ b/database/include/mysql/private/my_compare.h @@ -0,0 +1,156 @@ +/* Copyright (c) 2011, Oracle and/or its affiliates. + Copyright (c) Monty Program Ab; 1991-2011 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef _my_compare_h +#define _my_compare_h + +#include "myisampack.h" +#ifdef __cplusplus +extern "C" { +#endif + +#include "m_ctype.h" /* CHARSET_INFO */ + +/* + There is a hard limit for the maximum number of keys as there are only + 8 bits in the index file header for the number of keys in a table. + This means that 0..255 keys can exist for a table. The idea of + HA_MAX_POSSIBLE_KEY is to ensure that one can use myisamchk & tools on + a MyISAM table for which one has more keys than MyISAM is normally + compiled for. If you don't have this, you will get a core dump when + running myisamchk compiled for 128 keys on a table with 255 keys. +*/ + +#define HA_MAX_POSSIBLE_KEY 255 /* For myisamchk */ +/* + The following defines can be increased if necessary. + But beware the dependency of MI_MAX_POSSIBLE_KEY_BUFF and HA_MAX_KEY_LENGTH. +*/ + +#define HA_MAX_KEY_LENGTH 1000 /* Max length in bytes */ +#define HA_MAX_KEY_SEG 32 /* Max segments for key */ + +#define HA_MAX_POSSIBLE_KEY_BUFF (HA_MAX_KEY_LENGTH + 24+ 6+6) +#define HA_MAX_KEY_BUFF (HA_MAX_KEY_LENGTH+HA_MAX_KEY_SEG*6+8+8) + +typedef struct st_HA_KEYSEG /* Key-portion */ +{ + CHARSET_INFO *charset; + uint32 start; /* Start of key in record */ + uint32 null_pos; /* position to NULL indicator */ + uint16 bit_pos; /* Position to bit part */ + uint16 flag; + uint16 length; /* Keylength */ + uint16 language; + uint8 type; /* Type of key (for sort) */ + uint8 null_bit; /* bitmask to test for NULL */ + uint8 bit_start,bit_end; /* if bit field */ + uint8 bit_length; /* Length of bit part */ +} HA_KEYSEG; + +#define get_key_length(length,key) \ +{ if (*(const uchar*) (key) != 255) \ + length= (uint) *(const uchar*) ((key)++); \ + else \ + { length= mi_uint2korr((key)+1); (key)+=3; } \ +} + +#define get_key_length_rdonly(length,key) \ +{ if (*(const uchar*) (key) != 255) \ + length= ((uint) *(const uchar*) ((key))); \ + else \ + { length= mi_uint2korr((key)+1); } \ +} + +#define get_key_pack_length(length,length_pack,key) \ +{ if (*(const uchar*) (key) != 255) \ + { length= (uint) *(const uchar*) ((key)++); length_pack= 1; }\ + else \ + { length=mi_uint2korr((key)+1); (key)+= 3; length_pack= 3; } \ +} + +#define store_key_length_inc(key,length) \ +{ if ((length) < 255) \ + { *(key)++= (length); } \ + else \ + { *(key)=255; mi_int2store((key)+1,(length)); (key)+=3; } \ +} + +#define size_to_store_key_length(length) ((length) < 255 ? 1 : 3) + +static inline uint16 get_rec_bits(const uchar *ptr, uchar ofs, uint len) +{ + uint16 val= ptr[0]; + if (ofs + len > 8) + val|= (uint16)(ptr[1]) << 8; + return (val >> ofs) & ((1 << len) - 1); +} + +static inline void set_rec_bits(uint16 bits, uchar *ptr, uchar ofs, uint len) +{ + ptr[0]= (ptr[0] & ~(((1 << len) - 1) << ofs)) | (bits << ofs); + if (ofs + len > 8) + ptr[1]= (ptr[1] & ~((1 << (len - 8 + ofs)) - 1)) | (bits >> (8 - ofs)); +} + +#define clr_rec_bits(bit_ptr, bit_ofs, bit_len) \ + set_rec_bits(0, bit_ptr, bit_ofs, bit_len) + +extern int ha_compare_text(CHARSET_INFO *, const uchar *, uint, + const uchar *, uint , my_bool, my_bool); +extern int ha_key_cmp(HA_KEYSEG *keyseg, const uchar *a, + const uchar *b, uint key_length, uint nextflag, + uint *diff_pos); +extern HA_KEYSEG *ha_find_null(HA_KEYSEG *keyseg, const uchar *a); + +/* + Inside an in-memory data record, memory pointers to pieces of the + record (like BLOBs) are stored in their native byte order and in + this amount of bytes. +*/ +#define portable_sizeof_char_ptr 8 +#ifdef __cplusplus +} +#endif + +/** + Return values of index_cond_func_xxx functions. + + 0=ICP_NO_MATCH - index tuple doesn't satisfy the pushed index condition (the + engine should discard the tuple and go to the next one) + 1=ICP_MATCH - index tuple satisfies the pushed index condition (the + engine should fetch and return the record) + 2=ICP_OUT_OF_RANGE - index tuple is out range that we're scanning, e.g. this + if we're scanning "t.key BETWEEN 10 AND 20" and got a + "t.key=21" tuple (the engine should stop scanning and + return HA_ERR_END_OF_FILE right away). + 3=ICP_ABORTED_BY_USER - engine must stop scanning and should return + HA_ERR_ABORTED_BY_USER right away + -1= ICP_ERROR - Reserved for internal errors in engines. Should not be + returned by index_cond_func_xxx +*/ + +typedef enum icp_result { + ICP_ERROR=-1, + ICP_NO_MATCH=0, + ICP_MATCH=1, + ICP_OUT_OF_RANGE=2, + ICP_ABORTED_BY_USER=3 +} ICP_RESULT; + +typedef ICP_RESULT (*index_cond_func_t)(void *param); + +#endif /* _my_compare_h */ diff --git a/database/include/mysql/private/my_context.h b/database/include/mysql/private/my_context.h new file mode 100644 index 0000000..dd44103 --- /dev/null +++ b/database/include/mysql/private/my_context.h @@ -0,0 +1,232 @@ +/* + Copyright 2011 Kristian Nielsen and Monty Program Ab + + This file is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this. If not, see . +*/ + +/* + Simple API for spawning a co-routine, to be used for async libmysqlclient. + + Idea is that by implementing this interface using whatever facilities are + available for given platform, we can use the same code for the generic + libmysqlclient-async code. + + (This particular implementation uses Posix ucontext swapcontext().) +*/ + +#ifdef __WIN__ +#define MY_CONTEXT_USE_WIN32_FIBERS 1 +#elif defined(__GNUC__) && __GNUC__ >= 3 && defined(__x86_64__) && !defined(__ILP32__) +#define MY_CONTEXT_USE_X86_64_GCC_ASM +#elif defined(__GNUC__) && __GNUC__ >= 3 && defined(__i386__) +#define MY_CONTEXT_USE_I386_GCC_ASM +#elif defined(HAVE_UCONTEXT_H) +#define MY_CONTEXT_USE_UCONTEXT +#else +#define MY_CONTEXT_DISABLE +#endif + +#ifdef MY_CONTEXT_USE_WIN32_FIBERS +struct my_context { + void (*user_func)(void *); + void *user_arg; + void *app_fiber; + void *lib_fiber; + int return_value; +#ifndef DBUG_OFF + void *dbug_state; +#endif +}; +#endif + + +#ifdef MY_CONTEXT_USE_UCONTEXT +#include + +struct my_context { + void (*user_func)(void *); + void *user_data; + void *stack; + size_t stack_size; + ucontext_t base_context; + ucontext_t spawned_context; + int active; +#ifdef HAVE_VALGRIND + unsigned int valgrind_stack_id; +#endif +#ifndef DBUG_OFF + void *dbug_state; +#endif +}; +#endif + + +#ifdef MY_CONTEXT_USE_X86_64_GCC_ASM +#include + +struct my_context { + uint64_t save[9]; + void *stack_top; + void *stack_bot; +#ifdef HAVE_VALGRIND + unsigned int valgrind_stack_id; +#endif +#ifndef DBUG_OFF + void *dbug_state; +#endif +}; +#endif + + +#ifdef MY_CONTEXT_USE_I386_GCC_ASM +#include + +struct my_context { + uint64_t save[7]; + void *stack_top; + void *stack_bot; +#ifdef HAVE_VALGRIND + unsigned int valgrind_stack_id; +#endif +#ifndef DBUG_OFF + void *dbug_state; +#endif +}; +#endif + + +#ifdef MY_CONTEXT_DISABLE +struct my_context { + int dummy; +}; +#endif + + +/* + Initialize an asynchroneous context object. + Returns 0 on success, non-zero on failure. +*/ +extern int my_context_init(struct my_context *c, size_t stack_size); + +/* Free an asynchroneous context object, deallocating any resources used. */ +extern void my_context_destroy(struct my_context *c); + +/* + Spawn an asynchroneous context. The context will run the supplied user + function, passing the supplied user data pointer. + + The context must have been initialised with my_context_init() prior to + this call. + + The user function may call my_context_yield(), which will cause this + function to return 1. Then later my_context_continue() may be called, which + will resume the asynchroneous context by returning from the previous + my_context_yield() call. + + When the user function returns, this function returns 0. + + In case of error, -1 is returned. +*/ +extern int my_context_spawn(struct my_context *c, void (*f)(void *), void *d); + +/* + Suspend an asynchroneous context started with my_context_spawn. + + When my_context_yield() is called, execution immediately returns from the + last my_context_spawn() or my_context_continue() call. Then when later + my_context_continue() is called, execution resumes by returning from this + my_context_yield() call. + + Returns 0 if ok, -1 in case of error. +*/ +extern int my_context_yield(struct my_context *c); + +/* + Resume an asynchroneous context. The context was spawned by + my_context_spawn(), and later suspended inside my_context_yield(). + + The asynchroneous context may be repeatedly suspended with + my_context_yield() and resumed with my_context_continue(). + + Each time it is suspended, this function returns 1. When the originally + spawned user function returns, this function returns 0. + + In case of error, -1 is returned. +*/ +extern int my_context_continue(struct my_context *c); + + +struct mysql_async_context { + /* + This is set to the value that should be returned from foo_start() or + foo_cont() when a call is suspended. + */ + unsigned int events_to_wait_for; + /* + It is also set to the event(s) that triggered when a suspended call is + resumed, eg. whether we woke up due to connection completed or timeout + in mysql_real_connect_cont(). + */ + unsigned int events_occured; + /* + This is set to the result of the whole asynchronous operation when it + completes. It uses a union, as different calls have different return + types. + */ + union { + void *r_ptr; + const void *r_const_ptr; + int r_int; + my_bool r_my_bool; + } ret_result; + /* + The timeout value, for suspended calls that need to wake up on a timeout + (eg. mysql_real_connect_start(). + */ + unsigned int timeout_value; + /* + This flag is set when we are executing inside some asynchronous call + foo_start() or foo_cont(). It is used to decide whether to use the + synchronous or asynchronous version of calls that may block such as + recv(). + + Note that this flag is not set when a call is suspended, eg. after + returning from foo_start() and before re-entering foo_cont(). + */ + my_bool active; + /* + This flag is set when an asynchronous operation is in progress, but + suspended. Ie. it is set when foo_start() or foo_cont() returns because + the operation needs to block, suspending the operation. + + It is used to give an error (rather than crash) if the application + attempts to call some foo_cont() method when no suspended operation foo is + in progress. + */ + my_bool suspended; + /* + If non-NULL, this is a pointer to a callback hook that will be invoked with + the user data argument just before the context is suspended, and just after + it is resumed. + */ + void (*suspend_resume_hook)(my_bool suspend, void *user_data); + void *suspend_resume_hook_user_data; + /* + This is used to save the execution contexts so that we can suspend an + operation and switch back to the application context, to resume the + suspended context later when the application re-invokes us with + foo_cont(). + */ + struct my_context async_context; +}; diff --git a/database/include/mysql/private/my_cpu.h b/database/include/mysql/private/my_cpu.h new file mode 100644 index 0000000..ebabe6c --- /dev/null +++ b/database/include/mysql/private/my_cpu.h @@ -0,0 +1,44 @@ +/* Copyright (c) 2013, MariaDB foundation Ab and SkySQL + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA +*/ + +/* instructions for specific cpu's */ + +/* + Macros for adjusting thread priority (hardware multi-threading) + The defines are the same ones used by the linux kernel +*/ + +#if defined(__powerpc__) +/* Very low priority */ +#define HMT_very_low() asm volatile("or 31,31,31") +/* Low priority */ +#define HMT_low() asm volatile("or 1,1,1") +/* Medium low priority */ +#define HMT_medium_low() asm volatile("or 6,6,6") +/* Medium priority */ +#define HMT_medium() asm volatile("or 2,2,2") +/* Medium high priority */ +#define HMT_medium_high() asm volatile("or 5,5,5") +/* High priority */ +#define HMT_high() asm volatile("or 3,3,3") +#else +#define HMT_very_low() +#define HMT_low() +#define HMT_medium_low() +#define HMT_medium() +#define HMT_medium_high() +#define HMT_high() +#endif diff --git a/database/include/mysql/private/my_decimal.h b/database/include/mysql/private/my_decimal.h new file mode 100644 index 0000000..91b9b85 --- /dev/null +++ b/database/include/mysql/private/my_decimal.h @@ -0,0 +1,489 @@ +/* Copyright (c) 2005, 2013, Oracle and/or its affiliates. + Copyright (c) 2011, 2014, SkySQL Ab. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +/** + @file + + It is interface module to fixed precision decimals library. + + Most functions use 'uint mask' as parameter, if during operation error + which fit in this mask is detected then it will be processed automatically + here. (errors are E_DEC_* constants, see include/decimal.h) + + Most function are just inline wrappers around library calls +*/ + +#ifndef my_decimal_h +#define my_decimal_h + +#if defined(MYSQL_SERVER) || defined(EMBEDDED_LIBRARY) +#include "sql_string.h" /* String */ +#endif + +C_MODE_START +#include +#include +C_MODE_END + +class String; +typedef struct st_mysql_time MYSQL_TIME; + +/** + maximum size of packet length. +*/ +#define DECIMAL_MAX_FIELD_SIZE DECIMAL_MAX_PRECISION + + +inline uint my_decimal_size(uint precision, uint scale) +{ + /* + Always allocate more space to allow library to put decimal point + where it want + */ + return decimal_size(precision, scale) + 1; +} + + +inline int my_decimal_int_part(uint precision, uint decimals) +{ + return precision - ((decimals == DECIMAL_NOT_SPECIFIED) ? 0 : decimals); +} + + +/** + my_decimal class limits 'decimal_t' type to what we need in MySQL. + + It contains internally all necessary space needed by the instance so + no extra memory is needed. One should call fix_buffer_pointer() function + when he moves my_decimal objects in memory. +*/ + +class my_decimal :public decimal_t +{ + /* + Several of the routines in strings/decimal.c have had buffer + overrun/underrun problems. These are *not* caught by valgrind. + To catch them, we allocate dummy fields around the buffer, + and test that their values do not change. + */ +#if !defined(DBUG_OFF) + int foo1; +#endif + + decimal_digit_t buffer[DECIMAL_BUFF_LENGTH]; + +#if !defined(DBUG_OFF) + int foo2; + static const int test_value= 123; +#endif + +public: + + my_decimal(const my_decimal &rhs) : decimal_t(rhs) + { + init(); + for (uint i= 0; i < DECIMAL_BUFF_LENGTH; i++) + buffer[i]= rhs.buffer[i]; + } + + my_decimal& operator=(const my_decimal &rhs) + { + if (this == &rhs) + return *this; + decimal_t::operator=(rhs); + for (uint i= 0; i < DECIMAL_BUFF_LENGTH; i++) + buffer[i]= rhs.buffer[i]; + fix_buffer_pointer(); + return *this; + } + + void init() + { +#if !defined(DBUG_OFF) + foo1= test_value; + foo2= test_value; +#endif + len= DECIMAL_BUFF_LENGTH; + buf= buffer; + TRASH_ALLOC(buffer, sizeof(buffer)); + } + + my_decimal() + { + init(); + } + ~my_decimal() + { + sanity_check(); + } + + void sanity_check() + { + DBUG_ASSERT(foo1 == test_value); + DBUG_ASSERT(foo2 == test_value); + } + + void fix_buffer_pointer() { buf= buffer; } + + bool sign() const { return decimal_t::sign; } + void sign(bool s) { decimal_t::sign= s; } + uint precision() const { return intg + frac; } + + /** Swap two my_decimal values */ + void swap(my_decimal &rhs) + { + swap_variables(my_decimal, *this, rhs); + } +}; + + +#ifndef DBUG_OFF +void print_decimal(const my_decimal *dec); +void print_decimal_buff(const my_decimal *dec, const uchar* ptr, int length); +const char *dbug_decimal_as_string(char *buff, const my_decimal *val); +#else +#define dbug_decimal_as_string(A) NULL +#endif + +bool str_set_decimal(uint mask, const my_decimal *val, uint fixed_prec, + uint fixed_dec, char filler, String *str, + CHARSET_INFO *cs); + +extern my_decimal decimal_zero; + +#ifndef MYSQL_CLIENT +int decimal_operation_results(int result, const char *value, const char *type); +#else +inline int decimal_operation_results(int result, const char *value, + const char *type) +{ + return result; +} +#endif /*MYSQL_CLIENT*/ + +inline +void max_my_decimal(my_decimal *to, int precision, int frac) +{ + DBUG_ASSERT((precision <= DECIMAL_MAX_PRECISION)&& + (frac <= DECIMAL_MAX_SCALE)); + max_decimal(precision, frac, to); +} + +inline void max_internal_decimal(my_decimal *to) +{ + max_my_decimal(to, DECIMAL_MAX_PRECISION, 0); +} + +inline int check_result(uint mask, int result) +{ + if (result & mask) + decimal_operation_results(result, "", "DECIMAL"); + return result; +} + +inline int check_result_and_overflow(uint mask, int result, my_decimal *val) +{ + if (check_result(mask, result) & E_DEC_OVERFLOW) + { + bool sign= val->sign(); + val->fix_buffer_pointer(); + max_internal_decimal(val); + val->sign(sign); + } + return result; +} + +inline uint my_decimal_length_to_precision(uint length, uint scale, + bool unsigned_flag) +{ + /* Precision can't be negative thus ignore unsigned_flag when length is 0. */ + DBUG_ASSERT(length || !scale); + return (uint) (length - (scale>0 ? 1:0) - + (unsigned_flag || !length ? 0:1)); +} + +inline uint32 my_decimal_precision_to_length_no_truncation(uint precision, + uint8 scale, + bool unsigned_flag) +{ + /* + When precision is 0 it means that original length was also 0. Thus + unsigned_flag is ignored in this case. + */ + DBUG_ASSERT(precision || !scale); + return (uint32)(precision + (scale > 0 ? 1 : 0) + + (unsigned_flag || !precision ? 0 : 1)); +} + +inline uint32 my_decimal_precision_to_length(uint precision, uint8 scale, + bool unsigned_flag) +{ + /* + When precision is 0 it means that original length was also 0. Thus + unsigned_flag is ignored in this case. + */ + DBUG_ASSERT(precision || !scale); + set_if_smaller(precision, DECIMAL_MAX_PRECISION); + return my_decimal_precision_to_length_no_truncation(precision, scale, + unsigned_flag); +} + +inline +int my_decimal_string_length(const my_decimal *d) +{ + /* length of string representation including terminating '\0' */ + return decimal_string_size(d); +} + + +inline +int my_decimal_max_length(const my_decimal *d) +{ + /* -1 because we do not count \0 */ + return decimal_string_size(d) - 1; +} + + +inline +int my_decimal_get_binary_size(uint precision, uint scale) +{ + return decimal_bin_size((int)precision, (int)scale); +} + + +inline +void my_decimal2decimal(const my_decimal *from, my_decimal *to) +{ + *to= *from; +} + + +int my_decimal2binary(uint mask, const my_decimal *d, uchar *bin, int prec, + int scale); + + +inline +int binary2my_decimal(uint mask, const uchar *bin, my_decimal *d, int prec, + int scale) +{ + return check_result(mask, bin2decimal(bin, d, prec, scale)); +} + + +inline +int my_decimal_set_zero(my_decimal *d) +{ + /* + We need the up-cast here, since my_decimal has sign() member functions, + which conflicts with decimal_t::size + (and decimal_make_zero is a macro, rather than a funcion). + */ + decimal_make_zero(static_cast(d)); + return 0; +} + + +inline +bool my_decimal_is_zero(const my_decimal *decimal_value) +{ + return decimal_is_zero(decimal_value); +} + + +inline +int my_decimal_round(uint mask, const my_decimal *from, int scale, + bool truncate, my_decimal *to) +{ + return check_result(mask, decimal_round(from, to, scale, + (truncate ? TRUNCATE : HALF_UP))); +} + + +inline +int my_decimal_floor(uint mask, const my_decimal *from, my_decimal *to) +{ + return check_result(mask, decimal_round(from, to, 0, FLOOR)); +} + + +inline +int my_decimal_ceiling(uint mask, const my_decimal *from, my_decimal *to) +{ + return check_result(mask, decimal_round(from, to, 0, CEILING)); +} + + +inline bool str_set_decimal(const my_decimal *val, String *str, + CHARSET_INFO *cs) +{ + return str_set_decimal(E_DEC_FATAL_ERROR, val, 0, 0, 0, str, cs); +} + +#ifndef MYSQL_CLIENT +class String; +int my_decimal2string(uint mask, const my_decimal *d, uint fixed_prec, + uint fixed_dec, char filler, String *str); +#endif + +bool my_decimal2seconds(const my_decimal *d, ulonglong *sec, ulong *microsec); + +my_decimal *seconds2my_decimal(bool sign, ulonglong sec, ulong microsec, + my_decimal *d); + +int my_decimal2int(uint mask, const decimal_t *d, bool unsigned_flag, + longlong *l); + +inline +int my_decimal2double(uint, const decimal_t *d, double *result) +{ + /* No need to call check_result as this will always succeed */ + return decimal2double(d, result); +} + + +inline +int str2my_decimal(uint mask, const char *str, my_decimal *d, char **end) +{ + return check_result_and_overflow(mask, string2decimal(str, d, end), d); +} + + +int str2my_decimal(uint mask, const char *from, uint length, + CHARSET_INFO *charset, my_decimal *decimal_value); + +#if defined(MYSQL_SERVER) || defined(EMBEDDED_LIBRARY) +inline +int string2my_decimal(uint mask, const String *str, my_decimal *d) +{ + return str2my_decimal(mask, str->ptr(), str->length(), str->charset(), d); +} + + +my_decimal *date2my_decimal(MYSQL_TIME *ltime, my_decimal *dec); + + +#endif /*defined(MYSQL_SERVER) || defined(EMBEDDED_LIBRARY) */ + +inline +int double2my_decimal(uint mask, double val, my_decimal *d) +{ + return check_result_and_overflow(mask, double2decimal(val, d), d); +} + + +inline +int int2my_decimal(uint mask, longlong i, my_bool unsigned_flag, my_decimal *d) +{ + return check_result(mask, (unsigned_flag ? + ulonglong2decimal((ulonglong)i, d) : + longlong2decimal(i, d))); +} + +inline +void decimal2my_decimal(decimal_t *from, my_decimal *to) +{ + DBUG_ASSERT(to->len >= from->len); + to->intg= from->intg; + to->frac= from->frac; + to->sign(from->sign); + memcpy(to->buf, from->buf, to->len*sizeof(decimal_digit_t)); +} + + +inline +void my_decimal_neg(decimal_t *arg) +{ + if (decimal_is_zero(arg)) + { + arg->sign= 0; + return; + } + decimal_neg(arg); +} + + +inline +int my_decimal_add(uint mask, my_decimal *res, const my_decimal *a, + const my_decimal *b) +{ + return check_result_and_overflow(mask, + decimal_add(a, b, res), + res); +} + + +inline +int my_decimal_sub(uint mask, my_decimal *res, const my_decimal *a, + const my_decimal *b) +{ + return check_result_and_overflow(mask, + decimal_sub(a, b, res), + res); +} + + +inline +int my_decimal_mul(uint mask, my_decimal *res, const my_decimal *a, + const my_decimal *b) +{ + return check_result_and_overflow(mask, + decimal_mul(a, b, res), + res); +} + + +inline +int my_decimal_div(uint mask, my_decimal *res, const my_decimal *a, + const my_decimal *b, int div_scale_inc) +{ + return check_result_and_overflow(mask, + decimal_div(a, b, res, div_scale_inc), + res); +} + + +inline +int my_decimal_mod(uint mask, my_decimal *res, const my_decimal *a, + const my_decimal *b) +{ + return check_result_and_overflow(mask, + decimal_mod(a, b, res), + res); +} + +/** + @return + -1 if ab and 0 if a==b +*/ +inline +int my_decimal_cmp(const my_decimal *a, const my_decimal *b) +{ + return decimal_cmp(a, b); +} + + +inline +int my_decimal_intg(const my_decimal *a) +{ + return decimal_intg(a); +} + + +void my_decimal_trim(ulong *precision, uint *scale); + + +#endif /*my_decimal_h*/ + diff --git a/database/include/mysql/private/my_libwrap.h b/database/include/mysql/private/my_libwrap.h new file mode 100644 index 0000000..b520080 --- /dev/null +++ b/database/include/mysql/private/my_libwrap.h @@ -0,0 +1,32 @@ +#ifndef MY_LIBWRAP_INCLUDED +#define MY_LIBWRAP_INCLUDED + +/* Copyright (c) 2000, 2006 MySQL AB, 2009 Sun Microsystems, Inc. + Use is subject to license terms. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifdef HAVE_LIBWRAP +#include +#include +#ifdef NEED_SYS_SYSLOG_H +#include +#endif /* NEED_SYS_SYSLOG_H */ + +extern void my_fromhost(struct request_info *req); +extern int my_hosts_access(struct request_info *req); +extern char *my_eval_client(struct request_info *req); + +#endif /* HAVE_LIBWRAP */ +#endif /* MY_LIBWRAP_INCLUDED */ diff --git a/database/include/mysql/private/my_md5.h b/database/include/mysql/private/my_md5.h new file mode 100644 index 0000000..c89a0f3 --- /dev/null +++ b/database/include/mysql/private/my_md5.h @@ -0,0 +1,60 @@ +#ifndef MY_MD5_INCLUDED +#define MY_MD5_INCLUDED + +/* Copyright (c) 2000, 2001, 2007 MySQL AB, 2009 Sun Microsystems, Inc. + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* See md5.c for explanation and copyright information. */ + +/* + * $FreeBSD: src/contrib/cvs/lib/md5.h,v 1.2 1999/12/11 15:10:02 peter Exp $ + */ + +/* Unlike previous versions of this code, uint32 need not be exactly + 32 bits, merely 32 bits or more. Choosing a data type which is 32 + bits instead of 64 is not important; speed is considerably more + important. ANSI guarantees that "unsigned long" will be big enough, + and always using it seems to have few disadvantages. */ +typedef uint32 cvs_uint32; + +typedef struct { + cvs_uint32 buf[4]; + cvs_uint32 bits[2]; + unsigned char in[64]; +} my_MD5Context; + +#ifdef __cplusplus +extern "C" { +#endif +void my_MD5Init (my_MD5Context *context); +void my_MD5Update (my_MD5Context *context, + unsigned char const *buf, unsigned len); +void my_MD5Final (unsigned char digest[16], + my_MD5Context *context); + +#ifdef __cplusplus +} +#endif + +#define MY_MD5_HASH(digest,buf,len) \ +do { \ + my_MD5Context ctx; \ + my_MD5Init (&ctx); \ + my_MD5Update (&ctx, buf, len); \ + my_MD5Final (digest, &ctx); \ +} while (0) + +#endif /* MY_MD__INCLUDED */ diff --git a/database/include/mysql/private/my_nosys.h b/database/include/mysql/private/my_nosys.h new file mode 100644 index 0000000..ff13a04 --- /dev/null +++ b/database/include/mysql/private/my_nosys.h @@ -0,0 +1,47 @@ +/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* + Header to remove use of my_functions in functions where we need speed and + where calls to posix functions should work +*/ +#ifndef _my_nosys_h +#define _my_nosys_h +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef __MY_NOSYS__ +#define __MY_NOSYS__ + +#ifndef HAVE_STDLIB_H +#include +#endif + +#undef my_read +#undef my_write +#undef my_seek +#define my_read(a,b,c,d) my_quick_read(a,b,c,d) +#define my_write(a,b,c,d) my_quick_write(a,b,c) +extern size_t my_quick_read(File Filedes,uchar *Buffer,size_t Count, + myf myFlags); +extern size_t my_quick_write(File Filedes,const uchar *Buffer,size_t Count); + +#endif /* __MY_NOSYS__ */ + +#ifdef __cplusplus +} +#endif +#endif diff --git a/database/include/mysql/private/my_rdtsc.h b/database/include/mysql/private/my_rdtsc.h new file mode 100644 index 0000000..13e40ba --- /dev/null +++ b/database/include/mysql/private/my_rdtsc.h @@ -0,0 +1,130 @@ +/* Copyright (c) 2008 MySQL AB, 2009 Sun Microsystems, Inc. + Use is subject to license terms. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* + rdtsc3 -- multi-platform timer code + pgulutzan@mysql.com, 2005-08-29 + modified 2008-11-02 +*/ + +#ifndef MY_RDTSC_H +#define MY_RDTSC_H + +/** + Characteristics of a timer. +*/ +struct my_timer_unit_info +{ + /** Routine used for the timer. */ + ulonglong routine; + /** Overhead of the timer. */ + ulonglong overhead; + /** Frequency of the timer. */ + ulonglong frequency; + /** Resolution of the timer. */ + ulonglong resolution; +}; + +/** + Characteristics of all the supported timers. + @sa my_timer_init(). +*/ +struct my_timer_info +{ + /** Characteristics of the cycle timer. */ + struct my_timer_unit_info cycles; + /** Characteristics of the nanosecond timer. */ + struct my_timer_unit_info nanoseconds; + /** Characteristics of the microsecond timer. */ + struct my_timer_unit_info microseconds; + /** Characteristics of the millisecond timer. */ + struct my_timer_unit_info milliseconds; + /** Characteristics of the tick timer. */ + struct my_timer_unit_info ticks; +}; + +typedef struct my_timer_info MY_TIMER_INFO; + +C_MODE_START + +/** + A cycle timer. + @return the current timer value, in cycles. +*/ +ulonglong my_timer_cycles(void); + +/** + A namoseconds timer. + @return the current timer value, in nanoseconds. +*/ +ulonglong my_timer_nanoseconds(void); + +/** + A microseconds timer. + @return the current timer value, in microseconds. +*/ +ulonglong my_timer_microseconds(void); + +/** + A millisecond timer. + @return the current timer value, in milliseconds. +*/ +ulonglong my_timer_milliseconds(void); + +/** + A ticks timer. + @return the current timer value, in ticks. +*/ +ulonglong my_timer_ticks(void); + +/** + Timer initialization function. + @param [out] mti the timer characteristics. +*/ +void my_timer_init(MY_TIMER_INFO *mti); + +C_MODE_END + +#define MY_TIMER_ROUTINE_ASM_X86 1 +#define MY_TIMER_ROUTINE_ASM_X86_64 2 +#define MY_TIMER_ROUTINE_RDTSCLL 3 +#define MY_TIMER_ROUTINE_ASM_X86_WIN 4 +#define MY_TIMER_ROUTINE_RDTSC 5 +#define MY_TIMER_ROUTINE_ASM_IA64 6 +#define MY_TIMER_ROUTINE_ASM_PPC 7 +#define MY_TIMER_ROUTINE_SGI_CYCLE 8 +#define MY_TIMER_ROUTINE_GETHRTIME 9 +#define MY_TIMER_ROUTINE_READ_REAL_TIME 10 +#define MY_TIMER_ROUTINE_CLOCK_GETTIME 11 +#define MY_TIMER_ROUTINE_NXGETTIME 12 +#define MY_TIMER_ROUTINE_GETTIMEOFDAY 13 +#define MY_TIMER_ROUTINE_QUERYPERFORMANCECOUNTER 14 +#define MY_TIMER_ROUTINE_GETTICKCOUNT 15 +#define MY_TIMER_ROUTINE_TIME 16 +#define MY_TIMER_ROUTINE_TIMES 17 +#define MY_TIMER_ROUTINE_FTIME 18 +#define MY_TIMER_ROUTINE_ASM_PPC64 19 +#define MY_TIMER_ROUTINE_ASM_SUNPRO_SPARC64 20 +#define MY_TIMER_ROUTINE_ASM_SUNPRO_SPARC32 21 +#define MY_TIMER_ROUTINE_ASM_SUNPRO_I386 22 +#define MY_TIMER_ROUTINE_ASM_GCC_SPARC64 23 +#define MY_TIMER_ROUTINE_ASM_GCC_SPARC32 24 +#define MY_TIMER_ROUTINE_MACH_ABSOLUTE_TIME 25 +#define MY_TIMER_ROUTINE_GETSYSTEMTIMEASFILETIME 26 +#define MY_TIMER_ROUTINE_ASM_SUNPRO_X86_64 27 + +#endif + diff --git a/database/include/mysql/private/my_regex.h b/database/include/mysql/private/my_regex.h new file mode 100644 index 0000000..1f96b8c --- /dev/null +++ b/database/include/mysql/private/my_regex.h @@ -0,0 +1,88 @@ +#ifndef _REGEX_H_ +#define _REGEX_H_ /* never again */ +/* ========= begin header generated by ./mkh ========= */ +#ifdef __cplusplus +extern "C" { +#endif + +#include "m_ctype.h" + +/* === regex2.h === */ +#ifdef _WIN64 +typedef __int64 regoff_t; +#else +typedef off_t regoff_t; +#endif +struct re_guts; /* none of your business :-) */ +typedef struct { + int re_magic; + size_t re_nsub; /* number of parenthesized subexpressions */ + const char *re_endp; /* end pointer for REG_PEND */ + struct re_guts *re_g; /* none of your business :-) */ + CHARSET_INFO *charset; /* For ctype things */ +} my_regex_t; +typedef struct { + regoff_t rm_so; /* start of match */ + regoff_t rm_eo; /* end of match */ +} my_regmatch_t; + + +/* === regcomp.c === */ +typedef int (*my_regex_stack_check_t)(int); +extern int my_regcomp(my_regex_t *, const char *, int, CHARSET_INFO *charset); +#define REG_BASIC 0000 +#define REG_EXTENDED 0001 +#define REG_ICASE 0002 +#define REG_NOSUB 0004 +#define REG_NEWLINE 0010 +#define REG_NOSPEC 0020 +#define REG_PEND 0040 +#define REG_DUMP 0200 + + +/* === regerror.c === */ +#define REG_NOMATCH 1 +#define REG_BADPAT 2 +#define REG_ECOLLATE 3 +#define REG_ECTYPE 4 +#define REG_EESCAPE 5 +#define REG_ESUBREG 6 +#define REG_EBRACK 7 +#define REG_EPAREN 8 +#define REG_EBRACE 9 +#define REG_BADBR 10 +#define REG_ERANGE 11 +#define REG_ESPACE 12 +#define REG_BADRPT 13 +#define REG_EMPTY 14 +#define REG_ASSERT 15 +#define REG_INVARG 16 +#define REG_ATOI 255 /* convert name to number (!) */ +#define REG_ITOA 0400 /* convert number to name (!) */ +extern size_t my_regerror(int, const my_regex_t *, char *, size_t); + + +/* === regexec.c === */ +extern int my_regexec(const my_regex_t *, const char *, size_t, my_regmatch_t [], int); +#define REG_NOTBOL 00001 +#define REG_NOTEOL 00002 +#define REG_STARTEND 00004 +#define REG_TRACE 00400 /* tracing of execution */ +#define REG_LARGE 01000 /* force large representation */ +#define REG_BACKR 02000 /* force use of backref code */ + + +/* === regfree.c === */ +extern void my_regfree(my_regex_t *); + +/* === reginit.c === */ + +/* Should be called for multithread progs */ +extern void my_regex_init(CHARSET_INFO *cs, my_regex_stack_check_t func); +extern void my_regex_end(void); /* If one wants a clean end */ + +#ifdef __cplusplus +} +#endif +/* ========= end header generated by ./mkh ========= */ +#endif diff --git a/database/include/mysql/private/my_stacktrace.h b/database/include/mysql/private/my_stacktrace.h new file mode 100644 index 0000000..5b30134 --- /dev/null +++ b/database/include/mysql/private/my_stacktrace.h @@ -0,0 +1,108 @@ +/* + Copyright (c) 2001, 2011, Oracle and/or its affiliates. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef _my_stacktrace_h_ +#define _my_stacktrace_h_ + +#include + +#ifdef TARGET_OS_LINUX +#if defined (__x86_64__) || defined (__i386__) || \ + (defined(__alpha__) && defined(__GNUC__)) +#define HAVE_STACKTRACE 1 +#endif +#elif defined(__WIN__) || defined(HAVE_PRINTSTACK) +#define HAVE_STACKTRACE 1 +#endif + +#if HAVE_BACKTRACE && (HAVE_BACKTRACE_SYMBOLS || HAVE_BACKTRACE_SYMBOLS_FD) +#undef HAVE_STACKTRACE +#define HAVE_STACKTRACE 1 +#endif + +#define HAVE_WRITE_CORE + +#if HAVE_BACKTRACE && HAVE_BACKTRACE_SYMBOLS && \ + HAVE_CXXABI_H && HAVE_ABI_CXA_DEMANGLE && \ + HAVE_WEAK_SYMBOL +#define BACKTRACE_DEMANGLE 1 +#endif + +C_MODE_START + +#if defined(HAVE_STACKTRACE) || defined(HAVE_BACKTRACE) +void my_init_stacktrace(); +void my_print_stacktrace(uchar* stack_bottom, ulong thread_stack); +void my_safe_print_str(const char* val, int max_len); +void my_write_core(int sig); +#if BACKTRACE_DEMANGLE +char *my_demangle(const char *mangled_name, int *status); +#endif /* BACKTRACE_DEMANGLE */ +#ifdef __WIN__ +void my_set_exception_pointers(EXCEPTION_POINTERS *ep); +#endif /* __WIN__ */ +#else +#define my_init_stacktrace() do { } while(0) +#endif /* ! (defined(HAVE_STACKTRACE) || defined(HAVE_BACKTRACE)) */ + +#ifndef _WIN32 +#define MY_ADDR_RESOLVE_FORK +#endif + +#if defined(HAVE_BFD_H) || defined(MY_ADDR_RESOLVE_FORK) +#define HAVE_MY_ADDR_RESOLVE 1 +#endif + +typedef struct { + const char *file; + const char *func; + uint line; +} my_addr_loc; + +#ifdef HAVE_MY_ADDR_RESOLVE +int my_addr_resolve(void *ptr, my_addr_loc *loc); +const char *my_addr_resolve_init(); +#else +#define my_addr_resolve_init() (0) +#define my_addr_resolve(A,B) (1) +#endif + +#ifdef HAVE_WRITE_CORE +void my_write_core(int sig); +#endif + +/** + A (very) limited version of snprintf, which writes the result to STDERR. + @sa my_safe_snprintf + Implemented with simplicity, and async-signal-safety in mind. + @note Has an internal buffer capacity of 512 bytes, + which should suffice for our signal handling routines. +*/ +size_t my_safe_printf_stderr(const char* fmt, ...) + ATTRIBUTE_FORMAT(printf, 1, 2); + +/** + Writes up to count bytes from buffer to STDERR. + Implemented with simplicity, and async-signal-safety in mind. + @param buf Buffer containing data to be written. + @param count Number of bytes to write. + @returns Number of bytes written. +*/ +size_t my_write_stderr(const void *buf, size_t count); + +C_MODE_END + +#endif /* _my_stacktrace_h_ */ diff --git a/database/include/mysql/private/my_time.h b/database/include/mysql/private/my_time.h new file mode 100644 index 0000000..898f44b --- /dev/null +++ b/database/include/mysql/private/my_time.h @@ -0,0 +1,229 @@ +/* + Copyright (c) 2004, 2011, Oracle and/or its affiliates. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* + This is a private header of sql-common library, containing + declarations for my_time.c +*/ + +#ifndef _my_time_h_ +#define _my_time_h_ +#include "my_global.h" +#include "mysql_time.h" + +C_MODE_START + +extern ulonglong log_10_int[20]; +extern uchar days_in_month[]; + +/* + Portable time_t replacement. + Should be signed and hold seconds for 1902 -- 2038-01-19 range + i.e at least a 32bit variable + + Using the system built in time_t is not an option as + we rely on the above requirements in the time functions +*/ +typedef long my_time_t; + +#define MY_TIME_T_MAX LONG_MAX +#define MY_TIME_T_MIN LONG_MIN + +/* Time handling defaults */ +#define TIMESTAMP_MAX_YEAR 2038 +#define TIMESTAMP_MIN_YEAR (1900 + YY_PART_YEAR - 1) +#define TIMESTAMP_MAX_VALUE INT_MAX32 +#define TIMESTAMP_MIN_VALUE 0 + +/* two-digit years < this are 20..; >= this are 19.. */ +#define YY_PART_YEAR 70 + +/* + check for valid times only if the range of time_t is greater than + the range of my_time_t +*/ +#if SIZEOF_TIME_T > 4 || defined(TIME_T_UNSIGNED) +# define IS_TIME_T_VALID_FOR_TIMESTAMP(x) \ + ((x) <= TIMESTAMP_MAX_VALUE && \ + (x) >= TIMESTAMP_MIN_VALUE) +#else +# define IS_TIME_T_VALID_FOR_TIMESTAMP(x) \ + ((x) >= TIMESTAMP_MIN_VALUE) +#endif + +/* Flags to str_to_datetime */ + +/* + TIME_FUZZY_DATES is used for the result will only be used for comparison + purposes. Conversion is as relaxed as possible. +*/ +#define TIME_FUZZY_DATES 1 +#define TIME_DATETIME_ONLY 2 +#define TIME_TIME_ONLY 4 +#define TIME_NO_ZERO_IN_DATE (1UL << 23) /* == MODE_NO_ZERO_IN_DATE */ +#define TIME_NO_ZERO_DATE (1UL << 24) /* == MODE_NO_ZERO_DATE */ +#define TIME_INVALID_DATES (1UL << 25) /* == MODE_INVALID_DATES */ + +#define MYSQL_TIME_WARN_TRUNCATED 1 +#define MYSQL_TIME_WARN_OUT_OF_RANGE 2 +#define MYSQL_TIME_NOTE_TRUNCATED 16 + +#define MYSQL_TIME_WARN_WARNINGS (MYSQL_TIME_WARN_TRUNCATED|MYSQL_TIME_WARN_OUT_OF_RANGE) +#define MYSQL_TIME_WARN_NOTES (MYSQL_TIME_NOTE_TRUNCATED) + +#define MYSQL_TIME_WARN_HAVE_WARNINGS(x) MY_TEST((x) & MYSQL_TIME_WARN_WARNINGS) +#define MYSQL_TIME_WARN_HAVE_NOTES(x) MY_TEST((x) & MYSQL_TIME_WARN_NOTES) + +/* Limits for the TIME data type */ +#define TIME_MAX_HOUR 838 +#define TIME_MAX_MINUTE 59 +#define TIME_MAX_SECOND 59 +#define TIME_MAX_SECOND_PART 999999 +#define TIME_SECOND_PART_FACTOR (TIME_MAX_SECOND_PART+1) +#define TIME_SECOND_PART_DIGITS 6 +#define TIME_MAX_VALUE (TIME_MAX_HOUR*10000 + TIME_MAX_MINUTE*100 + TIME_MAX_SECOND) +#define TIME_MAX_VALUE_SECONDS (TIME_MAX_HOUR * 3600L + \ + TIME_MAX_MINUTE * 60L + TIME_MAX_SECOND) + +my_bool check_date(const MYSQL_TIME *ltime, my_bool not_zero_date, + ulonglong flags, int *was_cut); +enum enum_mysql_timestamp_type +str_to_time(const char *str, uint length, MYSQL_TIME *l_time, + ulonglong flag, int *warning); +enum enum_mysql_timestamp_type +str_to_datetime(const char *str, uint length, MYSQL_TIME *l_time, + ulonglong flags, int *was_cut); +longlong number_to_datetime(longlong nr, ulong sec_part, MYSQL_TIME *time_res, + ulonglong flags, int *was_cut); + +static inline +longlong double_to_datetime(double nr, MYSQL_TIME *ltime, uint flags, int *cut) +{ + if (nr < 0 || nr > LONGLONG_MAX) + nr= (double)LONGLONG_MAX; + return number_to_datetime((longlong) floor(nr), + (ulong)((nr-floor(nr))*TIME_SECOND_PART_FACTOR), + ltime, flags, cut); +} + +int number_to_time(my_bool neg, ulonglong nr, ulong sec_part, + MYSQL_TIME *ltime, int *was_cut); +ulonglong TIME_to_ulonglong_datetime(const MYSQL_TIME *); +ulonglong TIME_to_ulonglong_date(const MYSQL_TIME *); +ulonglong TIME_to_ulonglong_time(const MYSQL_TIME *); +ulonglong TIME_to_ulonglong(const MYSQL_TIME *); +double TIME_to_double(const MYSQL_TIME *my_time); + +longlong pack_time(MYSQL_TIME *my_time); +MYSQL_TIME *unpack_time(longlong packed, MYSQL_TIME *my_time); + +int check_time_range(struct st_mysql_time *my_time, uint dec, int *warning); + +long calc_daynr(uint year,uint month,uint day); +uint calc_days_in_year(uint year); +uint year_2000_handling(uint year); + +void my_init_time(void); + + +/* + Function to check sanity of a TIMESTAMP value + + DESCRIPTION + Check if a given MYSQL_TIME value fits in TIMESTAMP range. + This function doesn't make precise check, but rather a rough + estimate. + + RETURN VALUES + FALSE The value seems sane + TRUE The MYSQL_TIME value is definitely out of range +*/ + +static inline my_bool validate_timestamp_range(const MYSQL_TIME *t) +{ + if ((t->year > TIMESTAMP_MAX_YEAR || t->year < TIMESTAMP_MIN_YEAR) || + (t->year == TIMESTAMP_MAX_YEAR && (t->month > 1 || t->day > 19)) || + (t->year == TIMESTAMP_MIN_YEAR && (t->month < 12 || t->day < 31))) + return FALSE; + + return TRUE; +} + +my_time_t +my_system_gmt_sec(const MYSQL_TIME *t, long *my_timezone, uint *error_code); + +void set_zero_time(MYSQL_TIME *tm, enum enum_mysql_timestamp_type time_type); + +/* + Required buffer length for my_time_to_str, my_date_to_str, + my_datetime_to_str and TIME_to_string functions. Note, that the + caller is still responsible to check that given TIME structure + has values in valid ranges, otherwise size of the buffer could + be not enough. We also rely on the fact that even wrong values + sent using binary protocol fit in this buffer. +*/ +#define MAX_DATE_STRING_REP_LENGTH 30 +#define AUTO_SEC_PART_DIGITS 31 /* same as NOT_FIXED_DEC */ + +int my_time_to_str(const MYSQL_TIME *l_time, char *to, uint digits); +int my_date_to_str(const MYSQL_TIME *l_time, char *to); +int my_datetime_to_str(const MYSQL_TIME *l_time, char *to, uint digits); +int my_TIME_to_str(const MYSQL_TIME *l_time, char *to, uint digits); + +static inline longlong sec_part_shift(longlong second_part, uint digits) +{ + return second_part / (longlong)log_10_int[TIME_SECOND_PART_DIGITS - digits]; +} +static inline longlong sec_part_unshift(longlong second_part, uint digits) +{ + return second_part * (longlong)log_10_int[TIME_SECOND_PART_DIGITS - digits]; +} +static inline ulong sec_part_truncate(ulong second_part, uint digits) +{ + /* the cast here should be unnecessary! */ + return second_part - second_part % (ulong)log_10_int[TIME_SECOND_PART_DIGITS - digits]; +} + +#define hrtime_to_my_time(X) ((my_time_t)hrtime_to_time(X)) + +/* + Available interval types used in any statement. + + 'interval_type' must be sorted so that simple intervals comes first, + ie year, quarter, month, week, day, hour, etc. The order based on + interval size is also important and the intervals should be kept in a + large to smaller order. (get_interval_value() depends on this) + + Note: If you change the order of elements in this enum you should fix + order of elements in 'interval_type_to_name' and 'interval_names' + arrays + + See also interval_type_to_name, get_interval_value, interval_names +*/ + +enum interval_type +{ + INTERVAL_YEAR, INTERVAL_QUARTER, INTERVAL_MONTH, INTERVAL_WEEK, INTERVAL_DAY, + INTERVAL_HOUR, INTERVAL_MINUTE, INTERVAL_SECOND, INTERVAL_MICROSECOND, + INTERVAL_YEAR_MONTH, INTERVAL_DAY_HOUR, INTERVAL_DAY_MINUTE, + INTERVAL_DAY_SECOND, INTERVAL_HOUR_MINUTE, INTERVAL_HOUR_SECOND, + INTERVAL_MINUTE_SECOND, INTERVAL_DAY_MICROSECOND, INTERVAL_HOUR_MICROSECOND, + INTERVAL_MINUTE_MICROSECOND, INTERVAL_SECOND_MICROSECOND, INTERVAL_LAST +}; + +C_MODE_END + +#endif /* _my_time_h_ */ diff --git a/database/include/mysql/private/my_tree.h b/database/include/mysql/private/my_tree.h new file mode 100644 index 0000000..8eb27a1 --- /dev/null +++ b/database/include/mysql/private/my_tree.h @@ -0,0 +1,107 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef _tree_h +#define _tree_h +#ifdef __cplusplus +extern "C" { +#endif + +#include "my_base.h" /* get 'enum ha_rkey_function' */ +#include "my_alloc.h" /* MEM_ROOT */ + +/* Worst case tree is half full. This gives use 2^(MAX_TREE_HEIGHT/2) leafs */ +#define MAX_TREE_HEIGHT 64 + +#define ELEMENT_KEY(tree,element)\ +(tree->offset_to_key ? (void*)((uchar*) element+tree->offset_to_key) :\ + *((void**) (element+1))) + +#define tree_set_pointer(element,ptr) *((uchar **) (element+1))=((uchar*) (ptr)) + +/* + A tree with its flag set to TREE_ONLY_DUPS behaves differently on inserting + an element that is not in the tree: + the element is not added at all, but instead tree_insert() returns a special + address TREE_ELEMENT_UNIQUE as an indication that the function has not failed + due to lack of memory. +*/ + +#define TREE_ELEMENT_UNIQUE ((TREE_ELEMENT *) 1) +#define TREE_NO_DUPS 1 +#define TREE_ONLY_DUPS 2 + +typedef enum { left_root_right, right_root_left } TREE_WALK; +typedef uint32 element_count; +typedef int (*tree_walk_action)(void *,element_count,void *); + +typedef enum { free_init, free_free, free_end } TREE_FREE; +typedef void (*tree_element_free)(void*, TREE_FREE, void *); + +typedef struct st_tree_element { + struct st_tree_element *left,*right; + uint32 count:31, + colour:1; /* black is marked as 1 */ +} TREE_ELEMENT; + +#define ELEMENT_CHILD(element, offs) (*(TREE_ELEMENT**)((char*)element + offs)) + +typedef struct st_tree { + TREE_ELEMENT *root,null_element; + TREE_ELEMENT **parents[MAX_TREE_HEIGHT]; + uint offset_to_key,elements_in_tree,size_of_element; + size_t memory_limit, allocated; + qsort_cmp2 compare; + void *custom_arg; + MEM_ROOT mem_root; + my_bool with_delete; + tree_element_free free; + uint flag; +} TREE; + + /* Functions on whole tree */ +void init_tree(TREE *tree, size_t default_alloc_size, size_t memory_limit, + int size, qsort_cmp2 compare, my_bool with_delete, + tree_element_free free_element, void *custom_arg); +void delete_tree(TREE*); +void reset_tree(TREE*); + + /* similar to delete tree, except we do not my_free() blocks in mem_root */ +#define is_tree_inited(tree) ((tree)->root != 0) + + /* Functions on leafs */ +TREE_ELEMENT *tree_insert(TREE *tree,void *key, uint key_size, + void *custom_arg); +void *tree_search(TREE *tree, void *key, void *custom_arg); +int tree_walk(TREE *tree,tree_walk_action action, + void *argument, TREE_WALK visit); +int tree_delete(TREE *tree, void *key, uint key_size, void *custom_arg); +void *tree_search_key(TREE *tree, const void *key, + TREE_ELEMENT **parents, TREE_ELEMENT ***last_pos, + enum ha_rkey_function flag, void *custom_arg); +void *tree_search_edge(TREE *tree, TREE_ELEMENT **parents, + TREE_ELEMENT ***last_pos, int child_offs); +void *tree_search_next(TREE *tree, TREE_ELEMENT ***last_pos, int l_offs, + int r_offs); +ha_rows tree_record_pos(TREE *tree, const void *key, + enum ha_rkey_function search_flag, void *custom_arg); +#define reset_free_element(tree) (tree)->free= 0 + +#define TREE_ELEMENT_EXTRA_SIZE (sizeof(TREE_ELEMENT) + sizeof(void*)) + +#ifdef __cplusplus +} +#endif +#endif diff --git a/database/include/mysql/private/my_uctype.h b/database/include/mysql/private/my_uctype.h new file mode 100644 index 0000000..82949ff --- /dev/null +++ b/database/include/mysql/private/my_uctype.h @@ -0,0 +1,1484 @@ +#ifndef MY_UCTYPE_INCLUDED +#define MY_UCTYPE_INCLUDED + +/* Copyright (c) 2006 MySQL AB, 2009 Sun Microsystems, Inc. + Use is subject to license terms. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* + Unicode ctype data + Generated from UnicodeData-5.0.0d9.txt +*/ +static unsigned char uctype_page00[256]= +{ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 8, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 16, 16, 16, 16, 16, 16, + 16, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 16, 16, 16, 16, 16, + 16, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, + 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 16, 16, 16, 16, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, + 8, 16, 16, 16, 16, 16, 16, 16, 16, 16, 2, 16, 16, 32, 16, 16, + 16, 16, 20, 20, 16, 2, 16, 16, 16, 20, 2, 16, 20, 20, 20, 16, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 16, 1, 1, 1, 1, 1, 1, 1, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 16, 2, 2, 2, 2, 2, 2, 2, 2 +}; + +static unsigned char uctype_page01[256]= +{ + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, + 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2, + 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1, + 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, + 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, + 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2, + 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, + 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2 +}; + +static unsigned char uctype_page02[256]= +{ + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, + 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 16, 16, 16, 16, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 2, 2, 2, 2, 2, 16, 16, 16, 16, 16, 16, 16, 16, 16, 2, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16 +}; + +static unsigned char uctype_page03[256]= +{ + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 0, 0, 0, 0, 16, 16, 0, 0, 0, 0, 2, 2, 2, 2, 16, 0, + 0, 0, 0, 0, 16, 16, 1, 16, 1, 1, 1, 0, 1, 0, 1, 1, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, + 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 2, 2, 2, 2, 1, 2, 16, 1, 2, 1, 1, 2, 2, 1, 1, 1 +}; + +static unsigned char uctype_page04[256]= +{ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 16, 18, 18, 18, 18, 0, 18, 18, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2 +}; + +static unsigned char uctype_page05[256]= +{ + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 0, 2, 16, 16, 16, 16, 16, 16, + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 0, 16, 16, 0, 0, 0, 0, 0, + 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 16, 18, + 16, 18, 18, 16, 18, 18, 16, 18, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, + 2, 2, 2, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page06[256]= +{ + 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 16, 16, 16, 16, 16, + 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, 0, 16, 0, 0, 16, 16, + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 16, 16, 16, 16, 2, 2, + 18, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 16, 2, 18, 18, 18, 18, 18, 18, 18, 32, 18, 18, + 18, 18, 18, 18, 18, 2, 2, 18, 18, 16, 18, 18, 18, 18, 2, 2, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 16, 16, 2 +}; + +static unsigned char uctype_page07[256]= +{ + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 32, + 2, 18, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 2, 2, 16, 16, 16, 16, 2, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page09[256]= +{ + 0, 18, 18, 18, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 18, 2, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, + 2, 18, 18, 18, 18, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 18, 18, 16, 16, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, + 0, 18, 18, 18, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, + 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, + 2, 0, 2, 0, 0, 0, 2, 2, 2, 2, 0, 0, 18, 2, 18, 18, + 18, 18, 18, 18, 18, 0, 0, 18, 18, 0, 0, 18, 18, 18, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 2, 2, 0, 2, + 2, 2, 18, 18, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 2, 2, 16, 16, 20, 20, 20, 20, 20, 20, 16, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page0A[256]= +{ + 0, 18, 18, 18, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, + 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, + 2, 0, 2, 2, 0, 2, 2, 0, 2, 2, 0, 0, 18, 0, 18, 18, + 18, 18, 18, 0, 0, 0, 0, 18, 18, 0, 0, 18, 18, 18, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 0, 2, 0, + 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 18, 18, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 18, 18, 18, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, + 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, + 2, 0, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 18, 2, 18, 18, + 18, 18, 18, 18, 18, 18, 0, 18, 18, 18, 0, 18, 18, 18, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 18, 18, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page0B[256]= +{ + 0, 18, 18, 18, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, + 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, + 2, 0, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 18, 2, 18, 18, + 18, 18, 18, 18, 0, 0, 0, 18, 18, 0, 0, 18, 18, 18, 0, 0, + 0, 0, 0, 0, 0, 0, 18, 18, 0, 0, 0, 0, 2, 2, 0, 2, + 2, 2, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 18, 2, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, + 2, 0, 2, 2, 2, 2, 0, 0, 0, 2, 2, 0, 2, 0, 2, 2, + 0, 0, 0, 2, 2, 0, 0, 0, 2, 2, 2, 0, 0, 0, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 18, 18, + 18, 18, 18, 0, 0, 0, 18, 18, 18, 0, 18, 18, 18, 18, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 20, 20, 20, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page0C[256]= +{ + 0, 18, 18, 18, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, + 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 18, 18, + 18, 18, 18, 18, 18, 0, 18, 18, 18, 0, 18, 18, 18, 18, 0, 0, + 0, 0, 0, 0, 0, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 18, 18, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, + 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 18, 2, 18, 18, + 18, 18, 18, 18, 18, 0, 18, 18, 18, 0, 18, 18, 18, 18, 0, 0, + 0, 0, 0, 0, 0, 18, 18, 0, 0, 0, 0, 0, 0, 0, 2, 0, + 2, 2, 18, 18, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 0, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page0D[256]= +{ + 0, 0, 18, 18, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, + 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 18, 18, + 18, 18, 18, 18, 0, 0, 18, 18, 18, 0, 18, 18, 18, 18, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 18, 18, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 18, 0, 0, 0, 0, 18, + 18, 18, 18, 18, 18, 0, 18, 0, 18, 18, 18, 18, 18, 18, 18, 18, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 18, 18, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page0E[256]= +{ + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 18, 2, 2, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, 16, + 2, 2, 2, 2, 2, 2, 2, 18, 18, 18, 18, 18, 18, 18, 18, 16, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 16, 16, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 2, 0, 2, 0, 0, 2, 2, 0, 2, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, + 0, 2, 2, 2, 0, 2, 0, 2, 0, 0, 2, 2, 0, 2, 2, 2, + 2, 18, 2, 2, 18, 18, 18, 18, 18, 18, 0, 18, 18, 2, 0, 0, + 2, 2, 2, 2, 2, 0, 2, 0, 18, 18, 18, 18, 18, 18, 0, 0, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 2, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page0F[256]= +{ + 2, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 18, 18, 16, 16, 16, 16, 16, 16, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 16, 18, 16, 18, 16, 18, 16, 16, 16, 16, 18, 18, + 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, + 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 16, 18, 18, 2, 2, 2, 2, 0, 0, 0, 0, + 18, 18, 18, 18, 18, 18, 18, 18, 0, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 16, 16, + 16, 16, 16, 16, 16, 16, 18, 16, 16, 16, 16, 16, 16, 0, 0, 16, + 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page10[256]= +{ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 0, 2, 2, 2, 2, 2, 0, 2, 2, 0, 18, 18, 18, 18, + 18, 18, 18, 0, 0, 0, 18, 18, 18, 18, 0, 0, 0, 0, 0, 0, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 16, 16, 16, 16, 16, 16, + 2, 2, 2, 2, 2, 2, 18, 18, 18, 18, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 2, 0, 0, 0 +}; + +static unsigned char uctype_page11[256]= +{ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page12[256]= +{ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 2, 2, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 0, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, + 2, 0, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +}; + +static unsigned char uctype_page13[256]= +{ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 0, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 18, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page14[256]= +{ + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +}; + +static unsigned char uctype_page16[256]= +{ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 2, + 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 16, 7, 7, + 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page17[256]= +{ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, + 2, 2, 18, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 18, 18, 18, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, + 2, 0, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 32, 32, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 16, 16, 16, 2, 16, 16, 16, 16, 2, 18, 0, 0, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page18[256]= +{ + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 18, 18, 18, 8, 0, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 18, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page19[256]= +{ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, + 16, 0, 0, 0, 16, 16, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, + 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 2, 2, 2, 2, 2, 2, 2, 18, 18, 0, 0, 0, 0, 0, 0, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16 +}; + +static unsigned char uctype_page1A[256]= +{ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 18, 18, 18, 18, 18, 0, 0, 16, 16, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page1B[256]= +{ + 18, 18, 18, 18, 18, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page1D[256]= +{ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18 +}; + +static unsigned char uctype_page1E[256]= +{ + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page1F[256]= +{ + 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 0, 1, 0, 1, 0, 1, 0, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 0, 2, 2, 1, 1, 1, 1, 1, 16, 2, 16, + 16, 16, 2, 2, 2, 0, 2, 2, 1, 1, 1, 1, 1, 16, 16, 16, + 2, 2, 2, 2, 0, 0, 2, 2, 1, 1, 1, 1, 0, 16, 16, 16, + 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 16, 16, 16, + 0, 0, 2, 2, 2, 0, 2, 2, 1, 1, 1, 1, 1, 16, 16, 0 +}; + +static unsigned char uctype_page20[256]= +{ + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 32, 32, 32, 32, 32, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 8, 8, 32, 32, 32, 32, 32, 8, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 8, + 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32, + 20, 2, 0, 0, 20, 20, 20, 20, 20, 20, 16, 16, 16, 16, 16, 2, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 16, 16, 16, 16, 16, 0, + 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page21[256]= +{ + 16, 16, 1, 16, 16, 16, 16, 1, 16, 16, 2, 1, 1, 1, 2, 2, + 1, 1, 1, 2, 16, 1, 16, 16, 16, 1, 1, 1, 1, 1, 16, 16, + 16, 16, 16, 16, 1, 16, 1, 16, 1, 16, 1, 1, 1, 1, 16, 2, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 16, 16, 2, 2, 1, 1, + 16, 16, 16, 16, 16, 1, 2, 2, 2, 2, 16, 16, 16, 16, 2, 0, + 0, 0, 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16 +}; + +static unsigned char uctype_page23[256]= +{ + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page24[256]= +{ + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 +}; + +static unsigned char uctype_page26[256]= +{ + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page27[256]= +{ + 0, 16, 16, 16, 16, 0, 16, 16, 16, 16, 0, 0, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 0, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 16, 0, 16, + 16, 16, 16, 0, 0, 0, 16, 0, 16, 16, 16, 16, 16, 16, 16, 0, + 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 20, 20, 20, 20, 16, 0, 0, 0, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16 +}; + +static unsigned char uctype_page2B[256]= +{ + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0, + 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page2C[256]= +{ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, + 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 0, 0, 0, + 0, 0, 0, 0, 2, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 2, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 16, 16, 16, 20, 16, 16 +}; + +static unsigned char uctype_page2D[256]= +{ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, + 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, + 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, + 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page2E[256]= +{ + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 16, 16, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_page2F[256]= +{ + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0 +}; + +static unsigned char uctype_page30[256]= +{ + 8, 16, 16, 16, 16, 2, 2, 7, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 7, 7, 7, 7, 7, 7, 7, 7, 7, 18, 18, 18, 18, 18, 18, + 16, 2, 2, 2, 2, 2, 16, 16, 7, 7, 7, 2, 2, 16, 16, 16, + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 0, 0, 18, 18, 16, 16, 2, 2, 2, + 16, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 2, 2, 2, 2 +}; + +static unsigned char uctype_page31[256]= +{ + 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, + 16, 16, 20, 20, 20, 20, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +}; + +static unsigned char uctype_page32[256]= +{ + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0 +}; + +static unsigned char uctype_page4D[256]= +{ + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16 +}; + +static unsigned char uctype_page9F[256]= +{ + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_pageA4[256]= +{ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_pageA7[256]= +{ + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 2, 2, 2, 2, 0, 0, 0, 0, 0, + 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_pageA8[256]= +{ + 2, 2, 18, 2, 2, 2, 18, 2, 2, 2, 2, 18, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 18, 18, 18, 18, 18, 16, 16, 16, 16, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_pageD7[256]= +{ + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_pageD8[256]= +{ + 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_pageDB[256]= +{ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, + 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32 +}; + +static unsigned char uctype_pageDC[256]= +{ + 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_pageDF[256]= +{ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32 +}; + +static unsigned char uctype_pageE0[256]= +{ + 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_pageF8[256]= +{ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32 +}; + +static unsigned char uctype_pageFA[256]= +{ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static unsigned char uctype_pageFB[256]= +{ + 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 2, 18, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 2, 0, + 2, 2, 0, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 +}; + +static unsigned char uctype_pageFD[256]= +{ + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 0, 0 +}; + +static unsigned char uctype_pageFE[256]= +{ + 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, + 18, 18, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 0, 16, 16, 16, 16, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 32 +}; + +static unsigned char uctype_pageFF[256]= +{ + 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 16, 16, 16, 16, 16, 16, + 16, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 16, 16, 16, 16, + 16, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, + 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, + 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 0, 0, 0, + 16, 16, 16, 16, 16, 16, 16, 0, 16, 16, 16, 16, 16, 16, 16, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 16, 16, 0, 0 +}; + +MY_UNI_CTYPE my_uni_ctype[256]={ + {0,uctype_page00}, + {0,uctype_page01}, + {0,uctype_page02}, + {0,uctype_page03}, + {0,uctype_page04}, + {0,uctype_page05}, + {0,uctype_page06}, + {0,uctype_page07}, + {0,NULL}, + {0,uctype_page09}, + {0,uctype_page0A}, + {0,uctype_page0B}, + {0,uctype_page0C}, + {0,uctype_page0D}, + {0,uctype_page0E}, + {0,uctype_page0F}, + {0,uctype_page10}, + {0,uctype_page11}, + {0,uctype_page12}, + {0,uctype_page13}, + {0,uctype_page14}, + {2,NULL}, + {0,uctype_page16}, + {0,uctype_page17}, + {0,uctype_page18}, + {0,uctype_page19}, + {0,uctype_page1A}, + {0,uctype_page1B}, + {0,NULL}, + {0,uctype_page1D}, + {0,uctype_page1E}, + {0,uctype_page1F}, + {0,uctype_page20}, + {0,uctype_page21}, + {16,NULL}, + {0,uctype_page23}, + {0,uctype_page24}, + {16,NULL}, + {0,uctype_page26}, + {0,uctype_page27}, + {16,NULL}, + {16,NULL}, + {16,NULL}, + {0,uctype_page2B}, + {0,uctype_page2C}, + {0,uctype_page2D}, + {0,uctype_page2E}, + {0,uctype_page2F}, + {0,uctype_page30}, + {0,uctype_page31}, + {0,uctype_page32}, + {16,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {0,uctype_page4D}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {0,uctype_page9F}, + {2,NULL}, + {2,NULL}, + {2,NULL}, + {2,NULL}, + {0,uctype_pageA4}, + {0,NULL}, + {0,NULL}, + {0,uctype_pageA7}, + {0,uctype_pageA8}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {3,NULL}, + {0,uctype_pageD7}, + {0,uctype_pageD8}, + {0,NULL}, + {0,NULL}, + {0,uctype_pageDB}, + {0,uctype_pageDC}, + {0,NULL}, + {0,NULL}, + {0,uctype_pageDF}, + {0,uctype_pageE0}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,NULL}, + {0,uctype_pageF8}, + {2,NULL}, + {0,uctype_pageFA}, + {0,uctype_pageFB}, + {2,NULL}, + {0,uctype_pageFD}, + {0,uctype_pageFE}, + {0,uctype_pageFF} +}; + + +#endif /* MY_UCTYPE_INCLUDED */ diff --git a/database/include/mysql/private/my_user.h b/database/include/mysql/private/my_user.h new file mode 100644 index 0000000..b81b69a --- /dev/null +++ b/database/include/mysql/private/my_user.h @@ -0,0 +1,35 @@ +/* Copyright (c) 2005-2007 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* + This is a header for libraries containing functions used in both server and + only some of clients (but not in libmysql)... +*/ + +#ifndef _my_user_h_ +#define _my_user_h_ + +#include + +C_MODE_START + +void parse_user(const char *user_id_str, size_t user_id_len, + char *user_name_str, size_t *user_name_len, + char *host_name_str, size_t *host_name_len); + +C_MODE_END + +#endif /* _my_user_h_ */ diff --git a/database/include/mysql/private/myisam.h b/database/include/mysql/private/myisam.h new file mode 100644 index 0000000..7ed2a29 --- /dev/null +++ b/database/include/mysql/private/myisam.h @@ -0,0 +1,435 @@ +/* + Copyright (c) 2000, 2013, Oracle and/or its affiliates. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* This file should be included when using myisam_funktions */ + +#ifndef _myisam_h +#define _myisam_h +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include "keycache.h" +#include "my_compare.h" +#include +#include +#include +/* + Limit max keys according to HA_MAX_POSSIBLE_KEY; See myisamchk.h for details +*/ + +#if MAX_INDEXES > HA_MAX_POSSIBLE_KEY +#define MI_MAX_KEY HA_MAX_POSSIBLE_KEY /* Max allowed keys */ +#else +#define MI_MAX_KEY MAX_INDEXES /* Max allowed keys */ +#endif + +#define MI_MAX_POSSIBLE_KEY_BUFF HA_MAX_POSSIBLE_KEY_BUFF +/* + The following defines can be increased if necessary. + But beware the dependency of MI_MAX_POSSIBLE_KEY_BUFF and MI_MAX_KEY_LENGTH. +*/ +#define MI_MAX_KEY_LENGTH 1000 /* Max length in bytes */ +#define MI_MAX_KEY_SEG 16 /* Max segments for key */ + +#define MI_NAME_IEXT ".MYI" +#define MI_NAME_DEXT ".MYD" + +/* Possible values for myisam_block_size (must be power of 2) */ +#define MI_KEY_BLOCK_LENGTH 1024 /* default key block length */ +#define MI_MIN_KEY_BLOCK_LENGTH 1024 /* Min key block length */ +#define MI_MAX_KEY_BLOCK_LENGTH 16384 + +/* + In the following macros '_keyno_' is 0 .. keys-1. + If there can be more keys than bits in the key_map, the highest bit + is for all upper keys. They cannot be switched individually. + This means that clearing of high keys is ignored, setting one high key + sets all high keys. +*/ +#define MI_KEYMAP_BITS (8 * SIZEOF_LONG_LONG) +#define MI_KEYMAP_HIGH_MASK (ULL(1) << (MI_KEYMAP_BITS - 1)) +#define mi_get_mask_all_keys_active(_keys_) \ + (((_keys_) < MI_KEYMAP_BITS) ? \ + ((ULL(1) << (_keys_)) - ULL(1)) : \ + (~ ULL(0))) + +#if MI_MAX_KEY > MI_KEYMAP_BITS + +#define mi_is_key_active(_keymap_,_keyno_) \ + (((_keyno_) < MI_KEYMAP_BITS) ? \ + test((_keymap_) & (ULL(1) << (_keyno_))) : \ + test((_keymap_) & MI_KEYMAP_HIGH_MASK)) +#define mi_set_key_active(_keymap_,_keyno_) \ + (_keymap_)|= (((_keyno_) < MI_KEYMAP_BITS) ? \ + (ULL(1) << (_keyno_)) : \ + MI_KEYMAP_HIGH_MASK) +#define mi_clear_key_active(_keymap_,_keyno_) \ + (_keymap_)&= (((_keyno_) < MI_KEYMAP_BITS) ? \ + (~ (ULL(1) << (_keyno_))) : \ + (~ (ULL(0))) /*ignore*/ ) + +#else + +#define mi_is_key_active(_keymap_,_keyno_) \ + test((_keymap_) & (ULL(1) << (_keyno_))) +#define mi_set_key_active(_keymap_,_keyno_) \ + (_keymap_)|= (ULL(1) << (_keyno_)) +#define mi_clear_key_active(_keymap_,_keyno_) \ + (_keymap_)&= (~ (ULL(1) << (_keyno_))) + +#endif + +#define mi_is_any_key_active(_keymap_) \ + test((_keymap_)) +#define mi_is_all_keys_active(_keymap_,_keys_) \ + ((_keymap_) == mi_get_mask_all_keys_active(_keys_)) +#define mi_set_all_keys_active(_keymap_,_keys_) \ + (_keymap_)= mi_get_mask_all_keys_active(_keys_) +#define mi_clear_all_keys_active(_keymap_) \ + (_keymap_)= 0 +#define mi_intersect_keys_active(_to_,_from_) \ + (_to_)&= (_from_) +#define mi_is_any_intersect_keys_active(_keymap1_,_keys_,_keymap2_) \ + ((_keymap1_) & (_keymap2_) & \ + mi_get_mask_all_keys_active(_keys_)) +#define mi_copy_keys_active(_to_,_maxkeys_,_from_) \ + (_to_)= (mi_get_mask_all_keys_active(_maxkeys_) & \ + (_from_)) + + /* Param to/from mi_info */ + +typedef struct st_mi_isaminfo /* Struct from h_info */ +{ + ha_rows records; /* Records in database */ + ha_rows deleted; /* Deleted records in database */ + my_off_t recpos; /* Pos for last used record */ + my_off_t newrecpos; /* Pos if we write new record */ + my_off_t dupp_key_pos; /* Position to record with dupp key */ + my_off_t data_file_length, /* Length of data file */ + max_data_file_length, + index_file_length, + max_index_file_length, + delete_length; + ulong reclength; /* Recordlength */ + ulong mean_reclength; /* Mean recordlength (if packed) */ + ulonglong auto_increment; + ulonglong key_map; /* Which keys are used */ + char *data_file_name, *index_file_name; + uint keys; /* Number of keys in use */ + uint options; /* HA_OPTION_... used */ + int errkey, /* With key was dupplicated on err */ + sortkey; /* clustered by this key */ + File filenr; /* (uniq) filenr for datafile */ + time_t create_time; /* When table was created */ + time_t check_time; + time_t update_time; + uint reflength; + ulong record_offset; + ulong *rec_per_key; /* for sql optimizing */ +} MI_ISAMINFO; + + +typedef struct st_mi_create_info +{ + const char *index_file_name, *data_file_name; /* If using symlinks */ + ha_rows max_rows; + ha_rows reloc_rows; + ulonglong auto_increment; + ulonglong data_file_length; + ulonglong key_file_length; + uint old_options; + uint16 language; + my_bool with_auto_increment; +} MI_CREATE_INFO; + +struct st_myisam_info; /* For referense */ +struct st_mi_isam_share; +typedef struct st_myisam_info MI_INFO; +struct st_mi_s_param; + +typedef struct st_mi_keydef /* Key definition with open & info */ +{ + struct st_mi_isam_share *share; /* Pointer to base (set in mi_open) */ + uint16 keysegs; /* Number of key-segment */ + uint16 flag; /* NOSAME, PACK_USED */ + + uint8 key_alg; /* BTREE, RTREE */ + uint16 block_length; /* Length of keyblock (auto) */ + uint16 underflow_block_length; /* When to execute underflow */ + uint16 keylength; /* Tot length of keyparts (auto) */ + uint16 minlength; /* min length of (packed) key (auto) */ + uint16 maxlength; /* max length of (packed) key (auto) */ + uint16 block_size_index; /* block_size (auto) */ + uint32 version; /* For concurrent read/write */ + uint32 ftkey_nr; /* full-text index number */ + + HA_KEYSEG *seg,*end; + struct st_mysql_ftparser *parser; /* Fulltext [pre]parser */ + int (*bin_search)(struct st_myisam_info *info,struct st_mi_keydef *keyinfo, + uchar *page,uchar *key, + uint key_len,uint comp_flag,uchar * *ret_pos, + uchar *buff, my_bool *was_last_key); + uint (*get_key)(struct st_mi_keydef *keyinfo,uint nod_flag,uchar * *page, + uchar *key); + int (*pack_key)(struct st_mi_keydef *keyinfo,uint nod_flag,uchar *next_key, + uchar *org_key, uchar *prev_key, uchar *key, + struct st_mi_s_param *s_temp); + void (*store_key)(struct st_mi_keydef *keyinfo, uchar *key_pos, + struct st_mi_s_param *s_temp); + int (*ck_insert)(struct st_myisam_info *inf, uint k_nr, uchar *k, uint klen); + int (*ck_delete)(struct st_myisam_info *inf, uint k_nr, uchar *k, uint klen); +} MI_KEYDEF; + + +#define MI_UNIQUE_HASH_LENGTH 4 + +typedef struct st_unique_def /* Segment definition of unique */ +{ + uint16 keysegs; /* Number of key-segment */ + uchar key; /* Mapped to which key */ + uint8 null_are_equal; + HA_KEYSEG *seg,*end; +} MI_UNIQUEDEF; + +typedef struct st_mi_decode_tree /* Decode huff-table */ +{ + uint16 *table; + uint quick_table_bits; + uchar *intervalls; +} MI_DECODE_TREE; + + +struct st_mi_bit_buff; + +/* + Note that null markers should always be first in a row ! + When creating a column, one should only specify: + type, length, null_bit and null_pos +*/ + +typedef struct st_columndef /* column information */ +{ + enum en_fieldtype type; + uint16 length; /* length of field */ + uint32 offset; /* Offset to position in row */ + uint8 null_bit; /* If column may be 0 */ + uint16 null_pos; /* position for null marker */ + +#ifndef NOT_PACKED_DATABASES + void (*unpack)(struct st_columndef *rec,struct st_mi_bit_buff *buff, + uchar *start,uchar *end); + enum en_fieldtype base_type; + uint space_length_bits,pack_type; + MI_DECODE_TREE *huff_tree; +#endif +} MI_COLUMNDEF; + +extern char * myisam_log_filename; /* Name of logfile */ +extern ulong myisam_block_size; +extern ulong myisam_concurrent_insert; +extern my_bool myisam_flush,myisam_delay_key_write,myisam_single_user; +extern my_off_t myisam_max_temp_length; +extern ulong myisam_data_pointer_size; + +/* usually used to check if a symlink points into the mysql data home */ +/* which is normally forbidden */ +extern int (*myisam_test_invalid_symlink)(const char *filename); +extern ulonglong myisam_mmap_size, myisam_mmap_used; +extern mysql_mutex_t THR_LOCK_myisam_mmap; + + /* Prototypes for myisam-functions */ + +extern int mi_close(struct st_myisam_info *file); +extern int mi_delete(struct st_myisam_info *file,const uchar *buff); +extern struct st_myisam_info *mi_open(const char *name,int mode, + uint wait_if_locked); +extern int mi_panic(enum ha_panic_function function); +extern int mi_rfirst(struct st_myisam_info *file,uchar *buf,int inx); +extern int mi_rkey(MI_INFO *info, uchar *buf, int inx, const uchar *key, + key_part_map keypart_map, enum ha_rkey_function search_flag); +extern int mi_rlast(struct st_myisam_info *file,uchar *buf,int inx); +extern int mi_rnext(struct st_myisam_info *file,uchar *buf,int inx); +extern int mi_rnext_same(struct st_myisam_info *info, uchar *buf); +extern int mi_rprev(struct st_myisam_info *file,uchar *buf,int inx); +extern int mi_rrnd(struct st_myisam_info *file,uchar *buf, my_off_t pos); +extern int mi_scan_init(struct st_myisam_info *file); +extern int mi_scan(struct st_myisam_info *file,uchar *buf); +extern int mi_rsame(struct st_myisam_info *file,uchar *record,int inx); +extern int mi_rsame_with_pos(struct st_myisam_info *file,uchar *record, + int inx, my_off_t pos); +extern int mi_update(struct st_myisam_info *file,const uchar *old, + uchar *new_record); +extern int mi_write(struct st_myisam_info *file,uchar *buff); +extern my_off_t mi_position(struct st_myisam_info *file); +extern int mi_status(struct st_myisam_info *info, MI_ISAMINFO *x, uint flag); +extern int mi_lock_database(struct st_myisam_info *file,int lock_type); +extern int mi_create(const char *name,uint keys,MI_KEYDEF *keydef, + uint columns, MI_COLUMNDEF *columndef, + uint uniques, MI_UNIQUEDEF *uniquedef, + MI_CREATE_INFO *create_info, uint flags); +extern int mi_delete_table(const char *name); +extern int mi_rename(const char *from, const char *to); +extern int mi_extra(struct st_myisam_info *file, + enum ha_extra_function function, + void *extra_arg); +extern int mi_reset(struct st_myisam_info *file); +extern ha_rows mi_records_in_range(MI_INFO *info,int inx, + key_range *min_key, key_range *max_key); +extern int mi_log(int activate_log); +extern int mi_is_changed(struct st_myisam_info *info); +extern int mi_delete_all_rows(struct st_myisam_info *info); +extern ulong _mi_calc_blob_length(uint length , const uchar *pos); +extern uint mi_get_pointer_length(ulonglong file_length, uint def); +extern int mi_make_backup_of_index(struct st_myisam_info *info, + time_t backup_time, myf flags); +#define myisam_max_key_length() HA_MAX_KEY_LENGTH +#define myisam_max_key_segments() HA_MAX_KEY_SEG + +#define MEMMAP_EXTRA_MARGIN 7 /* Write this as a suffix for mmap file */ +/* this is used to pass to mysql_myisamchk_table */ + +#define MYISAMCHK_REPAIR 1 /* equivalent to myisamchk -r */ +#define MYISAMCHK_VERIFY 2 /* Verify, run repair if failure */ + +typedef uint mi_bit_type; + +typedef struct st_mi_bit_buff +{ /* Used for packing of record */ + mi_bit_type current_byte; + uint bits; + uchar *pos, *end, *blob_pos, *blob_end; + uint error; +} MI_BIT_BUFF; + +typedef struct st_sort_info +{ + /* sync things */ + mysql_mutex_t mutex; + mysql_cond_t cond; + MI_INFO *info; + HA_CHECK *param; + uchar *buff; + SORT_KEY_BLOCKS *key_block, *key_block_end; + SORT_FT_BUF *ft_buf; + my_off_t filelength, dupp, buff_length; + ha_rows max_records; + uint current_key, total_keys; + volatile uint got_error; + uint threads_running; + myf myf_rw; + enum data_file_type new_data_file_type; +} MI_SORT_INFO; + +typedef struct st_mi_sort_param +{ + pthread_t thr; + IO_CACHE read_cache, tempfile, tempfile_for_exceptions; + DYNAMIC_ARRAY buffpek; + MI_BIT_BUFF bit_buff; /* For parallel repair of packrec. */ + + MI_KEYDEF *keyinfo; + MI_SORT_INFO *sort_info; + HA_KEYSEG *seg; + uchar **sort_keys; + uchar *rec_buff; + void *wordlist, *wordptr; + MEM_ROOT wordroot; + uchar *record; + MY_TMPDIR *tmpdir; + + /* + The next two are used to collect statistics, see update_key_parts for + description. + */ + ulonglong unique[HA_MAX_KEY_SEG+1]; + ulonglong notnull[HA_MAX_KEY_SEG+1]; + + my_off_t pos,max_pos,filepos,start_recpos; + uint key, key_length,real_key_length,sortbuff_size; + uint maxbuffers, keys, find_length, sort_keys_length; + my_bool fix_datafile, master; + my_bool calc_checksum; /* calculate table checksum */ + + int (*key_cmp)(struct st_mi_sort_param *, const void *, const void *); + int (*key_read)(struct st_mi_sort_param *,void *); + int (*key_write)(struct st_mi_sort_param *, const void *); + void (*lock_in_memory)(HA_CHECK *); + int (*write_keys)(struct st_mi_sort_param *, register uchar **, + uint , struct st_buffpek *, IO_CACHE *); + uint (*read_to_buffer)(IO_CACHE *,struct st_buffpek *, uint); + int (*write_key)(struct st_mi_sort_param *, IO_CACHE *,uchar *, + uint, uint); +} MI_SORT_PARAM; + +/* functions in mi_check */ +void myisamchk_init(HA_CHECK *param); +int chk_status(HA_CHECK *param, MI_INFO *info); +int chk_del(HA_CHECK *param, register MI_INFO *info, ulonglong test_flag); +int chk_size(HA_CHECK *param, MI_INFO *info); +int chk_key(HA_CHECK *param, MI_INFO *info); +int chk_data_link(HA_CHECK *param, MI_INFO *info, my_bool extend); +int mi_repair(HA_CHECK *param, register MI_INFO *info, + char * name, int rep_quick); +int mi_sort_index(HA_CHECK *param, register MI_INFO *info, char * name); +int mi_repair_by_sort(HA_CHECK *param, register MI_INFO *info, + const char * name, int rep_quick); +int mi_repair_parallel(HA_CHECK *param, register MI_INFO *info, + const char * name, int rep_quick); +int change_to_newfile(const char * filename, const char * old_ext, + const char * new_ext, time_t backup_time, myf myflags); +int lock_file(HA_CHECK *param, File file, my_off_t start, int lock_type, + const char *filetype, const char *filename); +void lock_memory(HA_CHECK *param); +void update_auto_increment_key(HA_CHECK *param, MI_INFO *info, + my_bool repair); +int update_state_info(HA_CHECK *param, MI_INFO *info,uint update); +void update_key_parts(MI_KEYDEF *keyinfo, ulong *rec_per_key_part, + ulonglong *unique, ulonglong *notnull, + ulonglong records); +int filecopy(HA_CHECK *param, File to,File from,my_off_t start, + my_off_t length, const char *type); +int movepoint(MI_INFO *info,uchar *record,my_off_t oldpos, + my_off_t newpos, uint prot_key); +int write_data_suffix(MI_SORT_INFO *sort_info, my_bool fix_datafile); +int test_if_almost_full(MI_INFO *info); +int recreate_table(HA_CHECK *param, MI_INFO **org_info, char *filename); +void mi_disable_non_unique_index(MI_INFO *info, ha_rows rows); +my_bool mi_test_if_sort_rep(MI_INFO *info, ha_rows rows, ulonglong key_map, + my_bool force); + +int mi_init_bulk_insert(MI_INFO *info, size_t cache_size, ha_rows rows); +void mi_flush_bulk_insert(MI_INFO *info, uint inx); +void mi_end_bulk_insert(MI_INFO *info); +int mi_assign_to_key_cache(MI_INFO *info, ulonglong key_map, + KEY_CACHE *key_cache); +void mi_change_key_cache(KEY_CACHE *old_key_cache, + KEY_CACHE *new_key_cache); +int mi_preload(MI_INFO *info, ulonglong key_map, my_bool ignore_leaves); + +int write_data_suffix(MI_SORT_INFO *sort_info, my_bool fix_datafile); +int flush_pending_blocks(MI_SORT_PARAM *param); +int sort_ft_buf_flush(MI_SORT_PARAM *sort_param); +int thr_write_keys(MI_SORT_PARAM *sort_param); +int sort_write_record(MI_SORT_PARAM *sort_param); +int _create_index_by_sort(MI_SORT_PARAM *info,my_bool no_messages, ulonglong); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/database/include/mysql/private/myisamchk.h b/database/include/mysql/private/myisamchk.h new file mode 100644 index 0000000..4eb7697 --- /dev/null +++ b/database/include/mysql/private/myisamchk.h @@ -0,0 +1,146 @@ +/* Copyright (C) 2006 MySQL AB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* Definitions needed for myisamchk/mariachk.c */ + +/* + Entries marked as "QQ to be removed" are NOT used to + pass check/repair options to xxx_check.c. They are used + internally by xxxchk.c or/and ha_xxxx.cc and should NOT + be stored together with other flags. They should be removed + from the following list to make addition of new flags possible. +*/ + +#ifndef _myisamchk_h +#define _myisamchk_h + +/* + Flags used by xxxxchk.c or/and ha_xxxx.cc that are NOT passed + to xxxcheck.c follows: +*/ + +#define TT_USEFRM 1 +#define TT_FOR_UPGRADE 2 +#define TT_FROM_MYSQL 4 + +/* Bits set in out_flag */ +#define O_NEW_DATA 2 +#define O_DATA_LOST 4 + +typedef struct st_sort_key_blocks /* Used when sorting */ +{ + uchar *buff, *end_pos; + uchar lastkey[HA_MAX_POSSIBLE_KEY_BUFF]; + uint last_length; + int inited; +} SORT_KEY_BLOCKS; + + +/* + MARIA/MYISAM supports several statistics collection + methods. Currently statistics collection method is not stored in + MARIA file and has to be specified for each table analyze/repair + operation in MI_CHECK::stats_method. +*/ + +typedef enum +{ + /* Treat NULLs as inequal when collecting statistics (default for 4.1/5.0) */ + MI_STATS_METHOD_NULLS_NOT_EQUAL, + /* Treat NULLs as equal when collecting statistics (like 4.0 did) */ + MI_STATS_METHOD_NULLS_EQUAL, + /* Ignore NULLs - count only tuples without NULLs in the index components */ + MI_STATS_METHOD_IGNORE_NULLS +} enum_handler_stats_method; + + +typedef struct st_handler_check_param +{ + char *isam_file_name; + MY_TMPDIR *tmpdir; + void *thd; + const char *db_name, *table_name, *op_name; + ulonglong auto_increment_value; + ulonglong max_data_file_length; + ulonglong keys_in_use; + ulonglong max_record_length; + /* + The next two are used to collect statistics, see update_key_parts for + description. + */ + ulonglong unique_count[HA_MAX_KEY_SEG + 1]; + ulonglong notnull_count[HA_MAX_KEY_SEG + 1]; + + my_off_t search_after_block; + my_off_t new_file_pos, key_file_blocks; + my_off_t keydata, totaldata, key_blocks, start_check_pos; + my_off_t used, empty, splits, del_length, link_used, lost; + ha_rows total_records, total_deleted, records,del_blocks; + ha_rows full_page_count, tail_count; + ha_checksum record_checksum, glob_crc; + ha_checksum key_crc[HA_MAX_POSSIBLE_KEY]; + ha_checksum tmp_key_crc[HA_MAX_POSSIBLE_KEY]; + ha_checksum tmp_record_checksum; + ulonglong org_key_map; + ulonglong testflag; + + /* Following is used to check if rows are visible */ + ulonglong max_trid, max_found_trid; + ulonglong not_visible_rows_found; + ulonglong sort_buffer_length; + ulonglong use_buffers; /* Used as param to getopt() */ + size_t read_buffer_length, write_buffer_length, sort_key_blocks; + time_t backup_time; /* To sign backup files */ + ulong rec_per_key_part[HA_MAX_KEY_SEG * HA_MAX_POSSIBLE_KEY]; + double new_rec_per_key_part[HA_MAX_KEY_SEG * HA_MAX_POSSIBLE_KEY]; + uint out_flag, warning_printed, error_printed, note_printed, verbose; + uint opt_sort_key, total_files, max_level; + uint key_cache_block_size, pagecache_block_size; + int tmpfile_createflag, err_count; + myf myf_rw; + uint16 language; + my_bool using_global_keycache, opt_lock_memory, opt_follow_links; + my_bool retry_repair, force_sort, calc_checksum, static_row_size; + char temp_filename[FN_REFLEN]; + IO_CACHE read_cache; + enum_handler_stats_method stats_method; + /* For reporting progress */ + uint stage, max_stage; + uint progress_counter; /* How often to call _report_progress() */ + ulonglong progress, max_progress; + + mysql_mutex_t print_msg_mutex; + my_bool need_print_msg_lock; +} HA_CHECK; + + +typedef struct st_sort_ftbuf +{ + uchar *buf, *end; + int count; + uchar lastkey[HA_MAX_KEY_BUFF]; +} SORT_FT_BUF; + + +typedef struct st_buffpek { + my_off_t file_pos; /* Where we are in the sort file */ + uchar *base, *key; /* Key pointers */ + ha_rows count; /* Number of rows in table */ + ulong mem_count; /* numbers of keys in memory */ + ulong max_keys; /* Max keys in buffert */ +} BUFFPEK; + +#endif /* _myisamchk_h */ diff --git a/database/include/mysql/private/myisammrg.h b/database/include/mysql/private/myisammrg.h new file mode 100644 index 0000000..136932c --- /dev/null +++ b/database/include/mysql/private/myisammrg.h @@ -0,0 +1,124 @@ +/* Copyright (c) 2000-2002, 2004, 2006-2008 MySQL AB, 2009 Sun Microsystems, Inc. + Use is subject to license terms. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* This file should be included when using merge_isam_funktions */ + +#ifndef _myisammrg_h +#define _myisammrg_h +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef _my_base_h +#include +#endif +#ifndef _myisam_h +#include +#endif + +#include + +#define MYRG_NAME_EXT ".MRG" + +/* In which table to INSERT rows */ +#define MERGE_INSERT_DISABLED 0 +#define MERGE_INSERT_TO_FIRST 1 +#define MERGE_INSERT_TO_LAST 2 + +extern TYPELIB merge_insert_method; + + /* Param to/from myrg_info */ + +typedef struct st_mymerge_info /* Struct from h_info */ +{ + ulonglong records; /* Records in database */ + ulonglong deleted; /* Deleted records in database */ + ulonglong recpos; /* Pos for last used record */ + ulonglong data_file_length; + ulonglong dupp_key_pos; /* Offset of the Duplicate key in the merge table */ + uint reclength; /* Recordlength */ + int errkey; /* With key was dupplicated on err */ + uint options; /* HA_OPTION_... used */ + ulong *rec_per_key; /* for sql optimizing */ +} MYMERGE_INFO; + +typedef struct st_myrg_table_info +{ + struct st_myisam_info *table; + ulonglong file_offset; +} MYRG_TABLE; + +typedef struct st_myrg_info +{ + MYRG_TABLE *open_tables,*current_table,*end_table,*last_used_table; + ulonglong records; /* records in tables */ + ulonglong del; /* Removed records */ + ulonglong data_file_length; + ulong cache_size; + uint merge_insert_method; + uint tables,options,reclength,keys; + my_bool cache_in_use; + /* If MERGE children attached to parent. See top comment in ha_myisammrg.cc */ + my_bool children_attached; + LIST open_list; + QUEUE by_key; + ulong *rec_per_key_part; /* for sql optimizing */ + mysql_mutex_t mutex; +} MYRG_INFO; + + + /* Prototypes for merge-functions */ + +extern int myrg_close(MYRG_INFO *file); +extern int myrg_delete(MYRG_INFO *file,const uchar *buff); +extern MYRG_INFO *myrg_open(const char *name,int mode,int wait_if_locked); +extern MYRG_INFO *myrg_parent_open(const char *parent_name, + int (*callback)(void*, const char*), + void *callback_param); +extern int myrg_attach_children(MYRG_INFO *m_info, int handle_locking, + MI_INFO *(*callback)(void*), + void *callback_param, + my_bool *need_compat_check); +extern int myrg_detach_children(MYRG_INFO *m_info); +extern int myrg_panic(enum ha_panic_function function); +extern int myrg_rfirst(MYRG_INFO *file,uchar *buf,int inx); +extern int myrg_rlast(MYRG_INFO *file,uchar *buf,int inx); +extern int myrg_rnext(MYRG_INFO *file,uchar *buf,int inx); +extern int myrg_rprev(MYRG_INFO *file,uchar *buf,int inx); +extern int myrg_rnext_same(MYRG_INFO *file,uchar *buf); +extern int myrg_rkey(MYRG_INFO *info,uchar *buf,int inx, const uchar *key, + key_part_map keypart_map, enum ha_rkey_function search_flag); +extern int myrg_rrnd(MYRG_INFO *file,uchar *buf,ulonglong pos); +extern int myrg_rsame(MYRG_INFO *file,uchar *record,int inx); +extern int myrg_update(MYRG_INFO *file,const uchar *old,uchar *new_rec); +extern int myrg_write(MYRG_INFO *info,uchar *rec); +extern int myrg_status(MYRG_INFO *file,MYMERGE_INFO *x,int flag); +extern int myrg_lock_database(MYRG_INFO *file,int lock_type); +extern int myrg_create(const char *name, const char **table_names, + uint insert_method, my_bool fix_names); +extern int myrg_extra(MYRG_INFO *file,enum ha_extra_function function, + void *extra_arg); +extern int myrg_reset(MYRG_INFO *info); +extern void myrg_extrafunc(MYRG_INFO *info,invalidator_by_filename inv); +extern ha_rows myrg_records_in_range(MYRG_INFO *info, int inx, + key_range *min_key, key_range *max_key); +extern ha_rows myrg_records(MYRG_INFO *info); + +extern ulonglong myrg_position(MYRG_INFO *info); +#ifdef __cplusplus +} +#endif +#endif diff --git a/database/include/mysql/private/myisampack.h b/database/include/mysql/private/myisampack.h new file mode 100644 index 0000000..22820ca --- /dev/null +++ b/database/include/mysql/private/myisampack.h @@ -0,0 +1,243 @@ +#ifndef MYISAMPACK_INCLUDED +#define MYISAMPACK_INCLUDED + +/* Copyright (c) 2000-2002, 2004 MySQL AB, 2009 Sun Microsystems, Inc. + Use is subject to license terms. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* + Storing of values in high byte first order. + + integer keys and file pointers are stored with high byte first to get + better compression +*/ + +/* these two are for uniformity */ +#define mi_sint1korr(A) ((int8)(*A)) +#define mi_uint1korr(A) ((uint8)(*A)) + +#define mi_sint2korr(A) ((int16) (((int16) (((const uchar*) (A))[1])) +\ + ((int16) ((int16) ((const char*) (A))[0]) << 8))) +#define mi_sint3korr(A) ((int32) (((((const uchar*) (A))[0]) & 128) ? \ + (((uint32) 255L << 24) | \ + (((uint32) ((const uchar*) (A))[0]) << 16) |\ + (((uint32) ((const uchar*) (A))[1]) << 8) | \ + ((uint32) ((const uchar*) (A))[2])) : \ + (((uint32) ((const uchar*) (A))[0]) << 16) |\ + (((uint32) ((const uchar*) (A))[1]) << 8) | \ + ((uint32) ((const uchar*) (A))[2]))) +#define mi_sint4korr(A) ((int32) (((int32) (((const uchar*) (A))[3])) +\ + ((int32) (((const uchar*) (A))[2]) << 8) +\ + ((int32) (((const uchar*) (A))[1]) << 16) +\ + ((int32) ((int16) ((const char*) (A))[0]) << 24))) +#define mi_sint8korr(A) ((longlong) mi_uint8korr(A)) +#define mi_uint2korr(A) ((uint16) (((uint16) (((const uchar*) (A))[1])) +\ + ((uint16) (((const uchar*) (A))[0]) << 8))) +#define mi_uint3korr(A) ((uint32) (((uint32) (((const uchar*) (A))[2])) +\ + (((uint32) (((const uchar*) (A))[1])) << 8) +\ + (((uint32) (((const uchar*) (A))[0])) << 16))) +#define mi_uint4korr(A) ((uint32) (((uint32) (((const uchar*) (A))[3])) +\ + (((uint32) (((const uchar*) (A))[2])) << 8) +\ + (((uint32) (((const uchar*) (A))[1])) << 16) +\ + (((uint32) (((const uchar*) (A))[0])) << 24))) +#define mi_uint5korr(A) ((ulonglong)(((uint32) (((const uchar*) (A))[4])) +\ + (((uint32) (((const uchar*) (A))[3])) << 8) +\ + (((uint32) (((const uchar*) (A))[2])) << 16) +\ + (((uint32) (((const uchar*) (A))[1])) << 24)) +\ + (((ulonglong) (((const uchar*) (A))[0])) << 32)) +#define mi_uint6korr(A) ((ulonglong)(((uint32) (((const uchar*) (A))[5])) +\ + (((uint32) (((const uchar*) (A))[4])) << 8) +\ + (((uint32) (((const uchar*) (A))[3])) << 16) +\ + (((uint32) (((const uchar*) (A))[2])) << 24)) +\ + (((ulonglong) (((uint32) (((const uchar*) (A))[1])) +\ + (((uint32) (((const uchar*) (A))[0]) << 8)))) <<\ + 32)) +#define mi_uint7korr(A) ((ulonglong)(((uint32) (((const uchar*) (A))[6])) +\ + (((uint32) (((const uchar*) (A))[5])) << 8) +\ + (((uint32) (((const uchar*) (A))[4])) << 16) +\ + (((uint32) (((const uchar*) (A))[3])) << 24)) +\ + (((ulonglong) (((uint32) (((const uchar*) (A))[2])) +\ + (((uint32) (((const uchar*) (A))[1])) << 8) +\ + (((uint32) (((const uchar*) (A))[0])) << 16))) <<\ + 32)) +#define mi_uint8korr(A) ((ulonglong)(((uint32) (((const uchar*) (A))[7])) +\ + (((uint32) (((const uchar*) (A))[6])) << 8) +\ + (((uint32) (((const uchar*) (A))[5])) << 16) +\ + (((uint32) (((const uchar*) (A))[4])) << 24)) +\ + (((ulonglong) (((uint32) (((const uchar*) (A))[3])) +\ + (((uint32) (((const uchar*) (A))[2])) << 8) +\ + (((uint32) (((const uchar*) (A))[1])) << 16) +\ + (((uint32) (((const uchar*) (A))[0])) << 24))) <<\ + 32)) + +/* This one is for uniformity */ +#define mi_int1store(T,A) *((uchar*)(T))= (uchar) (A) + +#define mi_int2store(T,A) { uint def_temp= (uint) (A) ;\ + ((uchar*) (T))[1]= (uchar) (def_temp);\ + ((uchar*) (T))[0]= (uchar) (def_temp >> 8); } +#define mi_int3store(T,A) { /*lint -save -e734 */\ + ulong def_temp= (ulong) (A);\ + ((uchar*) (T))[2]= (uchar) (def_temp);\ + ((uchar*) (T))[1]= (uchar) (def_temp >> 8);\ + ((uchar*) (T))[0]= (uchar) (def_temp >> 16);\ + /*lint -restore */} +#define mi_int4store(T,A) { ulong def_temp= (ulong) (A);\ + ((uchar*) (T))[3]= (uchar) (def_temp);\ + ((uchar*) (T))[2]= (uchar) (def_temp >> 8);\ + ((uchar*) (T))[1]= (uchar) (def_temp >> 16);\ + ((uchar*) (T))[0]= (uchar) (def_temp >> 24); } +#define mi_int5store(T,A) { ulong def_temp= (ulong) (A),\ + def_temp2= (ulong) ((A) >> 32);\ + ((uchar*) (T))[4]= (uchar) (def_temp);\ + ((uchar*) (T))[3]= (uchar) (def_temp >> 8);\ + ((uchar*) (T))[2]= (uchar) (def_temp >> 16);\ + ((uchar*) (T))[1]= (uchar) (def_temp >> 24);\ + ((uchar*) (T))[0]= (uchar) (def_temp2); } +#define mi_int6store(T,A) { ulong def_temp= (ulong) (A),\ + def_temp2= (ulong) ((A) >> 32);\ + ((uchar*) (T))[5]= (uchar) (def_temp);\ + ((uchar*) (T))[4]= (uchar) (def_temp >> 8);\ + ((uchar*) (T))[3]= (uchar) (def_temp >> 16);\ + ((uchar*) (T))[2]= (uchar) (def_temp >> 24);\ + ((uchar*) (T))[1]= (uchar) (def_temp2);\ + ((uchar*) (T))[0]= (uchar) (def_temp2 >> 8); } +#define mi_int7store(T,A) { ulong def_temp= (ulong) (A),\ + def_temp2= (ulong) ((A) >> 32);\ + ((uchar*) (T))[6]= (uchar) (def_temp);\ + ((uchar*) (T))[5]= (uchar) (def_temp >> 8);\ + ((uchar*) (T))[4]= (uchar) (def_temp >> 16);\ + ((uchar*) (T))[3]= (uchar) (def_temp >> 24);\ + ((uchar*) (T))[2]= (uchar) (def_temp2);\ + ((uchar*) (T))[1]= (uchar) (def_temp2 >> 8);\ + ((uchar*) (T))[0]= (uchar) (def_temp2 >> 16); } +#define mi_int8store(T,A) { ulong def_temp3= (ulong) (A),\ + def_temp4= (ulong) ((A) >> 32);\ + mi_int4store((uchar*) (T) + 0, def_temp4);\ + mi_int4store((uchar*) (T) + 4, def_temp3); } + +#ifdef WORDS_BIGENDIAN + +#define mi_float4store(T,A) { ((uchar*) (T))[0]= ((uchar*) &A)[0];\ + ((uchar*) (T))[1]= ((uchar*) &A)[1];\ + ((uchar*) (T))[2]= ((uchar*) &A)[2];\ + ((uchar*) (T))[3]= ((uchar*) &A)[3]; } + +#define mi_float4get(V,M) { float def_temp;\ + ((uchar*) &def_temp)[0]= ((const uchar*) (M))[0];\ + ((uchar*) &def_temp)[1]= ((const uchar*) (M))[1]; \ + ((uchar*) &def_temp)[2]= ((const uchar*) (M))[2];\ + ((uchar*) &def_temp)[3]= ((const uchar*) (M))[3];\ + (V)= def_temp; } + +#define mi_float8store(T,V) { ((uchar*) (T))[0]= ((const uchar*) &V)[0];\ + ((uchar*) (T))[1]= ((const uchar*) &V)[1];\ + ((uchar*) (T))[2]= ((const uchar*) &V)[2];\ + ((uchar*) (T))[3]= ((const uchar*) &V)[3];\ + ((uchar*) (T))[4]= ((const uchar*) &V)[4];\ + ((uchar*) (T))[5]= ((const uchar*) &V)[5];\ + ((uchar*) (T))[6]= ((const uchar*) &V)[6];\ + ((uchar*) (T))[7]= ((const uchar*) &V)[7]; } + +#define mi_float8get(V,M) { double def_temp;\ + ((uchar*) &def_temp)[0]= ((const uchar*) (M))[0];\ + ((uchar*) &def_temp)[1]= ((const uchar*) (M))[1];\ + ((uchar*) &def_temp)[2]= ((const uchar*) (M))[2];\ + ((uchar*) &def_temp)[3]= ((const uchar*) (M))[3];\ + ((uchar*) &def_temp)[4]= ((const uchar*) (M))[4];\ + ((uchar*) &def_temp)[5]= ((const uchar*) (M))[5];\ + ((uchar*) &def_temp)[6]= ((const uchar*) (M))[6];\ + ((uchar*) &def_temp)[7]= ((const uchar*) (M))[7]; \ + (V)= def_temp; } +#else + +#define mi_float4store(T,A) { ((uchar*) (T))[0]= ((const uchar*) &A)[3];\ + ((uchar*) (T))[1]= ((const uchar*) &A)[2];\ + ((uchar*) (T))[2]= ((const uchar*) &A)[1];\ + ((uchar*) (T))[3]= ((const uchar*) &A)[0]; } + +#define mi_float4get(V,M) { float def_temp;\ + ((uchar*) &def_temp)[0]= ((const uchar*) (M))[3];\ + ((uchar*) &def_temp)[1]= ((const uchar*) (M))[2];\ + ((uchar*) &def_temp)[2]= ((const uchar*) (M))[1];\ + ((uchar*) &def_temp)[3]= ((const uchar*) (M))[0];\ + (V)= def_temp; } + +#if defined(__FLOAT_WORD_ORDER) && (__FLOAT_WORD_ORDER == __BIG_ENDIAN) +#define mi_float8store(T,V) { ((uchar*) (T))[0]= ((const uchar*) &V)[3];\ + ((uchar*) (T))[1]= ((const uchar*) &V)[2];\ + ((uchar*) (T))[2]= ((const uchar*) &V)[1];\ + ((uchar*) (T))[3]= ((const uchar*) &V)[0];\ + ((uchar*) (T))[4]= ((const uchar*) &V)[7];\ + ((uchar*) (T))[5]= ((const uchar*) &V)[6];\ + ((uchar*) (T))[6]= ((const uchar*) &V)[5];\ + ((uchar*) (T))[7]= ((const uchar*) &V)[4];} + +#define mi_float8get(V,M) { double def_temp;\ + ((uchar*) &def_temp)[0]= ((const uchar*) (M))[3];\ + ((uchar*) &def_temp)[1]= ((const uchar*) (M))[2];\ + ((uchar*) &def_temp)[2]= ((const uchar*) (M))[1];\ + ((uchar*) &def_temp)[3]= ((const uchar*) (M))[0];\ + ((uchar*) &def_temp)[4]= ((const uchar*) (M))[7];\ + ((uchar*) &def_temp)[5]= ((const uchar*) (M))[6];\ + ((uchar*) &def_temp)[6]= ((const uchar*) (M))[5];\ + ((uchar*) &def_temp)[7]= ((const uchar*) (M))[4];\ + (V)= def_temp; } + +#else +#define mi_float8store(T,V) { ((uchar*) (T))[0]= ((const uchar*) &V)[7];\ + ((uchar*) (T))[1]= ((const uchar*) &V)[6];\ + ((uchar*) (T))[2]= ((const uchar*) &V)[5];\ + ((uchar*) (T))[3]= ((const uchar*) &V)[4];\ + ((uchar*) (T))[4]= ((const uchar*) &V)[3];\ + ((uchar*) (T))[5]= ((const uchar*) &V)[2];\ + ((uchar*) (T))[6]= ((const uchar*) &V)[1];\ + ((uchar*) (T))[7]= ((const uchar*) &V)[0];} + +#define mi_float8get(V,M) { double def_temp;\ + ((uchar*) &def_temp)[0]= ((const uchar*) (M))[7];\ + ((uchar*) &def_temp)[1]= ((const uchar*) (M))[6];\ + ((uchar*) &def_temp)[2]= ((const uchar*) (M))[5];\ + ((uchar*) &def_temp)[3]= ((const uchar*) (M))[4];\ + ((uchar*) &def_temp)[4]= ((const uchar*) (M))[3];\ + ((uchar*) &def_temp)[5]= ((const uchar*) (M))[2];\ + ((uchar*) &def_temp)[6]= ((const uchar*) (M))[1];\ + ((uchar*) &def_temp)[7]= ((const uchar*) (M))[0];\ + (V)= def_temp; } +#endif /* __FLOAT_WORD_ORDER */ +#endif /* WORDS_BIGENDIAN */ + +/* Fix to avoid warnings when sizeof(ha_rows) == sizeof(long) */ + +#ifdef BIG_TABLES +#define mi_rowstore(T,A) mi_int8store(T, A) +#define mi_rowkorr(T) mi_uint8korr(T) +#else +#define mi_rowstore(T,A) { mi_int4store(T, 0);\ + mi_int4store(((uchar*) (T) + 4), A); } +#define mi_rowkorr(T) mi_uint4korr((const uchar*) (T) + 4) +#endif + +#if SIZEOF_OFF_T > 4 +#define mi_sizestore(T,A) mi_int8store(T, A) +#define mi_sizekorr(T) mi_uint8korr(T) +#else +#define mi_sizestore(T,A) { if ((A) == HA_OFFSET_ERROR)\ + bfill((char*) (T), 8, 255);\ + else { mi_int4store((T), 0);\ + mi_int4store(((T) + 4), A); }} +#define mi_sizekorr(T) mi_uint4korr((const uchar*) (T) + 4) +#endif +#endif /* MYISAMPACK_INCLUDED */ diff --git a/database/include/mysql/private/mysql_async.h b/database/include/mysql/private/mysql_async.h new file mode 100644 index 0000000..c2c3bd6 --- /dev/null +++ b/database/include/mysql/private/mysql_async.h @@ -0,0 +1,38 @@ +/* Copyright (C) 2012 MariaDB Services and Kristian Nielsen + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* Common definitions for MariaDB non-blocking client library. */ + +#ifndef MYSQL_ASYNC_H +#define MYSQL_ASYNC_H + +extern int my_connect_async(struct mysql_async_context *b, my_socket fd, + const struct sockaddr *name, uint namelen, + uint timeout); +extern ssize_t my_recv_async(struct mysql_async_context *b, int fd, + unsigned char *buf, size_t size, uint timeout); +extern ssize_t my_send_async(struct mysql_async_context *b, int fd, + const unsigned char *buf, size_t size, + uint timeout); +extern my_bool my_poll_read_async(struct mysql_async_context *b, + uint timeout); +#ifdef HAVE_OPENSSL +extern int my_ssl_read_async(struct mysql_async_context *b, SSL *ssl, + void *buf, int size); +extern int my_ssl_write_async(struct mysql_async_context *b, SSL *ssl, + const void *buf, int size); +#endif + +#endif /* MYSQL_ASYNC_H */ diff --git a/database/include/mysql/private/mysqld.h b/database/include/mysql/private/mysqld.h new file mode 100644 index 0000000..e6d9b90 --- /dev/null +++ b/database/include/mysql/private/mysqld.h @@ -0,0 +1,568 @@ +/* Copyright (c) 2006, 2016, Oracle and/or its affiliates. + Copyright (c) 2010, 2016, MariaDB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef MYSQLD_INCLUDED +#define MYSQLD_INCLUDED + +#include "my_global.h" /* MYSQL_PLUGIN_IMPORT, FN_REFLEN, FN_EXTLEN */ +#include "sql_bitmap.h" /* Bitmap */ +#include "my_decimal.h" /* my_decimal */ +#include "mysql_com.h" /* SERVER_VERSION_LENGTH */ +#include "my_atomic.h" /* my_atomic_rwlock_t */ +#include "mysql/psi/mysql_file.h" /* MYSQL_FILE */ +#include "sql_list.h" /* I_List */ + +class THD; +struct handlerton; +class Time_zone; + +struct scheduler_functions; + +typedef struct st_mysql_const_lex_string LEX_CSTRING; +typedef struct st_mysql_show_var SHOW_VAR; + +#if MAX_INDEXES <= 64 +typedef Bitmap<64> key_map; /* Used for finding keys */ +#else +typedef Bitmap<((MAX_INDEXES+7)/8*8)> key_map; /* Used for finding keys */ +#endif + + /* Bits from testflag */ +#define TEST_PRINT_CACHED_TABLES 1 +#define TEST_NO_KEY_GROUP 2 +#define TEST_MIT_THREAD 4 +#define TEST_BLOCKING 8 +#define TEST_KEEP_TMP_TABLES 16 +#define TEST_READCHECK 64 /**< Force use of readcheck */ +#define TEST_NO_EXTRA 128 +#define TEST_CORE_ON_SIGNAL 256 /**< Give core if signal */ +#define TEST_SIGINT 1024 /**< Allow sigint on threads */ +#define TEST_SYNCHRONIZATION 2048 /**< get server to do sleep in + some places */ +/* Function prototypes */ +void kill_mysql(void); +void close_connection(THD *thd, uint sql_errno= 0); +void handle_connection_in_main_thread(THD *thd); +void create_thread_to_handle_connection(THD *thd); +void unlink_thd(THD *thd); +bool one_thread_per_connection_end(THD *thd, bool put_in_cache); +void flush_thread_cache(); +void refresh_status(THD *thd); +bool is_secure_file_path(char *path); + +extern "C" MYSQL_PLUGIN_IMPORT CHARSET_INFO *system_charset_info; +extern MYSQL_PLUGIN_IMPORT CHARSET_INFO *files_charset_info ; +extern MYSQL_PLUGIN_IMPORT CHARSET_INFO *national_charset_info; +extern MYSQL_PLUGIN_IMPORT CHARSET_INFO *table_alias_charset; + +/** + Character set of the buildin error messages loaded from errmsg.sys. +*/ +extern CHARSET_INFO *error_message_charset_info; + +extern CHARSET_INFO *character_set_filesystem; + +extern MY_BITMAP temp_pool; +extern bool opt_large_files, server_id_supplied; +extern bool opt_update_log, opt_bin_log, opt_error_log; +extern my_bool opt_log, opt_slow_log, opt_bootstrap; +extern my_bool opt_backup_history_log; +extern my_bool opt_backup_progress_log; +extern ulonglong log_output_options; +extern ulong log_backup_output_options; +extern my_bool opt_log_queries_not_using_indexes; +extern bool opt_disable_networking, opt_skip_show_db; +extern bool opt_skip_name_resolve; +extern bool opt_ignore_builtin_innodb; +extern my_bool opt_character_set_client_handshake; +extern bool volatile abort_loop; +extern bool in_bootstrap; +extern uint volatile thread_count; +extern uint connection_count; +extern my_bool opt_safe_user_create; +extern my_bool opt_safe_show_db, opt_local_infile, opt_myisam_use_mmap; +extern my_bool opt_slave_compressed_protocol, use_temp_pool; +extern ulong slave_exec_mode_options; +extern ulonglong slave_type_conversions_options; +extern my_bool read_only, opt_readonly; +extern my_bool lower_case_file_system; +extern my_bool opt_enable_named_pipe, opt_sync_frm, opt_allow_suspicious_udfs; +extern my_bool opt_secure_auth; +extern char* opt_secure_file_priv; +extern char* opt_secure_backup_file_priv; +extern size_t opt_secure_backup_file_priv_len; +extern my_bool opt_log_slow_admin_statements, opt_log_slow_slave_statements; +extern my_bool sp_automatic_privileges, opt_noacl; +extern my_bool opt_old_style_user_limits, trust_function_creators; +extern uint opt_crash_binlog_innodb; +extern char *shared_memory_base_name, *mysqld_unix_port; +extern my_bool opt_enable_shared_memory; +extern ulong opt_replicate_events_marked_for_skip; +extern char *default_tz_name; +extern Time_zone *default_tz; +extern char *default_storage_engine; +extern bool opt_endinfo, using_udf_functions; +extern my_bool locked_in_memory; +extern bool opt_using_transactions; +extern ulong max_long_data_size; +extern ulong current_pid; +extern ulong expire_logs_days; +extern my_bool relay_log_recovery; +extern uint sync_binlog_period, sync_relaylog_period, + sync_relayloginfo_period, sync_masterinfo_period; +extern ulong opt_tc_log_size, tc_log_max_pages_used, tc_log_page_size; +extern ulong tc_log_page_waits; +extern my_bool relay_log_purge, opt_innodb_safe_binlog, opt_innodb; +extern my_bool relay_log_recovery; +extern uint test_flags,select_errors,ha_open_options; +extern uint protocol_version, mysqld_port, dropping_tables; +extern ulong delay_key_write_options; +extern char *opt_logname, *opt_slow_logname, *opt_bin_logname, + *opt_relay_logname; +extern char *opt_backup_history_logname, *opt_backup_progress_logname, + *opt_backup_settings_name; +extern const char *log_output_str; +extern const char *log_backup_output_str; +extern char *mysql_home_ptr, *pidfile_name_ptr; +extern char glob_hostname[FN_REFLEN], mysql_home[FN_REFLEN]; +extern char pidfile_name[FN_REFLEN], system_time_zone[30], *opt_init_file; +extern char default_logfile_name[FN_REFLEN]; +extern char log_error_file[FN_REFLEN], *opt_tc_log_file; +extern const double log_10[309]; +extern ulonglong keybuff_size; +extern ulonglong thd_startup_options; +extern ulong thread_id; +extern ulong binlog_cache_use, binlog_cache_disk_use; +extern ulong binlog_stmt_cache_use, binlog_stmt_cache_disk_use; +extern ulong aborted_threads,aborted_connects; +extern ulong delayed_insert_timeout; +extern ulong delayed_insert_limit, delayed_queue_size; +extern ulong delayed_insert_threads, delayed_insert_writes; +extern ulong delayed_rows_in_use,delayed_insert_errors; +extern ulong slave_open_temp_tables; +extern ulonglong query_cache_size; +extern ulong query_cache_min_res_unit; +extern ulong slow_launch_threads, slow_launch_time; +extern ulong table_cache_size, table_def_size; +extern MYSQL_PLUGIN_IMPORT ulong max_connections; +extern ulong max_connect_errors, connect_timeout; +extern my_bool slave_allow_batching; +extern my_bool allow_slave_start; +extern LEX_CSTRING reason_slave_blocked; +extern ulong slave_trans_retries; +extern uint slave_net_timeout; +extern int max_user_connections; +extern ulong what_to_log,flush_time; +extern ulong max_prepared_stmt_count, prepared_stmt_count; +extern ulong open_files_limit; +extern ulonglong binlog_cache_size, binlog_stmt_cache_size; +extern ulonglong max_binlog_cache_size, max_binlog_stmt_cache_size; +extern ulong max_binlog_size, max_relay_log_size; +extern ulong slave_max_allowed_packet; +extern ulong opt_binlog_rows_event_max_size; +extern ulong rpl_recovery_rank, thread_cache_size; +extern ulong stored_program_cache_size; +extern ulong back_log; +extern ulong executed_events; +extern char language[FN_REFLEN]; +extern "C" MYSQL_PLUGIN_IMPORT ulong server_id; +extern ulong concurrency; +extern time_t server_start_time, flush_status_time; +extern char *opt_mysql_tmpdir, mysql_charsets_dir[]; +extern int mysql_unpacked_real_data_home_len; +extern MYSQL_PLUGIN_IMPORT MY_TMPDIR mysql_tmpdir_list; +extern const char *first_keyword, *delayed_user, *binary_keyword; +extern MYSQL_PLUGIN_IMPORT const char *my_localhost; +extern MYSQL_PLUGIN_IMPORT const char **errmesg; /* Error messages */ +extern const char *myisam_recover_options_str; +extern const char *in_left_expr_name, *in_additional_cond, *in_having_cond; +extern SHOW_VAR status_vars[]; +extern struct system_variables max_system_variables; +extern struct system_status_var global_status_var; +extern struct my_rnd_struct sql_rand; +extern const char *opt_date_time_formats[]; +extern handlerton *partition_hton; +extern handlerton *myisam_hton; +extern handlerton *heap_hton; +extern const char *load_default_groups[]; +extern struct my_option my_long_options[]; +extern int mysqld_server_started; +extern "C" MYSQL_PLUGIN_IMPORT int orig_argc; +extern "C" MYSQL_PLUGIN_IMPORT char **orig_argv; +extern pthread_attr_t connection_attrib; +extern MYSQL_FILE *bootstrap_file; +extern my_bool old_mode; +extern LEX_STRING opt_init_connect, opt_init_slave; +extern int bootstrap_error; +extern I_List threads; +extern char err_shared_dir[]; + +/* + THR_MALLOC is a key which will be used to set/get MEM_ROOT** for a thread, + using my_pthread_setspecific_ptr()/my_thread_getspecific_ptr(). +*/ +extern pthread_key(MEM_ROOT**,THR_MALLOC); + +#ifdef HAVE_PSI_INTERFACE +#ifdef HAVE_MMAP +extern PSI_mutex_key key_PAGE_lock, key_LOCK_sync, key_LOCK_active, + key_LOCK_pool; +#endif /* HAVE_MMAP */ + +#ifdef HAVE_OPENSSL +extern PSI_mutex_key key_LOCK_des_key_file; +#endif + +extern PSI_mutex_key key_BINLOG_LOCK_index, key_BINLOG_LOCK_prep_xids, + key_delayed_insert_mutex, key_hash_filo_lock, key_LOCK_active_mi, + key_LOCK_connection_count, key_LOCK_crypt, key_LOCK_delayed_create, + key_LOCK_delayed_insert, key_LOCK_delayed_status, key_LOCK_error_log, + key_LOCK_gdl, key_LOCK_global_system_variables, + key_LOCK_logger, key_LOCK_manager, + key_LOCK_prepared_stmt_count, + key_LOCK_rpl_status, key_LOCK_server_started, key_LOCK_status, + key_LOCK_table_share, key_LOCK_thd_data, + key_LOCK_user_conn, key_LOG_LOCK_log, + key_master_info_data_lock, key_master_info_run_lock, + key_master_info_sleep_lock, + key_mutex_slave_reporting_capability_err_lock, key_relay_log_info_data_lock, + key_relay_log_info_log_space_lock, key_relay_log_info_run_lock, + key_relay_log_info_sleep_lock, + key_structure_guard_mutex, key_TABLE_SHARE_LOCK_ha_data, + key_LOCK_error_messages, key_LOCK_thread_count, key_PARTITION_LOCK_auto_inc; +extern PSI_mutex_key key_RELAYLOG_LOCK_index; + +extern PSI_mutex_key key_LOCK_stats, + key_LOCK_global_user_client_stats, key_LOCK_global_table_stats, + key_LOCK_global_index_stats, key_LOCK_wakeup_ready; + +extern PSI_rwlock_key key_rwlock_LOCK_grant, key_rwlock_LOCK_logger, + key_rwlock_LOCK_sys_init_connect, key_rwlock_LOCK_sys_init_slave, + key_rwlock_LOCK_system_variables_hash, key_rwlock_query_cache_query_lock; + +#ifdef HAVE_MMAP +extern PSI_cond_key key_PAGE_cond, key_COND_active, key_COND_pool; +#endif /* HAVE_MMAP */ + +extern PSI_cond_key key_BINLOG_COND_prep_xids, key_BINLOG_update_cond, + key_COND_cache_status_changed, key_COND_manager, + key_COND_rpl_status, key_COND_server_started, + key_delayed_insert_cond, key_delayed_insert_cond_client, + key_item_func_sleep_cond, key_master_info_data_cond, + key_master_info_start_cond, key_master_info_stop_cond, + key_master_info_sleep_cond, + key_relay_log_info_data_cond, key_relay_log_info_log_space_cond, + key_relay_log_info_start_cond, key_relay_log_info_stop_cond, + key_relay_log_info_sleep_cond, + key_TABLE_SHARE_cond, key_user_level_lock_cond, + key_COND_thread_count, key_COND_thread_cache, key_COND_flush_thread_cache; +extern PSI_cond_key key_RELAYLOG_update_cond, key_COND_wakeup_ready; +extern PSI_cond_key key_RELAYLOG_COND_queue_busy; +extern PSI_cond_key key_TC_LOG_MMAP_COND_queue_busy; + +extern PSI_thread_key key_thread_bootstrap, key_thread_delayed_insert, + key_thread_handle_manager, key_thread_kill_server, key_thread_main, + key_thread_one_connection, key_thread_signal_hand; + +extern PSI_file_key key_file_binlog, key_file_binlog_index, key_file_casetest, + key_file_dbopt, key_file_des_key_file, key_file_ERRMSG, key_select_to_file, + key_file_fileparser, key_file_frm, key_file_global_ddl_log, key_file_load, + key_file_loadfile, key_file_log_event_data, key_file_log_event_info, + key_file_master_info, key_file_misc, key_file_partition, + key_file_pid, key_file_relay_log_info, key_file_send_file, key_file_tclog, + key_file_trg, key_file_trn, key_file_init; +extern PSI_file_key key_file_query_log, key_file_slow_log; +extern PSI_file_key key_file_relaylog, key_file_relaylog_index; + +void init_server_psi_keys(); +#endif /* HAVE_PSI_INTERFACE */ + +#ifndef __WIN__ +extern pthread_t signal_thread; +#endif + +#ifdef HAVE_OPENSSL +extern struct st_VioSSLFd * ssl_acceptor_fd; +#endif /* HAVE_OPENSSL */ + +/* + The following variables were under INNODB_COMPABILITY_HOOKS + */ +extern my_bool opt_large_pages; +extern uint opt_large_page_size; +extern char lc_messages_dir[FN_REFLEN]; +extern char *lc_messages_dir_ptr, *log_error_file_ptr; +extern MYSQL_PLUGIN_IMPORT char reg_ext[FN_EXTLEN]; +extern MYSQL_PLUGIN_IMPORT uint reg_ext_length; +extern MYSQL_PLUGIN_IMPORT uint lower_case_table_names; +extern MYSQL_PLUGIN_IMPORT bool mysqld_embedded; +extern ulong specialflag; +extern uint mysql_data_home_len; +extern uint mysql_real_data_home_len; +extern const char *mysql_real_data_home_ptr; +extern ulong thread_handling; +extern "C" MYSQL_PLUGIN_IMPORT char server_version[SERVER_VERSION_LENGTH]; +extern MYSQL_PLUGIN_IMPORT char mysql_real_data_home[]; +extern char mysql_unpacked_real_data_home[]; +extern MYSQL_PLUGIN_IMPORT struct system_variables global_system_variables; +extern char default_logfile_name[FN_REFLEN]; + +#define mysql_tmpdir (my_tmpdir(&mysql_tmpdir_list)) + +extern MYSQL_PLUGIN_IMPORT const key_map key_map_empty; +extern MYSQL_PLUGIN_IMPORT key_map key_map_full; /* Should be threaded as const */ + +/* + Server mutex locks and condition variables. + */ +extern mysql_mutex_t + LOCK_user_locks, LOCK_status, + LOCK_error_log, LOCK_delayed_insert, LOCK_short_uuid_generator, + LOCK_delayed_status, LOCK_delayed_create, LOCK_crypt, LOCK_timezone, + LOCK_slave_list, LOCK_active_mi, LOCK_manager, + LOCK_global_system_variables, LOCK_user_conn, + LOCK_prepared_stmt_count, LOCK_error_messages, LOCK_connection_count; +extern MYSQL_PLUGIN_IMPORT mysql_mutex_t LOCK_thread_count; +#ifdef HAVE_OPENSSL +extern char* des_key_file; +extern mysql_mutex_t LOCK_des_key_file; +#endif +extern mysql_mutex_t LOCK_server_started; +extern mysql_cond_t COND_server_started; +extern mysql_rwlock_t LOCK_grant, LOCK_sys_init_connect, LOCK_sys_init_slave; +extern mysql_rwlock_t LOCK_system_variables_hash; +extern mysql_cond_t COND_thread_count; +extern mysql_cond_t COND_manager; +extern int32 thread_running; +extern my_atomic_rwlock_t thread_running_lock; + +extern char *opt_ssl_ca, *opt_ssl_capath, *opt_ssl_cert, *opt_ssl_cipher, + *opt_ssl_key; + +extern MYSQL_PLUGIN_IMPORT pthread_key(THD*, THR_THD); + +#ifdef MYSQL_SERVER + +/** + only options that need special treatment in get_one_option() deserve + to be listed below +*/ +enum options_mysqld +{ + OPT_to_set_the_start_number=256, + OPT_BIND_ADDRESS, + OPT_BINLOG_DO_DB, + OPT_BINLOG_FORMAT, + OPT_BINLOG_IGNORE_DB, + OPT_BIN_LOG, + OPT_BOOTSTRAP, + OPT_CONSOLE, + OPT_DEBUG_SYNC_TIMEOUT, + OPT_DELAY_KEY_WRITE_ALL, + OPT_DEPRECATED_OPTION, + OPT_ENGINE_CONDITION_PUSHDOWN, + OPT_IGNORE_DB_DIRECTORY, + OPT_ISAM_LOG, + OPT_KEY_BUFFER_SIZE, + OPT_KEY_CACHE_AGE_THRESHOLD, + OPT_KEY_CACHE_BLOCK_SIZE, + OPT_KEY_CACHE_DIVISION_LIMIT, + OPT_KEY_CACHE_PARTITIONS, + OPT_LOG_BASENAME, + OPT_LOG_ERROR, + OPT_LOWER_CASE_TABLE_NAMES, + OPT_MAX_LONG_DATA_SIZE, + OPT_ONE_THREAD, + OPT_POOL_OF_THREADS, + OPT_REPLICATE_DO_DB, + OPT_REPLICATE_DO_TABLE, + OPT_REPLICATE_IGNORE_DB, + OPT_REPLICATE_IGNORE_TABLE, + OPT_REPLICATE_REWRITE_DB, + OPT_REPLICATE_WILD_DO_TABLE, + OPT_REPLICATE_WILD_IGNORE_TABLE, + OPT_SAFE, + OPT_SERVER_ID, + OPT_SKIP_HOST_CACHE, + OPT_SKIP_LOCK, + OPT_SKIP_PRIOR, + OPT_SKIP_RESOLVE, + OPT_SKIP_STACK_TRACE, + OPT_SKIP_SYMLINKS, + OPT_SLOW_QUERY_LOG, + OPT_SSL_CA, + OPT_SSL_CAPATH, + OPT_SSL_CERT, + OPT_SSL_CIPHER, + OPT_SSL_KEY, + OPT_THREAD_CONCURRENCY, + OPT_UPDATE_LOG, + OPT_WANT_CORE, + OPT_which_is_always_the_last +}; +#endif + +/** + Query type constants (usable as bitmap flags). +*/ +enum enum_query_type +{ + /// Nothing specific, ordinary SQL query. + QT_ORDINARY= 0, + /// In utf8. + QT_TO_SYSTEM_CHARSET= (1 << 0), + /// Without character set introducers. + QT_WITHOUT_INTRODUCERS= (1 << 1), + /// view internal representation (like QT_ORDINARY except ORDER BY clause) + QT_VIEW_INTERNAL= (1 << 2), + /** + If an expression is constant, print the expression, not the value + it evaluates to. Should be used for error messages, so that they + don't reveal values. + */ + QT_NO_DATA_EXPANSION= (1 << 9), +}; + +/* query_id */ +typedef int64 query_id_t; +extern query_id_t global_query_id; +extern my_atomic_rwlock_t global_query_id_lock; + +void unireg_end(void) __attribute__((noreturn)); + +/* increment query_id and return it. */ +inline __attribute__((warn_unused_result)) query_id_t next_query_id() +{ + query_id_t id; + my_atomic_rwlock_wrlock(&global_query_id_lock); + id= my_atomic_add64(&global_query_id, 1); + my_atomic_rwlock_wrunlock(&global_query_id_lock); + return (id+1); +} + +inline query_id_t get_query_id() +{ + query_id_t id; + my_atomic_rwlock_wrlock(&global_query_id_lock); + id= my_atomic_load64(&global_query_id); + my_atomic_rwlock_wrunlock(&global_query_id_lock); + return id; +} + + +/* + TODO: Replace this with an inline function. + */ +#ifndef EMBEDDED_LIBRARY +extern "C" void unireg_abort(int exit_code) __attribute__((noreturn)); +#else +extern "C" void unireg_clear(int exit_code); +#define unireg_abort(exit_code) do { unireg_clear(exit_code); DBUG_RETURN(exit_code); } while(0) +#endif + +inline void table_case_convert(char * name, uint length) +{ + if (lower_case_table_names) + files_charset_info->cset->casedn(files_charset_info, + name, length, name, length); +} + +inline ulong sql_rnd_with_mutex() +{ + mysql_mutex_lock(&LOCK_thread_count); + ulong tmp=(ulong) (my_rnd(&sql_rand) * 0xffffffff); /* make all bits random */ + mysql_mutex_unlock(&LOCK_thread_count); + return tmp; +} + +inline int32 +inc_thread_running() +{ + int32 num_thread_running; + my_atomic_rwlock_wrlock(&thread_running_lock); + num_thread_running= my_atomic_add32(&thread_running, 1); + my_atomic_rwlock_wrunlock(&thread_running_lock); + return (num_thread_running+1); +} + +inline int32 +dec_thread_running() +{ + int32 num_thread_running; + my_atomic_rwlock_wrlock(&thread_running_lock); + num_thread_running= my_atomic_add32(&thread_running, -1); + my_atomic_rwlock_wrunlock(&thread_running_lock); + return (num_thread_running-1); +} + +inline int32 +get_thread_running() +{ + int32 num_thread_running; + my_atomic_rwlock_wrlock(&thread_running_lock); + num_thread_running= my_atomic_load32(&thread_running); + my_atomic_rwlock_wrunlock(&thread_running_lock); + return num_thread_running; +} + +void set_server_version(void); + +#if defined(MYSQL_DYNAMIC_PLUGIN) && defined(_WIN32) +extern "C" THD *_current_thd_noinline(); +#define _current_thd() _current_thd_noinline() +#else +/* + THR_THD is a key which will be used to set/get THD* for a thread, + using my_pthread_setspecific_ptr()/my_thread_getspecific_ptr(). +*/ +extern pthread_key(THD*, THR_THD); +inline THD *_current_thd(void) +{ + return my_pthread_getspecific_ptr(THD*,THR_THD); +} +#endif +#define current_thd _current_thd() + +/* + @todo remove, make it static in ha_maria.cc + currently it's needed for sql_select.cc +*/ +extern handlerton *maria_hton; + +extern uint extra_connection_count; +extern my_bool opt_userstat_running, debug_assert_if_crashed_table; +extern uint mysqld_extra_port; +extern ulong opt_progress_report_time; +extern ulong extra_max_connections; +extern ulonglong denied_connections; +extern ulong thread_created; +extern scheduler_functions *thread_scheduler, *extra_thread_scheduler; +extern char *opt_log_basename; +extern my_bool opt_master_verify_checksum; +extern my_bool opt_stack_trace; +extern my_bool opt_expect_abort; +extern my_bool opt_slave_sql_verify_checksum; +extern ulong binlog_checksum_options; +extern bool max_user_connections_checking; +extern ulong opt_binlog_dbug_fsync_sleep; + +extern uint internal_tmp_table_max_key_length; +extern uint internal_tmp_table_max_key_segments; + +extern uint volatile global_disable_checkpoint; +extern my_bool opt_help; + +#endif /* MYSQLD_INCLUDED */ diff --git a/database/include/mysql/private/mysqld_default_groups.h b/database/include/mysql/private/mysqld_default_groups.h new file mode 100644 index 0000000..a2e94dd --- /dev/null +++ b/database/include/mysql/private/mysqld_default_groups.h @@ -0,0 +1,8 @@ +const char *load_default_groups[]= { +#ifdef WITH_NDBCLUSTER_STORAGE_ENGINE +"mysql_cluster", +#endif +"mysqld", "server", MYSQL_BASE_VERSION, +"mariadb", MARIADB_BASE_VERSION, +"client-server", +0, 0}; diff --git a/database/include/mysql/private/mysqld_suffix.h b/database/include/mysql/private/mysqld_suffix.h new file mode 100644 index 0000000..3c36ba2 --- /dev/null +++ b/database/include/mysql/private/mysqld_suffix.h @@ -0,0 +1,34 @@ +#ifndef MYSQLD_SUFFIX_INCLUDED +#define MYSQLD_SUFFIX_INCLUDED + +/* Copyright (c) 2000-2004, 2006, 2007 MySQL AB, 2009 Sun Microsystems, Inc. + Use is subject to license terms. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/** + @file + + Set MYSQL_SERVER_SUFFIX_STR. + + The following code is quite ugly as there is no portable way to easily set a + string to the value of a macro +*/ + +#ifdef MYSQL_SERVER_SUFFIX +#define MYSQL_SERVER_SUFFIX_STR STRINGIFY_ARG(MYSQL_SERVER_SUFFIX) +#else +#define MYSQL_SERVER_SUFFIX_STR MYSQL_SERVER_SUFFIX_DEF +#endif +#endif /* MYSQLD_SUFFIX_INCLUDED */ diff --git a/database/include/mysql/private/mysys_err.h b/database/include/mysql/private/mysys_err.h new file mode 100644 index 0000000..e313d82 --- /dev/null +++ b/database/include/mysql/private/mysys_err.h @@ -0,0 +1,95 @@ +/* + Copyright (c) 2000, 2010, Oracle and/or its affiliates. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef _mysys_err_h +#define _mysys_err_h + +#ifdef __cplusplus +extern "C" { +#endif + +#define GLOBERRS (EE_ERROR_LAST - EE_ERROR_FIRST + 1) /* Nr of global errors */ +#define EE(X) (globerrs[(X) - EE_ERROR_FIRST]) + +extern const char *globerrs[]; /* my_error_messages is here */ + +/* Error message numbers in global map */ +/* + Do not add error numbers before EE_ERROR_FIRST. + If necessary to add lower numbers, change EE_ERROR_FIRST accordingly. + + We start with error 1 to not confuse peoples with 'error 0' +*/ + +#define EE_ERROR_FIRST 1 /*Copy first error nr.*/ +#define EE_CANTCREATEFILE 1 +#define EE_READ 2 +#define EE_WRITE 3 +#define EE_BADCLOSE 4 +#define EE_OUTOFMEMORY 5 +#define EE_DELETE 6 +#define EE_LINK 7 +#define EE_EOFERR 9 +#define EE_CANTLOCK 10 +#define EE_CANTUNLOCK 11 +#define EE_DIR 12 +#define EE_STAT 13 +#define EE_CANT_CHSIZE 14 +#define EE_CANT_OPEN_STREAM 15 +#define EE_GETWD 16 +#define EE_SETWD 17 +#define EE_LINK_WARNING 18 +#define EE_OPEN_WARNING 19 +#define EE_DISK_FULL 20 +#define EE_CANT_MKDIR 21 +#define EE_UNKNOWN_CHARSET 22 +#define EE_OUT_OF_FILERESOURCES 23 +#define EE_CANT_READLINK 24 +#define EE_CANT_SYMLINK 25 +#define EE_REALPATH 26 +#define EE_SYNC 27 +#define EE_UNKNOWN_COLLATION 28 +#define EE_FILENOTFOUND 29 +#define EE_FILE_NOT_CLOSED 30 +#define EE_CHANGE_OWNERSHIP 31 +#define EE_CHANGE_PERMISSIONS 32 +#define EE_CANT_SEEK 33 +#define EE_CANT_CHMOD 34 +#define EE_CANT_COPY_OWNERSHIP 35 +#define EE_ERROR_LAST 35 /* Copy last error nr */ + +/* Add error numbers before EE_ERROR_LAST and change it accordingly. */ + + /* exit codes for all MySQL programs */ + +#define EXIT_UNSPECIFIED_ERROR 1 +#define EXIT_UNKNOWN_OPTION 2 +#define EXIT_AMBIGUOUS_OPTION 3 +#define EXIT_NO_ARGUMENT_ALLOWED 4 +#define EXIT_ARGUMENT_REQUIRED 5 +#define EXIT_VAR_PREFIX_NOT_UNIQUE 6 +#define EXIT_UNKNOWN_VARIABLE 7 +#define EXIT_OUT_OF_MEMORY 8 +#define EXIT_UNKNOWN_SUFFIX 9 +#define EXIT_NO_PTR_TO_VARIABLE 10 +#define EXIT_CANNOT_CONNECT_TO_SERVICE 11 +#define EXIT_OPTION_DISABLED 12 +#define EXIT_ARGUMENT_INVALID 13 + +#ifdef __cplusplus +} +#endif +#endif diff --git a/database/include/mysql/private/nt_servc.h b/database/include/mysql/private/nt_servc.h new file mode 100644 index 0000000..949499d --- /dev/null +++ b/database/include/mysql/private/nt_servc.h @@ -0,0 +1,115 @@ +#ifndef NT_SERVC_INCLUDED +#define NT_SERVC_INCLUDED + +/** + @file + + @brief + Windows NT Service class library + + Copyright Abandoned 1998 Irena Pancirov - Irnet Snc + This file is public domain and comes with NO WARRANTY of any kind +*/ + +// main application thread +typedef void (*THREAD_FC)(void *); + +class NTService +{ + public: + NTService(); + ~NTService(); + + BOOL bOsNT; ///< true if OS is NT, false for Win95 + //install optinos + DWORD dwDesiredAccess; + DWORD dwServiceType; + DWORD dwStartType; + DWORD dwErrorControl; + + LPSTR szLoadOrderGroup; + LPDWORD lpdwTagID; + LPSTR szDependencies; + OSVERSIONINFO osVer; + + // time-out (in milisec) + int nStartTimeOut; + int nStopTimeOut; + int nPauseTimeOut; + int nResumeTimeOut; + + // + DWORD my_argc; + LPTSTR *my_argv; + HANDLE hShutdownEvent; + int nError; + DWORD dwState; + + BOOL GetOS(); // returns TRUE if WinNT + BOOL IsNT() { return bOsNT;} + //init service entry point + long Init(LPCSTR szInternName,void *ServiceThread); + + //application shutdown event + void SetShutdownEvent(HANDLE hEvent){ hShutdownEvent=hEvent; } + + + //service install / un-install + BOOL Install(int startType,LPCSTR szInternName,LPCSTR szDisplayName, + LPCSTR szFullPath, LPCSTR szAccountName=NULL, + LPCSTR szPassword=NULL); + BOOL SeekStatus(LPCSTR szInternName, int OperationType); + BOOL Remove(LPCSTR szInternName); + BOOL IsService(LPCSTR ServiceName); + BOOL got_service_option(char **argv, char *service_option); + BOOL is_super_user(); + + /* + SetRunning() is to be called by the application + when initialization completes and it can accept + stop request + */ + void SetRunning(void); + + /** + Sets a timeout after which SCM will abort service startup if SetRunning() + was not called or the timeout was not extended with another call to + SetSlowStarting(). Should be called when static initialization completes, + and the variable initialization part begins + + @arg timeout the timeout to pass to the SCM (in milliseconds) + */ + void SetSlowStarting(unsigned long timeout); + + /* + Stop() is to be called by the application to stop + the service + */ + void Stop(void); + + protected: + LPSTR ServiceName; + HANDLE hExitEvent; + SERVICE_STATUS_HANDLE hServiceStatusHandle; + BOOL bPause; + BOOL bRunning; + HANDLE hThreadHandle; + THREAD_FC fpServiceThread; + + void PauseService(); + void ResumeService(); + void StopService(); + BOOL StartService(); + + static void ServiceMain(DWORD argc, LPTSTR *argv); + static void ServiceCtrlHandler (DWORD ctrlCode); + + void Exit(DWORD error); + BOOL SetStatus (DWORD dwCurrentState,DWORD dwWin32ExitCode, + DWORD dwServiceSpecificExitCode, + DWORD dwCheckPoint,DWORD dwWaitHint); + +}; +/* ------------------------- the end -------------------------------------- */ + +#endif /* NT_SERVC_INCLUDED */ diff --git a/database/include/mysql/private/opt_range.h b/database/include/mysql/private/opt_range.h new file mode 100644 index 0000000..a397124 --- /dev/null +++ b/database/include/mysql/private/opt_range.h @@ -0,0 +1,1067 @@ +/* + Copyright (c) 2000, 2010, Oracle and/or its affiliates. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + + +/* classes to use when handling where clause */ + +#ifndef _opt_range_h +#define _opt_range_h + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif + +#include "thr_malloc.h" /* sql_memdup */ +#include "records.h" /* READ_RECORD */ +#include "queues.h" /* QUEUE */ +/* + It is necessary to include set_var.h instead of item.h because there + are dependencies on include order for set_var.h and item.h. This + will be resolved later. +*/ +#include "sql_class.h" // set_var.h: THD +#include "set_var.h" /* Item */ + +class JOIN; +class Item_sum; + +typedef struct st_key_part { + uint16 key,part; + /* See KEY_PART_INFO for meaning of the next two: */ + uint16 store_length, length; + uint8 null_bit; + /* + Keypart flags (0 when this structure is used by partition pruning code + for fake partitioning index description) + */ + uint8 flag; + Field *field; + Field::imagetype image_type; +} KEY_PART; + + +/* + A "MIN_TUPLE < tbl.key_tuple < MAX_TUPLE" interval. + + One of endpoints may be absent. 'flags' member has flags which tell whether + the endpoints are '<' or '<='. +*/ +class QUICK_RANGE :public Sql_alloc { + public: + uchar *min_key,*max_key; + uint16 min_length,max_length,flag; + key_part_map min_keypart_map, // bitmap of used keyparts in min_key + max_keypart_map; // bitmap of used keyparts in max_key +#ifdef HAVE_valgrind + uint16 dummy; /* Avoid warnings on 'flag' */ +#endif + QUICK_RANGE(); /* Full range */ + QUICK_RANGE(const uchar *min_key_arg, uint min_length_arg, + key_part_map min_keypart_map_arg, + const uchar *max_key_arg, uint max_length_arg, + key_part_map max_keypart_map_arg, + uint flag_arg) + : min_key((uchar*) sql_memdup(min_key_arg,min_length_arg+1)), + max_key((uchar*) sql_memdup(max_key_arg,max_length_arg+1)), + min_length((uint16) min_length_arg), + max_length((uint16) max_length_arg), + flag((uint16) flag_arg), + min_keypart_map(min_keypart_map_arg), + max_keypart_map(max_keypart_map_arg) + { +#ifdef HAVE_valgrind + dummy=0; +#endif + } + + /** + Initalizes a key_range object for communication with storage engine. + + This function facilitates communication with the Storage Engine API by + translating the minimum endpoint of the interval represented by this + QUICK_RANGE into an index range endpoint specifier for the engine. + + @param Pointer to an uninitialized key_range C struct. + + @param prefix_length The length of the search key prefix to be used for + lookup. + + @param keypart_map A set (bitmap) of keyparts to be used. + */ + void make_min_endpoint(key_range *kr, uint prefix_length, + key_part_map keypart_map) { + make_min_endpoint(kr); + kr->length= min(kr->length, prefix_length); + kr->keypart_map&= keypart_map; + } + + /** + Initalizes a key_range object for communication with storage engine. + + This function facilitates communication with the Storage Engine API by + translating the minimum endpoint of the interval represented by this + QUICK_RANGE into an index range endpoint specifier for the engine. + + @param Pointer to an uninitialized key_range C struct. + */ + void make_min_endpoint(key_range *kr) { + kr->key= (const uchar*)min_key; + kr->length= min_length; + kr->keypart_map= min_keypart_map; + kr->flag= ((flag & NEAR_MIN) ? HA_READ_AFTER_KEY : + (flag & EQ_RANGE) ? HA_READ_KEY_EXACT : HA_READ_KEY_OR_NEXT); + } + + /** + Initalizes a key_range object for communication with storage engine. + + This function facilitates communication with the Storage Engine API by + translating the maximum endpoint of the interval represented by this + QUICK_RANGE into an index range endpoint specifier for the engine. + + @param Pointer to an uninitialized key_range C struct. + + @param prefix_length The length of the search key prefix to be used for + lookup. + + @param keypart_map A set (bitmap) of keyparts to be used. + */ + void make_max_endpoint(key_range *kr, uint prefix_length, + key_part_map keypart_map) { + make_max_endpoint(kr); + kr->length= min(kr->length, prefix_length); + kr->keypart_map&= keypart_map; + } + + /** + Initalizes a key_range object for communication with storage engine. + + This function facilitates communication with the Storage Engine API by + translating the maximum endpoint of the interval represented by this + QUICK_RANGE into an index range endpoint specifier for the engine. + + @param Pointer to an uninitialized key_range C struct. + */ + void make_max_endpoint(key_range *kr) { + kr->key= (const uchar*)max_key; + kr->length= max_length; + kr->keypart_map= max_keypart_map; + /* + We use READ_AFTER_KEY here because if we are reading on a key + prefix we want to find all keys with this prefix + */ + kr->flag= (flag & NEAR_MAX ? HA_READ_BEFORE_KEY : HA_READ_AFTER_KEY); + } +}; + + +/* + Quick select interface. + This class is a parent for all QUICK_*_SELECT and FT_SELECT classes. + + The usage scenario is as follows: + 1. Create quick select + quick= new QUICK_XXX_SELECT(...); + + 2. Perform lightweight initialization. This can be done in 2 ways: + 2.a: Regular initialization + if (quick->init()) + { + //the only valid action after failed init() call is delete + delete quick; + } + 2.b: Special initialization for quick selects merged by QUICK_ROR_*_SELECT + if (quick->init_ror_merged_scan()) + delete quick; + + 3. Perform zero, one, or more scans. + while (...) + { + // initialize quick select for scan. This may allocate + // buffers and/or prefetch rows. + if (quick->reset()) + { + //the only valid action after failed reset() call is delete + delete quick; + //abort query + } + + // perform the scan + do + { + res= quick->get_next(); + } while (res && ...) + } + + 4. Delete the select: + delete quick; + + NOTE + quick select doesn't use Sql_alloc/MEM_ROOT allocation because "range + checked for each record" functionality may create/destroy + O(#records_in_some_table) quick selects during query execution. +*/ + +class QUICK_SELECT_I +{ +public: + ha_rows records; /* estimate of # of records to be retrieved */ + double read_time; /* time to perform this retrieval */ + TABLE *head; + /* + Index this quick select uses, or MAX_KEY for quick selects + that use several indexes + */ + uint index; + + /* + Total length of first used_key_parts parts of the key. + Applicable if index!= MAX_KEY. + */ + uint max_used_key_length; + + /* + Max. number of (first) key parts this quick select uses for retrieval. + eg. for "(key1p1=c1 AND key1p2=c2) OR key1p1=c2" used_key_parts == 2. + Applicable if index!= MAX_KEY. + + For QUICK_GROUP_MIN_MAX_SELECT it includes MIN/MAX argument keyparts. + */ + uint used_key_parts; + + QUICK_SELECT_I(); + virtual ~QUICK_SELECT_I(){}; + + /* + Do post-constructor initialization. + SYNOPSIS + init() + + init() performs initializations that should have been in constructor if + it was possible to return errors from constructors. The join optimizer may + create and then delete quick selects without retrieving any rows so init() + must not contain any IO or CPU intensive code. + + If init() call fails the only valid action is to delete this quick select, + reset() and get_next() must not be called. + + RETURN + 0 OK + other Error code + */ + virtual int init() = 0; + + /* + Initialize quick select for row retrieval. + SYNOPSIS + reset() + + reset() should be called when it is certain that row retrieval will be + necessary. This call may do heavyweight initialization like buffering first + N records etc. If reset() call fails get_next() must not be called. + Note that reset() may be called several times if + * the quick select is executed in a subselect + * a JOIN buffer is used + + RETURN + 0 OK + other Error code + */ + virtual int reset(void) = 0; + + virtual int get_next() = 0; /* get next record to retrieve */ + + /* Range end should be called when we have looped over the whole index */ + virtual void range_end() {} + + virtual bool reverse_sorted() = 0; + virtual bool unique_key_range() { return false; } + + /* + Request that this quick select produces sorted output. Not all quick + selects can do it, the caller is responsible for calling this function + only for those quick selects that can. + */ + virtual void need_sorted_output() = 0; + enum { + QS_TYPE_RANGE = 0, + QS_TYPE_INDEX_INTERSECT = 1, + QS_TYPE_INDEX_MERGE = 2, + QS_TYPE_RANGE_DESC = 3, + QS_TYPE_FULLTEXT = 4, + QS_TYPE_ROR_INTERSECT = 5, + QS_TYPE_ROR_UNION = 6, + QS_TYPE_GROUP_MIN_MAX = 7 + }; + + /* Get type of this quick select - one of the QS_TYPE_* values */ + virtual int get_type() = 0; + + /* + Initialize this quick select as a merged scan inside a ROR-union or a ROR- + intersection scan. The caller must not additionally call init() if this + function is called. + SYNOPSIS + init_ror_merged_scan() + reuse_handler If true, the quick select may use table->handler, + otherwise it must create and use a separate handler + object. + RETURN + 0 Ok + other Error + */ + virtual int init_ror_merged_scan(bool reuse_handler, MEM_ROOT *alloc) + { DBUG_ASSERT(0); return 1; } + + /* + Save ROWID of last retrieved row in file->ref. This used in ROR-merging. + */ + virtual void save_last_pos(){}; + + void add_key_and_length(String *key_names, + String *used_lengths, + bool *first); + + /* + Append comma-separated list of keys this quick select uses to key_names; + append comma-separated list of corresponding used lengths to used_lengths. + This is used by select_describe. + */ + virtual void add_keys_and_lengths(String *key_names, + String *used_lengths)=0; + + void add_key_name(String *str, bool *first); + + /* + Append text representation of quick select structure (what and how is + merged) to str. The result is added to "Extra" field in EXPLAIN output. + This function is implemented only by quick selects that merge other quick + selects output and/or can produce output suitable for merging. + */ + virtual void add_info_string(String *str) {} + + /* + Return 1 if any index used by this quick select + uses field which is marked in passed bitmap. + */ + virtual bool is_keys_used(const MY_BITMAP *fields); + + /** + Simple sanity check that the quick select has been set up + correctly. Function is overridden by quick selects that merge + indices. + */ + virtual bool is_valid() { return index != MAX_KEY; }; + + /* + rowid of last row retrieved by this quick select. This is used only when + doing ROR-index_merge selects + */ + uchar *last_rowid; + + /* + Table record buffer used by this quick select. + */ + uchar *record; + + virtual void replace_handler(handler *new_file) + { + DBUG_ASSERT(0); /* Only supported in QUICK_RANGE_SELECT */ + } + +#ifndef DBUG_OFF + /* + Print quick select information to DBUG_FILE. Caller is responsible + for locking DBUG_FILE before this call and unlocking it afterwards. + */ + virtual void dbug_dump(int indent, bool verbose)= 0; +#endif + + /* + Returns a QUICK_SELECT with reverse order of to the index. + */ + virtual QUICK_SELECT_I *make_reverse(uint used_key_parts_arg) { return NULL; } + + /* + Add the key columns used by the quick select into table's read set. + + This is used by an optimization in filesort. + */ + virtual void add_used_key_part_to_set(MY_BITMAP *col_set)=0; +}; + + +struct st_qsel_param; +class PARAM; +class SEL_ARG; + + +/* + MRR range sequence, array implementation: sequence traversal + context. +*/ +typedef struct st_quick_range_seq_ctx +{ + QUICK_RANGE **first; + QUICK_RANGE **cur; + QUICK_RANGE **last; +} QUICK_RANGE_SEQ_CTX; + +range_seq_t quick_range_seq_init(void *init_param, uint n_ranges, uint flags); +bool quick_range_seq_next(range_seq_t rseq, KEY_MULTI_RANGE *range); + + +/* + Quick select that does a range scan on a single key. The records are + returned in key order. +*/ +class QUICK_RANGE_SELECT : public QUICK_SELECT_I +{ +protected: + /* true if we enabled key only reads */ + bool doing_key_read; + handler *file; + + /* Members to deal with case when this quick select is a ROR-merged scan */ + bool in_ror_merged_scan; + MY_BITMAP column_bitmap; + bool free_file; /* TRUE <=> this->file is "owned" by this quick select */ + + /* Range pointers to be used when not using MRR interface */ + /* Members needed to use the MRR interface */ + QUICK_RANGE_SEQ_CTX qr_traversal_ctx; +public: + uint mrr_flags; /* Flags to be used with MRR interface */ +protected: + uint mrr_buf_size; /* copy from thd->variables.mrr_buff_size */ + HANDLER_BUFFER *mrr_buf_desc; /* the handler buffer */ + + /* Info about index we're scanning */ + + DYNAMIC_ARRAY ranges; /* ordered array of range ptrs */ + QUICK_RANGE **cur_range; /* current element in ranges */ + + QUICK_RANGE *last_range; + + KEY_PART *key_parts; + KEY_PART_INFO *key_part_info; + + bool dont_free; /* Used by QUICK_SELECT_DESC */ + + int cmp_next(QUICK_RANGE *range); + int cmp_prev(QUICK_RANGE *range); + bool row_in_ranges(); +public: + MEM_ROOT alloc; + + QUICK_RANGE_SELECT(THD *thd, TABLE *table,uint index_arg,bool no_alloc, + MEM_ROOT *parent_alloc, bool *create_err); + ~QUICK_RANGE_SELECT(); + + void need_sorted_output(); + int init(); + int reset(void); + int get_next(); + void range_end(); + int get_next_prefix(uint prefix_length, uint group_key_parts, + uchar *cur_prefix); + bool reverse_sorted() { return 0; } + bool unique_key_range(); + int init_ror_merged_scan(bool reuse_handler, MEM_ROOT *alloc); + void save_last_pos() + { file->position(record); } + int get_type() { return QS_TYPE_RANGE; } + void add_keys_and_lengths(String *key_names, String *used_lengths); + void add_info_string(String *str); +#ifndef DBUG_OFF + void dbug_dump(int indent, bool verbose); +#endif + virtual void replace_handler(handler *new_file) { file= new_file; } + QUICK_SELECT_I *make_reverse(uint used_key_parts_arg); + + virtual void add_used_key_part_to_set(MY_BITMAP *col_set); + +private: + /* Default copy ctor used by QUICK_SELECT_DESC */ + friend class TRP_ROR_INTERSECT; + friend + QUICK_RANGE_SELECT *get_quick_select_for_ref(THD *thd, TABLE *table, + struct st_table_ref *ref, + ha_rows records); + friend bool get_quick_keys(PARAM *param, QUICK_RANGE_SELECT *quick, + KEY_PART *key, SEL_ARG *key_tree, + uchar *min_key, uint min_key_flag, + uchar *max_key, uint max_key_flag); + friend QUICK_RANGE_SELECT *get_quick_select(PARAM*,uint idx, + SEL_ARG *key_tree, + uint mrr_flags, + uint mrr_buf_size, + MEM_ROOT *alloc); + friend class QUICK_SELECT_DESC; + friend class QUICK_INDEX_SORT_SELECT; + friend class QUICK_INDEX_MERGE_SELECT; + friend class QUICK_ROR_INTERSECT_SELECT; + friend class QUICK_INDEX_INTERSECT_SELECT; + friend class QUICK_GROUP_MIN_MAX_SELECT; + friend bool quick_range_seq_next(range_seq_t rseq, KEY_MULTI_RANGE *range); + friend range_seq_t quick_range_seq_init(void *init_param, + uint n_ranges, uint flags); + friend + int read_keys_and_merge_scans(THD *thd, TABLE *head, + List quick_selects, + QUICK_RANGE_SELECT *pk_quick_select, + READ_RECORD *read_record, + bool intersection, + key_map *filtered_scans, + Unique **unique_ptr); + +}; + + +class QUICK_RANGE_SELECT_GEOM: public QUICK_RANGE_SELECT +{ +public: + QUICK_RANGE_SELECT_GEOM(THD *thd, TABLE *table, uint index_arg, + bool no_alloc, MEM_ROOT *parent_alloc, + bool *create_err) + :QUICK_RANGE_SELECT(thd, table, index_arg, no_alloc, parent_alloc, + create_err) + {}; + virtual int get_next(); +}; + + +/* + QUICK_INDEX_SORT_SELECT is the base class for the common functionality of: + - QUICK_INDEX_MERGE_SELECT, access based on multi-index merge/union + - QUICK_INDEX_INTERSECT_SELECT, access based on multi-index intersection + + + QUICK_INDEX_SORT_SELECT uses + * QUICK_RANGE_SELECTs to get rows + * Unique class + - to remove duplicate rows for QUICK_INDEX_MERGE_SELECT + - to intersect rows for QUICK_INDEX_INTERSECT_SELECT + + INDEX MERGE OPTIMIZER + Current implementation doesn't detect all cases where index merge could + be used, in particular: + + * index_merge+'using index' is not supported + + * If WHERE part contains complex nested AND and OR conditions, some ways + to retrieve rows using index merge will not be considered. The choice + of read plan may depend on the order of conjuncts/disjuncts in WHERE + part of the query, see comments near imerge_list_or_list and + SEL_IMERGE::or_sel_tree_with_checks functions for details. + + * There is no "index_merge_ref" method (but index merge on non-first + table in join is possible with 'range checked for each record'). + + + ROW RETRIEVAL ALGORITHM + + index merge/intersection uses Unique class for duplicates removal. + index merge/intersection takes advantage of Clustered Primary Key (CPK) + if the table has one. + The index merge/intersection algorithm consists of two phases: + + Phase 1 + (implemented by a QUICK_INDEX_MERGE_SELECT::read_keys_and_merge call): + + prepare() + { + activate 'index only'; + while(retrieve next row for non-CPK scan) + { + if (there is a CPK scan and row will be retrieved by it) + skip this row; + else + put its rowid into Unique; + } + deactivate 'index only'; + } + + Phase 2 + (implemented as sequence of QUICK_INDEX_MERGE_SELECT::get_next calls): + + fetch() + { + retrieve all rows from row pointers stored in Unique + (merging/intersecting them); + free Unique; + if (! intersection) + retrieve all rows for CPK scan; + } +*/ + +class QUICK_INDEX_SORT_SELECT : public QUICK_SELECT_I +{ +protected: + Unique *unique; +public: + QUICK_INDEX_SORT_SELECT(THD *thd, TABLE *table); + ~QUICK_INDEX_SORT_SELECT(); + + int init(); + void need_sorted_output() { DBUG_ASSERT(0); /* Can't do it */ } + int reset(void); + bool reverse_sorted() { return false; } + bool unique_key_range() { return false; } + bool is_keys_used(const MY_BITMAP *fields); +#ifndef DBUG_OFF + void dbug_dump(int indent, bool verbose); +#endif + + bool push_quick_back(QUICK_RANGE_SELECT *quick_sel_range); + + /* range quick selects this index merge/intersect consists of */ + List quick_selects; + + /* quick select that uses clustered primary key (NULL if none) */ + QUICK_RANGE_SELECT* pk_quick_select; + + MEM_ROOT alloc; + THD *thd; + virtual bool is_valid() + { + List_iterator_fast it(quick_selects); + QUICK_RANGE_SELECT *quick; + bool valid= true; + while ((quick= it++)) + { + if (!quick->is_valid()) + { + valid= false; + break; + } + } + return valid; + } + virtual int read_keys_and_merge()= 0; + /* used to get rows collected in Unique */ + READ_RECORD read_record; + + virtual void add_used_key_part_to_set(MY_BITMAP *col_set); +}; + + + +class QUICK_INDEX_MERGE_SELECT : public QUICK_INDEX_SORT_SELECT +{ +private: + /* true if this select is currently doing a clustered PK scan */ + bool doing_pk_scan; +protected: + int read_keys_and_merge(); + +public: + QUICK_INDEX_MERGE_SELECT(THD *thd, TABLE *table) + :QUICK_INDEX_SORT_SELECT(thd, table) {} + + int get_next(); + int get_type() { return QS_TYPE_INDEX_MERGE; } + void add_keys_and_lengths(String *key_names, String *used_lengths); + void add_info_string(String *str); +}; + +class QUICK_INDEX_INTERSECT_SELECT : public QUICK_INDEX_SORT_SELECT +{ +protected: + int read_keys_and_merge(); + +public: + QUICK_INDEX_INTERSECT_SELECT(THD *thd, TABLE *table) + :QUICK_INDEX_SORT_SELECT(thd, table) {} + + key_map filtered_scans; + int get_next(); + int get_type() { return QS_TYPE_INDEX_INTERSECT; } + void add_keys_and_lengths(String *key_names, String *used_lengths); + void add_info_string(String *str); +}; + + +/* + Rowid-Ordered Retrieval (ROR) index intersection quick select. + This quick select produces intersection of row sequences returned + by several QUICK_RANGE_SELECTs it "merges". + + All merged QUICK_RANGE_SELECTs must return rowids in rowid order. + QUICK_ROR_INTERSECT_SELECT will return rows in rowid order, too. + + All merged quick selects retrieve {rowid, covered_fields} tuples (not full + table records). + QUICK_ROR_INTERSECT_SELECT retrieves full records if it is not being used + by QUICK_ROR_INTERSECT_SELECT and all merged quick selects together don't + cover needed all fields. + + If one of the merged quick selects is a Clustered PK range scan, it is + used only to filter rowid sequence produced by other merged quick selects. +*/ + +class QUICK_ROR_INTERSECT_SELECT : public QUICK_SELECT_I +{ +public: + QUICK_ROR_INTERSECT_SELECT(THD *thd, TABLE *table, + bool retrieve_full_rows, + MEM_ROOT *parent_alloc); + ~QUICK_ROR_INTERSECT_SELECT(); + + int init(); + void need_sorted_output() { DBUG_ASSERT(0); /* Can't do it */ } + int reset(void); + int get_next(); + bool reverse_sorted() { return false; } + bool unique_key_range() { return false; } + int get_type() { return QS_TYPE_ROR_INTERSECT; } + void add_keys_and_lengths(String *key_names, String *used_lengths); + void add_info_string(String *str); + bool is_keys_used(const MY_BITMAP *fields); + void add_used_key_part_to_set(MY_BITMAP *col_set); +#ifndef DBUG_OFF + void dbug_dump(int indent, bool verbose); +#endif + int init_ror_merged_scan(bool reuse_handler, MEM_ROOT *alloc); + bool push_quick_back(MEM_ROOT *alloc, QUICK_RANGE_SELECT *quick_sel_range); + + class QUICK_SELECT_WITH_RECORD : public Sql_alloc + { + public: + QUICK_RANGE_SELECT *quick; + uchar *key_tuple; + ~QUICK_SELECT_WITH_RECORD() { delete quick; } + }; + + /* + Range quick selects this intersection consists of, not including + cpk_quick. + */ + List quick_selects; + + virtual bool is_valid() + { + List_iterator_fast it(quick_selects); + QUICK_SELECT_WITH_RECORD *quick; + bool valid= true; + while ((quick= it++)) + { + if (!quick->quick->is_valid()) + { + valid= false; + break; + } + } + return valid; + } + + /* + Merged quick select that uses Clustered PK, if there is one. This quick + select is not used for row retrieval, it is used for row retrieval. + */ + QUICK_RANGE_SELECT *cpk_quick; + + MEM_ROOT alloc; /* Memory pool for this and merged quick selects data. */ + THD *thd; /* current thread */ + bool need_to_fetch_row; /* if true, do retrieve full table records. */ + /* in top-level quick select, true if merged scans where initialized */ + bool scans_inited; +}; + + +/* + Rowid-Ordered Retrieval index union select. + This quick select produces union of row sequences returned by several + quick select it "merges". + + All merged quick selects must return rowids in rowid order. + QUICK_ROR_UNION_SELECT will return rows in rowid order, too. + + All merged quick selects are set not to retrieve full table records. + ROR-union quick select always retrieves full records. + +*/ + +class QUICK_ROR_UNION_SELECT : public QUICK_SELECT_I +{ +public: + QUICK_ROR_UNION_SELECT(THD *thd, TABLE *table); + ~QUICK_ROR_UNION_SELECT(); + + int init(); + void need_sorted_output() { DBUG_ASSERT(0); /* Can't do it */ } + int reset(void); + int get_next(); + bool reverse_sorted() { return false; } + bool unique_key_range() { return false; } + int get_type() { return QS_TYPE_ROR_UNION; } + void add_keys_and_lengths(String *key_names, String *used_lengths); + void add_info_string(String *str); + bool is_keys_used(const MY_BITMAP *fields); + void add_used_key_part_to_set(MY_BITMAP *col_set); +#ifndef DBUG_OFF + void dbug_dump(int indent, bool verbose); +#endif + + bool push_quick_back(QUICK_SELECT_I *quick_sel_range); + + List quick_selects; /* Merged quick selects */ + + virtual bool is_valid() + { + List_iterator_fast it(quick_selects); + QUICK_SELECT_I *quick; + bool valid= true; + while ((quick= it++)) + { + if (!quick->is_valid()) + { + valid= false; + break; + } + } + return valid; + } + + QUEUE queue; /* Priority queue for merge operation */ + MEM_ROOT alloc; /* Memory pool for this and merged quick selects data. */ + + THD *thd; /* current thread */ + uchar *cur_rowid; /* buffer used in get_next() */ + uchar *prev_rowid; /* rowid of last row returned by get_next() */ + bool have_prev_rowid; /* true if prev_rowid has valid data */ + uint rowid_length; /* table rowid length */ +private: + bool scans_inited; +}; + + +/* + Index scan for GROUP-BY queries with MIN/MAX aggregate functions. + + This class provides a specialized index access method for GROUP-BY queries + of the forms: + + SELECT A_1,...,A_k, [B_1,...,B_m], [MIN(C)], [MAX(C)] + FROM T + WHERE [RNG(A_1,...,A_p ; where p <= k)] + [AND EQ(B_1,...,B_m)] + [AND PC(C)] + [AND PA(A_i1,...,A_iq)] + GROUP BY A_1,...,A_k; + + or + + SELECT DISTINCT A_i1,...,A_ik + FROM T + WHERE [RNG(A_1,...,A_p ; where p <= k)] + [AND PA(A_i1,...,A_iq)]; + + where all selected fields are parts of the same index. + The class of queries that can be processed by this quick select is fully + specified in the description of get_best_trp_group_min_max() in opt_range.cc. + + The get_next() method directly produces result tuples, thus obviating the + need to call end_send_group() because all grouping is already done inside + get_next(). + + Since one of the requirements is that all select fields are part of the same + index, this class produces only index keys, and not complete records. +*/ + +class QUICK_GROUP_MIN_MAX_SELECT : public QUICK_SELECT_I +{ +private: + handler * const file; /* The handler used to get data. */ + JOIN *join; /* Descriptor of the current query */ + KEY *index_info; /* The index chosen for data access */ + uchar *record; /* Buffer where the next record is returned. */ + uchar *tmp_record; /* Temporary storage for next_min(), next_max(). */ + uchar *group_prefix; /* Key prefix consisting of the GROUP fields. */ + const uint group_prefix_len; /* Length of the group prefix. */ + uint group_key_parts; /* A number of keyparts in the group prefix */ + uchar *last_prefix; /* Prefix of the last group for detecting EOF. */ + bool have_min; /* Specify whether we are computing */ + bool have_max; /* a MIN, a MAX, or both. */ + bool have_agg_distinct;/* aggregate_function(DISTINCT ...). */ + bool seen_first_key; /* Denotes whether the first key was retrieved.*/ + bool doing_key_read; /* true if we enabled key only reads */ + + KEY_PART_INFO *min_max_arg_part; /* The keypart of the only argument field */ + /* of all MIN/MAX functions. */ + uint min_max_arg_len; /* The length of the MIN/MAX argument field */ + uchar *key_infix; /* Infix of constants from equality predicates. */ + uint key_infix_len; + DYNAMIC_ARRAY min_max_ranges; /* Array of range ptrs for the MIN/MAX field. */ + uint real_prefix_len; /* Length of key prefix extended with key_infix. */ + uint real_key_parts; /* A number of keyparts in the above value. */ + List *min_functions; + List *max_functions; + List_iterator *min_functions_it; + List_iterator *max_functions_it; + /* + Use index scan to get the next different key instead of jumping into it + through index read + */ + bool is_index_scan; +public: + /* + The following two members are public to allow easy access from + TRP_GROUP_MIN_MAX::make_quick() + */ + MEM_ROOT alloc; /* Memory pool for this and quick_prefix_select data. */ + QUICK_RANGE_SELECT *quick_prefix_select;/* For retrieval of group prefixes. */ +private: + int next_prefix(); + int next_min_in_range(); + int next_max_in_range(); + int next_min(); + int next_max(); + void update_min_result(); + void update_max_result(); +public: + QUICK_GROUP_MIN_MAX_SELECT(TABLE *table, JOIN *join, bool have_min, + bool have_max, bool have_agg_distinct, + KEY_PART_INFO *min_max_arg_part, + uint group_prefix_len, uint group_key_parts, + uint used_key_parts, KEY *index_info, uint + use_index, double read_cost, ha_rows records, uint + key_infix_len, uchar *key_infix, MEM_ROOT + *parent_alloc, bool is_index_scan); + ~QUICK_GROUP_MIN_MAX_SELECT(); + bool add_range(SEL_ARG *sel_range); + void update_key_stat(); + void adjust_prefix_ranges(); + bool alloc_buffers(); + int init(); + void need_sorted_output() { /* always do it */ } + int reset(); + int get_next(); + bool reverse_sorted() { return false; } + bool unique_key_range() { return false; } + int get_type() { return QS_TYPE_GROUP_MIN_MAX; } + void add_keys_and_lengths(String *key_names, String *used_lengths); + void add_used_key_part_to_set(MY_BITMAP *col_set); +#ifndef DBUG_OFF + void dbug_dump(int indent, bool verbose); +#endif + bool is_agg_distinct() { return have_agg_distinct; } + virtual void append_loose_scan_type(String *str) + { + if (is_index_scan) + str->append(STRING_WITH_LEN(" (scanning)")); + } +}; + + +class QUICK_SELECT_DESC: public QUICK_RANGE_SELECT +{ +public: + QUICK_SELECT_DESC(QUICK_RANGE_SELECT *q, uint used_key_parts); + int get_next(); + bool reverse_sorted() { return 1; } + int get_type() { return QS_TYPE_RANGE_DESC; } + QUICK_SELECT_I *make_reverse(uint used_key_parts_arg) + { + return this; // is already reverse sorted + } +private: + bool range_reads_after_key(QUICK_RANGE *range); + int reset(void) { rev_it.rewind(); return QUICK_RANGE_SELECT::reset(); } + List rev_ranges; + List_iterator rev_it; + uint used_key_parts; +}; + + +class SQL_SELECT :public Sql_alloc { + public: + QUICK_SELECT_I *quick; // If quick-select used + COND *cond; // where condition + + /* + When using Index Condition Pushdown: condition that we've had before + extracting and pushing index condition. + In other cases, NULL. + */ + Item *pre_idx_push_select_cond; + TABLE *head; + IO_CACHE file; // Positions to used records + ha_rows records; // Records in use if read from file + double read_time; // Time to read rows + key_map quick_keys; // Possible quick keys + key_map needed_reg; // Possible quick keys after prev tables. + table_map const_tables,read_tables; + bool free_cond; /* Currently not used and always FALSE */ + + SQL_SELECT(); + ~SQL_SELECT(); + void cleanup(); + void set_quick(QUICK_SELECT_I *new_quick) { delete quick; quick= new_quick; } + bool check_quick(THD *thd, bool force_quick_range, ha_rows limit) + { + key_map tmp; + tmp.set_all(); + return test_quick_select(thd, tmp, 0, limit, force_quick_range, FALSE) < 0; + } + /* + RETURN + 0 if record must be skipped <-> (cond && cond->val_int() == 0) + -1 if error + 1 otherwise + */ + inline int skip_record(THD *thd) + { + int rc= test(!cond || cond->val_int()); + if (thd->is_error()) + rc= -1; + return rc; + } + int test_quick_select(THD *thd, key_map keys, table_map prev_tables, + ha_rows limit, bool force_quick_range, + bool ordered_output); +}; + + +class FT_SELECT: public QUICK_RANGE_SELECT +{ +public: + FT_SELECT(THD *thd, TABLE *table, uint key, bool *create_err) : + QUICK_RANGE_SELECT (thd, table, key, 1, NULL, create_err) + { (void) init(); } + ~FT_SELECT() { file->ft_end(); } + int init() { return file->ft_init(); } + int reset() { return 0; } + int get_next() { return file->ha_ft_read(record); } + int get_type() { return QS_TYPE_FULLTEXT; } +}; + +FT_SELECT *get_ft_select(THD *thd, TABLE *table, uint key); +QUICK_RANGE_SELECT *get_quick_select_for_ref(THD *thd, TABLE *table, + struct st_table_ref *ref, + ha_rows records); +SQL_SELECT *make_select(TABLE *head, table_map const_tables, + table_map read_tables, COND *conds, + bool allow_null_cond, int *error); + +#ifdef WITH_PARTITION_STORAGE_ENGINE +bool prune_partitions(THD *thd, TABLE *table, Item *pprune_cond); +void store_key_image_to_rec(Field *field, uchar *ptr, uint len); +#endif + +extern String null_string; + +#endif diff --git a/database/include/mysql/private/opt_subselect.h b/database/include/mysql/private/opt_subselect.h new file mode 100644 index 0000000..c3e7910 --- /dev/null +++ b/database/include/mysql/private/opt_subselect.h @@ -0,0 +1,398 @@ +/* + Copyright (c) 2010, 2012, Monty Program Ab + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* + Semi-join subquery optimization code definitions +*/ + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif + +int check_and_do_in_subquery_rewrites(JOIN *join); +bool convert_join_subqueries_to_semijoins(JOIN *join); +int pull_out_semijoin_tables(JOIN *join); +bool optimize_semijoin_nests(JOIN *join, table_map all_table_map); +bool setup_jtbm_semi_joins(JOIN *join, List *join_list, + Item **join_where); +void cleanup_empty_jtbm_semi_joins(JOIN *join, List *join_list); + +// used by Loose_scan_opt +ulonglong get_bound_sj_equalities(TABLE_LIST *sj_nest, + table_map remaining_tables); + +/* + This is a class for considering possible loose index scan optimizations. + It's usage pattern is as follows: + best_access_path() + { + Loose_scan_opt opt; + + opt.init() + for each index we can do ref access with + { + opt.next_ref_key(); + for each keyuse + opt.add_keyuse(); + opt.check_ref_access(); + } + + if (some criteria for range scans) + opt.check_range_access(); + + opt.get_best_option(); + } +*/ + +class Loose_scan_opt +{ + /* All methods must check this before doing anything else */ + bool try_loosescan; + + /* + If we consider (oe1, .. oeN) IN (SELECT ie1, .. ieN) then ieK=oeK is + called sj-equality. If oeK depends only on preceding tables then such + equality is called 'bound'. + */ + ulonglong bound_sj_equalities; + + /* Accumulated properties of ref access we're now considering: */ + ulonglong handled_sj_equalities; + key_part_map loose_scan_keyparts; + uint max_loose_keypart; + bool part1_conds_met; + + /* + Use of quick select is a special case. Some of its properties: + */ + uint quick_uses_applicable_index; + uint quick_max_loose_keypart; + + /* Best loose scan method so far */ + uint best_loose_scan_key; + double best_loose_scan_cost; + double best_loose_scan_records; + KEYUSE *best_loose_scan_start_key; + + uint best_max_loose_keypart; + +public: + Loose_scan_opt(): + try_loosescan(FALSE), + bound_sj_equalities(0), + quick_uses_applicable_index(FALSE) + { + UNINIT_VAR(quick_max_loose_keypart); /* Protected by quick_uses_applicable_index */ + /* The following are protected by best_loose_scan_cost!= DBL_MAX */ + UNINIT_VAR(best_loose_scan_key); + UNINIT_VAR(best_loose_scan_records); + UNINIT_VAR(best_max_loose_keypart); + UNINIT_VAR(best_loose_scan_start_key); + } + + void init(JOIN *join, JOIN_TAB *s, table_map remaining_tables) + { + /* + Discover the bound equalities. We need to do this if + 1. The next table is an SJ-inner table, and + 2. It is the first table from that semijoin, and + 3. We're not within a semi-join range (i.e. all semi-joins either have + all or none of their tables in join_table_map), except + s->emb_sj_nest (which we've just entered, see #2). + 4. All non-IN-equality correlation references from this sj-nest are + bound + 5. But some of the IN-equalities aren't (so this can't be handled by + FirstMatch strategy) + */ + best_loose_scan_cost= DBL_MAX; + if (!join->emb_sjm_nest && s->emb_sj_nest && // (1) + s->emb_sj_nest->sj_in_exprs < 64 && + ((remaining_tables & s->emb_sj_nest->sj_inner_tables) == // (2) + s->emb_sj_nest->sj_inner_tables) && // (2) + join->cur_sj_inner_tables == 0 && // (3) + !(remaining_tables & + s->emb_sj_nest->nested_join->sj_corr_tables) && // (4) + remaining_tables & s->emb_sj_nest->nested_join->sj_depends_on &&// (5) + optimizer_flag(join->thd, OPTIMIZER_SWITCH_LOOSE_SCAN)) + { + /* This table is an LooseScan scan candidate */ + bound_sj_equalities= get_bound_sj_equalities(s->emb_sj_nest, + remaining_tables); + try_loosescan= TRUE; + DBUG_PRINT("info", ("Will try LooseScan scan, bound_map=%llx", + (longlong)bound_sj_equalities)); + } + } + + void next_ref_key() + { + handled_sj_equalities=0; + loose_scan_keyparts= 0; + max_loose_keypart= 0; + part1_conds_met= FALSE; + } + + void add_keyuse(table_map remaining_tables, KEYUSE *keyuse) + { + if (try_loosescan && keyuse->sj_pred_no != UINT_MAX && + (keyuse->table->file->index_flags(keyuse->key, 0, 1 ) & HA_READ_ORDER)) + + { + if (!(remaining_tables & keyuse->used_tables)) + { + /* + This allows to use equality propagation to infer that some + sj-equalities are bound. + */ + bound_sj_equalities |= 1ULL << keyuse->sj_pred_no; + } + else + { + handled_sj_equalities |= 1ULL << keyuse->sj_pred_no; + loose_scan_keyparts |= ((key_part_map)1) << keyuse->keypart; + set_if_bigger(max_loose_keypart, keyuse->keypart); + } + } + } + + bool have_a_case() { return test(handled_sj_equalities); } + + void check_ref_access_part1(JOIN_TAB *s, uint key, KEYUSE *start_key, + table_map found_part) + { + /* + Check if we can use LooseScan semi-join strategy. We can if + 1. This is the right table at right location + 2. All IN-equalities are either + - "bound", ie. the outer_expr part refers to the preceding tables + - "handled", ie. covered by the index we're considering + 3. Index order allows to enumerate subquery's duplicate groups in + order. This happens when the index definition matches this + pattern: + + (handled_col|bound_col)* (other_col|bound_col) + + */ + if (try_loosescan && // (1) + (handled_sj_equalities | bound_sj_equalities) == // (2) + PREV_BITS(ulonglong, s->emb_sj_nest->sj_in_exprs) && // (2) + (PREV_BITS(key_part_map, max_loose_keypart+1) & // (3) + (found_part | loose_scan_keyparts)) == // (3) + PREV_BITS(key_part_map, max_loose_keypart+1) && // (3) + !key_uses_partial_cols(s->table->s, key)) + { + /* Ok, can use the strategy */ + part1_conds_met= TRUE; + if (s->quick && s->quick->index == key && + s->quick->get_type() == QUICK_SELECT_I::QS_TYPE_RANGE) + { + quick_uses_applicable_index= TRUE; + quick_max_loose_keypart= max_loose_keypart; + } + DBUG_PRINT("info", ("Can use LooseScan scan")); + + /* + Check if this is a special case where there are no usable bound + IN-equalities, i.e. we have + + outer_expr IN (SELECT innertbl.key FROM ...) + + and outer_expr cannot be evaluated yet, so it's actually full + index scan and not a ref access + */ + if (!(found_part & 1 ) && /* no usable ref access for 1st key part */ + s->table->covering_keys.is_set(key)) + { + DBUG_PRINT("info", ("Can use full index scan for LooseScan")); + + /* Calculate the cost of complete loose index scan. */ + double records= rows2double(s->table->file->stats.records); + + /* The cost is entire index scan cost (divided by 2) */ + double read_time= s->table->file->keyread_time(key, 1, + (ha_rows) records); + + /* + Now find out how many different keys we will get (for now we + ignore the fact that we have "keypart_i=const" restriction for + some key components, that may make us think think that loose + scan will produce more distinct records than it actually will) + */ + ulong rpc; + if ((rpc= s->table->key_info[key].rec_per_key[max_loose_keypart])) + records= records / rpc; + + // TODO: previous version also did /2 + if (read_time < best_loose_scan_cost) + { + best_loose_scan_key= key; + best_loose_scan_cost= read_time; + best_loose_scan_records= records; + best_max_loose_keypart= max_loose_keypart; + best_loose_scan_start_key= start_key; + } + } + } + } + + void check_ref_access_part2(uint key, KEYUSE *start_key, double records, + double read_time) + { + if (part1_conds_met && read_time < best_loose_scan_cost) + { + /* TODO use rec-per-key-based fanout calculations */ + best_loose_scan_key= key; + best_loose_scan_cost= read_time; + best_loose_scan_records= records; + best_max_loose_keypart= max_loose_keypart; + best_loose_scan_start_key= start_key; + } + } + + void check_range_access(JOIN *join, uint idx, QUICK_SELECT_I *quick) + { + /* TODO: this the right part restriction: */ + if (quick_uses_applicable_index && idx == join->const_tables && + quick->read_time < best_loose_scan_cost) + { + best_loose_scan_key= quick->index; + best_loose_scan_cost= quick->read_time; + /* this is ok because idx == join->const_tables */ + best_loose_scan_records= rows2double(quick->records); + best_max_loose_keypart= quick_max_loose_keypart; + best_loose_scan_start_key= NULL; + } + } + + void save_to_position(JOIN_TAB *tab, POSITION *pos) + { + pos->read_time= best_loose_scan_cost; + if (best_loose_scan_cost != DBL_MAX) + { + pos->records_read= best_loose_scan_records; + pos->key= best_loose_scan_start_key; + pos->loosescan_picker.loosescan_key= best_loose_scan_key; + pos->loosescan_picker.loosescan_parts= best_max_loose_keypart + 1; + pos->use_join_buffer= FALSE; + pos->table= tab; + // todo need ref_depend_map ? + DBUG_PRINT("info", ("Produced a LooseScan plan, key %s, %s", + tab->table->key_info[best_loose_scan_key].name, + best_loose_scan_start_key? "(ref access)": + "(range/index access)")); + } + } +}; + + +void advance_sj_state(JOIN *join, table_map remaining_tables, uint idx, + double *current_record_count, double *current_read_time, + POSITION *loose_scan_pos); +void restore_prev_sj_state(const table_map remaining_tables, + const JOIN_TAB *tab, uint idx); + +void fix_semijoin_strategies_for_picked_join_order(JOIN *join); + +bool setup_sj_materialization_part1(JOIN_TAB *sjm_tab); +bool setup_sj_materialization_part2(JOIN_TAB *sjm_tab); + + +/* + Temporary table used by semi-join DuplicateElimination strategy + + This consists of the temptable itself and data needed to put records + into it. The table's DDL is as follows: + + CREATE TABLE tmptable (col VARCHAR(n) BINARY, PRIMARY KEY(col)); + + where the primary key can be replaced with unique constraint if n exceeds + the limit (as it is always done for query execution-time temptables). + + The record value is a concatenation of rowids of tables from the join we're + executing. If a join table is on the inner side of the outer join, we + assume that its rowid can be NULL and provide means to store this rowid in + the tuple. +*/ + +class SJ_TMP_TABLE : public Sql_alloc +{ +public: + /* + Array of pointers to tables whose rowids compose the temporary table + record. + */ + class TAB + { + public: + JOIN_TAB *join_tab; + uint rowid_offset; + ushort null_byte; + uchar null_bit; + }; + TAB *tabs; + TAB *tabs_end; + + /* + is_degenerate==TRUE means this is a special case where the temptable record + has zero length (and presence of a unique key means that the temptable can + have either 0 or 1 records). + In this case we don't create the physical temptable but instead record + its state in SJ_TMP_TABLE::have_degenerate_row. + */ + bool is_degenerate; + + /* + When is_degenerate==TRUE: the contents of the table (whether it has the + record or not). + */ + bool have_degenerate_row; + + /* table record parameters */ + uint null_bits; + uint null_bytes; + uint rowid_len; + + /* The temporary table itself (NULL means not created yet) */ + TABLE *tmp_table; + + /* + These are the members we got from temptable creation code. We'll need + them if we'll need to convert table from HEAP to MyISAM/Maria. + */ + ENGINE_COLUMNDEF *start_recinfo; + ENGINE_COLUMNDEF *recinfo; + + SJ_TMP_TABLE *next_flush_table; + + int sj_weedout_delete_rows(); + int sj_weedout_check_row(THD *thd); + bool create_sj_weedout_tmp_table(THD *thd); +}; + +int setup_semijoin_dups_elimination(JOIN *join, ulonglong options, + uint no_jbuf_after); +void destroy_sj_tmp_tables(JOIN *join); +int clear_sj_tmp_tables(JOIN *join); +int rewrite_to_index_subquery_engine(JOIN *join); + + +void get_delayed_table_estimates(TABLE *table, + ha_rows *out_rows, + double *scan_time, + double *startup_cost); + +enum_nested_loop_state join_tab_execution_startup(JOIN_TAB *tab); + diff --git a/database/include/mysql/private/parse_file.h b/database/include/mysql/private/parse_file.h new file mode 100644 index 0000000..6e074b1 --- /dev/null +++ b/database/include/mysql/private/parse_file.h @@ -0,0 +1,116 @@ +/* -*- C++ -*- */ +/* Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef _PARSE_FILE_H_ +#define _PARSE_FILE_H_ + +#include "my_global.h" // uchar +#include "sql_string.h" // LEX_STRING +#include "sql_list.h" // Sql_alloc + +class THD; + +typedef struct st_mem_root MEM_ROOT; + +#define PARSE_FILE_TIMESTAMPLENGTH 19 + +enum file_opt_type { + FILE_OPTIONS_STRING, /**< String (LEX_STRING) */ + FILE_OPTIONS_ESTRING, /**< Escaped string (LEX_STRING) */ + FILE_OPTIONS_ULONGLONG, /**< ulonglong parameter (ulonglong) */ + FILE_OPTIONS_VIEW_ALGO, /**< Similar to longlong, but needs conversion */ + FILE_OPTIONS_TIMESTAMP, /**< timestamp (LEX_STRING have to be + allocated with length 20 (19+1) */ + FILE_OPTIONS_STRLIST, /**< list of escaped strings + (List) */ + FILE_OPTIONS_ULLLIST /**< list of ulonglong values + (List) */ +}; + +struct File_option +{ + LEX_STRING name; /**< Name of the option */ + my_ptrdiff_t offset; /**< offset to base address of value */ + file_opt_type type; /**< Option type */ +}; + + +/** + This hook used to catch no longer supported keys and process them for + backward compatibility. +*/ + +class Unknown_key_hook +{ +public: + Unknown_key_hook() {} /* Remove gcc warning */ + virtual ~Unknown_key_hook() {} /* Remove gcc warning */ + virtual bool process_unknown_string(char *&unknown_key, uchar* base, + MEM_ROOT *mem_root, char *end)= 0; +}; + + +/** Dummy hook for parsers which do not need hook for unknown keys. */ + +class File_parser_dummy_hook: public Unknown_key_hook +{ +public: + File_parser_dummy_hook() {} /* Remove gcc warning */ + virtual bool process_unknown_string(char *&unknown_key, uchar* base, + MEM_ROOT *mem_root, char *end); +}; + +extern File_parser_dummy_hook file_parser_dummy_hook; + +bool get_file_options_ulllist(char *&ptr, char *end, char *line, + uchar* base, File_option *parameter, + MEM_ROOT *mem_root); + +char * +parse_escaped_string(char *ptr, char *end, MEM_ROOT *mem_root, LEX_STRING *str); + +class File_parser; +File_parser *sql_parse_prepare(const LEX_STRING *file_name, + MEM_ROOT *mem_root, bool bad_format_errors); + +my_bool +sql_create_definition_file(const LEX_STRING *dir, const LEX_STRING *file_name, + const LEX_STRING *type, + uchar* base, File_option *parameters); +my_bool rename_in_schema_file(THD *thd, + const char *schema, const char *old_name, + const char *new_db, const char *new_name); + +class File_parser: public Sql_alloc +{ + char *buff, *start, *end; + LEX_STRING file_type; + bool content_ok; +public: + File_parser() :buff(0), start(0), end(0), content_ok(0) + { file_type.str= 0; file_type.length= 0; } + + bool ok() { return content_ok; } + LEX_STRING *type() { return &file_type; } + my_bool parse(uchar* base, MEM_ROOT *mem_root, + struct File_option *parameters, uint required, + Unknown_key_hook *hook); + + friend File_parser *sql_parse_prepare(const LEX_STRING *file_name, + MEM_ROOT *mem_root, + bool bad_format_errors); +}; +#endif /* _PARSE_FILE_H_ */ diff --git a/database/include/mysql/private/partition_element.h b/database/include/mysql/private/partition_element.h new file mode 100644 index 0000000..4b5074d --- /dev/null +++ b/database/include/mysql/private/partition_element.h @@ -0,0 +1,145 @@ +#ifndef PARTITION_ELEMENT_INCLUDED +#define PARTITION_ELEMENT_INCLUDED + +/* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#include "my_base.h" /* ha_rows */ +#include "handler.h" /* UNDEF_NODEGROUP */ + +/** + * An enum and a struct to handle partitioning and subpartitioning. + */ +enum partition_type { + NOT_A_PARTITION= 0, + RANGE_PARTITION, + HASH_PARTITION, + LIST_PARTITION +}; + +enum partition_state { + PART_NORMAL= 0, + PART_IS_DROPPED= 1, + PART_TO_BE_DROPPED= 2, + PART_TO_BE_ADDED= 3, + PART_TO_BE_REORGED= 4, + PART_REORGED_DROPPED= 5, + PART_CHANGED= 6, + PART_IS_CHANGED= 7, + PART_IS_ADDED= 8, + PART_ADMIN= 9 +}; + +/* + This struct is used to keep track of column expressions as part + of the COLUMNS concept in conjunction with RANGE and LIST partitioning. + The value can be either of MINVALUE, MAXVALUE and an expression that + must be constant and evaluate to the same type as the column it + represents. + + The data in this fixed in two steps. The parser will only fill in whether + it is a max_value or provide an expression. Filling in + column_value, part_info, partition_id, null_value is done by the + function fix_column_value_function. However the item tree needs + fixed also before writing it into the frm file (in add_column_list_values). + To distinguish between those two variants, fixed= 1 after the + fixing in add_column_list_values and fixed= 2 otherwise. This is + since the fixing in add_column_list_values isn't a complete fixing. +*/ + +typedef struct p_column_list_val +{ + void* column_value; + Item* item_expression; + partition_info *part_info; + uint partition_id; + bool max_value; + bool null_value; + char fixed; +} part_column_list_val; + + +/* + This struct is used to contain the value of an element + in the VALUES IN struct. It needs to keep knowledge of + whether it is a signed/unsigned value and whether it is + NULL or not. +*/ + +typedef struct p_elem_val +{ + longlong value; + uint added_items; + bool null_value; + bool unsigned_flag; + part_column_list_val *col_val_array; +} part_elem_value; + +struct st_ddl_log_memory_entry; + +class partition_element :public Sql_alloc { +public: + List subpartitions; + List list_val_list; + ha_rows part_max_rows; + ha_rows part_min_rows; + longlong range_value; + char *partition_name; + char *tablespace_name; + struct st_ddl_log_memory_entry *log_entry; + char* part_comment; + char* data_file_name; + char* index_file_name; + handlerton *engine_type; + LEX_STRING connect_string; + enum partition_state part_state; + uint16 nodegroup_id; + bool has_null_value; + bool signed_flag; // Range value signed + bool max_value; // MAXVALUE range + + partition_element() + : part_max_rows(0), part_min_rows(0), range_value(0), + partition_name(NULL), tablespace_name(NULL), + log_entry(NULL), part_comment(NULL), + data_file_name(NULL), index_file_name(NULL), + engine_type(NULL), part_state(PART_NORMAL), + nodegroup_id(UNDEF_NODEGROUP), has_null_value(FALSE), + signed_flag(FALSE), max_value(FALSE) + { + connect_string.str= 0; + connect_string.length= 0; + } + partition_element(partition_element *part_elem) + : part_max_rows(part_elem->part_max_rows), + part_min_rows(part_elem->part_min_rows), + range_value(0), partition_name(NULL), + tablespace_name(part_elem->tablespace_name), + part_comment(part_elem->part_comment), + data_file_name(part_elem->data_file_name), + index_file_name(part_elem->index_file_name), + engine_type(part_elem->engine_type), + connect_string(part_elem->connect_string), + part_state(part_elem->part_state), + nodegroup_id(part_elem->nodegroup_id), + has_null_value(FALSE) + { + connect_string.str= 0; + connect_string.length= 0; + } + ~partition_element() {} +}; + +#endif /* PARTITION_ELEMENT_INCLUDED */ diff --git a/database/include/mysql/private/partition_info.h b/database/include/mysql/private/partition_info.h new file mode 100644 index 0000000..2f61ed1 --- /dev/null +++ b/database/include/mysql/private/partition_info.h @@ -0,0 +1,353 @@ +#ifndef PARTITION_INFO_INCLUDED +#define PARTITION_INFO_INCLUDED + +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif + +#include "partition_element.h" + +class partition_info; + +/* Some function typedefs */ +typedef int (*get_part_id_func)(partition_info *part_info, + uint32 *part_id, + longlong *func_value); +typedef int (*get_subpart_id_func)(partition_info *part_info, + uint32 *part_id); + +struct st_ddl_log_memory_entry; + +class partition_info : public Sql_alloc +{ +public: + /* + * Here comes a set of definitions needed for partitioned table handlers. + */ + List partitions; + List temp_partitions; + + List part_field_list; + List subpart_field_list; + + /* + If there is no subpartitioning, use only this func to get partition ids. + If there is subpartitioning, use the this func to get partition id when + you have both partition and subpartition fields. + */ + get_part_id_func get_partition_id; + + /* Get partition id when we don't have subpartition fields */ + get_part_id_func get_part_partition_id; + + /* + Get subpartition id when we have don't have partition fields by we do + have subpartition ids. + Mikael said that for given constant tuple + {subpart_field1, ..., subpart_fieldN} the subpartition id will be the + same in all subpartitions + */ + get_subpart_id_func get_subpartition_id; + + /* + When we have various string fields we might need some preparation + before and clean-up after calling the get_part_id_func's. We need + one such method for get_part_partition_id and one for + get_subpartition_id. + */ + get_part_id_func get_part_partition_id_charset; + get_subpart_id_func get_subpartition_id_charset; + + /* NULL-terminated array of fields used in partitioned expression */ + Field **part_field_array; + Field **subpart_field_array; + Field **part_charset_field_array; + Field **subpart_charset_field_array; + /* + Array of all fields used in partition and subpartition expression, + without duplicates, NULL-terminated. + */ + Field **full_part_field_array; + /* + Set of all fields used in partition and subpartition expression. + Required for testing of partition fields in write_set when + updating. We need to set all bits in read_set because the row may + need to be inserted in a different [sub]partition. + */ + MY_BITMAP full_part_field_set; + + /* + When we have a field that requires transformation before calling the + partition functions we must allocate field buffers for the field of + the fields in the partition function. + */ + uchar **part_field_buffers; + uchar **subpart_field_buffers; + uchar **restore_part_field_ptrs; + uchar **restore_subpart_field_ptrs; + + Item *part_expr; + Item *subpart_expr; + + Item *item_free_list; + + struct st_ddl_log_memory_entry *first_log_entry; + struct st_ddl_log_memory_entry *exec_log_entry; + struct st_ddl_log_memory_entry *frm_log_entry; + + /* + A bitmap of partitions used by the current query. + Usage pattern: + * The handler->extra(HA_EXTRA_RESET) call at query start/end sets all + partitions to be unused. + * Before index/rnd_init(), partition pruning code sets the bits for used + partitions. + */ + MY_BITMAP used_partitions; + + union { + longlong *range_int_array; + LIST_PART_ENTRY *list_array; + part_column_list_val *range_col_array; + part_column_list_val *list_col_array; + }; + + /******************************************** + * INTERVAL ANALYSIS + ********************************************/ + /* + Partitioning interval analysis function for partitioning, or NULL if + interval analysis is not supported for this kind of partitioning. + */ + get_partitions_in_range_iter get_part_iter_for_interval; + /* + Partitioning interval analysis function for subpartitioning, or NULL if + interval analysis is not supported for this kind of partitioning. + */ + get_partitions_in_range_iter get_subpart_iter_for_interval; + + /******************************************** + * INTERVAL ANALYSIS ENDS + ********************************************/ + + longlong err_value; + char* part_info_string; + + char *part_func_string; + char *subpart_func_string; + + partition_element *curr_part_elem; + partition_element *current_partition; + part_elem_value *curr_list_val; + uint curr_list_object; + uint num_columns; + + /* + These key_map's are used for Partitioning to enable quick decisions + on whether we can derive more information about which partition to + scan just by looking at what index is used. + */ + key_map all_fields_in_PF, all_fields_in_PPF, all_fields_in_SPF; + key_map some_fields_in_PF; + + handlerton *default_engine_type; + partition_type part_type; + partition_type subpart_type; + + uint part_info_len; + uint part_func_len; + uint subpart_func_len; + + uint num_parts; + uint num_subparts; + uint count_curr_subparts; + + uint part_error_code; + + uint num_list_values; + + uint num_part_fields; + uint num_subpart_fields; + uint num_full_part_fields; + + uint has_null_part_id; + /* + This variable is used to calculate the partition id when using + LINEAR KEY/HASH. This functionality is kept in the MySQL Server + but mainly of use to handlers supporting partitioning. + */ + uint16 linear_hash_mask; + /* + PARTITION BY KEY ALGORITHM=N + Which algorithm to use for hashing the fields. + N = 1 - Use 5.1 hashing (numeric fields are hashed as binary) + N = 2 - Use 5.5 hashing (numeric fields are hashed like latin1 bytes) + */ + enum enum_key_algorithm + { + KEY_ALGORITHM_NONE= 0, + KEY_ALGORITHM_51= 1, + KEY_ALGORITHM_55= 2 + }; + enum_key_algorithm key_algorithm; + + bool use_default_partitions; + bool use_default_num_partitions; + bool use_default_subpartitions; + bool use_default_num_subpartitions; + bool default_partitions_setup; + bool defined_max_value; + bool list_of_part_fields; + bool list_of_subpart_fields; + bool linear_hash_ind; + bool fixed; + bool is_auto_partitioned; + bool from_openfrm; + bool has_null_value; + bool column_list; + + partition_info() + : get_partition_id(NULL), get_part_partition_id(NULL), + get_subpartition_id(NULL), + part_field_array(NULL), subpart_field_array(NULL), + part_charset_field_array(NULL), + subpart_charset_field_array(NULL), + full_part_field_array(NULL), + part_field_buffers(NULL), subpart_field_buffers(NULL), + restore_part_field_ptrs(NULL), restore_subpart_field_ptrs(NULL), + part_expr(NULL), subpart_expr(NULL), item_free_list(NULL), + first_log_entry(NULL), exec_log_entry(NULL), frm_log_entry(NULL), + list_array(NULL), err_value(0), + part_info_string(NULL), + part_func_string(NULL), subpart_func_string(NULL), + curr_part_elem(NULL), current_partition(NULL), + curr_list_object(0), num_columns(0), + default_engine_type(NULL), + part_type(NOT_A_PARTITION), subpart_type(NOT_A_PARTITION), + part_info_len(0), + part_func_len(0), subpart_func_len(0), + num_parts(0), num_subparts(0), + count_curr_subparts(0), part_error_code(0), + num_list_values(0), num_part_fields(0), num_subpart_fields(0), + num_full_part_fields(0), has_null_part_id(0), linear_hash_mask(0), + key_algorithm(KEY_ALGORITHM_NONE), + use_default_partitions(TRUE), use_default_num_partitions(TRUE), + use_default_subpartitions(TRUE), use_default_num_subpartitions(TRUE), + default_partitions_setup(FALSE), defined_max_value(FALSE), + list_of_part_fields(FALSE), list_of_subpart_fields(FALSE), + linear_hash_ind(FALSE), fixed(FALSE), + is_auto_partitioned(FALSE), from_openfrm(FALSE), + has_null_value(FALSE), column_list(FALSE) + { + all_fields_in_PF.clear_all(); + all_fields_in_PPF.clear_all(); + all_fields_in_SPF.clear_all(); + some_fields_in_PF.clear_all(); + partitions.empty(); + temp_partitions.empty(); + part_field_list.empty(); + subpart_field_list.empty(); + } + ~partition_info() {} + + partition_info *get_clone(); + /* Answers the question if subpartitioning is used for a certain table */ + bool is_sub_partitioned() + { + return (subpart_type == NOT_A_PARTITION ? FALSE : TRUE); + } + + /* Returns the total number of partitions on the leaf level */ + uint get_tot_partitions() + { + return num_parts * (is_sub_partitioned() ? num_subparts : 1); + } + + bool set_up_defaults_for_partitioning(handler *file, HA_CREATE_INFO *info, + uint start_no); + char *has_unique_fields(); + char *has_unique_names(); + bool check_engine_mix(handlerton *engine_type, bool default_engine); + bool check_range_constants(THD *thd); + bool check_list_constants(THD *thd); + bool check_partition_info(THD *thd, handlerton **eng_type, + handler *file, HA_CREATE_INFO *info, + bool check_partition_function); + void print_no_partition_found(TABLE *table, myf errflag); + void print_debug(const char *str, uint*); + Item* get_column_item(Item *item, Field *field); + int fix_partition_values(THD *thd, + part_elem_value *val, + partition_element *part_elem, + uint part_id); + bool fix_column_value_functions(THD *thd, + part_elem_value *val, + uint part_id); + int fix_parser_data(THD *thd); + int add_max_value(); + void init_col_val(part_column_list_val *col_val, Item *item); + int reorganize_into_single_field_col_val(); + part_column_list_val *add_column_value(); + bool set_part_expr(char *start_token, Item *item_ptr, + char *end_token, bool is_subpart); + static int compare_column_values(const void *a, const void *b); + bool set_up_charset_field_preps(); + bool check_partition_field_length(); + bool init_column_part(); + bool add_column_list_value(THD *thd, Item *item); + void set_show_version_string(String *packet); + void report_part_expr_error(bool use_subpart_expr); + bool has_same_partitioning(partition_info *new_part_info); + bool error_if_requires_values() const; +private: + static int list_part_cmp(const void* a, const void* b); + bool set_up_default_partitions(handler *file, HA_CREATE_INFO *info, + uint start_no); + bool set_up_default_subpartitions(handler *file, HA_CREATE_INFO *info); + char *create_default_partition_names(uint part_no, uint num_parts, + uint start_no); + char *create_subpartition_name(uint subpart_no, const char *part_name); + bool has_unique_name(partition_element *element); +}; + +uint32 get_next_partition_id_range(struct st_partition_iter* part_iter); +bool check_partition_dirs(partition_info *part_info); + +/* Initialize the iterator to return a single partition with given part_id */ + +static inline void init_single_partition_iterator(uint32 part_id, + PARTITION_ITERATOR *part_iter) +{ + part_iter->part_nums.start= part_iter->part_nums.cur= part_id; + part_iter->part_nums.end= part_id+1; + part_iter->ret_null_part= part_iter->ret_null_part_orig= FALSE; + part_iter->get_next= get_next_partition_id_range; +} + +/* Initialize the iterator to enumerate all partitions */ +static inline +void init_all_partitions_iterator(partition_info *part_info, + PARTITION_ITERATOR *part_iter) +{ + part_iter->part_nums.start= part_iter->part_nums.cur= 0; + part_iter->part_nums.end= part_info->num_parts; + part_iter->ret_null_part= part_iter->ret_null_part_orig= FALSE; + part_iter->get_next= get_next_partition_id_range; +} + +#endif /* PARTITION_INFO_INCLUDED */ diff --git a/database/include/mysql/private/password.h b/database/include/mysql/private/password.h new file mode 100644 index 0000000..917ec1a --- /dev/null +++ b/database/include/mysql/private/password.h @@ -0,0 +1,32 @@ +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef PASSWORD_INCLUDED +#define PASSWORD_INCLUDED + +#include "my_global.h" + +C_MODE_START + +void my_make_scrambled_password_323(char *to, const char *password, + size_t pass_len); +void my_make_scrambled_password(char *to, const char *password, + size_t pass_len); + +void hash_password(ulong *result, const char *password, uint password_len); + +C_MODE_END + +#endif /* PASSWORD_INCLUDED */ diff --git a/database/include/mysql/private/probes_mysql.h b/database/include/mysql/private/probes_mysql.h new file mode 100644 index 0000000..ce5be04 --- /dev/null +++ b/database/include/mysql/private/probes_mysql.h @@ -0,0 +1,26 @@ +/* Copyright (c) 2008 Sun Microsystems, Inc. + Use is subject to license terms. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef PROBES_MYSQL_H + +#define PROBES_MYSQL_H + +#if defined(HAVE_DTRACE) && !defined(DISABLE_DTRACE) +#include "probes_mysql_dtrace.h" +#else /* no dtrace */ +#include "probes_mysql_nodtrace.h" +#endif +#endif /* PROBES_MYSQL_H */ diff --git a/database/include/mysql/private/probes_mysql_nodtrace.h b/database/include/mysql/private/probes_mysql_nodtrace.h new file mode 100644 index 0000000..a84bf77 --- /dev/null +++ b/database/include/mysql/private/probes_mysql_nodtrace.h @@ -0,0 +1,132 @@ +/* + * Generated by dheadgen(1). + */ + +#ifndef _PROBES_MYSQL_D +#define _PROBES_MYSQL_D + +#ifdef __cplusplus +#define MYSQL_PROBES_FALSE false +extern "C" { +#else +#define MYSQL_PROBES_FALSE 0 +#endif + +#define MYSQL_CONNECTION_START(arg0, arg1, arg2) +#define MYSQL_CONNECTION_START_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_CONNECTION_DONE(arg0, arg1) +#define MYSQL_CONNECTION_DONE_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_COMMAND_START(arg0, arg1, arg2, arg3) +#define MYSQL_COMMAND_START_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_COMMAND_DONE(arg0) +#define MYSQL_COMMAND_DONE_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_QUERY_START(arg0, arg1, arg2, arg3, arg4) +#define MYSQL_QUERY_START_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_QUERY_DONE(arg0) +#define MYSQL_QUERY_DONE_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_QUERY_PARSE_START(arg0) +#define MYSQL_QUERY_PARSE_START_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_QUERY_PARSE_DONE(arg0) +#define MYSQL_QUERY_PARSE_DONE_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_QUERY_CACHE_HIT(arg0, arg1) +#define MYSQL_QUERY_CACHE_HIT_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_QUERY_CACHE_MISS(arg0) +#define MYSQL_QUERY_CACHE_MISS_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_QUERY_EXEC_START(arg0, arg1, arg2, arg3, arg4, arg5) +#define MYSQL_QUERY_EXEC_START_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_QUERY_EXEC_DONE(arg0) +#define MYSQL_QUERY_EXEC_DONE_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_INSERT_ROW_START(arg0, arg1) +#define MYSQL_INSERT_ROW_START_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_INSERT_ROW_DONE(arg0) +#define MYSQL_INSERT_ROW_DONE_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_UPDATE_ROW_START(arg0, arg1) +#define MYSQL_UPDATE_ROW_START_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_UPDATE_ROW_DONE(arg0) +#define MYSQL_UPDATE_ROW_DONE_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_DELETE_ROW_START(arg0, arg1) +#define MYSQL_DELETE_ROW_START_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_DELETE_ROW_DONE(arg0) +#define MYSQL_DELETE_ROW_DONE_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_READ_ROW_START(arg0, arg1, arg2) +#define MYSQL_READ_ROW_START_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_READ_ROW_DONE(arg0) +#define MYSQL_READ_ROW_DONE_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_INDEX_READ_ROW_START(arg0, arg1) +#define MYSQL_INDEX_READ_ROW_START_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_INDEX_READ_ROW_DONE(arg0) +#define MYSQL_INDEX_READ_ROW_DONE_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_HANDLER_RDLOCK_START(arg0, arg1) +#define MYSQL_HANDLER_RDLOCK_START_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_HANDLER_WRLOCK_START(arg0, arg1) +#define MYSQL_HANDLER_WRLOCK_START_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_HANDLER_UNLOCK_START(arg0, arg1) +#define MYSQL_HANDLER_UNLOCK_START_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_HANDLER_RDLOCK_DONE(arg0) +#define MYSQL_HANDLER_RDLOCK_DONE_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_HANDLER_WRLOCK_DONE(arg0) +#define MYSQL_HANDLER_WRLOCK_DONE_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_HANDLER_UNLOCK_DONE(arg0) +#define MYSQL_HANDLER_UNLOCK_DONE_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_FILESORT_START(arg0, arg1) +#define MYSQL_FILESORT_START_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_FILESORT_DONE(arg0, arg1) +#define MYSQL_FILESORT_DONE_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_SELECT_START(arg0) +#define MYSQL_SELECT_START_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_SELECT_DONE(arg0, arg1) +#define MYSQL_SELECT_DONE_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_INSERT_START(arg0) +#define MYSQL_INSERT_START_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_INSERT_DONE(arg0, arg1) +#define MYSQL_INSERT_DONE_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_INSERT_SELECT_START(arg0) +#define MYSQL_INSERT_SELECT_START_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_INSERT_SELECT_DONE(arg0, arg1) +#define MYSQL_INSERT_SELECT_DONE_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_UPDATE_START(arg0) +#define MYSQL_UPDATE_START_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_UPDATE_DONE(arg0, arg1, arg2) +#define MYSQL_UPDATE_DONE_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_MULTI_UPDATE_START(arg0) +#define MYSQL_MULTI_UPDATE_START_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_MULTI_UPDATE_DONE(arg0, arg1, arg2) +#define MYSQL_MULTI_UPDATE_DONE_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_DELETE_START(arg0) +#define MYSQL_DELETE_START_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_DELETE_DONE(arg0, arg1) +#define MYSQL_DELETE_DONE_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_MULTI_DELETE_START(arg0) +#define MYSQL_MULTI_DELETE_START_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_MULTI_DELETE_DONE(arg0, arg1) +#define MYSQL_MULTI_DELETE_DONE_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_NET_READ_START() +#define MYSQL_NET_READ_START_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_NET_READ_DONE(arg0, arg1) +#define MYSQL_NET_READ_DONE_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_NET_WRITE_START(arg0) +#define MYSQL_NET_WRITE_START_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_NET_WRITE_DONE(arg0) +#define MYSQL_NET_WRITE_DONE_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_KEYCACHE_READ_START(arg0, arg1, arg2, arg3) +#define MYSQL_KEYCACHE_READ_START_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_KEYCACHE_READ_BLOCK(arg0) +#define MYSQL_KEYCACHE_READ_BLOCK_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_KEYCACHE_READ_HIT() +#define MYSQL_KEYCACHE_READ_HIT_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_KEYCACHE_READ_MISS() +#define MYSQL_KEYCACHE_READ_MISS_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_KEYCACHE_READ_DONE(arg0, arg1) +#define MYSQL_KEYCACHE_READ_DONE_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_KEYCACHE_WRITE_START(arg0, arg1, arg2, arg3) +#define MYSQL_KEYCACHE_WRITE_START_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_KEYCACHE_WRITE_BLOCK(arg0) +#define MYSQL_KEYCACHE_WRITE_BLOCK_ENABLED() (MYSQL_PROBES_FALSE) +#define MYSQL_KEYCACHE_WRITE_DONE(arg0, arg1) +#define MYSQL_KEYCACHE_WRITE_DONE_ENABLED() (MYSQL_PROBES_FALSE) + +#ifdef __cplusplus +} +#endif + +#endif /* _PROBES_MYSQL_D */ diff --git a/database/include/mysql/private/procedure.h b/database/include/mysql/private/procedure.h new file mode 100644 index 0000000..fe2d046 --- /dev/null +++ b/database/include/mysql/private/procedure.h @@ -0,0 +1,167 @@ +#ifndef PROCEDURE_INCLUDED +#define PROCEDURE_INCLUDED + +/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* When using sql procedures */ + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif + +/* + It is necessary to include set_var.h instead of item.h because there + are dependencies on include order for set_var.h and item.h. This + will be resolved later. +*/ +#include "sql_class.h" /* select_result, set_var.h: THD */ +#include "set_var.h" /* Item */ + +#define PROC_NO_SORT 1 /**< Bits in flags */ +#define PROC_GROUP 2 /**< proc must have group */ + +/* Procedure items used by procedures to store values for send_result_set_metadata */ + +class Item_proc :public Item +{ +public: + Item_proc(const char *name_par): Item() + { + this->name=(char*) name_par; + } + enum Type type() const { return Item::PROC_ITEM; } + virtual void set(double nr)=0; + virtual void set(const char *str,uint length,CHARSET_INFO *cs)=0; + virtual void set(longlong nr)=0; + virtual enum_field_types field_type() const=0; + void set(const char *str) { set(str,(uint) strlen(str), default_charset()); } + void make_field(Send_field *tmp_field) + { + init_make_field(tmp_field,field_type()); + } + unsigned int size_of() { return sizeof(*this);} + bool check_vcol_func_processor(uchar *int_arg) + { + return trace_unsupported_by_check_vcol_func_processor("proc"); + } +}; + +class Item_proc_real :public Item_proc +{ + double value; +public: + Item_proc_real(const char *name_par,uint dec) : Item_proc(name_par) + { + decimals=dec; max_length=float_length(dec); + } + enum Item_result result_type () const { return REAL_RESULT; } + enum_field_types field_type() const { return MYSQL_TYPE_DOUBLE; } + void set(double nr) { value=nr; } + void set(longlong nr) { value=(double) nr; } + void set(const char *str,uint length,CHARSET_INFO *cs) + { + int err_not_used; + char *end_not_used; + value= my_strntod(cs,(char*) str,length, &end_not_used, &err_not_used); + } + double val_real() { return value; } + longlong val_int() { return (longlong) value; } + String *val_str(String *s) + { + s->set_real(value,decimals,default_charset()); + return s; + } + my_decimal *val_decimal(my_decimal *); + unsigned int size_of() { return sizeof(*this);} +}; + +class Item_proc_int :public Item_proc +{ + longlong value; +public: + Item_proc_int(const char *name_par) :Item_proc(name_par) + { max_length=11; } + enum Item_result result_type () const { return INT_RESULT; } + enum_field_types field_type() const { return MYSQL_TYPE_LONGLONG; } + void set(double nr) { value=(longlong) nr; } + void set(longlong nr) { value=nr; } + void set(const char *str,uint length, CHARSET_INFO *cs) + { int err; value=my_strntoll(cs,str,length,10,NULL,&err); } + double val_real() { return (double) value; } + longlong val_int() { return value; } + String *val_str(String *s) { s->set(value, default_charset()); return s; } + my_decimal *val_decimal(my_decimal *); + unsigned int size_of() { return sizeof(*this);} +}; + + +class Item_proc_string :public Item_proc +{ +public: + Item_proc_string(const char *name_par,uint length) :Item_proc(name_par) + { this->max_length=length; } + enum Item_result result_type () const { return STRING_RESULT; } + enum_field_types field_type() const { return MYSQL_TYPE_VARCHAR; } + void set(double nr) { str_value.set_real(nr, 2, default_charset()); } + void set(longlong nr) { str_value.set(nr, default_charset()); } + void set(const char *str, uint length, CHARSET_INFO *cs) + { str_value.copy(str,length,cs); } + double val_real() + { + int err_not_used; + char *end_not_used; + CHARSET_INFO *cs= str_value.charset(); + return my_strntod(cs, (char*) str_value.ptr(), str_value.length(), + &end_not_used, &err_not_used); + } + longlong val_int() + { + int err; + CHARSET_INFO *cs=str_value.charset(); + return my_strntoll(cs,str_value.ptr(),str_value.length(),10,NULL,&err); + } + String *val_str(String*) + { + return null_value ? (String*) 0 : (String*) &str_value; + } + my_decimal *val_decimal(my_decimal *); + unsigned int size_of() { return sizeof(*this);} +}; + +/* The procedure class definitions */ + +class Procedure { +protected: + List *fields; + select_result *result; +public: + const uint flags; + ORDER *group,*param_fields; + Procedure(select_result *res,uint flags_par) :result(res),flags(flags_par), + group(0),param_fields(0) {} + virtual ~Procedure() {group=param_fields=0; fields=0; } + virtual void add(void)=0; + virtual void end_group(void)=0; + virtual int send_row(List &fields)=0; + virtual bool change_columns(List &fields)=0; + virtual void update_refs(void) {} + virtual int end_of_records() { return 0; } +}; + +Procedure *setup_procedure(THD *thd,ORDER *proc_param,select_result *result, + List &field_list,int *error); + +#endif /* PROCEDURE_INCLUDED */ diff --git a/database/include/mysql/private/protocol.h b/database/include/mysql/private/protocol.h new file mode 100644 index 0000000..aa23a07 --- /dev/null +++ b/database/include/mysql/private/protocol.h @@ -0,0 +1,216 @@ +#ifndef PROTOCOL_INCLUDED +#define PROTOCOL_INCLUDED + +/* Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif + +#include "sql_error.h" +#include "my_decimal.h" /* my_decimal */ + +class i_string; +class Field; +class THD; +class Item_param; +typedef struct st_mysql_field MYSQL_FIELD; +typedef struct st_mysql_rows MYSQL_ROWS; + +class Protocol +{ +protected: + THD *thd; + String *packet; + String *convert; + uint field_pos; +#ifndef DBUG_OFF + enum enum_field_types *field_types; +#endif + uint field_count; +#ifndef EMBEDDED_LIBRARY + bool net_store_data(const uchar *from, size_t length); + bool net_store_data_cs(const uchar *from, size_t length, + CHARSET_INFO *fromcs, CHARSET_INFO *tocs); +#else + virtual bool net_store_data(const uchar *from, size_t length); + virtual bool net_store_data_cs(const uchar *from, size_t length, + CHARSET_INFO *fromcs, CHARSET_INFO *tocs); + char **next_field; + MYSQL_FIELD *next_mysql_field; + MEM_ROOT *alloc; +#endif + bool store_string_aux(const char *from, size_t length, + CHARSET_INFO *fromcs, CHARSET_INFO *tocs); + + virtual bool send_ok(uint server_status, uint statement_warn_count, + ulonglong affected_rows, ulonglong last_insert_id, + const char *message); + + virtual bool send_eof(uint server_status, uint statement_warn_count); + + virtual bool send_error(uint sql_errno, const char *err_msg, + const char *sql_state); + +public: + Protocol() {} + Protocol(THD *thd_arg) { init(thd_arg); } + virtual ~Protocol() {} + void init(THD* thd_arg); + + enum { SEND_NUM_ROWS= 1, SEND_DEFAULTS= 2, SEND_EOF= 4 }; + virtual bool send_result_set_metadata(List *list, uint flags); + bool send_result_set_row(List *row_items); + + bool store(I_List *str_list); + bool store(const char *from, CHARSET_INFO *cs); + String *storage_packet() { return packet; } + inline void free() { packet->free(); } + virtual bool write(); + inline bool store(int from) + { return store_long((longlong) from); } + inline bool store(uint32 from) + { return store_long((longlong) from); } + inline bool store(longlong from) + { return store_longlong((longlong) from, 0); } + inline bool store(ulonglong from) + { return store_longlong((longlong) from, 1); } + inline bool store(String *str) + { return store((char*) str->ptr(), str->length(), str->charset()); } + + virtual bool prepare_for_send(uint num_columns) + { + field_count= num_columns; + return 0; + } + virtual bool flush(); + virtual void end_partial_result_set(THD *thd); + virtual void prepare_for_resend()=0; + + virtual bool store_null()=0; + virtual bool store_tiny(longlong from)=0; + virtual bool store_short(longlong from)=0; + virtual bool store_long(longlong from)=0; + virtual bool store_longlong(longlong from, bool unsigned_flag)=0; + virtual bool store_decimal(const my_decimal *)=0; + virtual bool store(const char *from, size_t length, CHARSET_INFO *cs)=0; + virtual bool store(const char *from, size_t length, + CHARSET_INFO *fromcs, CHARSET_INFO *tocs)=0; + virtual bool store(float from, uint32 decimals, String *buffer)=0; + virtual bool store(double from, uint32 decimals, String *buffer)=0; + virtual bool store(MYSQL_TIME *time, int decimals)=0; + virtual bool store_date(MYSQL_TIME *time)=0; + virtual bool store_time(MYSQL_TIME *time, int decimals)=0; + virtual bool store(Field *field)=0; + + virtual bool send_out_parameters(List *sp_params)=0; +#ifdef EMBEDDED_LIBRARY + int begin_dataset(); + virtual void remove_last_row() {} +#else + void remove_last_row() {} +#endif + enum enum_protocol_type + { + /* + Before adding a new type, please make sure + there is enough storage for it in Query_cache_query_flags. + */ + PROTOCOL_TEXT= 0, PROTOCOL_BINARY= 1, PROTOCOL_LOCAL= 2 + }; + virtual enum enum_protocol_type type()= 0; + + void end_statement(); +}; + + +/** Class used for the old (MySQL 4.0 protocol). */ + +class Protocol_text :public Protocol +{ +public: + Protocol_text() {} + Protocol_text(THD *thd_arg) :Protocol(thd_arg) {} + virtual void prepare_for_resend(); + virtual bool store_null(); + virtual bool store_tiny(longlong from); + virtual bool store_short(longlong from); + virtual bool store_long(longlong from); + virtual bool store_longlong(longlong from, bool unsigned_flag); + virtual bool store_decimal(const my_decimal *); + virtual bool store(const char *from, size_t length, CHARSET_INFO *cs); + virtual bool store(const char *from, size_t length, + CHARSET_INFO *fromcs, CHARSET_INFO *tocs); + virtual bool store(MYSQL_TIME *time, int decimals); + virtual bool store_date(MYSQL_TIME *time); + virtual bool store_time(MYSQL_TIME *time, int decimals); + virtual bool store(float nr, uint32 decimals, String *buffer); + virtual bool store(double from, uint32 decimals, String *buffer); + virtual bool store(Field *field); + + virtual bool send_out_parameters(List *sp_params); +#ifdef EMBEDDED_LIBRARY + void remove_last_row(); +#endif + virtual enum enum_protocol_type type() { return PROTOCOL_TEXT; }; +}; + + +class Protocol_binary :public Protocol +{ +private: + uint bit_fields; +public: + Protocol_binary() {} + Protocol_binary(THD *thd_arg) :Protocol(thd_arg) {} + virtual bool prepare_for_send(uint num_columns); + virtual void prepare_for_resend(); +#ifdef EMBEDDED_LIBRARY + virtual bool write(); + bool net_store_data(const uchar *from, size_t length); + bool net_store_data_cs(const uchar *from, size_t length, + CHARSET_INFO *fromcs, CHARSET_INFO *tocs); +#endif + virtual bool store_null(); + virtual bool store_tiny(longlong from); + virtual bool store_short(longlong from); + virtual bool store_long(longlong from); + virtual bool store_longlong(longlong from, bool unsigned_flag); + virtual bool store_decimal(const my_decimal *); + virtual bool store(const char *from, size_t length, CHARSET_INFO *cs); + virtual bool store(const char *from, size_t length, + CHARSET_INFO *fromcs, CHARSET_INFO *tocs); + virtual bool store(MYSQL_TIME *time, int decimals); + virtual bool store_date(MYSQL_TIME *time); + virtual bool store_time(MYSQL_TIME *time, int decimals); + virtual bool store(float nr, uint32 decimals, String *buffer); + virtual bool store(double from, uint32 decimals, String *buffer); + virtual bool store(Field *field); + + virtual bool send_out_parameters(List *sp_params); + + virtual enum enum_protocol_type type() { return PROTOCOL_BINARY; }; +}; + +void send_warning(THD *thd, uint sql_errno, const char *err=0); +bool net_send_error(THD *thd, uint sql_errno, const char *err, + const char* sqlstate); +void net_send_progress_packet(THD *thd); +uchar *net_store_data(uchar *to,const uchar *from, size_t length); +uchar *net_store_data(uchar *to,int32 from); +uchar *net_store_data(uchar *to,longlong from); + +#endif /* PROTOCOL_INCLUDED */ diff --git a/database/include/mysql/private/queues.h b/database/include/mysql/private/queues.h new file mode 100644 index 0000000..c4630cf --- /dev/null +++ b/database/include/mysql/private/queues.h @@ -0,0 +1,88 @@ +/* Copyright (C) 2010 Monty Program Ab + All Rights reserved + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the following disclaimer + in the documentation and/or other materials provided with the + distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. +*/ + +/* + Code for generell handling of priority Queues. + Implemention of queues from "Algoritms in C" by Robert Sedgewick. +*/ + +#ifndef _queues_h +#define _queues_h + +#include "my_global.h" /* uchar */ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct st_queue { + uchar **root; + void *first_cmp_arg; + uint elements; + uint max_elements; + uint offset_to_key; /* compare is done on element+offset */ + uint offset_to_queue_pos; /* If we want to store position in element */ + uint auto_extent; + int max_at_top; /* Normally 1, set to -1 if queue_top gives max */ + int (*compare)(void *, uchar *,uchar *); +} QUEUE; + +#define queue_first_element(queue) 1 +#define queue_last_element(queue) (queue)->elements +#define queue_top(queue) ((queue)->root[1]) +#define queue_element(queue,index) ((queue)->root[index]) +#define queue_end(queue) ((queue)->root[(queue)->elements]) +#define queue_replace_top(queue) _downheap(queue, 1) +#define queue_set_cmp_arg(queue, set_arg) (queue)->first_cmp_arg= set_arg +#define queue_set_max_at_top(queue, set_arg) \ + (queue)->max_at_top= set_arg ? -1 : 1 +#define queue_remove_top(queue_arg) queue_remove((queue_arg), queue_first_element(queue_arg)) +typedef int (*queue_compare)(void *,uchar *, uchar *); + +int init_queue(QUEUE *queue,uint max_elements,uint offset_to_key, + my_bool max_at_top, queue_compare compare, + void *first_cmp_arg, uint offset_to_queue_pos, + uint auto_extent); +int reinit_queue(QUEUE *queue,uint max_elements,uint offset_to_key, + my_bool max_at_top, queue_compare compare, + void *first_cmp_arg, uint offset_to_queue_pos, + uint auto_extent); +int resize_queue(QUEUE *queue, uint max_elements); +void delete_queue(QUEUE *queue); +void queue_insert(QUEUE *queue, uchar *element); +int queue_insert_safe(QUEUE *queue, uchar *element); +uchar *queue_remove(QUEUE *queue,uint idx); +void queue_replace(QUEUE *queue,uint idx); + +#define queue_remove_all(queue) { (queue)->elements= 0; } +#define queue_is_full(queue) (queue->elements == queue->max_elements) +void _downheap(QUEUE *queue, uint idx); +void queue_fix(QUEUE *queue); +#define is_queue_inited(queue) ((queue)->root != 0) + +#ifdef __cplusplus +} +#endif +#endif diff --git a/database/include/mysql/private/records.h b/database/include/mysql/private/records.h new file mode 100644 index 0000000..53b05d2 --- /dev/null +++ b/database/include/mysql/private/records.h @@ -0,0 +1,86 @@ +#ifndef SQL_RECORDS_H +#define SQL_RECORDS_H +/* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif +#include /* for uint typedefs */ + +struct st_join_table; +class handler; +struct TABLE; +class THD; +class SQL_SELECT; +class Copy_field; + +/** + A context for reading through a single table using a chosen access method: + index read, scan, etc, use of cache, etc. + + Use by: + READ_RECORD read_record; + init_read_record(&read_record, ...); + while (read_record.read_record()) + { + ... + } + end_read_record(); +*/ + +struct READ_RECORD +{ + typedef int (*Read_func)(READ_RECORD*); + typedef void (*Unlock_row_func)(st_join_table *); + typedef int (*Setup_func)(struct st_join_table*); + + TABLE *table; /* Head-form */ + //handler *file; + TABLE **forms; /* head and ref forms */ + Unlock_row_func unlock_row; + Read_func read_record; + THD *thd; + SQL_SELECT *select; + uint cache_records; + uint ref_length,struct_length,reclength,rec_cache_size,error_offset; + uint index; + uchar *ref_pos; /* pointer to form->refpos */ + uchar *record; + uchar *rec_buf; /* to read field values after filesort */ + uchar *cache,*cache_pos,*cache_end,*read_positions; + struct st_io_cache *io_cache; + bool print_error, ignore_not_found_rows; + + /* + SJ-Materialization runtime may need to read fields from the materialized + table and unpack them into original table fields: + */ + Copy_field *copy_field; + Copy_field *copy_field_end; +public: + READ_RECORD() {} +}; + +bool init_read_record(READ_RECORD *info, THD *thd, TABLE *reg_form, + SQL_SELECT *select, int use_record_cache, + bool print_errors, bool disable_rr_cache); +void init_read_record_idx(READ_RECORD *info, THD *thd, TABLE *table, + bool print_error, uint idx, bool reverse); +void end_read_record(READ_RECORD *info); + +void rr_unlock_row(st_join_table *tab); + +#endif /* SQL_RECORDS_H */ diff --git a/database/include/mysql/private/repl_failsafe.h b/database/include/mysql/private/repl_failsafe.h new file mode 100644 index 0000000..d11cfae --- /dev/null +++ b/database/include/mysql/private/repl_failsafe.h @@ -0,0 +1,48 @@ +#ifndef REPL_FAILSAFE_INCLUDED +#define REPL_FAILSAFE_INCLUDED + +/* Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifdef HAVE_REPLICATION + +#include "mysql.h" +#include "my_sys.h" +#include "slave.h" + +typedef enum {RPL_AUTH_MASTER=0,RPL_IDLE_SLAVE,RPL_ACTIVE_SLAVE, + RPL_LOST_SOLDIER,RPL_TROOP_SOLDIER, + RPL_RECOVERY_CAPTAIN,RPL_NULL /* inactive */, + RPL_ANY /* wild card used by change_rpl_status */ } RPL_STATUS; +extern ulong rpl_status; + +extern mysql_mutex_t LOCK_rpl_status; +extern mysql_cond_t COND_rpl_status; +extern TYPELIB rpl_role_typelib; +extern const char* rpl_role_type[], *rpl_status_type[]; + +void change_rpl_status(ulong from_status, ulong to_status); +int find_recovery_captain(THD* thd, MYSQL* mysql); + +extern HASH slave_list; + +bool show_slave_hosts(THD* thd); +void init_slave_list(); +void end_slave_list(); +int register_slave(THD* thd, uchar* packet, uint packet_length); +void unregister_slave(THD* thd, bool only_mine, bool need_mutex); + +#endif /* HAVE_REPLICATION */ +#endif /* REPL_FAILSAFE_INCLUDED */ diff --git a/database/include/mysql/private/replication.h b/database/include/mysql/private/replication.h new file mode 100644 index 0000000..43106c0 --- /dev/null +++ b/database/include/mysql/private/replication.h @@ -0,0 +1,566 @@ +/* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef REPLICATION_H +#define REPLICATION_H + +/*************************************************************************** + NOTE: plugin locking. + This API was created specifically for the semisync plugin and its locking + logic is also matches semisync plugin usage pattern. In particular, a plugin + is locked on Binlog_transmit_observer::transmit_start and is unlocked after + Binlog_transmit_observer::transmit_stop. All other master observable events + happen between these two and don't lock the plugin at all. This works well + for the semisync_master plugin. + + Also a plugin is locked on Binlog_relay_IO_observer::thread_start + and unlocked after Binlog_relay_IO_observer::thread_stop. This works well for + the semisync_slave plugin. +***************************************************************************/ + +#include + +typedef struct st_mysql MYSQL; + +#ifdef __cplusplus +extern "C" { +#endif + +/** + Transaction observer flags. +*/ +enum Trans_flags { + /** Transaction is a real transaction */ + TRANS_IS_REAL_TRANS = 1 +}; + +/** + Transaction observer parameter +*/ +typedef struct Trans_param { + uint32 server_id; + uint32 flags; + + /* + The latest binary log file name and position written by current + transaction, if binary log is disabled or no log event has been + written into binary log file by current transaction (events + written into transaction log cache are not counted), these two + member will be zero. + */ + const char *log_file; + my_off_t log_pos; +} Trans_param; + +/** + Observes and extends transaction execution +*/ +typedef struct Trans_observer { + uint32 len; + + /** + This callback is called after transaction commit + + This callback is called right after commit to storage engines for + transactional tables. + + For non-transactional tables, this is called at the end of the + statement, before sending statement status, if the statement + succeeded. + + @note The return value is currently ignored by the server. + + @param param The parameter for transaction observers + + @retval 0 Sucess + @retval 1 Failure + */ + int (*after_commit)(Trans_param *param); + + /** + This callback is called after transaction rollback + + This callback is called right after rollback to storage engines + for transactional tables. + + For non-transactional tables, this is called at the end of the + statement, before sending statement status, if the statement + failed. + + @note The return value is currently ignored by the server. + + @param param The parameter for transaction observers + + @retval 0 Sucess + @retval 1 Failure + */ + int (*after_rollback)(Trans_param *param); +} Trans_observer; + +/** + Binlog storage flags +*/ +enum Binlog_storage_flags { + /** Binary log was sync:ed */ + BINLOG_STORAGE_IS_SYNCED = 1 +}; + +/** + Binlog storage observer parameters + */ +typedef struct Binlog_storage_param { + uint32 server_id; +} Binlog_storage_param; + +/** + Observe binlog logging storage +*/ +typedef struct Binlog_storage_observer { + uint32 len; + + /** + This callback is called after binlog has been flushed + + This callback is called after cached events have been flushed to + binary log file. Whether the binary log file is synchronized to + disk is indicated by the bit BINLOG_STORAGE_IS_SYNCED in @a flags. + + @param param Observer common parameter + @param log_file Binlog file name been updated + @param log_pos Binlog position after update + @param flags flags for binlog storage + + @retval 0 Sucess + @retval 1 Failure + */ + int (*after_flush)(Binlog_storage_param *param, + const char *log_file, my_off_t log_pos, + uint32 flags); +} Binlog_storage_observer; + +/** + Replication binlog transmitter (binlog dump) observer parameter. +*/ +typedef struct Binlog_transmit_param { + uint32 server_id; + uint32 flags; +} Binlog_transmit_param; + +/** + Observe and extends the binlog dumping thread. +*/ +typedef struct Binlog_transmit_observer { + uint32 len; + + /** + This callback is called when binlog dumping starts + + + @param param Observer common parameter + @param log_file Binlog file name to transmit from + @param log_pos Binlog position to transmit from + + @retval 0 Sucess + @retval 1 Failure + */ + int (*transmit_start)(Binlog_transmit_param *param, + const char *log_file, my_off_t log_pos); + + /** + This callback is called when binlog dumping stops + + @param param Observer common parameter + + @retval 0 Sucess + @retval 1 Failure + */ + int (*transmit_stop)(Binlog_transmit_param *param); + + /** + This callback is called to reserve bytes in packet header for event transmission + + This callback is called when resetting transmit packet header to + reserve bytes for this observer in packet header. + + The @a header buffer is allocated by the server code, and @a size + is the size of the header buffer. Each observer can only reserve + a maximum size of @a size in the header. + + @param param Observer common parameter + @param header Pointer of the header buffer + @param size Size of the header buffer + @param len Header length reserved by this observer + + @retval 0 Sucess + @retval 1 Failure + */ + int (*reserve_header)(Binlog_transmit_param *param, + unsigned char *header, + unsigned long size, + unsigned long *len); + + /** + This callback is called before sending an event packet to slave + + @param param Observer common parameter + @param packet Binlog event packet to send + @param len Length of the event packet + @param log_file Binlog file name of the event packet to send + @param log_pos Binlog position of the event packet to send + + @retval 0 Sucess + @retval 1 Failure + */ + int (*before_send_event)(Binlog_transmit_param *param, + unsigned char *packet, unsigned long len, + const char *log_file, my_off_t log_pos ); + + /** + This callback is called after sending an event packet to slave + + @param param Observer common parameter + @param event_buf Binlog event packet buffer sent + @param len length of the event packet buffer + + @retval 0 Sucess + @retval 1 Failure + */ + int (*after_send_event)(Binlog_transmit_param *param, + const char *event_buf, unsigned long len); + + /** + This callback is called after resetting master status + + This is called when executing the command RESET MASTER, and is + used to reset status variables added by observers. + + @param param Observer common parameter + + @retval 0 Sucess + @retval 1 Failure + */ + int (*after_reset_master)(Binlog_transmit_param *param); +} Binlog_transmit_observer; + +/** + Binlog relay IO flags +*/ +enum Binlog_relay_IO_flags { + /** Binary relay log was sync:ed */ + BINLOG_RELAY_IS_SYNCED = 1 +}; + + +/** + Replication binlog relay IO observer parameter +*/ +typedef struct Binlog_relay_IO_param { + uint32 server_id; + + /* Master host, user and port */ + char *host; + char *user; + unsigned int port; + + char *master_log_name; + my_off_t master_log_pos; + + MYSQL *mysql; /* the connection to master */ +} Binlog_relay_IO_param; + +/** + Observes and extends the service of slave IO thread. +*/ +typedef struct Binlog_relay_IO_observer { + uint32 len; + + /** + This callback is called when slave IO thread starts + + @param param Observer common parameter + + @retval 0 Sucess + @retval 1 Failure + */ + int (*thread_start)(Binlog_relay_IO_param *param); + + /** + This callback is called when slave IO thread stops + + @param param Observer common parameter + + @retval 0 Sucess + @retval 1 Failure + */ + int (*thread_stop)(Binlog_relay_IO_param *param); + + /** + This callback is called before slave requesting binlog transmission from master + + This is called before slave issuing BINLOG_DUMP command to master + to request binlog. + + @param param Observer common parameter + @param flags binlog dump flags + + @retval 0 Sucess + @retval 1 Failure + */ + int (*before_request_transmit)(Binlog_relay_IO_param *param, uint32 flags); + + /** + This callback is called after read an event packet from master + + @param param Observer common parameter + @param packet The event packet read from master + @param len Length of the event packet read from master + @param event_buf The event packet return after process + @param event_len The length of event packet return after process + + @retval 0 Sucess + @retval 1 Failure + */ + int (*after_read_event)(Binlog_relay_IO_param *param, + const char *packet, unsigned long len, + const char **event_buf, unsigned long *event_len); + + /** + This callback is called after written an event packet to relay log + + @param param Observer common parameter + @param event_buf Event packet written to relay log + @param event_len Length of the event packet written to relay log + @param flags flags for relay log + + @retval 0 Sucess + @retval 1 Failure + */ + int (*after_queue_event)(Binlog_relay_IO_param *param, + const char *event_buf, unsigned long event_len, + uint32 flags); + + /** + This callback is called after reset slave relay log IO status + + @param param Observer common parameter + + @retval 0 Sucess + @retval 1 Failure + */ + int (*after_reset_slave)(Binlog_relay_IO_param *param); +} Binlog_relay_IO_observer; + + +/** + Register a transaction observer + + @param observer The transaction observer to register + @param p pointer to the internal plugin structure + + @retval 0 Sucess + @retval 1 Observer already exists +*/ +int register_trans_observer(Trans_observer *observer, void *p); + +/** + Unregister a transaction observer + + @param observer The transaction observer to unregister + @param p pointer to the internal plugin structure + + @retval 0 Sucess + @retval 1 Observer not exists +*/ +int unregister_trans_observer(Trans_observer *observer, void *p); + +/** + Register a binlog storage observer + + @param observer The binlog storage observer to register + @param p pointer to the internal plugin structure + + @retval 0 Sucess + @retval 1 Observer already exists +*/ +int register_binlog_storage_observer(Binlog_storage_observer *observer, void *p); + +/** + Unregister a binlog storage observer + + @param observer The binlog storage observer to unregister + @param p pointer to the internal plugin structure + + @retval 0 Sucess + @retval 1 Observer not exists +*/ +int unregister_binlog_storage_observer(Binlog_storage_observer *observer, void *p); + +/** + Register a binlog transmit observer + + @param observer The binlog transmit observer to register + @param p pointer to the internal plugin structure + + @retval 0 Sucess + @retval 1 Observer already exists +*/ +int register_binlog_transmit_observer(Binlog_transmit_observer *observer, void *p); + +/** + Unregister a binlog transmit observer + + @param observer The binlog transmit observer to unregister + @param p pointer to the internal plugin structure + + @retval 0 Sucess + @retval 1 Observer not exists +*/ +int unregister_binlog_transmit_observer(Binlog_transmit_observer *observer, void *p); + +/** + Register a binlog relay IO (slave IO thread) observer + + @param observer The binlog relay IO observer to register + @param p pointer to the internal plugin structure + + @retval 0 Sucess + @retval 1 Observer already exists +*/ +int register_binlog_relay_io_observer(Binlog_relay_IO_observer *observer, void *p); + +/** + Unregister a binlog relay IO (slave IO thread) observer + + @param observer The binlog relay IO observer to unregister + @param p pointer to the internal plugin structure + + @retval 0 Sucess + @retval 1 Observer not exists +*/ +int unregister_binlog_relay_io_observer(Binlog_relay_IO_observer *observer, void *p); + +/** + Connect to master + + This function can only used in the slave I/O thread context, and + will use the same master information to do the connection. + + @code + MYSQL *mysql = mysql_init(NULL); + if (rpl_connect_master(mysql)) + { + // do stuff with the connection + } + mysql_close(mysql); // close the connection + @endcode + + @param mysql address of MYSQL structure to use, pass NULL will + create a new one + + @return address of MYSQL structure on success, NULL on failure +*/ +MYSQL *rpl_connect_master(MYSQL *mysql); + +/** + Set thread entering a condition + + This function should be called before putting a thread to wait for + a condition. @a mutex should be held before calling this + function. After being waken up, @f thd_exit_cond should be called. + + @param thd The thread entering the condition, NULL means current thread + @param cond The condition the thread is going to wait for + @param mutex The mutex associated with the condition, this must be + held before call this function + @param msg The new process message for the thread +*/ +const char* thd_enter_cond(MYSQL_THD thd, mysql_cond_t *cond, + mysql_mutex_t *mutex, const char *msg); + +/** + Set thread leaving a condition + + This function should be called after a thread being waken up for a + condition. + + @param thd The thread entering the condition, NULL means current thread + @param old_msg The process message, ususally this should be the old process + message before calling @f thd_enter_cond +*/ +void thd_exit_cond(MYSQL_THD thd, const char *old_msg); + +/** + Get the value of user variable as an integer. + + This function will return the value of variable @a name as an + integer. If the original value of the variable is not an integer, + the value will be converted into an integer. + + @param name user variable name + @param value pointer to return the value + @param null_value if not NULL, the function will set it to true if + the value of variable is null, set to false if not + + @retval 0 Success + @retval 1 Variable not found +*/ +int get_user_var_int(const char *name, + long long int *value, int *null_value); + +/** + Get the value of user variable as a double precision float number. + + This function will return the value of variable @a name as real + number. If the original value of the variable is not a real number, + the value will be converted into a real number. + + @param name user variable name + @param value pointer to return the value + @param null_value if not NULL, the function will set it to true if + the value of variable is null, set to false if not + + @retval 0 Success + @retval 1 Variable not found +*/ +int get_user_var_real(const char *name, + double *value, int *null_value); + +/** + Get the value of user variable as a string. + + This function will return the value of variable @a name as + string. If the original value of the variable is not a string, + the value will be converted into a string. + + @param name user variable name + @param value pointer to the value buffer + @param len length of the value buffer + @param precision precision of the value if it is a float number + @param null_value if not NULL, the function will set it to true if + the value of variable is null, set to false if not + + @retval 0 Success + @retval 1 Variable not found +*/ +int get_user_var_str(const char *name, + char *value, unsigned long len, + unsigned int precision, int *null_value); + + + +#ifdef __cplusplus +} +#endif +#endif /* REPLICATION_H */ diff --git a/database/include/mysql/private/rijndael.h b/database/include/mysql/private/rijndael.h new file mode 100644 index 0000000..552430a --- /dev/null +++ b/database/include/mysql/private/rijndael.h @@ -0,0 +1,47 @@ +#ifndef RIJNDAEL_INCLUDED +#define RIJNDAEL_INCLUDED + +/* Copyright (c) 2002, 2006 MySQL AB, 2009 Sun Microsystems, Inc. + Use is subject to license terms. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + + +/* + rijndael-alg-fst.h + + @version 3.0 (December 2000) + Optimised ANSI C code for the Rijndael cipher (now AES) + @author Vincent Rijmen + @author Antoon Bosselaers + @author Paulo Barreto + + This code is hereby placed in the public domain. + Modified by Peter Zaitsev to fit MySQL coding style. + */ + +#define AES_MAXKC (256/32) +#define AES_MAXKB (256/8) +#define AES_MAXNR 14 + +int rijndaelKeySetupEnc(uint32 rk[/*4*(Nr + 1)*/], const uint8 cipherKey[], + int keyBits); +int rijndaelKeySetupDec(uint32 rk[/*4*(Nr + 1)*/], const uint8 cipherKey[], + int keyBits); +void rijndaelEncrypt(const uint32 rk[/*4*(Nr + 1)*/], int Nr, + const uint8 pt[16], uint8 ct[16]); +void rijndaelDecrypt(const uint32 rk[/*4*(Nr + 1)*/], int Nr, + const uint8 ct[16], uint8 pt[16]); + +#endif /* RIJNDAEL_INCLUDED */ diff --git a/database/include/mysql/private/rpl_constants.h b/database/include/mysql/private/rpl_constants.h new file mode 100644 index 0000000..7b5f8fc --- /dev/null +++ b/database/include/mysql/private/rpl_constants.h @@ -0,0 +1,34 @@ +/* Copyright (c) 2007 MySQL AB, 2008 Sun Microsystems, Inc. + Use is subject to license terms. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef RPL_CONSTANTS_H +#define RPL_CONSTANTS_H + +/** + Enumeration of the incidents that can occur for the server. + */ +enum Incident { + /** No incident */ + INCIDENT_NONE = 0, + + /** There are possibly lost events in the replication stream */ + INCIDENT_LOST_EVENTS = 1, + + /** Shall be last event of the enumeration */ + INCIDENT_COUNT +}; + +#endif /* RPL_CONSTANTS_H */ diff --git a/database/include/mysql/private/rpl_filter.h b/database/include/mysql/private/rpl_filter.h new file mode 100644 index 0000000..7fa690d --- /dev/null +++ b/database/include/mysql/private/rpl_filter.h @@ -0,0 +1,145 @@ +/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef RPL_FILTER_H +#define RPL_FILTER_H + +#include "mysql.h" +#include "sql_list.h" /* I_List */ +#include "hash.h" /* HASH */ + +class String; +struct TABLE_LIST; +typedef struct st_dynamic_array DYNAMIC_ARRAY; + +typedef struct st_table_rule_ent +{ + char* db; + char* tbl_name; + uint key_len; +} TABLE_RULE_ENT; + +/* + Rpl_filter + + Inclusion and exclusion rules of tables and databases. + Also handles rewrites of db. + Used for replication and binlogging. + */ +class Rpl_filter +{ +public: + Rpl_filter(); + ~Rpl_filter(); + Rpl_filter(Rpl_filter const&); + Rpl_filter& operator=(Rpl_filter const&); + + /* Checks - returns true if ok to replicate/log */ + +#ifndef MYSQL_CLIENT + bool tables_ok(const char* db, TABLE_LIST *tables); +#endif + bool db_ok(const char* db); + bool db_ok_with_wild_table(const char *db); + + bool is_on(); + + /* Setters - add filtering rules */ + + int add_do_table(const char* table_spec); + int add_ignore_table(const char* table_spec); + + int set_do_table(const char* table_spec); + int set_ignore_table(const char* table_spec); + + int add_wild_do_table(const char* table_spec); + int add_wild_ignore_table(const char* table_spec); + + int set_wild_do_table(const char* table_spec); + int set_wild_ignore_table(const char* table_spec); + + int add_do_db(const char* db_spec); + int add_ignore_db(const char* db_spec); + + int set_do_db(const char* db_spec); + int set_ignore_db(const char* db_spec); + + void add_db_rewrite(const char* from_db, const char* to_db); + + /* Getters - to get information about current rules */ + + void get_do_table(String* str); + void get_ignore_table(String* str); + + void get_wild_do_table(String* str); + void get_wild_ignore_table(String* str); + + bool rewrite_db_is_empty(); + const char* get_rewrite_db(const char* db, size_t *new_len); + + I_List* get_do_db(); + I_List* get_ignore_db(); + + void get_do_db(String* str); + void get_ignore_db(String* str); + +private: + bool table_rules_on; + + void init_table_rule_hash(HASH* h, bool* h_inited); + void init_table_rule_array(DYNAMIC_ARRAY* a, bool* a_inited); + + int add_table_rule(HASH* h, const char* table_spec); + int add_wild_table_rule(DYNAMIC_ARRAY* a, const char* table_spec); + + typedef int (Rpl_filter::*Add_filter)(char const*); + + int parse_filter_rule(const char* spec, Add_filter func); + + void free_string_array(DYNAMIC_ARRAY *a); + void free_string_list(I_List *l); + + void table_rule_ent_hash_to_str(String* s, HASH* h, bool inited); + void table_rule_ent_dynamic_array_to_str(String* s, DYNAMIC_ARRAY* a, + bool inited); + void db_rule_ent_list_to_str(String* s, I_List* l); + TABLE_RULE_ENT* find_wild(DYNAMIC_ARRAY *a, const char* key, int len); + + int add_string_list(I_List *list, const char* spec); + + /* + Those 4 structures below are uninitialized memory unless the + corresponding *_inited variables are "true". + */ + HASH do_table; + HASH ignore_table; + DYNAMIC_ARRAY wild_do_table; + DYNAMIC_ARRAY wild_ignore_table; + + bool do_table_inited; + bool ignore_table_inited; + bool wild_do_table_inited; + bool wild_ignore_table_inited; + + I_List do_db; + I_List ignore_db; + + I_List rewrite_db; +}; + +extern Rpl_filter *rpl_filter; +extern Rpl_filter *binlog_filter; + +#endif // RPL_FILTER_H diff --git a/database/include/mysql/private/rpl_handler.h b/database/include/mysql/private/rpl_handler.h new file mode 100644 index 0000000..036d616 --- /dev/null +++ b/database/include/mysql/private/rpl_handler.h @@ -0,0 +1,213 @@ +/* Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef RPL_HANDLER_H +#define RPL_HANDLER_H + +#include "sql_priv.h" +#include "rpl_mi.h" +#include "rpl_rli.h" +#include "sql_plugin.h" +#include "replication.h" + +class Observer_info { +public: + void *observer; + st_plugin_int *plugin_int; + + Observer_info(void *ob, st_plugin_int *p) + :observer(ob), plugin_int(p) + { } +}; + +class Delegate { +public: + typedef List Observer_info_list; + typedef List_iterator Observer_info_iterator; + + int add_observer(void *observer, st_plugin_int *plugin) + { + int ret= FALSE; + if (!inited) + return TRUE; + write_lock(); + Observer_info_iterator iter(observer_info_list); + Observer_info *info= iter++; + while (info && info->observer != observer) + info= iter++; + if (!info) + { + info= new Observer_info(observer, plugin); + if (!info || observer_info_list.push_back(info, &memroot)) + ret= TRUE; + } + else + ret= TRUE; + unlock(); + return ret; + } + + int remove_observer(void *observer, st_plugin_int *plugin) + { + int ret= FALSE; + if (!inited) + return TRUE; + write_lock(); + Observer_info_iterator iter(observer_info_list); + Observer_info *info= iter++; + while (info && info->observer != observer) + info= iter++; + if (info) + { + iter.remove(); + delete info; + } + else + ret= TRUE; + unlock(); + return ret; + } + + inline Observer_info_iterator observer_info_iter() + { + return Observer_info_iterator(observer_info_list); + } + + inline bool is_empty() + { + return observer_info_list.is_empty(); + } + + inline int read_lock() + { + if (!inited) + return TRUE; + return rw_rdlock(&lock); + } + + inline int write_lock() + { + if (!inited) + return TRUE; + return rw_wrlock(&lock); + } + + inline int unlock() + { + if (!inited) + return TRUE; + return rw_unlock(&lock); + } + + inline bool is_inited() + { + return inited; + } + + Delegate() + { + inited= FALSE; + if (my_rwlock_init(&lock, NULL)) + return; + init_sql_alloc(&memroot, 1024, 0); + inited= TRUE; + } + ~Delegate() + { + inited= FALSE; + rwlock_destroy(&lock); + free_root(&memroot, MYF(0)); + } + +private: + Observer_info_list observer_info_list; + rw_lock_t lock; + MEM_ROOT memroot; + bool inited; +}; + +class Trans_delegate + :public Delegate { +public: + typedef Trans_observer Observer; + int before_commit(THD *thd, bool all); + int before_rollback(THD *thd, bool all); + int after_commit(THD *thd, bool all); + int after_rollback(THD *thd, bool all); +}; + +class Binlog_storage_delegate + :public Delegate { +public: + typedef Binlog_storage_observer Observer; + int after_flush(THD *thd, const char *log_file, + my_off_t log_pos, bool synced); +}; + +#ifdef HAVE_REPLICATION +class Binlog_transmit_delegate + :public Delegate { +public: + typedef Binlog_transmit_observer Observer; + int transmit_start(THD *thd, ushort flags, + const char *log_file, my_off_t log_pos); + int transmit_stop(THD *thd, ushort flags); + int reserve_header(THD *thd, ushort flags, String *packet); + int before_send_event(THD *thd, ushort flags, + String *packet, const + char *log_file, my_off_t log_pos ); + int after_send_event(THD *thd, ushort flags, + String *packet); + int after_reset_master(THD *thd, ushort flags); +}; + +class Binlog_relay_IO_delegate + :public Delegate { +public: + typedef Binlog_relay_IO_observer Observer; + int thread_start(THD *thd, Master_info *mi); + int thread_stop(THD *thd, Master_info *mi); + int before_request_transmit(THD *thd, Master_info *mi, ushort flags); + int after_read_event(THD *thd, Master_info *mi, + const char *packet, ulong len, + const char **event_buf, ulong *event_len); + int after_queue_event(THD *thd, Master_info *mi, + const char *event_buf, ulong event_len, + bool synced); + int after_reset_slave(THD *thd, Master_info *mi); +private: + void init_param(Binlog_relay_IO_param *param, Master_info *mi); +}; +#endif /* HAVE_REPLICATION */ + +int delegates_init(); +void delegates_destroy(); + +extern Trans_delegate *transaction_delegate; +extern Binlog_storage_delegate *binlog_storage_delegate; +#ifdef HAVE_REPLICATION +extern Binlog_transmit_delegate *binlog_transmit_delegate; +extern Binlog_relay_IO_delegate *binlog_relay_io_delegate; +#endif /* HAVE_REPLICATION */ + +/* + if there is no observers in the delegate, we can return 0 + immediately. +*/ +#define RUN_HOOK(group, hook, args) \ + (group ##_delegate->is_empty() ? \ + 0 : group ##_delegate->hook args) + +#endif /* RPL_HANDLER_H */ diff --git a/database/include/mysql/private/rpl_injector.h b/database/include/mysql/private/rpl_injector.h new file mode 100644 index 0000000..6c8b763 --- /dev/null +++ b/database/include/mysql/private/rpl_injector.h @@ -0,0 +1,337 @@ +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef INJECTOR_H +#define INJECTOR_H + +/* Pull in 'byte', 'my_off_t', and 'uint32' */ +#include +#include + +#include "rpl_constants.h" +#include "table.h" /* TABLE */ + +/* Forward declarations */ +class handler; +class MYSQL_BIN_LOG; +struct TABLE; + + +/* + Injector to inject rows into the MySQL server. + + The injector class is used to notify the MySQL server of new rows that have + appeared outside of MySQL control. + + The original purpose of this is to allow clusters---which handle replication + inside the cluster through other means---to insert new rows into binary log. + Note, however, that the injector should be used whenever rows are altered in + any manner that is outside of MySQL server visibility and which therefore + are not seen by the MySQL server. + */ +class injector +{ +public: + + /* + Get an instance of the injector. + + DESCRIPTION + The injector is a Singleton, so this static function return the + available instance of the injector. + + RETURN VALUE + A pointer to the available injector object. + */ + static injector *instance(); + + /* + Delete the singleton instance (if allocated). Used during server shutdown. + */ + static void free_instance(); + + /* + A transaction where rows can be added. + + DESCRIPTION + The transaction class satisfy the **CopyConstructible** and + **Assignable** requirements. Note that the transaction is *not* + default constructible. + */ + class transaction { + friend class injector; + public: + /* Convenience definitions */ + typedef uchar* record_type; + typedef uint32 server_id_type; + + /* + Table reference. + + RESPONSIBILITY + + The class contains constructors to handle several forms of + references to tables. The constructors can implicitly be used to + construct references from, e.g., strings containing table names. + + EXAMPLE + + The class is intended to be used *by value*. Please, do not try to + construct objects of this type using 'new'; instead construct an + object, possibly a temporary object. For example: + + injector::transaction::table tbl(share->table, true); + MY_BITMAP cols; + bitmap_init(&cols, NULL, (i + 7) / 8, false); + inj->write_row(::server_id, tbl, &cols, row_data); + + or + + MY_BITMAP cols; + bitmap_init(&cols, NULL, (i + 7) / 8, false); + inj->write_row(::server_id, + injector::transaction::table(share->table, true), + &cols, row_data); + + This will work, be more efficient, and have greater chance of + inlining, not run the risk of losing pointers. + + COLLABORATION + + injector::transaction + Provide a flexible interface to the representation of tables. + + */ + class table + { + public: + table(TABLE *table, bool is_transactional) + : m_table(table), m_is_transactional(is_transactional) + { + } + + char const *db_name() const { return m_table->s->db.str; } + char const *table_name() const { return m_table->s->table_name.str; } + TABLE *get_table() const { return m_table; } + bool is_transactional() const { return m_is_transactional; } + + private: + TABLE *m_table; + bool m_is_transactional; + }; + + /* + Binlog position as a structure. + */ + class binlog_pos { + friend class transaction; + public: + char const *file_name() const { return m_file_name; } + my_off_t file_pos() const { return m_file_pos; } + + private: + char const *m_file_name; + my_off_t m_file_pos; + }; + + transaction() : m_thd(NULL) { } + transaction(transaction const&); + ~transaction(); + + /* Clear transaction, i.e., make calls to 'good()' return false. */ + void clear() { m_thd= NULL; } + + /* Is the transaction in a good state? */ + bool good() const { return m_thd != NULL; } + + /* Default assignment operator: standard implementation */ + transaction& operator=(transaction t) { + swap(t); + return *this; + } + + /* + + DESCRIPTION + + Register table for use within the transaction. All tables + that are going to be used need to be registered before being + used below. The member function will fail with an error if + use_table() is called after any *_row() function has been + called for the transaction. + + RETURN VALUE + + 0 All OK + >0 Failure + + */ + int use_table(server_id_type sid, table tbl); + + /* + Add a 'write row' entry to the transaction. + */ + int write_row (server_id_type sid, table tbl, + MY_BITMAP const *cols, size_t colcnt, + record_type record); + + /* + Add a 'delete row' entry to the transaction. + */ + int delete_row(server_id_type sid, table tbl, + MY_BITMAP const *cols, size_t colcnt, + record_type record); + + /* + Add an 'update row' entry to the transaction. + */ + int update_row(server_id_type sid, table tbl, + MY_BITMAP const *cols, size_t colcnt, + record_type before, record_type after); + + /* + Commit a transaction. + + This member function will clean up after a sequence of *_row calls by, + for example, releasing resource and unlocking files. + */ + int commit(); + + /* + Get the position for the start of the transaction. + + Returns the position in the binary log of the first event in this + transaction. If no event is yet written, the position where the event + *will* be written is returned. This position is known, since a + new_transaction() will lock the binary log and prevent any other + writes to the binary log. + */ + binlog_pos start_pos() const; + + private: + /* Only the injector may construct these object */ + transaction(MYSQL_BIN_LOG *, THD *); + + void swap(transaction& o) { + /* std::swap(m_start_pos, o.m_start_pos); */ + { + binlog_pos const tmp= m_start_pos; + m_start_pos= o.m_start_pos; + o.m_start_pos= tmp; + } + + /* std::swap(m_thd, o.m_thd); */ + { + THD* const tmp= m_thd; + m_thd= o.m_thd; + o.m_thd= tmp; + } + { + enum_state const tmp= m_state; + m_state= o.m_state; + o.m_state= tmp; + } + } + + enum enum_state + { + START_STATE, /* Start state */ + TABLE_STATE, /* At least one table has been registered */ + ROW_STATE, /* At least one row has been registered */ + STATE_COUNT /* State count and sink state */ + } m_state; + + /* + Check and update the state. + + PARAMETER(S) + + target_state + The state we are moving to: TABLE_STATE if we are + writing a table and ROW_STATE if we are writing a row. + + DESCRIPTION + + The internal state will be updated to the target state if + and only if it is a legal move. The only legal moves are: + + START_STATE -> START_STATE + START_STATE -> TABLE_STATE + TABLE_STATE -> TABLE_STATE + TABLE_STATE -> ROW_STATE + + That is: + - It is not possible to write any row before having written at + least one table + - It is not possible to write a table after at least one row + has been written + + RETURN VALUE + + 0 All OK + -1 Incorrect call sequence + */ + int check_state(enum_state const target_state) + { +#ifndef DBUG_OFF + static char const *state_name[] = { + "START_STATE", "TABLE_STATE", "ROW_STATE", "STATE_COUNT" + }; + + DBUG_ASSERT(target_state <= STATE_COUNT); + DBUG_PRINT("info", ("In state %s", state_name[m_state])); +#endif + + if (m_state <= target_state && target_state <= m_state + 1 && + m_state < STATE_COUNT) + m_state= target_state; + else + m_state= STATE_COUNT; + return m_state == STATE_COUNT ? 1 : 0; + } + + + binlog_pos m_start_pos; + THD *m_thd; + }; + + /* + Create a new transaction. This member function will prepare for a + sequence of *_row calls by, for example, reserving resources and + locking files. There are two overloaded alternatives: one returning a + transaction by value and one using placement semantics. The following + two calls are equivalent, with the exception that the latter will + overwrite the transaction. + + injector::transaction trans1= inj->new_trans(thd); + + injector::transaction trans2; + inj->new_trans(thd, &trans); + */ + transaction new_trans(THD *); + void new_trans(THD *, transaction *); + + int record_incident(THD*, Incident incident); + int record_incident(THD*, Incident incident, LEX_STRING const message); + +private: + explicit injector(); + ~injector() { } /* Nothing needs to be done */ + injector(injector const&); /* You're not allowed to copy injector + instances. + */ +}; + +#endif /* INJECTOR_H */ diff --git a/database/include/mysql/private/rpl_mi.h b/database/include/mysql/private/rpl_mi.h new file mode 100644 index 0000000..c5d8a47 --- /dev/null +++ b/database/include/mysql/private/rpl_mi.h @@ -0,0 +1,134 @@ +/* Copyright (c) 2006, 2012, Oracle and/or its affiliates. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef RPL_MI_H +#define RPL_MI_H + +#ifdef HAVE_REPLICATION + +#include "rpl_rli.h" +#include "rpl_reporting.h" +#include "my_sys.h" + +typedef struct st_mysql MYSQL; + +/***************************************************************************** + Replication IO Thread + + Master_info contains: + - information about how to connect to a master + - current master log name + - current master log offset + - misc control variables + + Master_info is initialized once from the master.info file if such + exists. Otherwise, data members corresponding to master.info fields + are initialized with defaults specified by master-* options. The + initialization is done through init_master_info() call. + + The format of master.info file: + + log_name + log_pos + master_host + master_user + master_pass + master_port + master_connect_retry + + To write out the contents of master.info file to disk ( needed every + time we read and queue data from the master ), a call to + flush_master_info() is required. + + To clean up, call end_master_info() + +*****************************************************************************/ + +class Master_info : public Slave_reporting_capability +{ + public: + Master_info(bool is_slave_recovery); + ~Master_info(); + bool shall_ignore_server_id(ulong s_id); + void clear_in_memory_info(bool all); + + /* the variables below are needed because we can change masters on the fly */ + char master_log_name[FN_REFLEN]; + char host[HOSTNAME_LENGTH*SYSTEM_CHARSET_MBMAXLEN+1]; + char user[USERNAME_LENGTH+1]; + char password[MAX_PASSWORD_LENGTH*SYSTEM_CHARSET_MBMAXLEN+1]; + bool ssl; // enables use of SSL connection if true + char ssl_ca[FN_REFLEN], ssl_capath[FN_REFLEN], ssl_cert[FN_REFLEN]; + char ssl_cipher[FN_REFLEN], ssl_key[FN_REFLEN]; + bool ssl_verify_server_cert; + + my_off_t master_log_pos; + File fd; // we keep the file open, so we need to remember the file pointer + IO_CACHE file; + + mysql_mutex_t data_lock, run_lock, sleep_lock; + mysql_cond_t data_cond, start_cond, stop_cond, sleep_cond; + THD *io_thd; + MYSQL* mysql; + uint32 file_id; /* for 3.23 load data infile */ + Relay_log_info rli; + uint port; + /* + to hold checksum alg in use until IO thread has received FD. + Initialized to novalue, then set to the queried from master + @@global.binlog_checksum and deactivated once FD has been received. + */ + uint8 checksum_alg_before_fd; + uint connect_retry; +#ifndef DBUG_OFF + int events_till_disconnect; +#endif + bool inited; + volatile bool abort_slave; + volatile uint slave_running; + volatile ulong slave_run_id; + /* + The difference in seconds between the clock of the master and the clock of + the slave (second - first). It must be signed as it may be <0 or >0. + clock_diff_with_master is computed when the I/O thread starts; for this the + I/O thread does a SELECT UNIX_TIMESTAMP() on the master. + "how late the slave is compared to the master" is computed like this: + clock_of_slave - last_timestamp_executed_by_SQL_thread - clock_diff_with_master + + */ + long clock_diff_with_master; + /* + Keeps track of the number of events before fsyncing. + The option --sync-master-info determines how many + events should happen before fsyncing. + */ + uint sync_counter; + float heartbeat_period; // interface with CHANGE MASTER or master.info + ulonglong received_heartbeats; // counter of received heartbeat events + DYNAMIC_ARRAY ignore_server_ids; + ulong master_id; +}; +int init_master_info(Master_info* mi, const char* master_info_fname, + const char* slave_info_fname, + bool abort_if_no_master_info_file, + int thread_mask); +void end_master_info(Master_info* mi); +int flush_master_info(Master_info* mi, + bool flush_relay_log_cache, + bool need_lock_relay_log); +int change_master_server_id_cmp(ulong *id1, ulong *id2); + +#endif /* HAVE_REPLICATION */ +#endif /* RPL_MI_H */ diff --git a/database/include/mysql/private/rpl_record.h b/database/include/mysql/private/rpl_record.h new file mode 100644 index 0000000..00eca54 --- /dev/null +++ b/database/include/mysql/private/rpl_record.h @@ -0,0 +1,43 @@ +/* Copyright (c) 2007, 2013, Oracle and/or its affiliates. + Copyright (c) 2008, 2013, SkySQL Ab. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef RPL_RECORD_H +#define RPL_RECORD_H + +#include +#include "my_global.h" /* uchar */ + +class Relay_log_info; +struct TABLE; +typedef struct st_bitmap MY_BITMAP; + +#if !defined(MYSQL_CLIENT) +size_t pack_row(TABLE* table, MY_BITMAP const* cols, + uchar *row_data, const uchar *data); +#endif + +#if !defined(MYSQL_CLIENT) && defined(HAVE_REPLICATION) +int unpack_row(Relay_log_info const *rli, + TABLE *table, uint const colcnt, + uchar const *const row_data, MY_BITMAP const *cols, + uchar const **const curr_row_end, ulong *const master_reclength, + uchar const *const row_end); + +// Fill table's record[0] with default values. +int prepare_record(TABLE *const table, const uint skip, const bool check); +#endif + +#endif diff --git a/database/include/mysql/private/rpl_record_old.h b/database/include/mysql/private/rpl_record_old.h new file mode 100644 index 0000000..43becb6 --- /dev/null +++ b/database/include/mysql/private/rpl_record_old.h @@ -0,0 +1,35 @@ +/* Copyright (c) 2007, 2010, Oracle and/or its affiliates. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef RPL_RECORD_OLD_H +#define RPL_RECORD_OLD_H + +#include "log_event.h" /* Log_event_type */ + +#ifndef MYSQL_CLIENT +size_t pack_row_old(TABLE *table, MY_BITMAP const* cols, + uchar *row_data, const uchar *record); + +#ifdef HAVE_REPLICATION +int unpack_row_old(Relay_log_info *rli, + TABLE *table, uint const colcnt, uchar *record, + uchar const *row, uchar const *row_buffer_end, + MY_BITMAP const *cols, + uchar const **row_end, ulong *master_reclength, + MY_BITMAP* const rw_set, + Log_event_type const event_type); +#endif +#endif +#endif diff --git a/database/include/mysql/private/rpl_reporting.h b/database/include/mysql/private/rpl_reporting.h new file mode 100644 index 0000000..66e3d3a --- /dev/null +++ b/database/include/mysql/private/rpl_reporting.h @@ -0,0 +1,108 @@ +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef RPL_REPORTING_H +#define RPL_REPORTING_H + +#include "my_sys.h" /* loglevel */ + +/** + Maximum size of an error message from a slave thread. + */ +#define MAX_SLAVE_ERRMSG 1024 + +/** + Mix-in to handle the message logging and reporting for relay log + info and master log info structures. + + By inheriting from this class, the class is imbued with + capabilities to do slave reporting. + */ +class Slave_reporting_capability +{ +public: + /** lock used to synchronize m_last_error on 'SHOW SLAVE STATUS' **/ + mutable mysql_mutex_t err_lock; + /** + Constructor. + + @param thread_name Printable name of the slave thread that is reporting. + */ + Slave_reporting_capability(char const *thread_name); + + /** + Writes a message and, if it's an error message, to Last_Error + (which will be displayed by SHOW SLAVE STATUS). + + @param level The severity level + @param err_code The error code + @param msg The message (usually related to the error + code, but can contain more information), in + printf() format. + */ + void report(loglevel level, int err_code, const char *msg, ...) const + ATTRIBUTE_FORMAT(printf, 4, 5); + + /** + Clear errors. They will not show up under SHOW SLAVE + STATUS. + */ + void clear_error() { + mysql_mutex_lock(&err_lock); + m_last_error.clear(); + mysql_mutex_unlock(&err_lock); + } + + /** + Error information structure. + */ + class Error { + friend class Slave_reporting_capability; + public: + Error() + { + clear(); + } + + void clear() + { + number= 0; + message[0]= '\0'; + } + + /** Error code */ + uint32 number; + /** Error message */ + char message[MAX_SLAVE_ERRMSG]; + }; + + Error const& last_error() const { return m_last_error; } + + virtual ~Slave_reporting_capability()= 0; +private: + /** + Last error produced by the I/O or SQL thread respectively. + */ + mutable Error m_last_error; + + char const *const m_thread_name; + + // not implemented + Slave_reporting_capability(const Slave_reporting_capability& rhs); + Slave_reporting_capability& operator=(const Slave_reporting_capability& rhs); +}; + +#endif // RPL_REPORTING_H + diff --git a/database/include/mysql/private/rpl_rli.h b/database/include/mysql/private/rpl_rli.h new file mode 100644 index 0000000..880e9e6 --- /dev/null +++ b/database/include/mysql/private/rpl_rli.h @@ -0,0 +1,593 @@ +/* Copyright (c) 2005, 2017, Oracle and/or its affiliates. + Copyright (c) 2009, 2017, MariaDB Corporation + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef RPL_RLI_H +#define RPL_RLI_H + +#include "rpl_tblmap.h" +#include "rpl_reporting.h" +#include "rpl_utility.h" +#include "log.h" /* LOG_INFO, MYSQL_BIN_LOG */ +#include "sql_class.h" /* THD */ +#include "log_event.h" + +struct RPL_TABLE_LIST; +class Master_info; +extern uint sql_slave_skip_counter; + +/**************************************************************************** + + Replication SQL Thread + + Relay_log_info contains: + - the current relay log + - the current relay log offset + - master log name + - master log sequence corresponding to the last update + - misc information specific to the SQL thread + + Relay_log_info is initialized from the slave.info file if such + exists. Otherwise, data members are intialized with defaults. The + initialization is done with init_relay_log_info() call. + + The format of slave.info file: + + relay_log_name + relay_log_pos + master_log_name + master_log_pos + + To clean up, call end_relay_log_info() + +*****************************************************************************/ + +class Relay_log_info : public Slave_reporting_capability +{ +public: + /** + Flags for the state of the replication. + */ + enum enum_state_flag { + /** The replication thread is inside a statement */ + IN_STMT, + + /** Flag counter. Should always be last */ + STATE_FLAGS_COUNT + }; + + /* + If flag set, then rli does not store its state in any info file. + This is the case only when we execute BINLOG SQL commands inside + a client, non-replication thread. + */ + bool no_storage; + + /* + If true, events with the same server id should be replicated. This + field is set on creation of a relay log info structure by copying + the value of ::replicate_same_server_id and can be overridden if + necessary. For example of when this is done, check sql_binlog.cc, + where the BINLOG statement can be used to execute "raw" events. + */ + bool replicate_same_server_id; + + /*** The following variables can only be read when protect by data lock ****/ + + /* + info_fd - file descriptor of the info file. set only during + initialization or clean up - safe to read anytime + cur_log_fd - file descriptor of the current read relay log + */ + File info_fd,cur_log_fd; + + /* + Protected with internal locks. + Must get data_lock when resetting the logs. + */ + MYSQL_BIN_LOG relay_log; + LOG_INFO linfo; + + /* + cur_log + Pointer that either points at relay_log.get_log_file() or + &rli->cache_buf, depending on whether the log is hot or there was + the need to open a cold relay_log. + + cache_buf + IO_CACHE used when opening cold relay logs. + */ + IO_CACHE cache_buf,*cur_log; + + /* + Keeps track of the number of transactions that commits + before fsyncing. The option --sync-relay-log-info determines + how many transactions should commit before fsyncing. + */ + uint sync_counter; + + /* + Identifies when the recovery process is going on. + See sql/slave.cc:init_recovery for further details. + */ + bool is_relay_log_recovery; + + /* The following variables are safe to read any time */ + + /* IO_CACHE of the info file - set only during init or end */ + IO_CACHE info_file; + + /* + When we restart slave thread we need to have access to the previously + created temporary tables. Modified only on init/end and by the SQL + thread, read only by SQL thread. + */ + TABLE *save_temporary_tables; + + /* + standard lock acquisition order to avoid deadlocks: + run_lock, data_lock, relay_log.LOCK_log, relay_log.LOCK_index + */ + mysql_mutex_t data_lock, run_lock, sleep_lock; + /* + start_cond is broadcast when SQL thread is started + stop_cond - when stopped + data_cond - when data protected by data_lock changes + */ + mysql_cond_t start_cond, stop_cond, data_cond, sleep_cond; + /* parent Master_info structure */ + Master_info *mi; + + /* + Needed to deal properly with cur_log getting closed and re-opened with + a different log under our feet + */ + uint32 cur_log_old_open_count; + + /* + If on init_info() call error_on_rli_init_info is true that means + that previous call to init_info() terminated with an error, RESET + SLAVE must be executed and the problem fixed manually. + */ + bool error_on_rli_init_info; + + /* + Let's call a group (of events) : + - a transaction + or + - an autocommiting query + its associated events (INSERT_ID, + TIMESTAMP...) + We need these rli coordinates : + - relay log name and position of the beginning of the group we currently are + executing. Needed to know where we have to restart when replication has + stopped in the middle of a group (which has been rolled back by the slave). + - relay log name and position just after the event we have just + executed. This event is part of the current group. + Formerly we only had the immediately above coordinates, plus a 'pending' + variable, but this dealt wrong with the case of a transaction starting on a + relay log and finishing (commiting) on another relay log. Case which can + happen when, for example, the relay log gets rotated because of + max_binlog_size. + */ + char group_relay_log_name[FN_REFLEN]; + ulonglong group_relay_log_pos; + char event_relay_log_name[FN_REFLEN]; + ulonglong event_relay_log_pos; + ulonglong future_event_relay_log_pos; + +#ifdef HAVE_valgrind + bool is_fake; /* Mark that this is a fake relay log info structure */ +#endif + + /* + Original log name and position of the group we're currently executing + (whose coordinates are group_relay_log_name/pos in the relay log) + in the master's binlog. These concern the *group*, because in the master's + binlog the log_pos that comes with each event is the position of the + beginning of the group. + */ + char group_master_log_name[FN_REFLEN]; + volatile my_off_t group_master_log_pos; + + /* + Handling of the relay_log_space_limit optional constraint. + ignore_log_space_limit is used to resolve a deadlock between I/O and SQL + threads, the SQL thread sets it to unblock the I/O thread and make it + temporarily forget about the constraint. + */ + ulonglong log_space_limit,log_space_total; + bool ignore_log_space_limit; + + /* + Used by the SQL thread to instructs the IO thread to rotate + the logs when the SQL thread needs to purge to release some + disk space. + */ + bool sql_force_rotate_relay; + + /* + When it commits, InnoDB internally stores the master log position it has + processed so far; the position to store is the one of the end of the + committing event (the COMMIT query event, or the event if in autocommit + mode). + */ +#if MYSQL_VERSION_ID < 40100 + ulonglong future_master_log_pos; +#else + ulonglong future_group_master_log_pos; +#endif + + time_t last_master_timestamp; + + void clear_until_condition(); + + /* + Needed for problems when slave stops and we want to restart it + skipping one or more events in the master log that have caused + errors, and have been manually applied by DBA already. + */ + volatile uint32 slave_skip_counter; + volatile ulong abort_pos_wait; /* Incremented on change master */ + volatile ulong slave_run_id; /* Incremented on slave start */ + mysql_mutex_t log_space_lock; + mysql_cond_t log_space_cond; + THD * sql_thd; +#ifndef DBUG_OFF + int events_till_abort; +#endif + + /* + inited changes its value within LOCK_active_mi-guarded critical + sections at times of start_slave_threads() (0->1) and end_slave() (1->0). + Readers may not acquire the mutex while they realize potential concurrency + issue. + If not set, the value of other members of the structure are undefined. + */ + volatile bool inited; + volatile bool abort_slave; + volatile uint slave_running; + + /* + Condition and its parameters from START SLAVE UNTIL clause. + + UNTIL condition is tested with is_until_satisfied() method that is + called by exec_relay_log_event(). is_until_satisfied() caches the result + of the comparison of log names because log names don't change very often; + this cache is invalidated by parts of code which change log names with + notify_*_log_name_updated() methods. (They need to be called only if SQL + thread is running). + */ + + enum {UNTIL_NONE= 0, UNTIL_MASTER_POS, UNTIL_RELAY_POS} until_condition; + char until_log_name[FN_REFLEN]; + ulonglong until_log_pos; + /* extension extracted from log_name and converted to int */ + ulong until_log_name_extension; + /* + Cached result of comparison of until_log_name and current log name + -2 means unitialised, -1,0,1 are comarison results + */ + enum + { + UNTIL_LOG_NAMES_CMP_UNKNOWN= -2, UNTIL_LOG_NAMES_CMP_LESS= -1, + UNTIL_LOG_NAMES_CMP_EQUAL= 0, UNTIL_LOG_NAMES_CMP_GREATER= 1 + } until_log_names_cmp_result; + + char cached_charset[6]; + /* + trans_retries varies between 0 to slave_transaction_retries and counts how + many times the slave has retried the present transaction; gets reset to 0 + when the transaction finally succeeds. retried_trans is a cumulative + counter: how many times the slave has retried a transaction (any) since + slave started. + */ + ulong trans_retries, retried_trans; + + /* + If the end of the hot relay log is made of master's events ignored by the + slave I/O thread, these two keep track of the coords (in the master's + binlog) of the last of these events seen by the slave I/O thread. If not, + ign_master_log_name_end[0] == 0. + As they are like a Rotate event read/written from/to the relay log, they + are both protected by rli->relay_log.LOCK_log. + */ + char ign_master_log_name_end[FN_REFLEN]; + ulonglong ign_master_log_pos_end; + + /* + Indentifies where the SQL Thread should create temporary files for the + LOAD DATA INFILE. This is used for security reasons. + */ + char slave_patternload_file[FN_REFLEN]; + size_t slave_patternload_file_size; + + Relay_log_info(bool is_slave_recovery); + ~Relay_log_info(); + + /* + Invalidate cached until_log_name and group_relay_log_name comparison + result. Should be called after any update of group_realy_log_name if + there chances that sql_thread is running. + */ + inline void notify_group_relay_log_name_update() + { + if (until_condition==UNTIL_RELAY_POS) + until_log_names_cmp_result= UNTIL_LOG_NAMES_CMP_UNKNOWN; + } + + /* + The same as previous but for group_master_log_name. + */ + inline void notify_group_master_log_name_update() + { + if (until_condition==UNTIL_MASTER_POS) + until_log_names_cmp_result= UNTIL_LOG_NAMES_CMP_UNKNOWN; + } + + inline void inc_event_relay_log_pos() + { + event_relay_log_pos= future_event_relay_log_pos; + } + + void inc_group_relay_log_pos(ulonglong log_pos, + bool skip_lock=0); + + int wait_for_pos(THD* thd, String* log_name, longlong log_pos, + longlong timeout); + void close_temporary_tables(); + + /* Check if UNTIL condition is satisfied. See slave.cc for more. */ + bool is_until_satisfied(THD *thd, Log_event *ev); + inline ulonglong until_pos() + { + return ((until_condition == UNTIL_MASTER_POS) ? group_master_log_pos : + group_relay_log_pos); + } + + RPL_TABLE_LIST *tables_to_lock; /* RBR: Tables to lock */ + uint tables_to_lock_count; /* RBR: Count of tables to lock */ + table_mapping m_table_map; /* RBR: Mapping table-id to table */ + + bool get_table_data(TABLE *table_arg, table_def **tabledef_var, TABLE **conv_table_var) const + { + DBUG_ASSERT(tabledef_var && conv_table_var); + for (TABLE_LIST *ptr= tables_to_lock ; ptr != NULL ; ptr= ptr->next_global) + if (ptr->table == table_arg) + { + *tabledef_var= &static_cast(ptr)->m_tabledef; + *conv_table_var= static_cast(ptr)->m_conv_table; + DBUG_PRINT("debug", ("Fetching table data for table %s.%s:" + " tabledef: %p, conv_table: %p", + table_arg->s->db.str, table_arg->s->table_name.str, + *tabledef_var, *conv_table_var)); + return true; + } + return false; + } + + /* + Last charset (6 bytes) seen by slave SQL thread is cached here; it helps + the thread save 3 get_charset() per Query_log_event if the charset is not + changing from event to event (common situation). + When the 6 bytes are equal to 0 is used to mean "cache is invalidated". + */ + void cached_charset_invalidate(); + bool cached_charset_compare(char *charset) const; + + void cleanup_context(THD *, bool); + void slave_close_thread_tables(THD *); + void clear_tables_to_lock(); + + /* + Used to defer stopping the SQL thread to give it a chance + to finish up the current group of events. + The timestamp is set and reset in @c sql_slave_killed(). + */ + time_t last_event_start_time; + + /* + A container to hold on Intvar-, Rand-, Uservar- log-events in case + the slave is configured with table filtering rules. + The withhold events are executed when their parent Query destiny is + determined for execution as well. + */ + Deferred_log_events *deferred_events; + + /* + State of the container: true stands for IRU events gathering, + false does for execution, either deferred or direct. + */ + bool deferred_events_collecting; + + /* + Returns true if the argument event resides in the containter; + more specifically, the checking is done against the last added event. + */ + bool is_deferred_event(Log_event * ev) + { + return deferred_events_collecting ? deferred_events->is_last(ev) : false; + }; + /* The general cleanup that slave applier may need at the end of query. */ + inline void cleanup_after_query() + { + if (deferred_events) + deferred_events->rewind(); + }; + /* The general cleanup that slave applier may need at the end of session. */ + void cleanup_after_session() + { + if (deferred_events) + delete deferred_events; + }; + + /** + Helper function to do after statement completion. + + This function is called from an event to complete the group by + either stepping the group position, if the "statement" is not + inside a transaction; or increase the event position, if the + "statement" is inside a transaction. + + @param event_log_pos + Master log position of the event. The position is recorded in the + relay log info and used to produce information for SHOW + SLAVE STATUS. + + @param event_creation_time + Timestamp for the creation of the event on the master side. The + time stamp is recorded in the relay log info and used to compute + the Seconds_behind_master field. + */ + void stmt_done(my_off_t event_log_pos, + time_t event_creation_time); + + + /** + Set the value of a replication state flag. + + @param flag Flag to set + */ + void set_flag(enum_state_flag flag) + { + m_flags |= (1UL << flag); + } + + /** + Get the value of a replication state flag. + + @param flag Flag to get value of + + @return @c true if the flag was set, @c false otherwise. + */ + bool get_flag(enum_state_flag flag) + { + return m_flags & (1UL << flag); + } + + /** + Clear the value of a replication state flag. + + @param flag Flag to clear + */ + void clear_flag(enum_state_flag flag) + { + m_flags &= ~(1UL << flag); + } + + /** + Is the replication inside a group? + + Replication is inside a group if either: + - The OPTION_BEGIN flag is set, meaning we're inside a transaction + - The RLI_IN_STMT flag is set, meaning we're inside a statement + + @retval true Replication thread is currently inside a group + @retval false Replication thread is currently not inside a group + */ + bool is_in_group() const { + return (sql_thd->variables.option_bits & OPTION_BEGIN) || + (m_flags & (1UL << IN_STMT)); + } + + /** + Save pointer to Annotate_rows event and switch on the + binlog_annotate_row_events for this sql thread. + To be called when sql thread recieves an Annotate_rows event. + */ + inline void set_annotate_event(Annotate_rows_log_event *event) + { + free_annotate_event(); + m_annotate_event= event; + sql_thd->variables.binlog_annotate_row_events= 1; + } + + /** + Returns pointer to the saved Annotate_rows event or NULL if there is + no saved event. + */ + inline Annotate_rows_log_event* get_annotate_event() + { + return m_annotate_event; + } + + /** + Delete saved Annotate_rows event (if any) and switch off the + binlog_annotate_row_events for this sql thread. + To be called when sql thread has applied the last (i.e. with + STMT_END_F flag) rbr event. + */ + inline void free_annotate_event() + { + if (m_annotate_event) + { + sql_thd->variables.binlog_annotate_row_events= 0; + delete m_annotate_event; + m_annotate_event= 0; + } + } + + time_t get_row_stmt_start_timestamp() + { + return row_stmt_start_timestamp; + } + + time_t set_row_stmt_start_timestamp() + { + if (row_stmt_start_timestamp == 0) + row_stmt_start_timestamp= my_time(0); + + return row_stmt_start_timestamp; + } + + void reset_row_stmt_start_timestamp() + { + row_stmt_start_timestamp= 0; + } + + void set_long_find_row_note_printed() + { + long_find_row_note_printed= true; + } + + void unset_long_find_row_note_printed() + { + long_find_row_note_printed= false; + } + + bool is_long_find_row_note_printed() + { + return long_find_row_note_printed; + } + +private: + + uint32 m_flags; + + /* + Runtime state for printing a note when slave is taking + too long while processing a row event. + */ + time_t row_stmt_start_timestamp; + bool long_find_row_note_printed; + + Annotate_rows_log_event *m_annotate_event; +}; + + +// Defined in rpl_rli.cc +int init_relay_log_info(Relay_log_info* rli, const char* info_fname); + + +#endif /* RPL_RLI_H */ diff --git a/database/include/mysql/private/rpl_tblmap.h b/database/include/mysql/private/rpl_tblmap.h new file mode 100644 index 0000000..a779094 --- /dev/null +++ b/database/include/mysql/private/rpl_tblmap.h @@ -0,0 +1,112 @@ +/* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef TABLE_MAPPING_H +#define TABLE_MAPPING_H + +/* Forward declarations */ +#ifndef MYSQL_CLIENT +struct TABLE; +#else +class Table_map_log_event; +typedef Table_map_log_event TABLE; +void free_table_map_log_event(TABLE *table); +#endif + + +/* + CLASS table_mapping + + RESPONSIBILITIES + The table mapping is used to map table id's to table pointers + + COLLABORATION + RELAY_LOG For mapping table id:s to tables when receiving events. + */ + +/* + Guilhem to Mats: + in the table_mapping class, the memory is allocated and never freed (until + destruction). So this is a good candidate for allocating inside a MEM_ROOT: + it gives the efficient allocation in chunks (like in expand()). So I have + introduced a MEM_ROOT. + + Note that inheriting from Sql_alloc had no effect: it has effects only when + "ptr= new table_mapping" is called, and this is never called. And it would + then allocate from thd->mem_root which is a highly volatile object (reset + from example after executing each query, see dispatch_command(), it has a + free_root() at end); as the table_mapping object is supposed to live longer + than a query, it was dangerous. + A dedicated MEM_ROOT needs to be used, see below. +*/ + +#include "hash.h" /* HASH */ + +class table_mapping { + +private: + MEM_ROOT m_mem_root; + +public: + + enum enum_error { + ERR_NO_ERROR = 0, + ERR_LIMIT_EXCEEDED, + ERR_MEMORY_ALLOCATION + }; + + table_mapping(); + ~table_mapping(); + + TABLE* get_table(ulong table_id); + + int set_table(ulong table_id, TABLE* table); + int remove_table(ulong table_id); + void clear_tables(); + ulong count() const { return m_table_ids.records; } + +private: + /* + This is a POD (Plain Old Data). Keep it that way (we apply offsetof() to + it, which only works for PODs) + */ + struct entry { + ulong table_id; + union { + TABLE *table; + entry *next; + }; + }; + + entry *find_entry(ulong table_id) + { + return (entry *) my_hash_search(&m_table_ids, + (uchar*)&table_id, + sizeof(table_id)); + } + int expand(); + + /* + Head of the list of free entries; "free" in the sense that it's an + allocated entry free for use, NOT in the sense that it's freed + memory. + */ + entry *m_free; + + /* Correspondance between an id (a number) and a TABLE object */ + HASH m_table_ids; +}; + +#endif diff --git a/database/include/mysql/private/rpl_utility.h b/database/include/mysql/private/rpl_utility.h new file mode 100644 index 0000000..6f3488c --- /dev/null +++ b/database/include/mysql/private/rpl_utility.h @@ -0,0 +1,296 @@ +/* + Copyright (c) 2006, 2010, Oracle and/or its affiliates. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef RPL_UTILITY_H +#define RPL_UTILITY_H + +#ifndef __cplusplus +#error "Don't include this C++ header file from a non-C++ file!" +#endif + +#include "sql_priv.h" +#include "m_string.h" /* bzero, memcpy */ +#ifdef MYSQL_SERVER +#include "table.h" /* TABLE_LIST */ +#endif +#include "mysql_com.h" + +class Relay_log_info; +class Log_event; + +/** + A table definition from the master. + + The responsibilities of this class is: + - Extract and decode table definition data from the table map event + - Check if table definition in table map is compatible with table + definition on slave + */ + +class table_def +{ +public: + /** + Constructor. + + @param types Array of types, each stored as a byte + @param size Number of elements in array 'types' + @param field_metadata Array of extra information about fields + @param metadata_size Size of the field_metadata array + @param null_bitmap The bitmap of fields that can be null + */ + table_def(unsigned char *types, ulong size, uchar *field_metadata, + int metadata_size, uchar *null_bitmap, uint16 flags); + + ~table_def(); + + /** + Return the number of fields there is type data for. + + @return The number of fields that there is type data for. + */ + ulong size() const { return m_size; } + + + /* + Return a representation of the type data for one field. + + @param index Field index to return data for + + @return Will return a representation of the type data for field + index. Currently, only the type identifier is + returned. + */ + enum_field_types type(ulong index) const + { + DBUG_ASSERT(index < m_size); + /* + If the source type is MYSQL_TYPE_STRING, it can in reality be + either MYSQL_TYPE_STRING, MYSQL_TYPE_ENUM, or MYSQL_TYPE_SET, so + we might need to modify the type to get the real type. + */ + enum_field_types source_type= static_cast(m_type[index]); + uint16 source_metadata= m_field_metadata[index]; + switch (source_type) + { + case MYSQL_TYPE_STRING: + { + int real_type= source_metadata >> 8; + if (real_type == MYSQL_TYPE_ENUM || real_type == MYSQL_TYPE_SET) + source_type= static_cast(real_type); + break; + } + + /* + This type has not been used since before row-based replication, + so we can safely assume that it really is MYSQL_TYPE_NEWDATE. + */ + case MYSQL_TYPE_DATE: + source_type= MYSQL_TYPE_NEWDATE; + break; + + default: + /* Do nothing */ + break; + } + + return source_type; + } + + + /* + This function allows callers to get the extra field data from the + table map for a given field. If there is no metadata for that field + or there is no extra metadata at all, the function returns 0. + + The function returns the value for the field metadata for column at + position indicated by index. As mentioned, if the field was a type + that stores field metadata, that value is returned else zero (0) is + returned. This method is used in the unpack() methods of the + corresponding fields to properly extract the data from the binary log + in the event that the master's field is smaller than the slave. + */ + uint16 field_metadata(uint index) const + { + DBUG_ASSERT(index < m_size); + if (m_field_metadata_size) + return m_field_metadata[index]; + else + return 0; + } + + /* + This function returns whether the field on the master can be null. + This value is derived from field->maybe_null(). + */ + my_bool maybe_null(uint index) const + { + DBUG_ASSERT(index < m_size); + return ((m_null_bits[(index / 8)] & + (1 << (index % 8))) == (1 << (index %8))); + } + + /* + This function returns the field size in raw bytes based on the type + and the encoded field data from the master's raw data. This method can + be used for situations where the slave needs to skip a column (e.g., + WL#3915) or needs to advance the pointer for the fields in the raw + data from the master to a specific column. + */ + uint32 calc_field_size(uint col, uchar *master_data) const; + + /** + Decide if the table definition is compatible with a table. + + Compare the definition with a table to see if it is compatible + with it. + + A table definition is compatible with a table if: + - The columns types of the table definition is a (not + necessarily proper) prefix of the column type of the table. + + - The other way around. + + - Each column on the master that also exists on the slave can be + converted according to the current settings of @c + SLAVE_TYPE_CONVERSIONS. + + @param thd + @param rli Pointer to relay log info + @param table Pointer to table to compare with. + + @param[out] tmp_table_var Pointer to temporary table for holding + conversion table. + + @retval 1 if the table definition is not compatible with @c table + @retval 0 if the table definition is compatible with @c table + */ +#ifndef MYSQL_CLIENT + bool compatible_with(THD *thd, Relay_log_info *rli, TABLE *table, + TABLE **conv_table_var) const; + + /** + Create a virtual in-memory temporary table structure. + + The table structure has records and field array so that a row can + be unpacked into the record for further processing. + + In the virtual table, each field that requires conversion will + have a non-NULL value, while fields that do not require + conversion will have a NULL value. + + Some information that is missing in the events, such as the + character set for string types, are taken from the table that the + field is going to be pushed into, so the target table that the data + eventually need to be pushed into need to be supplied. + + @param thd Thread to allocate memory from. + @param rli Relay log info structure, for error reporting. + @param target_table Target table for fields. + + @return A pointer to a temporary table with memory allocated in the + thread's memroot, NULL if the table could not be created + */ + TABLE *create_conversion_table(THD *thd, Relay_log_info *rli, TABLE *target_table) const; +#endif + + +private: + ulong m_size; // Number of elements in the types array + unsigned char *m_type; // Array of type descriptors + uint m_field_metadata_size; + uint16 *m_field_metadata; + uchar *m_null_bits; + uint16 m_flags; // Table flags + uchar *m_memory; +}; + + +#ifndef MYSQL_CLIENT +/** + Extend the normal table list with a few new fields needed by the + slave thread, but nowhere else. + */ +struct RPL_TABLE_LIST + : public TABLE_LIST +{ + bool m_tabledef_valid; + table_def m_tabledef; + TABLE *m_conv_table; +}; + + +/* Anonymous namespace for template functions/classes */ +CPP_UNNAMED_NS_START + + /* + Smart pointer that will automatically call my_afree (a macro) when + the pointer goes out of scope. This is used so that I do not have + to remember to call my_afree() before each return. There is no + overhead associated with this, since all functions are inline. + + I (Matz) would prefer to use the free function as a template + parameter, but that is not possible when the "function" is a + macro. + */ + template + class auto_afree_ptr + { + Obj* m_ptr; + public: + auto_afree_ptr(Obj* ptr) : m_ptr(ptr) { } + ~auto_afree_ptr() { if (m_ptr) my_afree(m_ptr); } + void assign(Obj* ptr) { + /* Only to be called if it hasn't been given a value before. */ + DBUG_ASSERT(m_ptr == NULL); + m_ptr= ptr; + } + Obj* get() { return m_ptr; } + }; + +CPP_UNNAMED_NS_END + +class Deferred_log_events +{ +private: + DYNAMIC_ARRAY array; + Log_event *last_added; + +public: + Deferred_log_events(Relay_log_info *rli); + ~Deferred_log_events(); + /* queue for exection at Query-log-event time prior the Query */ + int add(Log_event *ev); + bool is_empty(); + bool execute(Relay_log_info *rli); + void rewind(); + bool is_last(Log_event *ev) { return ev == last_added; }; +}; + +#endif + +// NB. number of printed bit values is limited to sizeof(buf) - 1 +#define DBUG_PRINT_BITSET(N,FRM,BS) \ + do { \ + char buf[256]; \ + uint i; \ + for (i = 0 ; i < min(sizeof(buf) - 1, (BS)->n_bits) ; i++) \ + buf[i] = bitmap_is_set((BS), i) ? '1' : '0'; \ + buf[i] = '\0'; \ + DBUG_PRINT((N), ((FRM), buf)); \ + } while (0) + +#endif /* RPL_UTILITY_H */ diff --git a/database/include/mysql/private/scheduler.h b/database/include/mysql/private/scheduler.h new file mode 100644 index 0000000..72ab191 --- /dev/null +++ b/database/include/mysql/private/scheduler.h @@ -0,0 +1,111 @@ +#ifndef SCHEDULER_INCLUDED +#define SCHEDULER_INCLUDED + +/* Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2012, Monty Program Ab + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* + Classes for the thread scheduler +*/ + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface +#endif + +#include + +class THD; + +/* Functions used when manipulating threads */ + +struct scheduler_functions +{ + uint max_threads, *connection_count; + ulong *max_connections; + bool (*init)(void); + bool (*init_new_connection_thread)(void); + void (*add_connection)(THD *thd); + void (*thd_wait_begin)(THD *thd, int wait_type); + void (*thd_wait_end)(THD *thd); + void (*post_kill_notification)(THD *thd); + bool (*end_thread)(THD *thd, bool cache_thread); + void (*end)(void); +}; + + +/** + Scheduler types enumeration. + + The default of --thread-handling is the first one in the + thread_handling_names array, this array has to be consistent with + the order in this array, so to change default one has to change the + first entry in this enum and the first entry in the + thread_handling_names array. + + @note The last entry of the enumeration is also used to mark the + thread handling as dynamic. In this case the name of the thread + handling is fetched from the name of the plugin that implements it. +*/ +enum scheduler_types +{ + /* + The default of --thread-handling is the first one in the + thread_handling_names array, this array has to be consistent with + the order in this array, so to change default one has to change + the first entry in this enum and the first entry in the + thread_handling_names array. + */ + SCHEDULER_ONE_THREAD_PER_CONNECTION=0, + SCHEDULER_NO_THREADS, + SCHEDULER_TYPES_COUNT +}; + +void one_thread_per_connection_scheduler(scheduler_functions *func, + ulong *arg_max_connections, uint *arg_connection_count); +void one_thread_scheduler(scheduler_functions *func); + +extern void scheduler_init(); +extern void post_kill_notification(THD *); +/* + To be used for pool-of-threads (implemeneted differently on various OSs) +*/ +struct thd_scheduler +{ +public: + /* + Thread instrumentation for the user job. + This member holds the instrumentation while the user job is not run + by a thread. + + Note that this member is not conditionally declared + (ifdef HAVE_PSI_INTERFACE), because doing so will change the binary + layout of THD, which is exposed to plugin code that may be compiled + differently. + */ + PSI_thread *m_psi; + void *data; /* scheduler-specific data structure */ +}; + +#ifdef HAVE_POOL_OF_THREADS +void pool_of_threads_scheduler(scheduler_functions* func, + ulong *arg_max_connections, + uint *arg_connection_count); +#else +#define pool_of_threads_scheduler(A,B,C) \ + one_thread_per_connection_scheduler(A, B, C) +#endif /*HAVE_POOL_OF_THREADS*/ + +#endif /* SCHEDULER_INCLUDED */ diff --git a/database/include/mysql/private/service_versions.h b/database/include/mysql/private/service_versions.h new file mode 100644 index 0000000..9bb14d5 --- /dev/null +++ b/database/include/mysql/private/service_versions.h @@ -0,0 +1,30 @@ +/* Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifdef _WIN32 +#define SERVICE_VERSION __declspec(dllexport) void * +#else +#define SERVICE_VERSION void * +#endif + +#define VERSION_my_snprintf 0x0100 +#define VERSION_thd_alloc 0x0100 +#define VERSION_thd_wait 0x0100 +#define VERSION_my_thread_scheduler 0x0100 +#define VERSION_progress_report 0x0100 +#define VERSION_debug_sync 0x1000 +#define VERSION_kill_statement 0x1000 +#define VERSION_logger 0x0100 + diff --git a/database/include/mysql/private/set_var.h b/database/include/mysql/private/set_var.h new file mode 100644 index 0000000..58ee7a2 --- /dev/null +++ b/database/include/mysql/private/set_var.h @@ -0,0 +1,331 @@ +#ifndef SET_VAR_INCLUDED +#define SET_VAR_INCLUDED +/* Copyright (c) 2002, 2013, Oracle and/or its affiliates. + Copyright (c) 2009, 2014, SkySQL Ab. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +/** + @file + "public" interface to sys_var - server configuration variables. +*/ + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif + +#include + +class sys_var; +class set_var; +class sys_var_pluginvar; +class PolyLock; +class Item_func_set_user_var; + +// This include needs to be here since item.h requires enum_var_type :-P +#include "item.h" /* Item */ +#include "sql_class.h" /* THD */ + +extern TYPELIB bool_typelib; + +struct sys_var_chain +{ + sys_var *first; + sys_var *last; +}; + +int mysql_add_sys_var_chain(sys_var *chain); +int mysql_del_sys_var_chain(sys_var *chain); + +/** + A class representing one system variable - that is something + that can be accessed as @@global.variable_name or @@session.variable_name, + visible in SHOW xxx VARIABLES and in INFORMATION_SCHEMA.xxx_VARIABLES, + optionally it can be assigned to, optionally it can have a command-line + counterpart with the same name. +*/ +class sys_var +{ +public: + sys_var *next; + LEX_CSTRING name; + enum flag_enum { GLOBAL, SESSION, ONLY_SESSION, SCOPE_MASK=1023, + READONLY=1024, ALLOCATED=2048, PARSE_EARLY=4096 }; + /** + Enumeration type to indicate for a system variable whether + it will be written to the binlog or not. + */ + enum binlog_status_enum { VARIABLE_NOT_IN_BINLOG, + SESSION_VARIABLE_IN_BINLOG } binlog_status; + +protected: + typedef bool (*on_check_function)(sys_var *self, THD *thd, set_var *var); + typedef bool (*on_update_function)(sys_var *self, THD *thd, enum_var_type type); + + int flags; ///< or'ed flag_enum values + const SHOW_TYPE show_val_type; ///< what value_ptr() returns for sql_show.cc + my_option option; ///< min, max, default values are stored here + PolyLock *guard; ///< *second* lock that protects the variable + ptrdiff_t offset; ///< offset to the value from global_system_variables + on_check_function on_check; + on_update_function on_update; + const char *const deprecation_substitute; + bool is_os_charset; ///< true if the value is in character_set_filesystem + +public: + sys_var(sys_var_chain *chain, const char *name_arg, const char *comment, + int flag_args, ptrdiff_t off, int getopt_id, + enum get_opt_arg_type getopt_arg_type, SHOW_TYPE show_val_type_arg, + longlong def_val, PolyLock *lock, enum binlog_status_enum binlog_status_arg, + on_check_function on_check_func, on_update_function on_update_func, + const char *substitute); + + virtual ~sys_var() {} + + /** + All the cleanup procedures should be performed here + */ + virtual void cleanup() {} + /** + downcast for sys_var_pluginvar. Returns this if it's an instance + of sys_var_pluginvar, and 0 otherwise. + */ + virtual sys_var_pluginvar *cast_pluginvar() { return 0; } + + bool check(THD *thd, set_var *var); + uchar *value_ptr(THD *thd, enum_var_type type, LEX_STRING *base); + + /** + Update the system variable with the default value from either + session or global scope. The default value is stored in the + 'var' argument. Return false when successful. + */ + bool set_default(THD *thd, set_var *var); + bool update(THD *thd, set_var *var); + + SHOW_TYPE show_type() { return show_val_type; } + int scope() const { return flags & SCOPE_MASK; } + CHARSET_INFO *charset(THD *thd); + bool is_readonly() const { return flags & READONLY; } + /** + the following is only true for keycache variables, + that support the syntax @@keycache_name.variable_name + */ + bool is_struct() { return option.var_type & GET_ASK_ADDR; } + bool is_written_to_binlog(enum_var_type type) + { return type != OPT_GLOBAL && binlog_status == SESSION_VARIABLE_IN_BINLOG; } + virtual bool check_update_type(Item_result type) = 0; + bool check_type(enum_var_type type) + { + switch (scope()) + { + case GLOBAL: return type != OPT_GLOBAL; + case SESSION: return false; // always ok + case ONLY_SESSION: return type == OPT_GLOBAL; + } + return true; // keep gcc happy + } + bool register_option(DYNAMIC_ARRAY *array, int parse_flags) + { + return (option.id != -1) && ((flags & PARSE_EARLY) == parse_flags) && + insert_dynamic(array, (uchar*)&option); + } + void do_deprecated_warning(THD *thd); + +private: + virtual bool do_check(THD *thd, set_var *var) = 0; + /** + save the session default value of the variable in var + */ + virtual void session_save_default(THD *thd, set_var *var) = 0; + /** + save the global default value of the variable in var + */ + virtual void global_save_default(THD *thd, set_var *var) = 0; + virtual bool session_update(THD *thd, set_var *var) = 0; + virtual bool global_update(THD *thd, set_var *var) = 0; + +protected: + /** + A pointer to a value of the variable for SHOW. + It must be of show_val_type type (bool for SHOW_BOOL, int for SHOW_INT, + longlong for SHOW_LONGLONG, etc). + */ + virtual uchar *session_value_ptr(THD *thd, LEX_STRING *base); + virtual uchar *global_value_ptr(THD *thd, LEX_STRING *base); + + /** + A pointer to a storage area of the variable, to the raw data. + Typically it's the same as session_value_ptr(), but it's different, + for example, for ENUM, that is printed as a string, but stored as a number. + */ + uchar *session_var_ptr(THD *thd) + { return ((uchar*)&(thd->variables)) + offset; } + + uchar *global_var_ptr() + { return ((uchar*)&global_system_variables) + offset; } +}; + +#include "sql_plugin.h" /* SHOW_HA_ROWS, SHOW_MY_BOOL */ + + +/**************************************************************************** + Classes for parsing of the SET command +****************************************************************************/ + +/** + A base class for everything that can be set with SET command. + It's similar to Items, an instance of this is created by the parser + for every assigmnent in SET (or elsewhere, e.g. in SELECT). +*/ +class set_var_base :public Sql_alloc +{ +public: + set_var_base() {} + virtual ~set_var_base() {} + virtual int check(THD *thd)=0; /* To check privileges etc. */ + virtual int update(THD *thd)=0; /* To set the value */ + virtual int light_check(THD *thd) { return check(thd); } /* for PS */ +}; + + +/** + set_var_base descendant for assignments to the system variables. +*/ +class set_var :public set_var_base +{ +public: + sys_var *var; ///< system variable to be updated + Item *value; ///< the expression that provides the new value of the variable + enum_var_type type; + union ///< temp storage to hold a value between sys_var::check and ::update + { + ulonglong ulonglong_value; ///< for unsigned integer, set, enum sysvars + longlong longlong_value; ///< for signed integer + double double_value; ///< for Sys_var_double + plugin_ref plugin; ///< for Sys_var_plugin + Time_zone *time_zone; ///< for Sys_var_tz + LEX_STRING string_value; ///< for Sys_var_charptr and others + const void *ptr; ///< for Sys_var_struct + } save_result; + LEX_STRING base; /**< for structured variables, like keycache_name.variable_name */ + + set_var(enum_var_type type_arg, sys_var *var_arg, + const LEX_STRING *base_name_arg, Item *value_arg) + :var(var_arg), type(type_arg), base(*base_name_arg) + { + /* + If the set value is a field, change it to a string to allow things like + SET table_type=MYISAM; + */ + if (value_arg && value_arg->type() == Item::FIELD_ITEM) + { + Item_field *item= (Item_field*) value_arg; + if (!(value=new Item_string(item->field_name, + (uint) strlen(item->field_name), + system_charset_info))) // names are utf8 + value=value_arg; /* Give error message later */ + } + else + value=value_arg; + } + int check(THD *thd); + int update(THD *thd); + int light_check(THD *thd); +}; + + +/* User variables like @my_own_variable */ +class set_var_user: public set_var_base +{ + Item_func_set_user_var *user_var_item; +public: + set_var_user(Item_func_set_user_var *item) + :user_var_item(item) + {} + int check(THD *thd); + int update(THD *thd); + int light_check(THD *thd); +}; + +/* For SET PASSWORD */ + +class set_var_password: public set_var_base +{ + LEX_USER *user; + char *password; +public: + set_var_password(LEX_USER *user_arg,char *password_arg) + :user(user_arg), password(password_arg) + {} + int check(THD *thd); + int update(THD *thd); +}; + + +/* For SET NAMES and SET CHARACTER SET */ + +class set_var_collation_client: public set_var_base +{ + CHARSET_INFO *character_set_client; + CHARSET_INFO *character_set_results; + CHARSET_INFO *collation_connection; +public: + set_var_collation_client(CHARSET_INFO *client_coll_arg, + CHARSET_INFO *connection_coll_arg, + CHARSET_INFO *result_coll_arg) + :character_set_client(client_coll_arg), + character_set_results(result_coll_arg), + collation_connection(connection_coll_arg) + {} + int check(THD *thd); + int update(THD *thd); +}; + + +/* optional things, have_* variables */ +extern SHOW_COMP_OPTION have_csv, have_innodb; +extern SHOW_COMP_OPTION have_ndbcluster, have_partitioning; +extern SHOW_COMP_OPTION have_profiling; + +extern SHOW_COMP_OPTION have_ssl, have_symlink, have_dlopen; +extern SHOW_COMP_OPTION have_query_cache; +extern SHOW_COMP_OPTION have_geometry, have_rtree_keys; +extern SHOW_COMP_OPTION have_crypt; +extern SHOW_COMP_OPTION have_compress; + +/* + Prototypes for helper functions +*/ + +SHOW_VAR* enumerate_sys_vars(THD *thd, bool sorted, enum enum_var_type type); + +sys_var *find_sys_var(THD *thd, const char *str, uint length=0); +int sql_set_variables(THD *thd, List *var_list); + +bool fix_delay_key_write(sys_var *self, THD *thd, enum_var_type type); + +ulonglong expand_sql_mode(ulonglong sql_mode); +bool sql_mode_string_representation(THD *thd, ulonglong sql_mode, LEX_STRING *ls); + +extern sys_var *Sys_autocommit_ptr; + +CHARSET_INFO *get_old_charset_by_name(const char *old_name); + +int sys_var_init(); +int sys_var_add_options(DYNAMIC_ARRAY *long_options, int parse_flags); +void sys_var_end(void); + +#endif + diff --git a/database/include/mysql/private/sha1.h b/database/include/mysql/private/sha1.h new file mode 100644 index 0000000..ac6c22a --- /dev/null +++ b/database/include/mysql/private/sha1.h @@ -0,0 +1,105 @@ +#ifndef SHA1_INCLUDED +#define SHA1_INCLUDED + +/* Copyright (c) 2002, 2006 MySQL AB, 2009 Sun Microsystems, Inc. + Use is subject to license terms. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA +*/ + +/* + This is the header file for code which implements the Secure + Hashing Algorithm 1 as defined in FIPS PUB 180-1 published + April 17, 1995. + + Many of the variable names in this code, especially the + single character names, were used because those were the names + used in the publication. + + Please read the file sha1.c for more information. + + Modified 2002 by Peter Zaitsev to better follow MySQL standards + + Original Source from: http://www.faqs.org/rfcs/rfc3174.html + + Copyright (C) The Internet Society (2001). All Rights Reserved. + + This document and translations of it may be copied and furnished to + others, and derivative works that comment on or otherwise explain it + or assist in its implementation may be prepared, copied, published + and distributed, in whole or in part, without restriction of any + kind, provided that the above copyright notice and this paragraph are + included on all such copies and derivative works. However, this + document itself may not be modified in any way, such as by removing + the copyright notice or references to the Internet Society or other + Internet organizations, except as needed for the purpose of + developing Internet standards in which case the procedures for + copyrights defined in the Internet Standards process must be + followed, or as required to translate it into languages other than + English. + + The limited permissions granted above are perpetual and will not be + revoked by the Internet Society or its successors or assigns. + + This document and the information contained herein is provided on an + "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING + TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION + HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF + MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + + Acknowledgement + Funding for the RFC Editor function is currently provided by the + Internet Society. +*/ + + +enum sha_result_codes +{ + SHA_SUCCESS = 0, + SHA_NULL, /* Null pointer parameter */ + SHA_INPUT_TOO_LONG, /* input data too long */ + SHA_STATE_ERROR /* called Input after Result */ +}; + +#define SHA1_HASH_SIZE 20 /* Hash size in bytes */ + +/* + This structure will hold context information for the SHA-1 + hashing operation +*/ + +typedef struct SHA1_CONTEXT +{ + ulonglong Length; /* Message length in bits */ + uint32 Intermediate_Hash[SHA1_HASH_SIZE/4]; /* Message Digest */ + int Computed; /* Is the digest computed? */ + int Corrupted; /* Is the message digest corrupted? */ + int16 Message_Block_Index; /* Index into message block array */ + uint8 Message_Block[64]; /* 512-bit message blocks */ +} SHA1_CONTEXT; + +/* + Function Prototypes +*/ + +C_MODE_START + +int mysql_sha1_reset(SHA1_CONTEXT*); +int mysql_sha1_input(SHA1_CONTEXT*, const uint8 *, unsigned int); +int mysql_sha1_result(SHA1_CONTEXT* , uint8 Message_Digest[SHA1_HASH_SIZE]); + +C_MODE_END + +#endif /* SHA__INCLUDED */ diff --git a/database/include/mysql/private/sha2.h b/database/include/mysql/private/sha2.h new file mode 100644 index 0000000..4b63847 --- /dev/null +++ b/database/include/mysql/private/sha2.h @@ -0,0 +1,72 @@ +/* Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef included_sha2_h +#define included_sha2_h + +#include + +#if defined(HAVE_YASSL) || defined(HAVE_OPENSSL) + +# ifdef HAVE_STDDEF_H +# include +# endif + +# ifndef HAVE_YASSL +# include + +# else + +#include "../extra/yassl/taocrypt/include/sha.hpp" + +# ifdef __cplusplus +extern "C" { +# endif + +#ifndef SHA512_DIGEST_LENGTH +#define SHA512_DIGEST_LENGTH TaoCrypt::SHA512::DIGEST_SIZE +#endif + +#ifndef SHA384_DIGEST_LENGTH +#define SHA384_DIGEST_LENGTH TaoCrypt::SHA384::DIGEST_SIZE +#endif + +#ifndef SHA256_DIGEST_LENGTH +#define SHA256_DIGEST_LENGTH TaoCrypt::SHA256::DIGEST_SIZE +#endif + +#ifndef SHA224_DIGEST_LENGTH +#define SHA224_DIGEST_LENGTH TaoCrypt::SHA224::DIGEST_SIZE +#endif + +#define GEN_YASSL_SHA2_BRIDGE(size) \ +unsigned char* SHA##size(const unsigned char *input_ptr, size_t input_length, \ + char unsigned *output_ptr); + +GEN_YASSL_SHA2_BRIDGE(512); +GEN_YASSL_SHA2_BRIDGE(384); +GEN_YASSL_SHA2_BRIDGE(256); +GEN_YASSL_SHA2_BRIDGE(224); + +#undef GEN_YASSL_SHA2_BRIDGE + +# ifdef __cplusplus +} +# endif + +# endif /* HAVE_YASSL */ + +#endif /* HAVE_OPENSSL || HAVE_YASSL */ +#endif /* included_sha2_h */ diff --git a/database/include/mysql/private/slave.h b/database/include/mysql/private/slave.h new file mode 100644 index 0000000..99a400b --- /dev/null +++ b/database/include/mysql/private/slave.h @@ -0,0 +1,257 @@ +/* Copyright (c) 2000, 2016, Oracle and/or its affiliates. + Copyright (c) 2009, 2016, MariaDB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef SLAVE_H +#define SLAVE_H + +/** + @defgroup Replication Replication + @{ + + @file +*/ + +/** + Some of defines are need in parser even though replication is not + compiled in (embedded). +*/ + +/** + The maximum is defined as (ULONG_MAX/1000) with 4 bytes ulong +*/ +#define SLAVE_MAX_HEARTBEAT_PERIOD 4294967 + +#ifdef HAVE_REPLICATION + +#include "log.h" +#include "my_list.h" +#include "rpl_filter.h" +#include "rpl_tblmap.h" + +#define SLAVE_NET_TIMEOUT 3600 + +#define MAX_SLAVE_ERROR 2000 + +// Forward declarations +class Relay_log_info; +class Master_info; + +int init_intvar_from_file(int* var, IO_CACHE* f, int default_val); +int init_strvar_from_file(char *var, int max_size, IO_CACHE *f, + const char *default_val); +int init_floatvar_from_file(float* var, IO_CACHE* f, float default_val); +int init_dynarray_intvar_from_file(DYNAMIC_ARRAY* arr, IO_CACHE* f); + +/***************************************************************************** + + MySQL Replication + + Replication is implemented via two types of threads: + + I/O Thread - One of these threads is started for each master server. + They maintain a connection to their master server, read log + events from the master as they arrive, and queues them into + a single, shared relay log file. A Master_info + represents each of these threads. + + SQL Thread - One of these threads is started and reads from the relay log + file, executing each event. A Relay_log_info + represents this thread. + + Buffering in the relay log file makes it unnecessary to reread events from + a master server across a slave restart. It also decouples the slave from + the master where long-running updates and event logging are concerned--ie + it can continue to log new events while a slow query executes on the slave. + +*****************************************************************************/ + +/* + MUTEXES in replication: + + LOCK_active_mi: [note: this was originally meant for multimaster, to switch + from a master to another, to protect active_mi] It is used to SERIALIZE ALL + administrative commands of replication: START SLAVE, STOP SLAVE, CHANGE + MASTER, RESET SLAVE, end_slave() (when mysqld stops) [init_slave() does not + need it it's called early]. Any of these commands holds the mutex from the + start till the end. This thus protects us against a handful of deadlocks + (consider start_slave_thread() which, when starting the I/O thread, releases + mi->run_lock, keeps rli->run_lock, and tries to re-acquire mi->run_lock). + + Currently active_mi never moves (it's created at startup and deleted at + shutdown, and not changed: it always points to the same Master_info struct), + because we don't have multimaster. So for the moment, mi does not move, and + mi->rli does not either. + + In Master_info: run_lock, data_lock + run_lock protects all information about the run state: slave_running, thd + and the existence of the I/O thread to stop/start it, you need this mutex). + data_lock protects some moving members of the struct: counters (log name, + position) and relay log (MYSQL_BIN_LOG object). + + In Relay_log_info: run_lock, data_lock + see Master_info + + Order of acquisition: if you want to have LOCK_active_mi and a run_lock, you + must acquire LOCK_active_mi first. + + In MYSQL_BIN_LOG: LOCK_log, LOCK_index of the binlog and the relay log + LOCK_log: when you write to it. LOCK_index: when you create/delete a binlog + (so that you have to update the .index file). +*/ + +extern ulong master_retry_count; +extern MY_BITMAP slave_error_mask; +extern char slave_skip_error_names[]; +extern bool use_slave_mask; +extern char *slave_load_tmpdir; +extern char *master_info_file; +extern MYSQL_PLUGIN_IMPORT char *relay_log_info_file; +extern char *opt_relay_logname, *opt_relaylog_index_name; +extern my_bool opt_skip_slave_start, opt_reckless_slave; +extern my_bool opt_log_slave_updates; +extern char *opt_slave_skip_errors; +extern my_bool opt_replicate_annotate_row_events; +extern ulonglong relay_log_space_limit; + +/* + 3 possible values for Master_info::slave_running and + Relay_log_info::slave_running. + The values 0,1,2 are very important: to keep the diff small, I didn't + substitute places where we use 0/1 with the newly defined symbols. So don't change + these values. + The same way, code is assuming that in Relay_log_info we use only values + 0/1. + I started with using an enum, but + enum_variable=1; is not legal so would have required many line changes. +*/ +#define MYSQL_SLAVE_NOT_RUN 0 +#define MYSQL_SLAVE_RUN_NOT_CONNECT 1 +#define MYSQL_SLAVE_RUN_CONNECT 2 + +#define RPL_LOG_NAME (rli->group_master_log_name[0] ? rli->group_master_log_name :\ + "FIRST") +#define IO_RPL_LOG_NAME (mi->master_log_name[0] ? mi->master_log_name :\ + "FIRST") + +/* + If the following is set, if first gives an error, second will be + tried. Otherwise, if first fails, we fail. +*/ +#define SLAVE_FORCE_ALL 4 + +/* + Values for the option --replicate-events-marked-for-skip. + Must match the names in replicate_events_marked_for_skip_names in sys_vars.cc +*/ +#define RPL_SKIP_REPLICATE 0 +#define RPL_SKIP_FILTER_ON_SLAVE 1 +#define RPL_SKIP_FILTER_ON_MASTER 2 + + +int init_slave(); +int init_recovery(Master_info* mi, const char** errmsg); +void init_slave_skip_errors(const char* arg); +bool flush_relay_log_info(Relay_log_info* rli); +int register_slave_on_master(MYSQL* mysql); +int terminate_slave_threads(Master_info* mi, int thread_mask, + bool skip_lock = 0); +int start_slave_threads(bool need_slave_mutex, bool wait_for_start, + Master_info* mi, const char* master_info_fname, + const char* slave_info_fname, int thread_mask); +/* + cond_lock is usually same as start_lock. It is needed for the case when + start_lock is 0 which happens if start_slave_thread() is called already + inside the start_lock section, but at the same time we want a + mysql_cond_wait() on start_cond, start_lock +*/ +int start_slave_thread( +#ifdef HAVE_PSI_INTERFACE + PSI_thread_key thread_key, +#endif + pthread_handler h_func, + mysql_mutex_t *start_lock, + mysql_mutex_t *cond_lock, + mysql_cond_t *start_cond, + volatile uint *slave_running, + volatile ulong *slave_run_id, + Master_info *mi); + +/* If fd is -1, dump to NET */ +int mysql_table_dump(THD* thd, const char* db, + const char* tbl_name, int fd = -1); + +/* retrieve table from master and copy to slave*/ +int fetch_master_table(THD* thd, const char* db_name, const char* table_name, + Master_info* mi, MYSQL* mysql, bool overwrite); + +bool show_master_info(THD* thd, Master_info* mi); +bool show_binlog_info(THD* thd); +bool rpl_master_has_bug(const Relay_log_info *rli, uint bug_id, bool report, + bool (*pred)(const void *), const void *param); +bool rpl_master_erroneous_autoinc(THD* thd); + +const char *print_slave_db_safe(const char *db); +void skip_load_data_infile(NET* net); + +void end_slave(); /* release slave threads */ +void close_active_mi(); /* clean up slave threads data */ +void clear_until_condition(Relay_log_info* rli); +void clear_slave_error(Relay_log_info* rli); +void end_relay_log_info(Relay_log_info* rli); +void lock_slave_threads(Master_info* mi); +void unlock_slave_threads(Master_info* mi); +void init_thread_mask(int* mask,Master_info* mi,bool inverse); +int init_relay_log_pos(Relay_log_info* rli,const char* log,ulonglong pos, + bool need_data_lock, const char** errmsg, + bool look_for_description_event); + +int purge_relay_logs(Relay_log_info* rli, THD *thd, bool just_reset, + const char** errmsg); +void set_slave_thread_options(THD* thd); +void set_slave_thread_default_charset(THD *thd, Relay_log_info const *rli); +int rotate_relay_log(Master_info* mi); +int apply_event_and_update_pos(Log_event* ev, THD* thd, Relay_log_info* rli); + +pthread_handler_t handle_slave_io(void *arg); +pthread_handler_t handle_slave_sql(void *arg); +bool net_request_file(NET* net, const char* fname); + +extern bool volatile abort_loop; +extern Master_info *active_mi; /* active_mi for multi-master */ +extern my_bool replicate_same_server_id; + +extern int disconnect_slave_event_count, abort_slave_event_count ; + +/* the master variables are defaults read from my.cnf or command line */ +extern uint report_port; +extern char *master_info_file, *report_user; +extern char *report_host, *report_password; + +extern I_List threads; + +#else +#define close_active_mi() /* no-op */ +#endif /* HAVE_REPLICATION */ + +/* masks for start/stop operations on io and sql slave threads */ +#define SLAVE_IO 1 +#define SLAVE_SQL 2 + +/** + @} (end of group Replication) +*/ + +#endif diff --git a/database/include/mysql/private/sp.h b/database/include/mysql/private/sp.h new file mode 100644 index 0000000..07daa7c --- /dev/null +++ b/database/include/mysql/private/sp.h @@ -0,0 +1,217 @@ +/* -*- C++ -*- */ +/* Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef _SP_H_ +#define _SP_H_ + +#include "sql_string.h" // LEX_STRING + +class Field; +class Open_tables_backup; +class Open_tables_state; +class Query_arena; +class Query_tables_list; +class Sroutine_hash_entry; +class THD; +class sp_cache; +class sp_head; +class sp_name; +struct st_sp_chistics; +struct LEX; +struct TABLE; +struct TABLE_LIST; +typedef struct st_hash HASH; +template class SQL_I_List; + +/* + Values for the type enum. This reflects the order of the enum declaration + in the CREATE TABLE command. +*/ +enum stored_procedure_type +{ + TYPE_ENUM_FUNCTION=1, + TYPE_ENUM_PROCEDURE=2, + TYPE_ENUM_TRIGGER=3, + TYPE_ENUM_PROXY=4 +}; + +/* Tells what SP_DEFAULT_ACCESS should be mapped to */ +#define SP_DEFAULT_ACCESS_MAPPING SP_CONTAINS_SQL + +// Return codes from sp_create_*, sp_drop_*, and sp_show_*: +#define SP_OK 0 +#define SP_KEY_NOT_FOUND -1 +#define SP_OPEN_TABLE_FAILED -2 +#define SP_WRITE_ROW_FAILED -3 +#define SP_DELETE_ROW_FAILED -4 +#define SP_GET_FIELD_FAILED -5 +#define SP_PARSE_ERROR -6 +#define SP_INTERNAL_ERROR -7 +#define SP_NO_DB_ERROR -8 +#define SP_BAD_IDENTIFIER -9 +#define SP_BODY_TOO_LONG -10 +#define SP_FLD_STORE_FAILED -11 + +/* DB storage of Stored PROCEDUREs and FUNCTIONs */ +enum +{ + MYSQL_PROC_FIELD_DB = 0, + MYSQL_PROC_FIELD_NAME, + MYSQL_PROC_MYSQL_TYPE, + MYSQL_PROC_FIELD_SPECIFIC_NAME, + MYSQL_PROC_FIELD_LANGUAGE, + MYSQL_PROC_FIELD_ACCESS, + MYSQL_PROC_FIELD_DETERMINISTIC, + MYSQL_PROC_FIELD_SECURITY_TYPE, + MYSQL_PROC_FIELD_PARAM_LIST, + MYSQL_PROC_FIELD_RETURNS, + MYSQL_PROC_FIELD_BODY, + MYSQL_PROC_FIELD_DEFINER, + MYSQL_PROC_FIELD_CREATED, + MYSQL_PROC_FIELD_MODIFIED, + MYSQL_PROC_FIELD_SQL_MODE, + MYSQL_PROC_FIELD_COMMENT, + MYSQL_PROC_FIELD_CHARACTER_SET_CLIENT, + MYSQL_PROC_FIELD_COLLATION_CONNECTION, + MYSQL_PROC_FIELD_DB_COLLATION, + MYSQL_PROC_FIELD_BODY_UTF8, + MYSQL_PROC_FIELD_COUNT +}; + +/* Drop all routines in database 'db' */ +int +sp_drop_db_routines(THD *thd, char *db); + +/** + Acquires exclusive metadata lock on all stored routines in the + given database. + + @param thd Thread handler + @param db Database name + + @retval false Success + @retval true Failure + */ +bool lock_db_routines(THD *thd, char *db); + +sp_head * +sp_find_routine(THD *thd, stored_procedure_type type, sp_name *name, + sp_cache **cp, bool cache_only); + +int +sp_cache_routine(THD *thd, Sroutine_hash_entry *rt, + bool lookup_only, sp_head **sp); + + +int +sp_cache_routine(THD *thd, stored_procedure_type type, sp_name *name, + bool lookup_only, sp_head **sp); + +bool +sp_exist_routines(THD *thd, TABLE_LIST *procs, bool is_proc); + +bool +sp_show_create_routine(THD *thd, stored_procedure_type type, sp_name *name); + +int +sp_create_routine(THD *thd, stored_procedure_type type, sp_head *sp); + +int +sp_update_routine(THD *thd, stored_procedure_type type, sp_name *name, + st_sp_chistics *chistics); + +int +sp_drop_routine(THD *thd, stored_procedure_type type, sp_name *name); + + +/** + Structure that represents element in the set of stored routines + used by statement or routine. +*/ + +class Sroutine_hash_entry +{ +public: + /** + Metadata lock request for routine. + MDL_key in this request is also used as a key for set. + */ + MDL_request mdl_request; + /** + Next element in list linking all routines in set. See also comments + for LEX::sroutine/sroutine_list and sp_head::m_sroutines. + */ + Sroutine_hash_entry *next; + /** + Uppermost view which directly or indirectly uses this routine. + 0 if routine is not used in view. Note that it also can be 0 if + statement uses routine both via view and directly. + */ + TABLE_LIST *belong_to_view; + /** + This is for prepared statement validation purposes. + A statement looks up and pre-loads all its stored functions + at prepare. Later on, if a function is gone from the cache, + execute may fail. + Remember the version of sp_head at prepare to be able to + invalidate the prepared statement at execute if it + changes. + */ + ulong m_sp_cache_version; +}; + + +/* + Procedures for handling sets of stored routines used by statement or routine. +*/ +void sp_add_used_routine(Query_tables_list *prelocking_ctx, Query_arena *arena, + sp_name *rt, stored_procedure_type rt_type); +bool sp_add_used_routine(Query_tables_list *prelocking_ctx, Query_arena *arena, + const MDL_key *key, TABLE_LIST *belong_to_view); +void sp_remove_not_own_routines(Query_tables_list *prelocking_ctx); +bool sp_update_sp_used_routines(HASH *dst, HASH *src); +void sp_update_stmt_used_routines(THD *thd, Query_tables_list *prelocking_ctx, + HASH *src, TABLE_LIST *belong_to_view); +void sp_update_stmt_used_routines(THD *thd, Query_tables_list *prelocking_ctx, + SQL_I_List *src, + TABLE_LIST *belong_to_view); + +extern "C" uchar* sp_sroutine_key(const uchar *ptr, size_t *plen, + my_bool first); + +/* + Routines which allow open/lock and close mysql.proc table even when + we already have some tables open and locked. +*/ +TABLE *open_proc_table_for_read(THD *thd, Open_tables_backup *backup); + +sp_head * +sp_load_for_information_schema(THD *thd, TABLE *proc_table, String *db, + String *name, ulong sql_mode, stored_procedure_type type, + const char *returns, const char *params, + bool *free_sp_head); + +bool load_charset(MEM_ROOT *mem_root, + Field *field, + CHARSET_INFO *dflt_cs, + CHARSET_INFO **cs); + +bool load_collation(MEM_ROOT *mem_root, + Field *field, + CHARSET_INFO *dflt_cl, + CHARSET_INFO **cl); + +#endif /* _SP_H_ */ diff --git a/database/include/mysql/private/sp_cache.h b/database/include/mysql/private/sp_cache.h new file mode 100644 index 0000000..6074956 --- /dev/null +++ b/database/include/mysql/private/sp_cache.h @@ -0,0 +1,68 @@ +/* -*- C++ -*- */ +/* Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef _SP_CACHE_H_ +#define _SP_CACHE_H_ + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif + +#include "my_global.h" /* ulong */ + +/* + Stored procedures/functions cache. This is used as follows: + * Each thread has its own cache. + * Each sp_head object is put into its thread cache before it is used, and + then remains in the cache until deleted. +*/ + +class sp_head; +class sp_cache; +class sp_name; + +/* + Cache usage scenarios: + 1. Application-wide init: + sp_cache_init(); + + 2. SP execution in thread: + 2.1 While holding sp_head* pointers: + + // look up a routine in the cache (no checks if it is up to date or not) + sp_cache_lookup(); + + sp_cache_insert(); + sp_cache_invalidate(); + + 2.2 When not holding any sp_head* pointers: + sp_cache_flush_obsolete(); + + 3. Before thread exit: + sp_cache_clear(); +*/ + +void sp_cache_init(); +void sp_cache_end(); +void sp_cache_clear(sp_cache **cp); +void sp_cache_insert(sp_cache **cp, sp_head *sp); +sp_head *sp_cache_lookup(sp_cache **cp, sp_name *name); +void sp_cache_invalidate(); +void sp_cache_flush_obsolete(sp_cache **cp, sp_head **sp); +ulong sp_cache_version(); +void sp_cache_enforce_limit(sp_cache *cp, ulong upper_limit_for_elements); + +#endif /* _SP_CACHE_H_ */ diff --git a/database/include/mysql/private/sp_head.h b/database/include/mysql/private/sp_head.h new file mode 100644 index 0000000..f46f11f --- /dev/null +++ b/database/include/mysql/private/sp_head.h @@ -0,0 +1,1365 @@ +/* -*- C++ -*- */ +/* + Copyright (c) 2002, 2011, Oracle and/or its affiliates. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef _SP_HEAD_H_ +#define _SP_HEAD_H_ + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif + +/* + It is necessary to include set_var.h instead of item.h because there + are dependencies on include order for set_var.h and item.h. This + will be resolved later. +*/ +#include "my_global.h" /* NO_EMBEDDED_ACCESS_CHECKS */ +#include "sql_class.h" // THD, set_var.h: THD +#include "set_var.h" // Item +#include "sp.h" +#include + +/** + @defgroup Stored_Routines Stored Routines + @ingroup Runtime_Environment + @{ +*/ + +Item_result +sp_map_result_type(enum enum_field_types type); + +Item::Type +sp_map_item_type(enum enum_field_types type); + +uint +sp_get_flags_for_command(LEX *lex); + +struct sp_label; +class sp_instr; +class sp_instr_opt_meta; +class sp_instr_jump_if_not; +struct sp_cond_type; +struct sp_variable; + +/*************************************************************************/ + +/** + Stored_program_creation_ctx -- base class for creation context of stored + programs (stored routines, triggers, events). +*/ + +class Stored_program_creation_ctx :public Default_object_creation_ctx +{ +public: + CHARSET_INFO *get_db_cl() + { + return m_db_cl; + } + +public: + virtual Stored_program_creation_ctx *clone(MEM_ROOT *mem_root) = 0; + +protected: + Stored_program_creation_ctx(THD *thd) + : Default_object_creation_ctx(thd), + m_db_cl(thd->variables.collation_database) + { } + + Stored_program_creation_ctx(CHARSET_INFO *client_cs, + CHARSET_INFO *connection_cl, + CHARSET_INFO *db_cl) + : Default_object_creation_ctx(client_cs, connection_cl), + m_db_cl(db_cl) + { } + +protected: + virtual void change_env(THD *thd) const + { + thd->variables.collation_database= m_db_cl; + + Default_object_creation_ctx::change_env(thd); + } + +protected: + /** + db_cl stores the value of the database collation. Both character set + and collation attributes are used. + + Database collation is included into the context because it defines the + default collation for stored-program variables. + */ + CHARSET_INFO *m_db_cl; +}; + +/*************************************************************************/ + +class sp_name : public Sql_alloc +{ +public: + + LEX_STRING m_db; + LEX_STRING m_name; + LEX_STRING m_qname; + bool m_explicit_name; /**< Prepend the db name? */ + + sp_name(LEX_STRING db, LEX_STRING name, bool use_explicit_name) + : m_db(db), m_name(name), m_explicit_name(use_explicit_name) + { + m_qname.str= 0; + m_qname.length= 0; + } + + /** Create temporary sp_name object from MDL key. */ + sp_name(const MDL_key *key, char *qname_buff); + + // Init. the qualified name from the db and name. + void init_qname(THD *thd); // thd for memroot allocation + + ~sp_name() + {} +}; + + +bool +check_routine_name(LEX_STRING *ident); + +class sp_head :private Query_arena +{ + sp_head(const sp_head &); /**< Prevent use of these */ + void operator=(sp_head &); + + MEM_ROOT main_mem_root; +public: + /** Possible values of m_flags */ + enum { + HAS_RETURN= 1, // For FUNCTIONs only: is set if has RETURN + MULTI_RESULTS= 8, // Is set if a procedure with SELECT(s) + CONTAINS_DYNAMIC_SQL= 16, // Is set if a procedure with PREPARE/EXECUTE + IS_INVOKED= 32, // Is set if this sp_head is being used + HAS_SET_AUTOCOMMIT_STMT= 64,// Is set if a procedure with 'set autocommit' + /* Is set if a procedure with COMMIT (implicit or explicit) | ROLLBACK */ + HAS_COMMIT_OR_ROLLBACK= 128, + LOG_SLOW_STATEMENTS= 256, // Used by events + LOG_GENERAL_LOG= 512, // Used by events + HAS_SQLCOM_RESET= 1024, + HAS_SQLCOM_FLUSH= 2048 + }; + + stored_procedure_type m_type; + uint m_flags; // Boolean attributes of a stored routine + + Create_field m_return_field_def; /**< This is used for FUNCTIONs only. */ + + const char *m_tmp_query; ///< Temporary pointer to sub query string + st_sp_chistics *m_chistics; + ulonglong m_sql_mode; ///< For SHOW CREATE and execution + LEX_STRING m_qname; ///< db.name + bool m_explicit_name; ///< Prepend the db name? */ + LEX_STRING m_db; + LEX_STRING m_name; + LEX_STRING m_params; + LEX_STRING m_body; + LEX_STRING m_body_utf8; + LEX_STRING m_defstr; + LEX_STRING m_definer_user; + LEX_STRING m_definer_host; + + /** + Is this routine being executed? + */ + bool is_invoked() const { return m_flags & IS_INVOKED; } + + /** + Get the value of the SP cache version, as remembered + when the routine was inserted into the cache. + */ + ulong sp_cache_version() const { return m_sp_cache_version; } + + /** Set the value of the SP cache version. */ + void set_sp_cache_version(ulong version_arg) + { + m_sp_cache_version= version_arg; + } +private: + /** + Version of the stored routine cache at the moment when the + routine was added to it. Is used only for functions and + procedures, not used for triggers or events. When sp_head is + created, its version is 0. When it's added to the cache, the + version is assigned the global value 'Cversion'. + If later on Cversion is incremented, we know that the routine + is obsolete and should not be used -- + sp_cache_flush_obsolete() will purge it. + */ + ulong m_sp_cache_version; + Stored_program_creation_ctx *m_creation_ctx; + /** + Boolean combination of (1<clone(mem_root); + } + + longlong m_created; + longlong m_modified; + /** Recursion level of the current SP instance. The levels are numbered from 0 */ + ulong m_recursion_level; + /** + A list of diferent recursion level instances for the same procedure. + For every recursion level we have a sp_head instance. This instances + connected in the list. The list ordered by increasing recursion level + (m_recursion_level). + */ + sp_head *m_next_cached_sp; + /** + Pointer to the first element of the above list + */ + sp_head *m_first_instance; + /** + Pointer to the first free (non-INVOKED) routine in the list of + cached instances for this SP. This pointer is set only for the first + SP in the list of instences (see above m_first_cached_sp pointer). + The pointer equal to 0 if we have no free instances. + For non-first instance value of this pointer meanless (point to itself); + */ + sp_head *m_first_free_instance; + /** + Pointer to the last element in the list of instances of the SP. + For non-first instance value of this pointer meanless (point to itself); + */ + sp_head *m_last_cached_sp; + /** + Set containing names of stored routines used by this routine. + Note that unlike elements of similar set for statement elements of this + set are not linked in one list. Because of this we are able save memory + by using for this set same objects that are used in 'sroutines' sets + for statements of which this stored routine consists. + */ + HASH m_sroutines; + // Pointers set during parsing + const char *m_param_begin; + const char *m_param_end; + +private: + const char *m_body_begin; + +public: + /* + Security context for stored routine which should be run under + definer privileges. + */ + Security_context m_security_ctx; + + static void * + operator new(size_t size) throw (); + + static void + operator delete(void *ptr, size_t size) throw (); + + sp_head(); + + /// Initialize after we have reset mem_root + void + init(LEX *lex); + + /** Copy sp name from parser. */ + void + init_sp_name(THD *thd, sp_name *spname); + + /** Set the body-definition start position. */ + void + set_body_start(THD *thd, const char *begin_ptr); + + /** Set the statement-definition (body-definition) end position. */ + void + set_stmt_end(THD *thd); + + virtual ~sp_head(); + + bool + execute_trigger(THD *thd, + const LEX_STRING *db_name, + const LEX_STRING *table_name, + GRANT_INFO *grant_info); + + bool + execute_function(THD *thd, Item **args, uint argcount, Field *return_fld); + + bool + execute_procedure(THD *thd, List *args); + + bool + show_create_routine(THD *thd, int type); + + int + add_instr(sp_instr *instr); + + inline uint + instructions() + { + return m_instr.elements; + } + + inline sp_instr * + last_instruction() + { + sp_instr *i; + + get_dynamic(&m_instr, (uchar*)&i, m_instr.elements-1); + return i; + } + + /* + Resets lex in 'thd' and keeps a copy of the old one. + + @todo Conflicting comment in sp_head.cc + */ + bool + reset_lex(THD *thd); + + /** + Restores lex in 'thd' from our copy, but keeps some status from the + one in 'thd', like ptr, tables, fields, etc. + + @todo Conflicting comment in sp_head.cc + */ + bool + restore_lex(THD *thd); + + /// Put the instruction on the backpatch list, associated with the label. + int + push_backpatch(sp_instr *, struct sp_label *); + + /// Update all instruction with this label in the backpatch list to + /// the current position. + void + backpatch(struct sp_label *); + + /// Start a new cont. backpatch level. If 'i' is NULL, the level is just incr. + int + new_cont_backpatch(sp_instr_opt_meta *i); + + /// Add an instruction to the current level + int + add_cont_backpatch(sp_instr_opt_meta *i); + + /// Backpatch (and pop) the current level to the current position. + void + do_cont_backpatch(); + + char *name(uint *lenp = 0) const + { + if (lenp) + *lenp= (uint) m_name.length; + return m_name.str; + } + + char *create_string(THD *thd, ulong *lenp); + + Field *create_result_field(uint field_max_length, const char *field_name, + TABLE *table); + + bool fill_field_definition(THD *thd, LEX *lex, + enum enum_field_types field_type, + Create_field *field_def); + + void set_info(longlong created, longlong modified, + st_sp_chistics *chistics, ulonglong sql_mode); + + void set_definer(const char *definer, uint definerlen); + void set_definer(const LEX_STRING *user_name, const LEX_STRING *host_name); + + void reset_thd_mem_root(THD *thd); + + void restore_thd_mem_root(THD *thd); + + /** + Optimize the code. + */ + void optimize(); + + /** + Helper used during flow analysis during code optimization. + See the implementation of opt_mark(). + @param ip the instruction to add to the leads list + @param leads the list of remaining paths to explore in the graph that + represents the code, during flow analysis. + */ + void add_mark_lead(uint ip, List *leads); + + void recursion_level_error(THD *thd); + + inline sp_instr * + get_instr(uint i) + { + sp_instr *ip; + + if (i < m_instr.elements) + get_dynamic(&m_instr, (uchar*)&ip, i); + else + ip= NULL; + return ip; + } + + /* Add tables used by routine to the table list. */ + bool add_used_tables_to_table_list(THD *thd, + TABLE_LIST ***query_tables_last_ptr, + TABLE_LIST *belong_to_view); + + /** + Check if this stored routine contains statements disallowed + in a stored function or trigger, and set an appropriate error message + if this is the case. + */ + bool is_not_allowed_in_function(const char *where) + { + if (m_flags & CONTAINS_DYNAMIC_SQL) + my_error(ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG, MYF(0), "Dynamic SQL"); + else if (m_flags & MULTI_RESULTS) + my_error(ER_SP_NO_RETSET, MYF(0), where); + else if (m_flags & HAS_SET_AUTOCOMMIT_STMT) + my_error(ER_SP_CANT_SET_AUTOCOMMIT, MYF(0)); + else if (m_flags & HAS_COMMIT_OR_ROLLBACK) + my_error(ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG, MYF(0)); + else if (m_flags & HAS_SQLCOM_RESET) + my_error(ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG, MYF(0), "RESET"); + else if (m_flags & HAS_SQLCOM_FLUSH) + my_error(ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG, MYF(0), "FLUSH"); + + return test(m_flags & + (CONTAINS_DYNAMIC_SQL|MULTI_RESULTS|HAS_SET_AUTOCOMMIT_STMT| + HAS_COMMIT_OR_ROLLBACK|HAS_SQLCOM_RESET|HAS_SQLCOM_FLUSH)); + } + +#ifndef DBUG_OFF + int show_routine_code(THD *thd); +#endif + + /* + This method is intended for attributes of a routine which need + to propagate upwards to the Query_tables_list of the caller (when + a property of a sp_head needs to "taint" the calling statement). + */ + void propagate_attributes(Query_tables_list *prelocking_ctx) + { + DBUG_ENTER("sp_head::propagate_attributes"); + /* + If this routine needs row-based binary logging, the entire top statement + too (we cannot switch from statement-based to row-based only for this + routine, as in statement-based the top-statement may be binlogged and + the substatements not). + */ + DBUG_PRINT("info", ("lex->get_stmt_unsafe_flags(): 0x%x", + prelocking_ctx->get_stmt_unsafe_flags())); + DBUG_PRINT("info", ("sp_head(0x%p=%s)->unsafe_flags: 0x%x", + this, name(), unsafe_flags)); + prelocking_ctx->set_stmt_unsafe_flags(unsafe_flags); + DBUG_VOID_RETURN; + } + + sp_pcontext *get_parse_context() { return m_pcont; } + +private: + + MEM_ROOT *m_thd_root; ///< Temp. store for thd's mem_root + THD *m_thd; ///< Set if we have reset mem_root + + sp_pcontext *m_pcont; ///< Parse context + List m_lex; ///< Temp. store for the other lex + DYNAMIC_ARRAY m_instr; ///< The "instructions" + typedef struct + { + struct sp_label *lab; + sp_instr *instr; + } bp_t; + List m_backpatch; ///< Instructions needing backpatching + /** + We need a special list for backpatching of instructions with a continue + destination (in the case of a continue handler catching an error in + the test), since it would otherwise interfere with the normal backpatch + mechanism - e.g. jump_if_not instructions have two different destinations + which are to be patched differently. + Since these occur in a more restricted way (always the same "level" in + the code), we don't need the label. + */ + List m_cont_backpatch; + uint m_cont_level; // The current cont. backpatch level + + /** + Multi-set representing optimized list of tables to be locked by this + routine. Does not include tables which are used by invoked routines. + + @note + For prelocking-free SPs this multiset is constructed too. + We do so because the same instance of sp_head may be called both + in prelocked mode and in non-prelocked mode. + */ + HASH m_sptabs; + + bool + execute(THD *thd, bool merge_da_on_success); + + /** + Perform a forward flow analysis in the generated code. + Mark reachable instructions, for the optimizer. + */ + void opt_mark(); + + /** + Merge the list of tables used by query into the multi-set of tables used + by routine. + */ + bool merge_table_list(THD *thd, TABLE_LIST *table, LEX *lex_for_tmp_check); +}; // class sp_head : public Sql_alloc + + +// +// "Instructions"... +// + +class sp_instr :public Query_arena, public Sql_alloc +{ + sp_instr(const sp_instr &); /**< Prevent use of these */ + void operator=(sp_instr &); + +public: + + uint marked; + uint m_ip; ///< My index + sp_pcontext *m_ctx; ///< My parse context + + /// Should give each a name or type code for debugging purposes? + sp_instr(uint ip, sp_pcontext *ctx) + :Query_arena(0, STMT_INITIALIZED_FOR_SP), marked(0), m_ip(ip), m_ctx(ctx) + {} + + virtual ~sp_instr() + { free_items(); } + + + /** + Execute this instruction + + + @param thd Thread handle + @param[out] nextp index of the next instruction to execute. (For most + instructions this will be the instruction following this + one). Note that this parameter is undefined in case of + errors, use get_cont_dest() to find the continuation + instruction for CONTINUE error handlers. + + @retval 0 on success, + @retval other if some error occured + */ + + virtual int execute(THD *thd, uint *nextp) = 0; + + /** + Execute open_and_lock_tables() for this statement. + Open and lock the tables used by this statement, as a pre-requisite + to execute the core logic of this instruction with + exec_core(). + @param thd the current thread + @param tables the list of tables to open and lock + @return zero on success, non zero on failure. + */ + int exec_open_and_lock_tables(THD *thd, TABLE_LIST *tables); + + /** + Get the continuation destination of this instruction. + @return the continuation destination + */ + virtual uint get_cont_dest(); + + /* + Execute core function of instruction after all preparations (e.g. + setting of proper LEX, saving part of the thread context have been + done). + + Should be implemented for instructions using expressions or whole + statements (thus having to have own LEX). Used in concert with + sp_lex_keeper class and its descendants (there are none currently). + */ + virtual int exec_core(THD *thd, uint *nextp); + + virtual void print(String *str) = 0; + + virtual void backpatch(uint dest, sp_pcontext *dst_ctx) + {} + + /** + Mark this instruction as reachable during optimization and return the + index to the next instruction. Jump instruction will add their + destination to the leads list. + */ + virtual uint opt_mark(sp_head *sp, List *leads) + { + marked= 1; + return m_ip+1; + } + + /** + Short-cut jumps to jumps during optimization. This is used by the + jump instructions' opt_mark() methods. 'start' is the starting point, + used to prevent the mark sweep from looping for ever. Return the + end destination. + */ + virtual uint opt_shortcut_jump(sp_head *sp, sp_instr *start) + { + return m_ip; + } + + /** + Inform the instruction that it has been moved during optimization. + Most instructions will simply update its index, but jump instructions + must also take care of their destination pointers. Forward jumps get + pushed to the backpatch list 'ibp'. + */ + virtual void opt_move(uint dst, List *ibp) + { + m_ip= dst; + } + +}; // class sp_instr : public Sql_alloc + + +/** + Auxilary class to which instructions delegate responsibility + for handling LEX and preparations before executing statement + or calculating complex expression. + + Exist mainly to avoid having double hierarchy between instruction + classes. + + @todo + Add ability to not store LEX and do any preparations if + expression used is simple. +*/ + +class sp_lex_keeper +{ + /** Prevent use of these */ + sp_lex_keeper(const sp_lex_keeper &); + void operator=(sp_lex_keeper &); +public: + + sp_lex_keeper(LEX *lex, bool lex_resp) + : m_lex(lex), m_lex_resp(lex_resp), + lex_query_tables_own_last(NULL) + { + lex->sp_lex_in_use= TRUE; + } + virtual ~sp_lex_keeper() + { + if (m_lex_resp) + { + /* Prevent endless recursion. */ + m_lex->sphead= NULL; + lex_end(m_lex); + delete m_lex; + } + } + + /** + Prepare execution of instruction using LEX, if requested check whenever + we have read access to tables used and open/lock them, call instruction's + exec_core() method, perform cleanup afterwards. + + @todo Conflicting comment in sp_head.cc + */ + int reset_lex_and_exec_core(THD *thd, uint *nextp, bool open_tables, + sp_instr* instr); + + inline uint sql_command() const + { + return (uint)m_lex->sql_command; + } + + void disable_query_cache() + { + m_lex->safe_to_cache_query= 0; + } +private: + + LEX *m_lex; + /** + Indicates whenever this sp_lex_keeper instance responsible + for LEX deletion. + */ + bool m_lex_resp; + + /* + Support for being able to execute this statement in two modes: + a) inside prelocked mode set by the calling procedure or its ancestor. + b) outside of prelocked mode, when this statement enters/leaves + prelocked mode itself. + */ + + /** + List of additional tables this statement needs to lock when it + enters/leaves prelocked mode on its own. + */ + TABLE_LIST *prelocking_tables; + + /** + The value m_lex->query_tables_own_last should be set to this when the + statement enters/leaves prelocked mode on its own. + */ + TABLE_LIST **lex_query_tables_own_last; +}; + + +/** + Call out to some prepared SQL statement. +*/ +class sp_instr_stmt : public sp_instr +{ + sp_instr_stmt(const sp_instr_stmt &); /**< Prevent use of these */ + void operator=(sp_instr_stmt &); + +public: + + LEX_STRING m_query; ///< For thd->query + + sp_instr_stmt(uint ip, sp_pcontext *ctx, LEX *lex) + : sp_instr(ip, ctx), m_lex_keeper(lex, TRUE) + { + m_query.str= 0; + m_query.length= 0; + } + + virtual ~sp_instr_stmt() + {}; + + virtual int execute(THD *thd, uint *nextp); + + virtual int exec_core(THD *thd, uint *nextp); + + virtual void print(String *str); + +private: + + sp_lex_keeper m_lex_keeper; + +}; // class sp_instr_stmt : public sp_instr + + +class sp_instr_set : public sp_instr +{ + sp_instr_set(const sp_instr_set &); /**< Prevent use of these */ + void operator=(sp_instr_set &); + +public: + + sp_instr_set(uint ip, sp_pcontext *ctx, + uint offset, Item *val, enum enum_field_types type_arg, + LEX *lex, bool lex_resp) + : sp_instr(ip, ctx), m_offset(offset), m_value(val), m_type(type_arg), + m_lex_keeper(lex, lex_resp) + {} + + virtual ~sp_instr_set() + {} + + virtual int execute(THD *thd, uint *nextp); + + virtual int exec_core(THD *thd, uint *nextp); + + virtual void print(String *str); + +private: + + uint m_offset; ///< Frame offset + Item *m_value; + enum enum_field_types m_type; ///< The declared type + sp_lex_keeper m_lex_keeper; + +}; // class sp_instr_set : public sp_instr + + +/** + Set NEW/OLD row field value instruction. Used in triggers. +*/ +class sp_instr_set_trigger_field : public sp_instr +{ + sp_instr_set_trigger_field(const sp_instr_set_trigger_field &); + void operator=(sp_instr_set_trigger_field &); + +public: + + sp_instr_set_trigger_field(uint ip, sp_pcontext *ctx, + Item_trigger_field *trg_fld, + Item *val, LEX *lex) + : sp_instr(ip, ctx), + trigger_field(trg_fld), + value(val), m_lex_keeper(lex, TRUE) + {} + + virtual ~sp_instr_set_trigger_field() + {} + + virtual int execute(THD *thd, uint *nextp); + + virtual int exec_core(THD *thd, uint *nextp); + + virtual void print(String *str); + +private: + Item_trigger_field *trigger_field; + Item *value; + sp_lex_keeper m_lex_keeper; +}; // class sp_instr_trigger_field : public sp_instr + + +/** + An abstract class for all instructions with destinations that + needs to be updated by the optimizer. + + Even if not all subclasses will use both the normal destination and + the continuation destination, we put them both here for simplicity. +*/ +class sp_instr_opt_meta : public sp_instr +{ +public: + + uint m_dest; ///< Where we will go + uint m_cont_dest; ///< Where continue handlers will go + + sp_instr_opt_meta(uint ip, sp_pcontext *ctx) + : sp_instr(ip, ctx), + m_dest(0), m_cont_dest(0), m_optdest(0), m_cont_optdest(0) + {} + + sp_instr_opt_meta(uint ip, sp_pcontext *ctx, uint dest) + : sp_instr(ip, ctx), + m_dest(dest), m_cont_dest(0), m_optdest(0), m_cont_optdest(0) + {} + + virtual ~sp_instr_opt_meta() + {} + + virtual void set_destination(uint old_dest, uint new_dest) + = 0; + + virtual uint get_cont_dest(); + +protected: + + sp_instr *m_optdest; ///< Used during optimization + sp_instr *m_cont_optdest; ///< Used during optimization + +}; // class sp_instr_opt_meta : public sp_instr + +class sp_instr_jump : public sp_instr_opt_meta +{ + sp_instr_jump(const sp_instr_jump &); /**< Prevent use of these */ + void operator=(sp_instr_jump &); + +public: + + sp_instr_jump(uint ip, sp_pcontext *ctx) + : sp_instr_opt_meta(ip, ctx) + {} + + sp_instr_jump(uint ip, sp_pcontext *ctx, uint dest) + : sp_instr_opt_meta(ip, ctx, dest) + {} + + virtual ~sp_instr_jump() + {} + + virtual int execute(THD *thd, uint *nextp); + + virtual void print(String *str); + + virtual uint opt_mark(sp_head *sp, List *leads); + + virtual uint opt_shortcut_jump(sp_head *sp, sp_instr *start); + + virtual void opt_move(uint dst, List *ibp); + + virtual void backpatch(uint dest, sp_pcontext *dst_ctx) + { + /* Calling backpatch twice is a logic flaw in jump resolution. */ + DBUG_ASSERT(m_dest == 0); + m_dest= dest; + } + + /** + Update the destination; used by the optimizer. + */ + virtual void set_destination(uint old_dest, uint new_dest) + { + if (m_dest == old_dest) + m_dest= new_dest; + } + +}; // class sp_instr_jump : public sp_instr_opt_meta + + +class sp_instr_jump_if_not : public sp_instr_jump +{ + sp_instr_jump_if_not(const sp_instr_jump_if_not &); /**< Prevent use of these */ + void operator=(sp_instr_jump_if_not &); + +public: + + sp_instr_jump_if_not(uint ip, sp_pcontext *ctx, Item *i, LEX *lex) + : sp_instr_jump(ip, ctx), m_expr(i), + m_lex_keeper(lex, TRUE) + {} + + sp_instr_jump_if_not(uint ip, sp_pcontext *ctx, Item *i, uint dest, LEX *lex) + : sp_instr_jump(ip, ctx, dest), m_expr(i), + m_lex_keeper(lex, TRUE) + {} + + virtual ~sp_instr_jump_if_not() + {} + + virtual int execute(THD *thd, uint *nextp); + + virtual int exec_core(THD *thd, uint *nextp); + + virtual void print(String *str); + + virtual uint opt_mark(sp_head *sp, List *leads); + + /** Override sp_instr_jump's shortcut; we stop here */ + virtual uint opt_shortcut_jump(sp_head *sp, sp_instr *start) + { + return m_ip; + } + + virtual void opt_move(uint dst, List *ibp); + + virtual void set_destination(uint old_dest, uint new_dest) + { + sp_instr_jump::set_destination(old_dest, new_dest); + if (m_cont_dest == old_dest) + m_cont_dest= new_dest; + } + +private: + + Item *m_expr; ///< The condition + sp_lex_keeper m_lex_keeper; + +}; // class sp_instr_jump_if_not : public sp_instr_jump + + +class sp_instr_freturn : public sp_instr +{ + sp_instr_freturn(const sp_instr_freturn &); /**< Prevent use of these */ + void operator=(sp_instr_freturn &); + +public: + + sp_instr_freturn(uint ip, sp_pcontext *ctx, + Item *val, enum enum_field_types type_arg, LEX *lex) + : sp_instr(ip, ctx), m_value(val), m_type(type_arg), + m_lex_keeper(lex, TRUE) + {} + + virtual ~sp_instr_freturn() + {} + + virtual int execute(THD *thd, uint *nextp); + + virtual int exec_core(THD *thd, uint *nextp); + + virtual void print(String *str); + + virtual uint opt_mark(sp_head *sp, List *leads) + { + marked= 1; + return UINT_MAX; + } + +protected: + + Item *m_value; + enum enum_field_types m_type; + sp_lex_keeper m_lex_keeper; + +}; // class sp_instr_freturn : public sp_instr + + +class sp_instr_hpush_jump : public sp_instr_jump +{ + sp_instr_hpush_jump(const sp_instr_hpush_jump &); /**< Prevent use of these */ + void operator=(sp_instr_hpush_jump &); + +public: + + sp_instr_hpush_jump(uint ip, sp_pcontext *ctx, int htype, uint fp) + : sp_instr_jump(ip, ctx), m_type(htype), m_frame(fp), m_opt_hpop(0) + { + m_cond.empty(); + } + + virtual ~sp_instr_hpush_jump() + { + m_cond.empty(); + } + + virtual int execute(THD *thd, uint *nextp); + + virtual void print(String *str); + + virtual uint opt_mark(sp_head *sp, List *leads); + + /** Override sp_instr_jump's shortcut; we stop here. */ + virtual uint opt_shortcut_jump(sp_head *sp, sp_instr *start) + { + return m_ip; + } + + virtual void backpatch(uint dest, sp_pcontext *dst_ctx) + { + DBUG_ASSERT(!m_dest || !m_opt_hpop); + if (!m_dest) + m_dest= dest; + else + m_opt_hpop= dest; + } + + inline void add_condition(struct sp_cond_type *cond) + { + m_cond.push_front(cond); + } + +private: + + int m_type; ///< Handler type + uint m_frame; + uint m_opt_hpop; // hpop marking end of handler scope. + List m_cond; + +}; // class sp_instr_hpush_jump : public sp_instr_jump + + +class sp_instr_hpop : public sp_instr +{ + sp_instr_hpop(const sp_instr_hpop &); /**< Prevent use of these */ + void operator=(sp_instr_hpop &); + +public: + + sp_instr_hpop(uint ip, sp_pcontext *ctx, uint count) + : sp_instr(ip, ctx), m_count(count) + {} + + virtual ~sp_instr_hpop() + {} + + virtual int execute(THD *thd, uint *nextp); + + virtual void print(String *str); + +private: + + uint m_count; + +}; // class sp_instr_hpop : public sp_instr + + +class sp_instr_hreturn : public sp_instr_jump +{ + sp_instr_hreturn(const sp_instr_hreturn &); /**< Prevent use of these */ + void operator=(sp_instr_hreturn &); + +public: + + sp_instr_hreturn(uint ip, sp_pcontext *ctx, uint fp) + : sp_instr_jump(ip, ctx), m_frame(fp) + {} + + virtual ~sp_instr_hreturn() + {} + + virtual int execute(THD *thd, uint *nextp); + + virtual void print(String *str); + + /* This instruction will not be short cut optimized. */ + virtual uint opt_shortcut_jump(sp_head *sp, sp_instr *start) + { + return m_ip; + } + + virtual uint opt_mark(sp_head *sp, List *leads); + +private: + + uint m_frame; + +}; // class sp_instr_hreturn : public sp_instr_jump + + +/** This is DECLARE CURSOR */ +class sp_instr_cpush : public sp_instr +{ + sp_instr_cpush(const sp_instr_cpush &); /**< Prevent use of these */ + void operator=(sp_instr_cpush &); + +public: + + sp_instr_cpush(uint ip, sp_pcontext *ctx, LEX *lex, uint offset) + : sp_instr(ip, ctx), m_lex_keeper(lex, TRUE), m_cursor(offset) + {} + + virtual ~sp_instr_cpush() + {} + + virtual int execute(THD *thd, uint *nextp); + + virtual void print(String *str); + + /** + This call is used to cleanup the instruction when a sensitive + cursor is closed. For now stored procedures always use materialized + cursors and the call is not used. + */ + virtual void cleanup_stmt() { /* no op */ } +private: + + sp_lex_keeper m_lex_keeper; + uint m_cursor; /**< Frame offset (for debugging) */ + +}; // class sp_instr_cpush : public sp_instr + + +class sp_instr_cpop : public sp_instr +{ + sp_instr_cpop(const sp_instr_cpop &); /**< Prevent use of these */ + void operator=(sp_instr_cpop &); + +public: + + sp_instr_cpop(uint ip, sp_pcontext *ctx, uint count) + : sp_instr(ip, ctx), m_count(count) + {} + + virtual ~sp_instr_cpop() + {} + + virtual int execute(THD *thd, uint *nextp); + + virtual void print(String *str); + +private: + + uint m_count; + +}; // class sp_instr_cpop : public sp_instr + + +class sp_instr_copen : public sp_instr +{ + sp_instr_copen(const sp_instr_copen &); /**< Prevent use of these */ + void operator=(sp_instr_copen &); + +public: + + sp_instr_copen(uint ip, sp_pcontext *ctx, uint c) + : sp_instr(ip, ctx), m_cursor(c) + {} + + virtual ~sp_instr_copen() + {} + + virtual int execute(THD *thd, uint *nextp); + + virtual int exec_core(THD *thd, uint *nextp); + + virtual void print(String *str); + +private: + + uint m_cursor; ///< Stack index + +}; // class sp_instr_copen : public sp_instr_stmt + + +class sp_instr_cclose : public sp_instr +{ + sp_instr_cclose(const sp_instr_cclose &); /**< Prevent use of these */ + void operator=(sp_instr_cclose &); + +public: + + sp_instr_cclose(uint ip, sp_pcontext *ctx, uint c) + : sp_instr(ip, ctx), m_cursor(c) + {} + + virtual ~sp_instr_cclose() + {} + + virtual int execute(THD *thd, uint *nextp); + + virtual void print(String *str); + +private: + + uint m_cursor; + +}; // class sp_instr_cclose : public sp_instr + + +class sp_instr_cfetch : public sp_instr +{ + sp_instr_cfetch(const sp_instr_cfetch &); /**< Prevent use of these */ + void operator=(sp_instr_cfetch &); + +public: + + sp_instr_cfetch(uint ip, sp_pcontext *ctx, uint c) + : sp_instr(ip, ctx), m_cursor(c) + { + m_varlist.empty(); + } + + virtual ~sp_instr_cfetch() + {} + + virtual int execute(THD *thd, uint *nextp); + + virtual void print(String *str); + + void add_to_varlist(struct sp_variable *var) + { + m_varlist.push_back(var); + } + +private: + + uint m_cursor; + List m_varlist; + +}; // class sp_instr_cfetch : public sp_instr + + +class sp_instr_error : public sp_instr +{ + sp_instr_error(const sp_instr_error &); /**< Prevent use of these */ + void operator=(sp_instr_error &); + +public: + + sp_instr_error(uint ip, sp_pcontext *ctx, int errcode) + : sp_instr(ip, ctx), m_errcode(errcode) + {} + + virtual ~sp_instr_error() + {} + + virtual int execute(THD *thd, uint *nextp); + + virtual void print(String *str); + + virtual uint opt_mark(sp_head *sp, List *leads) + { + marked= 1; + return UINT_MAX; + } + +private: + + int m_errcode; + +}; // class sp_instr_error : public sp_instr + + +class sp_instr_set_case_expr : public sp_instr_opt_meta +{ +public: + + sp_instr_set_case_expr(uint ip, sp_pcontext *ctx, uint case_expr_id, + Item *case_expr, LEX *lex) + : sp_instr_opt_meta(ip, ctx), + m_case_expr_id(case_expr_id), m_case_expr(case_expr), + m_lex_keeper(lex, TRUE) + {} + + virtual ~sp_instr_set_case_expr() + {} + + virtual int execute(THD *thd, uint *nextp); + + virtual int exec_core(THD *thd, uint *nextp); + + virtual void print(String *str); + + virtual uint opt_mark(sp_head *sp, List *leads); + + virtual void opt_move(uint dst, List *ibp); + + virtual void set_destination(uint old_dest, uint new_dest) + { + if (m_cont_dest == old_dest) + m_cont_dest= new_dest; + } + +private: + + uint m_case_expr_id; + Item *m_case_expr; + sp_lex_keeper m_lex_keeper; + +}; // class sp_instr_set_case_expr : public sp_instr_opt_meta + + +#ifndef NO_EMBEDDED_ACCESS_CHECKS +bool +sp_change_security_context(THD *thd, sp_head *sp, + Security_context **backup); +void +sp_restore_security_context(THD *thd, Security_context *backup); + +bool +set_routine_security_ctx(THD *thd, sp_head *sp, bool is_proc, + Security_context **save_ctx); +#endif /* NO_EMBEDDED_ACCESS_CHECKS */ + +TABLE_LIST * +sp_add_to_query_tables(THD *thd, LEX *lex, + const char *db, const char *name, + thr_lock_type locktype, + enum_mdl_type mdl_type); + +Item * +sp_prepare_func_item(THD* thd, Item **it_addr); + +bool +sp_eval_expr(THD *thd, Field *result_field, Item **expr_item_ptr); + +/** + @} (end of group Stored_Routines) +*/ + +#endif /* _SP_HEAD_H_ */ diff --git a/database/include/mysql/private/sp_pcontext.h b/database/include/mysql/private/sp_pcontext.h new file mode 100644 index 0000000..bf56698 --- /dev/null +++ b/database/include/mysql/private/sp_pcontext.h @@ -0,0 +1,462 @@ +/* -*- C++ -*- */ +/* Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef _SP_PCONTEXT_H_ +#define _SP_PCONTEXT_H_ + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif + +#include "sql_string.h" // LEX_STRING +#include "mysql_com.h" // enum_field_types +#include "field.h" // Create_field + +class sp_pcontext; + +typedef enum +{ + sp_param_in, + sp_param_out, + sp_param_inout +} sp_param_mode_t; + +typedef struct sp_variable +{ + LEX_STRING name; + enum enum_field_types type; + sp_param_mode_t mode; + + /* + offset -- this the index to the variable's value in the runtime frame. + This is calculated during parsing and used when creating sp_instr_set + instructions and Item_splocal items. + I.e. values are set/referred by array indexing in runtime. + */ + uint offset; + + Item *dflt; + Create_field field_def; +} sp_variable_t; + + +#define SP_LAB_IMPL 0 // Implicit label generated by parser +#define SP_LAB_BEGIN 1 // Label at BEGIN +#define SP_LAB_ITER 2 // Label at iteration control + +/* + An SQL/PSM label. Can refer to the identifier used with the + "label_name:" construct which may precede some SQL/PSM statements, or + to an implicit implementation-dependent identifier which the parser + inserts before a high-level flow control statement such as + IF/WHILE/REPEAT/LOOP, when such statement is rewritten into + a combination of low-level jump/jump_if instructions and labels. +*/ + +typedef struct sp_label +{ + char *name; + uint ip; // Instruction index + int type; // begin/iter or ref/free + sp_pcontext *ctx; // The label's context +} sp_label_t; + +typedef struct sp_cond_type +{ + enum { number, state, warning, notfound, exception } type; + char sqlstate[SQLSTATE_LENGTH+1]; + uint mysqlerr; +} sp_cond_type_t; + +/* + Sanity check for SQLSTATEs. Will not check if it's really an existing + state (there are just too many), but will check length bad characters. +*/ +extern bool +sp_cond_check(LEX_STRING *sqlstate); + +typedef struct sp_cond +{ + LEX_STRING name; + sp_cond_type_t *val; +} sp_cond_t; + +/** + The scope of a label in Stored Procedures, + for name resolution of labels in a parsing context. +*/ +enum label_scope_type +{ + /** + The labels declared in a parent context are in scope. + */ + LABEL_DEFAULT_SCOPE, + /** + The labels declared in a parent context are not in scope. + */ + LABEL_HANDLER_SCOPE +}; + +/** + The parse-time context, used to keep track of declared variables/parameters, + conditions, handlers, cursors and labels, during parsing. + sp_contexts are organized as a tree, with one object for each begin-end + block, one object for each exception handler, + plus a root-context for the parameters. + This is used during parsing for looking up defined names (e.g. declared + variables and visible labels), for error checking, and to calculate offsets + to be used at runtime. (During execution variable values, active handlers + and cursors, etc, are referred to by an index in a stack.) + Parsing contexts for exception handlers limit the visibility of labels. + The pcontext tree is also kept during execution and is used for error + checking (e.g. correct number of parameters), and in the future, used by + the debugger. +*/ + +class sp_pcontext : public Sql_alloc +{ +public: + + /** + Constructor. + Builds a parsing context root node. + */ + sp_pcontext(); + + // Free memory + void + destroy(); + + /** + Create and push a new context in the tree. + @param label_scope label scope for the new parsing context + @return the node created + */ + sp_pcontext * + push_context(label_scope_type label_scope); + + /** + Pop a node from the parsing context tree. + @return the parent node + */ + sp_pcontext * + pop_context(); + + sp_pcontext * + parent_context() + { + return m_parent; + } + + /* + Number of handlers/cursors to pop between this context and 'ctx'. + If 'exclusive' is true, don't count the last block we are leaving; + this is used for LEAVE where we will jump to the cpop/hpop instructions. + */ + uint + diff_handlers(sp_pcontext *ctx, bool exclusive); + uint + diff_cursors(sp_pcontext *ctx, bool exclusive); + + + // + // Parameters and variables + // + + /* + The maximum number of variables used in this and all child contexts + In the root, this gives us the number of slots needed for variables + during execution. + */ + inline uint + max_var_index() + { + return m_max_var_index; + } + + /* + The current number of variables used in the parents (from the root), + including this context. + */ + inline uint + current_var_count() + { + return m_var_offset + m_vars.elements; + } + + /* The number of variables in this context alone */ + inline uint + context_var_count() + { + return m_vars.elements; + } + + /* Map index in this pcontext to runtime offset */ + inline uint + var_context2runtime(uint i) + { + return m_var_offset + i; + } + + /* Set type of variable. 'i' is the offset from the top */ + inline void + set_type(uint i, enum enum_field_types type) + { + sp_variable_t *p= find_variable(i); + + if (p) + p->type= type; + } + + /* Set default value of variable. 'i' is the offset from the top */ + inline void + set_default(uint i, Item *it) + { + sp_variable_t *p= find_variable(i); + + if (p) + p->dflt= it; + } + + sp_variable_t * + push_variable(LEX_STRING *name, enum enum_field_types type, + sp_param_mode_t mode); + + /* + Retrieve definitions of fields from the current context and its + children. + */ + void + retrieve_field_definitions(List *field_def_lst); + + // Find by name + sp_variable_t * + find_variable(LEX_STRING *name, my_bool scoped=0); + + // Find by offset (from the top) + sp_variable_t * + find_variable(uint offset); + + /* + Set the current scope boundary (for default values). + The argument is the number of variables to skip. + */ + inline void + declare_var_boundary(uint n) + { + m_pboundary= n; + } + + /* + CASE expressions support. + */ + + inline int + register_case_expr() + { + return m_num_case_exprs++; + } + + inline int + get_num_case_exprs() const + { + return m_num_case_exprs; + } + + inline bool + push_case_expr_id(int case_expr_id) + { + return insert_dynamic(&m_case_expr_id_lst, (uchar*) &case_expr_id); + } + + inline void + pop_case_expr_id() + { + pop_dynamic(&m_case_expr_id_lst); + } + + inline int + get_current_case_expr_id() const + { + int case_expr_id; + + get_dynamic((DYNAMIC_ARRAY*)&m_case_expr_id_lst, (uchar*) &case_expr_id, + m_case_expr_id_lst.elements - 1); + + return case_expr_id; + } + + // + // Labels + // + + sp_label_t * + push_label(char *name, uint ip); + + sp_label_t * + find_label(char *name); + + inline sp_label_t * + last_label() + { + sp_label_t *lab= m_label.head(); + + if (!lab && m_parent) + lab= m_parent->last_label(); + return lab; + } + + inline sp_label_t * + pop_label() + { + return m_label.pop(); + } + + // + // Conditions + // + + int + push_cond(LEX_STRING *name, sp_cond_type_t *val); + + sp_cond_type_t * + find_cond(LEX_STRING *name, my_bool scoped=0); + + // + // Handlers + // + + inline void + push_handler(sp_cond_type_t *cond) + { + insert_dynamic(&m_handlers, (uchar*)&cond); + } + + bool + find_handler(sp_cond_type *cond); + + inline uint + max_handler_index() + { + return m_max_handler_index + m_context_handlers; + } + + inline void + add_handlers(uint n) + { + m_context_handlers+= n; + } + + // + // Cursors + // + + int + push_cursor(LEX_STRING *name); + + my_bool + find_cursor(LEX_STRING *name, uint *poff, my_bool scoped=0); + + /* Find by offset (for debugging only) */ + my_bool + find_cursor(uint offset, LEX_STRING *n); + + inline uint + max_cursor_index() + { + return m_max_cursor_index + m_cursors.elements; + } + + inline uint + current_cursor_count() + { + return m_cursor_offset + m_cursors.elements; + } + +protected: + + /** + Constructor for a tree node. + @param prev the parent parsing context + @param label_scope label_scope for this parsing context + */ + sp_pcontext(sp_pcontext *prev, label_scope_type label_scope); + + /* + m_max_var_index -- number of variables (including all types of arguments) + in this context including all children contexts. + + m_max_var_index >= m_vars.elements. + + m_max_var_index of the root parsing context contains number of all + variables (including arguments) in all enclosed contexts. + */ + uint m_max_var_index; + + // The maximum sub context's framesizes + uint m_max_cursor_index; + uint m_max_handler_index; + uint m_context_handlers; // No. of handlers in this context + +private: + + sp_pcontext *m_parent; // Parent context + + /* + m_var_offset -- this is an index of the first variable in this + parsing context. + + m_var_offset is 0 for root context. + + Since now each variable is stored in separate place, no reuse is done, + so m_var_offset is different for all enclosed contexts. + */ + uint m_var_offset; + + uint m_cursor_offset; // Cursor offset for this context + + /* + Boundary for finding variables in this context. This is the number + of variables currently "invisible" to default clauses. + This is normally 0, but will be larger during parsing of + DECLARE ... DEFAULT, to get the scope right for DEFAULT values. + */ + uint m_pboundary; + + int m_num_case_exprs; + + DYNAMIC_ARRAY m_vars; // Parameters/variables + DYNAMIC_ARRAY m_case_expr_id_lst; /* Stack of CASE expression ids. */ + DYNAMIC_ARRAY m_conds; // Conditions + DYNAMIC_ARRAY m_cursors; // Cursors + DYNAMIC_ARRAY m_handlers; // Handlers, for checking for duplicates + + List m_label; // The label list + + List m_children; // Children contexts, used for destruction + + /** + Scope of labels for this parsing context. + */ + label_scope_type m_label_scope; + +private: + sp_pcontext(const sp_pcontext &); /* Prevent use of these */ + void operator=(sp_pcontext &); +}; // class sp_pcontext : public Sql_alloc + + +#endif /* _SP_PCONTEXT_H_ */ diff --git a/database/include/mysql/private/sp_rcontext.h b/database/include/mysql/private/sp_rcontext.h new file mode 100644 index 0000000..8d210e8 --- /dev/null +++ b/database/include/mysql/private/sp_rcontext.h @@ -0,0 +1,370 @@ +/* -*- C++ -*- */ +/* Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef _SP_RCONTEXT_H_ +#define _SP_RCONTEXT_H_ + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif + +#include "sql_class.h" // select_result_interceptor + +struct sp_cond_type; +class sp_cursor; +struct sp_variable; +class sp_lex_keeper; +class sp_instr_cpush; +class Query_arena; +class sp_head; +class sp_pcontext; +class Item_cache; +typedef class st_select_lex_unit SELECT_LEX_UNIT; +class Server_side_cursor; + +#define SP_HANDLER_NONE 0 +#define SP_HANDLER_EXIT 1 +#define SP_HANDLER_CONTINUE 2 +#define SP_HANDLER_UNDO 3 + +typedef struct +{ + /** Condition caught by this HANDLER. */ + struct sp_cond_type *cond; + /** Location (instruction pointer) of the handler code. */ + uint handler; + /** Handler type (EXIT, CONTINUE). */ + int type; +} sp_handler_t; + +typedef struct +{ + /** Instruction pointer of the active handler. */ + uint ip; + /** Handler index of the active handler. */ + uint index; +} sp_active_handler_t; + + +class Sql_condition_info : public Sql_alloc +{ +public: + /** SQL error code. */ + uint m_sql_errno; + + /** Error level. */ + MYSQL_ERROR::enum_warning_level m_level; + + /** SQLSTATE. */ + char m_sql_state[SQLSTATE_LENGTH + 1]; + + /** Text message. */ + char m_message[MYSQL_ERRMSG_SIZE]; + + void set(uint sql_errno, const char* sqlstate, + MYSQL_ERROR::enum_warning_level level, + const char* msg) + { + m_sql_errno= sql_errno; + m_level= level; + + memcpy(m_sql_state, sqlstate, SQLSTATE_LENGTH); + m_sql_state[SQLSTATE_LENGTH]= '\0'; + + strncpy(m_message, msg, MYSQL_ERRMSG_SIZE); + } + + void clear() + { + m_sql_errno= 0; + m_level= MYSQL_ERROR::WARN_LEVEL_ERROR; + + m_sql_state[0]= '\0'; + m_message[0]= '\0'; + } +}; + + +/* + This class is a runtime context of a Stored Routine. It is used in an + execution and is intended to contain all dynamic objects (i.e. objects, which + can be changed during execution), such as: + - stored routine variables; + - cursors; + - handlers; + + Runtime context is used with sp_head class. sp_head class is intended to + contain all static things, related to the stored routines (code, for example). + sp_head instance creates runtime context for the execution of a stored + routine. + + There is a parsing context (an instance of sp_pcontext class), which is used + on parsing stage. However, now it contains some necessary for an execution + things, such as definition of used stored routine variables. That's why + runtime context needs a reference to the parsing context. +*/ + +class sp_rcontext : public Sql_alloc +{ + sp_rcontext(const sp_rcontext &); /* Prevent use of these */ + void operator=(sp_rcontext &); + + public: + + /* + Arena used to (re) allocate items on . E.g. reallocate INOUT/OUT + SP parameters when they don't fit into prealloced items. This + is common situation with String items. It is used mainly in + sp_eval_func_item(). + */ + Query_arena *callers_arena; + + /* + End a open result set before start executing a continue/exit + handler if one is found as otherwise the client will hang + due to a violation of the client/server protocol. + */ + bool end_partial_result_set; + +#ifndef DBUG_OFF + /* + The routine for which this runtime context is created. Used for checking + if correct runtime context is used for variable handling. + */ + sp_head *sp; +#endif + + sp_rcontext(sp_pcontext *root_parsing_ctx, Field *return_value_fld, + sp_rcontext *prev_runtime_ctx); + bool init(THD *thd); + + ~sp_rcontext(); + + int + set_variable(THD *thd, uint var_idx, Item **value); + + Item * + get_item(uint var_idx); + + Item ** + get_item_addr(uint var_idx); + + bool + set_return_value(THD *thd, Item **return_value_item); + + inline bool + is_return_value_set() const + { + return m_return_value_set; + } + + /* + SQL handlers support. + */ + + void push_handler(struct sp_cond_type *cond, uint h, int type); + + void pop_handlers(uint count); + + bool + find_handler(THD *thd, + uint sql_errno, + const char *sqlstate, + MYSQL_ERROR::enum_warning_level level, + const char *msg); + + Sql_condition_info *raised_condition() const; + + void + push_hstack(uint h); + + uint + pop_hstack(); + + bool + activate_handler(THD *thd, + uint *ip, + sp_instr *instr, + Query_arena *execute_arena, + Query_arena *backup_arena); + + + void + exit_handler(); + + void + push_cursor(sp_lex_keeper *lex_keeper, sp_instr_cpush *i); + + void + pop_cursors(uint count); + + inline void + pop_all_cursors() + { + pop_cursors(m_ccount); + } + + inline sp_cursor * + get_cursor(uint i) + { + return m_cstack[i]; + } + + /* + CASE expressions support. + */ + + int + set_case_expr(THD *thd, int case_expr_id, Item **case_expr_item_ptr); + + Item * + get_case_expr(int case_expr_id); + + Item ** + get_case_expr_addr(int case_expr_id); + +private: + sp_pcontext *m_root_parsing_ctx; + + /* Virtual table for storing variables. */ + TABLE *m_var_table; + + /* + Collection of Item_field proxies, each of them points to the corresponding + field in m_var_table. + */ + Item **m_var_items; + + /* + This is a pointer to a field, which should contain return value for stored + functions (only). For stored procedures, this pointer is NULL. + */ + Field *m_return_value_fld; + + /* + Indicates whether the return value (in m_return_value_fld) has been set + during execution. + */ + bool m_return_value_set; + + /** + TRUE if the context is created for a sub-statement. + */ + bool in_sub_stmt; + + sp_handler_t *m_handler; // Visible handlers + + /** + SQL conditions caught by each handler. + This is an array indexed by handler index. + */ + Sql_condition_info *m_raised_conditions; + + uint m_hcount; // Stack pointer for m_handler + uint *m_hstack; // Return stack for continue handlers + uint m_hsp; // Stack pointer for m_hstack + /** Active handler stack. */ + sp_active_handler_t *m_in_handler; + uint m_ihsp; // Stack pointer for m_in_handler + int m_hfound; // Set by find_handler; -1 if not found + + sp_cursor **m_cstack; + uint m_ccount; + + Item_cache **m_case_expr_holders; + + /* Previous runtime context (NULL if none) */ + sp_rcontext *m_prev_runtime_ctx; + +private: + bool init_var_table(THD *thd); + bool init_var_items(); + + Item_cache *create_case_expr_holder(THD *thd, const Item *item); + + int set_variable(THD *thd, Field *field, Item **value); +}; // class sp_rcontext : public Sql_alloc + + +/* + An interceptor of cursor result set used to implement + FETCH INTO . +*/ + +class Select_fetch_into_spvars: public select_result_interceptor +{ + List *spvar_list; + uint field_count; +public: + Select_fetch_into_spvars() {} /* Remove gcc warning */ + uint get_field_count() { return field_count; } + void set_spvar_list(List *vars) { spvar_list= vars; } + + virtual bool send_eof() { return FALSE; } + virtual int send_data(List &items); + virtual int prepare(List &list, SELECT_LEX_UNIT *u); +}; + + +/* A mediator between stored procedures and server side cursors */ + +class sp_cursor : public Sql_alloc +{ +public: + + sp_cursor(sp_lex_keeper *lex_keeper, sp_instr_cpush *i); + + virtual ~sp_cursor() + { + destroy(); + } + + sp_lex_keeper * + get_lex_keeper() { return m_lex_keeper; } + + int + open(THD *thd); + + int + close(THD *thd); + + inline bool + is_open() + { + return test(server_side_cursor); + } + + int + fetch(THD *, List *vars); + + inline sp_instr_cpush * + get_instr() + { + return m_i; + } + +private: + + Select_fetch_into_spvars result; + sp_lex_keeper *m_lex_keeper; + Server_side_cursor *server_side_cursor; + sp_instr_cpush *m_i; // My push instruction + void + destroy(); + +}; // class sp_cursor : public Sql_alloc + +#endif /* _SP_RCONTEXT_H_ */ diff --git a/database/include/mysql/private/spatial.h b/database/include/mysql/private/spatial.h new file mode 100644 index 0000000..c3f5f16 --- /dev/null +++ b/database/include/mysql/private/spatial.h @@ -0,0 +1,592 @@ +/* + Copyright (c) 2002, 2013, Oracle and/or its affiliates. + Copyright (c) 2009, 2013, Monty Program Ab. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef _spatial_h +#define _spatial_h + +#include "sql_string.h" /* String, LEX_STRING */ +#include + +#ifdef HAVE_SPATIAL + +class Gis_read_stream; + +#include "gcalc_tools.h" + +const uint SRID_SIZE= 4; +const uint SIZEOF_STORED_DOUBLE= 8; +const uint POINT_DATA_SIZE= (SIZEOF_STORED_DOUBLE * 2); +const uint WKB_HEADER_SIZE= 1+4; +const uint32 GET_SIZE_ERROR= ((uint32) -1); + +struct st_point_2d +{ + double x; + double y; +}; + +struct st_linear_ring +{ + uint32 n_points; + st_point_2d points; +}; + +/***************************** MBR *******************************/ + + +/* + It's ok that a lot of the functions are inline as these are only used once + in MySQL +*/ + +struct MBR +{ + double xmin, ymin, xmax, ymax; + + MBR() + { + xmin= ymin= DBL_MAX; + xmax= ymax= -DBL_MAX; + } + + MBR(const double xmin_arg, const double ymin_arg, + const double xmax_arg, const double ymax_arg) + :xmin(xmin_arg), ymin(ymin_arg), xmax(xmax_arg), ymax(ymax_arg) + {} + + MBR(const st_point_2d &min, const st_point_2d &max) + :xmin(min.x), ymin(min.y), xmax(max.x), ymax(max.y) + {} + + inline void add_xy(double x, double y) + { + /* Not using "else" for proper one point MBR calculation */ + if (x < xmin) + xmin= x; + if (x > xmax) + xmax= x; + if (y < ymin) + ymin= y; + if (y > ymax) + ymax= y; + } + void add_xy(const char *px, const char *py) + { + double x, y; + float8get(x, px); + float8get(y, py); + add_xy(x,y); + } + void add_mbr(const MBR *mbr) + { + if (mbr->xmin < xmin) + xmin= mbr->xmin; + if (mbr->xmax > xmax) + xmax= mbr->xmax; + if (mbr->ymin < ymin) + ymin= mbr->ymin; + if (mbr->ymax > ymax) + ymax= mbr->ymax; + } + void buffer(double d) + { + xmin-= d; + ymin-= d; + xmax+= d; + ymax+= d; + } + + int equals(const MBR *mbr) + { + /* The following should be safe, even if we compare doubles */ + return ((mbr->xmin == xmin) && (mbr->ymin == ymin) && + (mbr->xmax == xmax) && (mbr->ymax == ymax)); + } + + int disjoint(const MBR *mbr) + { + /* The following should be safe, even if we compare doubles */ + return ((mbr->xmin > xmax) || (mbr->ymin > ymax) || + (mbr->xmax < xmin) || (mbr->ymax < ymin)); + } + + int intersects(const MBR *mbr) + { + return !disjoint(mbr); + } + + int touches(const MBR *mbr) + { + /* The following should be safe, even if we compare doubles */ + return ((mbr->xmin == xmax || mbr->xmax == xmin) && + ((mbr->ymin >= ymin && mbr->ymin <= ymax) || + (mbr->ymax >= ymin && mbr->ymax <= ymax))) || + ((mbr->ymin == ymax || mbr->ymax == ymin) && + ((mbr->xmin >= xmin && mbr->xmin <= xmax) || + (mbr->xmax >= xmin && mbr->xmax <= xmax))); + } + + int within(const MBR *mbr) + { + /* The following should be safe, even if we compare doubles */ + return ((mbr->xmin <= xmin) && (mbr->ymin <= ymin) && + (mbr->xmax >= xmax) && (mbr->ymax >= ymax)); + } + + int contains(const MBR *mbr) + { + /* The following should be safe, even if we compare doubles */ + return ((mbr->xmin >= xmin) && (mbr->ymin >= ymin) && + (mbr->xmax <= xmax) && (mbr->ymax <= ymax)); + } + + bool inner_point(double x, double y) const + { + /* The following should be safe, even if we compare doubles */ + return (xminx) && (yminy); + } + + /** + The dimension maps to an integer as: + - Polygon -> 2 + - Horizontal or vertical line -> 1 + - Point -> 0 + - Invalid MBR -> -1 + */ + int dimension() const + { + int d= 0; + + if (xmin > xmax) + return -1; + else if (xmin < xmax) + d++; + + if (ymin > ymax) + return -1; + else if (ymin < ymax) + d++; + + return d; + } + + int overlaps(const MBR *mbr) + { + /* + overlaps() requires that some point inside *this is also inside + *mbr, and that both geometries and their intersection are of the + same dimension. + */ + int d = dimension(); + + if (d != mbr->dimension() || d <= 0 || contains(mbr) || within(mbr)) + return 0; + + MBR intersection(max(xmin, mbr->xmin), max(ymin, mbr->ymin), + min(xmax, mbr->xmax), min(ymax, mbr->ymax)); + + return (d == intersection.dimension()); + } + + int valid() const + { return xmin <= xmax && ymin <= ymax; } +}; + + +/***************************** Geometry *******************************/ + +struct Geometry_buffer; + +class Geometry +{ +public: + Geometry() {} /* Remove gcc warning */ + virtual ~Geometry() {} /* Remove gcc warning */ + static void *operator new(size_t size, void *buffer) + { + return buffer; + } + + static void operator delete(void *ptr, void *buffer) + {} + + static void operator delete(void *buffer) + {} + + static String bad_geometry_data; + + enum wkbType + { + wkb_point= 1, + wkb_linestring= 2, + wkb_polygon= 3, + wkb_multipoint= 4, + wkb_multilinestring= 5, + wkb_multipolygon= 6, + wkb_geometrycollection= 7, + wkb_last=7 + }; + enum wkbByteOrder + { + wkb_xdr= 0, /* Big Endian */ + wkb_ndr= 1 /* Little Endian */ + }; + + /** Callback which creates Geometry objects on top of a given placement. */ + typedef Geometry *(*create_geom_t)(char *); + + class Class_info + { + public: + LEX_STRING m_name; + int m_type_id; + create_geom_t m_create_func; + Class_info(const char *name, int type_id, create_geom_t create_func); + }; + + virtual const Class_info *get_class_info() const=0; + virtual uint32 get_data_size() const=0; + virtual bool init_from_wkt(Gis_read_stream *trs, String *wkb)=0; + /* returns the length of the wkb that was read */ + virtual uint init_from_wkb(const char *wkb, uint len, wkbByteOrder bo, + String *res)=0; + virtual uint init_from_opresult(String *bin, + const char *opres, uint res_len) + { return init_from_wkb(opres + 4, UINT_MAX32, wkb_ndr, bin) + 4; } + + virtual bool get_data_as_wkt(String *txt, const char **end) const=0; + virtual bool get_mbr(MBR *mbr, const char **end) const=0; + virtual bool dimension(uint32 *dim, const char **end) const=0; + virtual int get_x(double *x) const { return -1; } + virtual int get_y(double *y) const { return -1; } + virtual int geom_length(double *len, const char **end) const { return -1; } + virtual int area(double *ar, const char **end) const { return -1;} + virtual int is_closed(int *closed) const { return -1; } + virtual int num_interior_ring(uint32 *n_int_rings) const { return -1; } + virtual int num_points(uint32 *n_points) const { return -1; } + virtual int num_geometries(uint32 *num) const { return -1; } + virtual int start_point(String *point) const { return -1; } + virtual int end_point(String *point) const { return -1; } + virtual int exterior_ring(String *ring) const { return -1; } + virtual int centroid(String *point) const { return -1; } + virtual int point_n(uint32 num, String *result) const { return -1; } + virtual int interior_ring_n(uint32 num, String *result) const { return -1; } + virtual int geometry_n(uint32 num, String *result) const { return -1; } + virtual int store_shapes(Gcalc_shape_transporter *trn) const=0; + +public: + static Geometry *create_by_typeid(Geometry_buffer *buffer, int type_id); + + static Geometry *construct(Geometry_buffer *buffer, + const char *data, uint32 data_len); + static Geometry *create_from_wkt(Geometry_buffer *buffer, + Gis_read_stream *trs, String *wkt, + bool init_stream=1); + static Geometry *create_from_wkb(Geometry_buffer *buffer, + const char *wkb, uint32 len, String *res); + static int create_from_opresult(Geometry_buffer *g_buf, + String *res, Gcalc_result_receiver &rr); + int as_wkt(String *wkt, const char **end); + + inline void set_data_ptr(const char *data, uint32 data_len) + { + m_data= data; + m_data_end= data + data_len; + } + + inline void shift_wkb_header() + { + m_data+= WKB_HEADER_SIZE; + } + + bool envelope(String *result) const; + static Class_info *ci_collection[wkb_last+1]; + +protected: + static Class_info *find_class(int type_id) + { + return ((type_id < wkb_point) || (type_id > wkb_last)) ? + NULL : ci_collection[type_id]; + } + static Class_info *find_class(const char *name, uint32 len); + const char *append_points(String *txt, uint32 n_points, + const char *data, uint32 offset) const; + bool create_point(String *result, const char *data) const; + bool create_point(String *result, double x, double y) const; + const char *get_mbr_for_points(MBR *mbr, const char *data, uint offset) + const; + + /** + Check if there're enough data remaining as requested + + @arg cur_data pointer to the position in the binary form + @arg data_amount number of points expected + @return true if not enough data + */ + inline bool no_data(const char *cur_data, size_t data_amount) const + { + return (cur_data + data_amount > m_data_end); + } + + /** + Check if there're enough points remaining as requested + + Need to perform the calculation in logical units, since multiplication + can overflow the size data type. + + @arg data pointer to the begining of the points array + @arg expected_points number of points expected + @arg extra_point_space extra space for each point element in the array + @return true if there are not enough points + */ + inline bool not_enough_points(const char *data, uint32 expected_points, + uint32 extra_point_space = 0) const + { + return (m_data_end < data || + (expected_points > ((m_data_end - data) / + (POINT_DATA_SIZE + extra_point_space)))); + } + const char *m_data; + const char *m_data_end; +}; + + +/***************************** Point *******************************/ + +class Gis_point: public Geometry +{ +public: + Gis_point() {} /* Remove gcc warning */ + virtual ~Gis_point() {} /* Remove gcc warning */ + uint32 get_data_size() const; + bool init_from_wkt(Gis_read_stream *trs, String *wkb); + uint init_from_wkb(const char *wkb, uint len, wkbByteOrder bo, String *res); + bool get_data_as_wkt(String *txt, const char **end) const; + bool get_mbr(MBR *mbr, const char **end) const; + + int get_xy(double *x, double *y) const + { + const char *data= m_data; + if (no_data(data, SIZEOF_STORED_DOUBLE * 2)) + return 1; + float8get(*x, data); + float8get(*y, data + SIZEOF_STORED_DOUBLE); + return 0; + } + + int get_x(double *x) const + { + if (no_data(m_data, SIZEOF_STORED_DOUBLE)) + return 1; + float8get(*x, m_data); + return 0; + } + + int get_y(double *y) const + { + const char *data= m_data; + if (no_data(data, SIZEOF_STORED_DOUBLE * 2)) return 1; + float8get(*y, data + SIZEOF_STORED_DOUBLE); + return 0; + } + + int geom_length(double *len, const char **end) const; + int area(double *ar, const char **end) const; + bool dimension(uint32 *dim, const char **end) const + { + *dim= 0; + *end= 0; /* No default end */ + return 0; + } + int store_shapes(Gcalc_shape_transporter *trn) const; + const Class_info *get_class_info() const; +}; + + +/***************************** LineString *******************************/ + +class Gis_line_string: public Geometry +{ +public: + Gis_line_string() {} /* Remove gcc warning */ + virtual ~Gis_line_string() {} /* Remove gcc warning */ + uint32 get_data_size() const; + bool init_from_wkt(Gis_read_stream *trs, String *wkb); + uint init_from_wkb(const char *wkb, uint len, wkbByteOrder bo, String *res); + bool get_data_as_wkt(String *txt, const char **end) const; + bool get_mbr(MBR *mbr, const char **end) const; + int geom_length(double *len, const char **end) const; + int area(double *ar, const char **end) const; + int is_closed(int *closed) const; + int num_points(uint32 *n_points) const; + int start_point(String *point) const; + int end_point(String *point) const; + int point_n(uint32 n, String *result) const; + bool dimension(uint32 *dim, const char **end) const + { + *dim= 1; + *end= 0; /* No default end */ + return 0; + } + int store_shapes(Gcalc_shape_transporter *trn) const; + const Class_info *get_class_info() const; +}; + + +/***************************** Polygon *******************************/ + +class Gis_polygon: public Geometry +{ +public: + Gis_polygon() {} /* Remove gcc warning */ + virtual ~Gis_polygon() {} /* Remove gcc warning */ + uint32 get_data_size() const; + bool init_from_wkt(Gis_read_stream *trs, String *wkb); + uint init_from_wkb(const char *wkb, uint len, wkbByteOrder bo, String *res); + uint init_from_opresult(String *bin, const char *opres, uint res_len); + bool get_data_as_wkt(String *txt, const char **end) const; + bool get_mbr(MBR *mbr, const char **end) const; + int area(double *ar, const char **end) const; + int exterior_ring(String *result) const; + int num_interior_ring(uint32 *n_int_rings) const; + int interior_ring_n(uint32 num, String *result) const; + int centroid_xy(double *x, double *y) const; + int centroid(String *result) const; + bool dimension(uint32 *dim, const char **end) const + { + *dim= 2; + *end= 0; /* No default end */ + return 0; + } + int store_shapes(Gcalc_shape_transporter *trn) const; + const Class_info *get_class_info() const; +}; + + +/***************************** MultiPoint *******************************/ + +class Gis_multi_point: public Geometry +{ + // Maximum number of points in MultiPoint that can fit into String + static const uint32 max_n_points= + (uint32) (UINT_MAX32 - WKB_HEADER_SIZE - 4 /* n_points */) / + (WKB_HEADER_SIZE + POINT_DATA_SIZE); +public: + Gis_multi_point() {} /* Remove gcc warning */ + virtual ~Gis_multi_point() {} /* Remove gcc warning */ + uint32 get_data_size() const; + bool init_from_wkt(Gis_read_stream *trs, String *wkb); + uint init_from_wkb(const char *wkb, uint len, wkbByteOrder bo, String *res); + uint init_from_opresult(String *bin, const char *opres, uint res_len); + bool get_data_as_wkt(String *txt, const char **end) const; + bool get_mbr(MBR *mbr, const char **end) const; + int num_geometries(uint32 *num) const; + int geometry_n(uint32 num, String *result) const; + bool dimension(uint32 *dim, const char **end) const + { + *dim= 0; + *end= 0; /* No default end */ + return 0; + } + int store_shapes(Gcalc_shape_transporter *trn) const; + const Class_info *get_class_info() const; +}; + + +/***************************** MultiLineString *******************************/ + +class Gis_multi_line_string: public Geometry +{ +public: + Gis_multi_line_string() {} /* Remove gcc warning */ + virtual ~Gis_multi_line_string() {} /* Remove gcc warning */ + uint32 get_data_size() const; + bool init_from_wkt(Gis_read_stream *trs, String *wkb); + uint init_from_wkb(const char *wkb, uint len, wkbByteOrder bo, String *res); + uint init_from_opresult(String *bin, const char *opres, uint res_len); + bool get_data_as_wkt(String *txt, const char **end) const; + bool get_mbr(MBR *mbr, const char **end) const; + int num_geometries(uint32 *num) const; + int geometry_n(uint32 num, String *result) const; + int geom_length(double *len, const char **end) const; + int is_closed(int *closed) const; + bool dimension(uint32 *dim, const char **end) const + { + *dim= 1; + *end= 0; /* No default end */ + return 0; + } + int store_shapes(Gcalc_shape_transporter *trn) const; + const Class_info *get_class_info() const; +}; + + +/***************************** MultiPolygon *******************************/ + +class Gis_multi_polygon: public Geometry +{ +public: + Gis_multi_polygon() {} /* Remove gcc warning */ + virtual ~Gis_multi_polygon() {} /* Remove gcc warning */ + uint32 get_data_size() const; + bool init_from_wkt(Gis_read_stream *trs, String *wkb); + uint init_from_wkb(const char *wkb, uint len, wkbByteOrder bo, String *res); + bool get_data_as_wkt(String *txt, const char **end) const; + bool get_mbr(MBR *mbr, const char **end) const; + int num_geometries(uint32 *num) const; + int geometry_n(uint32 num, String *result) const; + int area(double *ar, const char **end) const; + int centroid(String *result) const; + bool dimension(uint32 *dim, const char **end) const + { + *dim= 2; + *end= 0; /* No default end */ + return 0; + } + int store_shapes(Gcalc_shape_transporter *trn) const; + const Class_info *get_class_info() const; + uint init_from_opresult(String *bin, const char *opres, uint res_len); +}; + + +/*********************** GeometryCollection *******************************/ + +class Gis_geometry_collection: public Geometry +{ +public: + Gis_geometry_collection() {} /* Remove gcc warning */ + virtual ~Gis_geometry_collection() {} /* Remove gcc warning */ + uint32 get_data_size() const; + bool init_from_wkt(Gis_read_stream *trs, String *wkb); + uint init_from_wkb(const char *wkb, uint len, wkbByteOrder bo, String *res); + uint init_from_opresult(String *bin, const char *opres, uint res_len); + bool get_data_as_wkt(String *txt, const char **end) const; + bool get_mbr(MBR *mbr, const char **end) const; + int area(double *ar, const char **end) const; + int geom_length(double *len, const char **end) const; + int num_geometries(uint32 *num) const; + int geometry_n(uint32 num, String *result) const; + bool dimension(uint32 *dim, const char **end) const; + int store_shapes(Gcalc_shape_transporter *trn) const; + const Class_info *get_class_info() const; +}; + +struct Geometry_buffer : public + my_aligned_storage {}; + +#endif /*HAVE_SPATIAL*/ +#endif diff --git a/database/include/mysql/private/sql_acl.h b/database/include/mysql/private/sql_acl.h new file mode 100644 index 0000000..b6e83b6 --- /dev/null +++ b/database/include/mysql/private/sql_acl.h @@ -0,0 +1,385 @@ +#ifndef SQL_ACL_INCLUDED +#define SQL_ACL_INCLUDED + +/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#include "my_global.h" /* NO_EMBEDDED_ACCESS_CHECKS */ +#include "violite.h" /* SSL_type */ +#include "sql_class.h" /* LEX_COLUMN */ + +#define SELECT_ACL (1L << 0) +#define INSERT_ACL (1L << 1) +#define UPDATE_ACL (1L << 2) +#define DELETE_ACL (1L << 3) +#define CREATE_ACL (1L << 4) +#define DROP_ACL (1L << 5) +#define RELOAD_ACL (1L << 6) +#define SHUTDOWN_ACL (1L << 7) +#define PROCESS_ACL (1L << 8) +#define FILE_ACL (1L << 9) +#define GRANT_ACL (1L << 10) +#define REFERENCES_ACL (1L << 11) +#define INDEX_ACL (1L << 12) +#define ALTER_ACL (1L << 13) +#define SHOW_DB_ACL (1L << 14) +#define SUPER_ACL (1L << 15) +#define CREATE_TMP_ACL (1L << 16) +#define LOCK_TABLES_ACL (1L << 17) +#define EXECUTE_ACL (1L << 18) +#define REPL_SLAVE_ACL (1L << 19) +#define REPL_CLIENT_ACL (1L << 20) +#define CREATE_VIEW_ACL (1L << 21) +#define SHOW_VIEW_ACL (1L << 22) +#define CREATE_PROC_ACL (1L << 23) +#define ALTER_PROC_ACL (1L << 24) +#define CREATE_USER_ACL (1L << 25) +#define EVENT_ACL (1L << 26) +#define TRIGGER_ACL (1L << 27) +#define CREATE_TABLESPACE_ACL (1L << 28) +/* + don't forget to update + 1. static struct show_privileges_st sys_privileges[] + 2. static const char *command_array[] and static uint command_lengths[] + 3. mysql_system_tables.sql and mysql_system_tables_fix.sql + 4. acl_init() or whatever - to define behaviour for old privilege tables + 5. sql_yacc.yy - for GRANT/REVOKE to work +*/ +#define NO_ACCESS (1L << 30) +#define DB_ACLS \ +(UPDATE_ACL | SELECT_ACL | INSERT_ACL | DELETE_ACL | CREATE_ACL | DROP_ACL | \ + GRANT_ACL | REFERENCES_ACL | INDEX_ACL | ALTER_ACL | CREATE_TMP_ACL | \ + LOCK_TABLES_ACL | EXECUTE_ACL | CREATE_VIEW_ACL | SHOW_VIEW_ACL | \ + CREATE_PROC_ACL | ALTER_PROC_ACL | EVENT_ACL | TRIGGER_ACL) + +#define TABLE_ACLS \ +(SELECT_ACL | INSERT_ACL | UPDATE_ACL | DELETE_ACL | CREATE_ACL | DROP_ACL | \ + GRANT_ACL | REFERENCES_ACL | INDEX_ACL | ALTER_ACL | CREATE_VIEW_ACL | \ + SHOW_VIEW_ACL | TRIGGER_ACL) + +#define COL_ACLS \ +(SELECT_ACL | INSERT_ACL | UPDATE_ACL | REFERENCES_ACL) + +#define PROC_ACLS \ +(ALTER_PROC_ACL | EXECUTE_ACL | GRANT_ACL) + +#define SHOW_PROC_ACLS \ +(ALTER_PROC_ACL | EXECUTE_ACL | CREATE_PROC_ACL) + +#define GLOBAL_ACLS \ +(SELECT_ACL | INSERT_ACL | UPDATE_ACL | DELETE_ACL | CREATE_ACL | DROP_ACL | \ + RELOAD_ACL | SHUTDOWN_ACL | PROCESS_ACL | FILE_ACL | GRANT_ACL | \ + REFERENCES_ACL | INDEX_ACL | ALTER_ACL | SHOW_DB_ACL | SUPER_ACL | \ + CREATE_TMP_ACL | LOCK_TABLES_ACL | REPL_SLAVE_ACL | REPL_CLIENT_ACL | \ + EXECUTE_ACL | CREATE_VIEW_ACL | SHOW_VIEW_ACL | CREATE_PROC_ACL | \ + ALTER_PROC_ACL | CREATE_USER_ACL | EVENT_ACL | TRIGGER_ACL | \ + CREATE_TABLESPACE_ACL) + +#define DEFAULT_CREATE_PROC_ACLS \ +(ALTER_PROC_ACL | EXECUTE_ACL) + +#define SHOW_CREATE_TABLE_ACLS \ +(SELECT_ACL | INSERT_ACL | UPDATE_ACL | DELETE_ACL | \ + CREATE_ACL | DROP_ACL | ALTER_ACL | INDEX_ACL | \ + TRIGGER_ACL | REFERENCES_ACL | GRANT_ACL | CREATE_VIEW_ACL | SHOW_VIEW_ACL) + +/* + Defines to change the above bits to how things are stored in tables + This is needed as the 'host' and 'db' table is missing a few privileges +*/ + +/* Privileges that needs to be reallocated (in continous chunks) */ +#define DB_CHUNK0 (SELECT_ACL | INSERT_ACL | UPDATE_ACL | DELETE_ACL | \ + CREATE_ACL | DROP_ACL) +#define DB_CHUNK1 (GRANT_ACL | REFERENCES_ACL | INDEX_ACL | ALTER_ACL) +#define DB_CHUNK2 (CREATE_TMP_ACL | LOCK_TABLES_ACL) +#define DB_CHUNK3 (CREATE_VIEW_ACL | SHOW_VIEW_ACL | \ + CREATE_PROC_ACL | ALTER_PROC_ACL ) +#define DB_CHUNK4 (EXECUTE_ACL) +#define DB_CHUNK5 (EVENT_ACL | TRIGGER_ACL) + +#define fix_rights_for_db(A) (((A) & DB_CHUNK0) | \ + (((A) << 4) & DB_CHUNK1) | \ + (((A) << 6) & DB_CHUNK2) | \ + (((A) << 9) & DB_CHUNK3) | \ + (((A) << 2) & DB_CHUNK4))| \ + (((A) << 9) & DB_CHUNK5) +#define get_rights_for_db(A) (((A) & DB_CHUNK0) | \ + (((A) & DB_CHUNK1) >> 4) | \ + (((A) & DB_CHUNK2) >> 6) | \ + (((A) & DB_CHUNK3) >> 9) | \ + (((A) & DB_CHUNK4) >> 2))| \ + (((A) & DB_CHUNK5) >> 9) +#define TBL_CHUNK0 DB_CHUNK0 +#define TBL_CHUNK1 DB_CHUNK1 +#define TBL_CHUNK2 (CREATE_VIEW_ACL | SHOW_VIEW_ACL) +#define TBL_CHUNK3 TRIGGER_ACL +#define fix_rights_for_table(A) (((A) & TBL_CHUNK0) | \ + (((A) << 4) & TBL_CHUNK1) | \ + (((A) << 11) & TBL_CHUNK2) | \ + (((A) << 15) & TBL_CHUNK3)) +#define get_rights_for_table(A) (((A) & TBL_CHUNK0) | \ + (((A) & TBL_CHUNK1) >> 4) | \ + (((A) & TBL_CHUNK2) >> 11) | \ + (((A) & TBL_CHUNK3) >> 15)) +#define fix_rights_for_column(A) (((A) & 7) | (((A) & ~7) << 8)) +#define get_rights_for_column(A) (((A) & 7) | ((A) >> 8)) +#define fix_rights_for_procedure(A) ((((A) << 18) & EXECUTE_ACL) | \ + (((A) << 23) & ALTER_PROC_ACL) | \ + (((A) << 8) & GRANT_ACL)) +#define get_rights_for_procedure(A) ((((A) & EXECUTE_ACL) >> 18) | \ + (((A) & ALTER_PROC_ACL) >> 23) | \ + (((A) & GRANT_ACL) >> 8)) + +enum mysql_db_table_field +{ + MYSQL_DB_FIELD_HOST = 0, + MYSQL_DB_FIELD_DB, + MYSQL_DB_FIELD_USER, + MYSQL_DB_FIELD_SELECT_PRIV, + MYSQL_DB_FIELD_INSERT_PRIV, + MYSQL_DB_FIELD_UPDATE_PRIV, + MYSQL_DB_FIELD_DELETE_PRIV, + MYSQL_DB_FIELD_CREATE_PRIV, + MYSQL_DB_FIELD_DROP_PRIV, + MYSQL_DB_FIELD_GRANT_PRIV, + MYSQL_DB_FIELD_REFERENCES_PRIV, + MYSQL_DB_FIELD_INDEX_PRIV, + MYSQL_DB_FIELD_ALTER_PRIV, + MYSQL_DB_FIELD_CREATE_TMP_TABLE_PRIV, + MYSQL_DB_FIELD_LOCK_TABLES_PRIV, + MYSQL_DB_FIELD_CREATE_VIEW_PRIV, + MYSQL_DB_FIELD_SHOW_VIEW_PRIV, + MYSQL_DB_FIELD_CREATE_ROUTINE_PRIV, + MYSQL_DB_FIELD_ALTER_ROUTINE_PRIV, + MYSQL_DB_FIELD_EXECUTE_PRIV, + MYSQL_DB_FIELD_EVENT_PRIV, + MYSQL_DB_FIELD_TRIGGER_PRIV, + MYSQL_DB_FIELD_COUNT +}; + +extern const TABLE_FIELD_DEF mysql_db_table_def; +extern bool mysql_user_table_is_in_short_password_format; + + +static inline int access_denied_error_code(int passwd_used) +{ + return passwd_used == 2 ? ER_ACCESS_DENIED_NO_PASSWORD_ERROR + : ER_ACCESS_DENIED_ERROR; +} + + +/* prototypes */ + +bool hostname_requires_resolving(const char *hostname); +my_bool acl_init(bool dont_read_acl_tables); +my_bool acl_reload(THD *thd); +void acl_free(bool end=0); +ulong acl_get(const char *host, const char *ip, + const char *user, const char *db, my_bool db_is_pattern); +bool acl_authenticate(THD *thd, uint connect_errors, uint com_change_user_pkt_len); +bool acl_getroot(Security_context *sctx, char *user, char *host, + char *ip, char *db); +bool acl_check_host(const char *host, const char *ip); +int check_change_password(THD *thd, const char *host, const char *user, + char *password, uint password_len); +bool change_password(THD *thd, const char *host, const char *user, + char *password); +bool mysql_grant(THD *thd, const char *db, List &user_list, + ulong rights, bool revoke, bool is_proxy); +int mysql_table_grant(THD *thd, TABLE_LIST *table, List &user_list, + List &column_list, ulong rights, + bool revoke); +bool mysql_routine_grant(THD *thd, TABLE_LIST *table, bool is_proc, + List &user_list, ulong rights, + bool revoke, bool write_to_binlog); +my_bool grant_init(); +void grant_free(void); +my_bool grant_reload(THD *thd); +bool check_grant(THD *thd, ulong want_access, TABLE_LIST *tables, + bool any_combination_will_do, uint number, bool no_errors); +bool check_grant_column (THD *thd, GRANT_INFO *grant, + const char *db_name, const char *table_name, + const char *name, uint length, Security_context *sctx); +bool check_column_grant_in_table_ref(THD *thd, TABLE_LIST * table_ref, + const char *name, uint length); +bool check_grant_all_columns(THD *thd, ulong want_access, + Field_iterator_table_ref *fields); +bool check_grant_routine(THD *thd, ulong want_access, + TABLE_LIST *procs, bool is_proc, bool no_error); +bool check_grant_db(THD *thd,const char *db); +ulong get_table_grant(THD *thd, TABLE_LIST *table); +ulong get_column_grant(THD *thd, GRANT_INFO *grant, + const char *db_name, const char *table_name, + const char *field_name); +bool mysql_show_grants(THD *thd, LEX_USER *user); +void get_privilege_desc(char *to, uint max_length, ulong access); +void get_mqh(const char *user, const char *host, USER_CONN *uc); +bool mysql_create_user(THD *thd, List &list); +bool mysql_drop_user(THD *thd, List &list); +bool mysql_rename_user(THD *thd, List &list); +bool mysql_revoke_all(THD *thd, List &list); +void fill_effective_table_privileges(THD *thd, GRANT_INFO *grant, + const char *db, const char *table); +bool sp_revoke_privileges(THD *thd, const char *sp_db, const char *sp_name, + bool is_proc); +bool sp_grant_privileges(THD *thd, const char *sp_db, const char *sp_name, + bool is_proc); +bool check_routine_level_acl(THD *thd, const char *db, const char *name, + bool is_proc); +bool is_acl_user(const char *host, const char *user); +int fill_schema_user_privileges(THD *thd, TABLE_LIST *tables, COND *cond); +int fill_schema_schema_privileges(THD *thd, TABLE_LIST *tables, COND *cond); +int fill_schema_table_privileges(THD *thd, TABLE_LIST *tables, COND *cond); +int fill_schema_column_privileges(THD *thd, TABLE_LIST *tables, COND *cond); +int wild_case_compare(CHARSET_INFO *cs, const char *str,const char *wildstr); + +#ifdef NO_EMBEDDED_ACCESS_CHECKS +#define check_grant(A,B,C,D,E,F) 0 +#define check_grant_db(A,B) 0 +#endif + +/** + Result of an access check for an internal schema or table. + Internal ACL checks are always performed *before* using + the grant tables. + This mechanism enforces that the server implementation has full + control on its internal tables. + Depending on the internal check result, the server implementation + can choose to: + - always allow access, + - always deny access, + - delegate the decision to the database administrator, + by using the grant tables. +*/ +enum ACL_internal_access_result +{ + /** + Access granted for all the requested privileges, + do not use the grant tables. + This flag is used only for the INFORMATION_SCHEMA privileges, + for compatibility reasons. + */ + ACL_INTERNAL_ACCESS_GRANTED, + /** Access denied, do not use the grant tables. */ + ACL_INTERNAL_ACCESS_DENIED, + /** No decision yet, use the grant tables. */ + ACL_INTERNAL_ACCESS_CHECK_GRANT +}; + +/** + Per internal table ACL access rules. + This class is an interface. + Per table(s) specific access rule should be implemented in a subclass. + @sa ACL_internal_schema_access +*/ +class ACL_internal_table_access +{ +public: + ACL_internal_table_access() + {} + + virtual ~ACL_internal_table_access() + {} + + /** + Check access to an internal table. + When a privilege is granted, this method add the requested privilege + to save_priv. + @param want_access the privileges requested + @param [in, out] save_priv the privileges granted + @return + @retval ACL_INTERNAL_ACCESS_GRANTED All the requested privileges + are granted, and saved in save_priv. + @retval ACL_INTERNAL_ACCESS_DENIED At least one of the requested + privileges was denied. + @retval ACL_INTERNAL_ACCESS_CHECK_GRANT No requested privilege + was denied, and grant should be checked for at least one + privilege. Requested privileges that are granted, if any, are saved + in save_priv. + */ + virtual ACL_internal_access_result check(ulong want_access, + ulong *save_priv) const= 0; +}; + +/** + Per internal schema ACL access rules. + This class is an interface. + Each per schema specific access rule should be implemented + in a different subclass, and registered. + Per schema access rules can control: + - every schema privileges on schema.* + - every table privileges on schema.table + @sa ACL_internal_schema_registry +*/ +class ACL_internal_schema_access +{ +public: + ACL_internal_schema_access() + {} + + virtual ~ACL_internal_schema_access() + {} + + /** + Check access to an internal schema. + @param want_access the privileges requested + @param [in, out] save_priv the privileges granted + @return + @retval ACL_INTERNAL_ACCESS_GRANTED All the requested privileges + are granted, and saved in save_priv. + @retval ACL_INTERNAL_ACCESS_DENIED At least one of the requested + privileges was denied. + @retval ACL_INTERNAL_ACCESS_CHECK_GRANT No requested privilege + was denied, and grant should be checked for at least one + privilege. Requested privileges that are granted, if any, are saved + in save_priv. + */ + virtual ACL_internal_access_result check(ulong want_access, + ulong *save_priv) const= 0; + + /** + Search for per table ACL access rules by table name. + @param name the table name + @return per table access rules, or NULL + */ + virtual const ACL_internal_table_access *lookup(const char *name) const= 0; +}; + +/** + A registry for per internal schema ACL. + An 'internal schema' is a database schema maintained by the + server implementation, such as 'performance_schema' and 'INFORMATION_SCHEMA'. +*/ +class ACL_internal_schema_registry +{ +public: + static void register_schema(const LEX_STRING *name, + const ACL_internal_schema_access *access); + static const ACL_internal_schema_access *lookup(const char *name); +}; + +const ACL_internal_schema_access * +get_cached_schema_access(GRANT_INTERNAL_INFO *grant_internal_info, + const char *schema_name); + +const ACL_internal_table_access * +get_cached_table_access(GRANT_INTERNAL_INFO *grant_internal_info, + const char *schema_name, + const char *table_name); + +bool acl_check_proxy_grant_access (THD *thd, const char *host, const char *user, + bool with_grant); +#endif /* SQL_ACL_INCLUDED */ diff --git a/database/include/mysql/private/sql_admin.h b/database/include/mysql/private/sql_admin.h new file mode 100644 index 0000000..7de5917 --- /dev/null +++ b/database/include/mysql/private/sql_admin.h @@ -0,0 +1,134 @@ +/* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef SQL_TABLE_MAINTENANCE_H +#define SQL_TABLE_MAINTENANCE_H + +/* Must be able to hold ALTER TABLE t PARTITION BY ... KEY ALGORITHM = 1 ... */ +#define SQL_ADMIN_MSG_TEXT_SIZE 128 * 1024 + +bool mysql_assign_to_keycache(THD* thd, TABLE_LIST* table_list, + LEX_STRING *key_cache_name); +bool mysql_preload_keys(THD* thd, TABLE_LIST* table_list); +int reassign_keycache_tables(THD* thd, KEY_CACHE *src_cache, + KEY_CACHE *dst_cache); + +/** + Analyze_statement represents the ANALYZE TABLE statement. +*/ +class Analyze_table_statement : public Sql_statement +{ +public: + /** + Constructor, used to represent a ANALYZE TABLE statement. + @param lex the LEX structure for this statement. + */ + Analyze_table_statement(LEX *lex) + : Sql_statement(lex) + {} + + ~Analyze_table_statement() + {} + + /** + Execute a ANALYZE TABLE statement at runtime. + @param thd the current thread. + @return false on success. + */ + bool execute(THD *thd); +}; + + + +/** + Check_table_statement represents the CHECK TABLE statement. +*/ +class Check_table_statement : public Sql_statement +{ +public: + /** + Constructor, used to represent a CHECK TABLE statement. + @param lex the LEX structure for this statement. + */ + Check_table_statement(LEX *lex) + : Sql_statement(lex) + {} + + ~Check_table_statement() + {} + + /** + Execute a CHECK TABLE statement at runtime. + @param thd the current thread. + @return false on success. + */ + bool execute(THD *thd); +}; + + + +/** + Optimize_table_statement represents the OPTIMIZE TABLE statement. +*/ +class Optimize_table_statement : public Sql_statement +{ +public: + /** + Constructor, used to represent a OPTIMIZE TABLE statement. + @param lex the LEX structure for this statement. + */ + Optimize_table_statement(LEX *lex) + : Sql_statement(lex) + {} + + ~Optimize_table_statement() + {} + + /** + Execute a OPTIMIZE TABLE statement at runtime. + @param thd the current thread. + @return false on success. + */ + bool execute(THD *thd); +}; + + + +/** + Repair_table_statement represents the REPAIR TABLE statement. +*/ +class Repair_table_statement : public Sql_statement +{ +public: + /** + Constructor, used to represent a REPAIR TABLE statement. + @param lex the LEX structure for this statement. + */ + Repair_table_statement(LEX *lex) + : Sql_statement(lex) + {} + + ~Repair_table_statement() + {} + + /** + Execute a REPAIR TABLE statement at runtime. + @param thd the current thread. + @return false on success. + */ + bool execute(THD *thd); +}; + +#endif diff --git a/database/include/mysql/private/sql_alter.h b/database/include/mysql/private/sql_alter.h new file mode 100644 index 0000000..5adbaf9 --- /dev/null +++ b/database/include/mysql/private/sql_alter.h @@ -0,0 +1,66 @@ +/* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef SQL_ALTER_TABLE_H +#define SQL_ALTER_TABLE_H + +/** + Alter_table_common represents the common properties of the ALTER TABLE + statements. + @todo move Alter_info and other ALTER generic structures from Lex here. +*/ +class Alter_table_common : public Sql_statement +{ +protected: + /** + Constructor. + @param lex the LEX structure for this statement. + */ + Alter_table_common(LEX *lex) + : Sql_statement(lex) + {} + + virtual ~Alter_table_common() + {} + +}; + +/** + Alter_table_statement represents the generic ALTER TABLE statement. + @todo move Alter_info and other ALTER specific structures from Lex here. +*/ +class Alter_table_statement : public Alter_table_common +{ +public: + /** + Constructor, used to represent a ALTER TABLE statement. + @param lex the LEX structure for this statement. + */ + Alter_table_statement(LEX *lex) + : Alter_table_common(lex) + {} + + ~Alter_table_statement() + {} + + /** + Execute a ALTER TABLE statement at runtime. + @param thd the current thread. + @return false on success. + */ + bool execute(THD *thd); +}; + +#endif diff --git a/database/include/mysql/private/sql_analyse.h b/database/include/mysql/private/sql_analyse.h new file mode 100644 index 0000000..345f2e5 --- /dev/null +++ b/database/include/mysql/private/sql_analyse.h @@ -0,0 +1,366 @@ +#ifndef SQL_ANALYSE_INCLUDED +#define SQL_ANALYSE_INCLUDED + +/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + + +/* Analyse database */ + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif + +#include "procedure.h" /* Procedure */ + +#define my_thd_charset default_charset_info + +#define DEC_IN_AVG 4 + +typedef struct st_number_info +{ + // if zerofill is true, the number must be zerofill, or string + bool negative, is_float, zerofill, maybe_zerofill; + int8 integers; + int8 decimals; + double dval; + ulonglong ullval; +} NUM_INFO; + +typedef struct st_extreme_value_number_info +{ + ulonglong ullval; + longlong llval; + double max_dval, min_dval; +} EV_NUM_INFO; + +typedef struct st_tree_info +{ + bool found; + String *str; + Item *item; +} TREE_INFO; + +uint check_ulonglong(const char *str, uint length); +bool get_ev_num_info(EV_NUM_INFO *ev_info, NUM_INFO *info, const char *num); +bool test_if_number(NUM_INFO *info, const char *str, uint str_len); +int compare_double(const double *s, const double *t); +int compare_double2(void* cmp_arg __attribute__((unused)), + const double *s, const double *t); +int compare_longlong(const longlong *s, const longlong *t); +int compare_longlong2(void* cmp_arg __attribute__((unused)), + const longlong *s, const longlong *t); +int compare_ulonglong(const ulonglong *s, const ulonglong *t); +int compare_ulonglong2(void* cmp_arg __attribute__((unused)), + const ulonglong *s, const ulonglong *t); +int compare_decimal2(int* len, const char *s, const char *t); +Procedure *proc_analyse_init(THD *thd, ORDER *param, select_result *result, + List &field_list); +void free_string(String*); +class analyse; + +class field_info :public Sql_alloc +{ +protected: + ulong treemem, tree_elements, empty, nulls, min_length, max_length; + uint room_in_tree; + bool found; + TREE tree; + Item *item; + analyse *pc; + +public: + field_info(Item* a, analyse* b) : treemem(0), tree_elements(0), empty(0), + nulls(0), min_length(0), max_length(0), room_in_tree(1), + found(0),item(a), pc(b) {}; + + virtual ~field_info() { delete_tree(&tree); } + virtual void add() = 0; + virtual void get_opt_type(String*, ha_rows) = 0; + virtual String *get_min_arg(String *) = 0; + virtual String *get_max_arg(String *) = 0; + virtual String *avg(String*, ha_rows) = 0; + virtual String *std(String*, ha_rows) = 0; + virtual tree_walk_action collect_enum() = 0; + virtual uint decimals() { return 0; } + friend class analyse; +}; + + +int collect_string(String *element, element_count count, + TREE_INFO *info); + +int sortcmp2(void* cmp_arg __attribute__((unused)), + const String *a,const String *b); + +class field_str :public field_info +{ + String min_arg, max_arg; + ulonglong sum; + bool must_be_blob, was_zero_fill, was_maybe_zerofill, + can_be_still_num; + NUM_INFO num_info; + EV_NUM_INFO ev_num_info; + +public: + field_str(Item* a, analyse* b) :field_info(a,b), + min_arg("",default_charset_info), + max_arg("",default_charset_info), sum(0), + must_be_blob(0), was_zero_fill(0), + was_maybe_zerofill(0), can_be_still_num(1) + { init_tree(&tree, 0, 0, sizeof(String), (qsort_cmp2) sortcmp2, + 0, (tree_element_free) free_string, NULL); }; + + void add(); + void get_opt_type(String*, ha_rows); + String *get_min_arg(String *not_used __attribute__((unused))) + { return &min_arg; } + String *get_max_arg(String *not_used __attribute__((unused))) + { return &max_arg; } + String *avg(String *s, ha_rows rows) + { + if (!(rows - nulls)) + s->set_real((double) 0.0, 1,my_thd_charset); + else + s->set_real((ulonglong2double(sum) / ulonglong2double(rows - nulls)), + DEC_IN_AVG,my_thd_charset); + return s; + } + friend int collect_string(String *element, element_count count, + TREE_INFO *info); + tree_walk_action collect_enum() + { return (tree_walk_action) collect_string; } + String *std(String *s __attribute__((unused)), + ha_rows rows __attribute__((unused))) + { return (String*) 0; } +}; + + +int collect_decimal(uchar *element, element_count count, + TREE_INFO *info); + +class field_decimal :public field_info +{ + my_decimal min_arg, max_arg; + my_decimal sum[2], sum_sqr[2]; + int cur_sum; + int bin_size; +public: + field_decimal(Item* a, analyse* b) :field_info(a,b) + { + bin_size= my_decimal_get_binary_size(a->max_length, a->decimals); + init_tree(&tree, 0, 0, bin_size, (qsort_cmp2)compare_decimal2, + 0, 0, (void *)&bin_size); + }; + + void add(); + void get_opt_type(String*, ha_rows); + String *get_min_arg(String *); + String *get_max_arg(String *); + String *avg(String *s, ha_rows rows); + friend int collect_decimal(uchar *element, element_count count, + TREE_INFO *info); + tree_walk_action collect_enum() + { return (tree_walk_action) collect_decimal; } + String *std(String *s, ha_rows rows); +}; + + +int collect_real(double *element, element_count count, TREE_INFO *info); + +class field_real: public field_info +{ + double min_arg, max_arg; + double sum, sum_sqr; + uint max_notzero_dec_len; + +public: + field_real(Item* a, analyse* b) :field_info(a,b), + min_arg(0), max_arg(0), sum(0), sum_sqr(0), max_notzero_dec_len(0) + { init_tree(&tree, 0, 0, sizeof(double), + (qsort_cmp2) compare_double2, 0, NULL, NULL); } + + void add(); + void get_opt_type(String*, ha_rows); + String *get_min_arg(String *s) + { + s->set_real(min_arg, item->decimals, my_thd_charset); + return s; + } + String *get_max_arg(String *s) + { + s->set_real(max_arg, item->decimals, my_thd_charset); + return s; + } + String *avg(String *s, ha_rows rows) + { + if (!(rows - nulls)) + s->set_real((double) 0.0, 1,my_thd_charset); + else + s->set_real(((double)sum / (double) (rows - nulls)), item->decimals,my_thd_charset); + return s; + } + String *std(String *s, ha_rows rows) + { + double tmp = ulonglong2double(rows); + if (!(tmp - nulls)) + s->set_real((double) 0.0, 1,my_thd_charset); + else + { + double tmp2 = ((sum_sqr - sum * sum / (tmp - nulls)) / + (tmp - nulls)); + s->set_real(((double) tmp2 <= 0.0 ? 0.0 : sqrt(tmp2)), item->decimals,my_thd_charset); + } + return s; + } + uint decimals() { return item->decimals; } + friend int collect_real(double *element, element_count count, + TREE_INFO *info); + tree_walk_action collect_enum() + { return (tree_walk_action) collect_real;} +}; + +int collect_longlong(longlong *element, element_count count, + TREE_INFO *info); + +class field_longlong: public field_info +{ + longlong min_arg, max_arg; + longlong sum, sum_sqr; + +public: + field_longlong(Item* a, analyse* b) :field_info(a,b), + min_arg(0), max_arg(0), sum(0), sum_sqr(0) + { init_tree(&tree, 0, 0, sizeof(longlong), + (qsort_cmp2) compare_longlong2, 0, NULL, NULL); } + + void add(); + void get_opt_type(String*, ha_rows); + String *get_min_arg(String *s) { s->set(min_arg,my_thd_charset); return s; } + String *get_max_arg(String *s) { s->set(max_arg,my_thd_charset); return s; } + String *avg(String *s, ha_rows rows) + { + if (!(rows - nulls)) + s->set_real((double) 0.0, 1,my_thd_charset); + else + s->set_real(((double) sum / (double) (rows - nulls)), DEC_IN_AVG,my_thd_charset); + return s; + } + String *std(String *s, ha_rows rows) + { + double tmp = ulonglong2double(rows); + if (!(tmp - nulls)) + s->set_real((double) 0.0, 1,my_thd_charset); + else + { + double tmp2 = ((sum_sqr - sum * sum / (tmp - nulls)) / + (tmp - nulls)); + s->set_real(((double) tmp2 <= 0.0 ? 0.0 : sqrt(tmp2)), DEC_IN_AVG,my_thd_charset); + } + return s; + } + friend int collect_longlong(longlong *element, element_count count, + TREE_INFO *info); + tree_walk_action collect_enum() + { return (tree_walk_action) collect_longlong;} +}; + +int collect_ulonglong(ulonglong *element, element_count count, + TREE_INFO *info); + +class field_ulonglong: public field_info +{ + ulonglong min_arg, max_arg; + ulonglong sum, sum_sqr; + +public: + field_ulonglong(Item* a, analyse * b) :field_info(a,b), + min_arg(0), max_arg(0), sum(0),sum_sqr(0) + { init_tree(&tree, 0, 0, sizeof(ulonglong), + (qsort_cmp2) compare_ulonglong2, 0, NULL, NULL); } + void add(); + void get_opt_type(String*, ha_rows); + String *get_min_arg(String *s) { s->set(min_arg,my_thd_charset); return s; } + String *get_max_arg(String *s) { s->set(max_arg,my_thd_charset); return s; } + String *avg(String *s, ha_rows rows) + { + if (!(rows - nulls)) + s->set_real((double) 0.0, 1,my_thd_charset); + else + s->set_real((ulonglong2double(sum) / ulonglong2double(rows - nulls)), + DEC_IN_AVG,my_thd_charset); + return s; + } + String *std(String *s, ha_rows rows) + { + double tmp = ulonglong2double(rows); + if (!(tmp - nulls)) + s->set_real((double) 0.0, 1,my_thd_charset); + else + { + double tmp2 = ((ulonglong2double(sum_sqr) - + ulonglong2double(sum * sum) / (tmp - nulls)) / + (tmp - nulls)); + s->set_real(((double) tmp2 <= 0.0 ? 0.0 : sqrt(tmp2)), DEC_IN_AVG,my_thd_charset); + } + return s; + } + friend int collect_ulonglong(ulonglong *element, element_count count, + TREE_INFO *info); + tree_walk_action collect_enum() + { return (tree_walk_action) collect_ulonglong; } +}; + + +Procedure *proc_analyse_init(THD *thd, ORDER *param, + select_result *result, + List &field_list); + +class analyse: public Procedure +{ +protected: + Item_proc *func_items[10]; + List fields, result_fields; + field_info **f_info, **f_end; + ha_rows rows; + uint output_str_length; + +public: + uint max_tree_elements, max_treemem; + + analyse(select_result *res) :Procedure(res, PROC_NO_SORT), f_info(0), + rows(0), output_str_length(0) {} + + ~analyse() + { + if (f_info) + { + for (field_info **f=f_info; f != f_end; f++) + delete (*f); + } + } + virtual void add() {} + virtual bool change_columns(List &fields); + virtual int send_row(List &field_list); + virtual void end_group(void) {} + virtual int end_of_records(void); + friend Procedure *proc_analyse_init(THD *thd, ORDER *param, + select_result *result, + List &field_list); +}; + +bool append_escaped(String *to_str, String *from_str); + +#endif /* SQL_ANALYSE_INCLUDED */ diff --git a/database/include/mysql/private/sql_array.h b/database/include/mysql/private/sql_array.h new file mode 100644 index 0000000..e33e893 --- /dev/null +++ b/database/include/mysql/private/sql_array.h @@ -0,0 +1,143 @@ +#ifndef SQL_ARRAY_INCLUDED +#define SQL_ARRAY_INCLUDED + +/* Copyright (c) 2003, 2005-2007 MySQL AB, 2009 Sun Microsystems, Inc. + Use is subject to license terms. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#include + +/* + A typesafe wrapper around DYNAMIC_ARRAY +*/ + +template class Dynamic_array +{ + DYNAMIC_ARRAY array; +public: + Dynamic_array(uint prealloc=16, uint increment=16) + { + my_init_dynamic_array(&array, sizeof(Elem), prealloc, increment); + } + + Elem& at(int idx) + { + return *(((Elem*)array.buffer) + idx); + } + + Elem *front() + { + return (Elem*)array.buffer; + } + + Elem *back() + { + return ((Elem*)array.buffer) + array.elements; + } + + bool append(Elem &el) + { + return (insert_dynamic(&array, (uchar*)&el)); + } + + int elements() + { + return array.elements; + } + + ~Dynamic_array() + { + delete_dynamic(&array); + } + + typedef int (*CMP_FUNC)(const Elem *el1, const Elem *el2); + + void sort(CMP_FUNC cmp_func) + { + my_qsort(array.buffer, array.elements, sizeof(Elem), (qsort_cmp)cmp_func); + } +}; + +/* + Array of pointers to Elem that uses memory from MEM_ROOT + + MEM_ROOT has no realloc() so this is supposed to be used for cases when + reallocations are rare. +*/ + +template class Array +{ + enum {alloc_increment = 16}; + Elem **buffer; + uint n_elements, max_element; +public: + Array(MEM_ROOT *mem_root, uint prealloc=16) + { + buffer= (Elem**)alloc_root(mem_root, prealloc * sizeof(Elem**)); + max_element = buffer? prealloc : 0; + n_elements= 0; + } + + Elem& at(int idx) + { + return *(((Elem*)buffer) + idx); + } + + Elem **front() + { + return buffer; + } + + Elem **back() + { + return buffer + n_elements; + } + + bool append(MEM_ROOT *mem_root, Elem *el) + { + if (n_elements == max_element) + { + Elem **newbuf; + if (!(newbuf= (Elem**)alloc_root(mem_root, (n_elements + alloc_increment)* + sizeof(Elem**)))) + { + return FALSE; + } + memcpy(newbuf, buffer, n_elements*sizeof(Elem*)); + buffer= newbuf; + } + buffer[n_elements++]= el; + return FALSE; + } + + int elements() + { + return n_elements; + } + + void clear() + { + n_elements= 0; + } + + typedef int (*CMP_FUNC)(Elem * const *el1, Elem *const *el2); + + void sort(CMP_FUNC cmp_func) + { + my_qsort(buffer, n_elements, sizeof(Elem*), (qsort_cmp)cmp_func); + } +}; + +#endif /* SQL_ARRAY_INCLUDED */ diff --git a/database/include/mysql/private/sql_audit.h b/database/include/mysql/private/sql_audit.h new file mode 100644 index 0000000..ce8a6b4 --- /dev/null +++ b/database/include/mysql/private/sql_audit.h @@ -0,0 +1,280 @@ +#ifndef SQL_AUDIT_INCLUDED +#define SQL_AUDIT_INCLUDED + +/* Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + + +#include + +#include +#include "sql_class.h" + +extern unsigned long mysql_global_audit_mask[]; + + +extern void mysql_audit_initialize(); +extern void mysql_audit_finalize(); + + +extern void mysql_audit_init_thd(THD *thd); +extern void mysql_audit_free_thd(THD *thd); +extern void mysql_audit_acquire_plugins(THD *thd, ulong *event_class_mask); + + +#ifndef EMBEDDED_LIBRARY +extern void mysql_audit_notify(THD *thd, uint event_class, + uint event_subtype, ...); + +static inline bool mysql_audit_general_enabled() +{ + return mysql_global_audit_mask[0] & MYSQL_AUDIT_GENERAL_CLASSMASK; +} + +static inline bool mysql_audit_table_enabled() +{ + return mysql_global_audit_mask[0] & MYSQL_AUDIT_TABLE_CLASSMASK; +} + +#else +static inline void mysql_audit_notify(THD *thd, uint event_class, + uint event_subtype, ...) { } +#define mysql_audit_general_enabled() 0 +#define mysql_audit_table_enabled() 0 +#endif +extern void mysql_audit_release(THD *thd); + +#define MAX_USER_HOST_SIZE 512 +static inline uint make_user_name(THD *thd, char *buf) +{ + const Security_context *sctx= thd->security_ctx; + return strxnmov(buf, MAX_USER_HOST_SIZE, + sctx->priv_user[0] ? sctx->priv_user : "", "[", + sctx->user ? sctx->user : "", "] @ ", + sctx->host ? sctx->host : "", " [", + sctx->ip ? sctx->ip : "", "]", NullS) - buf; +} + +/** + Call audit plugins of GENERAL audit class, MYSQL_AUDIT_GENERAL_LOG subtype. + + @param[in] thd + @param[in] time time that event occurred + @param[in] user User name + @param[in] userlen User name length + @param[in] cmd Command name + @param[in] cmdlen Command name length + @param[in] query Query string + @param[in] querylen Query string length +*/ + +static inline +void mysql_audit_general_log(THD *thd, time_t time, + const char *user, uint userlen, + const char *cmd, uint cmdlen, + const char *query, uint querylen) +{ + if (mysql_audit_general_enabled()) + { + CHARSET_INFO *clientcs= thd ? thd->variables.character_set_client + : global_system_variables.character_set_client; + const char *db= thd ? thd->db : ""; + size_t db_length= thd ? thd->db_length : 0; + + mysql_audit_notify(thd, MYSQL_AUDIT_GENERAL_CLASS, MYSQL_AUDIT_GENERAL_LOG, + 0, time, user, userlen, cmd, cmdlen, + query, querylen, clientcs, (ha_rows) 0, + db, db_length); + } +} + +/** + Call audit plugins of GENERAL audit class. + event_subtype should be set to one of: + MYSQL_AUDIT_GENERAL_ERROR + MYSQL_AUDIT_GENERAL_RESULT + MYSQL_AUDIT_GENERAL_STATUS + + @param[in] thd + @param[in] event_subtype Type of general audit event. + @param[in] error_code Error code + @param[in] msg Message +*/ +static inline +void mysql_audit_general(THD *thd, uint event_subtype, + int error_code, const char *msg) +{ + if (mysql_audit_general_enabled()) + { + time_t time= my_time(0); + uint msglen= msg ? strlen(msg) : 0; + const char *user; + uint userlen; + char user_buff[MAX_USER_HOST_SIZE]; + CSET_STRING query; + ha_rows rows; + const char *db; + size_t db_length; + + if (thd) + { + query= thd->query_string; + user= user_buff; + userlen= make_user_name(thd, user_buff); + rows= thd->warning_info->current_row_for_warning(); + db= thd->db; + db_length= thd->db_length; + } + else + { + user= 0; + userlen= 0; + rows= 0; + db= ""; + db_length= 0; + } + + mysql_audit_notify(thd, MYSQL_AUDIT_GENERAL_CLASS, event_subtype, + error_code, time, user, userlen, msg, msglen, + query.str(), query.length(), query.charset(), rows, + db, db_length); + } +} + +#define MYSQL_AUDIT_NOTIFY_CONNECTION_CONNECT(thd) mysql_audit_notify(\ + (thd), MYSQL_AUDIT_CONNECTION_CLASS, MYSQL_AUDIT_CONNECTION_CONNECT,\ + (thd)->stmt_da->is_error() ? (thd)->stmt_da->sql_errno() : 0,\ + (thd)->thread_id, (thd)->security_ctx->user,\ + (thd)->security_ctx->user ? strlen((thd)->security_ctx->user) : 0,\ + (thd)->security_ctx->priv_user, strlen((thd)->security_ctx->priv_user),\ + (thd)->security_ctx->external_user,\ + (thd)->security_ctx->external_user ?\ + strlen((thd)->security_ctx->external_user) : 0,\ + (thd)->security_ctx->proxy_user, strlen((thd)->security_ctx->proxy_user),\ + (thd)->security_ctx->host,\ + (thd)->security_ctx->host ? strlen((thd)->security_ctx->host) : 0,\ + (thd)->security_ctx->ip,\ + (thd)->security_ctx->ip ? strlen((thd)->security_ctx->ip) : 0,\ + (thd)->db, (thd)->db ? strlen((thd)->db) : 0) + +#define MYSQL_AUDIT_NOTIFY_CONNECTION_DISCONNECT(thd, errcode)\ + mysql_audit_notify(\ + (thd), MYSQL_AUDIT_CONNECTION_CLASS, MYSQL_AUDIT_CONNECTION_DISCONNECT,\ + (errcode), (thd)->thread_id, (thd)->security_ctx->user,\ + (thd)->security_ctx->user ? strlen((thd)->security_ctx->user) : 0,\ + 0, 0, 0, 0, 0, 0, (thd)->security_ctx->host,\ + (thd)->security_ctx->host ? strlen((thd)->security_ctx->host) : 0,\ + 0, 0, 0, 0) + +#define MYSQL_AUDIT_NOTIFY_CONNECTION_CHANGE_USER(thd) mysql_audit_notify(\ + (thd), MYSQL_AUDIT_CONNECTION_CLASS, MYSQL_AUDIT_CONNECTION_CHANGE_USER,\ + (thd)->stmt_da->is_error() ? (thd)->stmt_da->sql_errno() : 0,\ + (thd)->thread_id, (thd)->security_ctx->user,\ + (thd)->security_ctx->user ? strlen((thd)->security_ctx->user) : 0,\ + (thd)->security_ctx->priv_user, strlen((thd)->security_ctx->priv_user),\ + (thd)->security_ctx->external_user,\ + (thd)->security_ctx->external_user ?\ + strlen((thd)->security_ctx->external_user) : 0,\ + (thd)->security_ctx->proxy_user, strlen((thd)->security_ctx->proxy_user),\ + (thd)->security_ctx->host,\ + (thd)->security_ctx->host ? strlen((thd)->security_ctx->host) : 0,\ + (thd)->security_ctx->ip,\ + (thd)->security_ctx->ip ? strlen((thd)->security_ctx->ip) : 0,\ + (thd)->db, (thd)->db ? strlen((thd)->db) : 0) + +static inline +void mysql_audit_external_lock(THD *thd, TABLE_SHARE *share, int lock) +{ + if (lock != F_UNLCK && mysql_audit_table_enabled()) + { + const Security_context *sctx= thd->security_ctx; + mysql_audit_notify(thd, MYSQL_AUDIT_TABLE_CLASS, MYSQL_AUDIT_TABLE_LOCK, + (int)(lock == F_RDLCK), (ulong)thd->thread_id, + sctx->user, sctx->priv_user, sctx->priv_host, + sctx->external_user, sctx->proxy_user, sctx->host, + sctx->ip, share->db.str, (uint)share->db.length, + share->table_name.str, (uint)share->table_name.length, + 0,0,0,0); + } +} + +static inline +void mysql_audit_create_table(TABLE *table) +{ + if (mysql_audit_table_enabled()) + { + THD *thd= table->in_use; + const TABLE_SHARE *share= table->s; + const Security_context *sctx= thd->security_ctx; + mysql_audit_notify(thd, MYSQL_AUDIT_TABLE_CLASS, MYSQL_AUDIT_TABLE_CREATE, + 0, (ulong)thd->thread_id, + sctx->user, sctx->priv_user, sctx->priv_host, + sctx->external_user, sctx->proxy_user, sctx->host, + sctx->ip, share->db.str, (uint)share->db.length, + share->table_name.str, (uint)share->table_name.length, + 0,0,0,0); + } +} + +static inline +void mysql_audit_drop_table(THD *thd, TABLE_LIST *table) +{ + if (mysql_audit_table_enabled()) + { + const Security_context *sctx= thd->security_ctx; + mysql_audit_notify(thd, MYSQL_AUDIT_TABLE_CLASS, MYSQL_AUDIT_TABLE_DROP, + 0, (ulong)thd->thread_id, + sctx->user, sctx->priv_user, sctx->priv_host, + sctx->external_user, sctx->proxy_user, sctx->host, + sctx->ip, table->db, (uint)table->db_length, + table->table_name, (uint)table->table_name_length, + 0,0,0,0); + } +} + +static inline +void mysql_audit_rename_table(THD *thd, const char *old_db, const char *old_tb, + const char *new_db, const char *new_tb) +{ + if (mysql_audit_table_enabled()) + { + const Security_context *sctx= thd->security_ctx; + mysql_audit_notify(thd, MYSQL_AUDIT_TABLE_CLASS, MYSQL_AUDIT_TABLE_RENAME, + 0, (ulong)thd->thread_id, + sctx->user, sctx->priv_user, sctx->priv_host, + sctx->external_user, sctx->proxy_user, sctx->host, + sctx->ip, + old_db, (uint)strlen(old_db), old_tb, (uint)strlen(old_tb), + new_db, (uint)strlen(new_db), new_tb, (uint)strlen(new_tb)); + } +} + +static inline +void mysql_audit_alter_table(THD *thd, TABLE_LIST *table) +{ + if (mysql_audit_table_enabled()) + { + const Security_context *sctx= thd->security_ctx; + mysql_audit_notify(thd, MYSQL_AUDIT_TABLE_CLASS, MYSQL_AUDIT_TABLE_ALTER, + 0, (ulong)thd->thread_id, + sctx->user, sctx->priv_user, sctx->priv_host, + sctx->external_user, sctx->proxy_user, sctx->host, + sctx->ip, table->db, (uint)table->db_length, + table->table_name, (uint)table->table_name_length, + 0,0,0,0); + } +} + +#endif /* SQL_AUDIT_INCLUDED */ diff --git a/database/include/mysql/private/sql_base.h b/database/include/mysql/private/sql_base.h new file mode 100644 index 0000000..439052a --- /dev/null +++ b/database/include/mysql/private/sql_base.h @@ -0,0 +1,657 @@ +/* Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2011, 2018, MariaDB + + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef SQL_BASE_INCLUDED +#define SQL_BASE_INCLUDED + +#include "unireg.h" // REQUIRED: for other includes +#include "sql_trigger.h" /* trg_event_type */ +#include "sql_class.h" /* enum_mark_columns */ +#include "mysqld.h" /* key_map */ + +class Item_ident; +struct Name_resolution_context; +class Open_table_context; +class Open_tables_state; +class Prelocking_strategy; +struct TABLE_LIST; +class THD; +struct handlerton; +struct TABLE; + +typedef class st_select_lex SELECT_LEX; + +typedef struct st_lock_param_type ALTER_PARTITION_PARAM_TYPE; + +/* + This enumeration type is used only by the function find_item_in_list + to return the info on how an item has been resolved against a list + of possibly aliased items. + The item can be resolved: + - against an alias name of the list's element (RESOLVED_AGAINST_ALIAS) + - against non-aliased field name of the list (RESOLVED_WITH_NO_ALIAS) + - against an aliased field name of the list (RESOLVED_BEHIND_ALIAS) + - ignoring the alias name in cases when SQL requires to ignore aliases + (e.g. when the resolved field reference contains a table name or + when the resolved item is an expression) (RESOLVED_IGNORING_ALIAS) +*/ +enum enum_resolution_type { + NOT_RESOLVED=0, + RESOLVED_IGNORING_ALIAS, + RESOLVED_BEHIND_ALIAS, + RESOLVED_WITH_NO_ALIAS, + RESOLVED_AGAINST_ALIAS +}; + +enum find_item_error_report_type {REPORT_ALL_ERRORS, REPORT_EXCEPT_NOT_FOUND, + IGNORE_ERRORS, REPORT_EXCEPT_NON_UNIQUE, + IGNORE_EXCEPT_NON_UNIQUE}; + +enum enum_tdc_remove_table_type {TDC_RT_REMOVE_ALL, TDC_RT_REMOVE_NOT_OWN, + TDC_RT_REMOVE_UNUSED, + TDC_RT_REMOVE_NOT_OWN_AND_MARK_NOT_USABLE}; + +/* bits for last argument to remove_table_from_cache() */ +#define RTFC_NO_FLAG 0x0000 +#define RTFC_OWNED_BY_THD_FLAG 0x0001 +#define RTFC_WAIT_OTHER_THREAD_FLAG 0x0002 +#define RTFC_CHECK_KILLED_FLAG 0x0004 + +bool check_dup(const char *db, const char *name, TABLE_LIST *tables); +extern mysql_mutex_t LOCK_open; +bool table_cache_init(void); +void table_cache_free(void); +bool table_def_init(void); +void table_def_free(void); +void table_def_start_shutdown(void); +void assign_new_table_id(TABLE_SHARE *share); +uint cached_open_tables(void); +uint cached_table_definitions(void); +uint create_table_def_key(THD *thd, char *key, + const TABLE_LIST *table_list, + bool tmp_table); + +/** + Create a table cache key for non-temporary table. + + @param key Buffer for key (must be at least NAME_LEN*2+2 bytes). + @param db Database name. + @param table_name Table name. + + @return Length of key. + + @sa create_table_def_key(thd, char *, table_list, bool) +*/ + +inline uint +create_table_def_key(char *key, const char *db, const char *table_name) +{ + /* + In theory caller should ensure that both db and table_name are + not longer than NAME_LEN bytes. In practice we play safe to avoid + buffer overruns. + */ + return (uint)(strmake(strmake(key, db, NAME_LEN) + 1, table_name, + NAME_LEN) - key + 1); +} + +TABLE_SHARE *get_table_share(THD *thd, TABLE_LIST *table_list, char *key, + uint key_length, uint db_flags, int *error, + my_hash_value_type hash_value); +void release_table_share(TABLE_SHARE *share); +TABLE_SHARE *get_cached_table_share(const char *db, const char *table_name); + +TABLE *open_ltable(THD *thd, TABLE_LIST *table_list, thr_lock_type update, + uint lock_flags); + +/* mysql_lock_tables() and open_table() flags bits */ +#define MYSQL_OPEN_IGNORE_GLOBAL_READ_LOCK 0x0001 +#define MYSQL_OPEN_IGNORE_FLUSH 0x0002 +#define MYSQL_OPEN_TEMPORARY_ONLY 0x0004 +#define MYSQL_LOCK_IGNORE_GLOBAL_READ_ONLY 0x0008 +#define MYSQL_LOCK_LOG_TABLE 0x0010 +/** + Do not try to acquire a metadata lock on the table: we + already have one. +*/ +#define MYSQL_OPEN_HAS_MDL_LOCK 0x0020 +/** + If in locked tables mode, ignore the locked tables and get + a new instance of the table. +*/ +#define MYSQL_OPEN_GET_NEW_TABLE 0x0040 +/** Don't look up the table in the list of temporary tables. */ +#define MYSQL_OPEN_SKIP_TEMPORARY 0x0080 +/** Fail instead of waiting when conficting metadata lock is discovered. */ +#define MYSQL_OPEN_FAIL_ON_MDL_CONFLICT 0x0100 +/** Open tables using MDL_SHARED lock instead of one specified in parser. */ +#define MYSQL_OPEN_FORCE_SHARED_MDL 0x0200 +/** + Open tables using MDL_SHARED_HIGH_PRIO lock instead of one specified + in parser. +*/ +#define MYSQL_OPEN_FORCE_SHARED_HIGH_PRIO_MDL 0x0400 +/** + When opening or locking the table, use the maximum timeout + (LONG_TIMEOUT = 1 year) rather than the user-supplied timeout value. +*/ +#define MYSQL_LOCK_IGNORE_TIMEOUT 0x0800 +/** + When acquiring "strong" (SNW, SNRW, X) metadata locks on tables to + be open do not acquire global and schema-scope IX locks. +*/ +#define MYSQL_OPEN_SKIP_SCOPED_MDL_LOCK 0x1000 +#define MYSQL_LOCK_NOT_TEMPORARY 0x2000 +#define MYSQL_OPEN_FOR_REPAIR 0x4000 + +/** Please refer to the internals manual. */ +#define MYSQL_OPEN_REOPEN (MYSQL_OPEN_IGNORE_FLUSH |\ + MYSQL_OPEN_IGNORE_GLOBAL_READ_LOCK |\ + MYSQL_LOCK_IGNORE_GLOBAL_READ_ONLY |\ + MYSQL_LOCK_IGNORE_TIMEOUT |\ + MYSQL_OPEN_GET_NEW_TABLE |\ + MYSQL_OPEN_SKIP_TEMPORARY |\ + MYSQL_OPEN_HAS_MDL_LOCK) + +bool open_table(THD *thd, TABLE_LIST *table_list, MEM_ROOT *mem_root, + Open_table_context *ot_ctx); +bool open_new_frm(THD *thd, TABLE_SHARE *share, const char *alias, + uint db_stat, uint prgflag, + uint ha_open_flags, TABLE *outparam, TABLE_LIST *table_desc, + MEM_ROOT *mem_root); + +bool get_key_map_from_key_list(key_map *map, TABLE *table, + List *index_list); +TABLE *open_table_uncached(THD *thd, const char *path, const char *db, + const char *table_name, + bool add_to_temporary_tables_list); +TABLE *find_locked_table(TABLE *list, const char *db, const char *table_name); +TABLE *find_write_locked_table(TABLE *list, const char *db, + const char *table_name); +thr_lock_type read_lock_type_for_table(THD *thd, + Query_tables_list *prelocking_ctx, + TABLE_LIST *table_list); + +my_bool mysql_rm_tmp_tables(void); +bool rm_temporary_table(handlerton *base, const char *path); +void close_tables_for_reopen(THD *thd, TABLE_LIST **tables, + const MDL_savepoint &start_of_statement_svp); +TABLE_LIST *find_table_in_list(TABLE_LIST *table, + TABLE_LIST *TABLE_LIST::*link, + const char *db_name, + const char *table_name); +TABLE *find_temporary_table(THD *thd, const char *db, const char *table_name); +TABLE *find_temporary_table(THD *thd, const TABLE_LIST *tl); +TABLE *find_temporary_table(THD *thd, const char *table_key, + uint table_key_length); +void close_thread_tables(THD *thd); +bool fill_record_n_invoke_before_triggers(THD *thd, List &fields, + List &values, + bool ignore_errors, + Table_triggers_list *triggers, + enum trg_event_type event); +bool fill_record_n_invoke_before_triggers(THD *thd, Field **field, + List &values, + bool ignore_errors, + Table_triggers_list *triggers, + enum trg_event_type event); +bool insert_fields(THD *thd, Name_resolution_context *context, + const char *db_name, const char *table_name, + List_iterator *it, bool any_privileges); +void make_leaves_list(List &list, TABLE_LIST *tables, + bool full_table_list, TABLE_LIST *boundary); +int setup_wild(THD *thd, TABLE_LIST *tables, List &fields, + List *sum_func_list, uint wild_num); +bool setup_fields(THD *thd, Item** ref_pointer_array, + List &item, enum_mark_columns mark_used_columns, + List *sum_func_list, List *pre_fix, + bool allow_sum_func); +void unfix_fields(List &items); +bool fill_record(THD *thd, Field **field, List &values, + bool ignore_errors, bool use_value); + +Field * +find_field_in_tables(THD *thd, Item_ident *item, + TABLE_LIST *first_table, TABLE_LIST *last_table, + Item **ref, find_item_error_report_type report_error, + bool check_privileges, bool register_tree_change); +Field * +find_field_in_table_ref(THD *thd, TABLE_LIST *table_list, + const char *name, uint length, + const char *item_name, const char *db_name, + const char *table_name, Item **ref, + bool check_privileges, bool allow_rowid, + uint *cached_field_index_ptr, + bool register_tree_change, TABLE_LIST **actual_table); +Field * +find_field_in_table(THD *thd, TABLE *table, const char *name, uint length, + bool allow_rowid, uint *cached_field_index_ptr); +Field * +find_field_in_table_sef(TABLE *table, const char *name); +Item ** find_item_in_list(Item *item, List &items, uint *counter, + find_item_error_report_type report_error, + enum_resolution_type *resolution); +bool setup_tables(THD *thd, Name_resolution_context *context, + List *from_clause, TABLE_LIST *tables, + List &leaves, bool select_insert, + bool full_table_list); +bool setup_tables_and_check_access(THD *thd, + Name_resolution_context *context, + List *from_clause, + TABLE_LIST *tables, + List &leaves, + bool select_insert, + ulong want_access_first, + ulong want_access, + bool full_table_list); +bool wait_while_table_is_used(THD *thd, TABLE *table, + enum ha_extra_function function, + enum_tdc_remove_table_type remove_type= + TDC_RT_REMOVE_NOT_OWN); + +void drop_open_table(THD *thd, TABLE *table, const char *db_name, + const char *table_name); +void update_non_unique_table_error(TABLE_LIST *update, + const char *operation, + TABLE_LIST *duplicate); +int setup_conds(THD *thd, TABLE_LIST *tables, List &leaves, + COND **conds); +void wrap_ident(THD *thd, Item **conds); +int setup_ftfuncs(SELECT_LEX* select); +int init_ftfuncs(THD *thd, SELECT_LEX* select, bool no_order); +bool lock_table_names(THD *thd, TABLE_LIST *table_list, + TABLE_LIST *table_list_end, ulong lock_wait_timeout, + uint flags); +bool open_tables(THD *thd, TABLE_LIST **tables, uint *counter, uint flags, + Prelocking_strategy *prelocking_strategy); +/* open_and_lock_tables with optional derived handling */ +bool open_and_lock_tables(THD *thd, TABLE_LIST *tables, + bool derived, uint flags, + Prelocking_strategy *prelocking_strategy); +/* simple open_and_lock_tables without derived handling for single table */ +TABLE *open_n_lock_single_table(THD *thd, TABLE_LIST *table_l, + thr_lock_type lock_type, uint flags, + Prelocking_strategy *prelocking_strategy); +bool open_normal_and_derived_tables(THD *thd, TABLE_LIST *tables, uint flags, + uint dt_phases); +bool lock_tables(THD *thd, TABLE_LIST *tables, uint counter, uint flags); +int decide_logging_format(THD *thd, TABLE_LIST *tables); +void free_io_cache(TABLE *entry); +void intern_close_table(TABLE *entry); +bool close_thread_table(THD *thd, TABLE **table_ptr); +bool close_temporary_tables(THD *thd); +TABLE_LIST *unique_table(THD *thd, TABLE_LIST *table, TABLE_LIST *table_list, + bool check_alias); +int drop_temporary_table(THD *thd, TABLE_LIST *table_list, bool *is_trans); +void close_temporary_table(THD *thd, TABLE *table, bool free_share, + bool delete_table); +void close_temporary(TABLE *table, bool free_share, bool delete_table); +bool rename_temporary_table(THD* thd, TABLE *table, const char *new_db, + const char *table_name); +bool is_equal(const LEX_STRING *a, const LEX_STRING *b); + +/* Functions to work with system tables. */ +bool open_system_tables_for_read(THD *thd, TABLE_LIST *table_list, + Open_tables_backup *backup); +void close_system_tables(THD *thd, Open_tables_backup *backup); +void close_mysql_tables(THD *thd); +TABLE *open_system_table_for_update(THD *thd, TABLE_LIST *one_table); +TABLE *open_log_table(THD *thd, TABLE_LIST *one_table, Open_tables_backup *backup); +void close_log_table(THD *thd, Open_tables_backup *backup); + +TABLE *open_performance_schema_table(THD *thd, TABLE_LIST *one_table, + Open_tables_state *backup); +void close_performance_schema_table(THD *thd, Open_tables_state *backup); + +bool close_cached_tables(THD *thd, TABLE_LIST *tables, + bool wait_for_refresh, ulong timeout); +bool close_cached_connection_tables(THD *thd, LEX_STRING *connect_string); +void close_all_tables_for_name(THD *thd, TABLE_SHARE *share, + ha_extra_function extra); +OPEN_TABLE_LIST *list_open_tables(THD *thd, const char *db, const char *wild); +void tdc_remove_table(THD *thd, enum_tdc_remove_table_type remove_type, + const char *db, const char *table_name, + bool has_lock); +bool tdc_open_view(THD *thd, TABLE_LIST *table_list, const char *alias, + char *cache_key, uint cache_key_length, + MEM_ROOT *mem_root, uint flags); +void tdc_flush_unused_tables(); +TABLE *find_table_for_mdl_upgrade(THD *thd, const char *db, + const char *table_name, + bool no_error); +void mark_tmp_table_for_reuse(TABLE *table); +bool check_if_table_exists(THD *thd, TABLE_LIST *table, bool fast_check, + bool *exists); +int update_virtual_fields(THD *thd, TABLE *table, + enum enum_vcol_update_mode vcol_update_mode= VCOL_UPDATE_FOR_READ); +int dynamic_column_error_message(enum_dyncol_func_result rc); + +extern TABLE *unused_tables; +extern Item **not_found_item; +extern Field *not_found_field; +extern Field *view_ref_found; +extern HASH table_def_cache; + +/** + clean/setup table fields and map. + + @param table TABLE structure pointer (which should be setup) + @param table_list TABLE_LIST structure pointer (owner of TABLE) + @param tablenr table number +*/ + + +inline void setup_table_map(TABLE *table, TABLE_LIST *table_list, uint tablenr) +{ + table->used_fields= 0; + table_list->reset_const_table(); + table->null_row= 0; + table->status= STATUS_NO_RECORD; + table->maybe_null= table_list->outer_join; + TABLE_LIST *embedding= table_list->embedding; + while (!table->maybe_null && embedding) + { + table->maybe_null= embedding->outer_join; + embedding= embedding->embedding; + } + table->tablenr= tablenr; + table->map= (table_map) 1 << tablenr; + table->force_index= table_list->force_index; + table->force_index_order= table->force_index_group= 0; + table->covering_keys= table->s->keys_for_keyread; + table->merge_keys.clear_all(); + TABLE_LIST *orig= table_list->select_lex ? + table_list->select_lex->master_unit()->derived : 0; + if (!orig || !orig->is_merged_derived()) + { + /* Tables merged from derived were set up already.*/ + table->covering_keys= table->s->keys_for_keyread; + table->merge_keys.clear_all(); + } +} + +inline TABLE_LIST *find_table_in_global_list(TABLE_LIST *table, + const char *db_name, + const char *table_name) +{ + return find_table_in_list(table, &TABLE_LIST::next_global, + db_name, table_name); +} + +inline TABLE_LIST *find_table_in_local_list(TABLE_LIST *table, + const char *db_name, + const char *table_name) +{ + return find_table_in_list(table, &TABLE_LIST::next_local, + db_name, table_name); +} + + +inline bool setup_fields_with_no_wrap(THD *thd, Item **ref_pointer_array, + List &item, + enum_mark_columns mark_used_columns, + List *sum_func_list, + bool allow_sum_func) +{ + bool res; + thd->lex->select_lex.no_wrap_view_item= TRUE; + res= setup_fields(thd, ref_pointer_array, item, mark_used_columns, + sum_func_list, NULL, allow_sum_func); + thd->lex->select_lex.no_wrap_view_item= FALSE; + return res; +} + +/** + An abstract class for a strategy specifying how the prelocking + algorithm should extend the prelocking set while processing + already existing elements in the set. +*/ + +class Prelocking_strategy +{ +public: + virtual ~Prelocking_strategy() { } + + virtual void reset(THD *thd) { }; + virtual bool handle_routine(THD *thd, Query_tables_list *prelocking_ctx, + Sroutine_hash_entry *rt, sp_head *sp, + bool *need_prelocking) = 0; + virtual bool handle_table(THD *thd, Query_tables_list *prelocking_ctx, + TABLE_LIST *table_list, bool *need_prelocking) = 0; + virtual bool handle_view(THD *thd, Query_tables_list *prelocking_ctx, + TABLE_LIST *table_list, bool *need_prelocking)= 0; + virtual bool handle_end(THD *thd) { return 0; }; +}; + + +/** + A Strategy for prelocking algorithm suitable for DML statements. + + Ensures that all tables used by all statement's SF/SP/triggers and + required for foreign key checks are prelocked and SF/SPs used are + cached. +*/ + +class DML_prelocking_strategy : public Prelocking_strategy +{ +public: + virtual bool handle_routine(THD *thd, Query_tables_list *prelocking_ctx, + Sroutine_hash_entry *rt, sp_head *sp, + bool *need_prelocking); + virtual bool handle_table(THD *thd, Query_tables_list *prelocking_ctx, + TABLE_LIST *table_list, bool *need_prelocking); + virtual bool handle_view(THD *thd, Query_tables_list *prelocking_ctx, + TABLE_LIST *table_list, bool *need_prelocking); +}; + + +/** + A strategy for prelocking algorithm to be used for LOCK TABLES + statement. +*/ + +class Lock_tables_prelocking_strategy : public DML_prelocking_strategy +{ + virtual bool handle_table(THD *thd, Query_tables_list *prelocking_ctx, + TABLE_LIST *table_list, bool *need_prelocking); +}; + + +/** + Strategy for prelocking algorithm to be used for ALTER TABLE statements. + + Unlike DML or LOCK TABLES strategy, it doesn't + prelock triggers, views or stored routines, since they are not + used during ALTER. +*/ + +class Alter_table_prelocking_strategy : public Prelocking_strategy +{ +public: + + Alter_table_prelocking_strategy(Alter_info *alter_info) + : m_alter_info(alter_info) + {} + + virtual bool handle_routine(THD *thd, Query_tables_list *prelocking_ctx, + Sroutine_hash_entry *rt, sp_head *sp, + bool *need_prelocking); + virtual bool handle_table(THD *thd, Query_tables_list *prelocking_ctx, + TABLE_LIST *table_list, bool *need_prelocking); + virtual bool handle_view(THD *thd, Query_tables_list *prelocking_ctx, + TABLE_LIST *table_list, bool *need_prelocking); + +private: + Alter_info *m_alter_info; +}; + + +inline bool +open_tables(THD *thd, TABLE_LIST **tables, uint *counter, uint flags) +{ + DML_prelocking_strategy prelocking_strategy; + + return open_tables(thd, tables, counter, flags, &prelocking_strategy); +} + + +inline TABLE *open_n_lock_single_table(THD *thd, TABLE_LIST *table_l, + thr_lock_type lock_type, uint flags) +{ + DML_prelocking_strategy prelocking_strategy; + + return open_n_lock_single_table(thd, table_l, lock_type, flags, + &prelocking_strategy); +} + + +/* open_and_lock_tables with derived handling */ +inline bool open_and_lock_tables(THD *thd, TABLE_LIST *tables, + bool derived, uint flags) +{ + DML_prelocking_strategy prelocking_strategy; + + return open_and_lock_tables(thd, tables, derived, flags, + &prelocking_strategy); +} + + +bool extend_table_list(THD *thd, TABLE_LIST *tables, + Prelocking_strategy *prelocking_strategy, + bool has_prelocking_list); + +/** + A context of open_tables() function, used to recover + from a failed open_table() or open_routine() attempt. +*/ + +class Open_table_context +{ +public: + enum enum_open_table_action + { + OT_NO_ACTION= 0, + OT_BACKOFF_AND_RETRY, + OT_REOPEN_TABLES, + OT_DISCOVER, + OT_REPAIR + }; + Open_table_context(THD *thd, uint flags); + + bool recover_from_failed_open(); + bool request_backoff_action(enum_open_table_action action_arg, + TABLE_LIST *table); + + bool can_recover_from_failed_open() const + { return m_action != OT_NO_ACTION; } + + /** + When doing a back-off, we close all tables acquired by this + statement. Return an MDL savepoint taken at the beginning of + the statement, so that we can rollback to it before waiting on + locks. + */ + const MDL_savepoint &start_of_statement_svp() const + { + return m_start_of_statement_svp; + } + + inline ulong get_timeout() const + { + return m_timeout; + } + + uint get_flags() const { return m_flags; } + + /** + Set flag indicating that we have already acquired metadata lock + protecting this statement against GRL while opening tables. + */ + void set_has_protection_against_grl() + { + m_has_protection_against_grl= TRUE; + } + + bool has_protection_against_grl() const + { + return m_has_protection_against_grl; + } + +private: + /* THD for which tables are opened. */ + THD *m_thd; + /** + For OT_DISCOVER and OT_REPAIR actions, the table list element for + the table which definition should be re-discovered or which + should be repaired. + */ + TABLE_LIST *m_failed_table; + MDL_savepoint m_start_of_statement_svp; + /** + Lock timeout in seconds. Initialized to LONG_TIMEOUT when opening system + tables or to the "lock_wait_timeout" system variable for regular tables. + */ + ulong m_timeout; + /* open_table() flags. */ + uint m_flags; + /** Back off action. */ + enum enum_open_table_action m_action; + /** + Whether we had any locks when this context was created. + If we did, they are from the previous statement of a transaction, + and we can't safely do back-off (and release them). + */ + bool m_has_locks; + /** + Indicates that in the process of opening tables we have acquired + protection against global read lock. + */ + bool m_has_protection_against_grl; +}; + + +/** + This internal handler is used to trap ER_NO_SUCH_TABLE. +*/ + +class No_such_table_error_handler : public Internal_error_handler +{ +public: + No_such_table_error_handler() + : m_handled_errors(0), m_unhandled_errors(0) + {} + + bool handle_condition(THD *thd, + uint sql_errno, + const char* sqlstate, + MYSQL_ERROR::enum_warning_level level, + const char* msg, + MYSQL_ERROR ** cond_hdl); + + /** + Returns TRUE if one or more ER_NO_SUCH_TABLE errors have been + trapped and no other errors have been seen. FALSE otherwise. + */ + bool safely_trapped_errors(); + +private: + int m_handled_errors; + int m_unhandled_errors; +}; + + +#endif /* SQL_BASE_INCLUDED */ diff --git a/database/include/mysql/private/sql_binlog.h b/database/include/mysql/private/sql_binlog.h new file mode 100644 index 0000000..d10d78e --- /dev/null +++ b/database/include/mysql/private/sql_binlog.h @@ -0,0 +1,23 @@ +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef SQL_BINLOG_INCLUDED +#define SQL_BINLOG_INCLUDED + +class THD; + +void mysql_client_binlog_statement(THD *thd); + +#endif /* SQL_BINLOG_INCLUDED */ diff --git a/database/include/mysql/private/sql_bitmap.h b/database/include/mysql/private/sql_bitmap.h new file mode 100644 index 0000000..d4892e7 --- /dev/null +++ b/database/include/mysql/private/sql_bitmap.h @@ -0,0 +1,186 @@ +/* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* + Implementation of a bitmap type. + The idea with this is to be able to handle any constant number of bits but + also be able to use 32 or 64 bits bitmaps very efficiently +*/ + +#ifndef SQL_BITMAP_INCLUDED +#define SQL_BITMAP_INCLUDED + +#include +#include + +template class Bitmap +{ + MY_BITMAP map; + uint32 buffer[(default_width+31)/32]; +public: + Bitmap() { init(); } + Bitmap(const Bitmap& from) { *this=from; } + explicit Bitmap(uint prefix_to_set) { init(prefix_to_set); } + void init() { bitmap_init(&map, buffer, default_width, 0); } + void init(uint prefix_to_set) { init(); set_prefix(prefix_to_set); } + uint length() const { return default_width; } + Bitmap& operator=(const Bitmap& map2) + { + init(); + memcpy(buffer, map2.buffer, sizeof(buffer)); + return *this; + } + void set_bit(uint n) { bitmap_set_bit(&map, n); } + void clear_bit(uint n) { bitmap_clear_bit(&map, n); } + void set_prefix(uint n) { bitmap_set_prefix(&map, n); } + void set_all() { bitmap_set_all(&map); } + void clear_all() { bitmap_clear_all(&map); } + void intersect(Bitmap& map2) { bitmap_intersect(&map, &map2.map); } + void intersect(ulonglong map2buff) + { + MY_BITMAP map2; + bitmap_init(&map2, (uint32 *)&map2buff, sizeof(ulonglong)*8, 0); + bitmap_intersect(&map, &map2); + } + /* Use highest bit for all bits above sizeof(ulonglong)*8. */ + void intersect_extended(ulonglong map2buff) + { + intersect(map2buff); + if (map.n_bits > sizeof(ulonglong) * 8) + bitmap_set_above(&map, sizeof(ulonglong), + test(map2buff & (LL(1) << (sizeof(ulonglong) * 8 - 1)))); + } + void subtract(Bitmap& map2) { bitmap_subtract(&map, &map2.map); } + void merge(Bitmap& map2) { bitmap_union(&map, &map2.map); } + bool is_set(uint n) const { return bitmap_is_set(&map, n); } + bool is_prefix(uint n) const { return bitmap_is_prefix(&map, n); } + bool is_clear_all() const { return bitmap_is_clear_all(&map); } + bool is_set_all() const { return bitmap_is_set_all(&map); } + bool is_subset(const Bitmap& map2) const { return bitmap_is_subset(&map, &map2.map); } + bool is_overlapping(const Bitmap& map2) const { return bitmap_is_overlapping(&map, &map2.map); } + bool operator==(const Bitmap& map2) const { return bitmap_cmp(&map, &map2.map); } + bool operator!=(const Bitmap& map2) const { return !(*this == map2); } + char *print(char *buf) const + { + char *s=buf; + const uchar *e=(uchar *)buffer, *b=e+sizeof(buffer)-1; + while (!*b && b>e) + b--; + if ((*s=_dig_vec_upper[*b >> 4]) != '0') + s++; + *s++=_dig_vec_upper[*b & 15]; + while (--b>=e) + { + *s++=_dig_vec_upper[*b >> 4]; + *s++=_dig_vec_upper[*b & 15]; + } + *s=0; + return buf; + } + ulonglong to_ulonglong() const + { + if (sizeof(buffer) >= 8) + return uint8korr(buffer); + DBUG_ASSERT(sizeof(buffer) >= 4); + return (ulonglong) uint4korr(buffer); + } + uint bits_set() + { + return bitmap_bits_set(&map); + } +}; + +/* An iterator to quickly walk over bits in unlonglong bitmap. */ +class Table_map_iterator +{ + ulonglong bmp; + uint no; +public: + Table_map_iterator(ulonglong t) : bmp(t), no(0) {} + int next_bit() + { + static const char last_bit[16]= {32, 0, 1, 0, + 2, 0, 1, 0, + 3, 0, 1, 0, + 2, 0, 1, 0}; + uint bit; + while ((bit= last_bit[bmp & 0xF]) == 32) + { + no += 4; + bmp= bmp >> 4; + if (!bmp) + return BITMAP_END; + } + bmp &= ~(1LL << bit); + return no + bit; + } + int operator++(int) { return next_bit(); } + enum { BITMAP_END= 64 }; +}; + +template <> class Bitmap<64> +{ + ulonglong map; +public: + Bitmap<64>() { } + explicit Bitmap<64>(uint prefix_to_set) { set_prefix(prefix_to_set); } + void init() { } + void init(uint prefix_to_set) { set_prefix(prefix_to_set); } + uint length() const { return 64; } + void set_bit(uint n) { map|= ((ulonglong)1) << n; } + void clear_bit(uint n) { map&= ~(((ulonglong)1) << n); } + void set_prefix(uint n) + { + if (n >= length()) + set_all(); + else + map= (((ulonglong)1) << n)-1; + } + void set_all() { map=~(ulonglong)0; } + void clear_all() { map=(ulonglong)0; } + void intersect(Bitmap<64>& map2) { map&= map2.map; } + void intersect(ulonglong map2) { map&= map2; } + void intersect_extended(ulonglong map2) { map&= map2; } + void subtract(Bitmap<64>& map2) { map&= ~map2.map; } + void merge(Bitmap<64>& map2) { map|= map2.map; } + bool is_set(uint n) const { return test(map & (((ulonglong)1) << n)); } + bool is_prefix(uint n) const { return map == (((ulonglong)1) << n)-1; } + bool is_clear_all() const { return map == (ulonglong)0; } + bool is_set_all() const { return map == ~(ulonglong)0; } + bool is_subset(const Bitmap<64>& map2) const { return !(map & ~map2.map); } + bool is_overlapping(const Bitmap<64>& map2) const { return (map & map2.map)!= 0; } + bool operator==(const Bitmap<64>& map2) const { return map == map2.map; } + char *print(char *buf) const { longlong2str(map,buf,16); return buf; } + ulonglong to_ulonglong() const { return map; } + class Iterator : public Table_map_iterator + { + public: + Iterator(Bitmap<64> &bmp) : Table_map_iterator(bmp.map) {} + }; + uint bits_set() + { + //TODO: use my_count_bits() + uint res= 0, i= 0; + for (; i < 64 ; i++) + { + if (map & ((ulonglong)1<variables.query_cache_type == 0 || query_cache.query_cache_size == 0) +#define query_cache_is_cacheable_query(L) \ + (((L)->sql_command == SQLCOM_SELECT) && (L)->safe_to_cache_query) +#else +#define QUERY_CACHE_FLAGS_SIZE 0 +#define query_cache_store_query(A, B) do { } while(0) +#define query_cache_destroy() do { } while(0) +#define query_cache_result_size_limit(A) do { } while(0) +#define query_cache_init() do { } while(0) +#define query_cache_resize(A) do { } while(0) +#define query_cache_set_min_res_unit(A) do { } while(0) +#define query_cache_invalidate3(A, B, C) do { } while(0) +#define query_cache_invalidate1(A,B) do { } while(0) +#define query_cache_send_result_to_client(A, B, C) 0 +#define query_cache_invalidate_by_MyISAM_filename_ref NULL + +#define query_cache_abort(A) do { } while(0) +#define query_cache_end_of_result(A) do { } while(0) +#define query_cache_maybe_disabled(T) 1 +#define query_cache_is_cacheable_query(L) 0 +#endif /*HAVE_QUERY_CACHE*/ + +extern Query_cache query_cache; +#endif diff --git a/database/include/mysql/private/sql_callback.h b/database/include/mysql/private/sql_callback.h new file mode 100644 index 0000000..1f798ad --- /dev/null +++ b/database/include/mysql/private/sql_callback.h @@ -0,0 +1,42 @@ +/* + Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA +*/ + +#ifndef SQL_CALLBACK_INCLUDED +#define SQL_CALLBACK_INCLUDED + +/** + Macro used for an internal callback. + + The macro will check that the object exists and that the function + is defined. If that is the case, it will call the function with the + given parameters. + + If the object or the function is not defined, the callback will be + considered successful (nothing needed to be done) and will + therefore return no error. + */ + +#define MYSQL_CALLBACK(OBJ, FUNC, PARAMS) \ + do { \ + if ((OBJ) && ((OBJ)->FUNC)) \ + (OBJ)->FUNC PARAMS; \ + } while (0) + +#define MYSQL_CALLBACK_ELSE(OBJ, FUNC, PARAMS, ELSE) \ + (((OBJ) && ((OBJ)->FUNC)) ? (OBJ)->FUNC PARAMS : (ELSE)) + +#endif /* SQL_CALLBACK_INCLUDED */ diff --git a/database/include/mysql/private/sql_class.h b/database/include/mysql/private/sql_class.h new file mode 100644 index 0000000..2fac8d4 --- /dev/null +++ b/database/include/mysql/private/sql_class.h @@ -0,0 +1,4432 @@ +/* + Copyright (c) 2000, 2016, Oracle and/or its affiliates. + Copyright (c) 2009, 2016, MariaDB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + + +#ifndef SQL_CLASS_INCLUDED +#define SQL_CLASS_INCLUDED + +/* Classes in mysql */ + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif + +#include "my_global.h" /* NO_EMBEDDED_ACCESS_CHECKS */ +#ifdef MYSQL_SERVER +#include "unireg.h" // REQUIRED: for other includes +#endif +#include +#include "sql_const.h" +#include +#include "log.h" +#include "rpl_tblmap.h" +#include "mdl.h" +#include "probes_mysql.h" +#include "sql_locale.h" /* my_locale_st */ +#include "sql_profile.h" /* PROFILING */ +#include "scheduler.h" /* thd_scheduler */ +#include "protocol.h" /* Protocol_text, Protocol_binary */ +#include "violite.h" /* vio_is_connected */ +#include "thr_lock.h" /* thr_lock_type, THR_LOCK_DATA, + THR_LOCK_INFO */ + + +class Reprepare_observer; +class Relay_log_info; +class Query_log_event; +class Load_log_event; +class Slave_log_event; +class sp_rcontext; +class sp_cache; +class Lex_input_stream; +class Parser_state; +class Rows_log_event; +class Sroutine_hash_entry; +class User_level_lock; +class user_var_entry; +struct Trans_binlog_info; + +enum enum_enable_or_disable { LEAVE_AS_IS, ENABLE, DISABLE }; +enum enum_ha_read_modes { RFIRST, RNEXT, RPREV, RLAST, RKEY, RNEXT_SAME }; +enum enum_duplicates { DUP_ERROR, DUP_REPLACE, DUP_UPDATE }; +enum enum_delay_key_write { DELAY_KEY_WRITE_NONE, DELAY_KEY_WRITE_ON, + DELAY_KEY_WRITE_ALL }; +enum enum_slave_exec_mode { SLAVE_EXEC_MODE_STRICT, + SLAVE_EXEC_MODE_IDEMPOTENT, + SLAVE_EXEC_MODE_LAST_BIT}; +enum enum_slave_type_conversions { SLAVE_TYPE_CONVERSIONS_ALL_LOSSY, + SLAVE_TYPE_CONVERSIONS_ALL_NON_LOSSY}; +enum enum_mark_columns +{ MARK_COLUMNS_NONE, MARK_COLUMNS_READ, MARK_COLUMNS_WRITE}; +enum enum_filetype { FILETYPE_CSV, FILETYPE_XML }; + +/* Bits for different SQL modes modes (including ANSI mode) */ +#define MODE_REAL_AS_FLOAT 1 +#define MODE_PIPES_AS_CONCAT 2 +#define MODE_ANSI_QUOTES 4 +#define MODE_IGNORE_SPACE 8 +#define MODE_IGNORE_BAD_TABLE_OPTIONS 16 +#define MODE_ONLY_FULL_GROUP_BY 32 +#define MODE_NO_UNSIGNED_SUBTRACTION 64 +#define MODE_NO_DIR_IN_CREATE 128 +#define MODE_POSTGRESQL 256 +#define MODE_ORACLE 512 +#define MODE_MSSQL 1024 +#define MODE_DB2 2048 +#define MODE_MAXDB 4096 +#define MODE_NO_KEY_OPTIONS 8192 +#define MODE_NO_TABLE_OPTIONS 16384 +#define MODE_NO_FIELD_OPTIONS 32768 +#define MODE_MYSQL323 65536L +#define MODE_MYSQL40 (MODE_MYSQL323*2) +#define MODE_ANSI (MODE_MYSQL40*2) +#define MODE_NO_AUTO_VALUE_ON_ZERO (MODE_ANSI*2) +#define MODE_NO_BACKSLASH_ESCAPES (MODE_NO_AUTO_VALUE_ON_ZERO*2) +#define MODE_STRICT_TRANS_TABLES (MODE_NO_BACKSLASH_ESCAPES*2) +#define MODE_STRICT_ALL_TABLES (MODE_STRICT_TRANS_TABLES*2) +#define MODE_NO_ZERO_IN_DATE (MODE_STRICT_ALL_TABLES*2) +#define MODE_NO_ZERO_DATE (MODE_NO_ZERO_IN_DATE*2) +#define MODE_INVALID_DATES (MODE_NO_ZERO_DATE*2) +#define MODE_ERROR_FOR_DIVISION_BY_ZERO (MODE_INVALID_DATES*2) +#define MODE_TRADITIONAL (MODE_ERROR_FOR_DIVISION_BY_ZERO*2) +#define MODE_NO_AUTO_CREATE_USER (MODE_TRADITIONAL*2) +#define MODE_HIGH_NOT_PRECEDENCE (MODE_NO_AUTO_CREATE_USER*2) +#define MODE_NO_ENGINE_SUBSTITUTION (MODE_HIGH_NOT_PRECEDENCE*2) +#define MODE_PAD_CHAR_TO_FULL_LENGTH (ULL(1) << 31) + +/* Bits for different old style modes */ +#define OLD_MODE_NO_DUP_KEY_WARNINGS_WITH_IGNORE 1 +#define OLD_MODE_NO_PROGRESS_INFO 2 + +extern char internal_table_name[2]; +extern char empty_c_string[1]; +extern MYSQL_PLUGIN_IMPORT const char **errmesg; + +extern bool volatile shutdown_in_progress; + +extern "C" LEX_STRING * thd_query_string (MYSQL_THD thd); +extern "C" char **thd_query(MYSQL_THD thd); + +/** + @class CSET_STRING + @brief Character set armed LEX_STRING +*/ +class CSET_STRING +{ +private: + LEX_STRING string; + CHARSET_INFO *cs; +public: + CSET_STRING() : cs(&my_charset_bin) + { + string.str= NULL; + string.length= 0; + } + CSET_STRING(char *str_arg, size_t length_arg, CHARSET_INFO *cs_arg) : + cs(cs_arg) + { + DBUG_ASSERT(cs_arg != NULL); + string.str= str_arg; + string.length= length_arg; + } + + inline char *str() const { return string.str; } + inline uint32 length() const { return string.length; } + CHARSET_INFO *charset() const { return cs; } + + friend LEX_STRING * thd_query_string (MYSQL_THD thd); + friend char **thd_query(MYSQL_THD thd); +}; + + +#define TC_LOG_PAGE_SIZE 8192 +#define TC_LOG_MIN_SIZE (3*TC_LOG_PAGE_SIZE) + +#define TC_HEURISTIC_RECOVER_COMMIT 1 +#define TC_HEURISTIC_RECOVER_ROLLBACK 2 +extern ulong tc_heuristic_recover; + +typedef struct st_user_var_events +{ + user_var_entry *user_var_event; + char *value; + ulong length; + Item_result type; + uint charset_number; + bool unsigned_flag; +} BINLOG_USER_VAR_EVENT; + +/* + The COPY_INFO structure is used by INSERT/REPLACE code. + The schema of the row counting by the INSERT/INSERT ... ON DUPLICATE KEY + UPDATE code: + If a row is inserted then the copied variable is incremented. + If a row is updated by the INSERT ... ON DUPLICATE KEY UPDATE and the + new data differs from the old one then the copied and the updated + variables are incremented. + The touched variable is incremented if a row was touched by the update part + of the INSERT ... ON DUPLICATE KEY UPDATE no matter whether the row + was actually changed or not. +*/ +typedef struct st_copy_info { + ha_rows records; /**< Number of processed records */ + ha_rows deleted; /**< Number of deleted records */ + ha_rows updated; /**< Number of updated records */ + ha_rows copied; /**< Number of copied records */ + ha_rows error_count; + ha_rows touched; /* Number of touched records */ + enum enum_duplicates handle_duplicates; + int escape_char, last_errno; + bool ignore; + /* for INSERT ... UPDATE */ + List *update_fields; + List *update_values; + /* for VIEW ... WITH CHECK OPTION */ + TABLE_LIST *view; +} COPY_INFO; + + +class Key_part_spec :public Sql_alloc { +public: + LEX_STRING field_name; + uint length; + Key_part_spec(const LEX_STRING &name, uint len) + : field_name(name), length(len) + {} + Key_part_spec(const char *name, const size_t name_len, uint len) + : length(len) + { field_name.str= (char *)name; field_name.length= name_len; } + bool operator==(const Key_part_spec& other) const; + /** + Construct a copy of this Key_part_spec. field_name is copied + by-pointer as it is known to never change. At the same time + 'length' may be reset in mysql_prepare_create_table, and this + is why we supply it with a copy. + + @return If out of memory, 0 is returned and an error is set in + THD. + */ + Key_part_spec *clone(MEM_ROOT *mem_root) const + { return new (mem_root) Key_part_spec(*this); } +}; + + +class Alter_drop :public Sql_alloc { +public: + enum drop_type {KEY, COLUMN }; + const char *name; + enum drop_type type; + Alter_drop(enum drop_type par_type,const char *par_name) + :name(par_name), type(par_type) {} + /** + Used to make a clone of this object for ALTER/CREATE TABLE + @sa comment for Key_part_spec::clone + */ + Alter_drop *clone(MEM_ROOT *mem_root) const + { return new (mem_root) Alter_drop(*this); } +}; + + +class Alter_column :public Sql_alloc { +public: + const char *name; + Item *def; + Alter_column(const char *par_name,Item *literal) + :name(par_name), def(literal) {} + /** + Used to make a clone of this object for ALTER/CREATE TABLE + @sa comment for Key_part_spec::clone + */ + Alter_column *clone(MEM_ROOT *mem_root) const + { return new (mem_root) Alter_column(*this); } +}; + + +class Key :public Sql_alloc { +public: + enum Keytype { PRIMARY, UNIQUE, MULTIPLE, FULLTEXT, SPATIAL, FOREIGN_KEY}; + enum Keytype type; + KEY_CREATE_INFO key_create_info; + List columns; + LEX_STRING name; + engine_option_value *option_list; + bool generated; + + Key(enum Keytype type_par, const LEX_STRING &name_arg, + KEY_CREATE_INFO *key_info_arg, + bool generated_arg, List &cols, + engine_option_value *create_opt) + :type(type_par), key_create_info(*key_info_arg), columns(cols), + name(name_arg), option_list(create_opt), generated(generated_arg) + {} + Key(enum Keytype type_par, const char *name_arg, size_t name_len_arg, + KEY_CREATE_INFO *key_info_arg, bool generated_arg, + List &cols, + engine_option_value *create_opt) + :type(type_par), key_create_info(*key_info_arg), columns(cols), + option_list(create_opt), generated(generated_arg) + { + name.str= (char *)name_arg; + name.length= name_len_arg; + } + Key(const Key &rhs, MEM_ROOT *mem_root); + virtual ~Key() {} + /* Equality comparison of keys (ignoring name) */ + friend bool foreign_key_prefix(Key *a, Key *b); + /** + Used to make a clone of this object for ALTER/CREATE TABLE + @sa comment for Key_part_spec::clone + */ + virtual Key *clone(MEM_ROOT *mem_root) const + { return new (mem_root) Key(*this, mem_root); } +}; + +class Table_ident; + +class Foreign_key: public Key { +public: + enum fk_match_opt { FK_MATCH_UNDEF, FK_MATCH_FULL, + FK_MATCH_PARTIAL, FK_MATCH_SIMPLE}; + enum fk_option { FK_OPTION_UNDEF, FK_OPTION_RESTRICT, FK_OPTION_CASCADE, + FK_OPTION_SET_NULL, FK_OPTION_NO_ACTION, FK_OPTION_DEFAULT}; + + Table_ident *ref_table; + List ref_columns; + uint delete_opt, update_opt, match_opt; + Foreign_key(const LEX_STRING &name_arg, List &cols, + Table_ident *table, List &ref_cols, + uint delete_opt_arg, uint update_opt_arg, uint match_opt_arg) + :Key(FOREIGN_KEY, name_arg, &default_key_create_info, 0, cols, NULL), + ref_table(table), ref_columns(ref_cols), + delete_opt(delete_opt_arg), update_opt(update_opt_arg), + match_opt(match_opt_arg) + {} + Foreign_key(const Foreign_key &rhs, MEM_ROOT *mem_root); + /** + Used to make a clone of this object for ALTER/CREATE TABLE + @sa comment for Key_part_spec::clone + */ + virtual Key *clone(MEM_ROOT *mem_root) const + { return new (mem_root) Foreign_key(*this, mem_root); } + /* Used to validate foreign key options */ + bool validate(List &table_fields); +}; + +typedef struct st_mysql_lock +{ + TABLE **table; + uint table_count,lock_count; + THR_LOCK_DATA **locks; +} MYSQL_LOCK; + + +class LEX_COLUMN : public Sql_alloc +{ +public: + String column; + uint rights; + LEX_COLUMN (const String& x,const uint& y ): column (x),rights (y) {} +}; + +class MY_LOCALE; + +/** + Query_cache_tls -- query cache thread local data. +*/ + +struct Query_cache_block; + +struct Query_cache_tls +{ + /* + 'first_query_block' should be accessed only via query cache + functions and methods to maintain proper locking. + */ + Query_cache_block *first_query_block; + void set_first_query_block(Query_cache_block *first_query_block_arg) + { + first_query_block= first_query_block_arg; + } + + Query_cache_tls() :first_query_block(NULL) {} +}; + +/* SIGNAL / RESIGNAL / GET DIAGNOSTICS */ + +/** + This enumeration list all the condition item names of a condition in the + SQL condition area. +*/ +typedef enum enum_diag_condition_item_name +{ + /* + Conditions that can be set by the user (SIGNAL/RESIGNAL), + and by the server implementation. + */ + + DIAG_CLASS_ORIGIN= 0, + FIRST_DIAG_SET_PROPERTY= DIAG_CLASS_ORIGIN, + DIAG_SUBCLASS_ORIGIN= 1, + DIAG_CONSTRAINT_CATALOG= 2, + DIAG_CONSTRAINT_SCHEMA= 3, + DIAG_CONSTRAINT_NAME= 4, + DIAG_CATALOG_NAME= 5, + DIAG_SCHEMA_NAME= 6, + DIAG_TABLE_NAME= 7, + DIAG_COLUMN_NAME= 8, + DIAG_CURSOR_NAME= 9, + DIAG_MESSAGE_TEXT= 10, + DIAG_MYSQL_ERRNO= 11, + LAST_DIAG_SET_PROPERTY= DIAG_MYSQL_ERRNO +} Diag_condition_item_name; + +/** + Name of each diagnostic condition item. + This array is indexed by Diag_condition_item_name. +*/ +extern const LEX_STRING Diag_condition_item_names[]; + +/** + These states are bit coded with HARD. For each state there must be a pair + , and _HARD. +*/ +enum killed_state +{ + NOT_KILLED= 0, + KILL_HARD_BIT= 1, /* Bit for HARD KILL */ + KILL_BAD_DATA= 2, + KILL_BAD_DATA_HARD= 3, + KILL_QUERY= 4, + KILL_QUERY_HARD= 5, + /* + ABORT_QUERY signals to the query processor to stop execution ASAP without + issuing an error. Instead a warning is issued, and when possible a partial + query result is returned to the client. + */ + ABORT_QUERY= 6, + ABORT_QUERY_HARD= 7, + /* + All of the following killed states will kill the connection + KILL_CONNECTION must be the first of these and it must start with + an even number (becasue of HARD bit)! + */ + KILL_CONNECTION= 8, + KILL_CONNECTION_HARD= 9, + KILL_SYSTEM_THREAD= 10, + KILL_SYSTEM_THREAD_HARD= 11, + KILL_SERVER= 12, + KILL_SERVER_HARD= 13 +}; + +extern int killed_errno(killed_state killed); +#define killed_mask_hard(killed) ((killed_state) ((killed) & ~KILL_HARD_BIT)) + +enum killed_type +{ + KILL_TYPE_ID, + KILL_TYPE_USER +}; + +#include "sql_lex.h" /* Must be here */ + +extern LEX_STRING sql_statement_names[(uint) SQLCOM_END + 1]; +class Delayed_insert; +class select_result; +class Time_zone; + +#define THD_SENTRY_MAGIC 0xfeedd1ff +#define THD_SENTRY_GONE 0xdeadbeef + +#define THD_CHECK_SENTRY(thd) DBUG_ASSERT(thd->dbug_sentry == THD_SENTRY_MAGIC) + +typedef struct system_variables +{ + /* + How dynamically allocated system variables are handled: + + The global_system_variables and max_system_variables are "authoritative" + They both should have the same 'version' and 'size'. + When attempting to access a dynamic variable, if the session version + is out of date, then the session version is updated and realloced if + neccessary and bytes copied from global to make up for missing data. + + Note that one should use my_bool instead of bool here, as the variables + are used with my_getopt.c + */ + ulong dynamic_variables_version; + char* dynamic_variables_ptr; + uint dynamic_variables_head; /* largest valid variable offset */ + uint dynamic_variables_size; /* how many bytes are in use */ + + ulonglong max_heap_table_size; + ulonglong tmp_table_size; + ulonglong long_query_time; + ulonglong optimizer_switch; + ulonglong sql_mode; ///< which non-standard SQL behaviour should be enabled + ulonglong old_behavior; ///< which old SQL behaviour should be enabled + ulonglong option_bits; ///< OPTION_xxx constants, e.g. OPTION_PROFILING + ulonglong join_buff_space_limit; + ulonglong log_slow_filter; + ulonglong log_slow_verbosity; + ulonglong bulk_insert_buff_size; + ulonglong join_buff_size; + ulonglong sortbuff_size; + ulonglong group_concat_max_len; + ha_rows select_limit; + ha_rows max_join_size; + ha_rows expensive_subquery_limit; + ulong auto_increment_increment, auto_increment_offset; + ulong lock_wait_timeout; + ulong join_cache_level; + ulong max_allowed_packet; + ulong max_error_count; + ulong max_length_for_sort_data; + ulong max_sort_length; + ulong max_tmp_tables; + ulong max_insert_delayed_threads; + ulong min_examined_row_limit; + ulong multi_range_count; + ulong net_buffer_length; + ulong net_interactive_timeout; + ulong net_read_timeout; + ulong net_retry_count; + ulong net_wait_timeout; + ulong net_write_timeout; + ulong optimizer_prune_level; + ulong optimizer_search_depth; + ulong preload_buff_size; + ulong profiling_history_size; + ulong read_buff_size; + ulong read_rnd_buff_size; + ulong mrr_buff_size; + ulong div_precincrement; + /* Total size of all buffers used by the subselect_rowid_merge_engine. */ + ulong rowid_merge_buff_size; + ulong max_sp_recursion_depth; + ulong default_week_format; + ulong max_seeks_for_key; + ulong range_alloc_block_size; + ulong query_alloc_block_size; + ulong query_prealloc_size; + ulong trans_alloc_block_size; + ulong trans_prealloc_size; + ulong log_warnings; + /* Flags for slow log filtering */ + ulong log_slow_rate_limit; + ulong binlog_format; ///< binlog format for this thd (see enum_binlog_format) + ulong progress_report_time; + my_bool binlog_annotate_row_events; + my_bool binlog_direct_non_trans_update; + my_bool sql_log_bin; + ulong completion_type; + ulong query_cache_type; + ulong tx_isolation; + ulong updatable_views_with_limit; + int max_user_connections; + /** + In slave thread we need to know in behalf of which + thread the query is being run to replicate temp tables properly + */ + my_thread_id pseudo_thread_id; + + my_bool low_priority_updates; + my_bool query_cache_wlock_invalidate; + my_bool engine_condition_pushdown; + my_bool keep_files_on_create; + + my_bool old_mode; + my_bool old_alter_table; + my_bool old_passwords; + my_bool big_tables; + my_bool query_cache_strip_comments; + + plugin_ref table_plugin; + + /* Only charset part of these variables is sensible */ + CHARSET_INFO *character_set_filesystem; + CHARSET_INFO *character_set_client; + CHARSET_INFO *character_set_results; + + /* Both charset and collation parts of these variables are important */ + CHARSET_INFO *collation_server; + CHARSET_INFO *collation_database; + CHARSET_INFO *collation_connection; + + /* Error messages */ + MY_LOCALE *lc_messages; + /* Locale Support */ + MY_LOCALE *lc_time_names; + + Time_zone *time_zone; + + my_bool sysdate_is_now; + + /* deadlock detection */ + ulong wt_timeout_short, wt_deadlock_search_depth_short; + ulong wt_timeout_long, wt_deadlock_search_depth_long; + + double long_query_time_double; + + my_bool pseudo_slave_mode; + +} SV; + +/** + Per thread status variables. + Must be long/ulong up to last_system_status_var so that + add_to_status/add_diff_to_status can work. +*/ + +typedef struct system_status_var +{ + ulong com_other; + ulong com_stat[(uint) SQLCOM_END]; + ulong created_tmp_disk_tables; + ulong created_tmp_tables; + ulong ha_commit_count; + ulong ha_delete_count; + ulong ha_read_first_count; + ulong ha_read_last_count; + ulong ha_read_key_count; + ulong ha_read_next_count; + ulong ha_read_prev_count; + ulong ha_read_rnd_count; + ulong ha_read_rnd_next_count; + ulong ha_read_rnd_deleted_count; + /* + This number doesn't include calls to the default implementation and + calls made by range access. The intent is to count only calls made by + BatchedKeyAccess. + */ + ulong ha_mrr_init_count; + ulong ha_mrr_key_refills_count; + ulong ha_mrr_rowid_refills_count; + + ulong ha_rollback_count; + ulong ha_update_count; + ulong ha_write_count; + /* The following are for internal temporary tables */ + ulong ha_tmp_update_count; + ulong ha_tmp_write_count; + ulong ha_prepare_count; + ulong ha_icp_attempts; + ulong ha_icp_match; + ulong ha_discover_count; + ulong ha_savepoint_count; + ulong ha_savepoint_rollback_count; + + ulong net_big_packet_count; + ulong opened_tables; + ulong opened_shares; + ulong opened_views; /* +1 opening a view */ + + ulong select_full_join_count; + ulong select_full_range_join_count; + ulong select_range_count; + ulong select_range_check_count; + ulong select_scan_count; + ulong executed_triggers; + ulong long_query_count; + ulong filesort_merge_passes; + ulong filesort_range_count; + ulong filesort_rows; + ulong filesort_scan_count; + /* Prepared statements and binary protocol */ + ulong com_stmt_prepare; + ulong com_stmt_reprepare; + ulong com_stmt_execute; + ulong com_stmt_send_long_data; + ulong com_stmt_fetch; + ulong com_stmt_reset; + ulong com_stmt_close; + + /* Features used */ + ulong feature_dynamic_columns; /* +1 when creating a dynamic column */ + ulong feature_fulltext; /* +1 when MATCH is used */ + ulong feature_gis; /* +1 opening a table with GIS features */ + ulong feature_locale; /* +1 when LOCALE is set */ + ulong feature_subquery; /* +1 when subqueries are used */ + ulong feature_timezone; /* +1 when XPATH is used */ + ulong feature_trigger; /* +1 opening a table with triggers */ + ulong feature_xml; /* +1 when XPATH is used */ + + ulong empty_queries; + ulong access_denied_errors; + ulong lost_connections; + /* + Number of statements sent from the client + */ + ulong questions; + /* + IMPORTANT! + SEE last_system_status_var DEFINITION BELOW. + Below 'last_system_status_var' are all variables that cannot be handled + automatically by add_to_status()/add_diff_to_status(). + */ + ulonglong bytes_received; + ulonglong bytes_sent; + ulonglong rows_read; + ulonglong rows_sent; + ulonglong rows_tmp_read; + ulonglong binlog_bytes_written; + double last_query_cost; + double cpu_time, busy_time; +} STATUS_VAR; + +/* + This is used for 'SHOW STATUS'. It must be updated to the last ulong + variable in system_status_var which is makes sense to add to the global + counter +*/ + +#define last_system_status_var questions + +void add_to_status(STATUS_VAR *to_var, STATUS_VAR *from_var); + +void add_diff_to_status(STATUS_VAR *to_var, STATUS_VAR *from_var, + STATUS_VAR *dec_var); + +#ifdef MYSQL_SERVER + +void free_tmp_table(THD *thd, TABLE *entry); + + +/* The following macro is to make init of Query_arena simpler */ +#ifndef DBUG_OFF +#define INIT_ARENA_DBUG_INFO is_backup_arena= 0; is_reprepared= FALSE; +#else +#define INIT_ARENA_DBUG_INFO +#endif + +class Query_arena +{ +public: + /* + List of items created in the parser for this query. Every item puts + itself to the list on creation (see Item::Item() for details)) + */ + Item *free_list; + MEM_ROOT *mem_root; // Pointer to current memroot +#ifndef DBUG_OFF + bool is_backup_arena; /* True if this arena is used for backup. */ + bool is_reprepared; +#endif + /* + The states relfects three diffrent life cycles for three + different types of statements: + Prepared statement: STMT_INITIALIZED -> STMT_PREPARED -> STMT_EXECUTED. + Stored procedure: STMT_INITIALIZED_FOR_SP -> STMT_EXECUTED. + Other statements: STMT_CONVENTIONAL_EXECUTION never changes. + */ + enum enum_state + { + STMT_INITIALIZED= 0, STMT_INITIALIZED_FOR_SP= 1, STMT_PREPARED= 2, + STMT_CONVENTIONAL_EXECUTION= 3, STMT_EXECUTED= 4, STMT_ERROR= -1 + }; + + enum_state state; + + /* We build without RTTI, so dynamic_cast can't be used. */ + enum Type + { + STATEMENT, PREPARED_STATEMENT, STORED_PROCEDURE + }; + + Query_arena(MEM_ROOT *mem_root_arg, enum enum_state state_arg) : + free_list(0), mem_root(mem_root_arg), state(state_arg) + { INIT_ARENA_DBUG_INFO; } + /* + This constructor is used only when Query_arena is created as + backup storage for another instance of Query_arena. + */ + Query_arena() { INIT_ARENA_DBUG_INFO; } + + virtual Type type() const; + virtual ~Query_arena() {}; + + inline bool is_stmt_prepare() const { return state == STMT_INITIALIZED; } + inline bool is_stmt_prepare_or_first_sp_execute() const + { return (int)state < (int)STMT_PREPARED; } + inline bool is_stmt_prepare_or_first_stmt_execute() const + { return (int)state <= (int)STMT_PREPARED; } + inline bool is_stmt_execute() const + { return state == STMT_PREPARED || state == STMT_EXECUTED; } + inline bool is_conventional() const + { return state == STMT_CONVENTIONAL_EXECUTION; } + + inline void* alloc(size_t size) { return alloc_root(mem_root,size); } + inline void* calloc(size_t size) + { + void *ptr; + if ((ptr=alloc_root(mem_root,size))) + bzero(ptr, size); + return ptr; + } + inline char *strdup(const char *str) + { return strdup_root(mem_root,str); } + inline char *strmake(const char *str, size_t size) + { return strmake_root(mem_root,str,size); } + inline void *memdup(const void *str, size_t size) + { return memdup_root(mem_root,str,size); } + inline void *memdup_w_gap(const void *str, size_t size, uint gap) + { + void *ptr; + if ((ptr= alloc_root(mem_root,size+gap))) + memcpy(ptr,str,size); + return ptr; + } + + void set_query_arena(Query_arena *set); + + void free_items(); + /* Close the active state associated with execution of this statement */ + virtual void cleanup_stmt(); +}; + + +class Server_side_cursor; + +/** + @class Statement + @brief State of a single command executed against this connection. + + One connection can contain a lot of simultaneously running statements, + some of which could be: + - prepared, that is, contain placeholders, + - opened as cursors. We maintain 1 to 1 relationship between + statement and cursor - if user wants to create another cursor for his + query, we create another statement for it. + To perform some action with statement we reset THD part to the state of + that statement, do the action, and then save back modified state from THD + to the statement. It will be changed in near future, and Statement will + be used explicitly. +*/ + +class Statement: public ilink, public Query_arena +{ + Statement(const Statement &rhs); /* not implemented: */ + Statement &operator=(const Statement &rhs); /* non-copyable */ +public: + /* + Uniquely identifies each statement object in thread scope; change during + statement lifetime. FIXME: must be const + */ + ulong id; + + /* + MARK_COLUMNS_NONE: Means mark_used_colums is not set and no indicator to + handler of fields used is set + MARK_COLUMNS_READ: Means a bit in read set is set to inform handler + that the field is to be read. If field list contains + duplicates, then thd->dup_field is set to point + to the last found duplicate. + MARK_COLUMNS_WRITE: Means a bit is set in write set to inform handler + that it needs to update this field in write_row + and update_row. + */ + enum enum_mark_columns mark_used_columns; + + LEX_STRING name; /* name for named prepared statements */ + LEX *lex; // parse tree descriptor + /* + Points to the query associated with this statement. It's const, but + we need to declare it char * because all table handlers are written + in C and need to point to it. + + Note that if we set query = NULL, we must at the same time set + query_length = 0, and protect the whole operation with + LOCK_thd_data mutex. To avoid crashes in races, if we do not + know that thd->query cannot change at the moment, we should print + thd->query like this: + (1) reserve the LOCK_thd_data mutex; + (2) print or copy the value of query and query_length + (3) release LOCK_thd_data mutex. + This printing is needed at least in SHOW PROCESSLIST and SHOW + ENGINE INNODB STATUS. + */ + CSET_STRING query_string; + /* + If opt_query_cache_strip_comments is set, this contains query without + comments. If not set, it contains pointer to query_string. + */ + String base_query; + + + inline char *query() const { return query_string.str(); } + inline uint32 query_length() const { return query_string.length(); } + CHARSET_INFO *query_charset() const { return query_string.charset(); } + void set_query_inner(const CSET_STRING &string_arg) + { + query_string= string_arg; + } + void set_query_inner(char *query_arg, uint32 query_length_arg, + CHARSET_INFO *cs_arg) + { + set_query_inner(CSET_STRING(query_arg, query_length_arg, cs_arg)); + } + void reset_query_inner() + { + set_query_inner(CSET_STRING()); + } + /** + Name of the current (default) database. + + If there is the current (default) database, "db" contains its name. If + there is no current (default) database, "db" is NULL and "db_length" is + 0. In other words, "db", "db_length" must either be NULL, or contain a + valid database name. + + @note this attribute is set and alloced by the slave SQL thread (for + the THD of that thread); that thread is (and must remain, for now) the + only responsible for freeing this member. + */ + + char *db; + size_t db_length; + + /* This is set to 1 of last call to send_result_to_client() was ok */ + my_bool query_cache_is_applicable; + + /* This constructor is called for backup statements */ + Statement() {} + + Statement(LEX *lex_arg, MEM_ROOT *mem_root_arg, + enum enum_state state_arg, ulong id_arg); + virtual ~Statement(); + + /* Assign execution context (note: not all members) of given stmt to self */ + virtual void set_statement(Statement *stmt); + void set_n_backup_statement(Statement *stmt, Statement *backup); + void restore_backup_statement(Statement *stmt, Statement *backup); + /* return class type */ + virtual Type type() const; +}; + + +/** + Container for all statements created/used in a connection. + Statements in Statement_map have unique Statement::id (guaranteed by id + assignment in Statement::Statement) + Non-empty statement names are unique too: attempt to insert a new statement + with duplicate name causes older statement to be deleted + + Statements are auto-deleted when they are removed from the map and when the + map is deleted. +*/ + +class Statement_map +{ +public: + Statement_map(); + + int insert(THD *thd, Statement *statement); + + Statement *find_by_name(LEX_STRING *name) + { + Statement *stmt; + stmt= (Statement*)my_hash_search(&names_hash, (uchar*)name->str, + name->length); + return stmt; + } + + Statement *find(ulong id) + { + if (last_found_statement == 0 || id != last_found_statement->id) + { + Statement *stmt; + stmt= (Statement *) my_hash_search(&st_hash, (uchar *) &id, sizeof(id)); + if (stmt && stmt->name.str) + return NULL; + last_found_statement= stmt; + } + return last_found_statement; + } + /* + Close all cursors of this connection that use tables of a storage + engine that has transaction-specific state and therefore can not + survive COMMIT or ROLLBACK. Currently all but MyISAM cursors are closed. + */ + void close_transient_cursors(); + void erase(Statement *statement); + /* Erase all statements (calls Statement destructor) */ + void reset(); + ~Statement_map(); +private: + HASH st_hash; + HASH names_hash; + I_List transient_cursor_list; + Statement *last_found_statement; +}; + +struct st_savepoint { + struct st_savepoint *prev; + char *name; + uint length; + Ha_trx_info *ha_list; + /** State of metadata locks before this savepoint was set. */ + MDL_savepoint mdl_savepoint; +}; + +enum xa_states {XA_NOTR=0, XA_ACTIVE, XA_IDLE, XA_PREPARED, XA_ROLLBACK_ONLY}; +extern const char *xa_state_names[]; + +typedef struct st_xid_state { + /* For now, this is only used to catch duplicated external xids */ + XID xid; // transaction identifier + enum xa_states xa_state; // used by external XA only + bool in_thd; + /* Error reported by the Resource Manager (RM) to the Transaction Manager. */ + uint rm_error; + + /** + Check that XA transaction has an uncommitted work. Report an error + to the user in case when there is an uncommitted work for XA transaction. + + @return result of check + @retval false XA transaction is NOT in state IDLE, PREPARED + or ROLLBACK_ONLY. + @retval true XA transaction is in state IDLE or PREPARED + or ROLLBACK_ONLY. + */ + + bool check_has_uncommitted_xa() const + { + if (xa_state == XA_IDLE || + xa_state == XA_PREPARED || + xa_state == XA_ROLLBACK_ONLY) + { + my_error(ER_XAER_RMFAIL, MYF(0), xa_state_names[xa_state]); + return true; + } + return false; + } + +} XID_STATE; + +extern mysql_mutex_t LOCK_xid_cache; +extern HASH xid_cache; +bool xid_cache_init(void); +void xid_cache_free(void); +XID_STATE *xid_cache_search(XID *xid); +bool xid_cache_insert(XID *xid, enum xa_states xa_state); +bool xid_cache_insert(XID_STATE *xid_state); +void xid_cache_delete(XID_STATE *xid_state); + +/** + @class Security_context + @brief A set of THD members describing the current authenticated user. +*/ + +class Security_context { +public: + Security_context() {} /* Remove gcc warning */ + /* + host - host of the client + user - user of the client, set to NULL until the user has been read from + the connection + priv_user - The user privilege we are using. May be "" for anonymous user. + ip - client IP + */ + char *host, *user, *ip; + char priv_user[USERNAME_LENGTH]; + char proxy_user[USERNAME_LENGTH + MAX_HOSTNAME + 5]; + /* The host privilege we are using */ + char priv_host[MAX_HOSTNAME]; + /* The external user (if available) */ + char *external_user; + /* points to host if host is available, otherwise points to ip */ + const char *host_or_ip; + ulong master_access; /* Global privileges from mysql.user */ + ulong db_access; /* Privileges for current db */ + + void init(); + void destroy(); + void skip_grants(); + inline char *priv_host_name() + { + return (*priv_host ? priv_host : (char *)"%"); + } + + bool set_user(char *user_arg); + +#ifndef NO_EMBEDDED_ACCESS_CHECKS + bool + change_security_context(THD *thd, + LEX_STRING *definer_user, + LEX_STRING *definer_host, + LEX_STRING *db, + Security_context **backup); + + void + restore_security_context(THD *thd, Security_context *backup); +#endif + bool user_matches(Security_context *); +}; + + +/** + A registry for item tree transformations performed during + query optimization. We register only those changes which require + a rollback to re-execute a prepared statement or stored procedure + yet another time. +*/ + +struct Item_change_record; +typedef I_List Item_change_list; + + +/** + Type of locked tables mode. + See comment for THD::locked_tables_mode for complete description. +*/ + +enum enum_locked_tables_mode +{ + LTM_NONE= 0, + LTM_LOCK_TABLES, + LTM_PRELOCKED, + LTM_PRELOCKED_UNDER_LOCK_TABLES, + LTM_always_last +}; + + +/** + Class that holds information about tables which were opened and locked + by the thread. It is also used to save/restore this information in + push_open_tables_state()/pop_open_tables_state(). +*/ + +class Open_tables_state +{ +public: + /** + As part of class THD, this member is set during execution + of a prepared statement. When it is set, it is used + by the locking subsystem to report a change in table metadata. + + When Open_tables_state part of THD is reset to open + a system or INFORMATION_SCHEMA table, the member is cleared + to avoid spurious ER_NEED_REPREPARE errors -- system and + INFORMATION_SCHEMA tables are not subject to metadata version + tracking. + @sa check_and_update_table_version() + */ + Reprepare_observer *m_reprepare_observer; + + /** + List of regular tables in use by this thread. Contains temporary and + base tables that were opened with @see open_tables(). + */ + TABLE *open_tables; + /** + List of temporary tables used by this thread. Contains user-level + temporary tables, created with CREATE TEMPORARY TABLE, and + internal temporary tables, created, e.g., to resolve a SELECT, + or for an intermediate table used in ALTER. + XXX Why are internal temporary tables added to this list? + */ + TABLE *temporary_tables; + TABLE *derived_tables; + /* + During a MySQL session, one can lock tables in two modes: automatic + or manual. In automatic mode all necessary tables are locked just before + statement execution, and all acquired locks are stored in 'lock' + member. Unlocking takes place automatically as well, when the + statement ends. + Manual mode comes into play when a user issues a 'LOCK TABLES' + statement. In this mode the user can only use the locked tables. + Trying to use any other tables will give an error. + The locked tables are also stored in this member, however, + thd->locked_tables_mode is turned on. Manual locking is described in + the 'LOCK_TABLES' chapter of the MySQL manual. + See also lock_tables() for details. + */ + MYSQL_LOCK *lock; + + /* + CREATE-SELECT keeps an extra lock for the table being + created. This field is used to keep the extra lock available for + lower level routines, which would otherwise miss that lock. + */ + MYSQL_LOCK *extra_lock; + + /* + Enum enum_locked_tables_mode and locked_tables_mode member are + used to indicate whether the so-called "locked tables mode" is on, + and what kind of mode is active. + + Locked tables mode is used when it's necessary to open and + lock many tables at once, for usage across multiple + (sub-)statements. + This may be necessary either for queries that use stored functions + and triggers, in which case the statements inside functions and + triggers may be executed many times, or for implementation of + LOCK TABLES, in which case the opened tables are reused by all + subsequent statements until a call to UNLOCK TABLES. + + The kind of locked tables mode employed for stored functions and + triggers is also called "prelocked mode". + In this mode, first open_tables() call to open the tables used + in a statement analyses all functions used by the statement + and adds all indirectly used tables to the list of tables to + open and lock. + It also marks the parse tree of the statement as requiring + prelocking. After that, lock_tables() locks the entire list + of tables and changes THD::locked_tables_modeto LTM_PRELOCKED. + All statements executed inside functions or triggers + use the prelocked tables, instead of opening their own ones. + Prelocked mode is turned off automatically once close_thread_tables() + of the main statement is called. + */ + enum enum_locked_tables_mode locked_tables_mode; + uint current_tablenr; + + enum enum_flags { + BACKUPS_AVAIL = (1U << 0) /* There are backups available */ + }; + + /* + Flags with information about the open tables state. + */ + uint state_flags; + /** + This constructor initializes Open_tables_state instance which can only + be used as backup storage. To prepare Open_tables_state instance for + operations which open/lock/close tables (e.g. open_table()) one has to + call init_open_tables_state(). + */ + Open_tables_state() : state_flags(0U) { } + + void set_open_tables_state(Open_tables_state *state) + { + *this= *state; + } + + void reset_open_tables_state(THD *thd) + { + open_tables= temporary_tables= derived_tables= 0; + extra_lock= lock= 0; + locked_tables_mode= LTM_NONE; + state_flags= 0U; + m_reprepare_observer= NULL; + } +}; + + +/** + Storage for backup of Open_tables_state. Must + be used only to open system tables (TABLE_CATEGORY_SYSTEM + and TABLE_CATEGORY_LOG). +*/ + +class Open_tables_backup: public Open_tables_state +{ +public: + /** + When we backup the open tables state to open a system + table or tables, we want to save state of metadata + locks which were acquired before the backup. It is used + to release metadata locks on system tables after they are + no longer used. + */ + MDL_savepoint mdl_system_tables_svp; +}; + +/** + @class Sub_statement_state + @brief Used to save context when executing a function or trigger +*/ + +/* Defines used for Sub_statement_state::in_sub_stmt */ + +#define SUB_STMT_TRIGGER 1 +#define SUB_STMT_FUNCTION 2 + + +class Sub_statement_state +{ +public: + ulonglong option_bits; + ulonglong first_successful_insert_id_in_prev_stmt; + ulonglong first_successful_insert_id_in_cur_stmt, insert_id_for_cur_row; + Discrete_interval auto_inc_interval_for_cur_row; + Discrete_intervals_list auto_inc_intervals_forced; + ulonglong limit_found_rows; + ha_rows cuted_fields, sent_row_count, examined_row_count; + ulong client_capabilities; + ulong query_plan_flags; + uint in_sub_stmt; + bool enable_slow_log; + bool last_insert_id_used; + SAVEPOINT *savepoints; + enum enum_check_fields count_cuted_fields; +}; + + +/* Flags for the THD::system_thread variable */ +enum enum_thread_type +{ + NON_SYSTEM_THREAD= 0, + SYSTEM_THREAD_DELAYED_INSERT= 1, + SYSTEM_THREAD_SLAVE_IO= 2, + SYSTEM_THREAD_SLAVE_SQL= 4, + SYSTEM_THREAD_NDBCLUSTER_BINLOG= 8, + SYSTEM_THREAD_EVENT_SCHEDULER= 16, + SYSTEM_THREAD_EVENT_WORKER= 32 +}; + +inline char const * +show_system_thread(enum_thread_type thread) +{ +#define RETURN_NAME_AS_STRING(NAME) case (NAME): return #NAME + switch (thread) { + static char buf[64]; + RETURN_NAME_AS_STRING(NON_SYSTEM_THREAD); + RETURN_NAME_AS_STRING(SYSTEM_THREAD_DELAYED_INSERT); + RETURN_NAME_AS_STRING(SYSTEM_THREAD_SLAVE_IO); + RETURN_NAME_AS_STRING(SYSTEM_THREAD_SLAVE_SQL); + RETURN_NAME_AS_STRING(SYSTEM_THREAD_NDBCLUSTER_BINLOG); + RETURN_NAME_AS_STRING(SYSTEM_THREAD_EVENT_SCHEDULER); + RETURN_NAME_AS_STRING(SYSTEM_THREAD_EVENT_WORKER); + default: + sprintf(buf, "", thread); + return buf; + } +#undef RETURN_NAME_AS_STRING +} + +/** + This class represents the interface for internal error handlers. + Internal error handlers are exception handlers used by the server + implementation. +*/ +class Internal_error_handler +{ +protected: + Internal_error_handler() : + m_prev_internal_handler(NULL) + {} + + virtual ~Internal_error_handler() {} + +public: + /** + Handle a sql condition. + This method can be implemented by a subclass to achieve any of the + following: + - mask a warning/error internally, prevent exposing it to the user, + - mask a warning/error and throw another one instead. + When this method returns true, the sql condition is considered + 'handled', and will not be propagated to upper layers. + It is the responsability of the code installing an internal handler + to then check for trapped conditions, and implement logic to recover + from the anticipated conditions trapped during runtime. + + This mechanism is similar to C++ try/throw/catch: + - 'try' correspond to THD::push_internal_handler(), + - 'throw' correspond to my_error(), + which invokes my_message_sql(), + - 'catch' correspond to checking how/if an internal handler was invoked, + before removing it from the exception stack with + THD::pop_internal_handler(). + + @param thd the calling thread + @param cond the condition raised. + @return true if the condition is handled + */ + virtual bool handle_condition(THD *thd, + uint sql_errno, + const char* sqlstate, + MYSQL_ERROR::enum_warning_level level, + const char* msg, + MYSQL_ERROR ** cond_hdl) = 0; + +private: + Internal_error_handler *m_prev_internal_handler; + friend class THD; +}; + + +/** + Implements the trivial error handler which cancels all error states + and prevents an SQLSTATE to be set. +*/ + +class Dummy_error_handler : public Internal_error_handler +{ +public: + bool handle_condition(THD *thd, + uint sql_errno, + const char* sqlstate, + MYSQL_ERROR::enum_warning_level level, + const char* msg, + MYSQL_ERROR ** cond_hdl) + { + /* Ignore error */ + return TRUE; + } + Dummy_error_handler() {} /* Remove gcc warning */ +}; + + +/** + This class is an internal error handler implementation for + DROP TABLE statements. The thing is that there may be warnings during + execution of these statements, which should not be exposed to the user. + This class is intended to silence such warnings. +*/ + +class Drop_table_error_handler : public Internal_error_handler +{ +public: + Drop_table_error_handler() {} + +public: + bool handle_condition(THD *thd, + uint sql_errno, + const char* sqlstate, + MYSQL_ERROR::enum_warning_level level, + const char* msg, + MYSQL_ERROR ** cond_hdl); + +private: +}; + + +/** + Tables that were locked with LOCK TABLES statement. + + Encapsulates a list of TABLE_LIST instances for tables + locked by LOCK TABLES statement, memory root for metadata locks, + and, generally, the context of LOCK TABLES statement. + + In LOCK TABLES mode, the locked tables are kept open between + statements. + Therefore, we can't allocate metadata locks on execution memory + root -- as well as tables, the locks need to stay around till + UNLOCK TABLES is called. + The locks are allocated in the memory root encapsulated in this + class. + + Some SQL commands, like FLUSH TABLE or ALTER TABLE, demand that + the tables they operate on are closed, at least temporarily. + This class encapsulates a list of TABLE_LIST instances, one + for each base table from LOCK TABLES list, + which helps conveniently close the TABLEs when it's necessary + and later reopen them. + + Implemented in sql_base.cc +*/ + +class Locked_tables_list +{ +private: + MEM_ROOT m_locked_tables_root; + TABLE_LIST *m_locked_tables; + TABLE_LIST **m_locked_tables_last; + /** An auxiliary array used only in reopen_tables(). */ + TABLE **m_reopen_array; + /** + Count the number of tables in m_locked_tables list. We can't + rely on thd->lock->table_count because it excludes + non-transactional temporary tables. We need to know + an exact number of TABLE objects. + */ + size_t m_locked_tables_count; +public: + Locked_tables_list() + :m_locked_tables(NULL), + m_locked_tables_last(&m_locked_tables), + m_reopen_array(NULL), + m_locked_tables_count(0) + { + init_sql_alloc(&m_locked_tables_root, MEM_ROOT_BLOCK_SIZE, 0); + } + void unlock_locked_tables(THD *thd); + ~Locked_tables_list() + { + unlock_locked_tables(0); + } + bool init_locked_tables(THD *thd); + TABLE_LIST *locked_tables() { return m_locked_tables; } + void unlink_from_list(THD *thd, TABLE_LIST *table_list, + bool remove_from_locked_tables); + void unlink_all_closed_tables(THD *thd, + MYSQL_LOCK *lock, + size_t reopen_count); + bool reopen_tables(THD *thd); +}; + + +/** + Storage engine specific thread local data. +*/ + +struct Ha_data +{ + /** + Storage engine specific thread local data. + Lifetime: one user connection. + */ + void *ha_ptr; + /** + 0: Life time: one statement within a transaction. If @@autocommit is + on, also represents the entire transaction. + @sa trans_register_ha() + + 1: Life time: one transaction within a connection. + If the storage engine does not participate in a transaction, + this should not be used. + @sa trans_register_ha() + */ + Ha_trx_info ha_info[2]; + /** + NULL: engine is not bound to this thread + non-NULL: engine is bound to this thread, engine shutdown forbidden + */ + plugin_ref lock; + Ha_data() :ha_ptr(NULL) {} +}; + +/** + An instance of the global read lock in a connection. + Implemented in lock.cc. +*/ + +class Global_read_lock +{ +public: + enum enum_grl_state + { + GRL_NONE, + GRL_ACQUIRED, + GRL_ACQUIRED_AND_BLOCKS_COMMIT + }; + + Global_read_lock() + : m_state(GRL_NONE), + m_mdl_global_shared_lock(NULL), + m_mdl_blocks_commits_lock(NULL) + {} + + bool lock_global_read_lock(THD *thd); + void unlock_global_read_lock(THD *thd); + /** + Check if this connection can acquire protection against GRL and + emit error if otherwise. + */ + bool can_acquire_protection() const + { + if (m_state) + { + my_error(ER_CANT_UPDATE_WITH_READLOCK, MYF(0)); + return TRUE; + } + return FALSE; + } + bool make_global_read_lock_block_commit(THD *thd); + bool is_acquired() const { return m_state != GRL_NONE; } + void set_explicit_lock_duration(THD *thd); +private: + enum_grl_state m_state; + /** + In order to acquire the global read lock, the connection must + acquire shared metadata lock in GLOBAL namespace, to prohibit + all DDL. + */ + MDL_ticket *m_mdl_global_shared_lock; + /** + Also in order to acquire the global read lock, the connection + must acquire a shared metadata lock in COMMIT namespace, to + prohibit commits. + */ + MDL_ticket *m_mdl_blocks_commits_lock; +}; + + +extern "C" void my_message_sql(uint error, const char *str, myf MyFlags); + +/** + @class THD + For each client connection we create a separate thread with THD serving as + a thread/connection descriptor +*/ + +class THD :public Statement, + public Open_tables_state +{ +private: + inline bool is_stmt_prepare() const + { DBUG_ASSERT(0); return Statement::is_stmt_prepare(); } + + inline bool is_stmt_prepare_or_first_sp_execute() const + { DBUG_ASSERT(0); return Statement::is_stmt_prepare_or_first_sp_execute(); } + + inline bool is_stmt_prepare_or_first_stmt_execute() const + { DBUG_ASSERT(0); return Statement::is_stmt_prepare_or_first_stmt_execute(); } + + inline bool is_conventional() const + { DBUG_ASSERT(0); return Statement::is_conventional(); } + +public: + MDL_context mdl_context; + + /* Used to execute base64 coded binlog events in MySQL server */ + Relay_log_info* rli_fake; + /* Slave applier execution context */ + Relay_log_info* rli_slave; + + void reset_for_next_command(); + /* + Constant for THD::where initialization in the beginning of every query. + + It's needed because we do not save/restore THD::where normally during + primary (non subselect) query execution. + */ + static const char * const DEFAULT_WHERE; + +#ifdef EMBEDDED_LIBRARY + struct st_mysql *mysql; + unsigned long client_stmt_id; + unsigned long client_param_count; + struct st_mysql_bind *client_params; + char *extra_data; + ulong extra_length; + struct st_mysql_data *cur_data; + struct st_mysql_data *first_data; + struct st_mysql_data **data_tail; + void clear_data_list(); + struct st_mysql_data *alloc_new_dataset(); + /* + In embedded server it points to the statement that is processed + in the current query. We store some results directly in statement + fields then. + */ + struct st_mysql_stmt *current_stmt; +#endif +#ifdef HAVE_QUERY_CACHE + Query_cache_tls query_cache_tls; +#endif + NET net; // client connection descriptor + scheduler_functions *scheduler; // Scheduler for this connection + Protocol *protocol; // Current protocol + Protocol_text protocol_text; // Normal protocol + Protocol_binary protocol_binary; // Binary protocol + HASH user_vars; // hash for user variables + String packet; // dynamic buffer for network I/O + String convert_buffer; // buffer for charset conversions + struct my_rnd_struct rand; // used for authentication + struct system_variables variables; // Changeable local variables + struct system_status_var status_var; // Per thread statistic vars + struct system_status_var org_status_var; // For user statistics + struct system_status_var *initial_status_var; /* used by show status */ + THR_LOCK_INFO lock_info; // Locking info of this thread + /** + Protects THD data accessed from other threads: + - thd->query and thd->query_length (used by SHOW ENGINE + INNODB STATUS and SHOW PROCESSLIST + - thd->db and thd->db_length (used in SHOW PROCESSLIST) + - thd->mysys_var (used by KILL statement and shutdown). + Is locked when THD is deleted. + */ + mysql_mutex_t LOCK_thd_data; + + /* all prepared statements and cursors of this connection */ + Statement_map stmt_map; + /* + A pointer to the stack frame of handle_one_connection(), + which is called first in the thread for handling a client + */ + char *thread_stack; + + /** + Currently selected catalog. + */ + char *catalog; + + /** + @note + Some members of THD (currently 'Statement::db', + 'catalog' and 'query') are set and alloced by the slave SQL thread + (for the THD of that thread); that thread is (and must remain, for now) + the only responsible for freeing these 3 members. If you add members + here, and you add code to set them in replication, don't forget to + free_them_and_set_them_to_0 in replication properly. For details see + the 'err:' label of the handle_slave_sql() in sql/slave.cc. + + @see handle_slave_sql + */ + + Security_context main_security_ctx; + Security_context *security_ctx; + + /* + Points to info-string that we show in SHOW PROCESSLIST + You are supposed to update thd->proc_info only if you have coded + a time-consuming piece that MySQL can get stuck in for a long time. + + Set it using the thd_proc_info(THD *thread, const char *message) + macro/function. + + This member is accessed and assigned without any synchronization. + Therefore, it may point only to constant (statically + allocated) strings, which memory won't go away over time. + */ + const char *proc_info; + + /* + Used in error messages to tell user in what part of MySQL we found an + error. E. g. when where= "having clause", if fix_fields() fails, user + will know that the error was in having clause. + */ + const char *where; + + /* Needed by MariaDB semi sync replication */ + Trans_binlog_info *semisync_info; + + ulong client_capabilities; /* What the client supports */ + ulong max_client_packet_length; + + HASH handler_tables_hash; + /* + One thread can hold up to one named user-level lock. This variable + points to a lock object if the lock is present. See item_func.cc and + chapter 'Miscellaneous functions', for functions GET_LOCK, RELEASE_LOCK. + */ + User_level_lock *ull; +#ifndef DBUG_OFF + uint dbug_sentry; // watch out for memory corruption +#endif + struct st_my_thread_var *mysys_var; + /* + Type of current query: COM_STMT_PREPARE, COM_QUERY, etc. Set from + first byte of the packet in do_command() + */ + enum enum_server_command command; + uint32 server_id; + uint32 file_id; // for LOAD DATA INFILE + /* remote (peer) port */ + uint16 peer_port; + my_time_t start_time; // start_time and its sec_part + ulong start_time_sec_part; // are almost always used separately + my_hrtime_t user_time; + // track down slow pthread_create + ulonglong prior_thr_create_utime, thr_create_utime; + ulonglong start_utime, utime_after_lock, utime_after_query; + + // Process indicator + struct { + /* + true, if the currently running command can send progress report + packets to a client. Set by mysql_execute_command() for safe commands + See CF_REPORT_PROGRESS + */ + bool report_to_client; + /* + true, if we will send progress report packets to a client + (client has requested them, see CLIENT_PROGRESS; report_to_client + is true; not in sub-statement) + */ + bool report; + uint stage, max_stage; + ulonglong counter, max_counter; + ulonglong next_report_time; + Query_arena *arena; + } progress; + + thr_lock_type update_lock_default; + Delayed_insert *di; + + /* <> 0 if we are inside of trigger or stored function. */ + uint in_sub_stmt; + /* True when opt_userstat_running is set at start of query */ + bool userstat_running; + /* True if we want to log all errors */ + bool log_all_errors; + + /* Do not set socket timeouts for wait_timeout (used with threadpool) */ + bool skip_wait_timeout; + + bool prepare_derived_at_open; + + /* Set to 1 if status of this THD is already in global status */ + bool status_in_global; + + /* + To signal that the tmp table to be created is created for materialized + derived table or a view. + */ + bool create_tmp_table_for_derived; + + bool save_prep_leaf_list; + + /* container for handler's private per-connection data */ + Ha_data ha_data[MAX_HA]; + +#ifndef MYSQL_CLIENT + binlog_cache_mngr * binlog_setup_trx_data(); + + /* + Public interface to write RBR events to the binlog + */ + void binlog_start_trans_and_stmt(); + void binlog_set_stmt_begin(); + int binlog_write_table_map(TABLE *table, bool is_transactional, + my_bool *with_annotate= 0); + int binlog_write_row(TABLE* table, bool is_transactional, + MY_BITMAP const* cols, size_t colcnt, + const uchar *buf); + int binlog_delete_row(TABLE* table, bool is_transactional, + MY_BITMAP const* cols, size_t colcnt, + const uchar *buf); + int binlog_update_row(TABLE* table, bool is_transactional, + MY_BITMAP const* cols, size_t colcnt, + const uchar *old_data, const uchar *new_data); + + void set_server_id(uint32 sid) { server_id = sid; } + + /* + Member functions to handle pending event for row-level logging. + */ + template Rows_log_event* + binlog_prepare_pending_rows_event(TABLE* table, uint32 serv_id, + MY_BITMAP const* cols, + size_t colcnt, + size_t needed, + bool is_transactional, + RowsEventT* hint); + Rows_log_event* binlog_get_pending_rows_event(bool is_transactional) const; + void binlog_set_pending_rows_event(Rows_log_event* ev, bool is_transactional); + inline int binlog_flush_pending_rows_event(bool stmt_end) + { + return (binlog_flush_pending_rows_event(stmt_end, FALSE) || + binlog_flush_pending_rows_event(stmt_end, TRUE)); + } + int binlog_flush_pending_rows_event(bool stmt_end, bool is_transactional); + int binlog_remove_pending_rows_event(bool clear_maps, bool is_transactional); + + /** + Determine the binlog format of the current statement. + + @retval 0 if the current statement will be logged in statement + format. + @retval nonzero if the current statement will be logged in row + format. + */ + int is_current_stmt_binlog_format_row() const { + DBUG_ASSERT(current_stmt_binlog_format == BINLOG_FORMAT_STMT || + current_stmt_binlog_format == BINLOG_FORMAT_ROW); + return current_stmt_binlog_format == BINLOG_FORMAT_ROW; + } + /** + Determine if binlogging is disabled for this session + @retval 0 if the current statement binlogging is disabled + (could be because of binlog closed/binlog option + is set to false). + @retval 1 if the current statement will be binlogged + */ + inline bool is_current_stmt_binlog_disabled() const + { + return (!(variables.option_bits & OPTION_BIN_LOG) || + !mysql_bin_log.is_open()); + } + +private: + /** + Indicates the format in which the current statement will be + logged. This can only be set from @c decide_logging_format(). + */ + enum_binlog_format current_stmt_binlog_format; + + /** + Bit field for the state of binlog warnings. + + The first Lex::BINLOG_STMT_UNSAFE_COUNT bits list all types of + unsafeness that the current statement has. + + This must be a member of THD and not of LEX, because warnings are + detected and issued in different places (@c + decide_logging_format() and @c binlog_query(), respectively). + Between these calls, the THD->lex object may change; e.g., if a + stored routine is invoked. Only THD persists between the calls. + */ + uint32 binlog_unsafe_warning_flags; + + /* + Number of outstanding table maps, i.e., table maps in the + transaction cache. + */ + uint binlog_table_maps; +public: + void issue_unsafe_warnings(); + + uint get_binlog_table_maps() const { + return binlog_table_maps; + } + void clear_binlog_table_maps() { + binlog_table_maps= 0; + } +#endif /* MYSQL_CLIENT */ + +public: + + struct st_transactions { + SAVEPOINT *savepoints; + THD_TRANS all; // Trans since BEGIN WORK + THD_TRANS stmt; // Trans for current statement + bool on; // see ha_enable_transaction() + XID_STATE xid_state; + WT_THD wt; ///< for deadlock detection + Rows_log_event *m_pending_rows_event; + + /* + Tables changed in transaction (that must be invalidated in query cache). + List contain only transactional tables, that not invalidated in query + cache (instead of full list of changed in transaction tables). + */ + CHANGED_TABLE_LIST* changed_tables; + MEM_ROOT mem_root; // Transaction-life memory allocation pool + void cleanup() + { + DBUG_ENTER("thd::cleanup"); + changed_tables= 0; + savepoints= 0; + /* + If rm_error is raised, it means that this piece of a distributed + transaction has failed and must be rolled back. But the user must + rollback it explicitly, so don't start a new distributed XA until + then. + */ + if (!xid_state.rm_error) + xid_state.xid.null(); + free_root(&mem_root,MYF(MY_KEEP_PREALLOC)); + DBUG_VOID_RETURN; + } + my_bool is_active() + { + return (all.ha_list != NULL); + } + st_transactions() + { + bzero((char*)this, sizeof(*this)); + xid_state.xid.null(); + init_sql_alloc(&mem_root, ALLOC_ROOT_MIN_BLOCK_SIZE, 0); + } + } transaction; + Global_read_lock global_read_lock; + Field *dup_field; +#ifndef __WIN__ + sigset_t signals; +#endif +#ifdef SIGNAL_WITH_VIO_CLOSE + Vio* active_vio; +#endif + /* + This is to track items changed during execution of a prepared + statement/stored procedure. It's created by + nocheck_register_item_tree_change() in memory root of THD, and freed in + rollback_item_tree_changes(). For conventional execution it's always + empty. + */ + Item_change_list change_list; + + /* + A permanent memory area of the statement. For conventional + execution, the parsed tree and execution runtime reside in the same + memory root. In this case stmt_arena points to THD. In case of + a prepared statement or a stored procedure statement, thd->mem_root + conventionally points to runtime memory, and thd->stmt_arena + points to the memory of the PS/SP, where the parsed tree of the + statement resides. Whenever you need to perform a permanent + transformation of a parsed tree, you should allocate new memory in + stmt_arena, to allow correct re-execution of PS/SP. + Note: in the parser, stmt_arena == thd, even for PS/SP. + */ + Query_arena *stmt_arena; + + /* + map for tables that will be updated for a multi-table update query + statement, for other query statements, this will be zero. + */ + table_map table_map_for_update; + + /* Tells if LAST_INSERT_ID(#) was called for the current statement */ + bool arg_of_last_insert_id_function; + /* + ALL OVER THIS FILE, "insert_id" means "*automatically generated* value for + insertion into an auto_increment column". + */ + /* + This is the first autogenerated insert id which was *successfully* + inserted by the previous statement (exactly, if the previous statement + didn't successfully insert an autogenerated insert id, then it's the one + of the statement before, etc). + It can also be set by SET LAST_INSERT_ID=# or SELECT LAST_INSERT_ID(#). + It is returned by LAST_INSERT_ID(). + */ + ulonglong first_successful_insert_id_in_prev_stmt; + /* + Variant of the above, used for storing in statement-based binlog. The + difference is that the one above can change as the execution of a stored + function progresses, while the one below is set once and then does not + change (which is the value which statement-based binlog needs). + */ + ulonglong first_successful_insert_id_in_prev_stmt_for_binlog; + /* + This is the first autogenerated insert id which was *successfully* + inserted by the current statement. It is maintained only to set + first_successful_insert_id_in_prev_stmt when statement ends. + */ + ulonglong first_successful_insert_id_in_cur_stmt; + /* + We follow this logic: + - when stmt starts, first_successful_insert_id_in_prev_stmt contains the + first insert id successfully inserted by the previous stmt. + - as stmt makes progress, handler::insert_id_for_cur_row changes; + every time get_auto_increment() is called, + auto_inc_intervals_in_cur_stmt_for_binlog is augmented with the + reserved interval (if statement-based binlogging). + - at first successful insertion of an autogenerated value, + first_successful_insert_id_in_cur_stmt is set to + handler::insert_id_for_cur_row. + - when stmt goes to binlog, + auto_inc_intervals_in_cur_stmt_for_binlog is binlogged if + non-empty. + - when stmt ends, first_successful_insert_id_in_prev_stmt is set to + first_successful_insert_id_in_cur_stmt. + */ + /* + stmt_depends_on_first_successful_insert_id_in_prev_stmt is set when + LAST_INSERT_ID() is used by a statement. + If it is set, first_successful_insert_id_in_prev_stmt_for_binlog will be + stored in the statement-based binlog. + This variable is CUMULATIVE along the execution of a stored function or + trigger: if one substatement sets it to 1 it will stay 1 until the + function/trigger ends, thus making sure that + first_successful_insert_id_in_prev_stmt_for_binlog does not change anymore + and is propagated to the caller for binlogging. + */ + bool stmt_depends_on_first_successful_insert_id_in_prev_stmt; + /* + List of auto_increment intervals reserved by the thread so far, for + storage in the statement-based binlog. + Note that its minimum is not first_successful_insert_id_in_cur_stmt: + assuming a table with an autoinc column, and this happens: + INSERT INTO ... VALUES(3); + SET INSERT_ID=3; INSERT IGNORE ... VALUES (NULL); + then the latter INSERT will insert no rows + (first_successful_insert_id_in_cur_stmt == 0), but storing "INSERT_ID=3" + in the binlog is still needed; the list's minimum will contain 3. + This variable is cumulative: if several statements are written to binlog + as one (stored functions or triggers are used) this list is the + concatenation of all intervals reserved by all statements. + */ + Discrete_intervals_list auto_inc_intervals_in_cur_stmt_for_binlog; + /* Used by replication and SET INSERT_ID */ + Discrete_intervals_list auto_inc_intervals_forced; + /* + There is BUG#19630 where statement-based replication of stored + functions/triggers with two auto_increment columns breaks. + We however ensure that it works when there is 0 or 1 auto_increment + column; our rules are + a) on master, while executing a top statement involving substatements, + first top- or sub- statement to generate auto_increment values wins the + exclusive right to see its values be written to binlog (the write + will be done by the statement or its caller), and the losers won't see + their values be written to binlog. + b) on slave, while replicating a top statement involving substatements, + first top- or sub- statement to need to read auto_increment values from + the master's binlog wins the exclusive right to read them (so the losers + won't read their values from binlog but instead generate on their own). + a) implies that we mustn't backup/restore + auto_inc_intervals_in_cur_stmt_for_binlog. + b) implies that we mustn't backup/restore auto_inc_intervals_forced. + + If there are more than 1 auto_increment columns, then intervals for + different columns may mix into the + auto_inc_intervals_in_cur_stmt_for_binlog list, which is logically wrong, + but there is no point in preventing this mixing by preventing intervals + from the secondly inserted column to come into the list, as such + prevention would be wrong too. + What will happen in the case of + INSERT INTO t1 (auto_inc) VALUES(NULL); + where t1 has a trigger which inserts into an auto_inc column of t2, is + that in binlog we'll store the interval of t1 and the interval of t2 (when + we store intervals, soon), then in slave, t1 will use both intervals, t2 + will use none; if t1 inserts the same number of rows as on master, + normally the 2nd interval will not be used by t1, which is fine. t2's + values will be wrong if t2's internal auto_increment counter is different + from what it was on master (which is likely). In 5.1, in mixed binlogging + mode, row-based binlogging is used for such cases where two + auto_increment columns are inserted. + */ + inline void record_first_successful_insert_id_in_cur_stmt(ulonglong id_arg) + { + if (first_successful_insert_id_in_cur_stmt == 0) + first_successful_insert_id_in_cur_stmt= id_arg; + } + inline ulonglong read_first_successful_insert_id_in_prev_stmt(void) + { + if (!stmt_depends_on_first_successful_insert_id_in_prev_stmt) + { + /* It's the first time we read it */ + first_successful_insert_id_in_prev_stmt_for_binlog= + first_successful_insert_id_in_prev_stmt; + stmt_depends_on_first_successful_insert_id_in_prev_stmt= 1; + } + return first_successful_insert_id_in_prev_stmt; + } + /* + Used by Intvar_log_event::do_apply_event() and by "SET INSERT_ID=#" + (mysqlbinlog). We'll soon add a variant which can take many intervals in + argument. + */ + inline void force_one_auto_inc_interval(ulonglong next_id) + { + auto_inc_intervals_forced.empty(); // in case of multiple SET INSERT_ID + auto_inc_intervals_forced.append(next_id, ULONGLONG_MAX, 0); + } + + ulonglong limit_found_rows; + +private: + /** + Stores the result of ROW_COUNT() function. + + ROW_COUNT() function is a MySQL extention, but we try to keep it + similar to ROW_COUNT member of the GET DIAGNOSTICS stack of the SQL + standard (see SQL99, part 2, search for ROW_COUNT). It's value is + implementation defined for anything except INSERT, DELETE, UPDATE. + + ROW_COUNT is assigned according to the following rules: + + - In my_ok(): + - for DML statements: to the number of affected rows; + - for DDL statements: to 0. + + - In my_eof(): to -1 to indicate that there was a result set. + + We derive this semantics from the JDBC specification, where int + java.sql.Statement.getUpdateCount() is defined to (sic) "return the + current result as an update count; if the result is a ResultSet + object or there are no more results, -1 is returned". + + - In my_error(): to -1 to be compatible with the MySQL C API and + MySQL ODBC driver. + + - For SIGNAL statements: to 0 per WL#2110 specification (see also + sql_signal.cc comment). Zero is used since that's the "default" + value of ROW_COUNT in the diagnostics area. + */ + + longlong m_row_count_func; /* For the ROW_COUNT() function */ + +public: + inline longlong get_row_count_func() const + { + return m_row_count_func; + } + + inline void set_row_count_func(longlong row_count_func) + { + m_row_count_func= row_count_func; + } + + ha_rows cuted_fields; + + /* + number of rows we actually sent to the client, including "synthetic" + rows in ROLLUP etc. + */ + ha_rows sent_row_count; + + /** + Number of rows read and/or evaluated for a statement. Used for + slow log reporting. + + An examined row is defined as a row that is read and/or evaluated + according to a statement condition, including in + create_sort_index(). Rows may be counted more than once, e.g., a + statement including ORDER BY could possibly evaluate the row in + filesort() before reading it for e.g. update. + */ + ha_rows examined_row_count; + /** + The number of rows and/or keys examined by the query, both read, + changed or written. + */ + ulonglong accessed_rows_and_keys; + /** + Check if the number of rows accessed by a statement exceeded + LIMIT ROWS EXAMINED. If so, signal the query engine to stop execution. + */ + void check_limit_rows_examined() + { + if (++accessed_rows_and_keys > lex->limit_rows_examined_cnt) + killed= ABORT_QUERY; + } + + USER_CONN *user_connect; + CHARSET_INFO *db_charset; + Warning_info *warning_info; + Diagnostics_area *stmt_da; +#if defined(ENABLED_PROFILING) + PROFILING profiling; +#endif + + /* + Id of current query. Statement can be reused to execute several queries + query_id is global in context of the whole MySQL server. + ID is automatically generated from mutex-protected counter. + It's used in handler code for various purposes: to check which columns + from table are necessary for this select, to check if it's necessary to + update auto-updatable fields (like auto_increment and timestamp). + */ + query_id_t query_id; + ulong col_access; + + /* Statement id is thread-wide. This counter is used to generate ids */ + ulong statement_id_counter; + ulong rand_saved_seed1, rand_saved_seed2; + ulong query_plan_flags; + ulong query_plan_fsort_passes; + pthread_t real_id; /* For debugging */ + my_thread_id thread_id; + uint tmp_table, global_disable_checkpoint; + uint server_status,open_options; + enum enum_thread_type system_thread; + uint select_number; //number of select (used for EXPLAIN) + /* + Current or next transaction isolation level. + When a connection is established, the value is taken from + @@session.tx_isolation (default transaction isolation for + the session), which is in turn taken from @@global.tx_isolation + (the global value). + If there is no transaction started, this variable + holds the value of the next transaction's isolation level. + When a transaction starts, the value stored in this variable + becomes "actual". + At transaction commit or rollback, we assign this variable + again from @@session.tx_isolation. + The only statement that can otherwise change the value + of this variable is SET TRANSACTION ISOLATION LEVEL. + Its purpose is to effect the isolation level of the next + transaction in this session. When this statement is executed, + the value in this variable is changed. However, since + this statement is only allowed when there is no active + transaction, this assignment (naturally) only affects the + upcoming transaction. + At the end of the current active transaction the value is + be reset again from @@session.tx_isolation, as described + above. + */ + enum_tx_isolation tx_isolation; + enum_check_fields count_cuted_fields; + + DYNAMIC_ARRAY user_var_events; /* For user variables replication */ + MEM_ROOT *user_var_events_alloc; /* Allocate above array elements here */ + + /* + If checking this in conjunction with a wait condition, please + include a check after enter_cond() if you want to avoid a race + condition. For details see the implementation of awake(), + especially the "broadcast" part. + */ + killed_state volatile killed; + + /* scramble - random string sent to client on handshake */ + char scramble[SCRAMBLE_LENGTH+1]; + + bool slave_thread, one_shot_set; + bool extra_port; /* If extra connection */ + + bool no_errors; + uint8 password; + uint8 failed_com_change_user; + + /** + Set to TRUE if execution of the current compound statement + can not continue. In particular, disables activation of + CONTINUE or EXIT handlers of stored routines. + Reset in the end of processing of the current user request, in + @see mysql_reset_thd_for_next_command(). + */ + bool is_fatal_error; + /** + Set by a storage engine to request the entire + transaction (that possibly spans multiple engines) to + rollback. Reset in ha_rollback. + */ + bool transaction_rollback_request; + /** + TRUE if we are in a sub-statement and the current error can + not be safely recovered until we left the sub-statement mode. + In particular, disables activation of CONTINUE and EXIT + handlers inside sub-statements. E.g. if it is a deadlock + error and requires a transaction-wide rollback, this flag is + raised (traditionally, MySQL first has to close all the reads + via @see handler::ha_index_or_rnd_end() and only then perform + the rollback). + Reset to FALSE when we leave the sub-statement mode. + */ + bool is_fatal_sub_stmt_error; + bool query_start_used, rand_used, time_zone_used; + bool query_start_sec_part_used; + /* for IS NULL => = last_insert_id() fix in remove_eq_conds() */ + bool substitute_null_with_insert_id; + bool in_lock_tables; + /** + True if a slave error. Causes the slave to stop. Not the same + as the statement execution error (is_error()), since + a statement may be expected to return an error, e.g. because + it returned an error on master, and this is OK on the slave. + */ + bool is_slave_error; + bool bootstrap, cleanup_done; + + /** is set if some thread specific value(s) used in a statement. */ + bool thread_specific_used; + /** + is set if a statement accesses a temporary table created through + CREATE TEMPORARY TABLE. + */ + bool charset_is_system_charset, charset_is_collation_connection; + bool charset_is_character_set_filesystem; + bool enable_slow_log; /* enable slow log for current statement */ + bool abort_on_warning; + bool got_warning; /* Set on call to push_warning() */ + /* set during loop of derived table processing */ + bool derived_tables_processing; + bool tablespace_op; /* This is TRUE in DISCARD/IMPORT TABLESPACE */ + + sp_rcontext *spcont; // SP runtime context + sp_cache *sp_proc_cache; + sp_cache *sp_func_cache; + + /** number of name_const() substitutions, see sp_head.cc:subst_spvars() */ + uint query_name_consts; + + /* + If we do a purge of binary logs, log index info of the threads + that are currently reading it needs to be adjusted. To do that + each thread that is using LOG_INFO needs to adjust the pointer to it + */ + LOG_INFO* current_linfo; + NET* slave_net; // network connection from slave -> m. + + /* + Used to update global user stats. The global user stats are updated + occasionally with the 'diff' variables. After the update, the 'diff' + variables are reset to 0. + */ + /* Time when the current thread connected to MySQL. */ + time_t current_connect_time; + /* Last time when THD stats were updated in global_user_stats. */ + time_t last_global_update_time; + /* Number of commands not reflected in global_user_stats yet. */ + uint select_commands, update_commands, other_commands; + ulonglong start_cpu_time; + ulonglong start_bytes_received; + + /* Used by the sys_var class to store temporary values */ + union + { + my_bool my_bool_value; + long long_value; + ulong ulong_value; + ulonglong ulonglong_value; + double double_value; + } sys_var_tmp; + + struct { + /* + If true, mysql_bin_log::write(Log_event) call will not write events to + binlog, and maintain 2 below variables instead (use + mysql_bin_log.start_union_events to turn this on) + */ + bool do_union; + /* + If TRUE, at least one mysql_bin_log::write(Log_event) call has been + made after last mysql_bin_log.start_union_events() call. + */ + bool unioned_events; + /* + If TRUE, at least one mysql_bin_log::write(Log_event e), where + e.cache_stmt == TRUE call has been made after last + mysql_bin_log.start_union_events() call. + */ + bool unioned_events_trans; + + /* + 'queries' (actually SP statements) that run under inside this binlog + union have thd->query_id >= first_query_id. + */ + query_id_t first_query_id; + } binlog_evt_union; + + /** + Internal parser state. + Note that since the parser is not re-entrant, we keep only one parser + state here. This member is valid only when executing code during parsing. + */ + Parser_state *m_parser_state; + + Locked_tables_list locked_tables_list; + +#ifdef WITH_PARTITION_STORAGE_ENGINE + partition_info *work_part_info; +#endif + +#ifndef EMBEDDED_LIBRARY + /** + Array of active audit plugins which have been used by this THD. + This list is later iterated to invoke release_thd() on those + plugins. + */ + DYNAMIC_ARRAY audit_class_plugins; + /** + Array of bits indicating which audit classes have already been + added to the list of audit plugins which are currently in use. + */ + unsigned long audit_class_mask[MYSQL_AUDIT_CLASS_MASK_SIZE]; +#endif + +#if defined(ENABLED_DEBUG_SYNC) + /* Debug Sync facility. See debug_sync.cc. */ + struct st_debug_sync_control *debug_sync_control; +#endif /* defined(ENABLED_DEBUG_SYNC) */ + THD(); + ~THD(); + + void init(void); + /* + Initialize memory roots necessary for query processing and (!) + pre-allocate memory for it. We can't do that in THD constructor because + there are use cases (acl_init, delayed inserts, watcher threads, + killing mysqld) where it's vital to not allocate excessive and not used + memory. Note, that we still don't return error from init_for_queries(): + if preallocation fails, we should notice that at the first call to + alloc_root. + */ + void init_for_queries(); + void update_all_stats(); + void update_stats(void); + void change_user(void); + void cleanup(void); + void cleanup_after_query(); + bool store_globals(); + void reset_globals(); +#ifdef SIGNAL_WITH_VIO_CLOSE + inline void set_active_vio(Vio* vio) + { + mysql_mutex_lock(&LOCK_thd_data); + active_vio = vio; + vio_set_thread_id(vio, pthread_self()); + mysql_mutex_unlock(&LOCK_thd_data); + } + inline void clear_active_vio() + { + mysql_mutex_lock(&LOCK_thd_data); + active_vio = 0; + mysql_mutex_unlock(&LOCK_thd_data); + } + void close_active_vio(); +#endif + void awake(killed_state state_to_set); + + /** Disconnect the associated communication endpoint. */ + void disconnect(); + +#ifndef MYSQL_CLIENT + enum enum_binlog_query_type { + /* The query can be logged in row format or in statement format. */ + ROW_QUERY_TYPE, + + /* The query has to be logged in statement format. */ + STMT_QUERY_TYPE, + + QUERY_TYPE_COUNT + }; + + int binlog_query(enum_binlog_query_type qtype, + char const *query, ulong query_len, bool is_trans, + bool direct, bool suppress_use, + int errcode); +#endif + + /* + For enter_cond() / exit_cond() to work the mutex must be got before + enter_cond(); this mutex is then released by exit_cond(). + Usage must be: lock mutex; enter_cond(); your code; exit_cond(). + */ + inline const char* enter_cond(mysql_cond_t *cond, mysql_mutex_t* mutex, + const char* msg) + { + const char* old_msg = proc_info; + mysql_mutex_assert_owner(mutex); + mysys_var->current_mutex = mutex; + mysys_var->current_cond = cond; + proc_info = msg; + return old_msg; + } + inline void exit_cond(const char* old_msg) + { + /* + Putting the mutex unlock in thd->exit_cond() ensures that + mysys_var->current_mutex is always unlocked _before_ mysys_var->mutex is + locked (if that would not be the case, you'll get a deadlock if someone + does a THD::awake() on you). + */ + mysql_mutex_unlock(mysys_var->current_mutex); + mysql_mutex_lock(&mysys_var->mutex); + mysys_var->current_mutex = 0; + mysys_var->current_cond = 0; + proc_info = old_msg; + mysql_mutex_unlock(&mysys_var->mutex); + return; + } + inline my_time_t query_start() { query_start_used=1; return start_time; } + inline ulong query_start_sec_part() + { query_start_sec_part_used=1; return start_time_sec_part; } + inline void set_current_time() + { + my_hrtime_t hrtime= my_hrtime(); + start_time= hrtime_to_my_time(hrtime); + start_time_sec_part= hrtime_sec_part(hrtime); + } + inline void set_start_time() + { + if (user_time.val) + { + start_time= hrtime_to_my_time(user_time); + start_time_sec_part= hrtime_sec_part(user_time); + } + else + set_current_time(); + } + inline void set_time() + { + set_start_time(); + start_utime= utime_after_lock= microsecond_interval_timer(); + } + inline void set_time(my_hrtime_t t) + { + user_time= t; + set_time(); + } + inline void set_time(my_time_t t, ulong sec_part) + { + my_hrtime_t hrtime= { hrtime_from_time(t) + sec_part }; + set_time(hrtime); + } + void set_time_after_lock() { utime_after_lock= microsecond_interval_timer(); } + ulonglong current_utime() { return microsecond_interval_timer(); } + + /** + Update server status after execution of a top level statement. + Currently only checks if a query was slow, and assigns + the status accordingly. + Evaluate the current time, and if it exceeds the long-query-time + setting, mark the query as slow. + */ + void update_server_status() + { + utime_after_query= current_utime(); + if (utime_after_query > utime_after_lock + variables.long_query_time) + server_status|= SERVER_QUERY_WAS_SLOW; + } + inline ulonglong found_rows(void) + { + return limit_found_rows; + } + /** + Returns TRUE if session is in a multi-statement transaction mode. + + OPTION_NOT_AUTOCOMMIT: When autocommit is off, a multi-statement + transaction is implicitly started on the first statement after a + previous transaction has been ended. + + OPTION_BEGIN: Regardless of the autocommit status, a multi-statement + transaction can be explicitly started with the statements "START + TRANSACTION", "BEGIN [WORK]", "[COMMIT | ROLLBACK] AND CHAIN", etc. + + Note: this doesn't tell you whether a transaction is active. + A session can be in multi-statement transaction mode, and yet + have no active transaction, e.g., in case of: + set @@autocommit=0; + set @a= 3; <-- these statements don't + set transaction isolation level serializable; <-- start an active + flush tables; <-- transaction + + I.e. for the above scenario this function returns TRUE, even + though no active transaction has begun. + @sa in_active_multi_stmt_transaction() + */ + inline bool in_multi_stmt_transaction_mode() + { + return variables.option_bits & (OPTION_NOT_AUTOCOMMIT | OPTION_BEGIN); + } + /** + TRUE if the session is in a multi-statement transaction mode + (@sa in_multi_stmt_transaction_mode()) *and* there is an + active transaction, i.e. there is an explicit start of a + transaction with BEGIN statement, or implicit with a + statement that uses a transactional engine. + + For example, these scenarios don't start an active transaction + (even though the server is in multi-statement transaction mode): + + set @@autocommit=0; + select * from nontrans_table; + set @var=TRUE; + flush tables; + + Note, that even for a statement that starts a multi-statement + transaction (i.e. select * from trans_table), this + flag won't be set until we open the statement's tables + and the engines register themselves for the transaction + (see trans_register_ha()), + hence this method is reliable to use only after + open_tables() has completed. + + Why do we need a flag? + ---------------------- + We need to maintain a (at first glance redundant) + session flag, rather than looking at thd->transaction.all.ha_list + because of explicit start of a transaction with BEGIN. + + I.e. in case of + BEGIN; + select * from nontrans_t1; <-- in_active_multi_stmt_transaction() is true + */ + inline bool in_active_multi_stmt_transaction() + { + return server_status & SERVER_STATUS_IN_TRANS; + } + inline bool fill_derived_tables() + { + return !stmt_arena->is_stmt_prepare() && !lex->only_view_structure(); + } + inline bool fill_information_schema_tables() + { + return !stmt_arena->is_stmt_prepare(); + } + inline void* trans_alloc(unsigned int size) + { + return alloc_root(&transaction.mem_root,size); + } + + LEX_STRING *make_lex_string(LEX_STRING *lex_str, + const char* str, uint length, + bool allocate_lex_string); + + bool convert_string(LEX_STRING *to, CHARSET_INFO *to_cs, + const char *from, uint from_length, + CHARSET_INFO *from_cs); + + bool convert_string(String *s, CHARSET_INFO *from_cs, CHARSET_INFO *to_cs); + + void add_changed_table(TABLE *table); + void add_changed_table(const char *key, long key_length); + CHANGED_TABLE_LIST * changed_table_dup(const char *key, long key_length); + int send_explain_fields(select_result *result); + + /** + Clear the current error, if any. + We do not clear is_fatal_error or is_fatal_sub_stmt_error since we + assume this is never called if the fatal error is set. + + @todo: To silence an error, one should use Internal_error_handler + mechanism. Issuing an error that can be possibly later "cleared" is not + compatible with other installed error handlers and audit plugins. + In future this function will be removed. + */ + inline void clear_error() + { + DBUG_ENTER("clear_error"); + if (stmt_da->is_error()) + stmt_da->reset_diagnostics_area(); + is_slave_error= 0; + if (killed == KILL_BAD_DATA) + killed= NOT_KILLED; // KILL_BAD_DATA can be reset w/o a mutex + DBUG_VOID_RETURN; + } +#ifndef EMBEDDED_LIBRARY + inline bool vio_ok() const { return net.vio != 0; } + /** Return FALSE if connection to client is broken. */ + bool is_connected() + { + /* + All system threads (e.g., the slave IO thread) are connected but + not using vio. So this function always returns true for all + system threads. + */ + return system_thread || (vio_ok() ? vio_is_connected(net.vio) : FALSE); + } +#else + inline bool vio_ok() const { return TRUE; } + inline bool is_connected() { return TRUE; } +#endif + /** + Mark the current error as fatal. Warning: this does not + set any error, it sets a property of the error, so must be + followed or prefixed with my_error(). + */ + inline void fatal_error() + { + DBUG_ASSERT(stmt_da->is_error() || killed); + is_fatal_error= 1; + DBUG_PRINT("error",("Fatal error set")); + } + /** + TRUE if there is an error in the error stack. + + Please use this method instead of direct access to + net.report_error. + + If TRUE, the current (sub)-statement should be aborted. + The main difference between this member and is_fatal_error + is that a fatal error can not be handled by a stored + procedure continue handler, whereas a normal error can. + + To raise this flag, use my_error(). + */ + inline bool is_error() const { return stmt_da->is_error(); } + inline CHARSET_INFO *charset() { return variables.character_set_client; } + void update_charset(); + + inline Query_arena *activate_stmt_arena_if_needed(Query_arena *backup) + { + /* + Use the persistent arena if we are in a prepared statement or a stored + procedure statement and we have not already changed to use this arena. + */ + if (!stmt_arena->is_conventional() && mem_root != stmt_arena->mem_root) + { + set_n_backup_active_arena(stmt_arena, backup); + return stmt_arena; + } + return 0; + } + + void change_item_tree(Item **place, Item *new_value) + { + DBUG_ENTER("THD::change_item_tree"); + DBUG_PRINT("enter", ("Register: %p (%p) <- %p", + *place, place, new_value)); + /* TODO: check for OOM condition here */ + if (!stmt_arena->is_conventional()) + nocheck_register_item_tree_change(place, *place, mem_root); + *place= new_value; + DBUG_VOID_RETURN; + } + /** + Make change in item tree after checking whether it needs registering + + + @param place place where we should assign new value + @param new_value place of the new value + + @details + see check_and_register_item_tree_change details + */ + void check_and_register_item_tree(Item **place, Item **new_value) + { + if (!stmt_arena->is_conventional()) + check_and_register_item_tree_change(place, new_value, mem_root); + /* + We have to use memcpy instead of *place= *new_value merge to + avoid problems with strict aliasing. + */ + memcpy((char*) place, new_value, sizeof(*new_value)); + } + void nocheck_register_item_tree_change(Item **place, Item *old_value, + MEM_ROOT *runtime_memroot); + void check_and_register_item_tree_change(Item **place, Item **new_value, + MEM_ROOT *runtime_memroot); + void rollback_item_tree_changes(); + + /* + Cleanup statement parse state (parse tree, lex) and execution + state after execution of a non-prepared SQL statement. + */ + void end_statement(); + inline int killed_errno() const + { + return ::killed_errno(killed); + } + inline void reset_killed() + { + /* + Resetting killed has to be done under a mutex to ensure + its not done during an awake() call. + */ + if (killed != NOT_KILLED) + { + mysql_mutex_lock(&LOCK_thd_data); + killed= NOT_KILLED; + mysql_mutex_unlock(&LOCK_thd_data); + } + } + inline void send_kill_message() const + { + int err= killed_errno(); + if (err) + my_message(err, ER(err), MYF(0)); + } + /* return TRUE if we will abort query if we make a warning now */ + inline bool really_abort_on_warning() + { + return (abort_on_warning && + (!transaction.stmt.modified_non_trans_table || + (variables.sql_mode & MODE_STRICT_ALL_TABLES))); + } + void set_status_var_init(); + void reset_n_backup_open_tables_state(Open_tables_backup *backup); + void restore_backup_open_tables_state(Open_tables_backup *backup); + void reset_sub_statement_state(Sub_statement_state *backup, uint new_state); + void restore_sub_statement_state(Sub_statement_state *backup); + void set_n_backup_active_arena(Query_arena *set, Query_arena *backup); + void restore_active_arena(Query_arena *set, Query_arena *backup); + + /* + @todo Make these methods private or remove them completely. Only + decide_logging_format should call them. /Sven + */ + inline void set_current_stmt_binlog_format_row_if_mixed() + { + DBUG_ENTER("set_current_stmt_binlog_format_row_if_mixed"); + /* + This should only be called from decide_logging_format. + + @todo Once we have ensured this, uncomment the following + statement, remove the big comment below that, and remove the + in_sub_stmt==0 condition from the following 'if'. + */ + /* DBUG_ASSERT(in_sub_stmt == 0); */ + /* + If in a stored/function trigger, the caller should already have done the + change. We test in_sub_stmt to prevent introducing bugs where people + wouldn't ensure that, and would switch to row-based mode in the middle + of executing a stored function/trigger (which is too late, see also + reset_current_stmt_binlog_format_row()); this condition will make their + tests fail and so force them to propagate the + lex->binlog_row_based_if_mixed upwards to the caller. + */ + if ((variables.binlog_format == BINLOG_FORMAT_MIXED) && + (in_sub_stmt == 0)) + set_current_stmt_binlog_format_row(); + + DBUG_VOID_RETURN; + } + inline void set_current_stmt_binlog_format_row() + { + DBUG_ENTER("set_current_stmt_binlog_format_row"); + current_stmt_binlog_format= BINLOG_FORMAT_ROW; + DBUG_VOID_RETURN; + } + inline void clear_current_stmt_binlog_format_row() + { + DBUG_ENTER("clear_current_stmt_binlog_format_row"); + current_stmt_binlog_format= BINLOG_FORMAT_STMT; + DBUG_VOID_RETURN; + } + inline void reset_current_stmt_binlog_format_row() + { + DBUG_ENTER("reset_current_stmt_binlog_format_row"); + /* + If there are temporary tables, don't reset back to + statement-based. Indeed it could be that: + CREATE TEMPORARY TABLE t SELECT UUID(); # row-based + # and row-based does not store updates to temp tables + # in the binlog. + INSERT INTO u SELECT * FROM t; # stmt-based + and then the INSERT will fail as data inserted into t was not logged. + So we continue with row-based until the temp table is dropped. + If we are in a stored function or trigger, we mustn't reset in the + middle of its execution (as the binary logging way of a stored function + or trigger is decided when it starts executing, depending for example on + the caller (for a stored function: if caller is SELECT or + INSERT/UPDATE/DELETE...). + */ + DBUG_PRINT("debug", + ("temporary_tables: %s, in_sub_stmt: %s, system_thread: %s", + YESNO(temporary_tables), YESNO(in_sub_stmt), + show_system_thread(system_thread))); + if (in_sub_stmt == 0) + { + if (variables.binlog_format == BINLOG_FORMAT_ROW) + set_current_stmt_binlog_format_row(); + else if (temporary_tables == NULL) + clear_current_stmt_binlog_format_row(); + } + DBUG_VOID_RETURN; + } + + /** + Set the current database; use deep copy of C-string. + + @param new_db a pointer to the new database name. + @param new_db_len length of the new database name. + + Initialize the current database from a NULL-terminated string with + length. If we run out of memory, we free the current database and + return TRUE. This way the user will notice the error as there will be + no current database selected (in addition to the error message set by + malloc). + + @note This operation just sets {db, db_length}. Switching the current + database usually involves other actions, like switching other database + attributes including security context. In the future, this operation + will be made private and more convenient interface will be provided. + + @return Operation status + @retval FALSE Success + @retval TRUE Out-of-memory error + */ + bool set_db(const char *new_db, size_t new_db_len) + { + /* + Acquiring mutex LOCK_thd_data as we either free the memory allocated + for the database and reallocating the memory for the new db or memcpy + the new_db to the db. + */ + mysql_mutex_lock(&LOCK_thd_data); + /* Do not reallocate memory if current chunk is big enough. */ + if (db && new_db && db_length >= new_db_len) + memcpy(db, new_db, new_db_len+1); + else + { + my_free(db); + if (new_db) + db= my_strndup(new_db, new_db_len, MYF(MY_WME | ME_FATALERROR)); + else + db= NULL; + } + db_length= db ? new_db_len : 0; + mysql_mutex_unlock(&LOCK_thd_data); + return new_db && !db; + } + + /** + Set the current database; use shallow copy of C-string. + + @param new_db a pointer to the new database name. + @param new_db_len length of the new database name. + + @note This operation just sets {db, db_length}. Switching the current + database usually involves other actions, like switching other database + attributes including security context. In the future, this operation + will be made private and more convenient interface will be provided. + */ + void reset_db(char *new_db, size_t new_db_len) + { + if (new_db != db || new_db_len != db_length) + { + mysql_mutex_lock(&LOCK_thd_data); + db= new_db; + db_length= new_db_len; + mysql_mutex_unlock(&LOCK_thd_data); + } + } + /* + Copy the current database to the argument. Use the current arena to + allocate memory for a deep copy: current database may be freed after + a statement is parsed but before it's executed. + */ + bool copy_db_to(char **p_db, size_t *p_db_length) + { + if (db == NULL) + { + my_message(ER_NO_DB_ERROR, ER(ER_NO_DB_ERROR), MYF(0)); + return TRUE; + } + *p_db= strmake(db, db_length); + *p_db_length= db_length; + return FALSE; + } + thd_scheduler event_scheduler; + +public: + inline Internal_error_handler *get_internal_handler() + { return m_internal_handler; } + + /** + Add an internal error handler to the thread execution context. + @param handler the exception handler to add + */ + void push_internal_handler(Internal_error_handler *handler); + + /** + Handle a sql condition. + @param sql_errno the condition error number + @param sqlstate the condition sqlstate + @param level the condition level + @param msg the condition message text + @param[out] cond_hdl the sql condition raised, if any + @return true if the condition is handled + */ + virtual bool handle_condition(uint sql_errno, + const char* sqlstate, + MYSQL_ERROR::enum_warning_level level, + const char* msg, + MYSQL_ERROR ** cond_hdl); + + /** + Remove the error handler last pushed. + */ + Internal_error_handler *pop_internal_handler(); + + /** + Raise an exception condition. + @param code the MYSQL_ERRNO error code of the error + */ + void raise_error(uint code); + + /** + Raise an exception condition, with a formatted message. + @param code the MYSQL_ERRNO error code of the error + */ + void raise_error_printf(uint code, ...); + + /** + Raise a completion condition (warning). + @param code the MYSQL_ERRNO error code of the warning + */ + void raise_warning(uint code); + + /** + Raise a completion condition (warning), with a formatted message. + @param code the MYSQL_ERRNO error code of the warning + */ + void raise_warning_printf(uint code, ...); + + /** + Raise a completion condition (note), with a fixed message. + @param code the MYSQL_ERRNO error code of the note + */ + void raise_note(uint code); + + /** + Raise an completion condition (note), with a formatted message. + @param code the MYSQL_ERRNO error code of the note + */ + void raise_note_printf(uint code, ...); + +private: + /* + Only the implementation of the SIGNAL and RESIGNAL statements + is permitted to raise SQL conditions in a generic way, + or to raise them by bypassing handlers (RESIGNAL). + To raise a SQL condition, the code should use the public + raise_error() or raise_warning() methods provided by class THD. + */ + friend class Signal_common; + friend class Signal_statement; + friend class Resignal_statement; + friend void push_warning(THD*, MYSQL_ERROR::enum_warning_level, uint, const char*); + friend void my_message_sql(uint, const char *, myf); + + /** + Raise a generic SQL condition. + @param sql_errno the condition error number + @param sqlstate the condition SQLSTATE + @param level the condition level + @param msg the condition message text + @return The condition raised, or NULL + */ + MYSQL_ERROR* + raise_condition(uint sql_errno, + const char* sqlstate, + MYSQL_ERROR::enum_warning_level level, + const char* msg); + +public: + /** Overloaded to guard query/query_length fields */ + virtual void set_statement(Statement *stmt); + + /** + Assign a new value to thd->query and thd->query_id and mysys_var. + Protected with LOCK_thd_data mutex. + */ + void set_query(char *query_arg, uint32 query_length_arg, + CHARSET_INFO *cs_arg) + { + set_query(CSET_STRING(query_arg, query_length_arg, cs_arg)); + } + void set_query(char *query_arg, uint32 query_length_arg) /*Mutex protected*/ + { + set_query(CSET_STRING(query_arg, query_length_arg, charset())); + } + void set_query(const CSET_STRING &str); /* Mutex protected */ + void reset_query() /* Mutex protected */ + { set_query(CSET_STRING()); } + void set_query_and_id(char *query_arg, uint32 query_length_arg, + CHARSET_INFO *cs, query_id_t new_query_id); + void set_query_id(query_id_t new_query_id); + void set_open_tables(TABLE *open_tables_arg) + { + mysql_mutex_lock(&LOCK_thd_data); + open_tables= open_tables_arg; + mysql_mutex_unlock(&LOCK_thd_data); + } + void set_mysys_var(struct st_my_thread_var *new_mysys_var); + void enter_locked_tables_mode(enum_locked_tables_mode mode_arg) + { + DBUG_ASSERT(locked_tables_mode == LTM_NONE); + + if (mode_arg == LTM_LOCK_TABLES) + { + /* + When entering LOCK TABLES mode we should set explicit duration + for all metadata locks acquired so far in order to avoid releasing + them till UNLOCK TABLES statement. + We don't do this when entering prelocked mode since sub-statements + don't release metadata locks and restoring status-quo after leaving + prelocking mode gets complicated. + */ + mdl_context.set_explicit_duration_for_all_locks(); + } + + locked_tables_mode= mode_arg; + } + void leave_locked_tables_mode(); + int decide_logging_format(TABLE_LIST *tables); + void binlog_invoker() { m_binlog_invoker= TRUE; } + bool need_binlog_invoker() { return m_binlog_invoker; } + void get_definer(LEX_USER *definer); + void set_invoker(const LEX_STRING *user, const LEX_STRING *host) + { + invoker_user= *user; + invoker_host= *host; + } + LEX_STRING get_invoker_user() { return invoker_user; } + LEX_STRING get_invoker_host() { return invoker_host; } + bool has_invoker() { return invoker_user.length > 0; } + + void print_aborted_warning(uint threshold, const char *reason) + { + if (global_system_variables.log_warnings > threshold) + { + Security_context *sctx= &main_security_ctx; + sql_print_warning(ER_THD(this, ER_NEW_ABORTING_CONNECTION), + thread_id, (db ? db : "unconnected"), + sctx->user ? sctx->user : "unauthenticated", + sctx->host_or_ip, reason); + } + } + +public: + void clear_wakeup_ready() { wakeup_ready= false; } + /* + Sleep waiting for others to wake us up with signal_wakeup_ready(). + Must call clear_wakeup_ready() before waiting. + */ + void wait_for_wakeup_ready(); + /* Wake this thread up from wait_for_wakeup_ready(). */ + void signal_wakeup_ready(); + + void add_status_to_global() + { + mysql_mutex_lock(&LOCK_status); + add_to_status(&global_status_var, &status_var); + /* Mark that this THD status has already been added in global status */ + status_in_global= 1; + mysql_mutex_unlock(&LOCK_status); + } + + void mark_transaction_to_rollback(bool all); +private: + + /** The current internal error handler for this thread, or NULL. */ + Internal_error_handler *m_internal_handler; + + /** + The lex to hold the parsed tree of conventional (non-prepared) queries. + Whereas for prepared and stored procedure statements we use an own lex + instance for each new query, for conventional statements we reuse + the same lex. (@see mysql_parse for details). + */ + LEX main_lex; + /** + This memory root is used for two purposes: + - for conventional queries, to allocate structures stored in main_lex + during parsing, and allocate runtime data (execution plan, etc.) + during execution. + - for prepared queries, only to allocate runtime data. The parsed + tree itself is reused between executions and thus is stored elsewhere. + */ + MEM_ROOT main_mem_root; + Warning_info main_warning_info; + Diagnostics_area main_da; + + /** + It will be set TURE if CURRENT_USER() is called in account management + statements or default definer is set in CREATE/ALTER SP, SF, Event, + TRIGGER or VIEW statements. + + Current user will be binlogged into Query_log_event if m_binlog_invoker + is TRUE; It will be stored into invoker_host and invoker_user by SQL thread. + */ + bool m_binlog_invoker; + + /** + It points to the invoker in the Query_log_event. + SQL thread use it as the default definer in CREATE/ALTER SP, SF, Event, + TRIGGER or VIEW statements or current user in account management + statements if it is not NULL. + */ + LEX_STRING invoker_user; + LEX_STRING invoker_host; + /* + Flag, mutex and condition for a thread to wait for a signal from another + thread. + + Currently used to wait for group commit to complete, can also be used for + other purposes. + */ + bool wakeup_ready; + mysql_mutex_t LOCK_wakeup_ready; + mysql_cond_t COND_wakeup_ready; +}; + + +/** A short cut for thd->stmt_da->set_ok_status(). */ + +inline void +my_ok(THD *thd, ulonglong affected_rows= 0, ulonglong id= 0, + const char *message= NULL) +{ + thd->set_row_count_func(affected_rows); + thd->stmt_da->set_ok_status(thd, affected_rows, id, message); +} + + +/** A short cut for thd->stmt_da->set_eof_status(). */ + +inline void +my_eof(THD *thd) +{ + thd->set_row_count_func(-1); + thd->stmt_da->set_eof_status(thd); +} + +#define tmp_disable_binlog(A) \ + {ulonglong tmp_disable_binlog__save_options= (A)->variables.option_bits; \ + (A)->variables.option_bits&= ~OPTION_BIN_LOG + +#define reenable_binlog(A) (A)->variables.option_bits= tmp_disable_binlog__save_options;} + + +/* + These functions are for making it later easy to add strict + checking for all date handling. +*/ + +const my_bool strict_date_checking= 0; + +inline ulong sql_mode_for_dates(THD *thd) +{ + if (strict_date_checking) + return (thd->variables.sql_mode & + (MODE_NO_ZERO_DATE | MODE_NO_ZERO_IN_DATE | + MODE_INVALID_DATES)); + return (thd->variables.sql_mode & MODE_INVALID_DATES); +} + +inline ulong sql_mode_for_dates() +{ + return sql_mode_for_dates(current_thd); +} + +/* + Used to hold information about file and file structure in exchange + via non-DB file (...INTO OUTFILE..., ...LOAD DATA...) + XXX: We never call destructor for objects of this class. +*/ + +class sql_exchange :public Sql_alloc +{ +public: + enum enum_filetype filetype; /* load XML, Added by Arnold & Erik */ + char *file_name; + String *field_term,*enclosed,*line_term,*line_start,*escaped; + bool opt_enclosed; + bool dumpfile; + ulong skip_lines; + CHARSET_INFO *cs; + sql_exchange(char *name, bool dumpfile_flag, + enum_filetype filetype_arg= FILETYPE_CSV); + bool escaped_given(void); +}; + +/* + This is used to get result from a select +*/ + +class JOIN; + +class select_result :public Sql_alloc { +protected: + THD *thd; + SELECT_LEX_UNIT *unit; +public: + select_result(); + virtual ~select_result() {}; + virtual int prepare(List &list, SELECT_LEX_UNIT *u) + { + unit= u; + return 0; + } + virtual int prepare2(void) { return 0; } + /* + Because of peculiarities of prepared statements protocol + we need to know number of columns in the result set (if + there is a result set) apart from sending columns metadata. + */ + virtual uint field_count(List &fields) const + { return fields.elements; } + virtual bool send_result_set_metadata(List &list, uint flags)=0; + /* + send_data returns 0 on ok, 1 on error and -1 if data was ignored, for + example for a duplicate row entry written to a temp table. + */ + virtual int send_data(List &items)=0; + virtual bool initialize_tables (JOIN *join=0) { return 0; } + virtual void send_error(uint errcode,const char *err); + virtual bool send_eof()=0; + /** + Check if this query returns a result set and therefore is allowed in + cursors and set an error message if it is not the case. + + @retval FALSE success + @retval TRUE error, an error message is set + */ + virtual bool check_simple_select() const; + virtual void abort_result_set() {} + /* + Cleanup instance of this class for next execution of a prepared + statement/stored procedure. + */ + virtual void cleanup(); + void set_thd(THD *thd_arg) { thd= thd_arg; } +#ifdef EMBEDDED_LIBRARY + virtual void begin_dataset() {} +#else + void begin_dataset() {} +#endif + virtual void update_used_tables() {} +}; + + +/* + Base class for select_result descendands which intercept and + transform result set rows. As the rows are not sent to the client, + sending of result set metadata should be suppressed as well. +*/ + +class select_result_interceptor: public select_result +{ +public: + select_result_interceptor() + { + DBUG_ENTER("select_result_interceptor::select_result_interceptor"); + DBUG_PRINT("enter", ("this 0x%lx", (ulong) this)); + DBUG_VOID_RETURN; + } /* Remove gcc warning */ + uint field_count(List &fields) const { return 0; } + bool send_result_set_metadata(List &fields, uint flag) { return FALSE; } +}; + + +class select_send :public select_result { + /** + True if we have sent result set metadata to the client. + In this case the client always expects us to end the result + set with an eof or error packet + */ + bool is_result_set_started; +public: + select_send() :is_result_set_started(FALSE) {} + bool send_result_set_metadata(List &list, uint flags); + int send_data(List &items); + bool send_eof(); + virtual bool check_simple_select() const { return FALSE; } + void abort_result_set(); + virtual void cleanup(); +}; + + +class select_to_file :public select_result_interceptor { +protected: + sql_exchange *exchange; + File file; + IO_CACHE cache; + ha_rows row_count; + char path[FN_REFLEN]; + +public: + select_to_file(sql_exchange *ex) :exchange(ex), file(-1),row_count(0L) + { path[0]=0; } + ~select_to_file(); + void send_error(uint errcode,const char *err); + bool send_eof(); + void cleanup(); +}; + + +#define ESCAPE_CHARS "ntrb0ZN" // keep synchronous with READ_INFO::unescape + + +/* + List of all possible characters of a numeric value text representation. +*/ +#define NUMERIC_CHARS ".0123456789e+-" + + +class select_export :public select_to_file { + uint field_term_length; + int field_sep_char,escape_char,line_sep_char; + int field_term_char; // first char of FIELDS TERMINATED BY or MAX_INT + /* + The is_ambiguous_field_sep field is true if a value of the field_sep_char + field is one of the 'n', 't', 'r' etc characters + (see the READ_INFO::unescape method and the ESCAPE_CHARS constant value). + */ + bool is_ambiguous_field_sep; + /* + The is_ambiguous_field_term is true if field_sep_char contains the first + char of the FIELDS TERMINATED BY (ENCLOSED BY is empty), and items can + contain this character. + */ + bool is_ambiguous_field_term; + /* + The is_unsafe_field_sep field is true if a value of the field_sep_char + field is one of the '0'..'9', '+', '-', '.' and 'e' characters + (see the NUMERIC_CHARS constant value). + */ + bool is_unsafe_field_sep; + bool fixed_row_size; + CHARSET_INFO *write_cs; // output charset +public: + select_export(sql_exchange *ex) :select_to_file(ex) {} + ~select_export(); + int prepare(List &list, SELECT_LEX_UNIT *u); + int send_data(List &items); +}; + + +class select_dump :public select_to_file { +public: + select_dump(sql_exchange *ex) :select_to_file(ex) {} + int prepare(List &list, SELECT_LEX_UNIT *u); + int send_data(List &items); +}; + + +class select_insert :public select_result_interceptor { + public: + TABLE_LIST *table_list; + TABLE *table; + List *fields; + ulonglong autoinc_value_of_last_inserted_row; // autogenerated or not + COPY_INFO info; + bool insert_into_view; + select_insert(TABLE_LIST *table_list_par, + TABLE *table_par, List *fields_par, + List *update_fields, List *update_values, + enum_duplicates duplic, bool ignore); + ~select_insert(); + int prepare(List &list, SELECT_LEX_UNIT *u); + virtual int prepare2(void); + virtual int send_data(List &items); + virtual void store_values(List &values); + virtual bool can_rollback_data() { return 0; } + void send_error(uint errcode,const char *err); + bool send_eof(); + virtual void abort_result_set(); + /* not implemented: select_insert is never re-used in prepared statements */ + void cleanup(); +}; + + +class select_create: public select_insert { + ORDER *group; + TABLE_LIST *create_table; + HA_CREATE_INFO *create_info; + TABLE_LIST *select_tables; + Alter_info *alter_info; + Field **field; + /* lock data for tmp table */ + MYSQL_LOCK *m_lock; + /* m_lock or thd->extra_lock */ + MYSQL_LOCK **m_plock; +public: + select_create (TABLE_LIST *table_arg, + HA_CREATE_INFO *create_info_par, + Alter_info *alter_info_arg, + List &select_fields,enum_duplicates duplic, bool ignore, + TABLE_LIST *select_tables_arg) + :select_insert (NULL, NULL, &select_fields, 0, 0, duplic, ignore), + create_table(table_arg), + create_info(create_info_par), + select_tables(select_tables_arg), + alter_info(alter_info_arg), + m_plock(NULL) + {} + int prepare(List &list, SELECT_LEX_UNIT *u); + + int binlog_show_create_table(TABLE **tables, uint count); + void store_values(List &values); + void send_error(uint errcode,const char *err); + bool send_eof(); + virtual void abort_result_set(); + virtual bool can_rollback_data() { return 1; } + + // Needed for access from local class MY_HOOKS in prepare(), since thd is proteted. + const THD *get_thd(void) { return thd; } + const HA_CREATE_INFO *get_create_info() { return create_info; }; + int prepare2(void) { return 0; } +}; + +#include + +#ifdef WITH_ARIA_STORAGE_ENGINE +#include +#endif + +#ifdef USE_ARIA_FOR_TMP_TABLES +#define ENGINE_COLUMNDEF MARIA_COLUMNDEF +#else +#define ENGINE_COLUMNDEF MI_COLUMNDEF +#endif + +/* + Param to create temporary tables when doing SELECT:s + NOTE + This structure is copied using memcpy as a part of JOIN. +*/ + +class TMP_TABLE_PARAM :public Sql_alloc +{ +private: + /* Prevent use of these (not safe because of lists and copy_field) */ + TMP_TABLE_PARAM(const TMP_TABLE_PARAM &); + void operator=(TMP_TABLE_PARAM &); + +public: + List copy_funcs; + List save_copy_funcs; + Copy_field *copy_field, *copy_field_end; + Copy_field *save_copy_field, *save_copy_field_end; + uchar *group_buff; + Item **items_to_copy; /* Fields in tmp table */ + ENGINE_COLUMNDEF *recinfo, *start_recinfo; + KEY *keyinfo; + ha_rows end_write_records; + /** + Number of normal fields in the query, including those referred to + from aggregate functions. Hence, "SELECT `field1`, + SUM(`field2`) from t1" sets this counter to 2. + + @see count_field_types + */ + uint field_count; + /** + Number of fields in the query that have functions. Includes both + aggregate functions (e.g., SUM) and non-aggregates (e.g., RAND). + Also counts functions referred to from aggregate functions, i.e., + "SELECT SUM(RAND())" sets this counter to 2. + + @see count_field_types + */ + uint func_count; + /** + Number of fields in the query that have aggregate functions. Note + that the optimizer may choose to optimize away these fields by + replacing them with constants, in which case sum_func_count will + need to be updated. + + @see opt_sum_query, count_field_types + */ + uint sum_func_count; + uint hidden_field_count; + uint group_parts,group_length,group_null_parts; + uint quick_group; + bool using_indirect_summary_function; + /* If >0 convert all blob fields to varchar(convert_blob_length) */ + uint convert_blob_length; + CHARSET_INFO *table_charset; + bool schema_table; + /* TRUE if the temp table is created for subquery materialization. */ + bool materialized_subquery; + /* TRUE if all columns of the table are guaranteed to be non-nullable */ + bool force_not_null_cols; + /* + True if GROUP BY and its aggregate functions are already computed + by a table access method (e.g. by loose index scan). In this case + query execution should not perform aggregation and should treat + aggregate functions as normal functions. + */ + bool precomputed_group_by; + bool force_copy_fields; + /* + If TRUE, create_tmp_field called from create_tmp_table will convert + all BIT fields to 64-bit longs. This is a workaround the limitation + that MEMORY tables cannot index BIT columns. + */ + bool bit_fields_as_long; + /* + Whether to create or postpone actual creation of this temporary table. + TRUE <=> create_tmp_table will create only the TABLE structure. + */ + bool skip_create_table; + + TMP_TABLE_PARAM() + :copy_field(0), group_parts(0), + group_length(0), group_null_parts(0), convert_blob_length(0), + schema_table(0), materialized_subquery(0), force_not_null_cols(0), + precomputed_group_by(0), + force_copy_fields(0), bit_fields_as_long(0), skip_create_table(0) + {} + ~TMP_TABLE_PARAM() + { + cleanup(); + } + void init(void); + inline void cleanup(void) + { + if (copy_field) /* Fix for Intel compiler */ + { + delete [] copy_field; + save_copy_field= copy_field= NULL; + save_copy_field_end= copy_field_end= NULL; + } + } + void free_copy_field_data() + { + for (Copy_field *ptr= copy_field ; ptr != copy_field_end ; ptr++) + ptr->tmp.free(); + } +}; + +class select_union :public select_result_interceptor +{ +public: + TMP_TABLE_PARAM tmp_table_param; + int write_err; /* Error code from the last send_data->ha_write_row call. */ +public: + TABLE *table; + ha_rows records; + + select_union() :write_err(0), table(0), records(0) { tmp_table_param.init(); } + int prepare(List &list, SELECT_LEX_UNIT *u); + int send_data(List &items); + bool send_eof(); + bool flush(); + void cleanup(); + virtual bool create_result_table(THD *thd, List *column_types, + bool is_distinct, ulonglong options, + const char *alias, + bool bit_fields_as_long, + bool create_table, + bool keep_row_order= FALSE); + TMP_TABLE_PARAM *get_tmp_table_param() { return &tmp_table_param; } +}; + +/* Base subselect interface class */ +class select_subselect :public select_result_interceptor +{ +protected: + Item_subselect *item; +public: + select_subselect(Item_subselect *item); + int send_data(List &items)=0; + bool send_eof() { return 0; }; +}; + +/* Single value subselect interface class */ +class select_singlerow_subselect :public select_subselect +{ +public: + select_singlerow_subselect(Item_subselect *item_arg) + :select_subselect(item_arg) + {} + int send_data(List &items); +}; + + +/* + This class specializes select_union to collect statistics about the + data stored in the temp table. Currently the class collects statistcs + about NULLs. +*/ + +class select_materialize_with_stats : public select_union +{ +protected: + class Column_statistics + { + public: + /* Count of NULLs per column. */ + ha_rows null_count; + /* The row number that contains the first NULL in a column. */ + ha_rows min_null_row; + /* The row number that contains the last NULL in a column. */ + ha_rows max_null_row; + }; + + /* Array of statistics data per column. */ + Column_statistics* col_stat; + + /* + The number of columns in the biggest sub-row that consists of only + NULL values. + */ + uint max_nulls_in_row; + /* + Count of rows writtent to the temp table. This is redundant as it is + already stored in handler::stats.records, however that one is relatively + expensive to compute (given we need that for evry row). + */ + ha_rows count_rows; + +protected: + void reset(); + +public: + select_materialize_with_stats() { tmp_table_param.init(); } + bool create_result_table(THD *thd, List *column_types, + bool is_distinct, ulonglong options, + const char *alias, + bool bit_fields_as_long, + bool create_table, + bool keep_row_order= FALSE); + bool init_result_table(ulonglong select_options); + int send_data(List &items); + void cleanup(); + ha_rows get_null_count_of_col(uint idx) + { + DBUG_ASSERT(idx < table->s->fields); + return col_stat[idx].null_count; + } + ha_rows get_max_null_of_col(uint idx) + { + DBUG_ASSERT(idx < table->s->fields); + return col_stat[idx].max_null_row; + } + ha_rows get_min_null_of_col(uint idx) + { + DBUG_ASSERT(idx < table->s->fields); + return col_stat[idx].min_null_row; + } + uint get_max_nulls_in_row() { return max_nulls_in_row; } +}; + + +/* used in independent ALL/ANY optimisation */ +class select_max_min_finder_subselect :public select_subselect +{ + Item_cache *cache; + bool (select_max_min_finder_subselect::*op)(); + bool fmax; + bool is_all; +public: + select_max_min_finder_subselect(Item_subselect *item_arg, bool mx, + bool all) + :select_subselect(item_arg), cache(0), fmax(mx), is_all(all) + {} + void cleanup(); + int send_data(List &items); + bool cmp_real(); + bool cmp_int(); + bool cmp_decimal(); + bool cmp_str(); +}; + +/* EXISTS subselect interface class */ +class select_exists_subselect :public select_subselect +{ +public: + select_exists_subselect(Item_subselect *item_arg) + :select_subselect(item_arg){} + int send_data(List &items); +}; + + + + +/* + Optimizer and executor structure for the materialized semi-join info. This + structure contains + - The sj-materialization temporary table + - Members needed to make index lookup or a full scan of the temptable. +*/ +class SJ_MATERIALIZATION_INFO : public Sql_alloc +{ +public: + /* Optimal join sub-order */ + struct st_position *positions; + + uint tables; /* Number of tables in the sj-nest */ + + /* Expected #rows in the materialized table */ + double rows; + + /* + Cost to materialize - execute the sub-join and write rows into temp.table + */ + COST_VECT materialization_cost; + + /* Cost to make one lookup in the temptable */ + COST_VECT lookup_cost; + + /* Cost of scanning the materialized table */ + COST_VECT scan_cost; + + /* --- Execution structures ---------- */ + + /* + TRUE <=> This structure is used for execution. We don't necessarily pick + sj-materialization, so some of SJ_MATERIALIZATION_INFO structures are not + used by materialization + */ + bool is_used; + + bool materialized; /* TRUE <=> materialization already performed */ + /* + TRUE - the temptable is read with full scan + FALSE - we use the temptable for index lookups + */ + bool is_sj_scan; + + /* The temptable and its related info */ + TMP_TABLE_PARAM sjm_table_param; + List sjm_table_cols; + TABLE *table; + + /* Structure used to make index lookups */ + struct st_table_ref *tab_ref; + Item *in_equality; /* See create_subq_in_equalities() */ + + Item *join_cond; /* See comments in make_join_select() */ + Copy_field *copy_field; /* Needed for SJ_Materialization scan */ +}; + + +/* Structs used when sorting */ + +typedef struct st_sort_field { + Field *field; /* Field to sort */ + Item *item; /* Item if not sorting fields */ + uint length; /* Length of sort field */ + uint suffix_length; /* Length suffix (0-4) */ + Item_result result_type; /* Type of item */ + bool reverse; /* if descending sort */ + bool need_strxnfrm; /* If we have to use strxnfrm() */ +} SORT_FIELD; + + +typedef struct st_sort_buffer { + uint index; /* 0 or 1 */ + uint sort_orders; + uint change_pos; /* If sort-fields changed */ + char **buff; + SORT_FIELD *sortorder; +} SORT_BUFFER; + +/* Structure for db & table in sql_yacc */ + +class Table_ident :public Sql_alloc +{ +public: + LEX_STRING db; + LEX_STRING table; + SELECT_LEX_UNIT *sel; + inline Table_ident(THD *thd, LEX_STRING db_arg, LEX_STRING table_arg, + bool force) + :table(table_arg), sel((SELECT_LEX_UNIT *)0) + { + if (!force && (thd->client_capabilities & CLIENT_NO_SCHEMA)) + db.str=0; + else + db= db_arg; + } + inline Table_ident(LEX_STRING table_arg) + :table(table_arg), sel((SELECT_LEX_UNIT *)0) + { + db.str=0; + } + /* + This constructor is used only for the case when we create a derived + table. A derived table has no name and doesn't belong to any database. + Later, if there was an alias specified for the table, it will be set + by add_table_to_list. + */ + inline Table_ident(SELECT_LEX_UNIT *s) : sel(s) + { + /* We must have a table name here as this is used with add_table_to_list */ + db.str= empty_c_string; /* a subject to casedn_str */ + db.length= 0; + table.str= internal_table_name; + table.length=1; + } + bool is_derived_table() const { return test(sel); } + inline void change_db(char *db_name) + { + db.str= db_name; db.length= (uint) strlen(db_name); + } +}; + +// this is needed for user_vars hash +class user_var_entry +{ + public: + user_var_entry() {} /* Remove gcc warning */ + LEX_STRING name; + char *value; + ulong length; + query_id_t update_query_id, used_query_id; + Item_result type; + bool unsigned_flag; + + double val_real(bool *null_value); + longlong val_int(bool *null_value) const; + String *val_str(bool *null_value, String *str, uint decimals); + my_decimal *val_decimal(bool *null_value, my_decimal *result); + DTCollation collation; +}; + + +/* + Unique -- class for unique (removing of duplicates). + Puts all values to the TREE. If the tree becomes too big, + it's dumped to the file. User can request sorted values, or + just iterate through them. In the last case tree merging is performed in + memory simultaneously with iteration, so it should be ~2-3x faster. + */ + +class Unique :public Sql_alloc +{ + DYNAMIC_ARRAY file_ptrs; + ulong max_elements; /* Total number of elements that will be stored in-memory */ + ulonglong max_in_memory_size; + IO_CACHE file; + TREE tree; + uchar *record_pointers; + /* Number of elements filtered out due to min_dupl_count when storing results + to table. See Unique::get */ + ulong filtered_out_elems; + bool flush(); + uint size; /* Size of element stored in unique object. */ + uint full_size; /* Size of element + space needed to store the number of + duplicates found for the element. */ + uint min_dupl_count; /* Minimum number of occurences of element required for + it to be written to record_pointers. + always 0 for unions, > 0 for intersections */ + + bool merge(TABLE *table, uchar *buff, bool without_last_merge); + +public: + ulong elements; + Unique(qsort_cmp2 comp_func, void *comp_func_fixed_arg, + uint size_arg, ulonglong max_in_memory_size_arg, + uint min_dupl_count_arg= 0); + ~Unique(); + ulong elements_in_tree() { return tree.elements_in_tree; } + inline bool unique_add(void *ptr) + { + DBUG_ENTER("unique_add"); + DBUG_PRINT("info", ("tree %u - %lu", tree.elements_in_tree, max_elements)); + if (!(tree.flag & TREE_ONLY_DUPS) && + tree.elements_in_tree >= max_elements && flush()) + DBUG_RETURN(1); + DBUG_RETURN(!tree_insert(&tree, ptr, 0, tree.custom_arg)); + } + + bool is_in_memory() { return (my_b_tell(&file) == 0); } + void close_for_expansion() { tree.flag= TREE_ONLY_DUPS; } + + bool get(TABLE *table); + + /* Cost of searching for an element in the tree */ + inline static double get_search_cost(ulonglong tree_elems, uint compare_factor) + { + return log((double) tree_elems) / (compare_factor * M_LN2); + } + + static double get_use_cost(uint *buffer, size_t nkeys, uint key_size, + ulonglong max_in_memory_size, uint compare_factor, + bool intersect_fl, bool *in_memory); + inline static int get_cost_calc_buff_size(size_t nkeys, uint key_size, + ulonglong max_in_memory_size) + { + register ulonglong max_elems_in_tree= + max_in_memory_size / ALIGN_SIZE(sizeof(TREE_ELEMENT)+key_size); + return (int) (sizeof(uint)*(1 + nkeys/max_elems_in_tree)); + } + + void reset(); + bool walk(TABLE *table, tree_walk_action action, void *walk_action_arg); + + uint get_size() const { return size; } + ulonglong get_max_in_memory_size() const { return max_in_memory_size; } + + friend int unique_write_to_file(uchar* key, element_count count, Unique *unique); + friend int unique_write_to_ptrs(uchar* key, element_count count, Unique *unique); + + friend int unique_write_to_file_with_count(uchar* key, element_count count, + Unique *unique); + friend int unique_intersect_write_to_ptrs(uchar* key, element_count count, + Unique *unique); +}; + + +class multi_delete :public select_result_interceptor +{ + TABLE_LIST *delete_tables, *table_being_deleted; + Unique **tempfiles; + ha_rows deleted, found; + uint num_of_tables; + int error; + bool do_delete; + /* True if at least one table we delete from is transactional */ + bool transactional_tables; + /* True if at least one table we delete from is not transactional */ + bool normal_tables; + bool delete_while_scanning; + /* + error handling (rollback and binlogging) can happen in send_eof() + so that afterward send_error() needs to find out that. + */ + bool error_handled; + +public: + multi_delete(TABLE_LIST *dt, uint num_of_tables); + ~multi_delete(); + int prepare(List &list, SELECT_LEX_UNIT *u); + int send_data(List &items); + bool initialize_tables (JOIN *join); + void send_error(uint errcode,const char *err); + int do_deletes(); + int do_table_deletes(TABLE *table, bool ignore); + bool send_eof(); + inline ha_rows num_deleted() + { + return deleted; + } + virtual void abort_result_set(); +}; + + +class multi_update :public select_result_interceptor +{ + TABLE_LIST *all_tables; /* query/update command tables */ + List *leaves; /* list of leves of join table tree */ + TABLE_LIST *update_tables, *table_being_updated; + TABLE **tmp_tables, *main_table, *table_to_update; + TMP_TABLE_PARAM *tmp_table_param; + ha_rows updated, found; + List *fields, *values; + List **fields_for_table, **values_for_table; + uint table_count; + /* + List of tables referenced in the CHECK OPTION condition of + the updated view excluding the updated table. + */ + List
unupdated_check_opt_tables; + Copy_field *copy_field; + enum enum_duplicates handle_duplicates; + bool do_update, trans_safe; + /* True if the update operation has made a change in a transactional table */ + bool transactional_tables; + bool ignore; + /* + error handling (rollback and binlogging) can happen in send_eof() + so that afterward send_error() needs to find out that. + */ + bool error_handled; + +public: + multi_update(TABLE_LIST *ut, List *leaves_list, + List *fields, List *values, + enum_duplicates handle_duplicates, bool ignore); + ~multi_update(); + int prepare(List &list, SELECT_LEX_UNIT *u); + int send_data(List &items); + bool initialize_tables (JOIN *join); + void send_error(uint errcode,const char *err); + int do_updates(); + bool send_eof(); + inline ha_rows num_found() + { + return found; + } + inline ha_rows num_updated() + { + return updated; + } + virtual void abort_result_set(); + void update_used_tables(); +}; + +class my_var : public Sql_alloc { +public: + LEX_STRING s; +#ifndef DBUG_OFF + /* + Routine to which this Item_splocal belongs. Used for checking if correct + runtime context is used for variable handling. + */ + sp_head *sp; +#endif + bool local; + uint offset; + enum_field_types type; + my_var (LEX_STRING& j, bool i, uint o, enum_field_types t) + :s(j), local(i), offset(o), type(t) + {} + ~my_var() {} +}; + +class select_dumpvar :public select_result_interceptor { + ha_rows row_count; +public: + List var_list; + select_dumpvar() { var_list.empty(); row_count= 0;} + ~select_dumpvar() {} + int prepare(List &list, SELECT_LEX_UNIT *u); + int send_data(List &items); + bool send_eof(); + virtual bool check_simple_select() const; + void cleanup(); +}; + +/* Bits in sql_command_flags */ + +#define CF_CHANGES_DATA (1U << 0) +#define CF_REPORT_PROGRESS (1U << 1) +#define CF_STATUS_COMMAND (1U << 2) +#define CF_SHOW_TABLE_COMMAND (1U << 3) +#define CF_WRITE_LOGS_COMMAND (1U << 4) + +/** + Must be set for SQL statements that may contain + Item expressions and/or use joins and tables. + Indicates that the parse tree of such statement may + contain rule-based optimizations that depend on metadata + (i.e. number of columns in a table), and consequently + that the statement must be re-prepared whenever + referenced metadata changes. Must not be set for + statements that themselves change metadata, e.g. RENAME, + ALTER and other DDL, since otherwise will trigger constant + reprepare. Consequently, complex item expressions and + joins are currently prohibited in these statements. +*/ +#define CF_REEXECUTION_FRAGILE (1U << 5) +/** + Implicitly commit before the SQL statement is executed. + + Statements marked with this flag will cause any active + transaction to end (commit) before proceeding with the + command execution. + + This flag should be set for statements that probably can't + be rolled back or that do not expect any previously metadata + locked tables. +*/ +#define CF_IMPLICT_COMMIT_BEGIN (1U << 6) +/** + Implicitly commit after the SQL statement. + + Statements marked with this flag are automatically committed + at the end of the statement. + + This flag should be set for statements that will implicitly + open and take metadata locks on system tables that should not + be carried for the whole duration of a active transaction. +*/ +#define CF_IMPLICIT_COMMIT_END (1U << 7) +/** + CF_IMPLICT_COMMIT_BEGIN and CF_IMPLICIT_COMMIT_END are used + to ensure that the active transaction is implicitly committed + before and after every DDL statement and any statement that + modifies our currently non-transactional system tables. +*/ +#define CF_AUTO_COMMIT_TRANS (CF_IMPLICT_COMMIT_BEGIN | CF_IMPLICIT_COMMIT_END) + +/** + Diagnostic statement. + Diagnostic statements: + - SHOW WARNING + - SHOW ERROR + - GET DIAGNOSTICS (WL#2111) + do not modify the diagnostics area during execution. +*/ +#define CF_DIAGNOSTIC_STMT (1U << 8) + +/** + Identifies statements that may generate row events + and that may end up in the binary log. +*/ +#define CF_CAN_GENERATE_ROW_EVENTS (1U << 9) + +/* Bits in server_command_flags */ + +/** + Skip the increase of the global query id counter. Commonly set for + commands that are stateless (won't cause any change on the server + internal states). +*/ +#define CF_SKIP_QUERY_ID (1U << 0) + +/** + Skip the increase of the number of statements that clients have + sent to the server. Commonly used for commands that will cause + a statement to be executed but the statement might have not been + sent by the user (ie: stored procedure). +*/ +#define CF_SKIP_QUESTIONS (1U << 1) + +/* Inline functions */ + +inline bool add_item_to_list(THD *thd, Item *item) +{ + return thd->lex->current_select->add_item_to_list(thd, item); +} + +inline bool add_value_to_list(THD *thd, Item *value) +{ + return thd->lex->value_list.push_back(value); +} + +inline bool add_order_to_list(THD *thd, Item *item, bool asc) +{ + return thd->lex->current_select->add_order_to_list(thd, item, asc); +} + +inline bool add_gorder_to_list(THD *thd, Item *item, bool asc) +{ + return thd->lex->current_select->add_gorder_to_list(thd, item, asc); +} + +inline bool add_group_to_list(THD *thd, Item *item, bool asc) +{ + return thd->lex->current_select->add_group_to_list(thd, item, asc); +} + +/* inline handler methods that need to know TABLE and THD structures */ +inline void handler::increment_statistics(ulong SSV::*offset) const +{ + status_var_increment(table->in_use->status_var.*offset); + table->in_use->check_limit_rows_examined(); +} + +inline void handler::decrement_statistics(ulong SSV::*offset) const +{ + status_var_decrement(table->in_use->status_var.*offset); +} + +inline int handler::ha_index_read_map(uchar * buf, const uchar * key, + key_part_map keypart_map, + enum ha_rkey_function find_flag) +{ + DBUG_ASSERT(inited==INDEX); + MYSQL_INDEX_READ_ROW_START(table_share->db.str, table_share->table_name.str); + increment_statistics(&SSV::ha_read_key_count); + int error= index_read_map(buf, key, keypart_map, find_flag); + if (!error) + update_index_statistics(); + table->status=error ? STATUS_NOT_FOUND: 0; + MYSQL_INDEX_READ_ROW_DONE(error); + return error; +} + + +/* + @note: Other index lookup/navigation functions require prior + handler->index_init() call. This function is different, it requires + that the scan is not initialized, and accepts "uint index" as an argument. +*/ + +inline int handler::ha_index_read_idx_map(uchar * buf, uint index, + const uchar * key, + key_part_map keypart_map, + enum ha_rkey_function find_flag) +{ + DBUG_ASSERT(inited==NONE); + MYSQL_INDEX_READ_ROW_START(table_share->db.str, table_share->table_name.str); + increment_statistics(&SSV::ha_read_key_count); + int error= index_read_idx_map(buf, index, key, keypart_map, find_flag); + if (!error) + { + update_rows_read(); + index_rows_read[index]++; + } + table->status=error ? STATUS_NOT_FOUND: 0; + MYSQL_INDEX_READ_ROW_DONE(error); + return error; +} + +inline int handler::ha_index_next(uchar * buf) +{ + DBUG_ASSERT(inited==INDEX); + MYSQL_INDEX_READ_ROW_START(table_share->db.str, table_share->table_name.str); + increment_statistics(&SSV::ha_read_next_count); + int error= index_next(buf); + if (!error) + update_index_statistics(); + table->status=error ? STATUS_NOT_FOUND: 0; + MYSQL_INDEX_READ_ROW_DONE(error); + return error; +} + +inline int handler::ha_index_prev(uchar * buf) +{ + DBUG_ASSERT(inited==INDEX); + MYSQL_INDEX_READ_ROW_START(table_share->db.str, table_share->table_name.str); + increment_statistics(&SSV::ha_read_prev_count); + int error= index_prev(buf); + if (!error) + update_index_statistics(); + table->status=error ? STATUS_NOT_FOUND: 0; + MYSQL_INDEX_READ_ROW_DONE(error); + return error; +} + +inline int handler::ha_index_first(uchar * buf) +{ + DBUG_ASSERT(inited==INDEX); + MYSQL_INDEX_READ_ROW_START(table_share->db.str, table_share->table_name.str); + increment_statistics(&SSV::ha_read_first_count); + int error= index_first(buf); + if (!error) + update_index_statistics(); + table->status=error ? STATUS_NOT_FOUND: 0; + MYSQL_INDEX_READ_ROW_DONE(error); + return error; +} + +inline int handler::ha_index_last(uchar * buf) +{ + DBUG_ASSERT(inited==INDEX); + MYSQL_INDEX_READ_ROW_START(table_share->db.str, table_share->table_name.str); + increment_statistics(&SSV::ha_read_last_count); + int error= index_last(buf); + if (!error) + update_index_statistics(); + table->status=error ? STATUS_NOT_FOUND: 0; + MYSQL_INDEX_READ_ROW_DONE(error); + return error; +} + +inline int handler::ha_index_next_same(uchar *buf, const uchar *key, + uint keylen) +{ + DBUG_ASSERT(inited==INDEX); + MYSQL_INDEX_READ_ROW_START(table_share->db.str, table_share->table_name.str); + increment_statistics(&SSV::ha_read_next_count); + int error= index_next_same(buf, key, keylen); + if (!error) + update_index_statistics(); + table->status=error ? STATUS_NOT_FOUND: 0; + MYSQL_INDEX_READ_ROW_DONE(error); + return error; +} + +inline int handler::ha_ft_read(uchar *buf) +{ + int error= ft_read(buf); + if (!error) + update_rows_read(); + + table->status=error ? STATUS_NOT_FOUND: 0; + return error; +} + +inline int handler::ha_rnd_next(uchar *buf) +{ + MYSQL_READ_ROW_START(table_share->db.str, table_share->table_name.str, TRUE); + int error= rnd_next(buf); + if (!error) + { + update_rows_read(); + increment_statistics(&SSV::ha_read_rnd_next_count); + } + else if (error == HA_ERR_RECORD_DELETED) + increment_statistics(&SSV::ha_read_rnd_deleted_count); + else + increment_statistics(&SSV::ha_read_rnd_next_count); + + table->status=error ? STATUS_NOT_FOUND: 0; + MYSQL_READ_ROW_DONE(error); + return error; +} + +inline int handler::ha_rnd_pos(uchar *buf, uchar *pos) +{ + MYSQL_READ_ROW_START(table_share->db.str, table_share->table_name.str, FALSE); + increment_statistics(&SSV::ha_read_rnd_count); + int error= rnd_pos(buf, pos); + if (!error) + update_rows_read(); + table->status=error ? STATUS_NOT_FOUND: 0; + MYSQL_READ_ROW_DONE(error); + return error; +} + +inline int handler::ha_rnd_pos_by_record(uchar *buf) +{ + int error= rnd_pos_by_record(buf); + if (!error) + update_rows_read(); + table->status=error ? STATUS_NOT_FOUND: 0; + return error; +} + +inline int handler::ha_read_first_row(uchar *buf, uint primary_key) +{ + int error= read_first_row(buf, primary_key); + if (!error) + update_rows_read(); + table->status=error ? STATUS_NOT_FOUND: 0; + return error; +} + +inline int handler::ha_write_tmp_row(uchar *buf) +{ + MYSQL_INSERT_ROW_START(table_share->db.str, table_share->table_name.str); + increment_statistics(&SSV::ha_tmp_write_count); + int error= write_row(buf); + MYSQL_INSERT_ROW_DONE(error); + return error; +} + +inline int handler::ha_update_tmp_row(const uchar *old_data, uchar *new_data) +{ + MYSQL_UPDATE_ROW_START(table_share->db.str, table_share->table_name.str); + increment_statistics(&SSV::ha_tmp_update_count); + int error= update_row(old_data, new_data); + MYSQL_UPDATE_ROW_DONE(error); + return error; +} + +extern pthread_attr_t *get_connection_attrib(void); + +#endif /* MYSQL_SERVER */ + +#endif /* SQL_CLASS_INCLUDED */ diff --git a/database/include/mysql/private/sql_connect.h b/database/include/mysql/private/sql_connect.h new file mode 100644 index 0000000..2b00c2d --- /dev/null +++ b/database/include/mysql/private/sql_connect.h @@ -0,0 +1,73 @@ +/* Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef SQL_CONNECT_INCLUDED +#define SQL_CONNECT_INCLUDED + +#include "my_sys.h" /* pthread_handler_t */ +#include "mysql_com.h" /* enum_server_command */ +#include "structs.h" +#include + +class THD; +typedef struct st_lex_user LEX_USER; +typedef struct user_conn USER_CONN; + +void init_max_user_conn(void); +void init_global_user_stats(void); +void init_global_table_stats(void); +void init_global_index_stats(void); +void init_global_client_stats(void); +void free_max_user_conn(void); +void free_global_user_stats(void); +void free_global_table_stats(void); +void free_global_index_stats(void); +void free_global_client_stats(void); + +pthread_handler_t handle_one_connection(void *arg); +void do_handle_one_connection(THD *thd_arg); +bool init_new_connection_handler_thread(); +void reset_mqh(LEX_USER *lu, bool get_them); +bool check_mqh(THD *thd, uint check_command); +void time_out_user_resource_limits(THD *thd, USER_CONN *uc); +#ifndef NO_EMBEDDED_ACCESS_CHECKS +void decrease_user_connections(USER_CONN *uc); +#else +#define decrease_user_connections(X) do { } while(0) /* nothing */ +#endif +bool thd_init_client_charset(THD *thd, uint cs_number); +bool setup_connection_thread_globals(THD *thd); +bool thd_prepare_connection(THD *thd); +bool thd_is_connection_alive(THD *thd); + +bool login_connection(THD *thd); +void prepare_new_connection_state(THD* thd); +void end_connection(THD *thd); +void update_global_user_stats(THD* thd, bool create_user, time_t now); +int get_or_create_user_conn(THD *thd, const char *user, + const char *host, const USER_RESOURCES *mqh); +int check_for_max_user_connections(THD *thd, USER_CONN *uc); + +extern HASH global_user_stats; +extern HASH global_client_stats; +extern HASH global_table_stats; +extern HASH global_index_stats; + +extern mysql_mutex_t LOCK_global_user_client_stats; +extern mysql_mutex_t LOCK_global_table_stats; +extern mysql_mutex_t LOCK_global_index_stats; +extern mysql_mutex_t LOCK_stats; + +#endif /* SQL_CONNECT_INCLUDED */ diff --git a/database/include/mysql/private/sql_const.h b/database/include/mysql/private/sql_const.h new file mode 100644 index 0000000..c3b03dd --- /dev/null +++ b/database/include/mysql/private/sql_const.h @@ -0,0 +1,277 @@ +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/** + @file + File containing constants that can be used throughout the server. + + @note This file shall not contain any includes of any kinds. +*/ + +#ifndef SQL_CONST_INCLUDED +#define SQL_CONST_INCLUDED + +#define LIBLEN FN_REFLEN-FN_LEN /* Max l{ngd p} dev */ +/* extra 4+4 bytes for slave tmp tables */ +#define MAX_DBKEY_LENGTH (NAME_LEN*2+1+1+4+4) +#define MAX_ALIAS_NAME 256 +#define MAX_FIELD_NAME 34 /* Max colum name length +2 */ +#define MAX_SYS_VAR_LENGTH 32 +#define MAX_KEY MAX_INDEXES /* Max used keys */ +#define MAX_REF_PARTS 32 /* Max parts used as ref */ +#define MAX_KEY_LENGTH 3072 /* max possible key */ +#if SIZEOF_OFF_T > 4 +#define MAX_REFLENGTH 8 /* Max length for record ref */ +#else +#define MAX_REFLENGTH 4 /* Max length for record ref */ +#endif +#define MAX_HOSTNAME 61 /* len+1 in mysql.user */ + +#define MAX_MBWIDTH 3 /* Max multibyte sequence */ +#define MAX_FIELD_CHARLENGTH 255 +/* + In MAX_FIELD_VARCHARLENGTH we reserve extra bytes for the overhead: + - 2 bytes for the length + - 1 byte for NULL bits + to avoid the "Row size too large" error for these three corner definitions: + CREATE TABLE t1 (c VARBINARY(65533)); + CREATE TABLE t1 (c VARBINARY(65534)); + CREATE TABLE t1 (c VARBINARY(65535)); + Like VARCHAR(65536), they will be converted to BLOB automatically + in non-sctict mode. +*/ +#define MAX_FIELD_VARCHARLENGTH (65535-2-1) +#define MAX_FIELD_BLOBLENGTH UINT_MAX32 /* cf field_blob::get_length() */ +#define CONVERT_IF_BIGGER_TO_BLOB 512 /* Threshold *in characters* */ + +/* Max column width +1 */ +#define MAX_FIELD_WIDTH (MAX_FIELD_CHARLENGTH*MAX_MBWIDTH+1) + +#define MAX_BIT_FIELD_LENGTH 64 /* Max length in bits for bit fields */ + +#define MAX_DATE_WIDTH 10 /* YYYY-MM-DD */ +#define MIN_TIME_WIDTH 10 /* -HHH:MM:SS */ +#define MAX_TIME_WIDTH 16 /* -DDDDDD HH:MM:SS */ +#define MAX_TIME_FULL_WIDTH 23 /* -DDDDDD HH:MM:SS.###### */ +#define MAX_DATETIME_FULL_WIDTH 26 /* YYYY-MM-DD HH:MM:SS.###### */ +#define MAX_DATETIME_WIDTH 19 /* YYYY-MM-DD HH:MM:SS */ +#define MAX_DATETIME_COMPRESSED_WIDTH 14 /* YYYYMMDDHHMMSS */ +#define MAX_DATETIME_PRECISION 6 + +#define MAX_TABLES (sizeof(table_map)*8-3) /* Max tables in join */ +#define PARAM_TABLE_BIT (((table_map) 1) << (sizeof(table_map)*8-3)) +#define OUTER_REF_TABLE_BIT (((table_map) 1) << (sizeof(table_map)*8-2)) +#define RAND_TABLE_BIT (((table_map) 1) << (sizeof(table_map)*8-1)) +#define PSEUDO_TABLE_BITS (PARAM_TABLE_BIT | OUTER_REF_TABLE_BIT | \ + RAND_TABLE_BIT) +#define CONNECT_STRING_MAXLEN 65535 /* stored in 2 bytes in .frm */ +#define MAX_FIELDS 4096 /* Limit in the .frm file */ +#define MAX_PARTITIONS 1024 + +#define MAX_SELECT_NESTING (sizeof(nesting_map)*8-1) + +#define MAX_SORT_MEMORY 2048*1024 +#define MIN_SORT_MEMORY 1024 + +/* Some portable defines */ + +#define portable_sizeof_char_ptr 8 +#define STRING_BUFFER_USUAL_SIZE 80 + +/* Memory allocated when parsing a statement / saving a statement */ +#define MEM_ROOT_BLOCK_SIZE 8192 +#define MEM_ROOT_PREALLOC 8192 +#define TRANS_MEM_ROOT_BLOCK_SIZE 4096 +#define TRANS_MEM_ROOT_PREALLOC 4096 + +#define DEFAULT_ERROR_COUNT 64 +#define EXTRA_RECORDS 10 /* Extra records in sort */ +#define SCROLL_EXTRA 5 /* Extra scroll-rows. */ +#define FIELD_NAME_USED ((uint) 32768) /* Bit set if fieldname used */ +#define FORM_NAME_USED ((uint) 16384) /* Bit set if formname used */ +#define FIELD_NR_MASK 16383 /* To get fieldnumber */ +#define FERR -1 /* Error from my_functions */ +#define CREATE_MODE 0 /* Default mode on new files */ +#define NAMES_SEP_CHAR 255 /* Char to sep. names */ + +#define READ_RECORD_BUFFER (uint) (IO_SIZE*8) /* Pointer_buffer_size */ +#define DISK_BUFFER_SIZE (uint) (IO_SIZE*16) /* Size of diskbuffer */ + +#define FRM_VER_TRUE_VARCHAR (FRM_VER+4) /* 10 */ + +/*************************************************************************** + Configuration parameters +****************************************************************************/ + +#define ACL_CACHE_SIZE 256 +#define MAX_PASSWORD_LENGTH 32 +#define HOST_CACHE_SIZE 128 +#define MAX_ACCEPT_RETRY 10 // Test accept this many times +#define MAX_FIELDS_BEFORE_HASH 32 +#define USER_VARS_HASH_SIZE 16 +#define TABLE_OPEN_CACHE_MIN 400 +#define TABLE_OPEN_CACHE_DEFAULT 400 +#define TABLE_DEF_CACHE_DEFAULT 400 +/** + We must have room for at least 400 table definitions in the table + cache, since otherwise there is no chance prepared + statements that use these many tables can work. + Prepared statements use table definition cache ids (table_map_id) + as table version identifiers. If the table definition + cache size is less than the number of tables used in a statement, + the contents of the table definition cache is guaranteed to rotate + between a prepare and execute. This leads to stable validation + errors. In future we shall use more stable version identifiers, + for now the only solution is to ensure that the table definition + cache can contain at least all tables of a given statement. +*/ +#define TABLE_DEF_CACHE_MIN 400 + +/* + Stack reservation. + Feel free to raise this by the smallest amount you can to get the + "execution_constants" test to pass. +*/ +#define STACK_MIN_SIZE 16000 // Abort if less stack during eval. + +#define STACK_MIN_SIZE_FOR_OPEN 1024*80 +#define STACK_BUFF_ALLOC 352 ///< For stack overrun checks +#ifndef MYSQLD_NET_RETRY_COUNT +#define MYSQLD_NET_RETRY_COUNT 10 ///< Abort read after this many int. +#endif + +#define QUERY_ALLOC_BLOCK_SIZE 8192 +#define QUERY_ALLOC_PREALLOC_SIZE 8192 +#define TRANS_ALLOC_BLOCK_SIZE 4096 +#define TRANS_ALLOC_PREALLOC_SIZE 4096 +#define RANGE_ALLOC_BLOCK_SIZE 4096 +#define ACL_ALLOC_BLOCK_SIZE 1024 +#define UDF_ALLOC_BLOCK_SIZE 1024 +#define TABLE_ALLOC_BLOCK_SIZE 1024 +#define WARN_ALLOC_BLOCK_SIZE 2048 +#define WARN_ALLOC_PREALLOC_SIZE 1024 + +/* + The following parameters is to decide when to use an extra cache to + optimise seeks when reading a big table in sorted order +*/ +#define MIN_FILE_LENGTH_TO_USE_ROW_CACHE (10L*1024*1024) +#define MIN_ROWS_TO_USE_TABLE_CACHE 100 +#define MIN_ROWS_TO_USE_BULK_INSERT 100 + +/** + The following is used to decide if MySQL should use table scanning + instead of reading with keys. The number says how many evaluation of the + WHERE clause is comparable to reading one extra row from a table. +*/ +#define TIME_FOR_COMPARE 5 // 5 compares == one read + +/** + Number of comparisons of table rowids equivalent to reading one row from a + table. +*/ +#define TIME_FOR_COMPARE_ROWID (TIME_FOR_COMPARE*100) + +/* cost1 is better that cost2 only if cost1 + COST_EPS < cost2 */ +#define COST_EPS 0.001 + +/* + For sequential disk seeks the cost formula is: + DISK_SEEK_BASE_COST + DISK_SEEK_PROP_COST * #blocks_to_skip + + The cost of average seek + DISK_SEEK_BASE_COST + DISK_SEEK_PROP_COST*BLOCKS_IN_AVG_SEEK =1.0. +*/ +#define DISK_SEEK_BASE_COST ((double)0.9) + +#define BLOCKS_IN_AVG_SEEK 128 + +#define DISK_SEEK_PROP_COST ((double)0.1/BLOCKS_IN_AVG_SEEK) + + +/** + Number of rows in a reference table when refereed through a not unique key. + This value is only used when we don't know anything about the key + distribution. +*/ +#define MATCHING_ROWS_IN_OTHER_TABLE 10 + +/* + Subquery materialization-related constants +*/ +#define HEAP_TEMPTABLE_LOOKUP_COST 0.05 +#define DISK_TEMPTABLE_LOOKUP_COST 1.0 + + +#define COST_MAX (DBL_MAX * (1.0 - DBL_EPSILON)) + +#define COST_ADD(c,d) (COST_MAX - (d) > (c) ? (c) + (d) : COST_MAX) + +#define COST_MULT(c,f) (COST_MAX / (f) > (c) ? (c) * (f) : COST_MAX) + + +#define MY_CHARSET_BIN_MB_MAXLEN 1 + +/** Don't pack string keys shorter than this (if PACK_KEYS=1 isn't used). */ +#define KEY_DEFAULT_PACK_LENGTH 8 + +/** Characters shown for the command in 'show processlist'. */ +#define PROCESS_LIST_WIDTH 100 +/* Characters shown for the command in 'information_schema.processlist' */ +#define PROCESS_LIST_INFO_WIDTH 65535 + +#define PRECISION_FOR_DOUBLE 53 +#define PRECISION_FOR_FLOAT 24 + +/* -[digits].E+## */ +#define MAX_FLOAT_STR_LENGTH (FLT_DIG + 6) +/* -[digits].E+### */ +#define MAX_DOUBLE_STR_LENGTH (DBL_DIG + 7) + +/* + Default time to wait before aborting a new client connection + that does not respond to "initial server greeting" timely +*/ +#define CONNECT_TIMEOUT 10 + +/* The following can also be changed from the command line */ +#define DEFAULT_CONCURRENCY 10 +#define DELAYED_LIMIT 100 /**< pause after xxx inserts */ +#define DELAYED_QUEUE_SIZE 1000 +#define DELAYED_WAIT_TIMEOUT 5*60 /**< Wait for delayed insert */ +#define MAX_CONNECT_ERRORS 10 ///< errors before disabling host + +#define LONG_TIMEOUT ((ulong) 3600L*24L*365L) + +/** + Maximum length of time zone name that we support (Time zone name is + char(64) in db). mysqlbinlog needs it. +*/ +#define MAX_TIME_ZONE_NAME_LENGTH (NAME_LEN + 1) + +#if defined(__WIN__) + +#define INTERRUPT_PRIOR -2 +#define CONNECT_PRIOR -1 +#define WAIT_PRIOR 0 +#define QUERY_PRIOR 2 +#else +#define INTERRUPT_PRIOR 10 +#define CONNECT_PRIOR 9 +#define WAIT_PRIOR 8 +#define QUERY_PRIOR 6 +#endif /* __WIN92__ */ + +#endif /* SQL_CONST_INCLUDED */ diff --git a/database/include/mysql/private/sql_crypt.h b/database/include/mysql/private/sql_crypt.h new file mode 100644 index 0000000..9630a18 --- /dev/null +++ b/database/include/mysql/private/sql_crypt.h @@ -0,0 +1,45 @@ +#ifndef SQL_CRYPT_INCLUDED +#define SQL_CRYPT_INCLUDED + +/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif + +#include "sql_list.h" /* Sql_alloc */ +#include "mysql_com.h" /* rand_struct */ + +class SQL_CRYPT :public Sql_alloc +{ + struct my_rnd_struct rand,org_rand; + char decode_buff[256],encode_buff[256]; + uint shift; + public: + SQL_CRYPT() {} + SQL_CRYPT(ulong *seed) + { + init(seed); + } + ~SQL_CRYPT() {} + void init(ulong *seed); + void reinit() { shift=0; rand=org_rand; } + void encode(char *str, uint length); + void decode(char *str, uint length); +}; + +#endif /* SQL_CRYPT_INCLUDED */ diff --git a/database/include/mysql/private/sql_cursor.h b/database/include/mysql/private/sql_cursor.h new file mode 100644 index 0000000..e07cb99 --- /dev/null +++ b/database/include/mysql/private/sql_cursor.h @@ -0,0 +1,66 @@ +/* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef _sql_cursor_h_ +#define _sql_cursor_h_ + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class interface */ +#endif + +#include "sql_class.h" /* Query_arena */ + +class JOIN; + +/** + @file + + Declarations for implementation of server side cursors. Only + read-only non-scrollable cursors are currently implemented. +*/ + +/** + Server_side_cursor -- an interface for materialized + implementation of cursors. All cursors are self-contained + (created in their own memory root). For that reason they must + be deleted only using a pointer to Server_side_cursor, not to + its base class. +*/ + +class Server_side_cursor: protected Query_arena, public Sql_alloc +{ +protected: + /** Row destination used for fetch */ + select_result *result; +public: + Server_side_cursor(MEM_ROOT *mem_root_arg, select_result *result_arg) + :Query_arena(mem_root_arg, STMT_INITIALIZED), result(result_arg) + {} + + virtual bool is_open() const= 0; + + virtual int open(JOIN *top_level_join)= 0; + virtual void fetch(ulong num_rows)= 0; + virtual void close()= 0; + virtual ~Server_side_cursor(); + + static void operator delete(void *ptr, size_t size); +}; + + +int mysql_open_cursor(THD *thd, select_result *result, + Server_side_cursor **res); + +#endif /* _sql_cusor_h_ */ diff --git a/database/include/mysql/private/sql_db.h b/database/include/mysql/private/sql_db.h new file mode 100644 index 0000000..70c1203 --- /dev/null +++ b/database/include/mysql/private/sql_db.h @@ -0,0 +1,48 @@ +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef SQL_DB_INCLUDED +#define SQL_DB_INCLUDED + +#include "hash.h" /* HASH */ + +class THD; +typedef struct st_ha_create_information HA_CREATE_INFO; + +int mysql_create_db(THD *thd, char *db, HA_CREATE_INFO *create, bool silent); +bool mysql_alter_db(THD *thd, const char *db, HA_CREATE_INFO *create); +bool mysql_rm_db(THD *thd,char *db,bool if_exists, bool silent); +bool mysql_upgrade_db(THD *thd, LEX_STRING *old_db); +bool mysql_change_db(THD *thd, const LEX_STRING *new_db_name, + bool force_switch); + +bool mysql_opt_change_db(THD *thd, + const LEX_STRING *new_db_name, + LEX_STRING *saved_db_name, + bool force_switch, + bool *cur_db_changed); +bool my_dboptions_cache_init(void); +void my_dboptions_cache_free(void); +bool check_db_dir_existence(const char *db_name); +bool load_db_opt(THD *thd, const char *path, HA_CREATE_INFO *create); +bool load_db_opt_by_name(THD *thd, const char *db_name, + HA_CREATE_INFO *db_create_info); +CHARSET_INFO *get_default_db_collation(THD *thd, const char *db_name); +bool my_dbopt_init(void); +void my_dbopt_cleanup(void); + +#define MY_DB_OPT_FILE "db.opt" + +#endif /* SQL_DB_INCLUDED */ diff --git a/database/include/mysql/private/sql_delete.h b/database/include/mysql/private/sql_delete.h new file mode 100644 index 0000000..75963ac --- /dev/null +++ b/database/include/mysql/private/sql_delete.h @@ -0,0 +1,32 @@ +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef SQL_DELETE_INCLUDED +#define SQL_DELETE_INCLUDED + +#include "my_base.h" /* ha_rows */ + +class THD; +struct TABLE_LIST; +class Item; + +typedef class Item COND; +template class SQL_I_List; + +int mysql_prepare_delete(THD *thd, TABLE_LIST *table_list, Item **conds); +bool mysql_delete(THD *thd, TABLE_LIST *table_list, COND *conds, + SQL_I_List *order, ha_rows rows, ulonglong options); + +#endif /* SQL_DELETE_INCLUDED */ diff --git a/database/include/mysql/private/sql_derived.h b/database/include/mysql/private/sql_derived.h new file mode 100644 index 0000000..ac575c7 --- /dev/null +++ b/database/include/mysql/private/sql_derived.h @@ -0,0 +1,38 @@ +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef SQL_DERIVED_INCLUDED +#define SQL_DERIVED_INCLUDED + +struct TABLE_LIST; +class THD; +struct LEX; + +bool mysql_handle_derived(LEX *lex, uint phases); +bool mysql_handle_single_derived(LEX *lex, TABLE_LIST *derived, uint phases); + +/** + Cleans up the SELECT_LEX_UNIT for the derived table (if any). + + @param thd Thread handler + @param lex LEX for this thread + @param derived TABLE_LIST for the derived table + + @retval false Success + @retval true Failure +*/ +bool mysql_derived_cleanup(THD *thd, LEX *lex, TABLE_LIST *derived); + +#endif /* SQL_DERIVED_INCLUDED */ diff --git a/database/include/mysql/private/sql_do.h b/database/include/mysql/private/sql_do.h new file mode 100644 index 0000000..5280a4a --- /dev/null +++ b/database/include/mysql/private/sql_do.h @@ -0,0 +1,26 @@ +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef SQL_DO_INCLUDED +#define SQL_DO_INCLUDED + +#include "sql_list.h" /* List */ + +class THD; +class Item; + +bool mysql_do(THD *thd, List &values); + +#endif /* SQL_DO_INCLUDED */ diff --git a/database/include/mysql/private/sql_error.h b/database/include/mysql/private/sql_error.h new file mode 100644 index 0000000..e99a2bd --- /dev/null +++ b/database/include/mysql/private/sql_error.h @@ -0,0 +1,606 @@ +/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef SQL_ERROR_H +#define SQL_ERROR_H + +#include "sql_list.h" /* Sql_alloc, MEM_ROOT */ +#include "m_string.h" /* LEX_STRING */ +#include "sql_type_int.h" // Longlong_hybrid +#include "sql_string.h" /* String */ +#include "mysql_com.h" /* MYSQL_ERRMSG_SIZE */ + +class THD; + +/** + Stores status of the currently executed statement. + Cleared at the beginning of the statement, and then + can hold either OK, ERROR, or EOF status. + Can not be assigned twice per statement. +*/ + +class Diagnostics_area +{ +public: + enum enum_diagnostics_status + { + /** The area is cleared at start of a statement. */ + DA_EMPTY= 0, + /** Set whenever one calls my_ok(). */ + DA_OK, + /** Set whenever one calls my_eof(). */ + DA_EOF, + /** Set whenever one calls my_error() or my_message(). */ + DA_ERROR, + /** Set in case of a custom response, such as one from COM_STMT_PREPARE. */ + DA_DISABLED + }; + /** True if status information is sent to the client. */ + bool is_sent; + /** Set to make set_error_status after set_{ok,eof}_status possible. */ + bool can_overwrite_status; + + void set_ok_status(THD *thd, ulonglong affected_rows_arg, + ulonglong last_insert_id_arg, + const char *message); + void set_eof_status(THD *thd); + void set_error_status(THD *thd, uint sql_errno_arg, const char *message_arg, + const char *sqlstate); + + void disable_status(); + + void reset_diagnostics_area(); + + bool is_set() const { return m_status != DA_EMPTY; } + bool is_error() const { return m_status == DA_ERROR; } + bool is_eof() const { return m_status == DA_EOF; } + bool is_ok() const { return m_status == DA_OK; } + bool is_disabled() const { return m_status == DA_DISABLED; } + enum_diagnostics_status status() const { return m_status; } + + const char *message() const + { DBUG_ASSERT(m_status == DA_ERROR || m_status == DA_OK); return m_message; } + + uint sql_errno() const + { DBUG_ASSERT(m_status == DA_ERROR); return m_sql_errno; } + + const char* get_sqlstate() const + { DBUG_ASSERT(m_status == DA_ERROR); return m_sqlstate; } + + ulonglong affected_rows() const + { DBUG_ASSERT(m_status == DA_OK); return m_affected_rows; } + + ulonglong last_insert_id() const + { DBUG_ASSERT(m_status == DA_OK); return m_last_insert_id; } + + uint statement_warn_count() const + { + DBUG_ASSERT(m_status == DA_OK || m_status == DA_EOF); + return m_statement_warn_count; + } + + /* Used to count any warnings pushed after calling set_ok_status(). */ + void increment_warning() + { + if (m_status != DA_EMPTY) + m_statement_warn_count++; + } + + Diagnostics_area() { reset_diagnostics_area(); } + +private: + /** Message buffer. Can be used by OK or ERROR status. */ + char m_message[MYSQL_ERRMSG_SIZE]; + /** + SQL error number. One of ER_ codes from share/errmsg.txt. + Set by set_error_status. + */ + uint m_sql_errno; + + char m_sqlstate[SQLSTATE_LENGTH+1]; + + /** + The number of rows affected by the last statement. This is + semantically close to thd->row_count_func, but has a different + life cycle. thd->row_count_func stores the value returned by + function ROW_COUNT() and is cleared only by statements that + update its value, such as INSERT, UPDATE, DELETE and few others. + This member is cleared at the beginning of the next statement. + + We could possibly merge the two, but life cycle of thd->row_count_func + can not be changed. + */ + ulonglong m_affected_rows; + /** + Similarly to the previous member, this is a replacement of + thd->first_successful_insert_id_in_prev_stmt, which is used + to implement LAST_INSERT_ID(). + */ + ulonglong m_last_insert_id; + /** + Number of warnings of this last statement. May differ from + the number of warnings returned by SHOW WARNINGS e.g. in case + the statement doesn't clear the warnings, and doesn't generate + them. + */ + uint m_statement_warn_count; + enum_diagnostics_status m_status; +}; + +/////////////////////////////////////////////////////////////////////////// + +/** + Representation of a SQL condition. + A SQL condition can be a completion condition (note, warning), + or an exception condition (error, not found). + @note This class is named MYSQL_ERROR instead of SQL_condition for + historical reasons, to facilitate merging code with previous releases. +*/ +class MYSQL_ERROR : public Sql_alloc +{ +public: + /* + Enumeration value describing the severity of the error. + + Note that these enumeration values must correspond to the indices + of the sql_print_message_handlers array. + */ + enum enum_warning_level + { WARN_LEVEL_NOTE, WARN_LEVEL_WARN, WARN_LEVEL_ERROR, WARN_LEVEL_END}; + /** + Get the MESSAGE_TEXT of this condition. + @return the message text. + */ + const char* get_message_text() const; + + /** + Get the MESSAGE_OCTET_LENGTH of this condition. + @return the length in bytes of the message text. + */ + int get_message_octet_length() const; + + /** + Get the SQLSTATE of this condition. + @return the sql state. + */ + const char* get_sqlstate() const + { return m_returned_sqlstate; } + + /** + Get the SQL_ERRNO of this condition. + @return the sql error number condition item. + */ + uint get_sql_errno() const + { return m_sql_errno; } + + /** + Get the error level of this condition. + @return the error level condition item. + */ + MYSQL_ERROR::enum_warning_level get_level() const + { return m_level; } + + /** check if condition was handled by a condition handler */ + bool handled() const + { + return m_handled; + } + /** mark that condition was handled */ + void mark_handled() + { + m_handled= 1; + } + +private: + /* + The interface of MYSQL_ERROR is mostly private, by design, + so that only the following code: + - various raise_error() or raise_warning() methods in class THD, + - the implementation of SIGNAL / RESIGNAL + - catch / re-throw of SQL conditions in stored procedures (sp_rcontext) + is allowed to create / modify a SQL condition. + Enforcing this policy prevents confusion, since the only public + interface available to the rest of the server implementation + is the interface offered by the THD methods (THD::raise_error()), + which should be used. + */ + friend class THD; + friend class Warning_info; + friend class Signal_common; + friend class Signal_statement; + friend class Resignal_statement; + friend class sp_rcontext; + + /** + Default constructor. + This constructor is usefull when allocating arrays. + Note that the init() method should be called to complete the MYSQL_ERROR. + */ + MYSQL_ERROR(); + + /** + Complete the MYSQL_ERROR initialisation. + @param mem_root The memory root to use for the condition items + of this condition + */ + void init(MEM_ROOT *mem_root); + + /** + Constructor. + @param mem_root The memory root to use for the condition items + of this condition + */ + MYSQL_ERROR(MEM_ROOT *mem_root); + + /** Destructor. */ + ~MYSQL_ERROR() + {} + + /** + Copy optional condition items attributes. + @param cond the condition to copy. + */ + void copy_opt_attributes(const MYSQL_ERROR *cond); + + /** + Set this condition area with a fixed message text. + @param thd the current thread. + @param code the error number for this condition. + @param str the message text for this condition. + @param level the error level for this condition. + @param MyFlags additional flags. + */ + void set(uint sql_errno, const char* sqlstate, + MYSQL_ERROR::enum_warning_level level, + const char* msg); + + /** + Set the condition message test. + @param str Message text, expressed in the character set derived from + the server --language option + */ + void set_builtin_message_text(const char* str); + + /** Set the SQLSTATE of this condition. */ + void set_sqlstate(const char* sqlstate); + + /** + Clear this SQL condition. + */ + void clear(); + +private: + /** SQL CLASS_ORIGIN condition item. */ + String m_class_origin; + + /** SQL SUBCLASS_ORIGIN condition item. */ + String m_subclass_origin; + + /** SQL CONSTRAINT_CATALOG condition item. */ + String m_constraint_catalog; + + /** SQL CONSTRAINT_SCHEMA condition item. */ + String m_constraint_schema; + + /** SQL CONSTRAINT_NAME condition item. */ + String m_constraint_name; + + /** SQL CATALOG_NAME condition item. */ + String m_catalog_name; + + /** SQL SCHEMA_NAME condition item. */ + String m_schema_name; + + /** SQL TABLE_NAME condition item. */ + String m_table_name; + + /** SQL COLUMN_NAME condition item. */ + String m_column_name; + + /** SQL CURSOR_NAME condition item. */ + String m_cursor_name; + + /** Message text, expressed in the character set implied by --language. */ + String m_message_text; + + /** MySQL extension, MYSQL_ERRNO condition item. */ + uint m_sql_errno; + + /** Marker if error/warning was handled by a continue handler */ + bool m_handled; + + /** + SQL RETURNED_SQLSTATE condition item. + This member is always NUL terminated. + */ + char m_returned_sqlstate[SQLSTATE_LENGTH+1]; + + /** Severity (error, warning, note) of this condition. */ + MYSQL_ERROR::enum_warning_level m_level; + + /** Memory root to use to hold condition item values. */ + MEM_ROOT *m_mem_root; +}; + +/////////////////////////////////////////////////////////////////////////// + +/** + Information about warnings of the current connection. +*/ + +class Warning_info +{ + /** A memory root to allocate warnings and errors */ + MEM_ROOT m_warn_root; + + /** List of warnings of all severities (levels). */ + List m_warn_list; + + /** A break down of the number of warnings per severity (level). */ + uint m_warn_count[(uint) MYSQL_ERROR::WARN_LEVEL_END]; + + /** + The number of warnings of the current statement. Warning_info + life cycle differs from statement life cycle -- it may span + multiple statements. In that case we get + m_statement_warn_count 0, whereas m_warn_list is not empty. + */ + uint m_statement_warn_count; + + /* + Row counter, to print in errors and warnings. Not increased in + create_sort_index(); may differ from examined_row_count. + */ + ulong m_current_row_for_warning; + + /** Used to optionally clear warnings only once per statement. */ + ulonglong m_warn_id; + + /** Indicates if push_warning() allows unlimited number of warnings. */ + bool m_allow_unlimited_warnings; + +private: + Warning_info(const Warning_info &rhs); /* Not implemented */ + Warning_info& operator=(const Warning_info &rhs); /* Not implemented */ +public: + + Warning_info(ulonglong warn_id_arg, bool allow_unlimited_warnings); + ~Warning_info(); + + /** + Reset the warning information. Clear all warnings, + the number of warnings, reset current row counter + to point to the first row. + */ + void clear_warning_info(ulonglong warn_id_arg); + /** + Only clear warning info if haven't yet done that already + for the current query. Allows to be issued at any time + during the query, without risk of clearing some warnings + that have been generated by the current statement. + + @todo: This is a sign of sloppy coding. Instead we need to + designate one place in a statement life cycle where we call + clear_warning_info(). + */ + void opt_clear_warning_info(ulonglong query_id) + { + if (query_id != m_warn_id) + clear_warning_info(query_id); + } + + void append_warning_info(THD *thd, Warning_info *source) + { + append_warnings(thd, & source->warn_list()); + } + + /** + Concatenate the list of warnings. + It's considered tolerable to lose a warning. + */ + void append_warnings(THD *thd, List *src) + { + MYSQL_ERROR *err; + List_iterator_fast it(*src); + /* + Don't use ::push_warning() to avoid invocation of condition + handlers or escalation of warnings to errors. + */ + while ((err= it++)) + Warning_info::push_warning(thd, err); + } + + /** + Conditional merge of related warning information areas. + */ + void merge_with_routine_info(THD *thd, Warning_info *source); + + /** + Reset between two COM_ commands. Warnings are preserved + between commands, but statement_warn_count indicates + the number of warnings of this particular statement only. + */ + void reset_for_next_command() { m_statement_warn_count= 0; } + + /** + Used for @@warning_count system variable, which prints + the number of rows returned by SHOW WARNINGS. + */ + ulong warn_count() const + { + /* + This may be higher than warn_list.elements if we have + had more warnings than thd->variables.max_error_count. + */ + return (m_warn_count[(uint) MYSQL_ERROR::WARN_LEVEL_NOTE] + + m_warn_count[(uint) MYSQL_ERROR::WARN_LEVEL_ERROR] + + m_warn_count[(uint) MYSQL_ERROR::WARN_LEVEL_WARN]); + } + + /** + This is for iteration purposes. We return a non-constant reference + since List doesn't have constant iterators. + */ + List &warn_list() { return m_warn_list; } + + /** + The number of errors, or number of rows returned by SHOW ERRORS, + also the value of session variable @@error_count. + */ + ulong error_count() const + { + return m_warn_count[(uint) MYSQL_ERROR::WARN_LEVEL_ERROR]; + } + + /** Id of the warning information area. */ + ulonglong warn_id() const { return m_warn_id; } + + /** Do we have any errors and warnings that we can *show*? */ + bool is_empty() const { return m_warn_list.elements == 0; } + + /** Increment the current row counter to point at the next row. */ + void inc_current_row_for_warning() { m_current_row_for_warning++; } + /** Reset the current row counter. Start counting from the first row. */ + void reset_current_row_for_warning() { m_current_row_for_warning= 1; } + /** Return the current counter value. */ + ulong current_row_for_warning() const { return m_current_row_for_warning; } + + ulong statement_warn_count() const { return m_statement_warn_count; } + + /** Add a new condition to the current list. */ + MYSQL_ERROR *push_warning(THD *thd, + uint sql_errno, const char* sqlstate, + MYSQL_ERROR::enum_warning_level level, + const char* msg); + + /** Add a new condition to the current list. */ + MYSQL_ERROR *push_warning(THD *thd, const MYSQL_ERROR *sql_condition); + + /** + Set the read only status for this statement area. + This is a privileged operation, reserved for the implementation of + diagnostics related statements, to enforce that the statement area is + left untouched during execution. + The diagnostics statements are: + - SHOW WARNINGS + - SHOW ERRORS + - GET DIAGNOSTICS + @param read_only the read only property to set + */ + void set_read_only(bool read_only) + { m_read_only= read_only; } + + /** + Read only status. + @return the read only property + */ + bool is_read_only() const + { return m_read_only; } + +private: + /** Read only status. */ + bool m_read_only; + + friend class Resignal_statement; +}; + +extern char *err_conv(char *buff, uint to_length, const char *from, + uint from_length, CHARSET_INFO *from_cs); + +class ErrConv +{ +protected: + mutable char err_buffer[MYSQL_ERRMSG_SIZE]; +public: + ErrConv() {} + virtual ~ErrConv() {} + virtual const char *ptr() const = 0; +}; + +class ErrConvString : public ErrConv +{ + const char *str; + size_t len; + CHARSET_INFO *cs; +public: + ErrConvString(const char *str_arg, size_t len_arg, CHARSET_INFO *cs_arg) + : ErrConv(), str(str_arg), len(len_arg), cs(cs_arg) {} + ErrConvString(String *s) + : ErrConv(), str(s->ptr()), len(s->length()), cs(s->charset()) {} + const char *ptr() const + { return err_conv(err_buffer, sizeof(err_buffer), str, len, cs); } +}; + +class ErrConvInteger : public ErrConv, public Longlong_hybrid +{ +public: + ErrConvInteger(longlong num_arg, bool unsigned_flag= false) : + ErrConv(), Longlong_hybrid(num_arg, unsigned_flag) {} + const char *ptr() const + { + return m_unsigned ? ullstr(m_value, err_buffer) : + llstr(m_value, err_buffer); + } +}; + +class ErrConvDouble: public ErrConv +{ + double num; +public: + ErrConvDouble(double num_arg) : ErrConv(), num(num_arg) {} + const char *ptr() const + { + my_gcvt(num, MY_GCVT_ARG_DOUBLE, sizeof(err_buffer), err_buffer, 0); + return err_buffer; + } +}; + +class ErrConvTime : public ErrConv +{ + const MYSQL_TIME *ltime; +public: + ErrConvTime(const MYSQL_TIME *ltime_arg) : ErrConv(), ltime(ltime_arg) {} + const char *ptr() const + { + my_TIME_to_str(ltime, err_buffer, AUTO_SEC_PART_DIGITS); + return err_buffer; + } +}; + +class ErrConvDecimal : public ErrConv +{ + const decimal_t *d; +public: + ErrConvDecimal(const decimal_t *d_arg) : ErrConv(), d(d_arg) {} + const char *ptr() const + { + int len= sizeof(err_buffer); + decimal2string(d, err_buffer, &len, 0, 0, ' '); + return err_buffer; + } +}; + +void push_warning(THD *thd, MYSQL_ERROR::enum_warning_level level, + uint code, const char *msg); +void push_warning_printf(THD *thd, MYSQL_ERROR::enum_warning_level level, + uint code, const char *format, ...); +bool mysqld_show_warnings(THD *thd, ulong levels_to_show); +uint32 convert_error_message(char *to, uint32 to_length, CHARSET_INFO *to_cs, + const char *from, uint32 from_length, + CHARSET_INFO *from_cs, uint *errors); + +extern const LEX_STRING warning_level_names[]; + +#endif // SQL_ERROR_H diff --git a/database/include/mysql/private/sql_expression_cache.h b/database/include/mysql/private/sql_expression_cache.h new file mode 100644 index 0000000..15fb9d8 --- /dev/null +++ b/database/include/mysql/private/sql_expression_cache.h @@ -0,0 +1,111 @@ +/* + Copyright (c) 2010, 2011, Monty Program Ab + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef SQL_EXPRESSION_CACHE_INCLUDED +#define SQL_EXPRESSION_CACHE_INCLUDED + +#include "sql_select.h" + +/** + Interface for expression cache + + @note + Parameters of an expression cache interface are set on the creation of the + cache. They are passed when a cache object of the implementation class is + constructed. That's why they are not visible in this interface. +*/ + +extern ulong subquery_cache_miss, subquery_cache_hit; + +class Expression_cache :public Sql_alloc +{ +public: + enum result {ERROR, HIT, MISS}; + + Expression_cache(){}; + virtual ~Expression_cache() {}; + /** + Shall check the presence of expression value in the cache for a given + set of values of the expression parameters. Return the result of the + expression if it's found in the cache. + */ + virtual result check_value(Item **value)= 0; + /** + Shall put the value of an expression for given set of its parameters + into the expression cache + */ + virtual my_bool put_value(Item *value)= 0; + + /** + Print cache parameters + */ + virtual void print(String *str, enum_query_type query_type)= 0; + + /** + Is this cache initialized + */ + virtual bool is_inited()= 0; + /** + Initialize this cache + */ + virtual void init()= 0; +}; + +struct st_table_ref; +struct st_join_table; +class Item_field; + + +/** + Implementation of expression cache over a temporary table +*/ + +class Expression_cache_tmptable :public Expression_cache +{ +public: + Expression_cache_tmptable(THD *thd, List &dependants, Item *value); + virtual ~Expression_cache_tmptable(); + virtual result check_value(Item **value); + virtual my_bool put_value(Item *value); + + void print(String *str, enum_query_type query_type); + bool is_inited() { return inited; }; + void init(); + +private: + void disable_cache(); + + /* tmp table parameters */ + TMP_TABLE_PARAM cache_table_param; + /* temporary table to store this cache */ + TABLE *cache_table; + /* Thread handle for the temporary table */ + THD *table_thd; + /* TABLE_REF for index lookup */ + struct st_table_ref ref; + /* Cached result */ + Item_field *cached_result; + /* List of parameter items */ + List &items; + /* Value Item example */ + Item *val; + /* hit/miss counters */ + uint hit, miss; + /* Set on if the object has been succesfully initialized with init() */ + bool inited; +}; + +#endif /* SQL_EXPRESSION_CACHE_INCLUDED */ diff --git a/database/include/mysql/private/sql_handler.h b/database/include/mysql/private/sql_handler.h new file mode 100644 index 0000000..9f0ef7b --- /dev/null +++ b/database/include/mysql/private/sql_handler.h @@ -0,0 +1,83 @@ +#ifndef SQL_HANDLER_INCLUDED +#define SQL_HANDLER_INCLUDED +/* Copyright (c) 2006, 2015, Oracle and/or its affiliates. + Copyright (C) 2010, 2015, MariaDB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif + +#include "sql_class.h" /* enum_ha_read_mode */ +#include "my_base.h" /* ha_rkey_function, ha_rows */ +#include "sql_list.h" /* List */ + +/* Open handlers are stored here */ + +class SQL_HANDLER { +public: + TABLE *table; + List fields; /* Fields, set on open */ + THD *thd; + LEX_STRING handler_name; + LEX_STRING db; + LEX_STRING table_name; + MEM_ROOT mem_root; + MYSQL_LOCK *lock; + MDL_request mdl_request; + + key_part_map keypart_map; + int keyno; /* Used key */ + uint key_len; + enum enum_ha_read_modes mode; + + /* This is only used when deleting many handler objects */ + SQL_HANDLER *next; + + Query_arena arena; + char *base_data; + SQL_HANDLER(THD *thd_arg) : + thd(thd_arg), arena(&mem_root, Query_arena::STMT_INITIALIZED) + { init(); clear_alloc_root(&mem_root); base_data= 0; } + void init() + { + keyno= -1; + table= 0; + lock= 0; + mdl_request.ticket= 0; + } + void reset(); + + ~SQL_HANDLER(); +}; + +class THD; +struct TABLE_LIST; + +bool mysql_ha_open(THD *thd, TABLE_LIST *tables, SQL_HANDLER *reopen); +bool mysql_ha_close(THD *thd, TABLE_LIST *tables); +bool mysql_ha_read(THD *, TABLE_LIST *,enum enum_ha_read_modes,char *, + List *,enum ha_rkey_function,Item *,ha_rows,ha_rows); +void mysql_ha_flush(THD *thd); +void mysql_ha_flush_tables(THD *thd, TABLE_LIST *all_tables); +void mysql_ha_rm_tables(THD *thd, TABLE_LIST *tables); +void mysql_ha_cleanup(THD *thd); +void mysql_ha_set_explicit_lock_duration(THD *thd); +void mysql_ha_rm_temporary_tables(THD *thd); + +SQL_HANDLER *mysql_ha_read_prepare(THD *thd, TABLE_LIST *tables, + enum enum_ha_read_modes mode, char *keyname, + List *key_expr, Item *cond); +#endif diff --git a/database/include/mysql/private/sql_help.h b/database/include/mysql/private/sql_help.h new file mode 100644 index 0000000..cb3314b --- /dev/null +++ b/database/include/mysql/private/sql_help.h @@ -0,0 +1,28 @@ +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef SQL_HELP_INCLUDED +#define SQL_HELP_INCLUDED + +class THD; + + +/* + Function prototypes +*/ + +bool mysqld_help (THD *thd, const char *text); + +#endif /* SQL_HELP_INCLUDED */ diff --git a/database/include/mysql/private/sql_hset.h b/database/include/mysql/private/sql_hset.h new file mode 100644 index 0000000..6437575 --- /dev/null +++ b/database/include/mysql/private/sql_hset.h @@ -0,0 +1,97 @@ +#ifndef SQL_HSET_INCLUDED +#define SQL_HSET_INCLUDED +/* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +#include "my_global.h" +#include "hash.h" + + +/** + A type-safe wrapper around mysys HASH. +*/ + +template +class Hash_set +{ +public: + typedef T Value_type; + enum { START_SIZE= 8 }; + /** + Constructs an empty hash. Does not allocate memory, it is done upon + the first insert. Thus does not cause or return errors. + */ + Hash_set() + { + my_hash_clear(&m_hash); + } + /** + Destroy the hash by freeing the buckets table. Does + not call destructors for the elements. + */ + ~Hash_set() + { + my_hash_free(&m_hash); + } + /** + Insert a single value into a hash. Does not tell whether + the value was inserted -- if an identical value existed, + it is not replaced. + + @retval TRUE Out of memory. + @retval FALSE OK. The value either was inserted or existed + in the hash. + */ + bool insert(T *value) + { + my_hash_init_opt(&m_hash, &my_charset_bin, START_SIZE, 0, 0, K, 0, MYF(0)); + size_t key_len; + const uchar *key= K(reinterpret_cast(value), &key_len, FALSE); + if (my_hash_search(&m_hash, key, key_len) == NULL) + return my_hash_insert(&m_hash, reinterpret_cast(value)); + return FALSE; + } + /** Is this hash set empty? */ + bool is_empty() const { return m_hash.records == 0; } + /** Returns the number of unique elements. */ + size_t size() const { return static_cast(m_hash.records); } + /** An iterator over hash elements. Is not insert-stable. */ + class Iterator + { + public: + Iterator(Hash_set &hash_set) + : m_hash(&hash_set.m_hash), + m_idx(0) + {} + /** + Return the current element and reposition the iterator to the next + element. + */ + inline T *operator++(int) + { + if (m_idx < m_hash->records) + return reinterpret_cast(my_hash_element(m_hash, m_idx++)); + return NULL; + } + void rewind() { m_idx= 0; } + private: + HASH *m_hash; + uint m_idx; + }; +private: + HASH m_hash; +}; + +#endif // SQL_HSET_INCLUDED diff --git a/database/include/mysql/private/sql_insert.h b/database/include/mysql/private/sql_insert.h new file mode 100644 index 0000000..a1831ec --- /dev/null +++ b/database/include/mysql/private/sql_insert.h @@ -0,0 +1,49 @@ +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef SQL_INSERT_INCLUDED +#define SQL_INSERT_INCLUDED + +#include "sql_class.h" /* enum_duplicates */ +#include "sql_list.h" + +/* Instead of including sql_lex.h we add this typedef here */ +typedef List List_item; +typedef struct st_copy_info COPY_INFO; + +bool mysql_prepare_insert(THD *thd, TABLE_LIST *table_list, TABLE *table, + List &fields, List_item *values, + List &update_fields, + List &update_values, enum_duplicates duplic, + COND **where, bool select_insert, + bool check_fields, bool abort_on_warning); +bool mysql_insert(THD *thd,TABLE_LIST *table,List &fields, + List &values, List &update_fields, + List &update_values, enum_duplicates flag, + bool ignore); +void upgrade_lock_type_for_insert(THD *thd, thr_lock_type *lock_type, + enum_duplicates duplic, + bool is_multi_insert); +int check_that_all_fields_are_given_values(THD *thd, TABLE *entry, + TABLE_LIST *table_list); +void prepare_triggers_for_insert_stmt(TABLE *table); +int write_record(THD *thd, TABLE *table, COPY_INFO *info); +void kill_delayed_threads(void); + +#ifdef EMBEDDED_LIBRARY +inline void kill_delayed_threads(void) {} +#endif + +#endif /* SQL_INSERT_INCLUDED */ diff --git a/database/include/mysql/private/sql_join_cache.h b/database/include/mysql/private/sql_join_cache.h new file mode 100644 index 0000000..10a8c5f --- /dev/null +++ b/database/include/mysql/private/sql_join_cache.h @@ -0,0 +1,1430 @@ +/* + Copyright (c) 2011, 2012, Monty Program Ab + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* + This file contains declarations for implementations + of block based join algorithms +*/ + +#define JOIN_CACHE_INCREMENTAL_BIT 1 +#define JOIN_CACHE_HASHED_BIT 2 +#define JOIN_CACHE_BKA_BIT 4 + +/* + Categories of data fields of variable length written into join cache buffers. + The value of any of these fields is written into cache together with the + prepended length of the value. +*/ +#define CACHE_BLOB 1 /* blob field */ +#define CACHE_STRIPPED 2 /* field stripped of trailing spaces */ +#define CACHE_VARSTR1 3 /* short string value (length takes 1 byte) */ +#define CACHE_VARSTR2 4 /* long string value (length takes 2 bytes) */ +#define CACHE_ROWID 5 /* ROWID field */ + +/* + The CACHE_FIELD structure used to describe fields of records that + are written into a join cache buffer from record buffers and backward. +*/ +typedef struct st_cache_field { + uchar *str; /**< buffer from/to where the field is to be copied */ + uint length; /**< maximal number of bytes to be copied from/to str */ + /* + Field object for the moved field + (0 - for a flag field, see JOIN_CACHE::create_flag_fields). + */ + Field *field; + uint type; /**< category of the of the copied field (CACHE_BLOB et al.) */ + /* + The number of the record offset value for the field in the sequence + of offsets placed after the last field of the record. These + offset values are used to access fields referred to from other caches. + If the value is 0 then no offset for the field is saved in the + trailing sequence of offsets. + */ + uint referenced_field_no; + /* The remaining structure fields are used as containers for temp values */ + uint blob_length; /**< length of the blob to be copied */ + uint offset; /**< field offset to be saved in cache buffer */ +} CACHE_FIELD; + + +class JOIN_TAB_SCAN; + + +/* + JOIN_CACHE is the base class to support the implementations of + - Block Nested Loop (BNL) Join Algorithm, + - Block Nested Loop Hash (BNLH) Join Algorithm, + - Batched Key Access (BKA) Join Algorithm. + The first algorithm is supported by the derived class JOIN_CACHE_BNL, + the second algorithm is supported by the derived class JOIN_CACHE_BNLH, + while the third algorithm is implemented in two variant supported by + the classes JOIN_CACHE_BKA and JOIN_CACHE_BKAH. + These three algorithms have a lot in common. Each of them first accumulates + the records of the left join operand in a join buffer and then searches for + matching rows of the second operand for all accumulated records. + For the first two algorithms this strategy saves on logical I/O operations: + the entire set of records from the join buffer requires only one look-through + of the records provided by the second operand. + For the third algorithm the accumulation of records allows to optimize + fetching rows of the second operand from disk for some engines (MyISAM, + InnoDB), or to minimize the number of round-trips between the Server and + the engine nodes (NDB Cluster). +*/ + +class JOIN_CACHE :public Sql_alloc +{ + +private: + + /* Size of the offset of a record from the cache */ + uint size_of_rec_ofs; + /* Size of the length of a record in the cache */ + uint size_of_rec_len; + /* Size of the offset of a field within a record in the cache */ + uint size_of_fld_ofs; + +protected: + + /* 3 functions below actually do not use the hidden parameter 'this' */ + + /* Calculate the number of bytes used to store an offset value */ + uint offset_size(uint len) + { return (len < 256 ? 1 : len < 256*256 ? 2 : 4); } + + /* Get the offset value that takes ofs_sz bytes at the position ptr */ + ulong get_offset(uint ofs_sz, uchar *ptr) + { + switch (ofs_sz) { + case 1: return uint(*ptr); + case 2: return uint2korr(ptr); + case 4: return uint4korr(ptr); + } + return 0; + } + + /* Set the offset value ofs that takes ofs_sz bytes at the position ptr */ + void store_offset(uint ofs_sz, uchar *ptr, ulong ofs) + { + switch (ofs_sz) { + case 1: *ptr= (uchar) ofs; return; + case 2: int2store(ptr, (uint16) ofs); return; + case 4: int4store(ptr, (uint32) ofs); return; + } + } + + /* + The maximum total length of the fields stored for a record in the cache. + For blob fields only the sizes of the blob lengths are taken into account. + */ + uint length; + + /* + Representation of the executed multi-way join through which all needed + context can be accessed. + */ + JOIN *join; + + /* + JOIN_TAB of the first table that can have it's fields in the join cache. + That is, tables in the [start_tab, tab) range can have their fields in the + join cache. + If a join tab in the range represents an SJM-nest, then all tables from the + nest can have their fields in the join cache, too. + */ + JOIN_TAB *start_tab; + + /* + The total number of flag and data fields that can appear in a record + written into the cache. Fields with null values are always skipped + to save space. + */ + uint fields; + + /* + The total number of flag fields in a record put into the cache. They are + used for table null bitmaps, table null row flags, and an optional match + flag. Flag fields go before other fields in a cache record with the match + flag field placed always at the very beginning of the record. + */ + uint flag_fields; + + /* The total number of blob fields that are written into the cache */ + uint blobs; + + /* + The total number of fields referenced from field descriptors for other join + caches. These fields are used to construct key values. + When BKA join algorithm is employed the constructed key values serve to + access matching rows with index lookups. + The key values are put into a hash table when the BNLH join algorithm + is employed and when BKAH is used for the join operation. + */ + uint referenced_fields; + + /* + The current number of already created data field descriptors. + This number can be useful for implementations of the init methods. + */ + uint data_field_count; + + /* + The current number of already created pointers to the data field + descriptors. This number can be useful for implementations of + the init methods. + */ + uint data_field_ptr_count; + + /* + Array of the descriptors of fields containing 'fields' elements. + These are all fields that are stored for a record in the cache. + */ + CACHE_FIELD *field_descr; + + /* + Array of pointers to the blob descriptors that contains 'blobs' elements. + */ + CACHE_FIELD **blob_ptr; + + /* + This flag indicates that records written into the join buffer contain + a match flag field. The flag must be set by the init method. + */ + bool with_match_flag; + /* + This flag indicates that any record is prepended with the length of the + record which allows us to skip the record or part of it without reading. + */ + bool with_length; + + /* + The maximal number of bytes used for a record representation in + the cache excluding the space for blob data. + For future derived classes this representation may contains some + redundant info such as a key value associated with the record. + */ + uint pack_length; + /* + The value of pack_length incremented by the total size of all + pointers of a record in the cache to the blob data. + */ + uint pack_length_with_blob_ptrs; + + /* + The total size of the record base prefix. The base prefix of record may + include the following components: + - the length of the record + - the link to a record in a previous buffer. + Each record in the buffer are supplied with the same set of the components. + */ + uint base_prefix_length; + + /* + The expected length of a record in the join buffer together with + all prefixes and postfixes + */ + size_t avg_record_length; + + /* The expected size of the space per record in the auxiliary buffer */ + size_t avg_aux_buffer_incr; + + /* Expected join buffer space used for one record */ + size_t space_per_record; + + /* Pointer to the beginning of the join buffer */ + uchar *buff; + /* + Size of the entire memory allocated for the join buffer. + Part of this memory may be reserved for the auxiliary buffer. + */ + size_t buff_size; + /* The minimal join buffer size when join buffer still makes sense to use */ + size_t min_buff_size; + /* The maximum expected size if the join buffer to be used */ + size_t max_buff_size; + /* Size of the auxiliary buffer */ + size_t aux_buff_size; + + /* The number of records put into the join buffer */ + size_t records; + /* + The number of records in the fully refilled join buffer of + the minimal size equal to min_buff_size + */ + size_t min_records; + /* + The maximum expected number of records to be put in the join buffer + at one refill + */ + size_t max_records; + + /* + Pointer to the current position in the join buffer. + This member is used both when writing to buffer and + when reading from it. + */ + uchar *pos; + /* + Pointer to the first free position in the join buffer, + right after the last record into it. + */ + uchar *end_pos; + + /* + Pointer to the beginning of the first field of the current read/write + record from the join buffer. The value is adjusted by the + get_record/put_record functions. + */ + uchar *curr_rec_pos; + /* + Pointer to the beginning of the first field of the last record + from the join buffer. + */ + uchar *last_rec_pos; + + /* + Flag is set if the blob data for the last record in the join buffer + is in record buffers rather than in the join cache. + */ + bool last_rec_blob_data_is_in_rec_buff; + + /* + Pointer to the position to the current record link. + Record links are used only with linked caches. Record links allow to set + connections between parts of one join record that are stored in different + join buffers. + In the simplest case a record link is just a pointer to the beginning of + the record stored in the buffer. + In a more general case a link could be a reference to an array of pointers + to records in the buffer. + */ + uchar *curr_rec_link; + + /* + This flag is set to TRUE if join_tab is the first inner table of an outer + join and the latest record written to the join buffer is detected to be + null complemented after checking on conditions over the outer tables for + this outer join operation + */ + bool last_written_is_null_compl; + + /* + The number of fields put in the join buffer of the join cache that are + used in building keys to access the table join_tab + */ + uint local_key_arg_fields; + /* + The total number of the fields in the previous caches that are used + in building keys to access the table join_tab + */ + uint external_key_arg_fields; + + /* + This flag indicates that the key values will be read directly from the join + buffer. It will save us building key values in the key buffer. + */ + bool use_emb_key; + /* The length of an embedded key value */ + uint emb_key_length; + + /* + This object provides the methods to iterate over records of + the joined table join_tab when looking for join matches between + records from join buffer and records from join_tab. + BNL and BNLH join algorithms retrieve all records from join_tab, + while BKA/BKAH algorithm iterates only over those records from + join_tab that can be accessed by look-ups with join keys built + from records in join buffer. + */ + JOIN_TAB_SCAN *join_tab_scan; + + void calc_record_fields(); + void collect_info_on_key_args(); + int alloc_fields(); + void create_flag_fields(); + void create_key_arg_fields(); + void create_remaining_fields(); + void set_constants(); + int alloc_buffer(); + + /* Shall reallocate the join buffer */ + virtual int realloc_buffer(); + + /* Check the possibility to read the access keys directly from join buffer */ + bool check_emb_key_usage(); + + uint get_size_of_rec_offset() { return size_of_rec_ofs; } + uint get_size_of_rec_length() { return size_of_rec_len; } + uint get_size_of_fld_offset() { return size_of_fld_ofs; } + + uchar *get_rec_ref(uchar *ptr) + { + return buff+get_offset(size_of_rec_ofs, ptr-size_of_rec_ofs); + } + ulong get_rec_length(uchar *ptr) + { + return (ulong) get_offset(size_of_rec_len, ptr); + } + ulong get_fld_offset(uchar *ptr) + { + return (ulong) get_offset(size_of_fld_ofs, ptr); + } + + void store_rec_ref(uchar *ptr, uchar* ref) + { + store_offset(size_of_rec_ofs, ptr-size_of_rec_ofs, (ulong) (ref-buff)); + } + void store_rec_length(uchar *ptr, ulong len) + { + store_offset(size_of_rec_len, ptr, len); + } + void store_fld_offset(uchar *ptr, ulong ofs) + { + store_offset(size_of_fld_ofs, ptr, ofs); + } + + /* Write record fields and their required offsets into the join buffer */ + uint write_record_data(uchar *link, bool *is_full); + + /* Get the total length of all prefixes of a record in the join buffer */ + virtual uint get_prefix_length() { return base_prefix_length; } + /* Get maximum total length of all affixes of a record in the join buffer */ + virtual uint get_record_max_affix_length(); + + /* + Shall get maximum size of the additional space per record used for + record keys + */ + virtual uint get_max_key_addon_space_per_record() { return 0; } + + /* + This method must determine for how much the auxiliary buffer should be + incremented when a new record is added to the join buffer. + If no auxiliary buffer is needed the function should return 0. + */ + virtual uint aux_buffer_incr(ulong recno); + + /* Shall calculate how much space is remaining in the join buffer */ + virtual size_t rem_space() + { + return max(buff_size-(end_pos-buff)-aux_buff_size,0); + } + + /* + Shall calculate how much space is taken by allocation of the key + for a record in the join buffer + */ + virtual uint extra_key_length() { return 0; } + + /* Read all flag and data fields of a record from the join buffer */ + uint read_all_record_fields(); + + /* Read all flag fields of a record from the join buffer */ + uint read_flag_fields(); + + /* Read a data record field from the join buffer */ + uint read_record_field(CACHE_FIELD *copy, bool last_record); + + /* Read a referenced field from the join buffer */ + bool read_referenced_field(CACHE_FIELD *copy, uchar *rec_ptr, uint *len); + + /* + Shall skip record from the join buffer if its match flag + is set to MATCH_FOUND + */ + virtual bool skip_if_matched(); + + /* + Shall skip record from the join buffer if its match flag + commands to do so + */ + virtual bool skip_if_not_needed_match(); + + /* + True if rec_ptr points to the record whose blob data stay in + record buffers + */ + bool blob_data_is_in_rec_buff(uchar *rec_ptr) + { + return rec_ptr == last_rec_pos && last_rec_blob_data_is_in_rec_buff; + } + + /* Find matches from the next table for records from the join buffer */ + virtual enum_nested_loop_state join_matching_records(bool skip_last); + + /* Shall set an auxiliary buffer up (currently used only by BKA joins) */ + virtual int setup_aux_buffer(HANDLER_BUFFER &aux_buff) + { + DBUG_ASSERT(0); + return 0; + } + + /* + Shall get the number of ranges in the cache buffer passed + to the MRR interface + */ + virtual uint get_number_of_ranges_for_mrr() { return 0; }; + + /* + Shall prepare to look for records from the join cache buffer that would + match the record of the joined table read into the record buffer + */ + virtual bool prepare_look_for_matches(bool skip_last)= 0; + /* + Shall return a pointer to the record from join buffer that is checked + as the next candidate for a match with the current record from join_tab. + Each implementation of this virtual function should bare in mind + that the record position it returns shall be exactly the position + passed as the parameter to the implementations of the virtual functions + skip_next_candidate_for_match and read_next_candidate_for_match. + */ + virtual uchar *get_next_candidate_for_match()= 0; + /* + Shall check whether the given record from the join buffer has its match + flag settings commands to skip the record in the buffer. + */ + virtual bool skip_next_candidate_for_match(uchar *rec_ptr)= 0; + /* + Shall read the given record from the join buffer into the + the corresponding record buffer + */ + virtual void read_next_candidate_for_match(uchar *rec_ptr)= 0; + + /* + Shall return the location of the association label returned by + the multi_read_range_next function for the current record loaded + into join_tab's record buffer + */ + virtual uchar **get_curr_association_ptr() { return 0; }; + + /* Add null complements for unmatched outer records from the join buffer */ + virtual enum_nested_loop_state join_null_complements(bool skip_last); + + /* Restore the fields of the last record from the join buffer */ + virtual void restore_last_record(); + + /* Set match flag for a record in join buffer if it has not been set yet */ + bool set_match_flag_if_none(JOIN_TAB *first_inner, uchar *rec_ptr); + + enum_nested_loop_state generate_full_extensions(uchar *rec_ptr); + + /* Check matching to a partial join record from the join buffer */ + bool check_match(uchar *rec_ptr); + + /* + This constructor creates an unlinked join cache. The cache is to be + used to join table 'tab' to the result of joining the previous tables + specified by the 'j' parameter. + */ + JOIN_CACHE(JOIN *j, JOIN_TAB *tab) + { + join= j; + join_tab= tab; + prev_cache= next_cache= 0; + buff= 0; + } + + /* + This constructor creates a linked join cache. The cache is to be + used to join table 'tab' to the result of joining the previous tables + specified by the 'j' parameter. The parameter 'prev' specifies the previous + cache object to which this cache is linked. + */ + JOIN_CACHE(JOIN *j, JOIN_TAB *tab, JOIN_CACHE *prev) + { + join= j; + join_tab= tab; + next_cache= 0; + prev_cache= prev; + buff= 0; + if (prev) + prev->next_cache= this; + } + +public: + + /* + The enumeration type Join_algorithm includes a mnemonic constant for + each join algorithm that employs join buffers + */ + + enum Join_algorithm + { + BNL_JOIN_ALG, /* Block Nested Loop Join algorithm */ + BNLH_JOIN_ALG, /* Block Nested Loop Hash Join algorithm */ + BKA_JOIN_ALG, /* Batched Key Access Join algorithm */ + BKAH_JOIN_ALG /* Batched Key Access with Hash Table Join Algorithm */ + }; + + /* + The enumeration type Match_flag describes possible states of the match flag + field stored for the records of the first inner tables of outer joins and + semi-joins in the cases when the first match strategy is used for them. + When a record with match flag field is written into the join buffer the + state of the field usually is MATCH_NOT_FOUND unless this is a record of the + first inner table of the outer join for which the on precondition (the + condition from on expression over outer tables) has turned out not to be + true. In the last case the state of the match flag is MATCH_IMPOSSIBLE. + The state of the match flag field is changed to MATCH_FOUND as soon as + the first full matching combination of inner tables of the outer join or + the semi-join is discovered. + */ + enum Match_flag { MATCH_NOT_FOUND, MATCH_FOUND, MATCH_IMPOSSIBLE }; + + /* Table to be joined with the partial join records from the cache */ + JOIN_TAB *join_tab; + + /* Pointer to the previous join cache if there is any */ + JOIN_CACHE *prev_cache; + /* Pointer to the next join cache if there is any */ + JOIN_CACHE *next_cache; + + /* Shall initialize the join cache structure */ + virtual int init(); + + /* Get the current size of the cache join buffer */ + size_t get_join_buffer_size() { return buff_size; } + /* Set the size of the cache join buffer to a new value */ + void set_join_buffer_size(size_t sz) { buff_size= sz; } + + /* Get the minimum possible size of the cache join buffer */ + virtual ulong get_min_join_buffer_size(); + /* Get the maximum possible size of the cache join buffer */ + virtual ulong get_max_join_buffer_size(bool optimize_buff_size); + + /* Shrink the size if the cache join buffer in a given ratio */ + bool shrink_join_buffer_in_ratio(ulonglong n, ulonglong d); + + /* Shall return the type of the employed join algorithm */ + virtual enum Join_algorithm get_join_alg()= 0; + + /* + The function shall return TRUE only when there is a key access + to the join table + */ + virtual bool is_key_access()= 0; + + /* Shall reset the join buffer for reading/writing */ + virtual void reset(bool for_writing); + + /* + This function shall add a record into the join buffer and return TRUE + if it has been decided that it should be the last record in the buffer. + */ + virtual bool put_record(); + + /* + This function shall read the next record into the join buffer and return + TRUE if there is no more next records. + */ + virtual bool get_record(); + + /* + This function shall read the record at the position rec_ptr + in the join buffer + */ + virtual void get_record_by_pos(uchar *rec_ptr); + + /* Shall return the value of the match flag for the positioned record */ + virtual enum Match_flag get_match_flag_by_pos(uchar *rec_ptr); + + /* Shall return the position of the current record */ + virtual uchar *get_curr_rec() { return curr_rec_pos; } + + /* Shall set the current record link */ + virtual void set_curr_rec_link(uchar *link) { curr_rec_link= link; } + + /* Shall return the current record link */ + virtual uchar *get_curr_rec_link() + { + return (curr_rec_link ? curr_rec_link : get_curr_rec()); + } + + /* Join records from the join buffer with records from the next join table */ + enum_nested_loop_state join_records(bool skip_last); + + /* Add a comment on the join algorithm employed by the join cache */ + virtual void print_explain_comment(String *str); + + THD *thd(); + + virtual ~JOIN_CACHE() {} + void reset_join(JOIN *j) { join= j; } + void free() + { + my_free(buff); + buff= 0; + } + + friend class JOIN_CACHE_HASHED; + friend class JOIN_CACHE_BNL; + friend class JOIN_CACHE_BKA; + friend class JOIN_TAB_SCAN; + friend class JOIN_TAB_SCAN_MRR; + +}; + + +/* + The class JOIN_CACHE_HASHED is the base class for the classes + JOIN_CACHE_HASHED_BNL and JOIN_CACHE_HASHED_BKA. The first of them supports + an implementation of Block Nested Loop Hash (BNLH) Join Algorithm, + while the second is used for a variant of the BKA Join algorithm that performs + only one lookup for any records from join buffer with the same key value. + For a join cache of this class the records from the join buffer that have + the same access key are linked into a chain attached to a key entry structure + that either itself contains the key value, or, in the case when the keys are + embedded, refers to its occurrence in one of the records from the chain. + To build the chains with the same keys a hash table is employed. It is placed + at the very end of the join buffer. The array of hash entries is allocated + first at the very bottom of the join buffer, while key entries are placed + before this array. + A hash entry contains a header of the list of the key entries with the same + hash value. + Each key entry is a structure of the following type: + struct st_join_cache_key_entry { + union { + uchar[] value; + cache_ref *value_ref; // offset from the beginning of the buffer + } hash_table_key; + key_ref next_key; // offset backward from the beginning of hash table + cache_ref *last_rec // offset from the beginning of the buffer + } + The references linking the records in a chain are always placed at the very + beginning of the record info stored in the join buffer. The records are + linked in a circular list. A new record is always added to the end of this + list. + + The following picture represents a typical layout for the info stored in the + join buffer of a join cache object of the JOIN_CACHE_HASHED class. + + buff + V + +----------------------------------------------------------------------------+ + | |[*]record_1_1| | + | ^ | | + | | +--------------------------------------------------+ | + | | |[*]record_2_1| | | + | | ^ | V | + | | | +------------------+ |[*]record_1_2| | + | | +--------------------+-+ | | + |+--+ +---------------------+ | | +-------------+ | + || | | V | | | + |||[*]record_3_1| |[*]record_1_3| |[*]record_2_2| | | + ||^ ^ ^ | | + ||+----------+ | | | | + ||^ | |<---------------------------+-------------------+ | + |++ | | ... mrr | buffer ... ... | | | + | | | | | + | +-----+--------+ | +-----|-------+ | + | V | | | V | | | + ||key_3|[/]|[*]| | | |key_2|[/]|[*]| | | + | +-+---|-----------------------+ | | + | V | | | | | + | |key_1|[*]|[*]| | | ... |[*]| ... |[*]| ... | | + +----------------------------------------------------------------------------+ + ^ ^ ^ + | i-th entry j-th entry + hash table + + i-th hash entry: + circular record chain for key_1: + record_1_1 + record_1_2 + record_1_3 (points to record_1_1) + circular record chain for key_3: + record_3_1 (points to itself) + + j-th hash entry: + circular record chain for key_2: + record_2_1 + record_2_2 (points to record_2_1) + +*/ + +class JOIN_CACHE_HASHED: public JOIN_CACHE +{ + + typedef uint (JOIN_CACHE_HASHED::*Hash_func) (uchar *key, uint key_len); + typedef bool (JOIN_CACHE_HASHED::*Hash_cmp_func) (uchar *key1, uchar *key2, + uint key_len); + +private: + + /* Size of the offset of a key entry in the hash table */ + uint size_of_key_ofs; + + /* + Length of the key entry in the hash table. + A key entry either contains the key value, or it contains a reference + to the key value if use_emb_key flag is set for the cache. + */ + uint key_entry_length; + + /* The beginning of the hash table in the join buffer */ + uchar *hash_table; + /* Number of hash entries in the hash table */ + uint hash_entries; + + + /* The position of the currently retrieved key entry in the hash table */ + uchar *curr_key_entry; + + /* The offset of the data fields from the beginning of the record fields */ + uint data_fields_offset; + + inline uint get_hash_idx_simple(uchar *key, uint key_len); + inline uint get_hash_idx_complex(uchar *key, uint key_len); + + inline bool equal_keys_simple(uchar *key1, uchar *key2, uint key_len); + inline bool equal_keys_complex(uchar *key1, uchar *key2, uint key_len); + + int init_hash_table(); + void cleanup_hash_table(); + +protected: + + /* + Index info on the TABLE_REF object used by the hash join + to look for matching records + */ + KEY *ref_key_info; + /* + Number of the key parts the TABLE_REF object used by the hash join + to look for matching records + */ + uint ref_used_key_parts; + + /* + The hash function used in the hash table, + usually set by the init() method + */ + Hash_func hash_func; + /* + The function to check whether two key entries in the hash table + are equal or not, usually set by the init() method + */ + Hash_cmp_func hash_cmp_func; + + /* + Length of a key value. + It is assumed that all key values have the same length. + */ + uint key_length; + /* Buffer to store key values for probing */ + uchar *key_buff; + + /* Number of key entries in the hash table (number of distinct keys) */ + uint key_entries; + + /* The position of the last key entry in the hash table */ + uchar *last_key_entry; + + /* + The offset of the record fields from the beginning of the record + representation. The record representation starts with a reference to + the next record in the key record chain followed by the length of + the trailing record data followed by a reference to the record segment + in the previous cache, if any, followed by the record fields. + */ + uint rec_fields_offset; + + uint get_size_of_key_offset() { return size_of_key_ofs; } + + /* + Get the position of the next_key_ptr field pointed to by + a linking reference stored at the position key_ref_ptr. + This reference is actually the offset backward from the + beginning of hash table. + */ + uchar *get_next_key_ref(uchar *key_ref_ptr) + { + return hash_table-get_offset(size_of_key_ofs, key_ref_ptr); + } + + /* + Store the linking reference to the next_key_ptr field at + the position key_ref_ptr. The position of the next_key_ptr + field is pointed to by ref. The stored reference is actually + the offset backward from the beginning of the hash table. + */ + void store_next_key_ref(uchar *key_ref_ptr, uchar *ref) + { + store_offset(size_of_key_ofs, key_ref_ptr, (ulong) (hash_table-ref)); + } + + /* + Check whether the reference to the next_key_ptr field at the position + key_ref_ptr contains a nil value. + */ + bool is_null_key_ref(uchar *key_ref_ptr) + { + ulong nil= 0; + return memcmp(key_ref_ptr, &nil, size_of_key_ofs ) == 0; + } + + /* + Set the reference to the next_key_ptr field at the position + key_ref_ptr equal to nil. + */ + void store_null_key_ref(uchar *key_ref_ptr) + { + ulong nil= 0; + store_offset(size_of_key_ofs, key_ref_ptr, nil); + } + + uchar *get_next_rec_ref(uchar *ref_ptr) + { + return buff+get_offset(get_size_of_rec_offset(), ref_ptr); + } + + void store_next_rec_ref(uchar *ref_ptr, uchar *ref) + { + store_offset(get_size_of_rec_offset(), ref_ptr, (ulong) (ref-buff)); + } + + /* + Get the position of the embedded key value for the current + record pointed to by get_curr_rec(). + */ + uchar *get_curr_emb_key() + { + return get_curr_rec()+data_fields_offset; + } + + /* + Get the position of the embedded key value pointed to by a reference + stored at ref_ptr. The stored reference is actually the offset from + the beginning of the join buffer. + */ + uchar *get_emb_key(uchar *ref_ptr) + { + return buff+get_offset(get_size_of_rec_offset(), ref_ptr); + } + + /* + Store the reference to an embedded key at the position key_ref_ptr. + The position of the embedded key is pointed to by ref. The stored + reference is actually the offset from the beginning of the join buffer. + */ + void store_emb_key_ref(uchar *ref_ptr, uchar *ref) + { + store_offset(get_size_of_rec_offset(), ref_ptr, (ulong) (ref-buff)); + } + + /* Get the total length of all prefixes of a record in hashed join buffer */ + uint get_prefix_length() + { + return base_prefix_length + get_size_of_rec_offset(); + } + + /* + Get maximum size of the additional space per record used for + the hash table with record keys + */ + uint get_max_key_addon_space_per_record(); + + /* + Calculate how much space in the buffer would not be occupied by + records, key entries and additional memory for the MMR buffer. + */ + size_t rem_space() + { + return max(last_key_entry-end_pos-aux_buff_size,0); + } + + /* + Calculate how much space is taken by allocation of the key + entry for a record in the join buffer + */ + uint extra_key_length() { return key_entry_length; } + + /* + Skip record from a hashed join buffer if its match flag + is set to MATCH_FOUND + */ + bool skip_if_matched(); + + /* + Skip record from a hashed join buffer if its match flag setting + commands to do so + */ + bool skip_if_not_needed_match(); + + /* Search for a key in the hash table of the join buffer */ + bool key_search(uchar *key, uint key_len, uchar **key_ref_ptr); + + /* Reallocate the join buffer of a hashed join cache */ + int realloc_buffer(); + + /* + This constructor creates an unlinked hashed join cache. The cache is to be + used to join table 'tab' to the result of joining the previous tables + specified by the 'j' parameter. + */ + JOIN_CACHE_HASHED(JOIN *j, JOIN_TAB *tab) :JOIN_CACHE(j, tab) {} + + /* + This constructor creates a linked hashed join cache. The cache is to be + used to join table 'tab' to the result of joining the previous tables + specified by the 'j' parameter. The parameter 'prev' specifies the previous + cache object to which this cache is linked. + */ + JOIN_CACHE_HASHED(JOIN *j, JOIN_TAB *tab, JOIN_CACHE *prev) + :JOIN_CACHE(j, tab, prev) {} + +public: + + /* Initialize a hashed join cache */ + int init(); + + /* Reset the buffer of a hashed join cache for reading/writing */ + void reset(bool for_writing); + + /* Add a record into the buffer of a hashed join cache */ + bool put_record(); + + /* Read the next record from the buffer of a hashed join cache */ + bool get_record(); + + /* + Shall check whether all records in a key chain have + their match flags set on + */ + virtual bool check_all_match_flags_for_key(uchar *key_chain_ptr); + + uint get_next_key(uchar **key); + + /* Get the head of the record chain attached to the current key entry */ + uchar *get_curr_key_chain() + { + return get_next_rec_ref(curr_key_entry+key_entry_length- + get_size_of_rec_offset()); + } + +}; + + +/* + The class JOIN_TAB_SCAN is a companion class for the classes JOIN_CACHE_BNL + and JOIN_CACHE_BNLH. Actually the class implements the iterator over the + table joinded by BNL/BNLH join algorithm. + The virtual functions open, next and close are called for any iteration over + the table. The function open is called to initiate the process of the + iteration. The function next shall read the next record from the joined + table. The record is read into the record buffer of the joined table. + The record is to be matched with records from the join cache buffer. + The function close shall perform the finalizing actions for the iteration. +*/ + +class JOIN_TAB_SCAN: public Sql_alloc +{ + +private: + /* TRUE if this is the first record from the joined table to iterate over */ + bool is_first_record; + +protected: + + /* The joined table to be iterated over */ + JOIN_TAB *join_tab; + /* The join cache used to join the table join_tab */ + JOIN_CACHE *cache; + /* + Representation of the executed multi-way join through which + all needed context can be accessed. + */ + JOIN *join; + +public: + + JOIN_TAB_SCAN(JOIN *j, JOIN_TAB *tab) + { + join= j; + join_tab= tab; + cache= join_tab->cache; + } + + virtual ~JOIN_TAB_SCAN() {} + + /* + Shall calculate the increment of the auxiliary buffer for a record + write if such a buffer is used by the table scan object + */ + virtual uint aux_buffer_incr(ulong recno) { return 0; } + + /* Initiate the process of iteration over the joined table */ + virtual int open(); + /* + Shall read the next candidate for matches with records from + the join buffer. + */ + virtual int next(); + /* + Perform the finalizing actions for the process of iteration + over the joined_table. + */ + virtual void close(); + +}; + +/* + The class JOIN_CACHE_BNL is used when the BNL join algorithm is + employed to perform a join operation +*/ + +class JOIN_CACHE_BNL :public JOIN_CACHE +{ +private: + /* + The number of the records in the join buffer that have to be + checked yet for a match with the current record of join_tab + read into the record buffer. + */ + uint rem_records; + +protected: + + bool prepare_look_for_matches(bool skip_last); + + uchar *get_next_candidate_for_match(); + + bool skip_next_candidate_for_match(uchar *rec_ptr); + + void read_next_candidate_for_match(uchar *rec_ptr); + +public: + + /* + This constructor creates an unlinked BNL join cache. The cache is to be + used to join table 'tab' to the result of joining the previous tables + specified by the 'j' parameter. + */ + JOIN_CACHE_BNL(JOIN *j, JOIN_TAB *tab) :JOIN_CACHE(j, tab) {} + + /* + This constructor creates a linked BNL join cache. The cache is to be + used to join table 'tab' to the result of joining the previous tables + specified by the 'j' parameter. The parameter 'prev' specifies the previous + cache object to which this cache is linked. + */ + JOIN_CACHE_BNL(JOIN *j, JOIN_TAB *tab, JOIN_CACHE *prev) + :JOIN_CACHE(j, tab, prev) {} + + /* Initialize the BNL cache */ + int init(); + + enum Join_algorithm get_join_alg() { return BNL_JOIN_ALG; } + + bool is_key_access() { return FALSE; } + +}; + + +/* + The class JOIN_CACHE_BNLH is used when the BNLH join algorithm is + employed to perform a join operation +*/ + +class JOIN_CACHE_BNLH :public JOIN_CACHE_HASHED +{ + +protected: + + /* + The pointer to the last record from the circular list of the records + that match the join key built out of the record in the join buffer for + the join_tab table + */ + uchar *last_matching_rec_ref_ptr; + /* + The pointer to the next current record from the circular list of the + records that match the join key built out of the record in the join buffer + for the join_tab table. This pointer is used by the class method + get_next_candidate_for_match to iterate over records from the circular + list. + */ + uchar *next_matching_rec_ref_ptr; + + /* + Get the chain of records from buffer matching the current candidate + record for join + */ + uchar *get_matching_chain_by_join_key(); + + bool prepare_look_for_matches(bool skip_last); + + uchar *get_next_candidate_for_match(); + + bool skip_next_candidate_for_match(uchar *rec_ptr); + + void read_next_candidate_for_match(uchar *rec_ptr); + +public: + + /* + This constructor creates an unlinked BNLH join cache. The cache is to be + used to join table 'tab' to the result of joining the previous tables + specified by the 'j' parameter. + */ + JOIN_CACHE_BNLH(JOIN *j, JOIN_TAB *tab) : JOIN_CACHE_HASHED(j, tab) {} + + /* + This constructor creates a linked BNLH join cache. The cache is to be + used to join table 'tab' to the result of joining the previous tables + specified by the 'j' parameter. The parameter 'prev' specifies the previous + cache object to which this cache is linked. + */ + JOIN_CACHE_BNLH(JOIN *j, JOIN_TAB *tab, JOIN_CACHE *prev) + : JOIN_CACHE_HASHED(j, tab, prev) {} + + /* Initialize the BNLH cache */ + int init(); + + enum Join_algorithm get_join_alg() { return BNLH_JOIN_ALG; } + + bool is_key_access() { return TRUE; } + +}; + + +/* + The class JOIN_TAB_SCAN_MRR is a companion class for the classes + JOIN_CACHE_BKA and JOIN_CACHE_BKAH. Actually the class implements the + iterator over the records from join_tab selected by BKA/BKAH join + algorithm as the candidates to be joined. + The virtual functions open, next and close are called for any iteration over + join_tab record candidates. The function open is called to initiate the + process of the iteration. The function next shall read the next record from + the set of the record candidates. The record is read into the record buffer + of the joined table. The function close shall perform the finalizing actions + for the iteration. +*/ + +class JOIN_TAB_SCAN_MRR: public JOIN_TAB_SCAN +{ + /* Interface object to generate key ranges for MRR */ + RANGE_SEQ_IF range_seq_funcs; + + /* Number of ranges to be processed by the MRR interface */ + uint ranges; + + /* Flag to to be passed to the MRR interface */ + uint mrr_mode; + + /* MRR buffer assotiated with this join cache */ + HANDLER_BUFFER mrr_buff; + + /* Shall initialize the MRR buffer */ + virtual void init_mrr_buff() + { + cache->setup_aux_buffer(mrr_buff); + } + +public: + + JOIN_TAB_SCAN_MRR(JOIN *j, JOIN_TAB *tab, uint flags, RANGE_SEQ_IF rs_funcs) + :JOIN_TAB_SCAN(j, tab), range_seq_funcs(rs_funcs), mrr_mode(flags) {} + + uint aux_buffer_incr(ulong recno); + + int open(); + + int next(); + + friend class JOIN_CACHE_BKA; /* it needs to add an mrr_mode flag after JOIN_CACHE::init() call */ +}; + +/* + The class JOIN_CACHE_BKA is used when the BKA join algorithm is + employed to perform a join operation +*/ + +class JOIN_CACHE_BKA :public JOIN_CACHE +{ +private: + + /* Flag to to be passed to the companion JOIN_TAB_SCAN_MRR object */ + uint mrr_mode; + + /* + This value is set to 1 by the class prepare_look_for_matches method + and back to 0 by the class get_next_candidate_for_match method + */ + uint rem_records; + + /* + This field contains the current association label set by a call of + the multi_range_read_next handler function. + See the function JOIN_CACHE_BKA::get_curr_key_association() + */ + uchar *curr_association; + +protected: + + /* + Get the number of ranges in the cache buffer passed to the MRR + interface. For each record its own range is passed. + */ + uint get_number_of_ranges_for_mrr() { return (uint)records; } + + /* + Setup the MRR buffer as the space between the last record put + into the join buffer and the very end of the join buffer + */ + int setup_aux_buffer(HANDLER_BUFFER &aux_buff) + { + aux_buff.buffer= end_pos; + aux_buff.buffer_end= buff+buff_size; + return 0; + } + + bool prepare_look_for_matches(bool skip_last); + + uchar *get_next_candidate_for_match(); + + bool skip_next_candidate_for_match(uchar *rec_ptr); + + void read_next_candidate_for_match(uchar *rec_ptr); + +public: + + /* + This constructor creates an unlinked BKA join cache. The cache is to be + used to join table 'tab' to the result of joining the previous tables + specified by the 'j' parameter. + The MRR mode initially is set to 'flags'. + */ + JOIN_CACHE_BKA(JOIN *j, JOIN_TAB *tab, uint flags) + :JOIN_CACHE(j, tab), mrr_mode(flags) {} + /* + This constructor creates a linked BKA join cache. The cache is to be + used to join table 'tab' to the result of joining the previous tables + specified by the 'j' parameter. The parameter 'prev' specifies the previous + cache object to which this cache is linked. + The MRR mode initially is set to 'flags'. + */ + JOIN_CACHE_BKA(JOIN *j, JOIN_TAB *tab, uint flags, JOIN_CACHE *prev) + :JOIN_CACHE(j, tab, prev), mrr_mode(flags) {} + + uchar **get_curr_association_ptr() { return &curr_association; } + + /* Initialize the BKA cache */ + int init(); + + enum Join_algorithm get_join_alg() { return BKA_JOIN_ALG; } + + bool is_key_access() { return TRUE; } + + /* Get the key built over the next record from the join buffer */ + uint get_next_key(uchar **key); + + /* Check index condition of the joined table for a record from BKA cache */ + bool skip_index_tuple(range_id_t range_info); + + void print_explain_comment(String *str); +}; + + + +/* + The class JOIN_CACHE_BKAH is used when the BKAH join algorithm is + employed to perform a join operation +*/ + +class JOIN_CACHE_BKAH :public JOIN_CACHE_BNLH +{ + +private: + /* Flag to to be passed to the companion JOIN_TAB_SCAN_MRR object */ + uint mrr_mode; + + /* + This flag is set to TRUE if the implementation of the MRR interface cannot + handle range association labels and does not return them to the caller of + the multi_range_read_next handler function. E.g. the implementation of + the MRR inteface for the Falcon engine could not return association + labels to the caller of multi_range_read_next. + The flag is set by JOIN_CACHE_BKA::init() and is not ever changed. + */ + bool no_association; + + /* + This field contains the association label returned by the + multi_range_read_next function. + See the function JOIN_CACHE_BKAH::get_curr_key_association() + */ + uchar *curr_matching_chain; + +protected: + + uint get_number_of_ranges_for_mrr() { return key_entries; } + + /* + Initialize the MRR buffer allocating some space within the join buffer. + The entire space between the last record put into the join buffer and the + last key entry added to the hash table is used for the MRR buffer. + */ + int setup_aux_buffer(HANDLER_BUFFER &aux_buff) + { + aux_buff.buffer= end_pos; + aux_buff.buffer_end= last_key_entry; + return 0; + } + + bool prepare_look_for_matches(bool skip_last); + + /* + The implementations of the methods + - get_next_candidate_for_match + - skip_recurrent_candidate_for_match + - read_next_candidate_for_match + are inherited from the JOIN_CACHE_BNLH class + */ + +public: + + /* + This constructor creates an unlinked BKAH join cache. The cache is to be + used to join table 'tab' to the result of joining the previous tables + specified by the 'j' parameter. + The MRR mode initially is set to 'flags'. + */ + JOIN_CACHE_BKAH(JOIN *j, JOIN_TAB *tab, uint flags) + :JOIN_CACHE_BNLH(j, tab), mrr_mode(flags) {} + + /* + This constructor creates a linked BKAH join cache. The cache is to be + used to join table 'tab' to the result of joining the previous tables + specified by the 'j' parameter. The parameter 'prev' specifies the previous + cache object to which this cache is linked. + The MRR mode initially is set to 'flags'. + */ + JOIN_CACHE_BKAH(JOIN *j, JOIN_TAB *tab, uint flags, JOIN_CACHE *prev) + :JOIN_CACHE_BNLH(j, tab, prev), mrr_mode(flags) {} + + uchar **get_curr_association_ptr() { return &curr_matching_chain; } + + /* Initialize the BKAH cache */ + int init(); + + enum Join_algorithm get_join_alg() { return BKAH_JOIN_ALG; } + + /* Check index condition of the joined table for a record from BKAH cache */ + bool skip_index_tuple(range_id_t range_info); + + void print_explain_comment(String *str); +}; diff --git a/database/include/mysql/private/sql_lex.h b/database/include/mysql/private/sql_lex.h new file mode 100644 index 0000000..2410f6e --- /dev/null +++ b/database/include/mysql/private/sql_lex.h @@ -0,0 +1,3014 @@ +/* Copyright (c) 2000, 2019, Oracle and/or its affiliates. + Copyright (c) 2010, 2019, MariaDB Corporation + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/** + @defgroup Semantic_Analysis Semantic Analysis +*/ + +#ifndef SQL_LEX_INCLUDED +#define SQL_LEX_INCLUDED + +#include "violite.h" /* SSL_type */ +#include "sql_trigger.h" +#include "item.h" /* From item_subselect.h: subselect_union_engine */ +#include "thr_lock.h" /* thr_lock_type, TL_UNLOCK */ +#include "mem_root_array.h" + +/* YACC and LEX Definitions */ + +/* These may not be declared yet */ +class Table_ident; +class sql_exchange; +class LEX_COLUMN; +class sp_head; +class sp_name; +class sp_instr; +class sp_pcontext; +class st_alter_tablespace; +class partition_info; +class Event_parse_data; +class set_var_base; +class sys_var; +class Item_func_match; +class Alter_drop; +class Alter_column; +class Key; +class File_parser; +class Key_part_spec; + +#ifdef MYSQL_SERVER +/* + There are 8 different type of table access so there is no more than + combinations 2^8 = 256: + + . STMT_READS_TRANS_TABLE + + . STMT_READS_NON_TRANS_TABLE + + . STMT_READS_TEMP_TRANS_TABLE + + . STMT_READS_TEMP_NON_TRANS_TABLE + + . STMT_WRITES_TRANS_TABLE + + . STMT_WRITES_NON_TRANS_TABLE + + . STMT_WRITES_TEMP_TRANS_TABLE + + . STMT_WRITES_TEMP_NON_TRANS_TABLE + + The unsafe conditions for each combination is represented within a byte + and stores the status of the option --binlog-direct-non-trans-updates, + whether the trx-cache is empty or not, and whether the isolation level + is lower than ISO_REPEATABLE_READ: + + . option (OFF/ON) + . trx-cache (empty/not empty) + . isolation (>= ISO_REPEATABLE_READ / < ISO_REPEATABLE_READ) + + bits 0 : . OFF, . empty, . >= ISO_REPEATABLE_READ + bits 1 : . OFF, . empty, . < ISO_REPEATABLE_READ + bits 2 : . OFF, . not empty, . >= ISO_REPEATABLE_READ + bits 3 : . OFF, . not empty, . < ISO_REPEATABLE_READ + bits 4 : . ON, . empty, . >= ISO_REPEATABLE_READ + bits 5 : . ON, . empty, . < ISO_REPEATABLE_READ + bits 6 : . ON, . not empty, . >= ISO_REPEATABLE_READ + bits 7 : . ON, . not empty, . < ISO_REPEATABLE_READ +*/ +extern uint binlog_unsafe_map[256]; +/* + Initializes the array with unsafe combinations and its respective + conditions. +*/ +void binlog_unsafe_map_init(); +#endif + +/** + used by the parser to store internal variable name +*/ +struct sys_var_with_base +{ + sys_var *var; + LEX_STRING base_name; +}; + +struct LEX_TYPE +{ + enum enum_field_types type; + char *length, *dec; + CHARSET_INFO *charset; + void set(int t, char *l, char *d, CHARSET_INFO *cs) + { type= (enum_field_types)t; length= l; dec= d; charset= cs; } +}; + +#ifdef MYSQL_SERVER +/* + The following hack is needed because mysql_yacc.cc does not define + YYSTYPE before including this file +*/ +#ifdef MYSQL_YACC +#define LEX_YYSTYPE void * +#else +#include "lex_symbol.h" +#if MYSQL_LEX +#include "item_func.h" /* Cast_target used in sql_yacc.h */ +#include "sql_yacc.h" +#define LEX_YYSTYPE YYSTYPE * +#else +#define LEX_YYSTYPE void * +#endif +#endif +#endif + +/* + When a command is added here, be sure it's also added in mysqld.cc + in "struct show_var_st status_vars[]= {" ... + + If the command returns a result set or is not allowed in stored + functions or triggers, please also make sure that + sp_get_flags_for_command (sp_head.cc) returns proper flags for the + added SQLCOM_. +*/ + +enum enum_sql_command { + SQLCOM_SELECT, SQLCOM_CREATE_TABLE, SQLCOM_CREATE_INDEX, SQLCOM_ALTER_TABLE, + SQLCOM_UPDATE, SQLCOM_INSERT, SQLCOM_INSERT_SELECT, + SQLCOM_DELETE, SQLCOM_TRUNCATE, SQLCOM_DROP_TABLE, SQLCOM_DROP_INDEX, + + SQLCOM_SHOW_DATABASES, SQLCOM_SHOW_TABLES, SQLCOM_SHOW_FIELDS, + SQLCOM_SHOW_KEYS, SQLCOM_SHOW_VARIABLES, SQLCOM_SHOW_STATUS, + SQLCOM_SHOW_ENGINE_LOGS, SQLCOM_SHOW_ENGINE_STATUS, SQLCOM_SHOW_ENGINE_MUTEX, + SQLCOM_SHOW_PROCESSLIST, SQLCOM_SHOW_MASTER_STAT, SQLCOM_SHOW_SLAVE_STAT, + SQLCOM_SHOW_GRANTS, SQLCOM_SHOW_CREATE, SQLCOM_SHOW_CHARSETS, + SQLCOM_SHOW_COLLATIONS, SQLCOM_SHOW_CREATE_DB, SQLCOM_SHOW_TABLE_STATUS, + SQLCOM_SHOW_TRIGGERS, + + SQLCOM_LOAD,SQLCOM_SET_OPTION,SQLCOM_LOCK_TABLES,SQLCOM_UNLOCK_TABLES, + SQLCOM_GRANT, + SQLCOM_CHANGE_DB, SQLCOM_CREATE_DB, SQLCOM_DROP_DB, SQLCOM_ALTER_DB, + SQLCOM_REPAIR, SQLCOM_REPLACE, SQLCOM_REPLACE_SELECT, + SQLCOM_CREATE_FUNCTION, SQLCOM_DROP_FUNCTION, + SQLCOM_REVOKE,SQLCOM_OPTIMIZE, SQLCOM_CHECK, + SQLCOM_ASSIGN_TO_KEYCACHE, SQLCOM_PRELOAD_KEYS, + SQLCOM_FLUSH, SQLCOM_KILL, SQLCOM_ANALYZE, + SQLCOM_ROLLBACK, SQLCOM_ROLLBACK_TO_SAVEPOINT, + SQLCOM_COMMIT, SQLCOM_SAVEPOINT, SQLCOM_RELEASE_SAVEPOINT, + SQLCOM_SLAVE_START, SQLCOM_SLAVE_STOP, + SQLCOM_BEGIN, SQLCOM_CHANGE_MASTER, + SQLCOM_RENAME_TABLE, + SQLCOM_RESET, SQLCOM_PURGE, SQLCOM_PURGE_BEFORE, SQLCOM_SHOW_BINLOGS, + SQLCOM_SHOW_OPEN_TABLES, + SQLCOM_HA_OPEN, SQLCOM_HA_CLOSE, SQLCOM_HA_READ, + SQLCOM_SHOW_SLAVE_HOSTS, SQLCOM_DELETE_MULTI, SQLCOM_UPDATE_MULTI, + SQLCOM_SHOW_BINLOG_EVENTS, SQLCOM_DO, + SQLCOM_SHOW_WARNS, SQLCOM_EMPTY_QUERY, SQLCOM_SHOW_ERRORS, + SQLCOM_SHOW_STORAGE_ENGINES, SQLCOM_SHOW_PRIVILEGES, + SQLCOM_HELP, SQLCOM_CREATE_USER, SQLCOM_DROP_USER, SQLCOM_RENAME_USER, + SQLCOM_REVOKE_ALL, SQLCOM_CHECKSUM, + SQLCOM_CREATE_PROCEDURE, SQLCOM_CREATE_SPFUNCTION, SQLCOM_CALL, + SQLCOM_DROP_PROCEDURE, SQLCOM_ALTER_PROCEDURE,SQLCOM_ALTER_FUNCTION, + SQLCOM_SHOW_CREATE_PROC, SQLCOM_SHOW_CREATE_FUNC, + SQLCOM_SHOW_STATUS_PROC, SQLCOM_SHOW_STATUS_FUNC, + SQLCOM_PREPARE, SQLCOM_EXECUTE, SQLCOM_DEALLOCATE_PREPARE, + SQLCOM_CREATE_VIEW, SQLCOM_DROP_VIEW, + SQLCOM_CREATE_TRIGGER, SQLCOM_DROP_TRIGGER, + SQLCOM_XA_START, SQLCOM_XA_END, SQLCOM_XA_PREPARE, + SQLCOM_XA_COMMIT, SQLCOM_XA_ROLLBACK, SQLCOM_XA_RECOVER, + SQLCOM_SHOW_PROC_CODE, SQLCOM_SHOW_FUNC_CODE, + SQLCOM_ALTER_TABLESPACE, + SQLCOM_INSTALL_PLUGIN, SQLCOM_UNINSTALL_PLUGIN, + SQLCOM_SHOW_AUTHORS, SQLCOM_BINLOG_BASE64_EVENT, + SQLCOM_SHOW_PLUGINS, + SQLCOM_SHOW_CONTRIBUTORS, + SQLCOM_CREATE_SERVER, SQLCOM_DROP_SERVER, SQLCOM_ALTER_SERVER, + SQLCOM_CREATE_EVENT, SQLCOM_ALTER_EVENT, SQLCOM_DROP_EVENT, + SQLCOM_SHOW_CREATE_EVENT, SQLCOM_SHOW_EVENTS, + SQLCOM_SHOW_CREATE_TRIGGER, + SQLCOM_ALTER_DB_UPGRADE, + SQLCOM_SHOW_PROFILE, SQLCOM_SHOW_PROFILES, + SQLCOM_SIGNAL, SQLCOM_RESIGNAL, + SQLCOM_SHOW_RELAYLOG_EVENTS, + SQLCOM_SHOW_USER_STATS, SQLCOM_SHOW_TABLE_STATS, SQLCOM_SHOW_INDEX_STATS, + SQLCOM_SHOW_CLIENT_STATS, + + /* + When a command is added here, be sure it's also added in mysqld.cc + in "struct show_var_st status_vars[]= {" ... + */ + /* This should be the last !!! */ + SQLCOM_END +}; + +// describe/explain types +#define DESCRIBE_NORMAL 1 +#define DESCRIBE_EXTENDED 2 +/* + This is not within #ifdef because we want "EXPLAIN PARTITIONS ..." to produce + additional "partitions" column even if partitioning is not compiled in. +*/ +#define DESCRIBE_PARTITIONS 4 + +#ifdef MYSQL_SERVER + +enum enum_sp_suid_behaviour +{ + SP_IS_DEFAULT_SUID= 0, + SP_IS_NOT_SUID, + SP_IS_SUID +}; + +enum enum_sp_data_access +{ + SP_DEFAULT_ACCESS= 0, + SP_CONTAINS_SQL, + SP_NO_SQL, + SP_READS_SQL_DATA, + SP_MODIFIES_SQL_DATA +}; + +const LEX_STRING sp_data_access_name[]= +{ + { C_STRING_WITH_LEN("") }, + { C_STRING_WITH_LEN("CONTAINS SQL") }, + { C_STRING_WITH_LEN("NO SQL") }, + { C_STRING_WITH_LEN("READS SQL DATA") }, + { C_STRING_WITH_LEN("MODIFIES SQL DATA") } +}; + +#define DERIVED_SUBQUERY 1 +#define DERIVED_VIEW 2 + +enum enum_view_create_mode +{ + VIEW_CREATE_NEW, // check that there are not such VIEW/table + VIEW_ALTER, // check that VIEW .frm with such name exists + VIEW_CREATE_OR_REPLACE // check only that there are not such table +}; + +enum enum_drop_mode +{ + DROP_DEFAULT, // mode is not specified + DROP_CASCADE, // CASCADE option + DROP_RESTRICT // RESTRICT option +}; + +/* Options to add_table_to_list() */ +#define TL_OPTION_UPDATING 1 +#define TL_OPTION_FORCE_INDEX 2 +#define TL_OPTION_IGNORE_LEAVES 4 +#define TL_OPTION_ALIAS 8 + +typedef List List_item; +typedef Mem_root_array Group_list_ptrs; + +/* SERVERS CACHE CHANGES */ +typedef struct st_lex_server_options +{ + long port; + uint server_name_length; + char *server_name, *host, *db, *username, *password, *scheme, *socket, *owner; +} LEX_SERVER_OPTIONS; + + +/** + Structure to hold parameters for CHANGE MASTER, START SLAVE, and STOP SLAVE. + + Remark: this should not be confused with Master_info (and perhaps + would better be renamed to st_lex_replication_info). Some fields, + e.g., delay, are saved in Relay_log_info, not in Master_info. +*/ +struct LEX_MASTER_INFO +{ + DYNAMIC_ARRAY repl_ignore_server_ids; + char *host, *user, *password, *log_file_name; + char *ssl_key, *ssl_cert, *ssl_ca, *ssl_capath, *ssl_cipher; + char *relay_log_name; + ulonglong pos; + ulong relay_log_pos; + ulong server_id; + uint port, connect_retry; + float heartbeat_period; + /* + Enum is used for making it possible to detect if the user + changed variable or if it should be left at old value + */ + enum {LEX_MI_UNCHANGED, LEX_MI_DISABLE, LEX_MI_ENABLE} + ssl, ssl_verify_server_cert, heartbeat_opt, repl_ignore_server_ids_opt; + + void init() + { + bzero(this, sizeof(*this)); + my_init_dynamic_array(&repl_ignore_server_ids, + sizeof(::server_id), 0, 16); + } + void reset() + { + delete_dynamic(&repl_ignore_server_ids); + host= user= password= log_file_name= ssl_key= ssl_cert= ssl_ca= + ssl_capath= ssl_cipher= relay_log_name= 0; + pos= relay_log_pos= server_id= port= connect_retry= 0; + heartbeat_period= 0; + ssl= ssl_verify_server_cert= heartbeat_opt= + repl_ignore_server_ids_opt= LEX_MI_UNCHANGED; + } +}; + +typedef struct st_lex_reset_slave +{ + bool all; +} LEX_RESET_SLAVE; + +enum sub_select_type +{ + UNSPECIFIED_TYPE,UNION_TYPE, INTERSECT_TYPE, + EXCEPT_TYPE, GLOBAL_OPTIONS_TYPE, DERIVED_TABLE_TYPE, OLAP_TYPE +}; + +enum olap_type +{ + UNSPECIFIED_OLAP_TYPE, CUBE_TYPE, ROLLUP_TYPE +}; + +enum tablespace_op_type +{ + NO_TABLESPACE_OP, DISCARD_TABLESPACE, IMPORT_TABLESPACE +}; + +/* + String names used to print a statement with index hints. + Keep in sync with index_hint_type. +*/ +extern const char * index_hint_type_name[]; +typedef uchar index_clause_map; + +/* + Bits in index_clause_map : one for each possible FOR clause in + USE/FORCE/IGNORE INDEX index hint specification +*/ +#define INDEX_HINT_MASK_JOIN (1) +#define INDEX_HINT_MASK_GROUP (1 << 1) +#define INDEX_HINT_MASK_ORDER (1 << 2) + +#define INDEX_HINT_MASK_ALL (INDEX_HINT_MASK_JOIN | INDEX_HINT_MASK_GROUP | \ + INDEX_HINT_MASK_ORDER) + +/* Single element of an USE/FORCE/IGNORE INDEX list specified as a SQL hint */ +class Index_hint : public Sql_alloc +{ +public: + /* The type of the hint : USE/FORCE/IGNORE */ + enum index_hint_type type; + /* Where the hit applies to. A bitmask of INDEX_HINT_MASK_ values */ + index_clause_map clause; + /* + The index name. Empty (str=NULL) name represents an empty list + USE INDEX () clause + */ + LEX_STRING key_name; + + Index_hint (enum index_hint_type type_arg, index_clause_map clause_arg, + char *str, uint length) : + type(type_arg), clause(clause_arg) + { + key_name.str= str; + key_name.length= length; + } + + void print(THD *thd, String *str); +}; + +/* + The state of the lex parsing for selects + + master and slaves are pointers to select_lex. + master is pointer to upper level node. + slave is pointer to lower level node + select_lex is a SELECT without union + unit is container of either + - One SELECT + - UNION of selects + select_lex and unit are both inherited form select_lex_node + neighbors are two select_lex or units on the same level + + All select describing structures linked with following pointers: + - list of neighbors (next/prev) (prev of first element point to slave + pointer of upper structure) + - For select this is a list of UNION's (or one element list) + - For units this is a list of sub queries for the upper level select + + - pointer to master (master), which is + If this is a unit + - pointer to outer select_lex + If this is a select_lex + - pointer to outer unit structure for select + + - pointer to slave (slave), which is either: + If this is a unit: + - first SELECT that belong to this unit + If this is a select_lex + - first unit that belong to this SELECT (subquries or derived tables) + + - list of all select_lex (link_next/link_prev) + This is to be used for things like derived tables creation, where we + go through this list and create the derived tables. + + If unit contain several selects (UNION now, INTERSECT etc later) + then it have special select_lex called fake_select_lex. It used for + storing global parameters (like ORDER BY, LIMIT) and executing union. + Subqueries used in global ORDER BY clause will be attached to this + fake_select_lex, which will allow them correctly resolve fields of + 'upper' UNION and outer selects. + + For example for following query: + + select * + from table1 + where table1.field IN (select * from table1_1_1 union + select * from table1_1_2) + union + select * + from table2 + where table2.field=(select (select f1 from table2_1_1_1_1 + where table2_1_1_1_1.f2=table2_1_1.f3) + from table2_1_1 + where table2_1_1.f1=table2.f2) + union + select * from table3; + + we will have following structure: + + select1: (select * from table1 ...) + select2: (select * from table2 ...) + select3: (select * from table3) + select1.1.1: (select * from table1_1_1) + ... + + main unit + fake0 + select1 select2 select3 + |^^ |^ + s||| ||master + l||| |+---------------------------------+ + a||| +---------------------------------+| + v|||master slave || + e||+-------------------------+ || + V| neighbor | V| + unit1.1<+==================>unit1.2 unit2.1 + fake1.1 + select1.1.1 select 1.1.2 select1.2.1 select2.1.1 + |^ + || + V| + unit2.1.1.1 + select2.1.1.1.1 + + + relation in main unit will be following: + (bigger picture for: + main unit + fake0 + select1 select2 select3 + in the above picture) + + main unit + |^^^^|fake_select_lex + |||||+--------------------------------------------+ + ||||+--------------------------------------------+| + |||+------------------------------+ || + ||+--------------+ | || + slave||master | | || + V| neighbor | neighbor | master|V + select1<========>select2<========>select3 fake0 + + list of all select_lex will be following (as it will be constructed by + parser): + + select1->select2->select3->select2.1.1->select 2.1.2->select2.1.1.1.1-+ + | + +---------------------------------------------------------------------+ + | + +->select1.1.1->select1.1.2 + +*/ + +/* + Base class for st_select_lex (SELECT_LEX) & + st_select_lex_unit (SELECT_LEX_UNIT) +*/ +struct LEX; +class st_select_lex; +class st_select_lex_unit; + + +class st_select_lex_node { +protected: + st_select_lex_node *next, **prev, /* neighbor list */ + *master, *slave, /* vertical links */ + *link_next, **link_prev; /* list of whole SELECT_LEX */ +public: + + ulonglong options; + + /* + In sql_cache we store SQL_CACHE flag as specified by user to be + able to restore SELECT statement from internal structures. + */ + enum e_sql_cache { SQL_CACHE_UNSPECIFIED, SQL_NO_CACHE, SQL_CACHE }; + e_sql_cache sql_cache; + + /* + result of this query can't be cached, bit field, can be : + UNCACHEABLE_DEPENDENT_GENERATED + UNCACHEABLE_DEPENDENT_INJECTED + UNCACHEABLE_RAND + UNCACHEABLE_SIDEEFFECT + UNCACHEABLE_EXPLAIN + UNCACHEABLE_PREPARE + */ + uint8 uncacheable; + enum sub_select_type linkage; + bool no_table_names_allowed; /* used for global order by */ + + static void *operator new(size_t size) throw () + { + return sql_alloc(size); + } + static void *operator new(size_t size, MEM_ROOT *mem_root) throw () + { return (void*) alloc_root(mem_root, (uint) size); } + static void operator delete(void *ptr,size_t size) { TRASH_FREE(ptr, size); } + static void operator delete(void *ptr, MEM_ROOT *mem_root) {} + + // Ensures that at least all members used during cleanup() are initialized. + st_select_lex_node() + : next(NULL), prev(NULL), + master(NULL), slave(NULL), + link_next(NULL), link_prev(NULL), + linkage(UNSPECIFIED_TYPE) + { + } + virtual ~st_select_lex_node() {} + + inline st_select_lex_node* get_master() { return master; } + virtual void init_query(); + virtual void init_select(); + void include_down(st_select_lex_node *upper); + void add_slave(st_select_lex_node *slave_arg); + void include_neighbour(st_select_lex_node *before); + void include_standalone(st_select_lex_node *sel, st_select_lex_node **ref); + void include_global(st_select_lex_node **plink); + void exclude(); + void exclude_from_tree(); + + virtual st_select_lex_unit* master_unit()= 0; + virtual st_select_lex* outer_select()= 0; + virtual st_select_lex* return_after_parsing()= 0; + + virtual bool set_braces(bool value); + virtual bool inc_in_sum_expr(); + virtual uint get_in_sum_expr(); + virtual TABLE_LIST* get_table_list(); + virtual List* get_item_list(); + virtual ulong get_table_join_options(); + virtual TABLE_LIST *add_table_to_list(THD *thd, Table_ident *table, + LEX_STRING *alias, + ulong table_options, + thr_lock_type flags= TL_UNLOCK, + enum_mdl_type mdl_type= MDL_SHARED_READ, + List *hints= 0, + LEX_STRING *option= 0); + virtual void set_lock_for_tables(thr_lock_type lock_type, bool for_update) {} + + friend class st_select_lex_unit; + friend bool mysql_new_select(LEX *lex, bool move_down); + friend bool mysql_make_view(THD *thd, File_parser *parser, + TABLE_LIST *table, uint flags); + friend bool mysql_derived_prepare(THD *thd, LEX *lex, + TABLE_LIST *orig_table_list); + friend bool mysql_derived_merge(THD *thd, LEX *lex, + TABLE_LIST *orig_table_list); + friend bool TABLE_LIST::init_derived(THD *thd, bool init_view); +private: + void fast_exclude(); +}; +typedef class st_select_lex_node SELECT_LEX_NODE; + +/* + SELECT_LEX_UNIT - unit of selects (UNION, INTERSECT, ...) group + SELECT_LEXs +*/ +class THD; +class select_result; +class JOIN; +class select_union; +class Procedure; + + +class st_select_lex_unit: public st_select_lex_node { +protected: + TABLE_LIST result_table_list; + select_union *union_result; + ulonglong found_rows_for_union; + bool saved_error; + +public: + // Ensures that at least all members used during cleanup() are initialized. + st_select_lex_unit() + : union_result(NULL), table(NULL), result(NULL), + cleaned(false), + fake_select_lex(NULL) + { + } + + + TABLE *table; /* temporary table using for appending UNION results */ + select_result *result; + bool prepared, // prepare phase already performed for UNION (unit) + optimized, // optimize phase already performed for UNION (unit) + executed, // already executed + cleaned; + + // list of fields which points to temporary table for union + List item_list; + /* + list of types of items inside union (used for union & derived tables) + + Item_type_holders from which this list consist may have pointers to Field, + pointers is valid only after preparing SELECTS of this unit and before + any SELECT of this unit execution + */ + List types; + /* + Pointer to 'last' select or pointer to unit where stored + global parameters for union + */ + st_select_lex *global_parameters; + //node on wich we should return current_select pointer after parsing subquery + st_select_lex *return_to; + /* LIMIT clause runtime counters */ + ha_rows select_limit_cnt, offset_limit_cnt; + /* not NULL if unit used in subselect, point to subselect item */ + Item_subselect *item; + /* + TABLE_LIST representing this union in the embedding select. Used for + derived tables/views handling. + */ + TABLE_LIST *derived; + /* thread handler */ + THD *thd; + /* + SELECT_LEX for hidden SELECT in onion which process global + ORDER BY and LIMIT + */ + st_select_lex *fake_select_lex; + + st_select_lex *union_distinct; /* pointer to the last UNION DISTINCT */ + bool describe; /* union exec() called for EXPLAIN */ + Procedure *last_procedure; /* Pointer to procedure, if such exists */ + + /* + Insert table with stored virtual columns. + This is used only in those rare cases + when the list of inserted values is empty. + */ + TABLE *insert_table_with_stored_vcol; + + void init_query(); + st_select_lex_unit* master_unit(); + st_select_lex* outer_select(); + st_select_lex* first_select() + { + return reinterpret_cast(slave); + } + st_select_lex_unit* next_unit() + { + return reinterpret_cast(next); + } + st_select_lex* return_after_parsing() { return return_to; } + void exclude_level(); + void exclude_tree(); + + /* UNION methods */ + bool prepare(THD *thd, select_result *result, ulong additional_options); + bool optimize(); + bool exec(); + bool cleanup(); + inline void unclean() { cleaned= 0; } + void reinit_exec_mechanism(); + + void print(String *str, enum_query_type query_type); + + bool add_fake_select_lex(THD *thd); + void init_prepare_fake_select_lex(THD *thd, bool first_execution); + inline bool is_prepared() { return prepared; } + bool change_result(select_result_interceptor *result, + select_result_interceptor *old_result); + void set_limit(st_select_lex *values); + void set_thd(THD *thd_arg) { thd= thd_arg; } + inline bool is_union (); + + void set_unique_exclude(); + + friend void lex_start(THD *thd); + friend int subselect_union_engine::exec(); + + List *get_unit_column_types(); +}; + +typedef class st_select_lex_unit SELECT_LEX_UNIT; + + +#define TOUCHED_SEL_COND 1/* WHERE/HAVING/ON should be reinited before use */ +#define TOUCHED_SEL_DERIVED (1<<1)/* derived should be reinited before use */ + +/* + SELECT_LEX - store information of parsed SELECT statment +*/ +class st_select_lex: public st_select_lex_node +{ +public: + Name_resolution_context context; + char *db; + Item *where, *having; /* WHERE & HAVING clauses */ + Item *prep_where; /* saved WHERE clause for prepared statement processing */ + Item *prep_having;/* saved HAVING clause for prepared statement processing */ + /* Saved values of the WHERE and HAVING clauses*/ + Item::cond_result cond_value, having_value; + /* point on lex in which it was created, used in view subquery detection */ + LEX *parent_lex; + enum olap_type olap; + /* FROM clause - points to the beginning of the TABLE_LIST::next_local list. */ + SQL_I_List table_list; + + /* + GROUP BY clause. + This list may be mutated during optimization (by remove_const()), + so for prepared statements, we keep a copy of the ORDER.next pointers in + group_list_ptrs, and re-establish the original list before each execution. + */ + SQL_I_List group_list; + Group_list_ptrs *group_list_ptrs; + + List item_list; /* list of fields & expressions */ + List pre_fix; /* above list before fix_fields */ + List interval_list; + bool is_item_list_lookup; + /* + Usualy it is pointer to ftfunc_list_alloc, but in union used to create fake + select_lex for calling mysql_select under results of union + */ + List *ftfunc_list; + List ftfunc_list_alloc; + /* + The list of items to which MIN/MAX optimizations of opt_sum_query() + have been applied. Used to rollback those optimizations if it's needed. + */ + List min_max_opt_list; + JOIN *join; /* after JOIN::prepare it is pointer to corresponding JOIN */ + List top_join_list; /* join list of the top level */ + List *join_list; /* list for the currently parsed join */ + TABLE_LIST *embedding; /* table embedding to the above list */ + List sj_nests; /* Semi-join nests within this join */ + /* + Beginning of the list of leaves in a FROM clause, where the leaves + inlcude all base tables including view tables. The tables are connected + by TABLE_LIST::next_leaf, so leaf_tables points to the left-most leaf. + + List of all base tables local to a subquery including all view + tables. Unlike 'next_local', this in this list views are *not* + leaves. Created in setup_tables() -> make_leaves_list(). + */ + /* + Subqueries that will need to be converted to semi-join nests, including + those converted to jtbm nests. The list is emptied when conversion is done. + */ + List sj_subselects; + + List leaf_tables; + List leaf_tables_exec; + List leaf_tables_prep; + enum leaf_list_state {UNINIT, READY, SAVED}; + enum leaf_list_state prep_leaf_list_state; + uint insert_tables; + st_select_lex *merged_into; /* select which this select is merged into */ + /* (not 0 only for views/derived tables) */ + + const char *type; /* type of select for EXPLAIN */ + + SQL_I_List order_list; /* ORDER clause */ + SQL_I_List gorder_list; + Item *select_limit, *offset_limit; /* LIMIT clause parameters */ + // Arrays of pointers to top elements of all_fields list + Item **ref_pointer_array; + size_t ref_pointer_array_size; // Number of elements in array. + + /* + number of items in select_list and HAVING clause used to get number + bigger then can be number of entries that will be added to all item + list during split_sum_func + */ + uint select_n_having_items; + uint cond_count; /* number of arguments of and/or/xor in where/having/on */ + uint between_count; /* number of between predicates in where/having/on */ + uint max_equal_elems; /* maximal number of elements in multiple equalities */ + /* + Number of fields used in select list or where clause of current select + and all inner subselects. + */ + uint select_n_where_fields; + enum_parsing_place parsing_place; /* where we are parsing expression */ + bool with_sum_func; /* sum function indicator */ + + ulong table_join_options; + uint in_sum_expr; + uint select_number; /* number of select (used for EXPLAIN) */ + + /* + nest_levels are local to the query or VIEW, + and that view merge procedure does not re-calculate them. + So we also have to remember unit against which we count levels. + */ + SELECT_LEX_UNIT *nest_level_base; + int nest_level; /* nesting level of select */ + Item_sum *inner_sum_func_list; /* list of sum func in nested selects */ + uint with_wild; /* item list contain '*' */ + bool braces; /* SELECT ... UNION (SELECT ... ) <- this braces */ + /* TRUE when having fix field called in processing of this SELECT */ + bool having_fix_field; + /* List of references to fields referenced from inner selects */ + List inner_refs_list; + /* Number of Item_sum-derived objects in this SELECT */ + uint n_sum_items; + /* Number of Item_sum-derived objects in children and descendant SELECTs */ + uint n_child_sum_items; + + /* explicit LIMIT clause was used */ + bool explicit_limit; + /* + This array is used to note whether we have any candidates for + expression caching in the corresponding clauses + */ + bool expr_cache_may_be_used[PARSING_PLACE_SIZE]; + /* + there are subquery in HAVING clause => we can't close tables before + query processing end even if we use temporary table + */ + bool subquery_in_having; + /* TRUE <=> this SELECT is correlated w.r.t. some ancestor select */ + bool is_correlated; + /* + This variable is required to ensure proper work of subqueries and + stored procedures. Generally, one should use the states of + Query_arena to determine if it's a statement prepare or first + execution of a stored procedure. However, in case when there was an + error during the first execution of a stored procedure, the SP body + is not expelled from the SP cache. Therefore, a deeply nested + subquery might be left unoptimized. So we need this per-subquery + variable to inidicate the optimization/execution state of every + subquery. Prepared statements work OK in that regard, as in + case of an error during prepare the PS is not created. + */ + uint8 changed_elements; // see TOUCHED_SEL_* + /* TODO: add foloowing first_* to bitmap above */ + bool first_natural_join_processing; + bool first_cond_optimization; + /* do not wrap view fields with Item_ref */ + bool no_wrap_view_item; + /* exclude this select from check of unique_table() */ + bool exclude_from_table_unique_test; + /* index in the select list of the expression currently being fixed */ + int cur_pos_in_select_list; + + List udf_list; /* udf function calls stack */ + + /* + This is a copy of the original JOIN USING list that comes from + the parser. The parser : + 1. Sets the natural_join of the second TABLE_LIST in the join + and the st_select_lex::prev_join_using. + 2. Makes a parent TABLE_LIST and sets its is_natural_join/ + join_using_fields members. + 3. Uses the wrapper TABLE_LIST as a table in the upper level. + We cannot assign directly to join_using_fields in the parser because + at stage (1.) the parent TABLE_LIST is not constructed yet and + the assignment will override the JOIN USING fields of the lower level + joins on the right. + */ + List *prev_join_using; + + /* namp of nesting SELECT visibility (for aggregate functions check) */ + nesting_map name_visibility_map; + + void init_query(); + void init_select(); + st_select_lex_unit* master_unit(); + st_select_lex_unit* first_inner_unit() + { + return (st_select_lex_unit*) slave; + } + st_select_lex* outer_select(); + st_select_lex* next_select() { return (st_select_lex*) next; } + st_select_lex* next_select_in_list() + { + return (st_select_lex*) link_next; + } + st_select_lex_node** next_select_in_list_addr() + { + return &link_next; + } + st_select_lex* return_after_parsing() + { + return master_unit()->return_after_parsing(); + } + inline bool is_subquery_function() { return master_unit()->item != 0; } + + bool mark_as_dependent(THD *thd, st_select_lex *last, Item *dependency); + + bool set_braces(bool value); + bool inc_in_sum_expr(); + uint get_in_sum_expr(); + + bool add_item_to_list(THD *thd, Item *item); + bool add_group_to_list(THD *thd, Item *item, bool asc); + bool add_ftfunc_to_list(Item_func_match *func); + bool add_order_to_list(THD *thd, Item *item, bool asc); + bool add_gorder_to_list(THD *thd, Item *item, bool asc); + TABLE_LIST* add_table_to_list(THD *thd, Table_ident *table, + LEX_STRING *alias, + ulong table_options, + thr_lock_type flags= TL_UNLOCK, + enum_mdl_type mdl_type= MDL_SHARED_READ, + List *hints= 0, + LEX_STRING *option= 0); + TABLE_LIST* get_table_list(); + bool init_nested_join(THD *thd); + TABLE_LIST *end_nested_join(THD *thd); + TABLE_LIST *nest_last_join(THD *thd); + void add_joined_table(TABLE_LIST *table); + bool add_cross_joined_table(TABLE_LIST *left_op, TABLE_LIST *right_op, + bool straight_fl); + TABLE_LIST *convert_right_join(); + List* get_item_list(); + ulong get_table_join_options(); + void set_lock_for_tables(thr_lock_type lock_type, bool for_update); + inline void init_order() + { + order_list.elements= 0; + order_list.first= 0; + order_list.next= &order_list.first; + } + /* + This method created for reiniting LEX in mysql_admin_table() and can be + used only if you are going remove all SELECT_LEX & units except belonger + to LEX (LEX::unit & LEX::select, for other purposes there are + SELECT_LEX_UNIT::exclude_level & SELECT_LEX_UNIT::exclude_tree + */ + void cut_subtree() { slave= 0; } + bool test_limit(); + + friend void lex_start(THD *thd); + st_select_lex() : group_list_ptrs(NULL), n_sum_items(0), n_child_sum_items(0) + {} + void make_empty_select() + { + init_query(); + init_select(); + } + bool setup_ref_array(THD *thd, uint order_group_num); + void print(THD *thd, String *str, enum_query_type query_type); + static void print_order(String *str, + ORDER *order, + enum_query_type query_type); + void print_limit(THD *thd, String *str, enum_query_type query_type); + void fix_prepare_information(THD *thd, Item **conds, Item **having_conds); + /* + Destroy the used execution plan (JOIN) of this subtree (this + SELECT_LEX and all nested SELECT_LEXes and SELECT_LEX_UNITs). + */ + bool cleanup(); + /* + Recursively cleanup the join of this select lex and of all nested + select lexes. + */ + void cleanup_all_joins(bool full); + + void set_index_hint_type(enum index_hint_type type, index_clause_map clause); + + /* + Add a index hint to the tagged list of hints. The type and clause of the + hint will be the current ones (set by set_index_hint()) + */ + bool add_index_hint (THD *thd, char *str, uint length); + + /* make a list to hold index hints */ + void alloc_index_hints (THD *thd); + /* read and clear the index hints */ + List* pop_index_hints(void) + { + List *hints= index_hints; + index_hints= NULL; + return hints; + } + + void clear_index_hints(void) { index_hints= NULL; } + bool is_part_of_union() { return master_unit()->is_union(); } + bool optimize_unflattened_subqueries(bool const_only); + /* Set the EXPLAIN type for this subquery. */ + void set_explain_type(); + bool handle_derived(LEX *lex, uint phases); + void append_table_to_list(TABLE_LIST *TABLE_LIST::*link, TABLE_LIST *table); + bool get_free_table_map(table_map *map, uint *tablenr); + void replace_leaf_table(TABLE_LIST *table, List &tbl_list); + void remap_tables(TABLE_LIST *derived, table_map map, + uint tablenr, st_select_lex *parent_lex); + bool merge_subquery(THD *thd, TABLE_LIST *derived, st_select_lex *subq_lex, + uint tablenr, table_map map); + inline bool is_mergeable() + { + return (next_select() == 0 && group_list.elements == 0 && + having == 0 && with_sum_func == 0 && + table_list.elements >= 1 && !(options & SELECT_DISTINCT) && + select_limit == 0); + } + void mark_as_belong_to_derived(TABLE_LIST *derived); + void increase_derived_records(ha_rows records); + void update_used_tables(); + void update_correlated_cache(); + void mark_const_derived(bool empty); + + bool save_leaf_tables(THD *thd); + bool save_prep_leaf_tables(THD *thd); + bool is_merged_child_of(st_select_lex *ancestor); + + /* + For MODE_ONLY_FULL_GROUP_BY we need to maintain two flags: + - Non-aggregated fields are used in this select. + - Aggregate functions are used in this select. + In MODE_ONLY_FULL_GROUP_BY only one of these may be true. + */ + bool non_agg_field_used() const { return m_non_agg_field_used; } + bool agg_func_used() const { return m_agg_func_used; } + + void set_non_agg_field_used(bool val) { m_non_agg_field_used= val; } + void set_agg_func_used(bool val) { m_agg_func_used= val; } + +private: + bool m_non_agg_field_used; + bool m_agg_func_used; + + /* current index hint kind. used in filling up index_hints */ + enum index_hint_type current_index_hint_type; + index_clause_map current_index_hint_clause; + /* a list of USE/FORCE/IGNORE INDEX */ + List *index_hints; + +public: + inline void add_where_field(st_select_lex *sel) + { + DBUG_ASSERT(this != sel); + select_n_where_fields+= sel->select_n_where_fields; + } +}; +typedef class st_select_lex SELECT_LEX; + +inline bool st_select_lex_unit::is_union () +{ + return first_select()->next_select() && + first_select()->next_select()->linkage == UNION_TYPE; +} + +#define ALTER_ADD_COLUMN (1L << 0) +#define ALTER_DROP_COLUMN (1L << 1) +#define ALTER_CHANGE_COLUMN (1L << 2) +#define ALTER_ADD_INDEX (1L << 3) +#define ALTER_DROP_INDEX (1L << 4) +#define ALTER_RENAME (1L << 5) +#define ALTER_ORDER (1L << 6) +#define ALTER_OPTIONS (1L << 7) +#define ALTER_CHANGE_COLUMN_DEFAULT (1L << 8) +#define ALTER_KEYS_ONOFF (1L << 9) +#define ALTER_CONVERT (1L << 10) +#define ALTER_RECREATE (1L << 11) +#define ALTER_ADD_PARTITION (1L << 12) +#define ALTER_DROP_PARTITION (1L << 13) +#define ALTER_COALESCE_PARTITION (1L << 14) +#define ALTER_REORGANIZE_PARTITION (1L << 15) +#define ALTER_PARTITION (1L << 16) +#define ALTER_ADMIN_PARTITION (1L << 17) +#define ALTER_TABLE_REORG (1L << 18) +#define ALTER_REBUILD_PARTITION (1L << 19) +#define ALTER_ALL_PARTITION (1L << 20) +#define ALTER_REMOVE_PARTITIONING (1L << 21) +#define ALTER_FOREIGN_KEY (1L << 22) +#define ALTER_TRUNCATE_PARTITION (1L << 23) + +enum enum_alter_table_change_level +{ + ALTER_TABLE_METADATA_ONLY= 0, + ALTER_TABLE_DATA_CHANGED= 1, + ALTER_TABLE_INDEX_CHANGED= 2 +}; + + +/** + Temporary hack to enable a class bound forward declaration + of the enum_alter_table_change_level enumeration. To be + removed once Alter_info is moved to the sql_alter.h + header. +*/ +class Alter_table_change_level +{ +private: + typedef enum enum_alter_table_change_level enum_type; + enum_type value; +public: + void operator = (enum_type v) { value = v; } + operator enum_type () { return value; } +}; + + +/** + @brief Parsing data for CREATE or ALTER TABLE. + + This structure contains a list of columns or indexes to be created, + altered or dropped. +*/ + +class Alter_info +{ +public: + List drop_list; + List alter_list; + List key_list; + List create_list; + uint flags; + enum enum_enable_or_disable keys_onoff; + enum tablespace_op_type tablespace_op; + List partition_names; + uint num_parts; + enum_alter_table_change_level change_level; + Create_field *datetime_field; + bool error_if_not_empty; + + + Alter_info() : + flags(0), + keys_onoff(LEAVE_AS_IS), + tablespace_op(NO_TABLESPACE_OP), + num_parts(0), + change_level(ALTER_TABLE_METADATA_ONLY), + datetime_field(NULL), + error_if_not_empty(FALSE) + {} + + void reset() + { + drop_list.empty(); + alter_list.empty(); + key_list.empty(); + create_list.empty(); + flags= 0; + keys_onoff= LEAVE_AS_IS; + tablespace_op= NO_TABLESPACE_OP; + num_parts= 0; + partition_names.empty(); + change_level= ALTER_TABLE_METADATA_ONLY; + datetime_field= 0; + error_if_not_empty= FALSE; + } + Alter_info(const Alter_info &rhs, MEM_ROOT *mem_root); +private: + Alter_info &operator=(const Alter_info &rhs); // not implemented + Alter_info(const Alter_info &rhs); // not implemented +}; + +struct st_sp_chistics +{ + LEX_STRING comment; + enum enum_sp_suid_behaviour suid; + bool detistic; + enum enum_sp_data_access daccess; +}; + +extern const LEX_STRING null_lex_str; +extern const LEX_STRING empty_lex_str; + +struct st_trg_chistics +{ + enum trg_action_time_type action_time; + enum trg_event_type event; +}; + +extern sys_var *trg_new_row_fake_var; + +enum xa_option_words {XA_NONE, XA_JOIN, XA_RESUME, XA_ONE_PHASE, + XA_SUSPEND, XA_FOR_MIGRATE}; + +extern const LEX_STRING null_lex_str; +extern const LEX_STRING empty_lex_str; + +class Sroutine_hash_entry; + +/* + Class representing list of all tables used by statement and other + information which is necessary for opening and locking its tables, + like SQL command for this statement. + + Also contains information about stored functions used by statement + since during its execution we may have to add all tables used by its + stored functions/triggers to this list in order to pre-open and lock + them. + + Also used by LEX::reset_n_backup/restore_backup_query_tables_list() + methods to save and restore this information. +*/ + +class Query_tables_list +{ +public: + /** + SQL command for this statement. Part of this class since the + process of opening and locking tables for the statement needs + this information to determine correct type of lock for some of + the tables. + */ + enum_sql_command sql_command; + /* Global list of all tables used by this statement */ + TABLE_LIST *query_tables; + /* Pointer to next_global member of last element in the previous list. */ + TABLE_LIST **query_tables_last; + /* + If non-0 then indicates that query requires prelocking and points to + next_global member of last own element in query table list (i.e. last + table which was not added to it as part of preparation to prelocking). + 0 - indicates that this query does not need prelocking. + */ + TABLE_LIST **query_tables_own_last; + /* + Set of stored routines called by statement. + (Note that we use lazy-initialization for this hash). + */ + enum { START_SROUTINES_HASH_SIZE= 16 }; + HASH sroutines; + /* + List linking elements of 'sroutines' set. Allows you to add new elements + to this set as you iterate through the list of existing elements. + 'sroutines_list_own_last' is pointer to ::next member of last element of + this list which represents routine which is explicitly used by query. + 'sroutines_list_own_elements' number of explicitly used routines. + We use these two members for restoring of 'sroutines_list' to the state + in which it was right after query parsing. + */ + SQL_I_List sroutines_list; + Sroutine_hash_entry **sroutines_list_own_last; + uint sroutines_list_own_elements; + + /* + These constructor and destructor serve for creation/destruction + of Query_tables_list instances which are used as backup storage. + */ + Query_tables_list() {} + ~Query_tables_list() {} + + /* Initializes (or resets) Query_tables_list object for "real" use. */ + void reset_query_tables_list(bool init); + void destroy_query_tables_list(); + void set_query_tables_list(Query_tables_list *state) + { + *this= *state; + } + + /* + Direct addition to the list of query tables. + If you are using this function, you must ensure that the table + object, in particular table->db member, is initialized. + */ + void add_to_query_tables(TABLE_LIST *table) + { + *(table->prev_global= query_tables_last)= table; + query_tables_last= &table->next_global; + } + bool requires_prelocking() + { + return test(query_tables_own_last); + } + void mark_as_requiring_prelocking(TABLE_LIST **tables_own_last) + { + query_tables_own_last= tables_own_last; + } + /* Return pointer to first not-own table in query-tables or 0 */ + TABLE_LIST* first_not_own_table() + { + return ( query_tables_own_last ? *query_tables_own_last : 0); + } + void chop_off_not_own_tables() + { + if (query_tables_own_last) + { + *query_tables_own_last= 0; + query_tables_last= query_tables_own_last; + query_tables_own_last= 0; + } + } + + /** Return a pointer to the last element in query table list. */ + TABLE_LIST *last_table() + { + /* Don't use offsetof() macro in order to avoid warnings. */ + return query_tables ? + (TABLE_LIST*) ((char*) query_tables_last - + ((char*) &(query_tables->next_global) - + (char*) query_tables)) : + 0; + } + + /** + Enumeration listing of all types of unsafe statement. + + @note The order of elements of this enumeration type must + correspond to the order of the elements of the @c explanations + array defined in the body of @c THD::issue_unsafe_warnings. + */ + enum enum_binlog_stmt_unsafe { + /** + SELECT..LIMIT is unsafe because the set of rows returned cannot + be predicted. + */ + BINLOG_STMT_UNSAFE_LIMIT= 0, + /** + INSERT DELAYED is unsafe because the time when rows are inserted + cannot be predicted. + */ + BINLOG_STMT_UNSAFE_INSERT_DELAYED, + /** + Access to log tables is unsafe because slave and master probably + log different things. + */ + BINLOG_STMT_UNSAFE_SYSTEM_TABLE, + /** + Inserting into an autoincrement column in a stored routine is unsafe. + Even with just one autoincrement column, if the routine is invoked more than + once slave is not guaranteed to execute the statement graph same way as + the master. + And since it's impossible to estimate how many times a routine can be invoked at + the query pre-execution phase (see lock_tables), the statement is marked + pessimistically unsafe. + */ + BINLOG_STMT_UNSAFE_AUTOINC_COLUMNS, + /** + Using a UDF (user-defined function) is unsafe. + */ + BINLOG_STMT_UNSAFE_UDF, + /** + Using most system variables is unsafe, because slave may run + with different options than master. + */ + BINLOG_STMT_UNSAFE_SYSTEM_VARIABLE, + /** + Using some functions is unsafe (e.g., UUID). + */ + BINLOG_STMT_UNSAFE_SYSTEM_FUNCTION, + + /** + Mixing transactional and non-transactional statements are unsafe if + non-transactional reads or writes are occur after transactional + reads or writes inside a transaction. + */ + BINLOG_STMT_UNSAFE_NONTRANS_AFTER_TRANS, + + /** + Mixing self-logging and non-self-logging engines in a statement + is unsafe. + */ + BINLOG_STMT_UNSAFE_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE, + + /** + Statements that read from both transactional and non-transactional + tables and write to any of them are unsafe. + */ + BINLOG_STMT_UNSAFE_MIXED_STATEMENT, + + /** + INSERT...IGNORE SELECT is unsafe because which rows are ignored depends + on the order that rows are retrieved by SELECT. This order cannot be + predicted and may differ on master and the slave. + */ + BINLOG_STMT_UNSAFE_INSERT_IGNORE_SELECT, + + /** + INSERT...SELECT...UPDATE is unsafe because which rows are updated depends + on the order that rows are retrieved by SELECT. This order cannot be + predicted and may differ on master and the slave. + */ + BINLOG_STMT_UNSAFE_INSERT_SELECT_UPDATE, + + /** + Query that writes to a table with auto_inc column after selecting from + other tables are unsafe as the order in which the rows are retrieved by + select may differ on master and slave. + */ + BINLOG_STMT_UNSAFE_WRITE_AUTOINC_SELECT, + + /** + INSERT...REPLACE SELECT is unsafe because which rows are replaced depends + on the order that rows are retrieved by SELECT. This order cannot be + predicted and may differ on master and the slave. + */ + BINLOG_STMT_UNSAFE_REPLACE_SELECT, + + /** + CREATE TABLE... IGNORE... SELECT is unsafe because which rows are ignored + depends on the order that rows are retrieved by SELECT. This order cannot + be predicted and may differ on master and the slave. + */ + BINLOG_STMT_UNSAFE_CREATE_IGNORE_SELECT, + + /** + CREATE TABLE...REPLACE... SELECT is unsafe because which rows are replaced + depends on the order that rows are retrieved from SELECT. This order + cannot be predicted and may differ on master and the slave + */ + BINLOG_STMT_UNSAFE_CREATE_REPLACE_SELECT, + + /** + CREATE TABLE...SELECT on a table with auto-increment column is unsafe + because which rows are replaced depends on the order that rows are + retrieved from SELECT. This order cannot be predicted and may differ on + master and the slave + */ + BINLOG_STMT_UNSAFE_CREATE_SELECT_AUTOINC, + + /** + UPDATE...IGNORE is unsafe because which rows are ignored depends on the + order that rows are updated. This order cannot be predicted and may differ + on master and the slave. + */ + BINLOG_STMT_UNSAFE_UPDATE_IGNORE, + + /** + INSERT... ON DUPLICATE KEY UPDATE on a table with more than one + UNIQUE KEYS is unsafe. + */ + BINLOG_STMT_UNSAFE_INSERT_TWO_KEYS, + + /** + INSERT into auto-inc field which is not the first part of composed + primary key. + */ + BINLOG_STMT_UNSAFE_AUTOINC_NOT_FIRST, + + /* The last element of this enumeration type. */ + BINLOG_STMT_UNSAFE_COUNT + }; + /** + This has all flags from 0 (inclusive) to BINLOG_STMT_FLAG_COUNT + (exclusive) set. + */ + static const int BINLOG_STMT_UNSAFE_ALL_FLAGS= + ((1 << BINLOG_STMT_UNSAFE_COUNT) - 1); + + /** + Maps elements of enum_binlog_stmt_unsafe to error codes. + */ + static const int binlog_stmt_unsafe_errcode[BINLOG_STMT_UNSAFE_COUNT]; + + /** + Determine if this statement is marked as unsafe. + + @retval 0 if the statement is not marked as unsafe. + @retval nonzero if the statement is marked as unsafe. + */ + inline bool is_stmt_unsafe() const { + return get_stmt_unsafe_flags() != 0; + } + + inline bool is_stmt_unsafe(enum_binlog_stmt_unsafe unsafe) + { + return binlog_stmt_flags & (1 << unsafe); + } + + /** + Flag the current (top-level) statement as unsafe. + The flag will be reset after the statement has finished. + + @param unsafe_type The type of unsafety: one of the @c + BINLOG_STMT_FLAG_UNSAFE_* flags in @c enum_binlog_stmt_flag. + */ + inline void set_stmt_unsafe(enum_binlog_stmt_unsafe unsafe_type) { + DBUG_ENTER("set_stmt_unsafe"); + DBUG_ASSERT(unsafe_type >= 0 && unsafe_type < BINLOG_STMT_UNSAFE_COUNT); + binlog_stmt_flags|= (1U << unsafe_type); + DBUG_VOID_RETURN; + } + + /** + Set the bits of binlog_stmt_flags determining the type of + unsafeness of the current statement. No existing bits will be + cleared, but new bits may be set. + + @param flags A binary combination of zero or more bits, (1<= ISO_REPEATABLE_READ */ + + /** + Sets the type of table that is about to be accessed while executing a + statement. + + @param accessed_table Enumeration type that defines the type of table, + e.g. temporary, transactional, non-transactional. + */ + inline void set_stmt_accessed_table(enum_stmt_accessed_table accessed_table) + { + DBUG_ENTER("LEX::set_stmt_accessed_table"); + + DBUG_ASSERT(accessed_table >= 0 && accessed_table < STMT_ACCESS_TABLE_COUNT); + stmt_accessed_table_flag |= (1U << accessed_table); + + DBUG_VOID_RETURN; + } + + /** + Checks if a type of table is about to be accessed while executing a + statement. + + @param accessed_table Enumeration type that defines the type of table, + e.g. temporary, transactional, non-transactional. + + @return + @retval TRUE if the type of the table is about to be accessed + @retval FALSE otherwise + */ + inline bool stmt_accessed_table(enum_stmt_accessed_table accessed_table) + { + DBUG_ENTER("LEX::stmt_accessed_table"); + + DBUG_ASSERT(accessed_table >= 0 && accessed_table < STMT_ACCESS_TABLE_COUNT); + + DBUG_RETURN((stmt_accessed_table_flag & (1U << accessed_table)) != 0); + } + + /** + Checks if a temporary non-transactional table is about to be accessed + while executing a statement. + + @return + @retval TRUE if a temporary non-transactional table is about to be + accessed + @retval FALSE otherwise + */ + inline bool stmt_accessed_non_trans_temp_table() + { + DBUG_ENTER("THD::stmt_accessed_non_trans_temp_table"); + + DBUG_RETURN((stmt_accessed_table_flag & + ((1U << STMT_READS_TEMP_NON_TRANS_TABLE) | + (1U << STMT_WRITES_TEMP_NON_TRANS_TABLE))) != 0); + } + + /* + Checks if a mixed statement is unsafe. + + + @param in_multi_stmt_transaction_mode defines if there is an on-going + multi-transactional statement. + @param binlog_direct defines if --binlog-direct-non-trans-updates is + active. + @param trx_cache_is_not_empty defines if the trx-cache is empty or not. + @param trx_isolation defines the isolation level. + + @return + @retval TRUE if the mixed statement is unsafe + @retval FALSE otherwise + */ + inline bool is_mixed_stmt_unsafe(bool in_multi_stmt_transaction_mode, + bool binlog_direct, + bool trx_cache_is_not_empty, + uint tx_isolation) + { + bool unsafe= FALSE; + + if (in_multi_stmt_transaction_mode) + { + uint condition= + (binlog_direct ? BINLOG_DIRECT_ON : BINLOG_DIRECT_OFF) & + (trx_cache_is_not_empty ? TRX_CACHE_NOT_EMPTY : TRX_CACHE_EMPTY) & + (tx_isolation >= ISO_REPEATABLE_READ ? IL_GTE_REPEATABLE : IL_LT_REPEATABLE); + + unsafe= (binlog_unsafe_map[stmt_accessed_table_flag] & condition); + +#if !defined(DBUG_OFF) + DBUG_PRINT("LEX::is_mixed_stmt_unsafe", ("RESULT %02X %02X %02X\n", condition, + binlog_unsafe_map[stmt_accessed_table_flag], + (binlog_unsafe_map[stmt_accessed_table_flag] & condition))); + + int type_in= 0; + for (; type_in < STMT_ACCESS_TABLE_COUNT; type_in++) + { + if (stmt_accessed_table((enum_stmt_accessed_table) type_in)) + DBUG_PRINT("LEX::is_mixed_stmt_unsafe", ("ACCESSED %s ", + stmt_accessed_table_string((enum_stmt_accessed_table) type_in))); + } +#endif + } + + if (stmt_accessed_table(STMT_WRITES_NON_TRANS_TABLE) && + stmt_accessed_table(STMT_READS_TRANS_TABLE) && + tx_isolation < ISO_REPEATABLE_READ) + unsafe= TRUE; + else if (stmt_accessed_table(STMT_WRITES_TEMP_NON_TRANS_TABLE) && + stmt_accessed_table(STMT_READS_TRANS_TABLE) && + tx_isolation < ISO_REPEATABLE_READ) + unsafe= TRUE; + + return(unsafe); + } + + /** + true if the parsed tree contains references to stored procedures + or functions, false otherwise + */ + bool uses_stored_routines() const + { return sroutines_list.elements != 0; } + +private: + + /** + Enumeration listing special types of statements. + + Currently, the only possible type is ROW_INJECTION. + */ + enum enum_binlog_stmt_type { + /** + The statement is a row injection (i.e., either a BINLOG + statement or a row event executed by the slave SQL thread). + */ + BINLOG_STMT_TYPE_ROW_INJECTION = 0, + + /** The last element of this enumeration type. */ + BINLOG_STMT_TYPE_COUNT + }; + + /** + Bit field indicating the type of statement. + + There are two groups of bits: + + - The low BINLOG_STMT_UNSAFE_COUNT bits indicate the types of + unsafeness that the current statement has. + + - The next BINLOG_STMT_TYPE_COUNT bits indicate if the statement + is of some special type. + + This must be a member of LEX, not of THD: each stored procedure + needs to remember its unsafeness state between calls and each + stored procedure has its own LEX object (but no own THD object). + */ + uint32 binlog_stmt_flags; + + /** + Bit field that determines the type of tables that are about to be + be accessed while executing a statement. + */ + uint32 stmt_accessed_table_flag; +}; + + +/* + st_parsing_options contains the flags for constructions that are + allowed in the current statement. +*/ + +struct st_parsing_options +{ + bool allows_variable; + bool allows_select_into; + bool allows_select_procedure; + bool allows_derived; + + st_parsing_options() { reset(); } + void reset(); +}; + + +/** + The state of the lexical parser, when parsing comments. +*/ +enum enum_comment_state +{ + /** + Not parsing comments. + */ + NO_COMMENT, + /** + Parsing comments that need to be preserved. + Typically, these are user comments '/' '*' ... '*' '/'. + */ + PRESERVE_COMMENT, + /** + Parsing comments that need to be discarded. + Typically, these are special comments '/' '*' '!' ... '*' '/', + or '/' '*' '!' 'M' 'M' 'm' 'm' 'm' ... '*' '/', where the comment + markers should not be expanded. + */ + DISCARD_COMMENT +}; + + +/** + @brief This class represents the character input stream consumed during + lexical analysis. + + In addition to consuming the input stream, this class performs some + comment pre processing, by filtering out out of bound special text + from the query input stream. + Two buffers, with pointers inside each buffers, are maintained in + parallel. The 'raw' buffer is the original query text, which may + contain out-of-bound comments. The 'cpp' (for comments pre processor) + is the pre-processed buffer that contains only the query text that + should be seen once out-of-bound data is removed. +*/ + +class Lex_input_stream +{ +public: + Lex_input_stream() + { + } + + ~Lex_input_stream() + { + } + + /** + Object initializer. Must be called before usage. + + @retval FALSE OK + @retval TRUE Error + */ + bool init(THD *thd, char *buff, unsigned int length); + + void reset(char *buff, unsigned int length); + + /** + Set the echo mode. + + When echo is true, characters parsed from the raw input stream are + preserved. When false, characters parsed are silently ignored. + @param echo the echo mode. + */ + void set_echo(bool echo) + { + m_echo= echo; + } + + void save_in_comment_state() + { + m_echo_saved= m_echo; + in_comment_saved= in_comment; + } + + void restore_in_comment_state() + { + m_echo= m_echo_saved; + in_comment= in_comment_saved; + } + + /** + Skip binary from the input stream. + @param n number of bytes to accept. + */ + void skip_binary(int n) + { + if (m_echo) + { + memcpy(m_cpp_ptr, m_ptr, n); + m_cpp_ptr += n; + } + m_ptr += n; + } + + /** + Get a character, and advance in the stream. + @return the next character to parse. + */ + unsigned char yyGet() + { + char c= *m_ptr++; + if (m_echo) + *m_cpp_ptr++ = c; + return c; + } + + /** + Get the last character accepted. + @return the last character accepted. + */ + unsigned char yyGetLast() + { + return m_ptr[-1]; + } + + /** + Look at the next character to parse, but do not accept it. + */ + unsigned char yyPeek() + { + return m_ptr[0]; + } + + /** + Look ahead at some character to parse. + @param n offset of the character to look up + */ + unsigned char yyPeekn(int n) + { + return m_ptr[n]; + } + + /** + Cancel the effect of the last yyGet() or yySkip(). + Note that the echo mode should not change between calls to yyGet / yySkip + and yyUnget. The caller is responsible for ensuring that. + */ + void yyUnget() + { + m_ptr--; + if (m_echo) + m_cpp_ptr--; + } + + /** + Accept a character, by advancing the input stream. + */ + void yySkip() + { + if (m_echo) + *m_cpp_ptr++ = *m_ptr++; + else + m_ptr++; + } + + /** + Accept multiple characters at once. + @param n the number of characters to accept. + */ + void yySkipn(int n) + { + if (m_echo) + { + memcpy(m_cpp_ptr, m_ptr, n); + m_cpp_ptr += n; + } + m_ptr += n; + } + + /** + Puts a character back into the stream, canceling + the effect of the last yyGet() or yySkip(). + Note that the echo mode should not change between calls + to unput, get, or skip from the stream. + */ + char *yyUnput(char ch) + { + *--m_ptr= ch; + if (m_echo) + m_cpp_ptr--; + return m_ptr; + } + + /** + End of file indicator for the query text to parse. + @return true if there are no more characters to parse + */ + bool eof() + { + return (m_ptr >= m_end_of_query); + } + + /** + End of file indicator for the query text to parse. + @param n number of characters expected + @return true if there are less than n characters to parse + */ + bool eof(int n) + { + return ((m_ptr + n) >= m_end_of_query); + } + + /** Get the raw query buffer. */ + const char *get_buf() + { + return m_buf; + } + + /** Get the pre-processed query buffer. */ + const char *get_cpp_buf() + { + return m_cpp_buf; + } + + /** Get the end of the raw query buffer. */ + const char *get_end_of_query() + { + return m_end_of_query; + } + + /** Mark the stream position as the start of a new token. */ + void start_token() + { + m_tok_start_prev= m_tok_start; + m_tok_start= m_ptr; + m_tok_end= m_ptr; + + m_cpp_tok_start_prev= m_cpp_tok_start; + m_cpp_tok_start= m_cpp_ptr; + m_cpp_tok_end= m_cpp_ptr; + } + + /** + Adjust the starting position of the current token. + This is used to compensate for starting whitespace. + */ + void restart_token() + { + m_tok_start= m_ptr; + m_cpp_tok_start= m_cpp_ptr; + } + + /** Get the token start position, in the raw buffer. */ + const char *get_tok_start() + { + return m_tok_start; + } + + /** Get the token start position, in the pre-processed buffer. */ + const char *get_cpp_tok_start() + { + return m_cpp_tok_start; + } + + /** Get the token end position, in the raw buffer. */ + const char *get_tok_end() + { + return m_tok_end; + } + + /** Get the token end position, in the pre-processed buffer. */ + const char *get_cpp_tok_end() + { + return m_cpp_tok_end; + } + + /** Get the previous token start position, in the raw buffer. */ + const char *get_tok_start_prev() + { + return m_tok_start_prev; + } + + /** Get the current stream pointer, in the raw buffer. */ + const char *get_ptr() + { + return m_ptr; + } + + /** Get the current stream pointer, in the pre-processed buffer. */ + const char *get_cpp_ptr() + { + return m_cpp_ptr; + } + + /** Get the length of the current token, in the raw buffer. */ + uint yyLength() + { + /* + The assumption is that the lexical analyser is always 1 character ahead, + which the -1 account for. + */ + DBUG_ASSERT(m_ptr > m_tok_start); + return (uint) ((m_ptr - m_tok_start) - 1); + } + + /** Get the utf8-body string. */ + const char *get_body_utf8_str() + { + return m_body_utf8; + } + + /** Get the utf8-body length. */ + uint get_body_utf8_length() + { + return (uint) (m_body_utf8_ptr - m_body_utf8); + } + + void body_utf8_start(THD *thd, const char *begin_ptr); + void body_utf8_append(const char *ptr); + void body_utf8_append(const char *ptr, const char *end_ptr); + void body_utf8_append_literal(THD *thd, + const LEX_STRING *txt, + CHARSET_INFO *txt_cs, + const char *end_ptr); + + /** Current thread. */ + THD *m_thd; + + /** Current line number. */ + uint yylineno; + + /** Length of the last token parsed. */ + uint yytoklen; + + /** Interface with bison, value of the last token parsed. */ + LEX_YYSTYPE yylval; + + /** + LALR(2) resolution, look ahead token. + Value of the next token to return, if any, + or -1, if no token was parsed in advance. + Note: 0 is a legal token, and represents YYEOF. + */ + int lookahead_token; + + /** LALR(2) resolution, value of the look ahead token.*/ + LEX_YYSTYPE lookahead_yylval; + +private: + /** Pointer to the current position in the raw input stream. */ + char *m_ptr; + + /** Starting position of the last token parsed, in the raw buffer. */ + const char *m_tok_start; + + /** Ending position of the previous token parsed, in the raw buffer. */ + const char *m_tok_end; + + /** End of the query text in the input stream, in the raw buffer. */ + const char *m_end_of_query; + + /** Starting position of the previous token parsed, in the raw buffer. */ + const char *m_tok_start_prev; + + /** Begining of the query text in the input stream, in the raw buffer. */ + const char *m_buf; + + /** Length of the raw buffer. */ + uint m_buf_length; + + /** Echo the parsed stream to the pre-processed buffer. */ + bool m_echo; + bool m_echo_saved; + + /** Pre-processed buffer. */ + char *m_cpp_buf; + + /** Pointer to the current position in the pre-processed input stream. */ + char *m_cpp_ptr; + + /** + Starting position of the last token parsed, + in the pre-processed buffer. + */ + const char *m_cpp_tok_start; + + /** + Starting position of the previous token parsed, + in the pre-procedded buffer. + */ + const char *m_cpp_tok_start_prev; + + /** + Ending position of the previous token parsed, + in the pre-processed buffer. + */ + const char *m_cpp_tok_end; + + /** UTF8-body buffer created during parsing. */ + char *m_body_utf8; + + /** Pointer to the current position in the UTF8-body buffer. */ + char *m_body_utf8_ptr; + + /** + Position in the pre-processed buffer. The query from m_cpp_buf to + m_cpp_utf_processed_ptr is converted to UTF8-body. + */ + const char *m_cpp_utf8_processed_ptr; + +public: + + /** Current state of the lexical analyser. */ + enum my_lex_states next_state; + + /** + Position of ';' in the stream, to delimit multiple queries. + This delimiter is in the raw buffer. + */ + const char *found_semicolon; + + /** Token character bitmaps, to detect 7bit strings. */ + uchar tok_bitmap; + + /** SQL_MODE = IGNORE_SPACE. */ + bool ignore_space; + + /** + TRUE if we're parsing a prepared statement: in this mode + we should allow placeholders. + */ + bool stmt_prepare_mode; + /** + TRUE if we should allow multi-statements. + */ + bool multi_statements; + + /** State of the lexical analyser for comments. */ + enum_comment_state in_comment; + enum_comment_state in_comment_saved; + + /** + Starting position of the TEXT_STRING or IDENT in the pre-processed + buffer. + + NOTE: this member must be used within MYSQLlex() function only. + */ + const char *m_cpp_text_start; + + /** + Ending position of the TEXT_STRING or IDENT in the pre-processed + buffer. + + NOTE: this member must be used within MYSQLlex() function only. + */ + const char *m_cpp_text_end; + + /** + Character set specified by the character-set-introducer. + + NOTE: this member must be used within MYSQLlex() function only. + */ + CHARSET_INFO *m_underscore_cs; +}; + +/** + Abstract representation of a statement. + This class is an interface between the parser and the runtime. + The parser builds the appropriate sub classes of Sql_statement + to represent a SQL statement in the parsed tree. + The execute() method in the sub classes contain the runtime implementation. + Note that this interface is used for SQL statement recently implemented, + the code for older statements tend to load the LEX structure with more + attributes instead. + The recommended way to implement new statements is to sub-class + Sql_statement, as this improves code modularity (see the 'big switch' in + dispatch_command()), and decrease the total size of the LEX structure + (therefore saving memory in stored programs). +*/ +class Sql_statement : public Sql_alloc +{ +public: + /** + Execute this SQL statement. + @param thd the current thread. + @return 0 on success. + */ + virtual bool execute(THD *thd) = 0; + +protected: + /** + Constructor. + @param lex the LEX structure that represents parts of this statement. + */ + Sql_statement(LEX *lex) + : m_lex(lex) + {} + + /** Destructor. */ + virtual ~Sql_statement() + { + /* + Sql_statement objects are allocated in thd->mem_root. + In MySQL, the C++ destructor is never called, the underlying MEM_ROOT is + simply destroyed instead. + Do not rely on the destructor for any cleanup. + */ + DBUG_ASSERT(FALSE); + } + +protected: + /** + The legacy LEX structure for this statement. + The LEX structure contains the existing properties of the parsed tree. + TODO: with time, attributes from LEX should move to sub classes of + Sql_statement, so that the parser only builds Sql_statement objects + with the minimum set of attributes, instead of a LEX structure that + contains the collection of every possible attribute. + */ + LEX *m_lex; +}; + +/* The state of the lex parsing. This is saved in the THD struct */ + +struct LEX: public Query_tables_list +{ + SELECT_LEX_UNIT unit; /* most upper unit */ + SELECT_LEX select_lex; /* first SELECT_LEX */ + /* current SELECT_LEX in parsing */ + SELECT_LEX *current_select; + /* list of all SELECT_LEX */ + SELECT_LEX *all_selects_list; + + char *length,*dec,*change; + LEX_STRING name; + char *help_arg; + char *backup_dir; /* For RESTORE/BACKUP */ + char* to_log; /* For PURGE MASTER LOGS TO */ + char* x509_subject,*x509_issuer,*ssl_cipher; + String *wild; + sql_exchange *exchange; + select_result *result; + Item *default_value, *on_update_value; + LEX_STRING comment, ident; + LEX_USER *grant_user; + XID *xid; + THD *thd; + Virtual_column_info *vcol_info; + + /* maintain a list of used plugins for this LEX */ + DYNAMIC_ARRAY plugins; + plugin_ref plugins_static_buffer[INITIAL_LEX_PLUGIN_LIST_SIZE]; + + CHARSET_INFO *charset; + bool text_string_is_7bit; + + /** SELECT of CREATE VIEW statement */ + LEX_STRING create_view_select; + + /** Start of 'ON table', in trigger statements. */ + const char* raw_trg_on_table_name_begin; + /** End of 'ON table', in trigger statements. */ + const char* raw_trg_on_table_name_end; + + /* Partition info structure filled in by PARTITION BY parse part */ + partition_info *part_info; + + /* + The definer of the object being created (view, trigger, stored routine). + I.e. the value of DEFINER clause. + */ + LEX_USER *definer; + + List col_list; + List ref_list; + List interval_list; + List users_list; + List columns; + List *insert_list,field_list,value_list,update_list; + List many_values; + List var_list; + List set_var_list; // in-query assignment list + List param_list; + List view_list; // view list (list of field names in view) + /* + A stack of name resolution contexts for the query. This stack is used + at parse time to set local name resolution contexts for various parts + of a query. For example, in a JOIN ... ON (some_condition) clause the + Items in 'some_condition' must be resolved only against the operands + of the the join, and not against the whole clause. Similarly, Items in + subqueries should be resolved against the subqueries (and outer queries). + The stack is used in the following way: when the parser detects that + all Items in some clause need a local context, it creates a new context + and pushes it on the stack. All newly created Items always store the + top-most context in the stack. Once the parser leaves the clause that + required a local context, the parser pops the top-most context. + */ + List context_stack; + + SQL_I_List proc_list; + SQL_I_List auxiliary_table_list, save_list; + Create_field *last_field; + Item_sum *in_sum_func; + udf_func udf; + HA_CHECK_OPT check_opt; // check/repair options + HA_CREATE_INFO create_info; + KEY_CREATE_INFO key_create_info; + LEX_MASTER_INFO mi; // used by CHANGE MASTER + LEX_SERVER_OPTIONS server_options; + USER_RESOURCES mqh; + LEX_RESET_SLAVE reset_slave_info; + ulong type; + /* The following is used by KILL */ + killed_state kill_signal; + killed_type kill_type; + /* + This variable is used in post-parse stage to declare that sum-functions, + or functions which have sense only if GROUP BY is present, are allowed. + For example in a query + SELECT ... FROM ...WHERE MIN(i) == 1 GROUP BY ... HAVING MIN(i) > 2 + MIN(i) in the WHERE clause is not allowed in the opposite to MIN(i) + in the HAVING clause. Due to possible nesting of select construct + the variable can contain 0 or 1 for each nest level. + */ + nesting_map allow_sum_func; + + Sql_statement *m_stmt; + + /* + Usually `expr` rule of yacc is quite reused but some commands better + not support subqueries which comes standard with this rule, like + KILL, HA_READ, CREATE/ALTER EVENT etc. Set this to `false` to get + syntax error back. + */ + bool expr_allows_subselect; + /* + A special command "PARSE_VCOL_EXPR" is defined for the parser + to translate a defining expression of a virtual column into an + Item object. + The following flag is used to prevent other applications to use + this command. + */ + bool parse_vcol_expr; + + enum SSL_type ssl_type; /* defined in violite.h */ + enum enum_duplicates duplicates; + enum enum_tx_isolation tx_isolation; + enum enum_ha_read_modes ha_read_mode; + union { + enum ha_rkey_function ha_rkey_mode; + enum xa_option_words xa_opt; + }; + enum enum_var_type option_type; + enum enum_view_create_mode create_view_mode; + enum enum_drop_mode drop_mode; + + uint profile_query_id; + uint profile_options; + uint uint_geom_type; + uint grant, grant_tot_col, which_columns; + enum Foreign_key::fk_match_opt fk_match_option; + enum Foreign_key::fk_option fk_update_opt; + enum Foreign_key::fk_option fk_delete_opt; + uint slave_thd_opt, start_transaction_opt; + int nest_level; + /* + In LEX representing update which were transformed to multi-update + stores total number of tables. For LEX representing multi-delete + holds number of tables from which we will delete records. + */ + uint table_count; + uint8 describe; + /* + A flag that indicates what kinds of derived tables are present in the + query (0 if no derived tables, otherwise a combination of flags + DERIVED_SUBQUERY and DERIVED_VIEW). + */ + uint8 derived_tables; + uint16 create_view_algorithm; + uint8 create_view_check; + uint8 context_analysis_only; + bool drop_if_exists, drop_temporary, local_file, one_shot_set; + bool autocommit; + bool verbose, no_write_to_binlog; + + enum enum_yes_no_unknown tx_chain, tx_release; + bool safe_to_cache_query; + bool subqueries, ignore, online; + st_parsing_options parsing_options; + Alter_info alter_info; + /* + For CREATE TABLE statement last element of table list which is not + part of SELECT or LIKE part (i.e. either element for table we are + creating or last of tables referenced by foreign keys). + */ + TABLE_LIST *create_last_non_select_table; + /* Prepared statements SQL syntax:*/ + LEX_STRING prepared_stmt_name; /* Statement name (in all queries) */ + /* + Prepared statement query text or name of variable that holds the + prepared statement (in PREPARE ... queries) + */ + LEX_STRING prepared_stmt_code; + /* If true, prepared_stmt_code is a name of variable that holds the query */ + bool prepared_stmt_code_is_varref; + /* Names of user variables holding parameters (in EXECUTE) */ + List prepared_stmt_params; + sp_head *sphead; + sp_name *spname; + bool sp_lex_in_use; /* Keep track on lex usage in SPs for error handling */ + bool all_privileges; + bool proxy_priv; + sp_pcontext *spcont; + + st_sp_chistics sp_chistics; + + Event_parse_data *event_parse_data; + + bool only_view; /* used for SHOW CREATE TABLE/VIEW */ + /* + field_list was created for view and should be removed before PS/SP + rexecuton + */ + bool empty_field_list_on_rset; + /* + view created to be run from definer (standard behaviour) + */ + uint8 create_view_suid; + /* Characterstics of trigger being created */ + st_trg_chistics trg_chistics; + /* + List of all items (Item_trigger_field objects) representing fields in + old/new version of row in trigger. We use this list for checking whenever + all such fields are valid at trigger creation time and for binding these + fields to TABLE object at table open (altough for latter pointer to table + being opened is probably enough). + */ + SQL_I_List trg_table_fields; + + /* + stmt_definition_begin is intended to point to the next word after + DEFINER-clause in the following statements: + - CREATE TRIGGER (points to "TRIGGER"); + - CREATE PROCEDURE (points to "PROCEDURE"); + - CREATE FUNCTION (points to "FUNCTION" or "AGGREGATE"); + - CREATE EVENT (points to "EVENT") + + This pointer is required to add possibly omitted DEFINER-clause to the + DDL-statement before dumping it to the binlog. + + keyword_delayed_begin_offset is the offset to the beginning of the DELAYED + keyword in INSERT DELAYED statement. keyword_delayed_end_offset is the + offset to the character right after the DELAYED keyword. + */ + union { + const char *stmt_definition_begin; + uint keyword_delayed_begin_offset; + }; + + union { + const char *stmt_definition_end; + uint keyword_delayed_end_offset; + }; + + /** + Collects create options for Field and KEY + */ + engine_option_value *option_list, *option_list_last; + + /** + During name resolution search only in the table list given by + Name_resolution_context::first_name_resolution_table and + Name_resolution_context::last_name_resolution_table + (see Item_field::fix_fields()). + */ + bool use_only_table_context; + + /* + Reference to a struct that contains information in various commands + to add/create/drop/change table spaces. + */ + st_alter_tablespace *alter_tablespace_info; + + bool escape_used; + bool is_lex_started; /* If lex_start() did run. For debugging. */ + + /* + The set of those tables whose fields are referenced in all subqueries + of the query. + TODO: possibly this it is incorrect to have used tables in LEX because + with subquery, it is not clear what does the field mean. To fix this + we should aggregate used tables information for selected expressions + into the select_lex. + */ + table_map used_tables; + /** + Maximum number of rows and/or keys examined by the query, both read, + changed or written. This is the argument of LIMIT ROWS EXAMINED. + The limit is represented by two variables - the Item is needed because + in case of parameters we have to delay its evaluation until execution. + Once evaluated, its value is stored in examined_rows_limit_cnt. + */ + Item *limit_rows_examined; + ulonglong limit_rows_examined_cnt; + inline void set_limit_rows_examined() + { + if (limit_rows_examined) + limit_rows_examined_cnt= limit_rows_examined->val_uint(); + else + limit_rows_examined_cnt= ULONGLONG_MAX; + } + + LEX(); + + virtual ~LEX() + { + destroy_query_tables_list(); + plugin_unlock_list(NULL, (plugin_ref *)plugins.buffer, plugins.elements); + delete_dynamic(&plugins); + } + + inline bool is_ps_or_view_context_analysis() + { + return (context_analysis_only & + (CONTEXT_ANALYSIS_ONLY_PREPARE | + CONTEXT_ANALYSIS_ONLY_VCOL_EXPR | + CONTEXT_ANALYSIS_ONLY_VIEW)); + } + + inline bool is_view_context_analysis() + { + return (context_analysis_only & CONTEXT_ANALYSIS_ONLY_VIEW); + } + + inline void uncacheable(uint8 cause) + { + safe_to_cache_query= 0; + + /* + There are no sense to mark select_lex and union fields of LEX, + but we should merk all subselects as uncacheable from current till + most upper + */ + SELECT_LEX *sl; + SELECT_LEX_UNIT *un; + for (sl= current_select, un= sl->master_unit(); + un != &unit; + sl= sl->outer_select(), un= sl->master_unit()) + { + sl->uncacheable|= cause; + un->uncacheable|= cause; + } + select_lex.uncacheable|= cause; + } + void set_trg_event_type_for_tables(); + + TABLE_LIST *unlink_first_table(bool *link_to_local); + void link_first_table_back(TABLE_LIST *first, bool link_to_local); + void first_lists_tables_same(); + + bool can_be_merged(); + bool can_use_merged(); + bool can_not_use_merged(); + bool only_view_structure(); + bool need_correct_ident(); + uint8 get_effective_with_check(TABLE_LIST *view); + /* + Is this update command where 'WHITH CHECK OPTION' clause is important + + SYNOPSIS + LEX::which_check_option_applicable() + + RETURN + TRUE have to take 'WHITH CHECK OPTION' clause into account + FALSE 'WHITH CHECK OPTION' clause do not need + */ + inline bool which_check_option_applicable() + { + switch (sql_command) { + case SQLCOM_UPDATE: + case SQLCOM_UPDATE_MULTI: + case SQLCOM_DELETE: + case SQLCOM_DELETE_MULTI: + case SQLCOM_INSERT: + case SQLCOM_INSERT_SELECT: + case SQLCOM_REPLACE: + case SQLCOM_REPLACE_SELECT: + case SQLCOM_LOAD: + return TRUE; + default: + return FALSE; + } + } + + void cleanup_after_one_table_open(); + + bool push_context(Name_resolution_context *context) + { + return context_stack.push_front(context); + } + + Name_resolution_context *pop_context() + { + return context_stack.pop(); + } + + bool copy_db_to(char **p_db, size_t *p_db_length) const; + + Name_resolution_context *current_context() + { + return context_stack.head(); + } + /* + Restore the LEX and THD in case of a parse error. + */ + static void cleanup_lex_after_parse_error(THD *thd); + + void reset_n_backup_query_tables_list(Query_tables_list *backup); + void restore_backup_query_tables_list(Query_tables_list *backup); + + bool table_or_sp_used(); + bool is_partition_management() const; + + /** + @brief check if the statement is a single-level join + @return result of the check + @retval TRUE The statement doesn't contain subqueries, unions and + stored procedure calls. + @retval FALSE There are subqueries, UNIONs or stored procedure calls. + */ + bool is_single_level_stmt() + { + /* + This check exploits the fact that the last added to all_select_list is + on its top. So select_lex (as the first added) will be at the tail + of the list. + */ + if (&select_lex == all_selects_list && !sroutines.records) + { + DBUG_ASSERT(!all_selects_list->next_select_in_list()); + return TRUE; + } + return FALSE; + } + + bool save_prep_leaf_tables(); + + /* + Run specified phases for derived tables/views in the given list + + @param table_list - list of derived tables/view to handle + @param phase - phases to process tables/views through + + @details + This method runs phases specified by the 'phases' on derived + tables/views found in the 'table_list' with help of the + TABLE_LIST::handle_derived function. + 'this' is passed as an argument to the TABLE_LIST::handle_derived. + + @return false - ok + @return true - error + */ + bool handle_list_of_derived(TABLE_LIST *table_list, uint phases) + { + for (TABLE_LIST *tl= table_list; tl; tl= tl->next_local) + { + if (tl->is_view_or_derived() && tl->handle_derived(this, phases)) + return true; + } + return false; + } +}; + + +/** + Set_signal_information is a container used in the parsed tree to represent + the collection of assignments to condition items in the SIGNAL and RESIGNAL + statements. +*/ +class Set_signal_information +{ +public: + /** Empty default constructor, use clear() */ + Set_signal_information() {} + + /** Copy constructor. */ + Set_signal_information(const Set_signal_information& set); + + /** Destructor. */ + ~Set_signal_information() + {} + + /** Clear all items. */ + void clear(); + + /** + For each condition item assignment, m_item[] contains the parsed tree + that represents the expression assigned, if any. + m_item[] is an array indexed by Diag_condition_item_name. + */ + Item *m_item[LAST_DIAG_SET_PROPERTY+1]; +}; + + +/** + The internal state of the syntax parser. + This object is only available during parsing, + and is private to the syntax parser implementation (sql_yacc.yy). +*/ +class Yacc_state +{ +public: + Yacc_state() : yacc_yyss(NULL), yacc_yyvs(NULL) { reset(); } + + void reset() + { + if (yacc_yyss != NULL) { + my_free(yacc_yyss); + yacc_yyss = NULL; + } + if (yacc_yyvs != NULL) { + my_free(yacc_yyvs); + yacc_yyvs = NULL; + } + m_set_signal_info.clear(); + m_lock_type= TL_READ_DEFAULT; + m_mdl_type= MDL_SHARED_READ; + } + + ~Yacc_state(); + + /** + Reset part of the state which needs resetting before parsing + substatement. + */ + void reset_before_substatement() + { + m_lock_type= TL_READ_DEFAULT; + m_mdl_type= MDL_SHARED_READ; + } + + /** + Bison internal state stack, yyss, when dynamically allocated using + my_yyoverflow(). + */ + uchar *yacc_yyss; + + /** + Bison internal semantic value stack, yyvs, when dynamically allocated using + my_yyoverflow(). + */ + uchar *yacc_yyvs; + + /** + Fragments of parsed tree, + used during the parsing of SIGNAL and RESIGNAL. + */ + Set_signal_information m_set_signal_info; + + /** + Type of lock to be used for tables being added to the statement's + table list in table_factor, table_alias_ref, single_multi and + table_wild_one rules. + Statements which use these rules but require lock type different + from one specified by this member have to override it by using + st_select_lex::set_lock_for_tables() method. + + The default value of this member is TL_READ_DEFAULT. The only two + cases in which we change it are: + - When parsing SELECT HIGH_PRIORITY. + - Rule for DELETE. In which we use this member to pass information + about type of lock from delete to single_multi part of rule. + + We should try to avoid introducing new use cases as we would like + to get rid of this member eventually. + */ + thr_lock_type m_lock_type; + + /** + The type of requested metadata lock for tables added to + the statement table list. + */ + enum_mdl_type m_mdl_type; + + /* + TODO: move more attributes from the LEX structure here. + */ +}; + +/** + Internal state of the parser. + The complete state consist of: + - state data used during lexical parsing, + - state data used during syntactic parsing. +*/ +class Parser_state +{ +public: + Parser_state() + : m_yacc() + {} + + /** + Object initializer. Must be called before usage. + + @retval FALSE OK + @retval TRUE Error + */ + bool init(THD *thd, char *buff, unsigned int length) + { + return m_lip.init(thd, buff, length); + } + + ~Parser_state() + {} + + Lex_input_stream m_lip; + Yacc_state m_yacc; + + void reset(char *found_semicolon, unsigned int length) + { + m_lip.reset(found_semicolon, length); + m_yacc.reset(); + } +}; + + +struct st_lex_local: public LEX +{ + static void *operator new(size_t size) throw() + { + return sql_alloc(size); + } + static void *operator new(size_t size, MEM_ROOT *mem_root) throw() + { + return (void*) alloc_root(mem_root, (uint) size); + } + static void operator delete(void *ptr,size_t size) + { TRASH_FREE(ptr, size); } + static void operator delete(void *ptr, MEM_ROOT *mem_root) + { /* Never called */ } +}; + +extern void lex_init(void); +extern void lex_free(void); +extern void lex_start(THD *thd); +extern void lex_end(LEX *lex); +extern void lex_end_stage1(LEX *lex); +extern void lex_end_stage2(LEX *lex); +void end_lex_with_single_table(THD *thd, TABLE *table, LEX *old_lex); +int init_lex_with_single_table(THD *thd, TABLE *table, LEX *lex); +extern int MYSQLlex(union YYSTYPE *yylval, THD *thd); + +extern void trim_whitespace(CHARSET_INFO *cs, LEX_STRING *str); + +extern bool is_lex_native_function(const LEX_STRING *name); + +/** + @} (End of group Semantic_Analysis) +*/ + +void my_missing_function_error(const LEX_STRING &token, const char *name); +bool is_keyword(const char *name, uint len); + +#endif /* MYSQL_SERVER */ +#endif /* SQL_LEX_INCLUDED */ diff --git a/database/include/mysql/private/sql_lifo_buffer.h b/database/include/mysql/private/sql_lifo_buffer.h new file mode 100644 index 0000000..4d2d0bd --- /dev/null +++ b/database/include/mysql/private/sql_lifo_buffer.h @@ -0,0 +1,359 @@ +/* + Copyright (c) 2010, 2011, Monty Program Ab + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +/** + @defgroup Bi-directional LIFO buffers used by DS-MRR implementation + @{ +*/ + +class Forward_lifo_buffer; +class Backward_lifo_buffer; + + +/* + A base class for in-memory buffer used by DS-MRR implementation. Common + properties: + - The buffer is last-in-first-out, i.e. elements that are written last are + read first. + - The buffer contains fixed-size elements. The elements are either atomic + byte sequences or pairs of them. + - The buffer resides in the memory provided by the user. It is possible to + = dynamically (ie. between write operations) add ajacent memory space to + the buffer + = dynamically remove unused space from the buffer. + The intent of this is to allow to have two buffers on adjacent memory + space, one is being read from (and so its space shrinks), while the other + is being written to (and so it needs more and more space). + + There are two concrete classes, Forward_lifo_buffer and Backward_lifo_buffer. +*/ + +class Lifo_buffer +{ +protected: + size_t size1; + size_t size2; + +public: + /** + write() will put into buffer size1 bytes pointed by write_ptr1. If + size2!=0, then they will be accompanied by size2 bytes pointed by + write_ptr2. + */ + uchar *write_ptr1; + uchar *write_ptr2; + + /** + read() will do reading by storing pointers to read data into read_ptr1 or + into (read_ptr1, read_ptr2), depending on whether the buffer was set to + store single objects or pairs. + */ + uchar *read_ptr1; + uchar *read_ptr2; + +protected: + uchar *start; /**< points to start of buffer space */ + uchar *end; /**< points to just beyond the end of buffer space */ +public: + + enum enum_direction { + BACKWARD=-1, /**< buffer is filled/read from bigger to smaller memory addresses */ + FORWARD=1 /**< buffer is filled/read from smaller to bigger memory addresses */ + }; + + virtual enum_direction type() = 0; + + /* Buffer space control functions */ + + /** Let the buffer store data in the given space. */ + void set_buffer_space(uchar *start_arg, uchar *end_arg) + { + start= start_arg; + end= end_arg; + if (end != start) + TRASH_ALLOC(start, end - start); + reset(); + } + + /** + Specify where write() should get the source data from, as well as source + data size. + */ + void setup_writing(size_t len1, size_t len2) + { + size1= len1; + size2= len2; + } + + /** + Specify where read() should store pointers to read data, as well as read + data size. The sizes must match those passed to setup_writing(). + */ + void setup_reading(size_t len1, size_t len2) + { + DBUG_ASSERT(len1 == size1); + DBUG_ASSERT(len2 == size2); + } + + bool can_write() + { + return have_space_for(size1 + size2); + } + virtual void write() = 0; + + bool is_empty() { return used_size() == 0; } + virtual bool read() = 0; + + void sort(qsort2_cmp cmp_func, void *cmp_func_arg) + { + size_t elem_size= size1 + size2; + size_t n_elements= used_size() / elem_size; + my_qsort2(used_area(), n_elements, elem_size, cmp_func, cmp_func_arg); + } + + virtual void reset() = 0; + virtual uchar *end_of_space() = 0; +protected: + virtual size_t used_size() = 0; + + /* To be used only by iterator class: */ + virtual uchar *get_pos()= 0; + virtual bool read(uchar **position, uchar **ptr1, uchar **ptr2)= 0; + friend class Lifo_buffer_iterator; +public: + virtual bool have_space_for(size_t bytes) = 0; + + virtual void remove_unused_space(uchar **unused_start, uchar **unused_end)=0; + virtual uchar *used_area() = 0; + virtual ~Lifo_buffer() {}; +}; + + +/** + Forward LIFO buffer + + The buffer that is being written to from start to end and read in the + reverse. 'pos' points to just beyond the end of used space. + + It is possible to grow/shink the buffer at the end bound + + used space unused space + *==============*-----------------* + ^ ^ ^ + | | +--- end + | +---- pos + +--- start +*/ + +class Forward_lifo_buffer: public Lifo_buffer +{ + uchar *pos; +public: + enum_direction type() { return FORWARD; } + size_t used_size() + { + return (size_t)(pos - start); + } + void reset() + { + pos= start; + } + uchar *end_of_space() { return pos; } + bool have_space_for(size_t bytes) + { + return (pos + bytes < end); + } + + void write() + { + write_bytes(write_ptr1, size1); + if (size2) + write_bytes(write_ptr2, size2); + } + void write_bytes(const uchar *data, size_t bytes) + { + DBUG_ASSERT(have_space_for(bytes)); + memcpy(pos, data, bytes); + pos += bytes; + } + bool have_data(uchar *position, size_t bytes) + { + return ((position - start) >= (ptrdiff_t)bytes); + } + uchar *read_bytes(uchar **position, size_t bytes) + { + DBUG_ASSERT(have_data(*position, bytes)); + *position= (*position) - bytes; + return *position; + } + bool read() { return read(&pos, &read_ptr1, &read_ptr2); } + bool read(uchar **position, uchar **ptr1, uchar **ptr2) + { + if (!have_data(*position, size1 + size2)) + return TRUE; + if (size2) + *ptr2= read_bytes(position, size2); + *ptr1= read_bytes(position, size1); + return FALSE; + } + void remove_unused_space(uchar **unused_start, uchar **unused_end) + { + DBUG_ASSERT(0); /* Don't need this yet */ + } + /** + Add more space to the buffer. The caller is responsible that the space + being added is adjacent to the end of the buffer. + + @param unused_start Start of space + @param unused_end End of space + */ + void grow(uchar *unused_start, uchar *unused_end) + { + DBUG_ASSERT(unused_end >= unused_start); + DBUG_ASSERT(end == unused_start); + TRASH_ALLOC(unused_start, unused_end - unused_start); + end= unused_end; + } + /* Return pointer to start of the memory area that is occupied by the data */ + uchar *used_area() { return start; } + friend class Lifo_buffer_iterator; + uchar *get_pos() { return pos; } +}; + + + +/** + Backward LIFO buffer + + The buffer that is being written to from start to end and read in the + reverse. 'pos' points to the start of used space. + + It is possible to grow/shink the buffer at the start. + + unused space used space + *--------------*=================* + ^ ^ ^ + | | +--- end + | +---- pos + +--- start +*/ +class Backward_lifo_buffer: public Lifo_buffer +{ + uchar *pos; +public: + enum_direction type() { return BACKWARD; } + + size_t used_size() + { + return (size_t)(end - pos); + } + void reset() + { + pos= end; + } + uchar *end_of_space() { return end; } + bool have_space_for(size_t bytes) + { + return (pos - bytes >= start); + } + void write() + { + if (write_ptr2) + write_bytes(write_ptr2, size2); + write_bytes(write_ptr1, size1); + } + void write_bytes(const uchar *data, size_t bytes) + { + DBUG_ASSERT(have_space_for(bytes)); + pos -= bytes; + memcpy(pos, data, bytes); + } + bool read() + { + return read(&pos, &read_ptr1, &read_ptr2); + } + bool read(uchar **position, uchar **ptr1, uchar **ptr2) + { + if (!have_data(*position, size1 + size2)) + return TRUE; + *ptr1= read_bytes(position, size1); + if (size2) + *ptr2= read_bytes(position, size2); + return FALSE; + } + bool have_data(uchar *position, size_t bytes) + { + return ((end - position) >= (ptrdiff_t)bytes); + } + uchar *read_bytes(uchar **position, size_t bytes) + { + DBUG_ASSERT(have_data(*position, bytes)); + uchar *ret= *position; + *position= *position + bytes; + return ret; + } + /** + Stop using/return the unused part of the space + @param unused_start OUT Start of the unused space + @param unused_end OUT End of the unused space + */ + void remove_unused_space(uchar **unused_start, uchar **unused_end) + { + *unused_start= start; + *unused_end= pos; + start= pos; + } + void grow(uchar *unused_start, uchar *unused_end) + { + DBUG_ASSERT(0); /* Not used for backward buffers */ + } + /* Return pointer to start of the memory area that is occupied by the data */ + uchar *used_area() { return pos; } + friend class Lifo_buffer_iterator; + uchar *get_pos() { return pos; } +}; + + +/** Iterator to walk over contents of the buffer without reading from it */ +class Lifo_buffer_iterator +{ + uchar *pos; + Lifo_buffer *buf; + +public: + /* The data is read to here */ + uchar *read_ptr1; + uchar *read_ptr2; + + void init(Lifo_buffer *buf_arg) + { + buf= buf_arg; + pos= buf->get_pos(); + } + /* + Read the next value. The calling convention is the same as buf->read() + has. + + @retval FALSE - ok + @retval TRUE - EOF, reached the end of the buffer + */ + bool read() + { + return buf->read(&pos, &read_ptr1, &read_ptr2); + } +}; + + diff --git a/database/include/mysql/private/sql_list.h b/database/include/mysql/private/sql_list.h new file mode 100644 index 0000000..21bcb3e --- /dev/null +++ b/database/include/mysql/private/sql_list.h @@ -0,0 +1,818 @@ +#ifndef INCLUDES_MYSQL_SQL_LIST_H +#define INCLUDES_MYSQL_SQL_LIST_H +/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif + +#include "my_sys.h" /* alloc_root, TRASH, MY_WME, + MY_FAE, MY_ALLOW_ZERO_PTR */ +#include "m_string.h" /* bfill */ +#include "thr_malloc.h" /* sql_alloc */ + +/* mysql standard class memory allocator */ + +class Sql_alloc +{ +public: + static void *operator new(size_t size) throw () + { + return sql_alloc(size); + } + static void *operator new[](size_t size) throw () + { + return sql_alloc(size); + } + static void *operator new[](size_t size, MEM_ROOT *mem_root) throw () + { return alloc_root(mem_root, size); } + static void *operator new(size_t size, MEM_ROOT *mem_root) throw () + { return alloc_root(mem_root, size); } + static void operator delete(void *ptr, size_t size) { TRASH_FREE(ptr, size); } + static void operator delete(void *ptr, MEM_ROOT *mem_root) + { /* never called */ } + static void operator delete[](void *ptr, MEM_ROOT *mem_root) + { /* never called */ } + static void operator delete[](void *ptr, size_t size) { TRASH_FREE(ptr, size); } +#ifdef HAVE_valgrind + bool dummy; + inline Sql_alloc() :dummy(0) {} + inline ~Sql_alloc() {} +#else + inline Sql_alloc() {} + inline ~Sql_alloc() {} +#endif + +}; + + +/** + Simple intrusive linked list. + + @remark Similar in nature to base_list, but intrusive. It keeps a + a pointer to the first element in the list and a indirect + reference to the last element. +*/ +template +class SQL_I_List :public Sql_alloc +{ +public: + uint elements; + /** The first element in the list. */ + T *first; + /** A reference to the next element in the list. */ + T **next; + + SQL_I_List() { empty(); } + + SQL_I_List(const SQL_I_List &tmp) : Sql_alloc() + { + elements= tmp.elements; + first= tmp.first; + next= elements ? tmp.next : &first; + } + + inline void empty() + { + elements= 0; + first= NULL; + next= &first; + } + + inline void link_in_list(T *element, T **next_ptr) + { + elements++; + (*next)= element; + next= next_ptr; + *next= NULL; + } + + inline void save_and_clear(SQL_I_List *save) + { + *save= *this; + empty(); + } + + inline void push_front(SQL_I_List *save) + { + /* link current list last */ + *save->next= first; + first= save->first; + elements+= save->elements; + } + + inline void push_back(SQL_I_List *save) + { + if (save->first) + { + *next= save->first; + next= save->next; + elements+= save->elements; + } + } +}; + + +/* + Basic single linked list + Used for item and item_buffs. + All list ends with a pointer to the 'end_of_list' element, which + data pointer is a null pointer and the next pointer points to itself. + This makes it very fast to traverse lists as we don't have to + test for a specialend condition for list that can't contain a null + pointer. +*/ + + +/** + list_node - a node of a single-linked list. + @note We never call a destructor for instances of this class. +*/ + +struct list_node :public Sql_alloc +{ + list_node *next; + void *info; + list_node(void *info_par,list_node *next_par) + :next(next_par),info(info_par) + {} + list_node() /* For end_of_list */ + { + info= 0; + next= this; + } +}; + +typedef bool List_eq(void *a, void *b); + +extern MYSQL_PLUGIN_IMPORT list_node end_of_list; + +class base_list :public Sql_alloc +{ +protected: + list_node *first,**last; + +public: + uint elements; + + bool operator==(const base_list &rhs) const + { + return + elements == rhs.elements && + first == rhs.first && + last == rhs.last; + } + + inline void empty() { elements=0; first= &end_of_list; last=&first;} + inline base_list() { empty(); } + /** + This is a shallow copy constructor that implicitly passes the ownership + from the source list to the new instance. The old instance is not + updated, so both objects end up sharing the same nodes. If one of + the instances then adds or removes a node, the other becomes out of + sync ('last' pointer), while still operational. Some old code uses and + relies on this behaviour. This logic is quite tricky: please do not use + it in any new code. + */ + inline base_list(const base_list &tmp) :Sql_alloc() + { + elements= tmp.elements; + first= tmp.first; + last= elements ? tmp.last : &first; + } + /** + Construct a deep copy of the argument in memory root mem_root. + The elements themselves are copied by pointer. If you also + need to copy elements by value, you should employ + list_copy_and_replace_each_value after creating a copy. + */ + base_list(const base_list &rhs, MEM_ROOT *mem_root); + inline base_list(bool error) { } + inline bool push_back(void *info) + { + if (((*last)=new list_node(info, &end_of_list))) + { + last= &(*last)->next; + elements++; + return 0; + } + return 1; + } + inline bool push_back(void *info, MEM_ROOT *mem_root) + { + if (((*last)=new (mem_root) list_node(info, &end_of_list))) + { + last= &(*last)->next; + elements++; + return 0; + } + return 1; + } + inline bool push_front(void *info) + { + list_node *node=new list_node(info,first); + if (node) + { + if (last == &first) + last= &node->next; + first=node; + elements++; + return 0; + } + return 1; + } + void remove(list_node **prev) + { + list_node *node=(*prev)->next; + if (!--elements) + last= &first; + else if (last == &(*prev)->next) + last= prev; + delete *prev; + *prev=node; + } + inline void concat(base_list *list) + { + if (!list->is_empty()) + { + if (is_empty()) + { + *this= *list; + return; + } + *last= list->first; + last= list->last; + elements+= list->elements; + } + } + inline void *pop(void) + { + if (first == &end_of_list) return 0; + list_node *tmp=first; + first=first->next; + if (!--elements) + last= &first; + return tmp->info; + } + + /* + Remove from this list elements that are contained in the passed list. + We assume that the passed list is a tail of this list (that is, the whole + list_node* elements are shared). + */ + inline void disjoin(const base_list *list) + { + list_node **prev= &first; + list_node *node= first; + list_node *list_first= list->first; + elements=0; + while (node != &end_of_list && node != list_first) + { + prev= &node->next; + node= node->next; + elements++; + if (node == &end_of_list) + return; + } + *prev= &end_of_list; + last= prev; + } + inline void prepand(base_list *list) + { + if (!list->is_empty()) + { + if (is_empty()) + last= list->last; + *list->last= first; + first= list->first; + elements+= list->elements; + } + } + /** + Swap two lists. + */ + inline void swap(base_list &rhs) + { + list_node **rhs_last=rhs.last; + swap_variables(list_node *, first, rhs.first); + swap_variables(uint, elements, rhs.elements); + rhs.last= last == &first ? &rhs.first : last; + last = rhs_last == &rhs.first ? &first : rhs_last; + } + + inline list_node* last_node() { return *last; } + inline list_node* first_node() { return first;} + inline void *head() { return first->info; } + inline void **head_ref() { return first != &end_of_list ? &first->info : 0; } + inline bool is_empty() { return first == &end_of_list ; } + inline list_node *last_ref() { return &end_of_list; } + inline bool add_unique(void *info, List_eq *eq) + { + list_node *node= first; + for (; + node != &end_of_list && (!(*eq)(node->info, info)); + node= node->next) ; + if (node == &end_of_list) + return push_back(info); + return 1; + } + friend class base_list_iterator; + friend class error_list; + friend class error_list_iterator; + +#ifndef DBUG_OFF + /* + Debugging help: return N-th element in the list, or NULL if the list has + less than N elements. + */ + void *elem(int n) + { + list_node *node= first; + void *data= NULL; + for (int i=0; i <= n; i++) + { + if (node == &end_of_list) + { + data= NULL; + break; + } + data= node->info; + node= node->next; + } + return data; + } +#endif + +#ifdef LIST_EXTRA_DEBUG + /* + Check list invariants and print results into trace. Invariants are: + - (*last) points to end_of_list + - There are no NULLs in the list. + - base_list::elements is the number of elements in the list. + + SYNOPSIS + check_list() + name Name to print to trace file + + RETURN + 1 The list is Ok. + 0 List invariants are not met. + */ + + bool check_list(const char *name) + { + base_list *list= this; + list_node *node= first; + uint cnt= 0; + + while (node->next != &end_of_list) + { + if (!node->info) + { + DBUG_PRINT("list_invariants",("%s: error: NULL element in the list", + name)); + return FALSE; + } + node= node->next; + cnt++; + } + if (last != &(node->next)) + { + DBUG_PRINT("list_invariants", ("%s: error: wrong last pointer", name)); + return FALSE; + } + if (cnt+1 != elements) + { + DBUG_PRINT("list_invariants", ("%s: error: wrong element count", name)); + return FALSE; + } + DBUG_PRINT("list_invariants", ("%s: list is ok", name)); + return TRUE; + } +#endif // LIST_EXTRA_DEBUG + +protected: + void after(void *info,list_node *node) + { + list_node *new_node=new list_node(info,node->next); + node->next=new_node; + elements++; + if (last == &(node->next)) + last= &new_node->next; + } +}; + + +class base_list_iterator +{ +protected: + base_list *list; + list_node **el,**prev,*current; + void sublist(base_list &ls, uint elm) + { + ls.first= *el; + ls.last= list->last; + ls.elements= elm; + } +public: + base_list_iterator() + :list(0), el(0), prev(0), current(0) + {} + + base_list_iterator(base_list &list_par) + { init(list_par); } + + inline void init(base_list &list_par) + { + list= &list_par; + el= &list_par.first; + prev= 0; + current= 0; + } + + inline void *next(void) + { + prev=el; + current= *el; + el= ¤t->next; + return current->info; + } + inline void *next_fast(void) + { + list_node *tmp; + tmp= *el; + el= &tmp->next; + return tmp->info; + } + inline void rewind(void) + { + el= &list->first; + } + inline void *replace(void *element) + { // Return old element + void *tmp=current->info; + DBUG_ASSERT(current->info != 0); + current->info=element; + return tmp; + } + void *replace(base_list &new_list) + { + void *ret_value=current->info; + if (!new_list.is_empty()) + { + *new_list.last=current->next; + current->info=new_list.first->info; + current->next=new_list.first->next; + if ((list->last == ¤t->next) && (new_list.elements > 1)) + list->last= new_list.last; + list->elements+=new_list.elements-1; + } + return ret_value; // return old element + } + inline void remove(void) // Remove current + { + list->remove(prev); + el=prev; + current=0; // Safeguard + } + void after(void *element) // Insert element after current + { + list->after(element,current); + current=current->next; + el= ¤t->next; + } + inline void **ref(void) // Get reference pointer + { + return ¤t->info; + } + inline bool is_last(void) + { + return el == &list->last_ref()->next; + } + friend class error_list_iterator; +}; + +template class List :public base_list +{ +public: + inline List() :base_list() {} + inline List(const List &tmp) :base_list(tmp) {} + inline List(const List &tmp, MEM_ROOT *mem_root) : + base_list(tmp, mem_root) {} + inline bool push_back(T *a) { return base_list::push_back(a); } + inline bool push_back(T *a, MEM_ROOT *mem_root) + { return base_list::push_back(a, mem_root); } + inline bool push_front(T *a) { return base_list::push_front(a); } + inline T* head() {return (T*) base_list::head(); } + inline T** head_ref() {return (T**) base_list::head_ref(); } + inline T* pop() {return (T*) base_list::pop(); } + inline void concat(List *list) { base_list::concat(list); } + inline void disjoin(List *list) { base_list::disjoin(list); } + inline void prepand(List *list) { base_list::prepand(list); } + inline bool add_unique(T *a, bool (*eq)(T *a, T *b)) + { return base_list::add_unique(a, (List_eq *)eq); } + void delete_elements(void) + { + list_node *element,*next; + for (element=first; element != &end_of_list; element=next) + { + next=element->next; + delete (T*) element->info; + } + empty(); + } +#ifndef DBUG_OFF + T *elem(int n) { return (T*)base_list::elem(n); } +#endif +}; + + +template class List_iterator :public base_list_iterator +{ +public: + List_iterator(List &a) : base_list_iterator(a) {} + List_iterator() : base_list_iterator() {} + inline void init(List &a) { base_list_iterator::init(a); } + inline T* operator++(int) { return (T*) base_list_iterator::next(); } + inline T *replace(T *a) { return (T*) base_list_iterator::replace(a); } + inline T *replace(List &a) { return (T*) base_list_iterator::replace(a); } + inline void rewind(void) { base_list_iterator::rewind(); } + inline void remove() { base_list_iterator::remove(); } + inline void after(T *a) { base_list_iterator::after(a); } + inline T** ref(void) { return (T**) base_list_iterator::ref(); } +}; + + +template class List_iterator_fast :public base_list_iterator +{ +protected: + inline T *replace(T *a) { return (T*) 0; } + inline T *replace(List &a) { return (T*) 0; } + inline void remove(void) { } + inline void after(T *a) { } + inline T** ref(void) { return (T**) 0; } + +public: + inline List_iterator_fast(List &a) : base_list_iterator(a) {} + inline List_iterator_fast() : base_list_iterator() {} + inline void init(List &a) { base_list_iterator::init(a); } + inline T* operator++(int) { return (T*) base_list_iterator::next_fast(); } + inline void rewind(void) { base_list_iterator::rewind(); } + void sublist(List &list_arg, uint el_arg) + { + base_list_iterator::sublist(list_arg, el_arg); + } +}; + + +/* + Bubble sort algorithm for List. + This sort function is supposed to be used only for very short list. + Currently it is used for the lists of Item_equal objects and + for some lists in the table elimination algorithms. In both + cases the sorted lists are very short. +*/ + +template +inline void bubble_sort(List *list_to_sort, + int (*sort_func)(T *a, T *b, void *arg), void *arg) +{ + bool swap; + T **ref1= 0; + T **ref2= 0; + List_iterator it(*list_to_sort); + do + { + T **last_ref= ref1; + T *item1= it++; + ref1= it.ref(); + T *item2; + + swap= FALSE; + while ((item2= it++) && (ref2= it.ref()) != last_ref) + { + if (sort_func(item1, item2, arg) < 0) + { + *ref1= item2; + *ref2= item1; + swap= TRUE; + } + else + item1= item2; + ref1= ref2; + } + it.rewind(); + } while (swap); +} + + +/* + A simple intrusive list which automaticly removes element from list + on delete (for THD element) +*/ + +struct ilink +{ + struct ilink **prev,*next; + static void *operator new(size_t size) throw () + { + return (void*)my_malloc((uint)size, MYF(MY_WME | MY_FAE | ME_FATALERROR)); + } + static void operator delete(void* ptr_arg, size_t size) + { + my_free(ptr_arg); + } + + inline ilink() + { + prev=0; next=0; + } + inline void unlink() + { + /* Extra tests because element doesn't have to be linked */ + if (prev) *prev= next; + if (next) next->prev=prev; + prev=0 ; next=0; + } + virtual ~ilink() { unlink(); } /*lint -e1740 */ +}; + + +/* Needed to be able to have an I_List of char* strings in mysqld.cc. */ + +class i_string: public ilink +{ +public: + const char* ptr; + i_string():ptr(0) { } + i_string(const char* s) : ptr(s) {} +}; + +/* needed for linked list of two strings for replicate-rewrite-db */ +class i_string_pair: public ilink +{ +public: + const char* key; + const char* val; + i_string_pair():key(0),val(0) { } + i_string_pair(const char* key_arg, const char* val_arg) : + key(key_arg),val(val_arg) {} +}; + + +template class I_List_iterator; + + +class base_ilist +{ + struct ilink *first; + struct ilink last; +public: + inline void empty() { first= &last; last.prev= &first; } + base_ilist() { empty(); } + inline bool is_empty() { return first == &last; } + // Returns true if p is the last "real" object in the list, + // i.e. p->next points to the sentinel. + inline bool is_last(ilink *p) { return p->next == NULL || p->next == &last; } + inline void append(ilink *a) + { + first->prev= &a->next; + a->next=first; a->prev= &first; first=a; + } + inline void push_back(ilink *a) + { + *last.prev= a; + a->next= &last; + a->prev= last.prev; + last.prev= &a->next; + } + inline struct ilink *get() + { + struct ilink *first_link=first; + if (first_link == &last) + return 0; + first_link->unlink(); // Unlink from list + return first_link; + } + inline struct ilink *head() + { + return (first != &last) ? first : 0; + } + + /** + Moves list elements to new owner, and empties current owner (i.e. this). + + @param[in,out] new_owner The new owner of the list elements. + Should be empty in input. + */ + + void move_elements_to(base_ilist *new_owner) + { + DBUG_ASSERT(new_owner->is_empty()); + new_owner->first= first; + new_owner->last= last; + empty(); + } + + friend class base_ilist_iterator; + private: + /* + We don't want to allow copying of this class, as that would give us + two list heads containing the same elements. + So we declare, but don't define copy CTOR and assignment operator. + */ + base_ilist(const base_ilist&); + void operator=(const base_ilist&); +}; + + +class base_ilist_iterator +{ + base_ilist *list; + struct ilink **el,*current; +public: + base_ilist_iterator(base_ilist &list_par) :list(&list_par), + el(&list_par.first),current(0) {} + void *next(void) + { + /* This is coded to allow push_back() while iterating */ + current= *el; + if (current == &list->last) return 0; + el= ¤t->next; + return current; + } +}; + + +template +class I_List :private base_ilist +{ +public: + I_List() :base_ilist() {} + inline bool is_last(T *p) { return base_ilist::is_last(p); } + inline void empty() { base_ilist::empty(); } + inline bool is_empty() { return base_ilist::is_empty(); } + inline void append(T* a) { base_ilist::append(a); } + inline void push_back(T* a) { base_ilist::push_back(a); } + inline T* get() { return (T*) base_ilist::get(); } + inline T* head() { return (T*) base_ilist::head(); } + inline void move_elements_to(I_List* new_owner) { + base_ilist::move_elements_to(new_owner); + } +#ifndef _lint + friend class I_List_iterator; +#endif +}; + + +template class I_List_iterator :public base_ilist_iterator +{ +public: + I_List_iterator(I_List &a) : base_ilist_iterator(a) {} + inline T* operator++(int) { return (T*) base_ilist_iterator::next(); } +}; + +/** + Make a deep copy of each list element. + + @note A template function and not a template method of class List + is employed because of explicit template instantiation: + in server code there are explicit instantiations of List and + an explicit instantiation of a template requires that any method + of the instantiated class used in the template can be resolved. + Evidently not all template arguments have clone() method with + the right signature. + + @return You must query the error state in THD for out-of-memory + situation after calling this function. +*/ + +template +inline +void +list_copy_and_replace_each_value(List &list, MEM_ROOT *mem_root) +{ + /* Make a deep copy of each element */ + List_iterator it(list); + T *el; + while ((el= it++)) + it.replace(el->clone(mem_root)); +} + +void free_list(I_List *list); +void free_list(I_List *list); + +#endif // INCLUDES_MYSQL_SQL_LIST_H diff --git a/database/include/mysql/private/sql_load.h b/database/include/mysql/private/sql_load.h new file mode 100644 index 0000000..8ff2f1a --- /dev/null +++ b/database/include/mysql/private/sql_load.h @@ -0,0 +1,34 @@ +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef SQL_LOAD_INCLUDED +#define SQL_LOAD_INCLUDED + +#include "sql_list.h" /* List */ + +class Item; + +#include "sql_class.h" /* enum_duplicates */ + +class sql_exchange; + +int mysql_load(THD *thd, sql_exchange *ex, TABLE_LIST *table_list, + List &fields_vars, List &set_fields, + List &set_values_list, + enum enum_duplicates handle_duplicates, bool ignore, + bool local_file); + + +#endif /* SQL_LOAD_INCLUDED */ diff --git a/database/include/mysql/private/sql_locale.h b/database/include/mysql/private/sql_locale.h new file mode 100644 index 0000000..295add6 --- /dev/null +++ b/database/include/mysql/private/sql_locale.h @@ -0,0 +1,80 @@ +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef SQL_LOCALE_INCLUDED +#define SQL_LOCALE_INCLUDED + +typedef struct my_locale_errmsgs +{ + const char *language; + const char **errmsgs; +} MY_LOCALE_ERRMSGS; + +#include "my_global.h" /* uint */ + +typedef struct st_typelib TYPELIB; + +class MY_LOCALE +{ +public: + uint number; + const char *name; + const char *description; + const bool is_ascii; + TYPELIB *month_names; + TYPELIB *ab_month_names; + TYPELIB *day_names; + TYPELIB *ab_day_names; + uint max_month_name_length; + uint max_day_name_length; + uint decimal_point; + uint thousand_sep; + const char *grouping; + MY_LOCALE_ERRMSGS *errmsgs; + MY_LOCALE(uint number_par, + const char *name_par, const char *descr_par, bool is_ascii_par, + TYPELIB *month_names_par, TYPELIB *ab_month_names_par, + TYPELIB *day_names_par, TYPELIB *ab_day_names_par, + uint max_month_name_length_par, uint max_day_name_length_par, + uint decimal_point_par, uint thousand_sep_par, + const char *grouping_par, MY_LOCALE_ERRMSGS *errmsgs_par) : + number(number_par), + name(name_par), description(descr_par), is_ascii(is_ascii_par), + month_names(month_names_par), ab_month_names(ab_month_names_par), + day_names(day_names_par), ab_day_names(ab_day_names_par), + max_month_name_length(max_month_name_length_par), + max_day_name_length(max_day_name_length_par), + decimal_point(decimal_point_par), + thousand_sep(thousand_sep_par), + grouping(grouping_par), + errmsgs(errmsgs_par) + {} + uint repertoire() const + { return is_ascii ? MY_REPERTOIRE_ASCII : MY_REPERTOIRE_EXTENDED; } +}; +/* Exported variables */ + +extern MY_LOCALE my_locale_en_US; +extern MY_LOCALE *my_locales[]; +extern MY_LOCALE *my_default_lc_messages; +extern MY_LOCALE *my_default_lc_time_names; + +/* Exported functions */ + +MY_LOCALE *my_locale_by_name(const char *name); +MY_LOCALE *my_locale_by_number(uint number); +void cleanup_errmsgs(void); + +#endif /* SQL_LOCALE_INCLUDED */ diff --git a/database/include/mysql/private/sql_manager.h b/database/include/mysql/private/sql_manager.h new file mode 100644 index 0000000..9c6c844 --- /dev/null +++ b/database/include/mysql/private/sql_manager.h @@ -0,0 +1,23 @@ +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef SQL_MANAGER_INCLUDED +#define SQL_MANAGER_INCLUDED + +void start_handle_manager(); +void stop_handle_manager(); +bool mysql_manager_submit(void (*action)()); + +#endif /* SQL_MANAGER_INCLUDED */ diff --git a/database/include/mysql/private/sql_parse.h b/database/include/mysql/private/sql_parse.h new file mode 100644 index 0000000..7aa5e31 --- /dev/null +++ b/database/include/mysql/private/sql_parse.h @@ -0,0 +1,213 @@ +/* Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef SQL_PARSE_INCLUDED +#define SQL_PARSE_INCLUDED + +#include "my_global.h" /* NO_EMBEDDED_ACCESS_CHECKS */ +#include "sql_acl.h" /* GLOBAL_ACLS */ + +class Comp_creator; +class Item; +class Object_creation_ctx; +class Parser_state; +struct TABLE_LIST; +class THD; +class Table_ident; +struct LEX; + +enum enum_mysql_completiontype { + ROLLBACK_RELEASE=-2, ROLLBACK=1, ROLLBACK_AND_CHAIN=7, + COMMIT_RELEASE=-1, COMMIT=0, COMMIT_AND_CHAIN=6 +}; + +extern "C" int path_starts_from_data_home_dir(const char *dir); +int test_if_data_home_dir(const char *dir); + +bool multi_update_precheck(THD *thd, TABLE_LIST *tables); +bool multi_delete_precheck(THD *thd, TABLE_LIST *tables); +int mysql_multi_update_prepare(THD *thd); +int mysql_multi_delete_prepare(THD *thd); +bool mysql_insert_select_prepare(THD *thd); +bool update_precheck(THD *thd, TABLE_LIST *tables); +bool delete_precheck(THD *thd, TABLE_LIST *tables); +bool insert_precheck(THD *thd, TABLE_LIST *tables); +bool create_table_precheck(THD *thd, TABLE_LIST *tables, + TABLE_LIST *create_table); +bool check_fk_parent_table_access(THD *thd, + HA_CREATE_INFO *create_info, + Alter_info *alter_info, + const char* create_db); + +bool parse_sql(THD *thd, + Parser_state *parser_state, + Object_creation_ctx *creation_ctx); + +void free_items(Item *item); +void cleanup_items(Item *item); + +Comp_creator *comp_eq_creator(bool invert); +Comp_creator *comp_ge_creator(bool invert); +Comp_creator *comp_gt_creator(bool invert); +Comp_creator *comp_le_creator(bool invert); +Comp_creator *comp_lt_creator(bool invert); +Comp_creator *comp_ne_creator(bool invert); + +int prepare_schema_table(THD *thd, LEX *lex, Table_ident *table_ident, + enum enum_schema_tables schema_table_idx); +void get_default_definer(THD *thd, LEX_USER *definer); +LEX_USER *create_default_definer(THD *thd); +LEX_USER *create_definer(THD *thd, LEX_STRING *user_name, LEX_STRING *host_name); +LEX_USER *get_current_user(THD *thd, LEX_USER *user); +bool check_string_byte_length(LEX_STRING *str, const char *err_msg, + uint max_byte_length); +bool check_string_char_length(LEX_STRING *str, const char *err_msg, + uint max_char_length, CHARSET_INFO *cs, + bool no_error); +bool check_ident_length(LEX_STRING *ident); +CHARSET_INFO* merge_charset_and_collation(CHARSET_INFO *cs, CHARSET_INFO *cl); +bool check_host_name(LEX_STRING *str); +bool check_identifier_name(LEX_STRING *str, uint max_char_length, + uint err_code, const char *param_for_err_msg); +bool mysql_test_parse_for_slave(THD *thd,char *inBuf,uint length); +bool sqlcom_can_generate_row_events(const THD *thd); +bool is_update_query(enum enum_sql_command command); +bool is_log_table_write_query(enum enum_sql_command command); +bool alloc_query(THD *thd, const char *packet, uint packet_length); +void mysql_init_select(LEX *lex); +void mysql_parse(THD *thd, char *rawbuf, uint length, + Parser_state *parser_state); +void mysql_reset_thd_for_next_command(THD *thd); +bool mysql_new_select(LEX *lex, bool move_down); +void create_select_for_variable(const char *var_name); +void create_table_set_open_action_and_adjust_tables(LEX *lex); +void mysql_init_multi_delete(LEX *lex); +bool multi_delete_set_locks_and_link_aux_tables(LEX *lex); +void create_table_set_open_action_and_adjust_tables(LEX *lex); +pthread_handler_t handle_bootstrap(void *arg); +int mysql_execute_command(THD *thd); +bool do_command(THD *thd); +void do_handle_bootstrap(THD *thd); +bool dispatch_command(enum enum_server_command command, THD *thd, + char* packet, uint packet_length); +void log_slow_statement(THD *thd); +bool append_file_to_dir(THD *thd, const char **filename_ptr, + const char *table_name); +bool append_file_to_dir(THD *thd, const char **filename_ptr, + const char *table_name); +void execute_init_command(THD *thd, LEX_STRING *init_command, + mysql_rwlock_t *var_lock); +bool add_field_to_list(THD *thd, LEX_STRING *field_name, enum enum_field_types type, + char *length, char *decimal, + uint type_modifier, + Item *default_value, Item *on_update_value, + LEX_STRING *comment, + char *change, List *interval_list, + CHARSET_INFO *cs, + uint uint_geom_type, + Virtual_column_info *vcol_info, + engine_option_value *create_options); +bool add_to_list(THD *thd, SQL_I_List &list, Item *group, bool asc); +void add_join_on(TABLE_LIST *b,Item *expr); +void add_join_natural(TABLE_LIST *a,TABLE_LIST *b,List *using_fields, + SELECT_LEX *lex); +bool add_proc_to_list(THD *thd, Item *item); +bool push_new_name_resolution_context(THD *thd, + TABLE_LIST *left_op, + TABLE_LIST *right_op); +void store_position_for_column(const char *name); +void init_update_queries(void); +bool check_simple_select(); +Item *normalize_cond(Item *cond); +Item *negate_expression(THD *thd, Item *expr); +bool check_stack_overrun(THD *thd, long margin, uchar *dummy); + +/* Variables */ + +extern const char* any_db; +extern uint sql_command_flags[]; +extern uint server_command_flags[]; +extern const LEX_STRING command_name[]; +extern uint server_command_flags[]; + +/* Inline functions */ +inline bool check_identifier_name(LEX_STRING *str, uint err_code) +{ + return check_identifier_name(str, NAME_CHAR_LEN, err_code, ""); +} + +inline bool check_identifier_name(LEX_STRING *str) +{ + return check_identifier_name(str, NAME_CHAR_LEN, 0, ""); +} + +#ifndef NO_EMBEDDED_ACCESS_CHECKS +bool check_one_table_access(THD *thd, ulong privilege, TABLE_LIST *tables); +bool check_single_table_access(THD *thd, ulong privilege, + TABLE_LIST *tables, bool no_errors); +bool check_routine_access(THD *thd,ulong want_access,char *db,char *name, + bool is_proc, bool no_errors); +bool check_some_access(THD *thd, ulong want_access, TABLE_LIST *table); +bool check_some_routine_access(THD *thd, const char *db, const char *name, bool is_proc); +bool check_access(THD *thd, ulong want_access, const char *db, ulong *save_priv, + GRANT_INTERNAL_INFO *grant_internal_info, + bool dont_check_global_grants, bool no_errors); +bool check_table_access(THD *thd, ulong requirements,TABLE_LIST *tables, + bool any_combination_of_privileges_will_do, + uint number, + bool no_errors); +#else +inline bool check_one_table_access(THD *thd, ulong privilege, TABLE_LIST *tables) +{ return false; } +inline bool check_single_table_access(THD *thd, ulong privilege, + TABLE_LIST *tables, bool no_errors) +{ return false; } +inline bool check_routine_access(THD *thd,ulong want_access,char *db, + char *name, bool is_proc, bool no_errors) +{ return false; } +inline bool check_some_access(THD *thd, ulong want_access, TABLE_LIST *table) +{ + table->grant.privilege= want_access; + return false; +} +inline bool check_some_routine_access(THD *thd, const char *db, + const char *name, bool is_proc) +{ return false; } +inline bool check_access(THD *, ulong, const char *, ulong *save_priv, + GRANT_INTERNAL_INFO *, bool, bool) +{ + if (save_priv) + *save_priv= GLOBAL_ACLS; + return false; +} +inline bool +check_table_access(THD *thd, ulong requirements,TABLE_LIST *tables, + bool any_combination_of_privileges_will_do, + uint number, + bool no_errors) +{ return false; } +#endif /*NO_EMBEDDED_ACCESS_CHECKS*/ + +/* These were under the INNODB_COMPATIBILITY_HOOKS */ + +bool check_global_access(THD *thd, ulong want_access, bool no_errors= false); + +inline bool is_supported_parser_charset(CHARSET_INFO *cs) +{ + return test(cs->mbminlen == 1); +} + + +#endif /* SQL_PARSE_INCLUDED */ diff --git a/database/include/mysql/private/sql_partition.h b/database/include/mysql/private/sql_partition.h new file mode 100644 index 0000000..e8fbc51 --- /dev/null +++ b/database/include/mysql/private/sql_partition.h @@ -0,0 +1,291 @@ +#ifndef SQL_PARTITION_INCLUDED +#define SQL_PARTITION_INCLUDED + +/* Copyright (c) 2006, 2017, Oracle and/or its affiliates. + Copyright (c) 2011, 2017, MariaDB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifdef __GNUC__ +#pragma interface /* gcc class implementation */ +#endif + +#include "sql_list.h" /* List */ +#include "table.h" /* TABLE_LIST */ + +class Alter_info; +class Field; +class String; +class handler; +class partition_info; +struct TABLE; +struct TABLE_LIST; +typedef struct st_bitmap MY_BITMAP; +typedef struct st_ha_create_information HA_CREATE_INFO; +typedef struct st_key KEY; +typedef struct st_key_range key_range; + +/* Flags for partition handlers */ +#define HA_CAN_PARTITION (1 << 0) /* Partition support */ +#define HA_CAN_UPDATE_PARTITION_KEY (1 << 1) +#define HA_CAN_PARTITION_UNIQUE (1 << 2) +#define HA_USE_AUTO_PARTITION (1 << 3) + +#define NORMAL_PART_NAME 0 +#define TEMP_PART_NAME 1 +#define RENAMED_PART_NAME 2 + +typedef struct st_lock_param_type +{ + TABLE_LIST *table_list; + ulonglong copied; + ulonglong deleted; + THD *thd; + HA_CREATE_INFO *create_info; + Alter_info *alter_info; + TABLE *table; + TABLE *old_table; + KEY *key_info_buffer; + const char *db; + const char *table_name; + uchar *pack_frm_data; + uint key_count; + uint db_options; + size_t pack_frm_len; + partition_info *part_info; +} ALTER_PARTITION_PARAM_TYPE; + +typedef struct { + longlong list_value; + uint32 partition_id; +} LIST_PART_ENTRY; + +typedef struct { + uint32 start_part; + uint32 end_part; +} part_id_range; + +struct st_partition_iter; +#define NOT_A_PARTITION_ID ((uint32)-1) + +bool is_partition_in_list(char *part_name, List list_part_names); +char *are_partitions_in_table(partition_info *new_part_info, + partition_info *old_part_info); +bool check_reorganise_list(partition_info *new_part_info, + partition_info *old_part_info, + List list_part_names); +handler *get_ha_partition(partition_info *part_info); +int get_parts_for_update(const uchar *old_data, uchar *new_data, + const uchar *rec0, partition_info *part_info, + uint32 *old_part_id, uint32 *new_part_id, + longlong *func_value); +int get_part_for_delete(const uchar *buf, const uchar *rec0, + partition_info *part_info, uint32 *part_id); +void prune_partition_set(const TABLE *table, part_id_range *part_spec); +bool check_partition_info(partition_info *part_info,handlerton **eng_type, + TABLE *table, handler *file, HA_CREATE_INFO *info); +void set_linear_hash_mask(partition_info *part_info, uint num_parts); +bool fix_partition_func(THD *thd, TABLE *table, bool create_table_ind); +void get_partition_set(const TABLE *table, uchar *buf, const uint index, + const key_range *key_spec, + part_id_range *part_spec); +uint get_partition_field_store_length(Field *field); +int get_cs_converted_part_value_from_string(THD *thd, + Item *item, + String *input_str, + String *output_str, + CHARSET_INFO *cs, + bool use_hex); +void get_full_part_id_from_key(const TABLE *table, uchar *buf, + KEY *key_info, + const key_range *key_spec, + part_id_range *part_spec); +bool mysql_unpack_partition(THD *thd, char *part_buf, + uint part_info_len, + TABLE *table, bool is_create_table_ind, + handlerton *default_db_type, + bool *work_part_info_used); +void make_used_partitions_str(partition_info *part_info, String *parts_str); +uint32 get_list_array_idx_for_endpoint(partition_info *part_info, + bool left_endpoint, + bool include_endpoint); +uint32 get_partition_id_range_for_endpoint(partition_info *part_info, + bool left_endpoint, + bool include_endpoint); +bool check_part_func_fields(Field **ptr, bool ok_with_charsets); +bool field_is_partition_charset(Field *field); +Item* convert_charset_partition_constant(Item *item, CHARSET_INFO *cs); +void mem_alloc_error(size_t size); + +/* + A "Get next" function for partition iterator. + + SYNOPSIS + partition_iter_func() + part_iter Partition iterator, you call only "iter.get_next(&iter)" + + DESCRIPTION + Depending on whether partitions or sub-partitions are iterated, the + function returns next subpartition id/partition number. The sequence of + returned numbers is not ordered and may contain duplicates. + + When the end of sequence is reached, NOT_A_PARTITION_ID is returned, and + the iterator resets itself (so next get_next() call will start to + enumerate the set all over again). + + RETURN + NOT_A_PARTITION_ID if there are no more partitions. + [sub]partition_id of the next partition +*/ + +typedef uint32 (*partition_iter_func)(st_partition_iter* part_iter); + + +/* + Partition set iterator. Used to enumerate a set of [sub]partitions + obtained in partition interval analysis (see get_partitions_in_range_iter). + + For the user, the only meaningful field is get_next, which may be used as + follows: + part_iterator.get_next(&part_iterator); + + Initialization is done by any of the following calls: + - get_partitions_in_range_iter-type function call + - init_single_partition_iterator() + - init_all_partitions_iterator() + Cleanup is not needed. +*/ + +typedef struct st_partition_iter +{ + partition_iter_func get_next; + /* + Valid for "Interval mapping" in LIST partitioning: if true, let the + iterator also produce id of the partition that contains NULL value. + */ + bool ret_null_part, ret_null_part_orig; + struct st_part_num_range + { + uint32 start; + uint32 cur; + uint32 end; + }; + + struct st_field_value_range + { + longlong start; + longlong cur; + longlong end; + }; + + union + { + struct st_part_num_range part_nums; + struct st_field_value_range field_vals; + }; + partition_info *part_info; +} PARTITION_ITERATOR; + + +/* + Get an iterator for set of partitions that match given field-space interval + + SYNOPSIS + get_partitions_in_range_iter() + part_info Partitioning info + is_subpart + store_length_array Length of fields packed in opt_range_key format + min_val Left edge, field value in opt_range_key format + max_val Right edge, field value in opt_range_key format + min_len Length of minimum value + max_len Length of maximum value + flags Some combination of NEAR_MIN, NEAR_MAX, NO_MIN_RANGE, + NO_MAX_RANGE + part_iter Iterator structure to be initialized + + DESCRIPTION + Functions with this signature are used to perform "Partitioning Interval + Analysis". This analysis is applicable for any type of [sub]partitioning + by some function of a single fieldX. The idea is as follows: + Given an interval "const1 <=? fieldX <=? const2", find a set of partitions + that may contain records with value of fieldX within the given interval. + + The min_val, max_val and flags parameters specify the interval. + The set of partitions is returned by initializing an iterator in *part_iter + + NOTES + There are currently three functions of this type: + - get_part_iter_for_interval_via_walking + - get_part_iter_for_interval_cols_via_map + - get_part_iter_for_interval_via_mapping + + RETURN + 0 - No matching partitions, iterator not initialized + 1 - Some partitions would match, iterator intialized for traversing them + -1 - All partitions would match, iterator not initialized +*/ + +typedef int (*get_partitions_in_range_iter)(partition_info *part_info, + bool is_subpart, + uint32 *store_length_array, + uchar *min_val, uchar *max_val, + uint min_len, uint max_len, + uint flags, + PARTITION_ITERATOR *part_iter); + +#include "partition_info.h" + +#ifdef WITH_PARTITION_STORAGE_ENGINE +uint fast_alter_partition_table(THD *thd, TABLE *table, + Alter_info *alter_info, + HA_CREATE_INFO *create_info, + TABLE_LIST *table_list, + char *db, + const char *table_name, + TABLE *fast_alter_table); +bool set_part_state(Alter_info *alter_info, partition_info *tab_part_info, + enum partition_state part_state); +uint prep_alter_part_table(THD *thd, TABLE *table, Alter_info *alter_info, + HA_CREATE_INFO *create_info, + handlerton *old_db_type, + bool *partition_changed, + char *db, + const char *table_name, + const char *path, + TABLE **fast_alter_table); +char *generate_partition_syntax(partition_info *part_info, + uint *buf_length, bool use_sql_alloc, + bool show_partition_options, + HA_CREATE_INFO *create_info, + Alter_info *alter_info, + const char *current_comment_start); +bool partition_key_modified(TABLE *table, const MY_BITMAP *fields); +#else +#define partition_key_modified(X,Y) 0 +#endif + +int __attribute__((warn_unused_result)) + create_partition_name(char *out, size_t outlen, const char *in1, const char + *in2, uint name_variant, bool translate); +int __attribute__((warn_unused_result)) + create_subpartition_name(char *out, size_t outlen, const char *in1, const + char *in2, const char *in3, uint name_variant); + +void set_field_ptr(Field **ptr, const uchar *new_buf, const uchar *old_buf); +void set_key_field_ptr(KEY *key_info, const uchar *new_buf, + const uchar *old_buf); + +extern const LEX_STRING partition_keywords[]; + +#endif /* SQL_PARTITION_INCLUDED */ diff --git a/database/include/mysql/private/sql_partition_admin.h b/database/include/mysql/private/sql_partition_admin.h new file mode 100644 index 0000000..e7c9513 --- /dev/null +++ b/database/include/mysql/private/sql_partition_admin.h @@ -0,0 +1,236 @@ +/* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef SQL_PARTITION_ADMIN_H +#define SQL_PARTITION_ADMIN_H + +#ifndef WITH_PARTITION_STORAGE_ENGINE + +/** + Stub class that returns a error if the partition storage engine is + not supported. +*/ +class Partition_statement_unsupported : public Sql_statement +{ +public: + Partition_statement_unsupported(LEX *lex) + : Sql_statement(lex) + {} + + ~Partition_statement_unsupported() + {} + + bool execute(THD *thd); +}; + + +class Alter_table_analyze_partition_statement : + public Partition_statement_unsupported +{ +public: + Alter_table_analyze_partition_statement(LEX *lex) + : Partition_statement_unsupported(lex) + {} + + ~Alter_table_analyze_partition_statement() + {} +}; + + +class Alter_table_check_partition_statement : + public Partition_statement_unsupported +{ +public: + Alter_table_check_partition_statement(LEX *lex) + : Partition_statement_unsupported(lex) + {} + + ~Alter_table_check_partition_statement() + {} +}; + + +class Alter_table_optimize_partition_statement : + public Partition_statement_unsupported +{ +public: + Alter_table_optimize_partition_statement(LEX *lex) + : Partition_statement_unsupported(lex) + {} + + ~Alter_table_optimize_partition_statement() + {} +}; + + +class Alter_table_repair_partition_statement : + public Partition_statement_unsupported +{ +public: + Alter_table_repair_partition_statement(LEX *lex) + : Partition_statement_unsupported(lex) + {} + + ~Alter_table_repair_partition_statement() + {} +}; + + +class Alter_table_truncate_partition_statement : + public Partition_statement_unsupported +{ +public: + Alter_table_truncate_partition_statement(LEX *lex) + : Partition_statement_unsupported(lex) + {} + + ~Alter_table_truncate_partition_statement() + {} +}; + + +#else + +/** + Class that represents the ALTER TABLE t1 ANALYZE PARTITION p statement. +*/ +class Alter_table_analyze_partition_statement : public Analyze_table_statement +{ +public: + /** + Constructor, used to represent a ALTER TABLE ANALYZE PARTITION statement. + @param lex the LEX structure for this statement. + */ + Alter_table_analyze_partition_statement(LEX *lex) + : Analyze_table_statement(lex) + {} + + ~Alter_table_analyze_partition_statement() + {} + + /** + Execute a ALTER TABLE ANALYZE PARTITION statement at runtime. + @param thd the current thread. + @return false on success. + */ + bool execute(THD *thd); +}; + + +/** + Class that represents the ALTER TABLE t1 CHECK PARTITION p statement. +*/ +class Alter_table_check_partition_statement : public Check_table_statement +{ +public: + /** + Constructor, used to represent a ALTER TABLE CHECK PARTITION statement. + @param lex the LEX structure for this statement. + */ + Alter_table_check_partition_statement(LEX *lex) + : Check_table_statement(lex) + {} + + ~Alter_table_check_partition_statement() + {} + + /** + Execute a ALTER TABLE CHECK PARTITION statement at runtime. + @param thd the current thread. + @return false on success. + */ + bool execute(THD *thd); +}; + + +/** + Class that represents the ALTER TABLE t1 OPTIMIZE PARTITION p statement. +*/ +class Alter_table_optimize_partition_statement : public Optimize_table_statement +{ +public: + /** + Constructor, used to represent a ALTER TABLE OPTIMIZE PARTITION statement. + @param lex the LEX structure for this statement. + */ + Alter_table_optimize_partition_statement(LEX *lex) + : Optimize_table_statement(lex) + {} + + ~Alter_table_optimize_partition_statement() + {} + + /** + Execute a ALTER TABLE OPTIMIZE PARTITION statement at runtime. + @param thd the current thread. + @return false on success. + */ + bool execute(THD *thd); +}; + + +/** + Class that represents the ALTER TABLE t1 REPAIR PARTITION p statement. +*/ +class Alter_table_repair_partition_statement : public Repair_table_statement +{ +public: + /** + Constructor, used to represent a ALTER TABLE REPAIR PARTITION statement. + @param lex the LEX structure for this statement. + */ + Alter_table_repair_partition_statement(LEX *lex) + : Repair_table_statement(lex) + {} + + ~Alter_table_repair_partition_statement() + {} + + /** + Execute a ALTER TABLE REPAIR PARTITION statement at runtime. + @param thd the current thread. + @return false on success. + */ + bool execute(THD *thd); +}; + + +/** + Class that represents the ALTER TABLE t1 TRUNCATE PARTITION p statement. +*/ +class Alter_table_truncate_partition_statement : public Sql_statement +{ +public: + /** + Constructor, used to represent a ALTER TABLE TRUNCATE PARTITION statement. + @param lex the LEX structure for this statement. + */ + Alter_table_truncate_partition_statement(LEX *lex) + : Sql_statement(lex) + {} + + virtual ~Alter_table_truncate_partition_statement() + {} + + /** + Execute a ALTER TABLE TRUNCATE PARTITION statement at runtime. + @param thd the current thread. + @return false on success. + */ + bool execute(THD *thd); +}; + +#endif /* WITH_PARTITION_STORAGE_ENGINE */ +#endif /* SQL_PARTITION_ADMIN_H */ diff --git a/database/include/mysql/private/sql_plist.h b/database/include/mysql/private/sql_plist.h new file mode 100644 index 0000000..1a91e78 --- /dev/null +++ b/database/include/mysql/private/sql_plist.h @@ -0,0 +1,290 @@ +#ifndef SQL_PLIST_H +#define SQL_PLIST_H +/* Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + + +#include + +template +class I_P_List_iterator; +class I_P_List_null_counter; +template class I_P_List_no_push_back; + + +/** + Intrusive parameterized list. + + Unlike I_List does not require its elements to be descendant of ilink + class and therefore allows them to participate in several such lists + simultaneously. + + Unlike List is doubly-linked list and thus supports efficient deletion + of element without iterator. + + @param T Type of elements which will belong to list. + @param B Class which via its methods specifies which members + of T should be used for participating in this list. + Here is typical layout of such class: + + struct B + { + static inline T **next_ptr(T *el) + { + return &el->next; + } + static inline T ***prev_ptr(T *el) + { + return &el->prev; + } + }; + @param C Policy class specifying how counting of elements in the list + should be done. Instance of this class is also used as a place + where information about number of list elements is stored. + @sa I_P_List_null_counter, I_P_List_counter + @param I Policy class specifying whether I_P_List should support + efficient push_back() operation. Instance of this class + is used as place where we store information to support + this operation. + @sa I_P_List_no_push_back, I_P_List_fast_push_back. +*/ + +template > +class I_P_List : public C, public I +{ + T *m_first; + + /* + Do not prohibit copying of I_P_List object to simplify their usage in + backup/restore scenarios. Note that performing any operations on such + is a bad idea. + */ +public: + I_P_List() : I(&m_first), m_first(NULL) {}; + /* + empty() is used in many places in the code instead of a constructor, to + initialize a bzero-ed I_P_List instance. + */ + + inline void empty() { m_first= NULL; C::reset(); I::set_last(&m_first); } + inline bool is_empty() const { return (m_first == NULL); } + inline void push_front(T* a) + { + *B::next_ptr(a)= m_first; + if (m_first) + *B::prev_ptr(m_first)= B::next_ptr(a); + else + I::set_last(B::next_ptr(a)); + m_first= a; + *B::prev_ptr(a)= &m_first; + C::inc(); + } + inline void push_back(T *a) + { + T **last= I::get_last(); + *B::next_ptr(a)= *last; + *last= a; + *B::prev_ptr(a)= last; + I::set_last(B::next_ptr(a)); + C::inc(); + } + inline void insert_after(T *pos, T *a) + { + if (pos == NULL) + push_front(a); + else + { + *B::next_ptr(a)= *B::next_ptr(pos); + *B::prev_ptr(a)= B::next_ptr(pos); + *B::next_ptr(pos)= a; + if (*B::next_ptr(a)) + { + T *old_next= *B::next_ptr(a); + *B::prev_ptr(old_next)= B::next_ptr(a); + } + else + I::set_last(B::next_ptr(a)); + C::inc(); + } + } + inline void remove(T *a) + { + T *next= *B::next_ptr(a); + if (next) + *B::prev_ptr(next)= *B::prev_ptr(a); + else + I::set_last(*B::prev_ptr(a)); + **B::prev_ptr(a)= next; + C::dec(); + } + inline T* front() { return m_first; } + inline const T *front() const { return m_first; } + inline T* pop_front() + { + T *result= front(); + + if (result) + remove(result); + + return result; + } + void swap(I_P_List &rhs) + { + swap_variables(T *, m_first, rhs.m_first); + I::swap(rhs); + if (m_first) + *B::prev_ptr(m_first)= &m_first; + else + I::set_last(&m_first); + if (rhs.m_first) + *B::prev_ptr(rhs.m_first)= &rhs.m_first; + else + I::set_last(&rhs.m_first); + C::swap(rhs); + } +#ifndef _lint + friend class I_P_List_iterator; +#endif + typedef I_P_List_iterator Iterator; +}; + + +/** + Iterator for I_P_List. +*/ + +template > +class I_P_List_iterator +{ + const I_P_List *list; + T *current; +public: + I_P_List_iterator(const I_P_List &a) + : list(&a), current(a.m_first) {} + I_P_List_iterator(const I_P_List &a, T* current_arg) + : list(&a), current(current_arg) {} + inline void init(const I_P_List &a) + { + list= &a; + current= a.m_first; + } + inline T* operator++(int) + { + T *result= current; + if (result) + current= *B::next_ptr(current); + return result; + } + inline T* operator++() + { + current= *B::next_ptr(current); + return current; + } + inline void rewind() + { + current= list->m_first; + } +}; + + +/** + Hook class which via its methods specifies which members + of T should be used for participating in a intrusive list. +*/ + +template +struct I_P_List_adapter +{ + static inline T **next_ptr(T *el) { return &(el->*next); } + + static inline T ***prev_ptr(T *el) { return &(el->*prev); } +}; + + +/** + Element counting policy class for I_P_List to be used in + cases when no element counting should be done. +*/ + +class I_P_List_null_counter +{ +protected: + void reset() {} + void inc() {} + void dec() {} + void swap(I_P_List_null_counter &rhs) {} +}; + + +/** + Element counting policy class for I_P_List which provides + basic element counting. +*/ + +class I_P_List_counter +{ + uint m_counter; +protected: + I_P_List_counter() : m_counter (0) {} + void reset() {m_counter= 0;} + void inc() {m_counter++;} + void dec() {m_counter--;} + void swap(I_P_List_counter &rhs) + { swap_variables(uint, m_counter, rhs.m_counter); } +public: + uint elements() const { return m_counter; } +}; + + +/** + A null insertion policy class for I_P_List to be used + in cases when push_back() operation is not necessary. +*/ + +template class I_P_List_no_push_back +{ +protected: + I_P_List_no_push_back(T **a) {}; + void set_last(T **a) {} + /* + T** get_last() const method is intentionally left unimplemented + in order to prohibit usage of push_back() method in lists which + use this policy. + */ + void swap(I_P_List_no_push_back &rhs) {} +}; + + +/** + An insertion policy class for I_P_List which can + be used when fast push_back() operation is required. +*/ + +template class I_P_List_fast_push_back +{ + T **m_last; +protected: + I_P_List_fast_push_back(T **a) : m_last(a) { }; + void set_last(T **a) { m_last= a; } + T** get_last() const { return m_last; } + void swap(I_P_List_fast_push_back &rhs) + { swap_variables(T**, m_last, rhs.m_last); } +}; + +#endif diff --git a/database/include/mysql/private/sql_plugin.h b/database/include/mysql/private/sql_plugin.h new file mode 100644 index 0000000..9f0d383 --- /dev/null +++ b/database/include/mysql/private/sql_plugin.h @@ -0,0 +1,179 @@ +/* Copyright (c) 2005, 2012, Oracle and/or its affiliates. + Copyright (c) 2009, 2012, Monty Program Ab + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef _sql_plugin_h +#define _sql_plugin_h + +#include + +/* + the following #define adds server-only members to enum_mysql_show_type, + that is defined in plugin.h +*/ +#define SHOW_always_last SHOW_KEY_CACHE_LONG, \ + SHOW_LONG_STATUS, SHOW_DOUBLE_STATUS, \ + SHOW_HAVE, SHOW_MY_BOOL, SHOW_HA_ROWS, SHOW_SYS, \ + SHOW_LONG_NOFLUSH, SHOW_LONGLONG_STATUS, SHOW_LEX_STRING +#include +#undef SHOW_always_last + +#include "m_string.h" /* LEX_STRING */ +#include "my_alloc.h" /* MEM_ROOT */ + +class sys_var; +enum SHOW_COMP_OPTION { SHOW_OPTION_YES, SHOW_OPTION_NO, SHOW_OPTION_DISABLED}; +enum enum_plugin_load_option { PLUGIN_OFF, PLUGIN_ON, PLUGIN_FORCE, + PLUGIN_FORCE_PLUS_PERMANENT }; +extern const char *global_plugin_typelib_names[]; + +#include + +#ifdef DBUG_OFF +#define plugin_ref_to_int(A) A +#define plugin_int_to_ref(A) A +#else +#define plugin_ref_to_int(A) (A ? A[0] : NULL) +#define plugin_int_to_ref(A) &(A) +#endif + +/* + the following flags are valid for plugin_init() +*/ +#define PLUGIN_INIT_SKIP_DYNAMIC_LOADING 1 +#define PLUGIN_INIT_SKIP_PLUGIN_TABLE 2 +#define PLUGIN_INIT_SKIP_INITIALIZATION 4 + +#define INITIAL_LEX_PLUGIN_LIST_SIZE 16 + +typedef enum enum_mysql_show_type SHOW_TYPE; +typedef struct st_mysql_show_var SHOW_VAR; + +#define MYSQL_ANY_PLUGIN -1 + +/* + different values of st_plugin_int::state + though they look like a bitmap, plugin may only + be in one of those eigenstates, not in a superposition of them :) + It's a bitmap, because it makes it easier to test + "whether the state is one of those..." +*/ +#define PLUGIN_IS_FREED 1 +#define PLUGIN_IS_DELETED 2 +#define PLUGIN_IS_UNINITIALIZED 4 +#define PLUGIN_IS_READY 8 +#define PLUGIN_IS_DYING 16 +#define PLUGIN_IS_DISABLED 32 + +/* A handle for the dynamic library containing a plugin or plugins. */ + +struct st_plugin_dl +{ + LEX_STRING dl; + void *handle; + struct st_maria_plugin *plugins; + int mysqlversion; + int mariaversion; + bool allocated; + uint ref_count; /* number of plugins loaded from the library */ +}; + +/* A handle of a plugin */ + +struct st_plugin_int +{ + LEX_STRING name; + struct st_maria_plugin *plugin; + struct st_plugin_dl *plugin_dl; + uint state; + uint ref_count; /* number of threads using the plugin */ + uint locks_total; /* how many times the plugin was locked */ + void *data; /* plugin type specific, e.g. handlerton */ + MEM_ROOT mem_root; /* memory for dynamic plugin structures */ + sys_var *system_vars; /* server variables for this plugin */ + enum enum_plugin_load_option load_option; /* OFF, ON, FORCE, F+PERMANENT */ +}; + + +/* + See intern_plugin_lock() for the explanation for the + conditionally defined plugin_ref type +*/ +#ifdef DBUG_OFF +typedef struct st_plugin_int *plugin_ref; +#define plugin_ref_to_int(A) A +#define plugin_int_to_ref(A) A +#define plugin_decl(pi) ((pi)->plugin) +#define plugin_dlib(pi) ((pi)->plugin_dl) +#define plugin_data(pi,cast) ((cast)((pi)->data)) +#define plugin_name(pi) (&((pi)->name)) +#define plugin_state(pi) ((pi)->state) +#define plugin_load_option(pi) ((pi)->load_option) +#define plugin_equals(p1,p2) ((p1) == (p2)) +#else +typedef struct st_plugin_int **plugin_ref; +#define plugin_ref_to_int(A) (A ? A[0] : NULL) +#define plugin_int_to_ref(A) &(A) +#define plugin_decl(pi) ((pi)[0]->plugin) +#define plugin_dlib(pi) ((pi)[0]->plugin_dl) +#define plugin_data(pi,cast) ((cast)((pi)[0]->data)) +#define plugin_name(pi) (&((pi)[0]->name)) +#define plugin_state(pi) ((pi)[0]->state) +#define plugin_load_option(pi) ((pi)[0]->load_option) +#define plugin_equals(p1,p2) ((p1) && (p2) && (p1)[0] == (p2)[0]) +#endif + +typedef int (*plugin_type_init)(struct st_plugin_int *); + +extern char *opt_plugin_load; +extern char *opt_plugin_dir_ptr; +extern char opt_plugin_dir[FN_REFLEN]; +extern const LEX_STRING plugin_type_names[]; +extern ulong plugin_maturity; +extern TYPELIB plugin_maturity_values; +extern const char *plugin_maturity_names[]; + +extern int plugin_init(int *argc, char **argv, int init_flags); +extern void plugin_shutdown(void); +void add_plugin_options(DYNAMIC_ARRAY *options, MEM_ROOT *mem_root); +extern bool plugin_is_ready(const LEX_STRING *name, int type); +#define my_plugin_lock_by_name(A,B,C) plugin_lock_by_name(A,B,C) +#define my_plugin_lock_by_name_ci(A,B,C) plugin_lock_by_name(A,B,C) +#define my_plugin_lock(A,B) plugin_lock(A,B) +#define my_plugin_lock_ci(A,B) plugin_lock(A,B) +extern plugin_ref plugin_lock(THD *thd, plugin_ref ptr); +extern plugin_ref plugin_lock_by_name(THD *thd, const LEX_STRING *name, + int type); +extern void plugin_unlock(THD *thd, plugin_ref plugin); +extern void plugin_unlock_list(THD *thd, plugin_ref *list, uint count); +extern bool mysql_install_plugin(THD *thd, const LEX_STRING *name, + const LEX_STRING *dl); +extern bool mysql_uninstall_plugin(THD *thd, const LEX_STRING *name, + const LEX_STRING *dl); +extern bool plugin_register_builtin(struct st_mysql_plugin *plugin); +extern void plugin_thdvar_init(THD *thd); +extern void plugin_thdvar_cleanup(THD *thd); +extern SHOW_COMP_OPTION plugin_status(const char *name, size_t len, int type); +extern bool check_valid_path(const char *path, size_t length); + +typedef my_bool (plugin_foreach_func)(THD *thd, + plugin_ref plugin, + void *arg); +#define plugin_foreach(A,B,C,D) plugin_foreach_with_mask(A,B,C,PLUGIN_IS_READY,D) +extern bool plugin_foreach_with_mask(THD *thd, plugin_foreach_func *func, + int type, uint state_mask, void *arg); + +extern void sync_dynamic_session_variables(THD* thd, bool global_lock); +#endif diff --git a/database/include/mysql/private/sql_plugin_compat.h b/database/include/mysql/private/sql_plugin_compat.h new file mode 100644 index 0000000..876b18e --- /dev/null +++ b/database/include/mysql/private/sql_plugin_compat.h @@ -0,0 +1,65 @@ +/* Copyright (C) 2013 Sergei Golubchik and Monty Program Ab + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* old plugin api structures, used for backward compatibility */ + +#define upgrade_var(X) latest->X= X +#define upgrade_str(X) strmake_buf(latest->X, X) +#define downgrade_var(X) X= latest->X +#define downgrade_str(X) strmake_buf(X, latest->X) + +/**************************************************************/ +/* Authentication API, version 0x0100 *************************/ +#define MIN_AUTHENTICATION_INTERFACE_VERSION 0x0100 + +struct MYSQL_SERVER_AUTH_INFO_0x0100 { + char *user_name; + unsigned int user_name_length; + const char *auth_string; + unsigned long auth_string_length; + char authenticated_as[49]; + char external_user[512]; + int password_used; + const char *host_or_ip; + unsigned int host_or_ip_length; + + void upgrade(MYSQL_SERVER_AUTH_INFO *latest) + { + upgrade_var(user_name); + upgrade_var(user_name_length); + upgrade_var(auth_string); + upgrade_var(auth_string_length); + upgrade_str(authenticated_as); + upgrade_str(external_user); + upgrade_var(password_used); + upgrade_var(host_or_ip); + upgrade_var(host_or_ip_length); + } + void downgrade(MYSQL_SERVER_AUTH_INFO *latest) + { + downgrade_var(user_name); + downgrade_var(user_name_length); + downgrade_var(auth_string); + downgrade_var(auth_string_length); + downgrade_str(authenticated_as); + downgrade_str(external_user); + downgrade_var(password_used); + downgrade_var(host_or_ip); + downgrade_var(host_or_ip_length); + } +}; + +/**************************************************************/ + diff --git a/database/include/mysql/private/sql_plugin_services.h b/database/include/mysql/private/sql_plugin_services.h new file mode 100644 index 0000000..b419f6a --- /dev/null +++ b/database/include/mysql/private/sql_plugin_services.h @@ -0,0 +1,82 @@ +/* Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* support for Services */ +#include + +struct st_service_ref { + const char *name; + uint version; + void *service; +}; + +static struct my_snprintf_service_st my_snprintf_handler = { + my_snprintf, + my_vsnprintf +}; + +static struct thd_alloc_service_st thd_alloc_handler= { + thd_alloc, + thd_calloc, + thd_strdup, + thd_strmake, + thd_memdup, + thd_make_lex_string +}; + +static struct thd_wait_service_st thd_wait_handler= { + thd_wait_begin, + thd_wait_end +}; + +static struct my_thread_scheduler_service my_thread_scheduler_handler= { + my_thread_scheduler_set, + my_thread_scheduler_reset, +}; + +static struct progress_report_service_st progress_report_handler= { + thd_progress_init, + thd_progress_report, + thd_progress_next_stage, + thd_progress_end, + set_thd_proc_info +}; + +static struct kill_statement_service_st thd_kill_statement_handler= { + thd_kill_level +}; + +static struct logger_service_st logger_service_handler= { + logger_init_mutexes, + logger_open, + logger_close, + logger_vprintf, + logger_printf, + logger_write, + logger_rotate +}; + +static struct st_service_ref list_of_services[]= +{ + { "my_snprintf_service", VERSION_my_snprintf, &my_snprintf_handler }, + { "thd_alloc_service", VERSION_thd_alloc, &thd_alloc_handler }, + { "thd_wait_service", VERSION_thd_wait, &thd_wait_handler }, + { "my_thread_scheduler_service", VERSION_my_thread_scheduler, &my_thread_scheduler_handler }, + { "progress_report_service", VERSION_progress_report, &progress_report_handler }, + { "debug_sync_service", VERSION_debug_sync, 0 }, // updated in plugin_init() + { "thd_kill_statement_service", VERSION_kill_statement, &thd_kill_statement_handler }, + { "logger_service", VERSION_logger, &logger_service_handler }, +}; + diff --git a/database/include/mysql/private/sql_prepare.h b/database/include/mysql/private/sql_prepare.h new file mode 100644 index 0000000..3646616 --- /dev/null +++ b/database/include/mysql/private/sql_prepare.h @@ -0,0 +1,368 @@ +#ifndef SQL_PREPARE_H +#define SQL_PREPARE_H +/* Copyright (c) 1995-2008 MySQL AB, 2009 Sun Microsystems, Inc. + Use is subject to license terms. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#include "sql_error.h" + +class THD; +struct LEX; + +/** + An interface that is used to take an action when + the locking module notices that a table version has changed + since the last execution. "Table" here may refer to any kind of + table -- a base table, a temporary table, a view or an + information schema table. + + When we open and lock tables for execution of a prepared + statement, we must verify that they did not change + since statement prepare. If some table did change, the statement + parse tree *may* be no longer valid, e.g. in case it contains + optimizations that depend on table metadata. + + This class provides an interface (a method) that is + invoked when such a situation takes place. + The implementation of the method simply reports an error, but + the exact details depend on the nature of the SQL statement. + + At most 1 instance of this class is active at a time, in which + case THD::m_reprepare_observer is not NULL. + + @sa check_and_update_table_version() for details of the + version tracking algorithm + + @sa Open_tables_state::m_reprepare_observer for the life cycle + of metadata observers. +*/ + +class Reprepare_observer +{ +public: + /** + Check if a change of metadata is OK. In future + the signature of this method may be extended to accept the old + and the new versions, but since currently the check is very + simple, we only need the THD to report an error. + */ + bool report_error(THD *thd); + bool is_invalidated() const { return m_invalidated; } + void reset_reprepare_observer() { m_invalidated= FALSE; } +private: + bool m_invalidated; +}; + + +void mysqld_stmt_prepare(THD *thd, const char *packet, uint packet_length); +void mysqld_stmt_execute(THD *thd, char *packet, uint packet_length); +void mysqld_stmt_close(THD *thd, char *packet); +void mysql_sql_stmt_prepare(THD *thd); +void mysql_sql_stmt_execute(THD *thd); +void mysql_sql_stmt_close(THD *thd); +void mysqld_stmt_fetch(THD *thd, char *packet, uint packet_length); +void mysqld_stmt_reset(THD *thd, char *packet); +void mysql_stmt_get_longdata(THD *thd, char *pos, ulong packet_length); +void reinit_stmt_before_use(THD *thd, LEX *lex); + +/** + Execute a fragment of server code in an isolated context, so that + it doesn't leave any effect on THD. THD must have no open tables. + The code must not leave any open tables around. + The result of execution (if any) is stored in Ed_result. +*/ + +class Server_runnable +{ +public: + virtual bool execute_server_code(THD *thd)= 0; + virtual ~Server_runnable(); +}; + + +/** + Execute direct interface. + + @todo Implement support for prelocked mode. +*/ + +class Ed_row; + +/** + Ed_result_set -- a container with result set rows. + @todo Implement support for result set metadata and + automatic type conversion. +*/ + +class Ed_result_set: public Sql_alloc +{ +public: + operator List&() { return *m_rows; } + unsigned int size() const { return m_rows->elements; } + + Ed_result_set(List *rows_arg, size_t column_count, + MEM_ROOT *mem_root_arg); + + /** We don't call member destructors, they all are POD types. */ + ~Ed_result_set() {} + + size_t get_field_count() const { return m_column_count; } + + static void operator delete(void *ptr, size_t size) throw (); +private: + Ed_result_set(const Ed_result_set &); /* not implemented */ + Ed_result_set &operator=(Ed_result_set &); /* not implemented */ +private: + MEM_ROOT m_mem_root; + size_t m_column_count; + List *m_rows; + Ed_result_set *m_next_rset; + friend class Ed_connection; +}; + + +class Ed_connection +{ +public: + /** + Construct a new "execute direct" connection. + + The connection can be used to execute SQL statements. + If the connection failed to initialize, the error + will be returned on the attempt to execute a statement. + + @pre thd must have no open tables + while the connection is used. However, + Ed_connection works okay in LOCK TABLES mode. + Other properties of THD, such as the current warning + information, errors, etc. do not matter and are + preserved by Ed_connection. One thread may have many + Ed_connections created for it. + */ + Ed_connection(THD *thd); + + /** + Execute one SQL statement. + + Until this method is executed, no other methods of + Ed_connection can be used. Life cycle of Ed_connection is: + + Initialized -> a statement has been executed -> + look at result, move to next result -> + look at result, move to next result -> + ... + moved beyond the last result == Initialized. + + This method can be called repeatedly. Once it's invoked, + results of the previous execution are lost. + + A result of execute_direct() can be either: + + - success, no result set rows. In this case get_field_count() + returns 0. This happens after execution of INSERT, UPDATE, + DELETE, DROP and similar statements. Some other methods, such + as get_affected_rows() can be used to retrieve additional + result information. + + - success, there are some result set rows (maybe 0). E.g. + happens after SELECT. In this case get_field_count() returns + the number of columns in a result set and store_result() + can be used to retrieve a result set.. + + - an error, methods to retrieve error information can + be used. + + @return execution status + @retval FALSE success, use get_field_count() + to determine what to do next. + @retval TRUE error, use get_last_error() + to see the error number. + */ + bool execute_direct(LEX_STRING sql_text); + + /** + Same as the previous, but takes an instance of Server_runnable + instead of SQL statement text. + + @return execution status + + @retval FALSE success, use get_field_count() + if your code fragment is supposed to + return a result set + @retval TRUE failure + */ + bool execute_direct(Server_runnable *server_runnable); + + /** + Get the number of result set fields. + + This method is valid only if we have a result: + execute_direct() has been called. Otherwise + the returned value is undefined. + + @sa Documentation for C API function + mysql_field_count() + */ + ulong get_field_count() const + { + return m_current_rset ? m_current_rset->get_field_count() : 0; + } + + /** + Get the number of affected (deleted, updated) + rows for the current statement. Can be + used for statements with get_field_count() == 0. + + @sa Documentation for C API function + mysql_affected_rows(). + */ + ulonglong get_affected_rows() const + { + return m_diagnostics_area.affected_rows(); + } + + /** + Get the last insert id, if any. + + @sa Documentation for mysql_insert_id(). + */ + ulonglong get_last_insert_id() const + { + return m_diagnostics_area.last_insert_id(); + } + + /** + Get the total number of warnings for the last executed + statement. Note, that there is only one warning list even + if a statement returns multiple results. + + @sa Documentation for C API function + mysql_num_warnings(). + */ + ulong get_warn_count() const + { + return m_warning_info.warn_count(); + } + /** + Get the server warnings as a result set. + The result set has fixed metadata: + The first column is the level. + The second is a numeric code. + The third is warning text. + */ + List *get_warn_list() { return &m_warning_info.warn_list(); } + /** + The following members are only valid if execute_direct() + or move_to_next_result() returned an error. + They never fail, but if they are called when there is no + result, or no error, the result is not defined. + */ + const char *get_last_error() const { return m_diagnostics_area.message(); } + unsigned int get_last_errno() const { return m_diagnostics_area.sql_errno(); } + const char *get_last_sqlstate() const { return m_diagnostics_area.get_sqlstate(); } + + /** + Provided get_field_count() is not 0, this never fails. You don't + need to free the result set, this is done automatically when + you advance to the next result set or destroy the connection. + Not returning const because of List iterator not accepting + Should be used when you would like Ed_connection to manage + result set memory for you. + */ + Ed_result_set *use_result_set() { return m_current_rset; } + /** + Provided get_field_count() is not 0, this never fails. You + must free the returned result set. This can be called only + once after execute_direct(). + Should be used when you would like to get the results + and destroy the connection. + */ + Ed_result_set *store_result_set(); + + /** + If the query returns multiple results, this method + can be checked if there is another result beyond the next + one. + Never fails. + */ + bool has_next_result() const { return test(m_current_rset->m_next_rset); } + /** + Only valid to call if has_next_result() returned true. + Otherwise the result is undefined. + */ + bool move_to_next_result() + { + m_current_rset= m_current_rset->m_next_rset; + return test(m_current_rset); + } + + ~Ed_connection() { free_old_result(); } +private: + Diagnostics_area m_diagnostics_area; + Warning_info m_warning_info; + /** + Execute direct interface does not support multi-statements, only + multi-results. So we never have a situation when we have + a mix of result sets and OK or error packets. We either + have a single result set, a single error, or a single OK, + or we have a series of result sets, followed by an OK or error. + */ + THD *m_thd; + Ed_result_set *m_rsets; + Ed_result_set *m_current_rset; + friend class Protocol_local; +private: + void free_old_result(); + void add_result_set(Ed_result_set *ed_result_set); +private: + Ed_connection(const Ed_connection &); /* not implemented */ + Ed_connection &operator=(Ed_connection &); /* not implemented */ +}; + + +/** One result set column. */ + +struct Ed_column: public LEX_STRING +{ + /** Implementation note: destructor for this class is never called. */ +}; + + +/** One result set record. */ + +class Ed_row: public Sql_alloc +{ +public: + const Ed_column &operator[](const unsigned int column_index) const + { + return *get_column(column_index); + } + const Ed_column *get_column(const unsigned int column_index) const + { + DBUG_ASSERT(column_index < size()); + return m_column_array + column_index; + } + size_t size() const { return m_column_count; } + + Ed_row(Ed_column *column_array_arg, size_t column_count_arg) + :m_column_array(column_array_arg), + m_column_count(column_count_arg) + {} +private: + Ed_column *m_column_array; + size_t m_column_count; /* TODO: change to point to metadata */ +}; + +#endif // SQL_PREPARE_H diff --git a/database/include/mysql/private/sql_priv.h b/database/include/mysql/private/sql_priv.h new file mode 100644 index 0000000..0e609e4 --- /dev/null +++ b/database/include/mysql/private/sql_priv.h @@ -0,0 +1,440 @@ +/* Copyright (c) 2000, 2018, Oracle and/or its affiliates. + Copyright (c) 2010, 2018, Monty Program Ab. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/** + @file + + @details + Mostly this file is used in the server. But a little part of it is used in + mysqlbinlog too (definition of SELECT_DISTINCT and others). + The consequence is that 90% of the file is wrapped in \#ifndef MYSQL_CLIENT, + except the part which must be in the server and in the client. +*/ + +#ifndef SQL_PRIV_INCLUDED +#define SQL_PRIV_INCLUDED + +#ifndef MYSQL_CLIENT + +/* + Generates a warning that a feature is deprecated. After a specified + version asserts that the feature is removed. + + Using it as + + WARN_DEPRECATED(thd, 6,2, "BAD", "'GOOD'"); + + Will result in a warning + + "The syntax 'BAD' is deprecated and will be removed in MySQL 6.2. Please + use 'GOOD' instead" + + Note that in macro arguments BAD is not quoted, while 'GOOD' is. + Note that the version is TWO numbers, separated with a comma + (two macro arguments, that is) +*/ +#define WARN_DEPRECATED(Thd,VerHi,VerLo,Old,New) \ + do { \ + compile_time_assert(MYSQL_VERSION_ID < VerHi * 10000 + VerLo * 100); \ + if (((THD *) Thd) != NULL) \ + push_warning_printf(((THD *) Thd), MYSQL_ERROR::WARN_LEVEL_WARN, \ + ER_WARN_DEPRECATED_SYNTAX, \ + ER(ER_WARN_DEPRECATED_SYNTAX), \ + (Old), (New)); \ + else \ + sql_print_warning("The syntax '%s' is deprecated and will be removed " \ + "in a future release. Please use %s instead.", \ + (Old), (New)); \ + } while(0) + + +/* + Generates a warning that a feature is deprecated and there is no replacement. + + Using it as + + WARN_DEPRECATED_NO_REPLACEMENT(thd, "BAD"); + + Will result in a warning + + "'BAD' is deprecated and will be removed in a future release." + + Note that in macro arguments BAD is not quoted. +*/ + +#define WARN_DEPRECATED_NO_REPLACEMENT(Thd,Old) \ + do { \ + if (((THD *) Thd) != NULL) \ + push_warning_printf(((THD *) Thd), MYSQL_ERROR::WARN_LEVEL_WARN, \ + ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT, \ + ER(ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT), \ + (Old)); \ + else \ + sql_print_warning("'%s' is deprecated and will be removed " \ + "in a future release.", (Old)); \ + } while(0) + +/*************************************************************************/ + +#endif + +/* + This is included in the server and in the client. + Options for select set by the yacc parser (stored in lex->options). + + NOTE + log_event.h defines OPTIONS_WRITTEN_TO_BIN_LOG to specify what THD + options list are written into binlog. These options can NOT change their + values, or it will break replication between version. + + context is encoded as following: + SELECT - SELECT_LEX_NODE::options + THD - THD::options + intern - neither. used only as + func(..., select_node->options | thd->options | OPTION_XXX, ...) + + TODO: separate three contexts above, move them to separate bitfields. +*/ + +#define SELECT_DISTINCT (1ULL << 0) // SELECT, user +#define SELECT_STRAIGHT_JOIN (1ULL << 1) // SELECT, user +#define SELECT_DESCRIBE (1ULL << 2) // SELECT, user +#define SELECT_SMALL_RESULT (1ULL << 3) // SELECT, user +#define SELECT_BIG_RESULT (1ULL << 4) // SELECT, user +#define OPTION_FOUND_ROWS (1ULL << 5) // SELECT, user +#define OPTION_TO_QUERY_CACHE (1ULL << 6) // SELECT, user +#define SELECT_NO_JOIN_CACHE (1ULL << 7) // intern +/** always the opposite of OPTION_NOT_AUTOCOMMIT except when in fix_autocommit() */ +#define OPTION_AUTOCOMMIT (1ULL << 8) // THD, user +#define OPTION_BIG_SELECTS (1ULL << 9) // THD, user +#define OPTION_LOG_OFF (1ULL << 10) // THD, user +#define OPTION_QUOTE_SHOW_CREATE (1ULL << 11) // THD, user +#define TMP_TABLE_ALL_COLUMNS (1ULL << 12) // SELECT, intern +#define OPTION_WARNINGS (1ULL << 13) // THD, user +#define OPTION_AUTO_IS_NULL (1ULL << 14) // THD, user, binlog +#define OPTION_FOUND_COMMENT (1ULL << 15) // SELECT, intern, parser +#define OPTION_SAFE_UPDATES (1ULL << 16) // THD, user +#define OPTION_BUFFER_RESULT (1ULL << 17) // SELECT, user +#define OPTION_BIN_LOG (1ULL << 18) // THD, user +#define OPTION_NOT_AUTOCOMMIT (1ULL << 19) // THD, user +#define OPTION_BEGIN (1ULL << 20) // THD, intern +#define OPTION_TABLE_LOCK (1ULL << 21) // THD, intern +#define OPTION_QUICK (1ULL << 22) // SELECT (for DELETE) +#define OPTION_KEEP_LOG (1ULL << 23) // THD, user + +/* The following is used to detect a conflict with DISTINCT */ +#define SELECT_ALL (1ULL << 24) // SELECT, user, parser +/** The following can be set when importing tables in a 'wrong order' + to suppress foreign key checks */ +#define OPTION_NO_FOREIGN_KEY_CHECKS (1ULL << 26) // THD, user, binlog +/** The following speeds up inserts to InnoDB tables by suppressing unique + key checks in some cases */ +#define OPTION_RELAXED_UNIQUE_CHECKS (1ULL << 27) // THD, user, binlog +#define SELECT_NO_UNLOCK (1ULL << 28) // SELECT, intern +#define OPTION_SCHEMA_TABLE (1ULL << 29) // SELECT, intern +/** Flag set if setup_tables already done */ +#define OPTION_SETUP_TABLES_DONE (1ULL << 30) // intern +/** If not set then the thread will ignore all warnings with level notes. */ +#define OPTION_SQL_NOTES (1ULL << 31) // THD, user +/** + Force the used temporary table to be a MyISAM table (because we will use + fulltext functions when reading from it. +*/ +#define TMP_TABLE_FORCE_MYISAM (1ULL << 32) +#define OPTION_PROFILING (1ULL << 33) +/** + Indicates that this is a HIGH_PRIORITY SELECT. + Currently used only for printing of such selects. + Type of locks to be acquired is specified directly. +*/ +#define SELECT_HIGH_PRIORITY (1ULL << 34) // SELECT, user +/** + Is set in slave SQL thread when there was an + error on master, which, when is not reproducible + on slave (i.e. the query succeeds on slave), + is not terminal to the state of repliation, + and should be ignored. The slave SQL thread, + however, needs to rollback the effects of the + succeeded statement to keep replication consistent. +*/ +#define OPTION_MASTER_SQL_ERROR (1ULL << 35) + +/* + Dont report errors for individual rows, + But just report error on commit (or read ofcourse) + Note! Reserved for use in MySQL Cluster +*/ +#define OPTION_ALLOW_BATCH (ULL(1) << 36) // THD, intern (slave) +#define OPTION_SKIP_REPLICATION (ULL(1) << 37) // THD, user + +/* + Check how many bytes are available on buffer. + + @param buf_start Pointer to buffer start. + @param buf_current Pointer to the current position on buffer. + @param buf_len Buffer length. + + @return Number of bytes available on event buffer. +*/ +template T available_buffer(const char* buf_start, + const char* buf_current, + T buf_len) +{ + /* Sanity check */ + if (buf_current < buf_start || + buf_len < static_cast(buf_current - buf_start)) + return static_cast(0); + + return buf_len - (buf_current - buf_start); +} + +/* + Check if jump value is within buffer limits. + + @param jump Number of positions we want to advance. + @param buf_start Pointer to buffer start + @param buf_current Pointer to the current position on buffer. + @param buf_len Buffer length. + + @return True If jump value is within buffer limits. + False Otherwise. +*/ +template bool valid_buffer_range(T jump, + const char* buf_start, + const char* buf_current, + T buf_len) +{ + return (jump <= available_buffer(buf_start, buf_current, buf_len)); +} + +/* The rest of the file is included in the server only */ +#ifndef MYSQL_CLIENT + +/* @@optimizer_switch flags. These must be in sync with optimizer_switch_typelib */ +#define OPTIMIZER_SWITCH_INDEX_MERGE (1ULL << 0) +#define OPTIMIZER_SWITCH_INDEX_MERGE_UNION (1ULL << 1) +#define OPTIMIZER_SWITCH_INDEX_MERGE_SORT_UNION (1ULL << 2) +#define OPTIMIZER_SWITCH_INDEX_MERGE_INTERSECT (1ULL << 3) +#define OPTIMIZER_SWITCH_INDEX_MERGE_SORT_INTERSECT (1ULL << 4) +#define OPTIMIZER_SWITCH_ENGINE_CONDITION_PUSHDOWN (1ULL << 5) +#define OPTIMIZER_SWITCH_INDEX_COND_PUSHDOWN (1ULL << 6) +#define OPTIMIZER_SWITCH_DERIVED_MERGE (1ULL << 7) +#define OPTIMIZER_SWITCH_DERIVED_WITH_KEYS (1ULL << 8) +#define OPTIMIZER_SWITCH_FIRSTMATCH (1ULL << 9) +#define OPTIMIZER_SWITCH_LOOSE_SCAN (1ULL << 10) +#define OPTIMIZER_SWITCH_MATERIALIZATION (1ULL << 11) +#define OPTIMIZER_SWITCH_IN_TO_EXISTS (1ULL << 12) +#define OPTIMIZER_SWITCH_SEMIJOIN (1ULL << 13) +#define OPTIMIZER_SWITCH_PARTIAL_MATCH_ROWID_MERGE (1ULL << 14) +#define OPTIMIZER_SWITCH_PARTIAL_MATCH_TABLE_SCAN (1ULL << 15) +#define OPTIMIZER_SWITCH_SUBQUERY_CACHE (1ULL << 16) +/** If this is off, MRR is never used. */ +#define OPTIMIZER_SWITCH_MRR (1ULL << 17) +/** + If OPTIMIZER_SWITCH_MRR is on and this is on, MRR is used depending on a + cost-based choice ("automatic"). If OPTIMIZER_SWITCH_MRR is on and this is + off, MRR is "forced" (i.e. used as long as the storage engine is capable of + doing it). +*/ +#define OPTIMIZER_SWITCH_MRR_COST_BASED (1ULL << 18) +#define OPTIMIZER_SWITCH_MRR_SORT_KEYS (1ULL << 19) +#define OPTIMIZER_SWITCH_OUTER_JOIN_WITH_CACHE (1ULL << 20) +#define OPTIMIZER_SWITCH_SEMIJOIN_WITH_CACHE (1ULL << 21) +#define OPTIMIZER_SWITCH_JOIN_CACHE_INCREMENTAL (1ULL << 22) +#define OPTIMIZER_SWITCH_JOIN_CACHE_HASHED (1ULL << 23) +#define OPTIMIZER_SWITCH_JOIN_CACHE_BKA (1ULL << 24) +#define OPTIMIZER_SWITCH_OPTIMIZE_JOIN_BUFFER_SIZE (1ULL << 25) +#define OPTIMIZER_SWITCH_TABLE_ELIMINATION (1ULL << 26) +#define OPTIMIZER_SWITCH_EXTENDED_KEYS (1ULL << 27) +#define OPTIMIZER_SWITCH_LAST (1ULL << 27) + +#define OPTIMIZER_SWITCH_DEFAULT (OPTIMIZER_SWITCH_INDEX_MERGE | \ + OPTIMIZER_SWITCH_INDEX_MERGE_UNION | \ + OPTIMIZER_SWITCH_INDEX_MERGE_SORT_UNION | \ + OPTIMIZER_SWITCH_INDEX_MERGE_INTERSECT | \ + OPTIMIZER_SWITCH_INDEX_COND_PUSHDOWN | \ + OPTIMIZER_SWITCH_DERIVED_MERGE | \ + OPTIMIZER_SWITCH_DERIVED_WITH_KEYS | \ + OPTIMIZER_SWITCH_TABLE_ELIMINATION | \ + OPTIMIZER_SWITCH_IN_TO_EXISTS | \ + OPTIMIZER_SWITCH_MATERIALIZATION | \ + OPTIMIZER_SWITCH_PARTIAL_MATCH_ROWID_MERGE|\ + OPTIMIZER_SWITCH_PARTIAL_MATCH_TABLE_SCAN|\ + OPTIMIZER_SWITCH_OUTER_JOIN_WITH_CACHE | \ + OPTIMIZER_SWITCH_SEMIJOIN_WITH_CACHE | \ + OPTIMIZER_SWITCH_JOIN_CACHE_INCREMENTAL | \ + OPTIMIZER_SWITCH_JOIN_CACHE_HASHED | \ + OPTIMIZER_SWITCH_JOIN_CACHE_BKA | \ + OPTIMIZER_SWITCH_SUBQUERY_CACHE | \ + OPTIMIZER_SWITCH_SEMIJOIN | \ + OPTIMIZER_SWITCH_FIRSTMATCH | \ + OPTIMIZER_SWITCH_LOOSE_SCAN ) +/* + Replication uses 8 bytes to store SQL_MODE in the binary log. The day you + use strictly more than 64 bits by adding one more define above, you should + contact the replication team because the replication code should then be + updated (to store more bytes on disk). + + NOTE: When adding new SQL_MODE types, make sure to also add them to + the scripts used for creating the MySQL system tables + in scripts/mysql_system_tables.sql and scripts/mysql_system_tables_fix.sql + +*/ + +/* + Flags below are set when we perform + context analysis of the statement and make + subqueries non-const. It prevents subquery + evaluation at context analysis stage. +*/ + +/* + Don't evaluate this subquery during statement prepare even if + it's a constant one. The flag is switched off in the end of + mysqld_stmt_prepare. +*/ +#define CONTEXT_ANALYSIS_ONLY_PREPARE 1 +/* + Special JOIN::prepare mode: changing of query is prohibited. + When creating a view, we need to just check its syntax omitting + any optimizations: afterwards definition of the view will be + reconstructed by means of ::print() methods and written to + to an .frm file. We need this definition to stay untouched. +*/ +#define CONTEXT_ANALYSIS_ONLY_VIEW 2 +/* + Don't evaluate this subquery during derived table prepare even if + it's a constant one. +*/ +#define CONTEXT_ANALYSIS_ONLY_DERIVED 4 +/* + Don't evaluate constant sub-expressions of virtual column + expressions when opening tables +*/ +#define CONTEXT_ANALYSIS_ONLY_VCOL_EXPR 8 + + +/* + Uncachable causes: +*/ +/* This subquery has fields from outer query (put by user) */ +#define UNCACHEABLE_DEPENDENT_GENERATED 1 +/* This subquery contains functions with random result */ +#define UNCACHEABLE_RAND 2 +/* This subquery contains functions with side effect */ +#define UNCACHEABLE_SIDEEFFECT 4 +/* Forcing to save JOIN tables for explain */ +#define UNCACHEABLE_EXPLAIN 8 +/* For uncorrelated SELECT in an UNION with some correlated SELECTs */ +#define UNCACHEABLE_UNITED 16 +#define UNCACHEABLE_CHECKOPTION 32 +/* + This subquery has fields from outer query injected during + transformation process +*/ +#define UNCACHEABLE_DEPENDENT_INJECTED 64 +/* This subquery has fields from outer query (any nature) */ +#define UNCACHEABLE_DEPENDENT (UNCACHEABLE_DEPENDENT_GENERATED | \ + UNCACHEABLE_DEPENDENT_INJECTED) + +/* Used to check GROUP BY list in the MODE_ONLY_FULL_GROUP_BY mode */ +#define UNDEF_POS (-1) + +/* BINLOG_DUMP options */ + +#define BINLOG_DUMP_NON_BLOCK 1 +#endif /* !MYSQL_CLIENT */ + +#define BINLOG_SEND_ANNOTATE_ROWS_EVENT 2 + +#ifndef MYSQL_CLIENT + +/* + Some defines for exit codes for ::is_equal class functions. +*/ +#define IS_EQUAL_NO 0 +#define IS_EQUAL_YES 1 +#define IS_EQUAL_PACK_LENGTH 2 + +enum enum_parsing_place +{ + NO_MATTER, + IN_HAVING, + SELECT_LIST, + IN_WHERE, + IN_ON, + IN_GROUP_BY, + PARSING_PLACE_SIZE /* always should be the last */ +}; + + +enum enum_var_type +{ + OPT_DEFAULT= 0, OPT_SESSION, OPT_GLOBAL +}; + +class sys_var; + +enum enum_yes_no_unknown +{ + TVL_YES, TVL_NO, TVL_UNKNOWN +}; + +#ifdef MYSQL_SERVER +/* + External variables +*/ + +/* sql_yacc.cc */ +#ifndef DBUG_OFF +extern void turn_parser_debug_on(); + +#endif + +/** + convert a hex digit into number. +*/ + +inline int hexchar_to_int(char c) +{ + if (c <= '9' && c >= '0') + return c-'0'; + c|=32; + if (c <= 'f' && c >= 'a') + return c-'a'+10; + return -1; +} + +/* This must match the path length limit in the ER_NOT_RW_DIR error msg. */ +#define ER_NOT_RW_DIR_PATHSIZE 200 + +#define IS_TABLESPACES_TABLESPACE_NAME 0 +#define IS_TABLESPACES_ENGINE 1 +#define IS_TABLESPACES_TABLESPACE_TYPE 2 +#define IS_TABLESPACES_LOGFILE_GROUP_NAME 3 +#define IS_TABLESPACES_EXTENT_SIZE 4 +#define IS_TABLESPACES_AUTOEXTEND_SIZE 5 +#define IS_TABLESPACES_MAXIMUM_SIZE 6 +#define IS_TABLESPACES_NODEGROUP_ID 7 +#define IS_TABLESPACES_TABLESPACE_COMMENT 8 + +bool db_name_is_in_ignore_db_dirs_list(const char *dbase); + +#endif /* MYSQL_SERVER */ + +#endif /* MYSQL_CLIENT */ + +#endif /* SQL_PRIV_INCLUDED */ diff --git a/database/include/mysql/private/sql_profile.h b/database/include/mysql/private/sql_profile.h new file mode 100644 index 0000000..27d6e07 --- /dev/null +++ b/database/include/mysql/private/sql_profile.h @@ -0,0 +1,293 @@ +/* Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef _SQL_PROFILE_H +#define _SQL_PROFILE_H + +class Item; +struct TABLE_LIST; +class THD; +typedef struct st_field_info ST_FIELD_INFO; +typedef struct st_schema_table ST_SCHEMA_TABLE; + +extern ST_FIELD_INFO query_profile_statistics_info[]; +int fill_query_profile_statistics_info(THD *thd, TABLE_LIST *tables, Item *cond); +int make_profile_table_for_show(THD *thd, ST_SCHEMA_TABLE *schema_table); + + +#define PROFILE_NONE (uint)0 +#define PROFILE_CPU (uint)(1<<0) +#define PROFILE_MEMORY (uint)(1<<1) +#define PROFILE_BLOCK_IO (uint)(1<<2) +#define PROFILE_CONTEXT (uint)(1<<3) +#define PROFILE_PAGE_FAULTS (uint)(1<<4) +#define PROFILE_IPC (uint)(1<<5) +#define PROFILE_SWAPS (uint)(1<<6) +#define PROFILE_SOURCE (uint)(1<<16) +#define PROFILE_ALL (uint)(~0) + + +#if defined(ENABLED_PROFILING) +#include "sql_priv.h" +#include "unireg.h" + +#ifdef __WIN__ +#include +#endif + +#ifdef HAVE_SYS_RESOURCE_H +#include +#endif + + +class PROF_MEASUREMENT; +class QUERY_PROFILE; +class PROFILING; + + +/** + Implements a persistent FIFO using server List method names. Not + thread-safe. Intended to be used on thread-local data only. +*/ +template class Queue +{ +private: + + struct queue_item + { + T *payload; + struct queue_item *next, *previous; + }; + + struct queue_item *first, *last; + +public: + Queue() + { + elements= 0; + first= last= NULL; + } + + void empty() + { + struct queue_item *i, *after_i; + for (i= first; i != NULL; i= after_i) + { + after_i= i->next; + my_free(i); + } + elements= 0; + } + + ulong elements; /* The count of items in the Queue */ + + void push_back(T *payload) + { + struct queue_item *new_item; + + new_item= (struct queue_item *) my_malloc(sizeof(struct queue_item), MYF(0)); + + new_item->payload= payload; + + if (first == NULL) + first= new_item; + if (last != NULL) + { + DBUG_ASSERT(last->next == NULL); + last->next= new_item; + } + new_item->previous= last; + new_item->next= NULL; + last= new_item; + + elements++; + } + + T *pop() + { + struct queue_item *old_item= first; + T *ret= NULL; + + if (first == NULL) + { + DBUG_PRINT("warning", ("tried to pop nonexistent item from Queue")); + return NULL; + } + + ret= old_item->payload; + if (first->next != NULL) + first->next->previous= NULL; + else + last= NULL; + first= first->next; + + my_free(old_item); + elements--; + + return ret; + } + + bool is_empty() + { + DBUG_ASSERT(((elements > 0) && (first != NULL)) || ((elements == 0) || (first == NULL))); + return (elements == 0); + } + + void *new_iterator() + { + return first; + } + + void *iterator_next(void *current) + { + return ((struct queue_item *) current)->next; + } + + T *iterator_value(void *current) + { + return ((struct queue_item *) current)->payload; + } + +}; + + +/** + A single entry in a single profile. +*/ +class PROF_MEASUREMENT +{ +private: + friend class QUERY_PROFILE; + friend class PROFILING; + + QUERY_PROFILE *profile; + char *status; +#ifdef HAVE_GETRUSAGE + struct rusage rusage; +#elif defined(_WIN32) + FILETIME ftKernel, ftUser; + IO_COUNTERS io_count; + PROCESS_MEMORY_COUNTERS mem_count; +#endif + + char *function; + char *file; + unsigned int line; + + ulong m_seq; + double time_usecs; + char *allocated_status_memory; + + void set_label(const char *status_arg, const char *function_arg, + const char *file_arg, unsigned int line_arg); + void clean_up(); + + PROF_MEASUREMENT(); + PROF_MEASUREMENT(QUERY_PROFILE *profile_arg, const char *status_arg); + PROF_MEASUREMENT(QUERY_PROFILE *profile_arg, const char *status_arg, + const char *function_arg, + const char *file_arg, unsigned int line_arg); + ~PROF_MEASUREMENT(); + void collect(); +}; + + +/** + The full profile for a single query, and includes multiple PROF_MEASUREMENT + objects. +*/ +class QUERY_PROFILE +{ +private: + friend class PROFILING; + + PROFILING *profiling; + + query_id_t profiling_query_id; /* Session-specific id. */ + char *query_source; + + double m_start_time_usecs; + double m_end_time_usecs; + ulong m_seq_counter; + Queue entries; + + + QUERY_PROFILE(PROFILING *profiling_arg, const char *status_arg); + ~QUERY_PROFILE(); + + void set_query_source(char *query_source_arg, uint query_length_arg); + + /* Add a profile status change to the current profile. */ + void new_status(const char *status_arg, + const char *function_arg, + const char *file_arg, unsigned int line_arg); + + /* Reset the contents of this profile entry. */ + void reset(); + + /* Show this profile. This is called by PROFILING. */ + bool show(uint options); +}; + + +/** + Profiling state for a single THD; contains multiple QUERY_PROFILE objects. +*/ +class PROFILING +{ +private: + friend class PROF_MEASUREMENT; + friend class QUERY_PROFILE; + + /* + Not the system query_id, but a counter unique to profiling. + */ + query_id_t profile_id_counter; + THD *thd; + bool keeping; + bool enabled; + + QUERY_PROFILE *current; + QUERY_PROFILE *last; + Queue history; + + query_id_t next_profile_id() { return(profile_id_counter++); } + +public: + PROFILING(); + ~PROFILING(); + void set_query_source(char *query_source_arg, uint query_length_arg); + + void start_new_query(const char *initial_state= "starting"); + + void discard_current_query(); + + void finish_current_query(); + + void status_change(const char *status_arg, + const char *function_arg, + const char *file_arg, unsigned int line_arg); + + inline void set_thd(THD *thd_arg) { thd= thd_arg; }; + + /* SHOW PROFILES */ + bool show_profiles(); + + /* ... from INFORMATION_SCHEMA.PROFILING ... */ + int fill_statistics_info(THD *thd, TABLE_LIST *tables, Item *cond); +}; + +# endif /* ENABLED_PROFILING */ +#endif /* _SQL_PROFILE_H */ diff --git a/database/include/mysql/private/sql_reload.h b/database/include/mysql/private/sql_reload.h new file mode 100644 index 0000000..96dfd4c --- /dev/null +++ b/database/include/mysql/private/sql_reload.h @@ -0,0 +1,26 @@ +#ifndef SQL_RELOAD_INCLUDED +#define SQL_RELOAD_INCLUDED +/* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +class THD; +struct TABLE_LIST; + +bool reload_acl_and_cache(THD *thd, unsigned long options, + TABLE_LIST *tables, int *write_to_binlog); + +bool flush_tables_with_read_lock(THD *thd, TABLE_LIST *all_tables); + +#endif diff --git a/database/include/mysql/private/sql_rename.h b/database/include/mysql/private/sql_rename.h new file mode 100644 index 0000000..297af13 --- /dev/null +++ b/database/include/mysql/private/sql_rename.h @@ -0,0 +1,27 @@ +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef SQL_RENAME_INCLUDED +#define SQL_RENAME_INCLUDED + +class THD; +struct TABLE_LIST; + +bool mysql_rename_tables(THD *thd, TABLE_LIST *table_list, bool silent); +bool do_rename(THD *thd, TABLE_LIST *ren_table, char *new_db, + char *new_table_name, char *new_table_alias, + bool skip_error); + +#endif /* SQL_RENAME_INCLUDED */ diff --git a/database/include/mysql/private/sql_repl.h b/database/include/mysql/private/sql_repl.h new file mode 100644 index 0000000..9d41532 --- /dev/null +++ b/database/include/mysql/private/sql_repl.h @@ -0,0 +1,70 @@ +/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef SQL_REPL_INCLUDED +#define SQL_REPL_INCLUDED + +#include "rpl_filter.h" + +#ifdef HAVE_REPLICATION +#include "slave.h" + +typedef struct st_slave_info +{ + uint32 server_id; + uint32 rpl_recovery_rank, master_id; + char host[HOSTNAME_LENGTH*SYSTEM_CHARSET_MBMAXLEN+1]; + char user[USERNAME_LENGTH+1]; + char password[MAX_PASSWORD_LENGTH*SYSTEM_CHARSET_MBMAXLEN+1]; + uint16 port; + THD* thd; +} SLAVE_INFO; + +extern my_bool opt_show_slave_auth_info; +extern char *master_host, *master_info_file; +extern bool server_id_supplied; + +extern int max_binlog_dump_events; +extern my_bool opt_sporadic_binlog_dump_fail; + +int start_slave(THD* thd, Master_info* mi, bool net_report); +int stop_slave(THD* thd, Master_info* mi, bool net_report); +bool change_master(THD* thd, Master_info* mi); +bool mysql_show_binlog_events(THD* thd); +int reset_slave(THD *thd, Master_info* mi); +int reset_master(THD* thd); +bool purge_master_logs(THD* thd, const char* to_log); +bool purge_master_logs_before_date(THD* thd, time_t purge_time); +bool log_in_use(const char* log_name); +void adjust_linfo_offsets(my_off_t purge_offset); +bool show_binlogs(THD* thd); +extern int init_master_info(Master_info* mi); +void kill_zombie_dump_threads(uint32 slave_server_id); +int check_binlog_magic(IO_CACHE* log, const char** errmsg); + +typedef struct st_load_file_info +{ + THD* thd; + my_off_t last_pos_in_file; + bool wrote_create_file, log_delayed; +} LOAD_FILE_INFO; + +int log_loaded_block(IO_CACHE* file); +int init_replication_sys_vars(); +void mysql_binlog_send(THD* thd, char* log_ident, my_off_t pos, ushort flags); + +#endif /* HAVE_REPLICATION */ + +#endif /* SQL_REPL_INCLUDED */ diff --git a/database/include/mysql/private/sql_select.h b/database/include/mysql/private/sql_select.h new file mode 100644 index 0000000..5413871 --- /dev/null +++ b/database/include/mysql/private/sql_select.h @@ -0,0 +1,1869 @@ +#ifndef SQL_SELECT_INCLUDED +#define SQL_SELECT_INCLUDED + +/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. + Copyright (c) 2008, 2013, Monty Program Ab. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/** + @file + + @brief + classes to use when handling where clause +*/ + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif + +#include "procedure.h" +#include +#include "sql_array.h" /* Array */ +#include "records.h" /* READ_RECORD */ +#include "opt_range.h" /* SQL_SELECT, QUICK_SELECT_I */ + + +#if defined(WITH_ARIA_STORAGE_ENGINE) +#include +#endif +#if defined(USE_ARIA_FOR_TMP_TABLES) +#define TMP_ENGINE_HTON maria_hton +inline uint tmp_table_max_key_length() { + return maria_max_key_length(); +} + +inline uint tmp_table_max_key_parts() { + return maria_max_key_segments(); +} +#else +#define TMP_ENGINE_HTON myisam_hton +inline uint tmp_table_max_key_length() { + return MI_MAX_KEY_LENGTH; +} +inline uint tmp_table_max_key_parts() { + return MI_MAX_KEY_SEG; +} +#endif +/* Values in optimize */ +#define KEY_OPTIMIZE_EXISTS 1 +#define KEY_OPTIMIZE_REF_OR_NULL 2 +#define KEY_OPTIMIZE_EQ 4 + +inline uint get_hash_join_key_no() { return MAX_KEY; } + +inline bool is_hash_join_key_no(uint key) { return key == MAX_KEY; } + +typedef struct keyuse_t { + TABLE *table; + Item *val; /**< or value if no field */ + table_map used_tables; + uint key, keypart, optimize; + key_part_map keypart_map; + ha_rows ref_table_rows; + /** + If true, the comparison this value was created from will not be + satisfied if val has NULL 'value'. + */ + bool null_rejecting; + /* + !NULL - This KEYUSE was created from an equality that was wrapped into + an Item_func_trig_cond. This means the equality (and validity of + this KEYUSE element) can be turned on and off. The on/off state + is indicted by the pointed value: + *cond_guard == TRUE <=> equality condition is on + *cond_guard == FALSE <=> equality condition is off + + NULL - Otherwise (the source equality can't be turned off) + */ + bool *cond_guard; + /* + 0..64 <=> This was created from semi-join IN-equality # sj_pred_no. + MAX_UINT Otherwise + */ + uint sj_pred_no; + + bool is_for_hash_join() { return is_hash_join_key_no(key); } +} KEYUSE; + +#define NO_KEYPART ((uint)(-1)) + +class store_key; + +const int NO_REF_PART= uint(-1); + +typedef struct st_table_ref +{ + bool key_err; + /** True if something was read into buffer in join_read_key. */ + bool has_record; + uint key_parts; ///< num of ... + uint key_length; ///< length of key_buff + int key; ///< key no + uchar *key_buff; ///< value to look for with key + uchar *key_buff2; ///< key_buff+key_length + store_key **key_copy; // + Item **items; ///< val()'s for each keypart + /* + Array of pointers to trigger variables. Some/all of the pointers may be + NULL. The ref access can be used iff + + for each used key part i, (!cond_guards[i] || *cond_guards[i]) + + This array is used by subquery code. The subquery code may inject + triggered conditions, i.e. conditions that can be 'switched off'. A ref + access created from such condition is not valid when at least one of the + underlying conditions is switched off (see subquery code for more details) + */ + bool **cond_guards; + /** + (null_rejecting & (1< disable the "cache" as doing lookup with the same key value may + produce different results (because of Index Condition Pushdown) + + */ + bool disable_cache; + + bool tmp_table_index_lookup_init(THD *thd, KEY *tmp_key, Item_iterator &it, + bool value, uint skip= 0); + bool is_access_triggered(); +} TABLE_REF; + + +/* + The structs which holds the join connections and join states +*/ +enum join_type { JT_UNKNOWN,JT_SYSTEM,JT_CONST,JT_EQ_REF,JT_REF,JT_MAYBE_REF, + JT_ALL, JT_RANGE, JT_NEXT, JT_FT, JT_REF_OR_NULL, + JT_UNIQUE_SUBQUERY, JT_INDEX_SUBQUERY, JT_INDEX_MERGE, + JT_HASH, JT_HASH_RANGE, JT_HASH_NEXT, JT_HASH_INDEX_MERGE}; + +class JOIN; + +enum enum_nested_loop_state +{ + NESTED_LOOP_KILLED= -2, NESTED_LOOP_ERROR= -1, + NESTED_LOOP_OK= 0, NESTED_LOOP_NO_MORE_ROWS= 1, + NESTED_LOOP_QUERY_LIMIT= 3, NESTED_LOOP_CURSOR_LIMIT= 4 +}; + + +/* Possible sj_strategy values */ +enum sj_strategy_enum +{ + SJ_OPT_NONE=0, + SJ_OPT_DUPS_WEEDOUT=1, + SJ_OPT_LOOSE_SCAN =2, + SJ_OPT_FIRST_MATCH =3, + SJ_OPT_MATERIALIZE =4, + SJ_OPT_MATERIALIZE_SCAN=5 +}; + +/* Values for JOIN_TAB::packed_info */ +#define TAB_INFO_HAVE_VALUE 1 +#define TAB_INFO_USING_INDEX 2 +#define TAB_INFO_USING_WHERE 4 +#define TAB_INFO_FULL_SCAN_ON_NULL 8 + +typedef enum_nested_loop_state +(*Next_select_func)(JOIN *, struct st_join_table *, bool); +Next_select_func setup_end_select_func(JOIN *join); +int rr_sequential(READ_RECORD *info); +int rr_sequential_and_unpack(READ_RECORD *info); + + +class JOIN_CACHE; +class SJ_TMP_TABLE; +class JOIN_TAB_RANGE; + +typedef struct st_join_table { + st_join_table() {} /* Remove gcc warning */ + TABLE *table; + KEYUSE *keyuse; /**< pointer to first used key */ + KEY *hj_key; /**< descriptor of the used best hash join key + not supported by any index */ + SQL_SELECT *select; + COND *select_cond; + COND *on_precond; /**< part of on condition to check before + accessing the first inner table */ + QUICK_SELECT_I *quick; + /* + The value of select_cond before we've attempted to do Index Condition + Pushdown. We may need to restore everything back if we first choose one + index but then reconsider (see test_if_skip_sort_order() for such + scenarios). + NULL means no index condition pushdown was performed. + */ + Item *pre_idx_push_select_cond; + /* + Pointer to the associated ON expression. on_expr_ref=!NULL except for + degenerate joins. + *on_expr_ref!=NULL for tables that are first inner tables within an outer + join. + */ + Item **on_expr_ref; + COND_EQUAL *cond_equal; /**< multiple equalities for the on expression */ + st_join_table *first_inner; /**< first inner table for including outerjoin */ + bool found; /**< true after all matches or null complement */ + bool not_null_compl;/**< true before null complement is added */ + st_join_table *last_inner; /**< last table table for embedding outer join */ + st_join_table *first_upper; /**< first inner table for embedding outer join */ + st_join_table *first_unmatched; /**< used for optimization purposes only */ + + /* + For join tabs that are inside an SJM bush: root of the bush + */ + st_join_table *bush_root_tab; + + /* TRUE <=> This join_tab is inside an SJM bush and is the last leaf tab here */ + bool last_leaf_in_bush; + + /* + ptr - this is a bush, and ptr points to description of child join_tab + range + NULL - this join tab has no bush children + */ + JOIN_TAB_RANGE *bush_children; + + /* Special content for EXPLAIN 'Extra' column or NULL if none */ + const char *info; + /* + Bitmap of TAB_INFO_* bits that encodes special line for EXPLAIN 'Extra' + column, or 0 if there is no info. + */ + uint packed_info; + + READ_RECORD::Setup_func read_first_record; + Next_select_func next_select; + READ_RECORD read_record; + /* + Currently the following two fields are used only for a [NOT] IN subquery + if it is executed by an alternative full table scan when the left operand of + the subquery predicate is evaluated to NULL. + */ + READ_RECORD::Setup_func save_read_first_record;/* to save read_first_record */ + READ_RECORD::Read_func save_read_record;/* to save read_record.read_record */ + double worst_seeks; + key_map const_keys; /**< Keys with constant part */ + key_map checked_keys; /**< Keys checked in find_best */ + key_map needed_reg; + key_map keys; /**< all keys with can be used */ + + /* Either #rows in the table or 1 for const table. */ + ha_rows records; + /* + Number of records that will be scanned (yes scanned, not returned) by the + best 'independent' access method, i.e. table scan or QUICK_*_SELECT) + */ + ha_rows found_records; + /* + Cost of accessing the table using "ALL" or range/index_merge access + method (but not 'index' for some reason), i.e. this matches method which + E(#records) is in found_records. + */ + double read_time; + + /* psergey-todo: make the below have type double, like POSITION::records_read? */ + ha_rows records_read; + + /* Startup cost for execution */ + double startup_cost; + + double partial_join_cardinality; + + table_map dependent,key_dependent; + /* + 1 - use quick select + 2 - use "Range checked for each record" + */ + uint use_quick; + /* + Index to use. Note: this is valid only for 'index' access, but not range or + ref access. + */ + uint index; + uint status; ///< Save status for cache + uint used_fields; + ulong used_fieldlength; + ulong max_used_fieldlength; + uint used_blobs; + uint used_null_fields; + uint used_uneven_bit_fields; + enum join_type type; + bool cached_eq_ref_table,eq_ref_table; + bool shortcut_for_distinct; + bool sorted; + /* + If it's not 0 the number stored this field indicates that the index + scan has been chosen to access the table data and we expect to scan + this number of rows for the table. + */ + ha_rows limit; + TABLE_REF ref; + /* TRUE <=> condition pushdown supports other tables presence */ + bool icp_other_tables_ok; + /* + TRUE <=> condition pushed to the index has to be factored out of + the condition pushed to the table + */ + bool idx_cond_fact_out; + bool use_join_cache; + uint used_join_cache_level; + ulong join_buffer_size_limit; + JOIN_CACHE *cache; + /* + Index condition for BKA access join + */ + Item *cache_idx_cond; + SQL_SELECT *cache_select; + JOIN *join; + /* + Embedding SJ-nest (may be not the direct parent), or NULL if none. + This variable holds the result of table pullout. + */ + TABLE_LIST *emb_sj_nest; + + /* FirstMatch variables (final QEP) */ + struct st_join_table *first_sj_inner_tab; + struct st_join_table *last_sj_inner_tab; + + /* Variables for semi-join duplicate elimination */ + SJ_TMP_TABLE *flush_weedout_table; + SJ_TMP_TABLE *check_weed_out_table; + /* for EXPLAIN only: */ + SJ_TMP_TABLE *first_weedout_table; + + /* + If set, means we should stop join enumeration after we've got the first + match and return to the specified join tab. May point to + join->join_tab[-1] which means stop join execution after the first + match. + */ + struct st_join_table *do_firstmatch; + + /* + ptr - We're doing a LooseScan, this join tab is the first (i.e. + "driving") join tab), and ptr points to the last join tab + handled by the strategy. loosescan_match_tab->found_match + should be checked to see if the current value group had a match. + NULL - Not doing a loose scan on this join tab. + */ + struct st_join_table *loosescan_match_tab; + + /* TRUE <=> we are inside LooseScan range */ + bool inside_loosescan_range; + + /* Buffer to save index tuple to be able to skip duplicates */ + uchar *loosescan_buf; + + /* + Index used by LooseScan (we store it here separately because ref access + stores it in tab->ref.key, while range scan stores it in tab->index, etc) + */ + uint loosescan_key; + + /* Length of key tuple (depends on #keyparts used) to store in the above */ + uint loosescan_key_len; + + /* Used by LooseScan. TRUE<=> there has been a matching record combination */ + bool found_match; + + /* + Used by DuplicateElimination. tab->table->ref must have the rowid + whenever we have a current record. + */ + int keep_current_rowid; + + /* NestedOuterJoins: Bitmap of nested joins this table is part of */ + nested_join_map embedding_map; + + /* + Semi-join strategy to be used for this join table. This is a copy of + POSITION::sj_strategy field. This field is set up by the + fix_semijoin_strategies_for_picked_join_order. + */ + enum sj_strategy_enum sj_strategy; + + uint n_sj_tables; + + bool preread_init_done; + + void cleanup(); + inline bool is_using_loose_index_scan() + { + return (select && select->quick && + (select->quick->get_type() == + QUICK_SELECT_I::QS_TYPE_GROUP_MIN_MAX)); + } + bool is_using_agg_loose_index_scan () + { + return (is_using_loose_index_scan() && + ((QUICK_GROUP_MIN_MAX_SELECT *)select->quick)->is_agg_distinct()); + } + bool is_inner_table_of_semi_join_with_first_match() + { + return first_sj_inner_tab != NULL; + } + bool is_inner_table_of_semijoin() + { + return emb_sj_nest != NULL; + } + bool is_inner_table_of_outer_join() + { + return first_inner != NULL; + } + bool is_single_inner_of_semi_join_with_first_match() + { + return first_sj_inner_tab == this && last_sj_inner_tab == this; + } + bool is_single_inner_of_outer_join() + { + return first_inner == this && first_inner->last_inner == this; + } + bool is_first_inner_for_outer_join() + { + return first_inner && first_inner == this; + } + bool use_match_flag() + { + return is_first_inner_for_outer_join() || first_sj_inner_tab == this ; + } + bool check_only_first_match() + { + return is_inner_table_of_semi_join_with_first_match() || + (is_inner_table_of_outer_join() && + table->reginfo.not_exists_optimize); + } + bool is_last_inner_table() + { + return (first_inner && first_inner->last_inner == this) || + last_sj_inner_tab == this; + } + /* + Check whether the table belongs to a nest of inner tables of an + outer join or to a nest of inner tables of a semi-join + */ + bool is_nested_inner() + { + if (first_inner && + (first_inner != first_inner->last_inner || first_inner->first_upper)) + return TRUE; + if (first_sj_inner_tab && first_sj_inner_tab != last_sj_inner_tab) + return TRUE; + return FALSE; + } + struct st_join_table *get_first_inner_table() + { + if (first_inner) + return first_inner; + return first_sj_inner_tab; + } + void set_select_cond(COND *to, uint line) + { + DBUG_PRINT("info", ("select_cond changes %p -> %p at line %u tab %p", + select_cond, to, line, this)); + select_cond= to; + } + COND *set_cond(COND *new_cond) + { + COND *tmp_select_cond= select_cond; + set_select_cond(new_cond, __LINE__); + if (select) + select->cond= new_cond; + return tmp_select_cond; + } + void calc_used_field_length(bool max_fl); + ulong get_used_fieldlength() + { + if (!used_fieldlength) + calc_used_field_length(FALSE); + return used_fieldlength; + } + ulong get_max_used_fieldlength() + { + if (!max_used_fieldlength) + calc_used_field_length(TRUE); + return max_used_fieldlength; + } + double get_partial_join_cardinality() { return partial_join_cardinality; } + bool hash_join_is_possible(); + int make_scan_filter(); + bool is_ref_for_hash_join() { return is_hash_join_key_no(ref.key); } + KEY *get_keyinfo_by_key_no(uint key) + { + return (is_hash_join_key_no(key) ? hj_key : table->key_info+key); + } + double scan_time(); + ha_rows get_examined_rows(); + bool preread_init(); + + bool is_sjm_nest() { return test(bush_children); } + + bool access_from_tables_is_allowed(table_map used_tables, + table_map sjm_lookup_tables) + { + table_map used_sjm_lookup_tables= used_tables & sjm_lookup_tables; + return !used_sjm_lookup_tables || + (emb_sj_nest && + !(used_sjm_lookup_tables & ~emb_sj_nest->sj_inner_tables)); + } + + bool keyuse_is_valid_for_access_in_chosen_plan(JOIN *join, KEYUSE *keyuse); + +} JOIN_TAB; + + +#include "sql_join_cache.h" + +enum_nested_loop_state sub_select_cache(JOIN *join, JOIN_TAB *join_tab, bool + end_of_records); +enum_nested_loop_state sub_select(JOIN *join,JOIN_TAB *join_tab, bool + end_of_records); +enum_nested_loop_state +end_send_group(JOIN *join, JOIN_TAB *join_tab __attribute__((unused)), + bool end_of_records); +enum_nested_loop_state +end_write_group(JOIN *join, JOIN_TAB *join_tab __attribute__((unused)), + bool end_of_records); + + +struct st_position; + +class Semi_join_strategy_picker +{ +public: + /* Called when starting to build a new join prefix */ + virtual void set_empty() = 0; + + /* + Update internal state after another table has been added to the join + prefix + */ + virtual void set_from_prev(struct st_position *prev) = 0; + + virtual bool check_qep(JOIN *join, + uint idx, + table_map remaining_tables, + const JOIN_TAB *new_join_tab, + double *record_count, + double *read_time, + table_map *handled_fanout, + sj_strategy_enum *strategy, + struct st_position *loose_scan_pos) = 0; + + virtual void mark_used() = 0; + + virtual ~Semi_join_strategy_picker() {} +}; + + +/* + Duplicate Weedout strategy optimization state +*/ + +class Duplicate_weedout_picker : public Semi_join_strategy_picker +{ + /* The first table that the strategy will need to handle */ + uint first_dupsweedout_table; + + /* + Tables that we will need to have in the prefix to do the weedout step + (all inner and all outer that the involved semi-joins are correlated with) + */ + table_map dupsweedout_tables; + + bool is_used; +public: + void set_empty() + { + dupsweedout_tables= 0; + first_dupsweedout_table= MAX_TABLES; + is_used= FALSE; + } + void set_from_prev(struct st_position *prev); + + bool check_qep(JOIN *join, + uint idx, + table_map remaining_tables, + const JOIN_TAB *new_join_tab, + double *record_count, + double *read_time, + table_map *handled_fanout, + sj_strategy_enum *stratey, + struct st_position *loose_scan_pos); + + void mark_used() { is_used= TRUE; } + friend void fix_semijoin_strategies_for_picked_join_order(JOIN *join); +}; + + +class Firstmatch_picker : public Semi_join_strategy_picker +{ + /* + Index of the first inner table that we intend to handle with this + strategy + */ + uint first_firstmatch_table; + /* + Tables that were not in the join prefix when we've started considering + FirstMatch strategy. + */ + table_map first_firstmatch_rtbl; + /* + Tables that need to be in the prefix before we can calculate the cost + of using FirstMatch strategy. + */ + table_map firstmatch_need_tables; + + bool is_used; + + bool in_firstmatch_prefix() { return (first_firstmatch_table != MAX_TABLES); } + void invalidate_firstmatch_prefix() { first_firstmatch_table= MAX_TABLES; } +public: + void set_empty() + { + invalidate_firstmatch_prefix(); + is_used= FALSE; + } + + void set_from_prev(struct st_position *prev); + bool check_qep(JOIN *join, + uint idx, + table_map remaining_tables, + const JOIN_TAB *new_join_tab, + double *record_count, + double *read_time, + table_map *handled_fanout, + sj_strategy_enum *strategy, + struct st_position *loose_scan_pos); + + void mark_used() { is_used= TRUE; } + friend void fix_semijoin_strategies_for_picked_join_order(JOIN *join); +}; + + +class LooseScan_picker : public Semi_join_strategy_picker +{ + /* The first (i.e. driving) table we're doing loose scan for */ + uint first_loosescan_table; + /* + Tables that need to be in the prefix before we can calculate the cost + of using LooseScan strategy. + */ + table_map loosescan_need_tables; + + /* + keyno - Planning to do LooseScan on this key. If keyuse is NULL then + this is a full index scan, otherwise this is a ref+loosescan + scan (and keyno matches the KEUSE's) + MAX_KEY - Not doing a LooseScan + */ + uint loosescan_key; // final (one for strategy instance ) + uint loosescan_parts; /* Number of keyparts to be kept distinct */ + + bool is_used; +public: + void set_empty() + { + first_loosescan_table= MAX_TABLES; + is_used= FALSE; + } + + void set_from_prev(struct st_position *prev); + bool check_qep(JOIN *join, + uint idx, + table_map remaining_tables, + const JOIN_TAB *new_join_tab, + double *record_count, + double *read_time, + table_map *handled_fanout, + sj_strategy_enum *strategy, + struct st_position *loose_scan_pos); + void mark_used() { is_used= TRUE; } + + friend class Loose_scan_opt; + friend void best_access_path(JOIN *join, + JOIN_TAB *s, + table_map remaining_tables, + uint idx, + bool disable_jbuf, + double record_count, + struct st_position *pos, + struct st_position *loose_scan_pos); + friend bool get_best_combination(JOIN *join); + friend int setup_semijoin_dups_elimination(JOIN *join, ulonglong options, + uint no_jbuf_after); + friend void fix_semijoin_strategies_for_picked_join_order(JOIN *join); +}; + + +class Sj_materialization_picker : public Semi_join_strategy_picker +{ + bool is_used; + + /* The last inner table (valid once we're after it) */ + uint sjm_scan_last_inner; + /* + Tables that we need to have in the prefix to calculate the correct cost. + Basically, we need all inner tables and outer tables mentioned in the + semi-join's ON expression so we can correctly account for fanout. + */ + table_map sjm_scan_need_tables; + +public: + void set_empty() + { + sjm_scan_need_tables= 0; + LINT_INIT(sjm_scan_last_inner); + is_used= FALSE; + } + void set_from_prev(struct st_position *prev); + bool check_qep(JOIN *join, + uint idx, + table_map remaining_tables, + const JOIN_TAB *new_join_tab, + double *record_count, + double *read_time, + table_map *handled_fanout, + sj_strategy_enum *strategy, + struct st_position *loose_scan_pos); + void mark_used() { is_used= TRUE; } + + friend void fix_semijoin_strategies_for_picked_join_order(JOIN *join); +}; + + +/** + Information about a position of table within a join order. Used in join + optimization. +*/ +typedef struct st_position :public Sql_alloc +{ + /* The table that's put into join order */ + JOIN_TAB *table; + + /* + The "fanout": number of output rows that will be produced (after + pushed down selection condition is applied) per each row combination of + previous tables. + */ + double records_read; + + /* + Cost accessing the table in course of the entire complete join execution, + i.e. cost of one access method use (e.g. 'range' or 'ref' scan ) times + number the access method will be invoked. + */ + double read_time; + + /* Cumulative cost and record count for the join prefix */ + COST_VECT prefix_cost; + double prefix_record_count; + + /* + NULL - 'index' or 'range' or 'index_merge' or 'ALL' access is used. + Other - [eq_]ref[_or_null] access is used. Pointer to {t.keypart1 = expr} + */ + KEYUSE *key; + + /* If ref-based access is used: bitmap of tables this table depends on */ + table_map ref_depend_map; + + /* + TRUE <=> join buffering will be used. At the moment this is based on + *very* imprecise guesses made in best_access_path(). + */ + bool use_join_buffer; + + /* + Current optimization state: Semi-join strategy to be used for this + and preceding join tables. + + Join optimizer sets this for the *last* join_tab in the + duplicate-generating range. That is, in order to interpret this field, + one needs to traverse join->[best_]positions array from right to left. + When you see a join table with sj_strategy!= SJ_OPT_NONE, some other + field (depending on the strategy) tells how many preceding positions + this applies to. The values of covered_preceding_positions->sj_strategy + must be ignored. + */ + enum sj_strategy_enum sj_strategy; + + /* + Valid only after fix_semijoin_strategies_for_picked_join_order() call: + if sj_strategy!=SJ_OPT_NONE, this is the number of subsequent tables that + are covered by the specified semi-join strategy + */ + uint n_sj_tables; + + /* + Bitmap of semi-join inner tables that are in the join prefix and for + which there's no provision for how to eliminate semi-join duplicates + they produce. + */ + table_map dups_producing_tables; + + table_map inner_tables_handled_with_other_sjs; + + Duplicate_weedout_picker dups_weedout_picker; + Firstmatch_picker firstmatch_picker; + LooseScan_picker loosescan_picker; + Sj_materialization_picker sjmat_picker; +} POSITION; + +typedef struct st_rollup +{ + enum State { STATE_NONE, STATE_INITED, STATE_READY }; + State state; + Item_null_result **null_items; + Item ***ref_pointer_arrays; + List *fields; +} ROLLUP; + + +class JOIN_TAB_RANGE: public Sql_alloc +{ +public: + JOIN_TAB *start; + JOIN_TAB *end; +}; + + +class JOIN :public Sql_alloc +{ +private: + JOIN(const JOIN &rhs); /**< not implemented */ + JOIN& operator=(const JOIN &rhs); /**< not implemented */ + +protected: + + /** + The subset of the state of a JOIN that represents an optimized query + execution plan. Allows saving/restoring different JOIN plans for the same + query. + */ + class Join_plan_state { + public: + DYNAMIC_ARRAY keyuse; /* Copy of the JOIN::keyuse array. */ + POSITION *best_positions; /* Copy of JOIN::best_positions */ + /* Copies of the JOIN_TAB::keyuse pointers for each JOIN_TAB. */ + KEYUSE **join_tab_keyuse; + /* Copies of JOIN_TAB::checked_keys for each JOIN_TAB. */ + key_map *join_tab_checked_keys; + SJ_MATERIALIZATION_INFO **sj_mat_info; + my_bool error; + public: + Join_plan_state(uint tables) : error(0) + { + keyuse.elements= 0; + keyuse.buffer= NULL; + best_positions= 0; /* To detect errors */ + error= my_multi_malloc(MYF(MY_WME), + &best_positions, + sizeof(*best_positions) * (tables + 1), + &join_tab_keyuse, + sizeof(*join_tab_keyuse) * tables, + &join_tab_checked_keys, + sizeof(*join_tab_checked_keys) * tables, + &sj_mat_info, + sizeof(sj_mat_info) * tables, + NullS) == 0; + } + Join_plan_state(JOIN *join); + ~Join_plan_state() + { + delete_dynamic(&keyuse); + my_free(best_positions); + } + }; + + /* Results of reoptimizing a JOIN via JOIN::reoptimize(). */ + enum enum_reopt_result { + REOPT_NEW_PLAN, /* there is a new reoptimized plan */ + REOPT_OLD_PLAN, /* no new improved plan can be found, use the old one */ + REOPT_ERROR, /* an irrecovarable error occured during reoptimization */ + REOPT_NONE /* not yet reoptimized */ + }; + + /* Support for plan reoptimization with rewritten conditions. */ + enum_reopt_result reoptimize(Item *added_where, table_map join_tables, + Join_plan_state *save_to); + void save_query_plan(Join_plan_state *save_to); + void reset_query_plan(); + void restore_query_plan(Join_plan_state *restore_from); + /* Choose a subquery plan for a table-less subquery. */ + bool choose_tableless_subquery_plan(); + +public: + JOIN_TAB *join_tab, **best_ref; + + /* + Saved join_tab for pre_sorting. create_sort_index() will save here.. + */ + JOIN_TAB *pre_sort_join_tab; + uint pre_sort_index; + Item *pre_sort_idx_pushed_cond; + void clean_pre_sort_join_tab(); + + /* List of fields that aren't under an aggregate function */ + List non_agg_fields; + + /* + For "Using temporary+Using filesort" queries, JOIN::join_tab can point to + either: + 1. array of join tabs describing how to run the select, or + 2. array of single join tab describing read from the temporary table. + + SHOW EXPLAIN code needs to read/show #1. This is why two next members are + there for saving it. + */ + JOIN_TAB *table_access_tabs; + uint top_table_access_tabs_count; + + JOIN_TAB **map2table; ///< mapping between table indexes and JOIN_TABs + JOIN_TAB *join_tab_save; ///< saved join_tab for subquery reexecution + + List join_tab_ranges; + + /* + Base tables participating in the join. After join optimization is done, the + tables are stored in the join order (but the only really important part is + that const tables are first). + */ + TABLE **table; + /** + The table which has an index that allows to produce the requried ordering. + A special value of 0x1 means that the ordering will be produced by + passing 1st non-const table to filesort(). NULL means no such table exists. + */ + TABLE *sort_by_table; + /* + Number of tables in the join. + (In MySQL, it is named 'tables' and is also the number of elements in + join->join_tab array. In MariaDB, the latter is not true, so we've renamed + the variable) + */ + uint table_count; + uint outer_tables; /**< Number of tables that are not inside semijoin */ + uint const_tables; + /* + Number of tables in the top join_tab array. Normally this matches + (join_tab_ranges.head()->end - join_tab_ranges.head()->start). + + We keep it here so that it is saved/restored with JOIN::restore_tmp. + */ + uint top_join_tab_count; + uint send_group_parts; + bool group; /**< If query contains GROUP BY clause */ + bool need_distinct; + + /** + Indicates that grouping will be performed on the result set during + query execution. This field belongs to query execution. + + @see make_group_fields, alloc_group_fields, JOIN::exec + */ + bool sort_and_group; + bool first_record,full_join, no_field_update; + bool hash_join; + bool do_send_rows; + table_map const_table_map; + /** + Bitmap of semijoin tables that the current partial plan decided + to materialize and access by lookups + */ + table_map sjm_lookup_tables; + /** + Bitmap of semijoin tables that the chosen plan decided + to materialize to scan the results of materialization + */ + table_map sjm_scan_tables; + /* + Constant tables for which we have found a row (as opposed to those for + which we didn't). + */ + table_map found_const_table_map; + + /* Tables removed by table elimination. Set to 0 before the elimination. */ + table_map eliminated_tables; + /* + Bitmap of all inner tables from outer joins (set at start of + make_join_statistics) + */ + table_map outer_join; + /* Bitmap of tables used in the select list items */ + table_map select_list_used_tables; + ha_rows send_records, found_records, examined_rows, + row_limit, select_limit, duplicate_rows; + /** + Used to fetch no more than given amount of rows per one + fetch operation of server side cursor. + The value is checked in end_send and end_send_group in fashion, similar + to offset_limit_cnt: + - fetch_limit= HA_POS_ERROR if there is no cursor. + - when we open a cursor, we set fetch_limit to 0, + - on each fetch iteration we add num_rows to fetch to fetch_limit + */ + ha_rows fetch_limit; + /* Finally picked QEP. This is result of join optimization */ + POSITION *best_positions; + +/******* Join optimization state members start *******/ + /* + pointer - we're doing optimization for a semi-join materialization nest. + NULL - otherwise + */ + TABLE_LIST *emb_sjm_nest; + + /* Current join optimization state */ + POSITION *positions; + + /* + Bitmap of nested joins embedding the position at the end of the current + partial join (valid only during join optimizer run). + */ + nested_join_map cur_embedding_map; + + /* + Bitmap of inner tables of semi-join nests that have a proper subset of + their tables in the current join prefix. That is, of those semi-join + nests that have their tables both in and outside of the join prefix. + */ + table_map cur_sj_inner_tables; + + /* We also maintain a stack of join optimization states in * join->positions[] */ +/******* Join optimization state members end *******/ + + /* + Tables within complex firstmatch ranges (i.e. those where inner tables are + interleaved with outer tables). Join buffering cannot be used for these. + */ + table_map complex_firstmatch_tables; + + /* + The cost of best complete join plan found so far during optimization, + after optimization phase - cost of picked join order (not taking into + account the changes made by test_if_skip_sort_order()). + */ + double best_read; + /* + Estimated result rows (fanout) of the join operation. If this is a subquery + that is reexecuted multiple times, this value includes the estiamted # of + reexecutions. This value is equal to the multiplication of all + join->positions[i].records_read of a JOIN. + */ + double record_count; + List *fields; + List group_fields, group_fields_cache; + TABLE *tmp_table; + /// used to store 2 possible tmp table of SELECT + TABLE *exec_tmp_table1, *exec_tmp_table2; + THD *thd; + Item_sum **sum_funcs, ***sum_funcs_end; + /** second copy of sumfuncs (for queries with 2 temporary tables */ + Item_sum **sum_funcs2, ***sum_funcs_end2; + Procedure *procedure; + Item *having; + Item *tmp_having; ///< To store having when processed temporary table + Item *having_history; ///< Store having for explain + ulonglong select_options; + /* + Bitmap of allowed types of the join caches that + can be used for join operations + */ + uint allowed_join_cache_types; + bool allowed_semijoin_with_cache; + bool allowed_outer_join_with_cache; + /* Maximum level of the join caches that can be used for join operations */ + uint max_allowed_join_cache_level; + select_result *result; + TMP_TABLE_PARAM tmp_table_param; + MYSQL_LOCK *lock; + /// unit structure (with global parameters) for this select + SELECT_LEX_UNIT *unit; + /// select that processed + SELECT_LEX *select_lex; + /** + TRUE <=> optimizer must not mark any table as a constant table. + This is needed for subqueries in form "a IN (SELECT .. UNION SELECT ..): + when we optimize the select that reads the results of the union from a + temporary table, we must not mark the temp. table as constant because + the number of rows in it may vary from one subquery execution to another. + */ + bool no_const_tables; + /* + This flag is set if we call no_rows_in_result() as par of end_group(). + This is used as a simple speed optimization to avoiding calling + restore_no_rows_in_result() in ::reinit() + */ + bool no_rows_in_result_called; + + /** + Copy of this JOIN to be used with temporary tables. + + tmp_join is used when the JOIN needs to be "reusable" (e.g. in a + subquery that gets re-executed several times) and we know will use + temporary tables for materialization. The materialization to a + temporary table overwrites the JOIN structure to point to the + temporary table after the materialization is done. This is where + tmp_join is used : it's a copy of the JOIN before the + materialization and is used in restoring before re-execution by + overwriting the current JOIN structure with the saved copy. + Because of this we should pay extra care of not freeing up helper + structures that are referenced by the original contents of the + JOIN. We can check for this by making sure the "current" join is + not the temporary copy, e.g. !tmp_join || tmp_join != join + + We should free these sub-structures at JOIN::destroy() if the + "current" join has a copy is not that copy. + */ + JOIN *tmp_join; + ROLLUP rollup; ///< Used with rollup + + bool mixed_implicit_grouping; + bool select_distinct; ///< Set if SELECT DISTINCT + /** + If we have the GROUP BY statement in the query, + but the group_list was emptied by optimizer, this + flag is TRUE. + It happens when fields in the GROUP BY are from + constant table + */ + bool group_optimized_away; + + /* + simple_xxxxx is set if ORDER/GROUP BY doesn't include any references + to other tables than the first non-constant table in the JOIN. + It's also set if ORDER/GROUP BY is empty. + Used for deciding for or against using a temporary table to compute + GROUP/ORDER BY. + */ + bool simple_order, simple_group; + /** + Is set only in case if we have a GROUP BY clause + and no ORDER BY after constant elimination of 'order'. + */ + bool no_order; + /** Is set if we have a GROUP BY and we have ORDER BY on a constant. */ + bool skip_sort_order; + + bool need_tmp, hidden_group_fields; + /* TRUE if there was full cleunap of the JOIN */ + bool cleaned; + DYNAMIC_ARRAY keyuse; + Item::cond_result cond_value, having_value; + /** + Impossible where after reading const tables + (set in make_join_statistics()) + */ + bool impossible_where; + List all_fields; ///< to store all fields that used in query + ///Above list changed to use temporary table + List tmp_all_fields1, tmp_all_fields2, tmp_all_fields3; + ///Part, shared with list above, emulate following list + List tmp_fields_list1, tmp_fields_list2, tmp_fields_list3; + List &fields_list; ///< hold field list passed to mysql_select + List procedure_fields_list; + int error; + + ORDER *order, *group_list, *proc_param; //hold parameters of mysql_select + COND *conds; // ---"--- + Item *conds_history; // store WHERE for explain + COND *outer_ref_cond; /// *join_list; ///< list of joined tables in reverse order + COND_EQUAL *cond_equal; + COND_EQUAL *having_equal; + /* + Constant codition computed during optimization, but evaluated during + join execution. Typically expensive conditions that should not be + evaluated at optimization time. + */ + Item *exec_const_cond; + /* + Constant ORDER and/or GROUP expressions that contain subqueries. Such + expressions need to evaluated to verify that the subquery indeed + returns a single row. The evaluation of such expressions is delayed + until query execution. + */ + List exec_const_order_group_cond; + SQL_SELECT *select; ///EXISTS + subquery transformation of a JOIN object. + */ + Item *in_to_exists_where; + Item *in_to_exists_having; + + /* Temporary tables used to weed-out semi-join duplicates */ + List
sj_tmp_tables; + /* SJM nests that are executed with SJ-Materialization strategy */ + List sjm_info_list; + + /* + storage for caching buffers allocated during query execution. + These buffers allocations need to be cached as the thread memory pool is + cleared only at the end of the execution of the whole query and not caching + allocations that occur in repetition at execution time will result in + excessive memory usage. + Note: make_simple_join always creates an execution plan that accesses + a single table, thus it is sufficient to have a one-element array for + table_reexec. + */ + SORT_FIELD *sortorder; // make_unireg_sortorder() + TABLE *table_reexec[1]; // make_simple_join() + JOIN_TAB *join_tab_reexec; // make_simple_join() + /* end of allocation caching storage */ + + JOIN(THD *thd_arg, List &fields_arg, ulonglong select_options_arg, + select_result *result_arg) + :fields_list(fields_arg) + { + init(thd_arg, fields_arg, select_options_arg, result_arg); + } + + void init(THD *thd_arg, List &fields_arg, ulonglong select_options_arg, + select_result *result_arg) + { + join_tab= join_tab_save= 0; + table= 0; + table_count= 0; + top_join_tab_count= 0; + const_tables= 0; + eliminated_tables= 0; + join_list= 0; + implicit_grouping= FALSE; + sort_and_group= 0; + first_record= 0; + do_send_rows= 1; + duplicate_rows= send_records= 0; + found_records= 0; + fetch_limit= HA_POS_ERROR; + examined_rows= 0; + exec_tmp_table1= 0; + exec_tmp_table2= 0; + sortorder= 0; + table_reexec[0]= 0; + join_tab_reexec= 0; + thd= thd_arg; + sum_funcs= sum_funcs2= 0; + procedure= 0; + having= tmp_having= having_history= 0; + select_options= select_options_arg; + result= result_arg; + lock= thd_arg->lock; + select_lex= 0; //for safety + tmp_join= 0; + select_distinct= test(select_options & SELECT_DISTINCT); + no_order= 0; + simple_order= 0; + simple_group= 0; + need_distinct= 0; + skip_sort_order= 0; + need_tmp= 0; + hidden_group_fields= 0; /*safety*/ + error= 0; + select= 0; + return_tab= 0; + ref_pointer_array= items0= items1= items2= items3= 0; + ref_pointer_array_size= 0; + zero_result_cause= 0; + optimized= 0; + initialized= 0; + cleaned= 0; + cond_equal= 0; + having_equal= 0; + exec_const_cond= 0; + group_optimized_away= 0; + no_rows_in_result_called= 0; + positions= best_positions= 0; + + all_fields= fields_arg; + if (&fields_list != &fields_arg) /* Avoid valgrind-warning */ + fields_list= fields_arg; + non_agg_fields.empty(); + bzero((char*) &keyuse,sizeof(keyuse)); + tmp_table_param.init(); + tmp_table_param.end_write_records= HA_POS_ERROR; + rollup.state= ROLLUP::STATE_NONE; + + no_const_tables= FALSE; + outer_ref_cond= pseudo_bits_cond= NULL; + in_to_exists_where= NULL; + in_to_exists_having= NULL; + pre_sort_join_tab= NULL; + emb_sjm_nest= NULL; + sjm_lookup_tables= 0; + sjm_scan_tables= 0; + /* + The following is needed because JOIN::cleanup(true) may be called for + joins for which JOIN::optimize was aborted with an error before a proper + query plan was produced + */ + table_access_tabs= NULL; + } + + int prepare(Item ***rref_pointer_array, TABLE_LIST *tables, uint wind_num, + COND *conds, uint og_num, ORDER *order, bool skip_order_by, + ORDER *group, Item *having, ORDER *proc_param, SELECT_LEX *select, + SELECT_LEX_UNIT *unit); + bool prepare_stage2(); + int optimize(); + int reinit(); + int init_execution(); + void exec(); + int destroy(); + void restore_tmp(); + bool alloc_func_list(); + bool flatten_subqueries(); + bool optimize_unflattened_subqueries(); + bool optimize_constant_subqueries(); + bool make_sum_func_list(List &all_fields, List &send_fields, + bool before_group_by, bool recompute= FALSE); + + inline void set_items_ref_array(Item **ptr) + { + memcpy((char*) ref_pointer_array, (char*) ptr, ref_pointer_array_size); + current_ref_pointer_array= ptr; + } + inline void init_items_ref_array() + { + items0= ref_pointer_array + all_fields.elements; + memcpy(items0, ref_pointer_array, ref_pointer_array_size); + current_ref_pointer_array= items0; + } + + bool rollup_init(); + bool rollup_process_const_fields(); + bool rollup_make_fields(List &all_fields, List &fields, + Item_sum ***func); + int rollup_send_data(uint idx); + int rollup_write_data(uint idx, TABLE *table); + /** + Release memory and, if possible, the open tables held by this execution + plan (and nested plans). It's used to release some tables before + the end of execution in order to increase concurrency and reduce + memory consumption. + */ + void join_free(); + /** Cleanup this JOIN, possibly for reuse */ + void cleanup(bool full); + void clear(); + bool save_join_tab(); + bool init_save_join_tab(); + bool send_row_on_empty_set() + { + return (do_send_rows && implicit_grouping && !group_optimized_away && + having_value != Item::COND_FALSE); + } + bool empty_result() { return (zero_result_cause && !implicit_grouping); } + bool change_result(select_result *result); + bool is_top_level_join() const + { + return (unit == &thd->lex->unit && (unit->fake_select_lex == 0 || + select_lex == unit->fake_select_lex)); + } + void cache_const_exprs(); + inline table_map all_tables_map() + { + return (table_map(1) << table_count) - 1; + } + void drop_unused_derived_keys(); + inline void eval_select_list_used_tables(); + /* + Return the table for which an index scan can be used to satisfy + the sort order needed by the ORDER BY/(implicit) GROUP BY clause + */ + JOIN_TAB *get_sort_by_join_tab() + { + return (need_tmp || !sort_by_table || skip_sort_order || + ((group || tmp_table_param.sum_func_count) && !group_list)) ? + NULL : join_tab+const_tables; + } + bool setup_subquery_caches(); + bool shrink_join_buffers(JOIN_TAB *jt, + ulonglong curr_space, + ulonglong needed_space); + void set_allowed_join_cache_types(); + bool is_allowed_hash_join_access() + { + return test(allowed_join_cache_types & JOIN_CACHE_HASHED_BIT) && + max_allowed_join_cache_level > JOIN_CACHE_HASHED_BIT; + } + /* + Check if we need to create a temporary table. + This has to be done if all tables are not already read (const tables) + and one of the following conditions holds: + - We are using DISTINCT (simple distinct's are already optimized away) + - We are using an ORDER BY or GROUP BY on fields not in the first table + - We are using different ORDER BY and GROUP BY orders + - The user wants us to buffer the result. + When the WITH ROLLUP modifier is present, we cannot skip temporary table + creation for the DISTINCT clause just because there are only const tables. + */ + bool test_if_need_tmp_table() + { + return ((const_tables != table_count && + ((select_distinct || !simple_order || !simple_group) || + (group_list && order) || + test(select_options & OPTION_BUFFER_RESULT))) || + (rollup.state != ROLLUP::STATE_NONE && select_distinct)); + } + bool choose_subquery_plan(table_map join_tables); + void get_partial_cost_and_fanout(int end_tab_idx, + table_map filter_map, + double *read_time_arg, + double *record_count_arg); + void get_prefix_cost_and_fanout(uint n_tables, + double *read_time_arg, + double *record_count_arg); + double get_examined_rows(); + /* defined in opt_subselect.cc */ + bool transform_max_min_subquery(); + /* True if this JOIN is a subquery under an IN predicate. */ + bool is_in_subquery() + { + return (unit->item && unit->item->is_in_predicate()); + } +private: + /** + TRUE if the query contains an aggregate function but has no GROUP + BY clause. + */ + bool implicit_grouping; + bool make_simple_join(JOIN *join, TABLE *tmp_table); + void cleanup_item_list(List &items) const; +}; + +enum enum_with_bush_roots { WITH_BUSH_ROOTS, WITHOUT_BUSH_ROOTS}; +enum enum_with_const_tables { WITH_CONST_TABLES, WITHOUT_CONST_TABLES}; + +JOIN_TAB *first_linear_tab(JOIN *join, + enum enum_with_bush_roots include_bush_roots, + enum enum_with_const_tables const_tbls); +JOIN_TAB *next_linear_tab(JOIN* join, JOIN_TAB* tab, + enum enum_with_bush_roots include_bush_roots); + +JOIN_TAB *first_top_level_tab(JOIN *join, enum enum_with_const_tables with_const); +JOIN_TAB *next_top_level_tab(JOIN *join, JOIN_TAB *tab); + +typedef struct st_select_check { + uint const_ref,reg_ref; +} SELECT_CHECK; + +extern const char *join_type_str[]; + +/* Extern functions in sql_select.cc */ +void count_field_types(SELECT_LEX *select_lex, TMP_TABLE_PARAM *param, + List &fields, bool reset_with_sum_func); +bool setup_copy_fields(THD *thd, TMP_TABLE_PARAM *param, + Item **ref_pointer_array, + List &new_list1, List &new_list2, + uint elements, List &fields); +void copy_fields(TMP_TABLE_PARAM *param); +bool copy_funcs(Item **func_ptr, const THD *thd); +uint find_shortest_key(TABLE *table, const key_map *usable_keys); +Field* create_tmp_field_from_field(THD *thd, Field* org_field, + const char *name, TABLE *table, + Item_field *item, uint convert_blob_length); + +bool is_indexed_agg_distinct(JOIN *join, List *out_args); + +/* functions from opt_sum.cc */ +bool simple_pred(Item_func *func_item, Item **args, bool *inv_order); +int opt_sum_query(THD* thd, + List &tables, List &all_fields, COND *conds); + +/* from sql_delete.cc, used by opt_range.cc */ +extern "C" int refpos_order_cmp(void* arg, const void *a,const void *b); + +/** class to copying an field/item to a key struct */ + +class store_key :public Sql_alloc +{ +public: + bool null_key; /* TRUE <=> the value of the key has a null part */ + enum store_key_result { STORE_KEY_OK, STORE_KEY_FATAL, STORE_KEY_CONV }; + enum Type { FIELD_STORE_KEY, ITEM_STORE_KEY, CONST_ITEM_STORE_KEY }; + store_key(THD *thd, Field *field_arg, uchar *ptr, uchar *null, uint length) + :null_key(0), null_ptr(null), err(0) + { + if (field_arg->type() == MYSQL_TYPE_BLOB + || field_arg->type() == MYSQL_TYPE_GEOMETRY) + { + /* + Key segments are always packed with a 2 byte length prefix. + See mi_rkey for details. + */ + to_field= new Field_varstring(ptr, length, 2, null, 1, + Field::NONE, field_arg->field_name, + field_arg->table->s, field_arg->charset()); + to_field->init(field_arg->table); + } + else + to_field=field_arg->new_key_field(thd->mem_root, field_arg->table, + ptr, null, 1); + } + store_key(store_key &arg) + :Sql_alloc(), null_key(arg.null_key), to_field(arg.to_field), + null_ptr(arg.null_ptr), err(arg.err) + + {} + virtual ~store_key() {} /** Not actually needed */ + virtual enum Type type() const=0; + virtual const char *name() const=0; + virtual bool store_key_is_const() { return false; } + + /** + @brief sets ignore truncation warnings mode and calls the real copy method + + @details this function makes sure truncation warnings when preparing the + key buffers don't end up as errors (because of an enclosing INSERT/UPDATE). + */ + enum store_key_result copy() + { + enum store_key_result result; + THD *thd= to_field->table->in_use; + enum_check_fields saved_count_cuted_fields= thd->count_cuted_fields; + ulonglong sql_mode= thd->variables.sql_mode; + thd->variables.sql_mode&= ~(MODE_NO_ZERO_IN_DATE | MODE_NO_ZERO_DATE); + thd->variables.sql_mode|= MODE_INVALID_DATES; + + thd->count_cuted_fields= CHECK_FIELD_IGNORE; + + result= copy_inner(); + + thd->count_cuted_fields= saved_count_cuted_fields; + thd->variables.sql_mode= sql_mode; + + return result; + } + + protected: + Field *to_field; // Store data here + uchar *null_ptr; + uchar err; + + virtual enum store_key_result copy_inner()=0; +}; + + +class store_key_field: public store_key +{ + Copy_field copy_field; + const char *field_name; + public: + store_key_field(THD *thd, Field *to_field_arg, uchar *ptr, + uchar *null_ptr_arg, + uint length, Field *from_field, const char *name_arg) + :store_key(thd, to_field_arg,ptr, + null_ptr_arg ? null_ptr_arg : from_field->maybe_null() ? &err + : (uchar*) 0, length), field_name(name_arg) + { + if (to_field) + { + copy_field.set(to_field,from_field,0); + } + } + + enum Type type() const { return FIELD_STORE_KEY; } + const char *name() const { return field_name; } + + void change_source_field(Item_field *fld_item) + { + copy_field.set(to_field, fld_item->field, 0); + field_name= fld_item->full_name(); + } + + protected: + enum store_key_result copy_inner() + { + TABLE *table= copy_field.to_field->table; + my_bitmap_map *old_map= dbug_tmp_use_all_columns(table, + table->write_set); + + /* + It looks like the next statement is needed only for a simplified + hash function over key values used now in BNLH join. + When the implementation of this function will be replaced for a proper + full version this statement probably should be removed. + */ + bzero(copy_field.to_ptr,copy_field.to_length); + + copy_field.do_copy(©_field); + dbug_tmp_restore_column_map(table->write_set, old_map); + null_key= to_field->is_null(); + return err != 0 ? STORE_KEY_FATAL : STORE_KEY_OK; + } +}; + + +class store_key_item :public store_key +{ + protected: + Item *item; + /* + Flag that forces usage of save_val() method which save value of the + item instead of save_in_field() method which saves result. + */ + bool use_value; +public: + store_key_item(THD *thd, Field *to_field_arg, uchar *ptr, + uchar *null_ptr_arg, uint length, Item *item_arg, bool val) + :store_key(thd, to_field_arg, ptr, + null_ptr_arg ? null_ptr_arg : item_arg->maybe_null ? + &err : (uchar*) 0, length), item(item_arg), use_value(val) + {} + store_key_item(store_key &arg, Item *new_item, bool val) + :store_key(arg), item(new_item), use_value(val) + {} + + + enum Type type() const { return ITEM_STORE_KEY; } + const char *name() const { return "func"; } + + protected: + enum store_key_result copy_inner() + { + TABLE *table= to_field->table; + my_bitmap_map *old_map= dbug_tmp_use_all_columns(table, + table->write_set); + int res= FALSE; + + /* + It looks like the next statement is needed only for a simplified + hash function over key values used now in BNLH join. + When the implementation of this function will be replaced for a proper + full version this statement probably should be removed. + */ + to_field->reset(); + + if (use_value) + item->save_val(to_field); + else + res= item->save_in_field(to_field, 1); + /* + Item::save_in_field() may call Item::val_xxx(). And if this is a subquery + we need to check for errors executing it and react accordingly + */ + if (!res && table->in_use->is_error()) + res= 1; /* STORE_KEY_FATAL */ + dbug_tmp_restore_column_map(table->write_set, old_map); + null_key= to_field->is_null() || item->null_value; + return ((err != 0 || res < 0 || res > 2) ? STORE_KEY_FATAL : + (store_key_result) res); + } +}; + + +class store_key_const_item :public store_key_item +{ + bool inited; +public: + store_key_const_item(THD *thd, Field *to_field_arg, uchar *ptr, + uchar *null_ptr_arg, uint length, + Item *item_arg) + :store_key_item(thd, to_field_arg, ptr, + null_ptr_arg ? null_ptr_arg : item_arg->maybe_null ? + &err : (uchar*) 0, length, item_arg, FALSE), inited(0) + { + } + store_key_const_item(store_key &arg, Item *new_item) + :store_key_item(arg, new_item, FALSE), inited(0) + {} + + enum Type type() const { return CONST_ITEM_STORE_KEY; } + const char *name() const { return "const"; } + bool store_key_is_const() { return true; } + +protected: + enum store_key_result copy_inner() + { + int res; + if (!inited) + { + inited=1; + TABLE *table= to_field->table; + my_bitmap_map *old_map= dbug_tmp_use_all_columns(table, + table->write_set); + if ((res= item->save_in_field(to_field, 1))) + { + if (!err) + err= res < 0 ? 1 : res; /* 1=STORE_KEY_FATAL */ + } + /* + Item::save_in_field() may call Item::val_xxx(). And if this is a subquery + we need to check for errors executing it and react accordingly + */ + if (!err && to_field->table->in_use->is_error()) + err= 1; /* STORE_KEY_FATAL */ + dbug_tmp_restore_column_map(table->write_set, old_map); + } + null_key= to_field->is_null() || item->null_value; + return (err > 2 ? STORE_KEY_FATAL : (store_key_result) err); + } +}; + +bool cp_buffer_from_ref(THD *thd, TABLE *table, TABLE_REF *ref); +bool error_if_full_join(JOIN *join); +int report_error(TABLE *table, int error); +int safe_index_read(JOIN_TAB *tab); +COND *remove_eq_conds(THD *thd, COND *cond, Item::cond_result *cond_value); +int get_quick_record(SQL_SELECT *select); +SORT_FIELD * make_unireg_sortorder(ORDER *order, uint *length, + SORT_FIELD *sortorder); +int setup_order(THD *thd, Item **ref_pointer_array, TABLE_LIST *tables, + List &fields, List &all_fields, ORDER *order); +int setup_group(THD *thd, Item **ref_pointer_array, TABLE_LIST *tables, + List &fields, List &all_fields, ORDER *order, + bool *hidden_group_fields); +bool fix_inner_refs(THD *thd, List &all_fields, SELECT_LEX *select, + Item **ref_pointer_array); +int join_read_key2(THD *thd, struct st_join_table *tab, TABLE *table, + struct st_table_ref *table_ref); + +bool handle_select(THD *thd, LEX *lex, select_result *result, + ulong setup_tables_done_option); +bool mysql_select(THD *thd, Item ***rref_pointer_array, + TABLE_LIST *tables, uint wild_num, List &list, + COND *conds, uint og_num, ORDER *order, ORDER *group, + Item *having, ORDER *proc_param, ulonglong select_type, + select_result *result, SELECT_LEX_UNIT *unit, + SELECT_LEX *select_lex); +void free_underlaid_joins(THD *thd, SELECT_LEX *select); +bool mysql_explain_union(THD *thd, SELECT_LEX_UNIT *unit, + select_result *result); +Field *create_tmp_field(THD *thd, TABLE *table,Item *item, Item::Type type, + Item ***copy_func, Field **from_field, + Field **def_field, + bool group, bool modify_item, + bool table_cant_handle_bit_fields, + bool make_copy_field, + uint convert_blob_length); +bool create_internal_tmp_table(TABLE *table, KEY *keyinfo, + ENGINE_COLUMNDEF *start_recinfo, + ENGINE_COLUMNDEF **recinfo, + ulonglong options, my_bool big_tables); + +/* + General routine to change field->ptr of a NULL-terminated array of Field + objects. Useful when needed to call val_int, val_str or similar and the + field data is not in table->record[0] but in some other structure. + set_key_field_ptr changes all fields of an index using a key_info object. + All methods presume that there is at least one field to change. +*/ + +TABLE *create_virtual_tmp_table(THD *thd, List &field_list); + +int test_if_item_cache_changed(List &list); +int join_init_read_record(JOIN_TAB *tab); +int join_read_record_no_init(JOIN_TAB *tab); +void set_position(JOIN *join,uint idx,JOIN_TAB *table,KEYUSE *key); +inline Item * and_items(Item* cond, Item *item) +{ + return (cond? (new Item_cond_and(cond, item)) : item); +} +bool choose_plan(JOIN *join, table_map join_tables); +void optimize_wo_join_buffering(JOIN *join, uint first_tab, uint last_tab, + table_map last_remaining_tables, + bool first_alt, uint no_jbuf_before, + double *outer_rec_count, double *reopt_cost); +Item_equal *find_item_equal(COND_EQUAL *cond_equal, Field *field, + bool *inherited_fl); +extern bool test_if_ref(Item *, + Item_field *left_item,Item *right_item); + +inline bool optimizer_flag(THD *thd, uint flag) +{ + return (thd->variables.optimizer_switch & flag); +} + +uint get_index_for_order(ORDER *order, TABLE *table, SQL_SELECT *select, + ha_rows limit, bool *need_sort, bool *reverse); +ORDER *simple_remove_const(ORDER *order, COND *where); +bool const_expression_in_where(COND *cond, Item *comp_item, + Field *comp_field= NULL, + Item **const_item= NULL); +bool cond_is_datetime_is_null(Item *cond); +bool cond_has_datetime_is_null(Item *cond); + +/* Table elimination entry point function */ +void eliminate_tables(JOIN *join); + +/* Index Condition Pushdown entry point function */ +void push_index_cond(JOIN_TAB *tab, uint keyno); + +/**************************************************************************** + Temporary table support for SQL Runtime + ***************************************************************************/ + +#define STRING_TOTAL_LENGTH_TO_PACK_ROWS 128 +#define AVG_STRING_LENGTH_TO_PACK_ROWS 64 +#define RATIO_TO_PACK_ROWS 2 +#define MIN_STRING_LENGTH_TO_PACK_ROWS 10 + +TABLE *create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List &fields, + ORDER *group, bool distinct, bool save_sum_fields, + ulonglong select_options, ha_rows rows_limit, + const char* alias, bool do_not_open=FALSE, + bool keep_row_order= FALSE); +void free_tmp_table(THD *thd, TABLE *entry); +bool create_internal_tmp_table_from_heap(THD *thd, TABLE *table, + ENGINE_COLUMNDEF *start_recinfo, + ENGINE_COLUMNDEF **recinfo, + int error, bool ignore_last_dupp_key_error, + bool *is_duplicate); +bool create_internal_tmp_table(TABLE *table, KEY *keyinfo, + ENGINE_COLUMNDEF *start_recinfo, + ENGINE_COLUMNDEF **recinfo, + ulonglong options); +bool open_tmp_table(TABLE *table); +void setup_tmp_table_column_bitmaps(TABLE *table, uchar *bitmaps); +double prev_record_reads(POSITION *positions, uint idx, table_map found_ref); +void fix_list_after_tbl_changes(SELECT_LEX *new_parent, List *tlist); + +#endif /* SQL_SELECT_INCLUDED */ diff --git a/database/include/mysql/private/sql_servers.h b/database/include/mysql/private/sql_servers.h new file mode 100644 index 0000000..7aedc1c --- /dev/null +++ b/database/include/mysql/private/sql_servers.h @@ -0,0 +1,53 @@ +#ifndef SQL_SERVERS_INCLUDED +#define SQL_SERVERS_INCLUDED + +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#include "my_global.h" /* uint */ +#include "slave.h" // for tables_ok(), rpl_filter + +class THD; +typedef struct st_lex_server_options LEX_SERVER_OPTIONS; +typedef struct st_mem_root MEM_ROOT; + +/* structs */ +typedef struct st_federated_server +{ + char *server_name; + long port; + uint server_name_length; + char *db, *scheme, *username, *password, *socket, *owner, *host, *sport; +} FOREIGN_SERVER; + +/* cache handlers */ +bool servers_init(bool dont_read_server_table); +bool servers_reload(THD *thd); +void servers_free(bool end=0); + +/* insert functions */ +int create_server(THD *thd, LEX_SERVER_OPTIONS *server_options); + +/* drop functions */ +int drop_server(THD *thd, LEX_SERVER_OPTIONS *server_options); + +/* update functions */ +int alter_server(THD *thd, LEX_SERVER_OPTIONS *server_options); + +/* lookup functions */ +FOREIGN_SERVER *get_server_by_name(MEM_ROOT *mem, const char *server_name, + FOREIGN_SERVER *server_buffer); + +#endif /* SQL_SERVERS_INCLUDED */ diff --git a/database/include/mysql/private/sql_show.h b/database/include/mysql/private/sql_show.h new file mode 100644 index 0000000..6d1a952 --- /dev/null +++ b/database/include/mysql/private/sql_show.h @@ -0,0 +1,144 @@ +/* Copyright (c) 2005, 2010, Oracle and/or its affiliates. + Copyright (c) 2012, 2016, MariaDB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef SQL_SHOW_H +#define SQL_SHOW_H + +#include "sql_list.h" /* List */ +#include "handler.h" /* enum_schema_tables */ +#include "table.h" /* enum_schema_table_state */ + +/* Forward declarations */ +class JOIN; +class String; +class THD; +class sp_name; +struct TABLE_LIST; +struct st_ha_create_information; +typedef class st_select_lex SELECT_LEX; +typedef st_ha_create_information HA_CREATE_INFO; +struct LEX; +typedef struct st_mysql_show_var SHOW_VAR; +typedef struct st_schema_table ST_SCHEMA_TABLE; +struct TABLE; +typedef struct system_status_var STATUS_VAR; + +enum find_files_result { + FIND_FILES_OK, + FIND_FILES_OOM, + FIND_FILES_DIR +}; + +/* Used by handlers to store things in schema tables */ +#define IS_FILES_FILE_ID 0 +#define IS_FILES_FILE_NAME 1 +#define IS_FILES_FILE_TYPE 2 +#define IS_FILES_TABLESPACE_NAME 3 +#define IS_FILES_TABLE_CATALOG 4 +#define IS_FILES_TABLE_SCHEMA 5 +#define IS_FILES_TABLE_NAME 6 +#define IS_FILES_LOGFILE_GROUP_NAME 7 +#define IS_FILES_LOGFILE_GROUP_NUMBER 8 +#define IS_FILES_ENGINE 9 +#define IS_FILES_FULLTEXT_KEYS 10 +#define IS_FILES_DELETED_ROWS 11 +#define IS_FILES_UPDATE_COUNT 12 +#define IS_FILES_FREE_EXTENTS 13 +#define IS_FILES_TOTAL_EXTENTS 14 +#define IS_FILES_EXTENT_SIZE 15 +#define IS_FILES_INITIAL_SIZE 16 +#define IS_FILES_MAXIMUM_SIZE 17 +#define IS_FILES_AUTOEXTEND_SIZE 18 +#define IS_FILES_CREATION_TIME 19 +#define IS_FILES_LAST_UPDATE_TIME 20 +#define IS_FILES_LAST_ACCESS_TIME 21 +#define IS_FILES_RECOVER_TIME 22 +#define IS_FILES_TRANSACTION_COUNTER 23 +#define IS_FILES_VERSION 24 +#define IS_FILES_ROW_FORMAT 25 +#define IS_FILES_TABLE_ROWS 26 +#define IS_FILES_AVG_ROW_LENGTH 27 +#define IS_FILES_DATA_LENGTH 28 +#define IS_FILES_MAX_DATA_LENGTH 29 +#define IS_FILES_INDEX_LENGTH 30 +#define IS_FILES_DATA_FREE 31 +#define IS_FILES_CREATE_TIME 32 +#define IS_FILES_UPDATE_TIME 33 +#define IS_FILES_CHECK_TIME 34 +#define IS_FILES_CHECKSUM 35 +#define IS_FILES_STATUS 36 +#define IS_FILES_EXTRA 37 + +find_files_result find_files(THD *thd, List *files, const char *db, + const char *path, const char *wild, bool dir); + +int store_create_info(THD *thd, TABLE_LIST *table_list, String *packet, + HA_CREATE_INFO *create_info_arg, bool show_database); +int view_store_create_info(THD *thd, TABLE_LIST *table, String *buff); + +int copy_event_to_schema_table(THD *thd, TABLE *sch_table, TABLE *event_table); + +bool append_identifier(THD *thd, String *packet, const char *name, + uint length); +void mysqld_list_fields(THD *thd,TABLE_LIST *table, const char *wild); +int mysqld_dump_create_info(THD *thd, TABLE_LIST *table_list, int fd); +bool mysqld_show_create(THD *thd, TABLE_LIST *table_list); +bool mysqld_show_create_db(THD *thd, char *dbname, HA_CREATE_INFO *create); + +void mysqld_list_processes(THD *thd,const char *user,bool verbose); +int mysqld_show_status(THD *thd); +int mysqld_show_variables(THD *thd,const char *wild); +bool mysqld_show_storage_engines(THD *thd); +bool mysqld_show_authors(THD *thd); +bool mysqld_show_contributors(THD *thd); +bool mysqld_show_privileges(THD *thd); +char *make_backup_log_name(char *buff, const char *name, const char* log_ext); +void calc_sum_of_all_status(STATUS_VAR *to); +void append_definer(THD *thd, String *buffer, const LEX_STRING *definer_user, + const LEX_STRING *definer_host); +int add_status_vars(SHOW_VAR *list); +void remove_status_vars(SHOW_VAR *list); +void init_status_vars(); +void free_status_vars(); +void reset_status_vars(); +bool show_create_trigger(THD *thd, const sp_name *trg_name); +void view_store_options(THD *thd, TABLE_LIST *table, String *buff); + +void init_fill_schema_files_row(TABLE* table); +bool schema_table_store_record(THD *thd, TABLE *table); +void initialize_information_schema_acl(); + +ST_SCHEMA_TABLE *find_schema_table(THD *thd, const char* table_name); +ST_SCHEMA_TABLE *get_schema_table(enum enum_schema_tables schema_table_idx); +int make_schema_select(THD *thd, SELECT_LEX *sel, + enum enum_schema_tables schema_table_idx); +int mysql_schema_table(THD *thd, LEX *lex, TABLE_LIST *table_list); +bool get_schema_tables_result(JOIN *join, + enum enum_schema_table_state executed_place); +enum enum_schema_tables get_schema_table_idx(ST_SCHEMA_TABLE *schema_table); + +/* These functions were under INNODB_COMPATIBILITY_HOOKS */ +int get_quote_char_for_identifier(THD *thd, const char *name, uint length); + +/* Handle the ignored database directories list for SHOW/I_S. */ +bool ignore_db_dirs_init(); +void ignore_db_dirs_free(); +void ignore_db_dirs_reset(); +bool ignore_db_dirs_process_additions(); +bool push_ignored_db_dir(char *path); +extern char *opt_ignore_db_dirs; + +#endif /* SQL_SHOW_H */ diff --git a/database/include/mysql/private/sql_signal.h b/database/include/mysql/private/sql_signal.h new file mode 100644 index 0000000..7bd465a --- /dev/null +++ b/database/include/mysql/private/sql_signal.h @@ -0,0 +1,153 @@ +/* Copyright (c) 2008 MySQL AB, 2009 Sun Microsystems, Inc. + Use is subject to license terms. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef SQL_SIGNAL_H +#define SQL_SIGNAL_H + +/** + Signal_common represents the common properties of the SIGNAL and RESIGNAL + statements. +*/ +class Signal_common : public Sql_statement +{ +protected: + /** + Constructor. + @param lex the LEX structure for this statement. + @param cond the condition signaled if any, or NULL. + @param set collection of signal condition item assignments. + */ + Signal_common(LEX *lex, + const sp_cond_type_t *cond, + const Set_signal_information& set) + : Sql_statement(lex), + m_cond(cond), + m_set_signal_information(set) + {} + + virtual ~Signal_common() + {} + + /** + Assign the condition items 'MYSQL_ERRNO', 'level' and 'MESSAGE_TEXT' + default values of a condition. + @param cond the condition to update. + @param set_level_code true if 'level' and 'MYSQL_ERRNO' needs to be overwritten + @param level the level to assign + @param sqlcode the sql code to assign + */ + static void assign_defaults(MYSQL_ERROR *cond, + bool set_level_code, + MYSQL_ERROR::enum_warning_level level, + int sqlcode); + + /** + Evaluate the condition items 'SQLSTATE', 'MYSQL_ERRNO', 'level' and 'MESSAGE_TEXT' + default values for this statement. + @param thd the current thread. + @param cond the condition to update. + */ + void eval_defaults(THD *thd, MYSQL_ERROR *cond); + + /** + Evaluate each signal condition items for this statement. + @param thd the current thread. + @param cond the condition to update. + @return 0 on success. + */ + int eval_signal_informations(THD *thd, MYSQL_ERROR *cond); + + /** + Raise a SQL condition. + @param thd the current thread. + @param cond the condition to raise. + @return false on success. + */ + bool raise_condition(THD *thd, MYSQL_ERROR *cond); + + /** + The condition to signal or resignal. + This member is optional and can be NULL (RESIGNAL). + */ + const sp_cond_type_t *m_cond; + + /** + Collection of 'SET item = value' assignments in the + SIGNAL/RESIGNAL statement. + */ + Set_signal_information m_set_signal_information; +}; + +/** + Signal_statement represents a SIGNAL statement. +*/ +class Signal_statement : public Signal_common +{ +public: + /** + Constructor, used to represent a SIGNAL statement. + @param lex the LEX structure for this statement. + @param cond the SQL condition to signal (required). + @param set the collection of signal informations to signal. + */ + Signal_statement(LEX *lex, + const sp_cond_type_t *cond, + const Set_signal_information& set) + : Signal_common(lex, cond, set) + {} + + virtual ~Signal_statement() + {} + + /** + Execute a SIGNAL statement at runtime. + @param thd the current thread. + @return false on success. + */ + virtual bool execute(THD *thd); +}; + +/** + Resignal_statement represents a RESIGNAL statement. +*/ +class Resignal_statement : public Signal_common +{ +public: + /** + Constructor, used to represent a RESIGNAL statement. + @param lex the LEX structure for this statement. + @param cond the SQL condition to resignal (optional, may be NULL). + @param set the collection of signal informations to resignal. + */ + Resignal_statement(LEX *lex, + const sp_cond_type_t *cond, + const Set_signal_information& set) + : Signal_common(lex, cond, set) + {} + + virtual ~Resignal_statement() + {} + + /** + Execute a RESIGNAL statement at runtime. + @param thd the current thread. + @return 0 on success. + */ + virtual bool execute(THD *thd); +}; + +#endif + diff --git a/database/include/mysql/private/sql_sort.h b/database/include/mysql/private/sql_sort.h new file mode 100644 index 0000000..1a72b62 --- /dev/null +++ b/database/include/mysql/private/sql_sort.h @@ -0,0 +1,105 @@ +#ifndef SQL_SORT_INCLUDED +#define SQL_SORT_INCLUDED + +/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#include "my_global.h" /* uchar */ +#include "my_base.h" /* ha_rows */ +#include "my_sys.h" /* qsort2_cmp */ +#include "queues.h" + +typedef struct st_buffpek BUFFPEK; +typedef struct st_sort_field SORT_FIELD; + +class Field; +struct TABLE; + + +/* Defines used by filesort and uniques */ + +#define MERGEBUFF 7 +#define MERGEBUFF2 15 + +/* + The structure SORT_ADDON_FIELD describes a fixed layout + for field values appended to sorted values in records to be sorted + in the sort buffer. + Only fixed layout is supported now. + Null bit maps for the appended values is placed before the values + themselves. Offsets are from the last sorted field, that is from the + record referefence, which is still last component of sorted records. + It is preserved for backward compatiblility. + The structure is used tp store values of the additional fields + in the sort buffer. It is used also when these values are read + from a temporary file/buffer. As the reading procedures are beyond the + scope of the 'filesort' code the values have to be retrieved via + the callback function 'unpack_addon_fields'. +*/ + +typedef struct st_sort_addon_field +{ + /* Sort addon packed field */ + Field *field; /* Original field */ + uint offset; /* Offset from the last sorted field */ + uint null_offset; /* Offset to to null bit from the last sorted field */ + uint length; /* Length in the sort buffer */ + uint8 null_bit; /* Null bit mask for the field */ +} SORT_ADDON_FIELD; + +struct BUFFPEK_COMPARE_CONTEXT +{ + qsort_cmp2 key_compare; + void *key_compare_arg; +}; + +typedef struct st_sort_param { + uint rec_length; /* Length of sorted records */ + uint sort_length; /* Length of sorted columns */ + uint ref_length; /* Length of record ref. */ + uint addon_length; /* Length of added packed fields */ + uint res_length; /* Length of records in final sorted file/buffer */ + uint keys; /* Max keys / buffer */ + uint min_dupl_count; + ha_rows max_rows,examined_rows; + TABLE *sort_form; /* For quicker make_sortkey */ + SORT_FIELD *local_sortorder; + SORT_FIELD *end; + SORT_ADDON_FIELD *addon_field; /* Descriptors for companion fields */ + uchar *unique_buff; + bool not_killable; + char* tmp_buffer; + /* The fields below are used only by Unique class */ + qsort2_cmp compare; + BUFFPEK_COMPARE_CONTEXT cmp_context; +} SORTPARAM; + + +int merge_many_buff(SORTPARAM *param, uchar *sort_buffer, + BUFFPEK *buffpek, + uint *maxbuffer, IO_CACHE *t_file); +uint read_to_buffer(IO_CACHE *fromfile,BUFFPEK *buffpek, + uint sort_length); +int merge_buffers(SORTPARAM *param,IO_CACHE *from_file, + IO_CACHE *to_file, uchar *sort_buffer, + BUFFPEK *lastbuff,BUFFPEK *Fb, + BUFFPEK *Tb,int flag); +int merge_index(SORTPARAM *param, uchar *sort_buffer, + BUFFPEK *buffpek, uint maxbuffer, + IO_CACHE *tempfile, IO_CACHE *outfile); + +void reuse_freed_buff(QUEUE *queue, BUFFPEK *reuse, uint key_length); + +#endif /* SQL_SORT_INCLUDED */ diff --git a/database/include/mysql/private/sql_string.h b/database/include/mysql/private/sql_string.h new file mode 100644 index 0000000..608e062 --- /dev/null +++ b/database/include/mysql/private/sql_string.h @@ -0,0 +1,512 @@ +#ifndef SQL_STRING_INCLUDED +#define SQL_STRING_INCLUDED + +/* + Copyright (c) 2000, 2013, Oracle and/or its affiliates. + Copyright (c) 2008, 2013, Monty Program Ab. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* This file is originally from the mysql distribution. Coded by monty */ + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif + +#include "m_ctype.h" /* my_charset_bin */ +#include "my_sys.h" /* alloc_root, my_free, my_realloc */ +#include "m_string.h" /* TRASH */ + +class String; +typedef struct st_io_cache IO_CACHE; +typedef struct st_mem_root MEM_ROOT; + +int sortcmp(const String *a,const String *b, CHARSET_INFO *cs); +String *copy_if_not_alloced(String *a,String *b,uint32 arg_length); +uint32 copy_and_convert(char *to, uint32 to_length, CHARSET_INFO *to_cs, + const char *from, uint32 from_length, + CHARSET_INFO *from_cs, uint *errors); +uint32 well_formed_copy_nchars(CHARSET_INFO *to_cs, + char *to, uint to_length, + CHARSET_INFO *from_cs, + const char *from, uint from_length, + uint nchars, + const char **well_formed_error_pos, + const char **cannot_convert_error_pos, + const char **from_end_pos); +size_t my_copy_with_hex_escaping(CHARSET_INFO *cs, + char *dst, size_t dstlen, + const char *src, size_t srclen); +uint convert_to_printable(char *to, size_t to_len, + const char *from, size_t from_len, + CHARSET_INFO *from_cs, size_t nbytes= 0); + +class String +{ + char *Ptr; + uint32 str_length,Alloced_length, extra_alloc; + bool alloced; + CHARSET_INFO *str_charset; +public: + String() + { + Ptr=0; str_length=Alloced_length=extra_alloc=0; alloced=0; + str_charset= &my_charset_bin; + } + String(uint32 length_arg) + { + alloced=0; Alloced_length= extra_alloc= 0; (void) real_alloc(length_arg); + str_charset= &my_charset_bin; + } + String(const char *str, CHARSET_INFO *cs) + { + Ptr=(char*) str; str_length= (uint32) strlen(str); + Alloced_length= extra_alloc= 0; alloced=0; + str_charset=cs; + } + /* + NOTE: If one intend to use the c_ptr() method, the following two + contructors need the size of memory for STR to be at least LEN+1 (to make + room for zero termination). + */ + String(const char *str,uint32 len, CHARSET_INFO *cs) + { + Ptr=(char*) str; str_length=len; Alloced_length= extra_alloc=0; alloced=0; + str_charset=cs; + } + String(char *str,uint32 len, CHARSET_INFO *cs) + { + Ptr=(char*) str; Alloced_length=str_length=len; extra_alloc= 0; alloced=0; + str_charset=cs; + } + String(const String &str) + { + Ptr=str.Ptr ; str_length=str.str_length ; + Alloced_length=str.Alloced_length; extra_alloc= 0; alloced=0; + str_charset=str.str_charset; + } + static void *operator new(size_t size, MEM_ROOT *mem_root) throw () + { return (void*) alloc_root(mem_root, (uint) size); } + static void operator delete(void *ptr_arg, size_t size) + { + (void) ptr_arg; + (void) size; + TRASH_FREE(ptr_arg, size); + } + static void operator delete(void *, MEM_ROOT *) + { /* never called */ } + ~String() { free(); } + + inline void set_charset(CHARSET_INFO *charset_arg) + { str_charset= charset_arg; } + inline CHARSET_INFO *charset() const { return str_charset; } + inline uint32 length() const { return str_length;} + inline uint32 alloced_length() const { return Alloced_length;} + inline uint32 extra_allocation() const { return extra_alloc;} + inline char& operator [] (uint32 i) const { return Ptr[i]; } + inline void length(uint32 len) { str_length=len ; } + inline void extra_allocation(uint32 len) { extra_alloc= len; } + inline bool is_empty() const { return (str_length == 0); } + inline void mark_as_const() { Alloced_length= 0;} + inline const char *ptr() const { return Ptr; } + inline char *c_ptr() + { + DBUG_ASSERT(!alloced || !Ptr || !Alloced_length || + (Alloced_length >= (str_length + 1))); + + if (!Ptr || Ptr[str_length]) /* Should be safe */ + (void) realloc(str_length); + return Ptr; + } + inline char *c_ptr_quick() + { + if (Ptr && str_length < Alloced_length) + Ptr[str_length]=0; + return Ptr; + } + inline char *c_ptr_safe() + { + if (Ptr && str_length < Alloced_length) + Ptr[str_length]=0; + else + (void) realloc(str_length); + return Ptr; + } + LEX_STRING lex_string() const + { + LEX_STRING lex_string = { (char*) ptr(), length() }; + return lex_string; + } + + void set(String &str,uint32 offset,uint32 arg_length) + { + DBUG_ASSERT(&str != this); + free(); + Ptr=(char*) str.ptr()+offset; str_length=arg_length; + if (str.Alloced_length) + Alloced_length=str.Alloced_length-offset; + str_charset=str.str_charset; + } + + + /** + Points the internal buffer to the supplied one. The old buffer is freed. + @param str Pointer to the new buffer. + @param arg_length Length of the new buffer in characters, excluding any + null character. + @param cs Character set to use for interpreting string data. + @note The new buffer will not be null terminated. + */ + inline void set(char *str,uint32 arg_length, CHARSET_INFO *cs) + { + free(); + Ptr=(char*) str; str_length=Alloced_length=arg_length; + str_charset=cs; + } + inline void set(const char *str,uint32 arg_length, CHARSET_INFO *cs) + { + free(); + Ptr=(char*) str; str_length=arg_length; + str_charset=cs; + } + bool set_ascii(const char *str, uint32 arg_length); + inline void set_quick(char *str,uint32 arg_length, CHARSET_INFO *cs) + { + if (!alloced) + { + Ptr=(char*) str; str_length=Alloced_length=arg_length; + } + str_charset=cs; + } + bool set_int(longlong num, bool unsigned_flag, CHARSET_INFO *cs); + bool set(longlong num, CHARSET_INFO *cs) + { return set_int(num, false, cs); } + bool set(ulonglong num, CHARSET_INFO *cs) + { return set_int((longlong)num, true, cs); } + bool set_real(double num,uint decimals, CHARSET_INFO *cs); + + /* Move handling of buffer from some other object to String */ + void reassociate(char *ptr, uint32 length, uint32 alloced_length, + CHARSET_INFO *cs) + { + free(); + Ptr= ptr; + str_length= length; + Alloced_length= alloced_length; + str_charset= cs; + alloced= ptr != 0; + } + + /* + PMG 2004.11.12 + This is a method that works the same as perl's "chop". It simply + drops the last character of a string. This is useful in the case + of the federated storage handler where I'm building a unknown + number, list of values and fields to be used in a sql insert + statement to be run on the remote server, and have a comma after each. + When the list is complete, I "chop" off the trailing comma + + ex. + String stringobj; + stringobj.append("VALUES ('foo', 'fi', 'fo',"); + stringobj.chop(); + stringobj.append(")"); + + In this case, the value of string was: + + VALUES ('foo', 'fi', 'fo', + VALUES ('foo', 'fi', 'fo' + VALUES ('foo', 'fi', 'fo') + + */ + inline void chop() + { + str_length--; + Ptr[str_length]= '\0'; + DBUG_ASSERT(strlen(Ptr) == str_length); + } + + inline void free() + { + if (alloced) + { + alloced=0; + my_free(Ptr); + } + Alloced_length= extra_alloc= 0; + Ptr=0; + str_length=0; /* Safety */ + } + inline bool alloc(uint32 arg_length) + { + if (arg_length < Alloced_length) + return 0; + return real_alloc(arg_length); + } + bool real_alloc(uint32 arg_length); // Empties old string + bool realloc_raw(uint32 arg_length); + bool realloc(uint32 arg_length) + { + if (realloc_raw(arg_length)) + return TRUE; + Ptr[arg_length]=0; // This make other funcs shorter + return FALSE; + } + bool realloc_with_extra(uint32 arg_length) + { + if (extra_alloc < 4096) + extra_alloc= extra_alloc*2+128; + if (realloc_raw(arg_length + extra_alloc)) + return TRUE; + Ptr[arg_length]=0; // This make other funcs shorter + return FALSE; + } + bool realloc_with_extra_if_needed(uint32 arg_length) + { + if (arg_length < Alloced_length) + { + Ptr[arg_length]=0; // behave as if realloc was called. + return 0; + } + return realloc_with_extra(arg_length); + } + // Shrink the buffer, but only if it is allocated on the heap. + inline void shrink(uint32 arg_length) + { + if (!is_alloced()) + return; + if (ALIGN_SIZE(arg_length+1) < Alloced_length) + { + char *new_ptr; + if (!(new_ptr=(char*) my_realloc(Ptr,arg_length,MYF(0)))) + { + Alloced_length = 0; + real_alloc(arg_length); + } + else + { + Ptr=new_ptr; + Alloced_length=arg_length; + } + } + } + bool is_alloced() const { return alloced; } + inline String& operator = (const String &s) + { + if (&s != this) + { + /* + It is forbidden to do assignments like + some_string = substring_of_that_string + */ + DBUG_ASSERT(!s.uses_buffer_owned_by(this)); + free(); + Ptr=s.Ptr ; str_length=s.str_length ; Alloced_length=s.Alloced_length; + str_charset=s.str_charset; + } + return *this; + } + + bool copy(); // Alloc string if not alloced + bool copy(const String &s); // Allocate new string + bool copy(const char *s,uint32 arg_length, CHARSET_INFO *cs); // Allocate new string + static bool needs_conversion(uint32 arg_length, + CHARSET_INFO *cs_from, CHARSET_INFO *cs_to, + uint32 *offset); + static bool needs_conversion_on_storage(uint32 arg_length, + CHARSET_INFO *cs_from, + CHARSET_INFO *cs_to); + bool copy_aligned(const char *s, uint32 arg_length, uint32 offset, + CHARSET_INFO *cs); + bool set_or_copy_aligned(const char *s, uint32 arg_length, CHARSET_INFO *cs); + bool copy(const char*s,uint32 arg_length, CHARSET_INFO *csfrom, + CHARSET_INFO *csto, uint *errors); + void move(String &s) + { + free(); + Ptr=s.Ptr ; str_length=s.str_length ; Alloced_length=s.Alloced_length; + extra_alloc= s.extra_alloc; + alloced= s.alloced; + s.alloced= 0; + } + bool append(const String &s); + bool append(const char *s); + bool append(LEX_STRING *ls) + { + return append(ls->str, ls->length); + } + bool append(const char *s, uint32 arg_length); + bool append(const char *s, uint32 arg_length, CHARSET_INFO *cs); + bool append_ulonglong(ulonglong val); + bool append(IO_CACHE* file, uint32 arg_length); + bool append_with_prefill(const char *s, uint32 arg_length, + uint32 full_length, char fill_char); + int strstr(const String &search,uint32 offset=0); // Returns offset to substring or -1 + int strrstr(const String &search,uint32 offset=0); // Returns offset to substring or -1 + bool replace(uint32 offset,uint32 arg_length,const char *to,uint32 length); + bool replace(uint32 offset,uint32 arg_length,const String &to); + inline bool append(char chr) + { + if (str_length < Alloced_length) + { + Ptr[str_length++]=chr; + } + else + { + if (realloc_with_extra(str_length + 1)) + return 1; + Ptr[str_length++]=chr; + } + return 0; + } + bool append_hex(const char *src, uint32 srclen) + { + for (const char *end= src + srclen ; src != end ; src++) + { + if (append(_dig_vec_lower[((uchar) *src) >> 4]) || + append(_dig_vec_lower[((uchar) *src) & 0x0F])) + return true; + } + return false; + } + bool fill(uint32 max_length,char fill); + void strip_sp(); + friend int sortcmp(const String *a,const String *b, CHARSET_INFO *cs); + friend int stringcmp(const String *a,const String *b); + friend String *copy_if_not_alloced(String *a,String *b,uint32 arg_length); + friend class Field; + uint32 numchars(); + int charpos(longlong i,uint32 offset=0); + + int reserve(uint32 space_needed) + { + return realloc(str_length + space_needed); + } + int reserve(uint32 space_needed, uint32 grow_by); + + /* + The following append operations do NOT check alloced memory + q_*** methods writes values of parameters itself + qs_*** methods writes string representation of value + */ + void q_append(const char c) + { + Ptr[str_length++] = c; + } + void q_append(const uint32 n) + { + int4store(Ptr + str_length, n); + str_length += 4; + } + void q_append(double d) + { + float8store(Ptr + str_length, d); + str_length += 8; + } + void q_append(double *d) + { + float8store(Ptr + str_length, *d); + str_length += 8; + } + void q_append(const char *data, uint32 data_len) + { + memcpy(Ptr + str_length, data, data_len); + str_length += data_len; + } + + void write_at_position(int position, uint32 value) + { + int4store(Ptr + position,value); + } + + void qs_append(const char *str) + { + qs_append(str, (uint32)strlen(str)); + } + void qs_append(const char *str, uint32 len); + void qs_append(double d); + void qs_append(double *d); + inline void qs_append(const char c) + { + Ptr[str_length]= c; + str_length++; + } + void qs_append(int i); + void qs_append(uint i) + { + qs_append((ulonglong)i); + } + void qs_append(ulong i) + { + qs_append((ulonglong)i); + } + void qs_append(ulonglong i); + + /* Inline (general) functions used by the protocol functions */ + + inline char *prep_append(uint32 arg_length, uint32 step_alloc) + { + uint32 new_length= arg_length + str_length; + if (new_length > Alloced_length) + { + if (realloc(new_length + step_alloc)) + return 0; + } + uint32 old_length= str_length; + str_length+= arg_length; + return Ptr+ old_length; /* Area to use */ + } + + inline bool append(const char *s, uint32 arg_length, uint32 step_alloc) + { + uint32 new_length= arg_length + str_length; + if (new_length > Alloced_length && realloc(new_length + step_alloc)) + return TRUE; + memcpy(Ptr+str_length, s, arg_length); + str_length+= arg_length; + return FALSE; + } + void print(String *print); + void append_for_single_quote(const char *st, uint len); + + /* Swap two string objects. Efficient way to exchange data without memcpy. */ + void swap(String &s); + + inline bool uses_buffer_owned_by(const String *s) const + { + return (s->alloced && Ptr >= s->Ptr && Ptr < s->Ptr + s->str_length); + } + bool is_ascii() const + { + if (length() == 0) + return TRUE; + if (charset()->mbminlen > 1) + return FALSE; + for (const char *c= ptr(), *end= c + length(); c < end; c++) + { + if (!my_isascii(*c)) + return FALSE; + } + return TRUE; + } +}; + +static inline bool check_if_only_end_space(CHARSET_INFO *cs, + const char *str, + const char *end) +{ + return str+ cs->cset->scan(cs, str, end, MY_SEQ_SPACES) == end; +} + +#endif /* SQL_STRING_INCLUDED */ diff --git a/database/include/mysql/private/sql_table.h b/database/include/mysql/private/sql_table.h new file mode 100644 index 0000000..a188353 --- /dev/null +++ b/database/include/mysql/private/sql_table.h @@ -0,0 +1,226 @@ +/* Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef SQL_TABLE_INCLUDED +#define SQL_TABLE_INCLUDED + +#include "my_global.h" /* my_bool */ +#include "my_sys.h" // pthread_mutex_t + +class Alter_info; +class Create_field; +struct TABLE_LIST; +class THD; +struct TABLE; +struct handlerton; +typedef struct st_ha_check_opt HA_CHECK_OPT; +typedef struct st_ha_create_information HA_CREATE_INFO; +typedef struct st_key KEY; +typedef struct st_key_cache KEY_CACHE; +typedef struct st_lock_param_type ALTER_PARTITION_PARAM_TYPE; +typedef struct st_order ORDER; +class Alter_table_change_level; + +enum ddl_log_entry_code +{ + /* + DDL_LOG_EXECUTE_CODE: + This is a code that indicates that this is a log entry to + be executed, from this entry a linked list of log entries + can be found and executed. + DDL_LOG_ENTRY_CODE: + An entry to be executed in a linked list from an execute log + entry. + DDL_IGNORE_LOG_ENTRY_CODE: + An entry that is to be ignored + */ + DDL_LOG_EXECUTE_CODE = 'e', + DDL_LOG_ENTRY_CODE = 'l', + DDL_IGNORE_LOG_ENTRY_CODE = 'i' +}; + +enum ddl_log_action_code +{ + /* + The type of action that a DDL_LOG_ENTRY_CODE entry is to + perform. + DDL_LOG_DELETE_ACTION: + Delete an entity + DDL_LOG_RENAME_ACTION: + Rename an entity + DDL_LOG_REPLACE_ACTION: + Rename an entity after removing the previous entry with the + new name, that is replace this entry. + */ + DDL_LOG_DELETE_ACTION = 'd', + DDL_LOG_RENAME_ACTION = 'r', + DDL_LOG_REPLACE_ACTION = 's' +}; + + +typedef struct st_ddl_log_entry +{ + const char *name; + const char *from_name; + const char *handler_name; + uint next_entry; + uint entry_pos; + enum ddl_log_entry_code entry_type; + enum ddl_log_action_code action_type; + /* + Most actions have only one phase. REPLACE does however have two + phases. The first phase removes the file with the new name if + there was one there before and the second phase renames the + old name to the new name. + */ + char phase; +} DDL_LOG_ENTRY; + +typedef struct st_ddl_log_memory_entry +{ + uint entry_pos; + struct st_ddl_log_memory_entry *next_log_entry; + struct st_ddl_log_memory_entry *prev_log_entry; + struct st_ddl_log_memory_entry *next_active_log_entry; +} DDL_LOG_MEMORY_ENTRY; + + +enum enum_explain_filename_mode +{ + EXPLAIN_ALL_VERBOSE= 0, + EXPLAIN_PARTITIONS_VERBOSE, + EXPLAIN_PARTITIONS_AS_COMMENT +}; + +/* Maximum length of GEOM_POINT Field */ +#define MAX_LEN_GEOM_POINT_FIELD 25 + +/* depends on errmsg.txt Database `db`, Table `t` ... */ +#define EXPLAIN_FILENAME_MAX_EXTRA_LENGTH 63 + +#define WFRM_WRITE_SHADOW 1 +#define WFRM_INSTALL_SHADOW 2 +#define WFRM_PACK_FRM 4 +#define WFRM_KEEP_SHARE 8 + +/* Flags for conversion functions. */ +#define FN_FROM_IS_TMP (1 << 0) +#define FN_TO_IS_TMP (1 << 1) +#define FN_IS_TMP (FN_FROM_IS_TMP | FN_TO_IS_TMP) +#define NO_FRM_RENAME (1 << 2) +#define FRM_ONLY (1 << 3) +/** Don't check foreign key constraints while renaming table */ +#define NO_FK_CHECKS (1 << 4) + +uint filename_to_tablename(const char *from, char *to, uint to_length +#ifndef DBUG_OFF + , bool stay_quiet = false +#endif /* DBUG_OFF */ + ); +uint tablename_to_filename(const char *from, char *to, uint to_length); +uint check_n_cut_mysql50_prefix(const char *from, char *to, uint to_length); +bool check_mysql50_prefix(const char *name); +uint build_table_filename(char *buff, size_t bufflen, const char *db, + const char *table, const char *ext, uint flags); +uint build_table_shadow_filename(char *buff, size_t bufflen, + ALTER_PARTITION_PARAM_TYPE *lpt); +bool check_table_file_presence(char *old_path, char *path, const char *db, + const char *table_name, const char *alias, + bool issue_error); +bool mysql_create_table(THD *thd, TABLE_LIST *create_table, + HA_CREATE_INFO *create_info, + Alter_info *alter_info); +bool mysql_create_table_no_lock(THD *thd, const char *db, + const char *table_name, + HA_CREATE_INFO *create_info, + Alter_info *alter_info, + bool tmp_table, uint select_field_count, + bool *is_trans); +bool mysql_prepare_alter_table(THD *thd, TABLE *table, + HA_CREATE_INFO *create_info, + Alter_info *alter_info); +bool mysql_trans_prepare_alter_copy_data(THD *thd); +bool mysql_trans_commit_alter_copy_data(THD *thd); +bool mysql_alter_table(THD *thd, char *new_db, char *new_name, + HA_CREATE_INFO *create_info, + TABLE_LIST *table_list, + Alter_info *alter_info, + uint order_num, ORDER *order, bool ignore, + bool require_online); +bool mysql_compare_tables(TABLE *table, + Alter_info *alter_info, + HA_CREATE_INFO *create_info, + uint order_num, + Alter_table_change_level *need_copy_table, + KEY **key_info_buffer, + uint **index_drop_buffer, uint *index_drop_count, + uint **index_add_buffer, uint *index_add_count, + uint *candidate_key_count); +bool mysql_recreate_table(THD *thd, TABLE_LIST *table_list); +bool mysql_create_like_table(THD *thd, TABLE_LIST *table, + TABLE_LIST *src_table, + HA_CREATE_INFO *create_info); +bool mysql_rename_table(handlerton *base, const char *old_db, + const char * old_name, const char *new_db, + const char * new_name, uint flags); + +bool mysql_backup_table(THD* thd, TABLE_LIST* table_list); +bool mysql_restore_table(THD* thd, TABLE_LIST* table_list); + +bool mysql_checksum_table(THD* thd, TABLE_LIST* table_list, + HA_CHECK_OPT* check_opt); +bool mysql_rm_table(THD *thd,TABLE_LIST *tables, my_bool if_exists, + my_bool drop_temporary); +int mysql_rm_table_no_locks(THD *thd, TABLE_LIST *tables, bool if_exists, + bool drop_temporary, bool drop_view, + bool log_query); +bool quick_rm_table(handlerton *base,const char *db, + const char *table_name, uint flags); +void close_cached_table(THD *thd, TABLE *table); +void sp_prepare_create_field(THD *thd, Create_field *sql_field); +int prepare_create_field(Create_field *sql_field, + uint *blob_columns, + int *timestamps, int *timestamps_with_niladic, + longlong table_flags); +CHARSET_INFO* get_sql_field_charset(Create_field *sql_field, + HA_CREATE_INFO *create_info); +bool mysql_write_frm(ALTER_PARTITION_PARAM_TYPE *lpt, uint flags); +int write_bin_log(THD *thd, bool clear_error, + char const *query, ulong query_length, + bool is_trans= FALSE); +bool write_ddl_log_entry(DDL_LOG_ENTRY *ddl_log_entry, + DDL_LOG_MEMORY_ENTRY **active_entry); +bool write_execute_ddl_log_entry(uint first_entry, + bool complete, + DDL_LOG_MEMORY_ENTRY **active_entry); +bool deactivate_ddl_log_entry(uint entry_no); +void release_ddl_log_memory_entry(DDL_LOG_MEMORY_ENTRY *log_entry); +bool sync_ddl_log(); +void release_ddl_log(); +void execute_ddl_log_recovery(); +bool execute_ddl_log_entry(THD *thd, uint first_entry); +bool check_duplicate_warning(THD *thd, char *msg, ulong length); + +/* + These prototypes where under INNODB_COMPATIBILITY_HOOKS. +*/ +uint explain_filename(THD* thd, const char *from, char *to, uint to_length, + enum_explain_filename_mode explain_mode); + + +extern MYSQL_PLUGIN_IMPORT const char *primary_key_name; +extern mysql_mutex_t LOCK_gdl; + +#endif /* SQL_TABLE_INCLUDED */ diff --git a/database/include/mysql/private/sql_tablespace.h b/database/include/mysql/private/sql_tablespace.h new file mode 100644 index 0000000..0760935 --- /dev/null +++ b/database/include/mysql/private/sql_tablespace.h @@ -0,0 +1,24 @@ +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef SQL_TABLESPACE_INCLUDED +#define SQL_TABLESPACE_INCLUDED + +class THD; +class st_alter_tablespace; + +int mysql_alter_tablespace(THD* thd, st_alter_tablespace *ts_info); + +#endif /* SQL_TABLESPACE_INCLUDED */ diff --git a/database/include/mysql/private/sql_test.h b/database/include/mysql/private/sql_test.h new file mode 100644 index 0000000..f6d89cf --- /dev/null +++ b/database/include/mysql/private/sql_test.h @@ -0,0 +1,39 @@ +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef SQL_TEST_INCLUDED +#define SQL_TEST_INCLUDED + +#include "mysqld.h" + +class JOIN; +struct TABLE_LIST; +typedef class Item COND; +typedef class st_select_lex SELECT_LEX; +typedef struct st_sort_field SORT_FIELD; + +#ifndef DBUG_OFF +void print_where(COND *cond,const char *info, enum_query_type query_type); +void TEST_filesort(SORT_FIELD *sortorder,uint s_length); +void TEST_join(JOIN *join); +void print_plan(JOIN* join,uint idx, double record_count, double read_time, + double current_read_time, const char *info); +void print_keyuse_array(DYNAMIC_ARRAY *keyuse_array); +void print_sjm(SJ_MATERIALIZATION_INFO *sjm); +void dump_TABLE_LIST_graph(SELECT_LEX *select_lex, TABLE_LIST* tl); +#endif +void mysql_print_status(); + +#endif /* SQL_TEST_INCLUDED */ diff --git a/database/include/mysql/private/sql_time.h b/database/include/mysql/private/sql_time.h new file mode 100644 index 0000000..5bc2def --- /dev/null +++ b/database/include/mysql/private/sql_time.h @@ -0,0 +1,135 @@ +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. + Copyright (c) 2011, 2016, MariaDB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef SQL_TIME_INCLUDED +#define SQL_TIME_INCLUDED + +#include "my_global.h" /* ulong */ +#include "my_time.h" +#include "mysql_time.h" /* timestamp_type */ +#include "sql_error.h" /* MYSQL_ERROR */ +#include "structs.h" /* INTERVAL */ + +typedef enum enum_mysql_timestamp_type timestamp_type; +typedef struct st_date_time_format DATE_TIME_FORMAT; +typedef struct st_known_date_time_format KNOWN_DATE_TIME_FORMAT; + +/* Flags for calc_week() function. */ +#define WEEK_MONDAY_FIRST 1 +#define WEEK_YEAR 2 +#define WEEK_FIRST_WEEKDAY 4 + +ulong convert_period_to_month(ulong period); +ulong convert_month_to_period(ulong month); +bool time_to_datetime(MYSQL_TIME *ltime); +void time_to_daytime_interval(MYSQL_TIME *l_time); +bool get_date_from_daynr(long daynr,uint *year, uint *month, uint *day); +my_time_t TIME_to_timestamp(THD *thd, const MYSQL_TIME *t, uint *error_code); +bool str_to_time_with_warn(CHARSET_INFO *cs, const char *str, uint length, + MYSQL_TIME *l_time, ulonglong fuzzydate); +timestamp_type str_to_datetime_with_warn(CHARSET_INFO *cs, const char *str, + uint length, MYSQL_TIME *l_time, + ulonglong flags); +bool double_to_datetime_with_warn(double value, MYSQL_TIME *ltime, + ulonglong fuzzydate, + const char *name); +bool decimal_to_datetime_with_warn(const my_decimal *value, MYSQL_TIME *ltime, + ulonglong fuzzydate, + const char *name); +bool int_to_datetime_with_warn(bool neg, ulonglong value, MYSQL_TIME *ltime, + ulonglong fuzzydate, + const char *name); + +void make_truncated_value_warning(THD *thd, MYSQL_ERROR::enum_warning_level level, + const ErrConv *str_val, + timestamp_type time_type, + const char *field_name); + +static inline void make_truncated_value_warning(THD *thd, + MYSQL_ERROR::enum_warning_level level, const char *str_val, + uint str_length, timestamp_type time_type, + const char *field_name) +{ + const ErrConvString str(str_val, str_length, &my_charset_bin); + make_truncated_value_warning(thd, level, &str, time_type, field_name); +} + +extern DATE_TIME_FORMAT *date_time_format_make(timestamp_type format_type, + const char *format_str, + uint format_length); +extern DATE_TIME_FORMAT *date_time_format_copy(THD *thd, + DATE_TIME_FORMAT *format); +const char *get_date_time_format_str(KNOWN_DATE_TIME_FORMAT *format, + timestamp_type type); +bool my_TIME_to_str(const MYSQL_TIME *ltime, String *str, uint dec); + +/* MYSQL_TIME operations */ +bool date_add_interval(MYSQL_TIME *ltime, interval_type int_type, + INTERVAL interval); +bool calc_time_diff(MYSQL_TIME *l_time1, MYSQL_TIME *l_time2, int l_sign, + longlong *seconds_out, long *microseconds_out); +int my_time_compare(MYSQL_TIME *a, MYSQL_TIME *b); +void localtime_to_TIME(MYSQL_TIME *to, struct tm *from); +void calc_time_from_sec(MYSQL_TIME *to, long seconds, long microseconds); +uint calc_week(MYSQL_TIME *l_time, uint week_behaviour, uint *year); + +int calc_weekday(long daynr,bool sunday_first_day_of_week); +bool parse_date_time_format(timestamp_type format_type, + const char *format, uint format_length, + DATE_TIME_FORMAT *date_time_format); +/* Character set-aware version of str_to_time() */ +timestamp_type str_to_time(CHARSET_INFO *cs, const char *str,uint length, + MYSQL_TIME *l_time, ulonglong fuzzydate, int *warning); +/* Character set-aware version of str_to_datetime() */ +timestamp_type str_to_datetime(CHARSET_INFO *cs, + const char *str, uint length, + MYSQL_TIME *l_time, ulonglong flags, int *was_cut); + +/* convenience wrapper */ +inline bool parse_date_time_format(timestamp_type format_type, + DATE_TIME_FORMAT *date_time_format) +{ + return parse_date_time_format(format_type, + date_time_format->format.str, + date_time_format->format.length, + date_time_format); +} + + +extern DATE_TIME_FORMAT global_date_format; +extern DATE_TIME_FORMAT global_datetime_format; +extern DATE_TIME_FORMAT global_time_format; +extern KNOWN_DATE_TIME_FORMAT known_date_time_formats[]; +extern LEX_STRING interval_type_to_name[]; + + +static inline bool +non_zero_date(const MYSQL_TIME *ltime) +{ + return ltime->year || ltime->month || ltime->day; +} +static inline bool +check_date(const MYSQL_TIME *ltime, ulonglong flags, int *was_cut) +{ + return check_date(ltime, non_zero_date(ltime), flags, was_cut); +} +bool check_date_with_warn(const MYSQL_TIME *ltime, ulonglong fuzzy_date, + timestamp_type ts_type); +bool make_date_with_warn(MYSQL_TIME *ltime, + ulonglong fuzzy_date, timestamp_type ts_type); +bool adjust_time_range_with_warn(MYSQL_TIME *ltime, uint dec); + +#endif /* SQL_TIME_INCLUDED */ diff --git a/database/include/mysql/private/sql_trigger.h b/database/include/mysql/private/sql_trigger.h new file mode 100644 index 0000000..2d7f931 --- /dev/null +++ b/database/include/mysql/private/sql_trigger.h @@ -0,0 +1,254 @@ +#ifndef SQL_TRIGGER_INCLUDED +#define SQL_TRIGGER_INCLUDED + +/* + Copyright (c) 2004, 2011, Oracle and/or its affiliates. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* Forward declarations */ + +class Item_trigger_field; +class sp_head; +class sp_name; +class Query_tables_list; +struct TABLE_LIST; +class Query_tables_list; + +/** Event on which trigger is invoked. */ +enum trg_event_type +{ + TRG_EVENT_INSERT= 0, + TRG_EVENT_UPDATE= 1, + TRG_EVENT_DELETE= 2, + TRG_EVENT_MAX +}; + +#include "table.h" /* GRANT_INFO */ + +/* + We need this two enums here instead of sql_lex.h because + at least one of them is used by Item_trigger_field interface. + + Time when trigger is invoked (i.e. before or after row actually + inserted/updated/deleted). +*/ +enum trg_action_time_type +{ + TRG_ACTION_BEFORE= 0, TRG_ACTION_AFTER= 1, TRG_ACTION_MAX +}; + + +/** + This class holds all information about triggers of table. + + TODO: Will it be merged into TABLE in the future ? +*/ + +class Table_triggers_list: public Sql_alloc +{ + /** Triggers as SPs grouped by event, action_time */ + sp_head *bodies[TRG_EVENT_MAX][TRG_ACTION_MAX]; + /** + Heads of the lists linking items for all fields used in triggers + grouped by event and action_time. + */ + Item_trigger_field *trigger_fields[TRG_EVENT_MAX][TRG_ACTION_MAX]; + /** + Copy of TABLE::Field array with field pointers set to TABLE::record[1] + buffer instead of TABLE::record[0] (used for OLD values in on UPDATE + trigger and DELETE trigger when it is called for REPLACE). + */ + Field **record1_field; + /** + During execution of trigger new_field and old_field should point to the + array of fields representing new or old version of row correspondingly + (so it can point to TABLE::field or to Tale_triggers_list::record1_field) + */ + Field **new_field; + Field **old_field; + + /* TABLE instance for which this triggers list object was created */ + TABLE *trigger_table; + /** + Names of triggers. + Should correspond to order of triggers on definitions_list, + used in CREATE/DROP TRIGGER for looking up trigger by name. + */ + List names_list; + /** + List of "ON table_name" parts in trigger definitions, used for + updating trigger definitions during RENAME TABLE. + */ + List on_table_names_list; + + /** + Grant information for each trigger (pair: subject table, trigger definer). + */ + GRANT_INFO subject_table_grants[TRG_EVENT_MAX][TRG_ACTION_MAX]; + + /** + This flag indicates that one of the triggers was not parsed successfully, + and as a precaution the object has entered a state where all trigger + access results in errors until all such triggers are dropped. It is not + safe to add triggers since we don't know if the broken trigger has the + same name or event type. Nor is it safe to invoke any trigger for the + aforementioned reasons. The only safe operations are drop_trigger and + drop_all_triggers. + + @see Table_triggers_list::set_parse_error + */ + bool m_has_unparseable_trigger; + + /** + This error will be displayed when the user tries to manipulate or invoke + triggers on a table that has broken triggers. It will get set only once + per statement and thus will contain the first parse error encountered in + the trigger file. + */ + char m_parse_error_message[MYSQL_ERRMSG_SIZE]; + +public: + /** + Field responsible for storing triggers definitions in file. + It have to be public because we are using it directly from parser. + */ + List definitions_list; + /** + List of sql modes for triggers + */ + List definition_modes_list; + + List definers_list; + + /* Character set context, used for parsing and executing triggers. */ + + List client_cs_names; + List connection_cl_names; + List db_cl_names; + + /* End of character ser context. */ + + Table_triggers_list(TABLE *table_arg) + :record1_field(0), trigger_table(table_arg), + m_has_unparseable_trigger(false) + { + bzero((char *)bodies, sizeof(bodies)); + bzero((char *)trigger_fields, sizeof(trigger_fields)); + bzero((char *)&subject_table_grants, sizeof(subject_table_grants)); + } + ~Table_triggers_list(); + + bool create_trigger(THD *thd, TABLE_LIST *table, String *stmt_query); + bool drop_trigger(THD *thd, TABLE_LIST *table, String *stmt_query); + bool process_triggers(THD *thd, trg_event_type event, + trg_action_time_type time_type, + bool old_row_is_record1); + + bool get_trigger_info(THD *thd, trg_event_type event, + trg_action_time_type time_type, + LEX_STRING *trigger_name, LEX_STRING *trigger_stmt, + ulong *sql_mode, + LEX_STRING *definer, + LEX_STRING *client_cs_name, + LEX_STRING *connection_cl_name, + LEX_STRING *db_cl_name); + + void get_trigger_info(THD *thd, + int trigger_idx, + LEX_STRING *trigger_name, + ulonglong *sql_mode, + LEX_STRING *sql_original_stmt, + LEX_STRING *client_cs_name, + LEX_STRING *connection_cl_name, + LEX_STRING *db_cl_name); + + int find_trigger_by_name(const LEX_STRING *trigger_name); + + static bool check_n_load(THD *thd, const char *db, const char *table_name, + TABLE *table, bool names_only); + static bool drop_all_triggers(THD *thd, char *db, char *table_name); + static bool change_table_name(THD *thd, const char *db, + const char *old_alias, + const char *old_table, + const char *new_db, + const char *new_table); + bool has_triggers(trg_event_type event_type, + trg_action_time_type action_time) + { + return (bodies[event_type][action_time] != NULL); + } + bool has_delete_triggers() + { + return (bodies[TRG_EVENT_DELETE][TRG_ACTION_BEFORE] || + bodies[TRG_EVENT_DELETE][TRG_ACTION_AFTER]); + } + + void set_table(TABLE *new_table); + + void mark_fields_used(trg_event_type event); + + void set_parse_error_message(char *error_message); + + friend class Item_trigger_field; + + bool add_tables_and_routines_for_triggers(THD *thd, + Query_tables_list *prelocking_ctx, + TABLE_LIST *table_list); + +private: + bool prepare_record1_accessors(TABLE *table); + LEX_STRING* change_table_name_in_trignames(const char *old_db_name, + const char *new_db_name, + LEX_STRING *new_table_name, + LEX_STRING *stopper); + bool change_table_name_in_triggers(THD *thd, + const char *old_db_name, + const char *new_db_name, + LEX_STRING *old_table_name, + LEX_STRING *new_table_name); + + bool check_for_broken_triggers() + { + if (m_has_unparseable_trigger) + { + my_message(ER_PARSE_ERROR, m_parse_error_message, MYF(0)); + return true; + } + return false; + } +}; + +extern const LEX_STRING trg_action_time_type_names[]; +extern const LEX_STRING trg_event_type_names[]; + +bool add_table_for_trigger(THD *thd, + const sp_name *trg_name, + bool continue_if_not_exist, + TABLE_LIST **table); + +void build_trn_path(THD *thd, const sp_name *trg_name, LEX_STRING *trn_path); + +bool check_trn_exists(const LEX_STRING *trn_path); + +bool load_table_name_for_trigger(THD *thd, + const sp_name *trg_name, + const LEX_STRING *trn_path, + LEX_STRING *tbl_name); +bool mysql_create_or_drop_trigger(THD *thd, TABLE_LIST *tables, bool create); + +extern const char * const TRG_EXT; +extern const char * const TRN_EXT; + +#endif /* SQL_TRIGGER_INCLUDED */ diff --git a/database/include/mysql/private/sql_truncate.h b/database/include/mysql/private/sql_truncate.h new file mode 100644 index 0000000..d091912 --- /dev/null +++ b/database/include/mysql/private/sql_truncate.h @@ -0,0 +1,70 @@ +#ifndef SQL_TRUNCATE_INCLUDED +#define SQL_TRUNCATE_INCLUDED +/* Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +class THD; +struct TABLE_LIST; + +/** + Truncate_statement represents the TRUNCATE statement. +*/ +class Truncate_statement : public Sql_statement +{ +private: + /* Set if a lock must be downgraded after truncate is done. */ + MDL_ticket *m_ticket_downgrade; + +public: + /** + Constructor, used to represent a ALTER TABLE statement. + @param lex the LEX structure for this statement. + */ + Truncate_statement(LEX *lex) + : Sql_statement(lex) + {} + + virtual ~Truncate_statement() + {} + + /** + Execute a TRUNCATE statement at runtime. + @param thd the current thread. + @return false on success. + */ + bool execute(THD *thd); + +protected: + enum truncate_result{ + TRUNCATE_OK=0, + TRUNCATE_FAILED_BUT_BINLOG, + TRUNCATE_FAILED_SKIP_BINLOG + }; + + /** Handle locking a base table for truncate. */ + bool lock_table(THD *, TABLE_LIST *, bool *); + + /** Truncate table via the handler method. */ + enum truncate_result handler_truncate(THD *, TABLE_LIST *, bool); + + /** + Optimized delete of all rows by doing a full regenerate of the table. + Depending on the storage engine, it can be accomplished through a + drop and recreate or via the handler truncate method. + */ + bool truncate_table(THD *, TABLE_LIST *); +}; + +#endif diff --git a/database/include/mysql/private/sql_type_int.h b/database/include/mysql/private/sql_type_int.h new file mode 100644 index 0000000..74e59b0 --- /dev/null +++ b/database/include/mysql/private/sql_type_int.h @@ -0,0 +1,72 @@ +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. + Copyright (c) 2011, 2016, MariaDB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef SQL_TYPE_INT_INCLUDED +#define SQL_TYPE_INT_INCLUDED + + +// A longlong/ulonglong hybrid. Good to store results of val_int(). +class Longlong_hybrid +{ +protected: + longlong m_value; + bool m_unsigned; + int cmp_signed(const Longlong_hybrid& other) const + { + return m_value < other.m_value ? -1 : m_value == other.m_value ? 0 : 1; + } + int cmp_unsigned(const Longlong_hybrid& other) const + { + return (ulonglong) m_value < (ulonglong) other.m_value ? -1 : + m_value == other.m_value ? 0 : 1; + } +public: + Longlong_hybrid(longlong nr, bool unsigned_flag) + :m_value(nr), m_unsigned(unsigned_flag) + { } + longlong value() const { return m_value; } + bool is_unsigned() const { return m_unsigned; } + bool is_unsigned_outside_of_signed_range() const + { + return m_unsigned && ((ulonglong) m_value) > (ulonglong) LONGLONG_MAX; + } + bool neg() const { return m_value < 0 && !m_unsigned; } + ulonglong abs() const + { + if (m_unsigned) + return (ulonglong) m_value; + if (m_value == LONGLONG_MIN) // avoid undefined behavior + return ((ulonglong) LONGLONG_MAX) + 1; + return m_value < 0 ? -m_value : m_value; + } + int cmp(const Longlong_hybrid& other) const + { + if (m_unsigned == other.m_unsigned) + return m_unsigned ? cmp_unsigned(other) : cmp_signed(other); + if (is_unsigned_outside_of_signed_range()) + return 1; + if (other.is_unsigned_outside_of_signed_range()) + return -1; + /* + The unsigned argument is in the range 0..LONGLONG_MAX. + The signed argument is in the range LONGLONG_MIN..LONGLONG_MAX. + Safe to compare as signed. + */ + return cmp_signed(other); + } +}; + +#endif // SQL_TYPE_INT_INCLUDED diff --git a/database/include/mysql/private/sql_udf.h b/database/include/mysql/private/sql_udf.h new file mode 100644 index 0000000..001281b --- /dev/null +++ b/database/include/mysql/private/sql_udf.h @@ -0,0 +1,150 @@ +#ifndef SQL_UDF_INCLUDED +#define SQL_UDF_INCLUDED + +/* Copyright (c) 2000, 2003-2007 MySQL AB, 2009 Sun Microsystems, Inc. + Use is subject to license terms. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + + +/* This file defines structures needed by udf functions */ + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface +#endif + +enum Item_udftype {UDFTYPE_FUNCTION=1,UDFTYPE_AGGREGATE}; + +typedef void (*Udf_func_clear)(UDF_INIT *, uchar *, uchar *); +typedef void (*Udf_func_add)(UDF_INIT *, UDF_ARGS *, uchar *, uchar *); +typedef void (*Udf_func_deinit)(UDF_INIT*); +typedef my_bool (*Udf_func_init)(UDF_INIT *, UDF_ARGS *, char *); +typedef void (*Udf_func_any)(); +typedef double (*Udf_func_double)(UDF_INIT *, UDF_ARGS *, uchar *, uchar *); +typedef longlong (*Udf_func_longlong)(UDF_INIT *, UDF_ARGS *, uchar *, + uchar *); + +typedef struct st_udf_func +{ + LEX_STRING name; + Item_result returns; + Item_udftype type; + char *dl; + void *dlhandle; + Udf_func_any func; + Udf_func_init func_init; + Udf_func_deinit func_deinit; + Udf_func_clear func_clear; + Udf_func_add func_add; + ulong usage_count; +} udf_func; + +class Item_result_field; + +class udf_handler :public Sql_alloc +{ + protected: + udf_func *u_d; + String *buffers; + UDF_ARGS f_args; + UDF_INIT initid; + char *num_buffer; + uchar error, is_null; + bool initialized; + Item **args; + + public: + table_map used_tables_cache; + bool const_item_cache; + bool not_original; + udf_handler(udf_func *udf_arg) :u_d(udf_arg), buffers(0), error(0), + is_null(0), initialized(0), not_original(0) + {} + ~udf_handler(); + const char *name() const { return u_d ? u_d->name.str : "?"; } + Item_result result_type () const + { return u_d ? u_d->returns : STRING_RESULT;} + bool get_arguments(); + bool fix_fields(THD *thd, Item_result_field *item, + uint arg_count, Item **args); + void cleanup(); + double val(my_bool *null_value) + { + is_null= 0; + if (get_arguments()) + { + *null_value=1; + return 0.0; + } + Udf_func_double func= (Udf_func_double) u_d->func; + double tmp=func(&initid, &f_args, &is_null, &error); + if (is_null || error) + { + *null_value=1; + return 0.0; + } + *null_value=0; + return tmp; + } + longlong val_int(my_bool *null_value) + { + is_null= 0; + if (get_arguments()) + { + *null_value=1; + return LL(0); + } + Udf_func_longlong func= (Udf_func_longlong) u_d->func; + longlong tmp=func(&initid, &f_args, &is_null, &error); + if (is_null || error) + { + *null_value=1; + return LL(0); + } + *null_value=0; + return tmp; + } + my_decimal *val_decimal(my_bool *null_value, my_decimal *dec_buf); + void clear() + { + is_null= 0; + Udf_func_clear func= u_d->func_clear; + func(&initid, &is_null, &error); + } + void add(my_bool *null_value) + { + if (get_arguments()) + { + *null_value=1; + return; + } + Udf_func_add func= u_d->func_add; + func(&initid, &f_args, &is_null, &error); + *null_value= (my_bool) (is_null || error); + } + String *val_str(String *str,String *save_str); +}; + + +#ifdef HAVE_DLOPEN +void udf_init(void),udf_free(void); +udf_func *find_udf(const char *name, uint len=0,bool mark_used=0); +void free_udf(udf_func *udf); +int mysql_create_function(THD *thd,udf_func *udf); +int mysql_drop_function(THD *thd,const LEX_STRING *name); +#else +static inline void udf_init(void) { } +static inline void udf_free(void) { } +#endif +#endif /* SQL_UDF_INCLUDED */ diff --git a/database/include/mysql/private/sql_union.h b/database/include/mysql/private/sql_union.h new file mode 100644 index 0000000..7b65bcc --- /dev/null +++ b/database/include/mysql/private/sql_union.h @@ -0,0 +1,31 @@ +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef SQL_UNION_INCLUDED +#define SQL_UNION_INCLUDED + +#include "my_global.h" /* ulong */ + +class THD; +class select_result; +struct LEX; + +typedef class st_select_lex_unit SELECT_LEX_UNIT; + +bool mysql_union(THD *thd, LEX *lex, select_result *result, + SELECT_LEX_UNIT *unit, ulong setup_tables_done_option); + + +#endif /* SQL_UNION_INCLUDED */ diff --git a/database/include/mysql/private/sql_update.h b/database/include/mysql/private/sql_update.h new file mode 100644 index 0000000..d8cd302 --- /dev/null +++ b/database/include/mysql/private/sql_update.h @@ -0,0 +1,45 @@ +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef SQL_UPDATE_INCLUDED +#define SQL_UPDATE_INCLUDED + +#include "sql_class.h" /* enum_duplicates */ + +class Item; +struct TABLE_LIST; +class THD; + +typedef class st_select_lex SELECT_LEX; +typedef class st_select_lex_unit SELECT_LEX_UNIT; + +bool mysql_prepare_update(THD *thd, TABLE_LIST *table_list, + Item **conds, uint order_num, ORDER *order); +bool check_unique_table(THD *thd, TABLE_LIST *table_list); +int mysql_update(THD *thd,TABLE_LIST *tables,List &fields, + List &values,COND *conds, + uint order_num, ORDER *order, ha_rows limit, + enum enum_duplicates handle_duplicates, bool ignore, + ha_rows *found_return, ha_rows *updated_return); +bool mysql_multi_update(THD *thd, TABLE_LIST *table_list, + List *fields, List *values, + COND *conds, ulonglong options, + enum enum_duplicates handle_duplicates, bool ignore, + SELECT_LEX_UNIT *unit, SELECT_LEX *select_lex, + multi_update **result); +bool records_are_comparable(const TABLE *table); +bool compare_record(const TABLE *table); + +#endif /* SQL_UPDATE_INCLUDED */ diff --git a/database/include/mysql/private/sql_view.h b/database/include/mysql/private/sql_view.h new file mode 100644 index 0000000..2bfb798 --- /dev/null +++ b/database/include/mysql/private/sql_view.h @@ -0,0 +1,60 @@ +#ifndef SQL_VIEW_INCLUDED +#define SQL_VIEW_INCLUDED + +/* -*- C++ -*- */ +/* Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA +*/ + +#include "sql_class.h" /* Required by sql_lex.h */ +#include "sql_lex.h" /* enum_view_create_mode, enum_drop_mode */ + +/* Forward declarations */ + +class File_parser; + + +/* Function declarations */ + +bool create_view_precheck(THD *thd, TABLE_LIST *tables, TABLE_LIST *view, + enum_view_create_mode mode); + +bool mysql_create_view(THD *thd, TABLE_LIST *view, + enum_view_create_mode mode); + +bool mysql_make_view(THD *thd, File_parser *parser, TABLE_LIST *table, + uint flags); + +bool mysql_drop_view(THD *thd, TABLE_LIST *view, enum_drop_mode drop_mode); + +bool check_key_in_view(THD *thd, TABLE_LIST * view); + +bool insert_view_fields(THD *thd, List *list, TABLE_LIST *view); + +int view_checksum(THD *thd, TABLE_LIST *view); +int view_check(THD *thd, TABLE_LIST *view, HA_CHECK_OPT *check_opt); +int view_repair(THD *thd, TABLE_LIST *view, HA_CHECK_OPT *check_opt); + +extern TYPELIB updatable_views_with_limit_typelib; + +bool check_duplicate_names(List& item_list, bool gen_unique_view_names); +bool mysql_rename_view(THD *thd, const char *new_db, const char *new_name, + TABLE_LIST *view); + +#define VIEW_ANY_ACL (SELECT_ACL | UPDATE_ACL | INSERT_ACL | DELETE_ACL) + +extern const LEX_STRING view_type; + +#endif /* SQL_VIEW_INCLUDED */ diff --git a/database/include/mysql/private/sql_yacc.h b/database/include/mysql/private/sql_yacc.h new file mode 100644 index 0000000..e1663f5 --- /dev/null +++ b/database/include/mysql/private/sql_yacc.h @@ -0,0 +1,1352 @@ +/* A Bison parser, made by GNU Bison 3.0.2. */ + +/* Bison interface for Yacc-like parsers in C + + Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +#ifndef YY_MYSQL_HOME_BUILDBOT_GIT_MKDIST_SQL_SQL_YACC_H_INCLUDED +# define YY_MYSQL_HOME_BUILDBOT_GIT_MKDIST_SQL_SQL_YACC_H_INCLUDED +/* Debug traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif +#if YYDEBUG +extern int MYSQLdebug; +#endif + +/* Token type. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + enum yytokentype + { + ABORT_SYM = 258, + ACCESSIBLE_SYM = 259, + ACTION = 260, + ADD = 261, + ADDDATE_SYM = 262, + AFTER_SYM = 263, + AGAINST = 264, + AGGREGATE_SYM = 265, + ALGORITHM_SYM = 266, + ALL = 267, + ALTER = 268, + ALWAYS_SYM = 269, + ANALYZE_SYM = 270, + AND_AND_SYM = 271, + AND_SYM = 272, + ANY_SYM = 273, + AS = 274, + ASC = 275, + ASCII_SYM = 276, + ASENSITIVE_SYM = 277, + AT_SYM = 278, + AUTHORS_SYM = 279, + AUTOEXTEND_SIZE_SYM = 280, + AUTO_INC = 281, + AVG_ROW_LENGTH = 282, + AVG_SYM = 283, + BACKUP_SYM = 284, + BEFORE_SYM = 285, + BEGIN_SYM = 286, + BETWEEN_SYM = 287, + BIGINT = 288, + BINARY = 289, + BINLOG_SYM = 290, + BIN_NUM = 291, + BIT_AND = 292, + BIT_OR = 293, + BIT_SYM = 294, + BIT_XOR = 295, + BLOB_SYM = 296, + BLOCK_SYM = 297, + BOOLEAN_SYM = 298, + BOOL_SYM = 299, + BOTH = 300, + BTREE_SYM = 301, + BY = 302, + BYTE_SYM = 303, + CACHE_SYM = 304, + CALL_SYM = 305, + CASCADE = 306, + CASCADED = 307, + CASE_SYM = 308, + CAST_SYM = 309, + CATALOG_NAME_SYM = 310, + CHAIN_SYM = 311, + CHANGE = 312, + CHANGED = 313, + CHARSET = 314, + CHAR_SYM = 315, + CHECKPOINT_SYM = 316, + CHECKSUM_SYM = 317, + CHECK_SYM = 318, + CIPHER_SYM = 319, + CLASS_ORIGIN_SYM = 320, + CLIENT_SYM = 321, + CLIENT_STATS_SYM = 322, + CLOSE_SYM = 323, + COALESCE = 324, + CODE_SYM = 325, + COLLATE_SYM = 326, + COLLATION_SYM = 327, + COLUMNS = 328, + COLUMN_ADD_SYM = 329, + COLUMN_CREATE_SYM = 330, + COLUMN_DELETE_SYM = 331, + COLUMN_EXISTS_SYM = 332, + COLUMN_GET_SYM = 333, + COLUMN_LIST_SYM = 334, + COLUMN_SYM = 335, + COLUMN_NAME_SYM = 336, + COMMENT_SYM = 337, + COMMITTED_SYM = 338, + COMMIT_SYM = 339, + COMPACT_SYM = 340, + COMPLETION_SYM = 341, + COMPRESSED_SYM = 342, + CONCURRENT = 343, + CONDITION_SYM = 344, + CONNECTION_SYM = 345, + CONSISTENT_SYM = 346, + CONSTRAINT = 347, + CONSTRAINT_CATALOG_SYM = 348, + CONSTRAINT_NAME_SYM = 349, + CONSTRAINT_SCHEMA_SYM = 350, + CONTAINS_SYM = 351, + CONTEXT_SYM = 352, + CONTINUE_SYM = 353, + CONTRIBUTORS_SYM = 354, + CONVERT_SYM = 355, + COUNT_SYM = 356, + CPU_SYM = 357, + CREATE = 358, + CROSS = 359, + CUBE_SYM = 360, + CURDATE = 361, + CURRENT_USER = 362, + CURSOR_SYM = 363, + CURSOR_NAME_SYM = 364, + CURTIME = 365, + DATABASE = 366, + DATABASES = 367, + DATAFILE_SYM = 368, + DATA_SYM = 369, + DATETIME = 370, + DATE_ADD_INTERVAL = 371, + DATE_SUB_INTERVAL = 372, + DATE_SYM = 373, + DAY_HOUR_SYM = 374, + DAY_MICROSECOND_SYM = 375, + DAY_MINUTE_SYM = 376, + DAY_SECOND_SYM = 377, + DAY_SYM = 378, + DEALLOCATE_SYM = 379, + DECIMAL_NUM = 380, + DECIMAL_SYM = 381, + DECLARE_SYM = 382, + DEFAULT = 383, + DEFINER_SYM = 384, + DELAYED_SYM = 385, + DELAY_KEY_WRITE_SYM = 386, + DELETE_SYM = 387, + DESC = 388, + DESCRIBE = 389, + DES_KEY_FILE = 390, + DETERMINISTIC_SYM = 391, + DIRECTORY_SYM = 392, + DISABLE_SYM = 393, + DISCARD = 394, + DISK_SYM = 395, + DISTINCT = 396, + DIV_SYM = 397, + DOUBLE_SYM = 398, + DO_SYM = 399, + DROP = 400, + DUAL_SYM = 401, + DUMPFILE = 402, + DUPLICATE_SYM = 403, + DYNAMIC_SYM = 404, + EACH_SYM = 405, + ELSE = 406, + ELSEIF_SYM = 407, + ENABLE_SYM = 408, + ENCLOSED = 409, + END = 410, + ENDS_SYM = 411, + END_OF_INPUT = 412, + ENGINES_SYM = 413, + ENGINE_SYM = 414, + ENUM = 415, + EQUAL_SYM = 416, + ERROR_SYM = 417, + ERRORS = 418, + ESCAPED = 419, + ESCAPE_SYM = 420, + EVENTS_SYM = 421, + EVENT_SYM = 422, + EVERY_SYM = 423, + EXAMINED_SYM = 424, + EXECUTE_SYM = 425, + EXISTS = 426, + EXIT_SYM = 427, + EXPANSION_SYM = 428, + EXTENDED_SYM = 429, + EXTENT_SIZE_SYM = 430, + EXTRACT_SYM = 431, + FALSE_SYM = 432, + FAST_SYM = 433, + FAULTS_SYM = 434, + FETCH_SYM = 435, + FILE_SYM = 436, + FIRST_SYM = 437, + FIXED_SYM = 438, + FLOAT_NUM = 439, + FLOAT_SYM = 440, + FLUSH_SYM = 441, + FORCE_SYM = 442, + FOREIGN = 443, + FOR_SYM = 444, + FOUND_SYM = 445, + FROM = 446, + FULL = 447, + FULLTEXT_SYM = 448, + FUNCTION_SYM = 449, + GE = 450, + GENERAL = 451, + GENERATED_SYM = 452, + GEOMETRYCOLLECTION = 453, + GEOMETRY_SYM = 454, + GET_FORMAT = 455, + GLOBAL_SYM = 456, + GRANT = 457, + GRANTS = 458, + GROUP_SYM = 459, + GROUP_CONCAT_SYM = 460, + HANDLER_SYM = 461, + HARD_SYM = 462, + HASH_SYM = 463, + HAVING = 464, + HELP_SYM = 465, + HEX_NUM = 466, + HEX_STRING = 467, + HIGH_PRIORITY = 468, + HOST_SYM = 469, + HOSTS_SYM = 470, + HOUR_MICROSECOND_SYM = 471, + HOUR_MINUTE_SYM = 472, + HOUR_SECOND_SYM = 473, + HOUR_SYM = 474, + IDENT = 475, + IDENTIFIED_SYM = 476, + IDENT_QUOTED = 477, + IF = 478, + IGNORE_SYM = 479, + IGNORE_SERVER_IDS_SYM = 480, + IMPORT = 481, + INDEXES = 482, + INDEX_SYM = 483, + INDEX_STATS_SYM = 484, + INFILE = 485, + INITIAL_SIZE_SYM = 486, + INNER_SYM = 487, + INOUT_SYM = 488, + INSENSITIVE_SYM = 489, + INSERT = 490, + INSERT_METHOD = 491, + INSTALL_SYM = 492, + INTERVAL_SYM = 493, + INTO = 494, + INT_SYM = 495, + INVOKER_SYM = 496, + IN_SYM = 497, + IO_SYM = 498, + IPC_SYM = 499, + IS = 500, + ISOLATION = 501, + ISSUER_SYM = 502, + ITERATE_SYM = 503, + JOIN_SYM = 504, + KEYS = 505, + KEY_BLOCK_SIZE = 506, + KEY_SYM = 507, + KILL_SYM = 508, + LANGUAGE_SYM = 509, + LAST_SYM = 510, + LAST_VALUE = 511, + LE = 512, + LEADING = 513, + LEAVES = 514, + LEAVE_SYM = 515, + LEFT = 516, + LESS_SYM = 517, + LEVEL_SYM = 518, + LEX_HOSTNAME = 519, + LIKE = 520, + LIMIT = 521, + LINEAR_SYM = 522, + LINES = 523, + LINESTRING = 524, + LIST_SYM = 525, + LOAD = 526, + LOCAL_SYM = 527, + LOCATOR_SYM = 528, + LOCKS_SYM = 529, + LOCK_SYM = 530, + LOGFILE_SYM = 531, + LOGS_SYM = 532, + LONGBLOB = 533, + LONGTEXT = 534, + LONG_NUM = 535, + LONG_SYM = 536, + LOOP_SYM = 537, + LOW_PRIORITY = 538, + MASTER_CONNECT_RETRY_SYM = 539, + MASTER_HOST_SYM = 540, + MASTER_LOG_FILE_SYM = 541, + MASTER_LOG_POS_SYM = 542, + MASTER_PASSWORD_SYM = 543, + MASTER_PORT_SYM = 544, + MASTER_SERVER_ID_SYM = 545, + MASTER_SSL_CAPATH_SYM = 546, + MASTER_SSL_CA_SYM = 547, + MASTER_SSL_CERT_SYM = 548, + MASTER_SSL_CIPHER_SYM = 549, + MASTER_SSL_KEY_SYM = 550, + MASTER_SSL_SYM = 551, + MASTER_SSL_VERIFY_SERVER_CERT_SYM = 552, + MASTER_SYM = 553, + MASTER_USER_SYM = 554, + MASTER_HEARTBEAT_PERIOD_SYM = 555, + MATCH = 556, + MAX_CONNECTIONS_PER_HOUR = 557, + MAX_QUERIES_PER_HOUR = 558, + MAX_ROWS = 559, + MAX_SIZE_SYM = 560, + MAX_SYM = 561, + MAX_UPDATES_PER_HOUR = 562, + MAX_USER_CONNECTIONS_SYM = 563, + MAX_VALUE_SYM = 564, + MEDIUMBLOB = 565, + MEDIUMINT = 566, + MEDIUMTEXT = 567, + MEDIUM_SYM = 568, + MEMORY_SYM = 569, + MERGE_SYM = 570, + MESSAGE_TEXT_SYM = 571, + MICROSECOND_SYM = 572, + MIGRATE_SYM = 573, + MINUTE_MICROSECOND_SYM = 574, + MINUTE_SECOND_SYM = 575, + MINUTE_SYM = 576, + MIN_ROWS = 577, + MIN_SYM = 578, + MODE_SYM = 579, + MODIFIES_SYM = 580, + MODIFY_SYM = 581, + MOD_SYM = 582, + MONTH_SYM = 583, + MULTILINESTRING = 584, + MULTIPOINT = 585, + MULTIPOLYGON = 586, + MUTEX_SYM = 587, + MYSQL_SYM = 588, + MYSQL_ERRNO_SYM = 589, + NAMES_SYM = 590, + NAME_SYM = 591, + NATIONAL_SYM = 592, + NATURAL = 593, + NCHAR_STRING = 594, + NCHAR_SYM = 595, + NDBCLUSTER_SYM = 596, + NE = 597, + NEG = 598, + NEW_SYM = 599, + NEXT_SYM = 600, + NODEGROUP_SYM = 601, + NONE_SYM = 602, + NOT2_SYM = 603, + NOT_SYM = 604, + NOW_SYM = 605, + NO_SYM = 606, + NO_WAIT_SYM = 607, + NO_WRITE_TO_BINLOG = 608, + NULL_SYM = 609, + NUM = 610, + NUMERIC_SYM = 611, + NVARCHAR_SYM = 612, + OFFSET_SYM = 613, + OLD_PASSWORD = 614, + ON = 615, + ONE_SHOT_SYM = 616, + ONE_SYM = 617, + ONLINE_SYM = 618, + OPEN_SYM = 619, + OPTIMIZE = 620, + OPTIONS_SYM = 621, + OPTION = 622, + OPTIONALLY = 623, + OR2_SYM = 624, + ORDER_SYM = 625, + OR_OR_SYM = 626, + OR_SYM = 627, + OUTER = 628, + OUTFILE = 629, + OUT_SYM = 630, + OWNER_SYM = 631, + PACK_KEYS_SYM = 632, + PAGE_SYM = 633, + PAGE_CHECKSUM_SYM = 634, + PARAM_MARKER = 635, + PARSER_SYM = 636, + PARSE_VCOL_EXPR_SYM = 637, + PARTIAL = 638, + PARTITIONING_SYM = 639, + PARTITIONS_SYM = 640, + PARTITION_SYM = 641, + PASSWORD = 642, + PERSISTENT_SYM = 643, + PHASE_SYM = 644, + PLUGINS_SYM = 645, + PLUGIN_SYM = 646, + POINT_SYM = 647, + POLYGON = 648, + PORT_SYM = 649, + POSITION_SYM = 650, + PRECISION = 651, + PREPARE_SYM = 652, + PRESERVE_SYM = 653, + PREV_SYM = 654, + PRIMARY_SYM = 655, + PRIVILEGES = 656, + PROCEDURE_SYM = 657, + PROCESS = 658, + PROCESSLIST_SYM = 659, + PROFILE_SYM = 660, + PROFILES_SYM = 661, + PROXY_SYM = 662, + PURGE = 663, + QUARTER_SYM = 664, + QUERY_SYM = 665, + QUICK = 666, + RANGE_SYM = 667, + READS_SYM = 668, + READ_ONLY_SYM = 669, + READ_SYM = 670, + READ_WRITE_SYM = 671, + REAL = 672, + REBUILD_SYM = 673, + RECOVER_SYM = 674, + REDOFILE_SYM = 675, + REDO_BUFFER_SIZE_SYM = 676, + REDUNDANT_SYM = 677, + REFERENCES = 678, + REGEXP = 679, + RELAY = 680, + RELAYLOG_SYM = 681, + RELAY_LOG_FILE_SYM = 682, + RELAY_LOG_POS_SYM = 683, + RELAY_THREAD = 684, + RELEASE_SYM = 685, + RELOAD = 686, + REMOVE_SYM = 687, + RENAME = 688, + REORGANIZE_SYM = 689, + REPAIR = 690, + REPEATABLE_SYM = 691, + REPEAT_SYM = 692, + REPLACE = 693, + REPLICATION = 694, + REQUIRE_SYM = 695, + RESET_SYM = 696, + RESIGNAL_SYM = 697, + RESOURCES = 698, + RESTORE_SYM = 699, + RESTRICT = 700, + RESUME_SYM = 701, + RETURNS_SYM = 702, + RETURN_SYM = 703, + REVOKE = 704, + RIGHT = 705, + ROLLBACK_SYM = 706, + ROLLUP_SYM = 707, + ROUTINE_SYM = 708, + ROWS_SYM = 709, + ROW_FORMAT_SYM = 710, + ROW_SYM = 711, + RTREE_SYM = 712, + SAVEPOINT_SYM = 713, + SCHEDULE_SYM = 714, + SCHEMA_NAME_SYM = 715, + SECOND_MICROSECOND_SYM = 716, + SECOND_SYM = 717, + SECURITY_SYM = 718, + SELECT_SYM = 719, + SENSITIVE_SYM = 720, + SEPARATOR_SYM = 721, + SERIALIZABLE_SYM = 722, + SERIAL_SYM = 723, + SESSION_SYM = 724, + SERVER_SYM = 725, + SERVER_OPTIONS = 726, + SET = 727, + SET_VAR = 728, + SHARE_SYM = 729, + SHIFT_LEFT = 730, + SHIFT_RIGHT = 731, + SHOW = 732, + SHUTDOWN = 733, + SIGNAL_SYM = 734, + SIGNED_SYM = 735, + SIMPLE_SYM = 736, + SLAVE = 737, + SLOW = 738, + SMALLINT = 739, + SNAPSHOT_SYM = 740, + SOCKET_SYM = 741, + SOFT_SYM = 742, + SONAME_SYM = 743, + SOUNDS_SYM = 744, + SOURCE_SYM = 745, + SPATIAL_SYM = 746, + SPECIFIC_SYM = 747, + SQLEXCEPTION_SYM = 748, + SQLSTATE_SYM = 749, + SQLWARNING_SYM = 750, + SQL_BIG_RESULT = 751, + SQL_BUFFER_RESULT = 752, + SQL_CACHE_SYM = 753, + SQL_CALC_FOUND_ROWS = 754, + SQL_NO_CACHE_SYM = 755, + SQL_SMALL_RESULT = 756, + SQL_SYM = 757, + SQL_THREAD = 758, + SSL_SYM = 759, + STARTING = 760, + STARTS_SYM = 761, + START_SYM = 762, + STATUS_SYM = 763, + STDDEV_SAMP_SYM = 764, + STD_SYM = 765, + STOP_SYM = 766, + STORAGE_SYM = 767, + STRAIGHT_JOIN = 768, + STRING_SYM = 769, + SUBCLASS_ORIGIN_SYM = 770, + SUBDATE_SYM = 771, + SUBJECT_SYM = 772, + SUBPARTITIONS_SYM = 773, + SUBPARTITION_SYM = 774, + SUBSTRING = 775, + SUM_SYM = 776, + SUPER_SYM = 777, + SUSPEND_SYM = 778, + SWAPS_SYM = 779, + SWITCHES_SYM = 780, + SYSDATE = 781, + TABLES = 782, + TABLESPACE = 783, + TABLE_REF_PRIORITY = 784, + TABLE_STATS_SYM = 785, + TABLE_SYM = 786, + TABLE_CHECKSUM_SYM = 787, + TABLE_NAME_SYM = 788, + TEMPORARY = 789, + TEMPTABLE_SYM = 790, + TERMINATED = 791, + TEXT_STRING = 792, + TEXT_SYM = 793, + THAN_SYM = 794, + THEN_SYM = 795, + TIMESTAMP = 796, + TIMESTAMP_ADD = 797, + TIMESTAMP_DIFF = 798, + TIME_SYM = 799, + TINYBLOB = 800, + TINYINT = 801, + TINYTEXT = 802, + TO_SYM = 803, + TRAILING = 804, + TRANSACTION_SYM = 805, + TRANSACTIONAL_SYM = 806, + TRIGGERS_SYM = 807, + TRIGGER_SYM = 808, + TRIM = 809, + TRUE_SYM = 810, + TRUNCATE_SYM = 811, + TYPES_SYM = 812, + TYPE_SYM = 813, + UDF_RETURNS_SYM = 814, + ULONGLONG_NUM = 815, + UNCOMMITTED_SYM = 816, + UNDEFINED_SYM = 817, + UNDERSCORE_CHARSET = 818, + UNDOFILE_SYM = 819, + UNDO_BUFFER_SIZE_SYM = 820, + UNDO_SYM = 821, + UNICODE_SYM = 822, + UNINSTALL_SYM = 823, + UNION_SYM = 824, + UNIQUE_SYM = 825, + UNKNOWN_SYM = 826, + UNLOCK_SYM = 827, + UNSIGNED = 828, + UNTIL_SYM = 829, + UPDATE_SYM = 830, + UPGRADE_SYM = 831, + USAGE = 832, + USER = 833, + USER_STATS_SYM = 834, + USE_FRM = 835, + USE_SYM = 836, + USING = 837, + UTC_DATE_SYM = 838, + UTC_TIMESTAMP_SYM = 839, + UTC_TIME_SYM = 840, + VALUES = 841, + VALUE_SYM = 842, + VARBINARY = 843, + VARCHAR = 844, + VARIABLES = 845, + VARIANCE_SYM = 846, + VARYING = 847, + VAR_SAMP_SYM = 848, + VIA_SYM = 849, + VIEW_SYM = 850, + VIRTUAL_SYM = 851, + WAIT_SYM = 852, + WARNINGS = 853, + WEEK_SYM = 854, + WHEN_SYM = 855, + WHERE = 856, + WHILE_SYM = 857, + WITH = 858, + WITH_CUBE_SYM = 859, + WITH_ROLLUP_SYM = 860, + WORK_SYM = 861, + WRAPPER_SYM = 862, + WRITE_SYM = 863, + X509_SYM = 864, + XA_SYM = 865, + XML_SYM = 866, + XOR = 867, + YEAR_MONTH_SYM = 868, + YEAR_SYM = 869, + ZEROFILL = 870, + IMPOSSIBLE_ACTION = 871, + CONDITIONLESS_JOIN = 872, + ON_SYM = 873 + }; +#endif +/* Tokens. */ +#define ABORT_SYM 258 +#define ACCESSIBLE_SYM 259 +#define ACTION 260 +#define ADD 261 +#define ADDDATE_SYM 262 +#define AFTER_SYM 263 +#define AGAINST 264 +#define AGGREGATE_SYM 265 +#define ALGORITHM_SYM 266 +#define ALL 267 +#define ALTER 268 +#define ALWAYS_SYM 269 +#define ANALYZE_SYM 270 +#define AND_AND_SYM 271 +#define AND_SYM 272 +#define ANY_SYM 273 +#define AS 274 +#define ASC 275 +#define ASCII_SYM 276 +#define ASENSITIVE_SYM 277 +#define AT_SYM 278 +#define AUTHORS_SYM 279 +#define AUTOEXTEND_SIZE_SYM 280 +#define AUTO_INC 281 +#define AVG_ROW_LENGTH 282 +#define AVG_SYM 283 +#define BACKUP_SYM 284 +#define BEFORE_SYM 285 +#define BEGIN_SYM 286 +#define BETWEEN_SYM 287 +#define BIGINT 288 +#define BINARY 289 +#define BINLOG_SYM 290 +#define BIN_NUM 291 +#define BIT_AND 292 +#define BIT_OR 293 +#define BIT_SYM 294 +#define BIT_XOR 295 +#define BLOB_SYM 296 +#define BLOCK_SYM 297 +#define BOOLEAN_SYM 298 +#define BOOL_SYM 299 +#define BOTH 300 +#define BTREE_SYM 301 +#define BY 302 +#define BYTE_SYM 303 +#define CACHE_SYM 304 +#define CALL_SYM 305 +#define CASCADE 306 +#define CASCADED 307 +#define CASE_SYM 308 +#define CAST_SYM 309 +#define CATALOG_NAME_SYM 310 +#define CHAIN_SYM 311 +#define CHANGE 312 +#define CHANGED 313 +#define CHARSET 314 +#define CHAR_SYM 315 +#define CHECKPOINT_SYM 316 +#define CHECKSUM_SYM 317 +#define CHECK_SYM 318 +#define CIPHER_SYM 319 +#define CLASS_ORIGIN_SYM 320 +#define CLIENT_SYM 321 +#define CLIENT_STATS_SYM 322 +#define CLOSE_SYM 323 +#define COALESCE 324 +#define CODE_SYM 325 +#define COLLATE_SYM 326 +#define COLLATION_SYM 327 +#define COLUMNS 328 +#define COLUMN_ADD_SYM 329 +#define COLUMN_CREATE_SYM 330 +#define COLUMN_DELETE_SYM 331 +#define COLUMN_EXISTS_SYM 332 +#define COLUMN_GET_SYM 333 +#define COLUMN_LIST_SYM 334 +#define COLUMN_SYM 335 +#define COLUMN_NAME_SYM 336 +#define COMMENT_SYM 337 +#define COMMITTED_SYM 338 +#define COMMIT_SYM 339 +#define COMPACT_SYM 340 +#define COMPLETION_SYM 341 +#define COMPRESSED_SYM 342 +#define CONCURRENT 343 +#define CONDITION_SYM 344 +#define CONNECTION_SYM 345 +#define CONSISTENT_SYM 346 +#define CONSTRAINT 347 +#define CONSTRAINT_CATALOG_SYM 348 +#define CONSTRAINT_NAME_SYM 349 +#define CONSTRAINT_SCHEMA_SYM 350 +#define CONTAINS_SYM 351 +#define CONTEXT_SYM 352 +#define CONTINUE_SYM 353 +#define CONTRIBUTORS_SYM 354 +#define CONVERT_SYM 355 +#define COUNT_SYM 356 +#define CPU_SYM 357 +#define CREATE 358 +#define CROSS 359 +#define CUBE_SYM 360 +#define CURDATE 361 +#define CURRENT_USER 362 +#define CURSOR_SYM 363 +#define CURSOR_NAME_SYM 364 +#define CURTIME 365 +#define DATABASE 366 +#define DATABASES 367 +#define DATAFILE_SYM 368 +#define DATA_SYM 369 +#define DATETIME 370 +#define DATE_ADD_INTERVAL 371 +#define DATE_SUB_INTERVAL 372 +#define DATE_SYM 373 +#define DAY_HOUR_SYM 374 +#define DAY_MICROSECOND_SYM 375 +#define DAY_MINUTE_SYM 376 +#define DAY_SECOND_SYM 377 +#define DAY_SYM 378 +#define DEALLOCATE_SYM 379 +#define DECIMAL_NUM 380 +#define DECIMAL_SYM 381 +#define DECLARE_SYM 382 +#define DEFAULT 383 +#define DEFINER_SYM 384 +#define DELAYED_SYM 385 +#define DELAY_KEY_WRITE_SYM 386 +#define DELETE_SYM 387 +#define DESC 388 +#define DESCRIBE 389 +#define DES_KEY_FILE 390 +#define DETERMINISTIC_SYM 391 +#define DIRECTORY_SYM 392 +#define DISABLE_SYM 393 +#define DISCARD 394 +#define DISK_SYM 395 +#define DISTINCT 396 +#define DIV_SYM 397 +#define DOUBLE_SYM 398 +#define DO_SYM 399 +#define DROP 400 +#define DUAL_SYM 401 +#define DUMPFILE 402 +#define DUPLICATE_SYM 403 +#define DYNAMIC_SYM 404 +#define EACH_SYM 405 +#define ELSE 406 +#define ELSEIF_SYM 407 +#define ENABLE_SYM 408 +#define ENCLOSED 409 +#define END 410 +#define ENDS_SYM 411 +#define END_OF_INPUT 412 +#define ENGINES_SYM 413 +#define ENGINE_SYM 414 +#define ENUM 415 +#define EQUAL_SYM 416 +#define ERROR_SYM 417 +#define ERRORS 418 +#define ESCAPED 419 +#define ESCAPE_SYM 420 +#define EVENTS_SYM 421 +#define EVENT_SYM 422 +#define EVERY_SYM 423 +#define EXAMINED_SYM 424 +#define EXECUTE_SYM 425 +#define EXISTS 426 +#define EXIT_SYM 427 +#define EXPANSION_SYM 428 +#define EXTENDED_SYM 429 +#define EXTENT_SIZE_SYM 430 +#define EXTRACT_SYM 431 +#define FALSE_SYM 432 +#define FAST_SYM 433 +#define FAULTS_SYM 434 +#define FETCH_SYM 435 +#define FILE_SYM 436 +#define FIRST_SYM 437 +#define FIXED_SYM 438 +#define FLOAT_NUM 439 +#define FLOAT_SYM 440 +#define FLUSH_SYM 441 +#define FORCE_SYM 442 +#define FOREIGN 443 +#define FOR_SYM 444 +#define FOUND_SYM 445 +#define FROM 446 +#define FULL 447 +#define FULLTEXT_SYM 448 +#define FUNCTION_SYM 449 +#define GE 450 +#define GENERAL 451 +#define GENERATED_SYM 452 +#define GEOMETRYCOLLECTION 453 +#define GEOMETRY_SYM 454 +#define GET_FORMAT 455 +#define GLOBAL_SYM 456 +#define GRANT 457 +#define GRANTS 458 +#define GROUP_SYM 459 +#define GROUP_CONCAT_SYM 460 +#define HANDLER_SYM 461 +#define HARD_SYM 462 +#define HASH_SYM 463 +#define HAVING 464 +#define HELP_SYM 465 +#define HEX_NUM 466 +#define HEX_STRING 467 +#define HIGH_PRIORITY 468 +#define HOST_SYM 469 +#define HOSTS_SYM 470 +#define HOUR_MICROSECOND_SYM 471 +#define HOUR_MINUTE_SYM 472 +#define HOUR_SECOND_SYM 473 +#define HOUR_SYM 474 +#define IDENT 475 +#define IDENTIFIED_SYM 476 +#define IDENT_QUOTED 477 +#define IF 478 +#define IGNORE_SYM 479 +#define IGNORE_SERVER_IDS_SYM 480 +#define IMPORT 481 +#define INDEXES 482 +#define INDEX_SYM 483 +#define INDEX_STATS_SYM 484 +#define INFILE 485 +#define INITIAL_SIZE_SYM 486 +#define INNER_SYM 487 +#define INOUT_SYM 488 +#define INSENSITIVE_SYM 489 +#define INSERT 490 +#define INSERT_METHOD 491 +#define INSTALL_SYM 492 +#define INTERVAL_SYM 493 +#define INTO 494 +#define INT_SYM 495 +#define INVOKER_SYM 496 +#define IN_SYM 497 +#define IO_SYM 498 +#define IPC_SYM 499 +#define IS 500 +#define ISOLATION 501 +#define ISSUER_SYM 502 +#define ITERATE_SYM 503 +#define JOIN_SYM 504 +#define KEYS 505 +#define KEY_BLOCK_SIZE 506 +#define KEY_SYM 507 +#define KILL_SYM 508 +#define LANGUAGE_SYM 509 +#define LAST_SYM 510 +#define LAST_VALUE 511 +#define LE 512 +#define LEADING 513 +#define LEAVES 514 +#define LEAVE_SYM 515 +#define LEFT 516 +#define LESS_SYM 517 +#define LEVEL_SYM 518 +#define LEX_HOSTNAME 519 +#define LIKE 520 +#define LIMIT 521 +#define LINEAR_SYM 522 +#define LINES 523 +#define LINESTRING 524 +#define LIST_SYM 525 +#define LOAD 526 +#define LOCAL_SYM 527 +#define LOCATOR_SYM 528 +#define LOCKS_SYM 529 +#define LOCK_SYM 530 +#define LOGFILE_SYM 531 +#define LOGS_SYM 532 +#define LONGBLOB 533 +#define LONGTEXT 534 +#define LONG_NUM 535 +#define LONG_SYM 536 +#define LOOP_SYM 537 +#define LOW_PRIORITY 538 +#define MASTER_CONNECT_RETRY_SYM 539 +#define MASTER_HOST_SYM 540 +#define MASTER_LOG_FILE_SYM 541 +#define MASTER_LOG_POS_SYM 542 +#define MASTER_PASSWORD_SYM 543 +#define MASTER_PORT_SYM 544 +#define MASTER_SERVER_ID_SYM 545 +#define MASTER_SSL_CAPATH_SYM 546 +#define MASTER_SSL_CA_SYM 547 +#define MASTER_SSL_CERT_SYM 548 +#define MASTER_SSL_CIPHER_SYM 549 +#define MASTER_SSL_KEY_SYM 550 +#define MASTER_SSL_SYM 551 +#define MASTER_SSL_VERIFY_SERVER_CERT_SYM 552 +#define MASTER_SYM 553 +#define MASTER_USER_SYM 554 +#define MASTER_HEARTBEAT_PERIOD_SYM 555 +#define MATCH 556 +#define MAX_CONNECTIONS_PER_HOUR 557 +#define MAX_QUERIES_PER_HOUR 558 +#define MAX_ROWS 559 +#define MAX_SIZE_SYM 560 +#define MAX_SYM 561 +#define MAX_UPDATES_PER_HOUR 562 +#define MAX_USER_CONNECTIONS_SYM 563 +#define MAX_VALUE_SYM 564 +#define MEDIUMBLOB 565 +#define MEDIUMINT 566 +#define MEDIUMTEXT 567 +#define MEDIUM_SYM 568 +#define MEMORY_SYM 569 +#define MERGE_SYM 570 +#define MESSAGE_TEXT_SYM 571 +#define MICROSECOND_SYM 572 +#define MIGRATE_SYM 573 +#define MINUTE_MICROSECOND_SYM 574 +#define MINUTE_SECOND_SYM 575 +#define MINUTE_SYM 576 +#define MIN_ROWS 577 +#define MIN_SYM 578 +#define MODE_SYM 579 +#define MODIFIES_SYM 580 +#define MODIFY_SYM 581 +#define MOD_SYM 582 +#define MONTH_SYM 583 +#define MULTILINESTRING 584 +#define MULTIPOINT 585 +#define MULTIPOLYGON 586 +#define MUTEX_SYM 587 +#define MYSQL_SYM 588 +#define MYSQL_ERRNO_SYM 589 +#define NAMES_SYM 590 +#define NAME_SYM 591 +#define NATIONAL_SYM 592 +#define NATURAL 593 +#define NCHAR_STRING 594 +#define NCHAR_SYM 595 +#define NDBCLUSTER_SYM 596 +#define NE 597 +#define NEG 598 +#define NEW_SYM 599 +#define NEXT_SYM 600 +#define NODEGROUP_SYM 601 +#define NONE_SYM 602 +#define NOT2_SYM 603 +#define NOT_SYM 604 +#define NOW_SYM 605 +#define NO_SYM 606 +#define NO_WAIT_SYM 607 +#define NO_WRITE_TO_BINLOG 608 +#define NULL_SYM 609 +#define NUM 610 +#define NUMERIC_SYM 611 +#define NVARCHAR_SYM 612 +#define OFFSET_SYM 613 +#define OLD_PASSWORD 614 +#define ON 615 +#define ONE_SHOT_SYM 616 +#define ONE_SYM 617 +#define ONLINE_SYM 618 +#define OPEN_SYM 619 +#define OPTIMIZE 620 +#define OPTIONS_SYM 621 +#define OPTION 622 +#define OPTIONALLY 623 +#define OR2_SYM 624 +#define ORDER_SYM 625 +#define OR_OR_SYM 626 +#define OR_SYM 627 +#define OUTER 628 +#define OUTFILE 629 +#define OUT_SYM 630 +#define OWNER_SYM 631 +#define PACK_KEYS_SYM 632 +#define PAGE_SYM 633 +#define PAGE_CHECKSUM_SYM 634 +#define PARAM_MARKER 635 +#define PARSER_SYM 636 +#define PARSE_VCOL_EXPR_SYM 637 +#define PARTIAL 638 +#define PARTITIONING_SYM 639 +#define PARTITIONS_SYM 640 +#define PARTITION_SYM 641 +#define PASSWORD 642 +#define PERSISTENT_SYM 643 +#define PHASE_SYM 644 +#define PLUGINS_SYM 645 +#define PLUGIN_SYM 646 +#define POINT_SYM 647 +#define POLYGON 648 +#define PORT_SYM 649 +#define POSITION_SYM 650 +#define PRECISION 651 +#define PREPARE_SYM 652 +#define PRESERVE_SYM 653 +#define PREV_SYM 654 +#define PRIMARY_SYM 655 +#define PRIVILEGES 656 +#define PROCEDURE_SYM 657 +#define PROCESS 658 +#define PROCESSLIST_SYM 659 +#define PROFILE_SYM 660 +#define PROFILES_SYM 661 +#define PROXY_SYM 662 +#define PURGE 663 +#define QUARTER_SYM 664 +#define QUERY_SYM 665 +#define QUICK 666 +#define RANGE_SYM 667 +#define READS_SYM 668 +#define READ_ONLY_SYM 669 +#define READ_SYM 670 +#define READ_WRITE_SYM 671 +#define REAL 672 +#define REBUILD_SYM 673 +#define RECOVER_SYM 674 +#define REDOFILE_SYM 675 +#define REDO_BUFFER_SIZE_SYM 676 +#define REDUNDANT_SYM 677 +#define REFERENCES 678 +#define REGEXP 679 +#define RELAY 680 +#define RELAYLOG_SYM 681 +#define RELAY_LOG_FILE_SYM 682 +#define RELAY_LOG_POS_SYM 683 +#define RELAY_THREAD 684 +#define RELEASE_SYM 685 +#define RELOAD 686 +#define REMOVE_SYM 687 +#define RENAME 688 +#define REORGANIZE_SYM 689 +#define REPAIR 690 +#define REPEATABLE_SYM 691 +#define REPEAT_SYM 692 +#define REPLACE 693 +#define REPLICATION 694 +#define REQUIRE_SYM 695 +#define RESET_SYM 696 +#define RESIGNAL_SYM 697 +#define RESOURCES 698 +#define RESTORE_SYM 699 +#define RESTRICT 700 +#define RESUME_SYM 701 +#define RETURNS_SYM 702 +#define RETURN_SYM 703 +#define REVOKE 704 +#define RIGHT 705 +#define ROLLBACK_SYM 706 +#define ROLLUP_SYM 707 +#define ROUTINE_SYM 708 +#define ROWS_SYM 709 +#define ROW_FORMAT_SYM 710 +#define ROW_SYM 711 +#define RTREE_SYM 712 +#define SAVEPOINT_SYM 713 +#define SCHEDULE_SYM 714 +#define SCHEMA_NAME_SYM 715 +#define SECOND_MICROSECOND_SYM 716 +#define SECOND_SYM 717 +#define SECURITY_SYM 718 +#define SELECT_SYM 719 +#define SENSITIVE_SYM 720 +#define SEPARATOR_SYM 721 +#define SERIALIZABLE_SYM 722 +#define SERIAL_SYM 723 +#define SESSION_SYM 724 +#define SERVER_SYM 725 +#define SERVER_OPTIONS 726 +#define SET 727 +#define SET_VAR 728 +#define SHARE_SYM 729 +#define SHIFT_LEFT 730 +#define SHIFT_RIGHT 731 +#define SHOW 732 +#define SHUTDOWN 733 +#define SIGNAL_SYM 734 +#define SIGNED_SYM 735 +#define SIMPLE_SYM 736 +#define SLAVE 737 +#define SLOW 738 +#define SMALLINT 739 +#define SNAPSHOT_SYM 740 +#define SOCKET_SYM 741 +#define SOFT_SYM 742 +#define SONAME_SYM 743 +#define SOUNDS_SYM 744 +#define SOURCE_SYM 745 +#define SPATIAL_SYM 746 +#define SPECIFIC_SYM 747 +#define SQLEXCEPTION_SYM 748 +#define SQLSTATE_SYM 749 +#define SQLWARNING_SYM 750 +#define SQL_BIG_RESULT 751 +#define SQL_BUFFER_RESULT 752 +#define SQL_CACHE_SYM 753 +#define SQL_CALC_FOUND_ROWS 754 +#define SQL_NO_CACHE_SYM 755 +#define SQL_SMALL_RESULT 756 +#define SQL_SYM 757 +#define SQL_THREAD 758 +#define SSL_SYM 759 +#define STARTING 760 +#define STARTS_SYM 761 +#define START_SYM 762 +#define STATUS_SYM 763 +#define STDDEV_SAMP_SYM 764 +#define STD_SYM 765 +#define STOP_SYM 766 +#define STORAGE_SYM 767 +#define STRAIGHT_JOIN 768 +#define STRING_SYM 769 +#define SUBCLASS_ORIGIN_SYM 770 +#define SUBDATE_SYM 771 +#define SUBJECT_SYM 772 +#define SUBPARTITIONS_SYM 773 +#define SUBPARTITION_SYM 774 +#define SUBSTRING 775 +#define SUM_SYM 776 +#define SUPER_SYM 777 +#define SUSPEND_SYM 778 +#define SWAPS_SYM 779 +#define SWITCHES_SYM 780 +#define SYSDATE 781 +#define TABLES 782 +#define TABLESPACE 783 +#define TABLE_REF_PRIORITY 784 +#define TABLE_STATS_SYM 785 +#define TABLE_SYM 786 +#define TABLE_CHECKSUM_SYM 787 +#define TABLE_NAME_SYM 788 +#define TEMPORARY 789 +#define TEMPTABLE_SYM 790 +#define TERMINATED 791 +#define TEXT_STRING 792 +#define TEXT_SYM 793 +#define THAN_SYM 794 +#define THEN_SYM 795 +#define TIMESTAMP 796 +#define TIMESTAMP_ADD 797 +#define TIMESTAMP_DIFF 798 +#define TIME_SYM 799 +#define TINYBLOB 800 +#define TINYINT 801 +#define TINYTEXT 802 +#define TO_SYM 803 +#define TRAILING 804 +#define TRANSACTION_SYM 805 +#define TRANSACTIONAL_SYM 806 +#define TRIGGERS_SYM 807 +#define TRIGGER_SYM 808 +#define TRIM 809 +#define TRUE_SYM 810 +#define TRUNCATE_SYM 811 +#define TYPES_SYM 812 +#define TYPE_SYM 813 +#define UDF_RETURNS_SYM 814 +#define ULONGLONG_NUM 815 +#define UNCOMMITTED_SYM 816 +#define UNDEFINED_SYM 817 +#define UNDERSCORE_CHARSET 818 +#define UNDOFILE_SYM 819 +#define UNDO_BUFFER_SIZE_SYM 820 +#define UNDO_SYM 821 +#define UNICODE_SYM 822 +#define UNINSTALL_SYM 823 +#define UNION_SYM 824 +#define UNIQUE_SYM 825 +#define UNKNOWN_SYM 826 +#define UNLOCK_SYM 827 +#define UNSIGNED 828 +#define UNTIL_SYM 829 +#define UPDATE_SYM 830 +#define UPGRADE_SYM 831 +#define USAGE 832 +#define USER 833 +#define USER_STATS_SYM 834 +#define USE_FRM 835 +#define USE_SYM 836 +#define USING 837 +#define UTC_DATE_SYM 838 +#define UTC_TIMESTAMP_SYM 839 +#define UTC_TIME_SYM 840 +#define VALUES 841 +#define VALUE_SYM 842 +#define VARBINARY 843 +#define VARCHAR 844 +#define VARIABLES 845 +#define VARIANCE_SYM 846 +#define VARYING 847 +#define VAR_SAMP_SYM 848 +#define VIA_SYM 849 +#define VIEW_SYM 850 +#define VIRTUAL_SYM 851 +#define WAIT_SYM 852 +#define WARNINGS 853 +#define WEEK_SYM 854 +#define WHEN_SYM 855 +#define WHERE 856 +#define WHILE_SYM 857 +#define WITH 858 +#define WITH_CUBE_SYM 859 +#define WITH_ROLLUP_SYM 860 +#define WORK_SYM 861 +#define WRAPPER_SYM 862 +#define WRITE_SYM 863 +#define X509_SYM 864 +#define XA_SYM 865 +#define XML_SYM 866 +#define XOR 867 +#define YEAR_MONTH_SYM 868 +#define YEAR_SYM 869 +#define ZEROFILL 870 +#define IMPOSSIBLE_ACTION 871 +#define CONDITIONLESS_JOIN 872 +#define ON_SYM 873 + +/* Value type. */ +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE YYSTYPE; +union YYSTYPE +{ +#line 732 "/home/buildbot/git/sql/sql_yacc.yy" /* yacc.c:1909 */ + + int num; + ulong ulong_num; + ulonglong ulonglong_number; + longlong longlong_number; + LEX_STRING lex_str; + LEX_STRING *lex_str_ptr; + LEX_SYMBOL symbol; + LEX_TYPE lex_type; + Table_ident *table; + char *simple_string; + Item *item; + Item_num *item_num; + List *item_list; + List *string_list; + String *string; + Key_part_spec *key_part; + TABLE_LIST *table_list; + udf_func *udf; + LEX_USER *lex_user; + struct sys_var_with_base variable; + enum enum_var_type var_type; + Key::Keytype key_type; + enum ha_key_alg key_alg; + handlerton *db_type; + enum row_type row_type; + enum ha_rkey_function ha_rkey_mode; + enum enum_tx_isolation tx_isolation; + enum Cast_target cast_type; + enum Item_udftype udf_type; + enum ha_choice choice; + CHARSET_INFO *charset; + thr_lock_type lock_type; + interval_type interval, interval_time_st; + timestamp_type date_time_type; + st_select_lex *select_lex; + chooser_compare_func_creator boolfunc2creator; + struct sp_cond_type *spcondtype; + struct { int vars, conds, hndlrs, curs; } spblock; + sp_name *spname; + LEX *lex; + sp_head *sphead; + struct p_elem_val *p_elem_value; + enum index_hint_type index_hint; + enum enum_filetype filetype; + enum Foreign_key::fk_option m_fk_option; + enum enum_yes_no_unknown m_yes_no_unk; + Diag_condition_item_name diag_condition_item_name; + DYNCALL_CREATE_DEF *dyncol_def; + List *dyncol_def_list; + bool is_not_empty; + +#line 1343 "/home/buildbot/git/mkdist/sql/sql_yacc.h" /* yacc.c:1909 */ +}; +# define YYSTYPE_IS_TRIVIAL 1 +# define YYSTYPE_IS_DECLARED 1 +#endif + + + +int MYSQLparse (THD *thd); + +#endif /* !YY_MYSQL_HOME_BUILDBOT_GIT_MKDIST_SQL_SQL_YACC_H_INCLUDED */ diff --git a/database/include/mysql/private/strfunc.h b/database/include/mysql/private/strfunc.h new file mode 100644 index 0000000..0472914 --- /dev/null +++ b/database/include/mysql/private/strfunc.h @@ -0,0 +1,49 @@ +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef STRFUNC_INCLUDED +#define STRFUNC_INCLUDED + +#include "my_global.h" /* ulonglong, uint */ + +typedef struct st_typelib TYPELIB; + +ulonglong find_set(TYPELIB *lib, const char *x, uint length, CHARSET_INFO *cs, + char **err_pos, uint *err_len, bool *set_warning); +ulonglong find_set_from_flags(TYPELIB *lib, uint default_name, + ulonglong cur_set, ulonglong default_set, + const char *str, uint length, CHARSET_INFO *cs, + char **err_pos, uint *err_len, bool *set_warning); +uint find_type(const TYPELIB *lib, const char *find, uint length, + bool part_match); +uint find_type2(const TYPELIB *lib, const char *find, uint length, + CHARSET_INFO *cs); +void unhex_type2(TYPELIB *lib); +uint check_word(TYPELIB *lib, const char *val, const char *end, + const char **end_of_word); +int find_string_in_array(LEX_STRING * const haystack, LEX_STRING * const needle, + CHARSET_INFO * const cs); +char *flagset_to_string(THD *thd, LEX_STRING *result, ulonglong set, + const char *lib[]); +char *set_to_string(THD *thd, LEX_STRING *result, ulonglong set, + const char *lib[]); + +/* + These functions were protected by INNODB_COMPATIBILITY_HOOKS + */ +uint strconvert(CHARSET_INFO *from_cs, const char *from, + CHARSET_INFO *to_cs, char *to, uint to_length, uint *errors); + +#endif /* STRFUNC_INCLUDED */ diff --git a/database/include/mysql/private/structs.h b/database/include/mysql/private/structs.h new file mode 100644 index 0000000..817ecea --- /dev/null +++ b/database/include/mysql/private/structs.h @@ -0,0 +1,492 @@ +#ifndef STRUCTS_INCLUDED +#define STRUCTS_INCLUDED + +/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + + + +/* The old structures from unireg */ + +#include "sql_plugin.h" /* plugin_ref */ +#include "sql_const.h" /* MAX_REFLENGTH */ +#include "my_time.h" /* enum_mysql_timestamp_type */ +#include "thr_lock.h" /* thr_lock_type */ +#include "my_base.h" /* ha_rows, ha_key_alg */ +#include /* USERNAME_LENGTH */ + +struct TABLE; +class Field; + +class THD; + +typedef struct st_date_time_format { + uchar positions[8]; + char time_separator; /* Separator between hour and minute */ + uint flag; /* For future */ + LEX_STRING format; +} DATE_TIME_FORMAT; + + +typedef struct st_keyfile_info { /* used with ha_info() */ + uchar ref[MAX_REFLENGTH]; /* Pointer to current row */ + uchar dupp_ref[MAX_REFLENGTH]; /* Pointer to dupp row */ + uint ref_length; /* Length of ref (1-8) */ + uint block_size; /* index block size */ + File filenr; /* (uniq) filenr for table */ + ha_rows records; /* Records i datafilen */ + ha_rows deleted; /* Deleted records */ + ulonglong data_file_length; /* Length off data file */ + ulonglong max_data_file_length; /* Length off data file */ + ulonglong index_file_length; + ulonglong max_index_file_length; + ulonglong delete_length; /* Free bytes */ + ulonglong auto_increment_value; + int errkey,sortkey; /* Last errorkey and sorted by */ + time_t create_time; /* When table was created */ + time_t check_time; + time_t update_time; + ulong mean_rec_length; /* physical reclength */ +} KEYFILE_INFO; + + +typedef struct st_key_part_info { /* Info about a key part */ + Field *field; + uint offset; /* offset in record (from 0) */ + uint null_offset; /* Offset to null_bit in record */ + /* Length of key part in bytes, excluding NULL flag and length bytes */ + uint16 length; + /* + Number of bytes required to store the keypart value. This may be + different from the "length" field as it also counts + - possible NULL-flag byte (see HA_KEY_NULL_LENGTH) + - possible HA_KEY_BLOB_LENGTH bytes needed to store actual value length. + */ + uint16 store_length; + uint16 key_type; + /* Fieldnr begins counting from 1 */ + uint16 fieldnr; /* Fieldnum in UNIREG */ + uint16 key_part_flag; /* 0 or HA_REVERSE_SORT */ + uint8 type; + uint8 null_bit; /* Position to null_bit */ +} KEY_PART_INFO ; + +class engine_option_value; +struct ha_index_option_struct; + +typedef struct st_key { + uint key_length; /* Tot length of key */ + ulong flags; /* dupp key and pack flags */ + uint key_parts; /* How many key_parts */ + uint usable_key_parts; /* Should normally be = key_parts */ + uint ext_key_parts; /* Number of key parts in extended key */ + ulong ext_key_flags; /* Flags for extended key */ + key_part_map ext_key_part_map; /* Bitmap of pk key parts in extension */ + uint block_size; + uint name_length; + enum ha_key_alg algorithm; + /* + Note that parser is used when the table is opened for use, and + parser_name is used when the table is being created. + */ + union + { + plugin_ref parser; /* Fulltext [pre]parser */ + LEX_STRING *parser_name; /* Fulltext [pre]parser name */ + }; + KEY_PART_INFO *key_part; + char *name; /* Name of key */ + /* Unique name for cache; db + \0 + table_name + \0 + key_name + \0 */ + uchar *cache_name; + /* + Array of AVG(#records with the same field value) for 1st ... Nth key part. + 0 means 'not known'. + For temporary heap tables this member is NULL. + */ + ulong *rec_per_key; + union { + int bdb_return_if_eq; + } handler; + TABLE *table; + LEX_STRING comment; + /** reference to the list of options or NULL */ + engine_option_value *option_list; + ha_index_option_struct *option_struct; /* structure with parsed options */ +} KEY; + + +struct st_join_table; + +typedef struct st_reginfo { /* Extra info about reg */ + struct st_join_table *join_tab; /* Used by SELECT() */ + enum thr_lock_type lock_type; /* How database is used */ + bool not_exists_optimize; + /* + TRUE <=> range optimizer found that there is no rows satisfying + table conditions. + */ + bool impossible_range; +} REGINFO; + + +/* + Originally MySQL used MYSQL_TIME structure inside server only, but since + 4.1 it's exported to user in the new client API. Define aliases for + new names to keep existing code simple. +*/ + +typedef enum enum_mysql_timestamp_type timestamp_type; + + +typedef struct { + ulong year,month,day,hour; + ulonglong minute,second,second_part; + bool neg; +} INTERVAL; + + +typedef struct st_known_date_time_format { + const char *format_name; + const char *date_format; + const char *datetime_format; + const char *time_format; +} KNOWN_DATE_TIME_FORMAT; + +extern const char *show_comp_option_name[]; + +typedef int *(*update_var)(THD *, struct st_mysql_show_var *); + +typedef struct st_lex_user { + LEX_STRING user, host, password, plugin, auth; +} LEX_USER; + +/* + This structure specifies the maximum amount of resources which + can be consumed by each account. Zero value of a member means + there is no limit. +*/ +typedef struct user_resources { + /* Maximum number of queries/statements per hour. */ + uint questions; + /* + Maximum number of updating statements per hour (which statements are + updating is defined by sql_command_flags array). + */ + uint updates; + /* Maximum number of connections established per hour. */ + uint conn_per_hour; + /* + Maximum number of concurrent connections. If -1 then no new + connections allowed + */ + int user_conn; + /* + Values of this enum and specified_limits member are used by the + parser to store which user limits were specified in GRANT statement. + */ + enum {QUERIES_PER_HOUR= 1, UPDATES_PER_HOUR= 2, CONNECTIONS_PER_HOUR= 4, + USER_CONNECTIONS= 8}; + uint specified_limits; +} USER_RESOURCES; + + +/* + This structure is used for counting resources consumed and for checking + them against specified user limits. +*/ +typedef struct user_conn { + /* + Pointer to user+host key (pair separated by '\0') defining the entity + for which resources are counted (By default it is user account thus + priv_user/priv_host pair is used. If --old-style-user-limits option + is enabled, resources are counted for each user+host separately). + */ + char *user; + /* Pointer to host part of the key. */ + char *host; + /** + The moment of time when per hour counters were reset last time + (i.e. start of "hour" for conn_per_hour, updates, questions counters). + */ + ulonglong reset_utime; + /* Total length of the key. */ + uint len; + /* Current amount of concurrent connections for this account. */ + int connections; + /* + Current number of connections per hour, number of updating statements + per hour and total number of statements per hour for this account. + */ + uint conn_per_hour, updates, questions; + /* Maximum amount of resources which account is allowed to consume. */ + USER_RESOURCES user_resources; +} USER_CONN; + +typedef struct st_user_stats +{ + char user[max(USERNAME_LENGTH, LIST_PROCESS_HOST_LEN) + 1]; + // Account name the user is mapped to when this is a user from mapped_user. + // Otherwise, the same value as user. + char priv_user[max(USERNAME_LENGTH, LIST_PROCESS_HOST_LEN) + 1]; + uint user_name_length; + uint total_connections; + uint concurrent_connections; + time_t connected_time; // in seconds + double busy_time; // in seconds + double cpu_time; // in seconds + ulonglong bytes_received; + ulonglong bytes_sent; + ulonglong binlog_bytes_written; + ha_rows rows_read, rows_sent; + ha_rows rows_updated, rows_deleted, rows_inserted; + ulonglong select_commands, update_commands, other_commands; + ulonglong commit_trans, rollback_trans; + ulonglong denied_connections, lost_connections; + ulonglong access_denied_errors; + ulonglong empty_queries; +} USER_STATS; + +/* Lookup function for hash tables with USER_STATS entries */ +extern "C" uchar *get_key_user_stats(USER_STATS *user_stats, size_t *length, + my_bool not_used __attribute__((unused))); + +/* Free all memory for a hash table with USER_STATS entries */ +extern void free_user_stats(USER_STATS* user_stats); + +/* Intialize an instance of USER_STATS */ +extern void +init_user_stats(USER_STATS *user_stats, + const char *user, + size_t user_length, + const char *priv_user, + uint total_connections, + uint concurrent_connections, + time_t connected_time, + double busy_time, + double cpu_time, + ulonglong bytes_received, + ulonglong bytes_sent, + ulonglong binlog_bytes_written, + ha_rows rows_sent, + ha_rows rows_read, + ha_rows rows_inserted, + ha_rows rows_deleted, + ha_rows rows_updated, + ulonglong select_commands, + ulonglong update_commands, + ulonglong other_commands, + ulonglong commit_trans, + ulonglong rollback_trans, + ulonglong denied_connections, + ulonglong lost_connections, + ulonglong access_denied_errors, + ulonglong empty_queries); + +/* Increment values of an instance of USER_STATS */ +extern void +add_user_stats(USER_STATS *user_stats, + uint total_connections, + uint concurrent_connections, + time_t connected_time, + double busy_time, + double cpu_time, + ulonglong bytes_received, + ulonglong bytes_sent, + ulonglong binlog_bytes_written, + ha_rows rows_sent, + ha_rows rows_read, + ha_rows rows_inserted, + ha_rows rows_deleted, + ha_rows rows_updated, + ulonglong select_commands, + ulonglong update_commands, + ulonglong other_commands, + ulonglong commit_trans, + ulonglong rollback_trans, + ulonglong denied_connections, + ulonglong lost_connections, + ulonglong access_denied_errors, + ulonglong empty_queries); + +typedef struct st_table_stats +{ + char table[NAME_LEN * 2 + 2]; // [db] + '\0' + [table] + '\0' + uint table_name_length; + ulonglong rows_read, rows_changed; + ulonglong rows_changed_x_indexes; + /* Stores enum db_type, but forward declarations cannot be done */ + int engine_type; +} TABLE_STATS; + +typedef struct st_index_stats +{ + // [db] + '\0' + [table] + '\0' + [index] + '\0' + char index[NAME_LEN * 3 + 3]; + uint index_name_length; /* Length of 'index' */ + ulonglong rows_read; +} INDEX_STATS; + + + /* Bits in form->update */ +#define REG_MAKE_DUPP 1 /* Make a copy of record when read */ +#define REG_NEW_RECORD 2 /* Write a new record if not found */ +#define REG_UPDATE 4 /* Uppdate record */ +#define REG_DELETE 8 /* Delete found record */ +#define REG_PROG 16 /* User is updating database */ +#define REG_CLEAR_AFTER_WRITE 32 +#define REG_MAY_BE_UPDATED 64 +#define REG_AUTO_UPDATE 64 /* Used in D-forms for scroll-tables */ +#define REG_OVERWRITE 128 +#define REG_SKIP_DUP 256 + + /* Bits in form->status */ +#define STATUS_NO_RECORD (1+2) /* Record isn't usably */ +#define STATUS_GARBAGE 1 +#define STATUS_NOT_FOUND 2 /* No record in database when needed */ +#define STATUS_NO_PARENT 4 /* Parent record wasn't found */ +#define STATUS_NOT_READ 8 /* Record isn't read */ +#define STATUS_UPDATED 16 /* Record is updated by formula */ +#define STATUS_NULL_ROW 32 /* table->null_row is set */ +#define STATUS_DELETED 64 + +/* + Such interval is "discrete": it is the set of + { auto_inc_interval_min + k * increment, + 0 <= k <= (auto_inc_interval_values-1) } + Where "increment" is maintained separately by the user of this class (and is + currently only thd->variables.auto_increment_increment). + It mustn't derive from Sql_alloc, because SET INSERT_ID needs to + allocate memory which must stay allocated for use by the next statement. +*/ +class Discrete_interval { +private: + ulonglong interval_min; + ulonglong interval_values; + ulonglong interval_max; // excluded bound. Redundant. +public: + Discrete_interval *next; // used when linked into Discrete_intervals_list + void replace(ulonglong start, ulonglong val, ulonglong incr) + { + interval_min= start; + interval_values= val; + interval_max= (val == ULONGLONG_MAX) ? val : start + val * incr; + } + Discrete_interval(ulonglong start, ulonglong val, ulonglong incr) : + next(NULL) { replace(start, val, incr); }; + Discrete_interval() : next(NULL) { replace(0, 0, 0); }; + ulonglong minimum() const { return interval_min; }; + ulonglong values() const { return interval_values; }; + ulonglong maximum() const { return interval_max; }; + /* + If appending [3,5] to [1,2], we merge both in [1,5] (they should have the + same increment for that, user of the class has to ensure that). That is + just a space optimization. Returns 0 if merge succeeded. + */ + bool merge_if_contiguous(ulonglong start, ulonglong val, ulonglong incr) + { + if (interval_max == start) + { + if (val == ULONGLONG_MAX) + { + interval_values= interval_max= val; + } + else + { + interval_values+= val; + interval_max= start + val * incr; + } + return 0; + } + return 1; + }; +}; + +/* List of Discrete_interval objects */ +class Discrete_intervals_list { +private: + Discrete_interval *head; + Discrete_interval *tail; + /* + When many intervals are provided at the beginning of the execution of a + statement (in a replication slave or SET INSERT_ID), "current" points to + the interval being consumed by the thread now (so "current" goes from + "head" to "tail" then to NULL). + */ + Discrete_interval *current; + uint elements; // number of elements + void set_members(Discrete_interval *h, Discrete_interval *t, + Discrete_interval *c, uint el) + { + head= h; + tail= t; + current= c; + elements= el; + } + void operator=(Discrete_intervals_list &); /* prevent use of these */ + Discrete_intervals_list(const Discrete_intervals_list &); + +public: + Discrete_intervals_list() : head(NULL), current(NULL), elements(0) {}; + void empty_no_free() + { + set_members(NULL, NULL, NULL, 0); + } + void empty() + { + for (Discrete_interval *i= head; i;) + { + Discrete_interval *next= i->next; + delete i; + i= next; + } + empty_no_free(); + } + void copy_shallow(const Discrete_intervals_list * dli) + { + head= dli->get_head(); + tail= dli->get_tail(); + current= dli->get_current(); + elements= dli->nb_elements(); + } + void swap (Discrete_intervals_list * dli) + { + Discrete_interval *h, *t, *c; + uint el; + h= dli->get_head(); + t= dli->get_tail(); + c= dli->get_current(); + el= dli->nb_elements(); + dli->copy_shallow(this); + set_members(h, t, c, el); + } + const Discrete_interval* get_next() + { + Discrete_interval *tmp= current; + if (current != NULL) + current= current->next; + return tmp; + } + ~Discrete_intervals_list() { empty(); }; + bool append(ulonglong start, ulonglong val, ulonglong incr); + bool append(Discrete_interval *interval); + ulonglong minimum() const { return (head ? head->minimum() : 0); }; + ulonglong maximum() const { return (head ? tail->maximum() : 0); }; + uint nb_elements() const { return elements; } + Discrete_interval* get_head() const { return head; }; + Discrete_interval* get_tail() const { return tail; }; + Discrete_interval* get_current() const { return current; }; +}; + +#endif /* STRUCTS_INCLUDED */ diff --git a/database/include/mysql/private/sys_vars.h b/database/include/mysql/private/sys_vars.h new file mode 100644 index 0000000..c784033 --- /dev/null +++ b/database/include/mysql/private/sys_vars.h @@ -0,0 +1,1883 @@ +/* Copyright (c) 2002, 2011, Oracle and/or its affiliates. + Copyright (c) 2010, 2013, Monty Program Ab. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/** + @file + "private" interface to sys_var - server configuration variables. + + This header is included only by the file that contains declarations + of sys_var variables (sys_vars.cc). +*/ + +#include "sys_vars_shared.h" +#include +#include +#include +#include "keycaches.h" +#include "strfunc.h" +#include "tztime.h" // my_tz_find, my_tz_SYSTEM, struct Time_zone + +/* + a set of mostly trivial (as in f(X)=X) defines below to make system variable + declarations more readable +*/ +#define VALID_RANGE(X,Y) X,Y +#define DEFAULT(X) X +#define BLOCK_SIZE(X) X +#define GLOBAL_VAR(X) sys_var::GLOBAL, (((char*)&(X))-(char*)&global_system_variables), sizeof(X) +#define SESSION_VAR(X) sys_var::SESSION, offsetof(SV, X), sizeof(((SV *)0)->X) +#define SESSION_ONLY(X) sys_var::ONLY_SESSION, offsetof(SV, X), sizeof(((SV *)0)->X) +#define NO_CMD_LINE CMD_LINE(NO_ARG, -1) +/* + the define below means that there's no *second* mutex guard, + LOCK_global_system_variables always guards all system variables +*/ +#define NO_MUTEX_GUARD ((PolyLock*)0) +#define IN_BINLOG sys_var::SESSION_VARIABLE_IN_BINLOG +#define NOT_IN_BINLOG sys_var::VARIABLE_NOT_IN_BINLOG +#define ON_READ(X) X +#define ON_CHECK(X) X +#define ON_UPDATE(X) X +#define READ_ONLY sys_var::READONLY+ +// this means that Sys_var_charptr initial value was malloc()ed +#define PREALLOCATED sys_var::ALLOCATED+ +#define PARSED_EARLY sys_var::PARSE_EARLY+ +/* + Sys_var_bit meaning is reversed, like in + @@foreign_key_checks <-> OPTION_NO_FOREIGN_KEY_CHECKS +*/ +#define REVERSE(X) ~(X) +#define DEPRECATED(X) X + +#define session_var(THD, TYPE) (*(TYPE*)session_var_ptr(THD)) +#define global_var(TYPE) (*(TYPE*)global_var_ptr()) + +#if SIZEOF_OFF_T > 4 && defined(BIG_TABLES) +#define GET_HA_ROWS GET_ULL +#else +#define GET_HA_ROWS GET_ULONG +#endif + +/* + special assert for sysvars. Tells the name of the variable, + and fails even in non-debug builds. + + It is supposed to be used *only* in Sys_var* constructors, + and has name_arg hard-coded to prevent incorrect usage. +*/ +#define SYSVAR_ASSERT(X) \ + while(!(X)) \ + { \ + fprintf(stderr, "Sysvar '%s' failed '%s'\n", name_arg, #X); \ + DBUG_ABORT(); \ + exit(255); \ + } + +enum charset_enum {IN_SYSTEM_CHARSET, IN_FS_CHARSET}; + +static const char *bool_values[3]= {"OFF", "ON", 0}; +TYPELIB bool_typelib={ array_elements(bool_values)-1, "", bool_values, 0 }; + +/** + A small wrapper class to pass getopt arguments as a pair + to the Sys_var_* constructors. It improves type safety and helps + to catch errors in the argument order. +*/ +struct CMD_LINE +{ + int id; + enum get_opt_arg_type arg_type; + CMD_LINE(enum get_opt_arg_type getopt_arg_type, int getopt_id=0) + : id(getopt_id), arg_type(getopt_arg_type) {} +}; + +/** + Sys_var_integer template is used to generate Sys_var_* classes + for variables that represent the value as an integer number. + They are Sys_var_uint, Sys_var_ulong, Sys_var_harows, Sys_var_ulonglong, + Sys_var_int. + + An integer variable has a minimal and maximal values, and a "block_size" + (any valid value of the variable must be divisible by the block_size). + + Class specific constructor arguments: min, max, block_size + Backing store: int, uint, ulong, ha_rows, ulonglong, depending on the class +*/ +template +class Sys_var_integer: public sys_var +{ +public: + Sys_var_integer(const char *name_arg, + const char *comment, int flag_args, ptrdiff_t off, size_t size, + CMD_LINE getopt, + T min_val, T max_val, T def_val, uint block_size, PolyLock *lock=0, + enum binlog_status_enum binlog_status_arg=VARIABLE_NOT_IN_BINLOG, + on_check_function on_check_func=0, + on_update_function on_update_func=0, + const char *substitute=0) + : sys_var(&all_sys_vars, name_arg, comment, flag_args, off, getopt.id, + getopt.arg_type, SHOWT, def_val, lock, binlog_status_arg, + on_check_func, on_update_func, substitute) + { + option.var_type= ARGT; + option.min_value= min_val; + option.max_value= max_val; + option.block_size= block_size; + option.u_max_value= (uchar**)max_var_ptr(); + if (max_var_ptr()) + *max_var_ptr()= max_val; + + global_var(T)= def_val; + SYSVAR_ASSERT(size == sizeof(T)); + SYSVAR_ASSERT(min_val < max_val); + SYSVAR_ASSERT(min_val <= def_val); + SYSVAR_ASSERT(max_val >= def_val); + SYSVAR_ASSERT(block_size > 0); + SYSVAR_ASSERT(def_val % block_size == 0); + } + bool do_check(THD *thd, set_var *var) + { + my_bool fixed= FALSE, unused; + longlong v= var->value->val_int(); + + if ((ARGT == GET_HA_ROWS) || (ARGT == GET_UINT) || + (ARGT == GET_ULONG) || (ARGT == GET_ULL)) + { + ulonglong uv; + + /* + if the value is signed and negative, + and a variable is unsigned, it is set to zero + */ + if ((fixed= (!var->value->unsigned_flag && v < 0))) + uv= 0; + else + uv= v; + + var->save_result.ulonglong_value= + getopt_ull_limit_value(uv, &option, &unused); + + if (max_var_ptr() && (T)var->save_result.ulonglong_value > *max_var_ptr()) + var->save_result.ulonglong_value= *max_var_ptr(); + + fixed= fixed || var->save_result.ulonglong_value != uv; + } + else + { + /* + if the value is unsigned and has the highest bit set + and a variable is signed, it is set to max signed value + */ + if ((fixed= (var->value->unsigned_flag && v < 0))) + v= LONGLONG_MAX; + + var->save_result.longlong_value= + getopt_ll_limit_value(v, &option, &unused); + + if (max_var_ptr() && (T)var->save_result.longlong_value > *max_var_ptr()) + var->save_result.longlong_value= *max_var_ptr(); + + fixed= fixed || var->save_result.longlong_value != v; + } + return throw_bounds_warning(thd, name.str, fixed, + var->value->unsigned_flag, v); + } + bool session_update(THD *thd, set_var *var) + { + session_var(thd, T)= static_cast(var->save_result.ulonglong_value); + return false; + } + bool global_update(THD *thd, set_var *var) + { + global_var(T)= static_cast(var->save_result.ulonglong_value); + return false; + } + bool check_update_type(Item_result type) + { return type != INT_RESULT; } + void session_save_default(THD *thd, set_var *var) + { var->save_result.ulonglong_value= (ulonglong)*(T*)global_value_ptr(thd, 0); } + void global_save_default(THD *thd, set_var *var) + { var->save_result.ulonglong_value= option.def_value; } + private: + T *max_var_ptr() + { + return scope() == SESSION ? (T*)(((uchar*)&max_system_variables) + offset) + : 0; + } +}; + +typedef Sys_var_integer Sys_var_int; +typedef Sys_var_integer Sys_var_uint; +typedef Sys_var_integer Sys_var_ulong; +typedef Sys_var_integer Sys_var_harows; +typedef Sys_var_integer Sys_var_ulonglong; + +/** + Helper class for variables that take values from a TYPELIB +*/ +class Sys_var_typelib: public sys_var +{ +protected: + TYPELIB typelib; +public: + Sys_var_typelib(const char *name_arg, + const char *comment, int flag_args, ptrdiff_t off, + CMD_LINE getopt, + SHOW_TYPE show_val_type_arg, const char *values[], + ulonglong def_val, PolyLock *lock, + enum binlog_status_enum binlog_status_arg, + on_check_function on_check_func, on_update_function on_update_func, + const char *substitute) + : sys_var(&all_sys_vars, name_arg, comment, flag_args, off, getopt.id, + getopt.arg_type, show_val_type_arg, def_val, lock, + binlog_status_arg, on_check_func, + on_update_func, substitute) + { + for (typelib.count= 0; values[typelib.count]; typelib.count++) /*no-op */; + typelib.name=""; + typelib.type_names= values; + typelib.type_lengths= 0; // only used by Fields_enum and Field_set + option.typelib= &typelib; + } + bool do_check(THD *thd, set_var *var) // works for enums and my_bool + { + char buff[STRING_BUFFER_USUAL_SIZE]; + String str(buff, sizeof(buff), system_charset_info), *res; + + if (var->value->result_type() == STRING_RESULT) + { + if (!(res=var->value->val_str(&str))) + return true; + else + if (!(var->save_result.ulonglong_value= + find_type(&typelib, res->ptr(), res->length(), false))) + return true; + else + var->save_result.ulonglong_value--; + } + else + { + longlong tmp=var->value->val_int(); + if (tmp < 0 || tmp >= typelib.count) + return true; + else + var->save_result.ulonglong_value= tmp; + } + + return false; + } + bool check_update_type(Item_result type) + { return type != INT_RESULT && type != STRING_RESULT; } +}; + +/** + The class for ENUM variables - variables that take one value from a fixed + list of values. + + Class specific constructor arguments: + char* values[] - 0-terminated list of strings of valid values + + Backing store: uint + + @note + Do *not* use "enum FOO" variables as a backing store, there is no + guarantee that sizeof(enum FOO) == sizeof(uint), there is no guarantee + even that sizeof(enum FOO) == sizeof(enum BAR) +*/ +class Sys_var_enum: public Sys_var_typelib +{ +public: + Sys_var_enum(const char *name_arg, + const char *comment, int flag_args, ptrdiff_t off, size_t size, + CMD_LINE getopt, + const char *values[], uint def_val, PolyLock *lock=0, + enum binlog_status_enum binlog_status_arg=VARIABLE_NOT_IN_BINLOG, + on_check_function on_check_func=0, + on_update_function on_update_func=0, + const char *substitute=0) + : Sys_var_typelib(name_arg, comment, flag_args, off, getopt, + SHOW_CHAR, values, def_val, lock, + binlog_status_arg, on_check_func, on_update_func, + substitute) + { + option.var_type= GET_ENUM; + global_var(ulong)= def_val; + SYSVAR_ASSERT(def_val < typelib.count); + SYSVAR_ASSERT(size == sizeof(ulong)); + } + bool session_update(THD *thd, set_var *var) + { + session_var(thd, ulong)= static_cast(var->save_result.ulonglong_value); + return false; + } + bool global_update(THD *thd, set_var *var) + { + global_var(ulong)= static_cast(var->save_result.ulonglong_value); + return false; + } + void session_save_default(THD *thd, set_var *var) + { var->save_result.ulonglong_value= global_var(ulong); } + void global_save_default(THD *thd, set_var *var) + { var->save_result.ulonglong_value= option.def_value; } + uchar *session_value_ptr(THD *thd, LEX_STRING *base) + { return (uchar*)typelib.type_names[session_var(thd, ulong)]; } + uchar *global_value_ptr(THD *thd, LEX_STRING *base) + { return (uchar*)typelib.type_names[global_var(ulong)]; } +}; + +/** + The class for boolean variables - a variant of ENUM variables + with the fixed list of values of { OFF , ON } + + Backing store: my_bool +*/ +class Sys_var_mybool: public Sys_var_typelib +{ +public: + Sys_var_mybool(const char *name_arg, + const char *comment, int flag_args, ptrdiff_t off, size_t size, + CMD_LINE getopt, + my_bool def_val, PolyLock *lock=0, + enum binlog_status_enum binlog_status_arg=VARIABLE_NOT_IN_BINLOG, + on_check_function on_check_func=0, + on_update_function on_update_func=0, + const char *substitute=0) + : Sys_var_typelib(name_arg, comment, flag_args, off, getopt, + SHOW_MY_BOOL, bool_values, def_val, lock, + binlog_status_arg, on_check_func, on_update_func, + substitute) + { + option.var_type= GET_BOOL; + global_var(my_bool)= def_val; + SYSVAR_ASSERT(def_val < 2); + SYSVAR_ASSERT(getopt.arg_type == OPT_ARG || getopt.id == -1); + SYSVAR_ASSERT(size == sizeof(my_bool)); + } + bool session_update(THD *thd, set_var *var) + { + session_var(thd, my_bool)= var->save_result.ulonglong_value != 0; + return false; + } + bool global_update(THD *thd, set_var *var) + { + global_var(my_bool)= var->save_result.ulonglong_value != 0; + return false; + } + void session_save_default(THD *thd, set_var *var) + { var->save_result.ulonglong_value= (ulonglong)*(my_bool *)global_value_ptr(thd, 0); } + void global_save_default(THD *thd, set_var *var) + { var->save_result.ulonglong_value= option.def_value; } +}; + +/** + The class for string variables. The string can be in character_set_filesystem + or in character_set_system. The string can be allocated with my_malloc() + or not. The state of the initial value is specified in the constructor, + after that it's managed automatically. The value of NULL is supported. + + Class specific constructor arguments: + enum charset_enum is_os_charset_arg + + Backing store: char* + + @note + This class supports only GLOBAL variables, because THD on destruction + does not destroy individual members of SV, there's no way to free + allocated string variables for every thread. +*/ +class Sys_var_charptr: public sys_var +{ +public: + Sys_var_charptr(const char *name_arg, + const char *comment, int flag_args, ptrdiff_t off, size_t size, + CMD_LINE getopt, + enum charset_enum is_os_charset_arg, + const char *def_val, PolyLock *lock=0, + enum binlog_status_enum binlog_status_arg=VARIABLE_NOT_IN_BINLOG, + on_check_function on_check_func=0, + on_update_function on_update_func=0, + const char *substitute=0) + : sys_var(&all_sys_vars, name_arg, comment, flag_args, off, getopt.id, + getopt.arg_type, SHOW_CHAR_PTR, (intptr)def_val, + lock, binlog_status_arg, on_check_func, on_update_func, + substitute) + { + is_os_charset= is_os_charset_arg == IN_FS_CHARSET; + /* + use GET_STR_ALLOC - if ALLOCATED it must be *always* allocated, + otherwise (GET_STR) you'll never know whether to free it or not. + (think of an exit because of an error right after my_getopt) + */ + option.var_type= (flags & ALLOCATED) ? GET_STR_ALLOC : GET_STR; + global_var(const char*)= def_val; + SYSVAR_ASSERT(scope() == GLOBAL); + SYSVAR_ASSERT(size == sizeof(char *)); + } + void cleanup() + { + if (flags & ALLOCATED) + { + my_free(global_var(char*)); + global_var(char *)= NULL; + } + flags&= ~ALLOCATED; + } + static bool do_string_check(THD *thd, set_var *var, CHARSET_INFO *charset) + { + char buff[STRING_BUFFER_USUAL_SIZE], buff2[STRING_BUFFER_USUAL_SIZE]; + String str(buff, sizeof(buff), charset); + String str2(buff2, sizeof(buff2), charset), *res; + + if (!(res=var->value->val_str(&str))) + var->save_result.string_value.str= 0; + else + { + uint32 unused; + if (String::needs_conversion(res->length(), res->charset(), + charset, &unused)) + { + uint errors; + str2.copy(res->ptr(), res->length(), res->charset(), charset, + &errors); + res=&str2; + + } + var->save_result.string_value.str= thd->strmake(res->ptr(), res->length()); + var->save_result.string_value.length= res->length(); + } + + return false; + } + bool do_check(THD *thd, set_var *var) + { return do_string_check(thd, var, charset(thd)); } + bool session_update(THD *thd, set_var *var) + { + DBUG_ASSERT(FALSE); + return true; + } + bool global_update(THD *thd, set_var *var) + { + char *new_val, *ptr= var->save_result.string_value.str; + size_t len=var->save_result.string_value.length; + if (ptr) + { + new_val= (char*)my_memdup(ptr, len+1, MYF(MY_WME)); + if (!new_val) return true; + new_val[len]=0; + } + else + new_val= 0; + if (flags & ALLOCATED) + my_free(global_var(char*)); + flags|= ALLOCATED; + global_var(char*)= new_val; + return false; + } + void session_save_default(THD *thd, set_var *var) + { DBUG_ASSERT(FALSE); } + void global_save_default(THD *thd, set_var *var) + { + char *ptr= (char*)(intptr)option.def_value; + var->save_result.string_value.str= ptr; + var->save_result.string_value.length= ptr ? strlen(ptr) : 0; + } + bool check_update_type(Item_result type) + { return type != STRING_RESULT; } +}; + + +class Sys_var_proxy_user: public sys_var +{ +public: + Sys_var_proxy_user(const char *name_arg, + const char *comment, enum charset_enum is_os_charset_arg) + : sys_var(&all_sys_vars, name_arg, comment, + sys_var::READONLY+sys_var::ONLY_SESSION, 0, -1, + NO_ARG, SHOW_CHAR, 0, NULL, VARIABLE_NOT_IN_BINLOG, + NULL, NULL, NULL) + { + is_os_charset= is_os_charset_arg == IN_FS_CHARSET; + option.var_type= GET_STR; + } + bool do_check(THD *thd, set_var *var) + { + DBUG_ASSERT(FALSE); + return true; + } + bool session_update(THD *thd, set_var *var) + { + DBUG_ASSERT(FALSE); + return true; + } + bool global_update(THD *thd, set_var *var) + { + DBUG_ASSERT(FALSE); + return false; + } + void session_save_default(THD *thd, set_var *var) + { DBUG_ASSERT(FALSE); } + void global_save_default(THD *thd, set_var *var) + { DBUG_ASSERT(FALSE); } + bool check_update_type(Item_result type) + { return true; } +protected: + virtual uchar *session_value_ptr(THD *thd, LEX_STRING *base) + { + return thd->security_ctx->proxy_user[0] ? + (uchar *) &(thd->security_ctx->proxy_user[0]) : NULL; + } +}; + +class Sys_var_external_user : public Sys_var_proxy_user +{ +public: + Sys_var_external_user(const char *name_arg, const char *comment_arg, + enum charset_enum is_os_charset_arg) + : Sys_var_proxy_user (name_arg, comment_arg, is_os_charset_arg) + {} + +protected: + virtual uchar *session_value_ptr(THD *thd, LEX_STRING *base) + { + return (uchar*)thd->security_ctx->external_user; + } +}; + +class Sys_var_rpl_filter: public sys_var +{ +private: + int opt_id; + +public: + Sys_var_rpl_filter(const char *name, int getopt_id, const char *comment) + : sys_var(&all_sys_vars, name, comment, sys_var::GLOBAL, 0, -1, + NO_ARG, SHOW_CHAR, 0, NULL, VARIABLE_NOT_IN_BINLOG, + NULL, NULL, NULL), opt_id(getopt_id) + { + option.var_type= GET_STR; + } + + bool check_update_type(Item_result type) + { return type != STRING_RESULT; } + + bool do_check(THD *thd, set_var *var); + + void session_save_default(THD *thd, set_var *var) + { DBUG_ASSERT(FALSE); } + + void global_save_default(THD *thd, set_var *var) + { DBUG_ASSERT(FALSE); } + + bool session_update(THD *thd, set_var *var) + { + DBUG_ASSERT(FALSE); + return true; + } + + bool global_update(THD *thd, set_var *var); + +protected: + uchar *global_value_ptr(THD *thd, LEX_STRING *base); + bool set_filter_value(const char *value); + void lock(void); + void unlock(void); +}; + +/** + The class for string variables. Useful for strings that aren't necessarily + \0-terminated. Otherwise the same as Sys_var_charptr. + + Class specific constructor arguments: + enum charset_enum is_os_charset_arg + + Backing store: LEX_STRING + + @note + Behaves exactly as Sys_var_charptr, only the backing store is different. +*/ +class Sys_var_lexstring: public Sys_var_charptr +{ +public: + Sys_var_lexstring(const char *name_arg, + const char *comment, int flag_args, ptrdiff_t off, size_t size, + CMD_LINE getopt, + enum charset_enum is_os_charset_arg, + const char *def_val, PolyLock *lock=0, + enum binlog_status_enum binlog_status_arg=VARIABLE_NOT_IN_BINLOG, + on_check_function on_check_func=0, + on_update_function on_update_func=0, + const char *substitute=0) + : Sys_var_charptr(name_arg, comment, flag_args, off, sizeof(char*), + getopt, is_os_charset_arg, def_val, lock, binlog_status_arg, + on_check_func, on_update_func, substitute) + { + global_var(LEX_STRING).length= strlen(def_val); + SYSVAR_ASSERT(size == sizeof(LEX_STRING)); + *const_cast(&show_val_type)= SHOW_LEX_STRING; + } + bool global_update(THD *thd, set_var *var) + { + if (Sys_var_charptr::global_update(thd, var)) + return true; + global_var(LEX_STRING).length= var->save_result.string_value.length; + return false; + } +}; + +#ifndef DBUG_OFF +/** + @@session.dbug and @@global.dbug variables. + + @@dbug variable differs from other variables in one aspect: + if its value is not assigned in the session, it "points" to the global + value, and so when the global value is changed, the change + immediately takes effect in the session. + + This semantics is intentional, to be able to debug one session from + another. +*/ +class Sys_var_dbug: public sys_var +{ +public: + Sys_var_dbug(const char *name_arg, + const char *comment, int flag_args, + CMD_LINE getopt, + const char *def_val, PolyLock *lock=0, + enum binlog_status_enum binlog_status_arg=VARIABLE_NOT_IN_BINLOG, + on_check_function on_check_func=0, + on_update_function on_update_func=0, + const char *substitute=0) + : sys_var(&all_sys_vars, name_arg, comment, flag_args, 0, getopt.id, + getopt.arg_type, SHOW_CHAR, (intptr)def_val, + lock, binlog_status_arg, on_check_func, on_update_func, + substitute) + { option.var_type= GET_NO_ARG; } + bool do_check(THD *thd, set_var *var) + { + char buff[STRING_BUFFER_USUAL_SIZE]; + String str(buff, sizeof(buff), system_charset_info), *res; + + if (!(res=var->value->val_str(&str))) + var->save_result.string_value.str= const_cast(""); + else + var->save_result.string_value.str= thd->strmake(res->ptr(), res->length()); + return false; + } + bool session_update(THD *thd, set_var *var) + { + const char *val= var->save_result.string_value.str; + if (!var->value) + DBUG_POP(); + else + DBUG_SET(val); + return false; + } + bool global_update(THD *thd, set_var *var) + { + const char *val= var->save_result.string_value.str; + DBUG_SET_INITIAL(val); + return false; + } + void session_save_default(THD *thd, set_var *var) + { } + void global_save_default(THD *thd, set_var *var) + { + char *ptr= (char*)(intptr)option.def_value; + var->save_result.string_value.str= ptr; + } + uchar *session_value_ptr(THD *thd, LEX_STRING *base) + { + char buf[256]; + DBUG_EXPLAIN(buf, sizeof(buf)); + return (uchar*) thd->strdup(buf); + } + uchar *global_value_ptr(THD *thd, LEX_STRING *base) + { + char buf[256]; + DBUG_EXPLAIN_INITIAL(buf, sizeof(buf)); + return (uchar*) thd->strdup(buf); + } + bool check_update_type(Item_result type) + { return type != STRING_RESULT; } +}; +#endif + +#define KEYCACHE_VAR(X) GLOBAL_VAR(dflt_key_cache_var.X) +#define keycache_var_ptr(KC, OFF) (((uchar*)(KC))+(OFF)) +#define keycache_var(KC, OFF) (*(ulonglong*)keycache_var_ptr(KC, OFF)) +typedef bool (*keycache_update_function)(THD *, KEY_CACHE *, ptrdiff_t, ulonglong); + +/** + The class for keycache_* variables. Supports structured names, + keycache_name.variable_name. + + Class specific constructor arguments: + everything derived from Sys_var_ulonglong + + Backing store: ulonglong + + @note these variables can be only GLOBAL +*/ +class Sys_var_keycache: public Sys_var_ulonglong +{ + keycache_update_function keycache_update; +public: + Sys_var_keycache(const char *name_arg, + const char *comment, int flag_args, ptrdiff_t off, size_t size, + CMD_LINE getopt, + ulonglong min_val, ulonglong max_val, ulonglong def_val, + uint block_size, PolyLock *lock, + enum binlog_status_enum binlog_status_arg, + on_check_function on_check_func, + keycache_update_function on_update_func, + const char *substitute=0) + : Sys_var_ulonglong(name_arg, comment, flag_args, off, size, + getopt, min_val, max_val, def_val, + block_size, lock, binlog_status_arg, on_check_func, 0, + substitute), + keycache_update(on_update_func) + { + option.var_type|= GET_ASK_ADDR; + option.value= (uchar**)1; // crash me, please + // fix an offset from global_system_variables to be an offset in KEY_CACHE + offset= global_var_ptr() - (uchar*)dflt_key_cache; + SYSVAR_ASSERT(scope() == GLOBAL); + } + bool global_update(THD *thd, set_var *var) + { + ulonglong new_value= var->save_result.ulonglong_value; + LEX_STRING *base_name= &var->base; + KEY_CACHE *key_cache; + + /* If no basename, assume it's for the key cache named 'default' */ + if (!base_name->length) + base_name= &default_key_cache_base; + + key_cache= get_key_cache(base_name); + + if (!key_cache) + { // Key cache didn't exists */ + if (!new_value) // Tried to delete cache + return false; // Ok, nothing to do + if (!(key_cache= create_key_cache(base_name->str, base_name->length))) + return true; + } + + /** + Abort if some other thread is changing the key cache + @todo This should be changed so that we wait until the previous + assignment is done and then do the new assign + */ + if (key_cache->in_init) + return true; + + return keycache_update(thd, key_cache, offset, new_value); + } + uchar *global_value_ptr(THD *thd, LEX_STRING *base) + { + KEY_CACHE *key_cache= get_key_cache(base); + if (!key_cache) + key_cache= &zero_key_cache; + return keycache_var_ptr(key_cache, offset); + } +}; + +static bool update_buffer_size(THD *thd, KEY_CACHE *key_cache, + ptrdiff_t offset, ulonglong new_value) +{ + bool error= false; + DBUG_ASSERT(offset == offsetof(KEY_CACHE, param_buff_size)); + + if (new_value == 0) + { + if (key_cache == dflt_key_cache) + { + my_error(ER_WARN_CANT_DROP_DEFAULT_KEYCACHE, MYF(0)); + return true; + } + + if (key_cache->key_cache_inited) // If initied + { + /* + Move tables using this key cache to the default key cache + and clear the old key cache. + */ + key_cache->in_init= 1; + mysql_mutex_unlock(&LOCK_global_system_variables); + key_cache->param_buff_size= 0; + ha_resize_key_cache(key_cache); + ha_change_key_cache(key_cache, dflt_key_cache); + /* + We don't delete the key cache as some running threads my still be in + the key cache code with a pointer to the deleted (empty) key cache + */ + mysql_mutex_lock(&LOCK_global_system_variables); + key_cache->in_init= 0; + } + return error; + } + + key_cache->param_buff_size= new_value; + + /* If key cache didn't exist initialize it, else resize it */ + key_cache->in_init= 1; + mysql_mutex_unlock(&LOCK_global_system_variables); + + if (!key_cache->key_cache_inited) + error= ha_init_key_cache(0, key_cache, 0); + else + error= ha_resize_key_cache(key_cache); + + mysql_mutex_lock(&LOCK_global_system_variables); + key_cache->in_init= 0; + + return error; +} + +static bool update_keycache(THD *thd, KEY_CACHE *key_cache, + ptrdiff_t offset, ulonglong new_value, + int (*func)(KEY_CACHE *)) +{ + bool error= false; + DBUG_ASSERT(offset != offsetof(KEY_CACHE, param_buff_size)); + + keycache_var(key_cache, offset)= new_value; + + key_cache->in_init= 1; + mysql_mutex_unlock(&LOCK_global_system_variables); + error= func(key_cache); + mysql_mutex_lock(&LOCK_global_system_variables); + key_cache->in_init= 0; + + return error; +} + +static bool resize_keycache(THD *thd, KEY_CACHE *key_cache, + ptrdiff_t offset, ulonglong new_value) +{ + return update_keycache(thd, key_cache, offset, new_value, + ha_resize_key_cache); +} + +static bool change_keycache_param(THD *thd, KEY_CACHE *key_cache, + ptrdiff_t offset, ulonglong new_value) +{ + return update_keycache(thd, key_cache, offset, new_value, + ha_change_key_cache_param); +} + +static bool repartition_keycache(THD *thd, KEY_CACHE *key_cache, + ptrdiff_t offset, ulonglong new_value) +{ + return update_keycache(thd, key_cache, offset, new_value, + ha_repartition_key_cache); +} + + +/** + The class for floating point variables + + Class specific constructor arguments: min, max + + Backing store: double +*/ +class Sys_var_double: public sys_var +{ +public: + Sys_var_double(const char *name_arg, + const char *comment, int flag_args, ptrdiff_t off, size_t size, + CMD_LINE getopt, + double min_val, double max_val, double def_val, PolyLock *lock=0, + enum binlog_status_enum binlog_status_arg=VARIABLE_NOT_IN_BINLOG, + on_check_function on_check_func=0, + on_update_function on_update_func=0, + const char *substitute=0) + : sys_var(&all_sys_vars, name_arg, comment, flag_args, off, getopt.id, + getopt.arg_type, SHOW_DOUBLE, + (longlong) getopt_double2ulonglong(def_val), + lock, binlog_status_arg, on_check_func, on_update_func, + substitute) + { + option.var_type= GET_DOUBLE; + option.min_value= (longlong) getopt_double2ulonglong(min_val); + option.max_value= (longlong) getopt_double2ulonglong(max_val); + global_var(double)= (double)option.def_value; + SYSVAR_ASSERT(min_val < max_val); + SYSVAR_ASSERT(min_val <= def_val); + SYSVAR_ASSERT(max_val >= def_val); + SYSVAR_ASSERT(size == sizeof(double)); + } + bool do_check(THD *thd, set_var *var) + { + my_bool fixed; + double v= var->value->val_real(); + var->save_result.double_value= getopt_double_limit_value(v, &option, &fixed); + + return throw_bounds_warning(thd, name.str, fixed, v); + } + bool session_update(THD *thd, set_var *var) + { + session_var(thd, double)= var->save_result.double_value; + return false; + } + bool global_update(THD *thd, set_var *var) + { + global_var(double)= var->save_result.double_value; + return false; + } + bool check_update_type(Item_result type) + { + return type != INT_RESULT && type != REAL_RESULT && type != DECIMAL_RESULT; + } + void session_save_default(THD *thd, set_var *var) + { var->save_result.double_value= global_var(double); } + void global_save_default(THD *thd, set_var *var) + { var->save_result.double_value= getopt_ulonglong2double(option.def_value); } +}; + +/** + The class for the @max_user_connections. + It's derived from Sys_var_uint, but non-standard session value + requires a new class. + + Class specific constructor arguments: + everything derived from Sys_var_uint + + Backing store: uint +*/ +class Sys_var_max_user_conn: public Sys_var_int +{ +public: + Sys_var_max_user_conn(const char *name_arg, + const char *comment, int flag_args, ptrdiff_t off, size_t size, + CMD_LINE getopt, + int min_val, int max_val, int def_val, + uint block_size, PolyLock *lock=0, + enum binlog_status_enum binlog_status_arg=VARIABLE_NOT_IN_BINLOG, + on_check_function on_check_func=0, + on_update_function on_update_func=0, + const char *substitute=0) + : Sys_var_int(name_arg, comment, SESSION, off, size, getopt, + min_val, max_val, def_val, block_size, + lock, binlog_status_arg, on_check_func, on_update_func, + substitute) + { } + uchar *session_value_ptr(THD *thd, LEX_STRING *base) + { + if (thd->user_connect && thd->user_connect->user_resources.user_conn) + return (uchar*) &(thd->user_connect->user_resources.user_conn); + return global_value_ptr(thd, base); + } +}; + +// overflow-safe (1 << X)-1 +#define MAX_SET(X) ((((1UL << ((X)-1))-1) << 1) | 1) + +/** + The class for flagset variables - a variant of SET that allows in-place + editing (turning on/off individual bits). String representations looks like + a "flag=val,flag=val,...". Example: @@optimizer_switch + + Class specific constructor arguments: + char* values[] - 0-terminated list of strings of valid values + + Backing store: ulonglong + + @note + the last value in the values[] array should + *always* be the string "default". +*/ +class Sys_var_flagset: public Sys_var_typelib +{ +public: + Sys_var_flagset(const char *name_arg, + const char *comment, int flag_args, ptrdiff_t off, size_t size, + CMD_LINE getopt, + const char *values[], ulonglong def_val, PolyLock *lock=0, + enum binlog_status_enum binlog_status_arg=VARIABLE_NOT_IN_BINLOG, + on_check_function on_check_func=0, + on_update_function on_update_func=0, + const char *substitute=0) + : Sys_var_typelib(name_arg, comment, flag_args, off, getopt, + SHOW_CHAR, values, def_val, lock, + binlog_status_arg, on_check_func, on_update_func, + substitute) + { + option.var_type= GET_FLAGSET; + global_var(ulonglong)= def_val; + SYSVAR_ASSERT(typelib.count > 1); + SYSVAR_ASSERT(typelib.count <= 65); + SYSVAR_ASSERT(def_val < MAX_SET(typelib.count)); + SYSVAR_ASSERT(strcmp(values[typelib.count-1], "default") == 0); + SYSVAR_ASSERT(size == sizeof(ulonglong)); + } + bool do_check(THD *thd, set_var *var) + { + char buff[STRING_BUFFER_USUAL_SIZE]; + String str(buff, sizeof(buff), system_charset_info), *res; + ulonglong default_value, current_value; + if (var->type == OPT_GLOBAL) + { + default_value= option.def_value; + current_value= global_var(ulonglong); + } + else + { + default_value= global_var(ulonglong); + current_value= session_var(thd, ulonglong); + } + + if (var->value->result_type() == STRING_RESULT) + { + if (!(res=var->value->val_str(&str))) + return true; + else + { + char *error; + uint error_len; + + var->save_result.ulonglong_value= + find_set_from_flags(&typelib, + typelib.count, + current_value, + default_value, + res->ptr(), res->length(), + &error, &error_len); + if (error) + { + ErrConvString err(error, error_len, res->charset()); + my_error(ER_WRONG_VALUE_FOR_VAR, MYF(0), name.str, err.ptr()); + return true; + } + } + } + else + { + longlong tmp=var->value->val_int(); + if ((tmp < 0 && ! var->value->unsigned_flag) + || (ulonglong)tmp > MAX_SET(typelib.count)) + return true; + else + var->save_result.ulonglong_value= tmp; + } + + return false; + } + bool session_update(THD *thd, set_var *var) + { + session_var(thd, ulonglong)= var->save_result.ulonglong_value; + return false; + } + bool global_update(THD *thd, set_var *var) + { + global_var(ulonglong)= var->save_result.ulonglong_value; + return false; + } + void session_save_default(THD *thd, set_var *var) + { var->save_result.ulonglong_value= global_var(ulonglong); } + void global_save_default(THD *thd, set_var *var) + { var->save_result.ulonglong_value= option.def_value; } + uchar *session_value_ptr(THD *thd, LEX_STRING *base) + { + return (uchar*)flagset_to_string(thd, 0, session_var(thd, ulonglong), + typelib.type_names); + } + uchar *global_value_ptr(THD *thd, LEX_STRING *base) + { + return (uchar*)flagset_to_string(thd, 0, global_var(ulonglong), + typelib.type_names); + } +}; + +/** + The class for SET variables - variables taking zero or more values + from the given list. Example: @@sql_mode + + Class specific constructor arguments: + char* values[] - 0-terminated list of strings of valid values + + Backing store: ulonglong +*/ +class Sys_var_set: public Sys_var_typelib +{ +public: + Sys_var_set(const char *name_arg, + const char *comment, int flag_args, ptrdiff_t off, size_t size, + CMD_LINE getopt, + const char *values[], ulonglong def_val, PolyLock *lock=0, + enum binlog_status_enum binlog_status_arg=VARIABLE_NOT_IN_BINLOG, + on_check_function on_check_func=0, + on_update_function on_update_func=0, + const char *substitute=0) + : Sys_var_typelib(name_arg, comment, flag_args, off, getopt, + SHOW_CHAR, values, def_val, lock, + binlog_status_arg, on_check_func, on_update_func, + substitute) + { + option.var_type= GET_SET; + global_var(ulonglong)= def_val; + SYSVAR_ASSERT(typelib.count > 0); + SYSVAR_ASSERT(typelib.count <= 64); + SYSVAR_ASSERT(def_val <= MAX_SET(typelib.count)); + SYSVAR_ASSERT(size == sizeof(ulonglong)); + } + bool do_check(THD *thd, set_var *var) + { + char buff[STRING_BUFFER_USUAL_SIZE]; + String str(buff, sizeof(buff), system_charset_info), *res; + + if (var->value->result_type() == STRING_RESULT) + { + if (!(res=var->value->val_str_ascii(&str))) + return true; + else + { + char *error; + uint error_len; + bool not_used; + + var->save_result.ulonglong_value= + find_set(&typelib, res->ptr(), res->length(), NULL, + &error, &error_len, ¬_used); + /* + note, we only issue an error if error_len > 0. + That is even while empty (zero-length) values are considered + errors by find_set(), these errors are ignored here + */ + if (error_len) + { + ErrConvString err(error, error_len, res->charset()); + my_error(ER_WRONG_VALUE_FOR_VAR, MYF(0), name.str, err.ptr()); + return true; + } + } + } + else + { + longlong tmp=var->value->val_int(); + if ((tmp < 0 && ! var->value->unsigned_flag) + || (ulonglong)tmp > MAX_SET(typelib.count)) + return true; + else + var->save_result.ulonglong_value= tmp; + } + + return false; + } + bool session_update(THD *thd, set_var *var) + { + session_var(thd, ulonglong)= var->save_result.ulonglong_value; + return false; + } + bool global_update(THD *thd, set_var *var) + { + global_var(ulonglong)= var->save_result.ulonglong_value; + return false; + } + void session_save_default(THD *thd, set_var *var) + { var->save_result.ulonglong_value= global_var(ulonglong); } + void global_save_default(THD *thd, set_var *var) + { var->save_result.ulonglong_value= option.def_value; } + uchar *session_value_ptr(THD *thd, LEX_STRING *base) + { + return (uchar*)set_to_string(thd, 0, session_var(thd, ulonglong), + typelib.type_names); + } + uchar *global_value_ptr(THD *thd, LEX_STRING *base) + { + return (uchar*)set_to_string(thd, 0, global_var(ulonglong), + typelib.type_names); + } +}; + +/** + The class for variables which value is a plugin. + Example: @@default_storage_engine + + Class specific constructor arguments: + int plugin_type_arg (for example MYSQL_STORAGE_ENGINE_PLUGIN) + + Backing store: plugin_ref + + @note + these variables don't support command-line equivalents, any such + command-line options should be added manually to my_long_options in mysqld.cc +*/ +class Sys_var_plugin: public sys_var +{ + int plugin_type; +public: + Sys_var_plugin(const char *name_arg, + const char *comment, int flag_args, ptrdiff_t off, size_t size, + CMD_LINE getopt, + int plugin_type_arg, char **def_val, PolyLock *lock=0, + enum binlog_status_enum binlog_status_arg=VARIABLE_NOT_IN_BINLOG, + on_check_function on_check_func=0, + on_update_function on_update_func=0, + const char *substitute=0) + : sys_var(&all_sys_vars, name_arg, comment, flag_args, off, getopt.id, + getopt.arg_type, SHOW_CHAR, (intptr)def_val, + lock, binlog_status_arg, on_check_func, on_update_func, + substitute), + plugin_type(plugin_type_arg) + { + option.var_type= GET_STR; + SYSVAR_ASSERT(size == sizeof(plugin_ref)); + SYSVAR_ASSERT(getopt.id == -1); // force NO_CMD_LINE + } + bool do_check(THD *thd, set_var *var) + { + char buff[STRING_BUFFER_USUAL_SIZE]; + String str(buff,sizeof(buff), system_charset_info), *res; + if (!(res=var->value->val_str(&str))) + var->save_result.plugin= NULL; + else + { + const LEX_STRING pname= { const_cast(res->ptr()), res->length() }; + plugin_ref plugin; + + // special code for storage engines (e.g. to handle historical aliases) + if (plugin_type == MYSQL_STORAGE_ENGINE_PLUGIN) + plugin= ha_resolve_by_name(thd, &pname); + else + plugin= my_plugin_lock_by_name(thd, &pname, plugin_type); + if (!plugin) + { + // historically different error code + if (plugin_type == MYSQL_STORAGE_ENGINE_PLUGIN) + { + ErrConvString err(res); + my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), err.ptr()); + } + return true; + } + var->save_result.plugin= plugin; + } + return false; + } + void do_update(plugin_ref *valptr, plugin_ref newval) + { + plugin_ref oldval= *valptr; + if (oldval != newval) + { + *valptr= my_plugin_lock(NULL, newval); + plugin_unlock(NULL, oldval); + } + } + bool session_update(THD *thd, set_var *var) + { + do_update((plugin_ref*)session_var_ptr(thd), + var->save_result.plugin); + return false; + } + bool global_update(THD *thd, set_var *var) + { + do_update((plugin_ref*)global_var_ptr(), + var->save_result.plugin); + return false; + } + void session_save_default(THD *thd, set_var *var) + { + plugin_ref plugin= global_var(plugin_ref); + var->save_result.plugin= my_plugin_lock(thd, plugin); + } + void global_save_default(THD *thd, set_var *var) + { + LEX_STRING pname; + char **default_value= reinterpret_cast(option.def_value); + pname.str= *default_value; + pname.length= strlen(pname.str); + + plugin_ref plugin; + if (plugin_type == MYSQL_STORAGE_ENGINE_PLUGIN) + plugin= ha_resolve_by_name(thd, &pname); + else + plugin= my_plugin_lock_by_name(thd, &pname, plugin_type); + DBUG_ASSERT(plugin); + + var->save_result.plugin= my_plugin_lock(thd, plugin); + } + bool check_update_type(Item_result type) + { return type != STRING_RESULT; } + uchar *session_value_ptr(THD *thd, LEX_STRING *base) + { + plugin_ref plugin= session_var(thd, plugin_ref); + return (uchar*)(plugin ? thd->strmake(plugin_name(plugin)->str, + plugin_name(plugin)->length) : 0); + } + uchar *global_value_ptr(THD *thd, LEX_STRING *base) + { + plugin_ref plugin= global_var(plugin_ref); + return (uchar*)(plugin ? thd->strmake(plugin_name(plugin)->str, + plugin_name(plugin)->length) : 0); + } +}; + +#if defined(ENABLED_DEBUG_SYNC) +/** + The class for @@debug_sync session-only variable +*/ +class Sys_var_debug_sync :public sys_var +{ +public: + Sys_var_debug_sync(const char *name_arg, + const char *comment, int flag_args, + CMD_LINE getopt, + const char *def_val, PolyLock *lock=0, + enum binlog_status_enum binlog_status_arg=VARIABLE_NOT_IN_BINLOG, + on_check_function on_check_func=0, + on_update_function on_update_func=0, + const char *substitute=0) + : sys_var(&all_sys_vars, name_arg, comment, flag_args, 0, getopt.id, + getopt.arg_type, SHOW_CHAR, (intptr)def_val, + lock, binlog_status_arg, on_check_func, on_update_func, + substitute) + { + SYSVAR_ASSERT(scope() == ONLY_SESSION); + option.var_type= GET_NO_ARG; + } + bool do_check(THD *thd, set_var *var) + { + char buff[STRING_BUFFER_USUAL_SIZE]; + String str(buff, sizeof(buff), system_charset_info), *res; + + if (!(res=var->value->val_str(&str))) + var->save_result.string_value.str= const_cast(""); + else + var->save_result.string_value.str= thd->strmake(res->ptr(), res->length()); + return false; + } + bool session_update(THD *thd, set_var *var) + { + extern bool debug_sync_update(THD *thd, char *val_str); + return debug_sync_update(thd, var->save_result.string_value.str); + } + bool global_update(THD *thd, set_var *var) + { + DBUG_ASSERT(FALSE); + return true; + } + void session_save_default(THD *thd, set_var *var) + { + var->save_result.string_value.str= const_cast(""); + var->save_result.string_value.length= 0; + } + void global_save_default(THD *thd, set_var *var) + { + DBUG_ASSERT(FALSE); + } + uchar *session_value_ptr(THD *thd, LEX_STRING *base) + { + extern uchar *debug_sync_value_ptr(THD *thd); + return debug_sync_value_ptr(thd); + } + uchar *global_value_ptr(THD *thd, LEX_STRING *base) + { + DBUG_ASSERT(FALSE); + return 0; + } + bool check_update_type(Item_result type) + { return type != STRING_RESULT; } +}; +#endif /* defined(ENABLED_DEBUG_SYNC) */ + +/** + The class for bit variables - a variant of boolean that stores the value + in a bit. + + Class specific constructor arguments: + ulonglong bitmask_arg - the mask for the bit to set in the ulonglong + backing store + + Backing store: ulonglong + + @note + This class supports the "reverse" semantics, when the value of the bit + being 0 corresponds to the value of variable being set. To activate it + use REVERSE(bitmask) instead of simply bitmask in the constructor. + + @note + variables of this class cannot be set from the command line as + my_getopt does not support bits. +*/ +class Sys_var_bit: public Sys_var_typelib +{ + ulonglong bitmask; + bool reverse_semantics; + void set(uchar *ptr, ulonglong value) + { + if ((value != 0) ^ reverse_semantics) + (*(ulonglong *)ptr)|= bitmask; + else + (*(ulonglong *)ptr)&= ~bitmask; + } +public: + Sys_var_bit(const char *name_arg, + const char *comment, int flag_args, ptrdiff_t off, size_t size, + CMD_LINE getopt, + ulonglong bitmask_arg, my_bool def_val, PolyLock *lock=0, + enum binlog_status_enum binlog_status_arg=VARIABLE_NOT_IN_BINLOG, + on_check_function on_check_func=0, + on_update_function on_update_func=0, + const char *substitute=0) + : Sys_var_typelib(name_arg, comment, flag_args, off, getopt, + SHOW_MY_BOOL, bool_values, def_val, lock, + binlog_status_arg, on_check_func, on_update_func, + substitute) + { + option.var_type= GET_BOOL; + reverse_semantics= my_count_bits(bitmask_arg) > 1; + bitmask= reverse_semantics ? ~bitmask_arg : bitmask_arg; + set(global_var_ptr(), def_val); + SYSVAR_ASSERT(def_val < 2); + SYSVAR_ASSERT(getopt.id == -1); // force NO_CMD_LINE + SYSVAR_ASSERT(size == sizeof(ulonglong)); + } + bool session_update(THD *thd, set_var *var) + { + set(session_var_ptr(thd), var->save_result.ulonglong_value); + return false; + } + bool global_update(THD *thd, set_var *var) + { + set(global_var_ptr(), var->save_result.ulonglong_value); + return false; + } + void session_save_default(THD *thd, set_var *var) + { var->save_result.ulonglong_value= global_var(ulonglong) & bitmask; } + void global_save_default(THD *thd, set_var *var) + { var->save_result.ulonglong_value= option.def_value; } + uchar *session_value_ptr(THD *thd, LEX_STRING *base) + { + thd->sys_var_tmp.my_bool_value= reverse_semantics ^ + ((session_var(thd, ulonglong) & bitmask) != 0); + return (uchar*) &thd->sys_var_tmp.my_bool_value; + } + uchar *global_value_ptr(THD *thd, LEX_STRING *base) + { + thd->sys_var_tmp.my_bool_value= reverse_semantics ^ + ((global_var(ulonglong) & bitmask) != 0); + return (uchar*) &thd->sys_var_tmp.my_bool_value; + } +}; + +/** + The class for variables that have a special meaning for a session, + such as @@timestamp or @@rnd_seed1, their values typically cannot be read + from SV structure, and a special "read" callback is provided. + + Class specific constructor arguments: + everything derived from Sys_var_ulonglong + session_special_read_function read_func_arg + + Backing store: ulonglong + + @note + These variables are session-only, global or command-line equivalents + are not supported as they're generally meaningless. +*/ +class Sys_var_session_special: public Sys_var_ulonglong +{ + typedef bool (*session_special_update_function)(THD *thd, set_var *var); + typedef ulonglong (*session_special_read_function)(THD *thd); + + session_special_read_function read_func; + session_special_update_function update_func; +public: + Sys_var_session_special(const char *name_arg, + const char *comment, int flag_args, + CMD_LINE getopt, + ulonglong min_val, ulonglong max_val, uint block_size, + PolyLock *lock, enum binlog_status_enum binlog_status_arg, + on_check_function on_check_func, + session_special_update_function update_func_arg, + session_special_read_function read_func_arg, + const char *substitute=0) + : Sys_var_ulonglong(name_arg, comment, flag_args, 0, + sizeof(ulonglong), getopt, min_val, + max_val, 0, block_size, lock, binlog_status_arg, on_check_func, 0, + substitute), + read_func(read_func_arg), update_func(update_func_arg) + { + SYSVAR_ASSERT(scope() == ONLY_SESSION); + SYSVAR_ASSERT(getopt.id == -1); // NO_CMD_LINE, because the offset is fake + } + bool session_update(THD *thd, set_var *var) + { return update_func(thd, var); } + bool global_update(THD *thd, set_var *var) + { + DBUG_ASSERT(FALSE); + return true; + } + void session_save_default(THD *thd, set_var *var) + { var->value= 0; } + void global_save_default(THD *thd, set_var *var) + { DBUG_ASSERT(FALSE); } + uchar *session_value_ptr(THD *thd, LEX_STRING *base) + { + thd->sys_var_tmp.ulonglong_value= read_func(thd); + return (uchar*) &thd->sys_var_tmp.ulonglong_value; + } + uchar *global_value_ptr(THD *thd, LEX_STRING *base) + { + DBUG_ASSERT(FALSE); + return 0; + } +}; + + +class Sys_var_session_special_double: public Sys_var_double +{ + typedef bool (*session_special_update_function)(THD *thd, set_var *var); + typedef double (*session_special_read_function)(THD *thd); + + session_special_read_function read_func; + session_special_update_function update_func; +public: + Sys_var_session_special_double(const char *name_arg, + const char *comment, int flag_args, + CMD_LINE getopt, + double min_val, double max_val, + PolyLock *lock, enum binlog_status_enum binlog_status_arg, + on_check_function on_check_func, + session_special_update_function update_func_arg, + session_special_read_function read_func_arg, + const char *substitute=0) + : Sys_var_double(name_arg, comment, flag_args, 0, + sizeof(double), getopt, min_val, + max_val, 0, lock, binlog_status_arg, on_check_func, 0, + substitute), + read_func(read_func_arg), update_func(update_func_arg) + { + SYSVAR_ASSERT(scope() == ONLY_SESSION); + SYSVAR_ASSERT(getopt.id == -1); // NO_CMD_LINE, because the offset is fake + } + bool session_update(THD *thd, set_var *var) + { return update_func(thd, var); } + bool global_update(THD *thd, set_var *var) + { + DBUG_ASSERT(FALSE); + return true; + } + void session_save_default(THD *thd, set_var *var) + { var->value= 0; } + void global_save_default(THD *thd, set_var *var) + { DBUG_ASSERT(FALSE); } + uchar *session_value_ptr(THD *thd, LEX_STRING *base) + { + thd->sys_var_tmp.double_value= read_func(thd); + return (uchar*) &thd->sys_var_tmp.double_value; + } + uchar *global_value_ptr(THD *thd, LEX_STRING *base) + { + DBUG_ASSERT(FALSE); + return 0; + } +}; + + +/** + The class for read-only variables that show whether a particular + feature is supported by the server. Example: have_compression + + Backing store: enum SHOW_COMP_OPTION + + @note + These variables are necessarily read-only, only global, and have no + command-line equivalent. +*/ +class Sys_var_have: public sys_var +{ +public: + Sys_var_have(const char *name_arg, + const char *comment, int flag_args, ptrdiff_t off, size_t size, + CMD_LINE getopt, + PolyLock *lock=0, + enum binlog_status_enum binlog_status_arg=VARIABLE_NOT_IN_BINLOG, + on_check_function on_check_func=0, + on_update_function on_update_func=0, + const char *substitute=0) + : sys_var(&all_sys_vars, name_arg, comment, flag_args, off, getopt.id, + getopt.arg_type, SHOW_CHAR, 0, + lock, binlog_status_arg, on_check_func, on_update_func, + substitute) + { + SYSVAR_ASSERT(scope() == GLOBAL); + SYSVAR_ASSERT(getopt.id == -1); + SYSVAR_ASSERT(lock == 0); + SYSVAR_ASSERT(binlog_status_arg == VARIABLE_NOT_IN_BINLOG); + SYSVAR_ASSERT(is_readonly()); + SYSVAR_ASSERT(on_update == 0); + SYSVAR_ASSERT(size == sizeof(enum SHOW_COMP_OPTION)); + } + bool do_check(THD *thd, set_var *var) { + DBUG_ASSERT(FALSE); + return true; + } + bool session_update(THD *thd, set_var *var) + { + DBUG_ASSERT(FALSE); + return true; + } + bool global_update(THD *thd, set_var *var) + { + DBUG_ASSERT(FALSE); + return true; + } + void session_save_default(THD *thd, set_var *var) { } + void global_save_default(THD *thd, set_var *var) { } + uchar *session_value_ptr(THD *thd, LEX_STRING *base) + { + DBUG_ASSERT(FALSE); + return 0; + } + uchar *global_value_ptr(THD *thd, LEX_STRING *base) + { + return (uchar*)show_comp_option_name[global_var(enum SHOW_COMP_OPTION)]; + } + bool check_update_type(Item_result type) { return false; } +}; + +/** + Generic class for variables for storing entities that are internally + represented as structures, have names, and possibly can be referred to by + numbers. Examples: character sets, collations, locales, + + Class specific constructor arguments: + ptrdiff_t name_offset - offset of the 'name' field in the structure + + Backing store: void* + + @note + As every such a structure requires special treatment from my_getopt, + these variables don't support command-line equivalents, any such + command-line options should be added manually to my_long_options in mysqld.cc +*/ +class Sys_var_struct: public sys_var +{ + ptrdiff_t name_offset; // offset to the 'name' property in the structure +public: + Sys_var_struct(const char *name_arg, + const char *comment, int flag_args, ptrdiff_t off, size_t size, + CMD_LINE getopt, + ptrdiff_t name_off, void *def_val, PolyLock *lock=0, + enum binlog_status_enum binlog_status_arg=VARIABLE_NOT_IN_BINLOG, + on_check_function on_check_func=0, + on_update_function on_update_func=0, + const char *substitute=0) + : sys_var(&all_sys_vars, name_arg, comment, flag_args, off, getopt.id, + getopt.arg_type, SHOW_CHAR, (intptr)def_val, + lock, binlog_status_arg, on_check_func, on_update_func, + substitute), + name_offset(name_off) + { + option.var_type= GET_STR; + /* + struct variables are special on the command line - often (e.g. for + charsets) the name cannot be immediately resolved, but only after all + options (in particular, basedir) are parsed. + + thus all struct command-line options should be added manually + to my_long_options in mysqld.cc + */ + SYSVAR_ASSERT(getopt.id == -1); + SYSVAR_ASSERT(size == sizeof(void *)); + } + bool do_check(THD *thd, set_var *var) + { return false; } + bool session_update(THD *thd, set_var *var) + { + session_var(thd, const void*)= var->save_result.ptr; + return false; + } + bool global_update(THD *thd, set_var *var) + { + global_var(const void*)= var->save_result.ptr; + return false; + } + void session_save_default(THD *thd, set_var *var) + { var->save_result.ptr= global_var(void*); } + void global_save_default(THD *thd, set_var *var) + { + void **default_value= reinterpret_cast(option.def_value); + var->save_result.ptr= *default_value; + } + bool check_update_type(Item_result type) + { return type != INT_RESULT && type != STRING_RESULT; } + uchar *session_value_ptr(THD *thd, LEX_STRING *base) + { + uchar *ptr= session_var(thd, uchar*); + return ptr ? *(uchar**)(ptr+name_offset) : 0; + } + uchar *global_value_ptr(THD *thd, LEX_STRING *base) + { + uchar *ptr= global_var(uchar*); + return ptr ? *(uchar**)(ptr+name_offset) : 0; + } +}; + +/** + The class for variables that store time zones + + Backing store: Time_zone* + + @note + Time zones cannot be supported directly by my_getopt, thus + these variables don't support command-line equivalents, any such + command-line options should be added manually to my_long_options in mysqld.cc +*/ +class Sys_var_tz: public sys_var +{ +public: + Sys_var_tz(const char *name_arg, + const char *comment, int flag_args, ptrdiff_t off, size_t size, + CMD_LINE getopt, + Time_zone **def_val, PolyLock *lock=0, + enum binlog_status_enum binlog_status_arg=VARIABLE_NOT_IN_BINLOG, + on_check_function on_check_func=0, + on_update_function on_update_func=0, + const char *substitute=0) + : sys_var(&all_sys_vars, name_arg, comment, flag_args, off, getopt.id, + getopt.arg_type, SHOW_CHAR, (intptr)def_val, + lock, binlog_status_arg, on_check_func, on_update_func, + substitute) + { + SYSVAR_ASSERT(getopt.id == -1); + SYSVAR_ASSERT(size == sizeof(Time_zone *)); + } + bool do_check(THD *thd, set_var *var) + { + char buff[MAX_TIME_ZONE_NAME_LENGTH]; + String str(buff, sizeof(buff), &my_charset_latin1); + String *res= var->value->val_str(&str); + + if (!res) + return true; + + if (!(var->save_result.time_zone= my_tz_find(thd, res))) + { + ErrConvString err(res); + my_error(ER_UNKNOWN_TIME_ZONE, MYF(0), err.ptr()); + return true; + } + return false; + } + bool session_update(THD *thd, set_var *var) + { + session_var(thd, Time_zone*)= var->save_result.time_zone; + return false; + } + bool global_update(THD *thd, set_var *var) + { + global_var(Time_zone*)= var->save_result.time_zone; + return false; + } + void session_save_default(THD *thd, set_var *var) + { + var->save_result.time_zone= global_var(Time_zone*); + } + void global_save_default(THD *thd, set_var *var) + { + var->save_result.time_zone= + *(Time_zone**)(intptr)option.def_value; + } + uchar *session_value_ptr(THD *thd, LEX_STRING *base) + { + /* + This is an ugly fix for replication: we don't replicate properly queries + invoking system variables' values to update tables; but + CONVERT_TZ(,,@@session.time_zone) is so popular that we make it + replicable (i.e. we tell the binlog code to store the session + timezone). If it's the global value which was used we can't replicate + (binlog code stores session value only). + */ + thd->time_zone_used= 1; + return (uchar *)(session_var(thd, Time_zone*)->get_name()->ptr()); + } + uchar *global_value_ptr(THD *thd, LEX_STRING *base) + { + return (uchar *)(global_var(Time_zone*)->get_name()->ptr()); + } + bool check_update_type(Item_result type) + { return type != STRING_RESULT; } +}; + +/** + Special implementation for transaction isolation, that + distingushes between + + SET GLOBAL TRANSACTION ISOLATION (stored in global_system_variables) + SET SESSION TRANSACTION ISOLATION (stored in thd->variables) + SET TRANSACTION ISOLATION (stored in thd->tx_isolation) + + where the last statement sets isolation level for the next transaction only +*/ +class Sys_var_tx_isolation: public Sys_var_enum +{ +public: + Sys_var_tx_isolation(const char *name_arg, + const char *comment, int flag_args, ptrdiff_t off, size_t size, + CMD_LINE getopt, + const char *values[], uint def_val, PolyLock *lock, + enum binlog_status_enum binlog_status_arg, + on_check_function on_check_func) + :Sys_var_enum(name_arg, comment, flag_args, off, size, getopt, + values, def_val, lock, binlog_status_arg, on_check_func) + {} + bool session_update(THD *thd, set_var *var) + { + if (var->type == OPT_SESSION && Sys_var_enum::session_update(thd, var)) + return TRUE; + if (var->type == OPT_DEFAULT || !thd->in_active_multi_stmt_transaction()) + thd->tx_isolation= (enum_tx_isolation) var->save_result.ulonglong_value; + return FALSE; + } +}; + +/* + Class for replicate_events_marked_for_skip. + We need a custom update function that ensures the slave is stopped when + the update is happening. +*/ +class Sys_var_replicate_events_marked_for_skip: public Sys_var_enum +{ +public: + Sys_var_replicate_events_marked_for_skip(const char *name_arg, + const char *comment, int flag_args, ptrdiff_t off, size_t size, + CMD_LINE getopt, + const char *values[], uint def_val, PolyLock *lock, + enum binlog_status_enum binlog_status_arg, + on_check_function on_check_func) + :Sys_var_enum(name_arg, comment, flag_args, off, size, getopt, + values, def_val, lock, binlog_status_arg, on_check_func) + {} + bool global_update(THD *thd, set_var *var); +}; + +/**************************************************************************** + Used templates +****************************************************************************/ + +#ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION +template class List; +template class List_iterator_fast; +template class Sys_var_integer; +template class Sys_var_integer; +template class Sys_var_integer; +template class Sys_var_integer; +template class Sys_var_integer; +#endif + diff --git a/database/include/mysql/private/sys_vars_shared.h b/database/include/mysql/private/sys_vars_shared.h new file mode 100644 index 0000000..bff59f6 --- /dev/null +++ b/database/include/mysql/private/sys_vars_shared.h @@ -0,0 +1,86 @@ +#ifndef SYS_VARS_SHARED_INCLUDED +#define SYS_VARS_SHARED_INCLUDED + +/* Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/** + @file + "protected" interface to sys_var - server configuration variables. + + This header is included by files implementing support and utility + functions of sys_var's (set_var.cc) and files implementing + classes in the sys_var hierarchy (sql_plugin.cc) +*/ + +#include +#include "set_var.h" + +extern bool throw_bounds_warning(THD *thd, const char *name, + bool fixed, bool is_unsigned, longlong v); +extern bool throw_bounds_warning(THD *thd, const char *name, bool fixed, + double v); +extern sys_var *intern_find_sys_var(const char *str, uint length); + +extern sys_var_chain all_sys_vars; + +/** wrapper to hide a mutex and an rwlock under a common interface */ +class PolyLock +{ +public: + virtual void rdlock()= 0; + virtual void wrlock()= 0; + virtual void unlock()= 0; + virtual ~PolyLock() {} +}; + +class PolyLock_mutex: public PolyLock +{ + mysql_mutex_t *mutex; +public: + PolyLock_mutex(mysql_mutex_t *arg): mutex(arg) {} + void rdlock() { mysql_mutex_lock(mutex); } + void wrlock() { mysql_mutex_lock(mutex); } + void unlock() { mysql_mutex_unlock(mutex); } +}; + +class PolyLock_rwlock: public PolyLock +{ + mysql_rwlock_t *rwlock; +public: + PolyLock_rwlock(mysql_rwlock_t *arg): rwlock(arg) {} + void rdlock() { mysql_rwlock_rdlock(rwlock); } + void wrlock() { mysql_rwlock_wrlock(rwlock); } + void unlock() { mysql_rwlock_unlock(rwlock); } +}; + +class AutoWLock +{ + PolyLock *lock; +public: + AutoWLock(PolyLock *l) : lock(l) { if (lock) lock->wrlock(); } + ~AutoWLock() { if (lock) lock->unlock(); } +}; + +class AutoRLock +{ + PolyLock *lock; +public: + AutoRLock(PolyLock *l) : lock(l) { if (lock) lock->rdlock(); } + ~AutoRLock() { if (lock) lock->unlock(); } +}; + + +#endif /* SYS_VARS_SHARED_INCLUDED */ diff --git a/database/include/mysql/private/t_ctype.h b/database/include/mysql/private/t_ctype.h new file mode 100644 index 0000000..9164c62 --- /dev/null +++ b/database/include/mysql/private/t_ctype.h @@ -0,0 +1,255 @@ +/* Copyright (C) 2000 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* + Copyright (C) 1998, 1999 by Pruet Boonma, all rights reserved. + Copyright (C) 1998 by Theppitak Karoonboonyanan, all rights reserved. + Permission to use, copy, modify, distribute and sell this software + and its documentation for any purpose is hereby granted without fee, + provided that the above copyright notice appear in all copies. + Smaphan Raruenrom and Pruet Boonma makes no representations about + the suitability of this software for any purpose. It is provided + "as is" without express or implied warranty. +*/ + +/* LC_COLLATE category + Level information */ + +#ifndef _t_ctype_h +#define _t_ctype_h + +#define TOT_LEVELS 5 +#define LAST_LEVEL 4 /* TOT_LEVELS - 1 */ + +#define IGNORE 0 + + +/* level 1 symbols & order */ +enum l1_symbols { + L1_08 = TOT_LEVELS, + L1_18, + L1_28, + L1_38, + L1_48, + L1_58, + L1_68, + L1_78, + L1_88, + L1_98, + L1_A8, + L1_B8, + L1_C8, + L1_D8, + L1_E8, + L1_F8, + L1_G8, + L1_H8, + L1_I8, + L1_J8, + L1_K8, + L1_L8, + L1_M8, + L1_N8, + L1_O8, + L1_P8, + L1_Q8, + L1_R8, + L1_S8, + L1_T8, + L1_U8, + L1_V8, + L1_W8, + L1_X8, + L1_Y8, + L1_Z8, + L1_KO_KAI, + L1_KHO_KHAI, + L1_KHO_KHUAT, + L1_KHO_KHWAI, + L1_KHO_KHON, + L1_KHO_RAKHANG, + L1_NGO_NGU, + L1_CHO_CHAN, + L1_CHO_CHING, + L1_CHO_CHANG, + L1_SO_SO, + L1_CHO_CHOE, + L1_YO_YING, + L1_DO_CHADA, + L1_TO_PATAK, + L1_THO_THAN, + L1_THO_NANGMONTHO, + L1_THO_PHUTHAO, + L1_NO_NEN, + L1_DO_DEK, + L1_TO_TAO, + L1_THO_THUNG, + L1_THO_THAHAN, + L1_THO_THONG, + L1_NO_NU, + L1_BO_BAIMAI, + L1_PO_PLA, + L1_PHO_PHUNG, + L1_FO_FA, + L1_PHO_PHAN, + L1_FO_FAN, + L1_PHO_SAMPHAO, + L1_MO_MA, + L1_YO_YAK, + L1_RO_RUA, + L1_RU, + L1_LO_LING, + L1_LU, + L1_WO_WAEN, + L1_SO_SALA, + L1_SO_RUSI, + L1_SO_SUA, + L1_HO_HIP, + L1_LO_CHULA, + L1_O_ANG, + L1_HO_NOKHUK, + L1_NKHIT, + L1_SARA_A, + L1_MAI_HAN_AKAT, + L1_SARA_AA, + L1_SARA_AM, + L1_SARA_I, + L1_SARA_II, + L1_SARA_UE, + L1_SARA_UEE, + L1_SARA_U, + L1_SARA_UU, + L1_SARA_E, + L1_SARA_AE, + L1_SARA_O, + L1_SARA_AI_MAIMUAN, + L1_SARA_AI_MAIMALAI +}; + +/* level 2 symbols & order */ +enum l2_symbols { + L2_BLANK = TOT_LEVELS, + L2_THAII, + L2_YAMAK, + L2_PINTHU, + L2_GARAN, + L2_TYKHU, + L2_TONE1, + L2_TONE2, + L2_TONE3, + L2_TONE4 +}; + +/* level 3 symbols & order */ +enum l3_symbols { + L3_BLANK = TOT_LEVELS, + L3_SPACE, + L3_NB_SACE, + L3_LOW_LINE, + L3_HYPHEN, + L3_COMMA, + L3_SEMICOLON, + L3_COLON, + L3_EXCLAMATION, + L3_QUESTION, + L3_SOLIDUS, + L3_FULL_STOP, + L3_PAIYAN_NOI, + L3_MAI_YAMOK, + L3_GRAVE, + L3_CIRCUMFLEX, + L3_TILDE, + L3_APOSTROPHE, + L3_QUOTATION, + L3_L_PARANTHESIS, + L3_L_BRACKET, + L3_L_BRACE, + L3_R_BRACE, + L3_R_BRACKET, + L3_R_PARENTHESIS, + L3_AT, + L3_BAHT, + L3_DOLLAR, + L3_FONGMAN, + L3_ANGKHANKHU, + L3_KHOMUT, + L3_ASTERISK, + L3_BK_SOLIDUS, + L3_AMPERSAND, + L3_NUMBER, + L3_PERCENT, + L3_PLUS, + L3_LESS_THAN, + L3_EQUAL, + L3_GREATER_THAN, + L3_V_LINE +}; + +/* level 4 symbols & order */ +enum l4_symbols { + L4_BLANK = TOT_LEVELS, + L4_MIN, + L4_CAP, + L4_EXT +}; + +enum level_symbols { + L_UPRUPR = TOT_LEVELS, + L_UPPER, + L_MIDDLE, + L_LOWER +}; + +#define _is(c) (t_ctype[(c)][LAST_LEVEL]) +#define _level 8 +#define _consnt 16 +#define _ldvowel 32 +#define _fllwvowel 64 +#define _uprvowel 128 +#define _lwrvowel 256 +#define _tone 512 +#define _diacrt1 1024 +#define _diacrt2 2048 +#define _combine 4096 +#define _stone 8192 +#define _tdig 16384 +#define _rearvowel (_fllwvowel | _uprvowel | _lwrvowel) +#define _diacrt (_diacrt1 | _diacrt2) +#define levelof(c) ( _is(c) & _level ) +#define isthai(c) ( (c) >= 128 ) +#define istalpha(c) ( _is(c) & (_consnt|_ldvowel|_rearvowel|\ + _tone|_diacrt1|_diacrt2) ) +#define isconsnt(c) ( _is(c) & _consnt ) +#define isldvowel(c) ( _is(c) & _ldvowel ) +#define isfllwvowel(c) ( _is(c) & _fllwvowel ) +#define ismidvowel(c) ( _is(c) & (_ldvowel|_fllwvowel) ) +#define isuprvowel(c) ( _is(c) & _uprvowel ) +#define islwrvowel(c) ( _is(c) & _lwrvowel ) +#define isuprlwrvowel(c) ( _is(c) & (_lwrvowel | _uprvowel)) +#define isrearvowel(c) ( _is(c) & _rearvowel ) +#define isvowel(c) ( _is(c) & (_ldvowel|_rearvowel) ) +#define istone(c) ( _is(c) & _tone ) +#define isunldable(c) ( _is(c) & (_rearvowel|_tone|_diacrt1|_diacrt2) ) +#define iscombinable(c) ( _is(c) & _combine ) +#define istdigit(c) ( _is(c) & _tdig ) +#define isstone(c) ( _is(c) & _stone ) +#define isdiacrt1(c) ( _is(c) & _diacrt1) +#define isdiacrt2(c) ( _is(c) & _diacrt2) +#define isdiacrt(c) ( _is(c) & _diacrt) + +/* Function prototype called by sql/field.cc */ +void ThNormalize(uchar* ptr, uint field_length, const uchar* from, uint length); + +#endif diff --git a/database/include/mysql/private/table.h b/database/include/mysql/private/table.h new file mode 100644 index 0000000..66a51b9 --- /dev/null +++ b/database/include/mysql/private/table.h @@ -0,0 +1,2575 @@ +#ifndef TABLE_INCLUDED +#define TABLE_INCLUDED +/* Copyright (c) 2000, 2017, Oracle and/or its affiliates. + Copyright (c) 2009, 2018, MariaDB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#include "my_global.h" /* NO_EMBEDDED_ACCESS_CHECKS */ +#include "sql_plist.h" +#include "sql_list.h" /* Sql_alloc */ +#include "mdl.h" +#include "datadict.h" +#include "sql_string.h" /* String */ + +#ifndef MYSQL_CLIENT + +#include "hash.h" /* HASH */ +#include "handler.h" /* row_type, ha_choice, handler */ +#include "mysql_com.h" /* enum_field_types */ +#include "thr_lock.h" /* thr_lock_type */ + +/* Structs that defines the TABLE */ + +class Item; /* Needed by ORDER */ +typedef Item (*Item_ptr); +class Item_subselect; +class Item_field; +class GRANT_TABLE; +class st_select_lex_unit; +class st_select_lex; +class partition_info; +class COND_EQUAL; +class Security_context; +struct TABLE_LIST; +class ACL_internal_schema_access; +class ACL_internal_table_access; +class Field; +struct Name_resolution_context; + +/* + Used to identify NESTED_JOIN structures within a join (applicable only to + structures that have not been simplified away and embed more the one + element) +*/ +typedef ulonglong nested_join_map; + + +#define tmp_file_prefix "#sql" /**< Prefix for tmp tables */ +#define tmp_file_prefix_length 4 +#define TMP_TABLE_KEY_EXTRA 8 + +/** + Enumerate possible types of a table from re-execution + standpoint. + TABLE_LIST class has a member of this type. + At prepared statement prepare, this member is assigned a value + as of the current state of the database. Before (re-)execution + of a prepared statement, we check that the value recorded at + prepare matches the type of the object we obtained from the + table definition cache. + + @sa check_and_update_table_version() + @sa Execute_observer + @sa Prepared_statement::reprepare() +*/ + +enum enum_table_ref_type +{ + /** Initial value set by the parser */ + TABLE_REF_NULL= 0, + TABLE_REF_VIEW, + TABLE_REF_BASE_TABLE, + TABLE_REF_I_S_TABLE, + TABLE_REF_TMP_TABLE +}; + + +/*************************************************************************/ + +/** + Object_creation_ctx -- interface for creation context of database objects + (views, stored routines, events, triggers). Creation context -- is a set + of attributes, that should be fixed at the creation time and then be used + each time the object is parsed or executed. +*/ + +class Object_creation_ctx +{ +public: + Object_creation_ctx *set_n_backup(THD *thd); + + void restore_env(THD *thd, Object_creation_ctx *backup_ctx); + +protected: + Object_creation_ctx() {} + virtual Object_creation_ctx *create_backup_ctx(THD *thd) const = 0; + + virtual void change_env(THD *thd) const = 0; + +public: + virtual ~Object_creation_ctx() + { } +}; + +/*************************************************************************/ + +/** + Default_object_creation_ctx -- default implementation of + Object_creation_ctx. +*/ + +class Default_object_creation_ctx : public Object_creation_ctx +{ +public: + CHARSET_INFO *get_client_cs() + { + return m_client_cs; + } + + CHARSET_INFO *get_connection_cl() + { + return m_connection_cl; + } + +protected: + Default_object_creation_ctx(THD *thd); + + Default_object_creation_ctx(CHARSET_INFO *client_cs, + CHARSET_INFO *connection_cl); + +protected: + virtual Object_creation_ctx *create_backup_ctx(THD *thd) const; + + virtual void change_env(THD *thd) const; + +protected: + /** + client_cs stores the value of character_set_client session variable. + The only character set attribute is used. + + Client character set is included into query context, because we save + query in the original character set, which is client character set. So, + in order to parse the query properly we have to switch client character + set on parsing. + */ + CHARSET_INFO *m_client_cs; + + /** + connection_cl stores the value of collation_connection session + variable. Both character set and collation attributes are used. + + Connection collation is included into query context, becase it defines + the character set and collation of text literals in internal + representation of query (item-objects). + */ + CHARSET_INFO *m_connection_cl; +}; + +class Query_arena; + +/*************************************************************************/ + +/** + View_creation_ctx -- creation context of view objects. +*/ + +class View_creation_ctx : public Default_object_creation_ctx, + public Sql_alloc +{ +public: + static View_creation_ctx *create(THD *thd); + + static View_creation_ctx *create(THD *thd, + TABLE_LIST *view); + +private: + View_creation_ctx(THD *thd) + : Default_object_creation_ctx(thd) + { } +}; + +/*************************************************************************/ + +/* Order clause list element */ + +typedef struct st_order { + struct st_order *next; + Item **item; /* Point at item in select fields */ + Item *item_ptr; /* Storage for initial item */ + int counter; /* position in SELECT list, correct + only if counter_used is true*/ + bool asc; /* true if ascending */ + bool free_me; /* true if item isn't shared */ + bool in_field_list; /* true if in select field list */ + bool counter_used; /* parameter was counter of columns */ + Field *field; /* If tmp-table group */ + char *buff; /* If tmp-table group */ + table_map used; /* NOTE: the below is only set to 0 but is still used by eq_ref_table */ + table_map depend_map; +} ORDER; + +/** + State information for internal tables grants. + This structure is part of the TABLE_LIST, and is updated + during the ACL check process. + @sa GRANT_INFO +*/ +struct st_grant_internal_info +{ + /** True if the internal lookup by schema name was done. */ + bool m_schema_lookup_done; + /** Cached internal schema access. */ + const ACL_internal_schema_access *m_schema_access; + /** True if the internal lookup by table name was done. */ + bool m_table_lookup_done; + /** Cached internal table access. */ + const ACL_internal_table_access *m_table_access; +}; +typedef struct st_grant_internal_info GRANT_INTERNAL_INFO; + +/** + @brief The current state of the privilege checking process for the current + user, SQL statement and SQL object. + + @details The privilege checking process is divided into phases depending on + the level of the privilege to be checked and the type of object to be + accessed. Due to the mentioned scattering of privilege checking + functionality, it is necessary to keep track of the state of the + process. This information is stored in privilege, want_privilege, and + orig_want_privilege. + + A GRANT_INFO also serves as a cache of the privilege hash tables. Relevant + members are grant_table and version. + */ +typedef struct st_grant_info +{ + /** + @brief A copy of the privilege information regarding the current host, + database, object and user. + + @details The version of this copy is found in GRANT_INFO::version. + */ + GRANT_TABLE *grant_table; + /** + @brief Used for cache invalidation when caching privilege information. + + @details The privilege information is stored on disk, with dedicated + caches residing in memory: table-level and column-level privileges, + respectively, have their own dedicated caches. + + The GRANT_INFO works as a level 1 cache with this member updated to the + current value of the global variable @c grant_version (@c static variable + in sql_acl.cc). It is updated Whenever the GRANT_INFO is refreshed from + the level 2 cache. The level 2 cache is the @c column_priv_hash structure + (@c static variable in sql_acl.cc) + + @see grant_version + */ + uint version; + /** + @brief The set of privileges that the current user has fulfilled for a + certain host, database, and object. + + @details This field is continually updated throughout the access checking + process. In each step the "wanted privilege" is checked against the + fulfilled privileges. When/if the intersection of these sets is empty, + access is granted. + + The set is implemented as a bitmap, with the bits defined in sql_acl.h. + */ + ulong privilege; + /** + @brief the set of privileges that the current user needs to fulfil in + order to carry out the requested operation. + */ + ulong want_privilege; + /** + Stores the requested access acl of top level tables list. Is used to + check access rights to the underlying tables of a view. + */ + ulong orig_want_privilege; + /** The grant state for internal tables. */ + GRANT_INTERNAL_INFO m_internal; +} GRANT_INFO; + +enum tmp_table_type +{ + NO_TMP_TABLE, NON_TRANSACTIONAL_TMP_TABLE, TRANSACTIONAL_TMP_TABLE, + INTERNAL_TMP_TABLE, SYSTEM_TMP_TABLE +}; +enum release_type { RELEASE_NORMAL, RELEASE_WAIT_FOR_DROP }; + +enum enum_vcol_update_mode +{ + VCOL_UPDATE_FOR_READ= 0, + VCOL_UPDATE_FOR_WRITE +}; + +typedef struct st_filesort_info +{ + IO_CACHE *io_cache; /* If sorted through filesort */ + uchar **sort_keys; /* Buffer for sorting keys */ + uint keys; /* Number of key pointers in buffer */ + uchar *buffpek; /* Buffer for buffpek structures */ + uint buffpek_len; /* Max number of buffpeks in the buffer */ + uchar *addon_buf; /* Pointer to a buffer if sorted with fields */ + size_t addon_length; /* Length of the buffer */ + struct st_sort_addon_field *addon_field; /* Pointer to the fields info */ + void (*unpack)(struct st_sort_addon_field *, uchar *, uchar *); /* To unpack back */ + uchar *record_pointers; /* If sorted in memory */ + ha_rows found_records; /* How many records in sort */ +} FILESORT_INFO; + + +/* + Values in this enum are used to indicate how a tables TIMESTAMP field + should be treated. It can be set to the current timestamp on insert or + update or both. + WARNING: The values are used for bit operations. If you change the + enum, you must keep the bitwise relation of the values. For example: + (int) TIMESTAMP_AUTO_SET_ON_BOTH must be equal to + (int) TIMESTAMP_AUTO_SET_ON_INSERT | (int) TIMESTAMP_AUTO_SET_ON_UPDATE. + We use an enum here so that the debugger can display the value names. +*/ +enum timestamp_auto_set_type +{ + TIMESTAMP_NO_AUTO_SET= 0, TIMESTAMP_AUTO_SET_ON_INSERT= 1, + TIMESTAMP_AUTO_SET_ON_UPDATE= 2, TIMESTAMP_AUTO_SET_ON_BOTH= 3 +}; +#define clear_timestamp_auto_bits(_target_, _bits_) \ + (_target_)= (enum timestamp_auto_set_type)((int)(_target_) & ~(int)(_bits_)) + +class Field_timestamp; +class Field_blob; +class Table_triggers_list; + +/** + Category of table found in the table share. +*/ +enum enum_table_category +{ + /** + Unknown value. + */ + TABLE_UNKNOWN_CATEGORY=0, + + /** + Temporary table. + The table is visible only in the session. + Therefore, + - FLUSH TABLES WITH READ LOCK + - SET GLOBAL READ_ONLY = ON + do not apply to this table. + Note that LOCK TABLE t FOR READ/WRITE + can be used on temporary tables. + Temporary tables are not part of the table cache. + */ + TABLE_CATEGORY_TEMPORARY=1, + + /** + User table. + These tables do honor: + - LOCK TABLE t FOR READ/WRITE + - FLUSH TABLES WITH READ LOCK + - SET GLOBAL READ_ONLY = ON + User tables are cached in the table cache. + */ + TABLE_CATEGORY_USER=2, + + /** + System table, maintained by the server. + These tables do honor: + - LOCK TABLE t FOR READ/WRITE + - FLUSH TABLES WITH READ LOCK + - SET GLOBAL READ_ONLY = ON + Typically, writes to system tables are performed by + the server implementation, not explicitly be a user. + System tables are cached in the table cache. + */ + TABLE_CATEGORY_SYSTEM=3, + + /** + Information schema tables. + These tables are an interface provided by the system + to inspect the system metadata. + These tables do *not* honor: + - LOCK TABLE t FOR READ/WRITE + - FLUSH TABLES WITH READ LOCK + - SET GLOBAL READ_ONLY = ON + as there is no point in locking explicitly + an INFORMATION_SCHEMA table. + Nothing is directly written to information schema tables. + Note that this value is not used currently, + since information schema tables are not shared, + but implemented as session specific temporary tables. + */ + /* + TODO: Fixing the performance issues of I_S will lead + to I_S tables in the table cache, which should use + this table type. + */ + TABLE_CATEGORY_INFORMATION=4, + + /** + Log tables. + These tables are an interface provided by the system + to inspect the system logs. + These tables do *not* honor: + - LOCK TABLE t FOR READ/WRITE + - FLUSH TABLES WITH READ LOCK + - SET GLOBAL READ_ONLY = ON + as there is no point in locking explicitly + a LOG table. + An example of LOG tables are: + - mysql.slow_log + - mysql.general_log, + which *are* updated even when there is either + a GLOBAL READ LOCK or a GLOBAL READ_ONLY in effect. + User queries do not write directly to these tables + (there are exceptions for log tables). + The server implementation perform writes. + Log tables are cached in the table cache. + */ + TABLE_CATEGORY_LOG=5, + + /** + Performance schema tables. + These tables are an interface provided by the system + to inspect the system performance data. + These tables do *not* honor: + - LOCK TABLE t FOR READ/WRITE + - FLUSH TABLES WITH READ LOCK + - SET GLOBAL READ_ONLY = ON + as there is no point in locking explicitly + a PERFORMANCE_SCHEMA table. + An example of PERFORMANCE_SCHEMA tables are: + - performance_schema.* + which *are* updated (but not using the handler interface) + even when there is either + a GLOBAL READ LOCK or a GLOBAL READ_ONLY in effect. + User queries do not write directly to these tables + (there are exceptions for SETUP_* tables). + The server implementation perform writes. + Performance tables are cached in the table cache. + */ + TABLE_CATEGORY_PERFORMANCE=6 +}; +typedef enum enum_table_category TABLE_CATEGORY; + +TABLE_CATEGORY get_table_category(const LEX_STRING *db, + const LEX_STRING *name); + + +struct TABLE_share; + +extern ulong refresh_version; + +typedef struct st_table_field_type +{ + LEX_STRING name; + LEX_STRING type; + LEX_STRING cset; +} TABLE_FIELD_TYPE; + + +typedef struct st_table_field_def +{ + uint count; + const TABLE_FIELD_TYPE *field; +} TABLE_FIELD_DEF; + + +#ifdef WITH_PARTITION_STORAGE_ENGINE +/** + Partition specific ha_data struct. +*/ +typedef struct st_ha_data_partition +{ + bool auto_inc_initialized; + mysql_mutex_t LOCK_auto_inc; /**< protecting auto_inc val */ + ulonglong next_auto_inc_val; /**< first non reserved value */ +} HA_DATA_PARTITION; +#endif + + +class Table_check_intact +{ +protected: + bool has_keys; + virtual void report_error(uint code, const char *fmt, ...)= 0; + +public: + Table_check_intact() : has_keys(FALSE) {} + virtual ~Table_check_intact() {} + + /** Checks whether a table is intact. */ + bool check(TABLE *table, const TABLE_FIELD_DEF *table_def); +}; + + +/** + Class representing the fact that some thread waits for table + share to be flushed. Is used to represent information about + such waits in MDL deadlock detector. +*/ + +class Wait_for_flush : public MDL_wait_for_subgraph +{ + MDL_context *m_ctx; + TABLE_SHARE *m_share; + uint m_deadlock_weight; +public: + Wait_for_flush(MDL_context *ctx_arg, TABLE_SHARE *share_arg, + uint deadlock_weight_arg) + : m_ctx(ctx_arg), m_share(share_arg), + m_deadlock_weight(deadlock_weight_arg) + {} + + MDL_context *get_ctx() const { return m_ctx; } + + virtual bool accept_visitor(MDL_wait_for_graph_visitor *dvisitor); + + virtual uint get_deadlock_weight() const; + + /** + Pointers for participating in the list of waiters for table share. + */ + Wait_for_flush *next_in_share; + Wait_for_flush **prev_in_share; +}; + + +typedef I_P_List > + Wait_for_flush_list; + + +/** + This structure is shared between different table objects. There is one + instance of table share per one table in the database. +*/ + +struct TABLE_SHARE +{ + TABLE_SHARE() {} /* Remove gcc warning */ + + /** Category of this table. */ + TABLE_CATEGORY table_category; + + /* hash of field names (contains pointers to elements of field array) */ + HASH name_hash; /* hash of field names */ + MEM_ROOT mem_root; + TYPELIB keynames; /* Pointers to keynames */ + TYPELIB fieldnames; /* Pointer to fieldnames */ + TYPELIB *intervals; /* pointer to interval info */ + mysql_mutex_t LOCK_ha_data; /* To protect access to ha_data */ + TABLE_SHARE *next, **prev; /* Link to unused shares */ + + /* + Doubly-linked (back-linked) lists of used and unused TABLE objects + for this share. + */ + I_P_List used_tables; + I_P_List free_tables; + + engine_option_value *option_list; /* text options for table */ + ha_table_option_struct *option_struct; /* structure with parsed options */ + + /* The following is copied to each TABLE on OPEN */ + Field **field; + Field **found_next_number_field; + Field *timestamp_field; /* Used only during open */ + KEY *key_info; /* data of keys in database */ + uint *blob_field; /* Index to blobs in Field arrray*/ + + uchar *default_values; /* row with default values */ + LEX_STRING comment; /* Comment about table */ + CHARSET_INFO *table_charset; /* Default charset of string fields */ + + MY_BITMAP all_set; + /* + Key which is used for looking-up table in table cache and in the list + of thread's temporary tables. Has the form of: + "database_name\0table_name\0" + optional part for temporary tables. + + Note that all three 'table_cache_key', 'db' and 'table_name' members + must be set (and be non-zero) for tables in table cache. They also + should correspond to each other. + To ensure this one can use set_table_cache() methods. + */ + LEX_STRING table_cache_key; + LEX_STRING db; /* Pointer to db */ + LEX_STRING table_name; /* Table name (for open) */ + LEX_STRING path; /* Path to .frm file (from datadir) */ + LEX_STRING normalized_path; /* unpack_filename(path) */ + LEX_STRING connect_string; + + /* + Set of keys in use, implemented as a Bitmap. + Excludes keys disabled by ALTER TABLE ... DISABLE KEYS. + */ + key_map keys_in_use; + key_map keys_for_keyread; + ha_rows min_rows, max_rows; /* create information */ + ulong avg_row_length; /* create information */ + ulong version, mysql_version; + ulong reclength; /* Recordlength */ + /* Stored record length. No generated-only virtual fields are included */ + ulong stored_rec_length; + + plugin_ref db_plugin; /* storage engine plugin */ + inline handlerton *db_type() const /* table_type for handler */ + { + // DBUG_ASSERT(db_plugin); + return db_plugin ? plugin_data(db_plugin, handlerton*) : NULL; + } + enum row_type row_type; /* How rows are stored */ + enum tmp_table_type tmp_table; + + /** Transactional or not. */ + enum ha_choice transactional; + /** Per-page checksums or not. */ + enum ha_choice page_checksum; + + uint ref_count; /* How many TABLE objects uses this */ + uint blob_ptr_size; /* 4 or 8 */ + uint key_block_size; /* create key_block_size, if used */ + uint null_bytes, last_null_bit_pos; + /* + Same as null_bytes, except that if there is only a 'delete-marker' in + the record then this value is 0. + */ + uint null_bytes_for_compare; + uint fields; /* Number of fields */ + /* Number of stored fields, generated-only virtual fields are not included */ + uint stored_fields; + uint rec_buff_length; /* Size of table->record[] buffer */ + uint keys, key_parts; + uint ext_key_parts; /* Total number of key parts in extended keys */ + uint max_key_length, max_unique_length, total_key_length; + uint uniques; /* Number of UNIQUE index */ + uint null_fields; /* number of null fields */ + uint blob_fields; /* number of blob fields */ + uint timestamp_field_offset; /* Field number for timestamp field */ + uint varchar_fields; /* number of varchar fields */ + uint db_create_options; /* Create options from database */ + uint db_options_in_use; /* Options in use */ + uint db_record_offset; /* if HA_REC_IN_SEQ */ + uint rowid_field_offset; /* Field_nr +1 to rowid field */ + /* Primary key index number, used in TABLE::key_info[] */ + uint primary_key; + uint next_number_index; /* autoincrement key number */ + uint next_number_key_offset; /* autoinc keypart offset in a key */ + uint next_number_keypart; /* autoinc keypart number in a key */ + uint error, open_errno, errarg; /* error from open_table_def() */ + uint column_bitmap_size; + uchar frm_version; + uint vfields; /* Number of computed (virtual) fields */ + bool use_ext_keys; /* Extended keys can be used */ + bool null_field_first; + bool system; /* Set if system table (one record) */ + bool crypted; /* If .frm file is crypted */ + bool crashed; + bool is_view; + bool deleting; /* going to delete this table */ + bool can_cmp_whole_record; + ulong table_map_id; /* for row-based replication */ + + /* + Cache for row-based replication table share checks that does not + need to be repeated. Possible values are: -1 when cache value is + not calculated yet, 0 when table *shall not* be replicated, 1 when + table *may* be replicated. + */ + int cached_row_logging_check; + +#ifdef WITH_PARTITION_STORAGE_ENGINE + /* filled in when reading from frm */ + bool auto_partitioned; + char *partition_info_str; + uint partition_info_str_len; + uint partition_info_buffer_size; + handlerton *default_part_db_type; +#endif + + /** + Cache the checked structure of this table. + + The pointer data is used to describe the structure that + a instance of the table must have. Each element of the + array specifies a field that must exist on the table. + + The pointer is cached in order to perform the check only + once -- when the table is loaded from the disk. + */ + const TABLE_FIELD_DEF *table_field_def_cache; + + /** place to store storage engine specific data */ + void *ha_data; + void (*ha_data_destroy)(void *); /* An optional destructor for ha_data */ + +#ifdef WITH_PARTITION_STORAGE_ENGINE + /** place to store partition specific data, LOCK_ha_data hold while init. */ + HA_DATA_PARTITION *ha_part_data; + /* Destructor for ha_part_data */ + void (*ha_part_data_destroy)(HA_DATA_PARTITION *); +#endif + + /** Instrumentation for this table share. */ + PSI_table_share *m_psi; + + /** + List of tickets representing threads waiting for the share to be flushed. + */ + Wait_for_flush_list m_flush_tickets; + + /* + Set share's table cache key and update its db and table name appropriately. + + SYNOPSIS + set_table_cache_key() + key_buff Buffer with already built table cache key to be + referenced from share. + key_length Key length. + + NOTES + Since 'key_buff' buffer will be referenced from share it should has same + life-time as share itself. + This method automatically ensures that TABLE_SHARE::table_name/db have + appropriate values by using table cache key as their source. + */ + + void set_table_cache_key(char *key_buff, uint key_length) + { + table_cache_key.str= key_buff; + table_cache_key.length= key_length; + /* + Let us use the fact that the key is "db/0/table_name/0" + optional + part for temporary tables. + */ + db.str= table_cache_key.str; + db.length= strlen(db.str); + table_name.str= db.str + db.length + 1; + table_name.length= strlen(table_name.str); + } + + + /* + Set share's table cache key and update its db and table name appropriately. + + SYNOPSIS + set_table_cache_key() + key_buff Buffer to be used as storage for table cache key + (should be at least key_length bytes). + key Value for table cache key. + key_length Key length. + + NOTE + Since 'key_buff' buffer will be used as storage for table cache key + it should has same life-time as share itself. + */ + + void set_table_cache_key(char *key_buff, const char *key, uint key_length) + { + memcpy(key_buff, key, key_length); + set_table_cache_key(key_buff, key_length); + } + + inline bool honor_global_locks() + { + return ((table_category == TABLE_CATEGORY_USER) + || (table_category == TABLE_CATEGORY_SYSTEM)); + } + + inline bool require_write_privileges() + { + return (table_category == TABLE_CATEGORY_LOG); + } + + inline ulong get_table_def_version() + { + return table_map_id; + } + + /** Is this table share being expelled from the table definition cache? */ + inline bool has_old_version() const + { + return version != refresh_version; + } + inline bool protected_against_usage() const + { + return version == 0; + } + inline void protect_against_usage() + { + version= 0; + } + /* + This is used only for the case of locked tables, as we want to + allow one to do SHOW commands on them even after ALTER or REPAIR + */ + inline void allow_access_to_protected_table() + { + DBUG_ASSERT(version == 0); + version= 1; + } + /* + Remove from table definition cache at close. + Table can still be opened by SHOW + */ + inline void remove_from_cache_at_close() + { + if (version != 0) /* Don't remove protection */ + version= 1; + } + inline void set_refresh_version() + { + version= refresh_version; + } + + /** + Convert unrelated members of TABLE_SHARE to one enum + representing its type. + + @todo perhaps we need to have a member instead of a function. + */ + enum enum_table_ref_type get_table_ref_type() const + { + if (is_view) + return TABLE_REF_VIEW; + switch (tmp_table) { + case NO_TMP_TABLE: + return TABLE_REF_BASE_TABLE; + case SYSTEM_TMP_TABLE: + return TABLE_REF_I_S_TABLE; + default: + return TABLE_REF_TMP_TABLE; + } + } + /** + Return a table metadata version. + * for base tables, we return table_map_id. + It is assigned from a global counter incremented for each + new table loaded into the table definition cache (TDC). + * for temporary tables it's table_map_id again. But for + temporary tables table_map_id is assigned from + thd->query_id. The latter is assigned from a thread local + counter incremented for every new SQL statement. Since + temporary tables are thread-local, each temporary table + gets a unique id. + * for everything else (views, information schema tables), + the version id is zero. + + This choice of version id is a large compromise + to have a working prepared statement validation in 5.1. In + future version ids will be persistent, as described in WL#4180. + + Let's try to explain why and how this limited solution allows + to validate prepared statements. + + Firstly, sets (in mathematical sense) of version numbers + never intersect for different table types. Therefore, + version id of a temporary table is never compared with + a version id of a view, and vice versa. + + Secondly, for base tables, we know that each DDL flushes the + respective share from the TDC. This ensures that whenever + a table is altered or dropped and recreated, it gets a new + version id. + Unfortunately, since elements of the TDC are also flushed on + LRU basis, this choice of version ids leads to false positives. + E.g. when the TDC size is too small, we may have a SELECT + * FROM INFORMATION_SCHEMA.TABLES flush all its elements, which + in turn will lead to a validation error and a subsequent + reprepare of all prepared statements. This is + considered acceptable, since as long as prepared statements are + automatically reprepared, spurious invalidation is only + a performance hit. Besides, no better simple solution exists. + + For temporary tables, using thd->query_id ensures that if + a temporary table was altered or recreated, a new version id is + assigned. This suits validation needs very well and will perhaps + never change. + + Metadata of information schema tables never changes. + Thus we can safely assume 0 for a good enough version id. + + Views are a special and tricky case. A view is always inlined + into the parse tree of a prepared statement at prepare. + Thus, when we execute a prepared statement, the parse tree + will not get modified even if the view is replaced with another + view. Therefore, we can safely choose 0 for version id of + views and effectively never invalidate a prepared statement + when a view definition is altered. Note, that this leads to + wrong binary log in statement-based replication, since we log + prepared statement execution in form Query_log_events + containing conventional statements. But since there is no + metadata locking for views, the very same problem exists for + conventional statements alone, as reported in Bug#25144. The only + difference between prepared and conventional execution is, + effectively, that for prepared statements the race condition + window is much wider. + In 6.0 we plan to support view metadata locking (WL#3726) and + extend table definition cache to cache views (WL#4298). + When this is done, views will be handled in the same fashion + as the base tables. + + Finally, by taking into account table type, we always + track that a change has taken place when a view is replaced + with a base table, a base table is replaced with a temporary + table and so on. + + @sa TABLE_LIST::is_table_ref_id_equal() + */ + ulong get_table_ref_version() const + { + return (tmp_table == SYSTEM_TMP_TABLE || is_view) ? 0 : table_map_id; + } + + bool visit_subgraph(Wait_for_flush *waiting_ticket, + MDL_wait_for_graph_visitor *gvisitor); + + bool wait_for_old_version(THD *thd, struct timespec *abstime, + uint deadlock_weight); + /** Release resources and free memory occupied by the table share. */ + void destroy(); + + void set_use_ext_keys_flag(bool fl) + { + use_ext_keys= fl; + } + + uint actual_n_key_parts(THD *thd); +}; + + +/* Information for one open table */ +enum index_hint_type +{ + INDEX_HINT_IGNORE, + INDEX_HINT_USE, + INDEX_HINT_FORCE +}; + + +#define CHECK_ROW_FOR_NULLS_TO_REJECT (1 << 0) +#define REJECT_ROW_DUE_TO_NULL_FIELDS (1 << 1) + +/* Bitmap of table's fields */ +typedef Bitmap Field_map; + +struct TABLE +{ + TABLE() {} /* Remove gcc warning */ + + TABLE_SHARE *s; + handler *file; + TABLE *next, *prev; + +private: + /** + Links for the lists of used/unused TABLE objects for this share. + Declared as private to avoid direct manipulation with those objects. + One should use methods of I_P_List template instead. + */ + TABLE *share_next, **share_prev; + + friend struct TABLE_share; + +public: + + THD *in_use; /* Which thread uses this */ + Field **field; /* Pointer to fields */ + + uchar *record[2]; /* Pointer to records */ + uchar *write_row_record; /* Used as optimisation in + THD::write_row */ + uchar *insert_values; /* used by INSERT ... UPDATE */ + /* + Map of keys that can be used to retrieve all data from this table + needed by the query without reading the row. + */ + key_map covering_keys; + key_map quick_keys, merge_keys,intersect_keys; + /* + A set of keys that can be used in the query that references this + table. + + All indexes disabled on the table's TABLE_SHARE (see TABLE::s) will be + subtracted from this set upon instantiation. Thus for any TABLE t it holds + that t.keys_in_use_for_query is a subset of t.s.keys_in_use. Generally we + must not introduce any new keys here (see setup_tables). + + The set is implemented as a bitmap. + */ + key_map keys_in_use_for_query; + /* Map of keys that can be used to calculate GROUP BY without sorting */ + key_map keys_in_use_for_group_by; + /* Map of keys that can be used to calculate ORDER BY without sorting */ + key_map keys_in_use_for_order_by; + KEY *key_info; /* data of keys in database */ + + Field *next_number_field; /* Set if next_number is activated */ + Field *found_next_number_field; /* Set on open */ + Field_timestamp *timestamp_field; + Field **vfield; /* Pointer to virtual fields*/ + + /* Table's triggers, 0 if there are no of them */ + Table_triggers_list *triggers; + TABLE_LIST *pos_in_table_list;/* Element referring to this table */ + /* Position in thd->locked_table_list under LOCK TABLES */ + TABLE_LIST *pos_in_locked_tables; + ORDER *group; + String alias; /* alias or table name */ + uchar *null_flags; + my_bitmap_map *bitmap_init_value; + MY_BITMAP def_read_set, def_write_set, def_vcol_set, tmp_set; + MY_BITMAP eq_join_set; /* used to mark equi-joined fields */ + MY_BITMAP *read_set, *write_set, *vcol_set; /* Active column sets */ + /* + The ID of the query that opened and is using this table. Has different + meanings depending on the table type. + + Temporary tables: + + table->query_id is set to thd->query_id for the duration of a statement + and is reset to 0 once it is closed by the same statement. A non-zero + table->query_id means that a statement is using the table even if it's + not the current statement (table is in use by some outer statement). + + Non-temporary tables: + + Under pre-locked or LOCK TABLES mode: query_id is set to thd->query_id + for the duration of a statement and is reset to 0 once it is closed by + the same statement. A non-zero query_id is used to control which tables + in the list of pre-opened and locked tables are actually being used. + */ + query_id_t query_id; + + /* + For each key that has quick_keys.is_set(key) == TRUE: estimate of #records + and max #key parts that range access would use. + */ + ha_rows quick_rows[MAX_KEY]; + + /* Bitmaps of key parts that =const for the entire join. */ + key_part_map const_key_parts[MAX_KEY]; + + uint quick_key_parts[MAX_KEY]; + uint quick_n_ranges[MAX_KEY]; + + /* + Estimate of number of records that satisfy SARGable part of the table + condition, or table->file->records if no SARGable condition could be + constructed. + This value is used by join optimizer as an estimate of number of records + that will pass the table condition (condition that depends on fields of + this table and constants) + */ + ha_rows quick_condition_rows; + + /* + If this table has TIMESTAMP field with auto-set property (pointed by + timestamp_field member) then this variable indicates during which + operations (insert only/on update/in both cases) we should set this + field to current timestamp. If there are no such field in this table + or we should not automatically set its value during execution of current + statement then the variable contains TIMESTAMP_NO_AUTO_SET (i.e. 0). + + Value of this variable is set for each statement in open_table() and + if needed cleared later in statement processing code (see mysql_update() + as example). + */ + timestamp_auto_set_type timestamp_field_type; + table_map map; /* ID bit of table (1,2,4,8,16...) */ + + uint lock_position; /* Position in MYSQL_LOCK.table */ + uint lock_data_start; /* Start pos. in MYSQL_LOCK.locks */ + uint lock_count; /* Number of locks */ + uint tablenr,used_fields; + uint temp_pool_slot; /* Used by intern temp tables */ + uint status; /* What's in record[0] */ + uint db_stat; /* mode of file as in handler.h */ + /* number of select if it is derived table */ + uint derived_select_number; + /* + 0 or JOIN_TYPE_{LEFT|RIGHT}. Currently this is only compared to 0. + If maybe_null !=0, this table is inner w.r.t. some outer join operation, + and null_row may be true. + */ + uint maybe_null; + int current_lock; /* Type of lock on table */ + bool copy_blobs; /* copy_blobs when storing */ + /* + Set if next_number_field is in the UPDATE fields of INSERT ... ON DUPLICATE + KEY UPDATE. + */ + bool next_number_field_updated; + + /* + If true, the current table row is considered to have all columns set to + NULL, including columns declared as "not null" (see maybe_null). + */ + bool null_row; + /* + No rows that contain null values can be placed into this table. + Currently this flag can be set to true only for a temporary table + that used to store the result of materialization of a subquery. + */ + bool no_rows_with_nulls; + /* + This field can contain two bit flags: + CHECK_ROW_FOR_NULLS_TO_REJECT + REJECT_ROW_DUE_TO_NULL_FIELDS + The first flag is set for the dynamic contexts where it is prohibited + to write any null into the table. + The second flag is set only if the first flag is set on. + The informs the outer scope that there was an attept to write null + into a field of the table in the context where it is prohibited. + This flag should be set off as soon as the first flag is set on. + Currently these flags are used only the tables tno_rows_with_nulls set + to true. + */ + uint8 null_catch_flags; + + /* + TODO: Each of the following flags take up 8 bits. They can just as easily + be put into one single unsigned long and instead of taking up 18 + bytes, it would take up 4. + */ + bool force_index; + + /** + Flag set when the statement contains FORCE INDEX FOR ORDER BY + See TABLE_LIST::process_index_hints(). + */ + bool force_index_order; + + /** + Flag set when the statement contains FORCE INDEX FOR GROUP BY + See TABLE_LIST::process_index_hints(). + */ + bool force_index_group; + bool distinct,const_table,no_rows, used_for_duplicate_elimination; + /** + Forces DYNAMIC Aria row format for internal temporary tables. + */ + bool keep_row_order; + + /** + If set, the optimizer has found that row retrieval should access index + tree only. + */ + bool key_read; + bool no_keyread; + bool locked_by_logger; + bool no_replicate; + bool locked_by_name; + bool fulltext_searched; + bool no_cache; + /* To signal that the table is associated with a HANDLER statement */ + bool open_by_handler; + /* + To indicate that a non-null value of the auto_increment field + was provided by the user or retrieved from the current record. + Used only in the MODE_NO_AUTO_VALUE_ON_ZERO mode. + */ + bool auto_increment_field_not_null; + bool insert_or_update; /* Can be used by the handler */ + bool alias_name_used; /* true if table_name is alias */ + bool get_fields_in_item_tree; /* Signal to fix_field */ + bool m_needs_reopen; + bool created; /* For tmp tables. TRUE <=> tmp table was actually created.*/ + + REGINFO reginfo; /* field connections */ + MEM_ROOT mem_root; + GRANT_INFO grant; + FILESORT_INFO sort; + /* + The arena which the items for expressions from the table definition + are associated with. + Currently only the items of the expressions for virtual columns are + associated with this arena. + TODO: To attach the partitioning expressions to this arena. + */ + Query_arena *expr_arena; +#ifdef WITH_PARTITION_STORAGE_ENGINE + partition_info *part_info; /* Partition related information */ + bool no_partitions_used; /* If true, all partitions have been pruned away */ +#endif + uint max_keys; /* Size of allocated key_info array. */ + MDL_ticket *mdl_ticket; + + void init(THD *thd, TABLE_LIST *tl); + bool fill_item_list(List *item_list) const; + void reset_item_list(List *item_list) const; + void clear_column_bitmaps(void); + void prepare_for_position(void); + void mark_columns_used_by_index_no_reset(uint index, MY_BITMAP *map); + void mark_columns_used_by_index(uint index); + void add_read_columns_used_by_index(uint index); + void restore_column_maps_after_mark_index(); + void mark_auto_increment_column(void); + void mark_columns_needed_for_update(void); + void mark_columns_needed_for_delete(void); + void mark_columns_needed_for_insert(void); + bool mark_virtual_col(Field *field); + void mark_virtual_columns_for_write(bool insert_fl); + inline void column_bitmaps_set(MY_BITMAP *read_set_arg, + MY_BITMAP *write_set_arg) + { + read_set= read_set_arg; + write_set= write_set_arg; + if (file) + file->column_bitmaps_signal(); + } + inline void column_bitmaps_set(MY_BITMAP *read_set_arg, + MY_BITMAP *write_set_arg, + MY_BITMAP *vcol_set_arg) + { + read_set= read_set_arg; + write_set= write_set_arg; + vcol_set= vcol_set_arg; + if (file) + file->column_bitmaps_signal(); + } + inline void column_bitmaps_set_no_signal(MY_BITMAP *read_set_arg, + MY_BITMAP *write_set_arg) + { + read_set= read_set_arg; + write_set= write_set_arg; + } + inline void column_bitmaps_set_no_signal(MY_BITMAP *read_set_arg, + MY_BITMAP *write_set_arg, + MY_BITMAP *vcol_set_arg) + { + read_set= read_set_arg; + write_set= write_set_arg; + vcol_set= vcol_set_arg; + } + inline void use_all_columns() + { + column_bitmaps_set(&s->all_set, &s->all_set); + } + inline void default_column_bitmaps() + { + read_set= &def_read_set; + write_set= &def_write_set; + vcol_set= &def_vcol_set; + } + /** Should this instance of the table be reopened? */ + inline bool needs_reopen() + { return !db_stat || m_needs_reopen; } + + bool alloc_keys(uint key_count); + bool check_tmp_key(uint key, uint key_parts, + uint (*next_field_no) (uchar *), uchar *arg); + bool add_tmp_key(uint key, uint key_parts, + uint (*next_field_no) (uchar *), uchar *arg, + bool unique); + void create_key_part_by_field(KEY_PART_INFO *key_part_info, + Field *field, uint fieldnr); + void use_index(int key_to_save); + void set_table_map(table_map map_arg, uint tablenr_arg) + { + map= map_arg; + tablenr= tablenr_arg; + } + inline void enable_keyread() + { + DBUG_ENTER("enable_keyread"); + DBUG_ASSERT(key_read == 0); + key_read= 1; + file->extra(HA_EXTRA_KEYREAD); + DBUG_VOID_RETURN; + } + /* + Returns TRUE if the table is filled at execution phase (and so, the + optimizer must not do anything that depends on the contents of the table, + like range analysis or constant table detection) + */ + bool is_filled_at_execution(); + inline void disable_keyread() + { + DBUG_ENTER("disable_keyread"); + if (key_read) + { + key_read= 0; + file->extra(HA_EXTRA_NO_KEYREAD); + } + DBUG_VOID_RETURN; + } + + bool update_const_key_parts(COND *conds); + uint actual_n_key_parts(KEY *keyinfo); + ulong actual_key_flags(KEY *keyinfo); +}; + + +/** + Helper class which specifies which members of TABLE are used for + participation in the list of used/unused TABLE objects for the share. +*/ + +struct TABLE_share +{ + static inline TABLE **next_ptr(TABLE *l) + { + return &l->share_next; + } + static inline TABLE ***prev_ptr(TABLE *l) + { + return &l->share_prev; + } +}; + + +enum enum_schema_table_state +{ + NOT_PROCESSED= 0, + PROCESSED_BY_CREATE_SORT_INDEX, + PROCESSED_BY_JOIN_EXEC +}; + +typedef struct st_foreign_key_info +{ + LEX_STRING *foreign_id; + LEX_STRING *foreign_db; + LEX_STRING *foreign_table; + LEX_STRING *referenced_db; + LEX_STRING *referenced_table; + LEX_STRING *update_method; + LEX_STRING *delete_method; + LEX_STRING *referenced_key_name; + List foreign_fields; + List referenced_fields; +} FOREIGN_KEY_INFO; + +#define MY_I_S_MAYBE_NULL 1 +#define MY_I_S_UNSIGNED 2 + + +#define SKIP_OPEN_TABLE 0 // do not open table +#define OPEN_FRM_ONLY 1 // open FRM file only +#define OPEN_FULL_TABLE 2 // open FRM,MYD, MYI files + +typedef struct st_field_info +{ + /** + This is used as column name. + */ + const char* field_name; + /** + For string-type columns, this is the maximum number of + characters. Otherwise, it is the 'display-length' for the column. + */ + uint field_length; + /** + This denotes data type for the column. For the most part, there seems to + be one entry in the enum for each SQL data type, although there seem to + be a number of additional entries in the enum. + */ + enum enum_field_types field_type; + int value; + /** + This is used to set column attributes. By default, columns are @c NOT + @c NULL and @c SIGNED, and you can deviate from the default + by setting the appopriate flags. You can use either one of the flags + @c MY_I_S_MAYBE_NULL and @cMY_I_S_UNSIGNED or + combine them using the bitwise or operator @c |. Both flags are + defined in table.h. + */ + uint field_flags; // Field atributes(maybe_null, signed, unsigned etc.) + const char* old_name; + /** + This should be one of @c SKIP_OPEN_TABLE, + @c OPEN_FRM_ONLY or @c OPEN_FULL_TABLE. + */ + uint open_method; +} ST_FIELD_INFO; + + +struct TABLE_LIST; +typedef class Item COND; + +typedef struct st_schema_table +{ + const char* table_name; + ST_FIELD_INFO *fields_info; + /* Create information_schema table */ + TABLE *(*create_table) (THD *thd, TABLE_LIST *table_list); + /* Fill table with data */ + int (*fill_table) (THD *thd, TABLE_LIST *tables, COND *cond); + /* Handle fileds for old SHOW */ + int (*old_format) (THD *thd, struct st_schema_table *schema_table); + int (*process_table) (THD *thd, TABLE_LIST *tables, TABLE *table, + bool res, LEX_STRING *db_name, LEX_STRING *table_name); + int idx_field1, idx_field2; + bool hidden; + uint i_s_requested_object; /* the object we need to open(TABLE | VIEW) */ +} ST_SCHEMA_TABLE; + + +/* + Types of derived tables. The ending part is a bitmap of phases that are + applicable to a derived table of the type. +*/ +#define DTYPE_ALGORITHM_UNDEFINED 0 +#define DTYPE_VIEW 1 +#define DTYPE_TABLE 2 +#define DTYPE_MERGE 4 +#define DTYPE_MATERIALIZE 8 +#define DTYPE_MULTITABLE 16 +#define DTYPE_MASK 19 + +/* + Phases of derived tables/views handling, see sql_derived.cc + Values are used as parts of a bitmap attached to derived table types. +*/ +#define DT_INIT 1 +#define DT_PREPARE 2 +#define DT_OPTIMIZE 4 +#define DT_MERGE 8 +#define DT_MERGE_FOR_INSERT 16 +#define DT_CREATE 32 +#define DT_FILL 64 +#define DT_REINIT 128 +#define DT_PHASES 8 +/* Phases that are applicable to all derived tables. */ +#define DT_COMMON (DT_INIT + DT_PREPARE + DT_REINIT + DT_OPTIMIZE) +/* Phases that are applicable only to materialized derived tables. */ +#define DT_MATERIALIZE (DT_CREATE + DT_FILL) + +#define DT_PHASES_MERGE (DT_COMMON | DT_MERGE | DT_MERGE_FOR_INSERT) +#define DT_PHASES_MATERIALIZE (DT_COMMON | DT_MATERIALIZE) + +#define VIEW_ALGORITHM_UNDEFINED 0 +/* Special value for ALTER VIEW: inherit original algorithm. */ +#define VIEW_ALGORITHM_INHERIT DTYPE_VIEW +#define VIEW_ALGORITHM_MERGE (DTYPE_VIEW | DTYPE_MERGE) +#define VIEW_ALGORITHM_TMPTABLE (DTYPE_VIEW | DTYPE_MATERIALIZE) + +/* + View algorithm values as stored in the FRM. Values differ from in-memory + representation for backward compatibility. +*/ + +#define VIEW_ALGORITHM_UNDEFINED_FRM 0 +#define VIEW_ALGORITHM_MERGE_FRM 1 +#define VIEW_ALGORITHM_TMPTABLE_FRM 2 + +#define JOIN_TYPE_LEFT 1 +#define JOIN_TYPE_RIGHT 2 +#define JOIN_TYPE_OUTER 4 /* Marker that this is an outer join */ + +#define VIEW_SUID_INVOKER 0 +#define VIEW_SUID_DEFINER 1 +#define VIEW_SUID_DEFAULT 2 + +/* view WITH CHECK OPTION parameter options */ +#define VIEW_CHECK_NONE 0 +#define VIEW_CHECK_LOCAL 1 +#define VIEW_CHECK_CASCADED 2 + +/* result of view WITH CHECK OPTION parameter check */ +#define VIEW_CHECK_OK 0 +#define VIEW_CHECK_ERROR 1 +#define VIEW_CHECK_SKIP 2 + +/** The threshold size a blob field buffer before it is freed */ +#define MAX_TDC_BLOB_SIZE 65536 + +class select_union; +class TMP_TABLE_PARAM; + +Item *create_view_field(THD *thd, TABLE_LIST *view, Item **field_ref, + const char *name); + +struct Field_translator +{ + Item *item; + const char *name; +}; + + +/* + Column reference of a NATURAL/USING join. Since column references in + joins can be both from views and stored tables, may point to either a + Field (for tables), or a Field_translator (for views). +*/ + +class Natural_join_column: public Sql_alloc +{ +public: + Field_translator *view_field; /* Column reference of merge view. */ + Item_field *table_field; /* Column reference of table or temp view. */ + TABLE_LIST *table_ref; /* Original base table/view reference. */ + /* + True if a common join column of two NATURAL/USING join operands. Notice + that when we have a hierarchy of nested NATURAL/USING joins, a column can + be common at some level of nesting but it may not be common at higher + levels of nesting. Thus this flag may change depending on at which level + we are looking at some column. + */ + bool is_common; +public: + Natural_join_column(Field_translator *field_param, TABLE_LIST *tab); + Natural_join_column(Item_field *field_param, TABLE_LIST *tab); + const char *name(); + Item *create_item(THD *thd); + Field *field(); + const char *table_name(); + const char *db_name(); + GRANT_INFO *grant(); +}; + + +/** + Type of table which can be open for an element of table list. +*/ + +enum enum_open_type +{ + OT_TEMPORARY_OR_BASE= 0, OT_TEMPORARY_ONLY, OT_BASE_ONLY +}; + + +class SJ_MATERIALIZATION_INFO; +class Index_hint; +class Item_in_subselect; + + +/* + Table reference in the FROM clause. + + These table references can be of several types that correspond to + different SQL elements. Below we list all types of TABLE_LISTs with + the necessary conditions to determine when a TABLE_LIST instance + belongs to a certain type. + + 1) table (TABLE_LIST::view == NULL) + - base table + (TABLE_LIST::derived == NULL) + - FROM-clause subquery - TABLE_LIST::table is a temp table + (TABLE_LIST::derived != NULL) + - information schema table + (TABLE_LIST::schema_table != NULL) + NOTICE: for schema tables TABLE_LIST::field_translation may be != NULL + 2) view (TABLE_LIST::view != NULL) + - merge (TABLE_LIST::effective_algorithm == VIEW_ALGORITHM_MERGE) + also (TABLE_LIST::field_translation != NULL) + - tmptable (TABLE_LIST::effective_algorithm == VIEW_ALGORITHM_TMPTABLE) + also (TABLE_LIST::field_translation == NULL) + 2.5) TODO: Add derived tables description here + 3) nested table reference (TABLE_LIST::nested_join != NULL) + - table sequence - e.g. (t1, t2, t3) + TODO: how to distinguish from a JOIN? + - general JOIN + TODO: how to distinguish from a table sequence? + - NATURAL JOIN + (TABLE_LIST::natural_join != NULL) + - JOIN ... USING + (TABLE_LIST::join_using_fields != NULL) + - semi-join nest (sj_on_expr!= NULL && sj_subq_pred!=NULL) + 4) jtbm semi-join (jtbm_subselect != NULL) +*/ + +struct LEX; +class Index_hint; +struct TABLE_LIST +{ + TABLE_LIST() {} /* Remove gcc warning */ + + /** + Prepare TABLE_LIST that consists of one table instance to use in + simple_open_and_lock_tables + */ + inline void init_one_table(const char *db_name_arg, + size_t db_length_arg, + const char *table_name_arg, + size_t table_name_length_arg, + const char *alias_arg, + enum thr_lock_type lock_type_arg) + { + bzero((char*) this, sizeof(*this)); + db= (char*) db_name_arg; + db_length= db_length_arg; + table_name= (char*) table_name_arg; + table_name_length= table_name_length_arg; + alias= (char*) (alias_arg ? alias_arg : table_name_arg); + lock_type= lock_type_arg; + mdl_request.init(MDL_key::TABLE, db, table_name, + (lock_type >= TL_WRITE_ALLOW_WRITE) ? + MDL_SHARED_WRITE : MDL_SHARED_READ, + MDL_TRANSACTION); + } + + /* + List of tables local to a subquery (used by SQL_I_List). Considers + views as leaves (unlike 'next_leaf' below). Created at parse time + in st_select_lex::add_table_to_list() -> table_list.link_in_list(). + */ + TABLE_LIST *next_local; + /* link in a global list of all queries tables */ + TABLE_LIST *next_global, **prev_global; + char *db, *alias, *table_name, *schema_table_name; + char *option; /* Used by cache index */ + Item *on_expr; /* Used with outer join */ + Name_resolution_context *on_context; /* For ON expressions */ + + Item *sj_on_expr; + /* + (Valid only for semi-join nests) Bitmap of tables that are within the + semi-join (this is different from bitmap of all nest's children because + tables that were pulled out of the semi-join nest remain listed as + nest's children). + */ + table_map sj_inner_tables; + /* Number of IN-compared expressions */ + uint sj_in_exprs; + + /* If this is a non-jtbm semi-join nest: corresponding subselect predicate */ + Item_in_subselect *sj_subq_pred; + + table_map original_subq_pred_used_tables; + + /* If this is a jtbm semi-join object: corresponding subselect predicate */ + Item_in_subselect *jtbm_subselect; + /* TODO: check if this can be joined with tablenr_exec */ + uint jtbm_table_no; + + SJ_MATERIALIZATION_INFO *sj_mat_info; + + /* + The structure of ON expression presented in the member above + can be changed during certain optimizations. This member + contains a snapshot of AND-OR structure of the ON expression + made after permanent transformations of the parse tree, and is + used to restore ON clause before every reexecution of a prepared + statement or stored procedure. + */ + Item *prep_on_expr; + COND_EQUAL *cond_equal; /* Used with outer join */ + /* + During parsing - left operand of NATURAL/USING join where 'this' is + the right operand. After parsing (this->natural_join == this) iff + 'this' represents a NATURAL or USING join operation. Thus after + parsing 'this' is a NATURAL/USING join iff (natural_join != NULL). + */ + TABLE_LIST *natural_join; + /* + True if 'this' represents a nested join that is a NATURAL JOIN. + For one of the operands of 'this', the member 'natural_join' points + to the other operand of 'this'. + */ + bool is_natural_join; + /* Field names in a USING clause for JOIN ... USING. */ + List *join_using_fields; + /* + Explicitly store the result columns of either a NATURAL/USING join or + an operand of such a join. + */ + List *join_columns; + /* TRUE if join_columns contains all columns of this table reference. */ + bool is_join_columns_complete; + + /* + List of nodes in a nested join tree, that should be considered as + leaves with respect to name resolution. The leaves are: views, + top-most nodes representing NATURAL/USING joins, subqueries, and + base tables. All of these TABLE_LIST instances contain a + materialized list of columns. The list is local to a subquery. + */ + TABLE_LIST *next_name_resolution_table; + /* Index names in a "... JOIN ... USE/IGNORE INDEX ..." clause. */ + List *index_hints; + TABLE *table; /* opened table */ + uint table_id; /* table id (from binlog) for opened table */ + /* + select_result for derived table to pass it from table creation to table + filling procedure + */ + select_union *derived_result; + /* Stub used for materialized derived tables. */ + table_map map; /* ID bit of table (1,2,4,8,16...) */ + table_map get_map() + { + return jtbm_subselect? table_map(1) << jtbm_table_no : table->map; + } + uint get_tablenr() + { + return jtbm_subselect? jtbm_table_no : table->tablenr; + } + void set_tablenr(uint new_tablenr) + { + if (jtbm_subselect) + { + jtbm_table_no= new_tablenr; + } + if (table) + { + table->tablenr= new_tablenr; + table->map= table_map(1) << new_tablenr; + } + } + /* + Reference from aux_tables to local list entry of main select of + multi-delete statement: + delete t1 from t2,t1 where t1.a<'B' and t2.b=t1.b; + here it will be reference of first occurrence of t1 to second (as you + can see this lists can't be merged) + */ + TABLE_LIST *correspondent_table; + /** + @brief Normally, this field is non-null for anonymous derived tables only. + + @details This field is set to non-null for + + - Anonymous derived tables, In this case it points to the SELECT_LEX_UNIT + representing the derived table. E.g. for a query + + @verbatim SELECT * FROM (SELECT a FROM t1) b @endverbatim + + For the @c TABLE_LIST representing the derived table @c b, @c derived + points to the SELECT_LEX_UNIT representing the result of the query within + parenteses. + + - Views. This is set for views with @verbatim ALGORITHM = TEMPTABLE + @endverbatim by mysql_make_view(). + + @note Inside views, a subquery in the @c FROM clause is not allowed. + @note Do not use this field to separate views/base tables/anonymous + derived tables. Use TABLE_LIST::is_anonymous_derived_table(). + */ + st_select_lex_unit *derived; /* SELECT_LEX_UNIT of derived table */ + ST_SCHEMA_TABLE *schema_table; /* Information_schema table */ + st_select_lex *schema_select_lex; + /* + True when the view field translation table is used to convert + schema table fields for backwards compatibility with SHOW command. + */ + bool schema_table_reformed; + TMP_TABLE_PARAM *schema_table_param; + /* link to select_lex where this table was used */ + st_select_lex *select_lex; + LEX *view; /* link on VIEW lex for merging */ + Field_translator *field_translation; /* array of VIEW fields */ + /* pointer to element after last one in translation table above */ + Field_translator *field_translation_end; + bool field_translation_updated; + /* + List (based on next_local) of underlying tables of this view. I.e. it + does not include the tables of subqueries used in the view. Is set only + for merged views. + */ + TABLE_LIST *merge_underlying_list; + /* + - 0 for base tables + - in case of the view it is the list of all (not only underlying + tables but also used in subquery ones) tables of the view. + */ + List *view_tables; + /* most upper view this table belongs to */ + TABLE_LIST *belong_to_view; + /* A derived table this table belongs to */ + TABLE_LIST *belong_to_derived; + /* + The view directly referencing this table + (non-zero only for merged underlying tables of a view). + */ + TABLE_LIST *referencing_view; + + table_map view_used_tables; + table_map map_exec; + /* TODO: check if this can be joined with jtbm_table_no */ + uint tablenr_exec; + uint maybe_null_exec; + + /* Ptr to parent MERGE table list item. See top comment in ha_myisammrg.cc */ + TABLE_LIST *parent_l; + /* + Security context (non-zero only for tables which belong + to view with SQL SECURITY DEFINER) + */ + Security_context *security_ctx; + /* + This view security context (non-zero only for views with + SQL SECURITY DEFINER) + */ + Security_context *view_sctx; + bool allowed_show; + Item *where; /* VIEW WHERE clause condition */ + Item *check_option; /* WITH CHECK OPTION condition */ + LEX_STRING select_stmt; /* text of (CREATE/SELECT) statement */ + LEX_STRING md5; /* md5 of query text */ + LEX_STRING source; /* source of CREATE VIEW */ + LEX_STRING view_db; /* saved view database */ + LEX_STRING view_name; /* saved view name */ + LEX_STRING timestamp; /* GMT time stamp of last operation */ + st_lex_user definer; /* definer of view */ + ulonglong file_version; /* version of file's field set */ + ulonglong mariadb_version; /* version of server on creation */ + ulonglong updatable_view; /* VIEW can be updated */ + /** + @brief The declared algorithm, if this is a view. + @details One of + - VIEW_ALGORITHM_UNDEFINED + - VIEW_ALGORITHM_TMPTABLE + - VIEW_ALGORITHM_MERGE + @to do Replace with an enum + */ + ulonglong algorithm; + ulonglong view_suid; /* view is suid (TRUE dy default) */ + ulonglong with_check; /* WITH CHECK OPTION */ + /* + effective value of WITH CHECK OPTION (differ for temporary table + algorithm) + */ + uint8 effective_with_check; + /** + @brief The view algorithm that is actually used, if this is a view. + @details One of + - VIEW_ALGORITHM_UNDEFINED + - VIEW_ALGORITHM_TMPTABLE + - VIEW_ALGORITHM_MERGE + @to do Replace with an enum + */ + uint8 derived_type; + GRANT_INFO grant; + /* data need by some engines in query cache*/ + ulonglong engine_data; + /* call back function for asking handler about caching in query cache */ + qc_engine_callback callback_func; + thr_lock_type lock_type; + uint outer_join; /* Which join type */ + uint shared; /* Used in multi-upd */ + size_t db_length; + size_t table_name_length; + bool updatable; /* VIEW/TABLE can be updated now */ + bool straight; /* optimize with prev table */ + bool updating; /* for replicate-do/ignore table */ + bool force_index; /* prefer index over table scan */ + bool ignore_leaves; /* preload only non-leaf nodes */ + table_map dep_tables; /* tables the table depends on */ + table_map on_expr_dep_tables; /* tables on expression depends on */ + struct st_nested_join *nested_join; /* if the element is a nested join */ + TABLE_LIST *embedding; /* nested join containing the table */ + List *join_list;/* join list the table belongs to */ + bool lifted; /* set to true when the table is moved to + the upper level at the parsing stage */ + bool cacheable_table; /* stop PS caching */ + /* used in multi-upd/views privilege check */ + bool table_in_first_from_clause; + /** + Specifies which kind of table should be open for this element + of table list. + */ + enum enum_open_type open_type; + /* TRUE if this merged view contain auto_increment field */ + bool contain_auto_increment; + bool compact_view_format; /* Use compact format for SHOW CREATE VIEW */ + /* view where processed */ + bool where_processed; + /* TRUE <=> VIEW CHECK OPTION expression has been processed */ + bool check_option_processed; + /* FRMTYPE_ERROR if any type is acceptable */ + enum frm_type_enum required_type; + handlerton *db_type; /* table_type for handler */ + char timestamp_buffer[20]; /* buffer for timestamp (19+1) */ + /* + This TABLE_LIST object is just placeholder for prelocking, it will be + used for implicit LOCK TABLES only and won't be used in real statement. + */ + bool prelocking_placeholder; + /** + Indicates that if TABLE_LIST object corresponds to the table/view + which requires special handling. + */ + enum + { + /* Normal open. */ + OPEN_NORMAL= 0, + /* Associate a table share only if the the table exists. */ + OPEN_IF_EXISTS, + /* Don't associate a table share. */ + OPEN_STUB + } open_strategy; + /* For transactional locking. */ + int lock_timeout; /* NOWAIT or WAIT [X] */ + bool lock_transactional; /* If transactional lock requested. */ + bool internal_tmp_table; + /** TRUE if an alias for this table was specified in the SQL. */ + bool is_alias; + /** TRUE if the table is referred to in the statement using a fully + qualified name (.). + */ + bool is_fqtn; + + bool deleting; /* going to delete this table */ + + /* TRUE <=> derived table should be filled right after optimization. */ + bool fill_me; + /* TRUE <=> view/DT is merged. */ + /* TODO: replace with derived_type */ + bool merged; + bool merged_for_insert; + /* TRUE <=> don't prepare this derived table/view as it should be merged.*/ + bool skip_prepare_derived; + + /* + Items created by create_view_field and collected to change them in case + of materialization of the view/derived table + */ + List used_items; + /* Sublist (tail) of persistent used_items */ + List persistent_used_items; + Item **materialized_items; + + /* View creation context. */ + + View_creation_ctx *view_creation_ctx; + + /* + Attributes to save/load view creation context in/from frm-file. + + Ther are required only to be able to use existing parser to load + view-definition file. As soon as the parser parsed the file, view + creation context is initialized and the attributes become redundant. + + These attributes MUST NOT be used for any purposes but the parsing. + */ + + LEX_STRING view_client_cs_name; + LEX_STRING view_connection_cl_name; + + /* + View definition (SELECT-statement) in the UTF-form. + */ + + LEX_STRING view_body_utf8; + + /* End of view definition context. */ + + /** + Indicates what triggers we need to pre-load for this TABLE_LIST + when opening an associated TABLE. This is filled after + the parsed tree is created. + */ + uint8 trg_event_map; + /* TRUE <=> this table is a const one and was optimized away. */ + bool optimized_away; + + uint i_s_requested_object; + bool has_db_lookup_value; + bool has_table_lookup_value; + uint table_open_method; + enum enum_schema_table_state schema_table_state; + + MDL_request mdl_request; + + void calc_md5(char *buffer); + int view_check_option(THD *thd, bool ignore_failure); + bool create_field_translation(THD *thd); + bool setup_underlying(THD *thd); + void cleanup_items(); + bool placeholder() + { + return derived || view || schema_table || !table; + } + void print(THD *thd, table_map eliminated_tables, String *str, + enum_query_type query_type); + bool check_single_table(TABLE_LIST **table, table_map map, + TABLE_LIST *view); + bool set_insert_values(MEM_ROOT *mem_root); + void hide_view_error(THD *thd); + TABLE_LIST *find_underlying_table(TABLE *table); + TABLE_LIST *first_leaf_for_name_resolution(); + TABLE_LIST *last_leaf_for_name_resolution(); + /** + @brief + Find the bottom in the chain of embedded table VIEWs. + + @detail + This is used for single-table UPDATE/DELETE when they are modifying a + single-table VIEW. + */ + TABLE_LIST *find_table_for_update() + { + TABLE_LIST *tbl= this; + while(!tbl->is_multitable() && tbl->single_table_updatable() && + tbl->merge_underlying_list) + { + tbl= tbl->merge_underlying_list; + } + return tbl; + } + TABLE *get_real_join_table(); + bool is_leaf_for_name_resolution(); + inline TABLE_LIST *top_table() + { return belong_to_view ? belong_to_view : this; } + inline bool prepare_check_option(THD *thd) + { + bool res= FALSE; + if (effective_with_check) + res= prep_check_option(thd, effective_with_check); + return res; + } + inline bool prepare_where(THD *thd, Item **conds, + bool no_where_clause) + { + if (!view || is_merged_derived()) + return prep_where(thd, conds, no_where_clause); + return FALSE; + } + + void register_want_access(ulong want_access); + bool prepare_security(THD *thd); +#ifndef NO_EMBEDDED_ACCESS_CHECKS + Security_context *find_view_security_context(THD *thd); + bool prepare_view_securety_context(THD *thd); +#endif + /* + Cleanup for re-execution in a prepared statement or a stored + procedure. + */ + void reinit_before_use(THD *thd); + Item_subselect *containing_subselect(); + + /* + Compiles the tagged hints list and fills up TABLE::keys_in_use_for_query, + TABLE::keys_in_use_for_group_by, TABLE::keys_in_use_for_order_by, + TABLE::force_index and TABLE::covering_keys. + */ + bool process_index_hints(TABLE *table); + + /** + Compare the version of metadata from the previous execution + (if any) with values obtained from the current table + definition cache element. + + @sa check_and_update_table_version() + */ + inline + bool is_table_ref_id_equal(TABLE_SHARE *s) const + { + return (m_table_ref_type == s->get_table_ref_type() && + m_table_ref_version == s->get_table_ref_version()); + } + + /** + Record the value of metadata version of the corresponding + table definition cache element in this parse tree node. + + @sa check_and_update_table_version() + */ + inline + void set_table_ref_id(TABLE_SHARE *s) + { set_table_ref_id(s->get_table_ref_type(), s->get_table_ref_version()); } + + inline + void set_table_ref_id(enum_table_ref_type table_ref_type_arg, + ulong table_ref_version_arg) + { + m_table_ref_type= table_ref_type_arg; + m_table_ref_version= table_ref_version_arg; + } + + /* Set of functions returning/setting state of a derived table/view. */ + inline bool is_non_derived() + { + return (!derived_type); + } + inline bool is_view_or_derived() + { + return (derived_type); + } + inline bool is_view() + { + return (derived_type & DTYPE_VIEW); + } + inline bool is_derived() + { + return (derived_type & DTYPE_TABLE); + } + inline void set_view() + { + derived_type= DTYPE_VIEW; + } + inline void set_derived() + { + derived_type= DTYPE_TABLE; + } + inline bool is_merged_derived() + { + return (derived_type & DTYPE_MERGE); + } + inline void set_merged_derived() + { + DBUG_ENTER("set_merged_derived"); + DBUG_PRINT("enter", ("Alias: '%s' Unit: %p", + (alias ? alias : ""), + get_unit())); + derived_type= ((derived_type & DTYPE_MASK) | + DTYPE_TABLE | DTYPE_MERGE); + set_check_merged(); + DBUG_VOID_RETURN; + } + inline bool is_materialized_derived() + { + return (derived_type & DTYPE_MATERIALIZE); + } + void set_materialized_derived() + { + DBUG_ENTER("set_materialized_derived"); + DBUG_PRINT("enter", ("Alias: '%s' Unit: %p", + (alias ? alias : ""), + get_unit())); + derived= get_unit(); + derived_type= ((derived_type & (derived ? DTYPE_MASK : DTYPE_VIEW)) | + DTYPE_TABLE | DTYPE_MATERIALIZE); + set_check_materialized(); + DBUG_VOID_RETURN; + } + inline bool is_multitable() + { + return (derived_type & DTYPE_MULTITABLE); + } + inline void set_multitable() + { + derived_type|= DTYPE_MULTITABLE; + } + void reset_const_table(); + bool handle_derived(LEX *lex, uint phases); + + /** + @brief True if this TABLE_LIST represents an anonymous derived table, + i.e. the result of a subquery. + */ + bool is_anonymous_derived_table() const { return derived && !view; } + + /** + @brief Returns the name of the database that the referenced table belongs + to. + */ + char *get_db_name() { return view != NULL ? view_db.str : db; } + + /** + @brief Returns the name of the table that this TABLE_LIST represents. + + @details The unqualified table name or view name for a table or view, + respectively. + */ + char *get_table_name() { return view != NULL ? view_name.str : table_name; } + bool is_active_sjm(); + bool is_jtbm() { return test(jtbm_subselect!=NULL); } + st_select_lex_unit *get_unit(); + st_select_lex *get_single_select(); + void wrap_into_nested_join(List &join_list); + bool init_derived(THD *thd, bool init_view); + int fetch_number_of_rows(); + bool change_refs_to_fields(); + + bool single_table_updatable(); + + bool is_inner_table_of_outer_join() + { + for (TABLE_LIST *tbl= this; tbl; tbl= tbl->embedding) + { + if (tbl->outer_join) + return true; + } + return false; + } + void set_lock_type(THD* thd, enum thr_lock_type lock); + + void remove_join_columns() + { + if (join_columns) + { + join_columns->empty(); + join_columns= NULL; + is_join_columns_complete= FALSE; + } + } + +private: + bool prep_check_option(THD *thd, uint8 check_opt_type); + bool prep_where(THD *thd, Item **conds, bool no_where_clause); + void set_check_materialized(); +#ifndef DBUG_OFF + void set_check_merged(); +#else + inline void set_check_merged() {} +#endif + /** See comments for set_metadata_id() */ + enum enum_table_ref_type m_table_ref_type; + /** See comments for set_metadata_id() */ + ulong m_table_ref_version; +}; + +class Item; + +/* + Iterator over the fields of a generic table reference. +*/ + +class Field_iterator: public Sql_alloc +{ +public: + Field_iterator() {} /* Remove gcc warning */ + virtual ~Field_iterator() {} + virtual void set(TABLE_LIST *)= 0; + virtual void next()= 0; + virtual bool end_of_fields()= 0; /* Return 1 at end of list */ + virtual const char *name()= 0; + virtual Item *create_item(THD *)= 0; + virtual Field *field()= 0; +}; + + +/* + Iterator over the fields of a base table, view with temporary + table, or subquery. +*/ + +class Field_iterator_table: public Field_iterator +{ + Field **ptr; +public: + Field_iterator_table() :ptr(0) {} + void set(TABLE_LIST *table) { ptr= table->table->field; } + void set_table(TABLE *table) { ptr= table->field; } + void next() { ptr++; } + bool end_of_fields() { return *ptr == 0; } + const char *name(); + Item *create_item(THD *thd); + Field *field() { return *ptr; } +}; + + +/* Iterator over the fields of a merge view. */ + +class Field_iterator_view: public Field_iterator +{ + Field_translator *ptr, *array_end; + TABLE_LIST *view; +public: + Field_iterator_view() :ptr(0), array_end(0) {} + void set(TABLE_LIST *table); + void next() { ptr++; } + bool end_of_fields() { return ptr == array_end; } + const char *name(); + Item *create_item(THD *thd); + Item **item_ptr() {return &ptr->item; } + Field *field() { return 0; } + inline Item *item() { return ptr->item; } + Field_translator *field_translator() { return ptr; } +}; + + +/* + Field_iterator interface to the list of materialized fields of a + NATURAL/USING join. +*/ + +class Field_iterator_natural_join: public Field_iterator +{ + List_iterator_fast column_ref_it; + Natural_join_column *cur_column_ref; +public: + Field_iterator_natural_join() :cur_column_ref(NULL) {} + ~Field_iterator_natural_join() {} + void set(TABLE_LIST *table); + void next(); + bool end_of_fields() { return !cur_column_ref; } + const char *name() { return cur_column_ref->name(); } + Item *create_item(THD *thd) { return cur_column_ref->create_item(thd); } + Field *field() { return cur_column_ref->field(); } + Natural_join_column *column_ref() { return cur_column_ref; } +}; + + +/* + Generic iterator over the fields of an arbitrary table reference. + + DESCRIPTION + This class unifies the various ways of iterating over the columns + of a table reference depending on the type of SQL entity it + represents. If such an entity represents a nested table reference, + this iterator encapsulates the iteration over the columns of the + members of the table reference. + + IMPLEMENTATION + The implementation assumes that all underlying NATURAL/USING table + references already contain their result columns and are linked into + the list TABLE_LIST::next_name_resolution_table. +*/ + +class Field_iterator_table_ref: public Field_iterator +{ + TABLE_LIST *table_ref, *first_leaf, *last_leaf; + Field_iterator_table table_field_it; + Field_iterator_view view_field_it; + Field_iterator_natural_join natural_join_it; + Field_iterator *field_it; + void set_field_iterator(); +public: + Field_iterator_table_ref() :field_it(NULL) {} + void set(TABLE_LIST *table); + void next(); + bool end_of_fields() + { return (table_ref == last_leaf && field_it->end_of_fields()); } + const char *name() { return field_it->name(); } + const char *get_table_name(); + const char *get_db_name(); + GRANT_INFO *grant(); + Item *create_item(THD *thd) { return field_it->create_item(thd); } + Field *field() { return field_it->field(); } + Natural_join_column *get_or_create_column_ref(THD *thd, TABLE_LIST *parent_table_ref); + Natural_join_column *get_natural_column_ref(); +}; + + +#define JOIN_OP_NEST 1 +#define REBALANCED_NEST 2 + +typedef struct st_nested_join +{ + List join_list; /* list of elements in the nested join */ + /* + Currently the valid values for nest type are: + JOIN_OP_NEST - for nest created for JOIN operation used as an operand in + a join expression, contains 2 elements; + JOIN_OP_NEST | REBALANCED_NEST - nest created after tree re-balancing + in st_select_lex::add_cross_joined_table(), contains 1 element; + 0 - for all other nests. + Examples: + 1. SELECT * FROM t1 JOIN t2 LEFT JOIN t3 ON t2.a=t3.a; + Here the nest created for LEFT JOIN at first has nest_type==JOIN_OP_NEST. + After re-balancing in st_select_lex::add_cross_joined_table() this nest + has nest_type==JOIN_OP_NEST | REBALANCED_NEST. The nest for JOIN created + in st_select_lex::add_cross_joined_table() has nest_type== JOIN_OP_NEST. + 2. SELECT * FROM t1 JOIN (t2 LEFT JOIN t3 ON t2.a=t3.a) + Here the nest created for LEFT JOIN has nest_type==0, because it's not + an operand in a join expression. The nest created for JOIN has nest_type + set to JOIN_OP_NEST. + */ + uint nest_type; + /* + Bitmap of tables within this nested join (including those embedded within + its children), including tables removed by table elimination. + */ + table_map used_tables; + table_map not_null_tables; /* tables that rejects nulls */ + /** + Used for pointing out the first table in the plan being covered by this + join nest. It is used exclusively within make_outerjoin_info(). + */ + struct st_join_table *first_nested; + /* + Used to count tables in the nested join in 2 isolated places: + 1. In make_outerjoin_info(). + 2. check_interleaving_with_nj/restore_prev_nj_state (these are called + by the join optimizer. + Before each use the counters are zeroed by reset_nj_counters. + */ + uint counter; + /* + Number of elements in join_list that were not (or contain table(s) that + weren't) removed by table elimination. + */ + uint n_tables; + nested_join_map nj_map; /* Bit used to identify this nested join*/ + /* + (Valid only for semi-join nests) Bitmap of tables outside the semi-join + that are used within the semi-join's ON condition. + */ + table_map sj_depends_on; + /* Outer non-trivially correlated tables */ + table_map sj_corr_tables; + List sj_outer_expr_list; + /** + True if this join nest node is completely covered by the query execution + plan. This means two things. + + 1. All tables on its @c join_list are covered by the plan. + + 2. All child join nest nodes are fully covered. + */ + bool is_fully_covered() const { return n_tables == counter; } +} NESTED_JOIN; + + +typedef struct st_changed_table_list +{ + struct st_changed_table_list *next; + char *key; + uint32 key_length; +} CHANGED_TABLE_LIST; + + +typedef struct st_open_table_list{ + struct st_open_table_list *next; + char *db,*table; + uint32 in_use,locked; +} OPEN_TABLE_LIST; + + +static inline my_bitmap_map *tmp_use_all_columns(TABLE *table, + MY_BITMAP *bitmap) +{ + my_bitmap_map *old= bitmap->bitmap; + bitmap->bitmap= table->s->all_set.bitmap; + return old; +} + + +static inline void tmp_restore_column_map(MY_BITMAP *bitmap, + my_bitmap_map *old) +{ + bitmap->bitmap= old; +} + +/* The following is only needed for debugging */ + +static inline my_bitmap_map *dbug_tmp_use_all_columns(TABLE *table, + MY_BITMAP *bitmap) +{ +#ifndef DBUG_OFF + return tmp_use_all_columns(table, bitmap); +#else + return 0; +#endif +} + +static inline void dbug_tmp_restore_column_map(MY_BITMAP *bitmap, + my_bitmap_map *old) +{ +#ifndef DBUG_OFF + tmp_restore_column_map(bitmap, old); +#endif +} + + +/* + Variant of the above : handle both read and write sets. + Provide for the possiblity of the read set being the same as the write set +*/ +static inline void dbug_tmp_use_all_columns(TABLE *table, + my_bitmap_map **save, + MY_BITMAP *read_set, + MY_BITMAP *write_set) +{ +#ifndef DBUG_OFF + save[0]= read_set->bitmap; + save[1]= write_set->bitmap; + (void) tmp_use_all_columns(table, read_set); + (void) tmp_use_all_columns(table, write_set); +#endif +} + + +static inline void dbug_tmp_restore_column_maps(MY_BITMAP *read_set, + MY_BITMAP *write_set, + my_bitmap_map **old) +{ +#ifndef DBUG_OFF + tmp_restore_column_map(read_set, old[0]); + tmp_restore_column_map(write_set, old[1]); +#endif +} + + +size_t max_row_length(TABLE *table, const uchar *data); + + +void init_mdl_requests(TABLE_LIST *table_list); + +int open_table_from_share(THD *thd, TABLE_SHARE *share, const char *alias, + uint db_stat, uint prgflag, uint ha_open_flags, + TABLE *outparam, bool is_create_table); +bool unpack_vcol_info_from_frm(THD *thd, MEM_ROOT *mem_root, + TABLE *table, Field *field, + LEX_STRING *vcol_expr, bool *error_reported); +TABLE_SHARE *alloc_table_share(TABLE_LIST *table_list, char *key, + uint key_length); +void init_tmp_table_share(THD *thd, TABLE_SHARE *share, const char *key, + uint key_length, + const char *table_name, const char *path); +void free_table_share(TABLE_SHARE *share); +int open_table_def(THD *thd, TABLE_SHARE *share, uint db_flags); +void open_table_error(TABLE_SHARE *share, int error, int db_errno, int errarg); +void update_create_info_from_table(HA_CREATE_INFO *info, TABLE *form); +bool check_and_convert_db_name(LEX_STRING *db, bool preserve_lettercase); +bool check_db_name(LEX_STRING *db); +bool check_column_name(const char *name); +bool check_table_name(const char *name, size_t length, bool check_for_path_chars); +int rename_file_ext(const char * from,const char * to,const char * ext); +char *get_field(MEM_ROOT *mem, Field *field); +bool get_field(MEM_ROOT *mem, Field *field, class String *res); + +int closefrm(TABLE *table, bool free_share); +int read_string(File file, uchar* *to, size_t length); +void free_blobs(TABLE *table); +void free_field_buffers_larger_than(TABLE *table, uint32 size); +int set_zone(int nr,int min_zone,int max_zone); +ulong get_form_pos(File file, uchar *head, TYPELIB *save_names); +ulong make_new_entry(File file,uchar *fileinfo,TYPELIB *formnames, + const char *newname); +ulong next_io_size(ulong pos); +void append_unescaped(String *res, const char *pos, uint length); +File create_frm(THD *thd, const char *name, const char *db, + const char *table, uint reclength, uchar *fileinfo, + HA_CREATE_INFO *create_info, uint keys, KEY *key_info); +char *fn_rext(char *name); + +/* performance schema */ +extern LEX_STRING PERFORMANCE_SCHEMA_DB_NAME; + +extern LEX_STRING GENERAL_LOG_NAME; +extern LEX_STRING SLOW_LOG_NAME; + +/* information schema */ +extern LEX_STRING INFORMATION_SCHEMA_NAME; +extern LEX_STRING MYSQL_SCHEMA_NAME; + +inline bool is_infoschema_db(const char *name, size_t len) +{ + return (INFORMATION_SCHEMA_NAME.length == len && + !my_strcasecmp(system_charset_info, + INFORMATION_SCHEMA_NAME.str, name)); +} + +inline bool is_infoschema_db(const char *name) +{ + return !my_strcasecmp(system_charset_info, + INFORMATION_SCHEMA_NAME.str, name); +} + +TYPELIB *typelib(MEM_ROOT *mem_root, List &strings); + +/** + return true if the table was created explicitly. +*/ +inline bool is_user_table(TABLE * table) +{ + const char *name= table->s->table_name.str; + return strncmp(name, tmp_file_prefix, tmp_file_prefix_length); +} + +inline void mark_as_null_row(TABLE *table) +{ + table->null_row=1; + table->status|=STATUS_NULL_ROW; + bfill(table->null_flags,table->s->null_bytes,255); +} + +bool is_simple_order(ORDER *order); + +#endif /* MYSQL_CLIENT */ + +#endif /* TABLE_INCLUDED */ diff --git a/database/include/mysql/private/thr_alarm.h b/database/include/mysql/private/thr_alarm.h new file mode 100644 index 0000000..250590a --- /dev/null +++ b/database/include/mysql/private/thr_alarm.h @@ -0,0 +1,115 @@ +/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* Prototypes when using thr_alarm library functions */ + +#ifndef _thr_alarm_h +#define _thr_alarm_h +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef USE_ALARM_THREAD +#define USE_ONE_SIGNAL_HAND /* One must call process_alarm */ +#endif +#ifdef HAVE_rts_threads +#undef USE_ONE_SIGNAL_HAND +#define USE_ALARM_THREAD +#define THR_SERVER_ALARM SIGUSR1 +#else +#define THR_SERVER_ALARM SIGALRM +#endif + +typedef struct st_alarm_info +{ + time_t next_alarm_time; + uint active_alarms; + uint max_used_alarms; +} ALARM_INFO; + +void thr_alarm_info(ALARM_INFO *info); +extern my_bool my_disable_thr_alarm; + +#ifdef _WIN32 +#define DONT_USE_THR_ALARM +#endif +#if defined(DONT_USE_THR_ALARM) + +#define USE_ALARM_THREAD +#undef USE_ONE_SIGNAL_HAND + +typedef my_bool thr_alarm_t; +typedef my_bool ALARM; + +#define thr_alarm_init(A) (*(A))=0 +#define thr_alarm_in_use(A) (*(A) != 0) +#define thr_end_alarm(A) +#define thr_alarm(A,B,C) ((*(A)=1)-1) +/* The following should maybe be (*(A)) */ +#define thr_got_alarm(A) 0 +#define init_thr_alarm(A) +#define thr_alarm_kill(A) +#define resize_thr_alarm(N) +#define end_thr_alarm(A) + +#else +#if defined(__WIN__) +typedef struct st_thr_alarm_entry +{ + UINT_PTR crono; +} thr_alarm_entry; + +#else /* System with posix threads */ + +typedef int thr_alarm_entry; + +#define thr_got_alarm(thr_alarm) (**(thr_alarm)) + +#endif /* __WIN__ */ + +typedef thr_alarm_entry* thr_alarm_t; + +typedef struct st_alarm { + time_t expire_time; + thr_alarm_entry alarmed; /* set when alarm is due */ + pthread_t thread; + my_thread_id thread_id; + uint index_in_queue; + my_bool malloced; +} ALARM; + +extern uint thr_client_alarm; +extern pthread_t alarm_thread; + +#define thr_alarm_init(A) (*(A))=0 +#define thr_alarm_in_use(A) (*(A)!= 0) +void init_thr_alarm(uint max_alarm); +void resize_thr_alarm(uint max_alarms); +my_bool thr_alarm(thr_alarm_t *alarmed, uint sec, ALARM *buff); +void thr_alarm_kill(my_thread_id thread_id); +void thr_end_alarm(thr_alarm_t *alarmed); +void end_thr_alarm(my_bool free_structures); +sig_handler process_alarm(int); +#ifndef thr_got_alarm +my_bool thr_got_alarm(thr_alarm_t *alrm); +#endif + + +#endif /* DONT_USE_THR_ALARM */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ +#endif /* _thr_alarm_h */ diff --git a/database/include/mysql/private/thr_lock.h b/database/include/mysql/private/thr_lock.h new file mode 100644 index 0000000..370b7d6 --- /dev/null +++ b/database/include/mysql/private/thr_lock.h @@ -0,0 +1,170 @@ +/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* For use with thr_lock:s */ + +#ifndef _thr_lock_h +#define _thr_lock_h +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include + +struct st_thr_lock; +extern ulong locks_immediate,locks_waited ; + +/* + Important: if a new lock type is added, a matching lock description + must be added to sql_test.cc's lock_descriptions array. +*/ +enum thr_lock_type { TL_IGNORE=-1, + TL_UNLOCK, /* UNLOCK ANY LOCK */ + /* + Parser only! At open_tables() becomes TL_READ or + TL_READ_NO_INSERT depending on the binary log format + (SBR/RBR) and on the table category (log table). + Used for tables that are read by statements which + modify tables. + */ + TL_READ_DEFAULT, + TL_READ, /* Read lock */ + TL_READ_WITH_SHARED_LOCKS, + /* High prior. than TL_WRITE. Allow concurrent insert */ + TL_READ_HIGH_PRIORITY, + /* READ, Don't allow concurrent insert */ + TL_READ_NO_INSERT, + /* + Write lock, but allow other threads to read / write. + Used by BDB tables in MySQL to mark that someone is + reading/writing to the table. + */ + TL_WRITE_ALLOW_WRITE, + /* + WRITE lock used by concurrent insert. Will allow + READ, if one could use concurrent insert on table. + */ + TL_WRITE_CONCURRENT_INSERT, + /* Write used by INSERT DELAYED. Allows READ locks */ + TL_WRITE_DELAYED, + /* + parser only! Late bound low_priority flag. + At open_tables() becomes thd->update_lock_default. + */ + TL_WRITE_DEFAULT, + /* WRITE lock that has lower priority than TL_READ */ + TL_WRITE_LOW_PRIORITY, + /* Normal WRITE lock */ + TL_WRITE, + /* Abort new lock request with an error */ + TL_WRITE_ONLY}; + +enum enum_thr_lock_result { THR_LOCK_SUCCESS= 0, THR_LOCK_ABORTED= 1, + THR_LOCK_WAIT_TIMEOUT= 2, THR_LOCK_DEADLOCK= 3 }; + + +/* Priority for locks */ +#define THR_LOCK_LATE_PRIV 1 /* For locks to be merged with org lock */ +#define THR_LOCK_MERGE_PRIV 2 /* For merge tables */ + +#define THR_UNLOCK_UPDATE_STATUS 1 + +extern ulong max_write_lock_count; +extern my_bool thr_lock_inited; +extern enum thr_lock_type thr_upgraded_concurrent_insert_lock; + +/* + A description of the thread which owns the lock. The address + of an instance of this structure is used to uniquely identify the thread. +*/ + +typedef struct st_thr_lock_info +{ + pthread_t thread; + my_thread_id thread_id; +} THR_LOCK_INFO; + + +typedef struct st_thr_lock_data { + THR_LOCK_INFO *owner; + struct st_thr_lock_data *next,**prev; + struct st_thr_lock *lock; + mysql_cond_t *cond; + void *status_param; /* Param to status functions */ + void *debug_print_param; /* For error messages */ + struct PSI_table *m_psi; + enum thr_lock_type type; + enum thr_lock_type org_type; /* Cache for MariaDB */ + uint priority; +} THR_LOCK_DATA; + +struct st_lock_list { + THR_LOCK_DATA *data,**last; +}; + +typedef struct st_thr_lock { + LIST list; + mysql_mutex_t mutex; + struct st_lock_list read_wait; + struct st_lock_list read; + struct st_lock_list write_wait; + struct st_lock_list write; + /* write_lock_count is incremented for write locks and reset on read locks */ + ulong write_lock_count; + uint read_no_write_count; + void (*get_status)(void*, my_bool); /* When one gets a lock */ + void (*copy_status)(void*,void*); + void (*update_status)(void*); /* Before release of write */ + void (*restore_status)(void*); /* Before release of read */ + my_bool (*start_trans)(void*); /* When all locks are taken */ + my_bool (*check_status)(void *); + void (*fix_status)(void *, void *);/* For thr_merge_locks() */ + const char *name; /* Used for error reporting */ + my_bool allow_multiple_concurrent_insert; +} THR_LOCK; + + +extern LIST *thr_lock_thread_list; +extern mysql_mutex_t THR_LOCK_lock; + +my_bool init_thr_lock(void); /* Must be called once/thread */ +void thr_lock_info_init(THR_LOCK_INFO *info); +void thr_lock_init(THR_LOCK *lock); +void thr_lock_delete(THR_LOCK *lock); +void thr_lock_data_init(THR_LOCK *lock,THR_LOCK_DATA *data, + void *status_param); +void thr_unlock(THR_LOCK_DATA *data, uint unlock_flags); +enum enum_thr_lock_result thr_multi_lock(THR_LOCK_DATA **data, + uint count, THR_LOCK_INFO *owner, + ulong lock_wait_timeout); +void thr_multi_unlock(THR_LOCK_DATA **data,uint count, uint unlock_flags); +void thr_merge_locks(THR_LOCK_DATA **data, uint org_count, uint new_count); +void thr_abort_locks(THR_LOCK *lock, my_bool upgrade_lock); +my_bool thr_abort_locks_for_thread(THR_LOCK *lock, my_thread_id thread); +void thr_print_locks(void); /* For debugging */ +my_bool thr_upgrade_write_delay_lock(THR_LOCK_DATA *data, + enum thr_lock_type new_lock_type, + ulong lock_wait_timeout); +void thr_downgrade_write_lock(THR_LOCK_DATA *data, + enum thr_lock_type new_lock_type); +my_bool thr_reschedule_write_lock(THR_LOCK_DATA *data, + ulong lock_wait_timeout); +void thr_set_lock_wait_callback(void (*before_wait)(void), + void (*after_wait)(void)); +#ifdef __cplusplus +} +#endif +#endif /* _thr_lock_h */ diff --git a/database/include/mysql/private/thr_malloc.h b/database/include/mysql/private/thr_malloc.h new file mode 100644 index 0000000..ceb4f25 --- /dev/null +++ b/database/include/mysql/private/thr_malloc.h @@ -0,0 +1,34 @@ +/* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef THR_MALLOC_INCLUDED +#define THR_MALLOC_INCLUDED + +#include "my_global.h" // uint, size_t + +typedef struct st_mem_root MEM_ROOT; + +void init_sql_alloc(MEM_ROOT *root, uint block_size, uint pre_alloc_size); +void *sql_alloc(size_t); +void *sql_calloc(size_t); +char *sql_strdup(const char *str); +char *sql_strmake(const char *str, size_t len); +void *sql_memdup(const void * ptr, size_t size); +char *sql_strmake_with_convert(const char *str, size_t arg_length, + CHARSET_INFO *from_cs, + size_t max_res_length, + CHARSET_INFO *to_cs, size_t *result_length); + +#endif /* THR_MALLOC_INCLUDED */ diff --git a/database/include/mysql/private/thread_pool_priv.h b/database/include/mysql/private/thread_pool_priv.h new file mode 100644 index 0000000..cc6ecf8 --- /dev/null +++ b/database/include/mysql/private/thread_pool_priv.h @@ -0,0 +1,130 @@ +#error don't use +/* + Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA +*/ + +#ifndef THREAD_POOL_PRIV_INCLUDED +#define THREAD_POOL_PRIV_INCLUDED + +/* + The thread pool requires access to some MySQL server error codes, this is + accessed from mysqld_error.h. + We need access to the struct that defines the thread pool plugin interface + which is accessed through scheduler.h. + All accesses to THD variables and functions are defined in this header file. + A thread pool can also use DEBUG_SYNC and must thus include + debug_sync.h + To handle definitions of Information Schema plugins it is also required + to include sql_profile.h and table.h. +*/ +#include /* To get ER_ERROR_ON_READ */ +#define MYSQL_SERVER 1 +#include +#include +#include +#include +#include + +/* Needed to get access to scheduler variables */ +void* thd_get_scheduler_data(THD *thd); +void thd_set_scheduler_data(THD *thd, void *data); +PSI_thread* thd_get_psi(THD *thd); +void thd_set_psi(THD *thd, PSI_thread *psi); + +/* Interface to THD variables and functions */ +void thd_set_killed(THD *thd); +void thd_clear_errors(THD *thd); +void thd_set_thread_stack(THD *thd, char *stack_start); +void thd_lock_thread_count(THD *thd); +void thd_unlock_thread_count(THD *thd); +void thd_lock_thread_remove(THD *thd); +void thd_unlock_thread_remove(THD *thd); +void thd_close_connection(THD *thd); +THD *thd_get_current_thd(); +void thd_lock_data(THD *thd); +void thd_unlock_data(THD *thd); +bool thd_is_transaction_active(THD *thd); +int thd_connection_has_data(THD *thd); +void thd_set_net_read_write(THD *thd, uint val); +uint thd_get_net_read_write(THD *thd); +void thd_set_mysys_var(THD *thd, st_my_thread_var *mysys_var); +ulong thd_get_net_wait_timeout(THD *thd); +my_socket thd_get_fd(THD *thd); +int thd_store_globals(THD* thd); + +THD *first_global_thread(); +THD *next_global_thread(THD *thd); + +/* Print to the MySQL error log */ +void sql_print_error(const char *format, ...); + +/* Store a table record */ +bool schema_table_store_record(THD *thd, TABLE *table); + +/* + The thread pool must be able to execute statements using the connection + state in THD object. This is the main objective of the thread pool to + schedule the start of these commands. +*/ +bool do_command(THD *thd); + +/* + The thread pool requires an interface to the connection logic in the + MySQL Server since the thread pool will maintain the event logic on + the TCP connection of the MySQL Server. Thus new connections, dropped + connections will be discovered by the thread pool and it needs to + ensure that the proper MySQL Server logic attached to these events is + executed. +*/ +/* Initialise a new connection handler thread */ +bool init_new_connection_handler_thread(); +/* Set up connection thread before use as execution thread */ +bool setup_connection_thread_globals(THD *thd); +/* Prepare connection as part of connection set-up */ +bool thd_prepare_connection(THD *thd); +/* Release auditing before executing statement */ +void mysql_audit_release(THD *thd); +/* Check if connection is still alive */ +bool thd_is_connection_alive(THD *thd); +/* Close connection with possible error code */ +void close_connection(THD *thd, uint errcode); +/* End the connection before closing it */ +void end_connection(THD *thd); +/* Cleanup the THD object */ +void thd_cleanup(THD *thd); +/* Decrement connection counter */ +void dec_connection_count(); +/* Destroy THD object */ +void delete_thd(THD *thd); + +/* + thread_created is maintained by thread pool when activated since + user threads are created by the thread pool (and also special + threads to maintain the thread pool). This is done through + inc_thread_created. + + max_connections is needed to calculate the maximum number of threads + that is allowed to be started by the thread pool. The method + get_max_connections() gets reference to this variable. + + connection_attrib is the thread attributes for connection threads, + the method get_connection_attrib provides a reference to these + attributes. +*/ +void inc_thread_created(void); +ulong get_max_connections(void); +pthread_attr_t *get_connection_attrib(void); +#endif diff --git a/database/include/mysql/private/threadpool.h b/database/include/mysql/private/threadpool.h new file mode 100644 index 0000000..7ad6b36 --- /dev/null +++ b/database/include/mysql/private/threadpool.h @@ -0,0 +1,70 @@ +/* Copyright (C) 2012 Monty Program Ab + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +#define MAX_THREAD_GROUPS 100000 + +/* Threadpool parameters */ +extern uint threadpool_min_threads; /* Minimum threads in pool */ +extern uint threadpool_idle_timeout; /* Shutdown idle worker threads after this timeout */ +extern uint threadpool_size; /* Number of parallel executing threads */ +extern uint threadpool_max_size; +extern uint threadpool_stall_limit; /* time interval in 10 ms units for stall checks*/ +extern uint threadpool_max_threads; /* Maximum threads in pool */ +extern uint threadpool_oversubscribe; /* Maximum active threads in group */ + + + +/* Common thread pool routines, suitable for different implementations */ +extern void threadpool_remove_connection(THD *thd); +extern int threadpool_process_request(THD *thd); +extern int threadpool_add_connection(THD *thd); + +/* + Functions used by scheduler. + OS-specific implementations are in + threadpool_unix.cc or threadpool_win.cc +*/ +extern bool tp_init(); +extern void tp_add_connection(THD*); +extern void tp_wait_begin(THD *, int); +extern void tp_wait_end(THD*); +extern void tp_post_kill_notification(THD *thd); +extern void tp_end(void); + +/* Used in SHOW for threadpool_idle_thread_count */ +extern int tp_get_idle_thread_count(); + +/* + Threadpool statistics +*/ +struct TP_STATISTICS +{ + /* Current number of worker thread. */ + volatile int32 num_worker_threads; +}; + +extern TP_STATISTICS tp_stats; + + +/* Functions to set threadpool parameters */ +extern void tp_set_min_threads(uint val); +extern void tp_set_max_threads(uint val); +extern void tp_set_threadpool_size(uint val); +extern void tp_set_threadpool_stall_limit(uint val); + +/* Activate threadpool scheduler */ +extern void tp_scheduler(void); + +extern int show_threadpool_idle_threads(THD *thd, SHOW_VAR *var, char *buff); diff --git a/database/include/mysql/private/transaction.h b/database/include/mysql/private/transaction.h new file mode 100644 index 0000000..73a75c7 --- /dev/null +++ b/database/include/mysql/private/transaction.h @@ -0,0 +1,47 @@ +/* Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef TRANSACTION_H +#define TRANSACTION_H + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class implementation */ +#endif + +#include +#include + +class THD; + +bool trans_begin(THD *thd, uint flags= 0); +bool trans_commit(THD *thd); +bool trans_commit_implicit(THD *thd); +bool trans_rollback(THD *thd); +bool trans_rollback_implicit(THD *thd); + +bool trans_commit_stmt(THD *thd); +bool trans_rollback_stmt(THD *thd); + +bool trans_savepoint(THD *thd, LEX_STRING name); +bool trans_rollback_to_savepoint(THD *thd, LEX_STRING name); +bool trans_release_savepoint(THD *thd, LEX_STRING name); + +bool trans_xa_start(THD *thd); +bool trans_xa_end(THD *thd); +bool trans_xa_prepare(THD *thd); +bool trans_xa_commit(THD *thd); +bool trans_xa_rollback(THD *thd); + +#endif /* TRANSACTION_H */ diff --git a/database/include/mysql/private/tzfile.h b/database/include/mysql/private/tzfile.h new file mode 100644 index 0000000..aa03086 --- /dev/null +++ b/database/include/mysql/private/tzfile.h @@ -0,0 +1,142 @@ +#ifndef TZFILE_INCLUDED +#define TZFILE_INCLUDED + +/* Copyright (c) 2004, 2006, 2007 MySQL AB, 2009 Sun Microsystems, Inc. + Use is subject to license terms. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* + This file is based on public domain code from ftp://elsie.ncih.nist.gov/ + Initial source code is in the public domain, so clarified as of + 1996-06-05 by Arthur David Olson (arthur_david_olson@nih.gov). +*/ + +/* + Information about time zone files. +*/ + +#ifndef TZDIR +#define TZDIR "/usr/share/zoneinfo" /* Time zone object file directory */ +#endif /* !defined TZDIR */ + +/* + Each file begins with. . . +*/ + +#define TZ_MAGIC "TZif" + +struct tzhead { + uchar tzh_magic[4]; /* TZ_MAGIC */ + uchar tzh_reserved[16]; /* reserved for future use */ + uchar tzh_ttisgmtcnt[4]; /* coded number of trans. time flags */ + uchar tzh_ttisstdcnt[4]; /* coded number of trans. time flags */ + uchar tzh_leapcnt[4]; /* coded number of leap seconds */ + uchar tzh_timecnt[4]; /* coded number of transition times */ + uchar tzh_typecnt[4]; /* coded number of local time types */ + uchar tzh_charcnt[4]; /* coded number of abbr. chars */ +}; + +/* + . . .followed by. . . + + tzh_timecnt (char [4])s coded transition times a la time(2) + tzh_timecnt (unsigned char)s types of local time starting at above + tzh_typecnt repetitions of + one (char [4]) coded UTC offset in seconds + one (unsigned char) used to set tm_isdst + one (unsigned char) that's an abbreviation list index + tzh_charcnt (char)s '\0'-terminated zone abbreviations + tzh_leapcnt repetitions of + one (char [4]) coded leap second transition times + one (char [4]) total correction after above + tzh_ttisstdcnt (char)s indexed by type; if TRUE, transition + time is standard time, if FALSE, + transition time is wall clock time + if absent, transition times are + assumed to be wall clock time + tzh_ttisgmtcnt (char)s indexed by type; if TRUE, transition + time is UTC, if FALSE, + transition time is local time + if absent, transition times are + assumed to be local time +*/ + +/* + In the current implementation, we refuse to deal with files that + exceed any of the limits below. +*/ + +#ifndef TZ_MAX_TIMES +/* + The TZ_MAX_TIMES value below is enough to handle a bit more than a + year's worth of solar time (corrected daily to the nearest second) or + 138 years of Pacific Presidential Election time + (where there are three time zone transitions every fourth year). +*/ +#define TZ_MAX_TIMES 370 +#endif /* !defined TZ_MAX_TIMES */ + +#ifndef TZ_MAX_TYPES +#ifdef SOLAR +#define TZ_MAX_TYPES 256 /* Limited by what (unsigned char)'s can hold */ +#else +/* + Must be at least 14 for Europe/Riga as of Jan 12 1995, + as noted by Earl Chew . +*/ +#define TZ_MAX_TYPES 20 /* Maximum number of local time types */ +#endif /* defined SOLAR */ +#endif /* !defined TZ_MAX_TYPES */ + +#ifndef TZ_MAX_CHARS +#define TZ_MAX_CHARS 50 /* Maximum number of abbreviation characters */ + /* (limited by what unsigned chars can hold) */ +#endif /* !defined TZ_MAX_CHARS */ + +#ifndef TZ_MAX_LEAPS +#define TZ_MAX_LEAPS 50 /* Maximum number of leap second corrections */ +#endif /* !defined TZ_MAX_LEAPS */ + +#ifndef TZ_MAX_REV_RANGES +#ifdef SOLAR +/* Solar (Asia/RiyadhXX) zones need significantly bigger TZ_MAX_REV_RANGES */ +#define TZ_MAX_REV_RANGES (TZ_MAX_TIMES*2+TZ_MAX_LEAPS*2+2) +#else +#define TZ_MAX_REV_RANGES (TZ_MAX_TIMES+TZ_MAX_LEAPS+2) +#endif +#endif + +#define SECS_PER_MIN 60 +#define MINS_PER_HOUR 60 +#define HOURS_PER_DAY 24 +#define DAYS_PER_WEEK 7 +#define DAYS_PER_NYEAR 365 +#define DAYS_PER_LYEAR 366 +#define SECS_PER_HOUR (SECS_PER_MIN * MINS_PER_HOUR) +#define SECS_PER_DAY ((long) SECS_PER_HOUR * HOURS_PER_DAY) +#define MONS_PER_YEAR 12 + +#define TM_YEAR_BASE 1900 + +#define EPOCH_YEAR 1970 + +/* + Accurate only for the past couple of centuries, + that will probably do. +*/ + +#define isleap(y) (((y) % 4) == 0 && (((y) % 100) != 0 || ((y) % 400) == 0)) + +#endif diff --git a/database/include/mysql/private/tztime.h b/database/include/mysql/private/tztime.h new file mode 100644 index 0000000..dde014f --- /dev/null +++ b/database/include/mysql/private/tztime.h @@ -0,0 +1,94 @@ +#ifndef TZTIME_INCLUDED +#define TZTIME_INCLUDED + +/* Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + + +#ifdef USE_PRAGMA_INTERFACE +#pragma interface /* gcc class interface */ +#endif + +#include "my_time.h" /* my_time_t */ +#include "mysql_time.h" /* MYSQL_TIME */ +#include "sql_list.h" /* Sql_alloc */ +#include "sql_string.h" /* String */ + +class THD; + +#if !defined(TESTTIME) && !defined(TZINFO2SQL) + +class THD; + +/** + This class represents abstract time zone and provides + basic interface for MYSQL_TIME <-> my_time_t conversion. + Actual time zones which are specified by DB, or via offset + or use system functions are its descendants. +*/ +class Time_zone: public Sql_alloc +{ +public: + Time_zone() {} /* Remove gcc warning */ + /** + Converts local time in broken down MYSQL_TIME representation to + my_time_t (UTC seconds since Epoch) represenation. + Returns 0 in case of error. May set error_code to ER_WARN_DATA_OUT_OF_RANGE + or ER_WARN_INVALID_TIMESTAMP, see TIME_to_timestamp()) + */ + virtual my_time_t TIME_to_gmt_sec(const MYSQL_TIME *t, + uint *error_code) const = 0; + /** + Converts time in my_time_t representation to local time in + broken down MYSQL_TIME representation. + */ + virtual void gmt_sec_to_TIME(MYSQL_TIME *tmp, my_time_t t) const = 0; + /** + Because of constness of String returned by get_name() time zone name + have to be already zeroended to be able to use String::ptr() instead + of c_ptr(). + */ + virtual const String * get_name() const = 0; + + /** + We need this only for surpressing warnings, objects of this type are + allocated on MEM_ROOT and should not require destruction. + */ + virtual ~Time_zone() {}; + +protected: + static inline void adjust_leap_second(MYSQL_TIME *t); +}; + +extern Time_zone * my_tz_UTC; +extern Time_zone * my_tz_SYSTEM; +extern Time_zone * my_tz_OFFSET0; +extern Time_zone * my_tz_find(THD *thd, const String *name); +extern my_bool my_tz_init(THD *org_thd, const char *default_tzname, my_bool bootstrap); +extern void my_tz_free(); +extern my_time_t sec_since_epoch_TIME(MYSQL_TIME *t); + +/** + Number of elements in table list produced by my_tz_get_table_list() + (this table list contains tables which are needed for dynamical loading + of time zone descriptions). Actually it is imlementation detail that + should not be used anywhere outside of tztime.h and tztime.cc. +*/ + +static const int MY_TZ_TABLES_COUNT= 4; + + +#endif /* !defined(TESTTIME) && !defined(TZINFO2SQL) */ +#endif /* TZTIME_INCLUDED */ diff --git a/database/include/mysql/private/unireg.h b/database/include/mysql/private/unireg.h new file mode 100644 index 0000000..5856907 --- /dev/null +++ b/database/include/mysql/private/unireg.h @@ -0,0 +1,183 @@ +#ifndef UNIREG_INCLUDED +#define UNIREG_INCLUDED + +/* + Copyright (c) 2000, 2011, Oracle and/or its affiliates. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + + +#include "my_global.h" /* ulonglong */ +#include "mysql_version.h" /* FRM_VER */ + +/* Extra functions used by unireg library */ + +typedef struct st_ha_create_information HA_CREATE_INFO; + +#ifndef NO_ALARM_LOOP +#define NO_ALARM_LOOP /* lib5 and popen can't use alarm */ +#endif + +/* These paths are converted to other systems (WIN95) before use */ + +#define LANGUAGE "english/" +#define ERRMSG_FILE "errmsg.sys" +#define TEMP_PREFIX "MY" +#define LOG_PREFIX "ML" +#define PROGDIR "bin/" +#ifndef MYSQL_DATADIR +#define MYSQL_DATADIR "data/" +#endif +#ifndef SHAREDIR +#define SHAREDIR "share/" +#endif +#ifndef PLUGINDIR +#define PLUGINDIR "lib/plugin" +#endif + +#define CURRENT_THD_ERRMSGS current_thd->variables.lc_messages->errmsgs->errmsgs +#define DEFAULT_ERRMSGS my_default_lc_messages->errmsgs->errmsgs + +#define ER(X) CURRENT_THD_ERRMSGS[(X) - ER_ERROR_FIRST] +#define ER_DEFAULT(X) DEFAULT_ERRMSGS[(X) - ER_ERROR_FIRST] +#define ER_SAFE(X) (((X) >= ER_ERROR_FIRST && (X) <= ER_ERROR_LAST) ? ER(X) : "Invalid error code") +#define ER_THD(thd,X) ((thd)->variables.lc_messages->errmsgs->errmsgs[(X) - \ + ER_ERROR_FIRST]) +#define ER_THD_OR_DEFAULT(thd,X) ((thd) ? ER_THD(thd, X) : ER_DEFAULT(X)) + +#define ME_INFO (ME_HOLDTANG+ME_OLDWIN+ME_NOREFRESH) +#define ME_ERROR (ME_BELL+ME_OLDWIN+ME_NOREFRESH) +#define MYF_RW MYF(MY_WME+MY_NABP) /* Vid my_read & my_write */ + +#define SPECIAL_USE_LOCKS 1 /* Lock used databases */ +#define SPECIAL_NO_NEW_FUNC 2 /* Skip new functions */ +#define SPECIAL_SKIP_SHOW_DB 4 /* Don't allow 'show db' */ +#define SPECIAL_WAIT_IF_LOCKED 8 /* Wait if locked database */ +#define SPECIAL_SAME_DB_NAME 16 /* form name = file name */ +#define SPECIAL_ENGLISH 32 /* English error messages */ +#define SPECIAL_NO_RESOLVE 64 /* Don't use gethostname */ +#define SPECIAL_NO_PRIOR 128 /* Obsolete */ +#define SPECIAL_BIG_SELECTS 256 /* Don't use heap tables */ +#define SPECIAL_NO_HOST_CACHE 512 /* Don't cache hosts */ +#define SPECIAL_SHORT_LOG_FORMAT 1024 +#define SPECIAL_SAFE_MODE 2048 +#define SPECIAL_LOG_QUERIES_NOT_USING_INDEXES 4096 /* Obsolete */ + + /* Extern defines */ +#define store_record(A,B) memcpy((A)->B,(A)->record[0],(size_t) (A)->s->reclength) +#define restore_record(A,B) memcpy((A)->record[0],(A)->B,(size_t) (A)->s->reclength) +#define cmp_record(A,B) memcmp((A)->record[0],(A)->B,(size_t) (A)->s->reclength) +#define empty_record(A) { \ + restore_record((A),s->default_values); \ + bfill((A)->null_flags,(A)->s->null_bytes,255);\ + } + + /* Defines for use with openfrm, openprt and openfrd */ + +#define READ_ALL 1 /* openfrm: Read all parameters */ +#define CHANGE_FRM 2 /* openfrm: open .frm as O_RDWR */ +#define READ_KEYINFO 4 /* L{s nyckeldata fr}n filen */ +#define EXTRA_RECORD 8 /* Reservera plats f|r extra record */ +#define DONT_OPEN_TABLES 8 /* Don't open database-files (frd) */ +#define DONT_OPEN_MASTER_REG 16 /* Don't open first reg-file (prt) */ +#define EXTRA_LONG_RECORD 16 /* Plats f|r dubbel s|k-record */ +#define COMPUTE_TYPES 32 /* Kontrollera type f|r f{ltena */ +#define SEARCH_PRG 64 /* S|k efter registret i 'prg_dev' */ +#define READ_USED_NAMES 128 /* L{s anv{nda formul{rnamn */ +#define DONT_GIVE_ERROR 256 /* Don't do frm_error on openfrm */ +#define READ_SCREENS 1024 /* Read screens, info and helpfile */ +#define DELAYED_OPEN 4096 /* Open table later */ +#define OPEN_VIEW 8192 /* Allow open on view */ +#define OPEN_VIEW_NO_PARSE 16384 /* Open frm only if it's a view, + but do not parse view itself */ +/** + This flag is used in function get_all_tables() which fills + I_S tables with data which are retrieved from frm files and storage engine + The flag means that we need to open FRM file only to get necessary data. +*/ +#define OPEN_FRM_FILE_ONLY 32768 +/** + This flag is used in function get_all_tables() which fills + I_S tables with data which are retrieved from frm files and storage engine + The flag means that we need to process tables only to get necessary data. + Views are not processed. +*/ +#define OPEN_TABLE_ONLY OPEN_FRM_FILE_ONLY*2 +/** + This flag is used in function get_all_tables() which fills + I_S tables with data which are retrieved from frm files and storage engine + The flag means that we need to process views only to get necessary data. + Tables are not processed. +*/ +#define OPEN_VIEW_ONLY OPEN_TABLE_ONLY*2 +/** + This flag is used in function get_all_tables() which fills + I_S tables with data which are retrieved from frm files and storage engine. + The flag means that we need to open a view using + open_normal_and_derived_tables() function. +*/ +#define OPEN_VIEW_FULL OPEN_VIEW_ONLY*2 +/** + This flag is used in function get_all_tables() which fills + I_S tables with data which are retrieved from frm files and storage engine. + The flag means that I_S table uses optimization algorithm. +*/ +#define OPTIMIZE_I_S_TABLE OPEN_VIEW_FULL*2 + +/* + The flag means that we need to process trigger files only. +*/ +#define OPEN_TRIGGER_ONLY OPTIMIZE_I_S_TABLE*2 + +#define SC_INFO_LENGTH 4 /* Form format constant */ +#define TE_INFO_LENGTH 3 +#define MTYP_NOEMPTY_BIT 128 + +/* + Minimum length pattern before Turbo Boyer-Moore is used + for SELECT "text" LIKE "%pattern%", excluding the two + wildcards in class Item_func_like. +*/ +#define MIN_TURBOBM_PATTERN_LEN 3 + +/* + Defines for binary logging. + Do not decrease the value of BIN_LOG_HEADER_SIZE. + Do not even increase it before checking code. +*/ + +#define BIN_LOG_HEADER_SIZE 4 + +#define DEFAULT_KEY_CACHE_NAME "default" + + +/* Include prototypes for unireg */ + +#include "mysqld_error.h" +#include "structs.h" /* All structs we need */ +#include "sql_list.h" /* List<> */ +#include "field.h" /* Create_field */ + +bool mysql_create_frm(THD *thd, const char *file_name, + const char *db, const char *table, + HA_CREATE_INFO *create_info, + List &create_field, + uint key_count,KEY *key_info,handler *db_type); +int rea_create_table(THD *thd, const char *path, + const char *db, const char *table_name, + HA_CREATE_INFO *create_info, + List &create_field, + uint key_count,KEY *key_info, + handler *file); +#endif diff --git a/database/include/mysql/private/violite.h b/database/include/mysql/private/violite.h new file mode 100644 index 0000000..1f3911a --- /dev/null +++ b/database/include/mysql/private/violite.h @@ -0,0 +1,270 @@ +/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* + * Vio Lite. + * Purpose: include file for Vio that will work with C and C++ + */ + +#ifndef vio_violite_h_ +#define vio_violite_h_ + +#include "my_net.h" /* needed because of struct in_addr */ + + +/* Simple vio interface in C; The functions are implemented in violite.c */ + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +#ifdef __cplusplus +typedef struct st_vio Vio; +#endif /* __cplusplus */ + +enum enum_vio_type +{ + VIO_CLOSED, VIO_TYPE_TCPIP, VIO_TYPE_SOCKET, VIO_TYPE_NAMEDPIPE, + VIO_TYPE_SSL, VIO_TYPE_SHARED_MEMORY +}; + + +#define VIO_LOCALHOST 1 /* a localhost connection */ +#define VIO_BUFFERED_READ 2 /* use buffered read */ +#define VIO_READ_BUFFER_SIZE 16384 /* size of read buffer */ + +Vio* vio_new(my_socket sd, enum enum_vio_type type, uint flags); +#ifdef __WIN__ +Vio* vio_new_win32pipe(HANDLE hPipe); +Vio* vio_new_win32shared_memory(HANDLE handle_file_map, + HANDLE handle_map, + HANDLE event_server_wrote, + HANDLE event_server_read, + HANDLE event_client_wrote, + HANDLE event_client_read, + HANDLE event_conn_closed); +#else +#define HANDLE void * +#endif /* __WIN__ */ + +/* backport from 5.6 where it is part of PSI, not vio_*() */ +int mysql_socket_shutdown(my_socket mysql_socket, int how); + +void vio_delete(Vio* vio); +int vio_close(Vio* vio); +void vio_reset(Vio* vio, enum enum_vio_type type, + my_socket sd, HANDLE hPipe, uint flags); +size_t vio_read(Vio *vio, uchar * buf, size_t size); +size_t vio_read_buff(Vio *vio, uchar * buf, size_t size); +size_t vio_write(Vio *vio, const uchar * buf, size_t size); +int vio_blocking(Vio *vio, my_bool onoff, my_bool *old_mode); +my_bool vio_is_blocking(Vio *vio); +/* setsockopt TCP_NODELAY at IPPROTO_TCP level, when possible */ +int vio_fastsend(Vio *vio); +/* setsockopt SO_KEEPALIVE at SOL_SOCKET level, when possible */ +int vio_keepalive(Vio *vio, my_bool onoff); +/* Whenever we should retry the last read/write operation. */ +my_bool vio_should_retry(Vio *vio); +/* Check that operation was timed out */ +my_bool vio_was_interrupted(Vio *vio); +/* Short text description of the socket for those, who are curious.. */ +const char* vio_description(Vio *vio); +/* Return the type of the connection */ +enum enum_vio_type vio_type(Vio* vio); +/* Return last error number */ +int vio_errno(Vio*vio); +/* Get socket number */ +my_socket vio_fd(Vio*vio); +/* Remote peer's address and name in text form */ +my_bool vio_peer_addr(Vio *vio, char *buf, uint16 *port, size_t buflen); +my_bool vio_poll_read(Vio *vio, uint timeout); +my_bool vio_is_connected(Vio *vio); +ssize_t vio_pending(Vio *vio); + +my_bool vio_get_normalized_ip_string(const struct sockaddr *addr, int addr_length, + char *ip_string, size_t ip_string_size); + +my_bool vio_is_no_name_error(int err_code); + +int vio_getnameinfo(const struct sockaddr *sa, + char *hostname, size_t hostname_size, + char *port, size_t port_size, + int flags); + +#ifdef HAVE_OPENSSL +#include +#if OPENSSL_VERSION_NUMBER < 0x0090700f +#define DES_cblock des_cblock +#define DES_key_schedule des_key_schedule +#define DES_set_key_unchecked(k,ks) des_set_key_unchecked((k),*(ks)) +#define DES_ede3_cbc_encrypt(i,o,l,k1,k2,k3,iv,e) des_ede3_cbc_encrypt((i),(o),(l),*(k1),*(k2),*(k3),(iv),(e)) +#endif + +#define HEADER_DES_LOCL_H dummy_something +#define YASSL_MYSQL_COMPATIBLE +#ifndef YASSL_PREFIX +#define YASSL_PREFIX +#endif +/* Set yaSSL to use same type as MySQL do for socket handles */ +typedef my_socket YASSL_SOCKET_T; +#define YASSL_SOCKET_T_DEFINED +#include +#include + +#ifdef HAVE_ERR_remove_thread_state +#define ERR_remove_state(X) ERR_remove_thread_state(NULL) +#endif + +enum enum_ssl_init_error +{ + SSL_INITERR_NOERROR= 0, SSL_INITERR_CERT, SSL_INITERR_KEY, + SSL_INITERR_NOMATCH, SSL_INITERR_BAD_PATHS, SSL_INITERR_CIPHERS, + SSL_INITERR_MEMFAIL, SSL_INITERR_LASTERR +}; +const char* sslGetErrString(enum enum_ssl_init_error err); + +struct st_VioSSLFd +{ + SSL_CTX *ssl_context; +}; + +int sslaccept(struct st_VioSSLFd*, Vio *, long timeout, unsigned long *errptr); +int sslconnect(struct st_VioSSLFd*, Vio *, long timeout, unsigned long *errptr); + +struct st_VioSSLFd +*new_VioSSLConnectorFd(const char *key_file, const char *cert_file, + const char *ca_file, const char *ca_path, + const char *cipher, enum enum_ssl_init_error* error); +struct st_VioSSLFd +*new_VioSSLAcceptorFd(const char *key_file, const char *cert_file, + const char *ca_file,const char *ca_path, + const char *cipher, enum enum_ssl_init_error* error); +void free_vio_ssl_acceptor_fd(struct st_VioSSLFd *fd); +#endif /* HAVE_OPENSSL */ + +void vio_end(void); + +#ifdef __cplusplus +} +#endif + +#if !defined(DONT_MAP_VIO) +#define vio_delete(vio) (vio)->viodelete(vio) +#define vio_errno(vio) (vio)->vioerrno(vio) +#define vio_read(vio, buf, size) ((vio)->read)(vio,buf,size) +#define vio_write(vio, buf, size) ((vio)->write)(vio, buf, size) +#define vio_blocking(vio, set_blocking_mode, old_mode)\ + (vio)->vioblocking(vio, set_blocking_mode, old_mode) +#define vio_is_blocking(vio) (vio)->is_blocking(vio) +#define vio_fastsend(vio) (vio)->fastsend(vio) +#define vio_keepalive(vio, set_keep_alive) (vio)->viokeepalive(vio, set_keep_alive) +#define vio_should_retry(vio) (vio)->should_retry(vio) +#define vio_was_interrupted(vio) (vio)->was_interrupted(vio) +#define vio_close(vio) ((vio)->vioclose)(vio) +#define vio_shutdown(vio,how) ((vio)->shutdown)(vio,how) +#define vio_peer_addr(vio, buf, prt, buflen) (vio)->peer_addr(vio, buf, prt, buflen) +#define vio_timeout(vio, which, seconds) (vio)->timeout(vio, which, seconds) +#define vio_poll_read(vio, timeout) (vio)->poll_read(vio, timeout) +#define vio_is_connected(vio) (vio)->is_connected(vio) +#endif /* !defined(DONT_MAP_VIO) */ + +#ifdef _WIN32 + +/* shutdown(2) flags */ +#ifndef SHUT_RD +#define SHUT_RD SD_RECEIVE +#endif + +/* + Set thread id for io cancellation (required on Windows XP only, + and should to be removed if XP is no more supported) +*/ + +#define vio_set_thread_id(vio, tid) if(vio) vio->thread_id= tid +#else +#define vio_set_thread_id(vio, tid) +#endif + +/* This enumerator is used in parser - should be always visible */ +enum SSL_type +{ + SSL_TYPE_NOT_SPECIFIED= -1, + SSL_TYPE_NONE, + SSL_TYPE_ANY, + SSL_TYPE_X509, + SSL_TYPE_SPECIFIED +}; + + +/* HFTODO - hide this if we don't want client in embedded server */ +/* This structure is for every connection on both sides */ +struct st_vio +{ + my_socket sd; /* my_socket - real or imaginary */ + HANDLE hPipe; + my_bool localhost; /* Are we from localhost? */ + int fcntl_mode; /* Buffered fcntl(sd,F_GETFL) */ + struct sockaddr_storage local; /* Local internet address */ + struct sockaddr_storage remote; /* Remote internet address */ + int addrLen; /* Length of remote address */ + enum enum_vio_type type; /* Type of connection */ + char desc[30]; /* String description */ + char *read_buffer; /* buffer for vio_read_buff */ + char *read_pos; /* start of unfetched data in the + read buffer */ + char *read_end; /* end of unfetched data */ + struct mysql_async_context *async_context; /* For non-blocking API */ + uint read_timeout, write_timeout; + /* function pointers. They are similar for socket/SSL/whatever */ + void (*viodelete)(Vio*); + int (*vioerrno)(Vio*); + size_t (*read)(Vio*, uchar *, size_t); + size_t (*write)(Vio*, const uchar *, size_t); + int (*vioblocking)(Vio*, my_bool, my_bool *); + my_bool (*is_blocking)(Vio*); + int (*viokeepalive)(Vio*, my_bool); + int (*fastsend)(Vio*); + my_bool (*peer_addr)(Vio*, char *, uint16*, size_t); + void (*in_addr)(Vio*, struct sockaddr_storage*); + my_bool (*should_retry)(Vio*); + my_bool (*was_interrupted)(Vio*); + int (*vioclose)(Vio*); + void (*timeout)(Vio*, unsigned int which, unsigned int timeout); + my_bool (*poll_read)(Vio *vio, uint timeout); + my_bool (*is_connected)(Vio*); + int (*shutdown)(Vio *, int); + my_bool (*has_data) (Vio*); +#ifdef HAVE_OPENSSL + void *ssl_arg; +#endif +#ifdef HAVE_SMEM + HANDLE handle_file_map; + char *handle_map; + HANDLE event_server_wrote; + HANDLE event_server_read; + HANDLE event_client_wrote; + HANDLE event_client_read; + HANDLE event_conn_closed; + size_t shared_memory_remain; + char *shared_memory_pos; +#endif /* HAVE_SMEM */ +#ifdef _WIN32 + DWORD thread_id; /* Used on XP only by vio_shutdown() */ + OVERLAPPED pipe_overlapped; + DWORD read_timeout_ms; + DWORD write_timeout_ms; +#endif +}; +#endif /* vio_violite_h_ */ diff --git a/database/include/mysql/private/waiting_threads.h b/database/include/mysql/private/waiting_threads.h new file mode 100644 index 0000000..217b49b --- /dev/null +++ b/database/include/mysql/private/waiting_threads.h @@ -0,0 +1,130 @@ +/* Copyright (C) 2008 MySQL AB, 2008-2009 Sun Microsystems, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef _waiting_threads_h +#define _waiting_threads_h + +#include +#include + +#include + +C_MODE_START + +typedef struct st_wt_resource_id WT_RESOURCE_ID; +typedef struct st_wt_resource WT_RESOURCE; + +typedef struct st_wt_resource_type { + my_bool (*compare)(const void *a, const void *b); + const void *(*make_key)(const WT_RESOURCE_ID *id, uint *len); /* not used */ +} WT_RESOURCE_TYPE; + +struct st_wt_resource_id { + ulonglong value; + const WT_RESOURCE_TYPE *type; +}; +/* the below differs from sizeof(WT_RESOURCE_ID) by the amount of padding */ +#define sizeof_WT_RESOURCE_ID (sizeof(ulonglong)+sizeof(void*)) + +#define WT_WAIT_STATS 24 +#define WT_CYCLE_STATS 32 +extern ulonglong wt_wait_table[WT_WAIT_STATS]; +extern uint32 wt_wait_stats[WT_WAIT_STATS+1]; +extern uint32 wt_cycle_stats[2][WT_CYCLE_STATS+1]; +extern uint32 wt_success_stats; + +typedef struct st_wt_thd { + /* + XXX + there's no protection (mutex) against concurrent access of the + dynarray below. it is assumed that a caller will have it anyway + (not to protect this array but to protect its own - caller's - + data structures), and we'll get it for free. A caller needs to + ensure that a blocker won't release a resource before a blocked + thread starts waiting, which is usually done with a mutex. + + If the above assumption is wrong, we'll need to add a mutex here. + */ + DYNAMIC_ARRAY my_resources; + /* + 'waiting_for' is modified under waiting_for->lock, and only by thd itself + 'waiting_for' is read lock-free (using pinning protocol), but a thd object + can read its own 'waiting_for' without any locks or tricks. + */ + WT_RESOURCE *waiting_for; + LF_PINS *pins; + + /* pointers to values */ + const ulong *timeout_short; + const ulong *deadlock_search_depth_short; + const ulong *timeout_long; + const ulong *deadlock_search_depth_long; + + /* + weight relates to the desirability of a transaction being killed if it's + part of a deadlock. In a deadlock situation transactions with lower weights + are killed first. + + Examples of using the weight to implement different selection strategies: + + 1. Latest + Keep all weights equal. + 2. Random + Assight weights at random. + (variant: modify a weight randomly before every lock request) + 3. Youngest + Set weight to -NOW() + 4. Minimum locks + count locks granted in your lock manager, store the value as a weight + 5. Minimum work + depends on the definition of "work". For example, store the number + of rows modifies in this transaction (or a length of REDO log for a + transaction) as a weight. + + It is only statistically relevant and is not protected by any locks. + */ + ulong volatile weight; + /* + 'killed' is indirectly protected by waiting_for->lock because + a killed thread needs to clear its 'waiting_for' and thus needs a lock. + That is a thread needs an exclusive lock to read 'killed' reliably. + But other threads may change 'killed' from 0 to 1, a shared + lock is enough for that. + */ + my_bool killed; +#ifndef DBUG_OFF + const char *name; +#endif +} WT_THD; + +#define WT_TIMEOUT ETIMEDOUT +#define WT_OK 0 +#define WT_DEADLOCK -1 +#define WT_DEPTH_EXCEEDED -2 +#define WT_FREE_TO_GO -3 + +void wt_init(void); +void wt_end(void); +void wt_thd_lazy_init(WT_THD *, const ulong *, const ulong *, const ulong *, const ulong *); +void wt_thd_destroy(WT_THD *); +int wt_thd_will_wait_for(WT_THD *, WT_THD *, const WT_RESOURCE_ID *); +int wt_thd_cond_timedwait(WT_THD *, mysql_mutex_t *); +void wt_thd_release(WT_THD *, const WT_RESOURCE_ID *); +#define wt_thd_release_all(THD) wt_thd_release((THD), 0) +my_bool wt_resource_id_memcmp(const void *, const void *); + +C_MODE_END + +#endif diff --git a/database/include/mysql/private/welcome_copyright_notice.h b/database/include/mysql/private/welcome_copyright_notice.h new file mode 100644 index 0000000..22d8d20 --- /dev/null +++ b/database/include/mysql/private/welcome_copyright_notice.h @@ -0,0 +1,30 @@ +/* Copyright (c) 2011, 2017, Oracle and/or its affiliates. + Copyright (c) 2011, 2017, MariaDB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef _welcome_copyright_notice_h_ +#define _welcome_copyright_notice_h_ + +#define COPYRIGHT_NOTICE_CURRENT_YEAR "2018" + +/* + This define specifies copyright notice which is displayed by every MySQL + program on start, or on help screen. +*/ +#define ORACLE_WELCOME_COPYRIGHT_NOTICE(first_year) \ + "Copyright (c) " first_year ", " COPYRIGHT_NOTICE_CURRENT_YEAR \ + ", Oracle, MariaDB Corporation Ab and others.\n" + +#endif /* _welcome_copyright_notice_h_ */ diff --git a/database/include/mysql/private/winservice.h b/database/include/mysql/private/winservice.h new file mode 100644 index 0000000..f9ab3ed --- /dev/null +++ b/database/include/mysql/private/winservice.h @@ -0,0 +1,40 @@ +/* + Copyright (c) 2011, 2012, Monty Program Ab + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +/* + Extract properties of a windows service binary path +*/ +#ifdef __cplusplus +extern "C" { +#endif + +#include +typedef struct mysqld_service_properties_st +{ + char mysqld_exe[MAX_PATH]; + char inifile[MAX_PATH]; + char datadir[MAX_PATH]; + int version_major; + int version_minor; + int version_patch; +} mysqld_service_properties; + +extern int get_mysql_service_properties(const wchar_t *bin_path, + mysqld_service_properties *props); + +#ifdef __cplusplus +} +#endif diff --git a/database/include/mysql/private/wqueue.h b/database/include/mysql/private/wqueue.h new file mode 100644 index 0000000..ce7fe4e --- /dev/null +++ b/database/include/mysql/private/wqueue.h @@ -0,0 +1,40 @@ +/* + Copyright (c) 2007, 2008, Sun Microsystems, Inc, + Copyright (c) 2011, 2012, Monty Program Ab + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef WQUEUE_INCLUDED +#define WQUEUE_INCLUDED + +#include +#include + +/* info about requests in a waiting queue */ +typedef struct st_pagecache_wqueue +{ + struct st_my_thread_var *last_thread; /* circular list of waiting + threads */ +} WQUEUE; + +void wqueue_link_into_queue(WQUEUE *wqueue, struct st_my_thread_var *thread); +void wqueue_unlink_from_queue(WQUEUE *wqueue, struct st_my_thread_var *thread); +void wqueue_add_to_queue(WQUEUE *wqueue, struct st_my_thread_var *thread); +void wqueue_add_and_wait(WQUEUE *wqueue, + struct st_my_thread_var *thread, + mysql_mutex_t *lock); +void wqueue_release_queue(WQUEUE *wqueue); +void wqueue_release_one_locktype_from_queue(WQUEUE *wqueue); + +#endif diff --git a/database/include/mysql/psi/mysql_file.h b/database/include/mysql/psi/mysql_file.h new file mode 100644 index 0000000..a54abd5 --- /dev/null +++ b/database/include/mysql/psi/mysql_file.h @@ -0,0 +1,1440 @@ +/* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef MYSQL_FILE_H +#define MYSQL_FILE_H + +#include + +/* For strlen() */ +#include +/* For MY_STAT */ +#include +/* For my_chsize */ +#include + +/** + @file mysql/psi/mysql_file.h + Instrumentation helpers for mysys file io. + This header file provides the necessary declarations + to use the mysys file API with the performance schema instrumentation. + In some compilers (SunStudio), 'static inline' functions, when declared + but not used, are not optimized away (because they are unused) by default, + so that including a static inline function from a header file does + create unwanted dependencies, causing unresolved symbols at link time. + Other compilers, like gcc, optimize these dependencies by default. + + Since the instrumented APIs declared here are wrapper on top + of mysys file io APIs, including mysql/psi/mysql_file.h assumes that + the dependency on my_sys already exists. +*/ + +#include "mysql/psi/psi.h" + +/** + @defgroup File_instrumentation File Instrumentation + @ingroup Instrumentation_interface + @{ +*/ + +/** + @def mysql_file_fgets(P1, P2, F) + Instrumented fgets. + @c mysql_file_fgets is a replacement for @c fgets. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_file_fgets(P1, P2, F) \ + inline_mysql_file_fgets(__FILE__, __LINE__, P1, P2, F) +#else + #define mysql_file_fgets(P1, P2, F) \ + inline_mysql_file_fgets(P1, P2, F) +#endif + +/** + @def mysql_file_fgetc(F) + Instrumented fgetc. + @c mysql_file_fgetc is a replacement for @c fgetc. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_file_fgetc(F) inline_mysql_file_fgetc(__FILE__, __LINE__, F) +#else + #define mysql_file_fgetc(F) inline_mysql_file_fgetc(F) +#endif + +/** + @def mysql_file_fputs(P1, F) + Instrumented fputs. + @c mysql_file_fputs is a replacement for @c fputs. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_file_fputs(P1, F) \ + inline_mysql_file_fputs(__FILE__, __LINE__, P1, F) +#else + #define mysql_file_fputs(P1, F)\ + inline_mysql_file_fputs(P1, F) +#endif + +/** + @def mysql_file_fputc(P1, F) + Instrumented fputc. + @c mysql_file_fputc is a replacement for @c fputc. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_file_fputc(P1, F) \ + inline_mysql_file_fputc(__FILE__, __LINE__, P1, F) +#else + #define mysql_file_fputc(P1, F) \ + inline_mysql_file_fputc(P1, F) +#endif + +/** + @def mysql_file_fprintf + Instrumented fprintf. + @c mysql_file_fprintf is a replacement for @c fprintf. +*/ +#define mysql_file_fprintf inline_mysql_file_fprintf + +/** + @def mysql_file_vfprintf(F, P1, P2) + Instrumented vfprintf. + @c mysql_file_vfprintf is a replacement for @c vfprintf. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_file_vfprintf(F, P1, P2) \ + inline_mysql_file_vfprintf(__FILE__, __LINE__, F, P1, P2) +#else + #define mysql_file_vfprintf(F, P1, P2) \ + inline_mysql_file_vfprintf(F, P1, P2) +#endif + +/** + @def mysql_file_fflush(F, P1, P2) + Instrumented fflush. + @c mysql_file_fflush is a replacement for @c fflush. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_file_fflush(F) \ + inline_mysql_file_fflush(__FILE__, __LINE__, F) +#else + #define mysql_file_fflush(F) \ + inline_mysql_file_fflush(F) +#endif + +/** + @def mysql_file_feof(F) + Instrumented feof. + @c mysql_file_feof is a replacement for @c feof. +*/ +#define mysql_file_feof(F) inline_mysql_file_feof(F) + +/** + @def mysql_file_fstat(FN, S, FL) + Instrumented fstat. + @c mysql_file_fstat is a replacement for @c my_fstat. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_file_fstat(FN, S, FL) \ + inline_mysql_file_fstat(__FILE__, __LINE__, FN, S, FL) +#else + #define mysql_file_fstat(FN, S, FL) \ + inline_mysql_file_fstat(FN, S, FL) +#endif + +/** + @def mysql_file_stat(K, FN, S, FL) + Instrumented stat. + @c mysql_file_stat is a replacement for @c my_stat. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_file_stat(K, FN, S, FL) \ + inline_mysql_file_stat(K, __FILE__, __LINE__, FN, S, FL) +#else + #define mysql_file_stat(K, FN, S, FL) \ + inline_mysql_file_stat(FN, S, FL) +#endif + +/** + @def mysql_file_chsize(F, P1, P2, P3) + Instrumented chsize. + @c mysql_file_chsize is a replacement for @c my_chsize. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_file_chsize(F, P1, P2, P3) \ + inline_mysql_file_chsize(__FILE__, __LINE__, F, P1, P2, P3) +#else + #define mysql_file_chsize(F, P1, P2, P3) \ + inline_mysql_file_chsize(F, P1, P2, P3) +#endif + +/** + @def mysql_file_fopen(K, N, F1, F2) + Instrumented fopen. + @c mysql_file_fopen is a replacement for @c my_fopen. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_file_fopen(K, N, F1, F2) \ + inline_mysql_file_fopen(K, __FILE__, __LINE__, N, F1, F2) +#else + #define mysql_file_fopen(K, N, F1, F2) \ + inline_mysql_file_fopen(N, F1, F2) +#endif + +/** + @def mysql_file_fclose(FD, FL) + Instrumented fclose. + @c mysql_file_fclose is a replacement for @c my_fclose. + Without the instrumentation, this call will have the same behavior as the + undocumented and possibly platform specific my_fclose(NULL, ...) behavior. + With the instrumentation, mysql_fclose(NULL, ...) will safely return 0, + which is an extension compared to my_fclose and is therefore compliant. + mysql_fclose is on purpose *not* implementing + @code DBUG_ASSERT(file != NULL) @endcode, + since doing so could introduce regressions. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_file_fclose(FD, FL) \ + inline_mysql_file_fclose(__FILE__, __LINE__, FD, FL) +#else + #define mysql_file_fclose(FD, FL) \ + inline_mysql_file_fclose(FD, FL) +#endif + +/** + @def mysql_file_fread(FD, P1, P2, P3) + Instrumented fread. + @c mysql_file_fread is a replacement for @c my_fread. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_file_fread(FD, P1, P2, P3) \ + inline_mysql_file_fread(__FILE__, __LINE__, FD, P1, P2, P3) +#else + #define mysql_file_fread(FD, P1, P2, P3) \ + inline_mysql_file_fread(FD, P1, P2, P3) +#endif + +/** + @def mysql_file_fwrite(FD, P1, P2, P3) + Instrumented fwrite. + @c mysql_file_fwrite is a replacement for @c my_fwrite. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_file_fwrite(FD, P1, P2, P3) \ + inline_mysql_file_fwrite(__FILE__, __LINE__, FD, P1, P2, P3) +#else + #define mysql_file_fwrite(FD, P1, P2, P3) \ + inline_mysql_file_fwrite(FD, P1, P2, P3) +#endif + +/** + @def mysql_file_fseek(FD, P, W, F) + Instrumented fseek. + @c mysql_file_fseek is a replacement for @c my_fseek. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_file_fseek(FD, P, W, F) \ + inline_mysql_file_fseek(__FILE__, __LINE__, FD, P, W, F) +#else + #define mysql_file_fseek(FD, P, W, F) \ + inline_mysql_file_fseek(FD, P, W, F) +#endif + +/** + @def mysql_file_ftell(FD, F) + Instrumented ftell. + @c mysql_file_ftell is a replacement for @c my_ftell. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_file_ftell(FD, F) \ + inline_mysql_file_ftell(__FILE__, __LINE__, FD, F) +#else + #define mysql_file_ftell(FD, F) \ + inline_mysql_file_ftell(FD, F) +#endif + +/** + @def mysql_file_create(K, N, F1, F2, F3) + Instrumented create. + @c mysql_file_create is a replacement for @c my_create. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_file_create(K, N, F1, F2, F3) \ + inline_mysql_file_create(K, __FILE__, __LINE__, N, F1, F2, F3) +#else + #define mysql_file_create(K, N, F1, F2, F3) \ + inline_mysql_file_create(N, F1, F2, F3) +#endif + +/** + @def mysql_file_create_temp(K, T, D, P, M, F) + Instrumented create_temp_file. + @c mysql_file_create_temp is a replacement for @c create_temp_file. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_file_create_temp(K, T, D, P, M, F) \ + inline_mysql_file_create_temp(K, T, D, P, M, F) +#else + #define mysql_file_create_temp(K, T, D, P, M, F) \ + inline_mysql_file_create_temp(T, D, P, M, F) +#endif + +/** + @def mysql_file_open(K, N, F1, F2) + Instrumented open. + @c mysql_file_open is a replacement for @c my_open. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_file_open(K, N, F1, F2) \ + inline_mysql_file_open(K, __FILE__, __LINE__, N, F1, F2) +#else + #define mysql_file_open(K, N, F1, F2) \ + inline_mysql_file_open(N, F1, F2) +#endif + +/** + @def mysql_file_close(FD, F) + Instrumented close. + @c mysql_file_close is a replacement for @c my_close. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_file_close(FD, F) \ + inline_mysql_file_close(__FILE__, __LINE__, FD, F) +#else + #define mysql_file_close(FD, F) \ + inline_mysql_file_close(FD, F) +#endif + +/** + @def mysql_file_read(FD, B, S, F) + Instrumented read. + @c mysql_read is a replacement for @c my_read. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_file_read(FD, B, S, F) \ + inline_mysql_file_read(__FILE__, __LINE__, FD, B, S, F) +#else + #define mysql_file_read(FD, B, S, F) \ + inline_mysql_file_read(FD, B, S, F) +#endif + +/** + @def mysql_file_write(FD, B, S, F) + Instrumented write. + @c mysql_file_write is a replacement for @c my_write. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_file_write(FD, B, S, F) \ + inline_mysql_file_write(__FILE__, __LINE__, FD, B, S, F) +#else + #define mysql_file_write(FD, B, S, F) \ + inline_mysql_file_write(FD, B, S, F) +#endif + +/** + @def mysql_file_pread(FD, B, S, O, F) + Instrumented pread. + @c mysql_pread is a replacement for @c my_pread. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_file_pread(FD, B, S, O, F) \ + inline_mysql_file_pread(__FILE__, __LINE__, FD, B, S, O, F) +#else + #define mysql_file_pread(FD, B, S, O, F) \ + inline_mysql_file_pread(FD, B, S, O, F) +#endif + +/** + @def mysql_file_pwrite(FD, B, S, O, F) + Instrumented pwrite. + @c mysql_file_pwrite is a replacement for @c my_pwrite. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_file_pwrite(FD, B, S, O, F) \ + inline_mysql_file_pwrite(__FILE__, __LINE__, FD, B, S, O, F) +#else + #define mysql_file_pwrite(FD, B, S, O, F) \ + inline_mysql_file_pwrite(FD, B, S, O, F) +#endif + +/** + @def mysql_file_seek(FD, P, W, F) + Instrumented seek. + @c mysql_file_seek is a replacement for @c my_seek. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_file_seek(FD, P, W, F) \ + inline_mysql_file_seek(__FILE__, __LINE__, FD, P, W, F) +#else + #define mysql_file_seek(FD, P, W, F) \ + inline_mysql_file_seek(FD, P, W, F) +#endif + +/** + @def mysql_file_tell(FD, F) + Instrumented tell. + @c mysql_file_tell is a replacement for @c my_tell. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_file_tell(FD, F) \ + inline_mysql_file_tell(__FILE__, __LINE__, FD, F) +#else + #define mysql_file_tell(FD, F) \ + inline_mysql_file_tell(FD, F) +#endif + +/** + @def mysql_file_delete(K, P1, P2) + Instrumented delete. + @c mysql_file_delete is a replacement for @c my_delete. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_file_delete(K, P1, P2) \ + inline_mysql_file_delete(K, __FILE__, __LINE__, P1, P2) +#else + #define mysql_file_delete(K, P1, P2) \ + inline_mysql_file_delete(P1, P2) +#endif + +/** + @def mysql_file_rename(K, P1, P2, P3) + Instrumented rename. + @c mysql_file_rename is a replacement for @c my_rename. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_file_rename(K, P1, P2, P3) \ + inline_mysql_file_rename(K, __FILE__, __LINE__, P1, P2, P3) +#else + #define mysql_file_rename(K, P1, P2, P3) \ + inline_mysql_file_rename(P1, P2, P3) +#endif + +/** + @def mysql_file_create_with_symlink(K, P1, P2, P3, P4, P5) + Instrumented create with symbolic link. + @c mysql_file_create_with_symlink is a replacement + for @c my_create_with_symlink. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_file_create_with_symlink(K, P1, P2, P3, P4, P5) \ + inline_mysql_file_create_with_symlink(K, __FILE__, __LINE__, \ + P1, P2, P3, P4, P5) +#else + #define mysql_file_create_with_symlink(K, P1, P2, P3, P4, P5) \ + inline_mysql_file_create_with_symlink(P1, P2, P3, P4, P5) +#endif + +/** + @def mysql_file_delete_with_symlink(K, P1, P2, P3) + Instrumented delete with symbolic link. + @c mysql_file_delete_with_symlink is a replacement + for @c my_handler_delete_with_symlink. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_file_delete_with_symlink(K, P1, P2, P3) \ + inline_mysql_file_delete_with_symlink(K, __FILE__, __LINE__, P1, P2, P3) +#else + #define mysql_file_delete_with_symlink(K, P1, P2, P3) \ + inline_mysql_file_delete_with_symlink(P1, P2, P3) +#endif + +/** + @def mysql_file_rename_with_symlink(K, P1, P2, P3) + Instrumented rename with symbolic link. + @c mysql_file_rename_with_symlink is a replacement + for @c my_rename_with_symlink. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_file_rename_with_symlink(K, P1, P2, P3) \ + inline_mysql_file_rename_with_symlink(K, __FILE__, __LINE__, P1, P2, P3) +#else + #define mysql_file_rename_with_symlink(K, P1, P2, P3) \ + inline_mysql_file_rename_with_symlink(P1, P2, P3) +#endif + +/** + @def mysql_file_sync(P1, P2) + Instrumented file sync. + @c mysql_file_sync is a replacement for @c my_sync. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_file_sync(P1, P2) \ + inline_mysql_file_sync(__FILE__, __LINE__, P1, P2) +#else + #define mysql_file_sync(P1, P2) \ + inline_mysql_file_sync(P1, P2) +#endif + +/** + An instrumented FILE structure. + @sa MYSQL_FILE +*/ +struct st_mysql_file +{ + /** The real file. */ + FILE *m_file; + /** + The instrumentation hook. + Note that this hook is not conditionally defined, + for binary compatibility of the @c MYSQL_FILE interface. + */ + struct PSI_file *m_psi; +}; + +/** + Type of an instrumented file. + @c MYSQL_FILE is a drop-in replacement for @c FILE. + @sa mysql_file_open +*/ +typedef struct st_mysql_file MYSQL_FILE; + +static inline char * +inline_mysql_file_fgets( +#ifdef HAVE_PSI_INTERFACE + const char *src_file, uint src_line, +#endif + char *str, int size, MYSQL_FILE *file) +{ + char *result; +#ifdef HAVE_PSI_INTERFACE + struct PSI_file_locker *locker= NULL; + PSI_file_locker_state state; + if (likely(PSI_server && file->m_psi)) + { + locker= PSI_server->get_thread_file_stream_locker(&state, file->m_psi, + PSI_FILE_READ); + if (likely(locker != NULL)) + PSI_server->start_file_wait(locker, (size_t) size, src_file, src_line); + } +#endif + result= fgets(str, size, file->m_file); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_file_wait(locker, result ? strlen(result) : 0); +#endif + return result; +} + +static inline int +inline_mysql_file_fgetc( +#ifdef HAVE_PSI_INTERFACE + const char *src_file, uint src_line, +#endif + MYSQL_FILE *file) +{ + int result; +#ifdef HAVE_PSI_INTERFACE + struct PSI_file_locker *locker= NULL; + PSI_file_locker_state state; + if (likely(PSI_server && file->m_psi)) + { + locker= PSI_server->get_thread_file_stream_locker(&state, file->m_psi, + PSI_FILE_READ); + if (likely(locker != NULL)) + PSI_server->start_file_wait(locker, (size_t) 1, src_file, src_line); + } +#endif + result= fgetc(file->m_file); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_file_wait(locker, (size_t) 1); +#endif + return result; +} + +static inline int +inline_mysql_file_fputs( +#ifdef HAVE_PSI_INTERFACE + const char *src_file, uint src_line, +#endif + const char *str, MYSQL_FILE *file) +{ + int result; +#ifdef HAVE_PSI_INTERFACE + struct PSI_file_locker *locker= NULL; + PSI_file_locker_state state; + size_t bytes= 0; + if (likely(PSI_server && file->m_psi)) + { + locker= PSI_server->get_thread_file_stream_locker(&state, file->m_psi, + PSI_FILE_WRITE); + if (likely(locker != NULL)) + { + bytes= str ? strlen(str) : 0; + PSI_server->start_file_wait(locker, bytes, src_file, src_line); + } + } +#endif + result= fputs(str, file->m_file); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_file_wait(locker, bytes); +#endif + return result; +} + +static inline int +inline_mysql_file_fputc( +#ifdef HAVE_PSI_INTERFACE + const char *src_file, uint src_line, +#endif + char c, MYSQL_FILE *file) +{ + int result; +#ifdef HAVE_PSI_INTERFACE + struct PSI_file_locker *locker= NULL; + PSI_file_locker_state state; + if (likely(PSI_server && file->m_psi)) + { + locker= PSI_server->get_thread_file_stream_locker(&state, file->m_psi, + PSI_FILE_WRITE); + if (likely(locker != NULL)) + PSI_server->start_file_wait(locker, (size_t) 1, src_file, src_line); + } +#endif + result= fputc(c, file->m_file); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_file_wait(locker, (size_t) 1); +#endif + return result; +} + +static inline int +inline_mysql_file_fprintf(MYSQL_FILE *file, const char *format, ...) +{ + /* + TODO: figure out how to pass src_file and src_line from the caller. + */ + int result; + va_list args; +#ifdef HAVE_PSI_INTERFACE + struct PSI_file_locker *locker= NULL; + PSI_file_locker_state state; + if (likely(PSI_server && file->m_psi)) + { + locker= PSI_server->get_thread_file_stream_locker(&state, file->m_psi, + PSI_FILE_WRITE); + if (likely(locker != NULL)) + PSI_server->start_file_wait(locker, (size_t) 0, __FILE__, __LINE__); + } +#endif + va_start(args, format); + result= vfprintf(file->m_file, format, args); + va_end(args); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_file_wait(locker, (size_t) result); +#endif + return result; +} + +static inline int +inline_mysql_file_vfprintf( +#ifdef HAVE_PSI_INTERFACE + const char *src_file, uint src_line, +#endif + MYSQL_FILE *file, const char *format, va_list args) +{ + int result; +#ifdef HAVE_PSI_INTERFACE + struct PSI_file_locker *locker= NULL; + PSI_file_locker_state state; + if (likely(PSI_server && file->m_psi)) + { + locker= PSI_server->get_thread_file_stream_locker(&state, file->m_psi, + PSI_FILE_WRITE); + if (likely(locker != NULL)) + PSI_server->start_file_wait(locker, (size_t) 0, src_file, src_line); + } +#endif + result= vfprintf(file->m_file, format, args); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_file_wait(locker, (size_t) result); +#endif + return result; +} + +static inline int +inline_mysql_file_fflush( +#ifdef HAVE_PSI_INTERFACE + const char *src_file, uint src_line, +#endif + MYSQL_FILE *file) +{ + int result; +#ifdef HAVE_PSI_INTERFACE + struct PSI_file_locker *locker= NULL; + PSI_file_locker_state state; + if (likely(PSI_server && file->m_psi)) + { + locker= PSI_server->get_thread_file_stream_locker(&state, file->m_psi, + PSI_FILE_FLUSH); + if (likely(locker != NULL)) + PSI_server->start_file_wait(locker, (size_t) 0, src_file, src_line); + } +#endif + result= fflush(file->m_file); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_file_wait(locker, (size_t) 0); +#endif + return result; +} + +static inline int inline_mysql_file_feof(MYSQL_FILE *file) +{ + /* Not instrumented, there is no wait involved */ + return feof(file->m_file); +} + +static inline int +inline_mysql_file_fstat( +#ifdef HAVE_PSI_INTERFACE + const char *src_file, uint src_line, +#endif + int filenr, MY_STAT *stat_area, myf flags) +{ + int result; +#ifdef HAVE_PSI_INTERFACE + struct PSI_file_locker *locker= NULL; + PSI_file_locker_state state; + if (likely(PSI_server != NULL)) + { + locker= PSI_server->get_thread_file_descriptor_locker(&state, filenr, + PSI_FILE_FSTAT); + if (likely(locker != NULL)) + PSI_server->start_file_wait(locker, (size_t) 0, src_file, src_line); + } +#endif + result= my_fstat(filenr, stat_area, flags); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_file_wait(locker, (size_t) 0); +#endif + return result; +} + +static inline MY_STAT * +inline_mysql_file_stat( +#ifdef HAVE_PSI_INTERFACE + PSI_file_key key, const char *src_file, uint src_line, +#endif + const char *path, MY_STAT *stat_area, myf flags) +{ + MY_STAT *result; +#ifdef HAVE_PSI_INTERFACE + struct PSI_file_locker *locker= NULL; + PSI_file_locker_state state; + if (likely(PSI_server != NULL)) + { + locker= PSI_server->get_thread_file_name_locker(&state, + key, PSI_FILE_STAT, + path, &locker); + if (likely(locker != NULL)) + PSI_server->start_file_open_wait(locker, src_file, src_line); + } +#endif + result= my_stat(path, stat_area, flags); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_file_wait(locker, (size_t) 0); +#endif + return result; +} + +static inline int +inline_mysql_file_chsize( +#ifdef HAVE_PSI_INTERFACE + const char *src_file, uint src_line, +#endif + File file, my_off_t newlength, int filler, myf flags) +{ + int result; +#ifdef HAVE_PSI_INTERFACE + struct PSI_file_locker *locker= NULL; + PSI_file_locker_state state; + if (likely(PSI_server != NULL)) + { + locker= PSI_server->get_thread_file_descriptor_locker(&state, file, + PSI_FILE_CHSIZE); + if (likely(locker != NULL)) + PSI_server->start_file_wait(locker, (size_t) newlength, src_file, + src_line); + } +#endif + result= my_chsize(file, newlength, filler, flags); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_file_wait(locker, (size_t) newlength); +#endif + return result; +} + +static inline MYSQL_FILE* +inline_mysql_file_fopen( +#ifdef HAVE_PSI_INTERFACE + PSI_file_key key, const char *src_file, uint src_line, +#endif + const char *filename, int flags, myf myFlags) +{ + MYSQL_FILE *that; + that= (MYSQL_FILE*) my_malloc(sizeof(MYSQL_FILE), MYF(MY_WME)); + if (likely(that != NULL)) + { + that->m_psi= NULL; + { +#ifdef HAVE_PSI_INTERFACE + struct PSI_file_locker *locker= NULL; + PSI_file_locker_state state; + if (likely(PSI_server != NULL)) + { + locker= PSI_server->get_thread_file_name_locker + (&state, key, PSI_FILE_STREAM_OPEN, filename, that); + if (likely(locker != NULL)) + that->m_psi= PSI_server->start_file_open_wait(locker, src_file, + src_line); + } +#endif + that->m_file= my_fopen(filename, flags, myFlags); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_file_open_wait(locker); +#endif + if (unlikely(that->m_file == NULL)) + { + my_free(that); + return NULL; + } + } + } + return that; +} + +static inline int +inline_mysql_file_fclose( +#ifdef HAVE_PSI_INTERFACE + const char *src_file, uint src_line, +#endif + MYSQL_FILE *file, myf flags) +{ + int result= 0; + if (likely(file != NULL)) + { +#ifdef HAVE_PSI_INTERFACE + struct PSI_file_locker *locker= NULL; + PSI_file_locker_state state; + DBUG_ASSERT(file != NULL); + if (likely(PSI_server && file->m_psi)) + { + locker= PSI_server->get_thread_file_stream_locker(&state, file->m_psi, + PSI_FILE_STREAM_CLOSE); + if (likely(locker != NULL)) + PSI_server->start_file_wait(locker, (size_t) 0, src_file, src_line); + } +#endif + result= my_fclose(file->m_file, flags); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_file_wait(locker, (size_t) 0); +#endif + my_free(file); + } + return result; +} + +static inline size_t +inline_mysql_file_fread( +#ifdef HAVE_PSI_INTERFACE + const char *src_file, uint src_line, +#endif + MYSQL_FILE *file, uchar *buffer, size_t count, myf flags) +{ + size_t result= 0; +#ifdef HAVE_PSI_INTERFACE + struct PSI_file_locker *locker= NULL; + PSI_file_locker_state state; + if (likely(PSI_server && file->m_psi)) + { + locker= PSI_server->get_thread_file_stream_locker(&state, file->m_psi, + PSI_FILE_READ); + if (likely(locker != NULL)) + PSI_server->start_file_wait(locker, count, src_file, src_line); + } +#endif + result= my_fread(file->m_file, buffer, count, flags); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + { + size_t bytes_read; + if (flags & (MY_NABP | MY_FNABP)) + bytes_read= (result == 0) ? count : 0; + else + bytes_read= (result != MY_FILE_ERROR) ? result : 0; + PSI_server->end_file_wait(locker, bytes_read); + } +#endif + return result; +} + +static inline size_t +inline_mysql_file_fwrite( +#ifdef HAVE_PSI_INTERFACE + const char *src_file, uint src_line, +#endif + MYSQL_FILE *file, const uchar *buffer, size_t count, myf flags) +{ + size_t result= 0; +#ifdef HAVE_PSI_INTERFACE + struct PSI_file_locker *locker= NULL; + PSI_file_locker_state state; + if (likely(PSI_server && file->m_psi)) + { + locker= PSI_server->get_thread_file_stream_locker(&state, file->m_psi, + PSI_FILE_WRITE); + if (likely(locker != NULL)) + PSI_server->start_file_wait(locker, count, src_file, src_line); + } +#endif + result= my_fwrite(file->m_file, buffer, count, flags); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + { + size_t bytes_written; + if (flags & (MY_NABP | MY_FNABP)) + bytes_written= (result == 0) ? count : 0; + else + bytes_written= (result != MY_FILE_ERROR) ? result : 0; + PSI_server->end_file_wait(locker, bytes_written); + } +#endif + return result; +} + +static inline my_off_t +inline_mysql_file_fseek( +#ifdef HAVE_PSI_INTERFACE + const char *src_file, uint src_line, +#endif + MYSQL_FILE *file, my_off_t pos, int whence, myf flags) +{ + my_off_t result; +#ifdef HAVE_PSI_INTERFACE + struct PSI_file_locker *locker= NULL; + PSI_file_locker_state state; + if (likely(PSI_server && file->m_psi)) + { + locker= PSI_server->get_thread_file_stream_locker(&state, file->m_psi, + PSI_FILE_SEEK); + if (likely(locker != NULL)) + PSI_server->start_file_wait(locker, (size_t) 0, src_file, src_line); + } +#endif + result= my_fseek(file->m_file, pos, whence, flags); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_file_wait(locker, (size_t) 0); +#endif + return result; +} + +static inline my_off_t +inline_mysql_file_ftell( +#ifdef HAVE_PSI_INTERFACE + const char *src_file, uint src_line, +#endif + MYSQL_FILE *file, myf flags) +{ + my_off_t result; +#ifdef HAVE_PSI_INTERFACE + struct PSI_file_locker *locker= NULL; + PSI_file_locker_state state; + if (likely(PSI_server && file->m_psi)) + { + locker= PSI_server->get_thread_file_stream_locker(&state, file->m_psi, + PSI_FILE_TELL); + if (likely(locker != NULL)) + PSI_server->start_file_wait(locker, (size_t) 0, src_file, src_line); + } +#endif + result= my_ftell(file->m_file, flags); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_file_wait(locker, (size_t) 0); +#endif + return result; +} + +static inline File +inline_mysql_file_create( +#ifdef HAVE_PSI_INTERFACE + PSI_file_key key, const char *src_file, uint src_line, +#endif + const char *filename, int create_flags, int access_flags, myf myFlags) +{ + File file; +#ifdef HAVE_PSI_INTERFACE + struct PSI_file_locker *locker= NULL; + PSI_file_locker_state state; + if (likely(PSI_server != NULL)) + { + locker= PSI_server->get_thread_file_name_locker(&state, key, PSI_FILE_CREATE, + filename, &locker); + if (likely(locker != NULL)) + PSI_server->start_file_open_wait(locker, src_file, src_line); + } +#endif + file= my_create(filename, create_flags, access_flags, myFlags); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_file_open_wait_and_bind_to_descriptor(locker, file); +#endif + return file; +} + +static inline File +inline_mysql_file_create_temp( +#ifdef HAVE_PSI_INTERFACE + PSI_file_key key, +#endif + char *to, const char *dir, const char *pfx, int mode, myf myFlags) +{ + File file; + /* + TODO: This event is instrumented, but not timed. + The problem is that the file name is now known + before the create_temp_file call. + */ + file= create_temp_file(to, dir, pfx, mode, myFlags); +#ifdef HAVE_PSI_INTERFACE + if (likely(PSI_server != NULL)) + PSI_server->create_file(key, to, file); +#endif + return file; +} + +static inline File +inline_mysql_file_open( +#ifdef HAVE_PSI_INTERFACE + PSI_file_key key, const char *src_file, uint src_line, +#endif + const char *filename, int flags, myf myFlags) +{ + File file; +#ifdef HAVE_PSI_INTERFACE + struct PSI_file_locker *locker= NULL; + PSI_file_locker_state state; + if (likely(PSI_server != NULL)) + { + locker= PSI_server->get_thread_file_name_locker(&state, key, PSI_FILE_OPEN, + filename, &locker); + if (likely(locker != NULL)) + PSI_server->start_file_open_wait(locker, src_file, src_line); + } +#endif + file= my_open(filename, flags, myFlags); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_file_open_wait_and_bind_to_descriptor(locker, file); +#endif + return file; +} + +static inline int +inline_mysql_file_close( +#ifdef HAVE_PSI_INTERFACE + const char *src_file, uint src_line, +#endif + File file, myf flags) +{ + int result; +#ifdef HAVE_PSI_INTERFACE + struct PSI_file_locker *locker= NULL; + PSI_file_locker_state state; + if (likely(PSI_server != NULL)) + { + locker= PSI_server->get_thread_file_descriptor_locker(&state, file, + PSI_FILE_CLOSE); + if (likely(locker != NULL)) + PSI_server->start_file_wait(locker, (size_t) 0, src_file, src_line); + } +#endif + result= my_close(file, flags); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_file_wait(locker, (size_t) 0); +#endif + return result; +} + +static inline size_t +inline_mysql_file_read( +#ifdef HAVE_PSI_INTERFACE + const char *src_file, uint src_line, +#endif + File file, uchar *buffer, size_t count, myf flags) +{ + size_t result= 0; +#ifdef HAVE_PSI_INTERFACE + struct PSI_file_locker *locker= NULL; + PSI_file_locker_state state; + if (likely(PSI_server != NULL)) + { + locker= PSI_server->get_thread_file_descriptor_locker(&state, file, + PSI_FILE_READ); + if (likely(locker != NULL)) + PSI_server->start_file_wait(locker, count, src_file, src_line); + } +#endif + result= my_read(file, buffer, count, flags); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + { + size_t bytes_read; + if (flags & (MY_NABP | MY_FNABP)) + bytes_read= (result == 0) ? count : 0; + else + bytes_read= (result != MY_FILE_ERROR) ? result : 0; + PSI_server->end_file_wait(locker, bytes_read); + } +#endif + return result; +} + +static inline size_t +inline_mysql_file_write( +#ifdef HAVE_PSI_INTERFACE + const char *src_file, uint src_line, +#endif + File file, const uchar *buffer, size_t count, myf flags) +{ + size_t result; +#ifdef HAVE_PSI_INTERFACE + struct PSI_file_locker *locker= NULL; + PSI_file_locker_state state; + if (likely(PSI_server != NULL)) + { + locker= PSI_server->get_thread_file_descriptor_locker(&state, file, + PSI_FILE_WRITE); + if (likely(locker != NULL)) + PSI_server->start_file_wait(locker, count, src_file, src_line); + } +#endif + result= my_write(file, buffer, count, flags); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + { + size_t bytes_written; + if (flags & (MY_NABP | MY_FNABP)) + bytes_written= (result == 0) ? count : 0; + else + bytes_written= (result != MY_FILE_ERROR) ? result : 0; + PSI_server->end_file_wait(locker, bytes_written); + } +#endif + return result; +} + +static inline size_t +inline_mysql_file_pread( +#ifdef HAVE_PSI_INTERFACE + const char *src_file, uint src_line, +#endif + File file, uchar *buffer, size_t count, my_off_t offset, myf flags) +{ + size_t result; +#ifdef HAVE_PSI_INTERFACE + struct PSI_file_locker *locker= NULL; + PSI_file_locker_state state; + if (likely(PSI_server != NULL)) + { + locker= PSI_server->get_thread_file_descriptor_locker(&state, file, PSI_FILE_READ); + if (likely(locker != NULL)) + PSI_server->start_file_wait(locker, count, src_file, src_line); + } +#endif + result= my_pread(file, buffer, count, offset, flags); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + { + size_t bytes_read; + if (flags & (MY_NABP | MY_FNABP)) + bytes_read= (result == 0) ? count : 0; + else + bytes_read= (result != MY_FILE_ERROR) ? result : 0; + PSI_server->end_file_wait(locker, bytes_read); + } +#endif + return result; +} + +static inline size_t +inline_mysql_file_pwrite( +#ifdef HAVE_PSI_INTERFACE + const char *src_file, uint src_line, +#endif + File file, const uchar *buffer, size_t count, my_off_t offset, myf flags) +{ + size_t result; +#ifdef HAVE_PSI_INTERFACE + struct PSI_file_locker *locker= NULL; + PSI_file_locker_state state; + if (likely(PSI_server != NULL)) + { + locker= PSI_server->get_thread_file_descriptor_locker(&state, file, + PSI_FILE_WRITE); + if (likely(locker != NULL)) + PSI_server->start_file_wait(locker, count, src_file, src_line); + } +#endif + result= my_pwrite(file, buffer, count, offset, flags); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + { + size_t bytes_written; + if (flags & (MY_NABP | MY_FNABP)) + bytes_written= (result == 0) ? count : 0; + else + bytes_written= (result != MY_FILE_ERROR) ? result : 0; + PSI_server->end_file_wait(locker, bytes_written); + } +#endif + return result; +} + +static inline my_off_t +inline_mysql_file_seek( +#ifdef HAVE_PSI_INTERFACE + const char *src_file, uint src_line, +#endif + File file, my_off_t pos, int whence, myf flags) +{ + my_off_t result; +#ifdef HAVE_PSI_INTERFACE + struct PSI_file_locker *locker= NULL; + PSI_file_locker_state state; + if (likely(PSI_server != NULL)) + { + locker= PSI_server->get_thread_file_descriptor_locker(&state, file, PSI_FILE_SEEK); + if (likely(locker != NULL)) + PSI_server->start_file_wait(locker, (size_t) 0, src_file, src_line); + } +#endif + result= my_seek(file, pos, whence, flags); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_file_wait(locker, (size_t) 0); +#endif + return result; +} + +static inline my_off_t +inline_mysql_file_tell( +#ifdef HAVE_PSI_INTERFACE + const char *src_file, uint src_line, +#endif + File file, myf flags) +{ + my_off_t result; +#ifdef HAVE_PSI_INTERFACE + struct PSI_file_locker *locker= NULL; + PSI_file_locker_state state; + if (likely(PSI_server != NULL)) + { + locker= PSI_server->get_thread_file_descriptor_locker(&state, file, PSI_FILE_TELL); + if (likely(locker != NULL)) + PSI_server->start_file_wait(locker, (size_t) 0, src_file, src_line); + } +#endif + result= my_tell(file, flags); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_file_wait(locker, (size_t) 0); +#endif + return result; +} + +static inline int +inline_mysql_file_delete( +#ifdef HAVE_PSI_INTERFACE + PSI_file_key key, const char *src_file, uint src_line, +#endif + const char *name, myf flags) +{ + int result; +#ifdef HAVE_PSI_INTERFACE + struct PSI_file_locker *locker= NULL; + PSI_file_locker_state state; + if (likely(PSI_server != NULL)) + { + locker= PSI_server->get_thread_file_name_locker(&state, key, PSI_FILE_DELETE, + name, &locker); + if (likely(locker != NULL)) + PSI_server->start_file_wait(locker, (size_t) 0, src_file, src_line); + } +#endif + result= my_delete(name, flags); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_file_wait(locker, (size_t) 0); +#endif + return result; +} + +static inline int +inline_mysql_file_rename( +#ifdef HAVE_PSI_INTERFACE + PSI_file_key key, const char *src_file, uint src_line, +#endif + const char *from, const char *to, myf flags) +{ + int result; +#ifdef HAVE_PSI_INTERFACE + struct PSI_file_locker *locker= NULL; + PSI_file_locker_state state; + if (likely(PSI_server != NULL)) + { + locker= PSI_server->get_thread_file_name_locker(&state, key, PSI_FILE_RENAME, + to, &locker); + if (likely(locker != NULL)) + PSI_server->start_file_wait(locker, (size_t) 0, src_file, src_line); + } +#endif + result= my_rename(from, to, flags); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_file_wait(locker, (size_t) 0); +#endif + return result; +} + + +static inline File +inline_mysql_file_create_with_symlink( +#ifdef HAVE_PSI_INTERFACE + PSI_file_key key, const char *src_file, uint src_line, +#endif + const char *linkname, const char *filename, int create_flags, + int access_flags, myf flags) +{ + File file; +#ifdef HAVE_PSI_INTERFACE + struct PSI_file_locker *locker= NULL; + PSI_file_locker_state state; + if (likely(PSI_server != NULL)) + { + locker= PSI_server->get_thread_file_name_locker(&state, key, PSI_FILE_CREATE, + filename, &locker); + if (likely(locker != NULL)) + PSI_server->start_file_open_wait(locker, src_file, src_line); + } +#endif + file= my_create_with_symlink(linkname, filename, create_flags, access_flags, + flags); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_file_open_wait_and_bind_to_descriptor(locker, file); +#endif + return file; +} + +static inline int +inline_mysql_file_delete_with_symlink( +#ifdef HAVE_PSI_INTERFACE + PSI_file_key key, const char *src_file, uint src_line, +#endif + const char *name, const char *ext, myf flags) +{ + int result; + char fullname[FN_REFLEN]; +#ifdef HAVE_PSI_INTERFACE + struct PSI_file_locker *locker= NULL; + PSI_file_locker_state state; +#endif + fn_format(fullname, name, "", ext, MY_UNPACK_FILENAME | MY_APPEND_EXT); +#ifdef HAVE_PSI_INTERFACE + if (likely(PSI_server != NULL)) + { + locker= PSI_server->get_thread_file_name_locker(&state, key, PSI_FILE_DELETE, + fullname, &locker); + if (likely(locker != NULL)) + PSI_server->start_file_wait(locker, (size_t) 0, src_file, src_line); + } +#endif + result= my_handler_delete_with_symlink(fullname, flags); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_file_wait(locker, (size_t) 0); +#endif + return result; +} + + +static inline int +inline_mysql_file_rename_with_symlink( +#ifdef HAVE_PSI_INTERFACE + PSI_file_key key, const char *src_file, uint src_line, +#endif + const char *from, const char *to, myf flags) +{ + int result; +#ifdef HAVE_PSI_INTERFACE + struct PSI_file_locker *locker= NULL; + PSI_file_locker_state state; + if (likely(PSI_server != NULL)) + { + locker= PSI_server->get_thread_file_name_locker(&state, key, PSI_FILE_RENAME, + to, &locker); + if (likely(locker != NULL)) + PSI_server->start_file_wait(locker, (size_t) 0, src_file, src_line); + } +#endif + result= my_rename_with_symlink(from, to, flags); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_file_wait(locker, (size_t) 0); +#endif + return result; +} + +static inline int +inline_mysql_file_sync( +#ifdef HAVE_PSI_INTERFACE + const char *src_file, uint src_line, +#endif + File fd, myf flags) +{ + int result= 0; +#ifdef HAVE_PSI_INTERFACE + struct PSI_file_locker *locker= NULL; + PSI_file_locker_state state; + if (likely(PSI_server != NULL)) + { + locker= PSI_server->get_thread_file_descriptor_locker(&state, fd, PSI_FILE_SYNC); + if (likely(locker != NULL)) + PSI_server->start_file_wait(locker, (size_t) 0, src_file, src_line); + } +#endif + result= my_sync(fd, flags); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_file_wait(locker, (size_t) 0); +#endif + return result; +} + +/** @} (end of group File_instrumentation) */ + +#endif + diff --git a/database/include/mysql/psi/mysql_thread.h b/database/include/mysql/psi/mysql_thread.h new file mode 100644 index 0000000..eb50ab0 --- /dev/null +++ b/database/include/mysql/psi/mysql_thread.h @@ -0,0 +1,1083 @@ +/* Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef MYSQL_THREAD_H +#define MYSQL_THREAD_H + +/** + @file mysql/psi/mysql_thread.h + Instrumentation helpers for mysys threads, mutexes, + read write locks and conditions. + This header file provides the necessary declarations + to use the mysys thread API with the performance schema instrumentation. + In some compilers (SunStudio), 'static inline' functions, when declared + but not used, are not optimized away (because they are unused) by default, + so that including a static inline function from a header file does + create unwanted dependencies, causing unresolved symbols at link time. + Other compilers, like gcc, optimize these dependencies by default. + + Since the instrumented APIs declared here are wrapper on top + of my_pthread / safemutex / etc APIs, + including mysql/psi/mysql_thread.h assumes that + the dependency on my_pthread and safemutex already exists. +*/ +/* + Note: there are several orthogonal dimensions here. + + Dimension 1: Instrumentation + HAVE_PSI_INTERFACE is defined when the instrumentation is compiled in. + This may happen both in debug or production builds. + + Dimension 2: Debug + SAFE_MUTEX is defined when debug is compiled in. + This may happen both with and without instrumentation. + + Dimension 3: Platform + Mutexes are implemented with one of: + - the pthread library + - fast mutexes + - window apis + This is implemented by various macro definitions in my_pthread.h + + This causes complexity with '#ifdef'-ery that can't be avoided. +*/ + +#include "mysql/psi/psi.h" + +/** + @defgroup Thread_instrumentation Thread Instrumentation + @ingroup Instrumentation_interface + @{ +*/ + +/** + An instrumented mutex structure. + @sa mysql_mutex_t +*/ +struct st_mysql_mutex +{ + /** The real mutex. */ + pthread_mutex_t m_mutex; + /** + The instrumentation hook. + Note that this hook is not conditionally defined, + for binary compatibility of the @c mysql_mutex_t interface. + */ + struct PSI_mutex *m_psi; +}; + +/** + Type of an instrumented mutex. + @c mysql_mutex_t is a drop-in replacement for @c pthread_mutex_t. + @sa mysql_mutex_assert_owner + @sa mysql_mutex_assert_not_owner + @sa mysql_mutex_init + @sa mysql_mutex_lock + @sa mysql_mutex_unlock + @sa mysql_mutex_destroy +*/ +typedef struct st_mysql_mutex mysql_mutex_t; + +/** + An instrumented rwlock structure. + @sa mysql_rwlock_t +*/ +struct st_mysql_rwlock +{ + /** The real rwlock */ + rw_lock_t m_rwlock; + /** + The instrumentation hook. + Note that this hook is not conditionally defined, + for binary compatibility of the @c mysql_rwlock_t interface. + */ + struct PSI_rwlock *m_psi; +}; + +/** + An instrumented prlock structure. + @sa mysql_prlock_t +*/ +struct st_mysql_prlock +{ + /** The real prlock */ + rw_pr_lock_t m_prlock; + /** + The instrumentation hook. + Note that this hook is not conditionally defined, + for binary compatibility of the @c mysql_rwlock_t interface. + */ + struct PSI_rwlock *m_psi; +}; + +/** + Type of an instrumented rwlock. + @c mysql_rwlock_t is a drop-in replacement for @c pthread_rwlock_t. + @sa mysql_rwlock_init + @sa mysql_rwlock_rdlock + @sa mysql_rwlock_tryrdlock + @sa mysql_rwlock_wrlock + @sa mysql_rwlock_trywrlock + @sa mysql_rwlock_unlock + @sa mysql_rwlock_destroy +*/ +typedef struct st_mysql_rwlock mysql_rwlock_t; + +/** + Type of an instrumented prlock. + A prlock is a read write lock that 'prefers readers' (pr). + @c mysql_prlock_t is a drop-in replacement for @c rw_pr_lock_t. + @sa mysql_prlock_init + @sa mysql_prlock_rdlock + @sa mysql_prlock_wrlock + @sa mysql_prlock_unlock + @sa mysql_prlock_destroy +*/ +typedef struct st_mysql_prlock mysql_prlock_t; + +/** + An instrumented cond structure. + @sa mysql_cond_t +*/ +struct st_mysql_cond +{ + /** The real condition */ + pthread_cond_t m_cond; + /** + The instrumentation hook. + Note that this hook is not conditionally defined, + for binary compatibility of the @c mysql_cond_t interface. + */ + struct PSI_cond *m_psi; +}; + +/** + Type of an instrumented condition. + @c mysql_cond_t is a drop-in replacement for @c pthread_cond_t. + @sa mysql_cond_init + @sa mysql_cond_wait + @sa mysql_cond_timedwait + @sa mysql_cond_signal + @sa mysql_cond_broadcast + @sa mysql_cond_destroy +*/ +typedef struct st_mysql_cond mysql_cond_t; + +/* + Consider the following code: + static inline void foo() { bar(); } + when foo() is never called. + + With gcc, foo() is a local static function, so the dependencies + are optimized away at compile time, and there is no dependency on bar(). + With other compilers (HP, Sun Studio), the function foo() implementation + is compiled, and bar() needs to be present to link. + + Due to the existing header dependencies in MySQL code, this header file + is sometime used when it is not needed, which in turn cause link failures + on some platforms. + The proper fix would be to cut these extra dependencies in the calling code. + DISABLE_MYSQL_THREAD_H is a work around to limit dependencies. + DISABLE_MYSQL_PRLOCK_H is similar, and is used to disable specifically + the prlock wrappers. +*/ +#ifndef DISABLE_MYSQL_THREAD_H + +/** + @def mysql_mutex_assert_owner(M) + Wrapper, to use safe_mutex_assert_owner with instrumented mutexes. + @c mysql_mutex_assert_owner is a drop-in replacement + for @c safe_mutex_assert_owner. +*/ +#define mysql_mutex_assert_owner(M) \ + safe_mutex_assert_owner(&(M)->m_mutex) + +/** + @def mysql_mutex_assert_not_owner(M) + Wrapper, to use safe_mutex_assert_not_owner with instrumented mutexes. + @c mysql_mutex_assert_not_owner is a drop-in replacement + for @c safe_mutex_assert_not_owner. +*/ +#define mysql_mutex_assert_not_owner(M) \ + safe_mutex_assert_not_owner(&(M)->m_mutex) + +#define mysql_mutex_setflags(M, F) \ + safe_mutex_setflags(&(M)->m_mutex, (F)) + +/** Wrappers for instrumented prlock objects. */ + +#define mysql_prlock_assert_write_owner(M) \ + rw_pr_lock_assert_write_owner(&(M)->m_prlock) + +#define mysql_prlock_assert_not_write_owner(M) \ + rw_pr_lock_assert_not_write_owner(&(M)->m_prlock) + +/** + @def mysql_mutex_init(K, M, A) + Instrumented mutex_init. + @c mysql_mutex_init is a replacement for @c pthread_mutex_init. + @param K The PSI_mutex_key for this instrumented mutex + @param M The mutex to initialize + @param A Mutex attributes +*/ + +#ifdef HAVE_PSI_INTERFACE + #ifdef SAFE_MUTEX + #define mysql_mutex_init(K, M, A) \ + inline_mysql_mutex_init(K, M, A, #M, __FILE__, __LINE__) + #else + #define mysql_mutex_init(K, M, A) \ + inline_mysql_mutex_init(K, M, A) + #endif +#else + #ifdef SAFE_MUTEX + #define mysql_mutex_init(K, M, A) \ + inline_mysql_mutex_init(M, A, #M, __FILE__, __LINE__) + #else + #define mysql_mutex_init(K, M, A) \ + inline_mysql_mutex_init(M, A) + #endif +#endif + +/** + @def mysql_mutex_destroy(M) + Instrumented mutex_destroy. + @c mysql_mutex_destroy is a drop-in replacement + for @c pthread_mutex_destroy. +*/ +#ifdef SAFE_MUTEX + #define mysql_mutex_destroy(M) \ + inline_mysql_mutex_destroy(M, __FILE__, __LINE__) +#else + #define mysql_mutex_destroy(M) \ + inline_mysql_mutex_destroy(M) +#endif + +/** + @def mysql_mutex_lock(M) + Instrumented mutex_lock. + @c mysql_mutex_lock is a drop-in replacement for @c pthread_mutex_lock. + @param M The mutex to lock +*/ + +#if defined(SAFE_MUTEX) || defined (HAVE_PSI_INTERFACE) + #define mysql_mutex_lock(M) \ + inline_mysql_mutex_lock(M, __FILE__, __LINE__) +#else + #define mysql_mutex_lock(M) \ + inline_mysql_mutex_lock(M) +#endif + +/** + @def mysql_mutex_trylock(M) + Instrumented mutex_lock. + @c mysql_mutex_trylock is a drop-in replacement + for @c pthread_mutex_trylock. +*/ + +#if defined(SAFE_MUTEX) || defined (HAVE_PSI_INTERFACE) + #define mysql_mutex_trylock(M) \ + inline_mysql_mutex_trylock(M, __FILE__, __LINE__) +#else + #define mysql_mutex_trylock(M) \ + inline_mysql_mutex_trylock(M) +#endif + +/** + @def mysql_mutex_unlock(M) + Instrumented mutex_unlock. + @c mysql_mutex_unlock is a drop-in replacement for @c pthread_mutex_unlock. +*/ +#ifdef SAFE_MUTEX + #define mysql_mutex_unlock(M) \ + inline_mysql_mutex_unlock(M, __FILE__, __LINE__) +#else + #define mysql_mutex_unlock(M) \ + inline_mysql_mutex_unlock(M) +#endif + +/** + @def mysql_rwlock_init(K, RW) + Instrumented rwlock_init. + @c mysql_rwlock_init is a replacement for @c pthread_rwlock_init. + Note that pthread_rwlockattr_t is not supported in MySQL. + @param K The PSI_rwlock_key for this instrumented rwlock + @param RW The rwlock to initialize +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_rwlock_init(K, RW) inline_mysql_rwlock_init(K, RW) +#else + #define mysql_rwlock_init(K, RW) inline_mysql_rwlock_init(RW) +#endif + +/** + @def mysql_prlock_init(K, RW) + Instrumented rw_pr_init. + @c mysql_prlock_init is a replacement for @c rw_pr_init. + @param K The PSI_rwlock_key for this instrumented prlock + @param RW The prlock to initialize +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_prlock_init(K, RW) inline_mysql_prlock_init(K, RW) +#else + #define mysql_prlock_init(K, RW) inline_mysql_prlock_init(RW) +#endif + +/** + @def mysql_rwlock_destroy(RW) + Instrumented rwlock_destroy. + @c mysql_rwlock_destroy is a drop-in replacement + for @c pthread_rwlock_destroy. +*/ +#define mysql_rwlock_destroy(RW) inline_mysql_rwlock_destroy(RW) + +/** + @def mysql_prlock_destroy(RW) + Instrumented rw_pr_destroy. + @c mysql_prlock_destroy is a drop-in replacement + for @c rw_pr_destroy. +*/ +#define mysql_prlock_destroy(RW) inline_mysql_prlock_destroy(RW) + +/** + @def mysql_rwlock_rdlock(RW) + Instrumented rwlock_rdlock. + @c mysql_rwlock_rdlock is a drop-in replacement + for @c pthread_rwlock_rdlock. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_rwlock_rdlock(RW) \ + inline_mysql_rwlock_rdlock(RW, __FILE__, __LINE__) +#else + #define mysql_rwlock_rdlock(RW) \ + inline_mysql_rwlock_rdlock(RW) +#endif + +/** + @def mysql_prlock_rdlock(RW) + Instrumented rw_pr_rdlock. + @c mysql_prlock_rdlock is a drop-in replacement + for @c rw_pr_rdlock. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_prlock_rdlock(RW) \ + inline_mysql_prlock_rdlock(RW, __FILE__, __LINE__) +#else + #define mysql_prlock_rdlock(RW) \ + inline_mysql_prlock_rdlock(RW) +#endif + +/** + @def mysql_rwlock_wrlock(RW) + Instrumented rwlock_wrlock. + @c mysql_rwlock_wrlock is a drop-in replacement + for @c pthread_rwlock_wrlock. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_rwlock_wrlock(RW) \ + inline_mysql_rwlock_wrlock(RW, __FILE__, __LINE__) +#else + #define mysql_rwlock_wrlock(RW) \ + inline_mysql_rwlock_wrlock(RW) +#endif + +/** + @def mysql_prlock_wrlock(RW) + Instrumented rw_pr_wrlock. + @c mysql_prlock_wrlock is a drop-in replacement + for @c rw_pr_wrlock. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_prlock_wrlock(RW) \ + inline_mysql_prlock_wrlock(RW, __FILE__, __LINE__) +#else + #define mysql_prlock_wrlock(RW) \ + inline_mysql_prlock_wrlock(RW) +#endif + +/** + @def mysql_rwlock_tryrdlock(RW) + Instrumented rwlock_tryrdlock. + @c mysql_rwlock_tryrdlock is a drop-in replacement + for @c pthread_rwlock_tryrdlock. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_rwlock_tryrdlock(RW) \ + inline_mysql_rwlock_tryrdlock(RW, __FILE__, __LINE__) +#else + #define mysql_rwlock_tryrdlock(RW) \ + inline_mysql_rwlock_tryrdlock(RW) +#endif + +/** + @def mysql_rwlock_trywrlock(RW) + Instrumented rwlock_trywrlock. + @c mysql_rwlock_trywrlock is a drop-in replacement + for @c pthread_rwlock_trywrlock. +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_rwlock_trywrlock(RW) \ + inline_mysql_rwlock_trywrlock(RW, __FILE__, __LINE__) +#else + #define mysql_rwlock_trywrlock(RW) \ + inline_mysql_rwlock_trywrlock(RW) +#endif + +/** + @def mysql_rwlock_unlock(RW) + Instrumented rwlock_unlock. + @c mysql_rwlock_unlock is a drop-in replacement + for @c pthread_rwlock_unlock. +*/ +#define mysql_rwlock_unlock(RW) inline_mysql_rwlock_unlock(RW) + +/** + @def mysql_prlock_unlock(RW) + Instrumented rw_pr_unlock. + @c mysql_prlock_unlock is a drop-in replacement + for @c rw_pr_unlock. +*/ +#define mysql_prlock_unlock(RW) inline_mysql_prlock_unlock(RW) + +/** + @def mysql_cond_init(K, C, A) + Instrumented cond_init. + @c mysql_cond_init is a replacement for @c pthread_cond_init. + @param C The cond to initialize + @param K The PSI_cond_key for this instrumented cond + @param A Condition attributes +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_cond_init(K, C, A) inline_mysql_cond_init(K, C, A) +#else + #define mysql_cond_init(K, C, A) inline_mysql_cond_init(C, A) +#endif + +/** + @def mysql_cond_destroy(C) + Instrumented cond_destroy. + @c mysql_cond_destroy is a drop-in replacement for @c pthread_cond_destroy. +*/ +#define mysql_cond_destroy(C) inline_mysql_cond_destroy(C) + +/** + @def mysql_cond_wait(C) + Instrumented cond_wait. + @c mysql_cond_wait is a drop-in replacement for @c pthread_cond_wait. +*/ +#if defined(HAVE_PSI_INTERFACE) || defined(SAFE_MUTEX) + #define mysql_cond_wait(C, M) \ + inline_mysql_cond_wait(C, M, __FILE__, __LINE__) +#else + #define mysql_cond_wait(C, M) \ + inline_mysql_cond_wait(C, M) +#endif + +/** + @def mysql_cond_timedwait(C, M, W) + Instrumented cond_timedwait. + @c mysql_cond_timedwait is a drop-in replacement + for @c pthread_cond_timedwait. +*/ +#if defined(HAVE_PSI_INTERFACE) || defined(SAFE_MUTEX) + #define mysql_cond_timedwait(C, M, W) \ + inline_mysql_cond_timedwait(C, M, W, __FILE__, __LINE__) +#else + #define mysql_cond_timedwait(C, M, W) \ + inline_mysql_cond_timedwait(C, M, W) +#endif + +/** + @def mysql_cond_signal(C) + Instrumented cond_signal. + @c mysql_cond_signal is a drop-in replacement for @c pthread_cond_signal. +*/ +#define mysql_cond_signal(C) inline_mysql_cond_signal(C) + +/** + @def mysql_cond_broadcast(C) + Instrumented cond_broadcast. + @c mysql_cond_broadcast is a drop-in replacement + for @c pthread_cond_broadcast. +*/ +#define mysql_cond_broadcast(C) inline_mysql_cond_broadcast(C) + + +/** + @def mysql_thread_create(K, P1, P2, P3, P4) + Instrumented pthread_create. + This function creates both the thread instrumentation and a thread. + @c mysql_thread_create is a replacement for @c pthread_create. + The parameter P4 (or, if it is NULL, P1) will be used as the + instrumented thread "indentity". + Providing a P1 / P4 parameter with a different value for each call + will on average improve performances, since this thread identity value + is used internally to randomize access to data and prevent contention. + This is optional, and the improvement is not guaranteed, only statistical. + @param K The PSI_thread_key for this instrumented thread + @param P1 pthread_create parameter 1 + @param P2 pthread_create parameter 2 + @param P3 pthread_create parameter 3 + @param P4 pthread_create parameter 4 +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_thread_create(K, P1, P2, P3, P4) \ + inline_mysql_thread_create(K, P1, P2, P3, P4) +#else + #define mysql_thread_create(K, P1, P2, P3, P4) \ + pthread_create(P1, P2, P3, P4) +#endif + +/** + @def mysql_thread_set_psi_id(I) + Set the thread indentifier for the instrumentation. + @param I The thread identifier +*/ +#ifdef HAVE_PSI_INTERFACE + #define mysql_thread_set_psi_id(I) inline_mysql_thread_set_psi_id(I) +#else + #define mysql_thread_set_psi_id(I) do {} while (0) +#endif + +static inline int inline_mysql_mutex_init( +#ifdef HAVE_PSI_INTERFACE + PSI_mutex_key key, +#endif + mysql_mutex_t *that, + const pthread_mutexattr_t *attr +#ifdef SAFE_MUTEX + , const char *src_name, const char *src_file, uint src_line +#endif + ) +{ +#ifdef HAVE_PSI_INTERFACE + that->m_psi= PSI_server ? PSI_server->init_mutex(key, &that->m_mutex) + : NULL; +#else + that->m_psi= NULL; +#endif +#ifdef SAFE_MUTEX + return safe_mutex_init(&that->m_mutex, attr, src_name, src_file, src_line); +#else + return pthread_mutex_init(&that->m_mutex, attr); +#endif +} + +static inline int inline_mysql_mutex_destroy( + mysql_mutex_t *that +#ifdef SAFE_MUTEX + , const char *src_file, uint src_line +#endif + ) +{ +#ifdef HAVE_PSI_INTERFACE + if (likely(PSI_server && that->m_psi)) + { + PSI_server->destroy_mutex(that->m_psi); + that->m_psi= NULL; + } +#endif +#ifdef SAFE_MUTEX + return safe_mutex_destroy(&that->m_mutex, src_file, src_line); +#else + return pthread_mutex_destroy(&that->m_mutex); +#endif +} + +static inline int inline_mysql_mutex_lock( + mysql_mutex_t *that +#if defined(SAFE_MUTEX) || defined (HAVE_PSI_INTERFACE) + , const char *src_file, uint src_line +#endif + ) +{ + int result; +#ifdef HAVE_PSI_INTERFACE + struct PSI_mutex_locker *locker= NULL; + PSI_mutex_locker_state state; + if (likely(PSI_server && that->m_psi)) + { + locker= PSI_server->get_thread_mutex_locker(&state, that->m_psi, PSI_MUTEX_LOCK); + if (likely(locker != NULL)) + PSI_server->start_mutex_wait(locker, src_file, src_line); + } +#endif +#ifdef SAFE_MUTEX + result= safe_mutex_lock(&that->m_mutex, FALSE, src_file, src_line); +#else + result= pthread_mutex_lock(&that->m_mutex); +#endif +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_mutex_wait(locker, result); +#endif + return result; +} + +static inline int inline_mysql_mutex_trylock( + mysql_mutex_t *that +#if defined(SAFE_MUTEX) || defined (HAVE_PSI_INTERFACE) + , const char *src_file, uint src_line +#endif + ) +{ + int result; +#ifdef HAVE_PSI_INTERFACE + struct PSI_mutex_locker *locker= NULL; + PSI_mutex_locker_state state; + if (likely(PSI_server && that->m_psi)) + { + locker= PSI_server->get_thread_mutex_locker(&state, that->m_psi, PSI_MUTEX_TRYLOCK); + if (likely(locker != NULL)) + PSI_server->start_mutex_wait(locker, src_file, src_line); + } +#endif +#ifdef SAFE_MUTEX + result= safe_mutex_lock(&that->m_mutex, TRUE, src_file, src_line); +#else + result= pthread_mutex_trylock(&that->m_mutex); +#endif +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_mutex_wait(locker, result); +#endif + return result; +} + +static inline int inline_mysql_mutex_unlock( + mysql_mutex_t *that +#ifdef SAFE_MUTEX + , const char *src_file, uint src_line +#endif + ) +{ + int result; +#ifdef HAVE_PSI_INTERFACE + if (likely(PSI_server && that->m_psi)) + PSI_server->unlock_mutex(that->m_psi); +#endif +#ifdef SAFE_MUTEX + result= safe_mutex_unlock(&that->m_mutex, src_file, src_line); +#else + result= pthread_mutex_unlock(&that->m_mutex); +#endif + return result; +} + +static inline int inline_mysql_rwlock_init( +#ifdef HAVE_PSI_INTERFACE + PSI_rwlock_key key, +#endif + mysql_rwlock_t *that) +{ +#ifdef HAVE_PSI_INTERFACE + that->m_psi= (PSI_server ? PSI_server->init_rwlock(key, &that->m_rwlock) + : NULL); +#else + that->m_psi= NULL; +#endif + /* + pthread_rwlockattr_t is not used in MySQL. + */ + return my_rwlock_init(&that->m_rwlock, NULL); +} + +#ifndef DISABLE_MYSQL_PRLOCK_H +static inline int inline_mysql_prlock_init( +#ifdef HAVE_PSI_INTERFACE + PSI_rwlock_key key, +#endif + mysql_prlock_t *that) +{ +#ifdef HAVE_PSI_INTERFACE + that->m_psi= (PSI_server ? PSI_server->init_rwlock(key, &that->m_prlock) + : NULL); +#else + that->m_psi= NULL; +#endif + return rw_pr_init(&that->m_prlock); +} +#endif + +static inline int inline_mysql_rwlock_destroy( + mysql_rwlock_t *that) +{ +#ifdef HAVE_PSI_INTERFACE + if (likely(PSI_server && that->m_psi)) + { + PSI_server->destroy_rwlock(that->m_psi); + that->m_psi= NULL; + } +#endif + return rwlock_destroy(&that->m_rwlock); +} + +#ifndef DISABLE_MYSQL_PRLOCK_H +static inline int inline_mysql_prlock_destroy( + mysql_prlock_t *that) +{ +#ifdef HAVE_PSI_INTERFACE + if (likely(PSI_server && that->m_psi)) + { + PSI_server->destroy_rwlock(that->m_psi); + that->m_psi= NULL; + } +#endif + return rw_pr_destroy(&that->m_prlock); +} +#endif + +static inline int inline_mysql_rwlock_rdlock( + mysql_rwlock_t *that +#ifdef HAVE_PSI_INTERFACE + , const char *src_file, uint src_line +#endif + ) +{ + int result; +#ifdef HAVE_PSI_INTERFACE + struct PSI_rwlock_locker *locker= NULL; + PSI_rwlock_locker_state state; + if (likely(PSI_server && that->m_psi)) + { + locker= PSI_server->get_thread_rwlock_locker(&state, that->m_psi, + PSI_RWLOCK_READLOCK); + if (likely(locker != NULL)) + PSI_server->start_rwlock_rdwait(locker, src_file, src_line); + } +#endif + result= rw_rdlock(&that->m_rwlock); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_rwlock_rdwait(locker, result); +#endif + return result; +} + +#ifndef DISABLE_MYSQL_PRLOCK_H +static inline int inline_mysql_prlock_rdlock( + mysql_prlock_t *that +#ifdef HAVE_PSI_INTERFACE + , const char *src_file, uint src_line +#endif + ) +{ + int result; +#ifdef HAVE_PSI_INTERFACE + struct PSI_rwlock_locker *locker= NULL; + PSI_rwlock_locker_state state; + if (likely(PSI_server && that->m_psi)) + { + locker= PSI_server->get_thread_rwlock_locker(&state, that->m_psi, + PSI_RWLOCK_READLOCK); + if (likely(locker != NULL)) + PSI_server->start_rwlock_rdwait(locker, src_file, src_line); + } +#endif + result= rw_pr_rdlock(&that->m_prlock); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_rwlock_rdwait(locker, result); +#endif + return result; +} +#endif + +static inline int inline_mysql_rwlock_wrlock( + mysql_rwlock_t *that +#ifdef HAVE_PSI_INTERFACE + , const char *src_file, uint src_line +#endif + ) +{ + int result; +#ifdef HAVE_PSI_INTERFACE + struct PSI_rwlock_locker *locker= NULL; + PSI_rwlock_locker_state state; + if (likely(PSI_server && that->m_psi)) + { + locker= PSI_server->get_thread_rwlock_locker(&state, that->m_psi, + PSI_RWLOCK_WRITELOCK); + if (likely(locker != NULL)) + PSI_server->start_rwlock_wrwait(locker, src_file, src_line); + } +#endif + result= rw_wrlock(&that->m_rwlock); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_rwlock_wrwait(locker, result); +#endif + return result; +} + +#ifndef DISABLE_MYSQL_PRLOCK_H +static inline int inline_mysql_prlock_wrlock( + mysql_prlock_t *that +#ifdef HAVE_PSI_INTERFACE + , const char *src_file, uint src_line +#endif + ) +{ + int result; +#ifdef HAVE_PSI_INTERFACE + struct PSI_rwlock_locker *locker= NULL; + PSI_rwlock_locker_state state; + if (likely(PSI_server && that->m_psi)) + { + locker= PSI_server->get_thread_rwlock_locker(&state, that->m_psi, + PSI_RWLOCK_WRITELOCK); + if (likely(locker != NULL)) + PSI_server->start_rwlock_wrwait(locker, src_file, src_line); + } +#endif + result= rw_pr_wrlock(&that->m_prlock); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_rwlock_wrwait(locker, result); +#endif + return result; +} +#endif + +static inline int inline_mysql_rwlock_tryrdlock( + mysql_rwlock_t *that +#ifdef HAVE_PSI_INTERFACE + , const char *src_file, uint src_line +#endif + ) +{ + int result; +#ifdef HAVE_PSI_INTERFACE + struct PSI_rwlock_locker *locker= NULL; + PSI_rwlock_locker_state state; + if (likely(PSI_server && that->m_psi)) + { + locker= PSI_server->get_thread_rwlock_locker(&state, that->m_psi, + PSI_RWLOCK_TRYREADLOCK); + if (likely(locker != NULL)) + PSI_server->start_rwlock_rdwait(locker, src_file, src_line); + } +#endif + result= rw_tryrdlock(&that->m_rwlock); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_rwlock_rdwait(locker, result); +#endif + return result; +} + +static inline int inline_mysql_rwlock_trywrlock( + mysql_rwlock_t *that +#ifdef HAVE_PSI_INTERFACE + , const char *src_file, uint src_line +#endif + ) +{ + int result; +#ifdef HAVE_PSI_INTERFACE + struct PSI_rwlock_locker *locker= NULL; + PSI_rwlock_locker_state state; + if (likely(PSI_server && that->m_psi)) + { + locker= PSI_server->get_thread_rwlock_locker(&state, that->m_psi, + PSI_RWLOCK_TRYWRITELOCK); + if (likely(locker != NULL)) + PSI_server->start_rwlock_wrwait(locker, src_file, src_line); + } +#endif + result= rw_trywrlock(&that->m_rwlock); +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_rwlock_wrwait(locker, result); +#endif + return result; +} + +static inline int inline_mysql_rwlock_unlock( + mysql_rwlock_t *that) +{ + int result; +#ifdef HAVE_PSI_INTERFACE + if (likely(PSI_server && that->m_psi)) + PSI_server->unlock_rwlock(that->m_psi); +#endif + result= rw_unlock(&that->m_rwlock); + return result; +} + +#ifndef DISABLE_MYSQL_PRLOCK_H +static inline int inline_mysql_prlock_unlock( + mysql_prlock_t *that) +{ + int result; +#ifdef HAVE_PSI_INTERFACE + if (likely(PSI_server && that->m_psi)) + PSI_server->unlock_rwlock(that->m_psi); +#endif + result= rw_pr_unlock(&that->m_prlock); + return result; +} +#endif + +static inline int inline_mysql_cond_init( +#ifdef HAVE_PSI_INTERFACE + PSI_cond_key key, +#endif + mysql_cond_t *that, + const pthread_condattr_t *attr) +{ +#ifdef HAVE_PSI_INTERFACE + that->m_psi= (PSI_server ? PSI_server->init_cond(key, &that->m_cond) + : NULL); +#else + that->m_psi= NULL; +#endif + return pthread_cond_init(&that->m_cond, attr); +} + +static inline int inline_mysql_cond_destroy( + mysql_cond_t *that) +{ +#ifdef HAVE_PSI_INTERFACE + if (likely(PSI_server && that->m_psi)) + { + PSI_server->destroy_cond(that->m_psi); + that->m_psi= NULL; + } +#endif + return pthread_cond_destroy(&that->m_cond); +} + +static inline int inline_mysql_cond_wait( + mysql_cond_t *that, + mysql_mutex_t *mutex +#if defined(HAVE_PSI_INTERFACE) || defined(SAFE_MUTEX) + , const char *src_file, uint src_line +#endif + ) +{ + int result; +#ifdef HAVE_PSI_INTERFACE + struct PSI_cond_locker *locker= NULL; + PSI_cond_locker_state state; + if (likely(PSI_server && that->m_psi)) + { + locker= PSI_server->get_thread_cond_locker(&state, that->m_psi, mutex->m_psi, + PSI_COND_WAIT); + if (likely(locker != NULL)) + PSI_server->start_cond_wait(locker, src_file, src_line); + } +#endif +#ifdef SAFE_MUTEX + result= safe_cond_wait(&that->m_cond, &mutex->m_mutex, src_file, src_line); +#else + result= pthread_cond_wait(&that->m_cond, &mutex->m_mutex); +#endif +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_cond_wait(locker, result); +#endif + return result; +} + +static inline int inline_mysql_cond_timedwait( + mysql_cond_t *that, + mysql_mutex_t *mutex, + const struct timespec *abstime +#if defined(HAVE_PSI_INTERFACE) || defined(SAFE_MUTEX) + , const char *src_file, uint src_line +#endif + ) +{ + int result; +#ifdef HAVE_PSI_INTERFACE + struct PSI_cond_locker *locker= NULL; + PSI_cond_locker_state state; + if (likely(PSI_server && that->m_psi)) + { + locker= PSI_server->get_thread_cond_locker(&state, that->m_psi, mutex->m_psi, + PSI_COND_TIMEDWAIT); + if (likely(locker != NULL)) + PSI_server->start_cond_wait(locker, src_file, src_line); + } +#endif +#ifdef SAFE_MUTEX + result= safe_cond_timedwait(&that->m_cond, &mutex->m_mutex, abstime, + src_file, src_line); +#else + result= pthread_cond_timedwait(&that->m_cond, &mutex->m_mutex, abstime); +#endif +#ifdef HAVE_PSI_INTERFACE + if (likely(locker != NULL)) + PSI_server->end_cond_wait(locker, result); +#endif + return result; +} + +static inline int inline_mysql_cond_signal( + mysql_cond_t *that) +{ + int result; +#ifdef HAVE_PSI_INTERFACE + if (likely(PSI_server && that->m_psi)) + PSI_server->signal_cond(that->m_psi); +#endif + result= pthread_cond_signal(&that->m_cond); + return result; +} + +static inline int inline_mysql_cond_broadcast( + mysql_cond_t *that) +{ + int result; +#ifdef HAVE_PSI_INTERFACE + if (likely(PSI_server && that->m_psi)) + PSI_server->broadcast_cond(that->m_psi); +#endif + result= pthread_cond_broadcast(&that->m_cond); + return result; +} + +#ifdef HAVE_PSI_INTERFACE +static inline int inline_mysql_thread_create( + PSI_thread_key key, + pthread_t *thread, const pthread_attr_t *attr, + void *(*start_routine)(void*), void *arg) +{ + int result; + if (likely(PSI_server != NULL)) + result= PSI_server->spawn_thread(key, thread, attr, start_routine, arg); + else + result= pthread_create(thread, attr, start_routine, arg); + return result; +} + +static inline void inline_mysql_thread_set_psi_id(ulong id) +{ + if (likely(PSI_server != NULL)) + { + struct PSI_thread *psi= PSI_server->get_thread(); + if (likely(psi != NULL)) + PSI_server->set_thread_id(psi, id); + } +} +#endif + +#endif /* DISABLE_MYSQL_THREAD_H */ + +/** @} (end of group Thread_instrumentation) */ + +#endif + diff --git a/database/include/mysql/psi/psi.h b/database/include/mysql/psi/psi.h new file mode 100644 index 0000000..3860fb9 --- /dev/null +++ b/database/include/mysql/psi/psi.h @@ -0,0 +1,1312 @@ +/* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef MYSQL_PERFORMANCE_SCHEMA_INTERFACE_H +#define MYSQL_PERFORMANCE_SCHEMA_INTERFACE_H + +#ifndef _global_h +/* + Make sure a .c or .cc file contains an include to my_global.h first. + When this include is missing, all the #ifdef HAVE_XXX have no effect, + and the resulting binary won't build, or won't link, + or will crash at runtime + since various structures will have different binary definitions. +*/ +#error "You must include my_global.h in the code for the build to be correct." +#endif + +C_MODE_START + +/** + @file mysql/psi/psi.h + Performance schema instrumentation interface. + + @defgroup Instrumentation_interface Instrumentation Interface + @ingroup Performance_schema + @{ +*/ + +/** + Interface for an instrumented mutex. + This is an opaque structure. +*/ +struct PSI_mutex; + +/** + Interface for an instrumented rwlock. + This is an opaque structure. +*/ +struct PSI_rwlock; + +/** + Interface for an instrumented condition. + This is an opaque structure. +*/ +struct PSI_cond; + +/** + Interface for an instrumented table share. + This is an opaque structure. +*/ +struct PSI_table_share; + +/** + Interface for an instrumented table handle. + This is an opaque structure. +*/ +struct PSI_table; + +/** + Interface for an instrumented thread. + This is an opaque structure. +*/ +struct PSI_thread; + +/** + Interface for an instrumented file handle. + This is an opaque structure. +*/ +struct PSI_file; + +/** Entry point for the performance schema interface. */ +struct PSI_bootstrap +{ + /** + ABI interface finder. + Calling this method with an interface version number returns either + an instance of the ABI for this version, or NULL. + @param version the interface version number to find + @return a versioned interface (PSI_v1, PSI_v2 or PSI) + @sa PSI_VERSION_1 + @sa PSI_v1 + @sa PSI_VERSION_2 + @sa PSI_v2 + @sa PSI_CURRENT_VERSION + @sa PSI + */ + void* (*get_interface)(int version); +}; + +#ifdef HAVE_PSI_INTERFACE + +/** + @def PSI_VERSION_1 + Performance Schema Interface number for version 1. + This version is supported. +*/ +#define PSI_VERSION_1 1 + +/** + @def PSI_VERSION_2 + Performance Schema Interface number for version 2. + This version is not implemented, it's a placeholder. +*/ +#define PSI_VERSION_2 2 + +/** + @def PSI_CURRENT_VERSION + Performance Schema Interface number for the most recent version. + The most current version is @c PSI_VERSION_1 +*/ +#define PSI_CURRENT_VERSION 1 + +#ifndef USE_PSI_2 +#ifndef USE_PSI_1 +#define USE_PSI_1 +#endif +#endif + +/** + Interface for an instrumented mutex operation. + This is an opaque structure. +*/ +struct PSI_mutex_locker; + +/** + Interface for an instrumented rwlock operation. + This is an opaque structure. +*/ + +struct PSI_rwlock_locker; +/** + Interface for an instrumented condition operation. + This is an opaque structure. +*/ + +struct PSI_cond_locker; + +/** + Interface for an instrumented file operation. + This is an opaque structure. +*/ +struct PSI_file_locker; + +/** Operation performed on an instrumented mutex. */ +enum PSI_mutex_operation +{ + /** Lock. */ + PSI_MUTEX_LOCK= 0, + /** Lock attempt. */ + PSI_MUTEX_TRYLOCK= 1 +}; + +/** Operation performed on an instrumented rwlock. */ +enum PSI_rwlock_operation +{ + /** Read lock. */ + PSI_RWLOCK_READLOCK= 0, + /** Write lock. */ + PSI_RWLOCK_WRITELOCK= 1, + /** Read lock attempt. */ + PSI_RWLOCK_TRYREADLOCK= 2, + /** Write lock attempt. */ + PSI_RWLOCK_TRYWRITELOCK= 3 +}; + +/** Operation performed on an instrumented condition. */ +enum PSI_cond_operation +{ + /** Wait. */ + PSI_COND_WAIT= 0, + /** Wait, with timeout. */ + PSI_COND_TIMEDWAIT= 1 +}; + +/** Operation performed on an instrumented file. */ +enum PSI_file_operation +{ + /** File creation, as in @c create(). */ + PSI_FILE_CREATE= 0, + /** Temporary file creation, as in @c create_temp_file(). */ + PSI_FILE_CREATE_TMP= 1, + /** File open, as in @c open(). */ + PSI_FILE_OPEN= 2, + /** File open, as in @c fopen(). */ + PSI_FILE_STREAM_OPEN= 3, + /** File close, as in @c close(). */ + PSI_FILE_CLOSE= 4, + /** File close, as in @c fclose(). */ + PSI_FILE_STREAM_CLOSE= 5, + /** + Generic file read, such as @c fgets(), @c fgetc(), @c fread(), @c read(), + @c pread(). + */ + PSI_FILE_READ= 6, + /** + Generic file write, such as @c fputs(), @c fputc(), @c fprintf(), + @c vfprintf(), @c fwrite(), @c write(), @c pwrite(). + */ + PSI_FILE_WRITE= 7, + /** Generic file seek, such as @c fseek() or @c seek(). */ + PSI_FILE_SEEK= 8, + /** Generic file tell, such as @c ftell() or @c tell(). */ + PSI_FILE_TELL= 9, + /** File flush, as in @c fflush(). */ + PSI_FILE_FLUSH= 10, + /** File stat, as in @c stat(). */ + PSI_FILE_STAT= 11, + /** File stat, as in @c fstat(). */ + PSI_FILE_FSTAT= 12, + /** File chsize, as in @c my_chsize(). */ + PSI_FILE_CHSIZE= 13, + /** File delete, such as @c my_delete() or @c my_delete_with_symlink(). */ + PSI_FILE_DELETE= 14, + /** File rename, such as @c my_rename() or @c my_rename_with_symlink(). */ + PSI_FILE_RENAME= 15, + /** File sync, as in @c fsync() or @c my_sync(). */ + PSI_FILE_SYNC= 16 +}; + +/** + Interface for an instrumented table operation. + This is an opaque structure. +*/ +struct PSI_table_locker; + +/** + Instrumented mutex key. + To instrument a mutex, a mutex key must be obtained using @c register_mutex. + Using a zero key always disable the instrumentation. +*/ +typedef unsigned int PSI_mutex_key; + +/** + Instrumented rwlock key. + To instrument a rwlock, a rwlock key must be obtained + using @c register_rwlock. + Using a zero key always disable the instrumentation. +*/ +typedef unsigned int PSI_rwlock_key; + +/** + Instrumented cond key. + To instrument a condition, a condition key must be obtained + using @c register_cond. + Using a zero key always disable the instrumentation. +*/ +typedef unsigned int PSI_cond_key; + +/** + Instrumented thread key. + To instrument a thread, a thread key must be obtained + using @c register_thread. + Using a zero key always disable the instrumentation. +*/ +typedef unsigned int PSI_thread_key; + +/** + Instrumented file key. + To instrument a file, a file key must be obtained using @c register_file. + Using a zero key always disable the instrumentation. +*/ +typedef unsigned int PSI_file_key; + +/** + @def USE_PSI_1 + Define USE_PSI_1 to use the interface version 1. +*/ + +/** + @def USE_PSI_2 + Define USE_PSI_2 to use the interface version 2. +*/ + +/** + @def HAVE_PSI_1 + Define HAVE_PSI_1 if the interface version 1 needs to be compiled in. +*/ + +/** + @def HAVE_PSI_2 + Define HAVE_PSI_2 if the interface version 2 needs to be compiled in. +*/ + +/** + Global flag. + This flag indicate that an instrumentation point is a global variable, + or a singleton. +*/ +#define PSI_FLAG_GLOBAL (1 << 0) + +#ifdef USE_PSI_1 +#define HAVE_PSI_1 +#endif + +#ifdef HAVE_PSI_1 + +/** + @defgroup Group_PSI_v1 Application Binary Interface, version 1 + @ingroup Instrumentation_interface + @{ +*/ + +/** + Mutex information. + @since PSI_VERSION_1 + This structure is used to register an instrumented mutex. +*/ +struct PSI_mutex_info_v1 +{ + /** + Pointer to the key assigned to the registered mutex. + */ + PSI_mutex_key *m_key; + /** + The name of the mutex to register. + */ + const char *m_name; + /** + The flags of the mutex to register. + @sa PSI_FLAG_GLOBAL + */ + int m_flags; +}; + +/** + Rwlock information. + @since PSI_VERSION_1 + This structure is used to register an instrumented rwlock. +*/ +struct PSI_rwlock_info_v1 +{ + /** + Pointer to the key assigned to the registered rwlock. + */ + PSI_rwlock_key *m_key; + /** + The name of the rwlock to register. + */ + const char *m_name; + /** + The flags of the rwlock to register. + @sa PSI_FLAG_GLOBAL + */ + int m_flags; +}; + +/** + Condition information. + @since PSI_VERSION_1 + This structure is used to register an instrumented cond. +*/ +struct PSI_cond_info_v1 +{ + /** + Pointer to the key assigned to the registered cond. + */ + PSI_cond_key *m_key; + /** + The name of the cond to register. + */ + const char *m_name; + /** + The flags of the cond to register. + @sa PSI_FLAG_GLOBAL + */ + int m_flags; +}; + +/** + Thread instrument information. + @since PSI_VERSION_1 + This structure is used to register an instrumented thread. +*/ +struct PSI_thread_info_v1 +{ + /** + Pointer to the key assigned to the registered thread. + */ + PSI_thread_key *m_key; + /** + The name of the thread instrument to register. + */ + const char *m_name; + /** + The flags of the thread to register. + @sa PSI_FLAG_GLOBAL + */ + int m_flags; +}; + +/** + File instrument information. + @since PSI_VERSION_1 + This structure is used to register an instrumented file. +*/ +struct PSI_file_info_v1 +{ + /** + Pointer to the key assigned to the registered file. + */ + PSI_file_key *m_key; + /** + The name of the file instrument to register. + */ + const char *m_name; + /** + The flags of the file instrument to register. + @sa PSI_FLAG_GLOBAL + */ + int m_flags; +}; + +/** + State data storage for @c get_thread_mutex_locker_v1_t. + This structure provide temporary storage to a mutex locker. + The content of this structure is considered opaque, + the fields are only hints of what an implementation + of the psi interface can use. + This memory is provided by the instrumented code for performance reasons. + @sa get_thread_mutex_locker_v1_t +*/ +struct PSI_mutex_locker_state_v1 +{ + /** Internal state. */ + uint m_flags; + /** Current mutex. */ + struct PSI_mutex *m_mutex; + /** Current thread. */ + struct PSI_thread *m_thread; + /** Timer start. */ + ulonglong m_timer_start; + /** Timer function. */ + ulonglong (*m_timer)(void); + /** Current operation. */ + enum PSI_mutex_operation m_operation; + /** Source file. */ + const char* m_src_file; + /** Source line number. */ + int m_src_line; + /** Internal data. */ + void *m_wait; +}; + +/** + State data storage for @c get_thread_rwlock_locker_v1_t. + This structure provide temporary storage to a rwlock locker. + The content of this structure is considered opaque, + the fields are only hints of what an implementation + of the psi interface can use. + This memory is provided by the instrumented code for performance reasons. + @sa get_thread_rwlock_locker_v1_t +*/ +struct PSI_rwlock_locker_state_v1 +{ + /** Internal state. */ + uint m_flags; + /** Current rwlock. */ + struct PSI_rwlock *m_rwlock; + /** Current thread. */ + struct PSI_thread *m_thread; + /** Timer start. */ + ulonglong m_timer_start; + /** Timer function. */ + ulonglong (*m_timer)(void); + /** Current operation. */ + enum PSI_rwlock_operation m_operation; + /** Source file. */ + const char* m_src_file; + /** Source line number. */ + int m_src_line; + /** Internal data. */ + void *m_wait; +}; + +/** + State data storage for @c get_thread_cond_locker_v1_t. + This structure provide temporary storage to a condition locker. + The content of this structure is considered opaque, + the fields are only hints of what an implementation + of the psi interface can use. + This memory is provided by the instrumented code for performance reasons. + @sa get_thread_cond_locker_v1_t +*/ +struct PSI_cond_locker_state_v1 +{ + /** Internal state. */ + uint m_flags; + /** Current condition. */ + struct PSI_cond *m_cond; + /** Current mutex. */ + struct PSI_mutex *m_mutex; + /** Current thread. */ + struct PSI_thread *m_thread; + /** Timer start. */ + ulonglong m_timer_start; + /** Timer function. */ + ulonglong (*m_timer)(void); + /** Current operation. */ + enum PSI_cond_operation m_operation; + /** Source file. */ + const char* m_src_file; + /** Source line number. */ + int m_src_line; + /** Internal data. */ + void *m_wait; +}; + +/** + State data storage for @c get_thread_file_name_locker_v1_t. + This structure provide temporary storage to a file locker. + The content of this structure is considered opaque, + the fields are only hints of what an implementation + of the psi interface can use. + This memory is provided by the instrumented code for performance reasons. + @sa get_thread_file_name_locker_v1_t + @sa get_thread_file_stream_locker_v1_t + @sa get_thread_file_descriptor_locker_v1_t +*/ +struct PSI_file_locker_state_v1 +{ + /** Internal state. */ + uint m_flags; + /** Current file. */ + struct PSI_file *m_file; + /** Current thread. */ + struct PSI_thread *m_thread; + /** Operation number of bytes. */ + size_t m_number_of_bytes; + /** Timer start. */ + ulonglong m_timer_start; + /** Timer function. */ + ulonglong (*m_timer)(void); + /** Current operation. */ + enum PSI_file_operation m_operation; + /** Source file. */ + const char* m_src_file; + /** Source line number. */ + int m_src_line; + /** Internal data. */ + void *m_wait; +}; + +/** + State data storage for @c get_thread_table_locker_v1_t. + This structure provide temporary storage to a table locker. + The content of this structure is considered opaque, + the fields are only hints of what an implementation + of the psi interface can use. + This memory is provided by the instrumented code for performance reasons. + @sa get_thread_table_locker_v1_t +*/ +struct PSI_table_locker_state_v1 +{ + /** Internal state. */ + uint m_flags; + /** Current table handle. */ + struct PSI_table *m_table; + /** Current table share. */ + struct PSI_table_share *m_table_share; + /** Instrumentation class. */ + void *m_class; + /** Current thread. */ + struct PSI_thread *m_thread; + /** Timer start. */ + ulonglong m_timer_start; + /** Timer function. */ + ulonglong (*m_timer)(void); + /* Current operation (waiting for WL#4895). */ + /* enum PSI_table_operation m_operation; */ + /** Current table io index. */ + uint m_index; + /** Current table lock index. */ + uint m_lock_index; + /** Source file. */ + const char* m_src_file; + /** Source line number. */ + int m_src_line; + /** Internal data. */ + void *m_wait; +}; + +/* Using typedef to make reuse between PSI_v1 and PSI_v2 easier later. */ + +/** + Mutex registration API. + @param category a category name (typically a plugin name) + @param info an array of mutex info to register + @param count the size of the info array +*/ +typedef void (*register_mutex_v1_t) + (const char *category, struct PSI_mutex_info_v1 *info, int count); + +/** + Rwlock registration API. + @param category a category name (typically a plugin name) + @param info an array of rwlock info to register + @param count the size of the info array +*/ +typedef void (*register_rwlock_v1_t) + (const char *category, struct PSI_rwlock_info_v1 *info, int count); + +/** + Cond registration API. + @param category a category name (typically a plugin name) + @param info an array of cond info to register + @param count the size of the info array +*/ +typedef void (*register_cond_v1_t) + (const char *category, struct PSI_cond_info_v1 *info, int count); + +/** + Thread registration API. + @param category a category name (typically a plugin name) + @param info an array of thread info to register + @param count the size of the info array +*/ +typedef void (*register_thread_v1_t) + (const char *category, struct PSI_thread_info_v1 *info, int count); + +/** + File registration API. + @param category a category name (typically a plugin name) + @param info an array of file info to register + @param count the size of the info array +*/ +typedef void (*register_file_v1_t) + (const char *category, struct PSI_file_info_v1 *info, int count); + +/** + Mutex instrumentation initialisation API. + @param key the registered mutex key + @param identity the address of the mutex itself + @return an instrumented mutex +*/ +typedef struct PSI_mutex* (*init_mutex_v1_t) + (PSI_mutex_key key, const void *identity); + +/** + Mutex instrumentation destruction API. + @param mutex the mutex to destroy +*/ +typedef void (*destroy_mutex_v1_t)(struct PSI_mutex *mutex); + +/** + Rwlock instrumentation initialisation API. + @param key the registered rwlock key + @param identity the address of the rwlock itself + @return an instrumented rwlock +*/ +typedef struct PSI_rwlock* (*init_rwlock_v1_t) + (PSI_rwlock_key key, const void *identity); + +/** + Rwlock instrumentation destruction API. + @param rwlock the rwlock to destroy +*/ +typedef void (*destroy_rwlock_v1_t)(struct PSI_rwlock *rwlock); + +/** + Cond instrumentation initialisation API. + @param key the registered key + @param identity the address of the rwlock itself + @return an instrumented cond +*/ +typedef struct PSI_cond* (*init_cond_v1_t) + (PSI_cond_key key, const void *identity); + +/** + Cond instrumentation destruction API. + @param cond the rcond to destroy +*/ +typedef void (*destroy_cond_v1_t)(struct PSI_cond *cond); + +/** + Acquire a table info by name. + @param schema_name name of the table schema + @param schema_name_length length of schema_name + @param table_name name of the table + @param table_name_length length of table_name + @param identity table identity pointer, typically the table share + @return a table info, or NULL if the table is not instrumented +*/ +typedef struct PSI_table_share* (*get_table_share_v1_t) + (const char *schema_name, int schema_name_length, const char *table_name, + int table_name_length, const void *identity); + +/** + Release a table share. + @param info the table share to release +*/ +typedef void (*release_table_share_v1_t)(struct PSI_table_share *share); + +/** + Open an instrumentation table handle. + @param share the table to open + @param identity table handle identity + @return a table handle, or NULL +*/ +typedef struct PSI_table* (*open_table_v1_t) + (struct PSI_table_share *share, const void *identity); + +/** + Close an instrumentation table handle. + Note that the table handle is invalid after this call. + @param table the table handle to close +*/ +typedef void (*close_table_v1_t)(struct PSI_table *table); + +/** + Create a file instrumentation for a created file. + This method does not create the file itself, but is used to notify the + instrumentation interface that a file was just created. + @param key the file instrumentation key for this file + @param name the file name + @param file the file handle +*/ +typedef void (*create_file_v1_t)(PSI_file_key key, const char *name, + File file); + +/** + Spawn a thread. + This method creates a new thread, with instrumentation. + @param key the instrumentation key for this thread + @param thread the resulting thread + @param attr the thread attributes + @param start_routine the thread start routine + @param arg the thread start routine argument +*/ +typedef int (*spawn_thread_v1_t)(PSI_thread_key key, + pthread_t *thread, + const pthread_attr_t *attr, + void *(*start_routine)(void*), void *arg); + +/** + Create instrumentation for a thread. + @param key the registered key + @param identity an address typical of the thread + @return an instrumented thread +*/ +typedef struct PSI_thread* (*new_thread_v1_t) + (PSI_thread_key key, const void *identity, ulong thread_id); + +/** + Assign an id to an instrumented thread. + @param thread the instrumented thread + @param id the id to assign +*/ +typedef void (*set_thread_id_v1_t)(struct PSI_thread *thread, + unsigned long id); + +/** + Get the instrumentation for the running thread. + For this function to return a result, + the thread instrumentation must have been attached to the + running thread using @c set_thread() + @return the instrumentation for the running thread +*/ +typedef struct PSI_thread* (*get_thread_v1_t)(void); + +/** + Attach a thread instrumentation to the running thread. + In case of thread pools, this method should be called when + a worker thread picks a work item and runs it. + Also, this method should be called if the instrumented code does not + keep the pointer returned by @c new_thread() and relies on @c get_thread() + instead. + @param thread the thread instrumentation +*/ +typedef void (*set_thread_v1_t)(struct PSI_thread *thread); + +/** Delete the current thread instrumentation. */ +typedef void (*delete_current_thread_v1_t)(void); + +/** Delete a thread instrumentation. */ +typedef void (*delete_thread_v1_t)(struct PSI_thread *thread); + +/** + Get a mutex instrumentation locker. + @param state data storage for the locker + @param mutex the instrumented mutex to lock + @return a mutex locker, or NULL +*/ +typedef struct PSI_mutex_locker* (*get_thread_mutex_locker_v1_t) + (struct PSI_mutex_locker_state_v1 *state, + struct PSI_mutex *mutex, + enum PSI_mutex_operation op); + +/** + Get a rwlock instrumentation locker. + @param state data storage for the locker + @param rwlock the instrumented rwlock to lock + @return a rwlock locker, or NULL +*/ +typedef struct PSI_rwlock_locker* (*get_thread_rwlock_locker_v1_t) + (struct PSI_rwlock_locker_state_v1 *state, + struct PSI_rwlock *rwlock, + enum PSI_rwlock_operation op); + +/** + Get a cond instrumentation locker. + @param state data storage for the locker + @param cond the instrumented condition to wait on + @param mutex the instrumented mutex associated with the condition + @return a condition locker, or NULL +*/ +typedef struct PSI_cond_locker* (*get_thread_cond_locker_v1_t) + (struct PSI_cond_locker_state_v1 *state, + struct PSI_cond *cond, struct PSI_mutex *mutex, + enum PSI_cond_operation op); + +/** + Get a table instrumentation locker. + @param state data storage for the locker + @param table the instrumented table to lock + @return a table locker, or NULL +*/ +typedef struct PSI_table_locker* (*get_thread_table_locker_v1_t) + (struct PSI_table_locker_state_v1 *state, + struct PSI_table *table); + +/** + Get a file instrumentation locker, for opening or creating a file. + @param state data storage for the locker + @param key the file instrumentation key + @param op the operation to perform + @param name the file name + @param identity a pointer representative of this file. + @return a file locker, or NULL +*/ +typedef struct PSI_file_locker* (*get_thread_file_name_locker_v1_t) + (struct PSI_file_locker_state_v1 *state, + PSI_file_key key, enum PSI_file_operation op, const char *name, + const void *identity); + +/** + Get a file stream instrumentation locker. + @param state data storage for the locker + @param file the file stream to access + @param op the operation to perform + @return a file locker, or NULL +*/ +typedef struct PSI_file_locker* (*get_thread_file_stream_locker_v1_t) + (struct PSI_file_locker_state_v1 *state, + struct PSI_file *file, enum PSI_file_operation op); + +/** + Get a file instrumentation locker. + @param state data storage for the locker + @param file the file descriptor to access + @param op the operation to perform + @return a file locker, or NULL +*/ +typedef struct PSI_file_locker* (*get_thread_file_descriptor_locker_v1_t) + (struct PSI_file_locker_state_v1 *state, + File file, enum PSI_file_operation op); + +/** + Record a mutex instrumentation unlock event. + @param mutex the mutex instrumentation +*/ +typedef void (*unlock_mutex_v1_t) + (struct PSI_mutex *mutex); + +/** + Record a rwlock instrumentation unlock event. + @param rwlock the rwlock instrumentation +*/ +typedef void (*unlock_rwlock_v1_t) + (struct PSI_rwlock *rwlock); + +/** + Record a condition instrumentation signal event. + @param cond the cond instrumentation +*/ +typedef void (*signal_cond_v1_t) + (struct PSI_cond *cond); + +/** + Record a condition instrumentation broadcast event. + @param cond the cond instrumentation +*/ +typedef void (*broadcast_cond_v1_t) + (struct PSI_cond *cond); + +/** + Record a mutex instrumentation wait start event. + @param locker a thread locker for the running thread +*/ +typedef void (*start_mutex_wait_v1_t) + (struct PSI_mutex_locker *locker, const char *src_file, uint src_line); + +/** + Record a mutex instrumentation wait end event. + @param locker a thread locker for the running thread + @param rc the wait operation return code +*/ +typedef void (*end_mutex_wait_v1_t) + (struct PSI_mutex_locker *locker, int rc); + +/** + Record a rwlock instrumentation read wait start event. + @param locker a thread locker for the running thread + @param must must block: 1 for lock, 0 for trylock +*/ +typedef void (*start_rwlock_rdwait_v1_t) + (struct PSI_rwlock_locker *locker, const char *src_file, uint src_line); + +/** + Record a rwlock instrumentation read wait end event. + @param locker a thread locker for the running thread + @param rc the wait operation return code +*/ +typedef void (*end_rwlock_rdwait_v1_t) + (struct PSI_rwlock_locker *locker, int rc); + +/** + Record a rwlock instrumentation write wait start event. + @param locker a thread locker for the running thread + @param must must block: 1 for lock, 0 for trylock +*/ +typedef void (*start_rwlock_wrwait_v1_t) + (struct PSI_rwlock_locker *locker, const char *src_file, uint src_line); + +/** + Record a rwlock instrumentation write wait end event. + @param locker a thread locker for the running thread + @param rc the wait operation return code +*/ +typedef void (*end_rwlock_wrwait_v1_t) + (struct PSI_rwlock_locker *locker, int rc); + +/** + Record a condition instrumentation wait start event. + @param locker a thread locker for the running thread + @param must must block: 1 for wait, 0 for timedwait +*/ +typedef void (*start_cond_wait_v1_t) + (struct PSI_cond_locker *locker, const char *src_file, uint src_line); + +/** + Record a condition instrumentation wait end event. + @param locker a thread locker for the running thread + @param rc the wait operation return code +*/ +typedef void (*end_cond_wait_v1_t) + (struct PSI_cond_locker *locker, int rc); + +/** + Record a table instrumentation wait start event. + @param locker a table locker for the running thread + @param file the source file name + @param line the source line number +*/ +typedef void (*start_table_wait_v1_t) + (struct PSI_table_locker *locker, const char *src_file, uint src_line); + +/** + Record a table instrumentation wait end event. + @param locker a table locker for the running thread +*/ +typedef void (*end_table_wait_v1_t)(struct PSI_table_locker *locker); + +/** + Start a file instrumentation open operation. + @param locker the file locker + @param op the operation to perform + @param src_file the source file name + @param src_line the source line number + @return an instrumented file handle +*/ +typedef struct PSI_file* (*start_file_open_wait_v1_t) + (struct PSI_file_locker *locker, const char *src_file, uint src_line); + +/** + End a file instrumentation open operation, for file streams. + @param locker the file locker. +*/ +typedef void (*end_file_open_wait_v1_t)(struct PSI_file_locker *locker); + +/** + End a file instrumentation open operation, for non stream files. + @param locker the file locker. + @param file the file number assigned by open() or create() for this file. +*/ +typedef void (*end_file_open_wait_and_bind_to_descriptor_v1_t) + (struct PSI_file_locker *locker, File file); + +/** + Record a file instrumentation start event. + @param locker a file locker for the running thread + @param op file operation to be performed + @param count the number of bytes requested, or 0 if not applicable + @param src_file the source file name + @param src_line the source line number +*/ +typedef void (*start_file_wait_v1_t) + (struct PSI_file_locker *locker, size_t count, + const char *src_file, uint src_line); + +/** + Record a file instrumentation end event. + Note that for file close operations, the instrumented file handle + associated with the file (which was provided to obtain a locker) + is invalid after this call. + @param locker a file locker for the running thread + @param count the number of bytes actually used in the operation, + or 0 if not applicable, or -1 if the operation failed + @sa get_thread_file_name_locker + @sa get_thread_file_stream_locker + @sa get_thread_file_descriptor_locker +*/ +typedef void (*end_file_wait_v1_t) + (struct PSI_file_locker *locker, size_t count); + +/** + Performance Schema Interface, version 1. + @since PSI_VERSION_1 +*/ +struct PSI_v1 +{ + /** @sa register_mutex_v1_t. */ + register_mutex_v1_t register_mutex; + /** @sa register_rwlock_v1_t. */ + register_rwlock_v1_t register_rwlock; + /** @sa register_cond_v1_t. */ + register_cond_v1_t register_cond; + /** @sa register_thread_v1_t. */ + register_thread_v1_t register_thread; + /** @sa register_file_v1_t. */ + register_file_v1_t register_file; + /** @sa init_mutex_v1_t. */ + init_mutex_v1_t init_mutex; + /** @sa destroy_mutex_v1_t. */ + destroy_mutex_v1_t destroy_mutex; + /** @sa init_rwlock_v1_t. */ + init_rwlock_v1_t init_rwlock; + /** @sa destroy_rwlock_v1_t. */ + destroy_rwlock_v1_t destroy_rwlock; + /** @sa init_cond_v1_t. */ + init_cond_v1_t init_cond; + /** @sa destroy_cond_v1_t. */ + destroy_cond_v1_t destroy_cond; + /** @sa get_table_share_v1_t. */ + get_table_share_v1_t get_table_share; + /** @sa release_table_share_v1_t. */ + release_table_share_v1_t release_table_share; + /** @sa open_table_v1_t. */ + open_table_v1_t open_table; + /** @sa close_table_v1_t. */ + close_table_v1_t close_table; + /** @sa create_file_v1_t. */ + create_file_v1_t create_file; + /** @sa spawn_thread_v1_t. */ + spawn_thread_v1_t spawn_thread; + /** @sa new_thread_v1_t. */ + new_thread_v1_t new_thread; + /** @sa set_thread_id_v1_t. */ + set_thread_id_v1_t set_thread_id; + /** @sa get_thread_v1_t. */ + get_thread_v1_t get_thread; + /** @sa set_thread_v1_t. */ + set_thread_v1_t set_thread; + /** @sa delete_current_thread_v1_t. */ + delete_current_thread_v1_t delete_current_thread; + /** @sa delete_thread_v1_t. */ + delete_thread_v1_t delete_thread; + /** @sa get_thread_mutex_locker_v1_t. */ + get_thread_mutex_locker_v1_t get_thread_mutex_locker; + /** @sa get_thread_rwlock_locker_v1_t. */ + get_thread_rwlock_locker_v1_t get_thread_rwlock_locker; + /** @sa get_thread_cond_locker_v1_t. */ + get_thread_cond_locker_v1_t get_thread_cond_locker; + /** @sa get_thread_table_locker_v1_t. */ + get_thread_table_locker_v1_t get_thread_table_locker; + /** @sa get_thread_file_name_locker_v1_t. */ + get_thread_file_name_locker_v1_t get_thread_file_name_locker; + /** @sa get_thread_file_stream_locker_v1_t. */ + get_thread_file_stream_locker_v1_t get_thread_file_stream_locker; + /** @sa get_thread_file_descriptor_locker_v1_t. */ + get_thread_file_descriptor_locker_v1_t get_thread_file_descriptor_locker; + /** @sa unlock_mutex_v1_t. */ + unlock_mutex_v1_t unlock_mutex; + /** @sa unlock_rwlock_v1_t. */ + unlock_rwlock_v1_t unlock_rwlock; + /** @sa signal_cond_v1_t. */ + signal_cond_v1_t signal_cond; + /** @sa broadcast_cond_v1_t. */ + broadcast_cond_v1_t broadcast_cond; + /** @sa start_mutex_wait_v1_t. */ + start_mutex_wait_v1_t start_mutex_wait; + /** @sa end_mutex_wait_v1_t. */ + end_mutex_wait_v1_t end_mutex_wait; + /** @sa start_rwlock_rdwait_v1_t. */ + start_rwlock_rdwait_v1_t start_rwlock_rdwait; + /** @sa end_rwlock_rdwait_v1_t. */ + end_rwlock_rdwait_v1_t end_rwlock_rdwait; + /** @sa start_rwlock_wrwait_v1_t. */ + start_rwlock_wrwait_v1_t start_rwlock_wrwait; + /** @sa end_rwlock_wrwait_v1_t. */ + end_rwlock_wrwait_v1_t end_rwlock_wrwait; + /** @sa start_cond_wait_v1_t. */ + start_cond_wait_v1_t start_cond_wait; + /** @sa end_cond_wait_v1_t. */ + end_cond_wait_v1_t end_cond_wait; + /** @sa start_table_wait_v1_t. */ + start_table_wait_v1_t start_table_wait; + /** @sa end_table_wait_v1_t. */ + end_table_wait_v1_t end_table_wait; + /** @sa start_file_open_wait_v1_t. */ + start_file_open_wait_v1_t start_file_open_wait; + /** @sa end_file_open_wait_v1_t. */ + end_file_open_wait_v1_t end_file_open_wait; + /** @sa end_file_open_wait_and_bind_to_descriptor_v1_t. */ + end_file_open_wait_and_bind_to_descriptor_v1_t + end_file_open_wait_and_bind_to_descriptor; + /** @sa start_file_wait_v1_t. */ + start_file_wait_v1_t start_file_wait; + /** @sa end_file_wait_v1_t. */ + end_file_wait_v1_t end_file_wait; +}; + +/** @} (end of group Group_PSI_v1) */ + +#endif /* HAVE_PSI_1 */ + +#ifdef USE_PSI_2 +#define HAVE_PSI_2 +#endif + +#ifdef HAVE_PSI_2 + +/** + @defgroup Group_PSI_v2 Application Binary Interface, version 2 + @ingroup Instrumentation_interface + @{ +*/ + +/** + Performance Schema Interface, version 2. + This is a placeholder, this interface is not defined yet. + @since PSI_VERSION_2 +*/ +struct PSI_v2 +{ + /** Placeholder */ + int placeholder; + /* ... extended interface ... */ +}; + +/** Placeholder */ +struct PSI_mutex_info_v2 +{ + /** Placeholder */ + int placeholder; +}; + +/** Placeholder */ +struct PSI_rwlock_info_v2 +{ + /** Placeholder */ + int placeholder; +}; + +/** Placeholder */ +struct PSI_cond_info_v2 +{ + /** Placeholder */ + int placeholder; +}; + +/** Placeholder */ +struct PSI_thread_info_v2 +{ + /** Placeholder */ + int placeholder; +}; + +/** Placeholder */ +struct PSI_file_info_v2 +{ + /** Placeholder */ + int placeholder; +}; + +struct PSI_mutex_locker_state_v2 +{ + /** Placeholder */ + int placeholder; +}; + +struct PSI_rwlock_locker_state_v2 +{ + /** Placeholder */ + int placeholder; +}; + +struct PSI_cond_locker_state_v2 +{ + /** Placeholder */ + int placeholder; +}; + +struct PSI_file_locker_state_v2 +{ + /** Placeholder */ + int placeholder; +}; + +struct PSI_table_locker_state_v2 +{ + /** Placeholder */ + int placeholder; +}; + +/** @} (end of group Group_PSI_v2) */ + +#endif /* HAVE_PSI_2 */ + +/** + @typedef PSI + The instrumentation interface for the current version. + @sa PSI_CURRENT_VERSION +*/ + +/** + @typedef PSI_mutex_info + The mutex information structure for the current version. +*/ + +/** + @typedef PSI_rwlock_info + The rwlock information structure for the current version. +*/ + +/** + @typedef PSI_cond_info + The cond information structure for the current version. +*/ + +/** + @typedef PSI_thread_info + The thread information structure for the current version. +*/ + +/** + @typedef PSI_file_info + The file information structure for the current version. +*/ + +/* Export the required version */ +#ifdef USE_PSI_1 +typedef struct PSI_v1 PSI; +typedef struct PSI_mutex_info_v1 PSI_mutex_info; +typedef struct PSI_rwlock_info_v1 PSI_rwlock_info; +typedef struct PSI_cond_info_v1 PSI_cond_info; +typedef struct PSI_thread_info_v1 PSI_thread_info; +typedef struct PSI_file_info_v1 PSI_file_info; +typedef struct PSI_mutex_locker_state_v1 PSI_mutex_locker_state; +typedef struct PSI_rwlock_locker_state_v1 PSI_rwlock_locker_state; +typedef struct PSI_cond_locker_state_v1 PSI_cond_locker_state; +typedef struct PSI_file_locker_state_v1 PSI_file_locker_state; +typedef struct PSI_table_locker_state_v1 PSI_table_locker_state; +#endif + +#ifdef USE_PSI_2 +typedef struct PSI_v2 PSI; +typedef struct PSI_mutex_info_v2 PSI_mutex_info; +typedef struct PSI_rwlock_info_v2 PSI_rwlock_info; +typedef struct PSI_cond_info_v2 PSI_cond_info; +typedef struct PSI_thread_info_v2 PSI_thread_info; +typedef struct PSI_file_info_v2 PSI_file_info; +typedef struct PSI_mutex_locker_state_v2 PSI_mutex_locker_state; +typedef struct PSI_rwlock_locker_state_v2 PSI_rwlock_locker_state; +typedef struct PSI_cond_locker_state_v2 PSI_cond_locker_state; +typedef struct PSI_file_locker_state_v2 PSI_file_locker_state; +typedef struct PSI_table_locker_state_v2 PSI_table_locker_state; +#endif + +#else /* HAVE_PSI_INTERFACE */ + +/** + Dummy structure, used to declare PSI_server when no instrumentation + is available. + The content does not matter, since PSI_server will be NULL. +*/ +struct PSI_none +{ + int opaque; +}; +typedef struct PSI_none PSI; + +#endif /* HAVE_PSI_INTERFACE */ + +extern MYSQL_PLUGIN_IMPORT PSI *PSI_server; + +/** @} */ + +C_MODE_END +#endif /* MYSQL_PERFORMANCE_SCHEMA_INTERFACE_H */ + diff --git a/database/include/mysql/psi/psi_abi_v1.h b/database/include/mysql/psi/psi_abi_v1.h new file mode 100644 index 0000000..67cc8d9 --- /dev/null +++ b/database/include/mysql/psi/psi_abi_v1.h @@ -0,0 +1,26 @@ +/* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +/** + @file mysql/psi/psi_abi_v1.h + ABI check for mysql/psi/psi.h, when using PSI_VERSION_1. + This file is only used to automate detection of changes between versions. + Do not include this file, include mysql/psi/psi.h instead. +*/ +#define USE_PSI_1 +#define HAVE_PSI_INTERFACE +#define _global_h +#include "mysql/psi/psi.h" + diff --git a/database/include/mysql/psi/psi_abi_v2.h b/database/include/mysql/psi/psi_abi_v2.h new file mode 100644 index 0000000..0c3b8ee --- /dev/null +++ b/database/include/mysql/psi/psi_abi_v2.h @@ -0,0 +1,26 @@ +/* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +/** + @file mysql/psi/psi_abi_v1.h + ABI check for mysql/psi/psi.h, when using PSI_VERSION_2. + This file is only used to automate detection of changes between versions. + Do not include this file, include mysql/psi/psi.h instead. +*/ +#define USE_PSI_2 +#define HAVE_PSI_INTERFACE +#define _global_h +#include "mysql/psi/psi.h" + diff --git a/database/include/mysql/service_debug_sync.h b/database/include/mysql/service_debug_sync.h new file mode 100644 index 0000000..752c27b --- /dev/null +++ b/database/include/mysql/service_debug_sync.h @@ -0,0 +1,354 @@ +#ifndef MYSQL_SERVICE_DEBUG_SYNC_INCLUDED +/* Copyright (c) 2009, 2010, Oracle and/or its affiliates. + Copyright (c) 2012, Monty Program Ab + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/** + @file + == Debug Sync Facility == + + The Debug Sync Facility allows placement of synchronization points in + the server code by using the DEBUG_SYNC macro: + + open_tables(...) + + DEBUG_SYNC(thd, "after_open_tables"); + + lock_tables(...) + + When activated, a sync point can + + - Emit a signal and/or + - Wait for a signal + + Nomenclature: + + - signal: A value of a global variable that persists + until overwritten by a new signal. The global + variable can also be seen as a "signal post" + or "flag mast". Then the signal is what is + attached to the "signal post" or "flag mast". + + - emit a signal: Assign the value (the signal) to the global + variable ("set a flag") and broadcast a + global condition to wake those waiting for + a signal. + + - wait for a signal: Loop over waiting for the global condition until + the global value matches the wait-for signal. + + By default, all sync points are inactive. They do nothing (except to + burn a couple of CPU cycles for checking if they are active). + + A sync point becomes active when an action is requested for it. + To do so, put a line like this in the test case file: + + SET DEBUG_SYNC= 'after_open_tables SIGNAL opened WAIT_FOR flushed'; + + This activates the sync point 'after_open_tables'. It requests it to + emit the signal 'opened' and wait for another thread to emit the signal + 'flushed' when the thread's execution runs through the sync point. + + For every sync point there can be one action per thread only. Every + thread can request multiple actions, but only one per sync point. In + other words, a thread can activate multiple sync points. + + Here is an example how to activate and use the sync points: + + --connection conn1 + SET DEBUG_SYNC= 'after_open_tables SIGNAL opened WAIT_FOR flushed'; + send INSERT INTO t1 VALUES(1); + --connection conn2 + SET DEBUG_SYNC= 'now WAIT_FOR opened'; + SET DEBUG_SYNC= 'after_abort_locks SIGNAL flushed'; + FLUSH TABLE t1; + + When conn1 runs through the INSERT statement, it hits the sync point + 'after_open_tables'. It notices that it is active and executes its + action. It emits the signal 'opened' and waits for another thread to + emit the signal 'flushed'. + + conn2 waits immediately at the special sync point 'now' for another + thread to emit the 'opened' signal. + + A signal remains in effect until it is overwritten. If conn1 signals + 'opened' before conn2 reaches 'now', conn2 will still find the 'opened' + signal. It does not wait in this case. + + When conn2 reaches 'after_abort_locks', it signals 'flushed', which lets + conn1 awake. + + Normally the activation of a sync point is cleared when it has been + executed. Sometimes it is necessary to keep the sync point active for + another execution. You can add an execute count to the action: + + SET DEBUG_SYNC= 'name SIGNAL sig EXECUTE 3'; + + This sets the signal point's activation counter to 3. Each execution + decrements the counter. After the third execution the sync point + becomes inactive. + + One of the primary goals of this facility is to eliminate sleeps from + the test suite. In most cases it should be possible to rewrite test + cases so that they do not need to sleep. (But this facility cannot + synchronize multiple processes.) However, to support test development, + and as a last resort, sync point waiting times out. There is a default + timeout, but it can be overridden: + + SET DEBUG_SYNC= 'name WAIT_FOR sig TIMEOUT 10 EXECUTE 2'; + + TIMEOUT 0 is special: If the signal is not present, the wait times out + immediately. + + When a wait timed out (even on TIMEOUT 0), a warning is generated so + that it shows up in the test result. + + You can throw an error message and kill the query when a synchronization + point is hit a certain number of times: + + SET DEBUG_SYNC= 'name HIT_LIMIT 3'; + + Or combine it with signal and/or wait: + + SET DEBUG_SYNC= 'name SIGNAL sig EXECUTE 2 HIT_LIMIT 3'; + + Here the first two hits emit the signal, the third hit returns the error + message and kills the query. + + For cases where you are not sure that an action is taken and thus + cleared in any case, you can force to clear (deactivate) a sync point: + + SET DEBUG_SYNC= 'name CLEAR'; + + If you want to clear all actions and clear the global signal, use: + + SET DEBUG_SYNC= 'RESET'; + + This is the only way to reset the global signal to an empty string. + + For testing of the facility itself you can execute a sync point just + as if it had been hit: + + SET DEBUG_SYNC= 'name TEST'; + + + === Formal Syntax === + + The string to "assign" to the DEBUG_SYNC variable can contain: + + {RESET | + TEST | + CLEAR | + {{SIGNAL | + WAIT_FOR [TIMEOUT ]} + [EXECUTE ] &| HIT_LIMIT } + + Here '&|' means 'and/or'. This means that one of the sections + separated by '&|' must be present or both of them. + + + === Activation/Deactivation === + + The facility is an optional part of the MySQL server. + It is enabled in a debug server by default. + + ./configure --enable-debug-sync + + The Debug Sync Facility, when compiled in, is disabled by default. It + can be enabled by a mysqld command line option: + + --debug-sync-timeout[=default_wait_timeout_value_in_seconds] + + 'default_wait_timeout_value_in_seconds' is the default timeout for the + WAIT_FOR action. If set to zero, the facility stays disabled. + + The facility is enabled by default in the test suite, but can be + disabled with: + + mysql-test-run.pl ... --debug-sync-timeout=0 ... + + Likewise the default wait timeout can be set: + + mysql-test-run.pl ... --debug-sync-timeout=10 ... + + The command line option influences the readable value of the system + variable 'debug_sync'. + + * If the facility is not compiled in, the system variable does not exist. + + * If --debug-sync-timeout=0 the value of the variable reads as "OFF". + + * Otherwise the value reads as "ON - current signal: " followed by the + current signal string, which can be empty. + + The readable variable value is the same, regardless if read as global + or session value. + + Setting the 'debug-sync' system variable requires 'SUPER' privilege. + You can never read back the string that you assigned to the variable, + unless you assign the value that the variable does already have. But + that would give a parse error. A syntactically correct string is + parsed into a debug sync action and stored apart from the variable value. + + + === Implementation === + + Pseudo code for a sync point: + + #define DEBUG_SYNC(thd, sync_point_name) + if (unlikely(opt_debug_sync_timeout)) + debug_sync(thd, STRING_WITH_LEN(sync_point_name)) + + The sync point performs a binary search in a sorted array of actions + for this thread. + + The SET DEBUG_SYNC statement adds a requested action to the array or + overwrites an existing action for the same sync point. When it adds a + new action, the array is sorted again. + + + === A typical synchronization pattern === + + There are quite a few places in MySQL, where we use a synchronization + pattern like this: + + mysql_mutex_lock(&mutex); + thd->enter_cond(&condition_variable, &mutex, new_message); + #if defined(ENABLE_DEBUG_SYNC) + if (!thd->killed && !end_of_wait_condition) + DEBUG_SYNC(thd, "sync_point_name"); + #endif + while (!thd->killed && !end_of_wait_condition) + mysql_cond_wait(&condition_variable, &mutex); + thd->exit_cond(old_message); + + Here some explanations: + + thd->enter_cond() is used to register the condition variable and the + mutex in thd->mysys_var. This is done to allow the thread to be + interrupted (killed) from its sleep. Another thread can find the + condition variable to signal and mutex to use for synchronization in + this thread's THD::mysys_var. + + thd->enter_cond() requires the mutex to be acquired in advance. + + thd->exit_cond() unregisters the condition variable and mutex and + releases the mutex. + + If you want to have a Debug Sync point with the wait, please place it + behind enter_cond(). Only then you can safely decide, if the wait will + be taken. Also you will have THD::proc_info correct when the sync + point emits a signal. DEBUG_SYNC sets its own proc_info, but restores + the previous one before releasing its internal mutex. As soon as + another thread sees the signal, it does also see the proc_info from + before entering the sync point. In this case it will be "new_message", + which is associated with the wait that is to be synchronized. + + In the example above, the wait condition is repeated before the sync + point. This is done to skip the sync point, if no wait takes place. + The sync point is before the loop (not inside the loop) to have it hit + once only. It is possible that the condition variable is signaled + multiple times without the wait condition to be true. + + A bit off-topic: At some places, the loop is taken around the whole + synchronization pattern: + + while (!thd->killed && !end_of_wait_condition) + { + mysql_mutex_lock(&mutex); + thd->enter_cond(&condition_variable, &mutex, new_message); + if (!thd->killed [&& !end_of_wait_condition]) + { + [DEBUG_SYNC(thd, "sync_point_name");] + mysql_cond_wait(&condition_variable, &mutex); + } + thd->exit_cond(old_message); + } + + Note that it is important to repeat the test for thd->killed after + enter_cond(). Otherwise the killing thread may kill this thread after + it tested thd->killed in the loop condition and before it registered + the condition variable and mutex in enter_cond(). In this case, the + killing thread does not know that this thread is going to wait on a + condition variable. It would just set THD::killed. But if we would not + test it again, we would go asleep though we are killed. If the killing + thread would kill us when we are after the second test, but still + before sleeping, we hold the mutex, which is registered in mysys_var. + The killing thread would try to acquire the mutex before signaling + the condition variable. Since the mutex is only released implicitly in + mysql_cond_wait(), the signaling happens at the right place. We + have a safe synchronization. + + === Co-work with the DBUG facility === + + When running the MySQL test suite with the --debug-dbug command line + option, the Debug Sync Facility writes trace messages to the DBUG + trace. The following shell commands proved very useful in extracting + relevant information: + + egrep 'query:|debug_sync_exec:' mysql-test/var/log/mysqld.1.trace + + It shows all executed SQL statements and all actions executed by + synchronization points. + + Sometimes it is also useful to see, which synchronization points have + been run through (hit) with or without executing actions. Then add + "|debug_sync_point:" to the egrep pattern. + + === Further reading === + + For a discussion of other methods to synchronize threads see + http://forge.mysql.com/wiki/MySQL_Internals_Test_Synchronization + + For complete syntax tests, functional tests, and examples see the test + case debug_sync.test. + + See also http://forge.mysql.com/worklog/task.php?id=4259 +*/ + +#ifndef MYSQL_ABI_CHECK +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef MYSQL_DYNAMIC_PLUGIN +extern void (*debug_sync_service)(MYSQL_THD, const char *, size_t); +#else +#define debug_sync_service debug_sync_C_callback_ptr +extern void (*debug_sync_C_callback_ptr)(MYSQL_THD, const char *, size_t); +#endif + +#ifdef ENABLED_DEBUG_SYNC +#define DEBUG_SYNC(thd, name) \ + do { \ + if (debug_sync_service) \ + debug_sync_service(thd, name, sizeof(name)-1); \ + } while(0) +#else +#define DEBUG_SYNC(thd,name) do { } while(0) +#endif + +/* compatibility macro */ +#define DEBUG_SYNC_C(name) DEBUG_SYNC(NULL, name) + +#ifdef __cplusplus +} +#endif + +#define MYSQL_SERVICE_DEBUG_SYNC_INCLUDED +#endif diff --git a/database/include/mysql/service_kill_statement.h b/database/include/mysql/service_kill_statement.h new file mode 100644 index 0000000..ad7827e --- /dev/null +++ b/database/include/mysql/service_kill_statement.h @@ -0,0 +1,71 @@ +/* Copyright (c) 2013, Monty Program Ab. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef MYSQL_SERVICE_KILL_STATEMENT_INCLUDED +#define MYSQL_SERVICE_KILL_STATEMENT_INCLUDED + +/** + @file + This service provides functions that allow plugins to support + the KILL statement. + + In MySQL support for the KILL statement is cooperative. The KILL + statement only sets a "killed" flag. This function returns the value + of that flag. A thread should check it often, especially inside + time-consuming loops, and gracefully abort the operation if it is + non-zero. + + thd_is_killed(thd) + @return 0 - no KILL statement was issued, continue normally + @return 1 - there was a KILL statement, abort the execution. + + thd_kill_level(thd) + @return thd_kill_levels_enum values +*/ + +#ifdef __cplusplus +extern "C" { +#endif + +enum thd_kill_levels { + THD_IS_NOT_KILLED=0, + THD_ABORT_SOFTLY=50, /**< abort when possible, don't leave tables corrupted */ + THD_ABORT_ASAP=100, /**< abort asap */ +}; + +extern struct kill_statement_service_st { + enum thd_kill_levels (*thd_kill_level_func)(const MYSQL_THD); +} *thd_kill_statement_service; + +/* backward compatibility helper */ +#define thd_killed(THD) (thd_kill_level(THD) == THD_ABORT_ASAP) + +#ifdef MYSQL_DYNAMIC_PLUGIN + +#define thd_kill_level(THD) \ + thd_kill_statement_service->thd_kill_level_func(THD) + +#else + +enum thd_kill_levels thd_kill_level(const MYSQL_THD); + +#endif + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/database/include/mysql/service_logger.h b/database/include/mysql/service_logger.h new file mode 100644 index 0000000..9a7b2ce --- /dev/null +++ b/database/include/mysql/service_logger.h @@ -0,0 +1,105 @@ +/* Copyright (C) 2012 Monty Program Ab + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef MYSQL_SERVICE_LOGGER_INCLUDED +#define MYSQL_SERVICE_LOGGER_INCLUDED + +#ifndef MYSQL_ABI_CHECK +#include +#endif + +/** + @file + logger service + + Log file with rotation implementation. + + This service implements logging with possible rotation + of the log files. Interface intentionally tries to be similar to FILE* + related functions. + + So that one can open the log with logger_open(), specifying + the limit on the logfile size and the rotations number. + + Then it's possible to write messages to the log with + logger_printf or logger_vprintf functions. + + As the size of the logfile grows over the specified limit, + it is renamed to 'logfile.1'. The former 'logfile.1' becomes + 'logfile.2', etc. The file 'logfile.rotations' is removed. + That's how the rotation works. + + The rotation can be forced with the logger_rotate() call. + + Finally the log should be closed with logger_close(). + +@notes: + Implementation checks the size of the log file before it starts new + printf into it. So the size of the file gets over the limit when it rotates. + + The access is secured with the mutex, so the log is threadsafe. +*/ + + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct logger_handle_st LOGGER_HANDLE; + +extern struct logger_service_st { + void (*logger_init_mutexes)(); + LOGGER_HANDLE* (*open)(const char *path, + unsigned long long size_limit, + unsigned int rotations); + int (*close)(LOGGER_HANDLE *log); + int (*vprintf)(LOGGER_HANDLE *log, const char *fmt, va_list argptr); + int (*printf)(LOGGER_HANDLE *log, const char *fmt, ...); + int (*write)(LOGGER_HANDLE *log, const char *buffer, size_t size); + int (*rotate)(LOGGER_HANDLE *log); +} *logger_service; + +#if MYSQL_DYNAMIC_PLUGIN + +#define logger_init_mutexes logger_service->logger_init_mutexes +#define logger_open(path, size_limit, rotations) \ + (logger_service->open(path, size_limit, rotations)) +#define logger_close(log) (logger_service->close(log)) +#define logger_rotate(log) (logger_service->rotate(log)) +#define logger_vprintf(log, fmt, argptr) (logger_service->\ + vprintf(log, fmt, argptr)) +#define logger_printf (*logger_service->printf) +#define logger_write(log, buffer, size) \ + (logger_service->write(log, buffer, size)) +#else + + void logger_init_mutexes(); + LOGGER_HANDLE *logger_open(const char *path, + unsigned long long size_limit, + unsigned int rotations); + int logger_close(LOGGER_HANDLE *log); + int logger_vprintf(LOGGER_HANDLE *log, const char *fmt, va_list argptr); + int logger_printf(LOGGER_HANDLE *log, const char *fmt, ...); + int logger_write(LOGGER_HANDLE *log, const char *buffer, size_t size); + int logger_rotate(LOGGER_HANDLE *log); +#endif + + +#ifdef __cplusplus +} +#endif + +#endif /*MYSQL_SERVICE_LOGGER_INCLUDED*/ + diff --git a/database/include/mysql/service_my_snprintf.h b/database/include/mysql/service_my_snprintf.h new file mode 100644 index 0000000..064a505 --- /dev/null +++ b/database/include/mysql/service_my_snprintf.h @@ -0,0 +1,102 @@ +#ifndef MYSQL_SERVICE_MY_SNPRINTF_INCLUDED +/* Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/** + @file + my_snprintf service + + Portable and limited vsnprintf() implementation. + + This is a portable, limited vsnprintf() implementation, with some + extra features. "Portable" means that it'll produce identical result + on all platforms (for example, on Windows and Linux system printf %e + formats the exponent differently, on different systems %p either + prints leading 0x or not, %s may accept null pointer or crash on + it). "Limited" means that it does not support all the C89 features. + But it supports few extensions, not in any standard. + + my_vsnprintf(to, n, fmt, ap) + + @param[out] to A buffer to store the result in + @param[in] n Store up to n-1 characters, followed by an end 0 + @param[in] fmt printf-like format string + @param[in] ap Arguments + + @return a number of bytes written to a buffer *excluding* terminating '\0' + + @post + The syntax of a format string is generally the same: + % + where everithing but the format is optional. + + Three one-character flags are recognized: + '0' has the standard zero-padding semantics; + '-' is parsed, but silently ignored; + '`' (backtick) is only supported for strings (%s) and means that the + string will be quoted according to MySQL identifier quoting rules. + + Both and can be specified as numbers or '*'. + If an asterisk is used, an argument of type int is consumed. + + can be 'l', 'll', or 'z'. + + Supported formats are 's' (null pointer is accepted, printed as + "(null)"), 'b' (extension, see below), 'c', 'd', 'i', 'u', 'x', 'o', + 'X', 'p' (works as 0x%x), 'f', 'g'. + + Standard syntax for positional arguments $n is supported. + + Extensions: + + Flag '`' (backtick): see above. + + Format 'b': binary buffer, prints exactly bytes from the + argument, without stopping at '\0'. +*/ + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef MYSQL_ABI_CHECK +#include +#include +#endif + +extern struct my_snprintf_service_st { + size_t (*my_snprintf_type)(char*, size_t, const char*, ...); + size_t (*my_vsnprintf_type)(char *, size_t, const char*, va_list); +} *my_snprintf_service; + +#ifdef MYSQL_DYNAMIC_PLUGIN + +#define my_vsnprintf my_snprintf_service->my_vsnprintf_type +#define my_snprintf my_snprintf_service->my_snprintf_type + +#else + +size_t my_snprintf(char* to, size_t n, const char* fmt, ...); +size_t my_vsnprintf(char *to, size_t n, const char* fmt, va_list ap); + +#endif + +#ifdef __cplusplus +} +#endif + +#define MYSQL_SERVICE_MY_SNPRINTF_INCLUDED +#endif + diff --git a/database/include/mysql/service_progress_report.h b/database/include/mysql/service_progress_report.h new file mode 100644 index 0000000..04b745f --- /dev/null +++ b/database/include/mysql/service_progress_report.h @@ -0,0 +1,82 @@ +#ifndef MYSQL_SERVICE_PROGRESS_REPORT_INCLUDED +/* Copyright (C) 2011 Monty Program Ab + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + +/** + @file + This service allows plugins to report progress of long running operations + to the server. The progress report is visible in SHOW PROCESSLIST, + INFORMATION_SCHEMA.PROCESSLIST, and is sent to the client + if requested. + + The functions are documented at + http://kb.askmonty.org/en/progress-reporting#how-to-add-support-for-progress-reporting-to-a-storage-engine +*/ + +#ifdef __cplusplus +extern "C" { +#endif + +#define thd_proc_info(thd, msg) set_thd_proc_info(thd, msg, \ + __func__, __FILE__, __LINE__) + +extern struct progress_report_service_st { + void (*thd_progress_init_func)(MYSQL_THD thd, unsigned int max_stage); + void (*thd_progress_report_func)(MYSQL_THD thd, + unsigned long long progress, + unsigned long long max_progress); + void (*thd_progress_next_stage_func)(MYSQL_THD thd); + void (*thd_progress_end_func)(MYSQL_THD thd); + const char *(*set_thd_proc_info_func)(MYSQL_THD, const char *info, + const char *func, + const char *file, + unsigned int line); +} *progress_report_service; + +#ifdef MYSQL_DYNAMIC_PLUGIN + +#define thd_progress_init(thd,max_stage) (progress_report_service->thd_progress_init_func((thd),(max_stage))) +#define thd_progress_report(thd, progress, max_progress) (progress_report_service->thd_progress_report_func((thd), (progress), (max_progress))) +#define thd_progress_next_stage(thd) (progress_report_service->thd_progress_next_stage_func(thd)) +#define thd_progress_end(thd) (progress_report_service->thd_progress_end_func(thd)) +#define set_thd_proc_info(thd,info,func,file,line) (progress_report_service->set_thd_proc_info_func((thd),(info),(func),(file),(line))) + +#else + +/** + Report progress for long running operations + + @param thd User thread connection handle + @param progress Where we are now + @param max_progress Progress will continue up to this +*/ +void thd_progress_init(MYSQL_THD thd, unsigned int max_stage); +void thd_progress_report(MYSQL_THD thd, + unsigned long long progress, + unsigned long long max_progress); +void thd_progress_next_stage(MYSQL_THD thd); +void thd_progress_end(MYSQL_THD thd); +const char *set_thd_proc_info(MYSQL_THD, const char * info, const char *func, + const char *file, unsigned int line); + +#endif + +#ifdef __cplusplus +} +#endif + +#define MYSQL_SERVICE_PROGRESS_REPORT_INCLUDED +#endif + diff --git a/database/include/mysql/service_thd_alloc.h b/database/include/mysql/service_thd_alloc.h new file mode 100644 index 0000000..2f783ba --- /dev/null +++ b/database/include/mysql/service_thd_alloc.h @@ -0,0 +1,130 @@ +#ifndef MYSQL_SERVICE_THD_ALLOC_INCLUDED +/* Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +/** + @file + This service provdes functions to allocate memory in a connection local + memory pool. The memory allocated there will be automatically freed at the + end of the statement, don't use it for allocations that should live longer + than that. For short living allocations this is more efficient than + using my_malloc and friends, and automatic "garbage collection" allows not + to think about memory leaks. + + The pool is best for small to medium objects, don't use it for large + allocations - they are better served with my_malloc. +*/ + +#ifndef MYSQL_ABI_CHECK +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +struct st_mysql_lex_string +{ + char *str; + size_t length; +}; +typedef struct st_mysql_lex_string MYSQL_LEX_STRING; + +extern struct thd_alloc_service_st { + void *(*thd_alloc_func)(MYSQL_THD, unsigned int); + void *(*thd_calloc_func)(MYSQL_THD, unsigned int); + char *(*thd_strdup_func)(MYSQL_THD, const char *); + char *(*thd_strmake_func)(MYSQL_THD, const char *, unsigned int); + void *(*thd_memdup_func)(MYSQL_THD, const void*, unsigned int); + MYSQL_LEX_STRING *(*thd_make_lex_string_func)(MYSQL_THD, MYSQL_LEX_STRING *, + const char *, unsigned int, int); +} *thd_alloc_service; + +#ifdef MYSQL_DYNAMIC_PLUGIN + +#define thd_alloc(thd,size) (thd_alloc_service->thd_alloc_func((thd), (size))) + +#define thd_calloc(thd,size) (thd_alloc_service->thd_calloc_func((thd), (size))) + +#define thd_strdup(thd,str) (thd_alloc_service->thd_strdup_func((thd), (str))) + +#define thd_strmake(thd,str,size) \ + (thd_alloc_service->thd_strmake_func((thd), (str), (size))) + +#define thd_memdup(thd,str,size) \ + (thd_alloc_service->thd_memdup_func((thd), (str), (size))) + +#define thd_make_lex_string(thd, lex_str, str, size, allocate_lex_string) \ + (thd_alloc_service->thd_make_lex_string_func((thd), (lex_str), (str), \ + (size), (allocate_lex_string))) + +#else + +/** + Allocate memory in the connection's local memory pool + + @details + When properly used in place of @c my_malloc(), this can significantly + improve concurrency. Don't use this or related functions to allocate + large chunks of memory. Use for temporary storage only. The memory + will be freed automatically at the end of the statement; no explicit + code is required to prevent memory leaks. + + @see alloc_root() +*/ +void *thd_alloc(MYSQL_THD thd, unsigned int size); +/** + @see thd_alloc() +*/ +void *thd_calloc(MYSQL_THD thd, unsigned int size); +/** + @see thd_alloc() +*/ +char *thd_strdup(MYSQL_THD thd, const char *str); +/** + @see thd_alloc() +*/ +char *thd_strmake(MYSQL_THD thd, const char *str, unsigned int size); +/** + @see thd_alloc() +*/ +void *thd_memdup(MYSQL_THD thd, const void* str, unsigned int size); + +/** + Create a LEX_STRING in this connection's local memory pool + + @param thd user thread connection handle + @param lex_str pointer to LEX_STRING object to be initialized + @param str initializer to be copied into lex_str + @param size length of str, in bytes + @param allocate_lex_string flag: if TRUE, allocate new LEX_STRING object, + instead of using lex_str value + @return NULL on failure, or pointer to the LEX_STRING object + + @see thd_alloc() +*/ +MYSQL_LEX_STRING *thd_make_lex_string(MYSQL_THD thd, MYSQL_LEX_STRING *lex_str, + const char *str, unsigned int size, + int allocate_lex_string); + +#endif + +#ifdef __cplusplus +} +#endif + +#define MYSQL_SERVICE_THD_ALLOC_INCLUDED +#endif + diff --git a/database/include/mysql/service_thd_wait.h b/database/include/mysql/service_thd_wait.h new file mode 100644 index 0000000..cafb6b9 --- /dev/null +++ b/database/include/mysql/service_thd_wait.h @@ -0,0 +1,103 @@ +/* Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifndef MYSQL_SERVICE_THD_WAIT_INCLUDED +#define MYSQL_SERVICE_THD_WAIT_INCLUDED + +/** + @file include/mysql/service_thd_wait.h + This service provides functions for plugins and storage engines to report + when they are going to sleep/stall. + + SYNOPSIS + thd_wait_begin() - call just before a wait begins + thd Thread object + Use NULL if the thd is NOT known. + wait_type Type of wait + 1 -- short wait (e.g. for mutex) + 2 -- medium wait (e.g. for disk io) + 3 -- large wait (e.g. for locked row/table) + NOTES + This is used by the threadpool to have better knowledge of which + threads that currently are actively running on CPUs. When a thread + reports that it's going to sleep/stall, the threadpool scheduler is + free to start another thread in the pool most likely. The expected wait + time is simply an indication of how long the wait is expected to + become, the real wait time could be very different. + + thd_wait_end() called immediately after the wait is complete + + thd_wait_end() MUST be called if thd_wait_begin() was called. + + Using thd_wait_...() service is optional but recommended. Using it will + improve performance as the thread pool will be more active at managing the + thread workload. +*/ + +#ifdef __cplusplus +extern "C" { +#endif + +/* + One should only report wait events that could potentially block for a + long time. A mutex wait is too short of an event to report. The reason + is that an event which is reported leads to a new thread starts + executing a query and this has a negative impact of usage of CPU caches + and thus the expected gain of starting a new thread must be higher than + the expected cost of lost performance due to starting a new thread. + + Good examples of events that should be reported are waiting for row locks + that could easily be for many milliseconds or even seconds and the same + holds true for global read locks, table locks and other meta data locks. + Another event of interest is going to sleep for an extended time. +*/ +typedef enum _thd_wait_type_e { + THD_WAIT_SLEEP= 1, + THD_WAIT_DISKIO= 2, + THD_WAIT_ROW_LOCK= 3, + THD_WAIT_GLOBAL_LOCK= 4, + THD_WAIT_META_DATA_LOCK= 5, + THD_WAIT_TABLE_LOCK= 6, + THD_WAIT_USER_LOCK= 7, + THD_WAIT_BINLOG= 8, + THD_WAIT_GROUP_COMMIT= 9, + THD_WAIT_SYNC= 10, + THD_WAIT_LAST= 11 +} thd_wait_type; + +extern struct thd_wait_service_st { + void (*thd_wait_begin_func)(MYSQL_THD, int); + void (*thd_wait_end_func)(MYSQL_THD); +} *thd_wait_service; + +#ifdef MYSQL_DYNAMIC_PLUGIN + +#define thd_wait_begin(_THD, _WAIT_TYPE) \ + thd_wait_service->thd_wait_begin_func(_THD, _WAIT_TYPE) +#define thd_wait_end(_THD) thd_wait_service->thd_wait_end_func(_THD) + +#else + +void thd_wait_begin(MYSQL_THD thd, int wait_type); +void thd_wait_end(MYSQL_THD thd); + +#endif + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/database/include/mysql/service_thread_scheduler.h b/database/include/mysql/service_thread_scheduler.h new file mode 100644 index 0000000..a03c78e --- /dev/null +++ b/database/include/mysql/service_thread_scheduler.h @@ -0,0 +1,65 @@ +/* + Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA +*/ + +#ifndef SERVICE_THREAD_SCHEDULER_INCLUDED +#define SERVICE_THREAD_SCHEDULER_INCLUDED + +#ifdef __cplusplus +extern "C" { +#endif + +struct scheduler_functions; + +extern struct my_thread_scheduler_service { + int (*set)(struct scheduler_functions *scheduler); + int (*reset)(); +} *my_thread_scheduler_service; + +#ifdef MYSQL_DYNAMIC_PLUGIN + +#define my_thread_scheduler_set(F) my_thread_scheduler_service->set((F)) +#define my_thread_scheduler_reset() my_thread_scheduler_service->reset() + +#else + +/** + Set the thread scheduler to use for the server. + + @param scheduler Pointer to scheduler callbacks to use. + @retval 0 Scheduler installed correctly. + @retval 1 Invalid value (NULL) used for scheduler. +*/ +int my_thread_scheduler_set(struct scheduler_functions *scheduler); + +/** + Restore the previous thread scheduler. + + @note If no thread scheduler was installed previously with + thd_set_thread_scheduler, this function will report an error. + + @retval 0 Scheduler installed correctly. + @retval 1 No scheduler installed. +*/ +int my_thread_scheduler_reset(); + +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* SERVICE_THREAD_SCHEDULER_INCLUDED */ diff --git a/database/include/mysql/services.h b/database/include/mysql/services.h new file mode 100644 index 0000000..5644f70 --- /dev/null +++ b/database/include/mysql/services.h @@ -0,0 +1,36 @@ +#ifndef MYSQL_SERVICES_INCLUDED +/* Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +} +#endif + +#define MYSQL_SERVICES_INCLUDED +#endif + diff --git a/database/include/mysql/sql_common.h b/database/include/mysql/sql_common.h new file mode 100644 index 0000000..cc530ec --- /dev/null +++ b/database/include/mysql/sql_common.h @@ -0,0 +1,126 @@ +#ifndef SQL_COMMON_INCLUDED +#define SQL_COMMON_INCLUDED +/* Copyright (c) 2003, 2018, Oracle and/or its affiliates. + Copyright (c) 2010, 2018, MariaDB + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +extern const char *unknown_sqlstate; +extern const char *cant_connect_sqlstate; +extern const char *not_error_sqlstate; + + +struct mysql_async_context; + +struct st_mysql_options_extention { + char *plugin_dir; + char *default_auth; + void (*report_progress)(const MYSQL *mysql, + unsigned int stage, + unsigned int max_stage, + double progress, + const char *proc_info, + uint proc_info_length); + struct mysql_async_context *async_context; +}; + +typedef struct st_mysql_methods +{ + my_bool (*read_query_result)(MYSQL *mysql); + my_bool (*advanced_command)(MYSQL *mysql, + enum enum_server_command command, + const unsigned char *header, + unsigned long header_length, + const unsigned char *arg, + unsigned long arg_length, + my_bool skip_check, + MYSQL_STMT *stmt); + MYSQL_DATA *(*read_rows)(MYSQL *mysql,MYSQL_FIELD *mysql_fields, + unsigned int fields); + MYSQL_RES * (*use_result)(MYSQL *mysql); + void (*fetch_lengths)(unsigned long *to, + MYSQL_ROW column, unsigned int field_count); + void (*flush_use_result)(MYSQL *mysql, my_bool flush_all_results); + int (*read_change_user_result)(MYSQL *mysql); +#if !defined(MYSQL_SERVER) || defined(EMBEDDED_LIBRARY) + MYSQL_FIELD * (*list_fields)(MYSQL *mysql); + my_bool (*read_prepare_result)(MYSQL *mysql, MYSQL_STMT *stmt); + int (*stmt_execute)(MYSQL_STMT *stmt); + int (*read_binary_rows)(MYSQL_STMT *stmt); + int (*unbuffered_fetch)(MYSQL *mysql, char **row); + void (*free_embedded_thd)(MYSQL *mysql); + const char *(*read_statistics)(MYSQL *mysql); + my_bool (*next_result)(MYSQL *mysql); + int (*read_rows_from_cursor)(MYSQL_STMT *stmt); +#endif +} MYSQL_METHODS; + +#define simple_command(mysql, command, arg, length, skip_check) \ + (*(mysql)->methods->advanced_command)(mysql, command, 0, \ + 0, arg, length, skip_check, NULL) +#define stmt_command(mysql, command, arg, length, stmt) \ + (*(mysql)->methods->advanced_command)(mysql, command, 0, \ + 0, arg, length, 1, stmt) + +extern CHARSET_INFO *default_client_charset_info; +MYSQL_FIELD *unpack_fields(MYSQL *mysql, MYSQL_DATA *data,MEM_ROOT *alloc, + uint fields, my_bool default_value, + uint server_capabilities); +void free_rows(MYSQL_DATA *cur); +void free_old_query(MYSQL *mysql); +void end_server(MYSQL *mysql); +my_bool mysql_reconnect(MYSQL *mysql); +void mysql_read_default_options(struct st_mysql_options *options, + const char *filename,const char *group); +my_bool +cli_advanced_command(MYSQL *mysql, enum enum_server_command command, + const unsigned char *header, ulong header_length, + const unsigned char *arg, ulong arg_length, + my_bool skip_check, MYSQL_STMT *stmt); +unsigned long cli_safe_read(MYSQL *mysql); +void net_clear_error(NET *net); +void set_stmt_errmsg(MYSQL_STMT *stmt, NET *net); +void set_stmt_error(MYSQL_STMT *stmt, int errcode, const char *sqlstate, + const char *err); +void set_mysql_error(MYSQL *mysql, int errcode, const char *sqlstate); +void set_mysql_extended_error(MYSQL *mysql, int errcode, const char *sqlstate, + const char *format, ...); + +/* client side of the pluggable authentication */ +struct st_plugin_vio_info; +void mpvio_info(Vio *vio, struct st_plugin_vio_info *info); +int run_plugin_auth(MYSQL *mysql, char *data, uint data_len, + const char *data_plugin, const char *db); +int mysql_client_plugin_init(); +void mysql_client_plugin_deinit(); +struct st_mysql_client_plugin; +extern struct st_mysql_client_plugin *mysql_client_builtins[]; + +/* Non-blocking client API. */ +void my_context_install_suspend_resume_hook(struct mysql_async_context *b, + void (*)(my_bool, void *), void *); + +#ifdef __cplusplus +} +#endif + +#define protocol_41(A) ((A)->server_capabilities & CLIENT_PROTOCOL_41) + +#endif /* SQL_COMMON_INCLUDED */ diff --git a/database/include/mysql/sql_state.h b/database/include/mysql/sql_state.h new file mode 100644 index 0000000..affec54 --- /dev/null +++ b/database/include/mysql/sql_state.h @@ -0,0 +1,227 @@ +/* Autogenerated file, please don't edit */ + +{ ER_DUP_KEY ,"23000", "" }, +{ ER_OUTOFMEMORY ,"HY001", "S1001" }, +{ ER_OUT_OF_SORTMEMORY ,"HY001", "S1001" }, +{ ER_CON_COUNT_ERROR ,"08004", "" }, +{ ER_BAD_HOST_ERROR ,"08S01", "" }, +{ ER_HANDSHAKE_ERROR ,"08S01", "" }, +{ ER_DBACCESS_DENIED_ERROR ,"42000", "" }, +{ ER_ACCESS_DENIED_ERROR ,"28000", "" }, +{ ER_NO_DB_ERROR ,"3D000", "" }, +{ ER_UNKNOWN_COM_ERROR ,"08S01", "" }, +{ ER_BAD_NULL_ERROR ,"23000", "" }, +{ ER_BAD_DB_ERROR ,"42000", "" }, +{ ER_TABLE_EXISTS_ERROR ,"42S01", "" }, +{ ER_BAD_TABLE_ERROR ,"42S02", "" }, +{ ER_NON_UNIQ_ERROR ,"23000", "" }, +{ ER_SERVER_SHUTDOWN ,"08S01", "" }, +{ ER_BAD_FIELD_ERROR ,"42S22", "S0022" }, +{ ER_WRONG_FIELD_WITH_GROUP ,"42000", "S1009" }, +{ ER_WRONG_GROUP_FIELD ,"42000", "S1009" }, +{ ER_WRONG_SUM_SELECT ,"42000", "S1009" }, +{ ER_WRONG_VALUE_COUNT ,"21S01", "" }, +{ ER_TOO_LONG_IDENT ,"42000", "S1009" }, +{ ER_DUP_FIELDNAME ,"42S21", "S1009" }, +{ ER_DUP_KEYNAME ,"42000", "S1009" }, +{ ER_DUP_ENTRY ,"23000", "S1009" }, +{ ER_WRONG_FIELD_SPEC ,"42000", "S1009" }, +{ ER_PARSE_ERROR ,"42000", "s1009" }, +{ ER_EMPTY_QUERY ,"42000", "" }, +{ ER_NONUNIQ_TABLE ,"42000", "S1009" }, +{ ER_INVALID_DEFAULT ,"42000", "S1009" }, +{ ER_MULTIPLE_PRI_KEY ,"42000", "S1009" }, +{ ER_TOO_MANY_KEYS ,"42000", "S1009" }, +{ ER_TOO_MANY_KEY_PARTS ,"42000", "S1009" }, +{ ER_TOO_LONG_KEY ,"42000", "S1009" }, +{ ER_KEY_COLUMN_DOES_NOT_EXITS ,"42000", "S1009" }, +{ ER_BLOB_USED_AS_KEY ,"42000", "S1009" }, +{ ER_TOO_BIG_FIELDLENGTH ,"42000", "S1009" }, +{ ER_WRONG_AUTO_KEY ,"42000", "S1009" }, +{ ER_FORCING_CLOSE ,"08S01", "" }, +{ ER_IPSOCK_ERROR ,"08S01", "" }, +{ ER_NO_SUCH_INDEX ,"42S12", "S1009" }, +{ ER_WRONG_FIELD_TERMINATORS ,"42000", "S1009" }, +{ ER_BLOBS_AND_NO_TERMINATED ,"42000", "S1009" }, +{ ER_CANT_REMOVE_ALL_FIELDS ,"42000", "" }, +{ ER_CANT_DROP_FIELD_OR_KEY ,"42000", "" }, +{ ER_BLOB_CANT_HAVE_DEFAULT ,"42000", "" }, +{ ER_WRONG_DB_NAME ,"42000", "" }, +{ ER_WRONG_TABLE_NAME ,"42000", "" }, +{ ER_TOO_BIG_SELECT ,"42000", "" }, +{ ER_UNKNOWN_PROCEDURE ,"42000", "" }, +{ ER_WRONG_PARAMCOUNT_TO_PROCEDURE ,"42000", "" }, +{ ER_UNKNOWN_TABLE ,"42S02", "" }, +{ ER_FIELD_SPECIFIED_TWICE ,"42000", "" }, +{ ER_UNSUPPORTED_EXTENSION ,"42000", "" }, +{ ER_TABLE_MUST_HAVE_COLUMNS ,"42000", "" }, +{ ER_UNKNOWN_CHARACTER_SET ,"42000", "" }, +{ ER_TOO_BIG_ROWSIZE ,"42000", "" }, +{ ER_WRONG_OUTER_JOIN ,"42000", "" }, +{ ER_NULL_COLUMN_IN_INDEX ,"42000", "" }, +{ ER_PASSWORD_ANONYMOUS_USER ,"42000", "" }, +{ ER_PASSWORD_NOT_ALLOWED ,"42000", "" }, +{ ER_PASSWORD_NO_MATCH ,"42000", "" }, +{ ER_WRONG_VALUE_COUNT_ON_ROW ,"21S01", "" }, +{ ER_INVALID_USE_OF_NULL ,"22004", "" }, +{ ER_REGEXP_ERROR ,"42000", "" }, +{ ER_MIX_OF_GROUP_FUNC_AND_FIELDS ,"42000", "" }, +{ ER_NONEXISTING_GRANT ,"42000", "" }, +{ ER_TABLEACCESS_DENIED_ERROR ,"42000", "" }, +{ ER_COLUMNACCESS_DENIED_ERROR ,"42000", "" }, +{ ER_ILLEGAL_GRANT_FOR_TABLE ,"42000", "" }, +{ ER_GRANT_WRONG_HOST_OR_USER ,"42000", "" }, +{ ER_NO_SUCH_TABLE ,"42S02", "" }, +{ ER_NONEXISTING_TABLE_GRANT ,"42000", "" }, +{ ER_NOT_ALLOWED_COMMAND ,"42000", "" }, +{ ER_SYNTAX_ERROR ,"42000", "" }, +{ ER_ABORTING_CONNECTION ,"08S01", "" }, +{ ER_NET_PACKET_TOO_LARGE ,"08S01", "" }, +{ ER_NET_READ_ERROR_FROM_PIPE ,"08S01", "" }, +{ ER_NET_FCNTL_ERROR ,"08S01", "" }, +{ ER_NET_PACKETS_OUT_OF_ORDER ,"08S01", "" }, +{ ER_NET_UNCOMPRESS_ERROR ,"08S01", "" }, +{ ER_NET_READ_ERROR ,"08S01", "" }, +{ ER_NET_READ_INTERRUPTED ,"08S01", "" }, +{ ER_NET_ERROR_ON_WRITE ,"08S01", "" }, +{ ER_NET_WRITE_INTERRUPTED ,"08S01", "" }, +{ ER_TOO_LONG_STRING ,"42000", "" }, +{ ER_TABLE_CANT_HANDLE_BLOB ,"42000", "" }, +{ ER_TABLE_CANT_HANDLE_AUTO_INCREMENT ,"42000", "" }, +{ ER_WRONG_COLUMN_NAME ,"42000", "" }, +{ ER_WRONG_KEY_COLUMN ,"42000", "" }, +{ ER_DUP_UNIQUE ,"23000", "" }, +{ ER_BLOB_KEY_WITHOUT_LENGTH ,"42000", "" }, +{ ER_PRIMARY_CANT_HAVE_NULL ,"42000", "" }, +{ ER_TOO_MANY_ROWS ,"42000", "" }, +{ ER_REQUIRES_PRIMARY_KEY ,"42000", "" }, +{ ER_KEY_DOES_NOT_EXITS ,"42000", "S1009" }, +{ ER_CHECK_NO_SUCH_TABLE ,"42000", "" }, +{ ER_CHECK_NOT_IMPLEMENTED ,"42000", "" }, +{ ER_CANT_DO_THIS_DURING_AN_TRANSACTION ,"25000", "" }, +{ ER_NEW_ABORTING_CONNECTION ,"08S01", "" }, +{ ER_MASTER_NET_READ ,"08S01", "" }, +{ ER_MASTER_NET_WRITE ,"08S01", "" }, +{ ER_TOO_MANY_USER_CONNECTIONS ,"42000", "" }, +{ ER_READ_ONLY_TRANSACTION ,"25000", "" }, +{ ER_NO_PERMISSION_TO_CREATE_USER ,"42000", "" }, +{ ER_LOCK_DEADLOCK ,"40001", "" }, +{ ER_NO_REFERENCED_ROW ,"23000", "" }, +{ ER_ROW_IS_REFERENCED ,"23000", "" }, +{ ER_CONNECT_TO_MASTER ,"08S01", "" }, +{ ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT ,"21000", "" }, +{ ER_USER_LIMIT_REACHED ,"42000", "" }, +{ ER_SPECIFIC_ACCESS_DENIED_ERROR ,"42000", "" }, +{ ER_NO_DEFAULT ,"42000", "" }, +{ ER_WRONG_VALUE_FOR_VAR ,"42000", "" }, +{ ER_WRONG_TYPE_FOR_VAR ,"42000", "" }, +{ ER_CANT_USE_OPTION_HERE ,"42000", "" }, +{ ER_NOT_SUPPORTED_YET ,"42000", "" }, +{ ER_WRONG_FK_DEF ,"42000", "" }, +{ ER_OPERAND_COLUMNS ,"21000", "" }, +{ ER_SUBQUERY_NO_1_ROW ,"21000", "" }, +{ ER_ILLEGAL_REFERENCE ,"42S22", "" }, +{ ER_DERIVED_MUST_HAVE_ALIAS ,"42000", "" }, +{ ER_SELECT_REDUCED ,"01000", "" }, +{ ER_TABLENAME_NOT_ALLOWED_HERE ,"42000", "" }, +{ ER_NOT_SUPPORTED_AUTH_MODE ,"08004", "" }, +{ ER_SPATIAL_CANT_HAVE_NULL ,"42000", "" }, +{ ER_COLLATION_CHARSET_MISMATCH ,"42000", "" }, +{ ER_WARN_TOO_FEW_RECORDS ,"01000", "" }, +{ ER_WARN_TOO_MANY_RECORDS ,"01000", "" }, +{ ER_WARN_NULL_TO_NOTNULL ,"22004", "" }, +{ ER_WARN_DATA_OUT_OF_RANGE ,"22003", "" }, +{ WARN_DATA_TRUNCATED ,"01000", "" }, +{ ER_WRONG_NAME_FOR_INDEX ,"42000", "" }, +{ ER_WRONG_NAME_FOR_CATALOG ,"42000", "" }, +{ ER_UNKNOWN_STORAGE_ENGINE ,"42000", "" }, +{ ER_TRUNCATED_WRONG_VALUE ,"22007", "" }, +{ ER_SP_NO_RECURSIVE_CREATE ,"2F003", "" }, +{ ER_SP_ALREADY_EXISTS ,"42000", "" }, +{ ER_SP_DOES_NOT_EXIST ,"42000", "" }, +{ ER_SP_LILABEL_MISMATCH ,"42000", "" }, +{ ER_SP_LABEL_REDEFINE ,"42000", "" }, +{ ER_SP_LABEL_MISMATCH ,"42000", "" }, +{ ER_SP_UNINIT_VAR ,"01000", "" }, +{ ER_SP_BADSELECT ,"0A000", "" }, +{ ER_SP_BADRETURN ,"42000", "" }, +{ ER_SP_BADSTATEMENT ,"0A000", "" }, +{ ER_UPDATE_LOG_DEPRECATED_IGNORED ,"42000", "" }, +{ ER_UPDATE_LOG_DEPRECATED_TRANSLATED ,"42000", "" }, +{ ER_QUERY_INTERRUPTED ,"70100", "" }, +{ ER_SP_WRONG_NO_OF_ARGS ,"42000", "" }, +{ ER_SP_COND_MISMATCH ,"42000", "" }, +{ ER_SP_NORETURN ,"42000", "" }, +{ ER_SP_NORETURNEND ,"2F005", "" }, +{ ER_SP_BAD_CURSOR_QUERY ,"42000", "" }, +{ ER_SP_BAD_CURSOR_SELECT ,"42000", "" }, +{ ER_SP_CURSOR_MISMATCH ,"42000", "" }, +{ ER_SP_CURSOR_ALREADY_OPEN ,"24000", "" }, +{ ER_SP_CURSOR_NOT_OPEN ,"24000", "" }, +{ ER_SP_UNDECLARED_VAR ,"42000", "" }, +{ ER_SP_FETCH_NO_DATA ,"02000", "" }, +{ ER_SP_DUP_PARAM ,"42000", "" }, +{ ER_SP_DUP_VAR ,"42000", "" }, +{ ER_SP_DUP_COND ,"42000", "" }, +{ ER_SP_DUP_CURS ,"42000", "" }, +{ ER_SP_SUBSELECT_NYI ,"0A000", "" }, +{ ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG ,"0A000", "" }, +{ ER_SP_VARCOND_AFTER_CURSHNDLR ,"42000", "" }, +{ ER_SP_CURSOR_AFTER_HANDLER ,"42000", "" }, +{ ER_SP_CASE_NOT_FOUND ,"20000", "" }, +{ ER_DIVISION_BY_ZERO ,"22012", "" }, +{ ER_TRUNCATED_WRONG_VALUE_FOR_FIELD ,"22007", "" }, +{ ER_ILLEGAL_VALUE_FOR_TYPE ,"22007", "" }, +{ ER_PROCACCESS_DENIED_ERROR ,"42000", "" }, +{ ER_XAER_NOTA ,"XAE04", "" }, +{ ER_XAER_INVAL ,"XAE05", "" }, +{ ER_XAER_RMFAIL ,"XAE07", "" }, +{ ER_XAER_OUTSIDE ,"XAE09", "" }, +{ ER_XAER_RMERR ,"XAE03", "" }, +{ ER_XA_RBROLLBACK ,"XA100", "" }, +{ ER_NONEXISTING_PROC_GRANT ,"42000", "" }, +{ ER_DATA_TOO_LONG ,"22001", "" }, +{ ER_SP_BAD_SQLSTATE ,"42000", "" }, +{ ER_CANT_CREATE_USER_WITH_GRANT ,"42000", "" }, +{ ER_SP_DUP_HANDLER ,"42000", "" }, +{ ER_SP_NOT_VAR_ARG ,"42000", "" }, +{ ER_SP_NO_RETSET ,"0A000", "" }, +{ ER_CANT_CREATE_GEOMETRY_OBJECT ,"22003", "" }, +{ ER_TOO_BIG_SCALE ,"42000", "S1009" }, +{ ER_TOO_BIG_PRECISION ,"42000", "S1009" }, +{ ER_M_BIGGER_THAN_D ,"42000", "S1009" }, +{ ER_TOO_LONG_BODY ,"42000", "S1009" }, +{ ER_TOO_BIG_DISPLAYWIDTH ,"42000", "S1009" }, +{ ER_XAER_DUPID ,"XAE08", "" }, +{ ER_DATETIME_FUNCTION_OVERFLOW ,"22008", "" }, +{ ER_ROW_IS_REFERENCED_2 ,"23000", "" }, +{ ER_NO_REFERENCED_ROW_2 ,"23000", "" }, +{ ER_SP_BAD_VAR_SHADOW ,"42000", "" }, +{ ER_SP_WRONG_NAME ,"42000", "" }, +{ ER_SP_NO_AGGREGATE ,"42000", "" }, +{ ER_MAX_PREPARED_STMT_COUNT_REACHED ,"42000", "" }, +{ ER_NON_GROUPING_FIELD_USED ,"42000", "" }, +{ ER_FOREIGN_DUPLICATE_KEY ,"23000", "S1009" }, +{ ER_CANT_CHANGE_TX_ISOLATION ,"25001", "" }, +{ ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT ,"42000", "" }, +{ ER_WRONG_PARAMETERS_TO_NATIVE_FCT ,"42000", "" }, +{ ER_WRONG_PARAMETERS_TO_STORED_FCT ,"42000", "" }, +{ ER_DUP_ENTRY_WITH_KEY_NAME ,"23000", "S1009" }, +{ ER_XA_RBTIMEOUT ,"XA106", "" }, +{ ER_XA_RBDEADLOCK ,"XA102", "" }, +{ ER_FUNC_INEXISTENT_NAME_COLLISION ,"42000", "" }, +{ ER_DUP_SIGNAL_SET ,"42000", "" }, +{ ER_SIGNAL_WARN ,"01000", "" }, +{ ER_SIGNAL_NOT_FOUND ,"02000", "" }, +{ ER_SIGNAL_EXCEPTION ,"HY000", "" }, +{ ER_RESIGNAL_WITHOUT_ACTIVE_HANDLER ,"0K000", "" }, +{ ER_SPATIAL_MUST_HAVE_GEOM_COL ,"42000", "" }, +{ ER_DATA_OUT_OF_RANGE ,"22003", "" }, +{ ER_ACCESS_DENIED_NO_PASSWORD_ERROR ,"28000", "" }, +{ ER_TRUNCATE_ILLEGAL_FK ,"42000", "" }, +{ ER_DATA_OVERFLOW ,"22003", "" }, +{ ER_DATA_TRUNCATED ,"22003", "" }, +{ ER_BAD_DATA ,"22007", "" }, +{ ER_DYN_COL_DATA ,"22007", "" }, +{ ER_CONNECTION_KILLED ,"70100", "" }, +{ ER_NO_SUCH_TABLE_IN_ENGINE ,"42S02", "" }, diff --git a/database/include/mysql/sslopt-case.h b/database/include/mysql/sslopt-case.h new file mode 100644 index 0000000..ea8d82d --- /dev/null +++ b/database/include/mysql/sslopt-case.h @@ -0,0 +1,32 @@ +#ifndef SSLOPT_CASE_INCLUDED +#define SSLOPT_CASE_INCLUDED + +/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) + case OPT_SSL_KEY: + case OPT_SSL_CERT: + case OPT_SSL_CA: + case OPT_SSL_CAPATH: + case OPT_SSL_CIPHER: + /* + Enable use of SSL if we are using any ssl option + One can disable SSL later by using --skip-ssl or --ssl=0 + */ + opt_use_ssl= 1; + break; +#endif +#endif /* SSLOPT_CASE_INCLUDED */ diff --git a/database/include/mysql/sslopt-longopts.h b/database/include/mysql/sslopt-longopts.h new file mode 100644 index 0000000..699e07f --- /dev/null +++ b/database/include/mysql/sslopt-longopts.h @@ -0,0 +1,50 @@ +#ifndef SSLOPT_LONGOPTS_INCLUDED +#define SSLOPT_LONGOPTS_INCLUDED + +/* + Copyright (c) 2000, 2010, Oracle and/or its affiliates. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) + + {"ssl", OPT_SSL_SSL, + "Enable SSL for connection (automatically enabled with other flags).", + &opt_use_ssl, &opt_use_ssl, 0, GET_BOOL, OPT_ARG, 0, 0, 0, 0, 0, 0}, + {"ssl-ca", OPT_SSL_CA, + "CA file in PEM format (check OpenSSL docs, implies --ssl).", + &opt_ssl_ca, &opt_ssl_ca, 0, GET_STR, REQUIRED_ARG, + 0, 0, 0, 0, 0, 0}, + {"ssl-capath", OPT_SSL_CAPATH, + "CA directory (check OpenSSL docs, implies --ssl).", + &opt_ssl_capath, &opt_ssl_capath, 0, GET_STR, REQUIRED_ARG, + 0, 0, 0, 0, 0, 0}, + {"ssl-cert", OPT_SSL_CERT, "X509 cert in PEM format (implies --ssl).", + &opt_ssl_cert, &opt_ssl_cert, 0, GET_STR, REQUIRED_ARG, + 0, 0, 0, 0, 0, 0}, + {"ssl-cipher", OPT_SSL_CIPHER, "SSL cipher to use (implies --ssl).", + &opt_ssl_cipher, &opt_ssl_cipher, 0, GET_STR, REQUIRED_ARG, + 0, 0, 0, 0, 0, 0}, + {"ssl-key", OPT_SSL_KEY, "X509 key in PEM format (implies --ssl).", + &opt_ssl_key, &opt_ssl_key, 0, GET_STR, REQUIRED_ARG, + 0, 0, 0, 0, 0, 0}, +#ifdef MYSQL_CLIENT + {"ssl-verify-server-cert", OPT_SSL_VERIFY_SERVER_CERT, + "Verify server's \"Common Name\" in its cert against hostname used " + "when connecting. This option is disabled by default.", + &opt_ssl_verify_server_cert, &opt_ssl_verify_server_cert, + 0, GET_BOOL, OPT_ARG, 0, 0, 0, 0, 0, 0}, +#endif +#endif /* HAVE_OPENSSL */ +#endif /* SSLOPT_LONGOPTS_INCLUDED */ diff --git a/database/include/mysql/sslopt-vars.h b/database/include/mysql/sslopt-vars.h new file mode 100644 index 0000000..066f706 --- /dev/null +++ b/database/include/mysql/sslopt-vars.h @@ -0,0 +1,35 @@ +#ifndef SSLOPT_VARS_INCLUDED +#define SSLOPT_VARS_INCLUDED + +/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ + +#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY) +#ifdef SSL_VARS_NOT_STATIC +#define SSL_STATIC +#else +#define SSL_STATIC static +#endif +SSL_STATIC my_bool opt_use_ssl = 0; +SSL_STATIC char *opt_ssl_ca = 0; +SSL_STATIC char *opt_ssl_capath = 0; +SSL_STATIC char *opt_ssl_cert = 0; +SSL_STATIC char *opt_ssl_cipher = 0; +SSL_STATIC char *opt_ssl_key = 0; +#ifdef MYSQL_CLIENT +SSL_STATIC my_bool opt_ssl_verify_server_cert= 0; +#endif +#endif +#endif /* SSLOPT_VARS_INCLUDED */ diff --git a/database/include/mysql/typelib.h b/database/include/mysql/typelib.h new file mode 100644 index 0000000..dd395d4 --- /dev/null +++ b/database/include/mysql/typelib.h @@ -0,0 +1,56 @@ +/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ + + +#ifndef _typelib_h +#define _typelib_h + +#include "my_alloc.h" + +typedef struct st_typelib { /* Different types saved here */ + unsigned int count; /* How many types */ + const char *name; /* Name of typelib */ + const char **type_names; + unsigned int *type_lengths; +} TYPELIB; + +extern my_ulonglong find_typeset(char *x, TYPELIB *typelib,int *error_position); +extern int find_type_with_warning(const char *x, TYPELIB *typelib, + const char *option); +extern int find_type_or_exit(const char *x, TYPELIB *typelib, + const char *option); +#define FIND_TYPE_BASIC 0 +/** makes @c find_type() require the whole name, no prefix */ +#define FIND_TYPE_NO_PREFIX (1 << 0) +/** always implicitely on, so unused, but old code may pass it */ +#define FIND_TYPE_NO_OVERWRITE 0 +/** makes @c find_type() accept a number. Not used either */ +#define FIND_TYPE_ALLOW_NUMBER 0 +/** makes @c find_type() treat ',' and '=' as terminators */ +#define FIND_TYPE_COMMA_TERM (1 << 3) + +extern int find_type(const char *x, const TYPELIB *typelib, unsigned int flags); +extern void make_type(char *to,unsigned int nr,TYPELIB *typelib); +extern const char *get_type(TYPELIB *typelib,unsigned int nr); +extern TYPELIB *copy_typelib(MEM_ROOT *root, TYPELIB *from); + +extern TYPELIB sql_protocol_typelib; + +my_ulonglong find_set_from_flags(const TYPELIB *lib, unsigned int default_name, + my_ulonglong cur_set, my_ulonglong default_set, + const char *str, unsigned int length, + char **err_pos, unsigned int *err_len); + +#endif /* _typelib_h */ diff --git a/database/lib/libmysqlclient.a b/database/lib/libmysqlclient.a new file mode 100644 index 0000000..9b374a6 Binary files /dev/null and b/database/lib/libmysqlclient.a differ diff --git a/database/lib/libmysqlclient.so b/database/lib/libmysqlclient.so new file mode 120000 index 0000000..5942af2 --- /dev/null +++ b/database/lib/libmysqlclient.so @@ -0,0 +1 @@ +libmysqlclient.so.18 \ No newline at end of file diff --git a/database/lib/libmysqlclient.so.18 b/database/lib/libmysqlclient.so.18 new file mode 120000 index 0000000..aca140a --- /dev/null +++ b/database/lib/libmysqlclient.so.18 @@ -0,0 +1 @@ +libmysqlclient.so.18.0.0 \ No newline at end of file diff --git a/database/lib/libmysqlclient.so.18.0.0 b/database/lib/libmysqlclient.so.18.0.0 new file mode 100644 index 0000000..9827471 Binary files /dev/null and b/database/lib/libmysqlclient.so.18.0.0 differ diff --git a/database/lib/libmysqlclient_r.a b/database/lib/libmysqlclient_r.a new file mode 120000 index 0000000..fa024ce --- /dev/null +++ b/database/lib/libmysqlclient_r.a @@ -0,0 +1 @@ +libmysqlclient.a \ No newline at end of file diff --git a/database/lib/libmysqlclient_r.so b/database/lib/libmysqlclient_r.so new file mode 120000 index 0000000..77eef2e --- /dev/null +++ b/database/lib/libmysqlclient_r.so @@ -0,0 +1 @@ +libmysqlclient.so \ No newline at end of file diff --git a/database/lib/libmysqlclient_r.so.18 b/database/lib/libmysqlclient_r.so.18 new file mode 120000 index 0000000..77eef2e --- /dev/null +++ b/database/lib/libmysqlclient_r.so.18 @@ -0,0 +1 @@ +libmysqlclient.so \ No newline at end of file diff --git a/database/lib/libmysqlclient_r.so.18.0.0 b/database/lib/libmysqlclient_r.so.18.0.0 new file mode 120000 index 0000000..77eef2e --- /dev/null +++ b/database/lib/libmysqlclient_r.so.18.0.0 @@ -0,0 +1 @@ +libmysqlclient.so \ No newline at end of file diff --git a/database/lib/libmysqld.so b/database/lib/libmysqld.so new file mode 120000 index 0000000..bad1aa1 --- /dev/null +++ b/database/lib/libmysqld.so @@ -0,0 +1 @@ +libmysqld.so.18 \ No newline at end of file diff --git a/database/lib/libmysqld.so.18 b/database/lib/libmysqld.so.18 new file mode 100644 index 0000000..7a7bee5 Binary files /dev/null and b/database/lib/libmysqld.so.18 differ diff --git a/database/lib/libmysqlservices.a b/database/lib/libmysqlservices.a new file mode 100644 index 0000000..5dfc04b Binary files /dev/null and b/database/lib/libmysqlservices.a differ diff --git a/database/lib/plugin/adt_null.so b/database/lib/plugin/adt_null.so new file mode 100644 index 0000000..7493d1a Binary files /dev/null and b/database/lib/plugin/adt_null.so differ diff --git a/database/lib/plugin/auth_0x0100.so b/database/lib/plugin/auth_0x0100.so new file mode 100644 index 0000000..81d3ab5 Binary files /dev/null and b/database/lib/plugin/auth_0x0100.so differ diff --git a/database/lib/plugin/auth_pam.so b/database/lib/plugin/auth_pam.so new file mode 100644 index 0000000..340593a Binary files /dev/null and b/database/lib/plugin/auth_pam.so differ diff --git a/database/lib/plugin/auth_socket.so b/database/lib/plugin/auth_socket.so new file mode 100644 index 0000000..2bb5b5d Binary files /dev/null and b/database/lib/plugin/auth_socket.so differ diff --git a/database/lib/plugin/auth_test_plugin.so b/database/lib/plugin/auth_test_plugin.so new file mode 100644 index 0000000..92dc1d7 Binary files /dev/null and b/database/lib/plugin/auth_test_plugin.so differ diff --git a/database/lib/plugin/daemon_example.ini b/database/lib/plugin/daemon_example.ini new file mode 100644 index 0000000..7c6d4d1 --- /dev/null +++ b/database/lib/plugin/daemon_example.ini @@ -0,0 +1,9 @@ +# +# Plugin configuration file. Place the following on a separate line: +# +# library binary file name (without .so or .dll) +# component_name +# [component_name] - additional components in plugin +# +libdaemon_example +daemon_example diff --git a/database/lib/plugin/dialog.so b/database/lib/plugin/dialog.so new file mode 100644 index 0000000..b83efcf Binary files /dev/null and b/database/lib/plugin/dialog.so differ diff --git a/database/lib/plugin/dialog_examples.so b/database/lib/plugin/dialog_examples.so new file mode 100644 index 0000000..cee1a13 Binary files /dev/null and b/database/lib/plugin/dialog_examples.so differ diff --git a/database/lib/plugin/ha_innodb.so b/database/lib/plugin/ha_innodb.so new file mode 100644 index 0000000..cd732f1 Binary files /dev/null and b/database/lib/plugin/ha_innodb.so differ diff --git a/database/lib/plugin/ha_oqgraph.so b/database/lib/plugin/ha_oqgraph.so new file mode 100644 index 0000000..2f08e71 Binary files /dev/null and b/database/lib/plugin/ha_oqgraph.so differ diff --git a/database/lib/plugin/ha_sphinx.so b/database/lib/plugin/ha_sphinx.so new file mode 100644 index 0000000..e0301bc Binary files /dev/null and b/database/lib/plugin/ha_sphinx.so differ diff --git a/database/lib/plugin/ha_tokudb.so b/database/lib/plugin/ha_tokudb.so new file mode 100644 index 0000000..7d32860 Binary files /dev/null and b/database/lib/plugin/ha_tokudb.so differ diff --git a/database/lib/plugin/handlersocket.so b/database/lib/plugin/handlersocket.so new file mode 100644 index 0000000..f1e7564 Binary files /dev/null and b/database/lib/plugin/handlersocket.so differ diff --git a/database/lib/plugin/libdaemon_example.so b/database/lib/plugin/libdaemon_example.so new file mode 100644 index 0000000..7e52be3 Binary files /dev/null and b/database/lib/plugin/libdaemon_example.so differ diff --git a/database/lib/plugin/mypluglib.so b/database/lib/plugin/mypluglib.so new file mode 100644 index 0000000..804994c Binary files /dev/null and b/database/lib/plugin/mypluglib.so differ diff --git a/database/lib/plugin/mysql_clear_password.so b/database/lib/plugin/mysql_clear_password.so new file mode 100644 index 0000000..e136a5d Binary files /dev/null and b/database/lib/plugin/mysql_clear_password.so differ diff --git a/database/lib/plugin/qa_auth_client.so b/database/lib/plugin/qa_auth_client.so new file mode 100644 index 0000000..939d09f Binary files /dev/null and b/database/lib/plugin/qa_auth_client.so differ diff --git a/database/lib/plugin/qa_auth_interface.so b/database/lib/plugin/qa_auth_interface.so new file mode 100644 index 0000000..98a0e55 Binary files /dev/null and b/database/lib/plugin/qa_auth_interface.so differ diff --git a/database/lib/plugin/qa_auth_server.so b/database/lib/plugin/qa_auth_server.so new file mode 100644 index 0000000..0d5000a Binary files /dev/null and b/database/lib/plugin/qa_auth_server.so differ diff --git a/database/lib/plugin/query_cache_info.so b/database/lib/plugin/query_cache_info.so new file mode 100644 index 0000000..6aada04 Binary files /dev/null and b/database/lib/plugin/query_cache_info.so differ diff --git a/database/lib/plugin/semisync_master.so b/database/lib/plugin/semisync_master.so new file mode 100644 index 0000000..02398f9 Binary files /dev/null and b/database/lib/plugin/semisync_master.so differ diff --git a/database/lib/plugin/semisync_slave.so b/database/lib/plugin/semisync_slave.so new file mode 100644 index 0000000..6b254c8 Binary files /dev/null and b/database/lib/plugin/semisync_slave.so differ diff --git a/database/lib/plugin/server_audit.so b/database/lib/plugin/server_audit.so new file mode 100644 index 0000000..0ea1493 Binary files /dev/null and b/database/lib/plugin/server_audit.so differ diff --git a/database/lib/plugin/sphinx.so b/database/lib/plugin/sphinx.so new file mode 100644 index 0000000..122d4ed Binary files /dev/null and b/database/lib/plugin/sphinx.so differ diff --git a/database/lib/plugin/sql_errlog.so b/database/lib/plugin/sql_errlog.so new file mode 100644 index 0000000..e0780af Binary files /dev/null and b/database/lib/plugin/sql_errlog.so differ diff --git a/database/man/man1/aria_chk.1 b/database/man/man1/aria_chk.1 new file mode 100644 index 0000000..4dc5bf8 --- /dev/null +++ b/database/man/man1/aria_chk.1 @@ -0,0 +1,245 @@ +.TH ARIA_CHK "1" "May 2014" "aria_chk Ver 1.2" "User Commands" +.SH NAME +aria_chk \- Aria table\-maintenance utility +.SH SYNOPSIS +.B aria_chk +[\fIOPTIONS\fR] \fItables\fR[\fI.MAI\fR] +.SH DESCRIPTION +Describe, check and repair of Aria tables. +Used without options all tables on the command will be checked for errors +.SS "Global options" +.TP +\fB\-#\fR, \fB\-\-debug=\fR... +Output debug log. Often this is 'd:t:o,filename'. +.TP +\fB\-H\fR, \fB\-\-HELP\fR +Print all argument options sorted alphabetically. +.TP +\fB\-?\fR, \fB\-\-help\fR +Print all options by groups +.TP +\fB\-\-datadir\fR=\fIpath\fR +Path for control file (and logs if \fB\-\-logdir\fR not used) +.TP +\fB\-\-logdir\fR=\fIpath\fR +Path for log files +.TP +\fB\-\-ignore\-control\-file\fR +Don't open the control file. Only use this if you +are sure the tables are not in use by another +program! +.TP +\fB\-\-require\-control\-file\fR +Abort if we can't find/read the maria_log_control +file +.TP +\fB\-s\fR, \fB\-\-silent\fR +Only print errors. One can use two \fB\-s\fR to make +maria_chk very silent. +.TP +\fB\-t\fR, \fB\-\-tmpdir\fR=\fIpath\fR +Path for temporary files. Multiple paths can be +specified, separated by colon (:), they will be used +in a round\-robin fashion. +.TP +\fB\-v\fR, \fB\-\-verbose\fR +Print more information. This can be used with +\fB\-\-description\fR and \fB\-\-check\fR. Use many \fB\-v\fR for more verbosity. +.TP +\fB\-V\fR, \fB\-\-version\fR +Print version and exit. +.TP +\fB\-w\fR, \fB\-\-wait\fR +Wait if table is locked. +.SS "Check options (check is the default action for aria_chk)" +.TP +\fB\-c\fR, \fB\-\-check\fR +Check table for errors. +.TP +\fB\-e\fR, \fB\-\-extend\-check\fR +Check the table VERY throughly. Only use this in +extreme cases as aria_chk should normally be able to +find out if the table is ok even without this switch. +.TP +\fB\-F\fR, \fB\-\-fast\fR +Check only tables that haven't been closed properly. +.TP +\fB\-C\fR, \fB\-\-check\-only\-changed\fR +Check only tables that have changed since last check. +.TP +\fB\-f\fR, \fB\-\-force\fR +Restart with '\-r' if there are any errors in the table. +States will be updated as with '\-\-update\-state'. +.TP +\fB\-i\fR, \fB\-\-information\fR +Print statistics information about table that is checked. +.TP +\fB\-m\fR, \fB\-\-medium\-check\fR +Faster than extend\-check, but only finds 99.99% of +all errors. Should be good enough for most cases. +.TP +\fB\-T\fR, \fB\-\-read\-only\fR +Don't mark table as checked. +.TP +\fB\-U\fR, \fB\-\-update\-state\fR +Mark tables as crashed if any errors were found and +clean if check didn't find any errors but table was +marked as 'not clean' before. This allows one to get +rid of warnings like 'table not properly closed'. If +table was updated, update also the timestamp for when +the check was made. This option is on by default! +Use \fB\-\-skip\-update\-state\fR to disable. +.HP +\fB\-\-warning\-for\-wrong\-transaction\-id\fR +.IP +Give a warning if we find a transaction id in the table that is bigger +than what exists in the control file. Use \fB\-\-skip\-\fR... to disable warning +.SS "Recover (repair)/ options (When using '--recover' or '--safe-recover')" +.TP +\fB\-B\fR, \fB\-\-backup\fR +Make a backup of the .MAD file as 'filename\-time.BAK'. +.TP +\fB\-\-correct\-checksum\fR +Correct checksum information for table. +.TP +\fB\-D\fR, \fB\-\-data\-file\-length=\fR# +Max length of data file (when recreating data +file when it's full). +.TP +\fB\-e\fR, \fB\-\-extend\-check\fR +Try to recover every possible row from the data file +Normally this will also find a lot of garbage rows; +Don't use this option if you are not totally desperate. +.TP +\fB\-f\fR, \fB\-\-force\fR +Overwrite old temporary files. +.TP +\fB\-k\fR, \fB\-\-keys\-used=\fR# +Tell Aria to update only some specific keys. # is a +bit mask of which keys to use. This can be used to +get faster inserts. +.TP +\fB\-\-max\-record\-length=\fR# +Skip rows bigger than this if aria_chk can't allocate +memory to hold it. +.TP +\fB\-r\fR, \fB\-\-recover\fR +Can fix almost anything except unique keys that aren't +unique. +.TP +\fB\-n\fR, \fB\-\-sort\-recover\fR +Forces recovering with sorting even if the temporary +file would be very big. +.TP +\fB\-p\fR, \fB\-\-parallel\-recover\fR +Uses the same technique as '\-r' and '\-n', but creates +all the keys in parallel, in different threads. +.TP +\fB\-o\fR, \fB\-\-safe\-recover\fR +Uses old recovery method; Slower than '\-r' but can +handle a couple of cases where '\-r' reports that it +can't fix the data file. +.TP +\fB\-\-transaction\-log\fR +Log repair command to transaction log. This is needed +if one wants to use the aria_read_log to repeat the +repair +.TP +\fB\-\-character\-sets\-dir=\fR... +Directory where character sets are. +.TP +\fB\-\-set\-collation\fR=\fIname\fR +Change the collation used by the index. +.TP +\fB\-q\fR, \fB\-\-quick\fR +Faster repair by not modifying the data file. +One can give a second '\-q' to force aria_chk to +modify the original datafile in case of duplicate keys. +NOTE: Tables where the data file is currupted can't be +fixed with this option. +.TP +\fB\-u\fR, \fB\-\-unpack\fR +Unpack file packed with ariapack. +.SS "Other actions" +.TP +\fB\-a\fR, \fB\-\-analyze\fR +Analyze distribution of keys. Will make some joins in +MariaDB faster. You can check the calculated distribution +by using '\-\-description \fB\-\-verbose\fR table_name'. +.TP +\fB\-\-stats_method\fR=\fIname\fR +Specifies how index statistics collection code should +treat NULLs. Possible values of name are "nulls_unequal" +(default for 4.1/5.0), "nulls_equal" (emulate 4.0), and +"nulls_ignored". +.TP +\fB\-d\fR, \fB\-\-description\fR +Prints some information about table. +.TP +\fB\-A\fR, \fB\-\-set\-auto\-increment\fR[=\fIvalue\fR] +Force auto_increment to start at this or higher value +If no value is given, then sets the next auto_increment +value to the highest used value for the auto key + 1. +.TP +\fB\-S\fR, \fB\-\-sort\-index\fR +Sort index blocks. This speeds up 'read\-next' in +applications. +.TP +\fB\-R\fR, \fB\-\-sort\-records=\fR# +Sort records according to an index. This makes your +data much more localized and may speed up things +(It may be VERY slow to do a sort the first time!). +.TP +\fB\-b\fR, \fB\-\-block\-search=\fR# +Find a record, a block at given offset belongs to. +.TP +\fB\-z\fR, \fB\-\-zerofill\fR +Fill empty space in data and index files with zeroes. +This makes the data file movable between different +servers. +.TP +\fB\-\-zerofill\-keep\-lsn\fR +Like \fB\-\-zerofill\fR but does not zero out LSN of +data/index pages. +.PP +.SS "Variables" +.TP +\fB\-\-page_buffer_size=\fR# +Size of page buffer. Used by \fB\-\-safe\-repair\fR +.TP +\fB\-\-read_buffer_size=\fR# +Read buffer size for sequential reads during scanning +.TP +\fB\-\-sort_buffer_size=\fR# +Size of sort buffer. Used by \fB\-\-recover\fR +.TP +\fB\-\-sort_key_blocks=\fR# +Internal buffer for sorting keys; Don't touch. +.TP +\fB\-\-write_buffer_size=\fR# +Write buffer size for sequential writes during repair +.PP +Default options are read from the following files in the given order: +\fB/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf\fR +.PP +The following groups are read: \fBaria_chk\fR +.PP +The following options may be given as the first argument: +.TP +\fB\-\-print\-defaults\fR +Print the program argument list and exit. +.TP +\fB\-\-no\-defaults\fR +Don't read default options from any option file. +.TP +\fB\-\-defaults\-file=\fR# +Only read default options from the given file #. +.TP +\fB\-\-defaults\-extra\-file=\fR# +Read this file after the global files are read. +.PP +.SH "SEE ALSO" +\fBmyisamchk(1)\fR +.PP +For more information, please refer to the MariaDB Knowledge Base, +which is available online at http://mariadb.com/kb/ diff --git a/database/man/man1/aria_dump_log.1 b/database/man/man1/aria_dump_log.1 new file mode 100644 index 0000000..41318d9 --- /dev/null +++ b/database/man/man1/aria_dump_log.1 @@ -0,0 +1,54 @@ +.TH ARIA_DUMP_LOG "1" "May 2014" "aria_dump_log Ver 1.0" "User Commands" +.SH NAME +aria_dump_log \- Dump content of Aria log pages. +.SH SYNOPSIS +.B aria_dump_log +\fI-f file OPTIONS\fR +.SH DESCRIPTION +Dump content of Aria log pages. +.TP +\fB\-#\fR, \fB\-\-debug\fR[=\fIname\fR] +Output debug log. Often the argument is 'd:t:o,filename'. +.TP +\fB\-f\fR, \fB\-\-file\fR=\fIname\fR +Path to file which will be read +.TP +\fB\-?\fR, \fB\-\-help\fR +Display this help and exit. +.TP +\fB\-o\fR, \fB\-\-offset=\fR# +Start reading log from this offset +.TP +\fB\-n\fR, \fB\-\-pages=\fR# +Number of pages to read +.TP +\fB\-U\fR, \fB\-\-unit\-test\fR +Use unit test record table (for logs created by unittests +.TP +\fB\-V\fR, \fB\-\-version\fR +Print version and exit. +.PP +Default options are read from the following files in the given order: +\fB/etc/my.cnf\fB +\fB/etc/mysql/my.cnf\fB +\fB~/.my.cnf\fB +.PP +The following groups are read: \fBaria_dump_log\fR +.PP +The following options may be given as the first argument: +.TP +\fB\-\-print\-defaults\fR +Print the program argument list and exit. +.TP +\fB\-\-no\-defaults\fR +Don't read default options from any option file. +.TP +\fB\-\-defaults\-file=\fR# +Only read default options from the given file #. +.TP +\fB\-\-defaults\-extra\-file=\fR# +Read this file after the global files are read. +.PP +.SH "SEE ALSO" +For more information, please refer to the MariaDB Knowledge Base, +which is available online at http://mariadb.com/kb/ diff --git a/database/man/man1/aria_ftdump.1 b/database/man/man1/aria_ftdump.1 new file mode 100644 index 0000000..4d6c137 --- /dev/null +++ b/database/man/man1/aria_ftdump.1 @@ -0,0 +1,29 @@ +.TH ARIA_FTDUMP "1" "May 2014" "aria_ftdump Ver 1.0" "User Commands" +.SH NAME +aria_ftdump \- display full\-text index information +.SH DESCRIPTION +Use: aria_ft_dump +.TP +\fB\-?\fR, \fB\-h\fR, \fB\-\-help\fR +Display help and exit. +.TP +\fB\-c\fR, \fB\-\-count\fR +Calculate per\-word stats (counts and global weights). +.TP +\fB\-d\fR, \fB\-\-dump\fR +Dump index (incl. data offsets and word weights). +.TP +\fB\-l\fR, \fB\-\-length\fR +Report length distribution. +.TP +\fB\-s\fR, \fB\-\-stats\fR +Report global stats. +.TP +\fB\-v\fR, \fB\-\-verbose\fR +Be verbose. +.PP +.SH "SEE ALSO" +\fBmyisam_ftdump(1)\fR +.PP +For more information, please refer to the MariaDB Knowledge Base, +which is available online at http://mariadb.com/kb/ diff --git a/database/man/man1/aria_pack.1 b/database/man/man1/aria_pack.1 new file mode 100644 index 0000000..ee47f5f --- /dev/null +++ b/database/man/man1/aria_pack.1 @@ -0,0 +1,76 @@ +.TH ARIA_PACK "1" "May 2014" "aria_pack Ver 1.0" "User Commands" +.SH NAME +aria_pack \- generate compressed, read\-only Aria tables +.SH SYNOPSIS +.B aria_pack +[\fIOPTIONS\fR] \fIfilename\fR... +.SH DESCRIPTION +Pack a Aria\-table to take much less space. +Keys are not updated, you must run \fBaria_chk \-rq\fR on the index (.MAI) file +afterwards to update the keys. +You should give the .MAI file as the filename argument. +To unpack a packed table, run \fBaria_chk \-u\fR on the table +.TP +\fB\-b\fR, \fB\-\-backup\fR +Make a backup of the table as table_name.OLD. +.TP +\fB\-\-character\-sets\-dir\fR=\fIname\fR +Directory where character sets are. +.TP +\fB\-#\fR, \fB\-\-debug\fR[=\fIname\fR] +Output debug log. Often this is 'd:t:o,filename'. +.TP +\fB\-f\fR, \fB\-\-force\fR +Force packing of table even if it gets bigger or if +tempfile exists. +.TP +\fB\-j\fR, \fB\-\-join\fR=\fIname\fR +Join all given tables into 'new_table_name'. All tables +MUST have identical layouts. +.TP +\fB\-?\fR, \fB\-\-help\fR +Display this help and exit. +.TP +\fB\-s\fR, \fB\-\-silent\fR +Be more silent. +.TP +\fB\-T\fR, \fB\-\-tmpdir\fR=\fIname\fR +Use temporary directory to store temporary table. +.TP +\fB\-t\fR, \fB\-\-test\fR +Don't pack table, only test packing it. +.TP +\fB\-v\fR, \fB\-\-verbose\fR +Write info about progress and packing result. Use many \fB\-v\fR +for more verbosity! +.TP +\fB\-V\fR, \fB\-\-version\fR +Output version information and exit. +.TP +\fB\-w\fR, \fB\-\-wait\fR +Wait and retry if table is in use. +.PP +Default options are read from the following files in the given order: +\fB/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf\fR +.PP +The following groups are read: \fBariapack\fR +.PP +The following options may be given as the first argument: +.TP +\fB\-\-print\-defaults\fR +Print the program argument list and exit. +.TP +\fB\-\-no\-defaults\fR +Don't read default options from any option file. +.TP +\fB\-\-defaults\-file=\fR# +Only read default options from the given file #. +.TP +\fB\-\-defaults\-extra\-file=\fR# +Read this file after the global files are read. +.PP +.SH "SEE ALSO" +\fBmyisampack(1)\fR +.PP +For more information, please refer to the MariaDB Knowledge Base, +which is available online at http://mariadb.com/kb/ diff --git a/database/man/man1/aria_read_log.1 b/database/man/man1/aria_read_log.1 new file mode 100644 index 0000000..701104f --- /dev/null +++ b/database/man/man1/aria_read_log.1 @@ -0,0 +1,108 @@ +.TH ARIA_READ_LOG "1" "May 2014" "aria_read_log Ver 1.3" "User Commands" +.SH NAME +aria_read_log \- display Aria log file contents +.SH SYNOPSIS +.B aria_read_log +\fIOPTIONS\fR +.SH DESCRIPTION +Display and apply log records from a Aria transaction log +found in the current directory (for now) +.PP +Note: Aria is compiled without \fB\-DIDENTICAL_PAGES_AFTER_RECOVERY\fR +which means that the table files are not byte\-to\-byte identical to +files created during normal execution. This should be ok, except for +test scripts that tries to compare files before and after recovery. +.PP +You need to use one of \fB\-d\fR or \fB\-a\fR +.TP +\fB\-a\fR, \fB\-\-apply\fR +Apply log to tables: modifies tables! you should make a +backup first! Displays a lot of information if not run +with \fB\-\-silent\fR +.TP +\fB\-\-character\-sets\-dir\fR=\fIname\fR +Directory where character sets are. +.TP +\fB\-c\fR, \fB\-\-check\fR +if \fB\-\-display\-only\fR, check if record is fully readable (for +debugging) +.TP +\fB\-#\fR, \fB\-\-debug\fR[=\fIname\fR] +Output debug log. Often the argument is 'd:t:o,filename'. +.TP +\fB\-\-force\-crash=\fR# +Force crash after # recovery events +.TP +\fB\-?\fR, \fB\-\-help\fR +Display this help and exit. +.TP +\fB\-d\fR, \fB\-\-display\-only\fR +display brief info read from records' header +.TP +\fB\-e\fR, \fB\-\-end\-lsn=\fR# +Stop applying at this lsn. If end\-lsn is used, UNDO:s +will not be applied +.TP +\fB\-h\fR, \fB\-\-aria\-log\-dir\-path\fR=\fIname\fR +Path to the directory where to store transactional log +.TP +\fB\-P\fR, \fB\-\-page\-buffer\-size=\fR# +The size of the buffer used for index blocks for Aria +tables +.TP +\fB\-o\fR, \fB\-\-start\-from\-lsn=\fR# +Start reading log from this lsn +.TP +\fB\-C\fR, \fB\-\-start\-from\-checkpoint\fR +Start applying from last checkpoint +.TP +\fB\-s\fR, \fB\-\-silent\fR +Print less information during apply/undo phase +.TP +\fB\-T\fR, \fB\-\-tables\-to\-redo\fR=\fIname\fR +List of tables sepearated with , that we should apply +REDO on. Use this if you only want to recover some tables +.TP +\fB\-t\fR, \fB\-\-tmpdir\fR=\fIname\fR +Path for temporary files. Multiple paths can be +specified, separated by colon (:) +.TP +\fB\-\-translog\-buffer\-size=\fR# +The size of the buffer used for transaction log for Aria +tables +.TP +\fB\-u\fR, \fB\-\-undo\fR +Apply UNDO records to tables. (disable with +\fB\-\-disable\-undo\fR) +(Defaults to on; use \fB\-\-skip\-undo\fR to disable.) +.TP +\fB\-v\fR, \fB\-\-verbose\fR +Print more information during apply/undo phase +.TP +\fB\-V\fR, \fB\-\-version\fR +Print version and exit. +.PP +Default options are read from the following files in the given order: +\fB/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf\fR +.PP +The following groups are read: \fBaria_read_log\fR +.PP +The following options may be given as the first argument: +.TP +\fB\-\-print\-defaults\fR +Print the program argument list and exit. +.TP +\fB\-\-no\-defaults\fR +Don't read default options from any option file. +.TP +\fB\-\-defaults\-file=\fR# +Only read default options from the given file #. +.TP +\fB\-\-defaults\-extra\-file=\fR# +Read this file after the global files are read. +.PP +.SH "SEE ALSO" +\fBmyisamlog(1)\fR +.PP +For more information, please refer to the MariaDB Knowledge Base, +which is available online at http://mariadb.com/kb/ diff --git a/database/man/man1/innochecksum.1 b/database/man/man1/innochecksum.1 new file mode 100644 index 0000000..0ce53e8 --- /dev/null +++ b/database/man/man1/innochecksum.1 @@ -0,0 +1,157 @@ +'\" t +.\" Title: \fBinnochecksum\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBINNOCHECKSUM\FR" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" innochecksum +.SH "NAME" +innochecksum \- offline InnoDB file checksum utility +.SH "SYNOPSIS" +.HP \w'\fBinnochecksum\ [\fR\fB\fIoptions\fR\fR\fB]\ \fR\fB\fIfile_name\fR\fR\ 'u +\fBinnochecksum [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIfile_name\fR\fR +.SH "DESCRIPTION" +.PP +\fBinnochecksum\fR +prints checksums for +InnoDB +files\&. This tool reads an +InnoDB +tablespace file, calculates the checksum for each page, compares the calculated checksum to the stored checksum, and reports mismatches, which indicate damaged pages\&. It was originally developed to speed up verifying the integrity of tablespace files after power outages but can also be used after file copies\&. Because checksum mismatches will cause +InnoDB +to deliberately shut down a running server, it can be preferable to use this tool rather than waiting for a server in production usage to encounter the damaged pages\&. +.PP +\fBinnochecksum\fR +cannot be used on tablespace files that the server already has open\&. For such files, you should use +CHECK TABLE +to check tables within the tablespace\&. +.PP +If checksum mismatches are found, you would normally restore the tablespace from backup or start the server and attempt to use +\fBmysqldump\fR +to make a backup of the tables within the tablespace\&. +.PP +Invoke +\fBinnochecksum\fR +like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBinnochecksum [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIfile_name\fR\fR +.fi +.if n \{\ +.RE +.\} +.PP +\fBinnochecksum\fR +supports the following options\&. For options that refer to page numbers, the numbers are zero\-based\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-c\fR +.sp +Print a count of the number of pages in the file\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-d\fR +.sp +Debug mode; prints checksums for each page\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-e \fR\fB\fInum\fR\fR +.sp +End at this page number\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-p \fR\fB\fInum\fR\fR +.sp +Check only this page number\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-s \fR\fB\fInum\fR\fR +.sp +Start at this page number\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-v\fR +.sp +Verbose mode; print a progress indicator every five seconds\&. +.RE +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/msql2mysql.1 b/database/man/man1/msql2mysql.1 new file mode 100644 index 0000000..6d09e34 --- /dev/null +++ b/database/man/man1/msql2mysql.1 @@ -0,0 +1,76 @@ +'\" t +.\" Title: \fBmsql2mysql\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBMSQL2MYSQL\FR" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" msql2mysql +.SH "NAME" +msql2mysql \- convert mSQL programs for use with MySQL +.SH "SYNOPSIS" +.HP \w'\fBmsql2mysql\fR\fB\fIC\-source\-file\fR\fR\fB\ \&.\&.\&.\fR\ 'u +\fBmsql2mysql\fR\fB\fIC\-source\-file\fR\fR\fB \&.\&.\&.\fR +.SH "DESCRIPTION" +.PP +Initially, the MySQL C API was developed to be very similar to that for the mSQL database system\&. Because of this, mSQL programs often can be converted relatively easily for use with MySQL by changing the names of the C API functions\&. +.PP +The +\fBmsql2mysql\fR +utility performs the conversion of mSQL C API function calls to their MySQL equivalents\&. +\fBmsql2mysql\fR +converts the input file in place, so make a copy of the original before converting it\&. For example, use +\fBmsql2mysql\fR +like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBcp client\-prog\&.c client\-prog\&.c\&.orig\fR +shell> \fBmsql2mysql client\-prog\&.c\fR +client\-prog\&.c converted +.fi +.if n \{\ +.RE +.\} +.PP +Then examine +client\-prog\&.c +and make any post\-conversion revisions that may be necessary\&. +.PP +\fBmsql2mysql\fR +uses the +\fBreplace\fR +utility to make the function name substitutions\&. See +\fBreplace\fR(1)\&. +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/my_print_defaults.1 b/database/man/man1/my_print_defaults.1 new file mode 100644 index 0000000..6244c8b --- /dev/null +++ b/database/man/man1/my_print_defaults.1 @@ -0,0 +1,211 @@ +'\" t +.\" Title: \fBmy_print_defaults\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBMY_PRINT_DEFAULTS" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" my_print_defaults +.SH "NAME" +my_print_defaults \- display options from option files +.SH "SYNOPSIS" +.HP \w'\fBmy_print_defaults\ [\fR\fB\fIoptions\fR\fR\fB]\ \fR\fB\fIoption_group\fR\fR\fB\ \&.\&.\&.\fR\ 'u +\fBmy_print_defaults [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIoption_group\fR\fR\fB \&.\&.\&.\fR +.SH "DESCRIPTION" +.PP +\fBmy_print_defaults\fR +displays the options that are present in option groups of option files\&. The output indicates what options will be used by programs that read the specified option groups\&. For example, the +\fBmysqlcheck\fR +program reads the +[mysqlcheck] +and +[client] +option groups\&. To see what options are present in those groups in the standard option files, invoke +\fBmy_print_defaults\fR +like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmy_print_defaults mysqlcheck client\fR +\-\-user=myusername +\-\-password=secret +\-\-host=localhost +.fi +.if n \{\ +.RE +.\} +.PP +The output consists of options, one per line, in the form that they would be specified on the command line\&. +.PP +\fBmy_print_defaults\fR +supports the following options\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" my_print_defaults: help option +.\" help option: my_print_defaults +\fB\-\-help\fR, +\fB\-?\fR +.sp +Display a help message and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" my_print_defaults: config-file option +.\" config-file option: my_print_defaults +\fB\-\-config\-file=\fR\fB\fIfile_name\fR\fR, +.\" my_print_defaults: defaults-file option +.\" defaults-file option: my_print_defaults +\fB\-\-defaults\-file=\fR\fB\fIfile_name\fR\fR, +\fB\-c \fR\fB\fIfile_name\fR\fR +.sp +Read only the given option file\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" my_print_defaults: debug option +.\" debug option: my_print_defaults +\fB\-\-debug=\fR\fB\fIdebug_options\fR\fR, +\fB\-# \fR\fB\fIdebug_options\fR\fR +.sp +Write a debugging log\&. A typical +\fIdebug_options\fR +string is +\'d:t:o,\fIfile_name\fR\'\&. The default is +\'d:t:o,/tmp/my_print_defaults\&.trace\'\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" my_print_defaults: defaults-extra-file option +.\" defaults-extra-file option: my_print_defaults +\fB\-\-defaults\-extra\-file=\fR\fB\fIfile_name\fR\fR, +.\" my_print_defaults: extra-file option +.\" extra-file option: my_print_defaults +\fB\-\-extra\-file=\fR\fB\fIfile_name\fR\fR, +\fB\-e \fR\fB\fIfile_name\fR\fR +.sp +Read this option file after the global option file but (on Unix) before the user option file\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" my_print_defaults: defaults-group-suffix option +.\" defaults-group-suffix option: my_print_defaults +\fB\-\-defaults\-group\-suffix=\fR\fB\fIsuffix\fR\fR, +\fB\-g \fR\fB\fIsuffix\fR\fR +.sp +In addition to the groups named on the command line, read groups that have the given suffix\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" my_print_defaults: no-defaults option +.\" no-defaults option: my_print_defaults +\fB\-\-no\-defaults\fR, +\fB\-n\fR +.sp +Return an empty string\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" my_print_defaults: verbose option +.\" verbose option: my_print_defaults +\fB\-\-verbose\fR, +\fB\-v\fR +.sp +Verbose mode\&. Print more information about what the program does\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" my_print_defaults: version option +.\" version option: my_print_defaults +\fB\-\-version\fR, +\fB\-V\fR +.sp +Display version information and exit\&. +.RE +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/myisam_ftdump.1 b/database/man/man1/myisam_ftdump.1 new file mode 100644 index 0000000..55c3d8e --- /dev/null +++ b/database/man/man1/myisam_ftdump.1 @@ -0,0 +1,258 @@ +'\" t +.\" Title: \fBmyisam_ftdump\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBMYISAM_FTDUMP\FR" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" myisam_ftdump +.SH "NAME" +myisam_ftdump \- display full\-text index information +.SH "SYNOPSIS" +.HP \w'\fBmyisam_ftdump\ [\fR\fB\fIoptions\fR\fR\fB]\ \fR\fB\fItbl_name\fR\fR\fB\ \fR\fB\fIindex_num\fR\fR\ 'u +\fBmyisam_ftdump [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fItbl_name\fR\fR\fB \fR\fB\fIindex_num\fR\fR +.SH "DESCRIPTION" +.PP +\fBmyisam_ftdump\fR +displays information about +FULLTEXT +indexes in +MyISAM +tables\&. It reads the +MyISAM +index file directly, so it must be run on the server host where the table is located\&. Before using +\fBmyisam_ftdump\fR, be sure to issue a +FLUSH TABLES +statement first if the server is running\&. +.PP +\fBmyisam_ftdump\fR +scans and dumps the entire index, which is not particularly fast\&. On the other hand, the distribution of words changes infrequently, so it need not be run often\&. +.PP +Invoke +\fBmyisam_ftdump\fR +like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmyisam_ftdump [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fItbl_name\fR\fR\fB \fR\fB\fIindex_num\fR\fR +.fi +.if n \{\ +.RE +.\} +.PP +The +\fItbl_name\fR +argument should be the name of a +MyISAM +table\&. You can also specify a table by naming its index file (the file with the +\&.MYI +suffix)\&. If you do not invoke +\fBmyisam_ftdump\fR +in the directory where the table files are located, the table or index file name must be preceded by the path name to the table\'s database directory\&. Index numbers begin with 0\&. +.PP +Example: Suppose that the +test +database contains a table named +mytexttablel +that has the following definition: +.sp +.if n \{\ +.RS 4 +.\} +.nf +CREATE TABLE mytexttable +( + id INT NOT NULL, + txt TEXT NOT NULL, + PRIMARY KEY (id), + FULLTEXT (txt) +); +.fi +.if n \{\ +.RE +.\} +.PP +The index on +id +is index 0 and the +FULLTEXT +index on +txt +is index 1\&. If your working directory is the +test +database directory, invoke +\fBmyisam_ftdump\fR +as follows: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmyisam_ftdump mytexttable 1\fR +.fi +.if n \{\ +.RE +.\} +.PP +If the path name to the +test +database directory is +/usr/local/mysql/data/test, you can also specify the table name argument using that path name\&. This is useful if you do not invoke +\fBmyisam_ftdump\fR +in the database directory: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmyisam_ftdump /usr/local/mysql/data/test/mytexttable 1\fR +.fi +.if n \{\ +.RE +.\} +.PP +You can use +\fBmyisam_ftdump\fR +to generate a list of index entries in order of frequency of occurrence like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmyisam_ftdump \-c mytexttable 1 | sort \-r\fR +.fi +.if n \{\ +.RE +.\} +.PP +\fBmyisam_ftdump\fR +supports the following options: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisam_ftdump: help option +.\" help option: myisam_ftdump +\fB\-\-help\fR, +\fB\-h\fR +\fB\-?\fR +.sp +Display a help message and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisam_ftdump: count option +.\" count option: myisam_ftdump +\fB\-\-count\fR, +\fB\-c\fR +.sp +Calculate per\-word statistics (counts and global weights)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisam_ftdump: dump option +.\" dump option: myisam_ftdump +\fB\-\-dump\fR, +\fB\-d\fR +.sp +Dump the index, including data offsets and word weights\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisam_ftdump: length option +.\" length option: myisam_ftdump +\fB\-\-length\fR, +\fB\-l\fR +.sp +Report the length distribution\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisam_ftdump: stats option +.\" stats option: myisam_ftdump +\fB\-\-stats\fR, +\fB\-s\fR +.sp +Report global index statistics\&. This is the default operation if no other operation is specified\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisam_ftdump: verbose option +.\" verbose option: myisam_ftdump +\fB\-\-verbose\fR, +\fB\-v\fR +.sp +Verbose mode\&. Print more output about what the program does\&. +.RE +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/myisamchk.1 b/database/man/man1/myisamchk.1 new file mode 100644 index 0000000..1e9212d --- /dev/null +++ b/database/man/man1/myisamchk.1 @@ -0,0 +1,2460 @@ +'\" t +.\" Title: \fBmyisamchk\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBMYISAMCHK\FR" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" myisamchk +.SH "NAME" +myisamchk \- MyISAM table\-maintenance utility +.SH "SYNOPSIS" +.HP \w'\fBmyisamchk\ [\fR\fB\fIoptions\fR\fR\fB]\ \fR\fB\fItbl_name\fR\fR\fB\ \&.\&.\&.\fR\ 'u +\fBmyisamchk [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fItbl_name\fR\fR\fB \&.\&.\&.\fR +.SH "DESCRIPTION" +.PP +The +\fBmyisamchk\fR +utility gets information about your database tables or checks, repairs, or optimizes them\&. +\fBmyisamchk\fR +works with +MyISAM +tables (tables that have +\&.MYD +and +\&.MYI +files for storing data and indexes)\&. +.PP +The use of +\fBmyisamchk\fR +with partitioned tables is not supported\&. +.if n \{\ +.sp +.\} +.RS 4 +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +.ps +1 +\fBCaution\fR +.ps -1 +.br +.PP +It is best to make a backup of a table before performing a table repair operation; under some circumstances the operation might cause data loss\&. Possible causes include but are not limited to file system errors\&. +.sp .5v +.RE +.PP +Invoke +\fBmyisamchk\fR +like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmyisamchk [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fItbl_name\fR\fR\fB \&.\&.\&.\fR +.fi +.if n \{\ +.RE +.\} +.PP +The +\fIoptions\fR +specify what you want +\fBmyisamchk\fR +to do\&. They are described in the following sections\&. You can also get a list of options by invoking +\fBmyisamchk \-\-help\fR\&. +.PP +With no options, +\fBmyisamchk\fR +simply checks your table as the default operation\&. To get more information or to tell +\fBmyisamchk\fR +to take corrective action, specify options as described in the following discussion\&. +.PP +\fItbl_name\fR +is the database table you want to check or repair\&. If you run +\fBmyisamchk\fR +somewhere other than in the database directory, you must specify the path to the database directory, because +\fBmyisamchk\fR +has no idea where the database is located\&. In fact, +\fBmyisamchk\fR +does not actually care whether the files you are working on are located in a database directory\&. You can copy the files that correspond to a database table into some other location and perform recovery operations on them there\&. +.PP +You can name several tables on the +\fBmyisamchk\fR +command line if you wish\&. You can also specify a table by naming its index file (the file with the +\&.MYI +suffix)\&. This allows you to specify all tables in a directory by using the pattern +*\&.MYI\&. For example, if you are in a database directory, you can check all the +MyISAM +tables in that directory like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmyisamchk *\&.MYI\fR +.fi +.if n \{\ +.RE +.\} +.PP +If you are not in the database directory, you can check all the tables there by specifying the path to the directory: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmyisamchk \fR\fB\fI/path/to/database_dir/\fR\fR\fB*\&.MYI\fR +.fi +.if n \{\ +.RE +.\} +.PP +You can even check all tables in all databases by specifying a wildcard with the path to the MySQL data directory: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmyisamchk \fR\fB\fI/path/to/datadir/*/*\fR\fR\fB\&.MYI\fR +.fi +.if n \{\ +.RE +.\} +.PP +The recommended way to quickly check all +MyISAM +tables is: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmyisamchk \-\-silent \-\-fast \fR\fB\fI/path/to/datadir/*/*\fR\fR\fB\&.MYI\fR +.fi +.if n \{\ +.RE +.\} +.PP +If you want to check all +MyISAM +tables and repair any that are corrupted, you can use the following command: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmyisamchk \-\-silent \-\-force \-\-fast \-\-update\-state \e\fR + \fB\-\-key_buffer_size=64M \-\-sort_buffer_size=64M \e\fR + \fB\-\-read_buffer_size=1M \-\-write_buffer_size=1M \e\fR + \fB\fI/path/to/datadir/*/*\fR\fR\fB\&.MYI\fR +.fi +.if n \{\ +.RE +.\} +.PP +This command assumes that you have more than 64MB free\&. For more information about memory allocation with +\fBmyisamchk\fR, see +the section called \(lqMYISAMCHK MEMORY USAGE\(rq\&. +.if n \{\ +.sp +.\} +.RS 4 +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +.ps +1 +\fBImportant\fR +.ps -1 +.br +.PP +\fIYou must ensure that no other program is using the tables while you are running \fR\fI\fBmyisamchk\fR\fR\&. The most effective means of doing so is to shut down the MySQL server while running +\fBmyisamchk\fR, or to lock all tables that +\fBmyisamchk\fR +is being used on\&. +.PP +Otherwise, when you run +\fBmyisamchk\fR, it may display the following error message: +.sp +.if n \{\ +.RS 4 +.\} +.nf +warning: clients are using or haven\'t closed the table properly +.fi +.if n \{\ +.RE +.\} +.PP +This means that you are trying to check a table that has been updated by another program (such as the +\fBmysqld\fR +server) that hasn\'t yet closed the file or that has died without closing the file properly, which can sometimes lead to the corruption of one or more +MyISAM +tables\&. +.PP +If +\fBmysqld\fR +is running, you must force it to flush any table modifications that are still buffered in memory by using +FLUSH TABLES\&. You should then ensure that no one is using the tables while you are running +\fBmyisamchk\fR +.PP +However, the easiest way to avoid this problem is to use +CHECK TABLE +instead of +\fBmyisamchk\fR +to check tables\&. See +Section\ \&12.4.2.3, \(lqCHECK TABLE Syntax\(rq\&. +.sp .5v +.RE +.PP +\fBmyisamchk\fR +supports the following options, which can be specified on the command line or in the +[myisamchk] +option file group\&. +\fBmyisamchk\fR +also supports the options for processing option files described at +Section\ \&4.2.3.3.1, \(lqCommand-Line Options that Affect Option-File Handling\(rq\&. +.SH "MYISAMCHK GENERAL OPTIONS" +.\" options: myisamchk +.\" myisamchk: options +.PP +The options described in this section can be used for any type of table maintenance operation performed by +\fBmyisamchk\fR\&. The sections following this one describe options that pertain only to specific operations, such as table checking or repairing\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: help option +.\" help option: myisamchk +\fB\-\-help\fR, +\fB\-?\fR +.sp +Display a help message and exit\&. Options are grouped by type of operation\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: HELP option +.\" HELP option: myisamchk +\fB\-\-HELP\fR, +\fB\-H\fR +.sp +Display a help message and exit\&. Options are presented in a single list\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: debug option +.\" debug option: myisamchk +\fB\-\-debug=\fR\fB\fIdebug_options\fR\fR, +\fB\-# \fR\fB\fIdebug_options\fR\fR +.sp +Write a debugging log\&. A typical +\fIdebug_options\fR +string is +\'d:t:o,\fIfile_name\fR\'\&. The default is +\'d:t:o,/tmp/myisamchk\&.trace\'\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: silent option +.\" silent option: myisamchk +\fB\-\-silent\fR, +\fB\-s\fR +.sp +Silent mode\&. Write output only when errors occur\&. You can use +\fB\-s\fR +twice (\fB\-ss\fR) to make +\fBmyisamchk\fR +very silent\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: verbose option +.\" verbose option: myisamchk +\fB\-\-verbose\fR, +\fB\-v\fR +.sp +Verbose mode\&. Print more information about what the program does\&. This can be used with +\fB\-d\fR +and +\fB\-e\fR\&. Use +\fB\-v\fR +multiple times (\fB\-vv\fR, +\fB\-vvv\fR) for even more output\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: version option +.\" version option: myisamchk +\fB\-\-version\fR, +\fB\-V\fR +.sp +Display version information and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: wait option +.\" wait option: myisamchk +\fB\-\-wait\fR, +\fB\-w\fR +.sp +Instead of terminating with an error if the table is locked, wait until the table is unlocked before continuing\&. If you are running +\fBmysqld\fR +with external locking disabled, the table can be locked only by another +\fBmyisamchk\fR +command\&. +.RE +.PP +You can also set the following variables by using +\fB\-\-\fR\fB\fIvar_name\fR\fR\fB=\fR\fB\fIvalue\fR\fR +syntax: +.\" decode_bits myisamchk variable +.\" ft_max_word_len myisamchk variable +.\" ft_min_word_len myisamchk variable +.\" ft_stopword_file myisamchk variable +.\" key_buffer_size myisamchk variable +.\" myisam_block_size myisamchk variable +.\" read_buffer_size myisamchk variable +.\" sort_buffer_size myisamchk variable +.\" sort_key_blocks myisamchk variable +.\" stats_method myisamchk variable +.\" write_buffer_size myisamchk variable +.TS +allbox tab(:); +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l. +T{ +\fBVariable\fR +T}:T{ +\fBDefault Value\fR +T} +T{ +decode_bits +T}:T{ +9 +T} +T{ +ft_max_word_len +T}:T{ +version\-dependent +T} +T{ +ft_min_word_len +T}:T{ +4 +T} +T{ +ft_stopword_file +T}:T{ +built\-in list +T} +T{ +key_buffer_size +T}:T{ +523264 +T} +T{ +myisam_block_size +T}:T{ +1024 +T} +T{ +read_buffer_size +T}:T{ +262136 +T} +T{ +sort_buffer_size +T}:T{ +2097144 +T} +T{ +sort_key_blocks +T}:T{ +16 +T} +T{ +stats_method +T}:T{ +nulls_unequal +T} +T{ +write_buffer_size +T}:T{ +262136 +T} +.TE +.sp 1 +.PP +The possible +\fBmyisamchk\fR +variables and their default values can be examined with +\fBmyisamchk \-\-help\fR: +.PP +sort_buffer_size +is used when the keys are repaired by sorting keys, which is the normal case when you use +\fB\-\-recover\fR\&. +.PP +key_buffer_size +is used when you are checking the table with +\fB\-\-extend\-check\fR +or when the keys are repaired by inserting keys row by row into the table (like when doing normal inserts)\&. Repairing through the key buffer is used in the following cases: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +You use +\fB\-\-safe\-recover\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +The temporary files needed to sort the keys would be more than twice as big as when creating the key file directly\&. This is often the case when you have large key values for +CHAR, +VARCHAR, or +TEXT +columns, because the sort operation needs to store the complete key values as it proceeds\&. If you have lots of temporary space and you can force +\fBmyisamchk\fR +to repair by sorting, you can use the +\fB\-\-sort\-recover\fR +option\&. +.RE +.PP +Repairing through the key buffer takes much less disk space than using sorting, but is also much slower\&. +.PP +If you want a faster repair, set the +key_buffer_size +and +sort_buffer_size +variables to about 25% of your available memory\&. You can set both variables to large values, because only one of them is used at a time\&. +.PP +myisam_block_size +is the size used for index blocks\&. +.PP +stats_method +influences how +NULL +values are treated for index statistics collection when the +\fB\-\-analyze\fR +option is given\&. It acts like the +myisam_stats_method +system variable\&. For more information, see the description of +myisam_stats_method +in +Section\ \&5.1.4, \(lqServer System Variables\(rq, and +Section\ \&7.4.7, \(lqMyISAM Index Statistics Collection\(rq\&. +.PP +ft_min_word_len +and +ft_max_word_len +indicate the minimum and maximum word length for +FULLTEXT +indexes\&. +ft_stopword_file +names the stopword file\&. These need to be set under the following circumstances\&. +.PP +If you use +\fBmyisamchk\fR +to perform an operation that modifies table indexes (such as repair or analyze), the +FULLTEXT +indexes are rebuilt using the default full\-text parameter values for minimum and maximum word length and the stopword file unless you specify otherwise\&. This can result in queries failing\&. +.PP +The problem occurs because these parameters are known only by the server\&. They are not stored in +MyISAM +index files\&. To avoid the problem if you have modified the minimum or maximum word length or the stopword file in the server, specify the same +ft_min_word_len, +ft_max_word_len, and +ft_stopword_file +values to +\fBmyisamchk\fR +that you use for +\fBmysqld\fR\&. For example, if you have set the minimum word length to 3, you can repair a table with +\fBmyisamchk\fR +like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmyisamchk \-\-recover \-\-ft_min_word_len=3 \fR\fB\fItbl_name\fR\fR\fB\&.MYI\fR +.fi +.if n \{\ +.RE +.\} +.PP +To ensure that +\fBmyisamchk\fR +and the server use the same values for full\-text parameters, you can place each one in both the +[mysqld] +and +[myisamchk] +sections of an option file: +.sp +.if n \{\ +.RS 4 +.\} +.nf +[mysqld] +ft_min_word_len=3 +[myisamchk] +ft_min_word_len=3 +.fi +.if n \{\ +.RE +.\} +.PP +An alternative to using +\fBmyisamchk\fR +is to use the +REPAIR TABLE, +ANALYZE TABLE, +OPTIMIZE TABLE, or +ALTER TABLE\&. These statements are performed by the server, which knows the proper full\-text parameter values to use\&. +.SH "MYISAMCHK CHECK OPTIONS" +.\" check options: myisamchk +.\" tables: checking +.PP +\fBmyisamchk\fR +supports the following options for table checking operations: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: check option +.\" check option: myisamchk +\fB\-\-check\fR, +\fB\-c\fR +.sp +Check the table for errors\&. This is the default operation if you specify no option that selects an operation type explicitly\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: check-only-changed option +.\" check-only-changed option: myisamchk +\fB\-\-check\-only\-changed\fR, +\fB\-C\fR +.sp +Check only tables that have changed since the last check\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: extend-check option +.\" extend-check option: myisamchk +\fB\-\-extend\-check\fR, +\fB\-e\fR +.sp +Check the table very thoroughly\&. This is quite slow if the table has many indexes\&. This option should only be used in extreme cases\&. Normally, +\fBmyisamchk\fR +or +\fBmyisamchk \-\-medium\-check\fR +should be able to determine whether there are any errors in the table\&. +.sp +If you are using +\fB\-\-extend\-check\fR +and have plenty of memory, setting the +key_buffer_size +variable to a large value helps the repair operation run faster\&. +.sp +For a description of the output format, see +the section called \(lqMYISAMCHK TABLE INFORMATION\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: fast option +.\" fast option: myisamchk +\fB\-\-fast\fR, +\fB\-F\fR +.sp +Check only tables that haven\'t been closed properly\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: force option +.\" force option: myisamchk +\fB\-\-force\fR, +\fB\-f\fR +.sp +Do a repair operation automatically if +\fBmyisamchk\fR +finds any errors in the table\&. The repair type is the same as that specified with the +\fB\-\-recover\fR +or +\fB\-r\fR +option\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: information option +.\" information option: myisamchk +\fB\-\-information\fR, +\fB\-i\fR +.sp +Print informational statistics about the table that is checked\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: medium-check option +.\" medium-check option: myisamchk +\fB\-\-medium\-check\fR, +\fB\-m\fR +.sp +Do a check that is faster than an +\fB\-\-extend\-check\fR +operation\&. This finds only 99\&.99% of all errors, which should be good enough in most cases\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: read-only option +.\" read-only option: myisamchk +\fB\-\-read\-only\fR, +\fB\-T\fR +.sp +Do not mark the table as checked\&. This is useful if you use +\fBmyisamchk\fR +to check a table that is in use by some other application that does not use locking, such as +\fBmysqld\fR +when run with external locking disabled\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: update-state option +.\" update-state option: myisamchk +\fB\-\-update\-state\fR, +\fB\-U\fR +.sp +Store information in the +\&.MYI +file to indicate when the table was checked and whether the table crashed\&. This should be used to get full benefit of the +\fB\-\-check\-only\-changed\fR +option, but you shouldn\'t use this option if the +\fBmysqld\fR +server is using the table and you are running it with external locking disabled\&. +.RE +.SH "MYISAMCHK REPAIR OPTIONS" +.\" repair options: myisamchk +.\" files: repairing +.PP +\fBmyisamchk\fR +supports the following options for table repair operations (operations performed when an option such as +\fB\-\-recover\fR +or +\fB\-\-safe\-recover\fR +is given): +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: backup option +.\" backup option: myisamchk +\fB\-\-backup\fR, +\fB\-B\fR +.sp +Make a backup of the +\&.MYD +file as +\fIfile_name\fR\-\fItime\fR\&.BAK +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: character-sets-dir option +.\" character-sets-dir option: myisamchk +\fB\-\-character\-sets\-dir=\fR\fB\fIpath\fR\fR +.sp +The directory where character sets are installed\&. See +Section\ \&9.5, \(lqCharacter Set Configuration\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: correct-checksum option +.\" correct-checksum option: myisamchk +\fB\-\-correct\-checksum\fR +.sp +Correct the checksum information for the table\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: data-file-length option +.\" data-file-length option: myisamchk +\fB\-\-data\-file\-length=\fR\fB\fIlen\fR\fR, +\fB\-D \fR\fB\fIlen\fR\fR +.sp +The maximum length of the data file (when re\-creating data file when it is +\(lqfull\(rq)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: extend-check option +.\" extend-check option: myisamchk +\fB\-\-extend\-check\fR, +\fB\-e\fR +.sp +Do a repair that tries to recover every possible row from the data file\&. Normally, this also finds a lot of garbage rows\&. Do not use this option unless you are desperate\&. +.sp +For a description of the output format, see +the section called \(lqMYISAMCHK TABLE INFORMATION\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: force option +.\" force option: myisamchk +\fB\-\-force\fR, +\fB\-f\fR +.sp +Overwrite old intermediate files (files with names like +\fItbl_name\fR\&.TMD) instead of aborting\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: keys-used option +.\" keys-used option: myisamchk +\fB\-\-keys\-used=\fR\fB\fIval\fR\fR, +\fB\-k \fR\fB\fIval\fR\fR +.sp +For +\fBmyisamchk\fR, the option value is a bit\-value that indicates which indexes to update\&. Each binary bit of the option value corresponds to a table index, where the first index is bit 0\&. An option value of 0 disables updates to all indexes, which can be used to get faster inserts\&. Deactivated indexes can be reactivated by using +\fBmyisamchk \-r\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: no-symlinks option +.\" no-symlinks option: myisamchk +\fB\-\-no\-symlinks\fR, +\fB\-l\fR +.sp +Do not follow symbolic links\&. Normally +\fBmyisamchk\fR +repairs the table that a symlink points to\&. This option does not exist as of MySQL 4\&.0 because versions from 4\&.0 on do not remove symlinks during repair operations\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: max-record-length option +.\" max-record-length option: myisamchk +\fB\-\-max\-record\-length=\fR\fB\fIlen\fR\fR +.sp +Skip rows larger than the given length if +\fBmyisamchk\fR +cannot allocate memory to hold them\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: parallel-recover option +.\" parallel-recover option: myisamchk +\fB\-\-parallel\-recover\fR, +\fB\-p\fR +.sp +Use the same technique as +\fB\-r\fR +and +\fB\-n\fR, but create all the keys in parallel, using different threads\&. +\fIThis is beta\-quality code\&. Use at your own risk!\fR +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: quick option +.\" quick option: myisamchk +\fB\-\-quick\fR, +\fB\-q\fR +.sp +Achieve a faster repair by modifying only the index file, not the data file\&. You can specify this option twice to force +\fBmyisamchk\fR +to modify the original data file in case of duplicate keys\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: recover option +.\" recover option: myisamchk +\fB\-\-recover\fR, +\fB\-r\fR +.sp +Do a repair that can fix almost any problem except unique keys that are not unique (which is an extremely unlikely error with +MyISAM +tables)\&. If you want to recover a table, this is the option to try first\&. You should try +\fB\-\-safe\-recover\fR +only if +\fBmyisamchk\fR +reports that the table cannot be recovered using +\fB\-\-recover\fR\&. (In the unlikely case that +\fB\-\-recover\fR +fails, the data file remains intact\&.) +.sp +If you have lots of memory, you should increase the value of +sort_buffer_size\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: safe-recover option +.\" safe-recover option: myisamchk +\fB\-\-safe\-recover\fR, +\fB\-o\fR +.sp +Do a repair using an old recovery method that reads through all rows in order and updates all index trees based on the rows found\&. This is an order of magnitude slower than +\fB\-\-recover\fR, but can handle a couple of very unlikely cases that +\fB\-\-recover\fR +cannot\&. This recovery method also uses much less disk space than +\fB\-\-recover\fR\&. Normally, you should repair first using +\fB\-\-recover\fR, and then with +\fB\-\-safe\-recover\fR +only if +\fB\-\-recover\fR +fails\&. +.sp +If you have lots of memory, you should increase the value of +key_buffer_size\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: set-character-set option +.\" set-character-set option: myisamchk +\fB\-\-set\-character\-set=\fR\fB\fIname\fR\fR +.sp +Change the character set used by the table indexes\&. This option was replaced by +\fB\-\-set\-collation\fR +in MySQL 5\&.0\&.3\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: set-collation option +.\" set-collation option: myisamchk +\fB\-\-set\-collation=\fR\fB\fIname\fR\fR +.sp +Specify the collation to use for sorting table indexes\&. The character set name is implied by the first part of the collation name\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: sort-recover option +.\" sort-recover option: myisamchk +\fB\-\-sort\-recover\fR, +\fB\-n\fR +.sp +Force +\fBmyisamchk\fR +to use sorting to resolve the keys even if the temporary files would be very large\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: tmpdir option +.\" tmpdir option: myisamchk +\fB\-\-tmpdir=\fR\fB\fIpath\fR\fR, +\fB\-t \fR\fB\fIpath\fR\fR +.sp +The path of the directory to be used for storing temporary files\&. If this is not set, +\fBmyisamchk\fR +uses the value of the +TMPDIR +environment variable\&. +tmpdir +can be set to a list of directory paths that are used successively in round\-robin fashion for creating temporary files\&. The separator character between directory names is the colon (\(lq:\(rq) on Unix and the semicolon (\(lq;\(rq) on Windows, NetWare, and OS/2\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: unpack option +.\" unpack option: myisamchk +\fB\-\-unpack\fR, +\fB\-u\fR +.sp +Unpack a table that was packed with +\fBmyisampack\fR\&. +.RE +.SH "OTHER MYISAMCHK OPTIONS" +.PP +\fBmyisamchk\fR +supports the following options for actions other than table checks and repairs: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: analyze option +.\" analyze option: myisamchk +\fB\-\-analyze\fR, +\fB\-a\fR +.sp +Analyze the distribution of key values\&. This improves join performance by enabling the join optimizer to better choose the order in which to join the tables and which indexes it should use\&. To obtain information about the key distribution, use a +\fBmyisamchk \-\-description \-\-verbose \fR\fB\fItbl_name\fR\fR +command or the +SHOW INDEX FROM \fItbl_name\fR +statement\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: block-search option +.\" block-search option: myisamchk +\fB\-\-block\-search=\fR\fB\fIoffset\fR\fR, +\fB\-b \fR\fB\fIoffset\fR\fR +.sp +Find the record that a block at the given offset belongs to\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: description option +.\" description option: myisamchk +\fB\-\-description\fR, +\fB\-d\fR +.sp +Print some descriptive information about the table\&. Specifying the +\fB\-\-verbose\fR +option once or twice produces additional information\&. See +the section called \(lqMYISAMCHK TABLE INFORMATION\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: set-auto-increment[ option +.\" set-auto-increment[ option: myisamchk +\fB\-\-set\-auto\-increment[=\fR\fB\fIvalue\fR\fR\fB]\fR, +\fB\-A[\fR\fB\fIvalue\fR\fR\fB]\fR +.sp +Force +AUTO_INCREMENT +numbering for new records to start at the given value (or higher, if there are existing records with +AUTO_INCREMENT +values this large)\&. If +\fIvalue\fR +is not specified, +AUTO_INCREMENT +numbers for new records begin with the largest value currently in the table, plus one\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: sort-index option +.\" sort-index option: myisamchk +\fB\-\-sort\-index\fR, +\fB\-S\fR +.sp +Sort the index tree blocks in high\-low order\&. This optimizes seeks and makes table scans that use indexes faster\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisamchk: sort-records option +.\" sort-records option: myisamchk +\fB\-\-sort\-records=\fR\fB\fIN\fR\fR, +\fB\-R \fR\fB\fIN\fR\fR +.sp +Sort records according to a particular index\&. This makes your data much more localized and may speed up range\-based +SELECT +and +ORDER BY +operations that use this index\&. (The first time you use this option to sort a table, it may be very slow\&.) To determine a table\'s index numbers, use +SHOW INDEX, which displays a table\'s indexes in the same order that +\fBmyisamchk\fR +sees them\&. Indexes are numbered beginning with 1\&. +.sp +If keys are not packed (PACK_KEYS=0), they have the same length, so when +\fBmyisamchk\fR +sorts and moves records, it just overwrites record offsets in the index\&. If keys are packed (PACK_KEYS=1), +\fBmyisamchk\fR +must unpack key blocks first, then re\-create indexes and pack the key blocks again\&. (In this case, re\-creating indexes is faster than updating offsets for each index\&.) +.RE +.SH "MYISAMCHK TABLE INFORMATION" +.\" table description: myisamchk +.\" tables: information +.\" examples: myisamchk output +.\" myisamchk: example output +.PP +To obtain a description of a +MyISAM +table or statistics about it, use the commands shown here\&. The output from these commands is explained later in this section\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fBmyisamchk \-d \fR\fB\fItbl_name\fR\fR +.sp +Runs +\fBmyisamchk\fR +in +\(lqdescribe mode\(rq +to produce a description of your table\&. If you start the MySQL server with external locking disabled, +\fBmyisamchk\fR +may report an error for a table that is updated while it runs\&. However, because +\fBmyisamchk\fR +does not change the table in describe mode, there is no risk of destroying data\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fBmyisamchk \-dv \fR\fB\fItbl_name\fR\fR +.sp +Adding +\fB\-v\fR +runs +\fBmyisamchk\fR +in verbose mode so that it produces more information about the table\&. Adding +\fB\-v\fR +a second time produces even more information\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fBmyisamchk \-eis \fR\fB\fItbl_name\fR\fR +.sp +Shows only the most important information from a table\&. This operation is slow because it must read the entire table\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fBmyisamchk \-eiv \fR\fB\fItbl_name\fR\fR +.sp +This is like +\fB\-eis\fR, but tells you what is being done\&. +.RE +.PP +The +\fItbl_name\fR +argument can be either the name of a +MyISAM +table or the name of its index file, as described in +\fBmyisamchk\fR(1)\&. Multiple +\fItbl_name\fR +arguments can be given\&. +.PP +Suppose that a table named +person +has the following structure\&. (The +MAX_ROWS +table option is included so that in the example output from +\fBmyisamchk\fR +shown later, some values are smaller and fit the output format more easily\&.) +.sp +.if n \{\ +.RS 4 +.\} +.nf +CREATE TABLE person +( + id INT NOT NULL AUTO_INCREMENT, + last_name VARCHAR(20) NOT NULL, + first_name VARCHAR(20) NOT NULL, + birth DATE, + death DATE, + PRIMARY KEY (id), + INDEX (last_name, first_name), + INDEX (birth) +) MAX_ROWS = 1000000; +.fi +.if n \{\ +.RE +.\} +.PP +Suppose also that the table has these data and index file sizes: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\-rw\-rw\-\-\-\- 1 mysql mysql 9347072 Aug 19 11:47 person\&.MYD +\-rw\-rw\-\-\-\- 1 mysql mysql 6066176 Aug 19 11:47 person\&.MYI +.fi +.if n \{\ +.RE +.\} +.PP +Example of +\fBmyisamchk \-dvv\fR +output: +.sp +.if n \{\ +.RS 4 +.\} +.nf +MyISAM file: person +Record format: Packed +Character set: latin1_swedish_ci (8) +File\-version: 1 +Creation time: 2009\-08\-19 16:47:41 +Recover time: 2009\-08\-19 16:47:56 +Status: checked,analyzed,optimized keys +Auto increment key: 1 Last value: 306688 +Data records: 306688 Deleted blocks: 0 +Datafile parts: 306688 Deleted data: 0 +Datafile pointer (bytes): 4 Keyfile pointer (bytes): 3 +Datafile length: 9347072 Keyfile length: 6066176 +Max datafile length: 4294967294 Max keyfile length: 17179868159 +Recordlength: 54 +table description: +Key Start Len Index Type Rec/key Root Blocksize +1 2 4 unique long 1 99328 1024 +2 6 20 multip\&. varchar prefix 512 3563520 1024 + 27 20 varchar 512 +3 48 3 multip\&. uint24 NULL 306688 6065152 1024 +Field Start Length Nullpos Nullbit Type +1 1 1 +2 2 4 no zeros +3 6 21 varchar +4 27 21 varchar +5 48 3 1 1 no zeros +6 51 3 1 2 no zeros +.fi +.if n \{\ +.RE +.\} +.PP +Explanations for the types of information +\fBmyisamchk\fR +produces are given here\&. +\(lqKeyfile\(rq +refers to the index file\&. +\(lqRecord\(rq +and +\(lqrow\(rq +are synonymous, as are +\(lqfield\(rq +and +\(lqcolumn\&.\(rq +.PP +The initial part of the table description contains these values: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +MyISAM file +.sp +Name of the +MyISAM +(index) file\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Record format +.sp +The format used to store table rows\&. The preceding examples use +Fixed length\&. Other possible values are +Compressed +and +Packed\&. (Packed +corresponds to what +SHOW TABLE STATUS +reports as +Dynamic\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Chararacter set +.sp +The table default character set\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +File\-version +.sp +Version of +MyISAM +format\&. Currently always 1\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Creation time +.sp +When the data file was created\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Recover time +.sp +When the index/data file was last reconstructed\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Status +.sp +Table status flags\&. Possible values are +crashed, +open, +changed, +analyzed, +optimized keys, and +sorted index pages\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Auto increment key, +Last value +.sp +The key number associated the table\'s +AUTO_INCREMENT +column, and the most recently generated value for this column\&. These fields do not appear if there is no such column\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Data records +.sp +The number of rows in the table\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Deleted blocks +.sp +How many deleted blocks still have reserved space\&. You can optimize your table to minimize this space\&. See +Section\ \&6.6.4, \(lqMyISAM Table Optimization\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Datafile parts +.sp +For dynamic\-row format, this indicates how many data blocks there are\&. For an optimized table without fragmented rows, this is the same as +Data records\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Deleted data +.sp +How many bytes of unreclaimed deleted data there are\&. You can optimize your table to minimize this space\&. See +Section\ \&6.6.4, \(lqMyISAM Table Optimization\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Datafile pointer +.sp +The size of the data file pointer, in bytes\&. It is usually 2, 3, 4, or 5 bytes\&. Most tables manage with 2 bytes, but this cannot be controlled from MySQL yet\&. For fixed tables, this is a row address\&. For dynamic tables, this is a byte address\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Keyfile pointer +.sp +The size of the index file pointer, in bytes\&. It is usually 1, 2, or 3 bytes\&. Most tables manage with 2 bytes, but this is calculated automatically by MySQL\&. It is always a block address\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Max datafile length +.sp +How long the table data file can become, in bytes\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Max keyfile length +.sp +How long the table index file can become, in bytes\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Recordlength +.sp +How much space each row takes, in bytes\&. +.RE +.PP +The +table description +part of the output includes a list of all keys in the table\&. For each key, +\fBmyisamchk\fR +displays some low\-level information: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Key +.sp +This key\'s number\&. This value is shown only for the first column of the key\&. If this value is missing, the line corresponds to the second or later column of a multiple\-column key\&. For the table shown in the example, there are two +table description +lines for the second index\&. This indicates that it is a multiple\-part index with two parts\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Start +.sp +Where in the row this portion of the index starts\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Len +.sp +How long this portion of the index is\&. For packed numbers, this should always be the full length of the column\&. For strings, it may be shorter than the full length of the indexed column, because you can index a prefix of a string column\&. The total length of a multiple\-part key is the sum of the +Len +values for all key parts\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Index +.sp +Whether a key value can exist multiple times in the index\&. Possible values are +unique +or +multip\&. +(multiple)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Type +.sp +What data type this portion of the index has\&. This is a +MyISAM +data type with the possible values +packed, +stripped, or +empty\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Root +.sp +Address of the root index block\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Blocksize +.sp +The size of each index block\&. By default this is 1024, but the value may be changed at compile time when MySQL is built from source\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Rec/key +.sp +This is a statistical value used by the optimizer\&. It tells how many rows there are per value for this index\&. A unique index always has a value of 1\&. This may be updated after a table is loaded (or greatly changed) with +\fBmyisamchk \-a\fR\&. If this is not updated at all, a default value of 30 is given\&. +.RE +.PP +The last part of the output provides information about each column: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Field +.sp +The column number\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Start +.sp +The byte position of the column within table rows\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Length +.sp +The length of the column in bytes\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Nullpos, +Nullbit +.sp +For columns that can be +NULL, +MyISAM +stores +NULL +values as a flag in a byte\&. Depending on how many nullable columns there are, there can be one or more bytes used for this purpose\&. The +Nullpos +and +Nullbit +values, if nonempty, indicate which byte and bit contains that flag indicating whether the column is +NULL\&. +.sp +The position and number of bytes used to store +NULL +flags is shown in the line for field 1\&. This is why there are six +Field +lines for the +person +table even though it has only five columns\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Type +.sp +The data type\&. The value may contain any of the following descriptors: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +constant +.sp +All rows have the same value\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +no endspace +.sp +Do not store endspace\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +no endspace, not_always +.sp +Do not store endspace and do not do endspace compression for all values\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +no endspace, no empty +.sp +Do not store endspace\&. Do not store empty values\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +table\-lookup +.sp +The column was converted to an +ENUM\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +zerofill(\fIN\fR) +.sp +The most significant +\fIN\fR +bytes in the value are always 0 and are not stored\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +no zeros +.sp +Do not store zeros\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +always zero +.sp +Zero values are stored using one bit\&. +.RE +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Huff tree +.sp +The number of the Huffman tree associated with the column\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Bits +.sp +The number of bits used in the Huffman tree\&. +.RE +.PP +The +Huff tree +and +Bits +fields are displayed if the table has been compressed with +\fBmyisampack\fR\&. See +\fBmyisampack\fR(1), for an example of this information\&. +.PP +Example of +\fBmyisamchk \-eiv\fR +output: +.sp +.if n \{\ +.RS 4 +.\} +.nf +Checking MyISAM file: person +Data records: 306688 Deleted blocks: 0 +\- check file\-size +\- check record delete\-chain +No recordlinks +\- check key delete\-chain +block_size 1024: +\- check index reference +\- check data record references index: 1 +Key: 1: Keyblocks used: 98% Packed: 0% Max levels: 3 +\- check data record references index: 2 +Key: 2: Keyblocks used: 99% Packed: 97% Max levels: 3 +\- check data record references index: 3 +Key: 3: Keyblocks used: 98% Packed: \-14% Max levels: 3 +Total: Keyblocks used: 98% Packed: 89% +\- check records and index references +\fI*** LOTS OF ROW NUMBERS DELETED ***\fR +Records: 306688 M\&.recordlength: 25 Packed: 83% +Recordspace used: 97% Empty space: 2% Blocks/Record: 1\&.00 +Record blocks: 306688 Delete blocks: 0 +Record data: 7934464 Deleted data: 0 +Lost space: 256512 Linkdata: 1156096 +User time 43\&.08, System time 1\&.68 +Maximum resident set size 0, Integral resident set size 0 +Non\-physical pagefaults 0, Physical pagefaults 0, Swaps 0 +Blocks in 0 out 7, Messages in 0 out 0, Signals 0 +Voluntary context switches 0, Involuntary context switches 0 +Maximum memory usage: 1046926 bytes (1023k) +.fi +.if n \{\ +.RE +.\} +.PP +\fBmyisamchk \-eiv\fR +output includes the following information: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Data records +.sp +The number of rows in the table\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Deleted blocks +.sp +How many deleted blocks still have reserved space\&. You can optimize your table to minimize this space\&. See +Section\ \&6.6.4, \(lqMyISAM Table Optimization\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Key +.sp +The key number\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Keyblocks used +.sp +What percentage of the keyblocks are used\&. When a table has just been reorganized with +\fBmyisamchk\fR, the values are very high (very near theoretical maximum)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Packed +.sp +MySQL tries to pack key values that have a common suffix\&. This can only be used for indexes on +CHAR +and +VARCHAR +columns\&. For long indexed strings that have similar leftmost parts, this can significantly reduce the space used\&. In the preceding example, the second key is 40 bytes long and a 97% reduction in space is achieved\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Max levels +.sp +How deep the B\-tree for this key is\&. Large tables with long key values get high values\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Records +.sp +How many rows are in the table\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +M\&.recordlength +.sp +The average row length\&. This is the exact row length for tables with fixed\-length rows, because all rows have the same length\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Packed +.sp +MySQL strips spaces from the end of strings\&. The +Packed +value indicates the percentage of savings achieved by doing this\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Recordspace used +.sp +What percentage of the data file is used\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Empty space +.sp +What percentage of the data file is unused\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Blocks/Record +.sp +Average number of blocks per row (that is, how many links a fragmented row is composed of)\&. This is always 1\&.0 for fixed\-format tables\&. This value should stay as close to 1\&.0 as possible\&. If it gets too large, you can reorganize the table\&. See +Section\ \&6.6.4, \(lqMyISAM Table Optimization\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Recordblocks +.sp +How many blocks (links) are used\&. For fixed\-format tables, this is the same as the number of rows\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Deleteblocks +.sp +How many blocks (links) are deleted\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Recorddata +.sp +How many bytes in the data file are used\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Deleted data +.sp +How many bytes in the data file are deleted (unused)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Lost space +.sp +If a row is updated to a shorter length, some space is lost\&. This is the sum of all such losses, in bytes\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Linkdata +.sp +When the dynamic table format is used, row fragments are linked with pointers (4 to 7 bytes each)\&. +Linkdata +is the sum of the amount of storage used by all such pointers\&. +.RE +.SH "MYISAMCHK MEMORY USAGE" +.\" memory usage: myisamchk +.PP +Memory allocation is important when you run +\fBmyisamchk\fR\&. +\fBmyisamchk\fR +uses no more memory than its memory\-related variables are set to\&. If you are going to use +\fBmyisamchk\fR +on very large tables, you should first decide how much memory you want it to use\&. The default is to use only about 3MB to perform repairs\&. By using larger values, you can get +\fBmyisamchk\fR +to operate faster\&. For example, if you have more than 32MB RAM, you could use options such as these (in addition to any other options you might specify): +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmyisamchk \-\-sort_buffer_size=16M \e\fR + \fB\-\-key_buffer_size=16M \e\fR + \fB\-\-read_buffer_size=1M \e\fR + \fB\-\-write_buffer_size=1M \&.\&.\&.\fR +.fi +.if n \{\ +.RE +.\} +.PP +Using +\fB\-\-sort_buffer_size=16M\fR +should probably be enough for most cases\&. +.PP +Be aware that +\fBmyisamchk\fR +uses temporary files in +TMPDIR\&. If +TMPDIR +points to a memory file system, out of memory errors can easily occur\&. If this happens, run +\fBmyisamchk\fR +with the +\fB\-\-tmpdir=\fR\fB\fIpath\fR\fR +option to specify a directory located on a file system that has more space\&. +.PP +When performing repair operations, +\fBmyisamchk\fR +also needs a lot of disk space: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Twice the size of the data file (the original file and a copy)\&. This space is not needed if you do a repair with +\fB\-\-quick\fR; in this case, only the index file is re\-created\&. +\fIThis space must be available on the same file system as the original data file\fR, as the copy is created in the same directory as the original\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Space for the new index file that replaces the old one\&. The old index file is truncated at the start of the repair operation, so you usually ignore this space\&. This space must be available on the same file system as the original data file\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +When using +\fB\-\-recover\fR +or +\fB\-\-sort\-recover\fR +(but not when using +\fB\-\-safe\-recover\fR), you need space on disk for sorting\&. This space is allocated in the temporary directory (specified by +TMPDIR +or +\fB\-\-tmpdir=\fR\fB\fIpath\fR\fR)\&. The following formula yields the amount of space required: +.sp +.if n \{\ +.RS 4 +.\} +.nf +(\fIlargest_key\fR + \fIrow_pointer_length\fR) \(mu \fInumber_of_rows\fR \(mu 2 +.fi +.if n \{\ +.RE +.\} +.sp +You can check the length of the keys and the +\fIrow_pointer_length\fR +with +\fBmyisamchk \-dv \fR\fB\fItbl_name\fR\fR +(see +the section called \(lqMYISAMCHK TABLE INFORMATION\(rq)\&. The +\fIrow_pointer_length\fR +and +\fInumber_of_rows\fR +values are the +Datafile pointer +and +Data records +values in the table description\&. To determine the +\fIlargest_key\fR +value, check the +Key +lines in the table description\&. The +Len +column indicates the number of bytes for each key part\&. For a multiple\-column index, the key size is the sum of the +Len +values for all key parts\&. +.RE +.PP +If you have a problem with disk space during repair, you can try +\fB\-\-safe\-recover\fR +instead of +\fB\-\-recover\fR\&. +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/myisamlog.1 b/database/man/man1/myisamlog.1 new file mode 100644 index 0000000..ae192a2 --- /dev/null +++ b/database/man/man1/myisamlog.1 @@ -0,0 +1,241 @@ +'\" t +.\" Title: \fBmyisamlog\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBMYISAMLOG\FR" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" myisamlog +.\" isamlog +.SH "NAME" +myisamlog \- display MyISAM log file contents +.SH "SYNOPSIS" +.HP \w'\fBmyisamlog\ [\fR\fB\fIoptions\fR\fR\fB]\ [\fR\fB\fIlog_file\fR\fR\fB\ [\fR\fB\fItbl_name\fR\fR\fB]\ \&.\&.\&.]\fR\ 'u +\fBmyisamlog [\fR\fB\fIoptions\fR\fR\fB] [\fR\fB\fIlog_file\fR\fR\fB [\fR\fB\fItbl_name\fR\fR\fB] \&.\&.\&.]\fR +.SH "DESCRIPTION" +.PP +\fBmyisamlog\fR +processes the contents of a +MyISAM +log file\&. +.PP +Invoke +\fBmyisamlog\fR +like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmyisamlog [\fR\fB\fIoptions\fR\fR\fB] [\fR\fB\fIlog_file\fR\fR\fB [\fR\fB\fItbl_name\fR\fR\fB] \&.\&.\&.]\fR +shell> \fBisamlog [\fR\fB\fIoptions\fR\fR\fB] [\fR\fB\fIlog_file\fR\fR\fB [\fR\fB\fItbl_name\fR\fR\fB] \&.\&.\&.]\fR +.fi +.if n \{\ +.RE +.\} +.PP +The default operation is update (\fB\-u\fR)\&. If a recovery is done (\fB\-r\fR), all writes and possibly updates and deletes are done and errors are only counted\&. The default log file name is +myisam\&.log +for +\fBmyisamlog\fR +and +isam\&.log +for +\fBisamlog\fR +if no +\fIlog_file\fR +argument is given\&. If tables are named on the command line, only those tables are updated\&. +.PP +\fBmyisamlog\fR +supports the following options: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-?\fR, +\fB\-I\fR +.sp +Display a help message and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-c \fR\fB\fIN\fR\fR +.sp +Execute only +\fIN\fR +commands\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-f \fR\fB\fIN\fR\fR +.sp +Specify the maximum number of open files\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-i\fR +.sp +Display extra information before exiting\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-o \fR\fB\fIoffset\fR\fR +.sp +Specify the starting offset\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-p \fR\fB\fIN\fR\fR +.sp +Remove +\fIN\fR +components from path\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-r\fR +.sp +Perform a recovery operation\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-R \fR\fB\fIrecord_pos_file record_pos\fR\fR +.sp +Specify record position file and record position\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-u\fR +.sp +Perform an update operation\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-v\fR +.sp +Verbose mode\&. Print more output about what the program does\&. This option can be given multiple times to produce more and more output\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-w \fR\fB\fIwrite_file\fR\fR +.sp +Specify the write file\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-V\fR +.sp +Display version information\&. +.RE +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/myisampack.1 b/database/man/man1/myisampack.1 new file mode 100644 index 0000000..b484233 --- /dev/null +++ b/database/man/man1/myisampack.1 @@ -0,0 +1,848 @@ +'\" t +.\" Title: \fBmyisampack\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBMYISAMPACK\FR" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" myisampack +.\" compressed tables +.\" tables: compressed +.\" MyISAM: compressed tables +.SH "NAME" +myisampack \- generate compressed, read\-only MyISAM tables +.SH "SYNOPSIS" +.HP \w'\fBmyisampack\ [\fR\fB\fIoptions\fR\fR\fB]\ \fR\fB\fIfile_name\fR\fR\fB\ \&.\&.\&.\fR\ 'u +\fBmyisampack [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIfile_name\fR\fR\fB \&.\&.\&.\fR +.SH "DESCRIPTION" +.PP +The +\fBmyisampack\fR +utility compresses +MyISAM +tables\&. +\fBmyisampack\fR +works by compressing each column in the table separately\&. Usually, +\fBmyisampack\fR +packs the data file 40%\(en70%\&. +.PP +When the table is used later, the server reads into memory the information needed to decompress columns\&. This results in much better performance when accessing individual rows, because you only have to uncompress exactly one row\&. +.PP +MySQL uses +mmap() +when possible to perform memory mapping on compressed tables\&. If +mmap() +does not work, MySQL falls back to normal read/write file operations\&. +.PP +Please note the following: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +If the +\fBmysqld\fR +server was invoked with external locking disabled, it is not a good idea to invoke +\fBmyisampack\fR +if the table might be updated by the server during the packing process\&. It is safest to compress tables with the server stopped\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +After packing a table, it becomes read only\&. This is generally intended (such as when accessing packed tables on a CD)\&. Allowing writes to a packed table is on our TODO list, but with low priority\&. +.RE +.PP +Invoke +\fBmyisampack\fR +like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmyisampack [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIfile_name\fR\fR\fB \&.\&.\&.\fR +.fi +.if n \{\ +.RE +.\} +.PP +Each file name argument should be the name of an index (\&.MYI) file\&. If you are not in the database directory, you should specify the path name to the file\&. It is permissible to omit the +\&.MYI +extension\&. +.PP +After you compress a table with +\fBmyisampack\fR, you should use +\fBmyisamchk \-rq\fR +to rebuild its indexes\&. +\fBmyisamchk\fR(1)\&. +.PP +\fBmyisampack\fR +supports the following options\&. It also reads option files and supports the options for processing them described at +Section\ \&4.2.3.3.1, \(lqCommand-Line Options that Affect Option-File Handling\(rq\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisampack: help option +.\" help option: myisampack +\fB\-\-help\fR, +\fB\-?\fR +.sp +Display a help message and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisampack: backup option +.\" backup option: myisampack +\fB\-\-backup\fR, +\fB\-b\fR +.sp +Make a backup of each table\'s data file using the name +\fItbl_name\fR\&.OLD\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisampack: character-sets-dir option +.\" character-sets-dir option: myisampack +\fB\-\-character\-sets\-dir=\fR\fB\fIpath\fR\fR +.sp +The directory where character sets are installed\&. See +Section\ \&9.5, \(lqCharacter Set Configuration\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisampack: debug option +.\" debug option: myisampack +\fB\-\-debug[=\fR\fB\fIdebug_options\fR\fR\fB]\fR, +\fB\-# [\fR\fB\fIdebug_options\fR\fR\fB]\fR +.sp +Write a debugging log\&. A typical +\fIdebug_options\fR +string is +\'d:t:o,\fIfile_name\fR\'\&. The default is +\'d:t:o\'\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisampack: force option +.\" force option: myisampack +\fB\-\-force\fR, +\fB\-f\fR +.sp +Produce a packed table even if it becomes larger than the original or if the intermediate file from an earlier invocation of +\fBmyisampack\fR +exists\&. (\fBmyisampack\fR +creates an intermediate file named +\fItbl_name\fR\&.TMD +in the database directory while it compresses the table\&. If you kill +\fBmyisampack\fR, the +\&.TMD +file might not be deleted\&.) Normally, +\fBmyisampack\fR +exits with an error if it finds that +\fItbl_name\fR\&.TMD +exists\&. With +\fB\-\-force\fR, +\fBmyisampack\fR +packs the table anyway\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisampack: join option +.\" join option: myisampack +\fB\-\-join=\fR\fB\fIbig_tbl_name\fR\fR, +\fB\-j \fR\fB\fIbig_tbl_name\fR\fR +.sp +Join all tables named on the command line into a single packed table +\fIbig_tbl_name\fR\&. All tables that are to be combined +\fImust\fR +have identical structure (same column names and types, same indexes, and so forth)\&. +.sp +\fIbig_tbl_name\fR +must not exist prior to the join operation\&. All source tables named on the command line to be merged into +\fIbig_tbl_name\fR +must exist\&. The source tables are read for the join operation but not modified\&. The join operation does not create a +\&.frm +file for +\fIbig_tbl_name\fR, so after the join operation finishes, copy the +\&.frm +file from one of the source tables and name it +\fIbig_tbl_name\fR\&.frm\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisampack: silent option +.\" silent option: myisampack +\fB\-\-silent\fR, +\fB\-s\fR +.sp +Silent mode\&. Write output only when errors occur\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisampack: test option +.\" test option: myisampack +\fB\-\-test\fR, +\fB\-t\fR +.sp +Do not actually pack the table, just test packing it\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisampack: tmpdir option +.\" tmpdir option: myisampack +\fB\-\-tmpdir=\fR\fB\fIpath\fR\fR, +\fB\-T \fR\fB\fIpath\fR\fR +.sp +Use the named directory as the location where +\fBmyisampack\fR +creates temporary files\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisampack: verbose option +.\" verbose option: myisampack +\fB\-\-verbose\fR, +\fB\-v\fR +.sp +Verbose mode\&. Write information about the progress of the packing operation and its result\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisampack: version option +.\" version option: myisampack +\fB\-\-version\fR, +\fB\-V\fR +.sp +Display version information and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" myisampack: wait option +.\" wait option: myisampack +\fB\-\-wait\fR, +\fB\-w\fR +.sp +Wait and retry if the table is in use\&. If the +\fBmysqld\fR +server was invoked with external locking disabled, it is not a good idea to invoke +\fBmyisampack\fR +if the table might be updated by the server during the packing process\&. +.RE +.\" examples: compressed tables +.PP +The following sequence of commands illustrates a typical table compression session: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBls \-l station\&.*\fR +\-rw\-rw\-r\-\- 1 monty my 994128 Apr 17 19:00 station\&.MYD +\-rw\-rw\-r\-\- 1 monty my 53248 Apr 17 19:00 station\&.MYI +\-rw\-rw\-r\-\- 1 monty my 5767 Apr 17 19:00 station\&.frm +shell> \fBmyisamchk \-dvv station\fR +MyISAM file: station +Isam\-version: 2 +Creation time: 1996\-03\-13 10:08:58 +Recover time: 1997\-02\-02 3:06:43 +Data records: 1192 Deleted blocks: 0 +Datafile parts: 1192 Deleted data: 0 +Datafile pointer (bytes): 2 Keyfile pointer (bytes): 2 +Max datafile length: 54657023 Max keyfile length: 33554431 +Recordlength: 834 +Record format: Fixed length +table description: +Key Start Len Index Type Root Blocksize Rec/key +1 2 4 unique unsigned long 1024 1024 1 +2 32 30 multip\&. text 10240 1024 1 +Field Start Length Type +1 1 1 +2 2 4 +3 6 4 +4 10 1 +5 11 20 +6 31 1 +7 32 30 +8 62 35 +9 97 35 +10 132 35 +11 167 4 +12 171 16 +13 187 35 +14 222 4 +15 226 16 +16 242 20 +17 262 20 +18 282 20 +19 302 30 +20 332 4 +21 336 4 +22 340 1 +23 341 8 +24 349 8 +25 357 8 +26 365 2 +27 367 2 +28 369 4 +29 373 4 +30 377 1 +31 378 2 +32 380 8 +33 388 4 +34 392 4 +35 396 4 +36 400 4 +37 404 1 +38 405 4 +39 409 4 +40 413 4 +41 417 4 +42 421 4 +43 425 4 +44 429 20 +45 449 30 +46 479 1 +47 480 1 +48 481 79 +49 560 79 +50 639 79 +51 718 79 +52 797 8 +53 805 1 +54 806 1 +55 807 20 +56 827 4 +57 831 4 +shell> \fBmyisampack station\&.MYI\fR +Compressing station\&.MYI: (1192 records) +\- Calculating statistics +normal: 20 empty\-space: 16 empty\-zero: 12 empty\-fill: 11 +pre\-space: 0 end\-space: 12 table\-lookups: 5 zero: 7 +Original trees: 57 After join: 17 +\- Compressing file +87\&.14% +Remember to run myisamchk \-rq on compressed tables +shell> \fBls \-l station\&.*\fR +\-rw\-rw\-r\-\- 1 monty my 127874 Apr 17 19:00 station\&.MYD +\-rw\-rw\-r\-\- 1 monty my 55296 Apr 17 19:04 station\&.MYI +\-rw\-rw\-r\-\- 1 monty my 5767 Apr 17 19:00 station\&.frm +shell> \fBmyisamchk \-dvv station\fR +MyISAM file: station +Isam\-version: 2 +Creation time: 1996\-03\-13 10:08:58 +Recover time: 1997\-04\-17 19:04:26 +Data records: 1192 Deleted blocks: 0 +Datafile parts: 1192 Deleted data: 0 +Datafile pointer (bytes): 3 Keyfile pointer (bytes): 1 +Max datafile length: 16777215 Max keyfile length: 131071 +Recordlength: 834 +Record format: Compressed +table description: +Key Start Len Index Type Root Blocksize Rec/key +1 2 4 unique unsigned long 10240 1024 1 +2 32 30 multip\&. text 54272 1024 1 +Field Start Length Type Huff tree Bits +1 1 1 constant 1 0 +2 2 4 zerofill(1) 2 9 +3 6 4 no zeros, zerofill(1) 2 9 +4 10 1 3 9 +5 11 20 table\-lookup 4 0 +6 31 1 3 9 +7 32 30 no endspace, not_always 5 9 +8 62 35 no endspace, not_always, no empty 6 9 +9 97 35 no empty 7 9 +10 132 35 no endspace, not_always, no empty 6 9 +11 167 4 zerofill(1) 2 9 +12 171 16 no endspace, not_always, no empty 5 9 +13 187 35 no endspace, not_always, no empty 6 9 +14 222 4 zerofill(1) 2 9 +15 226 16 no endspace, not_always, no empty 5 9 +16 242 20 no endspace, not_always 8 9 +17 262 20 no endspace, no empty 8 9 +18 282 20 no endspace, no empty 5 9 +19 302 30 no endspace, no empty 6 9 +20 332 4 always zero 2 9 +21 336 4 always zero 2 9 +22 340 1 3 9 +23 341 8 table\-lookup 9 0 +24 349 8 table\-lookup 10 0 +25 357 8 always zero 2 9 +26 365 2 2 9 +27 367 2 no zeros, zerofill(1) 2 9 +28 369 4 no zeros, zerofill(1) 2 9 +29 373 4 table\-lookup 11 0 +30 377 1 3 9 +31 378 2 no zeros, zerofill(1) 2 9 +32 380 8 no zeros 2 9 +33 388 4 always zero 2 9 +34 392 4 table\-lookup 12 0 +35 396 4 no zeros, zerofill(1) 13 9 +36 400 4 no zeros, zerofill(1) 2 9 +37 404 1 2 9 +38 405 4 no zeros 2 9 +39 409 4 always zero 2 9 +40 413 4 no zeros 2 9 +41 417 4 always zero 2 9 +42 421 4 no zeros 2 9 +43 425 4 always zero 2 9 +44 429 20 no empty 3 9 +45 449 30 no empty 3 9 +46 479 1 14 4 +47 480 1 14 4 +48 481 79 no endspace, no empty 15 9 +49 560 79 no empty 2 9 +50 639 79 no empty 2 9 +51 718 79 no endspace 16 9 +52 797 8 no empty 2 9 +53 805 1 17 1 +54 806 1 3 9 +55 807 20 no empty 3 9 +56 827 4 no zeros, zerofill(2) 2 9 +57 831 4 no zeros, zerofill(1) 2 9 +.fi +.if n \{\ +.RE +.\} +.PP +\fBmyisampack\fR +displays the following kinds of information: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +normal +.sp +The number of columns for which no extra packing is used\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +empty\-space +.sp +The number of columns containing values that are only spaces\&. These occupy one bit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +empty\-zero +.sp +The number of columns containing values that are only binary zeros\&. These occupy one bit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +empty\-fill +.sp +The number of integer columns that do not occupy the full byte range of their type\&. These are changed to a smaller type\&. For example, a +BIGINT +column (eight bytes) can be stored as a +TINYINT +column (one byte) if all its values are in the range from +\-128 +to +127\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +pre\-space +.sp +The number of decimal columns that are stored with leading spaces\&. In this case, each value contains a count for the number of leading spaces\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +end\-space +.sp +The number of columns that have a lot of trailing spaces\&. In this case, each value contains a count for the number of trailing spaces\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +table\-lookup +.sp +The column had only a small number of different values, which were converted to an +ENUM +before Huffman compression\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +zero +.sp +The number of columns for which all values are zero\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Original trees +.sp +The initial number of Huffman trees\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +After join +.sp +The number of distinct Huffman trees left after joining trees to save some header space\&. +.RE +.PP +After a table has been compressed, the +Field +lines displayed by +\fBmyisamchk \-dvv\fR +include additional information about each column: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Type +.sp +The data type\&. The value may contain any of the following descriptors: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +constant +.sp +All rows have the same value\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +no endspace +.sp +Do not store endspace\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +no endspace, not_always +.sp +Do not store endspace and do not do endspace compression for all values\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +no endspace, no empty +.sp +Do not store endspace\&. Do not store empty values\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +table\-lookup +.sp +The column was converted to an +ENUM\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +zerofill(\fIN\fR) +.sp +The most significant +\fIN\fR +bytes in the value are always 0 and are not stored\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +no zeros +.sp +Do not store zeros\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +always zero +.sp +Zero values are stored using one bit\&. +.RE +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Huff tree +.sp +The number of the Huffman tree associated with the column\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Bits +.sp +The number of bits used in the Huffman tree\&. +.RE +.PP +After you run +\fBmyisampack\fR, you must run +\fBmyisamchk\fR +to re\-create any indexes\&. At this time, you can also sort the index blocks and create statistics needed for the MySQL optimizer to work more efficiently: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmyisamchk \-rq \-\-sort\-index \-\-analyze \fR\fB\fItbl_name\fR\fR\fB\&.MYI\fR +.fi +.if n \{\ +.RE +.\} +.PP +After you have installed the packed table into the MySQL database directory, you should execute +\fBmysqladmin flush\-tables\fR +to force +\fBmysqld\fR +to start using the new table\&. +.PP +To unpack a packed table, use the +\fB\-\-unpack\fR +option to +\fBmyisamchk\fR\&. +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/mysql-stress-test.pl.1 b/database/man/man1/mysql-stress-test.pl.1 new file mode 100644 index 0000000..6557a52 --- /dev/null +++ b/database/man/man1/mysql-stress-test.pl.1 @@ -0,0 +1,505 @@ +'\" t +.\" Title: \fBmysql-stress-test.pl\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 03/31/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL +.\" Language: English +.\" +.TH "\FBMYSQL\-STRESS\-TE" "1" "03/31/2010" "MySQL" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" mysql-stress-test.pl +.SH "NAME" +mysql-stress-test.pl \- server stress test program +.SH "SYNOPSIS" +.HP \w'\fBmysql\-stress\-test\&.pl\ [\fR\fB\fIoptions\fR\fR\fB]\fR\ 'u +\fBmysql\-stress\-test\&.pl [\fR\fB\fIoptions\fR\fR\fB]\fR +.SH "DESCRIPTION" +.PP +The +\fBmysql\-stress\-test\&.pl\fR +Perl script performs stress\-testing of the MySQL server\&. (MySQL 5\&.0 and up only) +.PP +\fBmysql\-stress\-test\&.pl\fR +requires a version of Perl that has been built with threads support\&. +.PP +Invoke +\fBmysql\-stress\-test\&.pl\fR +like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql\-stress\-test\&.pl [\fR\fB\fIoptions\fR\fR\fB]\fR +.fi +.if n \{\ +.RE +.\} +.PP +\fBmysql\-stress\-test\&.pl\fR +supports the following options: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-stress-test.pl: help option +.\" help option: mysql-stress-test.pl +\fB\-\-help\fR +.sp +Display a help message and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-stress-test.pl: abort-on-error option +.\" abort-on-error option: mysql-stress-test.pl +\fB\-\-abort\-on\-error=\fR\fB\fIN\fR\fR +.sp +Causes the program to abort if an error with severity less than or equal to N was encountered\&. Set to 1 to abort on any error\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-stress-test.pl: check-tests-file option +.\" check-tests-file option: mysql-stress-test.pl +\fB\-\-check\-tests\-file\fR +.sp +Periodically check the file that lists the tests to be run\&. If it has been modified, reread the file\&. This can be useful if you update the list of tests to be run during a stress test\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-stress-test.pl: cleanup option +.\" cleanup option: mysql-stress-test.pl +\fB\-\-cleanup\fR +.sp +Force cleanup of the working directory\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-stress-test.pl: log-error-details option +.\" log-error-details option: mysql-stress-test.pl +\fB\-\-log\-error\-details\fR +.sp +Log error details in the global error log file\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-stress-test.pl: loop-count option +.\" loop-count option: mysql-stress-test.pl +\fB\-\-loop\-count=\fR\fB\fIN\fR\fR +.sp +In sequential test mode, the number of loops to execute before exiting\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-stress-test.pl: mysqltest option +.\" mysqltest option: mysql-stress-test.pl +\fB\-\-mysqltest=\fR\fB\fIpath\fR\fR +.sp +The path name to the +\fBmysqltest\fR +program\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-stress-test.pl: server-database option +.\" server-database option: mysql-stress-test.pl +\fB\-\-server\-database=\fR\fB\fIdb_name\fR\fR +.sp +The database to use for the tests\&. The default is +test\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-stress-test.pl: server-host option +.\" server-host option: mysql-stress-test.pl +\fB\-\-server\-host=\fR\fB\fIhost_name\fR\fR +.sp +The host name of the local host to use for making a TCP/IP connection to the local server\&. By default, the connection is made to +localhost +using a Unix socket file\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-stress-test.pl: server-logs-dir option +.\" server-logs-dir option: mysql-stress-test.pl +\fB\-\-server\-logs\-dir=\fR\fB\fIpath\fR\fR +.sp +This option is required\&. +\fIpath\fR +is the directory where all client session logs will be stored\&. Usually this is the shared directory that is associated with the server used for testing\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-stress-test.pl: server-password option +.\" server-password option: mysql-stress-test.pl +\fB\-\-server\-password=\fR\fB\fIpassword\fR\fR +.sp +The password to use when connecting to the server\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-stress-test.pl: server-port option +.\" server-port option: mysql-stress-test.pl +\fB\-\-server\-port=\fR\fB\fIport_num\fR\fR +.sp +The TCP/IP port number to use for connecting to the server\&. The default is 3306\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-stress-test.pl: server-socket option +.\" server-socket option: mysql-stress-test.pl +\fB\-\-server\-socket=\fR\fB\fIfile_name\fR\fR +.sp +For connections to +localhost, the Unix socket file to use, or, on Windows, the name of the named pipe to use\&. The default if +/tmp/mysql\&.sock\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-stress-test.pl: server-user option +.\" server-user option: mysql-stress-test.pl +\fB\-\-server\-user=\fR\fB\fIuser_name\fR\fR +.sp +The MySQL user name to use when connecting to the server\&. The default is +root\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-stress-test.pl: sleep-time option +.\" sleep-time option: mysql-stress-test.pl +\fB\-\-sleep\-time=\fR\fB\fIN\fR\fR +.sp +The delay in seconds between test executions\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-stress-test.pl: stress-basedir option +.\" stress-basedir option: mysql-stress-test.pl +\fB\-\-stress\-basedir=\fR\fB\fIpath\fR\fR +.sp +This option is required\&. +\fIpath\fR +is the working directory for the test run\&. It is used as the temporary location for result tracking during testing\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-stress-test.pl: stress-datadir option +.\" stress-datadir option: mysql-stress-test.pl +\fB\-\-stress\-datadir=\fR\fB\fIpath\fR\fR +.sp +The directory of data files to be used during testing\&. The default location is the +data +directory under the location given by the +\fB\-\-stress\-suite\-basedir\fR +option\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-stress-test.pl: stress-init-file option +.\" stress-init-file option: mysql-stress-test.pl +\fB\-\-stress\-init\-file[=\fR\fB\fIpath\fR\fR\fB]\fR +.sp +\fIfile_name\fR +is the location of the file that contains the list of tests to be run once to initialize the database for the testing\&. If missing, the default file is +stress_init\&.txt +in the test suite directory\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-stress-test.pl: stress-mode option +.\" stress-mode option: mysql-stress-test.pl +\fB\-\-stress\-mode=\fR\fB\fImode\fR\fR +.sp +This option indicates the test order in stress\-test mode\&. The +\fImode\fR +value is either +random +to select tests in random order or +seq +to run tests in each thread in the order specified in the test list file\&. The default mode is +random\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-stress-test.pl: stress-suite-basedir option +.\" stress-suite-basedir option: mysql-stress-test.pl +\fB\-\-stress\-suite\-basedir=\fR\fB\fIpath\fR\fR +.sp +This option is required\&. +\fIpath\fR +is the directory that has the +t +and +\fIr\fR +subdirectories containing the test case and result files\&. This directory is also the default location of the +stress\-test\&.txt +file that contains the list of tests\&. (A different location can be specified with the +\fB\-\-stress\-tests\-file\fR +option\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-stress-test.pl: stress-tests-file option +.\" stress-tests-file option: mysql-stress-test.pl +\fB\-\-stress\-tests\-file[=\fR\fB\fIfile_name\fR\fR\fB]\fR +.sp +Use this option to run the stress tests\&. +\fIfile_name\fR +is the location of the file that contains the list of tests\&. If +\fIfile_name\fR +is omitted, the default file is +stress\-test\&.txt +in the stress suite directory\&. (See +\fB\-\-stress\-suite\-basedir\fR\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-stress-test.pl: suite option +.\" suite option: mysql-stress-test.pl +\fB\-\-suite=\fR\fB\fIsuite_name\fR\fR +.sp +Run the named test suite\&. The default name is +main +(the regular test suite located in the +mysql\-test +directory)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-stress-test.pl: test-count option +.\" test-count option: mysql-stress-test.pl +\fB\-\-test\-count=\fR\fB\fIN\fR\fR +.sp +The number of tests to execute before exiting\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-stress-test.pl: test-duration option +.\" test-duration option: mysql-stress-test.pl +\fB\-\-test\-duration=\fR\fB\fIN\fR\fR +.sp +The duration of stress testing in seconds\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-stress-test.pl: threads option +.\" threads option: mysql-stress-test.pl +\fB\-\-threads=\fR\fB\fIN\fR\fR +.sp +The number of threads\&. The default is 1\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-stress-test.pl: verbose option +.\" verbose option: mysql-stress-test.pl +\fB\-\-verbose\fR +.sp +Verbose mode\&. Print more information about what the program does\&. +.RE +.SH "COPYRIGHT" +.br +.PP +Copyright \(co 2007, 2010, Oracle and/or its affiliates +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/mysql-test-run.pl.1 b/database/man/man1/mysql-test-run.pl.1 new file mode 100644 index 0000000..fc9ba21 --- /dev/null +++ b/database/man/man1/mysql-test-run.pl.1 @@ -0,0 +1,2068 @@ +'\" t +.\" Title: \fBmysql-test-run.pl\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 03/31/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL +.\" Language: English +.\" +.TH "\FBMYSQL\-TEST\-RUN\" "1" "03/31/2010" "MySQL" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" mysql-test-run.pl +.SH "NAME" +mysql-test-run.pl \- run MySQL test suite +.SH "SYNOPSIS" +.HP \w'\fBmysql\-test\-run\&.pl\ [\fR\fB\fIoptions\fR\fR\fB]\fR\ 'u +\fBmysql\-test\-run\&.pl [\fR\fB\fIoptions\fR\fR\fB]\fR +.SH "DESCRIPTION" +.PP +The +\fBmysql\-test\-run\&.pl\fR +Perl script is the main application used to run the MySQL test suite\&. It invokes +\fBmysqltest\fR +to run individual test cases\&. +.PP +Invoke +\fBmysql\-test\-run\&.pl\fR +in the +mysql\-test +directory like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql\-test\-run\&.pl [\fR\fB\fIoptions\fR\fR\fB] [\fR\fB\fItest_name\fR\fR\fB] \&.\&.\&.\fR +.fi +.if n \{\ +.RE +.\} +.PP +Each +\fItest_name\fR +argument names a test case\&. The test case file that corresponds to the test name is +t/\fItest_name\fR\&.test\&. +.PP +For each +\fItest_name\fR +argument, +\fBmysql\-test\-run\&.pl\fR +runs the named test case\&. With no +\fItest_name\fR +arguments, +\fBmysql\-test\-run\&.pl\fR +runs all +\&.test +files in the +t +subdirectory\&. +.PP +If no suffix is given for the test name, a suffix of +\&.test +is assumed\&. Any leading path name is ignored\&. These commands are equivalent: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql\-test\-run\&.pl mytest\fR +shell> \fBmysql\-test\-run\&.pl mytest\&.test\fR +shell> \fBmysql\-test\-run\&.pl t/mytest\&.test\fR +.fi +.if n \{\ +.RE +.\} +.PP +A suite name can be given as part of the test name\&. That is, the syntax for naming a test is: +.sp +.if n \{\ +.RS 4 +.\} +.nf +[\fIsuite_name\fR\&.]\fItest_name\fR[\&.\fIsuffix\fR] +.fi +.if n \{\ +.RE +.\} +.PP +If a suite name is given, +\fBmysql\-test\-run\&.pl\fR +looks in that suite for the test\&. The test file corresponding to a test named +\fIsuite_name\&.test_name\fR +is found in +suite/\fIsuite_name\fR/t/\fItest_name\fR\&.test\&. There is also an implicit suite name +main +for the tests in the top +t +directory\&. With no suite name, +\fBmysql\-test\-run\&.pl\fR +looks in the default list of suites for a match and runs the test in any suites where it finds the test\&. Suppose that the default suite list is +main, +binlog, +rpl, and that a test +mytest\&.test +exists in the +main +and +rpl +suites\&. With an argument of +mytest +or +mytest\&.test, +\fBmysql\-test\-run\&.pl\fR +will run +mytest\&.test +from the +main +and +rpl +suites\&. +.PP +To run a family of test cases for which the names share a common prefix, use the +\fB\-\-do\-test=\fR\fB\fIprefix\fR\fR +option\&. For example, +\fB\-\-do\-test=rpl\fR +runs the replication tests (test cases that have names beginning with +rpl)\&. +\fB\-\-skip\-test\fR +has the opposite effect of skipping test cases for which the names share a common prefix\&. +.PP +The argument for the +\fB\-\-do\-test\fR +and +\fB\-\-skip\-test\fR +options also allows more flexible specification of which tests to perform or skip\&. If the argument contains a pattern metacharacter other than a lone period, it is interpreted as a Perl regular expression and applies to test names that match the pattern\&. If the argument contains a lone period or does not contain any pattern metacharacters, it is interpreted the same way as previously and matches test names that begin with the argument value\&. For example, +\fB\-\-do\-test=testa\fR +matches tests that begin with +testa, +\fB\-\-do\-test=main\&.testa\fR +matches tests in the +main +test suite that begin with +testa, and +\fB\-\-do\-test=main\&.*testa\fR +matches test names that contain +main +followed by +testa +with anything in between\&. In the latter case, the pattern match is not anchored to the beginning of the test name, so it also matches names such as +xmainytesta\&. +.PP +To perform setup prior to running tests, +\fBmysql\-test\-run\&.pl\fR +needs to invoke +\fBmysqld\fR +with the +\fB\-\-bootstrap\fR +and +\fB\-\-skip\-grant\-tables\fR +options\&. If MySQL was configured with the +\fB\-\-disable\-grant\-options\fR +option, +\fB\-\-bootstrap\fR, +\fB\-\-skip\-grant\-tables\fR, and +\fB\-\-init\-file\fR +will be disabled\&. To handle this, set the +MYSQLD_BOOTSTRAP +environment variable to the full path name of a server that has all options enabled\&. +\fBmysql\-test\-run\&.pl\fR +will use that server to perform setup; it is not used to run the tests\&. +.PP +The +init_file +test will fail if +\fB\-\-init\-file\fR +is disabled\&. This is an expected failure that can be handled as follows: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBexport MYSQLD_BOOTSTRAP\fR +shell> \fBMYSQLD_BOOTSTRAP=/full/path/to/mysqld\fR +shell> \fBmake test force="\-\-skip\-test=init_file"\fR +.fi +.if n \{\ +.RE +.\} +.PP +To run +\fBmysql\-test\-run\&.pl\fR +on Windows, you\'ll need either Cygwin or ActiveState Perl to run it\&. You may also need to install the modules required by the script\&. To run the test script, change location into the +mysql\-test +directory, set the +MTR_VS_CONFIG +environment variable to the configuration you selected earlier (or use the +\fB\-\-vs\-config\fR +option), and invoke +\fBmysql\-test\-run\&.pl\fR\&. For example (using Cygwin and the +\fBbash\fR +shell): +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBcd mysql\-test\fR +shell> \fBexport MTR_VS_CONFIG=debug\fR +shell> \fB\&./mysqltest\-run\&.pl \-\-force \-\-timer\fR +shell> \fB\&./mysqltest\-run\&.pl \-\-force \-\-timer \-\-ps\-protocol\fR +.fi +.if n \{\ +.RE +.\} +.PP +\fBmysql\-test\-run\&.pl\fR +uses several environment variables\&. Some of them are listed in the following table\&. Some of these are set from the outside and used by +\fBmysql\-test\-run\&.pl\fR, others are set by +\fBmysql\-test\-run\&.pl\fR +instead, and may be referred to in tests\&. +.TS +allbox tab(:); +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l. +T{ +\fBVariable\fR +T}:T{ +\fBMeaning\fR +T} +T{ +MTR_VERSION +T}:T{ +If set to 1, will run the older version 1 of + \fBmysql\-test\-run\&.pl\fR\&. This will affect + what functionailty is available and what command line + options are supported\&. +T} +T{ +MTR_MEM +T}:T{ +If set to anything, will run tests with files in "memory" using tmpfs or + ramdisk\&. Not available on Windows\&. Same as + \fB\-\-mem\fR option +T} +T{ +MTR_PARALLEL +T}:T{ +If set, defines number of parallel threads executing tests\&. Same as + \fB\-\-parallel\fR option +T} +T{ +MTR_BUILD_THREAD +T}:T{ +If set, defines which port number range is used for the server +T} +T{ +MTR_PORT_BASE +T}:T{ +If set, defines which port number range is used for the server +T} +T{ +MTR_\fINAME\fR_TIMEOUT +T}:T{ +Setting of a timeout in minutes or seconds, corresponding to command + line option + \fB\-\-\fR\fB\fIname\fR\fR\fB\-timeout\fR\&. + Avaliable timeout names are TESTCASE, + SUITE (both in minutes) and + START, SHUTDOWN + (both in seconds)\&. These variables are supported from + MySQL 5\&.1\&.44\&. +T} +T{ +MYSQL_TEST +T}:T{ +Path name to \fBmysqltest\fR binary +T} +T{ +MYSQLD_BOOTSTRAP +T}:T{ +Full path name to \fBmysqld\fR that has all options enabled +T} +T{ +MYSQLTEST_VARDIR +T}:T{ +Path name to the var directory that is used for + logs, temporary files, and so forth +T} +T{ +MYSQL_TEST_DIR +T}:T{ +Full path to the mysql\-test directory where tests + are being run from +T} +T{ +MYSQL_TMP_DIR +T}:T{ +Path to temp directory used for temporary files during tests +T} +.TE +.sp 1 +.PP +The variable +MTR_PORT_BASE +was added in MySQL 5\&.1\&.45 as a more logical replacement for +MTR_BUILD_THREAD\&. It gives the actual port number directly (will be rounded down to a multiple of 10)\&. If you use +MTR_BUILD_THREAD, the port number is found by multiplying this by 10 and adding 10000\&. +.PP +Tests sometimes rely on certain environment variables being defined\&. For example, certain tests assume that +MYSQL_TEST +is defined so that +\fBmysqltest\fR +can invoke itself with +exec $MYSQL_TEST\&. +.PP +Other tests may refer to the last three variables listed in the preceeding table, to locate files to read or write\&. For example, tests that need to create files will typically put them in +$MYSQL_TMP_DIR/\fIfile_name\fR\&. +.PP +If you are running +\fBmysql\-test\-run\&.pl\fR +version 1 by setting +MTR_VERSION, note that this only affects the test driver, not the test client (and its language) or the tests themselves\&. +.PP +A few tests might not run with version 1 because they depend on some feature of version 2\&. You may have those tests skipped by adding the test name to the file +lib/v1/incompatible\&.tests\&. This feature is available from MySQL 5\&.1\&.40\&. +.PP +\fBmysql\-test\-run\&.pl\fR +supports the options in the following list\&. An argument of +\fB\-\-\fR +tells +\fBmysql\-test\-run\&.pl\fR +not to process any following arguments as options\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: help option +.\" help option: mysql-test-run.pl +\fB\-\-help\fR, +\fB\-h\fR +.sp +Display a help message and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: big-test option +.\" big-test option: mysql-test-run.pl +\fB\-\-big\-test\fR +.sp +Allow tests marked as "big" to run\&. Tests can be thus marked by including the line +\fB\-\-source include/big_test\&.inc\fR, and they will only be run if this option is given, or if the environment variable +BIG_TEST +is set to 1\&. +.sp +This is typically done for tests that take very long to run, or that use very much resources, so that they are not suitable for running as part of a normal test suite run\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: build-thread option +.\" build-thread option: mysql-test-run.pl +\fB\-\-build\-thread=\fR\fB\fInumber\fR\fR +.sp +Specify a number to calculate port numbers from\&. The formula is 10 * +\fIbuild_thread\fR ++ 10000\&. Instead of a number, it can be set to +auto, which is also the default value, in which case +\fBmysql\-test\-run\&.pl\fR +will allocate a number unique to this host\&. +.sp +The value (number or +auto) can also be set with the +MTR_BUILD_THREAD +environment variable\&. +.sp +From MySQL 5\&.1\&.45, the more logical +\fB\-\-port\-base\fR +is supported as an alternative\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: callgrind option +.\" callgrind option: mysql-test-run.pl +\fB\-\-callgrind\fR +.sp +Instructs +\fBvalgrind\fR +to use +\fBcallgrind\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: check-testcases option +.\" check-testcases option: mysql-test-run.pl +\fB\-\-check\-testcases\fR +.sp +Check test cases for side effects\&. This is done by checking system state before and after each test case; if there is any difference, a warning to that effect will be written, but the test case will not be marked as failed because of it\&. This check is enabled by default\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: client-bindir option +.\" client-bindir option: mysql-test-run.pl +\fB\-\-client\-bindir=\fR\fB\fIpath\fR\fR +.sp +The path to the directory where client binaries are located\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: client-ddd option +.\" client-ddd option: mysql-test-run.pl +\fB\-\-client\-ddd\fR +.sp +Start +\fBmysqltest\fR +in the +\fBddd\fR +debugger\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: client-debugger option +.\" client-debugger option: mysql-test-run.pl +\fB\-\-client\-debugger=\fR\fB\fIdebugger\fR\fR +.sp +Start +\fBmysqltest\fR +in the named debugger\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: client-gdb option +.\" client-gdb option: mysql-test-run.pl +\fB\-\-client\-gdb\fR +.sp +Start +\fBmysqltest\fR +in the +\fBgdb\fR +debugger\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: client-libdir option +.\" client-libdir option: mysql-test-run.pl +\fB\-\-client\-libdir=\fR\fB\fIpath\fR\fR +.sp +The path to the directory where client libraries are located\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: combination option +.\" combination option: mysql-test-run.pl +\fB\-\-combination=\fR\fB\fIvalue\fR\fR +.sp +Extra options to pass to +\fBmysqld\fR\&. The value should consist of one or more comma\-separated +\fBmysqld\fR +options\&. This option is similar to +\fB\-\-mysqld\fR +but should be given two or more times\&. +\fBmysql\-test\-run\&.pl\fR +executes multiple test runs, using the options for each instance of +\fB\-\-combination\fR +in successive runs\&. If +\fB\-\-combination\fR +is given only once, it has no effect\&. For test runs specific to a given test suite, an alternative to the use of +\fB\-\-combination\fR +is to create a +combinations +file in the suite directory\&. The file should contain a section of options for each test run\&. See +Section\ \&4.9, \(lqPassing Options from mysql-test-run.pl to mysqld or mysqltest\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: comment option +.\" comment option: mysql-test-run.pl +\fB\-\-comment=\fR\fB\fIstr\fR\fR +.sp +Write +\fIstr\fR +to the output within lines filled with +#, as a form of banner\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: compress option +.\" compress option: mysql-test-run.pl +\fB\-\-compress\fR +.sp +Compress all information sent between the client and the server if both support compression\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: cursor-protocol option +.\" cursor-protocol option: mysql-test-run.pl +\fB\-\-cursor\-protocol\fR +.sp +Pass the +\fB\-\-cursor\-protocol\fR +option to +\fBmysqltest\fR +(implies +\fB\-\-ps\-protocol\fR)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: ddd option +.\" ddd option: mysql-test-run.pl +\fB\-\-ddd\fR +.sp +Start +\fBmysqld\fR +in the +\fBddd\fR +debugger\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: debug option +.\" debug option: mysql-test-run.pl +\fB\-\-debug\fR +.sp +Dump trace output for all clients and servers\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: debugger option +.\" debugger option: mysql-test-run.pl +\fB\-\-debugger=\fR\fB\fIdebugger\fR\fR +.sp +Start +\fBmysqld\fR +using the named debugger\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: debug-sync-timeout option +.\" debug-sync-timeout option: mysql-test-run.pl +\fB\-\-debug\-sync\-timeout=\fR\fB\fIN\fR\fR +.sp +Controls whether the Debug Sync facility for testing and debugging is enabled\&. The option value is a timeout in seconds\&. The default value is 300\&. A value of 0 disables Debug Sync\&. The value of this option also becomes the default timeout for individual synchronization points\&. +.sp +\fBmysql\-test\-run\&.pl\fR +passes +\fB\-\-loose\-debug\-sync\-timeout=\fR\fB\fIN\fR\fR +to +\fBmysqld\fR\&. The +\fB\-\-loose\fR +prefix is used so that +\fBmysqld\fR +does not fail if Debug Sync is not compiled in\&. +.sp +For information about using the Debug Sync facility for testing, see +Section\ \&4.14, \(lqThread Synchronization in Test Cases\(rq\&. +.sp +This option was added in MySQL 5\&.1\&.41/5\&.5\&.0/6\&.0\&.6\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: defaults-file option +.\" default-file option: mysql-test-run.pl +\fB\-\-defaults\-file=\fR\fB\fIfile_name\fR\fR +.sp +Use the named file as fixed config file template for all tests\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: defaults_extra_file option +.\" default_extra_file option: mysql-test-run.pl +\fB\-\-defaults_extra_file=\fR\fB\fIfile_name\fR\fR +.sp +Add setting from the named file to all generated configs\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: do-test option +.\" do-test option: mysql-test-run.pl +\fB\-\-do\-test=\fR\fB\fIprefix\fR\fR +.sp +Run all test cases having a name that begins with the given +\fIprefix\fR +value\&. This option provides a convenient way to run a family of similarly named tests\&. +.sp +The argument for the +\fB\-\-do\-test\fR +option also allows more flexible specification of which tests to perform\&. If the argument contains a pattern metacharacter other than a lone period, it is interpreted as a Perl regular expression and applies to test names that match the pattern\&. If the argument contains a lone period or does not contain any pattern metacharacters, it is interpreted the same way as previously and matches test names that begin with the argument value\&. For example, +\fB\-\-do\-test=testa\fR +matches tests that begin with +testa, +\fB\-\-do\-test=main\&.testa\fR +matches tests in the +main +test suite that begin with +testa, and +\fB\-\-do\-test=main\&.*testa\fR +matches test names that contain +main +followed by +testa +with anything in between\&. In the latter case, the pattern match is not anchored to the beginning of the test name, so it also matches names such as +xmainytestz\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: embedded-server option +.\" embedded-server option: mysql-test-run.pl +\fB\-\-embedded\-server\fR +.sp +Use a version of +\fBmysqltest\fR +built with the embedded server\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: enable-disabled option +.\" enable-disabled option: mysql-test-run.pl +\fB\-\-enable\-disabled\fR +.sp +Ignore any +disabled\&.def +file, and run also tests marked as disbaled\&. Success or failure of those tests will be reported the same way as other tests\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: experimental option +.\" experimental option: mysql-test-run.pl +\fB\-\-experimental=\fR\fB\fIfile_name\fR\fR +.sp +Specify a file that contains a list of test cases that should be displayed with the +[ exp\-fail ] +code rather than +[ fail ] +if they fail\&. This option was added in MySQL 5\&.1\&.33\&. +.sp +For an example of a file that might be specified via this option, see +mysql\-test/collections/default\&.experimental\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: extern option +.\" extern option: mysql-test-run.pl +\fB\-\-extern\fR +\fIoption\fR=\fIvalue\fR +.sp +Use an already running server\&. The option/value pair is what is needed by the +\fBmysql\fR +client to connect to the server\&. Each +\fB\-\-extern\fR +can only take one option/value pair as argument, so it you need more you need to repeat +\fB\-\-extern\fR +for each of them\&. Example: +.sp +.if n \{\ +.RS 4 +.\} +.nf + \&./mysql\-test\-run\&.pl \-\-extern socket=var/tmp/mysqld\&.1\&.sock alias +.fi +.if n \{\ +.RE +.\} +.sp +Note: If a test case has an +\&.opt +file that requires the server to be restarted with specific options, the file will not be used\&. The test case likely will fail as a result\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: fast option +.\" fast option: mysql-test-run.pl +\fB\-\-fast\fR +.sp +Do not perform controlled shutdown when servers need to be restarted or at the end of the test run\&. This is equivalent to using +\-\-shutdown\-timeout=0\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: force option +.\" force option: mysql-test-run.pl +\fB\-\-force\fR +.sp +Normally, +\fBmysql\-test\-run\&.pl\fR +exits if a test case fails\&. +\fB\-\-force\fR +causes execution to continue regardless of test case failure\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: gcov option +.\" gcov option: mysql-test-run.pl +\fB\-\-gcov\fR +.sp +Run tests with the +\fBgcov\fR +test coverage tool\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: gdb option +.\" gdb option: mysql-test-run.pl +\fB\-\-gdb\fR +.sp +Start +\fBmysqld\fR +in the +\fBgdb\fR +debugger\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: gprof option +.\" gprof option: mysql-test-run.pl +\fB\-\-gprof\fR +.sp +Run tests with the +\fBgprof\fR +profiling tool\&. +\fB\-\-gprof\fR +was added in 5\&.1\&.45\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: manual-ddd option +.\" manual-ddd option: mysql-test-run.pl +\fB\-\-manual\-ddd\fR +.sp +Use a server that has already been started by the user in the +\fBddd\fR +debugger\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: manual-debug option +.\" manual-debug option: mysql-test-run.pl +\fB\-\-manual\-debug\fR +.sp +Use a server that has already been started by the user in a debugger\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: manual-gdb option +.\" manual-gdb option: mysql-test-run.pl +\fB\-\-manual\-gdb\fR +.sp +Use a server that has already been started by the user in the +\fBgdb\fR +debugger\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: mark-progress option +.\" mark-progress option: mysql-test-run.pl +\fB\-\-mark\-progress\fR +.sp +Marks progress with timing (in milliseconds) and line number in +var/log/\fItestname\fR\&.progress\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: max-connections option +.\" max-connections option: mysql-test-run.pl +\fB\-\-max\-connections=\fR\fB\fInum\fR\fR +.sp +The maximum number of simultaneous server connections that may be used per test\&. If not set, the maximum is 128\&. Minimum allowed limit is 8, maximum is 5120\&. Corresponds to the same option for +\fBmysqltest\fR\&. +.sp +This option is available from MySQL 5\&.1\&.45\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: max-save-core option +.\" max-save-core option: mysql-test-run.pl +\fB\-\-max\-save\-core=\fR\fB\fIN\fR\fR +.sp +Limit the number of core files saved, to avoid filling up disks in case of a frequently crashing server\&. Defaults to 5, set to 0 for no limit\&. May also be set with the environment variable +MTR_MAX_SAVE_CORE +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: max-save-datadir option +.\" max-save-datadir option: mysql-test-run.pl +\fB\-\-max\-save\-datadir=\fR\fB\fIN\fR\fR +.sp +Limit the number of data directories saved after failed tests, to avoid filling up disks in case of frequent failures\&. Defaults to 20, set to 0 for no limit\&. May also be set with the environment variable +MTR_MAX_SAVE_DATADIR +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: max-test-fail option +.\" max-test-fail option: mysql-test-run.pl +\fB\-\-max\-test\-fail=\fR\fB\fIN\fR\fR +.sp +Stop execution after the specified number of tests have failed, to avoid using up resources (and time) in case of massive failures\&. retries are noe counted, nor are failures of tests marked experimental\&. Defaults to 10, set to 0 for no limit\&. May also be set with the environment variable +MTR_MAX_TEST_FAIL +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: mem option +.\" mem option: mysql-test-run.pl +\fB\-\-mem\fR +.sp +This option is not supported on Windows\&. +.sp +Run the test suite in memory, using tmpfs or ramdisk\&. This can decrease test times significantly, in particular if you would otherwise be running over a remote file system\&. +\fBmysql\-test\-run\&.pl\fR +attempts to find a suitable location using a built\-in list of standard locations for tmpfs and puts the +var +directory there\&. This option also affects placement of temporary files, which are created in +var/tmp\&. +.sp +The default list includes +/dev/shm\&. You can also enable this option by setting the environment variable +MTR_MEM[=\fIdir_name\fR]\&. If +\fIdir_name\fR +is given, it is added to the beginning of the list of locations to search, so it takes precedence over any built\-in locations\&. +.sp +Once you have run tests with +\fB\-\-mem\fR +within a +mysql\-testdirectory, a soflink +var +will have been set up to the temporary directory, and this will be re\-used the next time, until the soflink is deleted\&. Thus, you do not have to repeat the +\fB\-\-mem\fR +option next time\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: mysqld option +.\" mysqld option: mysql-test-run.pl +\fB\-\-mysqld=\fR\fB\fIvalue\fR\fR +.sp +Extra options to pass to +\fBmysqld\fR\&. The value should consist of one or more comma\-separated +\fBmysqld\fR +options\&. See +Section\ \&4.9, \(lqPassing Options from mysql-test-run.pl to mysqld or mysqltest\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: ndb-connectstring option +.\" ndb-connectstring option: mysql-test-run.pl +\fB\-\-ndb\-connectstring=\fR\fB\fIstr\fR\fR +.sp +Pass +\fB\-\-ndb\-connectstring=\fR\fB\fIstr\fR\fR +to the master MySQL server\&. This option also prevents +\fBmysql\-test\-run\&.pl\fR +from starting a cluster\&. It is assumed that there is already a cluster running to which the server can connect with the given connectstring\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: nocheck-testcases option +.\" nocheck-testcases option: mysql-test-run.pl +\fB\-\-nocheck\-testcases\fR +.sp +Disable the check for test case side effects; see +\fB\-\-check\-testcases\fR +for a description\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: noreorder option +.\" noreorder option: mysql-test-run.pl +\fB\-\-noreorder\fR +.sp +Do not reorder tests to reduce number of restarts, but run them in exactly the order given\&. If a whole suite is to be run, the tests are run in alphabetical order, though similiar combinations will be grouped together\&. If more than one suite is listed, the tests are run one suite at a time, in the order listed\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: notimer option +.\" notimer option: mysql-test-run.pl +\fB\-\-notimer\fR +.sp +Cause +\fBmysqltest\fR +not to generate a timing file\&. The effect of this is that the report from each test case does not include the timing in milliseconds as it normally does\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: nowarnings option +.\" nowarnings option: mysql-test-run.pl +\fB\-\-nowarnings\fR +.sp +Do not look for and report errors and warning in the server logs\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: parallel option +.\" parallel option: mysql-test-run.pl +\fB\-\-parallel={\fR\fB\fIN\fR\fR\fB|auto}\fR +.sp +Run tests using +\fIN\fR +parallel threads\&. By default, 1 thread is used\&. Use +\fB\-\-parallel=auto\fR +for auto\-setting of +\fIN\fR\&. The auto value was added in MySQL 5\&.1\&.36\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: port-base option +.\" port-base option: mysql-test-run.pl +\fB\-\-port\-base=\fR\fB\fIP\fR\fR +.sp +Specify base of port numbers to be used; a block of 10 will be allocated\&. +\fIP\fR +should be divisible by 10; if it is not, it will be rounded down\&. If running with more than one parallel test thread, thread 2 will use the next block of 10 and so on\&. +.sp +If the port number is given as +auto, which is also the default, +\fBmysql\-test\-run\&.pl\fRwill allocate a number unique to this host\&. The value may also be given with the environment variable +MTR_PORT_BASE\&. +.sp +\fB\-\-port\-base\fR +was added in MySQL 5\&.1\&.45 as a more logical alternative to +\fB\-\-build\-thread\fR\&. If both are used, +\fB\-\-port\-base\fR +takes presedence\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: print-testcases option +.\" print-testcases option: mysql-test-run.pl +\fB\-\-print\-testcases\fR +.sp +Do not run any tests, but print details about all tests, in the order they would have been run\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: ps-protocol option +.\" ps-protocol option: mysql-test-run.pl +\fB\-\-ps\-protocol\fR +.sp +Pass the +\fB\-\-ps\-protocol\fR +option to +\fBmysqltest\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: record option +.\" record option: mysql-test-run.pl +\fB\-\-record\fR +.sp +Pass the +\fB\-\-record\fR +option to +\fBmysqltest\fR\&. This option requires a specific test case to be named on the command line\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: reorder option +.\" reorder option: mysql-test-run.pl +\fB\-\-reorder\fR +.sp +Reorder tests to minimize the number of server restarts needed\&. This is the default behavior\&. There is no guarantee that a particular set of tests will always end up in the same order\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: repeat option +.\" repeat option: mysql-test-run.pl +\fB\-\-repeat=\fR\fB\fIN\fR\fR +.sp +Run each test +\fIN\fR +number of times\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: report-features option +.\" report-features option: mysql-test-run.pl +\fB\-\-report\-features\fR +.sp +Display the output of +SHOW ENGINES +and +SHOW VARIABLES\&. This can be used to verify that binaries are built with all required features\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: retry option +.\" retry option: mysql-test-run.pl +\fB\-\-retry=\fR\fB\fIN\fR\fR +.sp +If a test fails, it is retried up to a maximum of +\fIN\fR +runs, but will terminate after 2 failures\&. Default is 3, set to 1 or 0 for no retries\&. This option has no effect unless +\fB\-\-force\fR +is also used; without it, test execution will terminate after the first failure\&. +.sp +The +\fB\-\-retry\fR +and +\fB\-\-retry\-failure\fR +options do not affect how many times a test repeated with +\fB\-\-repeat\fR +may fail in total, as each repetition is considered a new test case, which may in turn be retried if it fails\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: retry-failure option +.\" retry-failure option: mysql-test-run.pl +\fB\-\-retry\-failure=\fR\fB\fIN\fR\fR +.sp +Allow a failed and retried test to fail more than the default 2 times before giving it up\&. Setting it to 0 or 1 effectively turns off retries +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: shutdown-timeout option +.\" shutdown-timeout option: mysql-test-run.pl +\fB\-\-shutdown\-timeout=\fR\fB\fISECONDS\fR\fR +.sp +Max number of seconds to wait for servers to do controlled shutdown before killing them\&. Default is 10\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: skip-combinations option +.\" skip-combinations option: mysql-test-run.pl +\fB\-\-skip\-combinations\fR +.sp +Do not apply combinations; ignore combinations file or option\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: skip-ndbcluster option +.\" skip-ndbcluster option: mysql-test-run.pl +\fB\-\-skip\-ndbcluster\fR, +.\" mysql-test-run.pl: skip-ndb option +.\" skip-ndb option: mysql-test-run.pl +\fB\-\-skip\-ndb\fR +.sp +Do not start NDB Cluster; skip Cluster test cases\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: skip-ndbcluster-slave option +.\" skip-ndbcluster-slave option: mysql-test-run.pl +\fB\-\-skip\-ndbcluster\-slave\fR, +.\" mysql-test-run.pl: skip-ndb-slave option +.\" skip-ndb-slave option: mysql-test-run.pl +\fB\-\-skip\-ndb\-slave\fR +.sp +Do not start an NDB Cluster slave\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: skip-rpl option +.\" skip-rpl option: mysql-test-run.pl +\fB\-\-skip\-rpl\fR +.sp +Skip replication test cases\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: skip-ssl option +.\" skip-ssl option: mysql-test-run.pl +\fB\-\-skip\-ssl\fR +.sp +Do not start +\fBmysqld\fR +with support for SSL connections\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: skip-test option +.\" skip-test option: mysql-test-run.pl +\fB\-\-skip\-test=\fR\fB\fIregex\fR\fR +.sp +Specify a regular expression to be applied to test case names\&. Cases with names that match the expression are skipped\&. tests to skip\&. +.sp +The argument for the +\fB\-\-skip\-test\fR +option allows more flexible specification of which tests to skip\&. If the argument contains a pattern metacharacter other than a lone period, it is interpreted as a Perl regular expression and applies to test names that match the pattern\&. See the description of the +\fB\-\-do\-test\fR +option for details\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-\-skip\-*\fR +.sp +\fB\-\-skip\-*\fR +options not otherwise recognized by +\fBmysql\-test\-run\&.pl\fR +are passed to the master server\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: sleep option +.\" sleep option: mysql-test-run.pl +\fB\-\-sleep=\fR\fB\fIN\fR\fR +.sp +Pass +\fB\-\-sleep=\fR\fB\fIN\fR\fR +to +\fBmysqltest\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: sp-protocol option +.\" sp-protocol option: mysql-test-run.pl +\fB\-\-sp\-protocol\fR +.sp +Pass the +\fB\-\-sp\-protocol\fR +option to +\fBmysqltest\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: ssl option +.\" ssl option: mysql-test-run.pl +\fB\-\-ssl\fR +.sp +If +\fBmysql\-test\-run\&.pl\fR +is started with the +\fB\-\-ssl\fR +option, it sets up a secure conection for all test cases\&. In this case, if +\fBmysqld\fR +does not support SSL, +\fBmysql\-test\-run\&.pl\fR +exits with an error message: +Couldn\'t find support for SSL +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: start-and-exit option +.\" start-and-exit option: mysql-test-run.pl +\fB\-\-start\fR +.sp +Initialize and start servers with the startup settings for the specified test case\&. You can use this option to start a server to which you can connect later\&. For example, after building a source distribution you can start a server and connect to it with the +\fBmysql\fR +client like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBcd mysql\-test\fR +shell> \fB\&./mysql\-test\-run\&.pl \-\-start alias &\fR +shell> \fB\&.\&./mysql \-S \&./var/tmp/master\&.sock \-h localhost \-u root\fR +.fi +.if n \{\ +.RE +.\} +.sp +If no tests are named on the command line, the server(s) will be started with settings for the first test that would have been run without the +\fB\-\-start\fR +option\&. +.sp +\fBmysql\-test\-run\&.pl\fR +will stop once the server has been started, but will terminate if the server dies\&. If killed, it will also shut down the server\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: start-dirty option +.\" start-dirty option: mysql-test-run.pl +\fB\-\-start\-dirty\fR +.sp +This is similar to +\fB\-\-start\fR, but will skip the database initialization phase and assume that database files are already available\&. Usually this means you must have run another test first\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: start-from option +.\" start-from option: mysql-test-run.pl +\fB\-\-start\-from=\fR\fB\fItest_name\fR\fR +.sp +\fBmysql\-test\-run\&.pl\fR +sorts the list of names of the test cases to be run, and then begins with +\fItest_name\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: strace-client option +.\" strace-client option: mysql-test-run.pl +\fB\-\-strace\-client\fR +.sp +Create +\fBstrace\fR +output for +\fBmysqltest\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: suite option +.\" suite option: mysql-test-run.pl +\fB\-\-suite=\fR\fB\fIsuite_name\fR\fR +.sp +Run the named test suite\&. The default name is +main +(the regular test suite located in the +mysql\-test +directory)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: suite-timeout option +.\" suite-timeout option: mysql-test-run.pl +\fB\-\-suite\-timeout=\fR\fB\fIminutes\fR\fR +.sp +Specify the maximum test suite runtime\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: testcase-timeout option +.\" testcase-timeout option: mysql-test-run.pl +\fB\-\-testcase\-timeout\fR +.sp +Specify the maximum test case runtime\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: timediff option +.\" timediff option: mysql-test-run.pl +\fB\-\-timediff\fR +.sp +Adds to each test report for a test case, the total time in sconds and milliseconds passed since the preceding test ended\&. This option can only be used together with +\fB\-\-timestamp\fR, and has no effect without it\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: timer option +.\" timer option: mysql-test-run.pl +\fB\-\-timer\fR +.sp +Cause +\fBmysqltest\fR +to generate a timing file\&. The default file is named +\&./var/log/timer\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: timestamp option +.\" timestamp option: mysql-test-run.pl +\fB\-\-timestamp\fR +.sp +Prints a timestamp before the test case name in each test report line, showing when the test ended\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: tmpdir option +.\" tmpdir option: mysql-test-run.pl +\fB\-\-tmpdir=\fR\fB\fIpath\fR\fR +.sp +The directory where temporary file are stored\&. The default location is +\&./var/tmp\&. The environment variable +MYSQL_TMP_DIR +will be set to the path for this directory, whether it has the default value or has been set explicitly\&. This may be referred to in tests\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: user option +.\" user option: mysql-test-run.pl +\fB\-\-user=\fR\fB\fIuser_name\fR\fR +.sp +The MySQL user name to use when connecting to the server\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: valgrind option +.\" valgrind option: mysql-test-run.pl +\fB\-\-valgrind\fR +.sp +Run +\fBmysqltest\fR +and +\fBmysqld\fR +with +\fBvalgrind\fR\&. Thiks and the following +\fB\-\-valgrind\fR +options require that the executables have been build with +\fBvalgrind\fR +support\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: valgrind-mysqld option +.\" valgrind-mysqld option: mysql-test-run.pl +\fB\-\-valgrind\-mysqld\fR +.sp +Run the +\fBmysqld\fR +server with +\fBvalgrind\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: valgrind-mysqltest option +.\" valgrind-mysqltest option: mysql-test-run.pl +\fB\-\-valgrind\-mysqltest\fR +.sp +Run +\fBmysqltest\fR +with +\fBvalgrind\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: valgrind-options option +.\" valgrind-options option: mysql-test-run.pl +\fB\-\-valgrind\-option=\fR\fB\fIstr\fR\fR +.sp +Extra options to pass to +\fBvalgrind\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: valgrind-path option +.\" valgrind-path option: mysql-test-run.pl +\fB\-\-valgrind\-path=\fR\fB\fIpath\fR\fR +.sp +Specify the path name to the +\fBvalgrind\fR +executable\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: vardir option +.\" vardir option: mysql-test-run.pl +\fB\-\-vardir=\fR\fB\fIpath\fR\fR +.sp +Specify the path where files generated during the test run are stored\&. The default location is +\&./var\&. The environment variable +MYSQLTEST_VARDIR +will be set to the path for this directory, whether it has the default value or has been set explicitly\&. This may be referred to in tests\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: verbose option +.\" verbose option: mysql-test-run.pl +\fB\-\-verbose\fR +.sp +Give more verbose output regarding test execution\&. Use the option twice to get even more output\&. Note that the output generated within each test case is not affected\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: verbose-restart option +.\" verbose-restart option: mysql-test-run.pl +\fB\-\-verbose\-restart\fR +.sp +Write when and why servers are restarted between test cases\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: view-protocol option +.\" view-protocol option: mysql-test-run.pl +\fB\-\-view\-protocol\fR +.sp +Pass the +\fB\-\-view\-protocol\fR +option to +\fBmysqltest\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: vs-config option +.\" vs-config option: mysql-test-run.pl +\fB\-\-vs\-config=\fR\fB\fIconfig_val\fR\fR +.sp +Specify the configuration used to build MySQL (for example, +\fB\-\-vs\-config=debug\fR +\fB\-\-vs\-config=release\fR)\&. This option is for Windows only\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: wait-all option +.\" wait-all option: mysql-test-run.pl +\fB\-\-wait\-all\fR +.sp +If +\fB\-\-start\fR +or +\fB\-\-start\-dirty\fR +is used, wait for all servers to exit before termination\&. Otherise, it will terminate if one (of several) servers is restarted\&. +.sp +This option was added in MySQL 5\&.1\&.36\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: warnings option +.\" warnings option: mysql-test-run.pl +\fB\-\-warnings\fR +.sp +Search the server log for errors or warning after each test and report any suspicious ones; if any are found, the test will be marked as failed\&. This is the default behavior, it may be turned off with +\fB\-\-nowarnings\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql-test-run.pl: with-ndbcluster-only option +.\" with-ndbcluster-only option: mysql-test-run.pl +\fB\-\-with\-ndbcluster\-only\fR +.sp +Run only test cases that have +ndb +in their name\&. +.RE +.SH "COPYRIGHT" +.br +.PP +Copyright \(co 2007, 2010, Oracle and/or its affiliates +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/mysql.1 b/database/man/man1/mysql.1 new file mode 100644 index 0000000..a58918d --- /dev/null +++ b/database/man/man1/mysql.1 @@ -0,0 +1,3007 @@ +'\" t +.\" Title: \fBmysql\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBMYSQL\FR" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" mysql +.\" command-line tool +.\" tools: command-line +.\" scripts: SQL +.\" SQL scripts +.\" batch SQL files +.SH "NAME" +mysql \- the MySQL command\-line tool +.SH "SYNOPSIS" +.HP \w'\fBmysql\ [\fR\fB\fIoptions\fR\fR\fB]\ \fR\fB\fIdb_name\fR\fR\ 'u +\fBmysql [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIdb_name\fR\fR +.SH "DESCRIPTION" +.PP +\fBmysql\fR +is a simple SQL shell (with GNU +readline +capabilities)\&. It supports interactive and noninteractive use\&. When used interactively, query results are presented in an ASCII\-table format\&. When used noninteractively (for example, as a filter), the result is presented in tab\-separated format\&. The output format can be changed using command options\&. +.PP +If you have problems due to insufficient memory for large result sets, use the +\fB\-\-quick\fR +option\&. This forces +\fBmysql\fR +to retrieve results from the server a row at a time rather than retrieving the entire result set and buffering it in memory before displaying it\&. This is done by returning the result set using the +mysql_use_result() +C API function in the client/server library rather than +mysql_store_result()\&. +.PP +Using +\fBmysql\fR +is very easy\&. Invoke it from the prompt of your command interpreter as follows: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql \fR\fB\fIdb_name\fR\fR +.fi +.if n \{\ +.RE +.\} +.PP +Or: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql \-\-user=\fR\fB\fIuser_name\fR\fR\fB \-\-password=\fR\fB\fIyour_password\fR\fR\fB \fR\fB\fIdb_name\fR\fR +.fi +.if n \{\ +.RE +.\} +.PP +Then type an SQL statement, end it with +\(lq;\(rq, +\eg, or +\eG +and press Enter\&. +.PP +As of MySQL 5\&.1\&.10, typing Control\-C causes +\fBmysql\fR +to attempt to kill the current statement\&. If this cannot be done, or Control\-C is typed again before the statement is killed, +\fBmysql\fR +exits\&. Previously, Control\-C caused +\fBmysql\fR +to exit in all cases\&. +.PP +You can execute SQL statements in a script file (batch file) like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql \fR\fB\fIdb_name\fR\fR\fB < \fR\fB\fIscript\&.sql\fR\fR\fB > \fR\fB\fIoutput\&.tab\fR\fR +.fi +.if n \{\ +.RE +.\} +.SH "MYSQL OPTIONS" +.\" mysql command options +.\" command options: mysql +.\" options: command-line: mysql +.\" startup parameters: mysql +.PP +\fBmysql\fR +supports the following options, which can be specified on the command line or in the +[mysql] +and +[client] +option file groups\&. +\fBmysql\fR +also supports the options for processing option files described at +Section\ \&4.2.3.3.1, \(lqCommand-Line Options that Affect Option-File Handling\(rq\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: help option +.\" help option: mysql +\fB\-\-help\fR, +\fB\-?\fR, +\fB\-I\fR +.sp +Display a help message and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: auto-rehash option +.\" auto-rehash option: mysql +\fB\-\-auto\-rehash\fR +.sp +Enable automatic rehashing\&. This option is on by default, which enables database, table, and column name completion\&. Use +\fB\-\-disable\-auto\-rehash\fR +to disable rehashing\&. That causes +\fBmysql\fR +to start faster, but you must issue the +rehash +command if you want to use name completion\&. +.sp +To complete a name, enter the first part and press Tab\&. If the name is unambiguous, +\fBmysql\fR +completes it\&. Otherwise, you can press Tab again to see the possible names that begin with what you have typed so far\&. Completion does not occur if there is no default database\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: batch option +.\" batch option: mysql +\fB\-\-batch\fR, +\fB\-B\fR +.sp +Print results using tab as the column separator, with each row on a new line\&. With this option, +\fBmysql\fR +does not use the history file\&. +.sp +Batch mode results in nontabular output format and escaping of special characters\&. Escaping may be disabled by using raw mode; see the description for the +\fB\-\-raw\fR +option\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: character-sets-dir option +.\" character-sets-dir option: mysql +\fB\-\-character\-sets\-dir=\fR\fB\fIpath\fR\fR +.sp +The directory where character sets are installed\&. See +Section\ \&9.5, \(lqCharacter Set Configuration\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: column-names option +.\" column-names option: mysql +\fB\-\-column\-names\fR +.sp +Write column names in results\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: column-type-info option +.\" column-type-info option: mysql +\fB\-\-column\-type\-info\fR, +\fB\-m\fR +.sp +Display result set metadata\&. This option was added in MySQL 5\&.1\&.14\&. (Before that, use +\fB\-\-debug\-info\fR\&.) The +\fB\-m\fR +short option was added in MySQL 5\&.1\&.21\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: comments option +.\" comments option: mysql +\fB\-\-comments\fR, +\fB\-c\fR +.sp +Whether to preserve comments in statements sent to the server\&. The default is \-\-skip\-comments (discard comments), enable with \-\-comments (preserve comments)\&. This option was added in MySQL 5\&.1\&.23\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: compress option +.\" compress option: mysql +\fB\-\-compress\fR, +\fB\-C\fR +.sp +Compress all information sent between the client and the server if both support compression\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: connect-timeout option +.\" connect-timeout option: mysql +\fB\-\-connect\-timeout=\fR\fB\fIseconds\fR\fR +.sp +Set the number of seconds before connection timeout\&. (Default value is 0\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: database option +.\" database option: mysql +\fB\-\-database=\fR\fB\fIdb_name\fR\fR, +\fB\-D \fR\fB\fIdb_name\fR\fR +.sp +The database to use\&. This is useful primarily in an option file\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: debug option +.\" debug option: mysql +\fB\-\-debug[=\fR\fB\fIdebug_options\fR\fR\fB]\fR, +\fB\-# [\fR\fB\fIdebug_options\fR\fR\fB]\fR +.sp +Write a debugging log\&. A typical +\fIdebug_options\fR +string is +\'d:t:o,\fIfile_name\fR\'\&. The default is +\'d:t:o,/tmp/mysql\&.trace\'\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: debug-check option +.\" debug-check option: mysql +\fB\-\-debug\-check\fR +.sp +Print some debugging information when the program exits\&. This option was added in MySQL 5\&.1\&.21\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: debug-info option +.\" debug-info option: mysql +\fB\-\-debug\-info\fR, +\fB\-T\fR +.sp +Before MySQL 5\&.1\&.14, this option prints debugging information and memory and CPU usage statistics when the program exits, and also causes display of result set metadata during execution\&. As of MySQL 5\&.1\&.14, use +\fB\-\-column\-type\-info\fR +to display result set metadata\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: default-character-set option +.\" default-character-set option: mysql +\fB\-\-default\-character\-set=\fR\fB\fIcharset_name\fR\fR +.sp +Use +\fIcharset_name\fR +as the default character set for the client and connection\&. +.sp +A common issue that can occur when the operating system uses +utf8 +or another multi\-byte character set is that output from the +\fBmysql\fR +client is formatted incorrectly, due to the fact that the MySQL client uses the +latin1 +character set by default\&. You can usually fix such issues by using this option to force the client to use the system character set instead\&. +.sp +See +Section\ \&9.5, \(lqCharacter Set Configuration\(rq, for more information\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: defaults-file option +.\" defaults-file option: mysql +\fB\-\-defaults-file=\fR\fB\fIfilename\fR\fR +.sp +Set \fB\fIfilename\fR\fR as the file to read default options from, override global defaults files\&. Must be given as first option\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: defaults-extra-file option +.\" defaults-extra-file option: mysql +\fB\-\-defaults-extra-file=\fR\fB\fIfilename\fR\fR +.sp +Set \fB\fIfilename\fR\fR as the file to read default options from after the global defaults files has been read\&. +Must be given as first option\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: delimiter option +.\" delimiter option: mysql +\fB\-\-delimiter=\fR\fB\fIstr\fR\fR +.sp +Set the statement delimiter\&. The default is the semicolon character (\(lq;\(rq)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: disable named commands +.\" disable named command: mysql +\fB\-\-disable\-named\-commands\fR +.sp +Disable named commands\&. Use the +\e* +form only, or use named commands only at the beginning of a line ending with a semicolon (\(lq;\(rq)\&. +\fBmysql\fR +starts with this option +\fIenabled\fR +by default\&. However, even with this option, long\-format commands still work from the first line\&. See +the section called \(lqMYSQL COMMANDS\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: execute option +.\" execute option: mysql +\fB\-\-execute=\fR\fB\fIstatement\fR\fR, +\fB\-e \fR\fB\fIstatement\fR\fR +.sp +Execute the statement and quit\&. The default output format is like that produced with +\fB\-\-batch\fR\&. See +Section\ \&4.2.3.1, \(lqUsing Options on the Command Line\(rq, for some examples\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: force option +.\" force option: mysql +\fB\-\-force\fR, +\fB\-f\fR +.sp +Continue even if an SQL error occurs\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: host option +.\" host option: mysql +\fB\-\-host=\fR\fB\fIhost_name\fR\fR, +\fB\-h \fR\fB\fIhost_name\fR\fR +.sp +Connect to the MySQL server on the given host\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: html option +.\" html option: mysql +\fB\-\-html\fR, +\fB\-H\fR +.sp +Produce HTML output\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: ignore-spaces option +.\" ignore-spaces option: mysql +\fB\-\-ignore\-spaces\fR, +\fB\-i\fR +.sp +Ignore spaces after function names\&. The effect of this is described in the discussion for the +IGNORE_SPACE +SQL mode (see +Section\ \&5.1.8, \(lqServer SQL Modes\(rq)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: line-numbers option +.\" line-numbers option: mysql +\fB\-\-line\-numbers\fR +.sp +Write line numbers for errors\&. Disable this with +\fB\-\-skip\-line\-numbers\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: local-infile option +.\" local-infile option: mysql +\fB\-\-local\-infile[={0|1}]\fR +.sp +Enable or disable +LOCAL +capability for +LOAD DATA INFILE\&. With no value, the option enables +LOCAL\&. The option may be given as +\fB\-\-local\-infile=0\fR +or +\fB\-\-local\-infile=1\fR +to explicitly disable or enable +LOCAL\&. Enabling +LOCAL +has no effect if the server does not also support it\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: max-allowed-packet option +.\" max-allowed-packet option: mysql +\fB\-\-max\-allowed\-packet=\fR\fB\fInum\fR\fR +.sp +Set the maximum packet length to send to or receive from the server\&. (Default value is 16MB\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: max-join-size option +.\" max-join-size option: mysql +\fB\-\-max\-join\-size=\fR\fB\fInum\fR\fR +.sp +Set the automatic limit for rows in a join when using +\fB\-\-safe\-updates\fR\&. (Default value is 1,000,000\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: named-commands option +.\" named-commands option: mysql +\fB\-\-named\-commands\fR, +\fB\-G\fR +.sp +Enable named +\fBmysql\fR +commands\&. Long\-format commands are allowed, not just short\-format commands\&. For example, +quit +and +\eq +both are recognized\&. Use +\fB\-\-skip\-named\-commands\fR +to disable named commands\&. See +the section called \(lqMYSQL COMMANDS\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\h'-04'\(bu\h'+03'\c +.\} +.\" mysql: net-buffer-length option +.\" net-buffer-length option: mysql +\fB\-\-net\-buffer\-lenght=\fR\fB\fIsize\fR\fR +.sp +Set the buffer size for TCP/IP and socket communication\&. (Default value is 16KB\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: no-auto-rehash option +.\" no-auto-rehash option: mysql +\fB\-\-no\-auto\-rehash\fR, +\fB\-A\fR +.sp +This has the same effect as +\fB\-\-skip\-auto\-rehash\fR\&. See the description for +\fB\-\-auto\-rehash\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: no-beep option +.\" no-beep option: mysql +\fB\-\-no\-beep\fR, +\fB\-b\fR +.sp +Do not beep when errors occur\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: no-defaults option +.\" no-defaults option: mysql +\fB\-\-no\-defaults\fR +.sp +Do not read default options from any option file\&. This must be given as the first argument\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: no-named-commands option +.\" no-named-commands option: mysql +\fB\-\-no\-named\-commands\fR, +\fB\-g\fR +.sp +Deprecated, use +\fB\-\-disable\-named\-commands\fR +instead\&. +\fB\-\-no\-named\-commands\fR +is removed in MySQL 5\&.5\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: no-pager option +.\" no-pager option: mysql +\fB\-\-no\-pager\fR +.sp +Deprecated form of +\fB\-\-skip\-pager\fR\&. See the +\fB\-\-pager\fR +option\&. +\fB\-\-no\-pager\fR +is removed in MySQL 5\&.5\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: no-tee option +.\" no-tee option: mysql +\fB\-\-no\-tee\fR +.sp +Deprecated form of +\fB\-\-skip\-tee\fR\&. See the +\fB\-\-tee\fR +option\&. +\fB\-\-no\-tee\fR +is removed in MySQL 5\&.5\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: one-database option +.\" one-database option: mysql +\fB\-\-one\-database\fR, +\fB\-o\fR +.sp +Ignore statements except those for the default database named on the command line\&. This is useful for skipping updates to other databases in the binary log\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: pager option +.\" pager option: mysql +\fB\-\-pager[=\fR\fB\fIcommand\fR\fR\fB]\fR +.sp +Use the given command for paging query output\&. If the command is omitted, the default pager is the value of your +PAGER +environment variable\&. Valid pagers are +\fBless\fR, +\fBmore\fR, +\fBcat [> filename]\fR, and so forth\&. This option works only on Unix and only in interactive mode\&. To disable paging, use +\fB\-\-skip\-pager\fR\&. +the section called \(lqMYSQL COMMANDS\(rq, discusses output paging further\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: password option +.\" password option: mysql +\fB\-\-password[=\fR\fB\fIpassword\fR\fR\fB]\fR, +\fB\-p[\fR\fB\fIpassword\fR\fR\fB]\fR +.sp +The password to use when connecting to the server\&. If you use the short option form (\fB\-p\fR), you +\fIcannot\fR +have a space between the option and the password\&. If you omit the +\fIpassword\fR +value following the +\fB\-\-password\fR +or +\fB\-p\fR +option on the command line, +\fBmysql\fR +prompts for one\&. +.sp +Specifying a password on the command line should be considered insecure\&. See +Section\ \&5.3.2.2, \(lqEnd-User Guidelines for Password Security\(rq\&. You can use an option file to avoid giving the password on the command line\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: pipe option +.\" pipe option: mysql +\fB\-\-pipe\fR, +\fB\-W\fR +.sp +On Windows, connect to the server via a named pipe\&. This option applies only if the server supports named\-pipe connections\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: port option +.\" port option: mysql +\fB\-\-port=\fR\fB\fIport_num\fR\fR, +\fB\-P \fR\fB\fIport_num\fR\fR +.sp +The TCP/IP port number to use for the connection\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: print-defaults option +.\" print-defaults option: mysql +\fB\-\-print\-defaults\fR +.sp +Print the program argument list and exit\&. This must be given as the first argument\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: prompt option +.\" prompt option: mysql +\fB\-\-prompt=\fR\fB\fIformat_str\fR\fR +.sp +Set the prompt to the specified format\&. The default is +mysql>\&. The special sequences that the prompt can contain are described in +the section called \(lqMYSQL COMMANDS\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: protocol option +.\" protocol option: mysql +\fB\-\-protocol={TCP|SOCKET|PIPE|MEMORY}\fR +.sp +The connection protocol to use for connecting to the server\&. It is useful when the other connection parameters normally would cause a protocol to be used other than the one you want\&. For details on the allowable values, see +Section\ \&4.2.2, \(lqConnecting to the MySQL Server\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: quick option +.\" quick option: mysql +\fB\-\-quick\fR, +\fB\-q\fR +.sp +Do not cache each query result, print each row as it is received\&. This may slow down the server if the output is suspended\&. With this option, +\fBmysql\fR +does not use the history file\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: raw option +.\" raw option: mysql +\fB\-\-raw\fR, +\fB\-r\fR +.sp +For tabular output, the +\(lqboxing\(rq +around columns enables one column value to be distinguished from another\&. For nontabular output (such as is produced in batch mode or when the +\fB\-\-batch\fR +or +\fB\-\-silent\fR +option is given), special characters are escaped in the output so they can be identified easily\&. Newline, tab, +NUL, and backslash are written as +\en, +\et, +\e0, and +\e\e\&. The +\fB\-\-raw\fR +option disables this character escaping\&. +.sp +The following example demonstrates tabular versus nontabular output and the use of raw mode to disable escaping: +.sp +.if n \{\ +.RS 4 +.\} +.nf +% \fBmysql\fR +mysql> SELECT CHAR(92); ++\-\-\-\-\-\-\-\-\-\-+ +| CHAR(92) | ++\-\-\-\-\-\-\-\-\-\-+ +| \e | ++\-\-\-\-\-\-\-\-\-\-+ +% \fBmysql \-s\fR +mysql> SELECT CHAR(92); +CHAR(92) +\e\e +% \fBmysql \-s \-r\fR +mysql> SELECT CHAR(92); +CHAR(92) +\e +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: reconnect option +.\" reconnect option: mysql +\fB\-\-reconnect\fR +.sp +If the connection to the server is lost, automatically try to reconnect\&. A single reconnect attempt is made each time the connection is lost\&. To suppress reconnection behavior, use +\fB\-\-skip\-reconnect\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: safe-updates option +.\" safe-updates option: mysql +.\" mysql: i-am-a-dummy option +.\" i-am-a-dummy option: mysql +\fB\-\-safe\-updates\fR, +\fB\-\-i\-am\-a\-dummy\fR, +\fB\-U\fR +.sp +Allow only those +UPDATE +and +DELETE +statements that specify which rows to modify by using key values\&. If you have set this option in an option file, you can override it by using +\fB\-\-safe\-updates\fR +on the command line\&. See +the section called \(lqMYSQL TIPS\(rq, for more information about this option\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: secure-auth option +.\" secure-auth option: mysql +\fB\-\-secure\-auth\fR +.sp +Do not send passwords to the server in old (pre\-4\&.1\&.1) format\&. This prevents connections except for servers that use the newer password format\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: select-limit option +.\" select-limit option: mysql +\fB\-\-select\-limit=\fR\fB\fIlimit\fR\fR +.sp +Set automatic limit for SELECT when using \fB\-\-safe\-updates\fR\&. (Default value is 1,000\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: server-arg option +.\" server-arg option: mysql +\fB\-\-server\-arg=\fR\fB\fIname\fR\fR +.sp +Send \fB\fIname\fR\fR as a parameter to the embedded server\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: show-warnings option +.\" show-warnings option: mysql +\fB\-\-show\-warnings\fR +.sp +Cause warnings to be shown after each statement if there are any\&. This option applies to interactive and batch mode\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: sigint-ignore option +.\" sigint-ignore option: mysql +\fB\-\-sigint\-ignore\fR +.sp +Ignore +SIGINT +signals (typically the result of typing Control\-C)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: silent option +.\" silent option: mysql +\fB\-\-silent\fR, +\fB\-s\fR +.sp +Silent mode\&. Produce less output\&. This option can be given multiple times to produce less and less output\&. +.sp +This option results in nontabular output format and escaping of special characters\&. Escaping may be disabled by using raw mode; see the description for the +\fB\-\-raw\fR +option\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: skip-auto-rehash option +.\" skip-auto-rehash option: mysql +\fB\-\-skip\-auto\-rehash\fR +.sp +Disable automatic rehashing\&. Synonym for \fB\-\-disable\-auto\-rehash\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: skip-column-names option +.\" skip-column-names option: mysql +\fB\-\-skip\-column\-names\fR, +\fB\-N\fR +.sp +Do not write column names in results\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: skip-line-numbers option +.\" skip-line-numbers option: mysql +\fB\-\-skip\-line\-numbers\fR, +\fB\-L\fR +.sp +Do not write line numbers for errors\&. Useful when you want to compare result files that include error messages\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: socket option +.\" socket option: mysql +\fB\-\-socket=\fR\fB\fIpath\fR\fR, +\fB\-S \fR\fB\fIpath\fR\fR +.sp +For connections to +localhost, the Unix socket file to use, or, on Windows, the name of the named pipe to use\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: SSL options +.\" SSL options: mysql +\fB\-\-ssl*\fR +.sp +Options that begin with +\fB\-\-ssl\fR +specify whether to connect to the server via SSL and indicate where to find SSL keys and certificates\&. See +Section\ \&5.5.6.3, \(lqSSL Command Options\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: table option +.\" table option: mysql +\fB\-\-table\fR, +\fB\-t\fR +.sp +Display output in table format\&. This is the default for interactive use, but can be used to produce table output in batch mode\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: tee option +.\" tee option: mysql +\fB\-\-tee=\fR\fB\fIfile_name\fR\fR +.sp +Append a copy of output to the given file\&. This option works only in interactive mode\&. +the section called \(lqMYSQL COMMANDS\(rq, discusses tee files further\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: unbuffered option +.\" unbuffered option: mysql +\fB\-\-unbuffered\fR, +\fB\-n\fR +.sp +Flush the buffer after each query\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: user option +.\" user option: mysql +\fB\-\-user=\fR\fB\fIuser_name\fR\fR, +\fB\-u \fR\fB\fIuser_name\fR\fR +.sp +The MySQL user name to use when connecting to the server\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: verbose option +.\" verbose option: mysql +\fB\-\-verbose\fR, +\fB\-v\fR +.sp +Verbose mode\&. Produce more output about what the program does\&. This option can be given multiple times to produce more and more output\&. (For example, +\fB\-v \-v \-v\fR +produces table output format even in batch mode\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: version option +.\" version option: mysql +\fB\-\-version\fR, +\fB\-V\fR +.sp +Display version information and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: vertical option +.\" vertical option: mysql +\fB\-\-vertical\fR, +\fB\-E\fR +.sp +Print query output rows vertically (one line per column value)\&. Without this option, you can specify vertical output for individual statements by terminating them with +\eG\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: wait option +.\" wait option: mysql +\fB\-\-wait\fR, +\fB\-w\fR +.sp +If the connection cannot be established, wait and retry instead of aborting\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: xml option +.\" xml option: mysql +\fB\-\-xml\fR, +\fB\-X\fR +.sp +Produce XML output\&. +.if n \{\ +.sp +.\} +.RS 4 +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +.ps +1 +\fBNote\fR +.ps -1 +.br +Prior to MySQL 5\&.1\&.12, there was no differentiation in the output when using this option between columns containing the +NULL +value and columns containing the string literal +\'NULL\'; both were represented as +.sp .5v +.RE +.sp +.if n \{\ +.RS 4 +.\} +.nf +NULL +.fi +.if n \{\ +.RE +.\} +.sp +Beginning with MySQL 5\&.1\&.12, the output when +\fB\-\-xml\fR +is used with +\fBmysql\fR +matches that of +\fBmysqldump \fR\fB\fB\-\-xml\fR\fR\&. See +\fBmysqldump\fR(1) +for details\&. +.sp +Beginning with MySQL 5\&.1\&.18, the XML output also uses an XML namespace, as shown here: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql \-\-xml \-uroot \-e "SHOW VARIABLES LIKE \'version%\'"\fR + + + +version +5\&.0\&.40\-debug + + +version_comment +Source distribution + + +version_compile_machine +i686 + + +version_compile_os +suse\-linux\-gnu + + +.fi +.if n \{\ +.RE +.\} +.sp +(See +\m[blue]\fBBug#25946\fR\m[]\&\s-2\u[1]\d\s+2\&.) +.RE +.PP +You can also set the following variables by using +\fB\-\-\fR\fB\fIvar_name\fR\fR\fB=\fR\fB\fIvalue\fR\fR\&. The +\fB\-\-set\-variable\fR +format is deprecated and is removed in MySQL 5\&.5\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" timeout: connect_timeout variable +.\" connect_timeout variable +connect_timeout +.sp +The number of seconds before connection timeout\&. (Default value is +0\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" max_allowed_packet variable +max_allowed_packet +.sp +The maximum packet length to send to or receive from the server\&. (Default value is 16MB\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" max_join_size variable +max_join_size +.sp +The automatic limit for rows in a join when using +\fB\-\-safe\-updates\fR\&. (Default value is 1,000,000\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" net_buffer_length variable +net_buffer_length +.sp +The buffer size for TCP/IP and socket communication\&. (Default value is 16KB\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" select_limit variable +select_limit +.sp +The automatic limit for +SELECT +statements when using +\fB\-\-safe\-updates\fR\&. (Default value is 1,000\&.) +.RE +.\" MYSQL_HISTFILE environment variable +.\" environment variable: MYSQL_HISTFILE +.\" HOME environment variable +.\" environment variable: HOME +.\" mysql history file +.\" command-line history: mysql +.\" .mysql_history file +.PP +On Unix, the +\fBmysql\fR +client writes a record of executed statements to a history file\&. By default, this file is named +\&.mysql_history +and is created in your home directory\&. To specify a different file, set the value of the +MYSQL_HISTFILE +environment variable\&. +.PP +The +\&.mysql_history +should be protected with a restrictive access mode because sensitive information might be written to it, such as the text of SQL statements that contain passwords\&. See +Section\ \&5.3.2.2, \(lqEnd-User Guidelines for Password Security\(rq\&. +.PP +If you do not want to maintain a history file, first remove +\&.mysql_history +if it exists, and then use either of the following techniques: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Set the +MYSQL_HISTFILE +variable to +/dev/null\&. To cause this setting to take effect each time you log in, put the setting in one of your shell\'s startup files\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Create +\&.mysql_history +as a symbolic link to +/dev/null: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBln \-s /dev/null $HOME/\&.mysql_history\fR +.fi +.if n \{\ +.RE +.\} +.sp +You need do this only once\&. +.RE +.SH "MYSQL COMMANDS" +.PP +\fBmysql\fR +sends each SQL statement that you issue to the server to be executed\&. There is also a set of commands that +\fBmysql\fR +itself interprets\&. For a list of these commands, type +help +or +\eh +at the +mysql> +prompt: +.\" mysql commands: list of +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql> \fBhelp\fR +List of all MySQL commands: +Note that all text commands must be first on line and end with \';\' +? (\e?) Synonym for `help\'\&. +clear (\ec) Clear command\&. +connect (\er) Reconnect to the server\&. Optional arguments are db and host\&. +delimiter (\ed) Set statement delimiter\&. +edit (\ee) Edit command with $EDITOR\&. +ego (\eG) Send command to mysql server, display result vertically\&. +exit (\eq) Exit mysql\&. Same as quit\&. +go (\eg) Send command to mysql server\&. +help (\eh) Display this help\&. +nopager (\en) Disable pager, print to stdout\&. +notee (\et) Don\'t write into outfile\&. +pager (\eP) Set PAGER [to_pager]\&. Print the query results via PAGER\&. +print (\ep) Print current command\&. +prompt (\eR) Change your mysql prompt\&. +quit (\eq) Quit mysql\&. +rehash (\e#) Rebuild completion hash\&. +source (\e\&.) Execute an SQL script file\&. Takes a file name as an argument\&. +status (\es) Get status information from the server\&. +system (\e!) Execute a system shell command\&. +tee (\eT) Set outfile [to_outfile]\&. Append everything into given + outfile\&. +use (\eu) Use another database\&. Takes database name as argument\&. +charset (\eC) Switch to another charset\&. Might be needed for processing + binlog with multi\-byte charsets\&. +warnings (\eW) Show warnings after every statement\&. +nowarning (\ew) Don\'t show warnings after every statement\&. +For server side help, type \'help contents\' +.fi +.if n \{\ +.RE +.\} +.PP +Each command has both a long and short form\&. The long form is not case sensitive; the short form is\&. The long form can be followed by an optional semicolon terminator, but the short form should not\&. +.PP +The use of short\-form commands within multi\-line +/* \&.\&.\&. */ +comments is not supported\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: help command +.\" help command: mysql +\fBhelp [\fR\fB\fIarg\fR\fR\fB]\fR, +\fB\eh [\fR\fB\fIarg\fR\fR\fB]\fR, +\fB\e? [\fR\fB\fIarg\fR\fR\fB]\fR, +\fB? [\fR\fB\fIarg\fR\fR\fB]\fR +.sp +Display a help message listing the available +\fBmysql\fR +commands\&. +.sp +If you provide an argument to the +help +command, +\fBmysql\fR +uses it as a search string to access server\-side help from the contents of the MySQL Reference Manual\&. For more information, see +the section called \(lqMYSQL SERVER-SIDE HELP\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: charset command +.\" charset command: mysql +\fBcharset \fR\fB\fIcharset_name\fR\fR, +\fB\eC \fR\fB\fIcharset_name\fR\fR +.sp +Change the default character set and issue a +SET NAMES +statement\&. This enables the character set to remain synchronized on the client and server if +\fBmysql\fR +is run with auto\-reconnect enabled (which is not recommended), because the specified character set is used for reconnects\&. This command was added in MySQL 5\&.1\&.7\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: clear command +.\" clear command: mysql +\fBclear\fR, +\fB\ec\fR +.sp +Clear the current input\&. Use this if you change your mind about executing the statement that you are entering\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: connect command +.\" connect command: mysql +\fBconnect [\fR\fB\fIdb_name\fR\fR\fB \fR\fB\fIhost_name\fR\fR\fB]]\fR, +\fB\er [\fR\fB\fIdb_name\fR\fR\fB \fR\fB\fIhost_name\fR\fR\fB]]\fR +.sp +Reconnect to the server\&. The optional database name and host name arguments may be given to specify the default database or the host where the server is running\&. If omitted, the current values are used\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: delimiter command +.\" delimiter command: mysql +\fBdelimiter \fR\fB\fIstr\fR\fR, +\fB\ed \fR\fB\fIstr\fR\fR +.sp +Change the string that +\fBmysql\fR +interprets as the separator between SQL statements\&. The default is the semicolon character (\(lq;\(rq)\&. +.sp +The delimiter can be specified as an unquoted or quoted argument\&. Quoting can be done with either single quote (\') or douple quote (") characters\&. To include a quote within a quoted string, either quote the string with the other quote character or escape the quote with a backslash (\(lq\e\(rq) character\&. Backslash should be avoided outside of quoted strings because it is the escape character for MySQL\&. For an unquoted argument, the delmiter is read up to the first space or end of line\&. For a quoted argument, the delimiter is read up to the matching quote on the line\&. +.sp +When the delimiter recognized by +\fBmysql\fR +is set to something other than the default of +\(lq;\(rq, instances of that character are sent to the server without interpretation\&. However, the server itself still interprets +\(lq;\(rq +as a statement delimiter and processes statements accordingly\&. This behavior on the server side comes into play for multiple\-statement execution (see +Section\ \&21.9.12, \(lqC API Support for Multiple Statement Execution\(rq), and for parsing the body of stored procedures and functions, triggers, and events (see +Section\ \&19.1, \(lqDefining Stored Programs\(rq)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: edit command +.\" edit command: mysql +\fBedit\fR, +\fB\ee\fR +.sp +Edit the current input statement\&. +\fBmysql\fR +checks the values of the +EDITOR +and +VISUAL +environment variables to determine which editor to use\&. The default editor is +\fBvi\fR +if neither variable is set\&. +.sp +The +\fBedit\fR +command works only in Unix\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: ego command +.\" ego command: mysql +\fBego\fR, +\fB\eG\fR +.sp +Send the current statement to the server to be executed and display the result using vertical format\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: exit command +.\" exit command: mysql +\fBexit\fR, +\fB\eq\fR +.sp +Exit +\fBmysql\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: go command +.\" go command: mysql +\fBgo\fR, +\fB\eg\fR +.sp +Send the current statement to the server to be executed\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: nopager command +.\" nopager command: mysql +\fBnopager\fR, +\fB\en\fR +.sp +Disable output paging\&. See the description for +\fBpager\fR\&. +.sp +The +\fBnopager\fR +command works only in Unix\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: notee command +.\" notee command: mysql +\fBnotee\fR, +\fB\et\fR +.sp +Disable output copying to the tee file\&. See the description for +\fBtee\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: nowarning command +.\" nowarning command: mysql +\fBnowarning\fR, +\fB\ew\fR +.sp +Enable display of warnings after each statement\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: pager command +.\" pager command: mysql +\fBpager [\fR\fB\fIcommand\fR\fR\fB]\fR, +\fB\eP [\fR\fB\fIcommand\fR\fR\fB]\fR +.sp +Enable output paging\&. By using the +\fB\-\-pager\fR +option when you invoke +\fBmysql\fR, it is possible to browse or search query results in interactive mode with Unix programs such as +\fBless\fR, +\fBmore\fR, or any other similar program\&. If you specify no value for the option, +\fBmysql\fR +checks the value of the +PAGER +environment variable and sets the pager to that\&. Pager functionality works only in interactive mode\&. +.sp +Output paging can be enabled interactively with the +\fBpager\fR +command and disabled with +\fBnopager\fR\&. The command takes an optional argument; if given, the paging program is set to that\&. With no argument, the pager is set to the pager that was set on the command line, or +stdout +if no pager was specified\&. +.sp +Output paging works only in Unix because it uses the +popen() +function, which does not exist on Windows\&. For Windows, the +\fBtee\fR +option can be used instead to save query output, although it is not as convenient as +\fBpager\fR +for browsing output in some situations\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: print command +.\" print command: mysql +\fBprint\fR, +\fB\ep\fR +.sp +Print the current input statement without executing it\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: prompt command +.\" prompt command: mysql +\fBprompt [\fR\fB\fIstr\fR\fR\fB]\fR, +\fB\eR [\fR\fB\fIstr\fR\fR\fB]\fR +.sp +Reconfigure the +\fBmysql\fR +prompt to the given string\&. The special character sequences that can be used in the prompt are described later in this section\&. +.sp +If you specify the +prompt +command with no argument, +\fBmysql\fR +resets the prompt to the default of +mysql>\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: quit command +.\" quit command: mysql +\fBquit\fR, +\fB\eq\fR +.sp +Exit +\fBmysql\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: rehash command +.\" rehash command: mysql +\fBrehash\fR, +\fB\e#\fR +.sp +Rebuild the completion hash that enables database, table, and column name completion while you are entering statements\&. (See the description for the +\fB\-\-auto\-rehash\fR +option\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: source command +.\" source command: mysql +\fBsource \fR\fB\fIfile_name\fR\fR, +\fB\e\&. \fR\fB\fIfile_name\fR\fR +.sp +Read the named file and executes the statements contained therein\&. On Windows, you can specify path name separators as +/ +or +\e\e\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: status command +.\" status command: mysql +\fBstatus\fR, +\fB\es\fR +.sp +Provide status information about the connection and the server you are using\&. If you are running in +\fB\-\-safe\-updates\fR +mode, +status +also prints the values for the +\fBmysql\fR +variables that affect your queries\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: system command +.\" system command: mysql +\fBsystem \fR\fB\fIcommand\fR\fR, +\fB\e! \fR\fB\fIcommand\fR\fR +.sp +Execute the given command using your default command interpreter\&. +.sp +The +\fBsystem\fR +command works only in Unix\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: tee command +.\" tee command: mysql +\fBtee [\fR\fB\fIfile_name\fR\fR\fB]\fR, +\fB\eT [\fR\fB\fIfile_name\fR\fR\fB]\fR +.sp +By using the +\fB\-\-tee\fR +option when you invoke +\fBmysql\fR, you can log statements and their output\&. All the data displayed on the screen is appended into a given file\&. This can be very useful for debugging purposes also\&. +\fBmysql\fR +flushes results to the file after each statement, just before it prints its next prompt\&. Tee functionality works only in interactive mode\&. +.sp +You can enable this feature interactively with the +\fBtee\fR +command\&. Without a parameter, the previous file is used\&. The +\fBtee\fR +file can be disabled with the +\fBnotee\fR +command\&. Executing +\fBtee\fR +again re\-enables logging\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: use command +.\" use command: mysql +\fBuse \fR\fB\fIdb_name\fR\fR, +\fB\eu \fR\fB\fIdb_name\fR\fR +.sp +Use +\fIdb_name\fR +as the default database\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql: warnings command +.\" warnings command: mysql +\fBwarnings\fR, +\fB\eW\fR +.sp +Enable display of warnings after each statement (if there are any)\&. +.RE +.PP +Here are a few tips about the +\fBpager\fR +command: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +You can use it to write to a file and the results go only to the file: +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql> \fBpager cat > /tmp/log\&.txt\fR +.fi +.if n \{\ +.RE +.\} +.sp +You can also pass any options for the program that you want to use as your pager: +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql> \fBpager less \-n \-i \-S\fR +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +In the preceding example, note the +\fB\-S\fR +option\&. You may find it very useful for browsing wide query results\&. Sometimes a very wide result set is difficult to read on the screen\&. The +\fB\-S\fR +option to +\fBless\fR +can make the result set much more readable because you can scroll it horizontally using the left\-arrow and right\-arrow keys\&. You can also use +\fB\-S\fR +interactively within +\fBless\fR +to switch the horizontal\-browse mode on and off\&. For more information, read the +\fBless\fR +manual page: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBman less\fR +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +The +\fB\-F\fR +and +\fB\-X\fR +options may be used with +\fBless\fR +to cause it to exit if output fits on one screen, which is convenient when no scrolling is necessary: +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql> \fBpager less \-n \-i \-S \-F \-X\fR +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +You can specify very complex pager commands for handling query output: +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql> \fBpager cat | tee /dr1/tmp/res\&.txt \e\fR + \fB| tee /dr2/tmp/res2\&.txt | less \-n \-i \-S\fR +.fi +.if n \{\ +.RE +.\} +.sp +In this example, the command would send query results to two files in two different directories on two different file systems mounted on +/dr1 +and +/dr2, yet still display the results onscreen via +\fBless\fR\&. +.RE +.PP +You can also combine the +\fBtee\fR +and +\fBpager\fR +functions\&. Have a +\fBtee\fR +file enabled and +\fBpager\fR +set to +\fBless\fR, and you are able to browse the results using the +\fBless\fR +program and still have everything appended into a file the same time\&. The difference between the Unix +\fBtee\fR +used with the +\fBpager\fR +command and the +\fBmysql\fR +built\-in +\fBtee\fR +command is that the built\-in +\fBtee\fR +works even if you do not have the Unix +\fBtee\fR +available\&. The built\-in +\fBtee\fR +also logs everything that is printed on the screen, whereas the Unix +\fBtee\fR +used with +\fBpager\fR +does not log quite that much\&. Additionally, +\fBtee\fR +file logging can be turned on and off interactively from within +\fBmysql\fR\&. This is useful when you want to log some queries to a file, but not others\&. +.\" mysql prompt command +.PP +The +\fBprompt\fR +command reconfigures the default +mysql> +prompt\&. The string for defining the prompt can contain the following special sequences\&. +.TS +allbox tab(:); +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l +l l. +T{ +\fBOption\fR +T}:T{ +\fBDescription\fR +T} +T{ +\ec +T}:T{ +A counter that increments for each statement you issue +T} +T{ +\eD +T}:T{ +The full current date +T} +T{ +\ed +T}:T{ +The default database +T} +T{ +\eh +T}:T{ +The server host +T} +T{ +\el +T}:T{ +The current delimiter (new in 5\&.1\&.12) +T} +T{ +\em +T}:T{ +Minutes of the current time +T} +T{ +\en +T}:T{ +A newline character +T} +T{ +\eO +T}:T{ +The current month in three\-letter format (Jan, Feb, \&...) +T} +T{ +\eo +T}:T{ +The current month in numeric format +T} +T{ +\eP +T}:T{ +am/pm +T} +T{ +\ep +T}:T{ +The current TCP/IP port or socket file +T} +T{ +\eR +T}:T{ +The current time, in 24\-hour military time (0\(en23) +T} +T{ +\er +T}:T{ +The current time, standard 12\-hour time (1\(en12) +T} +T{ +\eS +T}:T{ +Semicolon +T} +T{ +\es +T}:T{ +Seconds of the current time +T} +T{ +\et +T}:T{ +A tab character +T} +T{ +\eU +T}:T{ +.PP +Your full +\fIuser_name\fR@\fIhost_name\fR +account name +T} +T{ +\eu +T}:T{ +Your user name +T} +T{ +\ev +T}:T{ +The server version +T} +T{ +\ew +T}:T{ +The current day of the week in three\-letter format (Mon, Tue, \&...) +T} +T{ +\eY +T}:T{ +The current year, four digits +T} +T{ +\ey +T}:T{ +The current year, two digits +T} +T{ +\e_ +T}:T{ +A space +T} +T{ +\e\ \& +T}:T{ +A space (a space follows the backslash) +T} +T{ +\e\' +T}:T{ +Single quote +T} +T{ +\e" +T}:T{ +Double quote +T} +T{ +\e\e +T}:T{ +A literal \(lq\e\(rq backslash character +T} +T{ +\e\fIx\fR +T}:T{ +.PP +\fIx\fR, for any +\(lq\fIx\fR\(rq +not listed above +T} +.TE +.sp 1 +.PP +You can set the prompt in several ways: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fIUse an environment variable\&.\fR +You can set the +MYSQL_PS1 +environment variable to a prompt string\&. For example: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBexport MYSQL_PS1="(\eu@\eh) [\ed]> "\fR +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fIUse a command\-line option\&.\fR +You can set the +\fB\-\-prompt\fR +option on the command line to +\fBmysql\fR\&. For example: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql \-\-prompt="(\eu@\eh) [\ed]> "\fR +(user@host) [database]> +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fIUse an option file\&.\fR +You can set the +prompt +option in the +[mysql] +group of any MySQL option file, such as +/etc/my\&.cnf +or the +\&.my\&.cnf +file in your home directory\&. For example: +.sp +.if n \{\ +.RS 4 +.\} +.nf +[mysql] +prompt=(\e\eu@\e\eh) [\e\ed]>\e\e_ +.fi +.if n \{\ +.RE +.\} +.sp +In this example, note that the backslashes are doubled\&. If you set the prompt using the +prompt +option in an option file, it is advisable to double the backslashes when using the special prompt options\&. There is some overlap in the set of allowable prompt options and the set of special escape sequences that are recognized in option files\&. (The rules for escape sequences in option files are listed in +Section\ \&4.2.3.3, \(lqUsing Option Files\(rq\&.) The overlap may cause you problems if you use single backslashes\&. For example, +\es +is interpreted as a space rather than as the current seconds value\&. The following example shows how to define a prompt within an option file to include the current time in +HH:MM:SS> +format: +.sp +.if n \{\ +.RS 4 +.\} +.nf +[mysql] +prompt="\e\er:\e\em:\e\es> " +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fISet the prompt interactively\&.\fR +You can change your prompt interactively by using the +prompt +(or +\eR) command\&. For example: +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql> \fBprompt (\eu@\eh) [\ed]>\e_\fR +PROMPT set to \'(\eu@\eh) [\ed]>\e_\' +(\fIuser\fR@\fIhost\fR) [\fIdatabase\fR]> +(\fIuser\fR@\fIhost\fR) [\fIdatabase\fR]> prompt +Returning to default PROMPT of mysql> +mysql> +.fi +.if n \{\ +.RE +.\} +.RE +.SH "MYSQL SERVER-SIDE HELP" +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql> \fBhelp \fR\fB\fIsearch_string\fR\fR +.fi +.if n \{\ +.RE +.\} +.PP +If you provide an argument to the +help +command, +\fBmysql\fR +uses it as a search string to access server\-side help from the contents of the MySQL Reference Manual\&. The proper operation of this command requires that the help tables in the +mysql +database be initialized with help topic information (see +Section\ \&5.1.9, \(lqServer-Side Help\(rq)\&. +.PP +If there is no match for the search string, the search fails: +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql> \fBhelp me\fR +Nothing found +Please try to run \'help contents\' for a list of all accessible topics +.fi +.if n \{\ +.RE +.\} +.PP +Use +\fBhelp contents\fR +to see a list of the help categories: +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql> \fBhelp contents\fR +You asked for help about help category: "Contents" +For more information, type \'help \', where is one of the +following categories: + Account Management + Administration + Data Definition + Data Manipulation + Data Types + Functions + Functions and Modifiers for Use with GROUP BY + Geographic Features + Language Structure + Plugins + Storage Engines + Stored Routines + Table Maintenance + Transactions + Triggers +.fi +.if n \{\ +.RE +.\} +.PP +If the search string matches multiple items, +\fBmysql\fR +shows a list of matching topics: +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql> \fBhelp logs\fR +Many help items for your request exist\&. +To make a more specific request, please type \'help \', +where is one of the following topics: + SHOW + SHOW BINARY LOGS + SHOW ENGINE + SHOW LOGS +.fi +.if n \{\ +.RE +.\} +.PP +Use a topic as the search string to see the help entry for that topic: +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql> \fBhelp show binary logs\fR +Name: \'SHOW BINARY LOGS\' +Description: +Syntax: +SHOW BINARY LOGS +SHOW MASTER LOGS +Lists the binary log files on the server\&. This statement is used as +part of the procedure described in [purge\-binary\-logs], that shows how +to determine which logs can be purged\&. +mysql> SHOW BINARY LOGS; ++\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-+ +| Log_name | File_size | ++\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-+ +| binlog\&.000015 | 724935 | +| binlog\&.000016 | 733481 | ++\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-+ +.fi +.if n \{\ +.RE +.\} +.SH "EXECUTING SQL STATEMENTS FROM A TEXT FILE" +.\" executing SQL statements from text files +.\" importing: data +.\" data: importing +.\" files: text +.\" text files: importing +.\" source (mysql client command) +.\" \. (mysql client command) +.\" mysql source (command for reading from text files) +.\" mysql \. (command for reading from text files) +.PP +The +\fBmysql\fR +client typically is used interactively, like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql \fR\fB\fIdb_name\fR\fR +.fi +.if n \{\ +.RE +.\} +.PP +However, it is also possible to put your SQL statements in a file and then tell +\fBmysql\fR +to read its input from that file\&. To do so, create a text file +\fItext_file\fR +that contains the statements you wish to execute\&. Then invoke +\fBmysql\fR +as shown here: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql \fR\fB\fIdb_name\fR\fR\fB < \fR\fB\fItext_file\fR\fR +.fi +.if n \{\ +.RE +.\} +.PP +If you place a +USE \fIdb_name\fR +statement as the first statement in the file, it is unnecessary to specify the database name on the command line: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql < text_file\fR +.fi +.if n \{\ +.RE +.\} +.PP +If you are already running +\fBmysql\fR, you can execute an SQL script file using the +source +command or +\e\&. +command: +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql> \fBsource \fR\fB\fIfile_name\fR\fR +mysql> \fB\e\&. \fR\fB\fIfile_name\fR\fR +.fi +.if n \{\ +.RE +.\} +.PP +Sometimes you may want your script to display progress information to the user\&. For this you can insert statements like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +SELECT \'\' AS \' \'; +.fi +.if n \{\ +.RE +.\} +.PP +The statement shown outputs +\&. +.PP +You can also invoke +\fBmysql\fR +with the +\fB\-\-verbose\fR +option, which causes each statement to be displayed before the result that it produces\&. +.PP +As of MySQL 5\&.1\&.23, +\fBmysql\fR +ignores Unicode byte order mark (BOM) characters at the beginning of input files\&. Previously, it read them and sent them to the server, resulting in a syntax error\&. Presence of a BOM does not cause +\fBmysql\fR +to change its default character set\&. To do that, invoke +\fBmysql\fR +with an option such as +\fB\-\-default\-character\-set=utf8\fR\&. +.PP +For more information about batch mode, see +Section\ \&3.5, \(lqUsing mysql in Batch Mode\(rq\&. +.SH "MYSQL TIPS" +.PP +This section describes some techniques that can help you use +\fBmysql\fR +more effectively\&. +.SS "Displaying Query Results Vertically" +.PP +Some query results are much more readable when displayed vertically, instead of in the usual horizontal table format\&. Queries can be displayed vertically by terminating the query with \eG instead of a semicolon\&. For example, longer text values that include newlines often are much easier to read with vertical output: +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql> \fBSELECT * FROM mails WHERE LENGTH(txt) < 300 LIMIT 300,1\eG\fR +*************************** 1\&. row *************************** + msg_nro: 3068 + date: 2000\-03\-01 23:29:50 +time_zone: +0200 +mail_from: Monty + reply: monty@no\&.spam\&.com + mail_to: "Thimble Smith" + sbj: UTF\-8 + txt: >>>>> "Thimble" == Thimble Smith writes: +Thimble> Hi\&. I think this is a good idea\&. Is anyone familiar +Thimble> with UTF\-8 or Unicode? Otherwise, I\'ll put this on my +Thimble> TODO list and see what happens\&. +Yes, please do that\&. +Regards, +Monty + file: inbox\-jani\-1 + hash: 190402944 +1 row in set (0\&.09 sec) +.fi +.if n \{\ +.RE +.\} +.SS "Using the \-\-safe\-updates Option" +.\" safe-updates option +.PP +For beginners, a useful startup option is +\fB\-\-safe\-updates\fR +(or +\fB\-\-i\-am\-a\-dummy\fR, which has the same effect)\&. It is helpful for cases when you might have issued a +DELETE FROM \fItbl_name\fR +statement but forgotten the +WHERE +clause\&. Normally, such a statement deletes all rows from the table\&. With +\fB\-\-safe\-updates\fR, you can delete rows only by specifying the key values that identify them\&. This helps prevent accidents\&. +.PP +When you use the +\fB\-\-safe\-updates\fR +option, +\fBmysql\fR +issues the following statement when it connects to the MySQL server: +.sp +.if n \{\ +.RS 4 +.\} +.nf +SET sql_safe_updates=1, sql_select_limit=1000, sql_max_join_size=1000000; +.fi +.if n \{\ +.RE +.\} +.PP +See +Section\ \&5.1.5, \(lqSession System Variables\(rq\&. +.PP +The +SET +statement has the following effects: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +You are not allowed to execute an +UPDATE +or +DELETE +statement unless you specify a key constraint in the +WHERE +clause or provide a +LIMIT +clause (or both)\&. For example: +.sp +.if n \{\ +.RS 4 +.\} +.nf +UPDATE \fItbl_name\fR SET \fInot_key_column\fR=\fIval\fR WHERE \fIkey_column\fR=\fIval\fR; +UPDATE \fItbl_name\fR SET \fInot_key_column\fR=\fIval\fR LIMIT 1; +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +The server limits all large +SELECT +results to 1,000 rows unless the statement includes a +LIMIT +clause\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +The server aborts multiple\-table +SELECT +statements that probably need to examine more than 1,000,000 row combinations\&. +.RE +.PP +To specify limits different from 1,000 and 1,000,000, you can override the defaults by using the +\fB\-\-select\-limit\fR +and +\fB\-\-max\-join\-size\fR +options: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql \-\-safe\-updates \-\-select\-limit=500 \-\-max\-join\-size=10000\fR +.fi +.if n \{\ +.RE +.\} +.SS "Disabling mysql Auto\-Reconnect" +.PP +If the +\fBmysql\fR +client loses its connection to the server while sending a statement, it immediately and automatically tries to reconnect once to the server and send the statement again\&. However, even if +\fBmysql\fR +succeeds in reconnecting, your first connection has ended and all your previous session objects and settings are lost: temporary tables, the autocommit mode, and user\-defined and session variables\&. Also, any current transaction rolls back\&. This behavior may be dangerous for you, as in the following example where the server was shut down and restarted between the first and second statements without you knowing it: +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql> \fBSET @a=1;\fR +Query OK, 0 rows affected (0\&.05 sec) +mysql> \fBINSERT INTO t VALUES(@a);\fR +ERROR 2006: MySQL server has gone away +No connection\&. Trying to reconnect\&.\&.\&. +Connection id: 1 +Current database: test +Query OK, 1 row affected (1\&.30 sec) +mysql> \fBSELECT * FROM t;\fR ++\-\-\-\-\-\-+ +| a | ++\-\-\-\-\-\-+ +| NULL | ++\-\-\-\-\-\-+ +1 row in set (0\&.05 sec) +.fi +.if n \{\ +.RE +.\} +.PP +The +@a +user variable has been lost with the connection, and after the reconnection it is undefined\&. If it is important to have +\fBmysql\fR +terminate with an error if the connection has been lost, you can start the +\fBmysql\fR +client with the +\fB\-\-skip\-reconnect\fR +option\&. +.PP +For more information about auto\-reconnect and its effect on state information when a reconnection occurs, see +Section\ \&21.9.11, \(lqControlling Automatic Reconnection Behavior\(rq\&. +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "NOTES" +.IP " 1." 4 +Bug#25946 +.RS 4 +\%http://bugs.mysql.com/bug.php?id=25946 +.RE +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/mysql.server.1 b/database/man/man1/mysql.server.1 new file mode 100644 index 0000000..77d66e7 --- /dev/null +++ b/database/man/man1/mysql.server.1 @@ -0,0 +1,192 @@ +'\" t +.\" Title: \fBmysql.server\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBMYSQL\&.SERVER\FR" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" mysql.server +.SH "NAME" +mysql.server \- MySQL server startup script +.SH "SYNOPSIS" +.HP \w'\fBmysql\ {start|stop}\fR\ 'u +\fBmysql {start|stop}\fR +.SH "DESCRIPTION" +.PP +MySQL distributions on Unix include a script named +\fBmysql\&.server\fR\&. It can be used on systems such as Linux and Solaris that use System V\-style run directories to start and stop system services\&. It is also used by the Mac OS X Startup Item for MySQL\&. +.PP +\fBmysql\&.server\fR +can be found in the +support\-files +directory under your MySQL installation directory or in a MySQL source distribution\&. +.PP +If you use the Linux server RPM package (MySQL\-server\-\fIVERSION\fR\&.rpm), the +\fBmysql\&.server\fR +script will be installed in the +/etc/init\&.d +directory with the name +mysql\&. You need not install it manually\&. See +Section\ \&2.6.1, \(lqInstalling MySQL from RPM Packages on Linux\(rq, for more information on the Linux RPM packages\&. +.PP +Some vendors provide RPM packages that install a startup script under a different name such as +\fBmysqld\fR\&. +.PP +If you install MySQL from a source distribution or using a binary distribution format that does not install +\fBmysql\&.server\fR +automatically, you can install it manually\&. Instructions are provided in +Section\ \&2.13.1.2, \(lqStarting and Stopping MySQL Automatically\(rq\&. +.PP +\fBmysql\&.server\fR +reads options from the +[mysql\&.server] +and +[mysqld] +sections of option files\&. For backward compatibility, it also reads +[mysql_server] +sections, although you should rename such sections to +[mysql\&.server] +when using MySQL 5\&.1\&. +.PP +\fBmysql\&.server\fR +supports the following options\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql.server: basedir option +.\" basedir option: mysql.server +\fB\-\-basedir=\fR\fB\fIpath\fR\fR +.sp +The path to the MySQL installation directory\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql.server: datadir option +.\" datadir option: mysql.server +\fB\-\-datadir=\fR\fB\fIpath\fR\fR +.sp +The path to the MySQL data directory\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql.server: pid-file option +.\" pid-file option: mysql.server +\fB\-\-pid\-file=\fR\fB\fIfile_name\fR\fR +.sp +The path name of the file in which the server should write its process ID\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql.server: service-startup-timeout option +.\" service-startup-timeout option: mysql.server +\fB\-\-service\-startup\-timeout=\fR\fB\fIfile_name\fR\fR +.sp +How long in seconds to wait for confirmation of server startup\&. If the server does not start within this time, +\fBmysql\&.server\fR +exits with an error\&. The default value is 900\&. A value of 0 means not to wait at all for startup\&. Negative values mean to wait forever (no timeout)\&. This option was added in MySQL 5\&.1\&.17\&. Before that, a value of 900 is always used\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql.server: use-mysqld_safe option +.\" use-mysqld_safe option: mysql.server +\fB\-\-use\-mysqld_safe\fR +.sp +Use +\fBmysqld_safe\fR +to start the server\&. This is the default\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql.server: use-manager option +.\" use-manager option: mysql.server +\fB\-\-use\-manager\fR +.sp +Use Instance Manager to start the server\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql.server: user option +.\" user option: mysql.server +\fB\-\-user=\fR\fB\fIuser_name\fR\fR +.sp +The login user name to use for running +\fBmysqld\fR\&. +.RE +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/mysql_client_test.1 b/database/man/man1/mysql_client_test.1 new file mode 100644 index 0000000..e7c228b --- /dev/null +++ b/database/man/man1/mysql_client_test.1 @@ -0,0 +1,342 @@ +'\" t +.\" Title: \fBmysql_client_test\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 03/31/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL +.\" Language: English +.\" +.TH "\FBMYSQL_CLIENT_TEST" "1" "03/31/2010" "MySQL" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" mysql_client_test +.\" mysql_client_test_embedded +.SH "NAME" +mysql_client_test \- test client API +.br +mysql_client_test_embedded \- test client API for embedded server +.SH "SYNOPSIS" +.HP \w'\fBmysql_client_test\ [\fR\fB\fIoptions\fR\fR\fB]\ [\fR\fB\fItest_name\fR\fR\fB]\ \&.\&.\&.\fR\ 'u +\fBmysql_client_test [\fR\fB\fIoptions\fR\fR\fB] [\fR\fB\fItest_name\fR\fR\fB] \&.\&.\&.\fR +.HP \w'\fBmysql_client_test_embedded\ [\fR\fB\fIoptions\fR\fR\fB]\ [\fR\fB\fItest_name\fR\fR\fB]\ \&.\&.\&.\fR\ 'u +\fBmysql_client_test_embedded [\fR\fB\fIoptions\fR\fR\fB] [\fR\fB\fItest_name\fR\fR\fB] \&.\&.\&.\fR +.SH "DESCRIPTION" +.PP +The +\fBmysql_client_test\fR +program is used for testing aspects of the MySQL client API that cannot be tested using +\fBmysqltest\fR +and its test language\&. +\fBmysql_client_test_embedded\fR +is similar but used for testing the embedded server\&. Both programs are run as part of the test suite\&. +.PP +The source code for the programs can be found in in +tests/mysql_client_test\&.c +in a source distribution\&. The program serves as a good source of examples illustrating how to use various features of the client API\&. +.PP +\fBmysql_client_test\fR +is used in a test by the same name in the main tests suite of +\fBmysql\-test\-run\&.pl\fR +but may also be run directly\&. Unlike the other programs listed here, it does not read an external description of what tests to run\&. Instead, all tests are coded into the program, which is written to cover all aspects of the C language API\&. +.PP +\fBmysql_client_test\fR +supports the following options: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_client_test: help option +.\" help option: mysql_client_test +\fB\-\-help\fR, +\fB\-?\fR +.sp +Display a help message and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-\-basedir=\fR\fB\fIdir_name\fR\fR, +.\" mysql_client_test: basedir option +.\" basedir option: mysql_client_test +\fB\-b \fR\fB\fIdir_name\fR\fR +.sp +The base directory for the tests\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-\-count=\fR\fB\fIcount\fR\fR, +.\" mysql_client_test: count option +.\" count option: mysql_client_test +\fB\-t \fR\fB\fIcount\fR\fR +.sp +The number of times to execute the tests\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_client_test: database option +.\" database option: mysql_client_test +\fB\-\-database=\fR\fB\fIdb_name\fR\fR, +\fB\-D \fR\fB\fIdb_name\fR\fR +.sp +The database to use\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_client_test: debug option +.\" debug option: mysql_client_test +\fB\-\-debug[=\fR\fB\fIdebug_options\fR\fR\fB]\fR, +\fB\-#[\fR\fB\fIdebug_options\fR\fR\fB]\fR +.sp +Write a debugging log if MySQL is built with debugging support\&. The default +\fIdebug_options\fR +value is +\'d:t:o,/tmp/mysql_client_test\&.trace\'\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-\-getopt\-ll\-test=\fR\fB\fIoption\fR\fR, +.\" mysql_client_test: getopt-ll-test option +.\" getopt-ll-test option: mysql_client_test +\fB\-g \fR\fB\fIoption\fR\fR +.sp +Option to use for testing bugs in the +getopt +library\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_client_test: host option +.\" host option: mysql_client_test +\fB\-\-host=\fR\fB\fIhost_name\fR\fR, +\fB\-h \fR\fB\fIhost_name\fR\fR +.sp +Connect to the MySQL server on the given host\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_client_test: password option +.\" password option: mysql_client_test +\fB\-\-password[=\fR\fB\fIpassword\fR\fR\fB]\fR, +\fB\-p[\fR\fB\fIpassword\fR\fR\fB]\fR +.sp +The password to use when connecting to the server\&. If you use the short option form (\fB\-p\fR), you +\fIcannot\fR +have a space between the option and the password\&. If you omit the +\fIpassword\fR +value following the +.\" mysql_client_test: password option +.\" password option: mysql_client_test +\fB\-\-password\fR +or +\fB\-p\fR +option on the command line, you are prompted for one\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_client_test: port option +.\" port option: mysql_client_test +\fB\-\-port=\fR\fB\fIport_num\fR\fR, +\fB\-P \fR\fB\fIport_num\fR\fR +.sp +The TCP/IP port number to use for the connection\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-\-server\-arg=\fR\fB\fIarg\fR\fR, +.\" mysql_client_test: server-arg option +.\" server-arg option: mysql_client_test +\fB\-A \fR\fB\fIarg\fR\fR +.sp +Argument to send to the embedded server\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-\-show\-tests\fR, +\fB\-T\fR +.sp +Show all test names\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_client_test: silent option +.\" silent option: mysql_client_test +\fB\-\-silent\fR, +\fB\-s\fR +.sp +Be more silent\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_client_test: socket option +.\" socket option: mysql_client_test +\fB\-\-socket=\fR\fB\fIpath\fR\fR, +\fB\-S \fR\fB\fIpath\fR\fR +.sp +The socket file to use when connecting to +localhost +(which is the default host)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-\-testcase\fR, +\fB\-c\fR +.sp +The option is used when called from +\fBmysql\-test\-run\&.pl\fR, so that +\fBmysql_client_test\fR +may optionally behave in a different way than if called manually, for example by skipping some tests\&. Currently, there is no difference in behavior but the option is included in order to make this possible\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_client_test: user option +.\" user option: mysql_client_test +\fB\-\-user=\fR\fB\fIuser_name\fR\fR, +\fB\-u \fR\fB\fIuser_name\fR\fR +.sp +The MySQL user name to use when connecting to the server\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-v \fR\fB\fIdir_name\fR\fR, +.\" mysql_client_test: vardir option +.\" vardir option: mysql_client_test +\fB\-\-vardir=\fR\fB\fIdir_name\fR\fR +.sp +The data directory for tests\&. The default is +mysql\-test/var\&. +.RE +.SH "COPYRIGHT" +.br +.PP +Copyright \(co 2007, 2010, Oracle and/or its affiliates +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/mysql_client_test_embedded.1 b/database/man/man1/mysql_client_test_embedded.1 new file mode 100644 index 0000000..41f5280 --- /dev/null +++ b/database/man/man1/mysql_client_test_embedded.1 @@ -0,0 +1 @@ +.so man1/mysql_client_test.1 diff --git a/database/man/man1/mysql_config.1 b/database/man/man1/mysql_config.1 new file mode 100644 index 0000000..8bd5cd3 --- /dev/null +++ b/database/man/man1/mysql_config.1 @@ -0,0 +1,256 @@ +'\" t +.\" Title: \fBmysql_config\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBMYSQL_CONFIG\FR" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" mysql_config +.SH "NAME" +mysql_config \- get compile options for compiling clients +.SH "SYNOPSIS" +.HP \w'\fBmysql_config\ \fR\fB\fIoptions\fR\fR\ 'u +\fBmysql_config \fR\fB\fIoptions\fR\fR +.SH "DESCRIPTION" +.PP +\fBmysql_config\fR +provides you with useful information for compiling your MySQL client and connecting it to MySQL\&. +.PP +\fBmysql_config\fR +supports the following options\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_config: cflags option +.\" cflags option: mysql_config +\fB\-\-cflags\fR +.sp +Compiler flags to find include files and critical compiler flags and defines used when compiling the +libmysqlclient +library\&. The options returned are tied to the specific compiler that was used when the library was created and might clash with the settings for your own compiler\&. Use +\fB\-\-include\fR +for more portable options that contain only include paths\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_config: include option +.\" include option: mysql_config +\fB\-\-include\fR +.sp +Compiler options to find MySQL include files\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_config: libmysqld-libs option +.\" libmysqld-libs option: mysql_config +.\" mysql_config: embedded option +.\" embedded option: mysql_config +\fB\-\-libmysqld\-libs\fR, +\fB\-\-embedded\fR +.sp +Libraries and options required to link with the MySQL embedded server\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_config: libs option +.\" libs option: mysql_config +\fB\-\-libs\fR +.sp +Libraries and options required to link with the MySQL client library\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_config: libs_r option +.\" libs_r option: mysql_config +\fB\-\-libs_r\fR +.sp +Libraries and options required to link with the thread\-safe MySQL client library\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_config: plugindir option +.\" plugindir option: mysql_config +\fB\-\-plugindir\fR +.sp +The default plugin directory path name, defined when configuring MySQL\&. This option was added in MySQL 5\&.1\&.24\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_config: port option +.\" port option: mysql_config +\fB\-\-port\fR +.sp +The default TCP/IP port number, defined when configuring MySQL\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_config: socket option +.\" socket option: mysql_config +\fB\-\-socket\fR +.sp +The default Unix socket file, defined when configuring MySQL\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_config: variable option +.\" variable option: mysql_config +\fB\-\-variable=VAR\fR +.sp +Path to MySQL include, library and plugin directories\&. \fBVAR\fR is one of +`pkgincludedir`, `pkglibdir` and `plugindir`, respectively\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_config: version option +.\" version option: mysql_config +\fB\-\-version\fR +.sp +Version number for the MySQL distribution\&. +.RE +.PP +If you invoke +\fBmysql_config\fR +with no options, it displays a list of all options that it supports, and their values: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql_config\fR +Usage: /usr/local/mysql/bin/mysql_config [options] +Options: + \-\-cflags [\-I/usr/local/mysql/include/mysql \-mcpu=pentiumpro] + \-\-include [\-I/usr/local/mysql/include/mysql] + \-\-libs [\-L/usr/local/mysql/lib/mysql \-lmysqlclient \-lz + \-lcrypt \-lnsl \-lm \-L/usr/lib \-lssl \-lcrypto] + \-\-libs_r [\-L/usr/local/mysql/lib/mysql \-lmysqlclient_r + \-lpthread \-lz \-lcrypt \-lnsl \-lm \-lpthread] + \-\-socket [/tmp/mysql\&.sock] + \-\-port [3306] + \-\-version [4\&.0\&.16] + \-\-libmysqld\-libs [\-L/usr/local/mysql/lib/mysql \-lmysqld \-lpthread \-lz + \-lcrypt \-lnsl \-lm \-lpthread \-lrt] +.fi +.if n \{\ +.RE +.\} +.PP +You can use +\fBmysql_config\fR +within a command line to include the value that it displays for a particular option\&. For example, to compile a MySQL client program, use +\fBmysql_config\fR +as follows: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBCFG=/usr/local/mysql/bin/mysql_config\fR +shell> \fBsh \-c "gcc \-o progname `$CFG \-\-include` progname\&.c `$CFG \-\-libs`"\fR +.fi +.if n \{\ +.RE +.\} +.PP +When you use +\fBmysql_config\fR +this way, be sure to invoke it within backtick (\(lq`\(rq) characters\&. That tells the shell to execute it and substitute its output into the surrounding command\&. +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/mysql_convert_table_format.1 b/database/man/man1/mysql_convert_table_format.1 new file mode 100644 index 0000000..f373dc4 --- /dev/null +++ b/database/man/man1/mysql_convert_table_format.1 @@ -0,0 +1,232 @@ +'\" t +.\" Title: \fBmysql_convert_table_format\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBMYSQL_CONVERT_TAB" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" mysql_convert_table_format +.SH "NAME" +mysql_convert_table_format \- convert tables to use a given storage engine +.SH "SYNOPSIS" +.HP \w'\fBmysql_convert_table_format\ [\fR\fB\fIoptions\fR\fR\fB]\ \fR\fB\fIdb_name\fR\fR\ 'u +\fBmysql_convert_table_format [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIdb_name\fR\fR +.SH "DESCRIPTION" +.PP +\fBmysql_convert_table_format\fR +converts the tables in a database to use a particular storage engine (MyISAM +by default)\&. +\fBmysql_convert_table_format\fR +is written in Perl and requires that the +DBI +and +DBD::mysql +Perl modules be installed (see +Section\ \&2.15, \(lqPerl Installation Notes\(rq)\&. +.PP +Invoke +\fBmysql_convert_table_format\fR +like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql_convert_table_format [\fR\fB\fIoptions\fR\fR\fB]\fR\fB\fIdb_name\fR\fR +.fi +.if n \{\ +.RE +.\} +.PP +The +\fIdb_name\fR +argument indicates the database containing the tables to be converted\&. +.PP +\fBmysql_convert_table_format\fR +supports the options described in the following list\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_convert_table_format: help option +.\" help option: mysql_convert_table_format +\fB\-\-help\fR +.sp +Display a help message and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_convert_table_format: force option +.\" force option: mysql_convert_table_format +\fB\-\-force\fR +.sp +Continue even if errors occur\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_convert_table_format: host option +.\" host option: mysql_convert_table_format +\fB\-\-host=\fR\fB\fIhost_name\fR\fR +.sp +Connect to the MySQL server on the given host\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_convert_table_format: password option +.\" password option: mysql_convert_table_format +\fB\-\-password=\fR\fB\fIpassword\fR\fR +.sp +The password to use when connecting to the server\&. Note that the password value is not optional for this option, unlike for other MySQL programs\&. +.sp +Specifying a password on the command line should be considered insecure\&. See +Section\ \&5.3.2.2, \(lqEnd-User Guidelines for Password Security\(rq\&. You can use an option file to avoid giving the password on the command line\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_convert_table_format: port option +.\" port option: mysql_convert_table_format +\fB\-\-port=\fR\fB\fIport_num\fR\fR +.sp +The TCP/IP port number to use for the connection\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_convert_table_format: socket option +.\" socket option: mysql_convert_table_format +\fB\-\-socket=\fR\fB\fIpath\fR\fR +.sp +For connections to +localhost, the Unix socket file to use\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_convert_table_format: type option +.\" type option: mysql_convert_table_format +\fB\-\-type=\fR\fB\fIengine_name\fR\fR +.sp +Specify the storage engine that the tables should be converted to use\&. The default is +MyISAM +if this option is not given\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_convert_table_format: user option +.\" user option: mysql_convert_table_format +\fB\-\-user=\fR\fB\fIuser_name\fR\fR +.sp +The MySQL user name to use when connecting to the server\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_convert_table_format: verbose option +.\" verbose option: mysql_convert_table_format +\fB\-\-verbose\fR +.sp +Verbose mode\&. Print more information about what the program does\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_convert_table_format: version option +.\" version option: mysql_convert_table_format +\fB\-\-version\fR +.sp +Display version information and exit\&. +.RE +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/mysql_find_rows.1 b/database/man/man1/mysql_find_rows.1 new file mode 100644 index 0000000..4ab4f9f --- /dev/null +++ b/database/man/man1/mysql_find_rows.1 @@ -0,0 +1,167 @@ +'\" t +.\" Title: \fBmysql_find_rows\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBMYSQL_FIND_ROWS\F" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" mysql_find_rows +.SH "NAME" +mysql_find_rows \- extract SQL statements from files +.SH "SYNOPSIS" +.HP \w'\fBmysql_find_rows\ [\fR\fB\fIoptions\fR\fR\fB]\ [\fR\fB\fIfile_name\fR\fR\fB\ \&.\&.\&.]\fR\ 'u +\fBmysql_find_rows [\fR\fB\fIoptions\fR\fR\fB] [\fR\fB\fIfile_name\fR\fR\fB \&.\&.\&.]\fR +.SH "DESCRIPTION" +.PP +\fBmysql_find_rows\fR +reads files containing SQL statements and extracts statements that match a given regular expression or that contain +USE \fIdb_name\fR +or +SET +statements\&. The utility was written for use with update log files (as used prior to MySQL 5\&.0) and as such expects statements to be terminated with semicolon (;) characters\&. It may be useful with other files that contain SQL statements as long as statements are terminated with semicolons\&. +.PP +Invoke +\fBmysql_find_rows\fR +like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql_find_rows [\fR\fB\fIoptions\fR\fR\fB] [\fR\fB\fIfile_name\fR\fR\fB \&.\&.\&.]\fR +.fi +.if n \{\ +.RE +.\} +.PP +Each +\fIfile_name\fR +argument should be the name of file containing SQL statements\&. If no file names are given, +\fBmysql_find_rows\fR +reads the standard input\&. +.PP +Examples: +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql_find_rows \-\-regexp=problem_table \-\-rows=20 < update\&.log +mysql_find_rows \-\-regexp=problem_table update\-log\&.1 update\-log\&.2 +.fi +.if n \{\ +.RE +.\} +.PP +\fBmysql_find_rows\fR +supports the following options: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_find_rows: help option +.\" help option: mysql_find_rows +\fB\-\-help\fR, +\fB\-\-Information\fR +.sp +Display a help message and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_find_rows: regexp option +.\" regexp option: mysql_find_rows +\fB\-\-regexp=\fR\fB\fIpattern\fR\fR +.sp +Display queries that match the pattern\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_find_rows: rows option +.\" rows option: mysql_find_rows +\fB\-\-rows=\fR\fB\fIN\fR\fR +.sp +Quit after displaying +\fIN\fR +queries\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_find_rows: skip-use-db option +.\" skip-use-db option: mysql_find_rows +\fB\-\-skip\-use\-db\fR +.sp +Do not include +USE \fIdb_name\fR +statements in the output\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_find_rows: start_row option +.\" start_row option: mysql_find_rows +\fB\-\-start_row=\fR\fB\fIN\fR\fR +.sp +Start output from this row\&. +.RE +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/mysql_fix_extensions.1 b/database/man/man1/mysql_fix_extensions.1 new file mode 100644 index 0000000..aeb91ad --- /dev/null +++ b/database/man/man1/mysql_fix_extensions.1 @@ -0,0 +1,77 @@ +'\" t +.\" Title: \fBmysql_fix_extensions\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBMYSQL_FIX_EXTENSI" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" mysql_fix_extensions +.SH "NAME" +mysql_fix_extensions \- normalize table file name extensions +.SH "SYNOPSIS" +.HP \w'\fBmysql_fix_extensions\ \fR\fB\fIdata_dir\fR\fR\ 'u +\fBmysql_fix_extensions \fR\fB\fIdata_dir\fR\fR +.SH "DESCRIPTION" +.PP +\fBmysql_fix_extensions\fR +converts the extensions for +MyISAM +(or +ISAM) table files to their canonical forms\&. It looks for files with extensions matching any lettercase variant of +\&.frm, +\&.myd, +\&.myi, +\&.isd, and +\&.ism +and renames them to have extensions of +\&.frm, +\&.MYD, +\&.MYI, +\&.ISD, and +\&.ISM, respectively\&. This can be useful after transferring the files from a system with case\-insensitive file names (such as Windows) to a system with case\-sensitive file names\&. +.PP +Invoke +\fBmysql_fix_extensions\fR +like this, where +\fIdata_dir\fR +is the path name to the MySQL data directory\&. +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql_fix_extensions \fR\fB\fIdata_dir\fR\fR +.fi +.if n \{\ +.RE +.\} +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/mysql_install_db.1 b/database/man/man1/mysql_install_db.1 new file mode 100644 index 0000000..b343f98 --- /dev/null +++ b/database/man/man1/mysql_install_db.1 @@ -0,0 +1,268 @@ +'\" t +.\" Title: \fBmysql_install_db\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBMYSQL_INSTALL_DB\" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" mysql_install_db +.SH "NAME" +mysql_install_db \- initialize MySQL data directory +.SH "SYNOPSIS" +.HP \w'\fBmysql_install_db\ [\fR\fB\fIoptions\fR\fR\fB]\fR\ 'u +\fBmysql_install_db [\fR\fB\fIoptions\fR\fR\fB]\fR +.SH "DESCRIPTION" +.PP +\fBmysql_install_db\fR +initializes the MySQL data directory and creates the system tables that it contains, if they do not exist\&. +.PP +To invoke +\fBmysql_install_db\fR, use the following syntax: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql_install_db [\fR\fB\fIoptions\fR\fR\fB]\fR +.fi +.if n \{\ +.RE +.\} +.PP +Because the MySQL server, +\fBmysqld\fR, needs to access the data directory when it runs later, you should either run +\fBmysql_install_db\fR +from the same account that will be used for running +\fBmysqld\fR +or run it as +root +and use the +\fB\-\-user\fR +option to indicate the user name that +\fBmysqld\fR +will run as\&. It might be necessary to specify other options such as +\fB\-\-basedir\fR +or +\fB\-\-datadir\fR +if +\fBmysql_install_db\fR +does not use the correct locations for the installation directory or data directory\&. For example: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBbin/mysql_install_db \-\-user=mysql \e\fR + \fB\-\-basedir=/opt/mysql/mysql \e\fR + \fB\-\-datadir=/opt/mysql/mysql/data\fR +.fi +.if n \{\ +.RE +.\} +.PP +\fBmysql_install_db\fR +needs to invoke +\fBmysqld\fR +with the +\fB\-\-bootstrap\fR +and +\fB\-\-skip\-grant\-tables\fR +options (see +Section\ \&2.3.2, \(lqTypical configure Options\(rq)\&. If MySQL was configured with the +\fB\-\-disable\-grant\-options\fR +option, +\fB\-\-bootstrap\fR +and +\fB\-\-skip\-grant\-tables\fR +will be disabled\&. To handle this, set the +MYSQLD_BOOTSTRAP +environment variable to the full path name of a server that has all options enabled\&. +\fBmysql_install_db\fR +will use that server\&. +.PP +\fBmysql_install_db\fR +supports the following options, which can be specified on the command line or in the +[mysql_install_db] +and (if they are common to +\fBmysqld\fR) +[mysqld] +option file groups\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_install_db: basedir option +.\" basedir option: mysql_install_db +\fB\-\-basedir=\fR\fB\fIpath\fR\fR +.sp +The path to the MySQL installation directory\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_install_db: force option +.\" force option: mysql_install_db +\fB\-\-force\fR +.sp +Cause +\fBmysql_install_db\fR +to run even if DNS does not work\&. In that case, grant table entries that normally use host names will use IP addresses\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_install_db: datadir option +.\" datadir option: mysql_install_db +.\" mysql_install_db: ldata option +.\" ldata option: mysql_install_db +\fB\-\-datadir=\fR\fB\fIpath\fR\fR, +\fB\-\-ldata=\fR\fB\fIpath\fR\fR +.sp +The path to the MySQL data directory\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_install_db: rpm option +.\" rpm option: mysql_install_db +\fB\-\-rpm\fR +.sp +For internal use\&. This option is used by RPM files during the MySQL installation process\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_install_db: skip-name-resolve option +.\" skip-name-resolve option: mysql_install_db +\fB\-\-skip\-name\-resolve\fR +.sp +Use IP addresses rather than host names when creating grant table entries\&. This option can be useful if your DNS does not work\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_install_db: srcdir option +.\" srcdir option: mysql_install_db +\fB\-\-srcdir=\fR\fB\fIpath\fR\fR +.sp +For internal use\&. The directory under which +\fBmysql_install_db\fR +looks for support files such as the error message file and the file for populating the help tables\&. This option was added in MySQL 5\&.1\&.14\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_install_db: user option +.\" user option: mysql_install_db +\fB\-\-user=\fR\fB\fIuser_name\fR\fR +.sp +The login user name to use for running +\fBmysqld\fR\&. Files and directories created by +\fBmysqld\fR +will be owned by this user\&. You must be +root +to use this option\&. By default, +\fBmysqld\fR +runs using your current login name and files and directories that it creates will be owned by you\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_install_db: verbose option +.\" verbose option: mysql_install_db +\fB\-\-verbose\fR +.sp +Verbose mode\&. Print more information about what the program does\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_install_db: windows option +.\" windows option: mysql_install_db +\fB\-\-windows\fR +.sp +For internal use\&. This option is used for creating Windows distributions\&. +.RE +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/mysql_plugin.1 b/database/man/man1/mysql_plugin.1 new file mode 100644 index 0000000..577e661 --- /dev/null +++ b/database/man/man1/mysql_plugin.1 @@ -0,0 +1,388 @@ +'\" t +.\" Title: \fBmysql_plugin\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.77.1 +.\" Date: 01/16/2013 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.5 +.\" Language: English +.\" +.TH "\FBMYSQL_PLUGIN\FR" "1" "01/16/2013" "MySQL 5\&.5" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" mysql_plugin +.SH "NAME" +mysql_plugin \- configure MySQL server plugins +.SH "SYNOPSIS" +.HP \w'\fBmysql_plugin\ [\fR\fB\fIoptions\fR\fR\fB]\ \fR\fB\fIplugin\fR\fR\fB\ {ENABLE|DISABLE}\fR\ 'u +\fBmysql_plugin [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIplugin\fR\fR\fB {ENABLE|DISABLE}\fR +.SH "DESCRIPTION" +.PP +The +\fBmysql_plugin\fR +utility enables MySQL administrators to manage which plugins a MySQL server loads\&. It provides an alternative to manually specifying the +\fB\-\-plugin\-load\fR +option at server startup or using the +INSTALL PLUGIN +and +UNINSTALL PLUGIN +statements at runtime\&. +\fBmysql_plugin\fR +is available as of MySQL 5\&.5\&.16\&. +.PP +Depending on whether +\fBmysql_plugin\fR +is invoked to enable or disable plugins, it inserts or deletes rows in the +mysql\&.plugin +table that serves as a plugin registry\&. (To perform this operation, +\fBmysql_plugin\fR +invokes the MySQL server in bootstrap mode\&. This means that the server must not already be running\&.) For normal server startups, the server loads and enables plugins listed in +mysql\&.plugin +automatically\&. For additional control over plugin activation, use +\fB\-\-\fR\fB\fIplugin_name\fR\fR +options named for specific plugins, as described in +Section\ \&5.1.8.1, \(lqInstalling and Uninstalling Plugins\(rq\&. +.PP +Each invocation of +\fBmysql_plugin\fR +reads a configuration file to determine how to configure the plugins contained in a single plugin library object file\&. To invoke +\fBmysql_plugin\fR, use this syntax: +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql_plugin [\fIoptions\fR] \fIplugin\fR {ENABLE|DISABLE} +.fi +.if n \{\ +.RE +.\} +.PP +\fIplugin\fR +is the name of the plugin to configure\&. +ENABLE +or +DISABLE +(not case sensitive) specify whether to enable or disable components of the plugin library named in the configuration file\&. The order of the +\fIplugin\fR +and +ENABLE +or +DISABLE +arguments does not matter\&. +.PP +For example, to configure components of a plugin library file named +myplugins\&.so +on Linux or +myplugins\&.dll +on Windows, specify a +\fIplugin\fR +value of +myplugins\&. Suppose that this plugin library contains three plugins, +plugin1, +plugin2, and +plugin3, all of which should be configured under +\fBmysql_plugin\fR +control\&. By convention, configuration files have a suffix of +\&.ini +and the same basename as the plugin library, so the default configuration file name for this plugin library is +myplugins\&.ini\&. The configuration file contents look like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +myplugins +plugin1 +plugin2 +plugin3 +.fi +.if n \{\ +.RE +.\} +.PP +The first line in the +myplugins\&.ini +file is the name of the library object file, without any extension such as +\&.so +or +\&.dll\&. The remaining lines are the names of the components to be enabled or disabled\&. Each value in the file should be on a separate line\&. Lines on which the first character is +\*(Aq#\*(Aq +are taken as comments and ignored\&. +.PP +To enable the plugins listed in the configuration file, invoke +\fBmysql_plugin\fR +this way: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql_plugin myplugins ENABLE\fR +.fi +.if n \{\ +.RE +.\} +.PP +To disable the plugins, use +DISABLE +rather than +ENABLE\&. +.PP +An error occurs if +\fBmysql_plugin\fR +cannot find the configuration file or plugin library file, or if +\fBmysql_plugin\fR +cannot start the MySQL server\&. +.PP +\fBmysql_plugin\fR +supports the following options, which can be specified on the command line or in the +[mysqld] +group of any option file\&. For options specified in a +[mysqld] +group, +\fBmysql_plugin\fR +recognizes the +\fB\-\-basedir\fR, +\fB\-\-datadir\fR, and +\fB\-\-plugin\-dir\fR +options and ignores others\&. For information about option files, see +Section\ \&4.2.3.3, \(lqUsing Option Files\(rq\&. +.PP +mysql_plugin Options +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_plugin: help option +.\" help option: mysql_plugin +\fB\-\-help\fR, +\fB\-?\fR +.sp +Display a help message and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_plugin: basedir option +.\" basedir option: mysql_plugin +\fB\-\-basedir=\fR\fB\fIpath\fR\fR, +\fB\-b \fR\fB\fIpath\fR\fR +.sp +The server base directory\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_plugin: datadir option +.\" datadir option: mysql_plugin +\fB\-\-datadir=\fR\fB\fIpath\fR\fR, +\fB\-d \fR\fB\fIpath\fR\fR +.sp +The server data directory\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_plugin: my-print-defaults option +.\" my-print-defaults option: mysql_plugin +\fB\-\-my\-print\-defaults=\fR\fB\fIpath\fR\fR, +\fB\-b \fR\fB\fIpath\fR\fR +.sp +The path to the +\fBmy_print_defaults\fR +program\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_plugin: mysqld option +.\" mysqld option: mysql_plugin +\fB\-\-mysqld=\fR\fB\fIpath\fR\fR, +\fB\-b \fR\fB\fIpath\fR\fR +.sp +The path to the +\fBmysqld\fR +server\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_plugin: no-defaults option +.\" no-defaults option: mysql_plugin +\fB\-\-no\-defaults\fR, +\fB\-p\fR +.sp +Do not read values from the configuration file\&. This option enables an administrator to skip reading defaults from the configuration file\&. +.sp +With +\fBmysql_plugin\fR, this option need not be given first on the command line, unlike most other MySQL programs that support +\fB\-\-no\-defaults\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_plugin: plugin-dir option +.\" plugin-dir option: mysql_plugin +\fB\-\-plugin\-dir=\fR\fB\fIpath\fR\fR, +\fB\-p \fR\fB\fIpath\fR\fR +.sp +The server plugin directory\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_plugin: plugin-ini option +.\" plugin-ini option: mysql_plugin +\fB\-\-plugin\-ini=\fR\fB\fIfile_name\fR\fR, +\fB\-i \fR\fB\fIfile_name\fR\fR +.sp +The +\fBmysql_plugin\fR +configuration file\&. Relative path names are interpreted relative to the current directory\&. If this option is not given, the default is +\fIplugin\fR\&.ini +in the plugin directory, where +\fIplugin\fR +is the +\fIplugin\fR +argument on the command line\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_plugin: print-defaults option +.\" print-defaults option: mysql_plugin +\fB\-\-print\-defaults\fR, +\fB\-P\fR +.sp +Display the default values from the configuration file\&. This option causes +\fBmysql_plugin\fR +to print the defaults for +\fB\-\-basedir\fR, +\fB\-\-datadir\fR, and +\fB\-\-plugin\-dir\fR +if they are found in the configuration file\&. If no value for a variable is found, nothing is shown\&. +.sp +With +\fBmysql_plugin\fR, this option need not be given first on the command line, unlike most other MySQL programs that support +\fB\-\-print\-defaults\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_plugin: verbose option +.\" verbose option: mysql_plugin +\fB\-\-verbose\fR, +\fB\-v\fR +.sp +Verbose mode\&. Print more information about what the program does\&. This option can be used multiple times to increase the amount of information\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_plugin: version option +.\" version option: mysql_plugin +\fB\-\-version\fR, +\fB\-V\fR +.sp +Display version information and exit\&. +.RE +.SH "COPYRIGHT" +.br +.PP +Copyright \(co 1997, 2013, Oracle and/or its affiliates. All rights reserved. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Oracle Corporation (http://dev.mysql.com/). diff --git a/database/man/man1/mysql_secure_installation.1 b/database/man/man1/mysql_secure_installation.1 new file mode 100644 index 0000000..f0da871 --- /dev/null +++ b/database/man/man1/mysql_secure_installation.1 @@ -0,0 +1,112 @@ +'\" t +.\" Title: \fBmysql_secure_installation\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBMYSQL_SECURE_INST" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" mysql_secure_installation +.SH "NAME" +mysql_secure_installation \- improve MySQL installation security +.SH "SYNOPSIS" +.HP \w'\fBmysql_secure_installation\fR\ 'u +\fBmysql_secure_installation\fR +.SH "DESCRIPTION" +.PP +This program enables you to improve the security of your MySQL installation in the following ways: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +You can set a password for +root +accounts\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +You can remove +root +accounts that are accessible from outside the local host\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +You can remove anonymous\-user accounts\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +You can remove the +test +database, which by default can be accessed by anonymous users\&. +.RE +.PP +Invoke +\fBmysql_secure_installation\fR +without arguments: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql_secure_installation\fR +.fi +.if n \{\ +.RE +.\} +.PP +The script will prompt you to determine which actions to perform\&. +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/mysql_setpermission.1 b/database/man/man1/mysql_setpermission.1 new file mode 100644 index 0000000..4d3165b --- /dev/null +++ b/database/man/man1/mysql_setpermission.1 @@ -0,0 +1,179 @@ +'\" t +.\" Title: \fBmysql_setpermission\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBMYSQL_SETPERMISSI" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" mysql_setpermission +.SH "NAME" +mysql_setpermission \- interactively set permissions in grant tables +.SH "SYNOPSIS" +.HP \w'\fBmysql_setpermission\ [\fR\fB\fIoptions\fR\fR\fB]\fR\ 'u +\fBmysql_setpermission [\fR\fB\fIoptions\fR\fR\fB]\fR +.SH "DESCRIPTION" +.PP +\fBmysql_setpermission\fR +is a Perl script that was originally written and contributed by Luuk de Boer\&. It interactively sets permissions in the MySQL grant tables\&. +\fBmysql_setpermission\fR +is written in Perl and requires that the +DBI +and +DBD::mysql +Perl modules be installed (see +Section\ \&2.15, \(lqPerl Installation Notes\(rq)\&. +.PP +Invoke +\fBmysql_setpermission\fR +like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql_setpermission [\fR\fB\fIoptions\fR\fR\fB]\fR +.fi +.if n \{\ +.RE +.\} +.PP +\fIoptions\fR +should be either +\fB\-\-help\fR +to display the help message, or options that indicate how to connect to the MySQL server\&. The account used when you connect determines which permissions you have when attempting to modify existing permissions in the grant tables\&. +.PP +\fBmysql_setpermissions\fR +also reads options from the +[client] +and +[perl] +groups in the +\&.my\&.cnf +file in your home directory, if the file exists\&. +.PP +\fBmysql_setpermission\fR +supports the following options: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_setpermission: help option +.\" help option: mysql_setpermission +\fB\-\-help\fR +.sp +Display a help message and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_setpermission: host option +.\" host option: mysql_setpermission +\fB\-\-host=\fR\fB\fIhost_name\fR\fR +.sp +Connect to the MySQL server on the given host\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_setpermission: password option +.\" password option: mysql_setpermission +\fB\-\-password=\fR\fB\fIpassword\fR\fR +.sp +The password to use when connecting to the server\&. Note that the password value is not optional for this option, unlike for other MySQL programs\&. +.sp +Specifying a password on the command line should be considered insecure\&. See +Section\ \&5.3.2.2, \(lqEnd-User Guidelines for Password Security\(rq\&. You can use an option file to avoid giving the password on the command line\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_setpermission: port option +.\" port option: mysql_setpermission +\fB\-\-port=\fR\fB\fIport_num\fR\fR +.sp +The TCP/IP port number to use for the connection\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_setpermission: socket option +.\" socket option: mysql_setpermission +\fB\-\-socket=\fR\fB\fIpath\fR\fR +.sp +For connections to +localhost, the Unix socket file to use\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_setpermission: user option +.\" user option: mysql_setpermission +\fB\-\-user=\fR\fB\fIuser_name\fR\fR +.sp +The MySQL user name to use when connecting to the server\&. +.RE +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/mysql_tzinfo_to_sql.1 b/database/man/man1/mysql_tzinfo_to_sql.1 new file mode 100644 index 0000000..4b25358 --- /dev/null +++ b/database/man/man1/mysql_tzinfo_to_sql.1 @@ -0,0 +1,129 @@ +'\" t +.\" Title: \fBmysql_tzinfo_to_sql\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBMYSQL_TZINFO_TO_S" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" mysql_tzinfo_to_sql +.\" time zone tables +.SH "NAME" +mysql_tzinfo_to_sql \- load the time zone tables +.SH "SYNOPSIS" +.HP \w'\fBmysql_tzinfo_to_sql\ \fR\fB\fIarguments\fR\fR\ 'u +\fBmysql_tzinfo_to_sql \fR\fB\fIarguments\fR\fR +.SH "DESCRIPTION" +.PP +The +\fBmysql_tzinfo_to_sql\fR +program loads the time zone tables in the +mysql +database\&. It is used on systems that have a +zoneinfo +database (the set of files describing time zones)\&. Examples of such systems are Linux, FreeBSD, Solaris, and Mac OS X\&. One likely location for these files is the +/usr/share/zoneinfo +directory (/usr/share/lib/zoneinfo +on Solaris)\&. If your system does not have a zoneinfo database, you can use the downloadable package described in +Section\ \&9.6, \(lqMySQL Server Time Zone Support\(rq\&. +.PP +\fBmysql_tzinfo_to_sql\fR +can be invoked several ways: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql_tzinfo_to_sql \fR\fB\fItz_dir\fR\fR +shell> \fBmysql_tzinfo_to_sql \fR\fB\fItz_file tz_name\fR\fR +shell> \fBmysql_tzinfo_to_sql \-\-leap \fR\fB\fItz_file\fR\fR +.fi +.if n \{\ +.RE +.\} +.PP +For the first invocation syntax, pass the zoneinfo directory path name to +\fBmysql_tzinfo_to_sql\fR +and send the output into the +\fBmysql\fR +program\&. For example: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql_tzinfo_to_sql /usr/share/zoneinfo | mysql \-u root mysql\fR +.fi +.if n \{\ +.RE +.\} +.PP +\fBmysql_tzinfo_to_sql\fR +reads your system\'s time zone files and generates SQL statements from them\&. +\fBmysql\fR +processes those statements to load the time zone tables\&. +.PP +The second syntax causes +\fBmysql_tzinfo_to_sql\fR +to load a single time zone file +\fItz_file\fR +that corresponds to a time zone name +\fItz_name\fR: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql_tzinfo_to_sql \fR\fB\fItz_file\fR\fR\fB \fR\fB\fItz_name\fR\fR\fB | mysql \-u root mysql\fR +.fi +.if n \{\ +.RE +.\} +.PP +If your time zone needs to account for leap seconds, invoke +\fBmysql_tzinfo_to_sql\fR +using the third syntax, which initializes the leap second information\&. +\fItz_file\fR +is the name of your time zone file: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql_tzinfo_to_sql \-\-leap \fR\fB\fItz_file\fR\fR\fB | mysql \-u root mysql\fR +.fi +.if n \{\ +.RE +.\} +.PP +After running +\fBmysql_tzinfo_to_sql\fR, it is best to restart the server so that it does not continue to use any previously cached time zone data\&. +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/mysql_upgrade.1 b/database/man/man1/mysql_upgrade.1 new file mode 100644 index 0000000..daa2b68 --- /dev/null +++ b/database/man/man1/mysql_upgrade.1 @@ -0,0 +1,411 @@ +'\" t +.\" Title: \fBmysql_upgrade\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBMYSQL_UPGRADE\FR" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" mysql_upgrade +.\" upgrading MySQL +.\" MySQL: upgrading +.SH "NAME" +mysql_upgrade \- check tables for MySQL upgrade +.SH "SYNOPSIS" +.HP \w'\fBmysql_upgrade\ [\fR\fB\fIoptions\fR\fR\fB]\fR\ 'u +\fBmysql_upgrade [\fR\fB\fIoptions\fR\fR\fB]\fR +.SH "DESCRIPTION" +.PP +\fBmysql_upgrade\fR +examines all tables in all databases for incompatibilities with the current version of MySQL Server\&. +\fBmysql_upgrade\fR +also upgrades the system tables so that you can take advantage of new privileges or capabilities that might have been added\&. +.PP +\fBmysql_upgrade\fR +should be executed each time you upgrade MySQL\&. It supersedes the older +\fBmysql_fix_privilege_tables\fR +script, which should no longer be used\&. +.PP +If a table is found to have a possible incompatibility, +\fBmysql_upgrade\fR +performs a table check\&. If any problems are found, a table repair is attempted\&. If the table cannot be repaired, see +Section\ \&2.4.4, \(lqRebuilding or Repairing Tables or Indexes\(rq +for manual table repair strategies\&. +.if n \{\ +.sp +.\} +.RS 4 +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +.ps +1 +\fBNote\fR +.ps -1 +.br +.PP +On Windows Server 2008 and Windows Vista, you must run +\fBmysql_upgrade\fR +with administrator privileges\&. You can do this by running a Command Prompt as Administrator and running the command\&. Failure to do so may result in the upgrade failing to execute correctly\&. +.sp .5v +.RE +.if n \{\ +.sp +.\} +.RS 4 +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +.ps +1 +\fBCaution\fR +.ps -1 +.br +.PP +You should always back up your current MySQL installation +\fIbefore\fR +performing an upgrade\&. See +Section\ \&6.2, \(lqDatabase Backup Methods\(rq\&. +.PP +Some upgrade incompatibilities may require special handling before you upgrade your MySQL installation and run +\fBmysql_upgrade\fR\&. See +Section\ \&2.4.1, \(lqUpgrading MySQL\(rq, for instructions on determining whether any such incompatibilities apply to your installation and how to handle them\&. +.sp .5v +.RE +.PP +To use +\fBmysql_upgrade\fR, make sure that the server is running, and then invoke it like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql_upgrade [\fR\fB\fIoptions\fR\fR\fB]\fR +.fi +.if n \{\ +.RE +.\} +.PP +After running +\fBmysql_upgrade\fR, stop the server and restart it so that any changes made to the system tables take effect\&. +.PP +\fBmysql_upgrade\fR +executes the following commands to check and repair tables and to upgrade the system tables: +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysqlcheck \-\-all\-databases \-\-check\-upgrade \-\-auto\-repair +mysql < \fIfix_priv_tables\fR +mysqlcheck \-\-all\-databases \-\-check\-upgrade \-\-fix\-db\-names \-\-fix\-table\-names +.fi +.if n \{\ +.RE +.\} +.PP +Notes about the preceding commands: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Because +\fBmysql_upgrade\fR +invokes +\fBmysqlcheck\fR +with the +\fB\-\-all\-databases\fR +option, it processes all tables in all databases, which might take a long time to complete\&. Each table is locked and therefore unavailable to other sessions while it is being processed\&. Check and repair operations can be time\-consuming, particularly for large tables\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +For details about what checks the +\fB\-\-check\-upgrade\fR +option entails, see the description of the +FOR UPGRADE +option of the +CHECK TABLE +statement (see +Section\ \&12.4.2.3, \(lqCHECK TABLE Syntax\(rq)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fIfix_priv_tables\fR +represents a script generated internally by +\fBmysql_upgrade\fR +that contains SQL statements to upgrade the tables in the +mysql +database\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Prior to MySQL 5\&.1\&.31, +\fBmysql_upgrade\fR +does not run the second +\fBmysqlcheck\fR +command, which is necessary to re\-encode database or table names that contain nonalphanumeric characters\&. (They still appear after the upgrade with the +#mysql50# +prefix described in +Section\ \&8.2.3, \(lqMapping of Identifiers to File Names\(rq\&.) If you have such database or table names, execute the second +\fBmysqlcheck\fR +command manually after executing +\fBmysql_upgrade\fR\&. +.RE +.PP +All checked and repaired tables are marked with the current MySQL version number\&. This ensures that next time you run +\fBmysql_upgrade\fR +with the same version of the server, it can tell whether there is any need to check or repair the table again\&. +.\" mysql_upgrade_info file: mysql_upgrade +.\" mysql_upgrade: mysql_upgrade_info file +.PP +\fBmysql_upgrade\fR +also saves the MySQL version number in a file named +mysql_upgrade_info +in the data directory\&. This is used to quickly check whether all tables have been checked for this release so that table\-checking can be skipped\&. To ignore this file and perform the check regardless, use the +\fB\-\-force\fR +option\&. +.PP +If you install MySQL from RPM packages on Linux, you must install the server and client RPMs\&. +\fBmysql_upgrade\fR +is included in the server RPM but requires the client RPM because the latter includes +\fBmysqlcheck\fR\&. (See +Section\ \&2.6.1, \(lqInstalling MySQL from RPM Packages on Linux\(rq\&.) +.PP +In MySQL 5\&.1\&.7, +\fBmysql_upgrade \fR +was added as a shell script and worked only for Unix systems\&. As of MySQL 5\&.1\&.10, +\fBmysql_upgrade\fR +is an executable binary and is available on all systems\&. +.PP +\fBmysql_upgrade\fR +supports the following options, which can be specified on the command line or in the +[mysql_upgrade] +and +[client] +option file groups\&. Other options are passed to +\fBmysqlcheck\fR\&. For example, it might be necessary to specify the +\fB\-\-password[=\fR\fB\fIpassword\fR\fR\fB]\fR +option\&. +\fBmysql_upgrade\fR +also supports the options for processing option files described at +Section\ \&4.2.3.3.1, \(lqCommand-Line Options that Affect Option-File Handling\(rq\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_upgrade: help option +.\" help option: mysql_upgrade +\fB\-\-help\fR +.sp +Display a short help message and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_upgrade: basedir option +.\" basedir option: mysql_upgrade +\fB\-\-basedir=\fR\fB\fIpath\fR\fR +.sp +The path to the MySQL installation directory\&. This option is accepted for backward compatibility but ignored\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_upgrade: datadir option +.\" datadir option: mysql_upgrade +\fB\-\-datadir=\fR\fB\fIpath\fR\fR +.sp +The path to the data directory\&. This option is accepted for backward compatibility but ignored\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_upgrade: debug-check option +.\" debug-check option: mysql_upgrade +\fB\-\-debug\-check\fR +.sp +Print some debugging information when the program exits\&. This option was added in MySQL 5\&.1\&.21\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_upgrade: debug-info option +.\" debug-info option: mysql_upgrade +\fB\-\-debug\-info\fR, +\fB\-T\fR +.sp +Print debugging information and memory and CPU usage statistics when the program exits\&. This option was added in MySQL 5\&.1\&.21\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_upgrade: force option +.\" force option: mysql_upgrade +\fB\-\-force\fR +.sp +Ignore the +mysql_upgrade_info +file and force execution of +\fBmysqlcheck\fR +even if +\fBmysql_upgrade\fR +has already been executed for the current version of MySQL\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_upgrade: tmpdir option +.\" tmpdir option: mysql_upgrade +\fB\-\-tmpdir=\fR\fB\fIpath\fR\fR, +\fB\-t \fR\fB\fIpath\fR\fR +.sp +The path name of the directory to use for creating temporary files\&. This option was added in MySQL 5\&.1\&.25\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_upgrade: user option +.\" user option: mysql_upgrade +\fB\-\-user=\fR\fB\fIuser_name\fR\fR, +\fB\-u \fR\fB\fIuser_name\fR\fR +.sp +The MySQL user name to use when connecting to the server\&. The default user name is +root\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_upgrade: verbose option +.\" verbose option: mysql_upgrade +\fB\-\-verbose\fR +.sp +Verbose mode\&. Print more information about what the program does\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_upgrade: write-binlog option +.\" write-binlog option: mysql_upgrade +\fB\-\-write\-binlog\fR +.sp +Cause binary logging to be enabled while +\fBmysql_upgrade\fR +runs\&. This is the default behavior; to disable binary logging during the upgrade, use the inverse of this option (that is, start the program with +\fB\-\-skip\-write\-binlog\fR)\&. +.sp +This option was introduced in MySQL 5\&.1\&.40\&. +.RE +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/mysql_waitpid.1 b/database/man/man1/mysql_waitpid.1 new file mode 100644 index 0000000..98eafb6 --- /dev/null +++ b/database/man/man1/mysql_waitpid.1 @@ -0,0 +1,136 @@ +'\" t +.\" Title: \fBmysql_waitpid\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBMYSQL_WAITPID\FR" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" mysql_waitpid +.SH "NAME" +mysql_waitpid \- kill process and wait for its termination +.SH "SYNOPSIS" +.HP \w'\fBmysql_waitpid\ [\fR\fB\fIoptions\fR\fR\fB]\ \fR\fB\fIpid\fR\fR\fB\ \fR\fB\fIwait_time\fR\fR\ 'u +\fBmysql_waitpid [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIpid\fR\fR\fB \fR\fB\fIwait_time\fR\fR +.SH "DESCRIPTION" +.PP +\fBmysql_waitpid\fR +signals a process to terminate and waits for the process to exit\&. It uses the +kill() +system call and Unix signals, so it runs on Unix and Unix\-like systems\&. +.PP +Invoke +\fBmysql_waitpid\fR +like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql_waitpid [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIpid\fR\fR\fB \fR\fB\fIwait_time\fR\fR +.fi +.if n \{\ +.RE +.\} +.PP +\fBmysql_waitpid\fR +sends signal 0 to the process identified by +\fIpid\fR +and waits up to +\fIwait_time\fR +seconds for the process to terminate\&. +\fIpid\fR +and +\fIwait_time\fR +must be positive integers\&. +.PP +If process termination occurs within the wait time or the process does not exist, +\fBmysql_waitpid\fR +returns 0\&. Otherwise, it returns 1\&. +.PP +If the +kill() +system call cannot handle signal 0, +\fBmysql_waitpid()\fR +uses signal 1 instead\&. +.PP +\fBmysql_waitpid\fR +supports the following options: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_waitpid: help option +.\" help option: mysql_waitpid +\fB\-\-help\fR, +\fB\-?\fR, +\fB\-I\fR +.sp +Display a help message and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_waitpid: verbose option +.\" verbose option: mysql_waitpid +\fB\-\-verbose\fR, +\fB\-v\fR +.sp +Verbose mode\&. Display a warning if signal 0 could not be used and signal 1 is used instead\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysql_waitpid: version option +.\" version option: mysql_waitpid +\fB\-\-version\fR, +\fB\-V\fR +.sp +Display version information and exit\&. +.RE +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/mysql_zap.1 b/database/man/man1/mysql_zap.1 new file mode 100644 index 0000000..d6cd14a --- /dev/null +++ b/database/man/man1/mysql_zap.1 @@ -0,0 +1,132 @@ +'\" t +.\" Title: \fBmysql_zap\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBMYSQL_ZAP\FR" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" mysql_zap +.SH "NAME" +mysql_zap \- kill processes that match a pattern +.SH "SYNOPSIS" +.HP \w'\fBmysql_zap\ [\-\fR\fB\fIsignal\fR\fR\fB]\ [\-?Ift]\ \fR\fB\fIpattern\fR\fR\ 'u +\fBmysql_zap [\-\fR\fB\fIsignal\fR\fR\fB] [\-?Ift] \fR\fB\fIpattern\fR\fR +.SH "DESCRIPTION" +.PP +\fBmysql_zap\fR +kills processes that match a pattern\&. It uses the +\fBps\fR +command and Unix signals, so it runs on Unix and Unix\-like systems\&. +.PP +Invoke +\fBmysql_zap\fR +like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql_zap [\-\fR\fB\fIsignal\fR\fR\fB] [\-?Ift] \fR\fB\fIpattern\fR\fR +.fi +.if n \{\ +.RE +.\} +.PP +A process matches if its output line from the +\fBps\fR +command contains the pattern\&. By default, +\fBmysql_zap\fR +asks for confirmation for each process\&. Respond +y +to kill the process, or +q +to exit +\fBmysql_zap\fR\&. For any other response, +\fBmysql_zap\fR +does not attempt to kill the process\&. +.PP +If the +\fB\-\fR\fB\fIsignal\fR\fR +option is given, it specifies the name or number of the signal to send to each process\&. Otherwise, +\fBmysql_zap\fR +tries first with +TERM +(signal 15) and then with +KILL +(signal 9)\&. +.PP +\fBmysql_zap\fR +supports the following additional options: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-\-help\fR, +\fB\-?\fR, +\fB\-I\fR +.sp +Display a help message and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-f\fR +.sp +Force mode\&. +\fBmysql_zap\fR +attempts to kill each process without confirmation\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-t\fR +.sp +Test mode\&. Display information about each process but do not kill it\&. +.RE +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/mysqlaccess.1 b/database/man/man1/mysqlaccess.1 new file mode 100644 index 0000000..bdb21d6 --- /dev/null +++ b/database/man/man1/mysqlaccess.1 @@ -0,0 +1,439 @@ +'\" t +.\" Title: \fBmysqlaccess\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBMYSQLACCESS\FR" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" mysqlaccess +.SH "NAME" +mysqlaccess \- client for checking access privileges +.SH "SYNOPSIS" +.HP \w'\fBmysqlaccess\ [\fR\fB\fIhost_name\fR\fR\fB\ [\fR\fB\fIuser_name\fR\fR\fB\ [\fR\fB\fIdb_name\fR\fR\fB]]]\ [\fR\fB\fIoptions\fR\fR\fB]\fR\ 'u +\fBmysqlaccess [\fR\fB\fIhost_name\fR\fR\fB [\fR\fB\fIuser_name\fR\fR\fB [\fR\fB\fIdb_name\fR\fR\fB]]] [\fR\fB\fIoptions\fR\fR\fB]\fR +.SH "DESCRIPTION" +.PP +\fBmysqlaccess\fR +is a diagnostic tool that Yves Carlier has provided for the MySQL distribution\&. It checks the access privileges for a host name, user name, and database combination\&. Note that +\fBmysqlaccess\fR +checks access using only the +user, +db, and +host +tables\&. It does not check table, column, or routine privileges specified in the +tables_priv, +columns_priv, or +procs_priv +tables\&. +.PP +Invoke +\fBmysqlaccess\fR +like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqlaccess [\fR\fB\fIhost_name\fR\fR\fB [\fR\fB\fIuser_name\fR\fR\fB [\fR\fB\fIdb_name\fR\fR\fB]]] [\fR\fB\fIoptions\fR\fR\fB]\fR +.fi +.if n \{\ +.RE +.\} +.PP +\fBmysqlaccess\fR +supports the following options\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlaccess: help option +.\" help option: mysqlaccess +\fB\-\-help\fR, +\fB\-?\fR +.sp +Display a help message and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlaccess: brief option +.\" brief option: mysqlaccess +\fB\-\-brief\fR, +\fB\-b\fR +.sp +Generate reports in single\-line tabular format\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlaccess: commit option +.\" commit option: mysqlaccess +\fB\-\-commit\fR +.sp +Copy the new access privileges from the temporary tables to the original grant tables\&. The grant tables must be flushed for the new privileges to take effect\&. (For example, execute a +\fBmysqladmin reload\fR +command\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlaccess: copy option +.\" copy option: mysqlaccess +\fB\-\-copy\fR +.sp +Reload the temporary grant tables from original ones\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlaccess: db option +.\" db option: mysqlaccess +\fB\-\-db=\fR\fB\fIdb_name\fR\fR, +\fB\-d \fR\fB\fIdb_name\fR\fR +.sp +Specify the database name\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlaccess: debug option +.\" debug option: mysqlaccess +\fB\-\-debug=\fR\fB\fIN\fR\fR +.sp +Specify the debug level\&. +\fIN\fR +can be an integer from 0 to 3\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlaccess: host option +.\" host option: mysqlaccess +\fB\-\-host=\fR\fB\fIhost_name\fR\fR, +\fB\-h \fR\fB\fIhost_name\fR\fR +.sp +The host name to use in the access privileges\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlaccess: howto option +.\" howto option: mysqlaccess +\fB\-\-howto\fR +.sp +Display some examples that show how to use +\fBmysqlaccess\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlaccess: old_server option +.\" old_server option: mysqlaccess +\fB\-\-old_server\fR +.sp +Assume that the server is an old MySQL server (before MySQL 3\&.21) that does not yet know how to handle full +WHERE +clauses\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlaccess: password option +.\" password option: mysqlaccess +\fB\-\-password[=\fR\fB\fIpassword\fR\fR\fB]\fR, +\fB\-p[\fR\fB\fIpassword\fR\fR\fB]\fR +.sp +The password to use when connecting to the server\&. If you omit the +\fIpassword\fR +value following the +\fB\-\-password\fR +or +\fB\-p\fR +option on the command line, +\fBmysqlaccess\fR +prompts for one\&. +.sp +Specifying a password on the command line should be considered insecure\&. See +Section\ \&5.3.2.2, \(lqEnd-User Guidelines for Password Security\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlaccess: plan option +.\" plan option: mysqlaccess +\fB\-\-plan\fR +.sp +Display suggestions and ideas for future releases\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlaccess: preview option +.\" preview option: mysqlaccess +\fB\-\-preview\fR +.sp +Show the privilege differences after making changes to the temporary grant tables\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlaccess: relnotes option +.\" relnotes option: mysqlaccess +\fB\-\-relnotes\fR +.sp +Display the release notes\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlaccess: rhost option +.\" rhost option: mysqlaccess +\fB\-\-rhost=\fR\fB\fIhost_name\fR\fR, +\fB\-H \fR\fB\fIhost_name\fR\fR +.sp +Connect to the MySQL server on the given host\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlaccess: rollback option +.\" rollback option: mysqlaccess +\fB\-\-rollback\fR +.sp +Undo the most recent changes to the temporary grant tables\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlaccess: spassword option +.\" spassword option: mysqlaccess +\fB\-\-spassword[=\fR\fB\fIpassword\fR\fR\fB]\fR, +\fB\-P[\fR\fB\fIpassword\fR\fR\fB]\fR +.sp +The password to use when connecting to the server as the superuser\&. If you omit the +\fIpassword\fR +value following the +\fB\-\-spassword\fR +or +\fB\-p\fR +option on the command line, +\fBmysqlaccess\fR +prompts for one\&. +.sp +Specifying a password on the command line should be considered insecure\&. See +Section\ \&5.3.2.2, \(lqEnd-User Guidelines for Password Security\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlaccess: superuser option +.\" superuser option: mysqlaccess +\fB\-\-superuser=\fR\fB\fIuser_name\fR\fR, +\fB\-U \fR\fB\fIuser_name\fR\fR +.sp +Specify the user name for connecting as the superuser\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlaccess: table option +.\" table option: mysqlaccess +\fB\-\-table\fR, +\fB\-t\fR +.sp +Generate reports in table format\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlaccess: user option +.\" user option: mysqlaccess +\fB\-\-user=\fR\fB\fIuser_name\fR\fR, +\fB\-u \fR\fB\fIuser_name\fR\fR +.sp +The user name to use in the access privileges\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlaccess: version option +.\" version option: mysqlaccess +\fB\-\-version\fR, +\fB\-v\fR +.sp +Display version information and exit\&. +.RE +.PP +If your MySQL distribution is installed in some nonstandard location, you must change the location where +\fBmysqlaccess\fR +expects to find the +\fBmysql\fR +client\&. Edit the +mysqlaccess +script at approximately line 18\&. Search for a line that looks like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +$MYSQL = \'/usr/local/bin/mysql\'; # path to mysql executable +.fi +.if n \{\ +.RE +.\} +.PP +Change the path to reflect the location where +\fBmysql\fR +actually is stored on your system\&. If you do not do this, a +Broken pipe +error will occur when you run +\fBmysqlaccess\fR\&. +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/mysqladmin.1 b/database/man/man1/mysqladmin.1 new file mode 100644 index 0000000..769b0e1 --- /dev/null +++ b/database/man/man1/mysqladmin.1 @@ -0,0 +1,1179 @@ +'\" t +.\" Title: \fBmysqladmin\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBMYSQLADMIN\FR" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" mysqladmin +.\" administration: server +.\" server administration +.SH "NAME" +mysqladmin \- client for administering a MySQL server +.SH "SYNOPSIS" +.HP \w'\fBmysqladmin\ [\fR\fB\fIoptions\fR\fR\fB]\ \fR\fB\fIcommand\fR\fR\fB\ [\fR\fB\fIcommand\-arg\fR\fR\fB]\ [\fR\fB\fIcommand\fR\fR\fB\ [\fR\fB\fIcommand\-arg\fR\fR\fB]]\ \&.\&.\&.\fR\ 'u +\fBmysqladmin [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIcommand\fR\fR\fB [\fR\fB\fIcommand\-arg\fR\fR\fB] [\fR\fB\fIcommand\fR\fR\fB [\fR\fB\fIcommand\-arg\fR\fR\fB]] \&.\&.\&.\fR +.SH "DESCRIPTION" +.PP +\fBmysqladmin\fR +is a client for performing administrative operations\&. You can use it to check the server\'s configuration and current status, to create and drop databases, and more\&. +.PP +Invoke +\fBmysqladmin\fR +like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqladmin [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIcommand\fR\fR\fB [\fR\fB\fIcommand\-arg\fR\fR\fB] [\fR\fB\fIcommand\fR\fR\fB [\fR\fB\fIcommand\-arg\fR\fR\fB]] \&.\&.\&.\fR +.fi +.if n \{\ +.RE +.\} +.PP +\fBmysqladmin\fR +supports the following commands\&. Some of the commands take an argument following the command name\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +create \fIdb_name\fR +.sp +Create a new database named +\fIdb_name\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +debug +.sp +Tell the server to write debug information to the error log\&. +.sp +Beginning with MySQL 5\&.1\&.12, this includes information about the Event Scheduler\&. See +Section\ \&19.4.5, \(lqEvent Scheduler Status\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +drop \fIdb_name\fR +.sp +Delete the database named +\fIdb_name\fR +and all its tables\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +extended\-status +.sp +Display the server status variables and their values\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +flush\-hosts +.sp +Flush all information in the host cache\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +flush\-logs +.sp +Flush all logs\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +flush\-privileges +.sp +Reload the grant tables (same as +reload)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +flush\-status +.sp +Clear status variables\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +flush\-tables +.sp +Flush all tables\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +flush\-threads +.sp +Flush the thread cache\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +kill \fIid\fR,\fIid\fR,\&.\&.\&. +.sp +Kill server threads\&. If multiple thread ID values are given, there must be no spaces in the list\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +old\-password \fInew\-password\fR +.sp +This is like the +password +command but stores the password using the old (pre\-4\&.1) password\-hashing format\&. (See +Section\ \&5.3.2.3, \(lqPassword Hashing in MySQL\(rq\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +password \fInew\-password\fR +.sp +Set a new password\&. This changes the password to +\fInew\-password\fR +for the account that you use with +\fBmysqladmin\fR +for connecting to the server\&. Thus, the next time you invoke +\fBmysqladmin\fR +(or any other client program) using the same account, you will need to specify the new password\&. +.sp +If the +\fInew\-password\fR +value contains spaces or other characters that are special to your command interpreter, you need to enclose it within quotes\&. On Windows, be sure to use double quotes rather than single quotes; single quotes are not stripped from the password, but rather are interpreted as part of the password\&. For example: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqladmin password "my new password"\fR +.fi +.if n \{\ +.RE +.\} +.if n \{\ +.sp +.\} +.RS 4 +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +.ps +1 +\fBCaution\fR +.ps -1 +.br +Do not use this command used if the server was started with the +\fB\-\-skip\-grant\-tables\fR +option\&. No password change will be applied\&. This is true even if you precede the +password +command with +flush\-privileges +on the same command line to re\-enable the grant tables because the flush operation occurs after you connect\&. However, you can use +\fBmysqladmin flush\-privileges\fR +to re\-enable the grant table and then use a separate +\fBmysqladmin password\fR +command to change the password\&. +.sp .5v +.RE +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +ping +.sp +Check whether the server is alive\&. The return status from +\fBmysqladmin\fR +is 0 if the server is running, 1 if it is not\&. This is 0 even in case of an error such as +Access denied, because this means that the server is running but refused the connection, which is different from the server not running\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +processlist +.sp +Show a list of active server threads\&. This is like the output of the +SHOW PROCESSLIST +statement\&. If the +\fB\-\-verbose\fR +option is given, the output is like that of +SHOW FULL PROCESSLIST\&. (See +Section\ \&12.4.5.31, \(lqSHOW PROCESSLIST Syntax\(rq\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +reload +.sp +Reload the grant tables\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +refresh +.sp +Flush all tables and close and open log files\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +shutdown +.sp +Stop the server\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +start\-slave +.sp +Start replication on a slave server\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +status +.sp +Display a short server status message\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +stop\-slave +.sp +Stop replication on a slave server\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +variables +.sp +Display the server system variables and their values\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +version +.sp +Display version information from the server\&. +.RE +.PP +All commands can be shortened to any unique prefix\&. For example: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqladmin proc stat\fR ++\-\-\-\-+\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-+\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-+\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ +| Id | User | Host | db | Command | Time | State | Info | ++\-\-\-\-+\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-+\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-+\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ +| 51 | monty | localhost | | Query | 0 | | show processlist | ++\-\-\-\-+\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-+\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-+\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ +Uptime: 1473624 Threads: 1 Questions: 39487 +Slow queries: 0 Opens: 541 Flush tables: 1 +Open tables: 19 Queries per second avg: 0\&.0268 +.fi +.if n \{\ +.RE +.\} +.sp +.\" status command: results +.PP +The +\fBmysqladmin status\fR +command result displays the following values: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" uptime +Uptime +.sp +The number of seconds the MySQL server has been running\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" threads +Threads +.sp +The number of active threads (clients)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" questions +Questions +.sp +The number of questions (queries) from clients since the server was started\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" slow queries +Slow queries +.sp +The number of queries that have taken more than +long_query_time +seconds\&. See +Section\ \&5.2.5, \(lqThe Slow Query Log\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" opens +Opens +.sp +The number of tables the server has opened\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" flush tables +.\" tables: flush +Flush tables +.sp +The number of +flush\-*, +refresh, and +reload +commands the server has executed\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" open tables +Open tables +.sp +The number of tables that currently are open\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" memory use +Memory in use +.sp +The amount of memory allocated directly by +\fBmysqld\fR\&. This value is displayed only when MySQL has been compiled with +\fB\-\-with\-debug=full\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" maximum memory used +Maximum memory used +.sp +The maximum amount of memory allocated directly by +\fBmysqld\fR\&. This value is displayed only when MySQL has been compiled with +\fB\-\-with\-debug=full\fR\&. +.RE +.PP +If you execute +\fBmysqladmin shutdown\fR +when connecting to a local server using a Unix socket file, +\fBmysqladmin\fR +waits until the server\'s process ID file has been removed, to ensure that the server has stopped properly\&. +.\" mysqladmin command options +.\" command options: mysqladmin +.\" options: command-line: mysqladmin +.\" startup parameters: mysqladmin +.PP +\fBmysqladmin\fR +supports the following options, which can be specified on the command line or in the +[mysqladmin] +and +[client] +option file groups\&. +\fBmysqladmin\fR +also supports the options for processing option files described at +Section\ \&4.2.3.3.1, \(lqCommand-Line Options that Affect Option-File Handling\(rq\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqladmin: help option +.\" help option: mysqladmin +\fB\-\-help\fR, +\fB\-?\fR +.sp +Display a help message and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqladmin: character-sets-dir option +.\" character-sets-dir option: mysqladmin +\fB\-\-character\-sets\-dir=\fR\fB\fIpath\fR\fR +.sp +The directory where character sets are installed\&. See +Section\ \&9.5, \(lqCharacter Set Configuration\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqladmin: compress option +.\" compress option: mysqladmin +\fB\-\-compress\fR, +\fB\-C\fR +.sp +Compress all information sent between the client and the server if both support compression\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqladmin: connect-timeout option +.\" connect-timeout option: mysqladmin +\fB\-\-connect-timeout=\fR\fB\fItimeout\fR\fR +.sp +Equivalent to \fB\-\-connect_timeout\fR, see the end of this section\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqladmin: count option +.\" count option: mysqladmin +\fB\-\-count=\fR\fB\fIN\fR\fR, +\fB\-c \fR\fB\fIN\fR\fR +.sp +The number of iterations to make for repeated command execution if the +\fB\-\-sleep\fR +option is given\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqladmin: debug option +.\" debug option: mysqladmin +\fB\-\-debug[=\fR\fB\fIdebug_options\fR\fR\fB]\fR, +\fB\-# [\fR\fB\fIdebug_options\fR\fR\fB]\fR +.sp +Write a debugging log\&. A typical +\fIdebug_options\fR +string is +\'d:t:o,\fIfile_name\fR\'\&. The default is +\'d:t:o,/tmp/mysqladmin\&.trace\'\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqladmin: debug-check option +.\" debug-check option: mysqladmin +\fB\-\-debug\-check\fR +.sp +Print some debugging information when the program exits\&. This option was added in MySQL 5\&.1\&.21\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqladmin: debug-info option +.\" debug-info option: mysqladmin +\fB\-\-debug\-info\fR +.sp +Print debugging information and memory and CPU usage statistics when the program exits\&. This option was added in MySQL 5\&.1\&.14\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqladmin: default-character-set option +.\" default-character-set option: mysqladmin +\fB\-\-default\-character\-set=\fR\fB\fIcharset_name\fR\fR +.sp +Use +\fIcharset_name\fR +as the default character set\&. See +Section\ \&9.5, \(lqCharacter Set Configuration\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqladmin: defaults-extra-file option +.\" defaults-extra-file option: mysqladmin +\fB\-\-defaults\-extra\-file=\fR\fB\fIfilename\fR\fR +.sp +Set \fB\fIfilename\fR\fR as the file to read default options from after the global defaults files has been read\&. +Must be given as first option\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqladmin: defaults-file option +.\" defaults-file option: mysqladmin +\fB\-\-defaults\-file=\fR\fB\fIfilename\fR\fR +.sp +Set \fB\fIfilename\fR\fR as the file to read default options from, override global defaults files\&. Must be given as first option\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqladmin: force option +.\" force option: mysqladmin +\fB\-\-force\fR, +\fB\-f\fR +.sp +Do not ask for confirmation for the +drop \fIdb_name\fR +command\&. With multiple commands, continue even if an error occurs\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqladmin: host option +.\" host option: mysqladmin +\fB\-\-host=\fR\fB\fIhost_name\fR\fR, +\fB\-h \fR\fB\fIhost_name\fR\fR +.sp +Connect to the MySQL server on the given host\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqladmin: no-beep option +.\" no-beep option: mysqladmin +\fB\-\-no\-beep\fR, +\fB\-b\fR +.sp +Suppress the warning beep that is emitted by default for errors such as a failure to connect to the server\&. This option was added in MySQL 5\&.1\&.17\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqladmin: no-defaults option +.\" no-defaults option: mysqladmin +\fB\-\-no\-defaults\fR +.sp +Do not read default options from any option file\&. This must be given as the first argument\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqladmin: password option +.\" password option: mysqladmin +\fB\-\-password[=\fR\fB\fIpassword\fR\fR\fB]\fR, +\fB\-p[\fR\fB\fIpassword\fR\fR\fB]\fR +.sp +The password to use when connecting to the server\&. If you use the short option form (\fB\-p\fR), you +\fIcannot\fR +have a space between the option and the password\&. If you omit the +\fIpassword\fR +value following the +\fB\-\-password\fR +or +\fB\-p\fR +option on the command line, +\fBmysqladmin\fR +prompts for one\&. +.sp +Specifying a password on the command line should be considered insecure\&. See +Section\ \&5.3.2.2, \(lqEnd-User Guidelines for Password Security\(rq\&. You can use an option file to avoid giving the password on the command line\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqladmin: pipe option +.\" pipe option: mysqladmin +\fB\-\-pipe\fR, +\fB\-W\fR +.sp +On Windows, connect to the server via a named pipe\&. This option applies only if the server supports named\-pipe connections\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqladmin: port option +.\" port option: mysqladmin +\fB\-\-port=\fR\fB\fIport_num\fR\fR, +\fB\-P \fR\fB\fIport_num\fR\fR +.sp +The TCP/IP port number to use for the connection\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqladmin: print-defaults option +.\" print-defaults option: mysqladmin +\fB\-\-print\-defaults\fR +.sp +Print the program argument list and exit\&. This must be given as the first argument\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqladmin: protocol option +.\" protocol option: mysqladmin +\fB\-\-protocol={TCP|SOCKET|PIPE|MEMORY}\fR +.sp +The connection protocol to use for connecting to the server\&. It is useful when the other connection parameters normally would cause a protocol to be used other than the one you want\&. For details on the allowable values, see +Section\ \&4.2.2, \(lqConnecting to the MySQL Server\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqladmin: relative option +.\" relative option: mysqladmin +\fB\-\-relative\fR, +\fB\-r\fR +.sp +Show the difference between the current and previous values when used with the +\fB\-\-sleep\fR +option\&. Currently, this option works only with the +extended\-status +command\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqladmin: shutdown-timeout option +.\" shutdown-timeout option: mysqladmin +\fB\-\-shutdown\-timeout\fR\fB\fItimeout\fR\fR +.sp +Equivalent of \fB\-\-shutdown_timeout\fR, see the end of this section\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqladmin: silent option +.\" silent option: mysqladmin +\fB\-\-silent\fR, +\fB\-s\fR +.sp +Exit silently if a connection to the server cannot be established\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqladmin: sleep option +.\" sleep option: mysqladmin +\fB\-\-sleep=\fR\fB\fIdelay\fR\fR, +\fB\-i \fR\fB\fIdelay\fR\fR +.sp +Execute commands repeatedly, sleeping for +\fIdelay\fR +seconds in between\&. The +\fB\-\-count\fR +option determines the number of iterations\&. If +\fB\-\-count\fR +is not given, +\fBmysqladmin\fR +executes commands indefinitely until interrupted\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqladmin: socket option +.\" socket option: mysqladmin +\fB\-\-socket=\fR\fB\fIpath\fR\fR, +\fB\-S \fR\fB\fIpath\fR\fR +.sp +For connections to +localhost, the Unix socket file to use, or, on Windows, the name of the named pipe to use\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqladmin: SSL options +.\" SSL options: mysqladmin +\fB\-\-ssl*\fR +.sp +Options that begin with +\fB\-\-ssl\fR +specify whether to connect to the server via SSL and indicate where to find SSL keys and certificates\&. See +Section\ \&5.5.6.3, \(lqSSL Command Options\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqladmin: user option +.\" user option: mysqladmin +\fB\-\-user=\fR\fB\fIuser_name\fR\fR, +\fB\-u \fR\fB\fIuser_name\fR\fR +.sp +The MySQL user name to use when connecting to the server\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqladmin: verbose option +.\" verbose option: mysqladmin +\fB\-\-verbose\fR, +\fB\-v\fR +.sp +Verbose mode\&. Print more information about what the program does\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqladmin: version option +.\" version option: mysqladmin +\fB\-\-version\fR, +\fB\-V\fR +.sp +Display version information and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqladmin: vertical option +.\" vertical option: mysqladmin +\fB\-\-vertical\fR, +\fB\-E\fR +.sp +Print output vertically\&. This is similar to +\fB\-\-relative\fR, but prints output vertically\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqladmin: wait option +.\" wait option: mysqladmin +\fB\-\-wait[=\fR\fB\fIcount\fR\fR\fB]\fR, +\fB\-w[\fR\fB\fIcount\fR\fR\fB]\fR +.sp +If the connection cannot be established, wait and retry instead of aborting\&. If a +\fIcount\fR +value is given, it indicates the number of times to retry\&. The default is one time\&. +.RE +.PP +You can also set the following variables by using +\fB\-\-\fR\fB\fIvar_name\fR\fR\fB=\fR\fB\fIvalue\fR\fR +The +\fB\-\-set\-variable\fR +format is deprecated and is removed in MySQL 5\&.5\&. syntax: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" connect_timeout variable +.\" timeout: connect_timeout variable +connect_timeout +.sp +The maximum number of seconds before connection timeout\&. The default value is 43200 (12 hours)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" shutdown_timeout variable +.\" timeout: shutdown_timeout variable +shutdown_timeout +.sp +The maximum number of seconds to wait for server shutdown\&. The default value is 3600 (1 hour)\&. +.RE +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/mysqlbinlog.1 b/database/man/man1/mysqlbinlog.1 new file mode 100644 index 0000000..03bb1a7 --- /dev/null +++ b/database/man/man1/mysqlbinlog.1 @@ -0,0 +1,1974 @@ +'\" t +.\" Title: \fBmysqlbinlog\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBMYSQLBINLOG\FR" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" mysqlbinlog +.SH "NAME" +mysqlbinlog \- utility for processing binary log files +.SH "SYNOPSIS" +.HP \w'\fBmysqlbinlog\ [\fR\fBoptions\fR\fB]\ \fR\fB\fIlog_file\fR\fR\fB\ \&.\&.\&.\fR\ 'u +\fBmysqlbinlog [\fR\fBoptions\fR\fB] \fR\fB\fIlog_file\fR\fR\fB \&.\&.\&.\fR +.SH "DESCRIPTION" +.PP +The server\'s binary log consists of files containing +\(lqevents\(rq +that describe modifications to database contents\&. The server writes these files in binary format\&. To display their contents in text format, use the +\fBmysqlbinlog\fR +utility\&. You can also use +\fBmysqlbinlog\fR +to display the contents of relay log files written by a slave server in a replication setup because relay logs have the same format as binary logs\&. The binary log and relay log are discussed further in +Section\ \&5.2.4, \(lqThe Binary Log\(rq, and +Section\ \&16.2.2, \(lqReplication Relay and Status Files\(rq\&. +.PP +Invoke +\fBmysqlbinlog\fR +like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqlbinlog [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIlog_file\fR\fR\fB \&.\&.\&.\fR +.fi +.if n \{\ +.RE +.\} +.PP +For example, to display the contents of the binary log file named +binlog\&.000003, use this command: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqlbinlog binlog\&.0000003\fR +.fi +.if n \{\ +.RE +.\} +.PP +The output includes events contained in +binlog\&.000003\&. For statement\-based logging, event information includes the SQL statement, the ID of the server on which it was executed, the timestamp when the statement was executed, how much time it took, and so forth\&. For row\-based logging, the event indicates a row change rather than an SQL statement\&. See +Section\ \&16.1.2, \(lqReplication Formats\(rq, for information about logging modes\&. +.PP +Events are preceded by header comments that provide additional information\&. For example: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# at 141 +#100309 9:28:36 server id 123 end_log_pos 245 + Query thread_id=3350 exec_time=11 error_code=0 +.fi +.if n \{\ +.RE +.\} +.PP +In the first line, the number following +at +indicates the starting position of the event in the binary log file\&. +.PP +The second line starts with a date and time indicating when the statement started on the server where the event originated\&. For replication, this timestamp is propagated to slave servers\&. +server id +is the +server_id +value of the server where the event originated\&. +end_log_pos +indicates where the next event starts (that is, it is the end position of the current event + 1)\&. +thread_id +indicates which thread executed the event\&. +exec_time +is the time spent executing the event, on a master server\&. On a slave, it is the difference of the end execution time on the slave minus the beginning execution time on the master\&. The difference serves as an indicator of how much replication lags behind the master\&. +error_code +indicates the result from executing the event\&. Zero means that no error occurred\&. +.PP +The output from +\fBmysqlbinlog\fR +can be re\-executed (for example, by using it as input to +\fBmysql\fR) to redo the statements in the log\&. This is useful for recovery operations after a server crash\&. For other usage examples, see the discussion later in this section and +Section\ \&6.5, \(lqPoint-in-Time (Incremental) Recovery Using the Binary Log\(rq\&. +.PP +Normally, you use +\fBmysqlbinlog\fR +to read binary log files directly and apply them to the local MySQL server\&. It is also possible to read binary logs from a remote server by using the +\fB\-\-read\-from\-remote\-server\fR +option\&. To read remote binary logs, the connection parameter options can be given to indicate how to connect to the server\&. These options are +\fB\-\-host\fR, +\fB\-\-password\fR, +\fB\-\-port\fR, +\fB\-\-protocol\fR, +\fB\-\-socket\fR, and +\fB\-\-user\fR; they are ignored except when you also use the +\fB\-\-read\-from\-remote\-server\fR +option\&. +.PP +\fBmysqlbinlog\fR +supports the following options, which can be specified on the command line or in the +[mysqlbinlog] +and +[client] +option file groups\&. +\fBmysqlbinlog\fR +also supports the options for processing option files described at +Section\ \&4.2.3.3.1, \(lqCommand-Line Options that Affect Option-File Handling\(rq\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlbinlog: help option +.\" help option: mysqlbinlog +\fB\-\-help\fR, +\fB\-?\fR +.sp +Display a help message and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlbinlog: base64-output option +.\" base64-output option: mysqlbinlog +\fB\-\-base64\-output[=\fR\fB\fIvalue\fR\fR\fB]\fR +.sp +This option determines when events should be displayed encoded as base\-64 strings using +BINLOG +statements\&. The option has these allowable values (not case sensitive): +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +AUTO +("automatic") or +UNSPEC +("unspecified") displays +BINLOG +statements automatically when necessary (that is, for format description events and row events)\&. This is the default if no +\fB\-\-base64\-output\fR +option is given\&. +.if n \{\ +.sp +.\} +.RS 4 +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +.ps +1 +\fBNote\fR +.ps -1 +.br +Automatic +BINLOG +display is the only safe behavior if you intend to use the output of +\fBmysqlbinlog\fR +to re\-execute binary log file contents\&. The other option values are intended only for debugging or testing purposes because they may produce output that does not include all events in executable form\&. +.sp .5v +.RE +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +ALWAYS +displays +BINLOG +statements whenever possible\&. This is the implied value if the option is given as +\fB\-\-base64\-output\fR +without a value\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +NEVER +causes +BINLOG +statements not to be displayed\&. +\fBmysqlbinlog\fR +exits with an error if a row event is found that must be displayed using +BINLOG\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +DECODE\-ROWS +specifies to +\fBmysqlbinlog\fR +that you intend for row events to be decoded and displayed as commented SQL statements by also specifying the +\fB\-\-verbose\fR +option\&. Like +NEVER, +DECODE\-ROWS +suppresses display of +BINLOG +statements, but unlike +NEVER, it does not exit with an error if a row event is found\&. +.RE +.RS 4 +The +\fB\-\-base64\-output\fR +option was introduced in MySQL 5\&.1\&.5, to be given as +\fB\-\-base64\-output\fR +or +\fB\-\-skip\-base64\-output\fR +(with the sense of +AUTO +or +NEVER)\&. The option values described in the preceding list may be used as of MySQL 5\&.1\&.24, with the exception of +UNSPEC +and +DECODE\-ROWS, which are available as of MySQL 5\&.1\&.28\&. +.sp +For examples that show the effect of +\fB\-\-base64\-output\fR +and +\fB\-\-verbose\fR +on row event output, see +the section called \(lqMYSQLBINLOG ROW EVENT DISPLAY\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlbinlog: character-sets-dir option +.\" character-sets-dir option: mysqlbinlog +\fB\-\-character\-sets\-dir=\fR\fB\fIpath\fR\fR +.sp +The directory where character sets are installed\&. See +Section\ \&9.5, \(lqCharacter Set Configuration\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlbinlog: database option +.\" database option: mysqlbinlog +\fB\-\-database=\fR\fB\fIdb_name\fR\fR, +\fB\-d \fR\fB\fIdb_name\fR\fR +.sp +This option causes +\fBmysqlbinlog\fR +to output entries from the binary log (local log only) that occur while +\fIdb_name\fR +is been selected as the default database by +USE\&. +.sp +The +\fB\-\-database\fR +option for +\fBmysqlbinlog\fR +is similar to the +\fB\-\-binlog\-do\-db\fR +option for +\fBmysqld\fR, but can be used to specify only one database\&. If +\fB\-\-database\fR +is given multiple times, only the last instance is used\&. +.sp +The effects of this option depend on whether the statement\-based or row\-based logging format is in use, in the same way that the effects of +\fB\-\-binlog\-do\-db\fR +depend on whether statement\-based or row\-based logging is in use\&. +.PP +\fBStatement-based logging\fR. The +\fB\-\-database\fR +option works as follows: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +While +\fIdb_name\fR +is the default database, statements are output whether they modify tables in +\fIdb_name\fR +or a different database\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Unless +\fIdb_name\fR +is selected as the default database, statements are not output, even if they modify tables in +\fIdb_name\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +There is an exception for +CREATE DATABASE, +ALTER DATABASE, and +DROP DATABASE\&. The database being +\fIcreated, altered, or dropped\fR +is considered to be the default database when determining whether to output the statement\&. +.RE +.RS 4 +Suppose that the binary log was created by executing these statements using statement\-based\-logging: +.sp +.if n \{\ +.RS 4 +.\} +.nf +INSERT INTO test\&.t1 (i) VALUES(100); +INSERT INTO db2\&.t2 (j) VALUES(200); +USE test; +INSERT INTO test\&.t1 (i) VALUES(101); +INSERT INTO t1 (i) VALUES(102); +INSERT INTO db2\&.t2 (j) VALUES(201); +USE db2; +INSERT INTO test\&.t1 (i) VALUES(103); +INSERT INTO db2\&.t2 (j) VALUES(202); +INSERT INTO t2 (j) VALUES(203); +.fi +.if n \{\ +.RE +.\} +.sp +\fBmysqlbinlog \-\-database=test\fR +does not output the first two +INSERT +statements because there is no default database\&. It outputs the three +INSERT +statements following +USE test, but not the three +INSERT +statements following +USE db2\&. +.sp +\fBmysqlbinlog \-\-database=db2\fR +does not output the first two +INSERT +statements because there is no default database\&. It does not output the three +INSERT +statements following +USE test, but does output the three +INSERT +statements following +USE db2\&. +.PP +\fBRow-based logging\fR. +\fBmysqlbinlog\fR +outputs only entries that change tables belonging to +\fIdb_name\fR\&. The default database has no effect on this\&. Suppose that the binary log just described was created using row\-based logging rather than statement\-based logging\&. +\fBmysqlbinlog \-\-database=test\fR +outputs only those entries that modify +t1 +in the test database, regardless of whether +USE +was issued or what the default database is\&. +If a server is running with +binlog_format +set to +MIXED +and you want it to be possible to use +\fBmysqlbinlog\fR +with the +\fB\-\-database\fR +option, you must ensure that tables that are modified are in the database selected by +USE\&. (In particular, no cross\-database updates should be used\&.) +.if n \{\ +.sp +.\} +.RS 4 +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +.ps +1 +\fBNote\fR +.ps -1 +.br +This option did not work correctly for +\fBmysqlbinlog\fR +with row\-based logging prior to MySQL 5\&.1\&.37\&. (\m[blue]\fBBug#42941\fR\m[]\&\s-2\u[1]\d\s+2) +.sp .5v +.RE +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlbinlog: debug option +.\" debug option: mysqlbinlog +\fB\-\-debug[=\fR\fB\fIdebug_options\fR\fR\fB]\fR, +\fB\-# [\fR\fB\fIdebug_options\fR\fR\fB]\fR +.sp +Write a debugging log\&. A typical +\fIdebug_options\fR +string is +\'d:t:o,\fIfile_name\fR\'\&. The default is +\'d:t:o,/tmp/mysqlbinlog\&.trace\'\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlbinlog: debug-check option +.\" debug-check option: mysqlbinlog +\fB\-\-debug\-check\fR +.sp +Print some debugging information when the program exits\&. This option was added in MySQL 5\&.1\&.21\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlbinlog: debug-info option +.\" debug-info option: mysqlbinlog +\fB\-\-debug\-info\fR +.sp +Print debugging information and memory and CPU usage statistics when the program exits\&. This option was added in MySQL 5\&.1\&.21\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlbinlog: disable-log-bin option +.\" disable-log-bin option: mysqlbinlog +\fB\-\-disable\-log\-bin\fR, +\fB\-D\fR +.sp +Disable binary logging\&. This is useful for avoiding an endless loop if you use the +\fB\-\-to\-last\-log\fR +option and are sending the output to the same MySQL server\&. This option also is useful when restoring after a crash to avoid duplication of the statements you have logged\&. +.sp +This option requires that you have the +SUPER +privilege\&. It causes +\fBmysqlbinlog\fR +to include a +SET sql_log_bin = 0 +statement in its output to disable binary logging of the remaining output\&. The +SET +statement is ineffective unless you have the +SUPER +privilege\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlbinlog: force-read option +.\" force-read option: mysqlbinlog +\fB\-\-force\-read\fR, +\fB\-f\fR +.sp +With this option, if +\fBmysqlbinlog\fR +reads a binary log event that it does not recognize, it prints a warning, ignores the event, and continues\&. Without this option, +\fBmysqlbinlog\fR +stops if it reads such an event\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlbinlog: hexdump option +.\" hexdump option: mysqlbinlog +\fB\-\-hexdump\fR, +\fB\-H\fR +.sp +Display a hex dump of the log in comments, as described in +the section called \(lqMYSQLBINLOG HEX DUMP FORMAT\(rq\&. The hex output can be helpful for replication debugging\&. This option was added in MySQL 5\&.1\&.2\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlbinlog: host option +.\" host option: mysqlbinlog +\fB\-\-host=\fR\fB\fIhost_name\fR\fR, +\fB\-h \fR\fB\fIhost_name\fR\fR +.sp +Get the binary log from the MySQL server on the given host\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlbinlog: local-load option +.\" local-load option: mysqlbinlog +\fB\-\-local\-load=\fR\fB\fIpath\fR\fR, +\fB\-l \fR\fB\fIpath\fR\fR +.sp +Prepare local temporary files for +LOAD DATA INFILE +in the specified directory\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlbinlog: offset option +.\" offset option: mysqlbinlog +\fB\-\-offset=\fR\fB\fIN\fR\fR, +\fB\-o \fR\fB\fIN\fR\fR +.sp +Skip the first +\fIN\fR +entries in the log\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlbinlog: password option +.\" password option: mysqlbinlog +\fB\-\-password[=\fR\fB\fIpassword\fR\fR\fB]\fR, +\fB\-p[\fR\fB\fIpassword\fR\fR\fB]\fR +.sp +The password to use when connecting to the server\&. If you use the short option form (\fB\-p\fR), you +\fIcannot\fR +have a space between the option and the password\&. If you omit the +\fIpassword\fR +value following the +\fB\-\-password\fR +or +\fB\-p\fR +option on the command line, +\fBmysqlbinlog\fR +prompts for one\&. +.sp +Specifying a password on the command line should be considered insecure\&. See +Section\ \&5.3.2.2, \(lqEnd-User Guidelines for Password Security\(rq\&. You can use an option file to avoid giving the password on the command line\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlbinlog: port option +.\" port option: mysqlbinlog +\fB\-\-port=\fR\fB\fIport_num\fR\fR, +\fB\-P \fR\fB\fIport_num\fR\fR +.sp +The TCP/IP port number to use for connecting to a remote server\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlbinlog: position option +.\" position option: mysqlbinlog +\fB\-\-position=\fR\fB\fIN\fR\fR +.sp +Deprecated\&. Use +\fB\-\-start\-position\fR +instead\&. +\fB\-\-position\fR +is removed in MySQL 5\&.5\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlbinlog: protocol option +.\" protocol option: mysqlbinlog +\fB\-\-protocol={TCP|SOCKET|PIPE|MEMORY}\fR +.sp +The connection protocol to use for connecting to the server\&. It is useful when the other connection parameters normally would cause a protocol to be used other than the one you want\&. For details on the allowable values, see +Section\ \&4.2.2, \(lqConnecting to the MySQL Server\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlbinlog: open-files-limit option +.\" open-files-limit option: mysqlbinlog +\fB\-\-open\-files\-limit=\fR\fB\fINUM\fR\fR +.sp +Sets the open_files_limit variable, which is used to reserve file descriptors for +\fBmysqlbinlog\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlbinlog: read-from-remote-server option +.\" read-from-remote-server option: mysqlbinlog +\fB\-\-read\-from\-remote\-server\fR, +\fB\-R\fR +.sp +Read the binary log from a MySQL server rather than reading a local log file\&. Any connection parameter options are ignored unless this option is given as well\&. These options are +\fB\-\-host\fR, +\fB\-\-password\fR, +\fB\-\-port\fR, +\fB\-\-protocol\fR, +\fB\-\-socket\fR, and +\fB\-\-user\fR\&. +.sp +This option requires that the remote server be running\&. It works only for binary log files on the remote server, not relay log files\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlbinlog: result-file option +.\" result-file option: mysqlbinlog +\fB\-\-result\-file=\fR\fB\fIname\fR\fR, +\fB\-r \fR\fB\fIname\fR\fR +.sp +Direct output to the given file\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlbinlog: server-id option +.\" server-id option: mysqlbinlog +\fB\-\-server\-id=\fR\fB\fIid\fR\fR +.sp +Display only those events created by the server having the given server ID\&. This option is available as of MySQL 5\&.1\&.4\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlbinlog: set-charset option +.\" set-charset option: mysqlbinlog +\fB\-\-set\-charset=\fR\fB\fIcharset_name\fR\fR +.sp +Add a +SET NAMES \fIcharset_name\fR +statement to the output to specify the character set to be used for processing log files\&. This option was added in MySQL 5\&.1\&.12\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlbinlog: short-form option +.\" short-form option: mysqlbinlog +\fB\-\-short\-form\fR, +\fB\-s\fR +.sp +Display only the statements contained in the log, without any extra information\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlbinlog: socket option +.\" socket option: mysqlbinlog +\fB\-\-socket=\fR\fB\fIpath\fR\fR, +\fB\-S \fR\fB\fIpath\fR\fR +.sp +For connections to +localhost, the Unix socket file to use, or, on Windows, the name of the named pipe to use\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlbinlog: start-datetime option +.\" start-datetime option: mysqlbinlog +\fB\-\-start\-datetime=\fR\fB\fIdatetime\fR\fR +.sp +Start reading the binary log at the first event having a timestamp equal to or later than the +\fIdatetime\fR +argument\&. The +\fIdatetime\fR +value is relative to the local time zone on the machine where you run +\fBmysqlbinlog\fR\&. The value should be in a format accepted for the +DATETIME +or +TIMESTAMP +data types\&. For example: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqlbinlog \-\-start\-datetime="2005\-12\-25 11:25:56" binlog\&.000003\fR +.fi +.if n \{\ +.RE +.\} +.sp +This option is useful for point\-in\-time recovery\&. See +Section\ \&6.3, \(lqExample Backup and Recovery Strategy\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlbinlog: start-position option +.\" start-position option: mysqlbinlog +\fB\-\-start\-position=\fR\fB\fIN\fR\fR, +\fB\-j \fR\fB\fIN\fR\fR +.sp +Start reading the binary log at the first event having a position equal to or greater than +\fIN\fR\&. This option applies to the first log file named on the command line\&. +.sp +This option is useful for point\-in\-time recovery\&. See +Section\ \&6.3, \(lqExample Backup and Recovery Strategy\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlbinlog: stop-datetime option +.\" stop-datetime option: mysqlbinlog +\fB\-\-stop\-datetime=\fR\fB\fIdatetime\fR\fR +.sp +Stop reading the binary log at the first event having a timestamp equal to or later than the +\fIdatetime\fR +argument\&. This option is useful for point\-in\-time recovery\&. See the description of the +\fB\-\-start\-datetime\fR +option for information about the +\fIdatetime\fR +value\&. +.sp +This option is useful for point\-in\-time recovery\&. See +Section\ \&6.3, \(lqExample Backup and Recovery Strategy\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlbinlog: stop-position option +.\" stop-position option: mysqlbinlog +\fB\-\-stop\-position=\fR\fB\fIN\fR\fR +.sp +Stop reading the binary log at the first event having a position equal to or greater than +\fIN\fR\&. This option applies to the last log file named on the command line\&. +.sp +This option is useful for point\-in\-time recovery\&. See +Section\ \&6.3, \(lqExample Backup and Recovery Strategy\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlbinlog: to-last-log option +.\" to-last-log option: mysqlbinlog +\fB\-\-to\-last\-log\fR, +\fB\-t\fR +.sp +Do not stop at the end of the requested binary log from a MySQL server, but rather continue printing until the end of the last binary log\&. If you send the output to the same MySQL server, this may lead to an endless loop\&. This option requires +\fB\-\-read\-from\-remote\-server\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlbinlog: user option +.\" user option: mysqlbinlog +\fB\-\-user=\fR\fB\fIuser_name\fR\fR, +\fB\-u \fR\fB\fIuser_name\fR\fR +.sp +The MySQL user name to use when connecting to a remote server\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlbinlog: verbose option +.\" verbose option: mysqlbinlog +\fB\-\-verbose\fR, +\fB\-v\fR +.sp +Reconstruct row events and display them as commented SQL statements\&. If this option is given twice, the output includes comments to indicate column data types and some metadata\&. This option was added in MySQL 5\&.1\&.28\&. +.sp +For examples that show the effect of +\fB\-\-base64\-output\fR +and +\fB\-\-verbose\fR +on row event output, see +the section called \(lqMYSQLBINLOG ROW EVENT DISPLAY\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlbinlog: version option +.\" version option: mysqlbinlog +\fB\-\-version\fR, +\fB\-V\fR +.sp +Display version information and exit\&. +.RE +.PP +You can also set the following variable by using +\fB\-\-\fR\fB\fIvar_name\fR\fR\fB=\fR\fB\fIvalue\fR\fR +syntax: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" open_files_limit variable +open_files_limit +.sp +Specify the number of open file descriptors to reserve\&. +.RE +.PP +You can pipe the output of +\fBmysqlbinlog\fR +into the +\fBmysql\fR +client to execute the events contained in the binary log\&. This technique is used to recover from a crash when you have an old backup (see +Section\ \&6.5, \(lqPoint-in-Time (Incremental) Recovery Using the Binary Log\(rq)\&. For example: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqlbinlog binlog\&.000001 | mysql \-u root \-p\fR +.fi +.if n \{\ +.RE +.\} +.PP +Or: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqlbinlog binlog\&.[0\-9]* | mysql \-u root \-p\fR +.fi +.if n \{\ +.RE +.\} +.PP +You can also redirect the output of +\fBmysqlbinlog\fR +to a text file instead, if you need to modify the statement log first (for example, to remove statements that you do not want to execute for some reason)\&. After editing the file, execute the statements that it contains by using it as input to the +\fBmysql\fR +program: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqlbinlog binlog\&.000001 > tmpfile\fR +shell> \&.\&.\&. \fIedit tmpfile\fR \&.\&.\&. +shell> \fBmysql \-u root \-p < tmpfile\fR +.fi +.if n \{\ +.RE +.\} +.PP +When +\fBmysqlbinlog\fR +is invoked with the +\fB\-\-start\-position\fR +option, it displays only those events with an offset in the binary log greater than or equal to a given position (the given position must match the start of one event)\&. It also has options to stop and start when it sees an event with a given date and time\&. This enables you to perform point\-in\-time recovery using the +\fB\-\-stop\-datetime\fR +option (to be able to say, for example, +\(lqroll forward my databases to how they were today at 10:30 a\&.m\&.\(rq)\&. +.PP +If you have more than one binary log to execute on the MySQL server, the safe method is to process them all using a single connection to the server\&. Here is an example that demonstrates what may be +\fIunsafe\fR: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqlbinlog binlog\&.000001 | mysql \-u root \-p # DANGER!!\fR +shell> \fBmysqlbinlog binlog\&.000002 | mysql \-u root \-p # DANGER!!\fR +.fi +.if n \{\ +.RE +.\} +.PP +Processing binary logs this way using different connections to the server causes problems if the first log file contains a +CREATE TEMPORARY TABLE +statement and the second log contains a statement that uses the temporary table\&. When the first +\fBmysql\fR +process terminates, the server drops the temporary table\&. When the second +\fBmysql\fR +process attempts to use the table, the server reports +\(lqunknown table\&.\(rq +.PP +To avoid problems like this, use a +\fIsingle\fR +\fBmysql\fR +process to execute the contents of all binary logs that you want to process\&. Here is one way to do so: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqlbinlog binlog\&.000001 binlog\&.000002 | mysql \-u root \-p\fR +.fi +.if n \{\ +.RE +.\} +.PP +Another approach is to write all the logs to a single file and then process the file: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqlbinlog binlog\&.000001 > /tmp/statements\&.sql\fR +shell> \fBmysqlbinlog binlog\&.000002 >> /tmp/statements\&.sql\fR +shell> \fBmysql \-u root \-p \-e "source /tmp/statements\&.sql"\fR +.fi +.if n \{\ +.RE +.\} +.PP +\fBmysqlbinlog\fR +can produce output that reproduces a +LOAD DATA INFILE +operation without the original data file\&. +\fBmysqlbinlog\fR +copies the data to a temporary file and writes a +LOAD DATA LOCAL INFILE +statement that refers to the file\&. The default location of the directory where these files are written is system\-specific\&. To specify a directory explicitly, use the +\fB\-\-local\-load\fR +option\&. +.PP +Because +\fBmysqlbinlog\fR +converts +LOAD DATA INFILE +statements to +LOAD DATA LOCAL INFILE +statements (that is, it adds +LOCAL), both the client and the server that you use to process the statements must be configured with the +LOCAL +capability enabled\&. See +Section\ \&5.3.5, \(lqSecurity Issues with LOAD DATA LOCAL\(rq\&. +.if n \{\ +.sp +.\} +.RS 4 +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +.ps +1 +\fBWarning\fR +.ps -1 +.br +.PP +The temporary files created for +LOAD DATA LOCAL +statements are +\fInot\fR +automatically deleted because they are needed until you actually execute those statements\&. You should delete the temporary files yourself after you no longer need the statement log\&. The files can be found in the temporary file directory and have names like +\fIoriginal_file_name\-#\-#\fR\&. +.sp .5v +.RE +.SH "MYSQLBINLOG HEX DUMP FORMAT" +.PP +The +\fB\-\-hexdump\fR +option causes +\fBmysqlbinlog\fR +to produce a hex dump of the binary log contents: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqlbinlog \-\-hexdump master\-bin\&.000001\fR +.fi +.if n \{\ +.RE +.\} +.PP +The hex output consists of comment lines beginning with +#, so the output might look like this for the preceding command: +.sp +.if n \{\ +.RS 4 +.\} +.nf +/*!40019 SET @@session\&.max_insert_delayed_threads=0*/; +/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; +# at 4 +#051024 17:24:13 server id 1 end_log_pos 98 +# Position Timestamp Type Master ID Size Master Pos Flags +# 00000004 9d fc 5c 43 0f 01 00 00 00 5e 00 00 00 62 00 00 00 00 00 +# 00000017 04 00 35 2e 30 2e 31 35 2d 64 65 62 75 67 2d 6c |\&.\&.5\&.0\&.15\&.debug\&.l| +# 00000027 6f 67 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |og\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.| +# 00000037 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.\&.| +# 00000047 00 00 00 00 9d fc 5c 43 13 38 0d 00 08 00 12 00 |\&.\&.\&.\&.\&.\&.\&.C\&.8\&.\&.\&.\&.\&.\&.| +# 00000057 04 04 04 04 12 00 00 4b 00 04 1a |\&.\&.\&.\&.\&.\&.\&.K\&.\&.\&.| +# Start: binlog v 4, server v 5\&.0\&.15\-debug\-log created 051024 17:24:13 +# at startup +ROLLBACK; +.fi +.if n \{\ +.RE +.\} +.PP +Hex dump output currently contains the elements in the following list\&. This format is subject to change\&. (For more information about binary log format, see +\m[blue]\fB\%http://forge.mysql.com/wiki/MySQL_Internals_Binary_Log\fR\m[]\&.) +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Position: The byte position within the log file\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Timestamp: The event timestamp\&. In the example shown, +\'9d fc 5c 43\' +is the representation of +\'051024 17:24:13\' +in hexadecimal\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Type: The event type code\&. In the example shown, +\'0f\' +indicates a +FORMAT_DESCRIPTION_EVENT\&. The following table lists the possible type codes\&. +.TS +allbox tab(:); +l l lx. +T{ +Type +T}:T{ +Name +T}:T{ +Meaning +T} +T{ +00 +T}:T{ +UNKNOWN_EVENT +T}:T{ +This event should never be present in the log\&. +T} +T{ +01 +T}:T{ +START_EVENT_V3 +T}:T{ +This indicates the start of a log file written by MySQL 4 or earlier\&. +T} +T{ +02 +T}:T{ +QUERY_EVENT +T}:T{ +The most common type of events\&. These contain statements executed on the +master\&. +T} +T{ +03 +T}:T{ +STOP_EVENT +T}:T{ +Indicates that master has stopped\&. +T} +T{ +04 +T}:T{ +ROTATE_EVENT +T}:T{ +Written when the master switches to a new log file\&. +T} +T{ +05 +T}:T{ +INTVAR_EVENT +T}:T{ +Used for AUTO_INCREMENT values or when the +LAST_INSERT_ID() +function is used in the statement\&. +T} +T{ +06 +T}:T{ +LOAD_EVENT +T}:T{ +Used for LOAD DATA +INFILE in MySQL 3\&.23\&. +T} +T{ +07 +T}:T{ +SLAVE_EVENT +T}:T{ +Reserved for future use\&. +T} +T{ +08 +T}:T{ +CREATE_FILE_EVENT +T}:T{ +Used for LOAD DATA +INFILE statements\&. This indicates the +start of execution of such a statement\&. A temporary +file is created on the slave\&. Used in MySQL 4 only\&. +T} +T{ +09 +T}:T{ +APPEND_BLOCK_EVENT +T}:T{ +Contains data for use in a +LOAD DATA +INFILE statement\&. The data is stored in +the temporary file on the slave\&. +T} +T{ +0a +T}:T{ +EXEC_LOAD_EVENT +T}:T{ +Used for LOAD DATA +INFILE statements\&. The contents of the +temporary file is stored in the table on the slave\&. +Used in MySQL 4 only\&. +T} +T{ +0b +T}:T{ +DELETE_FILE_EVENT +T}:T{ +Rollback of a LOAD DATA +INFILE statement\&. The temporary file +should be deleted on the slave\&. +T} +T{ +0c +T}:T{ +NEW_LOAD_EVENT +T}:T{ +Used for LOAD DATA +INFILE in MySQL 4 and earlier\&. +T} +T{ +0d +T}:T{ +RAND_EVENT +T}:T{ +Used to send information about random values if the +RAND() function is +used in the statement\&. +T} +T{ +0e +T}:T{ +USER_VAR_EVENT +T}:T{ +Used to replicate user variables\&. +T} +T{ +0f +T}:T{ +.nf +FORMAT_DESCRIPTION_EVENT +T}:T{ +This indicates the start of a log file written by MySQL 5 or later\&. +T} +T{ +10 +T}:T{ +XID_EVENT +T}:T{ +Event indicating commit of an XA transaction\&. +T} +T{ +11 +T}:T{ +BEGIN_LOAD_QUERY_EVENT +T}:T{ +Used for LOAD DATA +INFILE statements in MySQL 5 and later\&. +T} +T{ +12 +T}:T{ +EXECUTE_LOAD_QUERY_EVENT +T}:T{ +Used for LOAD DATA +INFILE statements in MySQL 5 and later\&. +T} +T{ +13 +T}:T{ +TABLE_MAP_EVENT +T}:T{ +Information about a table definition\&. Used in MySQL 5\&.1\&.5 and later\&. +T} +T{ +14 +T}:T{ +PRE_GA_WRITE_ROWS_EVENT +T}:T{ +Row data for a single table that should be created\&. Used in MySQL 5\&.1\&.5 +to 5\&.1\&.17\&. +T} +T{ +15 +T}:T{ +PRE_GA_UPDATE_ROWS_EVENT +T}:T{ +Row data for a single table that needs to be updated\&. Used in MySQL +5\&.1\&.5 to 5\&.1\&.17\&. +T} +T{ +16 +T}:T{ +PRE_GA_DELETE_ROWS_EVENT +T}:T{ +Row data for a single table that should be deleted\&. Used in MySQL 5\&.1\&.5 +to 5\&.1\&.17\&. +T} +T{ +17 +T}:T{ +WRITE_ROWS_EVENT +T}:T{ +Row data for a single table that should be created\&. Used in MySQL 5\&.1\&.18 +and later\&. +T} +T{ +18 +T}:T{ +UPDATE_ROWS_EVENT +T}:T{ +Row data for a single table that needs to be updated\&. Used in MySQL +5\&.1\&.18 and later\&. +T} +T{ +19 +T}:T{ +DELETE_ROWS_EVENT +T}:T{ +Row data for a single table that should be deleted\&. Used in MySQL 5\&.1\&.18 +and later\&. +T} +T{ +1a +T}:T{ +INCIDENT_EVENT +T}:T{ +Something out of the ordinary happened\&. Added in MySQL 5\&.1\&.18\&. +T} +.TE +.sp 1 +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Master ID: The server ID of the master that created the event\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Size: The size in bytes of the event\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Master Pos: The position of the next event in the original master log file\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Flags: 16 flags\&. Currently, the following flags are used\&. The others are reserved for future use\&. +.TS +allbox tab(:); +l l lx. +T{ +Flag +T}:T{ +Name +T}:T{ +Meaning +T} +T{ +01 +T}:T{ +.nf +LOG_EVENT_BINLOG_IN_USE_F +T}:T{ +Log file correctly closed\&. (Used only in +FORMAT_DESCRIPTION_EVENT\&.) If +this flag is set (if the flags are, for example, +\'01 00\') in a +FORMAT_DESCRIPTION_EVENT, the log +file has not been properly closed\&. Most probably +this is because of a master crash (for example, due +to power failure)\&. +T} +T{ +02 +T}:T{ +\ \& +T}:T{ +Reserved for future use\&. +T} +T{ +04 +T}:T{ +.nf +LOG_EVENT_THREAD_SPECIFIC_F +T}:T{ +Set if the event is dependent on the connection it was executed in (for +example, \'04 00\'), for example, +if the event uses temporary tables\&. +T} +T{ +08 +T}:T{ +LOG_EVENT_SUPPRESS_USE_F +T}:T{ +Set in some circumstances when the event is not dependent on the default +database\&. +T} +.TE +.sp 1 +.RE +.SH "MYSQLBINLOG ROW EVENT DISPLAY" +.\" BINLOG statement: mysqlbinlog output +.PP +The following examples illustrate how +\fBmysqlbinlog\fR +displays row events that specify data modifications\&. These correspond to events with the +WRITE_ROWS_EVENT, +UPDATE_ROWS_EVENT, and +DELETE_ROWS_EVENT +type codes\&. The +\fB\-\-base64\-output=DECODE\-ROWS\fR +and +\fB\-\-verbose\fR +options may be used to affect row event output\&. These options are available as of MySQL 5\&.1\&.28\&. +.PP +Suppose that the server is using row\-based binary logging and that you execute the following sequence of statements: +.sp +.if n \{\ +.RS 4 +.\} +.nf +CREATE TABLE t +( + id INT NOT NULL, + name VARCHAR(20) NOT NULL, + date DATE NULL +) ENGINE = InnoDB; +START TRANSACTION; +INSERT INTO t VALUES(1, \'apple\', NULL); +UPDATE t SET name = \'pear\', date = \'2009\-01\-01\' WHERE id = 1; +DELETE FROM t WHERE id = 1; +COMMIT; +.fi +.if n \{\ +.RE +.\} +.PP +By default, +\fBmysqlbinlog\fR +displays row events encoded as base\-64 strings using +BINLOG +statements\&. Omitting extraneous lines, the output for the row events produced by the preceding statement sequence looks like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqlbinlog \fR\fB\fIlog_file\fR\fR +\&.\&.\&. +# at 218 +#080828 15:03:08 server id 1 end_log_pos 258 Write_rows: table id 17 flags: STMT_END_F +BINLOG \' +fAS3SBMBAAAALAAAANoAAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ= +fAS3SBcBAAAAKAAAAAIBAAAQABEAAAAAAAEAA//8AQAAAAVhcHBsZQ== +\'/*!*/; +\&.\&.\&. +# at 302 +#080828 15:03:08 server id 1 end_log_pos 356 Update_rows: table id 17 flags: STMT_END_F +BINLOG \' +fAS3SBMBAAAALAAAAC4BAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ= +fAS3SBgBAAAANgAAAGQBAAAQABEAAAAAAAEAA////AEAAAAFYXBwbGX4AQAAAARwZWFyIbIP +\'/*!*/; +\&.\&.\&. +# at 400 +#080828 15:03:08 server id 1 end_log_pos 442 Delete_rows: table id 17 flags: STMT_END_F +BINLOG \' +fAS3SBMBAAAALAAAAJABAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ= +fAS3SBkBAAAAKgAAALoBAAAQABEAAAAAAAEAA//4AQAAAARwZWFyIbIP +\'/*!*/; +.fi +.if n \{\ +.RE +.\} +.PP +To see the row events as comments in the form of +\(lqpseudo\-SQL\(rq +statements, run +\fBmysqlbinlog\fR +with the +\fB\-\-verbose\fR +or +\fB\-v\fR +option\&. The output will contain lines beginning with +###: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqlbinlog \-v \fR\fB\fIlog_file\fR\fR +\&.\&.\&. +# at 218 +#080828 15:03:08 server id 1 end_log_pos 258 Write_rows: table id 17 flags: STMT_END_F +BINLOG \' +fAS3SBMBAAAALAAAANoAAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ= +fAS3SBcBAAAAKAAAAAIBAAAQABEAAAAAAAEAA//8AQAAAAVhcHBsZQ== +\'/*!*/; +### INSERT INTO test\&.t +### SET +### @1=1 +### @2=\'apple\' +### @3=NULL +\&.\&.\&. +# at 302 +#080828 15:03:08 server id 1 end_log_pos 356 Update_rows: table id 17 flags: STMT_END_F +BINLOG \' +fAS3SBMBAAAALAAAAC4BAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ= +fAS3SBgBAAAANgAAAGQBAAAQABEAAAAAAAEAA////AEAAAAFYXBwbGX4AQAAAARwZWFyIbIP +\'/*!*/; +### UPDATE test\&.t +### WHERE +### @1=1 +### @2=\'apple\' +### @3=NULL +### SET +### @1=1 +### @2=\'pear\' +### @3=\'2009:01:01\' +\&.\&.\&. +# at 400 +#080828 15:03:08 server id 1 end_log_pos 442 Delete_rows: table id 17 flags: STMT_END_F +BINLOG \' +fAS3SBMBAAAALAAAAJABAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ= +fAS3SBkBAAAAKgAAALoBAAAQABEAAAAAAAEAA//4AQAAAARwZWFyIbIP +\'/*!*/; +### DELETE FROM test\&.t +### WHERE +### @1=1 +### @2=\'pear\' +### @3=\'2009:01:01\' +.fi +.if n \{\ +.RE +.\} +.PP +Specify +\fB\-\-verbose\fR +or +\fB\-v\fR +twice to also display data types and some metadata for each column\&. The output will contain an additional comment following each column change: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqlbinlog \-vv \fR\fB\fIlog_file\fR\fR +\&.\&.\&. +# at 218 +#080828 15:03:08 server id 1 end_log_pos 258 Write_rows: table id 17 flags: STMT_END_F +BINLOG \' +fAS3SBMBAAAALAAAANoAAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ= +fAS3SBcBAAAAKAAAAAIBAAAQABEAAAAAAAEAA//8AQAAAAVhcHBsZQ== +\'/*!*/; +### INSERT INTO test\&.t +### SET +### @1=1 /* INT meta=0 nullable=0 is_null=0 */ +### @2=\'apple\' /* VARSTRING(20) meta=20 nullable=0 is_null=0 */ +### @3=NULL /* VARSTRING(20) meta=0 nullable=1 is_null=1 */ +\&.\&.\&. +# at 302 +#080828 15:03:08 server id 1 end_log_pos 356 Update_rows: table id 17 flags: STMT_END_F +BINLOG \' +fAS3SBMBAAAALAAAAC4BAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ= +fAS3SBgBAAAANgAAAGQBAAAQABEAAAAAAAEAA////AEAAAAFYXBwbGX4AQAAAARwZWFyIbIP +\'/*!*/; +### UPDATE test\&.t +### WHERE +### @1=1 /* INT meta=0 nullable=0 is_null=0 */ +### @2=\'apple\' /* VARSTRING(20) meta=20 nullable=0 is_null=0 */ +### @3=NULL /* VARSTRING(20) meta=0 nullable=1 is_null=1 */ +### SET +### @1=1 /* INT meta=0 nullable=0 is_null=0 */ +### @2=\'pear\' /* VARSTRING(20) meta=20 nullable=0 is_null=0 */ +### @3=\'2009:01:01\' /* DATE meta=0 nullable=1 is_null=0 */ +\&.\&.\&. +# at 400 +#080828 15:03:08 server id 1 end_log_pos 442 Delete_rows: table id 17 flags: STMT_END_F +BINLOG \' +fAS3SBMBAAAALAAAAJABAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ= +fAS3SBkBAAAAKgAAALoBAAAQABEAAAAAAAEAA//4AQAAAARwZWFyIbIP +\'/*!*/; +### DELETE FROM test\&.t +### WHERE +### @1=1 /* INT meta=0 nullable=0 is_null=0 */ +### @2=\'pear\' /* VARSTRING(20) meta=20 nullable=0 is_null=0 */ +### @3=\'2009:01:01\' /* DATE meta=0 nullable=1 is_null=0 */ +.fi +.if n \{\ +.RE +.\} +.PP +You can tell +\fBmysqlbinlog\fR +to suppress the +BINLOG +statements for row events by using the +\fB\-\-base64\-output=DECODE\-ROWS\fR +option\&. This is similar to +\fB\-\-base64\-output=NEVER\fR +but does not exit with an error if a row event is found\&. The combination of +\fB\-\-base64\-output=DECODE\-ROWS\fR +and +\fB\-\-verbose\fR +provides a convenient way to see row events only as SQL statements: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqlbinlog \-v \-\-base64\-output=DECODE\-ROWS \fR\fB\fIlog_file\fR\fR +\&.\&.\&. +# at 218 +#080828 15:03:08 server id 1 end_log_pos 258 Write_rows: table id 17 flags: STMT_END_F +### INSERT INTO test\&.t +### SET +### @1=1 +### @2=\'apple\' +### @3=NULL +\&.\&.\&. +# at 302 +#080828 15:03:08 server id 1 end_log_pos 356 Update_rows: table id 17 flags: STMT_END_F +### UPDATE test\&.t +### WHERE +### @1=1 +### @2=\'apple\' +### @3=NULL +### SET +### @1=1 +### @2=\'pear\' +### @3=\'2009:01:01\' +\&.\&.\&. +# at 400 +#080828 15:03:08 server id 1 end_log_pos 442 Delete_rows: table id 17 flags: STMT_END_F +### DELETE FROM test\&.t +### WHERE +### @1=1 +### @2=\'pear\' +### @3=\'2009:01:01\' +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.sp +.\} +.RS 4 +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +.ps +1 +\fBNote\fR +.ps -1 +.br +.PP +You should not suppress +BINLOG +statements if you intend to re\-execute +\fBmysqlbinlog\fR +output\&. +.sp .5v +.RE +.PP +The SQL statements produced by +\fB\-\-verbose\fR +for row events are much more readable than the corresponding +BINLOG +statements\&. However, they do not correspond exactly to the original SQL statements that generated the events\&. The following limitations apply: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +The original column names are lost and replaced by +@\fIN\fR, where +\fIN\fR +is a column number\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Character set information is not available in the binary log, which affects string column display: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +There is no distinction made between corresponding binary and nonbinary string types (BINARY +and +CHAR, +VARBINARY +and +VARCHAR, +BLOB +and +TEXT)\&. The output uses a data type of +STRING +for fixed\-length strings and +VARSTRING +for variable\-length strings\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +For multi\-byte character sets, the maximum number of bytes per character is not present in the binary log, so the length for string types is displayed in bytes rather than in characters\&. For example, +STRING(4) +will be used as the data type for values from either of these column types: +.sp +.if n \{\ +.RS 4 +.\} +.nf +CHAR(4) CHARACTER SET latin1 +CHAR(2) CHARACTER SET ucs2 +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Due to the storage format for events of type +UPDATE_ROWS_EVENT, +UPDATE +statements are displayed with the +WHERE +clause preceding the +SET +clause\&. +.RE +.RE +.PP +Proper interpretation of row events requires the information from the format description event at the beginning of the binary log\&. Because +\fBmysqlbinlog\fR +does not know in advance whether the rest of the log contains row events, by default it displays the format description event using a +BINLOG +statement in the initial part of the output\&. +.PP +If the binary log is known not to contain any events requiring a +BINLOG +statement (that is, no row events), the +\fB\-\-base64\-output=NEVER\fR +option can be used to prevent this header from being written\&. +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "NOTES" +.IP " 1." 4 +Bug#42941 +.RS 4 +\%http://bugs.mysql.com/bug.php?id=42941 +.RE +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/mysqlbug.1 b/database/man/man1/mysqlbug.1 new file mode 100644 index 0000000..5128cd5 --- /dev/null +++ b/database/man/man1/mysqlbug.1 @@ -0,0 +1,78 @@ +'\" t +.\" Title: \fBmysqlbug\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBMYSQLBUG\FR" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" mysqlbug +.SH "NAME" +mysqlbug \- generate bug report +.SH "SYNOPSIS" +.HP \w'\fBmysqlbug\fR\ 'u +\fBmysqlbug\fR +.SH "DESCRIPTION" +.PP +This program enables you to generate a bug report and send it to Oracle Corporation\&. It is a shell script and runs on Unix\&. +.PP +The normal way to report bugs is to visit +\m[blue]\fB\%http://bugs.mysql.com/\fR\m[], which is the address for our bugs database\&. This database is public and can be browsed and searched by anyone\&. If you log in to the system, you can enter new reports\&. If you have no Web access, you can generate a bug report by using the +\fBmysqlbug\fR +script\&. +.PP +\fBmysqlbug\fR +helps you generate a report by determining much of the following information automatically, but if something important is missing, please include it with your message\&. +\fBmysqlbug\fR +can be found in the +scripts +directory (source distribution) and in the +bin +directory under your MySQL installation directory (binary distribution)\&. +.PP +Invoke +\fBmysqlbug\fR +without arguments: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqlbug\fR +.fi +.if n \{\ +.RE +.\} +.PP +The script will place you in an editor with a copy of the report to be sent\&. Edit the lines near the beginning that indicate the nature of the problem\&. Then write the file to save your changes, quit the editor, and +\fBmysqlbug\fR +will send the report by email\&. +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/mysqlcheck.1 b/database/man/man1/mysqlcheck.1 new file mode 100644 index 0000000..8a28bd2 --- /dev/null +++ b/database/man/man1/mysqlcheck.1 @@ -0,0 +1,941 @@ +'\" t +.\" Title: \fBmysqlcheck\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBMYSQLCHECK\FR" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" mysqlcheck +.\" maintenance: tables +.\" repair: tables +.\" tables: maintenance +.\" tables: repair +.SH "NAME" +mysqlcheck \- a table maintenance program +.SH "SYNOPSIS" +.HP \w'\fBmysqlcheck\ [\fR\fB\fIoptions\fR\fR\fB]\ [\fR\fB\fIdb_name\fR\fR\fB\ [\fR\fB\fItbl_name\fR\fR\fB\ \&.\&.\&.]]\fR\ 'u +\fBmysqlcheck [\fR\fB\fIoptions\fR\fR\fB] [\fR\fB\fIdb_name\fR\fR\fB [\fR\fB\fItbl_name\fR\fR\fB \&.\&.\&.]]\fR +.SH "DESCRIPTION" +.PP +The +\fBmysqlcheck\fR +client performs table maintenance: It checks, repairs, optimizes, or analyzes tables\&. +.PP +Each table is locked and therefore unavailable to other sessions while it is being processed, although for check operations, the table is locked with a +READ +lock only (see +Section\ \&12.3.5, \(lqLOCK TABLES and UNLOCK TABLES Syntax\(rq, for more information about +READ +and +WRITE +locks)\&. Table maintenance operations can be time\-consuming, particularly for large tables\&. If you use the +\fB\-\-databases\fR +or +\fB\-\-all\-databases\fR +option to process all tables in one or more databases, an invocation of +\fBmysqlcheck\fR +might take a long time\&. (This is also true for +\fBmysql_upgrade\fR +because that program invokes +\fBmysqlcheck\fR +to check all tables and repair them if necessary\&.) +.PP +\fBmysqlcheck\fR +is similar in function to +\fBmyisamchk\fR, but works differently\&. The main operational difference is that +\fBmysqlcheck\fR +must be used when the +\fBmysqld\fR +server is running, whereas +\fBmyisamchk\fR +should be used when it is not\&. The benefit of using +\fBmysqlcheck\fR +is that you do not have to stop the server to perform table maintenance\&. +.PP +\fBmysqlcheck\fR +uses the SQL statements +CHECK TABLE, +REPAIR TABLE, +ANALYZE TABLE, and +OPTIMIZE TABLE +in a convenient way for the user\&. It determines which statements to use for the operation you want to perform, and then sends the statements to the server to be executed\&. For details about which storage engines each statement works with, see the descriptions for those statements in +Section\ \&12.4.2, \(lqTable Maintenance Statements\(rq\&. +.PP +The +MyISAM +storage engine supports all four maintenance operations, so +\fBmysqlcheck\fR +can be used to perform any of them on +MyISAM +tables\&. Other storage engines do not necessarily support all operations\&. In such cases, an error message is displayed\&. For example, if +test\&.t +is a +MEMORY +table, an attempt to check it produces this result: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqlcheck test t\fR +test\&.t +note : The storage engine for the table doesn\'t support check +.fi +.if n \{\ +.RE +.\} +.PP +If +\fBmysqlcheck\fR +is unable to repair a table, see +Section\ \&2.4.4, \(lqRebuilding or Repairing Tables or Indexes\(rq +for manual table repair strategies\&. This will be the case, for example, for +InnoDB +tables, which can be checked with +CHECK TABLE, but not repaired with +REPAIR TABLE\&. +.PP +The use of +\fBmysqlcheck\fR +with partitioned tables is not supported before MySQL 5\&.1\&.27\&. +.if n \{\ +.sp +.\} +.RS 4 +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +.ps +1 +\fBCaution\fR +.ps -1 +.br +.PP +It is best to make a backup of a table before performing a table repair operation; under some circumstances the operation might cause data loss\&. Possible causes include but are not limited to file system errors\&. +.sp .5v +.RE +.PP +There are three general ways to invoke +\fBmysqlcheck\fR: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqlcheck [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIdb_name\fR\fR\fB [\fR\fB\fItbl_name\fR\fR\fB \&.\&.\&.]\fR +shell> \fBmysqlcheck [\fR\fB\fIoptions\fR\fR\fB] \-\-databases \fR\fB\fIdb_name\fR\fR\fB \&.\&.\&.\fR +shell> \fBmysqlcheck [\fR\fB\fIoptions\fR\fR\fB] \-\-all\-databases\fR +.fi +.if n \{\ +.RE +.\} +.PP +If you do not name any tables following +\fIdb_name\fR +or if you use the +\fB\-\-databases\fR +or +\fB\-\-all\-databases\fR +option, entire databases are checked\&. +.PP +\fBmysqlcheck\fR +has a special feature compared to other client programs\&. The default behavior of checking tables (\fB\-\-check\fR) can be changed by renaming the binary\&. If you want to have a tool that repairs tables by default, you should just make a copy of +\fBmysqlcheck\fR +named +\fBmysqlrepair\fR, or make a symbolic link to +\fBmysqlcheck\fR +named +\fBmysqlrepair\fR\&. If you invoke +\fBmysqlrepair\fR, it repairs tables\&. +.PP +The following names can be used to change +\fBmysqlcheck\fR +default behavior\&. +.TS +allbox tab(:); +l l +l l +l l. +T{ +\fBmysqlrepair\fR +T}:T{ +The default option is \fB\-\-repair\fR +T} +T{ +\fBmysqlanalyze\fR +T}:T{ +The default option is \fB\-\-analyze\fR +T} +T{ +\fBmysqloptimize\fR +T}:T{ +The default option is \fB\-\-optimize\fR +T} +.TE +.sp 1 +.PP +\fBmysqlcheck\fR +supports the following options, which can be specified on the command line or in the +[mysqlcheck] +and +[client] +option file groups\&. +\fBmysqlcheck\fR +also supports the options for processing option files described at +Section\ \&4.2.3.3.1, \(lqCommand-Line Options that Affect Option-File Handling\(rq\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: help option +.\" help option: mysqlcheck +\fB\-\-help\fR, +\fB\-?\fR +.sp +Display a help message and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: all-databases option +.\" all-databases option: mysqlcheck +\fB\-\-all\-databases\fR, +\fB\-A\fR +.sp +Check all tables in all databases\&. This is the same as using the +\fB\-\-databases\fR +option and naming all the databases on the command line\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: all-in-1 option +.\" all-in-1 option: mysqlcheck +\fB\-\-all\-in\-1\fR, +\fB\-1\fR +.sp +Instead of issuing a statement for each table, execute a single statement for each database that names all the tables from that database to be processed\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: analyze option +.\" analyze option: mysqlcheck +\fB\-\-analyze\fR, +\fB\-a\fR +.sp +Analyze the tables\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: auto-repair option +.\" auto-repair option: mysqlcheck +\fB\-\-auto\-repair\fR +.sp +If a checked table is corrupted, automatically fix it\&. Any necessary repairs are done after all tables have been checked\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: character-sets-dir option +.\" character-sets-dir option: mysqlcheck +\fB\-\-character\-sets\-dir=\fR\fB\fIpath\fR\fR +.sp +The directory where character sets are installed\&. See +Section\ \&9.5, \(lqCharacter Set Configuration\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: check option +.\" check option: mysqlcheck +\fB\-\-check\fR, +\fB\-c\fR +.sp +Check the tables for errors\&. This is the default operation\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: check-only-changed option +.\" check-only-changed option: mysqlcheck +\fB\-\-check\-only\-changed\fR, +\fB\-C\fR +.sp +Check only tables that have changed since the last check or that have not been closed properly\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: check-upgrade option +.\" check-upgrade option: mysqlcheck +\fB\-\-check\-upgrade\fR, +\fB\-g\fR +.sp +Invoke +CHECK TABLE +with the +FOR UPGRADE +option to check tables for incompatibilities with the current version of the server\&. This option automatically enables the +\fB\-\-fix\-db\-names\fR +and +\fB\-\-fix\-table\-names\fR +options\&. +\fB\-\-check\-upgrade\fR +was added in MySQL 5\&.1\&.7\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: compress option +.\" compress option: mysqlcheck +\fB\-\-compress\fR +.sp +Compress all information sent between the client and the server if both support compression\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: databases option +.\" databases option: mysqlcheck +\fB\-\-databases\fR, +\fB\-B\fR +.sp +Process all tables in the named databases\&. Normally, +\fBmysqlcheck\fR +treats the first name argument on the command line as a database name and following names as table names\&. With this option, it treats all name arguments as database names\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: debug option +.\" debug option: mysqlcheck +\fB\-\-debug[=\fR\fB\fIdebug_options\fR\fR\fB]\fR, +\fB\-# [\fR\fB\fIdebug_options\fR\fR\fB]\fR +.sp +Write a debugging log\&. A typical +\fIdebug_options\fR +string is +\'d:t:o,\fIfile_name\fR\'\&. The default is +\'d:t:o\'\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: debug-check option +.\" debug-check option: mysqlcheck +\fB\-\-debug\-check\fR +.sp +Print some debugging information when the program exits\&. This option was added in MySQL 5\&.1\&.21\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: debug-info option +.\" debug-info option: mysqlcheck +\fB\-\-debug\-info\fR +.sp +Print debugging information and memory and CPU usage statistics when the program exits\&. This option was added in MySQL 5\&.1\&.14\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: default-character-set option +.\" default-character-set option: mysqlcheck +\fB\-\-default\-character\-set=\fR\fB\fIcharset_name\fR\fR +.sp +Use +\fIcharset_name\fR +as the default character set\&. See +Section\ \&9.5, \(lqCharacter Set Configuration\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: defaults-extra-file option +.\" defaults-extra-file option: mysqlcheck +\fB\-\-defaults\-extra\-file=\fR\fB\fIfilename\fR\fR +.sp +Set \fB\fIfilename\fR\fR as the file to read default options from after the global defaults files has been read\&. +Must be given as first option\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: defaults-file option +.\" defaults-file option: mysqlcheck +\fB\-\-defaults\-file=\fR\fB\fIfilename\fR\fR +.sp +Set \fB\fIfilename\fR\fR as the file to read default options from, override global defaults files\&. +Must be given as first option\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: extended option +.\" extended option: mysqlcheck +\fB\-\-extended\fR, +\fB\-e\fR +.sp +If you are using this option to check tables, it ensures that they are 100% consistent but takes a long time\&. +.sp +If you are using this option to repair tables, it runs an extended repair that may not only take a long time to execute, but may produce a lot of garbage rows also! +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: fast option +.\" fast option: mysqlcheck +\fB\-\-fast\fR, +\fB\-F\fR +.sp +Check only tables that have not been closed properly\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: fix-db-names option +.\" fix-db-names option: mysqlcheck +\fB\-\-fix\-db\-names\fR +.sp +Convert database names to 5\&.1 format\&. Only database names that contain special characters are affected\&. This option was added in MySQL 5\&.1\&.7\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: fix-table-names option +.\" fix-table-names option: mysqlcheck +\fB\-\-fix\-table\-names\fR +.sp +Convert table names to 5\&.1 format\&. Only table names that contain special characters are affected\&. This option was added in MySQL 5\&.1\&.7\&. As of MySQL 5\&.1\&.23, this option also applies to views\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: force option +.\" force option: mysqlcheck +\fB\-\-force\fR, +\fB\-f\fR +.sp +Continue even if an SQL error occurs\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: host option +.\" host option: mysqlcheck +\fB\-\-host=\fR\fB\fIhost_name\fR\fR, +\fB\-h \fR\fB\fIhost_name\fR\fR +.sp +Connect to the MySQL server on the given host\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: medium-check option +.\" medium-check option: mysqlcheck +\fB\-\-medium\-check\fR, +\fB\-m\fR +.sp +Do a check that is faster than an +\fB\-\-extended\fR +operation\&. This finds only 99\&.99% of all errors, which should be good enough in most cases\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: no-defaults option +.\" no-defaults option: mysqlcheck +\fB\-\-no\-defaults\fR +.sp +Do not read default options from any option file\&. This must be given as the first argument\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: optimize option +.\" optimize option: mysqlcheck +\fB\-\-optimize\fR, +\fB\-o\fR +.sp +Optimize the tables\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: password option +.\" password option: mysqlcheck +\fB\-\-password[=\fR\fB\fIpassword\fR\fR\fB]\fR, +\fB\-p[\fR\fB\fIpassword\fR\fR\fB]\fR +.sp +The password to use when connecting to the server\&. If you use the short option form (\fB\-p\fR), you +\fIcannot\fR +have a space between the option and the password\&. If you omit the +\fIpassword\fR +value following the +\fB\-\-password\fR +or +\fB\-p\fR +option on the command line, +\fBmysqlcheck\fR +prompts for one\&. +.sp +Specifying a password on the command line should be considered insecure\&. See +Section\ \&5.3.2.2, \(lqEnd-User Guidelines for Password Security\(rq\&. You can use an option file to avoid giving the password on the command line\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: pipe option +.\" pipe option: mysql +\fB\-\-pipe\fR, +\fB\-W\fR +.sp +On Windows, connect to the server via a named pipe\&. This option applies only if the server supports named\-pipe connections\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: port option +.\" port option: mysqlcheck +\fB\-\-port=\fR\fB\fIport_num\fR\fR, +\fB\-P \fR\fB\fIport_num\fR\fR +.sp +The TCP/IP port number to use for the connection\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: protocol option +.\" protocol option: mysqlcheck +\fB\-\-protocol={TCP|SOCKET|PIPE|MEMORY}\fR +.sp +The connection protocol to use for connecting to the server\&. It is useful when the other connection parameters normally would cause a protocol to be used other than the one you want\&. For details on the allowable values, see +Section\ \&4.2.2, \(lqConnecting to the MySQL Server\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: print-defaults option +.\" print-defaults option: mysqlcheck +\fB\-\-print\-defaults\fR +.sp +Print the program argument list and exit\&. +This must be given as the first argument\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: quick option +.\" quick option: mysqlcheck +\fB\-\-quick\fR, +\fB\-q\fR +.sp +If you are using this option to check tables, it prevents the check from scanning the rows to check for incorrect links\&. This is the fastest check method\&. +.sp +If you are using this option to repair tables, it tries to repair only the index tree\&. This is the fastest repair method\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: repair option +.\" repair option: mysqlcheck +\fB\-\-repair\fR, +\fB\-r\fR +.sp +Perform a repair that can fix almost anything except unique keys that are not unique\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: silent option +.\" silent option: mysqlcheck +\fB\-\-silent\fR, +\fB\-s\fR +.sp +Silent mode\&. Print only error messages\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: socket option +.\" socket option: mysqlcheck +\fB\-\-socket=\fR\fB\fIpath\fR\fR, +\fB\-S \fR\fB\fIpath\fR\fR +.sp +For connections to +localhost, the Unix socket file to use, or, on Windows, the name of the named pipe to use\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: SSL options +.\" SSL options: mysqlcheck +\fB\-\-ssl*\fR +.sp +Options that begin with +\fB\-\-ssl\fR +specify whether to connect to the server via SSL and indicate where to find SSL keys and certificates\&. See +Section\ \&5.5.6.3, \(lqSSL Command Options\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: tables option +.\" tables option: mysqlcheck +\fB\-\-tables\fR +.sp +Override the +\fB\-\-databases\fR +or +\fB\-B\fR +option\&. All name arguments following the option are regarded as table names\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: use-frm option +.\" use-frm option: mysqlcheck +\fB\-\-use\-frm\fR +.sp +For repair operations on +MyISAM +tables, get the table structure from the +\&.frm +file so that the table can be repaired even if the +\&.MYI +header is corrupted\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: user option +.\" user option: mysqlcheck +\fB\-\-user=\fR\fB\fIuser_name\fR\fR, +\fB\-u \fR\fB\fIuser_name\fR\fR +.sp +The MySQL user name to use when connecting to the server\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: verbose option +.\" verbose option: mysqlcheck +\fB\-\-verbose\fR, +\fB\-v\fR +.sp +Verbose mode\&. Print information about the various stages of program operation\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: version option +.\" version option: mysqlcheck +\fB\-\-version\fR, +\fB\-V\fR +.sp +Display version information and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlcheck: write-binlog option +.\" write-binlog option: mysqlcheck +\fB\-\-write\-binlog\fR +.sp +This option is enabled by default, so that +ANALYZE TABLE, +OPTIMIZE TABLE, and +REPAIR TABLE +statements generated by +\fBmysqlcheck\fR +are written to the binary log\&. Use +\fB\-\-skip\-write\-binlog\fR +to cause +NO_WRITE_TO_BINLOG +to be added to the statements so that they are not logged\&. Use the +\fB\-\-skip\-write\-binlog\fR +when these statements should not be sent to replication slaves or run when using the binary logs for recovery from backup\&. This option was added in MySQL 5\&.1\&.18\&. +.RE +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/mysqld_multi.1 b/database/man/man1/mysqld_multi.1 new file mode 100644 index 0000000..957730c --- /dev/null +++ b/database/man/man1/mysqld_multi.1 @@ -0,0 +1,744 @@ +'\" t +.\" Title: \fBmysqld_multi\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBMYSQLD_MULTI\FR" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" mysqld_multi +.\" tools: mysqld_multi +.\" scripts +.\" multi mysqld +.SH "NAME" +mysqld_multi \- manage multiple MySQL servers +.SH "SYNOPSIS" +.HP \w'\fBmysqld_multi\ [\fR\fB\fIoptions\fR\fR\fB]\ {start|stop|report}\ [\fR\fB\fIGNR\fR\fR\fB[,\fR\fB\fIGNR\fR\fR\fB]\ \&.\&.\&.]\fR\ 'u +\fBmysqld_multi [\fR\fB\fIoptions\fR\fR\fB] {start|stop|report} [\fR\fB\fIGNR\fR\fR\fB[,\fR\fB\fIGNR\fR\fR\fB] \&.\&.\&.]\fR +.SH "DESCRIPTION" +.PP +\fBmysqld_multi\fR +is designed to manage several +\fBmysqld\fR +processes that listen for connections on different Unix socket files and TCP/IP ports\&. It can start or stop servers, or report their current status\&. The MySQL Instance Manager is an alternative means of managing multiple servers (see +\fBmysqlmanager\fR(8))\&. +.PP +\fBmysqld_multi\fR +searches for groups named +[mysqld\fIN\fR] +in +my\&.cnf +(or in the file named by the +\fB\-\-config\-file\fR +option)\&. +\fIN\fR +can be any positive integer\&. This number is referred to in the following discussion as the option group number, or +\fIGNR\fR\&. Group numbers distinguish option groups from one another and are used as arguments to +\fBmysqld_multi\fR +to specify which servers you want to start, stop, or obtain a status report for\&. Options listed in these groups are the same that you would use in the +[mysqld] +group used for starting +\fBmysqld\fR\&. (See, for example, +Section\ \&2.13.1.2, \(lqStarting and Stopping MySQL Automatically\(rq\&.) However, when using multiple servers, it is necessary that each one use its own value for options such as the Unix socket file and TCP/IP port number\&. For more information on which options must be unique per server in a multiple\-server environment, see +Section\ \&5.6, \(lqRunning Multiple MySQL Servers on the Same Machine\(rq\&. +.PP +To invoke +\fBmysqld_multi\fR, use the following syntax: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqld_multi [\fR\fB\fIoptions\fR\fR\fB] {start|stop|report} [\fR\fB\fIGNR\fR\fR\fB[,\fR\fB\fIGNR\fR\fR\fB] \&.\&.\&.]\fR +.fi +.if n \{\ +.RE +.\} +.PP +start, +stop, and +report +indicate which operation to perform\&. You can perform the designated operation for a single server or multiple servers, depending on the +\fIGNR\fR +list that follows the option name\&. If there is no list, +\fBmysqld_multi\fR +performs the operation for all servers in the option file\&. +.PP +Each +\fIGNR\fR +value represents an option group number or range of group numbers\&. The value should be the number at the end of the group name in the option file\&. For example, the +\fIGNR\fR +for a group named +[mysqld17] +is +17\&. To specify a range of numbers, separate the first and last numbers by a dash\&. The +\fIGNR\fR +value +10\-13 +represents groups +[mysqld10] +through +[mysqld13]\&. Multiple groups or group ranges can be specified on the command line, separated by commas\&. There must be no whitespace characters (spaces or tabs) in the +\fIGNR\fR +list; anything after a whitespace character is ignored\&. +.PP +This command starts a single server using option group +[mysqld17]: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqld_multi start 17\fR +.fi +.if n \{\ +.RE +.\} +.PP +This command stops several servers, using option groups +[mysqld8] +and +[mysqld10] +through +[mysqld13]: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqld_multi stop 8,10\-13\fR +.fi +.if n \{\ +.RE +.\} +.PP +For an example of how you might set up an option file, use this command: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqld_multi \-\-example\fR +.fi +.if n \{\ +.RE +.\} +.PP +As of MySQL 5\&.1\&.18, +\fBmysqld_multi\fR +searches for option files as follows: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_multi: no-defaults option +.\" no-defaults option: mysqld_multi +With +\fB\-\-no\-defaults\fR, no option files are read\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_multi: defaults-file option +.\" defaults-file option: mysqld_multi +With +\fB\-\-defaults\-file=\fR\fB\fIfile_name\fR\fR, only the named file is read\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_multi: defaults-extra-file option +.\" defaults-extra-file option: mysqld_multi +Otherwise, option files in the standard list of locations are read, including any file named by the +\fB\-\-defaults\-extra\-file=\fR\fB\fIfile_name\fR\fR +option, if one is given\&. (If the option is given multiple times, the last value is used\&.) +.RE +.PP +Before MySQL 5\&.1\&.18, the preceding options are not recognized\&. Files in the standard locations are read, and any file named by the +\fB\-\-config\-file=\fR\fB\fIfile_name\fR\fR +option, if one is given\&. A file named by +\fB\-\-config\-file\fR +is read only for +[mysqld\fIN\fR] +option groups, not the +[mysqld_multi] +group\&. +.PP +Option files read are searched for +[mysqld_multi] +and +[mysqld\fIN\fR] +option groups\&. The +[mysqld_multi] +group can be used for options to +\fBmysqld_multi\fR +itself\&. +[mysqld\fIN\fR] +groups can be used for options passed to specific +\fBmysqld\fR +instances\&. +.PP +As of MySQL 5\&.1\&.35, the +[mysqld] +or +[mysqld_safe] +groups can be used for common options read by all instances of +\fBmysqld\fR +or +\fBmysqld_safe\fR\&. You can specify a +\fB\-\-defaults\-file=\fR\fB\fIfile_name\fR\fR +option to use a different configuration file for that instance, in which case the +[mysqld] +or +[mysqld_safe] +groups from that file will be used for that instance\&. Before MySQL 5\&.1\&.35, some versions of +\fBmysqld_multi\fR +pass the +\fB\-\-no\-defaults\fR +options to instances, so these techniques are inapplicable\&. +.PP +\fBmysqld_multi\fR +supports the following options\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_multi: help option +.\" help option: mysqld_multi +\fB\-\-help\fR +.sp +Display a help message and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_multi: config-file option +.\" config-file option: mysqld_multi +\fB\-\-config\-file=\fR\fB\fIfile_name\fR\fR +.sp +As of MySQL 5\&.1\&.18, this option is deprecated\&. If given, it is treated the same way as +\fB\-\-defaults\-extra\-file\fR, described earlier\&. +\fB\-\-config\-file\fR +is removed in MySQL 5\&.5\&. +.sp +Before MySQL 5\&.1\&.18, this option specifies the name of an extra option file\&. It affects where +\fBmysqld_multi\fR +looks for +[mysqld\fIN\fR] +option groups\&. Without this option, all options are read from the usual +my\&.cnf +file\&. The option does not affect where +\fBmysqld_multi\fR +reads its own options, which are always taken from the +[mysqld_multi] +group in the usual +my\&.cnf +file\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_multi: example option +.\" example option: mysqld_multi +\fB\-\-example\fR +.sp +Display a sample option file\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_multi: log option +.\" log option: mysqld_multi +\fB\-\-log=\fR\fB\fIfile_name\fR\fR +.sp +Specify the name of the log file\&. If the file exists, log output is appended to it\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_multi: mysqladmin option +.\" mysqladmin option: mysqld_multi +\fB\-\-mysqladmin=\fR\fB\fIprog_name\fR\fR +.sp +The +\fBmysqladmin\fR +binary to be used to stop servers\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_multi: mysqld option +.\" mysqld option: mysqld_multi +\fB\-\-mysqld=\fR\fB\fIprog_name\fR\fR +.sp +The +\fBmysqld\fR +binary to be used\&. Note that you can specify +\fBmysqld_safe\fR +as the value for this option also\&. If you use +\fBmysqld_safe\fR +to start the server, you can include the +mysqld +or +ledir +options in the corresponding +[mysqld\fIN\fR] +option group\&. These options indicate the name of the server that +\fBmysqld_safe\fR +should start and the path name of the directory where the server is located\&. (See the descriptions for these options in +\fBmysqld_safe\fR(1)\&.) Example: +.sp +.if n \{\ +.RS 4 +.\} +.nf +[mysqld38] +mysqld = mysqld\-debug +ledir = /opt/local/mysql/libexec +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_multi: no-log option +.\" no-log option: mysqld_multi +\fB\-\-no\-log\fR +.sp +Print log information to +stdout +rather than to the log file\&. By default, output goes to the log file\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_multi: password option +.\" password option: mysqld_multi +\fB\-\-password=\fR\fB\fIpassword\fR\fR +.sp +The password of the MySQL account to use when invoking +\fBmysqladmin\fR\&. Note that the password value is not optional for this option, unlike for other MySQL programs\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_multi: silent option +.\" silent option: mysqld_multi +\fB\-\-silent\fR +.sp +Silent mode; disable warnings\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_multi: tcp-ip option +.\" tcp-ip option: mysqld_multi +\fB\-\-tcp\-ip\fR +.sp +Connect to each MySQL server via the TCP/IP port instead of the Unix socket file\&. (If a socket file is missing, the server might still be running, but accessible only via the TCP/IP port\&.) By default, connections are made using the Unix socket file\&. This option affects +stop +and +report +operations\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_multi: user option +.\" user option: mysqld_multi +\fB\-\-user=\fR\fB\fIuser_name\fR\fR +.sp +The user name of the MySQL account to use when invoking +\fBmysqladmin\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_multi: verbose option +.\" verbose option: mysqld_multi +\fB\-\-verbose\fR +.sp +Be more verbose\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_multi: version option +.\" version option: mysqld_multi +\fB\-\-version\fR +.sp +Display version information and exit\&. +.RE +.PP +Some notes about +\fBmysqld_multi\fR: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fBMost important\fR: Before using +\fBmysqld_multi\fR +be sure that you understand the meanings of the options that are passed to the +\fBmysqld\fR +servers and +\fIwhy\fR +you would want to have separate +\fBmysqld\fR +processes\&. Beware of the dangers of using multiple +\fBmysqld\fR +servers with the same data directory\&. Use separate data directories, unless you +\fIknow\fR +what you are doing\&. Starting multiple servers with the same data directory does +\fInot\fR +give you extra performance in a threaded system\&. See +Section\ \&5.6, \(lqRunning Multiple MySQL Servers on the Same Machine\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.if n \{\ +.sp +.\} +.RS 4 +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +.ps +1 +\fBImportant\fR +.ps -1 +.br +Make sure that the data directory for each server is fully accessible to the Unix account that the specific +\fBmysqld\fR +process is started as\&. +\fIDo not\fR +use the Unix +\fIroot\fR +account for this, unless you +\fIknow\fR +what you are doing\&. See +Section\ \&5.3.6, \(lqHow to Run MySQL as a Normal User\(rq\&. +.sp .5v +.RE +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Make sure that the MySQL account used for stopping the +\fBmysqld\fR +servers (with the +\fBmysqladmin\fR +program) has the same user name and password for each server\&. Also, make sure that the account has the +SHUTDOWN +privilege\&. If the servers that you want to manage have different user names or passwords for the administrative accounts, you might want to create an account on each server that has the same user name and password\&. For example, you might set up a common +multi_admin +account by executing the following commands for each server: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql \-u root \-S /tmp/mysql\&.sock \-p\fR +Enter password: +mysql> \fBGRANT SHUTDOWN ON *\&.*\fR + \-> \fBTO \'multi_admin\'@\'localhost\' IDENTIFIED BY \'multipass\';\fR +.fi +.if n \{\ +.RE +.\} +.sp +See +Section\ \&5.4, \(lqThe MySQL Access Privilege System\(rq\&. You have to do this for each +\fBmysqld\fR +server\&. Change the connection parameters appropriately when connecting to each one\&. Note that the host name part of the account name must allow you to connect as +multi_admin +from the host where you want to run +\fBmysqld_multi\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +The Unix socket file and the TCP/IP port number must be different for every +\fBmysqld\fR\&. (Alternatively, if the host has multiple network addresses, you can use +\fB\-\-bind\-address\fR +to cause different servers to listen to different interfaces\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +The +\fB\-\-pid\-file\fR +option is very important if you are using +\fBmysqld_safe\fR +to start +\fBmysqld\fR +(for example, +\fB\-\-mysqld=mysqld_safe\fR) Every +\fBmysqld\fR +should have its own process ID file\&. The advantage of using +\fBmysqld_safe\fR +instead of +\fBmysqld\fR +is that +\fBmysqld_safe\fR +monitors its +\fBmysqld\fR +process and restarts it if the process terminates due to a signal sent using +kill \-9 +or for other reasons, such as a segmentation fault\&. Please note that the +\fBmysqld_safe\fR +script might require that you start it from a certain place\&. This means that you might have to change location to a certain directory before running +\fBmysqld_multi\fR\&. If you have problems starting, please see the +\fBmysqld_safe\fR +script\&. Check especially the lines: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- +MY_PWD=`pwd` +# Check if we are starting this relative (for the binary release) +if test \-d $MY_PWD/data/mysql \-a \e + \-f \&./share/mysql/english/errmsg\&.sys \-a \e + \-x \&./bin/mysqld +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- +.fi +.if n \{\ +.RE +.\} +.sp +The test performed by these lines should be successful, or you might encounter problems\&. See +\fBmysqld_safe\fR(1)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +You might want to use the +\fB\-\-user\fR +option for +\fBmysqld\fR, but to do this you need to run the +\fBmysqld_multi\fR +script as the Unix +root +user\&. Having the option in the option file doesn\'t matter; you just get a warning if you are not the superuser and the +\fBmysqld\fR +processes are started under your own Unix account\&. +.RE +.PP +The following example shows how you might set up an option file for use with +\fBmysqld_multi\fR\&. The order in which the +\fBmysqld\fR +programs are started or stopped depends on the order in which they appear in the option file\&. Group numbers need not form an unbroken sequence\&. The first and fifth +[mysqld\fIN\fR] +groups were intentionally omitted from the example to illustrate that you can have +\(lqgaps\(rq +in the option file\&. This gives you more flexibility\&. +.sp +.if n \{\ +.RS 4 +.\} +.nf +# This file should probably be in your home dir (~/\&.my\&.cnf) +# or /etc/my\&.cnf +# Version 2\&.1 by Jani Tolonen +[mysqld_multi] +mysqld = /usr/local/bin/mysqld_safe +mysqladmin = /usr/local/bin/mysqladmin +user = multi_admin +password = multipass +[mysqld2] +socket = /tmp/mysql\&.sock2 +port = 3307 +pid\-file = /usr/local/mysql/var2/hostname\&.pid2 +datadir = /usr/local/mysql/var2 +language = /usr/local/share/mysql/english +user = john +[mysqld3] +socket = /tmp/mysql\&.sock3 +port = 3308 +pid\-file = /usr/local/mysql/var3/hostname\&.pid3 +datadir = /usr/local/mysql/var3 +language = /usr/local/share/mysql/swedish +user = monty +[mysqld4] +socket = /tmp/mysql\&.sock4 +port = 3309 +pid\-file = /usr/local/mysql/var4/hostname\&.pid4 +datadir = /usr/local/mysql/var4 +language = /usr/local/share/mysql/estonia +user = tonu +[mysqld6] +socket = /tmp/mysql\&.sock6 +port = 3311 +pid\-file = /usr/local/mysql/var6/hostname\&.pid6 +datadir = /usr/local/mysql/var6 +language = /usr/local/share/mysql/japanese +user = jani +.fi +.if n \{\ +.RE +.\} +.PP +See +Section\ \&4.2.3.3, \(lqUsing Option Files\(rq\&. +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/mysqld_safe.1 b/database/man/man1/mysqld_safe.1 new file mode 100644 index 0000000..2126929 --- /dev/null +++ b/database/man/man1/mysqld_safe.1 @@ -0,0 +1,824 @@ +'\" t +.\" Title: \fBmysqld_safe\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBMYSQLD_SAFE\FR" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" mysqld_safe +.\" tools: mysqld_safe +.\" scripts +.SH "NAME" +mysqld_safe \- MySQL server startup script +.SH "SYNOPSIS" +.HP \w'\fBmysqld_safe\ \fR\fB\fIoptions\fR\fR\ 'u +\fBmysqld_safe \fR\fB\fIoptions\fR\fR +.SH "DESCRIPTION" +.PP +\fBmysqld_safe\fR +is the recommended way to start a +\fBmysqld\fR +server on Unix and NetWare\&. +\fBmysqld_safe\fR +adds some safety features such as restarting the server when an error occurs and logging runtime information to an error log file\&. Descriptions of error logging and NetWare\-specific behaviors are given later in this section\&. +.if n \{\ +.sp +.\} +.RS 4 +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +.ps +1 +\fBNote\fR +.ps -1 +.br +.PP +In MySQL 5\&.1\&.20 (only), the default error logging behavior with +\fBmysqld_safe\fR +is to write errors to +syslog +on systems that support the +\fBlogger\fR +program\&. This differs from the default behavior of writing an error log file for other versions\&. +.PP +\fBIn 5\&.1\&.20, logging to \fR\fBsyslog\fR\fB may fail to operate correctly in some cases; if so, use \fR\fB\fB\-\-skip\-syslog\fR\fR\fB to use the default log file or \fR\fB\fB\-\-log\-error=\fR\fB\fIfile_name\fR\fR\fR\fB to specify a log file name explicitly\&.\fR +.sp .5v +.RE +.PP +\fBmysqld_safe\fR +tries to start an executable named +\fBmysqld\fR\&. To override the default behavior and specify explicitly the name of the server you want to run, specify a +\fB\-\-mysqld\fR +or +\fB\-\-mysqld\-version\fR +option to +\fBmysqld_safe\fR\&. You can also use +\fB\-\-ledir\fR +to indicate the directory where +\fBmysqld_safe\fR +should look for the server\&. +.PP +Many of the options to +\fBmysqld_safe\fR +are the same as the options to +\fBmysqld\fR\&. See +Section\ \&5.1.2, \(lqServer Command Options\(rq\&. +.PP +Options unknown to +\fBmysqld_safe\fR +are passed to +\fBmysqld\fR +if they are specified on the command line, but ignored if they are specified in the +[mysqld_safe] or [mariadb_safe] +groups of an option file\&. See +Section\ \&4.2.3.3, \(lqUsing Option Files\(rq\&. +.PP +\fBmysqld_safe\fR +reads all options from the +[mysqld], +[server], +[mysqld_safe], and [mariadb_safe] +sections in option files\&. For example, if you specify a +[mysqld] +section like this, +\fBmysqld_safe\fR +will find and use the +\fB\-\-log\-error\fR +option: +.sp +.if n \{\ +.RS 4 +.\} +.nf +[mysqld] +log\-error=error\&.log +.fi +.if n \{\ +.RE +.\} +.PP +For backward compatibility, +\fBmysqld_safe\fR +also reads +[safe_mysqld] +sections, although you should rename such sections to +[mysqld_safe] +in MySQL 5\&.1 installations\&. +.PP +\fBmysqld_safe\fR +supports the options in the following list\&. It also reads option files and supports the options for processing them described at +Section\ \&4.2.3.3.1, \(lqCommand-Line Options that Affect Option-File Handling\(rq\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_safe: help option +.\" help option: mysqld_safe +\fB\-\-help\fR +.sp +Display a help message and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_safe: basedir option +.\" basedir option: mysqld_safe +\fB\-\-basedir=\fR\fB\fIpath\fR\fR +.sp +The path to the MySQL installation directory\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_safe: core-file-size option +.\" core-file-size option: mysqld_safe +\fB\-\-core\-file\-size=\fR\fB\fIsize\fR\fR +.sp +The size of the core file that +\fBmysqld\fR +should be able to create\&. The option value is passed to +\fBulimit \-c\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_safe: datadir option +.\" datadir option: mysqld_safe +\fB\-\-datadir=\fR\fB\fIpath\fR\fR +.sp +The path to the data directory\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_safe: defaults-extra-file option +.\" defaults-extra-file option: mysqld_safe +\fB\-\-defaults\-extra\-file=\fR\fB\fIpath\fR\fR +.sp +The name of an option file to be read in addition to the usual option files\&. This must be the first option on the command line if it is used\&. If the file does not exist or is otherwise inaccessible, the server will exit with an error\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_safe: defaults-file option +.\" defaults-file option: mysqld_safe +\fB\-\-defaults\-file=\fR\fB\fIfile_name\fR\fR +.sp +The name of an option file to be read instead of the usual option files\&. This must be the first option on the command line if it is used\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_safe: ledir option +.\" ledir option: mysqld_safe +\fB\-\-ledir=\fR\fB\fIpath\fR\fR +.sp +If +\fBmysqld_safe\fR +cannot find the server, use this option to indicate the path name to the directory where the server is located\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_safe: log-error option +.\" log-error option: mysqld_safe +\fB\-\-log\-error=\fR\fB\fIfile_name\fR\fR +.sp +Write the error log to the given file\&. See +Section\ \&5.2.2, \(lqThe Error Log\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_safe: mysqld option +.\" mysqld option: mysqld_safe +\fB\-\-mysqld=\fR\fB\fIprog_name\fR\fR +.sp +The name of the server program (in the +ledir +directory) that you want to start\&. This option is needed if you use the MySQL binary distribution but have the data directory outside of the binary distribution\&. If +\fBmysqld_safe\fR +cannot find the server, use the +\fB\-\-ledir\fR +option to indicate the path name to the directory where the server is located\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_safe: mysqld-version option +.\" mysqld-version option: mysqld_safe +\fB\-\-mysqld\-version=\fR\fB\fIsuffix\fR\fR +.sp +This option is similar to the +\fB\-\-mysqld\fR +option, but you specify only the suffix for the server program name\&. The basename is assumed to be +\fBmysqld\fR\&. For example, if you use +\fB\-\-mysqld\-version=debug\fR, +\fBmysqld_safe\fR +starts the +\fBmysqld\-debug\fR +program in the +ledir +directory\&. If the argument to +\fB\-\-mysqld\-version\fR +is empty, +\fBmysqld_safe\fR +uses +\fBmysqld\fR +in the +ledir +directory\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_safe: nice option +.\" nice option: mysqld_safe +\fB\-\-nice=\fR\fB\fIpriority\fR\fR +.sp +Use the +nice +program to set the server\'s scheduling priority to the given value\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_safe: no-defaults option +.\" no-defaults option: mysqld_safe +\fB\-\-no\-defaults\fR +.sp +Do not read any option files\&. This must be the first option on the command line if it is used\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_safe: open-files-limit option +.\" open-files-limit option: mysqld_safe +\fB\-\-open\-files\-limit=\fR\fB\fIcount\fR\fR +.sp +The number of files that +\fBmysqld\fR +should be able to open\&. The option value is passed to +\fBulimit \-n\fR\&. Note that you need to start +\fBmysqld_safe\fR +as +root +for this to work properly! +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_safe: pid-file option +.\" pid-file option: mysqld_safe +\fB\-\-pid\-file=\fR\fB\fIfile_name\fR\fR +.sp +The path name of the process ID file\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_safe: port option +.\" port option: mysqld_safe +\fB\-\-port=\fR\fB\fIport_num\fR\fR +.sp +The port number that the server should use when listening for TCP/IP connections\&. The port number must be 1024 or higher unless the server is started by the +root +system user\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_safe: skip-kill-mysqld option +.\" skip-kill-mysqld option: mysqld_safe +\fB\-\-skip\-kill\-mysqld\fR +.sp +Do not try to kill stray +\fBmysqld\fR +processes at startup\&. This option works only on Linux\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_safe: socket option +.\" socket option: mysqld_safe +\fB\-\-socket=\fR\fB\fIpath\fR\fR +.sp +The Unix socket file that the server should use when listening for local connections\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_safe: syslog option +.\" syslog option: mysqld_safe +.\" mysqld_safe: skip-syslog option +.\" skip-syslog option: mysqld_safe +\fB\-\-syslog\fR, +\fB\-\-skip\-syslog\fR +.sp +\fB\-\-syslog\fR +causes error messages to be sent to +syslog +on systems that support the +\fBlogger\fR +program\&. +\-\-skip\-syslog +suppresses the use of +syslog; messages are written to an error log file\&. These options were added in MySQL 5\&.1\&.20\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_safe: syslog-tag option +.\" syslog-tag option: mysqld_safe +\fB\-\-syslog\-tag=\fR\fB\fItag\fR\fR +.sp +For logging to +syslog, messages from +\fBmysqld_safe\fR +and +\fBmysqld\fR +are written with a tag of +mysqld_safe +and +mysqld, respectively\&. To specify a suffix for the tag, use +\fB\-\-syslog\-tag=\fR\fB\fItag\fR\fR, which modifies the tags to be +mysqld_safe\-\fItag\fR +and +mysqld\-\fItag\fR\&. This option was added in MySQL 5\&.1\&.21\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_safe: timezone option +.\" timezone option: mysqld_safe +\fB\-\-timezone=\fR\fB\fItimezone\fR\fR +.sp +Set the +TZ +time zone environment variable to the given option value\&. Consult your operating system documentation for legal time zone specification formats\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqld_safe: user option +.\" user option: mysqld_safe +\fB\-\-user={\fR\fB\fIuser_name\fR\fR\fB|\fR\fB\fIuser_id\fR\fR\fB}\fR +.sp +Run the +\fBmysqld\fR +server as the user having the name +\fIuser_name\fR +or the numeric user ID +\fIuser_id\fR\&. (\(lqUser\(rq +in this context refers to a system login account, not a MySQL user listed in the grant tables\&.) +.RE +.PP +If you execute +\fBmysqld_safe\fR +with the +\fB\-\-defaults\-file\fR +or +\fB\-\-defaults\-extra\-file\fR +option to name an option file, the option must be the first one given on the command line or the option file will not be used\&. For example, this command will not use the named option file: +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql> \fBmysqld_safe \-\-port=\fR\fB\fIport_num\fR\fR\fB \-\-defaults\-file=\fR\fB\fIfile_name\fR\fR +.fi +.if n \{\ +.RE +.\} +.PP +Instead, use the following command: +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql> \fBmysqld_safe \-\-defaults\-file=\fR\fB\fIfile_name\fR\fR\fB \-\-port=\fR\fB\fIport_num\fR\fR +.fi +.if n \{\ +.RE +.\} +.PP +The +\fBmysqld_safe\fR +script is written so that it normally can start a server that was installed from either a source or a binary distribution of MySQL, even though these types of distributions typically install the server in slightly different locations\&. (See +Section\ \&2.1.5, \(lqInstallation Layouts\(rq\&.) +\fBmysqld_safe\fR +expects one of the following conditions to be true: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +The server and databases can be found relative to the working directory (the directory from which +\fBmysqld_safe\fR +is invoked)\&. For binary distributions, +\fBmysqld_safe\fR +looks under its working directory for +bin +and +data +directories\&. For source distributions, it looks for +libexec +and +var +directories\&. This condition should be met if you execute +\fBmysqld_safe\fR +from your MySQL installation directory (for example, +/usr/local/mysql +for a binary distribution)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +If the server and databases cannot be found relative to the working directory, +\fBmysqld_safe\fR +attempts to locate them by absolute path names\&. Typical locations are +/usr/local/libexec +and +/usr/local/var\&. The actual locations are determined from the values configured into the distribution at the time it was built\&. They should be correct if MySQL is installed in the location specified at configuration time\&. +.RE +.PP +Because +\fBmysqld_safe\fR +tries to find the server and databases relative to its own working directory, you can install a binary distribution of MySQL anywhere, as long as you run +\fBmysqld_safe\fR +from the MySQL installation directory: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBcd \fR\fB\fImysql_installation_directory\fR\fR +shell> \fBbin/mysqld_safe &\fR +.fi +.if n \{\ +.RE +.\} +.PP +If +\fBmysqld_safe\fR +fails, even when invoked from the MySQL installation directory, you can specify the +\fB\-\-ledir\fR +and +\fB\-\-datadir\fR +options to indicate the directories in which the server and databases are located on your system\&. +.PP +When you use +\fBmysqld_safe\fR +to start +\fBmysqld\fR, +\fBmysqld_safe\fR +arranges for error (and notice) messages from itself and from +\fBmysqld\fR +to go to the same destination\&. +.PP +As of MySQL 5\&.1\&.20, there are several +\fBmysqld_safe\fR +options for controlling the destination of these messages: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-\-syslog\fR: Write error messages to +syslog +on systems that support the +\fBlogger\fR +program\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-\-skip\-syslog\fR: Do not write error messages to +syslog\&. Messages are written to the default error log file (\fIhost_name\fR\&.err +in the data directory), or to a named file if the +\fB\-\-log\-error\fR +option is given\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-\-log\-error=\fR\fB\fIfile_name\fR\fR: Write error messages to the named error file\&. +.RE +.PP +If none of these options is given, the default is +\fB\-\-skip\-syslog\fR\&. +.if n \{\ +.sp +.\} +.RS 4 +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +.ps +1 +\fBNote\fR +.ps -1 +.br +.PP +In MySQL 5\&.1\&.20 +\fIonly\fR, the default is +\fB\-\-syslog\fR\&. This differs from logging behavior for other versions of MySQL, for which the default is to write messages to the default error log file\&. +.sp .5v +.RE +.PP +If +\fB\-\-syslog\fR +and +\fB\-\-log\-error\fR +are both given, a warning is issued and +\fB\-\-log\-error\fR +takes precedence\&. +.PP +When +\fBmysqld_safe\fR +writes a message, notices go to the logging destination (syslog +or the error log file) and +stdout\&. Errors go to the logging destination and +stderr\&. +.PP +Before MySQL 5\&.1\&.20, error logging is controlled only with the +\fB\-\-log\-error\fR +option\&. If it is given, messages go to the named error file\&. Otherwise, messages go to the default error file\&. +.PP +Normally, you should not edit the +\fBmysqld_safe\fR +script\&. Instead, configure +\fBmysqld_safe\fR +by using command\-line options or options in the +[mysqld_safe] +section of a +my\&.cnf +option file\&. In rare cases, it might be necessary to edit +\fBmysqld_safe\fR +to get it to start the server properly\&. However, if you do this, your modified version of +\fBmysqld_safe\fR +might be overwritten if you upgrade MySQL in the future, so you should make a copy of your edited version that you can reinstall\&. +.PP +On NetWare, +\fBmysqld_safe\fR +is a NetWare Loadable Module (NLM) that is ported from the original Unix shell script\&. It starts the server as follows: +.sp +.RS 4 +.ie n \{\ +\h'-04' 1.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 1." 4.2 +.\} +Runs a number of system and option checks\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04' 2.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 2." 4.2 +.\} +Runs a check on +MyISAM +tables\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04' 3.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 3." 4.2 +.\} +Provides a screen presence for the MySQL server\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04' 4.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 4." 4.2 +.\} +Starts +\fBmysqld\fR, monitors it, and restarts it if it terminates in error\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04' 5.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 5." 4.2 +.\} +Sends error messages from +\fBmysqld\fR +to the +\fIhost_name\fR\&.err +file in the data directory\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04' 6.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 6." 4.2 +.\} +Sends +\fBmysqld_safe\fR +screen output to the +\fIhost_name\fR\&.safe +file in the data directory\&. +.RE +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/mysqldump.1 b/database/man/man1/mysqldump.1 new file mode 100644 index 0000000..14bf4f6 --- /dev/null +++ b/database/man/man1/mysqldump.1 @@ -0,0 +1,2319 @@ +'\" t +.\" Title: \fBmysqldump\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBMYSQLDUMP\FR" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" mysqldump +.\" dumping: databases and tables +.\" backups: databases and tables +.\" databases: dumping +.\" tables: dumping +.SH "NAME" +mysqldump \- a database backup program +.SH "SYNOPSIS" +.HP \w'\fBmysqldump\ [\fR\fB\fIoptions\fR\fR\fB]\ [\fR\fB\fIdb_name\fR\fR\fB\ [\fR\fB\fItbl_name\fR\fR\fB\ \&.\&.\&.]]\fR\ 'u +\fBmysqldump [\fR\fB\fIoptions\fR\fR\fB] [\fR\fB\fIdb_name\fR\fR\fB [\fR\fB\fItbl_name\fR\fR\fB \&.\&.\&.]]\fR +.SH "DESCRIPTION" +.PP +The +\fBmysqldump\fR +client is a backup program originally written by Igor Romanenko\&. It can be used to dump a database or a collection of databases for backup or transfer to another SQL server (not necessarily a MySQL server)\&. The dump typically contains SQL statements to create the table, populate it, or both\&. However, +\fBmysqldump\fR +can also be used to generate files in CSV, other delimited text, or XML format\&. +.PP +If you are doing a backup on the server and your tables all are +MyISAM +tables, consider using the +\fBmysqlhotcopy\fR +instead because it can accomplish faster backups and faster restores\&. See +\fBmysqlhotcopy\fR(1)\&. +.PP +There are three general ways to invoke +\fBmysqldump\fR: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqldump [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIdb_name\fR\fR\fB [\fR\fB\fItbl_name\fR\fR\fB \&.\&.\&.]\fR +shell> \fBmysqldump [\fR\fB\fIoptions\fR\fR\fB] \-\-databases \fR\fB\fIdb_name\fR\fR\fB \&.\&.\&.\fR +shell> \fBmysqldump [\fR\fB\fIoptions\fR\fR\fB] \-\-all\-databases\fR +.fi +.if n \{\ +.RE +.\} +.PP +If you do not name any tables following +\fIdb_name\fR +or if you use the +\fB\-\-databases\fR +or +\fB\-\-all\-databases\fR +option, entire databases are dumped\&. +.PP +\fBmysqldump\fR +does not dump the +INFORMATION_SCHEMA +database by default\&. As of MySQL 5\&.1\&.38, +\fBmysqldump\fR +dumps +INFORMATION_SCHEMA +if you name it explicitly on the command line, although currently you must also use the +\fB\-\-skip\-lock\-tables\fR +option\&. Before 5\&.1\&.38, +\fBmysqldump\fR +silently ignores +INFORMATION_SCHEMA +even if you name it explicitly on the command line\&. +.PP +To see a list of the options your version of +\fBmysqldump\fR +supports, execute +\fBmysqldump \-\-help\fR\&. +.PP +Some +\fBmysqldump\fR +options are shorthand for groups of other options: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Use of +\fB\-\-opt\fR +is the same as specifying +\fB\-\-add\-drop\-table\fR, +\fB\-\-add\-locks\fR, +\fB\-\-create\-options\fR, +\fB\-\-disable\-keys\fR, +\fB\-\-extended\-insert\fR, +\fB\-\-lock\-tables\fR, +\fB\-\-quick\fR, and +\fB\-\-set\-charset\fR\&. All of the options that +\fB\-\-opt\fR +stands for also are on by default because +\fB\-\-opt\fR +is on by default\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Use of +\fB\-\-compact\fR +is the same as specifying +\fB\-\-skip\-add\-drop\-table\fR, +\fB\-\-skip\-add\-locks\fR, +\fB\-\-skip\-comments\fR, +\fB\-\-skip\-disable\-keys\fR, and +\fB\-\-skip\-set\-charset\fR +options\&. +.RE +.PP +To reverse the effect of a group option, uses its +\fB\-\-skip\-\fR\fB\fIxxx\fR\fR +form (\fB\-\-skip\-opt\fR +or +\fB\-\-skip\-compact\fR)\&. It is also possible to select only part of the effect of a group option by following it with options that enable or disable specific features\&. Here are some examples: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +To select the effect of +\fB\-\-opt\fR +except for some features, use the +\fB\-\-skip\fR +option for each feature\&. To disable extended inserts and memory buffering, use +\fB\-\-opt\fR +\fB\-\-skip\-extended\-insert\fR +\fB\-\-skip\-quick\fR\&. (Actually, +\fB\-\-skip\-extended\-insert\fR +\fB\-\-skip\-quick\fR +is sufficient because +\fB\-\-opt\fR +is on by default\&.) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +To reverse +\fB\-\-opt\fR +for all features except index disabling and table locking, use +\fB\-\-skip\-opt\fR +\fB\-\-disable\-keys\fR +\fB\-\-lock\-tables\fR\&. +.RE +.PP +When you selectively enable or disable the effect of a group option, order is important because options are processed first to last\&. For example, +\fB\-\-disable\-keys\fR +\fB\-\-lock\-tables\fR +\fB\-\-skip\-opt\fR +would not have the intended effect; it is the same as +\fB\-\-skip\-opt\fR +by itself\&. +.PP +\fBmysqldump\fR +can retrieve and dump table contents row by row, or it can retrieve the entire content from a table and buffer it in memory before dumping it\&. Buffering in memory can be a problem if you are dumping large tables\&. To dump tables row by row, use the +\fB\-\-quick\fR +option (or +\fB\-\-opt\fR, which enables +\fB\-\-quick\fR)\&. The +\fB\-\-opt\fR +option (and hence +\fB\-\-quick\fR) is enabled by default, so to enable memory buffering, use +\fB\-\-skip\-quick\fR\&. +.PP +If you are using a recent version of +\fBmysqldump\fR +to generate a dump to be reloaded into a very old MySQL server, you should not use the +\fB\-\-opt\fR +or +\fB\-\-extended\-insert\fR +option\&. Use +\fB\-\-skip\-opt\fR +instead\&. +.if n \{\ +.sp +.\} +.RS 4 +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +.ps +1 +\fBNote\fR +.ps -1 +.br +.PP +\fBmysqldump\fR +from MySQL 5\&.1\&.21 cannot be used to create dumps from MySQL server 5\&.1\&.20 and older\&. This issue is fixed in MySQL 5\&.1\&.22\&. (\m[blue]\fBBug#30123\fR\m[]\&\s-2\u[1]\d\s+2) +.sp .5v +.RE +.PP +\fBmysqldump\fR +supports the following options, which can be specified on the command line or in the +[mysqldump] +and +[client] +option file groups\&. +\fBmysqldump\fR +also supports the options for processing option files described at +Section\ \&4.2.3.3.1, \(lqCommand-Line Options that Affect Option-File Handling\(rq\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: help option +.\" help option: mysqldump +\fB\-\-help\fR, +\fB\-?\fR +.sp +Display a help message and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: add-drop-database option +.\" add-drop-database option: mysqldump +\fB\-\-add\-drop\-database\fR +.sp +Add a +DROP DATABASE +statement before each +CREATE DATABASE +statement\&. This option is typically used in conjunction with the +\fB\-\-all\-databases\fR +or +\fB\-\-databases\fR +option because no +CREATE DATABASE +statements are written unless one of those options is specified\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: add-drop-table option +.\" add-drop-table option: mysqldump +\fB\-\-add\-drop\-table\fR +.sp +Add a +DROP TABLE +statement before each +CREATE TABLE +statement\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: add-locks option +.\" add-locks option: mysqldump +\fB\-\-add\-locks\fR +.sp +Surround each table dump with +LOCK TABLES +and +UNLOCK TABLES +statements\&. This results in faster inserts when the dump file is reloaded\&. See +Section\ \&7.2.21, \(lqSpeed of INSERT Statements\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: all-databases option +.\" all-databases option: mysqldump +\fB\-\-all\-databases\fR, +\fB\-A\fR +.sp +Dump all tables in all databases\&. This is the same as using the +\fB\-\-databases\fR +option and naming all the databases on the command line\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: all-tablespaces option +.\" all-tablespaces option: mysqldump +\fB\-\-all\-tablespaces\fR, +\fB\-Y\fR +.sp +Adds to a table dump all SQL statements needed to create any tablespaces used by an +NDBCLUSTER +table\&. This information is not otherwise included in the output from +\fBmysqldump\fR\&. This option is currently relevant only to MySQL Cluster tables\&. +.sp +This option was added in MySQL 5\&.1\&.6\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: allow-keywords option +.\" allow-keywords option: mysqldump +\fB\-\-allow\-keywords\fR +.sp +Allow creation of column names that are keywords\&. This works by prefixing each column name with the table name\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: character-sets-dir option +.\" character-sets-dir option: mysqldump +\fB\-\-character\-sets\-dir=\fR\fB\fIpath\fR\fR +.sp +The directory where character sets are installed\&. See +Section\ \&9.5, \(lqCharacter Set Configuration\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: comments option +.\" comments option: mysqldump +\fB\-\-comments\fR, +\fB\-i\fR +.sp +Write additional information in the dump file such as program version, server version, and host\&. This option is enabled by default\&. To suppress this additional information, use +\fB\-\-skip\-comments\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: compact option +.\" compact option: mysqldump +\fB\-\-compact\fR +.sp +Produce more compact output\&. This option enables the +\fB\-\-skip\-add\-drop\-table\fR, +\fB\-\-skip\-add\-locks\fR, +\fB\-\-skip\-comments\fR, +\fB\-\-skip\-disable\-keys\fR, and +\fB\-\-skip\-set\-charset\fR +options\&. +.if n \{\ +.sp +.\} +.RS 4 +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +.ps +1 +\fBNote\fR +.ps -1 +.br +Prior to MySQL 5\&.1\&.21, this option did not create valid SQL if the database dump contained views\&. The recreation of views requires the creation and removal of temporary tables and this option suppressed the removal of those temporary tables\&. As a workaround, use +\fB\-\-compact\fR +with the +\fB\-\-add\-drop\-table\fR +option and then manually adjust the dump file\&. +.sp .5v +.RE +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: compatible option +.\" compatible option: mysqldump +\fB\-\-compatible=\fR\fB\fIname\fR\fR +.sp +Produce output that is more compatible with other database systems or with older MySQL servers\&. The value of +\fIname\fR +can be +ansi, +mysql323, +mysql40, +postgresql, +oracle, +mssql, +db2, +maxdb, +no_key_options, +no_table_options, or +no_field_options\&. To use several values, separate them by commas\&. These values have the same meaning as the corresponding options for setting the server SQL mode\&. See +Section\ \&5.1.8, \(lqServer SQL Modes\(rq\&. +.sp +This option does not guarantee compatibility with other servers\&. It only enables those SQL mode values that are currently available for making dump output more compatible\&. For example, +\fB\-\-compatible=oracle\fR +does not map data types to Oracle types or use Oracle comment syntax\&. +.sp +\fIThis option requires a server version of 4\&.1\&.0 or higher\fR\&. With older servers, it does nothing\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: complete-insert option +.\" complete-insert option: mysqldump +\fB\-\-complete\-insert\fR, +\fB\-c\fR +.sp +Use complete +INSERT +statements that include column names\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: compress option +.\" compress option: mysqldump +\fB\-\-compress\fR, +\fB\-C\fR +.sp +Compress all information sent between the client and the server if both support compression\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: create-options option +.\" create-options option: mysqldump +\fB\-\-create\-options\fR, +\fB\-a\fR +.sp +Include all MySQL\-specific table options in the +CREATE TABLE +statements\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: databases option +.\" databases option: mysqldump +\fB\-\-databases\fR, +\fB\-B\fR +.sp +Dump several databases\&. Normally, +\fBmysqldump\fR +treats the first name argument on the command line as a database name and following names as table names\&. With this option, it treats all name arguments as database names\&. +CREATE DATABASE +and +USE +statements are included in the output before each new database\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: debug option +.\" debug option: mysqldump +\fB\-\-debug[=\fR\fB\fIdebug_options\fR\fR\fB]\fR, +\fB\-# [\fR\fB\fIdebug_options\fR\fR\fB]\fR +.sp +Write a debugging log\&. A typical +\fIdebug_options\fR +string is +\'d:t:o,\fIfile_name\fR\'\&. The default value is +\'d:t:o,/tmp/mysqldump\&.trace\'\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: debug-check option +.\" debug-check option: mysqldump +\fB\-\-debug\-check\fR +.sp +Print some debugging information when the program exits\&. This option was added in MySQL 5\&.1\&.21\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: debug-info option +.\" debug-info option: mysqldump +\fB\-\-debug\-info\fR +.sp +Print debugging information and memory and CPU usage statistics when the program exits\&. This option was added in MySQL 5\&.1\&.14\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: default-character-set option +.\" default-character-set option: mysqldump +\fB\-\-default\-character\-set=\fR\fB\fIcharset_name\fR\fR +.sp +Use +\fIcharset_name\fR +as the default character set\&. See +Section\ \&9.5, \(lqCharacter Set Configuration\(rq\&. If no character set is specified, +\fBmysqldump\fR +uses +utf8, and earlier versions use +latin1\&. +.sp +Prior to MySQL 5\&.1\&.38, this option has no effect for output data files produced by using the +\fB\-\-tab\fR +option\&. See the description for that option\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: defaults-extra-file option +.\" defaults-extra-file option: mysqldump +\fB\-\-defaults\-extra\-file=\fR\fB\fIfilename\fR\fR +.sp +Set \fB\fIfilename\fR\fR as the file to read default options from after the global defaults files has been read\&. +Must be given as first option\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: defaults-file option +.\" defaults-file option: mysqldump +\fB\-\-defaults\-file=\fR\fB\fIfilename\fR\fR +.sp +Set \fB\fIfilename\fR\fR as the file to read default options from, override global defaults files\&. +Must be given as first option\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: delayed-insert option +.\" delayed-insert option: mysqldump +\fB\-\-delayed\-insert\fR +.sp +Write +INSERT DELAYED +statements rather than +INSERT +statements\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: delete-master-logs option +.\" delete-master-logs option: mysqldump +\fB\-\-delete\-master\-logs\fR +.sp +On a master replication server, delete the binary logs by sending a +PURGE BINARY LOGS +statement to the server after performing the dump operation\&. This option automatically enables +\fB\-\-master\-data\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: disable-keys option +.\" disable-keys option: mysqldump +\fB\-\-disable\-keys\fR, +\fB\-K\fR +.sp +For each table, surround the +INSERT +statements with +/*!40000 ALTER TABLE \fItbl_name\fR DISABLE KEYS */; +and +/*!40000 ALTER TABLE \fItbl_name\fR ENABLE KEYS */; +statements\&. This makes loading the dump file faster because the indexes are created after all rows are inserted\&. This option is effective only for nonunique indexes of +MyISAM +tables\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: dump-date option +.\" dump-date option: mysqldump +\fB\-\-dump\-date\fR +.sp +If the +\fB\-\-comments\fR +option is given, +\fBmysqldump\fR +produces a comment at the end of the dump of the following form: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\-\- Dump completed on \fIDATE\fR +.fi +.if n \{\ +.RE +.\} +.sp +However, the date causes dump files taken at different times to appear to be different, even if the data are otherwise identical\&. +\fB\-\-dump\-date\fR +and +\fB\-\-skip\-dump\-date\fR +control whether the date is added to the comment\&. The default is +\fB\-\-dump\-date\fR +(include the date in the comment)\&. +\fB\-\-skip\-dump\-date\fR +suppresses date printing\&. This option was added in MySQL 5\&.1\&.23\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: events option +.\" events option: mysqldump +\fB\-\-events\fR, +\fB\-E\fR +.sp +Include Event Scheduler events for the dumped databases in the output\&. This option was added in MySQL 5\&.1\&.8\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: extended-insert option +.\" extended-insert option: mysqldump +\fB\-\-extended\-insert\fR, +\fB\-e\fR +.sp +Use multiple\-row +INSERT +syntax that include several +VALUES +lists\&. This results in a smaller dump file and speeds up inserts when the file is reloaded\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: fields-terminated-by option +.\" fields-terminated-by option: mysqldump +\fB\-\-fields\-terminated\-by=\&.\&.\&.\fR, +.\" mysqldump: fields-enclosed-by option +.\" fields-enclosed-by option: mysqldump +\fB\-\-fields\-enclosed\-by=\&.\&.\&.\fR, +.\" mysqldump: fields-optionally-enclosed-by option +.\" fields-optionally-enclosed-by option: mysqldump +\fB\-\-fields\-optionally\-enclosed\-by=\&.\&.\&.\fR, +.\" mysqldump: fields-escaped-by option +.\" fields-escaped-by option: mysqldump +\fB\-\-fields\-escaped\-by=\&.\&.\&.\fR +.sp +These options are used with the +\fB\-\-tab\fR +option and have the same meaning as the corresponding +FIELDS +clauses for +LOAD DATA INFILE\&. See +Section\ \&12.2.6, \(lqLOAD DATA INFILE Syntax\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: first-slave option +.\" first-slave option: mysqldump +\fB\-\-first\-slave\fR +.sp +Deprecated\&. Use +\fB\-\-lock\-all\-tables\fR +instead\&. +\fB\-\-first\-slave\fR +is removed in MySQL 5\&.5\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: flush-logs option +.\" flush-logs option: mysqldump +\fB\-\-flush\-logs\fR, +\fB\-F\fR +.sp +Flush the MySQL server log files before starting the dump\&. This option requires the +RELOAD +privilege\&. If you use this option in combination with the +\fB\-\-all\-databases\fR +option, the logs are flushed +\fIfor each database dumped\fR\&. The exception is when using +\fB\-\-lock\-all\-tables\fR +or +\fB\-\-master\-data\fR: In this case, the logs are flushed only once, corresponding to the moment that all tables are locked\&. If you want your dump and the log flush to happen at exactly the same moment, you should use +\fB\-\-flush\-logs\fR +together with either +\fB\-\-lock\-all\-tables\fR +or +\fB\-\-master\-data\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: flush-privileges option +.\" flush-privileges option: mysqldump +\fB\-\-flush\-privileges\fR +.sp +Send a +FLUSH PRIVILEGES +statement to the server after dumping the +mysql +database\&. This option should be used any time the dump contains the +mysql +database and any other database that depends on the data in the +mysql +database for proper restoration\&. This option was added in MySQL 5\&.1\&.12\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: force option +.\" force option: mysqldump +\fB\-\-force\fR, +\fB\-f\fR +.sp +Continue even if an SQL error occurs during a table dump\&. +.sp +One use for this option is to cause +\fBmysqldump\fR +to continue executing even when it encounters a view that has become invalid because the definition refers to a table that has been dropped\&. Without +\fB\-\-force\fR, +\fBmysqldump\fR +exits with an error message\&. With +\fB\-\-force\fR, +\fBmysqldump\fR +prints the error message, but it also writes an SQL comment containing the view definition to the dump output and continues executing\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: host option +.\" host option: mysqldump +\fB\-\-host=\fR\fB\fIhost_name\fR\fR, +\fB\-h \fR\fB\fIhost_name\fR\fR +.sp +Dump data from the MySQL server on the given host\&. The default host is +localhost\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: hex-blob option +.\" hex-blob option: mysqldump +\fB\-\-hex\-blob\fR +.sp +Dump binary columns using hexadecimal notation (for example, +\'abc\' +becomes +0x616263)\&. The affected data types are +BINARY, +VARBINARY, the +BLOB +types, and +BIT\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: ignore-table option +.\" ignore-table option: mysqldump +\fB\-\-ignore\-table=\fR\fB\fIdb_name\&.tbl_name\fR\fR +.sp +Do not dump the given table, which must be specified using both the database and table names\&. To ignore multiple tables, use this option multiple times\&. This option also can be used to ignore views\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: insert-ignore option +.\" insert-ignore option: mysqldump +\fB\-\-insert\-ignore\fR +.sp +Write +INSERT IGNORE +statements rather than +INSERT +statements\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: lines-terminated-by option +.\" lines-terminated-by option: mysqldump +\fB\-\-lines\-terminated\-by=\&.\&.\&.\fR +.sp +This option is used with the +\fB\-\-tab\fR +option and has the same meaning as the corresponding +LINES +clause for +LOAD DATA INFILE\&. See +Section\ \&12.2.6, \(lqLOAD DATA INFILE Syntax\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: lock-all-tables option +.\" lock-all-tables option: mysqldump +\fB\-\-lock\-all\-tables\fR, +\fB\-x\fR +.sp +Lock all tables across all databases\&. This is achieved by acquiring a global read lock for the duration of the whole dump\&. This option automatically turns off +\fB\-\-single\-transaction\fR +and +\fB\-\-lock\-tables\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: lock-tables option +.\" lock-tables option: mysqldump +\fB\-\-lock\-tables\fR, +\fB\-l\fR +.sp +For each dumped database, lock all tables to be dumped before dumping them\&. The tables are locked with +READ LOCAL +to allow concurrent inserts in the case of +MyISAM +tables\&. For transactional tables such as +InnoDB, +\fB\-\-single\-transaction\fR +is a much better option than +\fB\-\-lock\-tables\fR +because it does not need to lock the tables at all\&. +.sp +Because +\fB\-\-lock\-tables\fR +locks tables for each database separately, this option does not guarantee that the tables in the dump file are logically consistent between databases\&. Tables in different databases may be dumped in completely different states\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: log-error option +.\" log-error option: mysqldump +\fB\-\-log\-error=\fR\fB\fIfile_name\fR\fR +.sp +Log warnings and errors by appending them to the named file\&. The default is to do no logging\&. This option was added in MySQL 5\&.1\&.18\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: master-data option +.\" master-data option: mysqldump +\fB\-\-master\-data[=\fR\fB\fIvalue\fR\fR\fB]\fR +.sp +Use this option to dump a master replication server to produce a dump file that can be used to set up another server as a slave of the master\&. It causes the dump output to include a +CHANGE MASTER TO +statement that indicates the binary log coordinates (file name and position) of the dumped server\&. These are the master server coordinates from which the slave should start replicating after you load the dump file into the slave\&. +.sp +If the option value is 2, the +CHANGE MASTER TO +statement is written as an SQL comment, and thus is informative only; it has no effect when the dump file is reloaded\&. If the option value is 1, the statement is not written as a comment and takes effect when the dump file is reloaded\&. If no option value is specified, the default value is 1\&. +.sp +This option requires the +RELOAD +privilege and the binary log must be enabled\&. +.sp +The +\fB\-\-master\-data\fR +option automatically turns off +\fB\-\-lock\-tables\fR\&. It also turns on +\fB\-\-lock\-all\-tables\fR, unless +\fB\-\-single\-transaction\fR +also is specified, in which case, a global read lock is acquired only for a short time at the beginning of the dump (see the description for +\fB\-\-single\-transaction\fR)\&. In all cases, any action on logs happens at the exact moment of the dump\&. +.sp +It is also possible to set up a slave by dumping an existing slave of the master\&. To do this, use the following procedure on the existing slave: +.sp +.RS 4 +.ie n \{\ +\h'-04' 1.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 1." 4.2 +.\} +Stop the slave\'s SQL thread and get its current status: +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql> \fBSTOP SLAVE SQL_THREAD;\fR +mysql> \fBSHOW SLAVE STATUS;\fR +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04' 2.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 2." 4.2 +.\} +From the output of the +SHOW SLAVE STATUS +statement, the binary log coordinates of the master server from which the new slave should start replicating are the values of the +Relay_Master_Log_File +and +Exec_Master_Log_Pos +fields\&. Denote those values as +\fIfile_name\fR +and +\fIfile_pos\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04' 3.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 3." 4.2 +.\} +Dump the slave server: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqldump \-\-master\-data=2 \-\-all\-databases > dumpfile\fR +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04' 4.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 4." 4.2 +.\} +Restart the slave: +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql> \fBSTART SLAVE;\fR +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04' 5.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 5." 4.2 +.\} +On the new slave, load the dump file: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql < dumpfile\fR +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04' 6.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 6." 4.2 +.\} +On the new slave, set the replication coordinates to those of the master server obtained earlier: +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysql> \fBCHANGE MASTER TO\fR + \-> \fBMASTER_LOG_FILE = \'\fR\fB\fIfile_name\fR\fR\fB\', MASTER_LOG_POS = \fR\fB\fIfile_pos\fR\fR\fB;\fR +.fi +.if n \{\ +.RE +.\} +.sp +The +CHANGE MASTER TO +statement might also need other parameters, such as +MASTER_HOST +to point the slave to the correct master server host\&. Add any such parameters as necessary\&. +.RE +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: max-allowed-packet option +.\" max-allowed-packet option: mysqldump +\fB\-\-max\-allowed\-packet=\fR\fB\fIlength\fR\fR +.sp +Sets the maximum packet length to send to or recieve from server\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: net-buffer-length option +.\" net-buffer-length option: mysqldump +\fB\-\-net\-buffer\-length=\fR\fB\fIlength\fR\fR +.sp +Sets the buffer size for TCP/IP and socket communication\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: no-autocommit option +.\" no-autocommit option: mysqldump +\fB\-\-no\-autocommit\fR +.sp +Enclose the +INSERT +statements for each dumped table within +SET autocommit = 0 +and +COMMIT +statements\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: no-create-db option +.\" no-create-db option: mysqldump +\fB\-\-no\-create\-db\fR, +\fB\-n\fR +.sp +This option suppresses the +CREATE DATABASE +statements that are otherwise included in the output if the +\fB\-\-databases\fR +or +\fB\-\-all\-databases\fR +option is given\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: no-create-info option +.\" no-create-info option: mysqldump +\fB\-\-no\-create\-info\fR, +\fB\-t\fR +.sp +Do not write +CREATE TABLE +statements that re\-create each dumped table\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: no-data option +.\" no-data option: mysqldump +\fB\-\-no\-data\fR, +\fB\-d\fR +.sp +Do not write any table row information (that is, do not dump table contents)\&. This is useful if you want to dump only the +CREATE TABLE +statement for the table (for example, to create an empty copy of the table by loading the dump file)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: no-defaults option +.\" no-defaults option: mysqldump +\fB\-\-no\-defaults\fR +.sp +Do not read default options from any option file\&. This must be given as the first argument\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: no-set-names option +.\" no-set-names option: mysqldump +\fB\-\-no\-set\-names\fR, +\fB\-N\fR +.sp +This has the same effect as +\fB\-\-skip\-set\-charset\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: opt option +.\" opt option: mysqldump +\fB\-\-opt\fR +.sp +This option is shorthand\&. It is the same as specifying +\fB\-\-add\-drop\-table\fR +\fB\-\-add\-locks\fR +\fB\-\-create\-options\fR +\fB\-\-disable\-keys\fR +\fB\-\-extended\-insert\fR +\fB\-\-lock\-tables\fR +\fB\-\-quick\fR +\fB\-\-set\-charset\fR\&. It should give you a fast dump operation and produce a dump file that can be reloaded into a MySQL server quickly\&. +.sp +\fIThe \fR\fI\fB\-\-opt\fR\fR\fI option is enabled by default\&. Use \fR\fI\fB\-\-skip\-opt\fR\fR\fI to disable it\&.\fR +See the discussion at the beginning of this section for information about selectively enabling or disabling a subset of the options affected by +\fB\-\-opt\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: order-by-primary option +.\" order-by-primary option: mysqldump +\fB\-\-order\-by\-primary\fR +.sp +Dump each table\'s rows sorted by its primary key, or by its first unique index, if such an index exists\&. This is useful when dumping a +MyISAM +table to be loaded into an +InnoDB +table, but will make the dump operation take considerably longer\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: password option +.\" password option: mysqldump +\fB\-\-password[=\fR\fB\fIpassword\fR\fR\fB]\fR, +\fB\-p[\fR\fB\fIpassword\fR\fR\fB]\fR +.sp +The password to use when connecting to the server\&. If you use the short option form (\fB\-p\fR), you +\fIcannot\fR +have a space between the option and the password\&. If you omit the +\fIpassword\fR +value following the +\fB\-\-password\fR +or +\fB\-p\fR +option on the command line, +\fBmysqldump\fR +prompts for one\&. +.sp +Specifying a password on the command line should be considered insecure\&. See +Section\ \&5.3.2.2, \(lqEnd-User Guidelines for Password Security\(rq\&. You can use an option file to avoid giving the password on the command line\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: pipe option +.\" pipe option: mysqldump +\fB\-\-pipe\fR, +\fB\-W\fR +.sp +On Windows, connect to the server via a named pipe\&. This option applies only if the server supports named\-pipe connections\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: port option +.\" port option: mysqldump +\fB\-\-port=\fR\fB\fIport_num\fR\fR, +\fB\-P \fR\fB\fIport_num\fR\fR +.sp +The TCP/IP port number to use for the connection\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: protocol option +.\" protocol option: mysqldump +\fB\-\-protocol={TCP|SOCKET|PIPE|MEMORY}\fR +.sp +The connection protocol to use for connecting to the server\&. It is useful when the other connection parameters normally would cause a protocol to be used other than the one you want\&. For details on the allowable values, see +Section\ \&4.2.2, \(lqConnecting to the MySQL Server\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: quick option +.\" quick option: mysqldump +\fB\-\-quick\fR, +\fB\-q\fR +.sp +This option is useful for dumping large tables\&. It forces +\fBmysqldump\fR +to retrieve rows for a table from the server a row at a time rather than retrieving the entire row set and buffering it in memory before writing it out\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: print-defaults option +.\" print-defaults option: mysqldump +\fB\-\-print\-defaults\fR +.sp +Print the program argument list and exit\&. This must begiven as the first argument\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: quote-names option +.\" quote-names option: mysqldump +\fB\-\-quote\-names\fR, +\fB\-Q\fR +.sp +Quote identifiers (such as database, table, and column names) within +\(lq`\(rq +characters\&. If the +ANSI_QUOTES +SQL mode is enabled, identifiers are quoted within +\(lq"\(rq +characters\&. This option is enabled by default\&. It can be disabled with +\fB\-\-skip\-quote\-names\fR, but this option should be given after any option such as +\fB\-\-compatible\fR +that may enable +\fB\-\-quote\-names\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: replace option +.\" replace option: mysqldump +\fB\-\-replace\fR +.sp +Write +REPLACE +statements rather than +INSERT +statements\&. This option was added in MySQL 5\&.1\&.3\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: result-file option +.\" result-file option: mysqldump +\fB\-\-result\-file=\fR\fB\fIfile_name\fR\fR, +\fB\-r \fR\fB\fIfile_name\fR\fR +.sp +Direct output to a given file\&. This option should be used on Windows to prevent newline +\(lq\en\(rq +characters from being converted to +\(lq\er\en\(rq +carriage return/newline sequences\&. The result file is created and its previous contents overwritten, even if an error occurs while generating the dump\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: routines option +.\" routines option: mysqldump +\fB\-\-routines\fR, +\fB\-R\fR +.sp +Included stored routines (procedures and functions) for the dumped databases in the output\&. Use of this option requires the +SELECT +privilege for the +mysql\&.proc +table\&. The output generated by using +\fB\-\-routines\fR +contains +CREATE PROCEDURE +and +CREATE FUNCTION +statements to re\-create the routines\&. However, these statements do not include attributes such as the routine creation and modification timestamps\&. This means that when the routines are reloaded, they will be created with the timestamps equal to the reload time\&. +.sp +If you require routines to be re\-created with their original timestamp attributes, do not use +\fB\-\-routines\fR\&. Instead, dump and reload the contents of the +mysql\&.proc +table directly, using a MySQL account that has appropriate privileges for the +mysql +database\&. +.sp +This option was added in MySQL 5\&.1\&.2\&. Before that, stored routines are not dumped\&. Routine +DEFINER +values are not dumped until MySQL 5\&.1\&.8\&. This means that before 5\&.1\&.8, when routines are reloaded, they will be created with the definer set to the reloading user\&. If you require routines to be re\-created with their original definer, dump and load the contents of the +mysql\&.proc +table directly as described earlier\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: set-charset option +.\" set-charset option: mysqldump +\fB\-\-set\-charset\fR +.sp +Add +SET NAMES \fIdefault_character_set\fR +to the output\&. This option is enabled by default\&. To suppress the +SET NAMES +statement, use +\fB\-\-skip\-set\-charset\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: single-transaction option +.\" single-transaction option: mysqldump +\fB\-\-single\-transaction\fR +.sp +This option sends a +START TRANSACTION +SQL statement to the server before dumping data\&. It is useful only with transactional tables such as +InnoDB, because then it dumps the consistent state of the database at the time when +BEGIN +was issued without blocking any applications\&. +.sp +When using this option, you should keep in mind that only +InnoDB +tables are dumped in a consistent state\&. For example, any +MyISAM +or +MEMORY +tables dumped while using this option may still change state\&. +.sp +While a +\fB\-\-single\-transaction\fR +dump is in process, to ensure a valid dump file (correct table contents and binary log coordinates), no other connection should use the following statements: +ALTER TABLE, +CREATE TABLE, +DROP TABLE, +RENAME TABLE, +TRUNCATE TABLE\&. A consistent read is not isolated from those statements, so use of them on a table to be dumped can cause the +SELECT +that is performed by +\fBmysqldump\fR +to retrieve the table contents to obtain incorrect contents or fail\&. +.sp +The +\fB\-\-single\-transaction\fR +option and the +\fB\-\-lock\-tables\fR +option are mutually exclusive because +LOCK TABLES +causes any pending transactions to be committed implicitly\&. +.sp +This option is not supported for MySQL Cluster tables; the results cannot be guaranteed to be consistent due to the fact that the +NDBCLUSTER +storage engine supports only the +READ_COMMITTED +transaction isolation level\&. You should always use +NDB +backup and restore instead\&. +.sp +To dump large tables, you should combine the +\fB\-\-single\-transaction\fR +option with +\fB\-\-quick\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: skip-comments option +.\" skip-comments option: mysqldump +\fB\-\-skip\-comments\fR +.sp +See the description for the +\fB\-\-comments\fR +option\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: skip-opt option +.\" skip-opt option: mysqldump +\fB\-\-skip\-opt\fR +.sp +See the description for the +\fB\-\-opt\fR +option\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: socket option +.\" socket option: mysqldump +\fB\-\-socket=\fR\fB\fIpath\fR\fR, +\fB\-S \fR\fB\fIpath\fR\fR +.sp +For connections to +localhost, the Unix socket file to use, or, on Windows, the name of the named pipe to use\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: SSL options +.\" SSL options: mysqldump +\fB\-\-ssl*\fR +.sp +Options that begin with +\fB\-\-ssl\fR +specify whether to connect to the server via SSL and indicate where to find SSL keys and certificates\&. See +Section\ \&5.5.6.3, \(lqSSL Command Options\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: tab option +.\" tab option: mysqldump +\fB\-\-tab=\fR\fB\fIpath\fR\fR, +\fB\-T \fR\fB\fIpath\fR\fR +.sp +Produce tab\-separated text\-format data files\&. For each dumped table, +\fBmysqldump\fR +creates a +\fItbl_name\fR\&.sql +file that contains the +CREATE TABLE +statement that creates the table, and the server writes a +\fItbl_name\fR\&.txt +file that contains its data\&. The option value is the directory in which to write the files\&. +.if n \{\ +.sp +.\} +.RS 4 +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +.ps +1 +\fBNote\fR +.ps -1 +.br +This option should be used only when +\fBmysqldump\fR +is run on the same machine as the +\fBmysqld\fR +server\&. You must have the +FILE +privilege, and the server must have permission to write files in the directory that you specify\&. +.sp .5v +.RE +By default, the +\&.txt +data files are formatted using tab characters between column values and a newline at the end of each line\&. The format can be specified explicitly using the +\fB\-\-fields\-\fR\fB\fIxxx\fR\fR +and +\fB\-\-lines\-terminated\-by\fR +options\&. +.sp +As of MySQL 5\&.1\&.38, column values are converted to the character set specified by the +\fB\-\-default\-character\-set\fR +option\&. Prior to 5\&.1\&.38 or if no such option is present, values are dumped using the +binary +character set\&. In effect, there is no character set conversion\&. If a table contains columns in several character sets, the output data file will as well and you may not be able to reload the file correctly\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: tables option +.\" tables option: mysqldump +\fB\-\-tables\fR +.sp +Override the +\fB\-\-databases\fR +or +\fB\-B\fR +option\&. +\fBmysqldump\fR +regards all name arguments following the option as table names\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: triggers option +.\" triggers option: mysqldump +\fB\-\-triggers\fR +.sp +Include triggers for each dumped table in the output\&. This option is enabled by default; disable it with +\fB\-\-skip\-triggers\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: tz-utc option +.\" tz-utc option: mysqldump +\fB\-\-tz\-utc\fR +.sp +This option enables +TIMESTAMP +columns to be dumped and reloaded between servers in different time zones\&. +\fBmysqldump\fR +sets its connection time zone to UTC and adds +SET TIME_ZONE=\'+00:00\' +to the dump file\&. Without this option, +TIMESTAMP +columns are dumped and reloaded in the time zones local to the source and destination servers, which can cause the values to change if the servers are in different time zones\&. +\fB\-\-tz\-utc\fR +also protects against changes due to daylight saving time\&. +\fB\-\-tz\-utc\fR +is enabled by default\&. To disable it, use +\fB\-\-skip\-tz\-utc\fR\&. This option was added in MySQL 5\&.1\&.2\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: user option +.\" user option: mysqldump +\fB\-\-user=\fR\fB\fIuser_name\fR\fR, +\fB\-u \fR\fB\fIuser_name\fR\fR +.sp +The MySQL user name to use when connecting to the server\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: verbose option +.\" verbose option: mysqldump +\fB\-\-verbose\fR, +\fB\-v\fR +.sp +Verbose mode\&. Print more information about what the program does\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: version option +.\" version option: mysqldump +\fB\-\-version\fR, +\fB\-V\fR +.sp +Display version information and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: where option +.\" where option: mysqldump +\fB\-\-where=\'\fR\fB\fIwhere_condition\fR\fR\fB\'\fR, +\fB\-w \'\fR\fB\fIwhere_condition\fR\fR\fB\'\fR +.sp +Dump only rows selected by the given +WHERE +condition\&. Quotes around the condition are mandatory if it contains spaces or other characters that are special to your command interpreter\&. +.sp +Examples: +.sp +.if n \{\ +.RS 4 +.\} +.nf +\-\-where="user=\'jimf\'" +\-w"userid>1" +\-w"userid<1" +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: xml option +.\" xml option: mysqldump +\fB\-\-xml\fR, +\fB\-X\fR +.sp +Write dump output as well\-formed XML\&. +.sp +\fBNULL\fR\fB, \fR\fB\'NULL\'\fR\fB, and Empty Values\fR: For a column named +\fIcolumn_name\fR, the +NULL +value, an empty string, and the string value +\'NULL\' +are distinguished from one another in the output generated by this option as follows\&. +.TS +allbox tab(:); +l lx. +T{ +\fBValue\fR: +T}:T{ +\fBXML Representation\fR: +T} +T{ +NULL (\fIunknown value\fR) +T}:T{ + +T} +T{ +\'\' (\fIempty string\fR) +T}:T{ + +T} +T{ +\'NULL\' (\fIstring value\fR) +T}:T{ +NULL +T} +.TE +.sp 1 +Beginning with MySQL 5\&.1\&.12, the output from the +\fBmysql\fR +client when run using the +\fB\-\-xml\fR +option also follows the preceding rules\&. (See +the section called \(lqMYSQL OPTIONS\(rq\&.) +.sp +Beginning with MySQL 5\&.1\&.18, XML output from +\fBmysqldump\fR +includes the XML namespace, as shown here: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqldump \-\-xml \-u root world City\fR + + + + + + + + + + + + + + +1 +Kabul +AFG +Kabol +1780000 + +\fI\&.\&.\&.\fR + +4079 +Rafah +PSE +Rafah +92020 + + + + +.fi +.if n \{\ +.RE +.\} +.sp +.RE +.PP +You can also set the following variables by using +\fB\-\-\fR\fB\fIvar_name\fR\fR\fB=\fR\fB\fIvalue\fR\fR +syntax: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +max_allowed_packet +.sp +The maximum size of the buffer for client/server communication\&. The maximum is 1GB\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +net_buffer_length +.sp +The initial size of the buffer for client/server communication\&. When creating multiple\-row +INSERT +statements (as with the +\fB\-\-extended\-insert\fR +or +\fB\-\-opt\fR +option), +\fBmysqldump\fR +creates rows up to +net_buffer_length +length\&. If you increase this variable, you should also ensure that the +net_buffer_length +variable in the MySQL server is at least this large\&. +.RE +.PP +A common use of +\fBmysqldump\fR +is for making a backup of an entire database: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqldump \fR\fB\fIdb_name\fR\fR\fB > \fR\fB\fIbackup\-file\&.sql\fR\fR +.fi +.if n \{\ +.RE +.\} +.PP +You can load the dump file back into the server like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql \fR\fB\fIdb_name\fR\fR\fB < \fR\fB\fIbackup\-file\&.sql\fR\fR +.fi +.if n \{\ +.RE +.\} +.PP +Or like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql \-e "source \fR\fB\fI/path\-to\-backup/backup\-file\&.sql\fR\fR\fB" \fR\fB\fIdb_name\fR\fR +.fi +.if n \{\ +.RE +.\} +.PP +\fBmysqldump\fR +is also very useful for populating databases by copying data from one MySQL server to another: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqldump \-\-opt \fR\fB\fIdb_name\fR\fR\fB | mysql \-\-host=\fR\fB\fIremote_host\fR\fR\fB \-C \fR\fB\fIdb_name\fR\fR +.fi +.if n \{\ +.RE +.\} +.PP +It is possible to dump several databases with one command: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqldump \-\-databases \fR\fB\fIdb_name1\fR\fR\fB [\fR\fB\fIdb_name2\fR\fR\fB \&.\&.\&.] > my_databases\&.sql\fR +.fi +.if n \{\ +.RE +.\} +.PP +To dump all databases, use the +\fB\-\-all\-databases\fR +option: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqldump \-\-all\-databases > all_databases\&.sql\fR +.fi +.if n \{\ +.RE +.\} +.PP +For +InnoDB +tables, +\fBmysqldump\fR +provides a way of making an online backup: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqldump \-\-all\-databases \-\-single\-transaction > all_databases\&.sql\fR +.fi +.if n \{\ +.RE +.\} +.PP +This backup acquires a global read lock on all tables (using +FLUSH TABLES WITH READ LOCK) at the beginning of the dump\&. As soon as this lock has been acquired, the binary log coordinates are read and the lock is released\&. If long updating statements are running when the +FLUSH +statement is issued, the MySQL server may get stalled until those statements finish\&. After that, the dump becomes lock free and does not disturb reads and writes on the tables\&. If the update statements that the MySQL server receives are short (in terms of execution time), the initial lock period should not be noticeable, even with many updates\&. +.PP +For point\-in\-time recovery (also known as +\(lqroll\-forward,\(rq +when you need to restore an old backup and replay the changes that happened since that backup), it is often useful to rotate the binary log (see +Section\ \&5.2.4, \(lqThe Binary Log\(rq) or at least know the binary log coordinates to which the dump corresponds: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqldump \-\-all\-databases \-\-master\-data=2 > all_databases\&.sql\fR +.fi +.if n \{\ +.RE +.\} +.PP +Or: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqldump \-\-all\-databases \-\-flush\-logs \-\-master\-data=2\fR + \fB> all_databases\&.sql\fR +.fi +.if n \{\ +.RE +.\} +.PP +The +\fB\-\-master\-data\fR +and +\fB\-\-single\-transaction\fR +options can be used simultaneously, which provides a convenient way to make an online backup suitable for use prior to point\-in\-time recovery if tables are stored using the +InnoDB +storage engine\&. +.PP +For more information on making backups, see +Section\ \&6.2, \(lqDatabase Backup Methods\(rq, and +Section\ \&6.3, \(lqExample Backup and Recovery Strategy\(rq\&. +.\" mysqldump: views +.\" mysqldump: problems +.\" mysqldump: workarounds +.PP +If you encounter problems backing up views, please read the section that covers restrictions on views which describes a workaround for backing up views when this fails due to insufficient privileges\&. See +Section\ \&D.4, \(lqRestrictions on Views\(rq\&. +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "NOTES" +.IP " 1." 4 +Bug#30123 +.RS 4 +\%http://bugs.mysql.com/bug.php?id=30123 +.RE +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/mysqldumpslow.1 b/database/man/man1/mysqldumpslow.1 new file mode 100644 index 0000000..5c8dac7 --- /dev/null +++ b/database/man/man1/mysqldumpslow.1 @@ -0,0 +1,325 @@ +'\" t +.\" Title: \fBmysqldumpslow\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBMYSQLDUMPSLOW\FR" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" mysqldumpslow +.SH "NAME" +mysqldumpslow \- Summarize slow query log files +.SH "SYNOPSIS" +.HP \w'\fBmysqldumpslow\ [\fR\fBoptions\fR\fB]\ [\fR\fB\fIlog_file\fR\fR\fB\ \&.\&.\&.]\fR\ 'u +\fBmysqldumpslow [\fR\fBoptions\fR\fB] [\fR\fB\fIlog_file\fR\fR\fB \&.\&.\&.]\fR +.SH "DESCRIPTION" +.PP +The MySQL slow query log contains information about queries that take a long time to execute (see +Section\ \&5.2.5, \(lqThe Slow Query Log\(rq)\&. +\fBmysqldumpslow\fR +parses MySQL slow query log files and prints a summary of their contents\&. +.PP +Normally, +\fBmysqldumpslow\fR +groups queries that are similar except for the particular values of number and string data values\&. It +\(lqabstracts\(rq +these values to +N +and +\'S\' +when displaying summary output\&. The +\fB\-a\fR +and +\fB\-n\fR +options can be used to modify value abstracting behavior\&. +.PP +Invoke +\fBmysqldumpslow\fR +like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqldumpslow [\fR\fB\fIoptions\fR\fR\fB] [\fR\fB\fIlog_file\fR\fR\fB \&.\&.\&.]\fR +.fi +.if n \{\ +.RE +.\} +.PP +\fBmysqldumpslow\fR +supports the following options\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldumpslow: help option +.\" help option: mysqldumpslow +\fB\-\-help\fR +.sp +Display a help message and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-a\fR +.sp +Do not abstract all numbers to +N +and strings to +\'S\'\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldumpslow: debug option +.\" debug option: mysqldumpslow +\fB\-\-debug\fR, +\fB\-d\fR +.sp +Run in debug mode\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-g \fR\fB\fIpattern\fR\fR +.sp +Consider only queries that match the (\fBgrep\fR\-style) pattern\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-h \fR\fB\fIhost_name\fR\fR +.sp +Host name of MySQL server for +*\-slow\&.log +file name\&. The value can contain a wildcare\&. The default is +* +(match all)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-i \fR\fB\fIname\fR\fR +.sp +Name of server instance (if using +\fBmysql\&.server\fR +startup script)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-l\fR +.sp +Do not subtract lock time from total time\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-n \fR\fB\fIN\fR\fR +.sp +Abstract numbers with at least +\fIN\fR +digits within names\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-r\fR +.sp +Reverse the sort order\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-s \fR\fB\fIsort_type\fR\fR +.sp +How to sort the output\&. The value of +\fIsort_type\fR +should be chosen from the following list: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +t, +at: Sort by query time or average query time +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +l, +al: Sort by lock time or average lock time +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +s, +as: Sort by rows sent or average rows sent +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +c: Sort by count +.RE +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-t \fR\fB\fIN\fR\fR +.sp +Display only the first +\fIN\fR +queries in the output\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldumpslow: verbose option +.\" verbose option: mysqldumpslow +\fB\-\-verbose\fR, +\fB\-v\fR +.sp +Verbose mode\&. Print more information about what the program does\&. +.RE +.PP +Example of usage: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqldumpslow\fR +Reading mysql slow query log from /usr/local/mysql/data/mysqld51\-apple\-slow\&.log +Count: 1 Time=4\&.32s (4s) Lock=0\&.00s (0s) Rows=0\&.0 (0), root[root]@localhost + insert into t2 select * from t1 +Count: 3 Time=2\&.53s (7s) Lock=0\&.00s (0s) Rows=0\&.0 (0), root[root]@localhost + insert into t2 select * from t1 limit N +Count: 3 Time=2\&.13s (6s) Lock=0\&.00s (0s) Rows=0\&.0 (0), root[root]@localhost + insert into t1 select * from t1 +.fi +.if n \{\ +.RE +.\} +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/mysqlhotcopy.1 b/database/man/man1/mysqlhotcopy.1 new file mode 100644 index 0000000..14ae0cb --- /dev/null +++ b/database/man/man1/mysqlhotcopy.1 @@ -0,0 +1,529 @@ +'\" t +.\" Title: \fBmysqlhotcopy\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBMYSQLHOTCOPY\FR" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" mysqlhotcopy +.\" dumping: databases and tables +.\" backups: databases and tables +.\" databases: dumping +.\" tables: dumping +.SH "NAME" +mysqlhotcopy \- a database backup program +.SH "SYNOPSIS" +.HP \w'\fBmysqlhotcopy\ \fR\fB\fIarguments\fR\fR\ 'u +\fBmysqlhotcopy \fR\fB\fIarguments\fR\fR +.SH "DESCRIPTION" +.PP +\fBmysqlhotcopy\fR +is a Perl script that was originally written and contributed by Tim Bunce\&. It uses +FLUSH TABLES, +LOCK TABLES, and +cp +or +scp +to make a database backup\&. It is a fast way to make a backup of the database or single tables, but it can be run only on the same machine where the database directories are located\&. +\fBmysqlhotcopy\fR +works only for backing up +MyISAM +and +ARCHIVE +tables\&. It runs on Unix and NetWare\&. +.PP +To use +\fBmysqlhotcopy\fR, you must have read access to the files for the tables that you are backing up, the +SELECT +privilege for those tables, the +RELOAD +privilege (to be able to execute +FLUSH TABLES), and the +LOCK TABLES +privilege (to be able to lock the tables)\&. +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqlhotcopy \fR\fB\fIdb_name\fR\fR\fB [\fR\fB\fI/path/to/new_directory\fR\fR\fB]\fR +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqlhotcopy \fR\fB\fIdb_name_1\fR\fR\fB \&.\&.\&. \fR\fB\fIdb_name_n\fR\fR\fB \fR\fB\fI/path/to/new_directory\fR\fR +.fi +.if n \{\ +.RE +.\} +.PP +Back up tables in the given database that match a regular expression: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqlhotcopy \fR\fB\fIdb_name\fR\fR\fB\&./\fR\fB\fIregex\fR\fR\fB/\fR +.fi +.if n \{\ +.RE +.\} +.PP +The regular expression for the table name can be negated by prefixing it with a tilde (\(lq~\(rq): +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqlhotcopy \fR\fB\fIdb_name\fR\fR\fB\&./~\fR\fB\fIregex\fR\fR\fB/\fR +.fi +.if n \{\ +.RE +.\} +.PP +\fBmysqlhotcopy\fR +supports the following options, which can be specified on the command line or in the +[mysqlhotcopy] +and +[client] +option file groups\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlhotcopy: help option +.\" help option: mysqlhotcopy +\fB\-\-help\fR, +\fB\-?\fR +.sp +Display a help message and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlhotcopy: addtodest option +.\" addtodest option: mysqlhotcopy +\fB\-\-addtodest\fR +.sp +Do not rename target directory (if it exists); merely add files to it\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlhotcopy: allowold option +.\" allowold option: mysqlhotcopy +\fB\-\-allowold\fR +.sp +Do not abort if a target exists; rename it by adding an +_old +suffix\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlhotcopy: checkpoint option +.\" checkpoint option: mysqlhotcopy +\fB\-\-checkpoint=\fR\fB\fIdb_name\fR\fR\fB\&.\fR\fB\fItbl_name\fR\fR +.sp +Insert checkpoint entries into the specified database +\fIdb_name\fR +and table +\fItbl_name\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlhotcopy: chroot option +.\" chroot option: mysqlhotcopy +\fB\-\-chroot=\fR\fB\fIpath\fR\fR +.sp +Base directory of the +\fBchroot\fR +jail in which +\fBmysqld\fR +operates\&. The +\fIpath\fR +value should match that of the +\fB\-\-chroot\fR +option given to +\fBmysqld\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlhotcopy: debug option +.\" debug option: mysqlhotcopy +\fB\-\-debug\fR +.sp +Enable debug output\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlhotcopy: dryrun option +.\" dryrun option: mysqlhotcopy +\fB\-\-dryrun\fR, +\fB\-n\fR +.sp +Report actions without performing them\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlhotcopy: flushlog option +.\" flushlog option: mysqlhotcopy +\fB\-\-flushlog\fR +.sp +Flush logs after all tables are locked\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlhotcopy: host option +.\" host option: mysqlhotcopy +\fB\-\-host=\fR\fB\fIhost_name\fR\fR, +\fB\-h \fR\fB\fIhost_name\fR\fR +.sp +The host name of the local host to use for making a TCP/IP connection to the local server\&. By default, the connection is made to +localhost +using a Unix socket file\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlhotcopy: keepold option +.\" keepold option: mysqlhotcopy +\fB\-\-keepold\fR +.sp +Do not delete previous (renamed) target when done\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlhotcopy: method option +.\" method option: mysqlhotcopy +\fB\-\-method=\fR\fB\fIcommand\fR\fR +.sp +The method for copying files (cp +or +scp)\&. The default is +cp\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlhotcopy: noindices option +.\" noindices option: mysqlhotcopy +\fB\-\-noindices\fR +.sp +Do not include full index files for +MyISAM +tables in the backup\&. This makes the backup smaller and faster\&. The indexes for reloaded tables can be reconstructed later with +\fBmyisamchk \-rq\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlhotcopy: password option +.\" password option: mysqlhotcopy +\fB\-\-password=\fR\fB\fIpassword\fR\fR, +\fB\-p\fR\fB\fIpassword\fR\fR +.sp +The password to use when connecting to the server\&. The password value is not optional for this option, unlike for other MySQL programs\&. +.sp +Specifying a password on the command line should be considered insecure\&. See +Section\ \&5.3.2.2, \(lqEnd-User Guidelines for Password Security\(rq\&. You can use an option file to avoid giving the password on the command line\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlhotcopy: port option +.\" port option: mysqlhotcopy +\fB\-\-port=\fR\fB\fIport_num\fR\fR, +\fB\-P \fR\fB\fIport_num\fR\fR +.sp +The TCP/IP port number to use when connecting to the local server\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlhotcopy: quiet option +.\" quiet option: mysqlhotcopy +\fB\-\-quiet\fR, +\fB\-q\fR +.sp +Be silent except for errors\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlhotcopy: record_log_pos option +.\" record_log_pos option: mysqlhotcopy +\fB\-\-record_log_pos=\fR\fB\fIdb_name\fR\fR\fB\&.\fR\fB\fItbl_name\fR\fR +.sp +Record master and slave status in the specified database +\fIdb_name\fR +and table +\fItbl_name\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlhotcopy: regexp option +.\" regexp option: mysqlhotcopy +\fB\-\-regexp=\fR\fB\fIexpr\fR\fR +.sp +Copy all databases with names that match the given regular expression\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlhotcopy: resetmaster option +.\" resetmaster option: mysqlhotcopy +\fB\-\-resetmaster\fR +.sp +Reset the binary log after locking all the tables\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlhotcopy: resetslave option +.\" resetslave option: mysqlhotcopy +\fB\-\-resetslave\fR +.sp +Reset the +master\&.info +file after locking all the tables\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlhotcopy: socket option +.\" socket option: mysqlhotcopy +\fB\-\-socket=\fR\fB\fIpath\fR\fR, +\fB\-S \fR\fB\fIpath\fR\fR +.sp +The Unix socket file to use for connections to +localhost\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlhotcopy: suffix option +.\" suffix option: mysqlhotcopy +\fB\-\-suffix=\fR\fB\fIstr\fR\fR +.sp +The suffix to use for names of copied databases\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlhotcopy: tmpdir option +.\" tmpdir option: mysqlhotcopy +\fB\-\-tmpdir=\fR\fB\fIpath\fR\fR +.sp +The temporary directory\&. The default is +/tmp\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlhotcopy: user option +.\" user option: mysqlhotcopy +\fB\-\-user=\fR\fB\fIuser_name\fR\fR, +\fB\-u \fR\fB\fIuser_name\fR\fR +.sp +The MySQL user name to use when connecting to the server\&. +.RE +.PP +Use +perldoc +for additional +\fBmysqlhotcopy\fR +documentation, including information about the structure of the tables needed for the +\fB\-\-checkpoint\fR +and +\fB\-\-record_log_pos\fR +options: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBperldoc mysqlhotcopy\fR +.fi +.if n \{\ +.RE +.\} +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/mysqlimport.1 b/database/man/man1/mysqlimport.1 new file mode 100644 index 0000000..662d12a --- /dev/null +++ b/database/man/man1/mysqlimport.1 @@ -0,0 +1,726 @@ +'\" t +.\" Title: \fBmysqlimport\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBMYSQLIMPORT\FR" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" mysqlimport +.\" importing: data +.\" data: importing +.\" files: text +.\" text files: importing +.SH "NAME" +mysqlimport \- a data import program +.SH "SYNOPSIS" +.HP \w'\fBmysqlimport\ [\fR\fB\fIoptions\fR\fR\fB]\ \fR\fB\fIdb_name\fR\fR\fB\ \fR\fB\fItextfile1\fR\fR\fB\ \&.\&.\&.\fR\ 'u +\fBmysqlimport [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIdb_name\fR\fR\fB \fR\fB\fItextfile1\fR\fR\fB \&.\&.\&.\fR +.SH "DESCRIPTION" +.PP +The +\fBmysqlimport\fR +client provides a command\-line interface to the +LOAD DATA INFILE +SQL statement\&. Most options to +\fBmysqlimport\fR +correspond directly to clauses of +LOAD DATA INFILE +syntax\&. See +Section\ \&12.2.6, \(lqLOAD DATA INFILE Syntax\(rq\&. +.PP +Invoke +\fBmysqlimport\fR +like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqlimport [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIdb_name\fR\fR\fB \fR\fB\fItextfile1\fR\fR\fB [\fR\fB\fItextfile2\fR\fR\fB \&.\&.\&.]\fR +.fi +.if n \{\ +.RE +.\} +.PP +For each text file named on the command line, +\fBmysqlimport\fR +strips any extension from the file name and uses the result to determine the name of the table into which to import the file\'s contents\&. For example, files named +patient\&.txt, +patient\&.text, and +patient +all would be imported into a table named +patient\&. +.PP +For additional information about +\fBmysqldump\fR, see +Section\ \&6.4, \(lqUsing mysqldump for Backups\(rq\&. +.PP +\fBmysqldump\fR +supports the following options, which can be specified on the command line or in the +[mysqldump] +and +[client] +option file groups\&. +\fBmysqldump\fR +also supports the options for processing option files described at +Section\ \&4.2.3.3.1, \(lqCommand-Line Options that Affect Option-File Handling\(rq\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlimport: help option +.\" help option: mysqlimport +\fB\-\-help\fR, +\fB\-?\fR +.sp +Display a help message and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlimport: character-sets-dir option +.\" character-sets-dir option: mysqlimport +\fB\-\-character\-sets\-dir=\fR\fB\fIpath\fR\fR +.sp +The directory where character sets are installed\&. See +Section\ \&9.5, \(lqCharacter Set Configuration\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlimport: columns option +.\" columns option: mysqlimport +\fB\-\-columns=\fR\fB\fIcolumn_list\fR\fR, +\fB\-c \fR\fB\fIcolumn_list\fR\fR +.sp +This option takes a comma\-separated list of column names as its value\&. The order of the column names indicates how to match data file columns with table columns\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlimport: compress option +.\" compress option: mysqlimport +\fB\-\-compress\fR, +\fB\-C\fR +.sp +Compress all information sent between the client and the server if both support compression\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlimport: debug option +.\" debug option: mysqlimport +\fB\-\-debug[=\fR\fB\fIdebug_options\fR\fR\fB]\fR, +\fB\-# [\fR\fB\fIdebug_options\fR\fR\fB]\fR +.sp +Write a debugging log\&. A typical +\fIdebug_options\fR +string is +\'d:t:o,\fIfile_name\fR\'\&. The default is +\'d:t:o\'\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlimport: debug-check option +.\" debug-check option: mysqlimport +\fB\-\-debug\-check\fR +.sp +Print some debugging information when the program exits\&. This option was added in MySQL 5\&.1\&.21\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlimport: debug-info option +.\" debug-info option: mysqlimport +\fB\-\-debug\-info\fR +.sp +Print debugging information and memory and CPU usage statistics when the program exits\&. This option was added in MySQL 5\&.1\&.14\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlimport: default-character-set option +.\" default-character-set option: mysqlimport +\fB\-\-default\-character\-set=\fR\fB\fIcharset_name\fR\fR +.sp +Use +\fIcharset_name\fR +as the default character set\&. See +Section\ \&9.5, \(lqCharacter Set Configuration\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlimport: defaults-extra-file option +.\" defaults-extra-file option: mysqlimport +\fB\-\-defaults\-extra\-file=\fR\fB\fIfilename\fR\fR +.sp +Set \fB\fIfilename\fR\fR as the file to read default options from after the global defaults files has been +read\&. Must be given as first option\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlimport: defaults-file option +.\" defaults-file option: mysqlimport +\fB\-\-defaults\-file=\fR\fB\fIfilename\fR\fR +.sp +Set \fB\fIfilename\fR\fR as the file to read default options from, override global defaults files\&. +Must be given as first option\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlimport: delete option +.\" delete option: mysqlimport +\fB\-\-delete\fR, +\fB\-d\fR +.sp +Empty the table before importing the text file\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: fields-terminated-by option +.\" fields-terminated-by option: mysqldump +\fB\-\-fields\-terminated\-by=\&.\&.\&.\fR, +.\" mysqldump: fields-enclosed-by option +.\" fields-enclosed-by option: mysqldump +\fB\-\-fields\-enclosed\-by=\&.\&.\&.\fR, +.\" mysqldump: fields-optionally-enclosed-by option +.\" fields-optionally-enclosed-by option: mysqldump +\fB\-\-fields\-optionally\-enclosed\-by=\&.\&.\&.\fR, +.\" mysqldump: fields-escaped-by option +.\" fields-escaped-by option: mysqldump +\fB\-\-fields\-escaped\-by=\&.\&.\&.\fR +.sp +These options have the same meaning as the corresponding clauses for +LOAD DATA INFILE\&. See +Section\ \&12.2.6, \(lqLOAD DATA INFILE Syntax\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlimport: force option +.\" force option: mysqlimport +\fB\-\-force\fR, +\fB\-f\fR +.sp +Ignore errors\&. For example, if a table for a text file does not exist, continue processing any remaining files\&. Without +\fB\-\-force\fR, +\fBmysqlimport\fR +exits if a table does not exist\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlimport: host option +.\" host option: mysqlimport +\fB\-\-host=\fR\fB\fIhost_name\fR\fR, +\fB\-h \fR\fB\fIhost_name\fR\fR +.sp +Import data to the MySQL server on the given host\&. The default host is +localhost\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlimport: ignore option +.\" ignore option: mysqlimport +\fB\-\-ignore\fR, +\fB\-i\fR +.sp +See the description for the +\fB\-\-replace\fR +option\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlimport: ignore-lines option +.\" ignore-lines option: mysqlimport +\fB\-\-ignore\-lines=\fR\fB\fIN\fR\fR +.sp +Ignore the first +\fIN\fR +lines of the data file\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqldump: lines-terminated-by option +.\" lines-terminated-by option: mysqldump +\fB\-\-lines\-terminated\-by=\&.\&.\&.\fR +.sp +This option has the same meaning as the corresponding clause for +LOAD DATA INFILE\&. For example, to import Windows files that have lines terminated with carriage return/linefeed pairs, use +\fB\-\-lines\-terminated\-by="\er\en"\fR\&. (You might have to double the backslashes, depending on the escaping conventions of your command interpreter\&.) See +Section\ \&12.2.6, \(lqLOAD DATA INFILE Syntax\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlimport: local option +.\" local option: mysqlimport +\fB\-\-local\fR, +\fB\-L\fR +.sp +Read input files locally from the client host\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlimport: lock-tables option +.\" lock-tables option: mysqlimport +\fB\-\-lock\-tables\fR, +\fB\-l\fR +.sp +Lock +\fIall\fR +tables for writing before processing any text files\&. This ensures that all tables are synchronized on the server\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlimport: low-priority option +.\" low-priority option: mysqlimport +\fB\-\-low\-priority\fR +.sp +Use +LOW_PRIORITY +when loading the table\&. This affects only storage engines that use only table\-level locking (such as +MyISAM, +MEMORY, and +MERGE)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlimport: no-defaults option +.\" no-defaults option: mysqlimport +\fB\-\-no\-defaults\fR +.sp +Do not read default options from any option file\&. This must be given as the +first argument\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlimport: password option +.\" password option: mysqlimport +\fB\-\-password[=\fR\fB\fIpassword\fR\fR\fB]\fR, +\fB\-p[\fR\fB\fIpassword\fR\fR\fB]\fR +.sp +The password to use when connecting to the server\&. If you use the short option form (\fB\-p\fR), you +\fIcannot\fR +have a space between the option and the password\&. If you omit the +\fIpassword\fR +value following the +\fB\-\-password\fR +or +\fB\-p\fR +option on the command line, +\fBmysqlimport\fR +prompts for one\&. +.sp +Specifying a password on the command line should be considered insecure\&. See +Section\ \&5.3.2.2, \(lqEnd-User Guidelines for Password Security\(rq\&. You can use an option file to avoid giving the password on the command line\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlimport: pipe option +.\" pipe option: mysqlimport +\fB\-\-pipe\fR, +\fB\-W\fR +.sp +On Windows, connect to the server via a named pipe\&. This option applies only if the server supports named\-pipe connections\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlimport: port option +.\" port option: mysqlimport +\fB\-\-port=\fR\fB\fIport_num\fR\fR, +\fB\-P \fR\fB\fIport_num\fR\fR +.sp +The TCP/IP port number to use for the connection\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlimport: protocol option +.\" protocol option: mysqlimport +\fB\-\-protocol={TCP|SOCKET|PIPE|MEMORY}\fR +.sp +The connection protocol to use for connecting to the server\&. It is useful when the other connection parameters normally would cause a protocol to be used other than the one you want\&. For details on the allowable values, see +Section\ \&4.2.2, \(lqConnecting to the MySQL Server\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlimport: print-defaults option +.\" print-defaults option: mysqlimport +\fB\-\-print\-defaults\fR +.sp +Print the program argument list and exit\&. +This must be given as the first argument\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlimport: replace option +.\" replace option: mysqlimport +\fB\-\-replace\fR, +\fB\-r\fR +.sp +The +\fB\-\-replace\fR +and +\fB\-\-ignore\fR +options control handling of input rows that duplicate existing rows on unique key values\&. If you specify +\fB\-\-replace\fR, new rows replace existing rows that have the same unique key value\&. If you specify +\fB\-\-ignore\fR, input rows that duplicate an existing row on a unique key value are skipped\&. If you do not specify either option, an error occurs when a duplicate key value is found, and the rest of the text file is ignored\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlimport: silent option +.\" silent option: mysqlimport +\fB\-\-silent\fR, +\fB\-s\fR +.sp +Silent mode\&. Produce output only when errors occur\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlimport: socket option +.\" socket option: mysqlimport +\fB\-\-socket=\fR\fB\fIpath\fR\fR, +\fB\-S \fR\fB\fIpath\fR\fR +.sp +For connections to +localhost, the Unix socket file to use, or, on Windows, the name of the named pipe to use\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlimport: SSL options +.\" SSL options: mysqlimport +\fB\-\-ssl*\fR +.sp +Options that begin with +\fB\-\-ssl\fR +specify whether to connect to the server via SSL and indicate where to find SSL keys and certificates\&. See +Section\ \&5.5.6.3, \(lqSSL Command Options\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlimport: user option +.\" user option: mysqlimport +\fB\-\-user=\fR\fB\fIuser_name\fR\fR, +\fB\-u \fR\fB\fIuser_name\fR\fR +.sp +The MySQL user name to use when connecting to the server\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlimport: use-threads option +.\" use-threads option: mysqlimport +\fB\-\-use\-threads=\fR\fB\fIN\fR\fR +.sp +Load files in parallel using +\fIN\fR +threads\&. This option was added in MySQL 5\&.1\&.7\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlimport: verbose option +.\" verbose option: mysqlimport +\fB\-\-verbose\fR, +\fB\-v\fR +.sp +Verbose mode\&. Print more information about what the program does\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlimport: version option +.\" version option: mysqlimport +\fB\-\-version\fR, +\fB\-V\fR +.sp +Display version information and exit\&. +.RE +.PP +Here is a sample session that demonstrates use of +\fBmysqlimport\fR: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysql \-e \'CREATE TABLE imptest(id INT, n VARCHAR(30))\' test\fR +shell> \fBed\fR +a +100 Max Sydow +101 Count Dracula +\&. +w imptest\&.txt +32 +q +shell> \fBod \-c imptest\&.txt\fR +0000000 1 0 0 \et M a x S y d o w \en 1 0 +0000020 1 \et C o u n t D r a c u l a \en +0000040 +shell> \fBmysqlimport \-\-local test imptest\&.txt\fR +test\&.imptest: Records: 2 Deleted: 0 Skipped: 0 Warnings: 0 +shell> \fBmysql \-e \'SELECT * FROM imptest\' test\fR ++\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ +| id | n | ++\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ +| 100 | Max Sydow | +| 101 | Count Dracula | ++\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ +.fi +.if n \{\ +.RE +.\} +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/mysqlshow.1 b/database/man/man1/mysqlshow.1 new file mode 100644 index 0000000..6ea9bac --- /dev/null +++ b/database/man/man1/mysqlshow.1 @@ -0,0 +1,564 @@ +'\" t +.\" Title: \fBmysqlshow\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBMYSQLSHOW\FR" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" mysqlshow +.\" databases: displaying +.\" displaying: database information +.\" tables: displaying +.\" columns: displaying +.\" showing: database information +.SH "NAME" +mysqlshow \- display database, table, and column information +.SH "SYNOPSIS" +.HP \w'\fBmysqlshow\ [\fR\fB\fIoptions\fR\fR\fB]\ [\fR\fB\fIdb_name\fR\fR\fB\ [\fR\fB\fItbl_name\fR\fR\fB\ [\fR\fB\fIcol_name\fR\fR\fB]]]\fR\ 'u +\fBmysqlshow [\fR\fB\fIoptions\fR\fR\fB] [\fR\fB\fIdb_name\fR\fR\fB [\fR\fB\fItbl_name\fR\fR\fB [\fR\fB\fIcol_name\fR\fR\fB]]]\fR +.SH "DESCRIPTION" +.PP +The +\fBmysqlshow\fR +client can be used to quickly see which databases exist, their tables, or a table\'s columns or indexes\&. +.PP +\fBmysqlshow\fR +provides a command\-line interface to several SQL +SHOW +statements\&. See +Section\ \&12.4.5, \(lqSHOW Syntax\(rq\&. The same information can be obtained by using those statements directly\&. For example, you can issue them from the +\fBmysql\fR +client program\&. +.PP +Invoke +\fBmysqlshow\fR +like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqlshow [\fR\fB\fIoptions\fR\fR\fB] [\fR\fB\fIdb_name\fR\fR\fB [\fR\fB\fItbl_name\fR\fR\fB [\fR\fB\fIcol_name\fR\fR\fB]]]\fR +.fi +.if n \{\ +.RE +.\} +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +If no database is given, a list of database names is shown\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +If no table is given, all matching tables in the database are shown\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +If no column is given, all matching columns and column types in the table are shown\&. +.RE +.PP +The output displays only the names of those databases, tables, or columns for which you have some privileges\&. +.PP +If the last argument contains shell or SQL wildcard characters (\(lq*\(rq, +\(lq?\(rq, +\(lq%\(rq, or +\(lq_\(rq), only those names that are matched by the wildcard are shown\&. If a database name contains any underscores, those should be escaped with a backslash (some Unix shells require two) to get a list of the proper tables or columns\&. +\(lq*\(rq +and +\(lq?\(rq +characters are converted into SQL +\(lq%\(rq +and +\(lq_\(rq +wildcard characters\&. This might cause some confusion when you try to display the columns for a table with a +\(lq_\(rq +in the name, because in this case, +\fBmysqlshow\fR +shows you only the table names that match the pattern\&. This is easily fixed by adding an extra +\(lq%\(rq +last on the command line as a separate argument\&. +.PP +\fBmysqlshow\fR +supports the following options, which can be specified on the command line or in the +[mysqlshow] +and +[client] +option file groups\&. +\fBmysqlshow\fR +also supports the options for processing option files described at +Section\ \&4.2.3.3.1, \(lqCommand-Line Options that Affect Option-File Handling\(rq\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlshow: help option +.\" help option: mysqlshow +\fB\-\-help\fR, +\fB\-?\fR +.sp +Display a help message and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlshow: character-sets-dir option +.\" character-sets-dir option: mysqlshow +\fB\-\-character\-sets\-dir=\fR\fB\fIpath\fR\fR, +\fB\-c\fR +.sp +The directory where character sets are installed\&. See +Section\ \&9.5, \(lqCharacter Set Configuration\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlshow: compress option +.\" compress option: mysqlshow +\fB\-\-compress\fR, +\fB\-C\fR +.sp +Compress all information sent between the client and the server if both support compression\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlshow: count option +.\" count option: mysqlshow +\fB\-\-count\fR +.sp +Show the number of rows per table\&. This can be slow for non\-MyISAM +tables\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlshow: debug option +.\" debug option: mysqlshow +\fB\-\-debug[=\fR\fB\fIdebug_options\fR\fR\fB]\fR, +\fB\-# [\fR\fB\fIdebug_options\fR\fR\fB]\fR +.sp +Write a debugging log\&. A typical +\fIdebug_options\fR +string is +\'d:t:o,\fIfile_name\fR\'\&. The default is +\'d:t:o\'\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlshow: debug-check option +.\" debug-check option: mysqlshow +\fB\-\-debug\-check\fR +.sp +Print some debugging information when the program exits\&. This option was added in MySQL 5\&.1\&.21\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlshow: debug-info option +.\" debug-info option: mysqlshow +\fB\-\-debug\-info\fR +.sp +Print debugging information and memory and CPU usage statistics when the program exits\&. This option was added in MySQL 5\&.1\&.14\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlshow: default-character-set option +.\" default-character-set option: mysqlshow +\fB\-\-default\-character\-set=\fR\fB\fIcharset_name\fR\fR +.sp +Use +\fIcharset_name\fR +as the default character set\&. See +Section\ \&9.5, \(lqCharacter Set Configuration\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlshow: defaults-extra-file option +.\" defaults-extra-file option: mysqlshow +\fB\-\-defaults\-extra\-file=\fR\fB\fIfilename\fR\fR +.sp +Set \fB\fIfilename\fR\fR as the file to read default options from after the global defaults files has been +read\&. Must be given as first option\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlshow: defaults-file option +.\" defaults-file option: mysqlshow +\fB\-\-defaults\-file=\fR\fB\fIfilename\fR\fR +.sp +Set \fB\fIfilename\fR\fR as the file to read default options from, override global defaults files\&. +Must be given as first option\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlshow: host option +.\" host option: mysqlshow +\fB\-\-host=\fR\fB\fIhost_name\fR\fR, +\fB\-h \fR\fB\fIhost_name\fR\fR +.sp +Connect to the MySQL server on the given host\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlshow: keys option +.\" keys option: mysqlshow +\fB\-\-keys\fR, +\fB\-k\fR +.sp +Show table indexes\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlshow: no-defaults option +.\" no-defaults option: mysqlshow +\fB\-\-no\-defaults\fR +.sp +Do not read default options from any option file\&. This must be given as the +first argument\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlshow: password option +.\" password option: mysqlshow +\fB\-\-password[=\fR\fB\fIpassword\fR\fR\fB]\fR, +\fB\-p[\fR\fB\fIpassword\fR\fR\fB]\fR +.sp +The password to use when connecting to the server\&. If you use the short option form (\fB\-p\fR), you +\fIcannot\fR +have a space between the option and the password\&. If you omit the +\fIpassword\fR +value following the +\fB\-\-password\fR +or +\fB\-p\fR +option on the command line, +\fBmysqlshow\fR +prompts for one\&. +.sp +Specifying a password on the command line should be considered insecure\&. See +Section\ \&5.3.2.2, \(lqEnd-User Guidelines for Password Security\(rq\&. You can use an option file to avoid giving the password on the command line\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlshow: pipe option +.\" pipe option: mysqlshow +\fB\-\-pipe\fR, +\fB\-W\fR +.sp +On Windows, connect to the server via a named pipe\&. This option applies only if the server supports named\-pipe connections\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlshow: port option +.\" port option: mysqlshow +\fB\-\-port=\fR\fB\fIport_num\fR\fR, +\fB\-P \fR\fB\fIport_num\fR\fR +.sp +The TCP/IP port number to use for the connection\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlshow: protocol option +.\" protocol option: mysqlshow +\fB\-\-protocol={TCP|SOCKET|PIPE|MEMORY}\fR +.sp +The connection protocol to use for connecting to the server\&. It is useful when the other connection parameters normally would cause a protocol to be used other than the one you want\&. For details on the allowable values, see +Section\ \&4.2.2, \(lqConnecting to the MySQL Server\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlshow: print-defaults option +.\" print-defaults option: mysqlshow +\fB\-\-print\-defaults\fR +.sp +Print the program argument list and exit\&. +This must be given as the first argument\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlshow: show-table-type option +.\" show-table-type option: mysqlshow +\fB\-\-show\-table\-type\fR, +\fB\-t\fR +.sp +Show a column indicating the table type, as in +SHOW FULL TABLES\&. The type is +BASE TABLE +or +VIEW\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlshow: socket option +.\" socket option: mysqlshow +\fB\-\-socket=\fR\fB\fIpath\fR\fR, +\fB\-S \fR\fB\fIpath\fR\fR +.sp +For connections to +localhost, the Unix socket file to use, or, on Windows, the name of the named pipe to use\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlshow: SSL options +.\" SSL options: mysqlshow +\fB\-\-ssl*\fR +.sp +Options that begin with +\fB\-\-ssl\fR +specify whether to connect to the server via SSL and indicate where to find SSL keys and certificates\&. See +Section\ \&5.5.6.3, \(lqSSL Command Options\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlshow: status option +.\" status option: mysqlshow +\fB\-\-status\fR, +\fB\-i\fR +.sp +Display extra information about each table\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlshow: user option +.\" user option: mysqlshow +\fB\-\-user=\fR\fB\fIuser_name\fR\fR, +\fB\-u \fR\fB\fIuser_name\fR\fR +.sp +The MySQL user name to use when connecting to the server\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlshow: verbose option +.\" verbose option: mysqlshow +\fB\-\-verbose\fR, +\fB\-v\fR +.sp +Verbose mode\&. Print more information about what the program does\&. This option can be used multiple times to increase the amount of information\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlshow: version option +.\" version option: mysqlshow +\fB\-\-version\fR, +\fB\-V\fR +.sp +Display version information and exit\&. +.RE +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/mysqlslap.1 b/database/man/man1/mysqlslap.1 new file mode 100644 index 0000000..58fd5c4 --- /dev/null +++ b/database/man/man1/mysqlslap.1 @@ -0,0 +1,1104 @@ +'\" t +.\" Title: \fBmysqlslap\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBMYSQLSLAP\FR" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" mysqlslap +.\" load emulation +.SH "NAME" +mysqlslap \- load emulation client +.SH "SYNOPSIS" +.HP \w'\fBmysqlslap\ [\fR\fB\fIoptions\fR\fR\fB]\fR\ 'u +\fBmysqlslap [\fR\fB\fIoptions\fR\fR\fB]\fR +.SH "DESCRIPTION" +.PP +\fBmysqlslap\fR +is a diagnostic program designed to emulate client load for a MySQL server and to report the timing of each stage\&. It works as if multiple clients are accessing the server\&. +\fBmysqlslap\fR +is available as of MySQL 5\&.1\&.4\&. +.PP +Invoke +\fBmysqlslap\fR +like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqlslap [\fR\fB\fIoptions\fR\fR\fB]\fR +.fi +.if n \{\ +.RE +.\} +.PP +Some options such as +\fB\-\-create\fR +or +\fB\-\-query\fR +enable you to specify a string containing an SQL statement or a file containing statements\&. If you specify a file, by default it must contain one statement per line\&. (That is, the implicit statement delimiter is the newline character\&.) Use the +\fB\-\-delimiter\fR +option to specify a different delimiter, which enables you to specify statements that span multiple lines or place multiple statements on a single line\&. You cannot include comments in a file; +\fBmysqlslap\fR +does not understand them\&. +.PP +\fBmysqlslap\fR +runs in three stages: +.sp +.RS 4 +.ie n \{\ +\h'-04' 1.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 1." 4.2 +.\} +Create schema, table, and optionally any stored programs or data you want to using for the test\&. This stage uses a single client connection\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04' 2.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 2." 4.2 +.\} +Run the load test\&. This stage can use many client connections\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04' 3.\h'+01'\c +.\} +.el \{\ +.sp -1 +.IP " 3." 4.2 +.\} +Clean up (disconnect, drop table if specified)\&. This stage uses a single client connection\&. +.RE +.PP +Examples: +.PP +Supply your own create and query SQL statements, with 50 clients querying and 200 selects for each: +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysqlslap \-\-delimiter=";" \e + \-\-create="CREATE TABLE a (b int);INSERT INTO a VALUES (23)" \e + \-\-query="SELECT * FROM a" \-\-concurrency=50 \-\-iterations=200 +.fi +.if n \{\ +.RE +.\} +.PP +Let +\fBmysqlslap\fR +build the query SQL statement with a table of two +INT +columns and three +VARCHAR +columns\&. Use five clients querying 20 times each\&. Do not create the table or insert the data (that is, use the previous test\'s schema and data): +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysqlslap \-\-concurrency=5 \-\-iterations=20 \e + \-\-number\-int\-cols=2 \-\-number\-char\-cols=3 \e + \-\-auto\-generate\-sql +.fi +.if n \{\ +.RE +.\} +.PP +Tell the program to load the create, insert, and query SQL statements from the specified files, where the +create\&.sql +file has multiple table creation statements delimited by +\';\' +and multiple insert statements delimited by +\';\'\&. The +\fB\-\-query\fR +file will have multiple queries delimited by +\';\'\&. Run all the load statements, then run all the queries in the query file with five clients (five times each): +.sp +.if n \{\ +.RS 4 +.\} +.nf +mysqlslap \-\-concurrency=5 \e + \-\-iterations=5 \-\-query=query\&.sql \-\-create=create\&.sql \e + \-\-delimiter=";" +.fi +.if n \{\ +.RE +.\} +.PP +\fBmysqlslap\fR +supports the following options, which can be specified on the command line or in the +[mysqlslap] +and +[client] +option file groups\&. +\fBmysqlslap\fR +also supports the options for processing option files described at +Section\ \&4.2.3.3.1, \(lqCommand-Line Options that Affect Option-File Handling\(rq\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: help option +.\" help option: mysqlslap +\fB\-\-help\fR, +\fB\-?\fR +.sp +Display a help message and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: auto-generate-sql option +.\" auto-generate-sql option: mysqlslap +\fB\-\-auto\-generate\-sql\fR, +\fB\-a\fR +.sp +Generate SQL statements automatically when they are not supplied in files or via command options\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: auto-generate-sql-add-autoincrement option +.\" auto-generate-sql-add-autoincrement option: mysqlslap +\fB\-\-auto\-generate\-sql\-add\-autoincrement\fR +.sp +Add an +AUTO_INCREMENT +column to automatically generated tables\&. This option was added in MySQL 5\&.1\&.18\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: auto-generate-sql-execute-number option +.\" auto-generate-sql-execute-number option: mysqlslap +\fB\-\-auto\-generate\-sql\-execute\-number=\fR\fB\fIN\fR\fR +.sp +Specify how many queries to generate automatically\&. This option was added in MySQL 5\&.1\&.18\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: auto-generate-sql-guid-primary option +.\" auto-generate-sql-guid-primary option: mysqlslap +\fB\-\-auto\-generate\-sql\-guid\-primary\fR +.sp +Add a GUID\-based primary key to automatically generated tables\&. This option was added in MySQL 5\&.1\&.18\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: auto-generate-sql-load-type option +.\" auto-generate-sql-load-type option: mysqlslap +\fB\-\-auto\-generate\-sql\-load\-type=\fR\fB\fItype\fR\fR +.sp +Specify the test load type\&. The allowable values are +read +(scan tables), +write +(insert into tables), +key +(read primary keys), +update +(update primary keys), or +mixed +(half inserts, half scanning selects)\&. The default is +mixed\&. This option was added in MySQL 5\&.1\&.16\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: auto-generate-sql-secondary-indexes option +.\" auto-generate-sql-secondary-indexes option: mysqlslap +\fB\-\-auto\-generate\-sql\-secondary\-indexes=\fR\fB\fIN\fR\fR +.sp +Specify how many secondary indexes to add to automatically generated tables\&. By default, none are added\&. This option was added in MySQL 5\&.1\&.18\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: auto-generate-sql-unique-query-number option +.\" auto-generate-sql-unique-query-number option: mysqlslap +\fB\-\-auto\-generate\-sql\-unique\-query\-number=\fR\fB\fIN\fR\fR +.sp +How many different queries to generate for automatic tests\&. For example, if you run a +key +test that performs 1000 selects, you can use this option with a value of 1000 to run 1000 unique queries, or with a value of 50 to perform 50 different selects\&. The default is 10\&. This option was added in MySQL 5\&.1\&.18\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: auto-generate-sql-unique-write-number option +.\" auto-generate-sql-unique-write-number option: mysqlslap +\fB\-\-auto\-generate\-sql\-unique\-write\-number=\fR\fB\fIN\fR\fR +.sp +How many different queries to generate for +\fB\-\-auto\-generate\-sql\-write\-number\fR\&. The default is 10\&. This option was added in MySQL 5\&.1\&.18\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: auto-generate-sql-write-number option +.\" auto-generate-sql-write-number option: mysqlslap +\fB\-\-auto\-generate\-sql\-write\-number=\fR\fB\fIN\fR\fR +.sp +How many row inserts to perform on each thread\&. The default is 100\&. This option was added in MySQL 5\&.1\&.16\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: commit option +.\" commit option: mysqlslap +\fB\-\-commit=\fR\fB\fIN\fR\fR +.sp +How many statements to execute before committing\&. The default is 0 (no commits are done)\&. This option was added in MySQL 5\&.1\&.21\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: compress option +.\" compress option: mysqlslap +\fB\-\-compress\fR, +\fB\-C\fR +.sp +Compress all information sent between the client and the server if both support compression\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: concurrency option +.\" concurrency option: mysqlslap +\fB\-\-concurrency=\fR\fB\fIN\fR\fR, +\fB\-c \fR\fB\fIN\fR\fR +.sp +The number of clients to simulate when issuing the +SELECT +statement\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: create option +.\" create option: mysqlslap +\fB\-\-create=\fR\fB\fIvalue\fR\fR +.sp +The file or string containing the statement to use for creating the table\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: create-schema option +.\" create-schema option: mysqlslap +\fB\-\-create\-schema=\fR\fB\fIvalue\fR\fR +.sp +The schema in which to run the tests\&. This option was added in MySQL 5\&.1\&.5\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: csv option +.\" csv option: mysqlslap +\fB\-\-csv[=\fR\fB\fIfile_name\fR\fR\fB]\fR +.sp +Generate output in comma\-separated values format\&. The output goes to the named file, or to the standard output if no file is given\&. This option was added in MySQL 5\&.1\&.5\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: debug option +.\" debug option: mysqlslap +\fB\-\-debug[=\fR\fB\fIdebug_options\fR\fR\fB]\fR, +\fB\-# [\fR\fB\fIdebug_options\fR\fR\fB]\fR +.sp +Write a debugging log\&. A typical +\fIdebug_options\fR +string is +\'d:t:o,\fIfile_name\fR\'\&. The default is +\'d:t:o,/tmp/mysqlslap\&.trace\'\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: debug-check option +.\" debug-check option: mysqlslap +\fB\-\-debug\-check\fR +.sp +Print some debugging information when the program exits\&. This option was added in MySQL 5\&.1\&.21\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: debug-info option +.\" debug-info option: mysqlslap +\fB\-\-debug\-info\fR, +\fB\-T\fR +.sp +Print debugging information and memory and CPU usage statistics when the program exits\&. This option was added in MySQL 5\&.1\&.21\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: defaults-extra-file option +.\" defaults-extra-file option: mysqlslap +\fB\-\-defaults\-extra\-file=\fR\fB\fIfilename\fR\fR +.sp +Set \fB\fIfilename\fR\fR as the file to read default options from after the global defaults files has been +read\&. Must be given as first option\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: defaults-file option +.\" defaults-file option: mysqlslap +\fB\-\-defaults\-file=\fR\fB\fIfilename\fR\fR +.sp +Set \fB\fIfilename\fR\fR as the file to read default options from, override global defaults files\&. +Must be given as first option\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: delimiter option +.\" delimiter option: mysqlslap +\fB\-\-delimiter=\fR\fB\fIstr\fR\fR, +\fB\-F \fR\fB\fIstr\fR\fR +.sp +The delimiter to use in SQL statements supplied in files or via command options\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: detach option +.\" detach option: mysqlslap +\fB\-\-detach=\fR\fB\fIN\fR\fR +.sp +Detach (close and reopen) each connection after each +\fIN\fR +statements\&. The default is 0 (connections are not detached)\&. This option was added in MySQL 5\&.1\&.21\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: engine option +.\" engine option: mysqlslap +\fB\-\-engine=\fR\fB\fIengine_name\fR\fR, +\fB\-e \fR\fB\fIengine_name\fR\fR +.sp +The storage engine to use for creating tables\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: host option +.\" host option: mysqlslap +\fB\-\-host=\fR\fB\fIhost_name\fR\fR, +\fB\-h \fR\fB\fIhost_name\fR\fR +.sp +Connect to the MySQL server on the given host\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: init-command option +.\" init-command option: mysqlslap +\fB\-\-init\-command=str\fR +.sp +SQL Command to execute when connecting to MySQL server\&. Will automatically be re\-executed when reconnecting\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: iterations option +.\" iterations option: mysqlslap +\fB\-\-iterations=\fR\fB\fIN\fR\fR, +\fB\-i \fR\fB\fIN\fR\fR +.sp +The number of times to run the tests\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: lock-directory option +.\" lock-directory option: mysqlslap +\fB\-\-lock\-directory=\fR\fB\fIpath\fR\fR +.sp +The directory to use for storing locks\&. This option was added in MySQL 5\&.1\&.5 and removed in 5\&.1\&.18\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: no-defaults option +.\" no-defaults option: mysqlslap +\fB\-\-no\-defaults\fR +.sp +Do not read default options from any option file\&. This must be given as the +first argument\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: no-drop option +.\" no-drop option: mysqlslap +\fB\-\-no\-drop\fR +.sp +Do not drop the schema after the test\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: number-char-cols option +.\" number-char-cols option: mysqlslap +\fB\-\-number\-char\-cols=\fR\fB\fIN\fR\fR, +\fB\-x \fR\fB\fIN\fR\fR +.sp +The number of +VARCHAR +columns to use if +\fB\-\-auto\-generate\-sql\fR +is specified\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: number-int-cols option +.\" number-int-cols option: mysqlslap +\fB\-\-number\-int\-cols=\fR\fB\fIN\fR\fR, +\fB\-y \fR\fB\fIN\fR\fR +.sp +The number of +INT +columns to use if +\fB\-\-auto\-generate\-sql\fR +is specified\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: number-of-queries option +.\" number-of-queries option: mysqlslap +\fB\-\-number\-of\-queries=\fR\fB\fIN\fR\fR +.sp +Limit each client to approximately this many queries\&. Query counting takes into account the statement delimiter\&. For example, if you invoke +\fBmysqlslap\fR +as follows, the +; +delimiter is recognized so that each instance of the query string counts as two queries\&. As a result, 5 rows (not 10) are inserted\&. +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqlslap \-\-delimiter=";" \-\-number\-of\-queries=10\fR + \fB\-\-query="use test;insert into t values(null)"\fR +.fi +.if n \{\ +.RE +.\} +.sp +This option was added in MySQL 5\&.1\&.5\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: only-print option +.\" only-print option: mysqlslap +\fB\-\-only\-print\fR +.sp +Do not connect to databases\&. +\fBmysqlslap\fR +only prints what it would have done\&. This option was added in MySQL 5\&.1\&.5\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: password option +.\" password option: mysqlslap +\fB\-\-password[=\fR\fB\fIpassword\fR\fR\fB]\fR, +\fB\-p[\fR\fB\fIpassword\fR\fR\fB]\fR +.sp +The password to use when connecting to the server\&. If you use the short option form (\fB\-p\fR), you +\fIcannot\fR +have a space between the option and the password\&. If you omit the +\fIpassword\fR +value following the +\fB\-\-password\fR +or +\fB\-p\fR +option on the command line, +\fBmysqlslap\fR +prompts for one\&. +.sp +Specifying a password on the command line should be considered insecure\&. See +Section\ \&5.3.2.2, \(lqEnd-User Guidelines for Password Security\(rq\&. You can use an option file to avoid giving the password on the command line\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: pipe option +.\" pipe option: mysqlslap +\fB\-\-pipe\fR, +\fB\-W\fR +.sp +On Windows, connect to the server via a named pipe\&. This option applies only if the server supports named\-pipe connections\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: port option +.\" port option: mysqlslap +\fB\-\-port=\fR\fB\fIport_num\fR\fR, +\fB\-P \fR\fB\fIport_num\fR\fR +.sp +The TCP/IP port number to use for the connection\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: post-query option +.\" post-query option: mysqlslap +\fB\-\-post\-query=\fR\fB\fIvalue\fR\fR +.sp +The file or string containing the statement to execute after the tests have completed\&. This execution is not counted for timing purposes\&. This option was added in MySQL 5\&.1\&.18\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: shared-memory-base-name option +.\" shared-memory-base-name option: mysqlslap +\fB\-\-shared\-memory\-base\-name=\fR\fB\fIname\fR\fR +.sp +On Windows, the shared\-memory name to use, for connections made via shared memory to a local server\&. This option applies only if the server supports shared\-memory connections\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: print-defaults option +.\" print-defaults option: mysqlslap +\fB\-\-print\-defaults\fR +.sp +Print the program argument list and exit\&. +This must be given as the first argument\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: post-system option +.\" post-system option: mysqlslap +\fB\-\-post\-system=\fR\fB\fIstr\fR\fR +.sp +The string to execute via +system() +after the tests have completed\&. This execution is not counted for timing purposes\&. This option was added in MySQL 5\&.1\&.21\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: pre-query option +.\" pre-query option: mysqlslap +\fB\-\-pre\-query=\fR\fB\fIvalue\fR\fR +.sp +The file or string containing the statement to execute before running the tests\&. This execution is not counted for timing purposes\&. This option was added in MySQL 5\&.1\&.18\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: pre-system option +.\" pre-system option: mysqlslap +\fB\-\-pre\-system=\fR\fB\fIstr\fR\fR +.sp +The string to execute via +system() +before running the tests\&. This execution is not counted for timing purposes\&. This option was added in MySQL 5\&.1\&.21\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: preserve-schema option +.\" preserve-schema option: mysqlslap +\fB\-\-preserve\-schema\fR +.sp +Preserve the schema from the +\fBmysqlslap\fR +run\&. The +\fB\-\-auto\-generate\-sql\fR +and +\fB\-\-create\fR +options disable this option\&. This option was added in MySQL 5\&.1\&.5 and removed in MySQL 5\&.1\&.23\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: protocol option +.\" protocol option: mysqlslap +\fB\-\-protocol={TCP|SOCKET|PIPE|MEMORY}\fR +.sp +The connection protocol to use for connecting to the server\&. It is useful when the other connection parameters normally would cause a protocol to be used other than the one you want\&. For details on the allowable values, see +Section\ \&4.2.2, \(lqConnecting to the MySQL Server\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: query option +.\" query option: mysqlslap +\fB\-\-query=\fR\fB\fIvalue\fR\fR, +\fB\-q \fR\fB\fIvalue\fR\fR +.sp +The file or string containing the +SELECT +statement to use for retrieving data\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: silent option +.\" silent option: mysqlslap +\fB\-\-silent\fR, +\fB\-s\fR +.sp +Silent mode\&. No output\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: slave option +.\" slave option: mysqlslap +\fB\-\-slave\fR +.sp +Follow master locks for other +\fBmysqlslap\fR +clients\&. Use this option if you are trying to synchronize around one master server with +\fB\-\-lock\-directory\fR +plus NFS\&. This option was added in MySQL 5\&.1\&.5 and removed in 5\&.1\&.18\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: socket option +.\" socket option: mysqlslap +\fB\-\-socket=\fR\fB\fIpath\fR\fR, +\fB\-S \fR\fB\fIpath\fR\fR +.sp +For connections to +localhost, the Unix socket file to use, or, on Windows, the name of the named pipe to use\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: SSL options +.\" SSL options: mysqlslap +\fB\-\-ssl*\fR +.sp +Options that begin with +\fB\-\-ssl\fR +specify whether to connect to the server via SSL and indicate where to find SSL keys and certificates\&. See +Section\ \&5.5.6.3, \(lqSSL Command Options\(rq\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: use-threads option +.\" use-threads option: mysqlslap +\fB\-\-use\-threads\fR +.sp +On Unix, the default is to use +fork() +calls and this option causes +\fBpthread\fR +calls to be used instead\&. (On Windows, the default is to use +pthread +calls and the option has no effect\&.) This option was added in MySQL 5\&.1\&.6 and removed in 5\&.1\&.18\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: user option +.\" user option: mysqlslap +\fB\-\-user=\fR\fB\fIuser_name\fR\fR, +\fB\-u \fR\fB\fIuser_name\fR\fR +.sp +The MySQL user name to use when connecting to the server\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: verbose option +.\" verbose option: mysqlslap +\fB\-\-verbose\fR, +\fB\-v\fR +.sp +Verbose mode\&. Print more information about what the program does\&. This option can be used multiple times to increase the amount of information\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqlslap: version option +.\" version option: mysqlslap +\fB\-\-version\fR, +\fB\-V\fR +.sp +Display version information and exit\&. +.RE +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/mysqltest.1 b/database/man/man1/mysqltest.1 new file mode 100644 index 0000000..938689d --- /dev/null +++ b/database/man/man1/mysqltest.1 @@ -0,0 +1,845 @@ +'\" t +.\" Title: \fBmysqltest\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 03/31/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL +.\" Language: English +.\" +.TH "\FBMYSQLTEST\FR" "1" "03/31/2010" "MySQL" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" mysqltest +.\" mysqltest_embedded +.SH "NAME" +mysqltest \- program to run test cases +.br +mysqltest_embedded \- program to run embedded test cases +.SH "SYNOPSIS" +.HP \w'\fBmysqltest\ [\fR\fB\fIoptions\fR\fR\fB]\ [\fR\fB\fIdb_name\fR\fR\fB]\fR\ 'u +\fBmysqltest [\fR\fB\fIoptions\fR\fR\fB] [\fR\fB\fIdb_name\fR\fR\fB]\fR +.HP \w'\fBmysqltest_embedded\ [\fR\fB\fIoptions\fR\fR\fB]\ [\fR\fB\fIdb_name\fR\fR\fB]\fR\ 'u +\fBmysqltest_embedded [\fR\fB\fIoptions\fR\fR\fB] [\fR\fB\fIdb_name\fR\fR\fB]\fR +.SH "DESCRIPTION" +.PP +The +\fBmysqltest\fR +program runs a test case against a MySQL server and optionally compares the output with a result file\&. This program reads input written in a special test language\&. Typically, you invoke +\fBmysqltest\fR +via +\fBmysql\-test\-run\&.pl\fR +rather than invoking it directly\&. +.PP +\fBmysqltest_embedded\fR +is similar but is built with support for the +libmysqld +embedded server\&. +.PP +Features of +\fBmysqltest\fR: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Can send SQL statements to MySQL servers for execution +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Can execute external shell commands +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Can test whether the result from an SQL statement or shell command is as expected +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Can connect to one or more standalone +\fBmysqld\fR +servers and switch between connections +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Can connect to an embedded server (libmysqld), if MySQL is compiled with support for +libmysqld\&. (In this case, the executable is named +\fBmysqltest_embedded\fR +rather than +\fBmysqltest\fR\&.) +.RE +.PP +By default, +\fBmysqltest\fR +reads the test case on the standard input\&. To run +\fBmysqltest\fR +this way, you normally invoke it like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqltest [\fR\fB\fIoptions\fR\fR\fB] [\fR\fB\fIdb_name\fR\fR\fB] < \fR\fB\fItest_file\fR\fR +.fi +.if n \{\ +.RE +.\} +.PP +You can also name the test case file with a +\fB\-\-test\-file=\fR\fB\fIfile_name\fR\fR +option\&. +.PP +The exit value from +\fBmysqltest\fR +is 0 for success, 1 for failure, and 62 if it skips the test case (for example, if after checking some preconditions it decides not to run the test)\&. +.PP +\fBmysqltest\fR +supports the following options: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: help option +.\" help option: mysqltest +\fB\-\-help\fR, +\fB\-?\fR +.sp +Display a help message and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: basedir option +.\" basedir option: mysqltest +\fB\-\-basedir=\fR\fB\fIdir_name\fR\fR, +\fB\-b \fR\fB\fIdir_name\fR\fR +.sp +The base directory for tests\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: character-sets-dir option +.\" character-sets-dir option: mysqltest +\fB\-\-character\-sets\-dir=\fR\fB\fIpath\fR\fR +.sp +The directory where character sets are installed\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: compress option +.\" compress option: mysqltest +\fB\-\-compress\fR, +\fB\-C\fR +.sp +Compress all information sent between the client and the server if both support compression\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: currsor-protocol option +.\" cursor-protocol option: mysqltest +\fB\-\-cursor\-protocol\fR +.sp +Use cursors for prepared statements\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: database option +.\" database option: mysqltest +\fB\-\-database=\fR\fB\fIdb_name\fR\fR, +\fB\-D \fR\fB\fIdb_name\fR\fR +.sp +The default database to use\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: debug option +.\" debug option: mysqltest +\fB\-\-debug[=\fR\fB\fIdebug_options\fR\fR\fB]\fR, +\fB\-#[\fR\fB\fIdebug_options\fR\fR\fB]\fR +.sp +Write a debugging log if MySQL is built with debugging support\&. The default +\fIdebug_options\fR +value is +\'d:t:S:i:O,/tmp/mysqltest\&.trace\'\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: debug-check option +.\" debug-check option: mysqltest +\fB\-\-debug\-check\fR +.sp +Print some debugging information when the program exits\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: debug-info option +.\" debug-info option: mysqltest +\fB\-\-debug\-info\fR +.sp +Print debugging information and memory and CPU usage statistics when the program exits\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: host option +.\" host option: mysqltest +\fB\-\-host=\fR\fB\fIhost_name\fR\fR, +\fB\-h \fR\fB\fIhost_name\fR\fR +.sp +Connect to the MySQL server on the given host\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: include option +.\" include option: mysqltest +\fB\-\-include=\fR\fB\fIfile_name\fR\fR, +\fB\-i \fR\fB\fIfile_name\fR\fR +.sp +Include the contents of the given file before processing the contents of the test file\&. The included file should have the same format as other +\fBmysqltest\fR +test files\&. This option has the same effect as putting a +\-\-source \fIfile_name\fR +command as the first line of the test file\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: logdir option +.\" logdir option: mysqltest +\fB\-\-logdir=\fR\fB\fIdir_name\fR\fR +.sp +The directory to use for log files\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: mark-progress option +.\" mark-progress option: mysqltest +\fB\-\-mark\-progress\fR +.sp +Write the line number and elapsed time to +\fItest_file\fR\&.progress\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: max-connect-retries option +.\" max-connect-retries option: mysqltest +\fB\-\-max\-connect\-retries=\fR\fB\fInum\fR\fR +.sp +The maximum number of connection attempts when connecting to server\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: max-connections option +.\" max-connections option: mysqltest +\fB\-\-max\-connections=\fR\fB\fInum\fR\fR +.sp +The maximum number of simultaneous server connections per client (that is, per test)\&. If not set, the maximum is 128\&. Minimum allowed limit is 8, maximum is 5120\&. +.sp +This option is available from MySQL 5\&.1\&.45\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: no-defaults option +.\" no-defaults option: mysqltest +\fB\-\-no\-defaults\fR +.sp +Do not read default options from any option files\&. If used, this must be the first option\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: password option +.\" password option: mysqltest +\fB\-\-password[=\fR\fB\fIpassword\fR\fR\fB]\fR, +\fB\-p[\fR\fB\fIpassword\fR\fR\fB]\fR +.sp +The password to use when connecting to the server\&. If you use the short option form (\fB\-p\fR), you +\fIcannot\fR +have a space between the option and the password\&. If you omit the +\fIpassword\fR +value following the +\fB\-\-password\fR +or +\fB\-p\fR +option on the command line, you are prompted for one\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: port option +.\" port option: mysqltest +\fB\-\-port=\fR\fB\fIport_num\fR\fR, +\fB\-P \fR\fB\fIport_num\fR\fR +.sp +The TCP/IP port number to use for the connection\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: ps-protocol option +.\" ps-protocol option: mysqltest +\fB\-\-ps\-protocol\fR +.sp +Use the prepared\-statement protocol for communication\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: quiet option +.\" quiet option: mysqltest +\fB\-\-quiet\fR +.sp +Suppress all normal output\&. This is a synonym for +.\" mysqltest: silent option +.\" silent option: mysqltest +\fB\-\-silent\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: record option +.\" record option: mysqltest +\fB\-\-record\fR, +\fB\-r\fR +.sp +Record the output that results from running the test file into the file named by the +\fB\-\-result\-file\fR +option, if that option is given\&. It is an error to use this option without also using +\fB\-\-result\-file\fR\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: result-file option +.\" result-file option: mysqltest +\fB\-\-result\-file=\fR\fB\fIfile_name\fR\fR, +\fB\-R \fR\fB\fIfile_name\fR\fR +.sp +This option specifies the file for test case expected results\&. +\fB\-\-result\-file\fR, together with +\fB\-\-record\fR, determines how +\fBmysqltest\fR +treats the test actual and expected results for a test case: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +If the test produces no results, +\fBmysqltest\fR +exits with an error message to that effect, unless +\fB\-\-result\-file\fR +is given and the named file is an empty file\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Otherwise, if +\fB\-\-result\-file\fR +is not given, +\fBmysqltest\fR +sends test results to the standard output\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +With +\fB\-\-result\-file\fR +but not +\fB\-\-record\fR, +\fBmysqltest\fR +reads the expected results from the given file and compares them with the actual results\&. If the results do not match, +\fBmysqltest\fR +writes a +\&.reject +file in the same directory as the result file, outputs a diff of the two files, and exits with an error\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +With both +\fB\-\-result\-file\fR +and +\fB\-\-record\fR, +\fBmysqltest\fR +updates the given file by writing the actual test results to it\&. +.RE +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: server-arg option +.\" server-arg option: mysqltest +\fB\-\-server\-arg=\fR\fB\fIvalue\fR\fR, +\fB\-A \fR\fB\fIvalue\fR\fR +.sp +Pass the argument as an argument to the embedded server\&. For example, +\fB\-\-server\-arg=\-\-tmpdir=/tmp\fR +or +\fB\-\-server\-arg=\-\-core\fR\&. Up to 64 arguments can be given\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: server-file option +.\" server-file option: mysqltest +\fB\-\-server\-file=\fR\fB\fIfile_name\fR\fR, +\fB\-F \fR\fB\fIfile_name\fR\fR +.sp +Read arguments for the embedded server from the given file\&. The file should contain one argument per line\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: silent option +.\" silent option: mysqltest +\fB\-\-silent\fR, +\fB\-s\fR +.sp +Suppress all normal output\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: skip-safemalloc option +.\" skip-safemalloc option: mysqltest +\fB\-\-skip\-safemalloc\fR +.sp +Do not use memory allocation checking\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: sleep option +.\" sleep option: mysqltest +\fB\-\-sleep=\fR\fB\fInum\fR\fR, +\fB\-T \fR\fB\fInum\fR\fR +.sp +Cause all +sleep +commands in the test case file to sleep +\fInum\fR +seconds\&. This option does not affect +real_sleep +commands\&. +.sp +As of MySQL 5\&.0\&.23, an option value of 0 can be used, which effectively disables +sleep +commands in the test case\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: socket option +.\" socket option: mysqltest +\fB\-\-socket=\fR\fB\fIpath\fR\fR, +\fB\-S \fR\fB\fIpath\fR\fR +.sp +The socket file to use when connecting to +localhost +(which is the default host)\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: sp-protocol option +.\" sp-protocol option: mysqltest +\fB\-\-sp\-protocol\fR +.sp +Execute DML statements within a stored procedure\&. For every DML statement, +\fBmysqltest\fR +creates and invokes a stored procedure that executes the statement rather than executing the statement directly\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: tail-lines option +.\" tail-lines option: mysqltest +\fB\-\-tail\-lines=\fR\fB\fInn\fR\fR +.sp +Specify how many lines of the result to include in the output if the test fails because an SQL statement fails\&. The default is 0, meaning no lines of result printed\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: test-file option +.\" test-file option: mysqltest +\fB\-\-test\-file=\fR\fB\fIfile_name\fR\fR, +\fB\-x \fR\fB\fIfile_name\fR\fR +.sp +Read test input from this file\&. The default is to read from the standard input\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: timer-file option +.\" timer-file option: mysqltest +\fB\-\-timer\-file=\fR\fB\fIfile_name\fR\fR, +\fB\-m \fR\fB\fIfile_name\fR\fR +.sp +If given, the number of millisecond spent running the test will be written to this file\&. This is used by +\fBmysql\-test\-run\&.pl\fR +for its reporting\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: tmpdir option +.\" tmpdir option: mysqltest +\fB\-\-tmpdir=\fR\fB\fIdir_name\fR\fR, +\fB\-t \fR\fB\fIdir_name\fR\fR +.sp +The temporary directory where socket files are created\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: user option +.\" user option: mysqltest +\fB\-\-user=\fR\fB\fIuser_name\fR\fR, +\fB\-u \fR\fB\fIuser_name\fR\fR +.sp +The MySQL user name to use when connecting to the server\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: verbose option +.\" verbose option: mysqltest +\fB\-\-verbose\fR, +\fB\-v\fR +.sp +Verbose mode\&. Print out more information about what the program does\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: version option +.\" version option: mysqltest +\fB\-\-version\fR, +\fB\-V\fR +.sp +Display version information and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" mysqltest: view-protocol option +.\" view-protocol option: mysqltest +\fB\-\-view\-protocol\fR +.sp +Every +SELECT +statement is wrapped inside a view\&. This option was added in MySQL 5\&.0\&.19\&. +.RE +.SH "COPYRIGHT" +.br +.PP +Copyright \(co 2007, 2010, Oracle and/or its affiliates +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/mysqltest_embedded.1 b/database/man/man1/mysqltest_embedded.1 new file mode 100644 index 0000000..a004893 --- /dev/null +++ b/database/man/man1/mysqltest_embedded.1 @@ -0,0 +1 @@ +.so man1/mysqltest.1 diff --git a/database/man/man1/perror.1 b/database/man/man1/perror.1 new file mode 100644 index 0000000..0a39916 --- /dev/null +++ b/database/man/man1/perror.1 @@ -0,0 +1,197 @@ +'\" t +.\" Title: \fBperror\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBPERROR\FR" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" perror +.\" error messages: displaying +.\" errno +.\" Errcode +.SH "NAME" +perror \- explain error codes +.SH "SYNOPSIS" +.HP \w'\fBperror\ [\fR\fB\fIoptions\fR\fR\fB]\ \fR\fB\fIerrorcode\fR\fR\fB\ \&.\&.\&.\fR\ 'u +\fBperror [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIerrorcode\fR\fR\fB \&.\&.\&.\fR +.SH "DESCRIPTION" +.PP +For most system errors, MySQL displays, in addition to an internal text message, the system error code in one of the following styles: +.sp +.if n \{\ +.RS 4 +.\} +.nf +message \&.\&.\&. (errno: #) +message \&.\&.\&. (Errcode: #) +.fi +.if n \{\ +.RE +.\} +.PP +You can find out what the error code means by examining the documentation for your system or by using the +\fBperror\fR +utility\&. +.PP +\fBperror\fR +prints a description for a system error code or for a storage engine (table handler) error code\&. +.PP +Invoke +\fBperror\fR +like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBperror [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIerrorcode\fR\fR\fB \&.\&.\&.\fR +.fi +.if n \{\ +.RE +.\} +.PP +Example: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBperror 13 64\fR +OS error code 13: Permission denied +OS error code 64: Machine is not on the network +.fi +.if n \{\ +.RE +.\} +.PP +To obtain the error message for a MySQL Cluster error code, invoke +\fBperror\fR +with the +\fB\-\-ndb\fR +option: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBperror \-\-ndb \fR\fB\fIerrorcode\fR\fR +.fi +.if n \{\ +.RE +.\} +.PP +Note that the meaning of system error messages may be dependent on your operating system\&. A given error code may mean different things on different operating systems\&. +.PP +\fBperror\fR +supports the following options\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" perror: help option +.\" help option: perror +\fB\-\-help\fR, +\fB\-\-info\fR, +\fB\-I\fR, +\fB\-?\fR +.sp +Display a help message and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" perror: ndb option +.\" ndb option: perror +\fB\-\-ndb\fR +.sp +Print the error message for a MySQL Cluster error code\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" perror: silent option +.\" silent option: perror +\fB\-\-silent\fR, +\fB\-s\fR +.sp +Silent mode\&. Print only the error message\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" perror: verbose option +.\" verbose option: perror +\fB\-\-verbose\fR, +\fB\-v\fR +.sp +Verbose mode\&. Print error code and message\&. This is the default behavior\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" perror: version option +.\" version option: perror +\fB\-\-version\fR, +\fB\-V\fR +.sp +Display version information and exit\&. +.RE +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/replace.1 b/database/man/man1/replace.1 new file mode 100644 index 0000000..d17a7d8 --- /dev/null +++ b/database/man/man1/replace.1 @@ -0,0 +1,176 @@ +'\" t +.\" Title: \fBreplace\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBREPLACE\FR" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" replace utility +.\" string replacement: replace utility +.SH "NAME" +replace \- a string\-replacement utility +.SH "SYNOPSIS" +.HP \w'\fBreplace\ \fR\fB\fIarguments\fR\fR\ 'u +\fBreplace \fR\fB\fIarguments\fR\fR +.SH "DESCRIPTION" +.PP +The +\fBreplace\fR +utility program changes strings in place in files or on the standard input\&. +.PP +Invoke +\fBreplace\fR +in one of the following ways: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBreplace \fR\fB\fIfrom\fR\fR\fB \fR\fB\fIto\fR\fR\fB [\fR\fB\fIfrom\fR\fR\fB \fR\fB\fIto\fR\fR\fB] \&.\&.\&. \-\- \fR\fB\fIfile_name\fR\fR\fB [\fR\fB\fIfile_name\fR\fR\fB] \&.\&.\&.\fR +shell> \fBreplace \fR\fB\fIfrom\fR\fR\fB \fR\fB\fIto\fR\fR\fB [\fR\fB\fIfrom\fR\fR\fB \fR\fB\fIto\fR\fR\fB] \&.\&.\&. < \fR\fB\fIfile_name\fR\fR +.fi +.if n \{\ +.RE +.\} +.PP +\fIfrom\fR +represents a string to look for and +\fIto\fR +represents its replacement\&. There can be one or more pairs of strings\&. +.PP +Use the +\fB\-\-\fR +option to indicate where the string\-replacement list ends and the file names begin\&. In this case, any file named on the command line is modified in place, so you may want to make a copy of the original before converting it\&. +\fIreplace\fR +prints a message indicating which of the input files it actually modifies\&. +.PP +If the +\fB\-\-\fR +option is not given, +\fBreplace\fR +reads the standard input and writes to the standard output\&. +.PP +\fBreplace\fR +uses a finite state machine to match longer strings first\&. It can be used to swap strings\&. For example, the following command swaps +a +and +b +in the given files, +file1 +and +file2: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBreplace a b b a \-\- file1 file2 \&.\&.\&.\fR +.fi +.if n \{\ +.RE +.\} +.PP +The +\fBreplace\fR +program is used by +\fBmsql2mysql\fR\&. See +\fBmsql2mysql\fR(1)\&. +.PP +\fBreplace\fR +supports the following options\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-?\fR, +\fB\-I\fR +.sp +Display a help message and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-#\fR\fB\fIdebug_options\fR\fR +.sp +Enable debugging\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-s\fR +.sp +Silent mode\&. Print less information what the program does\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-v\fR +.sp +Verbose mode\&. Print more information about what the program does\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +\fB\-V\fR +.sp +Display version information and exit\&. +.RE +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/resolve_stack_dump.1 b/database/man/man1/resolve_stack_dump.1 new file mode 100644 index 0000000..bc09c94 --- /dev/null +++ b/database/man/man1/resolve_stack_dump.1 @@ -0,0 +1,133 @@ +'\" t +.\" Title: \fBresolve_stack_dump\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBRESOLVE_STACK_DUM" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" resolve_stack_dump +.SH "NAME" +resolve_stack_dump \- resolve numeric stack trace dump to symbols +.SH "SYNOPSIS" +.HP \w'\fBresolve_stack_dump\ [\fR\fB\fIoptions\fR\fR\fB]\ \fR\fB\fIsymbols_file\fR\fR\fB\ [\fR\fB\fInumeric_dump_file\fR\fR\fB]\fR\ 'u +\fBresolve_stack_dump [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIsymbols_file\fR\fR\fB [\fR\fB\fInumeric_dump_file\fR\fR\fB]\fR +.SH "DESCRIPTION" +.PP +\fBresolve_stack_dump\fR +resolves a numeric stack dump to symbols\&. +.PP +Invoke +\fBresolve_stack_dump\fR +like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBresolve_stack_dump [\fR\fB\fIoptions\fR\fR\fB] \fR\fB\fIsymbols_file\fR\fR\fB [\fR\fB\fInumeric_dump_file\fR\fR\fB]\fR +.fi +.if n \{\ +.RE +.\} +.PP +The symbols file should include the output from the +\fBnm \-\-numeric\-sort mysqld\fR +command\&. The numeric dump file should contain a numeric stack track from +\fBmysqld\fR\&. If no numeric dump file is named on the command line, the stack trace is read from the standard input\&. +.PP +\fBresolve_stack_dump\fR +supports the following options\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" resolve_stack_dump: help option +.\" help option: resolve_stack_dump +\fB\-\-help\fR, +\fB\-h\fR +.sp +Display a help message and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" resolve_stack_dump: numeric-dump-file option +.\" numeric-dump-file option: resolve_stack_dump +\fB\-\-numeric\-dump\-file=\fR\fB\fIfile_name\fR\fR, +\fB\-n \fR\fB\fIfile_name\fR\fR +.sp +Read the stack trace from the given file\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" resolve_stack_dump: symbols-file option +.\" symbols-file option: resolve_stack_dump +\fB\-\-symbols\-file=\fR\fB\fIfile_name\fR\fR, +\fB\-s \fR\fB\fIfile_name\fR\fR +.sp +Use the given symbols file\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" resolve_stack_dump: version option +.\" version option: resolve_stack_dump +\fB\-\-version\fR, +\fB\-V\fR +.sp +Display version information and exit\&. +.RE +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man1/resolveip.1 b/database/man/man1/resolveip.1 new file mode 100644 index 0000000..512c75d --- /dev/null +++ b/database/man/man1/resolveip.1 @@ -0,0 +1,115 @@ +'\" t +.\" Title: \fBresolveip\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBRESOLVEIP\FR" "1" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" resolveip +.SH "NAME" +resolveip \- resolve host name to IP address or vice versa +.SH "SYNOPSIS" +.HP \w'\fBresolveip\ [\fR\fB\fIoptions\fR\fR\fB]\ {\fR\fB\fIhost_name\fR\fR\fB|\fR\fB\fIip\-addr\fR\fR\fB}\ \&.\&.\&.\fR\ 'u +\fBresolveip [\fR\fB\fIoptions\fR\fR\fB] {\fR\fB\fIhost_name\fR\fR\fB|\fR\fB\fIip\-addr\fR\fR\fB} \&.\&.\&.\fR +.SH "DESCRIPTION" +.PP +The +\fBresolveip\fR +utility resolves host names to IP addresses and vice versa\&. +.PP +Invoke +\fBresolveip\fR +like this: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBresolveip [\fR\fB\fIoptions\fR\fR\fB] {\fR\fB\fIhost_name\fR\fR\fB|\fR\fB\fIip\-addr\fR\fR\fB} \&.\&.\&.\fR +.fi +.if n \{\ +.RE +.\} +.PP +\fBresolveip\fR +supports the following options\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" resolveip: help option +.\" help option: resolveip +\fB\-\-help\fR, +\fB\-\-info\fR, +\fB\-?\fR, +\fB\-I\fR +.sp +Display a help message and exit\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" resolveip: silent option +.\" silent option: resolveip +\fB\-\-silent\fR, +\fB\-s\fR +.sp +Silent mode\&. Produce less output\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +.\" resolveip: version option +.\" version option: resolveip +\fB\-\-version\fR, +\fB\-V\fR +.sp +Display version information and exit\&. +.RE +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/man/man8/mysqld.8 b/database/man/man8/mysqld.8 new file mode 100644 index 0000000..60f50ed --- /dev/null +++ b/database/man/man8/mysqld.8 @@ -0,0 +1,69 @@ +'\" t +.\" Title: \fBmysqld\fR +.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] +.\" Generator: DocBook XSL Stylesheets v1.75.2 +.\" Date: 04/06/2010 +.\" Manual: MySQL Database System +.\" Source: MySQL 5.1 +.\" Language: English +.\" +.TH "\FBMYSQLD\FR" "8" "04/06/2010" "MySQL 5\&.1" "MySQL Database System" +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.\" mysqld: MySQL server +.\" MySQL server: mysqld +.SH "NAME" +mysqld \- the MySQL server +.SH "SYNOPSIS" +.HP \w'\fBmysqld\ [\fR\fB\fIoptions\fR\fR\fB]\fR\ 'u +\fBmysqld [\fR\fB\fIoptions\fR\fR\fB]\fR +.SH "DESCRIPTION" +.PP +\fBmysqld\fR, also known as MySQL Server, is the main program that does most of the work in a MySQL installation\&. MySQL Server manages access to the MySQL data directory that contains databases and tables\&. The data directory is also the default location for other information such as log files and status files\&. +.PP +When MySQL server starts, it listens for network connections from client programs and manages access to databases on behalf of those clients\&. +.PP +The +\fBmysqld\fR +program has many options that can be specified at startup\&. For a complete list of options, run this command: +.sp +.if n \{\ +.RS 4 +.\} +.nf +shell> \fBmysqld \-\-verbose \-\-help\fR +.fi +.if n \{\ +.RE +.\} +.PP +MySQL Server also has a set of system variables that affect its operation as it runs\&. System variables can be set at server startup, and many of them can be changed at runtime to effect dynamic server reconfiguration\&. MySQL Server also has a set of status variables that provide information about its operation\&. You can monitor these status variables to access runtime performance characteristics\&. +.PP +For a full description of MySQL Server command options, system variables, and status variables, see +Section\ \&5.1, \(lqThe MySQL Server\(rq\&. For information about installing MySQL and setting up the initial configuration, see +Chapter\ \&2, Installing and Upgrading MySQL\&. +.SH "COPYRIGHT" +.br +.PP +Copyright 2007-2008 MySQL AB, 2008-2010 Sun Microsystems, Inc. +.PP +This documentation is free software; you can redistribute it and/or modify it only under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. +.PP +This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License along with the program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA or see http://www.gnu.org/licenses/. +.sp +.SH "SEE ALSO" +For more information, please refer to the MySQL Reference Manual, +which may already be installed locally and which is also available +online at http://dev.mysql.com/doc/. +.SH AUTHOR +Sun Microsystems, Inc. (http://www.mysql.com/). diff --git a/database/scripts/mysql_install_db b/database/scripts/mysql_install_db new file mode 100755 index 0000000..4c2b5cd --- /dev/null +++ b/database/scripts/mysql_install_db @@ -0,0 +1,551 @@ +#!/bin/sh +# Copyright (c) 2000, 2013, Oracle and/or its affiliates. +# Copyright (c) 2009, 2013, Monty Program Ab +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA + +# This scripts creates the MariaDB Server system tables +# +# All unrecognized arguments to this script are passed to mysqld. + +basedir="" +builddir="" +ldata="./data" +langdir="" +srcdir="" + +args="" +defaults="" +defaults_group_suffix="" +mysqld_opt="" +user="" + +force=0 +in_rpm=0 +ip_only=0 +cross_bootstrap=0 + +dirname0=`dirname $0 2>/dev/null` +dirname0=`dirname $dirname0 2>/dev/null` + +usage() +{ + cat <&1` + if test $? -ne 0 + then + resolved=`"$resolveip" localhost 2>&1` + if test $? -ne 0 + then + echo "Neither host '$hostname' nor 'localhost' could be looked up with" + echo "'$resolveip'" + echo "Please configure the 'hostname' command to return a correct" + echo "hostname." + echo "If you want to solve this at a later stage, restart this script" + echo "with the --force option" + link_to_help + exit 1 + fi + echo "WARNING: The host '$hostname' could not be looked up with $resolveip." + echo "This probably means that your libc libraries are not 100 % compatible" + echo "with this binary MariaDB version. The MariaDB daemon, mysqld, should work" + echo "normally with the exception that host name resolving will not work." + echo "This means that you should use IP addresses instead of hostnames" + echo "when specifying MariaDB privileges !" + fi +fi + +if test "$ip_only" -eq 1 +then + hostname=`echo "$resolved" | awk '/ /{print $6}'` +fi + +# Create database directories +for dir in "$ldata" "$ldata/mysql" "$ldata/test" +do + if test ! -d "$dir" + then + if ! `mkdir -p "$dir"` + then + echo "Fatal error Can't create database directory '$dir'" + link_to_help + exit 1 + fi + chmod 700 "$dir" + fi + if test -n "$user" + then + chown $user "$dir" + if test $? -ne 0 + then + echo "Cannot change ownership of the database directories to the '$user'" + echo "user. Check that you have the necessary permissions and try again." + exit 1 + fi + fi +done + +if test -n "$user" +then + args="$args --user=$user" +fi + +# When doing a "cross bootstrap" install, no reference to the current +# host should be added to the system tables. So we filter out any +# lines which contain the current host name. +if test $cross_bootstrap -eq 1 +then + filter_cmd_line="sed -e '/@current_hostname/d'" +else + filter_cmd_line="cat" +fi + +# Configure mysqld command line +mysqld_bootstrap="${MYSQLD_BOOTSTRAP-$mysqld}" +mysqld_install_cmd_line() +{ + "$mysqld_bootstrap" $defaults $defaults_group_suffix "$mysqld_opt" \ + --bootstrap "--basedir=$basedir" "--datadir=$ldata" --log-warnings=0 \ + --loose-skip-innodb --loose-skip-ndbcluster $args --max_allowed_packet=8M \ + --default-storage-engine=myisam \ + --net_buffer_length=16K +} + + +# Create the system and help tables by passing them to "mysqld --bootstrap" +s_echo "Installing MariaDB/MySQL system tables in '$ldata' ..." +if { echo "use mysql;"; cat "$create_system_tables" "$create_system_tables2" "$fill_system_tables"; } | eval "$filter_cmd_line" | mysqld_install_cmd_line > /dev/null +then + s_echo "OK" +else + echo + echo "Installation of system tables failed! Examine the logs in" + echo "$ldata for more information." + echo + echo "The problem could be conflicting information in an external" + echo "my.cnf files. You can ignore these by doing:" + echo + echo " shell> $0 --defaults-file=~/.my.cnf" + echo + echo "You can also try to start the mysqld daemon with:" + echo + echo " shell> $mysqld --skip-grant-tables --general-log &" + echo + echo "and use the command line tool $bindir/mysql" + echo "to connect to the mysql database and look at the grant tables:" + echo + echo " shell> $bindir/mysql -u root mysql" + echo " mysql> show tables;" + echo + echo "Try 'mysqld --help' if you have problems with paths. Using" + echo "--general-log gives you a log in $ldata that may be helpful." + link_to_help + echo "You can find the latest source at https://downloads.mariadb.org and" + echo "the maria-discuss email list at https://launchpad.net/~maria-discuss" + echo + echo "Please check all of the above before submitting a bug report" + echo "at http://mariadb.org/jira" + echo + exit 1 +fi + +s_echo "Filling help tables..." +if { echo "use mysql;"; cat "$fill_help_tables"; } | mysqld_install_cmd_line > /dev/null +then + s_echo "OK" +else + echo + echo "WARNING: HELP FILES ARE NOT COMPLETELY INSTALLED!" + echo "The \"HELP\" command might not work properly." +fi + +# Don't output verbose information if running inside bootstrap or using +# --srcdir for testing. In such cases, there's no end user looking at +# the screen. +if test "$cross_bootstrap" -eq 0 && test -z "$srcdir" +then + s_echo + s_echo "To start mysqld at boot time you have to copy" + s_echo "support-files/mysql.server to the right place for your system" + + echo + echo "PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER !" + echo "To do so, start the server, then issue the following commands:" + echo + echo "'$bindir/mysqladmin' -u root password 'new-password'" + echo "'$bindir/mysqladmin' -u root -h $hostname password 'new-password'" + echo + echo "Alternatively you can run:" + echo "'$bindir/mysql_secure_installation'" + echo + echo "which will also give you the option of removing the test" + echo "databases and anonymous user created by default. This is" + echo "strongly recommended for production servers." + echo + echo "See the MariaDB Knowledgebase at http://mariadb.com/kb or the" + echo "MySQL manual for more instructions." + + if test "$in_rpm" -eq 0 + then + echo + echo "You can start the MariaDB daemon with:" + echo "cd '$basedir' ; $bindir/mysqld_safe --datadir='$ldata'" + echo + echo "You can test the MariaDB daemon with mysql-test-run.pl" + echo "cd '$basedir/mysql-test' ; perl mysql-test-run.pl" + fi + + echo + echo "Please report any problems at http://mariadb.org/jira" + echo + echo "The latest information about MariaDB is available at http://mariadb.org/." + echo "You can find additional information about the MySQL part at:" + echo "http://dev.mysql.com" + echo "Consider joining MariaDB's strong and vibrant community:" + echo "https://mariadb.org/get-involved/" + echo +fi + +exit 0 diff --git a/database/share/aclocal/mysql.m4 b/database/share/aclocal/mysql.m4 new file mode 100644 index 0000000..0a7034f --- /dev/null +++ b/database/share/aclocal/mysql.m4 @@ -0,0 +1,109 @@ +# Copyright (C) 2007 MySQL AB +# Use is subject to license terms +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the Free +# Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., 51 +# Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + +AC_DEFUN([_MYSQL_CONFIG],[ + AC_ARG_WITH([mysql-config], + AS_HELP_STRING([--with-mysql-config=PATH], [A path to mysql_config script]), + [mysql_config="$withval"], [mysql_config=mysql_config]) +]) + +dnl +dnl Usage: +dnl +dnl MYSQL_CLIENT([version], [client|thread-safe|embedded]) +dnl +dnl Two optional arguments: +dnl first: The minimal version of the MySQL to use +dnl if not specified, any version will be accepted. +dnl The version should be specified as three numbers, +dnl without suffixes. E.g. 4.10.15 or 5.0.3 +dnl second: force the specified library flavor to be selected, +dnl if not specified, a user will be able to choose +dnl between client (non-thread-safe) and embedded +dnl +dnl On successful execution sets MYSQL_CLIENT_CFLAGS and +dnl MYSQL_CLIENT_LIBS shell variables and makes substitutions +dnl out of them (calls AC_SUBST) +dnl + +AC_DEFUN([MYSQL_CLIENT],[ + AC_REQUIRE([_MYSQL_CONFIG]) + AC_MSG_CHECKING([for MySQL]) + ifelse([$2], [client], + [mysql_libs=--libs mysql_cflags=--cflags], + [$2], [thread-safe], + [mysql_libs=--libs_r mysql_cflags=--cflags], + [$2], [embedded], + [mysql_libs=--libmysqld-libs mysql_cflags=--cflags], + [$2], [], [ + AC_ARG_WITH([mysql-library], + AS_HELP_STRING([--with-mysql-library], ['client' or 'embedded']), + [mysql_lib="$withval"], [mysql_lib=client]) +[ + case "$mysql_lib" in + client) mysql_libs=--libs mysql_cflags=--cflags ;; + embedded) mysql_libs=--libmysqld-libs mysql_cflags=--cflags ;; + *) ]AC_MSG_ERROR([Bad value for --with-mysql-library])[ + esac +] + ], + [AC_FATAL([Bad second (library flavor) argument to MYSQL_CLIENT])]) +[ + mysql_version=`$mysql_config --version` + if test -z "$mysql_version" ; then + ]AC_MSG_ERROR([Cannot execute $mysql_config])[ + fi +] + ifelse([$1], [], [], [ + ifelse(regexp([$1], [^[0-9][0-9]?\.[0-9][0-9]?\.[0-9][0-9]?$]), -1, + [AC_FATAL([Bad first (version) argument to MYSQL_CLIENT])], [ +dnl +dnl Transformation below works as follows: +dnl assume, we have a number 1.2.3-beta +dnl *a* line removes the suffix and adds first and last dot to the version: +dnl .1.2.3. +dnl *b* line adds a 0 to a "single digit surrounded by dots" +dnl .01.2.03. +dnl note that the pattern that matched .1. has eaten the dot for .2. +dnl and 2 still has no 0 +dnl *c* we repeat the same replacement as in *b*, matching .2. this time +dnl .01.02.03. +dnl the last replacement removes all dots +dnl 010203 +dnl giving us a number we can compare with +dnl + mysql_ver=`echo ${mysql_version}|dnl + sed 's/[[-a-z]].*//; s/.*/.&./;dnl *a* + s/\.\([[0-9]]\)\./.0\1./g;dnl *b* + s/\.\([[0-9]]\)\./.0\1./g;dnl *c* + s/\.//g'` + if test "$mysql_ver" -lt]dnl +dnl the same as sed transformation above, without suffix-stripping, in m4 + patsubst(patsubst(patsubst(.[$1]., [\.\([0-9]\)\.], [.0\1.]), [\.\([0-9]\)\.], [.0\1.]), [\.], [])[ ; then + AC_MSG_ERROR([MySQL version $mysql_version is too low, minimum of $1 is required]) + fi + ])]) + + MYSQL_CLIENT_CFLAGS=`$mysql_config $mysql_cflags` + MYSQL_CLIENT_LIBS=`$mysql_config $mysql_libs` + AC_SUBST(MYSQL_CLIENT_CFLAGS) + AC_SUBST(MYSQL_CLIENT_LIBS) + + # should we try to build a test program ? + + AC_MSG_RESULT([$mysql_version]) +]) + diff --git a/database/share/charsets/Index.xml b/database/share/charsets/Index.xml new file mode 100644 index 0000000..3530d95 --- /dev/null +++ b/database/share/charsets/Index.xml @@ -0,0 +1,599 @@ + + + + + + Copyright (c) 2003-2005 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + + + +This file lists all of the available character sets. +To make maintaining easier please: + - keep records sorted by collation number. + - change charsets.max-id when adding a new collation. + + + + Traditional Chinese + Big5 Traditional Chinese + big-5 + bigfive + big-five + cn-big5 + csbig5 + + primary + compiled + + + binary + compiled + + + + + Central European + ISO 8859-2 Central European + csisolatin2 + iso-8859-2 + iso-ir-101 + iso_8859-2 + iso_8859-2:1987 + l2 + + + Hungarian + Polish + Romanian + Croatian + Slovak + Slovenian + Sorbian + + + + + + + + Western + DEC West European + + + Dutch + English + French + German Duden + Italian + Latin + Portuguese + Spanish + + + + + Western + DOS West European + 850 + cspc850multilingual + ibm850 + + Dutch + English + French + German Duden + Italian + Latin + Portuguese + Spanish + + + + + + Western + cp1252 West European + csisolatin1 + iso-8859-1 + iso-ir-100 + iso_8859-1 + iso_8859-1:1987 + l1 + latin1 + + + primary + compiled + + + + + + binary + compiled + + + Dutch + English + French + German Duden + Italian + Latin + Portuguese + Spanish + + + Dutch + English + French + German Duden + Italian + Latin + Portuguese + Spanish + + + + + Western + HP West European + hproman8 + + + Dutch + English + French + German Duden + Italian + Latin + Portuguese + Spanish + + + + + Cyrillic + KOI8-R Relcom Russian + koi8-r + cskoi8r + + + + + + Western + 7bit Swedish + iso-646-se + + + + + + Western + US ASCII + us + us-ascii + csascii + iso-ir-6 + iso646-us + + + + + + Japanese + EUC-JP Japanese + euc-jp + + primary + compiled + + + binary + compiled + + + + + Japanese + Shift-JIS Japanese + s-jis + shift-jis + x-sjis + + primary + compiled + + + binary + compiled + + + + + Cyrillic + Windows Cyrillic + windows-1251 + ms-cyr + ms-cyrillic + + Belarusian + Bulgarian + Macedonian + Russian + Serbian + Mongolian + Ukrainian + + + + + Belarusian + Bulgarian + Macedonian + Russian + Serbian + Mongolian + Ukrainian + + + Belarusian + Bulgarian + Macedonian + Russian + Serbian + Mongolian + Ukrainian + + + + + Hebrew + ISO 8859-8 Hebrew + csisolatinhebrew + iso-8859-8 + iso-ir-138 + + + + + + Thai + TIS620 Thai + tis-620 + + primary + compiled + + + binary + compiled + + + + + Korean + EUC-KR Korean + euc_kr + euc-kr + + primary + compiled + + + binary + compiled + + + + + Baltic + ISO 8859-13 Baltic + BalticRim + iso-8859-13 + l7 + + Estonian + + + Latvian + Lithuanian + primary + + + Latvian + Lithuanian + + + + + + Cyrillic + KOI8-U Ukrainian + koi8-u + + + + + + Simplified Chinese + GB2312 Simplified Chinese + chinese + iso-ir-58 + + primary + compiled + + + binary + compiled + + + + + Greek + ISO 8859-7 Greek + csisolatingreek + ecma-118 + greek8 + iso-8859-7 + iso-ir-126 + + + + + + Central European + Windows Central European + ms-ce + windows-1250 + + Hungarian + Polish + Romanian + Croatian + Slovak + Slovenian + Sorbian + + + Croatian + + + Polish + + + compiled + + + + + + East Asian + GBK Simplified Chinese + cp936 + + primary + compiled + + + binary + compiled + + + + + Baltic + Windows Baltic + WinBaltRim + windows-1257 + + + + Latvian + Lithuanian + + + + + + + South Asian + ISO 8859-9 Turkish + csisolatin5 + iso-8859-9 + iso-ir-148 + l5 + latin5 + turkish + + + + + + South Asian + ARMSCII-8 Armenian + armscii-8 + + + + + + Unicode + UTF-8 Unicode + utf-8 + + primary + compiled + + + binary + compiled + + + + + Unicode + UCS-2 Unicode + + primary + compiled + + + binary + compiled + + + + + Cyrillic + DOS Russian + 866 + csibm866 + ibm866 + DOSCyrillicRussian + + + + + + Central European + DOS Kamenicky Czech-Slovak + + + + + + Central European + Mac Central European + MacCentralEurope + + Hungarian + Polish + Romanian + Croatian + Slovak + Slovenian + Sorbian + + + + + + Western + Mac West European + Mac + Macintosh + csmacintosh + + Dutch + English + French + German Duden + Italian + Latin + Portuguese + Spanish + + + + + + + + + Central European + DOS Central European + 852 + cp852 + ibm852 + + Hungarian + Polish + Romanian + Croatian + Slovak + Slovenian + Sorbian + + + + + + Arabic + Windows Arabic + ms-arab + windows-1256 + + + Arabic + Persian + Pakistani + Urdu + + + + + South Asian + GEOSTD8 Georgian + + + + + + Binary pseudo charset + + primary + compiled + + + + + Japanese + SJIS for Windows Japanese + ms_cp932 + sjis_cp932 + sjis_ms + + primary + compiled + + + binary + compiled + + + + + Japanese + UJIS for Windows Japanese + eucjpms + eucJP_ms + ujis_ms + ujis_cp932 + + primary + compiled + + + binary + compiled + + + + + diff --git a/database/share/charsets/README b/database/share/charsets/README new file mode 100644 index 0000000..3c5b320 --- /dev/null +++ b/database/share/charsets/README @@ -0,0 +1,39 @@ +This directory holds configuration files that enable MySQL to work with +different character sets. It contains: + +charset_name.xml + Each charset_name.xml file contains information for a simple character + set. The information in the file describes character types, + lower- and upper-case equivalencies and sorting orders for the + character values in the set. + +Index.xml + The Index.xml file lists all of the available charset configurations, + including collations. + + Each collation must have a unique number. The number is stored + IN THE DATABASE TABLE FILES and must not be changed. + + The max-id attribute of the element must be set to + the largest collation number. + +Compiled in or configuration file? + When should a character set be compiled in to MySQL's string library + (libmystrings), and when should it be placed in a charset_name.xml + configuration file? + + If the character set requires the strcoll functions or is a + multi-byte character set, it MUST be compiled in to the string + library. If it does not require these functions, it should be + placed in a charset_name.xml configuration file. + + If the character set uses any one of the strcoll functions, it + must define all of them. Likewise, if the set uses one of the + multi-byte functions, it must define them all. See the manual for + more information on how to add a complex character set to MySQL. + +Syntax of configuration files + The syntax is very simple. Words in array elements are + separated by arbitrary amounts of whitespace. Each word must be a + number in hexadecimal format. The ctype array has 257 words; the + other arrays (lower, upper, etc.) take up 256 words each after that. diff --git a/database/share/charsets/armscii8.xml b/database/share/charsets/armscii8.xml new file mode 100644 index 0000000..161d469 --- /dev/null +++ b/database/share/charsets/armscii8.xml @@ -0,0 +1,139 @@ + + + + + + Copyright (c) 2003, 2004 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + + + + + + + 00 + 20 20 20 20 20 20 20 20 20 28 28 28 28 28 20 20 + 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 + 48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 84 84 84 84 84 84 84 84 84 84 10 10 10 10 10 10 + 10 81 81 81 81 81 81 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 01 01 01 01 10 10 10 10 10 + 10 82 82 82 82 82 82 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 02 02 02 02 10 10 10 10 20 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 01 02 01 02 01 02 01 02 01 02 01 02 01 02 + 01 02 01 02 01 02 01 02 01 02 01 02 01 02 01 02 + 01 02 01 02 01 02 01 02 01 02 01 02 01 02 01 02 + 01 02 01 02 01 02 01 02 01 02 01 02 01 02 01 02 + 01 02 01 02 01 02 01 02 01 02 01 02 01 02 10 10 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 5B 5C 5D 5E 5F + 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 B8 A9 AA AB AC AD AE AF + B0 B1 B3 B3 B5 B5 B7 B7 B9 B9 BB BB BD BD BF BF + C1 C1 C3 C3 C5 C5 C7 C7 C9 C9 CB CB CD CD CF CF + D1 D1 D3 D3 D5 D5 D7 D7 D9 D9 DB DB DD DD DF DF + E1 E1 E3 E3 E5 E5 E7 E7 E9 E9 EB EB ED ED EF EF + F1 F1 F3 F3 F5 F5 F7 F7 F9 F9 FB FB FD FD FE FF + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B2 B4 B4 B6 B6 B8 B8 BA BA BC BC BE BE + C0 C0 C2 C2 C4 C4 C6 C6 C8 C8 CA CA CC CC CE CE + D0 D0 D2 D2 D4 D4 D6 D6 D8 D8 DA DA DC DC DE DE + E0 E0 E2 E2 E4 E4 E6 E6 E8 E8 EA EA EC EC EE EE + F0 F0 F2 F2 F4 F4 F6 F6 F8 F8 FA FA FC FC FE FF + + + + + + +0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F +0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F +0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F +0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003A 003B 003C 003D 003E 003F +0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F +0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F +0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F +0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F +0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 008A 008B 008C 008D 008E 008F +0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 009A 009B 009C 009D 009E 009F +00A0 2741 00A7 0589 0029 0028 00BB 00AB 2014 002E 055D 002C 002D 055F 2026 055C +055B 055E 0531 0561 0532 0562 0533 0563 0534 0564 0535 0565 0536 0566 0537 0567 +0538 0568 0539 0569 053A 056A 053B 056B 053C 056C 053D 056D 053E 056E 053F 056F +0540 0570 0541 0571 0542 0572 0543 0573 0544 0574 0545 0575 0546 0576 0547 0577 +0548 0578 0549 0579 054A 057A 054B 057B 054C 057C 054D 057D 054E 057E 054F 057F +0550 0580 0551 0581 0552 0582 0553 0583 0554 0584 0555 0585 0556 0586 2019 0027 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + + + diff --git a/database/share/charsets/ascii.xml b/database/share/charsets/ascii.xml new file mode 100644 index 0000000..0f90f49 --- /dev/null +++ b/database/share/charsets/ascii.xml @@ -0,0 +1,139 @@ + + + + + + Copyright (c) 2003, 2007 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + + + + + + + 00 + 20 20 20 20 20 20 20 20 20 28 28 28 28 28 20 20 + 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 + 48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 84 84 84 84 84 84 84 84 84 84 10 10 10 10 10 10 + 10 81 81 81 81 81 81 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 01 01 01 01 10 10 10 10 10 + 10 82 82 82 82 82 82 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 02 02 02 02 10 10 10 10 20 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 5B 5C 5D 5E 5F + 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + +0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F +0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F +0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F +0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003A 003B 003C 003D 003E 003F +0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F +0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F +0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F +0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + + + diff --git a/database/share/charsets/cp1250.xml b/database/share/charsets/cp1250.xml new file mode 100644 index 0000000..55379ef --- /dev/null +++ b/database/share/charsets/cp1250.xml @@ -0,0 +1,183 @@ + + + + + + Copyright (c) 2003, 2005 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + + + + + + + 00 + 20 20 20 20 20 20 20 20 20 28 28 28 28 28 20 20 + 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 + 48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 84 84 84 84 84 84 84 84 84 84 10 10 10 10 10 10 + 10 81 81 81 81 81 81 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 01 01 01 01 10 10 10 10 10 + 10 82 82 82 82 82 82 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 02 02 02 02 10 10 10 10 20 + 20 20 10 20 10 10 10 10 20 10 01 10 01 01 01 01 + 20 10 10 10 10 10 10 10 20 10 02 10 02 02 02 02 + 48 10 10 01 10 01 10 01 10 10 01 10 10 10 10 01 + 10 10 10 02 10 10 10 10 10 02 02 10 01 10 02 02 + 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 10 01 01 01 01 01 01 01 02 + 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 10 02 02 02 02 02 02 02 10 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 5B 5C 5D 5E 5F + 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 9A 8B 9C 9D 9E 9F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 B3 A4 B9 A6 A7 A8 A9 BA AB AC AD AE BF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BE BD BE BF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 D7 F8 F9 FA FB FC FD FE DF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 8A 9B 8C 8D 8E 8F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 A3 B4 B5 B6 B7 B8 A5 AA BB BC BD BC AF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 F7 D8 D9 DA DB DC DD DE FF + + + + + + +0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F +0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F +0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F +0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003A 003B 003C 003D 003E 003F +0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F +0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F +0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F +0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F +20AC 0000 201A 0000 201E 2026 2020 2021 0000 2030 0160 2039 015A 0164 017D 0179 +0000 2018 2019 201C 201D 2022 2013 2014 0000 2122 0161 203A 015B 0165 017E 017A +00A0 02C7 02D8 0141 00A4 0104 00A6 00A7 00A8 00A9 015E 00AB 00AC 00AD 00AE 017B +00B0 00B1 02DB 0142 00B4 00B5 00B6 00B7 00B8 0105 015F 00BB 013D 02DD 013E 017C +0154 00C1 00C2 0102 00C4 0139 0106 00C7 010C 00C9 0118 00CB 011A 00CD 00CE 010E +0110 0143 0147 00D3 00D4 0150 00D6 00D7 0158 016E 00DA 0170 00DC 00DD 0162 00DF +0155 00E1 00E2 0103 00E4 013A 0107 00E7 010D 00E9 0119 00EB 011B 00ED 00EE 010F +0111 0144 0148 00F3 00F4 0151 00F6 00F7 0159 016F 00FA 0171 00FC 00FD 0163 02D9 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 46 49 4A 4B 4C 4D 4E 4F 50 52 53 55 + 56 57 58 59 5B 5C 5D 5E 5F 60 61 63 64 65 66 67 + 68 41 42 43 46 49 4A 4B 4C 4D 4E 4F 50 52 53 55 + 56 57 58 59 5B 5C 5D 5E 5F 60 61 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 5A 8B 5A 5B 62 62 + 90 91 92 93 94 95 96 97 98 99 5A 9B 5A 5B 62 62 + 20 A1 A2 50 A4 41 A6 59 A8 A9 59 AB AC AD AE 62 + B0 B1 B2 50 B4 B5 B6 B7 B8 41 59 BB 50 BD 50 62 + 58 41 41 41 41 50 45 43 44 49 49 49 49 4D 4D 46 + 47 53 53 55 55 55 55 D7 58 5C 5C 5C 5C 60 5B 59 + 58 41 41 41 41 50 45 43 44 49 49 49 49 4D 4D 46 + 47 53 53 55 55 55 55 F7 58 5C 5C 5C 5C 60 5B FF + + + + + +00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F +10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F +20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F +30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F +40 41 43 44 48 4B 4D 4E 4F 50 52 53 54 56 57 59 +5B 5C 5D 5F 62 64 66 67 68 69 6B 90 91 92 93 94 +95 41 43 44 48 4B 4D 4E 4F 50 52 53 54 56 57 59 +5B 5C 5D 5F 62 64 66 67 68 69 6B 96 97 98 99 9A +9B 9C 9E 9F A0 A1 A2 A3 A4 A5 60 A6 5F 62 6C 6B +A7 A8 A9 AA AB AC AD AE AF B0 60 B1 5F 62 6C 6B +B2 B3 B4 54 B5 41 B6 B7 B8 B9 5F BA BB BC BD 6B +BE BF C0 54 C1 C2 C3 C4 C5 41 5F C6 54 C7 54 6B +5D 41 41 41 41 54 47 44 46 4B 4B 4B 4B 50 50 48 +4A 57 57 59 59 59 59 C8 5D 64 64 64 64 69 62 5F +5D 41 41 41 41 54 47 44 46 4B 4B 4B 4B 50 50 48 +4A 57 57 59 59 59 59 C9 5D 64 64 64 64 69 62 FF + + + + + +00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F +10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F +20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F +30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F +40 41 43 44 48 4B 4D 4E 4F 50 52 53 54 56 57 59 +5B 5C 5D 5F 62 64 66 67 68 69 6B 90 91 92 93 94 +95 41 43 44 48 4B 4D 4E 4F 50 52 53 54 56 57 59 +5B 5C 5D 5F 62 64 66 67 68 69 6B 96 97 98 99 9A +9B 9C 9E 9F A0 A1 A2 A3 A4 A5 5F A6 60 62 6B 6C +A7 A8 A9 AA AB AC AD AE AF B0 5F B1 60 62 6B 6C +B2 B3 B4 55 B5 42 B6 B7 B8 B9 5F BA BB BC BD 6D +BE BF C0 55 C1 C2 C3 C4 C5 42 5F C6 54 C7 54 6D +5D 41 41 41 41 54 47 44 44 4B 4C 4B 4B 50 50 48 +48 58 57 5A 59 59 59 C8 5D 64 64 64 64 69 62 5F +5D 41 41 41 41 54 47 44 44 4B 4C 4B 4B 50 50 48 +48 58 57 5A 59 59 59 C9 5D 64 64 64 64 69 62 FF + + + + + + + + + + diff --git a/database/share/charsets/cp1251.xml b/database/share/charsets/cp1251.xml new file mode 100644 index 0000000..33a3628 --- /dev/null +++ b/database/share/charsets/cp1251.xml @@ -0,0 +1,214 @@ + + + + + + Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA + + + + + + + 00 + 20 20 20 20 20 20 20 20 20 28 28 28 28 28 20 20 + 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 + 48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 84 84 84 84 84 84 84 84 84 84 10 10 10 10 10 10 + 10 81 81 81 81 81 81 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 01 01 01 01 10 10 10 10 10 + 10 82 82 82 82 82 82 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 02 02 02 02 10 10 10 10 00 + 01 01 00 02 00 00 00 00 00 00 01 00 01 01 01 01 + 02 00 00 00 00 00 00 00 00 00 02 00 02 02 02 02 + 00 01 02 01 00 01 00 00 01 00 01 00 00 00 00 01 + 00 00 01 02 02 00 00 00 02 00 02 00 02 01 02 02 + 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 + 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 5B 5C 5D 5E 5F + 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F + 90 83 82 83 84 85 86 87 88 89 9A 8B 9C 9D 9E 9F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A2 A2 BC A4 B4 A6 A7 B8 A9 BA AB AC AD AE BF + B0 B1 B3 B3 B4 B5 B6 B7 B8 B9 BA BB BC BE BE BF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F + 80 81 82 81 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 80 91 92 93 94 95 96 97 98 99 8A 9B 8C 9D 8E 8F + A0 A1 A1 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B2 A5 B5 B6 B7 A8 B9 AA BB A3 BD BD AF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + + + + + + + 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F + 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F + 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F + 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003A 003B 003C 003D 003E 003F + 0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F + 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F + 0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F + 0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F + 0402 0403 201A 0453 201E 2026 2020 2021 20AC 2030 0409 2039 040A 040C 040B 040F + 0452 2018 2019 201C 201D 2022 2013 2014 0000 2122 0459 203A 045A 045C 045B 045F + 00A0 040E 045E 0408 00A4 0490 00A6 00A7 0401 00A9 0404 00AB 00AC 00AD 00AE 0407 + 00B0 00B1 0406 0456 0491 00B5 00B6 00B7 0451 2116 0454 00BB 0458 0405 0455 0457 + 0410 0411 0412 0413 0414 0415 0416 0417 0418 0419 041A 041B 041C 041D 041E 041F + 0420 0421 0422 0423 0424 0425 0426 0427 0428 0429 042A 042B 042C 042D 042E 042F + 0430 0431 0432 0433 0434 0435 0436 0437 0438 0439 043A 043B 043C 043D 043E 043F + 0440 0441 0442 0443 0444 0445 0446 0447 0448 0449 044A 044B 044C 044D 044E 044F + + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7C 7D 7E 7F 80 + 81 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 82 83 84 85 FF + FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + FF FF FF FF FF FF FF FF 61 FF FF FF FF FF FF FF + FF FF FF FF FF FF FF FF 61 FF FF FF FF FF FF FF + 5B 5C 5D 5E 5F 60 62 63 64 65 66 67 68 69 6A 6B + 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B + 5B 5C 5D 5E 5F 60 62 63 64 65 66 67 68 69 6A 6B + 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B + + + + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 43 45 47 49 4B 4D 4F 51 53 55 57 59 5B 5D + 5F 61 63 65 67 69 6B 6D 6F 71 73 D3 D4 D5 D6 D7 + D8 41 43 45 47 49 4B 4D 4F 51 53 55 57 59 5B 5D + 5F 61 63 65 67 69 6B 6D 6F 71 73 D9 DA DB DC DD + 81 83 DE 83 DF E0 E1 E2 E3 E4 A1 E5 A7 9D B3 C1 + 81 E6 E7 E8 E9 EA EB EC ED EE A1 EF A7 9D B3 C1 + F0 B7 B7 99 F1 7D F2 F3 87 F4 89 F5 F6 F7 F8 95 + F9 FA 93 93 7D FB FC FD 87 FE 89 FF 99 8F 8F 95 + 75 77 79 7B 7F 85 8B 8D 91 97 9B 9F A3 A5 A9 AB + AD AF B1 B5 B9 BB BD BF C3 C5 C7 C9 CB CD CF D1 + 75 77 79 7B 7F 85 8B 8D 91 97 9B 9F A3 A5 A9 AB + AD AF B1 B5 B9 BB BD BF C3 C5 C7 C9 CB CD CF D1 + + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 43 45 47 49 4B 4D 4F 51 53 55 57 59 5B 5D + 5F 61 63 65 67 69 6B 6D 6F 71 73 D3 D4 D5 D6 D7 + D8 42 44 46 48 4A 4C 4E 50 52 54 56 58 5A 5C 5E + 60 62 64 66 68 6A 6C 6E 70 72 74 D9 DA DB DC DD + 81 83 DE 84 DF E0 E1 E2 E3 E4 A1 E5 A7 9D B3 C1 + 82 E6 E7 E8 E9 EA EB EC ED EE A2 EF A8 9E B4 C2 + F0 B7 B8 99 F1 7D F2 F3 87 F4 89 F5 F6 F7 F8 95 + F9 FA 93 94 7E FB FC FD 88 FE 8A FF 9A 8F 90 96 + 75 77 79 7B 7F 85 8B 8D 91 97 9B 9F A3 A5 A9 AB + AD AF B1 B5 B9 BB BD BF C3 C5 C7 C9 CB CD CF D1 + 76 78 7A 7C 80 86 8C 8E 92 98 9C A0 A4 A6 AA AC + AE B0 B2 B6 BA BC BE C0 C4 C6 C8 CA CC CE D0 D2 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 20 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F + A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 B4 + B5 B6 B7 B8 B9 BA BB BC BD BE BF C0 C1 C2 C3 C4 + C5 C6 C7 C8 C9 84 CA CB 88 CC 87 CD CE CF D0 8D + D1 D2 8C 8C 84 D3 D4 D5 88 D6 87 D7 D8 D9 DA 8D + 80 81 82 83 85 86 89 8A 8B 8E 8F 90 91 92 93 94 + 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3 A4 + 80 81 82 83 85 86 89 8A 8B 8E 8F 90 91 92 93 94 + 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3 A4 + + + + + + + diff --git a/database/share/charsets/cp1256.xml b/database/share/charsets/cp1256.xml new file mode 100644 index 0000000..4584b30 --- /dev/null +++ b/database/share/charsets/cp1256.xml @@ -0,0 +1,142 @@ + + + + + + + + Copyright (C) 2003 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + + + + + + + 00 + 20 20 20 20 20 20 20 20 20 28 28 28 28 28 20 20 + 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 + 48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 84 84 84 84 84 84 84 84 84 84 10 10 10 10 10 10 + 10 81 81 81 81 81 81 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 01 01 01 01 10 10 10 00 00 + 00 82 82 82 82 82 82 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 02 02 02 02 10 10 10 10 20 + 00 03 00 02 00 00 00 00 00 00 00 00 01 03 03 00 + 03 10 10 10 10 00 00 00 00 00 00 00 02 00 00 00 + 00 10 00 00 00 00 00 00 00 00 00 10 10 10 00 00 + 10 10 00 00 00 00 00 00 00 00 10 10 00 00 00 10 + 00 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 + 03 03 03 03 03 03 03 00 03 03 03 03 03 03 03 03 + 02 03 02 03 03 03 03 02 02 02 02 02 03 03 02 02 + 03 03 03 03 02 03 03 00 03 02 03 02 02 00 00 00 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 54 75 76 77 78 79 7A 5B 5C 5D 5E 5F + 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 54 75 76 77 78 79 7A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 9C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 74 55 56 57 58 59 5A 5B 5C 5F 5E 5F + 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 74 55 56 57 58 59 5A 7B 7C 7F 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 8C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + + 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F + 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F + 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F + 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003A 003B 003C 003D 003E 003F + 0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F + 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F + 0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F + 0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F + 20AC 067E 201A 0192 201E 2026 2020 2021 02C6 2030 0000 2039 0152 0686 0698 0000 + 06AF 2018 2019 201C 201D 2022 2013 2014 0000 2122 0000 203A 0153 200C 200D 0000 + 00A0 060C 00A2 00A3 00A4 00A5 00A6 00A7 00A8 00A9 0000 00AB 00AC 00AD 00AE 00AF + 00B0 00B1 00B2 00B3 00B4 00B5 00B6 00B7 00B8 00B9 061B 00BB 00BC 00BD 00BE 061F + 0000 0621 0622 0623 0624 0625 0626 0627 0628 0629 062A 062B 062C 062D 062E 062F + 0630 0631 0632 0633 0634 0635 0636 00D7 0637 0638 0639 063A 0640 0641 0642 0643 + 00E0 0644 00E2 0645 0646 0647 0648 00E7 00E8 00E9 00EA 00EB 0649 064A 00EE 00EF + 064B 064C 064D 064E 00F4 064F 0650 00F7 0651 00F9 0652 00FB 00FC 200E 200F 0000 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 45 47 4A 4C 52 55 57 59 5D 5F 61 63 65 67 + 6C 6E 70 72 74 76 7B 7D 7F 81 83 B9 BA BB BC BD + BE 41 45 47 4A 4C 52 55 57 59 5D 5F 61 63 65 67 + 6C 6E 70 72 74 76 7B 7D 7F 81 83 BF C0 C1 C2 C3 + C4 8E C5 54 C6 C7 C8 C9 CA CB CC CD 6A 92 99 CE + A5 CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 6A DA DB DC + DD B6 DE DF E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB + EC ED EE EF F0 F1 F2 F3 F4 F5 B7 F6 F7 F8 F9 B8 + FA 85 86 87 88 89 8A 8B 8C 8D 9F 90 91 93 94 95 + 96 97 98 9A 9B 9C 9D FB 9E 9F A0 A1 AD A2 A3 A4 + 43 A6 44 A7 A8 A9 AA 49 4E 4F 50 51 AB AC 5B 5C + AE AF B0 B1 69 B2 B3 FC B4 78 B5 79 7A FD FE FF + + + + + + + + + diff --git a/database/share/charsets/cp1257.xml b/database/share/charsets/cp1257.xml new file mode 100644 index 0000000..d2f3d59 --- /dev/null +++ b/database/share/charsets/cp1257.xml @@ -0,0 +1,228 @@ + + + + + + Copyright (C) 2003 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + + + + + + + 00 + 20 20 20 20 20 20 20 20 20 28 28 28 28 28 20 20 + 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 + 48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 84 84 84 84 84 84 84 84 84 84 10 10 10 10 10 10 + 10 81 81 81 81 81 81 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 01 01 01 01 10 10 10 10 10 + 10 82 82 82 82 82 82 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 02 02 02 02 10 10 10 10 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 01 00 01 00 00 00 00 01 + 00 00 00 00 00 00 00 00 02 00 02 00 00 00 00 02 + 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 00 01 01 01 01 01 01 01 02 + 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 00 02 02 02 02 02 02 02 00 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 5B 5C 5D 5E 5F + 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 B8 A9 BA AB AC AD AE BF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 D7 F8 F9 FA FB FC FD FE DF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 BA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 A8 B9 BA BB BC BD BE AF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 F7 D8 D9 DA DB DC DD DE FF + + + + + + + 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F + 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F + 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F + 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003A 003B 003C 003D 003E 003F + 0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F + 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F + 0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F + 0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F + 20AC 0000 201A 0000 201E 2026 2020 2021 0000 2030 0000 2039 0000 00A8 02C7 00B8 + 0000 2018 2019 201C 201D 2022 2013 2014 0000 2122 0000 203A 0000 00AF 02DB 0000 + 00A0 0000 00A2 00A3 00A4 0000 00A6 00A7 00D8 00A9 0156 00AB 00AC 00AD 00AE 00C6 + 00B0 00B1 00B2 00B3 00B4 00B5 00B6 00B7 00F8 00B9 0157 00BB 00BC 00BD 00BE 00E6 + 0104 012E 0100 0106 00C4 00C5 0118 0112 010C 00C9 0179 0116 0122 0136 012A 013B + 0160 0143 0145 00D3 014C 00D5 00D6 00D7 0172 0141 015A 016A 00DC 017B 017D 00DF + 0105 012F 0101 0107 00E4 00E5 0119 0113 010D 00E9 017A 0117 0123 0137 012B 013C + 0161 0144 0146 00F3 014D 00F5 00F6 00F7 0173 0142 015B 016B 00FC 017C 017E 02D9 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 43 44 46 47 4A 4B 4C 4D 50 51 52 53 54 55 + 56 57 58 59 5B 5C 5F 60 61 4E FF 62 63 64 65 66 + 67 41 43 44 46 47 4A 4B 4C 4D 50 51 52 53 54 55 + 56 57 58 59 5B 5C 5F 60 61 4E FF 68 69 6A 6B FF + FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + 42 4F FF FF FF FF 48 FF 45 FF FF 49 FF FF FF FF + 5A FF FF FF FF FF FF FF 5E FF FF 5D FF FF FF FF + FF 4F FF FF FF FF 48 FF 45 FF FF 49 FF FF FF FF + 5A FF FF FF FF FF FF FF 5E FF FF 5D FF FF FF FF + + + + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 4D 4F 55 57 61 63 67 69 6F 71 75 7B 7D 83 + 8F 91 93 97 9E A0 A8 AA AC AE B0 B8 B9 BA BB BC + BD 41 4D 4F 55 57 61 63 67 69 6F 71 75 7B 7D 83 + 8F 91 93 97 9E A0 A8 AA AC AE B0 BE BF C0 C1 C4 + C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 + D5 D6 D7 D8 D9 DA DB DC DD DE DF E0 E1 E2 E3 E4 + E5 E6 E7 E8 E9 EA EB EC 83 ED 93 EE EF F0 F1 41 + F2 F3 F4 F5 F6 F7 F8 F9 83 FA 93 FB FC FD FE 41 + 41 69 41 4F 41 41 57 57 4F 57 B0 57 63 71 69 75 + 97 7D 7D 83 83 83 83 C2 A0 75 97 A0 A0 B0 B0 97 + 41 69 41 4F 41 41 57 57 4F 57 B0 57 63 71 69 75 + 97 7D 7D 83 83 83 83 C3 A0 75 97 A0 A0 B0 B0 FF + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 4D 4F 55 57 61 63 67 69 6F 71 75 7B 7D 83 + 8F 91 93 97 9E A0 A8 AA AC AE B0 B8 B9 BA BB BC + BD 41 4D 4F 55 57 61 63 67 69 6F 71 75 7B 7D 83 + 8F 91 93 97 9E A0 A8 AA AC AE B0 BE BF C0 C1 C4 + C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 + D5 D6 D7 D8 D9 DA DB DC DD DE DF E0 E1 E2 E3 E4 + E5 E6 E7 E8 E9 EA EB EC 85 ED 95 EE EF F0 F1 4B + F2 F3 F4 F5 F6 F7 F8 F9 85 FA 95 FB FC FD FE 4B + 43 6B 45 51 47 49 59 5B 53 5D B2 5F 65 73 6D 77 + 99 7F 81 87 89 8B 8D C2 A2 79 9B A4 A6 B4 B6 9D + 43 6B 45 51 47 49 59 5B 53 5D B2 5F 65 73 6D 77 + 99 7F 81 87 89 8B 8D C3 A2 79 9B A4 A6 B4 B6 FF + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 4D 4F 55 57 61 63 67 69 6F 71 75 7B 7D 83 + 8F 91 93 97 9E A0 A8 AA AC AE B0 B8 B9 BA BB BC + BD 42 4E 50 56 58 62 64 68 6A 70 72 76 7C 7E 84 + 90 92 94 98 9F A1 A9 AB AD AF B1 BE BF C0 C1 C4 + C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 + D5 D6 D7 D8 D9 DA DB DC DD DE DF E0 E1 E2 E3 E4 + E5 E6 E7 E8 E9 EA EB EC 85 ED 95 EE EF F0 F1 4B + F2 F3 F4 F5 F6 F7 F8 F9 86 FA 96 FB FC FD FE 4C + 43 6B 45 51 47 49 59 5B 53 5D B2 5F 65 73 6D 77 + 99 7F 81 87 89 8B 8D C2 A2 79 9B A4 A6 B4 B6 9D + 44 6C 46 52 48 4A 5A 5C 54 5E B3 60 66 74 6E 78 + 9A 80 82 88 8A 8C 8E C3 A3 7A 9C A5 A7 B5 B7 FF + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 47 49 4D 4F 57 59 5D 5F 65 67 6B 6F 71 75 + 79 7B 7D 81 85 87 8D 8F 91 93 95 FF FF FF FF FF + FF 42 48 4A 4E 50 58 5A 5E 60 66 68 6C 70 72 76 + 7A 7C 7E 82 86 88 8E 90 92 94 96 FF FF FF FF FF + FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + FF FF FF FF FF FF FF FF FF FF 7F FF FF FF FF FF + FF FF FF FF FF FF FF FF FF FF 80 FF FF FF FF FF + 45 63 43 FF FF FF 53 51 4B FF FF 55 5B 69 61 6D + 83 FF 73 FF 77 FF FF FF 8B FF FF 89 FF 99 97 FF + 46 64 44 FF FF FF 54 52 4C FF FF 56 5C 6A 62 6E + 84 FF 74 FF 78 FF FF FF 8C FF FF 8A FF 9A 98 FF + + + + + + diff --git a/database/share/charsets/cp850.xml b/database/share/charsets/cp850.xml new file mode 100644 index 0000000..32eb37e --- /dev/null +++ b/database/share/charsets/cp850.xml @@ -0,0 +1,139 @@ + + + + + + Copyright (C) 2003 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + + + + + + + 00 + 20 30 30 30 30 30 30 20 20 28 28 28 28 28 30 30 + 30 30 30 30 30 30 30 30 30 30 20 30 30 30 30 30 + 48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 84 84 84 84 84 84 84 84 84 84 10 10 10 10 10 10 + 10 81 81 81 81 81 81 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 01 01 01 01 10 10 10 10 10 + 10 82 82 82 82 82 82 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 02 02 02 02 10 10 10 10 30 + 01 02 02 02 02 02 02 02 02 02 02 02 02 02 01 01 + 01 02 01 02 02 02 02 02 02 01 01 02 10 01 10 10 + 02 02 02 02 02 01 10 10 10 10 10 10 10 10 10 10 + 10 10 10 10 10 01 01 01 10 10 10 10 10 10 10 10 + 10 10 10 10 10 10 02 01 10 10 10 10 10 10 10 10 + 02 01 01 01 01 02 01 01 01 10 10 10 10 10 01 10 + 01 02 01 01 02 01 10 02 01 01 01 01 02 01 10 10 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 20 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 5B 5C 5D 5E 5F + 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F + 87 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 84 86 + 82 91 91 93 94 95 96 97 98 94 81 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A4 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F + 80 9A 90 41 8E 41 8F 80 45 45 45 49 49 49 8E 8F + 90 92 92 4F 99 4F 55 55 59 99 9A 9B 9C 9D 9E 9F + 41 49 4F 55 A5 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + +0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f +0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f +0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f +0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f +0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f +0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f +0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f +0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f +00c7 00fc 00e9 00e2 00e4 00e0 00e5 00e7 00ea 00eb 00e8 00ef 00ee 00ec 00c4 00c5 +00c9 00e6 00c6 00f4 00f6 00f2 00fb 00f9 00ff 00d6 00dc 00f8 00a3 00d8 00d7 0192 +00e1 00ed 00f3 00fa 00f1 00d1 00aa 00ba 00bf 00ae 00ac 00bd 00bc 00a1 00ab 00bb +2591 2592 2593 2502 2524 00c1 00c2 00c0 00a9 2563 2551 2557 255d 00a2 00a5 2510 +2514 2534 252c 251c 2500 253c 00e3 00c3 255a 2554 2569 2566 2560 2550 256c 00a4 +00f0 00d0 00ca 00cb 00c8 0131 00cd 00ce 00cf 2518 250c 2588 2584 00a6 00cc 2580 +00d3 00df 00d4 00d2 00f5 00d5 00b5 00fe 00de 00da 00db 00d9 00fd 00dd 00af 00b4 +00ad 00b1 2017 00be 00b6 00a7 00f7 00b8 00b0 00a8 00b7 00b9 00b3 00b2 25a0 00a0 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 51 53 55 59 63 65 67 69 74 76 78 7A 7C 80 + 8E 90 92 94 97 99 A3 A5 A7 A9 AE B1 B2 B3 B4 B5 + B6 41 51 53 55 59 63 65 67 69 74 76 78 7A 7C 80 + 8E 90 92 94 97 99 A3 A5 A7 A9 AE B7 B8 B9 BA BB + 54 A1 5D 47 4B 43 4D 54 5F 61 5B 71 6F 6B 4B 4D + 5D 4F 4F 86 8A 82 9F 9B AD 8A A1 8C E3 8C BD BE + 45 6D 84 9D 7E 7E EA FA FF EE EC FD FC CE EB FB + DC DD DE C3 C9 45 47 43 E9 D5 CF D1 D3 E2 E5 C5 + C6 CB CA C8 C2 CC 49 49 D2 D0 D7 D6 D4 CD D8 E4 + 57 57 5F 61 5B 73 6D 6F 71 C7 C4 DB DA E6 6B D9 + 84 96 86 82 88 88 F5 B0 B0 9D 9F 9B AB AB EF F4 + ED F1 C1 FE F6 E7 BF BC F0 E8 F7 F9 F3 F2 DF E0 + + + + + + + + diff --git a/database/share/charsets/cp852.xml b/database/share/charsets/cp852.xml new file mode 100644 index 0000000..f038fa9 --- /dev/null +++ b/database/share/charsets/cp852.xml @@ -0,0 +1,139 @@ + + + + + + Copyright (c) 2003, 2004 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + + + + + + + 00 + 20 20 20 20 20 20 20 20 20 28 28 28 28 28 20 20 + 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 + 48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 84 84 84 84 84 84 84 84 84 84 10 10 10 10 10 10 + 10 81 81 81 81 81 81 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 01 01 01 01 10 10 10 10 10 + 10 82 82 82 82 82 82 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 02 02 02 02 10 10 10 10 00 + 01 02 02 02 02 02 02 02 02 02 01 02 02 01 01 01 + 01 01 02 02 02 01 02 01 02 01 01 01 02 01 00 02 + 02 02 02 02 01 02 01 02 01 02 00 02 01 01 00 00 + 00 00 00 00 00 01 01 01 02 00 00 00 00 01 02 00 + 00 00 00 00 00 00 01 02 00 00 00 00 00 00 00 00 + 02 01 01 01 02 01 01 01 02 00 00 00 00 01 01 00 + 01 02 01 01 02 02 01 02 01 01 02 01 02 01 02 00 + 00 00 00 00 00 00 00 00 00 00 00 02 01 02 00 48 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 5B 5C 5D 5E 5F + 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F + 87 81 82 83 84 85 86 87 88 89 8B 8B 8C AB 84 86 + 82 92 92 93 94 96 96 98 98 94 81 9C 9C 88 9E 9F + A0 A1 A2 A3 A5 A5 A7 A7 A9 A9 AA AB 9F B8 AE AF + B0 B1 B2 B3 B4 A0 83 D8 B8 B9 BA BB BC BE BE BF + C0 C1 C2 C3 C4 C5 C7 C7 C8 C9 CA CB CC CD CE CF + D0 D0 D4 89 D4 E5 A1 8C D8 D9 DA DB DC EE 85 DF + A2 E1 93 E4 E4 E5 E7 E7 EA A3 E8 FB EC EC EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F + 80 9A 90 B6 8E DE 8F 80 9D D3 8A 8A D7 8D 8E 8F + 90 91 91 E2 99 95 95 97 97 99 9A 9B 9B 9D 9E AC + B5 D6 E0 E9 A4 A4 A6 A6 A8 A8 AA 8D AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 AD B9 BA BB BC BE BD BF + C0 C1 C2 C3 C4 C5 C6 C6 C8 C9 CA CB CC CD CE CF + D1 D1 D2 D3 D2 D5 D6 D7 B7 D9 DA DB DC DD DE DF + E0 E1 E2 E3 E3 D5 E6 E6 E8 E9 E8 EB ED ED DD EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA EB FC FC FE FF + + + + + + + 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F + 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F + 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F + 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003A 003B 003C 003D 003E 003F + 0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F + 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F + 0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F + 0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F + 00C7 00FC 00E9 00E2 00E4 016F 0107 00E7 0142 00EB 0150 0151 00EE 0179 00C4 0106 + 00C9 0139 013A 00F4 00F6 013D 013E 015A 015B 00D6 00DC 0164 0165 0141 00D7 010D + 00E1 00ED 00F3 00FA 0104 0105 017D 017E 0118 0119 00AC 017A 010C 015F 00AB 00BB + 2591 2592 2593 2502 2524 00C1 00C2 011A 015E 2563 2551 2557 255D 017B 017C 2510 + 2514 2534 252C 251C 2500 253C 0102 0103 255A 2554 2569 2566 2560 2550 256C 00A4 + 0111 0110 010E 00CB 010F 0147 00CD 00CE 011B 2518 250C 2588 2584 0162 016E 2580 + 00D3 00DF 00D4 0143 0144 0148 0160 0161 0154 00DA 0155 0170 00FD 00DD 0163 00B4 + 00AD 02DD 02DB 02C7 02D8 00A7 00F7 00B8 00B0 00A8 02D9 0171 0158 0159 25A0 00A0 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 47 48 4C 4F 54 55 56 57 5A 5B 5C 5E 5F 62 + 67 68 69 6C 71 74 75 76 77 78 7B 90 91 92 93 94 + 95 41 47 48 4C 4F 54 55 56 57 5A 5B 5C 5E 5F 62 + 67 68 69 6C 71 74 75 76 77 78 7B 96 97 98 99 9A + 48 74 4F 41 41 74 48 48 5C 4F 62 62 57 7B 41 48 + 4F 5C 5C 62 62 5C 5C 6C 6C 62 74 71 71 5C 9E 48 + 41 57 62 74 41 41 7B 7B 4F 4F AA 7B 48 6C AE AF + B0 B1 B2 B3 B4 41 41 4F 6C B5 BA BB BC 7B 7B BF + C0 C1 C2 C3 C4 C5 41 41 C8 C9 CA CB CC CD CE CF + 4C 4C 4C 4F 4C 60 57 57 4F D9 DA DB DC 71 74 DF + 62 70 62 60 60 60 6C 6C 69 74 69 74 78 78 71 EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA 74 69 69 FE FF + + + + + + + + diff --git a/database/share/charsets/cp866.xml b/database/share/charsets/cp866.xml new file mode 100644 index 0000000..3245326 --- /dev/null +++ b/database/share/charsets/cp866.xml @@ -0,0 +1,142 @@ + + + + + + Copyright (C) 2003 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + + + + + + + + 00 + 20 20 20 20 20 20 20 20 20 28 28 28 28 28 20 20 + 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 + 48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 84 84 84 84 84 84 84 84 84 84 10 10 10 10 10 10 + 10 81 81 81 81 81 81 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 01 01 01 01 10 10 10 10 10 + 10 82 82 82 82 82 82 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 02 02 02 02 10 10 10 10 00 + 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 + 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 + 01 02 01 02 01 02 01 02 00 00 00 00 00 00 00 48 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 5B 5C 5D 5E 5F + 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F + A0 A1 A2 A3 A4 A5 86 87 88 89 AA AB AC AD AE AF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + A0 A1 A2 A3 A4 A5 86 87 88 89 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F1 F1 F3 F3 F5 F5 F7 F7 F8 F9 FA FB FC FD FE FF + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + F0 F0 F2 F2 F4 F4 F6 F6 F8 F9 FA FB FC FD FE FF + + + + + + + 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F + 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F + 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F + 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003A 003B 003C 003D 003E 003F + 0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F + 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F + 0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F + 0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F + 0410 0411 0412 0413 0414 0415 0416 0417 0418 0419 041A 041B 041C 041D 041E 041F + 0420 0421 0422 0423 0424 0425 0426 0427 0428 0429 042A 042B 042C 042D 042E 042F + 0430 0431 0432 0433 0434 0435 0436 0437 0438 0439 043A 043B 043C 043D 043E 043F + 2591 2592 2593 2502 2524 2561 2562 2556 2555 2563 2551 2557 255D 255C 255B 2510 + 2514 2534 252C 251C 2500 253C 255E 255F 255A 2554 2569 2566 2560 2550 256C 2567 + 2568 2564 2565 2559 2558 2552 2553 256B 256A 2518 250C 2588 2584 258C 2590 2580 + 0440 0441 0442 0443 0444 0445 0446 0447 0448 0449 044A 044B 044C 044D 044E 044F + 0401 0451 0404 0454 0407 0457 040E 045E 00B0 2219 00B7 221A 207F 00B2 25A0 00A0 + + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 43 45 47 49 4B 4D 4F 51 53 55 57 59 5B 5D + 5F 61 63 65 67 69 6B 6D 6F 71 73 BD BE BF C0 C1 + C2 41 43 45 47 49 4B 4D 4F 51 54 55 57 59 5B 5D + 5F 61 63 65 67 69 6B 6D 6F 71 73 C3 C4 C5 C6 C7 + 75 77 79 7B 7D 7F 85 87 89 8D 8F 91 93 95 97 99 + 9B 9D 9F A1 A5 A7 A9 AB AD AF B1 B3 B5 B7 B9 BB + 75 77 79 7B 7D 7F 85 87 89 8D 8F 91 93 95 97 99 + C8 C9 CA D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + 9B 9D 9F A1 A5 A7 A9 AB AD AF B1 B3 B5 B7 B9 BB + 81 81 83 83 8B 8B A3 A3 CB CC CD CE CF D0 D1 D2 + + + + + + + + + diff --git a/database/share/charsets/dec8.xml b/database/share/charsets/dec8.xml new file mode 100644 index 0000000..2569713 --- /dev/null +++ b/database/share/charsets/dec8.xml @@ -0,0 +1,140 @@ + + + + + + Copyright (C) 2003 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + + + + + + + 00 + 20 20 20 20 20 20 20 20 20 28 28 28 28 28 20 20 + 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 + 48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 84 84 84 84 84 84 84 84 84 84 10 10 10 10 10 10 + 10 81 81 81 81 81 81 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 01 01 01 01 10 10 10 10 10 + 10 82 82 82 82 82 82 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 02 02 02 02 10 10 10 10 20 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 10 01 01 01 01 01 01 01 02 + 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 10 02 02 02 02 02 02 02 02 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 5B 5C 5D 5E 5F + 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 D7 F8 F9 FA FB FC FD FE DF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 F7 D8 D9 DA DB DC DD DE FF + + + + + + +0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F +0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F +0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F +0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003A 003B 003C 003D 003E 003F +0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F +0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F +0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F +0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F +0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 008A 008B 008C 008D 008E 008F +0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 009A 009B 009C 009D 009E 009F +00A0 00A1 00A2 00A3 0000 00A5 0000 00A7 00A4 00A9 00AA 00AB 0000 0000 0000 0000 +00B0 00B1 00B2 00B3 0000 00B5 00B6 00B7 0000 00B9 00BA 00BB 00BC 00BD 0000 00BF +00C0 00C1 00C2 00C3 00C4 00C5 00C6 00C7 00C8 00C9 00CA 00CB 00CC 00CD 00CE 00CF +0000 00D1 00D2 00D3 00D4 00D5 00D6 0152 00D8 00D9 00DA 00DB 00DC 0178 0000 00DF +00E0 00E1 00E2 00E3 00E4 00E5 00E6 00E7 00E8 00E9 00EA 00EB 00EC 00ED 00EE 00EF +0000 00F1 00F2 00F3 00F4 00F5 00F6 0153 00F8 00F9 00FA 00FB 00FC 00FF 0000 0000 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + 41 41 41 41 5C 5B 5C 43 45 45 45 45 49 49 49 49 + 44 4E 4F 4F 4F 4F 5D D7 D8 55 55 55 59 59 DE DF + 41 41 41 41 5C 5B 5C 43 45 45 45 45 49 49 49 49 + 44 4E 4F 4F 4F 4F 5D F7 D8 55 55 55 59 59 DE FF + + + + + + + + + diff --git a/database/share/charsets/geostd8.xml b/database/share/charsets/geostd8.xml new file mode 100644 index 0000000..bcb3148 --- /dev/null +++ b/database/share/charsets/geostd8.xml @@ -0,0 +1,139 @@ + + + + + + Copyright (C) 2003 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + + + + + + + 00 + 20 20 20 20 20 20 20 20 20 28 28 28 28 28 20 20 + 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 + 48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 84 84 84 84 84 84 84 84 84 84 10 10 10 10 10 10 + 10 81 81 81 81 81 81 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 01 01 01 01 10 10 10 10 10 + 10 82 82 82 82 82 82 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 02 02 02 02 10 10 10 10 20 + 00 00 10 00 10 10 10 10 00 10 00 10 00 00 00 00 + 00 10 10 10 10 10 10 10 00 00 00 10 00 00 00 00 + 48 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 + 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 + 03 03 03 03 03 03 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 5B 5C 5D 5E 5F + 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + +0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F +0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F +0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F +0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003A 003B 003C 003D 003E 003F +0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F +0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F +0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F +0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F +20AC 0000 201A 0000 201E 2026 2020 2021 0000 2030 0000 2039 0000 0000 0000 0000 +0000 2018 2019 201C 201D 2022 2013 2014 0000 0000 0000 203A 0000 0000 0000 0000 +00A0 00A1 00A2 00A3 00A4 00A5 00A6 00A7 00A8 00A9 00AA 00AB 00AC 00AD 00AE 00AF +00B0 00B1 00B2 00B3 00B4 00B5 00B6 00B7 00B8 00B9 00BA 00BB 00BC 00BD 00BE 00BF +10D0 10D1 10D2 10D3 10D4 10D5 10D6 10F1 10D7 10D8 10D9 10DA 10DB 10DC 10F2 10DD +10DE 10DF 10E0 10E1 10E2 10F3 10E3 10E4 10E5 10E6 10E7 10E8 10E9 10EA 10EB 10EC +10ED 10EE 10F4 10EF 10F0 10F5 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 2116 0000 0000 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + + + diff --git a/database/share/charsets/greek.xml b/database/share/charsets/greek.xml new file mode 100644 index 0000000..9ab0cb6 --- /dev/null +++ b/database/share/charsets/greek.xml @@ -0,0 +1,144 @@ + + + + + + Copyright (C) 2003 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + + + + + + + + + + + 00 + 20 20 20 20 20 20 20 20 20 28 28 28 28 28 20 20 + 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 + 48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 84 84 84 84 84 84 84 84 84 84 10 10 10 10 10 10 + 10 81 81 81 81 81 81 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 01 01 01 01 10 10 10 10 10 + 10 82 82 82 82 82 82 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 02 02 02 02 10 10 10 10 20 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 48 10 10 10 00 00 10 10 10 10 00 10 10 10 00 10 + 10 10 10 10 10 10 01 10 01 01 01 10 01 10 01 01 + 02 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 + 01 01 00 01 01 01 01 01 01 01 01 01 02 02 02 02 + 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 00 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 5B 5C 5D 5E 5F + 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 DC B7 DD DE DF BB FC BD FD FE + C0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 D2 F3 F4 F5 F6 F7 F8 F9 FA FB DC DD DE DF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + DA C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB C1 C5 C7 C9 + DB C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D3 D3 D4 D5 D6 D7 D8 D9 DA DB CF D5 D9 FF + + + + + + +0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F +0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F +0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F +0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003A 003B 003C 003D 003E 003F +0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F +0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F +0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F +0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F +0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 008A 008B 008C 008D 008E 008F +0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 009A 009B 009C 009D 009E 009F +00A0 02BD 02BC 00A3 0000 0000 00A6 00A7 00A8 00A9 0000 00AB 00AC 00AD 0000 2015 +00B0 00B1 00B2 00B3 0384 0385 0386 00B7 0388 0389 038A 00BB 038C 00BD 038E 038F +0390 0391 0392 0393 0394 0395 0396 0397 0398 0399 039A 039B 039C 039D 039E 039F +03A0 03A1 0000 03A3 03A4 03A5 03A6 03A7 03A8 03A9 03AA 03AB 03AC 03AD 03AE 03AF +03B0 03B1 03B2 03B3 03B4 03B5 03B6 03B7 03B8 03B9 03BA 03BB 03BC 03BD 03BE 03BF +03C0 03C1 03C2 03C3 03C4 03C5 03C6 03C7 03C8 03C9 03CA 03CB 03CC 03CD 03CE 0000 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 C1 B7 C5 C7 C9 BB CF BD D5 D9 + C9 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 C9 D5 C1 C5 C7 C9 + D5 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D3 D3 D4 D5 D6 D7 D8 D9 C9 D5 CF D5 D9 FF + + + + + + + + + diff --git a/database/share/charsets/hebrew.xml b/database/share/charsets/hebrew.xml new file mode 100644 index 0000000..295440b --- /dev/null +++ b/database/share/charsets/hebrew.xml @@ -0,0 +1,140 @@ + + + + + + Copyright (c) 2003, 2006 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + + + + + + + 00 + 20 20 20 20 20 20 20 20 20 28 28 28 28 28 20 20 + 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 + 48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 84 84 84 84 84 84 84 84 84 84 10 10 10 10 10 10 + 10 81 81 81 81 81 81 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 01 01 01 01 10 10 10 10 10 + 10 82 82 82 82 82 82 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 02 02 02 02 10 10 10 10 20 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 02 02 02 02 00 00 20 20 00 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 5B 5C 5D 5E 5F + 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + +0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F +0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F +0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F +0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003A 003B 003C 003D 003E 003F +0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F +0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F +0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F +0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F +0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 008A 008B 008C 008D 008E 008F +0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 009A 009B 009C 009D 009E 009F +00A0 0000 00A2 00A3 00A4 00A5 00A6 00A7 00A8 00A9 00D7 00AB 00AC 00AD 00AE 203E +00B0 00B1 00B2 00B3 00B4 00B5 00B6 00B7 00B8 00B9 00F7 00BB 00BC 00BD 00BE 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 2017 +05D0 05D1 05D2 05D3 05D4 05D5 05D6 05D7 05D8 05D9 05DA 05DB 05DC 05DD 05DE 05DF +05E0 05E1 05E2 05E3 05E4 05E5 05E6 05E7 05E8 05E9 05EA 0000 0000 200E 200F 0000 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 F7 D8 D9 DA DB DC DD DE FF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + + + + diff --git a/database/share/charsets/hp8.xml b/database/share/charsets/hp8.xml new file mode 100644 index 0000000..628ebe7 --- /dev/null +++ b/database/share/charsets/hp8.xml @@ -0,0 +1,140 @@ + + + + + + Copyright (C) 2003 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + + + + + + + 00 + 20 20 20 20 20 20 20 20 20 28 28 28 28 28 20 20 + 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 + 48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 84 84 84 84 84 84 84 84 84 84 10 10 10 10 10 10 + 10 81 81 81 81 81 81 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 01 01 01 01 10 10 10 10 10 + 10 82 82 82 82 82 82 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 02 02 02 02 10 10 10 10 20 + 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 + 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 + 20 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 20 20 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 10 10 02 10 10 10 10 10 10 02 10 02 02 + 01 10 10 01 02 10 10 02 01 10 01 01 01 10 10 10 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 20 20 20 20 10 10 10 10 10 10 10 10 10 20 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 5B 5C 5D 5E 5F + 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 C8 C0 C9 C1 CD D1 DD A8 A9 AA AB AC CB C3 AF + B0 B2 B2 B3 B5 B5 B7 B7 B8 B9 BA BB BC BD BE BF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D4 D1 D6 D7 D4 D5 D6 D7 CC D9 CE CF C5 DD DE C2 + C4 E2 E2 E4 E4 D5 D9 C6 CA EA EA EC EC C7 EF EF + F1 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B1 B3 B4 B4 B6 B6 B8 B9 BA BB BC BD BE BF + A2 A4 DF AE E0 DC E7 ED A1 A3 E8 AD D8 A5 DA DB + D0 A6 D2 D3 D0 E5 D2 D3 D8 E6 DA DB DC A7 DE DF + E0 E1 E1 E3 E3 E5 E6 E7 E8 E9 E9 EB EB ED EE EE + F0 F0 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + +0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F +0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F +0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F +0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003A 003B 003C 003D 003E 003F +0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F +0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F +0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F +0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F +0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 008A 008B 008C 008D 008E 008F +0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 009A 009B 009C 009D 009E 009F +00A0 00C0 00C2 00C8 00CA 00CB 00CE 00CF 00B4 02CB 02C6 00A8 02DC 00D9 00DB 20A4 +00AF 00DD 00FD 00B0 00C7 00E7 00D1 00F1 00A1 00BF 00A4 00A3 00A5 00A7 0192 00A2 +00E2 00EA 00F4 00FB 00E1 00E9 00F3 00FA 00E0 00E8 00F2 00F9 00E4 00EB 00F6 00FC +00C5 00EE 00D8 00C6 00E5 00ED 00F8 00E6 00C4 00EC 00D6 00DC 00C9 00EF 00DF 00D4 +00C1 00C3 00E3 00D0 00F0 00CD 00CC 00D3 00D2 00D5 00F5 0160 0161 00DA 0178 00FF +00DE 00FE 00B7 00B5 00B6 00BE 2014 00BC 00BD 00AA 00BA 00AB 25A0 00BB 00B1 0000 + + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5C 5D 5B 5E 5F + 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + + + diff --git a/database/share/charsets/keybcs2.xml b/database/share/charsets/keybcs2.xml new file mode 100644 index 0000000..a607931 --- /dev/null +++ b/database/share/charsets/keybcs2.xml @@ -0,0 +1,140 @@ + + + + + + Copyright (C) 2003 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + + + + + + + 00 + 20 20 20 20 20 20 20 20 20 28 28 28 28 28 20 20 + 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 + 48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 84 84 84 84 84 84 84 84 84 84 10 10 10 10 10 10 + 10 81 81 81 81 81 81 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 01 01 01 01 10 10 10 10 10 + 10 82 82 82 82 82 82 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 02 02 02 02 10 10 10 10 00 + 01 02 82 02 02 01 01 02 82 81 01 01 02 02 01 01 + 81 02 01 02 02 01 02 01 02 01 01 01 01 01 01 02 + 02 02 02 02 02 01 01 01 02 02 02 01 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 02 02 01 02 01 02 00 02 01 01 01 02 00 02 02 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 48 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 5B 5C 5D 5E 5F + 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F + 87 81 82 83 84 83 86 87 88 88 8D A1 8C 8D 84 A0 + 82 91 91 93 94 A2 96 A3 98 94 81 9B 8C 98 A9 9F + A0 A1 A2 A3 A4 A4 96 93 9B A9 AA AA AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + E0 E1 E2 E3 E4 E5 E6 E7 ED E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 68 59 5A 7B 7C 7D 7E 7F + 87 9A 90 85 8E 85 86 80 89 89 8A 8B 9C 8A 8E 8F + 90 92 92 A7 99 95 A6 97 9D 99 9A A8 9C 9D 9E 9F + 8F 8B 95 97 A5 A5 A6 A7 A8 9E AB AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC E8 EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + + 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F + 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F + 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F + 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003A 003B 003C 003D 003E 003F + 0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F + 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F + 0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F + 0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F + 010C 00FC 00E9 010F 00E4 010E 0164 010D 011B 011A 0139 00CD 013E 013A 00C4 00C1 + 00C9 017E 017D 00F4 00F6 00D3 016F 00DA 00FD 00D6 00DC 0160 013D 00DD 0158 0165 + 00E1 00ED 00F3 00FA 0148 0147 016E 00D4 0161 0159 0155 0154 00BC 00A1 00AB 00BB + 2591 2592 2593 2502 2524 2561 2562 2556 2555 2563 2551 2557 255D 255C 255B 2510 + 2514 2534 252C 251C 2500 253C 255E 255F 255A 2554 2569 2566 2560 2550 256C 2567 + 2568 2564 2565 2559 2558 2552 2553 256B 256A 2518 250C 2588 2584 258C 2590 2580 + 03B1 00DF 0393 03C0 03A3 03C3 00B5 03C4 03A6 0398 03A9 03B4 221E 03C6 03B5 2229 + 2261 00B1 2265 2264 2320 2321 00F7 2248 00B0 2219 00B7 221A 207F 00B2 25A0 00A0 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 44 45 47 49 50 51 52 53 54 55 56 57 58 5A + 5E 5F 60 63 66 68 6C 6D 6E 6F 72 90 91 92 93 94 + 95 41 44 45 47 49 50 51 52 53 54 55 56 57 58 5A + 5E 5F 60 63 66 68 6C 6D 6E 6F 72 96 97 98 99 9A + 45 68 49 47 41 47 66 45 49 49 56 53 56 56 41 41 + 49 72 72 5A 5A 5A 68 68 6F 5A 68 63 56 6F 60 66 + 41 53 5A 68 58 58 68 5A 63 60 60 60 A0 A1 A2 A3 + A4 A5 A6 B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC + BD BE BF C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC + CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC + 80 65 83 87 88 89 DD 8A 85 8B 84 81 DE 85 82 DF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + + + + diff --git a/database/share/charsets/koi8r.xml b/database/share/charsets/koi8r.xml new file mode 100644 index 0000000..7a8a936 --- /dev/null +++ b/database/share/charsets/koi8r.xml @@ -0,0 +1,139 @@ + + + + + + Copyright (C) 2003 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + + + + + + + 00 + 20 20 20 20 20 20 20 20 20 28 28 28 28 28 20 20 + 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 + 48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 84 84 84 84 84 84 84 84 84 84 10 10 10 10 10 10 + 10 81 81 81 81 81 81 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 01 01 01 01 10 10 10 10 10 + 10 82 82 82 82 82 82 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 02 02 02 02 10 10 10 10 20 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 02 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 01 10 10 10 10 10 10 10 10 10 10 10 10 + 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 + 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 5B 5C 5D 5E 5F + 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 A3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 B3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + +0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000b 000c 000d 000e 000f +0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001a 001b 001c 001d 001e 001f +0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002a 002b 002c 002d 002e 002f +0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003a 003b 003c 003d 003e 003f +0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004a 004b 004c 004d 004e 004f +0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005a 005b 005c 005d 005e 005f +0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006a 006b 006c 006d 006e 006f +0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007a 007b 007c 007d 007e 007f +2500 2502 250c 2510 2514 2518 251c 2524 252c 2534 253c 2580 2584 2588 258c 2590 +2591 2592 2593 2320 25a0 2219 221a 2248 2264 2265 00a0 2321 00b0 00b2 00b7 00f7 +2550 2551 2552 0451 2553 2554 2555 2556 2557 2558 2559 255a 255b 255c 255d 255e +255f 2560 2561 0401 2562 2563 2564 2565 2566 2567 2568 2569 256a 256b 256c 00a9 +044e 0430 0431 0446 0434 0435 0444 0433 0445 0438 0439 043a 043b 043c 043d 043e +043f 044f 0440 0441 0442 0443 0436 0432 044c 044b 0437 0448 044d 0449 0447 044a +042e 0410 0411 0426 0414 0415 0424 0413 0425 0418 0419 041a 041b 041c 041d 041e +041f 042f 0420 0421 0422 0423 0416 0412 042c 042b 0417 0428 042d 0429 0427 042a + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 E5 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE + AF B0 B1 E5 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD + FE DF E0 F6 E3 E4 F4 E2 F5 E8 E9 EA EB EC ED EE + EF FF F0 F1 F2 F3 E6 E1 FC FB E7 F8 FD F9 F7 FA + FE DF E0 F6 E3 E4 F4 E2 F5 E8 E9 EA EB EC ED EE + EF FF F0 F1 F2 F3 E6 E1 FC FB E7 F8 FD F9 F7 FA + + + + + + + + diff --git a/database/share/charsets/koi8u.xml b/database/share/charsets/koi8u.xml new file mode 100644 index 0000000..83e85b8 --- /dev/null +++ b/database/share/charsets/koi8u.xml @@ -0,0 +1,140 @@ + + + + + + Copyright (C) 2003 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + + + + + + + 00 + 20 20 20 20 20 20 20 20 20 28 28 28 28 28 20 20 + 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 + 48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 84 84 84 84 84 84 84 84 84 84 10 10 10 10 10 10 + 10 81 81 81 81 81 81 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 01 01 01 01 10 10 10 10 10 + 10 82 82 82 82 82 82 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 02 02 02 02 10 10 10 10 20 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 02 02 10 02 02 10 10 10 10 10 02 10 10 + 10 10 10 01 01 10 01 01 10 10 10 10 10 01 10 10 + 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 + 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 5B 5C 5D 5E 5F + 20 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F + 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 + 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 + 20 20 20 A3 A4 20 A6 A7 20 20 20 20 20 AD 20 20 + 20 20 20 A3 A4 20 A6 A7 20 20 20 20 20 AD 20 20 + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 20 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F + 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 + 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 + 20 20 20 B3 B4 20 B6 B7 20 20 20 20 20 BD 20 20 + 20 20 20 B3 B4 20 B6 B7 20 20 20 20 20 BD 20 20 + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + +0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F +0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F +0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F +0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003A 003B 003C 003D 003E 003F +0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F +0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F +0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F +0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F +2500 2502 250C 2510 2514 2518 251C 2524 252C 2534 253C 2580 2584 2588 258C 2590 +2591 2592 2593 2320 25A0 2022 221A 2248 2264 2265 00A0 2321 00B0 00B2 00B7 00F7 +2550 2551 2552 0451 0454 2554 0456 0457 2557 2558 2559 255A 255B 0491 255D 255E +255F 2560 2561 0401 0404 2563 0406 0407 2566 2567 2568 2569 256A 0490 256C 00A9 +044E 0430 0431 0446 0434 0435 0444 0433 0445 0438 0439 043A 043B 043C 043D 043E +043F 044F 0440 0441 0442 0443 0436 0432 044C 044B 0437 0448 044D 0449 0447 044A +042E 0410 0411 0426 0414 0415 0424 0413 0425 0418 0419 041A 041B 041C 041D 041E +041F 042F 0420 0421 0422 0423 0416 0412 042C 042B 0417 0428 042D 0429 0427 042A + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 20 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F + A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 B4 + B5 B6 B7 B8 B9 BA BB BC BD BE BF C0 C1 C2 C3 C4 + C5 C6 C7 88 87 C8 8C 8D C9 CA CB CC CD 84 CE CF + D0 D1 D2 88 87 D3 8C 8D D4 D5 D6 D7 D8 84 D9 DA + A3 80 81 9B 85 86 99 83 9A 8B 8E 8F 90 91 92 93 + 94 A4 95 96 97 98 89 82 A1 A0 8A 9D A2 9E 9C 9F + A3 80 81 9B 85 86 99 83 9A 8B 8E 8F 90 91 92 93 + 94 A4 95 96 97 98 89 82 A1 A0 8A 9D A2 9E 9C 9F + + + + + + + + + diff --git a/database/share/charsets/latin1.xml b/database/share/charsets/latin1.xml new file mode 100644 index 0000000..f88a284 --- /dev/null +++ b/database/share/charsets/latin1.xml @@ -0,0 +1,253 @@ + + + + + + Copyright (c) 2003, 2005 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + + + + + + + 00 + 20 20 20 20 20 20 20 20 20 28 28 28 28 28 20 20 + 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 + 48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 84 84 84 84 84 84 84 84 84 84 10 10 10 10 10 10 + 10 81 81 81 81 81 81 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 01 01 01 01 10 10 10 10 10 + 10 82 82 82 82 82 82 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 02 02 02 02 10 10 10 10 20 + 10 00 10 02 10 10 10 10 10 10 01 10 01 00 01 00 + 00 10 10 10 10 10 10 10 10 10 02 10 02 00 02 01 + 48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 10 01 01 01 01 01 01 01 02 + 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 10 02 02 02 02 02 02 02 02 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 5B 5C 5D 5E 5F + 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 D7 F8 F9 FA FB FC FD FE DF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 F7 D8 D9 DA DB DC DD DE FF + + + + + + + 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F + 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F + 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F + 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003A 003B 003C 003D 003E 003F + 0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F + 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F + 0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F + 0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F + 20AC 0081 201A 0192 201E 2026 2020 2021 02C6 2030 0160 2039 0152 008D 017D 008F + 0090 2018 2019 201C 201D 2022 2013 2014 02DC 2122 0161 203A 0153 009D 017E 0178 + 00A0 00A1 00A2 00A3 00A4 00A5 00A6 00A7 00A8 00A9 00AA 00AB 00AC 00AD 00AE 00AF + 00B0 00B1 00B2 00B3 00B4 00B5 00B6 00B7 00B8 00B9 00BA 00BB 00BC 00BD 00BE 00BF + 00C0 00C1 00C2 00C3 00C4 00C5 00C6 00C7 00C8 00C9 00CA 00CB 00CC 00CD 00CE 00CF + 00D0 00D1 00D2 00D3 00D4 00D5 00D6 00D7 00D8 00D9 00DA 00DB 00DC 00DD 00DE 00DF + 00E0 00E1 00E2 00E3 00E4 00E5 00E6 00E7 00E8 00E9 00EA 00EB 00EC 00ED 00EE 00EF + 00F0 00F1 00F2 00F3 00F4 00F5 00F6 00F7 00F8 00F9 00FA 00FB 00FC 00FD 00FE 00FF + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + 41 41 41 41 5C 5B 5C 43 45 45 45 45 49 49 49 49 + 44 4E 4F 4F 4F 4F 5D D7 D8 55 55 55 59 59 DE DF + 41 41 41 41 5C 5B 5C 43 45 45 45 45 49 49 49 49 + 44 4E 4F 4F 4F 4F 5D F7 D8 55 55 55 59 59 DE FF + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + 41 41 41 41 41 41 41 43 45 45 45 45 49 49 49 49 + D0 4E 4F 4F 4F 4F 4F D7 4F 55 55 55 55 59 DE 53 + 41 41 41 41 41 41 41 43 45 45 45 45 49 49 49 49 + D0 4E 4F 4F 4F 4F 4F F7 4F 55 55 55 55 59 DE FF + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + 41 41 41 41 5B 5D 5B 43 45 45 45 45 49 49 49 49 + 44 4E 4F 4F 4F 4F 5C D7 5C 55 55 55 59 59 DE DF + 41 41 41 41 5B 5D 5B 43 45 45 45 45 49 49 49 49 + 44 4E 4F 4F 4F 4F 5C F7 5C 55 55 55 59 59 DE FF + + + + + + + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 51 53 57 5B 65 67 69 6B 75 77 79 7B 7D 81 + 8F 91 93 95 98 9A A4 A6 A8 AA AF B3 B4 B5 B6 B7 + B8 41 51 53 57 5B 65 67 69 6B 75 77 79 7B 7D 81 + 8F 91 93 95 98 9A A4 A6 A8 AA AF B9 BA BB BC BF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + 43 45 47 49 4B 4D 4F 55 5D 5F 61 63 6D 6F 71 73 + 59 7F 83 85 87 89 8B BD 8D 9C 9E A0 A2 AC B1 97 + 43 45 47 49 4B 4D 4F 55 5D 5F 61 63 6D 6F 71 73 + 59 7F 83 85 87 89 8B BE 8D 9C 9E A0 A2 AC B1 AE + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 51 53 57 5B 65 67 69 6B 75 77 79 7B 7D 81 + 8F 91 93 95 98 9A A4 A6 A8 AA AF B3 B4 B5 B6 B7 + B8 42 52 54 58 5C 66 68 6A 6C 76 78 7A 7C 7E 82 + 90 92 94 96 99 9B A5 A7 A9 AB B0 B9 BA BB BC BF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + 43 45 47 49 4B 4D 4F 55 5D 5F 61 63 6D 6F 71 73 + 59 7F 83 85 87 89 8B BD 8D 9C 9E A0 A2 AC B1 97 + 44 46 48 4A 4C 4E 50 56 5E 60 62 64 6E 70 72 74 + 5A 80 84 86 88 8A 8C BE 8E 9D 9F A1 A3 AD B2 AE + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 51 53 57 5B 65 67 69 6B 75 77 79 7B 7D 81 + 8F 91 93 95 98 9A A4 A6 A8 AA AF B3 B4 B5 B6 B7 + B8 41 51 53 57 5B 65 67 69 6B 75 77 79 7B 7D 81 + 8F 91 93 95 98 9A A4 A6 A8 AA AF B9 BA BB BC BF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + 41 41 41 41 41 41 41 53 5B 5B 5B 5B 6B 6B 6B 6B + 57 7F 81 81 81 81 81 BD 81 9A 9A 9A 9A AA B1 97 + 41 41 41 41 41 41 41 53 5B 5B 5B 5B 6B 6B 6B 6B + 57 7F 81 81 81 81 81 BE 81 9A 9A 9A 9A AA B1 AA + + + + + + diff --git a/database/share/charsets/latin2.xml b/database/share/charsets/latin2.xml new file mode 100644 index 0000000..20e7803 --- /dev/null +++ b/database/share/charsets/latin2.xml @@ -0,0 +1,186 @@ + + + + + + Copyright (c) 2003, 2005 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + + + + + + + 00 + 20 20 20 20 20 20 20 20 20 28 28 28 28 28 20 20 + 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 + 48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 84 84 84 84 84 84 84 84 84 84 10 10 10 10 10 10 + 10 81 81 81 81 81 81 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 01 01 01 01 10 10 10 10 10 + 10 82 82 82 82 82 82 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 02 02 02 02 10 10 10 10 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 48 01 10 01 10 01 01 10 10 01 01 01 01 10 01 01 + 10 02 10 02 10 02 02 10 10 02 02 02 02 10 02 02 + 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 + 10 01 01 01 01 01 01 10 01 01 01 01 01 01 01 10 + 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 10 02 02 02 02 02 02 02 10 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 5B 5C 5D 5E 5F + 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 B1 A2 B3 A4 B5 B6 A7 A8 B9 BA BB BC AD BE BF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 D7 F8 F9 FA FB FC FD FE DF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 A1 B2 A3 B4 A5 A6 B7 B8 A9 AA AB AC BD AE AF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 F7 D8 D9 DA DB DC DD DE FF + + + + + + +0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F +0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F +0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F +0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003A 003B 003C 003D 003E 003F +0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F +0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F +0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F +0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F +0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 008A 008B 008C 008D 008E 008F +0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 009A 009B 009C 009D 009E 009F +00A0 0104 02D8 0141 00A4 013D 015A 00A7 00A8 0160 015E 0164 0179 00AD 017D 017B +00B0 0105 02DB 0142 00B4 013E 015B 02C7 00B8 0161 015F 0165 017A 02DD 017E 017C +0154 00C1 00C2 0102 00C4 0139 0106 00C7 010C 00C9 0118 00CB 011A 00CD 00CE 010E +0110 0143 0147 00D3 00D4 0150 00D6 00D7 0158 016E 00DA 0170 00DC 00DD 0162 00DF +0155 00E1 00E2 0103 00E4 013A 0107 00E7 010D 00E9 0119 00EB 011B 00ED 00EE 010F +0111 0144 0148 00F3 00F4 0151 00F6 00F7 0159 016F 00FA 0171 00FC 00FD 0163 02D9 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 44 45 48 49 4B 4C 4D 4E 4F 50 51 53 54 56 + 58 59 5A 5B 5E 5F 60 61 62 63 64 68 69 6A 6B 6C + 6D 41 44 45 48 49 4B 4C 4D 4E 4F 50 51 53 54 56 + 58 59 5A 5B 5E 5F 60 61 62 63 64 6E 6F 70 71 FF + FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + FF 42 FF 52 FF 51 5C FF FF 5D 5B 5E 65 FF 67 66 + FF 42 FF 52 FF 51 5C FF FF 5D 5B 5E 65 FF 67 66 + 5A 43 43 43 43 51 46 45 47 49 4A 49 49 4E 4E 48 + FF 55 54 57 56 56 56 FF 5A 5F 5F 5F 5F 63 5E FF + 5A 43 43 43 43 51 46 45 47 49 4A 49 49 4E 4E 48 + FF 55 54 57 56 56 56 FF 5A 5F 5F 5F 5F 63 5E FF + + + + + + +00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F +10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F +20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F +30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F +40 41 43 44 48 4B 4D 4E 4F 50 52 53 54 56 57 59 +5B 5C 5D 5F 62 64 66 67 68 69 6B C6 C7 C8 C9 CA +CB 41 43 44 48 4B 4D 4E 4F 50 52 53 54 56 57 59 +5B 5C 5D 5F 62 64 66 67 68 69 6B CC CD CE CF D0 +D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF E0 +E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF F0 +F1 41 F2 54 F3 54 5F F4 F5 61 5F 62 6B F6 8E 6B +F7 41 F8 54 F9 54 5F FA FB 61 5F 62 6B FC 8E 6B +5D 41 41 41 41 54 47 44 46 4B 4B 4B 4B 50 50 48 +4A 57 57 59 59 59 59 FD 5D 64 64 64 64 69 62 5F +5D 41 41 41 41 54 47 44 46 4B 4B 4B 4B 50 50 48 +4A 57 57 59 59 59 59 FE 5D 64 64 64 64 69 62 FF + + + + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 47 48 4C 4E 53 54 55 56 5A 5B 5C 60 61 64 + 69 6A 6B 6E 72 75 7A 7B 7C 7D 7F 83 84 85 86 87 + 88 41 47 48 4C 4E 53 54 55 56 5A 5B 5C 60 61 64 + 69 6A 6B 6E 72 75 7A 7B 7C 7D 7F 89 8A 8B 8C 00 + 01 78 4E 04 05 06 07 08 09 0A 67 67 56 56 0F 41 + 4E 12 13 67 67 64 78 75 78 67 78 1C 1D 1E 1F FF + 41 56 64 75 5E 6F FF 67 FF 70 71 73 80 FF 81 82 + FF 42 FF 5D FF 41 6F FF FF 70 71 73 80 FF 81 82 + 6C 41 44 45 46 5F 49 4B 4A 4E 51 52 50 56 57 4D + FF 62 63 64 66 67 67 FF 6D 77 75 78 78 7E 74 FF + 64 41 44 45 46 5F 49 4B 4A 4E 51 78 50 56 58 4D + FF 62 63 64 66 67 67 FF 6D 77 75 78 78 7E 74 FF + + + + + + + + diff --git a/database/share/charsets/latin5.xml b/database/share/charsets/latin5.xml new file mode 100644 index 0000000..727019c --- /dev/null +++ b/database/share/charsets/latin5.xml @@ -0,0 +1,139 @@ + + + + + + Copyright (c) 2003, 2005 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + + + + + + + 00 + 20 20 20 20 20 20 20 20 20 28 28 28 28 28 20 20 + 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 + 48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 84 84 84 84 84 84 84 84 84 84 10 10 10 10 10 10 + 10 81 81 81 81 81 81 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 01 01 01 01 10 10 10 10 10 + 10 82 82 82 82 82 82 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 02 02 02 02 10 10 10 10 20 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 10 01 01 01 01 01 01 01 02 + 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 10 02 02 02 02 02 02 02 02 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 61 62 63 64 65 66 67 68 FD 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 5B 5C 5D 5E 5F + 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 D7 F8 F9 FA FB FC 69 FE DF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 60 41 42 43 44 45 46 47 48 DD 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 F7 D8 D9 DA DB DC 49 DE FF + + + + + + +0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F +0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F +0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F +0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003A 003B 003C 003D 003E 003F +0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F +0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F +0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F +0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F +0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 008A 008B 008C 008D 008E 008F +0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 009A 009B 009C 009D 009E 009F +00A0 00A1 00A2 00A3 00A4 00A5 00A6 00A7 00A8 00A9 00AA 00AB 00AC 00AD 00AE 00AF +00B0 00B1 00B2 00B3 00B4 00B5 00B6 00B7 00B8 00B9 00BA 00BB 00BC 00BD 00BE 00BF +00C0 00C1 00C2 00C3 00C4 00C5 00C6 00C7 00C8 00C9 00CA 00CB 00CC 00CD 00CE 00CF +011E 00D1 00D2 00D3 00D4 00D5 00D6 00D7 00D8 00D9 00DA 00DB 00DC 0130 015E 00DF +00E0 00E1 00E2 00E3 00E4 00E5 00E6 00E7 00E8 00E9 00EA 00EB 00EC 00ED 00EE 00EF +011F 00F1 00F2 00F3 00F4 00F5 00F6 00F7 00F8 00F9 00FA 00FB 00FC 0131 015F 00FF + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 45 46 47 48 4A 4B 4D 4E 4F 50 51 52 + 54 55 56 57 59 5A 5C 5D 5E 5F 60 61 62 63 64 65 + 66 41 42 43 45 46 47 48 4A 4C 4D 4E 4F 50 51 52 + 54 55 56 57 59 5A 5C 5D 5E 5F 60 87 88 89 8A 8B + 8C 8D 8E 8F 90 91 92 93 94 95 96 97 98 99 9A 9B + 9C 9D 9E 9F A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB + AC AD AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB + BC BD BE BF C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB + 41 41 41 41 41 41 41 44 46 46 46 46 4C 4C 4C 4C + 49 51 52 52 52 52 53 E0 52 5A 5A 5A 5B 4C 58 57 + 41 41 41 41 41 41 41 44 46 46 46 46 4C 4C 4C 4C + 49 51 52 52 52 52 53 FA 52 5A 5A 5A 5B 4B 58 5F + + + + + + + + diff --git a/database/share/charsets/latin7.xml b/database/share/charsets/latin7.xml new file mode 100644 index 0000000..78b7dda --- /dev/null +++ b/database/share/charsets/latin7.xml @@ -0,0 +1,187 @@ + + + + + + Copyright (C) 2003 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + + + + + + + 00 + 20 20 20 20 20 20 20 20 20 28 28 28 28 28 20 20 + 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 + 48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 84 84 84 84 84 84 84 84 84 84 10 10 10 10 10 10 + 10 81 81 81 81 81 81 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 01 01 01 01 10 10 10 10 10 + 10 82 82 82 82 82 82 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 02 02 02 02 10 10 10 10 20 + 01 20 10 20 10 10 00 00 20 10 20 10 20 10 10 10 + 20 10 10 10 10 10 10 10 20 00 20 10 20 10 10 20 + 48 20 10 10 10 20 10 10 10 10 01 10 10 10 10 01 + 10 10 10 10 10 10 10 10 10 10 02 10 10 10 10 02 + 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 10 01 01 01 01 01 01 01 02 + 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 10 02 02 02 02 02 02 02 10 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 5B 5C 5D 5E 5F + 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 B8 A9 BA AB AC AD AE BF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 D7 F8 F9 FA FB FC FD FE DF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 A8 B9 AA BB BC BD BE AF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 F7 D8 D9 DA DB DC DD DE FF + + + + + + +0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F +0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F +0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F +0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003A 003B 003C 003D 003E 003F +0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F +0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F +0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F +0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F +0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 008A 008B 008C 008D 008E 008F +0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 009A 009B 009C 009D 009E 009F +00A0 201D 00A2 00A3 00A4 201E 00A6 00A7 00D8 00A9 0156 00AB 00AC 00AD 00AE 00C6 +00B0 00B1 00B2 00B3 201C 00B5 00B6 00B7 00F8 00B9 0157 00BB 00BC 00BD 00BE 00E6 +0104 012E 0100 0106 00C4 00C5 0118 0112 010C 00C9 0179 0116 0122 0136 012A 013B +0160 0143 0145 00D3 014C 00D5 00D6 00D7 0172 0141 015A 016A 00DC 017B 017D 00DF +0105 012F 0101 0107 00E4 00E5 0119 0113 010D 00E9 017A 0117 0123 0137 012B 013C +0161 0144 0146 00F3 014D 00F5 00F6 00F7 0173 0142 015B 016B 00FC 017C 017E 2019 + + + + + + + 00 02 03 04 05 06 07 08 09 2E 2F 30 31 32 0A 0B + 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B + 2C 33 34 35 36 37 38 27 39 3A 3B 5D 3C 28 3D 3E + 76 7A 7C 7E 80 81 82 83 84 85 3F 40 5E 5F 60 41 + 42 86 90 92 98 9A A4 A6 AA AC B2 B4 B8 BE C0 C6 + CE D0 D2 D6 E5 E8 EE F0 FA FC DD 43 44 45 46 47 + 48 87 91 93 99 9B A5 A7 AB AD B3 B5 B9 BF C1 C7 + CF D1 D3 D7 E6 E9 EF F1 FB FD DE 49 4A 4B 4C 1C + 01 1D 57 1E 5A 74 71 72 1F 75 20 5B 21 4E 52 51 + 22 55 56 58 59 73 2A 2B 23 E7 24 5C 25 4F 54 26 + 2D FE 66 67 68 FF 4D 69 CC 6A D4 62 6B 29 6C 8E + 6D 61 7D 7F 50 6E 6F 70 CD 7B D5 63 77 78 79 8F + 8C B0 88 94 F4 8A A2 A0 96 9C DF 9E A8 B6 AE BA + DB C2 C4 C8 CA F2 F6 64 EC BC D8 EA F8 E1 E3 DA + 8D B1 89 95 F5 8B A3 A1 97 9D E0 9F A9 B7 AF BB + DC C3 C5 C9 CB F3 F7 65 ED BD D9 EB F9 E2 E4 53 + + + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 30 32 33 34 35 36 37 2B 38 39 3A 5C 3B 2C 3C 3D + 76 7A 7C 7E 80 81 82 83 84 85 3E 3F 5D 5E 5F 40 + 41 86 92 94 9A 9C A6 A8 AC AE B4 B6 BA C0 C2 C8 + D4 D6 D8 DC E3 E6 EE F0 F2 F4 F6 42 43 44 45 46 + 47 87 93 95 9B 9D A7 A9 AD AF B5 B7 BB C1 C3 C9 + D5 D7 D9 DD E4 E7 EF F1 F3 F5 F7 48 49 4A 4B 20 + 75 21 56 22 59 73 70 71 23 74 24 5A 25 4D 51 50 + 26 54 55 57 58 72 2E 2F 27 E5 28 5B 29 4E 53 2A + 31 FE 65 66 67 FF 4C 68 D3 69 DA 61 6A 2D 6B 90 + 6C 60 7D 7F 4F 6D 6E 6F D2 7B DB 62 77 78 79 91 + 8E B2 8A 96 88 8C A4 A2 98 9E F8 A0 AA B8 B0 BE + E1 C4 C6 CA CE D0 CC 63 EC BC DE EA E8 FA FC E0 + 8F B3 8B 97 89 8D A5 A3 99 9F F9 A1 AB B9 B1 BF + E2 C5 C7 CB CF D1 CD 64 ED BD DF EB E9 FB FD 52 + + + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 30 32 33 34 35 36 37 2B 38 39 3A 5C 3B 2C 3C 3D + 76 7A 7C 7E 80 81 82 83 84 85 3E 3F 5D 5E 5F 40 + 41 86 92 94 9A 9C A6 A8 AC AE B4 B6 BA C0 C2 C8 + D4 D6 D8 DC E3 E6 EE F0 F2 F4 F6 42 43 44 45 46 + 47 86 92 94 9A 9C A6 A8 AC AE B4 B6 BA C0 C2 C8 + D4 D6 D8 DC E2 E6 EE F0 F2 F4 F6 48 49 4A 4B 20 + 75 21 56 22 59 73 70 71 23 74 24 5A 25 4D 51 50 + 26 54 55 57 58 72 2E 2F 27 E5 28 5B 29 4E 53 2A + 31 FE 65 66 67 FF 4C 68 2D 69 DA 61 6A 2D 6B 90 + 6C 60 7D 7F 4F 6D 6E 6F D3 7B DB 62 77 78 79 90 + 8E B2 8A 96 88 8C A4 A2 98 9E F8 A0 AA B8 B0 BE + E1 C4 C6 CA CE D0 CC 63 EC BC DE EA E8 FA FC E0 + 8E B2 8A 96 88 8C A4 A2 98 9E F8 A0 AA B8 B0 BE + E1 C4 C6 CA CE D0 CC 64 EC BC DE EA E8 FA FC 52 + + + + + + + + diff --git a/database/share/charsets/macce.xml b/database/share/charsets/macce.xml new file mode 100644 index 0000000..2a601b7 --- /dev/null +++ b/database/share/charsets/macce.xml @@ -0,0 +1,207 @@ + + + + + + Copyright (C) 2003 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + + + + + + + 00 + 20 20 20 20 20 20 20 20 20 28 28 28 28 28 20 20 + 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 + 48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 84 84 84 84 84 84 84 84 84 84 10 10 10 10 10 10 + 10 81 81 81 81 81 81 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 01 01 01 01 10 10 10 10 10 + 10 82 82 82 82 82 82 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 02 02 02 02 10 10 10 10 00 + 01 01 02 01 01 01 01 02 02 01 02 02 01 02 02 01 + 02 01 02 02 01 02 01 02 02 02 02 02 02 01 02 02 + 00 00 01 00 00 00 00 02 00 00 00 02 00 00 02 01 + 02 01 00 00 02 01 00 00 02 01 02 01 02 01 02 01 + 02 01 00 00 02 01 00 00 00 00 00 02 01 01 02 01 + 00 00 00 00 00 00 00 00 02 01 02 01 00 00 02 01 + 02 01 00 00 02 01 02 01 01 02 01 01 02 01 01 01 + 02 01 01 02 01 02 01 02 01 02 02 01 01 02 01 00 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 54 75 76 77 78 79 7A 5B 5C 5D 5E 5F + 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 54 75 76 77 78 79 7A 7B 7C 7D 7E 7F + 8A 82 82 8E 88 9A 9F 87 88 8B 8A 8B 8D 8D 8E 90 + 90 93 92 93 95 95 98 97 98 99 9A 9B 9C 9E 9E 9F + A0 A1 AB A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE B0 + B0 B4 B2 B3 B4 FA B6 B7 B8 BA BA BC BC BE BE C0 + C0 C4 C2 C3 C4 CB C6 C7 C8 C9 CA CB CE 9B CE D8 + D0 D1 D2 D3 D4 D5 D6 D7 D8 DA DA DE DC DD DE E0 + E0 E4 E2 E3 E4 E6 E6 87 E9 E9 92 EC EC F0 97 99 + F0 F3 9C F3 F5 F5 F7 F7 F9 F9 FA FD B8 FD AE FF + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 74 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 74 55 56 57 58 59 5A 7B 7C 7D 7E 7F + 80 81 81 83 84 85 86 E7 84 89 80 89 8C 8C 83 8F + 8F 91 EA 91 94 94 96 EE 96 EF 85 CD F2 9D 9D 86 + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA A2 AC AD FE AF + AF B1 B2 B3 B1 B5 B6 B7 FC B9 B9 BB BB BD BD BF + BF C1 C2 C3 C1 C5 C6 C7 C8 C9 CA C5 CC CD CC CF + D0 D1 D2 D3 D4 D5 D6 D7 CF D9 D9 DB DC DD DB DF + DF E1 E2 E3 E1 E5 E5 E7 E8 E8 EA EB EB ED EE EF + ED F1 F2 F1 F4 F4 F6 F6 F8 F8 B5 FB FC FB FE FF + + + + + + + 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F + 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F + 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F + 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003A 003B 003C 003D 003E 003F + 0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F + 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F + 0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F + 0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F + 00C4 0100 0101 00C9 0104 00D6 00DC 00E1 0105 010C 00E4 010D 0106 0107 00E9 0179 + 017A 010E 00ED 010F 0112 0113 0116 00F3 0117 00F4 00F6 00F5 00FA 011A 011B 00FC + 2020 00B0 0118 00A3 00A7 2022 00B6 00DF 00AE 00A9 2122 0119 00A8 2260 0123 012E + 012F 012A 2264 2265 012B 0136 2202 2211 0142 013B 013C 013D 013E 0139 013A 0145 + 0146 0143 00AC 221A 0144 0147 2206 00AB 00BB 2026 00A0 0148 0150 00D5 0151 014C + 2013 2014 201C 201D 2018 2019 00F7 25CA 014D 0154 0155 0158 2039 203A 0159 0156 + 0157 0160 201A 201E 0161 015A 015B 00C1 0164 0165 00CD 017D 017E 016A 00D3 00D4 + 016B 016E 00DA 016F 0170 0171 0172 0173 00DD 00FD 0137 017B 0141 017C 0122 02C7 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 46 47 4A 4C 52 53 55 56 5A 5B 5D 62 62 67 + 6F 70 71 75 79 81 88 89 8A 8B 8D 90 91 92 93 94 + 95 41 46 47 4A 4C 52 53 55 56 5A 5B 5D 62 62 67 + 6F 70 71 75 79 81 88 89 8A 8B 8D 96 97 98 99 9A + 41 41 41 4C 41 67 81 41 41 47 41 47 47 47 4C 8D + 8D 4A 56 4A 4C 4C 4C 67 4C 67 67 67 81 4C 4C 81 + A0 A1 4C A3 A4 A5 A6 75 A8 A9 AA 4C AC AD 53 56 + 56 56 B2 B3 56 5B B6 B7 5D 5D 5D 5D 5D 5D 5D 62 + 62 62 C2 C3 62 62 C6 C7 C8 C9 CA 62 67 67 67 67 + D0 D1 D2 D3 D4 D5 D6 D7 67 71 71 71 DC DD 71 71 + 71 75 E2 E3 75 75 75 41 79 79 56 8D 8D 81 67 67 + 81 81 81 81 81 81 81 81 8B 8B 5B 8D 5D 8D 53 FF + + + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 4B 4D 53 57 63 65 69 6B 73 75 79 83 85 8D + 9B 9D 9F A7 AE B2 C0 C2 C4 C6 CA D2 D3 D4 D5 D6 + D7 41 4B 4D 53 57 63 65 69 6B 73 75 79 83 85 8D + 9B 9D 9F A7 AE B2 C0 C2 C4 C6 CA D8 D9 DA DB DC + 41 41 41 57 41 8D B2 41 41 4D 41 4D 4D 4D 57 CA + CA 53 6B 53 57 57 57 8D 57 8D 8D 8D B2 57 57 B2 + DD DE 57 DF E0 E1 E2 A7 E3 E4 E5 57 E6 E7 65 6B + 6B 6B E8 E9 6B 75 EA EB 79 79 79 79 79 79 79 85 + 85 85 EC ED 85 85 EE EF F0 F1 F2 85 8D 8D 8D 8D + F3 F4 F5 F6 F7 F8 F9 FA 8D 9F 9F 9F FB FC 9F 9F + 9F A7 FD FE A7 A7 A7 41 BE BE 6B CA CA B2 8D 8D + B2 B2 B2 B2 B2 B2 B2 B2 C6 C6 75 CA 79 CA 65 FF + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 4B 4D 53 57 63 65 69 6B 73 75 79 83 85 8D + 9B 9D 9F A7 AE B2 C0 C2 C4 C6 CA D2 D3 D4 D5 D6 + D7 41 4B 4D 53 57 63 65 69 6B 73 75 79 83 85 8D + 9B 9D 9F A7 AE B2 C0 C2 C4 C6 CA D8 D9 DA DB DC + 45 47 47 59 49 91 B6 43 49 4F 45 4F 51 51 59 CE + CE 55 71 55 5B 5B 5D 8F 5D 99 91 97 B8 5F 5F B6 + DD DE 61 DF E0 E1 E2 AD E3 E4 E5 61 E6 E7 67 6F + 6F 6D E8 E9 6D 77 EA EB 7B 81 82 7F 7F 7D 7D 8B + 8B 87 EC ED 87 89 EE EF F0 F1 F2 89 93 97 93 95 + F3 F4 F5 F6 F7 F8 F9 FA 95 A1 A1 A3 FB FC A3 A5 + A5 A9 FD FE A9 AB AB 43 B0 B0 71 CC CC BC 8F 99 + BC B4 B8 B4 BA BA BE BE C8 C8 77 D0 7B D0 67 FF + + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 4B 4D 53 57 63 65 69 6B 73 75 79 83 85 8D + 9B 9D 9F A7 AE B2 C0 C2 C4 C6 CA D2 D3 D4 D5 D6 + D7 42 4C 4E 54 58 64 66 6A 6C 74 76 7A 84 86 8E + 9C 9E A0 A8 AF B3 C1 C3 C5 C7 CB D8 D9 DA DB DC + 45 47 48 59 49 91 B6 44 4A 4F 46 50 51 52 5A CE + CF 55 72 56 5B 5C 5D 90 5E 9A 92 98 B8 5F 60 B7 + DD DE 61 DF E0 E1 E2 AD E3 E4 E5 62 E6 E7 68 6F + 70 6D E8 E9 6E 77 EA EB 7C 81 82 7F 80 7D 7E 8B + 8C 87 EC ED 88 89 EE EF F0 F1 F2 8A 93 97 94 95 + F3 F4 F5 F6 F7 F8 F9 FA 96 A1 A2 A3 FB FC A4 A5 + A6 A9 FD FE AA AB AC 43 B0 B1 71 CC CD BC 8F 99 + BD B4 B9 B5 BA BB BE BF C8 C9 78 D0 7B D1 67 FF + + + + + + + diff --git a/database/share/charsets/macroman.xml b/database/share/charsets/macroman.xml new file mode 100644 index 0000000..711a391 --- /dev/null +++ b/database/share/charsets/macroman.xml @@ -0,0 +1,200 @@ + + + + + + Copyright (C) 2003 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + + + + + + + 00 + 20 20 20 20 20 20 20 20 20 28 28 28 28 28 20 20 + 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 + 48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 84 84 84 84 84 84 84 84 84 84 10 10 10 10 10 10 + 10 81 81 81 81 81 81 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 01 01 01 01 10 10 10 10 10 + 10 82 82 82 82 82 82 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 02 02 02 02 10 10 10 10 10 + 20 01 01 01 01 01 01 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 + 00 00 00 00 00 00 00 02 00 00 00 00 00 00 01 01 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 02 + 00 00 00 00 02 00 00 00 00 00 00 20 01 01 00 00 + 00 00 00 00 00 00 00 00 02 01 00 00 00 00 00 00 + 00 00 00 00 00 20 01 01 01 01 01 01 01 01 01 01 + 00 01 01 01 01 02 00 00 00 00 00 00 00 00 00 00 + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 5B 5C 5D 5E 5F + 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F + 8A 8C 8D 8E 96 9A 9F 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD BE BF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA 88 8B 9B CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D8 DA DB DC DD DE DF + E0 E1 E2 E3 E4 89 90 87 91 8F 92 94 95 93 97 99 + F0 98 9C 9E 9D F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 E7 CB E5 80 CC 81 82 83 E9 + E6 E8 EA ED EB EC 84 EE F1 EF 85 CD F2 F4 F3 86 + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD AE AF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D9 D9 DA DB DC DD DE DF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + + 0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F + 0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F + 0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F + 0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003A 003B 003C 003D 003E 003F + 0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F + 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F + 0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F + 0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F + 00C4 00C5 00C7 00C9 00D1 00D6 00DC 00E1 00E0 00E2 00E4 00E3 00E5 00E7 00E9 00E8 + 00EA 00EB 00ED 00EC 00EE 00EF 00F1 00F3 00F2 00F4 00F6 00F5 00FA 00F9 00FB 00FC + 2020 00B0 00A2 00A3 00A7 2022 00B6 00DF 00AE 00A9 2122 00B4 00A8 2260 00C6 00D8 + 221E 00B1 2264 2265 00A5 00B5 2202 2211 220F 03C0 222B 00AA 00BA 03A9 00E6 00F8 + 00BF 00A1 00AC 221A 0192 2248 2206 00AB 00BB 2026 00A0 00C0 00C3 00D5 0152 0153 + 2013 2014 201C 201D 2018 2019 00F7 25CA 00FF 0178 2044 20AC 2039 203A FB01 FB02 + 2021 00B7 201A 201E 2030 00C2 00CA 00C1 00CB 00C8 00CD 00CE 00CF 00CC 00D3 00D4 + F8FF 00D2 00DA 00DB 00D9 0131 02C6 02DC 00AF 02D8 02D9 02DA 00B8 02DD 02DB 02C7 + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 49 50 52 53 57 59 60 61 67 68 69 70 71 72 + 79 80 81 82 84 85 90 91 92 93 95 A0 A1 A2 A3 A4 + A5 41 49 50 52 53 57 59 60 61 67 68 69 70 71 72 + 79 80 81 82 84 85 90 91 92 93 95 A6 A7 A8 A9 AA + 41 41 50 53 71 72 85 41 41 41 41 41 41 50 53 53 + 53 53 61 61 61 61 71 72 72 72 72 72 85 85 85 85 + AB AC AD AE AF B0 B1 82 B2 B3 B4 B5 B6 B7 48 72 + B8 B9 BA BB BC BD BE BF C0 C1 C2 C3 C4 C5 48 72 + C6 C7 C8 C9 57 CA CB CC CD CE CF 41 41 72 D0 D1 + D2 D3 D4 D5 D6 D7 D8 D9 93 93 DA DB DC DD DE DF + E0 E1 E2 E3 E4 41 53 41 53 53 61 61 61 61 72 72 + F0 72 85 85 85 61 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 51 53 57 59 63 66 68 6A 75 77 79 7B 7D 81 + 91 93 95 97 9A 9C A6 A8 AA AC B0 B2 B3 B4 B5 B6 + B7 41 51 53 57 59 63 66 68 6A 75 77 79 7B 7D 81 + 91 93 95 97 9A 9C A6 A8 AA AC B0 B8 B9 BA BB BC + 41 41 53 59 7D 81 9C 41 41 41 41 41 41 53 59 59 + 59 59 6A 6A 6A 6A 7D 81 81 81 81 81 9C 9C 9C 9C + BD BE BF C0 C1 C2 C3 97 C4 C5 C6 C7 C8 C9 41 81 + CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 41 81 + D8 D9 DA DB 63 DC DD DE DF E0 E1 41 41 81 81 81 + E2 E3 E4 E5 E6 E7 E8 E9 AC AC EA EB EC ED EE EF + F0 F1 F2 F3 F4 41 59 41 59 59 6A 6A 6A 6A 81 81 + F0 81 9C 9C 9C 6A F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 51 53 57 59 63 66 68 6A 75 77 79 7B 7D 81 + 91 93 95 97 9A 9C A6 A8 AA AC B0 B2 B3 B4 B5 B6 + B7 41 51 53 57 59 63 66 68 6A 75 77 79 7B 7D 81 + 91 93 95 97 9A 9C A6 A8 AA AC B0 B8 B9 BA BB BC + 4B 4D 55 5D 7F 8B A4 45 43 47 4B 49 4D 55 5D 5B + 5F 61 6E 6C 70 72 7F 85 83 87 8B 89 A0 9E A2 A4 + BD BE BF C0 C1 C2 C3 99 C4 C5 C6 C7 C8 C9 4F 8D + CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 4F 8D + D8 D9 DA DB 65 DC DD DE DF E0 E1 43 49 89 8F 8F + E2 E3 E4 E5 E6 E7 E8 E9 AE AE EA EB EC ED EE EF + F0 F1 F2 F3 F4 47 5F 45 61 5B 6E 70 70 6C 85 87 + F0 83 A0 A2 9E 72 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 51 53 57 59 63 66 68 6A 75 77 79 7B 7D 81 + 91 93 95 97 9A 9C A6 A8 AA AC B0 B2 B3 B4 B5 B6 + B7 42 52 54 58 5A 64 67 69 6B 76 78 7A 7C 7E 82 + 92 94 96 98 9B 9D A7 A9 AB AD B1 B8 B9 BA BB BC + 4B 4D 55 5D 7F 8B A4 46 44 48 4C 4A 4E 56 5E 5C + 60 62 6F 6D 71 73 80 86 84 88 8C 8A A1 9F A3 A5 + BD BE BF C0 C1 C2 C3 99 C4 C5 C6 C7 C8 C9 4F 8D + CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 50 8E + D8 D9 DA DB 65 DC DD DE DF E0 E1 43 49 89 8F 90 + E2 E3 E4 E5 E6 E7 E8 E9 AF AE EA EB EC ED EE EF + F0 F1 F2 F3 F4 47 5F 45 61 5B 6E 70 72 6C 85 87 + F0 83 A0 A2 9E 74 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + diff --git a/database/share/charsets/swe7.xml b/database/share/charsets/swe7.xml new file mode 100644 index 0000000..513c3ee --- /dev/null +++ b/database/share/charsets/swe7.xml @@ -0,0 +1,141 @@ + + + + + + Copyright (C) 2003 MySQL AB + Use is subject to license terms + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + + + + + + + 00 + 20 20 20 20 20 20 20 20 20 28 28 28 28 28 20 20 + 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 + 48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 + 84 84 84 84 84 84 84 84 84 84 10 10 10 10 10 10 + 01 81 81 81 81 81 81 01 01 01 01 01 01 01 01 01 + 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 10 + 01 82 82 82 82 82 82 02 02 02 02 02 02 02 02 02 + 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 20 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 5F + 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F + 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F + 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + +0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F +0010 0011 0012 0013 0014 0015 0016 0017 0018 0019 001A 001B 001C 001D 001E 001F +0020 0021 0022 0023 0024 0025 0026 0027 0028 0029 002A 002B 002C 002D 002E 002F +0030 0031 0032 0033 0034 0035 0036 0037 0038 0039 003A 003B 003C 003D 003E 003F +00C9 0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F +0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 00C4 00D6 00C5 00DC 005F +00E9 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F +0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 00E4 00F6 00E5 00FC 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 + + + + + + + 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F + 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F + 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F + 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F + 45 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5C 5D 5B 59 5F + 45 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F + 50 51 52 53 54 55 56 57 58 59 5A 5C 5D 5B 59 7F + 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F + 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F + A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF + B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF + C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF + D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF + E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF + F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF + + + + + + + + + + diff --git a/database/share/czech/errmsg.sys b/database/share/czech/errmsg.sys new file mode 100644 index 0000000..0eda3e3 Binary files /dev/null and b/database/share/czech/errmsg.sys differ diff --git a/database/share/danish/errmsg.sys b/database/share/danish/errmsg.sys new file mode 100644 index 0000000..4c6cf9b Binary files /dev/null and b/database/share/danish/errmsg.sys differ diff --git a/database/share/dutch/errmsg.sys b/database/share/dutch/errmsg.sys new file mode 100644 index 0000000..597e155 Binary files /dev/null and b/database/share/dutch/errmsg.sys differ diff --git a/database/share/english/errmsg.sys b/database/share/english/errmsg.sys new file mode 100644 index 0000000..216c09d Binary files /dev/null and b/database/share/english/errmsg.sys differ diff --git a/database/share/errmsg-utf8.txt b/database/share/errmsg-utf8.txt new file mode 100644 index 0000000..ee89d8d --- /dev/null +++ b/database/share/errmsg-utf8.txt @@ -0,0 +1,6567 @@ +languages czech=cze latin2, danish=dan latin1, dutch=nla latin1, english=eng latin1, estonian=est latin7, french=fre latin1, german=ger latin1, greek=greek greek, hungarian=hun latin2, italian=ita latin1, japanese=jpn ujis, japanese-sjis=jps sjis, korean=kor euckr, norwegian-ny=norwegian-ny latin1, norwegian=nor latin1, polish=pol latin2, portuguese=por latin1, romanian=rum latin2, russian=rus koi8r, serbian=serbian cp1250, slovak=slo latin2, spanish=spa latin1, swedish=swe latin1, ukrainian=ukr koi8u; + +default-language eng + +start-error-number 1000 + +ER_HASHCHK + eng "hashchk" +ER_NISAMCHK + eng "isamchk" +ER_NO + cze "NE" + dan "NEJ" + nla "NEE" + eng "NO" + est "EI" + fre "NON" + ger "Nein" + greek "ΟΧΙ" + hun "NEM" + kor "아니오" + nor "NEI" + norwegian-ny "NEI" + pol "NIE" + por "NÃO" + rum "NU" + rus "ÐЕТ" + serbian "NE" + slo "NIE" + ukr "ÐІ" +ER_YES + cze "ANO" + dan "JA" + nla "JA" + eng "YES" + est "JAH" + fre "OUI" + ger "Ja" + greek "ÎΑΙ" + hun "IGEN" + ita "SI" + kor "예" + nor "JA" + norwegian-ny "JA" + pol "TAK" + por "SIM" + rum "DA" + rus "ДÐ" + serbian "DA" + slo "Ãno" + spa "SI" + ukr "ТÐК" +ER_CANT_CREATE_FILE + cze "Nemohu vytvo-BÅ™it soubor '%-.200s' (chybový kód: %d)" + dan "Kan ikke oprette filen '%-.200s' (Fejlkode: %d)" + nla "Kan file '%-.200s' niet aanmaken (Errcode: %d)" + eng "Can't create file '%-.200s' (errno: %d)" + est "Ei suuda luua faili '%-.200s' (veakood: %d)" + fre "Ne peut créer le fichier '%-.200s' (Errcode: %d)" + ger "Kann Datei '%-.200s' nicht erzeugen (Fehler: %d)" + greek "ΑδÏνατη η δημιουÏγία του αÏχείου '%-.200s' (κωδικός λάθους: %d)" + hun "A '%-.200s' file nem hozhato letre (hibakod: %d)" + ita "Impossibile creare il file '%-.200s' (errno: %d)" + jpn "'%-.200s' ファイルãŒä½œã‚Œã¾ã›ã‚“ (errno: %d)" + kor "í™”ì¼ '%-.200s'를 만들지 못했습니다. (ì—러번호: %d)" + nor "Kan ikke opprette fila '%-.200s' (Feilkode: %d)" + norwegian-ny "Kan ikkje opprette fila '%-.200s' (Feilkode: %d)" + pol "Nie można stworzyć pliku '%-.200s' (Kod błędu: %d)" + por "Não pode criar o arquivo '%-.200s' (erro no. %d)" + rum "Nu pot sa creez fisierul '%-.200s' (Eroare: %d)" + rus "Ðевозможно Ñоздать файл '%-.200s' (ошибка: %d)" + serbian "Ne mogu da kreiram file '%-.200s' (errno: %d)" + slo "Nemôžem vytvoriÅ¥ súbor '%-.200s' (chybový kód: %d)" + spa "No puedo crear archivo '%-.200s' (Error: %d)" + swe "Kan inte skapa filen '%-.200s' (Felkod: %d)" + ukr "Ðе можу Ñтворити файл '%-.200s' (помилка: %d)" +ER_CANT_CREATE_TABLE + cze "Nemohu vytvo-BÅ™it tabulku '%-.200s' (chybový kód: %d)" + dan "Kan ikke oprette tabellen '%-.200s' (Fejlkode: %d)" + nla "Kan tabel '%-.200s' niet aanmaken (Errcode: %d)" + eng "Can't create table '%-.200s' (errno: %d)" + jps "'%-.200s' テーブルãŒä½œã‚Œã¾ã›ã‚“.(errno: %d)", + est "Ei suuda luua tabelit '%-.200s' (veakood: %d)" + fre "Ne peut créer la table '%-.200s' (Errcode: %d)" + ger "Kann Tabelle '%-.200s' nicht erzeugen (Fehler: %d)" + greek "ΑδÏνατη η δημιουÏγία του πίνακα '%-.200s' (κωδικός λάθους: %d)" + hun "A '%-.200s' tabla nem hozhato letre (hibakod: %d)" + ita "Impossibile creare la tabella '%-.200s' (errno: %d)" + jpn "'%-.200s' テーブルãŒä½œã‚Œã¾ã›ã‚“.(errno: %d)" + kor "í…Œì´ë¸” '%-.200s'를 만들지 못했습니다. (ì—러번호: %d)" + nor "Kan ikke opprette tabellen '%-.200s' (Feilkode: %d)" + norwegian-ny "Kan ikkje opprette tabellen '%-.200s' (Feilkode: %d)" + pol "Nie można stworzyć tabeli '%-.200s' (Kod błędu: %d)" + por "Não pode criar a tabela '%-.200s' (erro no. %d)" + rum "Nu pot sa creez tabla '%-.200s' (Eroare: %d)" + rus "Ðевозможно Ñоздать таблицу '%-.200s' (ошибка: %d)" + serbian "Ne mogu da kreiram tabelu '%-.200s' (errno: %d)" + slo "Nemôžem vytvoriÅ¥ tabuľku '%-.200s' (chybový kód: %d)" + spa "No puedo crear tabla '%-.200s' (Error: %d)" + swe "Kan inte skapa tabellen '%-.200s' (Felkod: %d)" + ukr "Ðе можу Ñтворити таблицю '%-.200s' (помилка: %d)" +ER_CANT_CREATE_DB + cze "Nemohu vytvo-BÅ™it databázi '%-.192s' (chybový kód: %d)" + dan "Kan ikke oprette databasen '%-.192s' (Fejlkode: %d)" + nla "Kan database '%-.192s' niet aanmaken (Errcode: %d)" + eng "Can't create database '%-.192s' (errno: %d)" + jps "'%-.192s' データベースãŒä½œã‚Œã¾ã›ã‚“ (errno: %d)", + est "Ei suuda luua andmebaasi '%-.192s' (veakood: %d)" + fre "Ne peut créer la base '%-.192s' (Erreur %d)" + ger "Kann Datenbank '%-.192s' nicht erzeugen (Fehler: %d)" + greek "ΑδÏνατη η δημιουÏγία της βάσης δεδομένων '%-.192s' (κωδικός λάθους: %d)" + hun "Az '%-.192s' adatbazis nem hozhato letre (hibakod: %d)" + ita "Impossibile creare il database '%-.192s' (errno: %d)" + jpn "'%-.192s' データベースãŒä½œã‚Œã¾ã›ã‚“ (errno: %d)" + kor "ë°ì´íƒ€ë² ì´ìФ '%-.192s'를 만들지 못했습니다.. (ì—러번호: %d)" + nor "Kan ikke opprette databasen '%-.192s' (Feilkode: %d)" + norwegian-ny "Kan ikkje opprette databasen '%-.192s' (Feilkode: %d)" + pol "Nie można stworzyć bazy danych '%-.192s' (Kod błędu: %d)" + por "Não pode criar o banco de dados '%-.192s' (erro no. %d)" + rum "Nu pot sa creez baza de date '%-.192s' (Eroare: %d)" + rus "Ðевозможно Ñоздать базу данных '%-.192s' (ошибка: %d)" + serbian "Ne mogu da kreiram bazu '%-.192s' (errno: %d)" + slo "Nemôžem vytvoriÅ¥ databázu '%-.192s' (chybový kód: %d)" + spa "No puedo crear base de datos '%-.192s' (Error: %d)" + swe "Kan inte skapa databasen '%-.192s' (Felkod: %d)" + ukr "Ðе можу Ñтворити базу данних '%-.192s' (помилка: %d)" +ER_DB_CREATE_EXISTS + cze "Nemohu vytvo-BÅ™it databázi '%-.192s'; databáze již existuje" + dan "Kan ikke oprette databasen '%-.192s'; databasen eksisterer" + nla "Kan database '%-.192s' niet aanmaken; database bestaat reeds" + eng "Can't create database '%-.192s'; database exists" + jps "'%-.192s' データベースãŒä½œã‚Œã¾ã›ã‚“.æ—¢ã«ãã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ãŒå­˜åœ¨ã—ã¾ã™", + est "Ei suuda luua andmebaasi '%-.192s': andmebaas juba eksisteerib" + fre "Ne peut créer la base '%-.192s'; elle existe déjà" + ger "Kann Datenbank '%-.192s' nicht erzeugen. Datenbank existiert bereits" + greek "ΑδÏνατη η δημιουÏγία της βάσης δεδομένων '%-.192s'; Η βάση δεδομένων υπάÏχει ήδη" + hun "Az '%-.192s' adatbazis nem hozhato letre Az adatbazis mar letezik" + ita "Impossibile creare il database '%-.192s'; il database esiste" + jpn "'%-.192s' データベースãŒä½œã‚Œã¾ã›ã‚“.æ—¢ã«ãã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ãŒå­˜åœ¨ã—ã¾ã™" + kor "ë°ì´íƒ€ë² ì´ìФ '%-.192s'를 만들지 못했습니다.. ë°ì´íƒ€ë² ì´ìŠ¤ê°€ 존재함" + nor "Kan ikke opprette databasen '%-.192s'; databasen eksisterer" + norwegian-ny "Kan ikkje opprette databasen '%-.192s'; databasen eksisterer" + pol "Nie można stworzyć bazy danych '%-.192s'; baza danych już istnieje" + por "Não pode criar o banco de dados '%-.192s'; este banco de dados já existe" + rum "Nu pot sa creez baza de date '%-.192s'; baza de date exista deja" + rus "Ðевозможно Ñоздать базу данных '%-.192s'. База данных уже ÑущеÑтвует" + serbian "Ne mogu da kreiram bazu '%-.192s'; baza već postoji." + slo "Nemôžem vytvoriÅ¥ databázu '%-.192s'; databáza existuje" + spa "No puedo crear base de datos '%-.192s'; la base de datos ya existe" + swe "Databasen '%-.192s' existerar redan" + ukr "Ðе можу Ñтворити базу данних '%-.192s'. База данних Ñ–Ñнує" +ER_DB_DROP_EXISTS + cze "Nemohu zru-BÅ¡it databázi '%-.192s', databáze neexistuje" + dan "Kan ikke slette (droppe) '%-.192s'; databasen eksisterer ikke" + nla "Kan database '%-.192s' niet verwijderen; database bestaat niet" + eng "Can't drop database '%-.192s'; database doesn't exist" + jps "'%-.192s' データベースを破棄ã§ãã¾ã›ã‚“. ãã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ãŒãªã„ã®ã§ã™.", + est "Ei suuda kustutada andmebaasi '%-.192s': andmebaasi ei eksisteeri" + fre "Ne peut effacer la base '%-.192s'; elle n'existe pas" + ger "Kann Datenbank '%-.192s' nicht löschen; Datenbank nicht vorhanden" + greek "ΑδÏνατη η διαγÏαφή της βάσης δεδομένων '%-.192s'. Η βάση δεδομένων δεν υπάÏχει" + hun "A(z) '%-.192s' adatbazis nem szuntetheto meg. Az adatbazis nem letezik" + ita "Impossibile cancellare '%-.192s'; il database non esiste" + jpn "'%-.192s' データベースを破棄ã§ãã¾ã›ã‚“. ãã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ãŒãªã„ã®ã§ã™." + kor "ë°ì´íƒ€ë² ì´ìФ '%-.192s'를 제거하지 못했습니다. ë°ì´íƒ€ë² ì´ìŠ¤ê°€ 존재하지 ì•ŠìŒ " + nor "Kan ikke fjerne (drop) '%-.192s'; databasen eksisterer ikke" + norwegian-ny "Kan ikkje fjerne (drop) '%-.192s'; databasen eksisterer ikkje" + pol "Nie można usun?ć bazy danych '%-.192s'; baza danych nie istnieje" + por "Não pode eliminar o banco de dados '%-.192s'; este banco de dados não existe" + rum "Nu pot sa drop baza de date '%-.192s'; baza da date este inexistenta" + rus "Ðевозможно удалить базу данных '%-.192s'. Такой базы данных нет" + serbian "Ne mogu da izbriÅ¡em bazu '%-.192s'; baza ne postoji." + slo "Nemôžem zmazaÅ¥ databázu '%-.192s'; databáza neexistuje" + spa "No puedo eliminar base de datos '%-.192s'; la base de datos no existe" + swe "Kan inte radera databasen '%-.192s'; databasen finns inte" + ukr "Ðе можу видалити базу данних '%-.192s'. База данних не Ñ–Ñнує" +ER_DB_DROP_DELETE + cze "Chyba p-BÅ™i ruÅ¡ení databáze (nemohu vymazat '%-.192s', chyba %d)" + dan "Fejl ved sletning (drop) af databasen (kan ikke slette '%-.192s', Fejlkode %d)" + nla "Fout bij verwijderen database (kan '%-.192s' niet verwijderen, Errcode: %d)" + eng "Error dropping database (can't delete '%-.192s', errno: %d)" + jps "データベース破棄エラー ('%-.192s' を削除ã§ãã¾ã›ã‚“, errno: %d)", + est "Viga andmebaasi kustutamisel (ei suuda kustutada faili '%-.192s', veakood: %d)" + fre "Ne peut effacer la base '%-.192s' (erreur %d)" + ger "Fehler beim Löschen der Datenbank ('%-.192s' kann nicht gelöscht werden, Fehler: %d)" + greek "ΠαÏουσιάστηκε Ï€Ïόβλημα κατά τη διαγÏαφή της βάσης δεδομένων (αδÏνατη η διαγÏαφή '%-.192s', κωδικός λάθους: %d)" + hun "Adatbazis megszuntetesi hiba ('%-.192s' nem torolheto, hibakod: %d)" + ita "Errore durante la cancellazione del database (impossibile cancellare '%-.192s', errno: %d)" + jpn "データベース破棄エラー ('%-.192s' を削除ã§ãã¾ã›ã‚“, errno: %d)" + kor "ë°ì´íƒ€ë² ì´ìФ 제거 ì—러('%-.192s'를 삭제할 수 ì—†ì니다, ì—러번호: %d)" + nor "Feil ved fjerning (drop) av databasen (kan ikke slette '%-.192s', feil %d)" + norwegian-ny "Feil ved fjerning (drop) av databasen (kan ikkje slette '%-.192s', feil %d)" + pol "BÅ‚?d podczas usuwania bazy danych (nie można usun?ć '%-.192s', bÅ‚?d %d)" + por "Erro ao eliminar banco de dados (não pode eliminar '%-.192s' - erro no. %d)" + rum "Eroare dropuind baza de date (nu pot sa sterg '%-.192s', Eroare: %d)" + rus "Ошибка при удалении базы данных (невозможно удалить '%-.192s', ошибка: %d)" + serbian "Ne mogu da izbriÅ¡em bazu (ne mogu da izbriÅ¡em '%-.192s', errno: %d)" + slo "Chyba pri mazaní databázy (nemôžem zmazaÅ¥ '%-.192s', chybový kód: %d)" + spa "Error eliminando la base de datos(no puedo borrar '%-.192s', error %d)" + swe "Fel vid radering av databasen (Kan inte radera '%-.192s'. Felkod: %d)" + ukr "Ðе можу видалити базу данних (Ðе можу видалити '%-.192s', помилка: %d)" +ER_DB_DROP_RMDIR + cze "Chyba p-BÅ™i ruÅ¡ení databáze (nemohu vymazat adresář '%-.192s', chyba %d)" + dan "Fejl ved sletting af database (kan ikke slette folderen '%-.192s', Fejlkode %d)" + nla "Fout bij verwijderen database (kan rmdir '%-.192s' niet uitvoeren, Errcode: %d)" + eng "Error dropping database (can't rmdir '%-.192s', errno: %d)" + jps "データベース破棄エラー ('%-.192s' ã‚’ rmdir ã§ãã¾ã›ã‚“, errno: %d)", + est "Viga andmebaasi kustutamisel (ei suuda kustutada kataloogi '%-.192s', veakood: %d)" + fre "Erreur en effaçant la base (rmdir '%-.192s', erreur %d)" + ger "Fehler beim Löschen der Datenbank (Verzeichnis '%-.192s' kann nicht gelöscht werden, Fehler: %d)" + greek "ΠαÏουσιάστηκε Ï€Ïόβλημα κατά τη διαγÏαφή της βάσης δεδομένων (αδÏνατη η διαγÏαφή του φακέλλου '%-.192s', κωδικός λάθους: %d)" + hun "Adatbazis megszuntetesi hiba ('%-.192s' nem szuntetheto meg, hibakod: %d)" + ita "Errore durante la cancellazione del database (impossibile rmdir '%-.192s', errno: %d)" + jpn "データベース破棄エラー ('%-.192s' ã‚’ rmdir ã§ãã¾ã›ã‚“, errno: %d)" + kor "ë°ì´íƒ€ë² ì´ìФ 제거 ì—러(rmdir '%-.192s'를 í•  수 ì—†ì니다, ì—러번호: %d)" + nor "Feil ved sletting av database (kan ikke slette katalogen '%-.192s', feil %d)" + norwegian-ny "Feil ved sletting av database (kan ikkje slette katalogen '%-.192s', feil %d)" + pol "BÅ‚?d podczas usuwania bazy danych (nie można wykonać rmdir '%-.192s', bÅ‚?d %d)" + por "Erro ao eliminar banco de dados (não pode remover diretório '%-.192s' - erro no. %d)" + rum "Eroare dropuind baza de date (nu pot sa rmdir '%-.192s', Eroare: %d)" + rus "Ðевозможно удалить базу данных (невозможно удалить каталог '%-.192s', ошибка: %d)" + serbian "Ne mogu da izbriÅ¡em bazu (ne mogu da izbriÅ¡em direktorijum '%-.192s', errno: %d)" + slo "Chyba pri mazaní databázy (nemôžem vymazaÅ¥ adresár '%-.192s', chybový kód: %d)" + spa "Error eliminando la base de datos (No puedo borrar directorio '%-.192s', error %d)" + swe "Fel vid radering av databasen (Kan inte radera biblioteket '%-.192s'. Felkod: %d)" + ukr "Ðе можу видалити базу данних (Ðе можу видалити теку '%-.192s', помилка: %d)" +ER_CANT_DELETE_FILE + cze "Chyba p-BÅ™i výmazu '%-.192s' (chybový kód: %d)" + dan "Fejl ved sletning af '%-.192s' (Fejlkode: %d)" + nla "Fout bij het verwijderen van '%-.192s' (Errcode: %d)" + eng "Error on delete of '%-.192s' (errno: %d)" + jps "'%-.192s' ã®å‰Šé™¤ãŒã‚¨ãƒ©ãƒ¼ (errno: %d)", + est "Viga '%-.192s' kustutamisel (veakood: %d)" + fre "Erreur en effaçant '%-.192s' (Errcode: %d)" + ger "Fehler beim Löschen von '%-.192s' (Fehler: %d)" + greek "ΠαÏουσιάστηκε Ï€Ïόβλημα κατά τη διαγÏαφή '%-.192s' (κωδικός λάθους: %d)" + hun "Torlesi hiba: '%-.192s' (hibakod: %d)" + ita "Errore durante la cancellazione di '%-.192s' (errno: %d)" + jpn "'%-.192s' ã®å‰Šé™¤ãŒã‚¨ãƒ©ãƒ¼ (errno: %d)" + kor "'%-.192s' ì‚­ì œ 중 ì—러 (ì—러번호: %d)" + nor "Feil ved sletting av '%-.192s' (Feilkode: %d)" + norwegian-ny "Feil ved sletting av '%-.192s' (Feilkode: %d)" + pol "BÅ‚?d podczas usuwania '%-.192s' (Kod błędu: %d)" + por "Erro na remoção de '%-.192s' (erro no. %d)" + rum "Eroare incercind sa delete '%-.192s' (Eroare: %d)" + rus "Ошибка при удалении '%-.192s' (ошибка: %d)" + serbian "GreÅ¡ka pri brisanju '%-.192s' (errno: %d)" + slo "Chyba pri mazaní '%-.192s' (chybový kód: %d)" + spa "Error en el borrado de '%-.192s' (Error: %d)" + swe "Kan inte radera filen '%-.192s' (Felkod: %d)" + ukr "Ðе можу видалити '%-.192s' (помилка: %d)" +ER_CANT_FIND_SYSTEM_REC + cze "Nemohu -BÄíst záznam v systémové tabulce" + dan "Kan ikke læse posten i systemfolderen" + nla "Kan record niet lezen in de systeem tabel" + eng "Can't read record in system table" + jps "system table ã®ãƒ¬ã‚³ãƒ¼ãƒ‰ã‚’読む事ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ", + est "Ei suuda lugeda kirjet süsteemsest tabelist" + fre "Ne peut lire un enregistrement de la table 'system'" + ger "Datensatz in der Systemtabelle nicht lesbar" + greek "ΑδÏνατη η ανάγνωση εγγÏαφής από πίνακα του συστήματος" + hun "Nem olvashato rekord a rendszertablaban" + ita "Impossibile leggere il record dalla tabella di sistema" + jpn "system table ã®ãƒ¬ã‚³ãƒ¼ãƒ‰ã‚’読む事ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" + kor "system í…Œì´ë¸”ì—서 레코드를 ì½ì„ 수 없습니다." + nor "Kan ikke lese posten i systemkatalogen" + norwegian-ny "Kan ikkje lese posten i systemkatalogen" + pol "Nie można odczytać rekordu z tabeli systemowej" + por "Não pode ler um registro numa tabela do sistema" + rum "Nu pot sa citesc cimpurile in tabla de system (system table)" + rus "Ðевозможно прочитать запиÑÑŒ в ÑиÑтемной таблице" + serbian "Ne mogu da proÄitam slog iz sistemske tabele" + slo "Nemôžem ÄítaÅ¥ záznam v systémovej tabuľke" + spa "No puedo leer el registro en la tabla del sistema" + swe "Hittar inte posten i systemregistret" + ukr "Ðе можу зчитати Ð·Ð°Ð¿Ð¸Ñ Ð· ÑиÑтемної таблиці" +ER_CANT_GET_STAT + cze "Nemohu z-Bískat stav '%-.200s' (chybový kód: %d)" + dan "Kan ikke læse status af '%-.200s' (Fejlkode: %d)" + nla "Kan de status niet krijgen van '%-.200s' (Errcode: %d)" + eng "Can't get status of '%-.200s' (errno: %d)" + jps "'%-.200s' ã®ã‚¹ãƒ†ã‚¤ã‚¿ã‚¹ãŒå¾—られã¾ã›ã‚“. (errno: %d)", + est "Ei suuda lugeda '%-.200s' olekut (veakood: %d)" + fre "Ne peut obtenir le status de '%-.200s' (Errcode: %d)" + ger "Kann Status von '%-.200s' nicht ermitteln (Fehler: %d)" + greek "ΑδÏνατη η λήψη πληÏοφοÏιών για την κατάσταση του '%-.200s' (κωδικός λάθους: %d)" + hun "A(z) '%-.200s' statusza nem allapithato meg (hibakod: %d)" + ita "Impossibile leggere lo stato di '%-.200s' (errno: %d)" + jpn "'%-.200s' ã®ã‚¹ãƒ†ã‚¤ã‚¿ã‚¹ãŒå¾—られã¾ã›ã‚“. (errno: %d)" + kor "'%-.200s'ì˜ ìƒíƒœë¥¼ 얻지 못했습니다. (ì—러번호: %d)" + nor "Kan ikke lese statusen til '%-.200s' (Feilkode: %d)" + norwegian-ny "Kan ikkje lese statusen til '%-.200s' (Feilkode: %d)" + pol "Nie można otrzymać statusu '%-.200s' (Kod błędu: %d)" + por "Não pode obter o status de '%-.200s' (erro no. %d)" + rum "Nu pot sa obtin statusul lui '%-.200s' (Eroare: %d)" + rus "Ðевозможно получить ÑтатуÑную информацию о '%-.200s' (ошибка: %d)" + serbian "Ne mogu da dobijem stanje file-a '%-.200s' (errno: %d)" + slo "Nemôžem zistiÅ¥ stav '%-.200s' (chybový kód: %d)" + spa "No puedo obtener el estado de '%-.200s' (Error: %d)" + swe "Kan inte läsa filinformationen (stat) frÃ¥n '%-.200s' (Felkod: %d)" + ukr "Ðе можу отримати ÑÑ‚Ð°Ñ‚ÑƒÑ '%-.200s' (помилка: %d)" +ER_CANT_GET_WD + cze "Chyba p-BÅ™i zjišťování pracovní adresář (chybový kód: %d)" + dan "Kan ikke læse aktive folder (Fejlkode: %d)" + nla "Kan de werkdirectory niet krijgen (Errcode: %d)" + eng "Can't get working directory (errno: %d)" + jps "working directory を得る事ãŒã§ãã¾ã›ã‚“ã§ã—㟠(errno: %d)", + est "Ei suuda identifitseerida jooksvat kataloogi (veakood: %d)" + fre "Ne peut obtenir le répertoire de travail (Errcode: %d)" + ger "Kann Arbeitsverzeichnis nicht ermitteln (Fehler: %d)" + greek "Ο φάκελλος εÏγασίας δεν βÏέθηκε (κωδικός λάθους: %d)" + hun "A munkakonyvtar nem allapithato meg (hibakod: %d)" + ita "Impossibile leggere la directory di lavoro (errno: %d)" + jpn "working directory を得る事ãŒã§ãã¾ã›ã‚“ã§ã—㟠(errno: %d)" + kor "수행 디렉토리를 찾지 못했습니다. (ì—러번호: %d)" + nor "Kan ikke lese aktiv katalog(Feilkode: %d)" + norwegian-ny "Kan ikkje lese aktiv katalog(Feilkode: %d)" + pol "Nie można rozpoznać aktualnego katalogu (Kod błędu: %d)" + por "Não pode obter o diretório corrente (erro no. %d)" + rum "Nu pot sa obtin directorul current (working directory) (Eroare: %d)" + rus "Ðевозможно определить рабочий каталог (ошибка: %d)" + serbian "Ne mogu da dobijem trenutni direktorijum (errno: %d)" + slo "Nemôžem zistiÅ¥ pracovný adresár (chybový kód: %d)" + spa "No puedo acceder al directorio (Error: %d)" + swe "Kan inte inte läsa aktivt bibliotek. (Felkod: %d)" + ukr "Ðе можу визначити робочу теку (помилка: %d)" +ER_CANT_LOCK + cze "Nemohu uzamknout soubor (chybov-Bý kód: %d)" + dan "Kan ikke lÃ¥se fil (Fejlkode: %d)" + nla "Kan de file niet blokeren (Errcode: %d)" + eng "Can't lock file (errno: %d)" + jps "ファイルをロックã§ãã¾ã›ã‚“ (errno: %d)", + est "Ei suuda lukustada faili (veakood: %d)" + fre "Ne peut verrouiller le fichier (Errcode: %d)" + ger "Datei kann nicht gesperrt werden (Fehler: %d)" + greek "Το αÏχείο δεν μποÏεί να κλειδωθεί (κωδικός λάθους: %d)" + hun "A file nem zarolhato. (hibakod: %d)" + ita "Impossibile il locking il file (errno: %d)" + jpn "ファイルをロックã§ãã¾ã›ã‚“ (errno: %d)" + kor "í™”ì¼ì„ 잠그지(lock) 못했습니다. (ì—러번호: %d)" + nor "Kan ikke lÃ¥se fila (Feilkode: %d)" + norwegian-ny "Kan ikkje lÃ¥se fila (Feilkode: %d)" + pol "Nie można zablokować pliku (Kod błędu: %d)" + por "Não pode travar o arquivo (erro no. %d)" + rum "Nu pot sa lock fisierul (Eroare: %d)" + rus "Ðевозможно поÑтавить блокировку на файле (ошибка: %d)" + serbian "Ne mogu da zakljuÄam file (errno: %d)" + slo "Nemôžem zamknúť súbor (chybový kód: %d)" + spa "No puedo bloquear archivo: (Error: %d)" + swe "Kan inte lÃ¥sa filen. (Felkod: %d)" + ukr "Ðе можу заблокувати файл (помилка: %d)" +ER_CANT_OPEN_FILE + cze "Nemohu otev-Břít soubor '%-.200s' (chybový kód: %d)" + dan "Kan ikke Ã¥bne fil: '%-.200s' (Fejlkode: %d)" + nla "Kan de file '%-.200s' niet openen (Errcode: %d)" + eng "Can't open file: '%-.200s' (errno: %d)" + jps "'%-.200s' ファイルを開ã事ãŒã§ãã¾ã›ã‚“ (errno: %d)", + est "Ei suuda avada faili '%-.200s' (veakood: %d)" + fre "Ne peut ouvrir le fichier: '%-.200s' (Errcode: %d)" + ger "Kann Datei '%-.200s' nicht öffnen (Fehler: %d)" + greek "Δεν είναι δυνατό να ανοιχτεί το αÏχείο: '%-.200s' (κωδικός λάθους: %d)" + hun "A '%-.200s' file nem nyithato meg (hibakod: %d)" + ita "Impossibile aprire il file: '%-.200s' (errno: %d)" + jpn "'%-.200s' ファイルを開ã事ãŒã§ãã¾ã›ã‚“ (errno: %d)" + kor "í™”ì¼ì„ ì—´ì§€ 못했습니다.: '%-.200s' (ì—러번호: %d)" + nor "Kan ikke Ã¥pne fila: '%-.200s' (Feilkode: %d)" + norwegian-ny "Kan ikkje Ã¥pne fila: '%-.200s' (Feilkode: %d)" + pol "Nie można otworzyć pliku: '%-.200s' (Kod błędu: %d)" + por "Não pode abrir o arquivo '%-.200s' (erro no. %d)" + rum "Nu pot sa deschid fisierul: '%-.200s' (Eroare: %d)" + rus "Ðевозможно открыть файл: '%-.200s' (ошибка: %d)" + serbian "Ne mogu da otvorim file: '%-.200s' (errno: %d)" + slo "Nemôžem otvoriÅ¥ súbor: '%-.200s' (chybový kód: %d)" + spa "No puedo abrir archivo: '%-.200s' (Error: %d)" + swe "Kan inte använda '%-.200s' (Felkod: %d)" + ukr "Ðе можу відкрити файл: '%-.200s' (помилка: %d)" +ER_FILE_NOT_FOUND + cze "Nemohu naj-Bít soubor '%-.200s' (chybový kód: %d)" + dan "Kan ikke finde fila: '%-.200s' (Fejlkode: %d)" + nla "Kan de file: '%-.200s' niet vinden (Errcode: %d)" + eng "Can't find file: '%-.200s' (errno: %d)" + jps "'%-.200s' ファイルを見付ã‘る事ãŒã§ãã¾ã›ã‚“.(errno: %d)", + est "Ei suuda leida faili '%-.200s' (veakood: %d)" + fre "Ne peut trouver le fichier: '%-.200s' (Errcode: %d)" + ger "Kann Datei '%-.200s' nicht finden (Fehler: %d)" + greek "Δεν βÏέθηκε το αÏχείο: '%-.200s' (κωδικός λάθους: %d)" + hun "A(z) '%-.200s' file nem talalhato (hibakod: %d)" + ita "Impossibile trovare il file: '%-.200s' (errno: %d)" + jpn "'%-.200s' ファイルを見付ã‘る事ãŒã§ãã¾ã›ã‚“.(errno: %d)" + kor "í™”ì¼ì„ 찾지 못했습니다.: '%-.200s' (ì—러번호: %d)" + nor "Kan ikke finne fila: '%-.200s' (Feilkode: %d)" + norwegian-ny "Kan ikkje finne fila: '%-.200s' (Feilkode: %d)" + pol "Nie można znaleĽć pliku: '%-.200s' (Kod błędu: %d)" + por "Não pode encontrar o arquivo '%-.200s' (erro no. %d)" + rum "Nu pot sa gasesc fisierul: '%-.200s' (Eroare: %d)" + rus "Ðевозможно найти файл: '%-.200s' (ошибка: %d)" + serbian "Ne mogu da pronaÄ‘em file: '%-.200s' (errno: %d)" + slo "Nemôžem nájsÅ¥ súbor: '%-.200s' (chybový kód: %d)" + spa "No puedo encontrar archivo: '%-.200s' (Error: %d)" + swe "Hittar inte filen '%-.200s' (Felkod: %d)" + ukr "Ðе можу знайти файл: '%-.200s' (помилка: %d)" +ER_CANT_READ_DIR + cze "Nemohu -BÄíst adresář '%-.192s' (chybový kód: %d)" + dan "Kan ikke læse folder '%-.192s' (Fejlkode: %d)" + nla "Kan de directory niet lezen van '%-.192s' (Errcode: %d)" + eng "Can't read dir of '%-.192s' (errno: %d)" + jps "'%-.192s' ディレクトリãŒèª­ã‚ã¾ã›ã‚“.(errno: %d)", + est "Ei suuda lugeda kataloogi '%-.192s' (veakood: %d)" + fre "Ne peut lire le répertoire de '%-.192s' (Errcode: %d)" + ger "Verzeichnis von '%-.192s' nicht lesbar (Fehler: %d)" + greek "Δεν είναι δυνατό να διαβαστεί ο φάκελλος του '%-.192s' (κωδικός λάθους: %d)" + hun "A(z) '%-.192s' konyvtar nem olvashato. (hibakod: %d)" + ita "Impossibile leggere la directory di '%-.192s' (errno: %d)" + jpn "'%-.192s' ディレクトリãŒèª­ã‚ã¾ã›ã‚“.(errno: %d)" + kor "'%-.192s'디렉토리를 ì½ì§€ 못했습니다. (ì—러번호: %d)" + nor "Kan ikke lese katalogen '%-.192s' (Feilkode: %d)" + norwegian-ny "Kan ikkje lese katalogen '%-.192s' (Feilkode: %d)" + pol "Nie można odczytać katalogu '%-.192s' (Kod błędu: %d)" + por "Não pode ler o diretório de '%-.192s' (erro no. %d)" + rum "Nu pot sa citesc directorul '%-.192s' (Eroare: %d)" + rus "Ðевозможно прочитать каталог '%-.192s' (ошибка: %d)" + serbian "Ne mogu da proÄitam direktorijum '%-.192s' (errno: %d)" + slo "Nemôžem ÄítaÅ¥ adresár '%-.192s' (chybový kód: %d)" + spa "No puedo leer el directorio de '%-.192s' (Error: %d)" + swe "Kan inte läsa frÃ¥n bibliotek '%-.192s' (Felkod: %d)" + ukr "Ðе можу прочитати теку '%-.192s' (помилка: %d)" +ER_CANT_SET_WD + cze "Nemohu zm-BÄ›nit adresář na '%-.192s' (chybový kód: %d)" + dan "Kan ikke skifte folder til '%-.192s' (Fejlkode: %d)" + nla "Kan de directory niet veranderen naar '%-.192s' (Errcode: %d)" + eng "Can't change dir to '%-.192s' (errno: %d)" + jps "'%-.192s' ディレクトリ㫠chdir ã§ãã¾ã›ã‚“.(errno: %d)", + est "Ei suuda siseneda kataloogi '%-.192s' (veakood: %d)" + fre "Ne peut changer le répertoire pour '%-.192s' (Errcode: %d)" + ger "Kann nicht in das Verzeichnis '%-.192s' wechseln (Fehler: %d)" + greek "ΑδÏνατη η αλλαγή του Ï„Ïέχοντος καταλόγου σε '%-.192s' (κωδικός λάθους: %d)" + hun "Konyvtarvaltas nem lehetseges a(z) '%-.192s'-ba. (hibakod: %d)" + ita "Impossibile cambiare la directory in '%-.192s' (errno: %d)" + jpn "'%-.192s' ディレクトリ㫠chdir ã§ãã¾ã›ã‚“.(errno: %d)" + kor "'%-.192s'디렉토리로 ì´ë™í•  수 없었습니다. (ì—러번호: %d)" + nor "Kan ikke skifte katalog til '%-.192s' (Feilkode: %d)" + norwegian-ny "Kan ikkje skifte katalog til '%-.192s' (Feilkode: %d)" + pol "Nie można zmienić katalogu na '%-.192s' (Kod błędu: %d)" + por "Não pode mudar para o diretório '%-.192s' (erro no. %d)" + rum "Nu pot sa schimb directorul '%-.192s' (Eroare: %d)" + rus "Ðевозможно перейти в каталог '%-.192s' (ошибка: %d)" + serbian "Ne mogu da promenim direktorijum na '%-.192s' (errno: %d)" + slo "Nemôžem vojsÅ¥ do adresára '%-.192s' (chybový kód: %d)" + spa "No puedo cambiar al directorio de '%-.192s' (Error: %d)" + swe "Kan inte byta till '%-.192s' (Felkod: %d)" + ukr "Ðе можу перейти у теку '%-.192s' (помилка: %d)" +ER_CHECKREAD + cze "Z-Báznam byl zmÄ›nÄ›n od posledního Ätení v tabulce '%-.192s'" + dan "Posten er ændret siden sidste læsning '%-.192s'" + nla "Record is veranderd sinds de laatste lees activiteit in de tabel '%-.192s'" + eng "Record has changed since last read in table '%-.192s'" + est "Kirje tabelis '%-.192s' on muutunud viimasest lugemisest saadik" + fre "Enregistrement modifié depuis sa dernière lecture dans la table '%-.192s'" + ger "Datensatz hat sich seit dem letzten Zugriff auf Tabelle '%-.192s' geändert" + greek "Η εγγÏαφή έχει αλλάξει από την τελευταία φοÏά που ανασÏÏθηκε από τον πίνακα '%-.192s'" + hun "A(z) '%-.192s' tablaban talalhato rekord megvaltozott az utolso olvasas ota" + ita "Il record e` cambiato dall'ultima lettura della tabella '%-.192s'" + kor "í…Œì´ë¸” '%-.192s'ì—서 마지막으로 ì½ì€ 후 Recordê°€ 변경ë˜ì—ˆìŠµë‹ˆë‹¤." + nor "Posten har blitt endret siden den ble lest '%-.192s'" + norwegian-ny "Posten har vorte endra sidan den sist vart lesen '%-.192s'" + pol "Rekord zostaÅ‚ zmieniony od ostaniego odczytania z tabeli '%-.192s'" + por "Registro alterado desde a última leitura da tabela '%-.192s'" + rum "Cimpul a fost schimbat de la ultima citire a tabelei '%-.192s'" + rus "ЗапиÑÑŒ изменилаÑÑŒ Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñ‚Ð° поÑледней выборки в таблице '%-.192s'" + serbian "Slog je promenjen od zadnjeg Äitanja tabele '%-.192s'" + slo "Záznam bol zmenený od posledného Äítania v tabuľke '%-.192s'" + spa "El registro ha cambiado desde la ultima lectura de la tabla '%-.192s'" + swe "Posten har förändrats sedan den lästes i register '%-.192s'" + ukr "Ð—Ð°Ð¿Ð¸Ñ Ð±ÑƒÐ»Ð¾ змінено з чаÑу оÑтаннього Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð· таблиці '%-.192s'" +ER_DISK_FULL + cze "Disk je pln-Bý (%s), Äekám na uvolnÄ›ní nÄ›jakého místa ..." + dan "Ikke mere diskplads (%s). Venter pÃ¥ at fÃ¥ frigjort plads..." + nla "Schijf vol (%s). Aan het wachten totdat er ruimte vrij wordt gemaakt..." + eng "Disk full (%s); waiting for someone to free some space..." + jps "Disk full (%s). 誰ã‹ãŒä½•ã‹ã‚’減らã™ã¾ã§ã¾ã£ã¦ãã ã•ã„...", + est "Ketas täis (%s). Ootame kuni tekib vaba ruumi..." + fre "Disque plein (%s). J'attend que quelqu'un libère de l'espace..." + ger "Festplatte voll (%s). Warte, bis jemand Platz schafft ..." + greek "Δεν υπάÏχει χώÏος στο δίσκο (%s). ΠαÏακαλώ, πεÏιμένετε να ελευθεÏωθεί χώÏος..." + hun "A lemez megtelt (%s)." + ita "Disco pieno (%s). In attesa che qualcuno liberi un po' di spazio..." + jpn "Disk full (%s). 誰ã‹ãŒä½•ã‹ã‚’減らã™ã¾ã§ã¾ã£ã¦ãã ã•ã„..." + kor "Disk full (%s). 다른 ì‚¬ëžŒì´ ì§€ìš¸ë•Œê¹Œì§€ 기다립니다..." + nor "Ikke mer diskplass (%s). Venter pÃ¥ Ã¥ fÃ¥ frigjort plass..." + norwegian-ny "Ikkje meir diskplass (%s). Ventar pÃ¥ Ã¥ fÃ¥ frigjort plass..." + pol "Dysk peÅ‚ny (%s). Oczekiwanie na zwolnienie miejsca..." + por "Disco cheio (%s). Aguardando alguém liberar algum espaço..." + rum "Hard-disk-ul este plin (%s). Astept sa se elibereze ceva spatiu..." + rus "ДиÑк заполнен. (%s). Ожидаем, пока кто-то не уберет поÑле ÑÐµÐ±Ñ Ð¼ÑƒÑор..." + serbian "Disk je pun (%s). ÄŒekam nekoga da doÄ‘e i oslobodi neÅ¡to mesta..." + slo "Disk je plný (%s), Äakám na uvoľnenie miesta..." + spa "Disco lleno (%s). Esperando para que se libere algo de espacio..." + swe "Disken är full (%s). Väntar tills det finns ledigt utrymme..." + ukr "ДиÑк заповнений (%s). Вичикую, доки звільнитьÑÑ Ñ‚Ñ€Ð¾Ñ…Ð¸ міÑцÑ..." +ER_DUP_KEY 23000 + cze "Nemohu zapsat, zdvojen-Bý klÃ­Ä v tabulce '%-.192s'" + dan "Kan ikke skrive, flere ens nøgler i tabellen '%-.192s'" + nla "Kan niet schrijven, dubbele zoeksleutel in tabel '%-.192s'" + eng "Can't write; duplicate key in table '%-.192s'" + jps "table '%-.192s' ã« key ãŒé‡è¤‡ã—ã¦ã„ã¦æ›¸ãã“ã‚ã¾ã›ã‚“", + est "Ei saa kirjutada, korduv võti tabelis '%-.192s'" + fre "Ecriture impossible, doublon dans une clé de la table '%-.192s'" + ger "Kann nicht speichern, Grund: doppelter Schlüssel in Tabelle '%-.192s'" + greek "Δεν είναι δυνατή η καταχώÏηση, η τιμή υπάÏχει ήδη στον πίνακα '%-.192s'" + hun "Irasi hiba, duplikalt kulcs a '%-.192s' tablaban." + ita "Scrittura impossibile: chiave duplicata nella tabella '%-.192s'" + jpn "table '%-.192s' ã« key ãŒé‡è¤‡ã—ã¦ã„ã¦æ›¸ãã“ã‚ã¾ã›ã‚“" + kor "기ë¡í•  수 ì—†ì니다., í…Œì´ë¸” '%-.192s'ì—서 중복 키" + nor "Kan ikke skrive, flere like nøkler i tabellen '%-.192s'" + norwegian-ny "Kan ikkje skrive, flere like nyklar i tabellen '%-.192s'" + pol "Nie można zapisać, powtórzone klucze w tabeli '%-.192s'" + por "Não pode gravar. Chave duplicada na tabela '%-.192s'" + rum "Nu pot sa scriu (can't write), cheie duplicata in tabela '%-.192s'" + rus "Ðевозможно произвеÑти запиÑÑŒ, дублирующийÑÑ ÐºÐ»ÑŽÑ‡ в таблице '%-.192s'" + serbian "Ne mogu da piÅ¡em poÅ¡to postoji duplirani kljuÄ u tabeli '%-.192s'" + slo "Nemôžem zapísaÅ¥, duplikát kľúÄa v tabuľke '%-.192s'" + spa "No puedo escribir, clave duplicada en la tabla '%-.192s'" + swe "Kan inte skriva, dubbel söknyckel i register '%-.192s'" + ukr "Ðе можу запиÑати, дублюючийÑÑ ÐºÐ»ÑŽÑ‡ в таблиці '%-.192s'" +ER_ERROR_ON_CLOSE + cze "Chyba p-BÅ™i zavírání '%-.192s' (chybový kód: %d)" + dan "Fejl ved lukning af '%-.192s' (Fejlkode: %d)" + nla "Fout bij het sluiten van '%-.192s' (Errcode: %d)" + eng "Error on close of '%-.192s' (errno: %d)" + est "Viga faili '%-.192s' sulgemisel (veakood: %d)" + fre "Erreur a la fermeture de '%-.192s' (Errcode: %d)" + ger "Fehler beim Schließen von '%-.192s' (Fehler: %d)" + greek "ΠαÏουσιάστηκε Ï€Ïόβλημα κλείνοντας το '%-.192s' (κωδικός λάθους: %d)" + hun "Hiba a(z) '%-.192s' zarasakor. (hibakod: %d)" + ita "Errore durante la chiusura di '%-.192s' (errno: %d)" + kor "'%-.192s'닫는 중 ì—러 (ì—러번호: %d)" + nor "Feil ved lukking av '%-.192s' (Feilkode: %d)" + norwegian-ny "Feil ved lukking av '%-.192s' (Feilkode: %d)" + pol "BÅ‚?d podczas zamykania '%-.192s' (Kod błędu: %d)" + por "Erro ao fechar '%-.192s' (erro no. %d)" + rum "Eroare inchizind '%-.192s' (errno: %d)" + rus "Ошибка при закрытии '%-.192s' (ошибка: %d)" + serbian "GreÅ¡ka pri zatvaranju '%-.192s' (errno: %d)" + slo "Chyba pri zatváraní '%-.192s' (chybový kód: %d)" + spa "Error en el cierre de '%-.192s' (Error: %d)" + swe "Fick fel vid stängning av '%-.192s' (Felkod: %d)" + ukr "Ðе можу закрити '%-.192s' (помилка: %d)" +ER_ERROR_ON_READ + cze "Chyba p-BÅ™i Ätení souboru '%-.200s' (chybový kód: %d)" + dan "Fejl ved læsning af '%-.200s' (Fejlkode: %d)" + nla "Fout bij het lezen van file '%-.200s' (Errcode: %d)" + eng "Error reading file '%-.200s' (errno: %d)" + jps "'%-.200s' ファイルã®èª­ã¿è¾¼ã¿ã‚¨ãƒ©ãƒ¼ (errno: %d)", + est "Viga faili '%-.200s' lugemisel (veakood: %d)" + fre "Erreur en lecture du fichier '%-.200s' (Errcode: %d)" + ger "Fehler beim Lesen der Datei '%-.200s' (Fehler: %d)" + greek "ΠÏόβλημα κατά την ανάγνωση του αÏχείου '%-.200s' (κωδικός λάθους: %d)" + hun "Hiba a '%-.200s'file olvasasakor. (hibakod: %d)" + ita "Errore durante la lettura del file '%-.200s' (errno: %d)" + jpn "'%-.200s' ファイルã®èª­ã¿è¾¼ã¿ã‚¨ãƒ©ãƒ¼ (errno: %d)" + kor "'%-.200s'í™”ì¼ ì½ê¸° ì—러 (ì—러번호: %d)" + nor "Feil ved lesing av '%-.200s' (Feilkode: %d)" + norwegian-ny "Feil ved lesing av '%-.200s' (Feilkode: %d)" + pol "BÅ‚?d podczas odczytu pliku '%-.200s' (Kod błędu: %d)" + por "Erro ao ler arquivo '%-.200s' (erro no. %d)" + rum "Eroare citind fisierul '%-.200s' (errno: %d)" + rus "Ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° '%-.200s' (ошибка: %d)" + serbian "GreÅ¡ka pri Äitanju file-a '%-.200s' (errno: %d)" + slo "Chyba pri Äítaní súboru '%-.200s' (chybový kód: %d)" + spa "Error leyendo el fichero '%-.200s' (Error: %d)" + swe "Fick fel vid läsning av '%-.200s' (Felkod %d)" + ukr "Ðе можу прочитати файл '%-.200s' (помилка: %d)" +ER_ERROR_ON_RENAME + cze "Chyba p-BÅ™i pÅ™ejmenování '%-.210s' na '%-.210s' (chybový kód: %d)" + dan "Fejl ved omdøbning af '%-.210s' til '%-.210s' (Fejlkode: %d)" + nla "Fout bij het hernoemen van '%-.210s' naar '%-.210s' (Errcode: %d)" + eng "Error on rename of '%-.210s' to '%-.210s' (errno: %d)" + jps "'%-.210s' ã‚’ '%-.210s' ã« rename ã§ãã¾ã›ã‚“ (errno: %d)", + est "Viga faili '%-.210s' ümbernimetamisel '%-.210s'-ks (veakood: %d)" + fre "Erreur en renommant '%-.210s' en '%-.210s' (Errcode: %d)" + ger "Fehler beim Umbenennen von '%-.210s' in '%-.210s' (Fehler: %d)" + greek "ΠÏόβλημα κατά την μετονομασία του αÏχείου '%-.210s' to '%-.210s' (κωδικός λάθους: %d)" + hun "Hiba a '%-.210s' file atnevezesekor '%-.210s'. (hibakod: %d)" + ita "Errore durante la rinominazione da '%-.210s' a '%-.210s' (errno: %d)" + jpn "'%-.210s' ã‚’ '%-.210s' ã« rename ã§ãã¾ã›ã‚“ (errno: %d)" + kor "'%-.210s'를 '%-.210s'로 ì´ë¦„ 변경중 ì—러 (ì—러번호: %d)" + nor "Feil ved omdøping av '%-.210s' til '%-.210s' (Feilkode: %d)" + norwegian-ny "Feil ved omdøyping av '%-.210s' til '%-.210s' (Feilkode: %d)" + pol "BÅ‚?d podczas zmieniania nazwy '%-.210s' na '%-.210s' (Kod błędu: %d)" + por "Erro ao renomear '%-.210s' para '%-.210s' (erro no. %d)" + rum "Eroare incercind sa renumesc '%-.210s' in '%-.210s' (errno: %d)" + rus "Ошибка при переименовании '%-.210s' в '%-.210s' (ошибка: %d)" + serbian "GreÅ¡ka pri promeni imena '%-.210s' na '%-.210s' (errno: %d)" + slo "Chyba pri premenovávaní '%-.210s' na '%-.210s' (chybový kód: %d)" + spa "Error en el renombrado de '%-.210s' a '%-.210s' (Error: %d)" + swe "Kan inte byta namn frÃ¥n '%-.210s' till '%-.210s' (Felkod: %d)" + ukr "Ðе можу перейменувати '%-.210s' у '%-.210s' (помилка: %d)" +ER_ERROR_ON_WRITE + cze "Chyba p-BÅ™i zápisu do souboru '%-.200s' (chybový kód: %d)" + dan "Fejl ved skriving av filen '%-.200s' (Fejlkode: %d)" + nla "Fout bij het wegschrijven van file '%-.200s' (Errcode: %d)" + eng "Error writing file '%-.200s' (errno: %d)" + jps "'%-.200s' ファイルを書ã事ãŒã§ãã¾ã›ã‚“ (errno: %d)", + est "Viga faili '%-.200s' kirjutamisel (veakood: %d)" + fre "Erreur d'écriture du fichier '%-.200s' (Errcode: %d)" + ger "Fehler beim Speichern der Datei '%-.200s' (Fehler: %d)" + greek "ΠÏόβλημα κατά την αποθήκευση του αÏχείου '%-.200s' (κωδικός λάθους: %d)" + hun "Hiba a '%-.200s' file irasakor. (hibakod: %d)" + ita "Errore durante la scrittura del file '%-.200s' (errno: %d)" + jpn "'%-.200s' ファイルを書ã事ãŒã§ãã¾ã›ã‚“ (errno: %d)" + kor "'%-.200s'í™”ì¼ ê¸°ë¡ ì¤‘ ì—러 (ì—러번호: %d)" + nor "Feil ved skriving av fila '%-.200s' (Feilkode: %d)" + norwegian-ny "Feil ved skriving av fila '%-.200s' (Feilkode: %d)" + pol "BÅ‚?d podczas zapisywania pliku '%-.200s' (Kod błędu: %d)" + por "Erro ao gravar arquivo '%-.200s' (erro no. %d)" + rum "Eroare scriind fisierul '%-.200s' (errno: %d)" + rus "Ошибка запиÑи в файл '%-.200s' (ошибка: %d)" + serbian "GreÅ¡ka pri upisu '%-.200s' (errno: %d)" + slo "Chyba pri zápise do súboru '%-.200s' (chybový kód: %d)" + spa "Error escribiendo el archivo '%-.200s' (Error: %d)" + swe "Fick fel vid skrivning till '%-.200s' (Felkod %d)" + ukr "Ðе можу запиÑати файл '%-.200s' (помилка: %d)" +ER_FILE_USED + cze "'%-.192s' je zam-BÄen proti zmÄ›nám" + dan "'%-.192s' er lÃ¥st mod opdateringer" + nla "'%-.192s' is geblokeerd tegen veranderingen" + eng "'%-.192s' is locked against change" + jps "'%-.192s' ã¯ãƒ­ãƒƒã‚¯ã•れã¦ã„ã¾ã™", + est "'%-.192s' on lukustatud muudatuste vastu" + fre "'%-.192s' est verrouillé contre les modifications" + ger "'%-.192s' ist für Änderungen gesperrt" + greek "'%-.192s' δεν επιτÏέπονται αλλαγές" + hun "'%-.192s' a valtoztatas ellen zarolva" + ita "'%-.192s' e` soggetto a lock contro i cambiamenti" + jpn "'%-.192s' ã¯ãƒ­ãƒƒã‚¯ã•れã¦ã„ã¾ã™" + kor "'%-.192s'ê°€ 변경할 수 ì—†ë„ë¡ ìž ê²¨ìžˆì니다." + nor "'%-.192s' er lÃ¥st mot oppdateringer" + norwegian-ny "'%-.192s' er lÃ¥st mot oppdateringar" + pol "'%-.192s' jest zablokowany na wypadek zmian" + por "'%-.192s' está com travamento contra alterações" + rum "'%-.192s' este blocat pentry schimbari (loccked against change)" + rus "'%-.192s' заблокирован Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹" + serbian "'%-.192s' je zakljuÄan za upis" + slo "'%-.192s' je zamknutý proti zmenám" + spa "'%-.192s' esta bloqueado contra cambios" + swe "'%-.192s' är lÃ¥st mot användning" + ukr "'%-.192s' заблокований на внеÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½" +ER_FILSORT_ABORT + cze "T-BřídÄ›ní pÅ™eruÅ¡eno" + dan "Sortering afbrudt" + nla "Sorteren afgebroken" + eng "Sort aborted" + jps "Sort 中断", + est "Sorteerimine katkestatud" + fre "Tri alphabétique abandonné" + ger "Sortiervorgang abgebrochen" + greek "Η διαδικασία ταξινόμισης ακυÏώθηκε" + hun "Sikertelen rendezes" + ita "Operazione di ordinamento abbandonata" + jpn "Sort 中断" + kor "소트가 중단ë˜ì—ˆìŠµë‹ˆë‹¤." + nor "Sortering avbrutt" + norwegian-ny "Sortering avbrote" + pol "Sortowanie przerwane" + por "Ordenação abortada" + rum "Sortare intrerupta" + rus "Сортировка прервана" + serbian "Sortiranje je prekinuto" + slo "Triedenie preruÅ¡ené" + spa "Ordeancion cancelada" + swe "Sorteringen avbruten" + ukr "Ð¡Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÑ€Ð²Ð°Ð½Ð¾" +ER_FORM_NOT_FOUND + cze "Pohled '%-.192s' pro '%-.192s' neexistuje" + dan "View '%-.192s' eksisterer ikke for '%-.192s'" + nla "View '%-.192s' bestaat niet voor '%-.192s'" + eng "View '%-.192s' doesn't exist for '%-.192s'" + jps "View '%-.192s' ㌠'%-.192s' ã«å®šç¾©ã•れã¦ã„ã¾ã›ã‚“", + est "Vaade '%-.192s' ei eksisteeri '%-.192s' jaoks" + fre "La vue (View) '%-.192s' n'existe pas pour '%-.192s'" + ger "View '%-.192s' existiert für '%-.192s' nicht" + greek "Το View '%-.192s' δεν υπάÏχει για '%-.192s'" + hun "A(z) '%-.192s' nezet nem letezik a(z) '%-.192s'-hoz" + ita "La view '%-.192s' non esiste per '%-.192s'" + jpn "View '%-.192s' ㌠'%-.192s' ã«å®šç¾©ã•れã¦ã„ã¾ã›ã‚“" + kor "ë·° '%-.192s'ê°€ '%-.192s'ì—서는 존재하지 않ì니다." + nor "View '%-.192s' eksisterer ikke for '%-.192s'" + norwegian-ny "View '%-.192s' eksisterar ikkje for '%-.192s'" + pol "Widok '%-.192s' nie istnieje dla '%-.192s'" + por "Visão '%-.192s' não existe para '%-.192s'" + rum "View '%-.192s' nu exista pentru '%-.192s'" + rus "ПредÑтавление '%-.192s' не ÑущеÑтвует Ð´Ð»Ñ '%-.192s'" + serbian "View '%-.192s' ne postoji za '%-.192s'" + slo "Pohľad '%-.192s' neexistuje pre '%-.192s'" + spa "La vista '%-.192s' no existe para '%-.192s'" + swe "Formulär '%-.192s' finns inte i '%-.192s'" + ukr "ВиглÑд '%-.192s' не Ñ–Ñнує Ð´Ð»Ñ '%-.192s'" +ER_GET_ERRNO + cze "Obsluha tabulky vr-Bátila chybu %d" + dan "Modtog fejl %d fra tabel hÃ¥ndteringen" + nla "Fout %d van tabel handler" + eng "Got error %d from storage engine" + est "Tabeli handler tagastas vea %d" + fre "Reçu l'erreur %d du handler de la table" + ger "Fehler %d (Speicher-Engine)" + greek "Ελήφθη μήνυμα λάθους %d από τον χειÏιστή πίνακα (table handler)" + hun "%d hibajelzes a tablakezelotol" + ita "Rilevato l'errore %d dal gestore delle tabelle" + jpn "Got error %d from table handler" + kor "í…Œì´ë¸” handlerì—서 %d ì—러가 ë°œìƒ í•˜ì˜€ìŠµë‹ˆë‹¤." + nor "Mottok feil %d fra tabell hÃ¥ndterer" + norwegian-ny "Mottok feil %d fra tabell handterar" + pol "Otrzymano bÅ‚?d %d z obsÅ‚ugi tabeli" + por "Obteve erro %d no manipulador de tabelas" + rum "Eroarea %d obtinuta din handlerul tabelei" + rus "Получена ошибка %d от обработчика таблиц" + serbian "Handler tabela je vratio greÅ¡ku %d" + slo "Obsluha tabuľky vrátila chybu %d" + spa "Error %d desde el manejador de la tabla" + swe "Fick felkod %d frÃ¥n databashanteraren" + ukr "Отримано помилку %d від деÑкриптора таблиці" +ER_ILLEGAL_HA + cze "Obsluha tabulky '%-.192s' nem-Bá tento parametr" + dan "Denne mulighed eksisterer ikke for tabeltypen '%-.192s'" + nla "Tabel handler voor '%-.192s' heeft deze optie niet" + eng "Table storage engine for '%-.192s' doesn't have this option" + est "Tabeli '%-.192s' handler ei toeta antud operatsiooni" + fre "Le handler de la table '%-.192s' n'a pas cette option" + ger "Diese Option gibt es nicht (Speicher-Engine für '%-.192s')" + greek "Ο χειÏιστής πίνακα (table handler) για '%-.192s' δεν διαθέτει αυτή την επιλογή" + hun "A(z) '%-.192s' tablakezelonek nincs ilyen opcioja" + ita "Il gestore delle tabelle per '%-.192s' non ha questa opzione" + jpn "Table handler for '%-.192s' doesn't have this option" + kor "'%-.192s'ì˜ í…Œì´ë¸” handler는 ì´ëŸ¬í•œ ì˜µì…˜ì„ ì œê³µí•˜ì§€ 않ì니다." + nor "Tabell hÃ¥ndtereren for '%-.192s' har ikke denne muligheten" + norwegian-ny "Tabell hÃ¥ndteraren for '%-.192s' har ikkje denne moglegheita" + pol "ObsÅ‚uga tabeli '%-.192s' nie posiada tej opcji" + por "Manipulador de tabela para '%-.192s' não tem esta opção" + rum "Handlerul tabelei pentru '%-.192s' nu are aceasta optiune" + rus "Обработчик таблицы '%-.192s' не поддерживает Ñту возможноÑть" + serbian "Handler tabela za '%-.192s' nema ovu opciju" + slo "Obsluha tabuľky '%-.192s' nemá tento parameter" + spa "El manejador de la tabla de '%-.192s' no tiene esta opcion" + swe "Tabellhanteraren for tabell '%-.192s' stödjer ej detta" + ukr "ДеÑкриптор таблиці '%-.192s' не має цієї влаÑтивоÑті" +ER_KEY_NOT_FOUND + cze "Nemohu naj-Bít záznam v '%-.192s'" + dan "Kan ikke finde posten i '%-.192s'" + nla "Kan record niet vinden in '%-.192s'" + eng "Can't find record in '%-.192s'" + jps "'%-.192s'ã®ãªã‹ã«ãƒ¬ã‚³ãƒ¼ãƒ‰ãŒè¦‹ä»˜ã‹ã‚Šã¾ã›ã‚“", + est "Ei suuda leida kirjet '%-.192s'-s" + fre "Ne peut trouver l'enregistrement dans '%-.192s'" + ger "Kann Datensatz in '%-.192s' nicht finden" + greek "ΑδÏνατη η ανεÏÏεση εγγÏαφής στο '%-.192s'" + hun "Nem talalhato a rekord '%-.192s'-ben" + ita "Impossibile trovare il record in '%-.192s'" + jpn "'%-.192s'ã®ãªã‹ã«ãƒ¬ã‚³ãƒ¼ãƒ‰ãŒè¦‹ä»˜ã‹ã‚Šã¾ã›ã‚“" + kor "'%-.192s'ì—서 레코드를 ì°¾ì„ ìˆ˜ ì—†ì니다." + nor "Kan ikke finne posten i '%-.192s'" + norwegian-ny "Kan ikkje finne posten i '%-.192s'" + pol "Nie można znaleĽć rekordu w '%-.192s'" + por "Não pode encontrar registro em '%-.192s'" + rum "Nu pot sa gasesc recordul in '%-.192s'" + rus "Ðевозможно найти запиÑÑŒ в '%-.192s'" + serbian "Ne mogu da pronaÄ‘em slog u '%-.192s'" + slo "Nemôžem nájsÅ¥ záznam v '%-.192s'" + spa "No puedo encontrar el registro en '%-.192s'" + swe "Hittar inte posten '%-.192s'" + ukr "Ðе можу запиÑати у '%-.192s'" +ER_NOT_FORM_FILE + cze "Nespr-Bávná informace v souboru '%-.200s'" + dan "Forkert indhold i: '%-.200s'" + nla "Verkeerde info in file: '%-.200s'" + eng "Incorrect information in file: '%-.200s'" + jps "ファイル '%-.200s' ã® info ãŒé–“é•ã£ã¦ã„るよã†ã§ã™", + est "Vigane informatsioon failis '%-.200s'" + fre "Information erronnée dans le fichier: '%-.200s'" + ger "Falsche Information in Datei '%-.200s'" + greek "Λάθος πληÏοφοÏίες στο αÏχείο: '%-.200s'" + hun "Ervenytelen info a file-ban: '%-.200s'" + ita "Informazione errata nel file: '%-.200s'" + jpn "ファイル '%-.200s' ã® info ãŒé–“é•ã£ã¦ã„るよã†ã§ã™" + kor "í™”ì¼ì˜ 부정확한 ì •ë³´: '%-.200s'" + nor "Feil informasjon i filen: '%-.200s'" + norwegian-ny "Feil informasjon i fila: '%-.200s'" + pol "NiewÅ‚a?ciwa informacja w pliku: '%-.200s'" + por "Informação incorreta no arquivo '%-.200s'" + rum "Informatie incorecta in fisierul: '%-.200s'" + rus "ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð² файле '%-.200s'" + serbian "PogreÅ¡na informacija u file-u: '%-.200s'" + slo "Nesprávna informácia v súbore: '%-.200s'" + spa "Informacion erronea en el archivo: '%-.200s'" + swe "Felaktig fil: '%-.200s'" + ukr "Хибна Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ñƒ файлі: '%-.200s'" +ER_NOT_KEYFILE + cze "Nespr-Bávný klÃ­Ä pro tabulku '%-.200s'; pokuste se ho opravit" + dan "Fejl i indeksfilen til tabellen '%-.200s'; prøv at reparere den" + nla "Verkeerde zoeksleutel file voor tabel: '%-.200s'; probeer het te repareren" + eng "Incorrect key file for table '%-.200s'; try to repair it" + jps "'%-.200s' テーブル㮠key file ãŒé–“é•ã£ã¦ã„るよã†ã§ã™. 修復をã—ã¦ãã ã•ã„", + est "Tabeli '%-.200s' võtmefail on vigane; proovi seda parandada" + fre "Index corrompu dans la table: '%-.200s'; essayez de le réparer" + ger "Fehlerhafte Index-Datei für Tabelle '%-.200s'; versuche zu reparieren" + greek "Λάθος αÏχείο ταξινόμισης (key file) για τον πίνακα: '%-.200s'; ΠαÏακαλώ, διοÏθώστε το!" + hun "Ervenytelen kulcsfile a tablahoz: '%-.200s'; probalja kijavitani!" + ita "File chiave errato per la tabella : '%-.200s'; prova a riparalo" + jpn "'%-.200s' テーブル㮠key file ãŒé–“é•ã£ã¦ã„るよã†ã§ã™. 修復をã—ã¦ãã ã•ã„" + kor "'%-.200s' í…Œì´ë¸”ì˜ ë¶€ì •í™•í•œ 키 존재. 수정하시오!" + nor "Tabellen '%-.200s' har feil i nøkkelfilen; forsøk Ã¥ reparer den" + norwegian-ny "Tabellen '%-.200s' har feil i nykkelfila; prøv Ã¥ reparere den" + pol "NiewÅ‚a?ciwy plik kluczy dla tabeli: '%-.200s'; spróbuj go naprawić" + por "Arquivo de índice incorreto para tabela '%-.200s'; tente repará-lo" + rum "Cheia fisierului incorecta pentru tabela: '%-.200s'; incearca s-o repari" + rus "Ðекорректный индекÑный файл Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹: '%-.200s'. Попробуйте воÑÑтановить его" + serbian "PogreÅ¡an key file za tabelu: '%-.200s'; probajte da ga ispravite" + slo "Nesprávny kÄ¾ÃºÄ pre tabuľku '%-.200s'; pokúste sa ho opraviÅ¥" + spa "Clave de archivo erronea para la tabla: '%-.200s'; intente repararlo" + swe "Fatalt fel vid hantering av register '%-.200s'; kör en reparation" + ukr "Хибний файл ключей Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ–: '%-.200s'; Спробуйте його відновити" +ER_OLD_KEYFILE + cze "Star-Bý klíÄový soubor pro '%-.192s'; opravte ho." + dan "Gammel indeksfil for tabellen '%-.192s'; reparer den" + nla "Oude zoeksleutel file voor tabel '%-.192s'; repareer het!" + eng "Old key file for table '%-.192s'; repair it!" + jps "'%-.192s' テーブルã¯å¤ã„å½¢å¼ã® key file ã®ã‚ˆã†ã§ã™; 修復をã—ã¦ãã ã•ã„", + est "Tabeli '%-.192s' võtmefail on aegunud; paranda see!" + fre "Vieux fichier d'index pour la table '%-.192s'; réparez le!" + ger "Alte Index-Datei für Tabelle '%-.192s'. Bitte reparieren" + greek "Παλαιό αÏχείο ταξινόμισης (key file) για τον πίνακα '%-.192s'; ΠαÏακαλώ, διοÏθώστε το!" + hun "Regi kulcsfile a '%-.192s'tablahoz; probalja kijavitani!" + ita "File chiave vecchio per la tabella '%-.192s'; riparalo!" + jpn "'%-.192s' テーブルã¯å¤ã„å½¢å¼ã® key file ã®ã‚ˆã†ã§ã™; 修復をã—ã¦ãã ã•ã„" + kor "'%-.192s' í…Œì´ë¸”ì˜ ì´ì „ë²„ì ¼ì˜ í‚¤ 존재. 수정하시오!" + nor "Gammel nøkkelfil for tabellen '%-.192s'; reparer den!" + norwegian-ny "Gammel nykkelfil for tabellen '%-.192s'; reparer den!" + pol "Plik kluczy dla tabeli '%-.192s' jest starego typu; napraw go!" + por "Arquivo de índice desatualizado para tabela '%-.192s'; repare-o!" + rum "Cheia fisierului e veche pentru tabela '%-.192s'; repar-o!" + rus "Старый индекÑный файл Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹ '%-.192s'; отремонтируйте его!" + serbian "Zastareo key file za tabelu '%-.192s'; ispravite ga" + slo "Starý kľúÄový súbor pre '%-.192s'; opravte ho!" + spa "Clave de archivo antigua para la tabla '%-.192s'; reparelo!" + swe "Gammal nyckelfil '%-.192s'; reparera registret" + ukr "Старий файл ключей Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– '%-.192s'; Відновіть його!" +ER_OPEN_AS_READONLY + cze "'%-.192s' je jen pro -BÄtení" + dan "'%-.192s' er skrivebeskyttet" + nla "'%-.192s' is alleen leesbaar" + eng "Table '%-.192s' is read only" + jps "'%-.192s' ã¯èª­ã¿è¾¼ã¿å°‚用ã§ã™", + est "Tabel '%-.192s' on ainult lugemiseks" + fre "'%-.192s' est en lecture seulement" + ger "Tabelle '%-.192s' ist nur lesbar" + greek "'%-.192s' επιτÏέπεται μόνο η ανάγνωση" + hun "'%-.192s' irasvedett" + ita "'%-.192s' e` di sola lettura" + jpn "'%-.192s' ã¯èª­ã¿è¾¼ã¿å°‚用ã§ã™" + kor "í…Œì´ë¸” '%-.192s'는 ì½ê¸°ì „ìš© 입니다." + nor "'%-.192s' er skrivebeskyttet" + norwegian-ny "'%-.192s' er skrivetryggja" + pol "'%-.192s' jest tylko do odczytu" + por "Tabela '%-.192s' é somente para leitura" + rum "Tabela '%-.192s' e read-only" + rus "Таблица '%-.192s' предназначена только Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ" + serbian "Tabelu '%-.192s' je dozvoljeno samo Äitati" + slo "'%-.192s' is ÄítaÅ¥ only" + spa "'%-.192s' es de solo lectura" + swe "'%-.192s' är skyddad mot förändring" + ukr "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ '%-.192s' тільки Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ" +ER_OUTOFMEMORY HY001 S1001 + cze "M-Bálo pamÄ›ti. PÅ™estartujte daemona a zkuste znovu (je potÅ™eba %d bytů)" + dan "Ikke mere hukommelse. Genstart serveren og prøv igen (mangler %d bytes)" + nla "Geen geheugen meer. Herstart server en probeer opnieuw (%d bytes nodig)" + eng "Out of memory; restart server and try again (needed %d bytes)" + jps "Out of memory. デーモンをリスタートã—ã¦ã¿ã¦ãã ã•ã„ (%d bytes å¿…è¦)", + est "Mälu sai otsa. Proovi MariaDB uuesti käivitada (puudu jäi %d baiti)" + fre "Manque de mémoire. Redémarrez le démon et ré-essayez (%d octets nécessaires)" + ger "Kein Speicher vorhanden (%d Bytes benötigt). Bitte Server neu starten" + greek "Δεν υπάÏχει διαθέσιμη μνήμη. ΠÏοσπαθήστε πάλι, επανεκινώντας τη διαδικασία (demon) (χÏειάζονται %d bytes)" + hun "Nincs eleg memoria. Inditsa ujra a demont, es probalja ismet. (%d byte szukseges.)" + ita "Memoria esaurita. Fai ripartire il demone e riprova (richiesti %d bytes)" + jpn "Out of memory. デーモンをリスタートã—ã¦ã¿ã¦ãã ã•ã„ (%d bytes å¿…è¦)" + kor "Out of memory. ë°ëª¬ì„ 재 실행 후 다시 시작하시오 (needed %d bytes)" + nor "Ikke mer minne. Star pÃ¥ nytt tjenesten og prøv igjen (trengte %d byter)" + norwegian-ny "Ikkje meir minne. Start pÃ¥ nytt tenesten og prøv igjen (trengte %d bytar)" + pol "Zbyt maÅ‚o pamiÄ™ci. Uruchom ponownie demona i spróbuj ponownie (potrzeba %d bajtów)" + por "Sem memória. Reinicie o programa e tente novamente (necessita de %d bytes)" + rum "Out of memory. Porneste daemon-ul din nou si incearca inca o data (e nevoie de %d bytes)" + rus "ÐедоÑтаточно памÑти. ПерезапуÑтите Ñервер и попробуйте еще раз (нужно %d байт)" + serbian "Nema memorije. Restartujte MariaDB server i probajte ponovo (potrebno je %d byte-ova)" + slo "Málo pamäti. ReÅ¡tartujte daemona a skúste znova (je potrebných %d bytov)" + spa "Memoria insuficiente. Reinicie el demonio e intentelo otra vez (necesita %d bytes)" + swe "Oväntat slut pÃ¥ minnet, starta om programmet och försök pÃ¥ nytt (Behövde %d bytes)" + ukr "Брак пам'Ñті. РеÑтартуйте Ñервер та Ñпробуйте знову (потрібно %d байтів)" +ER_OUT_OF_SORTMEMORY HY001 S1001 + cze "M-Bálo pamÄ›ti pro třídÄ›ní. ZvyÅ¡te velikost třídícího bufferu" + dan "Ikke mere sorteringshukommelse. Øg sorteringshukommelse (sort buffer size) for serveren" + nla "Geen geheugen om te sorteren. Verhoog de server sort buffer size" + eng "Out of sort memory, consider increasing server sort buffer size" + jps "Out of sort memory. sort buffer size ãŒè¶³ã‚Šãªã„よã†ã§ã™.", + est "Mälu sai sorteerimisel otsa. Suurenda MariaDB-i sorteerimispuhvrit" + fre "Manque de mémoire pour le tri. Augmentez-la." + ger "Kein Speicher zum Sortieren vorhanden. sort_buffer_size sollte im Server erhöht werden" + greek "Δεν υπάÏχει διαθέσιμη μνήμη για ταξινόμιση. Αυξήστε το sort buffer size για τη διαδικασία (demon)" + hun "Nincs eleg memoria a rendezeshez. Novelje a rendezo demon puffermeretet" + ita "Memoria per gli ordinamenti esaurita. Incrementare il 'sort_buffer' al demone" + jpn "Out of sort memory. sort buffer size ãŒè¶³ã‚Šãªã„よã†ã§ã™." + kor "Out of sort memory. daemon sort bufferì˜ í¬ê¸°ë¥¼ ì¦ê°€ì‹œí‚¤ì„¸ìš”" + nor "Ikke mer sorteringsminne. Vurder Ã¥ øke sorteringsminnet (sort buffer size) for tjenesten" + norwegian-ny "Ikkje meir sorteringsminne. Vurder Ã¥ auke sorteringsminnet (sorteringsbuffer storleik) for tenesten" + pol "Zbyt maÅ‚o pamiÄ™ci dla sortowania. ZwiÄ™ksz wielko?ć bufora demona dla sortowania" + por "Não há memória suficiente para ordenação. Considere aumentar o tamanho do retentor (buffer) de ordenação." + rum "Out of memory pentru sortare. Largeste marimea buffer-ului pentru sortare in daemon (sort buffer size)" + rus "ÐедоÑтаточно памÑти Ð´Ð»Ñ Ñортировки. Увеличьте размер буфера Ñортировки на Ñервере" + serbian "Nema memorije za sortiranje. Povećajte veliÄinu sort buffer-a MariaDB server-u" + slo "Málo pamäti pre triedenie, zvýšte veľkosÅ¥ triediaceho bufferu" + spa "Memoria de ordenacion insuficiente. Incremente el tamano del buffer de ordenacion" + swe "Sorteringsbufferten räcker inte till. Kontrollera startparametrarna" + ukr "Брак пам'Ñті Ð´Ð»Ñ ÑортуваннÑ. Треба збільшити розмір буфера ÑÐ¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ Ñервера" +ER_UNEXPECTED_EOF + cze "Neo-BÄekávaný konec souboru pÅ™i Ätení '%-.192s' (chybový kód: %d)" + dan "Uventet afslutning pÃ¥ fil (eof) ved læsning af filen '%-.192s' (Fejlkode: %d)" + nla "Onverwachte eof gevonden tijdens het lezen van file '%-.192s' (Errcode: %d)" + eng "Unexpected EOF found when reading file '%-.192s' (errno: %d)" + jps "'%-.192s' ファイルを読ã¿è¾¼ã¿ä¸­ã« EOF ãŒäºˆæœŸã›ã¬æ‰€ã§ç¾ã‚Œã¾ã—ãŸ. (errno: %d)", + est "Ootamatu faililõpumärgend faili '%-.192s' lugemisel (veakood: %d)" + fre "Fin de fichier inattendue en lisant '%-.192s' (Errcode: %d)" + ger "Unerwartetes Ende beim Lesen der Datei '%-.192s' (Fehler: %d)" + greek "Κατά τη διάÏκεια της ανάγνωσης, βÏέθηκε απÏοσδόκητα το τέλος του αÏχείου '%-.192s' (κωδικός λάθους: %d)" + hun "Varatlan filevege-jel a '%-.192s'olvasasakor. (hibakod: %d)" + ita "Fine del file inaspettata durante la lettura del file '%-.192s' (errno: %d)" + jpn "'%-.192s' ファイルを読ã¿è¾¼ã¿ä¸­ã« EOF ãŒäºˆæœŸã›ã¬æ‰€ã§ç¾ã‚Œã¾ã—ãŸ. (errno: %d)" + kor "'%-.192s' í™”ì¼ì„ ì½ëŠ” ë„중 ìž˜ëª»ëœ eofì„ ë°œê²¬ (ì—러번호: %d)" + nor "Uventet slutt pÃ¥ fil (eof) ved lesing av filen '%-.192s' (Feilkode: %d)" + norwegian-ny "Uventa slutt pÃ¥ fil (eof) ved lesing av fila '%-.192s' (Feilkode: %d)" + pol "Nieoczekiwany 'eof' napotkany podczas czytania z pliku '%-.192s' (Kod błędu: %d)" + por "Encontrado fim de arquivo inesperado ao ler arquivo '%-.192s' (erro no. %d)" + rum "Sfirsit de fisier neasteptat in citirea fisierului '%-.192s' (errno: %d)" + rus "Ðеожиданный конец файла '%-.192s' (ошибка: %d)" + serbian "NeoÄekivani kraj pri Äitanju file-a '%-.192s' (errno: %d)" + slo "NeoÄakávaný koniec súboru pri Äítaní '%-.192s' (chybový kód: %d)" + spa "Inesperado fin de ficheroU mientras leiamos el archivo '%-.192s' (Error: %d)" + swe "Oväntat filslut vid läsning frÃ¥n '%-.192s' (Felkod: %d)" + ukr "Хибний кінець файлу '%-.192s' (помилка: %d)" +ER_CON_COUNT_ERROR 08004 + cze "P-BříliÅ¡ mnoho spojení" + dan "For mange forbindelser (connections)" + nla "Te veel verbindingen" + eng "Too many connections" + jps "接続ãŒå¤šã™ãŽã¾ã™", + est "Liiga palju samaaegseid ühendusi" + fre "Trop de connexions" + ger "Zu viele Verbindungen" + greek "ΥπάÏχουν πολλές συνδέσεις..." + hun "Tul sok kapcsolat" + ita "Troppe connessioni" + jpn "接続ãŒå¤šã™ãŽã¾ã™" + kor "너무 ë§Žì€ ì—°ê²°... max_connectionì„ ì¦ê°€ 시키시오..." + nor "For mange tilkoblinger (connections)" + norwegian-ny "For mange tilkoplingar (connections)" + pol "Zbyt wiele poÅ‚?czeÅ„" + por "Excesso de conexões" + rum "Prea multe conectiuni" + rus "Слишком много Ñоединений" + serbian "PreviÅ¡e konekcija" + slo "PríliÅ¡ mnoho spojení" + spa "Demasiadas conexiones" + swe "För mÃ¥nga anslutningar" + ukr "Забагато з'єднань" +ER_OUT_OF_RESOURCES + cze "M-Bálo prostoru/pamÄ›ti pro thread" + dan "UdgÃ¥et for trÃ¥de/hukommelse" + nla "Geen thread geheugen meer; controleer of mysqld of andere processen al het beschikbare geheugen gebruikt. Zo niet, dan moet u wellicht 'ulimit' gebruiken om mysqld toe te laten meer geheugen te benutten, of u kunt extra swap ruimte toevoegen" + eng "Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space" + jps "Out of memory; mysqld ã‹ãã®ä»–ã®ãƒ—ロセスãŒãƒ¡ãƒ¢ãƒªãƒ¼ã‚’å…¨ã¦ä½¿ã£ã¦ã„ã‚‹ã‹ç¢ºèªã—ã¦ãã ã•ã„. メモリーを使ã„切ã£ã¦ã„ãªã„å ´åˆã€'ulimit' を設定ã—㦠mysqld ã®ãƒ¡ãƒ¢ãƒªãƒ¼ä½¿ç”¨é™ç•Œé‡ã‚’多ãã™ã‚‹ã‹ã€swap space を増やã—ã¦ã¿ã¦ãã ã•ã„", + est "Mälu sai otsa. Võimalik, et aitab swap-i lisamine või käsu 'ulimit' abil MariaDB-le rohkema mälu kasutamise lubamine" + fre "Manque de 'threads'/mémoire" + ger "Kein Speicher mehr vorhanden. Prüfen Sie, ob mysqld oder ein anderer Prozess den gesamten Speicher verbraucht. Wenn nicht, sollten Sie mit 'ulimit' dafür sorgen, dass mysqld mehr Speicher benutzen darf, oder mehr Swap-Speicher einrichten" + greek "ΠÏόβλημα με τη διαθέσιμη μνήμη (Out of thread space/memory)" + hun "Elfogyott a thread-memoria" + ita "Fine dello spazio/memoria per i thread" + jpn "Out of memory; mysqld ã‹ãã®ä»–ã®ãƒ—ロセスãŒãƒ¡ãƒ¢ãƒªãƒ¼ã‚’å…¨ã¦ä½¿ã£ã¦ã„ã‚‹ã‹ç¢ºèªã—ã¦ãã ã•ã„. メモリーを使ã„切ã£ã¦ã„ãªã„å ´åˆã€'ulimit' を設定ã—㦠mysqld ã®ãƒ¡ãƒ¢ãƒªãƒ¼ä½¿ç”¨é™ç•Œé‡ã‚’多ãã™ã‚‹ã‹ã€swap space を増やã—ã¦ã¿ã¦ãã ã•ã„" +# This message failed to convert from euc-kr, skipped + nor "Tomt for trÃ¥d plass/minne" + norwegian-ny "Tomt for trÃ¥d plass/minne" + pol "Zbyt maÅ‚o miejsca/pamiÄ™ci dla w?tku" + por "Sem memória. Verifique se o mysqld ou algum outro processo está usando toda memória disponível. Se não, você pode ter que usar 'ulimit' para permitir ao mysqld usar mais memória ou você pode adicionar mais área de 'swap'" + rum "Out of memory; Verifica daca mysqld sau vreun alt proces foloseste toate memoria disponbila. Altfel, trebuie sa folosesi 'ulimit' ca sa permiti lui memoria disponbila. Altfel, trebuie sa folosesi 'ulimit' ca sa permiti lui mysqld sa foloseasca mai multa memorie ori adauga mai mult spatiu pentru swap (swap space)" + rus "ÐедоÑтаточно памÑти; удоÑтоверьтеÑÑŒ, что mysqld или какой-либо другой процеÑÑ Ð½Ðµ занимает вÑÑŽ доÑтупную памÑть. ЕÑли нет, то вы можете иÑпользовать ulimit, чтобы выделить Ð´Ð»Ñ mysqld больше памÑти, или увеличить объем файла подкачки" + serbian "Nema memorije; Proverite da li MariaDB server ili neki drugi proces koristi svu slobodnu memoriju. (UNIX: Ako ne, probajte da upotrebite 'ulimit' komandu da biste dozvolili daemon-u da koristi viÅ¡e memorije ili probajte da dodate viÅ¡e swap memorije)" + slo "Málo miesta-pamäti pre vlákno" + spa "Memoria/espacio de tranpaso insuficiente" + swe "Fick slut pÃ¥ minnet. Kontrollera om mysqld eller nÃ¥gon annan process använder allt tillgängligt minne. Om inte, försök använda 'ulimit' eller allokera mera swap" + ukr "Брак пам'Ñті; Перевірте чи mysqld або ÑкіÑÑŒ інші процеÑи викориÑтовують уÑÑŽ доÑтупну пам'Ñть. Як ні, то ви можете ÑкориÑтатиÑÑ 'ulimit', аби дозволити mysqld викориÑтовувати більше пам'Ñті або ви можете додати більше міÑÑ†Ñ Ð¿Ñ–Ð´ Ñвап" +ER_BAD_HOST_ERROR 08S01 + cze "Nemohu zjistit jm-Béno stroje pro VaÅ¡i adresu" + dan "Kan ikke fÃ¥ værtsnavn for din adresse" + nla "Kan de hostname niet krijgen van uw adres" + eng "Can't get hostname for your address" + jps "ãã® address ã® hostname ãŒå¼•ã‘ã¾ã›ã‚“.", + est "Ei suuda lahendada IP aadressi masina nimeks" + fre "Ne peut obtenir de hostname pour votre adresse" + ger "Kann Hostnamen für diese Adresse nicht erhalten" + greek "Δεν έγινε γνωστό το hostname για την address σας" + hun "A gepnev nem allapithato meg a cimbol" + ita "Impossibile risalire al nome dell'host dall'indirizzo (risoluzione inversa)" + jpn "ãã® address ã® hostname ãŒå¼•ã‘ã¾ã›ã‚“." + kor "ë‹¹ì‹ ì˜ ì»´í“¨í„°ì˜ í˜¸ìŠ¤íŠ¸ì´ë¦„ì„ ì–»ì„ ìˆ˜ ì—†ì니다." + nor "Kan ikke fÃ¥ tak i vertsnavn for din adresse" + norwegian-ny "Kan ikkje fÃ¥ tak i vertsnavn for di adresse" + pol "Nie można otrzymać nazwy hosta dla twojego adresu" + por "Não pode obter nome do 'host' para seu endereço" + rum "Nu pot sa obtin hostname-ul adresei tale" + rus "Ðевозможно получить Ð¸Ð¼Ñ Ñ…Ð¾Ñта Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ адреÑа" + serbian "Ne mogu da dobijem ime host-a za vaÅ¡u IP adresu" + slo "Nemôžem zistiÅ¥ meno hostiteľa pre vaÅ¡u adresu" + spa "No puedo obtener el nombre de maquina de tu direccion" + swe "Kan inte hitta 'hostname' för din adress" + ukr "Ðе можу визначити ім'Ñ Ñ…Ð¾Ñту Ð´Ð»Ñ Ð²Ð°ÑˆÐ¾Ñ— адреÑи" +ER_HANDSHAKE_ERROR 08S01 + cze "Chyba p-BÅ™i ustavování spojení" + dan "Forkert hÃ¥ndtryk (handshake)" + nla "Verkeerde handshake" + eng "Bad handshake" + est "Väär handshake" + fre "Mauvais 'handshake'" + ger "Ungültiger Handshake" + greek "Η αναγνώÏιση (handshake) δεν έγινε σωστά" + hun "A kapcsolatfelvetel nem sikerult (Bad handshake)" + ita "Negoziazione impossibile" + nor "Feil hÃ¥ndtrykk (handshake)" + norwegian-ny "Feil handtrykk (handshake)" + pol "ZÅ‚y uchwyt(handshake)" + por "Negociação de acesso falhou" + rum "Prost inceput de conectie (bad handshake)" + rus "Ðекорректное приветÑтвие" + serbian "LoÅ¡ poÄetak komunikacije (handshake)" + slo "Chyba pri nadväzovaní spojenia" + spa "Protocolo erroneo" + swe "Fel vid initiering av kommunikationen med klienten" + ukr "Ðевірна уÑтановка зв'Ñзку" +ER_DBACCESS_DENIED_ERROR 42000 + cze "P-Břístup pro uživatele '%s'@'%s' k databázi '%-.192s' není povolen" + dan "Adgang nægtet bruger: '%s'@'%s' til databasen '%-.192s'" + nla "Toegang geweigerd voor gebruiker: '%s'@'%s' naar database '%-.192s'" + eng "Access denied for user '%s'@'%s' to database '%-.192s'" + jps "ユーザー '%s'@'%s' ã® '%-.192s' データベースã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’æ‹’å¦ã—ã¾ã™", + est "Ligipääs keelatud kasutajale '%s'@'%s' andmebaasile '%-.192s'" + fre "Accès refusé pour l'utilisateur: '%s'@'%s'. Base '%-.192s'" + ger "Benutzer '%s'@'%s' hat keine Zugriffsberechtigung für Datenbank '%-.192s'" + greek "Δεν επιτέÏεται η Ï€Ïόσβαση στο χÏήστη: '%s'@'%s' στη βάση δεδομένων '%-.192s'" + hun "A(z) '%s'@'%s' felhasznalo szamara tiltott eleres az '%-.192s' adabazishoz." + ita "Accesso non consentito per l'utente: '%s'@'%s' al database '%-.192s'" + jpn "ユーザー '%s'@'%s' ã® '%-.192s' データベースã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’æ‹’å¦ã—ã¾ã™" + kor "'%s'@'%s' 사용ìžëŠ” '%-.192s' ë°ì´íƒ€ë² ì´ìŠ¤ì— ì ‘ê·¼ì´ ê±°ë¶€ ë˜ì—ˆìŠµë‹ˆë‹¤." + nor "Tilgang nektet for bruker: '%s'@'%s' til databasen '%-.192s' nektet" + norwegian-ny "Tilgang ikkje tillate for brukar: '%s'@'%s' til databasen '%-.192s' nekta" + por "Acesso negado para o usuário '%s'@'%s' ao banco de dados '%-.192s'" + rum "Acces interzis pentru utilizatorul: '%s'@'%s' la baza de date '%-.192s'" + rus "Ð”Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ '%s'@'%s' доÑтуп к базе данных '%-.192s' закрыт" + serbian "Pristup je zabranjen korisniku '%s'@'%s' za bazu '%-.192s'" + slo "Zakázaný prístup pre užívateľa: '%s'@'%s' k databázi '%-.192s'" + spa "Acceso negado para usuario: '%s'@'%s' para la base de datos '%-.192s'" + swe "Användare '%s'@'%s' är ej berättigad att använda databasen %-.192s" + ukr "ДоÑтуп заборонено Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувача: '%s'@'%s' до бази данних '%-.192s'" +ER_ACCESS_DENIED_ERROR 28000 + cze "P-Břístup pro uživatele '%s'@'%s' (s heslem %s)" + dan "Adgang nægtet bruger: '%s'@'%s' (Bruger adgangskode: %s)" + nla "Toegang geweigerd voor gebruiker: '%s'@'%s' (Wachtwoord gebruikt: %s)" + eng "Access denied for user '%s'@'%s' (using password: %s)" + jps "ユーザー '%s'@'%s' ã‚’æ‹’å¦ã—ã¾ã™.uUsing password: %s)", + est "Ligipääs keelatud kasutajale '%s'@'%s' (kasutab parooli: %s)" + fre "Accès refusé pour l'utilisateur: '%s'@'%s' (mot de passe: %s)" + ger "Benutzer '%s'@'%s' hat keine Zugriffsberechtigung (verwendetes Passwort: %s)" + greek "Δεν επιτέÏεται η Ï€Ïόσβαση στο χÏήστη: '%s'@'%s' (χÏήση password: %s)" + hun "A(z) '%s'@'%s' felhasznalo szamara tiltott eleres. (Hasznalja a jelszot: %s)" + ita "Accesso non consentito per l'utente: '%s'@'%s' (Password: %s)" + jpn "ユーザー '%s'@'%s' ã‚’æ‹’å¦ã—ã¾ã™.uUsing password: %s)" + kor "'%s'@'%s' 사용ìžëŠ” ì ‘ê·¼ì´ ê±°ë¶€ ë˜ì—ˆìŠµë‹ˆë‹¤. (using password: %s)" + nor "Tilgang nektet for bruker: '%s'@'%s' (Bruker passord: %s)" + norwegian-ny "Tilgang ikke tillate for brukar: '%s'@'%s' (Brukar passord: %s)" + por "Acesso negado para o usuário '%s'@'%s' (senha usada: %s)" + rum "Acces interzis pentru utilizatorul: '%s'@'%s' (Folosind parola: %s)" + rus "ДоÑтуп закрыт Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ '%s'@'%s' (был иÑпользован пароль: %s)" + serbian "Pristup je zabranjen korisniku '%s'@'%s' (koristi lozinku: '%s')" + slo "Zakázaný prístup pre užívateľa: '%s'@'%s' (použitie hesla: %s)" + spa "Acceso negado para usuario: '%s'@'%s' (Usando clave: %s)" + swe "Användare '%s'@'%s' är ej berättigad att logga in (Använder lösen: %s)" + ukr "ДоÑтуп заборонено Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувача: '%s'@'%s' (ВикориÑтано пароль: %s)" +ER_NO_DB_ERROR 3D000 + cze "Nebyla vybr-Bána žádná databáze" + dan "Ingen database valgt" + nla "Geen database geselecteerd" + eng "No database selected" + jps "データベースãŒé¸æŠžã•れã¦ã„ã¾ã›ã‚“.", + est "Andmebaasi ei ole valitud" + fre "Aucune base n'a été sélectionnée" + ger "Keine Datenbank ausgewählt" + greek "Δεν επιλέχθηκε βάση δεδομένων" + hun "Nincs kivalasztott adatbazis" + ita "Nessun database selezionato" + jpn "データベースãŒé¸æŠžã•れã¦ã„ã¾ã›ã‚“." + kor "ì„ íƒëœ ë°ì´íƒ€ë² ì´ìŠ¤ê°€ 없습니다." + nor "Ingen database valgt" + norwegian-ny "Ingen database vald" + pol "Nie wybrano żadnej bazy danych" + por "Nenhum banco de dados foi selecionado" + rum "Nici o baza de data nu a fost selectata inca" + rus "База данных не выбрана" + serbian "Ni jedna baza nije selektovana" + slo "Nebola vybraná databáza" + spa "Base de datos no seleccionada" + swe "Ingen databas i användning" + ukr "Базу данних не вибрано" +ER_UNKNOWN_COM_ERROR 08S01 + cze "Nezn-Bámý příkaz" + dan "Ukendt kommando" + nla "Onbekend commando" + eng "Unknown command" + jps "ãã®ã‚³ãƒžãƒ³ãƒ‰ã¯ä½•?", + est "Tundmatu käsk" + fre "Commande inconnue" + ger "Unbekannter Befehl" + greek "Αγνωστη εντολή" + hun "Ervenytelen parancs" + ita "Comando sconosciuto" + jpn "ãã®ã‚³ãƒžãƒ³ãƒ‰ã¯ä½•?" + kor "명령어가 뭔지 모르겠어요..." + nor "Ukjent kommando" + norwegian-ny "Ukjent kommando" + pol "Nieznana komenda" + por "Comando desconhecido" + rum "Comanda invalida" + rus "ÐеизвеÑÑ‚Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° коммуникационного протокола" + serbian "Nepoznata komanda" + slo "Neznámy príkaz" + spa "Comando desconocido" + swe "Okänt commando" + ukr "Ðевідома команда" +ER_BAD_NULL_ERROR 23000 + cze "Sloupec '%-.192s' nem-Bůže být null" + dan "Kolonne '%-.192s' kan ikke være NULL" + nla "Kolom '%-.192s' kan niet null zijn" + eng "Column '%-.192s' cannot be null" + jps "Column '%-.192s' 㯠null ã«ã¯ã§ããªã„ã®ã§ã™", + est "Tulp '%-.192s' ei saa omada nullväärtust" + fre "Le champ '%-.192s' ne peut être vide (null)" + ger "Feld '%-.192s' darf nicht NULL sein" + greek "Το πεδίο '%-.192s' δεν μποÏεί να είναι κενό (null)" + hun "A(z) '%-.192s' oszlop erteke nem lehet nulla" + ita "La colonna '%-.192s' non puo` essere nulla" + jpn "Column '%-.192s' 㯠null ã«ã¯ã§ããªã„ã®ã§ã™" + kor "칼럼 '%-.192s'는 ë„(Null)ì´ ë˜ë©´ 안ë©ë‹ˆë‹¤. " + nor "Kolonne '%-.192s' kan ikke vere null" + norwegian-ny "Kolonne '%-.192s' kan ikkje vere null" + pol "Kolumna '%-.192s' nie może być null" + por "Coluna '%-.192s' não pode ser vazia" + rum "Coloana '%-.192s' nu poate sa fie null" + rus "Столбец '%-.192s' не может принимать величину NULL" + serbian "Kolona '%-.192s' ne može biti NULL" + slo "Pole '%-.192s' nemôže byÅ¥ null" + spa "La columna '%-.192s' no puede ser nula" + swe "Kolumn '%-.192s' fÃ¥r inte vara NULL" + ukr "Стовбець '%-.192s' не може бути нульовим" +ER_BAD_DB_ERROR 42000 + cze "Nezn-Bámá databáze '%-.192s'" + dan "Ukendt database '%-.192s'" + nla "Onbekende database '%-.192s'" + eng "Unknown database '%-.192s'" + jps "'%-.192s' ãªã‚“ã¦ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã¯çŸ¥ã‚Šã¾ã›ã‚“.", + est "Tundmatu andmebaas '%-.192s'" + fre "Base '%-.192s' inconnue" + ger "Unbekannte Datenbank '%-.192s'" + greek "Αγνωστη βάση δεδομένων '%-.192s'" + hun "Ervenytelen adatbazis: '%-.192s'" + ita "Database '%-.192s' sconosciuto" + jpn "'%-.192s' ãªã‚“ã¦ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã¯çŸ¥ã‚Šã¾ã›ã‚“." + kor "ë°ì´íƒ€ë² ì´ìФ '%-.192s'는 알수 ì—†ìŒ" + nor "Ukjent database '%-.192s'" + norwegian-ny "Ukjent database '%-.192s'" + pol "Nieznana baza danych '%-.192s'" + por "Banco de dados '%-.192s' desconhecido" + rum "Baza de data invalida '%-.192s'" + rus "ÐеизвеÑÑ‚Ð½Ð°Ñ Ð±Ð°Ð·Ð° данных '%-.192s'" + serbian "Nepoznata baza '%-.192s'" + slo "Neznáma databáza '%-.192s'" + spa "Base de datos desconocida '%-.192s'" + swe "Okänd databas: '%-.192s'" + ukr "Ðевідома база данних '%-.192s'" +ER_TABLE_EXISTS_ERROR 42S01 + cze "Tabulka '%-.192s' ji-Bž existuje" + dan "Tabellen '%-.192s' findes allerede" + nla "Tabel '%-.192s' bestaat al" + eng "Table '%-.192s' already exists" + jps "Table '%-.192s' ã¯æ—¢ã«ã‚りã¾ã™", + est "Tabel '%-.192s' juba eksisteerib" + fre "La table '%-.192s' existe déjà" + ger "Tabelle '%-.192s' bereits vorhanden" + greek "Ο πίνακας '%-.192s' υπάÏχει ήδη" + hun "A(z) '%-.192s' tabla mar letezik" + ita "La tabella '%-.192s' esiste gia`" + jpn "Table '%-.192s' ã¯æ—¢ã«ã‚りã¾ã™" + kor "í…Œì´ë¸” '%-.192s'는 ì´ë¯¸ 존재함" + nor "Tabellen '%-.192s' eksisterer allerede" + norwegian-ny "Tabellen '%-.192s' eksisterar allereide" + pol "Tabela '%-.192s' już istnieje" + por "Tabela '%-.192s' já existe" + rum "Tabela '%-.192s' exista deja" + rus "Таблица '%-.192s' уже ÑущеÑтвует" + serbian "Tabela '%-.192s' već postoji" + slo "Tabuľka '%-.192s' už existuje" + spa "La tabla '%-.192s' ya existe" + swe "Tabellen '%-.192s' finns redan" + ukr "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ '%-.192s' вже Ñ–Ñнує" +ER_BAD_TABLE_ERROR 42S02 + cze "Nezn-Bámá tabulka '%-.100s'" + dan "Ukendt tabel '%-.100s'" + nla "Onbekende tabel '%-.100s'" + eng "Unknown table '%-.100s'" + jps "table '%-.100s' ã¯ã‚りã¾ã›ã‚“.", + est "Tundmatu tabel '%-.100s'" + fre "Table '%-.100s' inconnue" + ger "Unbekannte Tabelle '%-.100s'" + greek "Αγνωστος πίνακας '%-.100s'" + hun "Ervenytelen tabla: '%-.100s'" + ita "Tabella '%-.100s' sconosciuta" + jpn "table '%-.100s' ã¯ã‚りã¾ã›ã‚“." + kor "í…Œì´ë¸” '%-.100s'는 알수 ì—†ìŒ" + nor "Ukjent tabell '%-.100s'" + norwegian-ny "Ukjent tabell '%-.100s'" + pol "Nieznana tabela '%-.100s'" + por "Tabela '%-.100s' desconhecida" + rum "Tabela '%-.100s' este invalida" + rus "ÐеизвеÑÑ‚Ð½Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° '%-.100s'" + serbian "Nepoznata tabela '%-.100s'" + slo "Neznáma tabuľka '%-.100s'" + spa "Tabla '%-.100s' desconocida" + swe "Okänd tabell '%-.100s'" + ukr "Ðевідома Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ '%-.100s'" +ER_NON_UNIQ_ERROR 23000 + cze "Sloupec '%-.192s' v %-.192s nen-Bí zcela jasný" + dan "Felt: '%-.192s' i tabel %-.192s er ikke entydigt" + nla "Kolom: '%-.192s' in %-.192s is niet eenduidig" + eng "Column '%-.192s' in %-.192s is ambiguous" + est "Väli '%-.192s' %-.192s-s ei ole ühene" + fre "Champ: '%-.192s' dans %-.192s est ambigu" + ger "Feld '%-.192s' in %-.192s ist nicht eindeutig" + greek "Το πεδίο: '%-.192s' σε %-.192s δεν έχει καθοÏιστεί" + hun "A(z) '%-.192s' oszlop %-.192s-ben ketertelmu" + ita "Colonna: '%-.192s' di %-.192s e` ambigua" + jpn "Column: '%-.192s' in %-.192s is ambiguous" + kor "칼럼: '%-.192s' in '%-.192s' ì´ ëª¨í˜¸í•¨" + nor "Felt: '%-.192s' i tabell %-.192s er ikke entydig" + norwegian-ny "Kolonne: '%-.192s' i tabell %-.192s er ikkje eintydig" + pol "Kolumna: '%-.192s' w %-.192s jest dwuznaczna" + por "Coluna '%-.192s' em '%-.192s' é ambígua" + rum "Coloana: '%-.192s' in %-.192s este ambigua" + rus "Столбец '%-.192s' в %-.192s задан неоднозначно" + serbian "Kolona '%-.192s' u %-.192s nije jedinstvena u kontekstu" + slo "Pole: '%-.192s' v %-.192s je nejasné" + spa "La columna: '%-.192s' en %-.192s es ambigua" + swe "Kolumn '%-.192s' i %-.192s är inte unik" + ukr "Стовбець '%-.192s' у %-.192s визначений неоднозначно" +ER_SERVER_SHUTDOWN 08S01 + cze "Prob-Bíhá ukonÄování práce serveru" + dan "Database nedlukning er i gang" + nla "Bezig met het stoppen van de server" + eng "Server shutdown in progress" + jps "Server ã‚’ shutdown 中...", + est "Serveri seiskamine käib" + fre "Arrêt du serveur en cours" + ger "Der Server wird heruntergefahren" + greek "ΕναÏξη διαδικασίας αποσÏνδεσης του εξυπηÏετητή (server shutdown)" + hun "A szerver leallitasa folyamatban" + ita "Shutdown del server in corso" + jpn "Server ã‚’ shutdown 中..." + kor "Serverê°€ 셧다운 중입니다." + nor "Database nedkobling er i gang" + norwegian-ny "Tenar nedkopling er i gang" + pol "Trwa koÅ„czenie dziaÅ‚ania serwera" + por "'Shutdown' do servidor em andamento" + rum "Terminarea serverului este in desfasurare" + rus "Сервер находитÑÑ Ð² процеÑÑе оÑтановки" + serbian "GaÅ¡enje servera je u toku" + slo "Prebieha ukonÄovanie práce servera" + spa "Desconexion de servidor en proceso" + swe "Servern gÃ¥r nu ned" + ukr "ЗавершуєтьÑÑ Ñ€Ð°Ð±Ð¾Ñ‚Ð° Ñервера" +ER_BAD_FIELD_ERROR 42S22 S0022 + cze "Nezn-Bámý sloupec '%-.192s' v %-.192s" + dan "Ukendt kolonne '%-.192s' i tabel %-.192s" + nla "Onbekende kolom '%-.192s' in %-.192s" + eng "Unknown column '%-.192s' in '%-.192s'" + jps "'%-.192s' column 㯠'%-.192s' ã«ã¯ã‚りã¾ã›ã‚“.", + est "Tundmatu tulp '%-.192s' '%-.192s'-s" + fre "Champ '%-.192s' inconnu dans %-.192s" + ger "Unbekanntes Tabellenfeld '%-.192s' in %-.192s" + greek "Αγνωστο πεδίο '%-.192s' σε '%-.192s'" + hun "A(z) '%-.192s' oszlop ervenytelen '%-.192s'-ben" + ita "Colonna sconosciuta '%-.192s' in '%-.192s'" + jpn "'%-.192s' column 㯠'%-.192s' ã«ã¯ã‚りã¾ã›ã‚“." + kor "Unknown 칼럼 '%-.192s' in '%-.192s'" + nor "Ukjent kolonne '%-.192s' i tabell %-.192s" + norwegian-ny "Ukjent felt '%-.192s' i tabell %-.192s" + pol "Nieznana kolumna '%-.192s' w %-.192s" + por "Coluna '%-.192s' desconhecida em '%-.192s'" + rum "Coloana invalida '%-.192s' in '%-.192s'" + rus "ÐеизвеÑтный Ñтолбец '%-.192s' в '%-.192s'" + serbian "Nepoznata kolona '%-.192s' u '%-.192s'" + slo "Neznáme pole '%-.192s' v '%-.192s'" + spa "La columna '%-.192s' en %-.192s es desconocida" + swe "Okänd kolumn '%-.192s' i %-.192s" + ukr "Ðевідомий Ñтовбець '%-.192s' у '%-.192s'" +ER_WRONG_FIELD_WITH_GROUP 42000 S1009 + cze "Pou-Bžité '%-.192s' nebylo v group by" + dan "Brugte '%-.192s' som ikke var i group by" + nla "Opdracht gebruikt '%-.192s' dat niet in de GROUP BY voorkomt" + eng "'%-.192s' isn't in GROUP BY" + jps "'%-.192s' isn't in GROUP BY", + est "'%-.192s' puudub GROUP BY klauslis" + fre "'%-.192s' n'est pas dans 'group by'" + ger "'%-.192s' ist nicht in GROUP BY vorhanden" + greek "ΧÏησιμοποιήθηκε '%-.192s' που δεν υπήÏχε στο group by" + hun "Used '%-.192s' with wasn't in group by" + ita "Usato '%-.192s' che non e` nel GROUP BY" + kor "'%-.192s'ì€ GROUP BYì†ì— ì—†ìŒ" + nor "Brukte '%-.192s' som ikke var i group by" + norwegian-ny "Brukte '%-.192s' som ikkje var i group by" + pol "Użyto '%-.192s' bez umieszczenia w group by" + por "'%-.192s' não está em 'GROUP BY'" + rum "'%-.192s' nu exista in clauza GROUP BY" + rus "'%-.192s' не приÑутÑтвует в GROUP BY" + serbian "Entitet '%-.192s' nije naveden u komandi 'GROUP BY'" + slo "Použité '%-.192s' nebolo v 'group by'" + spa "Usado '%-.192s' el cual no esta group by" + swe "'%-.192s' finns inte i GROUP BY" + ukr "'%-.192s' не Ñ” у GROUP BY" +ER_WRONG_GROUP_FIELD 42000 S1009 + cze "Nemohu pou-Bžít group na '%-.192s'" + dan "Kan ikke gruppere pÃ¥ '%-.192s'" + nla "Kan '%-.192s' niet groeperen" + eng "Can't group on '%-.192s'" + est "Ei saa grupeerida '%-.192s' järgi" + fre "Ne peut regrouper '%-.192s'" + ger "Gruppierung über '%-.192s' nicht möglich" + greek "ΑδÏνατη η ομαδοποίηση (group on) '%-.192s'" + hun "A group nem hasznalhato: '%-.192s'" + ita "Impossibile raggruppare per '%-.192s'" + kor "'%-.192s'를 그룹할 수 ì—†ìŒ" + nor "Kan ikke gruppere pÃ¥ '%-.192s'" + norwegian-ny "Kan ikkje gruppere pÃ¥ '%-.192s'" + pol "Nie można grupować po '%-.192s'" + por "Não pode agrupar em '%-.192s'" + rum "Nu pot sa grupez pe (group on) '%-.192s'" + rus "Ðевозможно произвеÑти группировку по '%-.192s'" + serbian "Ne mogu da grupiÅ¡em po '%-.192s'" + slo "Nemôžem použiÅ¥ 'group' na '%-.192s'" + spa "No puedo agrupar por '%-.192s'" + swe "Kan inte använda GROUP BY med '%-.192s'" + ukr "Ðе можу групувати по '%-.192s'" +ER_WRONG_SUM_SELECT 42000 S1009 + cze "P-Bříkaz obsahuje zároveň funkci sum a sloupce" + dan "Udtrykket har summer (sum) funktioner og kolonner i samme udtryk" + nla "Opdracht heeft totaliseer functies en kolommen in dezelfde opdracht" + eng "Statement has sum functions and columns in same statement" + est "Lauses on korraga nii tulbad kui summeerimisfunktsioonid" + fre "Vous demandez la fonction sum() et des champs dans la même commande" + ger "Die Verwendung von Summierungsfunktionen und Spalten im selben Befehl ist nicht erlaubt" + greek "Η διατÏπωση πεÏιέχει sum functions και columns στην ίδια διατÏπωση" + ita "Il comando ha una funzione SUM e una colonna non specificata nella GROUP BY" + kor "Statement ê°€ sumê¸°ëŠ¥ì„ ë™ìž‘중ì´ê³  ì¹¼ëŸ¼ë„ ë™ì¼í•œ statement입니다." + nor "Uttrykket har summer (sum) funksjoner og kolonner i samme uttrykk" + norwegian-ny "Uttrykket har summer (sum) funksjoner og kolonner i same uttrykk" + pol "Zapytanie ma funkcje sumuj?ce i kolumny w tym samym zapytaniu" + por "Cláusula contém funções de soma e colunas juntas" + rum "Comanda are functii suma si coloane in aceeasi comanda" + rus "Выражение Ñодержит групповые функции и Ñтолбцы, но не включает GROUP BY. Ркак вы умудрилиÑÑŒ получить Ñто Ñообщение об ошибке?" + serbian "Izraz ima 'SUM' agregatnu funkciju i kolone u isto vreme" + slo "Príkaz obsahuje zároveň funkciu 'sum' a poľa" + spa "El estamento tiene funciones de suma y columnas en el mismo estamento" + swe "Kommandot har bÃ¥de sum functions och enkla funktioner" + ukr "У виразі викориÑтано підÑумовуючі функції порÑд з іменами Ñтовбців" +ER_WRONG_VALUE_COUNT 21S01 + cze "Po-BÄet sloupců neodpovídá zadané hodnotÄ›" + dan "Kolonne tæller stemmer ikke med antallet af værdier" + nla "Het aantal kolommen komt niet overeen met het aantal opgegeven waardes" + eng "Column count doesn't match value count" + est "Tulpade arv erineb väärtuste arvust" + ger "Die Anzahl der Spalten entspricht nicht der Anzahl der Werte" + greek "Το Column count δεν ταιÏιάζει με το value count" + hun "Az oszlopban levo ertek nem egyezik meg a szamitott ertekkel" + ita "Il numero delle colonne non e` uguale al numero dei valori" + kor "ì¹¼ëŸ¼ì˜ ì¹´ìš´íŠ¸ê°€ ê°’ì˜ ì¹´ìš´íŠ¸ì™€ ì¼ì¹˜í•˜ì§€ 않습니다." + nor "Felt telling stemmer verdi telling" + norwegian-ny "Kolonne telling stemmer verdi telling" + pol "Liczba kolumn nie odpowiada liczbie warto?ci" + por "Contagem de colunas não confere com a contagem de valores" + rum "Numarul de coloane nu este acelasi cu numarul valoarei" + rus "КоличеÑтво Ñтолбцов не Ñовпадает Ñ ÐºÐ¾Ð»Ð¸Ñ‡ÐµÑтвом значений" + serbian "Broj kolona ne odgovara broju vrednosti" + slo "PoÄet polí nezodpovedá zadanej hodnote" + spa "La columna con count no tiene valores para contar" + swe "Antalet kolumner motsvarar inte antalet värden" + ukr "КількіÑть Ñтовбців не Ñпівпадає з кількіÑтю значень" +ER_TOO_LONG_IDENT 42000 S1009 + cze "Jm-Béno identifikátoru '%-.100s' je příliÅ¡ dlouhé" + dan "Navnet '%-.100s' er for langt" + nla "Naam voor herkenning '%-.100s' is te lang" + eng "Identifier name '%-.100s' is too long" + jps "Identifier name '%-.100s' ã¯é•·ã™ãŽã¾ã™", + est "Identifikaatori '%-.100s' nimi on liiga pikk" + fre "Le nom de l'identificateur '%-.100s' est trop long" + ger "Name des Bezeichners '%-.100s' ist zu lang" + greek "Το identifier name '%-.100s' είναι Ï€Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î¿" + hun "A(z) '%-.100s' azonositonev tul hosszu." + ita "Il nome dell'identificatore '%-.100s' e` troppo lungo" + jpn "Identifier name '%-.100s' ã¯é•·ã™ãŽã¾ã™" + kor "Identifier '%-.100s'는 너무 길군요." + nor "Identifikator '%-.100s' er for lang" + norwegian-ny "Identifikator '%-.100s' er for lang" + pol "Nazwa identyfikatora '%-.100s' jest zbyt dÅ‚uga" + por "Nome identificador '%-.100s' é longo demais" + rum "Numele indentificatorului '%-.100s' este prea lung" + rus "Слишком длинный идентификатор '%-.100s'" + serbian "Ime '%-.100s' je predugaÄko" + slo "Meno identifikátora '%-.100s' je príliÅ¡ dlhé" + spa "El nombre del identificador '%-.100s' es demasiado grande" + swe "Kolumnnamn '%-.100s' är för lÃ¥ngt" + ukr "Ім'Ñ Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ‚Ð¾Ñ€Ð° '%-.100s' задовге" +ER_DUP_FIELDNAME 42S21 S1009 + cze "Zdvojen-Bé jméno sloupce '%-.192s'" + dan "Feltnavnet '%-.192s' findes allerede" + nla "Dubbele kolom naam '%-.192s'" + eng "Duplicate column name '%-.192s'" + jps "'%-.192s' ã¨ã„ㆠcolumn åã¯é‡è¤‡ã—ã¦ã¾ã™", + est "Kattuv tulba nimi '%-.192s'" + fre "Nom du champ '%-.192s' déjà utilisé" + ger "Doppelter Spaltenname: '%-.192s'" + greek "Επανάληψη column name '%-.192s'" + hun "Duplikalt oszlopazonosito: '%-.192s'" + ita "Nome colonna duplicato '%-.192s'" + jpn "'%-.192s' ã¨ã„ㆠcolumn åã¯é‡è¤‡ã—ã¦ã¾ã™" + kor "ì¤‘ë³µëœ ì¹¼ëŸ¼ ì´ë¦„: '%-.192s'" + nor "Feltnavnet '%-.192s' eksisterte fra før" + norwegian-ny "Feltnamnet '%-.192s' eksisterte frÃ¥ før" + pol "Powtórzona nazwa kolumny '%-.192s'" + por "Nome da coluna '%-.192s' duplicado" + rum "Numele coloanei '%-.192s' e duplicat" + rus "ДублирующееÑÑ Ð¸Ð¼Ñ Ñтолбца '%-.192s'" + serbian "Duplirano ime kolone '%-.192s'" + slo "Opakované meno poľa '%-.192s'" + spa "Nombre de columna duplicado '%-.192s'" + swe "Kolumnnamn '%-.192s finns flera gÃ¥nger" + ukr "Дублююче ім'Ñ ÑÑ‚Ð¾Ð²Ð±Ñ†Ñ '%-.192s'" +ER_DUP_KEYNAME 42000 S1009 + cze "Zdvojen-Bé jméno klíÄe '%-.192s'" + dan "Indeksnavnet '%-.192s' findes allerede" + nla "Dubbele zoeksleutel naam '%-.192s'" + eng "Duplicate key name '%-.192s'" + jps "'%-.192s' ã¨ã„ㆠkey ã®åå‰ã¯é‡è¤‡ã—ã¦ã„ã¾ã™", + est "Kattuv võtme nimi '%-.192s'" + fre "Nom de clef '%-.192s' déjà utilisé" + ger "Doppelter Name für Schlüssel vorhanden: '%-.192s'" + greek "Επανάληψη key name '%-.192s'" + hun "Duplikalt kulcsazonosito: '%-.192s'" + ita "Nome chiave duplicato '%-.192s'" + jpn "'%-.192s' ã¨ã„ㆠkey ã®åå‰ã¯é‡è¤‡ã—ã¦ã„ã¾ã™" + kor "ì¤‘ë³µëœ í‚¤ ì´ë¦„ : '%-.192s'" + nor "Nøkkelnavnet '%-.192s' eksisterte fra før" + norwegian-ny "Nøkkelnamnet '%-.192s' eksisterte frÃ¥ før" + pol "Powtórzony nazwa klucza '%-.192s'" + por "Nome da chave '%-.192s' duplicado" + rum "Numele cheiei '%-.192s' e duplicat" + rus "ДублирующееÑÑ Ð¸Ð¼Ñ ÐºÐ»ÑŽÑ‡Ð° '%-.192s'" + serbian "Duplirano ime kljuÄa '%-.192s'" + slo "Opakované meno kľúÄa '%-.192s'" + spa "Nombre de clave duplicado '%-.192s'" + swe "Nyckelnamn '%-.192s' finns flera gÃ¥nger" + ukr "Дублююче ім'Ñ ÐºÐ»ÑŽÑ‡Ð° '%-.192s'" +# When using this error code, please use ER(ER_DUP_ENTRY_WITH_KEY_NAME) +# for the message string. See, for example, code in handler.cc. +ER_DUP_ENTRY 23000 S1009 + cze "Zdvojen-Bý klÃ­Ä '%-.192s' (Äíslo klíÄe %d)" + dan "Ens værdier '%-.192s' for indeks %d" + nla "Dubbele ingang '%-.192s' voor zoeksleutel %d" + eng "Duplicate entry '%-.192s' for key %d" + jps "'%-.192s' 㯠key %d ã«ãŠã„ã¦é‡è¤‡ã—ã¦ã„ã¾ã™", + est "Kattuv väärtus '%-.192s' võtmele %d" + fre "Duplicata du champ '%-.192s' pour la clef %d" + ger "Doppelter Eintrag '%-.192s' für Schlüssel %d" + greek "Διπλή εγγÏαφή '%-.192s' για το κλειδί %d" + hun "Duplikalt bejegyzes '%-.192s' a %d kulcs szerint." + ita "Valore duplicato '%-.192s' per la chiave %d" + jpn "'%-.192s' 㯠key %d ã«ãŠã„ã¦é‡è¤‡ã—ã¦ã„ã¾ã™" + kor "ì¤‘ë³µëœ ìž…ë ¥ ê°’ '%-.192s': key %d" + nor "Like verdier '%-.192s' for nøkkel %d" + norwegian-ny "Like verdiar '%-.192s' for nykkel %d" + pol "Powtórzone wyst?pienie '%-.192s' dla klucza %d" + por "Entrada '%-.192s' duplicada para a chave %d" + rum "Cimpul '%-.192s' e duplicat pentru cheia %d" + rus "ДублирующаÑÑÑ Ð·Ð°Ð¿Ð¸ÑÑŒ '%-.192s' по ключу %d" + serbian "Dupliran unos '%-.192s' za kljuÄ '%d'" + slo "Opakovaný kÄ¾ÃºÄ '%-.192s' (Äíslo kľúÄa %d)" + spa "Entrada duplicada '%-.192s' para la clave %d" + swe "Dubbel nyckel '%-.192s' för nyckel %d" + ukr "Дублюючий Ð·Ð°Ð¿Ð¸Ñ '%-.192s' Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡Ð° %d" +ER_WRONG_FIELD_SPEC 42000 S1009 + cze "Chybn-Bá specifikace sloupce '%-.192s'" + dan "Forkert kolonnespecifikaton for felt '%-.192s'" + nla "Verkeerde kolom specificatie voor kolom '%-.192s'" + eng "Incorrect column specifier for column '%-.192s'" + est "Vigane tulba kirjeldus tulbale '%-.192s'" + fre "Mauvais paramètre de champ pour le champ '%-.192s'" + ger "Falsche Spezifikation für Feld '%-.192s'" + greek "Εσφαλμένο column specifier για το πεδίο '%-.192s'" + hun "Rossz oszlopazonosito: '%-.192s'" + ita "Specifica errata per la colonna '%-.192s'" + kor "칼럼 '%-.192s'ì˜ ë¶€ì •í™•í•œ 칼럼 ì •ì˜ìž" + nor "Feil kolonne spesifikator for felt '%-.192s'" + norwegian-ny "Feil kolonne spesifikator for kolonne '%-.192s'" + pol "Błędna specyfikacja kolumny dla kolumny '%-.192s'" + por "Especificador de coluna incorreto para a coluna '%-.192s'" + rum "Specificandul coloanei '%-.192s' este incorect" + rus "Ðекорректный определитель Ñтолбца Ð´Ð»Ñ Ñтолбца '%-.192s'" + serbian "PogreÅ¡an naziv kolone za kolonu '%-.192s'" + slo "Chyba v Å¡pecifikácii poľa '%-.192s'" + spa "Especificador de columna erroneo para la columna '%-.192s'" + swe "Felaktigt kolumntyp för kolumn '%-.192s'" + ukr "Ðевірний Ñпецифікатор ÑÑ‚Ð¾Ð²Ð±Ñ†Ñ '%-.192s'" +ER_PARSE_ERROR 42000 s1009 + cze "%s bl-Bízko '%-.80s' na řádku %d" + dan "%s nær '%-.80s' pÃ¥ linje %d" + nla "%s bij '%-.80s' in regel %d" + eng "%s near '%-.80s' at line %d" + jps "%s : '%-.80s' 付近 : %d 行目", + est "%s '%-.80s' ligidal real %d" + fre "%s près de '%-.80s' à la ligne %d" + ger "%s bei '%-.80s' in Zeile %d" + greek "%s πλησίον '%-.80s' στη γÏαμμή %d" + hun "A %s a '%-.80s'-hez kozeli a %d sorban" + ita "%s vicino a '%-.80s' linea %d" + jpn "%s : '%-.80s' 付近 : %d 行目" + kor "'%s' ì—러 ê°™ì니다. ('%-.80s' 명령어 ë¼ì¸ %d)" + nor "%s nær '%-.80s' pÃ¥ linje %d" + norwegian-ny "%s attmed '%-.80s' pÃ¥ line %d" + pol "%s obok '%-.80s' w linii %d" + por "%s próximo a '%-.80s' na linha %d" + rum "%s linga '%-.80s' pe linia %d" + rus "%s около '%-.80s' на Ñтроке %d" + serbian "'%s' u iskazu '%-.80s' na liniji %d" + slo "%s blízko '%-.80s' na riadku %d" + spa "%s cerca '%-.80s' en la linea %d" + swe "%s nära '%-.80s' pÃ¥ rad %d" + ukr "%s Ð±Ñ–Ð»Ñ '%-.80s' в Ñтроці %d" +ER_EMPTY_QUERY 42000 + cze "V-Býsledek dotazu je prázdný" + dan "Forespørgsel var tom" + nla "Query was leeg" + eng "Query was empty" + jps "Query ãŒç©ºã§ã™.", + est "Tühi päring" + fre "Query est vide" + ger "Leere Abfrage" + greek "Το εÏώτημα (query) που θέσατε ήταν κενό" + hun "Ures lekerdezes." + ita "La query e` vuota" + jpn "Query ãŒç©ºã§ã™." + kor "쿼리결과가 없습니다." + nor "Forespørsel var tom" + norwegian-ny "Førespurnad var tom" + pol "Zapytanie byÅ‚o puste" + por "Consulta (query) estava vazia" + rum "Query-ul a fost gol" + rus "Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð¾ÐºÐ°Ð·Ð°Ð»ÑÑ Ð¿ÑƒÑтым" + serbian "Upit je bio prazan" + slo "Výsledok požiadavky bol prázdny" + spa "La query estaba vacia" + swe "FrÃ¥gan var tom" + ukr "ПуÑтий запит" +ER_NONUNIQ_TABLE 42000 S1009 + cze "Nejednozna-BÄná tabulka/alias: '%-.192s'" + dan "Tabellen/aliaset: '%-.192s' er ikke unikt" + nla "Niet unieke waarde tabel/alias: '%-.192s'" + eng "Not unique table/alias: '%-.192s'" + jps "'%-.192s' ã¯ä¸€æ„ã® table/alias åã§ã¯ã‚りã¾ã›ã‚“", + est "Ei ole unikaalne tabel/alias '%-.192s'" + fre "Table/alias: '%-.192s' non unique" + ger "Tabellenname/Alias '%-.192s' nicht eindeutig" + greek "ΑδÏνατη η ανεÏÏεση unique table/alias: '%-.192s'" + hun "Nem egyedi tabla/alias: '%-.192s'" + ita "Tabella/alias non unico: '%-.192s'" + jpn "'%-.192s' ã¯ä¸€æ„ã® table/alias åã§ã¯ã‚りã¾ã›ã‚“" + kor "Unique 하지 ì•Šì€ í…Œì´ë¸”/alias: '%-.192s'" + nor "Ikke unikt tabell/alias: '%-.192s'" + norwegian-ny "Ikkje unikt tabell/alias: '%-.192s'" + pol "Tabela/alias nie s? unikalne: '%-.192s'" + por "Tabela/alias '%-.192s' não única" + rum "Tabela/alias: '%-.192s' nu este unic" + rus "ПовторÑющаÑÑÑ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð°/пÑевдоним '%-.192s'" + serbian "Tabela ili alias nisu bili jedinstveni: '%-.192s'" + slo "Nie jednoznaÄná tabuľka/alias: '%-.192s'" + spa "Tabla/alias: '%-.192s' es no unica" + swe "Icke unikt tabell/alias: '%-.192s'" + ukr "Ðеунікальна таблицÑ/пÑевдонім: '%-.192s'" +ER_INVALID_DEFAULT 42000 S1009 + cze "Chybn-Bá defaultní hodnota pro '%-.192s'" + dan "Ugyldig standardværdi for '%-.192s'" + nla "Foutieve standaard waarde voor '%-.192s'" + eng "Invalid default value for '%-.192s'" + est "Vigane vaikeväärtus '%-.192s' jaoks" + fre "Valeur par défaut invalide pour '%-.192s'" + ger "Fehlerhafter Vorgabewert (DEFAULT) für '%-.192s'" + greek "Εσφαλμένη Ï€ÏοκαθοÏισμένη τιμή (default value) για '%-.192s'" + hun "Ervenytelen ertek: '%-.192s'" + ita "Valore di default non valido per '%-.192s'" + kor "'%-.192s'ì˜ ìœ íš¨í•˜ì§€ 못한 ë””í´íЏ ê°’ì„ ì‚¬ìš©í•˜ì…¨ìŠµë‹ˆë‹¤." + nor "Ugyldig standardverdi for '%-.192s'" + norwegian-ny "Ugyldig standardverdi for '%-.192s'" + pol "NiewÅ‚a?ciwa warto?ć domy?lna dla '%-.192s'" + por "Valor padrão (default) inválido para '%-.192s'" + rum "Valoarea de default este invalida pentru '%-.192s'" + rus "Ðекорректное значение по умолчанию Ð´Ð»Ñ '%-.192s'" + serbian "LoÅ¡a default vrednost za '%-.192s'" + slo "Chybná implicitná hodnota pre '%-.192s'" + spa "Valor por defecto invalido para '%-.192s'" + swe "Ogiltigt DEFAULT värde för '%-.192s'" + ukr "Ðевірне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾ замовчуванню Ð´Ð»Ñ '%-.192s'" +ER_MULTIPLE_PRI_KEY 42000 S1009 + cze "Definov-Báno více primárních klíÄů" + dan "Flere primærnøgler specificeret" + nla "Meerdere primaire zoeksleutels gedefinieerd" + eng "Multiple primary key defined" + jps "複数㮠primary key ãŒå®šç¾©ã•れã¾ã—ãŸ", + est "Mitut primaarset võtit ei saa olla" + fre "Plusieurs clefs primaires définies" + ger "Mehrere Primärschlüssel (PRIMARY KEY) definiert" + greek "ΠεÏισσότεÏα από ένα primary key οÏίστηκαν" + hun "Tobbszoros elsodleges kulcs definialas." + ita "Definite piu` chiave primarie" + jpn "複数㮠primary key ãŒå®šç¾©ã•れã¾ã—ãŸ" + kor "Multiple primary keyê°€ ì •ì˜ë˜ì–´ 있슴" + nor "Fleire primærnøkle spesifisert" + norwegian-ny "Fleire primærnyklar spesifisert" + pol "Zdefiniowano wiele kluczy podstawowych" + por "Definida mais de uma chave primária" + rum "Chei primare definite de mai multe ori" + rus "Указано неÑколько первичных ключей" + serbian "Definisani viÅ¡estruki primarni kljuÄevi" + slo "Zadefinovaných viac primárnych kľúÄov" + spa "Multiples claves primarias definidas" + swe "Flera PRIMARY KEY använda" + ukr "Первинного ключа визначено неодноразово" +ER_TOO_MANY_KEYS 42000 S1009 + cze "Zad-Báno příliÅ¡ mnoho klíÄů, je povoleno nejvíce %d klíÄů" + dan "For mange nøgler specificeret. Kun %d nøgler mÃ¥ bruges" + nla "Teveel zoeksleutels gedefinieerd. Maximaal zijn %d zoeksleutels toegestaan" + eng "Too many keys specified; max %d keys allowed" + jps "key ã®æŒ‡å®šãŒå¤šã™ãŽã¾ã™. key ã¯æœ€å¤§ %d ã¾ã§ã§ã™", + est "Liiga palju võtmeid. Maksimaalselt võib olla %d võtit" + fre "Trop de clefs sont définies. Maximum de %d clefs alloué" + ger "Zu viele Schlüssel definiert. Maximal %d Schlüssel erlaubt" + greek "ΠάÏα πολλά key οÏίσθηκαν. Το Ï€Î¿Î»Ï %d επιτÏέπονται" + hun "Tul sok kulcs. Maximum %d kulcs engedelyezett." + ita "Troppe chiavi. Sono ammesse max %d chiavi" + jpn "key ã®æŒ‡å®šãŒå¤šã™ãŽã¾ã™. key ã¯æœ€å¤§ %d ã¾ã§ã§ã™" + kor "너무 ë§Žì€ í‚¤ê°€ ì •ì˜ë˜ì–´ 있ì니다.. 최대 %dì˜ í‚¤ê°€ 가능함" + nor "For mange nøkler spesifisert. Maks %d nøkler tillatt" + norwegian-ny "For mange nykler spesifisert. Maks %d nyklar tillatt" + pol "Okre?lono zbyt wiele kluczy. DostÄ™pnych jest maksymalnie %d kluczy" + por "Especificadas chaves demais. O máximo permitido são %d chaves" + rum "Prea multe chei. Numarul de chei maxim este %d" + rus "Указано Ñлишком много ключей. РазрешаетÑÑ ÑƒÐºÐ°Ð·Ñ‹Ð²Ð°Ñ‚ÑŒ не более %d ключей" + serbian "Navedeno je previÅ¡e kljuÄeva. Maksimum %d kljuÄeva je dozvoljeno" + slo "Zadaných ríliÅ¡ veľa kľúÄov. Najviac %d kľúÄov je povolených" + spa "Demasiadas claves primarias declaradas. Un maximo de %d claves son permitidas" + swe "För mÃ¥nga nycklar använda. Man fÃ¥r ha högst %d nycklar" + ukr "Забагато ключів зазначено. Дозволено не більше %d ключів" +ER_TOO_MANY_KEY_PARTS 42000 S1009 + cze "Zad-Báno příliÅ¡ mnoho Äást klíÄů, je povoleno nejvíce %d Äástí" + dan "For mange nøgledele specificeret. Kun %d dele mÃ¥ bruges" + nla "Teveel zoeksleutel onderdelen gespecificeerd. Maximaal %d onderdelen toegestaan" + eng "Too many key parts specified; max %d parts allowed" + est "Võti koosneb liiga paljudest osadest. Maksimaalselt võib olla %d osa" + fre "Trop de parties specifiées dans la clef. Maximum de %d parties" + ger "Zu viele Teilschlüssel definiert. Maximal %d Teilschlüssel erlaubt" + greek "ΠάÏα πολλά key parts οÏίσθηκαν. Το Ï€Î¿Î»Ï %d επιτÏέπονται" + hun "Tul sok kulcsdarabot definialt. Maximum %d resz engedelyezett" + ita "Troppe parti di chiave specificate. Sono ammesse max %d parti" + kor "너무 ë§Žì€ í‚¤ 부분(parts)ë“¤ì´ ì •ì˜ë˜ì–´ 있ì니다.. 최대 %d ë¶€ë¶„ì´ ê°€ëŠ¥í•¨" + nor "For mange nøkkeldeler spesifisert. Maks %d deler tillatt" + norwegian-ny "For mange nykkeldelar spesifisert. Maks %d delar tillatt" + pol "Okre?lono zbyt wiele czÄ™?ci klucza. DostÄ™pnych jest maksymalnie %d czÄ™?ci" + por "Especificadas partes de chave demais. O máximo permitido são %d partes" + rum "Prea multe chei. Numarul de chei maxim este %d" + rus "Указано Ñлишком много чаÑтей ÑоÑтавного ключа. РазрешаетÑÑ ÑƒÐºÐ°Ð·Ñ‹Ð²Ð°Ñ‚ÑŒ не более %d чаÑтей" + serbian "Navedeno je previÅ¡e delova kljuÄa. Maksimum %d delova je dozvoljeno" + slo "Zadaných ríliÅ¡ veľa Äastí kľúÄov. Je povolených najviac %d Äastí" + spa "Demasiadas partes de clave declaradas. Un maximo de %d partes son permitidas" + swe "För mÃ¥nga nyckeldelar använda. Man fÃ¥r ha högst %d nyckeldelar" + ukr "Забагато чаÑтин ключа зазначено. Дозволено не більше %d чаÑтин" +ER_TOO_LONG_KEY 42000 S1009 + cze "Zadan-Bý klÃ­Ä byl příliÅ¡ dlouhý, nejvÄ›tší délka klíÄe je %d" + dan "Specificeret nøgle var for lang. Maksimal nøglelængde er %d" + nla "Gespecificeerde zoeksleutel was te lang. De maximale lengte is %d" + eng "Specified key was too long; max key length is %d bytes" + jps "key ãŒé•·ã™ãŽã¾ã™. key ã®é•·ã•ã¯æœ€å¤§ %d ã§ã™", + est "Võti on liiga pikk. Maksimaalne võtmepikkus on %d" + fre "La clé est trop longue. Longueur maximale: %d" + ger "Schlüssel ist zu lang. Die maximale Schlüssellänge beträgt %d" + greek "Το κλειδί που οÏίσθηκε είναι Ï€Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î¿. Το μέγιστο μήκος είναι %d" + hun "A megadott kulcs tul hosszu. Maximalis kulcshosszusag: %d" + ita "La chiave specificata e` troppo lunga. La max lunghezza della chiave e` %d" + jpn "key ãŒé•·ã™ãŽã¾ã™. key ã®é•·ã•ã¯æœ€å¤§ %d ã§ã™" + kor "ì •ì˜ëœ 키가 너무 ê¹ë‹ˆë‹¤. 최대 í‚¤ì˜ ê¸¸ì´ëŠ” %d입니다." + nor "Spesifisert nøkkel var for lang. Maks nøkkellengde er is %d" + norwegian-ny "Spesifisert nykkel var for lang. Maks nykkellengde er %d" + pol "Zdefinowany klucz jest zbyt dÅ‚ugi. Maksymaln? dÅ‚ugo?ci? klucza jest %d" + por "Chave especificada longa demais. O comprimento de chave máximo permitido é %d" + rum "Cheia specificata este prea lunga. Marimea maxima a unei chei este de %d" + rus "Указан Ñлишком длинный ключ. МакÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° ключа ÑоÑтавлÑет %d байт" + serbian "Navedeni kljuÄ je predug. Maksimalna dužina kljuÄa je %d" + slo "Zadaný kÄ¾ÃºÄ je príliÅ¡ dlhý, najväÄÅ¡ia dĺžka kľúÄa je %d" + spa "Declaracion de clave demasiado larga. La maxima longitud de clave es %d" + swe "För lÃ¥ng nyckel. Högsta tillÃ¥tna nyckellängd är %d" + ukr "Зазначений ключ задовгий. Ðайбільша довжина ключа %d байтів" +ER_KEY_COLUMN_DOES_NOT_EXITS 42000 S1009 + cze "Kl-BíÄový sloupec '%-.192s' v tabulce neexistuje" + dan "Nøglefeltet '%-.192s' eksisterer ikke i tabellen" + nla "Zoeksleutel kolom '%-.192s' bestaat niet in tabel" + eng "Key column '%-.192s' doesn't exist in table" + jps "Key column '%-.192s' ãŒãƒ†ãƒ¼ãƒ–ルã«ã‚りã¾ã›ã‚“.", + est "Võtme tulp '%-.192s' puudub tabelis" + fre "La clé '%-.192s' n'existe pas dans la table" + ger "In der Tabelle gibt es kein Schlüsselfeld '%-.192s'" + greek "Το πεδίο κλειδί '%-.192s' δεν υπάÏχει στον πίνακα" + hun "A(z) '%-.192s'kulcsoszlop nem letezik a tablaban" + ita "La colonna chiave '%-.192s' non esiste nella tabella" + jpn "Key column '%-.192s' ãŒãƒ†ãƒ¼ãƒ–ルã«ã‚りã¾ã›ã‚“." + kor "Key 칼럼 '%-.192s'는 í…Œì´ë¸”ì— ì¡´ìž¬í•˜ì§€ 않습니다." + nor "Nøkkel felt '%-.192s' eksiterer ikke i tabellen" + norwegian-ny "Nykkel kolonne '%-.192s' eksiterar ikkje i tabellen" + pol "Kolumna '%-.192s' zdefiniowana w kluczu nie istnieje w tabeli" + por "Coluna chave '%-.192s' não existe na tabela" + rum "Coloana cheie '%-.192s' nu exista in tabela" + rus "Ключевой Ñтолбец '%-.192s' в таблице не ÑущеÑтвует" + serbian "KljuÄna kolona '%-.192s' ne postoji u tabeli" + slo "KľúÄový stĺpec '%-.192s' v tabuľke neexistuje" + spa "La columna clave '%-.192s' no existe en la tabla" + swe "Nyckelkolumn '%-.192s' finns inte" + ukr "Ключовий Ñтовбець '%-.192s' не Ñ–Ñнує у таблиці" +ER_BLOB_USED_AS_KEY 42000 S1009 + cze "Blob sloupec '%-.192s' nem-Bůže být použit jako klíÄ" + dan "BLOB feltet '%-.192s' kan ikke bruges ved specifikation af indeks" + nla "BLOB kolom '%-.192s' kan niet gebruikt worden bij zoeksleutel specificatie" + eng "BLOB column '%-.192s' can't be used in key specification with the used table type" + est "BLOB-tüüpi tulpa '%-.192s' ei saa kasutada võtmena" + fre "Champ BLOB '%-.192s' ne peut être utilisé dans une clé" + ger "BLOB-Feld '%-.192s' kann beim verwendeten Tabellentyp nicht als Schlüssel verwendet werden" + greek "Πεδίο Ï„Ïπου Blob '%-.192s' δεν μποÏεί να χÏησιμοποιηθεί στον οÏισμό ενός ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï (key specification)" + hun "Blob objektum '%-.192s' nem hasznalhato kulcskent" + ita "La colonna BLOB '%-.192s' non puo` essere usata nella specifica della chiave" + kor "BLOB 칼럼 '%-.192s'는 키 ì •ì˜ì—서 ì‚¬ìš©ë  ìˆ˜ 없습니다." + nor "Blob felt '%-.192s' kan ikke brukes ved spesifikasjon av nøkler" + norwegian-ny "Blob kolonne '%-.192s' kan ikkje brukast ved spesifikasjon av nyklar" + pol "Kolumna typu Blob '%-.192s' nie może być użyta w specyfikacji klucza" + por "Coluna BLOB '%-.192s' não pode ser utilizada na especificação de chave para o tipo de tabela usado" + rum "Coloana de tip BLOB '%-.192s' nu poate fi folosita in specificarea cheii cu tipul de tabla folosit" + rus "Столбец типа BLOB '%-.192s' не может быть иÑпользован как значение ключа в таблице такого типа" + serbian "BLOB kolona '%-.192s' ne može biti upotrebljena za navoÄ‘enje kljuÄa sa tipom tabele koji se trenutno koristi" + slo "Blob pole '%-.192s' nemôže byÅ¥ použité ako kľúÄ" + spa "La columna Blob '%-.192s' no puede ser usada en una declaracion de clave" + swe "En BLOB '%-.192s' kan inte vara nyckel med den använda tabelltypen" + ukr "BLOB Ñтовбець '%-.192s' не може бути викориÑтаний у визначенні ключа в цьому типі таблиці" +ER_TOO_BIG_FIELDLENGTH 42000 S1009 + cze "P-BříliÅ¡ velká délka sloupce '%-.192s' (nejvíce %lu). Použijte BLOB" + dan "For stor feltlængde for kolonne '%-.192s' (maks = %lu). Brug BLOB i stedet" + nla "Te grote kolomlengte voor '%-.192s' (max = %lu). Maak hiervoor gebruik van het type BLOB" + eng "Column length too big for column '%-.192s' (max = %lu); use BLOB or TEXT instead" + jps "column '%-.192s' ã¯,確ä¿ã™ã‚‹ column ã®å¤§ãã•ãŒå¤šã™ãŽã¾ã™. (最大 %lu ã¾ã§). BLOB ã‚’ã‹ã‚りã«ä½¿ç”¨ã—ã¦ãã ã•ã„." + est "Tulba '%-.192s' pikkus on liiga pikk (maksimaalne pikkus: %lu). Kasuta BLOB väljatüüpi" + fre "Champ '%-.192s' trop long (max = %lu). Utilisez un BLOB" + ger "Feldlänge für Feld '%-.192s' zu groß (maximal %lu). BLOB- oder TEXT-Spaltentyp verwenden!" + greek "Î Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î¿ μήκος για το πεδίο '%-.192s' (max = %lu). ΠαÏακαλώ χÏησιμοποιείστε τον Ï„Ïπο BLOB" + hun "A(z) '%-.192s' oszlop tul hosszu. (maximum = %lu). Hasznaljon BLOB tipust inkabb." + ita "La colonna '%-.192s' e` troppo grande (max=%lu). Utilizza un BLOB." + jpn "column '%-.192s' ã¯,確ä¿ã™ã‚‹ column ã®å¤§ãã•ãŒå¤šã™ãŽã¾ã™. (最大 %lu ã¾ã§). BLOB ã‚’ã‹ã‚りã«ä½¿ç”¨ã—ã¦ãã ã•ã„." + kor "칼럼 '%-.192s'ì˜ ì¹¼ëŸ¼ 길ì´ê°€ 너무 ê¹ë‹ˆë‹¤ (최대 = %lu). ëŒ€ì‹ ì— BLOB를 사용하세요." + nor "For stor nøkkellengde for kolonne '%-.192s' (maks = %lu). Bruk BLOB istedenfor" + norwegian-ny "For stor nykkellengde for felt '%-.192s' (maks = %lu). Bruk BLOB istadenfor" + pol "Zbyt duża dÅ‚ugo?ć kolumny '%-.192s' (maks. = %lu). W zamian użyj typu BLOB" + por "Comprimento da coluna '%-.192s' grande demais (max = %lu); use BLOB em seu lugar" + rum "Lungimea coloanei '%-.192s' este prea lunga (maximum = %lu). Foloseste BLOB mai bine" + rus "Слишком Ð±Ð¾Ð»ÑŒÑˆÐ°Ñ Ð´Ð»Ð¸Ð½Ð° Ñтолбца '%-.192s' (макÑимум = %lu). ИÑпользуйте тип BLOB или TEXT вмеÑто текущего" + serbian "PreviÅ¡e podataka za kolonu '%-.192s' (maksimum je %lu). Upotrebite BLOB polje" + slo "PríliÅ¡ veľká dĺžka pre pole '%-.192s' (maximum = %lu). Použite BLOB" + spa "Longitud de columna demasiado grande para la columna '%-.192s' (maximo = %lu).Usar BLOB en su lugar" + swe "För stor kolumnlängd angiven för '%-.192s' (max= %lu). Använd en BLOB instället" + ukr "Задовга довжина ÑÑ‚Ð¾Ð²Ð±Ñ†Ñ '%-.192s' (max = %lu). ВикориÑтайте тип BLOB" +ER_WRONG_AUTO_KEY 42000 S1009 + cze "M-Bůžete mít pouze jedno AUTO pole a to musí být definováno jako klíÄ" + dan "Der kan kun specificeres eet AUTO_INCREMENT-felt, og det skal være indekseret" + nla "Er kan slechts 1 autofield zijn en deze moet als zoeksleutel worden gedefinieerd." + eng "Incorrect table definition; there can be only one auto column and it must be defined as a key" + jps "テーブルã®å®šç¾©ãŒé•ã„ã¾ã™; there can be only one auto column and it must be defined as a key", + est "Vigane tabelikirjeldus; Tabelis tohib olla üks auto_increment tüüpi tulp ning see peab olema defineeritud võtmena" + fre "Un seul champ automatique est permis et il doit être indexé" + ger "Falsche Tabellendefinition. Es darf nur eine AUTO_INCREMENT-Spalte geben, und diese muss als Schlüssel definiert werden" + greek "ΜποÏεί να υπάÏχει μόνο ένα auto field και Ï€Ïέπει να έχει οÏισθεί σαν key" + hun "Csak egy auto mezo lehetseges, es azt kulcskent kell definialni." + ita "Puo` esserci solo un campo AUTO e deve essere definito come chiave" + jpn "テーブルã®å®šç¾©ãŒé•ã„ã¾ã™; there can be only one auto column and it must be defined as a key" + kor "부정확한 í…Œì´ë¸” ì •ì˜; í…Œì´ë¸”ì€ í•˜ë‚˜ì˜ auto ì¹¼ëŸ¼ì´ ì¡´ìž¬í•˜ê³  키로 ì •ì˜ë˜ì–´ì ¸ì•¼ 합니다." + nor "Bare ett auto felt kan være definert som nøkkel." + norwegian-ny "Bare eitt auto felt kan være definert som nøkkel." + pol "W tabeli może być tylko jedno pole auto i musi ono być zdefiniowane jako klucz" + por "Definição incorreta de tabela. Somente é permitido um único campo auto-incrementado e ele tem que ser definido como chave" + rum "Definitia tabelei este incorecta; Nu pot fi mai mult de o singura coloana de tip auto si aceasta trebuie definita ca cheie" + rus "Ðекорректное определение таблицы: может ÑущеÑтвовать только один автоинкрементный Ñтолбец, и он должен быть определен как ключ" + serbian "PogreÅ¡na definicija tabele; U tabeli može postojati samo jedna 'AUTO' kolona i ona mora biti istovremeno definisana kao kolona kljuÄa" + slo "Môžete maÅ¥ iba jedno AUTO pole a to musí byÅ¥ definované ako kľúÄ" + spa "Puede ser solamente un campo automatico y este debe ser definido como una clave" + swe "Det fÃ¥r finnas endast ett AUTO_INCREMENT-fält och detta mÃ¥ste vara en nyckel" + ukr "Ðевірне Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ–; Може бути лише один автоматичний Ñтовбець, що повинен бути визначений Ñк ключ" +ER_UNUSED_2 + eng "You should never see it" +ER_NORMAL_SHUTDOWN + cze "%s: norm-Bální ukonÄení" + dan "%s: Normal nedlukning" + nla "%s: Normaal afgesloten" + eng "%s: Normal shutdown" + est "%s: MariaDB lõpetas" + fre "%s: Arrêt normal du serveur" + ger "%s: Normal heruntergefahren" + greek "%s: Φυσιολογική διαδικασία shutdown" + hun "%s: Normal leallitas" + ita "%s: Shutdown normale" + kor "%s: ì •ìƒì ì¸ shutdown" + nor "%s: Normal avslutning" + norwegian-ny "%s: Normal nedkopling" + pol "%s: Standardowe zakoÅ„czenie dziaÅ‚ania" + por "%s: 'Shutdown' normal" + rum "%s: Terminare normala" + rus "%s: ÐšÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ð¾Ñтановка" + serbian "%s: Normalno gaÅ¡enje" + slo "%s: normálne ukonÄenie" + spa "%s: Apagado normal" + swe "%s: Normal avslutning" + ukr "%s: Ðормальне завершеннÑ" +ER_GOT_SIGNAL + cze "%s: p-BÅ™ijat signal %d, konÄím\n" + dan "%s: Fangede signal %d. Afslutter!!\n" + nla "%s: Signaal %d. Systeem breekt af!\n" + eng "%s: Got signal %d. Aborting!\n" + jps "%s: Got signal %d. 中断!Â¥n", + est "%s: sain signaali %d. Lõpetan!\n" + fre "%s: Reçu le signal %d. Abandonne!\n" + ger "%s: Signal %d erhalten. Abbruch!\n" + greek "%s: Ελήφθη το μήνυμα %d. Η διαδικασία εγκαταλείπεται!\n" + hun "%s: %d jelzes. Megszakitva!\n" + ita "%s: Ricevuto segnale %d. Interruzione!\n" + jpn "%s: Got signal %d. 中断!\n" + kor "%s: %d 신호가 들어왔ìŒ. 중지!\n" + nor "%s: Oppdaget signal %d. Avslutter!\n" + norwegian-ny "%s: Oppdaga signal %d. Avsluttar!\n" + pol "%s: Otrzymano sygnaÅ‚ %d. KoÅ„czenie dziaÅ‚ania!\n" + por "%s: Obteve sinal %d. Abortando!\n" + rum "%s: Semnal %d obtinut. Aborting!\n" + rus "%s: Получен Ñигнал %d. Прекращаем!\n" + serbian "%s: Dobio signal %d. Prekidam!\n" + slo "%s: prijatý signál %d, ukonÄenie (Abort)!\n" + spa "%s: Recibiendo signal %d. Abortando!\n" + swe "%s: Fick signal %d. Avslutar!\n" + ukr "%s: Отримано Ñигнал %d. ПерериваюÑÑŒ!\n" +ER_SHUTDOWN_COMPLETE + cze "%s: ukon-BÄení práce hotovo\n" + dan "%s: Server lukket\n" + nla "%s: Afsluiten afgerond\n" + eng "%s: Shutdown complete\n" + jps "%s: Shutdown 完了¥n", + est "%s: Lõpp\n" + fre "%s: Arrêt du serveur terminé\n" + ger "%s: Herunterfahren beendet\n" + greek "%s: Η διαδικασία Shutdown ολοκληÏώθηκε\n" + hun "%s: A leallitas kesz\n" + ita "%s: Shutdown completato\n" + jpn "%s: Shutdown 完了\n" + kor "%s: Shutdown ì´ ì™„ë£Œë¨!\n" + nor "%s: Avslutning komplett\n" + norwegian-ny "%s: Nedkopling komplett\n" + pol "%s: ZakoÅ„czenie dziaÅ‚ania wykonane\n" + por "%s: 'Shutdown' completo\n" + rum "%s: Terminare completa\n" + rus "%s: ОÑтановка завершена\n" + serbian "%s: GaÅ¡enje zavrÅ¡eno\n" + slo "%s: práca ukonÄená\n" + spa "%s: Apagado completado\n" + swe "%s: Avslutning klar\n" + ukr "%s: Роботу завершено\n" +ER_FORCING_CLOSE 08S01 + cze "%s: n-Básilné uzavÅ™ení threadu %ld uživatele '%-.48s'\n" + dan "%s: Forceret nedlukning af trÃ¥d: %ld bruger: '%-.48s'\n" + nla "%s: Afsluiten afgedwongen van thread %ld gebruiker: '%-.48s'\n" + eng "%s: Forcing close of thread %ld user: '%-.48s'\n" + jps "%s: スレッド %ld 強制終了 user: '%-.48s'Â¥n", + est "%s: Sulgen jõuga lõime %ld kasutaja: '%-.48s'\n" + fre "%s: Arrêt forcé de la tâche (thread) %ld utilisateur: '%-.48s'\n" + ger "%s: Thread %ld zwangsweise beendet. Benutzer: '%-.48s'\n" + greek "%s: Το thread θα κλείσει %ld user: '%-.48s'\n" + hun "%s: A(z) %ld thread kenyszeritett zarasa. Felhasznalo: '%-.48s'\n" + ita "%s: Forzata la chiusura del thread %ld utente: '%-.48s'\n" + jpn "%s: スレッド %ld 強制終了 user: '%-.48s'\n" + kor "%s: thread %ldì˜ ê°•ì œ 종료 user: '%-.48s'\n" + nor "%s: PÃ¥tvinget avslutning av trÃ¥d %ld bruker: '%-.48s'\n" + norwegian-ny "%s: PÃ¥tvinga avslutning av trÃ¥d %ld brukar: '%-.48s'\n" + pol "%s: Wymuszenie zamkniÄ™cia w?tku %ld użytkownik: '%-.48s'\n" + por "%s: Forçando finalização da 'thread' %ld - usuário '%-.48s'\n" + rum "%s: Terminare fortata a thread-ului %ld utilizatorului: '%-.48s'\n" + rus "%s: Принудительно закрываем поток %ld пользователÑ: '%-.48s'\n" + serbian "%s: Usiljeno gaÅ¡enje thread-a %ld koji pripada korisniku: '%-.48s'\n" + slo "%s: násilné ukonÄenie vlákna %ld užívateľa '%-.48s'\n" + spa "%s: Forzando a cerrar el thread %ld usuario: '%-.48s'\n" + swe "%s: Stänger av trÃ¥d %ld; användare: '%-.48s'\n" + ukr "%s: ПриÑкорюю Ð·Ð°ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð³Ñ–Ð»ÐºÐ¸ %ld кориÑтувача: '%-.48s'\n" +ER_IPSOCK_ERROR 08S01 + cze "Nemohu vytvo-BÅ™it IP socket" + dan "Kan ikke oprette IP socket" + nla "Kan IP-socket niet openen" + eng "Can't create IP socket" + jps "IP socket ãŒä½œã‚Œã¾ã›ã‚“", + est "Ei suuda luua IP socketit" + fre "Ne peut créer la connexion IP (socket)" + ger "Kann IP-Socket nicht erzeugen" + greek "Δεν είναι δυνατή η δημιουÏγία IP socket" + hun "Az IP socket nem hozhato letre" + ita "Impossibile creare il socket IP" + jpn "IP socket ãŒä½œã‚Œã¾ã›ã‚“" + kor "IP ì†Œì¼“ì„ ë§Œë“¤ì§€ 못했습니다." + nor "Kan ikke opprette IP socket" + norwegian-ny "Kan ikkje opprette IP socket" + pol "Nie można stworzyć socket'u IP" + por "Não pode criar o soquete IP" + rum "Nu pot crea IP socket" + rus "Ðевозможно Ñоздать IP-Ñокет" + serbian "Ne mogu da kreiram IP socket" + slo "Nemôžem vytvoriÅ¥ IP socket" + spa "No puedo crear IP socket" + swe "Kan inte skapa IP-socket" + ukr "Ðе можу Ñтворити IP роз'єм" +ER_NO_SUCH_INDEX 42S12 S1009 + cze "Tabulka '%-.192s' nem-Bá index odpovídající CREATE INDEX. VytvoÅ™te tabulku znovu" + dan "Tabellen '%-.192s' har ikke den nøgle, som blev brugt i CREATE INDEX. Genopret tabellen" + nla "Tabel '%-.192s' heeft geen INDEX zoals deze gemaakt worden met CREATE INDEX. Maak de tabel opnieuw" + eng "Table '%-.192s' has no index like the one used in CREATE INDEX; recreate the table" + jps "Table '%-.192s' ã¯ãã®ã‚ˆã†ãª index ã‚’æŒã£ã¦ã„ã¾ã›ã‚“(CREATE INDEX å®Ÿè¡Œæ™‚ã«æŒ‡å®šã•れã¦ã„ã¾ã›ã‚“). テーブルを作り直ã—ã¦ãã ã•ã„", + est "Tabelil '%-.192s' puuduvad võtmed. Loo tabel uuesti" + fre "La table '%-.192s' n'a pas d'index comme celle utilisée dans CREATE INDEX. Recréez la table" + ger "Tabelle '%-.192s' besitzt keinen wie den in CREATE INDEX verwendeten Index. Tabelle neu anlegen" + greek "Ο πίνακας '%-.192s' δεν έχει ευÏετήÏιο (index) σαν αυτό που χÏησιμοποιείτε στην CREATE INDEX. ΠαÏακαλώ, ξαναδημιουÏγήστε τον πίνακα" + hun "A(z) '%-.192s' tablahoz nincs meg a CREATE INDEX altal hasznalt index. Alakitsa at a tablat" + ita "La tabella '%-.192s' non ha nessun indice come quello specificatato dalla CREATE INDEX. Ricrea la tabella" + jpn "Table '%-.192s' ã¯ãã®ã‚ˆã†ãª index ã‚’æŒã£ã¦ã„ã¾ã›ã‚“(CREATE INDEX å®Ÿè¡Œæ™‚ã«æŒ‡å®šã•れã¦ã„ã¾ã›ã‚“). テーブルを作り直ã—ã¦ãã ã•ã„" + kor "í…Œì´ë¸” '%-.192s'는 ì¸ë±ìŠ¤ë¥¼ 만들지 않았습니다. alter í…Œì´ë¸”ëª…ë ¹ì„ ì´ìš©í•˜ì—¬ í…Œì´ë¸”ì„ ìˆ˜ì •í•˜ì„¸ìš”..." + nor "Tabellen '%-.192s' har ingen index som den som er brukt i CREATE INDEX. Gjenopprett tabellen" + norwegian-ny "Tabellen '%-.192s' har ingen index som den som er brukt i CREATE INDEX. Oprett tabellen pÃ¥ nytt" + pol "Tabela '%-.192s' nie ma indeksu takiego jak w CREATE INDEX. Stwórz tabelÄ™" + por "Tabela '%-.192s' não possui um índice como o usado em CREATE INDEX. Recrie a tabela" + rum "Tabela '%-.192s' nu are un index ca acela folosit in CREATE INDEX. Re-creeaza tabela" + rus "Ð’ таблице '%-.192s' нет такого индекÑа, как в CREATE INDEX. Создайте таблицу заново" + serbian "Tabela '%-.192s' nema isti indeks kao onaj upotrebljen pri komandi 'CREATE INDEX'. Napravite tabelu ponovo" + slo "Tabuľka '%-.192s' nemá index zodpovedajúci CREATE INDEX. Vytvorte tabulku znova" + spa "La tabla '%-.192s' no tiene indice como el usado en CREATE INDEX. Crea de nuevo la tabla" + swe "Tabellen '%-.192s' har inget index som motsvarar det angivna i CREATE INDEX. Skapa om tabellen" + ukr "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ '%-.192s' має індекÑ, що не Ñпівпадає з вказанним у CREATE INDEX. Створіть таблицю знову" +ER_WRONG_FIELD_TERMINATORS 42000 S1009 + cze "Argument separ-Bátoru položek nebyl oÄekáván. PÅ™eÄtÄ›te si manuál" + dan "Felt adskiller er ikke som forventet, se dokumentationen" + nla "De argumenten om velden te scheiden zijn anders dan verwacht. Raadpleeg de handleiding" + eng "Field separator argument is not what is expected; check the manual" + est "Väljade eraldaja erineb oodatust. Tutvu kasutajajuhendiga" + fre "Séparateur de champs inconnu. Vérifiez dans le manuel" + ger "Feldbegrenzer-Argument ist nicht in der erwarteten Form. Bitte im Handbuch nachlesen" + greek "Ο διαχωÏιστής πεδίων δεν είναι αυτός που αναμενόταν. ΠαÏακαλώ ανατÏέξτε στο manual" + hun "A mezoelvalaszto argumentumok nem egyeznek meg a varttal. Nezze meg a kezikonyvben!" + ita "L'argomento 'Field separator' non e` quello atteso. Controlla il manuale" + kor "필드 êµ¬ë¶„ìž ì¸ìˆ˜ë“¤ì´ 완전하지 않습니다. ë©”ë‰´ì–¼ì„ ì°¾ì•„ 보세요." + nor "Felt skiller argumentene er ikke som forventet, se dokumentasjonen" + norwegian-ny "Felt skiljer argumenta er ikkje som venta, sjÃ¥ dokumentasjonen" + pol "Nie oczekiwano separatora. SprawdĽ podrÄ™cznik" + por "Argumento separador de campos não é o esperado. Cheque o manual" + rum "Argumentul pentru separatorul de cimpuri este diferit de ce ma asteptam. Verifica manualul" + rus "Ðргумент Ñ€Ð°Ð·Ð´ÐµÐ»Ð¸Ñ‚ÐµÐ»Ñ Ð¿Ð¾Ð»ÐµÐ¹ - не тот, который ожидалÑÑ. ОбращайтеÑÑŒ к документации" + serbian "Argument separatora polja nije ono Å¡to se oÄekivalo. Proverite uputstvo MariaDB server-a" + slo "Argument oddeľovaÄ polí nezodpovedá požiadavkám. Skontrolujte v manuáli" + spa "Los separadores de argumentos del campo no son los especificados. Comprueba el manual" + swe "Fältseparatorerna är vad som förväntades. Kontrollera mot manualen" + ukr "Хибний розділювач полів. Почитайте документацію" +ER_BLOBS_AND_NO_TERMINATED 42000 S1009 + cze "Nen-Bí možné použít pevný rowlength s BLOBem. Použijte 'fields terminated by'." + dan "Man kan ikke bruge faste feltlængder med BLOB. Brug i stedet 'fields terminated by'." + nla "Bij het gebruik van BLOBs is het niet mogelijk om vaste rijlengte te gebruiken. Maak s.v.p. gebruik van 'fields terminated by'." + eng "You can't use fixed rowlength with BLOBs; please use 'fields terminated by'" + est "BLOB-tüüpi väljade olemasolul ei saa kasutada fikseeritud väljapikkust. Vajalik 'fields terminated by' määrang." + fre "Vous ne pouvez utiliser des lignes de longueur fixe avec des BLOBs. Utiliser 'fields terminated by'." + ger "Eine feste Zeilenlänge kann für BLOB-Felder nicht verwendet werden. Bitte 'fields terminated by' verwenden" + greek "Δεν μποÏείτε να χÏησιμοποιήσετε fixed rowlength σε BLOBs. ΠαÏακαλώ χÏησιμοποιείστε 'fields terminated by'." + hun "Fix hosszusagu BLOB-ok nem hasznalhatok. Hasznalja a 'mezoelvalaszto jelet' ." + ita "Non possono essere usate righe a lunghezza fissa con i BLOB. Usa 'FIELDS TERMINATED BY'." + jpn "You can't use fixed rowlength with BLOBs; please use 'fields terminated by'." + kor "BLOB로는 고정길ì´ì˜ lowlength를 사용할 수 없습니다. 'fields terminated by'를 사용하세요." + nor "En kan ikke bruke faste feltlengder med BLOB. Vennlisgt bruk 'fields terminated by'." + norwegian-ny "Ein kan ikkje bruke faste feltlengder med BLOB. Vennlisgt bruk 'fields terminated by'." + pol "Nie można użyć staÅ‚ej dÅ‚ugo?ci wiersza z polami typu BLOB. Użyj 'fields terminated by'." + por "Você não pode usar comprimento de linha fixo com BLOBs. Por favor, use campos com comprimento limitado." + rum "Nu poti folosi lungime de cimp fix pentru BLOB-uri. Foloseste 'fields terminated by'." + rus "ФикÑированный размер запиÑи Ñ Ð¿Ð¾Ð»Ñми типа BLOB иÑпользовать нельзÑ, применÑйте 'fields terminated by'" + serbian "Ne možete koristiti fiksnu veliÄinu sloga kada imate BLOB polja. Molim koristite 'fields terminated by' opciju." + slo "Nie je možné použiÅ¥ fixnú dĺžku s BLOBom. Použite 'fields terminated by'." + spa "No puedes usar longitudes de filas fijos con BLOBs. Por favor usa 'campos terminados por '." + swe "Man kan inte använda fast radlängd med blobs. Använd 'fields terminated by'" + ukr "Ðе можна викориÑтовувати Ñталу довжину Ñтроки з BLOB. ЗкориÑтайтеÑÑ 'fields terminated by'" +ER_TEXTFILE_NOT_READABLE + cze "Soubor '%-.128s' mus-Bí být v adresáři databáze nebo Äitelný pro vÅ¡echny" + dan "Filen '%-.128s' skal være i database-folderen, eller kunne læses af alle" + nla "Het bestand '%-.128s' dient in de database directory voor the komen of leesbaar voor iedereen te zijn." + eng "The file '%-.128s' must be in the database directory or be readable by all" + jps "ファイル '%-.128s' 㯠databse ã® directory ã«ã‚ã‚‹ã‹å…¨ã¦ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒèª­ã‚るよã†ã«è¨±å¯ã•れã¦ã„ãªã‘れã°ãªã‚Šã¾ã›ã‚“.", + est "Fail '%-.128s' peab asuma andmebaasi kataloogis või olema kõigile loetav" + fre "Le fichier '%-.128s' doit être dans le répertoire de la base et lisible par tous" + ger "Datei '%-.128s' muss im Datenbank-Verzeichnis vorhanden oder lesbar für alle sein" + greek "Το αÏχείο '%-.128s' Ï€Ïέπει να υπάÏχει στο database directory ή να μποÏεί να διαβαστεί από όλους" + hun "A(z) '%-.128s'-nak az adatbazis konyvtarban kell lennie, vagy mindenki szamara olvashatonak" + ita "Il file '%-.128s' deve essere nella directory del database e deve essere leggibile da tutti" + jpn "ファイル '%-.128s' 㯠databse ã® directory ã«ã‚ã‚‹ã‹å…¨ã¦ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒèª­ã‚るよã†ã«è¨±å¯ã•れã¦ã„ãªã‘れã°ãªã‚Šã¾ã›ã‚“." + kor "'%-.128s' í™”ì¼ëŠ” ë°ì´íƒ€ë² ì´ìФ ë””ë ‰í† ë¦¬ì— ì¡´ìž¬í•˜ê±°ë‚˜ 모ë‘ì—게 ì½ê¸° 가능하여야 합니다." + nor "Filen '%-.128s' mÃ¥ være i database-katalogen for Ã¥ være lesbar for alle" + norwegian-ny "Filen '%-.128s' mÃ¥ være i database-katalogen for Ã¥ være lesbar for alle" + pol "Plik '%-.128s' musi znajdować sie w katalogu bazy danych lub mieć prawa czytania przez wszystkich" + por "Arquivo '%-.128s' tem que estar no diretório do banco de dados ou ter leitura possível para todos" + rum "Fisierul '%-.128s' trebuie sa fie in directorul bazei de data sau trebuie sa poata sa fie citit de catre toata lumea (verifica permisiile)" + rus "Файл '%-.128s' должен находитьÑÑ Ð² том же каталоге, что и база данных, или быть общедоÑтупным Ð´Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ" + serbian "File '%-.128s' mora biti u direktorijumu gde su file-ovi baze i mora imati odgovarajuća prava pristupa" + slo "Súbor '%-.128s' musí byÅ¥ v adresári databázy, alebo Äitateľný pre vÅ¡etkých" + spa "El archivo '%-.128s' debe estar en el directorio de la base de datos o ser de lectura por todos" + swe "Textfilen '%-.128s' mÃ¥ste finnas i databasbiblioteket eller vara läsbar för alla" + ukr "Файл '%-.128s' повинен бути у теці бази данних або мати вÑтановлене право на Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð´Ð»Ñ ÑƒÑÑ–Ñ…" +ER_FILE_EXISTS_ERROR + cze "Soubor '%-.200s' ji-Bž existuje" + dan "Filen '%-.200s' eksisterer allerede" + nla "Het bestand '%-.200s' bestaat reeds" + eng "File '%-.200s' already exists" + jps "File '%-.200s' ã¯æ—¢ã«å­˜åœ¨ã—ã¾ã™", + est "Fail '%-.200s' juba eksisteerib" + fre "Le fichier '%-.200s' existe déjà" + ger "Datei '%-.200s' bereits vorhanden" + greek "Το αÏχείο '%-.200s' υπάÏχει ήδη" + hun "A '%-.200s' file mar letezik." + ita "Il file '%-.200s' esiste gia`" + jpn "File '%-.200s' ã¯æ—¢ã«å­˜åœ¨ã—ã¾ã™" + kor "'%-.200s' í™”ì¼ì€ ì´ë¯¸ 존재합니다." + nor "Filen '%-.200s' eksisterte allerede" + norwegian-ny "Filen '%-.200s' eksisterte allereide" + pol "Plik '%-.200s' już istnieje" + por "Arquivo '%-.200s' já existe" + rum "Fisierul '%-.200s' exista deja" + rus "Файл '%-.200s' уже ÑущеÑтвует" + serbian "File '%-.200s' već postoji" + slo "Súbor '%-.200s' už existuje" + spa "El archivo '%-.200s' ya existe" + swe "Filen '%-.200s' existerar redan" + ukr "Файл '%-.200s' вже Ñ–Ñнує" +ER_LOAD_INFO + cze "Z-Báznamů: %ld Vymazáno: %ld PÅ™eskoÄeno: %ld Varování: %ld" + dan "Poster: %ld Fjernet: %ld Sprunget over: %ld Advarsler: %ld" + nla "Records: %ld Verwijderd: %ld Overgeslagen: %ld Waarschuwingen: %ld" + eng "Records: %ld Deleted: %ld Skipped: %ld Warnings: %ld" + jps "レコード数: %ld 削除: %ld Skipped: %ld Warnings: %ld", + est "Kirjeid: %ld Kustutatud: %ld Vahele jäetud: %ld Hoiatusi: %ld" + fre "Enregistrements: %ld Effacés: %ld Non traités: %ld Avertissements: %ld" + ger "Datensätze: %ld Gelöscht: %ld Ausgelassen: %ld Warnungen: %ld" + greek "ΕγγÏαφές: %ld ΔιαγÏαφές: %ld ΠαÏεκάμφθησαν: %ld ΠÏοειδοποιήσεις: %ld" + hun "Rekordok: %ld Torolve: %ld Skipped: %ld Warnings: %ld" + ita "Records: %ld Cancellati: %ld Saltati: %ld Avvertimenti: %ld" + jpn "レコード数: %ld 削除: %ld Skipped: %ld Warnings: %ld" + kor "레코드: %ldê°œ ì‚­ì œ: %ldê°œ 스킵: %ldê°œ 경고: %ldê°œ" + nor "Poster: %ld Fjernet: %ld Hoppet over: %ld Advarsler: %ld" + norwegian-ny "Poster: %ld Fjerna: %ld Hoppa over: %ld Ã…tvaringar: %ld" + pol "Recordów: %ld UsuniÄ™tych: %ld PominiÄ™tych: %ld OstrzeżeÅ„: %ld" + por "Registros: %ld - Deletados: %ld - Ignorados: %ld - Avisos: %ld" + rum "Recorduri: %ld Sterse: %ld Sarite (skipped): %ld Atentionari (warnings): %ld" + rus "ЗапиÑей: %ld Удалено: %ld Пропущено: %ld Предупреждений: %ld" + serbian "Slogova: %ld Izbrisano: %ld PreskoÄeno: %ld Upozorenja: %ld" + slo "Záznamov: %ld Zmazaných: %ld PreskoÄených: %ld Varovania: %ld" + spa "Registros: %ld Borrados: %ld Saltados: %ld Peligros: %ld" + swe "Rader: %ld Bortagna: %ld Dubletter: %ld Varningar: %ld" + ukr "ЗапиÑів: %ld Видалено: %ld Пропущено: %ld ЗаÑтережень: %ld" +ER_ALTER_INFO + cze "Z-Báznamů: %ld Zdvojených: %ld" + dan "Poster: %ld Ens: %ld" + nla "Records: %ld Dubbel: %ld" + eng "Records: %ld Duplicates: %ld" + jps "レコード数: %ld é‡è¤‡: %ld", + est "Kirjeid: %ld Kattuvaid: %ld" + fre "Enregistrements: %ld Doublons: %ld" + ger "Datensätze: %ld Duplikate: %ld" + greek "ΕγγÏαφές: %ld Επαναλήψεις: %ld" + hun "Rekordok: %ld Duplikalva: %ld" + ita "Records: %ld Duplicati: %ld" + jpn "レコード数: %ld é‡è¤‡: %ld" + kor "레코드: %ldê°œ 중복: %ldê°œ" + nor "Poster: %ld Like: %ld" + norwegian-ny "Poster: %ld Like: %ld" + pol "Rekordów: %ld Duplikatów: %ld" + por "Registros: %ld - Duplicados: %ld" + rum "Recorduri: %ld Duplicate: %ld" + rus "ЗапиÑей: %ld Дубликатов: %ld" + serbian "Slogova: %ld Duplikata: %ld" + slo "Záznamov: %ld Opakovaných: %ld" + spa "Registros: %ld Duplicados: %ld" + swe "Rader: %ld Dubletter: %ld" + ukr "ЗапиÑів: %ld Дублікатів: %ld" +ER_WRONG_SUB_KEY + cze "Chybn-Bá podÄást klíÄe -- není to Å™etÄ›zec nebo je delší než délka Äásti klíÄe" + dan "Forkert indeksdel. Den anvendte nøgledel er ikke en streng eller længden er større end nøglelængden" + nla "Foutief sub-gedeelte van de zoeksleutel. De gebruikte zoeksleutel is geen onderdeel van een string of of de gebruikte lengte is langer dan de zoeksleutel" + eng "Incorrect prefix key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique prefix keys" + est "Vigane võtme osa. Kasutatud võtmeosa ei ole string tüüpi, määratud pikkus on pikem kui võtmeosa või tabelihandler ei toeta seda tüüpi võtmeid" + fre "Mauvaise sous-clef. Ce n'est pas un 'string' ou la longueur dépasse celle définie dans la clef" + ger "Falscher Unterteilschlüssel. Der verwendete Schlüsselteil ist entweder kein String, die verwendete Länge ist länger als der Teilschlüssel oder die Speicher-Engine unterstützt keine Unterteilschlüssel" + greek "Εσφαλμένο sub part key. Το χÏησιμοποιοÏμενο key part δεν είναι string ή το μήκος του είναι μεγαλÏτεÏο" + hun "Rossz alkulcs. A hasznalt kulcsresz nem karaktersorozat vagy hosszabb, mint a kulcsresz" + ita "Sotto-parte della chiave errata. La parte di chiave utilizzata non e` una stringa o la lunghezza e` maggiore della parte di chiave." + jpn "Incorrect prefix key; the used key part isn't a string or the used length is longer than the key part" + kor "부정확한 서버 파트 키. ì‚¬ìš©ëœ í‚¤ 파트가 스트ë§ì´ 아니거나 키 íŒŒíŠ¸ì˜ ê¸¸ì´ê°€ 너무 ê¹ë‹ˆë‹¤." + nor "Feil delnøkkel. Den brukte delnøkkelen er ikke en streng eller den oppgitte lengde er lengre enn nøkkel lengden" + norwegian-ny "Feil delnykkel. Den brukte delnykkelen er ikkje ein streng eller den oppgitte lengda er lengre enn nykkellengden" + pol "Błędna podczÄ™?ć klucza. Użyta czÄ™?ć klucza nie jest Å‚aÅ„cuchem lub użyta dÅ‚ugo?ć jest wiÄ™ksza niż czÄ™?ć klucza" + por "Sub parte da chave incorreta. A parte da chave usada não é uma 'string' ou o comprimento usado é maior que parte da chave ou o manipulador de tabelas não suporta sub chaves únicas" + rum "Componentul cheii este incorrect. Componentul folosit al cheii nu este un sir sau lungimea folosita este mai lunga decit lungimea cheii" + rus "ÐÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð°Ñ Ñ‡Ð°Ñть ключа. ИÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ Ñ‡Ð°Ñть ключа не ÑвлÑетÑÑ Ñтрокой, ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° больше, чем длина чаÑти ключа, или обработчик таблицы не поддерживает уникальные чаÑти ключа" + serbian "PogreÅ¡an pod-kljuÄ dela kljuÄa. Upotrebljeni deo kljuÄa nije string, upotrebljena dužina je veća od dela kljuÄa ili handler tabela ne podržava jedinstvene pod-kljuÄeve" + slo "Incorrect prefix key; the used key part isn't a string or the used length is longer than the key part" + spa "Parte de la clave es erronea. Una parte de la clave no es una cadena o la longitud usada es tan grande como la parte de la clave" + swe "Felaktig delnyckel. Nyckeldelen är inte en sträng eller den angivna längden är längre än kolumnlängden" + ukr "Ðевірна чаÑтина ключа. ВикориÑтана чаÑтина ключа не Ñ” Ñтрокою, задовга або вказівник таблиці не підтримує унікальних чаÑтин ключей" +ER_CANT_REMOVE_ALL_FIELDS 42000 + cze "Nen-Bí možné vymazat vÅ¡echny položky s ALTER TABLE. Použijte DROP TABLE" + dan "Man kan ikke slette alle felter med ALTER TABLE. Brug DROP TABLE i stedet." + nla "Het is niet mogelijk alle velden te verwijderen met ALTER TABLE. Gebruik a.u.b. DROP TABLE hiervoor!" + eng "You can't delete all columns with ALTER TABLE; use DROP TABLE instead" + jps "ALTER TABLE ã§å…¨ã¦ã® column ã¯å‰Šé™¤ã§ãã¾ã›ã‚“. DROP TABLE を使用ã—ã¦ãã ã•ã„", + est "ALTER TABLE kasutades ei saa kustutada kõiki tulpasid. Kustuta tabel DROP TABLE abil" + fre "Vous ne pouvez effacer tous les champs avec ALTER TABLE. Utilisez DROP TABLE" + ger "Mit ALTER TABLE können nicht alle Felder auf einmal gelöscht werden. Dafür DROP TABLE verwenden" + greek "Δεν είναι δυνατή η διαγÏαφή όλων των πεδίων με ALTER TABLE. ΠαÏακαλώ χÏησιμοποιείστε DROP TABLE" + hun "Az osszes mezo nem torolheto az ALTER TABLE-lel. Hasznalja a DROP TABLE-t helyette" + ita "Non si possono cancellare tutti i campi con una ALTER TABLE. Utilizzare DROP TABLE" + jpn "ALTER TABLE ã§å…¨ã¦ã® column ã¯å‰Šé™¤ã§ãã¾ã›ã‚“. DROP TABLE を使用ã—ã¦ãã ã•ã„" + kor "ALTER TABLE 명령으로는 모든 ì¹¼ëŸ¼ì„ ì§€ìš¸ 수 없습니다. DROP TABLE ëª…ë ¹ì„ ì´ìš©í•˜ì„¸ìš”." + nor "En kan ikke slette alle felt med ALTER TABLE. Bruk DROP TABLE isteden." + norwegian-ny "Ein kan ikkje slette alle felt med ALTER TABLE. Bruk DROP TABLE istadenfor." + pol "Nie można usun?ć wszystkich pól wykorzystuj?c ALTER TABLE. W zamian użyj DROP TABLE" + por "Você não pode deletar todas as colunas com ALTER TABLE; use DROP TABLE em seu lugar" + rum "Nu poti sterge toate coloanele cu ALTER TABLE. Foloseste DROP TABLE in schimb" + rus "ÐÐµÐ»ÑŒÐ·Ñ ÑƒÐ´Ð°Ð»Ð¸Ñ‚ÑŒ вÑе Ñтолбцы Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ ALTER TABLE. ИÑпользуйте DROP TABLE" + serbian "Ne možete da izbriÅ¡ete sve kolone pomoću komande 'ALTER TABLE'. Upotrebite komandu 'DROP TABLE' ako želite to da uradite" + slo "One nemôžem zmazaÅ¥ all fields with ALTER TABLE; use DROP TABLE instead" + spa "No puede borrar todos los campos con ALTER TABLE. Usa DROP TABLE para hacerlo" + swe "Man kan inte radera alla fält med ALTER TABLE. Använd DROP TABLE istället" + ukr "Ðе можливо видалити вÑÑ– Ñтовбці за допомогою ALTER TABLE. Ð”Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ ÑкориÑтайтеÑÑ DROP TABLE" +ER_CANT_DROP_FIELD_OR_KEY 42000 + cze "Nemohu zru-BÅ¡it '%-.192s' (provést DROP). Zkontrolujte, zda neexistují záznamy/klíÄe" + dan "Kan ikke udføre DROP '%-.192s'. Undersøg om feltet/nøglen eksisterer." + nla "Kan '%-.192s' niet weggooien. Controleer of het veld of de zoeksleutel daadwerkelijk bestaat." + eng "Can't DROP '%-.192s'; check that column/key exists" + jps "'%-.192s' を破棄ã§ãã¾ã›ã‚“ã§ã—ãŸ; check that column/key exists", + est "Ei suuda kustutada '%-.192s'. Kontrolli kas tulp/võti eksisteerib" + fre "Ne peut effacer (DROP) '%-.192s'. Vérifiez s'il existe" + ger "Kann '%-.192s' nicht löschen. Existiert die Spalte oder der Schlüssel?" + greek "ΑδÏνατη η διαγÏαφή (DROP) '%-.192s'. ΠαÏακαλώ ελέγξτε αν το πεδίο/κλειδί υπάÏχει" + hun "A DROP '%-.192s' nem lehetseges. Ellenorizze, hogy a mezo/kulcs letezik-e" + ita "Impossibile cancellare '%-.192s'. Controllare che il campo chiave esista" + jpn "'%-.192s' を破棄ã§ãã¾ã›ã‚“ã§ã—ãŸ; check that column/key exists" + kor "'%-.192s'를 DROPí•  수 없습니다. 칼럼ì´ë‚˜ 키가 존재하는지 채í¬í•˜ì„¸ìš”." + nor "Kan ikke DROP '%-.192s'. Undersøk om felt/nøkkel eksisterer." + norwegian-ny "Kan ikkje DROP '%-.192s'. Undersøk om felt/nøkkel eksisterar." + pol "Nie można wykonać operacji DROP '%-.192s'. SprawdĽ, czy to pole/klucz istnieje" + por "Não se pode fazer DROP '%-.192s'. Confira se esta coluna/chave existe" + rum "Nu pot sa DROP '%-.192s'. Verifica daca coloana/cheia exista" + rus "Ðевозможно удалить (DROP) '%-.192s'. УбедитеÑÑŒ что Ñтолбец/ключ дейÑтвительно ÑущеÑтвует" + serbian "Ne mogu da izvrÅ¡im komandu drop 'DROP' na '%-.192s'. Proverite da li ta kolona (odnosno kljuÄ) postoji" + slo "Nemôžem zruÅ¡iÅ¥ (DROP) '%-.192s'. Skontrolujte, Äi neexistujú záznamy/kľúÄe" + spa "No puedo ELIMINAR '%-.192s'. compuebe que el campo/clave existe" + swe "Kan inte ta bort '%-.192s'. Kontrollera att fältet/nyckel finns" + ukr "Ðе можу DROP '%-.192s'. Перевірте, чи цей Ñтовбець/ключ Ñ–Ñнує" +ER_INSERT_INFO + cze "Z-Báznamů: %ld Zdvojených: %ld Varování: %ld" + dan "Poster: %ld Ens: %ld Advarsler: %ld" + nla "Records: %ld Dubbel: %ld Waarschuwing: %ld" + eng "Records: %ld Duplicates: %ld Warnings: %ld" + jps "レコード数: %ld é‡è¤‡æ•°: %ld Warnings: %ld", + est "Kirjeid: %ld Kattuvaid: %ld Hoiatusi: %ld" + fre "Enregistrements: %ld Doublons: %ld Avertissements: %ld" + ger "Datensätze: %ld Duplikate: %ld Warnungen: %ld" + greek "ΕγγÏαφές: %ld Επαναλήψεις: %ld ΠÏοειδοποιήσεις: %ld" + hun "Rekordok: %ld Duplikalva: %ld Warnings: %ld" + ita "Records: %ld Duplicati: %ld Avvertimenti: %ld" + jpn "レコード数: %ld é‡è¤‡æ•°: %ld Warnings: %ld" + kor "레코드: %ldê°œ 중복: %ldê°œ 경고: %ldê°œ" + nor "Poster: %ld Like: %ld Advarsler: %ld" + norwegian-ny "Postar: %ld Like: %ld Ã…tvaringar: %ld" + pol "Rekordów: %ld Duplikatów: %ld OstrzeżeÅ„: %ld" + por "Registros: %ld - Duplicados: %ld - Avisos: %ld" + rum "Recorduri: %ld Duplicate: %ld Atentionari (warnings): %ld" + rus "ЗапиÑей: %ld Дубликатов: %ld Предупреждений: %ld" + serbian "Slogova: %ld Duplikata: %ld Upozorenja: %ld" + slo "Záznamov: %ld Opakovaných: %ld Varovania: %ld" + spa "Registros: %ld Duplicados: %ld Peligros: %ld" + swe "Rader: %ld Dubletter: %ld Varningar: %ld" + ukr "ЗапиÑів: %ld Дублікатів: %ld ЗаÑтережень: %ld" +ER_UPDATE_TABLE_USED + eng "You can't specify target table '%-.192s' for update in FROM clause" + ger "Die Verwendung der zu aktualisierenden Zieltabelle '%-.192s' ist in der FROM-Klausel nicht zulässig." + rus "Ðе допуÑкаетÑÑ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ðµ таблицы '%-.192s' в ÑпиÑке таблиц FROM Ð´Ð»Ñ Ð²Ð½ÐµÑÐµÐ½Ð¸Ñ Ð² нее изменений" + swe "INSERT-table '%-.192s' fÃ¥r inte finnas i FROM tabell-listan" + ukr "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ '%-.192s' що змінюєтьÑÑ Ð½Ðµ дозволена у переліку таблиць FROM" +ER_NO_SUCH_THREAD + cze "Nezn-Bámá identifikace threadu: %lu" + dan "Ukendt trÃ¥d id: %lu" + nla "Onbekend thread id: %lu" + eng "Unknown thread id: %lu" + jps "thread id: %lu ã¯ã‚りã¾ã›ã‚“", + est "Tundmatu lõim: %lu" + fre "Numéro de tâche inconnu: %lu" + ger "Unbekannte Thread-ID: %lu" + greek "Αγνωστο thread id: %lu" + hun "Ervenytelen szal (thread) id: %lu" + ita "Thread id: %lu sconosciuto" + jpn "thread id: %lu ã¯ã‚りã¾ã›ã‚“" + kor "알수 없는 쓰레드 id: %lu" + nor "Ukjent trÃ¥d id: %lu" + norwegian-ny "Ukjent trÃ¥d id: %lu" + pol "Nieznany identyfikator w?tku: %lu" + por "'Id' de 'thread' %lu desconhecido" + rum "Id-ul: %lu thread-ului este necunoscut" + rus "ÐеизвеÑтный номер потока: %lu" + serbian "Nepoznat thread identifikator: %lu" + slo "Neznáma identifikácia vlákna: %lu" + spa "Identificador del thread: %lu desconocido" + swe "Finns ingen trÃ¥d med id %lu" + ukr "Ðевідомий ідентифікатор гілки: %lu" +ER_KILL_DENIED_ERROR + cze "Nejste vlastn-Bíkem threadu %lu" + dan "Du er ikke ejer af trÃ¥den %lu" + nla "U bent geen bezitter van thread %lu" + eng "You are not owner of thread %lu" + jps "thread %lu ã®ã‚ªãƒ¼ãƒŠãƒ¼ã§ã¯ã‚りã¾ã›ã‚“", + est "Ei ole lõime %lu omanik" + fre "Vous n'êtes pas propriétaire de la tâche no: %lu" + ger "Sie sind nicht Eigentümer von Thread %lu" + greek "Δεν είσθε owner του thread %lu" + hun "A %lu thread-nek mas a tulajdonosa" + ita "Utente non proprietario del thread %lu" + jpn "thread %lu ã®ã‚ªãƒ¼ãƒŠãƒ¼ã§ã¯ã‚りã¾ã›ã‚“" + kor "쓰레드(Thread) %luì˜ ì†Œìœ ìžê°€ 아닙니다." + nor "Du er ikke eier av trÃ¥den %lu" + norwegian-ny "Du er ikkje eigar av trÃ¥d %lu" + pol "Nie jeste? wÅ‚a?cicielem w?tku %lu" + por "Você não é proprietário da 'thread' %lu" + rum "Nu sinteti proprietarul threadului %lu" + rus "Ð’Ñ‹ не ÑвлÑетеÑÑŒ владельцем потока %lu" + serbian "Vi niste vlasnik thread-a %lu" + slo "Nie ste vlastníkom vlákna %lu" + spa "Tu no eres el propietario del thread%lu" + swe "Du är inte ägare till trÃ¥d %lu" + ukr "Ви не володар гілки %lu" +ER_NO_TABLES_USED + cze "Nejsou pou-Bžity žádné tabulky" + dan "Ingen tabeller i brug" + nla "Geen tabellen gebruikt." + eng "No tables used" + est "Ühtegi tabelit pole kasutusel" + fre "Aucune table utilisée" + ger "Keine Tabellen verwendet" + greek "Δεν χÏησιμοποιήθηκαν πίνακες" + hun "Nincs hasznalt tabla" + ita "Nessuna tabella usata" + kor "ì–´ë–¤ í…Œì´ë¸”ë„ ì‚¬ìš©ë˜ì§€ 않았습니다." + nor "Ingen tabeller i bruk" + norwegian-ny "Ingen tabellar i bruk" + pol "Nie ma żadej użytej tabeli" + por "Nenhuma tabela usada" + rum "Nici o tabela folosita" + rus "Ðикакие таблицы не иÑпользованы" + serbian "Nema upotrebljenih tabela" + slo "Nie je použitá žiadna tabuľka" + spa "No ha tablas usadas" + swe "Inga tabeller angivna" + ukr "Ðе викориÑтано таблиць" +ER_TOO_BIG_SET + cze "P-BříliÅ¡ mnoho Å™etÄ›zců pro sloupec %-.192s a SET" + dan "For mange tekststrenge til specifikationen af SET i kolonne %-.192s" + nla "Teveel strings voor kolom %-.192s en SET" + eng "Too many strings for column %-.192s and SET" + est "Liiga palju string tulbale %-.192s tüübile SET" + fre "Trop de chaînes dans la colonne %-.192s avec SET" + ger "Zu viele Strings für Feld %-.192s und SET angegeben" + greek "ΠάÏα πολλά strings για το πεδίο %-.192s και SET" + hun "Tul sok karakter: %-.192s es SET" + ita "Troppe stringhe per la colonna %-.192s e la SET" + kor "칼럼 %-.192s와 SETì—서 스트ë§ì´ 너무 많습니다." + nor "For mange tekststrenger kolonne %-.192s og SET" + norwegian-ny "For mange tekststrengar felt %-.192s og SET" + pol "Zbyt wiele Å‚aÅ„cuchów dla kolumny %-.192s i polecenia SET" + por "'Strings' demais para coluna '%-.192s' e SET" + rum "Prea multe siruri pentru coloana %-.192s si SET" + rus "Слишком много значений Ð´Ð»Ñ Ñтолбца %-.192s в SET" + serbian "PreviÅ¡e string-ova za kolonu '%-.192s' i komandu 'SET'" + slo "PríliÅ¡ mnoho reÅ¥azcov pre pole %-.192s a SET" + spa "Muchas strings para columna %-.192s y SET" + swe "För mÃ¥nga alternativ till kolumn %-.192s för SET" + ukr "Забагато Ñтрок Ð´Ð»Ñ ÑÑ‚Ð¾Ð²Ð±Ñ†Ñ %-.192s та SET" +ER_NO_UNIQUE_LOGFILE + cze "Nemohu vytvo-BÅ™it jednoznaÄné jméno logovacího souboru %-.200s.(1-999)\n" + dan "Kan ikke lave unikt log-filnavn %-.200s.(1-999)\n" + nla "Het is niet mogelijk een unieke naam te maken voor de logfile %-.200s.(1-999)\n" + eng "Can't generate a unique log-filename %-.200s.(1-999)\n" + est "Ei suuda luua unikaalset logifaili nime %-.200s.(1-999)\n" + fre "Ne peut générer un unique nom de journal %-.200s.(1-999)\n" + ger "Kann keinen eindeutigen Dateinamen für die Logdatei %-.200s(1-999) erzeugen\n" + greek "ΑδÏνατη η δημιουÏγία unique log-filename %-.200s.(1-999)\n" + hun "Egyedi log-filenev nem generalhato: %-.200s.(1-999)\n" + ita "Impossibile generare un nome del file log unico %-.200s.(1-999)\n" + kor "Unique ë¡œê·¸í™”ì¼ '%-.200s'를 만들수 없습니다.(1-999)\n" + nor "Kan ikke lage unikt loggfilnavn %-.200s.(1-999)\n" + norwegian-ny "Kan ikkje lage unikt loggfilnavn %-.200s.(1-999)\n" + pol "Nie można stworzyć unikalnej nazwy pliku z logiem %-.200s.(1-999)\n" + por "Não pode gerar um nome de arquivo de 'log' único '%-.200s'.(1-999)\n" + rum "Nu pot sa generez un nume de log unic %-.200s.(1-999)\n" + rus "Ðевозможно Ñоздать уникальное Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° журнала %-.200s.(1-999)\n" + serbian "Ne mogu da generiÅ¡em jedinstveno ime log-file-a: '%-.200s.(1-999)'\n" + slo "Nemôžem vytvoriÅ¥ unikátne meno log-súboru %-.200s.(1-999)\n" + spa "No puede crear un unico archivo log %-.200s.(1-999)\n" + swe "Kan inte generera ett unikt filnamn %-.200s.(1-999)\n" + ukr "Ðе можу згенерувати унікальне ім'Ñ log-файлу %-.200s.(1-999)\n" +ER_TABLE_NOT_LOCKED_FOR_WRITE + cze "Tabulka '%-.192s' byla zam-BÄena s READ a nemůže být zmÄ›nÄ›na" + dan "Tabellen '%-.192s' var lÃ¥st med READ lÃ¥s og kan ikke opdateres" + nla "Tabel '%-.192s' was gelocked met een lock om te lezen. Derhalve kunnen geen wijzigingen worden opgeslagen." + eng "Table '%-.192s' was locked with a READ lock and can't be updated" + jps "Table '%-.192s' 㯠READ lock ã«ãªã£ã¦ã„ã¦ã€æ›´æ–°ã¯ã§ãã¾ã›ã‚“", + est "Tabel '%-.192s' on lukustatud READ lukuga ning ei ole muudetav" + fre "Table '%-.192s' verrouillée lecture (READ): modification impossible" + ger "Tabelle '%-.192s' ist mit Lesesperre versehen und kann nicht aktualisiert werden" + greek "Ο πίνακας '%-.192s' έχει κλειδωθεί με READ lock και δεν επιτÏέπονται αλλαγές" + hun "A(z) '%-.192s' tabla zarolva lett (READ lock) es nem lehet frissiteni" + ita "La tabella '%-.192s' e` soggetta a lock in lettura e non puo` essere aggiornata" + jpn "Table '%-.192s' 㯠READ lock ã«ãªã£ã¦ã„ã¦ã€æ›´æ–°ã¯ã§ãã¾ã›ã‚“" + kor "í…Œì´ë¸” '%-.192s'는 READ ë½ì´ 잠겨있어서 갱신할 수 없습니다." + nor "Tabellen '%-.192s' var lÃ¥st med READ lÃ¥s og kan ikke oppdateres" + norwegian-ny "Tabellen '%-.192s' var lÃ¥st med READ lÃ¥s og kan ikkje oppdaterast" + pol "Tabela '%-.192s' zostaÅ‚a zablokowana przez READ i nie może zostać zaktualizowana" + por "Tabela '%-.192s' foi travada com trava de leitura e não pode ser atualizada" + rum "Tabela '%-.192s' a fost locked cu un READ lock si nu poate fi actualizata" + rus "Таблица '%-.192s' заблокирована уровнем READ lock и не может быть изменена" + serbian "Tabela '%-.192s' je zakljuÄana READ lock-om; iz nje se može samo Äitati ali u nju se ne može pisati" + slo "Tabuľka '%-.192s' bola zamknutá s READ a nemôže byÅ¥ zmenená" + spa "Tabla '%-.192s' fue trabada con un READ lock y no puede ser actualizada" + swe "Tabell '%-.192s' kan inte uppdateras emedan den är lÃ¥st för läsning" + ukr "Таблицю '%-.192s' заблоковано тільки Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ, тому Ñ—Ñ— не можна оновити" +ER_TABLE_NOT_LOCKED + cze "Tabulka '%-.192s' nebyla zam-BÄena s LOCK TABLES" + dan "Tabellen '%-.192s' var ikke lÃ¥st med LOCK TABLES" + nla "Tabel '%-.192s' was niet gelocked met LOCK TABLES" + eng "Table '%-.192s' was not locked with LOCK TABLES" + jps "Table '%-.192s' 㯠LOCK TABLES ã«ã‚ˆã£ã¦ãƒ­ãƒƒã‚¯ã•れã¦ã„ã¾ã›ã‚“", + est "Tabel '%-.192s' ei ole lukustatud käsuga LOCK TABLES" + fre "Table '%-.192s' non verrouillée: utilisez LOCK TABLES" + ger "Tabelle '%-.192s' wurde nicht mit LOCK TABLES gesperrt" + greek "Ο πίνακας '%-.192s' δεν έχει κλειδωθεί με LOCK TABLES" + hun "A(z) '%-.192s' tabla nincs zarolva a LOCK TABLES-szel" + ita "Non e` stato impostato il lock per la tabella '%-.192s' con LOCK TABLES" + jpn "Table '%-.192s' 㯠LOCK TABLES ã«ã‚ˆã£ã¦ãƒ­ãƒƒã‚¯ã•れã¦ã„ã¾ã›ã‚“" + kor "í…Œì´ë¸” '%-.192s'는 LOCK TABLES 명령으로 잠기지 않았습니다." + nor "Tabellen '%-.192s' var ikke lÃ¥st med LOCK TABLES" + norwegian-ny "Tabellen '%-.192s' var ikkje lÃ¥st med LOCK TABLES" + pol "Tabela '%-.192s' nie zostaÅ‚a zablokowana poleceniem LOCK TABLES" + por "Tabela '%-.192s' não foi travada com LOCK TABLES" + rum "Tabela '%-.192s' nu a fost locked cu LOCK TABLES" + rus "Таблица '%-.192s' не была заблокирована Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ LOCK TABLES" + serbian "Tabela '%-.192s' nije bila zakljuÄana komandom 'LOCK TABLES'" + slo "Tabuľka '%-.192s' nebola zamknutá s LOCK TABLES" + spa "Tabla '%-.192s' no fue trabada con LOCK TABLES" + swe "Tabell '%-.192s' är inte lÃ¥st med LOCK TABLES" + ukr "Таблицю '%-.192s' не було блоковано з LOCK TABLES" +ER_BLOB_CANT_HAVE_DEFAULT 42000 + cze "Blob polo-Bžka '%-.192s' nemůže mít defaultní hodnotu" + dan "BLOB feltet '%-.192s' kan ikke have en standard værdi" + nla "Blob veld '%-.192s' can geen standaardwaarde bevatten" + eng "BLOB/TEXT column '%-.192s' can't have a default value" + est "BLOB-tüüpi tulp '%-.192s' ei saa omada vaikeväärtust" + fre "BLOB '%-.192s' ne peut avoir de valeur par défaut" + ger "BLOB/TEXT-Feld '%-.192s' darf keinen Vorgabewert (DEFAULT) haben" + greek "Τα Blob πεδία '%-.192s' δεν μποÏοÏν να έχουν Ï€ÏοκαθοÏισμένες τιμές (default value)" + hun "A(z) '%-.192s' blob objektumnak nem lehet alapertelmezett erteke" + ita "Il campo BLOB '%-.192s' non puo` avere un valore di default" + jpn "BLOB column '%-.192s' can't have a default value" + kor "BLOB 칼럼 '%-.192s' 는 ë””í´íЏ ê°’ì„ ê°€ì§ˆ 수 없습니다." + nor "Blob feltet '%-.192s' kan ikke ha en standard verdi" + norwegian-ny "Blob feltet '%-.192s' kan ikkje ha ein standard verdi" + pol "Pole typu blob '%-.192s' nie może mieć domy?lnej warto?ci" + por "Coluna BLOB '%-.192s' não pode ter um valor padrão (default)" + rum "Coloana BLOB '%-.192s' nu poate avea o valoare default" + rus "Ðевозможно указывать значение по умолчанию Ð´Ð»Ñ Ñтолбца BLOB '%-.192s'" + serbian "BLOB kolona '%-.192s' ne može imati default vrednost" + slo "Pole BLOB '%-.192s' nemôže maÅ¥ implicitnú hodnotu" + spa "Campo Blob '%-.192s' no puede tener valores patron" + swe "BLOB fält '%-.192s' kan inte ha ett DEFAULT-värde" + ukr "Стовбець BLOB '%-.192s' не може мати Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾ замовчуванню" +ER_WRONG_DB_NAME 42000 + cze "Nep-Břípustné jméno databáze '%-.100s'" + dan "Ugyldigt database navn '%-.100s'" + nla "Databasenaam '%-.100s' is niet getoegestaan" + eng "Incorrect database name '%-.100s'" + jps "指定ã—㟠database å '%-.100s' ãŒé–“é•ã£ã¦ã„ã¾ã™", + est "Vigane andmebaasi nimi '%-.100s'" + fre "Nom de base de donnée illégal: '%-.100s'" + ger "Unerlaubter Datenbankname '%-.100s'" + greek "Λάθος όνομα βάσης δεδομένων '%-.100s'" + hun "Hibas adatbazisnev: '%-.100s'" + ita "Nome database errato '%-.100s'" + jpn "指定ã—㟠database å '%-.100s' ãŒé–“é•ã£ã¦ã„ã¾ã™" + kor "'%-.100s' ë°ì´íƒ€ë² ì´ìŠ¤ì˜ ì´ë¦„ì´ ë¶€ì •í™•í•©ë‹ˆë‹¤." + nor "Ugyldig database navn '%-.100s'" + norwegian-ny "Ugyldig database namn '%-.100s'" + pol "Niedozwolona nazwa bazy danych '%-.100s'" + por "Nome de banco de dados '%-.100s' incorreto" + rum "Numele bazei de date este incorect '%-.100s'" + rus "Ðекорректное Ð¸Ð¼Ñ Ð±Ð°Ð·Ñ‹ данных '%-.100s'" + serbian "PogreÅ¡no ime baze '%-.100s'" + slo "Neprípustné meno databázy '%-.100s'" + spa "Nombre de base de datos ilegal '%-.100s'" + swe "Felaktigt databasnamn '%-.100s'" + ukr "Ðевірне ім'Ñ Ð±Ð°Ð·Ð¸ данних '%-.100s'" +ER_WRONG_TABLE_NAME 42000 + cze "Nep-Břípustné jméno tabulky '%-.100s'" + dan "Ugyldigt tabel navn '%-.100s'" + nla "Niet toegestane tabelnaam '%-.100s'" + eng "Incorrect table name '%-.100s'" + jps "指定ã—㟠table å '%-.100s' ã¯ã¾ã¡ãŒã£ã¦ã„ã¾ã™", + est "Vigane tabeli nimi '%-.100s'" + fre "Nom de table illégal: '%-.100s'" + ger "Unerlaubter Tabellenname '%-.100s'" + greek "Λάθος όνομα πίνακα '%-.100s'" + hun "Hibas tablanev: '%-.100s'" + ita "Nome tabella errato '%-.100s'" + jpn "指定ã—㟠table å '%-.100s' ã¯ã¾ã¡ãŒã£ã¦ã„ã¾ã™" + kor "'%-.100s' í…Œì´ë¸” ì´ë¦„ì´ ë¶€ì •í™•í•©ë‹ˆë‹¤." + nor "Ugyldig tabell navn '%-.100s'" + norwegian-ny "Ugyldig tabell namn '%-.100s'" + pol "Niedozwolona nazwa tabeli '%-.100s'..." + por "Nome de tabela '%-.100s' incorreto" + rum "Numele tabelei este incorect '%-.100s'" + rus "Ðекорректное Ð¸Ð¼Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹ '%-.100s'" + serbian "PogreÅ¡no ime tabele '%-.100s'" + slo "Neprípustné meno tabuľky '%-.100s'" + spa "Nombre de tabla ilegal '%-.100s'" + swe "Felaktigt tabellnamn '%-.100s'" + ukr "Ðевірне ім'Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– '%-.100s'" +ER_TOO_BIG_SELECT 42000 + cze "Zadan-Bý SELECT by procházel příliÅ¡ mnoho záznamů a trval velmi dlouho. Zkontrolujte tvar WHERE a je-li SELECT v pořádku, použijte SET SQL_BIG_SELECTS=1" + dan "SELECT ville undersøge for mange poster og ville sandsynligvis tage meget lang tid. Undersøg WHERE delen og brug SET SQL_BIG_SELECTS=1 hvis udtrykket er korrekt" + nla "Het SELECT-statement zou te veel records analyseren en dus veel tijd in beslagnemen. Kijk het WHERE-gedeelte van de query na en kies SET SQL_BIG_SELECTS=1 als het stament in orde is." + eng "The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay" + est "SELECT lause peab läbi vaatama suure hulga kirjeid ja võtaks tõenäoliselt liiga kaua aega. Tasub kontrollida WHERE klauslit ja vajadusel kasutada käsku SET SQL_BIG_SELECTS=1" + fre "SELECT va devoir examiner beaucoup d'enregistrements ce qui va prendre du temps. Vérifiez la clause WHERE et utilisez SET SQL_BIG_SELECTS=1 si SELECT se passe bien" + ger "Die Ausführung des SELECT würde zu viele Datensätze untersuchen und wahrscheinlich sehr lange dauern. Bitte WHERE-Klausel überprüfen und gegebenenfalls SET SQL_BIG_SELECTS=1 oder SET MAX_JOIN_SIZE=# verwenden" + greek "Το SELECT θα εξετάσει μεγάλο αÏιθμό εγγÏαφών και πιθανώς θα καθυστεÏήσει. ΠαÏακαλώ εξετάστε τις παÏαμέτÏους του WHERE και χÏησιμοποιείστε SET SQL_BIG_SELECTS=1 αν το SELECT είναι σωστό" + hun "A SELECT tul sok rekordot fog megvizsgalni es nagyon sokaig fog tartani. Ellenorizze a WHERE-t es hasznalja a SET SQL_BIG_SELECTS=1 beallitast, ha a SELECT okay" + ita "La SELECT dovrebbe esaminare troppi record e usare troppo tempo. Controllare la WHERE e usa SET SQL_BIG_SELECTS=1 se e` tutto a posto." + kor "SELECT 명령ì—서 너무 ë§Žì€ ë ˆì½”ë“œë¥¼ 찾기 ë•Œë¬¸ì— ë§Žì€ ì‹œê°„ì´ ì†Œìš”ë©ë‹ˆë‹¤. ë”°ë¼ì„œ WHERE ë¬¸ì„ ì ê²€í•˜ê±°ë‚˜, 만약 SELECTê°€ okë˜ë©´ SET SQL_BIG_SELECTS=1 ì˜µì…˜ì„ ì‚¬ìš©í•˜ì„¸ìš”." + nor "SELECT ville undersøke for mange poster og ville sannsynligvis ta veldig lang tid. Undersøk WHERE klausulen og bruk SET SQL_BIG_SELECTS=1 om SELECTen er korrekt" + norwegian-ny "SELECT ville undersøkje for mange postar og ville sannsynligvis ta veldig lang tid. Undersøk WHERE klausulen og bruk SET SQL_BIG_SELECTS=1 om SELECTen er korrekt" + pol "Operacja SELECT bÄ™dzie dotyczyÅ‚a zbyt wielu rekordów i prawdopodobnie zajmie bardzo dużo czasu. SprawdĽ warunek WHERE i użyj SQL_OPTION BIG_SELECTS=1 je?li operacja SELECT jest poprawna" + por "O SELECT examinaria registros demais e provavelmente levaria muito tempo. Cheque sua cláusula WHERE e use SET SQL_BIG_SELECTS=1, se o SELECT estiver correto" + rum "SELECT-ul ar examina prea multe cimpuri si probabil ar lua prea mult timp; verifica clauza WHERE si foloseste SET SQL_BIG_SELECTS=1 daca SELECT-ul e okay" + rus "Ð”Ð»Ñ Ñ‚Ð°ÐºÐ¾Ð¹ выборки SELECT должен будет проÑмотреть Ñлишком много запиÑей и, видимо, Ñто займет очень много времени. Проверьте ваше указание WHERE, и, еÑли в нем вÑе в порÑдке, укажите SET SQL_BIG_SELECTS=1" + serbian "Komanda 'SELECT' će ispitati previÅ¡e slogova i potroÅ¡iti previÅ¡e vremena. Proverite vaÅ¡ 'WHERE' filter i upotrebite 'SET OPTION SQL_BIG_SELECTS=1' ako želite baÅ¡ ovakvu komandu" + slo "Zadaná požiadavka SELECT by prechádzala príliÅ¡ mnoho záznamov a trvala by príliÅ¡ dlho. Skontrolujte tvar WHERE a ak je v poriadku, použite SET SQL_BIG_SELECTS=1" + spa "El SELECT puede examinar muchos registros y probablemente con mucho tiempo. Verifique tu WHERE y usa SET SQL_BIG_SELECTS=1 si el SELECT esta correcto" + swe "Den angivna frÃ¥gan skulle läsa mer än MAX_JOIN_SIZE rader. Kontrollera din WHERE och använd SET SQL_BIG_SELECTS=1 eller SET MAX_JOIN_SIZE=# ifall du vill hantera stora joins" + ukr "Запиту SELECT потрібно обробити багато запиÑів, що, певне, займе дуже багато чаÑу. Перевірте ваше WHERE та викориÑтовуйте SET SQL_BIG_SELECTS=1, Ñкщо цей запит SELECT Ñ” вірним" +ER_UNKNOWN_ERROR + cze "Nezn-Bámá chyba" + dan "Ukendt fejl" + nla "Onbekende Fout" + eng "Unknown error" + est "Tundmatu viga" + fre "Erreur inconnue" + ger "Unbekannter Fehler" + greek "ΠÏοέκυψε άγνωστο λάθος" + hun "Ismeretlen hiba" + ita "Errore sconosciuto" + kor "알수 없는 ì—러입니다." + nor "Ukjent feil" + norwegian-ny "Ukjend feil" + por "Erro desconhecido" + rum "Eroare unknown" + rus "ÐеизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°" + serbian "Nepoznata greÅ¡ka" + slo "Neznámá chyba" + spa "Error desconocido" + swe "Oidentifierat fel" + ukr "Ðевідома помилка" +ER_UNKNOWN_PROCEDURE 42000 + cze "Nezn-Bámá procedura %-.192s" + dan "Ukendt procedure %-.192s" + nla "Onbekende procedure %-.192s" + eng "Unknown procedure '%-.192s'" + est "Tundmatu protseduur '%-.192s'" + fre "Procédure %-.192s inconnue" + ger "Unbekannte Prozedur '%-.192s'" + greek "Αγνωστη διαδικασία '%-.192s'" + hun "Ismeretlen eljaras: '%-.192s'" + ita "Procedura '%-.192s' sconosciuta" + kor "알수 없는 수행문 : '%-.192s'" + nor "Ukjent prosedyre %-.192s" + norwegian-ny "Ukjend prosedyre %-.192s" + pol "Unkown procedure %-.192s" + por "'Procedure' '%-.192s' desconhecida" + rum "Procedura unknown '%-.192s'" + rus "ÐеизвеÑÑ‚Ð½Ð°Ñ Ð¿Ñ€Ð¾Ñ†ÐµÐ´ÑƒÑ€Ð° '%-.192s'" + serbian "Nepoznata procedura '%-.192s'" + slo "Neznámá procedúra '%-.192s'" + spa "Procedimiento desconocido %-.192s" + swe "Okänd procedur: %-.192s" + ukr "Ðевідома процедура '%-.192s'" +ER_WRONG_PARAMCOUNT_TO_PROCEDURE 42000 + cze "Chybn-Bý poÄet parametrů procedury %-.192s" + dan "Forkert antal parametre til proceduren %-.192s" + nla "Foutief aantal parameters doorgegeven aan procedure %-.192s" + eng "Incorrect parameter count to procedure '%-.192s'" + est "Vale parameetrite hulk protseduurile '%-.192s'" + fre "Mauvais nombre de paramètres pour la procedure %-.192s" + ger "Falsche Parameterzahl für Prozedur '%-.192s'" + greek "Λάθος αÏιθμός παÏαμέτÏων στη διαδικασία '%-.192s'" + hun "Rossz parameter a(z) '%-.192s'eljaras szamitasanal" + ita "Numero di parametri errato per la procedura '%-.192s'" + kor "'%-.192s' ìˆ˜í–‰ë¬¸ì— ëŒ€í•œ 부정확한 파ë¼ë©”í„°" + nor "Feil parameter antall til prosedyren %-.192s" + norwegian-ny "Feil parameter tal til prosedyra %-.192s" + pol "Incorrect parameter count to procedure %-.192s" + por "Número de parâmetros incorreto para a 'procedure' '%-.192s'" + rum "Procedura '%-.192s' are un numar incorect de parametri" + rus "Ðекорректное количеÑтво параметров Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÐ´ÑƒÑ€Ñ‹ '%-.192s'" + serbian "PogreÅ¡an broj parametara za proceduru '%-.192s'" + slo "Chybný poÄet parametrov procedúry '%-.192s'" + spa "Equivocado parametro count para procedimiento %-.192s" + swe "Felaktigt antal parametrar till procedur %-.192s" + ukr "Хибна кількіÑть параметрів процедури '%-.192s'" +ER_WRONG_PARAMETERS_TO_PROCEDURE + cze "Chybn-Bé parametry procedury %-.192s" + dan "Forkert(e) parametre til proceduren %-.192s" + nla "Foutieve parameters voor procedure %-.192s" + eng "Incorrect parameters to procedure '%-.192s'" + est "Vigased parameetrid protseduurile '%-.192s'" + fre "Paramètre erroné pour la procedure %-.192s" + ger "Falsche Parameter für Prozedur '%-.192s'" + greek "Λάθος παÏάμετÏοι στην διαδικασία '%-.192s'" + hun "Rossz parameter a(z) '%-.192s' eljarasban" + ita "Parametri errati per la procedura '%-.192s'" + kor "'%-.192s' ìˆ˜í–‰ë¬¸ì— ëŒ€í•œ 부정확한 파ë¼ë©”í„°" + nor "Feil parametre til prosedyren %-.192s" + norwegian-ny "Feil parameter til prosedyra %-.192s" + pol "Incorrect parameters to procedure %-.192s" + por "Parâmetros incorretos para a 'procedure' '%-.192s'" + rum "Procedura '%-.192s' are parametrii incorecti" + rus "Ðекорректные параметры Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÐ´ÑƒÑ€Ñ‹ '%-.192s'" + serbian "PogreÅ¡ni parametri prosleÄ‘eni proceduri '%-.192s'" + slo "Chybné parametre procedúry '%-.192s'" + spa "Equivocados parametros para procedimiento %-.192s" + swe "Felaktiga parametrar till procedur %-.192s" + ukr "Хибний параметер процедури '%-.192s'" +ER_UNKNOWN_TABLE 42S02 + cze "Nezn-Bámá tabulka '%-.192s' v %-.32s" + dan "Ukendt tabel '%-.192s' i %-.32s" + nla "Onbekende tabel '%-.192s' in %-.32s" + eng "Unknown table '%-.192s' in %-.32s" + est "Tundmatu tabel '%-.192s' %-.32s-s" + fre "Table inconnue '%-.192s' dans %-.32s" + ger "Unbekannte Tabelle '%-.192s' in '%-.32s'" + greek "Αγνωστος πίνακας '%-.192s' σε %-.32s" + hun "Ismeretlen tabla: '%-.192s' %-.32s-ban" + ita "Tabella '%-.192s' sconosciuta in %-.32s" + jpn "Unknown table '%-.192s' in %-.32s" + kor "알수 없는 í…Œì´ë¸” '%-.192s' (ë°ì´íƒ€ë² ì´ìФ %-.32s)" + nor "Ukjent tabell '%-.192s' i %-.32s" + norwegian-ny "Ukjend tabell '%-.192s' i %-.32s" + pol "Unknown table '%-.192s' in %-.32s" + por "Tabela '%-.192s' desconhecida em '%-.32s'" + rum "Tabla '%-.192s' invalida in %-.32s" + rus "ÐеизвеÑÑ‚Ð½Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° '%-.192s' в %-.32s" + serbian "Nepoznata tabela '%-.192s' u '%-.32s'" + slo "Neznáma tabuľka '%-.192s' v %-.32s" + spa "Tabla desconocida '%-.192s' in %-.32s" + swe "Okänd tabell '%-.192s' i '%-.32s'" + ukr "Ðевідома Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ '%-.192s' у %-.32s" +ER_FIELD_SPECIFIED_TWICE 42000 + cze "Polo-Bžka '%-.192s' je zadána dvakrát" + dan "Feltet '%-.192s' er anvendt to gange" + nla "Veld '%-.192s' is dubbel gespecificeerd" + eng "Column '%-.192s' specified twice" + est "Tulp '%-.192s' on määratletud topelt" + fre "Champ '%-.192s' spécifié deux fois" + ger "Feld '%-.192s' wurde zweimal angegeben" + greek "Το πεδίο '%-.192s' έχει οÏισθεί δÏο φοÏές" + hun "A(z) '%-.192s' mezot ketszer definialta" + ita "Campo '%-.192s' specificato 2 volte" + kor "칼럼 '%-.192s'는 ë‘번 ì •ì˜ë˜ì–´ 있ì니다." + nor "Feltet '%-.192s' er spesifisert to ganger" + norwegian-ny "Feltet '%-.192s' er spesifisert to gangar" + pol "Field '%-.192s' specified twice" + por "Coluna '%-.192s' especificada duas vezes" + rum "Coloana '%-.192s' specificata de doua ori" + rus "Столбец '%-.192s' указан дважды" + serbian "Kolona '%-.192s' je navedena dva puta" + slo "Pole '%-.192s' je zadané dvakrát" + spa "Campo '%-.192s' especificado dos veces" + swe "Fält '%-.192s' är redan använt" + ukr "Стовбець '%-.192s' зазначено двічі" +ER_INVALID_GROUP_FUNC_USE + cze "Nespr-Bávné použití funkce group" + dan "Forkert brug af grupperings-funktion" + nla "Ongeldig gebruik van GROUP-functie" + eng "Invalid use of group function" + est "Vigane grupeerimisfunktsiooni kasutus" + fre "Utilisation invalide de la clause GROUP" + ger "Falsche Verwendung einer Gruppierungsfunktion" + greek "Εσφαλμένη χÏήση της group function" + hun "A group funkcio ervenytelen hasznalata" + ita "Uso non valido di una funzione di raggruppamento" + kor "ìž˜ëª»ëœ ê·¸ë£¹ 함수를 사용하였습니다." + por "Uso inválido de função de agrupamento (GROUP)" + rum "Folosire incorecta a functiei group" + rus "Ðеправильное иÑпользование групповых функций" + serbian "PogreÅ¡na upotreba 'GROUP' funkcije" + slo "Nesprávne použitie funkcie GROUP" + spa "Invalido uso de función en grupo" + swe "Felaktig användning av SQL grupp function" + ukr "Хибне викориÑÑ‚Ð°Ð½Ð½Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ— групуваннÑ" +ER_UNSUPPORTED_EXTENSION 42000 + cze "Tabulka '%-.192s' pou-Bžívá rozšíření, které v této verzi MariaDB není" + dan "Tabellen '%-.192s' bruger et filtypenavn som ikke findes i denne MariaDB version" + nla "Tabel '%-.192s' gebruikt een extensie, die niet in deze MariaDB-versie voorkomt." + eng "Table '%-.192s' uses an extension that doesn't exist in this MariaDB version" + est "Tabel '%-.192s' kasutab laiendust, mis ei eksisteeri antud MariaDB versioonis" + fre "Table '%-.192s' : utilise une extension invalide pour cette version de MariaDB" + ger "Tabelle '%-.192s' verwendet eine Erweiterung, die in dieser MariaDB-Version nicht verfügbar ist" + greek "Ο πίνακς '%-.192s' χÏησιμοποιεί κάποιο extension που δεν υπάÏχει στην έκδοση αυτή της MariaDB" + hun "A(z) '%-.192s' tabla olyan bovitest hasznal, amely nem letezik ebben a MariaDB versioban." + ita "La tabella '%-.192s' usa un'estensione che non esiste in questa versione di MariaDB" + kor "í…Œì´ë¸” '%-.192s'는 í™•ìž¥ëª…ë ¹ì„ ì´ìš©í•˜ì§€ë§Œ í˜„ìž¬ì˜ MariaDB 버젼ì—서는 존재하지 않습니다." + nor "Table '%-.192s' uses a extension that doesn't exist in this MariaDB version" + norwegian-ny "Table '%-.192s' uses a extension that doesn't exist in this MariaDB version" + pol "Table '%-.192s' uses a extension that doesn't exist in this MariaDB version" + por "Tabela '%-.192s' usa uma extensão que não existe nesta versão do MariaDB" + rum "Tabela '%-.192s' foloseste o extensire inexistenta in versiunea curenta de MariaDB" + rus "Ð’ таблице '%-.192s' иÑпользуютÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñти, не поддерживаемые в Ñтой верÑии MariaDB" + serbian "Tabela '%-.192s' koristi ekstenziju koje ne postoji u ovoj verziji MariaDB-a" + slo "Tabuľka '%-.192s' používa rozšírenie, ktoré v tejto verzii MariaDB nie je" + spa "Tabla '%-.192s' usa una extensión que no existe en esta MariaDB versión" + swe "Tabell '%-.192s' har en extension som inte finns i denna version av MariaDB" + ukr "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ '%-.192s' викориÑтовує розширеннÑ, що не Ñ–Ñнує у цій верÑÑ–Ñ— MariaDB" +ER_TABLE_MUST_HAVE_COLUMNS 42000 + cze "Tabulka mus-Bí mít alespoň jeden sloupec" + dan "En tabel skal have mindst een kolonne" + nla "Een tabel moet minstens 1 kolom bevatten" + eng "A table must have at least 1 column" + jps "ãƒ†ãƒ¼ãƒ–ãƒ«ã¯æœ€ä½Ž 1 個㮠column ãŒå¿…è¦ã§ã™", + est "Tabelis peab olema vähemalt üks tulp" + fre "Une table doit comporter au moins une colonne" + ger "Eine Tabelle muss mindestens eine Spalte besitzen" + greek "Ενας πίνακας Ï€Ïέπει να έχει τουλάχιστον ένα πεδίο" + hun "A tablanak legalabb egy oszlopot tartalmazni kell" + ita "Una tabella deve avere almeno 1 colonna" + jpn "ãƒ†ãƒ¼ãƒ–ãƒ«ã¯æœ€ä½Ž 1 個㮠column ãŒå¿…è¦ã§ã™" + kor "í•˜ë‚˜ì˜ í…Œì´ë¸”ì—서는 ì ì–´ë„ í•˜ë‚˜ì˜ ì¹¼ëŸ¼ì´ ì¡´ìž¬í•˜ì—¬ì•¼ 합니다." + por "Uma tabela tem que ter pelo menos uma (1) coluna" + rum "O tabela trebuie sa aiba cel putin o coloana" + rus "Ð’ таблице должен быть как минимум один Ñтолбец" + serbian "Tabela mora imati najmanje jednu kolonu" + slo "Tabuľka musí maÅ¥ aspoň 1 pole" + spa "Una tabla debe tener al menos 1 columna" + swe "Tabeller mÃ¥ste ha minst 1 kolumn" + ukr "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ Ð¿Ð¾Ð²Ð¸Ð½Ð½Ð° мати хочаб один Ñтовбець" +ER_RECORD_FILE_FULL + cze "Tabulka '%-.192s' je pln-Bá" + dan "Tabellen '%-.192s' er fuld" + nla "De tabel '%-.192s' is vol" + eng "The table '%-.192s' is full" + jps "table '%-.192s' ã¯ã„ã£ã±ã„ã§ã™", + est "Tabel '%-.192s' on täis" + fre "La table '%-.192s' est pleine" + ger "Tabelle '%-.192s' ist voll" + greek "Ο πίνακας '%-.192s' είναι γεμάτος" + hun "A '%-.192s' tabla megtelt" + ita "La tabella '%-.192s' e` piena" + jpn "table '%-.192s' ã¯ã„ã£ã±ã„ã§ã™" + kor "í…Œì´ë¸” '%-.192s'ê°€ full났습니다. " + por "Tabela '%-.192s' está cheia" + rum "Tabela '%-.192s' e plina" + rus "Таблица '%-.192s' переполнена" + serbian "Tabela '%-.192s' je popunjena do kraja" + slo "Tabuľka '%-.192s' je plná" + spa "La tabla '%-.192s' está llena" + swe "Tabellen '%-.192s' är full" + ukr "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ '%-.192s' заповнена" +ER_UNKNOWN_CHARACTER_SET 42000 + cze "Nezn-Bámá znaková sada: '%-.64s'" + dan "Ukendt tegnsæt: '%-.64s'" + nla "Onbekende character set: '%-.64s'" + eng "Unknown character set: '%-.64s'" + jps "character set '%-.64s' ã¯ã‚µãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“", + est "Vigane kooditabel '%-.64s'" + fre "Jeu de caractères inconnu: '%-.64s'" + ger "Unbekannter Zeichensatz: '%-.64s'" + greek "Αγνωστο character set: '%-.64s'" + hun "Ervenytelen karakterkeszlet: '%-.64s'" + ita "Set di caratteri '%-.64s' sconosciuto" + jpn "character set '%-.64s' ã¯ã‚µãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“" + kor "알수없는 언어 Set: '%-.64s'" + por "Conjunto de caracteres '%-.64s' desconhecido" + rum "Set de caractere invalid: '%-.64s'" + rus "ÐеизвеÑÑ‚Ð½Ð°Ñ ÐºÐ¾Ð´Ð¸Ñ€Ð¾Ð²ÐºÐ° '%-.64s'" + serbian "Nepoznati karakter-set: '%-.64s'" + slo "Neznáma znaková sada: '%-.64s'" + spa "Juego de caracteres desconocido: '%-.64s'" + swe "Okänd teckenuppsättning: '%-.64s'" + ukr "Ðевідома кодова таблицÑ: '%-.64s'" +ER_TOO_MANY_TABLES + cze "P-BříliÅ¡ mnoho tabulek, MariaDB jich může mít v joinu jen %d" + dan "For mange tabeller. MariaDB kan kun bruge %d tabeller i et join" + nla "Teveel tabellen. MariaDB kan slechts %d tabellen in een join bevatten" + eng "Too many tables; MariaDB can only use %d tables in a join" + jps "テーブルãŒå¤šã™ãŽã¾ã™; MariaDB can only use %d tables in a join", + est "Liiga palju tabeleid. MariaDB suudab JOINiga ühendada kuni %d tabelit" + fre "Trop de tables. MariaDB ne peut utiliser que %d tables dans un JOIN" + ger "Zu viele Tabellen. MariaDB kann in einem Join maximal %d Tabellen verwenden" + greek "Î Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î¿Ï‚ αÏιθμός πινάκων. Η MariaDB μποÏεί να χÏησιμοποιήσει %d πίνακες σε διαδικασία join" + hun "Tul sok tabla. A MariaDB csak %d tablat tud kezelni osszefuzeskor" + ita "Troppe tabelle. MariaDB puo` usare solo %d tabelle in una join" + jpn "テーブルãŒå¤šã™ãŽã¾ã™; MariaDB can only use %d tables in a join" + kor "너무 ë§Žì€ í…Œì´ë¸”ì´ Joinë˜ì—ˆìŠµë‹ˆë‹¤. MariaDBì—서는 JOIN시 %dê°œì˜ í…Œì´ë¸”ë§Œ 사용할 수 있습니다." + por "Tabelas demais. O MariaDB pode usar somente %d tabelas em uma junção (JOIN)" + rum "Prea multe tabele. MariaDB nu poate folosi mai mult de %d tabele intr-un join" + rus "Слишком много таблиц. MariaDB может иÑпользовать только %d таблиц в Ñоединении" + serbian "PreviÅ¡e tabela. MariaDB može upotrebiti maksimum %d tabela pri 'JOIN' operaciji" + slo "PríliÅ¡ mnoho tabuliek. MariaDB môže použiÅ¥ len %d v JOIN-e" + spa "Muchas tablas. MariaDB solamente puede usar %d tablas en un join" + swe "För mÃ¥nga tabeller. MariaDB can ha högst %d tabeller i en och samma join" + ukr "Забагато таблиць. MariaDB може викориÑтовувати лише %d таблиць у об'єднанні" +ER_TOO_MANY_FIELDS + cze "P-BříliÅ¡ mnoho položek" + dan "For mange felter" + nla "Te veel velden" + eng "Too many columns" + jps "column ãŒå¤šã™ãŽã¾ã™", + est "Liiga palju tulpasid" + fre "Trop de champs" + ger "Zu viele Felder" + greek "Î Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î¿Ï‚ αÏιθμός πεδίων" + hun "Tul sok mezo" + ita "Troppi campi" + jpn "column ãŒå¤šã™ãŽã¾ã™" + kor "ì¹¼ëŸ¼ì´ ë„ˆë¬´ 많습니다." + por "Colunas demais" + rum "Prea multe coloane" + rus "Слишком много Ñтолбцов" + serbian "PreviÅ¡e kolona" + slo "PríliÅ¡ mnoho polí" + spa "Muchos campos" + swe "För mÃ¥nga fält" + ukr "Забагато Ñтовбців" +ER_TOO_BIG_ROWSIZE 42000 + cze "-BŘádek je příliÅ¡ velký. Maximální velikost řádku, nepoÄítaje položky blob, je %ld. Musíte zmÄ›nit nÄ›které položky na blob" + dan "For store poster. Max post størrelse, uden BLOB's, er %ld. Du mÃ¥ lave nogle felter til BLOB's" + nla "Rij-grootte is groter dan toegestaan. Maximale rij grootte, blobs niet meegeteld, is %ld. U dient sommige velden in blobs te veranderen." + eng "Row size too large. The maximum row size for the used table type, not counting BLOBs, is %ld. You have to change some columns to TEXT or BLOBs" + jps "row size ãŒå¤§ãã™ãŽã¾ã™. BLOB ã‚’å«ã¾ãªã„å ´åˆã® row size ã®æœ€å¤§ã¯ %ld ã§ã™. ã„ãã¤ã‹ã® field ã‚’ BLOB ã«å¤‰ãˆã¦ãã ã•ã„.", + est "Liiga pikk kirje. Kirje maksimumpikkus arvestamata BLOB-tüüpi välju on %ld. Muuda mõned väljad BLOB-tüüpi väljadeks" + fre "Ligne trop grande. Le taille maximale d'une ligne, sauf les BLOBs, est %ld. Changez le type de quelques colonnes en BLOB" + ger "Zeilenlänge zu groß. Die maximale Zeilenlänge für den verwendeten Tabellentyp (ohne BLOB-Felder) beträgt %ld. Einige Felder müssen in BLOB oder TEXT umgewandelt werden" + greek "Î Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î¿ μέγεθος εγγÏαφής. Το μέγιστο μέγεθος εγγÏαφής, χωÏίς να υπολογίζονται τα blobs, είναι %ld. ΠÏέπει να οÏίσετε κάποια πεδία σαν blobs" + hun "Tul nagy sormeret. A maximalis sormeret (nem szamolva a blob objektumokat) %ld. Nehany mezot meg kell valtoztatnia" + ita "Riga troppo grande. La massima grandezza di una riga, non contando i BLOB, e` %ld. Devi cambiare alcuni campi in BLOB" + jpn "row size ãŒå¤§ãã™ãŽã¾ã™. BLOB ã‚’å«ã¾ãªã„å ´åˆã® row size ã®æœ€å¤§ã¯ %ld ã§ã™. ã„ãã¤ã‹ã® field ã‚’ BLOB ã«å¤‰ãˆã¦ãã ã•ã„." + kor "너무 í° row 사ì´ì¦ˆìž…니다. BLOB를 계산하지 않고 최대 row 사ì´ì¦ˆëŠ” %ld입니다. ì–¼ë§ˆê°„ì˜ í•„ë“œë“¤ì„ BLOB로 바꾸셔야 ê² êµ°ìš”.." + por "Tamanho de linha grande demais. O máximo tamanho de linha, não contando BLOBs, é %ld. Você tem que mudar alguns campos para BLOBs" + rum "Marimea liniei (row) prea mare. Marimea maxima a liniei, excluzind BLOB-urile este de %ld. Trebuie sa schimbati unele cimpuri in BLOB-uri" + rus "Слишком большой размер запиÑи. МакÑимальный размер Ñтроки, иÑÐºÐ»ÑŽÑ‡Ð°Ñ Ð¿Ð¾Ð»Ñ BLOB, - %ld. Возможно, вам Ñледует изменить тип некоторых полей на BLOB" + serbian "Prevelik slog. Maksimalna veliÄina sloga, ne raÄunajući BLOB polja, je %ld. Trebali bi da promenite tip nekih polja u BLOB" + slo "Riadok je príliÅ¡ veľký. Maximálna veľkosÅ¥ riadku, okrem 'BLOB', je %ld. Musíte zmeniÅ¥ niektoré položky na BLOB" + spa "Tamaño de línea muy grande. Máximo tamaño de línea, no contando blob, es %ld. Tu tienes que cambiar algunos campos para blob" + swe "För stor total radlängd. Den högst tillÃ¥tna radlängden, förutom BLOBs, är %ld. Ändra nÃ¥gra av dina fält till BLOB" + ukr "Задовга Ñтрока. Ðайбільшою довжиною Ñтроки, не рахуючи BLOB, Ñ” %ld. Вам потрібно привеÑти деÑкі Ñтовбці до типу BLOB" +ER_STACK_OVERRUN + cze "P-BÅ™eteÄení zásobníku threadu: použito %ld z %ld. Použijte 'mysqld --thread_stack=#' k zadání vÄ›tšího zásobníku" + dan "Thread stack brugt: Brugt: %ld af en %ld stak. Brug 'mysqld --thread_stack=#' for at allokere en større stak om nødvendigt" + nla "Thread stapel overrun: Gebruikte: %ld van een %ld stack. Gebruik 'mysqld --thread_stack=#' om een grotere stapel te definieren (indien noodzakelijk)." + eng "Thread stack overrun: Used: %ld of a %ld stack. Use 'mysqld --thread_stack=#' to specify a bigger stack if needed" + jps "Thread stack overrun: Used: %ld of a %ld stack. スタック領域を多ãã¨ã‚ŠãŸã„å ´åˆã€'mysqld --thread_stack=#' ã¨æŒ‡å®šã—ã¦ãã ã•ã„", + fre "Débordement de la pile des tâches (Thread stack). Utilisées: %ld pour une pile de %ld. Essayez 'mysqld --thread_stack=#' pour indiquer une plus grande valeur" + ger "Thread-Stack-Überlauf. Benutzt: %ld von %ld Stack. 'mysqld --thread_stack=#' verwenden, um bei Bedarf einen größeren Stack anzulegen" + greek "Stack overrun στο thread: Used: %ld of a %ld stack. ΠαÏακαλώ χÏησιμοποιείστε 'mysqld --thread_stack=#' για να οÏίσετε ένα μεγαλÏτεÏο stack αν χÏειάζεται" + hun "Thread verem tullepes: Used: %ld of a %ld stack. Hasznalja a 'mysqld --thread_stack=#' nagyobb verem definialasahoz" + ita "Thread stack overrun: Usati: %ld di uno stack di %ld. Usa 'mysqld --thread_stack=#' per specificare uno stack piu` grande." + jpn "Thread stack overrun: Used: %ld of a %ld stack. スタック領域を多ãã¨ã‚ŠãŸã„å ´åˆã€'mysqld --thread_stack=#' ã¨æŒ‡å®šã—ã¦ãã ã•ã„" + kor "쓰레드 스íƒì´ 넘쳤습니다. 사용: %ldê°œ 스íƒ: %ldê°œ. 만약 필요시 ë”í° ìŠ¤íƒì„ ì›í• ë•Œì—는 'mysqld --thread_stack=#' 를 ì •ì˜í•˜ì„¸ìš”" + por "Estouro da pilha do 'thread'. Usados %ld de uma pilha de %ld. Use 'mysqld --thread_stack=#' para especificar uma pilha maior, se necessário" + rum "Stack-ul thread-ului a fost depasit (prea mic): Folositi: %ld intr-un stack de %ld. Folositi 'mysqld --thread_stack=#' ca sa specifici un stack mai mare" + rus "Стек потоков переполнен: иÑпользовано: %ld из %ld Ñтека. ПрименÑйте 'mysqld --thread_stack=#' Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð±Ð¾Ð»ÑŒÑˆÐµÐ³Ð¾ размера Ñтека, еÑли необходимо" + serbian "Prepisivanje thread stack-a: Upotrebljeno: %ld od %ld stack memorije. Upotrebite 'mysqld --thread_stack=#' da navedete veći stack ako je potrebno" + slo "PreteÄenie zásobníku vlákna: použité: %ld z %ld. Použite 'mysqld --thread_stack=#' k zadaniu väÄÅ¡ieho zásobníka" + spa "Sobrecarga de la pila de thread: Usada: %ld de una %ld pila. Use 'mysqld --thread_stack=#' para especificar una mayor pila si necesario" + swe "TrÃ¥dstacken tog slut: Har använt %ld av %ld bytes. Använd 'mysqld --thread_stack=#' ifall du behöver en större stack" + ukr "Стек гілок переповнено: ВикориÑтано: %ld з %ld. ВикориÑтовуйте 'mysqld --thread_stack=#' аби зазначити більший Ñтек, Ñкщо необхідно" +ER_WRONG_OUTER_JOIN 42000 + cze "V OUTER JOIN byl nalezen k-Břížový odkaz. Prověřte ON podmínky" + dan "Krydsreferencer fundet i OUTER JOIN; check dine ON conditions" + nla "Gekruiste afhankelijkheid gevonden in OUTER JOIN. Controleer uw ON-conditions" + eng "Cross dependency found in OUTER JOIN; examine your ON conditions" + est "Ristsõltuvus OUTER JOIN klauslis. Kontrolli oma ON tingimusi" + fre "Dépendance croisée dans une clause OUTER JOIN. Vérifiez la condition ON" + ger "OUTER JOIN enthält fehlerhafte Abhängigkeiten. In ON verwendete Bedingungen überprüfen" + greek "Cross dependency βÏέθηκε σε OUTER JOIN. ΠαÏακαλώ εξετάστε τις συνθήκες που θέσατε στο ON" + hun "Keresztfuggoseg van az OUTER JOIN-ban. Ellenorizze az ON felteteleket" + ita "Trovata una dipendenza incrociata nella OUTER JOIN. Controlla le condizioni ON" + por "Dependência cruzada encontrada em junção externa (OUTER JOIN); examine as condições utilizadas nas cláusulas 'ON'" + rum "Dependinta incrucisata (cross dependency) gasita in OUTER JOIN. Examinati conditiile ON" + rus "Ð’ OUTER JOIN обнаружена перекреÑÑ‚Ð½Ð°Ñ Ð·Ð°Ð²Ð¸ÑимоÑть. Внимательно проанализируйте Ñвои уÑÐ»Ð¾Ð²Ð¸Ñ ON" + serbian "Unakrsna zavisnost pronaÄ‘ena u komandi 'OUTER JOIN'. Istražite vaÅ¡e 'ON' uslove" + slo "V OUTER JOIN bol nájdený krížový odkaz. Skontrolujte podmienky ON" + spa "Dependencia cruzada encontrada en OUTER JOIN. Examine su condición ON" + swe "Felaktigt referens i OUTER JOIN. Kontrollera ON-uttrycket" + ukr "ПерехреÑна залежніÑть у OUTER JOIN. Перевірте умову ON" +ER_NULL_COLUMN_IN_INDEX 42000 + eng "Table handler doesn't support NULL in given index. Please change column '%-.192s' to be NOT NULL or use another handler" + swe "Tabell hanteraren kan inte indexera NULL kolumner för den givna index typen. Ändra '%-.192s' till NOT NULL eller använd en annan hanterare" +ER_CANT_FIND_UDF + cze "Nemohu na-BÄíst funkci '%-.192s'" + dan "Kan ikke læse funktionen '%-.192s'" + nla "Kan functie '%-.192s' niet laden" + eng "Can't load function '%-.192s'" + jps "function '%-.192s' ã‚’ ロードã§ãã¾ã›ã‚“", + est "Ei suuda avada funktsiooni '%-.192s'" + fre "Imposible de charger la fonction '%-.192s'" + ger "Kann Funktion '%-.192s' nicht laden" + greek "Δεν είναι δυνατή η διαδικασία load για τη συνάÏτηση '%-.192s'" + hun "A(z) '%-.192s' fuggveny nem toltheto be" + ita "Impossibile caricare la funzione '%-.192s'" + jpn "function '%-.192s' ã‚’ ロードã§ãã¾ã›ã‚“" + kor "'%-.192s' 함수를 로드하지 못했습니다." + por "Não pode carregar a função '%-.192s'" + rum "Nu pot incarca functia '%-.192s'" + rus "Ðевозможно загрузить функцию '%-.192s'" + serbian "Ne mogu da uÄitam funkciju '%-.192s'" + slo "Nemôžem naÄítaÅ¥ funkciu '%-.192s'" + spa "No puedo cargar función '%-.192s'" + swe "Kan inte ladda funktionen '%-.192s'" + ukr "Ðе можу завантажити функцію '%-.192s'" +ER_CANT_INITIALIZE_UDF + cze "Nemohu inicializovat funkci '%-.192s'; %-.80s" + dan "Kan ikke starte funktionen '%-.192s'; %-.80s" + nla "Kan functie '%-.192s' niet initialiseren; %-.80s" + eng "Can't initialize function '%-.192s'; %-.80s" + jps "function '%-.192s' ã‚’åˆæœŸåŒ–ã§ãã¾ã›ã‚“; %-.80s", + est "Ei suuda algväärtustada funktsiooni '%-.192s'; %-.80s" + fre "Impossible d'initialiser la fonction '%-.192s'; %-.80s" + ger "Kann Funktion '%-.192s' nicht initialisieren: %-.80s" + greek "Δεν είναι δυνατή η έναÏξη της συνάÏτησης '%-.192s'; %-.80s" + hun "A(z) '%-.192s' fuggveny nem inicializalhato; %-.80s" + ita "Impossibile inizializzare la funzione '%-.192s'; %-.80s" + jpn "function '%-.192s' ã‚’åˆæœŸåŒ–ã§ãã¾ã›ã‚“; %-.80s" + kor "'%-.192s' 함수를 초기화 하지 못했습니다.; %-.80s" + por "Não pode inicializar a função '%-.192s' - '%-.80s'" + rum "Nu pot initializa functia '%-.192s'; %-.80s" + rus "Ðевозможно инициализировать функцию '%-.192s'; %-.80s" + serbian "Ne mogu da inicijalizujem funkciju '%-.192s'; %-.80s" + slo "Nemôžem inicializovaÅ¥ funkciu '%-.192s'; %-.80s" + spa "No puedo inicializar función '%-.192s'; %-.80s" + swe "Kan inte initialisera funktionen '%-.192s'; '%-.80s'" + ukr "Ðе можу ініціалізувати функцію '%-.192s'; %-.80s" +ER_UDF_NO_PATHS + cze "Pro sd-Bílenou knihovnu nejsou povoleny cesty" + dan "Angivelse af sti ikke tilladt for delt bibliotek" + nla "Geen pad toegestaan voor shared library" + eng "No paths allowed for shared library" + jps "shared library ã¸ã®ãƒ‘スãŒé€šã£ã¦ã„ã¾ã›ã‚“", + est "Teegi nimes ei tohi olla kataloogi" + fre "Chemin interdit pour les bibliothèques partagées" + ger "Keine Pfade gestattet für Shared Library" + greek "Δεν βÏέθηκαν paths για την shared library" + hun "Nincs ut a megosztott konyvtarakhoz (shared library)" + ita "Non sono ammessi path per le librerie condivisa" + jpn "shared library ã¸ã®ãƒ‘スãŒé€šã£ã¦ã„ã¾ã›ã‚“" + kor "공유 ë¼ì´ë²„러리를 위한 패스가 ì •ì˜ë˜ì–´ 있지 않습니다." + por "Não há caminhos (paths) permitidos para biblioteca compartilhada" + rum "Nici un paths nu e permis pentru o librarie shared" + rus "ÐедопуÑтимо указывать пути Ð´Ð»Ñ Ð´Ð¸Ð½Ð°Ð¼Ð¸Ñ‡ÐµÑких библиотек" + serbian "Ne postoje dozvoljene putanje do share-ovane biblioteke" + slo "Neprípustné žiadne cesty k zdieľanej knižnici" + spa "No pasos permitidos para librarias conjugadas" + swe "Man fÃ¥r inte ange sökväg för dynamiska bibliotek" + ukr "Ðе дозволено викориÑтовувати путі Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»ÑŽÐ²Ð°Ð½Ð¸Ñ… бібліотек" +ER_UDF_EXISTS + cze "Funkce '%-.192s' ji-Bž existuje" + dan "Funktionen '%-.192s' findes allerede" + nla "Functie '%-.192s' bestaat reeds" + eng "Function '%-.192s' already exists" + jps "Function '%-.192s' ã¯æ—¢ã«å®šç¾©ã•れã¦ã„ã¾ã™", + est "Funktsioon '%-.192s' juba eksisteerib" + fre "La fonction '%-.192s' existe déjà" + ger "Funktion '%-.192s' existiert schon" + greek "Η συνάÏτηση '%-.192s' υπάÏχει ήδη" + hun "A '%-.192s' fuggveny mar letezik" + ita "La funzione '%-.192s' esiste gia`" + jpn "Function '%-.192s' ã¯æ—¢ã«å®šç¾©ã•れã¦ã„ã¾ã™" + kor "'%-.192s' 함수는 ì´ë¯¸ 존재합니다." + por "Função '%-.192s' já existe" + rum "Functia '%-.192s' exista deja" + rus "Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ '%-.192s' уже ÑущеÑтвует" + serbian "Funkcija '%-.192s' već postoji" + slo "Funkcia '%-.192s' už existuje" + spa "Función '%-.192s' ya existe" + swe "Funktionen '%-.192s' finns redan" + ukr "Ð¤ÑƒÐ½ÐºÑ†Ñ–Ñ '%-.192s' вже Ñ–Ñнує" +ER_CANT_OPEN_LIBRARY + cze "Nemohu otev-Břít sdílenou knihovnu '%-.192s' (errno: %d, %-.128s)" + dan "Kan ikke Ã¥bne delt bibliotek '%-.192s' (errno: %d, %-.128s)" + nla "Kan shared library '%-.192s' niet openen (Errcode: %d, %-.128s)" + eng "Can't open shared library '%-.192s' (errno: %d, %-.128s)" + jps "shared library '%-.192s' ã‚’é–‹ã事ãŒã§ãã¾ã›ã‚“ (errno: %d, %-.128s)", + est "Ei suuda avada jagatud teeki '%-.192s' (veakood: %d, %-.128s)" + fre "Impossible d'ouvrir la bibliothèque partagée '%-.192s' (errno: %d, %-.128s)" + ger "Kann Shared Library '%-.192s' nicht öffnen (Fehler: %d, %-.128s)" + greek "Δεν είναι δυνατή η ανάγνωση της shared library '%-.192s' (κωδικός λάθους: %d, %-.128s)" + hun "A(z) '%-.192s' megosztott konyvtar nem hasznalhato (hibakod: %d, %-.128s)" + ita "Impossibile aprire la libreria condivisa '%-.192s' (errno: %d, %-.128s)" + jpn "shared library '%-.192s' ã‚’é–‹ã事ãŒã§ãã¾ã›ã‚“ (errno: %d, %-.128s)" + kor "'%-.192s' 공유 ë¼ì´ë²„러리를 열수 없습니다.(ì—러번호: %d, %-.128s)" + nor "Can't open shared library '%-.192s' (errno: %d, %-.128s)" + norwegian-ny "Can't open shared library '%-.192s' (errno: %d, %-.128s)" + pol "Can't open shared library '%-.192s' (errno: %d, %-.128s)" + por "Não pode abrir biblioteca compartilhada '%-.192s' (erro no. %d, %-.128s)" + rum "Nu pot deschide libraria shared '%-.192s' (Eroare: %d, %-.128s)" + rus "Ðевозможно открыть динамичеÑкую библиотеку '%-.192s' (ошибка: %d, %-.128s)" + serbian "Ne mogu da otvorim share-ovanu biblioteku '%-.192s' (errno: %d, %-.128s)" + slo "Nemôžem otvoriÅ¥ zdieľanú knižnicu '%-.192s' (chybový kód: %d, %-.128s)" + spa "No puedo abrir libraria conjugada '%-.192s' (errno: %d, %-.128s)" + swe "Kan inte öppna det dynamiska biblioteket '%-.192s' (Felkod: %d, %-.128s)" + ukr "Ðе можу відкрити розділювану бібліотеку '%-.192s' (помилка: %d, %-.128s)" +ER_CANT_FIND_DL_ENTRY + cze "Nemohu naj-Bít funkci '%-.128s' v knihovnÄ›" + dan "Kan ikke finde funktionen '%-.128s' i bibliotek" + nla "Kan functie '%-.128s' niet in library vinden" + eng "Can't find symbol '%-.128s' in library" + jps "function '%-.128s' をライブラリー中ã«è¦‹ä»˜ã‘る事ãŒã§ãã¾ã›ã‚“", + est "Ei leia funktsiooni '%-.128s' antud teegis" + fre "Impossible de trouver la fonction '%-.128s' dans la bibliothèque" + ger "Kann Funktion '%-.128s' in der Library nicht finden" + greek "Δεν είναι δυνατή η ανεÏÏεση της συνάÏτησης '%-.128s' στην βιβλιοθήκη" + hun "A(z) '%-.128s' fuggveny nem talalhato a konyvtarban" + ita "Impossibile trovare la funzione '%-.128s' nella libreria" + jpn "function '%-.128s' をライブラリー中ã«è¦‹ä»˜ã‘る事ãŒã§ãã¾ã›ã‚“" + kor "ë¼ì´ë²„러리ì—서 '%-.128s' 함수를 ì°¾ì„ ìˆ˜ 없습니다." + por "Não pode encontrar a função '%-.128s' na biblioteca" + rum "Nu pot gasi functia '%-.128s' in libraria" + rus "Ðевозможно отыÑкать Ñимвол '%-.128s' в библиотеке" + serbian "Ne mogu da pronadjem funkciju '%-.128s' u biblioteci" + slo "Nemôžem nájsÅ¥ funkciu '%-.128s' v knižnici" + spa "No puedo encontrar función '%-.128s' en libraria" + swe "Hittar inte funktionen '%-.128s' in det dynamiska biblioteket" + ukr "Ðе можу знайти функцію '%-.128s' у бібліотеці" +ER_FUNCTION_NOT_DEFINED + cze "Funkce '%-.192s' nen-Bí definována" + dan "Funktionen '%-.192s' er ikke defineret" + nla "Functie '%-.192s' is niet gedefinieerd" + eng "Function '%-.192s' is not defined" + jps "Function '%-.192s' ã¯å®šç¾©ã•れã¦ã„ã¾ã›ã‚“", + est "Funktsioon '%-.192s' ei ole defineeritud" + fre "La fonction '%-.192s' n'est pas définie" + ger "Funktion '%-.192s' ist nicht definiert" + greek "Η συνάÏτηση '%-.192s' δεν έχει οÏισθεί" + hun "A '%-.192s' fuggveny nem definialt" + ita "La funzione '%-.192s' non e` definita" + jpn "Function '%-.192s' ã¯å®šç¾©ã•れã¦ã„ã¾ã›ã‚“" + kor "'%-.192s' 함수가 ì •ì˜ë˜ì–´ 있지 않습니다." + por "Função '%-.192s' não está definida" + rum "Functia '%-.192s' nu e definita" + rus "Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ '%-.192s' не определена" + serbian "Funkcija '%-.192s' nije definisana" + slo "Funkcia '%-.192s' nie je definovaná" + spa "Función '%-.192s' no está definida" + swe "Funktionen '%-.192s' är inte definierad" + ukr "Функцію '%-.192s' не визначено" +ER_HOST_IS_BLOCKED + cze "Stroj '%-.64s' je zablokov-Bán kvůli mnoha chybám pÅ™i pÅ™ipojování. Odblokujete použitím 'mysqladmin flush-hosts'" + dan "Værten '%-.64s' er blokeret pÃ¥ grund af mange fejlforespørgsler. LÃ¥s op med 'mysqladmin flush-hosts'" + nla "Host '%-.64s' is geblokkeeerd vanwege te veel verbindings fouten. Deblokkeer met 'mysqladmin flush-hosts'" + eng "Host '%-.64s' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'" + jps "Host '%-.64s' 㯠many connection error ã®ãŸã‚ã€æ‹’å¦ã•れã¾ã—ãŸ. 'mysqladmin flush-hosts' ã§è§£é™¤ã—ã¦ãã ã•ã„", + est "Masin '%-.64s' on blokeeritud hulgaliste ühendusvigade tõttu. Blokeeringu saab tühistada 'mysqladmin flush-hosts' käsuga" + fre "L'hôte '%-.64s' est bloqué à cause d'un trop grand nombre d'erreur de connexion. Débloquer le par 'mysqladmin flush-hosts'" + ger "Host '%-.64s' blockiert wegen zu vieler Verbindungsfehler. Aufheben der Blockierung mit 'mysqladmin flush-hosts'" + greek "Ο υπολογιστής '%-.64s' έχει αποκλεισθεί λόγω πολλαπλών λαθών σÏνδεσης. ΠÏοσπαθήστε να διοÏώσετε με 'mysqladmin flush-hosts'" + hun "A '%-.64s' host blokkolodott, tul sok kapcsolodasi hiba miatt. Hasznalja a 'mysqladmin flush-hosts' parancsot" + ita "Sistema '%-.64s' bloccato a causa di troppi errori di connessione. Per sbloccarlo: 'mysqladmin flush-hosts'" + jpn "Host '%-.64s' 㯠many connection error ã®ãŸã‚ã€æ‹’å¦ã•れã¾ã—ãŸ. 'mysqladmin flush-hosts' ã§è§£é™¤ã—ã¦ãã ã•ã„" + kor "너무 ë§Žì€ ì—°ê²°ì˜¤ë¥˜ë¡œ ì¸í•˜ì—¬ 호스트 '%-.64s'는 블ë½ë˜ì—ˆìŠµë‹ˆë‹¤. 'mysqladmin flush-hosts'를 ì´ìš©í•˜ì—¬ 블ë½ì„ 해제하세요" + por "'Host' '%-.64s' está bloqueado devido a muitos erros de conexão. Desbloqueie com 'mysqladmin flush-hosts'" + rum "Host-ul '%-.64s' e blocat din cauza multelor erori de conectie. Poti deploca folosind 'mysqladmin flush-hosts'" + rus "ХоÑÑ‚ '%-.64s' заблокирован из-за Ñлишком большого количеÑтва ошибок ÑоединениÑ. Разблокировать его можно Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ 'mysqladmin flush-hosts'" + serbian "Host '%-.64s' je blokiran zbog previÅ¡e greÅ¡aka u konekciji. Možete ga odblokirati pomoću komande 'mysqladmin flush-hosts'" + spa "Servidor '%-.64s' está bloqueado por muchos errores de conexión. Desbloquear con 'mysqladmin flush-hosts'" + swe "Denna dator, '%-.64s', är blockerad pga mÃ¥nga felaktig paket. Gör 'mysqladmin flush-hosts' för att ta bort alla blockeringarna" + ukr "ХоÑÑ‚ '%-.64s' заблоковано з причини великої кількоÑті помилок з'єднаннÑ. Ð”Ð»Ñ Ñ€Ð¾Ð·Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñтовуйте 'mysqladmin flush-hosts'" +ER_HOST_NOT_PRIVILEGED + cze "Stroj '%-.64s' nem-Bá povoleno se k tomuto MariaDB serveru pÅ™ipojit" + dan "Værten '%-.64s' kan ikke tilkoble denne MariaDB-server" + nla "Het is host '%-.64s' is niet toegestaan verbinding te maken met deze MariaDB server" + eng "Host '%-.64s' is not allowed to connect to this MariaDB server" + jps "Host '%-.64s' 㯠MariaDB server ã«æŽ¥ç¶šã‚’è¨±å¯ã•れã¦ã„ã¾ã›ã‚“", + est "Masinal '%-.64s' puudub ligipääs sellele MariaDB serverile" + fre "Le hôte '%-.64s' n'est pas authorisé à se connecter à ce serveur MariaDB" + ger "Host '%-.64s' hat keine Berechtigung, sich mit diesem MariaDB-Server zu verbinden" + greek "Ο υπολογιστής '%-.64s' δεν έχει δικαίωμα σÏνδεσης με τον MariaDB server" + hun "A '%-.64s' host szamara nem engedelyezett a kapcsolodas ehhez a MariaDB szerverhez" + ita "Al sistema '%-.64s' non e` consentita la connessione a questo server MariaDB" + jpn "Host '%-.64s' 㯠MariaDB server ã«æŽ¥ç¶šã‚’è¨±å¯ã•れã¦ã„ã¾ã›ã‚“" + kor "'%-.64s' 호스트는 ì´ MariaDBì„œë²„ì— ì ‘ì†í•  허가를 받지 못했습니다." + por "'Host' '%-.64s' não tem permissão para se conectar com este servidor MariaDB" + rum "Host-ul '%-.64s' nu este permis a se conecta la aceste server MariaDB" + rus "ХоÑту '%-.64s' не разрешаетÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡Ð°Ñ‚ÑŒÑÑ Ðº Ñтому Ñерверу MariaDB" + serbian "Host-u '%-.64s' nije dozvoljeno da se konektuje na ovaj MariaDB server" + spa "Servidor '%-.64s' no está permitido para conectar con este servidor MariaDB" + swe "Denna dator, '%-.64s', har inte privileger att använda denna MariaDB server" + ukr "ХоÑту '%-.64s' не доволено зв'ÑзуватиÑÑŒ з цим Ñервером MariaDB" +ER_PASSWORD_ANONYMOUS_USER 42000 + cze "Pou-Bžíváte MariaDB jako anonymní uživatel a anonymní uživatelé nemají povoleno mÄ›nit hesla" + dan "Du bruger MariaDB som anonym bruger. Anonyme brugere mÃ¥ ikke ændre adgangskoder" + nla "U gebruikt MariaDB als anonieme gebruiker en deze mogen geen wachtwoorden wijzigen" + eng "You are using MariaDB as an anonymous user and anonymous users are not allowed to change passwords" + jps "MariaDB ã‚’ anonymous users ã§ä½¿ç”¨ã—ã¦ã„る状態ã§ã¯ã€ãƒ‘スワードã®å¤‰æ›´ã¯ã§ãã¾ã›ã‚“", + est "Te kasutate MariaDB-i anonüümse kasutajana, kelledel pole parooli muutmise õigust" + fre "Vous utilisez un utilisateur anonyme et les utilisateurs anonymes ne sont pas autorisés à changer les mots de passe" + ger "Sie benutzen MariaDB als anonymer Benutzer und dürfen daher keine Passwörter ändern" + greek "ΧÏησιμοποιείτε την MariaDB σαν anonymous user και έτσι δεν μποÏείτε να αλλάξετε τα passwords άλλων χÏηστών" + hun "Nevtelen (anonymous) felhasznalokent nem negedelyezett a jelszovaltoztatas" + ita "Impossibile cambiare la password usando MariaDB come utente anonimo" + jpn "MariaDB ã‚’ anonymous users ã§ä½¿ç”¨ã—ã¦ã„る状態ã§ã¯ã€ãƒ‘スワードã®å¤‰æ›´ã¯ã§ãã¾ã›ã‚“" + kor "ë‹¹ì‹ ì€ MariaDBì„œë²„ì— ìµëª…ì˜ ì‚¬ìš©ìžë¡œ ì ‘ì†ì„ 하셨습니다.ìµëª…ì˜ ì‚¬ìš©ìžëŠ” 암호를 변경할 수 없습니다." + por "Você está usando o MariaDB como usuário anônimo e usuários anônimos não têm permissão para mudar senhas" + rum "Dumneavoastra folositi MariaDB ca un utilizator anonim si utilizatorii anonimi nu au voie sa schime parolele" + rus "Ð’Ñ‹ иÑпользуете MariaDB от имени анонимного пользователÑ, а анонимным пользователÑм не разрешаетÑÑ Ð¼ÐµÐ½Ñть пароли" + serbian "Vi koristite MariaDB kao anonimni korisnik a anonimnim korisnicima nije dozvoljeno da menjaju lozinke" + spa "Tu estás usando MariaDB como un usuario anonimo y usuarios anonimos no tienen permiso para cambiar las claves" + swe "Du använder MariaDB som en anonym användare och som sÃ¥dan fÃ¥r du inte ändra ditt lösenord" + ukr "Ви викориÑтовуєте MariaDB Ñк анонімний кориÑтувач, тому вам не дозволено змінювати паролі" +ER_PASSWORD_NOT_ALLOWED 42000 + cze "Na zm-BÄ›nu hesel ostatním musíte mít právo provést update tabulek v databázi mysql" + dan "Du skal have tilladelse til at opdatere tabeller i MariaDB databasen for at ændre andres adgangskoder" + nla "U moet tabel update priveleges hebben in de mysql database om wachtwoorden voor anderen te mogen wijzigen" + eng "You must have privileges to update tables in the mysql database to be able to change passwords for others" + jps "ä»–ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ãƒ‘スワードを変更ã™ã‚‹ãŸã‚ã«ã¯, mysql データベースã«å¯¾ã—㦠update ã®è¨±å¯ãŒãªã‘れã°ãªã‚Šã¾ã›ã‚“.", + est "Teiste paroolide muutmiseks on nõutav tabelite muutmisõigus 'mysql' andmebaasis" + fre "Vous devez avoir le privilège update sur les tables de la base de donnée mysql pour pouvoir changer les mots de passe des autres" + ger "Sie benötigen die Berechtigung zum Aktualisieren von Tabellen in der Datenbank 'mysql', um die Passwörter anderer Benutzer ändern zu können" + greek "ΠÏέπει να έχετε δικαίωμα διόÏθωσης πινάκων (update) στη βάση δεδομένων mysql για να μποÏείτε να αλλάξετε τα passwords άλλων χÏηστών" + hun "Onnek tabla-update joggal kell rendelkeznie a mysql adatbazisban masok jelszavanak megvaltoztatasahoz" + ita "E` necessario il privilegio di update sulle tabelle del database mysql per cambiare le password per gli altri utenti" + jpn "ä»–ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®ãƒ‘スワードを変更ã™ã‚‹ãŸã‚ã«ã¯, mysql データベースã«å¯¾ã—㦠update ã®è¨±å¯ãŒãªã‘れã°ãªã‚Šã¾ã›ã‚“." + kor "ë‹¹ì‹ ì€ ë‹¤ë¥¸ì‚¬ìš©ìžë“¤ì˜ 암호를 변경할 수 있ë„ë¡ ë°ì´íƒ€ë² ì´ìФ ë³€ê²½ê¶Œí•œì„ ê°€ì ¸ì•¼ 합니다." + por "Você deve ter privilégios para atualizar tabelas no banco de dados mysql para ser capaz de mudar a senha de outros" + rum "Trebuie sa aveti privilegii sa actualizati tabelele in bazele de date mysql ca sa puteti sa schimati parolele altora" + rus "Ð”Ð»Ñ Ñ‚Ð¾Ð³Ð¾ чтобы изменÑть пароли других пользователей, у Ð²Ð°Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ‹ быть привилегии на изменение таблиц в базе данных mysql" + serbian "Morate imati privilegije da možete da update-ujete odreÄ‘ene tabele ako želite da menjate lozinke za druge korisnike" + spa "Tu debes de tener permiso para actualizar tablas en la base de datos mysql para cambiar las claves para otros" + swe "För att ändra lösenord för andra mÃ¥ste du ha rättigheter att uppdatera mysql-databasen" + ukr "Ви повині мати право на Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†ÑŒ у базі данних mysql, аби мати можливіÑть змінювати пароль іншим" +ER_PASSWORD_NO_MATCH 42000 + cze "V tabulce user nen-Bí žádný odpovídající řádek" + dan "Kan ikke finde nogen tilsvarende poster i bruger tabellen" + nla "Kan geen enkele passende rij vinden in de gebruikers tabel" + eng "Can't find any matching row in the user table" + est "Ei leia vastavat kirjet kasutajate tabelis" + fre "Impossible de trouver un enregistrement correspondant dans la table user" + ger "Kann keinen passenden Datensatz in Tabelle 'user' finden" + greek "Δεν είναι δυνατή η ανεÏÏεση της αντίστοιχης εγγÏαφής στον πίνακα των χÏηστών" + hun "Nincs megegyezo sor a user tablaban" + ita "Impossibile trovare la riga corrispondente nella tabella user" + kor "ì‚¬ìš©ìž í…Œì´ë¸”ì—서 ì¼ì¹˜í•˜ëŠ” ê²ƒì„ ì°¾ì„ ìˆ˜ ì—†ì니다." + por "Não pode encontrar nenhuma linha que combine na tabela usuário (user table)" + rum "Nu pot gasi nici o linie corespunzatoare in tabela utilizatorului" + rus "Ðевозможно отыÑкать подходÑщую запиÑÑŒ в таблице пользователей" + serbian "Ne mogu da pronaÄ‘em odgovarajući slog u 'user' tabeli" + spa "No puedo encontrar una línea correponsdiente en la tabla user" + swe "Hittade inte användaren i 'user'-tabellen" + ukr "Ðе можу знайти відповідних запиÑів у таблиці кориÑтувача" +ER_UPDATE_INFO + cze "Nalezen-Bých řádků: %ld ZmÄ›nÄ›no: %ld Varování: %ld" + dan "Poster fundet: %ld Ændret: %ld Advarsler: %ld" + nla "Passende rijen: %ld Gewijzigd: %ld Waarschuwingen: %ld" + eng "Rows matched: %ld Changed: %ld Warnings: %ld" + jps "一致数(Rows matched): %ld 変更: %ld Warnings: %ld", + est "Sobinud kirjeid: %ld Muudetud: %ld Hoiatusi: %ld" + fre "Enregistrements correspondants: %ld Modifiés: %ld Warnings: %ld" + ger "Datensätze gefunden: %ld Geändert: %ld Warnungen: %ld" + hun "Megegyezo sorok szama: %ld Valtozott: %ld Warnings: %ld" + ita "Rows riconosciute: %ld Cambiate: %ld Warnings: %ld" + jpn "一致数(Rows matched): %ld 変更: %ld Warnings: %ld" + kor "ì¼ì¹˜í•˜ëŠ” Rows : %ldê°œ 변경ë¨: %ldê°œ 경고: %ldê°œ" + por "Linhas que combinaram: %ld - Alteradas: %ld - Avisos: %ld" + rum "Linii identificate (matched): %ld Schimbate: %ld Atentionari (warnings): %ld" + rus "Совпало запиÑей: %ld Изменено: %ld Предупреждений: %ld" + serbian "Odgovarajućih slogova: %ld Promenjeno: %ld Upozorenja: %ld" + spa "Líneas correspondientes: %ld Cambiadas: %ld Avisos: %ld" + swe "Rader: %ld Uppdaterade: %ld Varningar: %ld" + ukr "ЗапиÑів відповідає: %ld Змінено: %ld ЗаÑтережень: %ld" +ER_CANT_CREATE_THREAD + cze "Nemohu vytvo-BÅ™it nový thread (errno %d). Pokud je jeÅ¡tÄ› nÄ›jaká volná paměť, podívejte se do manuálu na Äást o chybách specifických pro jednotlivé operaÄní systémy" + dan "Kan ikke danne en ny trÃ¥d (fejl nr. %d). Hvis computeren ikke er løbet tør for hukommelse, kan du se i brugervejledningen for en mulig operativ-system - afhængig fejl" + nla "Kan geen nieuwe thread aanmaken (Errcode: %d). Indien er geen tekort aan geheugen is kunt u de handleiding consulteren over een mogelijke OS afhankelijke fout" + eng "Can't create a new thread (errno %d); if you are not out of available memory, you can consult the manual for a possible OS-dependent bug" + jps "æ–°è¦ã«ã‚¹ãƒ¬ãƒƒãƒ‰ãŒä½œã‚Œã¾ã›ã‚“ã§ã—㟠(errno %d). ã‚‚ã—æœ€å¤§ä½¿ç”¨è¨±å¯ãƒ¡ãƒ¢ãƒªãƒ¼æ•°ã‚’è¶Šãˆã¦ã„ãªã„ã®ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¦ã„ã‚‹ãªã‚‰, マニュアルã®ä¸­ã‹ã‚‰ 'possible OS-dependent bug' ã¨ã„ã†æ–‡å­—を探ã—ã¦ãã¿ã¦ã ã•ã„.", + est "Ei suuda luua uut lõime (veakood %d). Kui mälu ei ole otsas, on tõenäoliselt tegemist operatsioonisüsteemispetsiifilise veaga" + fre "Impossible de créer une nouvelle tâche (errno %d). S'il reste de la mémoire libre, consultez le manual pour trouver un éventuel bug dépendant de l'OS" + ger "Kann keinen neuen Thread erzeugen (Fehler: %d). Sollte noch Speicher verfügbar sein, bitte im Handbuch wegen möglicher Fehler im Betriebssystem nachschlagen" + hun "Uj thread letrehozasa nem lehetseges (Hibakod: %d). Amenyiben van meg szabad memoria, olvassa el a kezikonyv operacios rendszerfuggo hibalehetosegekrol szolo reszet" + ita "Impossibile creare un nuovo thread (errno %d). Se non ci sono problemi di memoria disponibile puoi consultare il manuale per controllare possibili problemi dipendenti dal SO" + jpn "æ–°è¦ã«ã‚¹ãƒ¬ãƒƒãƒ‰ãŒä½œã‚Œã¾ã›ã‚“ã§ã—㟠(errno %d). ã‚‚ã—æœ€å¤§ä½¿ç”¨è¨±å¯ãƒ¡ãƒ¢ãƒªãƒ¼æ•°ã‚’è¶Šãˆã¦ã„ãªã„ã®ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¦ã„ã‚‹ãªã‚‰, マニュアルã®ä¸­ã‹ã‚‰ 'possible OS-dependent bug' ã¨ã„ã†æ–‡å­—を探ã—ã¦ãã¿ã¦ã ã•ã„." + kor "새로운 쓰레드를 만들 수 없습니다.(ì—러번호 %d). 만약 여유메모리가 있다면 OS-dependent버그 ì˜ ë©”ë‰´ì–¼ ë¶€ë¶„ì„ ì°¾ì•„ë³´ì‹œì˜¤." + nor "Can't create a new thread (errno %d); if you are not out of available memory you can consult the manual for any possible OS dependent bug" + norwegian-ny "Can't create a new thread (errno %d); if you are not out of available memory you can consult the manual for any possible OS dependent bug" + pol "Can't create a new thread (errno %d); if you are not out of available memory you can consult the manual for any possible OS dependent bug" + por "Não pode criar uma nova 'thread' (erro no. %d). Se você não estiver sem memória disponível, você pode consultar o manual sobre um possível 'bug' dependente do sistema operacional" + rum "Nu pot crea un thread nou (Eroare %d). Daca mai aveti memorie disponibila in sistem, puteti consulta manualul - ar putea exista un potential bug in legatura cu sistemul de operare" + rus "Ðевозможно Ñоздать новый поток (ошибка %d). ЕÑли Ñто не ÑитуациÑ, ÑвÑÐ·Ð°Ð½Ð½Ð°Ñ Ñ Ð½ÐµÑ…Ð²Ð°Ñ‚ÐºÐ¾Ð¹ памÑти, то вам Ñледует изучить документацию на предмет опиÑÐ°Ð½Ð¸Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ð¹ ошибки работы в конкретной ОС" + serbian "Ne mogu da kreiram novi thread (errno %d). Ako imate joÅ¡ slobodne memorije, trebali biste da pogledate u priruÄniku da li je ovo specifiÄna greÅ¡ka vaÅ¡eg operativnog sistema" + spa "No puedo crear un nuevo thread (errno %d). Si tu está con falta de memoria disponible, tu puedes consultar el Manual para posibles problemas con SO" + swe "Kan inte skapa en ny trÃ¥d (errno %d)" + ukr "Ðе можу Ñтворити нову гілку (помилка %d). Якщо ви не викориÑтали уÑÑŽ пам'Ñть, то прочитайте документацію до вашої ОС - можливо це помилка ОС" +ER_WRONG_VALUE_COUNT_ON_ROW 21S01 + cze "Po-BÄet sloupců neodpovídá poÄtu hodnot na řádku %lu" + dan "Kolonne antallet stemmer ikke overens med antallet af værdier i post %lu" + nla "Kolom aantal komt niet overeen met waarde aantal in rij %lu" + eng "Column count doesn't match value count at row %lu" + est "Tulpade hulk erineb väärtuste hulgast real %lu" + ger "Anzahl der Felder stimmt nicht mit der Anzahl der Werte in Zeile %lu überein" + hun "Az oszlopban talalhato ertek nem egyezik meg a %lu sorban szamitott ertekkel" + ita "Il numero delle colonne non corrisponde al conteggio alla riga %lu" + kor "Row %luì—서 칼럼 카운트와 value 카운터와 ì¼ì¹˜í•˜ì§€ 않습니다." + por "Contagem de colunas não confere com a contagem de valores na linha %lu" + rum "Numarul de coloane nu corespunde cu numarul de valori la linia %lu" + rus "КоличеÑтво Ñтолбцов не Ñовпадает Ñ ÐºÐ¾Ð»Ð¸Ñ‡ÐµÑтвом значений в запиÑи %lu" + serbian "Broj kolona ne odgovara broju vrednosti u slogu %lu" + spa "El número de columnas no corresponde al número en la línea %lu" + swe "Antalet kolumner motsvarar inte antalet värden pÃ¥ rad: %lu" + ukr "КількіÑть Ñтовбців не Ñпівпадає з кількіÑтю значень у Ñтроці %lu" +ER_CANT_REOPEN_TABLE + cze "Nemohu znovuotev-Břít tabulku: '%-.192s" + dan "Kan ikke genÃ¥bne tabel '%-.192s" + nla "Kan tabel niet opnieuw openen: '%-.192s" + eng "Can't reopen table: '%-.192s'" + est "Ei suuda taasavada tabelit '%-.192s'" + fre "Impossible de réouvrir la table: '%-.192s" + ger "Kann Tabelle'%-.192s' nicht erneut öffnen" + hun "Nem lehet ujra-megnyitni a tablat: '%-.192s" + ita "Impossibile riaprire la tabella: '%-.192s'" + kor "í…Œì´ë¸”ì„ ë‹¤ì‹œ 열수 없군요: '%-.192s" + nor "Can't reopen table: '%-.192s" + norwegian-ny "Can't reopen table: '%-.192s" + pol "Can't reopen table: '%-.192s" + por "Não pode reabrir a tabela '%-.192s" + rum "Nu pot redeschide tabela: '%-.192s'" + rus "Ðевозможно заново открыть таблицу '%-.192s'" + serbian "Ne mogu da ponovo otvorim tabelu '%-.192s'" + slo "Can't reopen table: '%-.192s" + spa "No puedo reabrir tabla: '%-.192s" + swe "Kunde inte stänga och öppna tabell '%-.192s" + ukr "Ðе можу перевідкрити таблицю: '%-.192s'" +ER_INVALID_USE_OF_NULL 22004 + cze "Neplatn-Bé užití hodnoty NULL" + dan "Forkert brug af nulværdi (NULL)" + nla "Foutief gebruik van de NULL waarde" + eng "Invalid use of NULL value" + jps "NULL 値ã®ä½¿ç”¨æ–¹æ³•ãŒä¸é©åˆ‡ã§ã™", + est "NULL väärtuse väärkasutus" + fre "Utilisation incorrecte de la valeur NULL" + ger "Unerlaubte Verwendung eines NULL-Werts" + hun "A NULL ervenytelen hasznalata" + ita "Uso scorretto del valore NULL" + jpn "NULL 値ã®ä½¿ç”¨æ–¹æ³•ãŒä¸é©åˆ‡ã§ã™" + kor "NULL ê°’ì„ ìž˜ëª» 사용하셨군요..." + por "Uso inválido do valor NULL" + rum "Folosirea unei value NULL e invalida" + rus "Ðеправильное иÑпользование величины NULL" + serbian "PogreÅ¡na upotreba vrednosti NULL" + spa "Invalido uso de valor NULL" + swe "Felaktig använding av NULL" + ukr "Хибне викориÑÑ‚Ð°Ð½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ NULL" +ER_REGEXP_ERROR 42000 + cze "Regul-Bární výraz vrátil chybu '%-.64s'" + dan "Fik fejl '%-.64s' fra regexp" + nla "Fout '%-.64s' ontvangen van regexp" + eng "Got error '%-.64s' from regexp" + est "regexp tagastas vea '%-.64s'" + fre "Erreur '%-.64s' provenant de regexp" + ger "regexp lieferte Fehler '%-.64s'" + hun "'%-.64s' hiba a regularis kifejezes hasznalata soran (regexp)" + ita "Errore '%-.64s' da regexp" + kor "regexpì—서 '%-.64s'ê°€ 났습니다." + por "Obteve erro '%-.64s' em regexp" + rum "Eroarea '%-.64s' obtinuta din expresia regulara (regexp)" + rus "Получена ошибка '%-.64s' от регулÑрного выражениÑ" + serbian "Funkcija regexp je vratila greÅ¡ku '%-.64s'" + spa "Obtenido error '%-.64s' de regexp" + swe "Fick fel '%-.64s' frÃ¥n REGEXP" + ukr "Отримано помилку '%-.64s' від регулÑрного виразу" +ER_MIX_OF_GROUP_FUNC_AND_FIELDS 42000 + cze "Pokud nen-Bí žádná GROUP BY klauzule, není dovoleno souÄasné použití GROUP položek (MIN(),MAX(),COUNT()...) s ne GROUP položkami" + dan "Sammenblanding af GROUP kolonner (MIN(),MAX(),COUNT()...) uden GROUP kolonner er ikke tilladt, hvis der ikke er noget GROUP BY prædikat" + nla "Het mixen van GROUP kolommen (MIN(),MAX(),COUNT()...) met no-GROUP kolommen is foutief indien er geen GROUP BY clausule is" + eng "Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause" + est "GROUP tulpade (MIN(),MAX(),COUNT()...) kooskasutamine tavaliste tulpadega ilma GROUP BY klauslita ei ole lubatud" + fre "Mélanger les colonnes GROUP (MIN(),MAX(),COUNT()...) avec des colonnes normales est interdit s'il n'y a pas de clause GROUP BY" + ger "Das Vermischen von GROUP-Feldern (MIN(),MAX(),COUNT()...) mit Nicht-GROUP-Feldern ist nicht zulässig, wenn keine GROUP-BY-Klausel vorhanden ist" + hun "A GROUP mezok (MIN(),MAX(),COUNT()...) kevert hasznalata nem lehetseges GROUP BY hivatkozas nelkul" + ita "Il mescolare funzioni di aggregazione (MIN(),MAX(),COUNT()...) e non e` illegale se non c'e` una clausula GROUP BY" + kor "Mixing of GROUP 칼럼s (MIN(),MAX(),COUNT(),...) with no GROUP 칼럼s is illegal if there is no GROUP BY clause" + por "Mistura de colunas agrupadas (com MIN(), MAX(), COUNT(), ...) com colunas não agrupadas é ilegal, se não existir uma cláusula de agrupamento (cláusula GROUP BY)" + rum "Amestecarea de coloane GROUP (MIN(),MAX(),COUNT()...) fara coloane GROUP este ilegala daca nu exista o clauza GROUP BY" + rus "Одновременное иÑпользование Ñгруппированных (GROUP) Ñтолбцов (MIN(),MAX(),COUNT(),...) Ñ Ð½ÐµÑгруппированными Ñтолбцами ÑвлÑетÑÑ Ð½ÐµÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ñ‹Ð¼, еÑли в выражении еÑть GROUP BY" + serbian "Upotreba agregatnih funkcija (MIN(),MAX(),COUNT()...) bez 'GROUP' kolona je pogreÅ¡na ako ne postoji 'GROUP BY' iskaz" + spa "Mezcla de columnas GROUP (MIN(),MAX(),COUNT()...) con no GROUP columnas es ilegal si no hat la clausula GROUP BY" + swe "Man fÃ¥r ha bÃ¥de GROUP-kolumner (MIN(),MAX(),COUNT()...) och fält i en frÃ¥ga om man inte har en GROUP BY-del" + ukr "Ð—Ð¼Ñ–ÑˆÑƒÐ²Ð°Ð½Ð½Ñ GROUP Ñтовбців (MIN(),MAX(),COUNT()...) з не GROUP ÑтовбцÑми Ñ” забороненим, Ñкщо не має GROUP BY" +ER_NONEXISTING_GRANT 42000 + cze "Neexistuje odpov-Bídající grant pro uživatele '%-.48s' na stroji '%-.64s'" + dan "Denne tilladelse findes ikke for brugeren '%-.48s' pÃ¥ vært '%-.64s'" + nla "Deze toegang (GRANT) is niet toegekend voor gebruiker '%-.48s' op host '%-.64s'" + eng "There is no such grant defined for user '%-.48s' on host '%-.64s'" + jps "ユーザー '%-.48s' (ホスト '%-.64s' ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼) ã¯è¨±å¯ã•れã¦ã„ã¾ã›ã‚“", + est "Sellist õigust ei ole defineeritud kasutajale '%-.48s' masinast '%-.64s'" + fre "Un tel droit n'est pas défini pour l'utilisateur '%-.48s' sur l'hôte '%-.64s'" + ger "Für Benutzer '%-.48s' auf Host '%-.64s' gibt es keine solche Berechtigung" + hun "A '%-.48s' felhasznalonak nincs ilyen joga a '%-.64s' host-on" + ita "GRANT non definita per l'utente '%-.48s' dalla macchina '%-.64s'" + jpn "ユーザー '%-.48s' (ホスト '%-.64s' ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼) ã¯è¨±å¯ã•れã¦ã„ã¾ã›ã‚“" + kor "ì‚¬ìš©ìž '%-.48s' (호스트 '%-.64s')를 위하여 ì •ì˜ëœ 그런 승ì¸ì€ 없습니다." + por "Não existe tal permissão (grant) definida para o usuário '%-.48s' no 'host' '%-.64s'" + rum "Nu exista un astfel de grant definit pentru utilzatorul '%-.48s' de pe host-ul '%-.64s'" + rus "Такие права не определены Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ '%-.48s' на хоÑте '%-.64s'" + serbian "Ne postoji odobrenje za pristup korisniku '%-.48s' na host-u '%-.64s'" + spa "No existe permiso definido para usuario '%-.48s' en el servidor '%-.64s'" + swe "Det finns inget privilegium definierat för användare '%-.48s' pÃ¥ '%-.64s'" + ukr "Повноважень не визначено Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувача '%-.48s' з хоÑту '%-.64s'" +ER_TABLEACCESS_DENIED_ERROR 42000 + cze "%-.16s p-Bříkaz nepřístupný pro uživatele: '%s'@'%s' pro tabulku '%-.192s'" + dan "%-.16s-kommandoen er ikke tilladt for brugeren '%s'@'%s' for tabellen '%-.192s'" + nla "%-.16s commando geweigerd voor gebruiker: '%s'@'%s' voor tabel '%-.192s'" + eng "%-.16s command denied to user '%s'@'%s' for table '%-.192s'" + jps "コマンド %-.16s 㯠ユーザー '%s'@'%s' ,テーブル '%-.192s' ã«å¯¾ã—ã¦è¨±å¯ã•れã¦ã„ã¾ã›ã‚“", + est "%-.16s käsk ei ole lubatud kasutajale '%s'@'%s' tabelis '%-.192s'" + fre "La commande '%-.16s' est interdite à l'utilisateur: '%s'@'%s' sur la table '%-.192s'" + ger "%-.16s Befehl nicht erlaubt für Benutzer '%s'@'%s' auf Tabelle '%-.192s'" + hun "%-.16s parancs a '%s'@'%s' felhasznalo szamara nem engedelyezett a '%-.192s' tablaban" + ita "Comando %-.16s negato per l'utente: '%s'@'%s' sulla tabella '%-.192s'" + jpn "コマンド %-.16s 㯠ユーザー '%s'@'%s' ,テーブル '%-.192s' ã«å¯¾ã—ã¦è¨±å¯ã•れã¦ã„ã¾ã›ã‚“" + kor "'%-.16s' ëª…ë ¹ì€ ë‹¤ìŒ ì‚¬ìš©ìžì—게 ê±°ë¶€ë˜ì—ˆìŠµë‹ˆë‹¤. : '%s'@'%s' for í…Œì´ë¸” '%-.192s'" + por "Comando '%-.16s' negado para o usuário '%s'@'%s' na tabela '%-.192s'" + rum "Comanda %-.16s interzisa utilizatorului: '%s'@'%s' pentru tabela '%-.192s'" + rus "Команда %-.16s запрещена пользователю '%s'@'%s' Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹ '%-.192s'" + serbian "%-.16s komanda zabranjena za korisnika '%s'@'%s' za tabelu '%-.192s'" + spa "%-.16s comando negado para usuario: '%s'@'%s' para tabla '%-.192s'" + swe "%-.16s ej tillÃ¥tet för '%s'@'%s' för tabell '%-.192s'" + ukr "%-.16s команда заборонена кориÑтувачу: '%s'@'%s' у таблиці '%-.192s'" +ER_COLUMNACCESS_DENIED_ERROR 42000 + cze "%-.16s p-Bříkaz nepřístupný pro uživatele: '%s'@'%s' pro sloupec '%-.192s' v tabulce '%-.192s'" + dan "%-.16s-kommandoen er ikke tilladt for brugeren '%s'@'%s' for kolonne '%-.192s' in tabellen '%-.192s'" + nla "%-.16s commando geweigerd voor gebruiker: '%s'@'%s' voor kolom '%-.192s' in tabel '%-.192s'" + eng "%-.16s command denied to user '%s'@'%s' for column '%-.192s' in table '%-.192s'" + jps "コマンド %-.16s 㯠ユーザー '%s'@'%s'Â¥n カラム '%-.192s' テーブル '%-.192s' ã«å¯¾ã—ã¦è¨±å¯ã•れã¦ã„ã¾ã›ã‚“", + est "%-.16s käsk ei ole lubatud kasutajale '%s'@'%s' tulbale '%-.192s' tabelis '%-.192s'" + fre "La commande '%-.16s' est interdite à l'utilisateur: '%s'@'%s' sur la colonne '%-.192s' de la table '%-.192s'" + ger "%-.16s Befehl nicht erlaubt für Benutzer '%s'@'%s' und Feld '%-.192s' in Tabelle '%-.192s'" + hun "%-.16s parancs a '%s'@'%s' felhasznalo szamara nem engedelyezett a '%-.192s' mezo eseten a '%-.192s' tablaban" + ita "Comando %-.16s negato per l'utente: '%s'@'%s' sulla colonna '%-.192s' della tabella '%-.192s'" + jpn "コマンド %-.16s 㯠ユーザー '%s'@'%s'\n カラム '%-.192s' テーブル '%-.192s' ã«å¯¾ã—ã¦è¨±å¯ã•れã¦ã„ã¾ã›ã‚“" + kor "'%-.16s' ëª…ë ¹ì€ ë‹¤ìŒ ì‚¬ìš©ìžì—게 ê±°ë¶€ë˜ì—ˆìŠµë‹ˆë‹¤. : '%s'@'%s' for 칼럼 '%-.192s' in í…Œì´ë¸” '%-.192s'" + por "Comando '%-.16s' negado para o usuário '%s'@'%s' na coluna '%-.192s', na tabela '%-.192s'" + rum "Comanda %-.16s interzisa utilizatorului: '%s'@'%s' pentru coloana '%-.192s' in tabela '%-.192s'" + rus "Команда %-.16s запрещена пользователю '%s'@'%s' Ð´Ð»Ñ Ñтолбца '%-.192s' в таблице '%-.192s'" + serbian "%-.16s komanda zabranjena za korisnika '%s'@'%s' za kolonu '%-.192s' iz tabele '%-.192s'" + spa "%-.16s comando negado para usuario: '%s'@'%s' para columna '%-.192s' en la tabla '%-.192s'" + swe "%-.16s ej tillÃ¥tet för '%s'@'%s' för kolumn '%-.192s' i tabell '%-.192s'" + ukr "%-.16s команда заборонена кориÑтувачу: '%s'@'%s' Ð´Ð»Ñ ÑÑ‚Ð¾Ð²Ð±Ñ†Ñ '%-.192s' у таблиці '%-.192s'" +ER_ILLEGAL_GRANT_FOR_TABLE 42000 + cze "Neplatn-Bý příkaz GRANT/REVOKE. Prosím, pÅ™eÄtÄ›te si v manuálu, jaká privilegia je možné použít." + dan "Forkert GRANT/REVOKE kommando. Se i brugervejledningen hvilke privilegier der kan specificeres." + nla "Foutief GRANT/REVOKE commando. Raadpleeg de handleiding welke priveleges gebruikt kunnen worden." + eng "Illegal GRANT/REVOKE command; please consult the manual to see which privileges can be used" + est "Vigane GRANT/REVOKE käsk. Tutvu kasutajajuhendiga" + fre "Commande GRANT/REVOKE incorrecte. Consultez le manuel." + ger "Unzulässiger GRANT- oder REVOKE-Befehl. Verfügbare Berechtigungen sind im Handbuch aufgeführt" + greek "Illegal GRANT/REVOKE command; please consult the manual to see which privileges can be used." + hun "Ervenytelen GRANT/REVOKE parancs. Kerem, nezze meg a kezikonyvben, milyen jogok lehetsegesek" + ita "Comando GRANT/REVOKE illegale. Prego consultare il manuale per sapere quali privilegi possono essere usati." + jpn "Illegal GRANT/REVOKE command; please consult the manual to see which privleges can be used." + kor "ìž˜ëª»ëœ GRANT/REVOKE 명령. ì–´ë–¤ 권리와 승ì¸ì´ 사용ë˜ì–´ 질 수 있는지 ë©”ë‰´ì–¼ì„ ë³´ì‹œì˜¤." + nor "Illegal GRANT/REVOKE command; please consult the manual to see which privleges can be used." + norwegian-ny "Illegal GRANT/REVOKE command; please consult the manual to see which privleges can be used." + pol "Illegal GRANT/REVOKE command; please consult the manual to see which privleges can be used." + por "Comando GRANT/REVOKE ilegal. Por favor consulte no manual quais privilégios podem ser usados." + rum "Comanda GRANT/REVOKE ilegala. Consultati manualul in privinta privilegiilor ce pot fi folosite." + rus "ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° GRANT или REVOKE. ОбратитеÑÑŒ к документации, чтобы выÑÑнить, какие привилегии можно иÑпользовать" + serbian "PogreÅ¡na 'GRANT' odnosno 'REVOKE' komanda. Molim Vas pogledajte u priruÄniku koje vrednosti mogu biti upotrebljene." + slo "Illegal GRANT/REVOKE command; please consult the manual to see which privleges can be used." + spa "Ilegal comando GRANT/REVOKE. Por favor consulte el manual para cuales permisos pueden ser usados." + swe "Felaktigt GRANT-privilegium använt" + ukr "Хибна GRANT/REVOKE команда; прочитайте документацію ÑтоÑовно того, Ñкі права можна викориÑтовувати" +ER_GRANT_WRONG_HOST_OR_USER 42000 + cze "Argument p-Bříkazu GRANT uživatel nebo stroj je příliÅ¡ dlouhý" + dan "Værts- eller brugernavn for langt til GRANT" + nla "De host of gebruiker parameter voor GRANT is te lang" + eng "The host or user argument to GRANT is too long" + est "Masina või kasutaja nimi GRANT lauses on liiga pikk" + fre "L'hôte ou l'utilisateur donné en argument à GRANT est trop long" + ger "Das Host- oder User-Argument für GRANT ist zu lang" + hun "A host vagy felhasznalo argumentuma tul hosszu a GRANT parancsban" + ita "L'argomento host o utente per la GRANT e` troppo lungo" + kor "승ì¸(GRANT)ì„ ìœ„í•˜ì—¬ 사용한 사용ìžë‚˜ í˜¸ìŠ¤íŠ¸ì˜ ê°’ë“¤ì´ ë„ˆë¬´ ê¹ë‹ˆë‹¤." + por "Argumento de 'host' ou de usuário para o GRANT é longo demais" + rum "Argumentul host-ului sau utilizatorului pentru GRANT e prea lung" + rus "Слишком длинное Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ/хоÑта Ð´Ð»Ñ GRANT" + serbian "Argument 'host' ili 'korisnik' prosleÄ‘en komandi 'GRANT' je predugaÄak" + spa "El argumento para servidor o usuario para GRANT es demasiado grande" + swe "Felaktigt maskinnamn eller användarnamn använt med GRANT" + ukr "Ðргумент host або user Ð´Ð»Ñ GRANT задовгий" +ER_NO_SUCH_TABLE 42S02 + cze "Tabulka '%-.192s.%-.192s' neexistuje" + dan "Tabellen '%-.192s.%-.192s' eksisterer ikke" + nla "Tabel '%-.192s.%-.192s' bestaat niet" + eng "Table '%-.192s.%-.192s' doesn't exist" + est "Tabelit '%-.192s.%-.192s' ei eksisteeri" + fre "La table '%-.192s.%-.192s' n'existe pas" + ger "Tabelle '%-.192s.%-.192s' existiert nicht" + hun "A '%-.192s.%-.192s' tabla nem letezik" + ita "La tabella '%-.192s.%-.192s' non esiste" + jpn "Table '%-.192s.%-.192s' doesn't exist" + kor "í…Œì´ë¸” '%-.192s.%-.192s' 는 존재하지 않습니다." + nor "Table '%-.192s.%-.192s' doesn't exist" + norwegian-ny "Table '%-.192s.%-.192s' doesn't exist" + pol "Table '%-.192s.%-.192s' doesn't exist" + por "Tabela '%-.192s.%-.192s' não existe" + rum "Tabela '%-.192s.%-.192s' nu exista" + rus "Таблица '%-.192s.%-.192s' не ÑущеÑтвует" + serbian "Tabela '%-.192s.%-.192s' ne postoji" + slo "Table '%-.192s.%-.192s' doesn't exist" + spa "Tabla '%-.192s.%-.192s' no existe" + swe "Det finns ingen tabell som heter '%-.192s.%-.192s'" + ukr "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ '%-.192s.%-.192s' не Ñ–Ñнує" +ER_NONEXISTING_TABLE_GRANT 42000 + cze "Neexistuje odpov-Bídající grant pro uživatele '%-.48s' na stroji '%-.64s' pro tabulku '%-.192s'" + dan "Denne tilladelse eksisterer ikke for brugeren '%-.48s' pÃ¥ vært '%-.64s' for tabellen '%-.192s'" + nla "Deze toegang (GRANT) is niet toegekend voor gebruiker '%-.48s' op host '%-.64s' op tabel '%-.192s'" + eng "There is no such grant defined for user '%-.48s' on host '%-.64s' on table '%-.192s'" + est "Sellist õigust ei ole defineeritud kasutajale '%-.48s' masinast '%-.64s' tabelile '%-.192s'" + fre "Un tel droit n'est pas défini pour l'utilisateur '%-.48s' sur l'hôte '%-.64s' sur la table '%-.192s'" + ger "Eine solche Berechtigung ist für User '%-.48s' auf Host '%-.64s' an Tabelle '%-.192s' nicht definiert" + hun "A '%-.48s' felhasznalo szamara a '%-.64s' host '%-.192s' tablajaban ez a parancs nem engedelyezett" + ita "GRANT non definita per l'utente '%-.48s' dalla macchina '%-.64s' sulla tabella '%-.192s'" + kor "ì‚¬ìš©ìž '%-.48s'(호스트 '%-.64s')는 í…Œì´ë¸” '%-.192s'를 사용하기 위하여 ì •ì˜ëœ 승ì¸ì€ 없습니다. " + por "Não existe tal permissão (grant) definido para o usuário '%-.48s' no 'host' '%-.64s', na tabela '%-.192s'" + rum "Nu exista un astfel de privilegiu (grant) definit pentru utilizatorul '%-.48s' de pe host-ul '%-.64s' pentru tabela '%-.192s'" + rus "Такие права не определены Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ '%-.48s' на компьютере '%-.64s' Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹ '%-.192s'" + serbian "Ne postoji odobrenje za pristup korisniku '%-.48s' na host-u '%-.64s' tabeli '%-.192s'" + spa "No existe tal permiso definido para usuario '%-.48s' en el servidor '%-.64s' en la tabla '%-.192s'" + swe "Det finns inget privilegium definierat för användare '%-.48s' pÃ¥ '%-.64s' för tabell '%-.192s'" + ukr "Повноважень не визначено Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувача '%-.48s' з хоÑту '%-.64s' Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– '%-.192s'" +ER_NOT_ALLOWED_COMMAND 42000 + cze "Pou-Bžitý příkaz není v této verzi MariaDB povolen" + dan "Den brugte kommando er ikke tilladt med denne udgave af MariaDB" + nla "Het used commando is niet toegestaan in deze MariaDB versie" + eng "The used command is not allowed with this MariaDB version" + est "Antud käsk ei ole lubatud käesolevas MariaDB versioonis" + fre "Cette commande n'existe pas dans cette version de MariaDB" + ger "Der verwendete Befehl ist in dieser MariaDB-Version nicht zulässig" + hun "A hasznalt parancs nem engedelyezett ebben a MariaDB verzioban" + ita "Il comando utilizzato non e` supportato in questa versione di MariaDB" + kor "ì‚¬ìš©ëœ ëª…ë ¹ì€ í˜„ìž¬ì˜ MariaDB 버젼ì—서는 ì´ìš©ë˜ì§€ 않습니다." + por "Comando usado não é permitido para esta versão do MariaDB" + rum "Comanda folosita nu este permisa pentru aceasta versiune de MariaDB" + rus "Эта команда не допуÑкаетÑÑ Ð² данной верÑии MariaDB" + serbian "Upotrebljena komanda nije dozvoljena sa ovom verzijom MariaDB servera" + spa "El comando usado no es permitido con esta versión de MariaDB" + swe "Du kan inte använda detta kommando med denna MariaDB version" + ukr "ВикориÑтовувана команда не дозволена у цій верÑÑ–Ñ— MariaDB" +ER_SYNTAX_ERROR 42000 + cze "Va-BÅ¡e syntaxe je nÄ›jaká divná" + dan "Der er en fejl i SQL syntaksen" + nla "Er is iets fout in de gebruikte syntax" + eng "You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use" + est "Viga SQL süntaksis" + fre "Erreur de syntaxe" + ger "Fehler in der SQL-Syntax. Bitte die korrekte Syntax im Handbuch nachschlagen" + greek "You have an error in your SQL syntax" + hun "Szintaktikai hiba" + ita "Errore di sintassi nella query SQL" + jpn "Something is wrong in your syntax" + kor "SQL êµ¬ë¬¸ì— ì˜¤ë¥˜ê°€ 있습니다." + nor "Something is wrong in your syntax" + norwegian-ny "Something is wrong in your syntax" + pol "Something is wrong in your syntax" + por "Você tem um erro de sintaxe no seu SQL" + rum "Aveti o eroare in sintaxa RSQL" + rus "У Ð²Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° в запроÑе. Изучите документацию по иÑпользуемой верÑии MariaDB на предмет корректного ÑинтакÑиÑа" + serbian "Imate greÅ¡ku u vaÅ¡oj SQL sintaksi" + slo "Something is wrong in your syntax" + spa "Algo está equivocado en su sintax" + swe "Du har nÃ¥got fel i din syntax" + ukr "У Ð²Ð°Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ° у ÑинтакÑиÑÑ– SQL" +ER_DELAYED_CANT_CHANGE_LOCK + cze "Zpo-BždÄ›ný insert threadu nebyl schopen získat požadovaný zámek pro tabulku %-.192s" + dan "Forsinket indsættelse trÃ¥den (delayed insert thread) kunne ikke opnÃ¥ lÃ¥s pÃ¥ tabellen %-.192s" + nla "'Delayed insert' thread kon de aangevraagde 'lock' niet krijgen voor tabel %-.192s" + eng "Delayed insert thread couldn't get requested lock for table %-.192s" + est "INSERT DELAYED lõim ei suutnud saada soovitud lukku tabelile %-.192s" + fre "La tâche 'delayed insert' n'a pas pu obtenir le verrou démandé sur la table %-.192s" + ger "Verzögerter (DELAYED) Einfüge-Thread konnte die angeforderte Sperre für Tabelle '%-.192s' nicht erhalten" + hun "A kesleltetett beillesztes (delayed insert) thread nem kapott zatolast a %-.192s tablahoz" + ita "Il thread di inserimento ritardato non riesce ad ottenere il lock per la tabella %-.192s" + kor "ì§€ì—°ëœ insert 쓰레드가 í…Œì´ë¸” %-.192sì˜ ìš”êµ¬ëœ ë½í‚¹ì„ 처리할 수 없었습니다." + por "'Thread' de inserção retardada (atrasada) pois não conseguiu obter a trava solicitada para tabela '%-.192s'" + rum "Thread-ul pentru inserarea aminata nu a putut obtine lacatul (lock) pentru tabela %-.192s" + rus "Поток, обÑлуживающий отложенную вÑтавку (delayed insert), не Ñмог получить запрашиваемую блокировку на таблицу %-.192s" + serbian "Prolongirani 'INSERT' thread nije mogao da dobije traženo zakljuÄavanje tabele '%-.192s'" + spa "Thread de inserción retarda no pudiendo bloquear para la tabla %-.192s" + swe "DELAYED INSERT-trÃ¥den kunde inte lÃ¥sa tabell '%-.192s'" + ukr "Гілка Ð´Ð»Ñ INSERT DELAYED не може отримати Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ– %-.192s" +ER_TOO_MANY_DELAYED_THREADS + cze "P-BříliÅ¡ mnoho zpoždÄ›ných threadů" + dan "For mange slettede trÃ¥de (threads) i brug" + nla "Te veel 'delayed' threads in gebruik" + eng "Too many delayed threads in use" + est "Liiga palju DELAYED lõimesid kasutusel" + fre "Trop de tâche 'delayed' en cours" + ger "Zu viele verzögerte (DELAYED) Threads in Verwendung" + hun "Tul sok kesletetett thread (delayed)" + ita "Troppi threads ritardati in uso" + kor "너무 ë§Žì€ ì§€ì—° 쓰레드를 사용하고 있습니다." + por "Excesso de 'threads' retardadas (atrasadas) em uso" + rum "Prea multe threaduri aminate care sint in uz" + rus "Слишком много потоков, обÑлуживающих отложенную вÑтавку (delayed insert)" + serbian "PreviÅ¡e prolongiranih thread-ova je u upotrebi" + spa "Muchos threads retardados en uso" + swe "Det finns redan 'max_delayed_threads' trÃ¥dar i använding" + ukr "Забагато затриманих гілок викориÑтовуєтьÑÑ" +ER_ABORTING_CONNECTION 08S01 + cze "Zru-BÅ¡eno spojení %ld do databáze: '%-.192s' uživatel: '%-.48s' (%-.64s)" + dan "Afbrudt forbindelse %ld til database: '%-.192s' bruger: '%-.48s' (%-.64s)" + nla "Afgebroken verbinding %ld naar db: '%-.192s' gebruiker: '%-.48s' (%-.64s)" + eng "Aborted connection %ld to db: '%-.192s' user: '%-.48s' (%-.64s)" + est "Ühendus katkestatud %ld andmebaasile: '%-.192s' kasutajale: '%-.48s' (%-.64s)" + fre "Connection %ld avortée vers la bd: '%-.192s' utilisateur: '%-.48s' (%-.64s)" + ger "Abbruch der Verbindung %ld zur Datenbank '%-.192s'. Benutzer: '%-.48s' (%-.64s)" + hun "Megszakitott kapcsolat %ld db: '%-.192s' adatbazishoz, felhasznalo: '%-.48s' (%-.64s)" + ita "Interrotta la connessione %ld al db: '%-.192s' utente: '%-.48s' (%-.64s)" + jpn "Aborted connection %ld to db: '%-.192s' user: '%-.48s' (%-.64s)" + kor "ë°ì´íƒ€ë² ì´ìФ ì ‘ì†ì„ 위한 ì—°ê²° %ldê°€ ì¤‘ë‹¨ë¨ : '%-.192s' 사용ìž: '%-.48s' (%-.64s)" + nor "Aborted connection %ld to db: '%-.192s' user: '%-.48s' (%-.64s)" + norwegian-ny "Aborted connection %ld to db: '%-.192s' user: '%-.48s' (%-.64s)" + pol "Aborted connection %ld to db: '%-.192s' user: '%-.48s' (%-.64s)" + por "Conexão %ld abortou para o banco de dados '%-.192s' - usuário '%-.48s' (%-.64s)" + rum "Conectie terminata %ld la baza de date: '%-.192s' utilizator: '%-.48s' (%-.64s)" + rus "Прервано Ñоединение %ld к базе данных '%-.192s' Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ '%-.48s' (%-.64s)" + serbian "Prekinuta konekcija broj %ld ka bazi: '%-.192s' korisnik je bio: '%-.48s' (%-.64s)" + slo "Aborted connection %ld to db: '%-.192s' user: '%-.48s' (%-.64s)" + spa "Conexión abortada %ld para db: '%-.192s' usuario: '%-.48s' (%-.64s)" + swe "Avbröt länken för trÃ¥d %ld till db '%-.192s', användare '%-.48s' (%-.64s)" + ukr "Перервано з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ %ld до бази данних: '%-.192s' кориÑтувача: '%-.48s' (%-.64s)" +ER_NET_PACKET_TOO_LARGE 08S01 + cze "Zji-BÅ¡tÄ›n příchozí packet delší než 'max_allowed_packet'" + dan "Modtog en datapakke som var større end 'max_allowed_packet'" + nla "Groter pakket ontvangen dan 'max_allowed_packet'" + eng "Got a packet bigger than 'max_allowed_packet' bytes" + est "Saabus suurem pakett kui lubatud 'max_allowed_packet' muutujaga" + fre "Paquet plus grand que 'max_allowed_packet' reçu" + ger "Empfangenes Paket ist größer als 'max_allowed_packet' Bytes" + hun "A kapott csomag nagyobb, mint a maximalisan engedelyezett: 'max_allowed_packet'" + ita "Ricevuto un pacchetto piu` grande di 'max_allowed_packet'" + kor "'max_allowed_packet'보다 ë”í° íŒ¨í‚·ì„ ë°›ì•˜ìŠµë‹ˆë‹¤." + por "Obteve um pacote maior do que a taxa máxima de pacotes definida (max_allowed_packet)" + rum "Un packet mai mare decit 'max_allowed_packet' a fost primit" + rus "Полученный пакет больше, чем 'max_allowed_packet'" + serbian "Primio sam mrežni paket veći od definisane vrednosti 'max_allowed_packet'" + spa "Obtenido un paquete mayor que 'max_allowed_packet'" + swe "Kommunkationspaketet är större än 'max_allowed_packet'" + ukr "Отримано пакет більший ніж max_allowed_packet" +ER_NET_READ_ERROR_FROM_PIPE 08S01 + cze "Zji-BÅ¡tÄ›na chyba pÅ™i Ätení z roury spojení" + dan "Fik læsefejl fra forbindelse (connection pipe)" + nla "Kreeg leesfout van de verbindings pipe" + eng "Got a read error from the connection pipe" + est "Viga ühendustoru lugemisel" + fre "Erreur de lecture reçue du pipe de connexion" + ger "Lese-Fehler bei einer Verbindungs-Pipe" + hun "Olvasasi hiba a kapcsolat soran" + ita "Rilevato un errore di lettura dalla pipe di connessione" + kor "ì—°ê²° 파ì´í”„로부터 ì—러가 ë°œìƒí•˜ì˜€ìŠµë‹ˆë‹¤." + por "Obteve um erro de leitura no 'pipe' da conexão" + rum "Eroare la citire din cauza lui 'connection pipe'" + rus "Получена ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð¾Ñ‚ потока ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ (connection pipe)" + serbian "GreÅ¡ka pri Äitanju podataka sa pipe-a" + spa "Obtenido un error de lectura de la conexión pipe" + swe "Fick läsfel frÃ¥n klienten vid läsning frÃ¥n 'PIPE'" + ukr "Отримано помилку Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð· комунікаційного каналу" +ER_NET_FCNTL_ERROR 08S01 + cze "Zji-BÅ¡tÄ›na chyba fcntl()" + dan "Fik fejlmeddelelse fra fcntl()" + nla "Kreeg fout van fcntl()" + eng "Got an error from fcntl()" + est "fcntl() tagastas vea" + fre "Erreur reçue de fcntl() " + ger "fcntl() lieferte einen Fehler" + hun "Hiba a fcntl() fuggvenyben" + ita "Rilevato un errore da fcntl()" + kor "fcntl() 함수로부터 ì—러가 ë°œìƒí•˜ì˜€ìŠµë‹ˆë‹¤." + por "Obteve um erro em fcntl()" + rum "Eroare obtinuta de la fcntl()" + rus "Получена ошибка от fcntl()" + serbian "GreÅ¡ka pri izvrÅ¡avanju funkcije fcntl()" + spa "Obtenido un error de fcntl()" + swe "Fick fatalt fel frÃ¥n 'fcntl()'" + ukr "Отримано помилкку від fcntl()" +ER_NET_PACKETS_OUT_OF_ORDER 08S01 + cze "P-Bříchozí packety v chybném poÅ™adí" + dan "Modtog ikke datapakker i korrekt rækkefølge" + nla "Pakketten in verkeerde volgorde ontvangen" + eng "Got packets out of order" + est "Paketid saabusid vales järjekorras" + fre "Paquets reçus dans le désordre" + ger "Pakete nicht in der richtigen Reihenfolge empfangen" + hun "Helytelen sorrendben erkezett adatcsomagok" + ita "Ricevuti pacchetti non in ordine" + kor "순서가 맞지않는 íŒ¨í‚·ì„ ë°›ì•˜ìŠµë‹ˆë‹¤." + por "Obteve pacotes fora de ordem" + rum "Packets care nu sint ordonati au fost gasiti" + rus "Пакеты получены в неверном порÑдке" + serbian "Primio sam mrežne pakete van reda" + spa "Obtenido paquetes desordenados" + swe "Kommunikationspaketen kom i fel ordning" + ukr "Отримано пакети у неналежному порÑдку" +ER_NET_UNCOMPRESS_ERROR 08S01 + cze "Nemohu rozkomprimovat komunika-BÄní packet" + dan "Kunne ikke dekomprimere kommunikations-pakke (communication packet)" + nla "Communicatiepakket kon niet worden gedecomprimeerd" + eng "Couldn't uncompress communication packet" + est "Viga andmepaketi lahtipakkimisel" + fre "Impossible de décompresser le paquet reçu" + ger "Kommunikationspaket lässt sich nicht entpacken" + hun "A kommunikacios adatcsomagok nem tomorithetok ki" + ita "Impossibile scompattare i pacchetti di comunicazione" + kor "통신 íŒ¨í‚·ì˜ ì••ì¶•í•´ì œë¥¼ í•  수 없었습니다." + por "Não conseguiu descomprimir pacote de comunicação" + rum "Nu s-a putut decompresa pachetul de comunicatie (communication packet)" + rus "Ðевозможно раÑпаковать пакет, полученный через коммуникационный протокол" + serbian "Ne mogu da dekompresujem mrežne pakete" + spa "No puedo descomprimir paquetes de comunicación" + swe "Kunde inte packa up kommunikationspaketet" + ukr "Ðе можу декомпреÑувати комунікаційний пакет" +ER_NET_READ_ERROR 08S01 + cze "Zji-BÅ¡tÄ›na chyba pÅ™i Ätení komunikaÄního packetu" + dan "Fik fejlmeddelelse ved læsning af kommunikations-pakker (communication packets)" + nla "Fout bij het lezen van communicatiepakketten" + eng "Got an error reading communication packets" + est "Viga andmepaketi lugemisel" + fre "Erreur de lecture des paquets reçus" + ger "Fehler beim Lesen eines Kommunikationspakets" + hun "HIba a kommunikacios adatcsomagok olvasasa soran" + ita "Rilevato un errore ricevendo i pacchetti di comunicazione" + kor "통신 íŒ¨í‚·ì„ ì½ëŠ” 중 오류가 ë°œìƒí•˜ì˜€ìŠµë‹ˆë‹¤." + por "Obteve um erro na leitura de pacotes de comunicação" + rum "Eroare obtinuta citind pachetele de comunicatie (communication packets)" + rus "Получена ошибка в процеÑÑе Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¿Ð°ÐºÐµÑ‚Ð° через коммуникационный протокол " + serbian "GreÅ¡ka pri primanju mrežnih paketa" + spa "Obtenido un error leyendo paquetes de comunicación" + swe "Fick ett fel vid läsning frÃ¥n klienten" + ukr "Отримано помилку Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼ÑƒÐ½Ñ–ÐºÐ°Ñ†Ñ–Ð¹Ð½Ð¸Ñ… пакетів" +ER_NET_READ_INTERRUPTED 08S01 + cze "Zji-BÅ¡tÄ›n timeout pÅ™i Ätení komunikaÄního packetu" + dan "Timeout-fejl ved læsning af kommunukations-pakker (communication packets)" + nla "Timeout bij het lezen van communicatiepakketten" + eng "Got timeout reading communication packets" + est "Kontrollaja ületamine andmepakettide lugemisel" + fre "Timeout en lecture des paquets reçus" + ger "Zeitüberschreitung beim Lesen eines Kommunikationspakets" + hun "Idotullepes a kommunikacios adatcsomagok olvasasa soran" + ita "Rilevato un timeout ricevendo i pacchetti di comunicazione" + kor "통신 íŒ¨í‚·ì„ ì½ëŠ” 중 timeoutì´ ë°œìƒí•˜ì˜€ìŠµë‹ˆë‹¤." + por "Obteve expiração de tempo (timeout) na leitura de pacotes de comunicação" + rum "Timeout obtinut citind pachetele de comunicatie (communication packets)" + rus "Получен таймаут Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¿Ð°ÐºÐµÑ‚Ð° через коммуникационный протокол " + serbian "Vremenski limit za Äitanje mrežnih paketa je istekao" + spa "Obtenido timeout leyendo paquetes de comunicación" + swe "Fick 'timeout' vid läsning frÃ¥n klienten" + ukr "Отримано затримку Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼ÑƒÐ½Ñ–ÐºÐ°Ñ†Ñ–Ð¹Ð½Ð¸Ñ… пакетів" +ER_NET_ERROR_ON_WRITE 08S01 + cze "Zji-BÅ¡tÄ›na chyba pÅ™i zápisu komunikaÄního packetu" + dan "Fik fejlmeddelelse ved skrivning af kommunukations-pakker (communication packets)" + nla "Fout bij het schrijven van communicatiepakketten" + eng "Got an error writing communication packets" + est "Viga andmepaketi kirjutamisel" + fre "Erreur d'écriture des paquets envoyés" + ger "Fehler beim Schreiben eines Kommunikationspakets" + hun "Hiba a kommunikacios csomagok irasa soran" + ita "Rilevato un errore inviando i pacchetti di comunicazione" + kor "통신 íŒ¨í‚·ì„ ê¸°ë¡í•˜ëŠ” 중 오류가 ë°œìƒí•˜ì˜€ìŠµë‹ˆë‹¤." + por "Obteve um erro na escrita de pacotes de comunicação" + rum "Eroare in scrierea pachetelor de comunicatie (communication packets)" + rus "Получена ошибка при передаче пакета через коммуникационный протокол " + serbian "GreÅ¡ka pri slanju mrežnih paketa" + spa "Obtenido un error de escribiendo paquetes de comunicación" + swe "Fick ett fel vid skrivning till klienten" + ukr "Отримано помилку запиÑу комунікаційних пакетів" +ER_NET_WRITE_INTERRUPTED 08S01 + cze "Zji-BÅ¡tÄ›n timeout pÅ™i zápisu komunikaÄního packetu" + dan "Timeout-fejl ved skrivning af kommunukations-pakker (communication packets)" + nla "Timeout bij het schrijven van communicatiepakketten" + eng "Got timeout writing communication packets" + est "Kontrollaja ületamine andmepakettide kirjutamisel" + fre "Timeout d'écriture des paquets envoyés" + ger "Zeitüberschreitung beim Schreiben eines Kommunikationspakets" + hun "Idotullepes a kommunikacios csomagok irasa soran" + ita "Rilevato un timeout inviando i pacchetti di comunicazione" + kor "통신 íŒ¨íŒƒì„ ê¸°ë¡í•˜ëŠ” 중 timeoutì´ ë°œìƒí•˜ì˜€ìŠµë‹ˆë‹¤." + por "Obteve expiração de tempo ('timeout') na escrita de pacotes de comunicação" + rum "Timeout obtinut scriind pachetele de comunicatie (communication packets)" + rus "Получен таймаут в процеÑÑе передачи пакета через коммуникационный протокол " + serbian "Vremenski limit za slanje mrežnih paketa je istekao" + spa "Obtenido timeout escribiendo paquetes de comunicación" + swe "Fick 'timeout' vid skrivning till klienten" + ukr "Отримано затримку запиÑу комунікаційних пакетів" +ER_TOO_LONG_STRING 42000 + cze "V-Býsledný Å™etÄ›zec je delší než 'max_allowed_packet'" + dan "Strengen med resultater er større end 'max_allowed_packet'" + nla "Resultaat string is langer dan 'max_allowed_packet'" + eng "Result string is longer than 'max_allowed_packet' bytes" + est "Tulemus on pikem kui lubatud 'max_allowed_packet' muutujaga" + fre "La chaîne résultat est plus grande que 'max_allowed_packet'" + ger "Ergebnis-String ist länger als 'max_allowed_packet' Bytes" + hun "Ez eredmeny sztring nagyobb, mint a lehetseges maximum: 'max_allowed_packet'" + ita "La stringa di risposta e` piu` lunga di 'max_allowed_packet'" + por "'String' resultante é mais longa do que 'max_allowed_packet'" + rum "Sirul rezultat este mai lung decit 'max_allowed_packet'" + rus "Ð ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð¸Ñ€ÑƒÑŽÑ‰Ð°Ñ Ñтрока больше, чем 'max_allowed_packet'" + serbian "RezultujuÄi string je duži nego Å¡to to dozvoljava parametar servera 'max_allowed_packet'" + spa "La string resultante es mayor que max_allowed_packet" + swe "Resultatsträngen är längre än max_allowed_packet" + ukr "Строка результату довша ніж max_allowed_packet" +ER_TABLE_CANT_HANDLE_BLOB 42000 + cze "Typ pou-Bžité tabulky nepodporuje BLOB/TEXT sloupce" + dan "Denne tabeltype understøtter ikke brug af BLOB og TEXT kolonner" + nla "Het gebruikte tabel type ondersteunt geen BLOB/TEXT kolommen" + eng "The used table type doesn't support BLOB/TEXT columns" + est "Valitud tabelitüüp ei toeta BLOB/TEXT tüüpi välju" + fre "Ce type de table ne supporte pas les colonnes BLOB/TEXT" + ger "Der verwendete Tabellentyp unterstützt keine BLOB- und TEXT-Felder" + hun "A hasznalt tabla tipus nem tamogatja a BLOB/TEXT mezoket" + ita "Il tipo di tabella usata non supporta colonne di tipo BLOB/TEXT" + por "Tipo de tabela usado não permite colunas BLOB/TEXT" + rum "Tipul de tabela folosit nu suporta coloane de tip BLOB/TEXT" + rus "ИÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° не поддерживает типы BLOB/TEXT" + serbian "IskoriÅ¡teni tip tabele ne podržava kolone tipa 'BLOB' odnosno 'TEXT'" + spa "El tipo de tabla usada no permite soporte para columnas BLOB/TEXT" + swe "Den använda tabelltypen kan inte hantera BLOB/TEXT-kolumner" + ukr "ВикориÑтаний тип таблиці не підтримує BLOB/TEXT Ñтовбці" +ER_TABLE_CANT_HANDLE_AUTO_INCREMENT 42000 + cze "Typ pou-Bžité tabulky nepodporuje AUTO_INCREMENT sloupce" + dan "Denne tabeltype understøtter ikke brug af AUTO_INCREMENT kolonner" + nla "Het gebruikte tabel type ondersteunt geen AUTO_INCREMENT kolommen" + eng "The used table type doesn't support AUTO_INCREMENT columns" + est "Valitud tabelitüüp ei toeta AUTO_INCREMENT tüüpi välju" + fre "Ce type de table ne supporte pas les colonnes AUTO_INCREMENT" + ger "Der verwendete Tabellentyp unterstützt keine AUTO_INCREMENT-Felder" + hun "A hasznalt tabla tipus nem tamogatja az AUTO_INCREMENT tipusu mezoket" + ita "Il tipo di tabella usata non supporta colonne di tipo AUTO_INCREMENT" + por "Tipo de tabela usado não permite colunas AUTO_INCREMENT" + rum "Tipul de tabela folosit nu suporta coloane de tip AUTO_INCREMENT" + rus "ИÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° не поддерживает автоинкрементные Ñтолбцы" + serbian "IskoriÅ¡teni tip tabele ne podržava kolone tipa 'AUTO_INCREMENT'" + spa "El tipo de tabla usada no permite soporte para columnas AUTO_INCREMENT" + swe "Den använda tabelltypen kan inte hantera AUTO_INCREMENT-kolumner" + ukr "ВикориÑтаний тип таблиці не підтримує AUTO_INCREMENT Ñтовбці" +ER_DELAYED_INSERT_TABLE_LOCKED + cze "INSERT DELAYED nen-Bí možno s tabulkou '%-.192s' použít, protože je zamÄená pomocí LOCK TABLES" + dan "INSERT DELAYED kan ikke bruges med tabellen '%-.192s', fordi tabellen er lÃ¥st med LOCK TABLES" + nla "INSERT DELAYED kan niet worden gebruikt bij table '%-.192s', vanwege een 'lock met LOCK TABLES" + eng "INSERT DELAYED can't be used with table '%-.192s' because it is locked with LOCK TABLES" + est "INSERT DELAYED ei saa kasutada tabeli '%-.192s' peal, kuna see on lukustatud LOCK TABLES käsuga" + fre "INSERT DELAYED ne peut être utilisé avec la table '%-.192s', car elle est verrouée avec LOCK TABLES" + ger "INSERT DELAYED kann für Tabelle '%-.192s' nicht verwendet werden, da sie mit LOCK TABLES gesperrt ist" + greek "INSERT DELAYED can't be used with table '%-.192s', because it is locked with LOCK TABLES" + hun "Az INSERT DELAYED nem hasznalhato a '%-.192s' tablahoz, mert a tabla zarolt (LOCK TABLES)" + ita "L'inserimento ritardato (INSERT DELAYED) non puo` essere usato con la tabella '%-.192s', perche` soggetta a lock da 'LOCK TABLES'" + jpn "INSERT DELAYED can't be used with table '%-.192s', because it is locked with LOCK TABLES" + kor "INSERT DELAYED can't be used with table '%-.192s', because it is locked with LOCK TABLES" + nor "INSERT DELAYED can't be used with table '%-.192s', because it is locked with LOCK TABLES" + norwegian-ny "INSERT DELAYED can't be used with table '%-.192s', because it is locked with LOCK TABLES" + pol "INSERT DELAYED can't be used with table '%-.192s', because it is locked with LOCK TABLES" + por "INSERT DELAYED não pode ser usado com a tabela '%-.192s', porque ela está travada com LOCK TABLES" + rum "INSERT DELAYED nu poate fi folosit cu tabela '%-.192s', deoarece este locked folosing LOCK TABLES" + rus "ÐÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать INSERT DELAYED Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹ '%-.192s', потому что она заблокирована Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ LOCK TABLES" + serbian "Komanda 'INSERT DELAYED' ne može biti iskoriÅ¡tena u tabeli '%-.192s', zbog toga Å¡to je zakljuÄana komandom 'LOCK TABLES'" + slo "INSERT DELAYED can't be used with table '%-.192s', because it is locked with LOCK TABLES" + spa "INSERT DELAYED no puede ser usado con tablas '%-.192s', porque esta bloqueada con LOCK TABLES" + swe "INSERT DELAYED kan inte användas med tabell '%-.192s', emedan den är lÃ¥st med LOCK TABLES" + ukr "INSERT DELAYED не може бути викориÑтано з таблицею '%-.192s', тому що Ñ—Ñ— заблоковано з LOCK TABLES" +ER_WRONG_COLUMN_NAME 42000 + cze "Nespr-Bávné jméno sloupce '%-.100s'" + dan "Forkert kolonnenavn '%-.100s'" + nla "Incorrecte kolom naam '%-.100s'" + eng "Incorrect column name '%-.100s'" + est "Vigane tulba nimi '%-.100s'" + fre "Nom de colonne '%-.100s' incorrect" + ger "Falscher Spaltenname '%-.100s'" + hun "Ervenytelen mezonev: '%-.100s'" + ita "Nome colonna '%-.100s' non corretto" + por "Nome de coluna '%-.100s' incorreto" + rum "Nume increct de coloana '%-.100s'" + rus "Ðеверное Ð¸Ð¼Ñ Ñтолбца '%-.100s'" + serbian "PogreÅ¡no ime kolone '%-.100s'" + spa "Incorrecto nombre de columna '%-.100s'" + swe "Felaktigt kolumnnamn '%-.100s'" + ukr "Ðевірне ім'Ñ ÑÑ‚Ð¾Ð²Ð±Ñ†Ñ '%-.100s'" +ER_WRONG_KEY_COLUMN 42000 + cze "Handler pou-Bžité tabulky neumí indexovat sloupce '%-.192s'" + dan "Den brugte tabeltype kan ikke indeksere kolonnen '%-.192s'" + nla "De gebruikte tabel 'handler' kan kolom '%-.192s' niet indexeren" + eng "The used storage engine can't index column '%-.192s'" + est "Tabelihandler ei oska indekseerida tulpa '%-.192s'" + fre "Le handler de la table ne peut indexé la colonne '%-.192s'" + ger "Die verwendete Speicher-Engine kann die Spalte '%-.192s' nicht indizieren" + greek "The used table handler can't index column '%-.192s'" + hun "A hasznalt tablakezelo nem tudja a '%-.192s' mezot indexelni" + ita "Il gestore delle tabelle non puo` indicizzare la colonna '%-.192s'" + jpn "The used table handler can't index column '%-.192s'" + kor "The used table handler can't index column '%-.192s'" + nor "The used table handler can't index column '%-.192s'" + norwegian-ny "The used table handler can't index column '%-.192s'" + pol "The used table handler can't index column '%-.192s'" + por "O manipulador de tabela usado não pode indexar a coluna '%-.192s'" + rum "Handler-ul tabelei folosite nu poate indexa coloana '%-.192s'" + rus "ИÑпользованный обработчик таблицы не может проиндекÑировать Ñтолбец '%-.192s'" + serbian "Handler tabele ne može da indeksira kolonu '%-.192s'" + slo "The used table handler can't index column '%-.192s'" + spa "El manipulador de tabla usado no puede indexar columna '%-.192s'" + swe "Den använda tabelltypen kan inte indexera kolumn '%-.192s'" + ukr "ВикориÑтаний вказівник таблиці не може індекÑувати Ñтовбець '%-.192s'" +ER_WRONG_MRG_TABLE + cze "V-BÅ¡echny tabulky v MERGE tabulce nejsou definovány stejnÄ›" + dan "Tabellerne i MERGE er ikke defineret ens" + nla "Niet alle tabellen in de MERGE tabel hebben identieke gedefinities" + eng "Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist" + est "Kõik tabelid MERGE tabeli määratluses ei ole identsed" + fre "Toutes les tables de la table de type MERGE n'ont pas la même définition" + ger "Nicht alle Tabellen in der MERGE-Tabelle sind gleich definiert" + hun "A MERGE tablaban talalhato tablak definicioja nem azonos" + ita "Non tutte le tabelle nella tabella di MERGE sono definite in maniera identica" + jpn "All tables in the MERGE table are not defined identically" + kor "All tables in the MERGE table are not defined identically" + nor "All tables in the MERGE table are not defined identically" + norwegian-ny "All tables in the MERGE table are not defined identically" + pol "All tables in the MERGE table are not defined identically" + por "Todas as tabelas contidas na tabela fundida (MERGE) não estão definidas identicamente" + rum "Toate tabelele din tabela MERGE nu sint definite identic" + rus "Ðе вÑе таблицы в MERGE определены одинаково" + serbian "Tabele iskoriÅ¡tene u 'MERGE' tabeli nisu definisane na isti naÄin" + slo "All tables in the MERGE table are not defined identically" + spa "Todas las tablas en la MERGE tabla no estan definidas identicamente" + swe "Tabellerna i MERGE-tabellen är inte identiskt definierade" + ukr "Таблиці у MERGE TABLE мають різну Ñтруктуру" +ER_DUP_UNIQUE 23000 + cze "Kv-Bůli unique constraintu nemozu zapsat do tabulky '%-.192s'" + dan "Kan ikke skrive til tabellen '%-.192s' fordi det vil bryde CONSTRAINT regler" + nla "Kan niet opslaan naar table '%-.192s' vanwege 'unique' beperking" + eng "Can't write, because of unique constraint, to table '%-.192s'" + est "Ei suuda kirjutada tabelisse '%-.192s', kuna see rikub ühesuse kitsendust" + fre "Écriture impossible à cause d'un index UNIQUE sur la table '%-.192s'" + ger "Schreiben in Tabelle '%-.192s' nicht möglich wegen einer Eindeutigkeitsbeschränkung (unique constraint)" + hun "A '%-.192s' nem irhato, az egyedi mezok miatt" + ita "Impossibile scrivere nella tabella '%-.192s' per limitazione di unicita`" + por "Não pode gravar, devido à restrição UNIQUE, na tabela '%-.192s'" + rum "Nu pot scrie pe hard-drive, din cauza constraintului unic (unique constraint) pentru tabela '%-.192s'" + rus "Ðевозможно запиÑать в таблицу '%-.192s' из-за ограничений уникального ключа" + serbian "Zbog provere jedinstvenosti ne mogu da upiÅ¡em podatke u tabelu '%-.192s'" + spa "No puedo escribir, debido al único constraint, para tabla '%-.192s'" + swe "Kan inte skriva till tabell '%-.192s'; UNIQUE-test" + ukr "Ðе можу запиÑати до таблиці '%-.192s', з причини вимог унікальноÑті" +ER_BLOB_KEY_WITHOUT_LENGTH 42000 + cze "BLOB sloupec '%-.192s' je pou-Bžit ve specifikaci klíÄe bez délky" + dan "BLOB kolonnen '%-.192s' brugt i nøglespecifikation uden nøglelængde" + nla "BLOB kolom '%-.192s' gebruikt in zoeksleutel specificatie zonder zoeksleutel lengte" + eng "BLOB/TEXT column '%-.192s' used in key specification without a key length" + est "BLOB-tüüpi tulp '%-.192s' on kasutusel võtmes ilma pikkust määratlemata" + fre "La colonne '%-.192s' de type BLOB est utilisée dans une définition d'index sans longueur d'index" + ger "BLOB- oder TEXT-Spalte '%-.192s' wird in der Schlüsseldefinition ohne Schlüssellängenangabe verwendet" + greek "BLOB column '%-.192s' used in key specification without a key length" + hun "BLOB mezo '%-.192s' hasznalt a mezo specifikacioban, a mezohossz megadasa nelkul" + ita "La colonna '%-.192s' di tipo BLOB e` usata in una chiave senza specificarne la lunghezza" + jpn "BLOB column '%-.192s' used in key specification without a key length" + kor "BLOB column '%-.192s' used in key specification without a key length" + nor "BLOB column '%-.192s' used in key specification without a key length" + norwegian-ny "BLOB column '%-.192s' used in key specification without a key length" + pol "BLOB column '%-.192s' used in key specification without a key length" + por "Coluna BLOB '%-.192s' usada na especificação de chave sem o comprimento da chave" + rum "Coloana BLOB '%-.192s' este folosita in specificarea unei chei fara ca o lungime de cheie sa fie folosita" + rus "Столбец типа BLOB '%-.192s' был указан в определении ключа без ÑƒÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð´Ð»Ð¸Ð½Ñ‹ ключа" + serbian "BLOB kolona '%-.192s' je upotrebljena u specifikaciji kljuÄa bez navoÄ‘enja dužine kljuÄa" + slo "BLOB column '%-.192s' used in key specification without a key length" + spa "Columna BLOB column '%-.192s' usada en especificación de clave sin tamaño de la clave" + swe "Du har inte angett nÃ¥gon nyckellängd för BLOB '%-.192s'" + ukr "Стовбець BLOB '%-.192s' викориÑтано у визначенні ключа без Ð²ÐºÐ°Ð·Ð°Ð½Ð½Ñ Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð¸ ключа" +ER_PRIMARY_CANT_HAVE_NULL 42000 + cze "V-BÅ¡echny Äásti primárního klíÄe musejí být NOT NULL; pokud potÅ™ebujete NULL, použijte UNIQUE" + dan "Alle dele af en PRIMARY KEY skal være NOT NULL; Hvis du skal bruge NULL i nøglen, brug UNIQUE istedet" + nla "Alle delen van een PRIMARY KEY moeten NOT NULL zijn; Indien u NULL in een zoeksleutel nodig heeft kunt u UNIQUE gebruiken" + eng "All parts of a PRIMARY KEY must be NOT NULL; if you need NULL in a key, use UNIQUE instead" + est "Kõik PRIMARY KEY peavad olema määratletud NOT NULL piiranguga; vajadusel kasuta UNIQUE tüüpi võtit" + fre "Toutes les parties d'un index PRIMARY KEY doivent être NOT NULL; Si vous avez besoin d'un NULL dans l'index, utilisez un index UNIQUE" + ger "Alle Teile eines PRIMARY KEY müssen als NOT NULL definiert sein. Wenn NULL in einem Schlüssel benötigt wird, muss ein UNIQUE-Schlüssel verwendet werden" + hun "Az elsodleges kulcs teljes egeszeben csak NOT NULL tipusu lehet; Ha NULL mezot szeretne a kulcskent, hasznalja inkabb a UNIQUE-ot" + ita "Tutte le parti di una chiave primaria devono essere dichiarate NOT NULL; se necessitano valori NULL nelle chiavi utilizzare UNIQUE" + por "Todas as partes de uma chave primária devem ser não-nulas. Se você precisou usar um valor nulo (NULL) em uma chave, use a cláusula UNIQUE em seu lugar" + rum "Toate partile unei chei primare (PRIMARY KEY) trebuie sa fie NOT NULL; Daca aveti nevoie de NULL in vreo cheie, folositi UNIQUE in schimb" + rus "Ð’Ñе чаÑти первичного ключа (PRIMARY KEY) должны быть определены как NOT NULL; ЕÑли вам нужна поддержка величин NULL в ключе, воÑпользуйтеÑÑŒ индекÑом UNIQUE" + serbian "Svi delovi primarnog kljuÄa moraju biti razliÄiti od NULL; Ako Vam ipak treba NULL vrednost u kljuÄu, upotrebite 'UNIQUE'" + spa "Todas las partes de un PRIMARY KEY deben ser NOT NULL; Si necesitas NULL en una clave, use UNIQUE" + swe "Alla delar av en PRIMARY KEY mÃ¥ste vara NOT NULL; Om du vill ha en nyckel med NULL, använd UNIQUE istället" + ukr "УÑÑ– чаÑтини PRIMARY KEY повинні бути NOT NULL; Якщо ви потребуєте NULL у ключі, ÑкориÑтайтеÑÑ UNIQUE" +ER_TOO_MANY_ROWS 42000 + cze "V-Býsledek obsahuje více než jeden řádek" + dan "Resultatet bestod af mere end een række" + nla "Resultaat bevatte meer dan een rij" + eng "Result consisted of more than one row" + est "Tulemis oli rohkem kui üks kirje" + fre "Le résultat contient plus d'un enregistrement" + ger "Ergebnis besteht aus mehr als einer Zeile" + hun "Az eredmeny tobb, mint egy sort tartalmaz" + ita "Il risultato consiste di piu` di una riga" + por "O resultado consistiu em mais do que uma linha" + rum "Resultatul constista din mai multe linii" + rus "Ð’ результате возвращена более чем одна Ñтрока" + serbian "Rezultat je saÄinjen od viÅ¡e slogova" + spa "Resultado compuesto de mas que una línea" + swe "Resultet bestod av mera än en rad" + ukr "Результат знаходитьÑÑ Ñƒ більше ніж одній Ñтроці" +ER_REQUIRES_PRIMARY_KEY 42000 + cze "Tento typ tabulky vy-Bžaduje primární klíÄ" + dan "Denne tabeltype kræver en primærnøgle" + nla "Dit tabel type heeft een primaire zoeksleutel nodig" + eng "This table type requires a primary key" + est "Antud tabelitüüp nõuab primaarset võtit" + fre "Ce type de table nécessite une clé primaire (PRIMARY KEY)" + ger "Dieser Tabellentyp benötigt einen Primärschlüssel (PRIMARY KEY)" + hun "Az adott tablatipushoz elsodleges kulcs hasznalata kotelezo" + ita "Questo tipo di tabella richiede una chiave primaria" + por "Este tipo de tabela requer uma chave primária" + rum "Aceast tip de tabela are nevoie de o cheie primara" + rus "Этот тип таблицы требует Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿ÐµÑ€Ð²Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ ключа" + serbian "Ovaj tip tabele zahteva da imate definisan primarni kljuÄ" + spa "Este tipo de tabla necesita de una primary key" + swe "Denna tabelltyp kräver en PRIMARY KEY" + ukr "Цей тип таблиці потребує первинного ключа" +ER_NO_RAID_COMPILED + cze "Tato verze MariaDB nen-Bí zkompilována s podporou RAID" + dan "Denne udgave af MariaDB er ikke oversat med understøttelse af RAID" + nla "Deze versie van MariaDB is niet gecompileerd met RAID ondersteuning" + eng "This version of MariaDB is not compiled with RAID support" + est "Antud MariaDB versioon on kompileeritud ilma RAID toeta" + fre "Cette version de MariaDB n'est pas compilée avec le support RAID" + ger "Diese MariaDB-Version ist nicht mit RAID-Unterstützung kompiliert" + hun "Ezen leforditott MariaDB verzio nem tartalmaz RAID support-ot" + ita "Questa versione di MYSQL non e` compilata con il supporto RAID" + por "Esta versão do MariaDB não foi compilada com suporte a RAID" + rum "Aceasta versiune de MariaDB, nu a fost compilata cu suport pentru RAID" + rus "Эта верÑÐ¸Ñ MariaDB Ñкомпилирована без поддержки RAID" + serbian "Ova verzija MariaDB servera nije kompajlirana sa podrÅ¡kom za RAID ureÄ‘aje" + spa "Esta versión de MariaDB no es compilada con soporte RAID" + swe "Denna version av MariaDB är inte kompilerad med RAID" + ukr "Ð¦Ñ Ð²ÐµÑ€ÑÑ–Ñ MariaDB не зкомпільована з підтримкою RAID" +ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE + cze "Update tabulky bez WHERE s kl-BíÄem není v módu bezpeÄných update dovoleno" + dan "Du bruger sikker opdaterings modus ('safe update mode') og du forsøgte at opdatere en tabel uden en WHERE klausul, der gør brug af et KEY felt" + nla "U gebruikt 'safe update mode' en u probeerde een tabel te updaten zonder een WHERE met een KEY kolom" + eng "You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column" + est "Katse muuta tabelit turvalises rezhiimis ilma WHERE klauslita" + fre "Vous êtes en mode 'safe update' et vous essayez de faire un UPDATE sans clause WHERE utilisant un index" + ger "MariaDB läuft im sicheren Aktualisierungsmodus (safe update mode). Sie haben versucht, eine Tabelle zu aktualisieren, ohne in der WHERE-Klausel ein KEY-Feld anzugeben" + hun "On a biztonsagos update modot hasznalja, es WHERE that uses a KEY column" + ita "In modalita` 'safe update' si e` cercato di aggiornare una tabella senza clausola WHERE su una chiave" + por "Você está usando modo de atualização seguro e tentou atualizar uma tabela sem uma cláusula WHERE que use uma coluna chave" + rus "Ð’Ñ‹ работаете в режиме безопаÑных обновлений (safe update mode) и попробовали изменить таблицу без иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ÐµÐ²Ð¾Ð³Ð¾ Ñтолбца в чаÑти WHERE" + serbian "Vi koristite safe update mod servera, a probali ste da promenite podatke bez 'WHERE' komande koja koristi kolonu kljuÄa" + spa "Tu estás usando modo de actualización segura y tentado actualizar una tabla sin un WHERE que usa una KEY columna" + swe "Du använder 'säker uppdateringsmod' och försökte uppdatera en tabell utan en WHERE-sats som använder sig av en nyckel" + ukr "Ви у режимі безпечного Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ‚Ð° намагаєтеÑÑŒ оновити таблицю без оператора WHERE, що викориÑтовує KEY Ñтовбець" +ER_KEY_DOES_NOT_EXITS 42000 S1009 + cze "Kl-BÃ­Ä '%-.192s' v tabulce '%-.192s' neexistuje" + dan "Nøglen '%-.192s' eksisterer ikke i tabellen '%-.192s'" + nla "Zoeksleutel '%-.192s' bestaat niet in tabel '%-.192s'" + eng "Key '%-.192s' doesn't exist in table '%-.192s'" + est "Võti '%-.192s' ei eksisteeri tabelis '%-.192s'" + fre "L'index '%-.192s' n'existe pas sur la table '%-.192s'" + ger "Schlüssel '%-.192s' existiert in der Tabelle '%-.192s' nicht" + hun "A '%-.192s' kulcs nem letezik a '%-.192s' tablaban" + ita "La chiave '%-.192s' non esiste nella tabella '%-.192s'" + por "Chave '%-.192s' não existe na tabela '%-.192s'" + rus "Ключ '%-.192s' не ÑущеÑтвует в таблице '%-.192s'" + serbian "KljuÄ '%-.192s' ne postoji u tabeli '%-.192s'" + spa "Clave '%-.192s' no existe en la tabla '%-.192s'" + swe "Nyckel '%-.192s' finns inte in tabell '%-.192s'" + ukr "Ключ '%-.192s' не Ñ–Ñнує в таблиці '%-.192s'" +ER_CHECK_NO_SUCH_TABLE 42000 + cze "Nemohu otev-Břít tabulku" + dan "Kan ikke Ã¥bne tabellen" + nla "Kan tabel niet openen" + eng "Can't open table" + est "Ei suuda avada tabelit" + fre "Impossible d'ouvrir la table" + ger "Kann Tabelle nicht öffnen" + hun "Nem tudom megnyitni a tablat" + ita "Impossibile aprire la tabella" + por "Não pode abrir a tabela" + rus "Ðевозможно открыть таблицу" + serbian "Ne mogu da otvorim tabelu" + spa "No puedo abrir tabla" + swe "Kan inte öppna tabellen" + ukr "Ðе можу відкрити таблицю" +ER_CHECK_NOT_IMPLEMENTED 42000 + cze "Handler tabulky nepodporuje %s" + dan "Denne tabeltype understøtter ikke %s" + nla "De 'handler' voor de tabel ondersteund geen %s" + eng "The storage engine for the table doesn't support %s" + est "Antud tabelitüüp ei toeta %s käske" + fre "Ce type de table ne supporte pas les %s" + ger "Die Speicher-Engine für diese Tabelle unterstützt kein %s" + greek "The handler for the table doesn't support %s" + hun "A tabla kezeloje (handler) nem tamogatja az %s" + ita "Il gestore per la tabella non supporta il %s" + jpn "The handler for the table doesn't support %s" + kor "The handler for the table doesn't support %s" + nor "The handler for the table doesn't support %s" + norwegian-ny "The handler for the table doesn't support %s" + pol "The handler for the table doesn't support %s" + por "O manipulador de tabela não suporta %s" + rum "The handler for the table doesn't support %s" + rus "Обработчик таблицы не поддерживает Ñтого: %s" + serbian "Handler za ovu tabelu ne dozvoljava %s komande" + slo "The handler for the table doesn't support %s" + spa "El manipulador de la tabla no permite soporte para %s" + swe "Tabellhanteraren för denna tabell kan inte göra %s" + ukr "Вказівник таблиці не підтримуе %s" +ER_CANT_DO_THIS_DURING_AN_TRANSACTION 25000 + cze "Proveden-Bí tohoto příkazu není v transakci dovoleno" + dan "Du mÃ¥ ikke bruge denne kommando i en transaktion" + nla "Het is u niet toegestaan dit commando uit te voeren binnen een transactie" + eng "You are not allowed to execute this command in a transaction" + est "Seda käsku ei saa kasutada transaktsiooni sees" + fre "Vous n'êtes pas autorisé à exécute cette commande dans une transaction" + ger "Sie dürfen diesen Befehl nicht in einer Transaktion ausführen" + hun "Az On szamara nem engedelyezett a parancs vegrehajtasa a tranzakcioban" + ita "Non puoi eseguire questo comando in una transazione" + por "Não lhe é permitido executar este comando em uma transação" + rus "Вам не разрешено выполнÑть Ñту команду в транзакции" + serbian "Nije Vam dozvoljeno da izvrÅ¡ite ovu komandu u transakciji" + spa "No tienes el permiso para ejecutar este comando en una transición" + swe "Du fÃ¥r inte utföra detta kommando i en transaktion" + ukr "Вам не дозволено виконувати цю команду в транзакції" +ER_ERROR_DURING_COMMIT + cze "Chyba %d p-BÅ™i COMMIT" + dan "Modtog fejl %d mens kommandoen COMMIT blev udført" + nla "Kreeg fout %d tijdens COMMIT" + eng "Got error %d during COMMIT" + est "Viga %d käsu COMMIT täitmisel" + fre "Erreur %d lors du COMMIT" + ger "Fehler %d beim COMMIT" + hun "%d hiba a COMMIT vegrehajtasa soran" + ita "Rilevato l'errore %d durante il COMMIT" + por "Obteve erro %d durante COMMIT" + rus "Получена ошибка %d в процеÑÑе COMMIT" + serbian "GreÅ¡ka %d za vreme izvrÅ¡avanja komande 'COMMIT'" + spa "Obtenido error %d durante COMMIT" + swe "Fick fel %d vid COMMIT" + ukr "Отримано помилку %d під Ñ‡Ð°Ñ COMMIT" +ER_ERROR_DURING_ROLLBACK + cze "Chyba %d p-BÅ™i ROLLBACK" + dan "Modtog fejl %d mens kommandoen ROLLBACK blev udført" + nla "Kreeg fout %d tijdens ROLLBACK" + eng "Got error %d during ROLLBACK" + est "Viga %d käsu ROLLBACK täitmisel" + fre "Erreur %d lors du ROLLBACK" + ger "Fehler %d beim ROLLBACK" + hun "%d hiba a ROLLBACK vegrehajtasa soran" + ita "Rilevato l'errore %d durante il ROLLBACK" + por "Obteve erro %d durante ROLLBACK" + rus "Получена ошибка %d в процеÑÑе ROLLBACK" + serbian "GreÅ¡ka %d za vreme izvrÅ¡avanja komande 'ROLLBACK'" + spa "Obtenido error %d durante ROLLBACK" + swe "Fick fel %d vid ROLLBACK" + ukr "Отримано помилку %d під Ñ‡Ð°Ñ ROLLBACK" +ER_ERROR_DURING_FLUSH_LOGS + cze "Chyba %d p-BÅ™i FLUSH_LOGS" + dan "Modtog fejl %d mens kommandoen FLUSH_LOGS blev udført" + nla "Kreeg fout %d tijdens FLUSH_LOGS" + eng "Got error %d during FLUSH_LOGS" + est "Viga %d käsu FLUSH_LOGS täitmisel" + fre "Erreur %d lors du FLUSH_LOGS" + ger "Fehler %d bei FLUSH_LOGS" + hun "%d hiba a FLUSH_LOGS vegrehajtasa soran" + ita "Rilevato l'errore %d durante il FLUSH_LOGS" + por "Obteve erro %d durante FLUSH_LOGS" + rus "Получена ошибка %d в процеÑÑе FLUSH_LOGS" + serbian "GreÅ¡ka %d za vreme izvrÅ¡avanja komande 'FLUSH_LOGS'" + spa "Obtenido error %d durante FLUSH_LOGS" + swe "Fick fel %d vid FLUSH_LOGS" + ukr "Отримано помилку %d під Ñ‡Ð°Ñ FLUSH_LOGS" +ER_ERROR_DURING_CHECKPOINT + cze "Chyba %d p-BÅ™i CHECKPOINT" + dan "Modtog fejl %d mens kommandoen CHECKPOINT blev udført" + nla "Kreeg fout %d tijdens CHECKPOINT" + eng "Got error %d during CHECKPOINT" + est "Viga %d käsu CHECKPOINT täitmisel" + fre "Erreur %d lors du CHECKPOINT" + ger "Fehler %d bei CHECKPOINT" + hun "%d hiba a CHECKPOINT vegrehajtasa soran" + ita "Rilevato l'errore %d durante il CHECKPOINT" + por "Obteve erro %d durante CHECKPOINT" + rus "Получена ошибка %d в процеÑÑе CHECKPOINT" + serbian "GreÅ¡ka %d za vreme izvrÅ¡avanja komande 'CHECKPOINT'" + spa "Obtenido error %d durante CHECKPOINT" + swe "Fick fel %d vid CHECKPOINT" + ukr "Отримано помилку %d під Ñ‡Ð°Ñ CHECKPOINT" +ER_NEW_ABORTING_CONNECTION 08S01 + cze "Spojen-Bí %ld do databáze: '%-.192s' uživatel: '%-.48s' stroj: '%-.64s' (%-.64s) bylo pÅ™eruÅ¡eno" + dan "Afbrød forbindelsen %ld til databasen '%-.192s' bruger: '%-.48s' vært: '%-.64s' (%-.64s)" + nla "Afgebroken verbinding %ld naar db: '%-.192s' gebruiker: '%-.48s' host: '%-.64s' (%-.64s)" + eng "Aborted connection %ld to db: '%-.192s' user: '%-.48s' host: '%-.64s' (%-.64s)" + est "Ühendus katkestatud %ld andmebaas: '%-.192s' kasutaja: '%-.48s' masin: '%-.64s' (%-.64s)" + fre "Connection %ld avortée vers la bd: '%-.192s' utilisateur: '%-.48s' hôte: '%-.64s' (%-.64s)" + ger "Abbruch der Verbindung %ld zur Datenbank '%-.192s'. Benutzer: '%-.48s', Host: '%-.64s' (%-.64s)" + ita "Interrotta la connessione %ld al db: ''%-.192s' utente: '%-.48s' host: '%-.64s' (%-.64s)" + por "Conexão %ld abortada para banco de dados '%-.192s' - usuário '%-.48s' - 'host' '%-.64s' ('%-.64s')" + rus "Прервано Ñоединение %ld к базе данных '%-.192s' Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ '%-.48s' Ñ Ñ…Ð¾Ñта '%-.64s' (%-.64s)" + serbian "Prekinuta konekcija broj %ld ka bazi: '%-.192s' korisnik je bio: '%-.48s' a host: '%-.64s' (%-.64s)" + spa "Abortada conexión %ld para db: '%-.192s' usuario: '%-.48s' servidor: '%-.64s' (%-.64s)" + swe "Avbröt länken för trÃ¥d %ld till db '%-.192s', användare '%-.48s', host '%-.64s' (%-.64s)" + ukr "Перервано з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ %ld до бази данних: '%-.192s' кориÑтувач: '%-.48s' хоÑÑ‚: '%-.64s' (%-.64s)" +ER_DUMP_NOT_IMPLEMENTED + cze "Handler tabulky nepodporuje bin-Bární dump" + dan "Denne tabeltype unserstøtter ikke binært tabeldump" + nla "De 'handler' voor de tabel ondersteund geen binaire tabel dump" + eng "The storage engine for the table does not support binary table dump" + fre "Ce type de table ne supporte pas les copies binaires" + ger "Die Speicher-Engine für die Tabelle unterstützt keinen binären Tabellen-Dump" + ita "Il gestore per la tabella non supporta il dump binario" + jpn "The handler for the table does not support binary table dump" + por "O manipulador de tabela não suporta 'dump' binário de tabela" + rum "The handler for the table does not support binary table dump" + rus "Обработчик Ñтой таблицы не поддерживает двоичного ÑÐ¾Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¾Ð±Ñ€Ð°Ð·Ð° таблицы (dump)" + serbian "Handler tabele ne podržava binarni dump tabele" + spa "El manipulador de tabla no soporta dump para tabla binaria" + swe "Tabellhanteraren klarar inte en binär kopiering av tabellen" + ukr "Цей тип таблиці не підтримує бінарну передачу таблиці" +ER_FLUSH_MASTER_BINLOG_CLOSED + eng "Binlog closed, cannot RESET MASTER" + ger "Binlog geschlossen. Kann RESET MASTER nicht ausführen" + por "Binlog fechado. Não pode fazer RESET MASTER" + rus "Двоичный журнал Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚, невозможно выполнить RESET MASTER" + serbian "Binarni log file zatvoren, ne mogu da izvrÅ¡im komandu 'RESET MASTER'" + ukr "Реплікаційний лог закрито, не можу виконати RESET MASTER" +ER_INDEX_REBUILD + cze "P-BÅ™ebudování indexu dumpnuté tabulky '%-.192s' nebylo úspěšné" + dan "Kunne ikke genopbygge indekset for den dumpede tabel '%-.192s'" + nla "Gefaald tijdens heropbouw index van gedumpte tabel '%-.192s'" + eng "Failed rebuilding the index of dumped table '%-.192s'" + fre "La reconstruction de l'index de la table copiée '%-.192s' a échoué" + ger "Neuerstellung des Index der Dump-Tabelle '%-.192s' fehlgeschlagen" + greek "Failed rebuilding the index of dumped table '%-.192s'" + hun "Failed rebuilding the index of dumped table '%-.192s'" + ita "Fallita la ricostruzione dell'indice della tabella copiata '%-.192s'" + por "Falhou na reconstrução do índice da tabela 'dumped' '%-.192s'" + rus "Ошибка переÑтройки индекÑа Ñохраненной таблицы '%-.192s'" + serbian "Izgradnja indeksa dump-ovane tabele '%-.192s' nije uspela" + spa "Falla reconstruyendo el indice de la tabla dumped '%-.192s'" + ukr "Ðевдале Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ–Ð½Ð´ÐµÐºÑа переданої таблиці '%-.192s'" +ER_MASTER + cze "Chyba masteru: '%-.64s'" + dan "Fejl fra master: '%-.64s'" + nla "Fout van master: '%-.64s'" + eng "Error from master: '%-.64s'" + fre "Erreur reçue du maître: '%-.64s'" + ger "Fehler vom Master: '%-.64s'" + ita "Errore dal master: '%-.64s" + por "Erro no 'master' '%-.64s'" + rus "Ошибка от головного Ñервера: '%-.64s'" + serbian "GreÅ¡ka iz glavnog servera '%-.64s' u klasteru" + spa "Error del master: '%-.64s'" + swe "Fick en master: '%-.64s'" + ukr "Помилка від головного: '%-.64s'" +ER_MASTER_NET_READ 08S01 + cze "S-Bíťová chyba pÅ™i Ätení z masteru" + dan "Netværksfejl ved læsning fra master" + nla "Net fout tijdens lezen van master" + eng "Net error reading from master" + fre "Erreur de lecture réseau reçue du maître" + ger "Netzfehler beim Lesen vom Master" + ita "Errore di rete durante la ricezione dal master" + por "Erro de rede lendo do 'master'" + rus "Возникла ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð² процеÑÑе коммуникации Ñ Ð³Ð¾Ð»Ð¾Ð²Ð½Ñ‹Ð¼ Ñервером" + serbian "GreÅ¡ka u primanju mrežnih paketa sa glavnog servera u klasteru" + spa "Error de red leyendo del master" + swe "Fick nätverksfel vid läsning frÃ¥n master" + ukr "Мережева помилка Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð²Ñ–Ð´ головного" +ER_MASTER_NET_WRITE 08S01 + cze "S-Bíťová chyba pÅ™i zápisu na master" + dan "Netværksfejl ved skrivning til master" + nla "Net fout tijdens schrijven naar master" + eng "Net error writing to master" + fre "Erreur d'écriture réseau reçue du maître" + ger "Netzfehler beim Schreiben zum Master" + ita "Errore di rete durante l'invio al master" + por "Erro de rede gravando no 'master'" + rus "Возникла ошибка запиÑи в процеÑÑе коммуникации Ñ Ð³Ð¾Ð»Ð¾Ð²Ð½Ñ‹Ð¼ Ñервером" + serbian "GreÅ¡ka u slanju mrežnih paketa na glavni server u klasteru" + spa "Error de red escribiendo para el master" + swe "Fick nätverksfel vid skrivning till master" + ukr "Мережева помилка запиÑу до головного" +ER_FT_MATCHING_KEY_NOT_FOUND + cze "-BŽádný sloupec nemá vytvoÅ™en fulltextový index" + dan "Kan ikke finde en FULLTEXT nøgle som svarer til kolonne listen" + nla "Kan geen FULLTEXT index vinden passend bij de kolom lijst" + eng "Can't find FULLTEXT index matching the column list" + est "Ei suutnud leida FULLTEXT indeksit, mis kattuks kasutatud tulpadega" + fre "Impossible de trouver un index FULLTEXT correspondant à cette liste de colonnes" + ger "Kann keinen FULLTEXT-Index finden, der der Feldliste entspricht" + ita "Impossibile trovare un indice FULLTEXT che corrisponda all'elenco delle colonne" + por "Não pode encontrar um índice para o texto todo que combine com a lista de colunas" + rus "Ðевозможно отыÑкать полнотекÑтовый (FULLTEXT) индекÑ, ÑоответÑтвующий ÑпиÑку Ñтолбцов" + serbian "Ne mogu da pronaÄ‘em 'FULLTEXT' indeks koli odgovara listi kolona" + spa "No puedo encontrar índice FULLTEXT correspondiendo a la lista de columnas" + swe "Hittar inte ett FULLTEXT-index i kolumnlistan" + ukr "Ðе можу знайти FULLTEXT індекÑ, що відповідає переліку Ñтовбців" +ER_LOCK_OR_ACTIVE_TRANSACTION + cze "Nemohu prov-Bést zadaný příkaz, protože existují aktivní zamÄené tabulky nebo aktivní transakce" + dan "Kan ikke udføre den givne kommando fordi der findes aktive, lÃ¥ste tabeller eller fordi der udføres en transaktion" + nla "Kan het gegeven commando niet uitvoeren, want u heeft actieve gelockte tabellen of een actieve transactie" + eng "Can't execute the given command because you have active locked tables or an active transaction" + est "Ei suuda täita antud käsku kuna on aktiivseid lukke või käimasolev transaktsioon" + fre "Impossible d'exécuter la commande car vous avez des tables verrouillées ou une transaction active" + ger "Kann den angegebenen Befehl wegen einer aktiven Tabellensperre oder einer aktiven Transaktion nicht ausführen" + ita "Impossibile eseguire il comando richiesto: tabelle sotto lock o transazione in atto" + por "Não pode executar o comando dado porque você tem tabelas ativas travadas ou uma transação ativa" + rus "Ðевозможно выполнить указанную команду, поÑкольку у Ð²Ð°Ñ Ð¿Ñ€Ð¸ÑутÑтвуют активно заблокированные таблица или Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ð°Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ" + serbian "Ne mogu da izvrÅ¡im datu komandu zbog toga Å¡to su tabele zakljuÄane ili je transakcija u toku" + spa "No puedo ejecutar el comando dado porque tienes tablas bloqueadas o una transición activa" + swe "Kan inte utföra kommandot emedan du har en lÃ¥st tabell eller an aktiv transaktion" + ukr "Ðе можу виконати подану команду тому, що Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¾Ð²Ð°Ð½Ð° або виконуєтьÑÑ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ñ–Ñ" +ER_UNKNOWN_SYSTEM_VARIABLE + cze "Nezn-Bámá systémová promÄ›nná '%-.64s'" + dan "Ukendt systemvariabel '%-.64s'" + nla "Onbekende systeem variabele '%-.64s'" + eng "Unknown system variable '%-.64s'" + est "Tundmatu süsteemne muutuja '%-.64s'" + fre "Variable système '%-.64s' inconnue" + ger "Unbekannte Systemvariable '%-.64s'" + ita "Variabile di sistema '%-.64s' sconosciuta" + por "Variável de sistema '%-.64s' desconhecida" + rus "ÐеизвеÑÑ‚Ð½Ð°Ñ ÑиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ '%-.64s'" + serbian "Nepoznata sistemska promenljiva '%-.64s'" + spa "Desconocida variable de sistema '%-.64s'" + swe "Okänd systemvariabel: '%-.64s'" + ukr "Ðевідома ÑиÑтемна змінна '%-.64s'" +ER_CRASHED_ON_USAGE + cze "Tabulka '%-.192s' je ozna-BÄena jako poruÅ¡ená a mÄ›la by být opravena" + dan "Tabellen '%-.192s' er markeret med fejl og bør repareres" + nla "Tabel '%-.192s' staat als gecrashed gemarkeerd en dient te worden gerepareerd" + eng "Table '%-.192s' is marked as crashed and should be repaired" + est "Tabel '%-.192s' on märgitud vigaseks ja tuleb parandada" + fre "La table '%-.192s' est marquée 'crashed' et devrait être réparée" + ger "Tabelle '%-.192s' ist als defekt markiert und sollte repariert werden" + ita "La tabella '%-.192s' e` segnalata come corrotta e deve essere riparata" + por "Tabela '%-.192s' está marcada como danificada e deve ser reparada" + rus "Таблица '%-.192s' помечена как иÑÐ¿Ð¾Ñ€Ñ‡ÐµÐ½Ð½Ð°Ñ Ð¸ должна пройти проверку и ремонт" + serbian "Tabela '%-.192s' je markirana kao oÅ¡tećena i trebala bi biti popravljena" + spa "Tabla '%-.192s' está marcada como crashed y debe ser reparada" + swe "Tabell '%-.192s' är trasig och bör repareras med REPAIR TABLE" + ukr "Таблицю '%-.192s' марковано Ñк зіпÑовану та Ñ—Ñ— потрібно відновити" +ER_CRASHED_ON_REPAIR + cze "Tabulka '%-.192s' je ozna-BÄena jako poruÅ¡ená a poslední (automatická?) oprava se nezdaÅ™ila" + dan "Tabellen '%-.192s' er markeret med fejl og sidste (automatiske?) REPAIR fejlede" + nla "Tabel '%-.192s' staat als gecrashed gemarkeerd en de laatste (automatische?) reparatie poging mislukte" + eng "Table '%-.192s' is marked as crashed and last (automatic?) repair failed" + est "Tabel '%-.192s' on märgitud vigaseks ja viimane (automaatne?) parandus ebaõnnestus" + fre "La table '%-.192s' est marquée 'crashed' et le dernier 'repair' a échoué" + ger "Tabelle '%-.192s' ist als defekt markiert und der letzte (automatische?) Reparaturversuch schlug fehl" + ita "La tabella '%-.192s' e` segnalata come corrotta e l'ultima ricostruzione (automatica?) e` fallita" + por "Tabela '%-.192s' está marcada como danificada e a última reparação (automática?) falhou" + rus "Таблица '%-.192s' помечена как иÑÐ¿Ð¾Ñ€Ñ‡ÐµÐ½Ð½Ð°Ñ Ð¸ поÑледний (автоматичеÑкий?) ремонт не был уÑпешным" + serbian "Tabela '%-.192s' je markirana kao oÅ¡tećena, a zadnja (automatska?) popravka je bila neuspela" + spa "Tabla '%-.192s' está marcada como crashed y la última reparación (automactica?) falló" + swe "Tabell '%-.192s' är trasig och senast (automatiska?) reparation misslyckades" + ukr "Таблицю '%-.192s' марковано Ñк зіпÑовану та оÑтаннє (автоматичне?) Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð½Ðµ вдалоÑÑ" +ER_WARNING_NOT_COMPLETE_ROLLBACK + dan "Advarsel: Visse data i tabeller der ikke understøtter transaktioner kunne ikke tilbagestilles" + nla "Waarschuwing: Roll back mislukt voor sommige buiten transacties gewijzigde tabellen" + eng "Some non-transactional changed tables couldn't be rolled back" + est "Hoiatus: mõnesid transaktsioone mittetoetavaid tabeleid ei suudetud tagasi kerida" + fre "Attention: certaines tables ne supportant pas les transactions ont été changées et elles ne pourront pas être restituées" + ger "Änderungen an einigen nicht transaktionalen Tabellen konnten nicht zurückgerollt werden" + ita "Attenzione: Alcune delle modifiche alle tabelle non transazionali non possono essere ripristinate (roll back impossibile)" + por "Aviso: Algumas tabelas não-transacionais alteradas não puderam ser reconstituídas (rolled back)" + rus "Внимание: по некоторым измененным нетранзакционным таблицам невозможно будет произвеÑти откат транзакции" + serbian "Upozorenje: Neke izmenjene tabele ne podržavaju komandu 'ROLLBACK'" + spa "Aviso: Algunas tablas no transancionales no pueden tener rolled back" + swe "Warning: NÃ¥gra icke transaktionella tabeller kunde inte Ã¥terställas vid ROLLBACK" + ukr "ЗаÑтереженнÑ: ДеÑкі нетранзакційні зміни таблиць не можна буде повернути" +ER_TRANS_CACHE_FULL + dan "Fler-udtryks transaktion krævede mere plads en 'max_binlog_cache_size' bytes. Forhøj værdien af denne variabel og prøv igen" + nla "Multi-statement transactie vereist meer dan 'max_binlog_cache_size' bytes opslag. Verhoog deze mysqld variabele en probeer opnieuw" + eng "Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage; increase this mysqld variable and try again" + est "Mitme lausendiga transaktsioon nõudis rohkem ruumi kui lubatud 'max_binlog_cache_size' muutujaga. Suurenda muutuja väärtust ja proovi uuesti" + fre "Cette transaction à commandes multiples nécessite plus de 'max_binlog_cache_size' octets de stockage, augmentez cette variable de mysqld et réessayez" + ger "Transaktionen, die aus mehreren Befehlen bestehen, benötigten mehr als 'max_binlog_cache_size' Bytes an Speicher. Btte vergrössern Sie diese Server-Variable versuchen Sie es noch einmal" + ita "La transazione a comandi multipli (multi-statement) ha richiesto piu` di 'max_binlog_cache_size' bytes di disco: aumentare questa variabile di mysqld e riprovare" + por "Transações multi-declaradas (multi-statement transactions) requeriram mais do que o valor limite (max_binlog_cache_size) de bytes para armazenagem. Aumente o valor desta variável do mysqld e tente novamente" + rus "Транзакции, включающей большое количеÑтво команд, потребовалоÑÑŒ более чем 'max_binlog_cache_size' байт. Увеличьте Ñту переменную Ñервера mysqld и попробуйте еще раз" + spa "Multipla transición necesita mas que 'max_binlog_cache_size' bytes de almacenamiento. Aumente esta variable mysqld y tente de nuevo" + swe "Transaktionen krävde mera än 'max_binlog_cache_size' minne. Öka denna mysqld-variabel och försök pÃ¥ nytt" + ukr "Ð¢Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ñ–Ñ Ð· багатьма виразами вимагає більше ніж 'max_binlog_cache_size' байтів Ð´Ð»Ñ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ. Збільште цю змінну mysqld та Ñпробуйте знову" +ER_SLAVE_MUST_STOP + dan "Denne handling kunne ikke udføres med kørende slave, brug først kommandoen STOP SLAVE" + nla "Deze operatie kan niet worden uitgevoerd met een actieve slave, doe eerst STOP SLAVE" + eng "This operation cannot be performed with a running slave; run STOP SLAVE first" + fre "Cette opération ne peut être réalisée avec un esclave actif, faites STOP SLAVE d'abord" + ger "Diese Operation kann bei einem aktiven Slave nicht durchgeführt werden. Bitte zuerst STOP SLAVE ausführen" + ita "Questa operazione non puo' essere eseguita con un database 'slave' che gira, lanciare prima STOP SLAVE" + por "Esta operação não pode ser realizada com um 'slave' em execução. Execute STOP SLAVE primeiro" + rus "Эту операцию невозможно выполнить при работающем потоке подчиненного Ñервера. Сначала выполните STOP SLAVE" + serbian "Ova operacija ne može biti izvrÅ¡ena dok je aktivan podreÄ‘eni server. Zadajte prvo komandu 'STOP SLAVE' da zaustavite podreÄ‘eni server." + spa "Esta operación no puede ser hecha con el esclavo funcionando, primero use STOP SLAVE" + swe "Denna operation kan inte göras under replikering; Gör STOP SLAVE först" + ukr "ÐžÐ¿ÐµÑ€Ð°Ñ†Ñ–Ñ Ð½Ðµ може бути виконана з запущеним підлеглим, Ñпочатку виконайте STOP SLAVE" +ER_SLAVE_NOT_RUNNING + dan "Denne handling kræver en kørende slave. Konfigurer en slave og brug kommandoen START SLAVE" + nla "Deze operatie vereist een actieve slave, configureer slave en doe dan START SLAVE" + eng "This operation requires a running slave; configure slave and do START SLAVE" + fre "Cette opération nécessite un esclave actif, configurez les esclaves et faites START SLAVE" + ger "Diese Operation benötigt einen aktiven Slave. Bitte Slave konfigurieren und mittels START SLAVE aktivieren" + ita "Questa operaione richiede un database 'slave', configurarlo ed eseguire START SLAVE" + por "Esta operação requer um 'slave' em execução. Configure o 'slave' e execute START SLAVE" + rus "Ð”Ð»Ñ Ñтой операции требуетÑÑ Ñ€Ð°Ð±Ð¾Ñ‚Ð°ÑŽÑ‰Ð¸Ð¹ подчиненный Ñервер. Сначала выполните START SLAVE" + serbian "Ova operacija zahteva da je aktivan podreÄ‘eni server. KonfiguriÅ¡ite prvo podreÄ‘eni server i onda izvrÅ¡ite komandu 'START SLAVE'" + spa "Esta operación necesita el esclavo funcionando, configure esclavo y haga el START SLAVE" + swe "Denna operation kan endast göras under replikering; Konfigurera slaven och gör START SLAVE" + ukr "ÐžÐ¿ÐµÑ€Ð°Ñ†Ñ–Ñ Ð²Ð¸Ð¼Ð°Ð³Ð°Ñ” запущеного підлеглого, зконфігуруйте підлеглого та виконайте START SLAVE" +ER_BAD_SLAVE + dan "Denne server er ikke konfigureret som slave. Ret in config-filen eller brug kommandoen CHANGE MASTER TO" + nla "De server is niet geconfigureerd als slave, fix in configuratie bestand of met CHANGE MASTER TO" + eng "The server is not configured as slave; fix in config file or with CHANGE MASTER TO" + fre "Le server n'est pas configuré comme un esclave, changez le fichier de configuration ou utilisez CHANGE MASTER TO" + ger "Der Server ist nicht als Slave konfiguriert. Bitte in der Konfigurationsdatei oder mittels CHANGE MASTER TO beheben" + ita "Il server non e' configurato come 'slave', correggere il file di configurazione cambiando CHANGE MASTER TO" + por "O servidor não está configurado como 'slave'. Acerte o arquivo de configuração ou use CHANGE MASTER TO" + rus "Этот Ñервер не наÑтроен как подчиненный. ВнеÑите иÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² конфигурационном файле или Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ CHANGE MASTER TO" + serbian "Server nije konfigurisan kao podreÄ‘eni server, ispravite konfiguracioni file ili na njemu izvrÅ¡ite komandu 'CHANGE MASTER TO'" + spa "El servidor no está configurado como esclavo, edite el archivo config file o con CHANGE MASTER TO" + swe "Servern är inte konfigurerade som en replikationsslav. Ändra konfigurationsfilen eller gör CHANGE MASTER TO" + ukr "Сервер не зконфігуровано Ñк підлеглий, виправте це у файлі конфігурації або з CHANGE MASTER TO" +ER_MASTER_INFO + eng "Could not initialize master info structure; more error messages can be found in the MariaDB error log" + fre "Impossible d'initialiser les structures d'information de maître, vous trouverez des messages d'erreur supplémentaires dans le journal des erreurs de MariaDB" + ger "Konnte Master-Info-Struktur nicht initialisieren. Weitere Fehlermeldungen können im MariaDB-Error-Log eingesehen werden" + serbian "Nisam mogao da inicijalizujem informacionu strukturu glavnog servera, proverite da li imam privilegije potrebne za pristup file-u 'master.info'" + swe "Kunde inte initialisera replikationsstrukturerna. See MariaDB fel fil för mera information" +ER_SLAVE_THREAD + dan "Kunne ikke danne en slave-trÃ¥d; check systemressourcerne" + nla "Kon slave thread niet aanmaken, controleer systeem resources" + eng "Could not create slave thread; check system resources" + fre "Impossible de créer une tâche esclave, vérifiez les ressources système" + ger "Konnte Slave-Thread nicht starten. Bitte System-Ressourcen überprüfen" + ita "Impossibile creare il thread 'slave', controllare le risorse di sistema" + por "Não conseguiu criar 'thread' de 'slave'. Verifique os recursos do sistema" + rus "Ðевозможно Ñоздать поток подчиненного Ñервера. Проверьте ÑиÑтемные реÑурÑÑ‹" + serbian "Nisam mogao da startujem thread za podreÄ‘eni server, proverite sistemske resurse" + spa "No puedo crear el thread esclavo, verifique recursos del sistema" + swe "Kunde inte starta en trÃ¥d för replikering" + ukr "Ðе можу Ñтворити підлеглу гілку, перевірте ÑиÑтемні реÑурÑи" +ER_TOO_MANY_USER_CONNECTIONS 42000 + dan "Brugeren %-.64s har allerede mere end 'max_user_connections' aktive forbindelser" + nla "Gebruiker %-.64s heeft reeds meer dan 'max_user_connections' actieve verbindingen" + eng "User %-.64s already has more than 'max_user_connections' active connections" + est "Kasutajal %-.64s on juba rohkem ühendusi kui lubatud 'max_user_connections' muutujaga" + fre "L'utilisateur %-.64s possède déjà plus de 'max_user_connections' connexions actives" + ger "Benutzer '%-.64s' hat mehr als 'max_user_connections' aktive Verbindungen" + ita "L'utente %-.64s ha gia' piu' di 'max_user_connections' connessioni attive" + por "Usuário '%-.64s' já possui mais que o valor máximo de conexões (max_user_connections) ativas" + rus "У Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %-.64s уже больше чем 'max_user_connections' активных Ñоединений" + serbian "Korisnik %-.64s već ima viÅ¡e aktivnih konekcija nego Å¡to je to odreÄ‘eno 'max_user_connections' promenljivom" + spa "Usario %-.64s ya tiene mas que 'max_user_connections' conexiones activas" + swe "Användare '%-.64s' har redan 'max_user_connections' aktiva inloggningar" + ukr "КориÑтувач %-.64s вже має більше ніж 'max_user_connections' активних з'єднань" +ER_SET_CONSTANTS_ONLY + dan "Du mÃ¥ kun bruge konstantudtryk med SET" + nla "U mag alleen constante expressies gebruiken bij SET" + eng "You may only use constant expressions with SET" + est "Ainult konstantsed suurused on lubatud SET klauslis" + fre "Seules les expressions constantes sont autorisées avec SET" + ger "Bei SET dürfen nur konstante Ausdrücke verwendet werden" + ita "Si possono usare solo espressioni costanti con SET" + por "Você pode usar apenas expressões constantes com SET" + rus "Ð’Ñ‹ можете иÑпользовать в SET только конÑтантные выражениÑ" + serbian "Možete upotrebiti samo konstantan iskaz sa komandom 'SET'" + spa "Tu solo debes usar expresiones constantes con SET" + swe "Man kan endast använda konstantuttryck med SET" + ukr "Можна викориÑтовувати лише вирази зі Ñталими у SET" +ER_LOCK_WAIT_TIMEOUT + dan "Lock wait timeout overskredet" + nla "Lock wacht tijd overschreden" + eng "Lock wait timeout exceeded; try restarting transaction" + est "Kontrollaeg ületatud luku järel ootamisel; Proovi transaktsiooni otsast alata" + fre "Timeout sur l'obtention du verrou" + ger "Beim Warten auf eine Sperre wurde die zulässige Wartezeit überschritten. Bitte versuchen Sie, die Transaktion neu zu starten" + ita "E' scaduto il timeout per l'attesa del lock" + por "Tempo de espera (timeout) de travamento excedido. Tente reiniciar a transação." + rus "Таймаут Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²ÐºÐ¸ иÑтек; попробуйте перезапуÑтить транзакцию" + serbian "Vremenski limit za zakljuÄavanje tabele je istekao; Probajte da ponovo startujete transakciju" + spa "Tiempo de bloqueo de espera excedido" + swe "Fick inte ett lÃ¥s i tid ; Försök att starta om transaktionen" + ukr "Затримку Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ñ‡ÐµÑ€Ð¿Ð°Ð½Ð¾" +ER_LOCK_TABLE_FULL + dan "Det totale antal lÃ¥se overstiger størrelsen pÃ¥ lÃ¥se-tabellen" + nla "Het totale aantal locks overschrijdt de lock tabel grootte" + eng "The total number of locks exceeds the lock table size" + est "Lukkude koguarv ületab lukutabeli suuruse" + fre "Le nombre total de verrou dépasse la taille de la table des verrous" + ger "Die Gesamtzahl der Sperren überschreitet die Größe der Sperrtabelle" + ita "Il numero totale di lock e' maggiore della grandezza della tabella di lock" + por "O número total de travamentos excede o tamanho da tabela de travamentos" + rus "Общее количеÑтво блокировок превыÑило размеры таблицы блокировок" + serbian "Broj totalnih zakljuÄavanja tabele premaÅ¡uje veliÄinu tabele zakljuÄavanja" + spa "El número total de bloqueos excede el tamaño de bloqueo de la tabla" + swe "Antal lÃ¥s överskrider antalet reserverade lÃ¥s" + ukr "Загальна кількіÑть блокувань перевищила розмір блокувань Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ–" +ER_READ_ONLY_TRANSACTION 25000 + dan "Update lÃ¥s kan ikke opnÃ¥s under en READ UNCOMMITTED transaktion" + nla "Update locks kunnen niet worden verkregen tijdens een READ UNCOMMITTED transactie" + eng "Update locks cannot be acquired during a READ UNCOMMITTED transaction" + est "Uuenduslukke ei saa kasutada READ UNCOMMITTED transaktsiooni käigus" + fre "Un verrou en update ne peut être acquit pendant une transaction READ UNCOMMITTED" + ger "Während einer READ-UNCOMMITTED-Transaktion können keine UPDATE-Sperren angefordert werden" + ita "I lock di aggiornamento non possono essere acquisiti durante una transazione 'READ UNCOMMITTED'" + por "Travamentos de atualização não podem ser obtidos durante uma transação de tipo READ UNCOMMITTED" + rus "Блокировки обновлений Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ð¾Ð»ÑƒÑ‡Ð¸Ñ‚ÑŒ в процеÑÑе Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð½Ðµ принÑтой (в режиме READ UNCOMMITTED) транзакции" + serbian "ZakljuÄavanja izmena ne mogu biti realizovana sve dok traje 'READ UNCOMMITTED' transakcija" + spa "Bloqueos de actualización no pueden ser adqueridos durante una transición READ UNCOMMITTED" + swe "UpdateringslÃ¥s kan inte göras när man använder READ UNCOMMITTED" + ukr "Оновити Ð±Ð»Ð¾ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ можливо на протÑзі транзакції READ UNCOMMITTED" +ER_DROP_DB_WITH_READ_LOCK + dan "DROP DATABASE er ikke tilladt mens en trÃ¥d holder pÃ¥ globalt read lock" + nla "DROP DATABASE niet toegestaan terwijl thread een globale 'read lock' bezit" + eng "DROP DATABASE not allowed while thread is holding global read lock" + est "DROP DATABASE ei ole lubatud kui lõim omab globaalset READ lukku" + fre "DROP DATABASE n'est pas autorisée pendant qu'une tâche possède un verrou global en lecture" + ger "DROP DATABASE ist nicht erlaubt, solange der Thread eine globale Lesesperre hält" + ita "DROP DATABASE non e' permesso mentre il thread ha un lock globale di lettura" + por "DROP DATABASE não permitido enquanto uma 'thread' está mantendo um travamento global de leitura" + rus "Ðе допуÑкаетÑÑ DROP DATABASE, пока поток держит глобальную блокировку чтениÑ" + serbian "Komanda 'DROP DATABASE' nije dozvoljena dok thread globalno zakljuÄava Äitanje podataka" + spa "DROP DATABASE no permitido mientras un thread está ejerciendo un bloqueo de lectura global" + swe "DROP DATABASE är inte tillÃ¥tet när man har ett globalt läslÃ¥s" + ukr "DROP DATABASE не дозволено доки гілка перебуває під загальним блокуваннÑм читаннÑ" +ER_CREATE_DB_WITH_READ_LOCK + dan "CREATE DATABASE er ikke tilladt mens en trÃ¥d holder pÃ¥ globalt read lock" + nla "CREATE DATABASE niet toegestaan terwijl thread een globale 'read lock' bezit" + eng "CREATE DATABASE not allowed while thread is holding global read lock" + est "CREATE DATABASE ei ole lubatud kui lõim omab globaalset READ lukku" + fre "CREATE DATABASE n'est pas autorisée pendant qu'une tâche possède un verrou global en lecture" + ger "CREATE DATABASE ist nicht erlaubt, solange der Thread eine globale Lesesperre hält" + ita "CREATE DATABASE non e' permesso mentre il thread ha un lock globale di lettura" + por "CREATE DATABASE não permitido enquanto uma 'thread' está mantendo um travamento global de leitura" + rus "Ðе допуÑкаетÑÑ CREATE DATABASE, пока поток держит глобальную блокировку чтениÑ" + serbian "Komanda 'CREATE DATABASE' nije dozvoljena dok thread globalno zakljuÄava Äitanje podataka" + spa "CREATE DATABASE no permitido mientras un thread está ejerciendo un bloqueo de lectura global" + swe "CREATE DATABASE är inte tillÃ¥tet när man har ett globalt läslÃ¥s" + ukr "CREATE DATABASE не дозволено доки гілка перебуває під загальним блокуваннÑм читаннÑ" +ER_WRONG_ARGUMENTS + nla "Foutieve parameters voor %s" + eng "Incorrect arguments to %s" + est "Vigased parameetrid %s-le" + fre "Mauvais arguments à %s" + ger "Falsche Argumente für %s" + ita "Argomenti errati a %s" + por "Argumentos errados para %s" + rus "Ðеверные параметры Ð´Ð»Ñ %s" + serbian "PogreÅ¡ni argumenti prosleÄ‘eni na %s" + spa "Argumentos errados para %s" + swe "Felaktiga argument till %s" + ukr "Хибний аргумент Ð´Ð»Ñ %s" +ER_NO_PERMISSION_TO_CREATE_USER 42000 + nla "'%s'@'%s' mag geen nieuwe gebruikers creeren" + eng "'%s'@'%s' is not allowed to create new users" + est "Kasutajal '%s'@'%s' ei ole lubatud luua uusi kasutajaid" + fre "'%s'@'%s' n'est pas autorisé à créer de nouveaux utilisateurs" + ger "'%s'@'%s' ist nicht berechtigt, neue Benutzer hinzuzufügen" + ita "A '%s'@'%s' non e' permesso creare nuovi utenti" + por "Não é permitido a '%s'@'%s' criar novos usuários" + rus "'%s'@'%s' не разрешаетÑÑ Ñоздавать новых пользователей" + serbian "Korisniku '%s'@'%s' nije dozvoljeno da kreira nove korisnike" + spa "'%s'@'%s' no es permitido para crear nuevos usuarios" + swe "'%s'@'%s' har inte rättighet att skapa nya användare" + ukr "КориÑтувачу '%s'@'%s' не дозволено Ñтворювати нових кориÑтувачів" +ER_UNION_TABLES_IN_DIFFERENT_DIR + nla "Incorrecte tabel definitie; alle MERGE tabellen moeten tot dezelfde database behoren" + eng "Incorrect table definition; all MERGE tables must be in the same database" + est "Vigane tabelimääratlus; kõik MERGE tabeli liikmed peavad asuma samas andmebaasis" + fre "Définition de table incorrecte; toutes les tables MERGE doivent être dans la même base de donnée" + ger "Falsche Tabellendefinition. Alle MERGE-Tabellen müssen sich in derselben Datenbank befinden" + ita "Definizione della tabella errata; tutte le tabelle di tipo MERGE devono essere nello stesso database" + por "Definição incorreta da tabela. Todas as tabelas contidas na junção devem estar no mesmo banco de dados." + rus "Ðеверное определение таблицы; Ð’Ñе таблицы в MERGE должны принадлежать одной и той же базе данных" + serbian "PogreÅ¡na definicija tabele; sve 'MERGE' tabele moraju biti u istoj bazi podataka" + spa "Incorrecta definición de la tabla; Todas las tablas MERGE deben estar en el mismo banco de datos" + swe "Felaktig tabelldefinition; alla tabeller i en MERGE-tabell mÃ¥ste vara i samma databas" +ER_LOCK_DEADLOCK 40001 + nla "Deadlock gevonden tijdens lock-aanvraag poging; Probeer herstart van de transactie" + eng "Deadlock found when trying to get lock; try restarting transaction" + est "Lukustamisel tekkis tupik (deadlock); alusta transaktsiooni otsast" + fre "Deadlock découvert en essayant d'obtenir les verrous : essayez de redémarrer la transaction" + ger "Beim Versuch, eine Sperre anzufordern, ist ein Deadlock aufgetreten. Versuchen Sie, die Transaktion neu zu starten" + ita "Trovato deadlock durante il lock; Provare a far ripartire la transazione" + por "Encontrado um travamento fatal (deadlock) quando tentava obter uma trava. Tente reiniciar a transação." + rus "Возникла Ñ‚ÑƒÐ¿Ð¸ÐºÐ¾Ð²Ð°Ñ ÑÐ¸Ñ‚ÑƒÐ°Ñ†Ð¸Ñ Ð² процеÑÑе Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð±Ð»Ð¾ÐºÐ¸Ñ€Ð¾Ð²ÐºÐ¸; Попробуйте перезапуÑтить транзакцию" + serbian "Unakrsno zakljuÄavanje pronaÄ‘eno kada sam pokuÅ¡ao da dobijem pravo na zakljuÄavanje; Probajte da restartujete transakciju" + spa "Encontrado deadlock cuando tentando obtener el bloqueo; Tente recomenzar la transición" + swe "Fick 'DEADLOCK' vid lÃ¥sförsök av block/rad. Försök att starta om transaktionen" +ER_TABLE_CANT_HANDLE_FT + nla "Het gebruikte tabel type ondersteund geen FULLTEXT indexen" + eng "The used table type doesn't support FULLTEXT indexes" + est "Antud tabelitüüp ei toeta FULLTEXT indekseid" + fre "Le type de table utilisé ne supporte pas les index FULLTEXT" + ger "Der verwendete Tabellentyp unterstützt keine FULLTEXT-Indizes" + ita "La tabella usata non supporta gli indici FULLTEXT" + por "O tipo de tabela utilizado não suporta índices de texto completo (fulltext indexes)" + rus "ИÑпользуемый тип таблиц не поддерживает полнотекÑтовых индекÑов" + serbian "Upotrebljeni tip tabele ne podržava 'FULLTEXT' indekse" + spa "El tipo de tabla usada no soporta índices FULLTEXT" + swe "Tabelltypen har inte hantering av FULLTEXT-index" + ukr "ВикориÑтаний тип таблиці не підтримує FULLTEXT індекÑів" +ER_CANNOT_ADD_FOREIGN + nla "Kan foreign key beperking niet toevoegen" + eng "Cannot add foreign key constraint" + fre "Impossible d'ajouter des contraintes d'index externe" + ger "Fremdschlüssel-Beschränkung kann nicht hinzugefügt werden" + ita "Impossibile aggiungere il vincolo di integrita' referenziale (foreign key constraint)" + por "Não pode acrescentar uma restrição de chave estrangeira" + rus "Ðевозможно добавить Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð²Ð½ÐµÑˆÐ½ÐµÐ³Ð¾ ключа" + serbian "Ne mogu da dodam proveru spoljnog kljuÄa" + spa "No puede adicionar clave extranjera constraint" + swe "Kan inte lägga till 'FOREIGN KEY constraint'" +ER_NO_REFERENCED_ROW 23000 + nla "Kan onderliggende rij niet toevoegen: foreign key beperking gefaald" + eng "Cannot add or update a child row: a foreign key constraint fails" + fre "Impossible d'ajouter un enregistrement fils : une constrainte externe l'empèche" + ger "Hinzufügen oder Aktualisieren eines Kind-Datensatzes schlug aufgrund einer Fremdschlüssel-Beschränkung fehl" + greek "Cannot add a child row: a foreign key constraint fails" + hun "Cannot add a child row: a foreign key constraint fails" + ita "Impossibile aggiungere la riga: un vincolo d'integrita' referenziale non e' soddisfatto" + norwegian-ny "Cannot add a child row: a foreign key constraint fails" + por "Não pode acrescentar uma linha filha: uma restrição de chave estrangeira falhou" + rus "Ðевозможно добавить или обновить дочернюю Ñтроку: проверка ограничений внешнего ключа не выполнÑетÑÑ" + spa "No puede adicionar una línea hijo: falla de clave extranjera constraint" + swe "FOREIGN KEY-konflikt: Kan inte skriva barn" +ER_ROW_IS_REFERENCED 23000 + eng "Cannot delete or update a parent row: a foreign key constraint fails" + fre "Impossible de supprimer un enregistrement père : une constrainte externe l'empèche" + ger "Löschen oder Aktualisieren eines Eltern-Datensatzes schlug aufgrund einer Fremdschlüssel-Beschränkung fehl" + greek "Cannot delete a parent row: a foreign key constraint fails" + hun "Cannot delete a parent row: a foreign key constraint fails" + ita "Impossibile cancellare la riga: un vincolo d'integrita' referenziale non e' soddisfatto" + por "Não pode apagar uma linha pai: uma restrição de chave estrangeira falhou" + rus "Ðевозможно удалить или обновить родительÑкую Ñтроку: проверка ограничений внешнего ключа не выполнÑетÑÑ" + serbian "Ne mogu da izbriÅ¡em roditeljski slog: provera spoljnog kljuÄa je neuspela" + spa "No puede deletar una línea padre: falla de clave extranjera constraint" + swe "FOREIGN KEY-konflikt: Kan inte radera fader" +ER_CONNECT_TO_MASTER 08S01 + nla "Fout bij opbouwen verbinding naar master: %-.128s" + eng "Error connecting to master: %-.128s" + ger "Fehler bei der Verbindung zum Master: %-.128s" + ita "Errore durante la connessione al master: %-.128s" + por "Erro conectando com o master: %-.128s" + rus "Ошибка ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ð³Ð¾Ð»Ð¾Ð²Ð½Ñ‹Ð¼ Ñервером: %-.128s" + spa "Error de coneccion a master: %-.128s" + swe "Fick fel vid anslutning till master: %-.128s" +ER_QUERY_ON_MASTER + nla "Fout bij uitvoeren query op master: %-.128s" + eng "Error running query on master: %-.128s" + ger "Beim Ausführen einer Abfrage auf dem Master trat ein Fehler auf: %-.128s" + ita "Errore eseguendo una query sul master: %-.128s" + por "Erro rodando consulta no master: %-.128s" + rus "Ошибка Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñа на головном Ñервере: %-.128s" + spa "Error executando el query en master: %-.128s" + swe "Fick fel vid utförande av command pÃ¥ mastern: %-.128s" +ER_ERROR_WHEN_EXECUTING_COMMAND + nla "Fout tijdens uitvoeren van commando %s: %-.128s" + eng "Error when executing command %s: %-.128s" + est "Viga käsu %s täitmisel: %-.128s" + ger "Fehler beim Ausführen des Befehls %s: %-.128s" + ita "Errore durante l'esecuzione del comando %s: %-.128s" + por "Erro quando executando comando %s: %-.128s" + rus "Ошибка при выполнении команды %s: %-.128s" + serbian "GreÅ¡ka pri izvrÅ¡avanju komande %s: %-.128s" + spa "Error de %s: %-.128s" + swe "Fick fel vid utförande av %s: %-.128s" +ER_WRONG_USAGE + nla "Foutief gebruik van %s en %s" + eng "Incorrect usage of %s and %s" + est "Vigane %s ja %s kasutus" + ger "Falsche Verwendung von %s und %s" + ita "Uso errato di %s e %s" + por "Uso errado de %s e %s" + rus "Ðеверное иÑпользование %s и %s" + serbian "PogreÅ¡na upotreba %s i %s" + spa "Equivocado uso de %s y %s" + swe "Felaktig använding av %s and %s" + ukr "Wrong usage of %s and %s" +ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT 21000 + nla "De gebruikte SELECT commando's hebben een verschillend aantal kolommen" + eng "The used SELECT statements have a different number of columns" + est "Tulpade arv kasutatud SELECT lausetes ei kattu" + ger "Die verwendeten SELECT-Befehle liefern unterschiedliche Anzahlen von Feldern zurück" + ita "La SELECT utilizzata ha un numero di colonne differente" + por "Os comandos SELECT usados têm diferente número de colunas" + rus "ИÑпользованные операторы выборки (SELECT) дают разное количеÑтво Ñтолбцов" + serbian "Upotrebljene 'SELECT' komande adresiraju razliÄit broj kolona" + spa "El comando SELECT usado tiene diferente número de columnas" + swe "SELECT-kommandona har olika antal kolumner" +ER_CANT_UPDATE_WITH_READLOCK + nla "Kan de query niet uitvoeren vanwege een conflicterende read lock" + eng "Can't execute the query because you have a conflicting read lock" + est "Ei suuda täita päringut konfliktse luku tõttu" + ger "Augrund eines READ-LOCK-Konflikts kann die Abfrage nicht ausgeführt werden" + ita "Impossibile eseguire la query perche' c'e' un conflitto con in lock di lettura" + por "Não posso executar a consulta porque você tem um conflito de travamento de leitura" + rus "Ðевозможно иÑполнить запроÑ, поÑкольку у Ð²Ð°Ñ ÑƒÑтановлены конфликтующие блокировки чтениÑ" + serbian "Ne mogu da izvrÅ¡im upit zbog toga Å¡to imate zakljuÄavanja Äitanja podataka u konfliktu" + spa "No puedo ejecutar el query porque usted tiene conflicto de traba de lectura" + swe "Kan inte utföra kommandot emedan du har ett READ-lÃ¥s" +ER_MIXING_NOT_ALLOWED + nla "Het combineren van transactionele en niet-transactionele tabellen is uitgeschakeld." + eng "Mixing of transactional and non-transactional tables is disabled" + est "Transaktsioone toetavate ning mittetoetavate tabelite kooskasutamine ei ole lubatud" + ger "Die gleichzeitige Verwendung von Tabellen mit und ohne Transaktionsunterstützung ist deaktiviert" + ita "E' disabilitata la possibilita' di mischiare tabelle transazionali e non-transazionali" + por "Mistura de tabelas transacional e não-transacional está desabilitada" + rus "ИÑпользование транзакционных таблиц нарÑду Ñ Ð½ÐµÑ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ð¾Ð½Ð½Ñ‹Ð¼Ð¸ запрещено" + serbian "MeÅ¡anje tabela koje podržavaju transakcije i onih koje ne podržavaju transakcije je iskljuÄeno" + spa "Mezla de transancional y no-transancional tablas está deshabilitada" + swe "Blandning av transaktionella och icke-transaktionella tabeller är inaktiverat" +ER_DUP_ARGUMENT + nla "Optie '%s' tweemaal gebruikt in opdracht" + eng "Option '%s' used twice in statement" + est "Määrangut '%s' on lauses kasutatud topelt" + ger "Option '%s' wird im Befehl zweimal verwendet" + ita "L'opzione '%s' e' stata usata due volte nel comando" + por "Opção '%s' usada duas vezes no comando" + rus "ÐžÐ¿Ñ†Ð¸Ñ '%s' дважды иÑпользована в выражении" + spa "Opción '%s' usada dos veces en el comando" + swe "Option '%s' användes tvÃ¥ gÃ¥nger" +ER_USER_LIMIT_REACHED 42000 + nla "Gebruiker '%-.64s' heeft het maximale gebruik van de '%s' faciliteit overschreden (huidige waarde: %ld)" + eng "User '%-.64s' has exceeded the '%s' resource (current value: %ld)" + ger "Benutzer '%-.64s' hat die Ressourcenbeschränkung '%s' überschritten (aktueller Wert: %ld)" + ita "L'utente '%-.64s' ha ecceduto la risorsa '%s' (valore corrente: %ld)" + por "Usuário '%-.64s' tem excedido o '%s' recurso (atual valor: %ld)" + rus "Пользователь '%-.64s' превыÑил иÑпользование реÑурÑа '%s' (текущее значение: %ld)" + spa "Usuario '%-.64s' ha excedido el recurso '%s' (actual valor: %ld)" + swe "Användare '%-.64s' har överskridit '%s' (nuvarande värde: %ld)" +ER_SPECIFIC_ACCESS_DENIED_ERROR 42000 + nla "Toegang geweigerd. U moet het %-.128s privilege hebben voor deze operatie" + eng "Access denied; you need (at least one of) the %-.128s privilege(s) for this operation" + ger "Kein Zugriff. Hierfür wird die Berechtigung %-.128s benötigt" + ita "Accesso non consentito. Serve il privilegio %-.128s per questa operazione" + por "Acesso negado. Você precisa o privilégio %-.128s para essa operação" + rus "Ð’ доÑтупе отказано. Вам нужны привилегии %-.128s Ð´Ð»Ñ Ñтой операции" + spa "Acceso negado. Usted necesita el privilegio %-.128s para esta operación" + swe "Du har inte privlegiet '%-.128s' som behövs för denna operation" + ukr "Access denied. You need the %-.128s privilege for this operation" +ER_LOCAL_VARIABLE + nla "Variabele '%-.64s' is SESSION en kan niet worden gebruikt met SET GLOBAL" + eng "Variable '%-.64s' is a SESSION variable and can't be used with SET GLOBAL" + ger "Variable '%-.64s' ist eine lokale Variable und kann nicht mit SET GLOBAL verändert werden" + ita "La variabile '%-.64s' e' una variabile locale ( SESSION ) e non puo' essere cambiata usando SET GLOBAL" + por "Variável '%-.64s' é uma SESSION variável e não pode ser usada com SET GLOBAL" + rus "ÐŸÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ '%-.64s' ÑвлÑетÑÑ Ð¿Ð¾Ñ‚Ð¾ÐºÐ¾Ð²Ð¾Ð¹ (SESSION) переменной и не может быть изменена Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ SET GLOBAL" + spa "Variable '%-.64s' es una SESSION variable y no puede ser usada con SET GLOBAL" + swe "Variabel '%-.64s' är en SESSION variabel och kan inte ändrad med SET GLOBAL" +ER_GLOBAL_VARIABLE + nla "Variabele '%-.64s' is GLOBAL en dient te worden gewijzigd met SET GLOBAL" + eng "Variable '%-.64s' is a GLOBAL variable and should be set with SET GLOBAL" + ger "Variable '%-.64s' ist eine globale Variable und muss mit SET GLOBAL verändert werden" + ita "La variabile '%-.64s' e' una variabile globale ( GLOBAL ) e deve essere cambiata usando SET GLOBAL" + por "Variável '%-.64s' é uma GLOBAL variável e deve ser configurada com SET GLOBAL" + rus "ÐŸÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ '%-.64s' ÑвлÑетÑÑ Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ð¾Ð¹ (GLOBAL) переменной, и ее Ñледует изменÑть Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ SET GLOBAL" + spa "Variable '%-.64s' es una GLOBAL variable y no puede ser configurada con SET GLOBAL" + swe "Variabel '%-.64s' är en GLOBAL variabel och bör sättas med SET GLOBAL" +ER_NO_DEFAULT 42000 + nla "Variabele '%-.64s' heeft geen standaard waarde" + eng "Variable '%-.64s' doesn't have a default value" + ger "Variable '%-.64s' hat keinen Vorgabewert" + ita "La variabile '%-.64s' non ha un valore di default" + por "Variável '%-.64s' não tem um valor padrão" + rus "ÐŸÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ '%-.64s' не имеет Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾ умолчанию" + spa "Variable '%-.64s' no tiene un valor patrón" + swe "Variabel '%-.64s' har inte ett DEFAULT-värde" +ER_WRONG_VALUE_FOR_VAR 42000 + nla "Variabele '%-.64s' kan niet worden gewijzigd naar de waarde '%-.200s'" + eng "Variable '%-.64s' can't be set to the value of '%-.200s'" + ger "Variable '%-.64s' kann nicht auf '%-.200s' gesetzt werden" + ita "Alla variabile '%-.64s' non puo' essere assegato il valore '%-.200s'" + por "Variável '%-.64s' não pode ser configurada para o valor de '%-.200s'" + rus "ÐŸÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ '%-.64s' не может быть уÑтановлена в значение '%-.200s'" + spa "Variable '%-.64s' no puede ser configurada para el valor de '%-.200s'" + swe "Variabel '%-.64s' kan inte sättas till '%-.200s'" +ER_WRONG_TYPE_FOR_VAR 42000 + nla "Foutief argumenttype voor variabele '%-.64s'" + eng "Incorrect argument type to variable '%-.64s'" + ger "Falscher Argumenttyp für Variable '%-.64s'" + ita "Tipo di valore errato per la variabile '%-.64s'" + por "Tipo errado de argumento para variável '%-.64s'" + rus "Ðеверный тип аргумента Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð¾Ð¹ '%-.64s'" + spa "Tipo de argumento equivocado para variable '%-.64s'" + swe "Fel typ av argument till variabel '%-.64s'" +ER_VAR_CANT_BE_READ + nla "Variabele '%-.64s' kan alleen worden gewijzigd, niet gelezen" + eng "Variable '%-.64s' can only be set, not read" + ger "Variable '%-.64s' kann nur verändert, nicht gelesen werden" + ita "Alla variabile '%-.64s' e' di sola scrittura quindi puo' essere solo assegnato un valore, non letto" + por "Variável '%-.64s' somente pode ser configurada, não lida" + rus "ÐŸÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ '%-.64s' может быть только уÑтановлена, но не Ñчитана" + spa "Variable '%-.64s' solamente puede ser configurada, no leída" + swe "Variabeln '%-.64s' kan endast sättas, inte läsas" +ER_CANT_USE_OPTION_HERE 42000 + nla "Foutieve toepassing/plaatsing van '%s'" + eng "Incorrect usage/placement of '%s'" + ger "Falsche Verwendung oder Platzierung von '%s'" + ita "Uso/posizione di '%s' sbagliato" + por "Errado uso/colocação de '%s'" + rus "Ðеверное иÑпользование или в неверном меÑте указан '%s'" + spa "Equivocado uso/colocación de '%s'" + swe "Fel använding/placering av '%s'" +ER_NOT_SUPPORTED_YET 42000 + nla "Deze versie van MariaDB ondersteunt nog geen '%s'" + eng "This version of MariaDB doesn't yet support '%s'" + ger "Diese MariaDB-Version unterstützt '%s' nicht" + ita "Questa versione di MariaDB non supporta ancora '%s'" + por "Esta versão de MariaDB não suporta ainda '%s'" + rus "Эта верÑÐ¸Ñ MariaDB пока еще не поддерживает '%s'" + spa "Esta versión de MariaDB no soporta todavia '%s'" + swe "Denna version av MariaDB kan ännu inte utföra '%s'" +ER_MASTER_FATAL_ERROR_READING_BINLOG + nla "Kreeg fatale fout %d: '%-.320s' van master tijdens lezen van data uit binaire log" + eng "Got fatal error %d from master when reading data from binary log: '%-.320s'" + ger "Schwerer Fehler %d: '%-.320s vom Master beim Lesen des binären Logs" + ita "Errore fatale %d: '%-.320s' dal master leggendo i dati dal log binario" + por "Obteve fatal erro %d: '%-.320s' do master quando lendo dados do binary log" + rus "Получена неиÑÐ¿Ñ€Ð°Ð²Ð¸Ð¼Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° %d: '%-.320s' от головного Ñервера в процеÑÑе выборки данных из двоичного журнала" + spa "Recibió fatal error %d: '%-.320s' del master cuando leyendo datos del binary log" + swe "Fick fatalt fel %d: '%-.320s' frÃ¥n master vid läsning av binärloggen" +ER_SLAVE_IGNORED_TABLE + eng "Slave SQL thread ignored the query because of replicate-*-table rules" + ger "Slave-SQL-Thread hat die Abfrage aufgrund von replicate-*-table-Regeln ignoriert" + nla "Slave SQL thread negeerde de query vanwege replicate-*-table opties" + por "Slave SQL thread ignorado a consulta devido às normas de replicação-*-tabela" + spa "Slave SQL thread ignorado el query debido a las reglas de replicación-*-tabla" + swe "Slav SQL trÃ¥den ignorerade frÃ¥gan pga en replicate-*-table regel" +ER_INCORRECT_GLOBAL_LOCAL_VAR + eng "Variable '%-.192s' is a %s variable" + serbian "Promenljiva '%-.192s' je %s promenljiva" + ger "Variable '%-.192s' ist eine %s-Variable" + nla "Variabele '%-.192s' is geen %s variabele" + spa "Variable '%-.192s' es una %s variable" + swe "Variabel '%-.192s' är av typ %s" +ER_WRONG_FK_DEF 42000 + eng "Incorrect foreign key definition for '%-.192s': %s" + ger "Falsche Fremdschlüssel-Definition für '%-.192s': %s" + nla "Incorrecte foreign key definitie voor '%-.192s': %s" + por "Definição errada da chave estrangeira para '%-.192s': %s" + spa "Equivocada definición de llave extranjera para '%-.192s': %s" + swe "Felaktig FOREIGN KEY-definition för '%-.192s': %s" +ER_KEY_REF_DO_NOT_MATCH_TABLE_REF + eng "Key reference and table reference don't match" + ger "Schlüssel- und Tabellenverweis passen nicht zusammen" + nla "Sleutel- en tabelreferentie komen niet overeen" + por "Referência da chave e referência da tabela não coincidem" + spa "Referencia de llave y referencia de tabla no coinciden" + swe "Nyckelreferensen och tabellreferensen stämmer inte överens" +ER_OPERAND_COLUMNS 21000 + eng "Operand should contain %d column(s)" + ger "Operand sollte %d Spalte(n) enthalten" + nla "Operand behoort %d kolommen te bevatten" + rus "Операнд должен Ñодержать %d колонок" + spa "Operando debe tener %d columna(s)" + ukr "Операнд має ÑкладатиÑÑ Ð· %d Ñтовбців" +ER_SUBQUERY_NO_1_ROW 21000 + eng "Subquery returns more than 1 row" + ger "Unterabfrage lieferte mehr als einen Datensatz zurück" + nla "Subquery retourneert meer dan 1 rij" + por "Subconsulta retorna mais que 1 registro" + rus "ÐŸÐ¾Ð´Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ более одной запиÑи" + spa "Subconsulta retorna mas que 1 línea" + swe "Subquery returnerade mer än 1 rad" + ukr "Підзапит повертає більш нiж 1 запиÑ" +ER_UNKNOWN_STMT_HANDLER + dan "Unknown prepared statement handler (%.*s) given to %s" + eng "Unknown prepared statement handler (%.*s) given to %s" + ger "Unbekannter Prepared-Statement-Handler (%.*s) für %s angegeben" + nla "Onebekende prepared statement handler (%.*s) voor %s aangegeven" + por "Desconhecido manipulador de declaração preparado (%.*s) determinado para %s" + spa "Desconocido preparado comando handler (%.*s) dado para %s" + swe "Okänd PREPARED STATEMENT id (%.*s) var given till %s" + ukr "Unknown prepared statement handler (%.*s) given to %s" +ER_CORRUPT_HELP_DB + eng "Help database is corrupt or does not exist" + ger "Die Hilfe-Datenbank ist beschädigt oder existiert nicht" + nla "Help database is beschadigd of bestaat niet" + por "Banco de dado de ajuda corrupto ou não existente" + spa "Base de datos Help está corrupto o no existe" + swe "Hjälpdatabasen finns inte eller är skadad" +ER_CYCLIC_REFERENCE + eng "Cyclic reference on subqueries" + ger "Zyklischer Verweis in Unterabfragen" + nla "Cyclische verwijzing in subqueries" + por "Referência cíclica em subconsultas" + rus "ЦикличеÑÐºÐ°Ñ ÑÑылка на подзапроÑ" + spa "Cíclica referencia en subconsultas" + swe "Cyklisk referens i subqueries" + ukr "Циклічне поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° підзапит" +ER_AUTO_CONVERT + eng "Converting column '%s' from %s to %s" + ger "Feld '%s' wird von %s nach %s umgewandelt" + nla "Veld '%s' wordt van %s naar %s geconverteerd" + por "Convertendo coluna '%s' de %s para %s" + rus "Преобразование Ð¿Ð¾Ð»Ñ '%s' из %s в %s" + spa "Convirtiendo columna '%s' de %s para %s" + swe "Konvertar kolumn '%s' frÃ¥n %s till %s" + ukr "ÐŸÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñтовбца '%s' з %s у %s" +ER_ILLEGAL_REFERENCE 42S22 + eng "Reference '%-.64s' not supported (%s)" + ger "Verweis '%-.64s' wird nicht unterstützt (%s)" + nla "Verwijzing '%-.64s' niet ondersteund (%s)" + por "Referência '%-.64s' não suportada (%s)" + rus "СÑылка '%-.64s' не поддерживаетÑÑ (%s)" + spa "Referencia '%-.64s' no soportada (%s)" + swe "Referens '%-.64s' stöds inte (%s)" + ukr "ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ '%-.64s' не пiдтримуетÑÑ (%s)" +ER_DERIVED_MUST_HAVE_ALIAS 42000 + eng "Every derived table must have its own alias" + ger "Für jede abgeleitete Tabelle muss ein eigener Alias angegeben werden" + nla "Voor elke afgeleide tabel moet een unieke alias worden gebruikt" + por "Cada tabela derivada deve ter seu próprio alias" + spa "Cada tabla derivada debe tener su propio alias" + swe "Varje 'derived table' mÃ¥ste ha sitt eget alias" +ER_SELECT_REDUCED 01000 + eng "Select %u was reduced during optimization" + ger "Select %u wurde während der Optimierung reduziert" + nla "Select %u werd geredureerd tijdens optimtalisatie" + por "Select %u foi reduzido durante otimização" + rus "Select %u был упразднен в процеÑÑе оптимизации" + spa "Select %u fué reducido durante optimización" + swe "Select %u reducerades vid optimiering" + ukr "Select %u was ÑкаÑовано при оптимiзацii" +ER_TABLENAME_NOT_ALLOWED_HERE 42000 + eng "Table '%-.192s' from one of the SELECTs cannot be used in %-.32s" + ger "Tabelle '%-.192s', die in einem der SELECT-Befehle verwendet wurde, kann nicht in %-.32s verwendet werden" + nla "Tabel '%-.192s' uit een van de SELECTS kan niet in %-.32s gebruikt worden" + por "Tabela '%-.192s' de um dos SELECTs não pode ser usada em %-.32s" + spa "Tabla '%-.192s' de uno de los SELECT no puede ser usada en %-.32s" + swe "Tabell '%-.192s' frÃ¥n en SELECT kan inte användas i %-.32s" +ER_NOT_SUPPORTED_AUTH_MODE 08004 + eng "Client does not support authentication protocol requested by server; consider upgrading MariaDB client" + ger "Client unterstützt das vom Server erwartete Authentifizierungsprotokoll nicht. Bitte aktualisieren Sie Ihren MariaDB-Client" + nla "Client ondersteunt het door de server verwachtte authenticatieprotocol niet. Overweeg een nieuwere MariaDB client te gebruiken" + por "Cliente não suporta o protocolo de autenticação exigido pelo servidor; considere a atualização do cliente MariaDB" + spa "Cliente no soporta protocolo de autenticación solicitado por el servidor; considere actualizar el cliente MariaDB" + swe "Klienten stöder inte autentiseringsprotokollet som begärts av servern; överväg uppgradering av klientprogrammet." +ER_SPATIAL_CANT_HAVE_NULL 42000 + eng "All parts of a SPATIAL index must be NOT NULL" + ger "Alle Teile eines SPATIAL-Index müssen als NOT NULL deklariert sein" + nla "Alle delete van een SPATIAL index dienen als NOT NULL gedeclareerd te worden" + por "Todas as partes de uma SPATIAL index devem ser NOT NULL" + spa "Todas las partes de una SPATIAL index deben ser NOT NULL" + swe "Alla delar av en SPATIAL index mÃ¥ste vara NOT NULL" +ER_COLLATION_CHARSET_MISMATCH 42000 + eng "COLLATION '%s' is not valid for CHARACTER SET '%s'" + ger "COLLATION '%s' ist für CHARACTER SET '%s' ungültig" + nla "COLLATION '%s' is niet geldig voor CHARACTER SET '%s'" + por "COLLATION '%s' não é válida para CHARACTER SET '%s'" + spa "COLLATION '%s' no es válido para CHARACTER SET '%s'" + swe "COLLATION '%s' är inte tillÃ¥tet för CHARACTER SET '%s'" +ER_SLAVE_WAS_RUNNING + eng "Slave is already running" + ger "Slave läuft bereits" + nla "Slave is reeds actief" + por "O slave já está rodando" + spa "Slave ya está funcionando" + swe "Slaven har redan startat" +ER_SLAVE_WAS_NOT_RUNNING + eng "Slave already has been stopped" + ger "Slave wurde bereits angehalten" + nla "Slave is reeds gestopt" + por "O slave já está parado" + spa "Slave ya fué parado" + swe "Slaven har redan stoppat" +ER_TOO_BIG_FOR_UNCOMPRESS + eng "Uncompressed data size too large; the maximum size is %d (probably, length of uncompressed data was corrupted)" + ger "Unkomprimierte Daten sind zu groß. Die maximale Größe beträgt %d (wahrscheinlich wurde die Länge der unkomprimierten Daten beschädigt)" + nla "Ongecomprimeerder data is te groot; de maximum lengte is %d (waarschijnlijk, de lengte van de gecomprimeerde data was beschadigd)" + por "Tamanho muito grande dos dados des comprimidos. O máximo tamanho é %d. (provavelmente, o comprimento dos dados descomprimidos está corrupto)" + spa "Tamaño demasiado grande para datos descomprimidos. El máximo tamaño es %d. (probablemente, extensión de datos descomprimidos fué corrompida)" +ER_ZLIB_Z_MEM_ERROR + eng "ZLIB: Not enough memory" + ger "ZLIB: Nicht genug Speicher" + nla "ZLIB: Onvoldoende geheugen" + por "ZLIB: Não suficiente memória disponível" + spa "Z_MEM_ERROR: No suficiente memoria para zlib" +ER_ZLIB_Z_BUF_ERROR + eng "ZLIB: Not enough room in the output buffer (probably, length of uncompressed data was corrupted)" + ger "ZLIB: Im Ausgabepuffer ist nicht genug Platz vorhanden (wahrscheinlich wurde die Länge der unkomprimierten Daten beschädigt)" + nla "ZLIB: Onvoldoende ruimte in uitgaande buffer (waarschijnlijk, de lengte van de ongecomprimeerde data was beschadigd)" + por "ZLIB: Não suficiente espaço no buffer emissor (provavelmente, o comprimento dos dados descomprimidos está corrupto)" + spa "Z_BUF_ERROR: No suficiente espacio en el búfer de salida para zlib (probablemente, extensión de datos descomprimidos fué corrompida)" +ER_ZLIB_Z_DATA_ERROR + eng "ZLIB: Input data corrupted" + ger "ZLIB: Eingabedaten beschädigt" + nla "ZLIB: Invoer data beschadigd" + por "ZLIB: Dados de entrada está corrupto" + spa "ZLIB: Dato de entrada fué corrompido para zlib" +ER_CUT_VALUE_GROUP_CONCAT + eng "Row %u was cut by GROUP_CONCAT()" +ER_WARN_TOO_FEW_RECORDS 01000 + eng "Row %lu doesn't contain data for all columns" + ger "Zeile %lu enthält nicht für alle Felder Daten" + nla "Rij %lu bevat niet de data voor alle kolommen" + por "Conta de registro é menor que a conta de coluna na linha %lu" + spa "Línea %lu no contiene datos para todas las columnas" +ER_WARN_TOO_MANY_RECORDS 01000 + eng "Row %lu was truncated; it contained more data than there were input columns" + ger "Zeile %lu gekürzt, die Zeile enthielt mehr Daten, als es Eingabefelder gibt" + nla "Regel %lu ingekort, bevatte meer data dan invoer kolommen" + por "Conta de registro é maior que a conta de coluna na linha %lu" + spa "Línea %lu fué truncada; La misma contine mas datos que las que existen en las columnas de entrada" +ER_WARN_NULL_TO_NOTNULL 22004 + eng "Column set to default value; NULL supplied to NOT NULL column '%s' at row %lu" + ger "Feld auf Vorgabewert gesetzt, da NULL für NOT-NULL-Feld '%s' in Zeile %lu angegeben" + por "Dado truncado, NULL fornecido para NOT NULL coluna '%s' na linha %lu" + spa "Datos truncado, NULL suministrado para NOT NULL columna '%s' en la línea %lu" +ER_WARN_DATA_OUT_OF_RANGE 22003 + eng "Out of range value for column '%s' at row %lu" +WARN_DATA_TRUNCATED 01000 + eng "Data truncated for column '%s' at row %lu" + ger "Daten abgeschnitten für Feld '%s' in Zeile %lu" + por "Dado truncado para coluna '%s' na linha %lu" + spa "Datos truncados para columna '%s' en la línea %lu" +ER_WARN_USING_OTHER_HANDLER + eng "Using storage engine %s for table '%s'" + ger "Speicher-Engine %s wird für Tabelle '%s' benutzt" + por "Usando engine de armazenamento %s para tabela '%s'" + spa "Usando motor de almacenamiento %s para tabla '%s'" + swe "Använder handler %s för tabell '%s'" +ER_CANT_AGGREGATE_2COLLATIONS + eng "Illegal mix of collations (%s,%s) and (%s,%s) for operation '%s'" + ger "Unerlaubte Mischung von Sortierreihenfolgen (%s, %s) und (%s, %s) für Operation '%s'" + por "Combinação ilegal de collations (%s,%s) e (%s,%s) para operação '%s'" + spa "Ilegal mezcla de collations (%s,%s) y (%s,%s) para operación '%s'" +ER_DROP_USER + eng "Cannot drop one or more of the requested users" + ger "Kann einen oder mehrere der angegebenen Benutzer nicht löschen" +ER_REVOKE_GRANTS + eng "Can't revoke all privileges for one or more of the requested users" + ger "Kann nicht alle Berechtigungen widerrufen, die für einen oder mehrere Benutzer gewährt wurden" + por "Não pode revocar todos os privilégios, grant para um ou mais dos usuários pedidos" + spa "No puede revocar todos los privilegios, derecho para uno o mas de los usuarios solicitados" +ER_CANT_AGGREGATE_3COLLATIONS + eng "Illegal mix of collations (%s,%s), (%s,%s), (%s,%s) for operation '%s'" + ger "Unerlaubte Mischung von Sortierreihenfolgen (%s, %s), (%s, %s), (%s, %s) für Operation '%s'" + por "Ilegal combinação de collations (%s,%s), (%s,%s), (%s,%s) para operação '%s'" + spa "Ilegal mezcla de collations (%s,%s), (%s,%s), (%s,%s) para operación '%s'" +ER_CANT_AGGREGATE_NCOLLATIONS + eng "Illegal mix of collations for operation '%s'" + ger "Unerlaubte Mischung von Sortierreihenfolgen für Operation '%s'" + por "Ilegal combinação de collations para operação '%s'" + spa "Ilegal mezcla de collations para operación '%s'" +ER_VARIABLE_IS_NOT_STRUCT + eng "Variable '%-.64s' is not a variable component (can't be used as XXXX.variable_name)" + ger "Variable '%-.64s' ist keine Variablen-Komponente (kann nicht als XXXX.variablen_name verwendet werden)" + por "Variável '%-.64s' não é uma variável componente (Não pode ser usada como XXXX.variável_nome)" + spa "Variable '%-.64s' no es una variable componente (No puede ser usada como XXXX.variable_name)" +ER_UNKNOWN_COLLATION + eng "Unknown collation: '%-.64s'" + ger "Unbekannte Sortierreihenfolge: '%-.64s'" + por "Collation desconhecida: '%-.64s'" + spa "Collation desconocida: '%-.64s'" +ER_SLAVE_IGNORED_SSL_PARAMS + eng "SSL parameters in CHANGE MASTER are ignored because this MariaDB slave was compiled without SSL support; they can be used later if MariaDB slave with SSL is started" + ger "SSL-Parameter in CHANGE MASTER werden ignoriert, weil dieser MariaDB-Slave ohne SSL-Unterstützung kompiliert wurde. Sie können aber später verwendet werden, wenn ein MariaDB-Slave mit SSL gestartet wird" + por "SSL parâmetros em CHANGE MASTER são ignorados porque este escravo MariaDB foi compilado sem o SSL suporte. Os mesmos podem ser usados mais tarde quando o escravo MariaDB com SSL seja iniciado." + spa "Parametros SSL en CHANGE MASTER son ignorados porque este slave MariaDB fue compilado sin soporte SSL; pueden ser usados despues cuando el slave MariaDB con SSL sea inicializado" +ER_SERVER_IS_IN_SECURE_AUTH_MODE + eng "Server is running in --secure-auth mode, but '%s'@'%s' has a password in the old format; please change the password to the new format" + ger "Server läuft im Modus --secure-auth, aber '%s'@'%s' hat ein Passwort im alten Format. Bitte Passwort ins neue Format ändern" + por "Servidor está rodando em --secure-auth modo, porêm '%s'@'%s' tem senha no formato antigo; por favor troque a senha para o novo formato" + rus "Сервер запущен в режиме --secure-auth (безопаÑной авторизации), но Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ '%s'@'%s' пароль Ñохранён в Ñтаром формате; необходимо обновить формат паролÑ" + spa "Servidor está rodando en modo --secure-auth, pero '%s'@'%s' tiene clave en el antiguo formato; por favor cambie la clave para el nuevo formato" +ER_WARN_FIELD_RESOLVED + eng "Field or reference '%-.192s%s%-.192s%s%-.192s' of SELECT #%d was resolved in SELECT #%d" + ger "Feld oder Verweis '%-.192s%s%-.192s%s%-.192s' im SELECT-Befehl Nr. %d wurde im SELECT-Befehl Nr. %d aufgelöst" + por "Campo ou referência '%-.192s%s%-.192s%s%-.192s' de SELECT #%d foi resolvido em SELECT #%d" + rus "Поле или ÑÑылка '%-.192s%s%-.192s%s%-.192s' из SELECTа #%d была найдена в SELECTе #%d" + spa "Campo o referencia '%-.192s%s%-.192s%s%-.192s' de SELECT #%d fue resolvido en SELECT #%d" + ukr "Стовбець або поÑÐ¸Ð»Ð°Ð½Ð½Ñ '%-.192s%s%-.192s%s%-.192s' із SELECTу #%d було знайдене у SELECTÑ– #%d" +ER_BAD_SLAVE_UNTIL_COND + eng "Incorrect parameter or combination of parameters for START SLAVE UNTIL" + ger "Falscher Parameter oder falsche Kombination von Parametern für START SLAVE UNTIL" + por "Parâmetro ou combinação de parâmetros errado para START SLAVE UNTIL" + spa "Parametro equivocado o combinación de parametros para START SLAVE UNTIL" +ER_MISSING_SKIP_SLAVE + eng "It is recommended to use --skip-slave-start when doing step-by-step replication with START SLAVE UNTIL; otherwise, you will get problems if you get an unexpected slave's mysqld restart" + ger "Es wird empfohlen, mit --skip-slave-start zu starten, wenn mit START SLAVE UNTIL eine Schritt-für-Schritt-Replikation ausgeführt wird. Ansonsten gibt es Probleme, wenn ein Slave-Server unerwartet neu startet" + por "É recomendado para rodar com --skip-slave-start quando fazendo replicação passo-por-passo com START SLAVE UNTIL, de outra forma você não está seguro em caso de inesperada reinicialição do mysqld escravo" + spa "Es recomendado rodar con --skip-slave-start cuando haciendo replicación step-by-step con START SLAVE UNTIL, a menos que usted no esté seguro en caso de inesperada reinicialización del mysqld slave" +ER_UNTIL_COND_IGNORED + eng "SQL thread is not to be started so UNTIL options are ignored" + ger "SQL-Thread soll nicht gestartet werden. Daher werden UNTIL-Optionen ignoriert" + por "Thread SQL não pode ser inicializado tal que opções UNTIL são ignoradas" + spa "SQL thread no es inicializado tal que opciones UNTIL son ignoradas" +ER_WRONG_NAME_FOR_INDEX 42000 + eng "Incorrect index name '%-.100s'" + ger "Falscher Indexname '%-.100s'" + por "Incorreto nome de índice '%-.100s'" + spa "Nombre de índice incorrecto '%-.100s'" + swe "Felaktigt index namn '%-.100s'" +ER_WRONG_NAME_FOR_CATALOG 42000 + eng "Incorrect catalog name '%-.100s'" + ger "Falscher Katalogname '%-.100s'" + por "Incorreto nome de catálogo '%-.100s'" + spa "Nombre de catalog incorrecto '%-.100s'" + swe "Felaktigt katalog namn '%-.100s'" +ER_WARN_QC_RESIZE + eng "Query cache failed to set size %llu; new query cache size is %lu" + ger "Änderung der Query-Cache-Größe auf %llu fehlgeschlagen; neue Query-Cache-Größe ist %lu" + por "Falha em Query cache para configurar tamanho %llu, novo tamanho de query cache é %lu" + rus "Кеш запроÑов не может уÑтановить размер %llu, новый размер кеша зпроÑов - %lu" + spa "Query cache fallada para configurar tamaño %llu, nuevo tamaño de query cache es %lu" + swe "Storleken av "Query cache" kunde inte sättas till %llu, ny storlek är %lu" + ukr "Кеш запитів неÑпроможен вÑтановити розмір %llu, новий розмір кеша запитів - %lu" +ER_BAD_FT_COLUMN + eng "Column '%-.192s' cannot be part of FULLTEXT index" + ger "Feld '%-.192s' kann nicht Teil eines FULLTEXT-Index sein" + por "Coluna '%-.192s' não pode ser parte de índice FULLTEXT" + spa "Columna '%-.192s' no puede ser parte de FULLTEXT index" + swe "Kolumn '%-.192s' kan inte vara del av ett FULLTEXT index" +ER_UNKNOWN_KEY_CACHE + eng "Unknown key cache '%-.100s'" + ger "Unbekannter Schlüssel-Cache '%-.100s'" + por "Key cache desconhecida '%-.100s'" + spa "Desconocida key cache '%-.100s'" + swe "Okänd nyckel cache '%-.100s'" +ER_WARN_HOSTNAME_WONT_WORK + eng "MariaDB is started in --skip-name-resolve mode; you must restart it without this switch for this grant to work" + ger "MariaDB wurde mit --skip-name-resolve gestartet. Diese Option darf nicht verwendet werden, damit diese Rechtevergabe möglich ist" + por "MariaDB foi inicializado em modo --skip-name-resolve. Você necesita reincializá-lo sem esta opção para este grant funcionar" + spa "MariaDB esta inicializado en modo --skip-name-resolve. Usted necesita reinicializarlo sin esta opción para este derecho funcionar" +ER_UNKNOWN_STORAGE_ENGINE 42000 + eng "Unknown storage engine '%s'" + ger "Unbekannte Speicher-Engine '%s'" + por "Motor de tabela desconhecido '%s'" + spa "Desconocido motor de tabla '%s'" +ER_WARN_DEPRECATED_SYNTAX + eng "'%s' is deprecated and will be removed in a future release. Please use %s instead" + ger "'%s' ist veraltet. Bitte benutzen Sie '%s'" + por "'%s' é desatualizado. Use '%s' em seu lugar" + spa "'%s' está desaprobado, use '%s' en su lugar" +ER_NON_UPDATABLE_TABLE + eng "The target table %-.100s of the %s is not updatable" + ger "Die Zieltabelle %-.100s von %s ist nicht aktualisierbar" + por "A tabela destino %-.100s do %s não é atualizável" + rus "Таблица %-.100s в %s не может изменÑÑ‚ÑÑ" + spa "La tabla destino %-.100s del %s no es actualizable" + swe "Tabell %-.100s använd med '%s' är inte uppdateringsbar" + ukr "Ð¢Ð°Ð±Ð»Ð¸Ñ†Ñ %-.100s у %s не може оновлюватиÑÑŒ" +ER_FEATURE_DISABLED + eng "The '%s' feature is disabled; you need MariaDB built with '%s' to have it working" + ger "Das Feature '%s' ist ausgeschaltet, Sie müssen MariaDB mit '%s' übersetzen, damit es verfügbar ist" + por "O recurso '%s' foi desativado; você necessita MariaDB construído com '%s' para ter isto funcionando" + spa "El recurso '%s' fue deshabilitado; usted necesita construir MariaDB con '%s' para tener eso funcionando" + swe "'%s' är inte aktiverad; För att aktivera detta mÃ¥ste du bygga om MariaDB med '%s' definierad" +ER_OPTION_PREVENTS_STATEMENT + eng "The MariaDB server is running with the %s option so it cannot execute this statement" + ger "Der MariaDB-Server läuft mit der Option %s und kann diese Anweisung deswegen nicht ausführen" + por "O servidor MariaDB está rodando com a opção %s razão pela qual não pode executar esse commando" + spa "El servidor MariaDB está rodando con la opción %s tal que no puede ejecutar este comando" + swe "MariaDB är startad med %s. Pga av detta kan du inte använda detta kommando" +ER_DUPLICATED_VALUE_IN_TYPE + eng "Column '%-.100s' has duplicated value '%-.64s' in %s" + ger "Feld '%-.100s' hat doppelten Wert '%-.64s' in %s" + por "Coluna '%-.100s' tem valor duplicado '%-.64s' em %s" + spa "Columna '%-.100s' tiene valor doblado '%-.64s' en %s" +ER_TRUNCATED_WRONG_VALUE 22007 + eng "Truncated incorrect %-.32s value: '%-.128s'" + ger "Falscher %-.32s-Wert gekürzt: '%-.128s'" + por "Truncado errado %-.32s valor: '%-.128s'" + spa "Equivocado truncado %-.32s valor: '%-.128s'" +ER_TOO_MUCH_AUTO_TIMESTAMP_COLS + eng "Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause" + ger "Fehlerhafte Tabellendefinition. Es kann nur eine einzige TIMESTAMP-Spalte mit CURRENT_TIMESTAMP als DEFAULT oder in einer ON-UPDATE-Klausel geben" + por "Incorreta definição de tabela; Pode ter somente uma coluna TIMESTAMP com CURRENT_TIMESTAMP em DEFAULT ou ON UPDATE cláusula" + spa "Incorrecta definición de tabla; Solamente debe haber una columna TIMESTAMP con CURRENT_TIMESTAMP en DEFAULT o ON UPDATE cláusula" +ER_INVALID_ON_UPDATE + eng "Invalid ON UPDATE clause for '%-.192s' column" + ger "Ungültige ON-UPDATE-Klausel für Spalte '%-.192s'" + por "Inválida cláusula ON UPDATE para campo '%-.192s'" + spa "Inválido ON UPDATE cláusula para campo '%-.192s'" +ER_UNSUPPORTED_PS + eng "This command is not supported in the prepared statement protocol yet" + ger "Dieser Befehl wird im Protokoll für vorbereitete Anweisungen noch nicht unterstützt" +ER_GET_ERRMSG + dan "Modtog fejl %d '%-.200s' fra %s" + eng "Got error %d '%-.200s' from %s" + ger "Fehler %d '%-.200s' von %s" + nor "Mottok feil %d '%-.200s' fa %s" + norwegian-ny "Mottok feil %d '%-.200s' fra %s" +ER_GET_TEMPORARY_ERRMSG + dan "Modtog temporary fejl %d '%-.200s' fra %s" + eng "Got temporary error %d '%-.200s' from %s" + ger "Temporärer Fehler %d '%-.200s' von %s" + nor "Mottok temporary feil %d '%-.200s' fra %s" + norwegian-ny "Mottok temporary feil %d '%-.200s' fra %s" +ER_UNKNOWN_TIME_ZONE + eng "Unknown or incorrect time zone: '%-.64s'" + ger "Unbekannte oder falsche Zeitzone: '%-.64s'" +ER_WARN_INVALID_TIMESTAMP + eng "Invalid TIMESTAMP value in column '%s' at row %lu" + ger "Ungültiger TIMESTAMP-Wert in Feld '%s', Zeile %lu" +ER_INVALID_CHARACTER_STRING + eng "Invalid %s character string: '%.64s'" + ger "Ungültiger %s-Zeichen-String: '%.64s'" +ER_WARN_ALLOWED_PACKET_OVERFLOWED + eng "Result of %s() was larger than max_allowed_packet (%ld) - truncated" + ger "Ergebnis von %s() war größer als max_allowed_packet (%ld) Bytes und wurde deshalb gekürzt" +ER_CONFLICTING_DECLARATIONS + eng "Conflicting declarations: '%s%s' and '%s%s'" + ger "Widersprüchliche Deklarationen: '%s%s' und '%s%s'" +ER_SP_NO_RECURSIVE_CREATE 2F003 + eng "Can't create a %s from within another stored routine" + ger "Kann kein %s innerhalb einer anderen gespeicherten Routine erzeugen" +ER_SP_ALREADY_EXISTS 42000 + eng "%s %s already exists" + ger "%s %s existiert bereits" +ER_SP_DOES_NOT_EXIST 42000 + eng "%s %s does not exist" + ger "%s %s existiert nicht" +ER_SP_DROP_FAILED + eng "Failed to DROP %s %s" + ger "DROP %s %s ist fehlgeschlagen" +ER_SP_STORE_FAILED + eng "Failed to CREATE %s %s" + ger "CREATE %s %s ist fehlgeschlagen" +ER_SP_LILABEL_MISMATCH 42000 + eng "%s with no matching label: %s" + ger "%s ohne passende Marke: %s" +ER_SP_LABEL_REDEFINE 42000 + eng "Redefining label %s" + ger "Neudefinition der Marke %s" +ER_SP_LABEL_MISMATCH 42000 + eng "End-label %s without match" + ger "Ende-Marke %s ohne zugehörigen Anfang" +ER_SP_UNINIT_VAR 01000 + eng "Referring to uninitialized variable %s" + ger "Zugriff auf nichtinitialisierte Variable %s" +ER_SP_BADSELECT 0A000 + eng "PROCEDURE %s can't return a result set in the given context" + ger "PROCEDURE %s kann im gegebenen Kontext keine Ergebnismenge zurückgeben" +ER_SP_BADRETURN 42000 + eng "RETURN is only allowed in a FUNCTION" + ger "RETURN ist nur innerhalb einer FUNCTION erlaubt" +ER_SP_BADSTATEMENT 0A000 + eng "%s is not allowed in stored procedures" + ger "%s ist in gespeicherten Prozeduren nicht erlaubt" +ER_UPDATE_LOG_DEPRECATED_IGNORED 42000 + eng "The update log is deprecated and replaced by the binary log; SET SQL_LOG_UPDATE has been ignored. This option will be removed in MariaDB 5.6." + ger "Das Update-Log ist veraltet und wurde durch das Binär-Log ersetzt. SET SQL_LOG_UPDATE wird ignoriert. Diese Option wird in MariaDB 5.6 entfernt." +ER_UPDATE_LOG_DEPRECATED_TRANSLATED 42000 + eng "The update log is deprecated and replaced by the binary log; SET SQL_LOG_UPDATE has been translated to SET SQL_LOG_BIN. This option will be removed in MariaDB 5.6." + ger "Das Update-Log ist veraltet und wurde durch das Binär-Log ersetzt. SET SQL_LOG_UPDATE wurde in SET SQL_LOG_BIN übersetzt. Diese Option wird in MariaDB 5.6 entfernt." +ER_QUERY_INTERRUPTED 70100 + eng "Query execution was interrupted" + ger "Ausführung der Abfrage wurde unterbrochen" +ER_SP_WRONG_NO_OF_ARGS 42000 + eng "Incorrect number of arguments for %s %s; expected %u, got %u" + ger "Falsche Anzahl von Argumenten für %s %s; erwarte %u, erhalte %u" +ER_SP_COND_MISMATCH 42000 + eng "Undefined CONDITION: %s" + ger "Undefinierte CONDITION: %s" +ER_SP_NORETURN 42000 + eng "No RETURN found in FUNCTION %s" + ger "Kein RETURN in FUNCTION %s gefunden" +ER_SP_NORETURNEND 2F005 + eng "FUNCTION %s ended without RETURN" + ger "FUNCTION %s endete ohne RETURN" +ER_SP_BAD_CURSOR_QUERY 42000 + eng "Cursor statement must be a SELECT" + ger "Cursor-Anweisung muss ein SELECT sein" +ER_SP_BAD_CURSOR_SELECT 42000 + eng "Cursor SELECT must not have INTO" + ger "Cursor-SELECT darf kein INTO haben" +ER_SP_CURSOR_MISMATCH 42000 + eng "Undefined CURSOR: %s" + ger "Undefinierter CURSOR: %s" +ER_SP_CURSOR_ALREADY_OPEN 24000 + eng "Cursor is already open" + ger "Cursor ist schon geöffnet" +ER_SP_CURSOR_NOT_OPEN 24000 + eng "Cursor is not open" + ger "Cursor ist nicht geöffnet" +ER_SP_UNDECLARED_VAR 42000 + eng "Undeclared variable: %s" + ger "Nicht deklarierte Variable: %s" +ER_SP_WRONG_NO_OF_FETCH_ARGS + eng "Incorrect number of FETCH variables" + ger "Falsche Anzahl von FETCH-Variablen" +ER_SP_FETCH_NO_DATA 02000 + eng "No data - zero rows fetched, selected, or processed" + ger "Keine Daten - null Zeilen geholt (fetch), ausgewählt oder verarbeitet" +ER_SP_DUP_PARAM 42000 + eng "Duplicate parameter: %s" + ger "Doppelter Parameter: %s" +ER_SP_DUP_VAR 42000 + eng "Duplicate variable: %s" + ger "Doppelte Variable: %s" +ER_SP_DUP_COND 42000 + eng "Duplicate condition: %s" + ger "Doppelte Bedingung: %s" +ER_SP_DUP_CURS 42000 + eng "Duplicate cursor: %s" + ger "Doppelter Cursor: %s" +ER_SP_CANT_ALTER + eng "Failed to ALTER %s %s" + ger "ALTER %s %s fehlgeschlagen" +ER_SP_SUBSELECT_NYI 0A000 + eng "Subquery value not supported" + ger "Subquery-Wert wird nicht unterstützt" +ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG 0A000 + eng "%s is not allowed in stored function or trigger" + ger "%s ist in gespeicherten Funktionen und in Triggern nicht erlaubt" +ER_SP_VARCOND_AFTER_CURSHNDLR 42000 + eng "Variable or condition declaration after cursor or handler declaration" + ger "Deklaration einer Variablen oder einer Bedingung nach der Deklaration eines Cursors oder eines Handlers" +ER_SP_CURSOR_AFTER_HANDLER 42000 + eng "Cursor declaration after handler declaration" + ger "Deklaration eines Cursors nach der Deklaration eines Handlers" +ER_SP_CASE_NOT_FOUND 20000 + eng "Case not found for CASE statement" + ger "Fall für CASE-Anweisung nicht gefunden" +ER_FPARSER_TOO_BIG_FILE + eng "Configuration file '%-.192s' is too big" + ger "Konfigurationsdatei '%-.192s' ist zu groß" + rus "Слишком большой конфигурационный файл '%-.192s'" + ukr "Занадто великий конфігураційний файл '%-.192s'" +ER_FPARSER_BAD_HEADER + eng "Malformed file type header in file '%-.192s'" + ger "Nicht wohlgeformter Dateityp-Header in Datei '%-.192s'" + rus "Ðеверный заголовок типа файла '%-.192s'" + ukr "Ðевірний заголовок типу у файлі '%-.192s'" +ER_FPARSER_EOF_IN_COMMENT + eng "Unexpected end of file while parsing comment '%-.200s'" + ger "Unerwartetes Dateiende beim Parsen des Kommentars '%-.200s'" + rus "Ðеожиданный конец файла в коментарии '%-.200s'" + ukr "ÐеÑподіванний кінець файлу у коментарі '%-.200s'" +ER_FPARSER_ERROR_IN_PARAMETER + eng "Error while parsing parameter '%-.192s' (line: '%-.192s')" + ger "Fehler beim Parsen des Parameters '%-.192s' (Zeile: '%-.192s')" + rus "Ошибка при раÑпознавании параметра '%-.192s' (Ñтрока: '%-.192s')" + ukr "Помилка в роÑпізнаванні параметру '%-.192s' (Ñ€Ñдок: '%-.192s')" +ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER + eng "Unexpected end of file while skipping unknown parameter '%-.192s'" + ger "Unerwartetes Dateiende beim Überspringen des unbekannten Parameters '%-.192s'" + rus "Ðеожиданный конец файла при пропуÑке неизвеÑтного параметра '%-.192s'" + ukr "ÐеÑподіванний кінець файлу у Ñпробі проминути невідомий параметр '%-.192s'" +ER_VIEW_NO_EXPLAIN + eng "EXPLAIN/SHOW can not be issued; lacking privileges for underlying table" + ger "EXPLAIN/SHOW kann nicht verlangt werden. Rechte für zugrunde liegende Tabelle fehlen" + rus "EXPLAIN/SHOW не может быть выполненно; недоÑтаточно прав на таблицы запроÑа" + ukr "EXPLAIN/SHOW не може бути виконано; немає прав на тиблиці запиту" +ER_FRM_UNKNOWN_TYPE + eng "File '%-.192s' has unknown type '%-.64s' in its header" + ger "Datei '%-.192s' hat unbekannten Typ '%-.64s' im Header" + rus "Файл '%-.192s' Ñодержит неизвеÑтный тип '%-.64s' в заголовке" + ukr "Файл '%-.192s' має невідомий тип '%-.64s' у заголовку" +ER_WRONG_OBJECT + eng "'%-.192s.%-.192s' is not %s" + ger "'%-.192s.%-.192s' ist nicht %s" + rus "'%-.192s.%-.192s' - не %s" + ukr "'%-.192s.%-.192s' не Ñ” %s" +ER_NONUPDATEABLE_COLUMN + eng "Column '%-.192s' is not updatable" + ger "Feld '%-.192s' ist nicht aktualisierbar" + rus "Столбец '%-.192s' не обновлÑемый" + ukr "Стовбець '%-.192s' не може бути зминений" +ER_VIEW_SELECT_DERIVED + eng "View's SELECT contains a subquery in the FROM clause" + ger "SELECT der View enthält eine Subquery in der FROM-Klausel" + rus "View SELECT Ñодержит Ð¿Ð¾Ð´Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð² конÑтрукции FROM" + ukr "View SELECT має підзапит у конÑтрукції FROM" +ER_VIEW_SELECT_CLAUSE + eng "View's SELECT contains a '%s' clause" + ger "SELECT der View enthält eine '%s'-Klausel" + rus "View SELECT Ñодержит конÑтрукцию '%s'" + ukr "View SELECT має конÑтрукцію '%s'" +ER_VIEW_SELECT_VARIABLE + eng "View's SELECT contains a variable or parameter" + ger "SELECT der View enthält eine Variable oder einen Parameter" + rus "View SELECT Ñодержит переменную или параметр" + ukr "View SELECT має зминну або параметер" +ER_VIEW_SELECT_TMPTABLE + eng "View's SELECT refers to a temporary table '%-.192s'" + ger "SELECT der View verweist auf eine temporäre Tabelle '%-.192s'" + rus "View SELECT Ñодержит ÑÑылку на временную таблицу '%-.192s'" + ukr "View SELECT викориÑтовує тимчаÑову таблицю '%-.192s'" +ER_VIEW_WRONG_LIST + eng "View's SELECT and view's field list have different column counts" + ger "SELECT- und Feldliste der Views haben unterschiedliche Anzahlen von Spalten" + rus "View SELECT и ÑпиÑок полей view имеют разное количеÑтво Ñтолбцов" + ukr "View SELECT Ñ– перелік Ñтовбців view мають різну кількіÑть Ñковбців" +ER_WARN_VIEW_MERGE + eng "View merge algorithm can't be used here for now (assumed undefined algorithm)" + ger "View-Merge-Algorithmus kann hier momentan nicht verwendet werden (undefinierter Algorithmus wird angenommen)" + rus "Ðлгоритм ÑлиÑÐ½Ð¸Ñ view не может быть иÑпользован ÑÐµÐ¹Ñ‡Ð°Ñ (алгоритм будет неопеределенным)" + ukr "Ðлгоритм Ð·Ð»Ð¸Ð²Ð°Ð½Ð½Ñ view не може бути викориÑтаний зараз (алгоритм буде невизначений)" +ER_WARN_VIEW_WITHOUT_KEY + eng "View being updated does not have complete key of underlying table in it" + ger "Die aktualisierte View enthält nicht den vollständigen Schlüssel der zugrunde liegenden Tabelle" + rus "ОбновлÑемый view не Ñодержит ключа иÑпользованных(ой) в нем таблиц(Ñ‹)" + ukr "View, що оновлюетьÑÑ, не міÑтить повного ключа таблиці(ÑŒ), що викоріÑтана в ньюому" +ER_VIEW_INVALID + eng "View '%-.192s.%-.192s' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them" +ER_SP_NO_DROP_SP + eng "Can't drop or alter a %s from within another stored routine" + ger "Kann eine %s nicht von innerhalb einer anderen gespeicherten Routine löschen oder ändern" +ER_SP_GOTO_IN_HNDLR + eng "GOTO is not allowed in a stored procedure handler" + ger "GOTO ist im Handler einer gespeicherten Prozedur nicht erlaubt" +ER_TRG_ALREADY_EXISTS + eng "Trigger already exists" + ger "Trigger existiert bereits" +ER_TRG_DOES_NOT_EXIST + eng "Trigger does not exist" + ger "Trigger existiert nicht" +ER_TRG_ON_VIEW_OR_TEMP_TABLE + eng "Trigger's '%-.192s' is view or temporary table" + ger "'%-.192s' des Triggers ist View oder temporäre Tabelle" +ER_TRG_CANT_CHANGE_ROW + eng "Updating of %s row is not allowed in %strigger" + ger "Aktualisieren einer %s-Zeile ist in einem %s-Trigger nicht erlaubt" +ER_TRG_NO_SUCH_ROW_IN_TRG + eng "There is no %s row in %s trigger" + ger "Es gibt keine %s-Zeile im %s-Trigger" +ER_NO_DEFAULT_FOR_FIELD + eng "Field '%-.192s' doesn't have a default value" + ger "Feld '%-.192s' hat keinen Vorgabewert" +ER_DIVISION_BY_ZERO 22012 + eng "Division by 0" + ger "Division durch 0" +ER_TRUNCATED_WRONG_VALUE_FOR_FIELD 22007 + eng "Incorrect %-.32s value: '%-.128s' for column '%.192s' at row %lu" + ger "Falscher %-.32s-Wert: '%-.128s' für Feld '%.192s' in Zeile %lu" +ER_ILLEGAL_VALUE_FOR_TYPE 22007 + eng "Illegal %s '%-.192s' value found during parsing" + ger "Nicht zulässiger %s-Wert '%-.192s' beim Parsen gefunden" +ER_VIEW_NONUPD_CHECK + eng "CHECK OPTION on non-updatable view '%-.192s.%-.192s'" + ger "CHECK OPTION auf nicht-aktualisierbarem View '%-.192s.%-.192s'" + rus "CHECK OPTION Ð´Ð»Ñ Ð½ÐµÐ¾Ð±Ð½Ð¾Ð²Ð»Ñемого VIEW '%-.192s.%-.192s'" + ukr "CHECK OPTION Ð´Ð»Ñ VIEW '%-.192s.%-.192s' що не може бути оновленним" +ER_VIEW_CHECK_FAILED + eng "CHECK OPTION failed '%-.192s.%-.192s'" + ger "CHECK OPTION fehlgeschlagen: '%-.192s.%-.192s'" + rus "проверка CHECK OPTION Ð´Ð»Ñ VIEW '%-.192s.%-.192s' провалилаÑÑŒ" + ukr "Перевірка CHECK OPTION Ð´Ð»Ñ VIEW '%-.192s.%-.192s' не пройшла" +ER_PROCACCESS_DENIED_ERROR 42000 + eng "%-.16s command denied to user '%s'@'%s' for routine '%-.192s'" + ger "Befehl %-.16s nicht zulässig für Benutzer '%s'@'%s' in Routine '%-.192s'" +ER_RELAY_LOG_FAIL + eng "Failed purging old relay logs: %s" + ger "Bereinigen alter Relais-Logs fehlgeschlagen: %s" +ER_PASSWD_LENGTH + eng "Password hash should be a %d-digit hexadecimal number" + ger "Passwort-Hash sollte eine Hexdaezimalzahl mit %d Stellen sein" +ER_UNKNOWN_TARGET_BINLOG + eng "Target log not found in binlog index" + ger "Ziel-Log im Binlog-Index nicht gefunden" +ER_IO_ERR_LOG_INDEX_READ + eng "I/O error reading log index file" + ger "Fehler beim Lesen der Log-Index-Datei" +ER_BINLOG_PURGE_PROHIBITED + eng "Server configuration does not permit binlog purge" + ger "Server-Konfiguration erlaubt keine Binlog-Bereinigung" +ER_FSEEK_FAIL + eng "Failed on fseek()" + ger "fseek() fehlgeschlagen" +ER_BINLOG_PURGE_FATAL_ERR + eng "Fatal error during log purge" + ger "Schwerwiegender Fehler bei der Log-Bereinigung" +ER_LOG_IN_USE + eng "A purgeable log is in use, will not purge" + ger "Ein zu bereinigendes Log wird gerade benutzt, daher keine Bereinigung" +ER_LOG_PURGE_UNKNOWN_ERR + eng "Unknown error during log purge" + ger "Unbekannter Fehler bei Log-Bereinigung" +ER_RELAY_LOG_INIT + eng "Failed initializing relay log position: %s" + ger "Initialisierung der Relais-Log-Position fehlgeschlagen: %s" +ER_NO_BINARY_LOGGING + eng "You are not using binary logging" + ger "Sie verwenden keine Binärlogs" +ER_RESERVED_SYNTAX + eng "The '%-.64s' syntax is reserved for purposes internal to the MariaDB server" + ger "Die Schreibweise '%-.64s' ist für interne Zwecke des MariaDB-Servers reserviert" +ER_WSAS_FAILED + eng "WSAStartup Failed" + ger "WSAStartup fehlgeschlagen" +ER_DIFF_GROUPS_PROC + eng "Can't handle procedures with different groups yet" + ger "Kann Prozeduren mit unterschiedlichen Gruppen noch nicht verarbeiten" +ER_NO_GROUP_FOR_PROC + eng "Select must have a group with this procedure" + ger "SELECT muss bei dieser Prozedur ein GROUP BY haben" +ER_ORDER_WITH_PROC + eng "Can't use ORDER clause with this procedure" + ger "Kann bei dieser Prozedur keine ORDER-BY-Klausel verwenden" +ER_LOGGING_PROHIBIT_CHANGING_OF + eng "Binary logging and replication forbid changing the global server %s" + ger "Binärlogs und Replikation verhindern Wechsel des globalen Servers %s" +ER_NO_FILE_MAPPING + eng "Can't map file: %-.200s, errno: %d" + ger "Kann Datei nicht abbilden: %-.200s, Fehler: %d" +ER_WRONG_MAGIC + eng "Wrong magic in %-.64s" + ger "Falsche magische Zahlen in %-.64s" +ER_PS_MANY_PARAM + eng "Prepared statement contains too many placeholders" + ger "Vorbereitete Anweisung enthält zu viele Platzhalter" +ER_KEY_PART_0 + eng "Key part '%-.192s' length cannot be 0" + ger "Länge des Schlüsselteils '%-.192s' kann nicht 0 sein" +ER_VIEW_CHECKSUM + eng "View text checksum failed" + ger "View-Text-Prüfsumme fehlgeschlagen" + rus "Проверка контрольной Ñуммы текÑта VIEW провалилаÑÑŒ" + ukr "Перевірка контрольної Ñуми текÑту VIEW не пройшла" +ER_VIEW_MULTIUPDATE + eng "Can not modify more than one base table through a join view '%-.192s.%-.192s'" + ger "Kann nicht mehr als eine Basistabelle über Join-View '%-.192s.%-.192s' ändern" + rus "ÐÐµÐ»ÑŒÐ·Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ больше чем одну базовую таблицу иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð¼Ð½Ð¾Ð³Ð¾Ñ‚Ð°Ð±Ð»Ð¸Ñ‡Ð½Ñ‹Ð¹ VIEW '%-.192s.%-.192s'" + ukr "Ðеможливо оновити більш ниж одну базову таблицю выкориÑтовуючи VIEW '%-.192s.%-.192s', що міÑтіть декілька таблиць" +ER_VIEW_NO_INSERT_FIELD_LIST + eng "Can not insert into join view '%-.192s.%-.192s' without fields list" + ger "Kann nicht ohne Feldliste in Join-View '%-.192s.%-.192s' einfügen" + rus "ÐÐµÐ»ÑŒÐ·Ñ Ð²ÑтавлÑть запиÑи в многотабличный VIEW '%-.192s.%-.192s' без ÑпиÑка полей" + ukr "Ðеможливо уÑтавити Ñ€Ñдки у VIEW '%-.192s.%-.192s', що міÑтить декілька таблиць, без ÑпиÑку Ñтовбців" +ER_VIEW_DELETE_MERGE_VIEW + eng "Can not delete from join view '%-.192s.%-.192s'" + ger "Kann nicht aus Join-View '%-.192s.%-.192s' löschen" + rus "ÐÐµÐ»ÑŒÐ·Ñ ÑƒÐ´Ð°Ð»Ñть из многотабличного VIEW '%-.192s.%-.192s'" + ukr "Ðеможливо видалити Ñ€Ñдки у VIEW '%-.192s.%-.192s', що міÑтить декілька таблиць" +ER_CANNOT_USER + eng "Operation %s failed for %.256s" + ger "Operation %s schlug fehl für %.256s" + norwegian-ny "Operation %s failed for '%.256s'" +ER_XAER_NOTA XAE04 + eng "XAER_NOTA: Unknown XID" + ger "XAER_NOTA: Unbekannte XID" +ER_XAER_INVAL XAE05 + eng "XAER_INVAL: Invalid arguments (or unsupported command)" + ger "XAER_INVAL: Ungültige Argumente (oder nicht unterstützter Befehl)" +ER_XAER_RMFAIL XAE07 + eng "XAER_RMFAIL: The command cannot be executed when global transaction is in the %.64s state" + ger "XAER_RMFAIL: DEr Befehl kann nicht ausgeführt werden, wenn die globale Transaktion im Zustand %.64s ist" + rus "XAER_RMFAIL: Ñту команду Ð½ÐµÐ»ÑŒÐ·Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½Ñть когда Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ð°Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð½Ð°Ñ…Ð¾Ð´Ð¸Ñ‚ÑÑ Ð² ÑоÑтоÑнии '%.64s'" +ER_XAER_OUTSIDE XAE09 + eng "XAER_OUTSIDE: Some work is done outside global transaction" + ger "XAER_OUTSIDE: Einige Arbeiten werden außerhalb der globalen Transaktion verrichtet" +ER_XAER_RMERR XAE03 + eng "XAER_RMERR: Fatal error occurred in the transaction branch - check your data for consistency" + ger "XAER_RMERR: Schwerwiegender Fehler im Transaktionszweig - prüfen Sie Ihre Daten auf Konsistenz" +ER_XA_RBROLLBACK XA100 + eng "XA_RBROLLBACK: Transaction branch was rolled back" + ger "XA_RBROLLBACK: Transaktionszweig wurde zurückgerollt" +ER_NONEXISTING_PROC_GRANT 42000 + eng "There is no such grant defined for user '%-.48s' on host '%-.64s' on routine '%-.192s'" + ger "Es gibt diese Berechtigung für Benutzer '%-.48s' auf Host '%-.64s' für Routine '%-.192s' nicht" +ER_PROC_AUTO_GRANT_FAIL + eng "Failed to grant EXECUTE and ALTER ROUTINE privileges" + ger "Gewährung von EXECUTE- und ALTER-ROUTINE-Rechten fehlgeschlagen" +ER_PROC_AUTO_REVOKE_FAIL + eng "Failed to revoke all privileges to dropped routine" + ger "Rücknahme aller Rechte für die gelöschte Routine fehlgeschlagen" +ER_DATA_TOO_LONG 22001 + eng "Data too long for column '%s' at row %lu" + ger "Daten zu lang für Feld '%s' in Zeile %lu" +ER_SP_BAD_SQLSTATE 42000 + eng "Bad SQLSTATE: '%s'" + ger "Ungültiger SQLSTATE: '%s'" +ER_STARTUP + eng "%s: ready for connections.\nVersion: '%s' socket: '%s' port: %d %s" + ger "%s: bereit für Verbindungen.\nVersion: '%s' Socket: '%s' Port: %d %s" +ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR + eng "Can't load value from file with fixed size rows to variable" + ger "Kann Wert aus Datei mit Zeilen fester Größe nicht in Variable laden" +ER_CANT_CREATE_USER_WITH_GRANT 42000 + eng "You are not allowed to create a user with GRANT" + ger "Sie dürfen keinen Benutzer mit GRANT anlegen" +ER_WRONG_VALUE_FOR_TYPE + eng "Incorrect %-.32s value: '%-.128s' for function %-.32s" + ger "Falscher %-.32s-Wert: '%-.128s' für Funktion %-.32s" +ER_TABLE_DEF_CHANGED + eng "Table definition has changed, please retry transaction" + ger "Tabellendefinition wurde geändert, bitte starten Sie die Transaktion neu" +ER_SP_DUP_HANDLER 42000 + eng "Duplicate handler declared in the same block" + ger "Doppelter Handler im selben Block deklariert" +ER_SP_NOT_VAR_ARG 42000 + eng "OUT or INOUT argument %d for routine %s is not a variable or NEW pseudo-variable in BEFORE trigger" + ger "OUT- oder INOUT-Argument %d für Routine %s ist keine Variable" +ER_SP_NO_RETSET 0A000 + eng "Not allowed to return a result set from a %s" + ger "Rückgabe einer Ergebnismenge aus einer %s ist nicht erlaubt" +ER_CANT_CREATE_GEOMETRY_OBJECT 22003 + eng "Cannot get geometry object from data you send to the GEOMETRY field" + ger "Kann kein Geometrieobjekt aus den Daten machen, die Sie dem GEOMETRY-Feld übergeben haben" +ER_FAILED_ROUTINE_BREAK_BINLOG + eng "A routine failed and has neither NO SQL nor READS SQL DATA in its declaration and binary logging is enabled; if non-transactional tables were updated, the binary log will miss their changes" + ger "Eine Routine, die weder NO SQL noch READS SQL DATA in der Deklaration hat, schlug fehl und Binärlogging ist aktiv. Wenn Nicht-Transaktions-Tabellen aktualisiert wurden, enthält das Binärlog ihre Änderungen nicht" +ER_BINLOG_UNSAFE_ROUTINE + eng "This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)" + ger "Diese Routine hat weder DETERMINISTIC, NO SQL noch READS SQL DATA in der Deklaration und Binärlogging ist aktiv (*vielleicht* sollten Sie die weniger sichere Variable log_bin_trust_function_creators verwenden)" +ER_BINLOG_CREATE_ROUTINE_NEED_SUPER + eng "You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)" + ger "Sie haben keine SUPER-Berechtigung und Binärlogging ist aktiv (*vielleicht* sollten Sie die weniger sichere Variable log_bin_trust_function_creators verwenden)" +ER_EXEC_STMT_WITH_OPEN_CURSOR + eng "You can't execute a prepared statement which has an open cursor associated with it. Reset the statement to re-execute it." + ger "Sie können keine vorbereitete Anweisung ausführen, die mit einem geöffneten Cursor verknüpft ist. Setzen Sie die Anweisung zurück, um sie neu auszuführen" +ER_STMT_HAS_NO_OPEN_CURSOR + eng "The statement (%lu) has no open cursor." + ger "Die Anweisung (%lu) hat keinen geöffneten Cursor" +ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG + eng "Explicit or implicit commit is not allowed in stored function or trigger." + ger "Explizites oder implizites Commit ist in gespeicherten Funktionen und in Triggern nicht erlaubt" +ER_NO_DEFAULT_FOR_VIEW_FIELD + eng "Field of view '%-.192s.%-.192s' underlying table doesn't have a default value" + ger "Ein Feld der dem View '%-.192s.%-.192s' zugrundeliegenden Tabelle hat keinen Vorgabewert" +ER_SP_NO_RECURSION + eng "Recursive stored functions and triggers are not allowed." + ger "Rekursive gespeicherte Routinen und Triggers sind nicht erlaubt" +ER_TOO_BIG_SCALE 42000 S1009 + eng "Too big scale %u specified for '%-.192s'. Maximum is %lu." + ger "Zu großer Skalierungsfaktor %u für '%-.192s' angegeben. Maximum ist %lu" +ER_TOO_BIG_PRECISION 42000 S1009 + eng "Too big precision %u specified for '%-.192s'. Maximum is %lu." + ger "Zu große Genauigkeit %u für '%-.192s' angegeben. Maximum ist %lu" +ER_M_BIGGER_THAN_D 42000 S1009 + eng "For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column '%-.192s')." + ger "Für FLOAT(M,D), DOUBLE(M,D) oder DECIMAL(M,D) muss M >= D sein (Feld '%-.192s')" +ER_WRONG_LOCK_OF_SYSTEM_TABLE + eng "You can't combine write-locking of system tables with other tables or lock types" + ger "Sie können Schreibsperren auf der Systemtabelle nicht mit anderen Tabellen kombinieren" +ER_CONNECT_TO_FOREIGN_DATA_SOURCE + eng "Unable to connect to foreign data source: %.64s" + ger "Kann nicht mit Fremddatenquelle verbinden: %.64s" +ER_QUERY_ON_FOREIGN_DATA_SOURCE + eng "There was a problem processing the query on the foreign data source. Data source error: %-.64s" + ger "Bei der Verarbeitung der Abfrage ist in der Fremddatenquelle ein Problem aufgetreten. Datenquellenfehlermeldung: %-.64s" +ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST + eng "The foreign data source you are trying to reference does not exist. Data source error: %-.64s" + ger "Die Fremddatenquelle, auf die Sie zugreifen wollen, existiert nicht. Datenquellenfehlermeldung: %-.64s" +ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE + eng "Can't create federated table. The data source connection string '%-.64s' is not in the correct format" + ger "Kann föderierte Tabelle nicht erzeugen. Der Datenquellen-Verbindungsstring '%-.64s' hat kein korrektes Format" +ER_FOREIGN_DATA_STRING_INVALID + eng "The data source connection string '%-.64s' is not in the correct format" + ger "Der Datenquellen-Verbindungsstring '%-.64s' hat kein korrektes Format" +ER_CANT_CREATE_FEDERATED_TABLE + eng "Can't create federated table. Foreign data src error: %-.64s" + ger "Kann föderierte Tabelle nicht erzeugen. Fremddatenquellenfehlermeldung: %-.64s" +ER_TRG_IN_WRONG_SCHEMA + eng "Trigger in wrong schema" + ger "Trigger im falschen Schema" +ER_STACK_OVERRUN_NEED_MORE + eng "Thread stack overrun: %ld bytes used of a %ld byte stack, and %ld bytes needed. Use 'mysqld --thread_stack=#' to specify a bigger stack." + ger "Thread-Stack-Überlauf: %ld Bytes eines %ld-Byte-Stacks in Verwendung, und %ld Bytes benötigt. Verwenden Sie 'mysqld --thread_stack=#', um einen größeren Stack anzugeben" +ER_TOO_LONG_BODY 42000 S1009 + eng "Routine body for '%-.100s' is too long" + ger "Routinen-Body für '%-.100s' ist zu lang" +ER_WARN_CANT_DROP_DEFAULT_KEYCACHE + eng "Cannot drop default keycache" + ger "Der vorgabemäßige Schlüssel-Cache kann nicht gelöscht werden" +ER_TOO_BIG_DISPLAYWIDTH 42000 S1009 + eng "Display width out of range for '%-.192s' (max = %lu)" + ger "Anzeigebreite außerhalb des zulässigen Bereichs für '%-.192s' (Maximum: %lu)" +ER_XAER_DUPID XAE08 + eng "XAER_DUPID: The XID already exists" + ger "XAER_DUPID: Die XID existiert bereits" +ER_DATETIME_FUNCTION_OVERFLOW 22008 + eng "Datetime function: %-.32s field overflow" + ger "Datetime-Funktion: %-.32s Feldüberlauf" +ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG + eng "Can't update table '%-.192s' in stored function/trigger because it is already used by statement which invoked this stored function/trigger." + ger "Kann Tabelle '%-.192s' in gespeicherter Funktion oder Trigger nicht aktualisieren, weil sie bereits von der Anweisung verwendet wird, die diese gespeicherte Funktion oder den Trigger aufrief" +ER_VIEW_PREVENT_UPDATE + eng "The definition of table '%-.192s' prevents operation %.192s on table '%-.192s'." + ger "Die Definition der Tabelle '%-.192s' verhindert die Operation %.192s auf Tabelle '%-.192s'" +ER_PS_NO_RECURSION + eng "The prepared statement contains a stored routine call that refers to that same statement. It's not allowed to execute a prepared statement in such a recursive manner" + ger "Die vorbereitete Anweisung enthält einen Aufruf einer gespeicherten Routine, die auf eben dieselbe Anweisung verweist. Es ist nicht erlaubt, eine vorbereitete Anweisung in solch rekursiver Weise auszuführen" +ER_SP_CANT_SET_AUTOCOMMIT + eng "Not allowed to set autocommit from a stored function or trigger" + ger "Es ist nicht erlaubt, innerhalb einer gespeicherten Funktion oder eines Triggers AUTOCOMMIT zu setzen" +ER_MALFORMED_DEFINER + eng "Definer is not fully qualified" + ger "Definierer des View ist nicht vollständig spezifiziert" +ER_VIEW_FRM_NO_USER + eng "View '%-.192s'.'%-.192s' has no definer information (old table format). Current user is used as definer. Please recreate the view!" + ger "View '%-.192s'.'%-.192s' hat keine Definierer-Information (altes Tabellenformat). Der aktuelle Benutzer wird als Definierer verwendet. Bitte erstellen Sie den View neu" +ER_VIEW_OTHER_USER + eng "You need the SUPER privilege for creation view with '%-.192s'@'%-.192s' definer" + ger "Sie brauchen die SUPER-Berechtigung, um einen View mit dem Definierer '%-.192s'@'%-.192s' zu erzeugen" +ER_NO_SUCH_USER + eng "The user specified as a definer ('%-.64s'@'%-.64s') does not exist" + ger "Der als Definierer angegebene Benutzer ('%-.64s'@'%-.64s') existiert nicht" +ER_FORBID_SCHEMA_CHANGE + eng "Changing schema from '%-.192s' to '%-.192s' is not allowed." + ger "Wechsel des Schemas von '%-.192s' auf '%-.192s' ist nicht erlaubt" +ER_ROW_IS_REFERENCED_2 23000 + eng "Cannot delete or update a parent row: a foreign key constraint fails (%.192s)" + ger "Kann Eltern-Zeile nicht löschen oder aktualisieren: eine Fremdschlüsselbedingung schlägt fehl (%.192s)" +ER_NO_REFERENCED_ROW_2 23000 + eng "Cannot add or update a child row: a foreign key constraint fails (%.192s)" + ger "Kann Kind-Zeile nicht hinzufügen oder aktualisieren: eine Fremdschlüsselbedingung schlägt fehl (%.192s)" +ER_SP_BAD_VAR_SHADOW 42000 + eng "Variable '%-.64s' must be quoted with `...`, or renamed" + ger "Variable '%-.64s' muss mit `...` geschützt oder aber umbenannt werden" +ER_TRG_NO_DEFINER + eng "No definer attribute for trigger '%-.192s'.'%-.192s'. The trigger will be activated under the authorization of the invoker, which may have insufficient privileges. Please recreate the trigger." + ger "Kein Definierer-Attribut für Trigger '%-.192s'.'%-.192s'. Der Trigger wird mit der Autorisierung des Aufrufers aktiviert, der möglicherweise keine zureichenden Berechtigungen hat. Bitte legen Sie den Trigger neu an." +ER_OLD_FILE_FORMAT + eng "'%-.192s' has an old format, you should re-create the '%s' object(s)" + ger "'%-.192s' hat altes Format, Sie sollten die '%s'-Objekt(e) neu erzeugen" +ER_SP_RECURSION_LIMIT + eng "Recursive limit %d (as set by the max_sp_recursion_depth variable) was exceeded for routine %.192s" + ger "Rekursionsgrenze %d (durch Variable max_sp_recursion_depth gegeben) wurde für Routine %.192s überschritten" +ER_SP_PROC_TABLE_CORRUPT + eng "Failed to load routine %-.192s. The table mysql.proc is missing, corrupt, or contains bad data (internal code %d)" + ger "Routine %-.192s konnte nicht geladen werden. Die Tabelle mysql.proc fehlt, ist beschädigt, oder enthält fehlerhaften Daten (interner Code: %d)" +ER_SP_WRONG_NAME 42000 + eng "Incorrect routine name '%-.192s'" + ger "Ungültiger Routinenname '%-.192s'" +ER_TABLE_NEEDS_UPGRADE + eng "Table upgrade required. Please do \"REPAIR TABLE `%-.32s`\" or dump/reload to fix it!" + ger "Tabellenaktualisierung erforderlich. Bitte zum Reparieren \"REPAIR TABLE `%-.32s`\" eingeben!" +ER_SP_NO_AGGREGATE 42000 + eng "AGGREGATE is not supported for stored functions" + ger "AGGREGATE wird bei gespeicherten Funktionen nicht unterstützt" +ER_MAX_PREPARED_STMT_COUNT_REACHED 42000 + eng "Can't create more than max_prepared_stmt_count statements (current value: %lu)" + ger "Kann nicht mehr Anweisungen als max_prepared_stmt_count erzeugen (aktueller Wert: %lu)" +ER_VIEW_RECURSIVE + eng "`%-.192s`.`%-.192s` contains view recursion" + ger "`%-.192s`.`%-.192s` enthält View-Rekursion" +ER_NON_GROUPING_FIELD_USED 42000 + eng "Non-grouping field '%-.192s' is used in %-.64s clause" + ger "In der %-.192s-Klausel wird das die Nicht-Gruppierungsspalte '%-.64s' verwendet" +ER_TABLE_CANT_HANDLE_SPKEYS + eng "The used table type doesn't support SPATIAL indexes" + ger "Der verwendete Tabellentyp unterstützt keine SPATIAL-Indizes" +ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA + eng "Triggers can not be created on system tables" + ger "Trigger können nicht auf Systemtabellen erzeugt werden" +ER_REMOVED_SPACES + eng "Leading spaces are removed from name '%s'" + ger "Führende Leerzeichen werden aus dem Namen '%s' entfernt" +ER_AUTOINC_READ_FAILED + eng "Failed to read auto-increment value from storage engine" + ger "Lesen des Autoincrement-Werts von der Speicher-Engine fehlgeschlagen" +ER_USERNAME + eng "user name" + ger "Benutzername" +ER_HOSTNAME + eng "host name" + ger "Hostname" +ER_WRONG_STRING_LENGTH + eng "String '%-.70s' is too long for %s (should be no longer than %d)" + ger "String '%-.70s' ist zu lang für %s (sollte nicht länger sein als %d)" +ER_NON_INSERTABLE_TABLE + eng "The target table %-.100s of the %s is not insertable-into" + ger "Die Zieltabelle %-.100s von %s ist nicht einfügbar" +ER_ADMIN_WRONG_MRG_TABLE + eng "Table '%-.64s' is differently defined or of non-MyISAM type or doesn't exist" + ger "Tabelle '%-.64s' ist unterschiedlich definiert, nicht vom Typ MyISAM oder existiert nicht" +ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT + eng "Too high level of nesting for select" + ger "Zu tief verschachtelte SELECT-Anweisungen" +ER_NAME_BECOMES_EMPTY + eng "Name '%-.64s' has become ''" + ger "Name '%-.64s' wurde zu ''" +ER_AMBIGUOUS_FIELD_TERM + eng "First character of the FIELDS TERMINATED string is ambiguous; please use non-optional and non-empty FIELDS ENCLOSED BY" + ger "Das erste Zeichen der Zeichenkette FIELDS TERMINATED ist mehrdeutig; bitte benutzen Sie nicht optionale und nicht leere FIELDS ENCLOSED BY" +ER_FOREIGN_SERVER_EXISTS + eng "The foreign server, %s, you are trying to create already exists." + ger "Der entfernte Server %s, den Sie versuchen zu erzeugen, existiert schon." +ER_FOREIGN_SERVER_DOESNT_EXIST + eng "The foreign server name you are trying to reference does not exist. Data source error: %-.64s" + ger "Die externe Verbindung, auf die Sie zugreifen wollen, existiert nicht. Datenquellenfehlermeldung: %-.64s" +ER_ILLEGAL_HA_CREATE_OPTION + eng "Table storage engine '%-.64s' does not support the create option '%.64s'" + ger "Speicher-Engine '%-.64s' der Tabelle unterstützt die Option '%.64s' nicht" +ER_PARTITION_REQUIRES_VALUES_ERROR + eng "Syntax error: %-.64s PARTITIONING requires definition of VALUES %-.64s for each partition" + ger "Fehler in der SQL-Syntax: %-.64s-PARTITIONierung erfordert Definition von VALUES %-.64s für jede Partition" + swe "Syntaxfel: %-.64s PARTITIONering kräver definition av VALUES %-.64s för varje partition" +ER_PARTITION_WRONG_VALUES_ERROR + eng "Only %-.64s PARTITIONING can use VALUES %-.64s in partition definition" + ger "Nur %-.64s-PARTITIONierung kann VALUES %-.64s in der Partitionsdefinition verwenden" + swe "Endast %-.64s partitionering kan använda VALUES %-.64s i definition av partitionen" +ER_PARTITION_MAXVALUE_ERROR + eng "MAXVALUE can only be used in last partition definition" + ger "MAXVALUE kann nur für die Definition der letzten Partition verwendet werden" + swe "MAXVALUE kan bara användas i definitionen av den sista partitionen" +ER_PARTITION_SUBPARTITION_ERROR + eng "Subpartitions can only be hash partitions and by key" + ger "Unterpartitionen dürfen nur HASH- oder KEY-Partitionen sein" + swe "Subpartitioner kan bara vara hash och key partitioner" +ER_PARTITION_SUBPART_MIX_ERROR + eng "Must define subpartitions on all partitions if on one partition" + ger "Wenn Sie Unterpartitionen auf einer Partition definieren, müssen Sie das für alle Partitionen tun" + swe "Subpartitioner mÃ¥ste definieras pÃ¥ alla partitioner om pÃ¥ en" +ER_PARTITION_WRONG_NO_PART_ERROR + eng "Wrong number of partitions defined, mismatch with previous setting" + ger "Falsche Anzahl von Partitionen definiert, stimmt nicht mit vorherigen Einstellungen überein" + swe "Antal partitioner definierade och antal partitioner är inte lika" +ER_PARTITION_WRONG_NO_SUBPART_ERROR + eng "Wrong number of subpartitions defined, mismatch with previous setting" + ger "Falsche Anzahl von Unterpartitionen definiert, stimmt nicht mit vorherigen Einstellungen überein" + swe "Antal subpartitioner definierade och antal subpartitioner är inte lika" +ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR + eng "Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed" + ger "Konstante oder Random-Ausdrücke in (Unter-)Partitionsfunktionen sind nicht erlaubt" + swe "Konstanta uttryck eller slumpmässiga uttryck är inte tillÃ¥tna (sub)partitioneringsfunktioner" +ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR + eng "Expression in RANGE/LIST VALUES must be constant" + ger "Ausdrücke in RANGE/LIST VALUES müssen konstant sein" + swe "Uttryck i RANGE/LIST VALUES mÃ¥ste vara ett konstant uttryck" +ER_FIELD_NOT_FOUND_PART_ERROR + eng "Field in list of fields for partition function not found in table" + ger "Felder in der Feldliste der Partitionierungsfunktion wurden in der Tabelle nicht gefunden" + swe "Fält i listan av fält för partitionering med key inte funnen i tabellen" +ER_LIST_OF_FIELDS_ONLY_IN_HASH_ERROR + eng "List of fields is only allowed in KEY partitions" + ger "Eine Feldliste ist nur in KEY-Partitionen erlaubt" + swe "En lista av fält är endast tillÃ¥tet för KEY partitioner" +ER_INCONSISTENT_PARTITION_INFO_ERROR + eng "The partition info in the frm file is not consistent with what can be written into the frm file" + ger "Die Partitionierungsinformationen in der frm-Datei stimmen nicht mit dem überein, was in die frm-Datei geschrieben werden kann" + swe "Partitioneringsinformationen i frm-filen är inte konsistent med vad som kan skrivas i frm-filen" +ER_PARTITION_FUNC_NOT_ALLOWED_ERROR + eng "The %-.192s function returns the wrong type" + ger "Die %-.192s-Funktion gibt einen falschen Typ zurück" + swe "%-.192s-funktionen returnerar felaktig typ" +ER_PARTITIONS_MUST_BE_DEFINED_ERROR + eng "For %-.64s partitions each partition must be defined" + ger "Für %-.64s-Partitionen muss jede Partition definiert sein" + swe "För %-.64s partitionering sÃ¥ mÃ¥ste varje partition definieras" +ER_RANGE_NOT_INCREASING_ERROR + eng "VALUES LESS THAN value must be strictly increasing for each partition" + ger "Werte in VALUES LESS THAN müssen für jede Partition strikt aufsteigend sein" + swe "Värden i VALUES LESS THAN mÃ¥ste vara strikt växande för varje partition" +ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR + eng "VALUES value must be of same type as partition function" + ger "VALUES-Werte müssen vom selben Typ wie die Partitionierungsfunktion sein" + swe "Värden i VALUES mÃ¥ste vara av samma typ som partitioneringsfunktionen" +ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR + eng "Multiple definition of same constant in list partitioning" + ger "Mehrfachdefinition derselben Konstante bei Listen-Partitionierung" + swe "Multipel definition av samma konstant i list partitionering" +ER_PARTITION_ENTRY_ERROR + eng "Partitioning can not be used stand-alone in query" + ger "Partitionierung kann in einer Abfrage nicht alleinstehend benutzt werden" + swe "Partitioneringssyntax kan inte användas pÃ¥ egen hand i en SQL-frÃ¥ga" +ER_MIX_HANDLER_ERROR + eng "The mix of handlers in the partitions is not allowed in this version of MariaDB" + ger "Das Vermischen von Handlern in Partitionen ist in dieser Version von MariaDB nicht erlaubt" + swe "Denna mix av lagringsmotorer är inte tillÃ¥ten i denna version av MariaDB" +ER_PARTITION_NOT_DEFINED_ERROR + eng "For the partitioned engine it is necessary to define all %-.64s" + ger "Für die partitionierte Engine müssen alle %-.64s definiert sein" + swe "För partitioneringsmotorn sÃ¥ är det nödvändigt att definiera alla %-.64s" +ER_TOO_MANY_PARTITIONS_ERROR + eng "Too many partitions (including subpartitions) were defined" + ger "Es wurden zu vielen Partitionen (einschließlich Unterpartitionen) definiert" + swe "För mÃ¥nga partitioner (inkluderande subpartitioner) definierades" +ER_SUBPARTITION_ERROR + eng "It is only possible to mix RANGE/LIST partitioning with HASH/KEY partitioning for subpartitioning" + ger "RANGE/LIST-Partitionierung kann bei Unterpartitionen nur zusammen mit HASH/KEY-Partitionierung verwendet werden" + swe "Det är endast möjligt att blanda RANGE/LIST partitionering med HASH/KEY partitionering för subpartitionering" +ER_CANT_CREATE_HANDLER_FILE + eng "Failed to create specific handler file" + ger "Erzeugen einer spezifischen Handler-Datei fehlgeschlagen" + swe "Misslyckades med att skapa specifik fil i lagringsmotor" +ER_BLOB_FIELD_IN_PART_FUNC_ERROR + eng "A BLOB field is not allowed in partition function" + ger "In der Partitionierungsfunktion sind BLOB-Spalten nicht erlaubt" + swe "Ett BLOB-fält är inte tillÃ¥tet i partitioneringsfunktioner" +ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF + eng "A %-.192s must include all columns in the table's partitioning function" +ER_NO_PARTS_ERROR + eng "Number of %-.64s = 0 is not an allowed value" + ger "Eine Anzahl von %-.64s = 0 ist kein erlaubter Wert" + swe "Antal %-.64s = 0 är inte ett tillÃ¥ten värde" +ER_PARTITION_MGMT_ON_NONPARTITIONED + eng "Partition management on a not partitioned table is not possible" + ger "Partitionsverwaltung einer nicht partitionierten Tabelle ist nicht möglich" + swe "Partitioneringskommando pÃ¥ en opartitionerad tabell är inte möjligt" +ER_FOREIGN_KEY_ON_PARTITIONED + eng "Foreign key clause is not yet supported in conjunction with partitioning" + ger "Fremdschlüssel-Beschränkungen sind im Zusammenhang mit Partitionierung nicht zulässig" + swe "Foreign key klausul är inte ännu implementerad i kombination med partitionering" +ER_DROP_PARTITION_NON_EXISTENT + eng "Error in list of partitions to %-.64s" + ger "Fehler in der Partitionsliste bei %-.64s" + swe "Fel i listan av partitioner att %-.64s" +ER_DROP_LAST_PARTITION + eng "Cannot remove all partitions, use DROP TABLE instead" + ger "Es lassen sich nicht sämtliche Partitionen löschen, benutzen Sie statt dessen DROP TABLE" + swe "Det är inte tillÃ¥tet att ta bort alla partitioner, använd DROP TABLE istället" +ER_COALESCE_ONLY_ON_HASH_PARTITION + eng "COALESCE PARTITION can only be used on HASH/KEY partitions" + ger "COALESCE PARTITION kann nur auf HASH- oder KEY-Partitionen benutzt werden" + swe "COALESCE PARTITION kan bara användas pÃ¥ HASH/KEY partitioner" +ER_REORG_HASH_ONLY_ON_SAME_NO + eng "REORGANIZE PARTITION can only be used to reorganize partitions not to change their numbers" + ger "REORGANIZE PARTITION kann nur zur Reorganisation von Partitionen verwendet werden, nicht, um ihre Nummern zu ändern" + swe "REORGANIZE PARTITION kan bara användas för att omorganisera partitioner, inte för att ändra deras antal" +ER_REORG_NO_PARAM_ERROR + eng "REORGANIZE PARTITION without parameters can only be used on auto-partitioned tables using HASH PARTITIONs" + ger "REORGANIZE PARTITION ohne Parameter kann nur für auto-partitionierte Tabellen verwendet werden, die HASH-Partitionierung benutzen" + swe "REORGANIZE PARTITION utan parametrar kan bara användas pÃ¥ auto-partitionerade tabeller som använder HASH partitionering" +ER_ONLY_ON_RANGE_LIST_PARTITION + eng "%-.64s PARTITION can only be used on RANGE/LIST partitions" + ger "%-.64s PARTITION kann nur für RANGE- oder LIST-Partitionen verwendet werden" + swe "%-.64s PARTITION kan bara användas pÃ¥ RANGE/LIST-partitioner" +ER_ADD_PARTITION_SUBPART_ERROR + eng "Trying to Add partition(s) with wrong number of subpartitions" + ger "Es wurde versucht, eine oder mehrere Partitionen mit der falschen Anzahl von Unterpartitionen hinzuzufügen" + swe "ADD PARTITION med fel antal subpartitioner" +ER_ADD_PARTITION_NO_NEW_PARTITION + eng "At least one partition must be added" + ger "Es muss zumindest eine Partition hinzugefügt werden" + swe "Ã…tminstone en partition mÃ¥ste läggas till vid ADD PARTITION" +ER_COALESCE_PARTITION_NO_PARTITION + eng "At least one partition must be coalesced" + ger "Zumindest eine Partition muss mit COALESCE PARTITION zusammengefügt werden" + swe "Ã…tminstone en partition mÃ¥ste slÃ¥s ihop vid COALESCE PARTITION" +ER_REORG_PARTITION_NOT_EXIST + eng "More partitions to reorganize than there are partitions" + ger "Es wurde versucht, mehr Partitionen als vorhanden zu reorganisieren" + swe "Fler partitioner att reorganisera än det finns partitioner" +ER_SAME_NAME_PARTITION + eng "Duplicate partition name %-.192s" + ger "Doppelter Partitionsname: %-.192s" + swe "Duplicerat partitionsnamn %-.192s" +ER_NO_BINLOG_ERROR + eng "It is not allowed to shut off binlog on this command" + ger "Es es nicht erlaubt, bei diesem Befehl binlog abzuschalten" + swe "Det är inte tillÃ¥tet att stänga av binlog pÃ¥ detta kommando" +ER_CONSECUTIVE_REORG_PARTITIONS + eng "When reorganizing a set of partitions they must be in consecutive order" + ger "Bei der Reorganisation eines Satzes von Partitionen müssen diese in geordneter Reihenfolge vorliegen" + swe "När ett antal partitioner omorganiseras mÃ¥ste de vara i konsekutiv ordning" +ER_REORG_OUTSIDE_RANGE + eng "Reorganize of range partitions cannot change total ranges except for last partition where it can extend the range" + ger "Die Reorganisation von RANGE-Partitionen kann Gesamtbereiche nicht verändern, mit Ausnahme der letzten Partition, die den Bereich erweitern kann" + swe "Reorganisering av rangepartitioner kan inte ändra den totala intervallet utom för den sista partitionen där intervallet kan utökas" +ER_PARTITION_FUNCTION_FAILURE + eng "Partition function not supported in this version for this handler" + ger "Partitionsfunktion in dieser Version dieses Handlers nicht unterstützt" +ER_PART_STATE_ERROR + eng "Partition state cannot be defined from CREATE/ALTER TABLE" + ger "Partitionszustand kann nicht von CREATE oder ALTER TABLE aus definiert werden" + swe "Partition state kan inte definieras frÃ¥n CREATE/ALTER TABLE" +ER_LIMITED_PART_RANGE + eng "The %-.64s handler only supports 32 bit integers in VALUES" + ger "Der Handler %-.64s unterstützt in VALUES nur 32-Bit-Integers" + swe "%-.64s stödjer endast 32 bitar i integers i VALUES" +ER_PLUGIN_IS_NOT_LOADED + eng "Plugin '%-.192s' is not loaded" + ger "Plugin '%-.192s' ist nicht geladen" +ER_WRONG_VALUE + eng "Incorrect %-.32s value: '%-.128s'" + ger "Falscher %-.32s-Wert: '%-.128s'" +ER_NO_PARTITION_FOR_GIVEN_VALUE + eng "Table has no partition for value %-.64s" + ger "Tabelle hat für den Wert %-.64s keine Partition" +ER_FILEGROUP_OPTION_ONLY_ONCE + eng "It is not allowed to specify %s more than once" + ger "%s darf nicht mehr als einmal angegegeben werden" +ER_CREATE_FILEGROUP_FAILED + eng "Failed to create %s" + ger "Anlegen von %s fehlgeschlagen" +ER_DROP_FILEGROUP_FAILED + eng "Failed to drop %s" + ger "Löschen von %s fehlgeschlagen" +ER_TABLESPACE_AUTO_EXTEND_ERROR + eng "The handler doesn't support autoextend of tablespaces" + ger "Der Handler unterstützt keine automatische Erweiterung (Autoextend) von Tablespaces" +ER_WRONG_SIZE_NUMBER + eng "A size parameter was incorrectly specified, either number or on the form 10M" + ger "Ein Größen-Parameter wurde unkorrekt angegeben, muss entweder Zahl sein oder im Format 10M" +ER_SIZE_OVERFLOW_ERROR + eng "The size number was correct but we don't allow the digit part to be more than 2 billion" + ger "Die Zahl für die Größe war korrekt, aber der Zahlanteil darf nicht größer als 2 Milliarden sein" +ER_ALTER_FILEGROUP_FAILED + eng "Failed to alter: %s" + ger "Änderung von %s fehlgeschlagen" +ER_BINLOG_ROW_LOGGING_FAILED + eng "Writing one row to the row-based binary log failed" + ger "Schreiben einer Zeilen ins zeilenbasierte Binärlog fehlgeschlagen" +ER_BINLOG_ROW_WRONG_TABLE_DEF + eng "Table definition on master and slave does not match: %s" + ger "Tabellendefinition auf Master und Slave stimmt nicht überein: %s" +ER_BINLOG_ROW_RBR_TO_SBR + eng "Slave running with --log-slave-updates must use row-based binary logging to be able to replicate row-based binary log events" + ger "Slave, die mit --log-slave-updates laufen, müssen zeilenbasiertes Loggen verwenden, um zeilenbasierte Binärlog-Ereignisse loggen zu können" +ER_EVENT_ALREADY_EXISTS + eng "Event '%-.192s' already exists" + ger "Event '%-.192s' existiert bereits" +ER_EVENT_STORE_FAILED + eng "Failed to store event %s. Error code %d from storage engine." + ger "Speichern von Event %s fehlgeschlagen. Fehlercode der Speicher-Engine: %d" +ER_EVENT_DOES_NOT_EXIST + eng "Unknown event '%-.192s'" + ger "Unbekanntes Event '%-.192s'" +ER_EVENT_CANT_ALTER + eng "Failed to alter event '%-.192s'" + ger "Ändern des Events '%-.192s' fehlgeschlagen" +ER_EVENT_DROP_FAILED + eng "Failed to drop %s" + ger "Löschen von %s fehlgeschlagen" +ER_EVENT_INTERVAL_NOT_POSITIVE_OR_TOO_BIG + eng "INTERVAL is either not positive or too big" + ger "INTERVAL ist entweder nicht positiv oder zu groß" +ER_EVENT_ENDS_BEFORE_STARTS + eng "ENDS is either invalid or before STARTS" + ger "ENDS ist entweder ungültig oder liegt vor STARTS" +ER_EVENT_EXEC_TIME_IN_THE_PAST + eng "Event execution time is in the past. Event has been disabled" + ger "Ausführungszeit des Events liegt in der Vergangenheit. Event wurde deaktiviert" +ER_EVENT_OPEN_TABLE_FAILED + eng "Failed to open mysql.event" + ger "Öffnen von mysql.event fehlgeschlagen" +ER_EVENT_NEITHER_M_EXPR_NOR_M_AT + eng "No datetime expression provided" + ger "Kein DATETIME-Ausdruck angegeben" +ER_COL_COUNT_DOESNT_MATCH_CORRUPTED + eng "Column count of mysql.%s is wrong. Expected %d, found %d. The table is probably corrupted" + ger "Spaltenanzahl von mysql.%s falsch. %d erwartet, aber %d gefunden. Tabelle ist wahrscheinlich beschädigt" +ER_CANNOT_LOAD_FROM_TABLE + eng "Cannot load from mysql.%s. The table is probably corrupted" + ger "Kann mysql.%s nicht einlesen. Tabelle ist wahrscheinlich beschädigt" +ER_EVENT_CANNOT_DELETE + eng "Failed to delete the event from mysql.event" + ger "Löschen des Events aus mysql.event fehlgeschlagen" +ER_EVENT_COMPILE_ERROR + eng "Error during compilation of event's body" + ger "Fehler beim Kompilieren des Event-Bodys" +ER_EVENT_SAME_NAME + eng "Same old and new event name" + ger "Alter und neuer Event-Name sind gleich" +ER_EVENT_DATA_TOO_LONG + eng "Data for column '%s' too long" + ger "Daten der Spalte '%s' zu lang" +ER_DROP_INDEX_FK + eng "Cannot drop index '%-.192s': needed in a foreign key constraint" + ger "Kann Index '%-.192s' nicht löschen: wird für eine Fremdschlüsselbeschränkung benötigt" +# When using this error message, use the ER_WARN_DEPRECATED_SYNTAX error +# code. +ER_WARN_DEPRECATED_SYNTAX_WITH_VER + eng "The syntax '%s' is deprecated and will be removed in MariaDB %s. Please use %s instead" + ger "Die Syntax '%s' ist veraltet und wird in MariaDB %s entfernt. Bitte benutzen Sie statt dessen %s" +ER_CANT_WRITE_LOCK_LOG_TABLE + eng "You can't write-lock a log table. Only read access is possible" + ger "Eine Log-Tabelle kann nicht schreibgesperrt werden. Es ist ohnehin nur Lesezugriff möglich" +ER_CANT_LOCK_LOG_TABLE + eng "You can't use locks with log tables." + ger "Log-Tabellen können nicht gesperrt werden." +ER_FOREIGN_DUPLICATE_KEY 23000 S1009 + eng "Upholding foreign key constraints for table '%.192s', entry '%-.192s', key %d would lead to a duplicate entry" + ger "Aufrechterhalten der Fremdschlüssel-Beschränkungen für Tabelle '%.192s', Eintrag '%-.192s', Schlüssel %d würde zu einem doppelten Eintrag führen" +ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE + eng "Column count of mysql.%s is wrong. Expected %d, found %d. Created with MariaDB %d, now running %d. Please use mysql_upgrade to fix this error." + ger "Spaltenanzahl von mysql.%s falsch. %d erwartet, aber %d erhalten. Erzeugt mit MariaDB %d, jetzt unter %d. Bitte benutzen Sie mysql_upgrade, um den Fehler zu beheben" +ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR + eng "Cannot switch out of the row-based binary log format when the session has open temporary tables" + ger "Kann nicht aus dem zeilenbasierten Binärlog-Format herauswechseln, wenn die Sitzung offene temporäre Tabellen hat" +ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT + eng "Cannot change the binary logging format inside a stored function or trigger" + ger "Das Binärlog-Format kann innerhalb einer gespeicherten Funktion oder eines Triggers nicht geändert werden" +ER_NDB_CANT_SWITCH_BINLOG_FORMAT + eng "The NDB cluster engine does not support changing the binlog format on the fly yet" + ger "Die Speicher-Engine NDB Cluster unterstützt das Ändern des Binärlog-Formats zur Laufzeit noch nicht" +ER_PARTITION_NO_TEMPORARY + eng "Cannot create temporary table with partitions" + ger "Anlegen temporärer Tabellen mit Partitionen nicht möglich" +ER_PARTITION_CONST_DOMAIN_ERROR + eng "Partition constant is out of partition function domain" + ger "Partitionskonstante liegt außerhalb der Partitionsfunktionsdomäne" + swe "Partitionskonstanten är utanför partitioneringsfunktionens domän" +ER_PARTITION_FUNCTION_IS_NOT_ALLOWED + eng "This partition function is not allowed" + ger "Diese Partitionierungsfunktion ist nicht erlaubt" + swe "Denna partitioneringsfunktion är inte tillÃ¥ten" +ER_DDL_LOG_ERROR + eng "Error in DDL log" + ger "Fehler im DDL-Log" +ER_NULL_IN_VALUES_LESS_THAN + eng "Not allowed to use NULL value in VALUES LESS THAN" + ger "In VALUES LESS THAN dürfen keine NULL-Werte verwendet werden" + swe "Det är inte tillÃ¥tet att använda NULL-värden i VALUES LESS THAN" +ER_WRONG_PARTITION_NAME + eng "Incorrect partition name" + ger "Falscher Partitionsname" + swe "Felaktigt partitionsnamn" +ER_CANT_CHANGE_TX_ISOLATION 25001 + eng "Transaction isolation level can't be changed while a transaction is in progress" + ger "Transaktionsisolationsebene kann während einer laufenden Transaktion nicht geändert werden" +ER_DUP_ENTRY_AUTOINCREMENT_CASE + eng "ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry '%-.192s' for key '%-.192s'" + ger "ALTER TABLE führt zur Neusequenzierung von auto_increment, wodurch der doppelte Eintrag '%-.192s' für Schlüssel '%-.192s' auftritt" +ER_EVENT_MODIFY_QUEUE_ERROR + eng "Internal scheduler error %d" + ger "Interner Scheduler-Fehler %d" +ER_EVENT_SET_VAR_ERROR + eng "Error during starting/stopping of the scheduler. Error code %u" + ger "Fehler während des Startens oder Anhalten des Schedulers. Fehlercode %u" +ER_PARTITION_MERGE_ERROR + eng "Engine cannot be used in partitioned tables" + ger "Engine kann in partitionierten Tabellen nicht verwendet werden" + swe "Engine inte användas i en partitionerad tabell" +ER_CANT_ACTIVATE_LOG + eng "Cannot activate '%-.64s' log" + ger "Kann Logdatei '%-.64s' nicht aktivieren" +ER_RBR_NOT_AVAILABLE + eng "The server was not built with row-based replication" + ger "Der Server wurde nicht mit zeilenbasierter Replikation gebaut" +ER_BASE64_DECODE_ERROR + eng "Decoding of base64 string failed" + swe "Avkodning av base64 sträng misslyckades" + ger "Der Server hat keine zeilenbasierte Replikation" +ER_EVENT_RECURSION_FORBIDDEN + eng "Recursion of EVENT DDL statements is forbidden when body is present" + ger "Rekursivität von EVENT-DDL-Anweisungen ist unzulässig wenn ein Hauptteil (Body) existiert" +ER_EVENTS_DB_ERROR + eng "Cannot proceed because system tables used by Event Scheduler were found damaged at server start" + ger "Kann nicht weitermachen, weil die Tabellen, die von Events verwendet werden, beim Serverstart als beschädigt markiert wurden" +ER_ONLY_INTEGERS_ALLOWED + eng "Only integers allowed as number here" + ger "An dieser Stelle sind nur Ganzzahlen zulässig" +ER_UNSUPORTED_LOG_ENGINE + eng "This storage engine cannot be used for log tables" + ger "Diese Speicher-Engine kann für Logtabellen nicht verwendet werden" +ER_BAD_LOG_STATEMENT + eng "You cannot '%s' a log table if logging is enabled" + ger "Sie können eine Logtabelle nicht '%s', wenn Loggen angeschaltet ist" +ER_CANT_RENAME_LOG_TABLE + eng "Cannot rename '%s'. When logging enabled, rename to/from log table must rename two tables: the log table to an archive table and another table back to '%s'" + ger "Kann '%s' nicht umbenennen. Wenn Loggen angeschaltet ist, müssen zwei Tabellen umbenannt werden: die Logtabelle zu einer Archivtabelle, und eine weitere Tabelle zu '%s'" +ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT 42000 + eng "Incorrect parameter count in the call to native function '%-.192s'" + ger "Falsche Anzahl von Parametern beim Aufruf der nativen Funktion '%-.192s'" +ER_WRONG_PARAMETERS_TO_NATIVE_FCT 42000 + eng "Incorrect parameters in the call to native function '%-.192s'" + ger "Falscher Parameter beim Aufruf der nativen Funktion '%-.192s'" +ER_WRONG_PARAMETERS_TO_STORED_FCT 42000 + eng "Incorrect parameters in the call to stored function '%-.192s'" + ger "Falsche Parameter beim Aufruf der gespeicherten Funktion '%-.192s'" +ER_NATIVE_FCT_NAME_COLLISION + eng "This function '%-.192s' has the same name as a native function" + ger "Die Funktion '%-.192s' hat denselben Namen wie eine native Funktion" +# When using this error message, use the ER_DUP_ENTRY error code. See, for +# example, code in handler.cc. +ER_DUP_ENTRY_WITH_KEY_NAME 23000 S1009 + cze "Zvojen-Bý klÃ­Ä '%-.64s' (Äíslo klíÄe '%-.192s')" + dan "Ens værdier '%-.64s' for indeks '%-.192s'" + nla "Dubbele ingang '%-.64s' voor zoeksleutel '%-.192s'" + eng "Duplicate entry '%-.64s' for key '%-.192s'" + jps "'%-.64s' 㯠key '%-.192s' ã«ãŠã„ã¦é‡è¤‡ã—ã¦ã„ã¾ã™", + est "Kattuv väärtus '%-.64s' võtmele '%-.192s'" + fre "Duplicata du champ '%-.64s' pour la clef '%-.192s'" + ger "Doppelter Eintrag '%-.64s' für Schlüssel '%-.192s'" + greek "Διπλή εγγÏαφή '%-.64s' για το κλειδί '%-.192s'" + hun "Duplikalt bejegyzes '%-.64s' a '%-.192s' kulcs szerint." + ita "Valore duplicato '%-.64s' per la chiave '%-.192s'" + jpn "'%-.64s' 㯠key '%-.192s' ã«ãŠã„ã¦é‡è¤‡ã—ã¦ã„ã¾ã™" + kor "ì¤‘ë³µëœ ìž…ë ¥ ê°’ '%-.64s': key '%-.192s'" + nor "Like verdier '%-.64s' for nøkkel '%-.192s'" + norwegian-ny "Like verdiar '%-.64s' for nykkel '%-.192s'" + pol "Powtórzone wyst?pienie '%-.64s' dla klucza '%-.192s'" + por "Entrada '%-.64s' duplicada para a chave '%-.192s'" + rum "Cimpul '%-.64s' e duplicat pentru cheia '%-.192s'" + rus "ДублирующаÑÑÑ Ð·Ð°Ð¿Ð¸ÑÑŒ '%-.64s' по ключу '%-.192s'" + serbian "Dupliran unos '%-.64s' za kljuÄ '%-.192s'" + slo "Opakovaný kÄ¾ÃºÄ '%-.64s' (Äíslo kľúÄa '%-.192s')" + spa "Entrada duplicada '%-.64s' para la clave '%-.192s'" + swe "Dubbel nyckel '%-.64s' för nyckel '%-.192s'" + ukr "Дублюючий Ð·Ð°Ð¿Ð¸Ñ '%-.64s' Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡Ð° '%-.192s'" +ER_BINLOG_PURGE_EMFILE + eng "Too many files opened, please execute the command again" + ger "Zu viele offene Dateien, bitte führen Sie den Befehl noch einmal aus" +ER_EVENT_CANNOT_CREATE_IN_THE_PAST + eng "Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was dropped immediately after creation." + ger "Ausführungszeit des Events liegt in der Vergangenheit, und es wurde ON COMPLETION NOT PRESERVE gesetzt. Das Event wurde unmittelbar nach Erzeugung gelöscht." +ER_EVENT_CANNOT_ALTER_IN_THE_PAST + eng "Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was dropped immediately after creation." + ger "Ausführungszeit des Events liegt in der Vergangenheit, und es wurde ON COMPLETION NOT PRESERVE gesetzt. Das Event wurde unmittelbar nach Erzeugung gelöscht." +ER_SLAVE_INCIDENT + eng "The incident %s occured on the master. Message: %-.64s" + ger "Der Vorfall %s passierte auf dem Master. Meldung: %-.64s" +ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT + eng "Table has no partition for some existing values" + ger "Tabelle hat für einige bestehende Werte keine Partition" +ER_BINLOG_UNSAFE_STATEMENT + eng "Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. %s" + swe "Detta är inte säkert att logga i statement-format, för BINLOG_FORMAT = STATEMENT. %s" + ger "Unsichere Anweisung ins Binärlog geschrieben, weil Anweisungsformat BINLOG_FORMAT = STATEMENT. %s" +ER_SLAVE_FATAL_ERROR + eng "Fatal error: %s" + ger "Fataler Fehler: %s" +ER_SLAVE_RELAY_LOG_READ_FAILURE + eng "Relay log read failure: %s" + ger "Relaylog-Lesefehler: %s" +ER_SLAVE_RELAY_LOG_WRITE_FAILURE + eng "Relay log write failure: %s" + ger "Relaylog-Schreibfehler: %s" +ER_SLAVE_CREATE_EVENT_FAILURE + eng "Failed to create %s" + ger "Erzeugen von %s fehlgeschlagen" +ER_SLAVE_MASTER_COM_FAILURE + eng "Master command %s failed: %s" + ger "Master-Befehl %s fehlgeschlagen: %s" +ER_BINLOG_LOGGING_IMPOSSIBLE + eng "Binary logging not possible. Message: %s" + ger "Binärlogging nicht möglich. Meldung: %s" +ER_VIEW_NO_CREATION_CTX + eng "View `%-.64s`.`%-.64s` has no creation context" + ger "View `%-.64s`.`%-.64s` hat keinen Erzeugungskontext" +ER_VIEW_INVALID_CREATION_CTX + eng "Creation context of view `%-.64s`.`%-.64s' is invalid" + ger "Erzeugungskontext des Views`%-.64s`.`%-.64s' ist ungültig" +ER_SR_INVALID_CREATION_CTX + eng "Creation context of stored routine `%-.64s`.`%-.64s` is invalid" + ger "Erzeugungskontext der gespeicherten Routine`%-.64s`.`%-.64s` ist ungültig" +ER_TRG_CORRUPTED_FILE + eng "Corrupted TRG file for table `%-.64s`.`%-.64s`" + ger "Beschädigte TRG-Datei für Tabelle `%-.64s`.`%-.64s`" +ER_TRG_NO_CREATION_CTX + eng "Triggers for table `%-.64s`.`%-.64s` have no creation context" + ger "Trigger für Tabelle `%-.64s`.`%-.64s` haben keinen Erzeugungskontext" +ER_TRG_INVALID_CREATION_CTX + eng "Trigger creation context of table `%-.64s`.`%-.64s` is invalid" + ger "Trigger-Erzeugungskontext der Tabelle `%-.64s`.`%-.64s` ist ungültig" +ER_EVENT_INVALID_CREATION_CTX + eng "Creation context of event `%-.64s`.`%-.64s` is invalid" + ger "Erzeugungskontext des Events `%-.64s`.`%-.64s` ist ungültig" +ER_TRG_CANT_OPEN_TABLE + eng "Cannot open table for trigger `%-.64s`.`%-.64s`" + ger "Kann Tabelle für den Trigger `%-.64s`.`%-.64s` nicht öffnen" +ER_CANT_CREATE_SROUTINE + eng "Cannot create stored routine `%-.64s`. Check warnings" + ger "Kann gespeicherte Routine `%-.64s` nicht erzeugen. Beachten Sie die Warnungen" +ER_NEVER_USED + eng "Ambiguous slave modes combination. %s" + ger "Mehrdeutige Kombination von Slave-Modi. %s" +ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT + eng "The BINLOG statement of type `%s` was not preceded by a format description BINLOG statement." + ger "Der BINLOG-Anweisung vom Typ `%s` ging keine BINLOG-Anweisung zur Formatbeschreibung voran." +ER_SLAVE_CORRUPT_EVENT + eng "Corrupted replication event was detected" + ger "Beschädigtes Replikationsereignis entdeckt" +ER_LOAD_DATA_INVALID_COLUMN + eng "Invalid column reference (%-.64s) in LOAD DATA" + ger "Ungültige Spaltenreferenz (%-.64s) bei LOAD DATA" +ER_LOG_PURGE_NO_FILE + eng "Being purged log %s was not found" + ger "Zu bereinigende Logdatei %s wurde nicht gefunden" +ER_XA_RBTIMEOUT XA106 + eng "XA_RBTIMEOUT: Transaction branch was rolled back: took too long" + ger "XA_RBTIMEOUT: Transaktionszweig wurde zurückgerollt: Zeitüberschreitung" +ER_XA_RBDEADLOCK XA102 + eng "XA_RBDEADLOCK: Transaction branch was rolled back: deadlock was detected" + ger "XA_RBDEADLOCK: Transaktionszweig wurde zurückgerollt: Deadlock entdeckt" +ER_NEED_REPREPARE + eng "Prepared statement needs to be re-prepared" + ger "Vorbereitete Anweisungen müssen noch einmal vorbereitet werden" +ER_DELAYED_NOT_SUPPORTED + eng "DELAYED option not supported for table '%-.192s'" + ger "Die DELAYED-Option wird für Tabelle '%-.192s' nicht unterstützt" +WARN_NO_MASTER_INFO + eng "The master info structure does not exist" + ger "Die Master-Info-Struktur existiert nicht" +WARN_OPTION_IGNORED + eng "<%-.64s> option ignored" + ger "Option <%-.64s> ignoriert" +ER_PLUGIN_DELETE_BUILTIN + eng "Built-in plugins cannot be deleted" + ger "Eingebaute Plugins können nicht gelöscht werden" +WARN_PLUGIN_BUSY + eng "Plugin is busy and will be uninstalled on shutdown" + ger "Plugin wird verwendet und wird erst beim Herunterfahren deinstalliert" +ER_VARIABLE_IS_READONLY + eng "%s variable '%s' is read-only. Use SET %s to assign the value" + ger "%s Variable '%s' ist nur lesbar. Benutzen Sie SET %s, um einen Wert zuzuweisen" +ER_WARN_ENGINE_TRANSACTION_ROLLBACK + eng "Storage engine %s does not support rollback for this statement. Transaction rolled back and must be restarted" + ger "Speicher-Engine %s unterstützt für diese Anweisung kein Rollback. Transaktion wurde zurückgerollt und muss neu gestartet werden" +ER_SLAVE_HEARTBEAT_FAILURE + eng "Unexpected master's heartbeat data: %s" + ger "Unerwartete Daten vom Heartbeat des Masters: %s" +ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE + eng "The requested value for the heartbeat period is either negative or exceeds the maximum allowed (%s seconds)." +ER_NDB_REPLICATION_SCHEMA_ERROR + eng "Bad schema for mysql.ndb_replication table. Message: %-.64s" + ger "Fehlerhaftes Schema für mysql.ndb_replication table. Meldung: %-.64s" +ER_CONFLICT_FN_PARSE_ERROR + eng "Error in parsing conflict function. Message: %-.64s" + ger "Fehler beim Parsen einer Konflikt-Funktion. Meldung: %-.64s" +ER_EXCEPTIONS_WRITE_ERROR + eng "Write to exceptions table failed. Message: %-.128s"" + ger "Schreiben in Ausnahme-Tabelle fehlgeschlagen. Meldung: %-.128s"" +ER_TOO_LONG_TABLE_COMMENT + eng "Comment for table '%-.64s' is too long (max = %lu)" + por "Comentário para a tabela '%-.64s' é longo demais (max = %lu)" + ger "Kommentar für Tabelle '%-.64s' ist zu lang (max = %lu)" +ER_TOO_LONG_FIELD_COMMENT + eng "Comment for field '%-.64s' is too long (max = %lu)" + por "Comentário para o campo '%-.64s' é longo demais (max = %lu)" + ger "Kommentar für Feld '%-.64s' ist zu lang (max = %lu)" +ER_FUNC_INEXISTENT_NAME_COLLISION 42000 + eng "FUNCTION %s does not exist. Check the 'Function Name Parsing and Resolution' section in the Reference Manual" + ger "FUNCTION %s existiert nicht. Erläuterungen im Abschnitt 'Function Name Parsing and Resolution' im Referenzhandbuch" +# When updating these, please update EXPLAIN_FILENAME_MAX_EXTRA_LENGTH in +# sql_table.h with the new maximal additional length for explain_filename. +ER_DATABASE_NAME + eng "Database" + swe "Databas" + ger "Datenbank" +ER_TABLE_NAME + eng "Table" + swe "Tabell" + ger "Tabelle" +ER_PARTITION_NAME + eng "Partition" + swe "Partition" + ger "Partition" +ER_SUBPARTITION_NAME + eng "Subpartition" + swe "Subpartition" + ger "Unterpartition" +ER_TEMPORARY_NAME + eng "Temporary" + swe "Temporär" + ger "Temporär" +ER_RENAMED_NAME + eng "Renamed" + swe "Namnändrad" + ger "Umbenannt" +ER_TOO_MANY_CONCURRENT_TRXS + eng "Too many active concurrent transactions" + ger "Zu viele aktive simultane Transaktionen" +WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED + eng "Non-ASCII separator arguments are not fully supported" + ger "Nicht-ASCII-Trennargumente werden nicht vollständig unterstützt" +ER_DEBUG_SYNC_TIMEOUT + eng "debug sync point wait timed out" + ger "Debug Sync Point Wartezeit überschritten" +ER_DEBUG_SYNC_HIT_LIMIT + eng "debug sync point hit limit reached" + ger "Debug Sync Point Hit Limit erreicht" +ER_DUP_SIGNAL_SET 42000 + eng "Duplicate condition information item '%s'" + ger "Informationselement '%s' für Duplikatbedingung" +# Note that the SQLSTATE is not 01000, it is provided by SIGNAL/RESIGNAL +ER_SIGNAL_WARN 01000 + eng "Unhandled user-defined warning condition" + ger "Unbehandelte benutzerdefinierte Warnbedingung" +# Note that the SQLSTATE is not 02000, it is provided by SIGNAL/RESIGNAL +ER_SIGNAL_NOT_FOUND 02000 + eng "Unhandled user-defined not found condition" + ger "Unbehandelte benutzerdefinierte Nicht-gefunden-Bedingung" +# Note that the SQLSTATE is not HY000, it is provided by SIGNAL/RESIGNAL +ER_SIGNAL_EXCEPTION HY000 + eng "Unhandled user-defined exception condition" + ger "Unbehandelte benutzerdefinierte Ausnahmebedingung" +ER_RESIGNAL_WITHOUT_ACTIVE_HANDLER 0K000 + eng "RESIGNAL when handler not active" + ger "RESIGNAL bei nicht aktivem Handler" +ER_SIGNAL_BAD_CONDITION_TYPE + eng "SIGNAL/RESIGNAL can only use a CONDITION defined with SQLSTATE" + ger "SIGNAL/RESIGNAL kann nur mit einer Bedingung (CONDITION) benutzt werden, die bei SQLSTATE definiert wurde" +WARN_COND_ITEM_TRUNCATED + eng "Data truncated for condition item '%s'" + ger "Daten gekürzt für Bedingungselement '%s'" +ER_COND_ITEM_TOO_LONG + eng "Data too long for condition item '%s'" + ger "Daten zu lang für Bedingungselement '%s'" +ER_UNKNOWN_LOCALE + eng "Unknown locale: '%-.64s'" + ger "Unbekannte Locale: '%-.64s'" +ER_SLAVE_IGNORE_SERVER_IDS + eng "The requested server id %d clashes with the slave startup option --replicate-same-server-id" + ger "Die angeforderte Server-ID %d steht im Konflikt mit der Startoption --replicate-same-server-id für den Slave" +ER_QUERY_CACHE_DISABLED + eng "Query cache is disabled; set query_cache_type to ON or DEMAND to enable it" +ER_SAME_NAME_PARTITION_FIELD + eng "Duplicate partition field name '%-.192s'" + ger "Partitionsfeld '%-.192s' ist ein Duplikat" +ER_PARTITION_COLUMN_LIST_ERROR + eng "Inconsistency in usage of column lists for partitioning" + ger "Inkonsistenz bei der Benutzung von Spaltenlisten für Partitionierung" +ER_WRONG_TYPE_COLUMN_VALUE_ERROR + eng "Partition column values of incorrect type" + ger "Partitionsspaltenwerte sind vom falschen Typ" +ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR + eng "Too many fields in '%-.192s'" + ger "Zu viele Felder in '%-.192s'" +ER_MAXVALUE_IN_VALUES_IN + eng "Cannot use MAXVALUE as value in VALUES IN" + ger "MAXVALUE kann nicht als Wert in VALUES IN verwendet werden" +ER_TOO_MANY_VALUES_ERROR + eng "Cannot have more than one value for this type of %-.64s partitioning" + ger "Für den Partionierungstyp %-.64s darf es nicht mehr als einen Wert geben" +ER_ROW_SINGLE_PARTITION_FIELD_ERROR + eng "Row expressions in VALUES IN only allowed for multi-field column partitioning" + ger "Zeilenausdrücke in VALUES IN sind nur für Mehrfeld-Spaltenpartionierung erlaubt" +ER_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD + eng "Field '%-.192s' is of a not allowed type for this type of partitioning" + ger "Feld '%-.192s' ist für diese Art von Partitionierung von einem nicht zulässigen Typ" +ER_PARTITION_FIELDS_TOO_LONG + eng "The total length of the partitioning fields is too large" + ger "Die Gesamtlänge der Partitionsfelder ist zu groß" +ER_BINLOG_ROW_ENGINE_AND_STMT_ENGINE + eng "Cannot execute statement: impossible to write to binary log since both row-incapable engines and statement-incapable engines are involved." +ER_BINLOG_ROW_MODE_AND_STMT_ENGINE + eng "Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = ROW and at least one table uses a storage engine limited to statement-based logging." +ER_BINLOG_UNSAFE_AND_STMT_ENGINE + eng "Cannot execute statement: impossible to write to binary log since statement is unsafe, storage engine is limited to statement-based logging, and BINLOG_FORMAT = MIXED. %s" +ER_BINLOG_ROW_INJECTION_AND_STMT_ENGINE + eng "Cannot execute statement: impossible to write to binary log since statement is in row format and at least one table uses a storage engine limited to statement-based logging." +ER_BINLOG_STMT_MODE_AND_ROW_ENGINE + eng "Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging.%s" +ER_BINLOG_ROW_INJECTION_AND_STMT_MODE + eng "Cannot execute statement: impossible to write to binary log since statement is in row format and BINLOG_FORMAT = STATEMENT." +ER_BINLOG_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE + eng "Cannot execute statement: impossible to write to binary log since more than one engine is involved and at least one engine is self-logging." + +ER_BINLOG_UNSAFE_LIMIT + eng "The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted." +ER_BINLOG_UNSAFE_INSERT_DELAYED + eng "The statement is unsafe because it uses INSERT DELAYED. This is unsafe because the times when rows are inserted cannot be predicted." +ER_BINLOG_UNSAFE_SYSTEM_TABLE + eng "The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves." +ER_BINLOG_UNSAFE_AUTOINC_COLUMNS + eng "Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly." +ER_BINLOG_UNSAFE_UDF + eng "Statement is unsafe because it uses a UDF which may not return the same value on the slave." +ER_BINLOG_UNSAFE_SYSTEM_VARIABLE + eng "Statement is unsafe because it uses a system variable that may have a different value on the slave." +ER_BINLOG_UNSAFE_SYSTEM_FUNCTION + eng "Statement is unsafe because it uses a system function that may return a different value on the slave." +ER_BINLOG_UNSAFE_NONTRANS_AFTER_TRANS + eng "Statement is unsafe because it accesses a non-transactional table after accessing a transactional table within the same transaction." + +ER_MESSAGE_AND_STATEMENT + eng "%s Statement: %s" + +ER_SLAVE_CONVERSION_FAILED + eng "Column %d of table '%-.192s.%-.192s' cannot be converted from type '%-.32s' to type '%-.32s'" +ER_SLAVE_CANT_CREATE_CONVERSION + eng "Can't create conversion table for table '%-.192s.%-.192s'" +ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_FORMAT + eng "Cannot modify @@session.binlog_format inside a transaction" +ER_PATH_LENGTH + eng "The path specified for %.64s is too long." +ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT + eng "'%s' is deprecated and will be removed in a future release." + ger "'%s' ist veraltet und wird in einer zukünftigen Version entfernt werden." + +ER_WRONG_NATIVE_TABLE_STRUCTURE + eng "Native table '%-.64s'.'%-.64s' has the wrong structure" + +ER_WRONG_PERFSCHEMA_USAGE + eng "Invalid performance_schema usage." +ER_WARN_I_S_SKIPPED_TABLE + eng "Table '%s'.'%s' was skipped since its definition is being modified by concurrent DDL statement" + +ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_DIRECT + eng "Cannot modify @@session.binlog_direct_non_transactional_updates inside a transaction" +ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_DIRECT + eng "Cannot change the binlog direct flag inside a stored function or trigger" +ER_SPATIAL_MUST_HAVE_GEOM_COL 42000 + eng "A SPATIAL index may only contain a geometrical type column" + ger "Ein raumbezogener Index (SPATIAL) darf nur Spalten geometrischen Typs enthalten" +ER_TOO_LONG_INDEX_COMMENT + eng "Comment for index '%-.64s' is too long (max = %lu)" + +ER_LOCK_ABORTED + eng "Wait on a lock was aborted due to a pending exclusive lock" + +ER_DATA_OUT_OF_RANGE 22003 + eng "%s value is out of range in '%s'" + +ER_WRONG_SPVAR_TYPE_IN_LIMIT + eng "A variable of a non-integer based type in LIMIT clause" + +ER_BINLOG_UNSAFE_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE + eng "Mixing self-logging and non-self-logging engines in a statement is unsafe." + +ER_BINLOG_UNSAFE_MIXED_STATEMENT + eng "Statement accesses nontransactional table as well as transactional or temporary table, and writes to any of them." + +ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_SQL_LOG_BIN + eng "Cannot modify @@session.sql_log_bin inside a transaction" + +ER_STORED_FUNCTION_PREVENTS_SWITCH_SQL_LOG_BIN + eng "Cannot change the sql_log_bin inside a stored function or trigger" + +ER_FAILED_READ_FROM_PAR_FILE + eng "Failed to read from the .par file" + swe "Misslyckades läsa frÃ¥n .par filen" + +ER_VALUES_IS_NOT_INT_TYPE_ERROR + eng "VALUES value for partition '%-.64s' must have type INT" + swe "Värden i VALUES för partition '%-.64s' mÃ¥ste ha typen INT" + +ER_ACCESS_DENIED_NO_PASSWORD_ERROR 28000 + cze "P-Břístup pro uživatele '%s'@'%s'" + dan "Adgang nægtet bruger: '%s'@'%s'" + nla "Toegang geweigerd voor gebruiker: '%s'@'%s'" + eng "Access denied for user '%s'@'%s'" + est "Ligipääs keelatud kasutajale '%s'@'%s'" + fre "Accès refusé pour l'utilisateur: '%s'@'%s'" + ger "Benutzer '%s'@'%s' hat keine Zugriffsberechtigung" + greek "Δεν επιτέÏεται η Ï€Ïόσβαση στο χÏήστη: '%s'@'%s'" + hun "A(z) '%s'@'%s' felhasznalo szamara tiltott eleres." + ita "Accesso non consentito per l'utente: '%s'@'%s'" + kor "'%s'@'%s' 사용ìžëŠ” ì ‘ê·¼ì´ ê±°ë¶€ ë˜ì—ˆìŠµë‹ˆë‹¤." + nor "Tilgang nektet for bruker: '%s'@'%s'" + norwegian-ny "Tilgang ikke tillate for brukar: '%s'@'%s'" + por "Acesso negado para o usuário '%s'@'%s'" + rum "Acces interzis pentru utilizatorul: '%s'@'%s'" + rus "ДоÑтуп закрыт Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ '%s'@'%s'" + serbian "Pristup je zabranjen korisniku '%s'@'%s'" + slo "Zakázaný prístup pre užívateľa: '%s'@'%s'" + spa "Acceso negado para usuario: '%s'@'%s'" + swe "Användare '%s'@'%s' är ej berättigad att logga in" + ukr "ДоÑтуп заборонено Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувача: '%s'@'%s'" + +ER_SET_PASSWORD_AUTH_PLUGIN + eng "SET PASSWORD has no significance for users authenticating via plugins" + +ER_GRANT_PLUGIN_USER_EXISTS + eng "GRANT with IDENTIFIED WITH is illegal because the user %-.*s already exists" + +ER_TRUNCATE_ILLEGAL_FK 42000 + eng "Cannot truncate a table referenced in a foreign key constraint (%.192s)" + +ER_PLUGIN_IS_PERMANENT + eng "Plugin '%s' is force_plus_permanent and can not be unloaded" + +ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN + eng "The requested value for the heartbeat period is less than 1 millisecond. The value is reset to 0, meaning that heartbeating will effectively be disabled." + +ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX + eng "The requested value for the heartbeat period exceeds the value of `slave_net_timeout' seconds. A sensible value for the period should be less than the timeout." + +ER_STMT_CACHE_FULL + eng "Multi-row statements required more than 'max_binlog_stmt_cache_size' bytes of storage; increase this mysqld variable and try again" + +ER_MULTI_UPDATE_KEY_CONFLICT + eng "Primary key/partition key update is not allowed since the table is updated both as '%-.192s' and '%-.192s'." + +# When translating this error message make sure to include "ALTER TABLE" in the +# message as mysqlcheck parses the error message looking for ALTER TABLE. +ER_TABLE_NEEDS_REBUILD + eng "Table rebuild required. Please do \"ALTER TABLE `%-.32s` FORCE\" or dump/reload to fix it!" + +WARN_OPTION_BELOW_LIMIT + eng "The value of '%s' should be no less than the value of '%s'" + +ER_INDEX_COLUMN_TOO_LONG + eng "Index column size too large. The maximum column size is %lu bytes." + +ER_ERROR_IN_TRIGGER_BODY + eng "Trigger '%-.64s' has an error in its body: '%-.256s'" + +ER_ERROR_IN_UNKNOWN_TRIGGER_BODY + eng "Unknown trigger has an error in its body: '%-.256s'" + +ER_INDEX_CORRUPT + eng "Index %s is corrupted" + +ER_UNDO_RECORD_TOO_BIG + eng "Undo log record is too big." + +ER_BINLOG_UNSAFE_INSERT_IGNORE_SELECT + eng "INSERT IGNORE... SELECT is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are ignored. This order cannot be predicted and may differ on master and the slave." + +ER_BINLOG_UNSAFE_INSERT_SELECT_UPDATE + eng "INSERT... SELECT... ON DUPLICATE KEY UPDATE is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are updated. This order cannot be predicted and may differ on master and the slave." + +ER_BINLOG_UNSAFE_REPLACE_SELECT + eng "REPLACE... SELECT is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are replaced. This order cannot be predicted and may differ on master and the slave." + +ER_BINLOG_UNSAFE_CREATE_IGNORE_SELECT + eng "CREATE... IGNORE SELECT is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are ignored. This order cannot be predicted and may differ on master and the slave." + +ER_BINLOG_UNSAFE_CREATE_REPLACE_SELECT + eng "CREATE... REPLACE SELECT is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are replaced. This order cannot be predicted and may differ on master and the slave." + +ER_BINLOG_UNSAFE_UPDATE_IGNORE + eng "UPDATE IGNORE is unsafe because the order in which rows are updated determines which (if any) rows are ignored. This order cannot be predicted and may differ on master and the slave." + +ER_PLUGIN_NO_UNINSTALL + eng "Plugin '%s' is marked as not dynamically uninstallable. You have to stop the server to uninstall it." + +ER_PLUGIN_NO_INSTALL + eng "Plugin '%s' is marked as not dynamically installable. You have to stop the server to install it." + +ER_BINLOG_UNSAFE_WRITE_AUTOINC_SELECT + eng "Statements writing to a table with an auto-increment column after selecting from another table are unsafe because the order in which rows are retrieved determines what (if any) rows will be written. This order cannot be predicted and may differ on master and the slave." + +ER_BINLOG_UNSAFE_CREATE_SELECT_AUTOINC + eng "CREATE TABLE... SELECT... on a table with an auto-increment column is unsafe because the order in which rows are retrieved by the SELECT determines which (if any) rows are inserted. This order cannot be predicted and may differ on master and the slave." + +ER_BINLOG_UNSAFE_INSERT_TWO_KEYS + eng "INSERT... ON DUPLICATE KEY UPDATE on a table with more than one UNIQUE KEY is unsafe" + +ER_TABLE_IN_FK_CHECK + eng "Table is being used in foreign key check." + +ER_UNUSED_1 + eng "You should never see it" + +ER_BINLOG_UNSAFE_AUTOINC_NOT_FIRST + eng "INSERT into autoincrement field which is not the first part in the composed primary key is unsafe." + +# +# End of 5.5 error messages. +# + +# +# MariaDB error messages section starts here +# + +# The following is here to allow us to detect if there was missing +# error messages in the errmsg.sys file + +ER_LAST_MYSQL_ERROR_MESSAGE + eng "" + +# MariaDB error numbers starts from 1900 +start-error-number 1900 + +ER_VCOL_BASED_ON_VCOL + eng "A computed column cannot be based on a computed column" +ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED + eng "Function or expression is not allowed for column '%s'" +ER_DATA_CONVERSION_ERROR_FOR_VIRTUAL_COLUMN + eng "Generated value for computed column '%s' cannot be converted to type '%s'" +ER_PRIMARY_KEY_BASED_ON_VIRTUAL_COLUMN + eng "Primary key cannot be defined upon a computed column" +ER_KEY_BASED_ON_GENERATED_VIRTUAL_COLUMN + eng "Key/Index cannot be defined on a non-stored computed column" +ER_WRONG_FK_OPTION_FOR_VIRTUAL_COLUMN + eng "Cannot define foreign key with %s clause on a computed column" +ER_WARNING_NON_DEFAULT_VALUE_FOR_VIRTUAL_COLUMN + eng "The value specified for computed column '%s' in table '%s' has been ignored" +ER_UNSUPPORTED_ACTION_ON_VIRTUAL_COLUMN + eng "This is not yet supported for computed columns" +ER_CONST_EXPR_IN_VCOL + eng "Constant expression in computed column function is not allowed" +ER_ROW_EXPR_FOR_VCOL + eng "Expression for computed column cannot return a row" +ER_UNSUPPORTED_ENGINE_FOR_VIRTUAL_COLUMNS + eng "%s storage engine does not support computed columns" +ER_UNKNOWN_OPTION + eng "Unknown option '%-.64s'" +ER_BAD_OPTION_VALUE + eng "Incorrect value '%-.64s' for option '%-.64s'" +ER_NETWORK_READ_EVENT_CHECKSUM_FAILURE + eng "Replication event checksum verification failed while reading from network." +ER_BINLOG_READ_EVENT_CHECKSUM_FAILURE + eng "Replication event checksum verification failed while reading from a log file." +ER_CANT_DO_ONLINE + eng "Can't execute the given '%s' command as online" +ER_DATA_OVERFLOW 22003 + eng "Got overflow when converting '%-.128s' to %-.32s. Value truncated." +ER_DATA_TRUNCATED 22003 + eng "Truncated value '%-.128s' when converting to %-.32s" +ER_BAD_DATA 22007 + eng "Encountered illegal value '%-.128s' when converting to %-.32s" +ER_DYN_COL_WRONG_FORMAT + eng "Encountered illegal format of dynamic column string" +ER_DYN_COL_IMPLEMENTATION_LIMIT + eng "Dynamic column implementation limit reached" +ER_DYN_COL_DATA 22007 + eng "Illegal value used as argument of dynamic column function" +ER_DYN_COL_WRONG_CHARSET + eng "Dynamic column contains unknown character set" +ER_ILLEGAL_SUBQUERY_OPTIMIZER_SWITCHES + eng "At least one of the 'in_to_exists' or 'materialization' optimizer_switch flags must be 'on'." +ER_QUERY_CACHE_IS_DISABLED + eng "Query cache is disabled (resize or similar command in progress); repeat this command later" +ER_QUERY_CACHE_IS_GLOBALY_DISABLED + eng "Query cache is globally disabled and you can't enable it only for this session" +ER_VIEW_ORDERBY_IGNORED + eng "View '%-.192s'.'%-.192s' ORDER BY clause ignored because there is other ORDER BY clause already." +ER_CONNECTION_KILLED 70100 + eng "Connection was killed" +ER_INTERNAL_ERROR + eng "Internal error: '%-.192s'" +ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_SKIP_REPLICATION + eng "Cannot modify @@session.skip_replication inside a transaction" +ER_STORED_FUNCTION_PREVENTS_SWITCH_SKIP_REPLICATION + eng "Cannot modify @@session.skip_replication inside a stored function or trigger" +ER_QUERY_EXCEEDED_ROWS_EXAMINED_LIMIT + eng "Query execution was interrupted. The query examined at least %llu rows, which exceeds LIMIT ROWS EXAMINED (%llu). The query result may be incomplete." +ER_NO_SUCH_TABLE_IN_ENGINE 42S02 + eng "Table '%-.192s.%-.192s' doesn't exist in engine" + swe "Det finns ingen tabell som heter '%-.192s.%-.192s' i handlern" diff --git a/database/share/estonian/errmsg.sys b/database/share/estonian/errmsg.sys new file mode 100644 index 0000000..378c814 Binary files /dev/null and b/database/share/estonian/errmsg.sys differ diff --git a/database/share/fill_help_tables.sql b/database/share/fill_help_tables.sql new file mode 100644 index 0000000..7b8a331 --- /dev/null +++ b/database/share/fill_help_tables.sql @@ -0,0 +1,2073 @@ +-- Copyright (c) 2003, 2008-2012, Oracle and/or its affiliates. All rights reserved. +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; version 2 of the License. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA. + +-- DO NOT EDIT THIS FILE. It is generated automatically. + +-- To use this file, load its contents into the mysql database. For example, +-- with the mysql client program, process the file like this, where +-- file_name is the name of this file: + +-- mysql -u root -p mysql < file_name + +set names 'utf8'; + +delete from help_topic; +delete from help_category; +delete from help_keyword; +delete from help_relation; + +insert into help_category (help_category_id,name,parent_category_id,url) values (1,'Geographic',0,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (2,'Polygon properties',34,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (3,'WKT',34,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (4,'Numeric Functions',38,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (5,'Plugins',35,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (6,'MBR',34,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (7,'Control flow functions',38,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (8,'Transactions',35,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (9,'Help Metadata',35,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (10,'Account Management',35,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (11,'Point properties',34,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (12,'Encryption Functions',38,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (13,'LineString properties',34,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (14,'Miscellaneous Functions',38,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (15,'Logical operators',38,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (16,'Functions and Modifiers for Use with GROUP BY',35,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (17,'Information Functions',38,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (18,'Comparison operators',38,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (19,'Bit Functions',38,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (20,'Table Maintenance',35,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (21,'User-Defined Functions',35,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (22,'Data Types',35,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (23,'Compound Statements',35,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (24,'Geometry constructors',34,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (25,'GeometryCollection properties',1,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (26,'Administration',35,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (27,'Data Manipulation',35,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (28,'Utility',35,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (29,'Language Structure',35,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (30,'Geometry relations',34,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (31,'Date and Time Functions',38,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (32,'WKB',34,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (33,'Procedures',35,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (34,'Geographic Features',35,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (35,'Contents',0,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (36,'Geometry properties',34,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (37,'String Functions',38,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (38,'Functions',35,''); +insert into help_category (help_category_id,name,parent_category_id,url) values (39,'Data Definition',35,''); + +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (0,16,'MIN','Syntax:\nMIN([DISTINCT] expr)\n\nReturns the minimum value of expr. MIN() may take a string argument; in\nsuch cases, it returns the minimum string value. See\nhttp://dev.mysql.com/doc/refman/5.5/en/mysql-indexes.html. The DISTINCT\nkeyword can be used to find the minimum of the distinct values of expr,\nhowever, this produces the same result as omitting DISTINCT.\n\nMIN() returns NULL if there were no matching rows.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html\n\n','mysql> SELECT student_name, MIN(test_score), MAX(test_score)\n -> FROM student\n -> GROUP BY student_name;\n','http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (1,27,'JOIN','MySQL supports the following JOIN syntaxes for the table_references\npart of SELECT statements and multiple-table DELETE and UPDATE\nstatements:\n\ntable_references:\n table_reference [, table_reference] ...\n\ntable_reference:\n table_factor\n | join_table\n\ntable_factor:\n tbl_name [[AS] alias] [index_hint_list]\n | table_subquery [AS] alias\n | ( table_references )\n | { OJ table_reference LEFT OUTER JOIN table_reference\n ON conditional_expr }\n\njoin_table:\n table_reference [INNER | CROSS] JOIN table_factor [join_condition]\n | table_reference STRAIGHT_JOIN table_factor\n | table_reference STRAIGHT_JOIN table_factor ON conditional_expr\n | table_reference {LEFT|RIGHT} [OUTER] JOIN table_reference join_condition\n | table_reference NATURAL [{LEFT|RIGHT} [OUTER]] JOIN table_factor\n\njoin_condition:\n ON conditional_expr\n | USING (column_list)\n\nindex_hint_list:\n index_hint [, index_hint] ...\n\nindex_hint:\n USE {INDEX|KEY}\n [FOR {JOIN|ORDER BY|GROUP BY}] ([index_list])\n | IGNORE {INDEX|KEY}\n [FOR {JOIN|ORDER BY|GROUP BY}] (index_list)\n | FORCE {INDEX|KEY}\n [FOR {JOIN|ORDER BY|GROUP BY}] (index_list)\n\nindex_list:\n index_name [, index_name] ...\n\nA table reference is also known as a join expression.\n\nThe syntax of table_factor is extended in comparison with the SQL\nStandard. The latter accepts only table_reference, not a list of them\ninside a pair of parentheses.\n\nThis is a conservative extension if we consider each comma in a list of\ntable_reference items as equivalent to an inner join. For example:\n\nSELECT * FROM t1 LEFT JOIN (t2, t3, t4)\n ON (t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c)\n\nis equivalent to:\n\nSELECT * FROM t1 LEFT JOIN (t2 CROSS JOIN t3 CROSS JOIN t4)\n ON (t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c)\n\nIn MySQL, JOIN, CROSS JOIN, and INNER JOIN are syntactic equivalents\n(they can replace each other). In standard SQL, they are not\nequivalent. INNER JOIN is used with an ON clause, CROSS JOIN is used\notherwise.\n\nIn general, parentheses can be ignored in join expressions containing\nonly inner join operations. MySQL also supports nested joins (see\nhttp://dev.mysql.com/doc/refman/5.5/en/nested-join-optimization.html).\n\nIndex hints can be specified to affect how the MySQL optimizer makes\nuse of indexes. For more information, see\nhttp://dev.mysql.com/doc/refman/5.5/en/index-hints.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/join.html\n\n','SELECT left_tbl.*\n FROM left_tbl LEFT JOIN right_tbl ON left_tbl.id = right_tbl.id\n WHERE right_tbl.id IS NULL;\n','http://dev.mysql.com/doc/refman/5.5/en/join.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (2,37,'HEX','Syntax:\nHEX(str), HEX(N)\n\nFor a string argument str, HEX() returns a hexadecimal string\nrepresentation of str where each character in str is converted to two\nhexadecimal digits. The inverse of this operation is performed by the\nUNHEX() function.\n\nFor a numeric argument N, HEX() returns a hexadecimal string\nrepresentation of the value of N treated as a longlong (BIGINT) number.\nThis is equivalent to CONV(N,10,16). The inverse of this operation is\nperformed by CONV(HEX(N),16,10).\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT 0x616263, HEX(\'abc\'), UNHEX(HEX(\'abc\'));\n -> \'abc\', 616263, \'abc\'\nmysql> SELECT HEX(255), CONV(HEX(255),16,10);\n -> \'FF\', 255\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (3,27,'REPLACE','Syntax:\nREPLACE [LOW_PRIORITY | DELAYED]\n [INTO] tbl_name [(col_name,...)]\n {VALUES | VALUE} ({expr | DEFAULT},...),(...),...\n\nOr:\n\nREPLACE [LOW_PRIORITY | DELAYED]\n [INTO] tbl_name\n SET col_name={expr | DEFAULT}, ...\n\nOr:\n\nREPLACE [LOW_PRIORITY | DELAYED]\n [INTO] tbl_name [(col_name,...)]\n SELECT ...\n\nREPLACE works exactly like INSERT, except that if an old row in the\ntable has the same value as a new row for a PRIMARY KEY or a UNIQUE\nindex, the old row is deleted before the new row is inserted. See [HELP\nINSERT].\n\nREPLACE is a MySQL extension to the SQL standard. It either inserts, or\ndeletes and inserts. For another MySQL extension to standard SQL---that\neither inserts or updates---see\nhttp://dev.mysql.com/doc/refman/5.5/en/insert-on-duplicate.html.\n\nNote that unless the table has a PRIMARY KEY or UNIQUE index, using a\nREPLACE statement makes no sense. It becomes equivalent to INSERT,\nbecause there is no index to be used to determine whether a new row\nduplicates another.\n\nValues for all columns are taken from the values specified in the\nREPLACE statement. Any missing columns are set to their default values,\njust as happens for INSERT. You cannot refer to values from the current\nrow and use them in the new row. If you use an assignment such as SET\ncol_name = col_name + 1, the reference to the column name on the right\nhand side is treated as DEFAULT(col_name), so the assignment is\nequivalent to SET col_name = DEFAULT(col_name) + 1.\n\nTo use REPLACE, you must have both the INSERT and DELETE privileges for\nthe table.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/replace.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/replace.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (4,30,'CONTAINS','Contains(g1,g2)\n\nReturns 1 or 0 to indicate whether g1 completely contains g2. This\ntests the opposite relationship as Within().\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/functions-for-testing-spatial-relations-between-geometric-objects.html#functions-that-test-spatial-relationships-between-geometries\n\n','','http://dev.mysql.com/doc/refman/5.5/en/functions-for-testing-spatial-relations-between-geometric-objects.html#functions-that-test-spatial-relationships-between-geometries'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (5,36,'SRID','SRID(g)\n\nReturns an integer indicating the Spatial Reference System ID for the\ngeometry value g.\n\nIn MySQL, the SRID value is just an integer associated with the\ngeometry value. All calculations are done assuming Euclidean (planar)\ngeometry.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#general-geometry-property-functions\n\n','mysql> SELECT SRID(GeomFromText(\'LineString(1 1,2 2)\',101));\n+-----------------------------------------------+\n| SRID(GeomFromText(\'LineString(1 1,2 2)\',101)) |\n+-----------------------------------------------+\n| 101 |\n+-----------------------------------------------+\n','http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#general-geometry-property-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (6,31,'CURRENT_TIMESTAMP','Syntax:\nCURRENT_TIMESTAMP, CURRENT_TIMESTAMP()\n\nCURRENT_TIMESTAMP and CURRENT_TIMESTAMP() are synonyms for NOW().\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (7,26,'SHOW CONTRIBUTORS','Syntax:\nSHOW CONTRIBUTORS\n\nThe SHOW CONTRIBUTORS statement displays information about the people\nwho contribute to MySQL source or to causes that we support. For each\ncontributor, it displays Name, Location, and Comment values.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-contributors.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-contributors.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (8,16,'VARIANCE','Syntax:\nVARIANCE(expr)\n\nReturns the population standard variance of expr. This is an extension\nto standard SQL. The standard SQL function VAR_POP() can be used\ninstead.\n\nVARIANCE() returns NULL if there were no matching rows.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (9,39,'DROP SERVER','Syntax:\nDROP SERVER [ IF EXISTS ] server_name\n\nDrops the server definition for the server named server_name. The\ncorresponding row within the mysql.servers table will be deleted. This\nstatement requires the SUPER privilege.\n\nDropping a server for a table does not affect any FEDERATED tables that\nused this connection information when they were created. See [HELP\nCREATE SERVER].\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/drop-server.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/drop-server.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (10,26,'SHOW AUTHORS','Syntax:\nSHOW AUTHORS\n\nThe SHOW AUTHORS statement displays information about the people who\nwork on MySQL. For each author, it displays Name, Location, and Comment\nvalues.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-authors.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-authors.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (11,16,'VAR_SAMP','Syntax:\nVAR_SAMP(expr)\n\nReturns the sample variance of expr. That is, the denominator is the\nnumber of rows minus one.\n\nVAR_SAMP() returns NULL if there were no matching rows.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (12,37,'CONCAT','Syntax:\nCONCAT(str1,str2,...)\n\nReturns the string that results from concatenating the arguments. May\nhave one or more arguments. If all arguments are nonbinary strings, the\nresult is a nonbinary string. If the arguments include any binary\nstrings, the result is a binary string. A numeric argument is converted\nto its equivalent string form. This is a nonbinary string as of MySQL\n5.5.3. Before 5.5.3, it is a binary string; to to avoid that and\nproduce a nonbinary string, you can use an explicit type cast, as in\nthis example:\n\nSELECT CONCAT(CAST(int_col AS CHAR), char_col);\n\nCONCAT() returns NULL if any argument is NULL.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT CONCAT(\'My\', \'S\', \'QL\');\n -> \'MySQL\'\nmysql> SELECT CONCAT(\'My\', NULL, \'QL\');\n -> NULL\nmysql> SELECT CONCAT(14.3);\n -> \'14.3\'\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (13,34,'GEOMETRY HIERARCHY','Geometry is the base class. It is an abstract class. The instantiable\nsubclasses of Geometry are restricted to zero-, one-, and\ntwo-dimensional geometric objects that exist in two-dimensional\ncoordinate space. All instantiable geometry classes are defined so that\nvalid instances of a geometry class are topologically closed (that is,\nall defined geometries include their boundary).\n\nThe base Geometry class has subclasses for Point, Curve, Surface, and\nGeometryCollection:\n\no Point represents zero-dimensional objects.\n\no Curve represents one-dimensional objects, and has subclass\n LineString, with sub-subclasses Line and LinearRing.\n\no Surface is designed for two-dimensional objects and has subclass\n Polygon.\n\no GeometryCollection has specialized zero-, one-, and two-dimensional\n collection classes named MultiPoint, MultiLineString, and\n MultiPolygon for modeling geometries corresponding to collections of\n Points, LineStrings, and Polygons, respectively. MultiCurve and\n MultiSurface are introduced as abstract superclasses that generalize\n the collection interfaces to handle Curves and Surfaces.\n\nGeometry, Curve, Surface, MultiCurve, and MultiSurface are defined as\nnoninstantiable classes. They define a common set of methods for their\nsubclasses and are included for extensibility.\n\nPoint, LineString, Polygon, GeometryCollection, MultiPoint,\nMultiLineString, and MultiPolygon are instantiable classes.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/gis-geometry-class-hierarchy.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/gis-geometry-class-hierarchy.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (14,37,'CHAR FUNCTION','Syntax:\nCHAR(N,... [USING charset_name])\n\nCHAR() interprets each argument N as an integer and returns a string\nconsisting of the characters given by the code values of those\nintegers. NULL values are skipped.\nBy default, CHAR() returns a binary string. To produce a string in a\ngiven character set, use the optional USING clause:\n\nmysql> SELECT CHARSET(CHAR(0x65)), CHARSET(CHAR(0x65 USING utf8));\n+---------------------+--------------------------------+\n| CHARSET(CHAR(0x65)) | CHARSET(CHAR(0x65 USING utf8)) |\n+---------------------+--------------------------------+\n| binary | utf8 |\n+---------------------+--------------------------------+\n\nIf USING is given and the result string is illegal for the given\ncharacter set, a warning is issued. Also, if strict SQL mode is\nenabled, the result from CHAR() becomes NULL.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT CHAR(77,121,83,81,\'76\');\n -> \'MySQL\'\nmysql> SELECT CHAR(77,77.3,\'77.3\');\n -> \'MMM\'\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (15,22,'DATETIME','DATETIME\n\nA date and time combination. The supported range is \'1000-01-01\n00:00:00\' to \'9999-12-31 23:59:59\'. MySQL displays DATETIME values in\n\'YYYY-MM-DD HH:MM:SS\' format, but permits assignment of values to\nDATETIME columns using either strings or numbers.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-type-overview.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-type-overview.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (16,26,'SHOW CREATE TRIGGER','Syntax:\nSHOW CREATE TRIGGER trigger_name\n\nThis statement shows a CREATE TRIGGER statement that creates the given\ntrigger.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-create-trigger.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-create-trigger.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (17,26,'SHOW CREATE PROCEDURE','Syntax:\nSHOW CREATE PROCEDURE proc_name\n\nThis statement is a MySQL extension. It returns the exact string that\ncan be used to re-create the named stored procedure. A similar\nstatement, SHOW CREATE FUNCTION, displays information about stored\nfunctions (see [HELP SHOW CREATE FUNCTION]).\n\nBoth statements require that you be the owner of the routine or have\nSELECT access to the mysql.proc table. If you do not have privileges\nfor the routine itself, the value displayed for the Create Procedure or\nCreate Function field will be NULL.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-create-procedure.html\n\n','mysql> SHOW CREATE PROCEDURE test.simpleproc\\G\n*************************** 1. row ***************************\n Procedure: simpleproc\n sql_mode:\n Create Procedure: CREATE PROCEDURE `simpleproc`(OUT param1 INT)\n BEGIN\n SELECT COUNT(*) INTO param1 FROM t;\n END\ncharacter_set_client: latin1\ncollation_connection: latin1_swedish_ci\n Database Collation: latin1_swedish_ci\n\nmysql> SHOW CREATE FUNCTION test.hello\\G\n*************************** 1. row ***************************\n Function: hello\n sql_mode:\n Create Function: CREATE FUNCTION `hello`(s CHAR(20))\n RETURNS CHAR(50)\n RETURN CONCAT(\'Hello, \',s,\'!\')\ncharacter_set_client: latin1\ncollation_connection: latin1_swedish_ci\n Database Collation: latin1_swedish_ci\n','http://dev.mysql.com/doc/refman/5.5/en/show-create-procedure.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (18,23,'OPEN','Syntax:\nOPEN cursor_name\n\nThis statement opens a previously declared cursor. For an example, see\nhttp://dev.mysql.com/doc/refman/5.5/en/cursors.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/open.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/open.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (19,22,'INTEGER','INTEGER[(M)] [UNSIGNED] [ZEROFILL]\n\nThis type is a synonym for INT.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (20,37,'LOWER','Syntax:\nLOWER(str)\n\nReturns the string str with all characters changed to lowercase\naccording to the current character set mapping. The default is latin1\n(cp1252 West European).\n\nmysql> SELECT LOWER(\'QUADRATICALLY\');\n -> \'quadratically\'\n\nLOWER() (and UPPER()) are ineffective when applied to binary strings\n(BINARY, VARBINARY, BLOB). To perform lettercase conversion, convert\nthe string to a nonbinary string:\n\nmysql> SET @str = BINARY \'New York\';\nmysql> SELECT LOWER(@str), LOWER(CONVERT(@str USING latin1));\n+-------------+-----------------------------------+\n| LOWER(@str) | LOWER(CONVERT(@str USING latin1)) |\n+-------------+-----------------------------------+\n| New York | new york |\n+-------------+-----------------------------------+\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (21,26,'SHOW COLUMNS','Syntax:\nSHOW [FULL] COLUMNS {FROM | IN} tbl_name [{FROM | IN} db_name]\n [LIKE \'pattern\' | WHERE expr]\n\nSHOW COLUMNS displays information about the columns in a given table.\nIt also works for views. The LIKE clause, if present, indicates which\ncolumn names to match. The WHERE clause can be given to select rows\nusing more general conditions, as discussed in\nhttp://dev.mysql.com/doc/refman/5.5/en/extended-show.html.\n\nSHOW COLUMNS displays information only for those columns for which you\nhave some privilege.\n\nmysql> SHOW COLUMNS FROM City;\n+------------+----------+------+-----+---------+----------------+\n| Field | Type | Null | Key | Default | Extra |\n+------------+----------+------+-----+---------+----------------+\n| Id | int(11) | NO | PRI | NULL | auto_increment |\n| Name | char(35) | NO | | | |\n| Country | char(3) | NO | UNI | | |\n| District | char(20) | YES | MUL | | |\n| Population | int(11) | NO | | 0 | |\n+------------+----------+------+-----+---------+----------------+\n5 rows in set (0.00 sec)\n\nIf the data types differ from what you expect them to be based on a\nCREATE TABLE statement, note that MySQL sometimes changes data types\nwhen you create or alter a table. The conditions under which this\noccurs are described in\nhttp://dev.mysql.com/doc/refman/5.5/en/silent-column-changes.html.\n\nThe FULL keyword causes the output to include the column collation and\ncomments, as well as the privileges you have for each column.\n\nYou can use db_name.tbl_name as an alternative to the tbl_name FROM\ndb_name syntax. In other words, these two statements are equivalent:\n\nmysql> SHOW COLUMNS FROM mytable FROM mydb;\nmysql> SHOW COLUMNS FROM mydb.mytable;\n\nSHOW COLUMNS displays the following values for each table column:\n\nField indicates the column name.\n\nType indicates the column data type.\n\nCollation indicates the collation for nonbinary string columns, or NULL\nfor other columns. This value is displayed only if you use the FULL\nkeyword.\n\nThe Null field contains YES if NULL values can be stored in the column,\nNO if not.\n\nThe Key field indicates whether the column is indexed:\n\no If Key is empty, the column either is not indexed or is indexed only\n as a secondary column in a multiple-column, nonunique index.\n\no If Key is PRI, the column is a PRIMARY KEY or is one of the columns\n in a multiple-column PRIMARY KEY.\n\no If Key is UNI, the column is the first column of a UNIQUE index. (A\n UNIQUE index permits multiple NULL values, but you can tell whether\n the column permits NULL by checking the Null field.)\n\no If Key is MUL, the column is the first column of a nonunique index in\n which multiple occurrences of a given value are permitted within the\n column.\n\nIf more than one of the Key values applies to a given column of a\ntable, Key displays the one with the highest priority, in the order\nPRI, UNI, MUL.\n\nA UNIQUE index may be displayed as PRI if it cannot contain NULL values\nand there is no PRIMARY KEY in the table. A UNIQUE index may display as\nMUL if several columns form a composite UNIQUE index; although the\ncombination of the columns is unique, each column can still hold\nmultiple occurrences of a given value.\n\nThe Default field indicates the default value that is assigned to the\ncolumn. This is NULL if the column has an explicit default of NULL, or\nif the column definition has no DEFAULT clause.\n\nThe Extra field contains any additional information that is available\nabout a given column. The value is nonempty in these cases:\nauto_increment for columns that have the AUTO_INCREMENT attribute; on\nupdate CURRENT_TIMESTAMP for TIMESTAMP columns that have the ON UPDATE\nCURRENT_TIMESTAMP attribute.\n\nPrivileges indicates the privileges you have for the column. This value\nis displayed only if you use the FULL keyword.\n\nComment indicates any comment the column has. This value is displayed\nonly if you use the FULL keyword.\n\nSHOW FIELDS is a synonym for SHOW COLUMNS. You can also list a table\'s\ncolumns with the mysqlshow db_name tbl_name command.\n\nThe DESCRIBE statement provides information similar to SHOW COLUMNS.\nSee [HELP DESCRIBE].\n\nThe SHOW CREATE TABLE, SHOW TABLE STATUS, and SHOW INDEX statements\nalso provide information about tables. See [HELP SHOW].\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-columns.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-columns.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (22,39,'CREATE TRIGGER','Syntax:\nCREATE\n [DEFINER = { user | CURRENT_USER }]\n TRIGGER trigger_name trigger_time trigger_event\n ON tbl_name FOR EACH ROW trigger_body\n\nThis statement creates a new trigger. A trigger is a named database\nobject that is associated with a table, and that activates when a\nparticular event occurs for the table. The trigger becomes associated\nwith the table named tbl_name, which must refer to a permanent table.\nYou cannot associate a trigger with a TEMPORARY table or a view.\n\nCREATE TRIGGER requires the TRIGGER privilege for the table associated\nwith the trigger. The statement might also require the SUPER privilege,\ndepending on the DEFINER value, as described later in this section. If\nbinary logging is enabled, CREATE TRIGGER might require the SUPER\nprivilege, as described in\nhttp://dev.mysql.com/doc/refman/5.5/en/stored-programs-logging.html.\n\nThe DEFINER clause determines the security context to be used when\nchecking access privileges at trigger activation time. See later in\nthis section for more information.\n\ntrigger_time is the trigger action time. It can be BEFORE or AFTER to\nindicate that the trigger activates before or after each row to be\nmodified.\n\ntrigger_event indicates the kind of statement that activates the\ntrigger. The trigger_event can be one of the following:\n\no INSERT: The trigger is activated whenever a new row is inserted into\n the table; for example, through INSERT, LOAD DATA, and REPLACE\n statements.\n\no UPDATE: The trigger is activated whenever a row is modified; for\n example, through UPDATE statements.\n\no DELETE: The trigger is activated whenever a row is deleted from the\n table; for example, through DELETE and REPLACE statements. However,\n DROP TABLE and TRUNCATE TABLE statements on the table do not activate\n this trigger, because they do not use DELETE. Dropping a partition\n does not activate DELETE triggers, either. See [HELP TRUNCATE TABLE].\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/create-trigger.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/create-trigger.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (23,31,'MONTH','Syntax:\nMONTH(date)\n\nReturns the month for date, in the range 1 to 12 for January to\nDecember, or 0 for dates such as \'0000-00-00\' or \'2008-00-00\' that have\na zero month part.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT MONTH(\'2008-02-03\');\n -> 2\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (24,22,'TINYINT','TINYINT[(M)] [UNSIGNED] [ZEROFILL]\n\nA very small integer. The signed range is -128 to 127. The unsigned\nrange is 0 to 255.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (25,26,'SHOW TRIGGERS','Syntax:\nSHOW TRIGGERS [{FROM | IN} db_name]\n [LIKE \'pattern\' | WHERE expr]\n\nSHOW TRIGGERS lists the triggers currently defined for tables in a\ndatabase (the default database unless a FROM clause is given). This\nstatement returns results only for databases and tables for which you\nhave the TRIGGER privilege. The LIKE clause, if present, indicates\nwhich table names to match and causes the statement to display triggers\nfor those tables. The WHERE clause can be given to select rows using\nmore general conditions, as discussed in\nhttp://dev.mysql.com/doc/refman/5.5/en/extended-show.html.\n\nFor the trigger ins_sum as defined in\nhttp://dev.mysql.com/doc/refman/5.5/en/triggers.html, the output of\nthis statement is as shown here:\n\nmysql> SHOW TRIGGERS LIKE \'acc%\'\\G\n*************************** 1. row ***************************\n Trigger: ins_sum\n Event: INSERT\n Table: account\n Statement: SET @sum = @sum + NEW.amount\n Timing: BEFORE\n Created: NULL\n sql_mode:\n Definer: myname@localhost\ncharacter_set_client: latin1\ncollation_connection: latin1_swedish_ci\n Database Collation: latin1_swedish_ci\n\ncharacter_set_client is the session value of the character_set_client\nsystem variable when the trigger was created. collation_connection is\nthe session value of the collation_connection system variable when the\ntrigger was created. Database Collation is the collation of the\ndatabase with which the trigger is associated.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-triggers.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-triggers.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (26,14,'MASTER_POS_WAIT','Syntax:\nMASTER_POS_WAIT(log_name,log_pos[,timeout])\n\nThis function is useful for control of master/slave synchronization. It\nblocks until the slave has read and applied all updates up to the\nspecified position in the master log. The return value is the number of\nlog events the slave had to wait for to advance to the specified\nposition. The function returns NULL if the slave SQL thread is not\nstarted, the slave\'s master information is not initialized, the\narguments are incorrect, or an error occurs. It returns -1 if the\ntimeout has been exceeded. If the slave SQL thread stops while\nMASTER_POS_WAIT() is waiting, the function returns NULL. If the slave\nis past the specified position, the function returns immediately.\n\nIf a timeout value is specified, MASTER_POS_WAIT() stops waiting when\ntimeout seconds have elapsed. timeout must be greater than 0; a zero or\nnegative timeout means no timeout.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/miscellaneous-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/miscellaneous-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (27,37,'REGEXP','Syntax:\nexpr REGEXP pat, expr RLIKE pat\n\nPerforms a pattern match of a string expression expr against a pattern\npat. The pattern can be an extended regular expression. The syntax for\nregular expressions is discussed in\nhttp://dev.mysql.com/doc/refman/5.5/en/regexp.html. Returns 1 if expr\nmatches pat; otherwise it returns 0. If either expr or pat is NULL, the\nresult is NULL. RLIKE is a synonym for REGEXP, provided for mSQL\ncompatibility.\n\nThe pattern need not be a literal string. For example, it can be\nspecified as a string expression or table column.\n\n*Note*: Because MySQL uses the C escape syntax in strings (for example,\n"\\n" to represent the newline character), you must double any "\\" that\nyou use in your REGEXP strings.\n\nREGEXP is not case sensitive, except when used with binary strings.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/regexp.html\n\n','mysql> SELECT \'Monty!\' REGEXP \'.*\';\n -> 1\nmysql> SELECT \'new*\\n*line\' REGEXP \'new\\\\*.\\\\*line\';\n -> 1\nmysql> SELECT \'a\' REGEXP \'A\', \'a\' REGEXP BINARY \'A\';\n -> 1 0\nmysql> SELECT \'a\' REGEXP \'^[a-d]\';\n -> 1\n','http://dev.mysql.com/doc/refman/5.5/en/regexp.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (28,23,'IF STATEMENT','Syntax:\nIF search_condition THEN statement_list\n [ELSEIF search_condition THEN statement_list] ...\n [ELSE statement_list]\nEND IF\n\nThe IF statement for stored programs implements a basic conditional\nconstruct.\n\n*Note*: There is also an IF() function, which differs from the IF\nstatement described here. See\nhttp://dev.mysql.com/doc/refman/5.5/en/control-flow-functions.html. The\nIF statement can have THEN, ELSE, and ELSEIF clauses, and it is\nterminated with END IF.\n\nIf the search_condition evaluates to true, the corresponding THEN or\nELSEIF clause statement_list executes. If no search_condition matches,\nthe ELSE clause statement_list executes.\n\nEach statement_list consists of one or more SQL statements; an empty\nstatement_list is not permitted.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/if.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/if.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (29,19,'^','Syntax:\n^\n\nBitwise XOR:\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/bit-functions.html\n\n','mysql> SELECT 1 ^ 1;\n -> 0\nmysql> SELECT 1 ^ 0;\n -> 1\nmysql> SELECT 11 ^ 3;\n -> 8\n','http://dev.mysql.com/doc/refman/5.5/en/bit-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (30,39,'DROP VIEW','Syntax:\nDROP VIEW [IF EXISTS]\n view_name [, view_name] ...\n [RESTRICT | CASCADE]\n\nDROP VIEW removes one or more views. You must have the DROP privilege\nfor each view. If any of the views named in the argument list do not\nexist, MySQL returns an error indicating by name which nonexisting\nviews it was unable to drop, but it also drops all of the views in the\nlist that do exist.\n\nThe IF EXISTS clause prevents an error from occurring for views that\ndon\'t exist. When this clause is given, a NOTE is generated for each\nnonexistent view. See [HELP SHOW WARNINGS].\n\nRESTRICT and CASCADE, if given, are parsed and ignored.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/drop-view.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/drop-view.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (31,30,'WITHIN','Within(g1,g2)\n\nReturns 1 or 0 to indicate whether g1 is spatially within g2. This\ntests the opposite relationship as Contains().\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/functions-for-testing-spatial-relations-between-geometric-objects.html#functions-that-test-spatial-relationships-between-geometries\n\n','','http://dev.mysql.com/doc/refman/5.5/en/functions-for-testing-spatial-relations-between-geometric-objects.html#functions-that-test-spatial-relationships-between-geometries'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (32,31,'WEEK','Syntax:\nWEEK(date[,mode])\n\nThis function returns the week number for date. The two-argument form\nof WEEK() enables you to specify whether the week starts on Sunday or\nMonday and whether the return value should be in the range from 0 to 53\nor from 1 to 53. If the mode argument is omitted, the value of the\ndefault_week_format system variable is used. See\nhttp://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT WEEK(\'2008-02-20\');\n -> 7\nmysql> SELECT WEEK(\'2008-02-20\',0);\n -> 7\nmysql> SELECT WEEK(\'2008-02-20\',1);\n -> 8\nmysql> SELECT WEEK(\'2008-12-31\',1);\n -> 53\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (33,26,'SHOW PLUGINS','Syntax:\nSHOW PLUGINS\n\nSHOW PLUGINS displays information about server plugins. Plugin\ninformation is also available in the INFORMATION_SCHEMA.PLUGINS table.\nSee http://dev.mysql.com/doc/refman/5.5/en/plugins-table.html.\n\nExample of SHOW PLUGINS output:\n\nmysql> SHOW PLUGINS\\G\n*************************** 1. row ***************************\n Name: binlog\n Status: ACTIVE\n Type: STORAGE ENGINE\nLibrary: NULL\nLicense: GPL\n*************************** 2. row ***************************\n Name: CSV\n Status: ACTIVE\n Type: STORAGE ENGINE\nLibrary: NULL\nLicense: GPL\n*************************** 3. row ***************************\n Name: MEMORY\n Status: ACTIVE\n Type: STORAGE ENGINE\nLibrary: NULL\nLicense: GPL\n*************************** 4. row ***************************\n Name: MyISAM\n Status: ACTIVE\n Type: STORAGE ENGINE\nLibrary: NULL\nLicense: GPL\n...\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-plugins.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-plugins.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (34,21,'DROP FUNCTION UDF','Syntax:\nDROP FUNCTION function_name\n\nThis statement drops the user-defined function (UDF) named\nfunction_name.\n\nTo drop a function, you must have the DELETE privilege for the mysql\ndatabase. This is because DROP FUNCTION removes a row from the\nmysql.func system table that records the function\'s name, type, and\nshared library name.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/drop-function-udf.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/drop-function-udf.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (35,8,'PREPARE','Syntax:\nPREPARE stmt_name FROM preparable_stmt\n\nThe PREPARE statement prepares a statement and assigns it a name,\nstmt_name, by which to refer to the statement later. Statement names\nare not case sensitive. preparable_stmt is either a string literal or a\nuser variable that contains the text of the statement. The text must\nrepresent a single SQL statement, not multiple statements. Within the\nstatement, "?" characters can be used as parameter markers to indicate\nwhere data values are to be bound to the query later when you execute\nit. The "?" characters should not be enclosed within quotation marks,\neven if you intend to bind them to string values. Parameter markers can\nbe used only where data values should appear, not for SQL keywords,\nidentifiers, and so forth.\n\nIf a prepared statement with the given name already exists, it is\ndeallocated implicitly before the new statement is prepared. This means\nthat if the new statement contains an error and cannot be prepared, an\nerror is returned and no statement with the given name exists.\n\nA prepared statement is executed with EXECUTE and released with\nDEALLOCATE PREPARE.\n\nThe scope of a prepared statement is the session within which it is\ncreated. Other sessions cannot see it.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/prepare.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/prepare.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (36,8,'LOCK','Syntax:\nLOCK TABLES\n tbl_name [[AS] alias] lock_type\n [, tbl_name [[AS] alias] lock_type] ...\n\nlock_type:\n READ [LOCAL]\n | [LOW_PRIORITY] WRITE\n\nUNLOCK TABLES\n\nMySQL enables client sessions to acquire table locks explicitly for the\npurpose of cooperating with other sessions for access to tables, or to\nprevent other sessions from modifying tables during periods when a\nsession requires exclusive access to them. A session can acquire or\nrelease locks only for itself. One session cannot acquire locks for\nanother session or release locks held by another session.\n\nLocks may be used to emulate transactions or to get more speed when\nupdating tables. This is explained in more detail later in this\nsection.\n\nLOCK TABLES explicitly acquires table locks for the current client\nsession. Table locks can be acquired for base tables or views. You must\nhave the LOCK TABLES privilege, and the SELECT privilege for each\nobject to be locked.\n\nFor view locking, LOCK TABLES adds all base tables used in the view to\nthe set of tables to be locked and locks them automatically. If you\nlock a table explicitly with LOCK TABLES, any tables used in triggers\nare also locked implicitly, as described in\nhttp://dev.mysql.com/doc/refman/5.5/en/lock-tables-and-triggers.html.\n\nUNLOCK TABLES explicitly releases any table locks held by the current\nsession. LOCK TABLES implicitly releases any table locks held by the\ncurrent session before acquiring new locks.\n\nAnother use for UNLOCK TABLES is to release the global read lock\nacquired with the FLUSH TABLES WITH READ LOCK statement, which enables\nyou to lock all tables in all databases. See [HELP FLUSH]. (This is a\nvery convenient way to get backups if you have a file system such as\nVeritas that can take snapshots in time.)\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/lock-tables.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/lock-tables.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (37,37,'UPDATEXML','Syntax:\nUpdateXML(xml_target, xpath_expr, new_xml)\n\nThis function replaces a single portion of a given fragment of XML\nmarkup xml_target with a new XML fragment new_xml, and then returns the\nchanged XML. The portion of xml_target that is replaced matches an\nXPath expression xpath_expr supplied by the user. In MySQL 5.5, the\nXPath expression can contain at most 127 characters. (This limitation\nis lifted in MySQL 5.6.)\n\nIf no expression matching xpath_expr is found, or if multiple matches\nare found, the function returns the original xml_target XML fragment.\nAll three arguments should be strings.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/xml-functions.html\n\n','mysql> SELECT\n -> UpdateXML(\'ccc\', \'/a\', \'fff\') AS val1,\n -> UpdateXML(\'ccc\', \'/b\', \'fff\') AS val2,\n -> UpdateXML(\'ccc\', \'//b\', \'fff\') AS val3,\n -> UpdateXML(\'ccc\', \'/a/d\', \'fff\') AS val4,\n -> UpdateXML(\'ccc\', \'/a/d\', \'fff\') AS val5\n -> \\G\n\n*************************** 1. row ***************************\nval1: fff\nval2: ccc\nval3: fff\nval4: cccfff\nval5: ccc\n','http://dev.mysql.com/doc/refman/5.5/en/xml-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (38,8,'RESET SLAVE','Syntax:\nRESET SLAVE [ALL]\n\nRESET SLAVE makes the slave forget its replication position in the\nmaster\'s binary log. This statement is meant to be used for a clean\nstart: It deletes the master.info and relay-log.info files, all the\nrelay log files, and starts a new relay log file. To use RESET SLAVE,\nthe slave replication threads must be stopped (use STOP SLAVE if\nnecessary).\n\n*Note*: All relay log files are deleted, even if they have not been\ncompletely executed by the slave SQL thread. (This is a condition\nlikely to exist on a replication slave if you have issued a STOP SLAVE\nstatement or if the slave is highly loaded.)\n\nIn MySQL 5.5 (unlike the case in MySQL 5.1 and earlier), RESET SLAVE\ndoes not change any replication connection parameters such as master\nhost, master port, master user, or master password, which are retained\nin memory. This means that START SLAVE can be issued without requiring\na CHANGE MASTER TO statement following RESET SLAVE.\n\nIn MySQL 5.5.16 and later, you can use RESET SLAVE ALL to reset these\nconnection parameters (Bug #11809016). Connection parameters are also\nreset if the slave mysqld is shut down.\n\nIf the slave SQL thread was in the middle of replicating temporary\ntables when it was stopped, and RESET SLAVE is issued, these replicated\ntemporary tables are deleted on the slave.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/reset-slave.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/reset-slave.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (39,26,'SHOW BINARY LOGS','Syntax:\nSHOW BINARY LOGS\nSHOW MASTER LOGS\n\nLists the binary log files on the server. This statement is used as\npart of the procedure described in [HELP PURGE BINARY LOGS], that shows\nhow to determine which logs can be purged.\n\nmysql> SHOW BINARY LOGS;\n+---------------+-----------+\n| Log_name | File_size |\n+---------------+-----------+\n| binlog.000015 | 724935 |\n| binlog.000016 | 733481 |\n+---------------+-----------+\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-binary-logs.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-binary-logs.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (40,24,'POLYGON','Polygon(ls1,ls2,...)\n\nConstructs a Polygon value from a number of LineString or WKB\nLineString arguments. If any argument does not represent a LinearRing\n(that is, not a closed and simple LineString), the return value is\nNULL.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-mysql-specific-functions\n\n','','http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-mysql-specific-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (41,31,'MINUTE','Syntax:\nMINUTE(time)\n\nReturns the minute for time, in the range 0 to 59.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT MINUTE(\'2008-02-03 10:05:03\');\n -> 5\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (42,31,'DAY','Syntax:\nDAY(date)\n\nDAY() is a synonym for DAYOFMONTH().\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (43,37,'MID','Syntax:\nMID(str,pos,len)\n\nMID(str,pos,len) is a synonym for SUBSTRING(str,pos,len).\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (44,14,'UUID','Syntax:\nUUID()\n\nReturns a Universal Unique Identifier (UUID) generated according to\n"DCE 1.1: Remote Procedure Call" (Appendix A) CAE (Common Applications\nEnvironment) Specifications published by The Open Group in October 1997\n(Document Number C706,\nhttp://www.opengroup.org/public/pubs/catalog/c706.htm).\n\nA UUID is designed as a number that is globally unique in space and\ntime. Two calls to UUID() are expected to generate two different\nvalues, even if these calls are performed on two separate computers\nthat are not connected to each other.\n\nA UUID is a 128-bit number represented by a utf8 string of five\nhexadecimal numbers in aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee format:\n\no The first three numbers are generated from a timestamp.\n\no The fourth number preserves temporal uniqueness in case the timestamp\n value loses monotonicity (for example, due to daylight saving time).\n\no The fifth number is an IEEE 802 node number that provides spatial\n uniqueness. A random number is substituted if the latter is not\n available (for example, because the host computer has no Ethernet\n card, or we do not know how to find the hardware address of an\n interface on your operating system). In this case, spatial uniqueness\n cannot be guaranteed. Nevertheless, a collision should have very low\n probability.\n\n Currently, the MAC address of an interface is taken into account only\n on FreeBSD and Linux. On other operating systems, MySQL uses a\n randomly generated 48-bit number.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/miscellaneous-functions.html\n\n','mysql> SELECT UUID();\n -> \'6ccd780c-baba-1026-9564-0040f4311e29\'\n','http://dev.mysql.com/doc/refman/5.5/en/miscellaneous-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (45,24,'LINESTRING','LineString(pt1,pt2,...)\n\nConstructs a LineString value from a number of Point or WKB Point\narguments. If the number of arguments is less than two, the return\nvalue is NULL.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-mysql-specific-functions\n\n','','http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-mysql-specific-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (46,14,'SLEEP','Syntax:\nSLEEP(duration)\n\nSleeps (pauses) for the number of seconds given by the duration\nargument, then returns 0. If SLEEP() is interrupted, it returns 1. The\nduration may have a fractional part given in microseconds.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/miscellaneous-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/miscellaneous-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (47,17,'CONNECTION_ID','Syntax:\nCONNECTION_ID()\n\nReturns the connection ID (thread ID) for the connection. Every\nconnection has an ID that is unique among the set of currently\nconnected clients.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/information-functions.html\n\n','mysql> SELECT CONNECTION_ID();\n -> 23786\n','http://dev.mysql.com/doc/refman/5.5/en/information-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (48,27,'DELETE','Syntax:\nSingle-table syntax:\n\nDELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name\n [WHERE where_condition]\n [ORDER BY ...]\n [LIMIT row_count]\n\nMultiple-table syntax:\n\nDELETE [LOW_PRIORITY] [QUICK] [IGNORE]\n tbl_name[.*] [, tbl_name[.*]] ...\n FROM table_references\n [WHERE where_condition]\n\nOr:\n\nDELETE [LOW_PRIORITY] [QUICK] [IGNORE]\n FROM tbl_name[.*] [, tbl_name[.*]] ...\n USING table_references\n [WHERE where_condition]\n\nFor the single-table syntax, the DELETE statement deletes rows from\ntbl_name and returns a count of the number of deleted rows. This count\ncan be obtained by calling the ROW_COUNT() function (see\nhttp://dev.mysql.com/doc/refman/5.5/en/information-functions.html). The\nWHERE clause, if given, specifies the conditions that identify which\nrows to delete. With no WHERE clause, all rows are deleted. If the\nORDER BY clause is specified, the rows are deleted in the order that is\nspecified. The LIMIT clause places a limit on the number of rows that\ncan be deleted.\n\nFor the multiple-table syntax, DELETE deletes from each tbl_name the\nrows that satisfy the conditions. In this case, ORDER BY and LIMIT\ncannot be used.\n\nwhere_condition is an expression that evaluates to true for each row to\nbe deleted. It is specified as described in\nhttp://dev.mysql.com/doc/refman/5.5/en/select.html.\n\nCurrently, you cannot delete from a table and select from the same\ntable in a subquery.\n\nYou need the DELETE privilege on a table to delete rows from it. You\nneed only the SELECT privilege for any columns that are only read, such\nas those named in the WHERE clause.\n\nAs stated, a DELETE statement with no WHERE clause deletes all rows. A\nfaster way to do this, when you do not need to know the number of\ndeleted rows, is to use TRUNCATE TABLE. However, within a transaction\nor if you have a lock on the table, TRUNCATE TABLE cannot be used\nwhereas DELETE can. See [HELP TRUNCATE TABLE], and [HELP LOCK].\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/delete.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/delete.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (49,4,'ROUND','Syntax:\nROUND(X), ROUND(X,D)\n\nRounds the argument X to D decimal places. The rounding algorithm\ndepends on the data type of X. D defaults to 0 if not specified. D can\nbe negative to cause D digits left of the decimal point of the value X\nto become zero.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html\n\n','mysql> SELECT ROUND(-1.23);\n -> -1\nmysql> SELECT ROUND(-1.58);\n -> -2\nmysql> SELECT ROUND(1.58);\n -> 2\nmysql> SELECT ROUND(1.298, 1);\n -> 1.3\nmysql> SELECT ROUND(1.298, 0);\n -> 1\nmysql> SELECT ROUND(23.298, -1);\n -> 20\n','http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (50,7,'NULLIF','Syntax:\nNULLIF(expr1,expr2)\n\nReturns NULL if expr1 = expr2 is true, otherwise returns expr1. This is\nthe same as CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/control-flow-functions.html\n\n','mysql> SELECT NULLIF(1,1);\n -> NULL\nmysql> SELECT NULLIF(1,2);\n -> 1\n','http://dev.mysql.com/doc/refman/5.5/en/control-flow-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (51,23,'CLOSE','Syntax:\nCLOSE cursor_name\n\nThis statement closes a previously opened cursor. For an example, see\nhttp://dev.mysql.com/doc/refman/5.5/en/cursors.html.\n\nAn error occurs if the cursor is not open.\n\nIf not closed explicitly, a cursor is closed at the end of the BEGIN\n... END block in which it was declared.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/close.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/close.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (52,8,'STOP SLAVE','Syntax:\nSTOP SLAVE [thread_types]\n\nthread_types:\n [thread_type [, thread_type] ... ]\n\nthread_type: IO_THREAD | SQL_THREAD\n\nStops the slave threads. STOP SLAVE requires the SUPER privilege.\nRecommended best practice is to execute STOP SLAVE on the slave before\nstopping the slave server (see\nhttp://dev.mysql.com/doc/refman/5.5/en/server-shutdown.html, for more\ninformation).\n\nWhen using the row-based logging format: You should execute STOP SLAVE\non the slave prior to shutting down the slave server if you are\nreplicating any tables that use a nontransactional storage engine (see\nthe Note later in this section). In MySQL 5.5.9 and later, you can also\nuse STOP SLAVE SQL_THREAD for this purpose.\n\nLike START SLAVE, this statement may be used with the IO_THREAD and\nSQL_THREAD options to name the thread or threads to be stopped.\n\n*Note*: In MySQL 5.5, STOP SLAVE waits until the current replication\nevent group affecting one or more non-transactional tables has finished\nexecuting (if there is any such replication group), or until the user\nissues a KILL QUERY or KILL CONNECTION statement. (Bug #319, Bug\n#38205)\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/stop-slave.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/stop-slave.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (53,31,'TIMEDIFF','Syntax:\nTIMEDIFF(expr1,expr2)\n\nTIMEDIFF() returns expr1 - expr2 expressed as a time value. expr1 and\nexpr2 are time or date-and-time expressions, but both must be of the\nsame type.\n\nThe result returned by TIMEDIFF() is limited to the range allowed for\nTIME values. Alternatively, you can use either of the functions\nTIMESTAMPDIFF() and UNIX_TIMESTAMP(), both of which return integers.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT TIMEDIFF(\'2000:01:01 00:00:00\',\n -> \'2000:01:01 00:00:00.000001\');\n -> \'-00:00:00.000001\'\nmysql> SELECT TIMEDIFF(\'2008-12-31 23:59:59.000001\',\n -> \'2008-12-30 01:01:01.000002\');\n -> \'46:58:57.999999\'\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (54,37,'REPLACE FUNCTION','Syntax:\nREPLACE(str,from_str,to_str)\n\nReturns the string str with all occurrences of the string from_str\nreplaced by the string to_str. REPLACE() performs a case-sensitive\nmatch when searching for from_str.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT REPLACE(\'www.mysql.com\', \'w\', \'Ww\');\n -> \'WwWwWw.mysql.com\'\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (55,28,'USE','Syntax:\nUSE db_name\n\nThe USE db_name statement tells MySQL to use the db_name database as\nthe default (current) database for subsequent statements. The database\nremains the default until the end of the session or another USE\nstatement is issued:\n\nUSE db1;\nSELECT COUNT(*) FROM mytable; # selects from db1.mytable\nUSE db2;\nSELECT COUNT(*) FROM mytable; # selects from db2.mytable\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/use.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/use.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (56,3,'LINEFROMTEXT','LineFromText(wkt[,srid]), LineStringFromText(wkt[,srid])\n\nConstructs a LINESTRING value using its WKT representation and SRID.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-wkt-functions\n\n','','http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-wkt-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (57,7,'CASE OPERATOR','Syntax:\nCASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN\nresult ...] [ELSE result] END\n\nCASE WHEN [condition] THEN result [WHEN [condition] THEN result ...]\n[ELSE result] END\n\nThe first version returns the result where value=compare_value. The\nsecond version returns the result for the first condition that is true.\nIf there was no matching result value, the result after ELSE is\nreturned, or NULL if there is no ELSE part.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/control-flow-functions.html\n\n','mysql> SELECT CASE 1 WHEN 1 THEN \'one\'\n -> WHEN 2 THEN \'two\' ELSE \'more\' END;\n -> \'one\'\nmysql> SELECT CASE WHEN 1>0 THEN \'true\' ELSE \'false\' END;\n -> \'true\'\nmysql> SELECT CASE BINARY \'B\'\n -> WHEN \'a\' THEN 1 WHEN \'b\' THEN 2 END;\n -> NULL\n','http://dev.mysql.com/doc/refman/5.5/en/control-flow-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (58,26,'SHOW MASTER STATUS','Syntax:\nSHOW MASTER STATUS\n\nThis statement provides status information about the binary log files\nof the master. It requires either the SUPER or REPLICATION CLIENT\nprivilege.\n\nExample:\n\nmysql> SHOW MASTER STATUS;\n+---------------+----------+--------------+------------------+\n| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |\n+---------------+----------+--------------+------------------+\n| mysql-bin.003 | 73 | test | manual,mysql |\n+---------------+----------+--------------+------------------+\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-master-status.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-master-status.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (59,31,'ADDTIME','Syntax:\nADDTIME(expr1,expr2)\n\nADDTIME() adds expr2 to expr1 and returns the result. expr1 is a time\nor datetime expression, and expr2 is a time expression.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT ADDTIME(\'2007-12-31 23:59:59.999999\', \'1 1:1:1.000002\');\n -> \'2008-01-02 01:01:01.000001\'\nmysql> SELECT ADDTIME(\'01:00:00.999999\', \'02:00:00.999998\');\n -> \'03:00:01.999997\'\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (60,34,'SPATIAL','For MyISAM tables, MySQL can create spatial indexes using syntax\nsimilar to that for creating regular indexes, but extended with the\nSPATIAL keyword. Currently, columns in spatial indexes must be declared\nNOT NULL. The following examples demonstrate how to create spatial\nindexes:\n\no With CREATE TABLE:\n\nCREATE TABLE geom (g GEOMETRY NOT NULL, SPATIAL INDEX(g)) ENGINE=MyISAM;\n\no With ALTER TABLE:\n\nALTER TABLE geom ADD SPATIAL INDEX(g);\n\no With CREATE INDEX:\n\nCREATE SPATIAL INDEX sp_index ON geom (g);\n\nFor MyISAM tables, SPATIAL INDEX creates an R-tree index. For storage\nengines that support nonspatial indexing of spatial columns, the engine\ncreates a B-tree index. A B-tree index on spatial values will be useful\nfor exact-value lookups, but not for range scans.\n\nFor more information on indexing spatial columns, see [HELP CREATE\nINDEX].\n\nTo drop spatial indexes, use ALTER TABLE or DROP INDEX:\n\no With ALTER TABLE:\n\nALTER TABLE geom DROP INDEX g;\n\no With DROP INDEX:\n\nDROP INDEX sp_index ON geom;\n\nExample: Suppose that a table geom contains more than 32,000\ngeometries, which are stored in the column g of type GEOMETRY. The\ntable also has an AUTO_INCREMENT column fid for storing object ID\nvalues.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-indexes.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-indexes.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (61,31,'TO_SECONDS','Syntax:\nTO_SECONDS(expr)\n\nGiven a date or datetime expr, returns a the number of seconds since\nthe year 0. If expr is not a valid date or datetime value, returns\nNULL.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT TO_SECONDS(950501);\n -> 62966505600\nmysql> SELECT TO_SECONDS(\'2009-11-29\');\n -> 63426672000\nmysql> SELECT TO_SECONDS(\'2009-11-29 13:43:32\');\n -> 63426721412\nmysql> SELECT TO_SECONDS( NOW() );\n -> 63426721458\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (62,31,'TIMESTAMPDIFF','Syntax:\nTIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)\n\nReturns datetime_expr2 - datetime_expr1, where datetime_expr1 and\ndatetime_expr2 are date or datetime expressions. One expression may be\na date and the other a datetime; a date value is treated as a datetime\nhaving the time part \'00:00:00\' where necessary. The unit for the\nresult (an integer) is given by the unit argument. The legal values for\nunit are the same as those listed in the description of the\nTIMESTAMPADD() function.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT TIMESTAMPDIFF(MONTH,\'2003-02-01\',\'2003-05-01\');\n -> 3\nmysql> SELECT TIMESTAMPDIFF(YEAR,\'2002-05-01\',\'2001-01-01\');\n -> -1\nmysql> SELECT TIMESTAMPDIFF(MINUTE,\'2003-02-01\',\'2003-05-01 12:05:55\');\n -> 128885\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (63,37,'UPPER','Syntax:\nUPPER(str)\n\nReturns the string str with all characters changed to uppercase\naccording to the current character set mapping. The default is latin1\n(cp1252 West European).\n\nmysql> SELECT UPPER(\'Hej\');\n -> \'HEJ\'\n\nSee the description of LOWER() for information that also applies to\nUPPER(), such as information about how to perform lettercase conversion\nof binary strings (BINARY, VARBINARY, BLOB) for which these functions\nare ineffective.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (64,31,'FROM_UNIXTIME','Syntax:\nFROM_UNIXTIME(unix_timestamp), FROM_UNIXTIME(unix_timestamp,format)\n\nReturns a representation of the unix_timestamp argument as a value in\n\'YYYY-MM-DD HH:MM:SS\' or YYYYMMDDHHMMSS.uuuuuu format, depending on\nwhether the function is used in a string or numeric context. The value\nis expressed in the current time zone. unix_timestamp is an internal\ntimestamp value such as is produced by the UNIX_TIMESTAMP() function.\n\nIf format is given, the result is formatted according to the format\nstring, which is used the same way as listed in the entry for the\nDATE_FORMAT() function.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT FROM_UNIXTIME(1196440219);\n -> \'2007-11-30 10:30:19\'\nmysql> SELECT FROM_UNIXTIME(1196440219) + 0;\n -> 20071130103019.000000\nmysql> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(),\n -> \'%Y %D %M %h:%i:%s %x\');\n -> \'2007 30th November 10:30:59 2007\'\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (65,22,'MEDIUMBLOB','MEDIUMBLOB\n\nA BLOB column with a maximum length of 16,777,215 (224 - 1) bytes. Each\nMEDIUMBLOB value is stored using a 3-byte length prefix that indicates\nthe number of bytes in the value.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-type-overview.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/string-type-overview.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (66,12,'SHA2','Syntax:\nSHA2(str, hash_length)\n\nCalculates the SHA-2 family of hash functions (SHA-224, SHA-256,\nSHA-384, and SHA-512). The first argument is the cleartext string to be\nhashed. The second argument indicates the desired bit length of the\nresult, which must have a value of 224, 256, 384, 512, or 0 (which is\nequivalent to 256). If either argument is NULL or the hash length is\nnot one of the permitted values, the return value is NULL. Otherwise,\nthe function result is a hash value containing the desired number of\nbits. See the notes at the beginning of this section about storing hash\nvalues efficiently.\n\nAs of MySQL 5.5.6, the return value is a nonbinary string in the\nconnection character set. Before 5.5.6, the return value is a binary\nstring; see the notes at the beginning of this section about using the\nvalue as a nonbinary string.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html\n\n','mysql> SELECT SHA2(\'abc\', 224);\n -> \'23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7\'\n','http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (67,7,'IFNULL','Syntax:\nIFNULL(expr1,expr2)\n\nIf expr1 is not NULL, IFNULL() returns expr1; otherwise it returns\nexpr2. IFNULL() returns a numeric or string value, depending on the\ncontext in which it is used.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/control-flow-functions.html\n\n','mysql> SELECT IFNULL(1,0);\n -> 1\nmysql> SELECT IFNULL(NULL,10);\n -> 10\nmysql> SELECT IFNULL(1/0,10);\n -> 10\nmysql> SELECT IFNULL(1/0,\'yes\');\n -> \'yes\'\n','http://dev.mysql.com/doc/refman/5.5/en/control-flow-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (68,26,'SHOW FUNCTION CODE','Syntax:\nSHOW FUNCTION CODE func_name\n\nThis statement is similar to SHOW PROCEDURE CODE but for stored\nfunctions. See [HELP SHOW PROCEDURE CODE].\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-function-code.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-function-code.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (69,26,'SHOW ERRORS','Syntax:\nSHOW ERRORS [LIMIT [offset,] row_count]\nSHOW COUNT(*) ERRORS\n\nThis statement is similar to SHOW WARNINGS, except that it displays\ninformation only for errors, rather than for errors, warnings, and\nnotes.\n\nThe LIMIT clause has the same syntax as for the SELECT statement. See\nhttp://dev.mysql.com/doc/refman/5.5/en/select.html.\n\nThe SHOW COUNT(*) ERRORS statement displays the number of errors. You\ncan also retrieve this number from the error_count variable:\n\nSHOW COUNT(*) ERRORS;\nSELECT @@error_count;\n\nSHOW ERRORS and error_count apply only to errors, not warnings or\nnotes. In other respects, they are similar to SHOW WARNINGS and\nwarning_count. In particular, SHOW ERRORS cannot display information\nfor more than max_error_count messages, and error_count can exceed the\nvalue of max_error_count if the number of errors exceeds\nmax_error_count.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-errors.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-errors.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (70,18,'LEAST','Syntax:\nLEAST(value1,value2,...)\n\nWith two or more arguments, returns the smallest (minimum-valued)\nargument. The arguments are compared using the following rules:\n\no If any argument is NULL, the result is NULL. No comparison is needed.\n\no If the return value is used in an INTEGER context or all arguments\n are integer-valued, they are compared as integers.\n\no If the return value is used in a REAL context or all arguments are\n real-valued, they are compared as reals.\n\no If the arguments comprise a mix of numbers and strings, they are\n compared as numbers.\n\no If any argument is a nonbinary (character) string, the arguments are\n compared as nonbinary strings.\n\no In all other cases, the arguments are compared as binary strings.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html\n\n','mysql> SELECT LEAST(2,0);\n -> 0\nmysql> SELECT LEAST(34.0,3.0,5.0,767.0);\n -> 3.0\nmysql> SELECT LEAST(\'B\',\'A\',\'C\');\n -> \'A\'\n','http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (71,18,'=','=\n\nEqual:\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html\n\n','mysql> SELECT 1 = 0;\n -> 0\nmysql> SELECT \'0\' = 0;\n -> 1\nmysql> SELECT \'0.0\' = 0;\n -> 1\nmysql> SELECT \'0.01\' = 0;\n -> 0\nmysql> SELECT \'.01\' = 0.01;\n -> 1\n','http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (72,37,'REVERSE','Syntax:\nREVERSE(str)\n\nReturns the string str with the order of the characters reversed.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT REVERSE(\'abc\');\n -> \'cba\'\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (73,18,'ISNULL','Syntax:\nISNULL(expr)\n\nIf expr is NULL, ISNULL() returns 1, otherwise it returns 0.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html\n\n','mysql> SELECT ISNULL(1+1);\n -> 0\nmysql> SELECT ISNULL(1/0);\n -> 1\n','http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (74,22,'BINARY','BINARY(M)\n\nThe BINARY type is similar to the CHAR type, but stores binary byte\nstrings rather than nonbinary character strings. M represents the\ncolumn length in bytes.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-type-overview.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/string-type-overview.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (75,22,'BLOB DATA TYPE','A BLOB is a binary large object that can hold a variable amount of\ndata. The four BLOB types are TINYBLOB, BLOB, MEDIUMBLOB, and LONGBLOB.\nThese differ only in the maximum length of the values they can hold.\nThe four TEXT types are TINYTEXT, TEXT, MEDIUMTEXT, and LONGTEXT. These\ncorrespond to the four BLOB types and have the same maximum lengths and\nstorage requirements. See\nhttp://dev.mysql.com/doc/refman/5.5/en/storage-requirements.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/blob.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/blob.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (76,36,'BOUNDARY','Boundary(g)\n\nReturns a geometry that is the closure of the combinatorial boundary of\nthe geometry value g.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#general-geometry-property-functions\n\n','','http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#general-geometry-property-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (77,10,'CREATE USER','Syntax:\nCREATE USER user_specification\n [, user_specification] ...\n\nuser_specification:\n user\n [\n IDENTIFIED BY [PASSWORD] \'password\'\n | IDENTIFIED WITH auth_plugin [AS \'auth_string\']\n ]\n\nThe CREATE USER statement creates new MySQL accounts. To use it, you\nmust have the global CREATE USER privilege or the INSERT privilege for\nthe mysql database. For each account, CREATE USER creates a new row in\nthe mysql.user table and assigns the account no privileges. An error\noccurs if the account already exists.\n\nEach account name uses the format described in\nhttp://dev.mysql.com/doc/refman/5.5/en/account-names.html. For example:\n\nCREATE USER \'jeffrey\'@\'localhost\' IDENTIFIED BY \'mypass\';\n\nIf you specify only the user name part of the account name, a host name\npart of \'%\' is used.\n\nThe user specification may indicate how the user should authenticate\nwhen connecting to the server:\n\no To enable the user to connect with no password (which is insecure),\n include no IDENTIFIED BY clause:\n\nCREATE USER \'jeffrey\'@\'localhost\';\n\n In this case, the account uses built-in authentication and clients\n must provide no password.\n\no To assign a password, use IDENTIFIED BY with the literal plaintext\n password value:\n\nCREATE USER \'jeffrey\'@\'localhost\' IDENTIFIED BY \'mypass\';\n\n The account uses built-in authentication and clients must match the\n given password.\n\no To avoid specifying the plaintext password if you know its hash value\n (the value that PASSWORD() would return for the password), specify\n the hash value preceded by the keyword PASSWORD:\n\nCREATE USER \'jeffrey\'@\'localhost\'\nIDENTIFIED BY PASSWORD \'*90E462C37378CED12064BB3388827D2BA3A9B689\';\n\n The account uses built-in authentication and clients must match the\n given password.\n\no To authenticate the account using a specific authentication plugin,\n use IDENTIFIED WITH, where auth_plugin is the plugin name. It can be\n an unquoted name or a quoted string literal. \'auth_string\' is an\n optional quoted string literal to pass to the plugin. The plugin\n interprets the meaning of the string, so its format is plugin\n specific. Consult the documentation for a given plugin for\n information about the authentication string values it accepts.\n\nCREATE USER \'jeffrey\'@\'localhost\'\nIDENTIFIED WITH my_auth_plugin;\n\n For connections that use this account, the server invokes the named\n plugin and clients must provide credentials as required for the\n authentication method that the plugin implements. If the server\n cannot find the plugin, either at account-creation time or connect\n time, an error occurs. IDENTIFIED WITH can be used as of MySQL 5.5.7.\n\nThe IDENTIFIED BY and IDENTIFIED WITH clauses are mutually exclusive,\nso at most one of them can be specified for a given user.\n\nFor additional information about setting passwords, see\nhttp://dev.mysql.com/doc/refman/5.5/en/assigning-passwords.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/create-user.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/create-user.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (78,24,'POINT','Point(x,y)\n\nConstructs a Point using its coordinates.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-mysql-specific-functions\n\n','','http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-mysql-specific-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (79,17,'CURRENT_USER','Syntax:\nCURRENT_USER, CURRENT_USER()\n\nReturns the user name and host name combination for the MySQL account\nthat the server used to authenticate the current client. This account\ndetermines your access privileges. The return value is a string in the\nutf8 character set.\n\nThe value of CURRENT_USER() can differ from the value of USER().\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/information-functions.html\n\n','mysql> SELECT USER();\n -> \'davida@localhost\'\nmysql> SELECT * FROM mysql.user;\nERROR 1044: Access denied for user \'\'@\'localhost\' to\ndatabase \'mysql\'\nmysql> SELECT CURRENT_USER();\n -> \'@localhost\'\n','http://dev.mysql.com/doc/refman/5.5/en/information-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (80,37,'LCASE','Syntax:\nLCASE(str)\n\nLCASE() is a synonym for LOWER().\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (81,18,'<=','Syntax:\n<=\n\nLess than or equal:\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html\n\n','mysql> SELECT 0.1 <= 2;\n -> 1\n','http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (82,26,'SHOW PROFILES','Syntax:\nSHOW PROFILES\n\nThe SHOW PROFILES statement, together with SHOW PROFILE, displays\nprofiling information that indicates resource usage for statements\nexecuted during the course of the current session. For more\ninformation, see [HELP SHOW PROFILE].\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-profiles.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-profiles.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (83,27,'UPDATE','Syntax:\nSingle-table syntax:\n\nUPDATE [LOW_PRIORITY] [IGNORE] table_reference\n SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...\n [WHERE where_condition]\n [ORDER BY ...]\n [LIMIT row_count]\n\nMultiple-table syntax:\n\nUPDATE [LOW_PRIORITY] [IGNORE] table_references\n SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...\n [WHERE where_condition]\n\nFor the single-table syntax, the UPDATE statement updates columns of\nexisting rows in the named table with new values. The SET clause\nindicates which columns to modify and the values they should be given.\nEach value can be given as an expression, or the keyword DEFAULT to set\na column explicitly to its default value. The WHERE clause, if given,\nspecifies the conditions that identify which rows to update. With no\nWHERE clause, all rows are updated. If the ORDER BY clause is\nspecified, the rows are updated in the order that is specified. The\nLIMIT clause places a limit on the number of rows that can be updated.\n\nFor the multiple-table syntax, UPDATE updates rows in each table named\nin table_references that satisfy the conditions. In this case, ORDER BY\nand LIMIT cannot be used.\n\nwhere_condition is an expression that evaluates to true for each row to\nbe updated. For expression syntax, see\nhttp://dev.mysql.com/doc/refman/5.5/en/expressions.html.\n\ntable_references and where_condition are is specified as described in\nhttp://dev.mysql.com/doc/refman/5.5/en/select.html.\n\nYou need the UPDATE privilege only for columns referenced in an UPDATE\nthat are actually updated. You need only the SELECT privilege for any\ncolumns that are read but not modified.\n\nThe UPDATE statement supports the following modifiers:\n\no With the LOW_PRIORITY keyword, execution of the UPDATE is delayed\n until no other clients are reading from the table. This affects only\n storage engines that use only table-level locking (such as MyISAM,\n MEMORY, and MERGE).\n\no With the IGNORE keyword, the update statement does not abort even if\n errors occur during the update. Rows for which duplicate-key\n conflicts occur are not updated. Rows for which columns are updated\n to values that would cause data conversion errors are updated to the\n closest valid values instead.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/update.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/update.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (84,18,'IS NOT NULL','Syntax:\nIS NOT NULL\n\nTests whether a value is not NULL.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html\n\n','mysql> SELECT 1 IS NOT NULL, 0 IS NOT NULL, NULL IS NOT NULL;\n -> 1, 1, 0\n','http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (85,23,'CASE STATEMENT','Syntax:\nCASE case_value\n WHEN when_value THEN statement_list\n [WHEN when_value THEN statement_list] ...\n [ELSE statement_list]\nEND CASE\n\nOr:\n\nCASE\n WHEN search_condition THEN statement_list\n [WHEN search_condition THEN statement_list] ...\n [ELSE statement_list]\nEND CASE\n\nThe CASE statement for stored programs implements a complex conditional\nconstruct.\n\n*Note*: There is also a CASE expression, which differs from the CASE\nstatement described here. See\nhttp://dev.mysql.com/doc/refman/5.5/en/control-flow-functions.html. The\nCASE statement cannot have an ELSE NULL clause, and it is terminated\nwith END CASE instead of END.\n\nFor the first syntax, case_value is an expression. This value is\ncompared to the when_value expression in each WHEN clause until one of\nthem is equal. When an equal when_value is found, the corresponding\nTHEN clause statement_list executes. If no when_value is equal, the\nELSE clause statement_list executes, if there is one.\n\nThis syntax cannot be used to test for equality with NULL because NULL\n= NULL is false. See\nhttp://dev.mysql.com/doc/refman/5.5/en/working-with-null.html.\n\nFor the second syntax, each WHEN clause search_condition expression is\nevaluated until one is true, at which point its corresponding THEN\nclause statement_list executes. If no search_condition is equal, the\nELSE clause statement_list executes, if there is one.\n\nIf no when_value or search_condition matches the value tested and the\nCASE statement contains no ELSE clause, a Case not found for CASE\nstatement error results.\n\nEach statement_list consists of one or more SQL statements; an empty\nstatement_list is not permitted.\n\nTo handle situations where no value is matched by any WHEN clause, use\nan ELSE containing an empty BEGIN ... END block, as shown in this\nexample. (The indentation used here in the ELSE clause is for purposes\nof clarity only, and is not otherwise significant.)\n\nDELIMITER |\n\nCREATE PROCEDURE p()\n BEGIN\n DECLARE v INT DEFAULT 1;\n\n CASE v\n WHEN 2 THEN SELECT v;\n WHEN 3 THEN SELECT 0;\n ELSE\n BEGIN\n END;\n END CASE;\n END;\n |\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/case.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/case.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (86,8,'EXECUTE STATEMENT','Syntax:\nEXECUTE stmt_name\n [USING @var_name [, @var_name] ...]\n\nAfter preparing a statement with PREPARE, you execute it with an\nEXECUTE statement that refers to the prepared statement name. If the\nprepared statement contains any parameter markers, you must supply a\nUSING clause that lists user variables containing the values to be\nbound to the parameters. Parameter values can be supplied only by user\nvariables, and the USING clause must name exactly as many variables as\nthe number of parameter markers in the statement.\n\nYou can execute a given prepared statement multiple times, passing\ndifferent variables to it or setting the variables to different values\nbefore each execution.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/execute.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/execute.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (87,39,'DROP INDEX','Syntax:\nDROP [ONLINE|OFFLINE] INDEX index_name ON tbl_name\n\nDROP INDEX drops the index named index_name from the table tbl_name.\nThis statement is mapped to an ALTER TABLE statement to drop the index.\nSee [HELP ALTER TABLE].\n\nTo drop a primary key, the index name is always PRIMARY, which must be\nspecified as a quoted identifier because PRIMARY is a reserved word:\n\nDROP INDEX `PRIMARY` ON t;\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/drop-index.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/drop-index.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (88,37,'MATCH AGAINST','Syntax:\nMATCH (col1,col2,...) AGAINST (expr [search_modifier])\n\nMySQL has support for full-text indexing and searching:\n\no A full-text index in MySQL is an index of type FULLTEXT.\n\no Full-text indexes can be used only with MyISAM tables, and can be\n created only for CHAR, VARCHAR, or TEXT columns.\n\no A FULLTEXT index definition can be given in the CREATE TABLE\n statement when a table is created, or added later using ALTER TABLE\n or CREATE INDEX.\n\no For large data sets, it is much faster to load your data into a table\n that has no FULLTEXT index and then create the index after that, than\n to load data into a table that has an existing FULLTEXT index.\n\nFull-text searching is performed using MATCH() ... AGAINST syntax.\nMATCH() takes a comma-separated list that names the columns to be\nsearched. AGAINST takes a string to search for, and an optional\nmodifier that indicates what type of search to perform. The search\nstring must be a literal string, not a variable or a column name. There\nare three types of full-text searches:\n\no A natural language search interprets the search string as a phrase in\n natural human language (a phrase in free text). There are no special\n operators. The stopword list applies. In addition, words that are\n present in 50% or more of the rows are considered common and do not\n match.\n\n Full-text searches are natural language searches if the IN NATURAL\n LANGUAGE MODE modifier is given or if no modifier is given. For more\n information, see\n http://dev.mysql.com/doc/refman/5.5/en/fulltext-natural-language.html\n .\n\no A boolean search interprets the search string using the rules of a\n special query language. The string contains the words to search for.\n It can also contain operators that specify requirements such that a\n word must be present or absent in matching rows, or that it should be\n weighted higher or lower than usual. Common words such as "some" or\n "then" are stopwords and do not match if present in the search\n string. The IN BOOLEAN MODE modifier specifies a boolean search. For\n more information, see\n http://dev.mysql.com/doc/refman/5.5/en/fulltext-boolean.html.\n\no A query expansion search is a modification of a natural language\n search. The search string is used to perform a natural language\n search. Then words from the most relevant rows returned by the search\n are added to the search string and the search is done again. The\n query returns the rows from the second search. The IN NATURAL\n LANGUAGE MODE WITH QUERY EXPANSION or WITH QUERY EXPANSION modifier\n specifies a query expansion search. For more information, see\n http://dev.mysql.com/doc/refman/5.5/en/fulltext-query-expansion.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html\n\n','mysql> SELECT id, body, MATCH (title,body) AGAINST\n -> (\'Security implications of running MySQL as root\'\n -> IN NATURAL LANGUAGE MODE) AS score\n -> FROM articles WHERE MATCH (title,body) AGAINST\n -> (\'Security implications of running MySQL as root\'\n -> IN NATURAL LANGUAGE MODE);\n+----+-------------------------------------+-----------------+\n| id | body | score |\n+----+-------------------------------------+-----------------+\n| 4 | 1. Never run mysqld as root. 2. ... | 1.5219271183014 |\n| 6 | When configured properly, MySQL ... | 1.3114095926285 |\n+----+-------------------------------------+-----------------+\n2 rows in set (0.00 sec)\n','http://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (89,39,'CREATE EVENT','Syntax:\nCREATE\n [DEFINER = { user | CURRENT_USER }]\n EVENT\n [IF NOT EXISTS]\n event_name\n ON SCHEDULE schedule\n [ON COMPLETION [NOT] PRESERVE]\n [ENABLE | DISABLE | DISABLE ON SLAVE]\n [COMMENT \'comment\']\n DO event_body;\n\nschedule:\n AT timestamp [+ INTERVAL interval] ...\n | EVERY interval\n [STARTS timestamp [+ INTERVAL interval] ...]\n [ENDS timestamp [+ INTERVAL interval] ...]\n\ninterval:\n quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |\n WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |\n DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}\n\nThis statement creates and schedules a new event. The event will not\nrun unless the Event Scheduler is enabled. For information about\nchecking Event Scheduler status and enabling it if necessary, see\nhttp://dev.mysql.com/doc/refman/5.5/en/events-configuration.html.\n\nCREATE EVENT requires the EVENT privilege for the schema in which the\nevent is to be created. It might also require the SUPER privilege,\ndepending on the DEFINER value, as described later in this section.\n\nThe minimum requirements for a valid CREATE EVENT statement are as\nfollows:\n\no The keywords CREATE EVENT plus an event name, which uniquely\n identifies the event in a database schema.\n\no An ON SCHEDULE clause, which determines when and how often the event\n executes.\n\no A DO clause, which contains the SQL statement to be executed by an\n event.\n\nThis is an example of a minimal CREATE EVENT statement:\n\nCREATE EVENT myevent\n ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR\n DO\n UPDATE myschema.mytable SET mycol = mycol + 1;\n\nThe previous statement creates an event named myevent. This event\nexecutes once---one hour following its creation---by running an SQL\nstatement that increments the value of the myschema.mytable table\'s\nmycol column by 1.\n\nThe event_name must be a valid MySQL identifier with a maximum length\nof 64 characters. Event names are not case sensitive, so you cannot\nhave two events named myevent and MyEvent in the same schema. In\ngeneral, the rules governing event names are the same as those for\nnames of stored routines. See\nhttp://dev.mysql.com/doc/refman/5.5/en/identifiers.html.\n\nAn event is associated with a schema. If no schema is indicated as part\nof event_name, the default (current) schema is assumed. To create an\nevent in a specific schema, qualify the event name with a schema using\nschema_name.event_name syntax.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/create-event.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/create-event.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (90,4,'ABS','Syntax:\nABS(X)\n\nReturns the absolute value of X.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html\n\n','mysql> SELECT ABS(2);\n -> 2\nmysql> SELECT ABS(-32);\n -> 32\n','http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (91,32,'POLYFROMWKB','PolyFromWKB(wkb[,srid]), PolygonFromWKB(wkb[,srid])\n\nConstructs a POLYGON value using its WKB representation and SRID.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-wkb-functions\n\n','','http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-wkb-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (92,37,'NOT LIKE','Syntax:\nexpr NOT LIKE pat [ESCAPE \'escape_char\']\n\nThis is the same as NOT (expr LIKE pat [ESCAPE \'escape_char\']).\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-comparison-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/string-comparison-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (93,37,'SPACE','Syntax:\nSPACE(N)\n\nReturns a string consisting of N space characters.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT SPACE(6);\n -> \' \'\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (94,6,'MBR DEFINITION','Its MBR (Minimum Bounding Rectangle), or Envelope. This is the bounding\ngeometry, formed by the minimum and maximum (X,Y) coordinates:\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/gis-class-geometry.html\n\n','((MINX MINY, MAXX MINY, MAXX MAXY, MINX MAXY, MINX MINY))\n','http://dev.mysql.com/doc/refman/5.5/en/gis-class-geometry.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (95,24,'GEOMETRYCOLLECTION','GeometryCollection(g1,g2,...)\n\nConstructs a GeometryCollection.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-mysql-specific-functions\n\n','','http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-mysql-specific-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (96,16,'MAX','Syntax:\nMAX([DISTINCT] expr)\n\nReturns the maximum value of expr. MAX() may take a string argument; in\nsuch cases, it returns the maximum string value. See\nhttp://dev.mysql.com/doc/refman/5.5/en/mysql-indexes.html. The DISTINCT\nkeyword can be used to find the maximum of the distinct values of expr,\nhowever, this produces the same result as omitting DISTINCT.\n\nMAX() returns NULL if there were no matching rows.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html\n\n','mysql> SELECT student_name, MIN(test_score), MAX(test_score)\n -> FROM student\n -> GROUP BY student_name;\n','http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (97,21,'CREATE FUNCTION UDF','Syntax:\nCREATE [AGGREGATE] FUNCTION function_name RETURNS {STRING|INTEGER|REAL|DECIMAL}\n SONAME shared_library_name\n\nA user-defined function (UDF) is a way to extend MySQL with a new\nfunction that works like a native (built-in) MySQL function such as\nABS() or CONCAT().\n\nfunction_name is the name that should be used in SQL statements to\ninvoke the function. The RETURNS clause indicates the type of the\nfunction\'s return value. DECIMAL is a legal value after RETURNS, but\ncurrently DECIMAL functions return string values and should be written\nlike STRING functions.\n\nshared_library_name is the basename of the shared object file that\ncontains the code that implements the function. The file must be\nlocated in the plugin directory. This directory is given by the value\nof the plugin_dir system variable. For more information, see\nhttp://dev.mysql.com/doc/refman/5.5/en/udf-compiling.html.\n\nTo create a function, you must have the INSERT privilege for the mysql\ndatabase. This is necessary because CREATE FUNCTION adds a row to the\nmysql.func system table that records the function\'s name, type, and\nshared library name. If you do not have this table, you should run the\nmysql_upgrade command to create it. See\nhttp://dev.mysql.com/doc/refman/5.5/en/mysql-upgrade.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/create-function-udf.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/create-function-udf.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (98,4,'*','Syntax:\n*\n\nMultiplication:\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/arithmetic-functions.html\n\n','mysql> SELECT 3*5;\n -> 15\nmysql> SELECT 18014398509481984*18014398509481984.0;\n -> 324518553658426726783156020576256.0\nmysql> SELECT 18014398509481984*18014398509481984;\n -> 0\n','http://dev.mysql.com/doc/refman/5.5/en/arithmetic-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (99,22,'TIMESTAMP','TIMESTAMP\n\nA timestamp. The range is \'1970-01-01 00:00:01\' UTC to \'2038-01-19\n03:14:07\' UTC. TIMESTAMP values are stored as the number of seconds\nsince the epoch (\'1970-01-01 00:00:00\' UTC). A TIMESTAMP cannot\nrepresent the value \'1970-01-01 00:00:00\' because that is equivalent to\n0 seconds from the epoch and the value 0 is reserved for representing\n\'0000-00-00 00:00:00\', the "zero" TIMESTAMP value.\n\nUnless specified otherwise, the first TIMESTAMP column in a table is\ndefined to be automatically set to the date and time of the most recent\nmodification if not explicitly assigned a value. This makes TIMESTAMP\nuseful for recording the timestamp of an INSERT or UPDATE operation.\nYou can also set any TIMESTAMP column to the current date and time by\nassigning it a NULL value, unless it has been defined with the NULL\nattribute to permit NULL values. The automatic initialization and\nupdating to the current date and time can be specified using DEFAULT\nCURRENT_TIMESTAMP and ON UPDATE CURRENT_TIMESTAMP clauses, as described\nin\nhttp://dev.mysql.com/doc/refman/5.5/en/timestamp-initialization.html.\n\n*Note*: The TIMESTAMP format that was used prior to MySQL 4.1 is not\nsupported in MySQL 5.5; see MySQL 3.23, 4.0, 4.1 Reference Manual for\ninformation regarding the old format.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-type-overview.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-type-overview.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (100,12,'DES_DECRYPT','Syntax:\nDES_DECRYPT(crypt_str[,key_str])\n\nDecrypts a string encrypted with DES_ENCRYPT(). If an error occurs,\nthis function returns NULL.\n\nThis function works only if MySQL has been configured with SSL support.\nSee http://dev.mysql.com/doc/refman/5.5/en/ssl-connections.html.\n\nIf no key_str argument is given, DES_DECRYPT() examines the first byte\nof the encrypted string to determine the DES key number that was used\nto encrypt the original string, and then reads the key from the DES key\nfile to decrypt the message. For this to work, the user must have the\nSUPER privilege. The key file can be specified with the --des-key-file\nserver option.\n\nIf you pass this function a key_str argument, that string is used as\nthe key for decrypting the message.\n\nIf the crypt_str argument does not appear to be an encrypted string,\nMySQL returns the given crypt_str.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (101,26,'CACHE INDEX','Syntax:\nCACHE INDEX\n tbl_index_list [, tbl_index_list] ...\n [PARTITION (partition_list | ALL)]\n IN key_cache_name\n\ntbl_index_list:\n tbl_name [[INDEX|KEY] (index_name[, index_name] ...)]\n\npartition_list:\n partition_name[, partition_name][, ...]\n\nThe CACHE INDEX statement assigns table indexes to a specific key\ncache. It is used only for MyISAM tables. After the indexes have been\nassigned, they can be preloaded into the cache if desired with LOAD\nINDEX INTO CACHE.\n\nThe following statement assigns indexes from the tables t1, t2, and t3\nto the key cache named hot_cache:\n\nmysql> CACHE INDEX t1, t2, t3 IN hot_cache;\n+---------+--------------------+----------+----------+\n| Table | Op | Msg_type | Msg_text |\n+---------+--------------------+----------+----------+\n| test.t1 | assign_to_keycache | status | OK |\n| test.t2 | assign_to_keycache | status | OK |\n| test.t3 | assign_to_keycache | status | OK |\n+---------+--------------------+----------+----------+\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/cache-index.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/cache-index.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (102,13,'ENDPOINT','EndPoint(ls)\n\nReturns the Point that is the endpoint of the LineString value ls.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#linestring-property-functions\n\n','mysql> SET @ls = \'LineString(1 1,2 2,3 3)\';\nmysql> SELECT AsText(EndPoint(GeomFromText(@ls)));\n+-------------------------------------+\n| AsText(EndPoint(GeomFromText(@ls))) |\n+-------------------------------------+\n| POINT(3 3) |\n+-------------------------------------+\n','http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#linestring-property-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (103,12,'COMPRESS','Syntax:\nCOMPRESS(string_to_compress)\n\nCompresses a string and returns the result as a binary string. This\nfunction requires MySQL to have been compiled with a compression\nlibrary such as zlib. Otherwise, the return value is always NULL. The\ncompressed string can be uncompressed with UNCOMPRESS().\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html\n\n','mysql> SELECT LENGTH(COMPRESS(REPEAT(\'a\',1000)));\n -> 21\nmysql> SELECT LENGTH(COMPRESS(\'\'));\n -> 0\nmysql> SELECT LENGTH(COMPRESS(\'a\'));\n -> 13\nmysql> SELECT LENGTH(COMPRESS(REPEAT(\'a\',16)));\n -> 15\n','http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (104,27,'INSERT','Syntax:\nINSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]\n [INTO] tbl_name [(col_name,...)]\n {VALUES | VALUE} ({expr | DEFAULT},...),(...),...\n [ ON DUPLICATE KEY UPDATE\n col_name=expr\n [, col_name=expr] ... ]\n\nOr:\n\nINSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]\n [INTO] tbl_name\n SET col_name={expr | DEFAULT}, ...\n [ ON DUPLICATE KEY UPDATE\n col_name=expr\n [, col_name=expr] ... ]\n\nOr:\n\nINSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]\n [INTO] tbl_name [(col_name,...)]\n SELECT ...\n [ ON DUPLICATE KEY UPDATE\n col_name=expr\n [, col_name=expr] ... ]\n\nINSERT inserts new rows into an existing table. The INSERT ... VALUES\nand INSERT ... SET forms of the statement insert rows based on\nexplicitly specified values. The INSERT ... SELECT form inserts rows\nselected from another table or tables. INSERT ... SELECT is discussed\nfurther in [HELP INSERT SELECT].\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/insert.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/insert.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (105,16,'COUNT','Syntax:\nCOUNT(expr)\n\nReturns a count of the number of non-NULL values of expr in the rows\nretrieved by a SELECT statement. The result is a BIGINT value.\n\nCOUNT() returns 0 if there were no matching rows.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html\n\n','mysql> SELECT student.student_name,COUNT(*)\n -> FROM student,course\n -> WHERE student.student_id=course.student_id\n -> GROUP BY student_name;\n','http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (106,27,'HANDLER','Syntax:\nHANDLER tbl_name OPEN [ [AS] alias]\n\nHANDLER tbl_name READ index_name { = | <= | >= | < | > } (value1,value2,...)\n [ WHERE where_condition ] [LIMIT ... ]\nHANDLER tbl_name READ index_name { FIRST | NEXT | PREV | LAST }\n [ WHERE where_condition ] [LIMIT ... ]\nHANDLER tbl_name READ { FIRST | NEXT }\n [ WHERE where_condition ] [LIMIT ... ]\n\nHANDLER tbl_name CLOSE\n\nThe HANDLER statement provides direct access to table storage engine\ninterfaces. It is available for MyISAM and InnoDB tables.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/handler.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/handler.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (107,3,'MLINEFROMTEXT','MLineFromText(wkt[,srid]), MultiLineStringFromText(wkt[,srid])\n\nConstructs a MULTILINESTRING value using its WKT representation and\nSRID.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-wkt-functions\n\n','','http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-wkt-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (108,32,'GEOMCOLLFROMWKB','GeomCollFromWKB(wkb[,srid]), GeometryCollectionFromWKB(wkb[,srid])\n\nConstructs a GEOMETRYCOLLECTION value using its WKB representation and\nSRID.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-wkb-functions\n\n','','http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-wkb-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (109,9,'HELP_DATE','This help information was generated from the MySQL 5.5 Reference Manual\non: 2012-08-25\n','',''); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (110,39,'RENAME TABLE','Syntax:\nRENAME TABLE tbl_name TO new_tbl_name\n [, tbl_name2 TO new_tbl_name2] ...\n\nThis statement renames one or more tables.\n\nThe rename operation is done atomically, which means that no other\nsession can access any of the tables while the rename is running. For\nexample, if you have an existing table old_table, you can create\nanother table new_table that has the same structure but is empty, and\nthen replace the existing table with the empty one as follows (assuming\nthat backup_table does not already exist):\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/rename-table.html\n\n','CREATE TABLE new_table (...);\nRENAME TABLE old_table TO backup_table, new_table TO old_table;\n','http://dev.mysql.com/doc/refman/5.5/en/rename-table.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (111,22,'BOOLEAN','BOOL, BOOLEAN\n\nThese types are synonyms for TINYINT(1). A value of zero is considered\nfalse. Nonzero values are considered true:\n\nmysql> SELECT IF(0, \'true\', \'false\');\n+------------------------+\n| IF(0, \'true\', \'false\') |\n+------------------------+\n| false |\n+------------------------+\n\nmysql> SELECT IF(1, \'true\', \'false\');\n+------------------------+\n| IF(1, \'true\', \'false\') |\n+------------------------+\n| true |\n+------------------------+\n\nmysql> SELECT IF(2, \'true\', \'false\');\n+------------------------+\n| IF(2, \'true\', \'false\') |\n+------------------------+\n| true |\n+------------------------+\n\nHowever, the values TRUE and FALSE are merely aliases for 1 and 0,\nrespectively, as shown here:\n\nmysql> SELECT IF(0 = FALSE, \'true\', \'false\');\n+--------------------------------+\n| IF(0 = FALSE, \'true\', \'false\') |\n+--------------------------------+\n| true |\n+--------------------------------+\n\nmysql> SELECT IF(1 = TRUE, \'true\', \'false\');\n+-------------------------------+\n| IF(1 = TRUE, \'true\', \'false\') |\n+-------------------------------+\n| true |\n+-------------------------------+\n\nmysql> SELECT IF(2 = TRUE, \'true\', \'false\');\n+-------------------------------+\n| IF(2 = TRUE, \'true\', \'false\') |\n+-------------------------------+\n| false |\n+-------------------------------+\n\nmysql> SELECT IF(2 = FALSE, \'true\', \'false\');\n+--------------------------------+\n| IF(2 = FALSE, \'true\', \'false\') |\n+--------------------------------+\n| false |\n+--------------------------------+\n\nThe last two statements display the results shown because 2 is equal to\nneither 1 nor 0.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (112,14,'DEFAULT','Syntax:\nDEFAULT(col_name)\n\nReturns the default value for a table column. An error results if the\ncolumn has no default value.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/miscellaneous-functions.html\n\n','mysql> UPDATE t SET i = DEFAULT(i)+1 WHERE id < 100;\n','http://dev.mysql.com/doc/refman/5.5/en/miscellaneous-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (113,4,'MOD','Syntax:\nMOD(N,M), N % M, N MOD M\n\nModulo operation. Returns the remainder of N divided by M.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html\n\n','mysql> SELECT MOD(234, 10);\n -> 4\nmysql> SELECT 253 % 7;\n -> 1\nmysql> SELECT MOD(29,9);\n -> 2\nmysql> SELECT 29 MOD 9;\n -> 2\n','http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (114,22,'TINYTEXT','TINYTEXT [CHARACTER SET charset_name] [COLLATE collation_name]\n\nA TEXT column with a maximum length of 255 (28 - 1) characters. The\neffective maximum length is less if the value contains multi-byte\ncharacters. Each TINYTEXT value is stored using a 1-byte length prefix\nthat indicates the number of bytes in the value.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-type-overview.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/string-type-overview.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (115,20,'OPTIMIZE TABLE','Syntax:\nOPTIMIZE [NO_WRITE_TO_BINLOG | LOCAL] TABLE\n tbl_name [, tbl_name] ...\n\nOPTIMIZE TABLE should be used if you have deleted a large part of a\ntable or if you have made many changes to a table with variable-length\nrows (tables that have VARCHAR, VARBINARY, BLOB, or TEXT columns).\nDeleted rows are maintained in a linked list and subsequent INSERT\noperations reuse old row positions. You can use OPTIMIZE TABLE to\nreclaim the unused space and to defragment the data file. After\nextensive changes to a table, this statement may also improve\nperformance of statements that use the table, sometimes significantly.\n\nThis statement requires SELECT and INSERT privileges for the table.\n\nOPTIMIZE TABLE is supported for partitioned tables, and you can use\nALTER TABLE ... OPTIMIZE PARTITION to optimize one or more partitions;\nfor more information, see [HELP ALTER TABLE], and\nhttp://dev.mysql.com/doc/refman/5.5/en/partitioning-maintenance.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/optimize-table.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/optimize-table.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (116,12,'DECODE','Syntax:\nDECODE(crypt_str,pass_str)\n\nDecrypts the encrypted string crypt_str using pass_str as the password.\ncrypt_str should be a string returned from ENCODE().\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (117,18,'<=>','Syntax:\n<=>\n\nNULL-safe equal. This operator performs an equality comparison like the\n= operator, but returns 1 rather than NULL if both operands are NULL,\nand 0 rather than NULL if one operand is NULL.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html\n\n','mysql> SELECT 1 <=> 1, NULL <=> NULL, 1 <=> NULL;\n -> 1, 1, 0\nmysql> SELECT 1 = 1, NULL = NULL, 1 = NULL;\n -> 1, NULL, NULL\n','http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (118,28,'HELP STATEMENT','Syntax:\nHELP \'search_string\'\n\nThe HELP statement returns online information from the MySQL Reference\nmanual. Its proper operation requires that the help tables in the mysql\ndatabase be initialized with help topic information (see\nhttp://dev.mysql.com/doc/refman/5.5/en/server-side-help-support.html).\n\nThe HELP statement searches the help tables for the given search string\nand displays the result of the search. The search string is not case\nsensitive.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/help.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/help.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (119,26,'RESET','Syntax:\nRESET reset_option [, reset_option] ...\n\nThe RESET statement is used to clear the state of various server\noperations. You must have the RELOAD privilege to execute RESET.\n\nRESET acts as a stronger version of the FLUSH statement. See [HELP\nFLUSH].\n\nThe RESET statement causes an implicit commit. See\nhttp://dev.mysql.com/doc/refman/5.5/en/implicit-commit.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/reset.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/reset.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (120,14,'GET_LOCK','Syntax:\nGET_LOCK(str,timeout)\n\nTries to obtain a lock with a name given by the string str, using a\ntimeout of timeout seconds. Returns 1 if the lock was obtained\nsuccessfully, 0 if the attempt timed out (for example, because another\nclient has previously locked the name), or NULL if an error occurred\n(such as running out of memory or the thread was killed with mysqladmin\nkill). If you have a lock obtained with GET_LOCK(), it is released when\nyou execute RELEASE_LOCK(), execute a new GET_LOCK(), or your\nconnection terminates (either normally or abnormally). Locks obtained\nwith GET_LOCK() do not interact with transactions. That is, committing\na transaction does not release any such locks obtained during the\ntransaction.\n\nThis function can be used to implement application locks or to simulate\nrecord locks. Names are locked on a server-wide basis. If a name has\nbeen locked by one client, GET_LOCK() blocks any request by another\nclient for a lock with the same name. This enables clients that agree\non a given lock name to use the name to perform cooperative advisory\nlocking. But be aware that it also enables a client that is not among\nthe set of cooperating clients to lock a name, either inadvertently or\ndeliberately, and thus prevent any of the cooperating clients from\nlocking that name. One way to reduce the likelihood of this is to use\nlock names that are database-specific or application-specific. For\nexample, use lock names of the form db_name.str or app_name.str.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/miscellaneous-functions.html\n\n','mysql> SELECT GET_LOCK(\'lock1\',10);\n -> 1\nmysql> SELECT IS_FREE_LOCK(\'lock2\');\n -> 1\nmysql> SELECT GET_LOCK(\'lock2\',10);\n -> 1\nmysql> SELECT RELEASE_LOCK(\'lock2\');\n -> 1\nmysql> SELECT RELEASE_LOCK(\'lock1\');\n -> NULL\n','http://dev.mysql.com/doc/refman/5.5/en/miscellaneous-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (121,37,'UCASE','Syntax:\nUCASE(str)\n\nUCASE() is a synonym for UPPER().\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (122,26,'SHOW BINLOG EVENTS','Syntax:\nSHOW BINLOG EVENTS\n [IN \'log_name\'] [FROM pos] [LIMIT [offset,] row_count]\n\nShows the events in the binary log. If you do not specify \'log_name\',\nthe first binary log is displayed.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-binlog-events.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-binlog-events.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (123,32,'MPOLYFROMWKB','MPolyFromWKB(wkb[,srid]), MultiPolygonFromWKB(wkb[,srid])\n\nConstructs a MULTIPOLYGON value using its WKB representation and SRID.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-wkb-functions\n\n','','http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-wkb-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (124,23,'ITERATE','Syntax:\nITERATE label\n\nITERATE can appear only within LOOP, REPEAT, and WHILE statements.\nITERATE means "start the loop again."\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/iterate.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/iterate.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (125,27,'DO','Syntax:\nDO expr [, expr] ...\n\nDO executes the expressions but does not return any results. In most\nrespects, DO is shorthand for SELECT expr, ..., but has the advantage\nthat it is slightly faster when you do not care about the result.\n\nDO is useful primarily with functions that have side effects, such as\nRELEASE_LOCK().\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/do.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/do.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (126,31,'CURTIME','Syntax:\nCURTIME()\n\nReturns the current time as a value in \'HH:MM:SS\' or HHMMSS.uuuuuu\nformat, depending on whether the function is used in a string or\nnumeric context. The value is expressed in the current time zone.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT CURTIME();\n -> \'23:50:26\'\nmysql> SELECT CURTIME() + 0;\n -> 235026.000000\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (127,37,'CHAR_LENGTH','Syntax:\nCHAR_LENGTH(str)\n\nReturns the length of the string str, measured in characters. A\nmulti-byte character counts as a single character. This means that for\na string containing five 2-byte characters, LENGTH() returns 10,\nwhereas CHAR_LENGTH() returns 5.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (128,22,'BIGINT','BIGINT[(M)] [UNSIGNED] [ZEROFILL]\n\nA large integer. The signed range is -9223372036854775808 to\n9223372036854775807. The unsigned range is 0 to 18446744073709551615.\n\nSERIAL is an alias for BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (129,26,'SET','Syntax:\nSET variable_assignment [, variable_assignment] ...\n\nvariable_assignment:\n user_var_name = expr\n | [GLOBAL | SESSION] system_var_name = expr\n | [@@global. | @@session. | @@]system_var_name = expr\n\nThe SET statement assigns values to different types of variables that\naffect the operation of the server or your client. Older versions of\nMySQL employed SET OPTION, but this syntax is deprecated in favor of\nSET without OPTION.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/set-statement.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/set-statement.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (130,27,'LOAD XML','Syntax:\nLOAD XML [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE \'file_name\'\n [REPLACE | IGNORE]\n INTO TABLE [db_name.]tbl_name\n [CHARACTER SET charset_name]\n [ROWS IDENTIFIED BY \'\']\n [IGNORE number {LINES | ROWS}]\n [(column_or_user_var,...)]\n [SET col_name = expr,...]\n\nThe LOAD XML statement reads data from an XML file into a table. The\nfile_name must be given as a literal string. The tagname in the\noptional ROWS IDENTIFIED BY clause must also be given as a literal\nstring, and must be surrounded by angle brackets (< and >).\n\nLOAD XML acts as the complement of running the mysql client in XML\noutput mode (that is, starting the client with the --xml option). To\nwrite data from a table to an XML file, use a command such as the\nfollowing one from the system shell:\n\nshell> mysql --xml -e \'SELECT * FROM mytable\' > file.xml\n\nTo read the file back into a table, use LOAD XML INFILE. By default,\nthe element is considered to be the equivalent of a database\ntable row; this can be changed using the ROWS IDENTIFIED BY clause.\n\nThis statement supports three different XML formats:\n\no Column names as attributes and column values as attribute values:\n\n\n\no Column names as tags and column values as the content of these tags:\n\n\n value1\n value2\n\n\no Column names are the name attributes of tags, and values are\n the contents of these tags:\n\n\n value1\n value2\n\n\n This is the format used by other MySQL tools, such as mysqldump.\n\nAll 3 formats can be used in the same XML file; the import routine\nautomatically detects the format for each row and interprets it\ncorrectly. Tags are matched based on the tag or attribute name and the\ncolumn name.\n\nThe following clauses work essentially the same way for LOAD XML as\nthey do for LOAD DATA:\n\no LOW_PRIORITY or CONCURRENT\n\no LOCAL\n\no REPLACE or IGNORE\n\no CHARACTER SET\n\no (column_or_user_var,...)\n\no SET\n\nSee [HELP LOAD DATA], for more information about these clauses.\n\nThe IGNORE number LINES or IGNORE number ROWS clause causes the first\nnumber rows in the XML file to be skipped. It is analogous to the LOAD\nDATA statement\'s IGNORE ... LINES clause.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/load-xml.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/load-xml.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (131,4,'CONV','Syntax:\nCONV(N,from_base,to_base)\n\nConverts numbers between different number bases. Returns a string\nrepresentation of the number N, converted from base from_base to base\nto_base. Returns NULL if any argument is NULL. The argument N is\ninterpreted as an integer, but may be specified as an integer or a\nstring. The minimum base is 2 and the maximum base is 36. If to_base is\na negative number, N is regarded as a signed number. Otherwise, N is\ntreated as unsigned. CONV() works with 64-bit precision.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html\n\n','mysql> SELECT CONV(\'a\',16,2);\n -> \'1010\'\nmysql> SELECT CONV(\'6E\',18,8);\n -> \'172\'\nmysql> SELECT CONV(-17,10,-18);\n -> \'-H\'\nmysql> SELECT CONV(10+\'10\'+\'10\'+0xa,10,10);\n -> \'40\'\n','http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (132,22,'DATE','DATE\n\nA date. The supported range is \'1000-01-01\' to \'9999-12-31\'. MySQL\ndisplays DATE values in \'YYYY-MM-DD\' format, but permits assignment of\nvalues to DATE columns using either strings or numbers.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-type-overview.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-type-overview.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (133,15,'ASSIGN-VALUE','Syntax:\n:=\n\nAssignment operator. Causes the user variable on the left hand side of\nthe operator to take on the value to its right. The value on the right\nhand side may be a literal value, another variable storing a value, or\nany legal expression that yields a scalar value, including the result\nof a query (provided that this value is a scalar value). You can\nperform multiple assignments in the same SET statement. You can perform\nmultiple assignments in the same statement-\n\nUnlike =, the := operator is never interpreted as a comparison\noperator. This means you can use := in any valid SQL statement (not\njust in SET statements) to assign a value to a variable.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/assignment-operators.html\n\n','mysql> SELECT @var1, @var2;\n -> NULL, NULL\nmysql> SELECT @var1 := 1, @var2;\n -> 1, NULL\nmysql> SELECT @var1, @var2;\n -> 1, NULL\nmysql> SELECT @var1, @var2 := @var1;\n -> 1, 1\nmysql> SELECT @var1, @var2;\n -> 1, 1\n\nmysql> SELECT @var1:=COUNT(*) FROM t1;\n -> 4\nmysql> SELECT @var1;\n -> 4\n','http://dev.mysql.com/doc/refman/5.5/en/assignment-operators.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (134,26,'SHOW OPEN TABLES','Syntax:\nSHOW OPEN TABLES [{FROM | IN} db_name]\n [LIKE \'pattern\' | WHERE expr]\n\nSHOW OPEN TABLES lists the non-TEMPORARY tables that are currently open\nin the table cache. See\nhttp://dev.mysql.com/doc/refman/5.5/en/table-cache.html. The FROM\nclause, if present, restricts the tables shown to those present in the\ndb_name database. The LIKE clause, if present, indicates which table\nnames to match. The WHERE clause can be given to select rows using more\ngeneral conditions, as discussed in\nhttp://dev.mysql.com/doc/refman/5.5/en/extended-show.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-open-tables.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-open-tables.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (135,31,'EXTRACT','Syntax:\nEXTRACT(unit FROM date)\n\nThe EXTRACT() function uses the same kinds of unit specifiers as\nDATE_ADD() or DATE_SUB(), but extracts parts from the date rather than\nperforming date arithmetic.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT EXTRACT(YEAR FROM \'2009-07-02\');\n -> 2009\nmysql> SELECT EXTRACT(YEAR_MONTH FROM \'2009-07-02 01:02:03\');\n -> 200907\nmysql> SELECT EXTRACT(DAY_MINUTE FROM \'2009-07-02 01:02:03\');\n -> 20102\nmysql> SELECT EXTRACT(MICROSECOND\n -> FROM \'2003-01-02 10:30:00.000123\');\n -> 123\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (136,12,'ENCRYPT','Syntax:\nENCRYPT(str[,salt])\n\nEncrypts str using the Unix crypt() system call and returns a binary\nstring. The salt argument must be a string with at least two characters\nor the result will be NULL. If no salt argument is given, a random\nvalue is used.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html\n\n','mysql> SELECT ENCRYPT(\'hello\');\n -> \'VxuFAJXVARROc\'\n','http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (137,26,'SHOW STATUS','Syntax:\nSHOW [GLOBAL | SESSION] STATUS\n [LIKE \'pattern\' | WHERE expr]\n\nSHOW STATUS provides server status information. This information also\ncan be obtained using the mysqladmin extended-status command. The LIKE\nclause, if present, indicates which variable names to match. The WHERE\nclause can be given to select rows using more general conditions, as\ndiscussed in http://dev.mysql.com/doc/refman/5.5/en/extended-show.html.\nThis statement does not require any privilege. It requires only the\nability to connect to the server.\nWith a LIKE clause, the statement displays only rows for those\nvariables with names that match the pattern:\n\nmysql> SHOW STATUS LIKE \'Key%\';\n+--------------------+----------+\n| Variable_name | Value |\n+--------------------+----------+\n| Key_blocks_used | 14955 |\n| Key_read_requests | 96854827 |\n| Key_reads | 162040 |\n| Key_write_requests | 7589728 |\n| Key_writes | 3813196 |\n+--------------------+----------+\n\nWith the GLOBAL modifier, SHOW STATUS displays the status values for\nall connections to MySQL. With SESSION, it displays the status values\nfor the current connection. If no modifier is present, the default is\nSESSION. LOCAL is a synonym for SESSION.\n\nSome status variables have only a global value. For these, you get the\nsame value for both GLOBAL and SESSION. The scope for each status\nvariable is listed at\nhttp://dev.mysql.com/doc/refman/5.5/en/server-status-variables.html.\n\nEach invocation of the SHOW STATUS statement uses an internal temporary\ntable and increments the global Created_tmp_tables value.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-status.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-status.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (138,37,'EXTRACTVALUE','Syntax:\nExtractValue(xml_frag, xpath_expr)\n\nExtractValue() takes two string arguments, a fragment of XML markup\nxml_frag and an XPath expression xpath_expr (also known as a locator);\nit returns the text (CDATA) of the first text node which is a child of\nthe elements or elements matched by the XPath expression. In MySQL 5.5,\nthe XPath expression can contain at most 127 characters. (This\nlimitation is lifted in MySQL 5.6.)\n\nUsing this function is the equivalent of performing a match using the\nxpath_expr after appending /text(). In other words,\nExtractValue(\'Sakila\', \'/a/b\') and\nExtractValue(\'Sakila\', \'/a/b/text()\') produce the same\nresult.\n\nIf multiple matches are found, the content of the first child text node\nof each matching element is returned (in the order matched) as a\nsingle, space-delimited string.\n\nIf no matching text node is found for the expression (including the\nimplicit /text())---for whatever reason, as long as xpath_expr is\nvalid, and xml_frag consists of elements which are properly nested and\nclosed---an empty string is returned. No distinction is made between a\nmatch on an empty element and no match at all. This is by design.\n\nIf you need to determine whether no matching element was found in\nxml_frag or such an element was found but contained no child text\nnodes, you should test the result of an expression that uses the XPath\ncount() function. For example, both of these statements return an empty\nstring, as shown here:\n\nmysql> SELECT ExtractValue(\'\', \'/a/b\');\n+-------------------------------------+\n| ExtractValue(\'\', \'/a/b\') |\n+-------------------------------------+\n| |\n+-------------------------------------+\n1 row in set (0.00 sec)\n\nmysql> SELECT ExtractValue(\'\', \'/a/b\');\n+-------------------------------------+\n| ExtractValue(\'\', \'/a/b\') |\n+-------------------------------------+\n| |\n+-------------------------------------+\n1 row in set (0.00 sec)\n\nHowever, you can determine whether there was actually a matching\nelement using the following:\n\nmysql> SELECT ExtractValue(\'\', \'count(/a/b)\');\n+-------------------------------------+\n| ExtractValue(\'\', \'count(/a/b)\') |\n+-------------------------------------+\n| 1 |\n+-------------------------------------+\n1 row in set (0.00 sec)\n\nmysql> SELECT ExtractValue(\'\', \'count(/a/b)\');\n+-------------------------------------+\n| ExtractValue(\'\', \'count(/a/b)\') |\n+-------------------------------------+\n| 0 |\n+-------------------------------------+\n1 row in set (0.01 sec)\n\n*Important*: ExtractValue() returns only CDATA, and does not return any\ntags that might be contained within a matching tag, nor any of their\ncontent (see the result returned as val1 in the following example).\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/xml-functions.html\n\n','mysql> SELECT\n -> ExtractValue(\'cccddd\', \'/a\') AS val1,\n -> ExtractValue(\'cccddd\', \'/a/b\') AS val2,\n -> ExtractValue(\'cccddd\', \'//b\') AS val3,\n -> ExtractValue(\'cccddd\', \'/b\') AS val4,\n -> ExtractValue(\'cccdddeee\', \'//b\') AS val5;\n\n+------+------+------+------+---------+\n| val1 | val2 | val3 | val4 | val5 |\n+------+------+------+------+---------+\n| ccc | ddd | ddd | | ddd eee |\n+------+------+------+------+---------+\n','http://dev.mysql.com/doc/refman/5.5/en/xml-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (139,12,'OLD_PASSWORD','Syntax:\nOLD_PASSWORD(str)\n\nOLD_PASSWORD() was added when the implementation of PASSWORD() was\nchanged in MySQL 4.1 to improve security. OLD_PASSWORD() returns the\nvalue of the pre-4.1 implementation of PASSWORD() as a string, and is\nintended to permit you to reset passwords for any pre-4.1 clients that\nneed to connect to your version 5.5 MySQL server without locking them\nout. See http://dev.mysql.com/doc/refman/5.5/en/password-hashing.html.\n\nAs of MySQL 5.5.3, the return value is a nonbinary string in the\nconnection character set. Before 5.5.3, the return value is a binary\nstring.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (140,37,'FORMAT','Syntax:\nFORMAT(X,D[,locale])\n\nFormats the number X to a format like \'#,###,###.##\', rounded to D\ndecimal places, and returns the result as a string. If D is 0, the\nresult has no decimal point or fractional part.\n\nThe optional third parameter enables a locale to be specified to be\nused for the result number\'s decimal point, thousands separator, and\ngrouping between separators. Permissible locale values are the same as\nthe legal values for the lc_time_names system variable (see\nhttp://dev.mysql.com/doc/refman/5.5/en/locale-support.html). If no\nlocale is specified, the default is \'en_US\'.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT FORMAT(12332.123456, 4);\n -> \'12,332.1235\'\nmysql> SELECT FORMAT(12332.1,4);\n -> \'12,332.1000\'\nmysql> SELECT FORMAT(12332.2,0);\n -> \'12,332\'\nmysql> SELECT FORMAT(12332.2,2,\'de_DE\');\n -> \'12.332,20\'\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (141,15,'||','Syntax:\nOR, ||\n\nLogical OR. When both operands are non-NULL, the result is 1 if any\noperand is nonzero, and 0 otherwise. With a NULL operand, the result is\n1 if the other operand is nonzero, and NULL otherwise. If both operands\nare NULL, the result is NULL.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/logical-operators.html\n\n','mysql> SELECT 1 || 1;\n -> 1\nmysql> SELECT 1 || 0;\n -> 1\nmysql> SELECT 0 || 0;\n -> 0\nmysql> SELECT 0 || NULL;\n -> NULL\nmysql> SELECT 1 || NULL;\n -> 1\n','http://dev.mysql.com/doc/refman/5.5/en/logical-operators.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (142,37,'BIT_LENGTH','Syntax:\nBIT_LENGTH(str)\n\nReturns the length of the string str in bits.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT BIT_LENGTH(\'text\');\n -> 32\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (143,2,'EXTERIORRING','ExteriorRing(poly)\n\nReturns the exterior ring of the Polygon value poly as a LineString.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#polygon-property-functions\n\n','mysql> SET @poly =\n -> \'Polygon((0 0,0 3,3 3,3 0,0 0),(1 1,1 2,2 2,2 1,1 1))\';\nmysql> SELECT AsText(ExteriorRing(GeomFromText(@poly)));\n+-------------------------------------------+\n| AsText(ExteriorRing(GeomFromText(@poly))) |\n+-------------------------------------------+\n| LINESTRING(0 0,0 3,3 3,3 0,0 0) |\n+-------------------------------------------+\n','http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#polygon-property-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (144,32,'GEOMFROMWKB','GeomFromWKB(wkb[,srid]), GeometryFromWKB(wkb[,srid])\n\nConstructs a geometry value of any type using its WKB representation\nand SRID.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-wkb-functions\n\n','','http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-wkb-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (145,26,'SHOW SLAVE HOSTS','Syntax:\nSHOW SLAVE HOSTS\n\nDisplays a list of replication slaves currently registered with the\nmaster. (Before MySQL 5.5.3, only slaves started with the\n--report-host=host_name option are visible in this list.)\n\nThe list is displayed on any server (not just the master server). The\noutput looks like this:\n\nmysql> SHOW SLAVE HOSTS;\n+------------+-----------+------+-----------+\n| Server_id | Host | Port | Master_id |\n+------------+-----------+------+-----------+\n| 192168010 | iconnect2 | 3306 | 192168011 |\n| 1921680101 | athena | 3306 | 192168011 |\n+------------+-----------+------+-----------+\n\no Server_id: The unique server ID of the slave server, as configured in\n the server\'s option file, or on the command line with\n --server-id=value.\n\no Host: The host name of the slave server, as configured in the\n server\'s option file, or on the command line with\n --report-host=host_name. Note that this can differ from the machine\n name as configured in the operating system.\n\no Port: The port the slave server is listening on.\n\n In MySQL 5.5.23 and later, a zero in this column means that the slave\n port (--report-port) was not set. Prior to MySQL 5.5.23, 3306 was\n used as the default in such cases (Bug #13333431).\n\no Master_id: The unique server ID of the master server that the slave\n server is replicating from.\n\nSome MySQL versions report another variable, Rpl_recovery_rank. This\nvariable was never used, and was removed in MySQL 5.5.3. (Bug #13963)\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-slave-hosts.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-slave-hosts.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (146,8,'START TRANSACTION','Syntax:\nSTART TRANSACTION [WITH CONSISTENT SNAPSHOT]\nBEGIN [WORK]\nCOMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE]\nROLLBACK [WORK] [AND [NO] CHAIN] [[NO] RELEASE]\nSET autocommit = {0 | 1}\n\nThese statements provide control over use of transactions:\n\no START TRANSACTION or BEGIN start a new transaction.\n\no COMMIT commits the current transaction, making its changes permanent.\n\no ROLLBACK rolls back the current transaction, canceling its changes.\n\no SET autocommit disables or enables the default autocommit mode for\n the current session.\n\nBy default, MySQL runs with autocommit mode enabled. This means that as\nsoon as you execute a statement that updates (modifies) a table, MySQL\nstores the update on disk to make it permanent. The change cannot be\nrolled back.\n\nTo disable autocommit mode implicitly for a single series of\nstatements, use the START TRANSACTION statement:\n\nSTART TRANSACTION;\nSELECT @A:=SUM(salary) FROM table1 WHERE type=1;\nUPDATE table2 SET summary=@A WHERE type=1;\nCOMMIT;\n\nWith START TRANSACTION, autocommit remains disabled until you end the\ntransaction with COMMIT or ROLLBACK. The autocommit mode then reverts\nto its previous state.\n\nYou can also begin a transaction like this:\n\nSTART TRANSACTION WITH CONSISTENT SNAPSHOT;\n\nThe WITH CONSISTENT SNAPSHOT option starts a consistent read for\nstorage engines that are capable of it. This applies only to InnoDB.\nThe effect is the same as issuing a START TRANSACTION followed by a\nSELECT from any InnoDB table. See\nhttp://dev.mysql.com/doc/refman/5.5/en/innodb-consistent-read.html. The\nWITH CONSISTENT SNAPSHOT option does not change the current transaction\nisolation level, so it provides a consistent snapshot only if the\ncurrent isolation level is one that permits consistent read (REPEATABLE\nREAD or SERIALIZABLE).\n\n*Important*: Many APIs used for writing MySQL client applications (such\nas JDBC) provide their own methods for starting transactions that can\n(and sometimes should) be used instead of sending a START TRANSACTION\nstatement from the client. See\nhttp://dev.mysql.com/doc/refman/5.5/en/connectors-apis.html, or the\ndocumentation for your API, for more information.\n\nTo disable autocommit mode explicitly, use the following statement:\n\nSET autocommit=0;\n\nAfter disabling autocommit mode by setting the autocommit variable to\nzero, changes to transaction-safe tables (such as those for InnoDB or\nNDBCLUSTER) are not made permanent immediately. You must use COMMIT to\nstore your changes to disk or ROLLBACK to ignore the changes.\n\nautocommit is a session variable and must be set for each session. To\ndisable autocommit mode for each new connection, see the description of\nthe autocommit system variable at\nhttp://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html.\n\nBEGIN and BEGIN WORK are supported as aliases of START TRANSACTION for\ninitiating a transaction. START TRANSACTION is standard SQL syntax and\nis the recommended way to start an ad-hoc transaction.\n\nThe BEGIN statement differs from the use of the BEGIN keyword that\nstarts a BEGIN ... END compound statement. The latter does not begin a\ntransaction. See [HELP BEGIN END].\n\n*Note*: Within all stored programs (stored procedures and functions,\ntriggers, and events), the parser treats BEGIN [WORK] as the beginning\nof a BEGIN ... END block. Begin a transaction in this context with\nSTART TRANSACTION instead.\n\nThe optional WORK keyword is supported for COMMIT and ROLLBACK, as are\nthe CHAIN and RELEASE clauses. CHAIN and RELEASE can be used for\nadditional control over transaction completion. The value of the\ncompletion_type system variable determines the default completion\nbehavior. See\nhttp://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html.\n\nThe AND CHAIN clause causes a new transaction to begin as soon as the\ncurrent one ends, and the new transaction has the same isolation level\nas the just-terminated transaction. The RELEASE clause causes the\nserver to disconnect the current client session after terminating the\ncurrent transaction. Including the NO keyword suppresses CHAIN or\nRELEASE completion, which can be useful if the completion_type system\nvariable is set to cause chaining or release completion by default.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/commit.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/commit.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (147,18,'BETWEEN AND','Syntax:\nexpr BETWEEN min AND max\n\nIf expr is greater than or equal to min and expr is less than or equal\nto max, BETWEEN returns 1, otherwise it returns 0. This is equivalent\nto the expression (min <= expr AND expr <= max) if all the arguments\nare of the same type. Otherwise type conversion takes place according\nto the rules described in\nhttp://dev.mysql.com/doc/refman/5.5/en/type-conversion.html, but\napplied to all the three arguments.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html\n\n','mysql> SELECT 2 BETWEEN 1 AND 3, 2 BETWEEN 3 and 1;\n -> 1, 0\nmysql> SELECT 1 BETWEEN 2 AND 3;\n -> 0\nmysql> SELECT \'b\' BETWEEN \'a\' AND \'c\';\n -> 1\nmysql> SELECT 2 BETWEEN 2 AND \'3\';\n -> 1\nmysql> SELECT 2 BETWEEN 2 AND \'x-3\';\n -> 0\n','http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (148,24,'MULTIPOLYGON','MultiPolygon(poly1,poly2,...)\n\nConstructs a MultiPolygon value from a set of Polygon or WKB Polygon\narguments.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-mysql-specific-functions\n\n','','http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-mysql-specific-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (149,31,'TIME_FORMAT','Syntax:\nTIME_FORMAT(time,format)\n\nThis is used like the DATE_FORMAT() function, but the format string may\ncontain format specifiers only for hours, minutes, seconds, and\nmicroseconds. Other specifiers produce a NULL value or 0.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT TIME_FORMAT(\'100:00:00\', \'%H %k %h %I %l\');\n -> \'100 100 04 04 4\'\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (150,37,'LEFT','Syntax:\nLEFT(str,len)\n\nReturns the leftmost len characters from the string str, or NULL if any\nargument is NULL.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT LEFT(\'foobarbar\', 5);\n -> \'fooba\'\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (151,26,'FLUSH QUERY CACHE','You can defragment the query cache to better utilize its memory with\nthe FLUSH QUERY CACHE statement. The statement does not remove any\nqueries from the cache.\n\nThe RESET QUERY CACHE statement removes all query results from the\nquery cache. The FLUSH TABLES statement also does this.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/query-cache-status-and-maintenance.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/query-cache-status-and-maintenance.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (152,22,'SET DATA TYPE','SET(\'value1\',\'value2\',...) [CHARACTER SET charset_name] [COLLATE\ncollation_name]\n\nA set. A string object that can have zero or more values, each of which\nmust be chosen from the list of values \'value1\', \'value2\', ... A SET\ncolumn can have a maximum of 64 members. SET values are represented\ninternally as integers.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-type-overview.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/string-type-overview.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (153,4,'RAND','Syntax:\nRAND(), RAND(N)\n\nReturns a random floating-point value v in the range 0 <= v < 1.0. If a\nconstant integer argument N is specified, it is used as the seed value,\nwhich produces a repeatable sequence of column values. In the following\nexample, note that the sequences of values produced by RAND(3) is the\nsame both places where it occurs.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html\n\n','mysql> CREATE TABLE t (i INT);\nQuery OK, 0 rows affected (0.42 sec)\n\nmysql> INSERT INTO t VALUES(1),(2),(3);\nQuery OK, 3 rows affected (0.00 sec)\nRecords: 3 Duplicates: 0 Warnings: 0\n\nmysql> SELECT i, RAND() FROM t;\n+------+------------------+\n| i | RAND() |\n+------+------------------+\n| 1 | 0.61914388706828 |\n| 2 | 0.93845168309142 |\n| 3 | 0.83482678498591 |\n+------+------------------+\n3 rows in set (0.00 sec)\n\nmysql> SELECT i, RAND(3) FROM t;\n+------+------------------+\n| i | RAND(3) |\n+------+------------------+\n| 1 | 0.90576975597606 |\n| 2 | 0.37307905813035 |\n| 3 | 0.14808605345719 |\n+------+------------------+\n3 rows in set (0.00 sec)\n\nmysql> SELECT i, RAND() FROM t;\n+------+------------------+\n| i | RAND() |\n+------+------------------+\n| 1 | 0.35877890638893 |\n| 2 | 0.28941420772058 |\n| 3 | 0.37073435016976 |\n+------+------------------+\n3 rows in set (0.00 sec)\n\nmysql> SELECT i, RAND(3) FROM t;\n+------+------------------+\n| i | RAND(3) |\n+------+------------------+\n| 1 | 0.90576975597606 |\n| 2 | 0.37307905813035 |\n| 3 | 0.14808605345719 |\n+------+------------------+\n3 rows in set (0.01 sec)\n','http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (154,37,'RPAD','Syntax:\nRPAD(str,len,padstr)\n\nReturns the string str, right-padded with the string padstr to a length\nof len characters. If str is longer than len, the return value is\nshortened to len characters.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT RPAD(\'hi\',5,\'?\');\n -> \'hi???\'\nmysql> SELECT RPAD(\'hi\',1,\'?\');\n -> \'h\'\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (155,39,'CREATE DATABASE','Syntax:\nCREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name\n [create_specification] ...\n\ncreate_specification:\n [DEFAULT] CHARACTER SET [=] charset_name\n | [DEFAULT] COLLATE [=] collation_name\n\nCREATE DATABASE creates a database with the given name. To use this\nstatement, you need the CREATE privilege for the database. CREATE\nSCHEMA is a synonym for CREATE DATABASE.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/create-database.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/create-database.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (156,22,'DEC','DEC[(M[,D])] [UNSIGNED] [ZEROFILL], NUMERIC[(M[,D])] [UNSIGNED]\n[ZEROFILL], FIXED[(M[,D])] [UNSIGNED] [ZEROFILL]\n\nThese types are synonyms for DECIMAL. The FIXED synonym is available\nfor compatibility with other database systems.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (157,16,'VAR_POP','Syntax:\nVAR_POP(expr)\n\nReturns the population standard variance of expr. It considers rows as\nthe whole population, not as a sample, so it has the number of rows as\nthe denominator. You can also use VARIANCE(), which is equivalent but\nis not standard SQL.\n\nVAR_POP() returns NULL if there were no matching rows.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (158,37,'ELT','Syntax:\nELT(N,str1,str2,str3,...)\n\nReturns str1 if N = 1, str2 if N = 2, and so on. Returns NULL if N is\nless than 1 or greater than the number of arguments. ELT() is the\ncomplement of FIELD().\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT ELT(1, \'ej\', \'Heja\', \'hej\', \'foo\');\n -> \'ej\'\nmysql> SELECT ELT(4, \'ej\', \'Heja\', \'hej\', \'foo\');\n -> \'foo\'\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (159,39,'ALTER VIEW','Syntax:\nALTER\n [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]\n [DEFINER = { user | CURRENT_USER }]\n [SQL SECURITY { DEFINER | INVOKER }]\n VIEW view_name [(column_list)]\n AS select_statement\n [WITH [CASCADED | LOCAL] CHECK OPTION]\n\nThis statement changes the definition of a view, which must exist. The\nsyntax is similar to that for CREATE VIEW and the effect is the same as\nfor CREATE OR REPLACE VIEW. See [HELP CREATE VIEW]. This statement\nrequires the CREATE VIEW and DROP privileges for the view, and some\nprivilege for each column referred to in the SELECT statement. ALTER\nVIEW is permitted only to the definer or users with the SUPER\nprivilege.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/alter-view.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/alter-view.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (160,26,'SHOW DATABASES','Syntax:\nSHOW {DATABASES | SCHEMAS}\n [LIKE \'pattern\' | WHERE expr]\n\nSHOW DATABASES lists the databases on the MySQL server host. SHOW\nSCHEMAS is a synonym for SHOW DATABASES. The LIKE clause, if present,\nindicates which database names to match. The WHERE clause can be given\nto select rows using more general conditions, as discussed in\nhttp://dev.mysql.com/doc/refman/5.5/en/extended-show.html.\n\nYou see only those databases for which you have some kind of privilege,\nunless you have the global SHOW DATABASES privilege. You can also get\nthis list using the mysqlshow command.\n\nIf the server was started with the --skip-show-database option, you\ncannot use this statement at all unless you have the SHOW DATABASES\nprivilege.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-databases.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-databases.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (161,19,'~','Syntax:\n~\n\nInvert all bits.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/bit-functions.html\n\n','mysql> SELECT 5 & ~1;\n -> 4\n','http://dev.mysql.com/doc/refman/5.5/en/bit-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (162,22,'TEXT','TEXT[(M)] [CHARACTER SET charset_name] [COLLATE collation_name]\n\nA TEXT column with a maximum length of 65,535 (216 - 1) characters. The\neffective maximum length is less if the value contains multi-byte\ncharacters. Each TEXT value is stored using a 2-byte length prefix that\nindicates the number of bytes in the value.\n\nAn optional length M can be given for this type. If this is done, MySQL\ncreates the column as the smallest TEXT type large enough to hold\nvalues M characters long.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-type-overview.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/string-type-overview.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (163,37,'CONCAT_WS','Syntax:\nCONCAT_WS(separator,str1,str2,...)\n\nCONCAT_WS() stands for Concatenate With Separator and is a special form\nof CONCAT(). The first argument is the separator for the rest of the\narguments. The separator is added between the strings to be\nconcatenated. The separator can be a string, as can the rest of the\narguments. If the separator is NULL, the result is NULL.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT CONCAT_WS(\',\',\'First name\',\'Second name\',\'Last Name\');\n -> \'First name,Second name,Last Name\'\nmysql> SELECT CONCAT_WS(\',\',\'First name\',NULL,\'Last Name\');\n -> \'First name,Last Name\'\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (164,17,'ROW_COUNT','Syntax:\nROW_COUNT()\n\nBefore MySQL 5.5.5, ROW_COUNT() returns the number of rows changed,\ndeleted, or inserted by the last statement if it was an UPDATE, DELETE,\nor INSERT. For other statements, the value may not be meaningful.\n\nAs of MySQL 5.5.5, ROW_COUNT() returns a value as follows:\n\no DDL statements: 0. This applies to statements such as CREATE TABLE or\n DROP TABLE.\n\no DML statements other than SELECT: The number of affected rows. This\n applies to statements such as UPDATE, INSERT, or DELETE (as before),\n but now also to statements such as ALTER TABLE and LOAD DATA INFILE.\n\no SELECT: -1 if the statement returns a result set, or the number of\n rows "affected" if it does not. For example, for SELECT * FROM t1,\n ROW_COUNT() returns -1. For SELECT * FROM t1 INTO OUTFILE\n \'file_name\', ROW_COUNT() returns the number of rows written to the\n file.\n\no SIGNAL statements: 0.\n\nFor UPDATE statements, the affected-rows value by default is the number\nof rows actually changed. If you specify the CLIENT_FOUND_ROWS flag to\nmysql_real_connect() when connecting to mysqld, the affected-rows value\nis the number of rows "found"; that is, matched by the WHERE clause.\n\nFor REPLACE statements, the affected-rows value is 2 if the new row\nreplaced an old row, because in this case, one row was inserted after\nthe duplicate was deleted.\n\nFor INSERT ... ON DUPLICATE KEY UPDATE statements, the affected-rows\nvalue is 1 if the row is inserted as a new row and 2 if an existing row\nis updated.\n\nThe ROW_COUNT() value is similar to the value from the\nmysql_affected_rows() C API function and the row count that the mysql\nclient displays following statement execution.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/information-functions.html\n\n','mysql> INSERT INTO t VALUES(1),(2),(3);\nQuery OK, 3 rows affected (0.00 sec)\nRecords: 3 Duplicates: 0 Warnings: 0\n\nmysql> SELECT ROW_COUNT();\n+-------------+\n| ROW_COUNT() |\n+-------------+\n| 3 |\n+-------------+\n1 row in set (0.00 sec)\n\nmysql> DELETE FROM t WHERE i IN(1,2);\nQuery OK, 2 rows affected (0.00 sec)\n\nmysql> SELECT ROW_COUNT();\n+-------------+\n| ROW_COUNT() |\n+-------------+\n| 2 |\n+-------------+\n1 row in set (0.00 sec)\n','http://dev.mysql.com/doc/refman/5.5/en/information-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (165,4,'ASIN','Syntax:\nASIN(X)\n\nReturns the arc sine of X, that is, the value whose sine is X. Returns\nNULL if X is not in the range -1 to 1.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html\n\n','mysql> SELECT ASIN(0.2);\n -> 0.20135792079033\nmysql> SELECT ASIN(\'foo\');\n\n+-------------+\n| ASIN(\'foo\') |\n+-------------+\n| 0 |\n+-------------+\n1 row in set, 1 warning (0.00 sec)\n\nmysql> SHOW WARNINGS;\n+---------+------+-----------------------------------------+\n| Level | Code | Message |\n+---------+------+-----------------------------------------+\n| Warning | 1292 | Truncated incorrect DOUBLE value: \'foo\' |\n+---------+------+-----------------------------------------+\n','http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (166,4,'SIGN','Syntax:\nSIGN(X)\n\nReturns the sign of the argument as -1, 0, or 1, depending on whether X\nis negative, zero, or positive.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html\n\n','mysql> SELECT SIGN(-32);\n -> -1\nmysql> SELECT SIGN(0);\n -> 0\nmysql> SELECT SIGN(234);\n -> 1\n','http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (167,31,'SEC_TO_TIME','Syntax:\nSEC_TO_TIME(seconds)\n\nReturns the seconds argument, converted to hours, minutes, and seconds,\nas a TIME value. The range of the result is constrained to that of the\nTIME data type. A warning occurs if the argument corresponds to a value\noutside that range.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT SEC_TO_TIME(2378);\n -> \'00:39:38\'\nmysql> SELECT SEC_TO_TIME(2378) + 0;\n -> 3938\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (168,22,'FLOAT','FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]\n\nA small (single-precision) floating-point number. Permissible values\nare -3.402823466E+38 to -1.175494351E-38, 0, and 1.175494351E-38 to\n3.402823466E+38. These are the theoretical limits, based on the IEEE\nstandard. The actual range might be slightly smaller depending on your\nhardware or operating system.\n\nM is the total number of digits and D is the number of digits following\nthe decimal point. If M and D are omitted, values are stored to the\nlimits permitted by the hardware. A single-precision floating-point\nnumber is accurate to approximately 7 decimal places.\n\nUNSIGNED, if specified, disallows negative values.\n\nUsing FLOAT might give you some unexpected problems because all\ncalculations in MySQL are done with double precision. See\nhttp://dev.mysql.com/doc/refman/5.5/en/no-matching-rows.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (169,37,'LOCATE','Syntax:\nLOCATE(substr,str), LOCATE(substr,str,pos)\n\nThe first syntax returns the position of the first occurrence of\nsubstring substr in string str. The second syntax returns the position\nof the first occurrence of substring substr in string str, starting at\nposition pos. Returns 0 if substr is not in str.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT LOCATE(\'bar\', \'foobarbar\');\n -> 4\nmysql> SELECT LOCATE(\'xbar\', \'foobar\');\n -> 0\nmysql> SELECT LOCATE(\'bar\', \'foobarbar\', 5);\n -> 7\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (170,26,'SHOW EVENTS','Syntax:\nSHOW EVENTS [{FROM | IN} schema_name]\n [LIKE \'pattern\' | WHERE expr]\n\nThis statement displays information about Event Manager events. It\nrequires the EVENT privilege for the database from which the events are\nto be shown.\n\nIn its simplest form, SHOW EVENTS lists all of the events in the\ncurrent schema:\n\nmysql> SELECT CURRENT_USER(), SCHEMA();\n+----------------+----------+\n| CURRENT_USER() | SCHEMA() |\n+----------------+----------+\n| jon@ghidora | myschema |\n+----------------+----------+\n1 row in set (0.00 sec)\n\nmysql> SHOW EVENTS\\G\n*************************** 1. row ***************************\n Db: myschema\n Name: e_daily\n Definer: jon@ghidora\n Time zone: SYSTEM\n Type: RECURRING\n Execute at: NULL\n Interval value: 10\n Interval field: SECOND\n Starts: 2006-02-09 10:41:23\n Ends: NULL\n Status: ENABLED\n Originator: 0\ncharacter_set_client: latin1\ncollation_connection: latin1_swedish_ci\n Database Collation: latin1_swedish_ci\n\nTo see events for a specific schema, use the FROM clause. For example,\nto see events for the test schema, use the following statement:\n\nSHOW EVENTS FROM test;\n\nThe LIKE clause, if present, indicates which event names to match. The\nWHERE clause can be given to select rows using more general conditions,\nas discussed in\nhttp://dev.mysql.com/doc/refman/5.5/en/extended-show.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-events.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-events.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (171,17,'CHARSET','Syntax:\nCHARSET(str)\n\nReturns the character set of the string argument.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/information-functions.html\n\n','mysql> SELECT CHARSET(\'abc\');\n -> \'latin1\'\nmysql> SELECT CHARSET(CONVERT(\'abc\' USING utf8));\n -> \'utf8\'\nmysql> SELECT CHARSET(USER());\n -> \'utf8\'\n','http://dev.mysql.com/doc/refman/5.5/en/information-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (172,31,'SUBDATE','Syntax:\nSUBDATE(date,INTERVAL expr unit), SUBDATE(expr,days)\n\nWhen invoked with the INTERVAL form of the second argument, SUBDATE()\nis a synonym for DATE_SUB(). For information on the INTERVAL unit\nargument, see the discussion for DATE_ADD().\n\nmysql> SELECT DATE_SUB(\'2008-01-02\', INTERVAL 31 DAY);\n -> \'2007-12-02\'\nmysql> SELECT SUBDATE(\'2008-01-02\', INTERVAL 31 DAY);\n -> \'2007-12-02\'\n\nThe second form enables the use of an integer value for days. In such\ncases, it is interpreted as the number of days to be subtracted from\nthe date or datetime expression expr.\n\nmysql> SELECT SUBDATE(\'2008-01-02 12:00:00\', 31);\n -> \'2007-12-02 12:00:00\'\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (173,31,'DAYOFYEAR','Syntax:\nDAYOFYEAR(date)\n\nReturns the day of the year for date, in the range 1 to 366.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT DAYOFYEAR(\'2007-02-03\');\n -> 34\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (174,4,'%','Syntax:\nN % M, N MOD M\n\nModulo operation. Returns the remainder of N divided by M. For more\ninformation, see the description for the MOD() function in\nhttp://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/arithmetic-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/arithmetic-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (175,22,'LONGTEXT','LONGTEXT [CHARACTER SET charset_name] [COLLATE collation_name]\n\nA TEXT column with a maximum length of 4,294,967,295 or 4GB (232 - 1)\ncharacters. The effective maximum length is less if the value contains\nmulti-byte characters. The effective maximum length of LONGTEXT columns\nalso depends on the configured maximum packet size in the client/server\nprotocol and available memory. Each LONGTEXT value is stored using a\n4-byte length prefix that indicates the number of bytes in the value.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-type-overview.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/string-type-overview.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (176,26,'KILL','Syntax:\nKILL [CONNECTION | QUERY] thread_id\n\nEach connection to mysqld runs in a separate thread. You can see which\nthreads are running with the SHOW PROCESSLIST statement and kill a\nthread with the KILL thread_id statement.\n\nKILL permits an optional CONNECTION or QUERY modifier:\n\no KILL CONNECTION is the same as KILL with no modifier: It terminates\n the connection associated with the given thread_id.\n\no KILL QUERY terminates the statement that the connection is currently\n executing, but leaves the connection itself intact.\n\nIf you have the PROCESS privilege, you can see all threads. If you have\nthe SUPER privilege, you can kill all threads and statements.\nOtherwise, you can see and kill only your own threads and statements.\n\nYou can also use the mysqladmin processlist and mysqladmin kill\ncommands to examine and kill threads.\n\n*Note*: You cannot use KILL with the Embedded MySQL Server library\nbecause the embedded server merely runs inside the threads of the host\napplication. It does not create any connection threads of its own.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/kill.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/kill.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (177,30,'DISJOINT','Disjoint(g1,g2)\n\nReturns 1 or 0 to indicate whether g1 is spatially disjoint from (does\nnot intersect) g2.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/functions-for-testing-spatial-relations-between-geometric-objects.html#functions-that-test-spatial-relationships-between-geometries\n\n','','http://dev.mysql.com/doc/refman/5.5/en/functions-for-testing-spatial-relations-between-geometric-objects.html#functions-that-test-spatial-relationships-between-geometries'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (178,3,'ASTEXT','AsText(g), AsWKT(g)\n\nConverts a value in internal geometry format to its WKT representation\nand returns the string result.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/functions-to-convert-geometries-between-formats.html\n\n','mysql> SET @g = \'LineString(1 1,2 2,3 3)\';\nmysql> SELECT AsText(GeomFromText(@g));\n+--------------------------+\n| AsText(GeomFromText(@g)) |\n+--------------------------+\n| LINESTRING(1 1,2 2,3 3) |\n+--------------------------+\n','http://dev.mysql.com/doc/refman/5.5/en/functions-to-convert-geometries-between-formats.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (179,37,'LPAD','Syntax:\nLPAD(str,len,padstr)\n\nReturns the string str, left-padded with the string padstr to a length\nof len characters. If str is longer than len, the return value is\nshortened to len characters.\n\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT LPAD(\'hi\',4,\'??\');\n -> \'??hi\'\nmysql> SELECT LPAD(\'hi\',1,\'??\');\n -> \'h\'\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (180,23,'DECLARE CONDITION','Syntax:\nDECLARE condition_name CONDITION FOR condition_value\n\ncondition_value:\n mysql_error_code\n | SQLSTATE [VALUE] sqlstate_value\n\nThe DECLARE ... CONDITION statement declares a named error condition,\nassociating a name with a condition that needs specific handling. The\nname can be referred to in a subsequent DECLARE ... HANDLER statement\n(see [HELP DECLARE HANDLER]).\n\nCondition declarations must appear before cursor or handler\ndeclarations.\n\nThe condition_value for DECLARE ... CONDITION can be a MySQL error code\n(a number) or an SQLSTATE value (a 5-character string literal). You\nshould not use MySQL error code 0 or SQLSTATE values that begin with\n\'00\', because those indicate success rather than an error condition.\nFor a list of MySQL error codes and SQLSTATE values, see\nhttp://dev.mysql.com/doc/refman/5.5/en/error-messages-server.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/declare-condition.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/declare-condition.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (181,30,'OVERLAPS','Overlaps(g1,g2)\n\nReturns 1 or 0 to indicate whether g1 spatially overlaps g2. The term\nspatially overlaps is used if two geometries intersect and their\nintersection results in a geometry of the same dimension but not equal\nto either of the given geometries.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/functions-for-testing-spatial-relations-between-geometric-objects.html#functions-that-test-spatial-relationships-between-geometries\n\n','','http://dev.mysql.com/doc/refman/5.5/en/functions-for-testing-spatial-relations-between-geometric-objects.html#functions-that-test-spatial-relationships-between-geometries'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (182,8,'SET GLOBAL SQL_SLAVE_SKIP_COUNTER','Syntax:\nSET GLOBAL sql_slave_skip_counter = N\n\nThis statement skips the next N events from the master. This is useful\nfor recovering from replication stops caused by a statement.\n\nThis statement is valid only when the slave threads are not running.\nOtherwise, it produces an error.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/set-global-sql-slave-skip-counter.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/set-global-sql-slave-skip-counter.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (183,25,'NUMGEOMETRIES','NumGeometries(gc)\n\nReturns the number of geometries in the GeometryCollection value gc.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#geometrycollection-property-functions\n\n','mysql> SET @gc = \'GeometryCollection(Point(1 1),LineString(2 2, 3 3))\';\nmysql> SELECT NumGeometries(GeomFromText(@gc));\n+----------------------------------+\n| NumGeometries(GeomFromText(@gc)) |\n+----------------------------------+\n| 2 |\n+----------------------------------+\n','http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#geometrycollection-property-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (184,31,'MONTHNAME','Syntax:\nMONTHNAME(date)\n\nReturns the full name of the month for date. The language used for the\nname is controlled by the value of the lc_time_names system variable\n(http://dev.mysql.com/doc/refman/5.5/en/locale-support.html).\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT MONTHNAME(\'2008-02-03\');\n -> \'February\'\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (185,8,'CHANGE MASTER TO','Syntax:\nCHANGE MASTER TO option [, option] ...\n\noption:\n MASTER_BIND = \'interface_name\'\n | MASTER_HOST = \'host_name\'\n | MASTER_USER = \'user_name\'\n | MASTER_PASSWORD = \'password\'\n | MASTER_PORT = port_num\n | MASTER_CONNECT_RETRY = interval\n | MASTER_HEARTBEAT_PERIOD = interval\n | MASTER_LOG_FILE = \'master_log_name\'\n | MASTER_LOG_POS = master_log_pos\n | RELAY_LOG_FILE = \'relay_log_name\'\n | RELAY_LOG_POS = relay_log_pos\n | MASTER_SSL = {0|1}\n | MASTER_SSL_CA = \'ca_file_name\'\n | MASTER_SSL_CAPATH = \'ca_directory_name\'\n | MASTER_SSL_CERT = \'cert_file_name\'\n | MASTER_SSL_KEY = \'key_file_name\'\n | MASTER_SSL_CIPHER = \'cipher_list\'\n | MASTER_SSL_VERIFY_SERVER_CERT = {0|1}\n | IGNORE_SERVER_IDS = (server_id_list)\n\nserver_id_list:\n [server_id [, server_id] ... ]\n\nCHANGE MASTER TO changes the parameters that the slave server uses for\nconnecting to the master server, for reading the master binary log, and\nreading the slave relay log. It also updates the contents of the\nmaster.info and relay-log.info files. To use CHANGE MASTER TO, the\nslave replication threads must be stopped (use STOP SLAVE if\nnecessary).\n\nOptions not specified retain their value, except as indicated in the\nfollowing discussion. Thus, in most cases, there is no need to specify\noptions that do not change. For example, if the password to connect to\nyour MySQL master has changed, you just need to issue these statements\nto tell the slave about the new password:\n\nSTOP SLAVE; -- if replication was running\nCHANGE MASTER TO MASTER_PASSWORD=\'new3cret\';\nSTART SLAVE; -- if you want to restart replication\n\nMASTER_HOST, MASTER_USER, MASTER_PASSWORD, and MASTER_PORT provide\ninformation to the slave about how to connect to its master:\n\no MASTER_HOST and MASTER_PORT are the host name (or IP address) of the\n master host and its TCP/IP port.\n\n *Note*: Replication cannot use Unix socket files. You must be able to\n connect to the master MySQL server using TCP/IP.\n\n If you specify the MASTER_HOST or MASTER_PORT option, the slave\n assumes that the master server is different from before (even if the\n option value is the same as its current value.) In this case, the old\n values for the master binary log file name and position are\n considered no longer applicable, so if you do not specify\n MASTER_LOG_FILE and MASTER_LOG_POS in the statement,\n MASTER_LOG_FILE=\'\' and MASTER_LOG_POS=4 are silently appended to it.\n\n Setting MASTER_HOST=\'\' (that is, setting its value explicitly to an\n empty string) is not the same as not setting MASTER_HOST at all.\n Beginning with MySQL 5.5, trying to set MASTER_HOST to an empty\n string fails with an error. Previously, setting MASTER_HOST to an\n empty string caused START SLAVE subsequently to fail. (Bug #28796)\n\no MASTER_USER and MASTER_PASSWORD are the user name and password of the\n account to use for connecting to the master.\n\n In MySQL 5.5.20 and later, MASTER_USER cannot be made empty; setting\n MASTER_USER = \'\' or leaving it unset when setting a value for for\n MASTER_PASSWORD causes an error (Bug #13427949).\n\n Currently, a password used for a replication slave account is\n effectively limited to 32 characters in length; the password can be\n longer, but any excess characters are truncated. This is not due to\n any limit imposed by the MySQL Server generally, but rather is an\n issue specific to MySQL Replication. (For more information, see Bug\n #43439.)\n\n The text of a running CHANGE MASTER TO statement, including values\n for MASTER_USER and MASTER_PASSWORD, can be seen in the output of a\n concurrent SHOW PROCESSLIST statement.\n\nThe MASTER_SSL_xxx options provide information about using SSL for the\nconnection. They correspond to the --ssl-xxx options described in\nhttp://dev.mysql.com/doc/refman/5.5/en/ssl-options.html, and\nhttp://dev.mysql.com/doc/refman/5.5/en/replication-solutions-ssl.html.\nThese options can be changed even on slaves that are compiled without\nSSL support. They are saved to the master.info file, but are ignored if\nthe slave does not have SSL support enabled.\n\nMASTER_CONNECT_RETRY specifies how many seconds to wait between connect\nretries. The default is 60. The number of reconnection attempts is\nlimited by the --master-retry-count server option; for more\ninformation, see\nhttp://dev.mysql.com/doc/refman/5.5/en/replication-options.html.\n\nThe MASTER_BIND option is available in MySQL Cluster NDB 7.2 and later,\nbut is not supported in mainline MySQL 5.5.\n\nMASTER_BIND is for use on replication slaves having multiple network\ninterfaces, and determines which of the slave\'s network interfaces is\nchosen for connecting to the master.\n\nMASTER_HEARTBEAT_PERIOD sets the interval in seconds between\nreplication heartbeats. Whenever the master\'s binary log is updated\nwith an event, the waiting period for the next heartbeat is reset.\ninterval is a decimal value having the range 0 to 4294967 seconds and a\nresolution in milliseconds; the smallest nonzero value is 0.001.\nHeartbeats are sent by the master only if there are no unsent events in\nthe binary log file for a period longer than interval.\n\nSetting interval to 0 disables heartbeats altogether. The default value\nfor interval is equal to the value of slave_net_timeout divided by 2.\n\nSetting @@global.slave_net_timeout to a value less than that of the\ncurrent heartbeat interval results in a warning being issued. The\neffect of issuing RESET SLAVE on the heartbeat interval is to reset it\nto the default value.\n\nMASTER_LOG_FILE and MASTER_LOG_POS are the coordinates at which the\nslave I/O thread should begin reading from the master the next time the\nthread starts. RELAY_LOG_FILE and RELAY_LOG_POS are the coordinates at\nwhich the slave SQL thread should begin reading from the relay log the\nnext time the thread starts. If you specify either of MASTER_LOG_FILE\nor MASTER_LOG_POS, you cannot specify RELAY_LOG_FILE or RELAY_LOG_POS.\nIf neither of MASTER_LOG_FILE or MASTER_LOG_POS is specified, the slave\nuses the last coordinates of the slave SQL thread before CHANGE MASTER\nTO was issued. This ensures that there is no discontinuity in\nreplication, even if the slave SQL thread was late compared to the\nslave I/O thread, when you merely want to change, say, the password to\nuse.\n\nCHANGE MASTER TO deletes all relay log files and starts a new one,\nunless you specify RELAY_LOG_FILE or RELAY_LOG_POS. In that case, relay\nlog files are kept; the relay_log_purge global variable is set silently\nto 0.\n\nPrior to MySQL 5.5, RELAY_LOG_FILE required an absolute path. In MySQL\n5.5, the path can be relative, in which case the path is assumed to be\nrelative to the slave\'s data directory. (Bug #12190)\n\nIGNORE_SERVER_IDS was added in MySQL 5.5. This option takes a\ncomma-separated list of 0 or more server IDs. Events originating from\nthe corresponding servers are ignored, with the exception of log\nrotation and deletion events, which are still recorded in the relay\nlog.\n\nIn circular replication, the originating server normally acts as the\nterminator of its own events, so that they are not applied more than\nonce. Thus, this option is useful in circular replication when one of\nthe servers in the circle is removed. Suppose that you have a circular\nreplication setup with 4 servers, having server IDs 1, 2, 3, and 4, and\nserver 3 fails. When bridging the gap by starting replication from\nserver 2 to server 4, you can include IGNORE_SERVER_IDS = (3) in the\nCHANGE MASTER TO statement that you issue on server 4 to tell it to use\nserver 2 as its master instead of server 3. Doing so causes it to\nignore and not to propagate any statements that originated with the\nserver that is no longer in use.\n\nIf a CHANGE MASTER TO statement is issued without any IGNORE_SERVER_IDS\noption, any existing list is preserved; RESET SLAVE also has no effect\non the server ID list. To clear the list of ignored servers, it is\nnecessary to use the option with an empty list:\n\nCHANGE MASTER TO IGNORE_SERVER_IDS = ();\n\nIf IGNORE_SERVER_IDS contains the server\'s own ID and the server was\nstarted with the --replicate-same-server-id option enabled, an error\nresults.\n\nAlso beginning with MySQL 5.5, the master.info file and the output of\nSHOW SLAVE STATUS are extended to provide the list of servers that are\ncurrently ignored. For more information, see\nhttp://dev.mysql.com/doc/refman/5.5/en/slave-logs-status.html, and\n[HELP SHOW SLAVE STATUS].\n\nBeginning with MySQL 5.5.5, invoking CHANGE MASTER TO causes the\nprevious values for MASTER_HOST, MASTER_PORT, MASTER_LOG_FILE, and\nMASTER_LOG_POS to be written to the error log, along with other\ninformation about the slave\'s state prior to execution.\n\nCHANGE MASTER TO is useful for setting up a slave when you have the\nsnapshot of the master and have recorded the master binary log\ncoordinates corresponding to the time of the snapshot. After loading\nthe snapshot into the slave to synchronize it to the slave, you can run\nCHANGE MASTER TO MASTER_LOG_FILE=\'log_name\', MASTER_LOG_POS=log_pos on\nthe slave to specify the coordinates at which the slave should begin\nreading the master binary log.\n\nThe following example changes the master server the slave uses and\nestablishes the master binary log coordinates from which the slave\nbegins reading. This is used when you want to set up the slave to\nreplicate the master:\n\nCHANGE MASTER TO\n MASTER_HOST=\'master2.mycompany.com\',\n MASTER_USER=\'replication\',\n MASTER_PASSWORD=\'bigs3cret\',\n MASTER_PORT=3306,\n MASTER_LOG_FILE=\'master2-bin.001\',\n MASTER_LOG_POS=4,\n MASTER_CONNECT_RETRY=10;\n\nThe next example shows an operation that is less frequently employed.\nIt is used when the slave has relay log files that you want it to\nexecute again for some reason. To do this, the master need not be\nreachable. You need only use CHANGE MASTER TO and start the SQL thread\n(START SLAVE SQL_THREAD):\n\nCHANGE MASTER TO\n RELAY_LOG_FILE=\'slave-relay-bin.006\',\n RELAY_LOG_POS=4025;\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/change-master-to.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/change-master-to.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (186,39,'DROP DATABASE','Syntax:\nDROP {DATABASE | SCHEMA} [IF EXISTS] db_name\n\nDROP DATABASE drops all tables in the database and deletes the\ndatabase. Be very careful with this statement! To use DROP DATABASE,\nyou need the DROP privilege on the database. DROP SCHEMA is a synonym\nfor DROP DATABASE.\n\n*Important*: When a database is dropped, user privileges on the\ndatabase are not automatically dropped. See [HELP GRANT].\n\nIF EXISTS is used to prevent an error from occurring if the database\ndoes not exist.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/drop-database.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/drop-database.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (187,6,'MBREQUAL','MBREqual(g1,g2)\n\nReturns 1 or 0 to indicate whether the Minimum Bounding Rectangles of\nthe two geometries g1 and g2 are the same.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/functions-for-testing-spatial-relations-between-geometric-objects.html#relations-on-geometry-mbr\n\n','','http://dev.mysql.com/doc/refman/5.5/en/functions-for-testing-spatial-relations-between-geometric-objects.html#relations-on-geometry-mbr'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (188,31,'TIMESTAMP FUNCTION','Syntax:\nTIMESTAMP(expr), TIMESTAMP(expr1,expr2)\n\nWith a single argument, this function returns the date or datetime\nexpression expr as a datetime value. With two arguments, it adds the\ntime expression expr2 to the date or datetime expression expr1 and\nreturns the result as a datetime value.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT TIMESTAMP(\'2003-12-31\');\n -> \'2003-12-31 00:00:00\'\nmysql> SELECT TIMESTAMP(\'2003-12-31 12:00:00\',\'12:00:00\');\n -> \'2004-01-01 00:00:00\'\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (189,33,'PROCEDURE ANALYSE','Syntax:\nANALYSE([max_elements[,max_memory]])\n\nANALYSE() examines the result from a query and returns an analysis of\nthe results that suggests optimal data types for each column that may\nhelp reduce table sizes. To obtain this analysis, append PROCEDURE\nANALYSE to the end of a SELECT statement:\n\nSELECT ... FROM ... WHERE ... PROCEDURE ANALYSE([max_elements,[max_memory]])\n\nFor example:\n\nSELECT col1, col2 FROM table1 PROCEDURE ANALYSE(10, 2000);\n\nThe results show some statistics for the values returned by the query,\nand propose an optimal data type for the columns. This can be helpful\nfor checking your existing tables, or after importing new data. You may\nneed to try different settings for the arguments so that PROCEDURE\nANALYSE() does not suggest the ENUM data type when it is not\nappropriate.\n\nThe arguments are optional and are used as follows:\n\no max_elements (default 256) is the maximum number of distinct values\n that ANALYSE() notices per column. This is used by ANALYSE() to check\n whether the optimal data type should be of type ENUM; if there are\n more than max_elements distinct values, then ENUM is not a suggested\n type.\n\no max_memory (default 8192) is the maximum amount of memory that\n ANALYSE() should allocate per column while trying to find all\n distinct values.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/procedure-analyse.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/procedure-analyse.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (190,9,'HELP_VERSION','This help information was generated from the MySQL 5.5 Reference Manual\non: 2012-08-25 (revision: 31914)\n\nThis information applies to MySQL 5.5 through 5.5.29.\n','',''); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (191,37,'CHARACTER_LENGTH','Syntax:\nCHARACTER_LENGTH(str)\n\nCHARACTER_LENGTH() is a synonym for CHAR_LENGTH().\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (192,26,'SHOW GRANTS','Syntax:\nSHOW GRANTS [FOR user]\n\nThis statement lists the GRANT statement or statements that must be\nissued to duplicate the privileges that are granted to a MySQL user\naccount. The account is named using the same format as for the GRANT\nstatement; for example, \'jeffrey\'@\'localhost\'. If you specify only the\nuser name part of the account name, a host name part of \'%\' is used.\nFor additional information about specifying account names, see [HELP\nGRANT].\n\nmysql> SHOW GRANTS FOR \'root\'@\'localhost\';\n+---------------------------------------------------------------------+\n| Grants for root@localhost |\n+---------------------------------------------------------------------+\n| GRANT ALL PRIVILEGES ON *.* TO \'root\'@\'localhost\' WITH GRANT OPTION |\n+---------------------------------------------------------------------+\n\nTo list the privileges granted to the account that you are using to\nconnect to the server, you can use any of the following statements:\n\nSHOW GRANTS;\nSHOW GRANTS FOR CURRENT_USER;\nSHOW GRANTS FOR CURRENT_USER();\n\nIf SHOW GRANTS FOR CURRENT_USER (or any of the equivalent syntaxes) is\nused in DEFINER context, such as within a stored procedure that is\ndefined with SQL SECURITY DEFINER), the grants displayed are those of\nthe definer and not the invoker.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-grants.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-grants.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (193,26,'SHOW PRIVILEGES','Syntax:\nSHOW PRIVILEGES\n\nSHOW PRIVILEGES shows the list of system privileges that the MySQL\nserver supports. The exact list of privileges depends on the version of\nyour server.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-privileges.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-privileges.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (194,39,'CREATE TABLESPACE','Syntax:\nCREATE TABLESPACE tablespace_name\n ADD DATAFILE \'file_name\'\n USE LOGFILE GROUP logfile_group\n [EXTENT_SIZE [=] extent_size]\n [INITIAL_SIZE [=] initial_size]\n [AUTOEXTEND_SIZE [=] autoextend_size]\n [MAX_SIZE [=] max_size]\n [NODEGROUP [=] nodegroup_id]\n [WAIT]\n [COMMENT [=] comment_text]\n ENGINE [=] engine_name\n\nThis statement is used to create a tablespace, which can contain one or\nmore data files, providing storage space for tables. One data file is\ncreated and added to the tablespace using this statement. Additional\ndata files may be added to the tablespace by using the ALTER TABLESPACE\nstatement (see [HELP ALTER TABLESPACE]). For rules covering the naming\nof tablespaces, see\nhttp://dev.mysql.com/doc/refman/5.5/en/identifiers.html.\n\n*Note*: All MySQL Cluster Disk Data objects share the same namespace.\nThis means that each Disk Data object must be uniquely named (and not\nmerely each Disk Data object of a given type). For example, you cannot\nhave a tablespace and a log file group with the same name, or a\ntablespace and a data file with the same name.\n\nA log file group of one or more UNDO log files must be assigned to the\ntablespace to be created with the USE LOGFILE GROUP clause.\nlogfile_group must be an existing log file group created with CREATE\nLOGFILE GROUP (see\nhttp://dev.mysql.com/doc/refman/5.5/en/create-logfile-group.html).\nMultiple tablespaces may use the same log file group for UNDO logging.\n\nThe EXTENT_SIZE sets the size, in bytes, of the extents used by any\nfiles belonging to the tablespace. The default value is 1M. The minimum\nsize is 32K, and theoretical maximum is 2G, although the practical\nmaximum size depends on a number of factors. In most cases, changing\nthe extent size does not have any measurable effect on performance, and\nthe default value is recommended for all but the most unusual\nsituations.\n\nAn extent is a unit of disk space allocation. One extent is filled with\nas much data as that extent can contain before another extent is used.\nIn theory, up to 65,535 (64K) extents may used per data file; however,\nthe recommended maximum is 32,768 (32K). The recommended maximum size\nfor a single data file is 32G---that is, 32K extents x 1 MB per extent.\nIn addition, once an extent is allocated to a given partition, it\ncannot be used to store data from a different partition; an extent\ncannot store data from more than one partition. This means, for example\nthat a tablespace having a single datafile whose INITIAL_SIZE is 256 MB\nand whose EXTENT_SIZE is 128M has just two extents, and so can be used\nto store data from at most two different disk data table partitions.\n\nYou can see how many extents remain free in a given data file by\nquerying the INFORMATION_SCHEMA.FILES table, and so derive an estimate\nfor how much space remains free in the file. For further discussion and\nexamples, see http://dev.mysql.com/doc/refman/5.5/en/files-table.html.\n\nThe INITIAL_SIZE parameter sets the data file\'s total size in bytes.\nOnce the file has been created, its size cannot be changed; however,\nyou can add more data files to the tablespace using ALTER TABLESPACE\n... ADD DATAFILE. See [HELP ALTER TABLESPACE].\n\nINITIAL_SIZE is optional; its default value is 128M.\n\nOn 32-bit systems, the maximum supported value for INITIAL_SIZE is 4G.\n(Bug #29186)\n\nWhen setting EXTENT_SIZE or INITIAL_SIZE (either or both), you may\noptionally follow the number with a one-letter abbreviation for an\norder of magnitude, similar to those used in my.cnf. Generally, this is\none of the letters M (for megabytes) or G (for gigabytes).\n\nINITIAL_SIZE, EXTENT_SIZE, and UNDO_BUFFER_SIZE are subject to rounding\nas follows:\n\no EXTENT_SIZE and UNDO_BUFFER_SIZE are each rounded up to the nearest\n whole multiple of 32K.\n\no INITIAL_SIZE is rounded down to the nearest whole multiple of 32K.\n\n For data files, INITIAL_SIZE is subject to further rounding; the\n result just obtained is rounded up to the nearest whole multiple of\n EXTENT_SIZE (after any rounding).\n\nThe rounding just described is done explicitly, and a warning is issued\nby the MySQL Server when any such rounding is performed. The rounded\nvalues are also used by the NDB kernel for calculating\nINFORMATION_SCHEMA.FILES column values and other purposes. However, to\navoid an unexpected result, we suggest that you always use whole\nmultiples of 32K in specifying these options.\n\nAUTOEXTEND_SIZE, MAX_SIZE, NODEGROUP, WAIT, and COMMENT are parsed but\nignored, and so currently have no effect. These options are intended\nfor future expansion.\n\nThe ENGINE parameter determines the storage engine which uses this\ntablespace, with engine_name being the name of the storage engine.\nCurrently, engine_name must be one of the values NDB or NDBCLUSTER.\n\nWhen CREATE TABLESPACE is used with ENGINE = NDB, a tablespace and\nassociated data file are created on each Cluster data node. You can\nverify that the data files were created and obtain information about\nthem by querying the INFORMATION_SCHEMA.FILES table. For example:\n\nmysql> SELECT LOGFILE_GROUP_NAME, FILE_NAME, EXTRA\n -> FROM INFORMATION_SCHEMA.FILES\n -> WHERE TABLESPACE_NAME = \'newts\' AND FILE_TYPE = \'DATAFILE\';\n+--------------------+-------------+----------------+\n| LOGFILE_GROUP_NAME | FILE_NAME | EXTRA |\n+--------------------+-------------+----------------+\n| lg_3 | newdata.dat | CLUSTER_NODE=3 |\n| lg_3 | newdata.dat | CLUSTER_NODE=4 |\n+--------------------+-------------+----------------+\n2 rows in set (0.01 sec)\n\n(See http://dev.mysql.com/doc/refman/5.5/en/files-table.html.)\n\nCREATE TABLESPACE is useful only with Disk Data storage for MySQL\nCluster. See\nhttp://dev.mysql.com/doc/refman/5.5/en/mysql-cluster-disk-data.html.\n\nTo drop a primary key, the index name is always PRIMARY, which must be\nspecified as a quoted identifier because PRIMARY is a reserved word:\n\nDROP INDEX `PRIMARY` ON t;\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/create-tablespace.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/create-tablespace.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (195,37,'INSERT FUNCTION','Syntax:\nINSERT(str,pos,len,newstr)\n\nReturns the string str, with the substring beginning at position pos\nand len characters long replaced by the string newstr. Returns the\noriginal string if pos is not within the length of the string. Replaces\nthe rest of the string from position pos if len is not within the\nlength of the rest of the string. Returns NULL if any argument is NULL.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT INSERT(\'Quadratic\', 3, 4, \'What\');\n -> \'QuWhattic\'\nmysql> SELECT INSERT(\'Quadratic\', -1, 4, \'What\');\n -> \'Quadratic\'\nmysql> SELECT INSERT(\'Quadratic\', 3, 100, \'What\');\n -> \'QuWhat\'\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (196,4,'CRC32','Syntax:\nCRC32(expr)\n\nComputes a cyclic redundancy check value and returns a 32-bit unsigned\nvalue. The result is NULL if the argument is NULL. The argument is\nexpected to be a string and (if possible) is treated as one if it is\nnot.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html\n\n','mysql> SELECT CRC32(\'MySQL\');\n -> 3259397556\nmysql> SELECT CRC32(\'mysql\');\n -> 2501908538\n','http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (197,15,'XOR','Syntax:\nXOR\n\nLogical XOR. Returns NULL if either operand is NULL. For non-NULL\noperands, evaluates to 1 if an odd number of operands is nonzero,\notherwise 0 is returned.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/logical-operators.html\n\n','mysql> SELECT 1 XOR 1;\n -> 0\nmysql> SELECT 1 XOR 0;\n -> 1\nmysql> SELECT 1 XOR NULL;\n -> NULL\nmysql> SELECT 1 XOR 1 XOR 1;\n -> 1\n','http://dev.mysql.com/doc/refman/5.5/en/logical-operators.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (198,13,'STARTPOINT','StartPoint(ls)\n\nReturns the Point that is the start point of the LineString value ls.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#linestring-property-functions\n\n','mysql> SET @ls = \'LineString(1 1,2 2,3 3)\';\nmysql> SELECT AsText(StartPoint(GeomFromText(@ls)));\n+---------------------------------------+\n| AsText(StartPoint(GeomFromText(@ls))) |\n+---------------------------------------+\n| POINT(1 1) |\n+---------------------------------------+\n','http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#linestring-property-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (199,10,'GRANT','Syntax:\nGRANT\n priv_type [(column_list)]\n [, priv_type [(column_list)]] ...\n ON [object_type] priv_level\n TO user_specification [, user_specification] ...\n [REQUIRE {NONE | ssl_option [[AND] ssl_option] ...}]\n [WITH with_option ...]\n\nGRANT PROXY ON user_specification\n TO user_specification [, user_specification] ...\n [WITH GRANT OPTION]\n\nobject_type:\n TABLE\n | FUNCTION\n | PROCEDURE\n\npriv_level:\n *\n | *.*\n | db_name.*\n | db_name.tbl_name\n | tbl_name\n | db_name.routine_name\n\nuser_specification:\n user\n [\n IDENTIFIED BY [PASSWORD] \'password\'\n | IDENTIFIED WITH auth_plugin [AS \'auth_string\']\n ]\n\nssl_option:\n SSL\n | X509\n | CIPHER \'cipher\'\n | ISSUER \'issuer\'\n | SUBJECT \'subject\'\n\nwith_option:\n GRANT OPTION\n | MAX_QUERIES_PER_HOUR count\n | MAX_UPDATES_PER_HOUR count\n | MAX_CONNECTIONS_PER_HOUR count\n | MAX_USER_CONNECTIONS count\n\nThe GRANT statement grants privileges to MySQL user accounts. GRANT\nalso serves to specify other account characteristics such as use of\nsecure connections and limits on access to server resources. To use\nGRANT, you must have the GRANT OPTION privilege, and you must have the\nprivileges that you are granting.\n\nNormally, a database administrator first uses CREATE USER to create an\naccount, then GRANT to define its privileges and characteristics. For\nexample:\n\nCREATE USER \'jeffrey\'@\'localhost\' IDENTIFIED BY \'mypass\';\nGRANT ALL ON db1.* TO \'jeffrey\'@\'localhost\';\nGRANT SELECT ON db2.invoice TO \'jeffrey\'@\'localhost\';\nGRANT USAGE ON *.* TO \'jeffrey\'@\'localhost\' WITH MAX_QUERIES_PER_HOUR 90;\n\nHowever, if an account named in a GRANT statement does not already\nexist, GRANT may create it under the conditions described later in the\ndiscussion of the NO_AUTO_CREATE_USER SQL mode.\n\nThe REVOKE statement is related to GRANT and enables administrators to\nremove account privileges. See [HELP REVOKE].\n\nWhen successfully executed from the mysql program, GRANT responds with\nQuery OK, 0 rows affected. To determine what privileges result from the\noperation, use SHOW GRANTS. See [HELP SHOW GRANTS].\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/grant.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/grant.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (200,23,'DECLARE VARIABLE','Syntax:\nDECLARE var_name [, var_name] ... type [DEFAULT value]\n\nThis statement declares local variables within stored programs. To\nprovide a default value for a variable, include a DEFAULT clause. The\nvalue can be specified as an expression; it need not be a constant. If\nthe DEFAULT clause is missing, the initial value is NULL.\n\nLocal variables are treated like stored routine parameters with respect\nto data type and overflow checking. See [HELP CREATE PROCEDURE].\n\nVariable declarations must appear before cursor or handler\ndeclarations.\n\nLocal variable names are not case sensitive. Permissible characters and\nquoting rules are the same as for other identifiers, as described in\nhttp://dev.mysql.com/doc/refman/5.5/en/identifiers.html.\n\nThe scope of a local variable is the BEGIN ... END block within which\nit is declared. The variable can be referred to in blocks nested within\nthe declaring block, except those blocks that declare a variable with\nthe same name.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/declare-local-variable.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/declare-local-variable.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (201,3,'MPOLYFROMTEXT','MPolyFromText(wkt[,srid]), MultiPolygonFromText(wkt[,srid])\n\nConstructs a MULTIPOLYGON value using its WKT representation and SRID.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-wkt-functions\n\n','','http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-wkt-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (202,6,'MBRINTERSECTS','MBRIntersects(g1,g2)\n\nReturns 1 or 0 to indicate whether the Minimum Bounding Rectangles of\nthe two geometries g1 and g2 intersect.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/functions-for-testing-spatial-relations-between-geometric-objects.html#relations-on-geometry-mbr\n\n','','http://dev.mysql.com/doc/refman/5.5/en/functions-for-testing-spatial-relations-between-geometric-objects.html#relations-on-geometry-mbr'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (203,16,'BIT_OR','Syntax:\nBIT_OR(expr)\n\nReturns the bitwise OR of all bits in expr. The calculation is\nperformed with 64-bit (BIGINT) precision.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (204,31,'YEARWEEK','Syntax:\nYEARWEEK(date), YEARWEEK(date,mode)\n\nReturns year and week for a date. The mode argument works exactly like\nthe mode argument to WEEK(). The year in the result may be different\nfrom the year in the date argument for the first and the last week of\nthe year.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT YEARWEEK(\'1987-01-01\');\n -> 198653\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (205,18,'NOT BETWEEN','Syntax:\nexpr NOT BETWEEN min AND max\n\nThis is the same as NOT (expr BETWEEN min AND max).\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (206,18,'IS NOT','Syntax:\nIS NOT boolean_value\n\nTests a value against a boolean value, where boolean_value can be TRUE,\nFALSE, or UNKNOWN.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html\n\n','mysql> SELECT 1 IS NOT UNKNOWN, 0 IS NOT UNKNOWN, NULL IS NOT UNKNOWN;\n -> 1, 1, 0\n','http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (207,4,'LOG10','Syntax:\nLOG10(X)\n\nReturns the base-10 logarithm of X.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html\n\n','mysql> SELECT LOG10(2);\n -> 0.30102999566398\nmysql> SELECT LOG10(100);\n -> 2\nmysql> SELECT LOG10(-100);\n -> NULL\n','http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (208,4,'SQRT','Syntax:\nSQRT(X)\n\nReturns the square root of a nonnegative number X.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html\n\n','mysql> SELECT SQRT(4);\n -> 2\nmysql> SELECT SQRT(20);\n -> 4.4721359549996\nmysql> SELECT SQRT(-16);\n -> NULL\n','http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (209,22,'DECIMAL','DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]\n\nA packed "exact" fixed-point number. M is the total number of digits\n(the precision) and D is the number of digits after the decimal point\n(the scale). The decimal point and (for negative numbers) the "-" sign\nare not counted in M. If D is 0, values have no decimal point or\nfractional part. The maximum number of digits (M) for DECIMAL is 65.\nThe maximum number of supported decimals (D) is 30. If D is omitted,\nthe default is 0. If M is omitted, the default is 10.\n\nUNSIGNED, if specified, disallows negative values.\n\nAll basic calculations (+, -, *, /) with DECIMAL columns are done with\na precision of 65 digits.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (210,39,'CREATE INDEX','Syntax:\nCREATE [ONLINE|OFFLINE] [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name\n [index_type]\n ON tbl_name (index_col_name,...)\n [index_option] ...\n\nindex_col_name:\n col_name [(length)] [ASC | DESC]\n\nindex_type:\n USING {BTREE | HASH}\n\nindex_option:\n KEY_BLOCK_SIZE [=] value\n | index_type\n | WITH PARSER parser_name\n | COMMENT \'string\'\n\nCREATE INDEX is mapped to an ALTER TABLE statement to create indexes.\nSee [HELP ALTER TABLE]. CREATE INDEX cannot be used to create a PRIMARY\nKEY; use ALTER TABLE instead. For more information about indexes, see\nhttp://dev.mysql.com/doc/refman/5.5/en/mysql-indexes.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/create-index.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/create-index.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (211,39,'CREATE FUNCTION','The CREATE FUNCTION statement is used to create stored functions and\nuser-defined functions (UDFs):\n\no For information about creating stored functions, see [HELP CREATE\n PROCEDURE].\n\no For information about creating user-defined functions, see [HELP\n CREATE FUNCTION UDF].\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/create-function.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/create-function.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (212,39,'ALTER DATABASE','Syntax:\nALTER {DATABASE | SCHEMA} [db_name]\n alter_specification ...\nALTER {DATABASE | SCHEMA} db_name\n UPGRADE DATA DIRECTORY NAME\n\nalter_specification:\n [DEFAULT] CHARACTER SET [=] charset_name\n | [DEFAULT] COLLATE [=] collation_name\n\nALTER DATABASE enables you to change the overall characteristics of a\ndatabase. These characteristics are stored in the db.opt file in the\ndatabase directory. To use ALTER DATABASE, you need the ALTER privilege\non the database. ALTER SCHEMA is a synonym for ALTER DATABASE.\n\nThe database name can be omitted from the first syntax, in which case\nthe statement applies to the default database.\n\nNational Language Characteristics\n\nThe CHARACTER SET clause changes the default database character set.\nThe COLLATE clause changes the default database collation.\nhttp://dev.mysql.com/doc/refman/5.5/en/charset.html, discusses\ncharacter set and collation names.\n\nYou can see what character sets and collations are available using,\nrespectively, the SHOW CHARACTER SET and SHOW COLLATION statements. See\n[HELP SHOW CHARACTER SET], and [HELP SHOW COLLATION], for more\ninformation.\n\nIf you change the default character set or collation for a database,\nstored routines that use the database defaults must be dropped and\nrecreated so that they use the new defaults. (In a stored routine,\nvariables with character data types use the database defaults if the\ncharacter set or collation are not specified explicitly. See [HELP\nCREATE PROCEDURE].)\n\nUpgrading from Versions Older than MySQL 5.1\n\nThe syntax that includes the UPGRADE DATA DIRECTORY NAME clause updates\nthe name of the directory associated with the database to use the\nencoding implemented in MySQL 5.1 for mapping database names to\ndatabase directory names (see\nhttp://dev.mysql.com/doc/refman/5.5/en/identifier-mapping.html). This\nclause is for use under these conditions:\n\no It is intended when upgrading MySQL to 5.1 or later from older\n versions.\n\no It is intended to update a database directory name to the current\n encoding format if the name contains special characters that need\n encoding.\n\no The statement is used by mysqlcheck (as invoked by mysql_upgrade).\n\nFor example, if a database in MySQL 5.0 has the name a-b-c, the name\ncontains instances of the - (dash) character. In MySQL 5.0, the\ndatabase directory is also named a-b-c, which is not necessarily safe\nfor all file systems. In MySQL 5.1 and later, the same database name is\nencoded as a@002db@002dc to produce a file system-neutral directory\nname.\n\nWhen a MySQL installation is upgraded to MySQL 5.1 or later from an\nolder version,the server displays a name such as a-b-c (which is in the\nold format) as #mysql50#a-b-c, and you must refer to the name using the\n#mysql50# prefix. Use UPGRADE DATA DIRECTORY NAME in this case to\nexplicitly tell the server to re-encode the database directory name to\nthe current encoding format:\n\nALTER DATABASE `#mysql50#a-b-c` UPGRADE DATA DIRECTORY NAME;\n\nAfter executing this statement, you can refer to the database as a-b-c\nwithout the special #mysql50# prefix.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/alter-database.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/alter-database.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (213,25,'GEOMETRYN','GeometryN(gc,N)\n\nReturns the N-th geometry in the GeometryCollection value gc.\nGeometries are numbered beginning with 1.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#geometrycollection-property-functions\n\n','mysql> SET @gc = \'GeometryCollection(Point(1 1),LineString(2 2, 3 3))\';\nmysql> SELECT AsText(GeometryN(GeomFromText(@gc),1));\n+----------------------------------------+\n| AsText(GeometryN(GeomFromText(@gc),1)) |\n+----------------------------------------+\n| POINT(1 1) |\n+----------------------------------------+\n','http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#geometrycollection-property-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (214,19,'<<','Syntax:\n<<\n\nShifts a longlong (BIGINT) number to the left.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/bit-functions.html\n\n','mysql> SELECT 1 << 2;\n -> 4\n','http://dev.mysql.com/doc/refman/5.5/en/bit-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (215,26,'SHOW TABLE STATUS','Syntax:\nSHOW TABLE STATUS [{FROM | IN} db_name]\n [LIKE \'pattern\' | WHERE expr]\n\nSHOW TABLE STATUS works likes SHOW TABLES, but provides a lot of\ninformation about each non-TEMPORARY table. You can also get this list\nusing the mysqlshow --status db_name command. The LIKE clause, if\npresent, indicates which table names to match. The WHERE clause can be\ngiven to select rows using more general conditions, as discussed in\nhttp://dev.mysql.com/doc/refman/5.5/en/extended-show.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-table-status.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-table-status.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (216,12,'MD5','Syntax:\nMD5(str)\n\nCalculates an MD5 128-bit checksum for the string. The value is\nreturned as a string of 32 hex digits, or NULL if the argument was\nNULL. The return value can, for example, be used as a hash key. See the\nnotes at the beginning of this section about storing hash values\nefficiently.\n\nAs of MySQL 5.5.3, the return value is a nonbinary string in the\nconnection character set. Before 5.5.3, the return value is a binary\nstring; see the notes at the beginning of this section about using the\nvalue as a nonbinary string.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html\n\n','mysql> SELECT MD5(\'testing\');\n -> \'ae2b1fca515949e5d54fb22b8ed95575\'\n','http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (217,18,'<','Syntax:\n<\n\nLess than:\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html\n\n','mysql> SELECT 2 < 2;\n -> 0\n','http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (218,31,'UNIX_TIMESTAMP','Syntax:\nUNIX_TIMESTAMP(), UNIX_TIMESTAMP(date)\n\nIf called with no argument, returns a Unix timestamp (seconds since\n\'1970-01-01 00:00:00\' UTC) as an unsigned integer. If UNIX_TIMESTAMP()\nis called with a date argument, it returns the value of the argument as\nseconds since \'1970-01-01 00:00:00\' UTC. date may be a DATE string, a\nDATETIME string, a TIMESTAMP, or a number in the format YYMMDD or\nYYYYMMDD. The server interprets date as a value in the current time\nzone and converts it to an internal value in UTC. Clients can set their\ntime zone as described in\nhttp://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT UNIX_TIMESTAMP();\n -> 1196440210\nmysql> SELECT UNIX_TIMESTAMP(\'2007-11-30 10:30:19\');\n -> 1196440219\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (219,31,'DAYOFMONTH','Syntax:\nDAYOFMONTH(date)\n\nReturns the day of the month for date, in the range 1 to 31, or 0 for\ndates such as \'0000-00-00\' or \'2008-00-00\' that have a zero day part.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT DAYOFMONTH(\'2007-02-03\');\n -> 3\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (220,37,'ASCII','Syntax:\nASCII(str)\n\nReturns the numeric value of the leftmost character of the string str.\nReturns 0 if str is the empty string. Returns NULL if str is NULL.\nASCII() works for 8-bit characters.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT ASCII(\'2\');\n -> 50\nmysql> SELECT ASCII(2);\n -> 50\nmysql> SELECT ASCII(\'dx\');\n -> 100\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (221,4,'DIV','Syntax:\nDIV\n\nInteger division. Similar to FLOOR(), but is safe with BIGINT values.\n\nAs of MySQL 5.5.3, if either operand has a noninteger type, the\noperands are converted to DECIMAL and divided using DECIMAL arithmetic\nbefore converting the result to BIGINT. If the result exceeds BIGINT\nrange, an error occurs. Before MySQL 5.5.3, incorrect results may occur\nfor noninteger operands that exceed BIGINT range.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/arithmetic-functions.html\n\n','mysql> SELECT 5 DIV 2;\n -> 2\n','http://dev.mysql.com/doc/refman/5.5/en/arithmetic-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (222,10,'RENAME USER','Syntax:\nRENAME USER old_user TO new_user\n [, old_user TO new_user] ...\n\nThe RENAME USER statement renames existing MySQL accounts. To use it,\nyou must have the global CREATE USER privilege or the UPDATE privilege\nfor the mysql database. An error occurs if any old account does not\nexist or any new account exists. Each account name uses the format\ndescribed in http://dev.mysql.com/doc/refman/5.5/en/account-names.html.\nFor example:\n\nRENAME USER \'jeffrey\'@\'localhost\' TO \'jeff\'@\'127.0.0.1\';\n\nIf you specify only the user name part of the account name, a host name\npart of \'%\' is used.\n\nRENAME USER causes the privileges held by the old user to be those held\nby the new user. However, RENAME USER does not automatically drop or\ninvalidate databases or objects within them that the old user created.\nThis includes stored programs or views for which the DEFINER attribute\nnames the old user. Attempts to access such objects may produce an\nerror if they execute in definer security context. (For information\nabout security context, see\nhttp://dev.mysql.com/doc/refman/5.5/en/stored-programs-security.html.)\n\nThe privilege changes take effect as indicated in\nhttp://dev.mysql.com/doc/refman/5.5/en/privilege-changes.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/rename-user.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/rename-user.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (223,26,'SHOW SLAVE STATUS','Syntax:\nSHOW SLAVE STATUS\n\nThis statement provides status information on essential parameters of\nthe slave threads. It requires either the SUPER or REPLICATION CLIENT\nprivilege.\n\nIf you issue this statement using the mysql client, you can use a \\G\nstatement terminator rather than a semicolon to obtain a more readable\nvertical layout:\n\nmysql> SHOW SLAVE STATUS\\G\n*************************** 1. row ***************************\n Slave_IO_State: Waiting for master to send event\n Master_Host: localhost\n Master_User: root\n Master_Port: 3306\n Connect_Retry: 3\n Master_Log_File: gbichot-bin.005\n Read_Master_Log_Pos: 79\n Relay_Log_File: gbichot-relay-bin.005\n Relay_Log_Pos: 548\n Relay_Master_Log_File: gbichot-bin.005\n Slave_IO_Running: Yes\n Slave_SQL_Running: Yes\n Replicate_Do_DB:\n Replicate_Ignore_DB:\n Replicate_Do_Table:\n Replicate_Ignore_Table:\n Replicate_Wild_Do_Table:\n Replicate_Wild_Ignore_Table:\n Last_Errno: 0\n Last_Error:\n Skip_Counter: 0\n Exec_Master_Log_Pos: 79\n Relay_Log_Space: 552\n Until_Condition: None\n Until_Log_File:\n Until_Log_Pos: 0\n Master_SSL_Allowed: No\n Master_SSL_CA_File:\n Master_SSL_CA_Path:\n Master_SSL_Cert:\n Master_SSL_Cipher:\n Master_SSL_Key:\n Seconds_Behind_Master: 8\nMaster_SSL_Verify_Server_Cert: No\n Last_IO_Errno: 0\n Last_IO_Error:\n Last_SQL_Errno: 0\n Last_SQL_Error:\n Replicate_Ignore_Server_Ids: 0\n Master_Server_Id: 1\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-slave-status.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-slave-status.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (224,34,'GEOMETRY','MySQL provides a standard way of creating spatial columns for geometry\ntypes, for example, with CREATE TABLE or ALTER TABLE. Currently,\nspatial columns are supported for MyISAM, InnoDB, NDB, and ARCHIVE\ntables. See also the annotations about spatial indexes under [HELP\nSPATIAL].\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-columns.html\n\n','CREATE TABLE geom (g GEOMETRY);\n','http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-columns.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (225,13,'NUMPOINTS','NumPoints(ls)\n\nReturns the number of Point objects in the LineString value ls.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#linestring-property-functions\n\n','mysql> SET @ls = \'LineString(1 1,2 2,3 3)\';\nmysql> SELECT NumPoints(GeomFromText(@ls));\n+------------------------------+\n| NumPoints(GeomFromText(@ls)) |\n+------------------------------+\n| 3 |\n+------------------------------+\n','http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#linestring-property-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (226,39,'ALTER LOGFILE GROUP','Syntax:\nALTER LOGFILE GROUP logfile_group\n ADD UNDOFILE \'file_name\'\n [INITIAL_SIZE [=] size]\n [WAIT]\n ENGINE [=] engine_name\n\nThis statement adds an UNDO file named \'file_name\' to an existing log\nfile group logfile_group. An ALTER LOGFILE GROUP statement has one and\nonly one ADD UNDOFILE clause. No DROP UNDOFILE clause is currently\nsupported.\n\n*Note*: All MySQL Cluster Disk Data objects share the same namespace.\nThis means that each Disk Data object must be uniquely named (and not\nmerely each Disk Data object of a given type). For example, you cannot\nhave a tablespace and an undo log file with the same name, or an undo\nlog file and a data file with the same name.\n\nThe optional INITIAL_SIZE parameter sets the UNDO file\'s initial size\nin bytes; if not specified, the initial size default to 128M (128\nmegabytes). You may optionally follow size with a one-letter\nabbreviation for an order of magnitude, similar to those used in\nmy.cnf. Generally, this is one of the letters M (for megabytes) or G\n(for gigabytes).\n\nOn 32-bit systems, the maximum supported value for INITIAL_SIZE is 4G.\n(Bug #29186)\n\nThe minimum permitted value for INITIAL_SIZE is 1M. (Bug #29574)\n\n*Note*: WAIT is parsed but otherwise ignored. This keyword currently\nhas no effect, and is intended for future expansion.\n\nThe ENGINE parameter (required) determines the storage engine which is\nused by this log file group, with engine_name being the name of the\nstorage engine. Currently, the only accepted values for engine_name are\n"NDBCLUSTER" and "NDB". The two values are equivalent.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/alter-logfile-group.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/alter-logfile-group.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (227,19,'&','Syntax:\n&\n\nBitwise AND:\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/bit-functions.html\n\n','mysql> SELECT 29 & 15;\n -> 13\n','http://dev.mysql.com/doc/refman/5.5/en/bit-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (228,31,'LOCALTIMESTAMP','Syntax:\nLOCALTIMESTAMP, LOCALTIMESTAMP()\n\nLOCALTIMESTAMP and LOCALTIMESTAMP() are synonyms for NOW().\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (229,15,'ASSIGN-EQUAL','Syntax:\n=\n\nThis operator is used to perform value assignments in two cases,\ndescribed in the next two paragraphs.\n\nWithin a SET statement, = is treated as an assignment operator that\ncauses the user variable on the left hand side of the operator to take\non the value to its right. (In other words, when used in a SET\nstatement, = is treated identically to :=.) The value on the right hand\nside may be a literal value, another variable storing a value, or any\nlegal expression that yields a scalar value, including the result of a\nquery (provided that this value is a scalar value). You can perform\nmultiple assignments in the same SET statement.\n\nIn the SET clause of an UPDATE statement, = also acts as an assignment\noperator; in this case, however, it causes the column named on the left\nhand side of the operator to assume the value given to the right,\nprovided any WHERE conditions that are part of the UPDATE are met. You\ncan make multiple assignments in the same SET clause of an UPDATE\nstatement.\n\nIn any other context, = is treated as a comparison operator.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/assignment-operators.html\n\n','mysql> SELECT @var1, @var2;\n -> NULL, NULL\nmysql> SELECT @var1 := 1, @var2;\n -> 1, NULL\nmysql> SELECT @var1, @var2;\n -> 1, NULL\nmysql> SELECT @var1, @var2 := @var1;\n -> 1, 1\nmysql> SELECT @var1, @var2;\n -> 1, 1\n','http://dev.mysql.com/doc/refman/5.5/en/assignment-operators.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (230,37,'CONVERT','Syntax:\nCONVERT(expr,type), CONVERT(expr USING transcoding_name)\n\nThe CONVERT() and CAST() functions take an expression of any type and\nproduce a result value of a specified type.\n\nThe type for the result can be one of the following values:\n\no BINARY[(N)]\n\no CHAR[(N)]\n\no DATE\n\no DATETIME\n\no DECIMAL[(M[,D])]\n\no SIGNED [INTEGER]\n\no TIME\n\no UNSIGNED [INTEGER]\n\nBINARY produces a string with the BINARY data type. See\nhttp://dev.mysql.com/doc/refman/5.5/en/binary-varbinary.html for a\ndescription of how this affects comparisons. If the optional length N\nis given, BINARY(N) causes the cast to use no more than N bytes of the\nargument. Values shorter than N bytes are padded with 0x00 bytes to a\nlength of N.\n\nCHAR(N) causes the cast to use no more than N characters of the\nargument.\n\nCAST() and CONVERT(... USING ...) are standard SQL syntax. The\nnon-USING form of CONVERT() is ODBC syntax.\n\nCONVERT() with USING is used to convert data between different\ncharacter sets. In MySQL, transcoding names are the same as the\ncorresponding character set names. For example, this statement converts\nthe string \'abc\' in the default character set to the corresponding\nstring in the utf8 character set:\n\nSELECT CONVERT(\'abc\' USING utf8);\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/cast-functions.html\n\n','SELECT enum_col FROM tbl_name ORDER BY CAST(enum_col AS CHAR);\n','http://dev.mysql.com/doc/refman/5.5/en/cast-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (231,31,'ADDDATE','Syntax:\nADDDATE(date,INTERVAL expr unit), ADDDATE(expr,days)\n\nWhen invoked with the INTERVAL form of the second argument, ADDDATE()\nis a synonym for DATE_ADD(). The related function SUBDATE() is a\nsynonym for DATE_SUB(). For information on the INTERVAL unit argument,\nsee the discussion for DATE_ADD().\n\nmysql> SELECT DATE_ADD(\'2008-01-02\', INTERVAL 31 DAY);\n -> \'2008-02-02\'\nmysql> SELECT ADDDATE(\'2008-01-02\', INTERVAL 31 DAY);\n -> \'2008-02-02\'\n\nWhen invoked with the days form of the second argument, MySQL treats it\nas an integer number of days to be added to expr.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT ADDDATE(\'2008-01-02\', 31);\n -> \'2008-02-02\'\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (232,23,'REPEAT LOOP','Syntax:\n[begin_label:] REPEAT\n statement_list\nUNTIL search_condition\nEND REPEAT [end_label]\n\nThe statement list within a REPEAT statement is repeated until the\nsearch_condition expression is true. Thus, a REPEAT always enters the\nloop at least once. statement_list consists of one or more statements,\neach terminated by a semicolon (;) statement delimiter.\n\nA REPEAT statement can be labeled. For the rules regarding label use,\nsee [HELP labels].\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/repeat.html\n\n','mysql> delimiter //\n\nmysql> CREATE PROCEDURE dorepeat(p1 INT)\n -> BEGIN\n -> SET @x = 0;\n -> REPEAT\n -> SET @x = @x + 1;\n -> UNTIL @x > p1 END REPEAT;\n -> END\n -> //\nQuery OK, 0 rows affected (0.00 sec)\n\nmysql> CALL dorepeat(1000)//\nQuery OK, 0 rows affected (0.00 sec)\n\nmysql> SELECT @x//\n+------+\n| @x |\n+------+\n| 1001 |\n+------+\n1 row in set (0.00 sec)\n','http://dev.mysql.com/doc/refman/5.5/en/repeat.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (233,39,'ALTER FUNCTION','Syntax:\nALTER FUNCTION func_name [characteristic ...]\n\ncharacteristic:\n COMMENT \'string\'\n | LANGUAGE SQL\n | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }\n | SQL SECURITY { DEFINER | INVOKER }\n\nThis statement can be used to change the characteristics of a stored\nfunction. More than one change may be specified in an ALTER FUNCTION\nstatement. However, you cannot change the parameters or body of a\nstored function using this statement; to make such changes, you must\ndrop and re-create the function using DROP FUNCTION and CREATE\nFUNCTION.\n\nYou must have the ALTER ROUTINE privilege for the function. (That\nprivilege is granted automatically to the function creator.) If binary\nlogging is enabled, the ALTER FUNCTION statement might also require the\nSUPER privilege, as described in\nhttp://dev.mysql.com/doc/refman/5.5/en/stored-programs-logging.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/alter-function.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/alter-function.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (234,22,'SMALLINT','SMALLINT[(M)] [UNSIGNED] [ZEROFILL]\n\nA small integer. The signed range is -32768 to 32767. The unsigned\nrange is 0 to 65535.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (235,22,'DOUBLE PRECISION','DOUBLE PRECISION[(M,D)] [UNSIGNED] [ZEROFILL], REAL[(M,D)] [UNSIGNED]\n[ZEROFILL]\n\nThese types are synonyms for DOUBLE. Exception: If the REAL_AS_FLOAT\nSQL mode is enabled, REAL is a synonym for FLOAT rather than DOUBLE.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (236,37,'ORD','Syntax:\nORD(str)\n\nIf the leftmost character of the string str is a multi-byte character,\nreturns the code for that character, calculated from the numeric values\nof its constituent bytes using this formula:\n\n (1st byte code)\n+ (2nd byte code * 256)\n+ (3rd byte code * 2562) ...\n\nIf the leftmost character is not a multi-byte character, ORD() returns\nthe same value as the ASCII() function.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT ORD(\'2\');\n -> 50\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (237,8,'DEALLOCATE PREPARE','Syntax:\n{DEALLOCATE | DROP} PREPARE stmt_name\n\nTo deallocate a prepared statement produced with PREPARE, use a\nDEALLOCATE PREPARE statement that refers to the prepared statement\nname. Attempting to execute a prepared statement after deallocating it\nresults in an error.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/deallocate-prepare.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/deallocate-prepare.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (238,36,'ENVELOPE','Envelope(g)\n\nReturns the Minimum Bounding Rectangle (MBR) for the geometry value g.\nThe result is returned as a Polygon value.\n\nThe polygon is defined by the corner points of the bounding box:\n\nPOLYGON((MINX MINY, MAXX MINY, MAXX MAXY, MINX MAXY, MINX MINY))\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#general-geometry-property-functions\n\n','mysql> SELECT AsText(Envelope(GeomFromText(\'LineString(1 1,2 2)\')));\n+-------------------------------------------------------+\n| AsText(Envelope(GeomFromText(\'LineString(1 1,2 2)\'))) |\n+-------------------------------------------------------+\n| POLYGON((1 1,2 1,2 2,1 2,1 1)) |\n+-------------------------------------------------------+\n','http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#general-geometry-property-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (239,14,'IS_FREE_LOCK','Syntax:\nIS_FREE_LOCK(str)\n\nChecks whether the lock named str is free to use (that is, not locked).\nReturns 1 if the lock is free (no one is using the lock), 0 if the lock\nis in use, and NULL if an error occurs (such as an incorrect argument).\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/miscellaneous-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/miscellaneous-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (240,30,'TOUCHES','Touches(g1,g2)\n\nReturns 1 or 0 to indicate whether g1 spatially touches g2. Two\ngeometries spatially touch if the interiors of the geometries do not\nintersect, but the boundary of one of the geometries intersects either\nthe boundary or the interior of the other.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/functions-for-testing-spatial-relations-between-geometric-objects.html#functions-that-test-spatial-relationships-between-geometries\n\n','','http://dev.mysql.com/doc/refman/5.5/en/functions-for-testing-spatial-relations-between-geometric-objects.html#functions-that-test-spatial-relationships-between-geometries'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (241,14,'INET_ATON','Syntax:\nINET_ATON(expr)\n\nGiven the dotted-quad representation of an IPv4 network address as a\nstring, returns an integer that represents the numeric value of the\naddress in network byte order (big endian). INET_ATON() returns NULL if\nit does not understand its argument.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/miscellaneous-functions.html\n\n','mysql> SELECT INET_ATON(\'10.0.5.9\');\n -> 167773449\n','http://dev.mysql.com/doc/refman/5.5/en/miscellaneous-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (242,12,'UNCOMPRESS','Syntax:\nUNCOMPRESS(string_to_uncompress)\n\nUncompresses a string compressed by the COMPRESS() function. If the\nargument is not a compressed value, the result is NULL. This function\nrequires MySQL to have been compiled with a compression library such as\nzlib. Otherwise, the return value is always NULL.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html\n\n','mysql> SELECT UNCOMPRESS(COMPRESS(\'any string\'));\n -> \'any string\'\nmysql> SELECT UNCOMPRESS(\'any string\');\n -> NULL\n','http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (243,22,'AUTO_INCREMENT','The AUTO_INCREMENT attribute can be used to generate a unique identity\nfor new rows:\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/example-auto-increment.html\n\n','CREATE TABLE animals (\n id MEDIUMINT NOT NULL AUTO_INCREMENT,\n name CHAR(30) NOT NULL,\n PRIMARY KEY (id)\n);\n\nINSERT INTO animals (name) VALUES\n (\'dog\'),(\'cat\'),(\'penguin\'),\n (\'lax\'),(\'whale\'),(\'ostrich\');\n\nSELECT * FROM animals;\n','http://dev.mysql.com/doc/refman/5.5/en/example-auto-increment.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (244,36,'ISSIMPLE','IsSimple(g)\n\nCurrently, this function is a placeholder and should not be used. If\nimplemented, its behavior will be as described in the next paragraph.\n\nReturns 1 if the geometry value g has no anomalous geometric points,\nsuch as self-intersection or self-tangency. IsSimple() returns 0 if the\nargument is not simple, and -1 if it is NULL.\n\nThe description of each instantiable geometric class given earlier in\nthe chapter includes the specific conditions that cause an instance of\nthat class to be classified as not simple. (See [HELP Geometry\nhierarchy].)\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#general-geometry-property-functions\n\n','','http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#general-geometry-property-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (245,4,'- BINARY','Syntax:\n-\n\nSubtraction:\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/arithmetic-functions.html\n\n','mysql> SELECT 3-5;\n -> -2\n','http://dev.mysql.com/doc/refman/5.5/en/arithmetic-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (246,3,'GEOMCOLLFROMTEXT','GeomCollFromText(wkt[,srid]), GeometryCollectionFromText(wkt[,srid])\n\nConstructs a GEOMETRYCOLLECTION value using its WKT representation and\nSRID.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-wkt-functions\n\n','','http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-wkt-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (247,3,'WKT DEFINITION','The Well-Known Text (WKT) representation of Geometry is designed to\nexchange geometry data in ASCII form. For a Backus-Naur grammar that\nspecifies the formal production rules for writing WKT values, see the\nOpenGIS specification document referenced in\nhttp://dev.mysql.com/doc/refman/5.5/en/spatial-extensions.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/gis-wkt-format.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/gis-wkt-format.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (248,31,'CURRENT_TIME','Syntax:\nCURRENT_TIME, CURRENT_TIME()\n\nCURRENT_TIME and CURRENT_TIME() are synonyms for CURTIME().\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (249,10,'REVOKE','Syntax:\nREVOKE\n priv_type [(column_list)]\n [, priv_type [(column_list)]] ...\n ON [object_type] priv_level\n FROM user [, user] ...\n\nREVOKE ALL PRIVILEGES, GRANT OPTION\n FROM user [, user] ...\n\nREVOKE PROXY ON user\n FROM user [, user] ...\n\nThe REVOKE statement enables system administrators to revoke privileges\nfrom MySQL accounts. Each account name uses the format described in\nhttp://dev.mysql.com/doc/refman/5.5/en/account-names.html. For example:\n\nREVOKE INSERT ON *.* FROM \'jeffrey\'@\'localhost\';\n\nIf you specify only the user name part of the account name, a host name\npart of \'%\' is used.\n\nFor details on the levels at which privileges exist, the permissible\npriv_type and priv_level values, and the syntax for specifying users\nand passwords, see [HELP GRANT]\n\nTo use the first REVOKE syntax, you must have the GRANT OPTION\nprivilege, and you must have the privileges that you are revoking.\n\nTo revoke all privileges, use the second syntax, which drops all\nglobal, database, table, column, and routine privileges for the named\nuser or users:\n\nREVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ...\n\nTo use this REVOKE syntax, you must have the global CREATE USER\nprivilege or the UPDATE privilege for the mysql database.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/revoke.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/revoke.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (250,17,'LAST_INSERT_ID','Syntax:\nLAST_INSERT_ID(), LAST_INSERT_ID(expr)\n\nLAST_INSERT_ID() (with no argument) returns a BIGINT (64-bit) value\nrepresenting the first automatically generated value successfully\ninserted for an AUTO_INCREMENT column as a result of the most recently\nexecuted INSERT statement. The value of LAST_INSERT_ID() remains\nunchanged if no rows are successfully inserted.\n\nFor example, after inserting a row that generates an AUTO_INCREMENT\nvalue, you can get the value like this:\n\nmysql> SELECT LAST_INSERT_ID();\n -> 195\n\nThe currently executing statement does not affect the value of\nLAST_INSERT_ID(). Suppose that you generate an AUTO_INCREMENT value\nwith one statement, and then refer to LAST_INSERT_ID() in a\nmultiple-row INSERT statement that inserts rows into a table with its\nown AUTO_INCREMENT column. The value of LAST_INSERT_ID() will remain\nstable in the second statement; its value for the second and later rows\nis not affected by the earlier row insertions. (However, if you mix\nreferences to LAST_INSERT_ID() and LAST_INSERT_ID(expr), the effect is\nundefined.)\n\nIf the previous statement returned an error, the value of\nLAST_INSERT_ID() is undefined. For transactional tables, if the\nstatement is rolled back due to an error, the value of LAST_INSERT_ID()\nis left undefined. For manual ROLLBACK, the value of LAST_INSERT_ID()\nis not restored to that before the transaction; it remains as it was at\nthe point of the ROLLBACK.\n\nWithin the body of a stored routine (procedure or function) or a\ntrigger, the value of LAST_INSERT_ID() changes the same way as for\nstatements executed outside the body of these kinds of objects. The\neffect of a stored routine or trigger upon the value of\nLAST_INSERT_ID() that is seen by following statements depends on the\nkind of routine:\n\no If a stored procedure executes statements that change the value of\n LAST_INSERT_ID(), the changed value is seen by statements that follow\n the procedure call.\n\no For stored functions and triggers that change the value, the value is\n restored when the function or trigger ends, so following statements\n will not see a changed value.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/information-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/information-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (251,31,'LAST_DAY','Syntax:\nLAST_DAY(date)\n\nTakes a date or datetime value and returns the corresponding value for\nthe last day of the month. Returns NULL if the argument is invalid.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT LAST_DAY(\'2003-02-05\');\n -> \'2003-02-28\'\nmysql> SELECT LAST_DAY(\'2004-02-05\');\n -> \'2004-02-29\'\nmysql> SELECT LAST_DAY(\'2004-01-01 01:01:01\');\n -> \'2004-01-31\'\nmysql> SELECT LAST_DAY(\'2003-03-32\');\n -> NULL\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (252,22,'MEDIUMINT','MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]\n\nA medium-sized integer. The signed range is -8388608 to 8388607. The\nunsigned range is 0 to 16777215.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (253,4,'FLOOR','Syntax:\nFLOOR(X)\n\nReturns the largest integer value not greater than X.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html\n\n','mysql> SELECT FLOOR(1.23);\n -> 1\nmysql> SELECT FLOOR(-1.23);\n -> -2\n','http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (254,37,'RTRIM','Syntax:\nRTRIM(str)\n\nReturns the string str with trailing space characters removed.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT RTRIM(\'barbar \');\n -> \'barbar\'\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (255,28,'EXPLAIN','Syntax:\nEXPLAIN [explain_type] SELECT select_options\n\nexplain_type:\n EXTENDED\n | PARTITIONS\n\nOr:\n\nEXPLAIN tbl_name\n\nThe EXPLAIN statement can be used either as a way to obtain information\nabout how MySQL executes a statement, or as a synonym for DESCRIBE:\n\no When you precede a SELECT statement with the keyword EXPLAIN, MySQL\n displays information from the optimizer about the query execution\n plan. That is, MySQL explains how it would process the statement,\n including information about how tables are joined and in which order.\n EXPLAIN EXTENDED can be used to obtain additional information.\n\n For information about using EXPLAIN and EXPLAIN EXTENDED to obtain\n query execution plan information, see\n http://dev.mysql.com/doc/refman/5.5/en/using-explain.html.\n\no EXPLAIN PARTITIONS is useful only when examining queries involving\n partitioned tables. For details, see\n http://dev.mysql.com/doc/refman/5.5/en/partitioning-info.html.\n\no EXPLAIN tbl_name is synonymous with DESCRIBE tbl_name or SHOW COLUMNS\n FROM tbl_name. For information about DESCRIBE and SHOW COLUMNS, see\n [HELP DESCRIBE], and [HELP SHOW COLUMNS].\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/explain.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/explain.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (256,4,'DEGREES','Syntax:\nDEGREES(X)\n\nReturns the argument X, converted from radians to degrees.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html\n\n','mysql> SELECT DEGREES(PI());\n -> 180\nmysql> SELECT DEGREES(PI() / 2);\n -> 90\n','http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (257,22,'VARCHAR','[NATIONAL] VARCHAR(M) [CHARACTER SET charset_name] [COLLATE\ncollation_name]\n\nA variable-length string. M represents the maximum column length in\ncharacters. The range of M is 0 to 65,535. The effective maximum length\nof a VARCHAR is subject to the maximum row size (65,535 bytes, which is\nshared among all columns) and the character set used. For example, utf8\ncharacters can require up to three bytes per character, so a VARCHAR\ncolumn that uses the utf8 character set can be declared to be a maximum\nof 21,844 characters. See\nhttp://dev.mysql.com/doc/refman/5.5/en/column-count-limit.html.\n\nMySQL stores VARCHAR values as a 1-byte or 2-byte length prefix plus\ndata. The length prefix indicates the number of bytes in the value. A\nVARCHAR column uses one length byte if values require no more than 255\nbytes, two length bytes if values may require more than 255 bytes.\n\n*Note*: MySQL 5.5 follows the standard SQL specification, and does not\nremove trailing spaces from VARCHAR values.\n\nVARCHAR is shorthand for CHARACTER VARYING. NATIONAL VARCHAR is the\nstandard SQL way to define that a VARCHAR column should use some\npredefined character set. MySQL 4.1 and up uses utf8 as this predefined\ncharacter set.\nhttp://dev.mysql.com/doc/refman/5.5/en/charset-national.html. NVARCHAR\nis shorthand for NATIONAL VARCHAR.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-type-overview.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/string-type-overview.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (258,37,'UNHEX','Syntax:\n\nUNHEX(str)\n\nFor a string argument str, UNHEX(str) performs the inverse operation of\nHEX(str). That is, it interprets each pair of characters in the\nargument as a hexadecimal number and converts it to the character\nrepresented by the number. The return value is a binary string.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT UNHEX(\'4D7953514C\');\n -> \'MySQL\'\nmysql> SELECT 0x4D7953514C;\n -> \'MySQL\'\nmysql> SELECT UNHEX(HEX(\'string\'));\n -> \'string\'\nmysql> SELECT HEX(UNHEX(\'1267\'));\n -> \'1267\'\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (259,4,'- UNARY','Syntax:\n-\n\nUnary minus. This operator changes the sign of the operand.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/arithmetic-functions.html\n\n','mysql> SELECT - 2;\n -> -2\n','http://dev.mysql.com/doc/refman/5.5/en/arithmetic-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (260,16,'STD','Syntax:\nSTD(expr)\n\nReturns the population standard deviation of expr. This is an extension\nto standard SQL. The standard SQL function STDDEV_POP() can be used\ninstead.\n\nThis function returns NULL if there were no matching rows.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (261,4,'COS','Syntax:\nCOS(X)\n\nReturns the cosine of X, where X is given in radians.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html\n\n','mysql> SELECT COS(PI());\n -> -1\n','http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (262,31,'DATE FUNCTION','Syntax:\nDATE(expr)\n\nExtracts the date part of the date or datetime expression expr.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT DATE(\'2003-12-31 01:02:03\');\n -> \'2003-12-31\'\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (263,39,'DROP TRIGGER','Syntax:\nDROP TRIGGER [IF EXISTS] [schema_name.]trigger_name\n\nThis statement drops a trigger. The schema (database) name is optional.\nIf the schema is omitted, the trigger is dropped from the default\nschema. DROP TRIGGER requires the TRIGGER privilege for the table\nassociated with the trigger.\n\nUse IF EXISTS to prevent an error from occurring for a trigger that\ndoes not exist. A NOTE is generated for a nonexistent trigger when\nusing IF EXISTS. See [HELP SHOW WARNINGS].\n\nTriggers for a table are also dropped if you drop the table.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/drop-trigger.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/drop-trigger.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (264,8,'RESET MASTER','Syntax:\nRESET MASTER\n\nDeletes all binary log files listed in the index file, resets the\nbinary log index file to be empty, and creates a new binary log file.\nThis statement is intended to be used only when the master is started\nfor the first time.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/reset-master.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/reset-master.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (265,4,'TAN','Syntax:\nTAN(X)\n\nReturns the tangent of X, where X is given in radians.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html\n\n','mysql> SELECT TAN(PI());\n -> -1.2246063538224e-16\nmysql> SELECT TAN(PI()+1);\n -> 1.5574077246549\n','http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (266,4,'PI','Syntax:\nPI()\n\nReturns the value of π (pi). The default number of decimal places\ndisplayed is seven, but MySQL uses the full double-precision value\ninternally.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html\n\n','mysql> SELECT PI();\n -> 3.141593\nmysql> SELECT PI()+0.000000000000000000;\n -> 3.141592653589793116\n','http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (267,31,'WEEKOFYEAR','Syntax:\nWEEKOFYEAR(date)\n\nReturns the calendar week of the date as a number in the range from 1\nto 53. WEEKOFYEAR() is a compatibility function that is equivalent to\nWEEK(date,3).\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT WEEKOFYEAR(\'2008-02-20\');\n -> 8\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (268,4,'/','Syntax:\n/\n\nDivision:\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/arithmetic-functions.html\n\n','mysql> SELECT 3/5;\n -> 0.60\n','http://dev.mysql.com/doc/refman/5.5/en/arithmetic-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (269,8,'PURGE BINARY LOGS','Syntax:\nPURGE { BINARY | MASTER } LOGS\n { TO \'log_name\' | BEFORE datetime_expr }\n\nThe binary log is a set of files that contain information about data\nmodifications made by the MySQL server. The log consists of a set of\nbinary log files, plus an index file (see\nhttp://dev.mysql.com/doc/refman/5.5/en/binary-log.html).\n\nThe PURGE BINARY LOGS statement deletes all the binary log files listed\nin the log index file prior to the specified log file name or date.\nBINARY and MASTER are synonyms. Deleted log files also are removed from\nthe list recorded in the index file, so that the given log file becomes\nthe first in the list.\n\nThis statement has no effect if the server was not started with the\n--log-bin option to enable binary logging.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/purge-binary-logs.html\n\n','PURGE BINARY LOGS TO \'mysql-bin.010\';\nPURGE BINARY LOGS BEFORE \'2008-04-02 22:46:26\';\n','http://dev.mysql.com/doc/refman/5.5/en/purge-binary-logs.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (270,16,'STDDEV_SAMP','Syntax:\nSTDDEV_SAMP(expr)\n\nReturns the sample standard deviation of expr (the square root of\nVAR_SAMP().\n\nSTDDEV_SAMP() returns NULL if there were no matching rows.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (271,17,'SCHEMA','Syntax:\nSCHEMA()\n\nThis function is a synonym for DATABASE().\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/information-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/information-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (272,32,'MLINEFROMWKB','MLineFromWKB(wkb[,srid]), MultiLineStringFromWKB(wkb[,srid])\n\nConstructs a MULTILINESTRING value using its WKB representation and\nSRID.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-wkb-functions\n\n','','http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-wkb-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (273,4,'LOG2','Syntax:\nLOG2(X)\n\nReturns the base-2 logarithm of X.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html\n\n','mysql> SELECT LOG2(65536);\n -> 16\nmysql> SELECT LOG2(-100);\n -> NULL\n','http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (274,31,'SUBTIME','Syntax:\nSUBTIME(expr1,expr2)\n\nSUBTIME() returns expr1 - expr2 expressed as a value in the same format\nas expr1. expr1 is a time or datetime expression, and expr2 is a time\nexpression.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT SUBTIME(\'2007-12-31 23:59:59.999999\',\'1 1:1:1.000002\');\n -> \'2007-12-30 22:58:58.999997\'\nmysql> SELECT SUBTIME(\'01:00:00.999999\', \'02:00:00.999998\');\n -> \'-00:59:59.999999\'\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (275,12,'UNCOMPRESSED_LENGTH','Syntax:\nUNCOMPRESSED_LENGTH(compressed_string)\n\nReturns the length that the compressed string had before being\ncompressed.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html\n\n','mysql> SELECT UNCOMPRESSED_LENGTH(COMPRESS(REPEAT(\'a\',30)));\n -> 30\n','http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (276,39,'DROP TABLE','Syntax:\nDROP [TEMPORARY] TABLE [IF EXISTS]\n tbl_name [, tbl_name] ...\n [RESTRICT | CASCADE]\n\nDROP TABLE removes one or more tables. You must have the DROP privilege\nfor each table. All table data and the table definition are removed, so\nbe careful with this statement! If any of the tables named in the\nargument list do not exist, MySQL returns an error indicating by name\nwhich nonexisting tables it was unable to drop, but it also drops all\nof the tables in the list that do exist.\n\n*Important*: When a table is dropped, user privileges on the table are\nnot automatically dropped. See [HELP GRANT].\n\nNote that for a partitioned table, DROP TABLE permanently removes the\ntable definition, all of its partitions, and all of the data which was\nstored in those partitions. It also removes the partitioning definition\n(.par) file associated with the dropped table.\n\nUse IF EXISTS to prevent an error from occurring for tables that do not\nexist. A NOTE is generated for each nonexistent table when using IF\nEXISTS. See [HELP SHOW WARNINGS].\n\nRESTRICT and CASCADE are permitted to make porting easier. In MySQL\n5.5, they do nothing.\n\n*Note*: DROP TABLE automatically commits the current active\ntransaction, unless you use the TEMPORARY keyword.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/drop-table.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/drop-table.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (277,4,'POW','Syntax:\nPOW(X,Y)\n\nReturns the value of X raised to the power of Y.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html\n\n','mysql> SELECT POW(2,2);\n -> 4\nmysql> SELECT POW(2,-2);\n -> 0.25\n','http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (278,26,'SHOW CREATE TABLE','Syntax:\nSHOW CREATE TABLE tbl_name\n\nShows the CREATE TABLE statement that creates the given table. To use\nthis statement, you must have some privilege for the table. This\nstatement also works with views.\nSHOW CREATE TABLE quotes table and column names according to the value\nof the sql_quote_show_create option. See\nhttp://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-create-table.html\n\n','mysql> SHOW CREATE TABLE t\\G\n*************************** 1. row ***************************\n Table: t\nCreate Table: CREATE TABLE t (\n id INT(11) default NULL auto_increment,\n s char(60) default NULL,\n PRIMARY KEY (id)\n) ENGINE=MyISAM\n','http://dev.mysql.com/doc/refman/5.5/en/show-create-table.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (279,27,'DUAL','You are permitted to specify DUAL as a dummy table name in situations\nwhere no tables are referenced:\n\nmysql> SELECT 1 + 1 FROM DUAL;\n -> 2\n\nDUAL is purely for the convenience of people who require that all\nSELECT statements should have FROM and possibly other clauses. MySQL\nmay ignore the clauses. MySQL does not require FROM DUAL if no tables\nare referenced.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/select.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/select.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (280,37,'INSTR','Syntax:\nINSTR(str,substr)\n\nReturns the position of the first occurrence of substring substr in\nstring str. This is the same as the two-argument form of LOCATE(),\nexcept that the order of the arguments is reversed.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT INSTR(\'foobarbar\', \'bar\');\n -> 4\nmysql> SELECT INSTR(\'xbar\', \'foobar\');\n -> 0\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (281,31,'NOW','Syntax:\nNOW()\n\nReturns the current date and time as a value in \'YYYY-MM-DD HH:MM:SS\'\nor YYYYMMDDHHMMSS.uuuuuu format, depending on whether the function is\nused in a string or numeric context. The value is expressed in the\ncurrent time zone.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT NOW();\n -> \'2007-12-15 23:50:26\'\nmysql> SELECT NOW() + 0;\n -> 20071215235026.000000\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (282,26,'SHOW ENGINES','Syntax:\nSHOW [STORAGE] ENGINES\n\nSHOW ENGINES displays status information about the server\'s storage\nengines. This is particularly useful for checking whether a storage\nengine is supported, or to see what the default engine is.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-engines.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-engines.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (283,18,'>=','Syntax:\n>=\n\nGreater than or equal:\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html\n\n','mysql> SELECT 2 >= 2;\n -> 1\n','http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (284,4,'EXP','Syntax:\nEXP(X)\n\nReturns the value of e (the base of natural logarithms) raised to the\npower of X. The inverse of this function is LOG() (using a single\nargument only) or LN().\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html\n\n','mysql> SELECT EXP(2);\n -> 7.3890560989307\nmysql> SELECT EXP(-2);\n -> 0.13533528323661\nmysql> SELECT EXP(0);\n -> 1\n','http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (285,22,'LONGBLOB','LONGBLOB\n\nA BLOB column with a maximum length of 4,294,967,295 or 4GB (232 - 1)\nbytes. The effective maximum length of LONGBLOB columns depends on the\nconfigured maximum packet size in the client/server protocol and\navailable memory. Each LONGBLOB value is stored using a 4-byte length\nprefix that indicates the number of bytes in the value.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-type-overview.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/string-type-overview.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (286,13,'POINTN','PointN(ls,N)\n\nReturns the N-th Point in the Linestring value ls. Points are numbered\nbeginning with 1.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#linestring-property-functions\n\n','mysql> SET @ls = \'LineString(1 1,2 2,3 3)\';\nmysql> SELECT AsText(PointN(GeomFromText(@ls),2));\n+-------------------------------------+\n| AsText(PointN(GeomFromText(@ls),2)) |\n+-------------------------------------+\n| POINT(2 2) |\n+-------------------------------------+\n','http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#linestring-property-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (287,22,'YEAR DATA TYPE','YEAR[(2|4)]\n\nA year in two-digit or four-digit format. The default is four-digit\nformat. YEAR(2) or YEAR(4) differ in display format, but have the same\nrange of values. In four-digit format, values display as 1901 to 2155,\nand 0000. In two-digit format, values display as 70 to 69, representing\nyears from 1970 to 2069. MySQL displays YEAR values in YYYY or\nYYformat, but permits assignment of values to YEAR columns using either\nstrings or numbers.\n\n*Note*: The YEAR(2) data type has certain issues that you should\nconsider before choosing to use it. As of MySQL 5.5.27, YEAR(2) is\ndeprecated. For more information, see\nhttp://dev.mysql.com/doc/refman/5.5/en/migrating-to-year4.html.\n\nFor additional information about YEAR display format and inerpretation\nof input values, see http://dev.mysql.com/doc/refman/5.5/en/year.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-type-overview.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-type-overview.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (288,16,'SUM','Syntax:\nSUM([DISTINCT] expr)\n\nReturns the sum of expr. If the return set has no rows, SUM() returns\nNULL. The DISTINCT keyword can be used to sum only the distinct values\nof expr.\n\nSUM() returns NULL if there were no matching rows.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (289,37,'OCT','Syntax:\nOCT(N)\n\nReturns a string representation of the octal value of N, where N is a\nlonglong (BIGINT) number. This is equivalent to CONV(N,10,8). Returns\nNULL if N is NULL.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT OCT(12);\n -> \'14\'\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (290,31,'SYSDATE','Syntax:\nSYSDATE()\n\nReturns the current date and time as a value in \'YYYY-MM-DD HH:MM:SS\'\nor YYYYMMDDHHMMSS.uuuuuu format, depending on whether the function is\nused in a string or numeric context.\n\nSYSDATE() returns the time at which it executes. This differs from the\nbehavior for NOW(), which returns a constant time that indicates the\ntime at which the statement began to execute. (Within a stored function\nor trigger, NOW() returns the time at which the function or triggering\nstatement began to execute.)\n\nmysql> SELECT NOW(), SLEEP(2), NOW();\n+---------------------+----------+---------------------+\n| NOW() | SLEEP(2) | NOW() |\n+---------------------+----------+---------------------+\n| 2006-04-12 13:47:36 | 0 | 2006-04-12 13:47:36 |\n+---------------------+----------+---------------------+\n\nmysql> SELECT SYSDATE(), SLEEP(2), SYSDATE();\n+---------------------+----------+---------------------+\n| SYSDATE() | SLEEP(2) | SYSDATE() |\n+---------------------+----------+---------------------+\n| 2006-04-12 13:47:44 | 0 | 2006-04-12 13:47:46 |\n+---------------------+----------+---------------------+\n\nIn addition, the SET TIMESTAMP statement affects the value returned by\nNOW() but not by SYSDATE(). This means that timestamp settings in the\nbinary log have no effect on invocations of SYSDATE().\n\nBecause SYSDATE() can return different values even within the same\nstatement, and is not affected by SET TIMESTAMP, it is nondeterministic\nand therefore unsafe for replication if statement-based binary logging\nis used. If that is a problem, you can use row-based logging.\n\nAlternatively, you can use the --sysdate-is-now option to cause\nSYSDATE() to be an alias for NOW(). This works if the option is used on\nboth the master and the slave.\n\nThe nondeterministic nature of SYSDATE() also means that indexes cannot\nbe used for evaluating expressions that refer to it.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (291,5,'UNINSTALL PLUGIN','Syntax:\nUNINSTALL PLUGIN plugin_name\n\nThis statement removes an installed server plugin. It requires the\nDELETE privilege for the mysql.plugin table.\n\nplugin_name must be the name of some plugin that is listed in the\nmysql.plugin table. The server executes the plugin\'s deinitialization\nfunction and removes the row for the plugin from the mysql.plugin\ntable, so that subsequent server restarts will not load and initialize\nthe plugin. UNINSTALL PLUGIN does not remove the plugin\'s shared\nlibrary file.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/uninstall-plugin.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/uninstall-plugin.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (292,32,'ASBINARY','AsBinary(g), AsWKB(g)\n\nConverts a value in internal geometry format to its WKB representation\nand returns the binary result.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/functions-to-convert-geometries-between-formats.html\n\n','SELECT AsBinary(g) FROM geom;\n','http://dev.mysql.com/doc/refman/5.5/en/functions-to-convert-geometries-between-formats.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (293,37,'REPEAT FUNCTION','Syntax:\nREPEAT(str,count)\n\nReturns a string consisting of the string str repeated count times. If\ncount is less than 1, returns an empty string. Returns NULL if str or\ncount are NULL.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT REPEAT(\'MySQL\', 3);\n -> \'MySQLMySQLMySQL\'\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (294,26,'SHOW TABLES','Syntax:\nSHOW [FULL] TABLES [{FROM | IN} db_name]\n [LIKE \'pattern\' | WHERE expr]\n\nSHOW TABLES lists the non-TEMPORARY tables in a given database. You can\nalso get this list using the mysqlshow db_name command. The LIKE\nclause, if present, indicates which table names to match. The WHERE\nclause can be given to select rows using more general conditions, as\ndiscussed in http://dev.mysql.com/doc/refman/5.5/en/extended-show.html.\n\nThis statement also lists any views in the database. The FULL modifier\nis supported such that SHOW FULL TABLES displays a second output\ncolumn. Values for the second column are BASE TABLE for a table and\nVIEW for a view.\n\nIf you have no privileges for a base table or view, it does not show up\nin the output from SHOW TABLES or mysqlshow db_name.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-tables.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-tables.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (295,31,'MAKEDATE','Syntax:\nMAKEDATE(year,dayofyear)\n\nReturns a date, given year and day-of-year values. dayofyear must be\ngreater than 0 or the result is NULL.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT MAKEDATE(2011,31), MAKEDATE(2011,32);\n -> \'2011-01-31\', \'2011-02-01\'\nmysql> SELECT MAKEDATE(2011,365), MAKEDATE(2014,365);\n -> \'2011-12-31\', \'2014-12-31\'\nmysql> SELECT MAKEDATE(2011,0);\n -> NULL\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (296,37,'BINARY OPERATOR','Syntax:\nBINARY\n\nThe BINARY operator casts the string following it to a binary string.\nThis is an easy way to force a column comparison to be done byte by\nbyte rather than character by character. This causes the comparison to\nbe case sensitive even if the column is not defined as BINARY or BLOB.\nBINARY also causes trailing spaces to be significant.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/cast-functions.html\n\n','mysql> SELECT \'a\' = \'A\';\n -> 1\nmysql> SELECT BINARY \'a\' = \'A\';\n -> 0\nmysql> SELECT \'a\' = \'a \';\n -> 1\nmysql> SELECT BINARY \'a\' = \'a \';\n -> 0\n','http://dev.mysql.com/doc/refman/5.5/en/cast-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (297,6,'MBROVERLAPS','MBROverlaps(g1,g2)\n\nReturns 1 or 0 to indicate whether the Minimum Bounding Rectangles of\nthe two geometries g1 and g2 overlap. The term spatially overlaps is\nused if two geometries intersect and their intersection results in a\ngeometry of the same dimension but not equal to either of the given\ngeometries.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/functions-for-testing-spatial-relations-between-geometric-objects.html#relations-on-geometry-mbr\n\n','','http://dev.mysql.com/doc/refman/5.5/en/functions-for-testing-spatial-relations-between-geometric-objects.html#relations-on-geometry-mbr'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (298,37,'SOUNDEX','Syntax:\nSOUNDEX(str)\n\nReturns a soundex string from str. Two strings that sound almost the\nsame should have identical soundex strings. A standard soundex string\nis four characters long, but the SOUNDEX() function returns an\narbitrarily long string. You can use SUBSTRING() on the result to get a\nstandard soundex string. All nonalphabetic characters in str are\nignored. All international alphabetic characters outside the A-Z range\nare treated as vowels.\n\n*Important*: When using SOUNDEX(), you should be aware of the following\nlimitations:\n\no This function, as currently implemented, is intended to work well\n with strings that are in the English language only. Strings in other\n languages may not produce reliable results.\n\no This function is not guaranteed to provide consistent results with\n strings that use multi-byte character sets, including utf-8.\n\n We hope to remove these limitations in a future release. See Bug\n #22638 for more information.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT SOUNDEX(\'Hello\');\n -> \'H400\'\nmysql> SELECT SOUNDEX(\'Quadratically\');\n -> \'Q36324\'\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (299,6,'MBRTOUCHES','MBRTouches(g1,g2)\n\nReturns 1 or 0 to indicate whether the Minimum Bounding Rectangles of\nthe two geometries g1 and g2 touch. Two geometries spatially touch if\nthe interiors of the geometries do not intersect, but the boundary of\none of the geometries intersects either the boundary or the interior of\nthe other.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/functions-for-testing-spatial-relations-between-geometric-objects.html#relations-on-geometry-mbr\n\n','','http://dev.mysql.com/doc/refman/5.5/en/functions-for-testing-spatial-relations-between-geometric-objects.html#relations-on-geometry-mbr'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (300,39,'DROP EVENT','Syntax:\nDROP EVENT [IF EXISTS] event_name\n\nThis statement drops the event named event_name. The event immediately\nceases being active, and is deleted completely from the server.\n\nIf the event does not exist, the error ERROR 1517 (HY000): Unknown\nevent \'event_name\' results. You can override this and cause the\nstatement to generate a warning for nonexistent events instead using IF\nEXISTS.\n\nThis statement requires the EVENT privilege for the schema to which the\nevent to be dropped belongs.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/drop-event.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/drop-event.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (301,27,'INSERT SELECT','Syntax:\nINSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]\n [INTO] tbl_name [(col_name,...)]\n SELECT ...\n [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]\n\nWith INSERT ... SELECT, you can quickly insert many rows into a table\nfrom one or many tables. For example:\n\nINSERT INTO tbl_temp2 (fld_id)\n SELECT tbl_temp1.fld_order_id\n FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100;\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/insert-select.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/insert-select.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (302,39,'CREATE PROCEDURE','Syntax:\nCREATE\n [DEFINER = { user | CURRENT_USER }]\n PROCEDURE sp_name ([proc_parameter[,...]])\n [characteristic ...] routine_body\n\nCREATE\n [DEFINER = { user | CURRENT_USER }]\n FUNCTION sp_name ([func_parameter[,...]])\n RETURNS type\n [characteristic ...] routine_body\n\nproc_parameter:\n [ IN | OUT | INOUT ] param_name type\n\nfunc_parameter:\n param_name type\n\ntype:\n Any valid MySQL data type\n\ncharacteristic:\n COMMENT \'string\'\n | LANGUAGE SQL\n | [NOT] DETERMINISTIC\n | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }\n | SQL SECURITY { DEFINER | INVOKER }\n\nroutine_body:\n Valid SQL routine statement\n\nThese statements create stored routines. By default, a routine is\nassociated with the default database. To associate the routine\nexplicitly with a given database, specify the name as db_name.sp_name\nwhen you create it.\n\nThe CREATE FUNCTION statement is also used in MySQL to support UDFs\n(user-defined functions). See\nhttp://dev.mysql.com/doc/refman/5.5/en/adding-functions.html. A UDF can\nbe regarded as an external stored function. Stored functions share\ntheir namespace with UDFs. See\nhttp://dev.mysql.com/doc/refman/5.5/en/function-resolution.html, for\nthe rules describing how the server interprets references to different\nkinds of functions.\n\nTo invoke a stored procedure, use the CALL statement (see [HELP CALL]).\nTo invoke a stored function, refer to it in an expression. The function\nreturns a value during expression evaluation.\n\nCREATE PROCEDURE and CREATE FUNCTION require the CREATE ROUTINE\nprivilege. They might also require the SUPER privilege, depending on\nthe DEFINER value, as described later in this section. If binary\nlogging is enabled, CREATE FUNCTION might require the SUPER privilege,\nas described in\nhttp://dev.mysql.com/doc/refman/5.5/en/stored-programs-logging.html.\n\nBy default, MySQL automatically grants the ALTER ROUTINE and EXECUTE\nprivileges to the routine creator. This behavior can be changed by\ndisabling the automatic_sp_privileges system variable. See\nhttp://dev.mysql.com/doc/refman/5.5/en/stored-routines-privileges.html.\n\nThe DEFINER and SQL SECURITY clauses specify the security context to be\nused when checking access privileges at routine execution time, as\ndescribed later in this section.\n\nIf the routine name is the same as the name of a built-in SQL function,\na syntax error occurs unless you use a space between the name and the\nfollowing parenthesis when defining the routine or invoking it later.\nFor this reason, avoid using the names of existing SQL functions for\nyour own stored routines.\n\nThe IGNORE_SPACE SQL mode applies to built-in functions, not to stored\nroutines. It is always permissible to have spaces after a stored\nroutine name, regardless of whether IGNORE_SPACE is enabled.\n\nThe parameter list enclosed within parentheses must always be present.\nIf there are no parameters, an empty parameter list of () should be\nused. Parameter names are not case sensitive.\n\nEach parameter is an IN parameter by default. To specify otherwise for\na parameter, use the keyword OUT or INOUT before the parameter name.\n\n*Note*: Specifying a parameter as IN, OUT, or INOUT is valid only for a\nPROCEDURE. For a FUNCTION, parameters are always regarded as IN\nparameters.\n\nAn IN parameter passes a value into a procedure. The procedure might\nmodify the value, but the modification is not visible to the caller\nwhen the procedure returns. An OUT parameter passes a value from the\nprocedure back to the caller. Its initial value is NULL within the\nprocedure, and its value is visible to the caller when the procedure\nreturns. An INOUT parameter is initialized by the caller, can be\nmodified by the procedure, and any change made by the procedure is\nvisible to the caller when the procedure returns.\n\nFor each OUT or INOUT parameter, pass a user-defined variable in the\nCALL statement that invokes the procedure so that you can obtain its\nvalue when the procedure returns. If you are calling the procedure from\nwithin another stored procedure or function, you can also pass a\nroutine parameter or local routine variable as an IN or INOUT\nparameter.\n\nThe following example shows a simple stored procedure that uses an OUT\nparameter:\n\nmysql> delimiter //\n\nmysql> CREATE PROCEDURE simpleproc (OUT param1 INT)\n -> BEGIN\n -> SELECT COUNT(*) INTO param1 FROM t;\n -> END//\nQuery OK, 0 rows affected (0.00 sec)\n\nmysql> delimiter ;\n\nmysql> CALL simpleproc(@a);\nQuery OK, 0 rows affected (0.00 sec)\n\nmysql> SELECT @a;\n+------+\n| @a |\n+------+\n| 3 |\n+------+\n1 row in set (0.00 sec)\n\nThe example uses the mysql client delimiter command to change the\nstatement delimiter from ; to // while the procedure is being defined.\nThis enables the ; delimiter used in the procedure body to be passed\nthrough to the server rather than being interpreted by mysql itself.\nSee\nhttp://dev.mysql.com/doc/refman/5.5/en/stored-programs-defining.html.\n\nThe RETURNS clause may be specified only for a FUNCTION, for which it\nis mandatory. It indicates the return type of the function, and the\nfunction body must contain a RETURN value statement. If the RETURN\nstatement returns a value of a different type, the value is coerced to\nthe proper type. For example, if a function specifies an ENUM or SET\nvalue in the RETURNS clause, but the RETURN statement returns an\ninteger, the value returned from the function is the string for the\ncorresponding ENUM member of set of SET members.\n\nThe following example function takes a parameter, performs an operation\nusing an SQL function, and returns the result. In this case, it is\nunnecessary to use delimiter because the function definition contains\nno internal ; statement delimiters:\n\nmysql> CREATE FUNCTION hello (s CHAR(20))\nmysql> RETURNS CHAR(50) DETERMINISTIC\n -> RETURN CONCAT(\'Hello, \',s,\'!\');\nQuery OK, 0 rows affected (0.00 sec)\n\nmysql> SELECT hello(\'world\');\n+----------------+\n| hello(\'world\') |\n+----------------+\n| Hello, world! |\n+----------------+\n1 row in set (0.00 sec)\n\nParameter types and function return types can be declared to use any\nvalid data type, except that the COLLATE attribute cannot be used prior\nto MySQL 5.5.3. As of 5.5.3, COLLATE can be used if preceded by the\nCHARACTER SET attribute.\n\nThe routine_body consists of a valid SQL routine statement. This can be\na simple statement such as SELECT or INSERT, or a compound statement\nwritten using BEGIN and END. Compound statements can contain\ndeclarations, loops, and other control structure statements. The syntax\nfor these statements is described in\nhttp://dev.mysql.com/doc/refman/5.5/en/sql-syntax-compound-statements.h\ntml.\n\nMySQL permits routines to contain DDL statements, such as CREATE and\nDROP. MySQL also permits stored procedures (but not stored functions)\nto contain SQL transaction statements such as COMMIT. Stored functions\nmay not contain statements that perform explicit or implicit commit or\nrollback. Support for these statements is not required by the SQL\nstandard, which states that each DBMS vendor may decide whether to\npermit them.\n\nStatements that return a result set can be used within a stored\nprocedure but not within a stored function. This prohibition includes\nSELECT statements that do not have an INTO var_list clause and other\nstatements such as SHOW, EXPLAIN, and CHECK TABLE. For statements that\ncan be determined at function definition time to return a result set, a\nNot allowed to return a result set from a function error occurs\n(ER_SP_NO_RETSET). For statements that can be determined only at\nruntime to return a result set, a PROCEDURE %s can\'t return a result\nset in the given context error occurs (ER_SP_BADSELECT).\n\nUSE statements within stored routines are not permitted. When a routine\nis invoked, an implicit USE db_name is performed (and undone when the\nroutine terminates). The causes the routine to have the given default\ndatabase while it executes. References to objects in databases other\nthan the routine default database should be qualified with the\nappropriate database name.\n\nFor additional information about statements that are not permitted in\nstored routines, see\nhttp://dev.mysql.com/doc/refman/5.5/en/stored-program-restrictions.html\n.\n\nFor information about invoking stored procedures from within programs\nwritten in a language that has a MySQL interface, see [HELP CALL].\n\nMySQL stores the sql_mode system variable setting that is in effect at\nthe time a routine is created, and always executes the routine with\nthis setting in force, regardless of the server SQL mode in effect when\nthe routine is invoked.\n\nThe switch from the SQL mode of the invoker to that of the routine\noccurs after evaluation of arguments and assignment of the resulting\nvalues to routine parameters. If you define a routine in strict SQL\nmode but invoke it in nonstrict mode, assignment of arguments to\nroutine parameters does not take place in strict mode. If you require\nthat expressions passed to a routine be assigned in strict SQL mode,\nyou should invoke the routine with strict mode in effect.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/create-procedure.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/create-procedure.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (303,22,'VARBINARY','VARBINARY(M)\n\nThe VARBINARY type is similar to the VARCHAR type, but stores binary\nbyte strings rather than nonbinary character strings. M represents the\nmaximum column length in bytes.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-type-overview.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/string-type-overview.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (304,26,'LOAD INDEX','Syntax:\nLOAD INDEX INTO CACHE\n tbl_index_list [, tbl_index_list] ...\n\ntbl_index_list:\n tbl_name\n [PARTITION (partition_list | ALL)]\n [[INDEX|KEY] (index_name[, index_name] ...)]\n [IGNORE LEAVES]\n\npartition_list:\n partition_name[, partition_name][, ...]\n\nThe LOAD INDEX INTO CACHE statement preloads a table index into the key\ncache to which it has been assigned by an explicit CACHE INDEX\nstatement, or into the default key cache otherwise.\n\nLOAD INDEX INTO CACHE is used only for MyISAM tables. In MySQL 5.5, it\nis also supported for partitioned MyISAM tables; in addition, indexes\non partitioned tables can be preloaded for one, several, or all\npartitions.\n\nThe IGNORE LEAVES modifier causes only blocks for the nonleaf nodes of\nthe index to be preloaded.\n\nIGNORE LEAVES is also supported for partitioned MyISAM tables.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/load-index.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/load-index.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (305,27,'UNION','Syntax:\nSELECT ...\nUNION [ALL | DISTINCT] SELECT ...\n[UNION [ALL | DISTINCT] SELECT ...]\n\nUNION is used to combine the result from multiple SELECT statements\ninto a single result set.\n\nThe column names from the first SELECT statement are used as the column\nnames for the results returned. Selected columns listed in\ncorresponding positions of each SELECT statement should have the same\ndata type. (For example, the first column selected by the first\nstatement should have the same type as the first column selected by the\nother statements.)\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/union.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/union.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (306,31,'TO_DAYS','Syntax:\nTO_DAYS(date)\n\nGiven a date date, returns a day number (the number of days since year\n0).\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT TO_DAYS(950501);\n -> 728779\nmysql> SELECT TO_DAYS(\'2007-10-07\');\n -> 733321\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (307,37,'NOT REGEXP','Syntax:\nexpr NOT REGEXP pat, expr NOT RLIKE pat\n\nThis is the same as NOT (expr REGEXP pat).\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/regexp.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/regexp.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (308,26,'SHOW INDEX','Syntax:\nSHOW {INDEX | INDEXES | KEYS}\n {FROM | IN} tbl_name\n [{FROM | IN} db_name]\n [WHERE expr]\n\nSHOW INDEX returns table index information. The format resembles that\nof the SQLStatistics call in ODBC. This statement requires some\nprivilege for any column in the table.\nYou can use db_name.tbl_name as an alternative to the tbl_name FROM\ndb_name syntax. These two statements are equivalent:\n\nSHOW INDEX FROM mytable FROM mydb;\nSHOW INDEX FROM mydb.mytable;\n\nThe WHERE clause can be given to select rows using more general\nconditions, as discussed in\nhttp://dev.mysql.com/doc/refman/5.5/en/extended-show.html.\n\nYou can also list a table\'s indexes with the mysqlshow -k db_name\ntbl_name command.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-index.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-index.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (309,26,'SHOW CREATE DATABASE','Syntax:\nSHOW CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name\n\nShows the CREATE DATABASE statement that creates the given database. If\nthe SHOW statement includes an IF NOT EXISTS clause, the output too\nincludes such a clause. SHOW CREATE SCHEMA is a synonym for SHOW CREATE\nDATABASE.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-create-database.html\n\n','mysql> SHOW CREATE DATABASE test\\G\n*************************** 1. row ***************************\n Database: test\nCreate Database: CREATE DATABASE `test`\n /*!40100 DEFAULT CHARACTER SET latin1 */\n\nmysql> SHOW CREATE SCHEMA test\\G\n*************************** 1. row ***************************\n Database: test\nCreate Database: CREATE DATABASE `test`\n /*!40100 DEFAULT CHARACTER SET latin1 */\n','http://dev.mysql.com/doc/refman/5.5/en/show-create-database.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (310,23,'LEAVE','Syntax:\nLEAVE label\n\nThis statement is used to exit the flow control construct that has the\ngiven label. If the label is for the outermost stored program block,\nLEAVE exits the program.\n\nLEAVE can be used within BEGIN ... END or loop constructs (LOOP,\nREPEAT, WHILE).\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/leave.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/leave.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (311,18,'NOT IN','Syntax:\nexpr NOT IN (value,...)\n\nThis is the same as NOT (expr IN (value,...)).\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (312,15,'!','Syntax:\nNOT, !\n\nLogical NOT. Evaluates to 1 if the operand is 0, to 0 if the operand is\nnonzero, and NOT NULL returns NULL.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/logical-operators.html\n\n','mysql> SELECT NOT 10;\n -> 0\nmysql> SELECT NOT 0;\n -> 1\nmysql> SELECT NOT NULL;\n -> NULL\nmysql> SELECT ! (1+1);\n -> 0\nmysql> SELECT ! 1+1;\n -> 1\n','http://dev.mysql.com/doc/refman/5.5/en/logical-operators.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (313,23,'DECLARE HANDLER','Syntax:\nDECLARE handler_action HANDLER\n FOR condition_value [, condition_value] ...\n statement\n\nhandler_action:\n CONTINUE\n | EXIT\n | UNDO\n\ncondition_value:\n mysql_error_code\n | SQLSTATE [VALUE] sqlstate_value\n | condition_name\n | SQLWARNING\n | NOT FOUND\n | SQLEXCEPTION\n\nThe DECLARE ... HANDLER statement specifies a handler that deals with\none or more conditions. If one of these conditions occurs, the\nspecified statement executes. statement can be a simple statement such\nas SET var_name = value, or a compound statement written using BEGIN\nand END (see [HELP BEGIN END]).\n\nHandler declarations must appear after variable or condition\ndeclarations.\n\nThe handler_action value indicates what action the handler takes after\nexecution of the handler statement:\n\no CONTINUE: Execution of the current program continues.\n\no EXIT: Execution terminates for the BEGIN ... END compound statement\n in which the handler is declared. This is true even if the condition\n occurs in an inner block.\n\no UNDO: Not supported.\n\nThe condition_value for DECLARE ... HANDLER indicates the specific\ncondition or class of conditions that activates the handler:\n\no A MySQL error code (a number) or an SQLSTATE value (a 5-character\n string literal). You should not use MySQL error code 0 or SQLSTATE\n values that begin with \'00\', because those indicate success rather\n than an error condition. For a list of MySQL error codes and SQLSTATE\n values, see\n http://dev.mysql.com/doc/refman/5.5/en/error-messages-server.html.\n\no A condition name previously specified with DECLARE ... CONDITION. A\n condition name can be associated with a MySQL error code or SQLSTATE\n value. See [HELP DECLARE CONDITION].\n\no SQLWARNING is shorthand for the class of SQLSTATE values that begin\n with \'01\'.\n\no NOT FOUND is shorthand for the class of SQLSTATE values that begin\n with \'02\'. This is relevant within the context of cursors and is used\n to control what happens when a cursor reaches the end of a data set.\n If no more rows are available, a No Data condition occurs with\n SQLSTATE value \'02000\'. To detect this condition, you can set up a\n handler for it (or for a NOT FOUND condition). For an example, see\n http://dev.mysql.com/doc/refman/5.5/en/cursors.html. This condition\n also occurs for SELECT ... INTO var_list statements that retrieve no\n rows.\n\no SQLEXCEPTION is shorthand for the class of SQLSTATE values that do\n not begin with \'00\', \'01\', or \'02\'.\n\nIf a condition occurs for which no handler has been declared, the\naction taken depends on the condition class:\n\no For SQLEXCEPTION conditions, the stored program terminates at the\n statement that raised the condition, as if there were an EXIT\n handler. If the program was called by another stored program, the\n calling program handles the condition using the handler selection\n rules applied to its own handlers.\n\no For SQLWARNING conditions, the program continues executing, as if\n there were a CONTINUE handler.\n\no For NOT FOUND conditions, if the condition was raised normally, the\n action is CONTINUE. If it was raised by SIGNAL or RESIGNAL, the\n action is EXIT.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/declare-handler.html\n\n','mysql> CREATE TABLE test.t (s1 INT, PRIMARY KEY (s1));\nQuery OK, 0 rows affected (0.00 sec)\n\nmysql> delimiter //\n\nmysql> CREATE PROCEDURE handlerdemo ()\n -> BEGIN\n -> DECLARE CONTINUE HANDLER FOR SQLSTATE \'23000\' SET @x2 = 1;\n -> SET @x = 1;\n -> INSERT INTO test.t VALUES (1);\n -> SET @x = 2;\n -> INSERT INTO test.t VALUES (1);\n -> SET @x = 3;\n -> END;\n -> //\nQuery OK, 0 rows affected (0.00 sec)\n\nmysql> CALL handlerdemo()//\nQuery OK, 0 rows affected (0.00 sec)\n\nmysql> SELECT @x//\n +------+\n | @x |\n +------+\n | 3 |\n +------+\n 1 row in set (0.00 sec)\n','http://dev.mysql.com/doc/refman/5.5/en/declare-handler.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (314,22,'DOUBLE','DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]\n\nA normal-size (double-precision) floating-point number. Permissible\nvalues are -1.7976931348623157E+308 to -2.2250738585072014E-308, 0, and\n2.2250738585072014E-308 to 1.7976931348623157E+308. These are the\ntheoretical limits, based on the IEEE standard. The actual range might\nbe slightly smaller depending on your hardware or operating system.\n\nM is the total number of digits and D is the number of digits following\nthe decimal point. If M and D are omitted, values are stored to the\nlimits permitted by the hardware. A double-precision floating-point\nnumber is accurate to approximately 15 decimal places.\n\nUNSIGNED, if specified, disallows negative values.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (315,22,'TIME','TIME\n\nA time. The range is \'-838:59:59\' to \'838:59:59\'. MySQL displays TIME\nvalues in \'HH:MM:SS\' format, but permits assignment of values to TIME\ncolumns using either strings or numbers.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-type-overview.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-type-overview.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (316,15,'&&','Syntax:\nAND, &&\n\nLogical AND. Evaluates to 1 if all operands are nonzero and not NULL,\nto 0 if one or more operands are 0, otherwise NULL is returned.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/logical-operators.html\n\n','mysql> SELECT 1 && 1;\n -> 1\nmysql> SELECT 1 && 0;\n -> 0\nmysql> SELECT 1 && NULL;\n -> NULL\nmysql> SELECT 0 && NULL;\n -> 0\nmysql> SELECT NULL && 0;\n -> 0\n','http://dev.mysql.com/doc/refman/5.5/en/logical-operators.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (317,11,'X','X(p)\n\nReturns the X-coordinate value for the Point object p as a\ndouble-precision number.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#point-property-functions\n\n','mysql> SELECT X(POINT(56.7, 53.34));\n+-----------------------+\n| X(POINT(56.7, 53.34)) |\n+-----------------------+\n| 56.7 |\n+-----------------------+\n','http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#point-property-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (318,17,'SYSTEM_USER','Syntax:\nSYSTEM_USER()\n\nSYSTEM_USER() is a synonym for USER().\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/information-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/information-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (319,17,'FOUND_ROWS','Syntax:\nFOUND_ROWS()\n\nA SELECT statement may include a LIMIT clause to restrict the number of\nrows the server returns to the client. In some cases, it is desirable\nto know how many rows the statement would have returned without the\nLIMIT, but without running the statement again. To obtain this row\ncount, include a SQL_CALC_FOUND_ROWS option in the SELECT statement,\nand then invoke FOUND_ROWS() afterward:\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/information-functions.html\n\n','mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name\n -> WHERE id > 100 LIMIT 10;\nmysql> SELECT FOUND_ROWS();\n','http://dev.mysql.com/doc/refman/5.5/en/information-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (320,30,'CROSSES','Crosses(g1,g2)\n\nReturns 1 if g1 spatially crosses g2. Returns NULL if g1 is a Polygon\nor a MultiPolygon, or if g2 is a Point or a MultiPoint. Otherwise,\nreturns 0.\n\nThe term spatially crosses denotes a spatial relation between two given\ngeometries that has the following properties:\n\no The two geometries intersect\n\no Their intersection results in a geometry that has a dimension that is\n one less than the maximum dimension of the two given geometries\n\no Their intersection is not equal to either of the two given geometries\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/functions-for-testing-spatial-relations-between-geometric-objects.html#functions-that-test-spatial-relationships-between-geometries\n\n','','http://dev.mysql.com/doc/refman/5.5/en/functions-for-testing-spatial-relations-between-geometric-objects.html#functions-that-test-spatial-relationships-between-geometries'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (321,39,'TRUNCATE TABLE','Syntax:\nTRUNCATE [TABLE] tbl_name\n\nTRUNCATE TABLE empties a table completely. It requires the DROP\nprivilege.\n\nLogically, TRUNCATE TABLE is similar to a DELETE statement that deletes\nall rows, or a sequence of DROP TABLE and CREATE TABLE statements. To\nachieve high performance, it bypasses the DML method of deleting data.\nThus, it cannot be rolled back, it does not cause ON DELETE triggers to\nfire, and it cannot be performed for InnoDB tables with parent-child\nforeign key relationships.\n\nAlthough TRUNCATE TABLE is similar to DELETE, it is classified as a DDL\nstatement rather than a DML statement. It differs from DELETE in the\nfollowing ways in MySQL 5.5:\n\no Truncate operations drop and re-create the table, which is much\n faster than deleting rows one by one, particularly for large tables.\n\no Truncate operations cause an implicit commit, and so cannot be rolled\n back.\n\no Truncation operations cannot be performed if the session holds an\n active table lock.\n\no TRUNCATE TABLE fails for an InnoDB table if there are any FOREIGN KEY\n constraints from other tables that reference the table. Foreign key\n constraints between columns of the same table are permitted.\n\no Truncation operations do not return a meaningful value for the number\n of deleted rows. The usual result is "0 rows affected," which should\n be interpreted as "no information."\n\no As long as the table format file tbl_name.frm is valid, the table can\n be re-created as an empty table with TRUNCATE TABLE, even if the data\n or index files have become corrupted.\n\no Any AUTO_INCREMENT value is reset to its start value. This is true\n even for MyISAM and InnoDB, which normally do not reuse sequence\n values.\n\no When used with partitioned tables, TRUNCATE TABLE preserves the\n partitioning; that is, the data and index files are dropped and\n re-created, while the partition definitions (.par) file is\n unaffected.\n\no The TRUNCATE TABLE statement does not invoke ON DELETE triggers.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/truncate-table.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/truncate-table.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (322,16,'BIT_XOR','Syntax:\nBIT_XOR(expr)\n\nReturns the bitwise XOR of all bits in expr. The calculation is\nperformed with 64-bit (BIGINT) precision.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (323,31,'CURRENT_DATE','Syntax:\nCURRENT_DATE, CURRENT_DATE()\n\nCURRENT_DATE and CURRENT_DATE() are synonyms for CURDATE().\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (324,8,'START SLAVE','Syntax:\nSTART SLAVE [thread_types]\n\nSTART SLAVE [SQL_THREAD] UNTIL\n MASTER_LOG_FILE = \'log_name\', MASTER_LOG_POS = log_pos\n\nSTART SLAVE [SQL_THREAD] UNTIL\n RELAY_LOG_FILE = \'log_name\', RELAY_LOG_POS = log_pos\n\nthread_types:\n [thread_type [, thread_type] ... ]\n\nthread_type: IO_THREAD | SQL_THREAD\n\nSTART SLAVE with no thread_type options starts both of the slave\nthreads. The I/O thread reads events from the master server and stores\nthem in the relay log. The SQL thread reads events from the relay log\nand executes them. START SLAVE requires the SUPER privilege.\n\nIf START SLAVE succeeds in starting the slave threads, it returns\nwithout any error. However, even in that case, it might be that the\nslave threads start and then later stop (for example, because they do\nnot manage to connect to the master or read its binary log, or some\nother problem). START SLAVE does not warn you about this. You must\ncheck the slave\'s error log for error messages generated by the slave\nthreads, or check that they are running satisfactorily with SHOW SLAVE\nSTATUS.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/start-slave.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/start-slave.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (325,2,'AREA','Area(poly)\n\nReturns as a double-precision number the area of the Polygon value\npoly, as measured in its spatial reference system.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#polygon-property-functions\n\n','mysql> SET @poly = \'Polygon((0 0,0 3,3 0,0 0),(1 1,1 2,2 1,1 1))\';\nmysql> SELECT Area(GeomFromText(@poly));\n+---------------------------+\n| Area(GeomFromText(@poly)) |\n+---------------------------+\n| 4 |\n+---------------------------+\n','http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#polygon-property-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (326,26,'FLUSH','Syntax:\nFLUSH [NO_WRITE_TO_BINLOG | LOCAL]\n flush_option [, flush_option] ...\n\nThe FLUSH statement has several variant forms that clear or reload\nvarious internal caches, flush tables, or acquire locks. To execute\nFLUSH, you must have the RELOAD privilege. Specific flush options might\nrequire additional privileges, as described later.\n\nBy default, the server writes FLUSH statements to the binary log so\nthat they replicate to replication slaves. To suppress logging, use the\noptional NO_WRITE_TO_BINLOG keyword or its alias LOCAL.\n\n*Note*: FLUSH LOGS, FLUSH MASTER, FLUSH SLAVE, and FLUSH TABLES WITH\nREAD LOCK (with or without a table list) are not written to the binary\nlog in any case because they would cause problems if replicated to a\nslave.\n\nThe FLUSH statement causes an implicit commit. See\nhttp://dev.mysql.com/doc/refman/5.5/en/implicit-commit.html.\n\nThe RESET statement is similar to FLUSH. See [HELP RESET], for\ninformation about using the RESET statement with replication.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/flush.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/flush.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (327,23,'BEGIN END','Syntax:\n[begin_label:] BEGIN\n [statement_list]\nEND [end_label]\n\nBEGIN ... END syntax is used for writing compound statements, which can\nappear within stored programs (stored procedures and functions,\ntriggers, and events). A compound statement can contain multiple\nstatements, enclosed by the BEGIN and END keywords. statement_list\nrepresents a list of one or more statements, each terminated by a\nsemicolon (;) statement delimiter. The statement_list itself is\noptional, so the empty compound statement (BEGIN END) is legal.\n\nBEGIN ... END blocks can be nested.\n\nUse of multiple statements requires that a client is able to send\nstatement strings containing the ; statement delimiter. In the mysql\ncommand-line client, this is handled with the delimiter command.\nChanging the ; end-of-statement delimiter (for example, to //) permit ;\nto be used in a program body. For an example, see\nhttp://dev.mysql.com/doc/refman/5.5/en/stored-programs-defining.html.\n\nA BEGIN ... END block can be labeled. See [HELP labels].\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/begin-end.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/begin-end.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (328,26,'SHOW PROCEDURE STATUS','Syntax:\nSHOW PROCEDURE STATUS\n [LIKE \'pattern\' | WHERE expr]\n\nThis statement is a MySQL extension. It returns characteristics of a\nstored procedure, such as the database, name, type, creator, creation\nand modification dates, and character set information. A similar\nstatement, SHOW FUNCTION STATUS, displays information about stored\nfunctions (see [HELP SHOW FUNCTION STATUS]).\n\nThe LIKE clause, if present, indicates which procedure or function\nnames to match. The WHERE clause can be given to select rows using more\ngeneral conditions, as discussed in\nhttp://dev.mysql.com/doc/refman/5.5/en/extended-show.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-procedure-status.html\n\n','mysql> SHOW PROCEDURE STATUS LIKE \'sp1\'\\G\n*************************** 1. row ***************************\n Db: test\n Name: sp1\n Type: PROCEDURE\n Definer: testuser@localhost\n Modified: 2004-08-03 15:29:37\n Created: 2004-08-03 15:29:37\n Security_type: DEFINER\n Comment:\ncharacter_set_client: latin1\ncollation_connection: latin1_swedish_ci\n Database Collation: latin1_swedish_ci\n','http://dev.mysql.com/doc/refman/5.5/en/show-procedure-status.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (329,28,'DESCRIBE','Syntax:\n{DESCRIBE | DESC} tbl_name [col_name | wild]\n\nDESCRIBE provides information about the columns in a table. It is a\nshortcut for SHOW COLUMNS FROM. These statements also display\ninformation for views. (See [HELP SHOW COLUMNS].)\n\ncol_name can be a column name, or a string containing the SQL "%" and\n"_" wildcard characters to obtain output only for the columns with\nnames matching the string. There is no need to enclose the string\nwithin quotation marks unless it contains spaces or other special\ncharacters.\n\nmysql> DESCRIBE City;\n+------------+----------+------+-----+---------+----------------+\n| Field | Type | Null | Key | Default | Extra |\n+------------+----------+------+-----+---------+----------------+\n| Id | int(11) | NO | PRI | NULL | auto_increment |\n| Name | char(35) | NO | | | |\n| Country | char(3) | NO | UNI | | |\n| District | char(20) | YES | MUL | | |\n| Population | int(11) | NO | | 0 | |\n+------------+----------+------+-----+---------+----------------+\n5 rows in set (0.00 sec)\n\nThe description for SHOW COLUMNS provides more information about the\noutput columns (see [HELP SHOW COLUMNS]).\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/describe.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/describe.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (330,26,'SHOW WARNINGS','Syntax:\nSHOW WARNINGS [LIMIT [offset,] row_count]\nSHOW COUNT(*) WARNINGS\n\nSHOW WARNINGS shows information about the conditions (errors, warnings,\nand notes) that resulted from the last statement in the current session\nthat generated messages. It shows nothing if the last statement used a\ntable and generated no messages. (That is, a statement that uses a\ntable but generates no messages clears the message list.) Statements\nthat do not use tables and do not generate messages have no effect on\nthe message list.\n\nWarnings are generated for DML statements such as INSERT, UPDATE, and\nLOAD DATA INFILE as well as DDL statements such as CREATE TABLE and\nALTER TABLE.\n\nSHOW WARNINGS is also used following EXPLAIN EXTENDED, to display the\nextra information generated by EXPLAIN when the EXTENDED keyword is\nused. See http://dev.mysql.com/doc/refman/5.5/en/explain-extended.html.\n\nThe LIMIT clause has the same syntax as for the SELECT statement. See\nhttp://dev.mysql.com/doc/refman/5.5/en/select.html.\n\nA related statement, SHOW ERRORS, shows only the error conditions (it\nexcludes warnings and notes). See [HELP SHOW ERRORS].\n\nThe SHOW COUNT(*) WARNINGS statement displays the total number of\nerrors, warnings, and notes. You can also retrieve this number from the\nwarning_count system variable:\n\nSHOW COUNT(*) WARNINGS;\nSELECT @@warning_count;\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-warnings.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-warnings.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (331,10,'DROP USER','Syntax:\nDROP USER user [, user] ...\n\nThe DROP USER statement removes one or more MySQL accounts and their\nprivileges. It removes privilege rows for the account from all grant\ntables. To use this statement, you must have the global CREATE USER\nprivilege or the DELETE privilege for the mysql database. Each account\nname uses the format described in\nhttp://dev.mysql.com/doc/refman/5.5/en/account-names.html. For example:\n\nDROP USER \'jeffrey\'@\'localhost\';\n\nIf you specify only the user name part of the account name, a host name\npart of \'%\' is used.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/drop-user.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/drop-user.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (332,16,'STDDEV_POP','Syntax:\nSTDDEV_POP(expr)\n\nReturns the population standard deviation of expr (the square root of\nVAR_POP()). You can also use STD() or STDDEV(), which are equivalent\nbut not standard SQL.\n\nSTDDEV_POP() returns NULL if there were no matching rows.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (333,26,'SHOW CHARACTER SET','Syntax:\nSHOW CHARACTER SET\n [LIKE \'pattern\' | WHERE expr]\n\nThe SHOW CHARACTER SET statement shows all available character sets.\nThe LIKE clause, if present, indicates which character set names to\nmatch. The WHERE clause can be given to select rows using more general\nconditions, as discussed in\nhttp://dev.mysql.com/doc/refman/5.5/en/extended-show.html. For example:\n\nmysql> SHOW CHARACTER SET LIKE \'latin%\';\n+---------+-----------------------------+-------------------+--------+\n| Charset | Description | Default collation | Maxlen |\n+---------+-----------------------------+-------------------+--------+\n| latin1 | cp1252 West European | latin1_swedish_ci | 1 |\n| latin2 | ISO 8859-2 Central European | latin2_general_ci | 1 |\n| latin5 | ISO 8859-9 Turkish | latin5_turkish_ci | 1 |\n| latin7 | ISO 8859-13 Baltic | latin7_general_ci | 1 |\n+---------+-----------------------------+-------------------+--------+\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-character-set.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-character-set.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (334,37,'SUBSTRING','Syntax:\nSUBSTRING(str,pos), SUBSTRING(str FROM pos), SUBSTRING(str,pos,len),\nSUBSTRING(str FROM pos FOR len)\n\nThe forms without a len argument return a substring from string str\nstarting at position pos. The forms with a len argument return a\nsubstring len characters long from string str, starting at position\npos. The forms that use FROM are standard SQL syntax. It is also\npossible to use a negative value for pos. In this case, the beginning\nof the substring is pos characters from the end of the string, rather\nthan the beginning. A negative value may be used for pos in any of the\nforms of this function.\n\nFor all forms of SUBSTRING(), the position of the first character in\nthe string from which the substring is to be extracted is reckoned as\n1.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT SUBSTRING(\'Quadratically\',5);\n -> \'ratically\'\nmysql> SELECT SUBSTRING(\'foobarbar\' FROM 4);\n -> \'barbar\'\nmysql> SELECT SUBSTRING(\'Quadratically\',5,6);\n -> \'ratica\'\nmysql> SELECT SUBSTRING(\'Sakila\', -3);\n -> \'ila\'\nmysql> SELECT SUBSTRING(\'Sakila\', -5, 3);\n -> \'aki\'\nmysql> SELECT SUBSTRING(\'Sakila\' FROM -4 FOR 2);\n -> \'ki\'\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (335,36,'ISEMPTY','IsEmpty(g)\n\nReturns 1 if the geometry value g is the empty geometry, 0 if it is not\nempty, and -1 if the argument is NULL. If the geometry is empty, it\nrepresents the empty point set.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#general-geometry-property-functions\n\n','','http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#general-geometry-property-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (336,26,'SHOW FUNCTION STATUS','Syntax:\nSHOW FUNCTION STATUS\n [LIKE \'pattern\' | WHERE expr]\n\nThis statement is similar to SHOW PROCEDURE STATUS but for stored\nfunctions. See [HELP SHOW PROCEDURE STATUS].\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-function-status.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-function-status.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (337,37,'LTRIM','Syntax:\nLTRIM(str)\n\nReturns the string str with leading space characters removed.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT LTRIM(\' barbar\');\n -> \'barbar\'\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (338,30,'INTERSECTS','Intersects(g1,g2)\n\nReturns 1 or 0 to indicate whether g1 spatially intersects g2.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/functions-for-testing-spatial-relations-between-geometric-objects.html#functions-that-test-spatial-relationships-between-geometries\n\n','','http://dev.mysql.com/doc/refman/5.5/en/functions-for-testing-spatial-relations-between-geometric-objects.html#functions-that-test-spatial-relationships-between-geometries'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (339,27,'CALL','Syntax:\nCALL sp_name([parameter[,...]])\nCALL sp_name[()]\n\nThe CALL statement invokes a stored procedure that was defined\npreviously with CREATE PROCEDURE.\n\nStored procedures that take no arguments can be invoked without\nparentheses. That is, CALL p() and CALL p are equivalent.\n\nCALL can pass back values to its caller using parameters that are\ndeclared as OUT or INOUT parameters. When the procedure returns, a\nclient program can also obtain the number of rows affected for the\nfinal statement executed within the routine: At the SQL level, call the\nROW_COUNT() function; from the C API, call the mysql_affected_rows()\nfunction.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/call.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/call.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (340,6,'MBRDISJOINT','MBRDisjoint(g1,g2)\n\nReturns 1 or 0 to indicate whether the Minimum Bounding Rectangles of\nthe two geometries g1 and g2 are disjoint (do not intersect).\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/functions-for-testing-spatial-relations-between-geometric-objects.html#relations-on-geometry-mbr\n\n','','http://dev.mysql.com/doc/refman/5.5/en/functions-for-testing-spatial-relations-between-geometric-objects.html#relations-on-geometry-mbr'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (341,14,'VALUES','Syntax:\nVALUES(col_name)\n\nIn an INSERT ... ON DUPLICATE KEY UPDATE statement, you can use the\nVALUES(col_name) function in the UPDATE clause to refer to column\nvalues from the INSERT portion of the statement. In other words,\nVALUES(col_name) in the UPDATE clause refers to the value of col_name\nthat would be inserted, had no duplicate-key conflict occurred. This\nfunction is especially useful in multiple-row inserts. The VALUES()\nfunction is meaningful only in the ON DUPLICATE KEY UPDATE clause of\nINSERT statements and returns NULL otherwise. See\nhttp://dev.mysql.com/doc/refman/5.5/en/insert-on-duplicate.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/miscellaneous-functions.html\n\n','mysql> INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6)\n -> ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b);\n','http://dev.mysql.com/doc/refman/5.5/en/miscellaneous-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (342,37,'SUBSTRING_INDEX','Syntax:\nSUBSTRING_INDEX(str,delim,count)\n\nReturns the substring from string str before count occurrences of the\ndelimiter delim. If count is positive, everything to the left of the\nfinal delimiter (counting from the left) is returned. If count is\nnegative, everything to the right of the final delimiter (counting from\nthe right) is returned. SUBSTRING_INDEX() performs a case-sensitive\nmatch when searching for delim.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT SUBSTRING_INDEX(\'www.mysql.com\', \'.\', 2);\n -> \'www.mysql\'\nmysql> SELECT SUBSTRING_INDEX(\'www.mysql.com\', \'.\', -2);\n -> \'mysql.com\'\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (343,12,'ENCODE','Syntax:\nENCODE(str,pass_str)\n\nEncrypt str using pass_str as the password. To decrypt the result, use\nDECODE().\n\nThe result is a binary string of the same length as str.\n\nThe strength of the encryption is based on how good the random\ngenerator is. It should suffice for short strings.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (344,23,'LOOP','Syntax:\n[begin_label:] LOOP\n statement_list\nEND LOOP [end_label]\n\nLOOP implements a simple loop construct, enabling repeated execution of\nthe statement list, which consists of one or more statements, each\nterminated by a semicolon (;) statement delimiter. The statements\nwithin the loop are repeated until the loop is terminated. Usually,\nthis is accomplished with a LEAVE statement. Within a stored function,\nRETURN can also be used, which exits the function entirely.\n\nNeglecting to include a loop-termination statement results in an\ninfinite loop.\n\nA LOOP statement can be labeled. For the rules regarding label use, see\n[HELP labels].\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/loop.html\n\n','CREATE PROCEDURE doiterate(p1 INT)\nBEGIN\n label1: LOOP\n SET p1 = p1 + 1;\n IF p1 < 10 THEN\n ITERATE label1;\n END IF;\n LEAVE label1;\n END LOOP label1;\n SET @x = p1;\nEND;\n','http://dev.mysql.com/doc/refman/5.5/en/loop.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (345,4,'TRUNCATE','Syntax:\nTRUNCATE(X,D)\n\nReturns the number X, truncated to D decimal places. If D is 0, the\nresult has no decimal point or fractional part. D can be negative to\ncause D digits left of the decimal point of the value X to become zero.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html\n\n','mysql> SELECT TRUNCATE(1.223,1);\n -> 1.2\nmysql> SELECT TRUNCATE(1.999,1);\n -> 1.9\nmysql> SELECT TRUNCATE(1.999,0);\n -> 1\nmysql> SELECT TRUNCATE(-1.999,1);\n -> -1.9\nmysql> SELECT TRUNCATE(122,-2);\n -> 100\nmysql> SELECT TRUNCATE(10.28*100,0);\n -> 1028\n','http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (346,31,'TIMESTAMPADD','Syntax:\nTIMESTAMPADD(unit,interval,datetime_expr)\n\nAdds the integer expression interval to the date or datetime expression\ndatetime_expr. The unit for interval is given by the unit argument,\nwhich should be one of the following values: MICROSECOND\n(microseconds), SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, or\nYEAR.\n\nIt is possible to use FRAC_SECOND in place of MICROSECOND, but\nFRAC_SECOND is deprecated. FRAC_SECOND was removed in MySQL 5.5.3.\n\nThe unit value may be specified using one of keywords as shown, or with\na prefix of SQL_TSI_. For example, DAY and SQL_TSI_DAY both are legal.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT TIMESTAMPADD(MINUTE,1,\'2003-01-02\');\n -> \'2003-01-02 00:01:00\'\nmysql> SELECT TIMESTAMPADD(WEEK,1,\'2003-01-02\');\n -> \'2003-01-09\'\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (347,26,'SHOW','SHOW has many forms that provide information about databases, tables,\ncolumns, or status information about the server. This section describes\nthose following:\n\nSHOW AUTHORS\nSHOW {BINARY | MASTER} LOGS\nSHOW BINLOG EVENTS [IN \'log_name\'] [FROM pos] [LIMIT [offset,] row_count]\nSHOW CHARACTER SET [like_or_where]\nSHOW COLLATION [like_or_where]\nSHOW [FULL] COLUMNS FROM tbl_name [FROM db_name] [like_or_where]\nSHOW CONTRIBUTORS\nSHOW CREATE DATABASE db_name\nSHOW CREATE EVENT event_name\nSHOW CREATE FUNCTION func_name\nSHOW CREATE PROCEDURE proc_name\nSHOW CREATE TABLE tbl_name\nSHOW CREATE TRIGGER trigger_name\nSHOW CREATE VIEW view_name\nSHOW DATABASES [like_or_where]\nSHOW ENGINE engine_name {STATUS | MUTEX}\nSHOW [STORAGE] ENGINES\nSHOW ERRORS [LIMIT [offset,] row_count]\nSHOW EVENTS\nSHOW FUNCTION CODE func_name\nSHOW FUNCTION STATUS [like_or_where]\nSHOW GRANTS FOR user\nSHOW INDEX FROM tbl_name [FROM db_name]\nSHOW MASTER STATUS\nSHOW OPEN TABLES [FROM db_name] [like_or_where]\nSHOW PLUGINS\nSHOW PROCEDURE CODE proc_name\nSHOW PROCEDURE STATUS [like_or_where]\nSHOW PRIVILEGES\nSHOW [FULL] PROCESSLIST\nSHOW PROFILE [types] [FOR QUERY n] [OFFSET n] [LIMIT n]\nSHOW PROFILES\nSHOW SLAVE HOSTS\nSHOW SLAVE STATUS\nSHOW [GLOBAL | SESSION] STATUS [like_or_where]\nSHOW TABLE STATUS [FROM db_name] [like_or_where]\nSHOW [FULL] TABLES [FROM db_name] [like_or_where]\nSHOW TRIGGERS [FROM db_name] [like_or_where]\nSHOW [GLOBAL | SESSION] VARIABLES [like_or_where]\nSHOW WARNINGS [LIMIT [offset,] row_count]\n\nlike_or_where:\n LIKE \'pattern\'\n | WHERE expr\n\nIf the syntax for a given SHOW statement includes a LIKE \'pattern\'\npart, \'pattern\' is a string that can contain the SQL "%" and "_"\nwildcard characters. The pattern is useful for restricting statement\noutput to matching values.\n\nSeveral SHOW statements also accept a WHERE clause that provides more\nflexibility in specifying which rows to display. See\nhttp://dev.mysql.com/doc/refman/5.5/en/extended-show.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (348,18,'GREATEST','Syntax:\nGREATEST(value1,value2,...)\n\nWith two or more arguments, returns the largest (maximum-valued)\nargument. The arguments are compared using the same rules as for\nLEAST().\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html\n\n','mysql> SELECT GREATEST(2,0);\n -> 2\nmysql> SELECT GREATEST(34.0,3.0,5.0,767.0);\n -> 767.0\nmysql> SELECT GREATEST(\'B\',\'A\',\'C\');\n -> \'C\'\n','http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (349,26,'SHOW VARIABLES','Syntax:\nSHOW [GLOBAL | SESSION] VARIABLES\n [LIKE \'pattern\' | WHERE expr]\n\nSHOW VARIABLES shows the values of MySQL system variables. This\ninformation also can be obtained using the mysqladmin variables\ncommand. The LIKE clause, if present, indicates which variable names to\nmatch. The WHERE clause can be given to select rows using more general\nconditions, as discussed in\nhttp://dev.mysql.com/doc/refman/5.5/en/extended-show.html. This\nstatement does not require any privilege. It requires only the ability\nto connect to the server.\n\nWith the GLOBAL modifier, SHOW VARIABLES displays the values that are\nused for new connections to MySQL. As of MySQL 5.5.3, if a variable has\nno global value, no value is displayed. Before 5.5.3, the session value\nis displayed. With SESSION, SHOW VARIABLES displays the values that are\nin effect for the current connection. If no modifier is present, the\ndefault is SESSION. LOCAL is a synonym for SESSION.\nWith a LIKE clause, the statement displays only rows for those\nvariables with names that match the pattern. To obtain the row for a\nspecific variable, use a LIKE clause as shown:\n\nSHOW VARIABLES LIKE \'max_join_size\';\nSHOW SESSION VARIABLES LIKE \'max_join_size\';\n\nTo get a list of variables whose name match a pattern, use the "%"\nwildcard character in a LIKE clause:\n\nSHOW VARIABLES LIKE \'%size%\';\nSHOW GLOBAL VARIABLES LIKE \'%size%\';\n\nWildcard characters can be used in any position within the pattern to\nbe matched. Strictly speaking, because "_" is a wildcard that matches\nany single character, you should escape it as "\\_" to match it\nliterally. In practice, this is rarely necessary.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-variables.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-variables.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (350,26,'BINLOG','Syntax:\nBINLOG \'str\'\n\nBINLOG is an internal-use statement. It is generated by the mysqlbinlog\nprogram as the printable representation of certain events in binary log\nfiles. (See http://dev.mysql.com/doc/refman/5.5/en/mysqlbinlog.html.)\nThe \'str\' value is a base 64-encoded string the that server decodes to\ndetermine the data change indicated by the corresponding event. This\nstatement requires the SUPER privilege.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/binlog.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/binlog.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (351,16,'BIT_AND','Syntax:\nBIT_AND(expr)\n\nReturns the bitwise AND of all bits in expr. The calculation is\nperformed with 64-bit (BIGINT) precision.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (352,31,'SECOND','Syntax:\nSECOND(time)\n\nReturns the second for time, in the range 0 to 59.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT SECOND(\'10:05:03\');\n -> 3\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (353,4,'ATAN2','Syntax:\nATAN(Y,X), ATAN2(Y,X)\n\nReturns the arc tangent of the two variables X and Y. It is similar to\ncalculating the arc tangent of Y / X, except that the signs of both\narguments are used to determine the quadrant of the result.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html\n\n','mysql> SELECT ATAN(-2,2);\n -> -0.78539816339745\nmysql> SELECT ATAN2(PI(),0);\n -> 1.5707963267949\n','http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (354,6,'MBRCONTAINS','MBRContains(g1,g2)\n\nReturns 1 or 0 to indicate whether the Minimum Bounding Rectangle of g1\ncontains the Minimum Bounding Rectangle of g2. This tests the opposite\nrelationship as MBRWithin().\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/functions-for-testing-spatial-relations-between-geometric-objects.html#relations-on-geometry-mbr\n\n','mysql> SET @g1 = GeomFromText(\'Polygon((0 0,0 3,3 3,3 0,0 0))\');\nmysql> SET @g2 = GeomFromText(\'Point(1 1)\');\nmysql> SELECT MBRContains(@g1,@g2), MBRContains(@g2,@g1);\n----------------------+----------------------+\n| MBRContains(@g1,@g2) | MBRContains(@g2,@g1) |\n+----------------------+----------------------+\n| 1 | 0 |\n+----------------------+----------------------+\n','http://dev.mysql.com/doc/refman/5.5/en/functions-for-testing-spatial-relations-between-geometric-objects.html#relations-on-geometry-mbr'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (355,31,'HOUR','Syntax:\nHOUR(time)\n\nReturns the hour for time. The range of the return value is 0 to 23 for\ntime-of-day values. However, the range of TIME values actually is much\nlarger, so HOUR can return values greater than 23.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT HOUR(\'10:05:03\');\n -> 10\nmysql> SELECT HOUR(\'272:59:59\');\n -> 272\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (356,27,'SELECT','Syntax:\nSELECT\n [ALL | DISTINCT | DISTINCTROW ]\n [HIGH_PRIORITY]\n [STRAIGHT_JOIN]\n [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]\n [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]\n select_expr [, select_expr ...]\n [FROM table_references\n [WHERE where_condition]\n [GROUP BY {col_name | expr | position}\n [ASC | DESC], ... [WITH ROLLUP]]\n [HAVING where_condition]\n [ORDER BY {col_name | expr | position}\n [ASC | DESC], ...]\n [LIMIT {[offset,] row_count | row_count OFFSET offset}]\n [PROCEDURE procedure_name(argument_list)]\n [INTO OUTFILE \'file_name\'\n [CHARACTER SET charset_name]\n export_options\n | INTO DUMPFILE \'file_name\'\n | INTO var_name [, var_name]]\n [FOR UPDATE | LOCK IN SHARE MODE]]\n\nSELECT is used to retrieve rows selected from one or more tables, and\ncan include UNION statements and subqueries. See [HELP UNION], and\nhttp://dev.mysql.com/doc/refman/5.5/en/subqueries.html.\n\nThe most commonly used clauses of SELECT statements are these:\n\no Each select_expr indicates a column that you want to retrieve. There\n must be at least one select_expr.\n\no table_references indicates the table or tables from which to retrieve\n rows. Its syntax is described in [HELP JOIN].\n\no The WHERE clause, if given, indicates the condition or conditions\n that rows must satisfy to be selected. where_condition is an\n expression that evaluates to true for each row to be selected. The\n statement selects all rows if there is no WHERE clause.\n\n In the WHERE expression, you can use any of the functions and\n operators that MySQL supports, except for aggregate (summary)\n functions. See\n http://dev.mysql.com/doc/refman/5.5/en/expressions.html, and\n http://dev.mysql.com/doc/refman/5.5/en/functions.html.\n\nSELECT can also be used to retrieve rows computed without reference to\nany table.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/select.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/select.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (357,4,'COT','Syntax:\nCOT(X)\n\nReturns the cotangent of X.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html\n\n','mysql> SELECT COT(12);\n -> -1.5726734063977\nmysql> SELECT COT(0);\n -> NULL\n','http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (358,26,'SHOW CREATE EVENT','Syntax:\nSHOW CREATE EVENT event_name\n\nThis statement displays the CREATE EVENT statement needed to re-create\na given event. It requires the EVENT privilege for the database from\nwhich the event is to be shown. For example (using the same event\ne_daily defined and then altered in [HELP SHOW EVENTS]):\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-create-event.html\n\n','mysql> SHOW CREATE EVENT test.e_daily\\G\n*************************** 1. row ***************************\n Event: e_daily\n sql_mode:\n time_zone: SYSTEM\n Create Event: CREATE EVENT `e_daily`\n ON SCHEDULE EVERY 1 DAY\n STARTS CURRENT_TIMESTAMP + INTERVAL 6 HOUR\n ON COMPLETION NOT PRESERVE\n ENABLE\n COMMENT \'Saves total number of sessions then\n clears the table each day\'\n DO BEGIN\n INSERT INTO site_activity.totals (time, total)\n SELECT CURRENT_TIMESTAMP, COUNT(*)\n FROM site_activity.sessions;\n DELETE FROM site_activity.sessions;\n END\ncharacter_set_client: latin1\ncollation_connection: latin1_swedish_ci\n Database Collation: latin1_swedish_ci\n','http://dev.mysql.com/doc/refman/5.5/en/show-create-event.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (359,37,'LOAD_FILE','Syntax:\nLOAD_FILE(file_name)\n\nReads the file and returns the file contents as a string. To use this\nfunction, the file must be located on the server host, you must specify\nthe full path name to the file, and you must have the FILE privilege.\nThe file must be readable by all and its size less than\nmax_allowed_packet bytes. If the secure_file_priv system variable is\nset to a nonempty directory name, the file to be loaded must be located\nin that directory.\n\nIf the file does not exist or cannot be read because one of the\npreceding conditions is not satisfied, the function returns NULL.\n\nThe character_set_filesystem system variable controls interpretation of\nfile names that are given as literal strings.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> UPDATE t\n SET blob_col=LOAD_FILE(\'/tmp/picture\')\n WHERE id=1;\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (360,3,'POINTFROMTEXT','PointFromText(wkt[,srid])\n\nConstructs a POINT value using its WKT representation and SRID.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-wkt-functions\n\n','','http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-wkt-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (361,16,'GROUP_CONCAT','Syntax:\nGROUP_CONCAT(expr)\n\nThis function returns a string result with the concatenated non-NULL\nvalues from a group. It returns NULL if there are no non-NULL values.\nThe full syntax is as follows:\n\nGROUP_CONCAT([DISTINCT] expr [,expr ...]\n [ORDER BY {unsigned_integer | col_name | expr}\n [ASC | DESC] [,col_name ...]]\n [SEPARATOR str_val])\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html\n\n','mysql> SELECT student_name,\n -> GROUP_CONCAT(test_score)\n -> FROM student\n -> GROUP BY student_name;\n','http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (362,31,'DATE_FORMAT','Syntax:\nDATE_FORMAT(date,format)\n\nFormats the date value according to the format string.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT DATE_FORMAT(\'2009-10-04 22:23:00\', \'%W %M %Y\');\n -> \'Sunday October 2009\'\nmysql> SELECT DATE_FORMAT(\'2007-10-04 22:23:00\', \'%H:%i:%s\');\n -> \'22:23:00\'\nmysql> SELECT DATE_FORMAT(\'1900-10-04 22:23:00\',\n -> \'%D %y %a %d %m %b %j\');\n -> \'4th 00 Thu 04 10 Oct 277\'\nmysql> SELECT DATE_FORMAT(\'1997-10-04 22:23:00\',\n -> \'%H %k %I %r %T %S %w\');\n -> \'22 22 10 10:23:00 PM 22:23:00 00 6\'\nmysql> SELECT DATE_FORMAT(\'1999-01-01\', \'%X %V\');\n -> \'1998 52\'\nmysql> SELECT DATE_FORMAT(\'2006-06-00\', \'%d\');\n -> \'00\'\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (363,17,'BENCHMARK','Syntax:\nBENCHMARK(count,expr)\n\nThe BENCHMARK() function executes the expression expr repeatedly count\ntimes. It may be used to time how quickly MySQL processes the\nexpression. The result value is always 0. The intended use is from\nwithin the mysql client, which reports query execution times:\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/information-functions.html\n\n','mysql> SELECT BENCHMARK(1000000,ENCODE(\'hello\',\'goodbye\'));\n+----------------------------------------------+\n| BENCHMARK(1000000,ENCODE(\'hello\',\'goodbye\')) |\n+----------------------------------------------+\n| 0 |\n+----------------------------------------------+\n1 row in set (4.74 sec)\n','http://dev.mysql.com/doc/refman/5.5/en/information-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (364,31,'YEAR','Syntax:\nYEAR(date)\n\nReturns the year for date, in the range 1000 to 9999, or 0 for the\n"zero" date.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT YEAR(\'1987-01-01\');\n -> 1987\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (365,26,'SHOW ENGINE','Syntax:\nSHOW ENGINE engine_name {STATUS | MUTEX}\n\nSHOW ENGINE displays operational information about a storage engine.\nThe following statements currently are supported:\n\nSHOW ENGINE INNODB STATUS\nSHOW ENGINE INNODB MUTEX\nSHOW ENGINE {NDB | NDBCLUSTER} STATUS\nSHOW ENGINE PERFORMANCE_SCHEMA STATUS\n\nSHOW ENGINE INNODB STATUS displays extensive information from the\nstandard InnoDB Monitor about the state of the InnoDB storage engine.\nFor information about the standard monitor and other InnoDB Monitors\nthat provide information about InnoDB processing, see\nhttp://dev.mysql.com/doc/refman/5.5/en/innodb-monitors.html.\n\nSHOW ENGINE INNODB MUTEX displays InnoDB mutex statistics. The\nstatement displays the following fields:\n\no Type\n\n Always InnoDB.\n\no Name\n\n The source file where the mutex is implemented, and the line number\n in the file where the mutex is created. The line number may change\n depending on your version of MySQL.\n\no Status\n\n The mutex status. This field displays several values if UNIV_DEBUG\n was defined at MySQL compilation time (for example, in include/univ.i\n in the InnoDB part of the MySQL source tree). If UNIV_DEBUG was not\n defined, the statement displays only the os_waits value. In the\n latter case (without UNIV_DEBUG), the information on which the output\n is based is insufficient to distinguish regular mutexes and mutexes\n that protect rw-locks (which permit multiple readers or a single\n writer). Consequently, the output may appear to contain multiple rows\n for the same mutex.\n\n o count indicates how many times the mutex was requested.\n\n o spin_waits indicates how many times the spinlock had to run.\n\n o spin_rounds indicates the number of spinlock rounds. (spin_rounds\n divided by spin_waits provides the average round count.)\n\n o os_waits indicates the number of operating system waits. This\n occurs when the spinlock did not work (the mutex was not locked\n during the spinlock and it was necessary to yield to the operating\n system and wait).\n\n o os_yields indicates the number of times a the thread trying to lock\n a mutex gave up its timeslice and yielded to the operating system\n (on the presumption that permitting other threads to run will free\n the mutex so that it can be locked).\n\n o os_wait_times indicates the amount of time (in ms) spent in\n operating system waits, if the timed_mutexes system variable is 1\n (ON). If timed_mutexes is 0 (OFF), timing is disabled, so\n os_wait_times is 0. timed_mutexes is off by default.\n\nInformation from this statement can be used to diagnose system\nproblems. For example, large values of spin_waits and spin_rounds may\nindicate scalability problems.\n\nUse SHOW ENGINE PERFORMANCE_SCHEMA STATUS to inspect the internal\noperation of the Performance Schema code:\n\nmysql> SHOW ENGINE PERFORMANCE_SCHEMA STATUS\\G\n...\n*************************** 3. row ***************************\n Type: performance_schema\n Name: events_waits_history.row_size\nStatus: 76\n*************************** 4. row ***************************\n Type: performance_schema\n Name: events_waits_history.row_count\nStatus: 10000\n*************************** 5. row ***************************\n Type: performance_schema\n Name: events_waits_history.memory\nStatus: 760000\n...\n*************************** 57. row ***************************\n Type: performance_schema\n Name: performance_schema.memory\nStatus: 26459600\n...\n\nThe intent of this statement is to help the DBA to understand the\neffects that different options have on memory requirements.\n\nName values consist of two parts, which name an internal buffer and an\nattribute of the buffer, respectively:\n\no Internal buffers that are exposed as a table in the\n performance_schema database are named after the table. Examples:\n events_waits_history.row_size, mutex_instances.row_count.\n\no Internal buffers that are not exposed as a table are named within\n parentheses. Examples: (pfs_cond_class).row_size,\n (pfs_mutex_class).memory.\n\no Values that apply to the Performance Schema as a whole begin with\n performance_schema. Example: performance_schema.memory.\n\nAttributes have these meanings:\n\no row_size cannot be changed. It is the size of the internal record\n used by the implementation.\n\no row_count can be changed depending on the configuration options.\n\no For a table, tbl_name.memory is the product of row_size multiplied by\n row_count. For the Performance Schema as a whole,\n performance_schema.memory is the sum of all the memory used (the sum\n of all other memory values).\n\nIn some cases, there is a direct relationship between a configuration\nparameter and a SHOW ENGINE value. For example,\nevents_waits_history_long.row_count corresponds to\nperformance_schema_events_waits_history_long_size. In other cases, the\nrelationship is more complex. For example,\nevents_waits_history.row_count corresponds to\nperformance_schema_events_waits_history_size (the number of rows per\nthread) multiplied by performance_schema_max_thread_instances ( the\nnumber of threads).\n\nIf the server has the NDBCLUSTER storage engine enabled, SHOW ENGINE\nNDB STATUS displays cluster status information such as the number of\nconnected data nodes, the cluster connectstring, and cluster binlog\nepochs, as well as counts of various Cluster API objects created by the\nMySQL Server when connected to the cluster. Sample output from this\nstatement is shown here:\n\nmysql> SHOW ENGINE NDB STATUS;\n+------------+-----------------------+--------------------------------------------------+\n| Type | Name | Status |\n+------------+-----------------------+--------------------------------------------------+\n| ndbcluster | connection | cluster_node_id=7,\n connected_host=192.168.0.103, connected_port=1186, number_of_data_nodes=4,\n number_of_ready_data_nodes=3, connect_count=0 |\n| ndbcluster | NdbTransaction | created=6, free=0, sizeof=212 |\n| ndbcluster | NdbOperation | created=8, free=8, sizeof=660 |\n| ndbcluster | NdbIndexScanOperation | created=1, free=1, sizeof=744 |\n| ndbcluster | NdbIndexOperation | created=0, free=0, sizeof=664 |\n| ndbcluster | NdbRecAttr | created=1285, free=1285, sizeof=60 |\n| ndbcluster | NdbApiSignal | created=16, free=16, sizeof=136 |\n| ndbcluster | NdbLabel | created=0, free=0, sizeof=196 |\n| ndbcluster | NdbBranch | created=0, free=0, sizeof=24 |\n| ndbcluster | NdbSubroutine | created=0, free=0, sizeof=68 |\n| ndbcluster | NdbCall | created=0, free=0, sizeof=16 |\n| ndbcluster | NdbBlob | created=1, free=1, sizeof=264 |\n| ndbcluster | NdbReceiver | created=4, free=0, sizeof=68 |\n| ndbcluster | binlog | latest_epoch=155467, latest_trans_epoch=148126,\n latest_received_binlog_epoch=0, latest_handled_binlog_epoch=0,\n latest_applied_binlog_epoch=0 |\n+------------+-----------------------+--------------------------------------------------+\n\nThe rows with connection and binlog in the Name column were added to\nthe output of this statement in MySQL 5.1. The Status column in each of\nthese rows provides information about the MySQL server\'s connection to\nthe cluster and about the cluster binary log\'s status, respectively.\nThe Status information is in the form of comma-delimited set of\nname/value pairs.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-engine.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-engine.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (366,14,'NAME_CONST','Syntax:\nNAME_CONST(name,value)\n\nReturns the given value. When used to produce a result set column,\nNAME_CONST() causes the column to have the given name. The arguments\nshould be constants.\n\nmysql> SELECT NAME_CONST(\'myname\', 14);\n+--------+\n| myname |\n+--------+\n| 14 |\n+--------+\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/miscellaneous-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/miscellaneous-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (367,14,'RELEASE_LOCK','Syntax:\nRELEASE_LOCK(str)\n\nReleases the lock named by the string str that was obtained with\nGET_LOCK(). Returns 1 if the lock was released, 0 if the lock was not\nestablished by this thread (in which case the lock is not released),\nand NULL if the named lock did not exist. The lock does not exist if it\nwas never obtained by a call to GET_LOCK() or if it has previously been\nreleased.\n\nThe DO statement is convenient to use with RELEASE_LOCK(). See [HELP\nDO].\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/miscellaneous-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/miscellaneous-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (368,18,'IS NULL','Syntax:\nIS NULL\n\nTests whether a value is NULL.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html\n\n','mysql> SELECT 1 IS NULL, 0 IS NULL, NULL IS NULL;\n -> 0, 0, 1\n','http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (369,31,'CONVERT_TZ','Syntax:\nCONVERT_TZ(dt,from_tz,to_tz)\n\nCONVERT_TZ() converts a datetime value dt from the time zone given by\nfrom_tz to the time zone given by to_tz and returns the resulting\nvalue. Time zones are specified as described in\nhttp://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html. This\nfunction returns NULL if the arguments are invalid.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT CONVERT_TZ(\'2004-01-01 12:00:00\',\'GMT\',\'MET\');\n -> \'2004-01-01 13:00:00\'\nmysql> SELECT CONVERT_TZ(\'2004-01-01 12:00:00\',\'+00:00\',\'+10:00\');\n -> \'2004-01-01 22:00:00\'\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (370,31,'TIME_TO_SEC','Syntax:\nTIME_TO_SEC(time)\n\nReturns the time argument, converted to seconds.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT TIME_TO_SEC(\'22:23:00\');\n -> 80580\nmysql> SELECT TIME_TO_SEC(\'00:39:38\');\n -> 2378\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (371,31,'WEEKDAY','Syntax:\nWEEKDAY(date)\n\nReturns the weekday index for date (0 = Monday, 1 = Tuesday, ... 6 =\nSunday).\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT WEEKDAY(\'2008-02-03 22:23:00\');\n -> 6\nmysql> SELECT WEEKDAY(\'2007-11-06\');\n -> 1\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (372,37,'EXPORT_SET','Syntax:\nEXPORT_SET(bits,on,off[,separator[,number_of_bits]])\n\nReturns a string such that for every bit set in the value bits, you get\nan on string and for every bit not set in the value, you get an off\nstring. Bits in bits are examined from right to left (from low-order to\nhigh-order bits). Strings are added to the result from left to right,\nseparated by the separator string (the default being the comma\ncharacter ","). The number of bits examined is given by number_of_bits,\nwhich has a default of 64 if not specified. number_of_bits is silently\nclipped to 64 if larger than 64. It is treated as an unsigned integer,\nso a value of -1 is effectively the same as 64.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT EXPORT_SET(5,\'Y\',\'N\',\',\',4);\n -> \'Y,N,Y,N\'\nmysql> SELECT EXPORT_SET(6,\'1\',\'0\',\',\',10);\n -> \'0,1,1,0,0,0,0,0,0,0\'\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (373,39,'ALTER SERVER','Syntax:\nALTER SERVER server_name\n OPTIONS (option [, option] ...)\n\nAlters the server information for server_name, adjusting any of the\noptions permitted in the CREATE SERVER statement. See [HELP CREATE\nSERVER]. The corresponding fields in the mysql.servers table are\nupdated accordingly. This statement requires the SUPER privilege.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/alter-server.html\n\n','ALTER SERVER s OPTIONS (USER \'sally\');\n','http://dev.mysql.com/doc/refman/5.5/en/alter-server.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (374,23,'RESIGNAL','Syntax:\nRESIGNAL [condition_value]\n [SET signal_information_item\n [, signal_information_item] ...]\n\ncondition_value:\n SQLSTATE [VALUE] sqlstate_value\n | condition_name\n\nsignal_information_item:\n condition_information_item_name = simple_value_specification\n\ncondition_information_item_name:\n CLASS_ORIGIN\n | SUBCLASS_ORIGIN\n | MESSAGE_TEXT\n | MYSQL_ERRNO\n | CONSTRAINT_CATALOG\n | CONSTRAINT_SCHEMA\n | CONSTRAINT_NAME\n | CATALOG_NAME\n | SCHEMA_NAME\n | TABLE_NAME\n | COLUMN_NAME\n | CURSOR_NAME\n\ncondition_name, simple_value_specification:\n (see following discussion)\n\nRESIGNAL passes on the error condition information that is available\nduring execution of a condition handler within a compound statement\ninside a stored procedure or function, trigger, or event. RESIGNAL may\nchange some or all information before passing it on. RESIGNAL is\nrelated to SIGNAL, but instead of originating a condition as SIGNAL\ndoes, RESIGNAL relays existing condition information, possibly after\nmodifying it.\n\nRESIGNAL makes it possible to both handle an error and return the error\ninformation. Otherwise, by executing an SQL statement within the\nhandler, information that caused the handler\'s activation is destroyed.\nRESIGNAL also can make some procedures shorter if a given handler can\nhandle part of a situation, then pass the condition "up the line" to\nanother handler.\n\nNo special privileges are required to execute the RESIGNAL statement.\n\nFor condition_value and signal_information_item, the definitions and\nrules are the same for RESIGNAL as for SIGNAL (see [HELP SIGNAL]).\n\nThe RESIGNAL statement takes condition_value and SET clauses, both of\nwhich are optional. This leads to several possible uses:\n\no RESIGNAL alone:\n\nRESIGNAL;\n\no RESIGNAL with new signal information:\n\nRESIGNAL SET signal_information_item [, signal_information_item] ...;\n\no RESIGNAL with a condition value and possibly new signal information:\n\nRESIGNAL condition_value\n [SET signal_information_item [, signal_information_item] ...];\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/resignal.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/resignal.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (375,31,'TIME FUNCTION','Syntax:\nTIME(expr)\n\nExtracts the time part of the time or datetime expression expr and\nreturns it as a string.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT TIME(\'2003-12-31 01:02:03\');\n -> \'01:02:03\'\nmysql> SELECT TIME(\'2003-12-31 01:02:03.000123\');\n -> \'01:02:03.000123\'\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (376,31,'DATE_ADD','Syntax:\nDATE_ADD(date,INTERVAL expr unit), DATE_SUB(date,INTERVAL expr unit)\n\nThese functions perform date arithmetic. The date argument specifies\nthe starting date or datetime value. expr is an expression specifying\nthe interval value to be added or subtracted from the starting date.\nexpr is a string; it may start with a "-" for negative intervals. unit\nis a keyword indicating the units in which the expression should be\ninterpreted.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT \'2008-12-31 23:59:59\' + INTERVAL 1 SECOND;\n -> \'2009-01-01 00:00:00\'\nmysql> SELECT INTERVAL 1 DAY + \'2008-12-31\';\n -> \'2009-01-01\'\nmysql> SELECT \'2005-01-01\' - INTERVAL 1 SECOND;\n -> \'2004-12-31 23:59:59\'\nmysql> SELECT DATE_ADD(\'2000-12-31 23:59:59\',\n -> INTERVAL 1 SECOND);\n -> \'2001-01-01 00:00:00\'\nmysql> SELECT DATE_ADD(\'2010-12-31 23:59:59\',\n -> INTERVAL 1 DAY);\n -> \'2011-01-01 23:59:59\'\nmysql> SELECT DATE_ADD(\'2100-12-31 23:59:59\',\n -> INTERVAL \'1:1\' MINUTE_SECOND);\n -> \'2101-01-01 00:01:00\'\nmysql> SELECT DATE_SUB(\'2005-01-01 00:00:00\',\n -> INTERVAL \'1 1:1:1\' DAY_SECOND);\n -> \'2004-12-30 22:58:59\'\nmysql> SELECT DATE_ADD(\'1900-01-01 00:00:00\',\n -> INTERVAL \'-1 10\' DAY_HOUR);\n -> \'1899-12-30 14:00:00\'\nmysql> SELECT DATE_SUB(\'1998-01-02\', INTERVAL 31 DAY);\n -> \'1997-12-02\'\nmysql> SELECT DATE_ADD(\'1992-12-31 23:59:59.000002\',\n -> INTERVAL \'1.999999\' SECOND_MICROSECOND);\n -> \'1993-01-01 00:00:01.000001\'\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (377,37,'CAST','Syntax:\nCAST(expr AS type)\n\nThe CAST() function takes an expression of any type and produces a\nresult value of a specified type, similar to CONVERT(). See the\ndescription of CONVERT() for more information.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/cast-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/cast-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (378,37,'SOUNDS LIKE','Syntax:\nexpr1 SOUNDS LIKE expr2\n\nThis is the same as SOUNDEX(expr1) = SOUNDEX(expr2).\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (379,31,'PERIOD_DIFF','Syntax:\nPERIOD_DIFF(P1,P2)\n\nReturns the number of months between periods P1 and P2. P1 and P2\nshould be in the format YYMM or YYYYMM. Note that the period arguments\nP1 and P2 are not date values.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT PERIOD_DIFF(200802,200703);\n -> 11\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (380,37,'LIKE','Syntax:\nexpr LIKE pat [ESCAPE \'escape_char\']\n\nPattern matching using SQL simple regular expression comparison.\nReturns 1 (TRUE) or 0 (FALSE). If either expr or pat is NULL, the\nresult is NULL.\n\nThe pattern need not be a literal string. For example, it can be\nspecified as a string expression or table column.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-comparison-functions.html\n\n','mysql> SELECT \'David!\' LIKE \'David_\';\n -> 1\nmysql> SELECT \'David!\' LIKE \'%D%v%\';\n -> 1\n','http://dev.mysql.com/doc/refman/5.5/en/string-comparison-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (381,24,'MULTIPOINT','MultiPoint(pt1,pt2,...)\n\nConstructs a MultiPoint value using Point or WKB Point arguments.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-mysql-specific-functions\n\n','','http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-mysql-specific-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (382,19,'>>','Syntax:\n>>\n\nShifts a longlong (BIGINT) number to the right.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/bit-functions.html\n\n','mysql> SELECT 4 >> 2;\n -> 1\n','http://dev.mysql.com/doc/refman/5.5/en/bit-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (383,23,'FETCH','Syntax:\nFETCH [[NEXT] FROM] cursor_name INTO var_name [, var_name] ...\n\nThis statement fetches the next row for the SELECT statement associated\nwith the specified cursor (which must be open), and advances the cursor\npointer. If a row exists, the fetched columns are stored in the named\nvariables. The number of columns retrieved by the SELECT statement must\nmatch the number of output variables specified in the FETCH statement.\n\nIf no more rows are available, a No Data condition occurs with SQLSTATE\nvalue \'02000\'. To detect this condition, you can set up a handler for\nit (or for a NOT FOUND condition). For an example, see\nhttp://dev.mysql.com/doc/refman/5.5/en/cursors.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/fetch.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/fetch.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (384,16,'AVG','Syntax:\nAVG([DISTINCT] expr)\n\nReturns the average value of expr. The DISTINCT option can be used to\nreturn the average of the distinct values of expr.\n\nAVG() returns NULL if there were no matching rows.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html\n\n','mysql> SELECT student_name, AVG(test_score)\n -> FROM student\n -> GROUP BY student_name;\n','http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (385,29,'TRUE FALSE','The constants TRUE and FALSE evaluate to 1 and 0, respectively. The\nconstant names can be written in any lettercase.\n\nmysql> SELECT TRUE, true, FALSE, false;\n -> 1, 1, 0, 0\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/boolean-literals.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/boolean-literals.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (386,6,'MBRWITHIN','MBRWithin(g1,g2)\n\nReturns 1 or 0 to indicate whether the Minimum Bounding Rectangle of g1\nis within the Minimum Bounding Rectangle of g2. This tests the opposite\nrelationship as MBRContains().\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/functions-for-testing-spatial-relations-between-geometric-objects.html#relations-on-geometry-mbr\n\n','mysql> SET @g1 = GeomFromText(\'Polygon((0 0,0 3,3 3,3 0,0 0))\');\nmysql> SET @g2 = GeomFromText(\'Polygon((0 0,0 5,5 5,5 0,0 0))\');\nmysql> SELECT MBRWithin(@g1,@g2), MBRWithin(@g2,@g1);\n+--------------------+--------------------+\n| MBRWithin(@g1,@g2) | MBRWithin(@g2,@g1) |\n+--------------------+--------------------+\n| 1 | 0 |\n+--------------------+--------------------+\n','http://dev.mysql.com/doc/refman/5.5/en/functions-for-testing-spatial-relations-between-geometric-objects.html#relations-on-geometry-mbr'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (387,17,'SESSION_USER','Syntax:\nSESSION_USER()\n\nSESSION_USER() is a synonym for USER().\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/information-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/information-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (388,18,'IN','Syntax:\nexpr IN (value,...)\n\nReturns 1 if expr is equal to any of the values in the IN list, else\nreturns 0. If all values are constants, they are evaluated according to\nthe type of expr and sorted. The search for the item then is done using\na binary search. This means IN is very quick if the IN value list\nconsists entirely of constants. Otherwise, type conversion takes place\naccording to the rules described in\nhttp://dev.mysql.com/doc/refman/5.5/en/type-conversion.html, but\napplied to all the arguments.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html\n\n','mysql> SELECT 2 IN (0,3,5,7);\n -> 0\nmysql> SELECT \'wefwf\' IN (\'wee\',\'wefwf\',\'weg\');\n -> 1\n','http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (389,37,'QUOTE','Syntax:\nQUOTE(str)\n\nQuotes a string to produce a result that can be used as a properly\nescaped data value in an SQL statement. The string is returned enclosed\nby single quotation marks and with each instance of backslash ("\\"),\nsingle quote ("\'"), ASCII NUL, and Control+Z preceded by a backslash.\nIf the argument is NULL, the return value is the word "NULL" without\nenclosing single quotation marks.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT QUOTE(\'Don\\\'t!\');\n -> \'Don\\\'t!\'\nmysql> SELECT QUOTE(NULL);\n -> NULL\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (390,26,'HELP COMMAND','Syntax:\nmysql> help search_string\n\nIf you provide an argument to the help command, mysql uses it as a\nsearch string to access server-side help from the contents of the MySQL\nReference Manual. The proper operation of this command requires that\nthe help tables in the mysql database be initialized with help topic\ninformation (see\nhttp://dev.mysql.com/doc/refman/5.5/en/server-side-help-support.html).\n\nIf there is no match for the search string, the search fails:\n\nmysql> help me\n\nNothing found\nPlease try to run \'help contents\' for a list of all accessible topics\n\nUse help contents to see a list of the help categories:\n\nmysql> help contents\nYou asked for help about help category: "Contents"\nFor more information, type \'help \', where is one of the\nfollowing categories:\n Account Management\n Administration\n Data Definition\n Data Manipulation\n Data Types\n Functions\n Functions and Modifiers for Use with GROUP BY\n Geographic Features\n Language Structure\n Plugins\n Storage Engines\n Stored Routines\n Table Maintenance\n Transactions\n Triggers\n\nIf the search string matches multiple items, mysql shows a list of\nmatching topics:\n\nmysql> help logs\nMany help items for your request exist.\nTo make a more specific request, please type \'help \',\nwhere is one of the following topics:\n SHOW\n SHOW BINARY LOGS\n SHOW ENGINE\n SHOW LOGS\n\nUse a topic as the search string to see the help entry for that topic:\n\nmysql> help show binary logs\nName: \'SHOW BINARY LOGS\'\nDescription:\nSyntax:\nSHOW BINARY LOGS\nSHOW MASTER LOGS\n\nLists the binary log files on the server. This statement is used as\npart of the procedure described in [purge-binary-logs], that shows how\nto determine which logs can be purged.\n\nmysql> SHOW BINARY LOGS;\n+---------------+-----------+\n| Log_name | File_size |\n+---------------+-----------+\n| binlog.000015 | 724935 |\n| binlog.000016 | 733481 |\n+---------------+-----------+\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/mysql-server-side-help.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/mysql-server-side-help.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (391,31,'QUARTER','Syntax:\nQUARTER(date)\n\nReturns the quarter of the year for date, in the range 1 to 4.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT QUARTER(\'2008-04-01\');\n -> 2\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (392,37,'POSITION','Syntax:\nPOSITION(substr IN str)\n\nPOSITION(substr IN str) is a synonym for LOCATE(substr,str).\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (393,26,'SHOW CREATE FUNCTION','Syntax:\nSHOW CREATE FUNCTION func_name\n\nThis statement is similar to SHOW CREATE PROCEDURE but for stored\nfunctions. See [HELP SHOW CREATE PROCEDURE].\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-create-function.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-create-function.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (394,14,'IS_USED_LOCK','Syntax:\nIS_USED_LOCK(str)\n\nChecks whether the lock named str is in use (that is, locked). If so,\nit returns the connection identifier of the client that holds the lock.\nOtherwise, it returns NULL.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/miscellaneous-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/miscellaneous-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (395,3,'POLYFROMTEXT','PolyFromText(wkt[,srid]), PolygonFromText(wkt[,srid])\n\nConstructs a POLYGON value using its WKT representation and SRID.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-wkt-functions\n\n','','http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-wkt-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (396,12,'DES_ENCRYPT','Syntax:\nDES_ENCRYPT(str[,{key_num|key_str}])\n\nEncrypts the string with the given key using the Triple-DES algorithm.\n\nThis function works only if MySQL has been configured with SSL support.\nSee http://dev.mysql.com/doc/refman/5.5/en/ssl-connections.html.\n\nThe encryption key to use is chosen based on the second argument to\nDES_ENCRYPT(), if one was given. With no argument, the first key from\nthe DES key file is used. With a key_num argument, the given key number\n(0 to 9) from the DES key file is used. With a key_str argument, the\ngiven key string is used to encrypt str.\n\nThe key file can be specified with the --des-key-file server option.\n\nThe return string is a binary string where the first character is\nCHAR(128 | key_num). If an error occurs, DES_ENCRYPT() returns NULL.\n\nThe 128 is added to make it easier to recognize an encrypted key. If\nyou use a string key, key_num is 127.\n\nThe string length for the result is given by this formula:\n\nnew_len = orig_len + (8 - (orig_len % 8)) + 1\n\nEach line in the DES key file has the following format:\n\nkey_num des_key_str\n\nEach key_num value must be a number in the range from 0 to 9. Lines in\nthe file may be in any order. des_key_str is the string that is used to\nencrypt the message. There should be at least one space between the\nnumber and the key. The first key is the default key that is used if\nyou do not specify any key argument to DES_ENCRYPT().\n\nYou can tell MySQL to read new key values from the key file with the\nFLUSH DES_KEY_FILE statement. This requires the RELOAD privilege.\n\nOne benefit of having a set of default keys is that it gives\napplications a way to check for the existence of encrypted column\nvalues, without giving the end user the right to decrypt those values.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html\n\n','mysql> SELECT customer_address FROM customer_table \n > WHERE crypted_credit_card = DES_ENCRYPT(\'credit_card_number\');\n','http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (397,4,'CEIL','Syntax:\nCEIL(X)\n\nCEIL() is a synonym for CEILING().\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (398,37,'LENGTH','Syntax:\nLENGTH(str)\n\nReturns the length of the string str, measured in bytes. A multi-byte\ncharacter counts as multiple bytes. This means that for a string\ncontaining five 2-byte characters, LENGTH() returns 10, whereas\nCHAR_LENGTH() returns 5.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT LENGTH(\'text\');\n -> 4\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (399,31,'STR_TO_DATE','Syntax:\nSTR_TO_DATE(str,format)\n\nThis is the inverse of the DATE_FORMAT() function. It takes a string\nstr and a format string format. STR_TO_DATE() returns a DATETIME value\nif the format string contains both date and time parts, or a DATE or\nTIME value if the string contains only date or time parts. If the date,\ntime, or datetime value extracted from str is illegal, STR_TO_DATE()\nreturns NULL and produces a warning.\n\nThe server scans str attempting to match format to it. The format\nstring can contain literal characters and format specifiers beginning\nwith %. Literal characters in format must match literally in str.\nFormat specifiers in format must match a date or time part in str. For\nthe specifiers that can be used in format, see the DATE_FORMAT()\nfunction description.\n\nmysql> SELECT STR_TO_DATE(\'01,5,2013\',\'%d,%m,%Y\');\n -> \'2013-05-01\'\nmysql> SELECT STR_TO_DATE(\'May 1, 2013\',\'%M %d,%Y\');\n -> \'2013-05-01\'\n\nScanning starts at the beginning of str and fails if format is found\nnot to match. Extra characters at the end of str are ignored.\n\nmysql> SELECT STR_TO_DATE(\'a09:30:17\',\'a%h:%i:%s\');\n -> \'09:30:17\'\nmysql> SELECT STR_TO_DATE(\'a09:30:17\',\'%h:%i:%s\');\n -> NULL\nmysql> SELECT STR_TO_DATE(\'09:30:17a\',\'%h:%i:%s\');\n -> \'09:30:17\'\n\nUnspecified date or time parts have a value of 0, so incompletely\nspecified values in str produce a result with some or all parts set to\n0:\n\nmysql> SELECT STR_TO_DATE(\'abc\',\'abc\');\n -> \'0000-00-00\'\nmysql> SELECT STR_TO_DATE(\'9\',\'%m\');\n -> \'0000-09-00\'\nmysql> SELECT STR_TO_DATE(\'9\',\'%s\');\n -> \'00:00:09\'\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (400,11,'Y','Y(p)\n\nReturns the Y-coordinate value for the Point object p as a\ndouble-precision number.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#point-property-functions\n\n','mysql> SELECT Y(POINT(56.7, 53.34));\n+-----------------------+\n| Y(POINT(56.7, 53.34)) |\n+-----------------------+\n| 53.34 |\n+-----------------------+\n','http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#point-property-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (401,20,'CHECKSUM TABLE','Syntax:\nCHECKSUM TABLE tbl_name [, tbl_name] ... [ QUICK | EXTENDED ]\n\nCHECKSUM TABLE reports a table checksum. This statement requires the\nSELECT privilege for the table.\n\nWith QUICK, the live table checksum is reported if it is available, or\nNULL otherwise. This is very fast. A live checksum is enabled by\nspecifying the CHECKSUM=1 table option when you create the table;\ncurrently, this is supported only for MyISAM tables. See [HELP CREATE\nTABLE].\n\nWith EXTENDED, the entire table is read row by row and the checksum is\ncalculated. This can be very slow for large tables.\n\nIf neither QUICK nor EXTENDED is specified, MySQL returns a live\nchecksum if the table storage engine supports it and scans the table\notherwise.\n\nFor a nonexistent table, CHECKSUM TABLE returns NULL and generates a\nwarning.\n\nIn MySQL 5.5, CHECKSUM TABLE returns 0 for partitioned tables unless\nyou include the EXTENDED option. This issue is resolved in MySQL 5.6.\n(Bug #11933226, Bug #60681)\n\nThe checksum value depends on the table row format. If the row format\nchanges, the checksum also changes. For example, the storage format for\nVARCHAR changed between MySQL 4.1 and 5.0, so if a 4.1 table is\nupgraded to MySQL 5.0, the checksum value may change.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/checksum-table.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/checksum-table.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (402,2,'NUMINTERIORRINGS','NumInteriorRings(poly)\n\nReturns the number of interior rings in the Polygon value poly.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#polygon-property-functions\n\n','mysql> SET @poly =\n -> \'Polygon((0 0,0 3,3 3,3 0,0 0),(1 1,1 2,2 2,2 1,1 1))\';\nmysql> SELECT NumInteriorRings(GeomFromText(@poly));\n+---------------------------------------+\n| NumInteriorRings(GeomFromText(@poly)) |\n+---------------------------------------+\n| 1 |\n+---------------------------------------+\n','http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#polygon-property-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (403,2,'INTERIORRINGN','InteriorRingN(poly,N)\n\nReturns the N-th interior ring for the Polygon value poly as a\nLineString. Rings are numbered beginning with 1.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#polygon-property-functions\n\n','mysql> SET @poly =\n -> \'Polygon((0 0,0 3,3 3,3 0,0 0),(1 1,1 2,2 2,2 1,1 1))\';\nmysql> SELECT AsText(InteriorRingN(GeomFromText(@poly),1));\n+----------------------------------------------+\n| AsText(InteriorRingN(GeomFromText(@poly),1)) |\n+----------------------------------------------+\n| LINESTRING(1 1,1 2,2 2,2 1,1 1) |\n+----------------------------------------------+\n','http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#polygon-property-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (404,31,'UTC_TIME','Syntax:\nUTC_TIME, UTC_TIME()\n\nReturns the current UTC time as a value in \'HH:MM:SS\' or HHMMSS.uuuuuu\nformat, depending on whether the function is used in a string or\nnumeric context.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT UTC_TIME(), UTC_TIME() + 0;\n -> \'18:07:53\', 180753.000000\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (405,39,'DROP FUNCTION','The DROP FUNCTION statement is used to drop stored functions and\nuser-defined functions (UDFs):\n\no For information about dropping stored functions, see [HELP DROP\n PROCEDURE].\n\no For information about dropping user-defined functions, see [HELP DROP\n FUNCTION UDF].\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/drop-function.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/drop-function.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (406,39,'ALTER EVENT','Syntax:\nALTER\n [DEFINER = { user | CURRENT_USER }]\n EVENT event_name\n [ON SCHEDULE schedule]\n [ON COMPLETION [NOT] PRESERVE]\n [RENAME TO new_event_name]\n [ENABLE | DISABLE | DISABLE ON SLAVE]\n [COMMENT \'comment\']\n [DO event_body]\n\nThe ALTER EVENT statement changes one or more of the characteristics of\nan existing event without the need to drop and recreate it. The syntax\nfor each of the DEFINER, ON SCHEDULE, ON COMPLETION, COMMENT, ENABLE /\nDISABLE, and DO clauses is exactly the same as when used with CREATE\nEVENT. (See [HELP CREATE EVENT].)\n\nAny user can alter an event defined on a database for which that user\nhas the EVENT privilege. When a user executes a successful ALTER EVENT\nstatement, that user becomes the definer for the affected event.\n\nALTER EVENT works only with an existing event:\n\nmysql> ALTER EVENT no_such_event \n > ON SCHEDULE \n > EVERY \'2:3\' DAY_HOUR;\nERROR 1517 (HY000): Unknown event \'no_such_event\'\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/alter-event.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/alter-event.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (407,16,'STDDEV','Syntax:\nSTDDEV(expr)\n\nReturns the population standard deviation of expr. This function is\nprovided for compatibility with Oracle. The standard SQL function\nSTDDEV_POP() can be used instead.\n\nThis function returns NULL if there were no matching rows.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (408,31,'DATE_SUB','Syntax:\nDATE_SUB(date,INTERVAL expr unit)\n\nSee the description for DATE_ADD().\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (409,31,'PERIOD_ADD','Syntax:\nPERIOD_ADD(P,N)\n\nAdds N months to period P (in the format YYMM or YYYYMM). Returns a\nvalue in the format YYYYMM. Note that the period argument P is not a\ndate value.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT PERIOD_ADD(200801,2);\n -> 200803\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (410,19,'|','Syntax:\n|\n\nBitwise OR:\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/bit-functions.html\n\n','mysql> SELECT 29 | 15;\n -> 31\n','http://dev.mysql.com/doc/refman/5.5/en/bit-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (411,3,'GEOMFROMTEXT','GeomFromText(wkt[,srid]), GeometryFromText(wkt[,srid])\n\nConstructs a geometry value of any type using its WKT representation\nand SRID.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-wkt-functions\n\n','','http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-wkt-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (412,14,'UUID_SHORT','Syntax:\nUUID_SHORT()\n\nReturns a "short" universal identifier as a 64-bit unsigned integer\n(rather than a string-form 128-bit identifier as returned by the UUID()\nfunction).\n\nThe value of UUID_SHORT() is guaranteed to be unique if the following\nconditions hold:\n\no The server_id of the current host is unique among your set of master\n and slave servers\n\no server_id is between 0 and 255\n\no You do not set back your system time for your server between mysqld\n restarts\n\no You do not invoke UUID_SHORT() on average more than 16 million times\n per second between mysqld restarts\n\nThe UUID_SHORT() return value is constructed this way:\n\n (server_id & 255) << 56\n+ (server_startup_time_in_seconds << 24)\n+ incremented_variable++;\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/miscellaneous-functions.html\n\n','mysql> SELECT UUID_SHORT();\n -> 92395783831158784\n','http://dev.mysql.com/doc/refman/5.5/en/miscellaneous-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (413,37,'RIGHT','Syntax:\nRIGHT(str,len)\n\nReturns the rightmost len characters from the string str, or NULL if\nany argument is NULL.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT RIGHT(\'foobarbar\', 4);\n -> \'rbar\'\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (414,31,'DATEDIFF','Syntax:\nDATEDIFF(expr1,expr2)\n\nDATEDIFF() returns expr1 - expr2 expressed as a value in days from one\ndate to the other. expr1 and expr2 are date or date-and-time\nexpressions. Only the date parts of the values are used in the\ncalculation.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT DATEDIFF(\'2007-12-31 23:59:59\',\'2007-12-30\');\n -> 1\nmysql> SELECT DATEDIFF(\'2010-11-30 23:59:59\',\'2010-12-31\');\n -> -31\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (415,39,'DROP TABLESPACE','Syntax:\nDROP TABLESPACE tablespace_name\n ENGINE [=] engine_name\n\nThis statement drops a tablespace that was previously created using\nCREATE TABLESPACE (see [HELP CREATE TABLESPACE]).\n\n*Important*: The tablespace to be dropped must not contain any data\nfiles; in other words, before you can drop a tablespace, you must first\ndrop each of its data files using ALTER TABLESPACE ... DROP DATAFILE\n(see [HELP ALTER TABLESPACE]).\n\nThe ENGINE clause (required) specifies the storage engine used by the\ntablespace. Currently, the only accepted values for engine_name are NDB\nand NDBCLUSTER.\n\nDROP TABLESPACE is useful only with Disk Data storage for MySQL\nCluster. See\nhttp://dev.mysql.com/doc/refman/5.5/en/mysql-cluster-disk-data.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/drop-tablespace.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/drop-tablespace.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (416,39,'DROP PROCEDURE','Syntax:\nDROP {PROCEDURE | FUNCTION} [IF EXISTS] sp_name\n\nThis statement is used to drop a stored procedure or function. That is,\nthe specified routine is removed from the server. You must have the\nALTER ROUTINE privilege for the routine. (If the\nautomatic_sp_privileges system variable is enabled, that privilege and\nEXECUTE are granted automatically to the routine creator when the\nroutine is created and dropped from the creator when the routine is\ndropped. See\nhttp://dev.mysql.com/doc/refman/5.5/en/stored-routines-privileges.html.\n)\n\nThe IF EXISTS clause is a MySQL extension. It prevents an error from\noccurring if the procedure or function does not exist. A warning is\nproduced that can be viewed with SHOW WARNINGS.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/drop-procedure.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/drop-procedure.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (417,20,'CHECK TABLE','Syntax:\nCHECK TABLE tbl_name [, tbl_name] ... [option] ...\n\noption = {FOR UPGRADE | QUICK | FAST | MEDIUM | EXTENDED | CHANGED}\n\nCHECK TABLE checks a table or tables for errors. CHECK TABLE works for\nInnoDB, MyISAM, ARCHIVE, and CSV tables. For MyISAM tables, the key\nstatistics are updated as well.\n\nTo check a table, you must have some privilege for it.\n\nCHECK TABLE can also check views for problems, such as tables that are\nreferenced in the view definition that no longer exist.\n\nCHECK TABLE is supported for partitioned tables, and you can use ALTER\nTABLE ... CHECK PARTITION to check one or more partitions; for more\ninformation, see [HELP ALTER TABLE], and\nhttp://dev.mysql.com/doc/refman/5.5/en/partitioning-maintenance.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/check-table.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/check-table.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (418,37,'BIN','Syntax:\nBIN(N)\n\nReturns a string representation of the binary value of N, where N is a\nlonglong (BIGINT) number. This is equivalent to CONV(N,10,2). Returns\nNULL if N is NULL.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT BIN(12);\n -> \'1100\'\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (419,5,'INSTALL PLUGIN','Syntax:\nINSTALL PLUGIN plugin_name SONAME \'shared_library_name\'\n\nThis statement installs a server plugin. It requires the INSERT\nprivilege for the mysql.plugin table.\n\nplugin_name is the name of the plugin as defined in the plugin\ndescriptor structure contained in the library file (see\nhttp://dev.mysql.com/doc/refman/5.5/en/plugin-data-structures.html).\nPlugin names are not case sensitive. For maximal compatibility, plugin\nnames should be limited to ASCII letters, digits, and underscore\nbecause they are used in C source files, shell command lines, M4 and\nBourne shell scripts, and SQL environments.\n\nshared_library_name is the name of the shared library that contains the\nplugin code. The name includes the file name extension (for example,\nlibmyplugin.so, libmyplugin.dll, or libmyplugin.dylib).\n\nThe shared library must be located in the plugin directory (the\ndirectory named by the plugin_dir system variable). The library must be\nin the plugin directory itself, not in a subdirectory. By default,\nplugin_dir is the plugin directory under the directory named by the\npkglibdir configuration variable, but it can be changed by setting the\nvalue of plugin_dir at server startup. For example, set its value in a\nmy.cnf file:\n\n[mysqld]\nplugin_dir=/path/to/plugin/directory\n\nIf the value of plugin_dir is a relative path name, it is taken to be\nrelative to the MySQL base directory (the value of the basedir system\nvariable).\n\nINSTALL PLUGIN loads and initializes the plugin code to make the plugin\navailable for use. A plugin is initialized by executing its\ninitialization function, which handles any setup that the plugin must\nperform before it can be used. When the server shuts down, it executes\nthe deinitialization function for each plugin that is loaded so that\nthe plugin has a change to perform any final cleanup.\n\nINSTALL PLUGIN also registers the plugin by adding a line that\nindicates the plugin name and library file name to the mysql.plugin\ntable. At server startup, the server loads and initializes any plugin\nthat is listed in the mysql.plugin table. This means that a plugin is\ninstalled with INSTALL PLUGIN only once, not every time the server\nstarts. Plugin loading at startup does not occur if the server is\nstarted with the --skip-grant-tables option.\n\nA plugin library can contain multiple plugins. For each of them to be\ninstalled, use a separate INSTALL PLUGIN statement. Each statement\nnames a different plugin, but all of them specify the same library\nname.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/install-plugin.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/install-plugin.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (420,23,'DECLARE CURSOR','Syntax:\nDECLARE cursor_name CURSOR FOR select_statement\n\nThis statement declares a cursor and associates it with a SELECT\nstatement that retrieves the rows to be traversed by the cursor. To\nfetch the rows later, use a FETCH statement. The number of columns\nretrieved by the SELECT statement must match the number of output\nvariables specified in the FETCH statement.\n\nThe SELECT statement cannot have an INTO clause.\n\nCursor declarations must appear before handler declarations and after\nvariable and condition declarations.\n\nA stored program may contain multiple cursor declarations, but each\ncursor declared in a given block must have a unique name. For an\nexample, see http://dev.mysql.com/doc/refman/5.5/en/cursors.html.\n\nFor information available through SHOW statements, it is possible in\nmany cases to obtain equivalent information by using a cursor with an\nINFORMATION_SCHEMA table.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/declare-cursor.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/declare-cursor.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (421,27,'LOAD DATA','Syntax:\nLOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE \'file_name\'\n [REPLACE | IGNORE]\n INTO TABLE tbl_name\n [CHARACTER SET charset_name]\n [{FIELDS | COLUMNS}\n [TERMINATED BY \'string\']\n [[OPTIONALLY] ENCLOSED BY \'char\']\n [ESCAPED BY \'char\']\n ]\n [LINES\n [STARTING BY \'string\']\n [TERMINATED BY \'string\']\n ]\n [IGNORE number {LINES | ROWS}]\n [(col_name_or_user_var,...)]\n [SET col_name = expr,...]\n\nThe LOAD DATA INFILE statement reads rows from a text file into a table\nat a very high speed. The file name must be given as a literal string.\n\nLOAD DATA INFILE is the complement of SELECT ... INTO OUTFILE. (See\nhttp://dev.mysql.com/doc/refman/5.5/en/select-into.html.) To write data\nfrom a table to a file, use SELECT ... INTO OUTFILE. To read the file\nback into a table, use LOAD DATA INFILE. The syntax of the FIELDS and\nLINES clauses is the same for both statements. Both clauses are\noptional, but FIELDS must precede LINES if both are specified.\n\nFor more information about the efficiency of INSERT versus LOAD DATA\nINFILE and speeding up LOAD DATA INFILE, see\nhttp://dev.mysql.com/doc/refman/5.5/en/insert-speed.html.\n\nThe character set indicated by the character_set_database system\nvariable is used to interpret the information in the file. SET NAMES\nand the setting of character_set_client do not affect interpretation of\ninput. If the contents of the input file use a character set that\ndiffers from the default, it is usually preferable to specify the\ncharacter set of the file by using the CHARACTER SET clause. A\ncharacter set of binary specifies "no conversion."\n\nLOAD DATA INFILE interprets all fields in the file as having the same\ncharacter set, regardless of the data types of the columns into which\nfield values are loaded. For proper interpretation of file contents,\nyou must ensure that it was written with the correct character set. For\nexample, if you write a data file with mysqldump -T or by issuing a\nSELECT ... INTO OUTFILE statement in mysql, be sure to use a\n--default-character-set option with mysqldump or mysql so that output\nis written in the character set to be used when the file is loaded with\nLOAD DATA INFILE.\n\n*Note*: It is not possible to load data files that use the ucs2, utf16,\nor utf32 character set.\n\nThe character_set_filesystem system variable controls the\ninterpretation of the file name.\n\nYou can also load data files by using the mysqlimport utility; it\noperates by sending a LOAD DATA INFILE statement to the server. The\n--local option causes mysqlimport to read data files from the client\nhost. You can specify the --compress option to get better performance\nover slow networks if the client and server support the compressed\nprotocol. See http://dev.mysql.com/doc/refman/5.5/en/mysqlimport.html.\n\nIf you use LOW_PRIORITY, execution of the LOAD DATA statement is\ndelayed until no other clients are reading from the table. This affects\nonly storage engines that use only table-level locking (such as MyISAM,\nMEMORY, and MERGE).\n\nIf you specify CONCURRENT with a MyISAM table that satisfies the\ncondition for concurrent inserts (that is, it contains no free blocks\nin the middle), other threads can retrieve data from the table while\nLOAD DATA is executing. Using this option affects the performance of\nLOAD DATA a bit, even if no other thread is using the table at the same\ntime.\n\nPrior to MySQL 5.5.1, CONCURRENT was not replicated when using\nstatement-based replication (see Bug #34628). However, it is replicated\nwhen using row-based replication, regardless of the version. See\nhttp://dev.mysql.com/doc/refman/5.5/en/replication-features-load-data.h\ntml, for more information.\n\nThe LOCAL keyword, if specified, is interpreted with respect to the\nclient end of the connection:\n\no If LOCAL is specified, the file is read by the client program on the\n client host and sent to the server. The file can be given as a full\n path name to specify its exact location. If given as a relative path\n name, the name is interpreted relative to the directory in which the\n client program was started.\n\n When using LOCAL with LOAD DATA, a copy of the file is created in the\n server\'s temporary directory. This is not the directory determined by\n the value of tmpdir or slave_load_tmpdir, but rather the operating\n system\'s temporary directory, and is not configurable in the MySQL\n Server. (Typically the system temporary directory is /tmp on Linux\n systems and C:\\WINDOWS\\TEMP on Windows.) Lack of sufficient space for\n the copy in this directory can cause the LOAD DATA LOCAL statement to\n fail.\n\no If LOCAL is not specified, the file must be located on the server\n host and is read directly by the server. The server uses the\n following rules to locate the file:\n\n o If the file name is an absolute path name, the server uses it as\n given.\n\n o If the file name is a relative path name with one or more leading\n components, the server searches for the file relative to the\n server\'s data directory.\n\n o If a file name with no leading components is given, the server\n looks for the file in the database directory of the default\n database.\n\nNote that, in the non-LOCAL case, these rules mean that a file named as\n./myfile.txt is read from the server\'s data directory, whereas the file\nnamed as myfile.txt is read from the database directory of the default\ndatabase. For example, if db1 is the default database, the following\nLOAD DATA statement reads the file data.txt from the database directory\nfor db1, even though the statement explicitly loads the file into a\ntable in the db2 database:\n\nLOAD DATA INFILE \'data.txt\' INTO TABLE db2.my_table;\n\nWindows path names are specified using forward slashes rather than\nbackslashes. If you do use backslashes, you must double them.\n\nFor security reasons, when reading text files located on the server,\nthe files must either reside in the database directory or be readable\nby all. Also, to use LOAD DATA INFILE on server files, you must have\nthe FILE privilege. See\nhttp://dev.mysql.com/doc/refman/5.5/en/privileges-provided.html. For\nnon-LOCAL load operations, if the secure_file_priv system variable is\nset to a nonempty directory name, the file to be loaded must be located\nin that directory.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/load-data.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/load-data.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (422,24,'MULTILINESTRING','MultiLineString(ls1,ls2,...)\n\nConstructs a MultiLineString value using LineString or WKB LineString\narguments.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-mysql-specific-functions\n\n','','http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-mysql-specific-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (423,31,'LOCALTIME','Syntax:\nLOCALTIME, LOCALTIME()\n\nLOCALTIME and LOCALTIME() are synonyms for NOW().\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (424,26,'SHOW RELAYLOG EVENTS','Syntax:\nSHOW RELAYLOG EVENTS\n [IN \'log_name\'] [FROM pos] [LIMIT [offset,] row_count]\n\nShows the events in the relay log of a replication slave. If you do not\nspecify \'log_name\', the first relay log is displayed. This statement\nhas no effect on the master.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-relaylog-events.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-relaylog-events.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (425,3,'MPOINTFROMTEXT','MPointFromText(wkt[,srid]), MultiPointFromText(wkt[,srid])\n\nConstructs a MULTIPOINT value using its WKT representation and SRID.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-wkt-functions\n\n','','http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-wkt-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (426,22,'BLOB','BLOB[(M)]\n\nA BLOB column with a maximum length of 65,535 (216 - 1) bytes. Each\nBLOB value is stored using a 2-byte length prefix that indicates the\nnumber of bytes in the value.\n\nAn optional length M can be given for this type. If this is done, MySQL\ncreates the column as the smallest BLOB type large enough to hold\nvalues M bytes long.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-type-overview.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/string-type-overview.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (427,12,'SHA1','Syntax:\nSHA1(str), SHA(str)\n\nCalculates an SHA-1 160-bit checksum for the string, as described in\nRFC 3174 (Secure Hash Algorithm). The value is returned as a string of\n40 hex digits, or NULL if the argument was NULL. One of the possible\nuses for this function is as a hash key. See the notes at the beginning\nof this section about storing hash values efficiently. You can also use\nSHA1() as a cryptographic function for storing passwords. SHA() is\nsynonymous with SHA1().\n\nAs of MySQL 5.5.3, the return value is a nonbinary string in the\nconnection character set. Before 5.5.3, the return value is a binary\nstring; see the notes at the beginning of this section about using the\nvalue as a nonbinary string.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html\n\n','mysql> SELECT SHA1(\'abc\');\n -> \'a9993e364706816aba3e25717850c26c9cd0d89d\'\n','http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (428,37,'SUBSTR','Syntax:\nSUBSTR(str,pos), SUBSTR(str FROM pos), SUBSTR(str,pos,len), SUBSTR(str\nFROM pos FOR len)\n\nSUBSTR() is a synonym for SUBSTRING().\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (429,12,'PASSWORD','Syntax:\nPASSWORD(str)\n\nCalculates and returns a hashed password string from the plaintext\npassword str and returns a nonbinary string in the connection character\nset (a binary string before MySQL 5.5.3), or NULL if the argument is\nNULL. This function is the SQL interface to the algorithm used by the\nserver to encrypt MySQL passwords for storage in the mysql.user grant\ntable.\n\nThe password hashing method used by PASSWORD() depends on the value of\nthe old_passwords system variable:\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html\n\n','mysql> SET old_passwords = 0;\nmysql> SELECT PASSWORD(\'mypass\');\n+-------------------------------------------+\n| PASSWORD(\'mypass\') |\n+-------------------------------------------+\n| *6C8989366EAF75BB670AD8EA7A7FC1176A95CEF4 |\n+-------------------------------------------+\n\nmysql> SET old_passwords = 1;\nmysql> SELECT PASSWORD(\'mypass\');\n+--------------------+\n| PASSWORD(\'mypass\') |\n+--------------------+\n| 6f8c114b58f2ce9e |\n+--------------------+\n','http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (430,22,'CHAR','[NATIONAL] CHAR[(M)] [CHARACTER SET charset_name] [COLLATE\ncollation_name]\n\nA fixed-length string that is always right-padded with spaces to the\nspecified length when stored. M represents the column length in\ncharacters. The range of M is 0 to 255. If M is omitted, the length is\n1.\n\n*Note*: Trailing spaces are removed when CHAR values are retrieved\nunless the PAD_CHAR_TO_FULL_LENGTH SQL mode is enabled.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-type-overview.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/string-type-overview.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (431,31,'UTC_DATE','Syntax:\nUTC_DATE, UTC_DATE()\n\nReturns the current UTC date as a value in \'YYYY-MM-DD\' or YYYYMMDD\nformat, depending on whether the function is used in a string or\nnumeric context.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT UTC_DATE(), UTC_DATE() + 0;\n -> \'2003-08-14\', 20030814\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (432,36,'DIMENSION','Dimension(g)\n\nReturns the inherent dimension of the geometry value g. The result can\nbe -1, 0, 1, or 2. The meaning of these values is given in\nhttp://dev.mysql.com/doc/refman/5.5/en/gis-class-geometry.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#general-geometry-property-functions\n\n','mysql> SELECT Dimension(GeomFromText(\'LineString(1 1,2 2)\'));\n+------------------------------------------------+\n| Dimension(GeomFromText(\'LineString(1 1,2 2)\')) |\n+------------------------------------------------+\n| 1 |\n+------------------------------------------------+\n','http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#general-geometry-property-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (433,16,'COUNT DISTINCT','Syntax:\nCOUNT(DISTINCT expr,[expr...])\n\nReturns a count of the number of rows with different non-NULL expr\nvalues.\n\nCOUNT(DISTINCT) returns 0 if there were no matching rows.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html\n\n','mysql> SELECT COUNT(DISTINCT results) FROM student;\n','http://dev.mysql.com/doc/refman/5.5/en/group-by-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (434,22,'BIT','BIT[(M)]\n\nA bit-field type. M indicates the number of bits per value, from 1 to\n64. The default is 1 if M is omitted.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (435,30,'EQUALS','Equals(g1,g2)\n\nReturns 1 or 0 to indicate whether g1 is spatially equal to g2.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/functions-for-testing-spatial-relations-between-geometric-objects.html#functions-that-test-spatial-relationships-between-geometries\n\n','','http://dev.mysql.com/doc/refman/5.5/en/functions-for-testing-spatial-relations-between-geometric-objects.html#functions-that-test-spatial-relationships-between-geometries'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (436,26,'SHOW CREATE VIEW','Syntax:\nSHOW CREATE VIEW view_name\n\nThis statement shows a CREATE VIEW statement that creates the given\nview.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-create-view.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-create-view.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (437,18,'INTERVAL','Syntax:\nINTERVAL(N,N1,N2,N3,...)\n\nReturns 0 if N < N1, 1 if N < N2 and so on or -1 if N is NULL. All\narguments are treated as integers. It is required that N1 < N2 < N3 <\n... < Nn for this function to work correctly. This is because a binary\nsearch is used (very fast).\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html\n\n','mysql> SELECT INTERVAL(23, 1, 15, 17, 30, 44, 200);\n -> 3\nmysql> SELECT INTERVAL(10, 1, 10, 100, 1000);\n -> 2\nmysql> SELECT INTERVAL(22, 23, 30, 44, 200);\n -> 0\n','http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (438,31,'FROM_DAYS','Syntax:\nFROM_DAYS(N)\n\nGiven a day number N, returns a DATE value.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT FROM_DAYS(730669);\n -> \'2007-07-03\'\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (439,39,'ALTER PROCEDURE','Syntax:\nALTER PROCEDURE proc_name [characteristic ...]\n\ncharacteristic:\n COMMENT \'string\'\n | LANGUAGE SQL\n | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }\n | SQL SECURITY { DEFINER | INVOKER }\n\nThis statement can be used to change the characteristics of a stored\nprocedure. More than one change may be specified in an ALTER PROCEDURE\nstatement. However, you cannot change the parameters or body of a\nstored procedure using this statement; to make such changes, you must\ndrop and re-create the procedure using DROP PROCEDURE and CREATE\nPROCEDURE.\n\nYou must have the ALTER ROUTINE privilege for the procedure. By\ndefault, that privilege is granted automatically to the procedure\ncreator. This behavior can be changed by disabling the\nautomatic_sp_privileges system variable. See\nhttp://dev.mysql.com/doc/refman/5.5/en/stored-routines-privileges.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/alter-procedure.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/alter-procedure.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (440,19,'BIT_COUNT','Syntax:\nBIT_COUNT(N)\n\nReturns the number of bits that are set in the argument N.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/bit-functions.html\n\n','mysql> SELECT BIT_COUNT(29), BIT_COUNT(b\'101010\');\n -> 4, 3\n','http://dev.mysql.com/doc/refman/5.5/en/bit-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (441,37,'OCTET_LENGTH','Syntax:\nOCTET_LENGTH(str)\n\nOCTET_LENGTH() is a synonym for LENGTH().\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (442,31,'UTC_TIMESTAMP','Syntax:\nUTC_TIMESTAMP, UTC_TIMESTAMP()\n\nReturns the current UTC date and time as a value in \'YYYY-MM-DD\nHH:MM:SS\' or YYYYMMDDHHMMSS.uuuuuu format, depending on whether the\nfunction is used in a string or numeric context.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT UTC_TIMESTAMP(), UTC_TIMESTAMP() + 0;\n -> \'2003-08-14 18:08:04\', 20030814180804.000000\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (443,12,'AES_ENCRYPT','Syntax:\nAES_ENCRYPT(str,key_str)\n\nAES_ENCRYPT() and AES_DECRYPT() enable encryption and decryption of\ndata using the official AES (Advanced Encryption Standard) algorithm,\npreviously known as "Rijndael." Encoding with a 128-bit key length is\nused, but you can extend it up to 256 bits by modifying the source. We\nchose 128 bits because it is much faster and it is secure enough for\nmost purposes.\n\nAES_ENCRYPT() encrypts a string and returns a binary string.\nAES_DECRYPT() decrypts the encrypted string and returns the original\nstring. The input arguments may be any length. If either argument is\nNULL, the result of this function is also NULL.\n\nBecause AES is a block-level algorithm, padding is used to encode\nuneven length strings and so the result string length may be calculated\nusing this formula:\n\n16 * (trunc(string_length / 16) + 1)\n\nIf AES_DECRYPT() detects invalid data or incorrect padding, it returns\nNULL. However, it is possible for AES_DECRYPT() to return a non-NULL\nvalue (possibly garbage) if the input data or the key is invalid.\n\nYou can use the AES functions to store data in an encrypted form by\nmodifying your queries:\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html\n\n','INSERT INTO t VALUES (1,AES_ENCRYPT(\'text\',\'password\'));\n','http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (444,4,'+','Syntax:\n+\n\nAddition:\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/arithmetic-functions.html\n\n','mysql> SELECT 3+5;\n -> 8\n','http://dev.mysql.com/doc/refman/5.5/en/arithmetic-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (445,14,'INET_NTOA','Syntax:\nINET_NTOA(expr)\n\nGiven a numeric IPv4 network address in network byte order, returns the\ndotted-quad representation of the address as a string. INET_NTOA()\nreturns NULL if it does not understand its argument.\n\nAs of MySQL 5.5.3, the return value is a nonbinary string in the\nconnection character set. Before 5.5.3, the return value is a binary\nstring.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/miscellaneous-functions.html\n\n','mysql> SELECT INET_NTOA(167773449);\n -> \'10.0.5.9\'\n','http://dev.mysql.com/doc/refman/5.5/en/miscellaneous-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (446,4,'ACOS','Syntax:\nACOS(X)\n\nReturns the arc cosine of X, that is, the value whose cosine is X.\nReturns NULL if X is not in the range -1 to 1.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html\n\n','mysql> SELECT ACOS(1);\n -> 0\nmysql> SELECT ACOS(1.0001);\n -> NULL\nmysql> SELECT ACOS(0);\n -> 1.5707963267949\n','http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (447,8,'ISOLATION','Syntax:\nSET [GLOBAL | SESSION] TRANSACTION ISOLATION LEVEL\n {\n REPEATABLE READ\n | READ COMMITTED\n | READ UNCOMMITTED\n | SERIALIZABLE\n }\n\nThis statement sets the transaction isolation level, used for\noperations on InnoDB tables.\n\nScope of the Isolation Level\n\nYou can set the isolation level globally, for the current session, or\nfor the next transaction:\n\no With the GLOBAL keyword, the statement sets the default transaction\n level globally for all subsequent sessions. Existing sessions are\n unaffected.\n\no With the SESSION keyword, the statement sets the default transaction\n level for all subsequent transactions performed within the current\n session.\n\no Without any SESSION or GLOBAL keyword, the statement sets the\n isolation level for the next (not started) transaction performed\n within the current session.\n\nA change to the global default isolation level requires the SUPER\nprivilege. Any session is free to change its session isolation level\n(even in the middle of a transaction), or the isolation level for its\nnext transaction.\n\nSET TRANSACTION ISOLATION LEVEL without GLOBAL or SESSION is not\npermitted while there is an active transaction:\n\nmysql> START TRANSACTION;\nQuery OK, 0 rows affected (0.02 sec)\n\nmysql> SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;\nERROR 1568 (25001): Transaction isolation level can\'t be changed\nwhile a transaction is in progress\n\nTo set the global default isolation level at server startup, use the\n--transaction-isolation=level option to mysqld on the command line or\nin an option file. Values of level for this option use dashes rather\nthan spaces, so the permissible values are READ-UNCOMMITTED,\nREAD-COMMITTED, REPEATABLE-READ, or SERIALIZABLE. For example, to set\nthe default isolation level to REPEATABLE READ, use these lines in the\n[mysqld] section of an option file:\n\n[mysqld]\ntransaction-isolation = REPEATABLE-READ\n\nIt is possible to check or set the global and session transaction\nisolation levels at runtime by using the tx_isolation system variable:\n\nSELECT @@GLOBAL.tx_isolation, @@tx_isolation;\nSET GLOBAL tx_isolation=\'REPEATABLE-READ\';\nSET SESSION tx_isolation=\'SERIALIZABLE\';\n\nDetails and Usage of Isolation Levels\n\nInnoDB supports each of the transaction isolation levels described here\nusing different locking strategies. You can enforce a high degree of\nconsistency with the default REPEATABLE READ level, for operations on\ncrucial data where ACID compliance is important. Or you can relax the\nconsistency rules with READ COMMITTED or even READ UNCOMMITTED, in\nsituations such as bulk reporting where precise consistency and\nrepeatable results are less important than minimizing the amount of\noverhead for locking. SERIALIZABLE enforces even stricter rules than\nREPEATABLE READ, and is used mainly in specialized situations, such as\nwith XA transactions and for troubleshooting issues with concurrency\nand deadlocks.\n\nFor full information about how these isolation levels work with InnoDB\ntransactions, see\nhttp://dev.mysql.com/doc/refman/5.5/en/innodb-transaction-model.html.\nIn particular, for additional information about InnoDB record-level\nlocks and how it uses them to execute various types of statements, see\nhttp://dev.mysql.com/doc/refman/5.5/en/innodb-record-level-locks.html\nand http://dev.mysql.com/doc/refman/5.5/en/innodb-locks-set.html.\n\nThe following list describes how MySQL supports the different\ntransaction levels. The list goes from the most commonly used level to\nthe least used.\n\no REPEATABLE READ\n\n This is the default isolation level for InnoDB. For consistent reads,\n there is an important difference from the READ COMMITTED isolation\n level: All consistent reads within the same transaction read the\n snapshot established by the first read. This convention means that if\n you issue several plain (nonlocking) SELECT statements within the\n same transaction, these SELECT statements are consistent also with\n respect to each other. See\n http://dev.mysql.com/doc/refman/5.5/en/innodb-consistent-read.html.\n\n For locking reads (SELECT with FOR UPDATE or LOCK IN SHARE MODE),\n UPDATE, and DELETE statements, locking depends on whether the\n statement uses a unique index with a unique search condition, or a\n range-type search condition. For a unique index with a unique search\n condition, InnoDB locks only the index record found, not the gap\n before it. For other search conditions, InnoDB locks the index range\n scanned, using gap locks or next-key (gap plus index-record) locks to\n block insertions by other sessions into the gaps covered by the\n range.\n\no READ COMMITTED\n\n A somewhat Oracle-like isolation level with respect to consistent\n (nonlocking) reads: Each consistent read, even within the same\n transaction, sets and reads its own fresh snapshot. See\n http://dev.mysql.com/doc/refman/5.5/en/innodb-consistent-read.html.\n\n For locking reads (SELECT with FOR UPDATE or LOCK IN SHARE MODE),\n InnoDB locks only index records, not the gaps before them, and thus\n permits the free insertion of new records next to locked records. For\n UPDATE and DELETE statements, locking depends on whether the\n statement uses a unique index with a unique search condition (such as\n WHERE id = 100), or a range-type search condition (such as WHERE id >\n 100). For a unique index with a unique search condition, InnoDB locks\n only the index record found, not the gap before it. For range-type\n searches, InnoDB locks the index range scanned, using gap locks or\n next-key (gap plus index-record) locks to block insertions by other\n sessions into the gaps covered by the range. This is necessary\n because "phantom rows" must be blocked for MySQL replication and\n recovery to work.\n\n *Note*: In MySQL 5.5, if the READ COMMITTED isolation level is used\n or the innodb_locks_unsafe_for_binlog system variable is enabled,\n there is no InnoDB gap locking except for foreign-key constraint\n checking and duplicate-key checking. Also, record locks for\n nonmatching rows are released after MySQL has evaluated the WHERE\n condition. If you use READ COMMITTED or enable\n innodb_locks_unsafe_for_binlog, you must use row-based binary\n logging.\n\no READ UNCOMMITTED\n\n SELECT statements are performed in a nonlocking fashion, but a\n possible earlier version of a row might be used. Thus, using this\n isolation level, such reads are not consistent. This is also called a\n "dirty read." Otherwise, this isolation level works like READ\n COMMITTED.\n\no SERIALIZABLE\n\n This level is like REPEATABLE READ, but InnoDB implicitly converts\n all plain SELECT statements to SELECT ... LOCK IN SHARE MODE if\n autocommit is disabled. If autocommit is enabled, the SELECT is its\n own transaction. It therefore is known to be read only and can be\n serialized if performed as a consistent (nonlocking) read and need\n not block for other transactions. (To force a plain SELECT to block\n if other transactions have modified the selected rows, disable\n autocommit.)\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/set-transaction.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/set-transaction.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (448,4,'CEILING','Syntax:\nCEILING(X)\n\nReturns the smallest integer value not less than X.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html\n\n','mysql> SELECT CEILING(1.23);\n -> 2\nmysql> SELECT CEILING(-1.23);\n -> -1\n','http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (449,4,'SIN','Syntax:\nSIN(X)\n\nReturns the sine of X, where X is given in radians.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html\n\n','mysql> SELECT SIN(PI());\n -> 1.2246063538224e-16\nmysql> SELECT ROUND(SIN(PI()));\n -> 0\n','http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (450,31,'DAYOFWEEK','Syntax:\nDAYOFWEEK(date)\n\nReturns the weekday index for date (1 = Sunday, 2 = Monday, ..., 7 =\nSaturday). These index values correspond to the ODBC standard.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT DAYOFWEEK(\'2007-02-03\');\n -> 7\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (451,26,'SHOW PROCESSLIST','Syntax:\nSHOW [FULL] PROCESSLIST\n\nSHOW PROCESSLIST shows you which threads are running. You can also get\nthis information from the INFORMATION_SCHEMA PROCESSLIST table or the\nmysqladmin processlist command. If you have the PROCESS privilege, you\ncan see all threads. Otherwise, you can see only your own threads (that\nis, threads associated with the MySQL account that you are using). If\nyou do not use the FULL keyword, only the first 100 characters of each\nstatement are shown in the Info field.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-processlist.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-processlist.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (452,32,'LINEFROMWKB','LineFromWKB(wkb[,srid]), LineStringFromWKB(wkb[,srid])\n\nConstructs a LINESTRING value using its WKB representation and SRID.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-wkb-functions\n\n','','http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-wkb-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (453,36,'GEOMETRYTYPE','GeometryType(g)\n\nReturns as a binary string the name of the geometry type of which the\ngeometry instance g is a member. The name corresponds to one of the\ninstantiable Geometry subclasses.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#general-geometry-property-functions\n\n','mysql> SELECT GeometryType(GeomFromText(\'POINT(1 1)\'));\n+------------------------------------------+\n| GeometryType(GeomFromText(\'POINT(1 1)\')) |\n+------------------------------------------+\n| POINT |\n+------------------------------------------+\n','http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#general-geometry-property-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (454,39,'CREATE VIEW','Syntax:\nCREATE\n [OR REPLACE]\n [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]\n [DEFINER = { user | CURRENT_USER }]\n [SQL SECURITY { DEFINER | INVOKER }]\n VIEW view_name [(column_list)]\n AS select_statement\n [WITH [CASCADED | LOCAL] CHECK OPTION]\n\nThe CREATE VIEW statement creates a new view, or replaces an existing\none if the OR REPLACE clause is given. If the view does not exist,\nCREATE OR REPLACE VIEW is the same as CREATE VIEW. If the view does\nexist, CREATE OR REPLACE VIEW is the same as ALTER VIEW.\n\nThe select_statement is a SELECT statement that provides the definition\nof the view. (When you select from the view, you select in effect using\nthe SELECT statement.) select_statement can select from base tables or\nother views.\n\nThe view definition is "frozen" at creation time, so changes to the\nunderlying tables afterward do not affect the view definition. For\nexample, if a view is defined as SELECT * on a table, new columns added\nto the table later do not become part of the view.\n\nThe ALGORITHM clause affects how MySQL processes the view. The DEFINER\nand SQL SECURITY clauses specify the security context to be used when\nchecking access privileges at view invocation time. The WITH CHECK\nOPTION clause can be given to constrain inserts or updates to rows in\ntables referenced by the view. These clauses are described later in\nthis section.\n\nThe CREATE VIEW statement requires the CREATE VIEW privilege for the\nview, and some privilege for each column selected by the SELECT\nstatement. For columns used elsewhere in the SELECT statement you must\nhave the SELECT privilege. If the OR REPLACE clause is present, you\nmust also have the DROP privilege for the view. CREATE VIEW might also\nrequire the SUPER privilege, depending on the DEFINER value, as\ndescribed later in this section.\n\nWhen a view is referenced, privilege checking occurs as described later\nin this section.\n\nA view belongs to a database. By default, a new view is created in the\ndefault database. To create the view explicitly in a given database,\nspecify the name as db_name.view_name when you create it:\n\nmysql> CREATE VIEW test.v AS SELECT * FROM t;\n\nWithin a database, base tables and views share the same namespace, so a\nbase table and a view cannot have the same name.\n\nColumns retrieved by the SELECT statement can be simple references to\ntable columns. They can also be expressions that use functions,\nconstant values, operators, and so forth.\n\nViews must have unique column names with no duplicates, just like base\ntables. By default, the names of the columns retrieved by the SELECT\nstatement are used for the view column names. To define explicit names\nfor the view columns, the optional column_list clause can be given as a\nlist of comma-separated identifiers. The number of names in column_list\nmust be the same as the number of columns retrieved by the SELECT\nstatement.\n\nUnqualified table or view names in the SELECT statement are interpreted\nwith respect to the default database. A view can refer to tables or\nviews in other databases by qualifying the table or view name with the\nproper database name.\n\nA view can be created from many kinds of SELECT statements. It can\nrefer to base tables or other views. It can use joins, UNION, and\nsubqueries. The SELECT need not even refer to any tables. The following\nexample defines a view that selects two columns from another table, as\nwell as an expression calculated from those columns:\n\nmysql> CREATE TABLE t (qty INT, price INT);\nmysql> INSERT INTO t VALUES(3, 50);\nmysql> CREATE VIEW v AS SELECT qty, price, qty*price AS value FROM t;\nmysql> SELECT * FROM v;\n+------+-------+-------+\n| qty | price | value |\n+------+-------+-------+\n| 3 | 50 | 150 |\n+------+-------+-------+\n\nA view definition is subject to the following restrictions:\n\no The SELECT statement cannot contain a subquery in the FROM clause.\n\no The SELECT statement cannot refer to system or user variables.\n\no Within a stored program, the definition cannot refer to program\n parameters or local variables.\n\no The SELECT statement cannot refer to prepared statement parameters.\n\no Any table or view referred to in the definition must exist. However,\n after a view has been created, it is possible to drop a table or view\n that the definition refers to. In this case, use of the view results\n in an error. To check a view definition for problems of this kind,\n use the CHECK TABLE statement.\n\no The definition cannot refer to a TEMPORARY table, and you cannot\n create a TEMPORARY view.\n\no Any tables named in the view definition must exist at definition\n time.\n\no You cannot associate a trigger with a view.\n\no Aliases for column names in the SELECT statement are checked against\n the maximum column length of 64 characters (not the maximum alias\n length of 256 characters).\n\nORDER BY is permitted in a view definition, but it is ignored if you\nselect from a view using a statement that has its own ORDER BY.\n\nFor other options or clauses in the definition, they are added to the\noptions or clauses of the statement that references the view, but the\neffect is undefined. For example, if a view definition includes a LIMIT\nclause, and you select from the view using a statement that has its own\nLIMIT clause, it is undefined which limit applies. This same principle\napplies to options such as ALL, DISTINCT, or SQL_SMALL_RESULT that\nfollow the SELECT keyword, and to clauses such as INTO, FOR UPDATE,\nLOCK IN SHARE MODE, and PROCEDURE.\n\nIf you create a view and then change the query processing environment\nby changing system variables, that may affect the results that you get\nfrom the view:\n\nmysql> CREATE VIEW v (mycol) AS SELECT \'abc\';\nQuery OK, 0 rows affected (0.01 sec)\n\nmysql> SET sql_mode = \'\';\nQuery OK, 0 rows affected (0.00 sec)\n\nmysql> SELECT "mycol" FROM v;\n+-------+\n| mycol |\n+-------+\n| mycol |\n+-------+\n1 row in set (0.01 sec)\n\nmysql> SET sql_mode = \'ANSI_QUOTES\';\nQuery OK, 0 rows affected (0.00 sec)\n\nmysql> SELECT "mycol" FROM v;\n+-------+\n| mycol |\n+-------+\n| abc |\n+-------+\n1 row in set (0.00 sec)\n\nThe DEFINER and SQL SECURITY clauses determine which MySQL account to\nuse when checking access privileges for the view when a statement is\nexecuted that references the view. The valid SQL SECURITY\ncharacteristic values are DEFINER and INVOKER. These indicate that the\nrequired privileges must be held by the user who defined or invoked the\nview, respectively. The default SQL SECURITY value is DEFINER.\n\nIf a user value is given for the DEFINER clause, it should be a MySQL\naccount specified as \'user_name\'@\'host_name\' (the same format used in\nthe GRANT statement), CURRENT_USER, or CURRENT_USER(). The default\nDEFINER value is the user who executes the CREATE VIEW statement. This\nis the same as specifying DEFINER = CURRENT_USER explicitly.\n\nIf you specify the DEFINER clause, these rules determine the valid\nDEFINER user values:\n\no If you do not have the SUPER privilege, the only valid user value is\n your own account, either specified literally or by using\n CURRENT_USER. You cannot set the definer to some other account.\n\no If you have the SUPER privilege, you can specify any syntactically\n valid account name. If the account does not actually exist, a warning\n is generated.\n\no Although it is possible to create a view with a nonexistent DEFINER\n account, an error occurs when the view is referenced if the SQL\n SECURITY value is DEFINER but the definer account does not exist.\n\nFor more information about view security, see\nhttp://dev.mysql.com/doc/refman/5.5/en/stored-programs-security.html.\n\nWithin a view definition, CURRENT_USER returns the view\'s DEFINER value\nby default. For views defined with the SQL SECURITY INVOKER\ncharacteristic, CURRENT_USER returns the account for the view\'s\ninvoker. For information about user auditing within views, see\nhttp://dev.mysql.com/doc/refman/5.5/en/account-activity-auditing.html.\n\nWithin a stored routine that is defined with the SQL SECURITY DEFINER\ncharacteristic, CURRENT_USER returns the routine\'s DEFINER value. This\nalso affects a view defined within such a routine, if the view\ndefinition contains a DEFINER value of CURRENT_USER.\n\nView privileges are checked like this:\n\no At view definition time, the view creator must have the privileges\n needed to use the top-level objects accessed by the view. For\n example, if the view definition refers to table columns, the creator\n must have some privilege for each column in the select list of the\n definition, and the SELECT privilege for each column used elsewhere\n in the definition. If the definition refers to a stored function,\n only the privileges needed to invoke the function can be checked. The\n privileges required at function invocation time can be checked only\n as it executes: For different invocations, different execution paths\n within the function might be taken.\n\no The user who references a view must have appropriate privileges to\n access it (SELECT to select from it, INSERT to insert into it, and so\n forth.)\n\no When a view has been referenced, privileges for objects accessed by\n the view are checked against the privileges held by the view DEFINER\n account or invoker, depending on whether the SQL SECURITY\n characteristic is DEFINER or INVOKER, respectively.\n\no If reference to a view causes execution of a stored function,\n privilege checking for statements executed within the function depend\n on whether the function SQL SECURITY characteristic is DEFINER or\n INVOKER. If the security characteristic is DEFINER, the function runs\n with the privileges of the DEFINER account. If the characteristic is\n INVOKER, the function runs with the privileges determined by the\n view\'s SQL SECURITY characteristic.\n\nExample: A view might depend on a stored function, and that function\nmight invoke other stored routines. For example, the following view\ninvokes a stored function f():\n\nCREATE VIEW v AS SELECT * FROM t WHERE t.id = f(t.name);\n\nSuppose that f() contains a statement such as this:\n\nIF name IS NULL then\n CALL p1();\nELSE\n CALL p2();\nEND IF;\n\nThe privileges required for executing statements within f() need to be\nchecked when f() executes. This might mean that privileges are needed\nfor p1() or p2(), depending on the execution path within f(). Those\nprivileges must be checked at runtime, and the user who must possess\nthe privileges is determined by the SQL SECURITY values of the view v\nand the function f().\n\nThe DEFINER and SQL SECURITY clauses for views are extensions to\nstandard SQL. In standard SQL, views are handled using the rules for\nSQL SECURITY DEFINER. The standard says that the definer of the view,\nwhich is the same as the owner of the view\'s schema, gets applicable\nprivileges on the view (for example, SELECT) and may grant them. MySQL\nhas no concept of a schema "owner", so MySQL adds a clause to identify\nthe definer. The DEFINER clause is an extension where the intent is to\nhave what the standard has; that is, a permanent record of who defined\nthe view. This is why the default DEFINER value is the account of the\nview creator.\n\nThe optional ALGORITHM clause is a MySQL extension to standard SQL. It\naffects how MySQL processes the view. ALGORITHM takes three values:\nMERGE, TEMPTABLE, or UNDEFINED. The default algorithm is UNDEFINED if\nno ALGORITHM clause is present. For more information, see\nhttp://dev.mysql.com/doc/refman/5.5/en/view-algorithms.html.\n\nSome views are updatable. That is, you can use them in statements such\nas UPDATE, DELETE, or INSERT to update the contents of the underlying\ntable. For a view to be updatable, there must be a one-to-one\nrelationship between the rows in the view and the rows in the\nunderlying table. There are also certain other constructs that make a\nview nonupdatable.\n\nThe WITH CHECK OPTION clause can be given for an updatable view to\nprevent inserts or updates to rows except those for which the WHERE\nclause in the select_statement is true.\n\nIn a WITH CHECK OPTION clause for an updatable view, the LOCAL and\nCASCADED keywords determine the scope of check testing when the view is\ndefined in terms of another view. The LOCAL keyword restricts the CHECK\nOPTION only to the view being defined. CASCADED causes the checks for\nunderlying views to be evaluated as well. When neither keyword is\ngiven, the default is CASCADED.\n\nFor more information about updatable views and the WITH CHECK OPTION\nclause, see\nhttp://dev.mysql.com/doc/refman/5.5/en/view-updatability.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/create-view.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/create-view.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (455,37,'TRIM','Syntax:\nTRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str), TRIM([remstr\nFROM] str)\n\nReturns the string str with all remstr prefixes or suffixes removed. If\nnone of the specifiers BOTH, LEADING, or TRAILING is given, BOTH is\nassumed. remstr is optional and, if not specified, spaces are removed.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT TRIM(\' bar \');\n -> \'bar\'\nmysql> SELECT TRIM(LEADING \'x\' FROM \'xxxbarxxx\');\n -> \'barxxx\'\nmysql> SELECT TRIM(BOTH \'x\' FROM \'xxxbarxxx\');\n -> \'bar\'\nmysql> SELECT TRIM(TRAILING \'xyz\' FROM \'barxxyz\');\n -> \'barx\'\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (456,18,'IS','Syntax:\nIS boolean_value\n\nTests a value against a boolean value, where boolean_value can be TRUE,\nFALSE, or UNKNOWN.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html\n\n','mysql> SELECT 1 IS TRUE, 0 IS FALSE, NULL IS UNKNOWN;\n -> 1, 1, 1\n','http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (457,31,'GET_FORMAT','Syntax:\nGET_FORMAT({DATE|TIME|DATETIME}, {\'EUR\'|\'USA\'|\'JIS\'|\'ISO\'|\'INTERNAL\'})\n\nReturns a format string. This function is useful in combination with\nthe DATE_FORMAT() and the STR_TO_DATE() functions.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT DATE_FORMAT(\'2003-10-03\',GET_FORMAT(DATE,\'EUR\'));\n -> \'03.10.2003\'\nmysql> SELECT STR_TO_DATE(\'10.31.2003\',GET_FORMAT(DATE,\'USA\'));\n -> \'2003-10-31\'\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (458,22,'TINYBLOB','TINYBLOB\n\nA BLOB column with a maximum length of 255 (28 - 1) bytes. Each\nTINYBLOB value is stored using a 1-byte length prefix that indicates\nthe number of bytes in the value.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-type-overview.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/string-type-overview.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (459,23,'SIGNAL','Syntax:\nSIGNAL condition_value\n [SET signal_information_item\n [, signal_information_item] ...]\n\ncondition_value:\n SQLSTATE [VALUE] sqlstate_value\n | condition_name\n\nsignal_information_item:\n condition_information_item_name = simple_value_specification\n\ncondition_information_item_name:\n CLASS_ORIGIN\n | SUBCLASS_ORIGIN\n | MESSAGE_TEXT\n | MYSQL_ERRNO\n | CONSTRAINT_CATALOG\n | CONSTRAINT_SCHEMA\n | CONSTRAINT_NAME\n | CATALOG_NAME\n | SCHEMA_NAME\n | TABLE_NAME\n | COLUMN_NAME\n | CURSOR_NAME\n\ncondition_name, simple_value_specification:\n (see following discussion)\n\nSIGNAL is the way to "return" an error. SIGNAL provides error\ninformation to a handler, to an outer portion of the application, or to\nthe client. Also, it provides control over the error\'s characteristics\n(error number, SQLSTATE value, message). Without SIGNAL, it is\nnecessary to resort to workarounds such as deliberately referring to a\nnonexistent table to cause a routine to return an error.\n\nNo special privileges are required to execute the SIGNAL statement.\n\nThe condition_value in a SIGNAL statement indicates the error value to\nbe returned. It can be an SQLSTATE value (a 5-character string literal)\nor a condition_name that refers to a named condition previously defined\nwith DECLARE ... CONDITION (see [HELP DECLARE CONDITION]).\n\nAn SQLSTATE value can indicate errors, warnings, or "not found." The\nfirst two characters of the value indicate its error class, as\ndiscussed in\nhttp://dev.mysql.com/doc/refman/5.5/en/signal.html#signal-condition-inf\normation-items. Some signal values cause statement termination; see\nhttp://dev.mysql.com/doc/refman/5.5/en/signal.html#signal-effects.\n\nThe SQLSTATE value for a SIGNAL statement should not start with \'00\'\nbecause such values indicate success and are not valid for signaling an\nerror. This is true whether the SQLSTATE value is specified directly in\nthe SIGNAL statement or in a named condition referred to in the\nstatement. If the value is invalid, a Bad SQLSTATE error occurs.\n\nTo signal a generic SQLSTATE value, use \'45000\', which means "unhandled\nuser-defined exception."\n\nThe SIGNAL statement optionally includes a SET clause that contains\nmultiple signal items, in a comma-separated list of\ncondition_information_item_name = simple_value_specification\nassignments.\n\nEach condition_information_item_name may be specified only once in the\nSET clause. Otherwise, a Duplicate condition information item error\noccurs.\n\nValid simple_value_specification designators can be specified using\nstored procedure or function parameters, stored program local variables\ndeclared with DECLARE, user-defined variables, system variables, or\nliterals. A character literal may include a _charset introducer.\n\nFor information about permissible condition_information_item_name\nvalues, see\nhttp://dev.mysql.com/doc/refman/5.5/en/signal.html#signal-condition-inf\normation-items.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/signal.html\n\n','CREATE PROCEDURE p (pval INT)\nBEGIN\n DECLARE specialty CONDITION FOR SQLSTATE \'45000\';\n IF pval = 0 THEN\n SIGNAL SQLSTATE \'01000\';\n ELSEIF pval = 1 THEN\n SIGNAL SQLSTATE \'45000\'\n SET MESSAGE_TEXT = \'An error occurred\';\n ELSEIF pval = 2 THEN\n SIGNAL specialty\n SET MESSAGE_TEXT = \'An error occurred\';\n ELSE\n SIGNAL SQLSTATE \'01000\'\n SET MESSAGE_TEXT = \'A warning occurred\', MYSQL_ERRNO = 1000;\n SIGNAL SQLSTATE \'45000\'\n SET MESSAGE_TEXT = \'An error occurred\', MYSQL_ERRNO = 1001;\n END IF;\nEND;\n','http://dev.mysql.com/doc/refman/5.5/en/signal.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (460,8,'SAVEPOINT','Syntax:\nSAVEPOINT identifier\nROLLBACK [WORK] TO [SAVEPOINT] identifier\nRELEASE SAVEPOINT identifier\n\nInnoDB supports the SQL statements SAVEPOINT, ROLLBACK TO SAVEPOINT,\nRELEASE SAVEPOINT and the optional WORK keyword for ROLLBACK.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/savepoint.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/savepoint.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (461,17,'USER','Syntax:\nUSER()\n\nReturns the current MySQL user name and host name as a string in the\nutf8 character set.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/information-functions.html\n\n','mysql> SELECT USER();\n -> \'davida@localhost\'\n','http://dev.mysql.com/doc/refman/5.5/en/information-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (462,23,'LABELS','Syntax:\n[begin_label:] BEGIN\n [statement_list]\nEND [end_label]\n\n[begin_label:] LOOP\n statement_list\nEND LOOP [end_label]\n\n[begin_label:] REPEAT\n statement_list\nUNTIL search_condition\nEND REPEAT [end_label]\n\n[begin_label:] WHILE search_condition DO\n statement_list\nEND WHILE [end_label]\n\nLabels are permitted for BEGIN ... END blocks and for the LOOP, REPEAT,\nand WHILE statements. Label use for those statements follows these\nrules:\n\no begin_label must be followed by a colon.\n\no begin_label can be given without end_label. If end_label is present,\n it must be the same as begin_label.\n\no end_label cannot be given without begin_label.\n\no Labels at the same nesting level must be distinct.\n\no Labels can be up to 16 characters long.\n\nTo refer to a label within the labeled construct, use an ITERATE or\nLEAVE statement. The following example uses those statements to\ncontinue iterating or terminate the loop:\n\nCREATE PROCEDURE doiterate(p1 INT)\nBEGIN\n label1: LOOP\n SET p1 = p1 + 1;\n IF p1 < 10 THEN ITERATE label1; END IF;\n LEAVE label1;\n END LOOP label1;\nEND;\n\nThe scope of a block label does not include the code for handlers\ndeclared within the block. For details, see [HELP DECLARE HANDLER].\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/statement-labels.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/statement-labels.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (463,39,'ALTER TABLE','Syntax:\nALTER [ONLINE | OFFLINE] [IGNORE] TABLE tbl_name\n [alter_specification [, alter_specification] ...]\n [partition_options]\n\nalter_specification:\n table_options\n | ADD [COLUMN] col_name column_definition\n [FIRST | AFTER col_name ]\n | ADD [COLUMN] (col_name column_definition,...)\n | ADD {INDEX|KEY} [index_name]\n [index_type] (index_col_name,...) [index_option] ...\n | ADD [CONSTRAINT [symbol]] PRIMARY KEY\n [index_type] (index_col_name,...) [index_option] ...\n | ADD [CONSTRAINT [symbol]]\n UNIQUE [INDEX|KEY] [index_name]\n [index_type] (index_col_name,...) [index_option] ...\n | ADD FULLTEXT [INDEX|KEY] [index_name]\n (index_col_name,...) [index_option] ...\n | ADD SPATIAL [INDEX|KEY] [index_name]\n (index_col_name,...) [index_option] ...\n | ADD [CONSTRAINT [symbol]]\n FOREIGN KEY [index_name] (index_col_name,...)\n reference_definition\n | ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}\n | CHANGE [COLUMN] old_col_name new_col_name column_definition\n [FIRST|AFTER col_name]\n | MODIFY [COLUMN] col_name column_definition\n [FIRST | AFTER col_name]\n | DROP [COLUMN] col_name\n | DROP PRIMARY KEY\n | DROP {INDEX|KEY} index_name\n | DROP FOREIGN KEY fk_symbol\n | MAX_ROWS = rows\n | DISABLE KEYS\n | ENABLE KEYS\n | RENAME [TO|AS] new_tbl_name\n | ORDER BY col_name [, col_name] ...\n | CONVERT TO CHARACTER SET charset_name [COLLATE collation_name]\n | [DEFAULT] CHARACTER SET [=] charset_name [COLLATE [=] collation_name]\n | DISCARD TABLESPACE\n | IMPORT TABLESPACE\n | FORCE\n | ADD PARTITION (partition_definition)\n | DROP PARTITION partition_names\n | TRUNCATE PARTITION {partition_names | ALL}\n | COALESCE PARTITION number\n | REORGANIZE PARTITION [partition_names INTO (partition_definitions)]\n | ANALYZE PARTITION {partition_names | ALL}\n | CHECK PARTITION {partition_names | ALL}\n | OPTIMIZE PARTITION {partition_names | ALL}\n | REBUILD PARTITION {partition_names | ALL}\n | REPAIR PARTITION {partition_names | ALL}\n | PARTITION BY partitioning_expression\n | REMOVE PARTITIONING\n\nindex_col_name:\n col_name [(length)] [ASC | DESC]\n\nindex_type:\n USING {BTREE | HASH}\n\nindex_option:\n KEY_BLOCK_SIZE [=] value\n | index_type\n | WITH PARSER parser_name\n | COMMENT \'string\'\n\ntable_options:\n table_option [[,] table_option] ... (see CREATE TABLE options)\n\npartition_options:\n (see CREATE TABLE options)\n\nALTER TABLE changes the structure of a table. For example, you can add\nor delete columns, create or destroy indexes, change the type of\nexisting columns, or rename columns or the table itself. You can also\nchange characteristics such as the storage engine used for the table or\nthe table comment.\n\nPartitioning-related clauses for ALTER TABLE can be used with\npartitioned tables for repartitioning, for adding, dropping, merging,\nand splitting partitions, and for performing partitioning maintenance.\nFor more information, see\nhttp://dev.mysql.com/doc/refman/5.5/en/alter-table-partition-operations\n.html.\n\nFollowing the table name, specify the alterations to be made. If none\nare given, ALTER TABLE does nothing.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/alter-table.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/alter-table.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (464,32,'MPOINTFROMWKB','MPointFromWKB(wkb[,srid]), MultiPointFromWKB(wkb[,srid])\n\nConstructs a MULTIPOINT value using its WKB representation and SRID.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-wkb-functions\n\n','','http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-wkb-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (465,22,'CHAR BYTE','The CHAR BYTE data type is an alias for the BINARY data type. This is a\ncompatibility feature.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-type-overview.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/string-type-overview.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (466,20,'REPAIR TABLE','Syntax:\nREPAIR [NO_WRITE_TO_BINLOG | LOCAL] TABLE\n tbl_name [, tbl_name] ...\n [QUICK] [EXTENDED] [USE_FRM]\n\nREPAIR TABLE repairs a possibly corrupted table. By default, it has the\nsame effect as myisamchk --recover tbl_name. REPAIR TABLE works for\nMyISAM, ARCHIVE, and CSV tables. See\nhttp://dev.mysql.com/doc/refman/5.5/en/myisam-storage-engine.html, and\nhttp://dev.mysql.com/doc/refman/5.5/en/archive-storage-engine.html, and\nhttp://dev.mysql.com/doc/refman/5.5/en/csv-storage-engine.html\n\nThis statement requires SELECT and INSERT privileges for the table.\n\nREPAIR TABLE is supported for partitioned tables. However, the USE_FRM\noption cannot be used with this statement on a partitioned table.\n\nYou can use ALTER TABLE ... REPAIR PARTITION to repair one or more\npartitions; for more information, see [HELP ALTER TABLE], and\nhttp://dev.mysql.com/doc/refman/5.5/en/partitioning-maintenance.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/repair-table.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/repair-table.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (467,39,'MERGE','The MERGE storage engine, also known as the MRG_MyISAM engine, is a\ncollection of identical MyISAM tables that can be used as one.\n"Identical" means that all tables have identical column and index\ninformation. You cannot merge MyISAM tables in which the columns are\nlisted in a different order, do not have exactly the same columns, or\nhave the indexes in different order. However, any or all of the MyISAM\ntables can be compressed with myisampack. See\nhttp://dev.mysql.com/doc/refman/5.5/en/myisampack.html. Differences in\ntable options such as AVG_ROW_LENGTH, MAX_ROWS, or PACK_KEYS do not\nmatter.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/merge-storage-engine.html\n\n','mysql> CREATE TABLE t1 (\n -> a INT NOT NULL AUTO_INCREMENT PRIMARY KEY,\n -> message CHAR(20)) ENGINE=MyISAM;\nmysql> CREATE TABLE t2 (\n -> a INT NOT NULL AUTO_INCREMENT PRIMARY KEY,\n -> message CHAR(20)) ENGINE=MyISAM;\nmysql> INSERT INTO t1 (message) VALUES (\'Testing\'),(\'table\'),(\'t1\');\nmysql> INSERT INTO t2 (message) VALUES (\'Testing\'),(\'table\'),(\'t2\');\nmysql> CREATE TABLE total (\n -> a INT NOT NULL AUTO_INCREMENT,\n -> message CHAR(20), INDEX(a))\n -> ENGINE=MERGE UNION=(t1,t2) INSERT_METHOD=LAST;\n','http://dev.mysql.com/doc/refman/5.5/en/merge-storage-engine.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (468,39,'CREATE TABLE','Syntax:\nCREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name\n (create_definition,...)\n [table_options]\n [partition_options]\n\nOr:\n\nCREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name\n [(create_definition,...)]\n [table_options]\n [partition_options]\n select_statement\n\nOr:\n\nCREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name\n { LIKE old_tbl_name | (LIKE old_tbl_name) }\n\ncreate_definition:\n col_name column_definition\n | [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...)\n [index_option] ...\n | {INDEX|KEY} [index_name] [index_type] (index_col_name,...)\n [index_option] ...\n | [CONSTRAINT [symbol]] UNIQUE [INDEX|KEY]\n [index_name] [index_type] (index_col_name,...)\n [index_option] ...\n | {FULLTEXT|SPATIAL} [INDEX|KEY] [index_name] (index_col_name,...)\n [index_option] ...\n | [CONSTRAINT [symbol]] FOREIGN KEY\n [index_name] (index_col_name,...) reference_definition\n | CHECK (expr)\n\ncolumn_definition:\n data_type [NOT NULL | NULL] [DEFAULT default_value]\n [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY]\n [COMMENT \'string\']\n [COLUMN_FORMAT {FIXED|DYNAMIC|DEFAULT}]\n [STORAGE {DISK|MEMORY|DEFAULT}]\n [reference_definition]\n\ndata_type:\n BIT[(length)]\n | TINYINT[(length)] [UNSIGNED] [ZEROFILL]\n | SMALLINT[(length)] [UNSIGNED] [ZEROFILL]\n | MEDIUMINT[(length)] [UNSIGNED] [ZEROFILL]\n | INT[(length)] [UNSIGNED] [ZEROFILL]\n | INTEGER[(length)] [UNSIGNED] [ZEROFILL]\n | BIGINT[(length)] [UNSIGNED] [ZEROFILL]\n | REAL[(length,decimals)] [UNSIGNED] [ZEROFILL]\n | DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL]\n | FLOAT[(length,decimals)] [UNSIGNED] [ZEROFILL]\n | DECIMAL[(length[,decimals])] [UNSIGNED] [ZEROFILL]\n | NUMERIC[(length[,decimals])] [UNSIGNED] [ZEROFILL]\n | DATE\n | TIME\n | TIMESTAMP\n | DATETIME\n | YEAR\n | CHAR[(length)]\n [CHARACTER SET charset_name] [COLLATE collation_name]\n | VARCHAR(length)\n [CHARACTER SET charset_name] [COLLATE collation_name]\n | BINARY[(length)]\n | VARBINARY(length)\n | TINYBLOB\n | BLOB\n | MEDIUMBLOB\n | LONGBLOB\n | TINYTEXT [BINARY]\n [CHARACTER SET charset_name] [COLLATE collation_name]\n | TEXT [BINARY]\n [CHARACTER SET charset_name] [COLLATE collation_name]\n | MEDIUMTEXT [BINARY]\n [CHARACTER SET charset_name] [COLLATE collation_name]\n | LONGTEXT [BINARY]\n [CHARACTER SET charset_name] [COLLATE collation_name]\n | ENUM(value1,value2,value3,...)\n [CHARACTER SET charset_name] [COLLATE collation_name]\n | SET(value1,value2,value3,...)\n [CHARACTER SET charset_name] [COLLATE collation_name]\n | spatial_type\n\nindex_col_name:\n col_name [(length)] [ASC | DESC]\n\nindex_type:\n USING {BTREE | HASH}\n\nindex_option:\n KEY_BLOCK_SIZE [=] value\n | index_type\n | WITH PARSER parser_name\n | COMMENT \'string\'\n\nreference_definition:\n REFERENCES tbl_name (index_col_name,...)\n [MATCH FULL | MATCH PARTIAL | MATCH SIMPLE]\n [ON DELETE reference_option]\n [ON UPDATE reference_option]\n\nreference_option:\n RESTRICT | CASCADE | SET NULL | NO ACTION\n\ntable_options:\n table_option [[,] table_option] ...\n\ntable_option:\n ENGINE [=] engine_name\n | AUTO_INCREMENT [=] value\n | AVG_ROW_LENGTH [=] value\n | [DEFAULT] CHARACTER SET [=] charset_name\n | CHECKSUM [=] {0 | 1}\n | [DEFAULT] COLLATE [=] collation_name\n | COMMENT [=] \'string\'\n | CONNECTION [=] \'connect_string\'\n | DATA DIRECTORY [=] \'absolute path to directory\'\n | DELAY_KEY_WRITE [=] {0 | 1}\n | INDEX DIRECTORY [=] \'absolute path to directory\'\n | INSERT_METHOD [=] { NO | FIRST | LAST }\n | KEY_BLOCK_SIZE [=] value\n | MAX_ROWS [=] value\n | MIN_ROWS [=] value\n | PACK_KEYS [=] {0 | 1 | DEFAULT}\n | PASSWORD [=] \'string\'\n | ROW_FORMAT [=] {DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT}\n | TABLESPACE tablespace_name [STORAGE {DISK|MEMORY|DEFAULT}]\n | UNION [=] (tbl_name[,tbl_name]...)\n\npartition_options:\n PARTITION BY\n { [LINEAR] HASH(expr)\n | [LINEAR] KEY(column_list)\n | RANGE{(expr) | COLUMNS(column_list)}\n | LIST{(expr) | COLUMNS(column_list)} }\n [PARTITIONS num]\n [SUBPARTITION BY\n { [LINEAR] HASH(expr)\n | [LINEAR] KEY(column_list) }\n [SUBPARTITIONS num]\n ]\n [(partition_definition [, partition_definition] ...)]\n\npartition_definition:\n PARTITION partition_name\n [VALUES \n {LESS THAN {(expr | value_list) | MAXVALUE} \n | \n IN (value_list)}]\n [[STORAGE] ENGINE [=] engine_name]\n [COMMENT [=] \'comment_text\' ]\n [DATA DIRECTORY [=] \'data_dir\']\n [INDEX DIRECTORY [=] \'index_dir\']\n [MAX_ROWS [=] max_number_of_rows]\n [MIN_ROWS [=] min_number_of_rows]\n [TABLESPACE [=] tablespace_name]\n [NODEGROUP [=] node_group_id]\n [(subpartition_definition [, subpartition_definition] ...)]\n\nsubpartition_definition:\n SUBPARTITION logical_name\n [[STORAGE] ENGINE [=] engine_name]\n [COMMENT [=] \'comment_text\' ]\n [DATA DIRECTORY [=] \'data_dir\']\n [INDEX DIRECTORY [=] \'index_dir\']\n [MAX_ROWS [=] max_number_of_rows]\n [MIN_ROWS [=] min_number_of_rows]\n [TABLESPACE [=] tablespace_name]\n [NODEGROUP [=] node_group_id]\n\nselect_statement:\n [IGNORE | REPLACE] [AS] SELECT ... (Some valid select statement)\n\nCREATE TABLE creates a table with the given name. You must have the\nCREATE privilege for the table.\n\nRules for permissible table names are given in\nhttp://dev.mysql.com/doc/refman/5.5/en/identifiers.html. By default,\nthe table is created in the default database, using the InnoDB storage\nengine. An error occurs if the table exists, if there is no default\ndatabase, or if the database does not exist.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/create-table.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/create-table.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (469,18,'>','Syntax:\n>\n\nGreater than:\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html\n\n','mysql> SELECT 2 > 2;\n -> 0\n','http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (470,20,'ANALYZE TABLE','Syntax:\nANALYZE [NO_WRITE_TO_BINLOG | LOCAL] TABLE\n tbl_name [, tbl_name] ...\n\nANALYZE TABLE analyzes and stores the key distribution for a table.\nDuring the analysis, the table is locked with a read lock for InnoDB\nand MyISAM. This statement works with InnoDB, NDB, and MyISAM tables.\nFor MyISAM tables, this statement is equivalent to using myisamchk\n--analyze.\n\nFor more information on how the analysis works within InnoDB, see\nhttp://dev.mysql.com/doc/refman/5.5/en/innodb-restrictions.html.\n\nMySQL uses the stored key distribution to decide the order in which\ntables should be joined when you perform a join on something other than\na constant. In addition, key distributions can be used when deciding\nwhich indexes to use for a specific table within a query.\n\nThis statement requires SELECT and INSERT privileges for the table.\n\nANALYZE TABLE is supported for partitioned tables, and you can use\nALTER TABLE ... ANALYZE PARTITION to analyze one or more partitions;\nfor more information, see [HELP ALTER TABLE], and\nhttp://dev.mysql.com/doc/refman/5.5/en/partitioning-maintenance.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/analyze-table.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/analyze-table.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (471,31,'MICROSECOND','Syntax:\nMICROSECOND(expr)\n\nReturns the microseconds from the time or datetime expression expr as a\nnumber in the range from 0 to 999999.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT MICROSECOND(\'12:00:00.123456\');\n -> 123456\nmysql> SELECT MICROSECOND(\'2009-12-31 23:59:59.000010\');\n -> 10\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (472,39,'CONSTRAINT','InnoDB supports foreign keys, which let you cross-reference related\ndata across tables, and foreign key constraints, which help keep this\nspread-out data consistent. The syntax for an InnoDB foreign key\nconstraint definition in the CREATE TABLE or ALTER TABLE statement\nlooks like this:\n\n[CONSTRAINT [symbol]] FOREIGN KEY\n [index_name] (index_col_name, ...)\n REFERENCES tbl_name (index_col_name,...)\n [ON DELETE reference_option]\n [ON UPDATE reference_option]\n\nreference_option:\n RESTRICT | CASCADE | SET NULL | NO ACTION\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key-constraints.html\n\n','CREATE TABLE product (category INT NOT NULL, id INT NOT NULL,\n price DECIMAL,\n PRIMARY KEY(category, id)) ENGINE=INNODB;\nCREATE TABLE customer (id INT NOT NULL,\n PRIMARY KEY (id)) ENGINE=INNODB;\nCREATE TABLE product_order (no INT NOT NULL AUTO_INCREMENT,\n product_category INT NOT NULL,\n product_id INT NOT NULL,\n customer_id INT NOT NULL,\n PRIMARY KEY(no),\n INDEX (product_category, product_id),\n FOREIGN KEY (product_category, product_id)\n REFERENCES product(category, id)\n ON UPDATE CASCADE ON DELETE RESTRICT,\n INDEX (customer_id),\n FOREIGN KEY (customer_id)\n REFERENCES customer(id)) ENGINE=INNODB;\n','http://dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key-constraints.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (473,39,'CREATE SERVER','Syntax:\nCREATE SERVER server_name\n FOREIGN DATA WRAPPER wrapper_name\n OPTIONS (option [, option] ...)\n\noption:\n { HOST character-literal\n | DATABASE character-literal\n | USER character-literal\n | PASSWORD character-literal\n | SOCKET character-literal\n | OWNER character-literal\n | PORT numeric-literal }\n\nThis statement creates the definition of a server for use with the\nFEDERATED storage engine. The CREATE SERVER statement creates a new row\nwithin the servers table within the mysql database. This statement\nrequires the SUPER privilege.\n\nThe server_name should be a unique reference to the server. Server\ndefinitions are global within the scope of the server, it is not\npossible to qualify the server definition to a specific database.\nserver_name has a maximum length of 64 characters (names longer than 64\ncharacters are silently truncated), and is case insensitive. You may\nspecify the name as a quoted string.\n\nThe wrapper_name should be mysql, and may be quoted with single\nquotation marks. Other values for wrapper_name are not currently\nsupported.\n\nFor each option you must specify either a character literal or numeric\nliteral. Character literals are UTF-8, support a maximum length of 64\ncharacters and default to a blank (empty) string. String literals are\nsilently truncated to 64 characters. Numeric literals must be a number\nbetween 0 and 9999, default value is 0.\n\n*Note*: Note that the OWNER option is currently not applied, and has no\neffect on the ownership or operation of the server connection that is\ncreated.\n\nThe CREATE SERVER statement creates an entry in the mysql.servers table\nthat can later be used with the CREATE TABLE statement when creating a\nFEDERATED table. The options that you specify will be used to populate\nthe columns in the mysql.servers table. The table columns are\nServer_name, Host, Db, Username, Password, Port and Socket.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/create-server.html\n\n','CREATE SERVER s\nFOREIGN DATA WRAPPER mysql\nOPTIONS (USER \'Remote\', HOST \'192.168.1.106\', DATABASE \'test\');\n','http://dev.mysql.com/doc/refman/5.5/en/create-server.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (474,37,'FIELD','Syntax:\nFIELD(str,str1,str2,str3,...)\n\nReturns the index (position) of str in the str1, str2, str3, ... list.\nReturns 0 if str is not found.\n\nIf all arguments to FIELD() are strings, all arguments are compared as\nstrings. If all arguments are numbers, they are compared as numbers.\nOtherwise, the arguments are compared as double.\n\nIf str is NULL, the return value is 0 because NULL fails equality\ncomparison with any value. FIELD() is the complement of ELT().\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT FIELD(\'ej\', \'Hej\', \'ej\', \'Heja\', \'hej\', \'foo\');\n -> 2\nmysql> SELECT FIELD(\'fo\', \'Hej\', \'ej\', \'Heja\', \'hej\', \'foo\');\n -> 0\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (475,31,'MAKETIME','Syntax:\nMAKETIME(hour,minute,second)\n\nReturns a time value calculated from the hour, minute, and second\narguments.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT MAKETIME(12,15,30);\n -> \'12:15:30\'\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (476,31,'CURDATE','Syntax:\nCURDATE()\n\nReturns the current date as a value in \'YYYY-MM-DD\' or YYYYMMDD format,\ndepending on whether the function is used in a string or numeric\ncontext.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT CURDATE();\n -> \'2008-06-13\'\nmysql> SELECT CURDATE() + 0;\n -> 20080613\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (477,10,'SET PASSWORD','Syntax:\nSET PASSWORD [FOR user] =\n {\n PASSWORD(\'cleartext password\')\n | OLD_PASSWORD(\'cleartext password\')\n | \'encrypted password\'\n }\n\nThe SET PASSWORD statement assigns a password to an existing MySQL user\naccount. When the read_only system variable is enabled, the SUPER\nprivilege is required to use SET PASSWORD, in addition to whatever\nother privileges might be required.\n\nIf the password is specified using the PASSWORD() or OLD_PASSWORD()\nfunction, the cleartext (unencrypted) password should be given as the\nargument to the function, which hashes the password and returns the\nencrypted password string. If the password is specified without using\neither function, it should be the already encrypted password value as a\nliteral string. In all cases, the encrypted password string must be in\nthe format required by the authentication method used for the account.\n\nThe old_passwords system variable value determines the hashing method\nused by PASSWORD(). If you specify the password using that function and\nSET PASSWORD rejects the password as not being in the correct format,\nit may be necessary to set old_passwords to change the hashing method.\nFor descriptions of the permitted values, see\nhttp://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html.\n\nWith no FOR user clause, this statement sets the password for the\ncurrent user. (To see which account the server authenticated you as,\ninvoke the CURRENT_USER() function.) Any client who successfully\nconnects to the server using a nonanonymous account can change the\npassword for that account.\n\nWith a FOR user clause, this statement sets the password for the named\nuser. You must have the UPDATE privilege for the mysql database to do\nthis. The user account name uses the format described in\nhttp://dev.mysql.com/doc/refman/5.5/en/account-names.html. The user\nvalue should be given as \'user_name\'@\'host_name\', where \'user_name\' and\n\'host_name\' are exactly as listed in the User and Host columns of the\nmysql.user table row. (If you specify only a user name, a host name of\n\'%\' is used.) For example, to set the password for an account with User\nand Host column values of \'bob\' and \'%.example.org\', write the\nstatement like this:\n\nSET PASSWORD FOR \'bob\'@\'%.example.org\' = PASSWORD(\'cleartext password\');\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/set-password.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/set-password.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (478,39,'ALTER TABLESPACE','Syntax:\nALTER TABLESPACE tablespace_name\n {ADD|DROP} DATAFILE \'file_name\'\n [INITIAL_SIZE [=] size]\n [WAIT]\n ENGINE [=] engine_name\n\nThis statement can be used either to add a new data file, or to drop a\ndata file from a tablespace.\n\nThe ADD DATAFILE variant enables you to specify an initial size using\nan INITIAL_SIZE clause, where size is measured in bytes; the default\nvalue is 128M (128 megabytes). You may optionally follow this integer\nvalue with a one-letter abbreviation for an order of magnitude, similar\nto those used in my.cnf. Generally, this is one of the letters M (for\nmegabytes) or G (for gigabytes).\n\n*Note*: All MySQL Cluster Disk Data objects share the same namespace.\nThis means that each Disk Data object must be uniquely named (and not\nmerely each Disk Data object of a given type). For example, you cannot\nhave a tablespace and an data file with the same name, or an undo log\nfile and a tablespace with the same name.\n\nOn 32-bit systems, the maximum supported value for INITIAL_SIZE is 4G.\n(Bug #29186)\n\nINITIAL_SIZE is rounded, explicitly, as for CREATE TABLESPACE.\n\nOnce a data file has been created, its size cannot be changed; however,\nyou can add more data files to the tablespace using additional ALTER\nTABLESPACE ... ADD DATAFILE statements.\n\nUsing DROP DATAFILE with ALTER TABLESPACE drops the data file\n\'file_name\' from the tablespace. You cannot drop a data file from a\ntablespace which is in use by any table; in other words, the data file\nmust be empty (no extents used). See\nhttp://dev.mysql.com/doc/refman/5.5/en/mysql-cluster-disk-data-objects.\nhtml. In addition, any data file to be dropped must previously have\nbeen added to the tablespace with CREATE TABLESPACE or ALTER\nTABLESPACE.\n\nBoth ALTER TABLESPACE ... ADD DATAFILE and ALTER TABLESPACE ... DROP\nDATAFILE require an ENGINE clause which specifies the storage engine\nused by the tablespace. Currently, the only accepted values for\nengine_name are NDB and NDBCLUSTER.\n\nWAIT is parsed but otherwise ignored, and so has no effect in MySQL\n5.5. It is intended for future expansion.\n\nWhen ALTER TABLESPACE ... ADD DATAFILE is used with ENGINE = NDB, a\ndata file is created on each Cluster data node. You can verify that the\ndata files were created and obtain information about them by querying\nthe INFORMATION_SCHEMA.FILES table. For example, the following query\nshows all data files belonging to the tablespace named newts:\n\nmysql> SELECT LOGFILE_GROUP_NAME, FILE_NAME, EXTRA\n -> FROM INFORMATION_SCHEMA.FILES\n -> WHERE TABLESPACE_NAME = \'newts\' AND FILE_TYPE = \'DATAFILE\';\n+--------------------+--------------+----------------+\n| LOGFILE_GROUP_NAME | FILE_NAME | EXTRA |\n+--------------------+--------------+----------------+\n| lg_3 | newdata.dat | CLUSTER_NODE=3 |\n| lg_3 | newdata.dat | CLUSTER_NODE=4 |\n| lg_3 | newdata2.dat | CLUSTER_NODE=3 |\n| lg_3 | newdata2.dat | CLUSTER_NODE=4 |\n+--------------------+--------------+----------------+\n2 rows in set (0.03 sec)\n\nSee http://dev.mysql.com/doc/refman/5.5/en/files-table.html.\n\nALTER TABLESPACE is useful only with Disk Data storage for MySQL\nCluster. See\nhttp://dev.mysql.com/doc/refman/5.5/en/mysql-cluster-disk-data.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/alter-tablespace.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/alter-tablespace.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (479,7,'IF FUNCTION','Syntax:\nIF(expr1,expr2,expr3)\n\nIf expr1 is TRUE (expr1 <> 0 and expr1 <> NULL) then IF() returns\nexpr2; otherwise it returns expr3. IF() returns a numeric or string\nvalue, depending on the context in which it is used.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/control-flow-functions.html\n\n','mysql> SELECT IF(1>2,2,3);\n -> 3\nmysql> SELECT IF(1<2,\'yes\',\'no\');\n -> \'yes\'\nmysql> SELECT IF(STRCMP(\'test\',\'test1\'),\'no\',\'yes\');\n -> \'no\'\n','http://dev.mysql.com/doc/refman/5.5/en/control-flow-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (480,22,'ENUM','ENUM(\'value1\',\'value2\',...) [CHARACTER SET charset_name] [COLLATE\ncollation_name]\n\nAn enumeration. A string object that can have only one value, chosen\nfrom the list of values \'value1\', \'value2\', ..., NULL or the special \'\'\nerror value. An ENUM column can have a maximum of 65,535 distinct\nvalues. ENUM values are represented internally as integers.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-type-overview.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/string-type-overview.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (481,17,'DATABASE','Syntax:\nDATABASE()\n\nReturns the default (current) database name as a string in the utf8\ncharacter set. If there is no default database, DATABASE() returns\nNULL. Within a stored routine, the default database is the database\nthat the routine is associated with, which is not necessarily the same\nas the database that is the default in the calling context.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/information-functions.html\n\n','mysql> SELECT DATABASE();\n -> \'test\'\n','http://dev.mysql.com/doc/refman/5.5/en/information-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (482,32,'POINTFROMWKB','PointFromWKB(wkb[,srid])\n\nConstructs a POINT value using its WKB representation and SRID.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-wkb-functions\n\n','','http://dev.mysql.com/doc/refman/5.5/en/creating-spatial-values.html#gis-wkb-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (483,4,'POWER','Syntax:\nPOWER(X,Y)\n\nThis is a synonym for POW().\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (484,4,'ATAN','Syntax:\nATAN(X)\n\nReturns the arc tangent of X, that is, the value whose tangent is X.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html\n\n','mysql> SELECT ATAN(2);\n -> 1.1071487177941\nmysql> SELECT ATAN(-2);\n -> -1.1071487177941\n','http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (485,37,'STRCMP','Syntax:\nSTRCMP(expr1,expr2)\n\nSTRCMP() returns 0 if the strings are the same, -1 if the first\nargument is smaller than the second according to the current sort\norder, and 1 otherwise.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-comparison-functions.html\n\n','mysql> SELECT STRCMP(\'text\', \'text2\');\n -> -1\nmysql> SELECT STRCMP(\'text2\', \'text\');\n -> 1\nmysql> SELECT STRCMP(\'text\', \'text\');\n -> 0\n','http://dev.mysql.com/doc/refman/5.5/en/string-comparison-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (486,27,'INSERT DELAYED','Syntax:\nINSERT DELAYED ...\n\nThe DELAYED option for the INSERT statement is a MySQL extension to\nstandard SQL that is very useful if you have clients that cannot or\nneed not wait for the INSERT to complete. This is a common situation\nwhen you use MySQL for logging and you also periodically run SELECT and\nUPDATE statements that take a long time to complete.\n\nWhen a client uses INSERT DELAYED, it gets an okay from the server at\nonce, and the row is queued to be inserted when the table is not in use\nby any other thread.\n\nAnother major benefit of using INSERT DELAYED is that inserts from many\nclients are bundled together and written in one block. This is much\nfaster than performing many separate inserts.\n\nNote that INSERT DELAYED is slower than a normal INSERT if the table is\nnot otherwise in use. There is also the additional overhead for the\nserver to handle a separate thread for each table for which there are\ndelayed rows. This means that you should use INSERT DELAYED only when\nyou are really sure that you need it.\n\nThe queued rows are held only in memory until they are inserted into\nthe table. This means that if you terminate mysqld forcibly (for\nexample, with kill -9) or if mysqld dies unexpectedly, any queued rows\nthat have not been written to disk are lost.\n\nThere are some constraints on the use of DELAYED:\n\no INSERT DELAYED works only with MyISAM, MEMORY, ARCHIVE, and BLACKHOLE\n tables. For engines that do not support DELAYED, an error occurs.\n\no An error occurs for INSERT DELAYED if used with a table that has been\n locked with LOCK TABLES because the insert must be handled by a\n separate thread, not by the session that holds the lock.\n\no For MyISAM tables, if there are no free blocks in the middle of the\n data file, concurrent SELECT and INSERT statements are supported.\n Under these circumstances, you very seldom need to use INSERT DELAYED\n with MyISAM.\n\no INSERT DELAYED should be used only for INSERT statements that specify\n value lists. The server ignores DELAYED for INSERT ... SELECT or\n INSERT ... ON DUPLICATE KEY UPDATE statements.\n\no Because the INSERT DELAYED statement returns immediately, before the\n rows are inserted, you cannot use LAST_INSERT_ID() to get the\n AUTO_INCREMENT value that the statement might generate.\n\no DELAYED rows are not visible to SELECT statements until they actually\n have been inserted.\n\no Prior to MySQL 5.5.7, INSERT DELAYED was treated as a normal INSERT\n if the statement inserted multiple rows, binary logging was enabled,\n and the global logging format was statement-based (that is, whenever\n binlog_format was set to STATEMENT). Beginning with MySQL 5.5.7,\n INSERT DELAYED is always handled as a simple INSERT (that is, without\n the DELAYED option) whenever the value of binlog_format is STATEMENT\n or MIXED. (In the latter case, the statement no longer triggers a\n switch to row-based logging, and so is logged using the\n statement-based format.)\n\n This does not apply when using row-based binary logging mode\n (binlog_format set to ROW), in which INSERT DELAYED statements are\n always executed using the DELAYED option as specified, and logged as\n row-update events.\n\no DELAYED is ignored on slave replication servers, so that INSERT\n DELAYED is treated as a normal INSERT on slaves. This is because\n DELAYED could cause the slave to have different data than the master.\n\no Pending INSERT DELAYED statements are lost if a table is write locked\n and ALTER TABLE is used to modify the table structure.\n\no INSERT DELAYED is not supported for views.\n\no INSERT DELAYED is not supported for partitioned tables.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/insert-delayed.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/insert-delayed.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (487,26,'SHOW PROFILE','Syntax:\nSHOW PROFILE [type [, type] ... ]\n [FOR QUERY n]\n [LIMIT row_count [OFFSET offset]]\n\ntype:\n ALL\n | BLOCK IO\n | CONTEXT SWITCHES\n | CPU\n | IPC\n | MEMORY\n | PAGE FAULTS\n | SOURCE\n | SWAPS\n\nThe SHOW PROFILE and SHOW PROFILES statements display profiling\ninformation that indicates resource usage for statements executed\nduring the course of the current session.\n\nProfiling is controlled by the profiling session variable, which has a\ndefault value of 0 (OFF). Profiling is enabled by setting profiling to\n1 or ON:\n\nmysql> SET profiling = 1;\n\nSHOW PROFILES displays a list of the most recent statements sent to the\nserver. The size of the list is controlled by the\nprofiling_history_size session variable, which has a default value of\n15. The maximum value is 100. Setting the value to 0 has the practical\neffect of disabling profiling.\n\nAll statements are profiled except SHOW PROFILE and SHOW PROFILES, so\nyou will find neither of those statements in the profile list.\nMalformed statements are profiled. For example, SHOW PROFILING is an\nillegal statement, and a syntax error occurs if you try to execute it,\nbut it will show up in the profiling list.\n\nSHOW PROFILE displays detailed information about a single statement.\nWithout the FOR QUERY n clause, the output pertains to the most\nrecently executed statement. If FOR QUERY n is included, SHOW PROFILE\ndisplays information for statement n. The values of n correspond to the\nQuery_ID values displayed by SHOW PROFILES.\n\nThe LIMIT row_count clause may be given to limit the output to\nrow_count rows. If LIMIT is given, OFFSET offset may be added to begin\nthe output offset rows into the full set of rows.\n\nBy default, SHOW PROFILE displays Status and Duration columns. The\nStatus values are like the State values displayed by SHOW PROCESSLIST,\nalthough there might be some minor differences in interpretion for the\ntwo statements for some status values (see\nhttp://dev.mysql.com/doc/refman/5.5/en/thread-information.html).\n\nOptional type values may be specified to display specific additional\ntypes of information:\n\no ALL displays all information\n\no BLOCK IO displays counts for block input and output operations\n\no CONTEXT SWITCHES displays counts for voluntary and involuntary\n context switches\n\no CPU displays user and system CPU usage times\n\no IPC displays counts for messages sent and received\n\no MEMORY is not currently implemented\n\no PAGE FAULTS displays counts for major and minor page faults\n\no SOURCE displays the names of functions from the source code, together\n with the name and line number of the file in which the function\n occurs\n\no SWAPS displays swap counts\n\nProfiling is enabled per session. When a session ends, its profiling\ninformation is lost.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-profile.html\n\n','mysql> SELECT @@profiling;\n+-------------+\n| @@profiling |\n+-------------+\n| 0 |\n+-------------+\n1 row in set (0.00 sec)\n\nmysql> SET profiling = 1;\nQuery OK, 0 rows affected (0.00 sec)\n\nmysql> DROP TABLE IF EXISTS t1;\nQuery OK, 0 rows affected, 1 warning (0.00 sec)\n\nmysql> CREATE TABLE T1 (id INT);\nQuery OK, 0 rows affected (0.01 sec)\n\nmysql> SHOW PROFILES;\n+----------+----------+--------------------------+\n| Query_ID | Duration | Query |\n+----------+----------+--------------------------+\n| 0 | 0.000088 | SET PROFILING = 1 |\n| 1 | 0.000136 | DROP TABLE IF EXISTS t1 |\n| 2 | 0.011947 | CREATE TABLE t1 (id INT) |\n+----------+----------+--------------------------+\n3 rows in set (0.00 sec)\n\nmysql> SHOW PROFILE;\n+----------------------+----------+\n| Status | Duration |\n+----------------------+----------+\n| checking permissions | 0.000040 |\n| creating table | 0.000056 |\n| After create | 0.011363 |\n| query end | 0.000375 |\n| freeing items | 0.000089 |\n| logging slow query | 0.000019 |\n| cleaning up | 0.000005 |\n+----------------------+----------+\n7 rows in set (0.00 sec)\n\nmysql> SHOW PROFILE FOR QUERY 1;\n+--------------------+----------+\n| Status | Duration |\n+--------------------+----------+\n| query end | 0.000107 |\n| freeing items | 0.000008 |\n| logging slow query | 0.000015 |\n| cleaning up | 0.000006 |\n+--------------------+----------+\n4 rows in set (0.00 sec)\n\nmysql> SHOW PROFILE CPU FOR QUERY 2;\n+----------------------+----------+----------+------------+\n| Status | Duration | CPU_user | CPU_system |\n+----------------------+----------+----------+------------+\n| checking permissions | 0.000040 | 0.000038 | 0.000002 |\n| creating table | 0.000056 | 0.000028 | 0.000028 |\n| After create | 0.011363 | 0.000217 | 0.001571 |\n| query end | 0.000375 | 0.000013 | 0.000028 |\n| freeing items | 0.000089 | 0.000010 | 0.000014 |\n| logging slow query | 0.000019 | 0.000009 | 0.000010 |\n| cleaning up | 0.000005 | 0.000003 | 0.000002 |\n+----------------------+----------+----------+------------+\n7 rows in set (0.00 sec)\n','http://dev.mysql.com/doc/refman/5.5/en/show-profile.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (488,26,'SHOW PROCEDURE CODE','Syntax:\nSHOW PROCEDURE CODE proc_name\n\nThis statement is a MySQL extension that is available only for servers\nthat have been built with debugging support. It displays a\nrepresentation of the internal implementation of the named stored\nprocedure. A similar statement, SHOW FUNCTION CODE, displays\ninformation about stored functions (see [HELP SHOW FUNCTION CODE]).\n\nBoth statements require that you be the owner of the routine or have\nSELECT access to the mysql.proc table.\n\nIf the named routine is available, each statement produces a result\nset. Each row in the result set corresponds to one "instruction" in the\nroutine. The first column is Pos, which is an ordinal number beginning\nwith 0. The second column is Instruction, which contains an SQL\nstatement (usually changed from the original source), or a directive\nwhich has meaning only to the stored-routine handler.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-procedure-code.html\n\n','mysql> DELIMITER //\nmysql> CREATE PROCEDURE p1 ()\n -> BEGIN\n -> DECLARE fanta INT DEFAULT 55;\n -> DROP TABLE t2;\n -> LOOP\n -> INSERT INTO t3 VALUES (fanta);\n -> END LOOP;\n -> END//\nQuery OK, 0 rows affected (0.00 sec)\n\nmysql> SHOW PROCEDURE CODE p1//\n+-----+----------------------------------------+\n| Pos | Instruction |\n+-----+----------------------------------------+\n| 0 | set fanta@0 55 |\n| 1 | stmt 9 "DROP TABLE t2" |\n| 2 | stmt 5 "INSERT INTO t3 VALUES (fanta)" |\n| 3 | jump 2 |\n+-----+----------------------------------------+\n4 rows in set (0.00 sec)\n','http://dev.mysql.com/doc/refman/5.5/en/show-procedure-code.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (489,22,'MEDIUMTEXT','MEDIUMTEXT [CHARACTER SET charset_name] [COLLATE collation_name]\n\nA TEXT column with a maximum length of 16,777,215 (224 - 1) characters.\nThe effective maximum length is less if the value contains multi-byte\ncharacters. Each MEDIUMTEXT value is stored using a 3-byte length\nprefix that indicates the number of bytes in the value.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-type-overview.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/string-type-overview.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (490,4,'LN','Syntax:\nLN(X)\n\nReturns the natural logarithm of X; that is, the base-e logarithm of X.\nIf X is less than or equal to 0, then NULL is returned.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html\n\n','mysql> SELECT LN(2);\n -> 0.69314718055995\nmysql> SELECT LN(-2);\n -> NULL\n','http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (491,23,'RETURN','Syntax:\nRETURN expr\n\nThe RETURN statement terminates execution of a stored function and\nreturns the value expr to the function caller. There must be at least\none RETURN statement in a stored function. There may be more than one\nif the function has multiple exit points.\n\nThis statement is not used in stored procedures, triggers, or events.\nThe LEAVE statement can be used to exit a stored program of those\ntypes.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/return.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/return.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (492,26,'SHOW COLLATION','Syntax:\nSHOW COLLATION\n [LIKE \'pattern\' | WHERE expr]\n\nThis statement lists collations supported by the server. By default,\nthe output from SHOW COLLATION includes all available collations. The\nLIKE clause, if present, indicates which collation names to match. The\nWHERE clause can be given to select rows using more general conditions,\nas discussed in\nhttp://dev.mysql.com/doc/refman/5.5/en/extended-show.html. For example:\n\nmysql> SHOW COLLATION LIKE \'latin1%\';\n+-------------------+---------+----+---------+----------+---------+\n| Collation | Charset | Id | Default | Compiled | Sortlen |\n+-------------------+---------+----+---------+----------+---------+\n| latin1_german1_ci | latin1 | 5 | | | 0 |\n| latin1_swedish_ci | latin1 | 8 | Yes | Yes | 0 |\n| latin1_danish_ci | latin1 | 15 | | | 0 |\n| latin1_german2_ci | latin1 | 31 | | Yes | 2 |\n| latin1_bin | latin1 | 47 | | Yes | 0 |\n| latin1_general_ci | latin1 | 48 | | | 0 |\n| latin1_general_cs | latin1 | 49 | | | 0 |\n| latin1_spanish_ci | latin1 | 94 | | | 0 |\n+-------------------+---------+----+---------+----------+---------+\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/show-collation.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/show-collation.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (493,4,'LOG','Syntax:\nLOG(X), LOG(B,X)\n\nIf called with one parameter, this function returns the natural\nlogarithm of X. If X is less than or equal to 0, then NULL is returned.\n\nThe inverse of this function (when called with a single argument) is\nthe EXP() function.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html\n\n','mysql> SELECT LOG(2);\n -> 0.69314718055995\nmysql> SELECT LOG(-2);\n -> NULL\n','http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (494,8,'SET SQL_LOG_BIN','Syntax:\nSET sql_log_bin = {0|1}\n\nThe sql_log_bin variable controls whether logging to the binary log is\ndone. The default value is 1 (do logging). To change logging for the\ncurrent session, change the session value of this variable. The session\nuser must have the SUPER privilege to set this variable.\n\nBeginning with MySQL 5.5.5, it is no longer possible to set\n@@session.sql_log_bin within a transaction or subquery. (Bug #53437)\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/set-sql-log-bin.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/set-sql-log-bin.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (495,18,'!=','Syntax:\n<>, !=\n\nNot equal:\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html\n\n','mysql> SELECT \'.01\' <> \'0.01\';\n -> 1\nmysql> SELECT .01 <> \'0.01\';\n -> 0\nmysql> SELECT \'zapp\' <> \'zappp\';\n -> 1\n','http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (496,23,'WHILE','Syntax:\n[begin_label:] WHILE search_condition DO\n statement_list\nEND WHILE [end_label]\n\nThe statement list within a WHILE statement is repeated as long as the\nsearch_condition expression is true. statement_list consists of one or\nmore SQL statements, each terminated by a semicolon (;) statement\ndelimiter.\n\nA WHILE statement can be labeled. For the rules regarding label use,\nsee [HELP labels].\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/while.html\n\n','CREATE PROCEDURE dowhile()\nBEGIN\n DECLARE v1 INT DEFAULT 5;\n\n WHILE v1 > 0 DO\n ...\n SET v1 = v1 - 1;\n END WHILE;\nEND;\n','http://dev.mysql.com/doc/refman/5.5/en/while.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (497,12,'AES_DECRYPT','Syntax:\nAES_DECRYPT(crypt_str,key_str)\n\nThis function decrypts data using the official AES (Advanced Encryption\nStandard) algorithm. For more information, see the description of\nAES_ENCRYPT().\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (498,31,'DAYNAME','Syntax:\nDAYNAME(date)\n\nReturns the name of the weekday for date. The language used for the\nname is controlled by the value of the lc_time_names system variable\n(http://dev.mysql.com/doc/refman/5.5/en/locale-support.html).\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html\n\n','mysql> SELECT DAYNAME(\'2007-02-03\');\n -> \'Saturday\'\n','http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (499,17,'COERCIBILITY','Syntax:\nCOERCIBILITY(str)\n\nReturns the collation coercibility value of the string argument.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/information-functions.html\n\n','mysql> SELECT COERCIBILITY(\'abc\' COLLATE latin1_swedish_ci);\n -> 0\nmysql> SELECT COERCIBILITY(USER());\n -> 3\nmysql> SELECT COERCIBILITY(\'abc\');\n -> 4\n','http://dev.mysql.com/doc/refman/5.5/en/information-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (500,22,'INT','INT[(M)] [UNSIGNED] [ZEROFILL]\n\nA normal-size integer. The signed range is -2147483648 to 2147483647.\nThe unsigned range is 0 to 4294967295.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html\n\n','','http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (501,13,'GLENGTH','GLength(ls)\n\nReturns as a double-precision number the length of the LineString value\nls in its associated spatial reference.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#linestring-property-functions\n\n','mysql> SET @ls = \'LineString(1 1,2 2,3 3)\';\nmysql> SELECT GLength(GeomFromText(@ls));\n+----------------------------+\n| GLength(GeomFromText(@ls)) |\n+----------------------------+\n| 2.8284271247462 |\n+----------------------------+\n','http://dev.mysql.com/doc/refman/5.5/en/geometry-property-functions.html#linestring-property-functions'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (502,4,'RADIANS','Syntax:\nRADIANS(X)\n\nReturns the argument X, converted from degrees to radians. (Note that\nπ radians equals 180 degrees.)\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html\n\n','mysql> SELECT RADIANS(90);\n -> 1.5707963267949\n','http://dev.mysql.com/doc/refman/5.5/en/mathematical-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (503,17,'COLLATION','Syntax:\nCOLLATION(str)\n\nReturns the collation of the string argument.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/information-functions.html\n\n','mysql> SELECT COLLATION(\'abc\');\n -> \'latin1_swedish_ci\'\nmysql> SELECT COLLATION(_utf8\'abc\');\n -> \'utf8_general_ci\'\n','http://dev.mysql.com/doc/refman/5.5/en/information-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (504,18,'COALESCE','Syntax:\nCOALESCE(value,...)\n\nReturns the first non-NULL value in the list, or NULL if there are no\nnon-NULL values.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html\n\n','mysql> SELECT COALESCE(NULL,1);\n -> 1\nmysql> SELECT COALESCE(NULL,NULL,NULL);\n -> NULL\n','http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (505,17,'VERSION','Syntax:\nVERSION()\n\nReturns a string that indicates the MySQL server version. The string\nuses the utf8 character set. The value might have a suffix in addition\nto the version number. See the description of the version system\nvariable in\nhttp://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/information-functions.html\n\n','mysql> SELECT VERSION();\n -> \'5.5.29-standard\'\n','http://dev.mysql.com/doc/refman/5.5/en/information-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (506,37,'MAKE_SET','Syntax:\nMAKE_SET(bits,str1,str2,...)\n\nReturns a set value (a string containing substrings separated by ","\ncharacters) consisting of the strings that have the corresponding bit\nin bits set. str1 corresponds to bit 0, str2 to bit 1, and so on. NULL\nvalues in str1, str2, ... are not appended to the result.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT MAKE_SET(1,\'a\',\'b\',\'c\');\n -> \'a\'\nmysql> SELECT MAKE_SET(1 | 4,\'hello\',\'nice\',\'world\');\n -> \'hello,world\'\nmysql> SELECT MAKE_SET(1 | 4,\'hello\',\'nice\',NULL,\'world\');\n -> \'hello\'\nmysql> SELECT MAKE_SET(0,\'a\',\'b\',\'c\');\n -> \'\'\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); +insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (507,37,'FIND_IN_SET','Syntax:\nFIND_IN_SET(str,strlist)\n\nReturns a value in the range of 1 to N if the string str is in the\nstring list strlist consisting of N substrings. A string list is a\nstring composed of substrings separated by "," characters. If the first\nargument is a constant string and the second is a column of type SET,\nthe FIND_IN_SET() function is optimized to use bit arithmetic. Returns\n0 if str is not in strlist or if strlist is the empty string. Returns\nNULL if either argument is NULL. This function does not work properly\nif the first argument contains a comma (",") character.\n\nURL: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html\n\n','mysql> SELECT FIND_IN_SET(\'b\',\'a,b,c,d\');\n -> 2\n','http://dev.mysql.com/doc/refman/5.5/en/string-functions.html'); + +insert into help_keyword (help_keyword_id,name) values (0,'JOIN'); +insert into help_keyword (help_keyword_id,name) values (1,'HOST'); +insert into help_keyword (help_keyword_id,name) values (2,'REPEAT'); +insert into help_keyword (help_keyword_id,name) values (3,'SERIALIZABLE'); +insert into help_keyword (help_keyword_id,name) values (4,'REPLACE'); +insert into help_keyword (help_keyword_id,name) values (5,'AT'); +insert into help_keyword (help_keyword_id,name) values (6,'SCHEDULE'); +insert into help_keyword (help_keyword_id,name) values (7,'RETURNS'); +insert into help_keyword (help_keyword_id,name) values (8,'STARTS'); +insert into help_keyword (help_keyword_id,name) values (9,'MASTER_SSL_CA'); +insert into help_keyword (help_keyword_id,name) values (10,'NCHAR'); +insert into help_keyword (help_keyword_id,name) values (11,'COLUMNS'); +insert into help_keyword (help_keyword_id,name) values (12,'COMPLETION'); +insert into help_keyword (help_keyword_id,name) values (13,'WORK'); +insert into help_keyword (help_keyword_id,name) values (14,'DATETIME'); +insert into help_keyword (help_keyword_id,name) values (15,'MODE'); +insert into help_keyword (help_keyword_id,name) values (16,'OPEN'); +insert into help_keyword (help_keyword_id,name) values (17,'INTEGER'); +insert into help_keyword (help_keyword_id,name) values (18,'ESCAPE'); +insert into help_keyword (help_keyword_id,name) values (19,'VALUE'); +insert into help_keyword (help_keyword_id,name) values (20,'MASTER_SSL_VERIFY_SERVER_CERT'); +insert into help_keyword (help_keyword_id,name) values (21,'SQL_BIG_RESULT'); +insert into help_keyword (help_keyword_id,name) values (22,'DROP'); +insert into help_keyword (help_keyword_id,name) values (23,'GEOMETRYCOLLECTIONFROMWKB'); +insert into help_keyword (help_keyword_id,name) values (24,'EVENTS'); +insert into help_keyword (help_keyword_id,name) values (25,'MONTH'); +insert into help_keyword (help_keyword_id,name) values (26,'PROFILES'); +insert into help_keyword (help_keyword_id,name) values (27,'DUPLICATE'); +insert into help_keyword (help_keyword_id,name) values (28,'REPLICATION'); +insert into help_keyword (help_keyword_id,name) values (29,'UNLOCK'); +insert into help_keyword (help_keyword_id,name) values (30,'INNODB'); +insert into help_keyword (help_keyword_id,name) values (31,'YEAR_MONTH'); +insert into help_keyword (help_keyword_id,name) values (32,'SUBJECT'); +insert into help_keyword (help_keyword_id,name) values (33,'PREPARE'); +insert into help_keyword (help_keyword_id,name) values (34,'LOCK'); +insert into help_keyword (help_keyword_id,name) values (35,'NDB'); +insert into help_keyword (help_keyword_id,name) values (36,'CHECK'); +insert into help_keyword (help_keyword_id,name) values (37,'FULL'); +insert into help_keyword (help_keyword_id,name) values (38,'INT4'); +insert into help_keyword (help_keyword_id,name) values (39,'BY'); +insert into help_keyword (help_keyword_id,name) values (40,'NO'); +insert into help_keyword (help_keyword_id,name) values (41,'MINUTE'); +insert into help_keyword (help_keyword_id,name) values (42,'PARTITION'); +insert into help_keyword (help_keyword_id,name) values (43,'DATA'); +insert into help_keyword (help_keyword_id,name) values (44,'DAY'); +insert into help_keyword (help_keyword_id,name) values (45,'SHARE'); +insert into help_keyword (help_keyword_id,name) values (46,'REAL'); +insert into help_keyword (help_keyword_id,name) values (47,'SEPARATOR'); +insert into help_keyword (help_keyword_id,name) values (48,'MESSAGE_TEXT'); +insert into help_keyword (help_keyword_id,name) values (49,'MASTER_HEARTBEAT_PERIOD'); +insert into help_keyword (help_keyword_id,name) values (50,'DELETE'); +insert into help_keyword (help_keyword_id,name) values (51,'ON'); +insert into help_keyword (help_keyword_id,name) values (52,'COLUMN_NAME'); +insert into help_keyword (help_keyword_id,name) values (53,'CONNECTION'); +insert into help_keyword (help_keyword_id,name) values (54,'CLOSE'); +insert into help_keyword (help_keyword_id,name) values (55,'X509'); +insert into help_keyword (help_keyword_id,name) values (56,'USE'); +insert into help_keyword (help_keyword_id,name) values (57,'SUBCLASS_ORIGIN'); +insert into help_keyword (help_keyword_id,name) values (58,'WHERE'); +insert into help_keyword (help_keyword_id,name) values (59,'PRIVILEGES'); +insert into help_keyword (help_keyword_id,name) values (60,'SPATIAL'); +insert into help_keyword (help_keyword_id,name) values (61,'EVENT'); +insert into help_keyword (help_keyword_id,name) values (62,'SUPER'); +insert into help_keyword (help_keyword_id,name) values (63,'SQL_BUFFER_RESULT'); +insert into help_keyword (help_keyword_id,name) values (64,'IGNORE'); +insert into help_keyword (help_keyword_id,name) values (65,'SHA2'); +insert into help_keyword (help_keyword_id,name) values (66,'QUICK'); +insert into help_keyword (help_keyword_id,name) values (67,'SIGNED'); +insert into help_keyword (help_keyword_id,name) values (68,'OFFLINE'); +insert into help_keyword (help_keyword_id,name) values (69,'SECURITY'); +insert into help_keyword (help_keyword_id,name) values (70,'AUTOEXTEND_SIZE'); +insert into help_keyword (help_keyword_id,name) values (71,'NDBCLUSTER'); +insert into help_keyword (help_keyword_id,name) values (72,'POLYGONFROMWKB'); +insert into help_keyword (help_keyword_id,name) values (73,'FALSE'); +insert into help_keyword (help_keyword_id,name) values (74,'LEVEL'); +insert into help_keyword (help_keyword_id,name) values (75,'FORCE'); +insert into help_keyword (help_keyword_id,name) values (76,'BINARY'); +insert into help_keyword (help_keyword_id,name) values (77,'TO'); +insert into help_keyword (help_keyword_id,name) values (78,'CHANGE'); +insert into help_keyword (help_keyword_id,name) values (79,'CURRENT_USER'); +insert into help_keyword (help_keyword_id,name) values (80,'HOUR_MINUTE'); +insert into help_keyword (help_keyword_id,name) values (81,'UPDATE'); +insert into help_keyword (help_keyword_id,name) values (82,'PRESERVE'); +insert into help_keyword (help_keyword_id,name) values (83,'TABLE_NAME'); +insert into help_keyword (help_keyword_id,name) values (84,'INTO'); +insert into help_keyword (help_keyword_id,name) values (85,'FEDERATED'); +insert into help_keyword (help_keyword_id,name) values (86,'VARYING'); +insert into help_keyword (help_keyword_id,name) values (87,'MAX_SIZE'); +insert into help_keyword (help_keyword_id,name) values (88,'HOUR_SECOND'); +insert into help_keyword (help_keyword_id,name) values (89,'VARIABLE'); +insert into help_keyword (help_keyword_id,name) values (90,'ROLLBACK'); +insert into help_keyword (help_keyword_id,name) values (91,'PROCEDURE'); +insert into help_keyword (help_keyword_id,name) values (92,'TIMESTAMP'); +insert into help_keyword (help_keyword_id,name) values (93,'IMPORT'); +insert into help_keyword (help_keyword_id,name) values (94,'AGAINST'); +insert into help_keyword (help_keyword_id,name) values (95,'CHECKSUM'); +insert into help_keyword (help_keyword_id,name) values (96,'COUNT'); +insert into help_keyword (help_keyword_id,name) values (97,'LONGBINARY'); +insert into help_keyword (help_keyword_id,name) values (98,'THEN'); +insert into help_keyword (help_keyword_id,name) values (99,'INSERT'); +insert into help_keyword (help_keyword_id,name) values (100,'ENGINES'); +insert into help_keyword (help_keyword_id,name) values (101,'HANDLER'); +insert into help_keyword (help_keyword_id,name) values (102,'PORT'); +insert into help_keyword (help_keyword_id,name) values (103,'DAY_SECOND'); +insert into help_keyword (help_keyword_id,name) values (104,'EXISTS'); +insert into help_keyword (help_keyword_id,name) values (105,'MUTEX'); +insert into help_keyword (help_keyword_id,name) values (106,'HELP_DATE'); +insert into help_keyword (help_keyword_id,name) values (107,'RELEASE'); +insert into help_keyword (help_keyword_id,name) values (108,'BOOLEAN'); +insert into help_keyword (help_keyword_id,name) values (109,'MOD'); +insert into help_keyword (help_keyword_id,name) values (110,'DEFAULT'); +insert into help_keyword (help_keyword_id,name) values (111,'TYPE'); +insert into help_keyword (help_keyword_id,name) values (112,'NO_WRITE_TO_BINLOG'); +insert into help_keyword (help_keyword_id,name) values (113,'OPTIMIZE'); +insert into help_keyword (help_keyword_id,name) values (114,'SQLSTATE'); +insert into help_keyword (help_keyword_id,name) values (115,'RESET'); +insert into help_keyword (help_keyword_id,name) values (116,'CLASS_ORIGIN'); +insert into help_keyword (help_keyword_id,name) values (117,'INSTALL'); +insert into help_keyword (help_keyword_id,name) values (118,'ITERATE'); +insert into help_keyword (help_keyword_id,name) values (119,'DO'); +insert into help_keyword (help_keyword_id,name) values (120,'BIGINT'); +insert into help_keyword (help_keyword_id,name) values (121,'SET'); +insert into help_keyword (help_keyword_id,name) values (122,'ISSUER'); +insert into help_keyword (help_keyword_id,name) values (123,'DATE'); +insert into help_keyword (help_keyword_id,name) values (124,'STATUS'); +insert into help_keyword (help_keyword_id,name) values (125,'FULLTEXT'); +insert into help_keyword (help_keyword_id,name) values (126,'COMMENT'); +insert into help_keyword (help_keyword_id,name) values (127,'MASTER_CONNECT_RETRY'); +insert into help_keyword (help_keyword_id,name) values (128,'INNER'); +insert into help_keyword (help_keyword_id,name) values (129,'RELAYLOG'); +insert into help_keyword (help_keyword_id,name) values (130,'STOP'); +insert into help_keyword (help_keyword_id,name) values (131,'MASTER_LOG_FILE'); +insert into help_keyword (help_keyword_id,name) values (132,'MRG_MYISAM'); +insert into help_keyword (help_keyword_id,name) values (133,'PRECISION'); +insert into help_keyword (help_keyword_id,name) values (134,'REQUIRE'); +insert into help_keyword (help_keyword_id,name) values (135,'TRAILING'); +insert into help_keyword (help_keyword_id,name) values (136,'PARTITIONS'); +insert into help_keyword (help_keyword_id,name) values (137,'LONG'); +insert into help_keyword (help_keyword_id,name) values (138,'OPTION'); +insert into help_keyword (help_keyword_id,name) values (139,'REORGANIZE'); +insert into help_keyword (help_keyword_id,name) values (140,'ELSE'); +insert into help_keyword (help_keyword_id,name) values (141,'DEALLOCATE'); +insert into help_keyword (help_keyword_id,name) values (142,'IO_THREAD'); +insert into help_keyword (help_keyword_id,name) values (143,'CASE'); +insert into help_keyword (help_keyword_id,name) values (144,'CIPHER'); +insert into help_keyword (help_keyword_id,name) values (145,'CONTINUE'); +insert into help_keyword (help_keyword_id,name) values (146,'FROM'); +insert into help_keyword (help_keyword_id,name) values (147,'READ'); +insert into help_keyword (help_keyword_id,name) values (148,'LEFT'); +insert into help_keyword (help_keyword_id,name) values (149,'ELSEIF'); +insert into help_keyword (help_keyword_id,name) values (150,'MINUTE_SECOND'); +insert into help_keyword (help_keyword_id,name) values (151,'COMPACT'); +insert into help_keyword (help_keyword_id,name) values (152,'DEC'); +insert into help_keyword (help_keyword_id,name) values (153,'FOR'); +insert into help_keyword (help_keyword_id,name) values (154,'WARNINGS'); +insert into help_keyword (help_keyword_id,name) values (155,'MIN_ROWS'); +insert into help_keyword (help_keyword_id,name) values (156,'STRING'); +insert into help_keyword (help_keyword_id,name) values (157,'CONDITION'); +insert into help_keyword (help_keyword_id,name) values (158,'ENCLOSED'); +insert into help_keyword (help_keyword_id,name) values (159,'FUNCTION'); +insert into help_keyword (help_keyword_id,name) values (160,'AGGREGATE'); +insert into help_keyword (help_keyword_id,name) values (161,'FIELDS'); +insert into help_keyword (help_keyword_id,name) values (162,'INT3'); +insert into help_keyword (help_keyword_id,name) values (163,'ARCHIVE'); +insert into help_keyword (help_keyword_id,name) values (164,'AVG_ROW_LENGTH'); +insert into help_keyword (help_keyword_id,name) values (165,'ADD'); +insert into help_keyword (help_keyword_id,name) values (166,'KILL'); +insert into help_keyword (help_keyword_id,name) values (167,'FLOAT4'); +insert into help_keyword (help_keyword_id,name) values (168,'TABLESPACE'); +insert into help_keyword (help_keyword_id,name) values (169,'VIEW'); +insert into help_keyword (help_keyword_id,name) values (170,'REPEATABLE'); +insert into help_keyword (help_keyword_id,name) values (171,'INFILE'); +insert into help_keyword (help_keyword_id,name) values (172,'HELP_VERSION'); +insert into help_keyword (help_keyword_id,name) values (173,'ORDER'); +insert into help_keyword (help_keyword_id,name) values (174,'USING'); +insert into help_keyword (help_keyword_id,name) values (175,'CONSTRAINT_CATALOG'); +insert into help_keyword (help_keyword_id,name) values (176,'MIDDLEINT'); +insert into help_keyword (help_keyword_id,name) values (177,'GRANT'); +insert into help_keyword (help_keyword_id,name) values (178,'UNSIGNED'); +insert into help_keyword (help_keyword_id,name) values (179,'DECIMAL'); +insert into help_keyword (help_keyword_id,name) values (180,'GEOMETRYFROMTEXT'); +insert into help_keyword (help_keyword_id,name) values (181,'INDEXES'); +insert into help_keyword (help_keyword_id,name) values (182,'FOREIGN'); +insert into help_keyword (help_keyword_id,name) values (183,'CACHE'); +insert into help_keyword (help_keyword_id,name) values (184,'HOSTS'); +insert into help_keyword (help_keyword_id,name) values (185,'MYSQL_ERRNO'); +insert into help_keyword (help_keyword_id,name) values (186,'COMMIT'); +insert into help_keyword (help_keyword_id,name) values (187,'SCHEMAS'); +insert into help_keyword (help_keyword_id,name) values (188,'LEADING'); +insert into help_keyword (help_keyword_id,name) values (189,'SNAPSHOT'); +insert into help_keyword (help_keyword_id,name) values (190,'CONSTRAINT_NAME'); +insert into help_keyword (help_keyword_id,name) values (191,'DECLARE'); +insert into help_keyword (help_keyword_id,name) values (192,'LOAD'); +insert into help_keyword (help_keyword_id,name) values (193,'SQL_CACHE'); +insert into help_keyword (help_keyword_id,name) values (194,'CONVERT'); +insert into help_keyword (help_keyword_id,name) values (195,'DYNAMIC'); +insert into help_keyword (help_keyword_id,name) values (196,'COLLATE'); +insert into help_keyword (help_keyword_id,name) values (197,'POLYGONFROMTEXT'); +insert into help_keyword (help_keyword_id,name) values (198,'BYTE'); +insert into help_keyword (help_keyword_id,name) values (199,'GLOBAL'); +insert into help_keyword (help_keyword_id,name) values (200,'LINESTRINGFROMWKB'); +insert into help_keyword (help_keyword_id,name) values (201,'WHEN'); +insert into help_keyword (help_keyword_id,name) values (202,'HAVING'); +insert into help_keyword (help_keyword_id,name) values (203,'AS'); +insert into help_keyword (help_keyword_id,name) values (204,'STARTING'); +insert into help_keyword (help_keyword_id,name) values (205,'RELOAD'); +insert into help_keyword (help_keyword_id,name) values (206,'AUTOCOMMIT'); +insert into help_keyword (help_keyword_id,name) values (207,'REVOKE'); +insert into help_keyword (help_keyword_id,name) values (208,'GRANTS'); +insert into help_keyword (help_keyword_id,name) values (209,'OUTER'); +insert into help_keyword (help_keyword_id,name) values (210,'CURSOR_NAME'); +insert into help_keyword (help_keyword_id,name) values (211,'FLOOR'); +insert into help_keyword (help_keyword_id,name) values (212,'EXPLAIN'); +insert into help_keyword (help_keyword_id,name) values (213,'WITH'); +insert into help_keyword (help_keyword_id,name) values (214,'AFTER'); +insert into help_keyword (help_keyword_id,name) values (215,'STD'); +insert into help_keyword (help_keyword_id,name) values (216,'CSV'); +insert into help_keyword (help_keyword_id,name) values (217,'DISABLE'); +insert into help_keyword (help_keyword_id,name) values (218,'UNINSTALL'); +insert into help_keyword (help_keyword_id,name) values (219,'OUTFILE'); +insert into help_keyword (help_keyword_id,name) values (220,'LOW_PRIORITY'); +insert into help_keyword (help_keyword_id,name) values (221,'FILE'); +insert into help_keyword (help_keyword_id,name) values (222,'NODEGROUP'); +insert into help_keyword (help_keyword_id,name) values (223,'SCHEMA'); +insert into help_keyword (help_keyword_id,name) values (224,'SONAME'); +insert into help_keyword (help_keyword_id,name) values (225,'POW'); +insert into help_keyword (help_keyword_id,name) values (226,'DUAL'); +insert into help_keyword (help_keyword_id,name) values (227,'MULTIPOINTFROMWKB'); +insert into help_keyword (help_keyword_id,name) values (228,'INDEX'); +insert into help_keyword (help_keyword_id,name) values (229,'MULTIPOINTFROMTEXT'); +insert into help_keyword (help_keyword_id,name) values (230,'DEFINER'); +insert into help_keyword (help_keyword_id,name) values (231,'MASTER_BIND'); +insert into help_keyword (help_keyword_id,name) values (232,'REMOVE'); +insert into help_keyword (help_keyword_id,name) values (233,'EXTENDED'); +insert into help_keyword (help_keyword_id,name) values (234,'MULTILINESTRINGFROMWKB'); +insert into help_keyword (help_keyword_id,name) values (235,'CROSS'); +insert into help_keyword (help_keyword_id,name) values (236,'CONTRIBUTORS'); +insert into help_keyword (help_keyword_id,name) values (237,'NATIONAL'); +insert into help_keyword (help_keyword_id,name) values (238,'GROUP'); +insert into help_keyword (help_keyword_id,name) values (239,'SHA'); +insert into help_keyword (help_keyword_id,name) values (240,'ONLINE'); +insert into help_keyword (help_keyword_id,name) values (241,'UNDO'); +insert into help_keyword (help_keyword_id,name) values (242,'IGNORE_SERVER_IDS'); +insert into help_keyword (help_keyword_id,name) values (243,'ZEROFILL'); +insert into help_keyword (help_keyword_id,name) values (244,'CLIENT'); +insert into help_keyword (help_keyword_id,name) values (245,'MASTER_PASSWORD'); +insert into help_keyword (help_keyword_id,name) values (246,'OWNER'); +insert into help_keyword (help_keyword_id,name) values (247,'RELAY_LOG_FILE'); +insert into help_keyword (help_keyword_id,name) values (248,'TRUE'); +insert into help_keyword (help_keyword_id,name) values (249,'CHARACTER'); +insert into help_keyword (help_keyword_id,name) values (250,'MASTER_USER'); +insert into help_keyword (help_keyword_id,name) values (251,'SCHEMA_NAME'); +insert into help_keyword (help_keyword_id,name) values (252,'TABLE'); +insert into help_keyword (help_keyword_id,name) values (253,'ENGINE'); +insert into help_keyword (help_keyword_id,name) values (254,'INSERT_METHOD'); +insert into help_keyword (help_keyword_id,name) values (255,'CASCADE'); +insert into help_keyword (help_keyword_id,name) values (256,'RELAY_LOG_POS'); +insert into help_keyword (help_keyword_id,name) values (257,'SQL_CALC_FOUND_ROWS'); +insert into help_keyword (help_keyword_id,name) values (258,'UNION'); +insert into help_keyword (help_keyword_id,name) values (259,'MYISAM'); +insert into help_keyword (help_keyword_id,name) values (260,'LEAVE'); +insert into help_keyword (help_keyword_id,name) values (261,'MODIFY'); +insert into help_keyword (help_keyword_id,name) values (262,'MATCH'); +insert into help_keyword (help_keyword_id,name) values (263,'MASTER_LOG_POS'); +insert into help_keyword (help_keyword_id,name) values (264,'DISTINCTROW'); +insert into help_keyword (help_keyword_id,name) values (265,'DESC'); +insert into help_keyword (help_keyword_id,name) values (266,'TIME'); +insert into help_keyword (help_keyword_id,name) values (267,'NUMERIC'); +insert into help_keyword (help_keyword_id,name) values (268,'EXPANSION'); +insert into help_keyword (help_keyword_id,name) values (269,'CODE'); +insert into help_keyword (help_keyword_id,name) values (270,'CURSOR'); +insert into help_keyword (help_keyword_id,name) values (271,'GEOMETRYCOLLECTIONFROMTEXT'); +insert into help_keyword (help_keyword_id,name) values (272,'CHAIN'); +insert into help_keyword (help_keyword_id,name) values (273,'LOGFILE'); +insert into help_keyword (help_keyword_id,name) values (274,'FLUSH'); +insert into help_keyword (help_keyword_id,name) values (275,'CREATE'); +insert into help_keyword (help_keyword_id,name) values (276,'DESCRIBE'); +insert into help_keyword (help_keyword_id,name) values (277,'EXTENT_SIZE'); +insert into help_keyword (help_keyword_id,name) values (278,'MAX_UPDATES_PER_HOUR'); +insert into help_keyword (help_keyword_id,name) values (279,'INT2'); +insert into help_keyword (help_keyword_id,name) values (280,'PROCESSLIST'); +insert into help_keyword (help_keyword_id,name) values (281,'ENDS'); +insert into help_keyword (help_keyword_id,name) values (282,'LOGS'); +insert into help_keyword (help_keyword_id,name) values (283,'DISCARD'); +insert into help_keyword (help_keyword_id,name) values (284,'HEAP'); +insert into help_keyword (help_keyword_id,name) values (285,'SOUNDS'); +insert into help_keyword (help_keyword_id,name) values (286,'BETWEEN'); +insert into help_keyword (help_keyword_id,name) values (287,'MULTILINESTRINGFROMTEXT'); +insert into help_keyword (help_keyword_id,name) values (288,'REPAIR'); +insert into help_keyword (help_keyword_id,name) values (289,'PACK_KEYS'); +insert into help_keyword (help_keyword_id,name) values (290,'FAST'); +insert into help_keyword (help_keyword_id,name) values (291,'VALUES'); +insert into help_keyword (help_keyword_id,name) values (292,'CALL'); +insert into help_keyword (help_keyword_id,name) values (293,'LOOP'); +insert into help_keyword (help_keyword_id,name) values (294,'VARCHARACTER'); +insert into help_keyword (help_keyword_id,name) values (295,'BEFORE'); +insert into help_keyword (help_keyword_id,name) values (296,'TRUNCATE'); +insert into help_keyword (help_keyword_id,name) values (297,'SHOW'); +insert into help_keyword (help_keyword_id,name) values (298,'ALL'); +insert into help_keyword (help_keyword_id,name) values (299,'REDUNDANT'); +insert into help_keyword (help_keyword_id,name) values (300,'USER_RESOURCES'); +insert into help_keyword (help_keyword_id,name) values (301,'PARTIAL'); +insert into help_keyword (help_keyword_id,name) values (302,'BINLOG'); +insert into help_keyword (help_keyword_id,name) values (303,'END'); +insert into help_keyword (help_keyword_id,name) values (304,'SECOND'); +insert into help_keyword (help_keyword_id,name) values (305,'AND'); +insert into help_keyword (help_keyword_id,name) values (306,'FLOAT8'); +insert into help_keyword (help_keyword_id,name) values (307,'PREV'); +insert into help_keyword (help_keyword_id,name) values (308,'HOUR'); +insert into help_keyword (help_keyword_id,name) values (309,'SELECT'); +insert into help_keyword (help_keyword_id,name) values (310,'DATABASES'); +insert into help_keyword (help_keyword_id,name) values (311,'OR'); +insert into help_keyword (help_keyword_id,name) values (312,'IDENTIFIED'); +insert into help_keyword (help_keyword_id,name) values (313,'WRAPPER'); +insert into help_keyword (help_keyword_id,name) values (314,'MASTER_SSL_CIPHER'); +insert into help_keyword (help_keyword_id,name) values (315,'SQL_SLAVE_SKIP_COUNTER'); +insert into help_keyword (help_keyword_id,name) values (316,'BOTH'); +insert into help_keyword (help_keyword_id,name) values (317,'BOOL'); +insert into help_keyword (help_keyword_id,name) values (318,'YEAR'); +insert into help_keyword (help_keyword_id,name) values (319,'MASTER_PORT'); +insert into help_keyword (help_keyword_id,name) values (320,'CONCURRENT'); +insert into help_keyword (help_keyword_id,name) values (321,'HELP'); +insert into help_keyword (help_keyword_id,name) values (322,'UNIQUE'); +insert into help_keyword (help_keyword_id,name) values (323,'TRIGGERS'); +insert into help_keyword (help_keyword_id,name) values (324,'PROCESS'); +insert into help_keyword (help_keyword_id,name) values (325,'OPTIONS'); +insert into help_keyword (help_keyword_id,name) values (326,'RESIGNAL'); +insert into help_keyword (help_keyword_id,name) values (327,'CONSISTENT'); +insert into help_keyword (help_keyword_id,name) values (328,'MASTER_SSL'); +insert into help_keyword (help_keyword_id,name) values (329,'DATE_ADD'); +insert into help_keyword (help_keyword_id,name) values (330,'MAX_CONNECTIONS_PER_HOUR'); +insert into help_keyword (help_keyword_id,name) values (331,'LIKE'); +insert into help_keyword (help_keyword_id,name) values (332,'PLUGIN'); +insert into help_keyword (help_keyword_id,name) values (333,'FETCH'); +insert into help_keyword (help_keyword_id,name) values (334,'IN'); +insert into help_keyword (help_keyword_id,name) values (335,'COLUMN'); +insert into help_keyword (help_keyword_id,name) values (336,'DUMPFILE'); +insert into help_keyword (help_keyword_id,name) values (337,'USAGE'); +insert into help_keyword (help_keyword_id,name) values (338,'EXECUTE'); +insert into help_keyword (help_keyword_id,name) values (339,'MEMORY'); +insert into help_keyword (help_keyword_id,name) values (340,'CEIL'); +insert into help_keyword (help_keyword_id,name) values (341,'QUERY'); +insert into help_keyword (help_keyword_id,name) values (342,'MASTER_HOST'); +insert into help_keyword (help_keyword_id,name) values (343,'LINES'); +insert into help_keyword (help_keyword_id,name) values (344,'SQL_THREAD'); +insert into help_keyword (help_keyword_id,name) values (345,'SERVER'); +insert into help_keyword (help_keyword_id,name) values (346,'MAX_QUERIES_PER_HOUR'); +insert into help_keyword (help_keyword_id,name) values (347,'MASTER_SSL_CERT'); +insert into help_keyword (help_keyword_id,name) values (348,'MULTIPOLYGONFROMWKB'); +insert into help_keyword (help_keyword_id,name) values (349,'TRANSACTION'); +insert into help_keyword (help_keyword_id,name) values (350,'DAY_MINUTE'); +insert into help_keyword (help_keyword_id,name) values (351,'STDDEV'); +insert into help_keyword (help_keyword_id,name) values (352,'DATE_SUB'); +insert into help_keyword (help_keyword_id,name) values (353,'REBUILD'); +insert into help_keyword (help_keyword_id,name) values (354,'GEOMETRYFROMWKB'); +insert into help_keyword (help_keyword_id,name) values (355,'INT1'); +insert into help_keyword (help_keyword_id,name) values (356,'RENAME'); +insert into help_keyword (help_keyword_id,name) values (357,'PARSER'); +insert into help_keyword (help_keyword_id,name) values (358,'RIGHT'); +insert into help_keyword (help_keyword_id,name) values (359,'ALTER'); +insert into help_keyword (help_keyword_id,name) values (360,'MAX_ROWS'); +insert into help_keyword (help_keyword_id,name) values (361,'SOCKET'); +insert into help_keyword (help_keyword_id,name) values (362,'STRAIGHT_JOIN'); +insert into help_keyword (help_keyword_id,name) values (363,'NATURAL'); +insert into help_keyword (help_keyword_id,name) values (364,'VARIABLES'); +insert into help_keyword (help_keyword_id,name) values (365,'ESCAPED'); +insert into help_keyword (help_keyword_id,name) values (366,'SHA1'); +insert into help_keyword (help_keyword_id,name) values (367,'KEY_BLOCK_SIZE'); +insert into help_keyword (help_keyword_id,name) values (368,'PASSWORD'); +insert into help_keyword (help_keyword_id,name) values (369,'OFFSET'); +insert into help_keyword (help_keyword_id,name) values (370,'CHAR'); +insert into help_keyword (help_keyword_id,name) values (371,'NEXT'); +insert into help_keyword (help_keyword_id,name) values (372,'ERRORS'); +insert into help_keyword (help_keyword_id,name) values (373,'SQL_LOG_BIN'); +insert into help_keyword (help_keyword_id,name) values (374,'TEMPORARY'); +insert into help_keyword (help_keyword_id,name) values (375,'COMMITTED'); +insert into help_keyword (help_keyword_id,name) values (376,'SQL_SMALL_RESULT'); +insert into help_keyword (help_keyword_id,name) values (377,'UPGRADE'); +insert into help_keyword (help_keyword_id,name) values (378,'BEGIN'); +insert into help_keyword (help_keyword_id,name) values (379,'DELAY_KEY_WRITE'); +insert into help_keyword (help_keyword_id,name) values (380,'PROFILE'); +insert into help_keyword (help_keyword_id,name) values (381,'MEDIUM'); +insert into help_keyword (help_keyword_id,name) values (382,'INTERVAL'); +insert into help_keyword (help_keyword_id,name) values (383,'SSL'); +insert into help_keyword (help_keyword_id,name) values (384,'DAY_HOUR'); +insert into help_keyword (help_keyword_id,name) values (385,'NAME'); +insert into help_keyword (help_keyword_id,name) values (386,'REFERENCES'); +insert into help_keyword (help_keyword_id,name) values (387,'AES_ENCRYPT'); +insert into help_keyword (help_keyword_id,name) values (388,'STORAGE'); +insert into help_keyword (help_keyword_id,name) values (389,'ISOLATION'); +insert into help_keyword (help_keyword_id,name) values (390,'CEILING'); +insert into help_keyword (help_keyword_id,name) values (391,'EVERY'); +insert into help_keyword (help_keyword_id,name) values (392,'INT8'); +insert into help_keyword (help_keyword_id,name) values (393,'AUTHORS'); +insert into help_keyword (help_keyword_id,name) values (394,'RESTRICT'); +insert into help_keyword (help_keyword_id,name) values (395,'UNCOMMITTED'); +insert into help_keyword (help_keyword_id,name) values (396,'LINESTRINGFROMTEXT'); +insert into help_keyword (help_keyword_id,name) values (397,'IS'); +insert into help_keyword (help_keyword_id,name) values (398,'NOT'); +insert into help_keyword (help_keyword_id,name) values (399,'ANALYSE'); +insert into help_keyword (help_keyword_id,name) values (400,'DATAFILE'); +insert into help_keyword (help_keyword_id,name) values (401,'DES_KEY_FILE'); +insert into help_keyword (help_keyword_id,name) values (402,'SIGNAL'); +insert into help_keyword (help_keyword_id,name) values (403,'COMPRESSED'); +insert into help_keyword (help_keyword_id,name) values (404,'START'); +insert into help_keyword (help_keyword_id,name) values (405,'PLUGINS'); +insert into help_keyword (help_keyword_id,name) values (406,'SAVEPOINT'); +insert into help_keyword (help_keyword_id,name) values (407,'IF'); +insert into help_keyword (help_keyword_id,name) values (408,'ROWS'); +insert into help_keyword (help_keyword_id,name) values (409,'PRIMARY'); +insert into help_keyword (help_keyword_id,name) values (410,'PURGE'); +insert into help_keyword (help_keyword_id,name) values (411,'LAST'); +insert into help_keyword (help_keyword_id,name) values (412,'USER'); +insert into help_keyword (help_keyword_id,name) values (413,'EXIT'); +insert into help_keyword (help_keyword_id,name) values (414,'KEYS'); +insert into help_keyword (help_keyword_id,name) values (415,'LIMIT'); +insert into help_keyword (help_keyword_id,name) values (416,'KEY'); +insert into help_keyword (help_keyword_id,name) values (417,'MERGE'); +insert into help_keyword (help_keyword_id,name) values (418,'UNTIL'); +insert into help_keyword (help_keyword_id,name) values (419,'SQL_NO_CACHE'); +insert into help_keyword (help_keyword_id,name) values (420,'DELAYED'); +insert into help_keyword (help_keyword_id,name) values (421,'CONSTRAINT_SCHEMA'); +insert into help_keyword (help_keyword_id,name) values (422,'ANALYZE'); +insert into help_keyword (help_keyword_id,name) values (423,'CONSTRAINT'); +insert into help_keyword (help_keyword_id,name) values (424,'SERIAL'); +insert into help_keyword (help_keyword_id,name) values (425,'ACTION'); +insert into help_keyword (help_keyword_id,name) values (426,'WRITE'); +insert into help_keyword (help_keyword_id,name) values (427,'INITIAL_SIZE'); +insert into help_keyword (help_keyword_id,name) values (428,'SESSION'); +insert into help_keyword (help_keyword_id,name) values (429,'DATABASE'); +insert into help_keyword (help_keyword_id,name) values (430,'NULL'); +insert into help_keyword (help_keyword_id,name) values (431,'POWER'); +insert into help_keyword (help_keyword_id,name) values (432,'USE_FRM'); +insert into help_keyword (help_keyword_id,name) values (433,'TERMINATED'); +insert into help_keyword (help_keyword_id,name) values (434,'SLAVE'); +insert into help_keyword (help_keyword_id,name) values (435,'NVARCHAR'); +insert into help_keyword (help_keyword_id,name) values (436,'ASC'); +insert into help_keyword (help_keyword_id,name) values (437,'RETURN'); +insert into help_keyword (help_keyword_id,name) values (438,'OPTIONALLY'); +insert into help_keyword (help_keyword_id,name) values (439,'ENABLE'); +insert into help_keyword (help_keyword_id,name) values (440,'DIRECTORY'); +insert into help_keyword (help_keyword_id,name) values (441,'MAX_USER_CONNECTIONS'); +insert into help_keyword (help_keyword_id,name) values (442,'WHILE'); +insert into help_keyword (help_keyword_id,name) values (443,'LOCAL'); +insert into help_keyword (help_keyword_id,name) values (444,'DISTINCT'); +insert into help_keyword (help_keyword_id,name) values (445,'AES_DECRYPT'); +insert into help_keyword (help_keyword_id,name) values (446,'MASTER_SSL_KEY'); +insert into help_keyword (help_keyword_id,name) values (447,'NONE'); +insert into help_keyword (help_keyword_id,name) values (448,'TABLES'); +insert into help_keyword (help_keyword_id,name) values (449,'<>'); +insert into help_keyword (help_keyword_id,name) values (450,'RLIKE'); +insert into help_keyword (help_keyword_id,name) values (451,'TRIGGER'); +insert into help_keyword (help_keyword_id,name) values (452,'COLLATION'); +insert into help_keyword (help_keyword_id,name) values (453,'SHUTDOWN'); +insert into help_keyword (help_keyword_id,name) values (454,'HIGH_PRIORITY'); +insert into help_keyword (help_keyword_id,name) values (455,'BTREE'); +insert into help_keyword (help_keyword_id,name) values (456,'FIRST'); +insert into help_keyword (help_keyword_id,name) values (457,'COALESCE'); +insert into help_keyword (help_keyword_id,name) values (458,'WAIT'); +insert into help_keyword (help_keyword_id,name) values (459,'CATALOG_NAME'); +insert into help_keyword (help_keyword_id,name) values (460,'MASTER'); +insert into help_keyword (help_keyword_id,name) values (461,'FIXED'); +insert into help_keyword (help_keyword_id,name) values (462,'MULTIPOLYGONFROMTEXT'); +insert into help_keyword (help_keyword_id,name) values (463,'ROW_FORMAT'); + +insert into help_relation (help_topic_id,help_keyword_id) values (1,0); +insert into help_relation (help_topic_id,help_keyword_id) values (356,0); +insert into help_relation (help_topic_id,help_keyword_id) values (473,1); +insert into help_relation (help_topic_id,help_keyword_id) values (232,2); +insert into help_relation (help_topic_id,help_keyword_id) values (447,3); +insert into help_relation (help_topic_id,help_keyword_id) values (3,4); +insert into help_relation (help_topic_id,help_keyword_id) values (130,4); +insert into help_relation (help_topic_id,help_keyword_id) values (421,4); +insert into help_relation (help_topic_id,help_keyword_id) values (89,5); +insert into help_relation (help_topic_id,help_keyword_id) values (406,6); +insert into help_relation (help_topic_id,help_keyword_id) values (89,6); +insert into help_relation (help_topic_id,help_keyword_id) values (97,7); +insert into help_relation (help_topic_id,help_keyword_id) values (89,8); +insert into help_relation (help_topic_id,help_keyword_id) values (185,9); +insert into help_relation (help_topic_id,help_keyword_id) values (430,10); +insert into help_relation (help_topic_id,help_keyword_id) values (347,11); +insert into help_relation (help_topic_id,help_keyword_id) values (21,11); +insert into help_relation (help_topic_id,help_keyword_id) values (468,11); +insert into help_relation (help_topic_id,help_keyword_id) values (421,11); +insert into help_relation (help_topic_id,help_keyword_id) values (463,11); +insert into help_relation (help_topic_id,help_keyword_id) values (406,12); +insert into help_relation (help_topic_id,help_keyword_id) values (89,12); +insert into help_relation (help_topic_id,help_keyword_id) values (146,13); +insert into help_relation (help_topic_id,help_keyword_id) values (230,14); +insert into help_relation (help_topic_id,help_keyword_id) values (88,15); +insert into help_relation (help_topic_id,help_keyword_id) values (356,15); +insert into help_relation (help_topic_id,help_keyword_id) values (18,16); +insert into help_relation (help_topic_id,help_keyword_id) values (134,16); +insert into help_relation (help_topic_id,help_keyword_id) values (347,16); +insert into help_relation (help_topic_id,help_keyword_id) values (106,16); +insert into help_relation (help_topic_id,help_keyword_id) values (500,17); +insert into help_relation (help_topic_id,help_keyword_id) values (97,17); +insert into help_relation (help_topic_id,help_keyword_id) values (380,18); +insert into help_relation (help_topic_id,help_keyword_id) values (459,19); +insert into help_relation (help_topic_id,help_keyword_id) values (3,19); +insert into help_relation (help_topic_id,help_keyword_id) values (374,19); +insert into help_relation (help_topic_id,help_keyword_id) values (104,19); +insert into help_relation (help_topic_id,help_keyword_id) values (243,19); +insert into help_relation (help_topic_id,help_keyword_id) values (185,20); +insert into help_relation (help_topic_id,help_keyword_id) values (356,21); +insert into help_relation (help_topic_id,help_keyword_id) values (478,22); +insert into help_relation (help_topic_id,help_keyword_id) values (34,22); +insert into help_relation (help_topic_id,help_keyword_id) values (237,22); +insert into help_relation (help_topic_id,help_keyword_id) values (300,22); +insert into help_relation (help_topic_id,help_keyword_id) values (9,22); +insert into help_relation (help_topic_id,help_keyword_id) values (415,22); +insert into help_relation (help_topic_id,help_keyword_id) values (276,22); +insert into help_relation (help_topic_id,help_keyword_id) values (416,22); +insert into help_relation (help_topic_id,help_keyword_id) values (30,22); +insert into help_relation (help_topic_id,help_keyword_id) values (87,22); +insert into help_relation (help_topic_id,help_keyword_id) values (263,22); +insert into help_relation (help_topic_id,help_keyword_id) values (186,22); +insert into help_relation (help_topic_id,help_keyword_id) values (405,22); +insert into help_relation (help_topic_id,help_keyword_id) values (331,22); +insert into help_relation (help_topic_id,help_keyword_id) values (463,22); +insert into help_relation (help_topic_id,help_keyword_id) values (108,23); +insert into help_relation (help_topic_id,help_keyword_id) values (424,24); +insert into help_relation (help_topic_id,help_keyword_id) values (122,24); +insert into help_relation (help_topic_id,help_keyword_id) values (170,24); +insert into help_relation (help_topic_id,help_keyword_id) values (376,25); +insert into help_relation (help_topic_id,help_keyword_id) values (82,26); +insert into help_relation (help_topic_id,help_keyword_id) values (104,27); +insert into help_relation (help_topic_id,help_keyword_id) values (199,28); +insert into help_relation (help_topic_id,help_keyword_id) values (36,29); +insert into help_relation (help_topic_id,help_keyword_id) values (347,30); +insert into help_relation (help_topic_id,help_keyword_id) values (468,30); +insert into help_relation (help_topic_id,help_keyword_id) values (376,31); +insert into help_relation (help_topic_id,help_keyword_id) values (199,32); +insert into help_relation (help_topic_id,help_keyword_id) values (35,33); +insert into help_relation (help_topic_id,help_keyword_id) values (237,33); +insert into help_relation (help_topic_id,help_keyword_id) values (36,34); +insert into help_relation (help_topic_id,help_keyword_id) values (356,34); +insert into help_relation (help_topic_id,help_keyword_id) values (468,35); +insert into help_relation (help_topic_id,help_keyword_id) values (417,36); +insert into help_relation (help_topic_id,help_keyword_id) values (468,36); +insert into help_relation (help_topic_id,help_keyword_id) values (463,36); +insert into help_relation (help_topic_id,help_keyword_id) values (347,37); +insert into help_relation (help_topic_id,help_keyword_id) values (21,37); +insert into help_relation (help_topic_id,help_keyword_id) values (294,37); +insert into help_relation (help_topic_id,help_keyword_id) values (468,37); +insert into help_relation (help_topic_id,help_keyword_id) values (451,37); +insert into help_relation (help_topic_id,help_keyword_id) values (500,38); +insert into help_relation (help_topic_id,help_keyword_id) values (130,39); +insert into help_relation (help_topic_id,help_keyword_id) values (48,39); +insert into help_relation (help_topic_id,help_keyword_id) values (468,39); +insert into help_relation (help_topic_id,help_keyword_id) values (83,39); +insert into help_relation (help_topic_id,help_keyword_id) values (199,39); +insert into help_relation (help_topic_id,help_keyword_id) values (356,39); +insert into help_relation (help_topic_id,help_keyword_id) values (421,39); +insert into help_relation (help_topic_id,help_keyword_id) values (77,39); +insert into help_relation (help_topic_id,help_keyword_id) values (361,39); +insert into help_relation (help_topic_id,help_keyword_id) values (463,39); +insert into help_relation (help_topic_id,help_keyword_id) values (472,40); +insert into help_relation (help_topic_id,help_keyword_id) values (468,40); +insert into help_relation (help_topic_id,help_keyword_id) values (376,41); +insert into help_relation (help_topic_id,help_keyword_id) values (468,42); +insert into help_relation (help_topic_id,help_keyword_id) values (463,42); +insert into help_relation (help_topic_id,help_keyword_id) values (473,43); +insert into help_relation (help_topic_id,help_keyword_id) values (468,43); +insert into help_relation (help_topic_id,help_keyword_id) values (212,43); +insert into help_relation (help_topic_id,help_keyword_id) values (421,43); +insert into help_relation (help_topic_id,help_keyword_id) values (376,44); +insert into help_relation (help_topic_id,help_keyword_id) values (356,45); +insert into help_relation (help_topic_id,help_keyword_id) values (314,46); +insert into help_relation (help_topic_id,help_keyword_id) values (97,46); +insert into help_relation (help_topic_id,help_keyword_id) values (361,47); +insert into help_relation (help_topic_id,help_keyword_id) values (459,48); +insert into help_relation (help_topic_id,help_keyword_id) values (374,48); +insert into help_relation (help_topic_id,help_keyword_id) values (185,49); +insert into help_relation (help_topic_id,help_keyword_id) values (472,50); +insert into help_relation (help_topic_id,help_keyword_id) values (48,50); +insert into help_relation (help_topic_id,help_keyword_id) values (468,50); +insert into help_relation (help_topic_id,help_keyword_id) values (406,51); +insert into help_relation (help_topic_id,help_keyword_id) values (472,51); +insert into help_relation (help_topic_id,help_keyword_id) values (1,51); +insert into help_relation (help_topic_id,help_keyword_id) values (89,51); +insert into help_relation (help_topic_id,help_keyword_id) values (459,52); +insert into help_relation (help_topic_id,help_keyword_id) values (374,52); +insert into help_relation (help_topic_id,help_keyword_id) values (176,53); +insert into help_relation (help_topic_id,help_keyword_id) values (468,53); +insert into help_relation (help_topic_id,help_keyword_id) values (51,54); +insert into help_relation (help_topic_id,help_keyword_id) values (106,54); +insert into help_relation (help_topic_id,help_keyword_id) values (199,55); +insert into help_relation (help_topic_id,help_keyword_id) values (194,56); +insert into help_relation (help_topic_id,help_keyword_id) values (55,56); +insert into help_relation (help_topic_id,help_keyword_id) values (1,56); +insert into help_relation (help_topic_id,help_keyword_id) values (459,57); +insert into help_relation (help_topic_id,help_keyword_id) values (374,57); +insert into help_relation (help_topic_id,help_keyword_id) values (48,58); +insert into help_relation (help_topic_id,help_keyword_id) values (83,58); +insert into help_relation (help_topic_id,help_keyword_id) values (106,58); +insert into help_relation (help_topic_id,help_keyword_id) values (193,59); +insert into help_relation (help_topic_id,help_keyword_id) values (249,59); +insert into help_relation (help_topic_id,help_keyword_id) values (199,59); +insert into help_relation (help_topic_id,help_keyword_id) values (210,60); +insert into help_relation (help_topic_id,help_keyword_id) values (463,60); +insert into help_relation (help_topic_id,help_keyword_id) values (406,61); +insert into help_relation (help_topic_id,help_keyword_id) values (89,61); +insert into help_relation (help_topic_id,help_keyword_id) values (300,61); +insert into help_relation (help_topic_id,help_keyword_id) values (358,61); +insert into help_relation (help_topic_id,help_keyword_id) values (199,62); +insert into help_relation (help_topic_id,help_keyword_id) values (356,63); +insert into help_relation (help_topic_id,help_keyword_id) values (1,64); +insert into help_relation (help_topic_id,help_keyword_id) values (130,64); +insert into help_relation (help_topic_id,help_keyword_id) values (356,64); +insert into help_relation (help_topic_id,help_keyword_id) values (104,64); +insert into help_relation (help_topic_id,help_keyword_id) values (83,64); +insert into help_relation (help_topic_id,help_keyword_id) values (421,64); +insert into help_relation (help_topic_id,help_keyword_id) values (463,64); +insert into help_relation (help_topic_id,help_keyword_id) values (66,65); +insert into help_relation (help_topic_id,help_keyword_id) values (466,66); +insert into help_relation (help_topic_id,help_keyword_id) values (417,66); +insert into help_relation (help_topic_id,help_keyword_id) values (48,66); +insert into help_relation (help_topic_id,help_keyword_id) values (230,67); +insert into help_relation (help_topic_id,help_keyword_id) values (87,68); +insert into help_relation (help_topic_id,help_keyword_id) values (210,68); +insert into help_relation (help_topic_id,help_keyword_id) values (463,68); +insert into help_relation (help_topic_id,help_keyword_id) values (199,69); +insert into help_relation (help_topic_id,help_keyword_id) values (194,70); +insert into help_relation (help_topic_id,help_keyword_id) values (468,71); +insert into help_relation (help_topic_id,help_keyword_id) values (91,72); +insert into help_relation (help_topic_id,help_keyword_id) values (482,72); +insert into help_relation (help_topic_id,help_keyword_id) values (385,73); +insert into help_relation (help_topic_id,help_keyword_id) values (447,74); +insert into help_relation (help_topic_id,help_keyword_id) values (1,75); +insert into help_relation (help_topic_id,help_keyword_id) values (39,76); +insert into help_relation (help_topic_id,help_keyword_id) values (269,76); +insert into help_relation (help_topic_id,help_keyword_id) values (230,76); +insert into help_relation (help_topic_id,help_keyword_id) values (269,77); +insert into help_relation (help_topic_id,help_keyword_id) values (460,77); +insert into help_relation (help_topic_id,help_keyword_id) values (185,77); +insert into help_relation (help_topic_id,help_keyword_id) values (185,78); +insert into help_relation (help_topic_id,help_keyword_id) values (463,78); +insert into help_relation (help_topic_id,help_keyword_id) values (406,79); +insert into help_relation (help_topic_id,help_keyword_id) values (89,79); +insert into help_relation (help_topic_id,help_keyword_id) values (376,80); +insert into help_relation (help_topic_id,help_keyword_id) values (472,81); +insert into help_relation (help_topic_id,help_keyword_id) values (356,81); +insert into help_relation (help_topic_id,help_keyword_id) values (104,81); +insert into help_relation (help_topic_id,help_keyword_id) values (83,81); +insert into help_relation (help_topic_id,help_keyword_id) values (406,82); +insert into help_relation (help_topic_id,help_keyword_id) values (89,82); +insert into help_relation (help_topic_id,help_keyword_id) values (459,83); +insert into help_relation (help_topic_id,help_keyword_id) values (374,83); +insert into help_relation (help_topic_id,help_keyword_id) values (304,84); +insert into help_relation (help_topic_id,help_keyword_id) values (3,84); +insert into help_relation (help_topic_id,help_keyword_id) values (356,84); +insert into help_relation (help_topic_id,help_keyword_id) values (104,84); +insert into help_relation (help_topic_id,help_keyword_id) values (468,85); +insert into help_relation (help_topic_id,help_keyword_id) values (257,86); +insert into help_relation (help_topic_id,help_keyword_id) values (194,87); +insert into help_relation (help_topic_id,help_keyword_id) values (376,88); +insert into help_relation (help_topic_id,help_keyword_id) values (129,89); +insert into help_relation (help_topic_id,help_keyword_id) values (146,90); +insert into help_relation (help_topic_id,help_keyword_id) values (460,90); +insert into help_relation (help_topic_id,help_keyword_id) values (17,91); +insert into help_relation (help_topic_id,help_keyword_id) values (416,91); +insert into help_relation (help_topic_id,help_keyword_id) values (347,91); +insert into help_relation (help_topic_id,help_keyword_id) values (439,91); +insert into help_relation (help_topic_id,help_keyword_id) values (328,91); +insert into help_relation (help_topic_id,help_keyword_id) values (356,91); +insert into help_relation (help_topic_id,help_keyword_id) values (189,91); +insert into help_relation (help_topic_id,help_keyword_id) values (302,91); +insert into help_relation (help_topic_id,help_keyword_id) values (488,91); +insert into help_relation (help_topic_id,help_keyword_id) values (188,92); +insert into help_relation (help_topic_id,help_keyword_id) values (99,92); +insert into help_relation (help_topic_id,help_keyword_id) values (421,93); +insert into help_relation (help_topic_id,help_keyword_id) values (463,93); +insert into help_relation (help_topic_id,help_keyword_id) values (88,94); +insert into help_relation (help_topic_id,help_keyword_id) values (401,95); +insert into help_relation (help_topic_id,help_keyword_id) values (468,95); +insert into help_relation (help_topic_id,help_keyword_id) values (69,96); +insert into help_relation (help_topic_id,help_keyword_id) values (433,96); +insert into help_relation (help_topic_id,help_keyword_id) values (330,96); +insert into help_relation (help_topic_id,help_keyword_id) values (285,97); +insert into help_relation (help_topic_id,help_keyword_id) values (85,98); +insert into help_relation (help_topic_id,help_keyword_id) values (57,98); +insert into help_relation (help_topic_id,help_keyword_id) values (28,98); +insert into help_relation (help_topic_id,help_keyword_id) values (195,99); +insert into help_relation (help_topic_id,help_keyword_id) values (104,99); +insert into help_relation (help_topic_id,help_keyword_id) values (486,99); +insert into help_relation (help_topic_id,help_keyword_id) values (301,99); +insert into help_relation (help_topic_id,help_keyword_id) values (347,100); +insert into help_relation (help_topic_id,help_keyword_id) values (282,100); +insert into help_relation (help_topic_id,help_keyword_id) values (313,101); +insert into help_relation (help_topic_id,help_keyword_id) values (106,101); +insert into help_relation (help_topic_id,help_keyword_id) values (473,102); +insert into help_relation (help_topic_id,help_keyword_id) values (376,103); +insert into help_relation (help_topic_id,help_keyword_id) values (155,104); +insert into help_relation (help_topic_id,help_keyword_id) values (30,104); +insert into help_relation (help_topic_id,help_keyword_id) values (89,104); +insert into help_relation (help_topic_id,help_keyword_id) values (300,104); +insert into help_relation (help_topic_id,help_keyword_id) values (186,104); +insert into help_relation (help_topic_id,help_keyword_id) values (9,104); +insert into help_relation (help_topic_id,help_keyword_id) values (276,104); +insert into help_relation (help_topic_id,help_keyword_id) values (347,105); +insert into help_relation (help_topic_id,help_keyword_id) values (365,105); +insert into help_relation (help_topic_id,help_keyword_id) values (109,106); +insert into help_relation (help_topic_id,help_keyword_id) values (146,107); +insert into help_relation (help_topic_id,help_keyword_id) values (460,107); +insert into help_relation (help_topic_id,help_keyword_id) values (88,108); +insert into help_relation (help_topic_id,help_keyword_id) values (24,108); +insert into help_relation (help_topic_id,help_keyword_id) values (113,109); +insert into help_relation (help_topic_id,help_keyword_id) values (174,109); +insert into help_relation (help_topic_id,help_keyword_id) values (3,110); +insert into help_relation (help_topic_id,help_keyword_id) values (155,110); +insert into help_relation (help_topic_id,help_keyword_id) values (468,110); +insert into help_relation (help_topic_id,help_keyword_id) values (200,110); +insert into help_relation (help_topic_id,help_keyword_id) values (212,110); +insert into help_relation (help_topic_id,help_keyword_id) values (104,110); +insert into help_relation (help_topic_id,help_keyword_id) values (243,110); +insert into help_relation (help_topic_id,help_keyword_id) values (463,110); +insert into help_relation (help_topic_id,help_keyword_id) values (463,111); +insert into help_relation (help_topic_id,help_keyword_id) values (466,112); +insert into help_relation (help_topic_id,help_keyword_id) values (326,112); +insert into help_relation (help_topic_id,help_keyword_id) values (115,112); +insert into help_relation (help_topic_id,help_keyword_id) values (470,112); +insert into help_relation (help_topic_id,help_keyword_id) values (115,113); +insert into help_relation (help_topic_id,help_keyword_id) values (463,113); +insert into help_relation (help_topic_id,help_keyword_id) values (459,114); +insert into help_relation (help_topic_id,help_keyword_id) values (374,114); +insert into help_relation (help_topic_id,help_keyword_id) values (38,115); +insert into help_relation (help_topic_id,help_keyword_id) values (119,115); +insert into help_relation (help_topic_id,help_keyword_id) values (264,115); +insert into help_relation (help_topic_id,help_keyword_id) values (151,115); +insert into help_relation (help_topic_id,help_keyword_id) values (459,116); +insert into help_relation (help_topic_id,help_keyword_id) values (374,116); +insert into help_relation (help_topic_id,help_keyword_id) values (419,117); +insert into help_relation (help_topic_id,help_keyword_id) values (124,118); +insert into help_relation (help_topic_id,help_keyword_id) values (406,119); +insert into help_relation (help_topic_id,help_keyword_id) values (89,119); +insert into help_relation (help_topic_id,help_keyword_id) values (125,119); +insert into help_relation (help_topic_id,help_keyword_id) values (496,119); +insert into help_relation (help_topic_id,help_keyword_id) values (221,120); +insert into help_relation (help_topic_id,help_keyword_id) values (333,121); +insert into help_relation (help_topic_id,help_keyword_id) values (129,121); +insert into help_relation (help_topic_id,help_keyword_id) values (3,121); +insert into help_relation (help_topic_id,help_keyword_id) values (155,121); +insert into help_relation (help_topic_id,help_keyword_id) values (130,121); +insert into help_relation (help_topic_id,help_keyword_id) values (459,121); +insert into help_relation (help_topic_id,help_keyword_id) values (374,121); +insert into help_relation (help_topic_id,help_keyword_id) values (494,121); +insert into help_relation (help_topic_id,help_keyword_id) values (212,121); +insert into help_relation (help_topic_id,help_keyword_id) values (104,121); +insert into help_relation (help_topic_id,help_keyword_id) values (463,121); +insert into help_relation (help_topic_id,help_keyword_id) values (347,121); +insert into help_relation (help_topic_id,help_keyword_id) values (468,121); +insert into help_relation (help_topic_id,help_keyword_id) values (83,121); +insert into help_relation (help_topic_id,help_keyword_id) values (146,121); +insert into help_relation (help_topic_id,help_keyword_id) values (472,121); +insert into help_relation (help_topic_id,help_keyword_id) values (182,121); +insert into help_relation (help_topic_id,help_keyword_id) values (356,121); +insert into help_relation (help_topic_id,help_keyword_id) values (421,121); +insert into help_relation (help_topic_id,help_keyword_id) values (477,121); +insert into help_relation (help_topic_id,help_keyword_id) values (199,122); +insert into help_relation (help_topic_id,help_keyword_id) values (262,123); +insert into help_relation (help_topic_id,help_keyword_id) values (132,123); +insert into help_relation (help_topic_id,help_keyword_id) values (230,123); +insert into help_relation (help_topic_id,help_keyword_id) values (376,123); +insert into help_relation (help_topic_id,help_keyword_id) values (347,124); +insert into help_relation (help_topic_id,help_keyword_id) values (336,124); +insert into help_relation (help_topic_id,help_keyword_id) values (365,124); +insert into help_relation (help_topic_id,help_keyword_id) values (223,124); +insert into help_relation (help_topic_id,help_keyword_id) values (58,124); +insert into help_relation (help_topic_id,help_keyword_id) values (328,124); +insert into help_relation (help_topic_id,help_keyword_id) values (137,124); +insert into help_relation (help_topic_id,help_keyword_id) values (215,124); +insert into help_relation (help_topic_id,help_keyword_id) values (468,125); +insert into help_relation (help_topic_id,help_keyword_id) values (210,125); +insert into help_relation (help_topic_id,help_keyword_id) values (463,125); +insert into help_relation (help_topic_id,help_keyword_id) values (194,126); +insert into help_relation (help_topic_id,help_keyword_id) values (406,126); +insert into help_relation (help_topic_id,help_keyword_id) values (89,126); +insert into help_relation (help_topic_id,help_keyword_id) values (468,126); +insert into help_relation (help_topic_id,help_keyword_id) values (210,126); +insert into help_relation (help_topic_id,help_keyword_id) values (185,127); +insert into help_relation (help_topic_id,help_keyword_id) values (1,128); +insert into help_relation (help_topic_id,help_keyword_id) values (424,129); +insert into help_relation (help_topic_id,help_keyword_id) values (52,130); +insert into help_relation (help_topic_id,help_keyword_id) values (185,131); +insert into help_relation (help_topic_id,help_keyword_id) values (468,132); +insert into help_relation (help_topic_id,help_keyword_id) values (314,133); +insert into help_relation (help_topic_id,help_keyword_id) values (199,134); +insert into help_relation (help_topic_id,help_keyword_id) values (455,135); +insert into help_relation (help_topic_id,help_keyword_id) values (255,136); +insert into help_relation (help_topic_id,help_keyword_id) values (285,137); +insert into help_relation (help_topic_id,help_keyword_id) values (249,138); +insert into help_relation (help_topic_id,help_keyword_id) values (199,138); +insert into help_relation (help_topic_id,help_keyword_id) values (463,139); +insert into help_relation (help_topic_id,help_keyword_id) values (85,140); +insert into help_relation (help_topic_id,help_keyword_id) values (57,140); +insert into help_relation (help_topic_id,help_keyword_id) values (237,141); +insert into help_relation (help_topic_id,help_keyword_id) values (52,142); +insert into help_relation (help_topic_id,help_keyword_id) values (324,142); +insert into help_relation (help_topic_id,help_keyword_id) values (85,143); +insert into help_relation (help_topic_id,help_keyword_id) values (57,143); +insert into help_relation (help_topic_id,help_keyword_id) values (199,144); +insert into help_relation (help_topic_id,help_keyword_id) values (313,145); +insert into help_relation (help_topic_id,help_keyword_id) values (424,146); +insert into help_relation (help_topic_id,help_keyword_id) values (347,146); +insert into help_relation (help_topic_id,help_keyword_id) values (455,146); +insert into help_relation (help_topic_id,help_keyword_id) values (48,146); +insert into help_relation (help_topic_id,help_keyword_id) values (122,146); +insert into help_relation (help_topic_id,help_keyword_id) values (356,146); +insert into help_relation (help_topic_id,help_keyword_id) values (447,147); +insert into help_relation (help_topic_id,help_keyword_id) values (36,147); +insert into help_relation (help_topic_id,help_keyword_id) values (106,147); +insert into help_relation (help_topic_id,help_keyword_id) values (1,148); +insert into help_relation (help_topic_id,help_keyword_id) values (28,149); +insert into help_relation (help_topic_id,help_keyword_id) values (376,150); +insert into help_relation (help_topic_id,help_keyword_id) values (468,151); +insert into help_relation (help_topic_id,help_keyword_id) values (209,152); +insert into help_relation (help_topic_id,help_keyword_id) values (347,153); +insert into help_relation (help_topic_id,help_keyword_id) values (313,153); +insert into help_relation (help_topic_id,help_keyword_id) values (180,153); +insert into help_relation (help_topic_id,help_keyword_id) values (356,153); +insert into help_relation (help_topic_id,help_keyword_id) values (420,153); +insert into help_relation (help_topic_id,help_keyword_id) values (347,154); +insert into help_relation (help_topic_id,help_keyword_id) values (330,154); +insert into help_relation (help_topic_id,help_keyword_id) values (468,155); +insert into help_relation (help_topic_id,help_keyword_id) values (97,156); +insert into help_relation (help_topic_id,help_keyword_id) values (180,157); +insert into help_relation (help_topic_id,help_keyword_id) values (421,158); +insert into help_relation (help_topic_id,help_keyword_id) values (68,159); +insert into help_relation (help_topic_id,help_keyword_id) values (347,159); +insert into help_relation (help_topic_id,help_keyword_id) values (336,159); +insert into help_relation (help_topic_id,help_keyword_id) values (34,159); +insert into help_relation (help_topic_id,help_keyword_id) values (97,159); +insert into help_relation (help_topic_id,help_keyword_id) values (302,159); +insert into help_relation (help_topic_id,help_keyword_id) values (416,159); +insert into help_relation (help_topic_id,help_keyword_id) values (393,159); +insert into help_relation (help_topic_id,help_keyword_id) values (211,159); +insert into help_relation (help_topic_id,help_keyword_id) values (405,159); +insert into help_relation (help_topic_id,help_keyword_id) values (233,159); +insert into help_relation (help_topic_id,help_keyword_id) values (97,160); +insert into help_relation (help_topic_id,help_keyword_id) values (347,161); +insert into help_relation (help_topic_id,help_keyword_id) values (421,161); +insert into help_relation (help_topic_id,help_keyword_id) values (252,162); +insert into help_relation (help_topic_id,help_keyword_id) values (468,163); +insert into help_relation (help_topic_id,help_keyword_id) values (468,164); +insert into help_relation (help_topic_id,help_keyword_id) values (463,164); +insert into help_relation (help_topic_id,help_keyword_id) values (194,165); +insert into help_relation (help_topic_id,help_keyword_id) values (478,165); +insert into help_relation (help_topic_id,help_keyword_id) values (60,165); +insert into help_relation (help_topic_id,help_keyword_id) values (463,165); +insert into help_relation (help_topic_id,help_keyword_id) values (176,166); +insert into help_relation (help_topic_id,help_keyword_id) values (168,167); +insert into help_relation (help_topic_id,help_keyword_id) values (194,168); +insert into help_relation (help_topic_id,help_keyword_id) values (478,168); +insert into help_relation (help_topic_id,help_keyword_id) values (415,168); +insert into help_relation (help_topic_id,help_keyword_id) values (463,168); +insert into help_relation (help_topic_id,help_keyword_id) values (454,169); +insert into help_relation (help_topic_id,help_keyword_id) values (30,169); +insert into help_relation (help_topic_id,help_keyword_id) values (159,169); +insert into help_relation (help_topic_id,help_keyword_id) values (447,170); +insert into help_relation (help_topic_id,help_keyword_id) values (130,171); +insert into help_relation (help_topic_id,help_keyword_id) values (421,171); +insert into help_relation (help_topic_id,help_keyword_id) values (190,172); +insert into help_relation (help_topic_id,help_keyword_id) values (48,173); +insert into help_relation (help_topic_id,help_keyword_id) values (356,173); +insert into help_relation (help_topic_id,help_keyword_id) values (83,173); +insert into help_relation (help_topic_id,help_keyword_id) values (463,173); +insert into help_relation (help_topic_id,help_keyword_id) values (361,173); +insert into help_relation (help_topic_id,help_keyword_id) values (1,174); +insert into help_relation (help_topic_id,help_keyword_id) values (86,174); +insert into help_relation (help_topic_id,help_keyword_id) values (48,174); +insert into help_relation (help_topic_id,help_keyword_id) values (459,175); +insert into help_relation (help_topic_id,help_keyword_id) values (374,175); +insert into help_relation (help_topic_id,help_keyword_id) values (252,176); +insert into help_relation (help_topic_id,help_keyword_id) values (249,177); +insert into help_relation (help_topic_id,help_keyword_id) values (199,177); +insert into help_relation (help_topic_id,help_keyword_id) values (314,178); +insert into help_relation (help_topic_id,help_keyword_id) values (500,178); +insert into help_relation (help_topic_id,help_keyword_id) values (209,178); +insert into help_relation (help_topic_id,help_keyword_id) values (230,178); +insert into help_relation (help_topic_id,help_keyword_id) values (24,178); +insert into help_relation (help_topic_id,help_keyword_id) values (168,178); +insert into help_relation (help_topic_id,help_keyword_id) values (128,178); +insert into help_relation (help_topic_id,help_keyword_id) values (156,179); +insert into help_relation (help_topic_id,help_keyword_id) values (97,179); +insert into help_relation (help_topic_id,help_keyword_id) values (230,179); +insert into help_relation (help_topic_id,help_keyword_id) values (411,180); +insert into help_relation (help_topic_id,help_keyword_id) values (347,181); +insert into help_relation (help_topic_id,help_keyword_id) values (472,182); +insert into help_relation (help_topic_id,help_keyword_id) values (473,182); +insert into help_relation (help_topic_id,help_keyword_id) values (468,182); +insert into help_relation (help_topic_id,help_keyword_id) values (463,182); +insert into help_relation (help_topic_id,help_keyword_id) values (304,183); +insert into help_relation (help_topic_id,help_keyword_id) values (101,183); +insert into help_relation (help_topic_id,help_keyword_id) values (151,183); +insert into help_relation (help_topic_id,help_keyword_id) values (145,184); +insert into help_relation (help_topic_id,help_keyword_id) values (347,184); +insert into help_relation (help_topic_id,help_keyword_id) values (459,185); +insert into help_relation (help_topic_id,help_keyword_id) values (374,185); +insert into help_relation (help_topic_id,help_keyword_id) values (146,186); +insert into help_relation (help_topic_id,help_keyword_id) values (347,187); +insert into help_relation (help_topic_id,help_keyword_id) values (160,187); +insert into help_relation (help_topic_id,help_keyword_id) values (455,188); +insert into help_relation (help_topic_id,help_keyword_id) values (146,189); +insert into help_relation (help_topic_id,help_keyword_id) values (459,190); +insert into help_relation (help_topic_id,help_keyword_id) values (374,190); +insert into help_relation (help_topic_id,help_keyword_id) values (313,191); +insert into help_relation (help_topic_id,help_keyword_id) values (180,191); +insert into help_relation (help_topic_id,help_keyword_id) values (420,191); +insert into help_relation (help_topic_id,help_keyword_id) values (200,191); +insert into help_relation (help_topic_id,help_keyword_id) values (304,192); +insert into help_relation (help_topic_id,help_keyword_id) values (421,192); +insert into help_relation (help_topic_id,help_keyword_id) values (356,193); +insert into help_relation (help_topic_id,help_keyword_id) values (230,194); +insert into help_relation (help_topic_id,help_keyword_id) values (377,194); +insert into help_relation (help_topic_id,help_keyword_id) values (468,195); +insert into help_relation (help_topic_id,help_keyword_id) values (155,196); +insert into help_relation (help_topic_id,help_keyword_id) values (468,196); +insert into help_relation (help_topic_id,help_keyword_id) values (212,196); +insert into help_relation (help_topic_id,help_keyword_id) values (395,197); +insert into help_relation (help_topic_id,help_keyword_id) values (465,198); +insert into help_relation (help_topic_id,help_keyword_id) values (129,199); +insert into help_relation (help_topic_id,help_keyword_id) values (447,199); +insert into help_relation (help_topic_id,help_keyword_id) values (182,199); +insert into help_relation (help_topic_id,help_keyword_id) values (349,199); +insert into help_relation (help_topic_id,help_keyword_id) values (137,199); +insert into help_relation (help_topic_id,help_keyword_id) values (452,200); +insert into help_relation (help_topic_id,help_keyword_id) values (85,201); +insert into help_relation (help_topic_id,help_keyword_id) values (57,201); +insert into help_relation (help_topic_id,help_keyword_id) values (356,202); +insert into help_relation (help_topic_id,help_keyword_id) values (1,203); +insert into help_relation (help_topic_id,help_keyword_id) values (36,203); +insert into help_relation (help_topic_id,help_keyword_id) values (356,203); +insert into help_relation (help_topic_id,help_keyword_id) values (421,204); +insert into help_relation (help_topic_id,help_keyword_id) values (199,205); +insert into help_relation (help_topic_id,help_keyword_id) values (146,206); +insert into help_relation (help_topic_id,help_keyword_id) values (249,207); +insert into help_relation (help_topic_id,help_keyword_id) values (347,208); +insert into help_relation (help_topic_id,help_keyword_id) values (192,208); +insert into help_relation (help_topic_id,help_keyword_id) values (1,209); +insert into help_relation (help_topic_id,help_keyword_id) values (459,210); +insert into help_relation (help_topic_id,help_keyword_id) values (374,210); +insert into help_relation (help_topic_id,help_keyword_id) values (221,211); +insert into help_relation (help_topic_id,help_keyword_id) values (255,212); +insert into help_relation (help_topic_id,help_keyword_id) values (88,213); +insert into help_relation (help_topic_id,help_keyword_id) values (468,213); +insert into help_relation (help_topic_id,help_keyword_id) values (210,213); +insert into help_relation (help_topic_id,help_keyword_id) values (199,213); +insert into help_relation (help_topic_id,help_keyword_id) values (463,213); +insert into help_relation (help_topic_id,help_keyword_id) values (463,214); +insert into help_relation (help_topic_id,help_keyword_id) values (260,215); +insert into help_relation (help_topic_id,help_keyword_id) values (468,216); +insert into help_relation (help_topic_id,help_keyword_id) values (421,216); +insert into help_relation (help_topic_id,help_keyword_id) values (406,217); +insert into help_relation (help_topic_id,help_keyword_id) values (89,217); +insert into help_relation (help_topic_id,help_keyword_id) values (463,217); +insert into help_relation (help_topic_id,help_keyword_id) values (291,218); +insert into help_relation (help_topic_id,help_keyword_id) values (356,219); +insert into help_relation (help_topic_id,help_keyword_id) values (3,220); +insert into help_relation (help_topic_id,help_keyword_id) values (36,220); +insert into help_relation (help_topic_id,help_keyword_id) values (130,220); +insert into help_relation (help_topic_id,help_keyword_id) values (48,220); +insert into help_relation (help_topic_id,help_keyword_id) values (104,220); +insert into help_relation (help_topic_id,help_keyword_id) values (83,220); +insert into help_relation (help_topic_id,help_keyword_id) values (421,220); +insert into help_relation (help_topic_id,help_keyword_id) values (199,221); +insert into help_relation (help_topic_id,help_keyword_id) values (194,222); +insert into help_relation (help_topic_id,help_keyword_id) values (347,223); +insert into help_relation (help_topic_id,help_keyword_id) values (155,223); +insert into help_relation (help_topic_id,help_keyword_id) values (309,223); +insert into help_relation (help_topic_id,help_keyword_id) values (186,223); +insert into help_relation (help_topic_id,help_keyword_id) values (212,223); +insert into help_relation (help_topic_id,help_keyword_id) values (97,224); +insert into help_relation (help_topic_id,help_keyword_id) values (277,225); +insert into help_relation (help_topic_id,help_keyword_id) values (279,226); +insert into help_relation (help_topic_id,help_keyword_id) values (464,227); +insert into help_relation (help_topic_id,help_keyword_id) values (347,228); +insert into help_relation (help_topic_id,help_keyword_id) values (1,228); +insert into help_relation (help_topic_id,help_keyword_id) values (468,228); +insert into help_relation (help_topic_id,help_keyword_id) values (304,228); +insert into help_relation (help_topic_id,help_keyword_id) values (87,228); +insert into help_relation (help_topic_id,help_keyword_id) values (101,228); +insert into help_relation (help_topic_id,help_keyword_id) values (60,228); +insert into help_relation (help_topic_id,help_keyword_id) values (308,228); +insert into help_relation (help_topic_id,help_keyword_id) values (210,228); +insert into help_relation (help_topic_id,help_keyword_id) values (463,228); +insert into help_relation (help_topic_id,help_keyword_id) values (425,229); +insert into help_relation (help_topic_id,help_keyword_id) values (406,230); +insert into help_relation (help_topic_id,help_keyword_id) values (89,230); +insert into help_relation (help_topic_id,help_keyword_id) values (185,231); +insert into help_relation (help_topic_id,help_keyword_id) values (463,232); +insert into help_relation (help_topic_id,help_keyword_id) values (466,233); +insert into help_relation (help_topic_id,help_keyword_id) values (255,233); +insert into help_relation (help_topic_id,help_keyword_id) values (272,234); +insert into help_relation (help_topic_id,help_keyword_id) values (1,235); +insert into help_relation (help_topic_id,help_keyword_id) values (347,236); +insert into help_relation (help_topic_id,help_keyword_id) values (7,236); +insert into help_relation (help_topic_id,help_keyword_id) values (257,237); +insert into help_relation (help_topic_id,help_keyword_id) values (430,237); +insert into help_relation (help_topic_id,help_keyword_id) values (194,238); +insert into help_relation (help_topic_id,help_keyword_id) values (226,238); +insert into help_relation (help_topic_id,help_keyword_id) values (356,238); +insert into help_relation (help_topic_id,help_keyword_id) values (427,239); +insert into help_relation (help_topic_id,help_keyword_id) values (87,240); +insert into help_relation (help_topic_id,help_keyword_id) values (210,240); +insert into help_relation (help_topic_id,help_keyword_id) values (463,240); +insert into help_relation (help_topic_id,help_keyword_id) values (313,241); +insert into help_relation (help_topic_id,help_keyword_id) values (185,242); +insert into help_relation (help_topic_id,help_keyword_id) values (314,243); +insert into help_relation (help_topic_id,help_keyword_id) values (500,243); +insert into help_relation (help_topic_id,help_keyword_id) values (209,243); +insert into help_relation (help_topic_id,help_keyword_id) values (24,243); +insert into help_relation (help_topic_id,help_keyword_id) values (168,243); +insert into help_relation (help_topic_id,help_keyword_id) values (128,243); +insert into help_relation (help_topic_id,help_keyword_id) values (199,244); +insert into help_relation (help_topic_id,help_keyword_id) values (185,245); +insert into help_relation (help_topic_id,help_keyword_id) values (473,246); +insert into help_relation (help_topic_id,help_keyword_id) values (185,247); +insert into help_relation (help_topic_id,help_keyword_id) values (385,248); +insert into help_relation (help_topic_id,help_keyword_id) values (333,249); +insert into help_relation (help_topic_id,help_keyword_id) values (347,249); +insert into help_relation (help_topic_id,help_keyword_id) values (155,249); +insert into help_relation (help_topic_id,help_keyword_id) values (430,249); +insert into help_relation (help_topic_id,help_keyword_id) values (130,249); +insert into help_relation (help_topic_id,help_keyword_id) values (468,249); +insert into help_relation (help_topic_id,help_keyword_id) values (257,249); +insert into help_relation (help_topic_id,help_keyword_id) values (212,249); +insert into help_relation (help_topic_id,help_keyword_id) values (356,249); +insert into help_relation (help_topic_id,help_keyword_id) values (421,249); +insert into help_relation (help_topic_id,help_keyword_id) values (185,250); +insert into help_relation (help_topic_id,help_keyword_id) values (459,251); +insert into help_relation (help_topic_id,help_keyword_id) values (374,251); +insert into help_relation (help_topic_id,help_keyword_id) values (347,252); +insert into help_relation (help_topic_id,help_keyword_id) values (466,252); +insert into help_relation (help_topic_id,help_keyword_id) values (110,252); +insert into help_relation (help_topic_id,help_keyword_id) values (468,252); +insert into help_relation (help_topic_id,help_keyword_id) values (115,252); +insert into help_relation (help_topic_id,help_keyword_id) values (321,252); +insert into help_relation (help_topic_id,help_keyword_id) values (470,252); +insert into help_relation (help_topic_id,help_keyword_id) values (276,252); +insert into help_relation (help_topic_id,help_keyword_id) values (278,252); +insert into help_relation (help_topic_id,help_keyword_id) values (417,252); +insert into help_relation (help_topic_id,help_keyword_id) values (401,252); +insert into help_relation (help_topic_id,help_keyword_id) values (60,252); +insert into help_relation (help_topic_id,help_keyword_id) values (215,252); +insert into help_relation (help_topic_id,help_keyword_id) values (463,252); +insert into help_relation (help_topic_id,help_keyword_id) values (194,253); +insert into help_relation (help_topic_id,help_keyword_id) values (478,253); +insert into help_relation (help_topic_id,help_keyword_id) values (347,253); +insert into help_relation (help_topic_id,help_keyword_id) values (365,253); +insert into help_relation (help_topic_id,help_keyword_id) values (468,253); +insert into help_relation (help_topic_id,help_keyword_id) values (415,253); +insert into help_relation (help_topic_id,help_keyword_id) values (463,253); +insert into help_relation (help_topic_id,help_keyword_id) values (468,254); +insert into help_relation (help_topic_id,help_keyword_id) values (472,255); +insert into help_relation (help_topic_id,help_keyword_id) values (30,255); +insert into help_relation (help_topic_id,help_keyword_id) values (468,255); +insert into help_relation (help_topic_id,help_keyword_id) values (276,255); +insert into help_relation (help_topic_id,help_keyword_id) values (185,256); +insert into help_relation (help_topic_id,help_keyword_id) values (356,257); +insert into help_relation (help_topic_id,help_keyword_id) values (305,258); +insert into help_relation (help_topic_id,help_keyword_id) values (468,259); +insert into help_relation (help_topic_id,help_keyword_id) values (310,260); +insert into help_relation (help_topic_id,help_keyword_id) values (463,261); +insert into help_relation (help_topic_id,help_keyword_id) values (88,262); +insert into help_relation (help_topic_id,help_keyword_id) values (185,263); +insert into help_relation (help_topic_id,help_keyword_id) values (356,264); +insert into help_relation (help_topic_id,help_keyword_id) values (329,265); +insert into help_relation (help_topic_id,help_keyword_id) values (356,265); +insert into help_relation (help_topic_id,help_keyword_id) values (361,265); +insert into help_relation (help_topic_id,help_keyword_id) values (315,266); +insert into help_relation (help_topic_id,help_keyword_id) values (375,266); +insert into help_relation (help_topic_id,help_keyword_id) values (230,266); +insert into help_relation (help_topic_id,help_keyword_id) values (209,267); +insert into help_relation (help_topic_id,help_keyword_id) values (88,268); +insert into help_relation (help_topic_id,help_keyword_id) values (68,269); +insert into help_relation (help_topic_id,help_keyword_id) values (488,269); +insert into help_relation (help_topic_id,help_keyword_id) values (420,270); +insert into help_relation (help_topic_id,help_keyword_id) values (246,271); +insert into help_relation (help_topic_id,help_keyword_id) values (146,272); +insert into help_relation (help_topic_id,help_keyword_id) values (194,273); +insert into help_relation (help_topic_id,help_keyword_id) values (226,273); +insert into help_relation (help_topic_id,help_keyword_id) values (326,274); +insert into help_relation (help_topic_id,help_keyword_id) values (151,274); +insert into help_relation (help_topic_id,help_keyword_id) values (454,275); +insert into help_relation (help_topic_id,help_keyword_id) values (194,275); +insert into help_relation (help_topic_id,help_keyword_id) values (155,275); +insert into help_relation (help_topic_id,help_keyword_id) values (97,275); +insert into help_relation (help_topic_id,help_keyword_id) values (302,275); +insert into help_relation (help_topic_id,help_keyword_id) values (278,275); +insert into help_relation (help_topic_id,help_keyword_id) values (309,275); +insert into help_relation (help_topic_id,help_keyword_id) values (211,275); +insert into help_relation (help_topic_id,help_keyword_id) values (210,275); +insert into help_relation (help_topic_id,help_keyword_id) values (77,275); +insert into help_relation (help_topic_id,help_keyword_id) values (17,275); +insert into help_relation (help_topic_id,help_keyword_id) values (347,275); +insert into help_relation (help_topic_id,help_keyword_id) values (22,275); +insert into help_relation (help_topic_id,help_keyword_id) values (468,275); +insert into help_relation (help_topic_id,help_keyword_id) values (473,275); +insert into help_relation (help_topic_id,help_keyword_id) values (393,275); +insert into help_relation (help_topic_id,help_keyword_id) values (89,275); +insert into help_relation (help_topic_id,help_keyword_id) values (60,275); +insert into help_relation (help_topic_id,help_keyword_id) values (358,275); +insert into help_relation (help_topic_id,help_keyword_id) values (329,276); +insert into help_relation (help_topic_id,help_keyword_id) values (194,277); +insert into help_relation (help_topic_id,help_keyword_id) values (199,278); +insert into help_relation (help_topic_id,help_keyword_id) values (234,279); +insert into help_relation (help_topic_id,help_keyword_id) values (347,280); +insert into help_relation (help_topic_id,help_keyword_id) values (451,280); +insert into help_relation (help_topic_id,help_keyword_id) values (89,281); +insert into help_relation (help_topic_id,help_keyword_id) values (39,282); +insert into help_relation (help_topic_id,help_keyword_id) values (347,282); +insert into help_relation (help_topic_id,help_keyword_id) values (269,282); +insert into help_relation (help_topic_id,help_keyword_id) values (463,283); +insert into help_relation (help_topic_id,help_keyword_id) values (468,284); +insert into help_relation (help_topic_id,help_keyword_id) values (378,285); +insert into help_relation (help_topic_id,help_keyword_id) values (147,286); +insert into help_relation (help_topic_id,help_keyword_id) values (107,287); +insert into help_relation (help_topic_id,help_keyword_id) values (466,288); +insert into help_relation (help_topic_id,help_keyword_id) values (463,288); +insert into help_relation (help_topic_id,help_keyword_id) values (468,289); +insert into help_relation (help_topic_id,help_keyword_id) values (417,290); +insert into help_relation (help_topic_id,help_keyword_id) values (3,291); +insert into help_relation (help_topic_id,help_keyword_id) values (104,291); +insert into help_relation (help_topic_id,help_keyword_id) values (339,292); +insert into help_relation (help_topic_id,help_keyword_id) values (344,293); +insert into help_relation (help_topic_id,help_keyword_id) values (257,294); +insert into help_relation (help_topic_id,help_keyword_id) values (269,295); +insert into help_relation (help_topic_id,help_keyword_id) values (321,296); +insert into help_relation (help_topic_id,help_keyword_id) values (463,296); +insert into help_relation (help_topic_id,help_keyword_id) values (193,297); +insert into help_relation (help_topic_id,help_keyword_id) values (68,297); +insert into help_relation (help_topic_id,help_keyword_id) values (333,297); +insert into help_relation (help_topic_id,help_keyword_id) values (69,297); +insert into help_relation (help_topic_id,help_keyword_id) values (336,297); +insert into help_relation (help_topic_id,help_keyword_id) values (7,297); +insert into help_relation (help_topic_id,help_keyword_id) values (134,297); +insert into help_relation (help_topic_id,help_keyword_id) values (278,297); +insert into help_relation (help_topic_id,help_keyword_id) values (10,297); +insert into help_relation (help_topic_id,help_keyword_id) values (282,297); +insert into help_relation (help_topic_id,help_keyword_id) values (137,297); +insert into help_relation (help_topic_id,help_keyword_id) values (215,297); +insert into help_relation (help_topic_id,help_keyword_id) values (17,297); +insert into help_relation (help_topic_id,help_keyword_id) values (347,297); +insert into help_relation (help_topic_id,help_keyword_id) values (21,297); +insert into help_relation (help_topic_id,help_keyword_id) values (349,297); +insert into help_relation (help_topic_id,help_keyword_id) values (82,297); +insert into help_relation (help_topic_id,help_keyword_id) values (223,297); +insert into help_relation (help_topic_id,help_keyword_id) values (25,297); +insert into help_relation (help_topic_id,help_keyword_id) values (145,297); +insert into help_relation (help_topic_id,help_keyword_id) values (294,297); +insert into help_relation (help_topic_id,help_keyword_id) values (358,297); +insert into help_relation (help_topic_id,help_keyword_id) values (424,297); +insert into help_relation (help_topic_id,help_keyword_id) values (33,297); +insert into help_relation (help_topic_id,help_keyword_id) values (365,297); +insert into help_relation (help_topic_id,help_keyword_id) values (160,297); +insert into help_relation (help_topic_id,help_keyword_id) values (488,297); +insert into help_relation (help_topic_id,help_keyword_id) values (487,297); +insert into help_relation (help_topic_id,help_keyword_id) values (39,297); +insert into help_relation (help_topic_id,help_keyword_id) values (309,297); +insert into help_relation (help_topic_id,help_keyword_id) values (492,297); +insert into help_relation (help_topic_id,help_keyword_id) values (308,297); +insert into help_relation (help_topic_id,help_keyword_id) values (170,297); +insert into help_relation (help_topic_id,help_keyword_id) values (58,297); +insert into help_relation (help_topic_id,help_keyword_id) values (393,297); +insert into help_relation (help_topic_id,help_keyword_id) values (328,297); +insert into help_relation (help_topic_id,help_keyword_id) values (330,297); +insert into help_relation (help_topic_id,help_keyword_id) values (122,297); +insert into help_relation (help_topic_id,help_keyword_id) values (192,297); +insert into help_relation (help_topic_id,help_keyword_id) values (451,297); +insert into help_relation (help_topic_id,help_keyword_id) values (38,298); +insert into help_relation (help_topic_id,help_keyword_id) values (305,298); +insert into help_relation (help_topic_id,help_keyword_id) values (249,298); +insert into help_relation (help_topic_id,help_keyword_id) values (356,298); +insert into help_relation (help_topic_id,help_keyword_id) values (199,298); +insert into help_relation (help_topic_id,help_keyword_id) values (468,299); +insert into help_relation (help_topic_id,help_keyword_id) values (326,300); +insert into help_relation (help_topic_id,help_keyword_id) values (468,301); +insert into help_relation (help_topic_id,help_keyword_id) values (122,302); +insert into help_relation (help_topic_id,help_keyword_id) values (350,302); +insert into help_relation (help_topic_id,help_keyword_id) values (85,303); +insert into help_relation (help_topic_id,help_keyword_id) values (57,303); +insert into help_relation (help_topic_id,help_keyword_id) values (28,303); +insert into help_relation (help_topic_id,help_keyword_id) values (327,303); +insert into help_relation (help_topic_id,help_keyword_id) values (344,303); +insert into help_relation (help_topic_id,help_keyword_id) values (496,303); +insert into help_relation (help_topic_id,help_keyword_id) values (232,303); +insert into help_relation (help_topic_id,help_keyword_id) values (376,304); +insert into help_relation (help_topic_id,help_keyword_id) values (147,305); +insert into help_relation (help_topic_id,help_keyword_id) values (316,305); +insert into help_relation (help_topic_id,help_keyword_id) values (314,306); +insert into help_relation (help_topic_id,help_keyword_id) values (106,307); +insert into help_relation (help_topic_id,help_keyword_id) values (376,308); +insert into help_relation (help_topic_id,help_keyword_id) values (3,309); +insert into help_relation (help_topic_id,help_keyword_id) values (356,309); +insert into help_relation (help_topic_id,help_keyword_id) values (104,309); +insert into help_relation (help_topic_id,help_keyword_id) values (301,309); +insert into help_relation (help_topic_id,help_keyword_id) values (255,309); +insert into help_relation (help_topic_id,help_keyword_id) values (347,310); +insert into help_relation (help_topic_id,help_keyword_id) values (160,310); +insert into help_relation (help_topic_id,help_keyword_id) values (141,311); +insert into help_relation (help_topic_id,help_keyword_id) values (130,312); +insert into help_relation (help_topic_id,help_keyword_id) values (199,312); +insert into help_relation (help_topic_id,help_keyword_id) values (77,312); +insert into help_relation (help_topic_id,help_keyword_id) values (473,313); +insert into help_relation (help_topic_id,help_keyword_id) values (185,314); +insert into help_relation (help_topic_id,help_keyword_id) values (182,315); +insert into help_relation (help_topic_id,help_keyword_id) values (455,316); +insert into help_relation (help_topic_id,help_keyword_id) values (111,317); +insert into help_relation (help_topic_id,help_keyword_id) values (24,317); +insert into help_relation (help_topic_id,help_keyword_id) values (376,318); +insert into help_relation (help_topic_id,help_keyword_id) values (185,319); +insert into help_relation (help_topic_id,help_keyword_id) values (130,320); +insert into help_relation (help_topic_id,help_keyword_id) values (421,320); +insert into help_relation (help_topic_id,help_keyword_id) values (390,321); +insert into help_relation (help_topic_id,help_keyword_id) values (118,321); +insert into help_relation (help_topic_id,help_keyword_id) values (463,322); +insert into help_relation (help_topic_id,help_keyword_id) values (25,323); +insert into help_relation (help_topic_id,help_keyword_id) values (347,323); +insert into help_relation (help_topic_id,help_keyword_id) values (199,324); +insert into help_relation (help_topic_id,help_keyword_id) values (373,325); +insert into help_relation (help_topic_id,help_keyword_id) values (473,325); +insert into help_relation (help_topic_id,help_keyword_id) values (374,326); +insert into help_relation (help_topic_id,help_keyword_id) values (146,327); +insert into help_relation (help_topic_id,help_keyword_id) values (185,328); +insert into help_relation (help_topic_id,help_keyword_id) values (376,329); +insert into help_relation (help_topic_id,help_keyword_id) values (199,330); +insert into help_relation (help_topic_id,help_keyword_id) values (347,331); +insert into help_relation (help_topic_id,help_keyword_id) values (378,331); +insert into help_relation (help_topic_id,help_keyword_id) values (347,332); +insert into help_relation (help_topic_id,help_keyword_id) values (291,332); +insert into help_relation (help_topic_id,help_keyword_id) values (419,332); +insert into help_relation (help_topic_id,help_keyword_id) values (383,333); +insert into help_relation (help_topic_id,help_keyword_id) values (424,334); +insert into help_relation (help_topic_id,help_keyword_id) values (88,334); +insert into help_relation (help_topic_id,help_keyword_id) values (122,334); +insert into help_relation (help_topic_id,help_keyword_id) values (356,334); +insert into help_relation (help_topic_id,help_keyword_id) values (463,335); +insert into help_relation (help_topic_id,help_keyword_id) values (356,336); +insert into help_relation (help_topic_id,help_keyword_id) values (199,337); +insert into help_relation (help_topic_id,help_keyword_id) values (86,338); +insert into help_relation (help_topic_id,help_keyword_id) values (199,338); +insert into help_relation (help_topic_id,help_keyword_id) values (356,339); +insert into help_relation (help_topic_id,help_keyword_id) values (397,340); +insert into help_relation (help_topic_id,help_keyword_id) values (88,341); +insert into help_relation (help_topic_id,help_keyword_id) values (176,341); +insert into help_relation (help_topic_id,help_keyword_id) values (151,341); +insert into help_relation (help_topic_id,help_keyword_id) values (185,342); +insert into help_relation (help_topic_id,help_keyword_id) values (130,343); +insert into help_relation (help_topic_id,help_keyword_id) values (421,343); +insert into help_relation (help_topic_id,help_keyword_id) values (52,344); +insert into help_relation (help_topic_id,help_keyword_id) values (324,344); +insert into help_relation (help_topic_id,help_keyword_id) values (373,345); +insert into help_relation (help_topic_id,help_keyword_id) values (473,345); +insert into help_relation (help_topic_id,help_keyword_id) values (9,345); +insert into help_relation (help_topic_id,help_keyword_id) values (199,346); +insert into help_relation (help_topic_id,help_keyword_id) values (185,347); +insert into help_relation (help_topic_id,help_keyword_id) values (123,348); +insert into help_relation (help_topic_id,help_keyword_id) values (146,349); +insert into help_relation (help_topic_id,help_keyword_id) values (447,349); +insert into help_relation (help_topic_id,help_keyword_id) values (376,350); +insert into help_relation (help_topic_id,help_keyword_id) values (407,351); +insert into help_relation (help_topic_id,help_keyword_id) values (376,352); +insert into help_relation (help_topic_id,help_keyword_id) values (463,353); +insert into help_relation (help_topic_id,help_keyword_id) values (144,354); +insert into help_relation (help_topic_id,help_keyword_id) values (24,355); +insert into help_relation (help_topic_id,help_keyword_id) values (406,356); +insert into help_relation (help_topic_id,help_keyword_id) values (110,356); +insert into help_relation (help_topic_id,help_keyword_id) values (222,356); +insert into help_relation (help_topic_id,help_keyword_id) values (463,356); +insert into help_relation (help_topic_id,help_keyword_id) values (468,357); +insert into help_relation (help_topic_id,help_keyword_id) values (210,357); +insert into help_relation (help_topic_id,help_keyword_id) values (463,357); +insert into help_relation (help_topic_id,help_keyword_id) values (1,358); +insert into help_relation (help_topic_id,help_keyword_id) values (478,359); +insert into help_relation (help_topic_id,help_keyword_id) values (406,359); +insert into help_relation (help_topic_id,help_keyword_id) values (439,359); +insert into help_relation (help_topic_id,help_keyword_id) values (159,359); +insert into help_relation (help_topic_id,help_keyword_id) values (199,359); +insert into help_relation (help_topic_id,help_keyword_id) values (373,359); +insert into help_relation (help_topic_id,help_keyword_id) values (226,359); +insert into help_relation (help_topic_id,help_keyword_id) values (60,359); +insert into help_relation (help_topic_id,help_keyword_id) values (212,359); +insert into help_relation (help_topic_id,help_keyword_id) values (233,359); +insert into help_relation (help_topic_id,help_keyword_id) values (463,359); +insert into help_relation (help_topic_id,help_keyword_id) values (468,360); +insert into help_relation (help_topic_id,help_keyword_id) values (463,360); +insert into help_relation (help_topic_id,help_keyword_id) values (473,361); +insert into help_relation (help_topic_id,help_keyword_id) values (1,362); +insert into help_relation (help_topic_id,help_keyword_id) values (356,362); +insert into help_relation (help_topic_id,help_keyword_id) values (1,363); +insert into help_relation (help_topic_id,help_keyword_id) values (347,364); +insert into help_relation (help_topic_id,help_keyword_id) values (349,364); +insert into help_relation (help_topic_id,help_keyword_id) values (421,365); +insert into help_relation (help_topic_id,help_keyword_id) values (427,366); +insert into help_relation (help_topic_id,help_keyword_id) values (468,367); +insert into help_relation (help_topic_id,help_keyword_id) values (473,368); +insert into help_relation (help_topic_id,help_keyword_id) values (477,368); +insert into help_relation (help_topic_id,help_keyword_id) values (199,368); +insert into help_relation (help_topic_id,help_keyword_id) values (77,368); +insert into help_relation (help_topic_id,help_keyword_id) values (356,369); +insert into help_relation (help_topic_id,help_keyword_id) values (465,370); +insert into help_relation (help_topic_id,help_keyword_id) values (230,370); +insert into help_relation (help_topic_id,help_keyword_id) values (106,371); +insert into help_relation (help_topic_id,help_keyword_id) values (69,372); +insert into help_relation (help_topic_id,help_keyword_id) values (347,372); +insert into help_relation (help_topic_id,help_keyword_id) values (494,373); +insert into help_relation (help_topic_id,help_keyword_id) values (276,374); +insert into help_relation (help_topic_id,help_keyword_id) values (447,375); +insert into help_relation (help_topic_id,help_keyword_id) values (356,376); +insert into help_relation (help_topic_id,help_keyword_id) values (417,377); +insert into help_relation (help_topic_id,help_keyword_id) values (212,377); +insert into help_relation (help_topic_id,help_keyword_id) values (146,378); +insert into help_relation (help_topic_id,help_keyword_id) values (327,378); +insert into help_relation (help_topic_id,help_keyword_id) values (468,379); +insert into help_relation (help_topic_id,help_keyword_id) values (487,380); +insert into help_relation (help_topic_id,help_keyword_id) values (417,381); +insert into help_relation (help_topic_id,help_keyword_id) values (89,382); +insert into help_relation (help_topic_id,help_keyword_id) values (376,382); +insert into help_relation (help_topic_id,help_keyword_id) values (199,383); +insert into help_relation (help_topic_id,help_keyword_id) values (376,384); +insert into help_relation (help_topic_id,help_keyword_id) values (212,385); +insert into help_relation (help_topic_id,help_keyword_id) values (472,386); +insert into help_relation (help_topic_id,help_keyword_id) values (468,386); +insert into help_relation (help_topic_id,help_keyword_id) values (199,386); +insert into help_relation (help_topic_id,help_keyword_id) values (443,387); +insert into help_relation (help_topic_id,help_keyword_id) values (282,388); +insert into help_relation (help_topic_id,help_keyword_id) values (447,389); +insert into help_relation (help_topic_id,help_keyword_id) values (448,390); +insert into help_relation (help_topic_id,help_keyword_id) values (89,391); +insert into help_relation (help_topic_id,help_keyword_id) values (128,392); +insert into help_relation (help_topic_id,help_keyword_id) values (10,393); +insert into help_relation (help_topic_id,help_keyword_id) values (347,393); +insert into help_relation (help_topic_id,help_keyword_id) values (472,394); +insert into help_relation (help_topic_id,help_keyword_id) values (30,394); +insert into help_relation (help_topic_id,help_keyword_id) values (276,394); +insert into help_relation (help_topic_id,help_keyword_id) values (447,395); +insert into help_relation (help_topic_id,help_keyword_id) values (56,396); +insert into help_relation (help_topic_id,help_keyword_id) values (84,397); +insert into help_relation (help_topic_id,help_keyword_id) values (206,397); +insert into help_relation (help_topic_id,help_keyword_id) values (456,397); +insert into help_relation (help_topic_id,help_keyword_id) values (368,397); +insert into help_relation (help_topic_id,help_keyword_id) values (84,398); +insert into help_relation (help_topic_id,help_keyword_id) values (206,398); +insert into help_relation (help_topic_id,help_keyword_id) values (155,398); +insert into help_relation (help_topic_id,help_keyword_id) values (89,398); +insert into help_relation (help_topic_id,help_keyword_id) values (312,398); +insert into help_relation (help_topic_id,help_keyword_id) values (189,399); +insert into help_relation (help_topic_id,help_keyword_id) values (194,400); +insert into help_relation (help_topic_id,help_keyword_id) values (478,400); +insert into help_relation (help_topic_id,help_keyword_id) values (326,401); +insert into help_relation (help_topic_id,help_keyword_id) values (459,402); +insert into help_relation (help_topic_id,help_keyword_id) values (468,403); +insert into help_relation (help_topic_id,help_keyword_id) values (146,404); +insert into help_relation (help_topic_id,help_keyword_id) values (324,404); +insert into help_relation (help_topic_id,help_keyword_id) values (33,405); +insert into help_relation (help_topic_id,help_keyword_id) values (460,406); +insert into help_relation (help_topic_id,help_keyword_id) values (479,407); +insert into help_relation (help_topic_id,help_keyword_id) values (155,407); +insert into help_relation (help_topic_id,help_keyword_id) values (300,407); +insert into help_relation (help_topic_id,help_keyword_id) values (9,407); +insert into help_relation (help_topic_id,help_keyword_id) values (276,407); +insert into help_relation (help_topic_id,help_keyword_id) values (28,407); +insert into help_relation (help_topic_id,help_keyword_id) values (30,407); +insert into help_relation (help_topic_id,help_keyword_id) values (89,407); +insert into help_relation (help_topic_id,help_keyword_id) values (186,407); +insert into help_relation (help_topic_id,help_keyword_id) values (130,408); +insert into help_relation (help_topic_id,help_keyword_id) values (463,409); +insert into help_relation (help_topic_id,help_keyword_id) values (269,410); +insert into help_relation (help_topic_id,help_keyword_id) values (106,411); +insert into help_relation (help_topic_id,help_keyword_id) values (473,412); +insert into help_relation (help_topic_id,help_keyword_id) values (222,412); +insert into help_relation (help_topic_id,help_keyword_id) values (331,412); +insert into help_relation (help_topic_id,help_keyword_id) values (77,412); +insert into help_relation (help_topic_id,help_keyword_id) values (313,413); +insert into help_relation (help_topic_id,help_keyword_id) values (347,414); +insert into help_relation (help_topic_id,help_keyword_id) values (308,414); +insert into help_relation (help_topic_id,help_keyword_id) values (463,414); +insert into help_relation (help_topic_id,help_keyword_id) values (424,415); +insert into help_relation (help_topic_id,help_keyword_id) values (48,415); +insert into help_relation (help_topic_id,help_keyword_id) values (122,415); +insert into help_relation (help_topic_id,help_keyword_id) values (356,415); +insert into help_relation (help_topic_id,help_keyword_id) values (83,415); +insert into help_relation (help_topic_id,help_keyword_id) values (106,415); +insert into help_relation (help_topic_id,help_keyword_id) values (472,416); +insert into help_relation (help_topic_id,help_keyword_id) values (60,416); +insert into help_relation (help_topic_id,help_keyword_id) values (104,416); +insert into help_relation (help_topic_id,help_keyword_id) values (468,416); +insert into help_relation (help_topic_id,help_keyword_id) values (463,416); +insert into help_relation (help_topic_id,help_keyword_id) values (468,417); +insert into help_relation (help_topic_id,help_keyword_id) values (232,418); +insert into help_relation (help_topic_id,help_keyword_id) values (356,419); +insert into help_relation (help_topic_id,help_keyword_id) values (3,420); +insert into help_relation (help_topic_id,help_keyword_id) values (104,420); +insert into help_relation (help_topic_id,help_keyword_id) values (486,420); +insert into help_relation (help_topic_id,help_keyword_id) values (459,421); +insert into help_relation (help_topic_id,help_keyword_id) values (374,421); +insert into help_relation (help_topic_id,help_keyword_id) values (470,422); +insert into help_relation (help_topic_id,help_keyword_id) values (463,422); +insert into help_relation (help_topic_id,help_keyword_id) values (468,423); +insert into help_relation (help_topic_id,help_keyword_id) values (463,423); +insert into help_relation (help_topic_id,help_keyword_id) values (468,424); +insert into help_relation (help_topic_id,help_keyword_id) values (243,424); +insert into help_relation (help_topic_id,help_keyword_id) values (472,425); +insert into help_relation (help_topic_id,help_keyword_id) values (468,425); +insert into help_relation (help_topic_id,help_keyword_id) values (36,426); +insert into help_relation (help_topic_id,help_keyword_id) values (194,427); +insert into help_relation (help_topic_id,help_keyword_id) values (478,427); +insert into help_relation (help_topic_id,help_keyword_id) values (129,428); +insert into help_relation (help_topic_id,help_keyword_id) values (447,428); +insert into help_relation (help_topic_id,help_keyword_id) values (349,428); +insert into help_relation (help_topic_id,help_keyword_id) values (137,428); +insert into help_relation (help_topic_id,help_keyword_id) values (347,429); +insert into help_relation (help_topic_id,help_keyword_id) values (473,429); +insert into help_relation (help_topic_id,help_keyword_id) values (155,429); +insert into help_relation (help_topic_id,help_keyword_id) values (309,429); +insert into help_relation (help_topic_id,help_keyword_id) values (186,429); +insert into help_relation (help_topic_id,help_keyword_id) values (212,429); +insert into help_relation (help_topic_id,help_keyword_id) values (84,430); +insert into help_relation (help_topic_id,help_keyword_id) values (472,430); +insert into help_relation (help_topic_id,help_keyword_id) values (368,430); +insert into help_relation (help_topic_id,help_keyword_id) values (483,431); +insert into help_relation (help_topic_id,help_keyword_id) values (466,432); +insert into help_relation (help_topic_id,help_keyword_id) values (421,433); +insert into help_relation (help_topic_id,help_keyword_id) values (145,434); +insert into help_relation (help_topic_id,help_keyword_id) values (38,434); +insert into help_relation (help_topic_id,help_keyword_id) values (406,434); +insert into help_relation (help_topic_id,help_keyword_id) values (89,434); +insert into help_relation (help_topic_id,help_keyword_id) values (223,434); +insert into help_relation (help_topic_id,help_keyword_id) values (52,434); +insert into help_relation (help_topic_id,help_keyword_id) values (324,434); +insert into help_relation (help_topic_id,help_keyword_id) values (257,435); +insert into help_relation (help_topic_id,help_keyword_id) values (356,436); +insert into help_relation (help_topic_id,help_keyword_id) values (361,436); +insert into help_relation (help_topic_id,help_keyword_id) values (491,437); +insert into help_relation (help_topic_id,help_keyword_id) values (421,438); +insert into help_relation (help_topic_id,help_keyword_id) values (406,439); +insert into help_relation (help_topic_id,help_keyword_id) values (89,439); +insert into help_relation (help_topic_id,help_keyword_id) values (463,439); +insert into help_relation (help_topic_id,help_keyword_id) values (468,440); +insert into help_relation (help_topic_id,help_keyword_id) values (212,440); +insert into help_relation (help_topic_id,help_keyword_id) values (199,441); +insert into help_relation (help_topic_id,help_keyword_id) values (496,442); +insert into help_relation (help_topic_id,help_keyword_id) values (466,443); +insert into help_relation (help_topic_id,help_keyword_id) values (326,443); +insert into help_relation (help_topic_id,help_keyword_id) values (36,443); +insert into help_relation (help_topic_id,help_keyword_id) values (130,443); +insert into help_relation (help_topic_id,help_keyword_id) values (115,443); +insert into help_relation (help_topic_id,help_keyword_id) values (421,443); +insert into help_relation (help_topic_id,help_keyword_id) values (470,443); +insert into help_relation (help_topic_id,help_keyword_id) values (0,444); +insert into help_relation (help_topic_id,help_keyword_id) values (96,444); +insert into help_relation (help_topic_id,help_keyword_id) values (384,444); +insert into help_relation (help_topic_id,help_keyword_id) values (288,444); +insert into help_relation (help_topic_id,help_keyword_id) values (433,444); +insert into help_relation (help_topic_id,help_keyword_id) values (305,444); +insert into help_relation (help_topic_id,help_keyword_id) values (356,444); +insert into help_relation (help_topic_id,help_keyword_id) values (361,444); +insert into help_relation (help_topic_id,help_keyword_id) values (497,445); +insert into help_relation (help_topic_id,help_keyword_id) values (185,446); +insert into help_relation (help_topic_id,help_keyword_id) values (199,447); +insert into help_relation (help_topic_id,help_keyword_id) values (134,448); +insert into help_relation (help_topic_id,help_keyword_id) values (347,448); +insert into help_relation (help_topic_id,help_keyword_id) values (294,448); +insert into help_relation (help_topic_id,help_keyword_id) values (36,448); +insert into help_relation (help_topic_id,help_keyword_id) values (495,449); +insert into help_relation (help_topic_id,help_keyword_id) values (27,450); +insert into help_relation (help_topic_id,help_keyword_id) values (347,451); +insert into help_relation (help_topic_id,help_keyword_id) values (22,451); +insert into help_relation (help_topic_id,help_keyword_id) values (263,451); +insert into help_relation (help_topic_id,help_keyword_id) values (347,452); +insert into help_relation (help_topic_id,help_keyword_id) values (492,452); +insert into help_relation (help_topic_id,help_keyword_id) values (199,453); +insert into help_relation (help_topic_id,help_keyword_id) values (356,454); +insert into help_relation (help_topic_id,help_keyword_id) values (104,454); +insert into help_relation (help_topic_id,help_keyword_id) values (210,455); +insert into help_relation (help_topic_id,help_keyword_id) values (468,456); +insert into help_relation (help_topic_id,help_keyword_id) values (106,456); +insert into help_relation (help_topic_id,help_keyword_id) values (463,456); +insert into help_relation (help_topic_id,help_keyword_id) values (463,457); +insert into help_relation (help_topic_id,help_keyword_id) values (194,458); +insert into help_relation (help_topic_id,help_keyword_id) values (478,458); +insert into help_relation (help_topic_id,help_keyword_id) values (459,459); +insert into help_relation (help_topic_id,help_keyword_id) values (374,459); +insert into help_relation (help_topic_id,help_keyword_id) values (39,460); +insert into help_relation (help_topic_id,help_keyword_id) values (58,460); +insert into help_relation (help_topic_id,help_keyword_id) values (269,460); +insert into help_relation (help_topic_id,help_keyword_id) values (185,460); +insert into help_relation (help_topic_id,help_keyword_id) values (264,460); +insert into help_relation (help_topic_id,help_keyword_id) values (209,461); +insert into help_relation (help_topic_id,help_keyword_id) values (468,461); +insert into help_relation (help_topic_id,help_keyword_id) values (201,462); +insert into help_relation (help_topic_id,help_keyword_id) values (468,463); + diff --git a/database/share/french/errmsg.sys b/database/share/french/errmsg.sys new file mode 100644 index 0000000..0548979 Binary files /dev/null and b/database/share/french/errmsg.sys differ diff --git a/database/share/german/errmsg.sys b/database/share/german/errmsg.sys new file mode 100644 index 0000000..de2994f Binary files /dev/null and b/database/share/german/errmsg.sys differ diff --git a/database/share/greek/errmsg.sys b/database/share/greek/errmsg.sys new file mode 100644 index 0000000..eedad0c Binary files /dev/null and b/database/share/greek/errmsg.sys differ diff --git a/database/share/hungarian/errmsg.sys b/database/share/hungarian/errmsg.sys new file mode 100644 index 0000000..fa85d59 Binary files /dev/null and b/database/share/hungarian/errmsg.sys differ diff --git a/database/share/italian/errmsg.sys b/database/share/italian/errmsg.sys new file mode 100644 index 0000000..62e71d2 Binary files /dev/null and b/database/share/italian/errmsg.sys differ diff --git a/database/share/japanese/errmsg.sys b/database/share/japanese/errmsg.sys new file mode 100644 index 0000000..c0886cc Binary files /dev/null and b/database/share/japanese/errmsg.sys differ diff --git a/database/share/korean/errmsg.sys b/database/share/korean/errmsg.sys new file mode 100644 index 0000000..f6c96e5 Binary files /dev/null and b/database/share/korean/errmsg.sys differ diff --git a/database/share/mysql_performance_tables.sql b/database/share/mysql_performance_tables.sql new file mode 100644 index 0000000..193d79b --- /dev/null +++ b/database/share/mysql_performance_tables.sql @@ -0,0 +1,402 @@ +-- +-- PERFORMANCE SCHEMA INSTALLATION +-- Note that this script is also reused by mysql_upgrade, +-- so we have to be very careful here to not destroy any +-- existing database named 'performance_schema' if it +-- can contain user data. +-- In case of downgrade, it's ok to drop unknown tables +-- from a future version, as long as they belong to the +-- performance schema engine. +-- + +set @have_old_pfs= (select count(*) from information_schema.schemata where schema_name='performance_schema'); + +SET @l1="SET @broken_tables = (select count(*) from information_schema.tables"; +SET @l2=" where engine != \'PERFORMANCE_SCHEMA\' and table_schema=\'performance_schema\')"; +SET @cmd=concat(@l1,@l2); + +-- Work around for bug#49542 +SET @str = IF(@have_old_pfs = 1, @cmd, 'SET @broken_tables = 0'); +PREPARE stmt FROM @str; +EXECUTE stmt; +DROP PREPARE stmt; + +SET @l1="SET @broken_views = (select count(*) from information_schema.views"; +SET @l2=" where table_schema='performance_schema')"; +SET @cmd=concat(@l1,@l2); + +-- Work around for bug#49542 +SET @str = IF(@have_old_pfs = 1, @cmd, 'SET @broken_views = 0'); +PREPARE stmt FROM @str; +EXECUTE stmt; +DROP PREPARE stmt; + +SET @broken_routines = (select count(*) from mysql.proc where db='performance_schema'); + +SET @broken_events = (select count(*) from mysql.event where db='performance_schema'); + +SET @broken_pfs= (select @broken_tables + @broken_views + @broken_routines + @broken_events); + +-- +-- The performance schema database. +-- Only drop and create the database if this is safe (no broken_pfs). +-- This database is created, even in --without-perfschema builds, +-- so that the database name is always reserved by the MySQL implementation. +-- This script must be executed AFTER we have fixed the proc table, to +-- avoid errors with old proc tables. +-- + +SET @cmd= "DROP DATABASE IF EXISTS performance_schema"; + +SET @str = IF(@broken_pfs = 0, @cmd, 'SET @dummy = 0'); +PREPARE stmt FROM @str; +EXECUTE stmt; +DROP PREPARE stmt; + +SET @cmd= "CREATE DATABASE performance_schema character set utf8"; + +SET @str = IF(@broken_pfs = 0, @cmd, 'SET @dummy = 0'); +PREPARE stmt FROM @str; +EXECUTE stmt; +DROP PREPARE stmt; + +-- +-- From this point, only create the performance schema tables +-- if the server is build with performance schema +-- + +set @have_pfs= (select count(engine) from information_schema.engines where engine='PERFORMANCE_SCHEMA' and support != 'NO'); + +-- +-- TABLE COND_INSTANCES +-- + +SET @l1="CREATE TABLE performance_schema.cond_instances("; +SET @l2="NAME VARCHAR(128) not null,"; +SET @l3="OBJECT_INSTANCE_BEGIN BIGINT not null"; +SET @l4=")ENGINE=PERFORMANCE_SCHEMA;"; + +SET @cmd=concat(@l1,@l2,@l3,@l4); + +SET @str = IF(@have_pfs = 1, @cmd, 'SET @dummy = 0'); +PREPARE stmt FROM @str; +EXECUTE stmt; +DROP PREPARE stmt; + +-- +-- TABLE EVENTS_WAITS_CURRENT +-- + +SET @l1="CREATE TABLE performance_schema.events_waits_current("; +SET @l2="THREAD_ID INTEGER not null,"; +SET @l3="EVENT_ID BIGINT unsigned not null,"; +SET @l4="EVENT_NAME VARCHAR(128) not null,"; +SET @l5="SOURCE VARCHAR(64),"; +SET @l6="TIMER_START BIGINT unsigned,"; +SET @l7="TIMER_END BIGINT unsigned,"; +SET @l8="TIMER_WAIT BIGINT unsigned,"; +SET @l9="SPINS INTEGER unsigned,"; +SET @l10="OBJECT_SCHEMA VARCHAR(64),"; +SET @l11="OBJECT_NAME VARCHAR(512),"; +SET @l12="OBJECT_TYPE VARCHAR(64),"; +SET @l13="OBJECT_INSTANCE_BEGIN BIGINT not null,"; +SET @l14="NESTING_EVENT_ID BIGINT unsigned,"; +SET @l15="OPERATION VARCHAR(16) not null,"; +SET @l16="NUMBER_OF_BYTES BIGINT unsigned,"; +SET @l17="FLAGS INTEGER unsigned"; +SET @l18=")ENGINE=PERFORMANCE_SCHEMA;"; + +SET @cmd=concat(@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@l11,@l12,@l13,@l14,@l15,@l16,@l17,@l18); + +SET @str = IF(@have_pfs = 1, @cmd, 'SET @dummy = 0'); +PREPARE stmt FROM @str; +EXECUTE stmt; +DROP PREPARE stmt; + +-- +-- TABLE EVENTS_WAITS_HISTORY +-- + +SET @l1="CREATE TABLE performance_schema.events_waits_history("; +-- lines 2 to 18 are unchanged from EVENTS_WAITS_CURRENT + +SET @cmd=concat(@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@l11,@l12,@l13,@l14,@l15,@l16,@l17,@l18); + +SET @str = IF(@have_pfs = 1, @cmd, 'SET @dummy = 0'); +PREPARE stmt FROM @str; +EXECUTE stmt; +DROP PREPARE stmt; + +-- +-- TABLE EVENTS_WAITS_HISTORY_LONG +-- + +SET @l1="CREATE TABLE performance_schema.events_waits_history_long("; +-- lines 2 to 18 are unchanged from EVENTS_WAITS_CURRENT + +SET @cmd=concat(@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@l11,@l12,@l13,@l14,@l15,@l16,@l17,@l18); + +SET @str = IF(@have_pfs = 1, @cmd, 'SET @dummy = 0'); +PREPARE stmt FROM @str; +EXECUTE stmt; +DROP PREPARE stmt; + +-- +-- TABLE EVENTS_WAITS_SUMMARY_BY_INSTANCE +-- + +SET @l1="CREATE TABLE performance_schema.events_waits_summary_by_instance("; +SET @l2="EVENT_NAME VARCHAR(128) not null,"; +SET @l3="OBJECT_INSTANCE_BEGIN BIGINT not null,"; +SET @l4="COUNT_STAR BIGINT unsigned not null,"; +SET @l5="SUM_TIMER_WAIT BIGINT unsigned not null,"; +SET @l6="MIN_TIMER_WAIT BIGINT unsigned not null,"; +SET @l7="AVG_TIMER_WAIT BIGINT unsigned not null,"; +SET @l8="MAX_TIMER_WAIT BIGINT unsigned not null"; +SET @l9=")ENGINE=PERFORMANCE_SCHEMA;"; + +SET @cmd=concat(@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9); + +SET @str = IF(@have_pfs = 1, @cmd, 'SET @dummy = 0'); +PREPARE stmt FROM @str; +EXECUTE stmt; +DROP PREPARE stmt; + +-- +-- TABLE EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME +-- + +SET @l1="CREATE TABLE performance_schema.events_waits_summary_by_thread_by_event_name("; +SET @l2="THREAD_ID INTEGER not null,"; +SET @l3="EVENT_NAME VARCHAR(128) not null,"; +SET @l4="COUNT_STAR BIGINT unsigned not null,"; +SET @l5="SUM_TIMER_WAIT BIGINT unsigned not null,"; +SET @l6="MIN_TIMER_WAIT BIGINT unsigned not null,"; +SET @l7="AVG_TIMER_WAIT BIGINT unsigned not null,"; +SET @l8="MAX_TIMER_WAIT BIGINT unsigned not null"; +SET @l9=")ENGINE=PERFORMANCE_SCHEMA;"; + +SET @cmd=concat(@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9); + +SET @str = IF(@have_pfs = 1, @cmd, 'SET @dummy = 0'); +PREPARE stmt FROM @str; +EXECUTE stmt; +DROP PREPARE stmt; + +-- +-- TABLE EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME +-- + +SET @l1="CREATE TABLE performance_schema.events_waits_summary_global_by_event_name("; +SET @l2="EVENT_NAME VARCHAR(128) not null,"; +SET @l3="COUNT_STAR BIGINT unsigned not null,"; +SET @l4="SUM_TIMER_WAIT BIGINT unsigned not null,"; +SET @l5="MIN_TIMER_WAIT BIGINT unsigned not null,"; +SET @l6="AVG_TIMER_WAIT BIGINT unsigned not null,"; +SET @l7="MAX_TIMER_WAIT BIGINT unsigned not null"; +SET @l8=")ENGINE=PERFORMANCE_SCHEMA;"; + +SET @cmd=concat(@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8); + +SET @str = IF(@have_pfs = 1, @cmd, 'SET @dummy = 0'); +PREPARE stmt FROM @str; +EXECUTE stmt; +DROP PREPARE stmt; + +-- +-- TABLE FILE_INSTANCES +-- + +SET @l1="CREATE TABLE performance_schema.file_instances("; +SET @l2="FILE_NAME VARCHAR(512) not null,"; +SET @l3="EVENT_NAME VARCHAR(128) not null,"; +SET @l4="OPEN_COUNT INTEGER unsigned not null"; +SET @l5=")ENGINE=PERFORMANCE_SCHEMA;"; + +SET @cmd=concat(@l1,@l2,@l3,@l4,@l5); + +SET @str = IF(@have_pfs = 1, @cmd, 'SET @dummy = 0'); +PREPARE stmt FROM @str; +EXECUTE stmt; +DROP PREPARE stmt; + +-- +-- TABLE FILE_SUMMARY_BY_EVENT_NAME +-- + +SET @l1="CREATE TABLE performance_schema.file_summary_by_event_name("; +SET @l2="EVENT_NAME VARCHAR(128) not null,"; +SET @l3="COUNT_READ BIGINT unsigned not null,"; +SET @l4="COUNT_WRITE BIGINT unsigned not null,"; +SET @l5="SUM_NUMBER_OF_BYTES_READ BIGINT unsigned not null,"; +SET @l6="SUM_NUMBER_OF_BYTES_WRITE BIGINT unsigned not null"; +SET @l7=")ENGINE=PERFORMANCE_SCHEMA;"; + +SET @cmd=concat(@l1,@l2,@l3,@l4,@l5,@l6,@l7); + +SET @str = IF(@have_pfs = 1, @cmd, 'SET @dummy = 0'); +PREPARE stmt FROM @str; +EXECUTE stmt; +DROP PREPARE stmt; + +-- +-- TABLE FILE_SUMMARY_BY_INSTANCE +-- + +SET @l1="CREATE TABLE performance_schema.file_summary_by_instance("; +SET @l2="FILE_NAME VARCHAR(512) not null,"; +SET @l3="EVENT_NAME VARCHAR(128) not null,"; +SET @l4="COUNT_READ BIGINT unsigned not null,"; +SET @l5="COUNT_WRITE BIGINT unsigned not null,"; +SET @l6="SUM_NUMBER_OF_BYTES_READ BIGINT unsigned not null,"; +SET @l7="SUM_NUMBER_OF_BYTES_WRITE BIGINT unsigned not null"; +SET @l8=")ENGINE=PERFORMANCE_SCHEMA;"; + +SET @cmd=concat(@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8); + +SET @str = IF(@have_pfs = 1, @cmd, 'SET @dummy = 0'); +PREPARE stmt FROM @str; +EXECUTE stmt; +DROP PREPARE stmt; + +-- +-- TABLE MUTEX_INSTANCES +-- + +SET @l1="CREATE TABLE performance_schema.mutex_instances("; +SET @l2="NAME VARCHAR(128) not null,"; +SET @l3="OBJECT_INSTANCE_BEGIN BIGINT not null,"; +SET @l4="LOCKED_BY_THREAD_ID INTEGER"; +SET @l5=")ENGINE=PERFORMANCE_SCHEMA;"; + +SET @cmd=concat(@l1,@l2,@l3,@l4,@l5); + +SET @str = IF(@have_pfs = 1, @cmd, 'SET @dummy = 0'); +PREPARE stmt FROM @str; +EXECUTE stmt; +DROP PREPARE stmt; + +-- +-- TABLE PERFORMANCE_TIMERS +-- + +SET @l1="CREATE TABLE performance_schema.performance_timers("; +SET @l2="TIMER_NAME ENUM ('CYCLE', 'NANOSECOND', 'MICROSECOND', 'MILLISECOND', 'TICK') not null,"; +SET @l3="TIMER_FREQUENCY BIGINT,"; +SET @l4="TIMER_RESOLUTION BIGINT,"; +SET @l5="TIMER_OVERHEAD BIGINT"; +SET @l6=") ENGINE=PERFORMANCE_SCHEMA;"; + +SET @cmd=concat(@l1,@l2,@l3,@l4,@l5,@l6); + +SET @str = IF(@have_pfs = 1, @cmd, 'SET @dummy = 0'); +PREPARE stmt FROM @str; +EXECUTE stmt; +DROP PREPARE stmt; + +-- +-- TABLE RWLOCK_INSTANCES +-- + +SET @l1="CREATE TABLE performance_schema.rwlock_instances("; +SET @l2="NAME VARCHAR(128) not null,"; +SET @l3="OBJECT_INSTANCE_BEGIN BIGINT not null,"; +SET @l4="WRITE_LOCKED_BY_THREAD_ID INTEGER,"; +SET @l5="READ_LOCKED_BY_COUNT INTEGER unsigned not null"; +SET @l6=")ENGINE=PERFORMANCE_SCHEMA;"; + +SET @cmd=concat(@l1,@l2,@l3,@l4,@l5,@l6); + +SET @str = IF(@have_pfs = 1, @cmd, 'SET @dummy = 0'); +PREPARE stmt FROM @str; +EXECUTE stmt; +DROP PREPARE stmt; + +-- +-- TABLE SETUP_CONSUMERS +-- + +SET @l1="CREATE TABLE performance_schema.setup_consumers("; +SET @l2="NAME VARCHAR(64) not null,"; +SET @l3="ENABLED ENUM ('YES', 'NO') not null"; +SET @l4=")ENGINE=PERFORMANCE_SCHEMA;"; + +SET @cmd=concat(@l1,@l2,@l3,@l4); + +SET @str = IF(@have_pfs = 1, @cmd, 'SET @dummy = 0'); +PREPARE stmt FROM @str; +EXECUTE stmt; +DROP PREPARE stmt; + +-- +-- TABLE SETUP_INSTRUMENTS +-- + +SET @l1="CREATE TABLE performance_schema.setup_instruments("; +SET @l2="NAME VARCHAR(128) not null,"; +SET @l3="ENABLED ENUM ('YES', 'NO') not null,"; +SET @l4="TIMED ENUM ('YES', 'NO') not null"; +SET @l5=")ENGINE=PERFORMANCE_SCHEMA;"; + +SET @cmd=concat(@l1,@l2,@l3,@l4,@l5); + +SET @str = IF(@have_pfs = 1, @cmd, 'SET @dummy = 0'); +PREPARE stmt FROM @str; +EXECUTE stmt; +DROP PREPARE stmt; + +-- +-- TABLE SETUP_TIMERS +-- + +SET @l1="CREATE TABLE performance_schema.setup_timers("; +SET @l2="NAME VARCHAR(64) not null,"; +SET @l3="TIMER_NAME ENUM ('CYCLE', 'NANOSECOND', 'MICROSECOND', 'MILLISECOND', 'TICK') not null"; +SET @l4=")ENGINE=PERFORMANCE_SCHEMA;"; + +SET @cmd=concat(@l1,@l2,@l3,@l4); + +SET @str = IF(@have_pfs = 1, @cmd, 'SET @dummy = 0'); +PREPARE stmt FROM @str; +EXECUTE stmt; +DROP PREPARE stmt; + +-- +-- TABLE THREADS +-- + +SET @l1="CREATE TABLE performance_schema.threads("; +SET @l2="THREAD_ID INTEGER not null,"; +SET @l3="PROCESSLIST_ID INTEGER,"; +SET @l4="NAME VARCHAR(128) not null"; +SET @l5=")ENGINE=PERFORMANCE_SCHEMA;"; + +SET @cmd=concat(@l1,@l2,@l3,@l4,@l5); + +SET @str = IF(@have_pfs = 1, @cmd, 'SET @dummy = 0'); +PREPARE stmt FROM @str; +EXECUTE stmt; +DROP PREPARE stmt; + +-- +-- Unlike 'performance_schema', the 'mysql' database is reserved already, +-- so no user procedure is supposed to be there. +-- +-- NOTE: until upgrade is finished, stored routines are not available, +-- because system tables (e.g. mysql.proc) might be not usable. +-- +drop procedure if exists mysql.die; +create procedure mysql.die() signal sqlstate 'HY000' set message_text='Unexpected content found in the performance_schema database.'; + +-- +-- For broken upgrades, SIGNAL the error +-- + +SET @cmd="call mysql.die()"; + +SET @str = IF(@broken_pfs > 0, @cmd, 'SET @dummy = 0'); +PREPARE stmt FROM @str; +EXECUTE stmt; +DROP PREPARE stmt; + +drop procedure mysql.die; diff --git a/database/share/mysql_system_tables.sql b/database/share/mysql_system_tables.sql new file mode 100644 index 0000000..1ee73bf --- /dev/null +++ b/database/share/mysql_system_tables.sql @@ -0,0 +1,106 @@ +-- Copyright (c) 2007, 2013, Oracle and/or its affiliates. +-- Copyright (c) 2008, 2014, SkySQL Ab. +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; version 2 of the License. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA + +-- +-- The system tables of MySQL Server +-- + +set sql_mode=''; +set storage_engine=myisam; +flush tables; + +CREATE TABLE IF NOT EXISTS db ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Select_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Insert_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Update_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Delete_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Drop_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Grant_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, References_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Index_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_tmp_table_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Lock_tables_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Show_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Execute_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Event_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Trigger_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, PRIMARY KEY Host (Host,Db,User), KEY User (User) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Database privileges'; + +-- Remember for later if db table already existed +set @had_db_table= @@warning_count != 0; + +CREATE TABLE IF NOT EXISTS host ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, Select_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Insert_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Update_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Delete_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Drop_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Grant_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, References_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Index_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_tmp_table_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Lock_tables_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Show_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Execute_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Trigger_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, PRIMARY KEY Host (Host,Db) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Host privileges; Merged with database privileges'; + +CREATE TABLE IF NOT EXISTS user ( Host char(60) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Password char(41) character set latin1 collate latin1_bin DEFAULT '' NOT NULL, Select_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Insert_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Update_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Delete_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Drop_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Reload_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Shutdown_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Process_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, File_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Grant_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, References_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Index_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Show_db_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Super_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_tmp_table_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Lock_tables_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Execute_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Repl_slave_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Repl_client_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Show_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Alter_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_user_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Event_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Trigger_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, Create_tablespace_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, ssl_type enum('','ANY','X509', 'SPECIFIED') COLLATE utf8_general_ci DEFAULT '' NOT NULL, ssl_cipher BLOB NOT NULL, x509_issuer BLOB NOT NULL, x509_subject BLOB NOT NULL, max_questions int(11) unsigned DEFAULT 0 NOT NULL, max_updates int(11) unsigned DEFAULT 0 NOT NULL, max_connections int(11) unsigned DEFAULT 0 NOT NULL, max_user_connections int(11) DEFAULT 0 NOT NULL, plugin char(64) CHARACTER SET latin1 DEFAULT '' NOT NULL, authentication_string TEXT NOT NULL, PRIMARY KEY Host (Host,User) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Users and global privileges'; + +-- Remember for later if user table already existed +set @had_user_table= @@warning_count != 0; + + +CREATE TABLE IF NOT EXISTS func ( name char(64) binary DEFAULT '' NOT NULL, ret tinyint(1) DEFAULT '0' NOT NULL, dl char(128) DEFAULT '' NOT NULL, type enum ('function','aggregate') COLLATE utf8_general_ci NOT NULL, PRIMARY KEY (name) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='User defined functions'; + + +CREATE TABLE IF NOT EXISTS plugin ( name varchar(64) DEFAULT '' NOT NULL, dl varchar(128) DEFAULT '' NOT NULL, PRIMARY KEY (name) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci comment='MySQL plugins'; + + +CREATE TABLE IF NOT EXISTS servers ( Server_name char(64) NOT NULL DEFAULT '', Host char(64) NOT NULL DEFAULT '', Db char(64) NOT NULL DEFAULT '', Username char(64) NOT NULL DEFAULT '', Password char(64) NOT NULL DEFAULT '', Port INT(4) NOT NULL DEFAULT '0', Socket char(64) NOT NULL DEFAULT '', Wrapper char(64) NOT NULL DEFAULT '', Owner char(64) NOT NULL DEFAULT '', PRIMARY KEY (Server_name)) CHARACTER SET utf8 comment='MySQL Foreign Servers table'; + + +CREATE TABLE IF NOT EXISTS tables_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Table_name char(64) binary DEFAULT '' NOT NULL, Grantor char(77) DEFAULT '' NOT NULL, Timestamp timestamp, Table_priv set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger') COLLATE utf8_general_ci DEFAULT '' NOT NULL, Column_priv set('Select','Insert','Update','References') COLLATE utf8_general_ci DEFAULT '' NOT NULL, PRIMARY KEY (Host,Db,User,Table_name), KEY Grantor (Grantor) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Table privileges'; + +CREATE TABLE IF NOT EXISTS columns_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Table_name char(64) binary DEFAULT '' NOT NULL, Column_name char(64) binary DEFAULT '' NOT NULL, Timestamp timestamp, Column_priv set('Select','Insert','Update','References') COLLATE utf8_general_ci DEFAULT '' NOT NULL, PRIMARY KEY (Host,Db,User,Table_name,Column_name) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Column privileges'; + + +CREATE TABLE IF NOT EXISTS help_topic ( help_topic_id int unsigned not null, name char(64) not null, help_category_id smallint unsigned not null, description text not null, example text not null, url text not null, primary key (help_topic_id), unique index (name) ) engine=MyISAM CHARACTER SET utf8 comment='help topics'; + + +CREATE TABLE IF NOT EXISTS help_category ( help_category_id smallint unsigned not null, name char(64) not null, parent_category_id smallint unsigned null, url text not null, primary key (help_category_id), unique index (name) ) engine=MyISAM CHARACTER SET utf8 comment='help categories'; + + +CREATE TABLE IF NOT EXISTS help_relation ( help_topic_id int unsigned not null references help_topic, help_keyword_id int unsigned not null references help_keyword, primary key (help_keyword_id, help_topic_id) ) engine=MyISAM CHARACTER SET utf8 comment='keyword-topic relation'; + + +CREATE TABLE IF NOT EXISTS help_keyword ( help_keyword_id int unsigned not null, name char(64) not null, primary key (help_keyword_id), unique index (name) ) engine=MyISAM CHARACTER SET utf8 comment='help keywords'; + + +CREATE TABLE IF NOT EXISTS time_zone_name ( Name char(64) NOT NULL, Time_zone_id int unsigned NOT NULL, PRIMARY KEY Name (Name) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone names'; + + +CREATE TABLE IF NOT EXISTS time_zone ( Time_zone_id int unsigned NOT NULL auto_increment, Use_leap_seconds enum('Y','N') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, PRIMARY KEY TzId (Time_zone_id) ) engine=MyISAM CHARACTER SET utf8 comment='Time zones'; + + +CREATE TABLE IF NOT EXISTS time_zone_transition ( Time_zone_id int unsigned NOT NULL, Transition_time bigint signed NOT NULL, Transition_type_id int unsigned NOT NULL, PRIMARY KEY TzIdTranTime (Time_zone_id, Transition_time) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone transitions'; + + +CREATE TABLE IF NOT EXISTS time_zone_transition_type ( Time_zone_id int unsigned NOT NULL, Transition_type_id int unsigned NOT NULL, Offset int signed DEFAULT 0 NOT NULL, Is_DST tinyint unsigned DEFAULT 0 NOT NULL, Abbreviation char(8) DEFAULT '' NOT NULL, PRIMARY KEY TzIdTrTId (Time_zone_id, Transition_type_id) ) engine=MyISAM CHARACTER SET utf8 comment='Time zone transition types'; + + +CREATE TABLE IF NOT EXISTS time_zone_leap_second ( Transition_time bigint signed NOT NULL, Correction int signed NOT NULL, PRIMARY KEY TranTime (Transition_time) ) engine=MyISAM CHARACTER SET utf8 comment='Leap seconds information for time zones'; + +CREATE TABLE IF NOT EXISTS proc (db char(64) collate utf8_bin DEFAULT '' NOT NULL, name char(64) DEFAULT '' NOT NULL, type enum('FUNCTION','PROCEDURE') NOT NULL, specific_name char(64) DEFAULT '' NOT NULL, language enum('SQL') DEFAULT 'SQL' NOT NULL, sql_data_access enum( 'CONTAINS_SQL', 'NO_SQL', 'READS_SQL_DATA', 'MODIFIES_SQL_DATA') DEFAULT 'CONTAINS_SQL' NOT NULL, is_deterministic enum('YES','NO') DEFAULT 'NO' NOT NULL, security_type enum('INVOKER','DEFINER') DEFAULT 'DEFINER' NOT NULL, param_list blob NOT NULL, returns longblob DEFAULT '' NOT NULL, body longblob NOT NULL, definer char(77) collate utf8_bin DEFAULT '' NOT NULL, created timestamp, modified timestamp, sql_mode set( 'REAL_AS_FLOAT', 'PIPES_AS_CONCAT', 'ANSI_QUOTES', 'IGNORE_SPACE', 'IGNORE_BAD_TABLE_OPTIONS', 'ONLY_FULL_GROUP_BY', 'NO_UNSIGNED_SUBTRACTION', 'NO_DIR_IN_CREATE', 'POSTGRESQL', 'ORACLE', 'MSSQL', 'DB2', 'MAXDB', 'NO_KEY_OPTIONS', 'NO_TABLE_OPTIONS', 'NO_FIELD_OPTIONS', 'MYSQL323', 'MYSQL40', 'ANSI', 'NO_AUTO_VALUE_ON_ZERO', 'NO_BACKSLASH_ESCAPES', 'STRICT_TRANS_TABLES', 'STRICT_ALL_TABLES', 'NO_ZERO_IN_DATE', 'NO_ZERO_DATE', 'INVALID_DATES', 'ERROR_FOR_DIVISION_BY_ZERO', 'TRADITIONAL', 'NO_AUTO_CREATE_USER', 'HIGH_NOT_PRECEDENCE', 'NO_ENGINE_SUBSTITUTION', 'PAD_CHAR_TO_FULL_LENGTH') DEFAULT '' NOT NULL, comment text collate utf8_bin NOT NULL, character_set_client char(32) collate utf8_bin, collation_connection char(32) collate utf8_bin, db_collation char(32) collate utf8_bin, body_utf8 longblob, PRIMARY KEY (db,name,type)) engine=MyISAM character set utf8 comment='Stored Procedures'; + +CREATE TABLE IF NOT EXISTS procs_priv ( Host char(60) binary DEFAULT '' NOT NULL, Db char(64) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Routine_name char(64) COLLATE utf8_general_ci DEFAULT '' NOT NULL, Routine_type enum('FUNCTION','PROCEDURE') NOT NULL, Grantor char(77) DEFAULT '' NOT NULL, Proc_priv set('Execute','Alter Routine','Grant') COLLATE utf8_general_ci DEFAULT '' NOT NULL, Timestamp timestamp, PRIMARY KEY (Host,Db,User,Routine_name,Routine_type), KEY Grantor (Grantor) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Procedure privileges'; + +-- Create general_log if CSV is enabled. + +SET @str = IF (@@have_csv = 'YES', 'CREATE TABLE IF NOT EXISTS general_log (event_time TIMESTAMP(6) NOT NULL, user_host MEDIUMTEXT NOT NULL, thread_id INTEGER NOT NULL, server_id INTEGER UNSIGNED NOT NULL, command_type VARCHAR(64) NOT NULL, argument MEDIUMTEXT NOT NULL) engine=CSV CHARACTER SET utf8 comment="General log"', 'SET @dummy = 0'); + +PREPARE stmt FROM @str; +EXECUTE stmt; +DROP PREPARE stmt; + +-- Create slow_log if CSV is enabled. + +SET @str = IF (@@have_csv = 'YES', 'CREATE TABLE IF NOT EXISTS slow_log (start_time TIMESTAMP(6) NOT NULL, user_host MEDIUMTEXT NOT NULL, query_time TIME(6) NOT NULL, lock_time TIME(6) NOT NULL, rows_sent INTEGER NOT NULL, rows_examined INTEGER NOT NULL, db VARCHAR(512) NOT NULL, last_insert_id INTEGER NOT NULL, insert_id INTEGER NOT NULL, server_id INTEGER UNSIGNED NOT NULL, sql_text MEDIUMTEXT NOT NULL) engine=CSV CHARACTER SET utf8 comment="Slow log"', 'SET @dummy = 0'); + +PREPARE stmt FROM @str; +EXECUTE stmt; +DROP PREPARE stmt; + +CREATE TABLE IF NOT EXISTS event ( db char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '', name char(64) CHARACTER SET utf8 NOT NULL default '', body longblob NOT NULL, definer char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '', execute_at DATETIME default NULL, interval_value int(11) default NULL, interval_field ENUM('YEAR','QUARTER','MONTH','DAY','HOUR','MINUTE','WEEK','SECOND','MICROSECOND','YEAR_MONTH','DAY_HOUR','DAY_MINUTE','DAY_SECOND','HOUR_MINUTE','HOUR_SECOND','MINUTE_SECOND','DAY_MICROSECOND','HOUR_MICROSECOND','MINUTE_MICROSECOND','SECOND_MICROSECOND') default NULL, created TIMESTAMP NOT NULL, modified TIMESTAMP NOT NULL, last_executed DATETIME default NULL, starts DATETIME default NULL, ends DATETIME default NULL, status ENUM('ENABLED','DISABLED','SLAVESIDE_DISABLED') NOT NULL default 'ENABLED', on_completion ENUM('DROP','PRESERVE') NOT NULL default 'DROP', sql_mode set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH') DEFAULT '' NOT NULL, comment char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '', originator INTEGER UNSIGNED NOT NULL, time_zone char(64) CHARACTER SET latin1 NOT NULL DEFAULT 'SYSTEM', character_set_client char(32) collate utf8_bin, collation_connection char(32) collate utf8_bin, db_collation char(32) collate utf8_bin, body_utf8 longblob, PRIMARY KEY (db, name) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT 'Events'; + + +CREATE TABLE IF NOT EXISTS ndb_binlog_index (Position BIGINT UNSIGNED NOT NULL, File VARCHAR(255) NOT NULL, epoch BIGINT UNSIGNED NOT NULL, inserts BIGINT UNSIGNED NOT NULL, updates BIGINT UNSIGNED NOT NULL, deletes BIGINT UNSIGNED NOT NULL, schemaops BIGINT UNSIGNED NOT NULL, PRIMARY KEY(epoch)) ENGINE=MYISAM; + +CREATE TABLE IF NOT EXISTS proxies_priv (Host char(60) binary DEFAULT '' NOT NULL, User char(16) binary DEFAULT '' NOT NULL, Proxied_host char(60) binary DEFAULT '' NOT NULL, Proxied_user char(16) binary DEFAULT '' NOT NULL, With_grant BOOL DEFAULT 0 NOT NULL, Grantor char(77) DEFAULT '' NOT NULL, Timestamp timestamp, PRIMARY KEY Host (Host,User,Proxied_host,Proxied_user), KEY Grantor (Grantor) ) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='User proxy privileges'; + +-- Remember for later if proxies_priv table already existed +set @had_proxies_priv_table= @@warning_count != 0; diff --git a/database/share/mysql_system_tables_data.sql b/database/share/mysql_system_tables_data.sql new file mode 100644 index 0000000..18a319c --- /dev/null +++ b/database/share/mysql_system_tables_data.sql @@ -0,0 +1,55 @@ +-- Copyright (c) 2007, 2013, Oracle and/or its affiliates. +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; version 2 of the License. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA + +-- +-- The inital data for system tables of MySQL Server +-- + +-- When setting up a "cross bootstrap" database (e.g., creating data on a Unix +-- host which will later be included in a Windows zip file), any lines +-- containing "@current_hostname" are filtered out by mysql_install_db. + +-- Get the hostname, if the hostname has any wildcard character like "_" or "%" +-- add escape character in front of wildcard character to convert "_" or "%" to +-- a plain character +SELECT LOWER( REPLACE((SELECT REPLACE(@@hostname,'_','\_')),'%','\%') )INTO @current_hostname; + + +-- Fill "db" table with default grants for anyone to +-- access database 'test' and 'test_%' if "db" table didn't exist +CREATE TEMPORARY TABLE tmp_db LIKE db; +INSERT INTO tmp_db VALUES ('%','test','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','N','N','Y','Y'); +INSERT INTO tmp_db VALUES ('%','test\_%','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','N','N','Y','Y'); +INSERT INTO db SELECT * FROM tmp_db WHERE @had_db_table=0; +DROP TABLE tmp_db; + + +-- Fill "user" table with default users allowing root access +-- from local machine if "user" table didn't exist before +CREATE TEMPORARY TABLE tmp_user LIKE user; +INSERT INTO tmp_user VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'',''); +REPLACE INTO tmp_user SELECT @current_hostname,'root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'','' FROM dual WHERE @current_hostname != 'localhost'; +REPLACE INTO tmp_user VALUES ('127.0.0.1','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'',''); +REPLACE INTO tmp_user VALUES ('::1','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'',''); +INSERT INTO tmp_user (host,user) VALUES ('localhost',''); +INSERT INTO tmp_user (host,user) SELECT @current_hostname,'' FROM dual WHERE @current_hostname != 'localhost'; +INSERT INTO user SELECT * FROM tmp_user WHERE @had_user_table=0; +DROP TABLE tmp_user; + +CREATE TEMPORARY TABLE tmp_proxies_priv LIKE proxies_priv; +INSERT INTO tmp_proxies_priv VALUES ('localhost', 'root', '', '', TRUE, '', now()); +REPLACE INTO tmp_proxies_priv SELECT @current_hostname, 'root', '', '', TRUE, '', now() FROM DUAL WHERE LOWER (@current_hostname) != 'localhost'; +INSERT INTO proxies_priv SELECT * FROM tmp_proxies_priv WHERE @had_proxies_priv_table=0; +DROP TABLE tmp_proxies_priv; diff --git a/database/share/mysql_test_data_timezone.sql b/database/share/mysql_test_data_timezone.sql new file mode 100644 index 0000000..b4902c3 --- /dev/null +++ b/database/share/mysql_test_data_timezone.sql @@ -0,0 +1,21 @@ +-- Copyright (C) 2007 MySQL AB +-- Use is subject to license terms +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; version 2 of the License. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + +INSERT INTO time_zone_name (Name, Time_Zone_id) VALUES ('MET', 1), ('UTC', 2), ('Universal', 2), ('Europe/Moscow',3), ('leap/Europe/Moscow',4), ('Japan', 5); +INSERT INTO time_zone (Time_zone_id, Use_leap_seconds) VALUES (1,'N'), (2,'N'), (3,'N'), (4,'Y'), (5,'N'); +INSERT INTO time_zone_transition (Time_zone_id, Transition_time, Transition_type_id) VALUES (1, -1693706400, 0) ,(1, -1680483600, 1) ,(1, -1663455600, 2) ,(1, -1650150000, 3) ,(1, -1632006000, 2) ,(1, -1618700400, 3) ,(1, -938905200, 2) ,(1, -857257200, 3) ,(1, -844556400, 2) ,(1, -828226800, 3) ,(1, -812502000, 2) ,(1, -796777200, 3) ,(1, 228877200, 2) ,(1, 243997200, 3) ,(1, 260326800, 2) ,(1, 276051600, 3) ,(1, 291776400, 2) ,(1, 307501200, 3) ,(1, 323830800, 2) ,(1, 338950800, 3) ,(1, 354675600, 2) ,(1, 370400400, 3) ,(1, 386125200, 2) ,(1, 401850000, 3) ,(1, 417574800, 2) ,(1, 433299600, 3) ,(1, 449024400, 2) ,(1, 465354000, 3) ,(1, 481078800, 2) ,(1, 496803600, 3) ,(1, 512528400, 2) ,(1, 528253200, 3) ,(1, 543978000, 2) ,(1, 559702800, 3) ,(1, 575427600, 2) ,(1, 591152400, 3) ,(1, 606877200, 2) ,(1, 622602000, 3) ,(1, 638326800, 2) ,(1, 654656400, 3) ,(1, 670381200, 2) ,(1, 686106000, 3) ,(1, 701830800, 2) ,(1, 717555600, 3) ,(1, 733280400, 2) ,(1, 749005200, 3) ,(1, 764730000, 2) ,(1, 780454800, 3) ,(1, 796179600, 2) ,(1, 811904400, 3) ,(1, 828234000, 2) ,(1, 846378000, 3) ,(1, 859683600, 2) ,(1, 877827600, 3) ,(1, 891133200, 2) ,(1, 909277200, 3) ,(1, 922582800, 2) ,(1, 941331600, 3) ,(1, 954032400, 2) ,(1, 972781200, 3) ,(1, 985482000, 2) ,(1, 1004230800, 3) ,(1, 1017536400, 2) ,(1, 1035680400, 3) ,(1, 1048986000, 2) ,(1, 1067130000, 3) ,(1, 1080435600, 2) ,(1, 1099184400, 3) ,(1, 1111885200, 2) ,(1, 1130634000, 3) ,(1, 1143334800, 2) ,(1, 1162083600, 3) ,(1, 1174784400, 2) ,(1, 1193533200, 3) ,(1, 1206838800, 2) ,(1, 1224982800, 3) ,(1, 1238288400, 2) ,(1, 1256432400, 3) ,(1, 1269738000, 2) ,(1, 1288486800, 3) ,(1, 1301187600, 2) ,(1, 1319936400, 3) ,(1, 1332637200, 2) ,(1, 1351386000, 3) ,(1, 1364691600, 2) ,(1, 1382835600, 3) ,(1, 1396141200, 2) ,(1, 1414285200, 3) ,(1, 1427590800, 2) ,(1, 1445734800, 3) ,(1, 1459040400, 2) ,(1, 1477789200, 3) ,(1, 1490490000, 2) ,(1, 1509238800, 3) ,(1, 1521939600, 2) ,(1, 1540688400, 3) ,(1, 1553994000, 2) ,(1, 1572138000, 3) ,(1, 1585443600, 2) ,(1, 1603587600, 3) ,(1, 1616893200, 2) ,(1, 1635642000, 3) ,(1, 1648342800, 2) ,(1, 1667091600, 3) ,(1, 1679792400, 2) ,(1, 1698541200, 3) ,(1, 1711846800, 2) ,(1, 1729990800, 3) ,(1, 1743296400, 2) ,(1, 1761440400, 3) ,(1, 1774746000, 2) ,(1, 1792890000, 3) ,(1, 1806195600, 2) ,(1, 1824944400, 3) ,(1, 1837645200, 2) ,(1, 1856394000, 3) ,(1, 1869094800, 2) ,(1, 1887843600, 3) ,(1, 1901149200, 2) ,(1, 1919293200, 3) ,(1, 1932598800, 2) ,(1, 1950742800, 3) ,(1, 1964048400, 2) ,(1, 1982797200, 3) ,(1, 1995498000, 2) ,(1, 2014246800, 3) ,(1, 2026947600, 2) ,(1, 2045696400, 3) ,(1, 2058397200, 2) ,(1, 2077146000, 3) ,(1, 2090451600, 2) ,(1, 2108595600, 3) ,(1, 2121901200, 2) ,(1, 2140045200, 3) ,(3, -1688265000, 2) ,(3, -1656819048, 1) ,(3, -1641353448, 2) ,(3, -1627965048, 3) ,(3, -1618716648, 1) ,(3, -1596429048, 3) ,(3, -1593829848, 5) ,(3, -1589860800, 4) ,(3, -1542427200, 5) ,(3, -1539493200, 6) ,(3, -1525323600, 5) ,(3, -1522728000, 4) ,(3, -1491188400, 7) ,(3, -1247536800, 4) ,(3, 354920400, 5) ,(3, 370728000, 4) ,(3, 386456400, 5) ,(3, 402264000, 4) ,(3, 417992400, 5) ,(3, 433800000, 4) ,(3, 449614800, 5) ,(3, 465346800, 8) ,(3, 481071600, 9) ,(3, 496796400, 8) ,(3, 512521200, 9) ,(3, 528246000, 8) ,(3, 543970800, 9) ,(3, 559695600, 8) ,(3, 575420400, 9) ,(3, 591145200, 8) ,(3, 606870000, 9) ,(3, 622594800, 8) ,(3, 638319600, 9) ,(3, 654649200, 8) ,(3, 670374000, 10) ,(3, 686102400, 11) ,(3, 695779200, 8) ,(3, 701812800, 5) ,(3, 717534000, 4) ,(3, 733273200, 9) ,(3, 748998000, 8) ,(3, 764722800, 9) ,(3, 780447600, 8) ,(3, 796172400, 9) ,(3, 811897200, 8) ,(3, 828226800, 9) ,(3, 846370800, 8) ,(3, 859676400, 9) ,(3, 877820400, 8) ,(3, 891126000, 9) ,(3, 909270000, 8) ,(3, 922575600, 9) ,(3, 941324400, 8) ,(3, 954025200, 9) ,(3, 972774000, 8) ,(3, 985474800, 9) ,(3, 1004223600, 8) ,(3, 1017529200, 9) ,(3, 1035673200, 8) ,(3, 1048978800, 9) ,(3, 1067122800, 8) ,(3, 1080428400, 9) ,(3, 1099177200, 8) ,(3, 1111878000, 9) ,(3, 1130626800, 8) ,(3, 1143327600, 9) ,(3, 1162076400, 8) ,(3, 1174777200, 9) ,(3, 1193526000, 8) ,(3, 1206831600, 9) ,(3, 1224975600, 8) ,(3, 1238281200, 9) ,(3, 1256425200, 8) ,(3, 1269730800, 9) ,(3, 1288479600, 8) ,(3, 1301180400, 9) ,(3, 1319929200, 8) ,(3, 1332630000, 9) ,(3, 1351378800, 8) ,(3, 1364684400, 9) ,(3, 1382828400, 8) ,(3, 1396134000, 9) ,(3, 1414278000, 8) ,(3, 1427583600, 9) ,(3, 1445727600, 8) ,(3, 1459033200, 9) ,(3, 1477782000, 8) ,(3, 1490482800, 9) ,(3, 1509231600, 8) ,(3, 1521932400, 9) ,(3, 1540681200, 8) ,(3, 1553986800, 9) ,(3, 1572130800, 8) ,(3, 1585436400, 9) ,(3, 1603580400, 8) ,(3, 1616886000, 9) ,(3, 1635634800, 8) ,(3, 1648335600, 9) ,(3, 1667084400, 8) ,(3, 1679785200, 9) ,(3, 1698534000, 8) ,(3, 1711839600, 9) ,(3, 1729983600, 8) ,(3, 1743289200, 9) ,(3, 1761433200, 8) ,(3, 1774738800, 9) ,(3, 1792882800, 8) ,(3, 1806188400, 9) ,(3, 1824937200, 8) ,(3, 1837638000, 9) ,(3, 1856386800, 8) ,(3, 1869087600, 9) ,(3, 1887836400, 8) ,(3, 1901142000, 9) ,(3, 1919286000, 8) ,(3, 1932591600, 9) ,(3, 1950735600, 8) ,(3, 1964041200, 9) ,(3, 1982790000, 8) ,(3, 1995490800, 9) ,(3, 2014239600, 8) ,(3, 2026940400, 9) ,(3, 2045689200, 8) ,(3, 2058390000, 9) ,(3, 2077138800, 8) ,(3, 2090444400, 9) ,(3, 2108588400, 8) ,(3, 2121894000, 9) ,(3, 2140038000, 8) ,(4, -1688265000, 2) ,(4, -1656819048, 1) ,(4, -1641353448, 2) ,(4, -1627965048, 3) ,(4, -1618716648, 1) ,(4, -1596429048, 3) ,(4, -1593829848, 5) ,(4, -1589860800, 4) ,(4, -1542427200, 5) ,(4, -1539493200, 6) ,(4, -1525323600, 5) ,(4, -1522728000, 4) ,(4, -1491188400, 7) ,(4, -1247536800, 4) ,(4, 354920409, 5) ,(4, 370728010, 4) ,(4, 386456410, 5) ,(4, 402264011, 4) ,(4, 417992411, 5) ,(4, 433800012, 4) ,(4, 449614812, 5) ,(4, 465346812, 8) ,(4, 481071612, 9) ,(4, 496796413, 8) ,(4, 512521213, 9) ,(4, 528246013, 8) ,(4, 543970813, 9) ,(4, 559695613, 8) ,(4, 575420414, 9) ,(4, 591145214, 8) ,(4, 606870014, 9) ,(4, 622594814, 8) ,(4, 638319615, 9) ,(4, 654649215, 8) ,(4, 670374016, 10) ,(4, 686102416, 11) ,(4, 695779216, 8) ,(4, 701812816, 5) ,(4, 717534017, 4) ,(4, 733273217, 9) ,(4, 748998018, 8) ,(4, 764722818, 9) ,(4, 780447619, 8) ,(4, 796172419, 9) ,(4, 811897219, 8) ,(4, 828226820, 9) ,(4, 846370820, 8) ,(4, 859676420, 9) ,(4, 877820421, 8) ,(4, 891126021, 9) ,(4, 909270021, 8) ,(4, 922575622, 9) ,(4, 941324422, 8) ,(4, 954025222, 9) ,(4, 972774022, 8) ,(4, 985474822, 9) ,(4, 1004223622, 8) ,(4, 1017529222, 9) ,(4, 1035673222, 8) ,(4, 1048978822, 9) ,(4, 1067122822, 8) ,(4, 1080428422, 9) ,(4, 1099177222, 8) ,(4, 1111878022, 9) ,(4, 1130626822, 8) ,(4, 1143327622, 9) ,(4, 1162076422, 8) ,(4, 1174777222, 9) ,(4, 1193526022, 8) ,(4, 1206831622, 9) ,(4, 1224975622, 8) ,(4, 1238281222, 9) ,(4, 1256425222, 8) ,(4, 1269730822, 9) ,(4, 1288479622, 8) ,(4, 1301180422, 9) ,(4, 1319929222, 8) ,(4, 1332630022, 9) ,(4, 1351378822, 8) ,(4, 1364684422, 9) ,(4, 1382828422, 8) ,(4, 1396134022, 9) ,(4, 1414278022, 8) ,(4, 1427583622, 9) ,(4, 1445727622, 8) ,(4, 1459033222, 9) ,(4, 1477782022, 8) ,(4, 1490482822, 9) ,(4, 1509231622, 8) ,(4, 1521932422, 9) ,(4, 1540681222, 8) ,(4, 1553986822, 9) ,(4, 1572130822, 8) ,(4, 1585436422, 9) ,(4, 1603580422, 8) ,(4, 1616886022, 9) ,(4, 1635634822, 8) ,(4, 1648335622, 9) ,(4, 1667084422, 8) ,(4, 1679785222, 9) ,(4, 1698534022, 8) ,(4, 1711839622, 9) ,(4, 1729983622, 8) ,(4, 1743289222, 9) ,(4, 1761433222, 8) ,(4, 1774738822, 9) ,(4, 1792882822, 8) ,(4, 1806188422, 9) ,(4, 1824937222, 8) ,(4, 1837638022, 9) ,(4, 1856386822, 8) ,(4, 1869087622, 9) ,(4, 1887836422, 8) ,(4, 1901142022, 9) ,(4, 1919286022, 8) ,(4, 1932591622, 9) ,(4, 1950735622, 8) ,(4, 1964041222, 9) ,(4, 1982790022, 8) ,(4, 1995490822, 9) ,(4, 2014239622, 8) ,(4, 2026940422, 9) ,(4, 2045689222, 8) ,(4, 2058390022, 9) ,(4, 2077138822, 8) ,(4, 2090444422, 9) ,(4, 2108588422, 8) ,(4, 2121894022, 9) ,(4, 2140038022, 8) ,(5, -1009875600, 1); +INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES (1, 0, 7200, 1, 'MEST') ,(1, 1, 3600, 0, 'MET') ,(1, 2, 7200, 1, 'MEST') ,(1, 3, 3600, 0, 'MET') ,(2, 0, 0, 0, 'UTC') ,(3, 0, 9000, 0, 'MMT') ,(3, 1, 12648, 1, 'MST') ,(3, 2, 9048, 0, 'MMT') ,(3, 3, 16248, 1, 'MDST') ,(3, 4, 10800, 0, 'MSK') ,(3, 5, 14400, 1, 'MSD') ,(3, 6, 18000, 1, 'MSD') ,(3, 7, 7200, 0, 'EET') ,(3, 8, 10800, 0, 'MSK') ,(3, 9, 14400, 1, 'MSD') ,(3, 10, 10800, 1, 'EEST') ,(3, 11, 7200, 0, 'EET') ,(4, 0, 9000, 0, 'MMT') ,(4, 1, 12648, 1, 'MST') ,(4, 2, 9048, 0, 'MMT') ,(4, 3, 16248, 1, 'MDST') ,(4, 4, 10800, 0, 'MSK') ,(4, 5, 14400, 1, 'MSD') ,(4, 6, 18000, 1, 'MSD') ,(4, 7, 7200, 0, 'EET') ,(4, 8, 10800, 0, 'MSK') ,(4, 9, 14400, 1, 'MSD') ,(4, 10, 10800, 1, 'EEST') ,(4, 11, 7200, 0, 'EET') ,(5, 0, 32400, 0, 'CJT') ,(5, 1, 32400, 0, 'JST'); +INSERT INTO time_zone_leap_second (Transition_time, Correction) VALUES (78796800, 1) ,(94694401, 2) ,(126230402, 3) ,(157766403, 4) ,(189302404, 5) ,(220924805, 6) ,(252460806, 7) ,(283996807, 8) ,(315532808, 9) ,(362793609, 10) ,(394329610, 11) ,(425865611, 12) ,(489024012, 13) ,(567993613, 14) ,(631152014, 15) ,(662688015, 16) ,(709948816, 17) ,(741484817, 18) ,(773020818, 19) ,(820454419, 20) ,(867715220, 21) ,(915148821, 22); diff --git a/database/share/norwegian-ny/errmsg.sys b/database/share/norwegian-ny/errmsg.sys new file mode 100644 index 0000000..6b561b6 Binary files /dev/null and b/database/share/norwegian-ny/errmsg.sys differ diff --git a/database/share/norwegian/errmsg.sys b/database/share/norwegian/errmsg.sys new file mode 100644 index 0000000..659ae13 Binary files /dev/null and b/database/share/norwegian/errmsg.sys differ diff --git a/database/share/polish/errmsg.sys b/database/share/polish/errmsg.sys new file mode 100644 index 0000000..fc4d858 Binary files /dev/null and b/database/share/polish/errmsg.sys differ diff --git a/database/share/portuguese/errmsg.sys b/database/share/portuguese/errmsg.sys new file mode 100644 index 0000000..e576548 Binary files /dev/null and b/database/share/portuguese/errmsg.sys differ diff --git a/database/share/romanian/errmsg.sys b/database/share/romanian/errmsg.sys new file mode 100644 index 0000000..9345714 Binary files /dev/null and b/database/share/romanian/errmsg.sys differ diff --git a/database/share/russian/errmsg.sys b/database/share/russian/errmsg.sys new file mode 100644 index 0000000..56c6ea7 Binary files /dev/null and b/database/share/russian/errmsg.sys differ diff --git a/database/share/serbian/errmsg.sys b/database/share/serbian/errmsg.sys new file mode 100644 index 0000000..ccde410 Binary files /dev/null and b/database/share/serbian/errmsg.sys differ diff --git a/database/share/slovak/errmsg.sys b/database/share/slovak/errmsg.sys new file mode 100644 index 0000000..6a3c32c Binary files /dev/null and b/database/share/slovak/errmsg.sys differ diff --git a/database/share/spanish/errmsg.sys b/database/share/spanish/errmsg.sys new file mode 100644 index 0000000..9221418 Binary files /dev/null and b/database/share/spanish/errmsg.sys differ diff --git a/database/share/swedish/errmsg.sys b/database/share/swedish/errmsg.sys new file mode 100644 index 0000000..401871f Binary files /dev/null and b/database/share/swedish/errmsg.sys differ diff --git a/database/share/ukrainian/errmsg.sys b/database/share/ukrainian/errmsg.sys new file mode 100644 index 0000000..a1c3284 Binary files /dev/null and b/database/share/ukrainian/errmsg.sys differ diff --git a/database/sql-bench/Data/ATIS/aircraft.txt b/database/sql-bench/Data/ATIS/aircraft.txt new file mode 100644 index 0000000..a8d91c3 --- /dev/null +++ b/database/sql-bench/Data/ATIS/aircraft.txt @@ -0,0 +1,135 @@ +'ATR','AEROSPATIALE/AERITALIA (ALL SERIES)',2,'TURBOPROP','NO',80.58,73.83,32446,49,10603,277,0,'YES' +'SSC','AEROSPATIALE-BRITISH AEROSPACE (BAC) CONCORDE',4,'JET','NO',83.83,203.75,400000,128,25000,1400,3800,'YES' +'CRV','AEROSPATIALE CARAVELLE (ALL SERIES)',2,'JET','NO',112.50,118.83,127870,140,29100,512,2150,'YES' +'ND2','AEROSPATIALE N 262/FRAKES MOHAWK 298',2,'TURBOPROP','NO',71.83,63.25,23370,27,5810,240,500,'YES' +'NDH','AEROSPATIALE SA 365 DAUPHIN 2',1,'HELICOPTER','NO',0.00,43.50,6615,14,0,196,423,'NO' +'AGH','AGUSTA A 109 A',2,'HELICOPTER','NO',36.08,35.14,5402,6,0,165,351,'NO' +'AB3','AIRBUS INDUSTRIE (ALL SERIES)',2,'JET','YES',147.08,175.91,313060,345,68000,576,2100,'YES' +'AN2','ANTONOV AN22 FREIGHTER',4,'TURBOPROP','YES',211.29,189.62,551156,28,99280,375,3107,'' +'AN4','ANTONOV AN24',2,'TURBOPROP','NO',95.83,77.25,42997,50,8150,295,807,'NO' +'AN6','ANTONOV AN26 FREIGHTER',2,'TURBOPROP','NO',95.79,77.20,49297,50,0,280,342,'' +'BEC','BEECHCRAFT (ALL SERIES)',2,'TURBOPROP','NO',0.00,0.00,0,0,0,0,0,'NO' +'BEB','BEECHCRAFT BARON',2,'PROPELLER','NO',37.83,28.00,5120,6,1965,225,1085,'NO' +'BEQ','BEECHCRAFT QUEEN AIR',2,'PROPELLER','NO',50.25,35.50,8800,11,3578,214,1185,'NO' +'BEO','BEECHCRAFT TWIN BONANZA',2,'PROPELLER','NO',45.95,31.50,6300,5,2230,201,1110,'NO' +'BE8','BEECHCRAFT 18/VOLPAR TURBO 18',2,'PROPELLER','NO',49.66,35.25,9900,15,4055,256,1515,'NO' +'BE9','BEECHCRAFT C99 AIRLINER',2,'TURBOPROP','NO',45.66,44.50,10900,15,5123,280,1150,'NO' +'BH2','BELL (ALL SERIES)',1,'HELICOPTER','NO',33.25,39.08,3200,4,860,140,341,'NO' +'DHP','BOEING CANADA DHC-2 BEAVER',1,'PROPELLER','NO',48.00,30.25,5100,10,1800,143,733,'' +'DHB','BOEING CANADA DHC-2 TURBO BEAVER',1,'TURBOPROP','NO',48.00,35.25,5370,10,1800,157,750,'NO' +'DHO','BOEING CANADA DHC-3 OTTER',1,'PROPELLER','NO',58.00,41.83,8000,10,2100,132,960,'NO' +'DHT','BOEING CANADA DHC-6 TWIN OTTER',2,'TURBOPROP','NO',65.00,51.75,12500,20,4420,209,745,'NO' +'DH7','BOEING CANADA DHC-7 DASH-7 PASSENGER',4,'TURBOPROP','NO',93.00,80.58,43000,50,15000,275,850,'YES' +'DH8','BOEING CANADA DHC-8 DASH-8 (ALL SERIES)',2,'TURBOPROP','NO',84.00,75.00,0,32,0,300,691,'' +'707','BOEING 707 PASSENGER (ALL SERIES)',4,'JET','NO',130.83,145.08,258000,181,52000,615,6325,'YES' +'70M','BOEING 707-320C MIXED CONFIGURATION',4,'JET','NO',145.75,152.91,336000,145,83447,615,5750,'YES' +'727','BOEING 727 PASSENGER (ALL SERIES)',3,'JET','NO',108.00,133.16,170000,131,35900,622,3000,'YES' +'72M','BOEING 727-100C/100QC MIXED CONFIGURATION',3,'JET','NO',108.00,133.16,160000,96,30500,600,0,'YES' +'72S','BOEING 727-200 (ALL SERIES)',3,'JET','NO',108.00,153.16,191000,145,40670,622,2400,'YES' +'737','BOEING 737 PASSENGER (ALL SERIES)',2,'JET','NO',93.00,94.00,111000,138,29093,577,1300,'YES' +'73M','BOEING 737-200C/200QC MIXED CONFIGURATION',2,'JET','NO',93.00,100.16,125000,130,33561,573,1800,'YES' +'73S','BOEING 737 PASSENGER (ALL 200/200C SERIES)',2,'JET','NO',93.00,100.16,120000,130,34050,577,2300,'YES' +'733','BOEING 737-300',2,'JET','NO',94.75,105.58,135000,138,35500,550,2500,'YES' +'74M','BOEING 747 MIXED CONFIGURATION (ALL SERIES)',4,'JET','YES',195.66,231.83,78500,238,165710,600,5500,'YES' +'747','BOEING 747 PASSENGER (ALL SERIES)',4,'JET','YES',195.66,321.83,833000,452,134000,557,7500,'YES' +'74L','BOEING 747SP',4,'JET','YES',195.66,184.75,700000,430,98000,564,6730,'YES' +'757','BOEING 757-200 PASSENGER',2,'JET','NO',124.50,155.25,220000,224,38940,560,2440,'YES' +'767','BOEING 767 (ALL SERIES)',2,'JET','YES',156.08,159.16,312000,290,69000,550,4500,'YES' +'B11','BRITISH AEROSPACE (BAC) ONE-ELEVEN (ALL SERIES)',2,'JET','NO',88.50,93.50,78500,79,17600,550,1430,'YES' +'VGP','BRITISH AEROSPACE (BAC-VICKERS) VANGUARD PASSENGER',4,'TURBOPROP','NO',118.00,122.87,146500,139,21500,405,2910,'YES' +'VCV','BRITISH AEROSPACE (BAC-VICKERS) VISCOUNT (ALL SERIES)',4,'TURBOPROP','NO',93.70,85.66,72500,75,14500,352,1725,'YES' +'HPH','BRITISH AEROSPACE (HANDLEY PAGE) HERALD',2,'TURBOPROP','NO',113.00,96.83,82000,74,12000,266,3150,'YES' +'HPJ','BRITISH AEROSPACE (HANDLEY PAGE) JETSTREAM 1/200',2,'TURBOPROP','NO',52.00,47.08,12550,18,4100,250,1440,'YES' +'DHH','BRITISH AEROSPACE (HAWKER SIDDELEY) HERON',4,'PROPELLER','NO',71.50,48.50,13500,17,2100,195,0,'NO' +'TRD','BRITISH AEROSPACE (HAWKER SIDDELEY) TRIDENT (ALL SERIES)',3,'JET','NO',95.00,114.75,135500,103,24500,606,2700,'YES' +'HS7','BRITISH AEROSPACE (HAWKER SIDDELEY) 748 PASSENGER',2,'TURBOPROP','NO',98.50,67.00,46500,56,11363,275,850,'YES' +'J31','BRITISH AEROSPACE JETSTREAM 31',2,'TURBOPROP','NO',52.00,47.12,12566,18,0,282,1380,'YES' +'141','BRITISH AEROSPACE 146-100',4,'JET','NO',86.41,85.83,74600,88,17277,460,1450,'YES' +'142','BRITISH AEROSPACE 146-200 PASSENGER',4,'JET','NO',86.41,93.66,89500,100,21000,460,1450,'YES' +'BNI','BRITTEN-NORMAN BN-2A/B ISLANDER/BN-2T TURBINE ISLANDER',2,'PROPELLER','NO',49.00,35.66,6300,10,2000,260,425,'NO' +'BNT','BRITTEN-NORMAN BN-2A MK III TRISLANDER',3,'PROPELLER','NO',53.00,43.75,9350,18,4000,180,0,'NO' +'CS2','CASA C-212/NUSANTARA NC-212 AVIOCAR',2,'TURBOPROP','NO',62.50,45.83,16427,28,6077,230,1400,'NO' +'CNA','CESSNA (ALL SERIES)',1,'TURBOPROP','NO',0.00,0.00,0,0,0,0,0,'NO' +'CN2','CESSNA STATIONAIR/TURBO STATIONAIR 6',1,'PROPELLER','NO',35.83,28.00,3600,7,1792,169,702,'NO' +'CNT','CESSNA STATIONAIR 207/TURBO STATIONAIR 7/8',1,'PROPELLER','NO',35.83,31.75,3800,7,1729,185,581,'NO' +'CN4','CESSNA 402/402 UTILILINER',2,'PROPELLER','NO',39.91,36.08,6300,8,2436,239,562,'NO' +'CVR','CONVAIR (ALL SERIES)',2,'TURBOPROP','NO',105.33,79.16,54600,56,11200,350,1100,'YES' +'CWC','CURTISS C-46 COMMANDO',2,'PROPELLER','NO',108.08,76.33,40000,60,12000,220,1600,'NO' +'DAM','DASSAULT-BREGUET MERCURE',2,'JET','NO',100.25,114.25,120150,0,32850,574,1094,'YES' +'DOS','DORNIER DO 28',2,'PROPELLER','NO',51.02,37.02,8852,15,3000,160,708,'' +'DO8','DORNIER 228 (ALL SERIES)',2,'TURBOPROP','NO',55.58,49.25,12570,19,6000,231,1065,'NO' +'EMB','EMBRAER EMP-110 BANDEIRANTE',2,'TURBOPROP','NO',50.16,49.41,12500,19,5000,262,900,'NO' +'EM2','EMBRAER EMP-120 BRASILIA',2,'TURBOPROP','NO',64.89,64.70,12295,30,0,288,628,'YES' +'FK7','FAIRCHILD INDUSTRIES FH-227',2,'TURBOPROP','NO',95.16,83.08,43500,52,11500,294,1520,'YES' +'SWM','FAIRCHILD (SWEARINGEN) METRO/MERLIN',2,'TURBOPROP','NO',46.25,59.33,12500,19,3950,294,2139,'YES' +'F27','FOKKER F27 FRIENDSHIP/FAIRCHILD (ALL SERIES)',2,'TURBOPROP','NO',95.16,82.16,45000,56,13500,265,1450,'YES' +'F28','FOKKER F28 FELLOWSHIP (ALL SERIES)',2,'JET','NO',82.25,96.16,73000,85,19623,523,1055,'YES' +'CD2','GOVERNMENT AIRCRAFT FACTORIES N22B/N24A NOMAD',2,'TURBOPROP','NO',54.00,43.00,8500,16,3000,165,850,'NO' +'GRA','GRUMMAN G-111 ALBATROSS G-111',2,'AMPHIBIAN','NO',96.66,61.25,31000,28,7965,160,1500,'NO' +'GRG','GRUMMAN G-21 GOOSE',2,'AMPHIBIAN','NO',49.00,38.33,8000,10,2000,160,825,'NO' +'GRM','GRUMMAN G-73 MALLARD',2,'AMPHIBIAN','NO',66.66,48.33,12750,10,1950,180,1245,'NO' +'GRS','GULFSTREAM AEROSPACE (GRUMMAN) GULFSTREAM 1/1-C',2,'TURBOPROP','NO',78.33,63.75,36000,37,4300,345,2300,'YES' +'IL4','ILYUSHIN IL14',2,'PROPELLER','NO',104.00,69.91,36380,24,4800,224,1250,'NO' +'IL8','ILYUSHIN IL18',4,'TURBOPROP','NO',122.70,117.79,119000,125,30860,403,1860,'YES' +'IL6','ILYUSHIN IL62/62M',4,'JET','NO',141.29,174.16,347224,186,50706,528,5716,'YES' +'ILW','ILYUSHIN IL86',4,'JET','YES',157.68,197.54,454152,350,0,575,0,'YES' +'LOM','LOCKHEED L188 ELECTRA MIXED CONFIGURATION',4,'TURBOPROP','NO',99.00,104.50,116000,0,0,390,2200,'' +'LOE','LOCKHEED L188 ELECTRA PASSENGER',4,'TURBOPROP','NO',99.00,104.54,116000,104,22000,405,2750,'YES' +'L10','LOCKHEED L1011 (ALL SERIES)',3,'JET','YES',155.25,177.58,430000,400,95500,615,3450,'YES' +'L15','LOCKHEED L1011-500 TRISTAR',3,'JET','YES',155.33,164.20,496000,330,115000,580,5998,'YES' +'MR4','MARTIN 404',2,'PROPELLER','NO',93.25,74.58,44900,44,9500,255,900,'YES' +'DC3','MCDONNELL DOUGLAS DC3/C47 DAKOTA PASSENGER',2,'PROPELLER','NO',95.00,64.50,25200,30,7380,207,1330,'NO' +'DC4','MCDONNELL DOUGLAS DOUGLAS DC4/C-54 SKYMASTER PASSENGER',4,'PROPELLER','NO',117.50,93.91,73800,80,11440,230,2750,'NO' +'DC6','MCDONNELL DOUGLAS DC6 (ALL SERIES)',4,'PROPELLER','NO',117.50,101.50,93200,80,12310,309,3070,'YES' +'D8M','MCDONNELL DOUGLAS DC8 MIXED CONFIGURATION (ALL SEIRES)',4,'JET','NO',142.33,187.41,325000,259,66665,600,3700,'YES' +'DC8','MCDONNELL DOUGLAS DC8 PASSENGER (ALL 20-50 SERIES)',4,'JET','NO',142.25,150.41,315000,176,34000,544,7010,'YES' +'D8S','MCDONNELL DOUGLAS DC8 (ALL 60/70 SERIES)',4,'JET','NO',142.25,187.33,325000,259,66665,580,7150,'YES' +'DC9','MCDONNELL DOUGLAS DC9 (ALL 10 & 20 SERIES)',2,'JET','NO',93.25,104.33,98000,90,20850,593,2200,'YES' +'D95','MCDONNELL DOUGLAS DC9-50',2,'JET','NO',93.25,133.41,12200,139,32615,593,2550,'YES' +'D10','MCDONNELL DOUGLAS DC10 (ALL SERIES)',3,'JET','YES',155.25,182.25,455000,380,98490,608,6350,'YES' +'M80','MCDONNELL DOUGLAS (MD-80 SERIES)',2,'JET','NO',107.83,147.83,140000,172,0,579,3060,'YES' +'MIH','MIL MI-8',2,'HELICOPTER','NO',50.20,108.85,26455,28,0,140,311,'' +'MU2','MITSUBISHI MU2/MARQUISE/SOLITARE',2,'TURBOPROP','NO',39.16,39.41,11575,8,0,347,1606,'' +'YS1','NAMC YS-11',2,'TURBOPROP','NO',105.00,86.25,51800,60,12550,292,1980,'YES' +'PN6','PARTENAVIA P.68 VICTOR',2,'PROPELLER','NO',39.37,31.33,4387,7,0,185,1312,'' +'PL6','PILATUS PC-6 TURBO-PORTER',1,'TURBOPROP','NO',49.66,35.75,4850,0,0,151,644,'' +'PA6','PIPER AEROSTAR',2,'TURBOPROP','NO',34.16,54.75,5500,6,240,250,1400,'YES' +'PAZ','PIPER APACHE/AZTEC',2,'PROPELLER','NO',37.33,31.16,5200,6,2151,206,1519,'NO' +'PAC','PIPER CHEROKEE',1,'PROPELLER','NO',32.83,27.66,3400,7,1544,167,856,'NO' +'PAH','PIPER NAVAJO/MOHAVE/CHIEFTAIN',2,'PROPELLER','NO',40.50,34.50,7000,8,0,254,1019,'NO' +'PAS','PIPER SENECA',2,'PROPELLER','NO',38.91,28.50,4570,7,1747,219,1036,'NO' +'PA1','PIPER T-1020/1040',2,'TURBOPROP','NO',41.08,36.66,9000,9,3800,250,900,'NO' +'ACD','ROCKWELL COMMANDER (ALL SERIES)',2,'PROPELLER','NO',49.50,35.08,6750,7,2750,205,1220,'YES' +'SF3','SAAB-FAIRCHILD 340',2,'TURBOPROP','NO',70.33,63.75,25020,34,0,300,920,'YES' +'SA2','SAUNDERS ST-27',2,'TURBOPROP','NO',71.50,59.00,13500,23,0,230,0,'NO' +'SHP','SHORTS SKYLINER',2,'TURBOPROP','NO',64.91,40.00,12500,19,4600,188,694,'YES' +'SHS','SHORTS SKYVAN',2,'TURBOPROP','NO',64.91,40.08,12500,19,0,188,694,'' +'SH3','SHORTS 330 PASSENGER',2,'TURBOPROP','NO',74.66,58.00,22000,30,7500,218,1137,'NO' +'SH6','SHORTS 360',2,'TURBOPROP','NO',74.83,70.83,26000,36,7500,244,1151,'NO' +'S58','SIKORSKY S58T',1,'HELICOPTER','NO',56.00,47.25,13000,16,0,127,278,'NO' +'S61','SIKORSKY S61',2,'HELICOPTER','NO',62.00,72.00,20500,30,5500,139,282,'NO' +'TU3','TUPOLEV TU134',2,'JET','NO',95.16,112.71,98100,72,14300,546,1490,'YES' +'TU5','TUPOLEV TU154',3,'JET','NO',123.20,157.14,198410,164,44090,605,3280,'YES' +'WLH','WESTLAND 30',2,'HELICOPTER','NO',43.66,52.16,12350,21,0,0,100,'' +'YK4','YAKOVLEV YAK-40',3,'JET','NO',82.08,66.75,35270,40,5070,342,1240,'YES' +'YK2','YAKOVLEV YAK-42',3,'JET','NO',112.20,119.35,114640,120,2000,510,621,'YES' +'100','FOKKER 100',0,'JET','',0.00,0.00,0,0,0,0,0,'' +'146','BRITISH AEROSPACE 146 (ALL SERIES)',0,'JET','',0.00,0.00,0,0,0,0,0,'' +'310','AIRBUS INDUSTRIE A310 (ALL SERIES)',0,'JET','',0.00,0.00,0,0,0,0,0,'' +'320','AIRBUS INDUSTRIE A320 (ALL SERIES)',0,'JET','',0.00,0.00,0,0,0,0,0,'' +'734','BOEING 737-400',0,'JET','',0.00,0.00,0,0,0,0,0,'' +'743','BOEING 737-300 PASSENGER',0,'JET','',0.00,0.00,0,0,0,0,0,'' +'744','BOEING 747-400 PASSENGER',0,'JET','',0.00,0.00,0,0,0,0,0,'' +'74E','BOEING 747-400 MIXED CONFIGURATION',0,'JET','',0.00,0.00,0,0,0,0,0,'' +'763','BOEING 767-300/300ER',0,'JET','',0.00,0.00,0,0,0,0,0,'' +'BE1','BEECHCRAFT 1900',0,'TURBOPROP','',0.00,0.00,0,0,0,0,0,'' +'BUS','BUS',0,'','',0.00,0.00,0,0,0,0,0,'' +'CNJ','CESSNA CITATION',0,'JET','',0.00,0.00,0,0,0,0,0,'' +'D3M','DOUGLAS DC3/C-47 DAKOTA MIXED CONFIGURATION',0,'PROPELLER','',0.00,0.00,0,0,0,0,0,'' +'D9S','MCDONNELL DOUGLAS DC9 (ALL 30/40/50 & 80 SERIES)',0,'JET','',0.00,0.00,0,0,0,0,0,'' +'DHM','BOEING CANADA DHC-7 DASH 7 MIXED CONFIGURATION',0,'TURBOPROP','',0.00,0.00,0,0,0,0,0,'' +'LMO','LIMOSINE',0,'','',0.00,0.00,0,0,0,0,0,'' +'M87','MCDONNELL DOUGLAS MD-87',0,'JET','',0.00,0.00,0,0,0,0,0,'' +'NDE','AEROSPATIALE AS 350 ECUREUIL/AS 355 ECUREUIL 2',1,'TURBOPROP','',0.00,0.00,0,0,0,0,0,'' +'PAG','PIPER (ALL SERIES)',0,'PROPELLER','',0.00,0.00,0,0,0,0,0,'' +'S76','SIKORSKY S76',1,'TURBOPROP','',0.00,0.00,0,0,0,0,0,'' diff --git a/database/sql-bench/Data/ATIS/airline.txt b/database/sql-bench/Data/ATIS/airline.txt new file mode 100644 index 0000000..7e825a5 --- /dev/null +++ b/database/sql-bench/Data/ATIS/airline.txt @@ -0,0 +1,314 @@ +'AA','AMERICAN AIRLINES','' +'AC','AIR CANADA','' +'AD','EXEC EXPRESS II,INC.','' +'AF','AIR FRANCE','' +'AG','ATLANTIC AIRWAYS LIMITED','' +'AM','AEROMEXICO - AEROVIAS DE MEXICO S.A. DE C.V.','' +'AP','ASPEN AIRWAYS,INC.','' +'AQ','ALOHA AIRLINES INC.','' +'AR','AEROLINEAS ARGENTINAS','' +'AS','ALASKA AIRLINES','' +'AT','ROYAL AIR MAROC','' +'AV','AVIANCA','' +'AY','FINNAIR','' +'AZ','ALITALIA','' +'BA','BRITISH AIRWAYS','' +'BE','ENTERPRISE AIRLINES,INC.','' +'BF','MARKAIR,INC.','' +'BK','CHALKS/PARADISE ISLAND AIRLINES','' +'BL','AIR BVI,LTD.','' +'BW','BWIA INTERNATIONAL','' +'CA','CAAC','' +'CD','TRANS-PROVINCIAL AIRLINES LTD.','' +'CH','BEMIDJI AIRLINES','' +'CI','CHINA AIRLINES LTD.','' +'CO','CONTINENTAL AIRLINES','' +'CP','CANADIAN AIRLINES INTERNATIONAL LTD.','' +'CS','AIR TORONTO','' +'CT','MIDCONTINENT AIRLINES INC.','' +'CU','CUBANA AIRLINES','' +'CX','CATHAY PACIFIC AIRWAYS LTD.','' +'DD','COMMAND AIRWAYS,INC.','' +'DE','PRIME AIR,INC.','' +'DF','AERO COACH AVIATION INTERNATIONAL,INC.','' +'DL','DELTA AIR LINES,INC.','' +'DO','DOMINICANA DE AVIACION','' +'DQ','COASTAL AIR TRANSPORT','' +'DV','NANTUCKET AIRLINES','' +'EA','EASTERN AIR LINES,INC.','' +'ED','CCAIR INC.','' +'EI','AER LINGUS P.L.C.','' +'EJ','NEW ENGLAND AIRLINES,INC.','' +'EM','EMPIRE AIRWAYS','' +'EU','EMPRESA ECUATORIANA DE AVIACION','' +'EV','ATLANTIC SOUTHEAST AIRLINES,INC.','' +'FC','CHAPARRAL AIRLINES,INC.','' +'FH','MALL AIRWAYS INC.','' +'FI','ICELANDAIR','' +'FK','FLAMENCO AIRWAYS,INC.','' +'FN','SFO HEICOPTER AIRLINES,INC.','' +'FQ','AIR ARUBA','' +'FX','EXPRESS AIR,INC.','' +'FY','METROFLIGHT AIRLINES','' +'GA','GARUDA INDONESIAN AIRWAYS','' +'GM','AIR AMERICA','' +'GQ','BIG SKY AIRLINES','' +'GS','BAS AIRLINES','' +'GU','AVIATECA S.A.','' +'HA','HAWAIIAN AIR LINES','' +'HD','NEW YORK HELICOPTER CORPORATION','' +'HE','KEYSTONE AIR SERVICE LTD.','' +'HG','HARBOR AIRLINES,INC','' +'HI','GRAND CANYON HELICOPTERS','' +'HP','AMERICA WEST AIRLINES,INC.','' +'HQ','BUSINESS EXPRESS','' +'HY','METRO AIRLINES','' +'IB','IBERIA','' +'IF','INTERFUG','' +'IH','CHANNEL FLYING,INC.','SERVICE TEMPORARILY SUSPENDED' +'IN','EAST HAMPTON AIRE','' +'IU','HELITRANS AIR SERVICE,INC.','' +'JB','HELIJET AIRWAYS','' +'JC','ROCKY MOUNTAIN AIRWAYS','' +'JF','L.A.B. FYING SERVICE,INC.','CARRIER PERFORMS SEASONAL SERVICE ONLY' +'JI','JET EXPRESS','' +'JL','JAPAN AIRLINES','' +'JM','AIR JAMAICA LIMITED','' +'JO','HOLIDAY AIRLINES,INC.','' +'JQ','TRANS-JAMAICAN AIRLINES LTD.','' +'JR','AERO CALIFORNIA','' +'JT','IOWA AIRWAYS,INC.','' +'JU','YUGOSLAV AIRLINES (JAT)','' +'JV','BEARSKIN LAKE AIR SERVICE LIMITED','' +'KE','KOREAN AIR','' +'KI','TIME AIR LTD.','' +'KL','KLM-ROYAL DUTCH AIRLINES','' +'KS','PENINSULA AIRWAYS,INC.','' +'KW','CARNIVAL AIR LINES','' +'KX','CAYMAN AIRWAYS,LTD.','' +'LA','LAN CHILE S.A.','' +'LH','LUFTHANSA GERMAN AIRLINES','' +'LI','LIAT (1974) LTD.','' +'LM','ALM-ANTILLEAN AIRLINES','' +'LR','LACSA','' +'LS','ILIAMNA AIR TAXI,INC.','' +'LV','LAV-LINEA AEROPOSTAL VENEZOLANA','' +'LW','AIR NEVADA','' +'LY','EL AL ISRAEL AIRLINES','' +'MG','MGM GRAND AIR,INC.','' +'MH','MALAYSIAN AIRLINE SYSTEM','' +'ML','MIDWAY AIRLINES,INC.','' +'MO','CALM AIR INTERNATIONAL LTD.','' +'MQ','SIMMONS AIRLINES','' +'MX','MEXICANA DE AVIACION','' +'NA','EXECUTIVE AIR CHARTER','' +'ND','INTAIR','' +'NN','C.A.A.A.-AIR MARTINIQUE','' +'NQ','CUMBERLAND AIRLINES','' +'NR','NORONTAIR','' +'NV','NORTHWEST TERRITORIAL AIRWAYS,LTD.','' +'NW','NORTHWEST AIRLINES,INC.','' +'OA','OLYMPIC AIRWAYS','' +'OB','TEMPUS AIR LTD.','CARRIER PERFORMS SEASONAL SERVICE ONLY' +'OE','WESTAIR AIRLINES','' +'OG','AIR GUADELOUPE','' +'OH','COMAIR,INC.','NATL AIR TRANSPORTATION ASSOC,INC.' +'OJ','AIR ST.-BARTHELEMY','' +'OK','CZECHOSLOVAK AIRLINES','' +'OO','SKY WEST AIRLINES','' +'OQ','AEROLIBERTAD S.A. DE C.V.','' +'OT','EVERGREEN ALASKA','' +'OU','CITY EXPRESS','' +'OY','SUNAIRE','' +'PA','PAN AMERICAN WORLD AIRWAYS,INC.','' +'PD','PEM AIR LIMITED','' +'PK','PAKISTAN INTERNATIONAL AIRLINES','' +'PN','COASTAL AIRWAYS','' +'PQ','HOLIDAY AIRWAYS','SERVICE TEMPORARILY SUSPENDED' +'PR','PHILIPPINE AIRLINES,INC.','' +'PS','CENTRAL STATES AIRLINES,INC.','' +'PT','PBA-PROVINCETOWN-BOSTON AIRLINE,INC.','' +'PV','PANORAMA AIR','' +'PY','SURINAM AIRWAYS LTD.','' +'QA','AERO CARIBE','' +'QB','INTER-QUEBEC','' +'QD','GRAND AIRWAYS,INC.','' +'QF','QANTAS AIRWAYS LTD.','' +'QO','BAR HARBOR AIRLINES','' +'QQ','DRUMMOND ISLAND AIR','CARRIER PERFORMS SEASONAL SERVICE ONLY' +'QR','AIR SATELLITE,INC.','' +'QS','PROPHETER AVIATION','' +'QW','TURKS AND CAICOS NATIONAL AIRLINE','' +'QX','HORIZON AIR','' +'QY','AERO VIRGIN ISLANDS CORP','' +'RG','VARIG,S.A.','' +'RH','REGAL BAHAMAS INTERNATIONAL AIRLINES','' +'RJ','ROYAL JORDANIAN','' +'RM','WINGS WEST AIRLINE,INC.','' +'RP','PRECISION AIRLINES','' +'RV','REEVE ALEUTIAN AIRWAYS,INC.','' +'SE','WINGS OF ALASKA','' +'SK','SCANDINAVIAN AIRLINES SYSTEM','' +'SN','SABENA BELGIAN WORLD AIRLINES','' +'SQ','SINGAPORE AIRLINES','' +'SR','SWISSAIR','' +'SS','METRO AIRLINES NORTHEAST INC.','' +'SU','AEROFLOT-SOVIET AIRLINES','' +'SV','SAUDI ARABIAN AIRLINES','' +'SX','CHRISTMAN AIR SYSTEM','' +'TB','TRUMP SHUTTLE,INC.','' +'TE','AIR NEW ZEALAND-INTERNATIONAL','' +'TG','THAI AIRWAYS INTERNATIONAL,LTD.','' +'TO','ALKAN AIR LTD.','' +'TP','TAP AIR PORTUGAL','' +'TV','HAITI TRANS AIR S.A.','' +'TW','TRANS WORLD AIRLINES,INC.','' +'TZ','AMERICAN TRANS AIR','' +'UA','UNITED AIRLINES','' +'UC','LADECO-LINEA AEREA DEL COBRE','' +'UE','AIR LA','' +'UJ','AIR SEDONA','' +'UO','DIRECT AIR,INC.','NATL AIR TRANSPORTATION ASSOC,INC.' +'UP','BAHAMASAIR','' +'US','USAIR','' +'UT','U.T.A. - UNION DE TRANSPORTS AERIENS','' +'UW','PERIMETER AIRLINES (INLAND) LTD.','' +'VA','VIASA','' +'VI','VIEQUES AIR LINK,INC.','' +'VW','TRANSPORTES AEROMAR,S.A. DE C.V.','' +'WD','WARDAIR','' +'WJ','LABRADOR AIRWAYS,LTD.','' +'WM','WINDWARD ISLAND AIRWAYS INTERNATIONAL N.V.','' +'WN','SOUTHWEST AIRLINES','' +'WP','ALOHA ISLANDAIR,INC.','' +'WQ','WINGS AIRWAYS','NATL AIR TRANSPORTATION ASSOC,INC.' +'WS','WESTATES AIRLINES','SERVICE TEMPORARILY SUSPENDED' +'WV','MIDWEST AVIATION','' +'XE','SOUTHCENTRAL AIR,INC.','' +'XJ','MESABA AVIATION','' +'XK','RESORT COMMUTER,INC.','' +'XQ','ACTION AIRLINES','' +'XV','PRESIDENTIAL AIRWAYS,INC.','' +'XW','WALKER\'S INTERNATIONAL','' +'XY','RYAN AIR,INC.','' +'YE','GRAND CANYON AIRLINES,INC.','CARRIER PERFORMS SEASONAL SERVICE ONLY' +'YI','AIR SUNSHINE INC.','NATL AIR TRANSPORTATION ASSOC,INC.' +'YL','LONG ISLAND AIRLINES','' +'YN','AIR CREEBEC INC.','' +'YR','SCENIC AIRLINES INC.','NATL AIR TRANSPORTATION ASSOC,INC.' +'YS','SAN JUAN AIRLINES','' +'YU','AEROLINEAS DOMINICANAS,S.A. - DOMINAIR','' +'YV','MESA AIRLINES','' +'YW','STATESWEST AIRLINES,INC.','' +'YX','MIDWEST EXPRESS AIRLINES,INC.','' +'ZD','ROSS AVIATION,INC.','NATL AIR TRANSPORTATION ASSOC,INC' +'ZE','AIR CARIBE INTERNATIONAL,INC.','' +'ZK','GREAT LAKES AVIATION,LTD.','' +'ZO','MOHAWK AIRLINES','' +'ZP','VIRGIN AIR,INC.','' +'ZS','HISPANIOLA AIRWAYS C. POR A.','' +'ZV','AIR MIDWEST','' +'ZW','AIR WISCONSIN','' +'ZX','AIR BC,LTD.','' +'2E','HERMENS/MARKAIR EXPRESS','' +'2F','FRONTIER FLYING SERVICE','' +'2P','PRAIRIE FLYING SERVICE (1976) LTD.','' +'2Q','AQUILA AIR LTD','' +'2V','NORTHEAST EXPRESS REGIONAL AIRLINES','NATL AIR TRANSPORTATION ASSOC,INC.' +'2Z','SERVICIOS AEROS LITORAL S.A. DE C.V.','' +'3A','ALLIANCE AIRLINES','' +'3C','CAMAI AIR','' +'3G','VIRGIN ISLANDS SEAPLANE SHUTTLE','SERVICE TEMPORARILY SUSPENDED' +'3H','AIR INUIT (1985) LTD.','' +'3L','AIR-LIFT ASSOCIATES,INC','' +'3N','PAC AIR','' +'3R','AIR MOLOKAI - TROPIC AIRLINES','SERVICE TEMPORARILY SUSPENDED' +'3S','SHUSWAP AIR','' +'3V','WAGLISLA AIR INC.','' +'4A','AIRWAYS INTERNATIONAL,INC.','' +'4B','OLSON AIR SERVICE,INC.','' +'4E','TANANA AIR SERVICE','' +'4F','FRONTIER AIR','' +'4G','INLET AIRLINES,INC.','' +'4K','KENN BOREK AIR LTD.','' +'4L','AIR ALMA INC.','' +'4N','AIR NORTH','' +'4T','PACIFIC RIM AIRLINES LTD.','' +'4V','VOYAGEUR AIRWAYS LTD.','' +'4W','WRANGELL AIR SERVICE','' +'4Y','YUTE AIR ALASKA,INC.','SERVICE TEMPORARILY SUSPENDED' +'5A','ALPINE AVIATION,INC.','' +'5B','BELLAIR INC.','' +'5E','HUB EXPRESS,INC.','' +'5K','KENMORE AIR HARBOR,INC.','' +'5L','LAREDO AIR,INC.','' +'5N','SEAGULL AIR SERVICE,INC.','SERVICE TEMPORARILY SUSPENDED' +'5P','PTARMIGAN AIRWAYS LTD','' +'5S','AIRSPEED AVIATION INC.','' +'5T','AVIACION DEL NOROESTE','' +'5U','SKAGWAY AIR SERVICE,INC.','' +'5V','AVIAIR AVIATION (1984) LTD.','' +'5W','CHARTAIR,INC.','' +'6A','PANAMA AIRWAYS','' +'6B','BAXTER AVIATION','' +'6C','CAPE SMYTHE AIR SERVICE,INC.','' +'6D','ALASKA ISLAND AIR,INC.','' +'6E','BURRARD AIR LTD.','' +'6G','LAS VEGAS AIRLINES','' +'6J','SOUTHERN JERSEY AIRWAYS,INC.','' +'6K','KEEWATIN AIR LIMITED','' +'6L','AKLAK AIR LTD.','' +'6M','40-MILE AIR,LTD.','' +'6P','PROPAIR INC.','' +'6Q','BARROW AIR,INC.','' +'6S','KETCHIKAN AIR SERVICE,INC.','' +'6T','TYEE AIRWAYS LIMITED','' +'6V','AIR VEGAS,INC.','' +'6W','WILDERNESS AIRLINE (1975) LTD.','' +'7A','HAINES AIRWAYS,INC.','' +'7D','TRUMP AIR','' +'7F','FIRST AIR','' +'7G','GULFSTREAM AIRLINES,INC.','NATL AIR TRANSPORTATION ASSOC,INC.' +'7H','ERA AVIATION','' +'7K','LARRY\'S FLYING SERVICE,INC','' +'7L','LAKE UNION AIR SERVICE','' +'7N','NORTHLAND AIR MANITOBA LIMITED','' +'7Q','CALIFORNIA AIR SHUTTLE','' +'7R','GCS AIR SERVICE,INC.','' +'7T','TRANS COTE INC.','' +'7V','ALPHA AIR','' +'7W','AIR SASK AVIATION','' +'8B','BAKER AVIATION,INC.','' +'8D','SKYLINK AIRLINES','SERVICE TEMPORARILY SUSPENDED' +'8E','BERING AIR,INC.','' +'8F','WILBUR\'S INC.','' +'8G','GP EXPRESS AIRLINES,INC.','' +'8H','HARBOR AIR SERVICE','' +'8K','AIR MUSKOKA','' +'8L','SERVICIO AEREO LEO LOPEZ','' +'8M','APEX AIRLINES','' +'8N','NASHVILLE EAGLE,INC.','' +'8P','POCONO AIRLINES','' +'8R','WRA,INC.','' +'8T','TRI AIR,INC.','SERVICE TEMPORARILY SUSPENDED' +'8V','WRIGHT AIR SERVICE,INC.','' +'9A','AIR ATLANTIC LTD.','' +'9C','ICARUS FLYING SERVICE,LTD.','' +'9D','DELTA AIR CHARTER LTD.','' +'9E','EXPRESS AIRLINES I,INC.','' +'9F','SKYCRAFT AIR TRANSPORT INC.','' +'9K','CAPE AIR','' +'9M','CENTRAL MOUNTAIN AIR LTD.','' +'9N','TRANS STATES AIRLINES,INC.','' +'9Q','TAQUAN AIR SERVICE,INC.','' +'9S','SABOURIN LAKE AIRWAYS LTD.','' +'9V','AIR SCHEFFERVILLE','CARRIER PERFORMS SEASONAL SERVICE ONLY' +'GD','AIR SOUTH,INC.','NATL AIR TRANSPORTATION ASSOC,INC.' +'VL','SUN PACIFIC AIRLINES,INC.','' +'3D','EDGARTOWN AIR,INC.','' +'4Q','TRANS NORTH AVIATION,LTD.','CARRIER PERFORMS SEASONAL SERVICE ONLY' +'4R','RAVEN AIR,INC.','' +'4X','L\'EXPRESS AIRLINES','' +'5C','CONQUEST AIRLINES CORP.','' +'7C','SIERRA VISTA AVIATION','SERVICE TEMPORARILY SUSPENDED' +'MC','MILITARY AIRLIFT COMMAND (MAC)-U.S. DEPARTMENT OF THE AIR FORCE','' diff --git a/database/sql-bench/Data/ATIS/airport.txt b/database/sql-bench/Data/ATIS/airport.txt new file mode 100644 index 0000000..9da49b2 --- /dev/null +++ b/database/sql-bench/Data/ATIS/airport.txt @@ -0,0 +1,9 @@ +'ATL','WILLIAM B. HARTSFIELD','ATLANTA,GEORGIA','GA','USA','EST' +'BOS','LOGAN INTERNATIONAL','BOSTON,MASSACHUSETTS','MA','USA','EST' +'BWI','BALTIMORE/WASHINGTON INTERNATIONAL','BALTIMORE,MARYLAND','MD','USA','EST' +'DEN','STAPLETON INTERNATIONAL','DENVER,COLORADO','CO','USA','MST' +'DFW','DALLAS/FORT WORTH INTERNATIONAL','DALLAS/FT. WORTH,TEXAS','TX','USA','CST' +'OAK','METROPOLITAN OAKLAND INTERNATIONAL','OAKLAND,CALIFORNIA','CA','USA','PST' +'PHL','PHILADELPHIA INTERNATIONAL','PHILADELPHIA PA/WILM\'TON,DE','PA','USA','EST' +'PIT','GREATER PITTSBURGH','PITTSBURGH,PENNSYLVANIA','PA','USA','EST' +'SFO','SAN FRANCISCO INTERNATIONAL','SAN FRANCISCO,CALIFORNIA','CA','USA','PST' diff --git a/database/sql-bench/Data/ATIS/airport_service.txt b/database/sql-bench/Data/ATIS/airport_service.txt new file mode 100644 index 0000000..c38aa18 --- /dev/null +++ b/database/sql-bench/Data/ATIS/airport_service.txt @@ -0,0 +1,14 @@ +'MATL','ATL',9.0,'S',45 +'BBOS','BOS',3.0,'NE',30 +'DDFW','DFW',13.0,'NW',70 +'FDFW','DFW',17.0,'E',55 +'DDEN','DEN',6.5,'NE',30 +'PPHL','PHL',7.0,'SW',35 +'PPIT','PIT',17.0,'W',55 +'OOAK','OAK',10.0,'SE',15 +'OOAK','SFO',24.0,'SW',60 +'SSFO','SFO',8.0,'SE',30 +'SSFO','OAK',18.0,'SE',60 +'WWAS','BWI',32.0,'NE',50 +'BBWI','BWI',10.0,'S',25 +'','',0.0,'',0 diff --git a/database/sql-bench/Data/ATIS/city.txt b/database/sql-bench/Data/ATIS/city.txt new file mode 100644 index 0000000..eb826a3 --- /dev/null +++ b/database/sql-bench/Data/ATIS/city.txt @@ -0,0 +1,11 @@ +'MATL','ATLANTA','GA','USA','EST' +'BBOS','BOSTON','MA','USA','EST' +'DDFW','DALLAS','TX','USA','CST' +'FDFW','FORT WORTH','TX','USA','CST' +'DDEN','DENVER','CO','USA','MST' +'PPHL','PHILADELPHIA','PA','USA','EST' +'PPIT','PITTSBURGH','PA','USA','EST' +'SSFO','SAN FRANCISCO','CA','USA','PST' +'OOAK','OAKLAND','CA','USA','PST' +'WWAS','WASHINGTON','DC','USA','EST' +'BBWI','BALTIMORE','MD','USA','EST' diff --git a/database/sql-bench/Data/ATIS/class_of_service.txt b/database/sql-bench/Data/ATIS/class_of_service.txt new file mode 100644 index 0000000..ab9b9c4 --- /dev/null +++ b/database/sql-bench/Data/ATIS/class_of_service.txt @@ -0,0 +1,27 @@ +'R',1,'SUPERSONIC AIRCRAFT' +'P',2,'FIRST CLASS PREMIUM' +'F',3,'FIRST CLASS' +'A',4,'FIRST CLASS DISCOUNTED' +'J',5,'BUSINESS CLASS PREMIUM' +'C',6,'BUSINESS CLASS' +'D',7,'BUSINESS CLASS DISCOUNTED' +'S',8,'STANDARD CLASS' +'W',9,'COACH ECONOMY CLASS PREMIUM' +'FN',10,'FIRST CLASS NIGHT SERVICE' +'Y',11,'COACH ECONOMY CLASS' +'CN',12,'BUSINESS CLASS NIGHT SERVICE' +'YN',13,'COACH ECONOMY CLASS NIGHT SERVICE' +'B',14,'COACH ECONOMY CLASS DISCOUNTED' +'H',15,'COACH ECONOMY CLASS DISCOUNTED' +'Q',16,'COACH ECONOMY CLASS DISCOUNTED' +'M',17,'COACH ECONOMY CLASS DISCOUNTED' +'T',18,'COACH ECONOMY CLASS DISCOUNTED' +'K',19,'THRIFT ECONOMY CLASS' +'L',20,'THRIFT ECONOMY CLASS DISCOUNTED' +'V',21,'THRIFT ECONOMY CLASS DISCOUNTED' +'BN',22,'COACH ECONOMY CLASS DISCOUNTED NIGHT SERVICE' +'QN',23,'COACH ECONOMY CLASS DISCOUNTED NIGHT SERVICE' +'KN',24,'THRIFT ECONOMY CLASS DISCOUNTED NIGHT SERVICE' +'VN',25,'THRIFT ECONOMY CLASS DISCOUNTED NIGHT SERVICE' +'U',26,'SHUTTLE SERVICE (NO RESERVATION NEEDED - SEAT GUARANTEED)' +'E',27,'SHUTTLE SERVICE (NO RESERVATION ALLOWED - SEAT TO BE CONFIRMED AT CHECK-IN)' diff --git a/database/sql-bench/Data/ATIS/code_description.txt b/database/sql-bench/Data/ATIS/code_description.txt new file mode 100644 index 0000000..d832a21 --- /dev/null +++ b/database/sql-bench/Data/ATIS/code_description.txt @@ -0,0 +1,15 @@ +'-','A DASH IN A DAY CODE POSITION INDICATES NON-OPERATION ON THAT DAY' +'AP','ADVANCE PURCHASE EXCURSION FARE' +'CAD','CANADIAN DOLLARS' +'EX','EXCURSION FARE' +'H','HIGHEST LEVEL OF FARE HAVING MORE THAN ONE SEASONAL LEVEL' +'J','THIRD LEVEL OF FARE HAVING MORE THAN THREE SEASONAL LEVELS' +'K','SECOND LEVEL OF A FARE HAVING MORE THAN TWO SEASONAL LEVELS' +'L','LOWEST LEVEL OF FARE HAVING MORE THAN ONE SEASONAL LEVEL' +'MEP','MEXICAN PESOS' +'O','SECOND LEVEL OF A FARE HAVING MORE THAN TWO SEASONAL LEVELS' +'N','NIGHT SERVICE' +'VU','VISIT USA FARE' +'W','WHEN USED AS PART OF A FARE CLASS SUCH AS YW,INDICATES WEEKEND APPLICATION.' +'X','WHEN USED AS PART OF A FARE CLASS SUCH AS YX,INDICATES WEEKDAY APPLICATION.' +'U.S.','48 CONTIGUOUS STATES (NOT INCLUDING ALASKA AND HAWAII) UNLESS OTHERWISE NOTED.' diff --git a/database/sql-bench/Data/ATIS/compound_class.txt b/database/sql-bench/Data/ATIS/compound_class.txt new file mode 100644 index 0000000..86c0df5 --- /dev/null +++ b/database/sql-bench/Data/ATIS/compound_class.txt @@ -0,0 +1,149 @@ +'A','A','FIRST','NO','NO','YES','NO','NONE','1234567' +'AH','A','FIRST','NO','NO','YES','NO','HIGH','1234567' +'AJ','A','FIRST','NO','NO','YES','NO','MID','1234567' +'AL','A','FIRST','NO','NO','YES','NO','LOW','1234567' +'B','B','COACH','NO','YES','YES','NO','NONE','1234567' +'BH','B','COACH','NO','YES','YES','NO','HIGH','1234567' +'BHW','B','COACH','NO','YES','YES','NO','HIGH','-----67' +'BHX','B','COACH','NO','YES','YES','NO','HIGH','12345--' +'BL','B','COACH','NO','YES','YES','NO','LOW','1234567' +'BLW','B','COACH','NO','YES','YES','NO','LOW','-----67' +'BLX','B','COACH','NO','YES','YES','NO','LOW','12345--' +'BN','BN','COACH','NO','YES','YES','YES','NONE','1234567' +'BO','B','COACH','NO','YES','YES','NO','MID','1234567' +'BOW','B','COACH','NO','YES','YES','NO','MID','-----67' +'BOX','B','COACH','NO','YES','YES','NO','MID','12345--' +'BW','B','COACH','NO','YES','YES','NO','NONE','-----67' +'BX','B','COACH','NO','YES','YES','NO','NONE','12345--' +'C','C','BUSINESS','NO','NO','NO','NO','NONE','1234567' +'CH','C','BUSINESS','NO','NO','NO','NO','HIGH','1234567' +'CHW','C','BUSINESS','NO','NO','NO','NO','HIGH','-----67' +'CHX','C','BUSINESS','NO','NO','NO','NO','HIGH','12345--' +'CL','C','BUSINESS','NO','NO','NO','NO','LOW','1234567' +'CLW','C','BUSINESS','NO','NO','NO','NO','LOW','-----67' +'CLX','C','BUSINESS','NO','NO','NO','NO','LOW','12345--' +'CN','CN','BUSINESS','NO','NO','NO','YES','NONE','1234567' +'CO','C','BUSINESS','NO','NO','NO','NO','MID','1234567' +'CW','C','BUSINESS','NO','NO','NO','NO','NONE','-----67' +'CX','C','BUSINESS','NO','NO','NO','NO','NONE','12345--' +'D','D','BUSINESS','NO','NO','YES','NO','NONE','1234567' +'F','F','FIRST','NO','NO','NO','NO','NONE','1234567' +'FH','F','FIRST','NO','NO','NO','NO','HIGH','1234567' +'FHW','F','FIRST','NO','NO','NO','NO','HIGH','-----67' +'FHX','F','FIRST','NO','NO','NO','NO','HIGH','12345--' +'FL','F','FIRST','NO','NO','NO','NO','LOW','1234567' +'FLW','F','FIRST','NO','NO','NO','NO','LOW','-----67' +'FLX','F','FIRST','NO','NO','NO','NO','LOW','12345--' +'FN','FN','FIRST','NO','NO','NO','YES','NONE','1234567' +'FO','F','FIRST','NO','NO','NO','NO','MID','1234567' +'FW','F','FIRST','NO','NO','NO','NO','NONE','-----67' +'FX','F','FIRST','NO','NO','NO','NO','NONE','12345--' +'H','H','COACH','NO','YES','YES','NO','NONE','1234567' +'HH','H','COACH','NO','YES','YES','NO','HIGH','1234567' +'HHW','H','COACH','NO','YES','YES','NO','HIGH','-----67' +'HHX','H','COACH','NO','YES','YES','NO','HIGH','12345--' +'HK','H','COACH','NO','YES','YES','NO','MID','1234567' +'HKW','H','COACH','NO','YES','YES','NO','MID','-----67' +'HKX','H','COACH','NO','YES','YES','NO','MID','12345--' +'HL','H','COACH','NO','YES','YES','NO','LOW','1234567' +'HLW','H','COACH','NO','YES','YES','NO','LOW','-----67' +'HLX','H','COACH','NO','YES','YES','NO','LOW','12345--' +'HO','H','COACH','NO','YES','YES','NO','MID','1234567' +'HOW','H','COACH','NO','YES','YES','NO','MID','-----67' +'HOX','H','COACH','NO','YES','YES','NO','MID','12345--' +'HW','H','COACH','NO','YES','YES','NO','NONE','-----67' +'HX','H','COACH','NO','YES','YES','NO','NONE','12345--' +'J','J','BUSINESS','YES','NO','NO','NO','NONE','1234567' +'JH','J','BUSINESS','YES','NO','NO','NO','HIGH','1234567' +'JK','J','BUSINESS','YES','NO','NO','NO','MID','1234567' +'JL','J','BUSINESS','YES','NO','NO','NO','LOW','1234567' +'JO','J','BUSINESS','YES','NO','NO','NO','MID','1234567' +'K','K','THRIFT','NO','YES','NO','NO','NONE','1234567' +'KH','K','THRIFT','NO','YES','NO','NO','HIGH','1234567' +'KHW','K','THRIFT','NO','YES','NO','NO','HIGH','-----67' +'KHX','K','THRIFT','NO','YES','NO','NO','HIGH','12345--' +'KL','K','THRIFT','NO','YES','NO','NO','LOW','1234567' +'KLW','K','THRIFT','NO','YES','NO','NO','LOW','-----67' +'KLX','K','THRIFT','NO','YES','NO','NO','LOW','12345--' +'KN','KN','THRIFT','NO','YES','YES','YES','NONE','1234567' +'KO','K','THRIFT','NO','YES','NO','NO','MID','1234567' +'KW','K','THRIFT','NO','YES','NO','NO','NONE','-----67' +'KX','K','THRIFT','NO','YES','NO','NO','NONE','12345--' +'L','L','THRIFT','NO','YES','YES','NO','NONE','1234567' +'LH','L','THRIFT','NO','YES','YES','NO','HIGH','1234567' +'LHW','L','THRIFT','NO','YES','YES','NO','HIGH','-----67' +'LHX','L','THRIFT','NO','YES','YES','NO','HIGH','12345--' +'LL','L','THRIFT','NO','YES','YES','NO','LOW','1234567' +'LLW','L','THRIFT','NO','YES','YES','NO','LOW','-----67' +'LLX','L','THRIFT','NO','YES','YES','NO','LOW','12345--' +'LO','L','THRIFT','NO','YES','YES','NO','MID','1234567' +'LOW','L','THRIFT','NO','YES','YES','NO','MID','-----67' +'LOX','L','THRIFT','NO','YES','YES','NO','MID','12345--' +'LW','L','THRIFT','NO','YES','YES','NO','NONE','-----67' +'LX','L','THRIFT','NO','YES','YES','NO','NONE','12345--' +'M','M','COACH','NO','YES','YES','NO','NONE','1234567' +'MH','M','COACH','NO','YES','YES','NO','HIGH','1234567' +'MHW','M','COACH','NO','YES','YES','NO','HIGH','-----67' +'MHX','M','COACH','NO','YES','YES','NO','HIGH','12345--' +'MKW','M','COACH','NO','YES','YES','NO','MID','-----67' +'MKX','M','COACH','NO','YES','YES','NO','MID','12345--' +'ML','M','COACH','NO','YES','YES','NO','LOW','1234567' +'MLW','M','COACH','NO','YES','YES','NO','LOW','-----67' +'MLX','M','COACH','NO','YES','YES','NO','LOW','12345--' +'MO','M','COACH','NO','YES','YES','NO','MID','1234567' +'MOW','M','COACH','NO','YES','YES','NO','MID','-----67' +'MOX','M','COACH','NO','YES','YES','NO','MID','12345--' +'MW','M','COACH','NO','YES','YES','NO','NONE','-----67' +'MX','M','COACH','NO','YES','YES','NO','NONE','12345--' +'P','P','FIRST','YES','NO','NO','NO','NONE','1234567' +'Q','Q','COACH','NO','YES','YES','NO','NONE','1234567' +'QH','Q','COACH','NO','YES','YES','NO','HIGH','1234567' +'QHW','Q','COACH','NO','YES','YES','NO','HIGH','-----67' +'QHX','Q','COACH','NO','YES','YES','NO','HIGH','12345--' +'QL','Q','COACH','NO','YES','YES','NO','LOW','1234567' +'QLW','Q','COACH','NO','YES','YES','NO','LOW','-----67' +'QLX','Q','COACH','NO','YES','YES','NO','LOW','12345--' +'QN','QN','COACH','NO','YES','YES','YES','NONE','1234567' +'QO','Q','COACH','NO','YES','YES','NO','MID','1234567' +'QOW','Q','COACH','NO','YES','YES','NO','MID','-----67' +'QOX','Q','COACH','NO','YES','YES','NO','MID','12345--' +'QW','Q','COACH','NO','YES','YES','NO','NONE','-----67' +'QX','Q','COACH','NO','YES','YES','NO','NONE','12345--' +'R','R','SUPERSONIC','NO','NO','NO','NO','NONE','1234567' +'S','S','STANDARD','NO','NO','NO','NO','NONE','1234567' +'SH','S','STANDARD','NO','NO','NO','NO','HIGH','1234567' +'SL','S','STANDARD','NO','NO','NO','NO','LOW','1234567' +'T','T','COACH','NO','YES','YES','NO','NONE','1234567' +'TH','T','COACH','NO','YES','YES','NO','HIGH','1234567' +'TL','T','COACH','NO','YES','YES','NO','LOW','1234567' +'TO','T','COACH','NO','YES','YES','NO','MID','1234567' +'V','V','THRIFT','NO','YES','YES','NO','NONE','1234567' +'VH','V','THRIFT','NO','YES','YES','NO','HIGH','1234567' +'VHW','V','THRIFT','NO','YES','YES','NO','HIGH','-----67' +'VHX','V','THRIFT','NO','YES','YES','NO','HIGH','12345--' +'VK','V','THRIFT','NO','YES','YES','NO','MID','1234567' +'VL','V','THRIFT','NO','YES','YES','NO','LOW','1234567' +'VLW','V','THRIFT','NO','YES','YES','NO','LOW','-----67' +'VLX','V','THRIFT','NO','YES','YES','NO','LOW','12345--' +'VO','V','THRIFT','NO','YES','YES','NO','MID','1234567' +'VOW','V','THRIFT','NO','YES','YES','NO','MID','-----67' +'VOX','V','THRIFT','NO','YES','YES','NO','MID','12345--' +'VW','V','THRIFT','NO','YES','YES','NO','NONE','-----67' +'VX','V','THRIFT','NO','YES','YES','NO','NONE','12345--' +'Y','Y','COACH','NO','YES','NO','NO','NONE','1234567' +'YH','Y','COACH','NO','YES','NO','NO','HIGH','1234567' +'YHW','Y','COACH','NO','YES','NO','NO','HIGH','-----67' +'YHX','Y','COACH','NO','YES','NO','NO','HIGH','12345--' +'YJ','Y','COACH','NO','YES','NO','NO','MID','1234567' +'YJW','Y','COACH','NO','YES','NO','NO','MID','-----67' +'YJX','Y','COACH','NO','YES','NO','NO','MID','12345--' +'YK','Y','COACH','NO','YES','NO','NO','MID','1234567' +'YL','Y','COACH','NO','YES','NO','NO','LOW','1234567' +'YLW','Y','COACH','NO','YES','NO','NO','LOW','-----67' +'YLX','Y','COACH','NO','YES','NO','NO','LOW','12345--' +'YN','YN','COACH','NO','YES','NO','YES','NONE','1234567' +'YO','Y','COACH','NO','YES','NO','NO','MID','1234567' +'YOW','Y','COACH','NO','YES','NO','NO','MID','-----67' +'YOX','Y','COACH','NO','YES','NO','NO','MID','12345--' +'YW','Y','COACH','NO','YES','NO','NO','NONE','-----67' +'YX','Y','COACH','NO','YES','NO','NO','NONE','12345--' diff --git a/database/sql-bench/Data/ATIS/connect_leg.txt b/database/sql-bench/Data/ATIS/connect_leg.txt new file mode 100644 index 0000000..43f860b --- /dev/null +++ b/database/sql-bench/Data/ATIS/connect_leg.txt @@ -0,0 +1,351 @@ +305276,1,106231 +305276,2,137225 +305277,1,106237 +305277,2,137231 +305280,1,106247 +305280,2,137237 +305416,1,112030 +305416,1,112031 +305416,2,112773 +305424,1,112033 +305424,2,112784 +305429,1,112040 +305429,2,112793 +305429,2,112794 +305435,1,112046 +305435,2,112806 +305436,1,112051 +305436,2,112808 +306026,1,133430 +306026,2,111891 +306031,1,133432 +306031,2,111896 +306304,1,144155 +306304,2,112766 +306307,1,144143 +306307,2,111891 +306309,1,144158 +306309,2,112784 +306314,1,144163 +306314,2,112793 +306314,2,112794 +306317,1,144167 +306317,2,112805 +306318,1,144150 +306318,2,111896 +306319,1,144169 +306319,2,112808 +308292,1,112766 +308292,2,101952 +308296,1,112773 +308296,2,101953 +308301,1,112784 +308301,2,101955 +308304,1,112793 +308304,1,112794 +308304,2,101958 +308320,1,112030 +308320,1,112031 +308320,2,112904 +308330,1,111892 +308330,2,101955 +308334,1,112040 +308334,2,112907 +308924,1,133432 +308924,2,111941 +309189,1,144060 +309189,2,101955 +309198,1,144163 +309198,2,112907 +309204,1,144150 +309204,2,111941 +312733,1,102767 +312733,2,137320 +312734,1,102771 +312734,2,137326 +312737,1,102777 +312737,2,137335 +313006,1,112805 +313006,2,101929 +313024,1,111886 +313024,2,101909 +313025,1,112030 +313025,1,112031 +313025,2,112866 +313025,2,112867 +313030,1,111888 +313030,2,101916 +313030,2,101917 +313034,1,112033 +313034,2,112870 +313037,1,111892 +313037,2,101922 +313041,1,112040 +313041,2,112873 +313048,1,111895 +313048,2,101929 +313867,1,133430 +313867,2,111928 +314256,1,144143 +314256,2,111928 +314259,1,144158 +314259,2,112870 +314263,1,144060 +314263,2,101922 +314268,1,144163 +314268,2,112873 +314269,1,144148 +314269,2,111931 +329933,1,107159 +329933,2,102144 +329937,1,107162 +329937,2,102150 +329941,1,107165 +329941,2,102166 +329944,1,107166 +329944,2,102177 +329947,1,107168 +329947,2,102191 +330865,1,133430 +330865,2,112034 +330867,1,133431 +330867,2,112043 +330870,1,133432 +330870,2,112049 +330947,1,137221 +330947,2,102144 +330956,1,137224 +330956,2,102150 +330962,1,137228 +330962,2,102166 +330964,1,137230 +330964,2,102173 +330967,1,137233 +330967,2,102177 +330971,1,137235 +330971,2,102190 +330974,1,137238 +330974,2,102191 +330977,1,138817 +330977,2,102144 +330981,1,138821 +330981,2,102150 +330984,1,138823 +330984,2,102166 +330989,1,138830 +330989,1,138831 +330989,2,102191 +331132,1,144143 +331132,2,112034 +331133,1,144148 +331133,2,112043 +331134,1,144150 +331134,2,112049 +333051,1,102136 +333051,1,102137 +333051,2,112992 +333054,1,102148 +333054,2,113000 +333059,1,102162 +333059,1,102163 +333059,2,113003 +333067,1,102190 +333067,2,113012 +333067,2,113013 +333086,1,107159 +333086,2,102122 +333091,1,107258 +333091,2,113000 +333099,1,107165 +333099,2,102127 +333110,1,107168 +333110,2,102135 +333153,1,105700 +333153,2,107255 +333158,1,105592 +333158,2,102127 +333168,1,105599 +333168,2,102135 +334183,1,137221 +334183,2,102122 +334190,1,137354 +334190,2,107255 +334198,1,137233 +334198,2,102133 +334202,1,137238 +334202,2,102135 +334210,1,138817 +334210,2,102122 +334218,1,138879 +334218,2,107255 +334222,1,138823 +334222,2,102127 +334230,1,138830 +334230,1,138831 +334230,2,102135 +393490,1,102125 +393490,2,112352 +393507,1,107254 +393507,2,112352 +393546,1,105794 +393546,2,112352 +393547,1,105795 +393547,2,112352 +393553,1,105799 +393553,2,112354 +393637,1,112991 +393637,2,112351 +393641,1,113004 +393641,2,112353 +393643,1,113008 +393643,2,112354 +393950,1,137407 +393950,2,112352 +393953,1,137412 +393953,2,112354 +402327,1,112766 +402327,2,102770 +402332,1,112773 +402332,2,102773 +402339,1,112784 +402339,2,102776 +402343,1,112790 +402343,2,102779 +402346,1,112793 +402346,1,112794 +402346,2,102782 +402350,1,112805 +402350,2,102784 +402376,1,112030 +402376,1,112031 +402376,2,113577 +402382,1,111888 +402382,2,102773 +402388,1,111892 +402388,2,102776 +402391,1,111939 +402391,2,107478 +402397,1,112046 +402397,2,113583 +402398,1,111895 +402398,2,102784 +403125,1,133430 +403125,2,112415 +403128,1,133431 +403128,2,112417 +403468,1,144143 +403468,2,112415 +403472,1,144158 +403472,2,113579 +403474,1,144060 +403474,2,102776 +403479,1,144148 +403479,2,112417 +403481,1,144062 +403481,1,144063 +403481,2,102782 +403485,1,144167 +403485,2,113583 +403486,1,144066 +403486,2,102784 +403488,1,144067 +403488,2,102766 +405211,1,112773 +405211,2,102800 +405214,1,112784 +405214,2,102802 +405214,2,102803 +405217,1,112793 +405217,1,112794 +405217,2,102807 +405219,1,112805 +405219,2,102809 +405235,1,111886 +405235,2,102795 +405236,1,111886 +405236,2,102796 +405241,1,111888 +405241,2,102800 +405250,1,111892 +405250,2,102802 +405250,2,102803 +405253,1,111939 +405253,2,107492 +405258,1,111895 +405258,2,102809 +405963,1,144060 +405963,2,102802 +405963,2,102803 +405970,1,144066 +405970,2,102809 +405971,1,144067 +405971,2,102796 +420730,1,102136 +420730,1,102137 +420730,2,113705 +420735,1,102148 +420735,2,113712 +420736,1,102125 +420736,2,112516 +420739,1,102162 +420739,1,102163 +420739,2,113715 +420745,1,102173 +420745,2,113719 +420747,1,102129 +420747,2,112526 +420751,1,102190 +420751,2,113721 +420782,1,107486 +420782,2,139353 +420783,1,107258 +420783,2,113712 +420785,1,107254 +420785,2,112516 +420791,1,107165 +420791,2,102929 +420792,1,107487 +420792,2,139355 +420798,1,107489 +420798,2,139356 +420887,1,105802 +420887,2,113712 +420888,1,105794 +420888,2,112516 +420893,1,105805 +420893,2,113715 +420894,1,106266 +420894,2,139355 +420903,1,105595 +420903,2,102932 +420911,1,105799 +420911,2,112526 +420912,1,105812 +420912,2,113721 +421176,1,112991 +421176,2,112513 +421177,1,112998 +421177,2,112516 +421179,1,113004 +421179,2,112524 +421180,1,113008 +421180,2,112526 +421181,1,113010 +421181,2,112527 +422233,1,137221 +422233,2,102923 +422233,2,102924 +422240,1,137415 +422240,2,113712 +422241,1,137407 +422241,2,112516 +422249,1,137228 +422249,2,102929 +422262,1,137412 +422262,2,112526 +422263,1,137423 +422263,2,113721 +422277,1,138821 +422277,2,102927 +422281,1,138823 +422281,2,102929 diff --git a/database/sql-bench/Data/ATIS/date_day.txt b/database/sql-bench/Data/ATIS/date_day.txt new file mode 100644 index 0000000..b96ac31 --- /dev/null +++ b/database/sql-bench/Data/ATIS/date_day.txt @@ -0,0 +1,1826 @@ +"1","1","1990","MONDAY" +"1","2","1990","TUESDAY" +"1","3","1990","WEDNESDAY" +"1","4","1990","THURSDAY" +"1","5","1990","FRIDAY" +"1","6","1990","SATURDAY" +"1","7","1990","SUNDAY" +"1","8","1990","MONDAY" +"1","9","1990","TUESDAY" +"1","10","1990","WEDNESDAY" +"1","11","1990","THURSDAY" +"1","12","1990","FRIDAY" +"1","13","1990","SATURDAY" +"1","14","1990","SUNDAY" +"1","15","1990","MONDAY" +"1","16","1990","TUESDAY" +"1","17","1990","WEDNESDAY" +"1","18","1990","THURSDAY" +"1","19","1990","FRIDAY" +"1","20","1990","SATURDAY" +"1","21","1990","SUNDAY" +"1","22","1990","MONDAY" +"1","23","1990","TUESDAY" +"1","24","1990","WEDNESDAY" +"1","25","1990","THURSDAY" +"1","26","1990","FRIDAY" +"1","27","1990","SATURDAY" +"1","28","1990","SUNDAY" +"1","29","1990","MONDAY" +"1","30","1990","TUESDAY" +"1","31","1990","WEDNESDAY" +"2","1","1990","THURSDAY" +"2","2","1990","FRIDAY" +"2","3","1990","SATURDAY" +"2","4","1990","SUNDAY" +"2","5","1990","MONDAY" +"2","6","1990","TUESDAY" +"2","7","1990","WEDNESDAY" +"2","8","1990","THURSDAY" +"2","9","1990","FRIDAY" +"2","10","1990","SATURDAY" +"2","11","1990","SUNDAY" +"2","12","1990","MONDAY" +"2","13","1990","TUESDAY" +"2","14","1990","WEDNESDAY" +"2","15","1990","THURSDAY" +"2","16","1990","FRIDAY" +"2","17","1990","SATURDAY" +"2","18","1990","SUNDAY" +"2","19","1990","MONDAY" +"2","20","1990","TUESDAY" +"2","21","1990","WEDNESDAY" +"2","22","1990","THURSDAY" +"2","23","1990","FRIDAY" +"2","24","1990","SATURDAY" +"2","25","1990","SUNDAY" +"2","26","1990","MONDAY" +"2","27","1990","TUESDAY" +"2","28","1990","WEDNESDAY" +"3","1","1990","THURSDAY" +"3","2","1990","FRIDAY" +"3","3","1990","SATURDAY" +"3","4","1990","SUNDAY" +"3","5","1990","MONDAY" +"3","6","1990","TUESDAY" +"3","7","1990","WEDNESDAY" +"3","8","1990","THURSDAY" +"3","9","1990","FRIDAY" +"3","10","1990","SATURDAY" +"3","11","1990","SUNDAY" +"3","12","1990","MONDAY" +"3","13","1990","TUESDAY" +"3","14","1990","WEDNESDAY" +"3","15","1990","THURSDAY" +"3","16","1990","FRIDAY" +"3","17","1990","SATURDAY" +"3","18","1990","SUNDAY" +"3","19","1990","MONDAY" +"3","20","1990","TUESDAY" +"3","21","1990","WEDNESDAY" +"3","22","1990","THURSDAY" +"3","23","1990","FRIDAY" +"3","24","1990","SATURDAY" +"3","25","1990","SUNDAY" +"3","26","1990","MONDAY" +"3","27","1990","TUESDAY" +"3","28","1990","WEDNESDAY" +"3","29","1990","THURSDAY" +"3","30","1990","FRIDAY" +"3","31","1990","SATURDAY" +"4","1","1990","SUNDAY" +"4","2","1990","MONDAY" +"4","3","1990","TUESDAY" +"4","4","1990","WEDNESDAY" +"4","5","1990","THURSDAY" +"4","6","1990","FRIDAY" +"4","7","1990","SATURDAY" +"4","8","1990","SUNDAY" +"4","9","1990","MONDAY" +"4","10","1990","TUESDAY" +"4","11","1990","WEDNESDAY" +"4","12","1990","THURSDAY" +"4","13","1990","FRIDAY" +"4","14","1990","SATURDAY" +"4","15","1990","SUNDAY" +"4","16","1990","MONDAY" +"4","17","1990","TUESDAY" +"4","18","1990","WEDNESDAY" +"4","19","1990","THURSDAY" +"4","20","1990","FRIDAY" +"4","21","1990","SATURDAY" +"4","22","1990","SUNDAY" +"4","23","1990","MONDAY" +"4","24","1990","TUESDAY" +"4","25","1990","WEDNESDAY" +"4","26","1990","THURSDAY" +"4","27","1990","FRIDAY" +"4","28","1990","SATURDAY" +"4","29","1990","SUNDAY" +"4","30","1990","MONDAY" +"5","1","1990","TUESDAY" +"5","2","1990","WEDNESDAY" +"5","3","1990","THURSDAY" +"5","4","1990","FRIDAY" +"5","5","1990","SATURDAY" +"5","6","1990","SUNDAY" +"5","7","1990","MONDAY" +"5","8","1990","TUESDAY" +"5","9","1990","WEDNESDAY" +"5","10","1990","THURSDAY" +"5","11","1990","FRIDAY" +"5","12","1990","SATURDAY" +"5","13","1990","SUNDAY" +"5","14","1990","MONDAY" +"5","15","1990","TUESDAY" +"5","16","1990","WEDNESDAY" +"5","17","1990","THURSDAY" +"5","18","1990","FRIDAY" +"5","19","1990","SATURDAY" +"5","20","1990","SUNDAY" +"5","21","1990","MONDAY" +"5","22","1990","TUESDAY" +"5","23","1990","WEDNESDAY" +"5","24","1990","THURSDAY" +"5","25","1990","FRIDAY" +"5","26","1990","SATURDAY" +"5","27","1990","SUNDAY" +"5","28","1990","MONDAY" +"5","29","1990","TUESDAY" +"5","30","1990","WEDNESDAY" +"5","31","1990","THURSDAY" +"6","1","1990","FRIDAY" +"6","2","1990","SATURDAY" +"6","3","1990","SUNDAY" +"6","4","1990","MONDAY" +"6","5","1990","TUESDAY" +"6","6","1990","WEDNESDAY" +"6","7","1990","THURSDAY" +"6","8","1990","FRIDAY" +"6","9","1990","SATURDAY" +"6","10","1990","SUNDAY" +"6","11","1990","MONDAY" +"6","12","1990","TUESDAY" +"6","13","1990","WEDNESDAY" +"6","14","1990","THURSDAY" +"6","15","1990","FRIDAY" +"6","16","1990","SATURDAY" +"6","17","1990","SUNDAY" +"6","18","1990","MONDAY" +"6","19","1990","TUESDAY" +"6","20","1990","WEDNESDAY" +"6","21","1990","THURSDAY" +"6","22","1990","FRIDAY" +"6","23","1990","SATURDAY" +"6","24","1990","SUNDAY" +"6","25","1990","MONDAY" +"6","26","1990","TUESDAY" +"6","27","1990","WEDNESDAY" +"6","28","1990","THURSDAY" +"6","29","1990","FRIDAY" +"6","30","1990","SATURDAY" +"7","1","1990","SUNDAY" +"7","2","1990","MONDAY" +"7","3","1990","TUESDAY" +"7","4","1990","WEDNESDAY" +"7","5","1990","THURSDAY" +"7","6","1990","FRIDAY" +"7","7","1990","SATURDAY" +"7","8","1990","SUNDAY" +"7","9","1990","MONDAY" +"7","10","1990","TUESDAY" +"7","11","1990","WEDNESDAY" +"7","12","1990","THURSDAY" +"7","13","1990","FRIDAY" +"7","14","1990","SATURDAY" +"7","15","1990","SUNDAY" +"7","16","1990","MONDAY" +"7","17","1990","TUESDAY" +"7","18","1990","WEDNESDAY" +"7","19","1990","THURSDAY" +"7","20","1990","FRIDAY" +"7","21","1990","SATURDAY" +"7","22","1990","SUNDAY" +"7","23","1990","MONDAY" +"7","24","1990","TUESDAY" +"7","25","1990","WEDNESDAY" +"7","26","1990","THURSDAY" +"7","27","1990","FRIDAY" +"7","28","1990","SATURDAY" +"7","29","1990","SUNDAY" +"7","30","1990","MONDAY" +"7","31","1990","TUESDAY" +"8","1","1990","WEDNESDAY" +"8","2","1990","THURSDAY" +"8","3","1990","FRIDAY" +"8","4","1990","SATURDAY" +"8","5","1990","SUNDAY" +"8","6","1990","MONDAY" +"8","7","1990","TUESDAY" +"8","8","1990","WEDNESDAY" +"8","9","1990","THURSDAY" +"8","10","1990","FRIDAY" +"8","11","1990","SATURDAY" +"8","12","1990","SUNDAY" +"8","13","1990","MONDAY" +"8","14","1990","TUESDAY" +"8","15","1990","WEDNESDAY" +"8","16","1990","THURSDAY" +"8","17","1990","FRIDAY" +"8","18","1990","SATURDAY" +"8","19","1990","SUNDAY" +"8","20","1990","MONDAY" +"8","21","1990","TUESDAY" +"8","22","1990","WEDNESDAY" +"8","23","1990","THURSDAY" +"8","24","1990","FRIDAY" +"8","25","1990","SATURDAY" +"8","26","1990","SUNDAY" +"8","27","1990","MONDAY" +"8","28","1990","TUESDAY" +"8","29","1990","WEDNESDAY" +"8","30","1990","THURSDAY" +"8","31","1990","FRIDAY" +"9","1","1990","SATURDAY" +"9","2","1990","SUNDAY" +"9","3","1990","MONDAY" +"9","4","1990","TUESDAY" +"9","5","1990","WEDNESDAY" +"9","6","1990","THURSDAY" +"9","7","1990","FRIDAY" +"9","8","1990","SATURDAY" +"9","9","1990","SUNDAY" +"9","10","1990","MONDAY" +"9","11","1990","TUESDAY" +"9","12","1990","WEDNESDAY" +"9","13","1990","THURSDAY" +"9","14","1990","FRIDAY" +"9","15","1990","SATURDAY" +"9","16","1990","SUNDAY" +"9","17","1990","MONDAY" +"9","18","1990","TUESDAY" +"9","19","1990","WEDNESDAY" +"9","20","1990","THURSDAY" +"9","21","1990","FRIDAY" +"9","22","1990","SATURDAY" +"9","23","1990","SUNDAY" +"9","24","1990","MONDAY" +"9","25","1990","TUESDAY" +"9","26","1990","WEDNESDAY" +"9","27","1990","THURSDAY" +"9","28","1990","FRIDAY" +"9","29","1990","SATURDAY" +"9","30","1990","SUNDAY" +"10","1","1990","MONDAY" +"10","2","1990","TUESDAY" +"10","3","1990","WEDNESDAY" +"10","4","1990","THURSDAY" +"10","5","1990","FRIDAY" +"10","6","1990","SATURDAY" +"10","7","1990","SUNDAY" +"10","8","1990","MONDAY" +"10","9","1990","TUESDAY" +"10","10","1990","WEDNESDAY" +"10","11","1990","THURSDAY" +"10","12","1990","FRIDAY" +"10","13","1990","SATURDAY" +"10","14","1990","SUNDAY" +"10","15","1990","MONDAY" +"10","16","1990","TUESDAY" +"10","17","1990","WEDNESDAY" +"10","18","1990","THURSDAY" +"10","19","1990","FRIDAY" +"10","20","1990","SATURDAY" +"10","21","1990","SUNDAY" +"10","22","1990","MONDAY" +"10","23","1990","TUESDAY" +"10","24","1990","WEDNESDAY" +"10","25","1990","THURSDAY" +"10","26","1990","FRIDAY" +"10","27","1990","SATURDAY" +"10","28","1990","SUNDAY" +"10","29","1990","MONDAY" +"10","30","1990","TUESDAY" +"10","31","1990","WEDNESDAY" +"11","1","1990","THURSDAY" +"11","2","1990","FRIDAY" +"11","3","1990","SATURDAY" +"11","4","1990","SUNDAY" +"11","5","1990","MONDAY" +"11","6","1990","TUESDAY" +"11","7","1990","WEDNESDAY" +"11","8","1990","THURSDAY" +"11","9","1990","FRIDAY" +"11","10","1990","SATURDAY" +"11","11","1990","SUNDAY" +"11","12","1990","MONDAY" +"11","13","1990","TUESDAY" +"11","14","1990","WEDNESDAY" +"11","15","1990","THURSDAY" +"11","16","1990","FRIDAY" +"11","17","1990","SATURDAY" +"11","18","1990","SUNDAY" +"11","19","1990","MONDAY" +"11","20","1990","TUESDAY" +"11","21","1990","WEDNESDAY" +"11","22","1990","THURSDAY" +"11","23","1990","FRIDAY" +"11","24","1990","SATURDAY" +"11","25","1990","SUNDAY" +"11","26","1990","MONDAY" +"11","27","1990","TUESDAY" +"11","28","1990","WEDNESDAY" +"11","29","1990","THURSDAY" +"11","30","1990","FRIDAY" +"12","1","1990","SATURDAY" +"12","2","1990","SUNDAY" +"12","3","1990","MONDAY" +"12","4","1990","TUESDAY" +"12","5","1990","WEDNESDAY" +"12","6","1990","THURSDAY" +"12","7","1990","FRIDAY" +"12","8","1990","SATURDAY" +"12","9","1990","SUNDAY" +"12","10","1990","MONDAY" +"12","11","1990","TUESDAY" +"12","12","1990","WEDNESDAY" +"12","13","1990","THURSDAY" +"12","14","1990","FRIDAY" +"12","15","1990","SATURDAY" +"12","16","1990","SUNDAY" +"12","17","1990","MONDAY" +"12","18","1990","TUESDAY" +"12","19","1990","WEDNESDAY" +"12","20","1990","THURSDAY" +"12","21","1990","FRIDAY" +"12","22","1990","SATURDAY" +"12","23","1990","SUNDAY" +"12","24","1990","MONDAY" +"12","25","1990","TUESDAY" +"12","26","1990","WEDNESDAY" +"12","27","1990","THURSDAY" +"12","28","1990","FRIDAY" +"12","29","1990","SATURDAY" +"12","30","1990","SUNDAY" +"12","31","1990","MONDAY" +"1","1","1991","TUESDAY" +"1","2","1991","WEDNESDAY" +"1","3","1991","THURSDAY" +"1","4","1991","FRIDAY" +"1","5","1991","SATURDAY" +"1","6","1991","SUNDAY" +"1","7","1991","MONDAY" +"1","8","1991","TUESDAY" +"1","9","1991","WEDNESDAY" +"1","10","1991","THURSDAY" +"1","11","1991","FRIDAY" +"1","12","1991","SATURDAY" +"1","13","1991","SUNDAY" +"1","14","1991","MONDAY" +"1","15","1991","TUESDAY" +"1","16","1991","WEDNESDAY" +"1","17","1991","THURSDAY" +"1","18","1991","FRIDAY" +"1","19","1991","SATURDAY" +"1","20","1991","SUNDAY" +"1","21","1991","MONDAY" +"1","22","1991","TUESDAY" +"1","23","1991","WEDNESDAY" +"1","24","1991","THURSDAY" +"1","25","1991","FRIDAY" +"1","26","1991","SATURDAY" +"1","27","1991","SUNDAY" +"1","28","1991","MONDAY" +"1","29","1991","TUESDAY" +"1","30","1991","WEDNESDAY" +"1","31","1991","THURSDAY" +"2","1","1991","FRIDAY" +"2","2","1991","SATURDAY" +"2","3","1991","SUNDAY" +"2","4","1991","MONDAY" +"2","5","1991","TUESDAY" +"2","6","1991","WEDNESDAY" +"2","7","1991","THURSDAY" +"2","8","1991","FRIDAY" +"2","9","1991","SATURDAY" +"2","10","1991","SUNDAY" +"2","11","1991","MONDAY" +"2","12","1991","TUESDAY" +"2","13","1991","WEDNESDAY" +"2","14","1991","THURSDAY" +"2","15","1991","FRIDAY" +"2","16","1991","SATURDAY" +"2","17","1991","SUNDAY" +"2","18","1991","MONDAY" +"2","19","1991","TUESDAY" +"2","20","1991","WEDNESDAY" +"2","21","1991","THURSDAY" +"2","22","1991","FRIDAY" +"2","23","1991","SATURDAY" +"2","24","1991","SUNDAY" +"2","25","1991","MONDAY" +"2","26","1991","TUESDAY" +"2","27","1991","WEDNESDAY" +"2","28","1991","THURSDAY" +"3","1","1991","FRIDAY" +"3","2","1991","SATURDAY" +"3","3","1991","SUNDAY" +"3","4","1991","MONDAY" +"3","5","1991","TUESDAY" +"3","6","1991","WEDNESDAY" +"3","7","1991","THURSDAY" +"3","8","1991","FRIDAY" +"3","9","1991","SATURDAY" +"3","10","1991","SUNDAY" +"3","11","1991","MONDAY" +"3","12","1991","TUESDAY" +"3","13","1991","WEDNESDAY" +"3","14","1991","THURSDAY" +"3","15","1991","FRIDAY" +"3","16","1991","SATURDAY" +"3","17","1991","SUNDAY" +"3","18","1991","MONDAY" +"3","19","1991","TUESDAY" +"3","20","1991","WEDNESDAY" +"3","21","1991","THURSDAY" +"3","22","1991","FRIDAY" +"3","23","1991","SATURDAY" +"3","24","1991","SUNDAY" +"3","25","1991","MONDAY" +"3","26","1991","TUESDAY" +"3","27","1991","WEDNESDAY" +"3","28","1991","THURSDAY" +"3","29","1991","FRIDAY" +"3","30","1991","SATURDAY" +"3","31","1991","SUNDAY" +"4","1","1991","MONDAY" +"4","2","1991","TUESDAY" +"4","3","1991","WEDNESDAY" +"4","4","1991","THURSDAY" +"4","5","1991","FRIDAY" +"4","6","1991","SATURDAY" +"4","7","1991","SUNDAY" +"4","8","1991","MONDAY" +"4","9","1991","TUESDAY" +"4","10","1991","WEDNESDAY" +"4","11","1991","THURSDAY" +"4","12","1991","FRIDAY" +"4","13","1991","SATURDAY" +"4","14","1991","SUNDAY" +"4","15","1991","MONDAY" +"4","16","1991","TUESDAY" +"4","17","1991","WEDNESDAY" +"4","18","1991","THURSDAY" +"4","19","1991","FRIDAY" +"4","20","1991","SATURDAY" +"4","21","1991","SUNDAY" +"4","22","1991","MONDAY" +"4","23","1991","TUESDAY" +"4","24","1991","WEDNESDAY" +"4","25","1991","THURSDAY" +"4","26","1991","FRIDAY" +"4","27","1991","SATURDAY" +"4","28","1991","SUNDAY" +"4","29","1991","MONDAY" +"4","30","1991","TUESDAY" +"5","1","1991","WEDNESDAY" +"5","2","1991","THURSDAY" +"5","3","1991","FRIDAY" +"5","4","1991","SATURDAY" +"5","5","1991","SUNDAY" +"5","6","1991","MONDAY" +"5","7","1991","TUESDAY" +"5","8","1991","WEDNESDAY" +"5","9","1991","THURSDAY" +"5","10","1991","FRIDAY" +"5","11","1991","SATURDAY" +"5","12","1991","SUNDAY" +"5","13","1991","MONDAY" +"5","14","1991","TUESDAY" +"5","15","1991","WEDNESDAY" +"5","16","1991","THURSDAY" +"5","17","1991","FRIDAY" +"5","18","1991","SATURDAY" +"5","19","1991","SUNDAY" +"5","20","1991","MONDAY" +"5","21","1991","TUESDAY" +"5","22","1991","WEDNESDAY" +"5","23","1991","THURSDAY" +"5","24","1991","FRIDAY" +"5","25","1991","SATURDAY" +"5","26","1991","SUNDAY" +"5","27","1991","MONDAY" +"5","28","1991","TUESDAY" +"5","29","1991","WEDNESDAY" +"5","30","1991","THURSDAY" +"5","31","1991","FRIDAY" +"6","1","1991","SATURDAY" +"6","2","1991","SUNDAY" +"6","3","1991","MONDAY" +"6","4","1991","TUESDAY" +"6","5","1991","WEDNESDAY" +"6","6","1991","THURSDAY" +"6","7","1991","FRIDAY" +"6","8","1991","SATURDAY" +"6","9","1991","SUNDAY" +"6","10","1991","MONDAY" +"6","11","1991","TUESDAY" +"6","12","1991","WEDNESDAY" +"6","13","1991","THURSDAY" +"6","14","1991","FRIDAY" +"6","15","1991","SATURDAY" +"6","16","1991","SUNDAY" +"6","17","1991","MONDAY" +"6","18","1991","TUESDAY" +"6","19","1991","WEDNESDAY" +"6","20","1991","THURSDAY" +"6","21","1991","FRIDAY" +"6","22","1991","SATURDAY" +"6","23","1991","SUNDAY" +"6","24","1991","MONDAY" +"6","25","1991","TUESDAY" +"6","26","1991","WEDNESDAY" +"6","27","1991","THURSDAY" +"6","28","1991","FRIDAY" +"6","29","1991","SATURDAY" +"6","30","1991","SUNDAY" +"7","1","1991","MONDAY" +"7","2","1991","TUESDAY" +"7","3","1991","WEDNESDAY" +"7","4","1991","THURSDAY" +"7","5","1991","FRIDAY" +"7","6","1991","SATURDAY" +"7","7","1991","SUNDAY" +"7","8","1991","MONDAY" +"7","9","1991","TUESDAY" +"7","10","1991","WEDNESDAY" +"7","11","1991","THURSDAY" +"7","12","1991","FRIDAY" +"7","13","1991","SATURDAY" +"7","14","1991","SUNDAY" +"7","15","1991","MONDAY" +"7","16","1991","TUESDAY" +"7","17","1991","WEDNESDAY" +"7","18","1991","THURSDAY" +"7","19","1991","FRIDAY" +"7","20","1991","SATURDAY" +"7","21","1991","SUNDAY" +"7","22","1991","MONDAY" +"7","23","1991","TUESDAY" +"7","24","1991","WEDNESDAY" +"7","25","1991","THURSDAY" +"7","26","1991","FRIDAY" +"7","27","1991","SATURDAY" +"7","28","1991","SUNDAY" +"7","29","1991","MONDAY" +"7","30","1991","TUESDAY" +"7","31","1991","WEDNESDAY" +"8","1","1991","THURSDAY" +"8","2","1991","FRIDAY" +"8","3","1991","SATURDAY" +"8","4","1991","SUNDAY" +"8","5","1991","MONDAY" +"8","6","1991","TUESDAY" +"8","7","1991","WEDNESDAY" +"8","8","1991","THURSDAY" +"8","9","1991","FRIDAY" +"8","10","1991","SATURDAY" +"8","11","1991","SUNDAY" +"8","12","1991","MONDAY" +"8","13","1991","TUESDAY" +"8","14","1991","WEDNESDAY" +"8","15","1991","THURSDAY" +"8","16","1991","FRIDAY" +"8","17","1991","SATURDAY" +"8","18","1991","SUNDAY" +"8","19","1991","MONDAY" +"8","20","1991","TUESDAY" +"8","21","1991","WEDNESDAY" +"8","22","1991","THURSDAY" +"8","23","1991","FRIDAY" +"8","24","1991","SATURDAY" +"8","25","1991","SUNDAY" +"8","26","1991","MONDAY" +"8","27","1991","TUESDAY" +"8","28","1991","WEDNESDAY" +"8","29","1991","THURSDAY" +"8","30","1991","FRIDAY" +"8","31","1991","SATURDAY" +"9","1","1991","SUNDAY" +"9","2","1991","MONDAY" +"9","3","1991","TUESDAY" +"9","4","1991","WEDNESDAY" +"9","5","1991","THURSDAY" +"9","6","1991","FRIDAY" +"9","7","1991","SATURDAY" +"9","8","1991","SUNDAY" +"9","9","1991","MONDAY" +"9","10","1991","TUESDAY" +"9","11","1991","WEDNESDAY" +"9","12","1991","THURSDAY" +"9","13","1991","FRIDAY" +"9","14","1991","SATURDAY" +"9","15","1991","SUNDAY" +"9","16","1991","MONDAY" +"9","17","1991","TUESDAY" +"9","18","1991","WEDNESDAY" +"9","19","1991","THURSDAY" +"9","20","1991","FRIDAY" +"9","21","1991","SATURDAY" +"9","22","1991","SUNDAY" +"9","23","1991","MONDAY" +"9","24","1991","TUESDAY" +"9","25","1991","WEDNESDAY" +"9","26","1991","THURSDAY" +"9","27","1991","FRIDAY" +"9","28","1991","SATURDAY" +"9","29","1991","SUNDAY" +"9","30","1991","MONDAY" +"10","1","1991","TUESDAY" +"10","2","1991","WEDNESDAY" +"10","3","1991","THURSDAY" +"10","4","1991","FRIDAY" +"10","5","1991","SATURDAY" +"10","6","1991","SUNDAY" +"10","7","1991","MONDAY" +"10","8","1991","TUESDAY" +"10","9","1991","WEDNESDAY" +"10","10","1991","THURSDAY" +"10","11","1991","FRIDAY" +"10","12","1991","SATURDAY" +"10","13","1991","SUNDAY" +"10","14","1991","MONDAY" +"10","15","1991","TUESDAY" +"10","16","1991","WEDNESDAY" +"10","17","1991","THURSDAY" +"10","18","1991","FRIDAY" +"10","19","1991","SATURDAY" +"10","20","1991","SUNDAY" +"10","21","1991","MONDAY" +"10","22","1991","TUESDAY" +"10","23","1991","WEDNESDAY" +"10","24","1991","THURSDAY" +"10","25","1991","FRIDAY" +"10","26","1991","SATURDAY" +"10","27","1991","SUNDAY" +"10","28","1991","MONDAY" +"10","29","1991","TUESDAY" +"10","30","1991","WEDNESDAY" +"10","31","1991","THURSDAY" +"11","1","1991","FRIDAY" +"11","2","1991","SATURDAY" +"11","3","1991","SUNDAY" +"11","4","1991","MONDAY" +"11","5","1991","TUESDAY" +"11","6","1991","WEDNESDAY" +"11","7","1991","THURSDAY" +"11","8","1991","FRIDAY" +"11","9","1991","SATURDAY" +"11","10","1991","SUNDAY" +"11","11","1991","MONDAY" +"11","12","1991","TUESDAY" +"11","13","1991","WEDNESDAY" +"11","14","1991","THURSDAY" +"11","15","1991","FRIDAY" +"11","16","1991","SATURDAY" +"11","17","1991","SUNDAY" +"11","18","1991","MONDAY" +"11","19","1991","TUESDAY" +"11","20","1991","WEDNESDAY" +"11","21","1991","THURSDAY" +"11","22","1991","FRIDAY" +"11","23","1991","SATURDAY" +"11","24","1991","SUNDAY" +"11","25","1991","MONDAY" +"11","26","1991","TUESDAY" +"11","27","1991","WEDNESDAY" +"11","28","1991","THURSDAY" +"11","29","1991","FRIDAY" +"11","30","1991","SATURDAY" +"12","1","1991","SUNDAY" +"12","2","1991","MONDAY" +"12","3","1991","TUESDAY" +"12","4","1991","WEDNESDAY" +"12","5","1991","THURSDAY" +"12","6","1991","FRIDAY" +"12","7","1991","SATURDAY" +"12","8","1991","SUNDAY" +"12","9","1991","MONDAY" +"12","10","1991","TUESDAY" +"12","11","1991","WEDNESDAY" +"12","12","1991","THURSDAY" +"12","13","1991","FRIDAY" +"12","14","1991","SATURDAY" +"12","15","1991","SUNDAY" +"12","16","1991","MONDAY" +"12","17","1991","TUESDAY" +"12","18","1991","WEDNESDAY" +"12","19","1991","THURSDAY" +"12","20","1991","FRIDAY" +"12","21","1991","SATURDAY" +"12","22","1991","SUNDAY" +"12","23","1991","MONDAY" +"12","24","1991","TUESDAY" +"12","25","1991","WEDNESDAY" +"12","26","1991","THURSDAY" +"12","27","1991","FRIDAY" +"12","28","1991","SATURDAY" +"12","29","1991","SUNDAY" +"12","30","1991","MONDAY" +"12","31","1991","TUESDAY" +"1","1","1992","WEDNESDAY" +"1","2","1992","THURSDAY" +"1","3","1992","FRIDAY" +"1","4","1992","SATURDAY" +"1","5","1992","SUNDAY" +"1","6","1992","MONDAY" +"1","7","1992","TUESDAY" +"1","8","1992","WEDNESDAY" +"1","9","1992","THURSDAY" +"1","10","1992","FRIDAY" +"1","11","1992","SATURDAY" +"1","12","1992","SUNDAY" +"1","13","1992","MONDAY" +"1","14","1992","TUESDAY" +"1","15","1992","WEDNESDAY" +"1","16","1992","THURSDAY" +"1","17","1992","FRIDAY" +"1","18","1992","SATURDAY" +"1","19","1992","SUNDAY" +"1","20","1992","MONDAY" +"1","21","1992","TUESDAY" +"1","22","1992","WEDNESDAY" +"1","23","1992","THURSDAY" +"1","24","1992","FRIDAY" +"1","25","1992","SATURDAY" +"1","26","1992","SUNDAY" +"1","27","1992","MONDAY" +"1","28","1992","TUESDAY" +"1","29","1992","WEDNESDAY" +"1","30","1992","THURSDAY" +"1","31","1992","FRIDAY" +"2","1","1992","SATURDAY" +"2","2","1992","SUNDAY" +"2","3","1992","MONDAY" +"2","4","1992","TUESDAY" +"2","5","1992","WEDNESDAY" +"2","6","1992","THURSDAY" +"2","7","1992","FRIDAY" +"2","8","1992","SATURDAY" +"2","9","1992","SUNDAY" +"2","10","1992","MONDAY" +"2","11","1992","TUESDAY" +"2","12","1992","WEDNESDAY" +"2","13","1992","THURSDAY" +"2","14","1992","FRIDAY" +"2","15","1992","SATURDAY" +"2","16","1992","SUNDAY" +"2","17","1992","MONDAY" +"2","18","1992","TUESDAY" +"2","19","1992","WEDNESDAY" +"2","20","1992","THURSDAY" +"2","21","1992","FRIDAY" +"2","22","1992","SATURDAY" +"2","23","1992","SUNDAY" +"2","24","1992","MONDAY" +"2","25","1992","TUESDAY" +"2","26","1992","WEDNESDAY" +"2","27","1992","THURSDAY" +"2","28","1992","FRIDAY" +"2","29","1992","SATURDAY" +"3","1","1992","SUNDAY" +"3","2","1992","MONDAY" +"3","3","1992","TUESDAY" +"3","4","1992","WEDNESDAY" +"3","5","1992","THURSDAY" +"3","6","1992","FRIDAY" +"3","7","1992","SATURDAY" +"3","8","1992","SUNDAY" +"3","9","1992","MONDAY" +"3","10","1992","TUESDAY" +"3","11","1992","WEDNESDAY" +"3","12","1992","THURSDAY" +"3","13","1992","FRIDAY" +"3","14","1992","SATURDAY" +"3","15","1992","SUNDAY" +"3","16","1992","MONDAY" +"3","17","1992","TUESDAY" +"3","18","1992","WEDNESDAY" +"3","19","1992","THURSDAY" +"3","20","1992","FRIDAY" +"3","21","1992","SATURDAY" +"3","22","1992","SUNDAY" +"3","23","1992","MONDAY" +"3","24","1992","TUESDAY" +"3","25","1992","WEDNESDAY" +"3","26","1992","THURSDAY" +"3","27","1992","FRIDAY" +"3","28","1992","SATURDAY" +"3","29","1992","SUNDAY" +"3","30","1992","MONDAY" +"3","31","1992","TUESDAY" +"4","1","1992","WEDNESDAY" +"4","2","1992","THURSDAY" +"4","3","1992","FRIDAY" +"4","4","1992","SATURDAY" +"4","5","1992","SUNDAY" +"4","6","1992","MONDAY" +"4","7","1992","TUESDAY" +"4","8","1992","WEDNESDAY" +"4","9","1992","THURSDAY" +"4","10","1992","FRIDAY" +"4","11","1992","SATURDAY" +"4","12","1992","SUNDAY" +"4","13","1992","MONDAY" +"4","14","1992","TUESDAY" +"4","15","1992","WEDNESDAY" +"4","16","1992","THURSDAY" +"4","17","1992","FRIDAY" +"4","18","1992","SATURDAY" +"4","19","1992","SUNDAY" +"4","20","1992","MONDAY" +"4","21","1992","TUESDAY" +"4","22","1992","WEDNESDAY" +"4","23","1992","THURSDAY" +"4","24","1992","FRIDAY" +"4","25","1992","SATURDAY" +"4","26","1992","SUNDAY" +"4","27","1992","MONDAY" +"4","28","1992","TUESDAY" +"4","29","1992","WEDNESDAY" +"4","30","1992","THURSDAY" +"5","1","1992","FRIDAY" +"5","2","1992","SATURDAY" +"5","3","1992","SUNDAY" +"5","4","1992","MONDAY" +"5","5","1992","TUESDAY" +"5","6","1992","WEDNESDAY" +"5","7","1992","THURSDAY" +"5","8","1992","FRIDAY" +"5","9","1992","SATURDAY" +"5","10","1992","SUNDAY" +"5","11","1992","MONDAY" +"5","12","1992","TUESDAY" +"5","13","1992","WEDNESDAY" +"5","14","1992","THURSDAY" +"5","15","1992","FRIDAY" +"5","16","1992","SATURDAY" +"5","17","1992","SUNDAY" +"5","18","1992","MONDAY" +"5","19","1992","TUESDAY" +"5","20","1992","WEDNESDAY" +"5","21","1992","THURSDAY" +"5","22","1992","FRIDAY" +"5","23","1992","SATURDAY" +"5","24","1992","SUNDAY" +"5","25","1992","MONDAY" +"5","26","1992","TUESDAY" +"5","27","1992","WEDNESDAY" +"5","28","1992","THURSDAY" +"5","29","1992","FRIDAY" +"5","30","1992","SATURDAY" +"5","31","1992","SUNDAY" +"6","1","1992","MONDAY" +"6","2","1992","TUESDAY" +"6","3","1992","WEDNESDAY" +"6","4","1992","THURSDAY" +"6","5","1992","FRIDAY" +"6","6","1992","SATURDAY" +"6","7","1992","SUNDAY" +"6","8","1992","MONDAY" +"6","9","1992","TUESDAY" +"6","10","1992","WEDNESDAY" +"6","11","1992","THURSDAY" +"6","12","1992","FRIDAY" +"6","13","1992","SATURDAY" +"6","14","1992","SUNDAY" +"6","15","1992","MONDAY" +"6","16","1992","TUESDAY" +"6","17","1992","WEDNESDAY" +"6","18","1992","THURSDAY" +"6","19","1992","FRIDAY" +"6","20","1992","SATURDAY" +"6","21","1992","SUNDAY" +"6","22","1992","MONDAY" +"6","23","1992","TUESDAY" +"6","24","1992","WEDNESDAY" +"6","25","1992","THURSDAY" +"6","26","1992","FRIDAY" +"6","27","1992","SATURDAY" +"6","28","1992","SUNDAY" +"6","29","1992","MONDAY" +"6","30","1992","TUESDAY" +"7","1","1992","WEDNESDAY" +"7","2","1992","THURSDAY" +"7","3","1992","FRIDAY" +"7","4","1992","SATURDAY" +"7","5","1992","SUNDAY" +"7","6","1992","MONDAY" +"7","7","1992","TUESDAY" +"7","8","1992","WEDNESDAY" +"7","9","1992","THURSDAY" +"7","10","1992","FRIDAY" +"7","11","1992","SATURDAY" +"7","12","1992","SUNDAY" +"7","13","1992","MONDAY" +"7","14","1992","TUESDAY" +"7","15","1992","WEDNESDAY" +"7","16","1992","THURSDAY" +"7","17","1992","FRIDAY" +"7","18","1992","SATURDAY" +"7","19","1992","SUNDAY" +"7","20","1992","MONDAY" +"7","21","1992","TUESDAY" +"7","22","1992","WEDNESDAY" +"7","23","1992","THURSDAY" +"7","24","1992","FRIDAY" +"7","25","1992","SATURDAY" +"7","26","1992","SUNDAY" +"7","27","1992","MONDAY" +"7","28","1992","TUESDAY" +"7","29","1992","WEDNESDAY" +"7","30","1992","THURSDAY" +"7","31","1992","FRIDAY" +"8","1","1992","SATURDAY" +"8","2","1992","SUNDAY" +"8","3","1992","MONDAY" +"8","4","1992","TUESDAY" +"8","5","1992","WEDNESDAY" +"8","6","1992","THURSDAY" +"8","7","1992","FRIDAY" +"8","8","1992","SATURDAY" +"8","9","1992","SUNDAY" +"8","10","1992","MONDAY" +"8","11","1992","TUESDAY" +"8","12","1992","WEDNESDAY" +"8","13","1992","THURSDAY" +"8","14","1992","FRIDAY" +"8","15","1992","SATURDAY" +"8","16","1992","SUNDAY" +"8","17","1992","MONDAY" +"8","18","1992","TUESDAY" +"8","19","1992","WEDNESDAY" +"8","20","1992","THURSDAY" +"8","21","1992","FRIDAY" +"8","22","1992","SATURDAY" +"8","23","1992","SUNDAY" +"8","24","1992","MONDAY" +"8","25","1992","TUESDAY" +"8","26","1992","WEDNESDAY" +"8","27","1992","THURSDAY" +"8","28","1992","FRIDAY" +"8","29","1992","SATURDAY" +"8","30","1992","SUNDAY" +"8","31","1992","MONDAY" +"9","1","1992","TUESDAY" +"9","2","1992","WEDNESDAY" +"9","3","1992","THURSDAY" +"9","4","1992","FRIDAY" +"9","5","1992","SATURDAY" +"9","6","1992","SUNDAY" +"9","7","1992","MONDAY" +"9","8","1992","TUESDAY" +"9","9","1992","WEDNESDAY" +"9","10","1992","THURSDAY" +"9","11","1992","FRIDAY" +"9","12","1992","SATURDAY" +"9","13","1992","SUNDAY" +"9","14","1992","MONDAY" +"9","15","1992","TUESDAY" +"9","16","1992","WEDNESDAY" +"9","17","1992","THURSDAY" +"9","18","1992","FRIDAY" +"9","19","1992","SATURDAY" +"9","20","1992","SUNDAY" +"9","21","1992","MONDAY" +"9","22","1992","TUESDAY" +"9","23","1992","WEDNESDAY" +"9","24","1992","THURSDAY" +"9","25","1992","FRIDAY" +"9","26","1992","SATURDAY" +"9","27","1992","SUNDAY" +"9","28","1992","MONDAY" +"9","29","1992","TUESDAY" +"9","30","1992","WEDNESDAY" +"10","1","1992","THURSDAY" +"10","2","1992","FRIDAY" +"10","3","1992","SATURDAY" +"10","4","1992","SUNDAY" +"10","5","1992","MONDAY" +"10","6","1992","TUESDAY" +"10","7","1992","WEDNESDAY" +"10","8","1992","THURSDAY" +"10","9","1992","FRIDAY" +"10","10","1992","SATURDAY" +"10","11","1992","SUNDAY" +"10","12","1992","MONDAY" +"10","13","1992","TUESDAY" +"10","14","1992","WEDNESDAY" +"10","15","1992","THURSDAY" +"10","16","1992","FRIDAY" +"10","17","1992","SATURDAY" +"10","18","1992","SUNDAY" +"10","19","1992","MONDAY" +"10","20","1992","TUESDAY" +"10","21","1992","WEDNESDAY" +"10","22","1992","THURSDAY" +"10","23","1992","FRIDAY" +"10","24","1992","SATURDAY" +"10","25","1992","SUNDAY" +"10","26","1992","MONDAY" +"10","27","1992","TUESDAY" +"10","28","1992","WEDNESDAY" +"10","29","1992","THURSDAY" +"10","30","1992","FRIDAY" +"10","31","1992","SATURDAY" +"11","1","1992","SUNDAY" +"11","2","1992","MONDAY" +"11","3","1992","TUESDAY" +"11","4","1992","WEDNESDAY" +"11","5","1992","THURSDAY" +"11","6","1992","FRIDAY" +"11","7","1992","SATURDAY" +"11","8","1992","SUNDAY" +"11","9","1992","MONDAY" +"11","10","1992","TUESDAY" +"11","11","1992","WEDNESDAY" +"11","12","1992","THURSDAY" +"11","13","1992","FRIDAY" +"11","14","1992","SATURDAY" +"11","15","1992","SUNDAY" +"11","16","1992","MONDAY" +"11","17","1992","TUESDAY" +"11","18","1992","WEDNESDAY" +"11","19","1992","THURSDAY" +"11","20","1992","FRIDAY" +"11","21","1992","SATURDAY" +"11","22","1992","SUNDAY" +"11","23","1992","MONDAY" +"11","24","1992","TUESDAY" +"11","25","1992","WEDNESDAY" +"11","26","1992","THURSDAY" +"11","27","1992","FRIDAY" +"11","28","1992","SATURDAY" +"11","29","1992","SUNDAY" +"11","30","1992","MONDAY" +"12","1","1992","TUESDAY" +"12","2","1992","WEDNESDAY" +"12","3","1992","THURSDAY" +"12","4","1992","FRIDAY" +"12","5","1992","SATURDAY" +"12","6","1992","SUNDAY" +"12","7","1992","MONDAY" +"12","8","1992","TUESDAY" +"12","9","1992","WEDNESDAY" +"12","10","1992","THURSDAY" +"12","11","1992","FRIDAY" +"12","12","1992","SATURDAY" +"12","13","1992","SUNDAY" +"12","14","1992","MONDAY" +"12","15","1992","TUESDAY" +"12","16","1992","WEDNESDAY" +"12","17","1992","THURSDAY" +"12","18","1992","FRIDAY" +"12","19","1992","SATURDAY" +"12","20","1992","SUNDAY" +"12","21","1992","MONDAY" +"12","22","1992","TUESDAY" +"12","23","1992","WEDNESDAY" +"12","24","1992","THURSDAY" +"12","25","1992","FRIDAY" +"12","26","1992","SATURDAY" +"12","27","1992","SUNDAY" +"12","28","1992","MONDAY" +"12","29","1992","TUESDAY" +"12","30","1992","WEDNESDAY" +"12","31","1992","THURSDAY" +"1","1","1993","FRIDAY" +"1","2","1993","SATURDAY" +"1","3","1993","SUNDAY" +"1","4","1993","MONDAY" +"1","5","1993","TUESDAY" +"1","6","1993","WEDNESDAY" +"1","7","1993","THURSDAY" +"1","8","1993","FRIDAY" +"1","9","1993","SATURDAY" +"1","10","1993","SUNDAY" +"1","11","1993","MONDAY" +"1","12","1993","TUESDAY" +"1","13","1993","WEDNESDAY" +"1","14","1993","THURSDAY" +"1","15","1993","FRIDAY" +"1","16","1993","SATURDAY" +"1","17","1993","SUNDAY" +"1","18","1993","MONDAY" +"1","19","1993","TUESDAY" +"1","20","1993","WEDNESDAY" +"1","21","1993","THURSDAY" +"1","22","1993","FRIDAY" +"1","23","1993","SATURDAY" +"1","24","1993","SUNDAY" +"1","25","1993","MONDAY" +"1","26","1993","TUESDAY" +"1","27","1993","WEDNESDAY" +"1","28","1993","THURSDAY" +"1","29","1993","FRIDAY" +"1","30","1993","SATURDAY" +"1","31","1993","SUNDAY" +"2","1","1993","MONDAY" +"2","2","1993","TUESDAY" +"2","3","1993","WEDNESDAY" +"2","4","1993","THURSDAY" +"2","5","1993","FRIDAY" +"2","6","1993","SATURDAY" +"2","7","1993","SUNDAY" +"2","8","1993","MONDAY" +"2","9","1993","TUESDAY" +"2","10","1993","WEDNESDAY" +"2","11","1993","THURSDAY" +"2","12","1993","FRIDAY" +"2","13","1993","SATURDAY" +"2","14","1993","SUNDAY" +"2","15","1993","MONDAY" +"2","16","1993","TUESDAY" +"2","17","1993","WEDNESDAY" +"2","18","1993","THURSDAY" +"2","19","1993","FRIDAY" +"2","20","1993","SATURDAY" +"2","21","1993","SUNDAY" +"2","22","1993","MONDAY" +"2","23","1993","TUESDAY" +"2","24","1993","WEDNESDAY" +"2","25","1993","THURSDAY" +"2","26","1993","FRIDAY" +"2","27","1993","SATURDAY" +"2","28","1993","SUNDAY" +"3","1","1993","MONDAY" +"3","2","1993","TUESDAY" +"3","3","1993","WEDNESDAY" +"3","4","1993","THURSDAY" +"3","5","1993","FRIDAY" +"3","6","1993","SATURDAY" +"3","7","1993","SUNDAY" +"3","8","1993","MONDAY" +"3","9","1993","TUESDAY" +"3","10","1993","WEDNESDAY" +"3","11","1993","THURSDAY" +"3","12","1993","FRIDAY" +"3","13","1993","SATURDAY" +"3","14","1993","SUNDAY" +"3","15","1993","MONDAY" +"3","16","1993","TUESDAY" +"3","17","1993","WEDNESDAY" +"3","18","1993","THURSDAY" +"3","19","1993","FRIDAY" +"3","20","1993","SATURDAY" +"3","21","1993","SUNDAY" +"3","22","1993","MONDAY" +"3","23","1993","TUESDAY" +"3","24","1993","WEDNESDAY" +"3","25","1993","THURSDAY" +"3","26","1993","FRIDAY" +"3","27","1993","SATURDAY" +"3","28","1993","SUNDAY" +"3","29","1993","MONDAY" +"3","30","1993","TUESDAY" +"3","31","1993","WEDNESDAY" +"4","1","1993","THURSDAY" +"4","2","1993","FRIDAY" +"4","3","1993","SATURDAY" +"4","4","1993","SUNDAY" +"4","5","1993","MONDAY" +"4","6","1993","TUESDAY" +"4","7","1993","WEDNESDAY" +"4","8","1993","THURSDAY" +"4","9","1993","FRIDAY" +"4","10","1993","SATURDAY" +"4","11","1993","SUNDAY" +"4","12","1993","MONDAY" +"4","13","1993","TUESDAY" +"4","14","1993","WEDNESDAY" +"4","15","1993","THURSDAY" +"4","16","1993","FRIDAY" +"4","17","1993","SATURDAY" +"4","18","1993","SUNDAY" +"4","19","1993","MONDAY" +"4","20","1993","TUESDAY" +"4","21","1993","WEDNESDAY" +"4","22","1993","THURSDAY" +"4","23","1993","FRIDAY" +"4","24","1993","SATURDAY" +"4","25","1993","SUNDAY" +"4","26","1993","MONDAY" +"4","27","1993","TUESDAY" +"4","28","1993","WEDNESDAY" +"4","29","1993","THURSDAY" +"4","30","1993","FRIDAY" +"5","1","1993","SATURDAY" +"5","2","1993","SUNDAY" +"5","3","1993","MONDAY" +"5","4","1993","TUESDAY" +"5","5","1993","WEDNESDAY" +"5","6","1993","THURSDAY" +"5","7","1993","FRIDAY" +"5","8","1993","SATURDAY" +"5","9","1993","SUNDAY" +"5","10","1993","MONDAY" +"5","11","1993","TUESDAY" +"5","12","1993","WEDNESDAY" +"5","13","1993","THURSDAY" +"5","14","1993","FRIDAY" +"5","15","1993","SATURDAY" +"5","16","1993","SUNDAY" +"5","17","1993","MONDAY" +"5","18","1993","TUESDAY" +"5","19","1993","WEDNESDAY" +"5","20","1993","THURSDAY" +"5","21","1993","FRIDAY" +"5","22","1993","SATURDAY" +"5","23","1993","SUNDAY" +"5","24","1993","MONDAY" +"5","25","1993","TUESDAY" +"5","26","1993","WEDNESDAY" +"5","27","1993","THURSDAY" +"5","28","1993","FRIDAY" +"5","29","1993","SATURDAY" +"5","30","1993","SUNDAY" +"5","31","1993","MONDAY" +"6","1","1993","TUESDAY" +"6","2","1993","WEDNESDAY" +"6","3","1993","THURSDAY" +"6","4","1993","FRIDAY" +"6","5","1993","SATURDAY" +"6","6","1993","SUNDAY" +"6","7","1993","MONDAY" +"6","8","1993","TUESDAY" +"6","9","1993","WEDNESDAY" +"6","10","1993","THURSDAY" +"6","11","1993","FRIDAY" +"6","12","1993","SATURDAY" +"6","13","1993","SUNDAY" +"6","14","1993","MONDAY" +"6","15","1993","TUESDAY" +"6","16","1993","WEDNESDAY" +"6","17","1993","THURSDAY" +"6","18","1993","FRIDAY" +"6","19","1993","SATURDAY" +"6","20","1993","SUNDAY" +"6","21","1993","MONDAY" +"6","22","1993","TUESDAY" +"6","23","1993","WEDNESDAY" +"6","24","1993","THURSDAY" +"6","25","1993","FRIDAY" +"6","26","1993","SATURDAY" +"6","27","1993","SUNDAY" +"6","28","1993","MONDAY" +"6","29","1993","TUESDAY" +"6","30","1993","WEDNESDAY" +"7","1","1993","THURSDAY" +"7","2","1993","FRIDAY" +"7","3","1993","SATURDAY" +"7","4","1993","SUNDAY" +"7","5","1993","MONDAY" +"7","6","1993","TUESDAY" +"7","7","1993","WEDNESDAY" +"7","8","1993","THURSDAY" +"7","9","1993","FRIDAY" +"7","10","1993","SATURDAY" +"7","11","1993","SUNDAY" +"7","12","1993","MONDAY" +"7","13","1993","TUESDAY" +"7","14","1993","WEDNESDAY" +"7","15","1993","THURSDAY" +"7","16","1993","FRIDAY" +"7","17","1993","SATURDAY" +"7","18","1993","SUNDAY" +"7","19","1993","MONDAY" +"7","20","1993","TUESDAY" +"7","21","1993","WEDNESDAY" +"7","22","1993","THURSDAY" +"7","23","1993","FRIDAY" +"7","24","1993","SATURDAY" +"7","25","1993","SUNDAY" +"7","26","1993","MONDAY" +"7","27","1993","TUESDAY" +"7","28","1993","WEDNESDAY" +"7","29","1993","THURSDAY" +"7","30","1993","FRIDAY" +"7","31","1993","SATURDAY" +"8","1","1993","SUNDAY" +"8","2","1993","MONDAY" +"8","3","1993","TUESDAY" +"8","4","1993","WEDNESDAY" +"8","5","1993","THURSDAY" +"8","6","1993","FRIDAY" +"8","7","1993","SATURDAY" +"8","8","1993","SUNDAY" +"8","9","1993","MONDAY" +"8","10","1993","TUESDAY" +"8","11","1993","WEDNESDAY" +"8","12","1993","THURSDAY" +"8","13","1993","FRIDAY" +"8","14","1993","SATURDAY" +"8","15","1993","SUNDAY" +"8","16","1993","MONDAY" +"8","17","1993","TUESDAY" +"8","18","1993","WEDNESDAY" +"8","19","1993","THURSDAY" +"8","20","1993","FRIDAY" +"8","21","1993","SATURDAY" +"8","22","1993","SUNDAY" +"8","23","1993","MONDAY" +"8","24","1993","TUESDAY" +"8","25","1993","WEDNESDAY" +"8","26","1993","THURSDAY" +"8","27","1993","FRIDAY" +"8","28","1993","SATURDAY" +"8","29","1993","SUNDAY" +"8","30","1993","MONDAY" +"8","31","1993","TUESDAY" +"9","1","1993","WEDNESDAY" +"9","2","1993","THURSDAY" +"9","3","1993","FRIDAY" +"9","4","1993","SATURDAY" +"9","5","1993","SUNDAY" +"9","6","1993","MONDAY" +"9","7","1993","TUESDAY" +"9","8","1993","WEDNESDAY" +"9","9","1993","THURSDAY" +"9","10","1993","FRIDAY" +"9","11","1993","SATURDAY" +"9","12","1993","SUNDAY" +"9","13","1993","MONDAY" +"9","14","1993","TUESDAY" +"9","15","1993","WEDNESDAY" +"9","16","1993","THURSDAY" +"9","17","1993","FRIDAY" +"9","18","1993","SATURDAY" +"9","19","1993","SUNDAY" +"9","20","1993","MONDAY" +"9","21","1993","TUESDAY" +"9","22","1993","WEDNESDAY" +"9","23","1993","THURSDAY" +"9","24","1993","FRIDAY" +"9","25","1993","SATURDAY" +"9","26","1993","SUNDAY" +"9","27","1993","MONDAY" +"9","28","1993","TUESDAY" +"9","29","1993","WEDNESDAY" +"9","30","1993","THURSDAY" +"10","1","1993","FRIDAY" +"10","2","1993","SATURDAY" +"10","3","1993","SUNDAY" +"10","4","1993","MONDAY" +"10","5","1993","TUESDAY" +"10","6","1993","WEDNESDAY" +"10","7","1993","THURSDAY" +"10","8","1993","FRIDAY" +"10","9","1993","SATURDAY" +"10","10","1993","SUNDAY" +"10","11","1993","MONDAY" +"10","12","1993","TUESDAY" +"10","13","1993","WEDNESDAY" +"10","14","1993","THURSDAY" +"10","15","1993","FRIDAY" +"10","16","1993","SATURDAY" +"10","17","1993","SUNDAY" +"10","18","1993","MONDAY" +"10","19","1993","TUESDAY" +"10","20","1993","WEDNESDAY" +"10","21","1993","THURSDAY" +"10","22","1993","FRIDAY" +"10","23","1993","SATURDAY" +"10","24","1993","SUNDAY" +"10","25","1993","MONDAY" +"10","26","1993","TUESDAY" +"10","27","1993","WEDNESDAY" +"10","28","1993","THURSDAY" +"10","29","1993","FRIDAY" +"10","30","1993","SATURDAY" +"10","31","1993","SUNDAY" +"11","1","1993","MONDAY" +"11","2","1993","TUESDAY" +"11","3","1993","WEDNESDAY" +"11","4","1993","THURSDAY" +"11","5","1993","FRIDAY" +"11","6","1993","SATURDAY" +"11","7","1993","SUNDAY" +"11","8","1993","MONDAY" +"11","9","1993","TUESDAY" +"11","10","1993","WEDNESDAY" +"11","11","1993","THURSDAY" +"11","12","1993","FRIDAY" +"11","13","1993","SATURDAY" +"11","14","1993","SUNDAY" +"11","15","1993","MONDAY" +"11","16","1993","TUESDAY" +"11","17","1993","WEDNESDAY" +"11","18","1993","THURSDAY" +"11","19","1993","FRIDAY" +"11","20","1993","SATURDAY" +"11","21","1993","SUNDAY" +"11","22","1993","MONDAY" +"11","23","1993","TUESDAY" +"11","24","1993","WEDNESDAY" +"11","25","1993","THURSDAY" +"11","26","1993","FRIDAY" +"11","27","1993","SATURDAY" +"11","28","1993","SUNDAY" +"11","29","1993","MONDAY" +"11","30","1993","TUESDAY" +"12","1","1993","WEDNESDAY" +"12","2","1993","THURSDAY" +"12","3","1993","FRIDAY" +"12","4","1993","SATURDAY" +"12","5","1993","SUNDAY" +"12","6","1993","MONDAY" +"12","7","1993","TUESDAY" +"12","8","1993","WEDNESDAY" +"12","9","1993","THURSDAY" +"12","10","1993","FRIDAY" +"12","11","1993","SATURDAY" +"12","12","1993","SUNDAY" +"12","13","1993","MONDAY" +"12","14","1993","TUESDAY" +"12","15","1993","WEDNESDAY" +"12","16","1993","THURSDAY" +"12","17","1993","FRIDAY" +"12","18","1993","SATURDAY" +"12","19","1993","SUNDAY" +"12","20","1993","MONDAY" +"12","21","1993","TUESDAY" +"12","22","1993","WEDNESDAY" +"12","23","1993","THURSDAY" +"12","24","1993","FRIDAY" +"12","25","1993","SATURDAY" +"12","26","1993","SUNDAY" +"12","27","1993","MONDAY" +"12","28","1993","TUESDAY" +"12","29","1993","WEDNESDAY" +"12","30","1993","THURSDAY" +"12","31","1993","FRIDAY" +"1","1","1994","SATURDAY" +"1","2","1994","SUNDAY" +"1","3","1994","MONDAY" +"1","4","1994","TUESDAY" +"1","5","1994","WEDNESDAY" +"1","6","1994","THURSDAY" +"1","7","1994","FRIDAY" +"1","8","1994","SATURDAY" +"1","9","1994","SUNDAY" +"1","10","1994","MONDAY" +"1","11","1994","TUESDAY" +"1","12","1994","WEDNESDAY" +"1","13","1994","THURSDAY" +"1","14","1994","FRIDAY" +"1","15","1994","SATURDAY" +"1","16","1994","SUNDAY" +"1","17","1994","MONDAY" +"1","18","1994","TUESDAY" +"1","19","1994","WEDNESDAY" +"1","20","1994","THURSDAY" +"1","21","1994","FRIDAY" +"1","22","1994","SATURDAY" +"1","23","1994","SUNDAY" +"1","24","1994","MONDAY" +"1","25","1994","TUESDAY" +"1","26","1994","WEDNESDAY" +"1","27","1994","THURSDAY" +"1","28","1994","FRIDAY" +"1","29","1994","SATURDAY" +"1","30","1994","SUNDAY" +"1","31","1994","MONDAY" +"2","1","1994","TUESDAY" +"2","2","1994","WEDNESDAY" +"2","3","1994","THURSDAY" +"2","4","1994","FRIDAY" +"2","5","1994","SATURDAY" +"2","6","1994","SUNDAY" +"2","7","1994","MONDAY" +"2","8","1994","TUESDAY" +"2","9","1994","WEDNESDAY" +"2","10","1994","THURSDAY" +"2","11","1994","FRIDAY" +"2","12","1994","SATURDAY" +"2","13","1994","SUNDAY" +"2","14","1994","MONDAY" +"2","15","1994","TUESDAY" +"2","16","1994","WEDNESDAY" +"2","17","1994","THURSDAY" +"2","18","1994","FRIDAY" +"2","19","1994","SATURDAY" +"2","20","1994","SUNDAY" +"2","21","1994","MONDAY" +"2","22","1994","TUESDAY" +"2","23","1994","WEDNESDAY" +"2","24","1994","THURSDAY" +"2","25","1994","FRIDAY" +"2","26","1994","SATURDAY" +"2","27","1994","SUNDAY" +"2","28","1994","MONDAY" +"3","1","1994","TUESDAY" +"3","2","1994","WEDNESDAY" +"3","3","1994","THURSDAY" +"3","4","1994","FRIDAY" +"3","5","1994","SATURDAY" +"3","6","1994","SUNDAY" +"3","7","1994","MONDAY" +"3","8","1994","TUESDAY" +"3","9","1994","WEDNESDAY" +"3","10","1994","THURSDAY" +"3","11","1994","FRIDAY" +"3","12","1994","SATURDAY" +"3","13","1994","SUNDAY" +"3","14","1994","MONDAY" +"3","15","1994","TUESDAY" +"3","16","1994","WEDNESDAY" +"3","17","1994","THURSDAY" +"3","18","1994","FRIDAY" +"3","19","1994","SATURDAY" +"3","20","1994","SUNDAY" +"3","21","1994","MONDAY" +"3","22","1994","TUESDAY" +"3","23","1994","WEDNESDAY" +"3","24","1994","THURSDAY" +"3","25","1994","FRIDAY" +"3","26","1994","SATURDAY" +"3","27","1994","SUNDAY" +"3","28","1994","MONDAY" +"3","29","1994","TUESDAY" +"3","30","1994","WEDNESDAY" +"3","31","1994","THURSDAY" +"4","1","1994","FRIDAY" +"4","2","1994","SATURDAY" +"4","3","1994","SUNDAY" +"4","4","1994","MONDAY" +"4","5","1994","TUESDAY" +"4","6","1994","WEDNESDAY" +"4","7","1994","THURSDAY" +"4","8","1994","FRIDAY" +"4","9","1994","SATURDAY" +"4","10","1994","SUNDAY" +"4","11","1994","MONDAY" +"4","12","1994","TUESDAY" +"4","13","1994","WEDNESDAY" +"4","14","1994","THURSDAY" +"4","15","1994","FRIDAY" +"4","16","1994","SATURDAY" +"4","17","1994","SUNDAY" +"4","18","1994","MONDAY" +"4","19","1994","TUESDAY" +"4","20","1994","WEDNESDAY" +"4","21","1994","THURSDAY" +"4","22","1994","FRIDAY" +"4","23","1994","SATURDAY" +"4","24","1994","SUNDAY" +"4","25","1994","MONDAY" +"4","26","1994","TUESDAY" +"4","27","1994","WEDNESDAY" +"4","28","1994","THURSDAY" +"4","29","1994","FRIDAY" +"4","30","1994","SATURDAY" +"5","1","1994","SUNDAY" +"5","2","1994","MONDAY" +"5","3","1994","TUESDAY" +"5","4","1994","WEDNESDAY" +"5","5","1994","THURSDAY" +"5","6","1994","FRIDAY" +"5","7","1994","SATURDAY" +"5","8","1994","SUNDAY" +"5","9","1994","MONDAY" +"5","10","1994","TUESDAY" +"5","11","1994","WEDNESDAY" +"5","12","1994","THURSDAY" +"5","13","1994","FRIDAY" +"5","14","1994","SATURDAY" +"5","15","1994","SUNDAY" +"5","16","1994","MONDAY" +"5","17","1994","TUESDAY" +"5","18","1994","WEDNESDAY" +"5","19","1994","THURSDAY" +"5","20","1994","FRIDAY" +"5","21","1994","SATURDAY" +"5","22","1994","SUNDAY" +"5","23","1994","MONDAY" +"5","24","1994","TUESDAY" +"5","25","1994","WEDNESDAY" +"5","26","1994","THURSDAY" +"5","27","1994","FRIDAY" +"5","28","1994","SATURDAY" +"5","29","1994","SUNDAY" +"5","30","1994","MONDAY" +"5","31","1994","TUESDAY" +"6","1","1994","WEDNESDAY" +"6","2","1994","THURSDAY" +"6","3","1994","FRIDAY" +"6","4","1994","SATURDAY" +"6","5","1994","SUNDAY" +"6","6","1994","MONDAY" +"6","7","1994","TUESDAY" +"6","8","1994","WEDNESDAY" +"6","9","1994","THURSDAY" +"6","10","1994","FRIDAY" +"6","11","1994","SATURDAY" +"6","12","1994","SUNDAY" +"6","13","1994","MONDAY" +"6","14","1994","TUESDAY" +"6","15","1994","WEDNESDAY" +"6","16","1994","THURSDAY" +"6","17","1994","FRIDAY" +"6","18","1994","SATURDAY" +"6","19","1994","SUNDAY" +"6","20","1994","MONDAY" +"6","21","1994","TUESDAY" +"6","22","1994","WEDNESDAY" +"6","23","1994","THURSDAY" +"6","24","1994","FRIDAY" +"6","25","1994","SATURDAY" +"6","26","1994","SUNDAY" +"6","27","1994","MONDAY" +"6","28","1994","TUESDAY" +"6","29","1994","WEDNESDAY" +"6","30","1994","THURSDAY" +"7","1","1994","FRIDAY" +"7","2","1994","SATURDAY" +"7","3","1994","SUNDAY" +"7","4","1994","MONDAY" +"7","5","1994","TUESDAY" +"7","6","1994","WEDNESDAY" +"7","7","1994","THURSDAY" +"7","8","1994","FRIDAY" +"7","9","1994","SATURDAY" +"7","10","1994","SUNDAY" +"7","11","1994","MONDAY" +"7","12","1994","TUESDAY" +"7","13","1994","WEDNESDAY" +"7","14","1994","THURSDAY" +"7","15","1994","FRIDAY" +"7","16","1994","SATURDAY" +"7","17","1994","SUNDAY" +"7","18","1994","MONDAY" +"7","19","1994","TUESDAY" +"7","20","1994","WEDNESDAY" +"7","21","1994","THURSDAY" +"7","22","1994","FRIDAY" +"7","23","1994","SATURDAY" +"7","24","1994","SUNDAY" +"7","25","1994","MONDAY" +"7","26","1994","TUESDAY" +"7","27","1994","WEDNESDAY" +"7","28","1994","THURSDAY" +"7","29","1994","FRIDAY" +"7","30","1994","SATURDAY" +"7","31","1994","SUNDAY" +"8","1","1994","MONDAY" +"8","2","1994","TUESDAY" +"8","3","1994","WEDNESDAY" +"8","4","1994","THURSDAY" +"8","5","1994","FRIDAY" +"8","6","1994","SATURDAY" +"8","7","1994","SUNDAY" +"8","8","1994","MONDAY" +"8","9","1994","TUESDAY" +"8","10","1994","WEDNESDAY" +"8","11","1994","THURSDAY" +"8","12","1994","FRIDAY" +"8","13","1994","SATURDAY" +"8","14","1994","SUNDAY" +"8","15","1994","MONDAY" +"8","16","1994","TUESDAY" +"8","17","1994","WEDNESDAY" +"8","18","1994","THURSDAY" +"8","19","1994","FRIDAY" +"8","20","1994","SATURDAY" +"8","21","1994","SUNDAY" +"8","22","1994","MONDAY" +"8","23","1994","TUESDAY" +"8","24","1994","WEDNESDAY" +"8","25","1994","THURSDAY" +"8","26","1994","FRIDAY" +"8","27","1994","SATURDAY" +"8","28","1994","SUNDAY" +"8","29","1994","MONDAY" +"8","30","1994","TUESDAY" +"8","31","1994","WEDNESDAY" +"9","1","1994","THURSDAY" +"9","2","1994","FRIDAY" +"9","3","1994","SATURDAY" +"9","4","1994","SUNDAY" +"9","5","1994","MONDAY" +"9","6","1994","TUESDAY" +"9","7","1994","WEDNESDAY" +"9","8","1994","THURSDAY" +"9","9","1994","FRIDAY" +"9","10","1994","SATURDAY" +"9","11","1994","SUNDAY" +"9","12","1994","MONDAY" +"9","13","1994","TUESDAY" +"9","14","1994","WEDNESDAY" +"9","15","1994","THURSDAY" +"9","16","1994","FRIDAY" +"9","17","1994","SATURDAY" +"9","18","1994","SUNDAY" +"9","19","1994","MONDAY" +"9","20","1994","TUESDAY" +"9","21","1994","WEDNESDAY" +"9","22","1994","THURSDAY" +"9","23","1994","FRIDAY" +"9","24","1994","SATURDAY" +"9","25","1994","SUNDAY" +"9","26","1994","MONDAY" +"9","27","1994","TUESDAY" +"9","28","1994","WEDNESDAY" +"9","29","1994","THURSDAY" +"9","30","1994","FRIDAY" +"10","1","1994","SATURDAY" +"10","2","1994","SUNDAY" +"10","3","1994","MONDAY" +"10","4","1994","TUESDAY" +"10","5","1994","WEDNESDAY" +"10","6","1994","THURSDAY" +"10","7","1994","FRIDAY" +"10","8","1994","SATURDAY" +"10","9","1994","SUNDAY" +"10","10","1994","MONDAY" +"10","11","1994","TUESDAY" +"10","12","1994","WEDNESDAY" +"10","13","1994","THURSDAY" +"10","14","1994","FRIDAY" +"10","15","1994","SATURDAY" +"10","16","1994","SUNDAY" +"10","17","1994","MONDAY" +"10","18","1994","TUESDAY" +"10","19","1994","WEDNESDAY" +"10","20","1994","THURSDAY" +"10","21","1994","FRIDAY" +"10","22","1994","SATURDAY" +"10","23","1994","SUNDAY" +"10","24","1994","MONDAY" +"10","25","1994","TUESDAY" +"10","26","1994","WEDNESDAY" +"10","27","1994","THURSDAY" +"10","28","1994","FRIDAY" +"10","29","1994","SATURDAY" +"10","30","1994","SUNDAY" +"10","31","1994","MONDAY" +"11","1","1994","TUESDAY" +"11","2","1994","WEDNESDAY" +"11","3","1994","THURSDAY" +"11","4","1994","FRIDAY" +"11","5","1994","SATURDAY" +"11","6","1994","SUNDAY" +"11","7","1994","MONDAY" +"11","8","1994","TUESDAY" +"11","9","1994","WEDNESDAY" +"11","10","1994","THURSDAY" +"11","11","1994","FRIDAY" +"11","12","1994","SATURDAY" +"11","13","1994","SUNDAY" +"11","14","1994","MONDAY" +"11","15","1994","TUESDAY" +"11","16","1994","WEDNESDAY" +"11","17","1994","THURSDAY" +"11","18","1994","FRIDAY" +"11","19","1994","SATURDAY" +"11","20","1994","SUNDAY" +"11","21","1994","MONDAY" +"11","22","1994","TUESDAY" +"11","23","1994","WEDNESDAY" +"11","24","1994","THURSDAY" +"11","25","1994","FRIDAY" +"11","26","1994","SATURDAY" +"11","27","1994","SUNDAY" +"11","28","1994","MONDAY" +"11","29","1994","TUESDAY" +"11","30","1994","WEDNESDAY" +"12","1","1994","THURSDAY" +"12","2","1994","FRIDAY" +"12","3","1994","SATURDAY" +"12","4","1994","SUNDAY" +"12","5","1994","MONDAY" +"12","6","1994","TUESDAY" +"12","7","1994","WEDNESDAY" +"12","8","1994","THURSDAY" +"12","9","1994","FRIDAY" +"12","10","1994","SATURDAY" +"12","11","1994","SUNDAY" +"12","12","1994","MONDAY" +"12","13","1994","TUESDAY" +"12","14","1994","WEDNESDAY" +"12","15","1994","THURSDAY" +"12","16","1994","FRIDAY" +"12","17","1994","SATURDAY" +"12","18","1994","SUNDAY" +"12","19","1994","MONDAY" +"12","20","1994","TUESDAY" +"12","21","1994","WEDNESDAY" +"12","22","1994","THURSDAY" +"12","23","1994","FRIDAY" +"12","24","1994","SATURDAY" +"12","25","1994","SUNDAY" +"12","26","1994","MONDAY" +"12","27","1994","TUESDAY" +"12","28","1994","WEDNESDAY" +"12","29","1994","THURSDAY" +"12","30","1994","FRIDAY" +"12","31","1994","SATURDAY" diff --git a/database/sql-bench/Data/ATIS/day_name.txt b/database/sql-bench/Data/ATIS/day_name.txt new file mode 100644 index 0000000..eca77e3 --- /dev/null +++ b/database/sql-bench/Data/ATIS/day_name.txt @@ -0,0 +1,7 @@ +1,'MONDAY' +2,'TUESDAY' +3,'WEDNESDAY' +4,'THURSDAY' +5,'FRIDAY' +6,'SATURDAY' +7,'SUNDAY' diff --git a/database/sql-bench/Data/ATIS/dual_carrier.txt b/database/sql-bench/Data/ATIS/dual_carrier.txt new file mode 100644 index 0000000..ecfc2e6 --- /dev/null +++ b/database/sql-bench/Data/ATIS/dual_carrier.txt @@ -0,0 +1,114 @@ +'AA','AA',3000,5799,'AMERICAN EAGLE' +'AC','RJ',1001,1010,'AIR CANADA' +'AC','CS',1100,1199,'AIR CANADA' +'AC','GX',1200,1499,'AIR CANADA' +'AC','ZX',1500,1799,'AIR CANADA' +'AC','QK',1800,1899,'AIR CANADA' +'AC','3J',1900,1949,'AIR CANADA' +'AC','3J',1977,1981,'AIR CANADA' +'AC','3J',1990,1999,'AIR CANADA' +'AC','NV',1950,1976,'AIR CANADA' +'AC','NV',1982,1989,'AIR CANADA' +'AQ','WP',1000,1999,'ALOHA AIRLINES,INC' +'AS','QX',2000,2199,'ALASKA AIRLINES COMMUTER SERVICE' +'AS','QX',2260,2999,'ALASKA AIRLINES COMMUTER SERVICE' +'AS','BF',2200,2259,'ALASKA AIRLINES COMMUTER SERVICE' +'AS','BF',4000,4199,'ALASKA AIRLINES COMMUTER SERVICE' +'AS','JF',4400,4499,'ALASKA AIRLINES COMMUTER SERVICE' +'AS','KN',4500,4599,'ALASKA AIRLINES COMMUTER SERVICE' +'AS','8E',4600,4699,'ALASKA AIRLINES COMMUTER SERVICE' +'AS','7H',4800,4899,'ALASKA AIRLINES COMMUTER SERVICE' +'BA','BE',8001,8002,'BRITISH AIRWAYS' +'BA','BE',8004,8004,'BRITISH AIRWAYS' +'BA','UA',8022,8022,'BRITISH AIRWAYS' +'BA','UA',8154,8155,'BRITISH AIRWAYS' +'BA','UA',8159,8159,'BRITISH AIRWAYS' +'BA','UA',8235,8235,'BRITISH AIRWAYS' +'BA','UA',8243,8243,'BRITISH AIRWAYS' +'BA','UA',8246,8246,'BRITISH AIRWAYS' +'BA','UA',8064,8064,'BRITISH AIRWAYS' +'BA','UA',8269,8269,'BRITISH AIRWAYS' +'BA','UA',8300,8300,'BRITISH AIRWAYS' +'BF','2E',1100,1399,'MARKAIR,INC.' +'BF','2E',1800,1899,'MARKAIR,INC.' +'CO','CO',950,967,'CONTINENTAL AIRLINES/AIR MICRONESIA' +'CO','CO',970,997,'CONTINENTAL AIRLINES/AIR MICRONESIA' +'CO','CO',1880,1899,'CONTINENTAL AIRLINES/AIR MICRONESIA' +'CO','CO',3300,3399,'CONTINENTAL AIRLINES/AIR MICRONESIA' +'CO','SK',8900,8949,'CONTINENTAL AIRLINES/SAS SCANDINAVIAN AIRLINES SYSTEM' +'CO','SK',9000,9125,'CONTINENTAL AIRLINES/SAS SCANDINAVIAN AIRLINES SYSTEM' +'CO','SK',9370,9435,'CONTINENTAL AIRLINES/SAS SCANDINAVIAN AIRLINES SYSTEM' +'CO','JC',2000,2499,'CONTINENTAL EXPRESS' +'CO','RU',2500,2799,'CONTINENTAL EXPRESS' +'CO','RU',3000,3025,'CONTINENTAL EXPRESS' +'CO','RU',4400,4999,'CONTINENTAL EXPRESS' +'CO','CO',2800,2999,'CONTINENTAL EXPRESS/RESORT EXPRESS' +'CO','CO',3026,3099,'CONTINENTAL EXPRESS/HOME JAMES' +'CO','CO',3100,3199,'CONTINENTAL EXPRESS/COLORADO MOUNTAIN EXPRESS' +'CO','6J',3200,3299,'CONTINENTAL EXPRESS/SOUTHERN JERSEY AIRWAYS,INC.' +'CO','QO',3400,3999,'CONTINENTAL EXPRESS/BAR HARBOR AIRLINES' +'CP','SK',68,69,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS' +'CP','LH',144,145,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS' +'CP','WD',950,951,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS' +'CP','WD',954,955,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS' +'CP','WD',957,958,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS' +'CP','WD',960,961,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS' +'CP','WD',963,964,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS' +'CP','WD',967,968,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS' +'CP','WD',983,983,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS' +'CP','WD',986,986,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS' +'CP','WD',988,988,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS' +'CP','WD',991,992,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS' +'CP','WD',994,995,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS' +'CP','PJ',1001,1010,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS' +'CP','KI',1100,1272,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS' +'CP','KI',1274,1274,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS' +'CP','KI',1276,1276,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS' +'CP','KI',1278,1283,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS' +'CP','KI',1285,1288,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS' +'CP','MO',1300,1359,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS' +'CP','9A',1400,1499,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS' +'CP','CP',1800,1999,'CANADIAN AIRLINES INTERNATIONAL LTD./ONTARIO EXPRESS LTD.' +'DL','EV',2000,2999,'DELTA CONNECTION' +'DL','OH',3000,3699,'DELTA CONNECTION' +'DL','HQ',4300,4999,'DELTA CONNECTION' +'DL','OO',5200,5999,'DELTA CONNECTION' +'EA','LI',2300,2399,'EASTERN EXPRESS' +'EA','HY',2900,3299,'EASTERN EXPRESS' +'EA','QO',3700,3999,'EASTERN EXPRESS' +'KL','UK',2843,2843,'KLM-ROYAL DUTCH AIRLINES' +'KL','UK',2845,2845,'KLM-ROYAL DUTCH AIRLINES' +'KL','UK',2847,2847,'KLM-ROYAL DUTCH AIRLINES' +'ML','JT',1500,1550,'THE MIDWAY CONNECTION/IOWA AIRWAYS' +'ML','ML',1600,1999,'THE MIDWAY CONNECTION/MIDWAY COMMUTER/FISCHER BROS. AVIATION' +'ND','QR',240,259,'INTAIR' +'ND','ND',940,959,'INTAIR/ALEXANDAIR,INC.' +'NW','QX',2000,2399,'NORTHWEST AIRLINES' +'NW','US',4000,4999,'NORTHWEST AIRLINES' +'NW','9E',2500,2999,'NORTHWEST AIRLINK' +'NW','XJ',3000,3399,'NORTHWEST AIRLINK' +'NW','RP',3500,3799,'NORTHWEST AIRLINK' +'NW','GQ',3800,3999,'NORTHWEST AIRLINK' +'PA','RZ',270,271,'PAN AM EXPRESS,INC.' +'PA','RZ',4500,4999,'PAN AM EXPRESS,INC.' +'PA','MA',4072,4073,'PAN AMERICAN WORLD AIRWAYS,INC./MALEV-HUNGARIAN AIRLINES' +'PA','JP',4076,4077,'PAN AMERICAN WORLD AIRWAYS,INC./ADRIA AIRWAYS' +'QF','AA',301,302,'QANTAS AIRWAYS LTD.' +'QK','QK',803,804,'AIR NOVA INC./NEWFOUNDLAND LABRADOR AIR TRANSPORT,LTD.' +'QY','QY',600,615,'AERO VIRGIN ISLANDS CORP./TAINO AIRWAYS' +'TW','US',8150,8155,'TRANS WORLD AIRLINES,INC.' +'TW','US',8156,8199,'TRANS WORLD AIRLINES,INC.' +'TW','9N',7000,7199,'TRANS WORLD EXPRESS,' +'TW','ZV',7300,7499,'TRANS WORLD EXPRESS,' +'TW','JI',7550,7569,'TRANS WORLD EXPRESS,' +'TW','8P',7570,7699,'TRANS WORLD EXPRESS,' +'TW','SS',7750,7949,'TRANS WORLD EXPRESS,' +'UA','XV',2100,2349,'UNITED EXPRESS' +'UA','NO',2375,2624,'UNITED EXPRESS' +'UA','ZW',2640,3099,'UNITED EXPRESS' +'UA','OE',3100,3569,'UNITED EXPRESS' +'UA','AP',3640,3999,'UNITED EXPRESS' +'US','US',3000,4999,'USAIR EXPRESS' +'YX','YX',1000,1999,'MIDWEST EXPRESS CONNECTION/SKYWAY AIRLINES INC.' +'2F','2F',526,529,'FRONTIER FLYING SERVICE/TATONDUK AIR SERVICE' +'','',0,0,'' diff --git a/database/sql-bench/Data/ATIS/fare.txt b/database/sql-bench/Data/ATIS/fare.txt new file mode 100644 index 0000000..5585a29 --- /dev/null +++ b/database/sql-bench/Data/ATIS/fare.txt @@ -0,0 +1,534 @@ +'7100001','ATL','BOS','F','','',497.00,994.00 +'7100002','ATL','BOS','FN','','',348.00,696.00 +'7100003','ATL','BOS','Y','','',331.00,662.00 +'7100004','ATL','BOS','YN','','',266.00,532.00 +'7100005','ATL','BOS','K','','AP/57',0.00,388.00 +'7100006','ATL','BOS','KO','','AP/57',0.00,368.00 +'7100007','ATL','BOS','QW','','AP/57',0.00,268.00 +'7100008','ATL','BOS','QX','','AP/57',0.00,248.00 +'7100009','ATL','BOS','B','','VU/1',230.00,0.00 +'7100010','ATL','BOS','Y','','VU/1',226.00,0.00 +'7100011','ATL','BWI','F','','',428.00,856.00 +'7100012','ATL','BWI','FN','','',299.00,598.00 +'7100013','ATL','BWI','Y','','',286.00,572.00 +'7100014','ATL','BWI','YN','','',230.00,460.00 +'7100015','ATL','BWI','QW','','AP/57',0.00,248.00 +'7100016','ATL','BWI','QX','','AP/57',0.00,208.00 +'7100017','ATL','BWI','B','','VU/1',199.00,0.00 +'7100018','ATL','BWI','Y','','VU/1',196.00,0.00 +'7100019','ATL','DEN','F','UA','',685.00,1370.00 +'7100020','ATL','DEN','F','','',677.00,1354.00 +'7100021','ATL','DEN','FN','','',475.00,950.00 +'7100022','ATL','DEN','Y','UA','',457.00,914.00 +'7100023','ATL','DEN','Y','','',452.00,904.00 +'7100024','ATL','DEN','B','DL','',435.00,870.00 +'7100025','ATL','DEN','H','EA','',410.00,820.00 +'7100026','ATL','DEN','M','DL','',410.00,820.00 +'7100027','ATL','DEN','YN','','',361.00,722.00 +'7100028','ATL','DEN','MW','','AP/57',0.00,438.00 +'7100029','ATL','DEN','MX','','AP/57',0.00,378.00 +'7100030','ATL','DEN','QW','','AP/57',0.00,298.00 +'7100031','ATL','DEN','QX','','AP/57',0.00,238.00 +'7100032','ATL','DEN','B','','VU/1',314.00,0.00 +'7100033','ATL','DEN','Y','','VU/1',314.00,0.00 +'7100034','ATL','DEN','B','','AP/55',304.00,0.00 +'7100035','ATL','DEN','H','','AP/55',228.00,0.00 +'7100036','ATL','DFW','F','AA','',512.00,1024.00 +'7100037','ATL','DFW','F','DL','',504.00,1008.00 +'7100038','ATL','DFW','F','','',503.00,1006.00 +'7100039','ATL','DFW','FN','AA','',360.00,720.00 +'7100040','ATL','DFW','FN','','',352.00,704.00 +'7100041','ATL','DFW','Y','','',341.00,682.00 +'7100042','ATL','DFW','Y','DL','',336.00,672.00 +'7100043','ATL','DFW','YN','AA','',277.00,554.00 +'7100044','ATL','DFW','YN','','',272.00,544.00 +'7100045','ATL','DFW','QW','','AP/80',0.00,268.00 +'7100046','ATL','DFW','QX','','AP/80',0.00,228.00 +'7100047','ATL','DFW','B','','VU/1',233.00,0.00 +'7100048','ATL','DFW','Y','AA','VU/1',233.00,0.00 +'7100049','ATL','DFW','M','','VU/1',233.00,0.00 +'7100050','ATL','DFW','Y','','VU/1',222.00,0.00 +'7100051','ATL','OAK','F','UA','',843.00,1686.00 +'7100052','ATL','OAK','Y','UA','',557.00,1114.00 +'7100053','ATL','OAK','QW','','AP/80',0.00,398.00 +'7100054','ATL','OAK','QX','','AP/80',0.00,348.00 +'7100055','ATL','OAK','B','','AP/68',503.00,0.00 +'7100056','ATL','OAK','B','','VU/1',387.00,0.00 +'7100057','ATL','OAK','Y','','VU/1',376.00,0.00 +'7100058','ATL','PHL','F','US','',465.00,930.00 +'7100059','ATL','PHL','F','','',449.00,898.00 +'7100060','ATL','PHL','FN','','',314.00,628.00 +'7100061','ATL','PHL','Y','','',295.00,590.00 +'7100062','ATL','PHL','Y','US','',290.00,580.00 +'7100063','ATL','PHL','YN','','',243.00,486.00 +'7100064','ATL','PHL','KW','','AP/57',0.00,268.00 +'7100065','ATL','PHL','QW','','AP/80',0.00,268.00 +'7100066','ATL','PHL','QW','','AP/57',0.00,268.00 +'7100067','ATL','PHL','KX','','AP/57',0.00,228.00 +'7100068','ATL','PHL','QX','','AP/57',0.00,228.00 +'7100069','ATL','PHL','QX','','AP/80',0.00,228.00 +'7100070','ATL','PHL','B','','VU/1',205.00,0.00 +'7100071','ATL','PHL','Y','','VU/1',205.00,0.00 +'7100072','ATL','PIT','F','','',416.00,832.00 +'7100073','ATL','PIT','FN','','',291.00,582.00 +'7100074','ATL','PIT','Y','','',274.00,548.00 +'7100075','ATL','PIT','YN','','',217.00,434.00 +'7100076','ATL','PIT','KW','','AP/57',0.00,268.00 +'7100077','ATL','PIT','QW','','AP/57',0.00,248.00 +'7100078','ATL','PIT','KX','','AP/57',0.00,228.00 +'7100079','ATL','PIT','QX','','AP/57',0.00,208.00 +'7100080','ATL','PIT','B','','VU/1',190.00,0.00 +'7100081','ATL','PIT','Y','','VU/1',190.00,0.00 +'7100082','ATL','SFO','F','','',828.00,1656.00 +'7100083','ATL','SFO','Y','','',552.00,1104.00 +'7100084','ATL','SFO','QW','','AP/57',0.00,398.00 +'7100085','ATL','SFO','QX','','AP/57',0.00,358.00 +'7100086','ATL','SFO','K','','AP/68',435.00,0.00 +'7100087','ATL','SFO','Q','','AP/68',435.00,0.00 +'7100088','ATL','SFO','B','','VU/1',383.00,0.00 +'7100089','ATL','SFO','Y','','VU/1',376.00,0.00 +'7100090','BOS','ATL','F','','',497.00,994.00 +'7100091','BOS','ATL','FN','','',348.00,696.00 +'7100092','BOS','ATL','Y','','',331.00,662.00 +'7100093','BOS','ATL','YN','','',266.00,532.00 +'7100094','BOS','ATL','K','','AP/57',0.00,388.00 +'7100095','BOS','ATL','KO','','AP/57',0.00,368.00 +'7100096','BOS','ATL','QW','','AP/57',0.00,268.00 +'7100097','BOS','ATL','QX','','AP/57',0.00,248.00 +'7100098','BOS','ATL','B','','VU/1',230.00,0.00 +'7100099','BOS','ATL','Y','','VU/1',226.00,0.00 +'7100100','BOS','BWI','F','','',368.00,736.00 +'7100101','BOS','BWI','Y','','',161.00,322.00 +'7100102','BOS','BWI','Y','','VU/1',109.00,0.00 +'7100103','BOS','DEN','F','','',713.00,1426.00 +'7100104','BOS','DEN','Y','','',475.00,950.00 +'7100105','BOS','DEN','QW','','AP/80',0.00,378.00 +'7100106','BOS','DEN','QX','','AP/80',0.00,338.00 +'7100107','BOS','DEN','B','','VU/1',379.00,0.00 +'7100108','BOS','DEN','Y','','VU/1',326.00,0.00 +'7100109','BOS','DFW','F','AA','',773.00,1546.00 +'7100110','BOS','DFW','F','DL','',765.00,1530.00 +'7100111','BOS','DFW','Y','AA','',515.00,1030.00 +'7100112','BOS','DFW','Y','DL','',510.00,1020.00 +'7100113','BOS','DFW','B','','VU/1',354.00,0.00 +'7100114','BOS','DFW','Y','','VU/1',354.00,0.00 +'7100115','BOS','PHL','F','','',210.00,420.00 +'7100116','BOS','PHL','Y','DL','',147.00,294.00 +'7100117','BOS','PHL','B','DL','',140.00,280.00 +'7100118','BOS','PHL','K','','',140.00,280.00 +'7100119','BOS','PHL','Y','DL','',140.00,280.00 +'7100120','BOS','PHL','Y','','',140.00,280.00 +'7100121','BOS','PHL','B','','AP/75',0.00,270.00 +'7100122','BOS','PHL','B','DL','',129.00,258.00 +'7100123','BOS','PHL','B','US','',109.00,218.00 +'7100124','BOS','PHL','M','ML','',109.00,218.00 +'7100125','BOS','PHL','Q','','AP/27',0.00,188.00 +'7100126','BOS','PHL','B','','AP/44',129.00,0.00 +'7100127','BOS','PHL','B','','VU/1',102.00,0.00 +'7100128','BOS','PHL','Y','','VU/1',97.00,0.00 +'7100129','BOS','PIT','F','','',330.00,660.00 +'7100130','BOS','PIT','Y','','',240.00,480.00 +'7100131','BOS','PIT','Y','','VU/1',153.00,0.00 +'7100132','BOS','SFO','F','','',860.00,1720.00 +'7100133','BOS','SFO','F','AA','',852.00,1704.00 +'7100134','BOS','SFO','C','','',635.00,1270.00 +'7100135','BOS','SFO','Y','TW','',605.00,1210.00 +'7100136','BOS','SFO','Y','UA','',605.00,1210.00 +'7100137','BOS','SFO','Y','','',573.00,1146.00 +'7100138','BOS','SFO','B','AA','',508.00,1016.00 +'7100139','BOS','SFO','KW','','AP/57',0.00,418.00 +'7100140','BOS','SFO','QW','','AP/80',0.00,418.00 +'7100141','BOS','SFO','KX','','AP/57',0.00,378.00 +'7100142','BOS','SFO','QX','','AP/80',0.00,378.00 +'7100143','BOS','SFO','B','','VU/1',412.00,0.00 +'7100144','BOS','SFO','M','','VU/1',394.00,0.00 +'7100145','BOS','SFO','Y','','VU/1',394.00,0.00 +'7100146','BWI','ATL','F','','',428.00,856.00 +'7100147','BWI','ATL','FN','','',299.00,598.00 +'7100148','BWI','ATL','Y','','',286.00,572.00 +'7100149','BWI','ATL','YN','','',230.00,460.00 +'7100150','BWI','ATL','QW','','AP/57',0.00,248.00 +'7100151','BWI','ATL','QX','','AP/57',0.00,208.00 +'7100152','BWI','ATL','B','','VU/1',199.00,0.00 +'7100153','BWI','ATL','Y','','VU/1',196.00,0.00 +'7100154','BWI','BOS','F','','',368.00,736.00 +'7100155','BWI','BOS','Y','','',161.00,322.00 +'7100156','BWI','BOS','Y','','VU/1',109.00,0.00 +'7100157','BWI','DEN','F','US','',653.00,1306.00 +'7100158','BWI','DEN','F','','',645.00,1290.00 +'7100159','BWI','DEN','Y','UA','',424.00,848.00 +'7100160','BWI','DEN','Y','','',420.00,840.00 +'7100161','BWI','DEN','Q','US','',238.00,476.00 +'7100162','BWI','DEN','QW','','AP/80',0.00,306.00 +'7100163','BWI','DEN','QX','','AP/80',0.00,256.00 +'7100164','BWI','DEN','Y','','VU/1',280.00,0.00 +'7100165','BWI','DFW','F','AA','',630.00,1260.00 +'7100166','BWI','DFW','F','','',622.00,1244.00 +'7100167','BWI','DFW','Y','AA','',420.00,840.00 +'7100168','BWI','DFW','Y','','',415.00,830.00 +'7100169','BWI','DFW','B','','VU/1',288.00,0.00 +'7100170','BWI','DFW','Y','','VU/1',288.00,0.00 +'7100171','BWI','PHL','Y','','',165.00,330.00 +'7100172','BWI','PHL','M','','',106.00,212.00 +'7100173','BWI','PHL','Y','','VU/1',115.00,0.00 +'7100174','BWI','PIT','F','','',172.00,344.00 +'7100175','BWI','PIT','Y','','',119.00,238.00 +'7100176','BWI','PIT','Y','','VU/1',80.00,0.00 +'7100177','DEN','ATL','F','UA','',685.00,1370.00 +'7100178','DEN','ATL','F','','',677.00,1354.00 +'7100179','DEN','ATL','FN','','',475.00,950.00 +'7100180','DEN','ATL','Y','UA','',457.00,914.00 +'7100181','DEN','ATL','Y','','',452.00,904.00 +'7100182','DEN','ATL','B','DL','',435.00,870.00 +'7100183','DEN','ATL','H','','',410.00,820.00 +'7100184','DEN','ATL','M','DL','',410.00,820.00 +'7100185','DEN','ATL','YN','','',361.00,722.00 +'7100186','DEN','ATL','MW','','AP/57',0.00,438.00 +'7100187','DEN','ATL','MX','','AP/57',0.00,378.00 +'7100188','DEN','ATL','QW','','AP/57',0.00,298.00 +'7100189','DEN','ATL','QX','','AP/57',0.00,238.00 +'7100190','DEN','ATL','B','','VU/1',314.00,0.00 +'7100191','DEN','ATL','Y','','VU/1',314.00,0.00 +'7100192','DEN','ATL','B','','AP/55',304.00,0.00 +'7100193','DEN','BOS','F','','',713.00,1426.00 +'7100194','DEN','BOS','F','US','',705.00,1410.00 +'7100195','DEN','BOS','Y','','',475.00,950.00 +'7100196','DEN','BOS','Y','US','',470.00,940.00 +'7100197','DEN','BOS','B','US','',382.00,764.00 +'7100198','DEN','BOS','M','DL','',295.00,590.00 +'7100199','DEN','BOS','Q','US','',295.00,590.00 +'7100200','DEN','BOS','Q','DL','',238.00,476.00 +'7100201','DEN','BOS','KW','','AP/57',0.00,378.00 +'7100202','DEN','BOS','QW','','AP/80',0.00,378.00 +'7100203','DEN','BOS','KX','','AP/57',0.00,338.00 +'7100204','DEN','BOS','QX','','AP/80',0.00,338.00 +'7100205','DEN','BOS','B','','VU/1',379.00,0.00 +'7100206','DEN','BOS','Y','','VU/1',326.00,0.00 +'7100207','DEN','BWI','F','US','',653.00,1306.00 +'7100208','DEN','BWI','F','UA','',645.00,1290.00 +'7100209','DEN','BWI','Y','','',424.00,848.00 +'7100210','DEN','BWI','Y','US','',420.00,840.00 +'7100211','DEN','BWI','Q','US','',238.00,476.00 +'7100212','DEN','BWI','QW','','AP/80',0.00,306.00 +'7100213','DEN','BWI','QX','','AP/80',0.00,256.00 +'7100214','DEN','BWI','M','','VU/1',296.00,0.00 +'7100215','DEN','BWI','Y','','VU/1',280.00,0.00 +'7100216','DEN','DFW','F','','',489.00,978.00 +'7100217','DEN','DFW','F','DL','',481.00,962.00 +'7100218','DEN','DFW','FN','AA','',344.00,688.00 +'7100219','DEN','DFW','FN','','',336.00,672.00 +'7100220','DEN','DFW','Y','','',305.00,610.00 +'7100221','DEN','DFW','Y','DL','',300.00,600.00 +'7100222','DEN','DFW','YN','AA','',261.00,522.00 +'7100223','DEN','DFW','YN','','',256.00,512.00 +'7100224','DEN','DFW','QW','','AP/80',0.00,268.00 +'7100225','DEN','DFW','QX','','AP/80',0.00,228.00 +'7100226','DEN','DFW','B','','VU/1',208.00,0.00 +'7100227','DEN','DFW','Y','','VU/1',208.00,0.00 +'7100228','DEN','OAK','F','','',488.00,976.00 +'7100229','DEN','OAK','Y','','',325.00,650.00 +'7100230','DEN','OAK','QW','','AP/80',0.00,288.00 +'7100231','DEN','OAK','QX','','AP/80',0.00,248.00 +'7100232','DEN','OAK','Y','','VU/1',222.00,0.00 +'7100233','DEN','PHL','F','','',706.00,1412.00 +'7100234','DEN','PHL','Y','','',470.00,940.00 +'7100235','DEN','PHL','FN','','',441.00,882.00 +'7100236','DEN','PHL','YN','','',336.00,672.00 +'7100237','DEN','PHL','KW','','AP/57',0.00,488.00 +'7100238','DEN','PHL','KX','','AP/57',0.00,418.00 +'7100239','DEN','PHL','QW','','AP/80',0.00,348.00 +'7100240','DEN','PHL','QX','','AP/80',0.00,278.00 +'7100241','DEN','PHL','Y','','VU/1',323.00,0.00 +'7100242','DEN','PHL','B','','VU/1',297.00,0.00 +'7100243','DEN','PIT','F','','',647.00,1294.00 +'7100244','DEN','PIT','Y','','',412.00,824.00 +'7100245','DEN','PIT','Q','','',287.00,574.00 +'7100246','DEN','PIT','Y','','VU/1',285.00,0.00 +'7100247','DEN','SFO','F','','',488.00,976.00 +'7100248','DEN','SFO','Y','','',325.00,650.00 +'7100249','DEN','SFO','YN','','',325.00,650.00 +'7100250','DEN','SFO','QW','','AP/80',0.00,288.00 +'7100251','DEN','SFO','QX','','AP/80',0.00,248.00 +'7100252','DEN','SFO','B','','VU/1',222.00,0.00 +'7100253','DEN','SFO','Y','','VU/1',222.00,0.00 +'7100254','DFW','ATL','F','AA','',512.00,1024.00 +'7100255','DFW','ATL','F','DL','',504.00,1008.00 +'7100256','DFW','ATL','F','','',488.00,976.00 +'7100257','DFW','ATL','FN','AA','',360.00,720.00 +'7100258','DFW','ATL','FN','','',352.00,704.00 +'7100259','DFW','ATL','Y','AA','',341.00,682.00 +'7100260','DFW','ATL','Y','DL','',336.00,672.00 +'7100261','DFW','ATL','YN','AA','',277.00,554.00 +'7100262','DFW','ATL','YN','','',272.00,544.00 +'7100263','DFW','ATL','QW','','AP/80',0.00,268.00 +'7100264','DFW','ATL','QX','','AP/80',0.00,228.00 +'7100265','DFW','ATL','B','','VU/1',233.00,0.00 +'7100266','DFW','ATL','Y','AA','VU/1',233.00,0.00 +'7100267','DFW','ATL','Y','','VU/1',222.00,0.00 +'7100268','DFW','BOS','F','AA','',773.00,1546.00 +'7100269','DFW','BOS','F','','',765.00,1530.00 +'7100270','DFW','BOS','Y','AA','',515.00,1030.00 +'7100271','DFW','BOS','Y','DL','',510.00,1020.00 +'7100272','DFW','BOS','B','','VU/1',354.00,0.00 +'7100273','DFW','BOS','Y','AA','VU/1',354.00,0.00 +'7100274','DFW','BOS','Y','','VU/1',341.00,0.00 +'7100275','DFW','BWI','F','AA','',630.00,1260.00 +'7100276','DFW','BWI','F','','',622.00,1244.00 +'7100277','DFW','BWI','Y','AA','',420.00,840.00 +'7100278','DFW','BWI','Y','','',415.00,830.00 +'7100279','DFW','BWI','B','','VU/1',288.00,0.00 +'7100280','DFW','BWI','Y','','VU/1',288.00,0.00 +'7100281','DFW','DEN','F','','',489.00,978.00 +'7100282','DFW','DEN','F','DL','',481.00,962.00 +'7100283','DFW','DEN','FN','AA','',344.00,688.00 +'7100284','DFW','DEN','FN','','',336.00,672.00 +'7100285','DFW','DEN','Y','','',305.00,610.00 +'7100286','DFW','DEN','Y','DL','',300.00,600.00 +'7100287','DFW','DEN','YN','AA','',261.00,522.00 +'7100288','DFW','DEN','YN','','',256.00,512.00 +'7100289','DFW','DEN','QW','','AP/80',0.00,268.00 +'7100290','DFW','DEN','QX','','AP/80',0.00,228.00 +'7100291','DFW','DEN','B','','VU/1',208.00,0.00 +'7100292','DFW','DEN','Y','','VU/1',208.00,0.00 +'7100293','DFW','OAK','F','AA','',717.00,1434.00 +'7100294','DFW','OAK','F','','',646.00,1292.00 +'7100295','DFW','OAK','FN','','',504.00,1008.00 +'7100296','DFW','OAK','Y','AA','',478.00,956.00 +'7100297','DFW','OAK','Y','','',467.00,934.00 +'7100298','DFW','OAK','YN','','',386.00,772.00 +'7100299','DFW','OAK','QW','','AP/80',0.00,378.00 +'7100300','DFW','OAK','QX','','AP/80',0.00,338.00 +'7100301','DFW','OAK','Y','','VU/1',328.00,0.00 +'7100302','DFW','PHL','F','AA','',745.00,1490.00 +'7100303','DFW','PHL','F','','',737.00,1474.00 +'7100304','DFW','PHL','FN','','',516.00,1032.00 +'7100305','DFW','PHL','Y','AA','',496.00,992.00 +'7100306','DFW','PHL','Y','DL','',491.00,982.00 +'7100307','DFW','PHL','YN','','',396.00,792.00 +'7100308','DFW','PHL','B','','VU/1',341.00,0.00 +'7100309','DFW','PHL','Y','','VU/1',341.00,0.00 +'7100310','DFW','PIT','F','','',611.00,1222.00 +'7100311','DFW','PIT','Y','AA','',420.00,840.00 +'7100312','DFW','PIT','Y','AA','',380.00,760.00 +'7100313','DFW','PIT','Y','','',375.00,750.00 +'7100314','DFW','PIT','B','','VU/1',279.00,0.00 +'7100315','DFW','PIT','Y','','VU/1',260.00,0.00 +'7100316','DFW','SFO','F','','',717.00,1434.00 +'7100317','DFW','SFO','F','DL','',709.00,1418.00 +'7100318','DFW','SFO','FN','AA','',504.00,1008.00 +'7100319','DFW','SFO','FN','','',496.00,992.00 +'7100320','DFW','SFO','Y','','',478.00,956.00 +'7100321','DFW','SFO','Y','DL','',473.00,946.00 +'7100322','DFW','SFO','YN','AA','',386.00,772.00 +'7100323','DFW','SFO','YN','','',381.00,762.00 +'7100324','DFW','SFO','QW','','AP/80',0.00,378.00 +'7100325','DFW','SFO','QX','','AP/80',0.00,338.00 +'7100326','DFW','SFO','B','','VU/1',328.00,0.00 +'7100327','DFW','SFO','Y','','VU/1',328.00,0.00 +'7100328','OAK','BOS','F','','',836.00,1672.00 +'7100329','OAK','BOS','Y','','',557.00,1114.00 +'7100330','OAK','BOS','QW','','AP/80',0.00,418.00 +'7100331','OAK','BOS','QX','','AP/80',0.00,378.00 +'7100332','OAK','BOS','Y','','VU/1',394.00,0.00 +'7100333','OAK','DEN','F','','',488.00,976.00 +'7100334','OAK','DEN','Y','','',325.00,650.00 +'7100335','OAK','DEN','QW','','AP/80',0.00,288.00 +'7100336','OAK','DEN','QX','','AP/80',0.00,248.00 +'7100337','OAK','DEN','Y','','VU/1',222.00,0.00 +'7100338','OAK','DFW','F','','',717.00,1434.00 +'7100339','OAK','DFW','FN','','',504.00,1008.00 +'7100340','OAK','DFW','Y','','',478.00,956.00 +'7100341','OAK','DFW','YN','','',386.00,772.00 +'7100342','OAK','DFW','Y','','VU/1',328.00,0.00 +'7100343','OAK','PHL','F','AA','',877.00,1754.00 +'7100344','OAK','PHL','Y','AA','',584.00,1168.00 +'7100345','OAK','PHL','B','AA','',488.00,976.00 +'7100346','OAK','PHL','Y','','VU/1',402.00,0.00 +'7100347','OAK','SFO','Y','','',110.00,220.00 +'7100348','OAK','SFO','YN','','',54.00,108.00 +'7100349','OAK','SFO','Y','AA','VU/1',61.00,0.00 +'7100350','PHL','ATL','F','US','',465.00,930.00 +'7100351','PHL','ATL','F','','',449.00,898.00 +'7100352','PHL','ATL','FN','','',314.00,628.00 +'7100353','PHL','ATL','Y','DL','',295.00,590.00 +'7100354','PHL','ATL','Y','EA','',295.00,590.00 +'7100355','PHL','ATL','Y','','',290.00,580.00 +'7100356','PHL','ATL','YN','','',243.00,486.00 +'7100357','PHL','ATL','KW','','AP/57',0.00,268.00 +'7100358','PHL','ATL','QW','','AP/57',0.00,268.00 +'7100359','PHL','ATL','KX','','AP/57',0.00,228.00 +'7100360','PHL','ATL','QX','','AP/57',0.00,228.00 +'7100361','PHL','ATL','B','','VU/1',205.00,0.00 +'7100362','PHL','ATL','Y','','VU/1',205.00,0.00 +'7100363','PHL','BOS','F','','',210.00,420.00 +'7100364','PHL','BOS','FN','','',147.00,294.00 +'7100365','PHL','BOS','Y','DL','',147.00,294.00 +'7100366','PHL','BOS','B','DL','',140.00,280.00 +'7100367','PHL','BOS','K','','',140.00,280.00 +'7100368','PHL','BOS','Y','DL','',140.00,280.00 +'7100369','PHL','BOS','Y','','',140.00,280.00 +'7100370','PHL','BOS','B','','AP/75',0.00,270.00 +'7100371','PHL','BOS','B','DL','',129.00,258.00 +'7100372','PHL','BOS','YN','','',119.00,238.00 +'7100373','PHL','BOS','B','US','',109.00,218.00 +'7100374','PHL','BOS','M','ML','',109.00,218.00 +'7100375','PHL','BOS','Q','','AP/27',0.00,188.00 +'7100376','PHL','BOS','B','','AP/44',129.00,0.00 +'7100377','PHL','BOS','B','','VU/1',102.00,0.00 +'7100378','PHL','BOS','Y','','VU/1',97.00,0.00 +'7100379','PHL','BWI','Y','','',165.00,330.00 +'7100380','PHL','BWI','M','','',106.00,212.00 +'7100381','PHL','BWI','Y','','VU/1',115.00,0.00 +'7100382','PHL','DEN','F','','',706.00,1412.00 +'7100383','PHL','DEN','F','DL','',630.00,1260.00 +'7100384','PHL','DEN','Y','','',470.00,940.00 +'7100385','PHL','DEN','Y','DL','',420.00,840.00 +'7100386','PHL','DEN','KW','','AP/57',0.00,488.00 +'7100387','PHL','DEN','KX','','AP/57',0.00,418.00 +'7100388','PHL','DEN','QW','','AP/80',0.00,348.00 +'7100389','PHL','DEN','QX','','AP/80',0.00,278.00 +'7100390','PHL','DEN','Y','','VU/1',323.00,0.00 +'7100391','PHL','DEN','B','','VU/1',297.00,0.00 +'7100392','PHL','DFW','F','AA','',745.00,1490.00 +'7100393','PHL','DFW','F','','',737.00,1474.00 +'7100394','PHL','DFW','Y','AA','',496.00,992.00 +'7100395','PHL','DFW','Y','DL','',491.00,982.00 +'7100396','PHL','DFW','B','','VU/1',341.00,0.00 +'7100397','PHL','DFW','Y','AA','VU/1',341.00,0.00 +'7100398','PHL','DFW','M','','AP/68',284.00,0.00 +'7100399','PHL','DFW','Y','','VU/1',283.00,0.00 +'7100400','PHL','OAK','F','AA','',877.00,1754.00 +'7100401','PHL','OAK','Y','AA','',584.00,1168.00 +'7100402','PHL','OAK','B','AA','',488.00,976.00 +'7100403','PHL','OAK','Y','','VU/1',402.00,0.00 +'7100404','PHL','PIT','F','','',189.00,378.00 +'7100405','PHL','PIT','Y','','',131.00,262.00 +'7100406','PHL','PIT','Y','','VU/1',88.00,0.00 +'7100407','PHL','SFO','F','US','',995.00,1990.00 +'7100408','PHL','SFO','F','','',887.00,1774.00 +'7100409','PHL','SFO','Y','','',591.00,1182.00 +'7100410','PHL','SFO','Y','US','',586.00,1172.00 +'7100411','PHL','SFO','B','US','',483.00,966.00 +'7100412','PHL','SFO','QW','','AP/80',0.00,418.00 +'7100413','PHL','SFO','QX','','AP/80',0.00,378.00 +'7100414','PHL','SFO','B','','AP/55',488.00,0.00 +'7100415','PHL','SFO','B','','VU/1',407.00,0.00 +'7100416','PHL','SFO','M','','VU/1',407.00,0.00 +'7100417','PHL','SFO','Y','','VU/1',407.00,0.00 +'7100418','PHL','SFO','Y','US','VU/1',388.00,0.00 +'7100419','PIT','ATL','F','','',416.00,832.00 +'7100420','PIT','ATL','FN','','',291.00,582.00 +'7100421','PIT','ATL','Y','','',274.00,548.00 +'7100422','PIT','ATL','YN','','',217.00,434.00 +'7100423','PIT','ATL','KW','','AP/57',0.00,268.00 +'7100424','PIT','ATL','QW','','AP/57',0.00,248.00 +'7100425','PIT','ATL','KX','','AP/57',0.00,228.00 +'7100426','PIT','ATL','QX','','AP/57',0.00,208.00 +'7100427','PIT','ATL','B','','VU/1',190.00,0.00 +'7100428','PIT','ATL','Y','','VU/1',190.00,0.00 +'7100429','PIT','BOS','F','','',330.00,660.00 +'7100430','PIT','BOS','Y','','',240.00,480.00 +'7100431','PIT','BOS','Y','','VU/1',153.00,0.00 +'7100432','PIT','BWI','F','','',172.00,344.00 +'7100433','PIT','BWI','Y','','',119.00,238.00 +'7100434','PIT','BWI','Y','','VU/1',80.00,0.00 +'7100435','PIT','DEN','F','US','',647.00,1294.00 +'7100436','PIT','DEN','F','','',607.00,1214.00 +'7100437','PIT','DEN','Y','AA','',422.00,844.00 +'7100438','PIT','DEN','Y','','',412.00,824.00 +'7100439','PIT','DEN','Q','','',287.00,574.00 +'7100440','PIT','DEN','M','','',282.00,564.00 +'7100441','PIT','DEN','Y','AA','VU/1',299.00,0.00 +'7100442','PIT','DEN','Y','','VU/1',285.00,0.00 +'7100443','PIT','DFW','F','','',611.00,1222.00 +'7100444','PIT','DFW','Y','AA','',420.00,840.00 +'7100445','PIT','DFW','Y','AA','',380.00,760.00 +'7100446','PIT','DFW','Y','','',375.00,750.00 +'7100447','PIT','DFW','BW','','AP/57',0.00,428.00 +'7100448','PIT','DFW','BX','','AP/57',0.00,378.00 +'7100449','PIT','DFW','B','','VU/1',279.00,0.00 +'7100450','PIT','DFW','M','','VU/1',260.00,0.00 +'7100451','PIT','DFW','Y','','VU/1',260.00,0.00 +'7100452','PIT','PHL','F','','',189.00,378.00 +'7100453','PIT','PHL','Y','','',131.00,262.00 +'7100454','PIT','PHL','Y','','VU/1',88.00,0.00 +'7100455','PIT','SFO','F','US','',819.00,1638.00 +'7100456','PIT','SFO','Y','','',546.00,1092.00 +'7100457','PIT','SFO','QW','','AP/80',0.00,398.00 +'7100458','PIT','SFO','QX','','AP/80',0.00,358.00 +'7100459','PIT','SFO','Y','','VU/1',379.00,0.00 +'7100460','SFO','ATL','F','','',828.00,1656.00 +'7100461','SFO','ATL','F','AA','',821.00,1642.00 +'7100462','SFO','ATL','FN','','',580.00,1160.00 +'7100463','SFO','ATL','Y','','',552.00,1104.00 +'7100464','SFO','ATL','Y','AA','',547.00,1094.00 +'7100465','SFO','ATL','B','AA','',475.00,950.00 +'7100466','SFO','ATL','YN','EA','',445.00,890.00 +'7100467','SFO','ATL','YN','DL','',442.00,884.00 +'7100468','SFO','ATL','M','AA','',430.00,860.00 +'7100469','SFO','ATL','QW','','AP/57',0.00,398.00 +'7100470','SFO','ATL','QX','','AP/57',0.00,358.00 +'7100471','SFO','ATL','K','','AP/68',435.00,0.00 +'7100472','SFO','ATL','Q','','AP/68',435.00,0.00 +'7100473','SFO','ATL','B','','VU/1',383.00,0.00 +'7100474','SFO','ATL','Y','AA','VU/1',383.00,0.00 +'7100475','SFO','ATL','Y','','VU/1',376.00,0.00 +'7100476','SFO','BOS','F','US','',995.00,1990.00 +'7100477','SFO','BOS','F','DL','',890.00,1780.00 +'7100478','SFO','BOS','F','','',860.00,1720.00 +'7100479','SFO','BOS','C','','',635.00,1270.00 +'7100480','SFO','BOS','Y','TW','',605.00,1210.00 +'7100481','SFO','BOS','Y','UA','',605.00,1210.00 +'7100482','SFO','BOS','Y','DL','',593.00,1186.00 +'7100483','SFO','BOS','Y','','',573.00,1146.00 +'7100484','SFO','BOS','Y','US','',568.00,1136.00 +'7100485','SFO','BOS','B','AA','',508.00,1016.00 +'7100486','SFO','BOS','B','DL','',503.00,1006.00 +'7100487','SFO','BOS','B','US','',503.00,1006.00 +'7100488','SFO','BOS','KW','','AP/57',0.00,418.00 +'7100489','SFO','BOS','QW','','AP/80',0.00,418.00 +'7100490','SFO','BOS','KX','','AP/57',0.00,378.00 +'7100491','SFO','BOS','QX','','AP/80',0.00,378.00 +'7100492','SFO','BOS','B','','VU/1',412.00,0.00 +'7100493','SFO','BOS','M','','VU/1',394.00,0.00 +'7100494','SFO','BOS','Y','','VU/1',394.00,0.00 +'7100495','SFO','BWI','F','','',781.00,1562.00 +'7100496','SFO','BWI','Y','','',516.00,1032.00 +'7100497','SFO','BWI','B','','',449.00,898.00 +'7100498','SFO','BWI','Q','','',405.00,810.00 +'7100499','SFO','BWI','Y','','VU/1',358.00,0.00 +'7100500','SFO','DEN','F','','',488.00,976.00 +'7100501','SFO','DEN','Y','','',325.00,650.00 +'7100502','SFO','DEN','QW','','AP/80',0.00,288.00 +'7100503','SFO','DEN','QX','','AP/80',0.00,248.00 +'7100504','SFO','DEN','Y','','VU/1',222.00,0.00 +'7100505','SFO','DFW','F','','',717.00,1434.00 +'7100506','SFO','DFW','F','DL','',709.00,1418.00 +'7100507','SFO','DFW','FN','AA','',504.00,1008.00 +'7100508','SFO','DFW','FN','','',496.00,992.00 +'7100509','SFO','DFW','Y','','',478.00,956.00 +'7100510','SFO','DFW','Y','DL','',473.00,946.00 +'7100511','SFO','DFW','YN','AA','',386.00,772.00 +'7100512','SFO','DFW','YN','','',381.00,762.00 +'7100513','SFO','DFW','QW','','AP/80',0.00,378.00 +'7100514','SFO','DFW','QX','','AP/80',0.00,338.00 +'7100515','SFO','DFW','B','','VU/1',328.00,0.00 +'7100516','SFO','DFW','Y','','VU/1',328.00,0.00 +'7100517','SFO','OAK','Y','','',110.00,220.00 +'7100518','SFO','OAK','YN','','',54.00,108.00 +'7100519','SFO','OAK','Y','AA','VU/1',61.00,0.00 +'7100520','SFO','PHL','F','US','',995.00,1990.00 +'7100521','SFO','PHL','F','','',887.00,1774.00 +'7100522','SFO','PHL','Y','','',591.00,1182.00 +'7100523','SFO','PHL','Y','US','',586.00,1172.00 +'7100524','SFO','PHL','B','US','',483.00,966.00 +'7100525','SFO','PHL','QW','','AP/80',0.00,418.00 +'7100526','SFO','PHL','QX','','AP/80',0.00,378.00 +'7100527','SFO','PHL','B','','AP/55',488.00,0.00 +'7100528','SFO','PHL','B','','VU/1',407.00,0.00 +'7100529','SFO','PHL','M','','VU/1',407.00,0.00 +'7100530','SFO','PHL','Y','','VU/1',407.00,0.00 +'7100531','SFO','PHL','Y','US','VU/1',388.00,0.00 +'7100532','SFO','PIT','F','US','',819.00,1638.00 +'7100533','SFO','PIT','Y','','',546.00,1092.00 +'7100534','SFO','PIT','Y','','VU/1',379.00,0.00 diff --git a/database/sql-bench/Data/ATIS/fconnection.txt b/database/sql-bench/Data/ATIS/fconnection.txt new file mode 100644 index 0000000..39d0bd7 --- /dev/null +++ b/database/sql-bench/Data/ATIS/fconnection.txt @@ -0,0 +1,164 @@ +312733,'ATL','BOS',740,1127,'1234567',0,1,227 +312734,'ATL','BOS',1200,1548,'1234567',0,1,228 +312737,'ATL','BOS',1650,2053,'1234567',0,1,243 +333051,'ATL','DEN',630,910,'1234567',0,1,280 +333054,'ATL','DEN',1000,1245,'1234567',0,1,285 +333059,'ATL','DEN',1319,1554,'1234567',0,1,275 +333067,'ATL','DEN',2029,2320,'1234567',0,1,291 +393490,'ATL','OAK',1000,1339,'1234567',0,1,399 +420730,'ATL','SFO',630,955,'1234567',0,1,385 +420735,'ATL','SFO',1000,1325,'1234567',0,1,385 +420736,'ATL','SFO',1000,1336,'1234567',0,1,396 +420739,'ATL','SFO',1319,1650,'1234567',0,1,391 +420745,'ATL','SFO',1650,2050,'1234567',0,1,420 +420747,'ATL','SFO',1825,2214,'1234567',0,1,409 +420751,'ATL','SFO',2029,2350,'1234567',0,1,381 +305276,'BOS','ATL',705,1110,'1234567',0,1,245 +305277,'BOS','ATL',1125,1615,'1234567',0,1,290 +305280,'BOS','ATL',1645,2101,'1234567',0,1,256 +333153,'BOS','DEN',1000,1410,'1234567',0,1,370 +333158,'BOS','DEN',1156,1615,'1234567',0,1,379 +333168,'BOS','DEN',1850,2320,'1234567',0,1,390 +393546,'BOS','OAK',838,1339,'123456-',0,1,481 +393547,'BOS','OAK',840,1339,'------7',0,1,479 +393553,'BOS','OAK',1720,2205,'1234567',0,1,465 +420887,'BOS','SFO',805,1325,'1234567',0,1,500 +420888,'BOS','SFO',838,1336,'123456-',0,1,478 +420893,'BOS','SFO',1132,1650,'1234567',0,1,498 +420894,'BOS','SFO',1210,1652,'1234567',0,1,462 +420903,'BOS','SFO',1520,2115,'1234567',0,1,535 +420911,'BOS','SFO',1720,2214,'1234567',0,1,474 +420912,'BOS','SFO',1845,2350,'1234567',0,1,485 +333086,'BWI','DEN',550,955,'1234567',0,1,365 +333091,'BWI','DEN',845,1245,'1234567',0,1,360 +333099,'BWI','DEN',1230,1615,'1234567',0,1,345 +333110,'BWI','DEN',1945,2320,'1234567',0,1,335 +329933,'BWI','DFW',550,930,'1234567',0,1,280 +329937,'BWI','DFW',900,1250,'1234567',0,1,290 +329941,'BWI','DFW',1230,1620,'1234567',0,1,290 +329944,'BWI','DFW',1600,1955,'1234567',0,1,295 +329947,'BWI','DFW',1945,2321,'1234567',0,1,276 +393507,'BWI','OAK',915,1339,'1234567',0,1,444 +420782,'BWI','SFO',800,1217,'123456-',0,1,437 +420783,'BWI','SFO',845,1325,'1234567',0,1,460 +420785,'BWI','SFO',915,1336,'1234567',0,1,441 +420791,'BWI','SFO',1230,1730,'1234567',0,1,480 +420792,'BWI','SFO',1240,1652,'1234567',0,1,432 +420798,'BWI','SFO',1620,2022,'1234567',0,1,422 +305416,'DEN','ATL',620,1244,'1234567',0,1,264 +305424,'DEN','ATL',950,1606,'1234567',0,1,256 +305429,'DEN','ATL',1325,1943,'1234567',0,1,258 +305435,'DEN','ATL',1700,100,'1234567',0,1,360 +305436,'DEN','ATL',1955,230,'1234567',0,1,275 +313024,'DEN','BOS',55,855,'1234567',0,1,360 +313025,'DEN','BOS',620,1435,'1234567',0,1,375 +313030,'DEN','BOS',800,1550,'1234567',0,1,350 +313034,'DEN','BOS',950,1755,'1234567',0,1,365 +313037,'DEN','BOS',1055,1920,'1234567',0,1,385 +313041,'DEN','BOS',1325,2125,'1234567',0,1,360 +313048,'DEN','BOS',1815,153,'1234567',0,1,338 +308320,'DEN','BWI',620,1400,'1234567',0,1,340 +308330,'DEN','BWI',1055,1850,'1234567',0,1,355 +308334,'DEN','BWI',1325,2045,'1234567',0,1,320 +402376,'DEN','PHL',620,1350,'1234567',0,1,330 +402382,'DEN','PHL',800,1515,'1234567',0,1,315 +402388,'DEN','PHL',1055,1840,'1234567',0,1,345 +402391,'DEN','PHL',1455,2146,'12345-7',0,1,291 +402397,'DEN','PHL',1700,15,'1234567',0,1,315 +402398,'DEN','PHL',1815,130,'1234567',0,1,315 +405235,'DEN','PIT',55,803,'1234567',0,1,308 +405236,'DEN','PIT',55,1000,'1234567',0,1,425 +405241,'DEN','PIT',800,1510,'1234567',0,1,310 +405250,'DEN','PIT',1055,1845,'1234567',0,1,350 +405253,'DEN','PIT',1455,2202,'1234567',0,1,307 +405258,'DEN','PIT',1815,59,'1234567',0,1,284 +313006,'DFW','BOS',2010,153,'1234567',0,1,283 +308292,'DFW','BWI',625,1145,'1234567',0,1,260 +308296,'DFW','BWI',945,1510,'1234567',0,1,265 +308301,'DFW','BWI',1305,1850,'1234567',0,1,285 +308304,'DFW','BWI',1650,2230,'1234567',0,1,280 +393637,'DFW','OAK',700,1014,'123456-',0,1,314 +393641,'DFW','OAK',1547,1852,'1234567',0,1,305 +393643,'DFW','OAK',1850,2205,'12345-7',0,1,315 +402327,'DFW','PHL',625,1200,'1234567',0,1,275 +402332,'DFW','PHL',945,1515,'1234567',0,1,270 +402339,'DFW','PHL',1305,1840,'1234567',0,1,275 +402343,'DFW','PHL',1501,2045,'1234567',0,1,284 +402346,'DFW','PHL',1650,2220,'1234567',0,1,270 +402350,'DFW','PHL',2010,130,'1234567',0,1,260 +405211,'DFW','PIT',945,1510,'1234567',0,1,265 +405214,'DFW','PIT',1305,1845,'1234567',0,1,280 +405217,'DFW','PIT',1650,2205,'1234567',0,1,255 +405219,'DFW','PIT',2010,59,'1234567',0,1,229 +421176,'DFW','SFO',700,1006,'123456-',0,1,306 +421177,'DFW','SFO',1032,1336,'1234567',0,1,304 +421179,'DFW','SFO',1547,1912,'1234567',0,1,325 +421180,'DFW','SFO',1850,2214,'12345-7',0,1,324 +421181,'DFW','SFO',1940,2310,'1234567',0,1,330 +306026,'OAK','ATL',625,1537,'1234567',0,1,372 +306031,'OAK','ATL',1425,2330,'1234567',0,1,365 +313867,'OAK','BOS',625,1619,'1234567',0,1,414 +308924,'OAK','BWI',1425,2332,'1234567',0,1,367 +330865,'OAK','DFW',625,1312,'1234567',0,1,287 +330867,'OAK','DFW',1105,1753,'1234567',0,1,288 +330870,'OAK','DFW',1425,2122,'12345-7',0,1,297 +403125,'OAK','PHL',625,1553,'1234567',0,1,388 +403128,'OAK','PHL',1105,2041,'1234567',0,1,396 +334183,'PHL','DEN',540,955,'1234567',0,1,375 +334190,'PHL','DEN',840,1410,'123456-',0,1,450 +334198,'PHL','DEN',1600,2015,'1234567',0,1,375 +334202,'PHL','DEN',1935,2320,'1234567',0,1,345 +330947,'PHL','DFW',540,930,'1234567',0,1,290 +330956,'PHL','DFW',900,1250,'1234567',0,1,290 +330962,'PHL','DFW',1230,1620,'1234567',0,1,290 +330964,'PHL','DFW',1405,1805,'1234567',0,1,300 +330967,'PHL','DFW',1600,1955,'1234567',0,1,295 +330971,'PHL','DFW',1750,2140,'1234567',0,1,290 +330974,'PHL','DFW',1935,2321,'1234567',0,1,286 +393950,'PHL','OAK',905,1339,'1234567',0,1,454 +393953,'PHL','OAK',1753,2205,'1234567',0,1,432 +422233,'PHL','SFO',540,1110,'1234567',0,1,510 +422240,'PHL','SFO',830,1325,'1234567',0,1,475 +422241,'PHL','SFO',905,1336,'1234567',0,1,451 +422249,'PHL','SFO',1230,1730,'1234567',0,1,480 +422262,'PHL','SFO',1753,2214,'1234567',0,1,441 +422263,'PHL','SFO',1915,2350,'1234567',0,1,455 +334210,'PIT','DEN',600,955,'1234567',0,1,355 +334218,'PIT','DEN',1030,1410,'1234567',0,1,340 +334222,'PIT','DEN',1245,1615,'1234567',0,1,330 +334230,'PIT','DEN',1945,2320,'1234567',0,1,335 +330977,'PIT','DFW',600,930,'1234567',0,1,270 +330981,'PIT','DFW',910,1250,'1234567',0,1,280 +330984,'PIT','DFW',1245,1620,'1234567',0,1,275 +330989,'PIT','DFW',1945,2321,'1234567',0,1,276 +422277,'PIT','SFO',910,1410,'1234567',0,1,480 +422281,'PIT','SFO',1245,1730,'1234567',0,1,465 +306304,'SFO','ATL',20,917,'1234567',0,1,357 +306307,'SFO','ATL',620,1537,'1234567',0,1,377 +306309,'SFO','ATL',700,1606,'1234567',0,1,366 +306314,'SFO','ATL',1059,1943,'1234567',0,1,344 +306317,'SFO','ATL',1425,2258,'1234567',0,1,333 +306318,'SFO','ATL',1431,2330,'1234567',0,1,359 +306319,'SFO','ATL',1750,230,'1234567',0,1,340 +314256,'SFO','BOS',620,1619,'1234567',0,1,419 +314259,'SFO','BOS',700,1755,'1234567',0,1,475 +314263,'SFO','BOS',815,1920,'1234567',0,1,485 +314268,'SFO','BOS',1059,2125,'1234567',0,1,446 +314269,'SFO','BOS',1108,2056,'1234567',0,1,408 +309189,'SFO','BWI',815,1850,'1234567',0,1,455 +309198,'SFO','BWI',1059,2045,'1234567',0,1,406 +309204,'SFO','BWI',1431,2332,'1234567',0,1,361 +331132,'SFO','DFW',620,1312,'1234567',0,1,292 +331133,'SFO','DFW',1108,1753,'1234567',0,1,285 +331134,'SFO','DFW',1431,2122,'12345-7',0,1,291 +403468,'SFO','PHL',620,1553,'1234567',0,1,393 +403472,'SFO','PHL',700,1705,'1234567',0,1,425 +403474,'SFO','PHL',815,1840,'1234567',0,1,445 +403479,'SFO','PHL',1108,2041,'1234567',0,1,393 +403481,'SFO','PHL',1215,2220,'1234567',0,1,425 +403485,'SFO','PHL',1425,15,'1234567',0,1,410 +403486,'SFO','PHL',1530,130,'1234567',0,1,420 +403488,'SFO','PHL',2220,825,'1234567',0,1,425 +405963,'SFO','PIT',815,1845,'1234567',0,1,450 +405970,'SFO','PIT',1530,59,'1234567',0,1,389 +405971,'SFO','PIT',2220,1000,'1234567',0,1,520 diff --git a/database/sql-bench/Data/ATIS/flight.txt b/database/sql-bench/Data/ATIS/flight.txt new file mode 100644 index 0000000..9f68008 --- /dev/null +++ b/database/sql-bench/Data/ATIS/flight.txt @@ -0,0 +1,579 @@ +101908,'1234567','ATL','BOS',636,1000,'DL',296,'FNYNBNMQ','72S','B',1,'N',204 +101909,'1234567','ATL','BOS',641,855,'DL',314,'FNYNBNMQ','72S','B',0,'N',134 +101910,'1234567','ATL','BOS',755,1019,'EA',140,'FYHQK','D9S','B',0,'N',144 +101911,'1234567','ATL','BOS',920,1150,'EA',534,'FYHQK','D9S','B',0,'N',150 +101912,'1234567','ATL','BOS',959,1215,'DL',410,'FYBMQ','757','B',0,'N',136 +101913,'1234567','ATL','BOS',1010,1355,'DL',726,'FYBMQ','72S','S',1,'N',225 +101914,'1234567','ATL','BOS',1057,1320,'EA',640,'YHQKL','72S','L',0,'N',143 +101915,'1234567','ATL','BOS',1229,1456,'EA',142,'FYHQK','D9S','L',0,'N',147 +101916,'-----6-','ATL','BOS',1325,1550,'DL',110,'FYBMQ','767','L',0,'N',145 +101917,'12345-7','ATL','BOS',1325,1550,'DL',110,'FYBMQ','763','L',0,'N',145 +101918,'1234567','ATL','BOS',1426,1656,'EA',644,'FYHQK','D9S','S',0,'N',150 +101922,'1234567','ATL','BOS',1655,1920,'DL',134,'FYBMQ','L10','D',0,'N',145 +101923,'1234567','ATL','BOS',1800,2032,'EA',144,'FYHQK','757','D',0,'N',152 +101924,'1234567','ATL','BOS',1851,2219,'DL',106,'FYBMQ','M80','D',1,'N',208 +101925,'1234567','ATL','BOS',1855,2122,'DL',326,'FYBMQ','72S','D',0,'N',147 +101926,'1234567','ATL','BOS',1950,2220,'EA',148,'FYHQK','D9S','S',0,'N',150 +101927,'------7','ATL','BOS',2035,2255,'DL',166,'FYBMQ','L10','S/',0,'N',140 +101928,'123456-','ATL','BOS',2035,2255,'DL',116,'FYBMQ','L10','S/',0,'N',140 +101929,'1234567','ATL','BOS',2345,153,'DL',162,'FNYNBNMQ','757','',0,'N',128 +101951,'1234567','ATL','BWI',915,1055,'EA',202,'FYHQK','D9S','S',0,'N',100 +101952,'1234567','ATL','BWI',1002,1145,'DL',1204,'FYBMQ','M80','',0,'N',103 +101953,'1234567','ATL','BWI',1330,1510,'DL',662,'FYBMQ','M80','L',0,'N',100 +101954,'1234567','ATL','BWI',1423,1610,'EA',206,'FYHQK','D9S','',0,'N',107 +101955,'1234567','ATL','BWI',1704,1850,'DL',294,'FYBMQ','757','D',0,'N',106 +101956,'1234567','ATL','BWI',1800,1937,'EA',210,'FYHQK','D9S','D',0,'N',97 +101957,'1234567','ATL','BWI',1955,2140,'EA',212,'FYHQK','D9S','S',0,'N',105 +101958,'1234567','ATL','BWI',2048,2230,'DL',256,'FYBMQ','757','',0,'N',102 +101959,'1234567','ATL','BWI',2140,2318,'EA',208,'FNYNHQNK','72S','',0,'N',98 +102122,'1234567','ATL','DEN',840,955,'DL',445,'FYBMQ','757','B',0,'N',195 +102123,'1234567','ATL','DEN',934,1054,'EA',821,'FYHQK','72S','B',0,'N',200 +102125,'1234567','ATL','DEN',1000,1124,'UA',915,'FYBMQ','73S','S',0,'N',204 +102126,'1234567','ATL','DEN',1200,1305,'DL',257,'FYBMQ','72S','L',0,'N',185 +102127,'1234567','ATL','DEN',1510,1615,'DL',1083,'FYBMQ','72S','S',0,'N',185 +102128,'1234567','ATL','DEN',1755,1910,'EA',825,'FYHQK','72S','D',0,'N',195 +102129,'1234567','ATL','DEN',1825,1946,'UA',673,'FYBMQ','733','D',0,'N',201 +102133,'1234567','ATL','DEN',1900,2015,'DL',675,'FYBMQ','72S','D',0,'N',195 +102134,'1234567','ATL','DEN',2145,2308,'EA',823,'FNYNHQNK','757','S',0,'N',203 +102135,'1234567','ATL','DEN',2219,2320,'DL',229,'FNYNBNMQ','72S','',0,'N',181 +102136,'--34567','ATL','DFW',630,740,'DL',131,'FNYNBNMQ','L10','B',0,'N',130 +102137,'12-----','ATL','DFW',630,740,'DL',131,'FNYNBNMQ','763','B',0,'N',130 +102139,'1234567','ATL','DFW',730,849,'AA',1339,'FYBMV','M80','B',0,'N',139 +102144,'1234567','ATL','DFW',823,930,'DL',671,'FYBMQ','72S','B',0,'N',127 +102147,'1234567','ATL','DFW',901,1027,'AA',447,'FYBMV','M80','S',0,'N',146 +102148,'1234567','ATL','DFW',1000,1110,'DL',17,'FYBMQ','L15','S',0,'N',130 +102150,'1234567','ATL','DFW',1145,1250,'DL',545,'FYBMQ','72S','L',0,'N',125 +102162,'--34567','ATL','DFW',1319,1430,'DL',179,'FYBMQ','763','L',0,'N',131 +102163,'12-----','ATL','DFW',1319,1430,'DL',179,'FYBMQ','L10','L',0,'N',131 +102164,'1234567','ATL','DFW',1347,1505,'AA',237,'FYBMV','M80','S',0,'N',138 +102165,'-2-----','ATL','DFW',1415,1525,'LH',442,'FCBMK','74M','D',0,'N',130 +102166,'1234567','ATL','DFW',1510,1620,'DL',1145,'FYBMQ','757','S',0,'N',130 +102172,'1234567','ATL','DFW',1634,1759,'AA',351,'FYBMV','M80','S',0,'N',145 +102173,'1234567','ATL','DFW',1650,1805,'DL',82,'FYBMQ','L10','D',0,'N',135 +102177,'1234567','ATL','DFW',1840,1955,'DL',405,'FYBMQ','M80','D',0,'N',135 +102188,'1234567','ATL','DFW',1925,2050,'AA',1419,'FNYNBMV','M80','D',0,'N',145 +102190,'1234567','ATL','DFW',2029,2140,'DL',275,'FNYNBNMQ','763','',0,'N',131 +102191,'1234567','ATL','DFW',2213,2321,'DL',574,'FNYNBNMQ','M80','',0,'N',128 +102192,'12345-7','ATL','DFW',2335,40,'DL',1107,'FNYNBNMQ','D9S','',0,'N',125 +102674,'1234567','ATL','OAK',1825,2205,'UA',673,'FYBMQ','733','D',1,'N',400 +102766,'1234567','ATL','PHL',636,825,'DL',296,'FNYNBNMQ','72S','B',0,'N',109 +102767,'1234567','ATL','PHL',740,929,'US',258,'FYBHQ','D9S','B',0,'N',109 +102768,'1234567','ATL','PHL',805,956,'EA',124,'FYHQK','D9S','B',0,'N',111 +102769,'1234567','ATL','PHL',935,1125,'EA',126,'FYHQK','D9S','S',0,'N',110 +102770,'1234567','ATL','PHL',1010,1200,'DL',726,'FYBMQ','72S','',0,'N',110 +102771,'1234567','ATL','PHL',1200,1345,'US',29,'FYBHQ','733','L',0,'N',105 +102772,'1234567','ATL','PHL',1215,1415,'EA',610,'FYHQK','D9S','L',0,'N',120 +102773,'1234567','ATL','PHL',1322,1515,'DL',424,'FYBMQ','72S','L',0,'N',113 +102774,'1234567','ATL','PHL',1417,1607,'EA',324,'FYHQK','D9S','',0,'N',110 +102775,'1234567','ATL','PHL',1605,1800,'EA',602,'FYHQK','D9S','S',0,'N',115 +102776,'1234567','ATL','PHL',1649,1840,'DL',1206,'FYBMQ','767','D',0,'N',111 +102777,'1234567','ATL','PHL',1650,1835,'US',1786,'FYBHQ','73S','D',0,'N',105 +102778,'1234567','ATL','PHL',1802,1959,'EA',120,'FYHQK','D9S','D',0,'N',117 +102779,'1234567','ATL','PHL',1851,2045,'DL',106,'FYBMQ','M80','D',0,'N',114 +102781,'1234567','ATL','PHL',1957,2151,'EA',604,'FYHQK','D9S','S',0,'N',114 +102782,'1234567','ATL','PHL',2035,2220,'DL',250,'FYBMQ','72S','',0,'N',105 +102783,'1234567','ATL','PHL',2140,2335,'EA',128,'FNYNHQNK','D9S','',0,'N',115 +102784,'1234567','ATL','PHL',2350,130,'DL',1210,'FNYNBNMQ','757','',0,'N',100 +102795,'1234567','ATL','PIT',630,803,'US',339,'FYBHQ','D9S','B',0,'N',93 +102796,'1234567','ATL','PIT',831,1000,'DL',842,'FYBMQ','D9S','B',0,'N',89 +102797,'1234567','ATL','PIT',925,1100,'EA',302,'FYHQK','D9S','S',0,'N',95 +102798,'1234567','ATL','PIT',1105,1238,'US',248,'FYBHQ','D9S','L',0,'N',93 +102799,'1234567','ATL','PIT',1225,1405,'EA',308,'FYHQK','757','L',0,'N',100 +102800,'1234567','ATL','PIT',1340,1510,'DL',628,'FYBMQ','73S','',0,'N',90 +102801,'1234567','ATL','PIT',1540,1713,'US',508,'FYBHQ','D9S','L/S',0,'N',93 +102802,'-----67','ATL','PIT',1711,1845,'DL',1132,'FYBMQ','73S','D',0,'N',94 +102803,'12345--','ATL','PIT',1711,1845,'DL',1132,'FYBMQ','72S','D',0,'N',94 +102804,'1234567','ATL','PIT',1759,1933,'EA',310,'YHQKL','72S','D',0,'N',94 +102805,'1234567','ATL','PIT',1920,2056,'US',480,'FYBHQ','D9S','D',0,'N',96 +102806,'1234567','ATL','PIT',1959,2139,'EA',312,'FYHQK','757','S/',0,'N',100 +102807,'1234567','ATL','PIT',2030,2205,'DL',1076,'FYBMQ','73S','',0,'N',95 +102808,'1234567','ATL','PIT',2145,2313,'EA',314,'FNYNHQNK','D9S','',0,'N',88 +102809,'1234567','ATL','PIT',2334,59,'DL',311,'FNYNBNMQ','D9S','',0,'N',85 +102923,'------7','ATL','SFO',912,1110,'DL',137,'FYBMQ','767','B',0,'N',298 +102924,'123456-','ATL','SFO',912,1110,'DL',137,'FYBMQ','L10','B',0,'N',298 +102925,'1234567','ATL','SFO',930,1157,'EA',71,'FYHQK','757','B',0,'N',327 +102927,'1234567','ATL','SFO',1200,1410,'DL',977,'FYBMQ','757','L',0,'N',310 +102929,'1234567','ATL','SFO',1525,1730,'DL',97,'FYBMQ','763','D',0,'N',305 +102930,'1234567','ATL','SFO',1625,1844,'EA',73,'FYHQK','757','D',0,'N',319 +102932,'1234567','ATL','SFO',1855,2115,'DL',99,'FYBMQ','767','D',0,'N',320 +102933,'1234567','ATL','SFO',2010,2229,'EA',77,'FYHQK','757','D',0,'N',319 +105584,'1234567','BOS','ATL',630,913,'DL',225,'FYBMQ','M80','B',0,'N',163 +105586,'1234567','BOS','ATL',700,946,'EA',147,'FNYNHQNK','72S','B',0,'N',166 +105588,'1234567','BOS','ATL',815,1100,'DL',219,'FYBMQ','L10','B',0,'N',165 +105589,'1234567','BOS','ATL',832,1126,'EA',643,'FYHQK','D9S','B',0,'N',174 +105590,'1234567','BOS','ATL',955,1235,'DL',547,'FYBMQ','72S','B',0,'N',160 +105591,'1234567','BOS','ATL',1035,1327,'EA',145,'FYHQK','D9S','L',0,'N',172 +105592,'1234567','BOS','ATL',1156,1435,'DL',708,'FYBMQ','767','L',0,'N',159 +105593,'1234567','BOS','ATL',1240,1525,'EA',143,'FYHQK','D9S','L',0,'N',165 +105594,'1234567','BOS','ATL',1421,1709,'EA',645,'YHQKL','72S','S',0,'N',168 +105595,'1234567','BOS','ATL',1520,1804,'DL',975,'FYBMQ','757','S',0,'N',164 +105597,'1234567','BOS','ATL',1605,1900,'EA',141,'FYHQK','72S','D',0,'N',175 +105598,'1234567','BOS','ATL',1758,2049,'EA',149,'FYHQK','D9S','D',0,'N',171 +105599,'1234567','BOS','ATL',1850,2128,'DL',323,'FYBMQ','757','D',0,'N',158 +105601,'1234567','BOS','ATL',2024,2258,'DL',541,'FNYNBNMQ','L10','S',0,'N',154 +105698,'1234567','BOS','BWI',645,811,'US',369,'FYBHQ','733','B/S',0,'N',86 +105699,'1234567','BOS','BWI',930,1056,'US',511,'FYBHQ','733','S/',0,'N',86 +105700,'1234567','BOS','BWI',1000,1127,'US',437,'FYBHQ','M80','S/',0,'N',87 +105701,'1234567','BOS','BWI',1330,1451,'US',269,'FYBHQ','D9S','S',0,'N',81 +105702,'1234567','BOS','BWI',1505,1626,'US',428,'FYBHQ','D9S','',0,'N',81 +105703,'1234567','BOS','BWI',1745,1912,'US',1581,'FYBHQ','72S','S',0,'N',87 +105704,'1234567','BOS','BWI',1955,2122,'US',1609,'FYBHQ','73S','',0,'N',87 +105705,'12345-7','BOS','BWI',2140,2306,'US',76,'FYBHQ','733','',0,'N',86 +105794,'123456-','BOS','DEN',838,1110,'UA',201,'FYBMQ','D8S','B',0,'N',272 +105795,'------7','BOS','DEN',840,1112,'UA',343,'FYBMQ','D8S','B',0,'N',272 +105796,'1234567','BOS','DEN',855,1140,'CO',1209,'FYQHK','M80','B',0,'N',285 +105798,'1234567','BOS','DEN',1425,1732,'CO',1215,'FYQHK','733','S',0,'N',307 +105799,'1234567','BOS','DEN',1720,1949,'UA',281,'FYBMQ','D8S','D',0,'N',269 +105800,'12345-7','BOS','DEN',1740,2033,'CO',1765,'FYQHK','M80','D',0,'N',293 +105801,'1234567','BOS','DFW',653,1017,'AA',315,'FYBMV','D10','B',0,'N',264 +105802,'1234567','BOS','DFW',805,1110,'DL',831,'FYBMQ','757','B',0,'N',245 +105803,'1234567','BOS','DFW',830,1209,'AA',1099,'FYBMV','M80','B',0,'N',279 +105805,'1234567','BOS','DFW',1132,1430,'DL',169,'FYBMQ','757','L',0,'N',238 +105806,'1234567','BOS','DFW',1149,1520,'AA',813,'FYBMV','767','L',0,'N',271 +105807,'1234567','BOS','DFW',1428,1750,'AA',215,'FYBMV','D10','S',0,'N',262 +105808,'1234567','BOS','DFW',1445,1755,'DL',697,'FYBMQ','72S','S',0,'N',250 +105810,'1234567','BOS','DFW',1721,2144,'DL',589,'FYBMQ','72S','SD',1,'N',323 +105811,'1234567','BOS','DFW',1740,2100,'AA',155,'FYBMV','767','D',0,'N',260 +105812,'1234567','BOS','DFW',1845,2144,'DL',487,'FYBMQ','72S','D',0,'N',239 +106229,'123456-','BOS','PHL',630,750,'US',1800,'FYBHQ','734','S',0,'N',80 +106230,'1234567','BOS','PHL',700,820,'ML',455,'FYMHQ','D9S','B/S',0,'N',80 +106231,'1234567','BOS','PHL',705,817,'US',567,'FYBHQ','72S','S',0,'N',72 +106232,'1234567','BOS','PHL',817,940,'DL',891,'FYBMQ','72S','B/S',0,'N',83 +106234,'1234567','BOS','PHL',850,1010,'US',577,'FYBHQ','100','',0,'N',80 +106235,'123456-','BOS','PHL',910,1030,'ML',437,'FYMHQ','D9S','B/S',0,'N',80 +106236,'1234567','BOS','PHL',1030,1150,'US',569,'FYBHQ','733','',0,'N',80 +106237,'1234567','BOS','PHL',1125,1245,'US',359,'FYBHQ','733','',0,'N',80 +106238,'1234567','BOS','PHL',1142,1300,'DL',949,'FYBMQ','72S','S',0,'N',78 +106239,'1234567','BOS','PHL',1215,1335,'ML',425,'FYMHQ','D9S','L/S',0,'N',80 +106240,'-2-4--7','BOS','PHL',1325,1445,'LH',420,'FCBMK','D10','',0,'N',80 +106241,'1234567','BOS','PHL',1400,1520,'ML',439,'FYMHQ','D9S','',0,'N',80 +106242,'1234567','BOS','PHL',1414,1535,'DL',639,'FYBMQ','72S','',0,'N',81 +106245,'12345-7','BOS','PHL',1510,1629,'US',731,'FYBHQ','D9S','',0,'N',79 +106246,'1234567','BOS','PHL',1545,1704,'US',297,'FYBHQ','D9S','',0,'N',79 +106247,'1234567','BOS','PHL',1645,1808,'US',1664,'FYBHQ','733','',0,'N',83 +106248,'1234567','BOS','PHL',1721,1840,'DL',589,'FYBMQ','72S','S',0,'N',79 +106249,'1234567','BOS','PHL',1745,1905,'ML',413,'FYMHQ','D9S','D/S',0,'N',80 +106250,'12345-7','BOS','PHL',1805,1924,'US',101,'FYBHQ','D9S','',0,'N',79 +106251,'12345-7','BOS','PHL',1855,2015,'US',293,'FYBHQ','733','',0,'N',80 +106252,'12345-7','BOS','PHL',1900,2019,'ML',431,'FYMHQ','D9S','D/S',0,'N',79 +106253,'1234567','BOS','PHL',1950,2111,'US',411,'FYBHQ','M80','',0,'N',81 +106254,'1234567','BOS','PHL',2033,2150,'DL',339,'FYBMQ','72S','',0,'N',77 +106255,'12345-7','BOS','PHL',2145,2304,'US',307,'FYBHQ','D9S','',0,'N',79 +106262,'123456-','BOS','PIT',630,950,'US',1800,'FYBHQ','734','S',1,'N',200 +106263,'1234567','BOS','PIT',715,857,'US',476,'FYBHQ','72S','B',0,'N',102 +106264,'1234567','BOS','PIT',810,953,'US',65,'FYBHQ','D9S','B',0,'N',103 +106265,'1234567','BOS','PIT',1145,1333,'US',167,'FYBHQ','733','S',0,'N',108 +106266,'1234567','BOS','PIT',1210,1353,'US',81,'FYBHQ','M80','S',0,'N',103 +106267,'1234567','BOS','PIT',1520,1706,'US',148,'FYBHQ','73S','S/',0,'N',106 +106268,'1234567','BOS','PIT',1640,1823,'US',303,'FYBHQ','D9S','S/',0,'N',103 +106269,'1234567','BOS','PIT',1755,1941,'US',1652,'FYBHQ','73S','S',0,'N',106 +106270,'12345-7','BOS','PIT',1855,2207,'US',293,'FYBHQ','733','',1,'N',192 +106271,'12345-7','BOS','PIT',2105,2248,'US',345,'FYBHQ','M80','',0,'N',103 +106365,'1234567','BOS','SFO',800,1131,'UA',21,'FYBMQ','D10','B',0,'N',391 +106366,'------7','BOS','SFO',840,1336,'UA',343,'FYBMQ','D8S','BL',1,'N',476 +106373,'1234567','BOS','SFO',1149,1758,'AA',813,'FYBMV','767','LD',1,'N',549 +106375,'12345-7','BOS','SFO',1740,2310,'CO',1765,'FYQHK','M80','D',1,'N',510 +106376,'1234567','BOS','SFO',1745,2127,'UA',93,'FYBMQ','D8S','D',0,'N',402 +106377,'1234567','BOS','SFO',1810,2137,'TW',61,'FCYBQ','L10','D',0,'N',387 +107159,'1234567','BWI','ATL',550,739,'DL',995,'FNYNBNMQ','M80','B',0,'N',109 +107160,'1234567','BWI','ATL',640,835,'EA',207,'FNYNHQNK','72S','B',0,'N',115 +107161,'1234567','BWI','ATL',800,1001,'EA',203,'FYHQK','D9S','B',0,'N',121 +107162,'1234567','BWI','ATL',900,1050,'DL',125,'FYBMQ','757','S',0,'N',110 +107163,'1234567','BWI','ATL',940,1137,'EA',201,'FYHQK','D9S','S',0,'N',117 +107164,'1234567','BWI','ATL',1144,1335,'EA',205,'FYHQK','D9S','L',0,'N',111 +107165,'1234567','BWI','ATL',1230,1423,'DL',539,'FYBMQ','M80','L',0,'N',113 +107166,'1234567','BWI','ATL',1600,1750,'DL',1055,'FYBMQ','M80','S/',0,'N',110 +107167,'1234567','BWI','ATL',1659,1854,'EA',131,'FYHQK','D9S','D',0,'N',115 +107168,'1234567','BWI','ATL',1945,2128,'DL',469,'FYBMQ','757','',0,'N',103 +107193,'123456-','BWI','BOS',720,839,'US',1049,'FYBHQ','72S','B/S',0,'N',79 +107194,'1234567','BWI','BOS',905,1025,'US',600,'FYBHQ','733','S/',0,'N',80 +107195,'1234567','BWI','BOS',1010,1130,'US',1508,'FYBHQ','72S','S/',0,'N',80 +107196,'1234567','BWI','BOS',1310,1430,'US',324,'FYBHQ','73S','S',0,'N',80 +107197,'1234567','BWI','BOS',1630,1749,'US',1016,'FYBHQ','72S','',0,'N',79 +107198,'1234567','BWI','BOS',1745,1905,'US',1586,'FYBHQ','73S','S',0,'N',80 +107199,'1234567','BWI','BOS',2045,2205,'US',1750,'FYBHQ','734','',0,'N',80 +107200,'1234567','BWI','BOS',2110,2231,'US',368,'FYBHQ','733','',0,'N',81 +107253,'123456-','BWI','DEN',800,1135,'US',1402,'FYBHQ','733','SB',1,'N',335 +107254,'1234567','BWI','DEN',915,1110,'UA',277,'FYBMQ','72S','B',0,'N',235 +107255,'1234567','BWI','DEN',1205,1410,'US',2123,'FYBHQ','734','L',0,'N',245 +107256,'1234567','BWI','DEN',1745,1933,'UA',707,'FYBMQ','72S','D',0,'N',228 +107257,'1234567','BWI','DFW',745,1015,'AA',195,'FYBMV','M80','B',0,'N',210 +107258,'1234567','BWI','DFW',845,1100,'DL',1028,'FYBMQ','D9S','B',0,'N',195 +107259,'1234567','BWI','DFW',1245,1518,'AA',273,'FYBMV','72S','L',0,'N',213 +107260,'1234567','BWI','DFW',1505,1745,'AA',1179,'FYBMV','M80','S',0,'N',220 +107261,'1234567','BWI','DFW',1530,1800,'DL',743,'FYBMQ','73S','S',0,'N',210 +107264,'1234567','BWI','DFW',1852,2120,'AA',599,'FYBMV','72S','D',0,'N',208 +107470,'123456-','BWI','PHL',715,808,'US',3724,'YBHQM','SH3','',0,'Y',53 +107471,'1234567','BWI','PHL',1000,1053,'US',4518,'YBHQM','DH8','',0,'Y',53 +107472,'1234567','BWI','PHL',1205,1258,'US',3533,'YBHQM','SH6','',0,'Y',53 +107473,'1234567','BWI','PHL',1325,1415,'US',4393,'YBHQM','DH8','',0,'Y',50 +107474,'12345-7','BWI','PHL',1500,1543,'US',4386,'YBHQM','DH8','',0,'Y',43 +107475,'1234567','BWI','PHL',1640,1733,'US',3738,'YBHQM','SH3','',0,'Y',53 +107476,'12345-7','BWI','PHL',1930,2020,'US',3753,'YBHQM','SH3','',0,'Y',50 +107477,'12345-7','BWI','PHL',2010,2103,'US',3721,'YBHQM','SH6','',0,'Y',53 +107478,'12345-7','BWI','PHL',2053,2146,'US',3671,'YBHQM','SH6','',0,'Y',53 +107484,'123456-','BWI','PIT',700,758,'US',351,'FYBHQ','734','S',0,'N',58 +107485,'------7','BWI','PIT',715,815,'US',931,'FYBHQ','100','S',0,'N',60 +107486,'123456-','BWI','PIT',800,901,'US',1402,'FYBHQ','733','S',0,'N',61 +107487,'1234567','BWI','PIT',1240,1343,'US',1276,'FYBHQ','733','',0,'N',63 +107488,'------7','BWI','PIT',1300,1406,'US',977,'FYBHQ','F28','',0,'N',66 +107489,'1234567','BWI','PIT',1620,1720,'US',451,'FYBHQ','72S','',0,'N',60 +107490,'1234567','BWI','PIT',1710,1812,'US',189,'FYBHQ','D9S','',0,'N',62 +107491,'1234567','BWI','PIT',1825,1928,'US',1605,'FYBHQ','733','',0,'N',63 +107492,'1234567','BWI','PIT',2100,2202,'US',1216,'FYBHQ','73S','',0,'N',62 +111886,'1234567','DEN','ATL',55,527,'DL',296,'FNYNBNMQ','72S','',0,'N',152 +111887,'1234567','DEN','ATL',215,654,'EA',820,'FNYNHQNK','757','S',0,'N',159 +111888,'1234567','DEN','ATL',800,1235,'DL',402,'FYBMQ','72S','B',0,'N',155 +111889,'1234567','DEN','ATL',825,1315,'EA',822,'FYHQK','72S','B',0,'N',170 +111891,'1234567','DEN','ATL',1039,1537,'UA',408,'FYBMQ','733','L',0,'N',178 +111892,'1234567','DEN','ATL',1055,1541,'DL',317,'FYBMQ','757','L',0,'N',166 +111893,'1234567','DEN','ATL',1155,1645,'EA',824,'FYHQK','72S','L',0,'N',170 +111894,'1234567','DEN','ATL',1450,1925,'DL',704,'FYBMQ','757','D',0,'N',155 +111895,'1234567','DEN','ATL',1815,2250,'DL',1644,'FYBMQ','72S','D',0,'N',155 +111896,'1234567','DEN','ATL',1837,2330,'UA',886,'FYBMQ','73S','D',0,'N',173 +111924,'1234567','DEN','BOS',55,1000,'DL',296,'FNYNBNMQ','72S','B',2,'N',425 +111928,'1234567','DEN','BOS',1039,1619,'UA',352,'FYBMQ','D8S','L',0,'N',220 +111929,'1234567','DEN','BOS',1105,1700,'CO',1234,'FYQHK','M80','L',0,'N',235 +111930,'1234567','DEN','BOS',1455,2205,'US',1750,'FYBHQ','734','L',1,'N',310 +111931,'1234567','DEN','BOS',1520,2056,'UA',354,'FYBMQ','72S','D',0,'N',216 +111932,'1234567','DEN','BOS',1605,2145,'CO',1220,'FYQHK','M80','D',0,'N',220 +111933,'12345-7','DEN','BOS',1935,132,'CO',1270,'FYQHK','733','D',0,'N',237 +111937,'1234567','DEN','BWI',1045,1553,'UA',658,'FYBMQ','72S','L',0,'N',188 +111939,'1234567','DEN','BWI',1455,2010,'US',1750,'FYBHQ','734','L',0,'N',195 +111941,'1234567','DEN','BWI',1828,2332,'UA',302,'FYBMQ','72S','D',0,'N',184 +112028,'1234567','DEN','DFW',450,742,'AA',1412,'FNYNBMV','M80','',0,'N',112 +112029,'123456-','DEN','DFW',605,851,'UA',216,'FYBMQ','733','B',0,'N',106 +112030,'--34567','DEN','DFW',620,906,'DL',465,'FNYNBNMQ','M80','B',0,'N',106 +112031,'12-----','DEN','DFW',620,906,'DL',465,'FNYNBNMQ','72S','B',0,'N',106 +112032,'1234567','DEN','DFW',901,1210,'AA',912,'FYBMV','M80','S',0,'N',129 +112033,'1234567','DEN','DFW',950,1235,'DL',335,'FYBMQ','M80','S',0,'N',105 +112034,'1234567','DEN','DFW',1029,1312,'UA',438,'FYBMQ','727','L',0,'N',103 +112035,'1234567','DEN','DFW',1040,1343,'AA',464,'FYBMV','M80','S',0,'N',123 +112036,'1234567','DEN','DFW',1105,1353,'CO',1226,'FYQHK','72S','L',0,'N',108 +112037,'1234567','DEN','DFW',1210,1504,'AA',242,'FYBMV','M80','L',0,'N',114 +112038,'-----6-','DEN','DFW',1310,1555,'UA',888,'FYBMQ','727','S',0,'N',105 +112039,'12345-7','DEN','DFW',1310,1555,'UA',880,'FYBMQ','727','S',0,'N',105 +112041,'1234567','DEN','DFW',1325,1615,'CO',90,'FYQHK','72S','S',0,'N',110 +112040,'1234567','DEN','DFW',1325,1615,'DL',870,'FYBMQ','M80','L',0,'N',110 +112042,'1234567','DEN','DFW',1340,1628,'AA',50,'FYBMV','M80','',0,'N',108 +112043,'1234567','DEN','DFW',1507,1753,'UA',450,'FYBMQ','727','',0,'N',106 +112044,'1234567','DEN','DFW',1605,1905,'CO',1652,'FYQHK','M80','D',0,'N',120 +112045,'1234567','DEN','DFW',1613,1923,'AA',618,'FYBMV','72S','D',0,'N',130 +112046,'1234567','DEN','DFW',1700,1943,'DL',742,'FYBMQ','72S','D',0,'N',103 +112047,'1234567','DEN','DFW',1723,2006,'UA',714,'FYBMQ','72S','D',0,'N',103 +112048,'1234567','DEN','DFW',1808,2103,'AA',1486,'FYBMV','M80','D',0,'N',115 +112049,'12345-7','DEN','DFW',1835,2122,'UA',664,'FYBMQ','727','D',0,'N',107 +112050,'1234567','DEN','DFW',1925,2220,'CO',935,'FYQHK','733','S',0,'N',115 +112051,'1234567','DEN','DFW',1955,2240,'DL',661,'FNYNBNMQ','72S','S',0,'N',105 +112052,'1234567','DEN','DFW',2036,2327,'AA',1432,'FNYNBMV','M80','',0,'N',111 +112351,'1234567','DEN','OAK',840,1014,'UA',389,'FYBMQ','727','B',0,'N',154 +112352,'1234567','DEN','OAK',1208,1339,'UA',551,'FYBMQ','727','L',0,'N',151 +112353,'1234567','DEN','OAK',1715,1852,'UA',645,'FYBMQ','73S','D',0,'N',157 +112354,'1234567','DEN','OAK',2030,2205,'UA',673,'FYBMQ','733','',0,'N',155 +112413,'1234567','DEN','PHL',55,825,'DL',296,'FNYNBNMQ','72S','B',1,'N',330 +112415,'1234567','DEN','PHL',1033,1553,'UA',270,'FYBMQ','D8S','L',0,'N',200 +112416,'1234567','DEN','PHL',1120,1705,'CO',1602,'FYQHK','733','L',0,'N',225 +112417,'1234567','DEN','PHL',1524,2041,'UA',494,'FYBMQ','D10','D',0,'N',197 +112418,'1234567','DEN','PHL',1615,2146,'CO',784,'FYQHK','72S','D/S',0,'N',211 +112440,'1234567','DEN','PIT',730,1225,'US',1039,'FYBHQ','734','B',0,'N',175 +112441,'1234567','DEN','PIT',1035,1527,'US',1520,'FYBHQ','733','B',0,'N',172 +112442,'1234567','DEN','PIT',1605,2057,'US',1421,'FYBHQ','733','D',0,'N',172 +112513,'1234567','DEN','SFO',830,1006,'UA',819,'FCYBM','D10','B',0,'N',156 +112514,'1234567','DEN','SFO',840,1041,'CO',1679,'FYQHK','733','B',0,'N',181 +112515,'1234567','DEN','SFO',935,1110,'UA',315,'FYBMQ','72S','S',0,'N',155 +112516,'1234567','DEN','SFO',1200,1336,'UA',343,'FYBMQ','D8S','L',0,'N',156 +112519,'12345-7','DEN','SFO',1220,1416,'CO',1295,'FYQHK','733','L',0,'N',176 +112518,'-----6-','DEN','SFO',1220,1416,'CO',1291,'FYQHK','72S','L',0,'N',176 +112520,'1234567','DEN','SFO',1408,1535,'UA',773,'FYBMQ','727','S',0,'N',147 +112524,'1234567','DEN','SFO',1735,1912,'UA',207,'FYBMQ','757','D',0,'N',157 +112525,'1234567','DEN','SFO',1810,1947,'CO',511,'FYQHK','72S','D/S',0,'N',157 +112526,'1234567','DEN','SFO',2045,2214,'UA',297,'FYBMQ','72S','',0,'N',149 +112527,'1234567','DEN','SFO',2130,2310,'CO',1765,'FQYNHK','M80','',0,'N',160 +112766,'1234567','DFW','ATL',625,917,'DL',16,'FYBMQ','L15','B',0,'N',112 +112771,'1234567','DFW','ATL',658,950,'AA',864,'FNYNBMV','M80','B',0,'N',112 +112772,'1234567','DFW','ATL',800,1050,'DL',83,'FYBMQ','L10','B',0,'N',110 +112773,'1234567','DFW','ATL',945,1244,'DL',790,'FYBMQ','767','S',0,'N',119 +112777,'1234567','DFW','ATL',1140,1434,'DL',446,'FYBMQ','M80','L',0,'N',114 +112783,'1234567','DFW','ATL',1251,1549,'AA',504,'FYBMV','M80','L',0,'N',118 +112784,'1234567','DFW','ATL',1305,1606,'DL',796,'FYBMQ','763','L',0,'N',121 +112789,'1234567','DFW','ATL',1442,1746,'AA',482,'FYBMV','M80','S',0,'N',124 +112790,'1234567','DFW','ATL',1501,1753,'DL',688,'FYBMQ','763','S',0,'N',112 +112793,'--34567','DFW','ATL',1650,1943,'DL',748,'FYBMQ','L10','D',0,'N',113 +112794,'12-----','DFW','ATL',1650,1943,'DL',748,'FYBMQ','763','D',0,'N',113 +112797,'-2-----','DFW','ATL',1705,2005,'LH',443,'FCBMK','74M','D',0,'N',120 +112798,'1234567','DFW','ATL',1716,2016,'AA',222,'FYBMV','M80','D',0,'N',120 +112802,'1234567','DFW','ATL',1840,2133,'DL',832,'FYBMQ','M80','D',0,'N',113 +112804,'1234567','DFW','ATL',1958,2255,'AA',496,'FNYNBMV','M80','S/',0,'N',117 +112805,'1234567','DFW','ATL',2010,2258,'DL',1720,'FYBMQ','72S','S/',0,'N',108 +112806,'1234567','DFW','ATL',2215,100,'DL',1008,'FNYNBNMQ','D9S','',0,'N',105 +112807,'1234567','DFW','ATL',2257,151,'AA',628,'FNYNBMV','M80','',0,'N',114 +112808,'1234567','DFW','ATL',2345,230,'DL',1030,'FNYNBNMQ','M80','',0,'N',105 +112864,'1234567','DFW','BOS',641,1104,'AA',928,'FYBMV','767','B',0,'N',203 +112867,'12-----','DFW','BOS',1005,1435,'DL',694,'FYBMQ','72S','B',0,'N',210 +112866,'--34567','DFW','BOS',1005,1435,'DL',694,'FYBMQ','M80','B',0,'N',210 +112869,'1234567','DFW','BOS',1304,1730,'AA',28,'FYBMV','D10','L/S',0,'N',206 +112870,'1234567','DFW','BOS',1315,1755,'DL',128,'FYBMQ','757','L',0,'N',220 +112872,'1234567','DFW','BOS',1448,1925,'AA',634,'FYBMV','767','S',0,'N',217 +112873,'1234567','DFW','BOS',1705,2125,'DL',670,'FYBMQ','72S','D',0,'N',200 +112874,'1234567','DFW','BOS',1719,2152,'AA',154,'FYBMV','D10','D',0,'N',213 +112903,'1234567','DFW','BWI',822,1200,'AA',314,'FYBMV','72S','B',0,'N',158 +112904,'1234567','DFW','BWI',1020,1400,'DL',430,'FYBMQ','73S','L',0,'N',160 +112905,'1234567','DFW','BWI',1426,1807,'AA',600,'FYBMV','72S','S',0,'N',161 +112907,'1234567','DFW','BWI',1708,2045,'DL',605,'FYBMQ','M80','D',0,'N',157 +112908,'1234567','DFW','BWI',1717,2110,'AA',268,'FYBMV','M80','D',0,'N',173 +112909,'1234567','DFW','BWI',1957,2334,'AA',376,'FYBMV','72S','S',0,'N',157 +112989,'1234567','DFW','DEN',650,800,'CO',1149,'FYQHK','733','B',0,'N',130 +112990,'1234567','DFW','DEN',658,753,'AA',1443,'FYBMV','M80','B',0,'N',115 +112991,'123456-','DFW','DEN',700,753,'UA',953,'FYBMQ','72S','B',0,'N',113 +112992,'1234567','DFW','DEN',816,910,'DL',416,'FYBMQ','M80','B',0,'N',114 +112993,'1234567','DFW','DEN',822,932,'AA',445,'FYBMV','M80','B',0,'N',130 +112994,'1234567','DFW','DEN',830,921,'UA',985,'FYBMQ','727','B',0,'N',111 +112995,'1234567','DFW','DEN',941,1047,'AA',521,'FYBMV','M80','S',0,'N',126 +112996,'-----6-','DFW','DEN',1030,1130,'CO',1291,'FYQHK','72S','S',0,'N',120 +112997,'12345-7','DFW','DEN',1030,1130,'CO',215,'FYQHK','72S','S',0,'N',120 +112998,'1234567','DFW','DEN',1032,1125,'UA',551,'FYBMQ','727','S',0,'N',113 +112999,'1234567','DFW','DEN',1108,11,'AA',419,'FYBMV','M80','S',0,'N',123 +113000,'1234567','DFW','DEN',1151,1245,'DL',551,'FYBMQ','M80','L',0,'N',114 +113001,'1234567','DFW','DEN',1240,1333,'UA',773,'FYBMQ','727','L',0,'N',113 +113002,'1234567','DFW','DEN',1428,1528,'AA',1249,'FYBMV','72S','',0,'N',120 +113003,'1234567','DFW','DEN',1500,1554,'DL',309,'FYBMQ','72S','',0,'N',114 +113004,'1234567','DFW','DEN',1547,1646,'UA',725,'FYBMQ','733','',0,'N',119 +113005,'1234567','DFW','DEN',1607,1714,'AA',51,'FYBMV','M80','',0,'N',127 +113006,'1234567','DFW','DEN',1630,1729,'CO',469,'FYQHK','72S','',0,'N',119 +113007,'1234567','DFW','DEN',1835,1936,'AA',193,'FNYNBMV','M80','D',0,'N',121 +113008,'12345-7','DFW','DEN',1850,1951,'UA',475,'FYBMQ','733','D',0,'N',121 +113009,'1234567','DFW','DEN',1855,1950,'DL',807,'FYBMQ','72S','D',0,'N',115 +113010,'1234567','DFW','DEN',1940,2040,'CO',271,'FYQHK','M80','D/S',0,'N',120 +113011,'1234567','DFW','DEN',2153,2253,'AA',313,'FNYNBMV','M80','',0,'N',120 +113013,'1-----7','DFW','DEN',2225,2320,'DL',621,'FNYNBNMQ','72S','',0,'N',115 +113012,'-23456-','DFW','DEN',2225,2320,'DL',621,'FNYNBNMQ','M80','',0,'N',115 +113498,'1234567','DFW','OAK',943,1133,'AA',877,'FYBMV','M80','B',0,'N',230 +113499,'1234567','DFW','OAK',1032,1339,'UA',551,'FYBMQ','727','SL',1,'N',307 +113500,'1234567','DFW','OAK',1835,2023,'AA',459,'FYBMV','M80','D',0,'N',228 +113501,'1234567','DFW','OAK',2153,2343,'AA',367,'FNYNBMV','M80','',0,'N',230 +113576,'1234567','DFW','PHL',703,1106,'AA',124,'FYBMV','M80','B',0,'N',183 +113577,'1234567','DFW','PHL',950,1350,'DL',1006,'FYBMQ','73S','B',0,'N',180 +113578,'1234567','DFW','PHL',1303,1706,'AA',1010,'FYBMV','767','L/S',0,'N',183 +113579,'1234567','DFW','PHL',1310,1705,'DL',234,'FYBMQ','72S','L',0,'N',175 +113581,'1234567','DFW','PHL',1718,2130,'AA',586,'FYBMV','M80','D',0,'N',192 +113582,'1234567','DFW','PHL',1959,2358,'AA',1074,'FYBMV','M80','S/',0,'N',179 +113583,'1234567','DFW','PHL',2025,15,'DL',1546,'FNYNBNMQ','72S','S',0,'N',170 +113595,'1234567','DFW','PIT',825,1200,'AA',478,'FYBMV','M80','B',0,'N',155 +113596,'1234567','DFW','PIT',845,1214,'US',326,'FYBHQ','M80','B',0,'N',149 +113597,'1234567','DFW','PIT',1230,1559,'US',96,'FYBHQ','M80','L',0,'N',149 +113599,'1234567','DFW','PIT',1434,1804,'AA',296,'FYBMV','M80','S',0,'N',150 +113600,'1234567','DFW','PIT',1720,2059,'US',504,'FYBHQ','M80','D',0,'N',159 +113602,'1234567','DFW','PIT',1958,2328,'AA',144,'FYBMV','M80','S/',0,'N',150 +113705,'1234567','DFW','SFO',815,955,'DL',825,'FYBMQ','757','B',0,'N',220 +113706,'1234567','DFW','SFO',826,1013,'AA',203,'FYBMV','D10','B',0,'N',227 +113707,'1234567','DFW','SFO',935,1127,'UA',459,'FYBMQ','733','L',0,'N',232 +113709,'1234567','DFW','SFO',944,1147,'AA',125,'FYBMV','M80','B',0,'N',243 +113710,'-----6-','DFW','SFO',1030,1416,'CO',1291,'FYQHK','72S','SL',1,'N',346 +113711,'1234567','DFW','SFO',1107,59,'AA',295,'FYBMV','D10','L',0,'N',232 +113712,'1234567','DFW','SFO',1143,1325,'DL',149,'FYBMQ','767','L',0,'N',222 +113713,'1234567','DFW','SFO',1240,1535,'UA',773,'FYBMQ','727','LS',1,'N',295 +113715,'1234567','DFW','SFO',1510,1650,'DL',887,'FYBMQ','757','S',0,'N',220 +113716,'1234567','DFW','SFO',1604,1758,'AA',813,'FYBMV','767','D',0,'N',234 +113717,'1234567','DFW','SFO',1705,1858,'AA',1119,'FYBMV','767','D',0,'N',233 +113718,'1234567','DFW','SFO',1840,2029,'AA',71,'FYBMV','D10','D',0,'N',229 +113719,'1234567','DFW','SFO',1900,2050,'DL',139,'FYBMQ','757','D',0,'N',230 +113720,'1234567','DFW','SFO',2155,2341,'AA',37,'FNYNBMV','767','S',0,'N',226 +113721,'1234567','DFW','SFO',2214,2350,'DL',395,'FNYNBNMQ','757','S',0,'N',216 +133423,'1234567','OAK','BOS',1105,2056,'UA',354,'FYBMQ','72S','LD',1,'N',411 +133430,'1234567','OAK','DEN',625,949,'UA',982,'FYBMQ','733','B',0,'N',144 +133431,'1234567','OAK','DEN',1105,1417,'UA',354,'FYBMQ','72S','L',0,'N',132 +133432,'1234567','OAK','DEN',1425,1740,'UA',436,'FYBMQ','727','S',0,'N',135 +133433,'1234567','OAK','DEN',1930,2251,'UA',384,'FYBMQ','73S','S/',0,'N',141 +133434,'1234567','OAK','DFW',35,552,'AA',534,'FNYNBMV','M80','',0,'N',197 +133435,'1234567','OAK','DFW',640,1214,'AA',1086,'FYBMV','M80','B',0,'N',214 +133436,'1234567','OAK','DFW',1345,1912,'AA',1074,'FYBMV','M80','L',0,'N',207 +133516,'1234567','OAK','PHL',1345,2358,'AA',1074,'FYBMV','M80','LS/L',1,'N',433 +133567,'123456-','OAK','SFO',530,554,'AA',5112,'YNBMVQ','SWM','',0,'Y',24 +133568,'------7','OAK','SFO',735,759,'AA',5235,'YBMVQ','SWM','',0,'Y',24 +133569,'------7','OAK','SFO',1020,1055,'AA',5140,'YBMVQ','SWM','',0,'Y',35 +137221,'1234567','PHL','ATL',540,740,'DL',201,'FNYNBNMQ','72S','B',0,'N',120 +137222,'1234567','PHL','ATL',635,844,'EA',121,'FNYNHQNK','D9S','B',0,'N',129 +137223,'1234567','PHL','ATL',800,1004,'EA',601,'FYHQK','D9S','B',0,'N',124 +137224,'1234567','PHL','ATL',900,1104,'DL',803,'FYBMQ','757','S',0,'N',124 +137225,'1234567','PHL','ATL',900,1110,'US',667,'FYBHQ','733','B',0,'N',130 +137226,'1234567','PHL','ATL',930,1142,'EA',125,'FYHQK','D9S','S',0,'N',132 +137227,'1234567','PHL','ATL',1115,1320,'EA',123,'FYHQK','D9S','L',0,'N',125 +137228,'1234567','PHL','ATL',1230,1430,'DL',1083,'FYBMQ','72S','L',0,'N',120 +137229,'1234567','PHL','ATL',1304,1512,'EA',127,'FYHQK','D9S','L',0,'N',128 +137230,'1234567','PHL','ATL',1405,1605,'DL',429,'FYBMQ','72S','',0,'N',120 +137231,'1234567','PHL','ATL',1405,1615,'US',1623,'FYBHQ','73S','L/S',0,'N',130 +137232,'1234567','PHL','ATL',1500,1710,'EA',603,'FYHQK','D9S','S/',0,'N',130 +137233,'1234567','PHL','ATL',1600,1805,'DL',1507,'FYBMQ','72S','S',0,'N',125 +137234,'1234567','PHL','ATL',1700,1909,'EA',329,'FYHQK','D9S','D',0,'N',129 +137235,'1234567','PHL','ATL',1750,1950,'DL',101,'FYBMQ','72S','D',0,'N',120 +137236,'1234567','PHL','ATL',1850,2055,'EA',129,'FYHQK','D9S','D',0,'N',125 +137237,'1234567','PHL','ATL',1855,2101,'US',289,'FYBHQ','D9S','D',0,'N',126 +137238,'1234567','PHL','ATL',1935,2137,'DL',389,'FYBMQ','767','D',0,'N',122 +137315,'1234567','PHL','BOS',615,719,'DL',562,'FYBMQ','757','B/S',0,'N',64 +137316,'1234567','PHL','BOS',700,805,'US',292,'FYBHQ','733','S',0,'N',65 +137317,'123456-','PHL','BOS',700,820,'ML',436,'FYMHQ','D9S','B/S',0,'N',80 +137318,'1234567','PHL','BOS',800,907,'US',1557,'FYBHQ','73S','S',0,'N',67 +137319,'1234567','PHL','BOS',855,1000,'DL',296,'FYBMQ','72S','',0,'N',65 +137320,'1234567','PHL','BOS',1020,1127,'US',424,'FYBHQ','M80','',0,'N',67 +137321,'1234567','PHL','BOS',1020,1140,'ML',400,'FYMHQ','D9S','',0,'N',80 +137322,'1234567','PHL','BOS',1200,1315,'ML',438,'FYMHQ','D9S','L/S',0,'N',75 +137323,'1234567','PHL','BOS',1250,1355,'DL',726,'FYBMQ','72S','S',0,'N',65 +137324,'1234567','PHL','BOS',1325,1432,'US',122,'FYBHQ','D9S','',0,'N',67 +137326,'1234567','PHL','BOS',1440,1548,'US',404,'FYBHQ','72S','',0,'N',68 +137327,'1234567','PHL','BOS',1520,1627,'US',282,'FYBHQ','73S','',0,'N',67 +137328,'1234567','PHL','BOS',1540,1700,'ML',420,'FYMHQ','D9S','',0,'N',80 +137329,'1234567','PHL','BOS',1600,1707,'US',2,'FYBHQ','73S','',0,'N',67 +137330,'-2-4--7','PHL','BOS',1615,1730,'LH',421,'FCBMK','D10','',0,'N',75 +137331,'1234567','PHL','BOS',1650,1755,'DL',648,'FYBMQ','72S','S',0,'N',65 +137332,'12345-7','PHL','BOS',1700,1820,'ML',430,'FYMHQ','D9S','',0,'N',80 +137333,'1234567','PHL','BOS',1755,1902,'US',196,'FYBHQ','M80','',0,'N',67 +137334,'12345-7','PHL','BOS',1855,2002,'US',460,'FYBHQ','D9S','',0,'N',67 +137335,'1234567','PHL','BOS',1945,2053,'US',162,'FYBHQ','72S','',0,'N',68 +137336,'12345-7','PHL','BOS',2030,2137,'US',539,'FYBHQ','D9S','',0,'N',67 +137337,'1234567','PHL','BOS',2055,2215,'ML',432,'FYMHQ','D9S','',0,'N',80 +137338,'12345-7','PHL','BOS',2100,2207,'US',279,'FYBHQ','734','',0,'N',67 +137339,'1234567','PHL','BOS',2115,2219,'DL',106,'FNYNBNMQ','M80','',0,'N',64 +137353,'12345--','PHL','BWI',715,804,'US',3745,'YBHQM','SH3','',0,'Y',49 +137354,'123456-','PHL','BWI',840,929,'US',3725,'YBHQM','SH3','',0,'Y',49 +137355,'1234567','PHL','BWI',1100,1150,'US',3609,'YBHQM','SH6','',0,'Y',50 +137356,'1234567','PHL','BWI',1200,1250,'US',3765,'YBHQM','SH3','',0,'Y',50 +137357,'1234567','PHL','BWI',1335,1425,'US',4517,'YBHQM','DH8','',0,'Y',50 +137358,'1234567','PHL','BWI',1520,1620,'US',3749,'YBHQM','SH3','',0,'Y',60 +137359,'1234567','PHL','BWI',1854,1944,'US',3357,'YBHQM','J31','',0,'Y',50 +137360,'12345-7','PHL','BWI',2045,2135,'US',3753,'YBHQM','SH3','',0,'Y',50 +137361,'12345-7','PHL','BWI',2150,2240,'US',4400,'YBHQM','DH8','',0,'Y',50 +137407,'1234567','PHL','DEN',905,1107,'UA',131,'FYBMQ','D10','B',0,'N',242 +137408,'1234567','PHL','DEN',915,1138,'CO',781,'FYQHK','72S','B',0,'N',263 +137410,'1234567','PHL','DEN',1230,1615,'DL',1083,'FYBMQ','72S','LS',1,'N',345 +137412,'1234567','PHL','DEN',1753,1955,'UA',355,'FYBMQ','D8S','D',0,'N',242 +137413,'1234567','PHL','DEN',1800,2037,'CO',1631,'FYQHK','733','D',0,'N',277 +137414,'1234567','PHL','DFW',720,1014,'AA',487,'FYBMV','M80','B',0,'N',234 +137415,'1234567','PHL','DFW',830,1050,'DL',217,'FYBMQ','72S','B',0,'N',200 +137417,'1234567','PHL','DFW',1212,1502,'AA',883,'FYBMV','M80','L',0,'N',230 +137419,'1234567','PHL','DFW',1440,1710,'DL',1061,'FYBMQ','73S','S',0,'N',210 +137420,'1234567','PHL','DFW',1500,1747,'AA',459,'FYBMV','M80','S',0,'N',227 +137422,'1234567','PHL','DFW',1805,2047,'AA',573,'FYBMV','767','D',0,'N',222 +137423,'1234567','PHL','DFW',1915,2144,'DL',589,'FYBMQ','72S','D',0,'N',209 +137685,'1234567','PHL','OAK',1500,2023,'AA',459,'FYBMV','M80','SD',1,'N',503 +137732,'1234567','PHL','PIT',700,806,'US',71,'FYBHQ','733','B',0,'N',66 +137733,'1234567','PHL','PIT',740,847,'US',39,'FYBHQ','733','B',0,'N',67 +137734,'123456-','PHL','PIT',840,950,'US',1800,'FYBHQ','734','S/',0,'N',70 +137735,'1234567','PHL','PIT',1010,1115,'US',358,'FYBHQ','M80','S/',0,'N',65 +137736,'1234567','PHL','PIT',1235,1341,'US',37,'FYBHQ','733','S',0,'N',66 +137737,'1234567','PHL','PIT',1600,1706,'US',778,'FYBHQ','733','S/',0,'N',66 +137738,'1234567','PHL','PIT',1715,1822,'US',1580,'FYBHQ','734','S/',0,'N',67 +137739,'1234567','PHL','PIT',1810,1916,'US',772,'FYBHQ','72S','S',0,'N',66 +137740,'1234567','PHL','PIT',2100,2207,'US',293,'FYBHQ','733','',0,'N',67 +137811,'1234567','PHL','SFO',800,1121,'UA',143,'FYBMQ','767','B',0,'N',381 +137814,'1234567','PHL','SFO',1235,1652,'US',37,'FYBHQ','733','SL',1,'N',437 +137817,'1234567','PHL','SFO',1655,2005,'UA',101,'FYBMQ','D8S','D',0,'N',370 +138817,'1234567','PIT','ATL',600,739,'DL',357,'FNYNBNMQ','73S','B',0,'N',99 +138818,'1234567','PIT','ATL',645,825,'EA',303,'FYHQK','D9S','B',0,'N',100 +138819,'1234567','PIT','ATL',827,1004,'EA',301,'YHQKL','72S','B',0,'N',97 +138820,'1234567','PIT','ATL',845,1025,'US',573,'FYBHQ','D9S','B',0,'N',100 +138821,'1234567','PIT','ATL',910,1048,'DL',1059,'FYBMQ','D9S','S',0,'N',98 +138822,'1234567','PIT','ATL',1150,1329,'EA',307,'FYHQK','D9S','L',0,'N',99 +138823,'1234567','PIT','ATL',1245,1420,'DL',631,'FYBMQ','D9S','L',0,'N',95 +138824,'1234567','PIT','ATL',1320,1500,'US',18,'FYBHQ','D9S','L',0,'N',100 +138825,'1234567','PIT','ATL',1520,1701,'EA',311,'YHQKL','72S','S',0,'N',101 +138827,'1234567','PIT','ATL',1600,1735,'DL',709,'FYBMQ','73S','',0,'N',95 +138828,'1234567','PIT','ATL',1750,1930,'US',1103,'FYBHQ','733','D',0,'N',100 +138829,'1234567','PIT','ATL',1855,2035,'EA',327,'FYHQK','757','D',0,'N',100 +138830,'-----67','PIT','ATL',1945,2118,'DL',381,'FNYNBNMQ','73S','D',0,'N',93 +138831,'12345--','PIT','ATL',1945,2118,'DL',381,'FNYNBNMQ','72S','D',0,'N',93 +138832,'1234567','PIT','ATL',2025,2205,'US',412,'FYBHQ','D9S','D/S',0,'N',100 +138860,'1234567','PIT','BOS',710,839,'US',732,'FYBHQ','733','B',0,'N',89 +138861,'1234567','PIT','BOS',840,1006,'US',736,'FYBHQ','733','S/',0,'N',86 +138862,'1234567','PIT','BOS',1200,1328,'US',674,'FYBHQ','M80','S',0,'N',88 +138863,'1234567','PIT','BOS',1310,1440,'US',418,'FYBHQ','D9S','S',0,'N',90 +138864,'1234567','PIT','BOS',1355,1524,'US',794,'FYBHQ','D9S','S/',0,'N',89 +138865,'1234567','PIT','BOS',1640,1809,'US',14,'FYBHQ','733','S/',0,'N',89 +138866,'1234567','PIT','BOS',1800,2053,'US',162,'FYBHQ','72S','S',1,'N',173 +138867,'12345-7','PIT','BOS',1930,2058,'US',400,'FYBHQ','73S','S',0,'N',88 +138868,'1234567','PIT','BOS',2155,2322,'US',30,'FYBHQ','72S','',0,'N',87 +138878,'1234567','PIT','BWI',845,938,'US',446,'FYBHQ','72S','',0,'N',53 +138879,'1234567','PIT','BWI',1030,1129,'US',1801,'FYBHQ','734','',0,'N',59 +138880,'1234567','PIT','BWI',1400,1458,'US',538,'FYBHQ','D9S','',0,'N',58 +138881,'1234567','PIT','BWI',1525,1621,'US',1982,'FYBHQ','F28','',0,'N',56 +138882,'1234567','PIT','BWI',1640,1737,'US',2153,'FYBHQ','733','',0,'N',57 +138883,'-----6-','PIT','BWI',1810,1910,'US',975,'FYBHQ','F28','',0,'N',60 +138884,'1234567','PIT','BWI',2155,2252,'US',1793,'FYBHQ','733','',0,'N',57 +138963,'1234567','PIT','DEN',950,1135,'US',1402,'FYBHQ','733','B',0,'N',225 +138964,'1234567','PIT','DEN',1330,1510,'US',1417,'FYBHQ','733','L',0,'N',220 +138965,'1234567','PIT','DEN',1854,2253,'AA',313,'FYBMV','M80','D',1,'N',359 +138966,'1234567','PIT','DEN',2035,2226,'US',1742,'FYBHQ','734','D',0,'N',231 +138970,'1234567','PIT','DFW',640,852,'AA',493,'FYBMV','M80','B',0,'N',192 +138971,'1234567','PIT','DFW',940,1149,'US',7,'FYBHQ','M80','B',0,'N',189 +138973,'1234567','PIT','DFW',1301,1514,'AA',425,'FYBMV','M80','L/S',0,'N',193 +138974,'1234567','PIT','DFW',1430,1639,'US',503,'FYBHQ','M80','L',0,'N',189 +138976,'1234567','PIT','DFW',1854,2107,'AA',313,'FYBMV','M80','D',0,'N',193 +138977,'1234567','PIT','DFW',2020,2229,'US',19,'FYBHQ','M80','D',0,'N',189 +139264,'1234567','PIT','PHL',700,755,'US',771,'FYBHQ','72S','B',0,'N',55 +139265,'1234567','PIT','PHL',740,850,'US',620,'FYBHQ','733','B',0,'N',70 +139266,'1234567','PIT','PHL',850,958,'US',606,'FYBHQ','733','S/',0,'N',68 +139267,'1234567','PIT','PHL',1150,1251,'US',122,'FYBHQ','D9S','S',0,'N',61 +139268,'1234567','PIT','PHL',1325,1430,'US',198,'FYBHQ','733','S',0,'N',65 +139269,'1234567','PIT','PHL',1640,1745,'US',1438,'FYBHQ','733','S/',0,'N',65 +139270,'1234567','PIT','PHL',1800,1900,'US',162,'FYBHQ','72S','S',0,'N',60 +139271,'1234567','PIT','PHL',1955,2100,'US',166,'FYBHQ','733','',0,'N',65 +139272,'12345-7','PIT','PHL',2045,2145,'US',1984,'FYBHQ','73S','',0,'N',60 +139273,'1234567','PIT','PHL',2145,2250,'US',1678,'FYBHQ','734','',0,'N',65 +139353,'1234567','PIT','SFO',945,1217,'US',31,'FYBHQ','72S','B',0,'N',332 +139355,'1234567','PIT','SFO',1430,1652,'US',37,'FYBHQ','733','L',0,'N',322 +139356,'1234567','PIT','SFO',1750,2022,'US',33,'FYBHQ','733','D',0,'N',332 +139357,'1234567','PIT','SFO',2020,2250,'US',35,'FYBHQ','733','D',0,'N',330 +144059,'1234567','SFO','ATL',645,1549,'AA',504,'FYBMV','M80','BL',1,'N',364 +144060,'1234567','SFO','ATL',815,1540,'DL',98,'FYBMQ','763','B',0,'N',265 +144061,'1234567','SFO','ATL',900,1644,'EA',70,'FYHQK','757','B',0,'N',284 +144062,'------7','SFO','ATL',1215,1933,'DL',116,'FYBMQ','767','L',0,'N',258 +144063,'123456-','SFO','ATL',1215,1933,'DL',116,'FYBMQ','L10','L',0,'N',258 +144065,'1234567','SFO','ATL',1310,2041,'EA',72,'FYHQK','757','L',0,'N',271 +144066,'1234567','SFO','ATL',1530,2248,'DL',162,'FYBMQ','757','D',0,'N',258 +144067,'1234567','SFO','ATL',2220,540,'DL',156,'FNYNBNMQ','767','S',0,'N',260 +144069,'1234567','SFO','ATL',2340,657,'EA',74,'FNYNHQNK','757','S',0,'N',257 +144087,'1234567','SFO','BOS',30,1104,'AA',928,'FNYNBMV','767','B',1,'N',454 +144088,'1234567','SFO','BOS',650,1700,'CO',1234,'FYQHK','M80','BL',1,'N',430 +144089,'1234567','SFO','BOS',800,1627,'UA',92,'FYBMQ','D8S','B',0,'N',327 +144090,'1234567','SFO','BOS',825,1639,'TW',754,'FCYBQ','L10','B',0,'N',314 +144092,'123456-','SFO','BOS',1215,2255,'DL',116,'FYBMQ','L10','LS/L',1,'N',460 +144093,'1234567','SFO','BOS',1320,2322,'US',30,'FYBHQ','72S','L',1,'N',422 +144094,'1234567','SFO','BOS',1340,2202,'UA',20,'FYBMQ','D10','L',0,'N',322 +144095,'1234567','SFO','BOS',1530,153,'DL',162,'FYBMQ','757','D',1,'N',443 +144110,'1234567','SFO','BWI',755,1737,'US',2153,'FYBHQ','733','B',1,'N',402 +144143,'1234567','SFO','DEN',620,946,'UA',194,'FYBMQ','D10','B',0,'N',146 +144144,'1234567','SFO','DEN',650,1017,'CO',1234,'FYQHK','M80','B',0,'N',147 +144145,'-----6-','SFO','DEN',900,1223,'UA',888,'FYBMQ','727','B',0,'N',143 +144146,'12345--','SFO','DEN',900,1223,'UA',880,'FYBMQ','727','B',0,'N',143 +144147,'1234567','SFO','DEN',915,1244,'CO',64,'FYQHK','72S','B',0,'N',149 +144148,'1234567','SFO','DEN',1108,1428,'UA',820,'FCYBM','D10','L',0,'N',140 +144149,'1234567','SFO','DEN',1155,1523,'CO',1212,'FYQHK','733','L',0,'N',148 +144150,'1234567','SFO','DEN',1431,1753,'UA',178,'FYBMQ','D8S','S',0,'N',142 +144152,'12345-7','SFO','DEN',1520,1850,'CO',886,'FYQHK','733','S',0,'N',150 +144151,'-----6-','SFO','DEN',1520,1850,'CO',886,'FYQHK','72S','S',0,'N',150 +144153,'1234567','SFO','DEN',1825,2143,'UA',346,'FYBMQ','73S','D',0,'N',138 +144155,'1234567','SFO','DFW',20,522,'DL',374,'FNYNBNMQ','757','S',0,'N',182 +144156,'1234567','SFO','DFW',30,548,'AA',928,'FNYNBMV','767','',0,'N',198 +144157,'1234567','SFO','DFW',645,1204,'AA',504,'FYBMV','M80','B',0,'N',199 +144158,'1234567','SFO','DFW',700,1221,'DL',838,'FYBMQ','767','B',0,'N',201 +144159,'1234567','SFO','DFW',800,1315,'AA',70,'FYBMV','D10','B',0,'N',195 +144160,'-----6-','SFO','DFW',900,1555,'UA',888,'FYBMQ','727','BS',1,'N',295 +144161,'12345--','SFO','DFW',900,1555,'UA',880,'FYBMQ','727','BS',1,'N',295 +144162,'1234567','SFO','DFW',945,1503,'AA',986,'FYBMV','767','B',0,'N',198 +144163,'1234567','SFO','DFW',1059,1612,'DL',1014,'FYBMQ','757','L',0,'N',193 +144164,'1234567','SFO','DFW',1105,1622,'AA',288,'FYBMV','D10','L',0,'N',197 +144165,'1234567','SFO','DFW',1240,1808,'UA',478,'FYBMQ','733','L',0,'N',208 +144166,'1234567','SFO','DFW',1349,1910,'AA',404,'FYBMV','D10','L',0,'N',201 +144167,'1234567','SFO','DFW',1425,1937,'DL',180,'FYBMQ','767','L',0,'N',192 +144168,'1234567','SFO','DFW',1655,2215,'AA',264,'FYBMV','767','D',0,'N',200 +144169,'1234567','SFO','DFW',1750,2258,'DL',852,'FYBMQ','757','D',0,'N',188 +144477,'1234567','SFO','OAK',1250,1319,'AA',5302,'YBMVQ','SWM','',0,'Y',29 +144478,'-----6-','SFO','OAK',1749,1809,'AA',5130,'YBMVQ','SWM','',0,'Y',20 +144479,'-----6-','SFO','OAK',1831,1853,'AA',5111,'YBMVQ','SWM','',0,'Y',22 +144480,'12345-7','SFO','OAK',2221,2247,'AA',5104,'YNBMVQ','SWM','',0,'Y',26 +144541,'1234567','SFO','PHL',810,1608,'UA',130,'FYBMQ','D8S','B',0,'N',298 +144543,'1234567','SFO','PHL',1125,2100,'US',166,'FYBHQ','733','L',1,'N',395 +144547,'1234567','SFO','PHL',1330,2141,'UA',94,'FYBMQ','767','L',0,'N',311 +144572,'1234567','SFO','PIT',755,1534,'US',2153,'FYBHQ','733','B',0,'N',279 +144574,'1234567','SFO','PIT',1125,1856,'US',166,'FYBHQ','733','L',0,'N',271 +144575,'1234567','SFO','PIT',1320,2046,'US',30,'FYBHQ','72S','L',0,'N',266 +144576,'1234567','SFO','PIT',2355,726,'US',604,'FYBHQ','733','D',0,'N',271 diff --git a/database/sql-bench/Data/ATIS/flight_class.txt b/database/sql-bench/Data/ATIS/flight_class.txt new file mode 100644 index 0000000..fb8bd24 --- /dev/null +++ b/database/sql-bench/Data/ATIS/flight_class.txt @@ -0,0 +1,2895 @@ +101909,'FN' +101909,'YN' +101909,'BN' +101909,'M' +101909,'Q' +101910,'F' +101910,'Y' +101910,'H' +101910,'Q' +101910,'K' +101911,'F' +101911,'Y' +101911,'H' +101911,'Q' +101911,'K' +101912,'F' +101912,'Y' +101912,'B' +101912,'M' +101912,'Q' +101914,'Y' +101914,'H' +101914,'Q' +101914,'K' +101914,'L' +101915,'F' +101915,'Y' +101915,'H' +101915,'Q' +101915,'K' +101916,'F' +101916,'Y' +101916,'B' +101916,'M' +101916,'Q' +101917,'F' +101917,'Y' +101917,'B' +101917,'M' +101917,'Q' +101918,'F' +101918,'Y' +101918,'H' +101918,'Q' +101918,'K' +101922,'F' +101922,'Y' +101922,'B' +101922,'M' +101922,'Q' +101923,'F' +101923,'Y' +101923,'H' +101923,'Q' +101923,'K' +101925,'F' +101925,'Y' +101925,'B' +101925,'M' +101925,'Q' +101926,'F' +101926,'Y' +101926,'H' +101926,'Q' +101926,'K' +101927,'F' +101927,'Y' +101927,'B' +101927,'M' +101927,'Q' +101928,'F' +101928,'Y' +101928,'B' +101928,'M' +101928,'Q' +101929,'FN' +101929,'YN' +101929,'BN' +101929,'M' +101929,'Q' +101951,'F' +101951,'Y' +101951,'H' +101951,'Q' +101951,'K' +101952,'F' +101952,'Y' +101952,'B' +101952,'M' +101952,'Q' +101953,'F' +101953,'Y' +101953,'B' +101953,'M' +101953,'Q' +101954,'F' +101954,'Y' +101954,'H' +101954,'Q' +101954,'K' +101955,'F' +101955,'Y' +101955,'B' +101955,'M' +101955,'Q' +101956,'F' +101956,'Y' +101956,'H' +101956,'Q' +101956,'K' +101957,'F' +101957,'Y' +101957,'H' +101957,'Q' +101957,'K' +101958,'F' +101958,'Y' +101958,'B' +101958,'M' +101958,'Q' +101959,'FN' +101959,'YN' +101959,'H' +101959,'QN' +101959,'K' +102122,'F' +102122,'Y' +102122,'B' +102122,'M' +102122,'Q' +102123,'F' +102123,'Y' +102123,'H' +102123,'Q' +102123,'K' +102125,'F' +102125,'Y' +102125,'B' +102125,'M' +102125,'Q' +102126,'F' +102126,'Y' +102126,'B' +102126,'M' +102126,'Q' +102127,'F' +102127,'Y' +102127,'B' +102127,'M' +102127,'Q' +102128,'F' +102128,'Y' +102128,'H' +102128,'Q' +102128,'K' +102129,'F' +102129,'Y' +102129,'B' +102129,'M' +102129,'Q' +102133,'F' +102133,'Y' +102133,'B' +102133,'M' +102133,'Q' +102134,'FN' +102134,'YN' +102134,'H' +102134,'QN' +102134,'K' +102135,'FN' +102135,'YN' +102135,'BN' +102135,'M' +102135,'Q' +102136,'FN' +102136,'YN' +102136,'BN' +102136,'M' +102136,'Q' +102137,'FN' +102137,'YN' +102137,'BN' +102137,'M' +102137,'Q' +102139,'F' +102139,'Y' +102139,'B' +102139,'M' +102139,'V' +102144,'F' +102144,'Y' +102144,'B' +102144,'M' +102144,'Q' +102147,'F' +102147,'Y' +102147,'B' +102147,'M' +102147,'V' +102148,'F' +102148,'Y' +102148,'B' +102148,'M' +102148,'Q' +102150,'F' +102150,'Y' +102150,'B' +102150,'M' +102150,'Q' +102162,'F' +102162,'Y' +102162,'B' +102162,'M' +102162,'Q' +102163,'F' +102163,'Y' +102163,'B' +102163,'M' +102163,'Q' +102164,'F' +102164,'Y' +102164,'B' +102164,'M' +102164,'V' +102165,'F' +102165,'C' +102165,'B' +102165,'M' +102165,'K' +102166,'F' +102166,'Y' +102166,'B' +102166,'M' +102166,'Q' +102172,'F' +102172,'Y' +102172,'B' +102172,'M' +102172,'V' +102173,'F' +102173,'Y' +102173,'B' +102173,'M' +102173,'Q' +102177,'F' +102177,'Y' +102177,'B' +102177,'M' +102177,'Q' +102188,'FN' +102188,'YN' +102188,'B' +102188,'M' +102188,'V' +102190,'FN' +102190,'YN' +102190,'BN' +102190,'M' +102190,'Q' +102191,'FN' +102191,'YN' +102191,'BN' +102191,'M' +102191,'Q' +102192,'FN' +102192,'YN' +102192,'BN' +102192,'M' +102192,'Q' +102766,'FN' +102766,'YN' +102766,'BN' +102766,'M' +102766,'Q' +102767,'F' +102767,'Y' +102767,'B' +102767,'H' +102767,'Q' +102768,'F' +102768,'Y' +102768,'H' +102768,'Q' +102768,'K' +102769,'F' +102769,'Y' +102769,'H' +102769,'Q' +102769,'K' +102770,'F' +102770,'Y' +102770,'B' +102770,'M' +102770,'Q' +102771,'F' +102771,'Y' +102771,'B' +102771,'H' +102771,'Q' +102772,'F' +102772,'Y' +102772,'H' +102772,'Q' +102772,'K' +102773,'F' +102773,'Y' +102773,'B' +102773,'M' +102773,'Q' +102774,'F' +102774,'Y' +102774,'H' +102774,'Q' +102774,'K' +102775,'F' +102775,'Y' +102775,'H' +102775,'Q' +102775,'K' +102776,'F' +102776,'Y' +102776,'B' +102776,'M' +102776,'Q' +102777,'F' +102777,'Y' +102777,'B' +102777,'H' +102777,'Q' +102778,'F' +102778,'Y' +102778,'H' +102778,'Q' +102778,'K' +102779,'F' +102779,'Y' +102779,'B' +102779,'M' +102779,'Q' +102781,'F' +102781,'Y' +102781,'H' +102781,'Q' +102781,'K' +102782,'F' +102782,'Y' +102782,'B' +102782,'M' +102782,'Q' +102783,'FN' +102783,'YN' +102783,'H' +102783,'QN' +102783,'K' +102784,'FN' +102784,'YN' +102784,'BN' +102784,'M' +102784,'Q' +102795,'F' +102795,'Y' +102795,'B' +102795,'H' +102795,'Q' +102796,'F' +102796,'Y' +102796,'B' +102796,'M' +102796,'Q' +102797,'F' +102797,'Y' +102797,'H' +102797,'Q' +102797,'K' +102798,'F' +102798,'Y' +102798,'B' +102798,'H' +102798,'Q' +102799,'F' +102799,'Y' +102799,'H' +102799,'Q' +102799,'K' +102800,'F' +102800,'Y' +102800,'B' +102800,'M' +102800,'Q' +102801,'F' +102801,'Y' +102801,'B' +102801,'H' +102801,'Q' +102802,'F' +102802,'Y' +102802,'B' +102802,'M' +102802,'Q' +102803,'F' +102803,'Y' +102803,'B' +102803,'M' +102803,'Q' +102804,'Y' +102804,'H' +102804,'Q' +102804,'K' +102804,'L' +102805,'F' +102805,'Y' +102805,'B' +102805,'H' +102805,'Q' +102806,'F' +102806,'Y' +102806,'H' +102806,'Q' +102806,'K' +102807,'F' +102807,'Y' +102807,'B' +102807,'M' +102807,'Q' +102808,'FN' +102808,'YN' +102808,'H' +102808,'QN' +102808,'K' +102809,'FN' +102809,'YN' +102809,'BN' +102809,'M' +102809,'Q' +102923,'F' +102923,'Y' +102923,'B' +102923,'M' +102923,'Q' +102924,'F' +102924,'Y' +102924,'B' +102924,'M' +102924,'Q' +102925,'F' +102925,'Y' +102925,'H' +102925,'Q' +102925,'K' +102927,'F' +102927,'Y' +102927,'B' +102927,'M' +102927,'Q' +102929,'F' +102929,'Y' +102929,'B' +102929,'M' +102929,'Q' +102930,'F' +102930,'Y' +102930,'H' +102930,'Q' +102930,'K' +102932,'F' +102932,'Y' +102932,'B' +102932,'M' +102932,'Q' +102933,'F' +102933,'Y' +102933,'H' +102933,'Q' +102933,'K' +105584,'F' +105584,'Y' +105584,'B' +105584,'M' +105584,'Q' +105586,'FN' +105586,'YN' +105586,'H' +105586,'QN' +105586,'K' +105588,'F' +105588,'Y' +105588,'B' +105588,'M' +105588,'Q' +105589,'F' +105589,'Y' +105589,'H' +105589,'Q' +105589,'K' +105590,'F' +105590,'Y' +105590,'B' +105590,'M' +105590,'Q' +105591,'F' +105591,'Y' +105591,'H' +105591,'Q' +105591,'K' +105592,'F' +105592,'Y' +105592,'B' +105592,'M' +105592,'Q' +105593,'F' +105593,'Y' +105593,'H' +105593,'Q' +105593,'K' +105594,'Y' +105594,'H' +105594,'Q' +105594,'K' +105594,'L' +105595,'F' +105595,'Y' +105595,'B' +105595,'M' +105595,'Q' +105597,'F' +105597,'Y' +105597,'H' +105597,'Q' +105597,'K' +105598,'F' +105598,'Y' +105598,'H' +105598,'Q' +105598,'K' +105599,'F' +105599,'Y' +105599,'B' +105599,'M' +105599,'Q' +105601,'FN' +105601,'YN' +105601,'BN' +105601,'M' +105601,'Q' +105698,'F' +105698,'Y' +105698,'B' +105698,'H' +105698,'Q' +105699,'F' +105699,'Y' +105699,'B' +105699,'H' +105699,'Q' +105700,'F' +105700,'Y' +105700,'B' +105700,'H' +105700,'Q' +105701,'F' +105701,'Y' +105701,'B' +105701,'H' +105701,'Q' +105702,'F' +105702,'Y' +105702,'B' +105702,'H' +105702,'Q' +105703,'F' +105703,'Y' +105703,'B' +105703,'H' +105703,'Q' +105704,'F' +105704,'Y' +105704,'B' +105704,'H' +105704,'Q' +105705,'F' +105705,'Y' +105705,'B' +105705,'H' +105705,'Q' +105794,'F' +105794,'Y' +105794,'B' +105794,'M' +105794,'Q' +105795,'F' +105795,'Y' +105795,'B' +105795,'M' +105795,'Q' +105796,'F' +105796,'Y' +105796,'Q' +105796,'H' +105796,'K' +105798,'F' +105798,'Y' +105798,'Q' +105798,'H' +105798,'K' +105799,'F' +105799,'Y' +105799,'B' +105799,'M' +105799,'Q' +105800,'F' +105800,'Y' +105800,'Q' +105800,'H' +105800,'K' +105801,'F' +105801,'Y' +105801,'B' +105801,'M' +105801,'V' +105802,'F' +105802,'Y' +105802,'B' +105802,'M' +105802,'Q' +105803,'F' +105803,'Y' +105803,'B' +105803,'M' +105803,'V' +105805,'F' +105805,'Y' +105805,'B' +105805,'M' +105805,'Q' +105806,'F' +105806,'Y' +105806,'B' +105806,'M' +105806,'V' +105807,'F' +105807,'Y' +105807,'B' +105807,'M' +105807,'V' +105808,'F' +105808,'Y' +105808,'B' +105808,'M' +105808,'Q' +105811,'F' +105811,'Y' +105811,'B' +105811,'M' +105811,'V' +105812,'F' +105812,'Y' +105812,'B' +105812,'M' +105812,'Q' +106229,'F' +106229,'Y' +106229,'B' +106229,'H' +106229,'Q' +106230,'F' +106230,'Y' +106230,'M' +106230,'H' +106230,'Q' +106231,'F' +106231,'Y' +106231,'B' +106231,'H' +106231,'Q' +106232,'F' +106232,'Y' +106232,'B' +106232,'M' +106232,'Q' +106234,'F' +106234,'Y' +106234,'B' +106234,'H' +106234,'Q' +106235,'F' +106235,'Y' +106235,'M' +106235,'H' +106235,'Q' +106236,'F' +106236,'Y' +106236,'B' +106236,'H' +106236,'Q' +106237,'F' +106237,'Y' +106237,'B' +106237,'H' +106237,'Q' +106238,'F' +106238,'Y' +106238,'B' +106238,'M' +106238,'Q' +106239,'F' +106239,'Y' +106239,'M' +106239,'H' +106239,'Q' +106240,'F' +106240,'C' +106240,'B' +106240,'M' +106240,'K' +106241,'F' +106241,'Y' +106241,'M' +106241,'H' +106241,'Q' +106242,'F' +106242,'Y' +106242,'B' +106242,'M' +106242,'Q' +106245,'F' +106245,'Y' +106245,'B' +106245,'H' +106245,'Q' +106246,'F' +106246,'Y' +106246,'B' +106246,'H' +106246,'Q' +106247,'F' +106247,'Y' +106247,'B' +106247,'H' +106247,'Q' +106248,'F' +106248,'Y' +106248,'B' +106248,'M' +106248,'Q' +106249,'F' +106249,'Y' +106249,'M' +106249,'H' +106249,'Q' +106250,'F' +106250,'Y' +106250,'B' +106250,'H' +106250,'Q' +106251,'F' +106251,'Y' +106251,'B' +106251,'H' +106251,'Q' +106252,'F' +106252,'Y' +106252,'M' +106252,'H' +106252,'Q' +106253,'F' +106253,'Y' +106253,'B' +106253,'H' +106253,'Q' +106254,'F' +106254,'Y' +106254,'B' +106254,'M' +106254,'Q' +106255,'F' +106255,'Y' +106255,'B' +106255,'H' +106255,'Q' +106263,'F' +106263,'Y' +106263,'B' +106263,'H' +106263,'Q' +106264,'F' +106264,'Y' +106264,'B' +106264,'H' +106264,'Q' +106265,'F' +106265,'Y' +106265,'B' +106265,'H' +106265,'Q' +106266,'F' +106266,'Y' +106266,'B' +106266,'H' +106266,'Q' +106267,'F' +106267,'Y' +106267,'B' +106267,'H' +106267,'Q' +106268,'F' +106268,'Y' +106268,'B' +106268,'H' +106268,'Q' +106269,'F' +106269,'Y' +106269,'B' +106269,'H' +106269,'Q' +106271,'F' +106271,'Y' +106271,'B' +106271,'H' +106271,'Q' +106365,'F' +106365,'Y' +106365,'B' +106365,'M' +106365,'Q' +106376,'F' +106376,'Y' +106376,'B' +106376,'M' +106376,'Q' +106377,'F' +106377,'C' +106377,'Y' +106377,'B' +106377,'Q' +107159,'FN' +107159,'YN' +107159,'BN' +107159,'M' +107159,'Q' +107160,'FN' +107160,'YN' +107160,'H' +107160,'QN' +107160,'K' +107161,'F' +107161,'Y' +107161,'H' +107161,'Q' +107161,'K' +107162,'F' +107162,'Y' +107162,'B' +107162,'M' +107162,'Q' +107163,'F' +107163,'Y' +107163,'H' +107163,'Q' +107163,'K' +107164,'F' +107164,'Y' +107164,'H' +107164,'Q' +107164,'K' +107165,'F' +107165,'Y' +107165,'B' +107165,'M' +107165,'Q' +107166,'F' +107166,'Y' +107166,'B' +107166,'M' +107166,'Q' +107167,'F' +107167,'Y' +107167,'H' +107167,'Q' +107167,'K' +107168,'F' +107168,'Y' +107168,'B' +107168,'M' +107168,'Q' +107193,'F' +107193,'Y' +107193,'B' +107193,'H' +107193,'Q' +107194,'F' +107194,'Y' +107194,'B' +107194,'H' +107194,'Q' +107195,'F' +107195,'Y' +107195,'B' +107195,'H' +107195,'Q' +107196,'F' +107196,'Y' +107196,'B' +107196,'H' +107196,'Q' +107197,'F' +107197,'Y' +107197,'B' +107197,'H' +107197,'Q' +107198,'F' +107198,'Y' +107198,'B' +107198,'H' +107198,'Q' +107199,'F' +107199,'Y' +107199,'B' +107199,'H' +107199,'Q' +107200,'F' +107200,'Y' +107200,'B' +107200,'H' +107200,'Q' +107254,'F' +107254,'Y' +107254,'B' +107254,'M' +107254,'Q' +107255,'F' +107255,'Y' +107255,'B' +107255,'H' +107255,'Q' +107256,'F' +107256,'Y' +107256,'B' +107256,'M' +107256,'Q' +107257,'F' +107257,'Y' +107257,'B' +107257,'M' +107257,'V' +107258,'F' +107258,'Y' +107258,'B' +107258,'M' +107258,'Q' +107259,'F' +107259,'Y' +107259,'B' +107259,'M' +107259,'V' +107260,'F' +107260,'Y' +107260,'B' +107260,'M' +107260,'V' +107261,'F' +107261,'Y' +107261,'B' +107261,'M' +107261,'Q' +107264,'F' +107264,'Y' +107264,'B' +107264,'M' +107264,'V' +107470,'Y' +107470,'B' +107470,'H' +107470,'Q' +107470,'M' +107471,'Y' +107471,'B' +107471,'H' +107471,'Q' +107471,'M' +107472,'Y' +107472,'B' +107472,'H' +107472,'Q' +107472,'M' +107473,'Y' +107473,'B' +107473,'H' +107473,'Q' +107473,'M' +107474,'Y' +107474,'B' +107474,'H' +107474,'Q' +107474,'M' +107475,'Y' +107475,'B' +107475,'H' +107475,'Q' +107475,'M' +107476,'Y' +107476,'B' +107476,'H' +107476,'Q' +107476,'M' +107477,'Y' +107477,'B' +107477,'H' +107477,'Q' +107477,'M' +107478,'Y' +107478,'B' +107478,'H' +107478,'Q' +107478,'M' +107484,'F' +107484,'Y' +107484,'B' +107484,'H' +107484,'Q' +107485,'F' +107485,'Y' +107485,'B' +107485,'H' +107485,'Q' +107486,'F' +107486,'Y' +107486,'B' +107486,'H' +107486,'Q' +107487,'F' +107487,'Y' +107487,'B' +107487,'H' +107487,'Q' +107488,'F' +107488,'Y' +107488,'B' +107488,'H' +107488,'Q' +107489,'F' +107489,'Y' +107489,'B' +107489,'H' +107489,'Q' +107490,'F' +107490,'Y' +107490,'B' +107490,'H' +107490,'Q' +107491,'F' +107491,'Y' +107491,'B' +107491,'H' +107491,'Q' +107492,'F' +107492,'Y' +107492,'B' +107492,'H' +107492,'Q' +111886,'FN' +111886,'YN' +111886,'BN' +111886,'M' +111886,'Q' +111887,'FN' +111887,'YN' +111887,'H' +111887,'QN' +111887,'K' +111888,'F' +111888,'Y' +111888,'B' +111888,'M' +111888,'Q' +111889,'F' +111889,'Y' +111889,'H' +111889,'Q' +111889,'K' +111891,'F' +111891,'Y' +111891,'B' +111891,'M' +111891,'Q' +111892,'F' +111892,'Y' +111892,'B' +111892,'M' +111892,'Q' +111893,'F' +111893,'Y' +111893,'H' +111893,'Q' +111893,'K' +111894,'F' +111894,'Y' +111894,'B' +111894,'M' +111894,'Q' +111895,'F' +111895,'Y' +111895,'B' +111895,'M' +111895,'Q' +111896,'F' +111896,'Y' +111896,'B' +111896,'M' +111896,'Q' +111928,'F' +111928,'Y' +111928,'B' +111928,'M' +111928,'Q' +111929,'F' +111929,'Y' +111929,'Q' +111929,'H' +111929,'K' +111931,'F' +111931,'Y' +111931,'B' +111931,'M' +111931,'Q' +111932,'F' +111932,'Y' +111932,'Q' +111932,'H' +111932,'K' +111933,'F' +111933,'Y' +111933,'Q' +111933,'H' +111933,'K' +111937,'F' +111937,'Y' +111937,'B' +111937,'M' +111937,'Q' +111939,'F' +111939,'Y' +111939,'B' +111939,'H' +111939,'Q' +111941,'F' +111941,'Y' +111941,'B' +111941,'M' +111941,'Q' +112028,'FN' +112028,'YN' +112028,'B' +112028,'M' +112028,'V' +112029,'F' +112029,'Y' +112029,'B' +112029,'M' +112029,'Q' +112030,'FN' +112030,'YN' +112030,'BN' +112030,'M' +112030,'Q' +112031,'FN' +112031,'YN' +112031,'BN' +112031,'M' +112031,'Q' +112032,'F' +112032,'Y' +112032,'B' +112032,'M' +112032,'V' +112033,'F' +112033,'Y' +112033,'B' +112033,'M' +112033,'Q' +112034,'F' +112034,'Y' +112034,'B' +112034,'M' +112034,'Q' +112035,'F' +112035,'Y' +112035,'B' +112035,'M' +112035,'V' +112036,'F' +112036,'Y' +112036,'Q' +112036,'H' +112036,'K' +112037,'F' +112037,'Y' +112037,'B' +112037,'M' +112037,'V' +112038,'F' +112038,'Y' +112038,'B' +112038,'M' +112038,'Q' +112039,'F' +112039,'Y' +112039,'B' +112039,'M' +112039,'Q' +112040,'F' +112040,'Y' +112040,'B' +112040,'M' +112040,'Q' +112041,'F' +112041,'Y' +112041,'Q' +112041,'H' +112041,'K' +112042,'F' +112042,'Y' +112042,'B' +112042,'M' +112042,'V' +112043,'F' +112043,'Y' +112043,'B' +112043,'M' +112043,'Q' +112044,'F' +112044,'Y' +112044,'Q' +112044,'H' +112044,'K' +112045,'F' +112045,'Y' +112045,'B' +112045,'M' +112045,'V' +112046,'F' +112046,'Y' +112046,'B' +112046,'M' +112046,'Q' +112047,'F' +112047,'Y' +112047,'B' +112047,'M' +112047,'Q' +112048,'F' +112048,'Y' +112048,'B' +112048,'M' +112048,'V' +112049,'F' +112049,'Y' +112049,'B' +112049,'M' +112049,'Q' +112050,'F' +112050,'Y' +112050,'Q' +112050,'H' +112050,'K' +112051,'FN' +112051,'YN' +112051,'BN' +112051,'M' +112051,'Q' +112052,'FN' +112052,'YN' +112052,'B' +112052,'M' +112052,'V' +112351,'F' +112351,'Y' +112351,'B' +112351,'M' +112351,'Q' +112352,'F' +112352,'Y' +112352,'B' +112352,'M' +112352,'Q' +112353,'F' +112353,'Y' +112353,'B' +112353,'M' +112353,'Q' +112354,'F' +112354,'Y' +112354,'B' +112354,'M' +112354,'Q' +112415,'F' +112415,'Y' +112415,'B' +112415,'M' +112415,'Q' +112416,'F' +112416,'Y' +112416,'Q' +112416,'H' +112416,'K' +112417,'F' +112417,'Y' +112417,'B' +112417,'M' +112417,'Q' +112418,'F' +112418,'Y' +112418,'Q' +112418,'H' +112418,'K' +112440,'F' +112440,'Y' +112440,'B' +112440,'H' +112440,'Q' +112441,'F' +112441,'Y' +112441,'B' +112441,'H' +112441,'Q' +112442,'F' +112442,'Y' +112442,'B' +112442,'H' +112442,'Q' +112513,'F' +112513,'C' +112513,'Y' +112513,'B' +112513,'M' +112514,'F' +112514,'Y' +112514,'Q' +112514,'H' +112514,'K' +112515,'F' +112515,'Y' +112515,'B' +112515,'M' +112515,'Q' +112516,'F' +112516,'Y' +112516,'B' +112516,'M' +112516,'Q' +112518,'F' +112518,'Y' +112518,'Q' +112518,'H' +112518,'K' +112519,'F' +112519,'Y' +112519,'Q' +112519,'H' +112519,'K' +112520,'F' +112520,'Y' +112520,'B' +112520,'M' +112520,'Q' +112524,'F' +112524,'Y' +112524,'B' +112524,'M' +112524,'Q' +112525,'F' +112525,'Y' +112525,'Q' +112525,'H' +112525,'K' +112526,'F' +112526,'Y' +112526,'B' +112526,'M' +112526,'Q' +112527,'F' +112527,'Q' +112527,'YN' +112527,'H' +112527,'K' +112766,'F' +112766,'Y' +112766,'B' +112766,'M' +112766,'Q' +112771,'FN' +112771,'YN' +112771,'B' +112771,'M' +112771,'V' +112772,'F' +112772,'Y' +112772,'B' +112772,'M' +112772,'Q' +112773,'F' +112773,'Y' +112773,'B' +112773,'M' +112773,'Q' +112777,'F' +112777,'Y' +112777,'B' +112777,'M' +112777,'Q' +112783,'F' +112783,'Y' +112783,'B' +112783,'M' +112783,'V' +112784,'F' +112784,'Y' +112784,'B' +112784,'M' +112784,'Q' +112789,'F' +112789,'Y' +112789,'B' +112789,'M' +112789,'V' +112790,'F' +112790,'Y' +112790,'B' +112790,'M' +112790,'Q' +112793,'F' +112793,'Y' +112793,'B' +112793,'M' +112793,'Q' +112794,'F' +112794,'Y' +112794,'B' +112794,'M' +112794,'Q' +112797,'F' +112797,'C' +112797,'B' +112797,'M' +112797,'K' +112798,'F' +112798,'Y' +112798,'B' +112798,'M' +112798,'V' +112802,'F' +112802,'Y' +112802,'B' +112802,'M' +112802,'Q' +112804,'FN' +112804,'YN' +112804,'B' +112804,'M' +112804,'V' +112805,'F' +112805,'Y' +112805,'B' +112805,'M' +112805,'Q' +112806,'FN' +112806,'YN' +112806,'BN' +112806,'M' +112806,'Q' +112807,'FN' +112807,'YN' +112807,'B' +112807,'M' +112807,'V' +112808,'FN' +112808,'YN' +112808,'BN' +112808,'M' +112808,'Q' +112864,'F' +112864,'Y' +112864,'B' +112864,'M' +112864,'V' +112866,'F' +112866,'Y' +112866,'B' +112866,'M' +112866,'Q' +112867,'F' +112867,'Y' +112867,'B' +112867,'M' +112867,'Q' +112869,'F' +112869,'Y' +112869,'B' +112869,'M' +112869,'V' +112870,'F' +112870,'Y' +112870,'B' +112870,'M' +112870,'Q' +112872,'F' +112872,'Y' +112872,'B' +112872,'M' +112872,'V' +112873,'F' +112873,'Y' +112873,'B' +112873,'M' +112873,'Q' +112874,'F' +112874,'Y' +112874,'B' +112874,'M' +112874,'V' +112903,'F' +112903,'Y' +112903,'B' +112903,'M' +112903,'V' +112904,'F' +112904,'Y' +112904,'B' +112904,'M' +112904,'Q' +112905,'F' +112905,'Y' +112905,'B' +112905,'M' +112905,'V' +112907,'F' +112907,'Y' +112907,'B' +112907,'M' +112907,'Q' +112908,'F' +112908,'Y' +112908,'B' +112908,'M' +112908,'V' +112909,'F' +112909,'Y' +112909,'B' +112909,'M' +112909,'V' +112989,'F' +112989,'Y' +112989,'Q' +112989,'H' +112989,'K' +112990,'F' +112990,'Y' +112990,'B' +112990,'M' +112990,'V' +112991,'F' +112991,'Y' +112991,'B' +112991,'M' +112991,'Q' +112992,'F' +112992,'Y' +112992,'B' +112992,'M' +112992,'Q' +112993,'F' +112993,'Y' +112993,'B' +112993,'M' +112993,'V' +112994,'F' +112994,'Y' +112994,'B' +112994,'M' +112994,'Q' +112995,'F' +112995,'Y' +112995,'B' +112995,'M' +112995,'V' +112996,'F' +112996,'Y' +112996,'Q' +112996,'H' +112996,'K' +112997,'F' +112997,'Y' +112997,'Q' +112997,'H' +112997,'K' +112998,'F' +112998,'Y' +112998,'B' +112998,'M' +112998,'Q' +112999,'F' +112999,'Y' +112999,'B' +112999,'M' +112999,'V' +113000,'F' +113000,'Y' +113000,'B' +113000,'M' +113000,'Q' +113001,'F' +113001,'Y' +113001,'B' +113001,'M' +113001,'Q' +113002,'F' +113002,'Y' +113002,'B' +113002,'M' +113002,'V' +113003,'F' +113003,'Y' +113003,'B' +113003,'M' +113003,'Q' +113004,'F' +113004,'Y' +113004,'B' +113004,'M' +113004,'Q' +113005,'F' +113005,'Y' +113005,'B' +113005,'M' +113005,'V' +113006,'F' +113006,'Y' +113006,'Q' +113006,'H' +113006,'K' +113007,'FN' +113007,'YN' +113007,'B' +113007,'M' +113007,'V' +113008,'F' +113008,'Y' +113008,'B' +113008,'M' +113008,'Q' +113009,'F' +113009,'Y' +113009,'B' +113009,'M' +113009,'Q' +113010,'F' +113010,'Y' +113010,'Q' +113010,'H' +113010,'K' +113011,'FN' +113011,'YN' +113011,'B' +113011,'M' +113011,'V' +113012,'FN' +113012,'YN' +113012,'BN' +113012,'M' +113012,'Q' +113013,'FN' +113013,'YN' +113013,'BN' +113013,'M' +113013,'Q' +113498,'F' +113498,'Y' +113498,'B' +113498,'M' +113498,'V' +113500,'F' +113500,'Y' +113500,'B' +113500,'M' +113500,'V' +113501,'FN' +113501,'YN' +113501,'B' +113501,'M' +113501,'V' +113576,'F' +113576,'Y' +113576,'B' +113576,'M' +113576,'V' +113577,'F' +113577,'Y' +113577,'B' +113577,'M' +113577,'Q' +113578,'F' +113578,'Y' +113578,'B' +113578,'M' +113578,'V' +113579,'F' +113579,'Y' +113579,'B' +113579,'M' +113579,'Q' +113581,'F' +113581,'Y' +113581,'B' +113581,'M' +113581,'V' +113582,'F' +113582,'Y' +113582,'B' +113582,'M' +113582,'V' +113583,'FN' +113583,'YN' +113583,'BN' +113583,'M' +113583,'Q' +113595,'F' +113595,'Y' +113595,'B' +113595,'M' +113595,'V' +113596,'F' +113596,'Y' +113596,'B' +113596,'H' +113596,'Q' +113597,'F' +113597,'Y' +113597,'B' +113597,'H' +113597,'Q' +113599,'F' +113599,'Y' +113599,'B' +113599,'M' +113599,'V' +113600,'F' +113600,'Y' +113600,'B' +113600,'H' +113600,'Q' +113602,'F' +113602,'Y' +113602,'B' +113602,'M' +113602,'V' +113705,'F' +113705,'Y' +113705,'B' +113705,'M' +113705,'Q' +113706,'F' +113706,'Y' +113706,'B' +113706,'M' +113706,'V' +113707,'F' +113707,'Y' +113707,'B' +113707,'M' +113707,'Q' +113709,'F' +113709,'Y' +113709,'B' +113709,'M' +113709,'V' +113711,'F' +113711,'Y' +113711,'B' +113711,'M' +113711,'V' +113712,'F' +113712,'Y' +113712,'B' +113712,'M' +113712,'Q' +113715,'F' +113715,'Y' +113715,'B' +113715,'M' +113715,'Q' +113716,'F' +113716,'Y' +113716,'B' +113716,'M' +113716,'V' +113717,'F' +113717,'Y' +113717,'B' +113717,'M' +113717,'V' +113718,'F' +113718,'Y' +113718,'B' +113718,'M' +113718,'V' +113719,'F' +113719,'Y' +113719,'B' +113719,'M' +113719,'Q' +113720,'FN' +113720,'YN' +113720,'B' +113720,'M' +113720,'V' +113721,'FN' +113721,'YN' +113721,'BN' +113721,'M' +113721,'Q' +133430,'F' +133430,'Y' +133430,'B' +133430,'M' +133430,'Q' +133431,'F' +133431,'Y' +133431,'B' +133431,'M' +133431,'Q' +133432,'F' +133432,'Y' +133432,'B' +133432,'M' +133432,'Q' +133433,'F' +133433,'Y' +133433,'B' +133433,'M' +133433,'Q' +133434,'FN' +133434,'YN' +133434,'B' +133434,'M' +133434,'V' +133435,'F' +133435,'Y' +133435,'B' +133435,'M' +133435,'V' +133436,'F' +133436,'Y' +133436,'B' +133436,'M' +133436,'V' +133567,'YN' +133567,'B' +133567,'M' +133567,'V' +133567,'Q' +133568,'Y' +133568,'B' +133568,'M' +133568,'V' +133568,'Q' +133569,'Y' +133569,'B' +133569,'M' +133569,'V' +133569,'Q' +137221,'FN' +137221,'YN' +137221,'BN' +137221,'M' +137221,'Q' +137222,'FN' +137222,'YN' +137222,'H' +137222,'QN' +137222,'K' +137223,'F' +137223,'Y' +137223,'H' +137223,'Q' +137223,'K' +137224,'F' +137224,'Y' +137224,'B' +137224,'M' +137224,'Q' +137225,'F' +137225,'Y' +137225,'B' +137225,'H' +137225,'Q' +137226,'F' +137226,'Y' +137226,'H' +137226,'Q' +137226,'K' +137227,'F' +137227,'Y' +137227,'H' +137227,'Q' +137227,'K' +137228,'F' +137228,'Y' +137228,'B' +137228,'M' +137228,'Q' +137229,'F' +137229,'Y' +137229,'H' +137229,'Q' +137229,'K' +137230,'F' +137230,'Y' +137230,'B' +137230,'M' +137230,'Q' +137231,'F' +137231,'Y' +137231,'B' +137231,'H' +137231,'Q' +137232,'F' +137232,'Y' +137232,'H' +137232,'Q' +137232,'K' +137233,'F' +137233,'Y' +137233,'B' +137233,'M' +137233,'Q' +137234,'F' +137234,'Y' +137234,'H' +137234,'Q' +137234,'K' +137235,'F' +137235,'Y' +137235,'B' +137235,'M' +137235,'Q' +137236,'F' +137236,'Y' +137236,'H' +137236,'Q' +137236,'K' +137237,'F' +137237,'Y' +137237,'B' +137237,'H' +137237,'Q' +137238,'F' +137238,'Y' +137238,'B' +137238,'M' +137238,'Q' +137315,'F' +137315,'Y' +137315,'B' +137315,'M' +137315,'Q' +137316,'F' +137316,'Y' +137316,'B' +137316,'H' +137316,'Q' +137317,'F' +137317,'Y' +137317,'M' +137317,'H' +137317,'Q' +137318,'F' +137318,'Y' +137318,'B' +137318,'H' +137318,'Q' +137319,'F' +137319,'Y' +137319,'B' +137319,'M' +137319,'Q' +137320,'F' +137320,'Y' +137320,'B' +137320,'H' +137320,'Q' +137321,'F' +137321,'Y' +137321,'M' +137321,'H' +137321,'Q' +137322,'F' +137322,'Y' +137322,'M' +137322,'H' +137322,'Q' +137323,'F' +137323,'Y' +137323,'B' +137323,'M' +137323,'Q' +137324,'F' +137324,'Y' +137324,'B' +137324,'H' +137324,'Q' +137326,'F' +137326,'Y' +137326,'B' +137326,'H' +137326,'Q' +137327,'F' +137327,'Y' +137327,'B' +137327,'H' +137327,'Q' +137328,'F' +137328,'Y' +137328,'M' +137328,'H' +137328,'Q' +137329,'F' +137329,'Y' +137329,'B' +137329,'H' +137329,'Q' +137330,'F' +137330,'C' +137330,'B' +137330,'M' +137330,'K' +137331,'F' +137331,'Y' +137331,'B' +137331,'M' +137331,'Q' +137332,'F' +137332,'Y' +137332,'M' +137332,'H' +137332,'Q' +137333,'F' +137333,'Y' +137333,'B' +137333,'H' +137333,'Q' +137334,'F' +137334,'Y' +137334,'B' +137334,'H' +137334,'Q' +137335,'F' +137335,'Y' +137335,'B' +137335,'H' +137335,'Q' +137336,'F' +137336,'Y' +137336,'B' +137336,'H' +137336,'Q' +137337,'F' +137337,'Y' +137337,'M' +137337,'H' +137337,'Q' +137338,'F' +137338,'Y' +137338,'B' +137338,'H' +137338,'Q' +137339,'FN' +137339,'YN' +137339,'BN' +137339,'M' +137339,'Q' +137353,'Y' +137353,'B' +137353,'H' +137353,'Q' +137353,'M' +137354,'Y' +137354,'B' +137354,'H' +137354,'Q' +137354,'M' +137355,'Y' +137355,'B' +137355,'H' +137355,'Q' +137355,'M' +137356,'Y' +137356,'B' +137356,'H' +137356,'Q' +137356,'M' +137357,'Y' +137357,'B' +137357,'H' +137357,'Q' +137357,'M' +137358,'Y' +137358,'B' +137358,'H' +137358,'Q' +137358,'M' +137359,'Y' +137359,'B' +137359,'H' +137359,'Q' +137359,'M' +137360,'Y' +137360,'B' +137360,'H' +137360,'Q' +137360,'M' +137361,'Y' +137361,'B' +137361,'H' +137361,'Q' +137361,'M' +137407,'F' +137407,'Y' +137407,'B' +137407,'M' +137407,'Q' +137408,'F' +137408,'Y' +137408,'Q' +137408,'H' +137408,'K' +137412,'F' +137412,'Y' +137412,'B' +137412,'M' +137412,'Q' +137413,'F' +137413,'Y' +137413,'Q' +137413,'H' +137413,'K' +137414,'F' +137414,'Y' +137414,'B' +137414,'M' +137414,'V' +137415,'F' +137415,'Y' +137415,'B' +137415,'M' +137415,'Q' +137417,'F' +137417,'Y' +137417,'B' +137417,'M' +137417,'V' +137419,'F' +137419,'Y' +137419,'B' +137419,'M' +137419,'Q' +137420,'F' +137420,'Y' +137420,'B' +137420,'M' +137420,'V' +137422,'F' +137422,'Y' +137422,'B' +137422,'M' +137422,'V' +137423,'F' +137423,'Y' +137423,'B' +137423,'M' +137423,'Q' +137732,'F' +137732,'Y' +137732,'B' +137732,'H' +137732,'Q' +137733,'F' +137733,'Y' +137733,'B' +137733,'H' +137733,'Q' +137734,'F' +137734,'Y' +137734,'B' +137734,'H' +137734,'Q' +137735,'F' +137735,'Y' +137735,'B' +137735,'H' +137735,'Q' +137736,'F' +137736,'Y' +137736,'B' +137736,'H' +137736,'Q' +137737,'F' +137737,'Y' +137737,'B' +137737,'H' +137737,'Q' +137738,'F' +137738,'Y' +137738,'B' +137738,'H' +137738,'Q' +137739,'F' +137739,'Y' +137739,'B' +137739,'H' +137739,'Q' +137740,'F' +137740,'Y' +137740,'B' +137740,'H' +137740,'Q' +137811,'F' +137811,'Y' +137811,'B' +137811,'M' +137811,'Q' +137817,'F' +137817,'Y' +137817,'B' +137817,'M' +137817,'Q' +138817,'FN' +138817,'YN' +138817,'BN' +138817,'M' +138817,'Q' +138818,'F' +138818,'Y' +138818,'H' +138818,'Q' +138818,'K' +138819,'Y' +138819,'H' +138819,'Q' +138819,'K' +138819,'L' +138820,'F' +138820,'Y' +138820,'B' +138820,'H' +138820,'Q' +138821,'F' +138821,'Y' +138821,'B' +138821,'M' +138821,'Q' +138822,'F' +138822,'Y' +138822,'H' +138822,'Q' +138822,'K' +138823,'F' +138823,'Y' +138823,'B' +138823,'M' +138823,'Q' +138824,'F' +138824,'Y' +138824,'B' +138824,'H' +138824,'Q' +138825,'Y' +138825,'H' +138825,'Q' +138825,'K' +138825,'L' +138827,'F' +138827,'Y' +138827,'B' +138827,'M' +138827,'Q' +138828,'F' +138828,'Y' +138828,'B' +138828,'H' +138828,'Q' +138829,'F' +138829,'Y' +138829,'H' +138829,'Q' +138829,'K' +138830,'FN' +138830,'YN' +138830,'BN' +138830,'M' +138830,'Q' +138831,'FN' +138831,'YN' +138831,'BN' +138831,'M' +138831,'Q' +138832,'F' +138832,'Y' +138832,'B' +138832,'H' +138832,'Q' +138860,'F' +138860,'Y' +138860,'B' +138860,'H' +138860,'Q' +138861,'F' +138861,'Y' +138861,'B' +138861,'H' +138861,'Q' +138862,'F' +138862,'Y' +138862,'B' +138862,'H' +138862,'Q' +138863,'F' +138863,'Y' +138863,'B' +138863,'H' +138863,'Q' +138864,'F' +138864,'Y' +138864,'B' +138864,'H' +138864,'Q' +138865,'F' +138865,'Y' +138865,'B' +138865,'H' +138865,'Q' +138867,'F' +138867,'Y' +138867,'B' +138867,'H' +138867,'Q' +138868,'F' +138868,'Y' +138868,'B' +138868,'H' +138868,'Q' +138878,'F' +138878,'Y' +138878,'B' +138878,'H' +138878,'Q' +138879,'F' +138879,'Y' +138879,'B' +138879,'H' +138879,'Q' +138880,'F' +138880,'Y' +138880,'B' +138880,'H' +138880,'Q' +138881,'F' +138881,'Y' +138881,'B' +138881,'H' +138881,'Q' +138882,'F' +138882,'Y' +138882,'B' +138882,'H' +138882,'Q' +138883,'F' +138883,'Y' +138883,'B' +138883,'H' +138883,'Q' +138884,'F' +138884,'Y' +138884,'B' +138884,'H' +138884,'Q' +138963,'F' +138963,'Y' +138963,'B' +138963,'H' +138963,'Q' +138964,'F' +138964,'Y' +138964,'B' +138964,'H' +138964,'Q' +138966,'F' +138966,'Y' +138966,'B' +138966,'H' +138966,'Q' +138970,'F' +138970,'Y' +138970,'B' +138970,'M' +138970,'V' +138971,'F' +138971,'Y' +138971,'B' +138971,'H' +138971,'Q' +138973,'F' +138973,'Y' +138973,'B' +138973,'M' +138973,'V' +138974,'F' +138974,'Y' +138974,'B' +138974,'H' +138974,'Q' +138976,'F' +138976,'Y' +138976,'B' +138976,'M' +138976,'V' +138977,'F' +138977,'Y' +138977,'B' +138977,'H' +138977,'Q' +139264,'F' +139264,'Y' +139264,'B' +139264,'H' +139264,'Q' +139265,'F' +139265,'Y' +139265,'B' +139265,'H' +139265,'Q' +139266,'F' +139266,'Y' +139266,'B' +139266,'H' +139266,'Q' +139267,'F' +139267,'Y' +139267,'B' +139267,'H' +139267,'Q' +139268,'F' +139268,'Y' +139268,'B' +139268,'H' +139268,'Q' +139269,'F' +139269,'Y' +139269,'B' +139269,'H' +139269,'Q' +139270,'F' +139270,'Y' +139270,'B' +139270,'H' +139270,'Q' +139271,'F' +139271,'Y' +139271,'B' +139271,'H' +139271,'Q' +139272,'F' +139272,'Y' +139272,'B' +139272,'H' +139272,'Q' +139273,'F' +139273,'Y' +139273,'B' +139273,'H' +139273,'Q' +139353,'F' +139353,'Y' +139353,'B' +139353,'H' +139353,'Q' +139355,'F' +139355,'Y' +139355,'B' +139355,'H' +139355,'Q' +139356,'F' +139356,'Y' +139356,'B' +139356,'H' +139356,'Q' +139357,'F' +139357,'Y' +139357,'B' +139357,'H' +139357,'Q' +144060,'F' +144060,'Y' +144060,'B' +144060,'M' +144060,'Q' +144061,'F' +144061,'Y' +144061,'H' +144061,'Q' +144061,'K' +144062,'F' +144062,'Y' +144062,'B' +144062,'M' +144062,'Q' +144063,'F' +144063,'Y' +144063,'B' +144063,'M' +144063,'Q' +144065,'F' +144065,'Y' +144065,'H' +144065,'Q' +144065,'K' +144066,'F' +144066,'Y' +144066,'B' +144066,'M' +144066,'Q' +144067,'FN' +144067,'YN' +144067,'BN' +144067,'M' +144067,'Q' +144069,'FN' +144069,'YN' +144069,'H' +144069,'QN' +144069,'K' +144089,'F' +144089,'Y' +144089,'B' +144089,'M' +144089,'Q' +144090,'F' +144090,'C' +144090,'Y' +144090,'B' +144090,'Q' +144094,'F' +144094,'Y' +144094,'B' +144094,'M' +144094,'Q' +144143,'F' +144143,'Y' +144143,'B' +144143,'M' +144143,'Q' +144144,'F' +144144,'Y' +144144,'Q' +144144,'H' +144144,'K' +144145,'F' +144145,'Y' +144145,'B' +144145,'M' +144145,'Q' +144146,'F' +144146,'Y' +144146,'B' +144146,'M' +144146,'Q' +144147,'F' +144147,'Y' +144147,'Q' +144147,'H' +144147,'K' +144148,'F' +144148,'C' +144148,'Y' +144148,'B' +144148,'M' +144149,'F' +144149,'Y' +144149,'Q' +144149,'H' +144149,'K' +144150,'F' +144150,'Y' +144150,'B' +144150,'M' +144150,'Q' +144151,'F' +144151,'Y' +144151,'Q' +144151,'H' +144151,'K' +144152,'F' +144152,'Y' +144152,'Q' +144152,'H' +144152,'K' +144153,'F' +144153,'Y' +144153,'B' +144153,'M' +144153,'Q' +144155,'FN' +144155,'YN' +144155,'BN' +144155,'M' +144155,'Q' +144156,'FN' +144156,'YN' +144156,'B' +144156,'M' +144156,'V' +144157,'F' +144157,'Y' +144157,'B' +144157,'M' +144157,'V' +144158,'F' +144158,'Y' +144158,'B' +144158,'M' +144158,'Q' +144159,'F' +144159,'Y' +144159,'B' +144159,'M' +144159,'V' +144162,'F' +144162,'Y' +144162,'B' +144162,'M' +144162,'V' +144163,'F' +144163,'Y' +144163,'B' +144163,'M' +144163,'Q' +144164,'F' +144164,'Y' +144164,'B' +144164,'M' +144164,'V' +144165,'F' +144165,'Y' +144165,'B' +144165,'M' +144165,'Q' +144166,'F' +144166,'Y' +144166,'B' +144166,'M' +144166,'V' +144167,'F' +144167,'Y' +144167,'B' +144167,'M' +144167,'Q' +144168,'F' +144168,'Y' +144168,'B' +144168,'M' +144168,'V' +144169,'F' +144169,'Y' +144169,'B' +144169,'M' +144169,'Q' +144477,'Y' +144477,'B' +144477,'M' +144477,'V' +144477,'Q' +144478,'Y' +144478,'B' +144478,'M' +144478,'V' +144478,'Q' +144479,'Y' +144479,'B' +144479,'M' +144479,'V' +144479,'Q' +144480,'YN' +144480,'B' +144480,'M' +144480,'V' +144480,'Q' +144541,'F' +144541,'Y' +144541,'B' +144541,'M' +144541,'Q' +144547,'F' +144547,'Y' +144547,'B' +144547,'M' +144547,'Q' +144572,'F' +144572,'Y' +144572,'B' +144572,'H' +144572,'Q' +144574,'F' +144574,'Y' +144574,'B' +144574,'H' +144574,'Q' +144575,'F' +144575,'Y' +144575,'B' +144575,'H' +144575,'Q' +144576,'F' +144576,'Y' +144576,'B' +144576,'H' +144576,'Q' +101908,'FN' +101908,'YN' +101908,'BN' +101908,'M' +101908,'Q' +101913,'F' +101913,'Y' +101913,'B' +101913,'M' +101913,'Q' +101924,'F' +101924,'Y' +101924,'B' +101924,'M' +101924,'Q' +102674,'F' +102674,'Y' +102674,'B' +102674,'M' +102674,'Q' +105810,'F' +105810,'Y' +105810,'B' +105810,'M' +105810,'Q' +106262,'F' +106262,'Y' +106262,'B' +106262,'H' +106262,'Q' +106270,'F' +106270,'Y' +106270,'B' +106270,'H' +106270,'Q' +106366,'F' +106366,'Y' +106366,'B' +106366,'M' +106366,'Q' +106373,'F' +106373,'Y' +106373,'B' +106373,'M' +106373,'V' +106375,'F' +106375,'Y' +106375,'Q' +106375,'H' +106375,'K' +107253,'F' +107253,'Y' +107253,'B' +107253,'H' +107253,'Q' +111924,'FN' +111924,'YN' +111924,'BN' +111924,'M' +111924,'Q' +111930,'F' +111930,'Y' +111930,'B' +111930,'H' +111930,'Q' +112413,'FN' +112413,'YN' +112413,'BN' +112413,'M' +112413,'Q' +113499,'F' +113499,'Y' +113499,'B' +113499,'M' +113499,'Q' +113710,'F' +113710,'Y' +113710,'Q' +113710,'H' +113710,'K' +113713,'F' +113713,'Y' +113713,'B' +113713,'M' +113713,'Q' +133423,'F' +133423,'Y' +133423,'B' +133423,'M' +133423,'Q' +133516,'F' +133516,'Y' +133516,'B' +133516,'M' +133516,'V' +137410,'F' +137410,'Y' +137410,'B' +137410,'M' +137410,'Q' +137685,'F' +137685,'Y' +137685,'B' +137685,'M' +137685,'V' +137814,'F' +137814,'Y' +137814,'B' +137814,'H' +137814,'Q' +138866,'F' +138866,'Y' +138866,'B' +138866,'H' +138866,'Q' +138965,'F' +138965,'Y' +138965,'B' +138965,'M' +138965,'V' +144059,'F' +144059,'Y' +144059,'B' +144059,'M' +144059,'V' +144087,'FN' +144087,'YN' +144087,'B' +144087,'M' +144087,'V' +144088,'F' +144088,'Y' +144088,'Q' +144088,'H' +144088,'K' +144092,'F' +144092,'Y' +144092,'B' +144092,'M' +144092,'Q' +144093,'F' +144093,'Y' +144093,'B' +144093,'H' +144093,'Q' +144095,'F' +144095,'Y' +144095,'B' +144095,'M' +144095,'Q' +144110,'F' +144110,'Y' +144110,'B' +144110,'H' +144110,'Q' +144160,'F' +144160,'Y' +144160,'B' +144160,'M' +144160,'Q' +144161,'F' +144161,'Y' +144161,'B' +144161,'M' +144161,'Q' +144543,'F' +144543,'Y' +144543,'B' +144543,'H' +144543,'Q' diff --git a/database/sql-bench/Data/ATIS/flight_day.txt b/database/sql-bench/Data/ATIS/flight_day.txt new file mode 100644 index 0000000..ef181d1 --- /dev/null +++ b/database/sql-bench/Data/ATIS/flight_day.txt @@ -0,0 +1,448 @@ +'1234567',1,'MONDAY' +'1234567',2,'TUESDAY' +'1234567',3,'WEDNESDAY' +'1234567',4,'THURSDAY' +'1234567',5,'FRIDAY' +'1234567',6,'SATURDAY' +'1234567',7,'SUNDAY' +'-234567',2,'TUESDAY' +'-234567',3,'WEDNESDAY' +'-234567',4,'THURSDAY' +'-234567',5,'FRIDAY' +'-234567',6,'SATURDAY' +'-234567',7,'SUNDAY' +'1-34567',1,'MONDAY' +'1-34567',3,'WEDNESDAY' +'1-34567',4,'THURSDAY' +'1-34567',5,'FRIDAY' +'1-34567',6,'SATURDAY' +'1-34567',7,'SUNDAY' +'--34567',3,'WEDNESDAY' +'--34567',4,'THURSDAY' +'--34567',5,'FRIDAY' +'--34567',6,'SATURDAY' +'--34567',7,'SUNDAY' +'12-4567',1,'MONDAY' +'12-4567',2,'TUESDAY' +'12-4567',4,'THURSDAY' +'12-4567',5,'FRIDAY' +'12-4567',6,'SATURDAY' +'12-4567',7,'SUNDAY' +'-2-4567',2,'TUESDAY' +'-2-4567',4,'THURSDAY' +'-2-4567',5,'FRIDAY' +'-2-4567',6,'SATURDAY' +'-2-4567',7,'SUNDAY' +'1--4567',1,'MONDAY' +'1--4567',4,'THURSDAY' +'1--4567',5,'FRIDAY' +'1--4567',6,'SATURDAY' +'1--4567',7,'SUNDAY' +'---4567',4,'THURSDAY' +'---4567',5,'FRIDAY' +'---4567',6,'SATURDAY' +'---4567',7,'SUNDAY' +'123-567',1,'MONDAY' +'123-567',2,'TUESDAY' +'123-567',3,'WEDNESDAY' +'123-567',5,'FRIDAY' +'123-567',6,'SATURDAY' +'123-567',7,'SUNDAY' +'-23-567',2,'TUESDAY' +'-23-567',3,'WEDNESDAY' +'-23-567',5,'FRIDAY' +'-23-567',6,'SATURDAY' +'-23-567',7,'SUNDAY' +'1-3-567',1,'MONDAY' +'1-3-567',3,'WEDNESDAY' +'1-3-567',5,'FRIDAY' +'1-3-567',6,'SATURDAY' +'1-3-567',7,'SUNDAY' +'--3-567',3,'WEDNESDAY' +'--3-567',5,'FRIDAY' +'--3-567',6,'SATURDAY' +'--3-567',7,'SUNDAY' +'12--567',1,'MONDAY' +'12--567',2,'TUESDAY' +'12--567',5,'FRIDAY' +'12--567',6,'SATURDAY' +'12--567',7,'SUNDAY' +'-2--567',2,'TUESDAY' +'-2--567',5,'FRIDAY' +'-2--567',6,'SATURDAY' +'-2--567',7,'SUNDAY' +'1---567',1,'MONDAY' +'1---567',5,'FRIDAY' +'1---567',6,'SATURDAY' +'1---567',7,'SUNDAY' +'----567',5,'FRIDAY' +'----567',6,'SATURDAY' +'----567',7,'SUNDAY' +'1234-67',1,'MONDAY' +'1234-67',2,'TUESDAY' +'1234-67',3,'WEDNESDAY' +'1234-67',4,'THURSDAY' +'1234-67',6,'SATURDAY' +'1234-67',7,'SUNDAY' +'-234-67',2,'TUESDAY' +'-234-67',3,'WEDNESDAY' +'-234-67',4,'THURSDAY' +'-234-67',6,'SATURDAY' +'-234-67',7,'SUNDAY' +'1-34-67',1,'MONDAY' +'1-34-67',3,'WEDNESDAY' +'1-34-67',4,'THURSDAY' +'1-34-67',6,'SATURDAY' +'1-34-67',7,'SUNDAY' +'--34-67',3,'WEDNESDAY' +'--34-67',4,'THURSDAY' +'--34-67',6,'SATURDAY' +'--34-67',7,'SUNDAY' +'12-4-67',1,'MONDAY' +'12-4-67',2,'TUESDAY' +'12-4-67',4,'THURSDAY' +'12-4-67',6,'SATURDAY' +'12-4-67',7,'SUNDAY' +'-2-4-67',2,'TUESDAY' +'-2-4-67',4,'THURSDAY' +'-2-4-67',6,'SATURDAY' +'-2-4-67',7,'SUNDAY' +'1--4-67',1,'MONDAY' +'1--4-67',4,'THURSDAY' +'1--4-67',6,'SATURDAY' +'1--4-67',7,'SUNDAY' +'---4-67',4,'THURSDAY' +'---4-67',6,'SATURDAY' +'---4-67',7,'SUNDAY' +'123--67',1,'MONDAY' +'123--67',2,'TUESDAY' +'123--67',3,'WEDNESDAY' +'123--67',6,'SATURDAY' +'123--67',7,'SUNDAY' +'-23--67',2,'TUESDAY' +'-23--67',3,'WEDNESDAY' +'-23--67',6,'SATURDAY' +'-23--67',7,'SUNDAY' +'1-3--67',1,'MONDAY' +'1-3--67',3,'WEDNESDAY' +'1-3--67',6,'SATURDAY' +'1-3--67',7,'SUNDAY' +'--3--67',3,'WEDNESDAY' +'--3--67',6,'SATURDAY' +'--3--67',7,'SUNDAY' +'12---67',1,'MONDAY' +'12---67',2,'TUESDAY' +'12---67',6,'SATURDAY' +'12---67',7,'SUNDAY' +'-2---67',2,'TUESDAY' +'-2---67',6,'SATURDAY' +'-2---67',7,'SUNDAY' +'1----67',1,'MONDAY' +'1----67',6,'SATURDAY' +'1----67',7,'SUNDAY' +'-----67',6,'SATURDAY' +'-----67',7,'SUNDAY' +'12345-7',1,'MONDAY' +'12345-7',2,'TUESDAY' +'12345-7',3,'WEDNESDAY' +'12345-7',4,'THURSDAY' +'12345-7',5,'FRIDAY' +'12345-7',7,'SUNDAY' +'-2345-7',2,'TUESDAY' +'-2345-7',3,'WEDNESDAY' +'-2345-7',4,'THURSDAY' +'-2345-7',5,'FRIDAY' +'-2345-7',7,'SUNDAY' +'1-345-7',1,'MONDAY' +'1-345-7',3,'WEDNESDAY' +'1-345-7',4,'THURSDAY' +'1-345-7',5,'FRIDAY' +'1-345-7',7,'SUNDAY' +'--345-7',3,'WEDNESDAY' +'--345-7',4,'THURSDAY' +'--345-7',5,'FRIDAY' +'--345-7',7,'SUNDAY' +'12-45-7',1,'MONDAY' +'12-45-7',2,'TUESDAY' +'12-45-7',4,'THURSDAY' +'12-45-7',5,'FRIDAY' +'12-45-7',7,'SUNDAY' +'-2-45-7',2,'TUESDAY' +'-2-45-7',4,'THURSDAY' +'-2-45-7',5,'FRIDAY' +'-2-45-7',7,'SUNDAY' +'1--45-7',1,'MONDAY' +'1--45-7',4,'THURSDAY' +'1--45-7',5,'FRIDAY' +'1--45-7',7,'SUNDAY' +'---45-7',4,'THURSDAY' +'---45-7',5,'FRIDAY' +'---45-7',7,'SUNDAY' +'123-5-7',1,'MONDAY' +'123-5-7',2,'TUESDAY' +'123-5-7',3,'WEDNESDAY' +'123-5-7',5,'FRIDAY' +'123-5-7',7,'SUNDAY' +'-23-5-7',2,'TUESDAY' +'-23-5-7',3,'WEDNESDAY' +'-23-5-7',5,'FRIDAY' +'-23-5-7',7,'SUNDAY' +'1-3-5-7',1,'MONDAY' +'1-3-5-7',3,'WEDNESDAY' +'1-3-5-7',5,'FRIDAY' +'1-3-5-7',7,'SUNDAY' +'--3-5-7',3,'WEDNESDAY' +'--3-5-7',5,'FRIDAY' +'--3-5-7',7,'SUNDAY' +'12--5-7',1,'MONDAY' +'12--5-7',2,'TUESDAY' +'12--5-7',5,'FRIDAY' +'12--5-7',7,'SUNDAY' +'-2--5-7',2,'TUESDAY' +'-2--5-7',5,'FRIDAY' +'-2--5-7',7,'SUNDAY' +'1---5-7',1,'MONDAY' +'1---5-7',5,'FRIDAY' +'1---5-7',7,'SUNDAY' +'----5-7',5,'FRIDAY' +'----5-7',7,'SUNDAY' +'1234--7',1,'MONDAY' +'1234--7',2,'TUESDAY' +'1234--7',3,'WEDNESDAY' +'1234--7',4,'THURSDAY' +'1234--7',7,'SUNDAY' +'-234--7',2,'TUESDAY' +'-234--7',3,'WEDNESDAY' +'-234--7',4,'THURSDAY' +'-234--7',7,'SUNDAY' +'1-34--7',1,'MONDAY' +'1-34--7',3,'WEDNESDAY' +'1-34--7',4,'THURSDAY' +'1-34--7',7,'SUNDAY' +'--34--7',3,'WEDNESDAY' +'--34--7',4,'THURSDAY' +'--34--7',7,'SUNDAY' +'12-4--7',1,'MONDAY' +'12-4--7',2,'TUESDAY' +'12-4--7',4,'THURSDAY' +'12-4--7',7,'SUNDAY' +'-2-4--7',2,'TUESDAY' +'-2-4--7',4,'THURSDAY' +'-2-4--7',7,'SUNDAY' +'1--4--7',1,'MONDAY' +'1--4--7',4,'THURSDAY' +'1--4--7',7,'SUNDAY' +'---4--7',4,'THURSDAY' +'---4--7',7,'SUNDAY' +'123---7',1,'MONDAY' +'123---7',2,'TUESDAY' +'123---7',3,'WEDNESDAY' +'123---7',7,'SUNDAY' +'-23---7',2,'TUESDAY' +'-23---7',3,'WEDNESDAY' +'-23---7',7,'SUNDAY' +'1-3---7',1,'MONDAY' +'1-3---7',3,'WEDNESDAY' +'1-3---7',7,'SUNDAY' +'--3---7',3,'WEDNESDAY' +'--3---7',7,'SUNDAY' +'12----7',1,'MONDAY' +'12----7',2,'TUESDAY' +'12----7',7,'SUNDAY' +'-2----7',2,'TUESDAY' +'-2----7',7,'SUNDAY' +'1-----7',1,'MONDAY' +'1-----7',7,'SUNDAY' +'------7',7,'SUNDAY' +'123456-',1,'MONDAY' +'123456-',2,'TUESDAY' +'123456-',3,'WEDNESDAY' +'123456-',4,'THURSDAY' +'123456-',5,'FRIDAY' +'123456-',6,'SATURDAY' +'-23456-',2,'TUESDAY' +'-23456-',3,'WEDNESDAY' +'-23456-',4,'THURSDAY' +'-23456-',5,'FRIDAY' +'-23456-',6,'SATURDAY' +'1-3456-',1,'MONDAY' +'1-3456-',3,'WEDNESDAY' +'1-3456-',4,'THURSDAY' +'1-3456-',5,'FRIDAY' +'1-3456-',6,'SATURDAY' +'--3456-',3,'WEDNESDAY' +'--3456-',4,'THURSDAY' +'--3456-',5,'FRIDAY' +'--3456-',6,'SATURDAY' +'12-456-',1,'MONDAY' +'12-456-',2,'TUESDAY' +'12-456-',4,'THURSDAY' +'12-456-',5,'FRIDAY' +'12-456-',6,'SATURDAY' +'-2-456-',2,'TUESDAY' +'-2-456-',4,'THURSDAY' +'-2-456-',5,'FRIDAY' +'-2-456-',6,'SATURDAY' +'1--456-',1,'MONDAY' +'1--456-',4,'THURSDAY' +'1--456-',5,'FRIDAY' +'1--456-',6,'SATURDAY' +'---456-',4,'THURSDAY' +'---456-',5,'FRIDAY' +'---456-',6,'SATURDAY' +'123-56-',1,'MONDAY' +'123-56-',2,'TUESDAY' +'123-56-',3,'WEDNESDAY' +'123-56-',5,'FRIDAY' +'123-56-',6,'SATURDAY' +'-23-56-',2,'TUESDAY' +'-23-56-',3,'WEDNESDAY' +'-23-56-',5,'FRIDAY' +'-23-56-',6,'SATURDAY' +'1-3-56-',1,'MONDAY' +'1-3-56-',3,'WEDNESDAY' +'1-3-56-',5,'FRIDAY' +'1-3-56-',6,'SATURDAY' +'--3-56-',3,'WEDNESDAY' +'--3-56-',5,'FRIDAY' +'--3-56-',6,'SATURDAY' +'12--56-',1,'MONDAY' +'12--56-',2,'TUESDAY' +'12--56-',5,'FRIDAY' +'12--56-',6,'SATURDAY' +'-2--56-',2,'TUESDAY' +'-2--56-',5,'FRIDAY' +'-2--56-',6,'SATURDAY' +'1---56-',1,'MONDAY' +'1---56-',5,'FRIDAY' +'1---56-',6,'SATURDAY' +'----56-',5,'FRIDAY' +'----56-',6,'SATURDAY' +'1234-6-',1,'MONDAY' +'1234-6-',2,'TUESDAY' +'1234-6-',3,'WEDNESDAY' +'1234-6-',4,'THURSDAY' +'1234-6-',6,'SATURDAY' +'-234-6-',2,'TUESDAY' +'-234-6-',3,'WEDNESDAY' +'-234-6-',4,'THURSDAY' +'-234-6-',6,'SATURDAY' +'1-34-6-',1,'MONDAY' +'1-34-6-',3,'WEDNESDAY' +'1-34-6-',4,'THURSDAY' +'1-34-6-',6,'SATURDAY' +'--34-6-',3,'WEDNESDAY' +'--34-6-',4,'THURSDAY' +'--34-6-',6,'SATURDAY' +'12-4-6-',1,'MONDAY' +'12-4-6-',2,'TUESDAY' +'12-4-6-',4,'THURSDAY' +'12-4-6-',6,'SATURDAY' +'-2-4-6-',2,'TUESDAY' +'-2-4-6-',4,'THURSDAY' +'-2-4-6-',6,'SATURDAY' +'1--4-6-',1,'MONDAY' +'1--4-6-',4,'THURSDAY' +'1--4-6-',6,'SATURDAY' +'---4-6-',4,'THURSDAY' +'---4-6-',6,'SATURDAY' +'123--6-',1,'MONDAY' +'123--6-',2,'TUESDAY' +'123--6-',3,'WEDNESDAY' +'123--6-',6,'SATURDAY' +'-23--6-',2,'TUESDAY' +'-23--6-',3,'WEDNESDAY' +'-23--6-',6,'SATURDAY' +'1-3--6-',1,'MONDAY' +'1-3--6-',3,'WEDNESDAY' +'1-3--6-',6,'SATURDAY' +'--3--6-',3,'WEDNESDAY' +'--3--6-',6,'SATURDAY' +'12---6-',1,'MONDAY' +'12---6-',2,'TUESDAY' +'12---6-',6,'SATURDAY' +'-2---6-',2,'TUESDAY' +'-2---6-',6,'SATURDAY' +'1----6-',1,'MONDAY' +'1----6-',6,'SATURDAY' +'-----6-',6,'SATURDAY' +'12345--',1,'MONDAY' +'12345--',2,'TUESDAY' +'12345--',3,'WEDNESDAY' +'12345--',4,'THURSDAY' +'12345--',5,'FRIDAY' +'-2345--',2,'TUESDAY' +'-2345--',3,'WEDNESDAY' +'-2345--',4,'THURSDAY' +'-2345--',5,'FRIDAY' +'1-345--',1,'MONDAY' +'1-345--',3,'WEDNESDAY' +'1-345--',4,'THURSDAY' +'1-345--',5,'FRIDAY' +'--345--',3,'WEDNESDAY' +'--345--',4,'THURSDAY' +'--345--',5,'FRIDAY' +'12-45--',1,'MONDAY' +'12-45--',2,'TUESDAY' +'12-45--',4,'THURSDAY' +'12-45--',5,'FRIDAY' +'-2-45--',2,'TUESDAY' +'-2-45--',4,'THURSDAY' +'-2-45--',5,'FRIDAY' +'1--45--',1,'MONDAY' +'1--45--',4,'THURSDAY' +'1--45--',5,'FRIDAY' +'---45--',4,'THURSDAY' +'---45--',5,'FRIDAY' +'123-5--',1,'MONDAY' +'123-5--',2,'TUESDAY' +'123-5--',3,'WEDNESDAY' +'123-5--',5,'FRIDAY' +'-23-5--',2,'TUESDAY' +'-23-5--',3,'WEDNESDAY' +'-23-5--',5,'FRIDAY' +'1-3-5--',1,'MONDAY' +'1-3-5--',3,'WEDNESDAY' +'1-3-5--',5,'FRIDAY' +'--3-5--',3,'WEDNESDAY' +'--3-5--',5,'FRIDAY' +'12--5--',1,'MONDAY' +'12--5--',2,'TUESDAY' +'12--5--',5,'FRIDAY' +'-2--5--',2,'TUESDAY' +'-2--5--',5,'FRIDAY' +'1---5--',1,'MONDAY' +'1---5--',5,'FRIDAY' +'----5--',5,'FRIDAY' +'1234---',1,'MONDAY' +'1234---',2,'TUESDAY' +'1234---',3,'WEDNESDAY' +'1234---',4,'THURSDAY' +'-234---',2,'TUESDAY' +'-234---',3,'WEDNESDAY' +'-234---',4,'THURSDAY' +'1-34---',1,'MONDAY' +'1-34---',3,'WEDNESDAY' +'1-34---',4,'THURSDAY' +'--34---',3,'WEDNESDAY' +'--34---',4,'THURSDAY' +'12-4---',1,'MONDAY' +'12-4---',2,'TUESDAY' +'12-4---',4,'THURSDAY' +'-2-4---',2,'TUESDAY' +'-2-4---',4,'THURSDAY' +'1--4---',1,'MONDAY' +'1--4---',4,'THURSDAY' +'---4---',4,'THURSDAY' +'123----',1,'MONDAY' +'123----',2,'TUESDAY' +'123----',3,'WEDNESDAY' +'-23----',2,'TUESDAY' +'-23----',3,'WEDNESDAY' +'1-3----',1,'MONDAY' +'1-3----',3,'WEDNESDAY' +'--3----',3,'WEDNESDAY' +'12-----',1,'MONDAY' +'12-----',2,'TUESDAY' +'-2-----',2,'TUESDAY' +'1------',1,'MONDAY' diff --git a/database/sql-bench/Data/ATIS/flight_fare.txt b/database/sql-bench/Data/ATIS/flight_fare.txt new file mode 100644 index 0000000..1ca85f9 --- /dev/null +++ b/database/sql-bench/Data/ATIS/flight_fare.txt @@ -0,0 +1,2998 @@ +101910,'7100001' +101911,'7100001' +101912,'7100001' +101915,'7100001' +101916,'7100001' +101917,'7100001' +101918,'7100001' +101922,'7100001' +101923,'7100001' +101925,'7100001' +101926,'7100001' +101927,'7100001' +101928,'7100001' +101913,'7100001' +101924,'7100001' +101909,'7100002' +101929,'7100002' +101908,'7100002' +101910,'7100003' +101911,'7100003' +101912,'7100003' +101914,'7100003' +101915,'7100003' +101916,'7100003' +101917,'7100003' +101918,'7100003' +101922,'7100003' +101923,'7100003' +101925,'7100003' +101926,'7100003' +101927,'7100003' +101928,'7100003' +101913,'7100003' +101924,'7100003' +101909,'7100004' +101929,'7100004' +101908,'7100004' +101910,'7100005' +101911,'7100005' +101914,'7100005' +101915,'7100005' +101918,'7100005' +101923,'7100005' +101926,'7100005' +101910,'7100006' +101911,'7100006' +101914,'7100006' +101915,'7100006' +101918,'7100006' +101923,'7100006' +101926,'7100006' +101908,'7100007' +101913,'7100007' +101924,'7100007' +101909,'7100007' +101910,'7100007' +101911,'7100007' +101912,'7100007' +101914,'7100007' +101915,'7100007' +101916,'7100007' +101917,'7100007' +101918,'7100007' +101922,'7100007' +101923,'7100007' +101925,'7100007' +101926,'7100007' +101927,'7100007' +101928,'7100007' +101929,'7100007' +101908,'7100008' +101913,'7100008' +101924,'7100008' +101909,'7100008' +101910,'7100008' +101911,'7100008' +101912,'7100008' +101914,'7100008' +101915,'7100008' +101917,'7100008' +101918,'7100008' +101922,'7100008' +101923,'7100008' +101925,'7100008' +101926,'7100008' +101928,'7100008' +101929,'7100008' +101913,'7100009' +101924,'7100009' +101912,'7100009' +101916,'7100009' +101917,'7100009' +101922,'7100009' +101925,'7100009' +101927,'7100009' +101928,'7100009' +101913,'7100010' +101924,'7100010' +101910,'7100010' +101911,'7100010' +101912,'7100010' +101914,'7100010' +101915,'7100010' +101916,'7100010' +101917,'7100010' +101918,'7100010' +101922,'7100010' +101923,'7100010' +101925,'7100010' +101926,'7100010' +101927,'7100010' +101928,'7100010' +101951,'7100011' +101952,'7100011' +101953,'7100011' +101954,'7100011' +101955,'7100011' +101956,'7100011' +101957,'7100011' +101958,'7100011' +101959,'7100012' +101951,'7100013' +101952,'7100013' +101953,'7100013' +101954,'7100013' +101955,'7100013' +101956,'7100013' +101957,'7100013' +101958,'7100013' +101959,'7100014' +101951,'7100015' +101952,'7100015' +101953,'7100015' +101954,'7100015' +101955,'7100015' +101956,'7100015' +101957,'7100015' +101958,'7100015' +101951,'7100016' +101952,'7100016' +101953,'7100016' +101954,'7100016' +101955,'7100016' +101956,'7100016' +101957,'7100016' +101958,'7100016' +101952,'7100017' +101953,'7100017' +101955,'7100017' +101958,'7100017' +101951,'7100018' +101952,'7100018' +101953,'7100018' +101954,'7100018' +101955,'7100018' +101956,'7100018' +101957,'7100018' +101958,'7100018' +102125,'7100019' +102129,'7100019' +102122,'7100020' +102123,'7100020' +102126,'7100020' +102127,'7100020' +102128,'7100020' +102133,'7100020' +102134,'7100021' +102135,'7100021' +102125,'7100022' +102129,'7100022' +102122,'7100023' +102123,'7100023' +102126,'7100023' +102127,'7100023' +102128,'7100023' +102133,'7100023' +102122,'7100024' +102126,'7100024' +102127,'7100024' +102133,'7100024' +102123,'7100025' +102128,'7100025' +102134,'7100025' +102122,'7100026' +102126,'7100026' +102127,'7100026' +102133,'7100026' +102135,'7100026' +102134,'7100027' +102135,'7100027' +102122,'7100028' +102125,'7100028' +102126,'7100028' +102127,'7100028' +102129,'7100028' +102133,'7100028' +102135,'7100028' +102122,'7100029' +102125,'7100029' +102126,'7100029' +102127,'7100029' +102129,'7100029' +102133,'7100029' +102135,'7100029' +102122,'7100030' +102123,'7100030' +102125,'7100030' +102126,'7100030' +102127,'7100030' +102128,'7100030' +102129,'7100030' +102133,'7100030' +102135,'7100030' +102122,'7100031' +102123,'7100031' +102125,'7100031' +102126,'7100031' +102127,'7100031' +102128,'7100031' +102129,'7100031' +102133,'7100031' +102135,'7100031' +102122,'7100032' +102125,'7100032' +102126,'7100032' +102127,'7100032' +102129,'7100032' +102133,'7100032' +102122,'7100033' +102123,'7100033' +102125,'7100033' +102126,'7100033' +102127,'7100033' +102128,'7100033' +102129,'7100033' +102133,'7100033' +102122,'7100034' +102125,'7100034' +102126,'7100034' +102127,'7100034' +102129,'7100034' +102133,'7100034' +102123,'7100035' +102128,'7100035' +102134,'7100035' +102139,'7100036' +102147,'7100036' +102164,'7100036' +102172,'7100036' +102144,'7100037' +102148,'7100037' +102150,'7100037' +102162,'7100037' +102163,'7100037' +102166,'7100037' +102173,'7100037' +102177,'7100037' +102165,'7100038' +102188,'7100039' +102136,'7100040' +102137,'7100040' +102190,'7100040' +102191,'7100040' +102192,'7100040' +102139,'7100041' +102147,'7100041' +102164,'7100041' +102172,'7100041' +102144,'7100042' +102148,'7100042' +102150,'7100042' +102162,'7100042' +102163,'7100042' +102166,'7100042' +102173,'7100042' +102177,'7100042' +102188,'7100043' +102136,'7100044' +102137,'7100044' +102190,'7100044' +102191,'7100044' +102192,'7100044' +102136,'7100045' +102144,'7100045' +102148,'7100045' +102150,'7100045' +102162,'7100045' +102166,'7100045' +102173,'7100045' +102177,'7100045' +102190,'7100045' +102191,'7100045' +102192,'7100045' +102136,'7100046' +102137,'7100046' +102144,'7100046' +102148,'7100046' +102150,'7100046' +102162,'7100046' +102163,'7100046' +102166,'7100046' +102173,'7100046' +102177,'7100046' +102190,'7100046' +102191,'7100046' +102192,'7100046' +102144,'7100047' +102148,'7100047' +102150,'7100047' +102162,'7100047' +102163,'7100047' +102165,'7100047' +102166,'7100047' +102173,'7100047' +102177,'7100047' +102139,'7100048' +102147,'7100048' +102164,'7100048' +102172,'7100048' +102136,'7100049' +102137,'7100049' +102144,'7100049' +102148,'7100049' +102150,'7100049' +102162,'7100049' +102163,'7100049' +102165,'7100049' +102166,'7100049' +102173,'7100049' +102177,'7100049' +102190,'7100049' +102191,'7100049' +102192,'7100049' +102144,'7100050' +102148,'7100050' +102150,'7100050' +102162,'7100050' +102163,'7100050' +102166,'7100050' +102173,'7100050' +102177,'7100050' +102674,'7100051' +102674,'7100052' +102674,'7100053' +102674,'7100054' +102674,'7100055' +102674,'7100056' +102674,'7100057' +102767,'7100058' +102771,'7100058' +102777,'7100058' +102768,'7100059' +102769,'7100059' +102770,'7100059' +102772,'7100059' +102773,'7100059' +102774,'7100059' +102775,'7100059' +102776,'7100059' +102778,'7100059' +102779,'7100059' +102781,'7100059' +102782,'7100059' +102766,'7100060' +102783,'7100060' +102784,'7100060' +102768,'7100061' +102769,'7100061' +102770,'7100061' +102772,'7100061' +102773,'7100061' +102774,'7100061' +102775,'7100061' +102776,'7100061' +102778,'7100061' +102779,'7100061' +102781,'7100061' +102782,'7100061' +102767,'7100062' +102771,'7100062' +102777,'7100062' +102766,'7100063' +102783,'7100063' +102784,'7100063' +102768,'7100064' +102769,'7100064' +102772,'7100064' +102774,'7100064' +102775,'7100064' +102778,'7100064' +102781,'7100064' +102783,'7100064' +102766,'7100065' +102767,'7100065' +102768,'7100065' +102769,'7100065' +102770,'7100065' +102771,'7100065' +102772,'7100065' +102773,'7100065' +102774,'7100065' +102775,'7100065' +102776,'7100065' +102777,'7100065' +102778,'7100065' +102779,'7100065' +102781,'7100065' +102782,'7100065' +102784,'7100065' +102766,'7100066' +102767,'7100066' +102768,'7100066' +102769,'7100066' +102770,'7100066' +102771,'7100066' +102772,'7100066' +102773,'7100066' +102774,'7100066' +102775,'7100066' +102776,'7100066' +102777,'7100066' +102778,'7100066' +102779,'7100066' +102781,'7100066' +102782,'7100066' +102784,'7100066' +102768,'7100067' +102769,'7100067' +102772,'7100067' +102774,'7100067' +102775,'7100067' +102778,'7100067' +102781,'7100067' +102783,'7100067' +102766,'7100068' +102767,'7100068' +102768,'7100068' +102769,'7100068' +102770,'7100068' +102771,'7100068' +102772,'7100068' +102773,'7100068' +102774,'7100068' +102775,'7100068' +102776,'7100068' +102777,'7100068' +102778,'7100068' +102779,'7100068' +102781,'7100068' +102782,'7100068' +102784,'7100068' +102766,'7100069' +102767,'7100069' +102768,'7100069' +102769,'7100069' +102770,'7100069' +102771,'7100069' +102772,'7100069' +102773,'7100069' +102774,'7100069' +102775,'7100069' +102776,'7100069' +102777,'7100069' +102778,'7100069' +102779,'7100069' +102781,'7100069' +102782,'7100069' +102784,'7100069' +102767,'7100070' +102770,'7100070' +102771,'7100070' +102773,'7100070' +102776,'7100070' +102777,'7100070' +102779,'7100070' +102782,'7100070' +102767,'7100071' +102768,'7100071' +102769,'7100071' +102770,'7100071' +102771,'7100071' +102772,'7100071' +102773,'7100071' +102774,'7100071' +102775,'7100071' +102776,'7100071' +102777,'7100071' +102778,'7100071' +102779,'7100071' +102781,'7100071' +102782,'7100071' +102795,'7100072' +102796,'7100072' +102797,'7100072' +102798,'7100072' +102799,'7100072' +102800,'7100072' +102801,'7100072' +102802,'7100072' +102803,'7100072' +102805,'7100072' +102806,'7100072' +102807,'7100072' +102808,'7100073' +102809,'7100073' +102795,'7100074' +102796,'7100074' +102797,'7100074' +102798,'7100074' +102799,'7100074' +102800,'7100074' +102801,'7100074' +102802,'7100074' +102803,'7100074' +102804,'7100074' +102805,'7100074' +102806,'7100074' +102807,'7100074' +102808,'7100075' +102809,'7100075' +102797,'7100076' +102799,'7100076' +102804,'7100076' +102806,'7100076' +102808,'7100076' +102795,'7100077' +102796,'7100077' +102797,'7100077' +102798,'7100077' +102799,'7100077' +102800,'7100077' +102801,'7100077' +102802,'7100077' +102804,'7100077' +102805,'7100077' +102806,'7100077' +102807,'7100077' +102809,'7100077' +102797,'7100078' +102799,'7100078' +102804,'7100078' +102806,'7100078' +102808,'7100078' +102795,'7100079' +102796,'7100079' +102797,'7100079' +102798,'7100079' +102799,'7100079' +102800,'7100079' +102801,'7100079' +102803,'7100079' +102804,'7100079' +102805,'7100079' +102806,'7100079' +102807,'7100079' +102809,'7100079' +102795,'7100080' +102796,'7100080' +102798,'7100080' +102800,'7100080' +102801,'7100080' +102802,'7100080' +102803,'7100080' +102805,'7100080' +102807,'7100080' +102795,'7100081' +102796,'7100081' +102797,'7100081' +102798,'7100081' +102799,'7100081' +102800,'7100081' +102801,'7100081' +102802,'7100081' +102803,'7100081' +102804,'7100081' +102805,'7100081' +102806,'7100081' +102807,'7100081' +102923,'7100082' +102924,'7100082' +102925,'7100082' +102927,'7100082' +102929,'7100082' +102930,'7100082' +102932,'7100082' +102933,'7100082' +102923,'7100083' +102924,'7100083' +102925,'7100083' +102927,'7100083' +102929,'7100083' +102930,'7100083' +102932,'7100083' +102933,'7100083' +102923,'7100084' +102924,'7100084' +102925,'7100084' +102927,'7100084' +102929,'7100084' +102930,'7100084' +102932,'7100084' +102933,'7100084' +102924,'7100085' +102925,'7100085' +102927,'7100085' +102929,'7100085' +102930,'7100085' +102932,'7100085' +102933,'7100085' +102925,'7100086' +102930,'7100086' +102933,'7100086' +102923,'7100087' +102924,'7100087' +102925,'7100087' +102927,'7100087' +102929,'7100087' +102930,'7100087' +102932,'7100087' +102933,'7100087' +102923,'7100088' +102924,'7100088' +102927,'7100088' +102929,'7100088' +102932,'7100088' +102923,'7100089' +102924,'7100089' +102925,'7100089' +102927,'7100089' +102929,'7100089' +102930,'7100089' +102932,'7100089' +102933,'7100089' +105584,'7100090' +105588,'7100090' +105589,'7100090' +105590,'7100090' +105591,'7100090' +105592,'7100090' +105593,'7100090' +105595,'7100090' +105597,'7100090' +105598,'7100090' +105599,'7100090' +105586,'7100091' +105601,'7100091' +105584,'7100092' +105588,'7100092' +105589,'7100092' +105590,'7100092' +105591,'7100092' +105592,'7100092' +105593,'7100092' +105594,'7100092' +105595,'7100092' +105597,'7100092' +105598,'7100092' +105599,'7100092' +105586,'7100093' +105601,'7100093' +105586,'7100094' +105589,'7100094' +105591,'7100094' +105593,'7100094' +105594,'7100094' +105597,'7100094' +105598,'7100094' +105586,'7100095' +105589,'7100095' +105591,'7100095' +105593,'7100095' +105594,'7100095' +105597,'7100095' +105598,'7100095' +105584,'7100096' +105588,'7100096' +105589,'7100096' +105590,'7100096' +105591,'7100096' +105592,'7100096' +105593,'7100096' +105594,'7100096' +105595,'7100096' +105597,'7100096' +105598,'7100096' +105599,'7100096' +105601,'7100096' +105584,'7100097' +105588,'7100097' +105589,'7100097' +105590,'7100097' +105591,'7100097' +105592,'7100097' +105593,'7100097' +105594,'7100097' +105595,'7100097' +105597,'7100097' +105598,'7100097' +105599,'7100097' +105601,'7100097' +105584,'7100098' +105588,'7100098' +105590,'7100098' +105592,'7100098' +105595,'7100098' +105599,'7100098' +105584,'7100099' +105588,'7100099' +105589,'7100099' +105590,'7100099' +105591,'7100099' +105592,'7100099' +105593,'7100099' +105594,'7100099' +105595,'7100099' +105597,'7100099' +105598,'7100099' +105599,'7100099' +105698,'7100100' +105699,'7100100' +105700,'7100100' +105701,'7100100' +105702,'7100100' +105703,'7100100' +105704,'7100100' +105705,'7100100' +105698,'7100101' +105699,'7100101' +105700,'7100101' +105701,'7100101' +105702,'7100101' +105703,'7100101' +105704,'7100101' +105705,'7100101' +105698,'7100102' +105699,'7100102' +105700,'7100102' +105701,'7100102' +105702,'7100102' +105703,'7100102' +105704,'7100102' +105705,'7100102' +105794,'7100103' +105795,'7100103' +105796,'7100103' +105798,'7100103' +105799,'7100103' +105800,'7100103' +105794,'7100104' +105795,'7100104' +105796,'7100104' +105798,'7100104' +105799,'7100104' +105800,'7100104' +105794,'7100105' +105795,'7100105' +105796,'7100105' +105798,'7100105' +105799,'7100105' +105800,'7100105' +105794,'7100106' +105796,'7100106' +105798,'7100106' +105799,'7100106' +105800,'7100106' +105794,'7100107' +105795,'7100107' +105799,'7100107' +105794,'7100108' +105795,'7100108' +105796,'7100108' +105798,'7100108' +105799,'7100108' +105800,'7100108' +105801,'7100109' +105803,'7100109' +105806,'7100109' +105807,'7100109' +105811,'7100109' +105802,'7100110' +105805,'7100110' +105808,'7100110' +105812,'7100110' +105810,'7100110' +105801,'7100111' +105803,'7100111' +105806,'7100111' +105807,'7100111' +105811,'7100111' +105802,'7100112' +105805,'7100112' +105808,'7100112' +105812,'7100112' +105810,'7100112' +105810,'7100113' +105801,'7100113' +105802,'7100113' +105803,'7100113' +105805,'7100113' +105806,'7100113' +105807,'7100113' +105808,'7100113' +105811,'7100113' +105812,'7100113' +105810,'7100114' +105801,'7100114' +105802,'7100114' +105803,'7100114' +105805,'7100114' +105806,'7100114' +105807,'7100114' +105808,'7100114' +105811,'7100114' +105812,'7100114' +106229,'7100115' +106230,'7100115' +106231,'7100115' +106232,'7100115' +106234,'7100115' +106235,'7100115' +106236,'7100115' +106237,'7100115' +106238,'7100115' +106239,'7100115' +106240,'7100115' +106241,'7100115' +106242,'7100115' +106245,'7100115' +106246,'7100115' +106247,'7100115' +106248,'7100115' +106249,'7100115' +106250,'7100115' +106251,'7100115' +106252,'7100115' +106253,'7100115' +106254,'7100115' +106255,'7100115' +106232,'7100116' +106238,'7100116' +106242,'7100116' +106248,'7100116' +106254,'7100116' +106232,'7100117' +106238,'7100117' +106242,'7100117' +106248,'7100117' +106254,'7100117' +106240,'7100118' +106232,'7100119' +106238,'7100119' +106242,'7100119' +106248,'7100119' +106254,'7100119' +106229,'7100120' +106230,'7100120' +106231,'7100120' +106234,'7100120' +106235,'7100120' +106236,'7100120' +106237,'7100120' +106239,'7100120' +106241,'7100120' +106245,'7100120' +106246,'7100120' +106247,'7100120' +106249,'7100120' +106250,'7100120' +106251,'7100120' +106252,'7100120' +106253,'7100120' +106255,'7100120' +106229,'7100121' +106231,'7100121' +106232,'7100121' +106234,'7100121' +106236,'7100121' +106237,'7100121' +106238,'7100121' +106240,'7100121' +106242,'7100121' +106245,'7100121' +106246,'7100121' +106247,'7100121' +106248,'7100121' +106250,'7100121' +106251,'7100121' +106253,'7100121' +106254,'7100121' +106255,'7100121' +106232,'7100122' +106238,'7100122' +106242,'7100122' +106248,'7100122' +106254,'7100122' +106229,'7100123' +106231,'7100123' +106234,'7100123' +106236,'7100123' +106237,'7100123' +106245,'7100123' +106246,'7100123' +106247,'7100123' +106250,'7100123' +106251,'7100123' +106253,'7100123' +106255,'7100123' +106230,'7100124' +106235,'7100124' +106239,'7100124' +106241,'7100124' +106249,'7100124' +106252,'7100124' +106229,'7100125' +106230,'7100125' +106231,'7100125' +106232,'7100125' +106234,'7100125' +106235,'7100125' +106236,'7100125' +106237,'7100125' +106238,'7100125' +106239,'7100125' +106241,'7100125' +106242,'7100125' +106245,'7100125' +106246,'7100125' +106247,'7100125' +106248,'7100125' +106249,'7100125' +106250,'7100125' +106251,'7100125' +106252,'7100125' +106253,'7100125' +106254,'7100125' +106255,'7100125' +106229,'7100126' +106231,'7100126' +106232,'7100126' +106234,'7100126' +106236,'7100126' +106237,'7100126' +106238,'7100126' +106240,'7100126' +106242,'7100126' +106245,'7100126' +106246,'7100126' +106247,'7100126' +106248,'7100126' +106250,'7100126' +106251,'7100126' +106253,'7100126' +106254,'7100126' +106255,'7100126' +106229,'7100127' +106231,'7100127' +106232,'7100127' +106234,'7100127' +106236,'7100127' +106237,'7100127' +106238,'7100127' +106240,'7100127' +106242,'7100127' +106245,'7100127' +106246,'7100127' +106247,'7100127' +106248,'7100127' +106250,'7100127' +106251,'7100127' +106253,'7100127' +106254,'7100127' +106255,'7100127' +106229,'7100128' +106230,'7100128' +106231,'7100128' +106232,'7100128' +106234,'7100128' +106235,'7100128' +106236,'7100128' +106237,'7100128' +106238,'7100128' +106239,'7100128' +106241,'7100128' +106242,'7100128' +106245,'7100128' +106246,'7100128' +106247,'7100128' +106248,'7100128' +106249,'7100128' +106250,'7100128' +106251,'7100128' +106252,'7100128' +106253,'7100128' +106254,'7100128' +106255,'7100128' +106263,'7100129' +106264,'7100129' +106265,'7100129' +106266,'7100129' +106267,'7100129' +106268,'7100129' +106269,'7100129' +106271,'7100129' +106262,'7100129' +106270,'7100129' +106263,'7100130' +106264,'7100130' +106265,'7100130' +106266,'7100130' +106267,'7100130' +106268,'7100130' +106269,'7100130' +106271,'7100130' +106262,'7100130' +106270,'7100130' +106262,'7100131' +106270,'7100131' +106263,'7100131' +106264,'7100131' +106265,'7100131' +106266,'7100131' +106267,'7100131' +106268,'7100131' +106269,'7100131' +106271,'7100131' +106365,'7100132' +106376,'7100132' +106377,'7100132' +106366,'7100132' +106375,'7100132' +106373,'7100133' +106377,'7100134' +106377,'7100135' +106365,'7100136' +106376,'7100136' +106366,'7100136' +106373,'7100137' +106375,'7100137' +106373,'7100138' +106375,'7100139' +106366,'7100140' +106375,'7100140' +106365,'7100140' +106376,'7100140' +106377,'7100140' +106375,'7100141' +106375,'7100142' +106365,'7100142' +106376,'7100142' +106377,'7100142' +106366,'7100143' +106373,'7100143' +106365,'7100143' +106376,'7100143' +106377,'7100143' +106366,'7100144' +106373,'7100144' +106365,'7100144' +106376,'7100144' +106366,'7100145' +106373,'7100145' +106375,'7100145' +106365,'7100145' +106376,'7100145' +106377,'7100145' +107161,'7100146' +107162,'7100146' +107163,'7100146' +107164,'7100146' +107165,'7100146' +107166,'7100146' +107167,'7100146' +107168,'7100146' +107159,'7100147' +107160,'7100147' +107161,'7100148' +107162,'7100148' +107163,'7100148' +107164,'7100148' +107165,'7100148' +107166,'7100148' +107167,'7100148' +107168,'7100148' +107159,'7100149' +107160,'7100149' +107159,'7100150' +107161,'7100150' +107162,'7100150' +107163,'7100150' +107164,'7100150' +107165,'7100150' +107166,'7100150' +107167,'7100150' +107168,'7100150' +107159,'7100151' +107161,'7100151' +107162,'7100151' +107163,'7100151' +107164,'7100151' +107165,'7100151' +107166,'7100151' +107167,'7100151' +107168,'7100151' +107162,'7100152' +107165,'7100152' +107166,'7100152' +107168,'7100152' +107161,'7100153' +107162,'7100153' +107163,'7100153' +107164,'7100153' +107165,'7100153' +107166,'7100153' +107167,'7100153' +107168,'7100153' +107193,'7100154' +107194,'7100154' +107195,'7100154' +107196,'7100154' +107197,'7100154' +107198,'7100154' +107199,'7100154' +107200,'7100154' +107193,'7100155' +107194,'7100155' +107195,'7100155' +107196,'7100155' +107197,'7100155' +107198,'7100155' +107199,'7100155' +107200,'7100155' +107193,'7100156' +107194,'7100156' +107195,'7100156' +107196,'7100156' +107197,'7100156' +107198,'7100156' +107199,'7100156' +107200,'7100156' +107255,'7100157' +107253,'7100157' +107254,'7100158' +107256,'7100158' +107254,'7100159' +107256,'7100159' +107255,'7100160' +107253,'7100160' +107255,'7100161' +107253,'7100161' +107253,'7100162' +107254,'7100162' +107255,'7100162' +107256,'7100162' +107253,'7100163' +107254,'7100163' +107255,'7100163' +107256,'7100163' +107253,'7100164' +107254,'7100164' +107255,'7100164' +107256,'7100164' +107257,'7100165' +107259,'7100165' +107260,'7100165' +107264,'7100165' +107258,'7100166' +107261,'7100166' +107257,'7100167' +107259,'7100167' +107260,'7100167' +107264,'7100167' +107258,'7100168' +107261,'7100168' +107257,'7100169' +107258,'7100169' +107259,'7100169' +107260,'7100169' +107261,'7100169' +107264,'7100169' +107257,'7100170' +107258,'7100170' +107259,'7100170' +107260,'7100170' +107261,'7100170' +107264,'7100170' +107470,'7100171' +107471,'7100171' +107472,'7100171' +107473,'7100171' +107474,'7100171' +107475,'7100171' +107476,'7100171' +107477,'7100171' +107478,'7100171' +107470,'7100172' +107471,'7100172' +107472,'7100172' +107473,'7100172' +107474,'7100172' +107475,'7100172' +107476,'7100172' +107477,'7100172' +107478,'7100172' +107470,'7100173' +107471,'7100173' +107472,'7100173' +107473,'7100173' +107474,'7100173' +107475,'7100173' +107476,'7100173' +107477,'7100173' +107478,'7100173' +107484,'7100174' +107485,'7100174' +107486,'7100174' +107487,'7100174' +107488,'7100174' +107489,'7100174' +107490,'7100174' +107491,'7100174' +107492,'7100174' +107484,'7100175' +107485,'7100175' +107486,'7100175' +107487,'7100175' +107488,'7100175' +107489,'7100175' +107490,'7100175' +107491,'7100175' +107492,'7100175' +107484,'7100176' +107485,'7100176' +107486,'7100176' +107487,'7100176' +107488,'7100176' +107489,'7100176' +107490,'7100176' +107491,'7100176' +107492,'7100176' +111891,'7100177' +111896,'7100177' +111888,'7100178' +111889,'7100178' +111892,'7100178' +111893,'7100178' +111894,'7100178' +111895,'7100178' +111886,'7100179' +111887,'7100179' +111891,'7100180' +111896,'7100180' +111888,'7100181' +111889,'7100181' +111892,'7100181' +111893,'7100181' +111894,'7100181' +111895,'7100181' +111888,'7100182' +111892,'7100182' +111894,'7100182' +111895,'7100182' +111887,'7100183' +111889,'7100183' +111893,'7100183' +111886,'7100184' +111888,'7100184' +111892,'7100184' +111894,'7100184' +111895,'7100184' +111886,'7100185' +111887,'7100185' +111886,'7100186' +111888,'7100186' +111891,'7100186' +111892,'7100186' +111894,'7100186' +111895,'7100186' +111896,'7100186' +111886,'7100187' +111888,'7100187' +111891,'7100187' +111892,'7100187' +111894,'7100187' +111895,'7100187' +111896,'7100187' +111886,'7100188' +111888,'7100188' +111889,'7100188' +111891,'7100188' +111892,'7100188' +111893,'7100188' +111894,'7100188' +111895,'7100188' +111896,'7100188' +111886,'7100189' +111888,'7100189' +111889,'7100189' +111891,'7100189' +111892,'7100189' +111893,'7100189' +111894,'7100189' +111895,'7100189' +111896,'7100189' +111888,'7100190' +111891,'7100190' +111892,'7100190' +111894,'7100190' +111895,'7100190' +111896,'7100190' +111888,'7100191' +111889,'7100191' +111891,'7100191' +111892,'7100191' +111893,'7100191' +111894,'7100191' +111895,'7100191' +111896,'7100191' +111888,'7100192' +111891,'7100192' +111892,'7100192' +111894,'7100192' +111895,'7100192' +111896,'7100192' +111928,'7100193' +111929,'7100193' +111931,'7100193' +111932,'7100193' +111933,'7100193' +111930,'7100194' +111928,'7100195' +111929,'7100195' +111931,'7100195' +111932,'7100195' +111933,'7100195' +111930,'7100196' +111930,'7100197' +111924,'7100198' +111930,'7100199' +111924,'7100200' +111929,'7100201' +111932,'7100201' +111933,'7100201' +111924,'7100202' +111930,'7100202' +111928,'7100202' +111929,'7100202' +111931,'7100202' +111932,'7100202' +111933,'7100202' +111929,'7100203' +111932,'7100203' +111933,'7100203' +111924,'7100204' +111930,'7100204' +111928,'7100204' +111929,'7100204' +111931,'7100204' +111932,'7100204' +111933,'7100204' +111930,'7100205' +111928,'7100205' +111931,'7100205' +111930,'7100206' +111928,'7100206' +111929,'7100206' +111931,'7100206' +111932,'7100206' +111933,'7100206' +111939,'7100207' +111937,'7100208' +111941,'7100208' +111937,'7100209' +111941,'7100209' +111939,'7100210' +111939,'7100211' +111937,'7100212' +111939,'7100212' +111941,'7100212' +111937,'7100213' +111939,'7100213' +111941,'7100213' +111937,'7100214' +111941,'7100214' +111937,'7100215' +111939,'7100215' +111941,'7100215' +112029,'7100216' +112032,'7100216' +112034,'7100216' +112035,'7100216' +112036,'7100216' +112037,'7100216' +112038,'7100216' +112039,'7100216' +112041,'7100216' +112042,'7100216' +112043,'7100216' +112044,'7100216' +112045,'7100216' +112047,'7100216' +112048,'7100216' +112049,'7100216' +112050,'7100216' +112033,'7100217' +112040,'7100217' +112046,'7100217' +112028,'7100218' +112052,'7100218' +112030,'7100219' +112031,'7100219' +112051,'7100219' +112029,'7100220' +112032,'7100220' +112034,'7100220' +112035,'7100220' +112036,'7100220' +112037,'7100220' +112038,'7100220' +112039,'7100220' +112041,'7100220' +112042,'7100220' +112043,'7100220' +112044,'7100220' +112045,'7100220' +112047,'7100220' +112048,'7100220' +112049,'7100220' +112050,'7100220' +112033,'7100221' +112040,'7100221' +112046,'7100221' +112028,'7100222' +112052,'7100222' +112030,'7100223' +112031,'7100223' +112051,'7100223' +112029,'7100224' +112030,'7100224' +112033,'7100224' +112034,'7100224' +112036,'7100224' +112038,'7100224' +112039,'7100224' +112040,'7100224' +112041,'7100224' +112043,'7100224' +112044,'7100224' +112046,'7100224' +112047,'7100224' +112049,'7100224' +112050,'7100224' +112051,'7100224' +112029,'7100225' +112030,'7100225' +112031,'7100225' +112033,'7100225' +112034,'7100225' +112036,'7100225' +112039,'7100225' +112040,'7100225' +112041,'7100225' +112043,'7100225' +112044,'7100225' +112046,'7100225' +112047,'7100225' +112049,'7100225' +112050,'7100225' +112051,'7100225' +112028,'7100226' +112029,'7100226' +112032,'7100226' +112033,'7100226' +112034,'7100226' +112035,'7100226' +112037,'7100226' +112038,'7100226' +112039,'7100226' +112040,'7100226' +112042,'7100226' +112043,'7100226' +112045,'7100226' +112046,'7100226' +112047,'7100226' +112048,'7100226' +112049,'7100226' +112052,'7100226' +112029,'7100227' +112032,'7100227' +112033,'7100227' +112034,'7100227' +112035,'7100227' +112036,'7100227' +112037,'7100227' +112038,'7100227' +112039,'7100227' +112040,'7100227' +112041,'7100227' +112042,'7100227' +112043,'7100227' +112044,'7100227' +112045,'7100227' +112046,'7100227' +112047,'7100227' +112048,'7100227' +112049,'7100227' +112050,'7100227' +112351,'7100228' +112352,'7100228' +112353,'7100228' +112354,'7100228' +112351,'7100229' +112352,'7100229' +112353,'7100229' +112354,'7100229' +112351,'7100230' +112352,'7100230' +112353,'7100230' +112354,'7100230' +112351,'7100231' +112352,'7100231' +112353,'7100231' +112354,'7100231' +112351,'7100232' +112352,'7100232' +112353,'7100232' +112354,'7100232' +112415,'7100233' +112416,'7100233' +112417,'7100233' +112418,'7100233' +112415,'7100234' +112416,'7100234' +112417,'7100234' +112418,'7100234' +112413,'7100235' +112413,'7100236' +112416,'7100237' +112418,'7100237' +112416,'7100238' +112418,'7100238' +112413,'7100239' +112415,'7100239' +112416,'7100239' +112417,'7100239' +112418,'7100239' +112413,'7100240' +112415,'7100240' +112416,'7100240' +112417,'7100240' +112418,'7100240' +112415,'7100241' +112416,'7100241' +112417,'7100241' +112418,'7100241' +112415,'7100242' +112417,'7100242' +112440,'7100243' +112441,'7100243' +112442,'7100243' +112440,'7100244' +112441,'7100244' +112442,'7100244' +112440,'7100245' +112441,'7100245' +112442,'7100245' +112440,'7100246' +112441,'7100246' +112442,'7100246' +112513,'7100247' +112514,'7100247' +112515,'7100247' +112516,'7100247' +112518,'7100247' +112519,'7100247' +112520,'7100247' +112524,'7100247' +112525,'7100247' +112526,'7100247' +112527,'7100247' +112513,'7100248' +112514,'7100248' +112515,'7100248' +112516,'7100248' +112518,'7100248' +112519,'7100248' +112520,'7100248' +112524,'7100248' +112525,'7100248' +112526,'7100248' +112527,'7100249' +112514,'7100250' +112515,'7100250' +112516,'7100250' +112518,'7100250' +112519,'7100250' +112520,'7100250' +112524,'7100250' +112525,'7100250' +112526,'7100250' +112527,'7100250' +112514,'7100251' +112515,'7100251' +112516,'7100251' +112519,'7100251' +112520,'7100251' +112524,'7100251' +112525,'7100251' +112526,'7100251' +112527,'7100251' +112513,'7100252' +112515,'7100252' +112516,'7100252' +112520,'7100252' +112524,'7100252' +112526,'7100252' +112513,'7100253' +112514,'7100253' +112515,'7100253' +112516,'7100253' +112518,'7100253' +112519,'7100253' +112520,'7100253' +112524,'7100253' +112525,'7100253' +112526,'7100253' +112783,'7100254' +112789,'7100254' +112798,'7100254' +112766,'7100255' +112772,'7100255' +112773,'7100255' +112777,'7100255' +112784,'7100255' +112790,'7100255' +112793,'7100255' +112794,'7100255' +112802,'7100255' +112805,'7100255' +112797,'7100256' +112771,'7100257' +112804,'7100257' +112807,'7100257' +112806,'7100258' +112808,'7100258' +112783,'7100259' +112789,'7100259' +112798,'7100259' +112766,'7100260' +112772,'7100260' +112773,'7100260' +112777,'7100260' +112784,'7100260' +112790,'7100260' +112793,'7100260' +112794,'7100260' +112802,'7100260' +112805,'7100260' +112771,'7100261' +112804,'7100261' +112807,'7100261' +112806,'7100262' +112808,'7100262' +112766,'7100263' +112772,'7100263' +112773,'7100263' +112777,'7100263' +112784,'7100263' +112790,'7100263' +112793,'7100263' +112802,'7100263' +112805,'7100263' +112806,'7100263' +112808,'7100263' +112766,'7100264' +112772,'7100264' +112773,'7100264' +112777,'7100264' +112784,'7100264' +112790,'7100264' +112793,'7100264' +112794,'7100264' +112802,'7100264' +112805,'7100264' +112806,'7100264' +112808,'7100264' +112766,'7100265' +112772,'7100265' +112773,'7100265' +112777,'7100265' +112784,'7100265' +112790,'7100265' +112793,'7100265' +112794,'7100265' +112797,'7100265' +112802,'7100265' +112805,'7100265' +112783,'7100266' +112789,'7100266' +112798,'7100266' +112766,'7100267' +112772,'7100267' +112773,'7100267' +112777,'7100267' +112784,'7100267' +112790,'7100267' +112793,'7100267' +112794,'7100267' +112802,'7100267' +112805,'7100267' +112864,'7100268' +112869,'7100268' +112872,'7100268' +112874,'7100268' +112866,'7100269' +112867,'7100269' +112870,'7100269' +112873,'7100269' +112864,'7100270' +112869,'7100270' +112872,'7100270' +112874,'7100270' +112866,'7100271' +112867,'7100271' +112870,'7100271' +112873,'7100271' +112866,'7100272' +112867,'7100272' +112870,'7100272' +112873,'7100272' +112864,'7100273' +112869,'7100273' +112872,'7100273' +112874,'7100273' +112866,'7100274' +112867,'7100274' +112870,'7100274' +112873,'7100274' +112903,'7100275' +112905,'7100275' +112908,'7100275' +112909,'7100275' +112904,'7100276' +112907,'7100276' +112903,'7100277' +112905,'7100277' +112908,'7100277' +112909,'7100277' +112904,'7100278' +112907,'7100278' +112903,'7100279' +112904,'7100279' +112905,'7100279' +112907,'7100279' +112908,'7100279' +112909,'7100279' +112903,'7100280' +112904,'7100280' +112905,'7100280' +112907,'7100280' +112908,'7100280' +112909,'7100280' +112989,'7100281' +112990,'7100281' +112991,'7100281' +112993,'7100281' +112994,'7100281' +112995,'7100281' +112996,'7100281' +112997,'7100281' +112998,'7100281' +112999,'7100281' +113001,'7100281' +113002,'7100281' +113004,'7100281' +113005,'7100281' +113006,'7100281' +113008,'7100281' +113010,'7100281' +112992,'7100282' +113000,'7100282' +113003,'7100282' +113009,'7100282' +113007,'7100283' +113011,'7100283' +113012,'7100284' +113013,'7100284' +112989,'7100285' +112990,'7100285' +112991,'7100285' +112993,'7100285' +112994,'7100285' +112995,'7100285' +112996,'7100285' +112997,'7100285' +112998,'7100285' +112999,'7100285' +113001,'7100285' +113002,'7100285' +113004,'7100285' +113005,'7100285' +113006,'7100285' +113008,'7100285' +113010,'7100285' +112992,'7100286' +113000,'7100286' +113003,'7100286' +113009,'7100286' +113007,'7100287' +113011,'7100287' +113012,'7100288' +113013,'7100288' +112989,'7100289' +112991,'7100289' +112992,'7100289' +112994,'7100289' +112996,'7100289' +112997,'7100289' +112998,'7100289' +113000,'7100289' +113001,'7100289' +113003,'7100289' +113004,'7100289' +113006,'7100289' +113008,'7100289' +113009,'7100289' +113010,'7100289' +113012,'7100289' +113013,'7100289' +112989,'7100290' +112991,'7100290' +112992,'7100290' +112994,'7100290' +112997,'7100290' +112998,'7100290' +113000,'7100290' +113001,'7100290' +113003,'7100290' +113004,'7100290' +113006,'7100290' +113008,'7100290' +113009,'7100290' +113010,'7100290' +113012,'7100290' +113013,'7100290' +112990,'7100291' +112991,'7100291' +112992,'7100291' +112993,'7100291' +112994,'7100291' +112995,'7100291' +112998,'7100291' +112999,'7100291' +113000,'7100291' +113001,'7100291' +113002,'7100291' +113003,'7100291' +113004,'7100291' +113005,'7100291' +113007,'7100291' +113008,'7100291' +113009,'7100291' +113011,'7100291' +112989,'7100292' +112990,'7100292' +112991,'7100292' +112992,'7100292' +112993,'7100292' +112994,'7100292' +112995,'7100292' +112996,'7100292' +112997,'7100292' +112998,'7100292' +112999,'7100292' +113000,'7100292' +113001,'7100292' +113002,'7100292' +113003,'7100292' +113004,'7100292' +113005,'7100292' +113006,'7100292' +113008,'7100292' +113009,'7100292' +113010,'7100292' +113498,'7100293' +113500,'7100293' +113499,'7100294' +113501,'7100295' +113498,'7100296' +113500,'7100296' +113499,'7100297' +113501,'7100298' +113499,'7100299' +113499,'7100300' +113499,'7100301' +113498,'7100301' +113500,'7100301' +113576,'7100302' +113578,'7100302' +113581,'7100302' +113582,'7100302' +113577,'7100303' +113579,'7100303' +113583,'7100304' +113576,'7100305' +113578,'7100305' +113581,'7100305' +113582,'7100305' +113577,'7100306' +113579,'7100306' +113583,'7100307' +113576,'7100308' +113577,'7100308' +113578,'7100308' +113579,'7100308' +113581,'7100308' +113582,'7100308' +113577,'7100309' +113578,'7100309' +113579,'7100309' +113581,'7100309' +113582,'7100309' +113576,'7100309' +113595,'7100310' +113596,'7100310' +113597,'7100310' +113599,'7100310' +113600,'7100310' +113602,'7100310' +113595,'7100311' +113599,'7100311' +113602,'7100311' +113595,'7100312' +113599,'7100312' +113602,'7100312' +113596,'7100313' +113597,'7100313' +113600,'7100313' +113595,'7100314' +113596,'7100314' +113597,'7100314' +113599,'7100314' +113600,'7100314' +113602,'7100314' +113595,'7100315' +113596,'7100315' +113597,'7100315' +113599,'7100315' +113600,'7100315' +113602,'7100315' +113706,'7100316' +113707,'7100316' +113709,'7100316' +113711,'7100316' +113716,'7100316' +113717,'7100316' +113718,'7100316' +113710,'7100316' +113713,'7100316' +113705,'7100317' +113712,'7100317' +113715,'7100317' +113719,'7100317' +113720,'7100318' +113721,'7100319' +113706,'7100320' +113707,'7100320' +113709,'7100320' +113711,'7100320' +113716,'7100320' +113717,'7100320' +113718,'7100320' +113710,'7100320' +113713,'7100320' +113705,'7100321' +113712,'7100321' +113715,'7100321' +113719,'7100321' +113720,'7100322' +113721,'7100323' +113705,'7100324' +113707,'7100324' +113712,'7100324' +113715,'7100324' +113719,'7100324' +113721,'7100324' +113710,'7100324' +113713,'7100324' +113705,'7100325' +113707,'7100325' +113712,'7100325' +113715,'7100325' +113719,'7100325' +113721,'7100325' +113713,'7100325' +113705,'7100326' +113706,'7100326' +113707,'7100326' +113709,'7100326' +113711,'7100326' +113712,'7100326' +113715,'7100326' +113716,'7100326' +113717,'7100326' +113718,'7100326' +113719,'7100326' +113720,'7100326' +113713,'7100326' +113705,'7100327' +113706,'7100327' +113707,'7100327' +113709,'7100327' +113711,'7100327' +113712,'7100327' +113715,'7100327' +113716,'7100327' +113717,'7100327' +113718,'7100327' +113719,'7100327' +113710,'7100327' +113713,'7100327' +133423,'7100328' +133423,'7100329' +133423,'7100330' +133423,'7100331' +133423,'7100332' +133430,'7100333' +133431,'7100333' +133432,'7100333' +133433,'7100333' +133430,'7100334' +133431,'7100334' +133432,'7100334' +133433,'7100334' +133430,'7100335' +133431,'7100335' +133432,'7100335' +133433,'7100335' +133430,'7100336' +133431,'7100336' +133432,'7100336' +133433,'7100336' +133430,'7100337' +133431,'7100337' +133432,'7100337' +133433,'7100337' +133435,'7100338' +133436,'7100338' +133434,'7100339' +133435,'7100340' +133436,'7100340' +133434,'7100341' +133435,'7100342' +133436,'7100342' +133516,'7100343' +133516,'7100344' +133516,'7100345' +133516,'7100346' +133568,'7100347' +133569,'7100347' +133567,'7100348' +133568,'7100349' +133569,'7100349' +137225,'7100350' +137231,'7100350' +137237,'7100350' +137223,'7100351' +137224,'7100351' +137226,'7100351' +137227,'7100351' +137228,'7100351' +137229,'7100351' +137230,'7100351' +137232,'7100351' +137233,'7100351' +137234,'7100351' +137235,'7100351' +137236,'7100351' +137238,'7100351' +137221,'7100352' +137222,'7100352' +137224,'7100353' +137228,'7100353' +137230,'7100353' +137233,'7100353' +137235,'7100353' +137238,'7100353' +137223,'7100354' +137226,'7100354' +137227,'7100354' +137229,'7100354' +137232,'7100354' +137234,'7100354' +137236,'7100354' +137225,'7100355' +137231,'7100355' +137237,'7100355' +137221,'7100356' +137222,'7100356' +137222,'7100357' +137223,'7100357' +137226,'7100357' +137227,'7100357' +137229,'7100357' +137232,'7100357' +137234,'7100357' +137236,'7100357' +137221,'7100358' +137223,'7100358' +137224,'7100358' +137225,'7100358' +137226,'7100358' +137227,'7100358' +137228,'7100358' +137229,'7100358' +137230,'7100358' +137231,'7100358' +137232,'7100358' +137233,'7100358' +137234,'7100358' +137235,'7100358' +137236,'7100358' +137237,'7100358' +137238,'7100358' +137222,'7100359' +137223,'7100359' +137226,'7100359' +137227,'7100359' +137229,'7100359' +137232,'7100359' +137234,'7100359' +137236,'7100359' +137221,'7100360' +137223,'7100360' +137224,'7100360' +137225,'7100360' +137226,'7100360' +137227,'7100360' +137228,'7100360' +137229,'7100360' +137230,'7100360' +137231,'7100360' +137232,'7100360' +137233,'7100360' +137234,'7100360' +137235,'7100360' +137236,'7100360' +137237,'7100360' +137238,'7100360' +137224,'7100361' +137225,'7100361' +137228,'7100361' +137230,'7100361' +137231,'7100361' +137233,'7100361' +137235,'7100361' +137237,'7100361' +137238,'7100361' +137223,'7100362' +137224,'7100362' +137225,'7100362' +137226,'7100362' +137227,'7100362' +137228,'7100362' +137229,'7100362' +137230,'7100362' +137231,'7100362' +137232,'7100362' +137233,'7100362' +137234,'7100362' +137235,'7100362' +137236,'7100362' +137237,'7100362' +137238,'7100362' +137315,'7100363' +137316,'7100363' +137317,'7100363' +137318,'7100363' +137319,'7100363' +137320,'7100363' +137321,'7100363' +137322,'7100363' +137323,'7100363' +137324,'7100363' +137326,'7100363' +137327,'7100363' +137328,'7100363' +137329,'7100363' +137330,'7100363' +137331,'7100363' +137332,'7100363' +137333,'7100363' +137334,'7100363' +137335,'7100363' +137336,'7100363' +137337,'7100363' +137338,'7100363' +137339,'7100364' +137315,'7100365' +137319,'7100365' +137323,'7100365' +137331,'7100365' +137315,'7100366' +137319,'7100366' +137323,'7100366' +137331,'7100366' +137330,'7100367' +137315,'7100368' +137319,'7100368' +137323,'7100368' +137331,'7100368' +137316,'7100369' +137317,'7100369' +137318,'7100369' +137320,'7100369' +137321,'7100369' +137322,'7100369' +137324,'7100369' +137326,'7100369' +137327,'7100369' +137328,'7100369' +137329,'7100369' +137332,'7100369' +137333,'7100369' +137334,'7100369' +137335,'7100369' +137336,'7100369' +137337,'7100369' +137338,'7100369' +137315,'7100370' +137316,'7100370' +137318,'7100370' +137319,'7100370' +137320,'7100370' +137323,'7100370' +137324,'7100370' +137326,'7100370' +137327,'7100370' +137329,'7100370' +137330,'7100370' +137331,'7100370' +137333,'7100370' +137334,'7100370' +137335,'7100370' +137336,'7100370' +137338,'7100370' +137315,'7100371' +137319,'7100371' +137323,'7100371' +137331,'7100371' +137339,'7100372' +137316,'7100373' +137318,'7100373' +137320,'7100373' +137324,'7100373' +137326,'7100373' +137327,'7100373' +137329,'7100373' +137333,'7100373' +137334,'7100373' +137335,'7100373' +137336,'7100373' +137338,'7100373' +137317,'7100374' +137321,'7100374' +137322,'7100374' +137328,'7100374' +137332,'7100374' +137337,'7100374' +137315,'7100375' +137316,'7100375' +137317,'7100375' +137318,'7100375' +137319,'7100375' +137320,'7100375' +137321,'7100375' +137322,'7100375' +137323,'7100375' +137324,'7100375' +137326,'7100375' +137327,'7100375' +137328,'7100375' +137329,'7100375' +137331,'7100375' +137332,'7100375' +137333,'7100375' +137334,'7100375' +137335,'7100375' +137336,'7100375' +137337,'7100375' +137338,'7100375' +137339,'7100375' +137315,'7100376' +137316,'7100376' +137318,'7100376' +137319,'7100376' +137320,'7100376' +137323,'7100376' +137324,'7100376' +137326,'7100376' +137327,'7100376' +137329,'7100376' +137330,'7100376' +137331,'7100376' +137333,'7100376' +137334,'7100376' +137335,'7100376' +137336,'7100376' +137338,'7100376' +137315,'7100377' +137316,'7100377' +137318,'7100377' +137319,'7100377' +137320,'7100377' +137323,'7100377' +137324,'7100377' +137326,'7100377' +137327,'7100377' +137329,'7100377' +137330,'7100377' +137331,'7100377' +137333,'7100377' +137334,'7100377' +137335,'7100377' +137336,'7100377' +137338,'7100377' +137315,'7100378' +137316,'7100378' +137317,'7100378' +137318,'7100378' +137319,'7100378' +137320,'7100378' +137321,'7100378' +137322,'7100378' +137323,'7100378' +137324,'7100378' +137326,'7100378' +137327,'7100378' +137328,'7100378' +137329,'7100378' +137331,'7100378' +137332,'7100378' +137333,'7100378' +137334,'7100378' +137335,'7100378' +137336,'7100378' +137337,'7100378' +137338,'7100378' +137353,'7100379' +137354,'7100379' +137355,'7100379' +137356,'7100379' +137357,'7100379' +137358,'7100379' +137359,'7100379' +137360,'7100379' +137361,'7100379' +137353,'7100380' +137354,'7100380' +137355,'7100380' +137356,'7100380' +137357,'7100380' +137358,'7100380' +137359,'7100380' +137360,'7100380' +137361,'7100380' +137353,'7100381' +137354,'7100381' +137355,'7100381' +137356,'7100381' +137357,'7100381' +137358,'7100381' +137359,'7100381' +137360,'7100381' +137361,'7100381' +137407,'7100382' +137408,'7100382' +137412,'7100382' +137413,'7100382' +137410,'7100383' +137407,'7100384' +137408,'7100384' +137412,'7100384' +137413,'7100384' +137410,'7100385' +137408,'7100386' +137413,'7100386' +137408,'7100387' +137413,'7100387' +137407,'7100388' +137408,'7100388' +137412,'7100388' +137413,'7100388' +137410,'7100388' +137407,'7100389' +137408,'7100389' +137412,'7100389' +137413,'7100389' +137410,'7100389' +137407,'7100390' +137408,'7100390' +137412,'7100390' +137413,'7100390' +137410,'7100390' +137407,'7100391' +137412,'7100391' +137410,'7100391' +137414,'7100392' +137417,'7100392' +137420,'7100392' +137422,'7100392' +137415,'7100393' +137419,'7100393' +137423,'7100393' +137414,'7100394' +137417,'7100394' +137420,'7100394' +137422,'7100394' +137415,'7100395' +137419,'7100395' +137423,'7100395' +137415,'7100396' +137419,'7100396' +137423,'7100396' +137414,'7100397' +137417,'7100397' +137420,'7100397' +137422,'7100397' +137415,'7100398' +137419,'7100398' +137423,'7100398' +137415,'7100399' +137419,'7100399' +137423,'7100399' +137685,'7100400' +137685,'7100401' +137685,'7100402' +137685,'7100403' +137732,'7100404' +137733,'7100404' +137734,'7100404' +137735,'7100404' +137736,'7100404' +137737,'7100404' +137738,'7100404' +137739,'7100404' +137740,'7100404' +137732,'7100405' +137733,'7100405' +137734,'7100405' +137735,'7100405' +137736,'7100405' +137737,'7100405' +137738,'7100405' +137739,'7100405' +137740,'7100405' +137732,'7100406' +137733,'7100406' +137734,'7100406' +137735,'7100406' +137736,'7100406' +137737,'7100406' +137738,'7100406' +137739,'7100406' +137740,'7100406' +137814,'7100407' +137811,'7100408' +137817,'7100408' +137811,'7100409' +137817,'7100409' +137814,'7100410' +137814,'7100411' +137811,'7100412' +137817,'7100412' +137811,'7100413' +137817,'7100413' +137811,'7100414' +137817,'7100414' +137811,'7100415' +137817,'7100415' +137811,'7100416' +137817,'7100416' +137811,'7100417' +137817,'7100417' +137814,'7100418' +138818,'7100419' +138820,'7100419' +138821,'7100419' +138822,'7100419' +138823,'7100419' +138824,'7100419' +138827,'7100419' +138828,'7100419' +138829,'7100419' +138832,'7100419' +138817,'7100420' +138830,'7100420' +138831,'7100420' +138818,'7100421' +138819,'7100421' +138820,'7100421' +138821,'7100421' +138822,'7100421' +138823,'7100421' +138824,'7100421' +138825,'7100421' +138827,'7100421' +138828,'7100421' +138829,'7100421' +138832,'7100421' +138817,'7100422' +138830,'7100422' +138831,'7100422' +138818,'7100423' +138819,'7100423' +138822,'7100423' +138825,'7100423' +138829,'7100423' +138817,'7100424' +138818,'7100424' +138819,'7100424' +138820,'7100424' +138821,'7100424' +138822,'7100424' +138823,'7100424' +138824,'7100424' +138825,'7100424' +138827,'7100424' +138828,'7100424' +138829,'7100424' +138830,'7100424' +138832,'7100424' +138818,'7100425' +138819,'7100425' +138822,'7100425' +138825,'7100425' +138829,'7100425' +138817,'7100426' +138818,'7100426' +138819,'7100426' +138820,'7100426' +138821,'7100426' +138822,'7100426' +138823,'7100426' +138824,'7100426' +138825,'7100426' +138827,'7100426' +138828,'7100426' +138829,'7100426' +138831,'7100426' +138832,'7100426' +138820,'7100427' +138821,'7100427' +138823,'7100427' +138824,'7100427' +138827,'7100427' +138828,'7100427' +138832,'7100427' +138818,'7100428' +138819,'7100428' +138820,'7100428' +138821,'7100428' +138822,'7100428' +138823,'7100428' +138824,'7100428' +138825,'7100428' +138827,'7100428' +138828,'7100428' +138829,'7100428' +138832,'7100428' +138860,'7100429' +138861,'7100429' +138862,'7100429' +138863,'7100429' +138864,'7100429' +138865,'7100429' +138867,'7100429' +138868,'7100429' +138866,'7100429' +138860,'7100430' +138861,'7100430' +138862,'7100430' +138863,'7100430' +138864,'7100430' +138865,'7100430' +138867,'7100430' +138868,'7100430' +138866,'7100430' +138860,'7100431' +138861,'7100431' +138862,'7100431' +138863,'7100431' +138864,'7100431' +138865,'7100431' +138867,'7100431' +138868,'7100431' +138866,'7100431' +138878,'7100432' +138879,'7100432' +138880,'7100432' +138881,'7100432' +138882,'7100432' +138883,'7100432' +138884,'7100432' +138878,'7100433' +138879,'7100433' +138880,'7100433' +138881,'7100433' +138882,'7100433' +138883,'7100433' +138884,'7100433' +138878,'7100434' +138879,'7100434' +138880,'7100434' +138881,'7100434' +138882,'7100434' +138883,'7100434' +138884,'7100434' +138963,'7100435' +138964,'7100435' +138966,'7100435' +138965,'7100436' +138965,'7100437' +138963,'7100438' +138964,'7100438' +138966,'7100438' +138963,'7100439' +138964,'7100439' +138966,'7100439' +138965,'7100440' +138965,'7100441' +138963,'7100442' +138964,'7100442' +138966,'7100442' +138970,'7100443' +138971,'7100443' +138973,'7100443' +138974,'7100443' +138976,'7100443' +138977,'7100443' +138970,'7100444' +138973,'7100444' +138976,'7100444' +138970,'7100445' +138973,'7100445' +138976,'7100445' +138971,'7100446' +138974,'7100446' +138977,'7100446' +138970,'7100447' +138971,'7100447' +138973,'7100447' +138974,'7100447' +138976,'7100447' +138977,'7100447' +138970,'7100448' +138971,'7100448' +138973,'7100448' +138974,'7100448' +138976,'7100448' +138977,'7100448' +138970,'7100449' +138971,'7100449' +138973,'7100449' +138974,'7100449' +138976,'7100449' +138977,'7100449' +138970,'7100450' +138973,'7100450' +138976,'7100450' +138970,'7100451' +138971,'7100451' +138973,'7100451' +138974,'7100451' +138976,'7100451' +138977,'7100451' +139264,'7100452' +139265,'7100452' +139266,'7100452' +139267,'7100452' +139268,'7100452' +139269,'7100452' +139270,'7100452' +139271,'7100452' +139272,'7100452' +139273,'7100452' +139264,'7100453' +139265,'7100453' +139266,'7100453' +139267,'7100453' +139268,'7100453' +139269,'7100453' +139270,'7100453' +139271,'7100453' +139272,'7100453' +139273,'7100453' +139264,'7100454' +139265,'7100454' +139266,'7100454' +139267,'7100454' +139268,'7100454' +139269,'7100454' +139270,'7100454' +139271,'7100454' +139272,'7100454' +139273,'7100454' +139353,'7100455' +139355,'7100455' +139356,'7100455' +139357,'7100455' +139353,'7100456' +139355,'7100456' +139356,'7100456' +139357,'7100456' +139353,'7100457' +139355,'7100457' +139356,'7100457' +139357,'7100457' +139353,'7100458' +139355,'7100458' +139356,'7100458' +139357,'7100458' +139353,'7100459' +139355,'7100459' +139356,'7100459' +139357,'7100459' +144060,'7100460' +144061,'7100460' +144062,'7100460' +144063,'7100460' +144065,'7100460' +144066,'7100460' +144059,'7100461' +144067,'7100462' +144069,'7100462' +144060,'7100463' +144061,'7100463' +144062,'7100463' +144063,'7100463' +144065,'7100463' +144066,'7100463' +144059,'7100464' +144059,'7100465' +144069,'7100466' +144067,'7100467' +144059,'7100468' +144060,'7100469' +144061,'7100469' +144062,'7100469' +144063,'7100469' +144065,'7100469' +144066,'7100469' +144067,'7100469' +144060,'7100470' +144061,'7100470' +144063,'7100470' +144065,'7100470' +144066,'7100470' +144067,'7100470' +144061,'7100471' +144065,'7100471' +144069,'7100471' +144060,'7100472' +144061,'7100472' +144062,'7100472' +144063,'7100472' +144065,'7100472' +144066,'7100472' +144067,'7100472' +144060,'7100473' +144062,'7100473' +144063,'7100473' +144066,'7100473' +144059,'7100474' +144060,'7100475' +144061,'7100475' +144062,'7100475' +144063,'7100475' +144065,'7100475' +144066,'7100475' +144093,'7100476' +144092,'7100477' +144095,'7100477' +144089,'7100478' +144090,'7100478' +144094,'7100478' +144088,'7100478' +144090,'7100479' +144090,'7100480' +144089,'7100481' +144094,'7100481' +144092,'7100482' +144095,'7100482' +144088,'7100483' +144093,'7100484' +144087,'7100485' +144092,'7100486' +144095,'7100486' +144093,'7100487' +144088,'7100488' +144089,'7100489' +144090,'7100489' +144094,'7100489' +144088,'7100489' +144092,'7100489' +144093,'7100489' +144095,'7100489' +144088,'7100490' +144089,'7100491' +144090,'7100491' +144094,'7100491' +144088,'7100491' +144092,'7100491' +144093,'7100491' +144095,'7100491' +144089,'7100492' +144090,'7100492' +144094,'7100492' +144087,'7100492' +144092,'7100492' +144093,'7100492' +144095,'7100492' +144089,'7100493' +144094,'7100493' +144087,'7100493' +144092,'7100493' +144095,'7100493' +144089,'7100494' +144090,'7100494' +144094,'7100494' +144088,'7100494' +144092,'7100494' +144093,'7100494' +144095,'7100494' +144110,'7100495' +144110,'7100496' +144110,'7100497' +144110,'7100498' +144110,'7100499' +144143,'7100500' +144144,'7100500' +144145,'7100500' +144146,'7100500' +144147,'7100500' +144148,'7100500' +144149,'7100500' +144150,'7100500' +144151,'7100500' +144152,'7100500' +144153,'7100500' +144143,'7100501' +144144,'7100501' +144145,'7100501' +144146,'7100501' +144147,'7100501' +144148,'7100501' +144149,'7100501' +144150,'7100501' +144151,'7100501' +144152,'7100501' +144153,'7100501' +144143,'7100502' +144144,'7100502' +144145,'7100502' +144147,'7100502' +144149,'7100502' +144150,'7100502' +144151,'7100502' +144152,'7100502' +144153,'7100502' +144143,'7100503' +144144,'7100503' +144146,'7100503' +144147,'7100503' +144149,'7100503' +144150,'7100503' +144152,'7100503' +144153,'7100503' +144143,'7100504' +144144,'7100504' +144145,'7100504' +144146,'7100504' +144147,'7100504' +144148,'7100504' +144149,'7100504' +144150,'7100504' +144151,'7100504' +144152,'7100504' +144153,'7100504' +144157,'7100505' +144159,'7100505' +144162,'7100505' +144164,'7100505' +144165,'7100505' +144166,'7100505' +144168,'7100505' +144160,'7100505' +144161,'7100505' +144158,'7100506' +144163,'7100506' +144167,'7100506' +144169,'7100506' +144156,'7100507' +144155,'7100508' +144157,'7100509' +144159,'7100509' +144162,'7100509' +144164,'7100509' +144165,'7100509' +144166,'7100509' +144168,'7100509' +144160,'7100509' +144161,'7100509' +144158,'7100510' +144163,'7100510' +144167,'7100510' +144169,'7100510' +144156,'7100511' +144155,'7100512' +144155,'7100513' +144158,'7100513' +144163,'7100513' +144165,'7100513' +144167,'7100513' +144169,'7100513' +144160,'7100513' +144155,'7100514' +144158,'7100514' +144163,'7100514' +144165,'7100514' +144167,'7100514' +144169,'7100514' +144161,'7100514' +144156,'7100515' +144157,'7100515' +144158,'7100515' +144159,'7100515' +144162,'7100515' +144163,'7100515' +144164,'7100515' +144165,'7100515' +144166,'7100515' +144167,'7100515' +144168,'7100515' +144169,'7100515' +144160,'7100515' +144161,'7100515' +144157,'7100516' +144158,'7100516' +144159,'7100516' +144162,'7100516' +144163,'7100516' +144164,'7100516' +144165,'7100516' +144166,'7100516' +144167,'7100516' +144168,'7100516' +144169,'7100516' +144160,'7100516' +144161,'7100516' +144477,'7100517' +144478,'7100517' +144479,'7100517' +144480,'7100518' +144477,'7100519' +144478,'7100519' +144479,'7100519' +144543,'7100520' +144541,'7100521' +144547,'7100521' +144541,'7100522' +144547,'7100522' +144543,'7100523' +144543,'7100524' +144541,'7100525' +144547,'7100525' +144541,'7100526' +144547,'7100526' +144541,'7100527' +144547,'7100527' +144541,'7100528' +144547,'7100528' +144541,'7100529' +144547,'7100529' +144541,'7100530' +144547,'7100530' +144543,'7100531' +144572,'7100532' +144574,'7100532' +144575,'7100532' +144576,'7100532' +144572,'7100533' +144574,'7100533' +144575,'7100533' +144576,'7100533' +144572,'7100534' +144574,'7100534' +144575,'7100534' +144576,'7100534' diff --git a/database/sql-bench/Data/ATIS/food_service.txt b/database/sql-bench/Data/ATIS/food_service.txt new file mode 100644 index 0000000..7297e24 --- /dev/null +++ b/database/sql-bench/Data/ATIS/food_service.txt @@ -0,0 +1,121 @@ +'B',1,'FIRST','BREAKFAST' +'B',1,'COACH','BREAKFAST' +'B/',1,'FIRST','BREAKFAST' +'B/S',1,'FIRST','BREAKFAST' +'B/S',1,'COACH','SNACK' +'BD',1,'FIRST','BREAKFAST' +'BD',2,'FIRST','DINNER' +'BD',1,'COACH','BREAKFAST' +'BD',2,'COACH','DINNER' +'BDS',1,'FIRST','BREAKFAST' +'BDS',2,'FIRST','DINNER' +'BDS',3,'FIRST','SNACK' +'BDS',1,'COACH','BREAKFAST' +'BDS',2,'COACH','DINNER' +'BDS',3,'COACH','SNACK' +'BL',1,'FIRST','BREAKFAST' +'BL',2,'FIRST','LUNCH' +'BL',1,'COACH','BREAKFAST' +'BL',2,'COACH','LUNCH' +'BLD',1,'FIRST','BREAKFAST' +'BLD',2,'FIRST','LUNCH' +'BLD',3,'FIRST','DINNER' +'BLD',1,'COACH','BREAKFAST' +'BLD',2,'COACH','LUNCH' +'BLD',3,'COACH','DINNER' +'BLS',1,'FIRST','BREAKFAST' +'BLS',2,'FIRST','LUNCH' +'BLS',3,'FIRST','SNACK' +'BLS',1,'COACH','BREAKFAST' +'BLS',2,'COACH','LUNCH' +'BLS',3,'COACH','SNACK' +'BS',1,'FIRST','BREAKFAST' +'BS',2,'FIRST','SNACK' +'BS',1,'COACH','BREAKFAST' +'BS',2,'COACH','SNACK' +'BSD',1,'FIRST','BREAKFAST' +'BSD',2,'FIRST','SNACK' +'BSD',3,'FIRST','DINNER' +'BSD',1,'COACH','BREAKFAST' +'BSD',2,'COACH','SNACK' +'BSD',3,'COACH','DINNER' +'BSL',1,'FIRST','BREAKFAST' +'BSL',2,'FIRST','SNACK' +'BSL',3,'FIRST','LUNCH' +'BSL',1,'COACH','BREAKFAST' +'BSL',2,'COACH','SNACK' +'BSL',3,'COACH','LUNCH' +'D',1,'FIRST','DINNER' +'D',2,'COACH','DINNER' +'D/',1,'FIRST','DINNER' +'D/S',1,'FIRST','DINNER' +'D/S',1,'COACH','SNACK' +'DB',1,'FIRST','DINNER' +'DB',2,'FIRST','BREAKFAST' +'DB',1,'COACH','DINNER' +'DB',2,'COACH','BREAKFAST' +'DS',1,'FIRST','DINNER' +'DS',2,'FIRST','SNACK' +'DS',1,'COACH','DINNER' +'DS',2,'COACH','SNACK' +'L',1,'FIRST','LUNCH' +'L',1,'COACH','LUNCH' +'L/',1,'FIRST','LUNCH' +'L/S',1,'FIRST','LUNCH' +'L/S',1,'COACH','SNACK' +'LD',1,'FIRST','LUNCH' +'LD',2,'FIRST','DINNER' +'LD',1,'COACH','LUNCH' +'LD',2,'COACH','DINNER' +'LDS',1,'FIRST','LUNCH' +'LDS',2,'FIRST','DINNER' +'LDS',3,'FIRST','SNACK' +'LDS',1,'COACH','LUNCH' +'LDS',2,'COACH','DINNER' +'LDS',3,'COACH','SNACK' +'LS',1,'FIRST','LUNCH' +'LS',2,'FIRST','SNACK' +'LS',1,'COACH','LUNCH' +'LS',2,'COACH','SNACK' +'LS/L',1,'FIRST','LUNCH' +'LS/L',2,'FIRST','SNACK' +'LS/L',1,'COACH','LUNCH' +'LSD',1,'FIRST','LUNCH' +'LSD',2,'FIRST','SNACK' +'LSD',3,'FIRST','DINNER' +'LSD',1,'COACH','LUNCH' +'LSD',2,'COACH','SNACK' +'LSD',3,'COACH','DINNER' +'S',1,'FIRST','SNACK' +'S',1,'COACH','SNACK' +'S/',1,'FIRST','SNACK' +'SB',1,'FIRST','SNACK' +'SB',2,'FIRST','BREAKFAST' +'SB',1,'COACH','SNACK' +'SB',2,'COACH','BREAKFAST' +'SBD',1,'FIRST','SNACK' +'SBD',2,'FIRST','BREAKFAST' +'SBD',3,'FIRST','DINNER' +'SBD',1,'COACH','SNACK' +'SBD',2,'COACH','BREAKFAST' +'SBD',3,'COACH','DINNER' +'SBL',1,'FIRST','SNACK' +'SBL',2,'FIRST','BREAKFAST' +'SBL',3,'FIRST','LUNCH' +'SBL',1,'COACH','SNACK' +'SBL',2,'COACH','BREAKFAST' +'SBL',3,'COACH','LUNCH' +'SD',1,'FIRST','SNACK' +'SD',2,'FIRST','DINNER' +'SD',1,'COACH','SNACK' +'SD',2,'COACH','DINNER' +'SL',1,'FIRST','SNACK' +'SL',2,'FIRST','LUNCH' +'SL',1,'COACH','SNACK' +'SL',2,'COACH','LUNCH' +'SLD',1,'FIRST','SNACK' +'SLD',2,'FIRST','LUNCH' +'SLD',3,'FIRST','DINNER' +'SLD',1,'COACH','SNACK' +'SLD',2,'COACH','LUNCH' +'SLD',3,'COACH','DINNER' diff --git a/database/sql-bench/Data/ATIS/ground_service.txt b/database/sql-bench/Data/ATIS/ground_service.txt new file mode 100644 index 0000000..02f1875 --- /dev/null +++ b/database/sql-bench/Data/ATIS/ground_service.txt @@ -0,0 +1,33 @@ +'MATL','ATL','L',9.00 +'MATL','ATL','R',0.00 +'MATL','ATL','A',0.00 +'BBOS','BOS','L',5.00 +'BBOS','BOS','R',0.00 +'BBOS','BOS','A',0.00 +'DDFW','DFW','R',0.00 +'DDFW','DFW','L',6.00 +'FDFW','DFW','L',6.00 +'FDFW','DFW','R',0.00 +'DDEN','DEN','L',5.00 +'DDEN','DEN','R',0.00 +'DDEN','DEN','A',0.00 +'PPHL','PHL','L',4.75 +'PPHL','PHL','R',0.00 +'PPHL','PHL','A',0.00 +'PPIT','PIT','L',7.50 +'PPIT','PIT','R',0.00 +'PPIT','PIT','A',0.00 +'OOAK','OAK','L',3.50 +'OOAK','OAK','R',0.00 +'OOAK','SFO','L',6.00 +'OOAK','SFO','R',0.00 +'OOAK','SFO','A',0.00 +'SSFO','SFO','L',4.00 +'SSFO','SFO','R',0.00 +'SSFO','SFO','A',0.00 +'SSFO','OAK','L',5.00 +'WWAS','BWI','L',12.00 +'BBWI','BWI','L',5.00 +'BBWI','BWI','R',0.00 +'BBWI','BWI','A',0.00 +'','','',0.00 diff --git a/database/sql-bench/Data/ATIS/month_name.txt b/database/sql-bench/Data/ATIS/month_name.txt new file mode 100644 index 0000000..947735f --- /dev/null +++ b/database/sql-bench/Data/ATIS/month_name.txt @@ -0,0 +1,12 @@ +1,'JANUARY' +2,'FEBRUARY' +3,'MARCH' +4,'APRIL' +5,'MAY' +6,'JUNE' +7,'JULY' +8,'AUGUST' +9,'SEPTEMBER' +10,'OCTOBER' +11,'NOVEMBER' +12,'DECEMBER' diff --git a/database/sql-bench/Data/ATIS/restrict_carrier.txt b/database/sql-bench/Data/ATIS/restrict_carrier.txt new file mode 100644 index 0000000..814fc9c --- /dev/null +++ b/database/sql-bench/Data/ATIS/restrict_carrier.txt @@ -0,0 +1,612 @@ +'AP/1','AA' +'AP/2','AA' +'AP/2','AF' +'AP/2','AM' +'AP/2','EA' +'AP/2','KX' +'AP/2','MX' +'AP/2','NW' +'AP/4','AA' +'AP/4','AC' +'AP/4','AS' +'AP/4','BW' +'AP/4','CO' +'AP/4','DL' +'AP/4','EA' +'AP/4','KW' +'AP/4','LI' +'AP/4','MX' +'AP/4','PA' +'AP/4','TW' +'AP/6','AC' +'AP/6','BA' +'AP/6','CB' +'AP/6','EA' +'AP/6','ND' +'AP/6','NW' +'AP/6','OU' +'AP/6','PA' +'AP/6','US' +'AP/6','WD' +'AP/10','AA' +'AP/10','AC' +'AP/10','AM' +'AP/10','CO' +'AP/10','DL' +'AP/10','EA' +'AP/10','FH' +'AP/10','NW' +'AP/10','RP' +'AP/10','TW' +'AP/10','UA' +'AP/10','US' +'AP/12','AA' +'AP/12','CO' +'AP/12','DL' +'AP/12','EA' +'AP/12','JM' +'AP/12','ML' +'AP/12','MX' +'AP/12','PA' +'AP/12','TW' +'AP/12','US' +'AP/13','AA' +'AP/13','JM' +'AP/14','AA' +'AP/14','EA' +'AP/14','KX' +'AP/14','NW' +'AP/14','PA' +'AP/16','AC' +'AP/16','CX' +'AP/16','DL' +'AP/16','EA' +'AP/16','SN' +'AP/16','TW' +'AP/16','UA' +'AP/17','AA' +'AP/18','CP' +'AP/18','MX' +'AP/19','AC' +'AP/19','BW' +'AP/19','CU' +'AP/19','EA' +'AP/19','JM' +'AP/20','AA' +'AP/20','AC' +'AP/20','AS' +'AP/20','CO' +'AP/20','CP' +'AP/20','DL' +'AP/20','EA' +'AP/20','FH' +'AP/20','HP' +'AP/20','LH' +'AP/20','ND' +'AP/20','NR' +'AP/20','NW' +'AP/20','NX' +'AP/20','OU' +'AP/20','QB' +'AP/20','TG' +'AP/20','UA' +'AP/20','US' +'AP/20','WD' +'AP/20','YN' +'AP/20','4F' +'AP/20','4V' +'AP/20','7F' +'AP/20','8D' +'AP/21','AA' +'AP/21','AC' +'AP/21','EA' +'AP/21','KX' +'AP/21','NW' +'AP/25','AA' +'AP/25','AS' +'AP/25','EA' +'AP/25','LR' +'AP/25','MX' +'AP/25','PA' +'AP/27','AA' +'AP/27','CO' +'AP/27','DL' +'AP/27','EA' +'AP/27','HP' +'AP/27','ML' +'AP/27','NW' +'AP/27','PA' +'AP/27','TW' +'AP/27','UA' +'AP/27','US' +'AP/27','WN' +'AP/32','AA' +'AP/32','AC' +'AP/32','BA' +'AP/32','CP' +'AP/32','NW' +'AP/33','LM' +'AP/35','AA' +'AP/35','AC' +'AP/35','AS' +'AP/35','CO' +'AP/35','DF' +'AP/35','EA' +'AP/35','HA' +'AP/35','HP' +'AP/35','LM' +'AP/35','ND' +'AP/35','NW' +'AP/35','PA' +'AP/35','TW' +'AP/35','UA' +'AP/35','WD' +'AP/43','AA' +'AP/43','DF' +'AP/43','UA' +'AP/43','US' +'AP/44','AA' +'AP/44','AC' +'AP/44','AD' +'AP/44','AS' +'AP/44','BE' +'AP/44','CO' +'AP/44','DF' +'AP/44','DL' +'AP/44','EA' +'AP/44','FH' +'AP/44','HP' +'AP/44','IN' +'AP/44','IT' +'AP/44','KS' +'AP/44','ML' +'AP/44','NW' +'AP/44','PA' +'AP/44','TW' +'AP/44','UA' +'AP/44','UO' +'AP/44','US' +'AP/44','WN' +'AP/44','YN' +'AP/44','YV' +'AP/44','YW' +'AP/44','YX' +'AP/44','ZO' +'AP/44','ZK' +'AP/44','3S' +'AP/44','5A' +'AP/44','5C' +'AP/44','7F' +'AP/44','7V' +'AP/44','8G' +'AP/47','AA' +'AP/47','DO' +'AP/48','AA' +'AP/48','AC' +'AP/48','BL' +'AP/48','BW' +'AP/48','CO' +'AP/48','CP' +'AP/48','DL' +'AP/48','EA' +'AP/48','IV' +'AP/48','KW' +'AP/48','KX' +'AP/48','ML' +'AP/48','MX' +'AP/48','NR' +'AP/48','NW' +'AP/48','PA' +'AP/48','PD' +'AP/48','TW' +'AP/48','UA' +'AP/48','YV' +'AP/48','8D' +'AP/55','AA' +'AP/55','AC' +'AP/55','AS' +'AP/55','CH' +'AP/55','CO' +'AP/55','CP' +'AP/55','CT' +'AP/55','DL' +'AP/55','EA' +'AP/55','GM' +'AP/55','HA' +'AP/55','HP' +'AP/55','ML' +'AP/55','ND' +'AP/55','NR' +'AP/55','NW' +'AP/55','OD' +'AP/55','PA' +'AP/55','RP' +'AP/55','TW' +'AP/55','UA' +'AP/55','UE' +'AP/55','US' +'AP/55','WD' +'AP/55','YW' +'AP/55','YX' +'AP/55','YK' +'AP/55','ZV' +'AP/55','2V' +'AP/55','3N' +'AP/55','4N' +'AP/55','4W' +'AP/55','5A' +'AP/55','5C' +'AP/55','5L' +'AP/55','8D' +'AP/56','AA' +'AP/56','DL' +'AP/56','GM' +'AP/56','HA' +'AP/56','HP' +'AP/56','PA' +'AP/56','TW' +'AP/56','UA' +'AP/56','WD' +'AP/57','AA' +'AP/57','AC' +'AP/57','AS' +'AP/57','BE' +'AP/57','CO' +'AP/57','CP' +'AP/57','CT' +'AP/57','DL' +'AP/57','EA' +'AP/57','HP' +'AP/57','ML' +'AP/57','ND' +'AP/57','NW' +'AP/57','PA' +'AP/57','PD' +'AP/57','PS' +'AP/57','TW' +'AP/57','UA' +'AP/57','US' +'AP/57','YV' +'AP/57','YW' +'AP/57','YX' +'AP/57','ZV' +'AP/57','2P' +'AP/57','2V' +'AP/57','3N' +'AP/57','4N' +'AP/57','4X' +'AP/57','8G' +'AP/58','AS' +'AP/58','EA' +'AP/58','7H' +'AP/59','DL' +'AP/59','JN' +'AP/60','AC' +'AP/60','EA' +'AP/60','NW' +'AP/60','UA' +'AP/60','US' +'AP/61','CO' +'AP/61','FY' +'AP/61','JR' +'AP/61','2V' +'AP/68','AA' +'AP/68','AD' +'AP/68','AM' +'AP/68','AS' +'AP/68','BE' +'AP/68','CO' +'AP/68','CP' +'AP/68','CT' +'AP/68','DF' +'AP/68','DL' +'AP/68','EA' +'AP/68','EM' +'AP/68','HP' +'AP/68','IN' +'AP/68','ML' +'AP/68','MX' +'AP/68','NW' +'AP/68','OU' +'AP/68','PA' +'AP/68','QQ' +'AP/68','QS' +'AP/68','RP' +'AP/68','TW' +'AP/68','UA' +'AP/68','US' +'AP/68','YN' +'AP/68','YV' +'AP/68','YW' +'AP/68','YX' +'AP/68','ZE' +'AP/68','ZK' +'AP/68','3N' +'AP/68','5C' +'AP/68','7L' +'AP/70','AC' +'AP/70','BW' +'AP/70','EA' +'AP/70','PA' +'AP/73','AA' +'AP/73','DL' +'AP/73','EA' +'AP/73','ML' +'AP/73','PA' +'AP/73','TW' +'AP/75','AA' +'AP/75','AC' +'AP/75','AS' +'AP/75','CH' +'AP/75','CO' +'AP/75','CP' +'AP/75','DL' +'AP/75','EA' +'AP/75','HP' +'AP/75','JV' +'AP/75','KS' +'AP/75','LH' +'AP/75','ML' +'AP/75','MX' +'AP/75','ND' +'AP/75','NW' +'AP/75','OU' +'AP/75','PA' +'AP/75','RP' +'AP/75','RV' +'AP/75','TW' +'AP/75','UA' +'AP/75','US' +'AP/75','WD' +'AP/75','XE' +'AP/75','YN' +'AP/75','YV' +'AP/75','ZO' +'AP/75','7F' +'AP/75','8D' +'AP/76','MX' +'AP/76','NW' +'AP/80','AA' +'AP/80','AC' +'AP/80','AR' +'AP/80','AS' +'AP/80','BA' +'AP/80','CO' +'AP/80','CP' +'AP/80','DL' +'AP/80','EA' +'AP/80','HP' +'AP/80','JB' +'AP/80','JL' +'AP/80','JV' +'AP/80','LA' +'AP/80','LH' +'AP/80','ND' +'AP/80','NW' +'AP/80','PA' +'AP/80','TG' +'AP/80','UA' +'AP/80','US' +'AP/80','UW' +'AP/80','WD' +'AP/80','YN' +'AP/80','4V' +'AP/80','7E' +'AP/80','8D' +'AP/87','AC' +'AP/94','AA' +'AP/94','AC' +'AP/94','EA' +'AP/94','LM' +'AP/94','NW' +'EX/1','AR' +'EX/1','IB' +'EX/2','AB' +'EX/2','BW' +'EX/2','FQ' +'EX/2','MX' +'EX/2','UA' +'EX/2','UP' +'EX/3','AA' +'EX/3','CO' +'EX/3','DL' +'EX/3','EA' +'EX/3','HP' +'EX/3','PA' +'EX/3','US' +'EX/5','LR' +'EX/9','AA' +'EX/9','AC' +'EX/9','AM' +'EX/9','BA' +'EX/9','CO' +'EX/9','EA' +'EX/9','FQ' +'EX/9','HP' +'EX/9','PA' +'EX/9','TV' +'EX/11','AA' +'EX/11','AM' +'EX/11','CO' +'EX/11','CP' +'EX/11','CX' +'EX/11','DL' +'EX/11','JT' +'EX/11','LA' +'EX/11','MX' +'EX/11','NW' +'EX/11','PA' +'EX/11','UA' +'EX/12','AS' +'EX/12','CP' +'EX/12','CX' +'EX/13','AC' +'EX/13','AS' +'EX/13','BF' +'EX/13','BW' +'EX/13','DL' +'EX/13','KS' +'EX/13','LM' +'EX/13','ML' +'EX/13','YV' +'EX/13','ZV' +'EX/13','7H' +'EX/14','AA' +'EX/14','AS' +'EX/14','BE' +'EX/14','CO' +'EX/14','CP' +'EX/14','DL' +'EX/14','EA' +'EX/14','IN' +'EX/14','ML' +'EX/14','NW' +'EX/14','PA' +'EX/14','PD' +'EX/14','TW' +'EX/14','UA' +'EX/14','US' +'EX/14','WN' +'EX/14','YW' +'EX/14','ZV' +'EX/14','2V' +'EX/14','4N' +'EX/14','4X' +'EX/14','7F' +'EX/14','8D' +'EX/15','AC' +'EX/15','BW' +'EX/15','CU' +'EX/15','HP' +'EX/15','JM' +'EX/17','AA' +'EX/17','AM' +'EX/17','AS' +'EX/17','DL' +'EX/17','EA' +'EX/17','JL' +'EX/17','LH' +'EX/17','PA' +'EX/17','UA' +'EX/19','BW' +'EX/19','KX' +'EX/20','AA' +'EX/20','CO' +'EX/20','DL' +'EX/20','HE' +'EX/20','JM' +'EX/20','ML' +'EX/20','MX' +'EX/20','NW' +'EX/20','PA' +'EX/20','UA' +'EX/20','8R' +'EX/21','AA' +'EX/21','JM' +'EX/25','AA' +'EX/25','MX' +'EX/29','AA' +'EX/29','AM' +'EX/29','CO' +'EX/29','EA' +'EX/29','LH' +'EX/32','AA' +'EX/32','EA' +'EX/32','JM' +'EX/33','AA' +'EX/33','JM' +'EX/33','LI' +'EX/33','UA' +'EX/33','5T' +'EX/34','EA' +'EX/34','IN' +'EX/34','JM' +'EX/34','KW' +'EX/34','UE' +'EX/34','UP' +'EX/34','YV' +'EX/34','YL' +'EX/36','AA' +'EX/36','AC' +'EX/36','CO' +'EX/36','CP' +'EX/36','LI' +'EX/36','OU' +'EX/36','US' +'EX/38','AA' +'EX/38','EA' +'EX/38','JM' +'EX/38','KX' +'EX/43','AA' +'EX/43','AS' +'EX/43','CO' +'EX/43','CT' +'EX/43','DL' +'EX/43','EA' +'EX/43','HP' +'EX/43','MX' +'EX/43','NW' +'EX/43','OG' +'EX/43','PA' +'EX/43','TW' +'EX/43','UA' +'EX/43','US' +'EX/45','NW' +'EX/47','AA' +'EX/47','CO' +'EX/47','DL' +'EX/47','EA' +'EX/47','JM' +'EX/47','JR' +'EX/47','ML' +'EX/47','NW' +'EX/47','OG' +'EX/47','PA' +'EX/47','TW' +'EX/47','US' +'EX/48','AC' +'EX/48','AF' +'EX/48','CO' +'EX/48','CP' +'EX/48','DL' +'EX/48','JM' +'EX/48','KW' +'EX/48','MX' +'EX/48','PA' +'EX/48','SN' +'EX/55','AA' +'EX/55','AF' +'EX/55','BW' +'EX/55','CO' +'EX/55','DO' +'EX/55','EA' +'EX/55','JM' +'EX/55','KX' +'EX/55','LI' +'EX/55','LM' +'EX/55','NW' +'EX/55','PA' +'EX/55','PY' +'EX/55','TW' +'EX/55','UP' +'EX/55','2V' +'VU/1','AA' +'VU/1','AC' +'VU/1','AQ' +'VU/1','AS' +'VU/1','CP' +'VU/1','CT' +'VU/1','CX' +'VU/1','DL' +'VU/1','EA' +'VU/1','HP' +'VU/1','LW' +'VU/1','ND' +'VU/1','NW' +'VU/1','PA' +'VU/1','TB' +'VU/1','TW' +'VU/1','UA' +'VU/1','US' +'VU/1','YR' +'VU/1','6G' diff --git a/database/sql-bench/Data/ATIS/restrict_class.txt b/database/sql-bench/Data/ATIS/restrict_class.txt new file mode 100644 index 0000000..1e1ac71 --- /dev/null +++ b/database/sql-bench/Data/ATIS/restrict_class.txt @@ -0,0 +1,4 @@ +'AP/2','B7NR' +'AP/2','BW7NR' +'AP/2','BWE14' +'AP/2','YAP14' diff --git a/database/sql-bench/Data/ATIS/restriction.txt b/database/sql-bench/Data/ATIS/restriction.txt new file mode 100644 index 0000000..e72af1c --- /dev/null +++ b/database/sql-bench/Data/ATIS/restriction.txt @@ -0,0 +1,65 @@ +'AP/1','FOR TRAVEL ORIGINATING AND TERMINATING IN HAWAII','CHILDREN\'S FARES,SALES AGENTS,TOUR CONDUCTORS',7,'Y',3,150 +'AP/2','FOR TRAVEL BETWEEN UNITED STATES AND CARIBBEAN','TOUR CONDUCTORS',7,'N',3,14 +'AP/4','FOR TRAVEL BETWEEN UNITED STATES AND MEXICO','CHILDREN\'S FARES,SALES AGENTS',7,'Y',3,21 +'AP/6','FOR TRAVEL TO/FROM CANADA','CHILDREN\'S FARES,FAMILY FARES,TOUR CONDUCTORS,VISIT USA FARES',7,'Y',3,30 +'AP/10','FOR TRAVEL TO/FROM INTERMEDIATE POINTS','CONTACT CARRIER',30,'Y',3,21 +'AP/12','FOR TRAVEL BETWEEN UNITED STATES AND CARIBBEAN','CONTACT CARRIER',14,'N',3,21 +'AP/13','TRAVEL BETWEEN U.S. AND CANADA,AND POINTS IN CARIBBEAN','CONTACT CARRIER',3,'Y',0,180 +'AP/14','TRAVEL BETWEEN POINTS NAMED AND ARE NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','CONTACT CARRIER',3,'Y',1,3 +'AP/16','FARES ARE NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','CONTACT CARRIER',14,'Y',3,21 +'AP/17','ROUND TRIP TRAVEL BETWEEN U.S. AND MEXICO','SALES AGENTS (VIA AA TOUR CONDUCTORS)',7,'N',3,30 +'AP/18','ROUND TRIP TRAVEL BETWEEN CANADA AND MEXICO','FAMILY FARES,SALES AGENTS,TOUR CONDUCTORS',7,'N',7,180 +'AP/19','RND TRIP BETWEEN CANADA AND CARIBBEAN. NOT APPLICABLE TO/FROM INTERMEDIATE PNTS','CHILDREN\'S FARES,SALES AGENT,TOUR CONDUCTORS',7,'N',7,30 +'AP/20','ROUND TRIP EXCURSION FARES,NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','CHILDREN\S FARES,FAMILY FARES,TOUR CONDUCTORS',14,'Y',3,180 +'AP/21','TRAVEL TO/FROM U.S.A. AND CANADA,NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','SALES AGENTS,TOUR CONDUCTORS',14,'N',7,7 +'AP/25','FARES DO NOT APPLY TO/FROM INTERMEDIATE POINTS ON THE ROUTING','SALES AGENTS,TOUR CONDUCTORS',7,'Y',3,60 +'AP/27','FARES NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','CONTACT CARRIER',7,'Y',0,180 +'AP/32','ROUND TRIP CHARTER TO HAWAII. FARES NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','CHILDREN\'S AND FAMILY FARES,HAWAII COMMON FARE,SALES AGENTS,TOUR CONDUCTORS',7,'Y',3,30 +'AP/33','ROUND TRIP BETWEEN U.S. AND CARIBBEAN','CHILDREN\'S FARE,SALES AGENTS,TOUR CONDUCTORS',14,'Y',6,21 +'AP/35','FARES NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','SALES AGENTS,TOUR CONDUCTORS',7,'Y',0,30 +'AP/43','FARES NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','CHILDREN\'S FARE,SALES AGENTS,TOUR CONDUCTORS',14,'N',3,3 +'AP/44','ONE_WAY TRAVEL,DURING PEAK/NON-PEAK HOURS','CONTACT CARRIER',4,'Y',0,0 +'AP/47','ROUND TRIP TRAVEL','CONTACT CARRIER',14,'Y',7,30 +'AP/48','FARES NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','SALES AGENTS,TOUR CONDUCTORS,VISIT USA FARES,CHILDREN\'S FARES',7,'Y',0,0 +'AP/55','MAY COMBINE FARES (EXCEPT VIA DELTA AIRLINES) SEATS LIMITED VIA UNITED AIRLINES','CONTACT CARRIER',3,'N',0,0 +'AP/56','SEATS ARE LIMITED','CONTACT CARRIERS',7,'Y',3,45 +'AP/57','FARES NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','CHILDREN\'S FARES,SALES AGENTS,TOUR CONDUCTORS',7,'Y',3,180 +'AP/58','FARES NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','CHILDREN\'S FARES,SALES AGENTS,TOUR CONDUCTORS',7,'Y',3,330 +'AP/59','FARES NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','CHILDREN\'S FARES,SALES AGENTS,TOUR CONDUCTORS',14,'N',7,30 +'AP/60','ROUND TRIP TRAVEL BETWEEN U.S. AND CANADA','CHILDREN\'S FARES,SALES AGENTS,TOUR CONDUCTORS',7,'N',3,365 +'AP/61','FARES MAYBE COMBINED','CHILDREN\'S FARES,SALES AGENTS,TOUR CONDUCTORS',7,'Y',0,60 +'AP/68','FARES NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','CONTACT CARRIER',7,'Y',0,0 +'AP/70','ROUND TRIP TRAVEL. FARES NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','SALES AGENTS,TOUR CONDUCTORS,VISIT U.S.A. FARES,CHILDREN\'S FARES',14,'Y',7,14 +'AP/73','FARES NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','CONTACT CARRIER',7,'N',0,30 +'AP/75','FARES NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','SALES AGENTS,TOUR CONDUCTORS,VISIT U.S.A. FARES,CHILDREN\'S FARES',7,'Y',3,60 +'AP/76','ROUND TRIP TRAVEL BETWEEN U.S. AND JAMAICA','SALES AGENTS,TOUR CONDUCTORS',7,'N',0,14 +'AP/80','FARES APPLY TO/FROM INTERMEDIATE POINTS','CHILDREN\'S FARES,FAMILY FARES,SALES AGENTS,TOUR CONDUCTORS',14,'N',3,30 +'AP/87','FARES APPLY TO ROUND TRIP TRAVEL','CONTACT CARRIER',14,'Y',7,21 +'AP/94','FOR ROUND TRIP TRAVEL. FARES NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','CHILDREN\'S FARES,SALES AGENTS,TOUR CONDUCTORS',7,'Y',7,21 +'EX/1','FOR CIRCLE TRIP TRAVEL','CHILDREN\'S FARES,SALES AGENTS',0,'Y',5,60 +'EX/2','ECONOMY CLASS EXCURSION FARES','SALES AGENTS,TOUR CONDUCTORS',0,'Y',0,21 +'EX/3','FARES NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','CONTACT CARRIER',0,'Y',2,45 +'EX/5','FOR ROUND TRIP TRAVEL','CONTACT CARRIER',0,'N',5,30 +'EX/9','FARES DO NOT APPLY TO/FROM INTERMEDIATE POINTS','CHILDREN\'S FARES,SALES AGENTS,TOUR CONDUCTORS',0,'N',0,30 +'EX/11','FARES MAY BE COMBINED','CONTACT CARRIER',0,'Y',0,60 +'EX/12','FARES NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','CHILDREN\'S FARES',0,'Y',3,180 +'EX/13','FARES NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','CHILDREN\'S FARES,FAMILY FARES,SALES AGENTS,TOUR CONDUCTORS',0,'Y',0,3 +'EX/14','FARES MAY BE COMBINED','CONTACT CARRIER',0,'N',3,330 +'EX/15','ROUND TRIP TRAVEL BETWEEN CANADA AND CARIBBEAN','CONTACT CARRIER',0,'Y',7,45 +'EX/17','ROUND TRIP EXCURSION FARES','SALES AGENTS,TOUR CONDUCTORS',0,'N',0,180 +'EX/19','ROUND TRIP EXCURSION FARES BETWEEN CANADA AND CARIBBEAN','CONTACT CARRIER',0,'Y',7,7 +'EX/20','ROUND TRIP EXCURSION FARES','CONTACT CARRIER',0,'Y',0,14 +'EX/21','TRAVEL BETWEEN THE U.S.A. AND CARIBBEAN','SALES AGENTS,TOUR CONDUCTORS',0,'N',0,7 +'EX/25','VIA AA,ROUND TRIP TRAVEL BETWEEN SAN JUAN AND ACAPULCO/MEXICO CITY','SALES AGENTS,TOUR CONDUCTORS',0,'Y',3,14 +'EX/29','ROUND TRIP TRAVEL BETWEEN U.S.,CARIBBEAN,AND MEXICO','CHILDREN\'S FARES',0,'Y',0,21 +'EX/32','TRAVEL ORIGINATING IN JAMAICA','SALES AGENTS,TOUR CONDUCTORS',0,'N',0,365 +'EX/33','ROUND TRIP TRAVEL TO JAMAICA/CARIBBEAN','CHILDREN\'S FARES,TOUR CONDUCTORS',0,'N',0,21 +'EX/34','ONE DAY AWAY ROUND TRIP FARES','SALES AGENTS,TOUR CONDUCTORS',0,'N',1,1 +'EX/36','ROUND TRIP TRAVEL. NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','CHILDREN\'S FARES,FAMILY FARES,TOUR CONDUCTORS',0,'Y',1,2 +'EX/38','SAME DAY FARES (VIA EASTERN AIRLINES)','SALES AGENTS,TOUR CONDUCTORS',0,'N',1,1 +'EX/43','ROUND TRIP EXCURSION FARES','CONTACT CARRIER',0,'Y',0,365 +'EX/45','VIA AMERICAN AIRLINES ROUND TRIP TRAVEL BETWEEN KINGSTON/MONTEGO BAY','CHILDREN\'S FARES,SALES AGENTS,TOUR CONDUCTORS',0,'N',3,21 +'EX/47','ROUND TRIP TRAVEL BETWEEN U.S.,CANADA,AND CARIBBEAN','CONTACT CARRIER',0,'Y',3,21 +'EX/48','WEEKEND EXCURSION FARE','CHILDREN\'S FARE,FAMILY FARES,SALES AGENTS,TOUR CONDUCTORS',0,'N',7,365 +'EX/55','FARES MAY BE COMBINED','SALES AGENTS',0,'Y',3,21 +'VU/1','VISIT USA: INTERNATIONAL TRAVEL BEGINNING AND ENDING OUTSIDE U.S.','SALES AGENTS',0,'Y',3,21 diff --git a/database/sql-bench/Data/ATIS/state.txt b/database/sql-bench/Data/ATIS/state.txt new file mode 100644 index 0000000..9c11345 --- /dev/null +++ b/database/sql-bench/Data/ATIS/state.txt @@ -0,0 +1,63 @@ +'AB','ALBERTA','CANADA' +'AK','ALASKA','USA' +'AL','ALABAMA','USA' +'AR','ARKANSAS','USA' +'AZ','ARIZONA','USA' +'BC','BRITISH COLUMBIA','CANADA' +'CA','CALIFORNIA','USA' +'CO','COLORADO','USA' +'CT','CONNECTICUT','USA' +'DC','DISTRICT OF COLUMBIA','USA' +'DE','DELAWARE','USA' +'FL','FLORIDA','USA' +'GA','GEORGIA','USA' +'HI','HAWAII','USA' +'IA','IOWA','USA' +'ID','IDAHO','USA' +'IL','ILLINOIS','USA' +'IN','INDIANA','USA' +'KS','KANSAS','USA' +'KY','KENTUCKY','USA' +'LA','LOUISIANA','USA' +'MA','MASSACHUSETTS','USA' +'MB','MANITOBA','CANADA' +'MD','MARYLAND','USA' +'ME','MAINE','USA' +'MI','MICHIGAN','USA' +'MN','MINNESOTA','USA' +'MO','MISSOURI','USA' +'MS','MISSISSIPPI','USA' +'MT','MONTANA','USA' +'NB','NEW BRUNSWICK','CANADA' +'NC','NORTH CAROLINA','USA' +'ND','NORTH DAKOTA','USA' +'NE','NEBRASKA','USA' +'NF','NEWFOUNDLAND','CANADA' +'NH','NEW HAMPSHIRE','USA' +'NJ','NEW JERSEY','USA' +'NM','NEW MEXICO','USA' +'NS','NOVA SCOTIA','CANADA' +'NT','NORTHWEST TERRITORIES','CANADA' +'NV','NEVADA','USA' +'NY','NEW YORK','USA' +'OH','OHIO','USA' +'OK','OKLAHOMA','USA' +'ON','ONTARIO','CANADA' +'OR','OREGON','USA' +'PA','PENNSYLVANIA','USA' +'PE','PRINCE EDWARD ISLAND','CANADA' +'PQ','QUEBEC','CANADA' +'RI','RHODE ISLAND','USA' +'SC','SOUTH CAROLINA','USA' +'SD','SOUTH DAKOTA','USA' +'SK','SASKATCHEWAN','CANADA' +'TN','TENNESSEE','USA' +'TX','TEXAS','USA' +'UT','UTAH','USA' +'VA','VIRGINIA','USA' +'VT','VERMONT','USA' +'WA','WASHINGTON','USA' +'WI','WISCONSIN','USA' +'WV','WEST VIRGINIA','USA' +'WY','WYOMING','USA' +'YT','YUKON TERRITORY','CANADA' diff --git a/database/sql-bench/Data/ATIS/stop.txt b/database/sql-bench/Data/ATIS/stop.txt new file mode 100644 index 0000000..c731f82 --- /dev/null +++ b/database/sql-bench/Data/ATIS/stop.txt @@ -0,0 +1,69 @@ +101908,1,102766 +101908,2,137319 +101913,1,102770 +101913,2,137323 +101924,1,102779 +101924,2,137339 +102674,1,102129 +102674,2,112354 +105810,1,106248 +105810,2,137423 +106262,1,106229 +106262,2,137734 +106270,1,106251 +106270,2,137740 +106366,1,105795 +106366,2,112516 +106373,1,105806 +106373,2,113716 +106375,1,105800 +106375,2,112527 +107253,1,107486 +107253,2,138963 +111924,1,111886 +111924,2,102766 +111924,3,137319 +111930,1,111939 +111930,2,107199 +112413,1,111886 +112413,2,102766 +113499,1,112998 +113499,2,112352 +113710,1,112996 +113710,2,112518 +113713,1,113001 +113713,2,112520 +133423,1,133431 +133423,2,111931 +133516,1,133436 +133516,2,113582 +137410,1,137228 +137410,2,102127 +137685,1,137420 +137685,2,113500 +137814,1,137736 +137814,2,139355 +138866,1,139270 +138866,2,137335 +138965,1,138976 +138965,2,113011 +144059,1,144157 +144059,2,112783 +144087,1,144156 +144087,2,112864 +144088,1,144144 +144088,2,111929 +144092,1,144063 +144092,2,101928 +144093,1,144575 +144093,2,138868 +144095,1,144066 +144095,2,101929 +144110,1,144572 +144110,2,138882 +144160,1,144145 +144160,2,112038 +144161,1,144146 +144161,2,112039 +144543,1,144574 +144543,2,139271 diff --git a/database/sql-bench/Data/ATIS/stop1.txt b/database/sql-bench/Data/ATIS/stop1.txt new file mode 100644 index 0000000..c731f82 --- /dev/null +++ b/database/sql-bench/Data/ATIS/stop1.txt @@ -0,0 +1,69 @@ +101908,1,102766 +101908,2,137319 +101913,1,102770 +101913,2,137323 +101924,1,102779 +101924,2,137339 +102674,1,102129 +102674,2,112354 +105810,1,106248 +105810,2,137423 +106262,1,106229 +106262,2,137734 +106270,1,106251 +106270,2,137740 +106366,1,105795 +106366,2,112516 +106373,1,105806 +106373,2,113716 +106375,1,105800 +106375,2,112527 +107253,1,107486 +107253,2,138963 +111924,1,111886 +111924,2,102766 +111924,3,137319 +111930,1,111939 +111930,2,107199 +112413,1,111886 +112413,2,102766 +113499,1,112998 +113499,2,112352 +113710,1,112996 +113710,2,112518 +113713,1,113001 +113713,2,112520 +133423,1,133431 +133423,2,111931 +133516,1,133436 +133516,2,113582 +137410,1,137228 +137410,2,102127 +137685,1,137420 +137685,2,113500 +137814,1,137736 +137814,2,139355 +138866,1,139270 +138866,2,137335 +138965,1,138976 +138965,2,113011 +144059,1,144157 +144059,2,112783 +144087,1,144156 +144087,2,112864 +144088,1,144144 +144088,2,111929 +144092,1,144063 +144092,2,101928 +144093,1,144575 +144093,2,138868 +144095,1,144066 +144095,2,101929 +144110,1,144572 +144110,2,138882 +144160,1,144145 +144160,2,112038 +144161,1,144146 +144161,2,112039 +144543,1,144574 +144543,2,139271 diff --git a/database/sql-bench/Data/ATIS/time_interval.txt b/database/sql-bench/Data/ATIS/time_interval.txt new file mode 100644 index 0000000..f645ded --- /dev/null +++ b/database/sql-bench/Data/ATIS/time_interval.txt @@ -0,0 +1,12 @@ +'morning',0000,1200 +'afternoon',1200,1800 +'evening',1800,2000 +'day',600,1800 +'night',1800,2400 +'night',000,600 +'early morning',0000,800 +'mid-morning',800,1000 +'late morning',1000,1200 +'early afternoon',1200,1400 +'mid-afternoon',1400,1600 +'late afternoon',1600,1800 diff --git a/database/sql-bench/Data/ATIS/time_zone.txt b/database/sql-bench/Data/ATIS/time_zone.txt new file mode 100644 index 0000000..1cc3dc4 --- /dev/null +++ b/database/sql-bench/Data/ATIS/time_zone.txt @@ -0,0 +1,9 @@ +'HST','HAWAII/ALEUTIAN STANDARD TIME' +'AST','ALASKA STANDARD TIME' +'YST','YUKON STANDARD TIME' +'PST','PACIFIC STANDARD TIME' +'MST','MOUNTAIN STANDARD TIME' +'CST','CENTRAL STANDARD TIME' +'EST','EASTERN STANDARD TIME' +'AST','ATLANTIC STANDARD TIME' +'NST','NEWFOUNDLAND STANDARD TIME' diff --git a/database/sql-bench/Data/ATIS/transport.txt b/database/sql-bench/Data/ATIS/transport.txt new file mode 100644 index 0000000..3c3faf6 --- /dev/null +++ b/database/sql-bench/Data/ATIS/transport.txt @@ -0,0 +1,4 @@ +'L','LIMOUSINE' +'T','TAXI' +'R','RENTAL CAR' +'A','AIR TAXI OPERATION' diff --git a/database/sql-bench/Data/Wisconsin/onek.data b/database/sql-bench/Data/Wisconsin/onek.data new file mode 100644 index 0000000..4afe448 --- /dev/null +++ b/database/sql-bench/Data/Wisconsin/onek.data @@ -0,0 +1,1000 @@ +147,0,1,3,7,7,7,47,147,147,147,14,15,'RFAAAA','AAAAAA','AAAAxx' +931,1,1,3,1,11,1,31,131,431,931,2,3,'VJAAAA','BAAAAA','HHHHxx' +714,2,0,2,4,14,4,14,114,214,714,8,9,'MBAAAA','CAAAAA','OOOOxx' +711,3,1,3,1,11,1,11,111,211,711,2,3,'JBAAAA','DAAAAA','VVVVxx' +883,4,1,3,3,3,3,83,83,383,883,6,7,'ZHAAAA','EAAAAA','AAAAxx' +439,5,1,3,9,19,9,39,39,439,439,18,19,'XQAAAA','FAAAAA','HHHHxx' +670,6,0,2,0,10,0,70,70,170,670,0,1,'UZAAAA','GAAAAA','OOOOxx' +543,7,1,3,3,3,3,43,143,43,543,6,7,'XUAAAA','HAAAAA','VVVVxx' +425,8,1,1,5,5,5,25,25,425,425,10,11,'JQAAAA','IAAAAA','AAAAxx' +800,9,0,0,0,0,0,0,0,300,800,0,1,'UEAAAA','JAAAAA','HHHHxx' +489,10,1,1,9,9,9,89,89,489,489,18,19,'VSAAAA','KAAAAA','OOOOxx' +494,11,0,2,4,14,4,94,94,494,494,8,9,'ATAAAA','LAAAAA','VVVVxx' +880,12,0,0,0,0,0,80,80,380,880,0,1,'WHAAAA','MAAAAA','AAAAxx' +611,13,1,3,1,11,1,11,11,111,611,2,3,'NXAAAA','NAAAAA','HHHHxx' +226,14,0,2,6,6,6,26,26,226,226,12,13,'SIAAAA','OAAAAA','OOOOxx' +774,15,0,2,4,14,4,74,174,274,774,8,9,'UDAAAA','PAAAAA','VVVVxx' +298,16,0,2,8,18,8,98,98,298,298,16,17,'MLAAAA','QAAAAA','AAAAxx' +682,17,0,2,2,2,2,82,82,182,682,4,5,'GAAAAA','RAAAAA','HHHHxx' +864,18,0,0,4,4,4,64,64,364,864,8,9,'GHAAAA','SAAAAA','OOOOxx' +183,19,1,3,3,3,3,83,183,183,183,6,7,'BHAAAA','TAAAAA','VVVVxx' +885,20,1,1,5,5,5,85,85,385,885,10,11,'BIAAAA','UAAAAA','AAAAxx' +997,21,1,1,7,17,7,97,197,497,997,14,15,'JMAAAA','VAAAAA','HHHHxx' +966,22,0,2,6,6,6,66,166,466,966,12,13,'ELAAAA','WAAAAA','OOOOxx' +389,23,1,1,9,9,9,89,189,389,389,18,19,'ZOAAAA','XAAAAA','VVVVxx' +846,24,0,2,6,6,6,46,46,346,846,12,13,'OGAAAA','YAAAAA','AAAAxx' +206,25,0,2,6,6,6,6,6,206,206,12,13,'YHAAAA','ZAAAAA','HHHHxx' +239,26,1,3,9,19,9,39,39,239,239,18,19,'FJAAAA','ABAAAA','OOOOxx' +365,27,1,1,5,5,5,65,165,365,365,10,11,'BOAAAA','BBAAAA','VVVVxx' +204,28,0,0,4,4,4,4,4,204,204,8,9,'WHAAAA','CBAAAA','AAAAxx' +690,29,0,2,0,10,0,90,90,190,690,0,1,'OAAAAA','DBAAAA','HHHHxx' +69,30,1,1,9,9,9,69,69,69,69,18,19,'RCAAAA','EBAAAA','OOOOxx' +358,31,0,2,8,18,8,58,158,358,358,16,17,'UNAAAA','FBAAAA','VVVVxx' +269,32,1,1,9,9,9,69,69,269,269,18,19,'JKAAAA','GBAAAA','AAAAxx' +663,33,1,3,3,3,3,63,63,163,663,6,7,'NZAAAA','HBAAAA','HHHHxx' +608,34,0,0,8,8,8,8,8,108,608,16,17,'KXAAAA','IBAAAA','OOOOxx' +398,35,0,2,8,18,8,98,198,398,398,16,17,'IPAAAA','JBAAAA','VVVVxx' +330,36,0,2,0,10,0,30,130,330,330,0,1,'SMAAAA','KBAAAA','AAAAxx' +529,37,1,1,9,9,9,29,129,29,529,18,19,'JUAAAA','LBAAAA','HHHHxx' +555,38,1,3,5,15,5,55,155,55,555,10,11,'JVAAAA','MBAAAA','OOOOxx' +746,39,0,2,6,6,6,46,146,246,746,12,13,'SCAAAA','NBAAAA','VVVVxx' +558,40,0,2,8,18,8,58,158,58,558,16,17,'MVAAAA','OBAAAA','AAAAxx' +574,41,0,2,4,14,4,74,174,74,574,8,9,'CWAAAA','PBAAAA','HHHHxx' +343,42,1,3,3,3,3,43,143,343,343,6,7,'FNAAAA','QBAAAA','OOOOxx' +120,43,0,0,0,0,0,20,120,120,120,0,1,'QEAAAA','RBAAAA','VVVVxx' +461,44,1,1,1,1,1,61,61,461,461,2,3,'TRAAAA','SBAAAA','AAAAxx' +754,45,0,2,4,14,4,54,154,254,754,8,9,'ADAAAA','TBAAAA','HHHHxx' +772,46,0,0,2,12,2,72,172,272,772,4,5,'SDAAAA','UBAAAA','OOOOxx' +749,47,1,1,9,9,9,49,149,249,749,18,19,'VCAAAA','VBAAAA','VVVVxx' +386,48,0,2,6,6,6,86,186,386,386,12,13,'WOAAAA','WBAAAA','AAAAxx' +9,49,1,1,9,9,9,9,9,9,9,18,19,'JAAAAA','XBAAAA','HHHHxx' +771,50,1,3,1,11,1,71,171,271,771,2,3,'RDAAAA','YBAAAA','OOOOxx' +470,51,0,2,0,10,0,70,70,470,470,0,1,'CSAAAA','ZBAAAA','VVVVxx' +238,52,0,2,8,18,8,38,38,238,238,16,17,'EJAAAA','ACAAAA','AAAAxx' +86,53,0,2,6,6,6,86,86,86,86,12,13,'IDAAAA','BCAAAA','HHHHxx' +56,54,0,0,6,16,6,56,56,56,56,12,13,'ECAAAA','CCAAAA','OOOOxx' +767,55,1,3,7,7,7,67,167,267,767,14,15,'NDAAAA','DCAAAA','VVVVxx' +363,56,1,3,3,3,3,63,163,363,363,6,7,'ZNAAAA','ECAAAA','AAAAxx' +655,57,1,3,5,15,5,55,55,155,655,10,11,'FZAAAA','FCAAAA','HHHHxx' +394,58,0,2,4,14,4,94,194,394,394,8,9,'EPAAAA','GCAAAA','OOOOxx' +223,59,1,3,3,3,3,23,23,223,223,6,7,'PIAAAA','HCAAAA','VVVVxx' +946,60,0,2,6,6,6,46,146,446,946,12,13,'KKAAAA','ICAAAA','AAAAxx' +863,61,1,3,3,3,3,63,63,363,863,6,7,'FHAAAA','JCAAAA','HHHHxx' +913,62,1,1,3,13,3,13,113,413,913,6,7,'DJAAAA','KCAAAA','OOOOxx' +737,63,1,1,7,17,7,37,137,237,737,14,15,'JCAAAA','LCAAAA','VVVVxx' +65,64,1,1,5,5,5,65,65,65,65,10,11,'NCAAAA','MCAAAA','AAAAxx' +251,65,1,3,1,11,1,51,51,251,251,2,3,'RJAAAA','NCAAAA','HHHHxx' +686,66,0,2,6,6,6,86,86,186,686,12,13,'KAAAAA','OCAAAA','OOOOxx' +971,67,1,3,1,11,1,71,171,471,971,2,3,'JLAAAA','PCAAAA','VVVVxx' +775,68,1,3,5,15,5,75,175,275,775,10,11,'VDAAAA','QCAAAA','AAAAxx' +577,69,1,1,7,17,7,77,177,77,577,14,15,'FWAAAA','RCAAAA','HHHHxx' +830,70,0,2,0,10,0,30,30,330,830,0,1,'YFAAAA','SCAAAA','OOOOxx' +787,71,1,3,7,7,7,87,187,287,787,14,15,'HEAAAA','TCAAAA','VVVVxx' +898,72,0,2,8,18,8,98,98,398,898,16,17,'OIAAAA','UCAAAA','AAAAxx' +588,73,0,0,8,8,8,88,188,88,588,16,17,'QWAAAA','VCAAAA','HHHHxx' +872,74,0,0,2,12,2,72,72,372,872,4,5,'OHAAAA','WCAAAA','OOOOxx' +397,75,1,1,7,17,7,97,197,397,397,14,15,'HPAAAA','XCAAAA','VVVVxx' +51,76,1,3,1,11,1,51,51,51,51,2,3,'ZBAAAA','YCAAAA','AAAAxx' +381,77,1,1,1,1,1,81,181,381,381,2,3,'ROAAAA','ZCAAAA','HHHHxx' +632,78,0,0,2,12,2,32,32,132,632,4,5,'IYAAAA','ADAAAA','OOOOxx' +31,79,1,3,1,11,1,31,31,31,31,2,3,'FBAAAA','BDAAAA','VVVVxx' +855,80,1,3,5,15,5,55,55,355,855,10,11,'XGAAAA','CDAAAA','AAAAxx' +699,81,1,3,9,19,9,99,99,199,699,18,19,'XAAAAA','DDAAAA','HHHHxx' +562,82,0,2,2,2,2,62,162,62,562,4,5,'QVAAAA','EDAAAA','OOOOxx' +681,83,1,1,1,1,1,81,81,181,681,2,3,'FAAAAA','FDAAAA','VVVVxx' +585,84,1,1,5,5,5,85,185,85,585,10,11,'NWAAAA','GDAAAA','AAAAxx' +35,85,1,3,5,15,5,35,35,35,35,10,11,'JBAAAA','HDAAAA','HHHHxx' +962,86,0,2,2,2,2,62,162,462,962,4,5,'ALAAAA','IDAAAA','OOOOxx' +282,87,0,2,2,2,2,82,82,282,282,4,5,'WKAAAA','JDAAAA','VVVVxx' +254,88,0,2,4,14,4,54,54,254,254,8,9,'UJAAAA','KDAAAA','AAAAxx' +514,89,0,2,4,14,4,14,114,14,514,8,9,'UTAAAA','LDAAAA','HHHHxx' +406,90,0,2,6,6,6,6,6,406,406,12,13,'QPAAAA','MDAAAA','OOOOxx' +544,91,0,0,4,4,4,44,144,44,544,8,9,'YUAAAA','NDAAAA','VVVVxx' +704,92,0,0,4,4,4,4,104,204,704,8,9,'CBAAAA','ODAAAA','AAAAxx' +948,93,0,0,8,8,8,48,148,448,948,16,17,'MKAAAA','PDAAAA','HHHHxx' +412,94,0,0,2,12,2,12,12,412,412,4,5,'WPAAAA','QDAAAA','OOOOxx' +200,95,0,0,0,0,0,0,0,200,200,0,1,'SHAAAA','RDAAAA','VVVVxx' +583,96,1,3,3,3,3,83,183,83,583,6,7,'LWAAAA','SDAAAA','AAAAxx' +486,97,0,2,6,6,6,86,86,486,486,12,13,'SSAAAA','TDAAAA','HHHHxx' +666,98,0,2,6,6,6,66,66,166,666,12,13,'QZAAAA','UDAAAA','OOOOxx' +436,99,0,0,6,16,6,36,36,436,436,12,13,'UQAAAA','VDAAAA','VVVVxx' +842,100,0,2,2,2,2,42,42,342,842,4,5,'KGAAAA','WDAAAA','AAAAxx' +99,101,1,3,9,19,9,99,99,99,99,18,19,'VDAAAA','XDAAAA','HHHHxx' +656,102,0,0,6,16,6,56,56,156,656,12,13,'GZAAAA','YDAAAA','OOOOxx' +673,103,1,1,3,13,3,73,73,173,673,6,7,'XZAAAA','ZDAAAA','VVVVxx' +371,104,1,3,1,11,1,71,171,371,371,2,3,'HOAAAA','AEAAAA','AAAAxx' +869,105,1,1,9,9,9,69,69,369,869,18,19,'LHAAAA','BEAAAA','HHHHxx' +569,106,1,1,9,9,9,69,169,69,569,18,19,'XVAAAA','CEAAAA','OOOOxx' +616,107,0,0,6,16,6,16,16,116,616,12,13,'SXAAAA','DEAAAA','VVVVxx' +612,108,0,0,2,12,2,12,12,112,612,4,5,'OXAAAA','EEAAAA','AAAAxx' +505,109,1,1,5,5,5,5,105,5,505,10,11,'LTAAAA','FEAAAA','HHHHxx' +922,110,0,2,2,2,2,22,122,422,922,4,5,'MJAAAA','GEAAAA','OOOOxx' +221,111,1,1,1,1,1,21,21,221,221,2,3,'NIAAAA','HEAAAA','VVVVxx' +388,112,0,0,8,8,8,88,188,388,388,16,17,'YOAAAA','IEAAAA','AAAAxx' +567,113,1,3,7,7,7,67,167,67,567,14,15,'VVAAAA','JEAAAA','HHHHxx' +58,114,0,2,8,18,8,58,58,58,58,16,17,'GCAAAA','KEAAAA','OOOOxx' +316,115,0,0,6,16,6,16,116,316,316,12,13,'EMAAAA','LEAAAA','VVVVxx' +659,116,1,3,9,19,9,59,59,159,659,18,19,'JZAAAA','MEAAAA','AAAAxx' +501,117,1,1,1,1,1,1,101,1,501,2,3,'HTAAAA','NEAAAA','HHHHxx' +815,118,1,3,5,15,5,15,15,315,815,10,11,'JFAAAA','OEAAAA','OOOOxx' +638,119,0,2,8,18,8,38,38,138,638,16,17,'OYAAAA','PEAAAA','VVVVxx' +696,120,0,0,6,16,6,96,96,196,696,12,13,'UAAAAA','QEAAAA','AAAAxx' +734,121,0,2,4,14,4,34,134,234,734,8,9,'GCAAAA','REAAAA','HHHHxx' +237,122,1,1,7,17,7,37,37,237,237,14,15,'DJAAAA','SEAAAA','OOOOxx' +816,123,0,0,6,16,6,16,16,316,816,12,13,'KFAAAA','TEAAAA','VVVVxx' +917,124,1,1,7,17,7,17,117,417,917,14,15,'HJAAAA','UEAAAA','AAAAxx' +844,125,0,0,4,4,4,44,44,344,844,8,9,'MGAAAA','VEAAAA','HHHHxx' +657,126,1,1,7,17,7,57,57,157,657,14,15,'HZAAAA','WEAAAA','OOOOxx' +952,127,0,0,2,12,2,52,152,452,952,4,5,'QKAAAA','XEAAAA','VVVVxx' +519,128,1,3,9,19,9,19,119,19,519,18,19,'ZTAAAA','YEAAAA','AAAAxx' +792,129,0,0,2,12,2,92,192,292,792,4,5,'MEAAAA','ZEAAAA','HHHHxx' +275,130,1,3,5,15,5,75,75,275,275,10,11,'PKAAAA','AFAAAA','OOOOxx' +319,131,1,3,9,19,9,19,119,319,319,18,19,'HMAAAA','BFAAAA','VVVVxx' +487,132,1,3,7,7,7,87,87,487,487,14,15,'TSAAAA','CFAAAA','AAAAxx' +945,133,1,1,5,5,5,45,145,445,945,10,11,'JKAAAA','DFAAAA','HHHHxx' +584,134,0,0,4,4,4,84,184,84,584,8,9,'MWAAAA','EFAAAA','OOOOxx' +765,135,1,1,5,5,5,65,165,265,765,10,11,'LDAAAA','FFAAAA','VVVVxx' +814,136,0,2,4,14,4,14,14,314,814,8,9,'IFAAAA','GFAAAA','AAAAxx' +359,137,1,3,9,19,9,59,159,359,359,18,19,'VNAAAA','HFAAAA','HHHHxx' +548,138,0,0,8,8,8,48,148,48,548,16,17,'CVAAAA','IFAAAA','OOOOxx' +811,139,1,3,1,11,1,11,11,311,811,2,3,'FFAAAA','JFAAAA','VVVVxx' +531,140,1,3,1,11,1,31,131,31,531,2,3,'LUAAAA','KFAAAA','AAAAxx' +104,141,0,0,4,4,4,4,104,104,104,8,9,'AEAAAA','LFAAAA','HHHHxx' +33,142,1,1,3,13,3,33,33,33,33,6,7,'HBAAAA','MFAAAA','OOOOxx' +404,143,0,0,4,4,4,4,4,404,404,8,9,'OPAAAA','NFAAAA','VVVVxx' +995,144,1,3,5,15,5,95,195,495,995,10,11,'HMAAAA','OFAAAA','AAAAxx' +408,145,0,0,8,8,8,8,8,408,408,16,17,'SPAAAA','PFAAAA','HHHHxx' +93,146,1,1,3,13,3,93,93,93,93,6,7,'PDAAAA','QFAAAA','OOOOxx' +794,147,0,2,4,14,4,94,194,294,794,8,9,'OEAAAA','RFAAAA','VVVVxx' +833,148,1,1,3,13,3,33,33,333,833,6,7,'BGAAAA','SFAAAA','AAAAxx' +615,149,1,3,5,15,5,15,15,115,615,10,11,'RXAAAA','TFAAAA','HHHHxx' +333,150,1,1,3,13,3,33,133,333,333,6,7,'VMAAAA','UFAAAA','OOOOxx' +357,151,1,1,7,17,7,57,157,357,357,14,15,'TNAAAA','VFAAAA','VVVVxx' +999,152,1,3,9,19,9,99,199,499,999,18,19,'LMAAAA','WFAAAA','AAAAxx' +515,153,1,3,5,15,5,15,115,15,515,10,11,'VTAAAA','XFAAAA','HHHHxx' +685,154,1,1,5,5,5,85,85,185,685,10,11,'JAAAAA','YFAAAA','OOOOxx' +692,155,0,0,2,12,2,92,92,192,692,4,5,'QAAAAA','ZFAAAA','VVVVxx' +627,156,1,3,7,7,7,27,27,127,627,14,15,'DYAAAA','AGAAAA','AAAAxx' +654,157,0,2,4,14,4,54,54,154,654,8,9,'EZAAAA','BGAAAA','HHHHxx' +115,158,1,3,5,15,5,15,115,115,115,10,11,'LEAAAA','CGAAAA','OOOOxx' +75,159,1,3,5,15,5,75,75,75,75,10,11,'XCAAAA','DGAAAA','VVVVxx' +14,160,0,2,4,14,4,14,14,14,14,8,9,'OAAAAA','EGAAAA','AAAAxx' +148,161,0,0,8,8,8,48,148,148,148,16,17,'SFAAAA','FGAAAA','HHHHxx' +201,162,1,1,1,1,1,1,1,201,201,2,3,'THAAAA','GGAAAA','OOOOxx' +862,163,0,2,2,2,2,62,62,362,862,4,5,'EHAAAA','HGAAAA','VVVVxx' +634,164,0,2,4,14,4,34,34,134,634,8,9,'KYAAAA','IGAAAA','AAAAxx' +589,165,1,1,9,9,9,89,189,89,589,18,19,'RWAAAA','JGAAAA','HHHHxx' +142,166,0,2,2,2,2,42,142,142,142,4,5,'MFAAAA','KGAAAA','OOOOxx' +545,167,1,1,5,5,5,45,145,45,545,10,11,'ZUAAAA','LGAAAA','VVVVxx' +983,168,1,3,3,3,3,83,183,483,983,6,7,'VLAAAA','MGAAAA','AAAAxx' +87,169,1,3,7,7,7,87,87,87,87,14,15,'JDAAAA','NGAAAA','HHHHxx' +335,170,1,3,5,15,5,35,135,335,335,10,11,'XMAAAA','OGAAAA','OOOOxx' +915,171,1,3,5,15,5,15,115,415,915,10,11,'FJAAAA','PGAAAA','VVVVxx' +286,172,0,2,6,6,6,86,86,286,286,12,13,'ALAAAA','QGAAAA','AAAAxx' +361,173,1,1,1,1,1,61,161,361,361,2,3,'XNAAAA','RGAAAA','HHHHxx' +97,174,1,1,7,17,7,97,97,97,97,14,15,'TDAAAA','SGAAAA','OOOOxx' +98,175,0,2,8,18,8,98,98,98,98,16,17,'UDAAAA','TGAAAA','VVVVxx' +377,176,1,1,7,17,7,77,177,377,377,14,15,'NOAAAA','UGAAAA','AAAAxx' +525,177,1,1,5,5,5,25,125,25,525,10,11,'FUAAAA','VGAAAA','HHHHxx' +448,178,0,0,8,8,8,48,48,448,448,16,17,'GRAAAA','WGAAAA','OOOOxx' +154,179,0,2,4,14,4,54,154,154,154,8,9,'YFAAAA','XGAAAA','VVVVxx' +866,180,0,2,6,6,6,66,66,366,866,12,13,'IHAAAA','YGAAAA','AAAAxx' +741,181,1,1,1,1,1,41,141,241,741,2,3,'NCAAAA','ZGAAAA','HHHHxx' +172,182,0,0,2,12,2,72,172,172,172,4,5,'QGAAAA','AHAAAA','OOOOxx' +843,183,1,3,3,3,3,43,43,343,843,6,7,'LGAAAA','BHAAAA','VVVVxx' +378,184,0,2,8,18,8,78,178,378,378,16,17,'OOAAAA','CHAAAA','AAAAxx' +804,185,0,0,4,4,4,4,4,304,804,8,9,'YEAAAA','DHAAAA','HHHHxx' +596,186,0,0,6,16,6,96,196,96,596,12,13,'YWAAAA','EHAAAA','OOOOxx' +77,187,1,1,7,17,7,77,77,77,77,14,15,'ZCAAAA','FHAAAA','VVVVxx' +572,188,0,0,2,12,2,72,172,72,572,4,5,'AWAAAA','GHAAAA','AAAAxx' +444,189,0,0,4,4,4,44,44,444,444,8,9,'CRAAAA','HHAAAA','HHHHxx' +47,190,1,3,7,7,7,47,47,47,47,14,15,'VBAAAA','IHAAAA','OOOOxx' +274,191,0,2,4,14,4,74,74,274,274,8,9,'OKAAAA','JHAAAA','VVVVxx' +40,192,0,0,0,0,0,40,40,40,40,0,1,'OBAAAA','KHAAAA','AAAAxx' +339,193,1,3,9,19,9,39,139,339,339,18,19,'BNAAAA','LHAAAA','HHHHxx' +13,194,1,1,3,13,3,13,13,13,13,6,7,'NAAAAA','MHAAAA','OOOOxx' +878,195,0,2,8,18,8,78,78,378,878,16,17,'UHAAAA','NHAAAA','VVVVxx' +53,196,1,1,3,13,3,53,53,53,53,6,7,'BCAAAA','OHAAAA','AAAAxx' +939,197,1,3,9,19,9,39,139,439,939,18,19,'DKAAAA','PHAAAA','HHHHxx' +928,198,0,0,8,8,8,28,128,428,928,16,17,'SJAAAA','QHAAAA','OOOOxx' +886,199,0,2,6,6,6,86,86,386,886,12,13,'CIAAAA','RHAAAA','VVVVxx' +267,200,1,3,7,7,7,67,67,267,267,14,15,'HKAAAA','SHAAAA','AAAAxx' +105,201,1,1,5,5,5,5,105,105,105,10,11,'BEAAAA','THAAAA','HHHHxx' +312,202,0,0,2,12,2,12,112,312,312,4,5,'AMAAAA','UHAAAA','OOOOxx' +552,203,0,0,2,12,2,52,152,52,552,4,5,'GVAAAA','VHAAAA','VVVVxx' +918,204,0,2,8,18,8,18,118,418,918,16,17,'IJAAAA','WHAAAA','AAAAxx' +114,205,0,2,4,14,4,14,114,114,114,8,9,'KEAAAA','XHAAAA','HHHHxx' +805,206,1,1,5,5,5,5,5,305,805,10,11,'ZEAAAA','YHAAAA','OOOOxx' +875,207,1,3,5,15,5,75,75,375,875,10,11,'RHAAAA','ZHAAAA','VVVVxx' +225,208,1,1,5,5,5,25,25,225,225,10,11,'RIAAAA','AIAAAA','AAAAxx' +495,209,1,3,5,15,5,95,95,495,495,10,11,'BTAAAA','BIAAAA','HHHHxx' +150,210,0,2,0,10,0,50,150,150,150,0,1,'UFAAAA','CIAAAA','OOOOxx' +759,211,1,3,9,19,9,59,159,259,759,18,19,'FDAAAA','DIAAAA','VVVVxx' +149,212,1,1,9,9,9,49,149,149,149,18,19,'TFAAAA','EIAAAA','AAAAxx' +480,213,0,0,0,0,0,80,80,480,480,0,1,'MSAAAA','FIAAAA','HHHHxx' +1,214,1,1,1,1,1,1,1,1,1,2,3,'BAAAAA','GIAAAA','OOOOxx' +557,215,1,1,7,17,7,57,157,57,557,14,15,'LVAAAA','HIAAAA','VVVVxx' +295,216,1,3,5,15,5,95,95,295,295,10,11,'JLAAAA','IIAAAA','AAAAxx' +854,217,0,2,4,14,4,54,54,354,854,8,9,'WGAAAA','JIAAAA','HHHHxx' +420,218,0,0,0,0,0,20,20,420,420,0,1,'EQAAAA','KIAAAA','OOOOxx' +414,219,0,2,4,14,4,14,14,414,414,8,9,'YPAAAA','LIAAAA','VVVVxx' +758,220,0,2,8,18,8,58,158,258,758,16,17,'EDAAAA','MIAAAA','AAAAxx' +879,221,1,3,9,19,9,79,79,379,879,18,19,'VHAAAA','NIAAAA','HHHHxx' +332,222,0,0,2,12,2,32,132,332,332,4,5,'UMAAAA','OIAAAA','OOOOxx' +78,223,0,2,8,18,8,78,78,78,78,16,17,'ADAAAA','PIAAAA','VVVVxx' +851,224,1,3,1,11,1,51,51,351,851,2,3,'TGAAAA','QIAAAA','AAAAxx' +592,225,0,0,2,12,2,92,192,92,592,4,5,'UWAAAA','RIAAAA','HHHHxx' +979,226,1,3,9,19,9,79,179,479,979,18,19,'RLAAAA','SIAAAA','OOOOxx' +989,227,1,1,9,9,9,89,189,489,989,18,19,'BMAAAA','TIAAAA','VVVVxx' +752,228,0,0,2,12,2,52,152,252,752,4,5,'YCAAAA','UIAAAA','AAAAxx' +214,229,0,2,4,14,4,14,14,214,214,8,9,'GIAAAA','VIAAAA','HHHHxx' +453,230,1,1,3,13,3,53,53,453,453,6,7,'LRAAAA','WIAAAA','OOOOxx' +540,231,0,0,0,0,0,40,140,40,540,0,1,'UUAAAA','XIAAAA','VVVVxx' +597,232,1,1,7,17,7,97,197,97,597,14,15,'ZWAAAA','YIAAAA','AAAAxx' +356,233,0,0,6,16,6,56,156,356,356,12,13,'SNAAAA','ZIAAAA','HHHHxx' +720,234,0,0,0,0,0,20,120,220,720,0,1,'SBAAAA','AJAAAA','OOOOxx' +367,235,1,3,7,7,7,67,167,367,367,14,15,'DOAAAA','BJAAAA','VVVVxx' +762,236,0,2,2,2,2,62,162,262,762,4,5,'IDAAAA','CJAAAA','AAAAxx' +986,237,0,2,6,6,6,86,186,486,986,12,13,'YLAAAA','DJAAAA','HHHHxx' +924,238,0,0,4,4,4,24,124,424,924,8,9,'OJAAAA','EJAAAA','OOOOxx' +779,239,1,3,9,19,9,79,179,279,779,18,19,'ZDAAAA','FJAAAA','VVVVxx' +684,240,0,0,4,4,4,84,84,184,684,8,9,'IAAAAA','GJAAAA','AAAAxx' +413,241,1,1,3,13,3,13,13,413,413,6,7,'XPAAAA','HJAAAA','HHHHxx' +479,242,1,3,9,19,9,79,79,479,479,18,19,'LSAAAA','IJAAAA','OOOOxx' +731,243,1,3,1,11,1,31,131,231,731,2,3,'DCAAAA','JJAAAA','VVVVxx' +409,244,1,1,9,9,9,9,9,409,409,18,19,'TPAAAA','KJAAAA','AAAAxx' +372,245,0,0,2,12,2,72,172,372,372,4,5,'IOAAAA','LJAAAA','HHHHxx' +139,246,1,3,9,19,9,39,139,139,139,18,19,'JFAAAA','MJAAAA','OOOOxx' +717,247,1,1,7,17,7,17,117,217,717,14,15,'PBAAAA','NJAAAA','VVVVxx' +539,248,1,3,9,19,9,39,139,39,539,18,19,'TUAAAA','OJAAAA','AAAAxx' +318,249,0,2,8,18,8,18,118,318,318,16,17,'GMAAAA','PJAAAA','HHHHxx' +208,250,0,0,8,8,8,8,8,208,208,16,17,'AIAAAA','QJAAAA','OOOOxx' +797,251,1,1,7,17,7,97,197,297,797,14,15,'REAAAA','RJAAAA','VVVVxx' +661,252,1,1,1,1,1,61,61,161,661,2,3,'LZAAAA','SJAAAA','AAAAxx' +50,253,0,2,0,10,0,50,50,50,50,0,1,'YBAAAA','TJAAAA','HHHHxx' +102,254,0,2,2,2,2,2,102,102,102,4,5,'YDAAAA','UJAAAA','OOOOxx' +484,255,0,0,4,4,4,84,84,484,484,8,9,'QSAAAA','VJAAAA','VVVVxx' +108,256,0,0,8,8,8,8,108,108,108,16,17,'EEAAAA','WJAAAA','AAAAxx' +140,257,0,0,0,0,0,40,140,140,140,0,1,'KFAAAA','XJAAAA','HHHHxx' +996,258,0,0,6,16,6,96,196,496,996,12,13,'IMAAAA','YJAAAA','OOOOxx' +687,259,1,3,7,7,7,87,87,187,687,14,15,'LAAAAA','ZJAAAA','VVVVxx' +241,260,1,1,1,1,1,41,41,241,241,2,3,'HJAAAA','AKAAAA','AAAAxx' +923,261,1,3,3,3,3,23,123,423,923,6,7,'NJAAAA','BKAAAA','HHHHxx' +500,262,0,0,0,0,0,0,100,0,500,0,1,'GTAAAA','CKAAAA','OOOOxx' +536,263,0,0,6,16,6,36,136,36,536,12,13,'QUAAAA','DKAAAA','VVVVxx' +490,264,0,2,0,10,0,90,90,490,490,0,1,'WSAAAA','EKAAAA','AAAAxx' +773,265,1,1,3,13,3,73,173,273,773,6,7,'TDAAAA','FKAAAA','HHHHxx' +19,266,1,3,9,19,9,19,19,19,19,18,19,'TAAAAA','GKAAAA','OOOOxx' +534,267,0,2,4,14,4,34,134,34,534,8,9,'OUAAAA','HKAAAA','VVVVxx' +941,268,1,1,1,1,1,41,141,441,941,2,3,'FKAAAA','IKAAAA','AAAAxx' +477,269,1,1,7,17,7,77,77,477,477,14,15,'JSAAAA','JKAAAA','HHHHxx' +173,270,1,1,3,13,3,73,173,173,173,6,7,'RGAAAA','KKAAAA','OOOOxx' +113,271,1,1,3,13,3,13,113,113,113,6,7,'JEAAAA','LKAAAA','VVVVxx' +526,272,0,2,6,6,6,26,126,26,526,12,13,'GUAAAA','MKAAAA','AAAAxx' +727,273,1,3,7,7,7,27,127,227,727,14,15,'ZBAAAA','NKAAAA','HHHHxx' +302,274,0,2,2,2,2,2,102,302,302,4,5,'QLAAAA','OKAAAA','OOOOxx' +789,275,1,1,9,9,9,89,189,289,789,18,19,'JEAAAA','PKAAAA','VVVVxx' +447,276,1,3,7,7,7,47,47,447,447,14,15,'FRAAAA','QKAAAA','AAAAxx' +884,277,0,0,4,4,4,84,84,384,884,8,9,'AIAAAA','RKAAAA','HHHHxx' +718,278,0,2,8,18,8,18,118,218,718,16,17,'QBAAAA','SKAAAA','OOOOxx' +818,279,0,2,8,18,8,18,18,318,818,16,17,'MFAAAA','TKAAAA','VVVVxx' +466,280,0,2,6,6,6,66,66,466,466,12,13,'YRAAAA','UKAAAA','AAAAxx' +131,281,1,3,1,11,1,31,131,131,131,2,3,'BFAAAA','VKAAAA','HHHHxx' +503,282,1,3,3,3,3,3,103,3,503,6,7,'JTAAAA','WKAAAA','OOOOxx' +364,283,0,0,4,4,4,64,164,364,364,8,9,'AOAAAA','XKAAAA','VVVVxx' +934,284,0,2,4,14,4,34,134,434,934,8,9,'YJAAAA','YKAAAA','AAAAxx' +542,285,0,2,2,2,2,42,142,42,542,4,5,'WUAAAA','ZKAAAA','HHHHxx' +146,286,0,2,6,6,6,46,146,146,146,12,13,'QFAAAA','ALAAAA','OOOOxx' +652,287,0,0,2,12,2,52,52,152,652,4,5,'CZAAAA','BLAAAA','VVVVxx' +566,288,0,2,6,6,6,66,166,66,566,12,13,'UVAAAA','CLAAAA','AAAAxx' +788,289,0,0,8,8,8,88,188,288,788,16,17,'IEAAAA','DLAAAA','HHHHxx' +168,290,0,0,8,8,8,68,168,168,168,16,17,'MGAAAA','ELAAAA','OOOOxx' +736,291,0,0,6,16,6,36,136,236,736,12,13,'ICAAAA','FLAAAA','VVVVxx' +795,292,1,3,5,15,5,95,195,295,795,10,11,'PEAAAA','GLAAAA','AAAAxx' +103,293,1,3,3,3,3,3,103,103,103,6,7,'ZDAAAA','HLAAAA','HHHHxx' +763,294,1,3,3,3,3,63,163,263,763,6,7,'JDAAAA','ILAAAA','OOOOxx' +256,295,0,0,6,16,6,56,56,256,256,12,13,'WJAAAA','JLAAAA','VVVVxx' +63,296,1,3,3,3,3,63,63,63,63,6,7,'LCAAAA','KLAAAA','AAAAxx' +702,297,0,2,2,2,2,2,102,202,702,4,5,'ABAAAA','LLAAAA','HHHHxx' +390,298,0,2,0,10,0,90,190,390,390,0,1,'APAAAA','MLAAAA','OOOOxx' +116,299,0,0,6,16,6,16,116,116,116,12,13,'MEAAAA','NLAAAA','VVVVxx' +354,300,0,2,4,14,4,54,154,354,354,8,9,'QNAAAA','OLAAAA','AAAAxx' +162,301,0,2,2,2,2,62,162,162,162,4,5,'GGAAAA','PLAAAA','HHHHxx' +71,302,1,3,1,11,1,71,71,71,71,2,3,'TCAAAA','QLAAAA','OOOOxx' +916,303,0,0,6,16,6,16,116,416,916,12,13,'GJAAAA','RLAAAA','VVVVxx' +565,304,1,1,5,5,5,65,165,65,565,10,11,'TVAAAA','SLAAAA','AAAAxx' +509,305,1,1,9,9,9,9,109,9,509,18,19,'PTAAAA','TLAAAA','HHHHxx' +20,306,0,0,0,0,0,20,20,20,20,0,1,'UAAAAA','ULAAAA','OOOOxx' +813,307,1,1,3,13,3,13,13,313,813,6,7,'HFAAAA','VLAAAA','VVVVxx' +80,308,0,0,0,0,0,80,80,80,80,0,1,'CDAAAA','WLAAAA','AAAAxx' +400,309,0,0,0,0,0,0,0,400,400,0,1,'KPAAAA','XLAAAA','HHHHxx' +888,310,0,0,8,8,8,88,88,388,888,16,17,'EIAAAA','YLAAAA','OOOOxx' +825,311,1,1,5,5,5,25,25,325,825,10,11,'TFAAAA','ZLAAAA','VVVVxx' +401,312,1,1,1,1,1,1,1,401,401,2,3,'LPAAAA','AMAAAA','AAAAxx' +158,313,0,2,8,18,8,58,158,158,158,16,17,'CGAAAA','BMAAAA','HHHHxx' +973,314,1,1,3,13,3,73,173,473,973,6,7,'LLAAAA','CMAAAA','OOOOxx' +324,315,0,0,4,4,4,24,124,324,324,8,9,'MMAAAA','DMAAAA','VVVVxx' +873,316,1,1,3,13,3,73,73,373,873,6,7,'PHAAAA','EMAAAA','AAAAxx' +676,317,0,0,6,16,6,76,76,176,676,12,13,'AAAAAA','FMAAAA','HHHHxx' +199,318,1,3,9,19,9,99,199,199,199,18,19,'RHAAAA','GMAAAA','OOOOxx' +304,319,0,0,4,4,4,4,104,304,304,8,9,'SLAAAA','HMAAAA','VVVVxx' +338,320,0,2,8,18,8,38,138,338,338,16,17,'ANAAAA','IMAAAA','AAAAxx' +743,321,1,3,3,3,3,43,143,243,743,6,7,'PCAAAA','JMAAAA','HHHHxx' +730,322,0,2,0,10,0,30,130,230,730,0,1,'CCAAAA','KMAAAA','OOOOxx' +130,323,0,2,0,10,0,30,130,130,130,0,1,'AFAAAA','LMAAAA','VVVVxx' +224,324,0,0,4,4,4,24,24,224,224,8,9,'QIAAAA','MMAAAA','AAAAxx' +216,325,0,0,6,16,6,16,16,216,216,12,13,'IIAAAA','NMAAAA','HHHHxx' +2,326,0,2,2,2,2,2,2,2,2,4,5,'CAAAAA','OMAAAA','OOOOxx' +836,327,0,0,6,16,6,36,36,336,836,12,13,'EGAAAA','PMAAAA','VVVVxx' +443,328,1,3,3,3,3,43,43,443,443,6,7,'BRAAAA','QMAAAA','AAAAxx' +777,329,1,1,7,17,7,77,177,277,777,14,15,'XDAAAA','RMAAAA','HHHHxx' +126,330,0,2,6,6,6,26,126,126,126,12,13,'WEAAAA','SMAAAA','OOOOxx' +117,331,1,1,7,17,7,17,117,117,117,14,15,'NEAAAA','TMAAAA','VVVVxx' +633,332,1,1,3,13,3,33,33,133,633,6,7,'JYAAAA','UMAAAA','AAAAxx' +310,333,0,2,0,10,0,10,110,310,310,0,1,'YLAAAA','VMAAAA','HHHHxx' +622,334,0,2,2,2,2,22,22,122,622,4,5,'YXAAAA','WMAAAA','OOOOxx' +268,335,0,0,8,8,8,68,68,268,268,16,17,'IKAAAA','XMAAAA','VVVVxx' +384,336,0,0,4,4,4,84,184,384,384,8,9,'UOAAAA','YMAAAA','AAAAxx' +460,337,0,0,0,0,0,60,60,460,460,0,1,'SRAAAA','ZMAAAA','HHHHxx' +475,338,1,3,5,15,5,75,75,475,475,10,11,'HSAAAA','ANAAAA','OOOOxx' +624,339,0,0,4,4,4,24,24,124,624,8,9,'AYAAAA','BNAAAA','VVVVxx' +826,340,0,2,6,6,6,26,26,326,826,12,13,'UFAAAA','CNAAAA','AAAAxx' +680,341,0,0,0,0,0,80,80,180,680,0,1,'EAAAAA','DNAAAA','HHHHxx' +306,342,0,2,6,6,6,6,106,306,306,12,13,'ULAAAA','ENAAAA','OOOOxx' +896,343,0,0,6,16,6,96,96,396,896,12,13,'MIAAAA','FNAAAA','VVVVxx' +30,344,0,2,0,10,0,30,30,30,30,0,1,'EBAAAA','GNAAAA','AAAAxx' +576,345,0,0,6,16,6,76,176,76,576,12,13,'EWAAAA','HNAAAA','HHHHxx' +551,346,1,3,1,11,1,51,151,51,551,2,3,'FVAAAA','INAAAA','OOOOxx' +639,347,1,3,9,19,9,39,39,139,639,18,19,'PYAAAA','JNAAAA','VVVVxx' +975,348,1,3,5,15,5,75,175,475,975,10,11,'NLAAAA','KNAAAA','AAAAxx' +882,349,0,2,2,2,2,82,82,382,882,4,5,'YHAAAA','LNAAAA','HHHHxx' +160,350,0,0,0,0,0,60,160,160,160,0,1,'EGAAAA','MNAAAA','OOOOxx' +522,351,0,2,2,2,2,22,122,22,522,4,5,'CUAAAA','NNAAAA','VVVVxx' +620,352,0,0,0,0,0,20,20,120,620,0,1,'WXAAAA','ONAAAA','AAAAxx' +719,353,1,3,9,19,9,19,119,219,719,18,19,'RBAAAA','PNAAAA','HHHHxx' +88,354,0,0,8,8,8,88,88,88,88,16,17,'KDAAAA','QNAAAA','OOOOxx' +614,355,0,2,4,14,4,14,14,114,614,8,9,'QXAAAA','RNAAAA','VVVVxx' +54,356,0,2,4,14,4,54,54,54,54,8,9,'CCAAAA','SNAAAA','AAAAxx' +209,357,1,1,9,9,9,9,9,209,209,18,19,'BIAAAA','TNAAAA','HHHHxx' +67,358,1,3,7,7,7,67,67,67,67,14,15,'PCAAAA','UNAAAA','OOOOxx' +809,359,1,1,9,9,9,9,9,309,809,18,19,'DFAAAA','VNAAAA','VVVVxx' +982,360,0,2,2,2,2,82,182,482,982,4,5,'ULAAAA','WNAAAA','AAAAxx' +817,361,1,1,7,17,7,17,17,317,817,14,15,'LFAAAA','XNAAAA','HHHHxx' +187,362,1,3,7,7,7,87,187,187,187,14,15,'FHAAAA','YNAAAA','OOOOxx' +992,363,0,0,2,12,2,92,192,492,992,4,5,'EMAAAA','ZNAAAA','VVVVxx' +580,364,0,0,0,0,0,80,180,80,580,0,1,'IWAAAA','AOAAAA','AAAAxx' +658,365,0,2,8,18,8,58,58,158,658,16,17,'IZAAAA','BOAAAA','HHHHxx' +222,366,0,2,2,2,2,22,22,222,222,4,5,'OIAAAA','COAAAA','OOOOxx' +667,367,1,3,7,7,7,67,67,167,667,14,15,'RZAAAA','DOAAAA','VVVVxx' +715,368,1,3,5,15,5,15,115,215,715,10,11,'NBAAAA','EOAAAA','AAAAxx' +990,369,0,2,0,10,0,90,190,490,990,0,1,'CMAAAA','FOAAAA','HHHHxx' +22,370,0,2,2,2,2,22,22,22,22,4,5,'WAAAAA','GOAAAA','OOOOxx' +362,371,0,2,2,2,2,62,162,362,362,4,5,'YNAAAA','HOAAAA','VVVVxx' +376,372,0,0,6,16,6,76,176,376,376,12,13,'MOAAAA','IOAAAA','AAAAxx' +246,373,0,2,6,6,6,46,46,246,246,12,13,'MJAAAA','JOAAAA','HHHHxx' +300,374,0,0,0,0,0,0,100,300,300,0,1,'OLAAAA','KOAAAA','OOOOxx' +231,375,1,3,1,11,1,31,31,231,231,2,3,'XIAAAA','LOAAAA','VVVVxx' +151,376,1,3,1,11,1,51,151,151,151,2,3,'VFAAAA','MOAAAA','AAAAxx' +29,377,1,1,9,9,9,29,29,29,29,18,19,'DBAAAA','NOAAAA','HHHHxx' +297,378,1,1,7,17,7,97,97,297,297,14,15,'LLAAAA','OOAAAA','OOOOxx' +403,379,1,3,3,3,3,3,3,403,403,6,7,'NPAAAA','POAAAA','VVVVxx' +716,380,0,0,6,16,6,16,116,216,716,12,13,'OBAAAA','QOAAAA','AAAAxx' +260,381,0,0,0,0,0,60,60,260,260,0,1,'AKAAAA','ROAAAA','HHHHxx' +170,382,0,2,0,10,0,70,170,170,170,0,1,'OGAAAA','SOAAAA','OOOOxx' +285,383,1,1,5,5,5,85,85,285,285,10,11,'ZKAAAA','TOAAAA','VVVVxx' +82,384,0,2,2,2,2,82,82,82,82,4,5,'EDAAAA','UOAAAA','AAAAxx' +958,385,0,2,8,18,8,58,158,458,958,16,17,'WKAAAA','VOAAAA','HHHHxx' +175,386,1,3,5,15,5,75,175,175,175,10,11,'TGAAAA','WOAAAA','OOOOxx' +671,387,1,3,1,11,1,71,71,171,671,2,3,'VZAAAA','XOAAAA','VVVVxx' +822,388,0,2,2,2,2,22,22,322,822,4,5,'QFAAAA','YOAAAA','AAAAxx' +573,389,1,1,3,13,3,73,173,73,573,6,7,'BWAAAA','ZOAAAA','HHHHxx' +723,390,1,3,3,3,3,23,123,223,723,6,7,'VBAAAA','APAAAA','OOOOxx' +195,391,1,3,5,15,5,95,195,195,195,10,11,'NHAAAA','BPAAAA','VVVVxx' +197,392,1,1,7,17,7,97,197,197,197,14,15,'PHAAAA','CPAAAA','AAAAxx' +755,393,1,3,5,15,5,55,155,255,755,10,11,'BDAAAA','DPAAAA','HHHHxx' +42,394,0,2,2,2,2,42,42,42,42,4,5,'QBAAAA','EPAAAA','OOOOxx' +897,395,1,1,7,17,7,97,97,397,897,14,15,'NIAAAA','FPAAAA','VVVVxx' +309,396,1,1,9,9,9,9,109,309,309,18,19,'XLAAAA','GPAAAA','AAAAxx' +724,397,0,0,4,4,4,24,124,224,724,8,9,'WBAAAA','HPAAAA','HHHHxx' +474,398,0,2,4,14,4,74,74,474,474,8,9,'GSAAAA','IPAAAA','OOOOxx' +345,399,1,1,5,5,5,45,145,345,345,10,11,'HNAAAA','JPAAAA','VVVVxx' +678,400,0,2,8,18,8,78,78,178,678,16,17,'CAAAAA','KPAAAA','AAAAxx' +757,401,1,1,7,17,7,57,157,257,757,14,15,'DDAAAA','LPAAAA','HHHHxx' +600,402,0,0,0,0,0,0,0,100,600,0,1,'CXAAAA','MPAAAA','OOOOxx' +184,403,0,0,4,4,4,84,184,184,184,8,9,'CHAAAA','NPAAAA','VVVVxx' +155,404,1,3,5,15,5,55,155,155,155,10,11,'ZFAAAA','OPAAAA','AAAAxx' +136,405,0,0,6,16,6,36,136,136,136,12,13,'GFAAAA','PPAAAA','HHHHxx' +889,406,1,1,9,9,9,89,89,389,889,18,19,'FIAAAA','QPAAAA','OOOOxx' +95,407,1,3,5,15,5,95,95,95,95,10,11,'RDAAAA','RPAAAA','VVVVxx' +549,408,1,1,9,9,9,49,149,49,549,18,19,'DVAAAA','SPAAAA','AAAAxx' +81,409,1,1,1,1,1,81,81,81,81,2,3,'DDAAAA','TPAAAA','HHHHxx' +679,410,1,3,9,19,9,79,79,179,679,18,19,'DAAAAA','UPAAAA','OOOOxx' +27,411,1,3,7,7,7,27,27,27,27,14,15,'BBAAAA','VPAAAA','VVVVxx' +748,412,0,0,8,8,8,48,148,248,748,16,17,'UCAAAA','WPAAAA','AAAAxx' +107,413,1,3,7,7,7,7,107,107,107,14,15,'DEAAAA','XPAAAA','HHHHxx' +870,414,0,2,0,10,0,70,70,370,870,0,1,'MHAAAA','YPAAAA','OOOOxx' +848,415,0,0,8,8,8,48,48,348,848,16,17,'QGAAAA','ZPAAAA','VVVVxx' +764,416,0,0,4,4,4,64,164,264,764,8,9,'KDAAAA','AQAAAA','AAAAxx' +535,417,1,3,5,15,5,35,135,35,535,10,11,'PUAAAA','BQAAAA','HHHHxx' +211,418,1,3,1,11,1,11,11,211,211,2,3,'DIAAAA','CQAAAA','OOOOxx' +625,419,1,1,5,5,5,25,25,125,625,10,11,'BYAAAA','DQAAAA','VVVVxx' +96,420,0,0,6,16,6,96,96,96,96,12,13,'SDAAAA','EQAAAA','AAAAxx' +828,421,0,0,8,8,8,28,28,328,828,16,17,'WFAAAA','FQAAAA','HHHHxx' +229,422,1,1,9,9,9,29,29,229,229,18,19,'VIAAAA','GQAAAA','OOOOxx' +602,423,0,2,2,2,2,2,2,102,602,4,5,'EXAAAA','HQAAAA','VVVVxx' +742,424,0,2,2,2,2,42,142,242,742,4,5,'OCAAAA','IQAAAA','AAAAxx' +451,425,1,3,1,11,1,51,51,451,451,2,3,'JRAAAA','JQAAAA','HHHHxx' +991,426,1,3,1,11,1,91,191,491,991,2,3,'DMAAAA','KQAAAA','OOOOxx' +301,427,1,1,1,1,1,1,101,301,301,2,3,'PLAAAA','LQAAAA','VVVVxx' +510,428,0,2,0,10,0,10,110,10,510,0,1,'QTAAAA','MQAAAA','AAAAxx' +299,429,1,3,9,19,9,99,99,299,299,18,19,'NLAAAA','NQAAAA','HHHHxx' +961,430,1,1,1,1,1,61,161,461,961,2,3,'ZKAAAA','OQAAAA','OOOOxx' +3,431,1,3,3,3,3,3,3,3,3,6,7,'DAAAAA','PQAAAA','VVVVxx' +106,432,0,2,6,6,6,6,106,106,106,12,13,'CEAAAA','QQAAAA','AAAAxx' +591,433,1,3,1,11,1,91,191,91,591,2,3,'TWAAAA','RQAAAA','HHHHxx' +700,434,0,0,0,0,0,0,100,200,700,0,1,'YAAAAA','SQAAAA','OOOOxx' +841,435,1,1,1,1,1,41,41,341,841,2,3,'JGAAAA','TQAAAA','VVVVxx' +829,436,1,1,9,9,9,29,29,329,829,18,19,'XFAAAA','UQAAAA','AAAAxx' +508,437,0,0,8,8,8,8,108,8,508,16,17,'OTAAAA','VQAAAA','HHHHxx' +750,438,0,2,0,10,0,50,150,250,750,0,1,'WCAAAA','WQAAAA','OOOOxx' +665,439,1,1,5,5,5,65,65,165,665,10,11,'PZAAAA','XQAAAA','VVVVxx' +157,440,1,1,7,17,7,57,157,157,157,14,15,'BGAAAA','YQAAAA','AAAAxx' +694,441,0,2,4,14,4,94,94,194,694,8,9,'SAAAAA','ZQAAAA','HHHHxx' +176,442,0,0,6,16,6,76,176,176,176,12,13,'UGAAAA','ARAAAA','OOOOxx' +950,443,0,2,0,10,0,50,150,450,950,0,1,'OKAAAA','BRAAAA','VVVVxx' +970,444,0,2,0,10,0,70,170,470,970,0,1,'ILAAAA','CRAAAA','AAAAxx' +496,445,0,0,6,16,6,96,96,496,496,12,13,'CTAAAA','DRAAAA','HHHHxx' +429,446,1,1,9,9,9,29,29,429,429,18,19,'NQAAAA','ERAAAA','OOOOxx' +907,447,1,3,7,7,7,7,107,407,907,14,15,'XIAAAA','FRAAAA','VVVVxx' +72,448,0,0,2,12,2,72,72,72,72,4,5,'UCAAAA','GRAAAA','AAAAxx' +186,449,0,2,6,6,6,86,186,186,186,12,13,'EHAAAA','HRAAAA','HHHHxx' +713,450,1,1,3,13,3,13,113,213,713,6,7,'LBAAAA','IRAAAA','OOOOxx' +432,451,0,0,2,12,2,32,32,432,432,4,5,'QQAAAA','JRAAAA','VVVVxx' +735,452,1,3,5,15,5,35,135,235,735,10,11,'HCAAAA','KRAAAA','AAAAxx' +516,453,0,0,6,16,6,16,116,16,516,12,13,'WTAAAA','LRAAAA','HHHHxx' +964,454,0,0,4,4,4,64,164,464,964,8,9,'CLAAAA','MRAAAA','OOOOxx' +840,455,0,0,0,0,0,40,40,340,840,0,1,'IGAAAA','NRAAAA','VVVVxx' +550,456,0,2,0,10,0,50,150,50,550,0,1,'EVAAAA','ORAAAA','AAAAxx' +360,457,0,0,0,0,0,60,160,360,360,0,1,'WNAAAA','PRAAAA','HHHHxx' +827,458,1,3,7,7,7,27,27,327,827,14,15,'VFAAAA','QRAAAA','OOOOxx' +959,459,1,3,9,19,9,59,159,459,959,18,19,'XKAAAA','RRAAAA','VVVVxx' +454,460,0,2,4,14,4,54,54,454,454,8,9,'MRAAAA','SRAAAA','AAAAxx' +819,461,1,3,9,19,9,19,19,319,819,18,19,'NFAAAA','TRAAAA','HHHHxx' +745,462,1,1,5,5,5,45,145,245,745,10,11,'RCAAAA','URAAAA','OOOOxx' +279,463,1,3,9,19,9,79,79,279,279,18,19,'TKAAAA','VRAAAA','VVVVxx' +426,464,0,2,6,6,6,26,26,426,426,12,13,'KQAAAA','WRAAAA','AAAAxx' +70,465,0,2,0,10,0,70,70,70,70,0,1,'SCAAAA','XRAAAA','HHHHxx' +637,466,1,1,7,17,7,37,37,137,637,14,15,'NYAAAA','YRAAAA','OOOOxx' +417,467,1,1,7,17,7,17,17,417,417,14,15,'BQAAAA','ZRAAAA','VVVVxx' +586,468,0,2,6,6,6,86,186,86,586,12,13,'OWAAAA','ASAAAA','AAAAxx' +314,469,0,2,4,14,4,14,114,314,314,8,9,'CMAAAA','BSAAAA','HHHHxx' +101,470,1,1,1,1,1,1,101,101,101,2,3,'XDAAAA','CSAAAA','OOOOxx' +205,471,1,1,5,5,5,5,5,205,205,10,11,'XHAAAA','DSAAAA','VVVVxx' +969,472,1,1,9,9,9,69,169,469,969,18,19,'HLAAAA','ESAAAA','AAAAxx' +217,473,1,1,7,17,7,17,17,217,217,14,15,'JIAAAA','FSAAAA','HHHHxx' +281,474,1,1,1,1,1,81,81,281,281,2,3,'VKAAAA','GSAAAA','OOOOxx' +984,475,0,0,4,4,4,84,184,484,984,8,9,'WLAAAA','HSAAAA','VVVVxx' +366,476,0,2,6,6,6,66,166,366,366,12,13,'COAAAA','ISAAAA','AAAAxx' +483,477,1,3,3,3,3,83,83,483,483,6,7,'PSAAAA','JSAAAA','HHHHxx' +838,478,0,2,8,18,8,38,38,338,838,16,17,'GGAAAA','KSAAAA','OOOOxx' +64,479,0,0,4,4,4,64,64,64,64,8,9,'MCAAAA','LSAAAA','VVVVxx' +981,480,1,1,1,1,1,81,181,481,981,2,3,'TLAAAA','MSAAAA','AAAAxx' +538,481,0,2,8,18,8,38,138,38,538,16,17,'SUAAAA','NSAAAA','HHHHxx' +39,482,1,3,9,19,9,39,39,39,39,18,19,'NBAAAA','OSAAAA','OOOOxx' +60,483,0,0,0,0,0,60,60,60,60,0,1,'ICAAAA','PSAAAA','VVVVxx' +874,484,0,2,4,14,4,74,74,374,874,8,9,'QHAAAA','QSAAAA','AAAAxx' +955,485,1,3,5,15,5,55,155,455,955,10,11,'TKAAAA','RSAAAA','HHHHxx' +347,486,1,3,7,7,7,47,147,347,347,14,15,'JNAAAA','SSAAAA','OOOOxx' +227,487,1,3,7,7,7,27,27,227,227,14,15,'TIAAAA','TSAAAA','VVVVxx' +44,488,0,0,4,4,4,44,44,44,44,8,9,'SBAAAA','USAAAA','AAAAxx' +446,489,0,2,6,6,6,46,46,446,446,12,13,'ERAAAA','VSAAAA','HHHHxx' +605,490,1,1,5,5,5,5,5,105,605,10,11,'HXAAAA','WSAAAA','OOOOxx' +570,491,0,2,0,10,0,70,170,70,570,0,1,'YVAAAA','XSAAAA','VVVVxx' +895,492,1,3,5,15,5,95,95,395,895,10,11,'LIAAAA','YSAAAA','AAAAxx' +760,493,0,0,0,0,0,60,160,260,760,0,1,'GDAAAA','ZSAAAA','HHHHxx' +428,494,0,0,8,8,8,28,28,428,428,16,17,'MQAAAA','ATAAAA','OOOOxx' +628,495,0,0,8,8,8,28,28,128,628,16,17,'EYAAAA','BTAAAA','VVVVxx' +933,496,1,1,3,13,3,33,133,433,933,6,7,'XJAAAA','CTAAAA','AAAAxx' +263,497,1,3,3,3,3,63,63,263,263,6,7,'DKAAAA','DTAAAA','HHHHxx' +729,498,1,1,9,9,9,29,129,229,729,18,19,'BCAAAA','ETAAAA','OOOOxx' +860,499,0,0,0,0,0,60,60,360,860,0,1,'CHAAAA','FTAAAA','VVVVxx' +76,500,0,0,6,16,6,76,76,76,76,12,13,'YCAAAA','GTAAAA','AAAAxx' +293,501,1,1,3,13,3,93,93,293,293,6,7,'HLAAAA','HTAAAA','HHHHxx' +296,502,0,0,6,16,6,96,96,296,296,12,13,'KLAAAA','ITAAAA','OOOOxx' +124,503,0,0,4,4,4,24,124,124,124,8,9,'UEAAAA','JTAAAA','VVVVxx' +568,504,0,0,8,8,8,68,168,68,568,16,17,'WVAAAA','KTAAAA','AAAAxx' +337,505,1,1,7,17,7,37,137,337,337,14,15,'ZMAAAA','LTAAAA','HHHHxx' +464,506,0,0,4,4,4,64,64,464,464,8,9,'WRAAAA','MTAAAA','OOOOxx' +582,507,0,2,2,2,2,82,182,82,582,4,5,'KWAAAA','NTAAAA','VVVVxx' +207,508,1,3,7,7,7,7,7,207,207,14,15,'ZHAAAA','OTAAAA','AAAAxx' +518,509,0,2,8,18,8,18,118,18,518,16,17,'YTAAAA','PTAAAA','HHHHxx' +513,510,1,1,3,13,3,13,113,13,513,6,7,'TTAAAA','QTAAAA','OOOOxx' +127,511,1,3,7,7,7,27,127,127,127,14,15,'XEAAAA','RTAAAA','VVVVxx' +396,512,0,0,6,16,6,96,196,396,396,12,13,'GPAAAA','STAAAA','AAAAxx' +781,513,1,1,1,1,1,81,181,281,781,2,3,'BEAAAA','TTAAAA','HHHHxx' +233,514,1,1,3,13,3,33,33,233,233,6,7,'ZIAAAA','UTAAAA','OOOOxx' +709,515,1,1,9,9,9,9,109,209,709,18,19,'HBAAAA','VTAAAA','VVVVxx' +325,516,1,1,5,5,5,25,125,325,325,10,11,'NMAAAA','WTAAAA','AAAAxx' +143,517,1,3,3,3,3,43,143,143,143,6,7,'NFAAAA','XTAAAA','HHHHxx' +824,518,0,0,4,4,4,24,24,324,824,8,9,'SFAAAA','YTAAAA','OOOOxx' +122,519,0,2,2,2,2,22,122,122,122,4,5,'SEAAAA','ZTAAAA','VVVVxx' +10,520,0,2,0,10,0,10,10,10,10,0,1,'KAAAAA','AUAAAA','AAAAxx' +41,521,1,1,1,1,1,41,41,41,41,2,3,'PBAAAA','BUAAAA','HHHHxx' +618,522,0,2,8,18,8,18,18,118,618,16,17,'UXAAAA','CUAAAA','OOOOxx' +161,523,1,1,1,1,1,61,161,161,161,2,3,'FGAAAA','DUAAAA','VVVVxx' +801,524,1,1,1,1,1,1,1,301,801,2,3,'VEAAAA','EUAAAA','AAAAxx' +768,525,0,0,8,8,8,68,168,268,768,16,17,'ODAAAA','FUAAAA','HHHHxx' +642,526,0,2,2,2,2,42,42,142,642,4,5,'SYAAAA','GUAAAA','OOOOxx' +803,527,1,3,3,3,3,3,3,303,803,6,7,'XEAAAA','HUAAAA','VVVVxx' +317,528,1,1,7,17,7,17,117,317,317,14,15,'FMAAAA','IUAAAA','AAAAxx' +938,529,0,2,8,18,8,38,138,438,938,16,17,'CKAAAA','JUAAAA','HHHHxx' +649,530,1,1,9,9,9,49,49,149,649,18,19,'ZYAAAA','KUAAAA','OOOOxx' +738,531,0,2,8,18,8,38,138,238,738,16,17,'KCAAAA','LUAAAA','VVVVxx' +344,532,0,0,4,4,4,44,144,344,344,8,9,'GNAAAA','MUAAAA','AAAAxx' +399,533,1,3,9,19,9,99,199,399,399,18,19,'JPAAAA','NUAAAA','HHHHxx' +609,534,1,1,9,9,9,9,9,109,609,18,19,'LXAAAA','OUAAAA','OOOOxx' +677,535,1,1,7,17,7,77,77,177,677,14,15,'BAAAAA','PUAAAA','VVVVxx' +478,536,0,2,8,18,8,78,78,478,478,16,17,'KSAAAA','QUAAAA','AAAAxx' +452,537,0,0,2,12,2,52,52,452,452,4,5,'KRAAAA','RUAAAA','HHHHxx' +261,538,1,1,1,1,1,61,61,261,261,2,3,'BKAAAA','SUAAAA','OOOOxx' +449,539,1,1,9,9,9,49,49,449,449,18,19,'HRAAAA','TUAAAA','VVVVxx' +433,540,1,1,3,13,3,33,33,433,433,6,7,'RQAAAA','UUAAAA','AAAAxx' +5,541,1,1,5,5,5,5,5,5,5,10,11,'FAAAAA','VUAAAA','HHHHxx' +664,542,0,0,4,4,4,64,64,164,664,8,9,'OZAAAA','WUAAAA','OOOOxx' +887,543,1,3,7,7,7,87,87,387,887,14,15,'DIAAAA','XUAAAA','VVVVxx' +546,544,0,2,6,6,6,46,146,46,546,12,13,'AVAAAA','YUAAAA','AAAAxx' +253,545,1,1,3,13,3,53,53,253,253,6,7,'TJAAAA','ZUAAAA','HHHHxx' +235,546,1,3,5,15,5,35,35,235,235,10,11,'BJAAAA','AVAAAA','OOOOxx' +258,547,0,2,8,18,8,58,58,258,258,16,17,'YJAAAA','BVAAAA','VVVVxx' +621,548,1,1,1,1,1,21,21,121,621,2,3,'XXAAAA','CVAAAA','AAAAxx' +998,549,0,2,8,18,8,98,198,498,998,16,17,'KMAAAA','DVAAAA','HHHHxx' +236,550,0,0,6,16,6,36,36,236,236,12,13,'CJAAAA','EVAAAA','OOOOxx' +537,551,1,1,7,17,7,37,137,37,537,14,15,'RUAAAA','FVAAAA','VVVVxx' +769,552,1,1,9,9,9,69,169,269,769,18,19,'PDAAAA','GVAAAA','AAAAxx' +921,553,1,1,1,1,1,21,121,421,921,2,3,'LJAAAA','HVAAAA','HHHHxx' +951,554,1,3,1,11,1,51,151,451,951,2,3,'PKAAAA','IVAAAA','OOOOxx' +240,555,0,0,0,0,0,40,40,240,240,0,1,'GJAAAA','JVAAAA','VVVVxx' +644,556,0,0,4,4,4,44,44,144,644,8,9,'UYAAAA','KVAAAA','AAAAxx' +352,557,0,0,2,12,2,52,152,352,352,4,5,'ONAAAA','LVAAAA','HHHHxx' +613,558,1,1,3,13,3,13,13,113,613,6,7,'PXAAAA','MVAAAA','OOOOxx' +784,559,0,0,4,4,4,84,184,284,784,8,9,'EEAAAA','NVAAAA','VVVVxx' +61,560,1,1,1,1,1,61,61,61,61,2,3,'JCAAAA','OVAAAA','AAAAxx' +144,561,0,0,4,4,4,44,144,144,144,8,9,'OFAAAA','PVAAAA','HHHHxx' +94,562,0,2,4,14,4,94,94,94,94,8,9,'QDAAAA','QVAAAA','OOOOxx' +270,563,0,2,0,10,0,70,70,270,270,0,1,'KKAAAA','RVAAAA','VVVVxx' +942,564,0,2,2,2,2,42,142,442,942,4,5,'GKAAAA','SVAAAA','AAAAxx' +756,565,0,0,6,16,6,56,156,256,756,12,13,'CDAAAA','TVAAAA','HHHHxx' +321,566,1,1,1,1,1,21,121,321,321,2,3,'JMAAAA','UVAAAA','OOOOxx' +36,567,0,0,6,16,6,36,36,36,36,12,13,'KBAAAA','VVAAAA','VVVVxx' +232,568,0,0,2,12,2,32,32,232,232,4,5,'YIAAAA','WVAAAA','AAAAxx' +430,569,0,2,0,10,0,30,30,430,430,0,1,'OQAAAA','XVAAAA','HHHHxx' +177,570,1,1,7,17,7,77,177,177,177,14,15,'VGAAAA','YVAAAA','OOOOxx' +220,571,0,0,0,0,0,20,20,220,220,0,1,'MIAAAA','ZVAAAA','VVVVxx' +109,572,1,1,9,9,9,9,109,109,109,18,19,'FEAAAA','AWAAAA','AAAAxx' +419,573,1,3,9,19,9,19,19,419,419,18,19,'DQAAAA','BWAAAA','HHHHxx' +135,574,1,3,5,15,5,35,135,135,135,10,11,'FFAAAA','CWAAAA','OOOOxx' +610,575,0,2,0,10,0,10,10,110,610,0,1,'MXAAAA','DWAAAA','VVVVxx' +956,576,0,0,6,16,6,56,156,456,956,12,13,'UKAAAA','EWAAAA','AAAAxx' +626,577,0,2,6,6,6,26,26,126,626,12,13,'CYAAAA','FWAAAA','HHHHxx' +375,578,1,3,5,15,5,75,175,375,375,10,11,'LOAAAA','GWAAAA','OOOOxx' +976,579,0,0,6,16,6,76,176,476,976,12,13,'OLAAAA','HWAAAA','VVVVxx' +152,580,0,0,2,12,2,52,152,152,152,4,5,'WFAAAA','IWAAAA','AAAAxx' +308,581,0,0,8,8,8,8,108,308,308,16,17,'WLAAAA','JWAAAA','HHHHxx' +445,582,1,1,5,5,5,45,45,445,445,10,11,'DRAAAA','KWAAAA','OOOOxx' +326,583,0,2,6,6,6,26,126,326,326,12,13,'OMAAAA','LWAAAA','VVVVxx' +422,584,0,2,2,2,2,22,22,422,422,4,5,'GQAAAA','MWAAAA','AAAAxx' +972,585,0,0,2,12,2,72,172,472,972,4,5,'KLAAAA','NWAAAA','HHHHxx' +45,586,1,1,5,5,5,45,45,45,45,10,11,'TBAAAA','OWAAAA','OOOOxx' +725,587,1,1,5,5,5,25,125,225,725,10,11,'XBAAAA','PWAAAA','VVVVxx' +753,588,1,1,3,13,3,53,153,253,753,6,7,'ZCAAAA','QWAAAA','AAAAxx' +493,589,1,1,3,13,3,93,93,493,493,6,7,'ZSAAAA','RWAAAA','HHHHxx' +601,590,1,1,1,1,1,1,1,101,601,2,3,'DXAAAA','SWAAAA','OOOOxx' +463,591,1,3,3,3,3,63,63,463,463,6,7,'VRAAAA','TWAAAA','VVVVxx' +303,592,1,3,3,3,3,3,103,303,303,6,7,'RLAAAA','UWAAAA','AAAAxx' +59,593,1,3,9,19,9,59,59,59,59,18,19,'HCAAAA','VWAAAA','HHHHxx' +595,594,1,3,5,15,5,95,195,95,595,10,11,'XWAAAA','WWAAAA','OOOOxx' +807,595,1,3,7,7,7,7,7,307,807,14,15,'BFAAAA','XWAAAA','VVVVxx' +424,596,0,0,4,4,4,24,24,424,424,8,9,'IQAAAA','YWAAAA','AAAAxx' +521,597,1,1,1,1,1,21,121,21,521,2,3,'BUAAAA','ZWAAAA','HHHHxx' +341,598,1,1,1,1,1,41,141,341,341,2,3,'DNAAAA','AXAAAA','OOOOxx' +571,599,1,3,1,11,1,71,171,71,571,2,3,'ZVAAAA','BXAAAA','VVVVxx' +165,600,1,1,5,5,5,65,165,165,165,10,11,'JGAAAA','CXAAAA','AAAAxx' +908,601,0,0,8,8,8,8,108,408,908,16,17,'YIAAAA','DXAAAA','HHHHxx' +351,602,1,3,1,11,1,51,151,351,351,2,3,'NNAAAA','EXAAAA','OOOOxx' +334,603,0,2,4,14,4,34,134,334,334,8,9,'WMAAAA','FXAAAA','VVVVxx' +636,604,0,0,6,16,6,36,36,136,636,12,13,'MYAAAA','GXAAAA','AAAAxx' +138,605,0,2,8,18,8,38,138,138,138,16,17,'IFAAAA','HXAAAA','HHHHxx' +438,606,0,2,8,18,8,38,38,438,438,16,17,'WQAAAA','IXAAAA','OOOOxx' +391,607,1,3,1,11,1,91,191,391,391,2,3,'BPAAAA','JXAAAA','VVVVxx' +395,608,1,3,5,15,5,95,195,395,395,10,11,'FPAAAA','KXAAAA','AAAAxx' +502,609,0,2,2,2,2,2,102,2,502,4,5,'ITAAAA','LXAAAA','HHHHxx' +85,610,1,1,5,5,5,85,85,85,85,10,11,'HDAAAA','MXAAAA','OOOOxx' +786,611,0,2,6,6,6,86,186,286,786,12,13,'GEAAAA','NXAAAA','VVVVxx' +619,612,1,3,9,19,9,19,19,119,619,18,19,'VXAAAA','OXAAAA','AAAAxx' +440,613,0,0,0,0,0,40,40,440,440,0,1,'YQAAAA','PXAAAA','HHHHxx' +949,614,1,1,9,9,9,49,149,449,949,18,19,'NKAAAA','QXAAAA','OOOOxx' +691,615,1,3,1,11,1,91,91,191,691,2,3,'PAAAAA','RXAAAA','VVVVxx' +348,616,0,0,8,8,8,48,148,348,348,16,17,'KNAAAA','SXAAAA','AAAAxx' +506,617,0,2,6,6,6,6,106,6,506,12,13,'MTAAAA','TXAAAA','HHHHxx' +192,618,0,0,2,12,2,92,192,192,192,4,5,'KHAAAA','UXAAAA','OOOOxx' +369,619,1,1,9,9,9,69,169,369,369,18,19,'FOAAAA','VXAAAA','VVVVxx' +311,620,1,3,1,11,1,11,111,311,311,2,3,'ZLAAAA','WXAAAA','AAAAxx' +273,621,1,1,3,13,3,73,73,273,273,6,7,'NKAAAA','XXAAAA','HHHHxx' +770,622,0,2,0,10,0,70,170,270,770,0,1,'QDAAAA','YXAAAA','OOOOxx' +191,623,1,3,1,11,1,91,191,191,191,2,3,'JHAAAA','ZXAAAA','VVVVxx' +90,624,0,2,0,10,0,90,90,90,90,0,1,'MDAAAA','AYAAAA','AAAAxx' +163,625,1,3,3,3,3,63,163,163,163,6,7,'HGAAAA','BYAAAA','HHHHxx' +350,626,0,2,0,10,0,50,150,350,350,0,1,'MNAAAA','CYAAAA','OOOOxx' +55,627,1,3,5,15,5,55,55,55,55,10,11,'DCAAAA','DYAAAA','VVVVxx' +488,628,0,0,8,8,8,88,88,488,488,16,17,'USAAAA','EYAAAA','AAAAxx' +215,629,1,3,5,15,5,15,15,215,215,10,11,'HIAAAA','FYAAAA','HHHHxx' +732,630,0,0,2,12,2,32,132,232,732,4,5,'ECAAAA','GYAAAA','OOOOxx' +688,631,0,0,8,8,8,88,88,188,688,16,17,'MAAAAA','HYAAAA','VVVVxx' +520,632,0,0,0,0,0,20,120,20,520,0,1,'AUAAAA','IYAAAA','AAAAxx' +62,633,0,2,2,2,2,62,62,62,62,4,5,'KCAAAA','JYAAAA','HHHHxx' +423,634,1,3,3,3,3,23,23,423,423,6,7,'HQAAAA','KYAAAA','OOOOxx' +242,635,0,2,2,2,2,42,42,242,242,4,5,'IJAAAA','LYAAAA','VVVVxx' +193,636,1,1,3,13,3,93,193,193,193,6,7,'LHAAAA','MYAAAA','AAAAxx' +648,637,0,0,8,8,8,48,48,148,648,16,17,'YYAAAA','NYAAAA','HHHHxx' +459,638,1,3,9,19,9,59,59,459,459,18,19,'RRAAAA','OYAAAA','OOOOxx' +196,639,0,0,6,16,6,96,196,196,196,12,13,'OHAAAA','PYAAAA','VVVVxx' +476,640,0,0,6,16,6,76,76,476,476,12,13,'ISAAAA','QYAAAA','AAAAxx' +903,641,1,3,3,3,3,3,103,403,903,6,7,'TIAAAA','RYAAAA','HHHHxx' +974,642,0,2,4,14,4,74,174,474,974,8,9,'MLAAAA','SYAAAA','OOOOxx' +603,643,1,3,3,3,3,3,3,103,603,6,7,'FXAAAA','TYAAAA','VVVVxx' +12,644,0,0,2,12,2,12,12,12,12,4,5,'MAAAAA','UYAAAA','AAAAxx' +599,645,1,3,9,19,9,99,199,99,599,18,19,'BXAAAA','VYAAAA','HHHHxx' +914,646,0,2,4,14,4,14,114,414,914,8,9,'EJAAAA','WYAAAA','OOOOxx' +7,647,1,3,7,7,7,7,7,7,7,14,15,'HAAAAA','XYAAAA','VVVVxx' +213,648,1,1,3,13,3,13,13,213,213,6,7,'FIAAAA','YYAAAA','AAAAxx' +174,649,0,2,4,14,4,74,174,174,174,8,9,'SGAAAA','ZYAAAA','HHHHxx' +392,650,0,0,2,12,2,92,192,392,392,4,5,'CPAAAA','AZAAAA','OOOOxx' +674,651,0,2,4,14,4,74,74,174,674,8,9,'YZAAAA','BZAAAA','VVVVxx' +650,652,0,2,0,10,0,50,50,150,650,0,1,'AZAAAA','CZAAAA','AAAAxx' +8,653,0,0,8,8,8,8,8,8,8,16,17,'IAAAAA','DZAAAA','HHHHxx' +492,654,0,0,2,12,2,92,92,492,492,4,5,'YSAAAA','EZAAAA','OOOOxx' +322,655,0,2,2,2,2,22,122,322,322,4,5,'KMAAAA','FZAAAA','VVVVxx' +315,656,1,3,5,15,5,15,115,315,315,10,11,'DMAAAA','GZAAAA','AAAAxx' +380,657,0,0,0,0,0,80,180,380,380,0,1,'QOAAAA','HZAAAA','HHHHxx' +353,658,1,1,3,13,3,53,153,353,353,6,7,'PNAAAA','IZAAAA','OOOOxx' +892,659,0,0,2,12,2,92,92,392,892,4,5,'IIAAAA','JZAAAA','VVVVxx' +932,660,0,0,2,12,2,32,132,432,932,4,5,'WJAAAA','KZAAAA','AAAAxx' +993,661,1,1,3,13,3,93,193,493,993,6,7,'FMAAAA','LZAAAA','HHHHxx' +859,662,1,3,9,19,9,59,59,359,859,18,19,'BHAAAA','MZAAAA','OOOOxx' +806,663,0,2,6,6,6,6,6,306,806,12,13,'AFAAAA','NZAAAA','VVVVxx' +145,664,1,1,5,5,5,45,145,145,145,10,11,'PFAAAA','OZAAAA','AAAAxx' +373,665,1,1,3,13,3,73,173,373,373,6,7,'JOAAAA','PZAAAA','HHHHxx' +418,666,0,2,8,18,8,18,18,418,418,16,17,'CQAAAA','QZAAAA','OOOOxx' +865,667,1,1,5,5,5,65,65,365,865,10,11,'HHAAAA','RZAAAA','VVVVxx' +462,668,0,2,2,2,2,62,62,462,462,4,5,'URAAAA','SZAAAA','AAAAxx' +24,669,0,0,4,4,4,24,24,24,24,8,9,'YAAAAA','TZAAAA','HHHHxx' +920,670,0,0,0,0,0,20,120,420,920,0,1,'KJAAAA','UZAAAA','OOOOxx' +672,671,0,0,2,12,2,72,72,172,672,4,5,'WZAAAA','VZAAAA','VVVVxx' +92,672,0,0,2,12,2,92,92,92,92,4,5,'ODAAAA','WZAAAA','AAAAxx' +721,673,1,1,1,1,1,21,121,221,721,2,3,'TBAAAA','XZAAAA','HHHHxx' +646,674,0,2,6,6,6,46,46,146,646,12,13,'WYAAAA','YZAAAA','OOOOxx' +910,675,0,2,0,10,0,10,110,410,910,0,1,'AJAAAA','ZZAAAA','VVVVxx' +909,676,1,1,9,9,9,9,109,409,909,18,19,'ZIAAAA','AABAAA','AAAAxx' +630,677,0,2,0,10,0,30,30,130,630,0,1,'GYAAAA','BABAAA','HHHHxx' +482,678,0,2,2,2,2,82,82,482,482,4,5,'OSAAAA','CABAAA','OOOOxx' +559,679,1,3,9,19,9,59,159,59,559,18,19,'NVAAAA','DABAAA','VVVVxx' +853,680,1,1,3,13,3,53,53,353,853,6,7,'VGAAAA','EABAAA','AAAAxx' +141,681,1,1,1,1,1,41,141,141,141,2,3,'LFAAAA','FABAAA','HHHHxx' +266,682,0,2,6,6,6,66,66,266,266,12,13,'GKAAAA','GABAAA','OOOOxx' +835,683,1,3,5,15,5,35,35,335,835,10,11,'DGAAAA','HABAAA','VVVVxx' +164,684,0,0,4,4,4,64,164,164,164,8,9,'IGAAAA','IABAAA','AAAAxx' +629,685,1,1,9,9,9,29,29,129,629,18,19,'FYAAAA','JABAAA','HHHHxx' +203,686,1,3,3,3,3,3,3,203,203,6,7,'VHAAAA','KABAAA','OOOOxx' +411,687,1,3,1,11,1,11,11,411,411,2,3,'VPAAAA','LABAAA','VVVVxx' +930,688,0,2,0,10,0,30,130,430,930,0,1,'UJAAAA','MABAAA','AAAAxx' +435,689,1,3,5,15,5,35,35,435,435,10,11,'TQAAAA','NABAAA','HHHHxx' +563,690,1,3,3,3,3,63,163,63,563,6,7,'RVAAAA','OABAAA','OOOOxx' +960,691,0,0,0,0,0,60,160,460,960,0,1,'YKAAAA','PABAAA','VVVVxx' +733,692,1,1,3,13,3,33,133,233,733,6,7,'FCAAAA','QABAAA','AAAAxx' +967,693,1,3,7,7,7,67,167,467,967,14,15,'FLAAAA','RABAAA','HHHHxx' +668,694,0,0,8,8,8,68,68,168,668,16,17,'SZAAAA','SABAAA','OOOOxx' +994,695,0,2,4,14,4,94,194,494,994,8,9,'GMAAAA','TABAAA','VVVVxx' +129,696,1,1,9,9,9,29,129,129,129,18,19,'ZEAAAA','UABAAA','AAAAxx' +954,697,0,2,4,14,4,54,154,454,954,8,9,'SKAAAA','VABAAA','HHHHxx' +68,698,0,0,8,8,8,68,68,68,68,16,17,'QCAAAA','WABAAA','OOOOxx' +79,699,1,3,9,19,9,79,79,79,79,18,19,'BDAAAA','XABAAA','VVVVxx' +121,700,1,1,1,1,1,21,121,121,121,2,3,'REAAAA','YABAAA','AAAAxx' +740,701,0,0,0,0,0,40,140,240,740,0,1,'MCAAAA','ZABAAA','HHHHxx' +902,702,0,2,2,2,2,2,102,402,902,4,5,'SIAAAA','ABBAAA','OOOOxx' +695,703,1,3,5,15,5,95,95,195,695,10,11,'TAAAAA','BBBAAA','VVVVxx' +455,704,1,3,5,15,5,55,55,455,455,10,11,'NRAAAA','CBBAAA','AAAAxx' +89,705,1,1,9,9,9,89,89,89,89,18,19,'LDAAAA','DBBAAA','HHHHxx' +893,706,1,1,3,13,3,93,93,393,893,6,7,'JIAAAA','EBBAAA','OOOOxx' +202,707,0,2,2,2,2,2,2,202,202,4,5,'UHAAAA','FBBAAA','VVVVxx' +132,708,0,0,2,12,2,32,132,132,132,4,5,'CFAAAA','GBBAAA','AAAAxx' +782,709,0,2,2,2,2,82,182,282,782,4,5,'CEAAAA','HBBAAA','HHHHxx' +512,710,0,0,2,12,2,12,112,12,512,4,5,'STAAAA','IBBAAA','OOOOxx' +857,711,1,1,7,17,7,57,57,357,857,14,15,'ZGAAAA','JBBAAA','VVVVxx' +248,712,0,0,8,8,8,48,48,248,248,16,17,'OJAAAA','KBBAAA','AAAAxx' +858,713,0,2,8,18,8,58,58,358,858,16,17,'AHAAAA','LBBAAA','HHHHxx' +527,714,1,3,7,7,7,27,127,27,527,14,15,'HUAAAA','MBBAAA','OOOOxx' +450,715,0,2,0,10,0,50,50,450,450,0,1,'IRAAAA','NBBAAA','VVVVxx' +712,716,0,0,2,12,2,12,112,212,712,4,5,'KBAAAA','OBBAAA','AAAAxx' +153,717,1,1,3,13,3,53,153,153,153,6,7,'XFAAAA','PBBAAA','HHHHxx' +587,718,1,3,7,7,7,87,187,87,587,14,15,'PWAAAA','QBBAAA','OOOOxx' +593,719,1,1,3,13,3,93,193,93,593,6,7,'VWAAAA','RBBAAA','VVVVxx' +249,720,1,1,9,9,9,49,49,249,249,18,19,'PJAAAA','SBBAAA','AAAAxx' +128,721,0,0,8,8,8,28,128,128,128,16,17,'YEAAAA','TBBAAA','HHHHxx' +675,722,1,3,5,15,5,75,75,175,675,10,11,'ZZAAAA','UBBAAA','OOOOxx' +929,723,1,1,9,9,9,29,129,429,929,18,19,'TJAAAA','VBBAAA','VVVVxx' +156,724,0,0,6,16,6,56,156,156,156,12,13,'AGAAAA','WBBAAA','AAAAxx' +415,725,1,3,5,15,5,15,15,415,415,10,11,'ZPAAAA','XBBAAA','HHHHxx' +28,726,0,0,8,8,8,28,28,28,28,16,17,'CBAAAA','YBBAAA','OOOOxx' +18,727,0,2,8,18,8,18,18,18,18,16,17,'SAAAAA','ZBBAAA','VVVVxx' +255,728,1,3,5,15,5,55,55,255,255,10,11,'VJAAAA','ACBAAA','AAAAxx' +793,729,1,1,3,13,3,93,193,293,793,6,7,'NEAAAA','BCBAAA','HHHHxx' +554,730,0,2,4,14,4,54,154,54,554,8,9,'IVAAAA','CCBAAA','OOOOxx' +467,731,1,3,7,7,7,67,67,467,467,14,15,'ZRAAAA','DCBAAA','VVVVxx' +410,732,0,2,0,10,0,10,10,410,410,0,1,'UPAAAA','ECBAAA','AAAAxx' +651,733,1,3,1,11,1,51,51,151,651,2,3,'BZAAAA','FCBAAA','HHHHxx' +287,734,1,3,7,7,7,87,87,287,287,14,15,'BLAAAA','GCBAAA','OOOOxx' +640,735,0,0,0,0,0,40,40,140,640,0,1,'QYAAAA','HCBAAA','VVVVxx' +245,736,1,1,5,5,5,45,45,245,245,10,11,'LJAAAA','ICBAAA','AAAAxx' +21,737,1,1,1,1,1,21,21,21,21,2,3,'VAAAAA','JCBAAA','HHHHxx' +83,738,1,3,3,3,3,83,83,83,83,6,7,'FDAAAA','KCBAAA','OOOOxx' +228,739,0,0,8,8,8,28,28,228,228,16,17,'UIAAAA','LCBAAA','VVVVxx' +323,740,1,3,3,3,3,23,123,323,323,6,7,'LMAAAA','MCBAAA','AAAAxx' +594,741,0,2,4,14,4,94,194,94,594,8,9,'WWAAAA','NCBAAA','HHHHxx' +528,742,0,0,8,8,8,28,128,28,528,16,17,'IUAAAA','OCBAAA','OOOOxx' +276,743,0,0,6,16,6,76,76,276,276,12,13,'QKAAAA','PCBAAA','VVVVxx' +598,744,0,2,8,18,8,98,198,98,598,16,17,'AXAAAA','QCBAAA','AAAAxx' +635,745,1,3,5,15,5,35,35,135,635,10,11,'LYAAAA','RCBAAA','HHHHxx' +868,746,0,0,8,8,8,68,68,368,868,16,17,'KHAAAA','SCBAAA','OOOOxx' +290,747,0,2,0,10,0,90,90,290,290,0,1,'ELAAAA','TCBAAA','VVVVxx' +468,748,0,0,8,8,8,68,68,468,468,16,17,'ASAAAA','UCBAAA','AAAAxx' +689,749,1,1,9,9,9,89,89,189,689,18,19,'NAAAAA','VCBAAA','HHHHxx' +799,750,1,3,9,19,9,99,199,299,799,18,19,'TEAAAA','WCBAAA','OOOOxx' +210,751,0,2,0,10,0,10,10,210,210,0,1,'CIAAAA','XCBAAA','VVVVxx' +346,752,0,2,6,6,6,46,146,346,346,12,13,'INAAAA','YCBAAA','AAAAxx' +957,753,1,1,7,17,7,57,157,457,957,14,15,'VKAAAA','ZCBAAA','HHHHxx' +905,754,1,1,5,5,5,5,105,405,905,10,11,'VIAAAA','ADBAAA','OOOOxx' +523,755,1,3,3,3,3,23,123,23,523,6,7,'DUAAAA','BDBAAA','VVVVxx' +899,756,1,3,9,19,9,99,99,399,899,18,19,'PIAAAA','CDBAAA','AAAAxx' +867,757,1,3,7,7,7,67,67,367,867,14,15,'JHAAAA','DDBAAA','HHHHxx' +11,758,1,3,1,11,1,11,11,11,11,2,3,'LAAAAA','EDBAAA','OOOOxx' +320,759,0,0,0,0,0,20,120,320,320,0,1,'IMAAAA','FDBAAA','VVVVxx' +766,760,0,2,6,6,6,66,166,266,766,12,13,'MDAAAA','GDBAAA','AAAAxx' +84,761,0,0,4,4,4,84,84,84,84,8,9,'GDAAAA','HDBAAA','HHHHxx' +507,762,1,3,7,7,7,7,107,7,507,14,15,'NTAAAA','IDBAAA','OOOOxx' +471,763,1,3,1,11,1,71,71,471,471,2,3,'DSAAAA','JDBAAA','VVVVxx' +517,764,1,1,7,17,7,17,117,17,517,14,15,'XTAAAA','KDBAAA','AAAAxx' +234,765,0,2,4,14,4,34,34,234,234,8,9,'AJAAAA','LDBAAA','HHHHxx' +988,766,0,0,8,8,8,88,188,488,988,16,17,'AMAAAA','MDBAAA','OOOOxx' +473,767,1,1,3,13,3,73,73,473,473,6,7,'FSAAAA','NDBAAA','VVVVxx' +66,768,0,2,6,6,6,66,66,66,66,12,13,'OCAAAA','ODBAAA','AAAAxx' +530,769,0,2,0,10,0,30,130,30,530,0,1,'KUAAAA','PDBAAA','HHHHxx' +834,770,0,2,4,14,4,34,34,334,834,8,9,'CGAAAA','QDBAAA','OOOOxx' +894,771,0,2,4,14,4,94,94,394,894,8,9,'KIAAAA','RDBAAA','VVVVxx' +481,772,1,1,1,1,1,81,81,481,481,2,3,'NSAAAA','SDBAAA','AAAAxx' +280,773,0,0,0,0,0,80,80,280,280,0,1,'UKAAAA','TDBAAA','HHHHxx' +705,774,1,1,5,5,5,5,105,205,705,10,11,'DBAAAA','UDBAAA','OOOOxx' +218,775,0,2,8,18,8,18,18,218,218,16,17,'KIAAAA','VDBAAA','VVVVxx' +560,776,0,0,0,0,0,60,160,60,560,0,1,'OVAAAA','WDBAAA','AAAAxx' +123,777,1,3,3,3,3,23,123,123,123,6,7,'TEAAAA','XDBAAA','HHHHxx' +289,778,1,1,9,9,9,89,89,289,289,18,19,'DLAAAA','YDBAAA','OOOOxx' +189,779,1,1,9,9,9,89,189,189,189,18,19,'HHAAAA','ZDBAAA','VVVVxx' +541,780,1,1,1,1,1,41,141,41,541,2,3,'VUAAAA','AEBAAA','AAAAxx' +876,781,0,0,6,16,6,76,76,376,876,12,13,'SHAAAA','BEBAAA','HHHHxx' +504,782,0,0,4,4,4,4,104,4,504,8,9,'KTAAAA','CEBAAA','OOOOxx' +643,783,1,3,3,3,3,43,43,143,643,6,7,'TYAAAA','DEBAAA','VVVVxx' +73,784,1,1,3,13,3,73,73,73,73,6,7,'VCAAAA','EEBAAA','AAAAxx' +465,785,1,1,5,5,5,65,65,465,465,10,11,'XRAAAA','FEBAAA','HHHHxx' +861,786,1,1,1,1,1,61,61,361,861,2,3,'DHAAAA','GEBAAA','OOOOxx' +355,787,1,3,5,15,5,55,155,355,355,10,11,'RNAAAA','HEBAAA','VVVVxx' +441,788,1,1,1,1,1,41,41,441,441,2,3,'ZQAAAA','IEBAAA','AAAAxx' +219,789,1,3,9,19,9,19,19,219,219,18,19,'LIAAAA','JEBAAA','HHHHxx' +839,790,1,3,9,19,9,39,39,339,839,18,19,'HGAAAA','KEBAAA','OOOOxx' +271,791,1,3,1,11,1,71,71,271,271,2,3,'LKAAAA','LEBAAA','VVVVxx' +212,792,0,0,2,12,2,12,12,212,212,4,5,'EIAAAA','MEBAAA','AAAAxx' +904,793,0,0,4,4,4,4,104,404,904,8,9,'UIAAAA','NEBAAA','HHHHxx' +244,794,0,0,4,4,4,44,44,244,244,8,9,'KJAAAA','OEBAAA','OOOOxx' +751,795,1,3,1,11,1,51,151,251,751,2,3,'XCAAAA','PEBAAA','VVVVxx' +944,796,0,0,4,4,4,44,144,444,944,8,9,'IKAAAA','QEBAAA','AAAAxx' +305,797,1,1,5,5,5,5,105,305,305,10,11,'TLAAAA','REBAAA','HHHHxx' +617,798,1,1,7,17,7,17,17,117,617,14,15,'TXAAAA','SEBAAA','OOOOxx' +891,799,1,3,1,11,1,91,91,391,891,2,3,'HIAAAA','TEBAAA','VVVVxx' +653,800,1,1,3,13,3,53,53,153,653,6,7,'DZAAAA','UEBAAA','AAAAxx' +845,801,1,1,5,5,5,45,45,345,845,10,11,'NGAAAA','VEBAAA','HHHHxx' +936,802,0,0,6,16,6,36,136,436,936,12,13,'AKAAAA','WEBAAA','OOOOxx' +91,803,1,3,1,11,1,91,91,91,91,2,3,'NDAAAA','XEBAAA','VVVVxx' +442,804,0,2,2,2,2,42,42,442,442,4,5,'ARAAAA','YEBAAA','AAAAxx' +498,805,0,2,8,18,8,98,98,498,498,16,17,'ETAAAA','ZEBAAA','HHHHxx' +987,806,1,3,7,7,7,87,187,487,987,14,15,'ZLAAAA','AFBAAA','OOOOxx' +194,807,0,2,4,14,4,94,194,194,194,8,9,'MHAAAA','BFBAAA','VVVVxx' +927,808,1,3,7,7,7,27,127,427,927,14,15,'RJAAAA','CFBAAA','AAAAxx' +607,809,1,3,7,7,7,7,7,107,607,14,15,'JXAAAA','DFBAAA','HHHHxx' +119,810,1,3,9,19,9,19,119,119,119,18,19,'PEAAAA','EFBAAA','OOOOxx' +182,811,0,2,2,2,2,82,182,182,182,4,5,'AHAAAA','FFBAAA','VVVVxx' +606,812,0,2,6,6,6,6,6,106,606,12,13,'IXAAAA','GFBAAA','AAAAxx' +849,813,1,1,9,9,9,49,49,349,849,18,19,'RGAAAA','HFBAAA','HHHHxx' +34,814,0,2,4,14,4,34,34,34,34,8,9,'IBAAAA','IFBAAA','OOOOxx' +683,815,1,3,3,3,3,83,83,183,683,6,7,'HAAAAA','JFBAAA','VVVVxx' +134,816,0,2,4,14,4,34,134,134,134,8,9,'EFAAAA','KFBAAA','AAAAxx' +331,817,1,3,1,11,1,31,131,331,331,2,3,'TMAAAA','LFBAAA','HHHHxx' +808,818,0,0,8,8,8,8,8,308,808,16,17,'CFAAAA','MFBAAA','OOOOxx' +703,819,1,3,3,3,3,3,103,203,703,6,7,'BBAAAA','NFBAAA','VVVVxx' +669,820,1,1,9,9,9,69,69,169,669,18,19,'TZAAAA','OFBAAA','AAAAxx' +264,821,0,0,4,4,4,64,64,264,264,8,9,'EKAAAA','PFBAAA','HHHHxx' +277,822,1,1,7,17,7,77,77,277,277,14,15,'RKAAAA','QFBAAA','OOOOxx' +877,823,1,1,7,17,7,77,77,377,877,14,15,'THAAAA','RFBAAA','VVVVxx' +783,824,1,3,3,3,3,83,183,283,783,6,7,'DEAAAA','SFBAAA','AAAAxx' +791,825,1,3,1,11,1,91,191,291,791,2,3,'LEAAAA','TFBAAA','HHHHxx' +171,826,1,3,1,11,1,71,171,171,171,2,3,'PGAAAA','UFBAAA','OOOOxx' +564,827,0,0,4,4,4,64,164,64,564,8,9,'SVAAAA','VFBAAA','VVVVxx' +230,828,0,2,0,10,0,30,30,230,230,0,1,'WIAAAA','WFBAAA','AAAAxx' +881,829,1,1,1,1,1,81,81,381,881,2,3,'XHAAAA','XFBAAA','HHHHxx' +890,830,0,2,0,10,0,90,90,390,890,0,1,'GIAAAA','YFBAAA','OOOOxx' +374,831,0,2,4,14,4,74,174,374,374,8,9,'KOAAAA','ZFBAAA','VVVVxx' +697,832,1,1,7,17,7,97,97,197,697,14,15,'VAAAAA','AGBAAA','AAAAxx' +4,833,0,0,4,4,4,4,4,4,4,8,9,'EAAAAA','BGBAAA','HHHHxx' +385,834,1,1,5,5,5,85,185,385,385,10,11,'VOAAAA','CGBAAA','OOOOxx' +739,835,1,3,9,19,9,39,139,239,739,18,19,'LCAAAA','DGBAAA','VVVVxx' +623,836,1,3,3,3,3,23,23,123,623,6,7,'ZXAAAA','EGBAAA','AAAAxx' +547,837,1,3,7,7,7,47,147,47,547,14,15,'BVAAAA','FGBAAA','HHHHxx' +532,838,0,0,2,12,2,32,132,32,532,4,5,'MUAAAA','GGBAAA','OOOOxx' +383,839,1,3,3,3,3,83,183,383,383,6,7,'TOAAAA','HGBAAA','VVVVxx' +181,840,1,1,1,1,1,81,181,181,181,2,3,'ZGAAAA','IGBAAA','AAAAxx' +327,841,1,3,7,7,7,27,127,327,327,14,15,'PMAAAA','JGBAAA','HHHHxx' +701,842,1,1,1,1,1,1,101,201,701,2,3,'ZAAAAA','KGBAAA','OOOOxx' +111,843,1,3,1,11,1,11,111,111,111,2,3,'HEAAAA','LGBAAA','VVVVxx' +977,844,1,1,7,17,7,77,177,477,977,14,15,'PLAAAA','MGBAAA','AAAAxx' +431,845,1,3,1,11,1,31,31,431,431,2,3,'PQAAAA','NGBAAA','HHHHxx' +456,846,0,0,6,16,6,56,56,456,456,12,13,'ORAAAA','OGBAAA','OOOOxx' +368,847,0,0,8,8,8,68,168,368,368,16,17,'EOAAAA','PGBAAA','VVVVxx' +32,848,0,0,2,12,2,32,32,32,32,4,5,'GBAAAA','QGBAAA','AAAAxx' +125,849,1,1,5,5,5,25,125,125,125,10,11,'VEAAAA','RGBAAA','HHHHxx' +847,850,1,3,7,7,7,47,47,347,847,14,15,'PGAAAA','SGBAAA','OOOOxx' +485,851,1,1,5,5,5,85,85,485,485,10,11,'RSAAAA','TGBAAA','VVVVxx' +387,852,1,3,7,7,7,87,187,387,387,14,15,'XOAAAA','UGBAAA','AAAAxx' +288,853,0,0,8,8,8,88,88,288,288,16,17,'CLAAAA','VGBAAA','HHHHxx' +919,854,1,3,9,19,9,19,119,419,919,18,19,'JJAAAA','WGBAAA','OOOOxx' +393,855,1,1,3,13,3,93,193,393,393,6,7,'DPAAAA','XGBAAA','VVVVxx' +953,856,1,1,3,13,3,53,153,453,953,6,7,'RKAAAA','YGBAAA','AAAAxx' +798,857,0,2,8,18,8,98,198,298,798,16,17,'SEAAAA','ZGBAAA','HHHHxx' +940,858,0,0,0,0,0,40,140,440,940,0,1,'EKAAAA','AHBAAA','OOOOxx' +198,859,0,2,8,18,8,98,198,198,198,16,17,'QHAAAA','BHBAAA','VVVVxx' +25,860,1,1,5,5,5,25,25,25,25,10,11,'ZAAAAA','CHBAAA','AAAAxx' +190,861,0,2,0,10,0,90,190,190,190,0,1,'IHAAAA','DHBAAA','HHHHxx' +820,862,0,0,0,0,0,20,20,320,820,0,1,'OFAAAA','EHBAAA','OOOOxx' +15,863,1,3,5,15,5,15,15,15,15,10,11,'PAAAAA','FHBAAA','VVVVxx' +427,864,1,3,7,7,7,27,27,427,427,14,15,'LQAAAA','GHBAAA','AAAAxx' +349,865,1,1,9,9,9,49,149,349,349,18,19,'LNAAAA','HHBAAA','HHHHxx' +785,866,1,1,5,5,5,85,185,285,785,10,11,'FEAAAA','IHBAAA','OOOOxx' +340,867,0,0,0,0,0,40,140,340,340,0,1,'CNAAAA','JHBAAA','VVVVxx' +292,868,0,0,2,12,2,92,92,292,292,4,5,'GLAAAA','KHBAAA','AAAAxx' +17,869,1,1,7,17,7,17,17,17,17,14,15,'RAAAAA','LHBAAA','HHHHxx' +985,870,1,1,5,5,5,85,185,485,985,10,11,'XLAAAA','MHBAAA','OOOOxx' +645,871,1,1,5,5,5,45,45,145,645,10,11,'VYAAAA','NHBAAA','VVVVxx' +631,872,1,3,1,11,1,31,31,131,631,2,3,'HYAAAA','OHBAAA','AAAAxx' +761,873,1,1,1,1,1,61,161,261,761,2,3,'HDAAAA','PHBAAA','HHHHxx' +707,874,1,3,7,7,7,7,107,207,707,14,15,'FBAAAA','QHBAAA','OOOOxx' +776,875,0,0,6,16,6,76,176,276,776,12,13,'WDAAAA','RHBAAA','VVVVxx' +856,876,0,0,6,16,6,56,56,356,856,12,13,'YGAAAA','SHBAAA','AAAAxx' +978,877,0,2,8,18,8,78,178,478,978,16,17,'QLAAAA','THBAAA','HHHHxx' +710,878,0,2,0,10,0,10,110,210,710,0,1,'IBAAAA','UHBAAA','OOOOxx' +604,879,0,0,4,4,4,4,4,104,604,8,9,'GXAAAA','VHBAAA','VVVVxx' +291,880,1,3,1,11,1,91,91,291,291,2,3,'FLAAAA','WHBAAA','AAAAxx' +747,881,1,3,7,7,7,47,147,247,747,14,15,'TCAAAA','XHBAAA','HHHHxx' +837,882,1,1,7,17,7,37,37,337,837,14,15,'FGAAAA','YHBAAA','OOOOxx' +722,883,0,2,2,2,2,22,122,222,722,4,5,'UBAAAA','ZHBAAA','VVVVxx' +925,884,1,1,5,5,5,25,125,425,925,10,11,'PJAAAA','AIBAAA','AAAAxx' +49,885,1,1,9,9,9,49,49,49,49,18,19,'XBAAAA','BIBAAA','HHHHxx' +832,886,0,0,2,12,2,32,32,332,832,4,5,'AGAAAA','CIBAAA','OOOOxx' +336,887,0,0,6,16,6,36,136,336,336,12,13,'YMAAAA','DIBAAA','VVVVxx' +185,888,1,1,5,5,5,85,185,185,185,10,11,'DHAAAA','EIBAAA','AAAAxx' +434,889,0,2,4,14,4,34,34,434,434,8,9,'SQAAAA','FIBAAA','HHHHxx' +284,890,0,0,4,4,4,84,84,284,284,8,9,'YKAAAA','GIBAAA','OOOOxx' +812,891,0,0,2,12,2,12,12,312,812,4,5,'GFAAAA','HIBAAA','VVVVxx' +810,892,0,2,0,10,0,10,10,310,810,0,1,'EFAAAA','IIBAAA','AAAAxx' +252,893,0,0,2,12,2,52,52,252,252,4,5,'SJAAAA','JIBAAA','HHHHxx' +965,894,1,1,5,5,5,65,165,465,965,10,11,'DLAAAA','KIBAAA','OOOOxx' +110,895,0,2,0,10,0,10,110,110,110,0,1,'GEAAAA','LIBAAA','VVVVxx' +698,896,0,2,8,18,8,98,98,198,698,16,17,'WAAAAA','MIBAAA','AAAAxx' +283,897,1,3,3,3,3,83,83,283,283,6,7,'XKAAAA','NIBAAA','HHHHxx' +533,898,1,1,3,13,3,33,133,33,533,6,7,'NUAAAA','OIBAAA','OOOOxx' +662,899,0,2,2,2,2,62,62,162,662,4,5,'MZAAAA','PIBAAA','VVVVxx' +329,900,1,1,9,9,9,29,129,329,329,18,19,'RMAAAA','QIBAAA','AAAAxx' +250,901,0,2,0,10,0,50,50,250,250,0,1,'QJAAAA','RIBAAA','HHHHxx' +407,902,1,3,7,7,7,7,7,407,407,14,15,'RPAAAA','SIBAAA','OOOOxx' +823,903,1,3,3,3,3,23,23,323,823,6,7,'RFAAAA','TIBAAA','VVVVxx' +852,904,0,0,2,12,2,52,52,352,852,4,5,'UGAAAA','UIBAAA','AAAAxx' +871,905,1,3,1,11,1,71,71,371,871,2,3,'NHAAAA','VIBAAA','HHHHxx' +118,906,0,2,8,18,8,18,118,118,118,16,17,'OEAAAA','WIBAAA','OOOOxx' +912,907,0,0,2,12,2,12,112,412,912,4,5,'CJAAAA','XIBAAA','VVVVxx' +458,908,0,2,8,18,8,58,58,458,458,16,17,'QRAAAA','YIBAAA','AAAAxx' +926,909,0,2,6,6,6,26,126,426,926,12,13,'QJAAAA','ZIBAAA','HHHHxx' +328,910,0,0,8,8,8,28,128,328,328,16,17,'QMAAAA','AJBAAA','OOOOxx' +980,911,0,0,0,0,0,80,180,480,980,0,1,'SLAAAA','BJBAAA','VVVVxx' +259,912,1,3,9,19,9,59,59,259,259,18,19,'ZJAAAA','CJBAAA','AAAAxx' +900,913,0,0,0,0,0,0,100,400,900,0,1,'QIAAAA','DJBAAA','HHHHxx' +137,914,1,1,7,17,7,37,137,137,137,14,15,'HFAAAA','EJBAAA','OOOOxx' +159,915,1,3,9,19,9,59,159,159,159,18,19,'DGAAAA','FJBAAA','VVVVxx' +243,916,1,3,3,3,3,43,43,243,243,6,7,'JJAAAA','GJBAAA','AAAAxx' +472,917,0,0,2,12,2,72,72,472,472,4,5,'ESAAAA','HJBAAA','HHHHxx' +796,918,0,0,6,16,6,96,196,296,796,12,13,'QEAAAA','IJBAAA','OOOOxx' +382,919,0,2,2,2,2,82,182,382,382,4,5,'SOAAAA','JJBAAA','VVVVxx' +911,920,1,3,1,11,1,11,111,411,911,2,3,'BJAAAA','KJBAAA','AAAAxx' +179,921,1,3,9,19,9,79,179,179,179,18,19,'XGAAAA','LJBAAA','HHHHxx' +778,922,0,2,8,18,8,78,178,278,778,16,17,'YDAAAA','MJBAAA','OOOOxx' +405,923,1,1,5,5,5,5,5,405,405,10,11,'PPAAAA','NJBAAA','VVVVxx' +265,924,1,1,5,5,5,65,65,265,265,10,11,'FKAAAA','OJBAAA','AAAAxx' +556,925,0,0,6,16,6,56,156,56,556,12,13,'KVAAAA','PJBAAA','HHHHxx' +16,926,0,0,6,16,6,16,16,16,16,12,13,'QAAAAA','QJBAAA','OOOOxx' +706,927,0,2,6,6,6,6,106,206,706,12,13,'EBAAAA','RJBAAA','VVVVxx' +497,928,1,1,7,17,7,97,97,497,497,14,15,'DTAAAA','SJBAAA','AAAAxx' +708,929,0,0,8,8,8,8,108,208,708,16,17,'GBAAAA','TJBAAA','HHHHxx' +46,930,0,2,6,6,6,46,46,46,46,12,13,'UBAAAA','UJBAAA','OOOOxx' +901,931,1,1,1,1,1,1,101,401,901,2,3,'RIAAAA','VJBAAA','VVVVxx' +416,932,0,0,6,16,6,16,16,416,416,12,13,'AQAAAA','WJBAAA','AAAAxx' +307,933,1,3,7,7,7,7,107,307,307,14,15,'VLAAAA','XJBAAA','HHHHxx' +166,934,0,2,6,6,6,66,166,166,166,12,13,'KGAAAA','YJBAAA','OOOOxx' +178,935,0,2,8,18,8,78,178,178,178,16,17,'WGAAAA','ZJBAAA','VVVVxx' +499,936,1,3,9,19,9,99,99,499,499,18,19,'FTAAAA','AKBAAA','AAAAxx' +257,937,1,1,7,17,7,57,57,257,257,14,15,'XJAAAA','BKBAAA','HHHHxx' +342,938,0,2,2,2,2,42,142,342,342,4,5,'ENAAAA','CKBAAA','OOOOxx' +850,939,0,2,0,10,0,50,50,350,850,0,1,'SGAAAA','DKBAAA','VVVVxx' +313,940,1,1,3,13,3,13,113,313,313,6,7,'BMAAAA','EKBAAA','AAAAxx' +831,941,1,3,1,11,1,31,31,331,831,2,3,'ZFAAAA','FKBAAA','HHHHxx' +57,942,1,1,7,17,7,57,57,57,57,14,15,'FCAAAA','GKBAAA','OOOOxx' +37,943,1,1,7,17,7,37,37,37,37,14,15,'LBAAAA','HKBAAA','VVVVxx' +511,944,1,3,1,11,1,11,111,11,511,2,3,'RTAAAA','IKBAAA','AAAAxx' +578,945,0,2,8,18,8,78,178,78,578,16,17,'GWAAAA','JKBAAA','HHHHxx' +100,946,0,0,0,0,0,0,100,100,100,0,1,'WDAAAA','KKBAAA','OOOOxx' +935,947,1,3,5,15,5,35,135,435,935,10,11,'ZJAAAA','LKBAAA','VVVVxx' +821,948,1,1,1,1,1,21,21,321,821,2,3,'PFAAAA','MKBAAA','AAAAxx' +294,949,0,2,4,14,4,94,94,294,294,8,9,'ILAAAA','NKBAAA','HHHHxx' +575,950,1,3,5,15,5,75,175,75,575,10,11,'DWAAAA','OKBAAA','OOOOxx' +272,951,0,0,2,12,2,72,72,272,272,4,5,'MKAAAA','PKBAAA','VVVVxx' +491,952,1,3,1,11,1,91,91,491,491,2,3,'XSAAAA','QKBAAA','AAAAxx' +43,953,1,3,3,3,3,43,43,43,43,6,7,'RBAAAA','RKBAAA','HHHHxx' +167,954,1,3,7,7,7,67,167,167,167,14,15,'LGAAAA','SKBAAA','OOOOxx' +457,955,1,1,7,17,7,57,57,457,457,14,15,'PRAAAA','TKBAAA','VVVVxx' +647,956,1,3,7,7,7,47,47,147,647,14,15,'XYAAAA','UKBAAA','AAAAxx' +180,957,0,0,0,0,0,80,180,180,180,0,1,'YGAAAA','VKBAAA','HHHHxx' +48,958,0,0,8,8,8,48,48,48,48,16,17,'WBAAAA','WKBAAA','OOOOxx' +553,959,1,1,3,13,3,53,153,53,553,6,7,'HVAAAA','XKBAAA','VVVVxx' +188,960,0,0,8,8,8,88,188,188,188,16,17,'GHAAAA','YKBAAA','AAAAxx' +262,961,0,2,2,2,2,62,62,262,262,4,5,'CKAAAA','ZKBAAA','HHHHxx' +728,962,0,0,8,8,8,28,128,228,728,16,17,'ACAAAA','ALBAAA','OOOOxx' +581,963,1,1,1,1,1,81,181,81,581,2,3,'JWAAAA','BLBAAA','VVVVxx' +937,964,1,1,7,17,7,37,137,437,937,14,15,'BKAAAA','CLBAAA','AAAAxx' +370,965,0,2,0,10,0,70,170,370,370,0,1,'GOAAAA','DLBAAA','HHHHxx' +590,966,0,2,0,10,0,90,190,90,590,0,1,'SWAAAA','ELBAAA','OOOOxx' +421,967,1,1,1,1,1,21,21,421,421,2,3,'FQAAAA','FLBAAA','VVVVxx' +693,968,1,1,3,13,3,93,93,193,693,6,7,'RAAAAA','GLBAAA','AAAAxx' +906,969,0,2,6,6,6,6,106,406,906,12,13,'WIAAAA','HLBAAA','HHHHxx' +802,970,0,2,2,2,2,2,2,302,802,4,5,'WEAAAA','ILBAAA','OOOOxx' +38,971,0,2,8,18,8,38,38,38,38,16,17,'MBAAAA','JLBAAA','VVVVxx' +790,972,0,2,0,10,0,90,190,290,790,0,1,'KEAAAA','KLBAAA','AAAAxx' +726,973,0,2,6,6,6,26,126,226,726,12,13,'YBAAAA','LLBAAA','HHHHxx' +23,974,1,3,3,3,3,23,23,23,23,6,7,'XAAAAA','MLBAAA','OOOOxx' +641,975,1,1,1,1,1,41,41,141,641,2,3,'RYAAAA','NLBAAA','VVVVxx' +524,976,0,0,4,4,4,24,124,24,524,8,9,'EUAAAA','OLBAAA','AAAAxx' +169,977,1,1,9,9,9,69,169,169,169,18,19,'NGAAAA','PLBAAA','HHHHxx' +6,978,0,2,6,6,6,6,6,6,6,12,13,'GAAAAA','QLBAAA','OOOOxx' +943,979,1,3,3,3,3,43,143,443,943,6,7,'HKAAAA','RLBAAA','VVVVxx' +26,980,0,2,6,6,6,26,26,26,26,12,13,'ABAAAA','SLBAAA','AAAAxx' +469,981,1,1,9,9,9,69,69,469,469,18,19,'BSAAAA','TLBAAA','HHHHxx' +968,982,0,0,8,8,8,68,168,468,968,16,17,'GLAAAA','ULBAAA','OOOOxx' +947,983,1,3,7,7,7,47,147,447,947,14,15,'LKAAAA','VLBAAA','VVVVxx' +133,984,1,1,3,13,3,33,133,133,133,6,7,'DFAAAA','WLBAAA','AAAAxx' +52,985,0,0,2,12,2,52,52,52,52,4,5,'ACAAAA','XLBAAA','HHHHxx' +660,986,0,0,0,0,0,60,60,160,660,0,1,'KZAAAA','YLBAAA','OOOOxx' +780,987,0,0,0,0,0,80,180,280,780,0,1,'AEAAAA','ZLBAAA','VVVVxx' +963,988,1,3,3,3,3,63,163,463,963,6,7,'BLAAAA','AMBAAA','AAAAxx' +561,989,1,1,1,1,1,61,161,61,561,2,3,'PVAAAA','BMBAAA','HHHHxx' +402,990,0,2,2,2,2,2,2,402,402,4,5,'MPAAAA','CMBAAA','OOOOxx' +437,991,1,1,7,17,7,37,37,437,437,14,15,'VQAAAA','DMBAAA','VVVVxx' +112,992,0,0,2,12,2,12,112,112,112,4,5,'IEAAAA','EMBAAA','AAAAxx' +247,993,1,3,7,7,7,47,47,247,247,14,15,'NJAAAA','FMBAAA','HHHHxx' +579,994,1,3,9,19,9,79,179,79,579,18,19,'HWAAAA','GMBAAA','OOOOxx' +379,995,1,3,9,19,9,79,179,379,379,18,19,'POAAAA','HMBAAA','VVVVxx' +74,996,0,2,4,14,4,74,74,74,74,8,9,'WCAAAA','IMBAAA','AAAAxx' +744,997,0,0,4,4,4,44,144,244,744,8,9,'QCAAAA','JMBAAA','HHHHxx' +0,998,0,0,0,0,0,0,0,0,0,0,1,'AAAAAA','KMBAAA','OOOOxx' +278,999,0,2,8,18,8,78,78,278,278,16,17,'SKAAAA','LMBAAA','VVVVxx' diff --git a/database/sql-bench/Data/Wisconsin/tenk.data b/database/sql-bench/Data/Wisconsin/tenk.data new file mode 100644 index 0000000..e9d200a --- /dev/null +++ b/database/sql-bench/Data/Wisconsin/tenk.data @@ -0,0 +1,10000 @@ +8800,0,0,0,0,0,0,800,800,3800,8800,0,1,'MAAAAA','AAAAAA','AAAAxx' +1891,1,1,3,1,11,91,891,1891,1891,1891,182,183,'TUAAAA','BAAAAA','HHHHxx' +3420,2,0,0,0,0,20,420,1420,3420,3420,40,41,'OBAAAA','CAAAAA','OOOOxx' +9850,3,0,2,0,10,50,850,1850,4850,9850,100,101,'WOAAAA','DAAAAA','VVVVxx' +7164,4,0,0,4,4,64,164,1164,2164,7164,128,129,'OPAAAA','EAAAAA','AAAAxx' +8009,5,1,1,9,9,9,9,9,3009,8009,18,19,'BWAAAA','FAAAAA','HHHHxx' +5057,6,1,1,7,17,57,57,1057,57,5057,114,115,'NMAAAA','GAAAAA','OOOOxx' +6701,7,1,1,1,1,1,701,701,1701,6701,2,3,'TXAAAA','HAAAAA','VVVVxx' +4321,8,1,1,1,1,21,321,321,4321,4321,42,43,'FKAAAA','IAAAAA','AAAAxx' +3043,9,1,3,3,3,43,43,1043,3043,3043,86,87,'BNAAAA','JAAAAA','HHHHxx' +1314,10,0,2,4,14,14,314,1314,1314,1314,28,29,'OYAAAA','KAAAAA','OOOOxx' +1504,11,0,0,4,4,4,504,1504,1504,1504,8,9,'WFAAAA','LAAAAA','VVVVxx' +5222,12,0,2,2,2,22,222,1222,222,5222,44,45,'WSAAAA','MAAAAA','AAAAxx' +6243,13,1,3,3,3,43,243,243,1243,6243,86,87,'DGAAAA','NAAAAA','HHHHxx' +5471,14,1,3,1,11,71,471,1471,471,5471,142,143,'LCAAAA','OAAAAA','OOOOxx' +5006,15,0,2,6,6,6,6,1006,6,5006,12,13,'OKAAAA','PAAAAA','VVVVxx' +5387,16,1,3,7,7,87,387,1387,387,5387,174,175,'FZAAAA','QAAAAA','AAAAxx' +5785,17,1,1,5,5,85,785,1785,785,5785,170,171,'NOAAAA','RAAAAA','HHHHxx' +6621,18,1,1,1,1,21,621,621,1621,6621,42,43,'RUAAAA','SAAAAA','OOOOxx' +6969,19,1,1,9,9,69,969,969,1969,6969,138,139,'BIAAAA','TAAAAA','VVVVxx' +9460,20,0,0,0,0,60,460,1460,4460,9460,120,121,'WZAAAA','UAAAAA','AAAAxx' +59,21,1,3,9,19,59,59,59,59,59,118,119,'HCAAAA','VAAAAA','HHHHxx' +8020,22,0,0,0,0,20,20,20,3020,8020,40,41,'MWAAAA','WAAAAA','OOOOxx' +7695,23,1,3,5,15,95,695,1695,2695,7695,190,191,'ZJAAAA','XAAAAA','VVVVxx' +3442,24,0,2,2,2,42,442,1442,3442,3442,84,85,'KCAAAA','YAAAAA','AAAAxx' +5119,25,1,3,9,19,19,119,1119,119,5119,38,39,'XOAAAA','ZAAAAA','HHHHxx' +646,26,0,2,6,6,46,646,646,646,646,92,93,'WYAAAA','ABAAAA','OOOOxx' +9605,27,1,1,5,5,5,605,1605,4605,9605,10,11,'LFAAAA','BBAAAA','VVVVxx' +263,28,1,3,3,3,63,263,263,263,263,126,127,'DKAAAA','CBAAAA','AAAAxx' +3269,29,1,1,9,9,69,269,1269,3269,3269,138,139,'TVAAAA','DBAAAA','HHHHxx' +1839,30,1,3,9,19,39,839,1839,1839,1839,78,79,'TSAAAA','EBAAAA','OOOOxx' +9144,31,0,0,4,4,44,144,1144,4144,9144,88,89,'SNAAAA','FBAAAA','VVVVxx' +2513,32,1,1,3,13,13,513,513,2513,2513,26,27,'RSAAAA','GBAAAA','AAAAxx' +8850,33,0,2,0,10,50,850,850,3850,8850,100,101,'KCAAAA','HBAAAA','HHHHxx' +236,34,0,0,6,16,36,236,236,236,236,72,73,'CJAAAA','IBAAAA','OOOOxx' +3162,35,0,2,2,2,62,162,1162,3162,3162,124,125,'QRAAAA','JBAAAA','VVVVxx' +4380,36,0,0,0,0,80,380,380,4380,4380,160,161,'MMAAAA','KBAAAA','AAAAxx' +8095,37,1,3,5,15,95,95,95,3095,8095,190,191,'JZAAAA','LBAAAA','HHHHxx' +209,38,1,1,9,9,9,209,209,209,209,18,19,'BIAAAA','MBAAAA','OOOOxx' +3055,39,1,3,5,15,55,55,1055,3055,3055,110,111,'NNAAAA','NBAAAA','VVVVxx' +6921,40,1,1,1,1,21,921,921,1921,6921,42,43,'FGAAAA','OBAAAA','AAAAxx' +7046,41,0,2,6,6,46,46,1046,2046,7046,92,93,'ALAAAA','PBAAAA','HHHHxx' +7912,42,0,0,2,12,12,912,1912,2912,7912,24,25,'ISAAAA','QBAAAA','OOOOxx' +7267,43,1,3,7,7,67,267,1267,2267,7267,134,135,'NTAAAA','RBAAAA','VVVVxx' +3599,44,1,3,9,19,99,599,1599,3599,3599,198,199,'LIAAAA','SBAAAA','AAAAxx' +923,45,1,3,3,3,23,923,923,923,923,46,47,'NJAAAA','TBAAAA','HHHHxx' +1437,46,1,1,7,17,37,437,1437,1437,1437,74,75,'HDAAAA','UBAAAA','OOOOxx' +6439,47,1,3,9,19,39,439,439,1439,6439,78,79,'RNAAAA','VBAAAA','VVVVxx' +6989,48,1,1,9,9,89,989,989,1989,6989,178,179,'VIAAAA','WBAAAA','AAAAxx' +8798,49,0,2,8,18,98,798,798,3798,8798,196,197,'KAAAAA','XBAAAA','HHHHxx' +5960,50,0,0,0,0,60,960,1960,960,5960,120,121,'GVAAAA','YBAAAA','OOOOxx' +5832,51,0,0,2,12,32,832,1832,832,5832,64,65,'IQAAAA','ZBAAAA','VVVVxx' +6066,52,0,2,6,6,66,66,66,1066,6066,132,133,'IZAAAA','ACAAAA','AAAAxx' +322,53,0,2,2,2,22,322,322,322,322,44,45,'KMAAAA','BCAAAA','HHHHxx' +8321,54,1,1,1,1,21,321,321,3321,8321,42,43,'BIAAAA','CCAAAA','OOOOxx' +734,55,0,2,4,14,34,734,734,734,734,68,69,'GCAAAA','DCAAAA','VVVVxx' +688,56,0,0,8,8,88,688,688,688,688,176,177,'MAAAAA','ECAAAA','AAAAxx' +4212,57,0,0,2,12,12,212,212,4212,4212,24,25,'AGAAAA','FCAAAA','HHHHxx' +9653,58,1,1,3,13,53,653,1653,4653,9653,106,107,'HHAAAA','GCAAAA','OOOOxx' +2677,59,1,1,7,17,77,677,677,2677,2677,154,155,'ZYAAAA','HCAAAA','VVVVxx' +5423,60,1,3,3,3,23,423,1423,423,5423,46,47,'PAAAAA','ICAAAA','AAAAxx' +2592,61,0,0,2,12,92,592,592,2592,2592,184,185,'SVAAAA','JCAAAA','HHHHxx' +3233,62,1,1,3,13,33,233,1233,3233,3233,66,67,'JUAAAA','KCAAAA','OOOOxx' +5032,63,0,0,2,12,32,32,1032,32,5032,64,65,'OLAAAA','LCAAAA','VVVVxx' +2525,64,1,1,5,5,25,525,525,2525,2525,50,51,'DTAAAA','MCAAAA','AAAAxx' +4450,65,0,2,0,10,50,450,450,4450,4450,100,101,'EPAAAA','NCAAAA','HHHHxx' +5778,66,0,2,8,18,78,778,1778,778,5778,156,157,'GOAAAA','OCAAAA','OOOOxx' +5852,67,0,0,2,12,52,852,1852,852,5852,104,105,'CRAAAA','PCAAAA','VVVVxx' +5404,68,0,0,4,4,4,404,1404,404,5404,8,9,'WZAAAA','QCAAAA','AAAAxx' +6223,69,1,3,3,3,23,223,223,1223,6223,46,47,'JFAAAA','RCAAAA','HHHHxx' +6133,70,1,1,3,13,33,133,133,1133,6133,66,67,'XBAAAA','SCAAAA','OOOOxx' +9112,71,0,0,2,12,12,112,1112,4112,9112,24,25,'MMAAAA','TCAAAA','VVVVxx' +7575,72,1,3,5,15,75,575,1575,2575,7575,150,151,'JFAAAA','UCAAAA','AAAAxx' +7414,73,0,2,4,14,14,414,1414,2414,7414,28,29,'EZAAAA','VCAAAA','HHHHxx' +9741,74,1,1,1,1,41,741,1741,4741,9741,82,83,'RKAAAA','WCAAAA','OOOOxx' +3767,75,1,3,7,7,67,767,1767,3767,3767,134,135,'XOAAAA','XCAAAA','VVVVxx' +9372,76,0,0,2,12,72,372,1372,4372,9372,144,145,'MWAAAA','YCAAAA','AAAAxx' +8976,77,0,0,6,16,76,976,976,3976,8976,152,153,'GHAAAA','ZCAAAA','HHHHxx' +4071,78,1,3,1,11,71,71,71,4071,4071,142,143,'PAAAAA','ADAAAA','OOOOxx' +1311,79,1,3,1,11,11,311,1311,1311,1311,22,23,'LYAAAA','BDAAAA','VVVVxx' +2604,80,0,0,4,4,4,604,604,2604,2604,8,9,'EWAAAA','CDAAAA','AAAAxx' +8840,81,0,0,0,0,40,840,840,3840,8840,80,81,'ACAAAA','DDAAAA','HHHHxx' +567,82,1,3,7,7,67,567,567,567,567,134,135,'VVAAAA','EDAAAA','OOOOxx' +5215,83,1,3,5,15,15,215,1215,215,5215,30,31,'PSAAAA','FDAAAA','VVVVxx' +5474,84,0,2,4,14,74,474,1474,474,5474,148,149,'OCAAAA','GDAAAA','AAAAxx' +3906,85,0,2,6,6,6,906,1906,3906,3906,12,13,'GUAAAA','HDAAAA','HHHHxx' +1769,86,1,1,9,9,69,769,1769,1769,1769,138,139,'BQAAAA','IDAAAA','OOOOxx' +1454,87,0,2,4,14,54,454,1454,1454,1454,108,109,'YDAAAA','JDAAAA','VVVVxx' +6877,88,1,1,7,17,77,877,877,1877,6877,154,155,'NEAAAA','KDAAAA','AAAAxx' +6501,89,1,1,1,1,1,501,501,1501,6501,2,3,'BQAAAA','LDAAAA','HHHHxx' +934,90,0,2,4,14,34,934,934,934,934,68,69,'YJAAAA','MDAAAA','OOOOxx' +4075,91,1,3,5,15,75,75,75,4075,4075,150,151,'TAAAAA','NDAAAA','VVVVxx' +3180,92,0,0,0,0,80,180,1180,3180,3180,160,161,'ISAAAA','ODAAAA','AAAAxx' +7787,93,1,3,7,7,87,787,1787,2787,7787,174,175,'NNAAAA','PDAAAA','HHHHxx' +6401,94,1,1,1,1,1,401,401,1401,6401,2,3,'FMAAAA','QDAAAA','OOOOxx' +4244,95,0,0,4,4,44,244,244,4244,4244,88,89,'GHAAAA','RDAAAA','VVVVxx' +4591,96,1,3,1,11,91,591,591,4591,4591,182,183,'PUAAAA','SDAAAA','AAAAxx' +4113,97,1,1,3,13,13,113,113,4113,4113,26,27,'FCAAAA','TDAAAA','HHHHxx' +5925,98,1,1,5,5,25,925,1925,925,5925,50,51,'XTAAAA','UDAAAA','OOOOxx' +1987,99,1,3,7,7,87,987,1987,1987,1987,174,175,'LYAAAA','VDAAAA','VVVVxx' +8248,100,0,0,8,8,48,248,248,3248,8248,96,97,'GFAAAA','WDAAAA','AAAAxx' +4151,101,1,3,1,11,51,151,151,4151,4151,102,103,'RDAAAA','XDAAAA','HHHHxx' +8670,102,0,2,0,10,70,670,670,3670,8670,140,141,'MVAAAA','YDAAAA','OOOOxx' +6194,103,0,2,4,14,94,194,194,1194,6194,188,189,'GEAAAA','ZDAAAA','VVVVxx' +88,104,0,0,8,8,88,88,88,88,88,176,177,'KDAAAA','AEAAAA','AAAAxx' +4058,105,0,2,8,18,58,58,58,4058,4058,116,117,'CAAAAA','BEAAAA','HHHHxx' +2742,106,0,2,2,2,42,742,742,2742,2742,84,85,'MBAAAA','CEAAAA','OOOOxx' +8275,107,1,3,5,15,75,275,275,3275,8275,150,151,'HGAAAA','DEAAAA','VVVVxx' +4258,108,0,2,8,18,58,258,258,4258,4258,116,117,'UHAAAA','EEAAAA','AAAAxx' +6129,109,1,1,9,9,29,129,129,1129,6129,58,59,'TBAAAA','FEAAAA','HHHHxx' +7243,110,1,3,3,3,43,243,1243,2243,7243,86,87,'PSAAAA','GEAAAA','OOOOxx' +2392,111,0,0,2,12,92,392,392,2392,2392,184,185,'AOAAAA','HEAAAA','VVVVxx' +9853,112,1,1,3,13,53,853,1853,4853,9853,106,107,'ZOAAAA','IEAAAA','AAAAxx' +6064,113,0,0,4,4,64,64,64,1064,6064,128,129,'GZAAAA','JEAAAA','HHHHxx' +4391,114,1,3,1,11,91,391,391,4391,4391,182,183,'XMAAAA','KEAAAA','OOOOxx' +726,115,0,2,6,6,26,726,726,726,726,52,53,'YBAAAA','LEAAAA','VVVVxx' +6957,116,1,1,7,17,57,957,957,1957,6957,114,115,'PHAAAA','MEAAAA','AAAAxx' +3853,117,1,1,3,13,53,853,1853,3853,3853,106,107,'FSAAAA','NEAAAA','HHHHxx' +4524,118,0,0,4,4,24,524,524,4524,4524,48,49,'ASAAAA','OEAAAA','OOOOxx' +5330,119,0,2,0,10,30,330,1330,330,5330,60,61,'AXAAAA','PEAAAA','VVVVxx' +6671,120,1,3,1,11,71,671,671,1671,6671,142,143,'PWAAAA','QEAAAA','AAAAxx' +5314,121,0,2,4,14,14,314,1314,314,5314,28,29,'KWAAAA','REAAAA','HHHHxx' +9202,122,0,2,2,2,2,202,1202,4202,9202,4,5,'YPAAAA','SEAAAA','OOOOxx' +4596,123,0,0,6,16,96,596,596,4596,4596,192,193,'UUAAAA','TEAAAA','VVVVxx' +8951,124,1,3,1,11,51,951,951,3951,8951,102,103,'HGAAAA','UEAAAA','AAAAxx' +9902,125,0,2,2,2,2,902,1902,4902,9902,4,5,'WQAAAA','VEAAAA','HHHHxx' +1440,126,0,0,0,0,40,440,1440,1440,1440,80,81,'KDAAAA','WEAAAA','OOOOxx' +5339,127,1,3,9,19,39,339,1339,339,5339,78,79,'JXAAAA','XEAAAA','VVVVxx' +3371,128,1,3,1,11,71,371,1371,3371,3371,142,143,'RZAAAA','YEAAAA','AAAAxx' +4467,129,1,3,7,7,67,467,467,4467,4467,134,135,'VPAAAA','ZEAAAA','HHHHxx' +6216,130,0,0,6,16,16,216,216,1216,6216,32,33,'CFAAAA','AFAAAA','OOOOxx' +5364,131,0,0,4,4,64,364,1364,364,5364,128,129,'IYAAAA','BFAAAA','VVVVxx' +7547,132,1,3,7,7,47,547,1547,2547,7547,94,95,'HEAAAA','CFAAAA','AAAAxx' +4338,133,0,2,8,18,38,338,338,4338,4338,76,77,'WKAAAA','DFAAAA','HHHHxx' +3481,134,1,1,1,1,81,481,1481,3481,3481,162,163,'XDAAAA','EFAAAA','OOOOxx' +826,135,0,2,6,6,26,826,826,826,826,52,53,'UFAAAA','FFAAAA','VVVVxx' +3647,136,1,3,7,7,47,647,1647,3647,3647,94,95,'HKAAAA','GFAAAA','AAAAxx' +3337,137,1,1,7,17,37,337,1337,3337,3337,74,75,'JYAAAA','HFAAAA','HHHHxx' +3591,138,1,3,1,11,91,591,1591,3591,3591,182,183,'DIAAAA','IFAAAA','OOOOxx' +7192,139,0,0,2,12,92,192,1192,2192,7192,184,185,'QQAAAA','JFAAAA','VVVVxx' +1078,140,0,2,8,18,78,78,1078,1078,1078,156,157,'MPAAAA','KFAAAA','AAAAxx' +1310,141,0,2,0,10,10,310,1310,1310,1310,20,21,'KYAAAA','LFAAAA','HHHHxx' +9642,142,0,2,2,2,42,642,1642,4642,9642,84,85,'WGAAAA','MFAAAA','OOOOxx' +39,143,1,3,9,19,39,39,39,39,39,78,79,'NBAAAA','NFAAAA','VVVVxx' +8682,144,0,2,2,2,82,682,682,3682,8682,164,165,'YVAAAA','OFAAAA','AAAAxx' +1794,145,0,2,4,14,94,794,1794,1794,1794,188,189,'ARAAAA','PFAAAA','HHHHxx' +5630,146,0,2,0,10,30,630,1630,630,5630,60,61,'OIAAAA','QFAAAA','OOOOxx' +6748,147,0,0,8,8,48,748,748,1748,6748,96,97,'OZAAAA','RFAAAA','VVVVxx' +3766,148,0,2,6,6,66,766,1766,3766,3766,132,133,'WOAAAA','SFAAAA','AAAAxx' +6403,149,1,3,3,3,3,403,403,1403,6403,6,7,'HMAAAA','TFAAAA','HHHHxx' +175,150,1,3,5,15,75,175,175,175,175,150,151,'TGAAAA','UFAAAA','OOOOxx' +2179,151,1,3,9,19,79,179,179,2179,2179,158,159,'VFAAAA','VFAAAA','VVVVxx' +7897,152,1,1,7,17,97,897,1897,2897,7897,194,195,'TRAAAA','WFAAAA','AAAAxx' +2760,153,0,0,0,0,60,760,760,2760,2760,120,121,'ECAAAA','XFAAAA','HHHHxx' +1675,154,1,3,5,15,75,675,1675,1675,1675,150,151,'LMAAAA','YFAAAA','OOOOxx' +2564,155,0,0,4,4,64,564,564,2564,2564,128,129,'QUAAAA','ZFAAAA','VVVVxx' +157,156,1,1,7,17,57,157,157,157,157,114,115,'BGAAAA','AGAAAA','AAAAxx' +8779,157,1,3,9,19,79,779,779,3779,8779,158,159,'RZAAAA','BGAAAA','HHHHxx' +9591,158,1,3,1,11,91,591,1591,4591,9591,182,183,'XEAAAA','CGAAAA','OOOOxx' +8732,159,0,0,2,12,32,732,732,3732,8732,64,65,'WXAAAA','DGAAAA','VVVVxx' +139,160,1,3,9,19,39,139,139,139,139,78,79,'JFAAAA','EGAAAA','AAAAxx' +5372,161,0,0,2,12,72,372,1372,372,5372,144,145,'QYAAAA','FGAAAA','HHHHxx' +1278,162,0,2,8,18,78,278,1278,1278,1278,156,157,'EXAAAA','GGAAAA','OOOOxx' +4697,163,1,1,7,17,97,697,697,4697,4697,194,195,'RYAAAA','HGAAAA','VVVVxx' +8610,164,0,2,0,10,10,610,610,3610,8610,20,21,'ETAAAA','IGAAAA','AAAAxx' +8180,165,0,0,0,0,80,180,180,3180,8180,160,161,'QCAAAA','JGAAAA','HHHHxx' +2399,166,1,3,9,19,99,399,399,2399,2399,198,199,'HOAAAA','KGAAAA','OOOOxx' +615,167,1,3,5,15,15,615,615,615,615,30,31,'RXAAAA','LGAAAA','VVVVxx' +7629,168,1,1,9,9,29,629,1629,2629,7629,58,59,'LHAAAA','MGAAAA','AAAAxx' +7628,169,0,0,8,8,28,628,1628,2628,7628,56,57,'KHAAAA','NGAAAA','HHHHxx' +4659,170,1,3,9,19,59,659,659,4659,4659,118,119,'FXAAAA','OGAAAA','OOOOxx' +5865,171,1,1,5,5,65,865,1865,865,5865,130,131,'PRAAAA','PGAAAA','VVVVxx' +3973,172,1,1,3,13,73,973,1973,3973,3973,146,147,'VWAAAA','QGAAAA','AAAAxx' +552,173,0,0,2,12,52,552,552,552,552,104,105,'GVAAAA','RGAAAA','HHHHxx' +708,174,0,0,8,8,8,708,708,708,708,16,17,'GBAAAA','SGAAAA','OOOOxx' +3550,175,0,2,0,10,50,550,1550,3550,3550,100,101,'OGAAAA','TGAAAA','VVVVxx' +5547,176,1,3,7,7,47,547,1547,547,5547,94,95,'JFAAAA','UGAAAA','AAAAxx' +489,177,1,1,9,9,89,489,489,489,489,178,179,'VSAAAA','VGAAAA','HHHHxx' +3794,178,0,2,4,14,94,794,1794,3794,3794,188,189,'YPAAAA','WGAAAA','OOOOxx' +9479,179,1,3,9,19,79,479,1479,4479,9479,158,159,'PAAAAA','XGAAAA','VVVVxx' +6435,180,1,3,5,15,35,435,435,1435,6435,70,71,'NNAAAA','YGAAAA','AAAAxx' +5120,181,0,0,0,0,20,120,1120,120,5120,40,41,'YOAAAA','ZGAAAA','HHHHxx' +3615,182,1,3,5,15,15,615,1615,3615,3615,30,31,'BJAAAA','AHAAAA','OOOOxx' +8399,183,1,3,9,19,99,399,399,3399,8399,198,199,'BLAAAA','BHAAAA','VVVVxx' +2155,184,1,3,5,15,55,155,155,2155,2155,110,111,'XEAAAA','CHAAAA','AAAAxx' +6690,185,0,2,0,10,90,690,690,1690,6690,180,181,'IXAAAA','DHAAAA','HHHHxx' +1683,186,1,3,3,3,83,683,1683,1683,1683,166,167,'TMAAAA','EHAAAA','OOOOxx' +6302,187,0,2,2,2,2,302,302,1302,6302,4,5,'KIAAAA','FHAAAA','VVVVxx' +516,188,0,0,6,16,16,516,516,516,516,32,33,'WTAAAA','GHAAAA','AAAAxx' +3901,189,1,1,1,1,1,901,1901,3901,3901,2,3,'BUAAAA','HHAAAA','HHHHxx' +6938,190,0,2,8,18,38,938,938,1938,6938,76,77,'WGAAAA','IHAAAA','OOOOxx' +7484,191,0,0,4,4,84,484,1484,2484,7484,168,169,'WBAAAA','JHAAAA','VVVVxx' +7424,192,0,0,4,4,24,424,1424,2424,7424,48,49,'OZAAAA','KHAAAA','AAAAxx' +9410,193,0,2,0,10,10,410,1410,4410,9410,20,21,'YXAAAA','LHAAAA','HHHHxx' +1714,194,0,2,4,14,14,714,1714,1714,1714,28,29,'YNAAAA','MHAAAA','OOOOxx' +8278,195,0,2,8,18,78,278,278,3278,8278,156,157,'KGAAAA','NHAAAA','VVVVxx' +3158,196,0,2,8,18,58,158,1158,3158,3158,116,117,'MRAAAA','OHAAAA','AAAAxx' +2511,197,1,3,1,11,11,511,511,2511,2511,22,23,'PSAAAA','PHAAAA','HHHHxx' +2912,198,0,0,2,12,12,912,912,2912,2912,24,25,'AIAAAA','QHAAAA','OOOOxx' +2648,199,0,0,8,8,48,648,648,2648,2648,96,97,'WXAAAA','RHAAAA','VVVVxx' +9385,200,1,1,5,5,85,385,1385,4385,9385,170,171,'ZWAAAA','SHAAAA','AAAAxx' +7545,201,1,1,5,5,45,545,1545,2545,7545,90,91,'FEAAAA','THAAAA','HHHHxx' +8407,202,1,3,7,7,7,407,407,3407,8407,14,15,'JLAAAA','UHAAAA','OOOOxx' +5893,203,1,1,3,13,93,893,1893,893,5893,186,187,'RSAAAA','VHAAAA','VVVVxx' +7049,204,1,1,9,9,49,49,1049,2049,7049,98,99,'DLAAAA','WHAAAA','AAAAxx' +6812,205,0,0,2,12,12,812,812,1812,6812,24,25,'ACAAAA','XHAAAA','HHHHxx' +3649,206,1,1,9,9,49,649,1649,3649,3649,98,99,'JKAAAA','YHAAAA','OOOOxx' +9275,207,1,3,5,15,75,275,1275,4275,9275,150,151,'TSAAAA','ZHAAAA','VVVVxx' +1179,208,1,3,9,19,79,179,1179,1179,1179,158,159,'JTAAAA','AIAAAA','AAAAxx' +969,209,1,1,9,9,69,969,969,969,969,138,139,'HLAAAA','BIAAAA','HHHHxx' +7920,210,0,0,0,0,20,920,1920,2920,7920,40,41,'QSAAAA','CIAAAA','OOOOxx' +998,211,0,2,8,18,98,998,998,998,998,196,197,'KMAAAA','DIAAAA','VVVVxx' +3958,212,0,2,8,18,58,958,1958,3958,3958,116,117,'GWAAAA','EIAAAA','AAAAxx' +6052,213,0,0,2,12,52,52,52,1052,6052,104,105,'UYAAAA','FIAAAA','HHHHxx' +8791,214,1,3,1,11,91,791,791,3791,8791,182,183,'DAAAAA','GIAAAA','OOOOxx' +5191,215,1,3,1,11,91,191,1191,191,5191,182,183,'RRAAAA','HIAAAA','VVVVxx' +4267,216,1,3,7,7,67,267,267,4267,4267,134,135,'DIAAAA','IIAAAA','AAAAxx' +2829,217,1,1,9,9,29,829,829,2829,2829,58,59,'VEAAAA','JIAAAA','HHHHxx' +6396,218,0,0,6,16,96,396,396,1396,6396,192,193,'AMAAAA','KIAAAA','OOOOxx' +9413,219,1,1,3,13,13,413,1413,4413,9413,26,27,'BYAAAA','LIAAAA','VVVVxx' +614,220,0,2,4,14,14,614,614,614,614,28,29,'QXAAAA','MIAAAA','AAAAxx' +4660,221,0,0,0,0,60,660,660,4660,4660,120,121,'GXAAAA','NIAAAA','HHHHxx' +8834,222,0,2,4,14,34,834,834,3834,8834,68,69,'UBAAAA','OIAAAA','OOOOxx' +2767,223,1,3,7,7,67,767,767,2767,2767,134,135,'LCAAAA','PIAAAA','VVVVxx' +2444,224,0,0,4,4,44,444,444,2444,2444,88,89,'AQAAAA','QIAAAA','AAAAxx' +4129,225,1,1,9,9,29,129,129,4129,4129,58,59,'VCAAAA','RIAAAA','HHHHxx' +3394,226,0,2,4,14,94,394,1394,3394,3394,188,189,'OAAAAA','SIAAAA','OOOOxx' +2705,227,1,1,5,5,5,705,705,2705,2705,10,11,'BAAAAA','TIAAAA','VVVVxx' +8499,228,1,3,9,19,99,499,499,3499,8499,198,199,'XOAAAA','UIAAAA','AAAAxx' +8852,229,0,0,2,12,52,852,852,3852,8852,104,105,'MCAAAA','VIAAAA','HHHHxx' +6174,230,0,2,4,14,74,174,174,1174,6174,148,149,'MDAAAA','WIAAAA','OOOOxx' +750,231,0,2,0,10,50,750,750,750,750,100,101,'WCAAAA','XIAAAA','VVVVxx' +8164,232,0,0,4,4,64,164,164,3164,8164,128,129,'ACAAAA','YIAAAA','AAAAxx' +4930,233,0,2,0,10,30,930,930,4930,4930,60,61,'QHAAAA','ZIAAAA','HHHHxx' +9904,234,0,0,4,4,4,904,1904,4904,9904,8,9,'YQAAAA','AJAAAA','OOOOxx' +7378,235,0,2,8,18,78,378,1378,2378,7378,156,157,'UXAAAA','BJAAAA','VVVVxx' +2927,236,1,3,7,7,27,927,927,2927,2927,54,55,'PIAAAA','CJAAAA','AAAAxx' +7155,237,1,3,5,15,55,155,1155,2155,7155,110,111,'FPAAAA','DJAAAA','HHHHxx' +1302,238,0,2,2,2,2,302,1302,1302,1302,4,5,'CYAAAA','EJAAAA','OOOOxx' +5904,239,0,0,4,4,4,904,1904,904,5904,8,9,'CTAAAA','FJAAAA','VVVVxx' +9687,240,1,3,7,7,87,687,1687,4687,9687,174,175,'PIAAAA','GJAAAA','AAAAxx' +3553,241,1,1,3,13,53,553,1553,3553,3553,106,107,'RGAAAA','HJAAAA','HHHHxx' +4447,242,1,3,7,7,47,447,447,4447,4447,94,95,'BPAAAA','IJAAAA','OOOOxx' +6878,243,0,2,8,18,78,878,878,1878,6878,156,157,'OEAAAA','JJAAAA','VVVVxx' +9470,244,0,2,0,10,70,470,1470,4470,9470,140,141,'GAAAAA','KJAAAA','AAAAxx' +9735,245,1,3,5,15,35,735,1735,4735,9735,70,71,'LKAAAA','LJAAAA','HHHHxx' +5967,246,1,3,7,7,67,967,1967,967,5967,134,135,'NVAAAA','MJAAAA','OOOOxx' +6601,247,1,1,1,1,1,601,601,1601,6601,2,3,'XTAAAA','NJAAAA','VVVVxx' +7631,248,1,3,1,11,31,631,1631,2631,7631,62,63,'NHAAAA','OJAAAA','AAAAxx' +3559,249,1,3,9,19,59,559,1559,3559,3559,118,119,'XGAAAA','PJAAAA','HHHHxx' +2247,250,1,3,7,7,47,247,247,2247,2247,94,95,'LIAAAA','QJAAAA','OOOOxx' +9649,251,1,1,9,9,49,649,1649,4649,9649,98,99,'DHAAAA','RJAAAA','VVVVxx' +808,252,0,0,8,8,8,808,808,808,808,16,17,'CFAAAA','SJAAAA','AAAAxx' +240,253,0,0,0,0,40,240,240,240,240,80,81,'GJAAAA','TJAAAA','HHHHxx' +5031,254,1,3,1,11,31,31,1031,31,5031,62,63,'NLAAAA','UJAAAA','OOOOxx' +9563,255,1,3,3,3,63,563,1563,4563,9563,126,127,'VDAAAA','VJAAAA','VVVVxx' +5656,256,0,0,6,16,56,656,1656,656,5656,112,113,'OJAAAA','WJAAAA','AAAAxx' +3886,257,0,2,6,6,86,886,1886,3886,3886,172,173,'MTAAAA','XJAAAA','HHHHxx' +2431,258,1,3,1,11,31,431,431,2431,2431,62,63,'NPAAAA','YJAAAA','OOOOxx' +5560,259,0,0,0,0,60,560,1560,560,5560,120,121,'WFAAAA','ZJAAAA','VVVVxx' +9065,260,1,1,5,5,65,65,1065,4065,9065,130,131,'RKAAAA','AKAAAA','AAAAxx' +8130,261,0,2,0,10,30,130,130,3130,8130,60,61,'SAAAAA','BKAAAA','HHHHxx' +4054,262,0,2,4,14,54,54,54,4054,4054,108,109,'YZAAAA','CKAAAA','OOOOxx' +873,263,1,1,3,13,73,873,873,873,873,146,147,'PHAAAA','DKAAAA','VVVVxx' +3092,264,0,0,2,12,92,92,1092,3092,3092,184,185,'YOAAAA','EKAAAA','AAAAxx' +6697,265,1,1,7,17,97,697,697,1697,6697,194,195,'PXAAAA','FKAAAA','HHHHxx' +2452,266,0,0,2,12,52,452,452,2452,2452,104,105,'IQAAAA','GKAAAA','OOOOxx' +7867,267,1,3,7,7,67,867,1867,2867,7867,134,135,'PQAAAA','HKAAAA','VVVVxx' +3753,268,1,1,3,13,53,753,1753,3753,3753,106,107,'JOAAAA','IKAAAA','AAAAxx' +7834,269,0,2,4,14,34,834,1834,2834,7834,68,69,'IPAAAA','JKAAAA','HHHHxx' +5846,270,0,2,6,6,46,846,1846,846,5846,92,93,'WQAAAA','KKAAAA','OOOOxx' +7604,271,0,0,4,4,4,604,1604,2604,7604,8,9,'MGAAAA','LKAAAA','VVVVxx' +3452,272,0,0,2,12,52,452,1452,3452,3452,104,105,'UCAAAA','MKAAAA','AAAAxx' +4788,273,0,0,8,8,88,788,788,4788,4788,176,177,'ECAAAA','NKAAAA','HHHHxx' +8600,274,0,0,0,0,0,600,600,3600,8600,0,1,'USAAAA','OKAAAA','OOOOxx' +8511,275,1,3,1,11,11,511,511,3511,8511,22,23,'JPAAAA','PKAAAA','VVVVxx' +4452,276,0,0,2,12,52,452,452,4452,4452,104,105,'GPAAAA','QKAAAA','AAAAxx' +1709,277,1,1,9,9,9,709,1709,1709,1709,18,19,'TNAAAA','RKAAAA','HHHHxx' +3440,278,0,0,0,0,40,440,1440,3440,3440,80,81,'ICAAAA','SKAAAA','OOOOxx' +9188,279,0,0,8,8,88,188,1188,4188,9188,176,177,'KPAAAA','TKAAAA','VVVVxx' +3058,280,0,2,8,18,58,58,1058,3058,3058,116,117,'QNAAAA','UKAAAA','AAAAxx' +5821,281,1,1,1,1,21,821,1821,821,5821,42,43,'XPAAAA','VKAAAA','HHHHxx' +3428,282,0,0,8,8,28,428,1428,3428,3428,56,57,'WBAAAA','WKAAAA','OOOOxx' +3581,283,1,1,1,1,81,581,1581,3581,3581,162,163,'THAAAA','XKAAAA','VVVVxx' +7523,284,1,3,3,3,23,523,1523,2523,7523,46,47,'JDAAAA','YKAAAA','AAAAxx' +3131,285,1,3,1,11,31,131,1131,3131,3131,62,63,'LQAAAA','ZKAAAA','HHHHxx' +2404,286,0,0,4,4,4,404,404,2404,2404,8,9,'MOAAAA','ALAAAA','OOOOxx' +5453,287,1,1,3,13,53,453,1453,453,5453,106,107,'TBAAAA','BLAAAA','VVVVxx' +1599,288,1,3,9,19,99,599,1599,1599,1599,198,199,'NJAAAA','CLAAAA','AAAAxx' +7081,289,1,1,1,1,81,81,1081,2081,7081,162,163,'JMAAAA','DLAAAA','HHHHxx' +1750,290,0,2,0,10,50,750,1750,1750,1750,100,101,'IPAAAA','ELAAAA','OOOOxx' +5085,291,1,1,5,5,85,85,1085,85,5085,170,171,'PNAAAA','FLAAAA','VVVVxx' +9777,292,1,1,7,17,77,777,1777,4777,9777,154,155,'BMAAAA','GLAAAA','AAAAxx' +574,293,0,2,4,14,74,574,574,574,574,148,149,'CWAAAA','HLAAAA','HHHHxx' +5984,294,0,0,4,4,84,984,1984,984,5984,168,169,'EWAAAA','ILAAAA','OOOOxx' +7039,295,1,3,9,19,39,39,1039,2039,7039,78,79,'TKAAAA','JLAAAA','VVVVxx' +7143,296,1,3,3,3,43,143,1143,2143,7143,86,87,'TOAAAA','KLAAAA','AAAAxx' +5702,297,0,2,2,2,2,702,1702,702,5702,4,5,'ILAAAA','LLAAAA','HHHHxx' +362,298,0,2,2,2,62,362,362,362,362,124,125,'YNAAAA','MLAAAA','OOOOxx' +6997,299,1,1,7,17,97,997,997,1997,6997,194,195,'DJAAAA','NLAAAA','VVVVxx' +2529,300,1,1,9,9,29,529,529,2529,2529,58,59,'HTAAAA','OLAAAA','AAAAxx' +6319,301,1,3,9,19,19,319,319,1319,6319,38,39,'BJAAAA','PLAAAA','HHHHxx' +954,302,0,2,4,14,54,954,954,954,954,108,109,'SKAAAA','QLAAAA','OOOOxx' +3413,303,1,1,3,13,13,413,1413,3413,3413,26,27,'HBAAAA','RLAAAA','VVVVxx' +9081,304,1,1,1,1,81,81,1081,4081,9081,162,163,'HLAAAA','SLAAAA','AAAAxx' +5599,305,1,3,9,19,99,599,1599,599,5599,198,199,'JHAAAA','TLAAAA','HHHHxx' +4772,306,0,0,2,12,72,772,772,4772,4772,144,145,'OBAAAA','ULAAAA','OOOOxx' +1124,307,0,0,4,4,24,124,1124,1124,1124,48,49,'GRAAAA','VLAAAA','VVVVxx' +7793,308,1,1,3,13,93,793,1793,2793,7793,186,187,'TNAAAA','WLAAAA','AAAAxx' +4201,309,1,1,1,1,1,201,201,4201,4201,2,3,'PFAAAA','XLAAAA','HHHHxx' +7015,310,1,3,5,15,15,15,1015,2015,7015,30,31,'VJAAAA','YLAAAA','OOOOxx' +5936,311,0,0,6,16,36,936,1936,936,5936,72,73,'IUAAAA','ZLAAAA','VVVVxx' +4625,312,1,1,5,5,25,625,625,4625,4625,50,51,'XVAAAA','AMAAAA','AAAAxx' +4989,313,1,1,9,9,89,989,989,4989,4989,178,179,'XJAAAA','BMAAAA','HHHHxx' +4949,314,1,1,9,9,49,949,949,4949,4949,98,99,'JIAAAA','CMAAAA','OOOOxx' +6273,315,1,1,3,13,73,273,273,1273,6273,146,147,'HHAAAA','DMAAAA','VVVVxx' +4478,316,0,2,8,18,78,478,478,4478,4478,156,157,'GQAAAA','EMAAAA','AAAAxx' +8854,317,0,2,4,14,54,854,854,3854,8854,108,109,'OCAAAA','FMAAAA','HHHHxx' +2105,318,1,1,5,5,5,105,105,2105,2105,10,11,'ZCAAAA','GMAAAA','OOOOxx' +8345,319,1,1,5,5,45,345,345,3345,8345,90,91,'ZIAAAA','HMAAAA','VVVVxx' +1941,320,1,1,1,1,41,941,1941,1941,1941,82,83,'RWAAAA','IMAAAA','AAAAxx' +1765,321,1,1,5,5,65,765,1765,1765,1765,130,131,'XPAAAA','JMAAAA','HHHHxx' +9592,322,0,0,2,12,92,592,1592,4592,9592,184,185,'YEAAAA','KMAAAA','OOOOxx' +1694,323,0,2,4,14,94,694,1694,1694,1694,188,189,'ENAAAA','LMAAAA','VVVVxx' +8940,324,0,0,0,0,40,940,940,3940,8940,80,81,'WFAAAA','MMAAAA','AAAAxx' +7264,325,0,0,4,4,64,264,1264,2264,7264,128,129,'KTAAAA','NMAAAA','HHHHxx' +4699,326,1,3,9,19,99,699,699,4699,4699,198,199,'TYAAAA','OMAAAA','OOOOxx' +4541,327,1,1,1,1,41,541,541,4541,4541,82,83,'RSAAAA','PMAAAA','VVVVxx' +5768,328,0,0,8,8,68,768,1768,768,5768,136,137,'WNAAAA','QMAAAA','AAAAxx' +6183,329,1,3,3,3,83,183,183,1183,6183,166,167,'VDAAAA','RMAAAA','HHHHxx' +7457,330,1,1,7,17,57,457,1457,2457,7457,114,115,'VAAAAA','SMAAAA','OOOOxx' +7317,331,1,1,7,17,17,317,1317,2317,7317,34,35,'LVAAAA','TMAAAA','VVVVxx' +1944,332,0,0,4,4,44,944,1944,1944,1944,88,89,'UWAAAA','UMAAAA','AAAAxx' +665,333,1,1,5,5,65,665,665,665,665,130,131,'PZAAAA','VMAAAA','HHHHxx' +5974,334,0,2,4,14,74,974,1974,974,5974,148,149,'UVAAAA','WMAAAA','OOOOxx' +7370,335,0,2,0,10,70,370,1370,2370,7370,140,141,'MXAAAA','XMAAAA','VVVVxx' +9196,336,0,0,6,16,96,196,1196,4196,9196,192,193,'SPAAAA','YMAAAA','AAAAxx' +6796,337,0,0,6,16,96,796,796,1796,6796,192,193,'KBAAAA','ZMAAAA','HHHHxx' +6180,338,0,0,0,0,80,180,180,1180,6180,160,161,'SDAAAA','ANAAAA','OOOOxx' +8557,339,1,1,7,17,57,557,557,3557,8557,114,115,'DRAAAA','BNAAAA','VVVVxx' +928,340,0,0,8,8,28,928,928,928,928,56,57,'SJAAAA','CNAAAA','AAAAxx' +6275,341,1,3,5,15,75,275,275,1275,6275,150,151,'JHAAAA','DNAAAA','HHHHxx' +409,342,1,1,9,9,9,409,409,409,409,18,19,'TPAAAA','ENAAAA','OOOOxx' +6442,343,0,2,2,2,42,442,442,1442,6442,84,85,'UNAAAA','FNAAAA','VVVVxx' +5889,344,1,1,9,9,89,889,1889,889,5889,178,179,'NSAAAA','GNAAAA','AAAAxx' +5180,345,0,0,0,0,80,180,1180,180,5180,160,161,'GRAAAA','HNAAAA','HHHHxx' +1629,346,1,1,9,9,29,629,1629,1629,1629,58,59,'RKAAAA','INAAAA','OOOOxx' +6088,347,0,0,8,8,88,88,88,1088,6088,176,177,'EAAAAA','JNAAAA','VVVVxx' +5598,348,0,2,8,18,98,598,1598,598,5598,196,197,'IHAAAA','KNAAAA','AAAAxx' +1803,349,1,3,3,3,3,803,1803,1803,1803,6,7,'JRAAAA','LNAAAA','HHHHxx' +2330,350,0,2,0,10,30,330,330,2330,2330,60,61,'QLAAAA','MNAAAA','OOOOxx' +5901,351,1,1,1,1,1,901,1901,901,5901,2,3,'ZSAAAA','NNAAAA','VVVVxx' +780,352,0,0,0,0,80,780,780,780,780,160,161,'AEAAAA','ONAAAA','AAAAxx' +7171,353,1,3,1,11,71,171,1171,2171,7171,142,143,'VPAAAA','PNAAAA','HHHHxx' +8778,354,0,2,8,18,78,778,778,3778,8778,156,157,'QZAAAA','QNAAAA','OOOOxx' +6622,355,0,2,2,2,22,622,622,1622,6622,44,45,'SUAAAA','RNAAAA','VVVVxx' +9938,356,0,2,8,18,38,938,1938,4938,9938,76,77,'GSAAAA','SNAAAA','AAAAxx' +8254,357,0,2,4,14,54,254,254,3254,8254,108,109,'MFAAAA','TNAAAA','HHHHxx' +1951,358,1,3,1,11,51,951,1951,1951,1951,102,103,'BXAAAA','UNAAAA','OOOOxx' +1434,359,0,2,4,14,34,434,1434,1434,1434,68,69,'EDAAAA','VNAAAA','VVVVxx' +7539,360,1,3,9,19,39,539,1539,2539,7539,78,79,'ZDAAAA','WNAAAA','AAAAxx' +600,361,0,0,0,0,0,600,600,600,600,0,1,'CXAAAA','XNAAAA','HHHHxx' +3122,362,0,2,2,2,22,122,1122,3122,3122,44,45,'CQAAAA','YNAAAA','OOOOxx' +5704,363,0,0,4,4,4,704,1704,704,5704,8,9,'KLAAAA','ZNAAAA','VVVVxx' +6300,364,0,0,0,0,0,300,300,1300,6300,0,1,'IIAAAA','AOAAAA','AAAAxx' +4585,365,1,1,5,5,85,585,585,4585,4585,170,171,'JUAAAA','BOAAAA','HHHHxx' +6313,366,1,1,3,13,13,313,313,1313,6313,26,27,'VIAAAA','COAAAA','OOOOxx' +3154,367,0,2,4,14,54,154,1154,3154,3154,108,109,'IRAAAA','DOAAAA','VVVVxx' +642,368,0,2,2,2,42,642,642,642,642,84,85,'SYAAAA','EOAAAA','AAAAxx' +7736,369,0,0,6,16,36,736,1736,2736,7736,72,73,'OLAAAA','FOAAAA','HHHHxx' +5087,370,1,3,7,7,87,87,1087,87,5087,174,175,'RNAAAA','GOAAAA','OOOOxx' +5708,371,0,0,8,8,8,708,1708,708,5708,16,17,'OLAAAA','HOAAAA','VVVVxx' +8169,372,1,1,9,9,69,169,169,3169,8169,138,139,'FCAAAA','IOAAAA','AAAAxx' +9768,373,0,0,8,8,68,768,1768,4768,9768,136,137,'SLAAAA','JOAAAA','HHHHxx' +3874,374,0,2,4,14,74,874,1874,3874,3874,148,149,'ATAAAA','KOAAAA','OOOOxx' +6831,375,1,3,1,11,31,831,831,1831,6831,62,63,'TCAAAA','LOAAAA','VVVVxx' +18,376,0,2,8,18,18,18,18,18,18,36,37,'SAAAAA','MOAAAA','AAAAxx' +6375,377,1,3,5,15,75,375,375,1375,6375,150,151,'FLAAAA','NOAAAA','HHHHxx' +7106,378,0,2,6,6,6,106,1106,2106,7106,12,13,'INAAAA','OOAAAA','OOOOxx' +5926,379,0,2,6,6,26,926,1926,926,5926,52,53,'YTAAAA','POAAAA','VVVVxx' +4956,380,0,0,6,16,56,956,956,4956,4956,112,113,'QIAAAA','QOAAAA','AAAAxx' +7042,381,0,2,2,2,42,42,1042,2042,7042,84,85,'WKAAAA','ROAAAA','HHHHxx' +6043,382,1,3,3,3,43,43,43,1043,6043,86,87,'LYAAAA','SOAAAA','OOOOxx' +2084,383,0,0,4,4,84,84,84,2084,2084,168,169,'ECAAAA','TOAAAA','VVVVxx' +6038,384,0,2,8,18,38,38,38,1038,6038,76,77,'GYAAAA','UOAAAA','AAAAxx' +7253,385,1,1,3,13,53,253,1253,2253,7253,106,107,'ZSAAAA','VOAAAA','HHHHxx' +2061,386,1,1,1,1,61,61,61,2061,2061,122,123,'HBAAAA','WOAAAA','OOOOxx' +7800,387,0,0,0,0,0,800,1800,2800,7800,0,1,'AOAAAA','XOAAAA','VVVVxx' +4970,388,0,2,0,10,70,970,970,4970,4970,140,141,'EJAAAA','YOAAAA','AAAAxx' +8580,389,0,0,0,0,80,580,580,3580,8580,160,161,'ASAAAA','ZOAAAA','HHHHxx' +9173,390,1,1,3,13,73,173,1173,4173,9173,146,147,'VOAAAA','APAAAA','OOOOxx' +8558,391,0,2,8,18,58,558,558,3558,8558,116,117,'ERAAAA','BPAAAA','VVVVxx' +3897,392,1,1,7,17,97,897,1897,3897,3897,194,195,'XTAAAA','CPAAAA','AAAAxx' +5069,393,1,1,9,9,69,69,1069,69,5069,138,139,'ZMAAAA','DPAAAA','HHHHxx' +2301,394,1,1,1,1,1,301,301,2301,2301,2,3,'NKAAAA','EPAAAA','OOOOxx' +9863,395,1,3,3,3,63,863,1863,4863,9863,126,127,'JPAAAA','FPAAAA','VVVVxx' +5733,396,1,1,3,13,33,733,1733,733,5733,66,67,'NMAAAA','GPAAAA','AAAAxx' +2338,397,0,2,8,18,38,338,338,2338,2338,76,77,'YLAAAA','HPAAAA','HHHHxx' +9639,398,1,3,9,19,39,639,1639,4639,9639,78,79,'TGAAAA','IPAAAA','OOOOxx' +1139,399,1,3,9,19,39,139,1139,1139,1139,78,79,'VRAAAA','JPAAAA','VVVVxx' +2293,400,1,1,3,13,93,293,293,2293,2293,186,187,'FKAAAA','KPAAAA','AAAAxx' +6125,401,1,1,5,5,25,125,125,1125,6125,50,51,'PBAAAA','LPAAAA','HHHHxx' +5374,402,0,2,4,14,74,374,1374,374,5374,148,149,'SYAAAA','MPAAAA','OOOOxx' +7216,403,0,0,6,16,16,216,1216,2216,7216,32,33,'ORAAAA','NPAAAA','VVVVxx' +2285,404,1,1,5,5,85,285,285,2285,2285,170,171,'XJAAAA','OPAAAA','AAAAxx' +2387,405,1,3,7,7,87,387,387,2387,2387,174,175,'VNAAAA','PPAAAA','HHHHxx' +5015,406,1,3,5,15,15,15,1015,15,5015,30,31,'XKAAAA','QPAAAA','OOOOxx' +2087,407,1,3,7,7,87,87,87,2087,2087,174,175,'HCAAAA','RPAAAA','VVVVxx' +4938,408,0,2,8,18,38,938,938,4938,4938,76,77,'YHAAAA','SPAAAA','AAAAxx' +3635,409,1,3,5,15,35,635,1635,3635,3635,70,71,'VJAAAA','TPAAAA','HHHHxx' +7737,410,1,1,7,17,37,737,1737,2737,7737,74,75,'PLAAAA','UPAAAA','OOOOxx' +8056,411,0,0,6,16,56,56,56,3056,8056,112,113,'WXAAAA','VPAAAA','VVVVxx' +4502,412,0,2,2,2,2,502,502,4502,4502,4,5,'ERAAAA','WPAAAA','AAAAxx' +54,413,0,2,4,14,54,54,54,54,54,108,109,'CCAAAA','XPAAAA','HHHHxx' +3182,414,0,2,2,2,82,182,1182,3182,3182,164,165,'KSAAAA','YPAAAA','OOOOxx' +3718,415,0,2,8,18,18,718,1718,3718,3718,36,37,'ANAAAA','ZPAAAA','VVVVxx' +3989,416,1,1,9,9,89,989,1989,3989,3989,178,179,'LXAAAA','AQAAAA','AAAAxx' +8028,417,0,0,8,8,28,28,28,3028,8028,56,57,'UWAAAA','BQAAAA','HHHHxx' +1426,418,0,2,6,6,26,426,1426,1426,1426,52,53,'WCAAAA','CQAAAA','OOOOxx' +3801,419,1,1,1,1,1,801,1801,3801,3801,2,3,'FQAAAA','DQAAAA','VVVVxx' +241,420,1,1,1,1,41,241,241,241,241,82,83,'HJAAAA','EQAAAA','AAAAxx' +8000,421,0,0,0,0,0,0,0,3000,8000,0,1,'SVAAAA','FQAAAA','HHHHxx' +8357,422,1,1,7,17,57,357,357,3357,8357,114,115,'LJAAAA','GQAAAA','OOOOxx' +7548,423,0,0,8,8,48,548,1548,2548,7548,96,97,'IEAAAA','HQAAAA','VVVVxx' +7307,424,1,3,7,7,7,307,1307,2307,7307,14,15,'BVAAAA','IQAAAA','AAAAxx' +2275,425,1,3,5,15,75,275,275,2275,2275,150,151,'NJAAAA','JQAAAA','HHHHxx' +2718,426,0,2,8,18,18,718,718,2718,2718,36,37,'OAAAAA','KQAAAA','OOOOxx' +7068,427,0,0,8,8,68,68,1068,2068,7068,136,137,'WLAAAA','LQAAAA','VVVVxx' +3181,428,1,1,1,1,81,181,1181,3181,3181,162,163,'JSAAAA','MQAAAA','AAAAxx' +749,429,1,1,9,9,49,749,749,749,749,98,99,'VCAAAA','NQAAAA','HHHHxx' +5195,430,1,3,5,15,95,195,1195,195,5195,190,191,'VRAAAA','OQAAAA','OOOOxx' +6136,431,0,0,6,16,36,136,136,1136,6136,72,73,'ACAAAA','PQAAAA','VVVVxx' +8012,432,0,0,2,12,12,12,12,3012,8012,24,25,'EWAAAA','QQAAAA','AAAAxx' +3957,433,1,1,7,17,57,957,1957,3957,3957,114,115,'FWAAAA','RQAAAA','HHHHxx' +3083,434,1,3,3,3,83,83,1083,3083,3083,166,167,'POAAAA','SQAAAA','OOOOxx' +9997,435,1,1,7,17,97,997,1997,4997,9997,194,195,'NUAAAA','TQAAAA','VVVVxx' +3299,436,1,3,9,19,99,299,1299,3299,3299,198,199,'XWAAAA','UQAAAA','AAAAxx' +846,437,0,2,6,6,46,846,846,846,846,92,93,'OGAAAA','VQAAAA','HHHHxx' +2985,438,1,1,5,5,85,985,985,2985,2985,170,171,'VKAAAA','WQAAAA','OOOOxx' +9238,439,0,2,8,18,38,238,1238,4238,9238,76,77,'IRAAAA','XQAAAA','VVVVxx' +1403,440,1,3,3,3,3,403,1403,1403,1403,6,7,'ZBAAAA','YQAAAA','AAAAxx' +5563,441,1,3,3,3,63,563,1563,563,5563,126,127,'ZFAAAA','ZQAAAA','HHHHxx' +7965,442,1,1,5,5,65,965,1965,2965,7965,130,131,'JUAAAA','ARAAAA','OOOOxx' +4512,443,0,0,2,12,12,512,512,4512,4512,24,25,'ORAAAA','BRAAAA','VVVVxx' +9730,444,0,2,0,10,30,730,1730,4730,9730,60,61,'GKAAAA','CRAAAA','AAAAxx' +1129,445,1,1,9,9,29,129,1129,1129,1129,58,59,'LRAAAA','DRAAAA','HHHHxx' +2624,446,0,0,4,4,24,624,624,2624,2624,48,49,'YWAAAA','ERAAAA','OOOOxx' +8178,447,0,2,8,18,78,178,178,3178,8178,156,157,'OCAAAA','FRAAAA','VVVVxx' +6468,448,0,0,8,8,68,468,468,1468,6468,136,137,'UOAAAA','GRAAAA','AAAAxx' +3027,449,1,3,7,7,27,27,1027,3027,3027,54,55,'LMAAAA','HRAAAA','HHHHxx' +3845,450,1,1,5,5,45,845,1845,3845,3845,90,91,'XRAAAA','IRAAAA','OOOOxx' +786,451,0,2,6,6,86,786,786,786,786,172,173,'GEAAAA','JRAAAA','VVVVxx' +4971,452,1,3,1,11,71,971,971,4971,4971,142,143,'FJAAAA','KRAAAA','AAAAxx' +1542,453,0,2,2,2,42,542,1542,1542,1542,84,85,'IHAAAA','LRAAAA','HHHHxx' +7967,454,1,3,7,7,67,967,1967,2967,7967,134,135,'LUAAAA','MRAAAA','OOOOxx' +443,455,1,3,3,3,43,443,443,443,443,86,87,'BRAAAA','NRAAAA','VVVVxx' +7318,456,0,2,8,18,18,318,1318,2318,7318,36,37,'MVAAAA','ORAAAA','AAAAxx' +4913,457,1,1,3,13,13,913,913,4913,4913,26,27,'ZGAAAA','PRAAAA','HHHHxx' +9466,458,0,2,6,6,66,466,1466,4466,9466,132,133,'CAAAAA','QRAAAA','OOOOxx' +7866,459,0,2,6,6,66,866,1866,2866,7866,132,133,'OQAAAA','RRAAAA','VVVVxx' +784,460,0,0,4,4,84,784,784,784,784,168,169,'EEAAAA','SRAAAA','AAAAxx' +9040,461,0,0,0,0,40,40,1040,4040,9040,80,81,'SJAAAA','TRAAAA','HHHHxx' +3954,462,0,2,4,14,54,954,1954,3954,3954,108,109,'CWAAAA','URAAAA','OOOOxx' +4183,463,1,3,3,3,83,183,183,4183,4183,166,167,'XEAAAA','VRAAAA','VVVVxx' +3608,464,0,0,8,8,8,608,1608,3608,3608,16,17,'UIAAAA','WRAAAA','AAAAxx' +7630,465,0,2,0,10,30,630,1630,2630,7630,60,61,'MHAAAA','XRAAAA','HHHHxx' +590,466,0,2,0,10,90,590,590,590,590,180,181,'SWAAAA','YRAAAA','OOOOxx' +3453,467,1,1,3,13,53,453,1453,3453,3453,106,107,'VCAAAA','ZRAAAA','VVVVxx' +7757,468,1,1,7,17,57,757,1757,2757,7757,114,115,'JMAAAA','ASAAAA','AAAAxx' +7394,469,0,2,4,14,94,394,1394,2394,7394,188,189,'KYAAAA','BSAAAA','HHHHxx' +396,470,0,0,6,16,96,396,396,396,396,192,193,'GPAAAA','CSAAAA','OOOOxx' +7873,471,1,1,3,13,73,873,1873,2873,7873,146,147,'VQAAAA','DSAAAA','VVVVxx' +1553,472,1,1,3,13,53,553,1553,1553,1553,106,107,'THAAAA','ESAAAA','AAAAxx' +598,473,0,2,8,18,98,598,598,598,598,196,197,'AXAAAA','FSAAAA','HHHHxx' +7191,474,1,3,1,11,91,191,1191,2191,7191,182,183,'PQAAAA','GSAAAA','OOOOxx' +8116,475,0,0,6,16,16,116,116,3116,8116,32,33,'EAAAAA','HSAAAA','VVVVxx' +2516,476,0,0,6,16,16,516,516,2516,2516,32,33,'USAAAA','ISAAAA','AAAAxx' +7750,477,0,2,0,10,50,750,1750,2750,7750,100,101,'CMAAAA','JSAAAA','HHHHxx' +6625,478,1,1,5,5,25,625,625,1625,6625,50,51,'VUAAAA','KSAAAA','OOOOxx' +8838,479,0,2,8,18,38,838,838,3838,8838,76,77,'YBAAAA','LSAAAA','VVVVxx' +4636,480,0,0,6,16,36,636,636,4636,4636,72,73,'IWAAAA','MSAAAA','AAAAxx' +7627,481,1,3,7,7,27,627,1627,2627,7627,54,55,'JHAAAA','NSAAAA','HHHHxx' +1690,482,0,2,0,10,90,690,1690,1690,1690,180,181,'ANAAAA','OSAAAA','OOOOxx' +7071,483,1,3,1,11,71,71,1071,2071,7071,142,143,'ZLAAAA','PSAAAA','VVVVxx' +2081,484,1,1,1,1,81,81,81,2081,2081,162,163,'BCAAAA','QSAAAA','AAAAxx' +7138,485,0,2,8,18,38,138,1138,2138,7138,76,77,'OOAAAA','RSAAAA','HHHHxx' +864,486,0,0,4,4,64,864,864,864,864,128,129,'GHAAAA','SSAAAA','OOOOxx' +6392,487,0,0,2,12,92,392,392,1392,6392,184,185,'WLAAAA','TSAAAA','VVVVxx' +7544,488,0,0,4,4,44,544,1544,2544,7544,88,89,'EEAAAA','USAAAA','AAAAxx' +5438,489,0,2,8,18,38,438,1438,438,5438,76,77,'EBAAAA','VSAAAA','HHHHxx' +7099,490,1,3,9,19,99,99,1099,2099,7099,198,199,'BNAAAA','WSAAAA','OOOOxx' +5157,491,1,1,7,17,57,157,1157,157,5157,114,115,'JQAAAA','XSAAAA','VVVVxx' +3391,492,1,3,1,11,91,391,1391,3391,3391,182,183,'LAAAAA','YSAAAA','AAAAxx' +3805,493,1,1,5,5,5,805,1805,3805,3805,10,11,'JQAAAA','ZSAAAA','HHHHxx' +2110,494,0,2,0,10,10,110,110,2110,2110,20,21,'EDAAAA','ATAAAA','OOOOxx' +3176,495,0,0,6,16,76,176,1176,3176,3176,152,153,'ESAAAA','BTAAAA','VVVVxx' +5918,496,0,2,8,18,18,918,1918,918,5918,36,37,'QTAAAA','CTAAAA','AAAAxx' +1218,497,0,2,8,18,18,218,1218,1218,1218,36,37,'WUAAAA','DTAAAA','HHHHxx' +6683,498,1,3,3,3,83,683,683,1683,6683,166,167,'BXAAAA','ETAAAA','OOOOxx' +914,499,0,2,4,14,14,914,914,914,914,28,29,'EJAAAA','FTAAAA','VVVVxx' +4737,500,1,1,7,17,37,737,737,4737,4737,74,75,'FAAAAA','GTAAAA','AAAAxx' +7286,501,0,2,6,6,86,286,1286,2286,7286,172,173,'GUAAAA','HTAAAA','HHHHxx' +9975,502,1,3,5,15,75,975,1975,4975,9975,150,151,'RTAAAA','ITAAAA','OOOOxx' +8030,503,0,2,0,10,30,30,30,3030,8030,60,61,'WWAAAA','JTAAAA','VVVVxx' +7364,504,0,0,4,4,64,364,1364,2364,7364,128,129,'GXAAAA','KTAAAA','AAAAxx' +1389,505,1,1,9,9,89,389,1389,1389,1389,178,179,'LBAAAA','LTAAAA','HHHHxx' +4025,506,1,1,5,5,25,25,25,4025,4025,50,51,'VYAAAA','MTAAAA','OOOOxx' +4835,507,1,3,5,15,35,835,835,4835,4835,70,71,'ZDAAAA','NTAAAA','VVVVxx' +8045,508,1,1,5,5,45,45,45,3045,8045,90,91,'LXAAAA','OTAAAA','AAAAxx' +1864,509,0,0,4,4,64,864,1864,1864,1864,128,129,'STAAAA','PTAAAA','HHHHxx' +3313,510,1,1,3,13,13,313,1313,3313,3313,26,27,'LXAAAA','QTAAAA','OOOOxx' +2384,511,0,0,4,4,84,384,384,2384,2384,168,169,'SNAAAA','RTAAAA','VVVVxx' +6115,512,1,3,5,15,15,115,115,1115,6115,30,31,'FBAAAA','STAAAA','AAAAxx' +5705,513,1,1,5,5,5,705,1705,705,5705,10,11,'LLAAAA','TTAAAA','HHHHxx' +9269,514,1,1,9,9,69,269,1269,4269,9269,138,139,'NSAAAA','UTAAAA','OOOOxx' +3379,515,1,3,9,19,79,379,1379,3379,3379,158,159,'ZZAAAA','VTAAAA','VVVVxx' +8205,516,1,1,5,5,5,205,205,3205,8205,10,11,'PDAAAA','WTAAAA','AAAAxx' +6575,517,1,3,5,15,75,575,575,1575,6575,150,151,'XSAAAA','XTAAAA','HHHHxx' +486,518,0,2,6,6,86,486,486,486,486,172,173,'SSAAAA','YTAAAA','OOOOxx' +4894,519,0,2,4,14,94,894,894,4894,4894,188,189,'GGAAAA','ZTAAAA','VVVVxx' +3090,520,0,2,0,10,90,90,1090,3090,3090,180,181,'WOAAAA','AUAAAA','AAAAxx' +759,521,1,3,9,19,59,759,759,759,759,118,119,'FDAAAA','BUAAAA','HHHHxx' +4864,522,0,0,4,4,64,864,864,4864,4864,128,129,'CFAAAA','CUAAAA','OOOOxx' +4083,523,1,3,3,3,83,83,83,4083,4083,166,167,'BBAAAA','DUAAAA','VVVVxx' +6918,524,0,2,8,18,18,918,918,1918,6918,36,37,'CGAAAA','EUAAAA','AAAAxx' +8146,525,0,2,6,6,46,146,146,3146,8146,92,93,'IBAAAA','FUAAAA','HHHHxx' +1523,526,1,3,3,3,23,523,1523,1523,1523,46,47,'PGAAAA','GUAAAA','OOOOxx' +1591,527,1,3,1,11,91,591,1591,1591,1591,182,183,'FJAAAA','HUAAAA','VVVVxx' +3343,528,1,3,3,3,43,343,1343,3343,3343,86,87,'PYAAAA','IUAAAA','AAAAxx' +1391,529,1,3,1,11,91,391,1391,1391,1391,182,183,'NBAAAA','JUAAAA','HHHHxx' +9963,530,1,3,3,3,63,963,1963,4963,9963,126,127,'FTAAAA','KUAAAA','OOOOxx' +2423,531,1,3,3,3,23,423,423,2423,2423,46,47,'FPAAAA','LUAAAA','VVVVxx' +1822,532,0,2,2,2,22,822,1822,1822,1822,44,45,'CSAAAA','MUAAAA','AAAAxx' +8706,533,0,2,6,6,6,706,706,3706,8706,12,13,'WWAAAA','NUAAAA','HHHHxx' +3001,534,1,1,1,1,1,1,1001,3001,3001,2,3,'LLAAAA','OUAAAA','OOOOxx' +6707,535,1,3,7,7,7,707,707,1707,6707,14,15,'ZXAAAA','PUAAAA','VVVVxx' +2121,536,1,1,1,1,21,121,121,2121,2121,42,43,'PDAAAA','QUAAAA','AAAAxx' +5814,537,0,2,4,14,14,814,1814,814,5814,28,29,'QPAAAA','RUAAAA','HHHHxx' +2659,538,1,3,9,19,59,659,659,2659,2659,118,119,'HYAAAA','SUAAAA','OOOOxx' +2016,539,0,0,6,16,16,16,16,2016,2016,32,33,'OZAAAA','TUAAAA','VVVVxx' +4286,540,0,2,6,6,86,286,286,4286,4286,172,173,'WIAAAA','UUAAAA','AAAAxx' +9205,541,1,1,5,5,5,205,1205,4205,9205,10,11,'BQAAAA','VUAAAA','HHHHxx' +3496,542,0,0,6,16,96,496,1496,3496,3496,192,193,'MEAAAA','WUAAAA','OOOOxx' +5333,543,1,1,3,13,33,333,1333,333,5333,66,67,'DXAAAA','XUAAAA','VVVVxx' +5571,544,1,3,1,11,71,571,1571,571,5571,142,143,'HGAAAA','YUAAAA','AAAAxx' +1696,545,0,0,6,16,96,696,1696,1696,1696,192,193,'GNAAAA','ZUAAAA','HHHHxx' +4871,546,1,3,1,11,71,871,871,4871,4871,142,143,'JFAAAA','AVAAAA','OOOOxx' +4852,547,0,0,2,12,52,852,852,4852,4852,104,105,'QEAAAA','BVAAAA','VVVVxx' +8483,548,1,3,3,3,83,483,483,3483,8483,166,167,'HOAAAA','CVAAAA','AAAAxx' +1376,549,0,0,6,16,76,376,1376,1376,1376,152,153,'YAAAAA','DVAAAA','HHHHxx' +5456,550,0,0,6,16,56,456,1456,456,5456,112,113,'WBAAAA','EVAAAA','OOOOxx' +499,551,1,3,9,19,99,499,499,499,499,198,199,'FTAAAA','FVAAAA','VVVVxx' +3463,552,1,3,3,3,63,463,1463,3463,3463,126,127,'FDAAAA','GVAAAA','AAAAxx' +7426,553,0,2,6,6,26,426,1426,2426,7426,52,53,'QZAAAA','HVAAAA','HHHHxx' +5341,554,1,1,1,1,41,341,1341,341,5341,82,83,'LXAAAA','IVAAAA','OOOOxx' +9309,555,1,1,9,9,9,309,1309,4309,9309,18,19,'BUAAAA','JVAAAA','VVVVxx' +2055,556,1,3,5,15,55,55,55,2055,2055,110,111,'BBAAAA','KVAAAA','AAAAxx' +2199,557,1,3,9,19,99,199,199,2199,2199,198,199,'PGAAAA','LVAAAA','HHHHxx' +7235,558,1,3,5,15,35,235,1235,2235,7235,70,71,'HSAAAA','MVAAAA','OOOOxx' +8661,559,1,1,1,1,61,661,661,3661,8661,122,123,'DVAAAA','NVAAAA','VVVVxx' +9494,560,0,2,4,14,94,494,1494,4494,9494,188,189,'EBAAAA','OVAAAA','AAAAxx' +935,561,1,3,5,15,35,935,935,935,935,70,71,'ZJAAAA','PVAAAA','HHHHxx' +7044,562,0,0,4,4,44,44,1044,2044,7044,88,89,'YKAAAA','QVAAAA','OOOOxx' +1974,563,0,2,4,14,74,974,1974,1974,1974,148,149,'YXAAAA','RVAAAA','VVVVxx' +9679,564,1,3,9,19,79,679,1679,4679,9679,158,159,'HIAAAA','SVAAAA','AAAAxx' +9822,565,0,2,2,2,22,822,1822,4822,9822,44,45,'UNAAAA','TVAAAA','HHHHxx' +4088,566,0,0,8,8,88,88,88,4088,4088,176,177,'GBAAAA','UVAAAA','OOOOxx' +1749,567,1,1,9,9,49,749,1749,1749,1749,98,99,'HPAAAA','VVAAAA','VVVVxx' +2116,568,0,0,6,16,16,116,116,2116,2116,32,33,'KDAAAA','WVAAAA','AAAAxx' +976,569,0,0,6,16,76,976,976,976,976,152,153,'OLAAAA','XVAAAA','HHHHxx' +8689,570,1,1,9,9,89,689,689,3689,8689,178,179,'FWAAAA','YVAAAA','OOOOxx' +2563,571,1,3,3,3,63,563,563,2563,2563,126,127,'PUAAAA','ZVAAAA','VVVVxx' +7195,572,1,3,5,15,95,195,1195,2195,7195,190,191,'TQAAAA','AWAAAA','AAAAxx' +9985,573,1,1,5,5,85,985,1985,4985,9985,170,171,'BUAAAA','BWAAAA','HHHHxx' +7699,574,1,3,9,19,99,699,1699,2699,7699,198,199,'DKAAAA','CWAAAA','OOOOxx' +5311,575,1,3,1,11,11,311,1311,311,5311,22,23,'HWAAAA','DWAAAA','VVVVxx' +295,576,1,3,5,15,95,295,295,295,295,190,191,'JLAAAA','EWAAAA','AAAAxx' +8214,577,0,2,4,14,14,214,214,3214,8214,28,29,'YDAAAA','FWAAAA','HHHHxx' +3275,578,1,3,5,15,75,275,1275,3275,3275,150,151,'ZVAAAA','GWAAAA','OOOOxx' +9646,579,0,2,6,6,46,646,1646,4646,9646,92,93,'AHAAAA','HWAAAA','VVVVxx' +1908,580,0,0,8,8,8,908,1908,1908,1908,16,17,'KVAAAA','IWAAAA','AAAAxx' +3858,581,0,2,8,18,58,858,1858,3858,3858,116,117,'KSAAAA','JWAAAA','HHHHxx' +9362,582,0,2,2,2,62,362,1362,4362,9362,124,125,'CWAAAA','KWAAAA','OOOOxx' +9307,583,1,3,7,7,7,307,1307,4307,9307,14,15,'ZTAAAA','LWAAAA','VVVVxx' +6124,584,0,0,4,4,24,124,124,1124,6124,48,49,'OBAAAA','MWAAAA','AAAAxx' +2405,585,1,1,5,5,5,405,405,2405,2405,10,11,'NOAAAA','NWAAAA','HHHHxx' +8422,586,0,2,2,2,22,422,422,3422,8422,44,45,'YLAAAA','OWAAAA','OOOOxx' +393,587,1,1,3,13,93,393,393,393,393,186,187,'DPAAAA','PWAAAA','VVVVxx' +8973,588,1,1,3,13,73,973,973,3973,8973,146,147,'DHAAAA','QWAAAA','AAAAxx' +5171,589,1,3,1,11,71,171,1171,171,5171,142,143,'XQAAAA','RWAAAA','HHHHxx' +4929,590,1,1,9,9,29,929,929,4929,4929,58,59,'PHAAAA','SWAAAA','OOOOxx' +6935,591,1,3,5,15,35,935,935,1935,6935,70,71,'TGAAAA','TWAAAA','VVVVxx' +8584,592,0,0,4,4,84,584,584,3584,8584,168,169,'ESAAAA','UWAAAA','AAAAxx' +1035,593,1,3,5,15,35,35,1035,1035,1035,70,71,'VNAAAA','VWAAAA','HHHHxx' +3734,594,0,2,4,14,34,734,1734,3734,3734,68,69,'QNAAAA','WWAAAA','OOOOxx' +1458,595,0,2,8,18,58,458,1458,1458,1458,116,117,'CEAAAA','XWAAAA','VVVVxx' +8746,596,0,2,6,6,46,746,746,3746,8746,92,93,'KYAAAA','YWAAAA','AAAAxx' +1677,597,1,1,7,17,77,677,1677,1677,1677,154,155,'NMAAAA','ZWAAAA','HHHHxx' +8502,598,0,2,2,2,2,502,502,3502,8502,4,5,'APAAAA','AXAAAA','OOOOxx' +7752,599,0,0,2,12,52,752,1752,2752,7752,104,105,'EMAAAA','BXAAAA','VVVVxx' +2556,600,0,0,6,16,56,556,556,2556,2556,112,113,'IUAAAA','CXAAAA','AAAAxx' +6426,601,0,2,6,6,26,426,426,1426,6426,52,53,'ENAAAA','DXAAAA','HHHHxx' +8420,602,0,0,0,0,20,420,420,3420,8420,40,41,'WLAAAA','EXAAAA','OOOOxx' +4462,603,0,2,2,2,62,462,462,4462,4462,124,125,'QPAAAA','FXAAAA','VVVVxx' +1378,604,0,2,8,18,78,378,1378,1378,1378,156,157,'ABAAAA','GXAAAA','AAAAxx' +1387,605,1,3,7,7,87,387,1387,1387,1387,174,175,'JBAAAA','HXAAAA','HHHHxx' +8094,606,0,2,4,14,94,94,94,3094,8094,188,189,'IZAAAA','IXAAAA','OOOOxx' +7247,607,1,3,7,7,47,247,1247,2247,7247,94,95,'TSAAAA','JXAAAA','VVVVxx' +4261,608,1,1,1,1,61,261,261,4261,4261,122,123,'XHAAAA','KXAAAA','AAAAxx' +5029,609,1,1,9,9,29,29,1029,29,5029,58,59,'LLAAAA','LXAAAA','HHHHxx' +3625,610,1,1,5,5,25,625,1625,3625,3625,50,51,'LJAAAA','MXAAAA','OOOOxx' +8068,611,0,0,8,8,68,68,68,3068,8068,136,137,'IYAAAA','NXAAAA','VVVVxx' +102,612,0,2,2,2,2,102,102,102,102,4,5,'YDAAAA','OXAAAA','AAAAxx' +5596,613,0,0,6,16,96,596,1596,596,5596,192,193,'GHAAAA','PXAAAA','HHHHxx' +5872,614,0,0,2,12,72,872,1872,872,5872,144,145,'WRAAAA','QXAAAA','OOOOxx' +4742,615,0,2,2,2,42,742,742,4742,4742,84,85,'KAAAAA','RXAAAA','VVVVxx' +2117,616,1,1,7,17,17,117,117,2117,2117,34,35,'LDAAAA','SXAAAA','AAAAxx' +3945,617,1,1,5,5,45,945,1945,3945,3945,90,91,'TVAAAA','TXAAAA','HHHHxx' +7483,618,1,3,3,3,83,483,1483,2483,7483,166,167,'VBAAAA','UXAAAA','OOOOxx' +4455,619,1,3,5,15,55,455,455,4455,4455,110,111,'JPAAAA','VXAAAA','VVVVxx' +609,620,1,1,9,9,9,609,609,609,609,18,19,'LXAAAA','WXAAAA','AAAAxx' +9829,621,1,1,9,9,29,829,1829,4829,9829,58,59,'BOAAAA','XXAAAA','HHHHxx' +4857,622,1,1,7,17,57,857,857,4857,4857,114,115,'VEAAAA','YXAAAA','OOOOxx' +3314,623,0,2,4,14,14,314,1314,3314,3314,28,29,'MXAAAA','ZXAAAA','VVVVxx' +5353,624,1,1,3,13,53,353,1353,353,5353,106,107,'XXAAAA','AYAAAA','AAAAxx' +4909,625,1,1,9,9,9,909,909,4909,4909,18,19,'VGAAAA','BYAAAA','HHHHxx' +7597,626,1,1,7,17,97,597,1597,2597,7597,194,195,'FGAAAA','CYAAAA','OOOOxx' +2683,627,1,3,3,3,83,683,683,2683,2683,166,167,'FZAAAA','DYAAAA','VVVVxx' +3223,628,1,3,3,3,23,223,1223,3223,3223,46,47,'ZTAAAA','EYAAAA','AAAAxx' +5363,629,1,3,3,3,63,363,1363,363,5363,126,127,'HYAAAA','FYAAAA','HHHHxx' +4578,630,0,2,8,18,78,578,578,4578,4578,156,157,'CUAAAA','GYAAAA','OOOOxx' +5544,631,0,0,4,4,44,544,1544,544,5544,88,89,'GFAAAA','HYAAAA','VVVVxx' +1589,632,1,1,9,9,89,589,1589,1589,1589,178,179,'DJAAAA','IYAAAA','AAAAxx' +7412,633,0,0,2,12,12,412,1412,2412,7412,24,25,'CZAAAA','JYAAAA','HHHHxx' +3803,634,1,3,3,3,3,803,1803,3803,3803,6,7,'HQAAAA','KYAAAA','OOOOxx' +6179,635,1,3,9,19,79,179,179,1179,6179,158,159,'RDAAAA','LYAAAA','VVVVxx' +5588,636,0,0,8,8,88,588,1588,588,5588,176,177,'YGAAAA','MYAAAA','AAAAxx' +2134,637,0,2,4,14,34,134,134,2134,2134,68,69,'CEAAAA','NYAAAA','HHHHxx' +4383,638,1,3,3,3,83,383,383,4383,4383,166,167,'PMAAAA','OYAAAA','OOOOxx' +6995,639,1,3,5,15,95,995,995,1995,6995,190,191,'BJAAAA','PYAAAA','VVVVxx' +6598,640,0,2,8,18,98,598,598,1598,6598,196,197,'UTAAAA','QYAAAA','AAAAxx' +8731,641,1,3,1,11,31,731,731,3731,8731,62,63,'VXAAAA','RYAAAA','HHHHxx' +7177,642,1,1,7,17,77,177,1177,2177,7177,154,155,'BQAAAA','SYAAAA','OOOOxx' +6578,643,0,2,8,18,78,578,578,1578,6578,156,157,'ATAAAA','TYAAAA','VVVVxx' +9393,644,1,1,3,13,93,393,1393,4393,9393,186,187,'HXAAAA','UYAAAA','AAAAxx' +1276,645,0,0,6,16,76,276,1276,1276,1276,152,153,'CXAAAA','VYAAAA','HHHHxx' +8766,646,0,2,6,6,66,766,766,3766,8766,132,133,'EZAAAA','WYAAAA','OOOOxx' +1015,647,1,3,5,15,15,15,1015,1015,1015,30,31,'BNAAAA','XYAAAA','VVVVxx' +4396,648,0,0,6,16,96,396,396,4396,4396,192,193,'CNAAAA','YYAAAA','AAAAxx' +5564,649,0,0,4,4,64,564,1564,564,5564,128,129,'AGAAAA','ZYAAAA','HHHHxx' +927,650,1,3,7,7,27,927,927,927,927,54,55,'RJAAAA','AZAAAA','OOOOxx' +3306,651,0,2,6,6,6,306,1306,3306,3306,12,13,'EXAAAA','BZAAAA','VVVVxx' +1615,652,1,3,5,15,15,615,1615,1615,1615,30,31,'DKAAAA','CZAAAA','AAAAxx' +4550,653,0,2,0,10,50,550,550,4550,4550,100,101,'ATAAAA','DZAAAA','HHHHxx' +2468,654,0,0,8,8,68,468,468,2468,2468,136,137,'YQAAAA','EZAAAA','OOOOxx' +5336,655,0,0,6,16,36,336,1336,336,5336,72,73,'GXAAAA','FZAAAA','VVVVxx' +4471,656,1,3,1,11,71,471,471,4471,4471,142,143,'ZPAAAA','GZAAAA','AAAAxx' +8085,657,1,1,5,5,85,85,85,3085,8085,170,171,'ZYAAAA','HZAAAA','HHHHxx' +540,658,0,0,0,0,40,540,540,540,540,80,81,'UUAAAA','IZAAAA','OOOOxx' +5108,659,0,0,8,8,8,108,1108,108,5108,16,17,'MOAAAA','JZAAAA','VVVVxx' +8015,660,1,3,5,15,15,15,15,3015,8015,30,31,'HWAAAA','KZAAAA','AAAAxx' +2857,661,1,1,7,17,57,857,857,2857,2857,114,115,'XFAAAA','LZAAAA','HHHHxx' +9472,662,0,0,2,12,72,472,1472,4472,9472,144,145,'IAAAAA','MZAAAA','OOOOxx' +5666,663,0,2,6,6,66,666,1666,666,5666,132,133,'YJAAAA','NZAAAA','VVVVxx' +3555,664,1,3,5,15,55,555,1555,3555,3555,110,111,'TGAAAA','OZAAAA','AAAAxx' +378,665,0,2,8,18,78,378,378,378,378,156,157,'OOAAAA','PZAAAA','HHHHxx' +4466,666,0,2,6,6,66,466,466,4466,4466,132,133,'UPAAAA','QZAAAA','OOOOxx' +3247,667,1,3,7,7,47,247,1247,3247,3247,94,95,'XUAAAA','RZAAAA','VVVVxx' +6570,668,0,2,0,10,70,570,570,1570,6570,140,141,'SSAAAA','SZAAAA','AAAAxx' +5655,669,1,3,5,15,55,655,1655,655,5655,110,111,'NJAAAA','TZAAAA','HHHHxx' +917,670,1,1,7,17,17,917,917,917,917,34,35,'HJAAAA','UZAAAA','OOOOxx' +3637,671,1,1,7,17,37,637,1637,3637,3637,74,75,'XJAAAA','VZAAAA','VVVVxx' +3668,672,0,0,8,8,68,668,1668,3668,3668,136,137,'CLAAAA','WZAAAA','AAAAxx' +5644,673,0,0,4,4,44,644,1644,644,5644,88,89,'CJAAAA','XZAAAA','HHHHxx' +8286,674,0,2,6,6,86,286,286,3286,8286,172,173,'SGAAAA','YZAAAA','OOOOxx' +6896,675,0,0,6,16,96,896,896,1896,6896,192,193,'GFAAAA','ZZAAAA','VVVVxx' +2870,676,0,2,0,10,70,870,870,2870,2870,140,141,'KGAAAA','AABAAA','AAAAxx' +8041,677,1,1,1,1,41,41,41,3041,8041,82,83,'HXAAAA','BABAAA','HHHHxx' +8137,678,1,1,7,17,37,137,137,3137,8137,74,75,'ZAAAAA','CABAAA','OOOOxx' +4823,679,1,3,3,3,23,823,823,4823,4823,46,47,'NDAAAA','DABAAA','VVVVxx' +2438,680,0,2,8,18,38,438,438,2438,2438,76,77,'UPAAAA','EABAAA','AAAAxx' +6329,681,1,1,9,9,29,329,329,1329,6329,58,59,'LJAAAA','FABAAA','HHHHxx' +623,682,1,3,3,3,23,623,623,623,623,46,47,'ZXAAAA','GABAAA','OOOOxx' +1360,683,0,0,0,0,60,360,1360,1360,1360,120,121,'IAAAAA','HABAAA','VVVVxx' +7987,684,1,3,7,7,87,987,1987,2987,7987,174,175,'FVAAAA','IABAAA','AAAAxx' +9788,685,0,0,8,8,88,788,1788,4788,9788,176,177,'MMAAAA','JABAAA','HHHHxx' +3212,686,0,0,2,12,12,212,1212,3212,3212,24,25,'OTAAAA','KABAAA','OOOOxx' +2725,687,1,1,5,5,25,725,725,2725,2725,50,51,'VAAAAA','LABAAA','VVVVxx' +7837,688,1,1,7,17,37,837,1837,2837,7837,74,75,'LPAAAA','MABAAA','AAAAxx' +4746,689,0,2,6,6,46,746,746,4746,4746,92,93,'OAAAAA','NABAAA','HHHHxx' +3986,690,0,2,6,6,86,986,1986,3986,3986,172,173,'IXAAAA','OABAAA','OOOOxx' +9128,691,0,0,8,8,28,128,1128,4128,9128,56,57,'CNAAAA','PABAAA','VVVVxx' +5044,692,0,0,4,4,44,44,1044,44,5044,88,89,'AMAAAA','QABAAA','AAAAxx' +8132,693,0,0,2,12,32,132,132,3132,8132,64,65,'UAAAAA','RABAAA','HHHHxx' +9992,694,0,0,2,12,92,992,1992,4992,9992,184,185,'IUAAAA','SABAAA','OOOOxx' +8468,695,0,0,8,8,68,468,468,3468,8468,136,137,'SNAAAA','TABAAA','VVVVxx' +6876,696,0,0,6,16,76,876,876,1876,6876,152,153,'MEAAAA','UABAAA','AAAAxx' +3532,697,0,0,2,12,32,532,1532,3532,3532,64,65,'WFAAAA','VABAAA','HHHHxx' +2140,698,0,0,0,0,40,140,140,2140,2140,80,81,'IEAAAA','WABAAA','OOOOxx' +2183,699,1,3,3,3,83,183,183,2183,2183,166,167,'ZFAAAA','XABAAA','VVVVxx' +9766,700,0,2,6,6,66,766,1766,4766,9766,132,133,'QLAAAA','YABAAA','AAAAxx' +7943,701,1,3,3,3,43,943,1943,2943,7943,86,87,'NTAAAA','ZABAAA','HHHHxx' +9243,702,1,3,3,3,43,243,1243,4243,9243,86,87,'NRAAAA','ABBAAA','OOOOxx' +6241,703,1,1,1,1,41,241,241,1241,6241,82,83,'BGAAAA','BBBAAA','VVVVxx' +9540,704,0,0,0,0,40,540,1540,4540,9540,80,81,'YCAAAA','CBBAAA','AAAAxx' +7418,705,0,2,8,18,18,418,1418,2418,7418,36,37,'IZAAAA','DBBAAA','HHHHxx' +1603,706,1,3,3,3,3,603,1603,1603,1603,6,7,'RJAAAA','EBBAAA','OOOOxx' +8950,707,0,2,0,10,50,950,950,3950,8950,100,101,'GGAAAA','FBBAAA','VVVVxx' +6933,708,1,1,3,13,33,933,933,1933,6933,66,67,'RGAAAA','GBBAAA','AAAAxx' +2646,709,0,2,6,6,46,646,646,2646,2646,92,93,'UXAAAA','HBBAAA','HHHHxx' +3447,710,1,3,7,7,47,447,1447,3447,3447,94,95,'PCAAAA','IBBAAA','OOOOxx' +9957,711,1,1,7,17,57,957,1957,4957,9957,114,115,'ZSAAAA','JBBAAA','VVVVxx' +4623,712,1,3,3,3,23,623,623,4623,4623,46,47,'VVAAAA','KBBAAA','AAAAxx' +9058,713,0,2,8,18,58,58,1058,4058,9058,116,117,'KKAAAA','LBBAAA','HHHHxx' +7361,714,1,1,1,1,61,361,1361,2361,7361,122,123,'DXAAAA','MBBAAA','OOOOxx' +2489,715,1,1,9,9,89,489,489,2489,2489,178,179,'TRAAAA','NBBAAA','VVVVxx' +7643,716,1,3,3,3,43,643,1643,2643,7643,86,87,'ZHAAAA','OBBAAA','AAAAxx' +9166,717,0,2,6,6,66,166,1166,4166,9166,132,133,'OOAAAA','PBBAAA','HHHHxx' +7789,718,1,1,9,9,89,789,1789,2789,7789,178,179,'PNAAAA','QBBAAA','OOOOxx' +2332,719,0,0,2,12,32,332,332,2332,2332,64,65,'SLAAAA','RBBAAA','VVVVxx' +1832,720,0,0,2,12,32,832,1832,1832,1832,64,65,'MSAAAA','SBBAAA','AAAAxx' +8375,721,1,3,5,15,75,375,375,3375,8375,150,151,'DKAAAA','TBBAAA','HHHHxx' +948,722,0,0,8,8,48,948,948,948,948,96,97,'MKAAAA','UBBAAA','OOOOxx' +5613,723,1,1,3,13,13,613,1613,613,5613,26,27,'XHAAAA','VBBAAA','VVVVxx' +6310,724,0,2,0,10,10,310,310,1310,6310,20,21,'SIAAAA','WBBAAA','AAAAxx' +4254,725,0,2,4,14,54,254,254,4254,4254,108,109,'QHAAAA','XBBAAA','HHHHxx' +4260,726,0,0,0,0,60,260,260,4260,4260,120,121,'WHAAAA','YBBAAA','OOOOxx' +2060,727,0,0,0,0,60,60,60,2060,2060,120,121,'GBAAAA','ZBBAAA','VVVVxx' +4831,728,1,3,1,11,31,831,831,4831,4831,62,63,'VDAAAA','ACBAAA','AAAAxx' +6176,729,0,0,6,16,76,176,176,1176,6176,152,153,'ODAAAA','BCBAAA','HHHHxx' +6688,730,0,0,8,8,88,688,688,1688,6688,176,177,'GXAAAA','CCBAAA','OOOOxx' +5752,731,0,0,2,12,52,752,1752,752,5752,104,105,'GNAAAA','DCBAAA','VVVVxx' +8714,732,0,2,4,14,14,714,714,3714,8714,28,29,'EXAAAA','ECBAAA','AAAAxx' +6739,733,1,3,9,19,39,739,739,1739,6739,78,79,'FZAAAA','FCBAAA','HHHHxx' +7066,734,0,2,6,6,66,66,1066,2066,7066,132,133,'ULAAAA','GCBAAA','OOOOxx' +7250,735,0,2,0,10,50,250,1250,2250,7250,100,101,'WSAAAA','HCBAAA','VVVVxx' +3161,736,1,1,1,1,61,161,1161,3161,3161,122,123,'PRAAAA','ICBAAA','AAAAxx' +1411,737,1,3,1,11,11,411,1411,1411,1411,22,23,'HCAAAA','JCBAAA','HHHHxx' +9301,738,1,1,1,1,1,301,1301,4301,9301,2,3,'TTAAAA','KCBAAA','OOOOxx' +8324,739,0,0,4,4,24,324,324,3324,8324,48,49,'EIAAAA','LCBAAA','VVVVxx' +9641,740,1,1,1,1,41,641,1641,4641,9641,82,83,'VGAAAA','MCBAAA','AAAAxx' +7077,741,1,1,7,17,77,77,1077,2077,7077,154,155,'FMAAAA','NCBAAA','HHHHxx' +9888,742,0,0,8,8,88,888,1888,4888,9888,176,177,'IQAAAA','OCBAAA','OOOOxx' +9909,743,1,1,9,9,9,909,1909,4909,9909,18,19,'DRAAAA','PCBAAA','VVVVxx' +2209,744,1,1,9,9,9,209,209,2209,2209,18,19,'ZGAAAA','QCBAAA','AAAAxx' +6904,745,0,0,4,4,4,904,904,1904,6904,8,9,'OFAAAA','RCBAAA','HHHHxx' +6608,746,0,0,8,8,8,608,608,1608,6608,16,17,'EUAAAA','SCBAAA','OOOOxx' +8400,747,0,0,0,0,0,400,400,3400,8400,0,1,'CLAAAA','TCBAAA','VVVVxx' +5124,748,0,0,4,4,24,124,1124,124,5124,48,49,'CPAAAA','UCBAAA','AAAAxx' +5484,749,0,0,4,4,84,484,1484,484,5484,168,169,'YCAAAA','VCBAAA','HHHHxx' +3575,750,1,3,5,15,75,575,1575,3575,3575,150,151,'NHAAAA','WCBAAA','OOOOxx' +9723,751,1,3,3,3,23,723,1723,4723,9723,46,47,'ZJAAAA','XCBAAA','VVVVxx' +360,752,0,0,0,0,60,360,360,360,360,120,121,'WNAAAA','YCBAAA','AAAAxx' +1059,753,1,3,9,19,59,59,1059,1059,1059,118,119,'TOAAAA','ZCBAAA','HHHHxx' +4941,754,1,1,1,1,41,941,941,4941,4941,82,83,'BIAAAA','ADBAAA','OOOOxx' +2535,755,1,3,5,15,35,535,535,2535,2535,70,71,'NTAAAA','BDBAAA','VVVVxx' +4119,756,1,3,9,19,19,119,119,4119,4119,38,39,'LCAAAA','CDBAAA','AAAAxx' +3725,757,1,1,5,5,25,725,1725,3725,3725,50,51,'HNAAAA','DDBAAA','HHHHxx' +4758,758,0,2,8,18,58,758,758,4758,4758,116,117,'ABAAAA','EDBAAA','OOOOxx' +9593,759,1,1,3,13,93,593,1593,4593,9593,186,187,'ZEAAAA','FDBAAA','VVVVxx' +4663,760,1,3,3,3,63,663,663,4663,4663,126,127,'JXAAAA','GDBAAA','AAAAxx' +7734,761,0,2,4,14,34,734,1734,2734,7734,68,69,'MLAAAA','HDBAAA','HHHHxx' +9156,762,0,0,6,16,56,156,1156,4156,9156,112,113,'EOAAAA','IDBAAA','OOOOxx' +8120,763,0,0,0,0,20,120,120,3120,8120,40,41,'IAAAAA','JDBAAA','VVVVxx' +4385,764,1,1,5,5,85,385,385,4385,4385,170,171,'RMAAAA','KDBAAA','AAAAxx' +2926,765,0,2,6,6,26,926,926,2926,2926,52,53,'OIAAAA','LDBAAA','HHHHxx' +4186,766,0,2,6,6,86,186,186,4186,4186,172,173,'AFAAAA','MDBAAA','OOOOxx' +2508,767,0,0,8,8,8,508,508,2508,2508,16,17,'MSAAAA','NDBAAA','VVVVxx' +4012,768,0,0,2,12,12,12,12,4012,4012,24,25,'IYAAAA','ODBAAA','AAAAxx' +6266,769,0,2,6,6,66,266,266,1266,6266,132,133,'AHAAAA','PDBAAA','HHHHxx' +3709,770,1,1,9,9,9,709,1709,3709,3709,18,19,'RMAAAA','QDBAAA','OOOOxx' +7289,771,1,1,9,9,89,289,1289,2289,7289,178,179,'JUAAAA','RDBAAA','VVVVxx' +8875,772,1,3,5,15,75,875,875,3875,8875,150,151,'JDAAAA','SDBAAA','AAAAxx' +4412,773,0,0,2,12,12,412,412,4412,4412,24,25,'SNAAAA','TDBAAA','HHHHxx' +3033,774,1,1,3,13,33,33,1033,3033,3033,66,67,'RMAAAA','UDBAAA','OOOOxx' +1645,775,1,1,5,5,45,645,1645,1645,1645,90,91,'HLAAAA','VDBAAA','VVVVxx' +3557,776,1,1,7,17,57,557,1557,3557,3557,114,115,'VGAAAA','WDBAAA','AAAAxx' +6316,777,0,0,6,16,16,316,316,1316,6316,32,33,'YIAAAA','XDBAAA','HHHHxx' +2054,778,0,2,4,14,54,54,54,2054,2054,108,109,'ABAAAA','YDBAAA','OOOOxx' +7031,779,1,3,1,11,31,31,1031,2031,7031,62,63,'LKAAAA','ZDBAAA','VVVVxx' +3405,780,1,1,5,5,5,405,1405,3405,3405,10,11,'ZAAAAA','AEBAAA','AAAAxx' +5343,781,1,3,3,3,43,343,1343,343,5343,86,87,'NXAAAA','BEBAAA','HHHHxx' +5240,782,0,0,0,0,40,240,1240,240,5240,80,81,'OTAAAA','CEBAAA','OOOOxx' +9650,783,0,2,0,10,50,650,1650,4650,9650,100,101,'EHAAAA','DEBAAA','VVVVxx' +3777,784,1,1,7,17,77,777,1777,3777,3777,154,155,'HPAAAA','EEBAAA','AAAAxx' +9041,785,1,1,1,1,41,41,1041,4041,9041,82,83,'TJAAAA','FEBAAA','HHHHxx' +6923,786,1,3,3,3,23,923,923,1923,6923,46,47,'HGAAAA','GEBAAA','OOOOxx' +2977,787,1,1,7,17,77,977,977,2977,2977,154,155,'NKAAAA','HEBAAA','VVVVxx' +5500,788,0,0,0,0,0,500,1500,500,5500,0,1,'ODAAAA','IEBAAA','AAAAxx' +1044,789,0,0,4,4,44,44,1044,1044,1044,88,89,'EOAAAA','JEBAAA','HHHHxx' +434,790,0,2,4,14,34,434,434,434,434,68,69,'SQAAAA','KEBAAA','OOOOxx' +611,791,1,3,1,11,11,611,611,611,611,22,23,'NXAAAA','LEBAAA','VVVVxx' +5760,792,0,0,0,0,60,760,1760,760,5760,120,121,'ONAAAA','MEBAAA','AAAAxx' +2445,793,1,1,5,5,45,445,445,2445,2445,90,91,'BQAAAA','NEBAAA','HHHHxx' +7098,794,0,2,8,18,98,98,1098,2098,7098,196,197,'ANAAAA','OEBAAA','OOOOxx' +2188,795,0,0,8,8,88,188,188,2188,2188,176,177,'EGAAAA','PEBAAA','VVVVxx' +4597,796,1,1,7,17,97,597,597,4597,4597,194,195,'VUAAAA','QEBAAA','AAAAxx' +1913,797,1,1,3,13,13,913,1913,1913,1913,26,27,'PVAAAA','REBAAA','HHHHxx' +8696,798,0,0,6,16,96,696,696,3696,8696,192,193,'MWAAAA','SEBAAA','OOOOxx' +3332,799,0,0,2,12,32,332,1332,3332,3332,64,65,'EYAAAA','TEBAAA','VVVVxx' +8760,800,0,0,0,0,60,760,760,3760,8760,120,121,'YYAAAA','UEBAAA','AAAAxx' +3215,801,1,3,5,15,15,215,1215,3215,3215,30,31,'RTAAAA','VEBAAA','HHHHxx' +1625,802,1,1,5,5,25,625,1625,1625,1625,50,51,'NKAAAA','WEBAAA','OOOOxx' +4219,803,1,3,9,19,19,219,219,4219,4219,38,39,'HGAAAA','XEBAAA','VVVVxx' +415,804,1,3,5,15,15,415,415,415,415,30,31,'ZPAAAA','YEBAAA','AAAAxx' +4242,805,0,2,2,2,42,242,242,4242,4242,84,85,'EHAAAA','ZEBAAA','HHHHxx' +8660,806,0,0,0,0,60,660,660,3660,8660,120,121,'CVAAAA','AFBAAA','OOOOxx' +6525,807,1,1,5,5,25,525,525,1525,6525,50,51,'ZQAAAA','BFBAAA','VVVVxx' +2141,808,1,1,1,1,41,141,141,2141,2141,82,83,'JEAAAA','CFBAAA','AAAAxx' +5152,809,0,0,2,12,52,152,1152,152,5152,104,105,'EQAAAA','DFBAAA','HHHHxx' +8560,810,0,0,0,0,60,560,560,3560,8560,120,121,'GRAAAA','EFBAAA','OOOOxx' +9835,811,1,3,5,15,35,835,1835,4835,9835,70,71,'HOAAAA','FFBAAA','VVVVxx' +2657,812,1,1,7,17,57,657,657,2657,2657,114,115,'FYAAAA','GFBAAA','AAAAxx' +6085,813,1,1,5,5,85,85,85,1085,6085,170,171,'BAAAAA','HFBAAA','HHHHxx' +6698,814,0,2,8,18,98,698,698,1698,6698,196,197,'QXAAAA','IFBAAA','OOOOxx' +5421,815,1,1,1,1,21,421,1421,421,5421,42,43,'NAAAAA','JFBAAA','VVVVxx' +6661,816,1,1,1,1,61,661,661,1661,6661,122,123,'FWAAAA','KFBAAA','AAAAxx' +5645,817,1,1,5,5,45,645,1645,645,5645,90,91,'DJAAAA','LFBAAA','HHHHxx' +1248,818,0,0,8,8,48,248,1248,1248,1248,96,97,'AWAAAA','MFBAAA','OOOOxx' +5690,819,0,2,0,10,90,690,1690,690,5690,180,181,'WKAAAA','NFBAAA','VVVVxx' +4762,820,0,2,2,2,62,762,762,4762,4762,124,125,'EBAAAA','OFBAAA','AAAAxx' +1455,821,1,3,5,15,55,455,1455,1455,1455,110,111,'ZDAAAA','PFBAAA','HHHHxx' +9846,822,0,2,6,6,46,846,1846,4846,9846,92,93,'SOAAAA','QFBAAA','OOOOxx' +5295,823,1,3,5,15,95,295,1295,295,5295,190,191,'RVAAAA','RFBAAA','VVVVxx' +2826,824,0,2,6,6,26,826,826,2826,2826,52,53,'SEAAAA','SFBAAA','AAAAxx' +7496,825,0,0,6,16,96,496,1496,2496,7496,192,193,'ICAAAA','TFBAAA','HHHHxx' +3024,826,0,0,4,4,24,24,1024,3024,3024,48,49,'IMAAAA','UFBAAA','OOOOxx' +4945,827,1,1,5,5,45,945,945,4945,4945,90,91,'FIAAAA','VFBAAA','VVVVxx' +4404,828,0,0,4,4,4,404,404,4404,4404,8,9,'KNAAAA','WFBAAA','AAAAxx' +9302,829,0,2,2,2,2,302,1302,4302,9302,4,5,'UTAAAA','XFBAAA','HHHHxx' +1286,830,0,2,6,6,86,286,1286,1286,1286,172,173,'MXAAAA','YFBAAA','OOOOxx' +8435,831,1,3,5,15,35,435,435,3435,8435,70,71,'LMAAAA','ZFBAAA','VVVVxx' +8969,832,1,1,9,9,69,969,969,3969,8969,138,139,'ZGAAAA','AGBAAA','AAAAxx' +3302,833,0,2,2,2,2,302,1302,3302,3302,4,5,'AXAAAA','BGBAAA','HHHHxx' +9753,834,1,1,3,13,53,753,1753,4753,9753,106,107,'DLAAAA','CGBAAA','OOOOxx' +9374,835,0,2,4,14,74,374,1374,4374,9374,148,149,'OWAAAA','DGBAAA','VVVVxx' +4907,836,1,3,7,7,7,907,907,4907,4907,14,15,'TGAAAA','EGBAAA','AAAAxx' +1659,837,1,3,9,19,59,659,1659,1659,1659,118,119,'VLAAAA','FGBAAA','HHHHxx' +5095,838,1,3,5,15,95,95,1095,95,5095,190,191,'ZNAAAA','GGBAAA','OOOOxx' +9446,839,0,2,6,6,46,446,1446,4446,9446,92,93,'IZAAAA','HGBAAA','VVVVxx' +8528,840,0,0,8,8,28,528,528,3528,8528,56,57,'AQAAAA','IGBAAA','AAAAxx' +4890,841,0,2,0,10,90,890,890,4890,4890,180,181,'CGAAAA','JGBAAA','HHHHxx' +1221,842,1,1,1,1,21,221,1221,1221,1221,42,43,'ZUAAAA','KGBAAA','OOOOxx' +5583,843,1,3,3,3,83,583,1583,583,5583,166,167,'TGAAAA','LGBAAA','VVVVxx' +7303,844,1,3,3,3,3,303,1303,2303,7303,6,7,'XUAAAA','MGBAAA','AAAAxx' +406,845,0,2,6,6,6,406,406,406,406,12,13,'QPAAAA','NGBAAA','HHHHxx' +7542,846,0,2,2,2,42,542,1542,2542,7542,84,85,'CEAAAA','OGBAAA','OOOOxx' +9507,847,1,3,7,7,7,507,1507,4507,9507,14,15,'RBAAAA','PGBAAA','VVVVxx' +9511,848,1,3,1,11,11,511,1511,4511,9511,22,23,'VBAAAA','QGBAAA','AAAAxx' +1373,849,1,1,3,13,73,373,1373,1373,1373,146,147,'VAAAAA','RGBAAA','HHHHxx' +6556,850,0,0,6,16,56,556,556,1556,6556,112,113,'ESAAAA','SGBAAA','OOOOxx' +4117,851,1,1,7,17,17,117,117,4117,4117,34,35,'JCAAAA','TGBAAA','VVVVxx' +7794,852,0,2,4,14,94,794,1794,2794,7794,188,189,'UNAAAA','UGBAAA','AAAAxx' +7170,853,0,2,0,10,70,170,1170,2170,7170,140,141,'UPAAAA','VGBAAA','HHHHxx' +5809,854,1,1,9,9,9,809,1809,809,5809,18,19,'LPAAAA','WGBAAA','OOOOxx' +7828,855,0,0,8,8,28,828,1828,2828,7828,56,57,'CPAAAA','XGBAAA','VVVVxx' +8046,856,0,2,6,6,46,46,46,3046,8046,92,93,'MXAAAA','YGBAAA','AAAAxx' +4833,857,1,1,3,13,33,833,833,4833,4833,66,67,'XDAAAA','ZGBAAA','HHHHxx' +2107,858,1,3,7,7,7,107,107,2107,2107,14,15,'BDAAAA','AHBAAA','OOOOxx' +4276,859,0,0,6,16,76,276,276,4276,4276,152,153,'MIAAAA','BHBAAA','VVVVxx' +9536,860,0,0,6,16,36,536,1536,4536,9536,72,73,'UCAAAA','CHBAAA','AAAAxx' +5549,861,1,1,9,9,49,549,1549,549,5549,98,99,'LFAAAA','DHBAAA','HHHHxx' +6427,862,1,3,7,7,27,427,427,1427,6427,54,55,'FNAAAA','EHBAAA','OOOOxx' +1382,863,0,2,2,2,82,382,1382,1382,1382,164,165,'EBAAAA','FHBAAA','VVVVxx' +3256,864,0,0,6,16,56,256,1256,3256,3256,112,113,'GVAAAA','GHBAAA','AAAAxx' +3270,865,0,2,0,10,70,270,1270,3270,3270,140,141,'UVAAAA','HHBAAA','HHHHxx' +4808,866,0,0,8,8,8,808,808,4808,4808,16,17,'YCAAAA','IHBAAA','OOOOxx' +7938,867,0,2,8,18,38,938,1938,2938,7938,76,77,'ITAAAA','JHBAAA','VVVVxx' +4405,868,1,1,5,5,5,405,405,4405,4405,10,11,'LNAAAA','KHBAAA','AAAAxx' +2264,869,0,0,4,4,64,264,264,2264,2264,128,129,'CJAAAA','LHBAAA','HHHHxx' +80,870,0,0,0,0,80,80,80,80,80,160,161,'CDAAAA','MHBAAA','OOOOxx' +320,871,0,0,0,0,20,320,320,320,320,40,41,'IMAAAA','NHBAAA','VVVVxx' +2383,872,1,3,3,3,83,383,383,2383,2383,166,167,'RNAAAA','OHBAAA','AAAAxx' +3146,873,0,2,6,6,46,146,1146,3146,3146,92,93,'ARAAAA','PHBAAA','HHHHxx' +6911,874,1,3,1,11,11,911,911,1911,6911,22,23,'VFAAAA','QHBAAA','OOOOxx' +7377,875,1,1,7,17,77,377,1377,2377,7377,154,155,'TXAAAA','RHBAAA','VVVVxx' +9965,876,1,1,5,5,65,965,1965,4965,9965,130,131,'HTAAAA','SHBAAA','AAAAxx' +8361,877,1,1,1,1,61,361,361,3361,8361,122,123,'PJAAAA','THBAAA','HHHHxx' +9417,878,1,1,7,17,17,417,1417,4417,9417,34,35,'FYAAAA','UHBAAA','OOOOxx' +2483,879,1,3,3,3,83,483,483,2483,2483,166,167,'NRAAAA','VHBAAA','VVVVxx' +9843,880,1,3,3,3,43,843,1843,4843,9843,86,87,'POAAAA','WHBAAA','AAAAxx' +6395,881,1,3,5,15,95,395,395,1395,6395,190,191,'ZLAAAA','XHBAAA','HHHHxx' +6444,882,0,0,4,4,44,444,444,1444,6444,88,89,'WNAAAA','YHBAAA','OOOOxx' +1820,883,0,0,0,0,20,820,1820,1820,1820,40,41,'ASAAAA','ZHBAAA','VVVVxx' +2768,884,0,0,8,8,68,768,768,2768,2768,136,137,'MCAAAA','AIBAAA','AAAAxx' +5413,885,1,1,3,13,13,413,1413,413,5413,26,27,'FAAAAA','BIBAAA','HHHHxx' +2923,886,1,3,3,3,23,923,923,2923,2923,46,47,'LIAAAA','CIBAAA','OOOOxx' +5286,887,0,2,6,6,86,286,1286,286,5286,172,173,'IVAAAA','DIBAAA','VVVVxx' +6126,888,0,2,6,6,26,126,126,1126,6126,52,53,'QBAAAA','EIBAAA','AAAAxx' +8343,889,1,3,3,3,43,343,343,3343,8343,86,87,'XIAAAA','FIBAAA','HHHHxx' +6010,890,0,2,0,10,10,10,10,1010,6010,20,21,'EXAAAA','GIBAAA','OOOOxx' +4177,891,1,1,7,17,77,177,177,4177,4177,154,155,'REAAAA','HIBAAA','VVVVxx' +5808,892,0,0,8,8,8,808,1808,808,5808,16,17,'KPAAAA','IIBAAA','AAAAxx' +4859,893,1,3,9,19,59,859,859,4859,4859,118,119,'XEAAAA','JIBAAA','HHHHxx' +9252,894,0,0,2,12,52,252,1252,4252,9252,104,105,'WRAAAA','KIBAAA','OOOOxx' +2941,895,1,1,1,1,41,941,941,2941,2941,82,83,'DJAAAA','LIBAAA','VVVVxx' +8693,896,1,1,3,13,93,693,693,3693,8693,186,187,'JWAAAA','MIBAAA','AAAAxx' +4432,897,0,0,2,12,32,432,432,4432,4432,64,65,'MOAAAA','NIBAAA','HHHHxx' +2371,898,1,3,1,11,71,371,371,2371,2371,142,143,'FNAAAA','OIBAAA','OOOOxx' +7546,899,0,2,6,6,46,546,1546,2546,7546,92,93,'GEAAAA','PIBAAA','VVVVxx' +1369,900,1,1,9,9,69,369,1369,1369,1369,138,139,'RAAAAA','QIBAAA','AAAAxx' +4687,901,1,3,7,7,87,687,687,4687,4687,174,175,'HYAAAA','RIBAAA','HHHHxx' +8941,902,1,1,1,1,41,941,941,3941,8941,82,83,'XFAAAA','SIBAAA','OOOOxx' +226,903,0,2,6,6,26,226,226,226,226,52,53,'SIAAAA','TIBAAA','VVVVxx' +3493,904,1,1,3,13,93,493,1493,3493,3493,186,187,'JEAAAA','UIBAAA','AAAAxx' +6433,905,1,1,3,13,33,433,433,1433,6433,66,67,'LNAAAA','VIBAAA','HHHHxx' +9189,906,1,1,9,9,89,189,1189,4189,9189,178,179,'LPAAAA','WIBAAA','OOOOxx' +6027,907,1,3,7,7,27,27,27,1027,6027,54,55,'VXAAAA','XIBAAA','VVVVxx' +4615,908,1,3,5,15,15,615,615,4615,4615,30,31,'NVAAAA','YIBAAA','AAAAxx' +5320,909,0,0,0,0,20,320,1320,320,5320,40,41,'QWAAAA','ZIBAAA','HHHHxx' +7002,910,0,2,2,2,2,2,1002,2002,7002,4,5,'IJAAAA','AJBAAA','OOOOxx' +7367,911,1,3,7,7,67,367,1367,2367,7367,134,135,'JXAAAA','BJBAAA','VVVVxx' +289,912,1,1,9,9,89,289,289,289,289,178,179,'DLAAAA','CJBAAA','AAAAxx' +407,913,1,3,7,7,7,407,407,407,407,14,15,'RPAAAA','DJBAAA','HHHHxx' +504,914,0,0,4,4,4,504,504,504,504,8,9,'KTAAAA','EJBAAA','OOOOxx' +8301,915,1,1,1,1,1,301,301,3301,8301,2,3,'HHAAAA','FJBAAA','VVVVxx' +1396,916,0,0,6,16,96,396,1396,1396,1396,192,193,'SBAAAA','GJBAAA','AAAAxx' +4794,917,0,2,4,14,94,794,794,4794,4794,188,189,'KCAAAA','HJBAAA','HHHHxx' +6400,918,0,0,0,0,0,400,400,1400,6400,0,1,'EMAAAA','IJBAAA','OOOOxx' +1275,919,1,3,5,15,75,275,1275,1275,1275,150,151,'BXAAAA','JJBAAA','VVVVxx' +5797,920,1,1,7,17,97,797,1797,797,5797,194,195,'ZOAAAA','KJBAAA','AAAAxx' +2221,921,1,1,1,1,21,221,221,2221,2221,42,43,'LHAAAA','LJBAAA','HHHHxx' +2504,922,0,0,4,4,4,504,504,2504,2504,8,9,'ISAAAA','MJBAAA','OOOOxx' +2143,923,1,3,3,3,43,143,143,2143,2143,86,87,'LEAAAA','NJBAAA','VVVVxx' +1083,924,1,3,3,3,83,83,1083,1083,1083,166,167,'RPAAAA','OJBAAA','AAAAxx' +6148,925,0,0,8,8,48,148,148,1148,6148,96,97,'MCAAAA','PJBAAA','HHHHxx' +3612,926,0,0,2,12,12,612,1612,3612,3612,24,25,'YIAAAA','QJBAAA','OOOOxx' +9499,927,1,3,9,19,99,499,1499,4499,9499,198,199,'JBAAAA','RJBAAA','VVVVxx' +5773,928,1,1,3,13,73,773,1773,773,5773,146,147,'BOAAAA','SJBAAA','AAAAxx' +1014,929,0,2,4,14,14,14,1014,1014,1014,28,29,'ANAAAA','TJBAAA','HHHHxx' +1427,930,1,3,7,7,27,427,1427,1427,1427,54,55,'XCAAAA','UJBAAA','OOOOxx' +6770,931,0,2,0,10,70,770,770,1770,6770,140,141,'KAAAAA','VJBAAA','VVVVxx' +9042,932,0,2,2,2,42,42,1042,4042,9042,84,85,'UJAAAA','WJBAAA','AAAAxx' +9892,933,0,0,2,12,92,892,1892,4892,9892,184,185,'MQAAAA','XJBAAA','HHHHxx' +1771,934,1,3,1,11,71,771,1771,1771,1771,142,143,'DQAAAA','YJBAAA','OOOOxx' +7392,935,0,0,2,12,92,392,1392,2392,7392,184,185,'IYAAAA','ZJBAAA','VVVVxx' +4465,936,1,1,5,5,65,465,465,4465,4465,130,131,'TPAAAA','AKBAAA','AAAAxx' +278,937,0,2,8,18,78,278,278,278,278,156,157,'SKAAAA','BKBAAA','HHHHxx' +7776,938,0,0,6,16,76,776,1776,2776,7776,152,153,'CNAAAA','CKBAAA','OOOOxx' +3763,939,1,3,3,3,63,763,1763,3763,3763,126,127,'TOAAAA','DKBAAA','VVVVxx' +7503,940,1,3,3,3,3,503,1503,2503,7503,6,7,'PCAAAA','EKBAAA','AAAAxx' +3793,941,1,1,3,13,93,793,1793,3793,3793,186,187,'XPAAAA','FKBAAA','HHHHxx' +6510,942,0,2,0,10,10,510,510,1510,6510,20,21,'KQAAAA','GKBAAA','OOOOxx' +7641,943,1,1,1,1,41,641,1641,2641,7641,82,83,'XHAAAA','HKBAAA','VVVVxx' +3228,944,0,0,8,8,28,228,1228,3228,3228,56,57,'EUAAAA','IKBAAA','AAAAxx' +194,945,0,2,4,14,94,194,194,194,194,188,189,'MHAAAA','JKBAAA','HHHHxx' +8555,946,1,3,5,15,55,555,555,3555,8555,110,111,'BRAAAA','KKBAAA','OOOOxx' +4997,947,1,1,7,17,97,997,997,4997,4997,194,195,'FKAAAA','LKBAAA','VVVVxx' +8687,948,1,3,7,7,87,687,687,3687,8687,174,175,'DWAAAA','MKBAAA','AAAAxx' +6632,949,0,0,2,12,32,632,632,1632,6632,64,65,'CVAAAA','NKBAAA','HHHHxx' +9607,950,1,3,7,7,7,607,1607,4607,9607,14,15,'NFAAAA','OKBAAA','OOOOxx' +6201,951,1,1,1,1,1,201,201,1201,6201,2,3,'NEAAAA','PKBAAA','VVVVxx' +857,952,1,1,7,17,57,857,857,857,857,114,115,'ZGAAAA','QKBAAA','AAAAxx' +5623,953,1,3,3,3,23,623,1623,623,5623,46,47,'HIAAAA','RKBAAA','HHHHxx' +5979,954,1,3,9,19,79,979,1979,979,5979,158,159,'ZVAAAA','SKBAAA','OOOOxx' +2201,955,1,1,1,1,1,201,201,2201,2201,2,3,'RGAAAA','TKBAAA','VVVVxx' +3166,956,0,2,6,6,66,166,1166,3166,3166,132,133,'URAAAA','UKBAAA','AAAAxx' +6249,957,1,1,9,9,49,249,249,1249,6249,98,99,'JGAAAA','VKBAAA','HHHHxx' +3271,958,1,3,1,11,71,271,1271,3271,3271,142,143,'VVAAAA','WKBAAA','OOOOxx' +7777,959,1,1,7,17,77,777,1777,2777,7777,154,155,'DNAAAA','XKBAAA','VVVVxx' +6732,960,0,0,2,12,32,732,732,1732,6732,64,65,'YYAAAA','YKBAAA','AAAAxx' +6297,961,1,1,7,17,97,297,297,1297,6297,194,195,'FIAAAA','ZKBAAA','HHHHxx' +5685,962,1,1,5,5,85,685,1685,685,5685,170,171,'RKAAAA','ALBAAA','OOOOxx' +9931,963,1,3,1,11,31,931,1931,4931,9931,62,63,'ZRAAAA','BLBAAA','VVVVxx' +7485,964,1,1,5,5,85,485,1485,2485,7485,170,171,'XBAAAA','CLBAAA','AAAAxx' +386,965,0,2,6,6,86,386,386,386,386,172,173,'WOAAAA','DLBAAA','HHHHxx' +8204,966,0,0,4,4,4,204,204,3204,8204,8,9,'ODAAAA','ELBAAA','OOOOxx' +3606,967,0,2,6,6,6,606,1606,3606,3606,12,13,'SIAAAA','FLBAAA','VVVVxx' +1692,968,0,0,2,12,92,692,1692,1692,1692,184,185,'CNAAAA','GLBAAA','AAAAxx' +3002,969,0,2,2,2,2,2,1002,3002,3002,4,5,'MLAAAA','HLBAAA','HHHHxx' +9676,970,0,0,6,16,76,676,1676,4676,9676,152,153,'EIAAAA','ILBAAA','OOOOxx' +915,971,1,3,5,15,15,915,915,915,915,30,31,'FJAAAA','JLBAAA','VVVVxx' +7706,972,0,2,6,6,6,706,1706,2706,7706,12,13,'KKAAAA','KLBAAA','AAAAxx' +6080,973,0,0,0,0,80,80,80,1080,6080,160,161,'WZAAAA','LLBAAA','HHHHxx' +1860,974,0,0,0,0,60,860,1860,1860,1860,120,121,'OTAAAA','MLBAAA','OOOOxx' +1444,975,0,0,4,4,44,444,1444,1444,1444,88,89,'ODAAAA','NLBAAA','VVVVxx' +7208,976,0,0,8,8,8,208,1208,2208,7208,16,17,'GRAAAA','OLBAAA','AAAAxx' +8554,977,0,2,4,14,54,554,554,3554,8554,108,109,'ARAAAA','PLBAAA','HHHHxx' +2028,978,0,0,8,8,28,28,28,2028,2028,56,57,'AAAAAA','QLBAAA','OOOOxx' +9893,979,1,1,3,13,93,893,1893,4893,9893,186,187,'NQAAAA','RLBAAA','VVVVxx' +4740,980,0,0,0,0,40,740,740,4740,4740,80,81,'IAAAAA','SLBAAA','AAAAxx' +6186,981,0,2,6,6,86,186,186,1186,6186,172,173,'YDAAAA','TLBAAA','HHHHxx' +6357,982,1,1,7,17,57,357,357,1357,6357,114,115,'NKAAAA','ULBAAA','OOOOxx' +3699,983,1,3,9,19,99,699,1699,3699,3699,198,199,'HMAAAA','VLBAAA','VVVVxx' +7620,984,0,0,0,0,20,620,1620,2620,7620,40,41,'CHAAAA','WLBAAA','AAAAxx' +921,985,1,1,1,1,21,921,921,921,921,42,43,'LJAAAA','XLBAAA','HHHHxx' +5506,986,0,2,6,6,6,506,1506,506,5506,12,13,'UDAAAA','YLBAAA','OOOOxx' +8851,987,1,3,1,11,51,851,851,3851,8851,102,103,'LCAAAA','ZLBAAA','VVVVxx' +3205,988,1,1,5,5,5,205,1205,3205,3205,10,11,'HTAAAA','AMBAAA','AAAAxx' +1956,989,0,0,6,16,56,956,1956,1956,1956,112,113,'GXAAAA','BMBAAA','HHHHxx' +6272,990,0,0,2,12,72,272,272,1272,6272,144,145,'GHAAAA','CMBAAA','OOOOxx' +1509,991,1,1,9,9,9,509,1509,1509,1509,18,19,'BGAAAA','DMBAAA','VVVVxx' +53,992,1,1,3,13,53,53,53,53,53,106,107,'BCAAAA','EMBAAA','AAAAxx' +213,993,1,1,3,13,13,213,213,213,213,26,27,'FIAAAA','FMBAAA','HHHHxx' +4924,994,0,0,4,4,24,924,924,4924,4924,48,49,'KHAAAA','GMBAAA','OOOOxx' +2097,995,1,1,7,17,97,97,97,2097,2097,194,195,'RCAAAA','HMBAAA','VVVVxx' +4607,996,1,3,7,7,7,607,607,4607,4607,14,15,'FVAAAA','IMBAAA','AAAAxx' +1582,997,0,2,2,2,82,582,1582,1582,1582,164,165,'WIAAAA','JMBAAA','HHHHxx' +6643,998,1,3,3,3,43,643,643,1643,6643,86,87,'NVAAAA','KMBAAA','OOOOxx' +2238,999,0,2,8,18,38,238,238,2238,2238,76,77,'CIAAAA','LMBAAA','VVVVxx' +2942,1000,0,2,2,2,42,942,942,2942,2942,84,85,'EJAAAA','MMBAAA','AAAAxx' +1655,1001,1,3,5,15,55,655,1655,1655,1655,110,111,'RLAAAA','NMBAAA','HHHHxx' +3226,1002,0,2,6,6,26,226,1226,3226,3226,52,53,'CUAAAA','OMBAAA','OOOOxx' +4263,1003,1,3,3,3,63,263,263,4263,4263,126,127,'ZHAAAA','PMBAAA','VVVVxx' +960,1004,0,0,0,0,60,960,960,960,960,120,121,'YKAAAA','QMBAAA','AAAAxx' +1213,1005,1,1,3,13,13,213,1213,1213,1213,26,27,'RUAAAA','RMBAAA','HHHHxx' +1845,1006,1,1,5,5,45,845,1845,1845,1845,90,91,'ZSAAAA','SMBAAA','OOOOxx' +6944,1007,0,0,4,4,44,944,944,1944,6944,88,89,'CHAAAA','TMBAAA','VVVVxx' +5284,1008,0,0,4,4,84,284,1284,284,5284,168,169,'GVAAAA','UMBAAA','AAAAxx' +188,1009,0,0,8,8,88,188,188,188,188,176,177,'GHAAAA','VMBAAA','HHHHxx' +748,1010,0,0,8,8,48,748,748,748,748,96,97,'UCAAAA','WMBAAA','OOOOxx' +2226,1011,0,2,6,6,26,226,226,2226,2226,52,53,'QHAAAA','XMBAAA','VVVVxx' +7342,1012,0,2,2,2,42,342,1342,2342,7342,84,85,'KWAAAA','YMBAAA','AAAAxx' +6120,1013,0,0,0,0,20,120,120,1120,6120,40,41,'KBAAAA','ZMBAAA','HHHHxx' +536,1014,0,0,6,16,36,536,536,536,536,72,73,'QUAAAA','ANBAAA','OOOOxx' +3239,1015,1,3,9,19,39,239,1239,3239,3239,78,79,'PUAAAA','BNBAAA','VVVVxx' +2832,1016,0,0,2,12,32,832,832,2832,2832,64,65,'YEAAAA','CNBAAA','AAAAxx' +5296,1017,0,0,6,16,96,296,1296,296,5296,192,193,'SVAAAA','DNBAAA','HHHHxx' +5795,1018,1,3,5,15,95,795,1795,795,5795,190,191,'XOAAAA','ENBAAA','OOOOxx' +6290,1019,0,2,0,10,90,290,290,1290,6290,180,181,'YHAAAA','FNBAAA','VVVVxx' +4916,1020,0,0,6,16,16,916,916,4916,4916,32,33,'CHAAAA','GNBAAA','AAAAxx' +8366,1021,0,2,6,6,66,366,366,3366,8366,132,133,'UJAAAA','HNBAAA','HHHHxx' +4248,1022,0,0,8,8,48,248,248,4248,4248,96,97,'KHAAAA','INBAAA','OOOOxx' +6460,1023,0,0,0,0,60,460,460,1460,6460,120,121,'MOAAAA','JNBAAA','VVVVxx' +9296,1024,0,0,6,16,96,296,1296,4296,9296,192,193,'OTAAAA','KNBAAA','AAAAxx' +3486,1025,0,2,6,6,86,486,1486,3486,3486,172,173,'CEAAAA','LNBAAA','HHHHxx' +5664,1026,0,0,4,4,64,664,1664,664,5664,128,129,'WJAAAA','MNBAAA','OOOOxx' +7624,1027,0,0,4,4,24,624,1624,2624,7624,48,49,'GHAAAA','NNBAAA','VVVVxx' +2790,1028,0,2,0,10,90,790,790,2790,2790,180,181,'IDAAAA','ONBAAA','AAAAxx' +682,1029,0,2,2,2,82,682,682,682,682,164,165,'GAAAAA','PNBAAA','HHHHxx' +6412,1030,0,0,2,12,12,412,412,1412,6412,24,25,'QMAAAA','QNBAAA','OOOOxx' +6882,1031,0,2,2,2,82,882,882,1882,6882,164,165,'SEAAAA','RNBAAA','VVVVxx' +1332,1032,0,0,2,12,32,332,1332,1332,1332,64,65,'GZAAAA','SNBAAA','AAAAxx' +4911,1033,1,3,1,11,11,911,911,4911,4911,22,23,'XGAAAA','TNBAAA','HHHHxx' +3528,1034,0,0,8,8,28,528,1528,3528,3528,56,57,'SFAAAA','UNBAAA','OOOOxx' +271,1035,1,3,1,11,71,271,271,271,271,142,143,'LKAAAA','VNBAAA','VVVVxx' +7007,1036,1,3,7,7,7,7,1007,2007,7007,14,15,'NJAAAA','WNBAAA','AAAAxx' +2198,1037,0,2,8,18,98,198,198,2198,2198,196,197,'OGAAAA','XNBAAA','HHHHxx' +4266,1038,0,2,6,6,66,266,266,4266,4266,132,133,'CIAAAA','YNBAAA','OOOOxx' +9867,1039,1,3,7,7,67,867,1867,4867,9867,134,135,'NPAAAA','ZNBAAA','VVVVxx' +7602,1040,0,2,2,2,2,602,1602,2602,7602,4,5,'KGAAAA','AOBAAA','AAAAxx' +7521,1041,1,1,1,1,21,521,1521,2521,7521,42,43,'HDAAAA','BOBAAA','HHHHxx' +7200,1042,0,0,0,0,0,200,1200,2200,7200,0,1,'YQAAAA','COBAAA','OOOOxx' +4816,1043,0,0,6,16,16,816,816,4816,4816,32,33,'GDAAAA','DOBAAA','VVVVxx' +1669,1044,1,1,9,9,69,669,1669,1669,1669,138,139,'FMAAAA','EOBAAA','AAAAxx' +4764,1045,0,0,4,4,64,764,764,4764,4764,128,129,'GBAAAA','FOBAAA','HHHHxx' +7393,1046,1,1,3,13,93,393,1393,2393,7393,186,187,'JYAAAA','GOBAAA','OOOOxx' +7434,1047,0,2,4,14,34,434,1434,2434,7434,68,69,'YZAAAA','HOBAAA','VVVVxx' +9079,1048,1,3,9,19,79,79,1079,4079,9079,158,159,'FLAAAA','IOBAAA','AAAAxx' +9668,1049,0,0,8,8,68,668,1668,4668,9668,136,137,'WHAAAA','JOBAAA','HHHHxx' +7184,1050,0,0,4,4,84,184,1184,2184,7184,168,169,'IQAAAA','KOBAAA','OOOOxx' +7347,1051,1,3,7,7,47,347,1347,2347,7347,94,95,'PWAAAA','LOBAAA','VVVVxx' +951,1052,1,3,1,11,51,951,951,951,951,102,103,'PKAAAA','MOBAAA','AAAAxx' +4513,1053,1,1,3,13,13,513,513,4513,4513,26,27,'PRAAAA','NOBAAA','HHHHxx' +2692,1054,0,0,2,12,92,692,692,2692,2692,184,185,'OZAAAA','OOBAAA','OOOOxx' +9930,1055,0,2,0,10,30,930,1930,4930,9930,60,61,'YRAAAA','POBAAA','VVVVxx' +4516,1056,0,0,6,16,16,516,516,4516,4516,32,33,'SRAAAA','QOBAAA','AAAAxx' +1592,1057,0,0,2,12,92,592,1592,1592,1592,184,185,'GJAAAA','ROBAAA','HHHHxx' +6312,1058,0,0,2,12,12,312,312,1312,6312,24,25,'UIAAAA','SOBAAA','OOOOxx' +185,1059,1,1,5,5,85,185,185,185,185,170,171,'DHAAAA','TOBAAA','VVVVxx' +1848,1060,0,0,8,8,48,848,1848,1848,1848,96,97,'CTAAAA','UOBAAA','AAAAxx' +5844,1061,0,0,4,4,44,844,1844,844,5844,88,89,'UQAAAA','VOBAAA','HHHHxx' +1666,1062,0,2,6,6,66,666,1666,1666,1666,132,133,'CMAAAA','WOBAAA','OOOOxx' +5864,1063,0,0,4,4,64,864,1864,864,5864,128,129,'ORAAAA','XOBAAA','VVVVxx' +1004,1064,0,0,4,4,4,4,1004,1004,1004,8,9,'QMAAAA','YOBAAA','AAAAxx' +1758,1065,0,2,8,18,58,758,1758,1758,1758,116,117,'QPAAAA','ZOBAAA','HHHHxx' +8823,1066,1,3,3,3,23,823,823,3823,8823,46,47,'JBAAAA','APBAAA','OOOOxx' +129,1067,1,1,9,9,29,129,129,129,129,58,59,'ZEAAAA','BPBAAA','VVVVxx' +5703,1068,1,3,3,3,3,703,1703,703,5703,6,7,'JLAAAA','CPBAAA','AAAAxx' +3331,1069,1,3,1,11,31,331,1331,3331,3331,62,63,'DYAAAA','DPBAAA','HHHHxx' +5791,1070,1,3,1,11,91,791,1791,791,5791,182,183,'TOAAAA','EPBAAA','OOOOxx' +4421,1071,1,1,1,1,21,421,421,4421,4421,42,43,'BOAAAA','FPBAAA','VVVVxx' +9740,1072,0,0,0,0,40,740,1740,4740,9740,80,81,'QKAAAA','GPBAAA','AAAAxx' +798,1073,0,2,8,18,98,798,798,798,798,196,197,'SEAAAA','HPBAAA','HHHHxx' +571,1074,1,3,1,11,71,571,571,571,571,142,143,'ZVAAAA','IPBAAA','OOOOxx' +7084,1075,0,0,4,4,84,84,1084,2084,7084,168,169,'MMAAAA','JPBAAA','VVVVxx' +650,1076,0,2,0,10,50,650,650,650,650,100,101,'AZAAAA','KPBAAA','AAAAxx' +1467,1077,1,3,7,7,67,467,1467,1467,1467,134,135,'LEAAAA','LPBAAA','HHHHxx' +5446,1078,0,2,6,6,46,446,1446,446,5446,92,93,'MBAAAA','MPBAAA','OOOOxx' +830,1079,0,2,0,10,30,830,830,830,830,60,61,'YFAAAA','NPBAAA','VVVVxx' +5516,1080,0,0,6,16,16,516,1516,516,5516,32,33,'EEAAAA','OPBAAA','AAAAxx' +8520,1081,0,0,0,0,20,520,520,3520,8520,40,41,'SPAAAA','PPBAAA','HHHHxx' +1152,1082,0,0,2,12,52,152,1152,1152,1152,104,105,'ISAAAA','QPBAAA','OOOOxx' +862,1083,0,2,2,2,62,862,862,862,862,124,125,'EHAAAA','RPBAAA','VVVVxx' +454,1084,0,2,4,14,54,454,454,454,454,108,109,'MRAAAA','SPBAAA','AAAAxx' +9956,1085,0,0,6,16,56,956,1956,4956,9956,112,113,'YSAAAA','TPBAAA','HHHHxx' +1654,1086,0,2,4,14,54,654,1654,1654,1654,108,109,'QLAAAA','UPBAAA','OOOOxx' +257,1087,1,1,7,17,57,257,257,257,257,114,115,'XJAAAA','VPBAAA','VVVVxx' +5469,1088,1,1,9,9,69,469,1469,469,5469,138,139,'JCAAAA','WPBAAA','AAAAxx' +9075,1089,1,3,5,15,75,75,1075,4075,9075,150,151,'BLAAAA','XPBAAA','HHHHxx' +7799,1090,1,3,9,19,99,799,1799,2799,7799,198,199,'ZNAAAA','YPBAAA','OOOOxx' +2001,1091,1,1,1,1,1,1,1,2001,2001,2,3,'ZYAAAA','ZPBAAA','VVVVxx' +9786,1092,0,2,6,6,86,786,1786,4786,9786,172,173,'KMAAAA','AQBAAA','AAAAxx' +7281,1093,1,1,1,1,81,281,1281,2281,7281,162,163,'BUAAAA','BQBAAA','HHHHxx' +5137,1094,1,1,7,17,37,137,1137,137,5137,74,75,'PPAAAA','CQBAAA','OOOOxx' +4053,1095,1,1,3,13,53,53,53,4053,4053,106,107,'XZAAAA','DQBAAA','VVVVxx' +7911,1096,1,3,1,11,11,911,1911,2911,7911,22,23,'HSAAAA','EQBAAA','AAAAxx' +4298,1097,0,2,8,18,98,298,298,4298,4298,196,197,'IJAAAA','FQBAAA','HHHHxx' +4805,1098,1,1,5,5,5,805,805,4805,4805,10,11,'VCAAAA','GQBAAA','OOOOxx' +9038,1099,0,2,8,18,38,38,1038,4038,9038,76,77,'QJAAAA','HQBAAA','VVVVxx' +8023,1100,1,3,3,3,23,23,23,3023,8023,46,47,'PWAAAA','IQBAAA','AAAAxx' +6595,1101,1,3,5,15,95,595,595,1595,6595,190,191,'RTAAAA','JQBAAA','HHHHxx' +9831,1102,1,3,1,11,31,831,1831,4831,9831,62,63,'DOAAAA','KQBAAA','OOOOxx' +788,1103,0,0,8,8,88,788,788,788,788,176,177,'IEAAAA','LQBAAA','VVVVxx' +902,1104,0,2,2,2,2,902,902,902,902,4,5,'SIAAAA','MQBAAA','AAAAxx' +9137,1105,1,1,7,17,37,137,1137,4137,9137,74,75,'LNAAAA','NQBAAA','HHHHxx' +1744,1106,0,0,4,4,44,744,1744,1744,1744,88,89,'CPAAAA','OQBAAA','OOOOxx' +7285,1107,1,1,5,5,85,285,1285,2285,7285,170,171,'FUAAAA','PQBAAA','VVVVxx' +7006,1108,0,2,6,6,6,6,1006,2006,7006,12,13,'MJAAAA','QQBAAA','AAAAxx' +9236,1109,0,0,6,16,36,236,1236,4236,9236,72,73,'GRAAAA','RQBAAA','HHHHxx' +5472,1110,0,0,2,12,72,472,1472,472,5472,144,145,'MCAAAA','SQBAAA','OOOOxx' +7975,1111,1,3,5,15,75,975,1975,2975,7975,150,151,'TUAAAA','TQBAAA','VVVVxx' +4181,1112,1,1,1,1,81,181,181,4181,4181,162,163,'VEAAAA','UQBAAA','AAAAxx' +7677,1113,1,1,7,17,77,677,1677,2677,7677,154,155,'HJAAAA','VQBAAA','HHHHxx' +35,1114,1,3,5,15,35,35,35,35,35,70,71,'JBAAAA','WQBAAA','OOOOxx' +6813,1115,1,1,3,13,13,813,813,1813,6813,26,27,'BCAAAA','XQBAAA','VVVVxx' +6618,1116,0,2,8,18,18,618,618,1618,6618,36,37,'OUAAAA','YQBAAA','AAAAxx' +8069,1117,1,1,9,9,69,69,69,3069,8069,138,139,'JYAAAA','ZQBAAA','HHHHxx' +3071,1118,1,3,1,11,71,71,1071,3071,3071,142,143,'DOAAAA','ARBAAA','OOOOxx' +4390,1119,0,2,0,10,90,390,390,4390,4390,180,181,'WMAAAA','BRBAAA','VVVVxx' +7764,1120,0,0,4,4,64,764,1764,2764,7764,128,129,'QMAAAA','CRBAAA','AAAAxx' +8163,1121,1,3,3,3,63,163,163,3163,8163,126,127,'ZBAAAA','DRBAAA','HHHHxx' +1961,1122,1,1,1,1,61,961,1961,1961,1961,122,123,'LXAAAA','ERBAAA','OOOOxx' +1103,1123,1,3,3,3,3,103,1103,1103,1103,6,7,'LQAAAA','FRBAAA','VVVVxx' +5486,1124,0,2,6,6,86,486,1486,486,5486,172,173,'ADAAAA','GRBAAA','AAAAxx' +9513,1125,1,1,3,13,13,513,1513,4513,9513,26,27,'XBAAAA','HRBAAA','HHHHxx' +7311,1126,1,3,1,11,11,311,1311,2311,7311,22,23,'FVAAAA','IRBAAA','OOOOxx' +4144,1127,0,0,4,4,44,144,144,4144,4144,88,89,'KDAAAA','JRBAAA','VVVVxx' +7901,1128,1,1,1,1,1,901,1901,2901,7901,2,3,'XRAAAA','KRBAAA','AAAAxx' +4629,1129,1,1,9,9,29,629,629,4629,4629,58,59,'BWAAAA','LRBAAA','HHHHxx' +6858,1130,0,2,8,18,58,858,858,1858,6858,116,117,'UDAAAA','MRBAAA','OOOOxx' +125,1131,1,1,5,5,25,125,125,125,125,50,51,'VEAAAA','NRBAAA','VVVVxx' +3834,1132,0,2,4,14,34,834,1834,3834,3834,68,69,'MRAAAA','ORBAAA','AAAAxx' +8155,1133,1,3,5,15,55,155,155,3155,8155,110,111,'RBAAAA','PRBAAA','HHHHxx' +8230,1134,0,2,0,10,30,230,230,3230,8230,60,61,'OEAAAA','QRBAAA','OOOOxx' +744,1135,0,0,4,4,44,744,744,744,744,88,89,'QCAAAA','RRBAAA','VVVVxx' +357,1136,1,1,7,17,57,357,357,357,357,114,115,'TNAAAA','SRBAAA','AAAAxx' +2159,1137,1,3,9,19,59,159,159,2159,2159,118,119,'BFAAAA','TRBAAA','HHHHxx' +8559,1138,1,3,9,19,59,559,559,3559,8559,118,119,'FRAAAA','URBAAA','OOOOxx' +6866,1139,0,2,6,6,66,866,866,1866,6866,132,133,'CEAAAA','VRBAAA','VVVVxx' +3863,1140,1,3,3,3,63,863,1863,3863,3863,126,127,'PSAAAA','WRBAAA','AAAAxx' +4193,1141,1,1,3,13,93,193,193,4193,4193,186,187,'HFAAAA','XRBAAA','HHHHxx' +3277,1142,1,1,7,17,77,277,1277,3277,3277,154,155,'BWAAAA','YRBAAA','OOOOxx' +5577,1143,1,1,7,17,77,577,1577,577,5577,154,155,'NGAAAA','ZRBAAA','VVVVxx' +9503,1144,1,3,3,3,3,503,1503,4503,9503,6,7,'NBAAAA','ASBAAA','AAAAxx' +7642,1145,0,2,2,2,42,642,1642,2642,7642,84,85,'YHAAAA','BSBAAA','HHHHxx' +6197,1146,1,1,7,17,97,197,197,1197,6197,194,195,'JEAAAA','CSBAAA','OOOOxx' +8995,1147,1,3,5,15,95,995,995,3995,8995,190,191,'ZHAAAA','DSBAAA','VVVVxx' +440,1148,0,0,0,0,40,440,440,440,440,80,81,'YQAAAA','ESBAAA','AAAAxx' +8418,1149,0,2,8,18,18,418,418,3418,8418,36,37,'ULAAAA','FSBAAA','HHHHxx' +8531,1150,1,3,1,11,31,531,531,3531,8531,62,63,'DQAAAA','GSBAAA','OOOOxx' +3790,1151,0,2,0,10,90,790,1790,3790,3790,180,181,'UPAAAA','HSBAAA','VVVVxx' +7610,1152,0,2,0,10,10,610,1610,2610,7610,20,21,'SGAAAA','ISBAAA','AAAAxx' +1252,1153,0,0,2,12,52,252,1252,1252,1252,104,105,'EWAAAA','JSBAAA','HHHHxx' +7559,1154,1,3,9,19,59,559,1559,2559,7559,118,119,'TEAAAA','KSBAAA','OOOOxx' +9945,1155,1,1,5,5,45,945,1945,4945,9945,90,91,'NSAAAA','LSBAAA','VVVVxx' +9023,1156,1,3,3,3,23,23,1023,4023,9023,46,47,'BJAAAA','MSBAAA','AAAAxx' +3516,1157,0,0,6,16,16,516,1516,3516,3516,32,33,'GFAAAA','NSBAAA','HHHHxx' +4671,1158,1,3,1,11,71,671,671,4671,4671,142,143,'RXAAAA','OSBAAA','OOOOxx' +1465,1159,1,1,5,5,65,465,1465,1465,1465,130,131,'JEAAAA','PSBAAA','VVVVxx' +9515,1160,1,3,5,15,15,515,1515,4515,9515,30,31,'ZBAAAA','QSBAAA','AAAAxx' +3242,1161,0,2,2,2,42,242,1242,3242,3242,84,85,'SUAAAA','RSBAAA','HHHHxx' +1732,1162,0,0,2,12,32,732,1732,1732,1732,64,65,'QOAAAA','SSBAAA','OOOOxx' +1678,1163,0,2,8,18,78,678,1678,1678,1678,156,157,'OMAAAA','TSBAAA','VVVVxx' +1464,1164,0,0,4,4,64,464,1464,1464,1464,128,129,'IEAAAA','USBAAA','AAAAxx' +6546,1165,0,2,6,6,46,546,546,1546,6546,92,93,'URAAAA','VSBAAA','HHHHxx' +4448,1166,0,0,8,8,48,448,448,4448,4448,96,97,'CPAAAA','WSBAAA','OOOOxx' +9847,1167,1,3,7,7,47,847,1847,4847,9847,94,95,'TOAAAA','XSBAAA','VVVVxx' +8264,1168,0,0,4,4,64,264,264,3264,8264,128,129,'WFAAAA','YSBAAA','AAAAxx' +1620,1169,0,0,0,0,20,620,1620,1620,1620,40,41,'IKAAAA','ZSBAAA','HHHHxx' +9388,1170,0,0,8,8,88,388,1388,4388,9388,176,177,'CXAAAA','ATBAAA','OOOOxx' +6445,1171,1,1,5,5,45,445,445,1445,6445,90,91,'XNAAAA','BTBAAA','VVVVxx' +4789,1172,1,1,9,9,89,789,789,4789,4789,178,179,'FCAAAA','CTBAAA','AAAAxx' +1562,1173,0,2,2,2,62,562,1562,1562,1562,124,125,'CIAAAA','DTBAAA','HHHHxx' +7305,1174,1,1,5,5,5,305,1305,2305,7305,10,11,'ZUAAAA','ETBAAA','OOOOxx' +6344,1175,0,0,4,4,44,344,344,1344,6344,88,89,'AKAAAA','FTBAAA','VVVVxx' +5130,1176,0,2,0,10,30,130,1130,130,5130,60,61,'IPAAAA','GTBAAA','AAAAxx' +3284,1177,0,0,4,4,84,284,1284,3284,3284,168,169,'IWAAAA','HTBAAA','HHHHxx' +6346,1178,0,2,6,6,46,346,346,1346,6346,92,93,'CKAAAA','ITBAAA','OOOOxx' +1061,1179,1,1,1,1,61,61,1061,1061,1061,122,123,'VOAAAA','JTBAAA','VVVVxx' +872,1180,0,0,2,12,72,872,872,872,872,144,145,'OHAAAA','KTBAAA','AAAAxx' +123,1181,1,3,3,3,23,123,123,123,123,46,47,'TEAAAA','LTBAAA','HHHHxx' +7903,1182,1,3,3,3,3,903,1903,2903,7903,6,7,'ZRAAAA','MTBAAA','OOOOxx' +560,1183,0,0,0,0,60,560,560,560,560,120,121,'OVAAAA','NTBAAA','VVVVxx' +4446,1184,0,2,6,6,46,446,446,4446,4446,92,93,'APAAAA','OTBAAA','AAAAxx' +3909,1185,1,1,9,9,9,909,1909,3909,3909,18,19,'JUAAAA','PTBAAA','HHHHxx' +669,1186,1,1,9,9,69,669,669,669,669,138,139,'TZAAAA','QTBAAA','OOOOxx' +7843,1187,1,3,3,3,43,843,1843,2843,7843,86,87,'RPAAAA','RTBAAA','VVVVxx' +2546,1188,0,2,6,6,46,546,546,2546,2546,92,93,'YTAAAA','STBAAA','AAAAxx' +6757,1189,1,1,7,17,57,757,757,1757,6757,114,115,'XZAAAA','TTBAAA','HHHHxx' +466,1190,0,2,6,6,66,466,466,466,466,132,133,'YRAAAA','UTBAAA','OOOOxx' +5556,1191,0,0,6,16,56,556,1556,556,5556,112,113,'SFAAAA','VTBAAA','VVVVxx' +7196,1192,0,0,6,16,96,196,1196,2196,7196,192,193,'UQAAAA','WTBAAA','AAAAxx' +2947,1193,1,3,7,7,47,947,947,2947,2947,94,95,'JJAAAA','XTBAAA','HHHHxx' +6493,1194,1,1,3,13,93,493,493,1493,6493,186,187,'TPAAAA','YTBAAA','OOOOxx' +7203,1195,1,3,3,3,3,203,1203,2203,7203,6,7,'BRAAAA','ZTBAAA','VVVVxx' +3716,1196,0,0,6,16,16,716,1716,3716,3716,32,33,'YMAAAA','AUBAAA','AAAAxx' +8058,1197,0,2,8,18,58,58,58,3058,8058,116,117,'YXAAAA','BUBAAA','HHHHxx' +433,1198,1,1,3,13,33,433,433,433,433,66,67,'RQAAAA','CUBAAA','OOOOxx' +7649,1199,1,1,9,9,49,649,1649,2649,7649,98,99,'FIAAAA','DUBAAA','VVVVxx' +6966,1200,0,2,6,6,66,966,966,1966,6966,132,133,'YHAAAA','EUBAAA','AAAAxx' +553,1201,1,1,3,13,53,553,553,553,553,106,107,'HVAAAA','FUBAAA','HHHHxx' +3677,1202,1,1,7,17,77,677,1677,3677,3677,154,155,'LLAAAA','GUBAAA','OOOOxx' +2344,1203,0,0,4,4,44,344,344,2344,2344,88,89,'EMAAAA','HUBAAA','VVVVxx' +7439,1204,1,3,9,19,39,439,1439,2439,7439,78,79,'DAAAAA','IUBAAA','AAAAxx' +3910,1205,0,2,0,10,10,910,1910,3910,3910,20,21,'KUAAAA','JUBAAA','HHHHxx' +3638,1206,0,2,8,18,38,638,1638,3638,3638,76,77,'YJAAAA','KUBAAA','OOOOxx' +6637,1207,1,1,7,17,37,637,637,1637,6637,74,75,'HVAAAA','LUBAAA','VVVVxx' +4438,1208,0,2,8,18,38,438,438,4438,4438,76,77,'SOAAAA','MUBAAA','AAAAxx' +171,1209,1,3,1,11,71,171,171,171,171,142,143,'PGAAAA','NUBAAA','HHHHxx' +310,1210,0,2,0,10,10,310,310,310,310,20,21,'YLAAAA','OUBAAA','OOOOxx' +2714,1211,0,2,4,14,14,714,714,2714,2714,28,29,'KAAAAA','PUBAAA','VVVVxx' +5199,1212,1,3,9,19,99,199,1199,199,5199,198,199,'ZRAAAA','QUBAAA','AAAAxx' +8005,1213,1,1,5,5,5,5,5,3005,8005,10,11,'XVAAAA','RUBAAA','HHHHxx' +3188,1214,0,0,8,8,88,188,1188,3188,3188,176,177,'QSAAAA','SUBAAA','OOOOxx' +1518,1215,0,2,8,18,18,518,1518,1518,1518,36,37,'KGAAAA','TUBAAA','VVVVxx' +6760,1216,0,0,0,0,60,760,760,1760,6760,120,121,'AAAAAA','UUBAAA','AAAAxx' +9373,1217,1,1,3,13,73,373,1373,4373,9373,146,147,'NWAAAA','VUBAAA','HHHHxx' +1938,1218,0,2,8,18,38,938,1938,1938,1938,76,77,'OWAAAA','WUBAAA','OOOOxx' +2865,1219,1,1,5,5,65,865,865,2865,2865,130,131,'FGAAAA','XUBAAA','VVVVxx' +3203,1220,1,3,3,3,3,203,1203,3203,3203,6,7,'FTAAAA','YUBAAA','AAAAxx' +6025,1221,1,1,5,5,25,25,25,1025,6025,50,51,'TXAAAA','ZUBAAA','HHHHxx' +8684,1222,0,0,4,4,84,684,684,3684,8684,168,169,'AWAAAA','AVBAAA','OOOOxx' +7732,1223,0,0,2,12,32,732,1732,2732,7732,64,65,'KLAAAA','BVBAAA','VVVVxx' +3218,1224,0,2,8,18,18,218,1218,3218,3218,36,37,'UTAAAA','CVBAAA','AAAAxx' +525,1225,1,1,5,5,25,525,525,525,525,50,51,'FUAAAA','DVBAAA','HHHHxx' +601,1226,1,1,1,1,1,601,601,601,601,2,3,'DXAAAA','EVBAAA','OOOOxx' +6091,1227,1,3,1,11,91,91,91,1091,6091,182,183,'HAAAAA','FVBAAA','VVVVxx' +4498,1228,0,2,8,18,98,498,498,4498,4498,196,197,'ARAAAA','GVBAAA','AAAAxx' +8192,1229,0,0,2,12,92,192,192,3192,8192,184,185,'CDAAAA','HVBAAA','HHHHxx' +8006,1230,0,2,6,6,6,6,6,3006,8006,12,13,'YVAAAA','IVBAAA','OOOOxx' +6157,1231,1,1,7,17,57,157,157,1157,6157,114,115,'VCAAAA','JVBAAA','VVVVxx' +312,1232,0,0,2,12,12,312,312,312,312,24,25,'AMAAAA','KVBAAA','AAAAxx' +8652,1233,0,0,2,12,52,652,652,3652,8652,104,105,'UUAAAA','LVBAAA','HHHHxx' +2787,1234,1,3,7,7,87,787,787,2787,2787,174,175,'FDAAAA','MVBAAA','OOOOxx' +1782,1235,0,2,2,2,82,782,1782,1782,1782,164,165,'OQAAAA','NVBAAA','VVVVxx' +23,1236,1,3,3,3,23,23,23,23,23,46,47,'XAAAAA','OVBAAA','AAAAxx' +1206,1237,0,2,6,6,6,206,1206,1206,1206,12,13,'KUAAAA','PVBAAA','HHHHxx' +1076,1238,0,0,6,16,76,76,1076,1076,1076,152,153,'KPAAAA','QVBAAA','OOOOxx' +5379,1239,1,3,9,19,79,379,1379,379,5379,158,159,'XYAAAA','RVBAAA','VVVVxx' +2047,1240,1,3,7,7,47,47,47,2047,2047,94,95,'TAAAAA','SVBAAA','AAAAxx' +6262,1241,0,2,2,2,62,262,262,1262,6262,124,125,'WGAAAA','TVBAAA','HHHHxx' +1840,1242,0,0,0,0,40,840,1840,1840,1840,80,81,'USAAAA','UVBAAA','OOOOxx' +2106,1243,0,2,6,6,6,106,106,2106,2106,12,13,'ADAAAA','VVBAAA','VVVVxx' +1307,1244,1,3,7,7,7,307,1307,1307,1307,14,15,'HYAAAA','WVBAAA','AAAAxx' +735,1245,1,3,5,15,35,735,735,735,735,70,71,'HCAAAA','XVBAAA','HHHHxx' +3657,1246,1,1,7,17,57,657,1657,3657,3657,114,115,'RKAAAA','YVBAAA','OOOOxx' +3006,1247,0,2,6,6,6,6,1006,3006,3006,12,13,'QLAAAA','ZVBAAA','VVVVxx' +1538,1248,0,2,8,18,38,538,1538,1538,1538,76,77,'EHAAAA','AWBAAA','AAAAxx' +6098,1249,0,2,8,18,98,98,98,1098,6098,196,197,'OAAAAA','BWBAAA','HHHHxx' +5267,1250,1,3,7,7,67,267,1267,267,5267,134,135,'PUAAAA','CWBAAA','OOOOxx' +9757,1251,1,1,7,17,57,757,1757,4757,9757,114,115,'HLAAAA','DWBAAA','VVVVxx' +1236,1252,0,0,6,16,36,236,1236,1236,1236,72,73,'OVAAAA','EWBAAA','AAAAxx' +83,1253,1,3,3,3,83,83,83,83,83,166,167,'FDAAAA','FWBAAA','HHHHxx' +9227,1254,1,3,7,7,27,227,1227,4227,9227,54,55,'XQAAAA','GWBAAA','OOOOxx' +8772,1255,0,0,2,12,72,772,772,3772,8772,144,145,'KZAAAA','HWBAAA','VVVVxx' +8822,1256,0,2,2,2,22,822,822,3822,8822,44,45,'IBAAAA','IWBAAA','AAAAxx' +7167,1257,1,3,7,7,67,167,1167,2167,7167,134,135,'RPAAAA','JWBAAA','HHHHxx' +6909,1258,1,1,9,9,9,909,909,1909,6909,18,19,'TFAAAA','KWBAAA','OOOOxx' +1439,1259,1,3,9,19,39,439,1439,1439,1439,78,79,'JDAAAA','LWBAAA','VVVVxx' +2370,1260,0,2,0,10,70,370,370,2370,2370,140,141,'ENAAAA','MWBAAA','AAAAxx' +4577,1261,1,1,7,17,77,577,577,4577,4577,154,155,'BUAAAA','NWBAAA','HHHHxx' +2575,1262,1,3,5,15,75,575,575,2575,2575,150,151,'BVAAAA','OWBAAA','OOOOxx' +2795,1263,1,3,5,15,95,795,795,2795,2795,190,191,'NDAAAA','PWBAAA','VVVVxx' +5520,1264,0,0,0,0,20,520,1520,520,5520,40,41,'IEAAAA','QWBAAA','AAAAxx' +382,1265,0,2,2,2,82,382,382,382,382,164,165,'SOAAAA','RWBAAA','HHHHxx' +6335,1266,1,3,5,15,35,335,335,1335,6335,70,71,'RJAAAA','SWBAAA','OOOOxx' +8430,1267,0,2,0,10,30,430,430,3430,8430,60,61,'GMAAAA','TWBAAA','VVVVxx' +4131,1268,1,3,1,11,31,131,131,4131,4131,62,63,'XCAAAA','UWBAAA','AAAAxx' +9332,1269,0,0,2,12,32,332,1332,4332,9332,64,65,'YUAAAA','VWBAAA','HHHHxx' +293,1270,1,1,3,13,93,293,293,293,293,186,187,'HLAAAA','WWBAAA','OOOOxx' +2276,1271,0,0,6,16,76,276,276,2276,2276,152,153,'OJAAAA','XWBAAA','VVVVxx' +5687,1272,1,3,7,7,87,687,1687,687,5687,174,175,'TKAAAA','YWBAAA','AAAAxx' +5862,1273,0,2,2,2,62,862,1862,862,5862,124,125,'MRAAAA','ZWBAAA','HHHHxx' +5073,1274,1,1,3,13,73,73,1073,73,5073,146,147,'DNAAAA','AXBAAA','OOOOxx' +4170,1275,0,2,0,10,70,170,170,4170,4170,140,141,'KEAAAA','BXBAAA','VVVVxx' +5039,1276,1,3,9,19,39,39,1039,39,5039,78,79,'VLAAAA','CXBAAA','AAAAxx' +3294,1277,0,2,4,14,94,294,1294,3294,3294,188,189,'SWAAAA','DXBAAA','HHHHxx' +6015,1278,1,3,5,15,15,15,15,1015,6015,30,31,'JXAAAA','EXBAAA','OOOOxx' +9015,1279,1,3,5,15,15,15,1015,4015,9015,30,31,'TIAAAA','FXBAAA','VVVVxx' +9785,1280,1,1,5,5,85,785,1785,4785,9785,170,171,'JMAAAA','GXBAAA','AAAAxx' +4312,1281,0,0,2,12,12,312,312,4312,4312,24,25,'WJAAAA','HXBAAA','HHHHxx' +6343,1282,1,3,3,3,43,343,343,1343,6343,86,87,'ZJAAAA','IXBAAA','OOOOxx' +2161,1283,1,1,1,1,61,161,161,2161,2161,122,123,'DFAAAA','JXBAAA','VVVVxx' +4490,1284,0,2,0,10,90,490,490,4490,4490,180,181,'SQAAAA','KXBAAA','AAAAxx' +4454,1285,0,2,4,14,54,454,454,4454,4454,108,109,'IPAAAA','LXBAAA','HHHHxx' +7647,1286,1,3,7,7,47,647,1647,2647,7647,94,95,'DIAAAA','MXBAAA','OOOOxx' +1028,1287,0,0,8,8,28,28,1028,1028,1028,56,57,'ONAAAA','NXBAAA','VVVVxx' +2965,1288,1,1,5,5,65,965,965,2965,2965,130,131,'BKAAAA','OXBAAA','AAAAxx' +9900,1289,0,0,0,0,0,900,1900,4900,9900,0,1,'UQAAAA','PXBAAA','HHHHxx' +5509,1290,1,1,9,9,9,509,1509,509,5509,18,19,'XDAAAA','QXBAAA','OOOOxx' +7751,1291,1,3,1,11,51,751,1751,2751,7751,102,103,'DMAAAA','RXBAAA','VVVVxx' +9594,1292,0,2,4,14,94,594,1594,4594,9594,188,189,'AFAAAA','SXBAAA','AAAAxx' +7632,1293,0,0,2,12,32,632,1632,2632,7632,64,65,'OHAAAA','TXBAAA','HHHHxx' +6528,1294,0,0,8,8,28,528,528,1528,6528,56,57,'CRAAAA','UXBAAA','OOOOxx' +1041,1295,1,1,1,1,41,41,1041,1041,1041,82,83,'BOAAAA','VXBAAA','VVVVxx' +1534,1296,0,2,4,14,34,534,1534,1534,1534,68,69,'AHAAAA','WXBAAA','AAAAxx' +4229,1297,1,1,9,9,29,229,229,4229,4229,58,59,'RGAAAA','XXBAAA','HHHHxx' +84,1298,0,0,4,4,84,84,84,84,84,168,169,'GDAAAA','YXBAAA','OOOOxx' +2189,1299,1,1,9,9,89,189,189,2189,2189,178,179,'FGAAAA','ZXBAAA','VVVVxx' +7566,1300,0,2,6,6,66,566,1566,2566,7566,132,133,'AFAAAA','AYBAAA','AAAAxx' +707,1301,1,3,7,7,7,707,707,707,707,14,15,'FBAAAA','BYBAAA','HHHHxx' +581,1302,1,1,1,1,81,581,581,581,581,162,163,'JWAAAA','CYBAAA','OOOOxx' +6753,1303,1,1,3,13,53,753,753,1753,6753,106,107,'TZAAAA','DYBAAA','VVVVxx' +8604,1304,0,0,4,4,4,604,604,3604,8604,8,9,'YSAAAA','EYBAAA','AAAAxx' +373,1305,1,1,3,13,73,373,373,373,373,146,147,'JOAAAA','FYBAAA','HHHHxx' +9635,1306,1,3,5,15,35,635,1635,4635,9635,70,71,'PGAAAA','GYBAAA','OOOOxx' +9277,1307,1,1,7,17,77,277,1277,4277,9277,154,155,'VSAAAA','HYBAAA','VVVVxx' +7117,1308,1,1,7,17,17,117,1117,2117,7117,34,35,'TNAAAA','IYBAAA','AAAAxx' +8564,1309,0,0,4,4,64,564,564,3564,8564,128,129,'KRAAAA','JYBAAA','HHHHxx' +1697,1310,1,1,7,17,97,697,1697,1697,1697,194,195,'HNAAAA','KYBAAA','OOOOxx' +7840,1311,0,0,0,0,40,840,1840,2840,7840,80,81,'OPAAAA','LYBAAA','VVVVxx' +3646,1312,0,2,6,6,46,646,1646,3646,3646,92,93,'GKAAAA','MYBAAA','AAAAxx' +368,1313,0,0,8,8,68,368,368,368,368,136,137,'EOAAAA','NYBAAA','HHHHxx' +4797,1314,1,1,7,17,97,797,797,4797,4797,194,195,'NCAAAA','OYBAAA','OOOOxx' +5300,1315,0,0,0,0,0,300,1300,300,5300,0,1,'WVAAAA','PYBAAA','VVVVxx' +7664,1316,0,0,4,4,64,664,1664,2664,7664,128,129,'UIAAAA','QYBAAA','AAAAxx' +1466,1317,0,2,6,6,66,466,1466,1466,1466,132,133,'KEAAAA','RYBAAA','HHHHxx' +2477,1318,1,1,7,17,77,477,477,2477,2477,154,155,'HRAAAA','SYBAAA','OOOOxx' +2036,1319,0,0,6,16,36,36,36,2036,2036,72,73,'IAAAAA','TYBAAA','VVVVxx' +3624,1320,0,0,4,4,24,624,1624,3624,3624,48,49,'KJAAAA','UYBAAA','AAAAxx' +5099,1321,1,3,9,19,99,99,1099,99,5099,198,199,'DOAAAA','VYBAAA','HHHHxx' +1308,1322,0,0,8,8,8,308,1308,1308,1308,16,17,'IYAAAA','WYBAAA','OOOOxx' +3704,1323,0,0,4,4,4,704,1704,3704,3704,8,9,'MMAAAA','XYBAAA','VVVVxx' +2451,1324,1,3,1,11,51,451,451,2451,2451,102,103,'HQAAAA','YYBAAA','AAAAxx' +4898,1325,0,2,8,18,98,898,898,4898,4898,196,197,'KGAAAA','ZYBAAA','HHHHxx' +4959,1326,1,3,9,19,59,959,959,4959,4959,118,119,'TIAAAA','AZBAAA','OOOOxx' +5942,1327,0,2,2,2,42,942,1942,942,5942,84,85,'OUAAAA','BZBAAA','VVVVxx' +2425,1328,1,1,5,5,25,425,425,2425,2425,50,51,'HPAAAA','CZBAAA','AAAAxx' +7760,1329,0,0,0,0,60,760,1760,2760,7760,120,121,'MMAAAA','DZBAAA','HHHHxx' +6294,1330,0,2,4,14,94,294,294,1294,6294,188,189,'CIAAAA','EZBAAA','OOOOxx' +6785,1331,1,1,5,5,85,785,785,1785,6785,170,171,'ZAAAAA','FZBAAA','VVVVxx' +3542,1332,0,2,2,2,42,542,1542,3542,3542,84,85,'GGAAAA','GZBAAA','AAAAxx' +1809,1333,1,1,9,9,9,809,1809,1809,1809,18,19,'PRAAAA','HZBAAA','HHHHxx' +130,1334,0,2,0,10,30,130,130,130,130,60,61,'AFAAAA','IZBAAA','OOOOxx' +8672,1335,0,0,2,12,72,672,672,3672,8672,144,145,'OVAAAA','JZBAAA','VVVVxx' +2125,1336,1,1,5,5,25,125,125,2125,2125,50,51,'TDAAAA','KZBAAA','AAAAxx' +7683,1337,1,3,3,3,83,683,1683,2683,7683,166,167,'NJAAAA','LZBAAA','HHHHxx' +7842,1338,0,2,2,2,42,842,1842,2842,7842,84,85,'QPAAAA','MZBAAA','OOOOxx' +9584,1339,0,0,4,4,84,584,1584,4584,9584,168,169,'QEAAAA','NZBAAA','VVVVxx' +7963,1340,1,3,3,3,63,963,1963,2963,7963,126,127,'HUAAAA','OZBAAA','AAAAxx' +8581,1341,1,1,1,1,81,581,581,3581,8581,162,163,'BSAAAA','PZBAAA','HHHHxx' +2135,1342,1,3,5,15,35,135,135,2135,2135,70,71,'DEAAAA','QZBAAA','OOOOxx' +7352,1343,0,0,2,12,52,352,1352,2352,7352,104,105,'UWAAAA','RZBAAA','VVVVxx' +5789,1344,1,1,9,9,89,789,1789,789,5789,178,179,'ROAAAA','SZBAAA','AAAAxx' +8490,1345,0,2,0,10,90,490,490,3490,8490,180,181,'OOAAAA','TZBAAA','HHHHxx' +2145,1346,1,1,5,5,45,145,145,2145,2145,90,91,'NEAAAA','UZBAAA','OOOOxx' +7021,1347,1,1,1,1,21,21,1021,2021,7021,42,43,'BKAAAA','VZBAAA','VVVVxx' +3736,1348,0,0,6,16,36,736,1736,3736,3736,72,73,'SNAAAA','WZBAAA','AAAAxx' +7396,1349,0,0,6,16,96,396,1396,2396,7396,192,193,'MYAAAA','XZBAAA','HHHHxx' +6334,1350,0,2,4,14,34,334,334,1334,6334,68,69,'QJAAAA','YZBAAA','OOOOxx' +5461,1351,1,1,1,1,61,461,1461,461,5461,122,123,'BCAAAA','ZZBAAA','VVVVxx' +5337,1352,1,1,7,17,37,337,1337,337,5337,74,75,'HXAAAA','AACAAA','AAAAxx' +7440,1353,0,0,0,0,40,440,1440,2440,7440,80,81,'EAAAAA','BACAAA','HHHHxx' +6879,1354,1,3,9,19,79,879,879,1879,6879,158,159,'PEAAAA','CACAAA','OOOOxx' +2432,1355,0,0,2,12,32,432,432,2432,2432,64,65,'OPAAAA','DACAAA','VVVVxx' +8529,1356,1,1,9,9,29,529,529,3529,8529,58,59,'BQAAAA','EACAAA','AAAAxx' +7859,1357,1,3,9,19,59,859,1859,2859,7859,118,119,'HQAAAA','FACAAA','HHHHxx' +15,1358,1,3,5,15,15,15,15,15,15,30,31,'PAAAAA','GACAAA','OOOOxx' +7475,1359,1,3,5,15,75,475,1475,2475,7475,150,151,'NBAAAA','HACAAA','VVVVxx' +717,1360,1,1,7,17,17,717,717,717,717,34,35,'PBAAAA','IACAAA','AAAAxx' +250,1361,0,2,0,10,50,250,250,250,250,100,101,'QJAAAA','JACAAA','HHHHxx' +4700,1362,0,0,0,0,0,700,700,4700,4700,0,1,'UYAAAA','KACAAA','OOOOxx' +7510,1363,0,2,0,10,10,510,1510,2510,7510,20,21,'WCAAAA','LACAAA','VVVVxx' +4562,1364,0,2,2,2,62,562,562,4562,4562,124,125,'MTAAAA','MACAAA','AAAAxx' +8075,1365,1,3,5,15,75,75,75,3075,8075,150,151,'PYAAAA','NACAAA','HHHHxx' +871,1366,1,3,1,11,71,871,871,871,871,142,143,'NHAAAA','OACAAA','OOOOxx' +7161,1367,1,1,1,1,61,161,1161,2161,7161,122,123,'LPAAAA','PACAAA','VVVVxx' +9109,1368,1,1,9,9,9,109,1109,4109,9109,18,19,'JMAAAA','QACAAA','AAAAxx' +8675,1369,1,3,5,15,75,675,675,3675,8675,150,151,'RVAAAA','RACAAA','HHHHxx' +1025,1370,1,1,5,5,25,25,1025,1025,1025,50,51,'LNAAAA','SACAAA','OOOOxx' +4065,1371,1,1,5,5,65,65,65,4065,4065,130,131,'JAAAAA','TACAAA','VVVVxx' +3511,1372,1,3,1,11,11,511,1511,3511,3511,22,23,'BFAAAA','UACAAA','AAAAxx' +9840,1373,0,0,0,0,40,840,1840,4840,9840,80,81,'MOAAAA','VACAAA','HHHHxx' +7495,1374,1,3,5,15,95,495,1495,2495,7495,190,191,'HCAAAA','WACAAA','OOOOxx' +55,1375,1,3,5,15,55,55,55,55,55,110,111,'DCAAAA','XACAAA','VVVVxx' +6151,1376,1,3,1,11,51,151,151,1151,6151,102,103,'PCAAAA','YACAAA','AAAAxx' +2512,1377,0,0,2,12,12,512,512,2512,2512,24,25,'QSAAAA','ZACAAA','HHHHxx' +5881,1378,1,1,1,1,81,881,1881,881,5881,162,163,'FSAAAA','ABCAAA','OOOOxx' +1442,1379,0,2,2,2,42,442,1442,1442,1442,84,85,'MDAAAA','BBCAAA','VVVVxx' +1270,1380,0,2,0,10,70,270,1270,1270,1270,140,141,'WWAAAA','CBCAAA','AAAAxx' +959,1381,1,3,9,19,59,959,959,959,959,118,119,'XKAAAA','DBCAAA','HHHHxx' +8251,1382,1,3,1,11,51,251,251,3251,8251,102,103,'JFAAAA','EBCAAA','OOOOxx' +3051,1383,1,3,1,11,51,51,1051,3051,3051,102,103,'JNAAAA','FBCAAA','VVVVxx' +5052,1384,0,0,2,12,52,52,1052,52,5052,104,105,'IMAAAA','GBCAAA','AAAAxx' +1863,1385,1,3,3,3,63,863,1863,1863,1863,126,127,'RTAAAA','HBCAAA','HHHHxx' +344,1386,0,0,4,4,44,344,344,344,344,88,89,'GNAAAA','IBCAAA','OOOOxx' +3590,1387,0,2,0,10,90,590,1590,3590,3590,180,181,'CIAAAA','JBCAAA','VVVVxx' +4223,1388,1,3,3,3,23,223,223,4223,4223,46,47,'LGAAAA','KBCAAA','AAAAxx' +2284,1389,0,0,4,4,84,284,284,2284,2284,168,169,'WJAAAA','LBCAAA','HHHHxx' +9425,1390,1,1,5,5,25,425,1425,4425,9425,50,51,'NYAAAA','MBCAAA','OOOOxx' +6221,1391,1,1,1,1,21,221,221,1221,6221,42,43,'HFAAAA','NBCAAA','VVVVxx' +195,1392,1,3,5,15,95,195,195,195,195,190,191,'NHAAAA','OBCAAA','AAAAxx' +1517,1393,1,1,7,17,17,517,1517,1517,1517,34,35,'JGAAAA','PBCAAA','HHHHxx' +3791,1394,1,3,1,11,91,791,1791,3791,3791,182,183,'VPAAAA','QBCAAA','OOOOxx' +572,1395,0,0,2,12,72,572,572,572,572,144,145,'AWAAAA','RBCAAA','VVVVxx' +46,1396,0,2,6,6,46,46,46,46,46,92,93,'UBAAAA','SBCAAA','AAAAxx' +9451,1397,1,3,1,11,51,451,1451,4451,9451,102,103,'NZAAAA','TBCAAA','HHHHxx' +3359,1398,1,3,9,19,59,359,1359,3359,3359,118,119,'FZAAAA','UBCAAA','OOOOxx' +8867,1399,1,3,7,7,67,867,867,3867,8867,134,135,'BDAAAA','VBCAAA','VVVVxx' +674,1400,0,2,4,14,74,674,674,674,674,148,149,'YZAAAA','WBCAAA','AAAAxx' +2674,1401,0,2,4,14,74,674,674,2674,2674,148,149,'WYAAAA','XBCAAA','HHHHxx' +6523,1402,1,3,3,3,23,523,523,1523,6523,46,47,'XQAAAA','YBCAAA','OOOOxx' +6210,1403,0,2,0,10,10,210,210,1210,6210,20,21,'WEAAAA','ZBCAAA','VVVVxx' +7564,1404,0,0,4,4,64,564,1564,2564,7564,128,129,'YEAAAA','ACCAAA','AAAAxx' +4776,1405,0,0,6,16,76,776,776,4776,4776,152,153,'SBAAAA','BCCAAA','HHHHxx' +2993,1406,1,1,3,13,93,993,993,2993,2993,186,187,'DLAAAA','CCCAAA','OOOOxx' +2969,1407,1,1,9,9,69,969,969,2969,2969,138,139,'FKAAAA','DCCAAA','VVVVxx' +1762,1408,0,2,2,2,62,762,1762,1762,1762,124,125,'UPAAAA','ECCAAA','AAAAxx' +685,1409,1,1,5,5,85,685,685,685,685,170,171,'JAAAAA','FCCAAA','HHHHxx' +5312,1410,0,0,2,12,12,312,1312,312,5312,24,25,'IWAAAA','GCCAAA','OOOOxx' +3264,1411,0,0,4,4,64,264,1264,3264,3264,128,129,'OVAAAA','HCCAAA','VVVVxx' +7008,1412,0,0,8,8,8,8,1008,2008,7008,16,17,'OJAAAA','ICCAAA','AAAAxx' +5167,1413,1,3,7,7,67,167,1167,167,5167,134,135,'TQAAAA','JCCAAA','HHHHxx' +3060,1414,0,0,0,0,60,60,1060,3060,3060,120,121,'SNAAAA','KCCAAA','OOOOxx' +1752,1415,0,0,2,12,52,752,1752,1752,1752,104,105,'KPAAAA','LCCAAA','VVVVxx' +1016,1416,0,0,6,16,16,16,1016,1016,1016,32,33,'CNAAAA','MCCAAA','AAAAxx' +7365,1417,1,1,5,5,65,365,1365,2365,7365,130,131,'HXAAAA','NCCAAA','HHHHxx' +4358,1418,0,2,8,18,58,358,358,4358,4358,116,117,'QLAAAA','OCCAAA','OOOOxx' +2819,1419,1,3,9,19,19,819,819,2819,2819,38,39,'LEAAAA','PCCAAA','VVVVxx' +6727,1420,1,3,7,7,27,727,727,1727,6727,54,55,'TYAAAA','QCCAAA','AAAAxx' +1459,1421,1,3,9,19,59,459,1459,1459,1459,118,119,'DEAAAA','RCCAAA','HHHHxx' +1708,1422,0,0,8,8,8,708,1708,1708,1708,16,17,'SNAAAA','SCCAAA','OOOOxx' +471,1423,1,3,1,11,71,471,471,471,471,142,143,'DSAAAA','TCCAAA','VVVVxx' +387,1424,1,3,7,7,87,387,387,387,387,174,175,'XOAAAA','UCCAAA','AAAAxx' +1166,1425,0,2,6,6,66,166,1166,1166,1166,132,133,'WSAAAA','VCCAAA','HHHHxx' +2400,1426,0,0,0,0,0,400,400,2400,2400,0,1,'IOAAAA','WCCAAA','OOOOxx' +3584,1427,0,0,4,4,84,584,1584,3584,3584,168,169,'WHAAAA','XCCAAA','VVVVxx' +6423,1428,1,3,3,3,23,423,423,1423,6423,46,47,'BNAAAA','YCCAAA','AAAAxx' +9520,1429,0,0,0,0,20,520,1520,4520,9520,40,41,'ECAAAA','ZCCAAA','HHHHxx' +8080,1430,0,0,0,0,80,80,80,3080,8080,160,161,'UYAAAA','ADCAAA','OOOOxx' +5709,1431,1,1,9,9,9,709,1709,709,5709,18,19,'PLAAAA','BDCAAA','VVVVxx' +1131,1432,1,3,1,11,31,131,1131,1131,1131,62,63,'NRAAAA','CDCAAA','AAAAxx' +8562,1433,0,2,2,2,62,562,562,3562,8562,124,125,'IRAAAA','DDCAAA','HHHHxx' +5766,1434,0,2,6,6,66,766,1766,766,5766,132,133,'UNAAAA','EDCAAA','OOOOxx' +245,1435,1,1,5,5,45,245,245,245,245,90,91,'LJAAAA','FDCAAA','VVVVxx' +9869,1436,1,1,9,9,69,869,1869,4869,9869,138,139,'PPAAAA','GDCAAA','AAAAxx' +3533,1437,1,1,3,13,33,533,1533,3533,3533,66,67,'XFAAAA','HDCAAA','HHHHxx' +5109,1438,1,1,9,9,9,109,1109,109,5109,18,19,'NOAAAA','IDCAAA','OOOOxx' +977,1439,1,1,7,17,77,977,977,977,977,154,155,'PLAAAA','JDCAAA','VVVVxx' +1651,1440,1,3,1,11,51,651,1651,1651,1651,102,103,'NLAAAA','KDCAAA','AAAAxx' +1357,1441,1,1,7,17,57,357,1357,1357,1357,114,115,'FAAAAA','LDCAAA','HHHHxx' +9087,1442,1,3,7,7,87,87,1087,4087,9087,174,175,'NLAAAA','MDCAAA','OOOOxx' +3399,1443,1,3,9,19,99,399,1399,3399,3399,198,199,'TAAAAA','NDCAAA','VVVVxx' +7543,1444,1,3,3,3,43,543,1543,2543,7543,86,87,'DEAAAA','ODCAAA','AAAAxx' +2469,1445,1,1,9,9,69,469,469,2469,2469,138,139,'ZQAAAA','PDCAAA','HHHHxx' +8305,1446,1,1,5,5,5,305,305,3305,8305,10,11,'LHAAAA','QDCAAA','OOOOxx' +3265,1447,1,1,5,5,65,265,1265,3265,3265,130,131,'PVAAAA','RDCAAA','VVVVxx' +9977,1448,1,1,7,17,77,977,1977,4977,9977,154,155,'TTAAAA','SDCAAA','AAAAxx' +3961,1449,1,1,1,1,61,961,1961,3961,3961,122,123,'JWAAAA','TDCAAA','HHHHxx' +4952,1450,0,0,2,12,52,952,952,4952,4952,104,105,'MIAAAA','UDCAAA','OOOOxx' +5173,1451,1,1,3,13,73,173,1173,173,5173,146,147,'ZQAAAA','VDCAAA','VVVVxx' +860,1452,0,0,0,0,60,860,860,860,860,120,121,'CHAAAA','WDCAAA','AAAAxx' +4523,1453,1,3,3,3,23,523,523,4523,4523,46,47,'ZRAAAA','XDCAAA','HHHHxx' +2361,1454,1,1,1,1,61,361,361,2361,2361,122,123,'VMAAAA','YDCAAA','OOOOxx' +7877,1455,1,1,7,17,77,877,1877,2877,7877,154,155,'ZQAAAA','ZDCAAA','VVVVxx' +3422,1456,0,2,2,2,22,422,1422,3422,3422,44,45,'QBAAAA','AECAAA','AAAAxx' +5781,1457,1,1,1,1,81,781,1781,781,5781,162,163,'JOAAAA','BECAAA','HHHHxx' +4752,1458,0,0,2,12,52,752,752,4752,4752,104,105,'UAAAAA','CECAAA','OOOOxx' +1786,1459,0,2,6,6,86,786,1786,1786,1786,172,173,'SQAAAA','DECAAA','VVVVxx' +1892,1460,0,0,2,12,92,892,1892,1892,1892,184,185,'UUAAAA','EECAAA','AAAAxx' +6389,1461,1,1,9,9,89,389,389,1389,6389,178,179,'TLAAAA','FECAAA','HHHHxx' +8644,1462,0,0,4,4,44,644,644,3644,8644,88,89,'MUAAAA','GECAAA','OOOOxx' +9056,1463,0,0,6,16,56,56,1056,4056,9056,112,113,'IKAAAA','HECAAA','VVVVxx' +1423,1464,1,3,3,3,23,423,1423,1423,1423,46,47,'TCAAAA','IECAAA','AAAAxx' +4901,1465,1,1,1,1,1,901,901,4901,4901,2,3,'NGAAAA','JECAAA','HHHHxx' +3859,1466,1,3,9,19,59,859,1859,3859,3859,118,119,'LSAAAA','KECAAA','OOOOxx' +2324,1467,0,0,4,4,24,324,324,2324,2324,48,49,'KLAAAA','LECAAA','VVVVxx' +8101,1468,1,1,1,1,1,101,101,3101,8101,2,3,'PZAAAA','MECAAA','AAAAxx' +8016,1469,0,0,6,16,16,16,16,3016,8016,32,33,'IWAAAA','NECAAA','HHHHxx' +5826,1470,0,2,6,6,26,826,1826,826,5826,52,53,'CQAAAA','OECAAA','OOOOxx' +8266,1471,0,2,6,6,66,266,266,3266,8266,132,133,'YFAAAA','PECAAA','VVVVxx' +7558,1472,0,2,8,18,58,558,1558,2558,7558,116,117,'SEAAAA','QECAAA','AAAAxx' +6976,1473,0,0,6,16,76,976,976,1976,6976,152,153,'IIAAAA','RECAAA','HHHHxx' +222,1474,0,2,2,2,22,222,222,222,222,44,45,'OIAAAA','SECAAA','OOOOxx' +1624,1475,0,0,4,4,24,624,1624,1624,1624,48,49,'MKAAAA','TECAAA','VVVVxx' +1250,1476,0,2,0,10,50,250,1250,1250,1250,100,101,'CWAAAA','UECAAA','AAAAxx' +1621,1477,1,1,1,1,21,621,1621,1621,1621,42,43,'JKAAAA','VECAAA','HHHHxx' +2350,1478,0,2,0,10,50,350,350,2350,2350,100,101,'KMAAAA','WECAAA','OOOOxx' +5239,1479,1,3,9,19,39,239,1239,239,5239,78,79,'NTAAAA','XECAAA','VVVVxx' +6681,1480,1,1,1,1,81,681,681,1681,6681,162,163,'ZWAAAA','YECAAA','AAAAxx' +4983,1481,1,3,3,3,83,983,983,4983,4983,166,167,'RJAAAA','ZECAAA','HHHHxx' +7149,1482,1,1,9,9,49,149,1149,2149,7149,98,99,'ZOAAAA','AFCAAA','OOOOxx' +3502,1483,0,2,2,2,2,502,1502,3502,3502,4,5,'SEAAAA','BFCAAA','VVVVxx' +3133,1484,1,1,3,13,33,133,1133,3133,3133,66,67,'NQAAAA','CFCAAA','AAAAxx' +8342,1485,0,2,2,2,42,342,342,3342,8342,84,85,'WIAAAA','DFCAAA','HHHHxx' +3041,1486,1,1,1,1,41,41,1041,3041,3041,82,83,'ZMAAAA','EFCAAA','OOOOxx' +5383,1487,1,3,3,3,83,383,1383,383,5383,166,167,'BZAAAA','FFCAAA','VVVVxx' +3916,1488,0,0,6,16,16,916,1916,3916,3916,32,33,'QUAAAA','GFCAAA','AAAAxx' +1438,1489,0,2,8,18,38,438,1438,1438,1438,76,77,'IDAAAA','HFCAAA','HHHHxx' +9408,1490,0,0,8,8,8,408,1408,4408,9408,16,17,'WXAAAA','IFCAAA','OOOOxx' +5783,1491,1,3,3,3,83,783,1783,783,5783,166,167,'LOAAAA','JFCAAA','VVVVxx' +683,1492,1,3,3,3,83,683,683,683,683,166,167,'HAAAAA','KFCAAA','AAAAxx' +9381,1493,1,1,1,1,81,381,1381,4381,9381,162,163,'VWAAAA','LFCAAA','HHHHxx' +5676,1494,0,0,6,16,76,676,1676,676,5676,152,153,'IKAAAA','MFCAAA','OOOOxx' +3224,1495,0,0,4,4,24,224,1224,3224,3224,48,49,'AUAAAA','NFCAAA','VVVVxx' +8332,1496,0,0,2,12,32,332,332,3332,8332,64,65,'MIAAAA','OFCAAA','AAAAxx' +3372,1497,0,0,2,12,72,372,1372,3372,3372,144,145,'SZAAAA','PFCAAA','HHHHxx' +7436,1498,0,0,6,16,36,436,1436,2436,7436,72,73,'AAAAAA','QFCAAA','OOOOxx' +5010,1499,0,2,0,10,10,10,1010,10,5010,20,21,'SKAAAA','RFCAAA','VVVVxx' +7256,1500,0,0,6,16,56,256,1256,2256,7256,112,113,'CTAAAA','SFCAAA','AAAAxx' +961,1501,1,1,1,1,61,961,961,961,961,122,123,'ZKAAAA','TFCAAA','HHHHxx' +4182,1502,0,2,2,2,82,182,182,4182,4182,164,165,'WEAAAA','UFCAAA','OOOOxx' +639,1503,1,3,9,19,39,639,639,639,639,78,79,'PYAAAA','VFCAAA','VVVVxx' +8836,1504,0,0,6,16,36,836,836,3836,8836,72,73,'WBAAAA','WFCAAA','AAAAxx' +8705,1505,1,1,5,5,5,705,705,3705,8705,10,11,'VWAAAA','XFCAAA','HHHHxx' +32,1506,0,0,2,12,32,32,32,32,32,64,65,'GBAAAA','YFCAAA','OOOOxx' +7913,1507,1,1,3,13,13,913,1913,2913,7913,26,27,'JSAAAA','ZFCAAA','VVVVxx' +229,1508,1,1,9,9,29,229,229,229,229,58,59,'VIAAAA','AGCAAA','AAAAxx' +2393,1509,1,1,3,13,93,393,393,2393,2393,186,187,'BOAAAA','BGCAAA','HHHHxx' +2815,1510,1,3,5,15,15,815,815,2815,2815,30,31,'HEAAAA','CGCAAA','OOOOxx' +4858,1511,0,2,8,18,58,858,858,4858,4858,116,117,'WEAAAA','DGCAAA','VVVVxx' +6283,1512,1,3,3,3,83,283,283,1283,6283,166,167,'RHAAAA','EGCAAA','AAAAxx' +4147,1513,1,3,7,7,47,147,147,4147,4147,94,95,'NDAAAA','FGCAAA','HHHHxx' +6801,1514,1,1,1,1,1,801,801,1801,6801,2,3,'PBAAAA','GGCAAA','OOOOxx' +1011,1515,1,3,1,11,11,11,1011,1011,1011,22,23,'XMAAAA','HGCAAA','VVVVxx' +2527,1516,1,3,7,7,27,527,527,2527,2527,54,55,'FTAAAA','IGCAAA','AAAAxx' +381,1517,1,1,1,1,81,381,381,381,381,162,163,'ROAAAA','JGCAAA','HHHHxx' +3366,1518,0,2,6,6,66,366,1366,3366,3366,132,133,'MZAAAA','KGCAAA','OOOOxx' +9636,1519,0,0,6,16,36,636,1636,4636,9636,72,73,'QGAAAA','LGCAAA','VVVVxx' +2239,1520,1,3,9,19,39,239,239,2239,2239,78,79,'DIAAAA','MGCAAA','AAAAxx' +5911,1521,1,3,1,11,11,911,1911,911,5911,22,23,'JTAAAA','NGCAAA','HHHHxx' +449,1522,1,1,9,9,49,449,449,449,449,98,99,'HRAAAA','OGCAAA','OOOOxx' +5118,1523,0,2,8,18,18,118,1118,118,5118,36,37,'WOAAAA','PGCAAA','VVVVxx' +7684,1524,0,0,4,4,84,684,1684,2684,7684,168,169,'OJAAAA','QGCAAA','AAAAxx' +804,1525,0,0,4,4,4,804,804,804,804,8,9,'YEAAAA','RGCAAA','HHHHxx' +8378,1526,0,2,8,18,78,378,378,3378,8378,156,157,'GKAAAA','SGCAAA','OOOOxx' +9855,1527,1,3,5,15,55,855,1855,4855,9855,110,111,'BPAAAA','TGCAAA','VVVVxx' +1995,1528,1,3,5,15,95,995,1995,1995,1995,190,191,'TYAAAA','UGCAAA','AAAAxx' +1979,1529,1,3,9,19,79,979,1979,1979,1979,158,159,'DYAAAA','VGCAAA','HHHHxx' +4510,1530,0,2,0,10,10,510,510,4510,4510,20,21,'MRAAAA','WGCAAA','OOOOxx' +3792,1531,0,0,2,12,92,792,1792,3792,3792,184,185,'WPAAAA','XGCAAA','VVVVxx' +3541,1532,1,1,1,1,41,541,1541,3541,3541,82,83,'FGAAAA','YGCAAA','AAAAxx' +8847,1533,1,3,7,7,47,847,847,3847,8847,94,95,'HCAAAA','ZGCAAA','HHHHxx' +1336,1534,0,0,6,16,36,336,1336,1336,1336,72,73,'KZAAAA','AHCAAA','OOOOxx' +6780,1535,0,0,0,0,80,780,780,1780,6780,160,161,'UAAAAA','BHCAAA','VVVVxx' +8711,1536,1,3,1,11,11,711,711,3711,8711,22,23,'BXAAAA','CHCAAA','AAAAxx' +7839,1537,1,3,9,19,39,839,1839,2839,7839,78,79,'NPAAAA','DHCAAA','HHHHxx' +677,1538,1,1,7,17,77,677,677,677,677,154,155,'BAAAAA','EHCAAA','OOOOxx' +1574,1539,0,2,4,14,74,574,1574,1574,1574,148,149,'OIAAAA','FHCAAA','VVVVxx' +2905,1540,1,1,5,5,5,905,905,2905,2905,10,11,'THAAAA','GHCAAA','AAAAxx' +1879,1541,1,3,9,19,79,879,1879,1879,1879,158,159,'HUAAAA','HHCAAA','HHHHxx' +7820,1542,0,0,0,0,20,820,1820,2820,7820,40,41,'UOAAAA','IHCAAA','OOOOxx' +4308,1543,0,0,8,8,8,308,308,4308,4308,16,17,'SJAAAA','JHCAAA','VVVVxx' +4474,1544,0,2,4,14,74,474,474,4474,4474,148,149,'CQAAAA','KHCAAA','AAAAxx' +6985,1545,1,1,5,5,85,985,985,1985,6985,170,171,'RIAAAA','LHCAAA','HHHHxx' +6929,1546,1,1,9,9,29,929,929,1929,6929,58,59,'NGAAAA','MHCAAA','OOOOxx' +777,1547,1,1,7,17,77,777,777,777,777,154,155,'XDAAAA','NHCAAA','VVVVxx' +8271,1548,1,3,1,11,71,271,271,3271,8271,142,143,'DGAAAA','OHCAAA','AAAAxx' +2389,1549,1,1,9,9,89,389,389,2389,2389,178,179,'XNAAAA','PHCAAA','HHHHxx' +946,1550,0,2,6,6,46,946,946,946,946,92,93,'KKAAAA','QHCAAA','OOOOxx' +9682,1551,0,2,2,2,82,682,1682,4682,9682,164,165,'KIAAAA','RHCAAA','VVVVxx' +8722,1552,0,2,2,2,22,722,722,3722,8722,44,45,'MXAAAA','SHCAAA','AAAAxx' +470,1553,0,2,0,10,70,470,470,470,470,140,141,'CSAAAA','THCAAA','HHHHxx' +7425,1554,1,1,5,5,25,425,1425,2425,7425,50,51,'PZAAAA','UHCAAA','OOOOxx' +2372,1555,0,0,2,12,72,372,372,2372,2372,144,145,'GNAAAA','VHCAAA','VVVVxx' +508,1556,0,0,8,8,8,508,508,508,508,16,17,'OTAAAA','WHCAAA','AAAAxx' +163,1557,1,3,3,3,63,163,163,163,163,126,127,'HGAAAA','XHCAAA','HHHHxx' +6579,1558,1,3,9,19,79,579,579,1579,6579,158,159,'BTAAAA','YHCAAA','OOOOxx' +2355,1559,1,3,5,15,55,355,355,2355,2355,110,111,'PMAAAA','ZHCAAA','VVVVxx' +70,1560,0,2,0,10,70,70,70,70,70,140,141,'SCAAAA','AICAAA','AAAAxx' +651,1561,1,3,1,11,51,651,651,651,651,102,103,'BZAAAA','BICAAA','HHHHxx' +4436,1562,0,0,6,16,36,436,436,4436,4436,72,73,'QOAAAA','CICAAA','OOOOxx' +4240,1563,0,0,0,0,40,240,240,4240,4240,80,81,'CHAAAA','DICAAA','VVVVxx' +2722,1564,0,2,2,2,22,722,722,2722,2722,44,45,'SAAAAA','EICAAA','AAAAxx' +8937,1565,1,1,7,17,37,937,937,3937,8937,74,75,'TFAAAA','FICAAA','HHHHxx' +8364,1566,0,0,4,4,64,364,364,3364,8364,128,129,'SJAAAA','GICAAA','OOOOxx' +8317,1567,1,1,7,17,17,317,317,3317,8317,34,35,'XHAAAA','HICAAA','VVVVxx' +8872,1568,0,0,2,12,72,872,872,3872,8872,144,145,'GDAAAA','IICAAA','AAAAxx' +5512,1569,0,0,2,12,12,512,1512,512,5512,24,25,'AEAAAA','JICAAA','HHHHxx' +6651,1570,1,3,1,11,51,651,651,1651,6651,102,103,'VVAAAA','KICAAA','OOOOxx' +5976,1571,0,0,6,16,76,976,1976,976,5976,152,153,'WVAAAA','LICAAA','VVVVxx' +3301,1572,1,1,1,1,1,301,1301,3301,3301,2,3,'ZWAAAA','MICAAA','AAAAxx' +6784,1573,0,0,4,4,84,784,784,1784,6784,168,169,'YAAAAA','NICAAA','HHHHxx' +573,1574,1,1,3,13,73,573,573,573,573,146,147,'BWAAAA','OICAAA','OOOOxx' +3015,1575,1,3,5,15,15,15,1015,3015,3015,30,31,'ZLAAAA','PICAAA','VVVVxx' +8245,1576,1,1,5,5,45,245,245,3245,8245,90,91,'DFAAAA','QICAAA','AAAAxx' +5251,1577,1,3,1,11,51,251,1251,251,5251,102,103,'ZTAAAA','RICAAA','HHHHxx' +2281,1578,1,1,1,1,81,281,281,2281,2281,162,163,'TJAAAA','SICAAA','OOOOxx' +518,1579,0,2,8,18,18,518,518,518,518,36,37,'YTAAAA','TICAAA','VVVVxx' +9839,1580,1,3,9,19,39,839,1839,4839,9839,78,79,'LOAAAA','UICAAA','AAAAxx' +4526,1581,0,2,6,6,26,526,526,4526,4526,52,53,'CSAAAA','VICAAA','HHHHxx' +1261,1582,1,1,1,1,61,261,1261,1261,1261,122,123,'NWAAAA','WICAAA','OOOOxx' +4259,1583,1,3,9,19,59,259,259,4259,4259,118,119,'VHAAAA','XICAAA','VVVVxx' +9098,1584,0,2,8,18,98,98,1098,4098,9098,196,197,'YLAAAA','YICAAA','AAAAxx' +6037,1585,1,1,7,17,37,37,37,1037,6037,74,75,'FYAAAA','ZICAAA','HHHHxx' +4284,1586,0,0,4,4,84,284,284,4284,4284,168,169,'UIAAAA','AJCAAA','OOOOxx' +3267,1587,1,3,7,7,67,267,1267,3267,3267,134,135,'RVAAAA','BJCAAA','VVVVxx' +5908,1588,0,0,8,8,8,908,1908,908,5908,16,17,'GTAAAA','CJCAAA','AAAAxx' +1549,1589,1,1,9,9,49,549,1549,1549,1549,98,99,'PHAAAA','DJCAAA','HHHHxx' +8736,1590,0,0,6,16,36,736,736,3736,8736,72,73,'AYAAAA','EJCAAA','OOOOxx' +2008,1591,0,0,8,8,8,8,8,2008,2008,16,17,'GZAAAA','FJCAAA','VVVVxx' +548,1592,0,0,8,8,48,548,548,548,548,96,97,'CVAAAA','GJCAAA','AAAAxx' +8846,1593,0,2,6,6,46,846,846,3846,8846,92,93,'GCAAAA','HJCAAA','HHHHxx' +8374,1594,0,2,4,14,74,374,374,3374,8374,148,149,'CKAAAA','IJCAAA','OOOOxx' +7986,1595,0,2,6,6,86,986,1986,2986,7986,172,173,'EVAAAA','JJCAAA','VVVVxx' +6819,1596,1,3,9,19,19,819,819,1819,6819,38,39,'HCAAAA','KJCAAA','AAAAxx' +4418,1597,0,2,8,18,18,418,418,4418,4418,36,37,'YNAAAA','LJCAAA','HHHHxx' +833,1598,1,1,3,13,33,833,833,833,833,66,67,'BGAAAA','MJCAAA','OOOOxx' +4416,1599,0,0,6,16,16,416,416,4416,4416,32,33,'WNAAAA','NJCAAA','VVVVxx' +4902,1600,0,2,2,2,2,902,902,4902,4902,4,5,'OGAAAA','OJCAAA','AAAAxx' +6828,1601,0,0,8,8,28,828,828,1828,6828,56,57,'QCAAAA','PJCAAA','HHHHxx' +1118,1602,0,2,8,18,18,118,1118,1118,1118,36,37,'ARAAAA','QJCAAA','OOOOxx' +9993,1603,1,1,3,13,93,993,1993,4993,9993,186,187,'JUAAAA','RJCAAA','VVVVxx' +1430,1604,0,2,0,10,30,430,1430,1430,1430,60,61,'ADAAAA','SJCAAA','AAAAxx' +5670,1605,0,2,0,10,70,670,1670,670,5670,140,141,'CKAAAA','TJCAAA','HHHHxx' +5424,1606,0,0,4,4,24,424,1424,424,5424,48,49,'QAAAAA','UJCAAA','OOOOxx' +5561,1607,1,1,1,1,61,561,1561,561,5561,122,123,'XFAAAA','VJCAAA','VVVVxx' +2027,1608,1,3,7,7,27,27,27,2027,2027,54,55,'ZZAAAA','WJCAAA','AAAAxx' +6924,1609,0,0,4,4,24,924,924,1924,6924,48,49,'IGAAAA','XJCAAA','HHHHxx' +5946,1610,0,2,6,6,46,946,1946,946,5946,92,93,'SUAAAA','YJCAAA','OOOOxx' +4294,1611,0,2,4,14,94,294,294,4294,4294,188,189,'EJAAAA','ZJCAAA','VVVVxx' +2936,1612,0,0,6,16,36,936,936,2936,2936,72,73,'YIAAAA','AKCAAA','AAAAxx' +3855,1613,1,3,5,15,55,855,1855,3855,3855,110,111,'HSAAAA','BKCAAA','HHHHxx' +455,1614,1,3,5,15,55,455,455,455,455,110,111,'NRAAAA','CKCAAA','OOOOxx' +2918,1615,0,2,8,18,18,918,918,2918,2918,36,37,'GIAAAA','DKCAAA','VVVVxx' +448,1616,0,0,8,8,48,448,448,448,448,96,97,'GRAAAA','EKCAAA','AAAAxx' +2149,1617,1,1,9,9,49,149,149,2149,2149,98,99,'REAAAA','FKCAAA','HHHHxx' +8890,1618,0,2,0,10,90,890,890,3890,8890,180,181,'YDAAAA','GKCAAA','OOOOxx' +8919,1619,1,3,9,19,19,919,919,3919,8919,38,39,'BFAAAA','HKCAAA','VVVVxx' +4957,1620,1,1,7,17,57,957,957,4957,4957,114,115,'RIAAAA','IKCAAA','AAAAxx' +4,1621,0,0,4,4,4,4,4,4,4,8,9,'EAAAAA','JKCAAA','HHHHxx' +4837,1622,1,1,7,17,37,837,837,4837,4837,74,75,'BEAAAA','KKCAAA','OOOOxx' +3976,1623,0,0,6,16,76,976,1976,3976,3976,152,153,'YWAAAA','LKCAAA','VVVVxx' +9459,1624,1,3,9,19,59,459,1459,4459,9459,118,119,'VZAAAA','MKCAAA','AAAAxx' +7097,1625,1,1,7,17,97,97,1097,2097,7097,194,195,'ZMAAAA','NKCAAA','HHHHxx' +9226,1626,0,2,6,6,26,226,1226,4226,9226,52,53,'WQAAAA','OKCAAA','OOOOxx' +5803,1627,1,3,3,3,3,803,1803,803,5803,6,7,'FPAAAA','PKCAAA','VVVVxx' +21,1628,1,1,1,1,21,21,21,21,21,42,43,'VAAAAA','QKCAAA','AAAAxx' +5275,1629,1,3,5,15,75,275,1275,275,5275,150,151,'XUAAAA','RKCAAA','HHHHxx' +3488,1630,0,0,8,8,88,488,1488,3488,3488,176,177,'EEAAAA','SKCAAA','OOOOxx' +1595,1631,1,3,5,15,95,595,1595,1595,1595,190,191,'JJAAAA','TKCAAA','VVVVxx' +5212,1632,0,0,2,12,12,212,1212,212,5212,24,25,'MSAAAA','UKCAAA','AAAAxx' +6574,1633,0,2,4,14,74,574,574,1574,6574,148,149,'WSAAAA','VKCAAA','HHHHxx' +7524,1634,0,0,4,4,24,524,1524,2524,7524,48,49,'KDAAAA','WKCAAA','OOOOxx' +6100,1635,0,0,0,0,0,100,100,1100,6100,0,1,'QAAAAA','XKCAAA','VVVVxx' +1198,1636,0,2,8,18,98,198,1198,1198,1198,196,197,'CUAAAA','YKCAAA','AAAAxx' +7345,1637,1,1,5,5,45,345,1345,2345,7345,90,91,'NWAAAA','ZKCAAA','HHHHxx' +5020,1638,0,0,0,0,20,20,1020,20,5020,40,41,'CLAAAA','ALCAAA','OOOOxx' +6925,1639,1,1,5,5,25,925,925,1925,6925,50,51,'JGAAAA','BLCAAA','VVVVxx' +8915,1640,1,3,5,15,15,915,915,3915,8915,30,31,'XEAAAA','CLCAAA','AAAAxx' +3088,1641,0,0,8,8,88,88,1088,3088,3088,176,177,'UOAAAA','DLCAAA','HHHHxx' +4828,1642,0,0,8,8,28,828,828,4828,4828,56,57,'SDAAAA','ELCAAA','OOOOxx' +7276,1643,0,0,6,16,76,276,1276,2276,7276,152,153,'WTAAAA','FLCAAA','VVVVxx' +299,1644,1,3,9,19,99,299,299,299,299,198,199,'NLAAAA','GLCAAA','AAAAxx' +76,1645,0,0,6,16,76,76,76,76,76,152,153,'YCAAAA','HLCAAA','HHHHxx' +8458,1646,0,2,8,18,58,458,458,3458,8458,116,117,'INAAAA','ILCAAA','OOOOxx' +7207,1647,1,3,7,7,7,207,1207,2207,7207,14,15,'FRAAAA','JLCAAA','VVVVxx' +5585,1648,1,1,5,5,85,585,1585,585,5585,170,171,'VGAAAA','KLCAAA','AAAAxx' +3234,1649,0,2,4,14,34,234,1234,3234,3234,68,69,'KUAAAA','LLCAAA','HHHHxx' +8001,1650,1,1,1,1,1,1,1,3001,8001,2,3,'TVAAAA','MLCAAA','OOOOxx' +1319,1651,1,3,9,19,19,319,1319,1319,1319,38,39,'TYAAAA','NLCAAA','VVVVxx' +6342,1652,0,2,2,2,42,342,342,1342,6342,84,85,'YJAAAA','OLCAAA','AAAAxx' +9199,1653,1,3,9,19,99,199,1199,4199,9199,198,199,'VPAAAA','PLCAAA','HHHHxx' +5696,1654,0,0,6,16,96,696,1696,696,5696,192,193,'CLAAAA','QLCAAA','OOOOxx' +2562,1655,0,2,2,2,62,562,562,2562,2562,124,125,'OUAAAA','RLCAAA','VVVVxx' +4226,1656,0,2,6,6,26,226,226,4226,4226,52,53,'OGAAAA','SLCAAA','AAAAxx' +1184,1657,0,0,4,4,84,184,1184,1184,1184,168,169,'OTAAAA','TLCAAA','HHHHxx' +5807,1658,1,3,7,7,7,807,1807,807,5807,14,15,'JPAAAA','ULCAAA','OOOOxx' +1890,1659,0,2,0,10,90,890,1890,1890,1890,180,181,'SUAAAA','VLCAAA','VVVVxx' +451,1660,1,3,1,11,51,451,451,451,451,102,103,'JRAAAA','WLCAAA','AAAAxx' +1049,1661,1,1,9,9,49,49,1049,1049,1049,98,99,'JOAAAA','XLCAAA','HHHHxx' +5272,1662,0,0,2,12,72,272,1272,272,5272,144,145,'UUAAAA','YLCAAA','OOOOxx' +4588,1663,0,0,8,8,88,588,588,4588,4588,176,177,'MUAAAA','ZLCAAA','VVVVxx' +5213,1664,1,1,3,13,13,213,1213,213,5213,26,27,'NSAAAA','AMCAAA','AAAAxx' +9543,1665,1,3,3,3,43,543,1543,4543,9543,86,87,'BDAAAA','BMCAAA','HHHHxx' +6318,1666,0,2,8,18,18,318,318,1318,6318,36,37,'AJAAAA','CMCAAA','OOOOxx' +7992,1667,0,0,2,12,92,992,1992,2992,7992,184,185,'KVAAAA','DMCAAA','VVVVxx' +4619,1668,1,3,9,19,19,619,619,4619,4619,38,39,'RVAAAA','EMCAAA','AAAAxx' +7189,1669,1,1,9,9,89,189,1189,2189,7189,178,179,'NQAAAA','FMCAAA','HHHHxx' +2178,1670,0,2,8,18,78,178,178,2178,2178,156,157,'UFAAAA','GMCAAA','OOOOxx' +4928,1671,0,0,8,8,28,928,928,4928,4928,56,57,'OHAAAA','HMCAAA','VVVVxx' +3966,1672,0,2,6,6,66,966,1966,3966,3966,132,133,'OWAAAA','IMCAAA','AAAAxx' +9790,1673,0,2,0,10,90,790,1790,4790,9790,180,181,'OMAAAA','JMCAAA','HHHHxx' +9150,1674,0,2,0,10,50,150,1150,4150,9150,100,101,'YNAAAA','KMCAAA','OOOOxx' +313,1675,1,1,3,13,13,313,313,313,313,26,27,'BMAAAA','LMCAAA','VVVVxx' +1614,1676,0,2,4,14,14,614,1614,1614,1614,28,29,'CKAAAA','MMCAAA','AAAAxx' +1581,1677,1,1,1,1,81,581,1581,1581,1581,162,163,'VIAAAA','NMCAAA','HHHHxx' +3674,1678,0,2,4,14,74,674,1674,3674,3674,148,149,'ILAAAA','OMCAAA','OOOOxx' +3444,1679,0,0,4,4,44,444,1444,3444,3444,88,89,'MCAAAA','PMCAAA','VVVVxx' +1050,1680,0,2,0,10,50,50,1050,1050,1050,100,101,'KOAAAA','QMCAAA','AAAAxx' +8241,1681,1,1,1,1,41,241,241,3241,8241,82,83,'ZEAAAA','RMCAAA','HHHHxx' +3382,1682,0,2,2,2,82,382,1382,3382,3382,164,165,'CAAAAA','SMCAAA','OOOOxx' +7105,1683,1,1,5,5,5,105,1105,2105,7105,10,11,'HNAAAA','TMCAAA','VVVVxx' +2957,1684,1,1,7,17,57,957,957,2957,2957,114,115,'TJAAAA','UMCAAA','AAAAxx' +6162,1685,0,2,2,2,62,162,162,1162,6162,124,125,'ADAAAA','VMCAAA','HHHHxx' +5150,1686,0,2,0,10,50,150,1150,150,5150,100,101,'CQAAAA','WMCAAA','OOOOxx' +2622,1687,0,2,2,2,22,622,622,2622,2622,44,45,'WWAAAA','XMCAAA','VVVVxx' +2240,1688,0,0,0,0,40,240,240,2240,2240,80,81,'EIAAAA','YMCAAA','AAAAxx' +8880,1689,0,0,0,0,80,880,880,3880,8880,160,161,'ODAAAA','ZMCAAA','HHHHxx' +9250,1690,0,2,0,10,50,250,1250,4250,9250,100,101,'URAAAA','ANCAAA','OOOOxx' +7010,1691,0,2,0,10,10,10,1010,2010,7010,20,21,'QJAAAA','BNCAAA','VVVVxx' +1098,1692,0,2,8,18,98,98,1098,1098,1098,196,197,'GQAAAA','CNCAAA','AAAAxx' +648,1693,0,0,8,8,48,648,648,648,648,96,97,'YYAAAA','DNCAAA','HHHHxx' +5536,1694,0,0,6,16,36,536,1536,536,5536,72,73,'YEAAAA','ENCAAA','OOOOxx' +7858,1695,0,2,8,18,58,858,1858,2858,7858,116,117,'GQAAAA','FNCAAA','VVVVxx' +7053,1696,1,1,3,13,53,53,1053,2053,7053,106,107,'HLAAAA','GNCAAA','AAAAxx' +8681,1697,1,1,1,1,81,681,681,3681,8681,162,163,'XVAAAA','HNCAAA','HHHHxx' +8832,1698,0,0,2,12,32,832,832,3832,8832,64,65,'SBAAAA','INCAAA','OOOOxx' +6836,1699,0,0,6,16,36,836,836,1836,6836,72,73,'YCAAAA','JNCAAA','VVVVxx' +4856,1700,0,0,6,16,56,856,856,4856,4856,112,113,'UEAAAA','KNCAAA','AAAAxx' +345,1701,1,1,5,5,45,345,345,345,345,90,91,'HNAAAA','LNCAAA','HHHHxx' +6559,1702,1,3,9,19,59,559,559,1559,6559,118,119,'HSAAAA','MNCAAA','OOOOxx' +3017,1703,1,1,7,17,17,17,1017,3017,3017,34,35,'BMAAAA','NNCAAA','VVVVxx' +4176,1704,0,0,6,16,76,176,176,4176,4176,152,153,'QEAAAA','ONCAAA','AAAAxx' +2839,1705,1,3,9,19,39,839,839,2839,2839,78,79,'FFAAAA','PNCAAA','HHHHxx' +6065,1706,1,1,5,5,65,65,65,1065,6065,130,131,'HZAAAA','QNCAAA','OOOOxx' +7360,1707,0,0,0,0,60,360,1360,2360,7360,120,121,'CXAAAA','RNCAAA','VVVVxx' +9527,1708,1,3,7,7,27,527,1527,4527,9527,54,55,'LCAAAA','SNCAAA','AAAAxx' +8849,1709,1,1,9,9,49,849,849,3849,8849,98,99,'JCAAAA','TNCAAA','HHHHxx' +7274,1710,0,2,4,14,74,274,1274,2274,7274,148,149,'UTAAAA','UNCAAA','OOOOxx' +4368,1711,0,0,8,8,68,368,368,4368,4368,136,137,'AMAAAA','VNCAAA','VVVVxx' +2488,1712,0,0,8,8,88,488,488,2488,2488,176,177,'SRAAAA','WNCAAA','AAAAxx' +4674,1713,0,2,4,14,74,674,674,4674,4674,148,149,'UXAAAA','XNCAAA','HHHHxx' +365,1714,1,1,5,5,65,365,365,365,365,130,131,'BOAAAA','YNCAAA','OOOOxx' +5897,1715,1,1,7,17,97,897,1897,897,5897,194,195,'VSAAAA','ZNCAAA','VVVVxx' +8918,1716,0,2,8,18,18,918,918,3918,8918,36,37,'AFAAAA','AOCAAA','AAAAxx' +1988,1717,0,0,8,8,88,988,1988,1988,1988,176,177,'MYAAAA','BOCAAA','HHHHxx' +1210,1718,0,2,0,10,10,210,1210,1210,1210,20,21,'OUAAAA','COCAAA','OOOOxx' +2945,1719,1,1,5,5,45,945,945,2945,2945,90,91,'HJAAAA','DOCAAA','VVVVxx' +555,1720,1,3,5,15,55,555,555,555,555,110,111,'JVAAAA','EOCAAA','AAAAxx' +9615,1721,1,3,5,15,15,615,1615,4615,9615,30,31,'VFAAAA','FOCAAA','HHHHxx' +9939,1722,1,3,9,19,39,939,1939,4939,9939,78,79,'HSAAAA','GOCAAA','OOOOxx' +1216,1723,0,0,6,16,16,216,1216,1216,1216,32,33,'UUAAAA','HOCAAA','VVVVxx' +745,1724,1,1,5,5,45,745,745,745,745,90,91,'RCAAAA','IOCAAA','AAAAxx' +3326,1725,0,2,6,6,26,326,1326,3326,3326,52,53,'YXAAAA','JOCAAA','HHHHxx' +953,1726,1,1,3,13,53,953,953,953,953,106,107,'RKAAAA','KOCAAA','OOOOxx' +444,1727,0,0,4,4,44,444,444,444,444,88,89,'CRAAAA','LOCAAA','VVVVxx' +280,1728,0,0,0,0,80,280,280,280,280,160,161,'UKAAAA','MOCAAA','AAAAxx' +3707,1729,1,3,7,7,7,707,1707,3707,3707,14,15,'PMAAAA','NOCAAA','HHHHxx' +1351,1730,1,3,1,11,51,351,1351,1351,1351,102,103,'ZZAAAA','OOCAAA','OOOOxx' +1280,1731,0,0,0,0,80,280,1280,1280,1280,160,161,'GXAAAA','POCAAA','VVVVxx' +628,1732,0,0,8,8,28,628,628,628,628,56,57,'EYAAAA','QOCAAA','AAAAxx' +6198,1733,0,2,8,18,98,198,198,1198,6198,196,197,'KEAAAA','ROCAAA','HHHHxx' +1957,1734,1,1,7,17,57,957,1957,1957,1957,114,115,'HXAAAA','SOCAAA','OOOOxx' +9241,1735,1,1,1,1,41,241,1241,4241,9241,82,83,'LRAAAA','TOCAAA','VVVVxx' +303,1736,1,3,3,3,3,303,303,303,303,6,7,'RLAAAA','UOCAAA','AAAAxx' +1945,1737,1,1,5,5,45,945,1945,1945,1945,90,91,'VWAAAA','VOCAAA','HHHHxx' +3634,1738,0,2,4,14,34,634,1634,3634,3634,68,69,'UJAAAA','WOCAAA','OOOOxx' +4768,1739,0,0,8,8,68,768,768,4768,4768,136,137,'KBAAAA','XOCAAA','VVVVxx' +9262,1740,0,2,2,2,62,262,1262,4262,9262,124,125,'GSAAAA','YOCAAA','AAAAxx' +2610,1741,0,2,0,10,10,610,610,2610,2610,20,21,'KWAAAA','ZOCAAA','HHHHxx' +6640,1742,0,0,0,0,40,640,640,1640,6640,80,81,'KVAAAA','APCAAA','OOOOxx' +3338,1743,0,2,8,18,38,338,1338,3338,3338,76,77,'KYAAAA','BPCAAA','VVVVxx' +6560,1744,0,0,0,0,60,560,560,1560,6560,120,121,'ISAAAA','CPCAAA','AAAAxx' +5986,1745,0,2,6,6,86,986,1986,986,5986,172,173,'GWAAAA','DPCAAA','HHHHxx' +2970,1746,0,2,0,10,70,970,970,2970,2970,140,141,'GKAAAA','EPCAAA','OOOOxx' +4731,1747,1,3,1,11,31,731,731,4731,4731,62,63,'ZZAAAA','FPCAAA','VVVVxx' +9486,1748,0,2,6,6,86,486,1486,4486,9486,172,173,'WAAAAA','GPCAAA','AAAAxx' +7204,1749,0,0,4,4,4,204,1204,2204,7204,8,9,'CRAAAA','HPCAAA','HHHHxx' +6685,1750,1,1,5,5,85,685,685,1685,6685,170,171,'DXAAAA','IPCAAA','OOOOxx' +6852,1751,0,0,2,12,52,852,852,1852,6852,104,105,'ODAAAA','JPCAAA','VVVVxx' +2325,1752,1,1,5,5,25,325,325,2325,2325,50,51,'LLAAAA','KPCAAA','AAAAxx' +1063,1753,1,3,3,3,63,63,1063,1063,1063,126,127,'XOAAAA','LPCAAA','HHHHxx' +6810,1754,0,2,0,10,10,810,810,1810,6810,20,21,'YBAAAA','MPCAAA','OOOOxx' +7718,1755,0,2,8,18,18,718,1718,2718,7718,36,37,'WKAAAA','NPCAAA','VVVVxx' +1680,1756,0,0,0,0,80,680,1680,1680,1680,160,161,'QMAAAA','OPCAAA','AAAAxx' +7402,1757,0,2,2,2,2,402,1402,2402,7402,4,5,'SYAAAA','PPCAAA','HHHHxx' +4134,1758,0,2,4,14,34,134,134,4134,4134,68,69,'ADAAAA','QPCAAA','OOOOxx' +8232,1759,0,0,2,12,32,232,232,3232,8232,64,65,'QEAAAA','RPCAAA','VVVVxx' +6682,1760,0,2,2,2,82,682,682,1682,6682,164,165,'AXAAAA','SPCAAA','AAAAxx' +7952,1761,0,0,2,12,52,952,1952,2952,7952,104,105,'WTAAAA','TPCAAA','HHHHxx' +5943,1762,1,3,3,3,43,943,1943,943,5943,86,87,'PUAAAA','UPCAAA','OOOOxx' +5394,1763,0,2,4,14,94,394,1394,394,5394,188,189,'MZAAAA','VPCAAA','VVVVxx' +6554,1764,0,2,4,14,54,554,554,1554,6554,108,109,'CSAAAA','WPCAAA','AAAAxx' +8186,1765,0,2,6,6,86,186,186,3186,8186,172,173,'WCAAAA','XPCAAA','HHHHxx' +199,1766,1,3,9,19,99,199,199,199,199,198,199,'RHAAAA','YPCAAA','OOOOxx' +3386,1767,0,2,6,6,86,386,1386,3386,3386,172,173,'GAAAAA','ZPCAAA','VVVVxx' +8974,1768,0,2,4,14,74,974,974,3974,8974,148,149,'EHAAAA','AQCAAA','AAAAxx' +8140,1769,0,0,0,0,40,140,140,3140,8140,80,81,'CBAAAA','BQCAAA','HHHHxx' +3723,1770,1,3,3,3,23,723,1723,3723,3723,46,47,'FNAAAA','CQCAAA','OOOOxx' +8827,1771,1,3,7,7,27,827,827,3827,8827,54,55,'NBAAAA','DQCAAA','VVVVxx' +1998,1772,0,2,8,18,98,998,1998,1998,1998,196,197,'WYAAAA','EQCAAA','AAAAxx' +879,1773,1,3,9,19,79,879,879,879,879,158,159,'VHAAAA','FQCAAA','HHHHxx' +892,1774,0,0,2,12,92,892,892,892,892,184,185,'IIAAAA','GQCAAA','OOOOxx' +9468,1775,0,0,8,8,68,468,1468,4468,9468,136,137,'EAAAAA','HQCAAA','VVVVxx' +3797,1776,1,1,7,17,97,797,1797,3797,3797,194,195,'BQAAAA','IQCAAA','AAAAxx' +8379,1777,1,3,9,19,79,379,379,3379,8379,158,159,'HKAAAA','JQCAAA','HHHHxx' +2817,1778,1,1,7,17,17,817,817,2817,2817,34,35,'JEAAAA','KQCAAA','OOOOxx' +789,1779,1,1,9,9,89,789,789,789,789,178,179,'JEAAAA','LQCAAA','VVVVxx' +3871,1780,1,3,1,11,71,871,1871,3871,3871,142,143,'XSAAAA','MQCAAA','AAAAxx' +7931,1781,1,3,1,11,31,931,1931,2931,7931,62,63,'BTAAAA','NQCAAA','HHHHxx' +3636,1782,0,0,6,16,36,636,1636,3636,3636,72,73,'WJAAAA','OQCAAA','OOOOxx' +699,1783,1,3,9,19,99,699,699,699,699,198,199,'XAAAAA','PQCAAA','VVVVxx' +6850,1784,0,2,0,10,50,850,850,1850,6850,100,101,'MDAAAA','QQCAAA','AAAAxx' +6394,1785,0,2,4,14,94,394,394,1394,6394,188,189,'YLAAAA','RQCAAA','HHHHxx' +3475,1786,1,3,5,15,75,475,1475,3475,3475,150,151,'RDAAAA','SQCAAA','OOOOxx' +3026,1787,0,2,6,6,26,26,1026,3026,3026,52,53,'KMAAAA','TQCAAA','VVVVxx' +876,1788,0,0,6,16,76,876,876,876,876,152,153,'SHAAAA','UQCAAA','AAAAxx' +1992,1789,0,0,2,12,92,992,1992,1992,1992,184,185,'QYAAAA','VQCAAA','HHHHxx' +3079,1790,1,3,9,19,79,79,1079,3079,3079,158,159,'LOAAAA','WQCAAA','OOOOxx' +8128,1791,0,0,8,8,28,128,128,3128,8128,56,57,'QAAAAA','XQCAAA','VVVVxx' +8123,1792,1,3,3,3,23,123,123,3123,8123,46,47,'LAAAAA','YQCAAA','AAAAxx' +3285,1793,1,1,5,5,85,285,1285,3285,3285,170,171,'JWAAAA','ZQCAAA','HHHHxx' +9315,1794,1,3,5,15,15,315,1315,4315,9315,30,31,'HUAAAA','ARCAAA','OOOOxx' +9862,1795,0,2,2,2,62,862,1862,4862,9862,124,125,'IPAAAA','BRCAAA','VVVVxx' +2764,1796,0,0,4,4,64,764,764,2764,2764,128,129,'ICAAAA','CRCAAA','AAAAxx' +3544,1797,0,0,4,4,44,544,1544,3544,3544,88,89,'IGAAAA','DRCAAA','HHHHxx' +7747,1798,1,3,7,7,47,747,1747,2747,7747,94,95,'ZLAAAA','ERCAAA','OOOOxx' +7725,1799,1,1,5,5,25,725,1725,2725,7725,50,51,'DLAAAA','FRCAAA','VVVVxx' +2449,1800,1,1,9,9,49,449,449,2449,2449,98,99,'FQAAAA','GRCAAA','AAAAxx' +8967,1801,1,3,7,7,67,967,967,3967,8967,134,135,'XGAAAA','HRCAAA','HHHHxx' +7371,1802,1,3,1,11,71,371,1371,2371,7371,142,143,'NXAAAA','IRCAAA','OOOOxx' +2158,1803,0,2,8,18,58,158,158,2158,2158,116,117,'AFAAAA','JRCAAA','VVVVxx' +5590,1804,0,2,0,10,90,590,1590,590,5590,180,181,'AHAAAA','KRCAAA','AAAAxx' +8072,1805,0,0,2,12,72,72,72,3072,8072,144,145,'MYAAAA','LRCAAA','HHHHxx' +1971,1806,1,3,1,11,71,971,1971,1971,1971,142,143,'VXAAAA','MRCAAA','OOOOxx' +772,1807,0,0,2,12,72,772,772,772,772,144,145,'SDAAAA','NRCAAA','VVVVxx' +3433,1808,1,1,3,13,33,433,1433,3433,3433,66,67,'BCAAAA','ORCAAA','AAAAxx' +8419,1809,1,3,9,19,19,419,419,3419,8419,38,39,'VLAAAA','PRCAAA','HHHHxx' +1493,1810,1,1,3,13,93,493,1493,1493,1493,186,187,'LFAAAA','QRCAAA','OOOOxx' +2584,1811,0,0,4,4,84,584,584,2584,2584,168,169,'KVAAAA','RRCAAA','VVVVxx' +9502,1812,0,2,2,2,2,502,1502,4502,9502,4,5,'MBAAAA','SRCAAA','AAAAxx' +4673,1813,1,1,3,13,73,673,673,4673,4673,146,147,'TXAAAA','TRCAAA','HHHHxx' +7403,1814,1,3,3,3,3,403,1403,2403,7403,6,7,'TYAAAA','URCAAA','OOOOxx' +7103,1815,1,3,3,3,3,103,1103,2103,7103,6,7,'FNAAAA','VRCAAA','VVVVxx' +7026,1816,0,2,6,6,26,26,1026,2026,7026,52,53,'GKAAAA','WRCAAA','AAAAxx' +8574,1817,0,2,4,14,74,574,574,3574,8574,148,149,'URAAAA','XRCAAA','HHHHxx' +1366,1818,0,2,6,6,66,366,1366,1366,1366,132,133,'OAAAAA','YRCAAA','OOOOxx' +5787,1819,1,3,7,7,87,787,1787,787,5787,174,175,'POAAAA','ZRCAAA','VVVVxx' +2552,1820,0,0,2,12,52,552,552,2552,2552,104,105,'EUAAAA','ASCAAA','AAAAxx' +4557,1821,1,1,7,17,57,557,557,4557,4557,114,115,'HTAAAA','BSCAAA','HHHHxx' +3237,1822,1,1,7,17,37,237,1237,3237,3237,74,75,'NUAAAA','CSCAAA','OOOOxx' +6901,1823,1,1,1,1,1,901,901,1901,6901,2,3,'LFAAAA','DSCAAA','VVVVxx' +7708,1824,0,0,8,8,8,708,1708,2708,7708,16,17,'MKAAAA','ESCAAA','AAAAxx' +2011,1825,1,3,1,11,11,11,11,2011,2011,22,23,'JZAAAA','FSCAAA','HHHHxx' +9455,1826,1,3,5,15,55,455,1455,4455,9455,110,111,'RZAAAA','GSCAAA','OOOOxx' +5228,1827,0,0,8,8,28,228,1228,228,5228,56,57,'CTAAAA','HSCAAA','VVVVxx' +4043,1828,1,3,3,3,43,43,43,4043,4043,86,87,'NZAAAA','ISCAAA','AAAAxx' +8242,1829,0,2,2,2,42,242,242,3242,8242,84,85,'AFAAAA','JSCAAA','HHHHxx' +6351,1830,1,3,1,11,51,351,351,1351,6351,102,103,'HKAAAA','KSCAAA','OOOOxx' +5899,1831,1,3,9,19,99,899,1899,899,5899,198,199,'XSAAAA','LSCAAA','VVVVxx' +4849,1832,1,1,9,9,49,849,849,4849,4849,98,99,'NEAAAA','MSCAAA','AAAAxx' +9583,1833,1,3,3,3,83,583,1583,4583,9583,166,167,'PEAAAA','NSCAAA','HHHHxx' +4994,1834,0,2,4,14,94,994,994,4994,4994,188,189,'CKAAAA','OSCAAA','OOOOxx' +9787,1835,1,3,7,7,87,787,1787,4787,9787,174,175,'LMAAAA','PSCAAA','VVVVxx' +243,1836,1,3,3,3,43,243,243,243,243,86,87,'JJAAAA','QSCAAA','AAAAxx' +3931,1837,1,3,1,11,31,931,1931,3931,3931,62,63,'FVAAAA','RSCAAA','HHHHxx' +5945,1838,1,1,5,5,45,945,1945,945,5945,90,91,'RUAAAA','SSCAAA','OOOOxx' +1325,1839,1,1,5,5,25,325,1325,1325,1325,50,51,'ZYAAAA','TSCAAA','VVVVxx' +4142,1840,0,2,2,2,42,142,142,4142,4142,84,85,'IDAAAA','USCAAA','AAAAxx' +1963,1841,1,3,3,3,63,963,1963,1963,1963,126,127,'NXAAAA','VSCAAA','HHHHxx' +7041,1842,1,1,1,1,41,41,1041,2041,7041,82,83,'VKAAAA','WSCAAA','OOOOxx' +3074,1843,0,2,4,14,74,74,1074,3074,3074,148,149,'GOAAAA','XSCAAA','VVVVxx' +3290,1844,0,2,0,10,90,290,1290,3290,3290,180,181,'OWAAAA','YSCAAA','AAAAxx' +4146,1845,0,2,6,6,46,146,146,4146,4146,92,93,'MDAAAA','ZSCAAA','HHHHxx' +3832,1846,0,0,2,12,32,832,1832,3832,3832,64,65,'KRAAAA','ATCAAA','OOOOxx' +2217,1847,1,1,7,17,17,217,217,2217,2217,34,35,'HHAAAA','BTCAAA','VVVVxx' +635,1848,1,3,5,15,35,635,635,635,635,70,71,'LYAAAA','CTCAAA','AAAAxx' +6967,1849,1,3,7,7,67,967,967,1967,6967,134,135,'ZHAAAA','DTCAAA','HHHHxx' +3522,1850,0,2,2,2,22,522,1522,3522,3522,44,45,'MFAAAA','ETCAAA','OOOOxx' +2471,1851,1,3,1,11,71,471,471,2471,2471,142,143,'BRAAAA','FTCAAA','VVVVxx' +4236,1852,0,0,6,16,36,236,236,4236,4236,72,73,'YGAAAA','GTCAAA','AAAAxx' +853,1853,1,1,3,13,53,853,853,853,853,106,107,'VGAAAA','HTCAAA','HHHHxx' +3754,1854,0,2,4,14,54,754,1754,3754,3754,108,109,'KOAAAA','ITCAAA','OOOOxx' +796,1855,0,0,6,16,96,796,796,796,796,192,193,'QEAAAA','JTCAAA','VVVVxx' +4640,1856,0,0,0,0,40,640,640,4640,4640,80,81,'MWAAAA','KTCAAA','AAAAxx' +9496,1857,0,0,6,16,96,496,1496,4496,9496,192,193,'GBAAAA','LTCAAA','HHHHxx' +6873,1858,1,1,3,13,73,873,873,1873,6873,146,147,'JEAAAA','MTCAAA','OOOOxx' +4632,1859,0,0,2,12,32,632,632,4632,4632,64,65,'EWAAAA','NTCAAA','VVVVxx' +5758,1860,0,2,8,18,58,758,1758,758,5758,116,117,'MNAAAA','OTCAAA','AAAAxx' +6514,1861,0,2,4,14,14,514,514,1514,6514,28,29,'OQAAAA','PTCAAA','HHHHxx' +9510,1862,0,2,0,10,10,510,1510,4510,9510,20,21,'UBAAAA','QTCAAA','OOOOxx' +8411,1863,1,3,1,11,11,411,411,3411,8411,22,23,'NLAAAA','RTCAAA','VVVVxx' +7762,1864,0,2,2,2,62,762,1762,2762,7762,124,125,'OMAAAA','STCAAA','AAAAxx' +2225,1865,1,1,5,5,25,225,225,2225,2225,50,51,'PHAAAA','TTCAAA','HHHHxx' +4373,1866,1,1,3,13,73,373,373,4373,4373,146,147,'FMAAAA','UTCAAA','OOOOxx' +7326,1867,0,2,6,6,26,326,1326,2326,7326,52,53,'UVAAAA','VTCAAA','VVVVxx' +8651,1868,1,3,1,11,51,651,651,3651,8651,102,103,'TUAAAA','WTCAAA','AAAAxx' +9825,1869,1,1,5,5,25,825,1825,4825,9825,50,51,'XNAAAA','XTCAAA','HHHHxx' +2988,1870,0,0,8,8,88,988,988,2988,2988,176,177,'YKAAAA','YTCAAA','OOOOxx' +8138,1871,0,2,8,18,38,138,138,3138,8138,76,77,'ABAAAA','ZTCAAA','VVVVxx' +7792,1872,0,0,2,12,92,792,1792,2792,7792,184,185,'SNAAAA','AUCAAA','AAAAxx' +1232,1873,0,0,2,12,32,232,1232,1232,1232,64,65,'KVAAAA','BUCAAA','HHHHxx' +8221,1874,1,1,1,1,21,221,221,3221,8221,42,43,'FEAAAA','CUCAAA','OOOOxx' +4044,1875,0,0,4,4,44,44,44,4044,4044,88,89,'OZAAAA','DUCAAA','VVVVxx' +1204,1876,0,0,4,4,4,204,1204,1204,1204,8,9,'IUAAAA','EUCAAA','AAAAxx' +5145,1877,1,1,5,5,45,145,1145,145,5145,90,91,'XPAAAA','FUCAAA','HHHHxx' +7791,1878,1,3,1,11,91,791,1791,2791,7791,182,183,'RNAAAA','GUCAAA','OOOOxx' +8270,1879,0,2,0,10,70,270,270,3270,8270,140,141,'CGAAAA','HUCAAA','VVVVxx' +9427,1880,1,3,7,7,27,427,1427,4427,9427,54,55,'PYAAAA','IUCAAA','AAAAxx' +2152,1881,0,0,2,12,52,152,152,2152,2152,104,105,'UEAAAA','JUCAAA','HHHHxx' +7790,1882,0,2,0,10,90,790,1790,2790,7790,180,181,'QNAAAA','KUCAAA','OOOOxx' +5301,1883,1,1,1,1,1,301,1301,301,5301,2,3,'XVAAAA','LUCAAA','VVVVxx' +626,1884,0,2,6,6,26,626,626,626,626,52,53,'CYAAAA','MUCAAA','AAAAxx' +260,1885,0,0,0,0,60,260,260,260,260,120,121,'AKAAAA','NUCAAA','HHHHxx' +4369,1886,1,1,9,9,69,369,369,4369,4369,138,139,'BMAAAA','OUCAAA','OOOOxx' +5457,1887,1,1,7,17,57,457,1457,457,5457,114,115,'XBAAAA','PUCAAA','VVVVxx' +3468,1888,0,0,8,8,68,468,1468,3468,3468,136,137,'KDAAAA','QUCAAA','AAAAxx' +2257,1889,1,1,7,17,57,257,257,2257,2257,114,115,'VIAAAA','RUCAAA','HHHHxx' +9318,1890,0,2,8,18,18,318,1318,4318,9318,36,37,'KUAAAA','SUCAAA','OOOOxx' +8762,1891,0,2,2,2,62,762,762,3762,8762,124,125,'AZAAAA','TUCAAA','VVVVxx' +9153,1892,1,1,3,13,53,153,1153,4153,9153,106,107,'BOAAAA','UUCAAA','AAAAxx' +9220,1893,0,0,0,0,20,220,1220,4220,9220,40,41,'QQAAAA','VUCAAA','HHHHxx' +8003,1894,1,3,3,3,3,3,3,3003,8003,6,7,'VVAAAA','WUCAAA','OOOOxx' +7257,1895,1,1,7,17,57,257,1257,2257,7257,114,115,'DTAAAA','XUCAAA','VVVVxx' +3930,1896,0,2,0,10,30,930,1930,3930,3930,60,61,'EVAAAA','YUCAAA','AAAAxx' +2976,1897,0,0,6,16,76,976,976,2976,2976,152,153,'MKAAAA','ZUCAAA','HHHHxx' +2531,1898,1,3,1,11,31,531,531,2531,2531,62,63,'JTAAAA','AVCAAA','OOOOxx' +2250,1899,0,2,0,10,50,250,250,2250,2250,100,101,'OIAAAA','BVCAAA','VVVVxx' +8549,1900,1,1,9,9,49,549,549,3549,8549,98,99,'VQAAAA','CVCAAA','AAAAxx' +7197,1901,1,1,7,17,97,197,1197,2197,7197,194,195,'VQAAAA','DVCAAA','HHHHxx' +5916,1902,0,0,6,16,16,916,1916,916,5916,32,33,'OTAAAA','EVCAAA','OOOOxx' +5287,1903,1,3,7,7,87,287,1287,287,5287,174,175,'JVAAAA','FVCAAA','VVVVxx' +9095,1904,1,3,5,15,95,95,1095,4095,9095,190,191,'VLAAAA','GVCAAA','AAAAxx' +7137,1905,1,1,7,17,37,137,1137,2137,7137,74,75,'NOAAAA','HVCAAA','HHHHxx' +7902,1906,0,2,2,2,2,902,1902,2902,7902,4,5,'YRAAAA','IVCAAA','OOOOxx' +7598,1907,0,2,8,18,98,598,1598,2598,7598,196,197,'GGAAAA','JVCAAA','VVVVxx' +5652,1908,0,0,2,12,52,652,1652,652,5652,104,105,'KJAAAA','KVCAAA','AAAAxx' +2017,1909,1,1,7,17,17,17,17,2017,2017,34,35,'PZAAAA','LVCAAA','HHHHxx' +7255,1910,1,3,5,15,55,255,1255,2255,7255,110,111,'BTAAAA','MVCAAA','OOOOxx' +7999,1911,1,3,9,19,99,999,1999,2999,7999,198,199,'RVAAAA','NVCAAA','VVVVxx' +5388,1912,0,0,8,8,88,388,1388,388,5388,176,177,'GZAAAA','OVCAAA','AAAAxx' +8754,1913,0,2,4,14,54,754,754,3754,8754,108,109,'SYAAAA','PVCAAA','HHHHxx' +5415,1914,1,3,5,15,15,415,1415,415,5415,30,31,'HAAAAA','QVCAAA','OOOOxx' +8861,1915,1,1,1,1,61,861,861,3861,8861,122,123,'VCAAAA','RVCAAA','VVVVxx' +2874,1916,0,2,4,14,74,874,874,2874,2874,148,149,'OGAAAA','SVCAAA','AAAAxx' +9910,1917,0,2,0,10,10,910,1910,4910,9910,20,21,'ERAAAA','TVCAAA','HHHHxx' +5178,1918,0,2,8,18,78,178,1178,178,5178,156,157,'ERAAAA','UVCAAA','OOOOxx' +5698,1919,0,2,8,18,98,698,1698,698,5698,196,197,'ELAAAA','VVCAAA','VVVVxx' +8500,1920,0,0,0,0,0,500,500,3500,8500,0,1,'YOAAAA','WVCAAA','AAAAxx' +1814,1921,0,2,4,14,14,814,1814,1814,1814,28,29,'URAAAA','XVCAAA','HHHHxx' +4968,1922,0,0,8,8,68,968,968,4968,4968,136,137,'CJAAAA','YVCAAA','OOOOxx' +2642,1923,0,2,2,2,42,642,642,2642,2642,84,85,'QXAAAA','ZVCAAA','VVVVxx' +1578,1924,0,2,8,18,78,578,1578,1578,1578,156,157,'SIAAAA','AWCAAA','AAAAxx' +4774,1925,0,2,4,14,74,774,774,4774,4774,148,149,'QBAAAA','BWCAAA','HHHHxx' +7062,1926,0,2,2,2,62,62,1062,2062,7062,124,125,'QLAAAA','CWCAAA','OOOOxx' +5381,1927,1,1,1,1,81,381,1381,381,5381,162,163,'ZYAAAA','DWCAAA','VVVVxx' +7985,1928,1,1,5,5,85,985,1985,2985,7985,170,171,'DVAAAA','EWCAAA','AAAAxx' +3850,1929,0,2,0,10,50,850,1850,3850,3850,100,101,'CSAAAA','FWCAAA','HHHHxx' +5624,1930,0,0,4,4,24,624,1624,624,5624,48,49,'IIAAAA','GWCAAA','OOOOxx' +8948,1931,0,0,8,8,48,948,948,3948,8948,96,97,'EGAAAA','HWCAAA','VVVVxx' +995,1932,1,3,5,15,95,995,995,995,995,190,191,'HMAAAA','IWCAAA','AAAAxx' +5058,1933,0,2,8,18,58,58,1058,58,5058,116,117,'OMAAAA','JWCAAA','HHHHxx' +9670,1934,0,2,0,10,70,670,1670,4670,9670,140,141,'YHAAAA','KWCAAA','OOOOxx' +3115,1935,1,3,5,15,15,115,1115,3115,3115,30,31,'VPAAAA','LWCAAA','VVVVxx' +4935,1936,1,3,5,15,35,935,935,4935,4935,70,71,'VHAAAA','MWCAAA','AAAAxx' +4735,1937,1,3,5,15,35,735,735,4735,4735,70,71,'DAAAAA','NWCAAA','HHHHxx' +1348,1938,0,0,8,8,48,348,1348,1348,1348,96,97,'WZAAAA','OWCAAA','OOOOxx' +2380,1939,0,0,0,0,80,380,380,2380,2380,160,161,'ONAAAA','PWCAAA','VVVVxx' +4246,1940,0,2,6,6,46,246,246,4246,4246,92,93,'IHAAAA','QWCAAA','AAAAxx' +522,1941,0,2,2,2,22,522,522,522,522,44,45,'CUAAAA','RWCAAA','HHHHxx' +1701,1942,1,1,1,1,1,701,1701,1701,1701,2,3,'LNAAAA','SWCAAA','OOOOxx' +9709,1943,1,1,9,9,9,709,1709,4709,9709,18,19,'LJAAAA','TWCAAA','VVVVxx' +8829,1944,1,1,9,9,29,829,829,3829,8829,58,59,'PBAAAA','UWCAAA','AAAAxx' +7936,1945,0,0,6,16,36,936,1936,2936,7936,72,73,'GTAAAA','VWCAAA','HHHHxx' +8474,1946,0,2,4,14,74,474,474,3474,8474,148,149,'YNAAAA','WWCAAA','OOOOxx' +4676,1947,0,0,6,16,76,676,676,4676,4676,152,153,'WXAAAA','XWCAAA','VVVVxx' +6303,1948,1,3,3,3,3,303,303,1303,6303,6,7,'LIAAAA','YWCAAA','AAAAxx' +3485,1949,1,1,5,5,85,485,1485,3485,3485,170,171,'BEAAAA','ZWCAAA','HHHHxx' +2695,1950,1,3,5,15,95,695,695,2695,2695,190,191,'RZAAAA','AXCAAA','OOOOxx' +8830,1951,0,2,0,10,30,830,830,3830,8830,60,61,'QBAAAA','BXCAAA','VVVVxx' +898,1952,0,2,8,18,98,898,898,898,898,196,197,'OIAAAA','CXCAAA','AAAAxx' +7268,1953,0,0,8,8,68,268,1268,2268,7268,136,137,'OTAAAA','DXCAAA','HHHHxx' +6568,1954,0,0,8,8,68,568,568,1568,6568,136,137,'QSAAAA','EXCAAA','OOOOxx' +9724,1955,0,0,4,4,24,724,1724,4724,9724,48,49,'AKAAAA','FXCAAA','VVVVxx' +3329,1956,1,1,9,9,29,329,1329,3329,3329,58,59,'BYAAAA','GXCAAA','AAAAxx' +9860,1957,0,0,0,0,60,860,1860,4860,9860,120,121,'GPAAAA','HXCAAA','HHHHxx' +6833,1958,1,1,3,13,33,833,833,1833,6833,66,67,'VCAAAA','IXCAAA','OOOOxx' +5956,1959,0,0,6,16,56,956,1956,956,5956,112,113,'CVAAAA','JXCAAA','VVVVxx' +3963,1960,1,3,3,3,63,963,1963,3963,3963,126,127,'LWAAAA','KXCAAA','AAAAxx' +883,1961,1,3,3,3,83,883,883,883,883,166,167,'ZHAAAA','LXCAAA','HHHHxx' +2761,1962,1,1,1,1,61,761,761,2761,2761,122,123,'FCAAAA','MXCAAA','OOOOxx' +4644,1963,0,0,4,4,44,644,644,4644,4644,88,89,'QWAAAA','NXCAAA','VVVVxx' +1358,1964,0,2,8,18,58,358,1358,1358,1358,116,117,'GAAAAA','OXCAAA','AAAAxx' +2049,1965,1,1,9,9,49,49,49,2049,2049,98,99,'VAAAAA','PXCAAA','HHHHxx' +2193,1966,1,1,3,13,93,193,193,2193,2193,186,187,'JGAAAA','QXCAAA','OOOOxx' +9435,1967,1,3,5,15,35,435,1435,4435,9435,70,71,'XYAAAA','RXCAAA','VVVVxx' +5890,1968,0,2,0,10,90,890,1890,890,5890,180,181,'OSAAAA','SXCAAA','AAAAxx' +8149,1969,1,1,9,9,49,149,149,3149,8149,98,99,'LBAAAA','TXCAAA','HHHHxx' +423,1970,1,3,3,3,23,423,423,423,423,46,47,'HQAAAA','UXCAAA','OOOOxx' +7980,1971,0,0,0,0,80,980,1980,2980,7980,160,161,'YUAAAA','VXCAAA','VVVVxx' +9019,1972,1,3,9,19,19,19,1019,4019,9019,38,39,'XIAAAA','WXCAAA','AAAAxx' +1647,1973,1,3,7,7,47,647,1647,1647,1647,94,95,'JLAAAA','XXCAAA','HHHHxx' +9495,1974,1,3,5,15,95,495,1495,4495,9495,190,191,'FBAAAA','YXCAAA','OOOOxx' +3904,1975,0,0,4,4,4,904,1904,3904,3904,8,9,'EUAAAA','ZXCAAA','VVVVxx' +5838,1976,0,2,8,18,38,838,1838,838,5838,76,77,'OQAAAA','AYCAAA','AAAAxx' +3866,1977,0,2,6,6,66,866,1866,3866,3866,132,133,'SSAAAA','BYCAAA','HHHHxx' +3093,1978,1,1,3,13,93,93,1093,3093,3093,186,187,'ZOAAAA','CYCAAA','OOOOxx' +9666,1979,0,2,6,6,66,666,1666,4666,9666,132,133,'UHAAAA','DYCAAA','VVVVxx' +1246,1980,0,2,6,6,46,246,1246,1246,1246,92,93,'YVAAAA','EYCAAA','AAAAxx' +9759,1981,1,3,9,19,59,759,1759,4759,9759,118,119,'JLAAAA','FYCAAA','HHHHxx' +7174,1982,0,2,4,14,74,174,1174,2174,7174,148,149,'YPAAAA','GYCAAA','OOOOxx' +7678,1983,0,2,8,18,78,678,1678,2678,7678,156,157,'IJAAAA','HYCAAA','VVVVxx' +3004,1984,0,0,4,4,4,4,1004,3004,3004,8,9,'OLAAAA','IYCAAA','AAAAxx' +5607,1985,1,3,7,7,7,607,1607,607,5607,14,15,'RHAAAA','JYCAAA','HHHHxx' +8510,1986,0,2,0,10,10,510,510,3510,8510,20,21,'IPAAAA','KYCAAA','OOOOxx' +1483,1987,1,3,3,3,83,483,1483,1483,1483,166,167,'BFAAAA','LYCAAA','VVVVxx' +2915,1988,1,3,5,15,15,915,915,2915,2915,30,31,'DIAAAA','MYCAAA','AAAAxx' +1548,1989,0,0,8,8,48,548,1548,1548,1548,96,97,'OHAAAA','NYCAAA','HHHHxx' +5767,1990,1,3,7,7,67,767,1767,767,5767,134,135,'VNAAAA','OYCAAA','OOOOxx' +3214,1991,0,2,4,14,14,214,1214,3214,3214,28,29,'QTAAAA','PYCAAA','VVVVxx' +8663,1992,1,3,3,3,63,663,663,3663,8663,126,127,'FVAAAA','QYCAAA','AAAAxx' +5425,1993,1,1,5,5,25,425,1425,425,5425,50,51,'RAAAAA','RYCAAA','HHHHxx' +8530,1994,0,2,0,10,30,530,530,3530,8530,60,61,'CQAAAA','SYCAAA','OOOOxx' +821,1995,1,1,1,1,21,821,821,821,821,42,43,'PFAAAA','TYCAAA','VVVVxx' +8816,1996,0,0,6,16,16,816,816,3816,8816,32,33,'CBAAAA','UYCAAA','AAAAxx' +9367,1997,1,3,7,7,67,367,1367,4367,9367,134,135,'HWAAAA','VYCAAA','HHHHxx' +4138,1998,0,2,8,18,38,138,138,4138,4138,76,77,'EDAAAA','WYCAAA','OOOOxx' +94,1999,0,2,4,14,94,94,94,94,94,188,189,'QDAAAA','XYCAAA','VVVVxx' +1858,2000,0,2,8,18,58,858,1858,1858,1858,116,117,'MTAAAA','YYCAAA','AAAAxx' +5513,2001,1,1,3,13,13,513,1513,513,5513,26,27,'BEAAAA','ZYCAAA','HHHHxx' +9620,2002,0,0,0,0,20,620,1620,4620,9620,40,41,'AGAAAA','AZCAAA','OOOOxx' +4770,2003,0,2,0,10,70,770,770,4770,4770,140,141,'MBAAAA','BZCAAA','VVVVxx' +5193,2004,1,1,3,13,93,193,1193,193,5193,186,187,'TRAAAA','CZCAAA','AAAAxx' +198,2005,0,2,8,18,98,198,198,198,198,196,197,'QHAAAA','DZCAAA','HHHHxx' +417,2006,1,1,7,17,17,417,417,417,417,34,35,'BQAAAA','EZCAAA','OOOOxx' +173,2007,1,1,3,13,73,173,173,173,173,146,147,'RGAAAA','FZCAAA','VVVVxx' +6248,2008,0,0,8,8,48,248,248,1248,6248,96,97,'IGAAAA','GZCAAA','AAAAxx' +302,2009,0,2,2,2,2,302,302,302,302,4,5,'QLAAAA','HZCAAA','HHHHxx' +8983,2010,1,3,3,3,83,983,983,3983,8983,166,167,'NHAAAA','IZCAAA','OOOOxx' +4840,2011,0,0,0,0,40,840,840,4840,4840,80,81,'EEAAAA','JZCAAA','VVVVxx' +2876,2012,0,0,6,16,76,876,876,2876,2876,152,153,'QGAAAA','KZCAAA','AAAAxx' +5841,2013,1,1,1,1,41,841,1841,841,5841,82,83,'RQAAAA','LZCAAA','HHHHxx' +2766,2014,0,2,6,6,66,766,766,2766,2766,132,133,'KCAAAA','MZCAAA','OOOOxx' +9482,2015,0,2,2,2,82,482,1482,4482,9482,164,165,'SAAAAA','NZCAAA','VVVVxx' +5335,2016,1,3,5,15,35,335,1335,335,5335,70,71,'FXAAAA','OZCAAA','AAAAxx' +1502,2017,0,2,2,2,2,502,1502,1502,1502,4,5,'UFAAAA','PZCAAA','HHHHxx' +9291,2018,1,3,1,11,91,291,1291,4291,9291,182,183,'JTAAAA','QZCAAA','OOOOxx' +8655,2019,1,3,5,15,55,655,655,3655,8655,110,111,'XUAAAA','RZCAAA','VVVVxx' +1687,2020,1,3,7,7,87,687,1687,1687,1687,174,175,'XMAAAA','SZCAAA','AAAAxx' +8171,2021,1,3,1,11,71,171,171,3171,8171,142,143,'HCAAAA','TZCAAA','HHHHxx' +5699,2022,1,3,9,19,99,699,1699,699,5699,198,199,'FLAAAA','UZCAAA','OOOOxx' +1462,2023,0,2,2,2,62,462,1462,1462,1462,124,125,'GEAAAA','VZCAAA','VVVVxx' +608,2024,0,0,8,8,8,608,608,608,608,16,17,'KXAAAA','WZCAAA','AAAAxx' +6860,2025,0,0,0,0,60,860,860,1860,6860,120,121,'WDAAAA','XZCAAA','HHHHxx' +6063,2026,1,3,3,3,63,63,63,1063,6063,126,127,'FZAAAA','YZCAAA','OOOOxx' +1422,2027,0,2,2,2,22,422,1422,1422,1422,44,45,'SCAAAA','ZZCAAA','VVVVxx' +1932,2028,0,0,2,12,32,932,1932,1932,1932,64,65,'IWAAAA','AADAAA','AAAAxx' +5065,2029,1,1,5,5,65,65,1065,65,5065,130,131,'VMAAAA','BADAAA','HHHHxx' +432,2030,0,0,2,12,32,432,432,432,432,64,65,'QQAAAA','CADAAA','OOOOxx' +4680,2031,0,0,0,0,80,680,680,4680,4680,160,161,'AYAAAA','DADAAA','VVVVxx' +8172,2032,0,0,2,12,72,172,172,3172,8172,144,145,'ICAAAA','EADAAA','AAAAxx' +8668,2033,0,0,8,8,68,668,668,3668,8668,136,137,'KVAAAA','FADAAA','HHHHxx' +256,2034,0,0,6,16,56,256,256,256,256,112,113,'WJAAAA','GADAAA','OOOOxx' +2500,2035,0,0,0,0,0,500,500,2500,2500,0,1,'ESAAAA','HADAAA','VVVVxx' +274,2036,0,2,4,14,74,274,274,274,274,148,149,'OKAAAA','IADAAA','AAAAxx' +5907,2037,1,3,7,7,7,907,1907,907,5907,14,15,'FTAAAA','JADAAA','HHHHxx' +8587,2038,1,3,7,7,87,587,587,3587,8587,174,175,'HSAAAA','KADAAA','OOOOxx' +9942,2039,0,2,2,2,42,942,1942,4942,9942,84,85,'KSAAAA','LADAAA','VVVVxx' +116,2040,0,0,6,16,16,116,116,116,116,32,33,'MEAAAA','MADAAA','AAAAxx' +7134,2041,0,2,4,14,34,134,1134,2134,7134,68,69,'KOAAAA','NADAAA','HHHHxx' +9002,2042,0,2,2,2,2,2,1002,4002,9002,4,5,'GIAAAA','OADAAA','OOOOxx' +1209,2043,1,1,9,9,9,209,1209,1209,1209,18,19,'NUAAAA','PADAAA','VVVVxx' +9983,2044,1,3,3,3,83,983,1983,4983,9983,166,167,'ZTAAAA','QADAAA','AAAAxx' +1761,2045,1,1,1,1,61,761,1761,1761,1761,122,123,'TPAAAA','RADAAA','HHHHxx' +7723,2046,1,3,3,3,23,723,1723,2723,7723,46,47,'BLAAAA','SADAAA','OOOOxx' +6518,2047,0,2,8,18,18,518,518,1518,6518,36,37,'SQAAAA','TADAAA','VVVVxx' +1372,2048,0,0,2,12,72,372,1372,1372,1372,144,145,'UAAAAA','UADAAA','AAAAxx' +3587,2049,1,3,7,7,87,587,1587,3587,3587,174,175,'ZHAAAA','VADAAA','HHHHxx' +5323,2050,1,3,3,3,23,323,1323,323,5323,46,47,'TWAAAA','WADAAA','OOOOxx' +5902,2051,0,2,2,2,2,902,1902,902,5902,4,5,'ATAAAA','XADAAA','VVVVxx' +3749,2052,1,1,9,9,49,749,1749,3749,3749,98,99,'FOAAAA','YADAAA','AAAAxx' +5965,2053,1,1,5,5,65,965,1965,965,5965,130,131,'LVAAAA','ZADAAA','HHHHxx' +663,2054,1,3,3,3,63,663,663,663,663,126,127,'NZAAAA','ABDAAA','OOOOxx' +36,2055,0,0,6,16,36,36,36,36,36,72,73,'KBAAAA','BBDAAA','VVVVxx' +9782,2056,0,2,2,2,82,782,1782,4782,9782,164,165,'GMAAAA','CBDAAA','AAAAxx' +5412,2057,0,0,2,12,12,412,1412,412,5412,24,25,'EAAAAA','DBDAAA','HHHHxx' +9961,2058,1,1,1,1,61,961,1961,4961,9961,122,123,'DTAAAA','EBDAAA','OOOOxx' +6492,2059,0,0,2,12,92,492,492,1492,6492,184,185,'SPAAAA','FBDAAA','VVVVxx' +4234,2060,0,2,4,14,34,234,234,4234,4234,68,69,'WGAAAA','GBDAAA','AAAAxx' +4922,2061,0,2,2,2,22,922,922,4922,4922,44,45,'IHAAAA','HBDAAA','HHHHxx' +6166,2062,0,2,6,6,66,166,166,1166,6166,132,133,'EDAAAA','IBDAAA','OOOOxx' +7019,2063,1,3,9,19,19,19,1019,2019,7019,38,39,'ZJAAAA','JBDAAA','VVVVxx' +7805,2064,1,1,5,5,5,805,1805,2805,7805,10,11,'FOAAAA','KBDAAA','AAAAxx' +9808,2065,0,0,8,8,8,808,1808,4808,9808,16,17,'GNAAAA','LBDAAA','HHHHxx' +2550,2066,0,2,0,10,50,550,550,2550,2550,100,101,'CUAAAA','MBDAAA','OOOOxx' +8626,2067,0,2,6,6,26,626,626,3626,8626,52,53,'UTAAAA','NBDAAA','VVVVxx' +5649,2068,1,1,9,9,49,649,1649,649,5649,98,99,'HJAAAA','OBDAAA','AAAAxx' +3117,2069,1,1,7,17,17,117,1117,3117,3117,34,35,'XPAAAA','PBDAAA','HHHHxx' +866,2070,0,2,6,6,66,866,866,866,866,132,133,'IHAAAA','QBDAAA','OOOOxx' +2323,2071,1,3,3,3,23,323,323,2323,2323,46,47,'JLAAAA','RBDAAA','VVVVxx' +5132,2072,0,0,2,12,32,132,1132,132,5132,64,65,'KPAAAA','SBDAAA','AAAAxx' +9222,2073,0,2,2,2,22,222,1222,4222,9222,44,45,'SQAAAA','TBDAAA','HHHHxx' +3934,2074,0,2,4,14,34,934,1934,3934,3934,68,69,'IVAAAA','UBDAAA','OOOOxx' +4845,2075,1,1,5,5,45,845,845,4845,4845,90,91,'JEAAAA','VBDAAA','VVVVxx' +7714,2076,0,2,4,14,14,714,1714,2714,7714,28,29,'SKAAAA','WBDAAA','AAAAxx' +9818,2077,0,2,8,18,18,818,1818,4818,9818,36,37,'QNAAAA','XBDAAA','HHHHxx' +2219,2078,1,3,9,19,19,219,219,2219,2219,38,39,'JHAAAA','YBDAAA','OOOOxx' +6573,2079,1,1,3,13,73,573,573,1573,6573,146,147,'VSAAAA','ZBDAAA','VVVVxx' +4555,2080,1,3,5,15,55,555,555,4555,4555,110,111,'FTAAAA','ACDAAA','AAAAxx' +7306,2081,0,2,6,6,6,306,1306,2306,7306,12,13,'AVAAAA','BCDAAA','HHHHxx' +9313,2082,1,1,3,13,13,313,1313,4313,9313,26,27,'FUAAAA','CCDAAA','OOOOxx' +3924,2083,0,0,4,4,24,924,1924,3924,3924,48,49,'YUAAAA','DCDAAA','VVVVxx' +5176,2084,0,0,6,16,76,176,1176,176,5176,152,153,'CRAAAA','ECDAAA','AAAAxx' +9767,2085,1,3,7,7,67,767,1767,4767,9767,134,135,'RLAAAA','FCDAAA','HHHHxx' +905,2086,1,1,5,5,5,905,905,905,905,10,11,'VIAAAA','GCDAAA','OOOOxx' +8037,2087,1,1,7,17,37,37,37,3037,8037,74,75,'DXAAAA','HCDAAA','VVVVxx' +8133,2088,1,1,3,13,33,133,133,3133,8133,66,67,'VAAAAA','ICDAAA','AAAAxx' +2954,2089,0,2,4,14,54,954,954,2954,2954,108,109,'QJAAAA','JCDAAA','HHHHxx' +7262,2090,0,2,2,2,62,262,1262,2262,7262,124,125,'ITAAAA','KCDAAA','OOOOxx' +8768,2091,0,0,8,8,68,768,768,3768,8768,136,137,'GZAAAA','LCDAAA','VVVVxx' +6953,2092,1,1,3,13,53,953,953,1953,6953,106,107,'LHAAAA','MCDAAA','AAAAxx' +1984,2093,0,0,4,4,84,984,1984,1984,1984,168,169,'IYAAAA','NCDAAA','HHHHxx' +9348,2094,0,0,8,8,48,348,1348,4348,9348,96,97,'OVAAAA','OCDAAA','OOOOxx' +7769,2095,1,1,9,9,69,769,1769,2769,7769,138,139,'VMAAAA','PCDAAA','VVVVxx' +2994,2096,0,2,4,14,94,994,994,2994,2994,188,189,'ELAAAA','QCDAAA','AAAAxx' +5938,2097,0,2,8,18,38,938,1938,938,5938,76,77,'KUAAAA','RCDAAA','HHHHxx' +556,2098,0,0,6,16,56,556,556,556,556,112,113,'KVAAAA','SCDAAA','OOOOxx' +2577,2099,1,1,7,17,77,577,577,2577,2577,154,155,'DVAAAA','TCDAAA','VVVVxx' +8733,2100,1,1,3,13,33,733,733,3733,8733,66,67,'XXAAAA','UCDAAA','AAAAxx' +3108,2101,0,0,8,8,8,108,1108,3108,3108,16,17,'OPAAAA','VCDAAA','HHHHxx' +4166,2102,0,2,6,6,66,166,166,4166,4166,132,133,'GEAAAA','WCDAAA','OOOOxx' +3170,2103,0,2,0,10,70,170,1170,3170,3170,140,141,'YRAAAA','XCDAAA','VVVVxx' +8118,2104,0,2,8,18,18,118,118,3118,8118,36,37,'GAAAAA','YCDAAA','AAAAxx' +8454,2105,0,2,4,14,54,454,454,3454,8454,108,109,'ENAAAA','ZCDAAA','HHHHxx' +5338,2106,0,2,8,18,38,338,1338,338,5338,76,77,'IXAAAA','ADDAAA','OOOOxx' +402,2107,0,2,2,2,2,402,402,402,402,4,5,'MPAAAA','BDDAAA','VVVVxx' +5673,2108,1,1,3,13,73,673,1673,673,5673,146,147,'FKAAAA','CDDAAA','AAAAxx' +4324,2109,0,0,4,4,24,324,324,4324,4324,48,49,'IKAAAA','DDDAAA','HHHHxx' +1943,2110,1,3,3,3,43,943,1943,1943,1943,86,87,'TWAAAA','EDDAAA','OOOOxx' +7703,2111,1,3,3,3,3,703,1703,2703,7703,6,7,'HKAAAA','FDDAAA','VVVVxx' +7180,2112,0,0,0,0,80,180,1180,2180,7180,160,161,'EQAAAA','GDDAAA','AAAAxx' +5478,2113,0,2,8,18,78,478,1478,478,5478,156,157,'SCAAAA','HDDAAA','HHHHxx' +5775,2114,1,3,5,15,75,775,1775,775,5775,150,151,'DOAAAA','IDDAAA','OOOOxx' +6952,2115,0,0,2,12,52,952,952,1952,6952,104,105,'KHAAAA','JDDAAA','VVVVxx' +9022,2116,0,2,2,2,22,22,1022,4022,9022,44,45,'AJAAAA','KDDAAA','AAAAxx' +547,2117,1,3,7,7,47,547,547,547,547,94,95,'BVAAAA','LDDAAA','HHHHxx' +5877,2118,1,1,7,17,77,877,1877,877,5877,154,155,'BSAAAA','MDDAAA','OOOOxx' +9580,2119,0,0,0,0,80,580,1580,4580,9580,160,161,'MEAAAA','NDDAAA','VVVVxx' +6094,2120,0,2,4,14,94,94,94,1094,6094,188,189,'KAAAAA','ODDAAA','AAAAxx' +3398,2121,0,2,8,18,98,398,1398,3398,3398,196,197,'SAAAAA','PDDAAA','HHHHxx' +4574,2122,0,2,4,14,74,574,574,4574,4574,148,149,'YTAAAA','QDDAAA','OOOOxx' +3675,2123,1,3,5,15,75,675,1675,3675,3675,150,151,'JLAAAA','RDDAAA','VVVVxx' +6413,2124,1,1,3,13,13,413,413,1413,6413,26,27,'RMAAAA','SDDAAA','AAAAxx' +9851,2125,1,3,1,11,51,851,1851,4851,9851,102,103,'XOAAAA','TDDAAA','HHHHxx' +126,2126,0,2,6,6,26,126,126,126,126,52,53,'WEAAAA','UDDAAA','OOOOxx' +6803,2127,1,3,3,3,3,803,803,1803,6803,6,7,'RBAAAA','VDDAAA','VVVVxx' +6949,2128,1,1,9,9,49,949,949,1949,6949,98,99,'HHAAAA','WDDAAA','AAAAxx' +115,2129,1,3,5,15,15,115,115,115,115,30,31,'LEAAAA','XDDAAA','HHHHxx' +4165,2130,1,1,5,5,65,165,165,4165,4165,130,131,'FEAAAA','YDDAAA','OOOOxx' +201,2131,1,1,1,1,1,201,201,201,201,2,3,'THAAAA','ZDDAAA','VVVVxx' +9324,2132,0,0,4,4,24,324,1324,4324,9324,48,49,'QUAAAA','AEDAAA','AAAAxx' +6562,2133,0,2,2,2,62,562,562,1562,6562,124,125,'KSAAAA','BEDAAA','HHHHxx' +1917,2134,1,1,7,17,17,917,1917,1917,1917,34,35,'TVAAAA','CEDAAA','OOOOxx' +558,2135,0,2,8,18,58,558,558,558,558,116,117,'MVAAAA','DEDAAA','VVVVxx' +8515,2136,1,3,5,15,15,515,515,3515,8515,30,31,'NPAAAA','EEDAAA','AAAAxx' +6321,2137,1,1,1,1,21,321,321,1321,6321,42,43,'DJAAAA','FEDAAA','HHHHxx' +6892,2138,0,0,2,12,92,892,892,1892,6892,184,185,'CFAAAA','GEDAAA','OOOOxx' +1001,2139,1,1,1,1,1,1,1001,1001,1001,2,3,'NMAAAA','HEDAAA','VVVVxx' +2858,2140,0,2,8,18,58,858,858,2858,2858,116,117,'YFAAAA','IEDAAA','AAAAxx' +2434,2141,0,2,4,14,34,434,434,2434,2434,68,69,'QPAAAA','JEDAAA','HHHHxx' +4460,2142,0,0,0,0,60,460,460,4460,4460,120,121,'OPAAAA','KEDAAA','OOOOxx' +5447,2143,1,3,7,7,47,447,1447,447,5447,94,95,'NBAAAA','LEDAAA','VVVVxx' +3799,2144,1,3,9,19,99,799,1799,3799,3799,198,199,'DQAAAA','MEDAAA','AAAAxx' +4310,2145,0,2,0,10,10,310,310,4310,4310,20,21,'UJAAAA','NEDAAA','HHHHxx' +405,2146,1,1,5,5,5,405,405,405,405,10,11,'PPAAAA','OEDAAA','OOOOxx' +4573,2147,1,1,3,13,73,573,573,4573,4573,146,147,'XTAAAA','PEDAAA','VVVVxx' +706,2148,0,2,6,6,6,706,706,706,706,12,13,'EBAAAA','QEDAAA','AAAAxx' +7619,2149,1,3,9,19,19,619,1619,2619,7619,38,39,'BHAAAA','REDAAA','HHHHxx' +7959,2150,1,3,9,19,59,959,1959,2959,7959,118,119,'DUAAAA','SEDAAA','OOOOxx' +6712,2151,0,0,2,12,12,712,712,1712,6712,24,25,'EYAAAA','TEDAAA','VVVVxx' +6959,2152,1,3,9,19,59,959,959,1959,6959,118,119,'RHAAAA','UEDAAA','AAAAxx' +9791,2153,1,3,1,11,91,791,1791,4791,9791,182,183,'PMAAAA','VEDAAA','HHHHxx' +2112,2154,0,0,2,12,12,112,112,2112,2112,24,25,'GDAAAA','WEDAAA','OOOOxx' +9114,2155,0,2,4,14,14,114,1114,4114,9114,28,29,'OMAAAA','XEDAAA','VVVVxx' +3506,2156,0,2,6,6,6,506,1506,3506,3506,12,13,'WEAAAA','YEDAAA','AAAAxx' +5002,2157,0,2,2,2,2,2,1002,2,5002,4,5,'KKAAAA','ZEDAAA','HHHHxx' +3518,2158,0,2,8,18,18,518,1518,3518,3518,36,37,'IFAAAA','AFDAAA','OOOOxx' +602,2159,0,2,2,2,2,602,602,602,602,4,5,'EXAAAA','BFDAAA','VVVVxx' +9060,2160,0,0,0,0,60,60,1060,4060,9060,120,121,'MKAAAA','CFDAAA','AAAAxx' +3292,2161,0,0,2,12,92,292,1292,3292,3292,184,185,'QWAAAA','DFDAAA','HHHHxx' +77,2162,1,1,7,17,77,77,77,77,77,154,155,'ZCAAAA','EFDAAA','OOOOxx' +1420,2163,0,0,0,0,20,420,1420,1420,1420,40,41,'QCAAAA','FFDAAA','VVVVxx' +6001,2164,1,1,1,1,1,1,1,1001,6001,2,3,'VWAAAA','GFDAAA','AAAAxx' +7477,2165,1,1,7,17,77,477,1477,2477,7477,154,155,'PBAAAA','HFDAAA','HHHHxx' +6655,2166,1,3,5,15,55,655,655,1655,6655,110,111,'ZVAAAA','IFDAAA','OOOOxx' +7845,2167,1,1,5,5,45,845,1845,2845,7845,90,91,'TPAAAA','JFDAAA','VVVVxx' +8484,2168,0,0,4,4,84,484,484,3484,8484,168,169,'IOAAAA','KFDAAA','AAAAxx' +4345,2169,1,1,5,5,45,345,345,4345,4345,90,91,'DLAAAA','LFDAAA','HHHHxx' +4250,2170,0,2,0,10,50,250,250,4250,4250,100,101,'MHAAAA','MFDAAA','OOOOxx' +2391,2171,1,3,1,11,91,391,391,2391,2391,182,183,'ZNAAAA','NFDAAA','VVVVxx' +6884,2172,0,0,4,4,84,884,884,1884,6884,168,169,'UEAAAA','OFDAAA','AAAAxx' +7270,2173,0,2,0,10,70,270,1270,2270,7270,140,141,'QTAAAA','PFDAAA','HHHHxx' +2499,2174,1,3,9,19,99,499,499,2499,2499,198,199,'DSAAAA','QFDAAA','OOOOxx' +7312,2175,0,0,2,12,12,312,1312,2312,7312,24,25,'GVAAAA','RFDAAA','VVVVxx' +7113,2176,1,1,3,13,13,113,1113,2113,7113,26,27,'PNAAAA','SFDAAA','AAAAxx' +6695,2177,1,3,5,15,95,695,695,1695,6695,190,191,'NXAAAA','TFDAAA','HHHHxx' +6521,2178,1,1,1,1,21,521,521,1521,6521,42,43,'VQAAAA','UFDAAA','OOOOxx' +272,2179,0,0,2,12,72,272,272,272,272,144,145,'MKAAAA','VFDAAA','VVVVxx' +9976,2180,0,0,6,16,76,976,1976,4976,9976,152,153,'STAAAA','WFDAAA','AAAAxx' +992,2181,0,0,2,12,92,992,992,992,992,184,185,'EMAAAA','XFDAAA','HHHHxx' +6158,2182,0,2,8,18,58,158,158,1158,6158,116,117,'WCAAAA','YFDAAA','OOOOxx' +3281,2183,1,1,1,1,81,281,1281,3281,3281,162,163,'FWAAAA','ZFDAAA','VVVVxx' +7446,2184,0,2,6,6,46,446,1446,2446,7446,92,93,'KAAAAA','AGDAAA','AAAAxx' +4679,2185,1,3,9,19,79,679,679,4679,4679,158,159,'ZXAAAA','BGDAAA','HHHHxx' +5203,2186,1,3,3,3,3,203,1203,203,5203,6,7,'DSAAAA','CGDAAA','OOOOxx' +9874,2187,0,2,4,14,74,874,1874,4874,9874,148,149,'UPAAAA','DGDAAA','VVVVxx' +8371,2188,1,3,1,11,71,371,371,3371,8371,142,143,'ZJAAAA','EGDAAA','AAAAxx' +9086,2189,0,2,6,6,86,86,1086,4086,9086,172,173,'MLAAAA','FGDAAA','HHHHxx' +430,2190,0,2,0,10,30,430,430,430,430,60,61,'OQAAAA','GGDAAA','OOOOxx' +8749,2191,1,1,9,9,49,749,749,3749,8749,98,99,'NYAAAA','HGDAAA','VVVVxx' +577,2192,1,1,7,17,77,577,577,577,577,154,155,'FWAAAA','IGDAAA','AAAAxx' +4884,2193,0,0,4,4,84,884,884,4884,4884,168,169,'WFAAAA','JGDAAA','HHHHxx' +3421,2194,1,1,1,1,21,421,1421,3421,3421,42,43,'PBAAAA','KGDAAA','OOOOxx' +2812,2195,0,0,2,12,12,812,812,2812,2812,24,25,'EEAAAA','LGDAAA','VVVVxx' +5958,2196,0,2,8,18,58,958,1958,958,5958,116,117,'EVAAAA','MGDAAA','AAAAxx' +9901,2197,1,1,1,1,1,901,1901,4901,9901,2,3,'VQAAAA','NGDAAA','HHHHxx' +8478,2198,0,2,8,18,78,478,478,3478,8478,156,157,'COAAAA','OGDAAA','OOOOxx' +6545,2199,1,1,5,5,45,545,545,1545,6545,90,91,'TRAAAA','PGDAAA','VVVVxx' +1479,2200,1,3,9,19,79,479,1479,1479,1479,158,159,'XEAAAA','QGDAAA','AAAAxx' +1046,2201,0,2,6,6,46,46,1046,1046,1046,92,93,'GOAAAA','RGDAAA','HHHHxx' +6372,2202,0,0,2,12,72,372,372,1372,6372,144,145,'CLAAAA','SGDAAA','OOOOxx' +8206,2203,0,2,6,6,6,206,206,3206,8206,12,13,'QDAAAA','TGDAAA','VVVVxx' +9544,2204,0,0,4,4,44,544,1544,4544,9544,88,89,'CDAAAA','UGDAAA','AAAAxx' +9287,2205,1,3,7,7,87,287,1287,4287,9287,174,175,'FTAAAA','VGDAAA','HHHHxx' +6786,2206,0,2,6,6,86,786,786,1786,6786,172,173,'ABAAAA','WGDAAA','OOOOxx' +6511,2207,1,3,1,11,11,511,511,1511,6511,22,23,'LQAAAA','XGDAAA','VVVVxx' +603,2208,1,3,3,3,3,603,603,603,603,6,7,'FXAAAA','YGDAAA','AAAAxx' +2022,2209,0,2,2,2,22,22,22,2022,2022,44,45,'UZAAAA','ZGDAAA','HHHHxx' +2086,2210,0,2,6,6,86,86,86,2086,2086,172,173,'GCAAAA','AHDAAA','OOOOxx' +1969,2211,1,1,9,9,69,969,1969,1969,1969,138,139,'TXAAAA','BHDAAA','VVVVxx' +4841,2212,1,1,1,1,41,841,841,4841,4841,82,83,'FEAAAA','CHDAAA','AAAAxx' +5845,2213,1,1,5,5,45,845,1845,845,5845,90,91,'VQAAAA','DHDAAA','HHHHxx' +4635,2214,1,3,5,15,35,635,635,4635,4635,70,71,'HWAAAA','EHDAAA','OOOOxx' +4658,2215,0,2,8,18,58,658,658,4658,4658,116,117,'EXAAAA','FHDAAA','VVVVxx' +2896,2216,0,0,6,16,96,896,896,2896,2896,192,193,'KHAAAA','GHDAAA','AAAAxx' +5179,2217,1,3,9,19,79,179,1179,179,5179,158,159,'FRAAAA','HHDAAA','HHHHxx' +8667,2218,1,3,7,7,67,667,667,3667,8667,134,135,'JVAAAA','IHDAAA','OOOOxx' +7294,2219,0,2,4,14,94,294,1294,2294,7294,188,189,'OUAAAA','JHDAAA','VVVVxx' +3706,2220,0,2,6,6,6,706,1706,3706,3706,12,13,'OMAAAA','KHDAAA','AAAAxx' +8389,2221,1,1,9,9,89,389,389,3389,8389,178,179,'RKAAAA','LHDAAA','HHHHxx' +2486,2222,0,2,6,6,86,486,486,2486,2486,172,173,'QRAAAA','MHDAAA','OOOOxx' +8743,2223,1,3,3,3,43,743,743,3743,8743,86,87,'HYAAAA','NHDAAA','VVVVxx' +2777,2224,1,1,7,17,77,777,777,2777,2777,154,155,'VCAAAA','OHDAAA','AAAAxx' +2113,2225,1,1,3,13,13,113,113,2113,2113,26,27,'HDAAAA','PHDAAA','HHHHxx' +2076,2226,0,0,6,16,76,76,76,2076,2076,152,153,'WBAAAA','QHDAAA','OOOOxx' +2300,2227,0,0,0,0,0,300,300,2300,2300,0,1,'MKAAAA','RHDAAA','VVVVxx' +6894,2228,0,2,4,14,94,894,894,1894,6894,188,189,'EFAAAA','SHDAAA','AAAAxx' +6939,2229,1,3,9,19,39,939,939,1939,6939,78,79,'XGAAAA','THDAAA','HHHHxx' +446,2230,0,2,6,6,46,446,446,446,446,92,93,'ERAAAA','UHDAAA','OOOOxx' +6218,2231,0,2,8,18,18,218,218,1218,6218,36,37,'EFAAAA','VHDAAA','VVVVxx' +1295,2232,1,3,5,15,95,295,1295,1295,1295,190,191,'VXAAAA','WHDAAA','AAAAxx' +5135,2233,1,3,5,15,35,135,1135,135,5135,70,71,'NPAAAA','XHDAAA','HHHHxx' +8122,2234,0,2,2,2,22,122,122,3122,8122,44,45,'KAAAAA','YHDAAA','OOOOxx' +316,2235,0,0,6,16,16,316,316,316,316,32,33,'EMAAAA','ZHDAAA','VVVVxx' +514,2236,0,2,4,14,14,514,514,514,514,28,29,'UTAAAA','AIDAAA','AAAAxx' +7970,2237,0,2,0,10,70,970,1970,2970,7970,140,141,'OUAAAA','BIDAAA','HHHHxx' +9350,2238,0,2,0,10,50,350,1350,4350,9350,100,101,'QVAAAA','CIDAAA','OOOOxx' +3700,2239,0,0,0,0,0,700,1700,3700,3700,0,1,'IMAAAA','DIDAAA','VVVVxx' +582,2240,0,2,2,2,82,582,582,582,582,164,165,'KWAAAA','EIDAAA','AAAAxx' +9722,2241,0,2,2,2,22,722,1722,4722,9722,44,45,'YJAAAA','FIDAAA','HHHHxx' +7398,2242,0,2,8,18,98,398,1398,2398,7398,196,197,'OYAAAA','GIDAAA','OOOOxx' +2265,2243,1,1,5,5,65,265,265,2265,2265,130,131,'DJAAAA','HIDAAA','VVVVxx' +3049,2244,1,1,9,9,49,49,1049,3049,3049,98,99,'HNAAAA','IIDAAA','AAAAxx' +9121,2245,1,1,1,1,21,121,1121,4121,9121,42,43,'VMAAAA','JIDAAA','HHHHxx' +4275,2246,1,3,5,15,75,275,275,4275,4275,150,151,'LIAAAA','KIDAAA','OOOOxx' +6567,2247,1,3,7,7,67,567,567,1567,6567,134,135,'PSAAAA','LIDAAA','VVVVxx' +6755,2248,1,3,5,15,55,755,755,1755,6755,110,111,'VZAAAA','MIDAAA','AAAAxx' +4535,2249,1,3,5,15,35,535,535,4535,4535,70,71,'LSAAAA','NIDAAA','HHHHxx' +7968,2250,0,0,8,8,68,968,1968,2968,7968,136,137,'MUAAAA','OIDAAA','OOOOxx' +3412,2251,0,0,2,12,12,412,1412,3412,3412,24,25,'GBAAAA','PIDAAA','VVVVxx' +6112,2252,0,0,2,12,12,112,112,1112,6112,24,25,'CBAAAA','QIDAAA','AAAAxx' +6805,2253,1,1,5,5,5,805,805,1805,6805,10,11,'TBAAAA','RIDAAA','HHHHxx' +2880,2254,0,0,0,0,80,880,880,2880,2880,160,161,'UGAAAA','SIDAAA','OOOOxx' +7710,2255,0,2,0,10,10,710,1710,2710,7710,20,21,'OKAAAA','TIDAAA','VVVVxx' +7949,2256,1,1,9,9,49,949,1949,2949,7949,98,99,'TTAAAA','UIDAAA','AAAAxx' +7043,2257,1,3,3,3,43,43,1043,2043,7043,86,87,'XKAAAA','VIDAAA','HHHHxx' +9012,2258,0,0,2,12,12,12,1012,4012,9012,24,25,'QIAAAA','WIDAAA','OOOOxx' +878,2259,0,2,8,18,78,878,878,878,878,156,157,'UHAAAA','XIDAAA','VVVVxx' +7930,2260,0,2,0,10,30,930,1930,2930,7930,60,61,'ATAAAA','YIDAAA','AAAAxx' +667,2261,1,3,7,7,67,667,667,667,667,134,135,'RZAAAA','ZIDAAA','HHHHxx' +1905,2262,1,1,5,5,5,905,1905,1905,1905,10,11,'HVAAAA','AJDAAA','OOOOxx' +4958,2263,0,2,8,18,58,958,958,4958,4958,116,117,'SIAAAA','BJDAAA','VVVVxx' +2973,2264,1,1,3,13,73,973,973,2973,2973,146,147,'JKAAAA','CJDAAA','AAAAxx' +3631,2265,1,3,1,11,31,631,1631,3631,3631,62,63,'RJAAAA','DJDAAA','HHHHxx' +5868,2266,0,0,8,8,68,868,1868,868,5868,136,137,'SRAAAA','EJDAAA','OOOOxx' +2873,2267,1,1,3,13,73,873,873,2873,2873,146,147,'NGAAAA','FJDAAA','VVVVxx' +6941,2268,1,1,1,1,41,941,941,1941,6941,82,83,'ZGAAAA','GJDAAA','AAAAxx' +6384,2269,0,0,4,4,84,384,384,1384,6384,168,169,'OLAAAA','HJDAAA','HHHHxx' +3806,2270,0,2,6,6,6,806,1806,3806,3806,12,13,'KQAAAA','IJDAAA','OOOOxx' +5079,2271,1,3,9,19,79,79,1079,79,5079,158,159,'JNAAAA','JJDAAA','VVVVxx' +1970,2272,0,2,0,10,70,970,1970,1970,1970,140,141,'UXAAAA','KJDAAA','AAAAxx' +7810,2273,0,2,0,10,10,810,1810,2810,7810,20,21,'KOAAAA','LJDAAA','HHHHxx' +4639,2274,1,3,9,19,39,639,639,4639,4639,78,79,'LWAAAA','MJDAAA','OOOOxx' +6527,2275,1,3,7,7,27,527,527,1527,6527,54,55,'BRAAAA','NJDAAA','VVVVxx' +8079,2276,1,3,9,19,79,79,79,3079,8079,158,159,'TYAAAA','OJDAAA','AAAAxx' +2740,2277,0,0,0,0,40,740,740,2740,2740,80,81,'KBAAAA','PJDAAA','HHHHxx' +2337,2278,1,1,7,17,37,337,337,2337,2337,74,75,'XLAAAA','QJDAAA','OOOOxx' +6670,2279,0,2,0,10,70,670,670,1670,6670,140,141,'OWAAAA','RJDAAA','VVVVxx' +2345,2280,1,1,5,5,45,345,345,2345,2345,90,91,'FMAAAA','SJDAAA','AAAAxx' +401,2281,1,1,1,1,1,401,401,401,401,2,3,'LPAAAA','TJDAAA','HHHHxx' +2704,2282,0,0,4,4,4,704,704,2704,2704,8,9,'AAAAAA','UJDAAA','OOOOxx' +5530,2283,0,2,0,10,30,530,1530,530,5530,60,61,'SEAAAA','VJDAAA','VVVVxx' +51,2284,1,3,1,11,51,51,51,51,51,102,103,'ZBAAAA','WJDAAA','AAAAxx' +4282,2285,0,2,2,2,82,282,282,4282,4282,164,165,'SIAAAA','XJDAAA','HHHHxx' +7336,2286,0,0,6,16,36,336,1336,2336,7336,72,73,'EWAAAA','YJDAAA','OOOOxx' +8320,2287,0,0,0,0,20,320,320,3320,8320,40,41,'AIAAAA','ZJDAAA','VVVVxx' +7772,2288,0,0,2,12,72,772,1772,2772,7772,144,145,'YMAAAA','AKDAAA','AAAAxx' +1894,2289,0,2,4,14,94,894,1894,1894,1894,188,189,'WUAAAA','BKDAAA','HHHHxx' +2320,2290,0,0,0,0,20,320,320,2320,2320,40,41,'GLAAAA','CKDAAA','OOOOxx' +6232,2291,0,0,2,12,32,232,232,1232,6232,64,65,'SFAAAA','DKDAAA','VVVVxx' +2833,2292,1,1,3,13,33,833,833,2833,2833,66,67,'ZEAAAA','EKDAAA','AAAAxx' +8265,2293,1,1,5,5,65,265,265,3265,8265,130,131,'XFAAAA','FKDAAA','HHHHxx' +4589,2294,1,1,9,9,89,589,589,4589,4589,178,179,'NUAAAA','GKDAAA','OOOOxx' +8182,2295,0,2,2,2,82,182,182,3182,8182,164,165,'SCAAAA','HKDAAA','VVVVxx' +8337,2296,1,1,7,17,37,337,337,3337,8337,74,75,'RIAAAA','IKDAAA','AAAAxx' +8210,2297,0,2,0,10,10,210,210,3210,8210,20,21,'UDAAAA','JKDAAA','HHHHxx' +1406,2298,0,2,6,6,6,406,1406,1406,1406,12,13,'CCAAAA','KKDAAA','OOOOxx' +4463,2299,1,3,3,3,63,463,463,4463,4463,126,127,'RPAAAA','LKDAAA','VVVVxx' +4347,2300,1,3,7,7,47,347,347,4347,4347,94,95,'FLAAAA','MKDAAA','AAAAxx' +181,2301,1,1,1,1,81,181,181,181,181,162,163,'ZGAAAA','NKDAAA','HHHHxx' +9986,2302,0,2,6,6,86,986,1986,4986,9986,172,173,'CUAAAA','OKDAAA','OOOOxx' +661,2303,1,1,1,1,61,661,661,661,661,122,123,'LZAAAA','PKDAAA','VVVVxx' +4105,2304,1,1,5,5,5,105,105,4105,4105,10,11,'XBAAAA','QKDAAA','AAAAxx' +2187,2305,1,3,7,7,87,187,187,2187,2187,174,175,'DGAAAA','RKDAAA','HHHHxx' +1628,2306,0,0,8,8,28,628,1628,1628,1628,56,57,'QKAAAA','SKDAAA','OOOOxx' +3119,2307,1,3,9,19,19,119,1119,3119,3119,38,39,'ZPAAAA','TKDAAA','VVVVxx' +6804,2308,0,0,4,4,4,804,804,1804,6804,8,9,'SBAAAA','UKDAAA','AAAAxx' +9918,2309,0,2,8,18,18,918,1918,4918,9918,36,37,'MRAAAA','VKDAAA','HHHHxx' +8916,2310,0,0,6,16,16,916,916,3916,8916,32,33,'YEAAAA','WKDAAA','OOOOxx' +6057,2311,1,1,7,17,57,57,57,1057,6057,114,115,'ZYAAAA','XKDAAA','VVVVxx' +3622,2312,0,2,2,2,22,622,1622,3622,3622,44,45,'IJAAAA','YKDAAA','AAAAxx' +9168,2313,0,0,8,8,68,168,1168,4168,9168,136,137,'QOAAAA','ZKDAAA','HHHHxx' +3720,2314,0,0,0,0,20,720,1720,3720,3720,40,41,'CNAAAA','ALDAAA','OOOOxx' +9927,2315,1,3,7,7,27,927,1927,4927,9927,54,55,'VRAAAA','BLDAAA','VVVVxx' +5616,2316,0,0,6,16,16,616,1616,616,5616,32,33,'AIAAAA','CLDAAA','AAAAxx' +5210,2317,0,2,0,10,10,210,1210,210,5210,20,21,'KSAAAA','DLDAAA','HHHHxx' +636,2318,0,0,6,16,36,636,636,636,636,72,73,'MYAAAA','ELDAAA','OOOOxx' +9936,2319,0,0,6,16,36,936,1936,4936,9936,72,73,'ESAAAA','FLDAAA','VVVVxx' +2316,2320,0,0,6,16,16,316,316,2316,2316,32,33,'CLAAAA','GLDAAA','AAAAxx' +4363,2321,1,3,3,3,63,363,363,4363,4363,126,127,'VLAAAA','HLDAAA','HHHHxx' +7657,2322,1,1,7,17,57,657,1657,2657,7657,114,115,'NIAAAA','ILDAAA','OOOOxx' +697,2323,1,1,7,17,97,697,697,697,697,194,195,'VAAAAA','JLDAAA','VVVVxx' +912,2324,0,0,2,12,12,912,912,912,912,24,25,'CJAAAA','KLDAAA','AAAAxx' +8806,2325,0,2,6,6,6,806,806,3806,8806,12,13,'SAAAAA','LLDAAA','HHHHxx' +9698,2326,0,2,8,18,98,698,1698,4698,9698,196,197,'AJAAAA','MLDAAA','OOOOxx' +6191,2327,1,3,1,11,91,191,191,1191,6191,182,183,'DEAAAA','NLDAAA','VVVVxx' +1188,2328,0,0,8,8,88,188,1188,1188,1188,176,177,'STAAAA','OLDAAA','AAAAxx' +7676,2329,0,0,6,16,76,676,1676,2676,7676,152,153,'GJAAAA','PLDAAA','HHHHxx' +7073,2330,1,1,3,13,73,73,1073,2073,7073,146,147,'BMAAAA','QLDAAA','OOOOxx' +8019,2331,1,3,9,19,19,19,19,3019,8019,38,39,'LWAAAA','RLDAAA','VVVVxx' +4726,2332,0,2,6,6,26,726,726,4726,4726,52,53,'UZAAAA','SLDAAA','AAAAxx' +4648,2333,0,0,8,8,48,648,648,4648,4648,96,97,'UWAAAA','TLDAAA','HHHHxx' +3227,2334,1,3,7,7,27,227,1227,3227,3227,54,55,'DUAAAA','ULDAAA','OOOOxx' +7232,2335,0,0,2,12,32,232,1232,2232,7232,64,65,'ESAAAA','VLDAAA','VVVVxx' +9761,2336,1,1,1,1,61,761,1761,4761,9761,122,123,'LLAAAA','WLDAAA','AAAAxx' +3105,2337,1,1,5,5,5,105,1105,3105,3105,10,11,'LPAAAA','XLDAAA','HHHHxx' +5266,2338,0,2,6,6,66,266,1266,266,5266,132,133,'OUAAAA','YLDAAA','OOOOxx' +6788,2339,0,0,8,8,88,788,788,1788,6788,176,177,'CBAAAA','ZLDAAA','VVVVxx' +2442,2340,0,2,2,2,42,442,442,2442,2442,84,85,'YPAAAA','AMDAAA','AAAAxx' +8198,2341,0,2,8,18,98,198,198,3198,8198,196,197,'IDAAAA','BMDAAA','HHHHxx' +5806,2342,0,2,6,6,6,806,1806,806,5806,12,13,'IPAAAA','CMDAAA','OOOOxx' +8928,2343,0,0,8,8,28,928,928,3928,8928,56,57,'KFAAAA','DMDAAA','VVVVxx' +1657,2344,1,1,7,17,57,657,1657,1657,1657,114,115,'TLAAAA','EMDAAA','AAAAxx' +9164,2345,0,0,4,4,64,164,1164,4164,9164,128,129,'MOAAAA','FMDAAA','HHHHxx' +1851,2346,1,3,1,11,51,851,1851,1851,1851,102,103,'FTAAAA','GMDAAA','OOOOxx' +4744,2347,0,0,4,4,44,744,744,4744,4744,88,89,'MAAAAA','HMDAAA','VVVVxx' +8055,2348,1,3,5,15,55,55,55,3055,8055,110,111,'VXAAAA','IMDAAA','AAAAxx' +1533,2349,1,1,3,13,33,533,1533,1533,1533,66,67,'ZGAAAA','JMDAAA','HHHHxx' +1260,2350,0,0,0,0,60,260,1260,1260,1260,120,121,'MWAAAA','KMDAAA','OOOOxx' +1290,2351,0,2,0,10,90,290,1290,1290,1290,180,181,'QXAAAA','LMDAAA','VVVVxx' +297,2352,1,1,7,17,97,297,297,297,297,194,195,'LLAAAA','MMDAAA','AAAAxx' +4145,2353,1,1,5,5,45,145,145,4145,4145,90,91,'LDAAAA','NMDAAA','HHHHxx' +863,2354,1,3,3,3,63,863,863,863,863,126,127,'FHAAAA','OMDAAA','OOOOxx' +3423,2355,1,3,3,3,23,423,1423,3423,3423,46,47,'RBAAAA','PMDAAA','VVVVxx' +8750,2356,0,2,0,10,50,750,750,3750,8750,100,101,'OYAAAA','QMDAAA','AAAAxx' +3546,2357,0,2,6,6,46,546,1546,3546,3546,92,93,'KGAAAA','RMDAAA','HHHHxx' +3678,2358,0,2,8,18,78,678,1678,3678,3678,156,157,'MLAAAA','SMDAAA','OOOOxx' +5313,2359,1,1,3,13,13,313,1313,313,5313,26,27,'JWAAAA','TMDAAA','VVVVxx' +6233,2360,1,1,3,13,33,233,233,1233,6233,66,67,'TFAAAA','UMDAAA','AAAAxx' +5802,2361,0,2,2,2,2,802,1802,802,5802,4,5,'EPAAAA','VMDAAA','HHHHxx' +7059,2362,1,3,9,19,59,59,1059,2059,7059,118,119,'NLAAAA','WMDAAA','OOOOxx' +6481,2363,1,1,1,1,81,481,481,1481,6481,162,163,'HPAAAA','XMDAAA','VVVVxx' +1596,2364,0,0,6,16,96,596,1596,1596,1596,192,193,'KJAAAA','YMDAAA','AAAAxx' +8181,2365,1,1,1,1,81,181,181,3181,8181,162,163,'RCAAAA','ZMDAAA','HHHHxx' +5368,2366,0,0,8,8,68,368,1368,368,5368,136,137,'MYAAAA','ANDAAA','OOOOxx' +9416,2367,0,0,6,16,16,416,1416,4416,9416,32,33,'EYAAAA','BNDAAA','VVVVxx' +9521,2368,1,1,1,1,21,521,1521,4521,9521,42,43,'FCAAAA','CNDAAA','AAAAxx' +1042,2369,0,2,2,2,42,42,1042,1042,1042,84,85,'COAAAA','DNDAAA','HHHHxx' +4503,2370,1,3,3,3,3,503,503,4503,4503,6,7,'FRAAAA','ENDAAA','OOOOxx' +3023,2371,1,3,3,3,23,23,1023,3023,3023,46,47,'HMAAAA','FNDAAA','VVVVxx' +1976,2372,0,0,6,16,76,976,1976,1976,1976,152,153,'AYAAAA','GNDAAA','AAAAxx' +5610,2373,0,2,0,10,10,610,1610,610,5610,20,21,'UHAAAA','HNDAAA','HHHHxx' +7410,2374,0,2,0,10,10,410,1410,2410,7410,20,21,'AZAAAA','INDAAA','OOOOxx' +7872,2375,0,0,2,12,72,872,1872,2872,7872,144,145,'UQAAAA','JNDAAA','VVVVxx' +8591,2376,1,3,1,11,91,591,591,3591,8591,182,183,'LSAAAA','KNDAAA','AAAAxx' +1804,2377,0,0,4,4,4,804,1804,1804,1804,8,9,'KRAAAA','LNDAAA','HHHHxx' +5299,2378,1,3,9,19,99,299,1299,299,5299,198,199,'VVAAAA','MNDAAA','OOOOxx' +4695,2379,1,3,5,15,95,695,695,4695,4695,190,191,'PYAAAA','NNDAAA','VVVVxx' +2672,2380,0,0,2,12,72,672,672,2672,2672,144,145,'UYAAAA','ONDAAA','AAAAxx' +585,2381,1,1,5,5,85,585,585,585,585,170,171,'NWAAAA','PNDAAA','HHHHxx' +8622,2382,0,2,2,2,22,622,622,3622,8622,44,45,'QTAAAA','QNDAAA','OOOOxx' +3780,2383,0,0,0,0,80,780,1780,3780,3780,160,161,'KPAAAA','RNDAAA','VVVVxx' +7941,2384,1,1,1,1,41,941,1941,2941,7941,82,83,'LTAAAA','SNDAAA','AAAAxx' +3305,2385,1,1,5,5,5,305,1305,3305,3305,10,11,'DXAAAA','TNDAAA','HHHHxx' +8653,2386,1,1,3,13,53,653,653,3653,8653,106,107,'VUAAAA','UNDAAA','OOOOxx' +5756,2387,0,0,6,16,56,756,1756,756,5756,112,113,'KNAAAA','VNDAAA','VVVVxx' +576,2388,0,0,6,16,76,576,576,576,576,152,153,'EWAAAA','WNDAAA','AAAAxx' +1915,2389,1,3,5,15,15,915,1915,1915,1915,30,31,'RVAAAA','XNDAAA','HHHHxx' +4627,2390,1,3,7,7,27,627,627,4627,4627,54,55,'ZVAAAA','YNDAAA','OOOOxx' +920,2391,0,0,0,0,20,920,920,920,920,40,41,'KJAAAA','ZNDAAA','VVVVxx' +2537,2392,1,1,7,17,37,537,537,2537,2537,74,75,'PTAAAA','AODAAA','AAAAxx' +50,2393,0,2,0,10,50,50,50,50,50,100,101,'YBAAAA','BODAAA','HHHHxx' +1313,2394,1,1,3,13,13,313,1313,1313,1313,26,27,'NYAAAA','CODAAA','OOOOxx' +8542,2395,0,2,2,2,42,542,542,3542,8542,84,85,'OQAAAA','DODAAA','VVVVxx' +6428,2396,0,0,8,8,28,428,428,1428,6428,56,57,'GNAAAA','EODAAA','AAAAxx' +4351,2397,1,3,1,11,51,351,351,4351,4351,102,103,'JLAAAA','FODAAA','HHHHxx' +2050,2398,0,2,0,10,50,50,50,2050,2050,100,101,'WAAAAA','GODAAA','OOOOxx' +5162,2399,0,2,2,2,62,162,1162,162,5162,124,125,'OQAAAA','HODAAA','VVVVxx' +8229,2400,1,1,9,9,29,229,229,3229,8229,58,59,'NEAAAA','IODAAA','AAAAxx' +7782,2401,0,2,2,2,82,782,1782,2782,7782,164,165,'INAAAA','JODAAA','HHHHxx' +1563,2402,1,3,3,3,63,563,1563,1563,1563,126,127,'DIAAAA','KODAAA','OOOOxx' +267,2403,1,3,7,7,67,267,267,267,267,134,135,'HKAAAA','LODAAA','VVVVxx' +5138,2404,0,2,8,18,38,138,1138,138,5138,76,77,'QPAAAA','MODAAA','AAAAxx' +7022,2405,0,2,2,2,22,22,1022,2022,7022,44,45,'CKAAAA','NODAAA','HHHHxx' +6705,2406,1,1,5,5,5,705,705,1705,6705,10,11,'XXAAAA','OODAAA','OOOOxx' +6190,2407,0,2,0,10,90,190,190,1190,6190,180,181,'CEAAAA','PODAAA','VVVVxx' +8226,2408,0,2,6,6,26,226,226,3226,8226,52,53,'KEAAAA','QODAAA','AAAAxx' +8882,2409,0,2,2,2,82,882,882,3882,8882,164,165,'QDAAAA','RODAAA','HHHHxx' +5181,2410,1,1,1,1,81,181,1181,181,5181,162,163,'HRAAAA','SODAAA','OOOOxx' +4598,2411,0,2,8,18,98,598,598,4598,4598,196,197,'WUAAAA','TODAAA','VVVVxx' +4882,2412,0,2,2,2,82,882,882,4882,4882,164,165,'UFAAAA','UODAAA','AAAAxx' +7490,2413,0,2,0,10,90,490,1490,2490,7490,180,181,'CCAAAA','VODAAA','HHHHxx' +5224,2414,0,0,4,4,24,224,1224,224,5224,48,49,'YSAAAA','WODAAA','OOOOxx' +2174,2415,0,2,4,14,74,174,174,2174,2174,148,149,'QFAAAA','XODAAA','VVVVxx' +3059,2416,1,3,9,19,59,59,1059,3059,3059,118,119,'RNAAAA','YODAAA','AAAAxx' +8790,2417,0,2,0,10,90,790,790,3790,8790,180,181,'CAAAAA','ZODAAA','HHHHxx' +2222,2418,0,2,2,2,22,222,222,2222,2222,44,45,'MHAAAA','APDAAA','OOOOxx' +5473,2419,1,1,3,13,73,473,1473,473,5473,146,147,'NCAAAA','BPDAAA','VVVVxx' +937,2420,1,1,7,17,37,937,937,937,937,74,75,'BKAAAA','CPDAAA','AAAAxx' +2975,2421,1,3,5,15,75,975,975,2975,2975,150,151,'LKAAAA','DPDAAA','HHHHxx' +9569,2422,1,1,9,9,69,569,1569,4569,9569,138,139,'BEAAAA','EPDAAA','OOOOxx' +3456,2423,0,0,6,16,56,456,1456,3456,3456,112,113,'YCAAAA','FPDAAA','VVVVxx' +6657,2424,1,1,7,17,57,657,657,1657,6657,114,115,'BWAAAA','GPDAAA','AAAAxx' +3776,2425,0,0,6,16,76,776,1776,3776,3776,152,153,'GPAAAA','HPDAAA','HHHHxx' +6072,2426,0,0,2,12,72,72,72,1072,6072,144,145,'OZAAAA','IPDAAA','OOOOxx' +8129,2427,1,1,9,9,29,129,129,3129,8129,58,59,'RAAAAA','JPDAAA','VVVVxx' +1085,2428,1,1,5,5,85,85,1085,1085,1085,170,171,'TPAAAA','KPDAAA','AAAAxx' +2079,2429,1,3,9,19,79,79,79,2079,2079,158,159,'ZBAAAA','LPDAAA','HHHHxx' +1200,2430,0,0,0,0,0,200,1200,1200,1200,0,1,'EUAAAA','MPDAAA','OOOOxx' +3276,2431,0,0,6,16,76,276,1276,3276,3276,152,153,'AWAAAA','NPDAAA','VVVVxx' +2608,2432,0,0,8,8,8,608,608,2608,2608,16,17,'IWAAAA','OPDAAA','AAAAxx' +702,2433,0,2,2,2,2,702,702,702,702,4,5,'ABAAAA','PPDAAA','HHHHxx' +5750,2434,0,2,0,10,50,750,1750,750,5750,100,101,'ENAAAA','QPDAAA','OOOOxx' +2776,2435,0,0,6,16,76,776,776,2776,2776,152,153,'UCAAAA','RPDAAA','VVVVxx' +9151,2436,1,3,1,11,51,151,1151,4151,9151,102,103,'ZNAAAA','SPDAAA','AAAAxx' +3282,2437,0,2,2,2,82,282,1282,3282,3282,164,165,'GWAAAA','TPDAAA','HHHHxx' +408,2438,0,0,8,8,8,408,408,408,408,16,17,'SPAAAA','UPDAAA','OOOOxx' +3473,2439,1,1,3,13,73,473,1473,3473,3473,146,147,'PDAAAA','VPDAAA','VVVVxx' +7095,2440,1,3,5,15,95,95,1095,2095,7095,190,191,'XMAAAA','WPDAAA','AAAAxx' +3288,2441,0,0,8,8,88,288,1288,3288,3288,176,177,'MWAAAA','XPDAAA','HHHHxx' +8215,2442,1,3,5,15,15,215,215,3215,8215,30,31,'ZDAAAA','YPDAAA','OOOOxx' +6244,2443,0,0,4,4,44,244,244,1244,6244,88,89,'EGAAAA','ZPDAAA','VVVVxx' +8440,2444,0,0,0,0,40,440,440,3440,8440,80,81,'QMAAAA','AQDAAA','AAAAxx' +3800,2445,0,0,0,0,0,800,1800,3800,3800,0,1,'EQAAAA','BQDAAA','HHHHxx' +7279,2446,1,3,9,19,79,279,1279,2279,7279,158,159,'ZTAAAA','CQDAAA','OOOOxx' +9206,2447,0,2,6,6,6,206,1206,4206,9206,12,13,'CQAAAA','DQDAAA','VVVVxx' +6465,2448,1,1,5,5,65,465,465,1465,6465,130,131,'ROAAAA','EQDAAA','AAAAxx' +4127,2449,1,3,7,7,27,127,127,4127,4127,54,55,'TCAAAA','FQDAAA','HHHHxx' +7463,2450,1,3,3,3,63,463,1463,2463,7463,126,127,'BBAAAA','GQDAAA','OOOOxx' +5117,2451,1,1,7,17,17,117,1117,117,5117,34,35,'VOAAAA','HQDAAA','VVVVxx' +4715,2452,1,3,5,15,15,715,715,4715,4715,30,31,'JZAAAA','IQDAAA','AAAAxx' +2010,2453,0,2,0,10,10,10,10,2010,2010,20,21,'IZAAAA','JQDAAA','HHHHxx' +6486,2454,0,2,6,6,86,486,486,1486,6486,172,173,'MPAAAA','KQDAAA','OOOOxx' +6434,2455,0,2,4,14,34,434,434,1434,6434,68,69,'MNAAAA','LQDAAA','VVVVxx' +2151,2456,1,3,1,11,51,151,151,2151,2151,102,103,'TEAAAA','MQDAAA','AAAAxx' +4821,2457,1,1,1,1,21,821,821,4821,4821,42,43,'LDAAAA','NQDAAA','HHHHxx' +6507,2458,1,3,7,7,7,507,507,1507,6507,14,15,'HQAAAA','OQDAAA','OOOOxx' +8741,2459,1,1,1,1,41,741,741,3741,8741,82,83,'FYAAAA','PQDAAA','VVVVxx' +6846,2460,0,2,6,6,46,846,846,1846,6846,92,93,'IDAAAA','QQDAAA','AAAAxx' +4525,2461,1,1,5,5,25,525,525,4525,4525,50,51,'BSAAAA','RQDAAA','HHHHxx' +8299,2462,1,3,9,19,99,299,299,3299,8299,198,199,'FHAAAA','SQDAAA','OOOOxx' +5465,2463,1,1,5,5,65,465,1465,465,5465,130,131,'FCAAAA','TQDAAA','VVVVxx' +7206,2464,0,2,6,6,6,206,1206,2206,7206,12,13,'ERAAAA','UQDAAA','AAAAxx' +2616,2465,0,0,6,16,16,616,616,2616,2616,32,33,'QWAAAA','VQDAAA','HHHHxx' +4440,2466,0,0,0,0,40,440,440,4440,4440,80,81,'UOAAAA','WQDAAA','OOOOxx' +6109,2467,1,1,9,9,9,109,109,1109,6109,18,19,'ZAAAAA','XQDAAA','VVVVxx' +7905,2468,1,1,5,5,5,905,1905,2905,7905,10,11,'BSAAAA','YQDAAA','AAAAxx' +6498,2469,0,2,8,18,98,498,498,1498,6498,196,197,'YPAAAA','ZQDAAA','HHHHxx' +2034,2470,0,2,4,14,34,34,34,2034,2034,68,69,'GAAAAA','ARDAAA','OOOOxx' +7693,2471,1,1,3,13,93,693,1693,2693,7693,186,187,'XJAAAA','BRDAAA','VVVVxx' +7511,2472,1,3,1,11,11,511,1511,2511,7511,22,23,'XCAAAA','CRDAAA','AAAAxx' +7531,2473,1,3,1,11,31,531,1531,2531,7531,62,63,'RDAAAA','DRDAAA','HHHHxx' +6869,2474,1,1,9,9,69,869,869,1869,6869,138,139,'FEAAAA','ERDAAA','OOOOxx' +2763,2475,1,3,3,3,63,763,763,2763,2763,126,127,'HCAAAA','FRDAAA','VVVVxx' +575,2476,1,3,5,15,75,575,575,575,575,150,151,'DWAAAA','GRDAAA','AAAAxx' +8953,2477,1,1,3,13,53,953,953,3953,8953,106,107,'JGAAAA','HRDAAA','HHHHxx' +5833,2478,1,1,3,13,33,833,1833,833,5833,66,67,'JQAAAA','IRDAAA','OOOOxx' +9035,2479,1,3,5,15,35,35,1035,4035,9035,70,71,'NJAAAA','JRDAAA','VVVVxx' +9123,2480,1,3,3,3,23,123,1123,4123,9123,46,47,'XMAAAA','KRDAAA','AAAAxx' +206,2481,0,2,6,6,6,206,206,206,206,12,13,'YHAAAA','LRDAAA','HHHHxx' +4155,2482,1,3,5,15,55,155,155,4155,4155,110,111,'VDAAAA','MRDAAA','OOOOxx' +532,2483,0,0,2,12,32,532,532,532,532,64,65,'MUAAAA','NRDAAA','VVVVxx' +1370,2484,0,2,0,10,70,370,1370,1370,1370,140,141,'SAAAAA','ORDAAA','AAAAxx' +7656,2485,0,0,6,16,56,656,1656,2656,7656,112,113,'MIAAAA','PRDAAA','HHHHxx' +7735,2486,1,3,5,15,35,735,1735,2735,7735,70,71,'NLAAAA','QRDAAA','OOOOxx' +2118,2487,0,2,8,18,18,118,118,2118,2118,36,37,'MDAAAA','RRDAAA','VVVVxx' +6914,2488,0,2,4,14,14,914,914,1914,6914,28,29,'YFAAAA','SRDAAA','AAAAxx' +6277,2489,1,1,7,17,77,277,277,1277,6277,154,155,'LHAAAA','TRDAAA','HHHHxx' +6347,2490,1,3,7,7,47,347,347,1347,6347,94,95,'DKAAAA','URDAAA','OOOOxx' +4030,2491,0,2,0,10,30,30,30,4030,4030,60,61,'AZAAAA','VRDAAA','VVVVxx' +9673,2492,1,1,3,13,73,673,1673,4673,9673,146,147,'BIAAAA','WRDAAA','AAAAxx' +2015,2493,1,3,5,15,15,15,15,2015,2015,30,31,'NZAAAA','XRDAAA','HHHHxx' +1317,2494,1,1,7,17,17,317,1317,1317,1317,34,35,'RYAAAA','YRDAAA','OOOOxx' +404,2495,0,0,4,4,4,404,404,404,404,8,9,'OPAAAA','ZRDAAA','VVVVxx' +1604,2496,0,0,4,4,4,604,1604,1604,1604,8,9,'SJAAAA','ASDAAA','AAAAxx' +1912,2497,0,0,2,12,12,912,1912,1912,1912,24,25,'OVAAAA','BSDAAA','HHHHxx' +5727,2498,1,3,7,7,27,727,1727,727,5727,54,55,'HMAAAA','CSDAAA','OOOOxx' +4538,2499,0,2,8,18,38,538,538,4538,4538,76,77,'OSAAAA','DSDAAA','VVVVxx' +6868,2500,0,0,8,8,68,868,868,1868,6868,136,137,'EEAAAA','ESDAAA','AAAAxx' +9801,2501,1,1,1,1,1,801,1801,4801,9801,2,3,'ZMAAAA','FSDAAA','HHHHxx' +1781,2502,1,1,1,1,81,781,1781,1781,1781,162,163,'NQAAAA','GSDAAA','OOOOxx' +7061,2503,1,1,1,1,61,61,1061,2061,7061,122,123,'PLAAAA','HSDAAA','VVVVxx' +2412,2504,0,0,2,12,12,412,412,2412,2412,24,25,'UOAAAA','ISDAAA','AAAAxx' +9191,2505,1,3,1,11,91,191,1191,4191,9191,182,183,'NPAAAA','JSDAAA','HHHHxx' +1958,2506,0,2,8,18,58,958,1958,1958,1958,116,117,'IXAAAA','KSDAAA','OOOOxx' +2203,2507,1,3,3,3,3,203,203,2203,2203,6,7,'TGAAAA','LSDAAA','VVVVxx' +9104,2508,0,0,4,4,4,104,1104,4104,9104,8,9,'EMAAAA','MSDAAA','AAAAxx' +3837,2509,1,1,7,17,37,837,1837,3837,3837,74,75,'PRAAAA','NSDAAA','HHHHxx' +7055,2510,1,3,5,15,55,55,1055,2055,7055,110,111,'JLAAAA','OSDAAA','OOOOxx' +4612,2511,0,0,2,12,12,612,612,4612,4612,24,25,'KVAAAA','PSDAAA','VVVVxx' +6420,2512,0,0,0,0,20,420,420,1420,6420,40,41,'YMAAAA','QSDAAA','AAAAxx' +613,2513,1,1,3,13,13,613,613,613,613,26,27,'PXAAAA','RSDAAA','HHHHxx' +1691,2514,1,3,1,11,91,691,1691,1691,1691,182,183,'BNAAAA','SSDAAA','OOOOxx' +33,2515,1,1,3,13,33,33,33,33,33,66,67,'HBAAAA','TSDAAA','VVVVxx' +875,2516,1,3,5,15,75,875,875,875,875,150,151,'RHAAAA','USDAAA','AAAAxx' +9030,2517,0,2,0,10,30,30,1030,4030,9030,60,61,'IJAAAA','VSDAAA','HHHHxx' +4285,2518,1,1,5,5,85,285,285,4285,4285,170,171,'VIAAAA','WSDAAA','OOOOxx' +6236,2519,0,0,6,16,36,236,236,1236,6236,72,73,'WFAAAA','XSDAAA','VVVVxx' +4702,2520,0,2,2,2,2,702,702,4702,4702,4,5,'WYAAAA','YSDAAA','AAAAxx' +3441,2521,1,1,1,1,41,441,1441,3441,3441,82,83,'JCAAAA','ZSDAAA','HHHHxx' +2150,2522,0,2,0,10,50,150,150,2150,2150,100,101,'SEAAAA','ATDAAA','OOOOxx' +1852,2523,0,0,2,12,52,852,1852,1852,1852,104,105,'GTAAAA','BTDAAA','VVVVxx' +7713,2524,1,1,3,13,13,713,1713,2713,7713,26,27,'RKAAAA','CTDAAA','AAAAxx' +6849,2525,1,1,9,9,49,849,849,1849,6849,98,99,'LDAAAA','DTDAAA','HHHHxx' +3425,2526,1,1,5,5,25,425,1425,3425,3425,50,51,'TBAAAA','ETDAAA','OOOOxx' +4681,2527,1,1,1,1,81,681,681,4681,4681,162,163,'BYAAAA','FTDAAA','VVVVxx' +1134,2528,0,2,4,14,34,134,1134,1134,1134,68,69,'QRAAAA','GTDAAA','AAAAxx' +7462,2529,0,2,2,2,62,462,1462,2462,7462,124,125,'ABAAAA','HTDAAA','HHHHxx' +2148,2530,0,0,8,8,48,148,148,2148,2148,96,97,'QEAAAA','ITDAAA','OOOOxx' +5921,2531,1,1,1,1,21,921,1921,921,5921,42,43,'TTAAAA','JTDAAA','VVVVxx' +118,2532,0,2,8,18,18,118,118,118,118,36,37,'OEAAAA','KTDAAA','AAAAxx' +3065,2533,1,1,5,5,65,65,1065,3065,3065,130,131,'XNAAAA','LTDAAA','HHHHxx' +6590,2534,0,2,0,10,90,590,590,1590,6590,180,181,'MTAAAA','MTDAAA','OOOOxx' +4993,2535,1,1,3,13,93,993,993,4993,4993,186,187,'BKAAAA','NTDAAA','VVVVxx' +6818,2536,0,2,8,18,18,818,818,1818,6818,36,37,'GCAAAA','OTDAAA','AAAAxx' +1449,2537,1,1,9,9,49,449,1449,1449,1449,98,99,'TDAAAA','PTDAAA','HHHHxx' +2039,2538,1,3,9,19,39,39,39,2039,2039,78,79,'LAAAAA','QTDAAA','OOOOxx' +2524,2539,0,0,4,4,24,524,524,2524,2524,48,49,'CTAAAA','RTDAAA','VVVVxx' +1481,2540,1,1,1,1,81,481,1481,1481,1481,162,163,'ZEAAAA','STDAAA','AAAAxx' +6984,2541,0,0,4,4,84,984,984,1984,6984,168,169,'QIAAAA','TTDAAA','HHHHxx' +3960,2542,0,0,0,0,60,960,1960,3960,3960,120,121,'IWAAAA','UTDAAA','OOOOxx' +1983,2543,1,3,3,3,83,983,1983,1983,1983,166,167,'HYAAAA','VTDAAA','VVVVxx' +6379,2544,1,3,9,19,79,379,379,1379,6379,158,159,'JLAAAA','WTDAAA','AAAAxx' +8975,2545,1,3,5,15,75,975,975,3975,8975,150,151,'FHAAAA','XTDAAA','HHHHxx' +1102,2546,0,2,2,2,2,102,1102,1102,1102,4,5,'KQAAAA','YTDAAA','OOOOxx' +2517,2547,1,1,7,17,17,517,517,2517,2517,34,35,'VSAAAA','ZTDAAA','VVVVxx' +712,2548,0,0,2,12,12,712,712,712,712,24,25,'KBAAAA','AUDAAA','AAAAxx' +5419,2549,1,3,9,19,19,419,1419,419,5419,38,39,'LAAAAA','BUDAAA','HHHHxx' +723,2550,1,3,3,3,23,723,723,723,723,46,47,'VBAAAA','CUDAAA','OOOOxx' +8057,2551,1,1,7,17,57,57,57,3057,8057,114,115,'XXAAAA','DUDAAA','VVVVxx' +7471,2552,1,3,1,11,71,471,1471,2471,7471,142,143,'JBAAAA','EUDAAA','AAAAxx' +8855,2553,1,3,5,15,55,855,855,3855,8855,110,111,'PCAAAA','FUDAAA','HHHHxx' +5074,2554,0,2,4,14,74,74,1074,74,5074,148,149,'ENAAAA','GUDAAA','OOOOxx' +7139,2555,1,3,9,19,39,139,1139,2139,7139,78,79,'POAAAA','HUDAAA','VVVVxx' +3833,2556,1,1,3,13,33,833,1833,3833,3833,66,67,'LRAAAA','IUDAAA','AAAAxx' +5186,2557,0,2,6,6,86,186,1186,186,5186,172,173,'MRAAAA','JUDAAA','HHHHxx' +9436,2558,0,0,6,16,36,436,1436,4436,9436,72,73,'YYAAAA','KUDAAA','OOOOxx' +8859,2559,1,3,9,19,59,859,859,3859,8859,118,119,'TCAAAA','LUDAAA','VVVVxx' +6943,2560,1,3,3,3,43,943,943,1943,6943,86,87,'BHAAAA','MUDAAA','AAAAxx' +2315,2561,1,3,5,15,15,315,315,2315,2315,30,31,'BLAAAA','NUDAAA','HHHHxx' +1394,2562,0,2,4,14,94,394,1394,1394,1394,188,189,'QBAAAA','OUDAAA','OOOOxx' +8863,2563,1,3,3,3,63,863,863,3863,8863,126,127,'XCAAAA','PUDAAA','VVVVxx' +8812,2564,0,0,2,12,12,812,812,3812,8812,24,25,'YAAAAA','QUDAAA','AAAAxx' +7498,2565,0,2,8,18,98,498,1498,2498,7498,196,197,'KCAAAA','RUDAAA','HHHHxx' +8962,2566,0,2,2,2,62,962,962,3962,8962,124,125,'SGAAAA','SUDAAA','OOOOxx' +2533,2567,1,1,3,13,33,533,533,2533,2533,66,67,'LTAAAA','TUDAAA','VVVVxx' +8188,2568,0,0,8,8,88,188,188,3188,8188,176,177,'YCAAAA','UUDAAA','AAAAxx' +6137,2569,1,1,7,17,37,137,137,1137,6137,74,75,'BCAAAA','VUDAAA','HHHHxx' +974,2570,0,2,4,14,74,974,974,974,974,148,149,'MLAAAA','WUDAAA','OOOOxx' +2751,2571,1,3,1,11,51,751,751,2751,2751,102,103,'VBAAAA','XUDAAA','VVVVxx' +4975,2572,1,3,5,15,75,975,975,4975,4975,150,151,'JJAAAA','YUDAAA','AAAAxx' +3411,2573,1,3,1,11,11,411,1411,3411,3411,22,23,'FBAAAA','ZUDAAA','HHHHxx' +3143,2574,1,3,3,3,43,143,1143,3143,3143,86,87,'XQAAAA','AVDAAA','OOOOxx' +8011,2575,1,3,1,11,11,11,11,3011,8011,22,23,'DWAAAA','BVDAAA','VVVVxx' +988,2576,0,0,8,8,88,988,988,988,988,176,177,'AMAAAA','CVDAAA','AAAAxx' +4289,2577,1,1,9,9,89,289,289,4289,4289,178,179,'ZIAAAA','DVDAAA','HHHHxx' +8105,2578,1,1,5,5,5,105,105,3105,8105,10,11,'TZAAAA','EVDAAA','OOOOxx' +9885,2579,1,1,5,5,85,885,1885,4885,9885,170,171,'FQAAAA','FVDAAA','VVVVxx' +1002,2580,0,2,2,2,2,2,1002,1002,1002,4,5,'OMAAAA','GVDAAA','AAAAxx' +5827,2581,1,3,7,7,27,827,1827,827,5827,54,55,'DQAAAA','HVDAAA','HHHHxx' +1228,2582,0,0,8,8,28,228,1228,1228,1228,56,57,'GVAAAA','IVDAAA','OOOOxx' +6352,2583,0,0,2,12,52,352,352,1352,6352,104,105,'IKAAAA','JVDAAA','VVVVxx' +8868,2584,0,0,8,8,68,868,868,3868,8868,136,137,'CDAAAA','KVDAAA','AAAAxx' +3643,2585,1,3,3,3,43,643,1643,3643,3643,86,87,'DKAAAA','LVDAAA','HHHHxx' +1468,2586,0,0,8,8,68,468,1468,1468,1468,136,137,'MEAAAA','MVDAAA','OOOOxx' +8415,2587,1,3,5,15,15,415,415,3415,8415,30,31,'RLAAAA','NVDAAA','VVVVxx' +9631,2588,1,3,1,11,31,631,1631,4631,9631,62,63,'LGAAAA','OVDAAA','AAAAxx' +7408,2589,0,0,8,8,8,408,1408,2408,7408,16,17,'YYAAAA','PVDAAA','HHHHxx' +1934,2590,0,2,4,14,34,934,1934,1934,1934,68,69,'KWAAAA','QVDAAA','OOOOxx' +996,2591,0,0,6,16,96,996,996,996,996,192,193,'IMAAAA','RVDAAA','VVVVxx' +8027,2592,1,3,7,7,27,27,27,3027,8027,54,55,'TWAAAA','SVDAAA','AAAAxx' +8464,2593,0,0,4,4,64,464,464,3464,8464,128,129,'ONAAAA','TVDAAA','HHHHxx' +5007,2594,1,3,7,7,7,7,1007,7,5007,14,15,'PKAAAA','UVDAAA','OOOOxx' +8356,2595,0,0,6,16,56,356,356,3356,8356,112,113,'KJAAAA','VVDAAA','VVVVxx' +4579,2596,1,3,9,19,79,579,579,4579,4579,158,159,'DUAAAA','WVDAAA','AAAAxx' +8513,2597,1,1,3,13,13,513,513,3513,8513,26,27,'LPAAAA','XVDAAA','HHHHxx' +383,2598,1,3,3,3,83,383,383,383,383,166,167,'TOAAAA','YVDAAA','OOOOxx' +9304,2599,0,0,4,4,4,304,1304,4304,9304,8,9,'WTAAAA','ZVDAAA','VVVVxx' +7224,2600,0,0,4,4,24,224,1224,2224,7224,48,49,'WRAAAA','AWDAAA','AAAAxx' +6023,2601,1,3,3,3,23,23,23,1023,6023,46,47,'RXAAAA','BWDAAA','HHHHxx' +2746,2602,0,2,6,6,46,746,746,2746,2746,92,93,'QBAAAA','CWDAAA','OOOOxx' +137,2603,1,1,7,17,37,137,137,137,137,74,75,'HFAAAA','DWDAAA','VVVVxx' +9441,2604,1,1,1,1,41,441,1441,4441,9441,82,83,'DZAAAA','EWDAAA','AAAAxx' +3690,2605,0,2,0,10,90,690,1690,3690,3690,180,181,'YLAAAA','FWDAAA','HHHHxx' +913,2606,1,1,3,13,13,913,913,913,913,26,27,'DJAAAA','GWDAAA','OOOOxx' +1768,2607,0,0,8,8,68,768,1768,1768,1768,136,137,'AQAAAA','HWDAAA','VVVVxx' +8492,2608,0,0,2,12,92,492,492,3492,8492,184,185,'QOAAAA','IWDAAA','AAAAxx' +8083,2609,1,3,3,3,83,83,83,3083,8083,166,167,'XYAAAA','JWDAAA','HHHHxx' +4609,2610,1,1,9,9,9,609,609,4609,4609,18,19,'HVAAAA','KWDAAA','OOOOxx' +7520,2611,0,0,0,0,20,520,1520,2520,7520,40,41,'GDAAAA','LWDAAA','VVVVxx' +4231,2612,1,3,1,11,31,231,231,4231,4231,62,63,'TGAAAA','MWDAAA','AAAAxx' +6022,2613,0,2,2,2,22,22,22,1022,6022,44,45,'QXAAAA','NWDAAA','HHHHxx' +9784,2614,0,0,4,4,84,784,1784,4784,9784,168,169,'IMAAAA','OWDAAA','OOOOxx' +1343,2615,1,3,3,3,43,343,1343,1343,1343,86,87,'RZAAAA','PWDAAA','VVVVxx' +7549,2616,1,1,9,9,49,549,1549,2549,7549,98,99,'JEAAAA','QWDAAA','AAAAxx' +269,2617,1,1,9,9,69,269,269,269,269,138,139,'JKAAAA','RWDAAA','HHHHxx' +1069,2618,1,1,9,9,69,69,1069,1069,1069,138,139,'DPAAAA','SWDAAA','OOOOxx' +4610,2619,0,2,0,10,10,610,610,4610,4610,20,21,'IVAAAA','TWDAAA','VVVVxx' +482,2620,0,2,2,2,82,482,482,482,482,164,165,'OSAAAA','UWDAAA','AAAAxx' +3025,2621,1,1,5,5,25,25,1025,3025,3025,50,51,'JMAAAA','VWDAAA','HHHHxx' +7914,2622,0,2,4,14,14,914,1914,2914,7914,28,29,'KSAAAA','WWDAAA','OOOOxx' +3198,2623,0,2,8,18,98,198,1198,3198,3198,196,197,'ATAAAA','XWDAAA','VVVVxx' +1187,2624,1,3,7,7,87,187,1187,1187,1187,174,175,'RTAAAA','YWDAAA','AAAAxx' +4707,2625,1,3,7,7,7,707,707,4707,4707,14,15,'BZAAAA','ZWDAAA','HHHHxx' +8279,2626,1,3,9,19,79,279,279,3279,8279,158,159,'LGAAAA','AXDAAA','OOOOxx' +6127,2627,1,3,7,7,27,127,127,1127,6127,54,55,'RBAAAA','BXDAAA','VVVVxx' +1305,2628,1,1,5,5,5,305,1305,1305,1305,10,11,'FYAAAA','CXDAAA','AAAAxx' +4804,2629,0,0,4,4,4,804,804,4804,4804,8,9,'UCAAAA','DXDAAA','HHHHxx' +6069,2630,1,1,9,9,69,69,69,1069,6069,138,139,'LZAAAA','EXDAAA','OOOOxx' +9229,2631,1,1,9,9,29,229,1229,4229,9229,58,59,'ZQAAAA','FXDAAA','VVVVxx' +4703,2632,1,3,3,3,3,703,703,4703,4703,6,7,'XYAAAA','GXDAAA','AAAAxx' +6410,2633,0,2,0,10,10,410,410,1410,6410,20,21,'OMAAAA','HXDAAA','HHHHxx' +944,2634,0,0,4,4,44,944,944,944,944,88,89,'IKAAAA','IXDAAA','OOOOxx' +3744,2635,0,0,4,4,44,744,1744,3744,3744,88,89,'AOAAAA','JXDAAA','VVVVxx' +1127,2636,1,3,7,7,27,127,1127,1127,1127,54,55,'JRAAAA','KXDAAA','AAAAxx' +6693,2637,1,1,3,13,93,693,693,1693,6693,186,187,'LXAAAA','LXDAAA','HHHHxx' +583,2638,1,3,3,3,83,583,583,583,583,166,167,'LWAAAA','MXDAAA','OOOOxx' +2684,2639,0,0,4,4,84,684,684,2684,2684,168,169,'GZAAAA','NXDAAA','VVVVxx' +6192,2640,0,0,2,12,92,192,192,1192,6192,184,185,'EEAAAA','OXDAAA','AAAAxx' +4157,2641,1,1,7,17,57,157,157,4157,4157,114,115,'XDAAAA','PXDAAA','HHHHxx' +6470,2642,0,2,0,10,70,470,470,1470,6470,140,141,'WOAAAA','QXDAAA','OOOOxx' +8965,2643,1,1,5,5,65,965,965,3965,8965,130,131,'VGAAAA','RXDAAA','VVVVxx' +1433,2644,1,1,3,13,33,433,1433,1433,1433,66,67,'DDAAAA','SXDAAA','AAAAxx' +4570,2645,0,2,0,10,70,570,570,4570,4570,140,141,'UTAAAA','TXDAAA','HHHHxx' +1806,2646,0,2,6,6,6,806,1806,1806,1806,12,13,'MRAAAA','UXDAAA','OOOOxx' +1230,2647,0,2,0,10,30,230,1230,1230,1230,60,61,'IVAAAA','VXDAAA','VVVVxx' +2283,2648,1,3,3,3,83,283,283,2283,2283,166,167,'VJAAAA','WXDAAA','AAAAxx' +6456,2649,0,0,6,16,56,456,456,1456,6456,112,113,'IOAAAA','XXDAAA','HHHHxx' +7427,2650,1,3,7,7,27,427,1427,2427,7427,54,55,'RZAAAA','YXDAAA','OOOOxx' +8310,2651,0,2,0,10,10,310,310,3310,8310,20,21,'QHAAAA','ZXDAAA','VVVVxx' +8103,2652,1,3,3,3,3,103,103,3103,8103,6,7,'RZAAAA','AYDAAA','AAAAxx' +3947,2653,1,3,7,7,47,947,1947,3947,3947,94,95,'VVAAAA','BYDAAA','HHHHxx' +3414,2654,0,2,4,14,14,414,1414,3414,3414,28,29,'IBAAAA','CYDAAA','OOOOxx' +2043,2655,1,3,3,3,43,43,43,2043,2043,86,87,'PAAAAA','DYDAAA','VVVVxx' +4393,2656,1,1,3,13,93,393,393,4393,4393,186,187,'ZMAAAA','EYDAAA','AAAAxx' +6664,2657,0,0,4,4,64,664,664,1664,6664,128,129,'IWAAAA','FYDAAA','HHHHxx' +4545,2658,1,1,5,5,45,545,545,4545,4545,90,91,'VSAAAA','GYDAAA','OOOOxx' +7637,2659,1,1,7,17,37,637,1637,2637,7637,74,75,'THAAAA','HYDAAA','VVVVxx' +1359,2660,1,3,9,19,59,359,1359,1359,1359,118,119,'HAAAAA','IYDAAA','AAAAxx' +5018,2661,0,2,8,18,18,18,1018,18,5018,36,37,'ALAAAA','JYDAAA','HHHHxx' +987,2662,1,3,7,7,87,987,987,987,987,174,175,'ZLAAAA','KYDAAA','OOOOxx' +1320,2663,0,0,0,0,20,320,1320,1320,1320,40,41,'UYAAAA','LYDAAA','VVVVxx' +9311,2664,1,3,1,11,11,311,1311,4311,9311,22,23,'DUAAAA','MYDAAA','AAAAxx' +7993,2665,1,1,3,13,93,993,1993,2993,7993,186,187,'LVAAAA','NYDAAA','HHHHxx' +7588,2666,0,0,8,8,88,588,1588,2588,7588,176,177,'WFAAAA','OYDAAA','OOOOxx' +5983,2667,1,3,3,3,83,983,1983,983,5983,166,167,'DWAAAA','PYDAAA','VVVVxx' +4070,2668,0,2,0,10,70,70,70,4070,4070,140,141,'OAAAAA','QYDAAA','AAAAxx' +8349,2669,1,1,9,9,49,349,349,3349,8349,98,99,'DJAAAA','RYDAAA','HHHHxx' +3810,2670,0,2,0,10,10,810,1810,3810,3810,20,21,'OQAAAA','SYDAAA','OOOOxx' +6948,2671,0,0,8,8,48,948,948,1948,6948,96,97,'GHAAAA','TYDAAA','VVVVxx' +7153,2672,1,1,3,13,53,153,1153,2153,7153,106,107,'DPAAAA','UYDAAA','AAAAxx' +5371,2673,1,3,1,11,71,371,1371,371,5371,142,143,'PYAAAA','VYDAAA','HHHHxx' +8316,2674,0,0,6,16,16,316,316,3316,8316,32,33,'WHAAAA','WYDAAA','OOOOxx' +5903,2675,1,3,3,3,3,903,1903,903,5903,6,7,'BTAAAA','XYDAAA','VVVVxx' +6718,2676,0,2,8,18,18,718,718,1718,6718,36,37,'KYAAAA','YYDAAA','AAAAxx' +4759,2677,1,3,9,19,59,759,759,4759,4759,118,119,'BBAAAA','ZYDAAA','HHHHxx' +2555,2678,1,3,5,15,55,555,555,2555,2555,110,111,'HUAAAA','AZDAAA','OOOOxx' +3457,2679,1,1,7,17,57,457,1457,3457,3457,114,115,'ZCAAAA','BZDAAA','VVVVxx' +9626,2680,0,2,6,6,26,626,1626,4626,9626,52,53,'GGAAAA','CZDAAA','AAAAxx' +2570,2681,0,2,0,10,70,570,570,2570,2570,140,141,'WUAAAA','DZDAAA','HHHHxx' +7964,2682,0,0,4,4,64,964,1964,2964,7964,128,129,'IUAAAA','EZDAAA','OOOOxx' +1543,2683,1,3,3,3,43,543,1543,1543,1543,86,87,'JHAAAA','FZDAAA','VVVVxx' +929,2684,1,1,9,9,29,929,929,929,929,58,59,'TJAAAA','GZDAAA','AAAAxx' +9244,2685,0,0,4,4,44,244,1244,4244,9244,88,89,'ORAAAA','HZDAAA','HHHHxx' +9210,2686,0,2,0,10,10,210,1210,4210,9210,20,21,'GQAAAA','IZDAAA','OOOOxx' +8334,2687,0,2,4,14,34,334,334,3334,8334,68,69,'OIAAAA','JZDAAA','VVVVxx' +9310,2688,0,2,0,10,10,310,1310,4310,9310,20,21,'CUAAAA','KZDAAA','AAAAxx' +5024,2689,0,0,4,4,24,24,1024,24,5024,48,49,'GLAAAA','LZDAAA','HHHHxx' +8794,2690,0,2,4,14,94,794,794,3794,8794,188,189,'GAAAAA','MZDAAA','OOOOxx' +4091,2691,1,3,1,11,91,91,91,4091,4091,182,183,'JBAAAA','NZDAAA','VVVVxx' +649,2692,1,1,9,9,49,649,649,649,649,98,99,'ZYAAAA','OZDAAA','AAAAxx' +8505,2693,1,1,5,5,5,505,505,3505,8505,10,11,'DPAAAA','PZDAAA','HHHHxx' +6652,2694,0,0,2,12,52,652,652,1652,6652,104,105,'WVAAAA','QZDAAA','OOOOxx' +8945,2695,1,1,5,5,45,945,945,3945,8945,90,91,'BGAAAA','RZDAAA','VVVVxx' +2095,2696,1,3,5,15,95,95,95,2095,2095,190,191,'PCAAAA','SZDAAA','AAAAxx' +8676,2697,0,0,6,16,76,676,676,3676,8676,152,153,'SVAAAA','TZDAAA','HHHHxx' +3994,2698,0,2,4,14,94,994,1994,3994,3994,188,189,'QXAAAA','UZDAAA','OOOOxx' +2859,2699,1,3,9,19,59,859,859,2859,2859,118,119,'ZFAAAA','VZDAAA','VVVVxx' +5403,2700,1,3,3,3,3,403,1403,403,5403,6,7,'VZAAAA','WZDAAA','AAAAxx' +3254,2701,0,2,4,14,54,254,1254,3254,3254,108,109,'EVAAAA','XZDAAA','HHHHxx' +7339,2702,1,3,9,19,39,339,1339,2339,7339,78,79,'HWAAAA','YZDAAA','OOOOxx' +7220,2703,0,0,0,0,20,220,1220,2220,7220,40,41,'SRAAAA','ZZDAAA','VVVVxx' +4154,2704,0,2,4,14,54,154,154,4154,4154,108,109,'UDAAAA','AAEAAA','AAAAxx' +7570,2705,0,2,0,10,70,570,1570,2570,7570,140,141,'EFAAAA','BAEAAA','HHHHxx' +2576,2706,0,0,6,16,76,576,576,2576,2576,152,153,'CVAAAA','CAEAAA','OOOOxx' +5764,2707,0,0,4,4,64,764,1764,764,5764,128,129,'SNAAAA','DAEAAA','VVVVxx' +4314,2708,0,2,4,14,14,314,314,4314,4314,28,29,'YJAAAA','EAEAAA','AAAAxx' +2274,2709,0,2,4,14,74,274,274,2274,2274,148,149,'MJAAAA','FAEAAA','HHHHxx' +9756,2710,0,0,6,16,56,756,1756,4756,9756,112,113,'GLAAAA','GAEAAA','OOOOxx' +8274,2711,0,2,4,14,74,274,274,3274,8274,148,149,'GGAAAA','HAEAAA','VVVVxx' +1289,2712,1,1,9,9,89,289,1289,1289,1289,178,179,'PXAAAA','IAEAAA','AAAAxx' +7335,2713,1,3,5,15,35,335,1335,2335,7335,70,71,'DWAAAA','JAEAAA','HHHHxx' +5351,2714,1,3,1,11,51,351,1351,351,5351,102,103,'VXAAAA','KAEAAA','OOOOxx' +8978,2715,0,2,8,18,78,978,978,3978,8978,156,157,'IHAAAA','LAEAAA','VVVVxx' +2,2716,0,2,2,2,2,2,2,2,2,4,5,'CAAAAA','MAEAAA','AAAAxx' +8906,2717,0,2,6,6,6,906,906,3906,8906,12,13,'OEAAAA','NAEAAA','HHHHxx' +6388,2718,0,0,8,8,88,388,388,1388,6388,176,177,'SLAAAA','OAEAAA','OOOOxx' +5675,2719,1,3,5,15,75,675,1675,675,5675,150,151,'HKAAAA','PAEAAA','VVVVxx' +255,2720,1,3,5,15,55,255,255,255,255,110,111,'VJAAAA','QAEAAA','AAAAxx' +9538,2721,0,2,8,18,38,538,1538,4538,9538,76,77,'WCAAAA','RAEAAA','HHHHxx' +1480,2722,0,0,0,0,80,480,1480,1480,1480,160,161,'YEAAAA','SAEAAA','OOOOxx' +4015,2723,1,3,5,15,15,15,15,4015,4015,30,31,'LYAAAA','TAEAAA','VVVVxx' +5166,2724,0,2,6,6,66,166,1166,166,5166,132,133,'SQAAAA','UAEAAA','AAAAxx' +91,2725,1,3,1,11,91,91,91,91,91,182,183,'NDAAAA','VAEAAA','HHHHxx' +2958,2726,0,2,8,18,58,958,958,2958,2958,116,117,'UJAAAA','WAEAAA','OOOOxx' +9131,2727,1,3,1,11,31,131,1131,4131,9131,62,63,'FNAAAA','XAEAAA','VVVVxx' +3944,2728,0,0,4,4,44,944,1944,3944,3944,88,89,'SVAAAA','YAEAAA','AAAAxx' +4514,2729,0,2,4,14,14,514,514,4514,4514,28,29,'QRAAAA','ZAEAAA','HHHHxx' +5661,2730,1,1,1,1,61,661,1661,661,5661,122,123,'TJAAAA','ABEAAA','OOOOxx' +8724,2731,0,0,4,4,24,724,724,3724,8724,48,49,'OXAAAA','BBEAAA','VVVVxx' +6408,2732,0,0,8,8,8,408,408,1408,6408,16,17,'MMAAAA','CBEAAA','AAAAxx' +5013,2733,1,1,3,13,13,13,1013,13,5013,26,27,'VKAAAA','DBEAAA','HHHHxx' +6156,2734,0,0,6,16,56,156,156,1156,6156,112,113,'UCAAAA','EBEAAA','OOOOxx' +7350,2735,0,2,0,10,50,350,1350,2350,7350,100,101,'SWAAAA','FBEAAA','VVVVxx' +9858,2736,0,2,8,18,58,858,1858,4858,9858,116,117,'EPAAAA','GBEAAA','AAAAxx' +895,2737,1,3,5,15,95,895,895,895,895,190,191,'LIAAAA','HBEAAA','HHHHxx' +8368,2738,0,0,8,8,68,368,368,3368,8368,136,137,'WJAAAA','IBEAAA','OOOOxx' +179,2739,1,3,9,19,79,179,179,179,179,158,159,'XGAAAA','JBEAAA','VVVVxx' +4048,2740,0,0,8,8,48,48,48,4048,4048,96,97,'SZAAAA','KBEAAA','AAAAxx' +3073,2741,1,1,3,13,73,73,1073,3073,3073,146,147,'FOAAAA','LBEAAA','HHHHxx' +321,2742,1,1,1,1,21,321,321,321,321,42,43,'JMAAAA','MBEAAA','OOOOxx' +5352,2743,0,0,2,12,52,352,1352,352,5352,104,105,'WXAAAA','NBEAAA','VVVVxx' +1940,2744,0,0,0,0,40,940,1940,1940,1940,80,81,'QWAAAA','OBEAAA','AAAAxx' +8803,2745,1,3,3,3,3,803,803,3803,8803,6,7,'PAAAAA','PBEAAA','HHHHxx' +791,2746,1,3,1,11,91,791,791,791,791,182,183,'LEAAAA','QBEAAA','OOOOxx' +9809,2747,1,1,9,9,9,809,1809,4809,9809,18,19,'HNAAAA','RBEAAA','VVVVxx' +5519,2748,1,3,9,19,19,519,1519,519,5519,38,39,'HEAAAA','SBEAAA','AAAAxx' +7420,2749,0,0,0,0,20,420,1420,2420,7420,40,41,'KZAAAA','TBEAAA','HHHHxx' +7541,2750,1,1,1,1,41,541,1541,2541,7541,82,83,'BEAAAA','UBEAAA','OOOOxx' +6538,2751,0,2,8,18,38,538,538,1538,6538,76,77,'MRAAAA','VBEAAA','VVVVxx' +710,2752,0,2,0,10,10,710,710,710,710,20,21,'IBAAAA','WBEAAA','AAAAxx' +9488,2753,0,0,8,8,88,488,1488,4488,9488,176,177,'YAAAAA','XBEAAA','HHHHxx' +3135,2754,1,3,5,15,35,135,1135,3135,3135,70,71,'PQAAAA','YBEAAA','OOOOxx' +4273,2755,1,1,3,13,73,273,273,4273,4273,146,147,'JIAAAA','ZBEAAA','VVVVxx' +629,2756,1,1,9,9,29,629,629,629,629,58,59,'FYAAAA','ACEAAA','AAAAxx' +9167,2757,1,3,7,7,67,167,1167,4167,9167,134,135,'POAAAA','BCEAAA','HHHHxx' +751,2758,1,3,1,11,51,751,751,751,751,102,103,'XCAAAA','CCEAAA','OOOOxx' +1126,2759,0,2,6,6,26,126,1126,1126,1126,52,53,'IRAAAA','DCEAAA','VVVVxx' +3724,2760,0,0,4,4,24,724,1724,3724,3724,48,49,'GNAAAA','ECEAAA','AAAAxx' +1789,2761,1,1,9,9,89,789,1789,1789,1789,178,179,'VQAAAA','FCEAAA','HHHHxx' +792,2762,0,0,2,12,92,792,792,792,792,184,185,'MEAAAA','GCEAAA','OOOOxx' +2771,2763,1,3,1,11,71,771,771,2771,2771,142,143,'PCAAAA','HCEAAA','VVVVxx' +4313,2764,1,1,3,13,13,313,313,4313,4313,26,27,'XJAAAA','ICEAAA','AAAAxx' +9312,2765,0,0,2,12,12,312,1312,4312,9312,24,25,'EUAAAA','JCEAAA','HHHHxx' +955,2766,1,3,5,15,55,955,955,955,955,110,111,'TKAAAA','KCEAAA','OOOOxx' +6382,2767,0,2,2,2,82,382,382,1382,6382,164,165,'MLAAAA','LCEAAA','VVVVxx' +7875,2768,1,3,5,15,75,875,1875,2875,7875,150,151,'XQAAAA','MCEAAA','AAAAxx' +7491,2769,1,3,1,11,91,491,1491,2491,7491,182,183,'DCAAAA','NCEAAA','HHHHxx' +8193,2770,1,1,3,13,93,193,193,3193,8193,186,187,'DDAAAA','OCEAAA','OOOOxx' +968,2771,0,0,8,8,68,968,968,968,968,136,137,'GLAAAA','PCEAAA','VVVVxx' +4951,2772,1,3,1,11,51,951,951,4951,4951,102,103,'LIAAAA','QCEAAA','AAAAxx' +2204,2773,0,0,4,4,4,204,204,2204,2204,8,9,'UGAAAA','RCEAAA','HHHHxx' +2066,2774,0,2,6,6,66,66,66,2066,2066,132,133,'MBAAAA','SCEAAA','OOOOxx' +2631,2775,1,3,1,11,31,631,631,2631,2631,62,63,'FXAAAA','TCEAAA','VVVVxx' +8947,2776,1,3,7,7,47,947,947,3947,8947,94,95,'DGAAAA','UCEAAA','AAAAxx' +8033,2777,1,1,3,13,33,33,33,3033,8033,66,67,'ZWAAAA','VCEAAA','HHHHxx' +6264,2778,0,0,4,4,64,264,264,1264,6264,128,129,'YGAAAA','WCEAAA','OOOOxx' +7778,2779,0,2,8,18,78,778,1778,2778,7778,156,157,'ENAAAA','XCEAAA','VVVVxx' +9701,2780,1,1,1,1,1,701,1701,4701,9701,2,3,'DJAAAA','YCEAAA','AAAAxx' +5091,2781,1,3,1,11,91,91,1091,91,5091,182,183,'VNAAAA','ZCEAAA','HHHHxx' +7577,2782,1,1,7,17,77,577,1577,2577,7577,154,155,'LFAAAA','ADEAAA','OOOOxx' +3345,2783,1,1,5,5,45,345,1345,3345,3345,90,91,'RYAAAA','BDEAAA','VVVVxx' +7329,2784,1,1,9,9,29,329,1329,2329,7329,58,59,'XVAAAA','CDEAAA','AAAAxx' +7551,2785,1,3,1,11,51,551,1551,2551,7551,102,103,'LEAAAA','DDEAAA','HHHHxx' +6207,2786,1,3,7,7,7,207,207,1207,6207,14,15,'TEAAAA','EDEAAA','OOOOxx' +8664,2787,0,0,4,4,64,664,664,3664,8664,128,129,'GVAAAA','FDEAAA','VVVVxx' +8394,2788,0,2,4,14,94,394,394,3394,8394,188,189,'WKAAAA','GDEAAA','AAAAxx' +7324,2789,0,0,4,4,24,324,1324,2324,7324,48,49,'SVAAAA','HDEAAA','HHHHxx' +2713,2790,1,1,3,13,13,713,713,2713,2713,26,27,'JAAAAA','IDEAAA','OOOOxx' +2230,2791,0,2,0,10,30,230,230,2230,2230,60,61,'UHAAAA','JDEAAA','VVVVxx' +9211,2792,1,3,1,11,11,211,1211,4211,9211,22,23,'HQAAAA','KDEAAA','AAAAxx' +1296,2793,0,0,6,16,96,296,1296,1296,1296,192,193,'WXAAAA','LDEAAA','HHHHxx' +8104,2794,0,0,4,4,4,104,104,3104,8104,8,9,'SZAAAA','MDEAAA','OOOOxx' +6916,2795,0,0,6,16,16,916,916,1916,6916,32,33,'AGAAAA','NDEAAA','VVVVxx' +2208,2796,0,0,8,8,8,208,208,2208,2208,16,17,'YGAAAA','ODEAAA','AAAAxx' +3935,2797,1,3,5,15,35,935,1935,3935,3935,70,71,'JVAAAA','PDEAAA','HHHHxx' +7814,2798,0,2,4,14,14,814,1814,2814,7814,28,29,'OOAAAA','QDEAAA','OOOOxx' +6508,2799,0,0,8,8,8,508,508,1508,6508,16,17,'IQAAAA','RDEAAA','VVVVxx' +1703,2800,1,3,3,3,3,703,1703,1703,1703,6,7,'NNAAAA','SDEAAA','AAAAxx' +5640,2801,0,0,0,0,40,640,1640,640,5640,80,81,'YIAAAA','TDEAAA','HHHHxx' +6417,2802,1,1,7,17,17,417,417,1417,6417,34,35,'VMAAAA','UDEAAA','OOOOxx' +1713,2803,1,1,3,13,13,713,1713,1713,1713,26,27,'XNAAAA','VDEAAA','VVVVxx' +5309,2804,1,1,9,9,9,309,1309,309,5309,18,19,'FWAAAA','WDEAAA','AAAAxx' +4364,2805,0,0,4,4,64,364,364,4364,4364,128,129,'WLAAAA','XDEAAA','HHHHxx' +619,2806,1,3,9,19,19,619,619,619,619,38,39,'VXAAAA','YDEAAA','OOOOxx' +9498,2807,0,2,8,18,98,498,1498,4498,9498,196,197,'IBAAAA','ZDEAAA','VVVVxx' +2804,2808,0,0,4,4,4,804,804,2804,2804,8,9,'WDAAAA','AEEAAA','AAAAxx' +2220,2809,0,0,0,0,20,220,220,2220,2220,40,41,'KHAAAA','BEEAAA','HHHHxx' +9542,2810,0,2,2,2,42,542,1542,4542,9542,84,85,'ADAAAA','CEEAAA','OOOOxx' +3349,2811,1,1,9,9,49,349,1349,3349,3349,98,99,'VYAAAA','DEEAAA','VVVVxx' +9198,2812,0,2,8,18,98,198,1198,4198,9198,196,197,'UPAAAA','EEEAAA','AAAAxx' +2727,2813,1,3,7,7,27,727,727,2727,2727,54,55,'XAAAAA','FEEAAA','HHHHxx' +3768,2814,0,0,8,8,68,768,1768,3768,3768,136,137,'YOAAAA','GEEAAA','OOOOxx' +2334,2815,0,2,4,14,34,334,334,2334,2334,68,69,'ULAAAA','HEEAAA','VVVVxx' +7770,2816,0,2,0,10,70,770,1770,2770,7770,140,141,'WMAAAA','IEEAAA','AAAAxx' +5963,2817,1,3,3,3,63,963,1963,963,5963,126,127,'JVAAAA','JEEAAA','HHHHxx' +4732,2818,0,0,2,12,32,732,732,4732,4732,64,65,'AAAAAA','KEEAAA','OOOOxx' +2448,2819,0,0,8,8,48,448,448,2448,2448,96,97,'EQAAAA','LEEAAA','VVVVxx' +5998,2820,0,2,8,18,98,998,1998,998,5998,196,197,'SWAAAA','MEEAAA','AAAAxx' +8577,2821,1,1,7,17,77,577,577,3577,8577,154,155,'XRAAAA','NEEAAA','HHHHxx' +266,2822,0,2,6,6,66,266,266,266,266,132,133,'GKAAAA','OEEAAA','OOOOxx' +2169,2823,1,1,9,9,69,169,169,2169,2169,138,139,'LFAAAA','PEEAAA','VVVVxx' +8228,2824,0,0,8,8,28,228,228,3228,8228,56,57,'MEAAAA','QEEAAA','AAAAxx' +4813,2825,1,1,3,13,13,813,813,4813,4813,26,27,'DDAAAA','REEAAA','HHHHxx' +2769,2826,1,1,9,9,69,769,769,2769,2769,138,139,'NCAAAA','SEEAAA','OOOOxx' +8382,2827,0,2,2,2,82,382,382,3382,8382,164,165,'KKAAAA','TEEAAA','VVVVxx' +1717,2828,1,1,7,17,17,717,1717,1717,1717,34,35,'BOAAAA','UEEAAA','AAAAxx' +7178,2829,0,2,8,18,78,178,1178,2178,7178,156,157,'CQAAAA','VEEAAA','HHHHxx' +9547,2830,1,3,7,7,47,547,1547,4547,9547,94,95,'FDAAAA','WEEAAA','OOOOxx' +8187,2831,1,3,7,7,87,187,187,3187,8187,174,175,'XCAAAA','XEEAAA','VVVVxx' +3168,2832,0,0,8,8,68,168,1168,3168,3168,136,137,'WRAAAA','YEEAAA','AAAAxx' +2180,2833,0,0,0,0,80,180,180,2180,2180,160,161,'WFAAAA','ZEEAAA','HHHHxx' +859,2834,1,3,9,19,59,859,859,859,859,118,119,'BHAAAA','AFEAAA','OOOOxx' +1554,2835,0,2,4,14,54,554,1554,1554,1554,108,109,'UHAAAA','BFEAAA','VVVVxx' +3567,2836,1,3,7,7,67,567,1567,3567,3567,134,135,'FHAAAA','CFEAAA','AAAAxx' +5985,2837,1,1,5,5,85,985,1985,985,5985,170,171,'FWAAAA','DFEAAA','HHHHxx' +1,2838,1,1,1,1,1,1,1,1,1,2,3,'BAAAAA','EFEAAA','OOOOxx' +5937,2839,1,1,7,17,37,937,1937,937,5937,74,75,'JUAAAA','FFEAAA','VVVVxx' +7594,2840,0,2,4,14,94,594,1594,2594,7594,188,189,'CGAAAA','GFEAAA','AAAAxx' +3783,2841,1,3,3,3,83,783,1783,3783,3783,166,167,'NPAAAA','HFEAAA','HHHHxx' +6841,2842,1,1,1,1,41,841,841,1841,6841,82,83,'DDAAAA','IFEAAA','OOOOxx' +9694,2843,0,2,4,14,94,694,1694,4694,9694,188,189,'WIAAAA','JFEAAA','VVVVxx' +4322,2844,0,2,2,2,22,322,322,4322,4322,44,45,'GKAAAA','KFEAAA','AAAAxx' +6012,2845,0,0,2,12,12,12,12,1012,6012,24,25,'GXAAAA','LFEAAA','HHHHxx' +108,2846,0,0,8,8,8,108,108,108,108,16,17,'EEAAAA','MFEAAA','OOOOxx' +3396,2847,0,0,6,16,96,396,1396,3396,3396,192,193,'QAAAAA','NFEAAA','VVVVxx' +8643,2848,1,3,3,3,43,643,643,3643,8643,86,87,'LUAAAA','OFEAAA','AAAAxx' +6087,2849,1,3,7,7,87,87,87,1087,6087,174,175,'DAAAAA','PFEAAA','HHHHxx' +2629,2850,1,1,9,9,29,629,629,2629,2629,58,59,'DXAAAA','QFEAAA','OOOOxx' +3009,2851,1,1,9,9,9,9,1009,3009,3009,18,19,'TLAAAA','RFEAAA','VVVVxx' +438,2852,0,2,8,18,38,438,438,438,438,76,77,'WQAAAA','SFEAAA','AAAAxx' +2480,2853,0,0,0,0,80,480,480,2480,2480,160,161,'KRAAAA','TFEAAA','HHHHxx' +936,2854,0,0,6,16,36,936,936,936,936,72,73,'AKAAAA','UFEAAA','OOOOxx' +6,2855,0,2,6,6,6,6,6,6,6,12,13,'GAAAAA','VFEAAA','VVVVxx' +768,2856,0,0,8,8,68,768,768,768,768,136,137,'ODAAAA','WFEAAA','AAAAxx' +1564,2857,0,0,4,4,64,564,1564,1564,1564,128,129,'EIAAAA','XFEAAA','HHHHxx' +3236,2858,0,0,6,16,36,236,1236,3236,3236,72,73,'MUAAAA','YFEAAA','OOOOxx' +3932,2859,0,0,2,12,32,932,1932,3932,3932,64,65,'GVAAAA','ZFEAAA','VVVVxx' +8914,2860,0,2,4,14,14,914,914,3914,8914,28,29,'WEAAAA','AGEAAA','AAAAxx' +119,2861,1,3,9,19,19,119,119,119,119,38,39,'PEAAAA','BGEAAA','HHHHxx' +6034,2862,0,2,4,14,34,34,34,1034,6034,68,69,'CYAAAA','CGEAAA','OOOOxx' +5384,2863,0,0,4,4,84,384,1384,384,5384,168,169,'CZAAAA','DGEAAA','VVVVxx' +6885,2864,1,1,5,5,85,885,885,1885,6885,170,171,'VEAAAA','EGEAAA','AAAAxx' +232,2865,0,0,2,12,32,232,232,232,232,64,65,'YIAAAA','FGEAAA','HHHHxx' +1293,2866,1,1,3,13,93,293,1293,1293,1293,186,187,'TXAAAA','GGEAAA','OOOOxx' +9204,2867,0,0,4,4,4,204,1204,4204,9204,8,9,'AQAAAA','HGEAAA','VVVVxx' +527,2868,1,3,7,7,27,527,527,527,527,54,55,'HUAAAA','IGEAAA','AAAAxx' +6539,2869,1,3,9,19,39,539,539,1539,6539,78,79,'NRAAAA','JGEAAA','HHHHxx' +3679,2870,1,3,9,19,79,679,1679,3679,3679,158,159,'NLAAAA','KGEAAA','OOOOxx' +8282,2871,0,2,2,2,82,282,282,3282,8282,164,165,'OGAAAA','LGEAAA','VVVVxx' +5027,2872,1,3,7,7,27,27,1027,27,5027,54,55,'JLAAAA','MGEAAA','AAAAxx' +7694,2873,0,2,4,14,94,694,1694,2694,7694,188,189,'YJAAAA','NGEAAA','HHHHxx' +473,2874,1,1,3,13,73,473,473,473,473,146,147,'FSAAAA','OGEAAA','OOOOxx' +6325,2875,1,1,5,5,25,325,325,1325,6325,50,51,'HJAAAA','PGEAAA','VVVVxx' +8761,2876,1,1,1,1,61,761,761,3761,8761,122,123,'ZYAAAA','QGEAAA','AAAAxx' +6184,2877,0,0,4,4,84,184,184,1184,6184,168,169,'WDAAAA','RGEAAA','HHHHxx' +419,2878,1,3,9,19,19,419,419,419,419,38,39,'DQAAAA','SGEAAA','OOOOxx' +6111,2879,1,3,1,11,11,111,111,1111,6111,22,23,'BBAAAA','TGEAAA','VVVVxx' +3836,2880,0,0,6,16,36,836,1836,3836,3836,72,73,'ORAAAA','UGEAAA','AAAAxx' +4086,2881,0,2,6,6,86,86,86,4086,4086,172,173,'EBAAAA','VGEAAA','HHHHxx' +5818,2882,0,2,8,18,18,818,1818,818,5818,36,37,'UPAAAA','WGEAAA','OOOOxx' +4528,2883,0,0,8,8,28,528,528,4528,4528,56,57,'ESAAAA','XGEAAA','VVVVxx' +7199,2884,1,3,9,19,99,199,1199,2199,7199,198,199,'XQAAAA','YGEAAA','AAAAxx' +1847,2885,1,3,7,7,47,847,1847,1847,1847,94,95,'BTAAAA','ZGEAAA','HHHHxx' +2875,2886,1,3,5,15,75,875,875,2875,2875,150,151,'PGAAAA','AHEAAA','OOOOxx' +2872,2887,0,0,2,12,72,872,872,2872,2872,144,145,'MGAAAA','BHEAAA','VVVVxx' +3972,2888,0,0,2,12,72,972,1972,3972,3972,144,145,'UWAAAA','CHEAAA','AAAAxx' +7590,2889,0,2,0,10,90,590,1590,2590,7590,180,181,'YFAAAA','DHEAAA','HHHHxx' +1914,2890,0,2,4,14,14,914,1914,1914,1914,28,29,'QVAAAA','EHEAAA','OOOOxx' +1658,2891,0,2,8,18,58,658,1658,1658,1658,116,117,'ULAAAA','FHEAAA','VVVVxx' +2126,2892,0,2,6,6,26,126,126,2126,2126,52,53,'UDAAAA','GHEAAA','AAAAxx' +645,2893,1,1,5,5,45,645,645,645,645,90,91,'VYAAAA','HHEAAA','HHHHxx' +6636,2894,0,0,6,16,36,636,636,1636,6636,72,73,'GVAAAA','IHEAAA','OOOOxx' +1469,2895,1,1,9,9,69,469,1469,1469,1469,138,139,'NEAAAA','JHEAAA','VVVVxx' +1377,2896,1,1,7,17,77,377,1377,1377,1377,154,155,'ZAAAAA','KHEAAA','AAAAxx' +8425,2897,1,1,5,5,25,425,425,3425,8425,50,51,'BMAAAA','LHEAAA','HHHHxx' +9300,2898,0,0,0,0,0,300,1300,4300,9300,0,1,'STAAAA','MHEAAA','OOOOxx' +5355,2899,1,3,5,15,55,355,1355,355,5355,110,111,'ZXAAAA','NHEAAA','VVVVxx' +840,2900,0,0,0,0,40,840,840,840,840,80,81,'IGAAAA','OHEAAA','AAAAxx' +5185,2901,1,1,5,5,85,185,1185,185,5185,170,171,'LRAAAA','PHEAAA','HHHHxx' +6467,2902,1,3,7,7,67,467,467,1467,6467,134,135,'TOAAAA','QHEAAA','OOOOxx' +58,2903,0,2,8,18,58,58,58,58,58,116,117,'GCAAAA','RHEAAA','VVVVxx' +5051,2904,1,3,1,11,51,51,1051,51,5051,102,103,'HMAAAA','SHEAAA','AAAAxx' +8901,2905,1,1,1,1,1,901,901,3901,8901,2,3,'JEAAAA','THEAAA','HHHHxx' +1550,2906,0,2,0,10,50,550,1550,1550,1550,100,101,'QHAAAA','UHEAAA','OOOOxx' +1698,2907,0,2,8,18,98,698,1698,1698,1698,196,197,'INAAAA','VHEAAA','VVVVxx' +802,2908,0,2,2,2,2,802,802,802,802,4,5,'WEAAAA','WHEAAA','AAAAxx' +2440,2909,0,0,0,0,40,440,440,2440,2440,80,81,'WPAAAA','XHEAAA','HHHHxx' +2260,2910,0,0,0,0,60,260,260,2260,2260,120,121,'YIAAAA','YHEAAA','OOOOxx' +8218,2911,0,2,8,18,18,218,218,3218,8218,36,37,'CEAAAA','ZHEAAA','VVVVxx' +5144,2912,0,0,4,4,44,144,1144,144,5144,88,89,'WPAAAA','AIEAAA','AAAAxx' +4822,2913,0,2,2,2,22,822,822,4822,4822,44,45,'MDAAAA','BIEAAA','HHHHxx' +9476,2914,0,0,6,16,76,476,1476,4476,9476,152,153,'MAAAAA','CIEAAA','OOOOxx' +7535,2915,1,3,5,15,35,535,1535,2535,7535,70,71,'VDAAAA','DIEAAA','VVVVxx' +8738,2916,0,2,8,18,38,738,738,3738,8738,76,77,'CYAAAA','EIEAAA','AAAAxx' +7946,2917,0,2,6,6,46,946,1946,2946,7946,92,93,'QTAAAA','FIEAAA','HHHHxx' +8143,2918,1,3,3,3,43,143,143,3143,8143,86,87,'FBAAAA','GIEAAA','OOOOxx' +2623,2919,1,3,3,3,23,623,623,2623,2623,46,47,'XWAAAA','HIEAAA','VVVVxx' +5209,2920,1,1,9,9,9,209,1209,209,5209,18,19,'JSAAAA','IIEAAA','AAAAxx' +7674,2921,0,2,4,14,74,674,1674,2674,7674,148,149,'EJAAAA','JIEAAA','HHHHxx' +1135,2922,1,3,5,15,35,135,1135,1135,1135,70,71,'RRAAAA','KIEAAA','OOOOxx' +424,2923,0,0,4,4,24,424,424,424,424,48,49,'IQAAAA','LIEAAA','VVVVxx' +942,2924,0,2,2,2,42,942,942,942,942,84,85,'GKAAAA','MIEAAA','AAAAxx' +7813,2925,1,1,3,13,13,813,1813,2813,7813,26,27,'NOAAAA','NIEAAA','HHHHxx' +3539,2926,1,3,9,19,39,539,1539,3539,3539,78,79,'DGAAAA','OIEAAA','OOOOxx' +2909,2927,1,1,9,9,9,909,909,2909,2909,18,19,'XHAAAA','PIEAAA','VVVVxx' +3748,2928,0,0,8,8,48,748,1748,3748,3748,96,97,'EOAAAA','QIEAAA','AAAAxx' +2996,2929,0,0,6,16,96,996,996,2996,2996,192,193,'GLAAAA','RIEAAA','HHHHxx' +1869,2930,1,1,9,9,69,869,1869,1869,1869,138,139,'XTAAAA','SIEAAA','OOOOxx' +8151,2931,1,3,1,11,51,151,151,3151,8151,102,103,'NBAAAA','TIEAAA','VVVVxx' +6361,2932,1,1,1,1,61,361,361,1361,6361,122,123,'RKAAAA','UIEAAA','AAAAxx' +5568,2933,0,0,8,8,68,568,1568,568,5568,136,137,'EGAAAA','VIEAAA','HHHHxx' +2796,2934,0,0,6,16,96,796,796,2796,2796,192,193,'ODAAAA','WIEAAA','OOOOxx' +8489,2935,1,1,9,9,89,489,489,3489,8489,178,179,'NOAAAA','XIEAAA','VVVVxx' +9183,2936,1,3,3,3,83,183,1183,4183,9183,166,167,'FPAAAA','YIEAAA','AAAAxx' +8227,2937,1,3,7,7,27,227,227,3227,8227,54,55,'LEAAAA','ZIEAAA','HHHHxx' +1844,2938,0,0,4,4,44,844,1844,1844,1844,88,89,'YSAAAA','AJEAAA','OOOOxx' +3975,2939,1,3,5,15,75,975,1975,3975,3975,150,151,'XWAAAA','BJEAAA','VVVVxx' +6490,2940,0,2,0,10,90,490,490,1490,6490,180,181,'QPAAAA','CJEAAA','AAAAxx' +8303,2941,1,3,3,3,3,303,303,3303,8303,6,7,'JHAAAA','DJEAAA','HHHHxx' +7334,2942,0,2,4,14,34,334,1334,2334,7334,68,69,'CWAAAA','EJEAAA','OOOOxx' +2382,2943,0,2,2,2,82,382,382,2382,2382,164,165,'QNAAAA','FJEAAA','VVVVxx' +177,2944,1,1,7,17,77,177,177,177,177,154,155,'VGAAAA','GJEAAA','AAAAxx' +8117,2945,1,1,7,17,17,117,117,3117,8117,34,35,'FAAAAA','HJEAAA','HHHHxx' +5485,2946,1,1,5,5,85,485,1485,485,5485,170,171,'ZCAAAA','IJEAAA','OOOOxx' +6544,2947,0,0,4,4,44,544,544,1544,6544,88,89,'SRAAAA','JJEAAA','VVVVxx' +8517,2948,1,1,7,17,17,517,517,3517,8517,34,35,'PPAAAA','KJEAAA','AAAAxx' +2252,2949,0,0,2,12,52,252,252,2252,2252,104,105,'QIAAAA','LJEAAA','HHHHxx' +4480,2950,0,0,0,0,80,480,480,4480,4480,160,161,'IQAAAA','MJEAAA','OOOOxx' +4785,2951,1,1,5,5,85,785,785,4785,4785,170,171,'BCAAAA','NJEAAA','VVVVxx' +9700,2952,0,0,0,0,0,700,1700,4700,9700,0,1,'CJAAAA','OJEAAA','AAAAxx' +2122,2953,0,2,2,2,22,122,122,2122,2122,44,45,'QDAAAA','PJEAAA','HHHHxx' +8783,2954,1,3,3,3,83,783,783,3783,8783,166,167,'VZAAAA','QJEAAA','OOOOxx' +1453,2955,1,1,3,13,53,453,1453,1453,1453,106,107,'XDAAAA','RJEAAA','VVVVxx' +3908,2956,0,0,8,8,8,908,1908,3908,3908,16,17,'IUAAAA','SJEAAA','AAAAxx' +7707,2957,1,3,7,7,7,707,1707,2707,7707,14,15,'LKAAAA','TJEAAA','HHHHxx' +9049,2958,1,1,9,9,49,49,1049,4049,9049,98,99,'BKAAAA','UJEAAA','OOOOxx' +654,2959,0,2,4,14,54,654,654,654,654,108,109,'EZAAAA','VJEAAA','VVVVxx' +3336,2960,0,0,6,16,36,336,1336,3336,3336,72,73,'IYAAAA','WJEAAA','AAAAxx' +622,2961,0,2,2,2,22,622,622,622,622,44,45,'YXAAAA','XJEAAA','HHHHxx' +8398,2962,0,2,8,18,98,398,398,3398,8398,196,197,'ALAAAA','YJEAAA','OOOOxx' +9193,2963,1,1,3,13,93,193,1193,4193,9193,186,187,'PPAAAA','ZJEAAA','VVVVxx' +7896,2964,0,0,6,16,96,896,1896,2896,7896,192,193,'SRAAAA','AKEAAA','AAAAxx' +9798,2965,0,2,8,18,98,798,1798,4798,9798,196,197,'WMAAAA','BKEAAA','HHHHxx' +2881,2966,1,1,1,1,81,881,881,2881,2881,162,163,'VGAAAA','CKEAAA','OOOOxx' +672,2967,0,0,2,12,72,672,672,672,672,144,145,'WZAAAA','DKEAAA','VVVVxx' +6743,2968,1,3,3,3,43,743,743,1743,6743,86,87,'JZAAAA','EKEAAA','AAAAxx' +8935,2969,1,3,5,15,35,935,935,3935,8935,70,71,'RFAAAA','FKEAAA','HHHHxx' +2426,2970,0,2,6,6,26,426,426,2426,2426,52,53,'IPAAAA','GKEAAA','OOOOxx' +722,2971,0,2,2,2,22,722,722,722,722,44,45,'UBAAAA','HKEAAA','VVVVxx' +5088,2972,0,0,8,8,88,88,1088,88,5088,176,177,'SNAAAA','IKEAAA','AAAAxx' +8677,2973,1,1,7,17,77,677,677,3677,8677,154,155,'TVAAAA','JKEAAA','HHHHxx' +6963,2974,1,3,3,3,63,963,963,1963,6963,126,127,'VHAAAA','KKEAAA','OOOOxx' +1653,2975,1,1,3,13,53,653,1653,1653,1653,106,107,'PLAAAA','LKEAAA','VVVVxx' +7295,2976,1,3,5,15,95,295,1295,2295,7295,190,191,'PUAAAA','MKEAAA','AAAAxx' +6675,2977,1,3,5,15,75,675,675,1675,6675,150,151,'TWAAAA','NKEAAA','HHHHxx' +7183,2978,1,3,3,3,83,183,1183,2183,7183,166,167,'HQAAAA','OKEAAA','OOOOxx' +4378,2979,0,2,8,18,78,378,378,4378,4378,156,157,'KMAAAA','PKEAAA','VVVVxx' +2157,2980,1,1,7,17,57,157,157,2157,2157,114,115,'ZEAAAA','QKEAAA','AAAAxx' +2621,2981,1,1,1,1,21,621,621,2621,2621,42,43,'VWAAAA','RKEAAA','HHHHxx' +9278,2982,0,2,8,18,78,278,1278,4278,9278,156,157,'WSAAAA','SKEAAA','OOOOxx' +79,2983,1,3,9,19,79,79,79,79,79,158,159,'BDAAAA','TKEAAA','VVVVxx' +7358,2984,0,2,8,18,58,358,1358,2358,7358,116,117,'AXAAAA','UKEAAA','AAAAxx' +3589,2985,1,1,9,9,89,589,1589,3589,3589,178,179,'BIAAAA','VKEAAA','HHHHxx' +1254,2986,0,2,4,14,54,254,1254,1254,1254,108,109,'GWAAAA','WKEAAA','OOOOxx' +3490,2987,0,2,0,10,90,490,1490,3490,3490,180,181,'GEAAAA','XKEAAA','VVVVxx' +7533,2988,1,1,3,13,33,533,1533,2533,7533,66,67,'TDAAAA','YKEAAA','AAAAxx' +2800,2989,0,0,0,0,0,800,800,2800,2800,0,1,'SDAAAA','ZKEAAA','HHHHxx' +351,2990,1,3,1,11,51,351,351,351,351,102,103,'NNAAAA','ALEAAA','OOOOxx' +4359,2991,1,3,9,19,59,359,359,4359,4359,118,119,'RLAAAA','BLEAAA','VVVVxx' +5788,2992,0,0,8,8,88,788,1788,788,5788,176,177,'QOAAAA','CLEAAA','AAAAxx' +5521,2993,1,1,1,1,21,521,1521,521,5521,42,43,'JEAAAA','DLEAAA','HHHHxx' +3351,2994,1,3,1,11,51,351,1351,3351,3351,102,103,'XYAAAA','ELEAAA','OOOOxx' +5129,2995,1,1,9,9,29,129,1129,129,5129,58,59,'HPAAAA','FLEAAA','VVVVxx' +315,2996,1,3,5,15,15,315,315,315,315,30,31,'DMAAAA','GLEAAA','AAAAxx' +7552,2997,0,0,2,12,52,552,1552,2552,7552,104,105,'MEAAAA','HLEAAA','HHHHxx' +9176,2998,0,0,6,16,76,176,1176,4176,9176,152,153,'YOAAAA','ILEAAA','OOOOxx' +7458,2999,0,2,8,18,58,458,1458,2458,7458,116,117,'WAAAAA','JLEAAA','VVVVxx' +279,3000,1,3,9,19,79,279,279,279,279,158,159,'TKAAAA','KLEAAA','AAAAxx' +738,3001,0,2,8,18,38,738,738,738,738,76,77,'KCAAAA','LLEAAA','HHHHxx' +2557,3002,1,1,7,17,57,557,557,2557,2557,114,115,'JUAAAA','MLEAAA','OOOOxx' +9395,3003,1,3,5,15,95,395,1395,4395,9395,190,191,'JXAAAA','NLEAAA','VVVVxx' +7214,3004,0,2,4,14,14,214,1214,2214,7214,28,29,'MRAAAA','OLEAAA','AAAAxx' +6354,3005,0,2,4,14,54,354,354,1354,6354,108,109,'KKAAAA','PLEAAA','HHHHxx' +4799,3006,1,3,9,19,99,799,799,4799,4799,198,199,'PCAAAA','QLEAAA','OOOOxx' +1231,3007,1,3,1,11,31,231,1231,1231,1231,62,63,'JVAAAA','RLEAAA','VVVVxx' +5252,3008,0,0,2,12,52,252,1252,252,5252,104,105,'AUAAAA','SLEAAA','AAAAxx' +5250,3009,0,2,0,10,50,250,1250,250,5250,100,101,'YTAAAA','TLEAAA','HHHHxx' +9319,3010,1,3,9,19,19,319,1319,4319,9319,38,39,'LUAAAA','ULEAAA','OOOOxx' +1724,3011,0,0,4,4,24,724,1724,1724,1724,48,49,'IOAAAA','VLEAAA','VVVVxx' +7947,3012,1,3,7,7,47,947,1947,2947,7947,94,95,'RTAAAA','WLEAAA','AAAAxx' +1105,3013,1,1,5,5,5,105,1105,1105,1105,10,11,'NQAAAA','XLEAAA','HHHHxx' +1417,3014,1,1,7,17,17,417,1417,1417,1417,34,35,'NCAAAA','YLEAAA','OOOOxx' +7101,3015,1,1,1,1,1,101,1101,2101,7101,2,3,'DNAAAA','ZLEAAA','VVVVxx' +1088,3016,0,0,8,8,88,88,1088,1088,1088,176,177,'WPAAAA','AMEAAA','AAAAxx' +979,3017,1,3,9,19,79,979,979,979,979,158,159,'RLAAAA','BMEAAA','HHHHxx' +7589,3018,1,1,9,9,89,589,1589,2589,7589,178,179,'XFAAAA','CMEAAA','OOOOxx' +8952,3019,0,0,2,12,52,952,952,3952,8952,104,105,'IGAAAA','DMEAAA','VVVVxx' +2864,3020,0,0,4,4,64,864,864,2864,2864,128,129,'EGAAAA','EMEAAA','AAAAxx' +234,3021,0,2,4,14,34,234,234,234,234,68,69,'AJAAAA','FMEAAA','HHHHxx' +7231,3022,1,3,1,11,31,231,1231,2231,7231,62,63,'DSAAAA','GMEAAA','OOOOxx' +6792,3023,0,0,2,12,92,792,792,1792,6792,184,185,'GBAAAA','HMEAAA','VVVVxx' +4311,3024,1,3,1,11,11,311,311,4311,4311,22,23,'VJAAAA','IMEAAA','AAAAxx' +3374,3025,0,2,4,14,74,374,1374,3374,3374,148,149,'UZAAAA','JMEAAA','HHHHxx' +3367,3026,1,3,7,7,67,367,1367,3367,3367,134,135,'NZAAAA','KMEAAA','OOOOxx' +2598,3027,0,2,8,18,98,598,598,2598,2598,196,197,'YVAAAA','LMEAAA','VVVVxx' +1033,3028,1,1,3,13,33,33,1033,1033,1033,66,67,'TNAAAA','MMEAAA','AAAAxx' +7803,3029,1,3,3,3,3,803,1803,2803,7803,6,7,'DOAAAA','NMEAAA','HHHHxx' +3870,3030,0,2,0,10,70,870,1870,3870,3870,140,141,'WSAAAA','OMEAAA','OOOOxx' +4962,3031,0,2,2,2,62,962,962,4962,4962,124,125,'WIAAAA','PMEAAA','VVVVxx' +4842,3032,0,2,2,2,42,842,842,4842,4842,84,85,'GEAAAA','QMEAAA','AAAAxx' +8814,3033,0,2,4,14,14,814,814,3814,8814,28,29,'ABAAAA','RMEAAA','HHHHxx' +3429,3034,1,1,9,9,29,429,1429,3429,3429,58,59,'XBAAAA','SMEAAA','OOOOxx' +6550,3035,0,2,0,10,50,550,550,1550,6550,100,101,'YRAAAA','TMEAAA','VVVVxx' +6317,3036,1,1,7,17,17,317,317,1317,6317,34,35,'ZIAAAA','UMEAAA','AAAAxx' +5023,3037,1,3,3,3,23,23,1023,23,5023,46,47,'FLAAAA','VMEAAA','HHHHxx' +5825,3038,1,1,5,5,25,825,1825,825,5825,50,51,'BQAAAA','WMEAAA','OOOOxx' +5297,3039,1,1,7,17,97,297,1297,297,5297,194,195,'TVAAAA','XMEAAA','VVVVxx' +8764,3040,0,0,4,4,64,764,764,3764,8764,128,129,'CZAAAA','YMEAAA','AAAAxx' +5084,3041,0,0,4,4,84,84,1084,84,5084,168,169,'ONAAAA','ZMEAAA','HHHHxx' +6808,3042,0,0,8,8,8,808,808,1808,6808,16,17,'WBAAAA','ANEAAA','OOOOxx' +1780,3043,0,0,0,0,80,780,1780,1780,1780,160,161,'MQAAAA','BNEAAA','VVVVxx' +4092,3044,0,0,2,12,92,92,92,4092,4092,184,185,'KBAAAA','CNEAAA','AAAAxx' +3618,3045,0,2,8,18,18,618,1618,3618,3618,36,37,'EJAAAA','DNEAAA','HHHHxx' +7299,3046,1,3,9,19,99,299,1299,2299,7299,198,199,'TUAAAA','ENEAAA','OOOOxx' +8544,3047,0,0,4,4,44,544,544,3544,8544,88,89,'QQAAAA','FNEAAA','VVVVxx' +2359,3048,1,3,9,19,59,359,359,2359,2359,118,119,'TMAAAA','GNEAAA','AAAAxx' +1939,3049,1,3,9,19,39,939,1939,1939,1939,78,79,'PWAAAA','HNEAAA','HHHHxx' +5834,3050,0,2,4,14,34,834,1834,834,5834,68,69,'KQAAAA','INEAAA','OOOOxx' +1997,3051,1,1,7,17,97,997,1997,1997,1997,194,195,'VYAAAA','JNEAAA','VVVVxx' +7917,3052,1,1,7,17,17,917,1917,2917,7917,34,35,'NSAAAA','KNEAAA','AAAAxx' +2098,3053,0,2,8,18,98,98,98,2098,2098,196,197,'SCAAAA','LNEAAA','HHHHxx' +7576,3054,0,0,6,16,76,576,1576,2576,7576,152,153,'KFAAAA','MNEAAA','OOOOxx' +376,3055,0,0,6,16,76,376,376,376,376,152,153,'MOAAAA','NNEAAA','VVVVxx' +8535,3056,1,3,5,15,35,535,535,3535,8535,70,71,'HQAAAA','ONEAAA','AAAAxx' +5659,3057,1,3,9,19,59,659,1659,659,5659,118,119,'RJAAAA','PNEAAA','HHHHxx' +2786,3058,0,2,6,6,86,786,786,2786,2786,172,173,'EDAAAA','QNEAAA','OOOOxx' +8820,3059,0,0,0,0,20,820,820,3820,8820,40,41,'GBAAAA','RNEAAA','VVVVxx' +1229,3060,1,1,9,9,29,229,1229,1229,1229,58,59,'HVAAAA','SNEAAA','AAAAxx' +9321,3061,1,1,1,1,21,321,1321,4321,9321,42,43,'NUAAAA','TNEAAA','HHHHxx' +7662,3062,0,2,2,2,62,662,1662,2662,7662,124,125,'SIAAAA','UNEAAA','OOOOxx' +5535,3063,1,3,5,15,35,535,1535,535,5535,70,71,'XEAAAA','VNEAAA','VVVVxx' +4889,3064,1,1,9,9,89,889,889,4889,4889,178,179,'BGAAAA','WNEAAA','AAAAxx' +8259,3065,1,3,9,19,59,259,259,3259,8259,118,119,'RFAAAA','XNEAAA','HHHHxx' +6789,3066,1,1,9,9,89,789,789,1789,6789,178,179,'DBAAAA','YNEAAA','OOOOxx' +5411,3067,1,3,1,11,11,411,1411,411,5411,22,23,'DAAAAA','ZNEAAA','VVVVxx' +6992,3068,0,0,2,12,92,992,992,1992,6992,184,185,'YIAAAA','AOEAAA','AAAAxx' +7698,3069,0,2,8,18,98,698,1698,2698,7698,196,197,'CKAAAA','BOEAAA','HHHHxx' +2342,3070,0,2,2,2,42,342,342,2342,2342,84,85,'CMAAAA','COEAAA','OOOOxx' +1501,3071,1,1,1,1,1,501,1501,1501,1501,2,3,'TFAAAA','DOEAAA','VVVVxx' +6322,3072,0,2,2,2,22,322,322,1322,6322,44,45,'EJAAAA','EOEAAA','AAAAxx' +9861,3073,1,1,1,1,61,861,1861,4861,9861,122,123,'HPAAAA','FOEAAA','HHHHxx' +9802,3074,0,2,2,2,2,802,1802,4802,9802,4,5,'ANAAAA','GOEAAA','OOOOxx' +4750,3075,0,2,0,10,50,750,750,4750,4750,100,101,'SAAAAA','HOEAAA','VVVVxx' +5855,3076,1,3,5,15,55,855,1855,855,5855,110,111,'FRAAAA','IOEAAA','AAAAxx' +4304,3077,0,0,4,4,4,304,304,4304,4304,8,9,'OJAAAA','JOEAAA','HHHHxx' +2605,3078,1,1,5,5,5,605,605,2605,2605,10,11,'FWAAAA','KOEAAA','OOOOxx' +1802,3079,0,2,2,2,2,802,1802,1802,1802,4,5,'IRAAAA','LOEAAA','VVVVxx' +9368,3080,0,0,8,8,68,368,1368,4368,9368,136,137,'IWAAAA','MOEAAA','AAAAxx' +7107,3081,1,3,7,7,7,107,1107,2107,7107,14,15,'JNAAAA','NOEAAA','HHHHxx' +8895,3082,1,3,5,15,95,895,895,3895,8895,190,191,'DEAAAA','OOEAAA','OOOOxx' +3750,3083,0,2,0,10,50,750,1750,3750,3750,100,101,'GOAAAA','POEAAA','VVVVxx' +8934,3084,0,2,4,14,34,934,934,3934,8934,68,69,'QFAAAA','QOEAAA','AAAAxx' +9464,3085,0,0,4,4,64,464,1464,4464,9464,128,129,'AAAAAA','ROEAAA','HHHHxx' +1928,3086,0,0,8,8,28,928,1928,1928,1928,56,57,'EWAAAA','SOEAAA','OOOOxx' +3196,3087,0,0,6,16,96,196,1196,3196,3196,192,193,'YSAAAA','TOEAAA','VVVVxx' +5256,3088,0,0,6,16,56,256,1256,256,5256,112,113,'EUAAAA','UOEAAA','AAAAxx' +7119,3089,1,3,9,19,19,119,1119,2119,7119,38,39,'VNAAAA','VOEAAA','HHHHxx' +4495,3090,1,3,5,15,95,495,495,4495,4495,190,191,'XQAAAA','WOEAAA','OOOOxx' +9292,3091,0,0,2,12,92,292,1292,4292,9292,184,185,'KTAAAA','XOEAAA','VVVVxx' +1617,3092,1,1,7,17,17,617,1617,1617,1617,34,35,'FKAAAA','YOEAAA','AAAAxx' +481,3093,1,1,1,1,81,481,481,481,481,162,163,'NSAAAA','ZOEAAA','HHHHxx' +56,3094,0,0,6,16,56,56,56,56,56,112,113,'ECAAAA','APEAAA','OOOOxx' +9120,3095,0,0,0,0,20,120,1120,4120,9120,40,41,'UMAAAA','BPEAAA','VVVVxx' +1306,3096,0,2,6,6,6,306,1306,1306,1306,12,13,'GYAAAA','CPEAAA','AAAAxx' +7773,3097,1,1,3,13,73,773,1773,2773,7773,146,147,'ZMAAAA','DPEAAA','HHHHxx' +4863,3098,1,3,3,3,63,863,863,4863,4863,126,127,'BFAAAA','EPEAAA','OOOOxx' +1114,3099,0,2,4,14,14,114,1114,1114,1114,28,29,'WQAAAA','FPEAAA','VVVVxx' +8124,3100,0,0,4,4,24,124,124,3124,8124,48,49,'MAAAAA','GPEAAA','AAAAxx' +6254,3101,0,2,4,14,54,254,254,1254,6254,108,109,'OGAAAA','HPEAAA','HHHHxx' +8109,3102,1,1,9,9,9,109,109,3109,8109,18,19,'XZAAAA','IPEAAA','OOOOxx' +1747,3103,1,3,7,7,47,747,1747,1747,1747,94,95,'FPAAAA','JPEAAA','VVVVxx' +6185,3104,1,1,5,5,85,185,185,1185,6185,170,171,'XDAAAA','KPEAAA','AAAAxx' +3388,3105,0,0,8,8,88,388,1388,3388,3388,176,177,'IAAAAA','LPEAAA','HHHHxx' +4905,3106,1,1,5,5,5,905,905,4905,4905,10,11,'RGAAAA','MPEAAA','OOOOxx' +5728,3107,0,0,8,8,28,728,1728,728,5728,56,57,'IMAAAA','NPEAAA','VVVVxx' +7507,3108,1,3,7,7,7,507,1507,2507,7507,14,15,'TCAAAA','OPEAAA','AAAAxx' +5662,3109,0,2,2,2,62,662,1662,662,5662,124,125,'UJAAAA','PPEAAA','HHHHxx' +1686,3110,0,2,6,6,86,686,1686,1686,1686,172,173,'WMAAAA','QPEAAA','OOOOxx' +5202,3111,0,2,2,2,2,202,1202,202,5202,4,5,'CSAAAA','RPEAAA','VVVVxx' +6905,3112,1,1,5,5,5,905,905,1905,6905,10,11,'PFAAAA','SPEAAA','AAAAxx' +9577,3113,1,1,7,17,77,577,1577,4577,9577,154,155,'JEAAAA','TPEAAA','HHHHxx' +7194,3114,0,2,4,14,94,194,1194,2194,7194,188,189,'SQAAAA','UPEAAA','OOOOxx' +7016,3115,0,0,6,16,16,16,1016,2016,7016,32,33,'WJAAAA','VPEAAA','VVVVxx' +8905,3116,1,1,5,5,5,905,905,3905,8905,10,11,'NEAAAA','WPEAAA','AAAAxx' +3419,3117,1,3,9,19,19,419,1419,3419,3419,38,39,'NBAAAA','XPEAAA','HHHHxx' +6881,3118,1,1,1,1,81,881,881,1881,6881,162,163,'REAAAA','YPEAAA','OOOOxx' +8370,3119,0,2,0,10,70,370,370,3370,8370,140,141,'YJAAAA','ZPEAAA','VVVVxx' +6117,3120,1,1,7,17,17,117,117,1117,6117,34,35,'HBAAAA','AQEAAA','AAAAxx' +1636,3121,0,0,6,16,36,636,1636,1636,1636,72,73,'YKAAAA','BQEAAA','HHHHxx' +6857,3122,1,1,7,17,57,857,857,1857,6857,114,115,'TDAAAA','CQEAAA','OOOOxx' +7163,3123,1,3,3,3,63,163,1163,2163,7163,126,127,'NPAAAA','DQEAAA','VVVVxx' +5040,3124,0,0,0,0,40,40,1040,40,5040,80,81,'WLAAAA','EQEAAA','AAAAxx' +6263,3125,1,3,3,3,63,263,263,1263,6263,126,127,'XGAAAA','FQEAAA','HHHHxx' +4809,3126,1,1,9,9,9,809,809,4809,4809,18,19,'ZCAAAA','GQEAAA','OOOOxx' +900,3127,0,0,0,0,0,900,900,900,900,0,1,'QIAAAA','HQEAAA','VVVVxx' +3199,3128,1,3,9,19,99,199,1199,3199,3199,198,199,'BTAAAA','IQEAAA','AAAAxx' +4156,3129,0,0,6,16,56,156,156,4156,4156,112,113,'WDAAAA','JQEAAA','HHHHxx' +3501,3130,1,1,1,1,1,501,1501,3501,3501,2,3,'REAAAA','KQEAAA','OOOOxx' +164,3131,0,0,4,4,64,164,164,164,164,128,129,'IGAAAA','LQEAAA','VVVVxx' +9548,3132,0,0,8,8,48,548,1548,4548,9548,96,97,'GDAAAA','MQEAAA','AAAAxx' +1149,3133,1,1,9,9,49,149,1149,1149,1149,98,99,'FSAAAA','NQEAAA','HHHHxx' +1962,3134,0,2,2,2,62,962,1962,1962,1962,124,125,'MXAAAA','OQEAAA','OOOOxx' +4072,3135,0,0,2,12,72,72,72,4072,4072,144,145,'QAAAAA','PQEAAA','VVVVxx' +4280,3136,0,0,0,0,80,280,280,4280,4280,160,161,'QIAAAA','QQEAAA','AAAAxx' +1398,3137,0,2,8,18,98,398,1398,1398,1398,196,197,'UBAAAA','RQEAAA','HHHHxx' +725,3138,1,1,5,5,25,725,725,725,725,50,51,'XBAAAA','SQEAAA','OOOOxx' +3988,3139,0,0,8,8,88,988,1988,3988,3988,176,177,'KXAAAA','TQEAAA','VVVVxx' +5059,3140,1,3,9,19,59,59,1059,59,5059,118,119,'PMAAAA','UQEAAA','AAAAxx' +2632,3141,0,0,2,12,32,632,632,2632,2632,64,65,'GXAAAA','VQEAAA','HHHHxx' +1909,3142,1,1,9,9,9,909,1909,1909,1909,18,19,'LVAAAA','WQEAAA','OOOOxx' +6827,3143,1,3,7,7,27,827,827,1827,6827,54,55,'PCAAAA','XQEAAA','VVVVxx' +8156,3144,0,0,6,16,56,156,156,3156,8156,112,113,'SBAAAA','YQEAAA','AAAAxx' +1192,3145,0,0,2,12,92,192,1192,1192,1192,184,185,'WTAAAA','ZQEAAA','HHHHxx' +9545,3146,1,1,5,5,45,545,1545,4545,9545,90,91,'DDAAAA','AREAAA','OOOOxx' +2249,3147,1,1,9,9,49,249,249,2249,2249,98,99,'NIAAAA','BREAAA','VVVVxx' +5580,3148,0,0,0,0,80,580,1580,580,5580,160,161,'QGAAAA','CREAAA','AAAAxx' +8403,3149,1,3,3,3,3,403,403,3403,8403,6,7,'FLAAAA','DREAAA','HHHHxx' +4024,3150,0,0,4,4,24,24,24,4024,4024,48,49,'UYAAAA','EREAAA','OOOOxx' +1866,3151,0,2,6,6,66,866,1866,1866,1866,132,133,'UTAAAA','FREAAA','VVVVxx' +9251,3152,1,3,1,11,51,251,1251,4251,9251,102,103,'VRAAAA','GREAAA','AAAAxx' +9979,3153,1,3,9,19,79,979,1979,4979,9979,158,159,'VTAAAA','HREAAA','HHHHxx' +9899,3154,1,3,9,19,99,899,1899,4899,9899,198,199,'TQAAAA','IREAAA','OOOOxx' +2540,3155,0,0,0,0,40,540,540,2540,2540,80,81,'STAAAA','JREAAA','VVVVxx' +8957,3156,1,1,7,17,57,957,957,3957,8957,114,115,'NGAAAA','KREAAA','AAAAxx' +7702,3157,0,2,2,2,2,702,1702,2702,7702,4,5,'GKAAAA','LREAAA','HHHHxx' +4211,3158,1,3,1,11,11,211,211,4211,4211,22,23,'ZFAAAA','MREAAA','OOOOxx' +6684,3159,0,0,4,4,84,684,684,1684,6684,168,169,'CXAAAA','NREAAA','VVVVxx' +3883,3160,1,3,3,3,83,883,1883,3883,3883,166,167,'JTAAAA','OREAAA','AAAAxx' +3531,3161,1,3,1,11,31,531,1531,3531,3531,62,63,'VFAAAA','PREAAA','HHHHxx' +9178,3162,0,2,8,18,78,178,1178,4178,9178,156,157,'APAAAA','QREAAA','OOOOxx' +3389,3163,1,1,9,9,89,389,1389,3389,3389,178,179,'JAAAAA','RREAAA','VVVVxx' +7874,3164,0,2,4,14,74,874,1874,2874,7874,148,149,'WQAAAA','SREAAA','AAAAxx' +4522,3165,0,2,2,2,22,522,522,4522,4522,44,45,'YRAAAA','TREAAA','HHHHxx' +9399,3166,1,3,9,19,99,399,1399,4399,9399,198,199,'NXAAAA','UREAAA','OOOOxx' +9083,3167,1,3,3,3,83,83,1083,4083,9083,166,167,'JLAAAA','VREAAA','VVVVxx' +1530,3168,0,2,0,10,30,530,1530,1530,1530,60,61,'WGAAAA','WREAAA','AAAAxx' +2360,3169,0,0,0,0,60,360,360,2360,2360,120,121,'UMAAAA','XREAAA','HHHHxx' +4908,3170,0,0,8,8,8,908,908,4908,4908,16,17,'UGAAAA','YREAAA','OOOOxx' +4628,3171,0,0,8,8,28,628,628,4628,4628,56,57,'AWAAAA','ZREAAA','VVVVxx' +3889,3172,1,1,9,9,89,889,1889,3889,3889,178,179,'PTAAAA','ASEAAA','AAAAxx' +1331,3173,1,3,1,11,31,331,1331,1331,1331,62,63,'FZAAAA','BSEAAA','HHHHxx' +1942,3174,0,2,2,2,42,942,1942,1942,1942,84,85,'SWAAAA','CSEAAA','OOOOxx' +4734,3175,0,2,4,14,34,734,734,4734,4734,68,69,'CAAAAA','DSEAAA','VVVVxx' +8386,3176,0,2,6,6,86,386,386,3386,8386,172,173,'OKAAAA','ESEAAA','AAAAxx' +3586,3177,0,2,6,6,86,586,1586,3586,3586,172,173,'YHAAAA','FSEAAA','HHHHxx' +2354,3178,0,2,4,14,54,354,354,2354,2354,108,109,'OMAAAA','GSEAAA','OOOOxx' +7108,3179,0,0,8,8,8,108,1108,2108,7108,16,17,'KNAAAA','HSEAAA','VVVVxx' +1857,3180,1,1,7,17,57,857,1857,1857,1857,114,115,'LTAAAA','ISEAAA','AAAAxx' +2544,3181,0,0,4,4,44,544,544,2544,2544,88,89,'WTAAAA','JSEAAA','HHHHxx' +819,3182,1,3,9,19,19,819,819,819,819,38,39,'NFAAAA','KSEAAA','OOOOxx' +2878,3183,0,2,8,18,78,878,878,2878,2878,156,157,'SGAAAA','LSEAAA','VVVVxx' +1772,3184,0,0,2,12,72,772,1772,1772,1772,144,145,'EQAAAA','MSEAAA','AAAAxx' +354,3185,0,2,4,14,54,354,354,354,354,108,109,'QNAAAA','NSEAAA','HHHHxx' +3259,3186,1,3,9,19,59,259,1259,3259,3259,118,119,'JVAAAA','OSEAAA','OOOOxx' +2170,3187,0,2,0,10,70,170,170,2170,2170,140,141,'MFAAAA','PSEAAA','VVVVxx' +1190,3188,0,2,0,10,90,190,1190,1190,1190,180,181,'UTAAAA','QSEAAA','AAAAxx' +3607,3189,1,3,7,7,7,607,1607,3607,3607,14,15,'TIAAAA','RSEAAA','HHHHxx' +4661,3190,1,1,1,1,61,661,661,4661,4661,122,123,'HXAAAA','SSEAAA','OOOOxx' +1796,3191,0,0,6,16,96,796,1796,1796,1796,192,193,'CRAAAA','TSEAAA','VVVVxx' +1561,3192,1,1,1,1,61,561,1561,1561,1561,122,123,'BIAAAA','USEAAA','AAAAxx' +4336,3193,0,0,6,16,36,336,336,4336,4336,72,73,'UKAAAA','VSEAAA','HHHHxx' +7550,3194,0,2,0,10,50,550,1550,2550,7550,100,101,'KEAAAA','WSEAAA','OOOOxx' +3238,3195,0,2,8,18,38,238,1238,3238,3238,76,77,'OUAAAA','XSEAAA','VVVVxx' +9870,3196,0,2,0,10,70,870,1870,4870,9870,140,141,'QPAAAA','YSEAAA','AAAAxx' +6502,3197,0,2,2,2,2,502,502,1502,6502,4,5,'CQAAAA','ZSEAAA','HHHHxx' +3903,3198,1,3,3,3,3,903,1903,3903,3903,6,7,'DUAAAA','ATEAAA','OOOOxx' +2869,3199,1,1,9,9,69,869,869,2869,2869,138,139,'JGAAAA','BTEAAA','VVVVxx' +5072,3200,0,0,2,12,72,72,1072,72,5072,144,145,'CNAAAA','CTEAAA','AAAAxx' +1201,3201,1,1,1,1,1,201,1201,1201,1201,2,3,'FUAAAA','DTEAAA','HHHHxx' +6245,3202,1,1,5,5,45,245,245,1245,6245,90,91,'FGAAAA','ETEAAA','OOOOxx' +1402,3203,0,2,2,2,2,402,1402,1402,1402,4,5,'YBAAAA','FTEAAA','VVVVxx' +2594,3204,0,2,4,14,94,594,594,2594,2594,188,189,'UVAAAA','GTEAAA','AAAAxx' +9171,3205,1,3,1,11,71,171,1171,4171,9171,142,143,'TOAAAA','HTEAAA','HHHHxx' +2620,3206,0,0,0,0,20,620,620,2620,2620,40,41,'UWAAAA','ITEAAA','OOOOxx' +6309,3207,1,1,9,9,9,309,309,1309,6309,18,19,'RIAAAA','JTEAAA','VVVVxx' +1285,3208,1,1,5,5,85,285,1285,1285,1285,170,171,'LXAAAA','KTEAAA','AAAAxx' +5466,3209,0,2,6,6,66,466,1466,466,5466,132,133,'GCAAAA','LTEAAA','HHHHxx' +168,3210,0,0,8,8,68,168,168,168,168,136,137,'MGAAAA','MTEAAA','OOOOxx' +1410,3211,0,2,0,10,10,410,1410,1410,1410,20,21,'GCAAAA','NTEAAA','VVVVxx' +6332,3212,0,0,2,12,32,332,332,1332,6332,64,65,'OJAAAA','OTEAAA','AAAAxx' +9530,3213,0,2,0,10,30,530,1530,4530,9530,60,61,'OCAAAA','PTEAAA','HHHHxx' +7749,3214,1,1,9,9,49,749,1749,2749,7749,98,99,'BMAAAA','QTEAAA','OOOOxx' +3656,3215,0,0,6,16,56,656,1656,3656,3656,112,113,'QKAAAA','RTEAAA','VVVVxx' +37,3216,1,1,7,17,37,37,37,37,37,74,75,'LBAAAA','STEAAA','AAAAxx' +2744,3217,0,0,4,4,44,744,744,2744,2744,88,89,'OBAAAA','TTEAAA','HHHHxx' +4206,3218,0,2,6,6,6,206,206,4206,4206,12,13,'UFAAAA','UTEAAA','OOOOxx' +1846,3219,0,2,6,6,46,846,1846,1846,1846,92,93,'ATAAAA','VTEAAA','VVVVxx' +9913,3220,1,1,3,13,13,913,1913,4913,9913,26,27,'HRAAAA','WTEAAA','AAAAxx' +4078,3221,0,2,8,18,78,78,78,4078,4078,156,157,'WAAAAA','XTEAAA','HHHHxx' +2080,3222,0,0,0,0,80,80,80,2080,2080,160,161,'ACAAAA','YTEAAA','OOOOxx' +4169,3223,1,1,9,9,69,169,169,4169,4169,138,139,'JEAAAA','ZTEAAA','VVVVxx' +2070,3224,0,2,0,10,70,70,70,2070,2070,140,141,'QBAAAA','AUEAAA','AAAAxx' +4500,3225,0,0,0,0,0,500,500,4500,4500,0,1,'CRAAAA','BUEAAA','HHHHxx' +4123,3226,1,3,3,3,23,123,123,4123,4123,46,47,'PCAAAA','CUEAAA','OOOOxx' +5594,3227,0,2,4,14,94,594,1594,594,5594,188,189,'EHAAAA','DUEAAA','VVVVxx' +9941,3228,1,1,1,1,41,941,1941,4941,9941,82,83,'JSAAAA','EUEAAA','AAAAxx' +7154,3229,0,2,4,14,54,154,1154,2154,7154,108,109,'EPAAAA','FUEAAA','HHHHxx' +8340,3230,0,0,0,0,40,340,340,3340,8340,80,81,'UIAAAA','GUEAAA','OOOOxx' +7110,3231,0,2,0,10,10,110,1110,2110,7110,20,21,'MNAAAA','HUEAAA','VVVVxx' +7795,3232,1,3,5,15,95,795,1795,2795,7795,190,191,'VNAAAA','IUEAAA','AAAAxx' +132,3233,0,0,2,12,32,132,132,132,132,64,65,'CFAAAA','JUEAAA','HHHHxx' +4603,3234,1,3,3,3,3,603,603,4603,4603,6,7,'BVAAAA','KUEAAA','OOOOxx' +9720,3235,0,0,0,0,20,720,1720,4720,9720,40,41,'WJAAAA','LUEAAA','VVVVxx' +1460,3236,0,0,0,0,60,460,1460,1460,1460,120,121,'EEAAAA','MUEAAA','AAAAxx' +4677,3237,1,1,7,17,77,677,677,4677,4677,154,155,'XXAAAA','NUEAAA','HHHHxx' +9272,3238,0,0,2,12,72,272,1272,4272,9272,144,145,'QSAAAA','OUEAAA','OOOOxx' +2279,3239,1,3,9,19,79,279,279,2279,2279,158,159,'RJAAAA','PUEAAA','VVVVxx' +4587,3240,1,3,7,7,87,587,587,4587,4587,174,175,'LUAAAA','QUEAAA','AAAAxx' +2244,3241,0,0,4,4,44,244,244,2244,2244,88,89,'IIAAAA','RUEAAA','HHHHxx' +742,3242,0,2,2,2,42,742,742,742,742,84,85,'OCAAAA','SUEAAA','OOOOxx' +4426,3243,0,2,6,6,26,426,426,4426,4426,52,53,'GOAAAA','TUEAAA','VVVVxx' +4571,3244,1,3,1,11,71,571,571,4571,4571,142,143,'VTAAAA','UUEAAA','AAAAxx' +4775,3245,1,3,5,15,75,775,775,4775,4775,150,151,'RBAAAA','VUEAAA','HHHHxx' +24,3246,0,0,4,4,24,24,24,24,24,48,49,'YAAAAA','WUEAAA','OOOOxx' +4175,3247,1,3,5,15,75,175,175,4175,4175,150,151,'PEAAAA','XUEAAA','VVVVxx' +9877,3248,1,1,7,17,77,877,1877,4877,9877,154,155,'XPAAAA','YUEAAA','AAAAxx' +7271,3249,1,3,1,11,71,271,1271,2271,7271,142,143,'RTAAAA','ZUEAAA','HHHHxx' +5468,3250,0,0,8,8,68,468,1468,468,5468,136,137,'ICAAAA','AVEAAA','OOOOxx' +6106,3251,0,2,6,6,6,106,106,1106,6106,12,13,'WAAAAA','BVEAAA','VVVVxx' +9005,3252,1,1,5,5,5,5,1005,4005,9005,10,11,'JIAAAA','CVEAAA','AAAAxx' +109,3253,1,1,9,9,9,109,109,109,109,18,19,'FEAAAA','DVEAAA','HHHHxx' +6365,3254,1,1,5,5,65,365,365,1365,6365,130,131,'VKAAAA','EVEAAA','OOOOxx' +7437,3255,1,1,7,17,37,437,1437,2437,7437,74,75,'BAAAAA','FVEAAA','VVVVxx' +7979,3256,1,3,9,19,79,979,1979,2979,7979,158,159,'XUAAAA','GVEAAA','AAAAxx' +6050,3257,0,2,0,10,50,50,50,1050,6050,100,101,'SYAAAA','HVEAAA','HHHHxx' +2853,3258,1,1,3,13,53,853,853,2853,2853,106,107,'TFAAAA','IVEAAA','OOOOxx' +7603,3259,1,3,3,3,3,603,1603,2603,7603,6,7,'LGAAAA','JVEAAA','VVVVxx' +483,3260,1,3,3,3,83,483,483,483,483,166,167,'PSAAAA','KVEAAA','AAAAxx' +5994,3261,0,2,4,14,94,994,1994,994,5994,188,189,'OWAAAA','LVEAAA','HHHHxx' +6708,3262,0,0,8,8,8,708,708,1708,6708,16,17,'AYAAAA','MVEAAA','OOOOxx' +5090,3263,0,2,0,10,90,90,1090,90,5090,180,181,'UNAAAA','NVEAAA','VVVVxx' +4608,3264,0,0,8,8,8,608,608,4608,4608,16,17,'GVAAAA','OVEAAA','AAAAxx' +4551,3265,1,3,1,11,51,551,551,4551,4551,102,103,'BTAAAA','PVEAAA','HHHHxx' +5437,3266,1,1,7,17,37,437,1437,437,5437,74,75,'DBAAAA','QVEAAA','OOOOxx' +4130,3267,0,2,0,10,30,130,130,4130,4130,60,61,'WCAAAA','RVEAAA','VVVVxx' +6363,3268,1,3,3,3,63,363,363,1363,6363,126,127,'TKAAAA','SVEAAA','AAAAxx' +1499,3269,1,3,9,19,99,499,1499,1499,1499,198,199,'RFAAAA','TVEAAA','HHHHxx' +384,3270,0,0,4,4,84,384,384,384,384,168,169,'UOAAAA','UVEAAA','OOOOxx' +2266,3271,0,2,6,6,66,266,266,2266,2266,132,133,'EJAAAA','VVEAAA','VVVVxx' +6018,3272,0,2,8,18,18,18,18,1018,6018,36,37,'MXAAAA','WVEAAA','AAAAxx' +7915,3273,1,3,5,15,15,915,1915,2915,7915,30,31,'LSAAAA','XVEAAA','HHHHxx' +6167,3274,1,3,7,7,67,167,167,1167,6167,134,135,'FDAAAA','YVEAAA','OOOOxx' +9988,3275,0,0,8,8,88,988,1988,4988,9988,176,177,'EUAAAA','ZVEAAA','VVVVxx' +6599,3276,1,3,9,19,99,599,599,1599,6599,198,199,'VTAAAA','AWEAAA','AAAAxx' +1693,3277,1,1,3,13,93,693,1693,1693,1693,186,187,'DNAAAA','BWEAAA','HHHHxx' +5971,3278,1,3,1,11,71,971,1971,971,5971,142,143,'RVAAAA','CWEAAA','OOOOxx' +8470,3279,0,2,0,10,70,470,470,3470,8470,140,141,'UNAAAA','DWEAAA','VVVVxx' +2807,3280,1,3,7,7,7,807,807,2807,2807,14,15,'ZDAAAA','EWEAAA','AAAAxx' +1120,3281,0,0,0,0,20,120,1120,1120,1120,40,41,'CRAAAA','FWEAAA','HHHHxx' +5924,3282,0,0,4,4,24,924,1924,924,5924,48,49,'WTAAAA','GWEAAA','OOOOxx' +9025,3283,1,1,5,5,25,25,1025,4025,9025,50,51,'DJAAAA','HWEAAA','VVVVxx' +9454,3284,0,2,4,14,54,454,1454,4454,9454,108,109,'QZAAAA','IWEAAA','AAAAxx' +2259,3285,1,3,9,19,59,259,259,2259,2259,118,119,'XIAAAA','JWEAAA','HHHHxx' +5249,3286,1,1,9,9,49,249,1249,249,5249,98,99,'XTAAAA','KWEAAA','OOOOxx' +6350,3287,0,2,0,10,50,350,350,1350,6350,100,101,'GKAAAA','LWEAAA','VVVVxx' +2930,3288,0,2,0,10,30,930,930,2930,2930,60,61,'SIAAAA','MWEAAA','AAAAxx' +6055,3289,1,3,5,15,55,55,55,1055,6055,110,111,'XYAAAA','NWEAAA','HHHHxx' +7691,3290,1,3,1,11,91,691,1691,2691,7691,182,183,'VJAAAA','OWEAAA','OOOOxx' +1573,3291,1,1,3,13,73,573,1573,1573,1573,146,147,'NIAAAA','PWEAAA','VVVVxx' +9943,3292,1,3,3,3,43,943,1943,4943,9943,86,87,'LSAAAA','QWEAAA','AAAAxx' +3085,3293,1,1,5,5,85,85,1085,3085,3085,170,171,'ROAAAA','RWEAAA','HHHHxx' +5928,3294,0,0,8,8,28,928,1928,928,5928,56,57,'AUAAAA','SWEAAA','OOOOxx' +887,3295,1,3,7,7,87,887,887,887,887,174,175,'DIAAAA','TWEAAA','VVVVxx' +4630,3296,0,2,0,10,30,630,630,4630,4630,60,61,'CWAAAA','UWEAAA','AAAAxx' +9827,3297,1,3,7,7,27,827,1827,4827,9827,54,55,'ZNAAAA','VWEAAA','HHHHxx' +8926,3298,0,2,6,6,26,926,926,3926,8926,52,53,'IFAAAA','WWEAAA','OOOOxx' +5726,3299,0,2,6,6,26,726,1726,726,5726,52,53,'GMAAAA','XWEAAA','VVVVxx' +1569,3300,1,1,9,9,69,569,1569,1569,1569,138,139,'JIAAAA','YWEAAA','AAAAxx' +8074,3301,0,2,4,14,74,74,74,3074,8074,148,149,'OYAAAA','ZWEAAA','HHHHxx' +7909,3302,1,1,9,9,9,909,1909,2909,7909,18,19,'FSAAAA','AXEAAA','OOOOxx' +8367,3303,1,3,7,7,67,367,367,3367,8367,134,135,'VJAAAA','BXEAAA','VVVVxx' +7217,3304,1,1,7,17,17,217,1217,2217,7217,34,35,'PRAAAA','CXEAAA','AAAAxx' +5254,3305,0,2,4,14,54,254,1254,254,5254,108,109,'CUAAAA','DXEAAA','HHHHxx' +1181,3306,1,1,1,1,81,181,1181,1181,1181,162,163,'LTAAAA','EXEAAA','OOOOxx' +6907,3307,1,3,7,7,7,907,907,1907,6907,14,15,'RFAAAA','FXEAAA','VVVVxx' +5508,3308,0,0,8,8,8,508,1508,508,5508,16,17,'WDAAAA','GXEAAA','AAAAxx' +4782,3309,0,2,2,2,82,782,782,4782,4782,164,165,'YBAAAA','HXEAAA','HHHHxx' +793,3310,1,1,3,13,93,793,793,793,793,186,187,'NEAAAA','IXEAAA','OOOOxx' +5740,3311,0,0,0,0,40,740,1740,740,5740,80,81,'UMAAAA','JXEAAA','VVVVxx' +3107,3312,1,3,7,7,7,107,1107,3107,3107,14,15,'NPAAAA','KXEAAA','AAAAxx' +1197,3313,1,1,7,17,97,197,1197,1197,1197,194,195,'BUAAAA','LXEAAA','HHHHxx' +4376,3314,0,0,6,16,76,376,376,4376,4376,152,153,'IMAAAA','MXEAAA','OOOOxx' +6226,3315,0,2,6,6,26,226,226,1226,6226,52,53,'MFAAAA','NXEAAA','VVVVxx' +5033,3316,1,1,3,13,33,33,1033,33,5033,66,67,'PLAAAA','OXEAAA','AAAAxx' +5494,3317,0,2,4,14,94,494,1494,494,5494,188,189,'IDAAAA','PXEAAA','HHHHxx' +3244,3318,0,0,4,4,44,244,1244,3244,3244,88,89,'UUAAAA','QXEAAA','OOOOxx' +7670,3319,0,2,0,10,70,670,1670,2670,7670,140,141,'AJAAAA','RXEAAA','VVVVxx' +9273,3320,1,1,3,13,73,273,1273,4273,9273,146,147,'RSAAAA','SXEAAA','AAAAxx' +5248,3321,0,0,8,8,48,248,1248,248,5248,96,97,'WTAAAA','TXEAAA','HHHHxx' +3381,3322,1,1,1,1,81,381,1381,3381,3381,162,163,'BAAAAA','UXEAAA','OOOOxx' +4136,3323,0,0,6,16,36,136,136,4136,4136,72,73,'CDAAAA','VXEAAA','VVVVxx' +4163,3324,1,3,3,3,63,163,163,4163,4163,126,127,'DEAAAA','WXEAAA','AAAAxx' +4270,3325,0,2,0,10,70,270,270,4270,4270,140,141,'GIAAAA','XXEAAA','HHHHxx' +1729,3326,1,1,9,9,29,729,1729,1729,1729,58,59,'NOAAAA','YXEAAA','OOOOxx' +2778,3327,0,2,8,18,78,778,778,2778,2778,156,157,'WCAAAA','ZXEAAA','VVVVxx' +5082,3328,0,2,2,2,82,82,1082,82,5082,164,165,'MNAAAA','AYEAAA','AAAAxx' +870,3329,0,2,0,10,70,870,870,870,870,140,141,'MHAAAA','BYEAAA','HHHHxx' +4192,3330,0,0,2,12,92,192,192,4192,4192,184,185,'GFAAAA','CYEAAA','OOOOxx' +308,3331,0,0,8,8,8,308,308,308,308,16,17,'WLAAAA','DYEAAA','VVVVxx' +6783,3332,1,3,3,3,83,783,783,1783,6783,166,167,'XAAAAA','EYEAAA','AAAAxx' +7611,3333,1,3,1,11,11,611,1611,2611,7611,22,23,'TGAAAA','FYEAAA','HHHHxx' +4221,3334,1,1,1,1,21,221,221,4221,4221,42,43,'JGAAAA','GYEAAA','OOOOxx' +6353,3335,1,1,3,13,53,353,353,1353,6353,106,107,'JKAAAA','HYEAAA','VVVVxx' +1830,3336,0,2,0,10,30,830,1830,1830,1830,60,61,'KSAAAA','IYEAAA','AAAAxx' +2437,3337,1,1,7,17,37,437,437,2437,2437,74,75,'TPAAAA','JYEAAA','HHHHxx' +3360,3338,0,0,0,0,60,360,1360,3360,3360,120,121,'GZAAAA','KYEAAA','OOOOxx' +1829,3339,1,1,9,9,29,829,1829,1829,1829,58,59,'JSAAAA','LYEAAA','VVVVxx' +9475,3340,1,3,5,15,75,475,1475,4475,9475,150,151,'LAAAAA','MYEAAA','AAAAxx' +4566,3341,0,2,6,6,66,566,566,4566,4566,132,133,'QTAAAA','NYEAAA','HHHHxx' +9944,3342,0,0,4,4,44,944,1944,4944,9944,88,89,'MSAAAA','OYEAAA','OOOOxx' +6054,3343,0,2,4,14,54,54,54,1054,6054,108,109,'WYAAAA','PYEAAA','VVVVxx' +4722,3344,0,2,2,2,22,722,722,4722,4722,44,45,'QZAAAA','QYEAAA','AAAAxx' +2779,3345,1,3,9,19,79,779,779,2779,2779,158,159,'XCAAAA','RYEAAA','HHHHxx' +8051,3346,1,3,1,11,51,51,51,3051,8051,102,103,'RXAAAA','SYEAAA','OOOOxx' +9671,3347,1,3,1,11,71,671,1671,4671,9671,142,143,'ZHAAAA','TYEAAA','VVVVxx' +6084,3348,0,0,4,4,84,84,84,1084,6084,168,169,'AAAAAA','UYEAAA','AAAAxx' +3729,3349,1,1,9,9,29,729,1729,3729,3729,58,59,'LNAAAA','VYEAAA','HHHHxx' +6627,3350,1,3,7,7,27,627,627,1627,6627,54,55,'XUAAAA','WYEAAA','OOOOxx' +4769,3351,1,1,9,9,69,769,769,4769,4769,138,139,'LBAAAA','XYEAAA','VVVVxx' +2224,3352,0,0,4,4,24,224,224,2224,2224,48,49,'OHAAAA','YYEAAA','AAAAxx' +1404,3353,0,0,4,4,4,404,1404,1404,1404,8,9,'ACAAAA','ZYEAAA','HHHHxx' +8532,3354,0,0,2,12,32,532,532,3532,8532,64,65,'EQAAAA','AZEAAA','OOOOxx' +6759,3355,1,3,9,19,59,759,759,1759,6759,118,119,'ZZAAAA','BZEAAA','VVVVxx' +6404,3356,0,0,4,4,4,404,404,1404,6404,8,9,'IMAAAA','CZEAAA','AAAAxx' +3144,3357,0,0,4,4,44,144,1144,3144,3144,88,89,'YQAAAA','DZEAAA','HHHHxx' +973,3358,1,1,3,13,73,973,973,973,973,146,147,'LLAAAA','EZEAAA','OOOOxx' +9789,3359,1,1,9,9,89,789,1789,4789,9789,178,179,'NMAAAA','FZEAAA','VVVVxx' +6181,3360,1,1,1,1,81,181,181,1181,6181,162,163,'TDAAAA','GZEAAA','AAAAxx' +1519,3361,1,3,9,19,19,519,1519,1519,1519,38,39,'LGAAAA','HZEAAA','HHHHxx' +9729,3362,1,1,9,9,29,729,1729,4729,9729,58,59,'FKAAAA','IZEAAA','OOOOxx' +8167,3363,1,3,7,7,67,167,167,3167,8167,134,135,'DCAAAA','JZEAAA','VVVVxx' +3830,3364,0,2,0,10,30,830,1830,3830,3830,60,61,'IRAAAA','KZEAAA','AAAAxx' +6286,3365,0,2,6,6,86,286,286,1286,6286,172,173,'UHAAAA','LZEAAA','HHHHxx' +3047,3366,1,3,7,7,47,47,1047,3047,3047,94,95,'FNAAAA','MZEAAA','OOOOxx' +3183,3367,1,3,3,3,83,183,1183,3183,3183,166,167,'LSAAAA','NZEAAA','VVVVxx' +6687,3368,1,3,7,7,87,687,687,1687,6687,174,175,'FXAAAA','OZEAAA','AAAAxx' +2783,3369,1,3,3,3,83,783,783,2783,2783,166,167,'BDAAAA','PZEAAA','HHHHxx' +9920,3370,0,0,0,0,20,920,1920,4920,9920,40,41,'ORAAAA','QZEAAA','OOOOxx' +4847,3371,1,3,7,7,47,847,847,4847,4847,94,95,'LEAAAA','RZEAAA','VVVVxx' +3645,3372,1,1,5,5,45,645,1645,3645,3645,90,91,'FKAAAA','SZEAAA','AAAAxx' +7406,3373,0,2,6,6,6,406,1406,2406,7406,12,13,'WYAAAA','TZEAAA','HHHHxx' +6003,3374,1,3,3,3,3,3,3,1003,6003,6,7,'XWAAAA','UZEAAA','OOOOxx' +3408,3375,0,0,8,8,8,408,1408,3408,3408,16,17,'CBAAAA','VZEAAA','VVVVxx' +4243,3376,1,3,3,3,43,243,243,4243,4243,86,87,'FHAAAA','WZEAAA','AAAAxx' +1622,3377,0,2,2,2,22,622,1622,1622,1622,44,45,'KKAAAA','XZEAAA','HHHHxx' +5319,3378,1,3,9,19,19,319,1319,319,5319,38,39,'PWAAAA','YZEAAA','OOOOxx' +4033,3379,1,1,3,13,33,33,33,4033,4033,66,67,'DZAAAA','ZZEAAA','VVVVxx' +8573,3380,1,1,3,13,73,573,573,3573,8573,146,147,'TRAAAA','AAFAAA','AAAAxx' +8404,3381,0,0,4,4,4,404,404,3404,8404,8,9,'GLAAAA','BAFAAA','HHHHxx' +6993,3382,1,1,3,13,93,993,993,1993,6993,186,187,'ZIAAAA','CAFAAA','OOOOxx' +660,3383,0,0,0,0,60,660,660,660,660,120,121,'KZAAAA','DAFAAA','VVVVxx' +1136,3384,0,0,6,16,36,136,1136,1136,1136,72,73,'SRAAAA','EAFAAA','AAAAxx' +3393,3385,1,1,3,13,93,393,1393,3393,3393,186,187,'NAAAAA','FAFAAA','HHHHxx' +9743,3386,1,3,3,3,43,743,1743,4743,9743,86,87,'TKAAAA','GAFAAA','OOOOxx' +9705,3387,1,1,5,5,5,705,1705,4705,9705,10,11,'HJAAAA','HAFAAA','VVVVxx' +6960,3388,0,0,0,0,60,960,960,1960,6960,120,121,'SHAAAA','IAFAAA','AAAAxx' +2753,3389,1,1,3,13,53,753,753,2753,2753,106,107,'XBAAAA','JAFAAA','HHHHxx' +906,3390,0,2,6,6,6,906,906,906,906,12,13,'WIAAAA','KAFAAA','OOOOxx' +999,3391,1,3,9,19,99,999,999,999,999,198,199,'LMAAAA','LAFAAA','VVVVxx' +6927,3392,1,3,7,7,27,927,927,1927,6927,54,55,'LGAAAA','MAFAAA','AAAAxx' +4846,3393,0,2,6,6,46,846,846,4846,4846,92,93,'KEAAAA','NAFAAA','HHHHxx' +676,3394,0,0,6,16,76,676,676,676,676,152,153,'AAAAAA','OAFAAA','OOOOxx' +8612,3395,0,0,2,12,12,612,612,3612,8612,24,25,'GTAAAA','PAFAAA','VVVVxx' +4111,3396,1,3,1,11,11,111,111,4111,4111,22,23,'DCAAAA','QAFAAA','AAAAxx' +9994,3397,0,2,4,14,94,994,1994,4994,9994,188,189,'KUAAAA','RAFAAA','HHHHxx' +4399,3398,1,3,9,19,99,399,399,4399,4399,198,199,'FNAAAA','SAFAAA','OOOOxx' +4464,3399,0,0,4,4,64,464,464,4464,4464,128,129,'SPAAAA','TAFAAA','VVVVxx' +7316,3400,0,0,6,16,16,316,1316,2316,7316,32,33,'KVAAAA','UAFAAA','AAAAxx' +8982,3401,0,2,2,2,82,982,982,3982,8982,164,165,'MHAAAA','VAFAAA','HHHHxx' +1871,3402,1,3,1,11,71,871,1871,1871,1871,142,143,'ZTAAAA','WAFAAA','OOOOxx' +4082,3403,0,2,2,2,82,82,82,4082,4082,164,165,'ABAAAA','XAFAAA','VVVVxx' +3949,3404,1,1,9,9,49,949,1949,3949,3949,98,99,'XVAAAA','YAFAAA','AAAAxx' +9352,3405,0,0,2,12,52,352,1352,4352,9352,104,105,'SVAAAA','ZAFAAA','HHHHxx' +9638,3406,0,2,8,18,38,638,1638,4638,9638,76,77,'SGAAAA','ABFAAA','OOOOxx' +8177,3407,1,1,7,17,77,177,177,3177,8177,154,155,'NCAAAA','BBFAAA','VVVVxx' +3499,3408,1,3,9,19,99,499,1499,3499,3499,198,199,'PEAAAA','CBFAAA','AAAAxx' +4233,3409,1,1,3,13,33,233,233,4233,4233,66,67,'VGAAAA','DBFAAA','HHHHxx' +1953,3410,1,1,3,13,53,953,1953,1953,1953,106,107,'DXAAAA','EBFAAA','OOOOxx' +7372,3411,0,0,2,12,72,372,1372,2372,7372,144,145,'OXAAAA','FBFAAA','VVVVxx' +5127,3412,1,3,7,7,27,127,1127,127,5127,54,55,'FPAAAA','GBFAAA','AAAAxx' +4384,3413,0,0,4,4,84,384,384,4384,4384,168,169,'QMAAAA','HBFAAA','HHHHxx' +9964,3414,0,0,4,4,64,964,1964,4964,9964,128,129,'GTAAAA','IBFAAA','OOOOxx' +5392,3415,0,0,2,12,92,392,1392,392,5392,184,185,'KZAAAA','JBFAAA','VVVVxx' +616,3416,0,0,6,16,16,616,616,616,616,32,33,'SXAAAA','KBFAAA','AAAAxx' +591,3417,1,3,1,11,91,591,591,591,591,182,183,'TWAAAA','LBFAAA','HHHHxx' +6422,3418,0,2,2,2,22,422,422,1422,6422,44,45,'ANAAAA','MBFAAA','OOOOxx' +6551,3419,1,3,1,11,51,551,551,1551,6551,102,103,'ZRAAAA','NBFAAA','VVVVxx' +9286,3420,0,2,6,6,86,286,1286,4286,9286,172,173,'ETAAAA','OBFAAA','AAAAxx' +3817,3421,1,1,7,17,17,817,1817,3817,3817,34,35,'VQAAAA','PBFAAA','HHHHxx' +7717,3422,1,1,7,17,17,717,1717,2717,7717,34,35,'VKAAAA','QBFAAA','OOOOxx' +8718,3423,0,2,8,18,18,718,718,3718,8718,36,37,'IXAAAA','RBFAAA','VVVVxx' +8608,3424,0,0,8,8,8,608,608,3608,8608,16,17,'CTAAAA','SBFAAA','AAAAxx' +2242,3425,0,2,2,2,42,242,242,2242,2242,84,85,'GIAAAA','TBFAAA','HHHHxx' +4811,3426,1,3,1,11,11,811,811,4811,4811,22,23,'BDAAAA','UBFAAA','OOOOxx' +6838,3427,0,2,8,18,38,838,838,1838,6838,76,77,'ADAAAA','VBFAAA','VVVVxx' +787,3428,1,3,7,7,87,787,787,787,787,174,175,'HEAAAA','WBFAAA','AAAAxx' +7940,3429,0,0,0,0,40,940,1940,2940,7940,80,81,'KTAAAA','XBFAAA','HHHHxx' +336,3430,0,0,6,16,36,336,336,336,336,72,73,'YMAAAA','YBFAAA','OOOOxx' +9859,3431,1,3,9,19,59,859,1859,4859,9859,118,119,'FPAAAA','ZBFAAA','VVVVxx' +3864,3432,0,0,4,4,64,864,1864,3864,3864,128,129,'QSAAAA','ACFAAA','AAAAxx' +7162,3433,0,2,2,2,62,162,1162,2162,7162,124,125,'MPAAAA','BCFAAA','HHHHxx' +2071,3434,1,3,1,11,71,71,71,2071,2071,142,143,'RBAAAA','CCFAAA','OOOOxx' +7469,3435,1,1,9,9,69,469,1469,2469,7469,138,139,'HBAAAA','DCFAAA','VVVVxx' +2917,3436,1,1,7,17,17,917,917,2917,2917,34,35,'FIAAAA','ECFAAA','AAAAxx' +7486,3437,0,2,6,6,86,486,1486,2486,7486,172,173,'YBAAAA','FCFAAA','HHHHxx' +3355,3438,1,3,5,15,55,355,1355,3355,3355,110,111,'BZAAAA','GCFAAA','OOOOxx' +6998,3439,0,2,8,18,98,998,998,1998,6998,196,197,'EJAAAA','HCFAAA','VVVVxx' +5498,3440,0,2,8,18,98,498,1498,498,5498,196,197,'MDAAAA','ICFAAA','AAAAxx' +5113,3441,1,1,3,13,13,113,1113,113,5113,26,27,'ROAAAA','JCFAAA','HHHHxx' +2846,3442,0,2,6,6,46,846,846,2846,2846,92,93,'MFAAAA','KCFAAA','OOOOxx' +6834,3443,0,2,4,14,34,834,834,1834,6834,68,69,'WCAAAA','LCFAAA','VVVVxx' +8925,3444,1,1,5,5,25,925,925,3925,8925,50,51,'HFAAAA','MCFAAA','AAAAxx' +2757,3445,1,1,7,17,57,757,757,2757,2757,114,115,'BCAAAA','NCFAAA','HHHHxx' +2775,3446,1,3,5,15,75,775,775,2775,2775,150,151,'TCAAAA','OCFAAA','OOOOxx' +6182,3447,0,2,2,2,82,182,182,1182,6182,164,165,'UDAAAA','PCFAAA','VVVVxx' +4488,3448,0,0,8,8,88,488,488,4488,4488,176,177,'QQAAAA','QCFAAA','AAAAxx' +8523,3449,1,3,3,3,23,523,523,3523,8523,46,47,'VPAAAA','RCFAAA','HHHHxx' +52,3450,0,0,2,12,52,52,52,52,52,104,105,'ACAAAA','SCFAAA','OOOOxx' +7251,3451,1,3,1,11,51,251,1251,2251,7251,102,103,'XSAAAA','TCFAAA','VVVVxx' +6130,3452,0,2,0,10,30,130,130,1130,6130,60,61,'UBAAAA','UCFAAA','AAAAxx' +205,3453,1,1,5,5,5,205,205,205,205,10,11,'XHAAAA','VCFAAA','HHHHxx' +1186,3454,0,2,6,6,86,186,1186,1186,1186,172,173,'QTAAAA','WCFAAA','OOOOxx' +1738,3455,0,2,8,18,38,738,1738,1738,1738,76,77,'WOAAAA','XCFAAA','VVVVxx' +9485,3456,1,1,5,5,85,485,1485,4485,9485,170,171,'VAAAAA','YCFAAA','AAAAxx' +4235,3457,1,3,5,15,35,235,235,4235,4235,70,71,'XGAAAA','ZCFAAA','HHHHxx' +7891,3458,1,3,1,11,91,891,1891,2891,7891,182,183,'NRAAAA','ADFAAA','OOOOxx' +4960,3459,0,0,0,0,60,960,960,4960,4960,120,121,'UIAAAA','BDFAAA','VVVVxx' +8911,3460,1,3,1,11,11,911,911,3911,8911,22,23,'TEAAAA','CDFAAA','AAAAxx' +1219,3461,1,3,9,19,19,219,1219,1219,1219,38,39,'XUAAAA','DDFAAA','HHHHxx' +9652,3462,0,0,2,12,52,652,1652,4652,9652,104,105,'GHAAAA','EDFAAA','OOOOxx' +9715,3463,1,3,5,15,15,715,1715,4715,9715,30,31,'RJAAAA','FDFAAA','VVVVxx' +6629,3464,1,1,9,9,29,629,629,1629,6629,58,59,'ZUAAAA','GDFAAA','AAAAxx' +700,3465,0,0,0,0,0,700,700,700,700,0,1,'YAAAAA','HDFAAA','HHHHxx' +9819,3466,1,3,9,19,19,819,1819,4819,9819,38,39,'RNAAAA','IDFAAA','OOOOxx' +5188,3467,0,0,8,8,88,188,1188,188,5188,176,177,'ORAAAA','JDFAAA','VVVVxx' +5367,3468,1,3,7,7,67,367,1367,367,5367,134,135,'LYAAAA','KDFAAA','AAAAxx' +6447,3469,1,3,7,7,47,447,447,1447,6447,94,95,'ZNAAAA','LDFAAA','HHHHxx' +720,3470,0,0,0,0,20,720,720,720,720,40,41,'SBAAAA','MDFAAA','OOOOxx' +9157,3471,1,1,7,17,57,157,1157,4157,9157,114,115,'FOAAAA','NDFAAA','VVVVxx' +1082,3472,0,2,2,2,82,82,1082,1082,1082,164,165,'QPAAAA','ODFAAA','AAAAxx' +3179,3473,1,3,9,19,79,179,1179,3179,3179,158,159,'HSAAAA','PDFAAA','HHHHxx' +4818,3474,0,2,8,18,18,818,818,4818,4818,36,37,'IDAAAA','QDFAAA','OOOOxx' +7607,3475,1,3,7,7,7,607,1607,2607,7607,14,15,'PGAAAA','RDFAAA','VVVVxx' +2352,3476,0,0,2,12,52,352,352,2352,2352,104,105,'MMAAAA','SDFAAA','AAAAxx' +1170,3477,0,2,0,10,70,170,1170,1170,1170,140,141,'ATAAAA','TDFAAA','HHHHxx' +4269,3478,1,1,9,9,69,269,269,4269,4269,138,139,'FIAAAA','UDFAAA','OOOOxx' +8767,3479,1,3,7,7,67,767,767,3767,8767,134,135,'FZAAAA','VDFAAA','VVVVxx' +3984,3480,0,0,4,4,84,984,1984,3984,3984,168,169,'GXAAAA','WDFAAA','AAAAxx' +3190,3481,0,2,0,10,90,190,1190,3190,3190,180,181,'SSAAAA','XDFAAA','HHHHxx' +7456,3482,0,0,6,16,56,456,1456,2456,7456,112,113,'UAAAAA','YDFAAA','OOOOxx' +4348,3483,0,0,8,8,48,348,348,4348,4348,96,97,'GLAAAA','ZDFAAA','VVVVxx' +3150,3484,0,2,0,10,50,150,1150,3150,3150,100,101,'ERAAAA','AEFAAA','AAAAxx' +8780,3485,0,0,0,0,80,780,780,3780,8780,160,161,'SZAAAA','BEFAAA','HHHHxx' +2553,3486,1,1,3,13,53,553,553,2553,2553,106,107,'FUAAAA','CEFAAA','OOOOxx' +7526,3487,0,2,6,6,26,526,1526,2526,7526,52,53,'MDAAAA','DEFAAA','VVVVxx' +2031,3488,1,3,1,11,31,31,31,2031,2031,62,63,'DAAAAA','EEFAAA','AAAAxx' +8793,3489,1,1,3,13,93,793,793,3793,8793,186,187,'FAAAAA','FEFAAA','HHHHxx' +1122,3490,0,2,2,2,22,122,1122,1122,1122,44,45,'ERAAAA','GEFAAA','OOOOxx' +1855,3491,1,3,5,15,55,855,1855,1855,1855,110,111,'JTAAAA','HEFAAA','VVVVxx' +6613,3492,1,1,3,13,13,613,613,1613,6613,26,27,'JUAAAA','IEFAAA','AAAAxx' +3231,3493,1,3,1,11,31,231,1231,3231,3231,62,63,'HUAAAA','JEFAAA','HHHHxx' +9101,3494,1,1,1,1,1,101,1101,4101,9101,2,3,'BMAAAA','KEFAAA','OOOOxx' +4937,3495,1,1,7,17,37,937,937,4937,4937,74,75,'XHAAAA','LEFAAA','VVVVxx' +666,3496,0,2,6,6,66,666,666,666,666,132,133,'QZAAAA','MEFAAA','AAAAxx' +8943,3497,1,3,3,3,43,943,943,3943,8943,86,87,'ZFAAAA','NEFAAA','HHHHxx' +6164,3498,0,0,4,4,64,164,164,1164,6164,128,129,'CDAAAA','OEFAAA','OOOOxx' +1081,3499,1,1,1,1,81,81,1081,1081,1081,162,163,'PPAAAA','PEFAAA','VVVVxx' +210,3500,0,2,0,10,10,210,210,210,210,20,21,'CIAAAA','QEFAAA','AAAAxx' +6024,3501,0,0,4,4,24,24,24,1024,6024,48,49,'SXAAAA','REFAAA','HHHHxx' +5715,3502,1,3,5,15,15,715,1715,715,5715,30,31,'VLAAAA','SEFAAA','OOOOxx' +8938,3503,0,2,8,18,38,938,938,3938,8938,76,77,'UFAAAA','TEFAAA','VVVVxx' +1326,3504,0,2,6,6,26,326,1326,1326,1326,52,53,'AZAAAA','UEFAAA','AAAAxx' +7111,3505,1,3,1,11,11,111,1111,2111,7111,22,23,'NNAAAA','VEFAAA','HHHHxx' +757,3506,1,1,7,17,57,757,757,757,757,114,115,'DDAAAA','WEFAAA','OOOOxx' +8933,3507,1,1,3,13,33,933,933,3933,8933,66,67,'PFAAAA','XEFAAA','VVVVxx' +6495,3508,1,3,5,15,95,495,495,1495,6495,190,191,'VPAAAA','YEFAAA','AAAAxx' +3134,3509,0,2,4,14,34,134,1134,3134,3134,68,69,'OQAAAA','ZEFAAA','HHHHxx' +1304,3510,0,0,4,4,4,304,1304,1304,1304,8,9,'EYAAAA','AFFAAA','OOOOxx' +1835,3511,1,3,5,15,35,835,1835,1835,1835,70,71,'PSAAAA','BFFAAA','VVVVxx' +7275,3512,1,3,5,15,75,275,1275,2275,7275,150,151,'VTAAAA','CFFAAA','AAAAxx' +7337,3513,1,1,7,17,37,337,1337,2337,7337,74,75,'FWAAAA','DFFAAA','HHHHxx' +1282,3514,0,2,2,2,82,282,1282,1282,1282,164,165,'IXAAAA','EFFAAA','OOOOxx' +6566,3515,0,2,6,6,66,566,566,1566,6566,132,133,'OSAAAA','FFFAAA','VVVVxx' +3786,3516,0,2,6,6,86,786,1786,3786,3786,172,173,'QPAAAA','GFFAAA','AAAAxx' +5741,3517,1,1,1,1,41,741,1741,741,5741,82,83,'VMAAAA','HFFAAA','HHHHxx' +6076,3518,0,0,6,16,76,76,76,1076,6076,152,153,'SZAAAA','IFFAAA','OOOOxx' +9998,3519,0,2,8,18,98,998,1998,4998,9998,196,197,'OUAAAA','JFFAAA','VVVVxx' +6268,3520,0,0,8,8,68,268,268,1268,6268,136,137,'CHAAAA','KFFAAA','AAAAxx' +9647,3521,1,3,7,7,47,647,1647,4647,9647,94,95,'BHAAAA','LFFAAA','HHHHxx' +4877,3522,1,1,7,17,77,877,877,4877,4877,154,155,'PFAAAA','MFFAAA','OOOOxx' +2652,3523,0,0,2,12,52,652,652,2652,2652,104,105,'AYAAAA','NFFAAA','VVVVxx' +1247,3524,1,3,7,7,47,247,1247,1247,1247,94,95,'ZVAAAA','OFFAAA','AAAAxx' +2721,3525,1,1,1,1,21,721,721,2721,2721,42,43,'RAAAAA','PFFAAA','HHHHxx' +5968,3526,0,0,8,8,68,968,1968,968,5968,136,137,'OVAAAA','QFFAAA','OOOOxx' +9570,3527,0,2,0,10,70,570,1570,4570,9570,140,141,'CEAAAA','RFFAAA','VVVVxx' +6425,3528,1,1,5,5,25,425,425,1425,6425,50,51,'DNAAAA','SFFAAA','AAAAxx' +5451,3529,1,3,1,11,51,451,1451,451,5451,102,103,'RBAAAA','TFFAAA','HHHHxx' +5668,3530,0,0,8,8,68,668,1668,668,5668,136,137,'AKAAAA','UFFAAA','OOOOxx' +9493,3531,1,1,3,13,93,493,1493,4493,9493,186,187,'DBAAAA','VFFAAA','VVVVxx' +7973,3532,1,1,3,13,73,973,1973,2973,7973,146,147,'RUAAAA','WFFAAA','AAAAxx' +8250,3533,0,2,0,10,50,250,250,3250,8250,100,101,'IFAAAA','XFFAAA','HHHHxx' +82,3534,0,2,2,2,82,82,82,82,82,164,165,'EDAAAA','YFFAAA','OOOOxx' +6258,3535,0,2,8,18,58,258,258,1258,6258,116,117,'SGAAAA','ZFFAAA','VVVVxx' +9978,3536,0,2,8,18,78,978,1978,4978,9978,156,157,'UTAAAA','AGFAAA','AAAAxx' +6930,3537,0,2,0,10,30,930,930,1930,6930,60,61,'OGAAAA','BGFAAA','HHHHxx' +3746,3538,0,2,6,6,46,746,1746,3746,3746,92,93,'COAAAA','CGFAAA','OOOOxx' +7065,3539,1,1,5,5,65,65,1065,2065,7065,130,131,'TLAAAA','DGFAAA','VVVVxx' +4281,3540,1,1,1,1,81,281,281,4281,4281,162,163,'RIAAAA','EGFAAA','AAAAxx' +4367,3541,1,3,7,7,67,367,367,4367,4367,134,135,'ZLAAAA','FGFAAA','HHHHxx' +9526,3542,0,2,6,6,26,526,1526,4526,9526,52,53,'KCAAAA','GGFAAA','OOOOxx' +5880,3543,0,0,0,0,80,880,1880,880,5880,160,161,'ESAAAA','HGFAAA','VVVVxx' +8480,3544,0,0,0,0,80,480,480,3480,8480,160,161,'EOAAAA','IGFAAA','AAAAxx' +2476,3545,0,0,6,16,76,476,476,2476,2476,152,153,'GRAAAA','JGFAAA','HHHHxx' +9074,3546,0,2,4,14,74,74,1074,4074,9074,148,149,'ALAAAA','KGFAAA','OOOOxx' +4830,3547,0,2,0,10,30,830,830,4830,4830,60,61,'UDAAAA','LGFAAA','VVVVxx' +3207,3548,1,3,7,7,7,207,1207,3207,3207,14,15,'JTAAAA','MGFAAA','AAAAxx' +7894,3549,0,2,4,14,94,894,1894,2894,7894,188,189,'QRAAAA','NGFAAA','HHHHxx' +3860,3550,0,0,0,0,60,860,1860,3860,3860,120,121,'MSAAAA','OGFAAA','OOOOxx' +5293,3551,1,1,3,13,93,293,1293,293,5293,186,187,'PVAAAA','PGFAAA','VVVVxx' +6895,3552,1,3,5,15,95,895,895,1895,6895,190,191,'FFAAAA','QGFAAA','AAAAxx' +9908,3553,0,0,8,8,8,908,1908,4908,9908,16,17,'CRAAAA','RGFAAA','HHHHxx' +9247,3554,1,3,7,7,47,247,1247,4247,9247,94,95,'RRAAAA','SGFAAA','OOOOxx' +8110,3555,0,2,0,10,10,110,110,3110,8110,20,21,'YZAAAA','TGFAAA','VVVVxx' +4716,3556,0,0,6,16,16,716,716,4716,4716,32,33,'KZAAAA','UGFAAA','AAAAxx' +4979,3557,1,3,9,19,79,979,979,4979,4979,158,159,'NJAAAA','VGFAAA','HHHHxx' +5280,3558,0,0,0,0,80,280,1280,280,5280,160,161,'CVAAAA','WGFAAA','OOOOxx' +8326,3559,0,2,6,6,26,326,326,3326,8326,52,53,'GIAAAA','XGFAAA','VVVVxx' +5572,3560,0,0,2,12,72,572,1572,572,5572,144,145,'IGAAAA','YGFAAA','AAAAxx' +4665,3561,1,1,5,5,65,665,665,4665,4665,130,131,'LXAAAA','ZGFAAA','HHHHxx' +3665,3562,1,1,5,5,65,665,1665,3665,3665,130,131,'ZKAAAA','AHFAAA','OOOOxx' +6744,3563,0,0,4,4,44,744,744,1744,6744,88,89,'KZAAAA','BHFAAA','VVVVxx' +1897,3564,1,1,7,17,97,897,1897,1897,1897,194,195,'ZUAAAA','CHFAAA','AAAAxx' +1220,3565,0,0,0,0,20,220,1220,1220,1220,40,41,'YUAAAA','DHFAAA','HHHHxx' +2614,3566,0,2,4,14,14,614,614,2614,2614,28,29,'OWAAAA','EHFAAA','OOOOxx' +8509,3567,1,1,9,9,9,509,509,3509,8509,18,19,'HPAAAA','FHFAAA','VVVVxx' +8521,3568,1,1,1,1,21,521,521,3521,8521,42,43,'TPAAAA','GHFAAA','AAAAxx' +4121,3569,1,1,1,1,21,121,121,4121,4121,42,43,'NCAAAA','HHFAAA','HHHHxx' +9663,3570,1,3,3,3,63,663,1663,4663,9663,126,127,'RHAAAA','IHFAAA','OOOOxx' +2346,3571,0,2,6,6,46,346,346,2346,2346,92,93,'GMAAAA','JHFAAA','VVVVxx' +3370,3572,0,2,0,10,70,370,1370,3370,3370,140,141,'QZAAAA','KHFAAA','AAAAxx' +1498,3573,0,2,8,18,98,498,1498,1498,1498,196,197,'QFAAAA','LHFAAA','HHHHxx' +7422,3574,0,2,2,2,22,422,1422,2422,7422,44,45,'MZAAAA','MHFAAA','OOOOxx' +3472,3575,0,0,2,12,72,472,1472,3472,3472,144,145,'ODAAAA','NHFAAA','VVVVxx' +4126,3576,0,2,6,6,26,126,126,4126,4126,52,53,'SCAAAA','OHFAAA','AAAAxx' +4494,3577,0,2,4,14,94,494,494,4494,4494,188,189,'WQAAAA','PHFAAA','HHHHxx' +6323,3578,1,3,3,3,23,323,323,1323,6323,46,47,'FJAAAA','QHFAAA','OOOOxx' +2823,3579,1,3,3,3,23,823,823,2823,2823,46,47,'PEAAAA','RHFAAA','VVVVxx' +8596,3580,0,0,6,16,96,596,596,3596,8596,192,193,'QSAAAA','SHFAAA','AAAAxx' +6642,3581,0,2,2,2,42,642,642,1642,6642,84,85,'MVAAAA','THFAAA','HHHHxx' +9276,3582,0,0,6,16,76,276,1276,4276,9276,152,153,'USAAAA','UHFAAA','OOOOxx' +4148,3583,0,0,8,8,48,148,148,4148,4148,96,97,'ODAAAA','VHFAAA','VVVVxx' +9770,3584,0,2,0,10,70,770,1770,4770,9770,140,141,'ULAAAA','WHFAAA','AAAAxx' +9812,3585,0,0,2,12,12,812,1812,4812,9812,24,25,'KNAAAA','XHFAAA','HHHHxx' +4419,3586,1,3,9,19,19,419,419,4419,4419,38,39,'ZNAAAA','YHFAAA','OOOOxx' +3802,3587,0,2,2,2,2,802,1802,3802,3802,4,5,'GQAAAA','ZHFAAA','VVVVxx' +3210,3588,0,2,0,10,10,210,1210,3210,3210,20,21,'MTAAAA','AIFAAA','AAAAxx' +6794,3589,0,2,4,14,94,794,794,1794,6794,188,189,'IBAAAA','BIFAAA','HHHHxx' +242,3590,0,2,2,2,42,242,242,242,242,84,85,'IJAAAA','CIFAAA','OOOOxx' +962,3591,0,2,2,2,62,962,962,962,962,124,125,'ALAAAA','DIFAAA','VVVVxx' +7151,3592,1,3,1,11,51,151,1151,2151,7151,102,103,'BPAAAA','EIFAAA','AAAAxx' +9440,3593,0,0,0,0,40,440,1440,4440,9440,80,81,'CZAAAA','FIFAAA','HHHHxx' +721,3594,1,1,1,1,21,721,721,721,721,42,43,'TBAAAA','GIFAAA','OOOOxx' +2119,3595,1,3,9,19,19,119,119,2119,2119,38,39,'NDAAAA','HIFAAA','VVVVxx' +9883,3596,1,3,3,3,83,883,1883,4883,9883,166,167,'DQAAAA','IIFAAA','AAAAxx' +5071,3597,1,3,1,11,71,71,1071,71,5071,142,143,'BNAAAA','JIFAAA','HHHHxx' +8239,3598,1,3,9,19,39,239,239,3239,8239,78,79,'XEAAAA','KIFAAA','OOOOxx' +7451,3599,1,3,1,11,51,451,1451,2451,7451,102,103,'PAAAAA','LIFAAA','VVVVxx' +9517,3600,1,1,7,17,17,517,1517,4517,9517,34,35,'BCAAAA','MIFAAA','AAAAxx' +9180,3601,0,0,0,0,80,180,1180,4180,9180,160,161,'CPAAAA','NIFAAA','HHHHxx' +9327,3602,1,3,7,7,27,327,1327,4327,9327,54,55,'TUAAAA','OIFAAA','OOOOxx' +5462,3603,0,2,2,2,62,462,1462,462,5462,124,125,'CCAAAA','PIFAAA','VVVVxx' +8306,3604,0,2,6,6,6,306,306,3306,8306,12,13,'MHAAAA','QIFAAA','AAAAxx' +6234,3605,0,2,4,14,34,234,234,1234,6234,68,69,'UFAAAA','RIFAAA','HHHHxx' +8771,3606,1,3,1,11,71,771,771,3771,8771,142,143,'JZAAAA','SIFAAA','OOOOxx' +5853,3607,1,1,3,13,53,853,1853,853,5853,106,107,'DRAAAA','TIFAAA','VVVVxx' +8373,3608,1,1,3,13,73,373,373,3373,8373,146,147,'BKAAAA','UIFAAA','AAAAxx' +5017,3609,1,1,7,17,17,17,1017,17,5017,34,35,'ZKAAAA','VIFAAA','HHHHxx' +8025,3610,1,1,5,5,25,25,25,3025,8025,50,51,'RWAAAA','WIFAAA','OOOOxx' +2526,3611,0,2,6,6,26,526,526,2526,2526,52,53,'ETAAAA','XIFAAA','VVVVxx' +7419,3612,1,3,9,19,19,419,1419,2419,7419,38,39,'JZAAAA','YIFAAA','AAAAxx' +4572,3613,0,0,2,12,72,572,572,4572,4572,144,145,'WTAAAA','ZIFAAA','HHHHxx' +7744,3614,0,0,4,4,44,744,1744,2744,7744,88,89,'WLAAAA','AJFAAA','OOOOxx' +8825,3615,1,1,5,5,25,825,825,3825,8825,50,51,'LBAAAA','BJFAAA','VVVVxx' +6067,3616,1,3,7,7,67,67,67,1067,6067,134,135,'JZAAAA','CJFAAA','AAAAxx' +3291,3617,1,3,1,11,91,291,1291,3291,3291,182,183,'PWAAAA','DJFAAA','HHHHxx' +7115,3618,1,3,5,15,15,115,1115,2115,7115,30,31,'RNAAAA','EJFAAA','OOOOxx' +2626,3619,0,2,6,6,26,626,626,2626,2626,52,53,'AXAAAA','FJFAAA','VVVVxx' +4109,3620,1,1,9,9,9,109,109,4109,4109,18,19,'BCAAAA','GJFAAA','AAAAxx' +4056,3621,0,0,6,16,56,56,56,4056,4056,112,113,'AAAAAA','HJFAAA','HHHHxx' +6811,3622,1,3,1,11,11,811,811,1811,6811,22,23,'ZBAAAA','IJFAAA','OOOOxx' +680,3623,0,0,0,0,80,680,680,680,680,160,161,'EAAAAA','JJFAAA','VVVVxx' +474,3624,0,2,4,14,74,474,474,474,474,148,149,'GSAAAA','KJFAAA','AAAAxx' +9294,3625,0,2,4,14,94,294,1294,4294,9294,188,189,'MTAAAA','LJFAAA','HHHHxx' +7555,3626,1,3,5,15,55,555,1555,2555,7555,110,111,'PEAAAA','MJFAAA','OOOOxx' +8076,3627,0,0,6,16,76,76,76,3076,8076,152,153,'QYAAAA','NJFAAA','VVVVxx' +3840,3628,0,0,0,0,40,840,1840,3840,3840,80,81,'SRAAAA','OJFAAA','AAAAxx' +5955,3629,1,3,5,15,55,955,1955,955,5955,110,111,'BVAAAA','PJFAAA','HHHHxx' +994,3630,0,2,4,14,94,994,994,994,994,188,189,'GMAAAA','QJFAAA','OOOOxx' +2089,3631,1,1,9,9,89,89,89,2089,2089,178,179,'JCAAAA','RJFAAA','VVVVxx' +869,3632,1,1,9,9,69,869,869,869,869,138,139,'LHAAAA','SJFAAA','AAAAxx' +1223,3633,1,3,3,3,23,223,1223,1223,1223,46,47,'BVAAAA','TJFAAA','HHHHxx' +1514,3634,0,2,4,14,14,514,1514,1514,1514,28,29,'GGAAAA','UJFAAA','OOOOxx' +4891,3635,1,3,1,11,91,891,891,4891,4891,182,183,'DGAAAA','VJFAAA','VVVVxx' +4190,3636,0,2,0,10,90,190,190,4190,4190,180,181,'EFAAAA','WJFAAA','AAAAxx' +4377,3637,1,1,7,17,77,377,377,4377,4377,154,155,'JMAAAA','XJFAAA','HHHHxx' +9195,3638,1,3,5,15,95,195,1195,4195,9195,190,191,'RPAAAA','YJFAAA','OOOOxx' +3827,3639,1,3,7,7,27,827,1827,3827,3827,54,55,'FRAAAA','ZJFAAA','VVVVxx' +7386,3640,0,2,6,6,86,386,1386,2386,7386,172,173,'CYAAAA','AKFAAA','AAAAxx' +6665,3641,1,1,5,5,65,665,665,1665,6665,130,131,'JWAAAA','BKFAAA','HHHHxx' +7514,3642,0,2,4,14,14,514,1514,2514,7514,28,29,'ADAAAA','CKFAAA','OOOOxx' +6431,3643,1,3,1,11,31,431,431,1431,6431,62,63,'JNAAAA','DKFAAA','VVVVxx' +3251,3644,1,3,1,11,51,251,1251,3251,3251,102,103,'BVAAAA','EKFAAA','AAAAxx' +8439,3645,1,3,9,19,39,439,439,3439,8439,78,79,'PMAAAA','FKFAAA','HHHHxx' +831,3646,1,3,1,11,31,831,831,831,831,62,63,'ZFAAAA','GKFAAA','OOOOxx' +8485,3647,1,1,5,5,85,485,485,3485,8485,170,171,'JOAAAA','HKFAAA','VVVVxx' +7314,3648,0,2,4,14,14,314,1314,2314,7314,28,29,'IVAAAA','IKFAAA','AAAAxx' +3044,3649,0,0,4,4,44,44,1044,3044,3044,88,89,'CNAAAA','JKFAAA','HHHHxx' +4283,3650,1,3,3,3,83,283,283,4283,4283,166,167,'TIAAAA','KKFAAA','OOOOxx' +298,3651,0,2,8,18,98,298,298,298,298,196,197,'MLAAAA','LKFAAA','VVVVxx' +7114,3652,0,2,4,14,14,114,1114,2114,7114,28,29,'QNAAAA','MKFAAA','AAAAxx' +9664,3653,0,0,4,4,64,664,1664,4664,9664,128,129,'SHAAAA','NKFAAA','HHHHxx' +5315,3654,1,3,5,15,15,315,1315,315,5315,30,31,'LWAAAA','OKFAAA','OOOOxx' +2164,3655,0,0,4,4,64,164,164,2164,2164,128,129,'GFAAAA','PKFAAA','VVVVxx' +3390,3656,0,2,0,10,90,390,1390,3390,3390,180,181,'KAAAAA','QKFAAA','AAAAxx' +836,3657,0,0,6,16,36,836,836,836,836,72,73,'EGAAAA','RKFAAA','HHHHxx' +3316,3658,0,0,6,16,16,316,1316,3316,3316,32,33,'OXAAAA','SKFAAA','OOOOxx' +1284,3659,0,0,4,4,84,284,1284,1284,1284,168,169,'KXAAAA','TKFAAA','VVVVxx' +2497,3660,1,1,7,17,97,497,497,2497,2497,194,195,'BSAAAA','UKFAAA','AAAAxx' +1374,3661,0,2,4,14,74,374,1374,1374,1374,148,149,'WAAAAA','VKFAAA','HHHHxx' +9525,3662,1,1,5,5,25,525,1525,4525,9525,50,51,'JCAAAA','WKFAAA','OOOOxx' +2911,3663,1,3,1,11,11,911,911,2911,2911,22,23,'ZHAAAA','XKFAAA','VVVVxx' +9686,3664,0,2,6,6,86,686,1686,4686,9686,172,173,'OIAAAA','YKFAAA','AAAAxx' +584,3665,0,0,4,4,84,584,584,584,584,168,169,'MWAAAA','ZKFAAA','HHHHxx' +5653,3666,1,1,3,13,53,653,1653,653,5653,106,107,'LJAAAA','ALFAAA','OOOOxx' +4986,3667,0,2,6,6,86,986,986,4986,4986,172,173,'UJAAAA','BLFAAA','VVVVxx' +6049,3668,1,1,9,9,49,49,49,1049,6049,98,99,'RYAAAA','CLFAAA','AAAAxx' +9891,3669,1,3,1,11,91,891,1891,4891,9891,182,183,'LQAAAA','DLFAAA','HHHHxx' +8809,3670,1,1,9,9,9,809,809,3809,8809,18,19,'VAAAAA','ELFAAA','OOOOxx' +8598,3671,0,2,8,18,98,598,598,3598,8598,196,197,'SSAAAA','FLFAAA','VVVVxx' +2573,3672,1,1,3,13,73,573,573,2573,2573,146,147,'ZUAAAA','GLFAAA','AAAAxx' +6864,3673,0,0,4,4,64,864,864,1864,6864,128,129,'AEAAAA','HLFAAA','HHHHxx' +7932,3674,0,0,2,12,32,932,1932,2932,7932,64,65,'CTAAAA','ILFAAA','OOOOxx' +6605,3675,1,1,5,5,5,605,605,1605,6605,10,11,'BUAAAA','JLFAAA','VVVVxx' +9500,3676,0,0,0,0,0,500,1500,4500,9500,0,1,'KBAAAA','KLFAAA','AAAAxx' +8742,3677,0,2,2,2,42,742,742,3742,8742,84,85,'GYAAAA','LLFAAA','HHHHxx' +9815,3678,1,3,5,15,15,815,1815,4815,9815,30,31,'NNAAAA','MLFAAA','OOOOxx' +3319,3679,1,3,9,19,19,319,1319,3319,3319,38,39,'RXAAAA','NLFAAA','VVVVxx' +184,3680,0,0,4,4,84,184,184,184,184,168,169,'CHAAAA','OLFAAA','AAAAxx' +8886,3681,0,2,6,6,86,886,886,3886,8886,172,173,'UDAAAA','PLFAAA','HHHHxx' +7050,3682,0,2,0,10,50,50,1050,2050,7050,100,101,'ELAAAA','QLFAAA','OOOOxx' +9781,3683,1,1,1,1,81,781,1781,4781,9781,162,163,'FMAAAA','RLFAAA','VVVVxx' +2443,3684,1,3,3,3,43,443,443,2443,2443,86,87,'ZPAAAA','SLFAAA','AAAAxx' +1160,3685,0,0,0,0,60,160,1160,1160,1160,120,121,'QSAAAA','TLFAAA','HHHHxx' +4600,3686,0,0,0,0,0,600,600,4600,4600,0,1,'YUAAAA','ULFAAA','OOOOxx' +813,3687,1,1,3,13,13,813,813,813,813,26,27,'HFAAAA','VLFAAA','VVVVxx' +5078,3688,0,2,8,18,78,78,1078,78,5078,156,157,'INAAAA','WLFAAA','AAAAxx' +9008,3689,0,0,8,8,8,8,1008,4008,9008,16,17,'MIAAAA','XLFAAA','HHHHxx' +9016,3690,0,0,6,16,16,16,1016,4016,9016,32,33,'UIAAAA','YLFAAA','OOOOxx' +2747,3691,1,3,7,7,47,747,747,2747,2747,94,95,'RBAAAA','ZLFAAA','VVVVxx' +3106,3692,0,2,6,6,6,106,1106,3106,3106,12,13,'MPAAAA','AMFAAA','AAAAxx' +8235,3693,1,3,5,15,35,235,235,3235,8235,70,71,'TEAAAA','BMFAAA','HHHHxx' +5582,3694,0,2,2,2,82,582,1582,582,5582,164,165,'SGAAAA','CMFAAA','OOOOxx' +4334,3695,0,2,4,14,34,334,334,4334,4334,68,69,'SKAAAA','DMFAAA','VVVVxx' +1612,3696,0,0,2,12,12,612,1612,1612,1612,24,25,'AKAAAA','EMFAAA','AAAAxx' +5650,3697,0,2,0,10,50,650,1650,650,5650,100,101,'IJAAAA','FMFAAA','HHHHxx' +6086,3698,0,2,6,6,86,86,86,1086,6086,172,173,'CAAAAA','GMFAAA','OOOOxx' +9667,3699,1,3,7,7,67,667,1667,4667,9667,134,135,'VHAAAA','HMFAAA','VVVVxx' +4215,3700,1,3,5,15,15,215,215,4215,4215,30,31,'DGAAAA','IMFAAA','AAAAxx' +8553,3701,1,1,3,13,53,553,553,3553,8553,106,107,'ZQAAAA','JMFAAA','HHHHxx' +9066,3702,0,2,6,6,66,66,1066,4066,9066,132,133,'SKAAAA','KMFAAA','OOOOxx' +1092,3703,0,0,2,12,92,92,1092,1092,1092,184,185,'AQAAAA','LMFAAA','VVVVxx' +2848,3704,0,0,8,8,48,848,848,2848,2848,96,97,'OFAAAA','MMFAAA','AAAAxx' +2765,3705,1,1,5,5,65,765,765,2765,2765,130,131,'JCAAAA','NMFAAA','HHHHxx' +6513,3706,1,1,3,13,13,513,513,1513,6513,26,27,'NQAAAA','OMFAAA','OOOOxx' +6541,3707,1,1,1,1,41,541,541,1541,6541,82,83,'PRAAAA','PMFAAA','VVVVxx' +9617,3708,1,1,7,17,17,617,1617,4617,9617,34,35,'XFAAAA','QMFAAA','AAAAxx' +5870,3709,0,2,0,10,70,870,1870,870,5870,140,141,'URAAAA','RMFAAA','HHHHxx' +8811,3710,1,3,1,11,11,811,811,3811,8811,22,23,'XAAAAA','SMFAAA','OOOOxx' +4529,3711,1,1,9,9,29,529,529,4529,4529,58,59,'FSAAAA','TMFAAA','VVVVxx' +161,3712,1,1,1,1,61,161,161,161,161,122,123,'FGAAAA','UMFAAA','AAAAxx' +641,3713,1,1,1,1,41,641,641,641,641,82,83,'RYAAAA','VMFAAA','HHHHxx' +4767,3714,1,3,7,7,67,767,767,4767,4767,134,135,'JBAAAA','WMFAAA','OOOOxx' +6293,3715,1,1,3,13,93,293,293,1293,6293,186,187,'BIAAAA','XMFAAA','VVVVxx' +3816,3716,0,0,6,16,16,816,1816,3816,3816,32,33,'UQAAAA','YMFAAA','AAAAxx' +4748,3717,0,0,8,8,48,748,748,4748,4748,96,97,'QAAAAA','ZMFAAA','HHHHxx' +9924,3718,0,0,4,4,24,924,1924,4924,9924,48,49,'SRAAAA','ANFAAA','OOOOxx' +6716,3719,0,0,6,16,16,716,716,1716,6716,32,33,'IYAAAA','BNFAAA','VVVVxx' +8828,3720,0,0,8,8,28,828,828,3828,8828,56,57,'OBAAAA','CNFAAA','AAAAxx' +4967,3721,1,3,7,7,67,967,967,4967,4967,134,135,'BJAAAA','DNFAAA','HHHHxx' +9680,3722,0,0,0,0,80,680,1680,4680,9680,160,161,'IIAAAA','ENFAAA','OOOOxx' +2784,3723,0,0,4,4,84,784,784,2784,2784,168,169,'CDAAAA','FNFAAA','VVVVxx' +2882,3724,0,2,2,2,82,882,882,2882,2882,164,165,'WGAAAA','GNFAAA','AAAAxx' +3641,3725,1,1,1,1,41,641,1641,3641,3641,82,83,'BKAAAA','HNFAAA','HHHHxx' +5537,3726,1,1,7,17,37,537,1537,537,5537,74,75,'ZEAAAA','INFAAA','OOOOxx' +820,3727,0,0,0,0,20,820,820,820,820,40,41,'OFAAAA','JNFAAA','VVVVxx' +5847,3728,1,3,7,7,47,847,1847,847,5847,94,95,'XQAAAA','KNFAAA','AAAAxx' +566,3729,0,2,6,6,66,566,566,566,566,132,133,'UVAAAA','LNFAAA','HHHHxx' +2246,3730,0,2,6,6,46,246,246,2246,2246,92,93,'KIAAAA','MNFAAA','OOOOxx' +6680,3731,0,0,0,0,80,680,680,1680,6680,160,161,'YWAAAA','NNFAAA','VVVVxx' +2014,3732,0,2,4,14,14,14,14,2014,2014,28,29,'MZAAAA','ONFAAA','AAAAxx' +8355,3733,1,3,5,15,55,355,355,3355,8355,110,111,'JJAAAA','PNFAAA','HHHHxx' +1610,3734,0,2,0,10,10,610,1610,1610,1610,20,21,'YJAAAA','QNFAAA','OOOOxx' +9719,3735,1,3,9,19,19,719,1719,4719,9719,38,39,'VJAAAA','RNFAAA','VVVVxx' +8498,3736,0,2,8,18,98,498,498,3498,8498,196,197,'WOAAAA','SNFAAA','AAAAxx' +5883,3737,1,3,3,3,83,883,1883,883,5883,166,167,'HSAAAA','TNFAAA','HHHHxx' +7380,3738,0,0,0,0,80,380,1380,2380,7380,160,161,'WXAAAA','UNFAAA','OOOOxx' +8865,3739,1,1,5,5,65,865,865,3865,8865,130,131,'ZCAAAA','VNFAAA','VVVVxx' +4743,3740,1,3,3,3,43,743,743,4743,4743,86,87,'LAAAAA','WNFAAA','AAAAxx' +5086,3741,0,2,6,6,86,86,1086,86,5086,172,173,'QNAAAA','XNFAAA','HHHHxx' +2739,3742,1,3,9,19,39,739,739,2739,2739,78,79,'JBAAAA','YNFAAA','OOOOxx' +9375,3743,1,3,5,15,75,375,1375,4375,9375,150,151,'PWAAAA','ZNFAAA','VVVVxx' +7876,3744,0,0,6,16,76,876,1876,2876,7876,152,153,'YQAAAA','AOFAAA','AAAAxx' +453,3745,1,1,3,13,53,453,453,453,453,106,107,'LRAAAA','BOFAAA','HHHHxx' +6987,3746,1,3,7,7,87,987,987,1987,6987,174,175,'TIAAAA','COFAAA','OOOOxx' +2860,3747,0,0,0,0,60,860,860,2860,2860,120,121,'AGAAAA','DOFAAA','VVVVxx' +8372,3748,0,0,2,12,72,372,372,3372,8372,144,145,'AKAAAA','EOFAAA','AAAAxx' +2048,3749,0,0,8,8,48,48,48,2048,2048,96,97,'UAAAAA','FOFAAA','HHHHxx' +9231,3750,1,3,1,11,31,231,1231,4231,9231,62,63,'BRAAAA','GOFAAA','OOOOxx' +634,3751,0,2,4,14,34,634,634,634,634,68,69,'KYAAAA','HOFAAA','VVVVxx' +3998,3752,0,2,8,18,98,998,1998,3998,3998,196,197,'UXAAAA','IOFAAA','AAAAxx' +4728,3753,0,0,8,8,28,728,728,4728,4728,56,57,'WZAAAA','JOFAAA','HHHHxx' +579,3754,1,3,9,19,79,579,579,579,579,158,159,'HWAAAA','KOFAAA','OOOOxx' +815,3755,1,3,5,15,15,815,815,815,815,30,31,'JFAAAA','LOFAAA','VVVVxx' +1009,3756,1,1,9,9,9,9,1009,1009,1009,18,19,'VMAAAA','MOFAAA','AAAAxx' +6596,3757,0,0,6,16,96,596,596,1596,6596,192,193,'STAAAA','NOFAAA','HHHHxx' +2793,3758,1,1,3,13,93,793,793,2793,2793,186,187,'LDAAAA','OOFAAA','OOOOxx' +9589,3759,1,1,9,9,89,589,1589,4589,9589,178,179,'VEAAAA','POFAAA','VVVVxx' +2794,3760,0,2,4,14,94,794,794,2794,2794,188,189,'MDAAAA','QOFAAA','AAAAxx' +2551,3761,1,3,1,11,51,551,551,2551,2551,102,103,'DUAAAA','ROFAAA','HHHHxx' +1588,3762,0,0,8,8,88,588,1588,1588,1588,176,177,'CJAAAA','SOFAAA','OOOOxx' +4443,3763,1,3,3,3,43,443,443,4443,4443,86,87,'XOAAAA','TOFAAA','VVVVxx' +5009,3764,1,1,9,9,9,9,1009,9,5009,18,19,'RKAAAA','UOFAAA','AAAAxx' +4287,3765,1,3,7,7,87,287,287,4287,4287,174,175,'XIAAAA','VOFAAA','HHHHxx' +2167,3766,1,3,7,7,67,167,167,2167,2167,134,135,'JFAAAA','WOFAAA','OOOOxx' +2290,3767,0,2,0,10,90,290,290,2290,2290,180,181,'CKAAAA','XOFAAA','VVVVxx' +7225,3768,1,1,5,5,25,225,1225,2225,7225,50,51,'XRAAAA','YOFAAA','AAAAxx' +8992,3769,0,0,2,12,92,992,992,3992,8992,184,185,'WHAAAA','ZOFAAA','HHHHxx' +1540,3770,0,0,0,0,40,540,1540,1540,1540,80,81,'GHAAAA','APFAAA','OOOOxx' +2029,3771,1,1,9,9,29,29,29,2029,2029,58,59,'BAAAAA','BPFAAA','VVVVxx' +2855,3772,1,3,5,15,55,855,855,2855,2855,110,111,'VFAAAA','CPFAAA','AAAAxx' +3534,3773,0,2,4,14,34,534,1534,3534,3534,68,69,'YFAAAA','DPFAAA','HHHHxx' +8078,3774,0,2,8,18,78,78,78,3078,8078,156,157,'SYAAAA','EPFAAA','OOOOxx' +9778,3775,0,2,8,18,78,778,1778,4778,9778,156,157,'CMAAAA','FPFAAA','VVVVxx' +3543,3776,1,3,3,3,43,543,1543,3543,3543,86,87,'HGAAAA','GPFAAA','AAAAxx' +4778,3777,0,2,8,18,78,778,778,4778,4778,156,157,'UBAAAA','HPFAAA','HHHHxx' +8931,3778,1,3,1,11,31,931,931,3931,8931,62,63,'NFAAAA','IPFAAA','OOOOxx' +557,3779,1,1,7,17,57,557,557,557,557,114,115,'LVAAAA','JPFAAA','VVVVxx' +5546,3780,0,2,6,6,46,546,1546,546,5546,92,93,'IFAAAA','KPFAAA','AAAAxx' +7527,3781,1,3,7,7,27,527,1527,2527,7527,54,55,'NDAAAA','LPFAAA','HHHHxx' +5000,3782,0,0,0,0,0,0,1000,0,5000,0,1,'IKAAAA','MPFAAA','OOOOxx' +7587,3783,1,3,7,7,87,587,1587,2587,7587,174,175,'VFAAAA','NPFAAA','VVVVxx' +3014,3784,0,2,4,14,14,14,1014,3014,3014,28,29,'YLAAAA','OPFAAA','AAAAxx' +5276,3785,0,0,6,16,76,276,1276,276,5276,152,153,'YUAAAA','PPFAAA','HHHHxx' +6457,3786,1,1,7,17,57,457,457,1457,6457,114,115,'JOAAAA','QPFAAA','OOOOxx' +389,3787,1,1,9,9,89,389,389,389,389,178,179,'ZOAAAA','RPFAAA','VVVVxx' +7104,3788,0,0,4,4,4,104,1104,2104,7104,8,9,'GNAAAA','SPFAAA','AAAAxx' +9995,3789,1,3,5,15,95,995,1995,4995,9995,190,191,'LUAAAA','TPFAAA','HHHHxx' +7368,3790,0,0,8,8,68,368,1368,2368,7368,136,137,'KXAAAA','UPFAAA','OOOOxx' +3258,3791,0,2,8,18,58,258,1258,3258,3258,116,117,'IVAAAA','VPFAAA','VVVVxx' +9208,3792,0,0,8,8,8,208,1208,4208,9208,16,17,'EQAAAA','WPFAAA','AAAAxx' +2396,3793,0,0,6,16,96,396,396,2396,2396,192,193,'EOAAAA','XPFAAA','HHHHxx' +1715,3794,1,3,5,15,15,715,1715,1715,1715,30,31,'ZNAAAA','YPFAAA','OOOOxx' +1240,3795,0,0,0,0,40,240,1240,1240,1240,80,81,'SVAAAA','ZPFAAA','VVVVxx' +1952,3796,0,0,2,12,52,952,1952,1952,1952,104,105,'CXAAAA','AQFAAA','AAAAxx' +4403,3797,1,3,3,3,3,403,403,4403,4403,6,7,'JNAAAA','BQFAAA','HHHHxx' +6333,3798,1,1,3,13,33,333,333,1333,6333,66,67,'PJAAAA','CQFAAA','OOOOxx' +2492,3799,0,0,2,12,92,492,492,2492,2492,184,185,'WRAAAA','DQFAAA','VVVVxx' +6543,3800,1,3,3,3,43,543,543,1543,6543,86,87,'RRAAAA','EQFAAA','AAAAxx' +5548,3801,0,0,8,8,48,548,1548,548,5548,96,97,'KFAAAA','FQFAAA','HHHHxx' +3458,3802,0,2,8,18,58,458,1458,3458,3458,116,117,'ADAAAA','GQFAAA','OOOOxx' +2588,3803,0,0,8,8,88,588,588,2588,2588,176,177,'OVAAAA','HQFAAA','VVVVxx' +1364,3804,0,0,4,4,64,364,1364,1364,1364,128,129,'MAAAAA','IQFAAA','AAAAxx' +9856,3805,0,0,6,16,56,856,1856,4856,9856,112,113,'CPAAAA','JQFAAA','HHHHxx' +4964,3806,0,0,4,4,64,964,964,4964,4964,128,129,'YIAAAA','KQFAAA','OOOOxx' +773,3807,1,1,3,13,73,773,773,773,773,146,147,'TDAAAA','LQFAAA','VVVVxx' +6402,3808,0,2,2,2,2,402,402,1402,6402,4,5,'GMAAAA','MQFAAA','AAAAxx' +7213,3809,1,1,3,13,13,213,1213,2213,7213,26,27,'LRAAAA','NQFAAA','HHHHxx' +3385,3810,1,1,5,5,85,385,1385,3385,3385,170,171,'FAAAAA','OQFAAA','OOOOxx' +6005,3811,1,1,5,5,5,5,5,1005,6005,10,11,'ZWAAAA','PQFAAA','VVVVxx' +9346,3812,0,2,6,6,46,346,1346,4346,9346,92,93,'MVAAAA','QQFAAA','AAAAxx' +1831,3813,1,3,1,11,31,831,1831,1831,1831,62,63,'LSAAAA','RQFAAA','HHHHxx' +5406,3814,0,2,6,6,6,406,1406,406,5406,12,13,'YZAAAA','SQFAAA','OOOOxx' +2154,3815,0,2,4,14,54,154,154,2154,2154,108,109,'WEAAAA','TQFAAA','VVVVxx' +3721,3816,1,1,1,1,21,721,1721,3721,3721,42,43,'DNAAAA','UQFAAA','AAAAxx' +2889,3817,1,1,9,9,89,889,889,2889,2889,178,179,'DHAAAA','VQFAAA','HHHHxx' +4410,3818,0,2,0,10,10,410,410,4410,4410,20,21,'QNAAAA','WQFAAA','OOOOxx' +7102,3819,0,2,2,2,2,102,1102,2102,7102,4,5,'ENAAAA','XQFAAA','VVVVxx' +4057,3820,1,1,7,17,57,57,57,4057,4057,114,115,'BAAAAA','YQFAAA','AAAAxx' +9780,3821,0,0,0,0,80,780,1780,4780,9780,160,161,'EMAAAA','ZQFAAA','HHHHxx' +9481,3822,1,1,1,1,81,481,1481,4481,9481,162,163,'RAAAAA','ARFAAA','OOOOxx' +2366,3823,0,2,6,6,66,366,366,2366,2366,132,133,'ANAAAA','BRFAAA','VVVVxx' +2708,3824,0,0,8,8,8,708,708,2708,2708,16,17,'EAAAAA','CRFAAA','AAAAxx' +7399,3825,1,3,9,19,99,399,1399,2399,7399,198,199,'PYAAAA','DRFAAA','HHHHxx' +5234,3826,0,2,4,14,34,234,1234,234,5234,68,69,'ITAAAA','ERFAAA','OOOOxx' +1843,3827,1,3,3,3,43,843,1843,1843,1843,86,87,'XSAAAA','FRFAAA','VVVVxx' +1006,3828,0,2,6,6,6,6,1006,1006,1006,12,13,'SMAAAA','GRFAAA','AAAAxx' +7696,3829,0,0,6,16,96,696,1696,2696,7696,192,193,'AKAAAA','HRFAAA','HHHHxx' +6411,3830,1,3,1,11,11,411,411,1411,6411,22,23,'PMAAAA','IRFAAA','OOOOxx' +3913,3831,1,1,3,13,13,913,1913,3913,3913,26,27,'NUAAAA','JRFAAA','VVVVxx' +2538,3832,0,2,8,18,38,538,538,2538,2538,76,77,'QTAAAA','KRFAAA','AAAAxx' +3019,3833,1,3,9,19,19,19,1019,3019,3019,38,39,'DMAAAA','LRFAAA','HHHHxx' +107,3834,1,3,7,7,7,107,107,107,107,14,15,'DEAAAA','MRFAAA','OOOOxx' +427,3835,1,3,7,7,27,427,427,427,427,54,55,'LQAAAA','NRFAAA','VVVVxx' +9849,3836,1,1,9,9,49,849,1849,4849,9849,98,99,'VOAAAA','ORFAAA','AAAAxx' +4195,3837,1,3,5,15,95,195,195,4195,4195,190,191,'JFAAAA','PRFAAA','HHHHxx' +9215,3838,1,3,5,15,15,215,1215,4215,9215,30,31,'LQAAAA','QRFAAA','OOOOxx' +3165,3839,1,1,5,5,65,165,1165,3165,3165,130,131,'TRAAAA','RRFAAA','VVVVxx' +3280,3840,0,0,0,0,80,280,1280,3280,3280,160,161,'EWAAAA','SRFAAA','AAAAxx' +4477,3841,1,1,7,17,77,477,477,4477,4477,154,155,'FQAAAA','TRFAAA','HHHHxx' +5885,3842,1,1,5,5,85,885,1885,885,5885,170,171,'JSAAAA','URFAAA','OOOOxx' +3311,3843,1,3,1,11,11,311,1311,3311,3311,22,23,'JXAAAA','VRFAAA','VVVVxx' +6453,3844,1,1,3,13,53,453,453,1453,6453,106,107,'FOAAAA','WRFAAA','AAAAxx' +8527,3845,1,3,7,7,27,527,527,3527,8527,54,55,'ZPAAAA','XRFAAA','HHHHxx' +1921,3846,1,1,1,1,21,921,1921,1921,1921,42,43,'XVAAAA','YRFAAA','OOOOxx' +2427,3847,1,3,7,7,27,427,427,2427,2427,54,55,'JPAAAA','ZRFAAA','VVVVxx' +3691,3848,1,3,1,11,91,691,1691,3691,3691,182,183,'ZLAAAA','ASFAAA','AAAAxx' +3882,3849,0,2,2,2,82,882,1882,3882,3882,164,165,'ITAAAA','BSFAAA','HHHHxx' +562,3850,0,2,2,2,62,562,562,562,562,124,125,'QVAAAA','CSFAAA','OOOOxx' +377,3851,1,1,7,17,77,377,377,377,377,154,155,'NOAAAA','DSFAAA','VVVVxx' +1497,3852,1,1,7,17,97,497,1497,1497,1497,194,195,'PFAAAA','ESFAAA','AAAAxx' +4453,3853,1,1,3,13,53,453,453,4453,4453,106,107,'HPAAAA','FSFAAA','HHHHxx' +4678,3854,0,2,8,18,78,678,678,4678,4678,156,157,'YXAAAA','GSFAAA','OOOOxx' +2234,3855,0,2,4,14,34,234,234,2234,2234,68,69,'YHAAAA','HSFAAA','VVVVxx' +1073,3856,1,1,3,13,73,73,1073,1073,1073,146,147,'HPAAAA','ISFAAA','AAAAxx' +6479,3857,1,3,9,19,79,479,479,1479,6479,158,159,'FPAAAA','JSFAAA','HHHHxx' +5665,3858,1,1,5,5,65,665,1665,665,5665,130,131,'XJAAAA','KSFAAA','OOOOxx' +586,3859,0,2,6,6,86,586,586,586,586,172,173,'OWAAAA','LSFAAA','VVVVxx' +1584,3860,0,0,4,4,84,584,1584,1584,1584,168,169,'YIAAAA','MSFAAA','AAAAxx' +2574,3861,0,2,4,14,74,574,574,2574,2574,148,149,'AVAAAA','NSFAAA','HHHHxx' +9833,3862,1,1,3,13,33,833,1833,4833,9833,66,67,'FOAAAA','OSFAAA','OOOOxx' +6726,3863,0,2,6,6,26,726,726,1726,6726,52,53,'SYAAAA','PSFAAA','VVVVxx' +8497,3864,1,1,7,17,97,497,497,3497,8497,194,195,'VOAAAA','QSFAAA','AAAAxx' +2914,3865,0,2,4,14,14,914,914,2914,2914,28,29,'CIAAAA','RSFAAA','HHHHxx' +8586,3866,0,2,6,6,86,586,586,3586,8586,172,173,'GSAAAA','SSFAAA','OOOOxx' +6973,3867,1,1,3,13,73,973,973,1973,6973,146,147,'FIAAAA','TSFAAA','VVVVxx' +1322,3868,0,2,2,2,22,322,1322,1322,1322,44,45,'WYAAAA','USFAAA','AAAAxx' +5242,3869,0,2,2,2,42,242,1242,242,5242,84,85,'QTAAAA','VSFAAA','HHHHxx' +5581,3870,1,1,1,1,81,581,1581,581,5581,162,163,'RGAAAA','WSFAAA','OOOOxx' +1365,3871,1,1,5,5,65,365,1365,1365,1365,130,131,'NAAAAA','XSFAAA','VVVVxx' +2818,3872,0,2,8,18,18,818,818,2818,2818,36,37,'KEAAAA','YSFAAA','AAAAxx' +3758,3873,0,2,8,18,58,758,1758,3758,3758,116,117,'OOAAAA','ZSFAAA','HHHHxx' +2665,3874,1,1,5,5,65,665,665,2665,2665,130,131,'NYAAAA','ATFAAA','OOOOxx' +9823,3875,1,3,3,3,23,823,1823,4823,9823,46,47,'VNAAAA','BTFAAA','VVVVxx' +7057,3876,1,1,7,17,57,57,1057,2057,7057,114,115,'LLAAAA','CTFAAA','AAAAxx' +543,3877,1,3,3,3,43,543,543,543,543,86,87,'XUAAAA','DTFAAA','HHHHxx' +4008,3878,0,0,8,8,8,8,8,4008,4008,16,17,'EYAAAA','ETFAAA','OOOOxx' +4397,3879,1,1,7,17,97,397,397,4397,4397,194,195,'DNAAAA','FTFAAA','VVVVxx' +8533,3880,1,1,3,13,33,533,533,3533,8533,66,67,'FQAAAA','GTFAAA','AAAAxx' +9728,3881,0,0,8,8,28,728,1728,4728,9728,56,57,'EKAAAA','HTFAAA','HHHHxx' +5198,3882,0,2,8,18,98,198,1198,198,5198,196,197,'YRAAAA','ITFAAA','OOOOxx' +5036,3883,0,0,6,16,36,36,1036,36,5036,72,73,'SLAAAA','JTFAAA','VVVVxx' +4394,3884,0,2,4,14,94,394,394,4394,4394,188,189,'ANAAAA','KTFAAA','AAAAxx' +9633,3885,1,1,3,13,33,633,1633,4633,9633,66,67,'NGAAAA','LTFAAA','HHHHxx' +3339,3886,1,3,9,19,39,339,1339,3339,3339,78,79,'LYAAAA','MTFAAA','OOOOxx' +9529,3887,1,1,9,9,29,529,1529,4529,9529,58,59,'NCAAAA','NTFAAA','VVVVxx' +4780,3888,0,0,0,0,80,780,780,4780,4780,160,161,'WBAAAA','OTFAAA','AAAAxx' +4862,3889,0,2,2,2,62,862,862,4862,4862,124,125,'AFAAAA','PTFAAA','HHHHxx' +8152,3890,0,0,2,12,52,152,152,3152,8152,104,105,'OBAAAA','QTFAAA','OOOOxx' +9330,3891,0,2,0,10,30,330,1330,4330,9330,60,61,'WUAAAA','RTFAAA','VVVVxx' +4362,3892,0,2,2,2,62,362,362,4362,4362,124,125,'ULAAAA','STFAAA','AAAAxx' +4688,3893,0,0,8,8,88,688,688,4688,4688,176,177,'IYAAAA','TTFAAA','HHHHxx' +1903,3894,1,3,3,3,3,903,1903,1903,1903,6,7,'FVAAAA','UTFAAA','OOOOxx' +9027,3895,1,3,7,7,27,27,1027,4027,9027,54,55,'FJAAAA','VTFAAA','VVVVxx' +5385,3896,1,1,5,5,85,385,1385,385,5385,170,171,'DZAAAA','WTFAAA','AAAAxx' +9854,3897,0,2,4,14,54,854,1854,4854,9854,108,109,'APAAAA','XTFAAA','HHHHxx' +9033,3898,1,1,3,13,33,33,1033,4033,9033,66,67,'LJAAAA','YTFAAA','OOOOxx' +3185,3899,1,1,5,5,85,185,1185,3185,3185,170,171,'NSAAAA','ZTFAAA','VVVVxx' +2618,3900,0,2,8,18,18,618,618,2618,2618,36,37,'SWAAAA','AUFAAA','AAAAxx' +371,3901,1,3,1,11,71,371,371,371,371,142,143,'HOAAAA','BUFAAA','HHHHxx' +3697,3902,1,1,7,17,97,697,1697,3697,3697,194,195,'FMAAAA','CUFAAA','OOOOxx' +1682,3903,0,2,2,2,82,682,1682,1682,1682,164,165,'SMAAAA','DUFAAA','VVVVxx' +3333,3904,1,1,3,13,33,333,1333,3333,3333,66,67,'FYAAAA','EUFAAA','AAAAxx' +1722,3905,0,2,2,2,22,722,1722,1722,1722,44,45,'GOAAAA','FUFAAA','HHHHxx' +2009,3906,1,1,9,9,9,9,9,2009,2009,18,19,'HZAAAA','GUFAAA','OOOOxx' +3517,3907,1,1,7,17,17,517,1517,3517,3517,34,35,'HFAAAA','HUFAAA','VVVVxx' +7640,3908,0,0,0,0,40,640,1640,2640,7640,80,81,'WHAAAA','IUFAAA','AAAAxx' +259,3909,1,3,9,19,59,259,259,259,259,118,119,'ZJAAAA','JUFAAA','HHHHxx' +1400,3910,0,0,0,0,0,400,1400,1400,1400,0,1,'WBAAAA','KUFAAA','OOOOxx' +6663,3911,1,3,3,3,63,663,663,1663,6663,126,127,'HWAAAA','LUFAAA','VVVVxx' +1576,3912,0,0,6,16,76,576,1576,1576,1576,152,153,'QIAAAA','MUFAAA','AAAAxx' +8843,3913,1,3,3,3,43,843,843,3843,8843,86,87,'DCAAAA','NUFAAA','HHHHxx' +9474,3914,0,2,4,14,74,474,1474,4474,9474,148,149,'KAAAAA','OUFAAA','OOOOxx' +1597,3915,1,1,7,17,97,597,1597,1597,1597,194,195,'LJAAAA','PUFAAA','VVVVxx' +1143,3916,1,3,3,3,43,143,1143,1143,1143,86,87,'ZRAAAA','QUFAAA','AAAAxx' +4162,3917,0,2,2,2,62,162,162,4162,4162,124,125,'CEAAAA','RUFAAA','HHHHxx' +1301,3918,1,1,1,1,1,301,1301,1301,1301,2,3,'BYAAAA','SUFAAA','OOOOxx' +2935,3919,1,3,5,15,35,935,935,2935,2935,70,71,'XIAAAA','TUFAAA','VVVVxx' +886,3920,0,2,6,6,86,886,886,886,886,172,173,'CIAAAA','UUFAAA','AAAAxx' +1661,3921,1,1,1,1,61,661,1661,1661,1661,122,123,'XLAAAA','VUFAAA','HHHHxx' +1026,3922,0,2,6,6,26,26,1026,1026,1026,52,53,'MNAAAA','WUFAAA','OOOOxx' +7034,3923,0,2,4,14,34,34,1034,2034,7034,68,69,'OKAAAA','XUFAAA','VVVVxx' +2305,3924,1,1,5,5,5,305,305,2305,2305,10,11,'RKAAAA','YUFAAA','AAAAxx' +1725,3925,1,1,5,5,25,725,1725,1725,1725,50,51,'JOAAAA','ZUFAAA','HHHHxx' +909,3926,1,1,9,9,9,909,909,909,909,18,19,'ZIAAAA','AVFAAA','OOOOxx' +9906,3927,0,2,6,6,6,906,1906,4906,9906,12,13,'ARAAAA','BVFAAA','VVVVxx' +3309,3928,1,1,9,9,9,309,1309,3309,3309,18,19,'HXAAAA','CVFAAA','AAAAxx' +515,3929,1,3,5,15,15,515,515,515,515,30,31,'VTAAAA','DVFAAA','HHHHxx' +932,3930,0,0,2,12,32,932,932,932,932,64,65,'WJAAAA','EVFAAA','OOOOxx' +8144,3931,0,0,4,4,44,144,144,3144,8144,88,89,'GBAAAA','FVFAAA','VVVVxx' +5592,3932,0,0,2,12,92,592,1592,592,5592,184,185,'CHAAAA','GVFAAA','AAAAxx' +4003,3933,1,3,3,3,3,3,3,4003,4003,6,7,'ZXAAAA','HVFAAA','HHHHxx' +9566,3934,0,2,6,6,66,566,1566,4566,9566,132,133,'YDAAAA','IVFAAA','OOOOxx' +4556,3935,0,0,6,16,56,556,556,4556,4556,112,113,'GTAAAA','JVFAAA','VVVVxx' +268,3936,0,0,8,8,68,268,268,268,268,136,137,'IKAAAA','KVFAAA','AAAAxx' +8107,3937,1,3,7,7,7,107,107,3107,8107,14,15,'VZAAAA','LVFAAA','HHHHxx' +5816,3938,0,0,6,16,16,816,1816,816,5816,32,33,'SPAAAA','MVFAAA','OOOOxx' +8597,3939,1,1,7,17,97,597,597,3597,8597,194,195,'RSAAAA','NVFAAA','VVVVxx' +9611,3940,1,3,1,11,11,611,1611,4611,9611,22,23,'RFAAAA','OVFAAA','AAAAxx' +8070,3941,0,2,0,10,70,70,70,3070,8070,140,141,'KYAAAA','PVFAAA','HHHHxx' +6040,3942,0,0,0,0,40,40,40,1040,6040,80,81,'IYAAAA','QVFAAA','OOOOxx' +3184,3943,0,0,4,4,84,184,1184,3184,3184,168,169,'MSAAAA','RVFAAA','VVVVxx' +9656,3944,0,0,6,16,56,656,1656,4656,9656,112,113,'KHAAAA','SVFAAA','AAAAxx' +1577,3945,1,1,7,17,77,577,1577,1577,1577,154,155,'RIAAAA','TVFAAA','HHHHxx' +1805,3946,1,1,5,5,5,805,1805,1805,1805,10,11,'LRAAAA','UVFAAA','OOOOxx' +8268,3947,0,0,8,8,68,268,268,3268,8268,136,137,'AGAAAA','VVFAAA','VVVVxx' +3489,3948,1,1,9,9,89,489,1489,3489,3489,178,179,'FEAAAA','WVFAAA','AAAAxx' +4564,3949,0,0,4,4,64,564,564,4564,4564,128,129,'OTAAAA','XVFAAA','HHHHxx' +4006,3950,0,2,6,6,6,6,6,4006,4006,12,13,'CYAAAA','YVFAAA','OOOOxx' +8466,3951,0,2,6,6,66,466,466,3466,8466,132,133,'QNAAAA','ZVFAAA','VVVVxx' +938,3952,0,2,8,18,38,938,938,938,938,76,77,'CKAAAA','AWFAAA','AAAAxx' +5944,3953,0,0,4,4,44,944,1944,944,5944,88,89,'QUAAAA','BWFAAA','HHHHxx' +8363,3954,1,3,3,3,63,363,363,3363,8363,126,127,'RJAAAA','CWFAAA','OOOOxx' +5348,3955,0,0,8,8,48,348,1348,348,5348,96,97,'SXAAAA','DWFAAA','VVVVxx' +71,3956,1,3,1,11,71,71,71,71,71,142,143,'TCAAAA','EWFAAA','AAAAxx' +3620,3957,0,0,0,0,20,620,1620,3620,3620,40,41,'GJAAAA','FWFAAA','HHHHxx' +3230,3958,0,2,0,10,30,230,1230,3230,3230,60,61,'GUAAAA','GWFAAA','OOOOxx' +6132,3959,0,0,2,12,32,132,132,1132,6132,64,65,'WBAAAA','HWFAAA','VVVVxx' +6143,3960,1,3,3,3,43,143,143,1143,6143,86,87,'HCAAAA','IWFAAA','AAAAxx' +8781,3961,1,1,1,1,81,781,781,3781,8781,162,163,'TZAAAA','JWFAAA','HHHHxx' +5522,3962,0,2,2,2,22,522,1522,522,5522,44,45,'KEAAAA','KWFAAA','OOOOxx' +6320,3963,0,0,0,0,20,320,320,1320,6320,40,41,'CJAAAA','LWFAAA','VVVVxx' +3923,3964,1,3,3,3,23,923,1923,3923,3923,46,47,'XUAAAA','MWFAAA','AAAAxx' +2207,3965,1,3,7,7,7,207,207,2207,2207,14,15,'XGAAAA','NWFAAA','HHHHxx' +966,3966,0,2,6,6,66,966,966,966,966,132,133,'ELAAAA','OWFAAA','OOOOxx' +9020,3967,0,0,0,0,20,20,1020,4020,9020,40,41,'YIAAAA','PWFAAA','VVVVxx' +4616,3968,0,0,6,16,16,616,616,4616,4616,32,33,'OVAAAA','QWFAAA','AAAAxx' +8289,3969,1,1,9,9,89,289,289,3289,8289,178,179,'VGAAAA','RWFAAA','HHHHxx' +5796,3970,0,0,6,16,96,796,1796,796,5796,192,193,'YOAAAA','SWFAAA','OOOOxx' +9259,3971,1,3,9,19,59,259,1259,4259,9259,118,119,'DSAAAA','TWFAAA','VVVVxx' +3710,3972,0,2,0,10,10,710,1710,3710,3710,20,21,'SMAAAA','UWFAAA','AAAAxx' +251,3973,1,3,1,11,51,251,251,251,251,102,103,'RJAAAA','VWFAAA','HHHHxx' +7669,3974,1,1,9,9,69,669,1669,2669,7669,138,139,'ZIAAAA','WWFAAA','OOOOxx' +6304,3975,0,0,4,4,4,304,304,1304,6304,8,9,'MIAAAA','XWFAAA','VVVVxx' +6454,3976,0,2,4,14,54,454,454,1454,6454,108,109,'GOAAAA','YWFAAA','AAAAxx' +1489,3977,1,1,9,9,89,489,1489,1489,1489,178,179,'HFAAAA','ZWFAAA','HHHHxx' +715,3978,1,3,5,15,15,715,715,715,715,30,31,'NBAAAA','AXFAAA','OOOOxx' +4319,3979,1,3,9,19,19,319,319,4319,4319,38,39,'DKAAAA','BXFAAA','VVVVxx' +7112,3980,0,0,2,12,12,112,1112,2112,7112,24,25,'ONAAAA','CXFAAA','AAAAxx' +3726,3981,0,2,6,6,26,726,1726,3726,3726,52,53,'INAAAA','DXFAAA','HHHHxx' +7727,3982,1,3,7,7,27,727,1727,2727,7727,54,55,'FLAAAA','EXFAAA','OOOOxx' +8387,3983,1,3,7,7,87,387,387,3387,8387,174,175,'PKAAAA','FXFAAA','VVVVxx' +6555,3984,1,3,5,15,55,555,555,1555,6555,110,111,'DSAAAA','GXFAAA','AAAAxx' +1148,3985,0,0,8,8,48,148,1148,1148,1148,96,97,'ESAAAA','HXFAAA','HHHHxx' +9000,3986,0,0,0,0,0,0,1000,4000,9000,0,1,'EIAAAA','IXFAAA','OOOOxx' +5278,3987,0,2,8,18,78,278,1278,278,5278,156,157,'AVAAAA','JXFAAA','VVVVxx' +2388,3988,0,0,8,8,88,388,388,2388,2388,176,177,'WNAAAA','KXFAAA','AAAAxx' +7984,3989,0,0,4,4,84,984,1984,2984,7984,168,169,'CVAAAA','LXFAAA','HHHHxx' +881,3990,1,1,1,1,81,881,881,881,881,162,163,'XHAAAA','MXFAAA','OOOOxx' +6830,3991,0,2,0,10,30,830,830,1830,6830,60,61,'SCAAAA','NXFAAA','VVVVxx' +7056,3992,0,0,6,16,56,56,1056,2056,7056,112,113,'KLAAAA','OXFAAA','AAAAxx' +7581,3993,1,1,1,1,81,581,1581,2581,7581,162,163,'PFAAAA','PXFAAA','HHHHxx' +5214,3994,0,2,4,14,14,214,1214,214,5214,28,29,'OSAAAA','QXFAAA','OOOOxx' +2505,3995,1,1,5,5,5,505,505,2505,2505,10,11,'JSAAAA','RXFAAA','VVVVxx' +5112,3996,0,0,2,12,12,112,1112,112,5112,24,25,'QOAAAA','SXFAAA','AAAAxx' +9884,3997,0,0,4,4,84,884,1884,4884,9884,168,169,'EQAAAA','TXFAAA','HHHHxx' +8040,3998,0,0,0,0,40,40,40,3040,8040,80,81,'GXAAAA','UXFAAA','OOOOxx' +7033,3999,1,1,3,13,33,33,1033,2033,7033,66,67,'NKAAAA','VXFAAA','VVVVxx' +9343,4000,1,3,3,3,43,343,1343,4343,9343,86,87,'JVAAAA','WXFAAA','AAAAxx' +2931,4001,1,3,1,11,31,931,931,2931,2931,62,63,'TIAAAA','XXFAAA','HHHHxx' +9024,4002,0,0,4,4,24,24,1024,4024,9024,48,49,'CJAAAA','YXFAAA','OOOOxx' +6485,4003,1,1,5,5,85,485,485,1485,6485,170,171,'LPAAAA','ZXFAAA','VVVVxx' +3465,4004,1,1,5,5,65,465,1465,3465,3465,130,131,'HDAAAA','AYFAAA','AAAAxx' +3357,4005,1,1,7,17,57,357,1357,3357,3357,114,115,'DZAAAA','BYFAAA','HHHHxx' +2929,4006,1,1,9,9,29,929,929,2929,2929,58,59,'RIAAAA','CYFAAA','OOOOxx' +3086,4007,0,2,6,6,86,86,1086,3086,3086,172,173,'SOAAAA','DYFAAA','VVVVxx' +8897,4008,1,1,7,17,97,897,897,3897,8897,194,195,'FEAAAA','EYFAAA','AAAAxx' +9688,4009,0,0,8,8,88,688,1688,4688,9688,176,177,'QIAAAA','FYFAAA','HHHHxx' +6522,4010,0,2,2,2,22,522,522,1522,6522,44,45,'WQAAAA','GYFAAA','OOOOxx' +3241,4011,1,1,1,1,41,241,1241,3241,3241,82,83,'RUAAAA','HYFAAA','VVVVxx' +8770,4012,0,2,0,10,70,770,770,3770,8770,140,141,'IZAAAA','IYFAAA','AAAAxx' +2884,4013,0,0,4,4,84,884,884,2884,2884,168,169,'YGAAAA','JYFAAA','HHHHxx' +9579,4014,1,3,9,19,79,579,1579,4579,9579,158,159,'LEAAAA','KYFAAA','OOOOxx' +3125,4015,1,1,5,5,25,125,1125,3125,3125,50,51,'FQAAAA','LYFAAA','VVVVxx' +4604,4016,0,0,4,4,4,604,604,4604,4604,8,9,'CVAAAA','MYFAAA','AAAAxx' +2682,4017,0,2,2,2,82,682,682,2682,2682,164,165,'EZAAAA','NYFAAA','HHHHxx' +254,4018,0,2,4,14,54,254,254,254,254,108,109,'UJAAAA','OYFAAA','OOOOxx' +6569,4019,1,1,9,9,69,569,569,1569,6569,138,139,'RSAAAA','PYFAAA','VVVVxx' +2686,4020,0,2,6,6,86,686,686,2686,2686,172,173,'IZAAAA','QYFAAA','AAAAxx' +2123,4021,1,3,3,3,23,123,123,2123,2123,46,47,'RDAAAA','RYFAAA','HHHHxx' +1745,4022,1,1,5,5,45,745,1745,1745,1745,90,91,'DPAAAA','SYFAAA','OOOOxx' +247,4023,1,3,7,7,47,247,247,247,247,94,95,'NJAAAA','TYFAAA','VVVVxx' +5800,4024,0,0,0,0,0,800,1800,800,5800,0,1,'CPAAAA','UYFAAA','AAAAxx' +1121,4025,1,1,1,1,21,121,1121,1121,1121,42,43,'DRAAAA','VYFAAA','HHHHxx' +8893,4026,1,1,3,13,93,893,893,3893,8893,186,187,'BEAAAA','WYFAAA','OOOOxx' +7819,4027,1,3,9,19,19,819,1819,2819,7819,38,39,'TOAAAA','XYFAAA','VVVVxx' +1339,4028,1,3,9,19,39,339,1339,1339,1339,78,79,'NZAAAA','YYFAAA','AAAAxx' +5680,4029,0,0,0,0,80,680,1680,680,5680,160,161,'MKAAAA','ZYFAAA','HHHHxx' +5093,4030,1,1,3,13,93,93,1093,93,5093,186,187,'XNAAAA','AZFAAA','OOOOxx' +3508,4031,0,0,8,8,8,508,1508,3508,3508,16,17,'YEAAAA','BZFAAA','VVVVxx' +933,4032,1,1,3,13,33,933,933,933,933,66,67,'XJAAAA','CZFAAA','AAAAxx' +1106,4033,0,2,6,6,6,106,1106,1106,1106,12,13,'OQAAAA','DZFAAA','HHHHxx' +4386,4034,0,2,6,6,86,386,386,4386,4386,172,173,'SMAAAA','EZFAAA','OOOOxx' +5895,4035,1,3,5,15,95,895,1895,895,5895,190,191,'TSAAAA','FZFAAA','VVVVxx' +2980,4036,0,0,0,0,80,980,980,2980,2980,160,161,'QKAAAA','GZFAAA','AAAAxx' +4400,4037,0,0,0,0,0,400,400,4400,4400,0,1,'GNAAAA','HZFAAA','HHHHxx' +7433,4038,1,1,3,13,33,433,1433,2433,7433,66,67,'XZAAAA','IZFAAA','OOOOxx' +6110,4039,0,2,0,10,10,110,110,1110,6110,20,21,'ABAAAA','JZFAAA','VVVVxx' +867,4040,1,3,7,7,67,867,867,867,867,134,135,'JHAAAA','KZFAAA','AAAAxx' +5292,4041,0,0,2,12,92,292,1292,292,5292,184,185,'OVAAAA','LZFAAA','HHHHxx' +3926,4042,0,2,6,6,26,926,1926,3926,3926,52,53,'AVAAAA','MZFAAA','OOOOxx' +1107,4043,1,3,7,7,7,107,1107,1107,1107,14,15,'PQAAAA','NZFAAA','VVVVxx' +7355,4044,1,3,5,15,55,355,1355,2355,7355,110,111,'XWAAAA','OZFAAA','AAAAxx' +4689,4045,1,1,9,9,89,689,689,4689,4689,178,179,'JYAAAA','PZFAAA','HHHHxx' +4872,4046,0,0,2,12,72,872,872,4872,4872,144,145,'KFAAAA','QZFAAA','OOOOxx' +7821,4047,1,1,1,1,21,821,1821,2821,7821,42,43,'VOAAAA','RZFAAA','VVVVxx' +7277,4048,1,1,7,17,77,277,1277,2277,7277,154,155,'XTAAAA','SZFAAA','AAAAxx' +3268,4049,0,0,8,8,68,268,1268,3268,3268,136,137,'SVAAAA','TZFAAA','HHHHxx' +8877,4050,1,1,7,17,77,877,877,3877,8877,154,155,'LDAAAA','UZFAAA','OOOOxx' +343,4051,1,3,3,3,43,343,343,343,343,86,87,'FNAAAA','VZFAAA','VVVVxx' +621,4052,1,1,1,1,21,621,621,621,621,42,43,'XXAAAA','WZFAAA','AAAAxx' +5429,4053,1,1,9,9,29,429,1429,429,5429,58,59,'VAAAAA','XZFAAA','HHHHxx' +392,4054,0,0,2,12,92,392,392,392,392,184,185,'CPAAAA','YZFAAA','OOOOxx' +6004,4055,0,0,4,4,4,4,4,1004,6004,8,9,'YWAAAA','ZZFAAA','VVVVxx' +6377,4056,1,1,7,17,77,377,377,1377,6377,154,155,'HLAAAA','AAGAAA','AAAAxx' +3037,4057,1,1,7,17,37,37,1037,3037,3037,74,75,'VMAAAA','BAGAAA','HHHHxx' +3514,4058,0,2,4,14,14,514,1514,3514,3514,28,29,'EFAAAA','CAGAAA','OOOOxx' +8740,4059,0,0,0,0,40,740,740,3740,8740,80,81,'EYAAAA','DAGAAA','VVVVxx' +3877,4060,1,1,7,17,77,877,1877,3877,3877,154,155,'DTAAAA','EAGAAA','AAAAxx' +5731,4061,1,3,1,11,31,731,1731,731,5731,62,63,'LMAAAA','FAGAAA','HHHHxx' +6407,4062,1,3,7,7,7,407,407,1407,6407,14,15,'LMAAAA','GAGAAA','OOOOxx' +2044,4063,0,0,4,4,44,44,44,2044,2044,88,89,'QAAAAA','HAGAAA','VVVVxx' +7362,4064,0,2,2,2,62,362,1362,2362,7362,124,125,'EXAAAA','IAGAAA','AAAAxx' +5458,4065,0,2,8,18,58,458,1458,458,5458,116,117,'YBAAAA','JAGAAA','HHHHxx' +6437,4066,1,1,7,17,37,437,437,1437,6437,74,75,'PNAAAA','KAGAAA','OOOOxx' +1051,4067,1,3,1,11,51,51,1051,1051,1051,102,103,'LOAAAA','LAGAAA','VVVVxx' +1203,4068,1,3,3,3,3,203,1203,1203,1203,6,7,'HUAAAA','MAGAAA','AAAAxx' +2176,4069,0,0,6,16,76,176,176,2176,2176,152,153,'SFAAAA','NAGAAA','HHHHxx' +8997,4070,1,1,7,17,97,997,997,3997,8997,194,195,'BIAAAA','OAGAAA','OOOOxx' +6378,4071,0,2,8,18,78,378,378,1378,6378,156,157,'ILAAAA','PAGAAA','VVVVxx' +6006,4072,0,2,6,6,6,6,6,1006,6006,12,13,'AXAAAA','QAGAAA','AAAAxx' +2308,4073,0,0,8,8,8,308,308,2308,2308,16,17,'UKAAAA','RAGAAA','HHHHxx' +625,4074,1,1,5,5,25,625,625,625,625,50,51,'BYAAAA','SAGAAA','OOOOxx' +7298,4075,0,2,8,18,98,298,1298,2298,7298,196,197,'SUAAAA','TAGAAA','VVVVxx' +5575,4076,1,3,5,15,75,575,1575,575,5575,150,151,'LGAAAA','UAGAAA','AAAAxx' +3565,4077,1,1,5,5,65,565,1565,3565,3565,130,131,'DHAAAA','VAGAAA','HHHHxx' +47,4078,1,3,7,7,47,47,47,47,47,94,95,'VBAAAA','WAGAAA','OOOOxx' +2413,4079,1,1,3,13,13,413,413,2413,2413,26,27,'VOAAAA','XAGAAA','VVVVxx' +2153,4080,1,1,3,13,53,153,153,2153,2153,106,107,'VEAAAA','YAGAAA','AAAAxx' +752,4081,0,0,2,12,52,752,752,752,752,104,105,'YCAAAA','ZAGAAA','HHHHxx' +4095,4082,1,3,5,15,95,95,95,4095,4095,190,191,'NBAAAA','ABGAAA','OOOOxx' +2518,4083,0,2,8,18,18,518,518,2518,2518,36,37,'WSAAAA','BBGAAA','VVVVxx' +3681,4084,1,1,1,1,81,681,1681,3681,3681,162,163,'PLAAAA','CBGAAA','AAAAxx' +4213,4085,1,1,3,13,13,213,213,4213,4213,26,27,'BGAAAA','DBGAAA','HHHHxx' +2615,4086,1,3,5,15,15,615,615,2615,2615,30,31,'PWAAAA','EBGAAA','OOOOxx' +1471,4087,1,3,1,11,71,471,1471,1471,1471,142,143,'PEAAAA','FBGAAA','VVVVxx' +7315,4088,1,3,5,15,15,315,1315,2315,7315,30,31,'JVAAAA','GBGAAA','AAAAxx' +6013,4089,1,1,3,13,13,13,13,1013,6013,26,27,'HXAAAA','HBGAAA','HHHHxx' +3077,4090,1,1,7,17,77,77,1077,3077,3077,154,155,'JOAAAA','IBGAAA','OOOOxx' +2190,4091,0,2,0,10,90,190,190,2190,2190,180,181,'GGAAAA','JBGAAA','VVVVxx' +528,4092,0,0,8,8,28,528,528,528,528,56,57,'IUAAAA','KBGAAA','AAAAxx' +9508,4093,0,0,8,8,8,508,1508,4508,9508,16,17,'SBAAAA','LBGAAA','HHHHxx' +2473,4094,1,1,3,13,73,473,473,2473,2473,146,147,'DRAAAA','MBGAAA','OOOOxx' +167,4095,1,3,7,7,67,167,167,167,167,134,135,'LGAAAA','NBGAAA','VVVVxx' +8448,4096,0,0,8,8,48,448,448,3448,8448,96,97,'YMAAAA','OBGAAA','AAAAxx' +7538,4097,0,2,8,18,38,538,1538,2538,7538,76,77,'YDAAAA','PBGAAA','HHHHxx' +7638,4098,0,2,8,18,38,638,1638,2638,7638,76,77,'UHAAAA','QBGAAA','OOOOxx' +4328,4099,0,0,8,8,28,328,328,4328,4328,56,57,'MKAAAA','RBGAAA','VVVVxx' +3812,4100,0,0,2,12,12,812,1812,3812,3812,24,25,'QQAAAA','SBGAAA','AAAAxx' +2879,4101,1,3,9,19,79,879,879,2879,2879,158,159,'TGAAAA','TBGAAA','HHHHxx' +4741,4102,1,1,1,1,41,741,741,4741,4741,82,83,'JAAAAA','UBGAAA','OOOOxx' +9155,4103,1,3,5,15,55,155,1155,4155,9155,110,111,'DOAAAA','VBGAAA','VVVVxx' +5151,4104,1,3,1,11,51,151,1151,151,5151,102,103,'DQAAAA','WBGAAA','AAAAxx' +5591,4105,1,3,1,11,91,591,1591,591,5591,182,183,'BHAAAA','XBGAAA','HHHHxx' +1034,4106,0,2,4,14,34,34,1034,1034,1034,68,69,'UNAAAA','YBGAAA','OOOOxx' +765,4107,1,1,5,5,65,765,765,765,765,130,131,'LDAAAA','ZBGAAA','VVVVxx' +2664,4108,0,0,4,4,64,664,664,2664,2664,128,129,'MYAAAA','ACGAAA','AAAAxx' +6854,4109,0,2,4,14,54,854,854,1854,6854,108,109,'QDAAAA','BCGAAA','HHHHxx' +8263,4110,1,3,3,3,63,263,263,3263,8263,126,127,'VFAAAA','CCGAAA','OOOOxx' +8658,4111,0,2,8,18,58,658,658,3658,8658,116,117,'AVAAAA','DCGAAA','VVVVxx' +587,4112,1,3,7,7,87,587,587,587,587,174,175,'PWAAAA','ECGAAA','AAAAxx' +4553,4113,1,1,3,13,53,553,553,4553,4553,106,107,'DTAAAA','FCGAAA','HHHHxx' +1368,4114,0,0,8,8,68,368,1368,1368,1368,136,137,'QAAAAA','GCGAAA','OOOOxx' +1718,4115,0,2,8,18,18,718,1718,1718,1718,36,37,'COAAAA','HCGAAA','VVVVxx' +140,4116,0,0,0,0,40,140,140,140,140,80,81,'KFAAAA','ICGAAA','AAAAxx' +8341,4117,1,1,1,1,41,341,341,3341,8341,82,83,'VIAAAA','JCGAAA','HHHHxx' +72,4118,0,0,2,12,72,72,72,72,72,144,145,'UCAAAA','KCGAAA','OOOOxx' +6589,4119,1,1,9,9,89,589,589,1589,6589,178,179,'LTAAAA','LCGAAA','VVVVxx' +2024,4120,0,0,4,4,24,24,24,2024,2024,48,49,'WZAAAA','MCGAAA','AAAAxx' +8024,4121,0,0,4,4,24,24,24,3024,8024,48,49,'QWAAAA','NCGAAA','HHHHxx' +9564,4122,0,0,4,4,64,564,1564,4564,9564,128,129,'WDAAAA','OCGAAA','OOOOxx' +8625,4123,1,1,5,5,25,625,625,3625,8625,50,51,'TTAAAA','PCGAAA','VVVVxx' +2680,4124,0,0,0,0,80,680,680,2680,2680,160,161,'CZAAAA','QCGAAA','AAAAxx' +4323,4125,1,3,3,3,23,323,323,4323,4323,46,47,'HKAAAA','RCGAAA','HHHHxx' +8981,4126,1,1,1,1,81,981,981,3981,8981,162,163,'LHAAAA','SCGAAA','OOOOxx' +8909,4127,1,1,9,9,9,909,909,3909,8909,18,19,'REAAAA','TCGAAA','VVVVxx' +5288,4128,0,0,8,8,88,288,1288,288,5288,176,177,'KVAAAA','UCGAAA','AAAAxx' +2057,4129,1,1,7,17,57,57,57,2057,2057,114,115,'DBAAAA','VCGAAA','HHHHxx' +5931,4130,1,3,1,11,31,931,1931,931,5931,62,63,'DUAAAA','WCGAAA','OOOOxx' +9794,4131,0,2,4,14,94,794,1794,4794,9794,188,189,'SMAAAA','XCGAAA','VVVVxx' +1012,4132,0,0,2,12,12,12,1012,1012,1012,24,25,'YMAAAA','YCGAAA','AAAAxx' +5496,4133,0,0,6,16,96,496,1496,496,5496,192,193,'KDAAAA','ZCGAAA','HHHHxx' +9182,4134,0,2,2,2,82,182,1182,4182,9182,164,165,'EPAAAA','ADGAAA','OOOOxx' +5258,4135,0,2,8,18,58,258,1258,258,5258,116,117,'GUAAAA','BDGAAA','VVVVxx' +3050,4136,0,2,0,10,50,50,1050,3050,3050,100,101,'INAAAA','CDGAAA','AAAAxx' +2083,4137,1,3,3,3,83,83,83,2083,2083,166,167,'DCAAAA','DDGAAA','HHHHxx' +3069,4138,1,1,9,9,69,69,1069,3069,3069,138,139,'BOAAAA','EDGAAA','OOOOxx' +8459,4139,1,3,9,19,59,459,459,3459,8459,118,119,'JNAAAA','FDGAAA','VVVVxx' +169,4140,1,1,9,9,69,169,169,169,169,138,139,'NGAAAA','GDGAAA','AAAAxx' +4379,4141,1,3,9,19,79,379,379,4379,4379,158,159,'LMAAAA','HDGAAA','HHHHxx' +5126,4142,0,2,6,6,26,126,1126,126,5126,52,53,'EPAAAA','IDGAAA','OOOOxx' +1415,4143,1,3,5,15,15,415,1415,1415,1415,30,31,'LCAAAA','JDGAAA','VVVVxx' +1163,4144,1,3,3,3,63,163,1163,1163,1163,126,127,'TSAAAA','KDGAAA','AAAAxx' +3500,4145,0,0,0,0,0,500,1500,3500,3500,0,1,'QEAAAA','LDGAAA','HHHHxx' +7202,4146,0,2,2,2,2,202,1202,2202,7202,4,5,'ARAAAA','MDGAAA','OOOOxx' +747,4147,1,3,7,7,47,747,747,747,747,94,95,'TCAAAA','NDGAAA','VVVVxx' +9264,4148,0,0,4,4,64,264,1264,4264,9264,128,129,'ISAAAA','ODGAAA','AAAAxx' +8548,4149,0,0,8,8,48,548,548,3548,8548,96,97,'UQAAAA','PDGAAA','HHHHxx' +4228,4150,0,0,8,8,28,228,228,4228,4228,56,57,'QGAAAA','QDGAAA','OOOOxx' +7122,4151,0,2,2,2,22,122,1122,2122,7122,44,45,'YNAAAA','RDGAAA','VVVVxx' +3395,4152,1,3,5,15,95,395,1395,3395,3395,190,191,'PAAAAA','SDGAAA','AAAAxx' +5674,4153,0,2,4,14,74,674,1674,674,5674,148,149,'GKAAAA','TDGAAA','HHHHxx' +7293,4154,1,1,3,13,93,293,1293,2293,7293,186,187,'NUAAAA','UDGAAA','OOOOxx' +737,4155,1,1,7,17,37,737,737,737,737,74,75,'JCAAAA','VDGAAA','VVVVxx' +9595,4156,1,3,5,15,95,595,1595,4595,9595,190,191,'BFAAAA','WDGAAA','AAAAxx' +594,4157,0,2,4,14,94,594,594,594,594,188,189,'WWAAAA','XDGAAA','HHHHxx' +5322,4158,0,2,2,2,22,322,1322,322,5322,44,45,'SWAAAA','YDGAAA','OOOOxx' +2933,4159,1,1,3,13,33,933,933,2933,2933,66,67,'VIAAAA','ZDGAAA','VVVVxx' +4955,4160,1,3,5,15,55,955,955,4955,4955,110,111,'PIAAAA','AEGAAA','AAAAxx' +4073,4161,1,1,3,13,73,73,73,4073,4073,146,147,'RAAAAA','BEGAAA','HHHHxx' +7249,4162,1,1,9,9,49,249,1249,2249,7249,98,99,'VSAAAA','CEGAAA','OOOOxx' +192,4163,0,0,2,12,92,192,192,192,192,184,185,'KHAAAA','DEGAAA','VVVVxx' +2617,4164,1,1,7,17,17,617,617,2617,2617,34,35,'RWAAAA','EEGAAA','AAAAxx' +7409,4165,1,1,9,9,9,409,1409,2409,7409,18,19,'ZYAAAA','FEGAAA','HHHHxx' +4903,4166,1,3,3,3,3,903,903,4903,4903,6,7,'PGAAAA','GEGAAA','OOOOxx' +9797,4167,1,1,7,17,97,797,1797,4797,9797,194,195,'VMAAAA','HEGAAA','VVVVxx' +9919,4168,1,3,9,19,19,919,1919,4919,9919,38,39,'NRAAAA','IEGAAA','AAAAxx' +1878,4169,0,2,8,18,78,878,1878,1878,1878,156,157,'GUAAAA','JEGAAA','HHHHxx' +4851,4170,1,3,1,11,51,851,851,4851,4851,102,103,'PEAAAA','KEGAAA','OOOOxx' +5514,4171,0,2,4,14,14,514,1514,514,5514,28,29,'CEAAAA','LEGAAA','VVVVxx' +2582,4172,0,2,2,2,82,582,582,2582,2582,164,165,'IVAAAA','MEGAAA','AAAAxx' +3564,4173,0,0,4,4,64,564,1564,3564,3564,128,129,'CHAAAA','NEGAAA','HHHHxx' +7085,4174,1,1,5,5,85,85,1085,2085,7085,170,171,'NMAAAA','OEGAAA','OOOOxx' +3619,4175,1,3,9,19,19,619,1619,3619,3619,38,39,'FJAAAA','PEGAAA','VVVVxx' +261,4176,1,1,1,1,61,261,261,261,261,122,123,'BKAAAA','QEGAAA','AAAAxx' +7338,4177,0,2,8,18,38,338,1338,2338,7338,76,77,'GWAAAA','REGAAA','HHHHxx' +4251,4178,1,3,1,11,51,251,251,4251,4251,102,103,'NHAAAA','SEGAAA','OOOOxx' +5360,4179,0,0,0,0,60,360,1360,360,5360,120,121,'EYAAAA','TEGAAA','VVVVxx' +5678,4180,0,2,8,18,78,678,1678,678,5678,156,157,'KKAAAA','UEGAAA','AAAAxx' +9162,4181,0,2,2,2,62,162,1162,4162,9162,124,125,'KOAAAA','VEGAAA','HHHHxx' +5920,4182,0,0,0,0,20,920,1920,920,5920,40,41,'STAAAA','WEGAAA','OOOOxx' +7156,4183,0,0,6,16,56,156,1156,2156,7156,112,113,'GPAAAA','XEGAAA','VVVVxx' +4271,4184,1,3,1,11,71,271,271,4271,4271,142,143,'HIAAAA','YEGAAA','AAAAxx' +4698,4185,0,2,8,18,98,698,698,4698,4698,196,197,'SYAAAA','ZEGAAA','HHHHxx' +1572,4186,0,0,2,12,72,572,1572,1572,1572,144,145,'MIAAAA','AFGAAA','OOOOxx' +6974,4187,0,2,4,14,74,974,974,1974,6974,148,149,'GIAAAA','BFGAAA','VVVVxx' +4291,4188,1,3,1,11,91,291,291,4291,4291,182,183,'BJAAAA','CFGAAA','AAAAxx' +4036,4189,0,0,6,16,36,36,36,4036,4036,72,73,'GZAAAA','DFGAAA','HHHHxx' +7473,4190,1,1,3,13,73,473,1473,2473,7473,146,147,'LBAAAA','EFGAAA','OOOOxx' +4786,4191,0,2,6,6,86,786,786,4786,4786,172,173,'CCAAAA','FFGAAA','VVVVxx' +2662,4192,0,2,2,2,62,662,662,2662,2662,124,125,'KYAAAA','GFGAAA','AAAAxx' +916,4193,0,0,6,16,16,916,916,916,916,32,33,'GJAAAA','HFGAAA','HHHHxx' +668,4194,0,0,8,8,68,668,668,668,668,136,137,'SZAAAA','IFGAAA','OOOOxx' +4874,4195,0,2,4,14,74,874,874,4874,4874,148,149,'MFAAAA','JFGAAA','VVVVxx' +3752,4196,0,0,2,12,52,752,1752,3752,3752,104,105,'IOAAAA','KFGAAA','AAAAxx' +4865,4197,1,1,5,5,65,865,865,4865,4865,130,131,'DFAAAA','LFGAAA','HHHHxx' +7052,4198,0,0,2,12,52,52,1052,2052,7052,104,105,'GLAAAA','MFGAAA','OOOOxx' +5712,4199,0,0,2,12,12,712,1712,712,5712,24,25,'SLAAAA','NFGAAA','VVVVxx' +31,4200,1,3,1,11,31,31,31,31,31,62,63,'FBAAAA','OFGAAA','AAAAxx' +4944,4201,0,0,4,4,44,944,944,4944,4944,88,89,'EIAAAA','PFGAAA','HHHHxx' +1435,4202,1,3,5,15,35,435,1435,1435,1435,70,71,'FDAAAA','QFGAAA','OOOOxx' +501,4203,1,1,1,1,1,501,501,501,501,2,3,'HTAAAA','RFGAAA','VVVVxx' +9401,4204,1,1,1,1,1,401,1401,4401,9401,2,3,'PXAAAA','SFGAAA','AAAAxx' +5014,4205,0,2,4,14,14,14,1014,14,5014,28,29,'WKAAAA','TFGAAA','HHHHxx' +9125,4206,1,1,5,5,25,125,1125,4125,9125,50,51,'ZMAAAA','UFGAAA','OOOOxx' +6144,4207,0,0,4,4,44,144,144,1144,6144,88,89,'ICAAAA','VFGAAA','VVVVxx' +1743,4208,1,3,3,3,43,743,1743,1743,1743,86,87,'BPAAAA','WFGAAA','AAAAxx' +4316,4209,0,0,6,16,16,316,316,4316,4316,32,33,'AKAAAA','XFGAAA','HHHHxx' +8212,4210,0,0,2,12,12,212,212,3212,8212,24,25,'WDAAAA','YFGAAA','OOOOxx' +7344,4211,0,0,4,4,44,344,1344,2344,7344,88,89,'MWAAAA','ZFGAAA','VVVVxx' +2051,4212,1,3,1,11,51,51,51,2051,2051,102,103,'XAAAAA','AGGAAA','AAAAxx' +8131,4213,1,3,1,11,31,131,131,3131,8131,62,63,'TAAAAA','BGGAAA','HHHHxx' +7023,4214,1,3,3,3,23,23,1023,2023,7023,46,47,'DKAAAA','CGGAAA','OOOOxx' +9674,4215,0,2,4,14,74,674,1674,4674,9674,148,149,'CIAAAA','DGGAAA','VVVVxx' +4984,4216,0,0,4,4,84,984,984,4984,4984,168,169,'SJAAAA','EGGAAA','AAAAxx' +111,4217,1,3,1,11,11,111,111,111,111,22,23,'HEAAAA','FGGAAA','HHHHxx' +2296,4218,0,0,6,16,96,296,296,2296,2296,192,193,'IKAAAA','GGGAAA','OOOOxx' +5025,4219,1,1,5,5,25,25,1025,25,5025,50,51,'HLAAAA','HGGAAA','VVVVxx' +1756,4220,0,0,6,16,56,756,1756,1756,1756,112,113,'OPAAAA','IGGAAA','AAAAxx' +2885,4221,1,1,5,5,85,885,885,2885,2885,170,171,'ZGAAAA','JGGAAA','HHHHxx' +2541,4222,1,1,1,1,41,541,541,2541,2541,82,83,'TTAAAA','KGGAAA','OOOOxx' +1919,4223,1,3,9,19,19,919,1919,1919,1919,38,39,'VVAAAA','LGGAAA','VVVVxx' +6496,4224,0,0,6,16,96,496,496,1496,6496,192,193,'WPAAAA','MGGAAA','AAAAxx' +6103,4225,1,3,3,3,3,103,103,1103,6103,6,7,'TAAAAA','NGGAAA','HHHHxx' +98,4226,0,2,8,18,98,98,98,98,98,196,197,'UDAAAA','OGGAAA','OOOOxx' +3727,4227,1,3,7,7,27,727,1727,3727,3727,54,55,'JNAAAA','PGGAAA','VVVVxx' +689,4228,1,1,9,9,89,689,689,689,689,178,179,'NAAAAA','QGGAAA','AAAAxx' +7181,4229,1,1,1,1,81,181,1181,2181,7181,162,163,'FQAAAA','RGGAAA','HHHHxx' +8447,4230,1,3,7,7,47,447,447,3447,8447,94,95,'XMAAAA','SGGAAA','OOOOxx' +4569,4231,1,1,9,9,69,569,569,4569,4569,138,139,'TTAAAA','TGGAAA','VVVVxx' +8844,4232,0,0,4,4,44,844,844,3844,8844,88,89,'ECAAAA','UGGAAA','AAAAxx' +2436,4233,0,0,6,16,36,436,436,2436,2436,72,73,'SPAAAA','VGGAAA','HHHHxx' +391,4234,1,3,1,11,91,391,391,391,391,182,183,'BPAAAA','WGGAAA','OOOOxx' +3035,4235,1,3,5,15,35,35,1035,3035,3035,70,71,'TMAAAA','XGGAAA','VVVVxx' +7583,4236,1,3,3,3,83,583,1583,2583,7583,166,167,'RFAAAA','YGGAAA','AAAAxx' +1145,4237,1,1,5,5,45,145,1145,1145,1145,90,91,'BSAAAA','ZGGAAA','HHHHxx' +93,4238,1,1,3,13,93,93,93,93,93,186,187,'PDAAAA','AHGAAA','OOOOxx' +8896,4239,0,0,6,16,96,896,896,3896,8896,192,193,'EEAAAA','BHGAAA','VVVVxx' +6719,4240,1,3,9,19,19,719,719,1719,6719,38,39,'LYAAAA','CHGAAA','AAAAxx' +7728,4241,0,0,8,8,28,728,1728,2728,7728,56,57,'GLAAAA','DHGAAA','HHHHxx' +1349,4242,1,1,9,9,49,349,1349,1349,1349,98,99,'XZAAAA','EHGAAA','OOOOxx' +5349,4243,1,1,9,9,49,349,1349,349,5349,98,99,'TXAAAA','FHGAAA','VVVVxx' +3040,4244,0,0,0,0,40,40,1040,3040,3040,80,81,'YMAAAA','GHGAAA','AAAAxx' +2414,4245,0,2,4,14,14,414,414,2414,2414,28,29,'WOAAAA','HHGAAA','HHHHxx' +5122,4246,0,2,2,2,22,122,1122,122,5122,44,45,'APAAAA','IHGAAA','OOOOxx' +9553,4247,1,1,3,13,53,553,1553,4553,9553,106,107,'LDAAAA','JHGAAA','VVVVxx' +5987,4248,1,3,7,7,87,987,1987,987,5987,174,175,'HWAAAA','KHGAAA','AAAAxx' +5939,4249,1,3,9,19,39,939,1939,939,5939,78,79,'LUAAAA','LHGAAA','HHHHxx' +3525,4250,1,1,5,5,25,525,1525,3525,3525,50,51,'PFAAAA','MHGAAA','OOOOxx' +1371,4251,1,3,1,11,71,371,1371,1371,1371,142,143,'TAAAAA','NHGAAA','VVVVxx' +618,4252,0,2,8,18,18,618,618,618,618,36,37,'UXAAAA','OHGAAA','AAAAxx' +6529,4253,1,1,9,9,29,529,529,1529,6529,58,59,'DRAAAA','PHGAAA','HHHHxx' +4010,4254,0,2,0,10,10,10,10,4010,4010,20,21,'GYAAAA','QHGAAA','OOOOxx' +328,4255,0,0,8,8,28,328,328,328,328,56,57,'QMAAAA','RHGAAA','VVVVxx' +6121,4256,1,1,1,1,21,121,121,1121,6121,42,43,'LBAAAA','SHGAAA','AAAAxx' +3505,4257,1,1,5,5,5,505,1505,3505,3505,10,11,'VEAAAA','THGAAA','HHHHxx' +2033,4258,1,1,3,13,33,33,33,2033,2033,66,67,'FAAAAA','UHGAAA','OOOOxx' +4724,4259,0,0,4,4,24,724,724,4724,4724,48,49,'SZAAAA','VHGAAA','VVVVxx' +8717,4260,1,1,7,17,17,717,717,3717,8717,34,35,'HXAAAA','WHGAAA','AAAAxx' +5639,4261,1,3,9,19,39,639,1639,639,5639,78,79,'XIAAAA','XHGAAA','HHHHxx' +3448,4262,0,0,8,8,48,448,1448,3448,3448,96,97,'QCAAAA','YHGAAA','OOOOxx' +2919,4263,1,3,9,19,19,919,919,2919,2919,38,39,'HIAAAA','ZHGAAA','VVVVxx' +3417,4264,1,1,7,17,17,417,1417,3417,3417,34,35,'LBAAAA','AIGAAA','AAAAxx' +943,4265,1,3,3,3,43,943,943,943,943,86,87,'HKAAAA','BIGAAA','HHHHxx' +775,4266,1,3,5,15,75,775,775,775,775,150,151,'VDAAAA','CIGAAA','OOOOxx' +2333,4267,1,1,3,13,33,333,333,2333,2333,66,67,'TLAAAA','DIGAAA','VVVVxx' +4801,4268,1,1,1,1,1,801,801,4801,4801,2,3,'RCAAAA','EIGAAA','AAAAxx' +7169,4269,1,1,9,9,69,169,1169,2169,7169,138,139,'TPAAAA','FIGAAA','HHHHxx' +2840,4270,0,0,0,0,40,840,840,2840,2840,80,81,'GFAAAA','GIGAAA','OOOOxx' +9034,4271,0,2,4,14,34,34,1034,4034,9034,68,69,'MJAAAA','HIGAAA','VVVVxx' +6154,4272,0,2,4,14,54,154,154,1154,6154,108,109,'SCAAAA','IIGAAA','AAAAxx' +1412,4273,0,0,2,12,12,412,1412,1412,1412,24,25,'ICAAAA','JIGAAA','HHHHxx' +2263,4274,1,3,3,3,63,263,263,2263,2263,126,127,'BJAAAA','KIGAAA','OOOOxx' +7118,4275,0,2,8,18,18,118,1118,2118,7118,36,37,'UNAAAA','LIGAAA','VVVVxx' +1526,4276,0,2,6,6,26,526,1526,1526,1526,52,53,'SGAAAA','MIGAAA','AAAAxx' +491,4277,1,3,1,11,91,491,491,491,491,182,183,'XSAAAA','NIGAAA','HHHHxx' +9732,4278,0,0,2,12,32,732,1732,4732,9732,64,65,'IKAAAA','OIGAAA','OOOOxx' +7067,4279,1,3,7,7,67,67,1067,2067,7067,134,135,'VLAAAA','PIGAAA','VVVVxx' +212,4280,0,0,2,12,12,212,212,212,212,24,25,'EIAAAA','QIGAAA','AAAAxx' +1955,4281,1,3,5,15,55,955,1955,1955,1955,110,111,'FXAAAA','RIGAAA','HHHHxx' +3303,4282,1,3,3,3,3,303,1303,3303,3303,6,7,'BXAAAA','SIGAAA','OOOOxx' +2715,4283,1,3,5,15,15,715,715,2715,2715,30,31,'LAAAAA','TIGAAA','VVVVxx' +8168,4284,0,0,8,8,68,168,168,3168,8168,136,137,'ECAAAA','UIGAAA','AAAAxx' +6799,4285,1,3,9,19,99,799,799,1799,6799,198,199,'NBAAAA','VIGAAA','HHHHxx' +5080,4286,0,0,0,0,80,80,1080,80,5080,160,161,'KNAAAA','WIGAAA','OOOOxx' +4939,4287,1,3,9,19,39,939,939,4939,4939,78,79,'ZHAAAA','XIGAAA','VVVVxx' +6604,4288,0,0,4,4,4,604,604,1604,6604,8,9,'AUAAAA','YIGAAA','AAAAxx' +6531,4289,1,3,1,11,31,531,531,1531,6531,62,63,'FRAAAA','ZIGAAA','HHHHxx' +9948,4290,0,0,8,8,48,948,1948,4948,9948,96,97,'QSAAAA','AJGAAA','OOOOxx' +7923,4291,1,3,3,3,23,923,1923,2923,7923,46,47,'TSAAAA','BJGAAA','VVVVxx' +9905,4292,1,1,5,5,5,905,1905,4905,9905,10,11,'ZQAAAA','CJGAAA','AAAAxx' +340,4293,0,0,0,0,40,340,340,340,340,80,81,'CNAAAA','DJGAAA','HHHHxx' +1721,4294,1,1,1,1,21,721,1721,1721,1721,42,43,'FOAAAA','EJGAAA','OOOOxx' +9047,4295,1,3,7,7,47,47,1047,4047,9047,94,95,'ZJAAAA','FJGAAA','VVVVxx' +4723,4296,1,3,3,3,23,723,723,4723,4723,46,47,'RZAAAA','GJGAAA','AAAAxx' +5748,4297,0,0,8,8,48,748,1748,748,5748,96,97,'CNAAAA','HJGAAA','HHHHxx' +6845,4298,1,1,5,5,45,845,845,1845,6845,90,91,'HDAAAA','IJGAAA','OOOOxx' +1556,4299,0,0,6,16,56,556,1556,1556,1556,112,113,'WHAAAA','JJGAAA','VVVVxx' +9505,4300,1,1,5,5,5,505,1505,4505,9505,10,11,'PBAAAA','KJGAAA','AAAAxx' +3573,4301,1,1,3,13,73,573,1573,3573,3573,146,147,'LHAAAA','LJGAAA','HHHHxx' +3785,4302,1,1,5,5,85,785,1785,3785,3785,170,171,'PPAAAA','MJGAAA','OOOOxx' +2772,4303,0,0,2,12,72,772,772,2772,2772,144,145,'QCAAAA','NJGAAA','VVVVxx' +7282,4304,0,2,2,2,82,282,1282,2282,7282,164,165,'CUAAAA','OJGAAA','AAAAxx' +8106,4305,0,2,6,6,6,106,106,3106,8106,12,13,'UZAAAA','PJGAAA','HHHHxx' +2847,4306,1,3,7,7,47,847,847,2847,2847,94,95,'NFAAAA','QJGAAA','OOOOxx' +9803,4307,1,3,3,3,3,803,1803,4803,9803,6,7,'BNAAAA','RJGAAA','VVVVxx' +7719,4308,1,3,9,19,19,719,1719,2719,7719,38,39,'XKAAAA','SJGAAA','AAAAxx' +4649,4309,1,1,9,9,49,649,649,4649,4649,98,99,'VWAAAA','TJGAAA','HHHHxx' +6196,4310,0,0,6,16,96,196,196,1196,6196,192,193,'IEAAAA','UJGAAA','OOOOxx' +6026,4311,0,2,6,6,26,26,26,1026,6026,52,53,'UXAAAA','VJGAAA','VVVVxx' +1646,4312,0,2,6,6,46,646,1646,1646,1646,92,93,'ILAAAA','WJGAAA','AAAAxx' +6526,4313,0,2,6,6,26,526,526,1526,6526,52,53,'ARAAAA','XJGAAA','HHHHxx' +5110,4314,0,2,0,10,10,110,1110,110,5110,20,21,'OOAAAA','YJGAAA','OOOOxx' +3946,4315,0,2,6,6,46,946,1946,3946,3946,92,93,'UVAAAA','ZJGAAA','VVVVxx' +445,4316,1,1,5,5,45,445,445,445,445,90,91,'DRAAAA','AKGAAA','AAAAxx' +3249,4317,1,1,9,9,49,249,1249,3249,3249,98,99,'ZUAAAA','BKGAAA','HHHHxx' +2501,4318,1,1,1,1,1,501,501,2501,2501,2,3,'FSAAAA','CKGAAA','OOOOxx' +3243,4319,1,3,3,3,43,243,1243,3243,3243,86,87,'TUAAAA','DKGAAA','VVVVxx' +4701,4320,1,1,1,1,1,701,701,4701,4701,2,3,'VYAAAA','EKGAAA','AAAAxx' +472,4321,0,0,2,12,72,472,472,472,472,144,145,'ESAAAA','FKGAAA','HHHHxx' +3356,4322,0,0,6,16,56,356,1356,3356,3356,112,113,'CZAAAA','GKGAAA','OOOOxx' +9967,4323,1,3,7,7,67,967,1967,4967,9967,134,135,'JTAAAA','HKGAAA','VVVVxx' +4292,4324,0,0,2,12,92,292,292,4292,4292,184,185,'CJAAAA','IKGAAA','AAAAxx' +7005,4325,1,1,5,5,5,5,1005,2005,7005,10,11,'LJAAAA','JKGAAA','HHHHxx' +6267,4326,1,3,7,7,67,267,267,1267,6267,134,135,'BHAAAA','KKGAAA','OOOOxx' +6678,4327,0,2,8,18,78,678,678,1678,6678,156,157,'WWAAAA','LKGAAA','VVVVxx' +6083,4328,1,3,3,3,83,83,83,1083,6083,166,167,'ZZAAAA','MKGAAA','AAAAxx' +760,4329,0,0,0,0,60,760,760,760,760,120,121,'GDAAAA','NKGAAA','HHHHxx' +7833,4330,1,1,3,13,33,833,1833,2833,7833,66,67,'HPAAAA','OKGAAA','OOOOxx' +2877,4331,1,1,7,17,77,877,877,2877,2877,154,155,'RGAAAA','PKGAAA','VVVVxx' +8810,4332,0,2,0,10,10,810,810,3810,8810,20,21,'WAAAAA','QKGAAA','AAAAxx' +1560,4333,0,0,0,0,60,560,1560,1560,1560,120,121,'AIAAAA','RKGAAA','HHHHxx' +1367,4334,1,3,7,7,67,367,1367,1367,1367,134,135,'PAAAAA','SKGAAA','OOOOxx' +8756,4335,0,0,6,16,56,756,756,3756,8756,112,113,'UYAAAA','TKGAAA','VVVVxx' +1346,4336,0,2,6,6,46,346,1346,1346,1346,92,93,'UZAAAA','UKGAAA','AAAAxx' +6449,4337,1,1,9,9,49,449,449,1449,6449,98,99,'BOAAAA','VKGAAA','HHHHxx' +6658,4338,0,2,8,18,58,658,658,1658,6658,116,117,'CWAAAA','WKGAAA','OOOOxx' +6745,4339,1,1,5,5,45,745,745,1745,6745,90,91,'LZAAAA','XKGAAA','VVVVxx' +4866,4340,0,2,6,6,66,866,866,4866,4866,132,133,'EFAAAA','YKGAAA','AAAAxx' +14,4341,0,2,4,14,14,14,14,14,14,28,29,'OAAAAA','ZKGAAA','HHHHxx' +4506,4342,0,2,6,6,6,506,506,4506,4506,12,13,'IRAAAA','ALGAAA','OOOOxx' +1923,4343,1,3,3,3,23,923,1923,1923,1923,46,47,'ZVAAAA','BLGAAA','VVVVxx' +8365,4344,1,1,5,5,65,365,365,3365,8365,130,131,'TJAAAA','CLGAAA','AAAAxx' +1279,4345,1,3,9,19,79,279,1279,1279,1279,158,159,'FXAAAA','DLGAAA','HHHHxx' +7666,4346,0,2,6,6,66,666,1666,2666,7666,132,133,'WIAAAA','ELGAAA','OOOOxx' +7404,4347,0,0,4,4,4,404,1404,2404,7404,8,9,'UYAAAA','FLGAAA','VVVVxx' +65,4348,1,1,5,5,65,65,65,65,65,130,131,'NCAAAA','GLGAAA','AAAAxx' +5820,4349,0,0,0,0,20,820,1820,820,5820,40,41,'WPAAAA','HLGAAA','HHHHxx' +459,4350,1,3,9,19,59,459,459,459,459,118,119,'RRAAAA','ILGAAA','OOOOxx' +4787,4351,1,3,7,7,87,787,787,4787,4787,174,175,'DCAAAA','JLGAAA','VVVVxx' +5631,4352,1,3,1,11,31,631,1631,631,5631,62,63,'PIAAAA','KLGAAA','AAAAxx' +9717,4353,1,1,7,17,17,717,1717,4717,9717,34,35,'TJAAAA','LLGAAA','HHHHxx' +2560,4354,0,0,0,0,60,560,560,2560,2560,120,121,'MUAAAA','MLGAAA','OOOOxx' +8295,4355,1,3,5,15,95,295,295,3295,8295,190,191,'BHAAAA','NLGAAA','VVVVxx' +3596,4356,0,0,6,16,96,596,1596,3596,3596,192,193,'IIAAAA','OLGAAA','AAAAxx' +2023,4357,1,3,3,3,23,23,23,2023,2023,46,47,'VZAAAA','PLGAAA','HHHHxx' +5055,4358,1,3,5,15,55,55,1055,55,5055,110,111,'LMAAAA','QLGAAA','OOOOxx' +763,4359,1,3,3,3,63,763,763,763,763,126,127,'JDAAAA','RLGAAA','VVVVxx' +6733,4360,1,1,3,13,33,733,733,1733,6733,66,67,'ZYAAAA','SLGAAA','AAAAxx' +9266,4361,0,2,6,6,66,266,1266,4266,9266,132,133,'KSAAAA','TLGAAA','HHHHxx' +4479,4362,1,3,9,19,79,479,479,4479,4479,158,159,'HQAAAA','ULGAAA','OOOOxx' +1816,4363,0,0,6,16,16,816,1816,1816,1816,32,33,'WRAAAA','VLGAAA','VVVVxx' +899,4364,1,3,9,19,99,899,899,899,899,198,199,'PIAAAA','WLGAAA','AAAAxx' +230,4365,0,2,0,10,30,230,230,230,230,60,61,'WIAAAA','XLGAAA','HHHHxx' +5362,4366,0,2,2,2,62,362,1362,362,5362,124,125,'GYAAAA','YLGAAA','OOOOxx' +1609,4367,1,1,9,9,9,609,1609,1609,1609,18,19,'XJAAAA','ZLGAAA','VVVVxx' +6750,4368,0,2,0,10,50,750,750,1750,6750,100,101,'QZAAAA','AMGAAA','AAAAxx' +9704,4369,0,0,4,4,4,704,1704,4704,9704,8,9,'GJAAAA','BMGAAA','HHHHxx' +3991,4370,1,3,1,11,91,991,1991,3991,3991,182,183,'NXAAAA','CMGAAA','OOOOxx' +3959,4371,1,3,9,19,59,959,1959,3959,3959,118,119,'HWAAAA','DMGAAA','VVVVxx' +9021,4372,1,1,1,1,21,21,1021,4021,9021,42,43,'ZIAAAA','EMGAAA','AAAAxx' +7585,4373,1,1,5,5,85,585,1585,2585,7585,170,171,'TFAAAA','FMGAAA','HHHHxx' +7083,4374,1,3,3,3,83,83,1083,2083,7083,166,167,'LMAAAA','GMGAAA','OOOOxx' +7688,4375,0,0,8,8,88,688,1688,2688,7688,176,177,'SJAAAA','HMGAAA','VVVVxx' +2673,4376,1,1,3,13,73,673,673,2673,2673,146,147,'VYAAAA','IMGAAA','AAAAxx' +3554,4377,0,2,4,14,54,554,1554,3554,3554,108,109,'SGAAAA','JMGAAA','HHHHxx' +7416,4378,0,0,6,16,16,416,1416,2416,7416,32,33,'GZAAAA','KMGAAA','OOOOxx' +5672,4379,0,0,2,12,72,672,1672,672,5672,144,145,'EKAAAA','LMGAAA','VVVVxx' +1355,4380,1,3,5,15,55,355,1355,1355,1355,110,111,'DAAAAA','MMGAAA','AAAAxx' +3149,4381,1,1,9,9,49,149,1149,3149,3149,98,99,'DRAAAA','NMGAAA','HHHHxx' +5811,4382,1,3,1,11,11,811,1811,811,5811,22,23,'NPAAAA','OMGAAA','OOOOxx' +3759,4383,1,3,9,19,59,759,1759,3759,3759,118,119,'POAAAA','PMGAAA','VVVVxx' +5634,4384,0,2,4,14,34,634,1634,634,5634,68,69,'SIAAAA','QMGAAA','AAAAxx' +8617,4385,1,1,7,17,17,617,617,3617,8617,34,35,'LTAAAA','RMGAAA','HHHHxx' +8949,4386,1,1,9,9,49,949,949,3949,8949,98,99,'FGAAAA','SMGAAA','OOOOxx' +3964,4387,0,0,4,4,64,964,1964,3964,3964,128,129,'MWAAAA','TMGAAA','VVVVxx' +3852,4388,0,0,2,12,52,852,1852,3852,3852,104,105,'ESAAAA','UMGAAA','AAAAxx' +1555,4389,1,3,5,15,55,555,1555,1555,1555,110,111,'VHAAAA','VMGAAA','HHHHxx' +6536,4390,0,0,6,16,36,536,536,1536,6536,72,73,'KRAAAA','WMGAAA','OOOOxx' +4779,4391,1,3,9,19,79,779,779,4779,4779,158,159,'VBAAAA','XMGAAA','VVVVxx' +1893,4392,1,1,3,13,93,893,1893,1893,1893,186,187,'VUAAAA','YMGAAA','AAAAxx' +9358,4393,0,2,8,18,58,358,1358,4358,9358,116,117,'YVAAAA','ZMGAAA','HHHHxx' +7438,4394,0,2,8,18,38,438,1438,2438,7438,76,77,'CAAAAA','ANGAAA','OOOOxx' +941,4395,1,1,1,1,41,941,941,941,941,82,83,'FKAAAA','BNGAAA','VVVVxx' +4844,4396,0,0,4,4,44,844,844,4844,4844,88,89,'IEAAAA','CNGAAA','AAAAxx' +4745,4397,1,1,5,5,45,745,745,4745,4745,90,91,'NAAAAA','DNGAAA','HHHHxx' +1017,4398,1,1,7,17,17,17,1017,1017,1017,34,35,'DNAAAA','ENGAAA','OOOOxx' +327,4399,1,3,7,7,27,327,327,327,327,54,55,'PMAAAA','FNGAAA','VVVVxx' +3152,4400,0,0,2,12,52,152,1152,3152,3152,104,105,'GRAAAA','GNGAAA','AAAAxx' +4711,4401,1,3,1,11,11,711,711,4711,4711,22,23,'FZAAAA','HNGAAA','HHHHxx' +141,4402,1,1,1,1,41,141,141,141,141,82,83,'LFAAAA','INGAAA','OOOOxx' +1303,4403,1,3,3,3,3,303,1303,1303,1303,6,7,'DYAAAA','JNGAAA','VVVVxx' +8873,4404,1,1,3,13,73,873,873,3873,8873,146,147,'HDAAAA','KNGAAA','AAAAxx' +8481,4405,1,1,1,1,81,481,481,3481,8481,162,163,'FOAAAA','LNGAAA','HHHHxx' +5445,4406,1,1,5,5,45,445,1445,445,5445,90,91,'LBAAAA','MNGAAA','OOOOxx' +7868,4407,0,0,8,8,68,868,1868,2868,7868,136,137,'QQAAAA','NNGAAA','VVVVxx' +6722,4408,0,2,2,2,22,722,722,1722,6722,44,45,'OYAAAA','ONGAAA','AAAAxx' +6628,4409,0,0,8,8,28,628,628,1628,6628,56,57,'YUAAAA','PNGAAA','HHHHxx' +7738,4410,0,2,8,18,38,738,1738,2738,7738,76,77,'QLAAAA','QNGAAA','OOOOxx' +1018,4411,0,2,8,18,18,18,1018,1018,1018,36,37,'ENAAAA','RNGAAA','VVVVxx' +3296,4412,0,0,6,16,96,296,1296,3296,3296,192,193,'UWAAAA','SNGAAA','AAAAxx' +1946,4413,0,2,6,6,46,946,1946,1946,1946,92,93,'WWAAAA','TNGAAA','HHHHxx' +6603,4414,1,3,3,3,3,603,603,1603,6603,6,7,'ZTAAAA','UNGAAA','OOOOxx' +3562,4415,0,2,2,2,62,562,1562,3562,3562,124,125,'AHAAAA','VNGAAA','VVVVxx' +1147,4416,1,3,7,7,47,147,1147,1147,1147,94,95,'DSAAAA','WNGAAA','AAAAxx' +6031,4417,1,3,1,11,31,31,31,1031,6031,62,63,'ZXAAAA','XNGAAA','HHHHxx' +6484,4418,0,0,4,4,84,484,484,1484,6484,168,169,'KPAAAA','YNGAAA','OOOOxx' +496,4419,0,0,6,16,96,496,496,496,496,192,193,'CTAAAA','ZNGAAA','VVVVxx' +4563,4420,1,3,3,3,63,563,563,4563,4563,126,127,'NTAAAA','AOGAAA','AAAAxx' +1037,4421,1,1,7,17,37,37,1037,1037,1037,74,75,'XNAAAA','BOGAAA','HHHHxx' +9672,4422,0,0,2,12,72,672,1672,4672,9672,144,145,'AIAAAA','COGAAA','OOOOxx' +9053,4423,1,1,3,13,53,53,1053,4053,9053,106,107,'FKAAAA','DOGAAA','VVVVxx' +2523,4424,1,3,3,3,23,523,523,2523,2523,46,47,'BTAAAA','EOGAAA','AAAAxx' +8519,4425,1,3,9,19,19,519,519,3519,8519,38,39,'RPAAAA','FOGAAA','HHHHxx' +8190,4426,0,2,0,10,90,190,190,3190,8190,180,181,'ADAAAA','GOGAAA','OOOOxx' +2068,4427,0,0,8,8,68,68,68,2068,2068,136,137,'OBAAAA','HOGAAA','VVVVxx' +8569,4428,1,1,9,9,69,569,569,3569,8569,138,139,'PRAAAA','IOGAAA','AAAAxx' +6535,4429,1,3,5,15,35,535,535,1535,6535,70,71,'JRAAAA','JOGAAA','HHHHxx' +1810,4430,0,2,0,10,10,810,1810,1810,1810,20,21,'QRAAAA','KOGAAA','OOOOxx' +3099,4431,1,3,9,19,99,99,1099,3099,3099,198,199,'FPAAAA','LOGAAA','VVVVxx' +7466,4432,0,2,6,6,66,466,1466,2466,7466,132,133,'EBAAAA','MOGAAA','AAAAxx' +4017,4433,1,1,7,17,17,17,17,4017,4017,34,35,'NYAAAA','NOGAAA','HHHHxx' +1097,4434,1,1,7,17,97,97,1097,1097,1097,194,195,'FQAAAA','OOGAAA','OOOOxx' +7686,4435,0,2,6,6,86,686,1686,2686,7686,172,173,'QJAAAA','POGAAA','VVVVxx' +6742,4436,0,2,2,2,42,742,742,1742,6742,84,85,'IZAAAA','QOGAAA','AAAAxx' +5966,4437,0,2,6,6,66,966,1966,966,5966,132,133,'MVAAAA','ROGAAA','HHHHxx' +3632,4438,0,0,2,12,32,632,1632,3632,3632,64,65,'SJAAAA','SOGAAA','OOOOxx' +8837,4439,1,1,7,17,37,837,837,3837,8837,74,75,'XBAAAA','TOGAAA','VVVVxx' +1667,4440,1,3,7,7,67,667,1667,1667,1667,134,135,'DMAAAA','UOGAAA','AAAAxx' +8833,4441,1,1,3,13,33,833,833,3833,8833,66,67,'TBAAAA','VOGAAA','HHHHxx' +9805,4442,1,1,5,5,5,805,1805,4805,9805,10,11,'DNAAAA','WOGAAA','OOOOxx' +3650,4443,0,2,0,10,50,650,1650,3650,3650,100,101,'KKAAAA','XOGAAA','VVVVxx' +2237,4444,1,1,7,17,37,237,237,2237,2237,74,75,'BIAAAA','YOGAAA','AAAAxx' +9980,4445,0,0,0,0,80,980,1980,4980,9980,160,161,'WTAAAA','ZOGAAA','HHHHxx' +2861,4446,1,1,1,1,61,861,861,2861,2861,122,123,'BGAAAA','APGAAA','OOOOxx' +1334,4447,0,2,4,14,34,334,1334,1334,1334,68,69,'IZAAAA','BPGAAA','VVVVxx' +842,4448,0,2,2,2,42,842,842,842,842,84,85,'KGAAAA','CPGAAA','AAAAxx' +1116,4449,0,0,6,16,16,116,1116,1116,1116,32,33,'YQAAAA','DPGAAA','HHHHxx' +4055,4450,1,3,5,15,55,55,55,4055,4055,110,111,'ZZAAAA','EPGAAA','OOOOxx' +3842,4451,0,2,2,2,42,842,1842,3842,3842,84,85,'URAAAA','FPGAAA','VVVVxx' +1886,4452,0,2,6,6,86,886,1886,1886,1886,172,173,'OUAAAA','GPGAAA','AAAAxx' +8589,4453,1,1,9,9,89,589,589,3589,8589,178,179,'JSAAAA','HPGAAA','HHHHxx' +5873,4454,1,1,3,13,73,873,1873,873,5873,146,147,'XRAAAA','IPGAAA','OOOOxx' +7711,4455,1,3,1,11,11,711,1711,2711,7711,22,23,'PKAAAA','JPGAAA','VVVVxx' +911,4456,1,3,1,11,11,911,911,911,911,22,23,'BJAAAA','KPGAAA','AAAAxx' +5837,4457,1,1,7,17,37,837,1837,837,5837,74,75,'NQAAAA','LPGAAA','HHHHxx' +897,4458,1,1,7,17,97,897,897,897,897,194,195,'NIAAAA','MPGAAA','OOOOxx' +4299,4459,1,3,9,19,99,299,299,4299,4299,198,199,'JJAAAA','NPGAAA','VVVVxx' +7774,4460,0,2,4,14,74,774,1774,2774,7774,148,149,'ANAAAA','OPGAAA','AAAAxx' +7832,4461,0,0,2,12,32,832,1832,2832,7832,64,65,'GPAAAA','PPGAAA','HHHHxx' +9915,4462,1,3,5,15,15,915,1915,4915,9915,30,31,'JRAAAA','QPGAAA','OOOOxx' +9,4463,1,1,9,9,9,9,9,9,9,18,19,'JAAAAA','RPGAAA','VVVVxx' +9675,4464,1,3,5,15,75,675,1675,4675,9675,150,151,'DIAAAA','SPGAAA','AAAAxx' +7953,4465,1,1,3,13,53,953,1953,2953,7953,106,107,'XTAAAA','TPGAAA','HHHHxx' +8912,4466,0,0,2,12,12,912,912,3912,8912,24,25,'UEAAAA','UPGAAA','OOOOxx' +4188,4467,0,0,8,8,88,188,188,4188,4188,176,177,'CFAAAA','VPGAAA','VVVVxx' +8446,4468,0,2,6,6,46,446,446,3446,8446,92,93,'WMAAAA','WPGAAA','AAAAxx' +1600,4469,0,0,0,0,0,600,1600,1600,1600,0,1,'OJAAAA','XPGAAA','HHHHxx' +43,4470,1,3,3,3,43,43,43,43,43,86,87,'RBAAAA','YPGAAA','OOOOxx' +544,4471,0,0,4,4,44,544,544,544,544,88,89,'YUAAAA','ZPGAAA','VVVVxx' +6977,4472,1,1,7,17,77,977,977,1977,6977,154,155,'JIAAAA','AQGAAA','AAAAxx' +3191,4473,1,3,1,11,91,191,1191,3191,3191,182,183,'TSAAAA','BQGAAA','HHHHxx' +418,4474,0,2,8,18,18,418,418,418,418,36,37,'CQAAAA','CQGAAA','OOOOxx' +3142,4475,0,2,2,2,42,142,1142,3142,3142,84,85,'WQAAAA','DQGAAA','VVVVxx' +5042,4476,0,2,2,2,42,42,1042,42,5042,84,85,'YLAAAA','EQGAAA','AAAAxx' +2194,4477,0,2,4,14,94,194,194,2194,2194,188,189,'KGAAAA','FQGAAA','HHHHxx' +2397,4478,1,1,7,17,97,397,397,2397,2397,194,195,'FOAAAA','GQGAAA','OOOOxx' +4684,4479,0,0,4,4,84,684,684,4684,4684,168,169,'EYAAAA','HQGAAA','VVVVxx' +34,4480,0,2,4,14,34,34,34,34,34,68,69,'IBAAAA','IQGAAA','AAAAxx' +3844,4481,0,0,4,4,44,844,1844,3844,3844,88,89,'WRAAAA','JQGAAA','HHHHxx' +7824,4482,0,0,4,4,24,824,1824,2824,7824,48,49,'YOAAAA','KQGAAA','OOOOxx' +6177,4483,1,1,7,17,77,177,177,1177,6177,154,155,'PDAAAA','LQGAAA','VVVVxx' +9657,4484,1,1,7,17,57,657,1657,4657,9657,114,115,'LHAAAA','MQGAAA','AAAAxx' +4546,4485,0,2,6,6,46,546,546,4546,4546,92,93,'WSAAAA','NQGAAA','HHHHxx' +599,4486,1,3,9,19,99,599,599,599,599,198,199,'BXAAAA','OQGAAA','OOOOxx' +153,4487,1,1,3,13,53,153,153,153,153,106,107,'XFAAAA','PQGAAA','VVVVxx' +6910,4488,0,2,0,10,10,910,910,1910,6910,20,21,'UFAAAA','QQGAAA','AAAAxx' +4408,4489,0,0,8,8,8,408,408,4408,4408,16,17,'ONAAAA','RQGAAA','HHHHxx' +1164,4490,0,0,4,4,64,164,1164,1164,1164,128,129,'USAAAA','SQGAAA','OOOOxx' +6469,4491,1,1,9,9,69,469,469,1469,6469,138,139,'VOAAAA','TQGAAA','VVVVxx' +5996,4492,0,0,6,16,96,996,1996,996,5996,192,193,'QWAAAA','UQGAAA','AAAAxx' +2639,4493,1,3,9,19,39,639,639,2639,2639,78,79,'NXAAAA','VQGAAA','HHHHxx' +2678,4494,0,2,8,18,78,678,678,2678,2678,156,157,'AZAAAA','WQGAAA','OOOOxx' +8392,4495,0,0,2,12,92,392,392,3392,8392,184,185,'UKAAAA','XQGAAA','VVVVxx' +1386,4496,0,2,6,6,86,386,1386,1386,1386,172,173,'IBAAAA','YQGAAA','AAAAxx' +5125,4497,1,1,5,5,25,125,1125,125,5125,50,51,'DPAAAA','ZQGAAA','HHHHxx' +8453,4498,1,1,3,13,53,453,453,3453,8453,106,107,'DNAAAA','ARGAAA','OOOOxx' +2369,4499,1,1,9,9,69,369,369,2369,2369,138,139,'DNAAAA','BRGAAA','VVVVxx' +1608,4500,0,0,8,8,8,608,1608,1608,1608,16,17,'WJAAAA','CRGAAA','AAAAxx' +3781,4501,1,1,1,1,81,781,1781,3781,3781,162,163,'LPAAAA','DRGAAA','HHHHxx' +903,4502,1,3,3,3,3,903,903,903,903,6,7,'TIAAAA','ERGAAA','OOOOxx' +2099,4503,1,3,9,19,99,99,99,2099,2099,198,199,'TCAAAA','FRGAAA','VVVVxx' +538,4504,0,2,8,18,38,538,538,538,538,76,77,'SUAAAA','GRGAAA','AAAAxx' +9177,4505,1,1,7,17,77,177,1177,4177,9177,154,155,'ZOAAAA','HRGAAA','HHHHxx' +420,4506,0,0,0,0,20,420,420,420,420,40,41,'EQAAAA','IRGAAA','OOOOxx' +9080,4507,0,0,0,0,80,80,1080,4080,9080,160,161,'GLAAAA','JRGAAA','VVVVxx' +2630,4508,0,2,0,10,30,630,630,2630,2630,60,61,'EXAAAA','KRGAAA','AAAAxx' +5978,4509,0,2,8,18,78,978,1978,978,5978,156,157,'YVAAAA','LRGAAA','HHHHxx' +9239,4510,1,3,9,19,39,239,1239,4239,9239,78,79,'JRAAAA','MRGAAA','OOOOxx' +4372,4511,0,0,2,12,72,372,372,4372,4372,144,145,'EMAAAA','NRGAAA','VVVVxx' +4357,4512,1,1,7,17,57,357,357,4357,4357,114,115,'PLAAAA','ORGAAA','AAAAxx' +9857,4513,1,1,7,17,57,857,1857,4857,9857,114,115,'DPAAAA','PRGAAA','HHHHxx' +7933,4514,1,1,3,13,33,933,1933,2933,7933,66,67,'DTAAAA','QRGAAA','OOOOxx' +9574,4515,0,2,4,14,74,574,1574,4574,9574,148,149,'GEAAAA','RRGAAA','VVVVxx' +8294,4516,0,2,4,14,94,294,294,3294,8294,188,189,'AHAAAA','SRGAAA','AAAAxx' +627,4517,1,3,7,7,27,627,627,627,627,54,55,'DYAAAA','TRGAAA','HHHHxx' +3229,4518,1,1,9,9,29,229,1229,3229,3229,58,59,'FUAAAA','URGAAA','OOOOxx' +3163,4519,1,3,3,3,63,163,1163,3163,3163,126,127,'RRAAAA','VRGAAA','VVVVxx' +7349,4520,1,1,9,9,49,349,1349,2349,7349,98,99,'RWAAAA','WRGAAA','AAAAxx' +6889,4521,1,1,9,9,89,889,889,1889,6889,178,179,'ZEAAAA','XRGAAA','HHHHxx' +2101,4522,1,1,1,1,1,101,101,2101,2101,2,3,'VCAAAA','YRGAAA','OOOOxx' +6476,4523,0,0,6,16,76,476,476,1476,6476,152,153,'CPAAAA','ZRGAAA','VVVVxx' +6765,4524,1,1,5,5,65,765,765,1765,6765,130,131,'FAAAAA','ASGAAA','AAAAxx' +4204,4525,0,0,4,4,4,204,204,4204,4204,8,9,'SFAAAA','BSGAAA','HHHHxx' +5915,4526,1,3,5,15,15,915,1915,915,5915,30,31,'NTAAAA','CSGAAA','OOOOxx' +2318,4527,0,2,8,18,18,318,318,2318,2318,36,37,'ELAAAA','DSGAAA','VVVVxx' +294,4528,0,2,4,14,94,294,294,294,294,188,189,'ILAAAA','ESGAAA','AAAAxx' +5245,4529,1,1,5,5,45,245,1245,245,5245,90,91,'TTAAAA','FSGAAA','HHHHxx' +4481,4530,1,1,1,1,81,481,481,4481,4481,162,163,'JQAAAA','GSGAAA','OOOOxx' +7754,4531,0,2,4,14,54,754,1754,2754,7754,108,109,'GMAAAA','HSGAAA','VVVVxx' +8494,4532,0,2,4,14,94,494,494,3494,8494,188,189,'SOAAAA','ISGAAA','AAAAxx' +4014,4533,0,2,4,14,14,14,14,4014,4014,28,29,'KYAAAA','JSGAAA','HHHHxx' +2197,4534,1,1,7,17,97,197,197,2197,2197,194,195,'NGAAAA','KSGAAA','OOOOxx' +1297,4535,1,1,7,17,97,297,1297,1297,1297,194,195,'XXAAAA','LSGAAA','VVVVxx' +1066,4536,0,2,6,6,66,66,1066,1066,1066,132,133,'APAAAA','MSGAAA','AAAAxx' +5710,4537,0,2,0,10,10,710,1710,710,5710,20,21,'QLAAAA','NSGAAA','HHHHxx' +4100,4538,0,0,0,0,0,100,100,4100,4100,0,1,'SBAAAA','OSGAAA','OOOOxx' +7356,4539,0,0,6,16,56,356,1356,2356,7356,112,113,'YWAAAA','PSGAAA','VVVVxx' +7658,4540,0,2,8,18,58,658,1658,2658,7658,116,117,'OIAAAA','QSGAAA','AAAAxx' +3666,4541,0,2,6,6,66,666,1666,3666,3666,132,133,'ALAAAA','RSGAAA','HHHHxx' +9713,4542,1,1,3,13,13,713,1713,4713,9713,26,27,'PJAAAA','SSGAAA','OOOOxx' +691,4543,1,3,1,11,91,691,691,691,691,182,183,'PAAAAA','TSGAAA','VVVVxx' +3112,4544,0,0,2,12,12,112,1112,3112,3112,24,25,'SPAAAA','USGAAA','AAAAxx' +6035,4545,1,3,5,15,35,35,35,1035,6035,70,71,'DYAAAA','VSGAAA','HHHHxx' +8353,4546,1,1,3,13,53,353,353,3353,8353,106,107,'HJAAAA','WSGAAA','OOOOxx' +5679,4547,1,3,9,19,79,679,1679,679,5679,158,159,'LKAAAA','XSGAAA','VVVVxx' +2124,4548,0,0,4,4,24,124,124,2124,2124,48,49,'SDAAAA','YSGAAA','AAAAxx' +4714,4549,0,2,4,14,14,714,714,4714,4714,28,29,'IZAAAA','ZSGAAA','HHHHxx' +9048,4550,0,0,8,8,48,48,1048,4048,9048,96,97,'AKAAAA','ATGAAA','OOOOxx' +7692,4551,0,0,2,12,92,692,1692,2692,7692,184,185,'WJAAAA','BTGAAA','VVVVxx' +4542,4552,0,2,2,2,42,542,542,4542,4542,84,85,'SSAAAA','CTGAAA','AAAAxx' +8737,4553,1,1,7,17,37,737,737,3737,8737,74,75,'BYAAAA','DTGAAA','HHHHxx' +4977,4554,1,1,7,17,77,977,977,4977,4977,154,155,'LJAAAA','ETGAAA','OOOOxx' +9349,4555,1,1,9,9,49,349,1349,4349,9349,98,99,'PVAAAA','FTGAAA','VVVVxx' +731,4556,1,3,1,11,31,731,731,731,731,62,63,'DCAAAA','GTGAAA','AAAAxx' +1788,4557,0,0,8,8,88,788,1788,1788,1788,176,177,'UQAAAA','HTGAAA','HHHHxx' +7830,4558,0,2,0,10,30,830,1830,2830,7830,60,61,'EPAAAA','ITGAAA','OOOOxx' +3977,4559,1,1,7,17,77,977,1977,3977,3977,154,155,'ZWAAAA','JTGAAA','VVVVxx' +2421,4560,1,1,1,1,21,421,421,2421,2421,42,43,'DPAAAA','KTGAAA','AAAAxx' +5891,4561,1,3,1,11,91,891,1891,891,5891,182,183,'PSAAAA','LTGAAA','HHHHxx' +1111,4562,1,3,1,11,11,111,1111,1111,1111,22,23,'TQAAAA','MTGAAA','OOOOxx' +9224,4563,0,0,4,4,24,224,1224,4224,9224,48,49,'UQAAAA','NTGAAA','VVVVxx' +9872,4564,0,0,2,12,72,872,1872,4872,9872,144,145,'SPAAAA','OTGAAA','AAAAxx' +2433,4565,1,1,3,13,33,433,433,2433,2433,66,67,'PPAAAA','PTGAAA','HHHHxx' +1491,4566,1,3,1,11,91,491,1491,1491,1491,182,183,'JFAAAA','QTGAAA','OOOOxx' +6653,4567,1,1,3,13,53,653,653,1653,6653,106,107,'XVAAAA','RTGAAA','VVVVxx' +1907,4568,1,3,7,7,7,907,1907,1907,1907,14,15,'JVAAAA','STGAAA','AAAAxx' +889,4569,1,1,9,9,89,889,889,889,889,178,179,'FIAAAA','TTGAAA','HHHHxx' +561,4570,1,1,1,1,61,561,561,561,561,122,123,'PVAAAA','UTGAAA','OOOOxx' +7415,4571,1,3,5,15,15,415,1415,2415,7415,30,31,'FZAAAA','VTGAAA','VVVVxx' +2703,4572,1,3,3,3,3,703,703,2703,2703,6,7,'ZZAAAA','WTGAAA','AAAAxx' +2561,4573,1,1,1,1,61,561,561,2561,2561,122,123,'NUAAAA','XTGAAA','HHHHxx' +1257,4574,1,1,7,17,57,257,1257,1257,1257,114,115,'JWAAAA','YTGAAA','OOOOxx' +2390,4575,0,2,0,10,90,390,390,2390,2390,180,181,'YNAAAA','ZTGAAA','VVVVxx' +3915,4576,1,3,5,15,15,915,1915,3915,3915,30,31,'PUAAAA','AUGAAA','AAAAxx' +8476,4577,0,0,6,16,76,476,476,3476,8476,152,153,'AOAAAA','BUGAAA','HHHHxx' +607,4578,1,3,7,7,7,607,607,607,607,14,15,'JXAAAA','CUGAAA','OOOOxx' +3891,4579,1,3,1,11,91,891,1891,3891,3891,182,183,'RTAAAA','DUGAAA','VVVVxx' +7269,4580,1,1,9,9,69,269,1269,2269,7269,138,139,'PTAAAA','EUGAAA','AAAAxx' +9537,4581,1,1,7,17,37,537,1537,4537,9537,74,75,'VCAAAA','FUGAAA','HHHHxx' +8518,4582,0,2,8,18,18,518,518,3518,8518,36,37,'QPAAAA','GUGAAA','OOOOxx' +5221,4583,1,1,1,1,21,221,1221,221,5221,42,43,'VSAAAA','HUGAAA','VVVVxx' +3274,4584,0,2,4,14,74,274,1274,3274,3274,148,149,'YVAAAA','IUGAAA','AAAAxx' +6677,4585,1,1,7,17,77,677,677,1677,6677,154,155,'VWAAAA','JUGAAA','HHHHxx' +3114,4586,0,2,4,14,14,114,1114,3114,3114,28,29,'UPAAAA','KUGAAA','OOOOxx' +1966,4587,0,2,6,6,66,966,1966,1966,1966,132,133,'QXAAAA','LUGAAA','VVVVxx' +5941,4588,1,1,1,1,41,941,1941,941,5941,82,83,'NUAAAA','MUGAAA','AAAAxx' +9463,4589,1,3,3,3,63,463,1463,4463,9463,126,127,'ZZAAAA','NUGAAA','HHHHxx' +8966,4590,0,2,6,6,66,966,966,3966,8966,132,133,'WGAAAA','OUGAAA','OOOOxx' +4402,4591,0,2,2,2,2,402,402,4402,4402,4,5,'INAAAA','PUGAAA','VVVVxx' +3364,4592,0,0,4,4,64,364,1364,3364,3364,128,129,'KZAAAA','QUGAAA','AAAAxx' +3698,4593,0,2,8,18,98,698,1698,3698,3698,196,197,'GMAAAA','RUGAAA','HHHHxx' +4651,4594,1,3,1,11,51,651,651,4651,4651,102,103,'XWAAAA','SUGAAA','OOOOxx' +2127,4595,1,3,7,7,27,127,127,2127,2127,54,55,'VDAAAA','TUGAAA','VVVVxx' +3614,4596,0,2,4,14,14,614,1614,3614,3614,28,29,'AJAAAA','UUGAAA','AAAAxx' +5430,4597,0,2,0,10,30,430,1430,430,5430,60,61,'WAAAAA','VUGAAA','HHHHxx' +3361,4598,1,1,1,1,61,361,1361,3361,3361,122,123,'HZAAAA','WUGAAA','OOOOxx' +4798,4599,0,2,8,18,98,798,798,4798,4798,196,197,'OCAAAA','XUGAAA','VVVVxx' +8269,4600,1,1,9,9,69,269,269,3269,8269,138,139,'BGAAAA','YUGAAA','AAAAxx' +6458,4601,0,2,8,18,58,458,458,1458,6458,116,117,'KOAAAA','ZUGAAA','HHHHxx' +3358,4602,0,2,8,18,58,358,1358,3358,3358,116,117,'EZAAAA','AVGAAA','OOOOxx' +5898,4603,0,2,8,18,98,898,1898,898,5898,196,197,'WSAAAA','BVGAAA','VVVVxx' +1880,4604,0,0,0,0,80,880,1880,1880,1880,160,161,'IUAAAA','CVGAAA','AAAAxx' +782,4605,0,2,2,2,82,782,782,782,782,164,165,'CEAAAA','DVGAAA','HHHHxx' +3102,4606,0,2,2,2,2,102,1102,3102,3102,4,5,'IPAAAA','EVGAAA','OOOOxx' +6366,4607,0,2,6,6,66,366,366,1366,6366,132,133,'WKAAAA','FVGAAA','VVVVxx' +399,4608,1,3,9,19,99,399,399,399,399,198,199,'JPAAAA','GVGAAA','AAAAxx' +6773,4609,1,1,3,13,73,773,773,1773,6773,146,147,'NAAAAA','HVGAAA','HHHHxx' +7942,4610,0,2,2,2,42,942,1942,2942,7942,84,85,'MTAAAA','IVGAAA','OOOOxx' +6274,4611,0,2,4,14,74,274,274,1274,6274,148,149,'IHAAAA','JVGAAA','VVVVxx' +7447,4612,1,3,7,7,47,447,1447,2447,7447,94,95,'LAAAAA','KVGAAA','AAAAxx' +7648,4613,0,0,8,8,48,648,1648,2648,7648,96,97,'EIAAAA','LVGAAA','HHHHxx' +3997,4614,1,1,7,17,97,997,1997,3997,3997,194,195,'TXAAAA','MVGAAA','OOOOxx' +1759,4615,1,3,9,19,59,759,1759,1759,1759,118,119,'RPAAAA','NVGAAA','VVVVxx' +1785,4616,1,1,5,5,85,785,1785,1785,1785,170,171,'RQAAAA','OVGAAA','AAAAxx' +8930,4617,0,2,0,10,30,930,930,3930,8930,60,61,'MFAAAA','PVGAAA','HHHHxx' +7595,4618,1,3,5,15,95,595,1595,2595,7595,190,191,'DGAAAA','QVGAAA','OOOOxx' +6752,4619,0,0,2,12,52,752,752,1752,6752,104,105,'SZAAAA','RVGAAA','VVVVxx' +5635,4620,1,3,5,15,35,635,1635,635,5635,70,71,'TIAAAA','SVGAAA','AAAAxx' +1579,4621,1,3,9,19,79,579,1579,1579,1579,158,159,'TIAAAA','TVGAAA','HHHHxx' +7743,4622,1,3,3,3,43,743,1743,2743,7743,86,87,'VLAAAA','UVGAAA','OOOOxx' +5856,4623,0,0,6,16,56,856,1856,856,5856,112,113,'GRAAAA','VVGAAA','VVVVxx' +7273,4624,1,1,3,13,73,273,1273,2273,7273,146,147,'TTAAAA','WVGAAA','AAAAxx' +1399,4625,1,3,9,19,99,399,1399,1399,1399,198,199,'VBAAAA','XVGAAA','HHHHxx' +3694,4626,0,2,4,14,94,694,1694,3694,3694,188,189,'CMAAAA','YVGAAA','OOOOxx' +2782,4627,0,2,2,2,82,782,782,2782,2782,164,165,'ADAAAA','ZVGAAA','VVVVxx' +6951,4628,1,3,1,11,51,951,951,1951,6951,102,103,'JHAAAA','AWGAAA','AAAAxx' +6053,4629,1,1,3,13,53,53,53,1053,6053,106,107,'VYAAAA','BWGAAA','HHHHxx' +1753,4630,1,1,3,13,53,753,1753,1753,1753,106,107,'LPAAAA','CWGAAA','OOOOxx' +3985,4631,1,1,5,5,85,985,1985,3985,3985,170,171,'HXAAAA','DWGAAA','VVVVxx' +6159,4632,1,3,9,19,59,159,159,1159,6159,118,119,'XCAAAA','EWGAAA','AAAAxx' +6250,4633,0,2,0,10,50,250,250,1250,6250,100,101,'KGAAAA','FWGAAA','HHHHxx' +6240,4634,0,0,0,0,40,240,240,1240,6240,80,81,'AGAAAA','GWGAAA','OOOOxx' +6571,4635,1,3,1,11,71,571,571,1571,6571,142,143,'TSAAAA','HWGAAA','VVVVxx' +8624,4636,0,0,4,4,24,624,624,3624,8624,48,49,'STAAAA','IWGAAA','AAAAxx' +9718,4637,0,2,8,18,18,718,1718,4718,9718,36,37,'UJAAAA','JWGAAA','HHHHxx' +5529,4638,1,1,9,9,29,529,1529,529,5529,58,59,'REAAAA','KWGAAA','OOOOxx' +7089,4639,1,1,9,9,89,89,1089,2089,7089,178,179,'RMAAAA','LWGAAA','VVVVxx' +5488,4640,0,0,8,8,88,488,1488,488,5488,176,177,'CDAAAA','MWGAAA','AAAAxx' +5444,4641,0,0,4,4,44,444,1444,444,5444,88,89,'KBAAAA','NWGAAA','HHHHxx' +4899,4642,1,3,9,19,99,899,899,4899,4899,198,199,'LGAAAA','OWGAAA','OOOOxx' +7928,4643,0,0,8,8,28,928,1928,2928,7928,56,57,'YSAAAA','PWGAAA','VVVVxx' +4736,4644,0,0,6,16,36,736,736,4736,4736,72,73,'EAAAAA','QWGAAA','AAAAxx' +4317,4645,1,1,7,17,17,317,317,4317,4317,34,35,'BKAAAA','RWGAAA','HHHHxx' +1174,4646,0,2,4,14,74,174,1174,1174,1174,148,149,'ETAAAA','SWGAAA','OOOOxx' +6138,4647,0,2,8,18,38,138,138,1138,6138,76,77,'CCAAAA','TWGAAA','VVVVxx' +3943,4648,1,3,3,3,43,943,1943,3943,3943,86,87,'RVAAAA','UWGAAA','AAAAxx' +1545,4649,1,1,5,5,45,545,1545,1545,1545,90,91,'LHAAAA','VWGAAA','HHHHxx' +6867,4650,1,3,7,7,67,867,867,1867,6867,134,135,'DEAAAA','WWGAAA','OOOOxx' +6832,4651,0,0,2,12,32,832,832,1832,6832,64,65,'UCAAAA','XWGAAA','VVVVxx' +2987,4652,1,3,7,7,87,987,987,2987,2987,174,175,'XKAAAA','YWGAAA','AAAAxx' +5169,4653,1,1,9,9,69,169,1169,169,5169,138,139,'VQAAAA','ZWGAAA','HHHHxx' +8998,4654,0,2,8,18,98,998,998,3998,8998,196,197,'CIAAAA','AXGAAA','OOOOxx' +9347,4655,1,3,7,7,47,347,1347,4347,9347,94,95,'NVAAAA','BXGAAA','VVVVxx' +4800,4656,0,0,0,0,0,800,800,4800,4800,0,1,'QCAAAA','CXGAAA','AAAAxx' +4200,4657,0,0,0,0,0,200,200,4200,4200,0,1,'OFAAAA','DXGAAA','HHHHxx' +4046,4658,0,2,6,6,46,46,46,4046,4046,92,93,'QZAAAA','EXGAAA','OOOOxx' +7142,4659,0,2,2,2,42,142,1142,2142,7142,84,85,'SOAAAA','FXGAAA','VVVVxx' +2733,4660,1,1,3,13,33,733,733,2733,2733,66,67,'DBAAAA','GXGAAA','AAAAxx' +1568,4661,0,0,8,8,68,568,1568,1568,1568,136,137,'IIAAAA','HXGAAA','HHHHxx' +5105,4662,1,1,5,5,5,105,1105,105,5105,10,11,'JOAAAA','IXGAAA','OOOOxx' +9115,4663,1,3,5,15,15,115,1115,4115,9115,30,31,'PMAAAA','JXGAAA','VVVVxx' +6475,4664,1,3,5,15,75,475,475,1475,6475,150,151,'BPAAAA','KXGAAA','AAAAxx' +3796,4665,0,0,6,16,96,796,1796,3796,3796,192,193,'AQAAAA','LXGAAA','HHHHxx' +5410,4666,0,2,0,10,10,410,1410,410,5410,20,21,'CAAAAA','MXGAAA','OOOOxx' +4023,4667,1,3,3,3,23,23,23,4023,4023,46,47,'TYAAAA','NXGAAA','VVVVxx' +8904,4668,0,0,4,4,4,904,904,3904,8904,8,9,'MEAAAA','OXGAAA','AAAAxx' +450,4669,0,2,0,10,50,450,450,450,450,100,101,'IRAAAA','PXGAAA','HHHHxx' +8087,4670,1,3,7,7,87,87,87,3087,8087,174,175,'BZAAAA','QXGAAA','OOOOxx' +6478,4671,0,2,8,18,78,478,478,1478,6478,156,157,'EPAAAA','RXGAAA','VVVVxx' +2696,4672,0,0,6,16,96,696,696,2696,2696,192,193,'SZAAAA','SXGAAA','AAAAxx' +1792,4673,0,0,2,12,92,792,1792,1792,1792,184,185,'YQAAAA','TXGAAA','HHHHxx' +9699,4674,1,3,9,19,99,699,1699,4699,9699,198,199,'BJAAAA','UXGAAA','OOOOxx' +9160,4675,0,0,0,0,60,160,1160,4160,9160,120,121,'IOAAAA','VXGAAA','VVVVxx' +9989,4676,1,1,9,9,89,989,1989,4989,9989,178,179,'FUAAAA','WXGAAA','AAAAxx' +9568,4677,0,0,8,8,68,568,1568,4568,9568,136,137,'AEAAAA','XXGAAA','HHHHxx' +487,4678,1,3,7,7,87,487,487,487,487,174,175,'TSAAAA','YXGAAA','OOOOxx' +7863,4679,1,3,3,3,63,863,1863,2863,7863,126,127,'LQAAAA','ZXGAAA','VVVVxx' +1884,4680,0,0,4,4,84,884,1884,1884,1884,168,169,'MUAAAA','AYGAAA','AAAAxx' +2651,4681,1,3,1,11,51,651,651,2651,2651,102,103,'ZXAAAA','BYGAAA','HHHHxx' +8285,4682,1,1,5,5,85,285,285,3285,8285,170,171,'RGAAAA','CYGAAA','OOOOxx' +3927,4683,1,3,7,7,27,927,1927,3927,3927,54,55,'BVAAAA','DYGAAA','VVVVxx' +4076,4684,0,0,6,16,76,76,76,4076,4076,152,153,'UAAAAA','EYGAAA','AAAAxx' +6149,4685,1,1,9,9,49,149,149,1149,6149,98,99,'NCAAAA','FYGAAA','HHHHxx' +6581,4686,1,1,1,1,81,581,581,1581,6581,162,163,'DTAAAA','GYGAAA','OOOOxx' +8293,4687,1,1,3,13,93,293,293,3293,8293,186,187,'ZGAAAA','HYGAAA','VVVVxx' +7665,4688,1,1,5,5,65,665,1665,2665,7665,130,131,'VIAAAA','IYGAAA','AAAAxx' +4435,4689,1,3,5,15,35,435,435,4435,4435,70,71,'POAAAA','JYGAAA','HHHHxx' +1271,4690,1,3,1,11,71,271,1271,1271,1271,142,143,'XWAAAA','KYGAAA','OOOOxx' +3928,4691,0,0,8,8,28,928,1928,3928,3928,56,57,'CVAAAA','LYGAAA','VVVVxx' +7045,4692,1,1,5,5,45,45,1045,2045,7045,90,91,'ZKAAAA','MYGAAA','AAAAxx' +4943,4693,1,3,3,3,43,943,943,4943,4943,86,87,'DIAAAA','NYGAAA','HHHHxx' +8473,4694,1,1,3,13,73,473,473,3473,8473,146,147,'XNAAAA','OYGAAA','OOOOxx' +1707,4695,1,3,7,7,7,707,1707,1707,1707,14,15,'RNAAAA','PYGAAA','VVVVxx' +7509,4696,1,1,9,9,9,509,1509,2509,7509,18,19,'VCAAAA','QYGAAA','AAAAxx' +1593,4697,1,1,3,13,93,593,1593,1593,1593,186,187,'HJAAAA','RYGAAA','HHHHxx' +9281,4698,1,1,1,1,81,281,1281,4281,9281,162,163,'ZSAAAA','SYGAAA','OOOOxx' +8986,4699,0,2,6,6,86,986,986,3986,8986,172,173,'QHAAAA','TYGAAA','VVVVxx' +3740,4700,0,0,0,0,40,740,1740,3740,3740,80,81,'WNAAAA','UYGAAA','AAAAxx' +9265,4701,1,1,5,5,65,265,1265,4265,9265,130,131,'JSAAAA','VYGAAA','HHHHxx' +1510,4702,0,2,0,10,10,510,1510,1510,1510,20,21,'CGAAAA','WYGAAA','OOOOxx' +3022,4703,0,2,2,2,22,22,1022,3022,3022,44,45,'GMAAAA','XYGAAA','VVVVxx' +9014,4704,0,2,4,14,14,14,1014,4014,9014,28,29,'SIAAAA','YYGAAA','AAAAxx' +6816,4705,0,0,6,16,16,816,816,1816,6816,32,33,'ECAAAA','ZYGAAA','HHHHxx' +5518,4706,0,2,8,18,18,518,1518,518,5518,36,37,'GEAAAA','AZGAAA','OOOOxx' +4451,4707,1,3,1,11,51,451,451,4451,4451,102,103,'FPAAAA','BZGAAA','VVVVxx' +8747,4708,1,3,7,7,47,747,747,3747,8747,94,95,'LYAAAA','CZGAAA','AAAAxx' +4646,4709,0,2,6,6,46,646,646,4646,4646,92,93,'SWAAAA','DZGAAA','HHHHxx' +7296,4710,0,0,6,16,96,296,1296,2296,7296,192,193,'QUAAAA','EZGAAA','OOOOxx' +9644,4711,0,0,4,4,44,644,1644,4644,9644,88,89,'YGAAAA','FZGAAA','VVVVxx' +5977,4712,1,1,7,17,77,977,1977,977,5977,154,155,'XVAAAA','GZGAAA','AAAAxx' +6270,4713,0,2,0,10,70,270,270,1270,6270,140,141,'EHAAAA','HZGAAA','HHHHxx' +5578,4714,0,2,8,18,78,578,1578,578,5578,156,157,'OGAAAA','IZGAAA','OOOOxx' +2465,4715,1,1,5,5,65,465,465,2465,2465,130,131,'VQAAAA','JZGAAA','VVVVxx' +6436,4716,0,0,6,16,36,436,436,1436,6436,72,73,'ONAAAA','KZGAAA','AAAAxx' +8089,4717,1,1,9,9,89,89,89,3089,8089,178,179,'DZAAAA','LZGAAA','HHHHxx' +2409,4718,1,1,9,9,9,409,409,2409,2409,18,19,'ROAAAA','MZGAAA','OOOOxx' +284,4719,0,0,4,4,84,284,284,284,284,168,169,'YKAAAA','NZGAAA','VVVVxx' +5576,4720,0,0,6,16,76,576,1576,576,5576,152,153,'MGAAAA','OZGAAA','AAAAxx' +6534,4721,0,2,4,14,34,534,534,1534,6534,68,69,'IRAAAA','PZGAAA','HHHHxx' +8848,4722,0,0,8,8,48,848,848,3848,8848,96,97,'ICAAAA','QZGAAA','OOOOxx' +4305,4723,1,1,5,5,5,305,305,4305,4305,10,11,'PJAAAA','RZGAAA','VVVVxx' +5574,4724,0,2,4,14,74,574,1574,574,5574,148,149,'KGAAAA','SZGAAA','AAAAxx' +596,4725,0,0,6,16,96,596,596,596,596,192,193,'YWAAAA','TZGAAA','HHHHxx' +1253,4726,1,1,3,13,53,253,1253,1253,1253,106,107,'FWAAAA','UZGAAA','OOOOxx' +521,4727,1,1,1,1,21,521,521,521,521,42,43,'BUAAAA','VZGAAA','VVVVxx' +8739,4728,1,3,9,19,39,739,739,3739,8739,78,79,'DYAAAA','WZGAAA','AAAAxx' +908,4729,0,0,8,8,8,908,908,908,908,16,17,'YIAAAA','XZGAAA','HHHHxx' +6937,4730,1,1,7,17,37,937,937,1937,6937,74,75,'VGAAAA','YZGAAA','OOOOxx' +4515,4731,1,3,5,15,15,515,515,4515,4515,30,31,'RRAAAA','ZZGAAA','VVVVxx' +8630,4732,0,2,0,10,30,630,630,3630,8630,60,61,'YTAAAA','AAHAAA','AAAAxx' +7518,4733,0,2,8,18,18,518,1518,2518,7518,36,37,'EDAAAA','BAHAAA','HHHHxx' +8300,4734,0,0,0,0,0,300,300,3300,8300,0,1,'GHAAAA','CAHAAA','OOOOxx' +8434,4735,0,2,4,14,34,434,434,3434,8434,68,69,'KMAAAA','DAHAAA','VVVVxx' +6000,4736,0,0,0,0,0,0,0,1000,6000,0,1,'UWAAAA','EAHAAA','AAAAxx' +4508,4737,0,0,8,8,8,508,508,4508,4508,16,17,'KRAAAA','FAHAAA','HHHHxx' +7861,4738,1,1,1,1,61,861,1861,2861,7861,122,123,'JQAAAA','GAHAAA','OOOOxx' +5953,4739,1,1,3,13,53,953,1953,953,5953,106,107,'ZUAAAA','HAHAAA','VVVVxx' +5063,4740,1,3,3,3,63,63,1063,63,5063,126,127,'TMAAAA','IAHAAA','AAAAxx' +4501,4741,1,1,1,1,1,501,501,4501,4501,2,3,'DRAAAA','JAHAAA','HHHHxx' +7092,4742,0,0,2,12,92,92,1092,2092,7092,184,185,'UMAAAA','KAHAAA','OOOOxx' +4388,4743,0,0,8,8,88,388,388,4388,4388,176,177,'UMAAAA','LAHAAA','VVVVxx' +1826,4744,0,2,6,6,26,826,1826,1826,1826,52,53,'GSAAAA','MAHAAA','AAAAxx' +568,4745,0,0,8,8,68,568,568,568,568,136,137,'WVAAAA','NAHAAA','HHHHxx' +8184,4746,0,0,4,4,84,184,184,3184,8184,168,169,'UCAAAA','OAHAAA','OOOOxx' +4268,4747,0,0,8,8,68,268,268,4268,4268,136,137,'EIAAAA','PAHAAA','VVVVxx' +5798,4748,0,2,8,18,98,798,1798,798,5798,196,197,'APAAAA','QAHAAA','AAAAxx' +5190,4749,0,2,0,10,90,190,1190,190,5190,180,181,'QRAAAA','RAHAAA','HHHHxx' +1298,4750,0,2,8,18,98,298,1298,1298,1298,196,197,'YXAAAA','SAHAAA','OOOOxx' +4035,4751,1,3,5,15,35,35,35,4035,4035,70,71,'FZAAAA','TAHAAA','VVVVxx' +4504,4752,0,0,4,4,4,504,504,4504,4504,8,9,'GRAAAA','UAHAAA','AAAAxx' +5992,4753,0,0,2,12,92,992,1992,992,5992,184,185,'MWAAAA','VAHAAA','HHHHxx' +770,4754,0,2,0,10,70,770,770,770,770,140,141,'QDAAAA','WAHAAA','OOOOxx' +7502,4755,0,2,2,2,2,502,1502,2502,7502,4,5,'OCAAAA','XAHAAA','VVVVxx' +824,4756,0,0,4,4,24,824,824,824,824,48,49,'SFAAAA','YAHAAA','AAAAxx' +7716,4757,0,0,6,16,16,716,1716,2716,7716,32,33,'UKAAAA','ZAHAAA','HHHHxx' +5749,4758,1,1,9,9,49,749,1749,749,5749,98,99,'DNAAAA','ABHAAA','OOOOxx' +9814,4759,0,2,4,14,14,814,1814,4814,9814,28,29,'MNAAAA','BBHAAA','VVVVxx' +350,4760,0,2,0,10,50,350,350,350,350,100,101,'MNAAAA','CBHAAA','AAAAxx' +1390,4761,0,2,0,10,90,390,1390,1390,1390,180,181,'MBAAAA','DBHAAA','HHHHxx' +6994,4762,0,2,4,14,94,994,994,1994,6994,188,189,'AJAAAA','EBHAAA','OOOOxx' +3629,4763,1,1,9,9,29,629,1629,3629,3629,58,59,'PJAAAA','FBHAAA','VVVVxx' +9937,4764,1,1,7,17,37,937,1937,4937,9937,74,75,'FSAAAA','GBHAAA','AAAAxx' +5285,4765,1,1,5,5,85,285,1285,285,5285,170,171,'HVAAAA','HBHAAA','HHHHxx' +3157,4766,1,1,7,17,57,157,1157,3157,3157,114,115,'LRAAAA','IBHAAA','OOOOxx' +9549,4767,1,1,9,9,49,549,1549,4549,9549,98,99,'HDAAAA','JBHAAA','VVVVxx' +4118,4768,0,2,8,18,18,118,118,4118,4118,36,37,'KCAAAA','KBHAAA','AAAAxx' +756,4769,0,0,6,16,56,756,756,756,756,112,113,'CDAAAA','LBHAAA','HHHHxx' +5964,4770,0,0,4,4,64,964,1964,964,5964,128,129,'KVAAAA','MBHAAA','OOOOxx' +7701,4771,1,1,1,1,1,701,1701,2701,7701,2,3,'FKAAAA','NBHAAA','VVVVxx' +1242,4772,0,2,2,2,42,242,1242,1242,1242,84,85,'UVAAAA','OBHAAA','AAAAxx' +7890,4773,0,2,0,10,90,890,1890,2890,7890,180,181,'MRAAAA','PBHAAA','HHHHxx' +1991,4774,1,3,1,11,91,991,1991,1991,1991,182,183,'PYAAAA','QBHAAA','OOOOxx' +110,4775,0,2,0,10,10,110,110,110,110,20,21,'GEAAAA','RBHAAA','VVVVxx' +9334,4776,0,2,4,14,34,334,1334,4334,9334,68,69,'AVAAAA','SBHAAA','AAAAxx' +6231,4777,1,3,1,11,31,231,231,1231,6231,62,63,'RFAAAA','TBHAAA','HHHHxx' +9871,4778,1,3,1,11,71,871,1871,4871,9871,142,143,'RPAAAA','UBHAAA','OOOOxx' +9471,4779,1,3,1,11,71,471,1471,4471,9471,142,143,'HAAAAA','VBHAAA','VVVVxx' +2697,4780,1,1,7,17,97,697,697,2697,2697,194,195,'TZAAAA','WBHAAA','AAAAxx' +4761,4781,1,1,1,1,61,761,761,4761,4761,122,123,'DBAAAA','XBHAAA','HHHHxx' +8493,4782,1,1,3,13,93,493,493,3493,8493,186,187,'ROAAAA','YBHAAA','OOOOxx' +1045,4783,1,1,5,5,45,45,1045,1045,1045,90,91,'FOAAAA','ZBHAAA','VVVVxx' +3403,4784,1,3,3,3,3,403,1403,3403,3403,6,7,'XAAAAA','ACHAAA','AAAAxx' +9412,4785,0,0,2,12,12,412,1412,4412,9412,24,25,'AYAAAA','BCHAAA','HHHHxx' +7652,4786,0,0,2,12,52,652,1652,2652,7652,104,105,'IIAAAA','CCHAAA','OOOOxx' +5866,4787,0,2,6,6,66,866,1866,866,5866,132,133,'QRAAAA','DCHAAA','VVVVxx' +6942,4788,0,2,2,2,42,942,942,1942,6942,84,85,'AHAAAA','ECHAAA','AAAAxx' +9353,4789,1,1,3,13,53,353,1353,4353,9353,106,107,'TVAAAA','FCHAAA','HHHHxx' +2600,4790,0,0,0,0,0,600,600,2600,2600,0,1,'AWAAAA','GCHAAA','OOOOxx' +6971,4791,1,3,1,11,71,971,971,1971,6971,142,143,'DIAAAA','HCHAAA','VVVVxx' +5391,4792,1,3,1,11,91,391,1391,391,5391,182,183,'JZAAAA','ICHAAA','AAAAxx' +7654,4793,0,2,4,14,54,654,1654,2654,7654,108,109,'KIAAAA','JCHAAA','HHHHxx' +1797,4794,1,1,7,17,97,797,1797,1797,1797,194,195,'DRAAAA','KCHAAA','OOOOxx' +4530,4795,0,2,0,10,30,530,530,4530,4530,60,61,'GSAAAA','LCHAAA','VVVVxx' +3130,4796,0,2,0,10,30,130,1130,3130,3130,60,61,'KQAAAA','MCHAAA','AAAAxx' +9442,4797,0,2,2,2,42,442,1442,4442,9442,84,85,'EZAAAA','NCHAAA','HHHHxx' +6659,4798,1,3,9,19,59,659,659,1659,6659,118,119,'DWAAAA','OCHAAA','OOOOxx' +9714,4799,0,2,4,14,14,714,1714,4714,9714,28,29,'QJAAAA','PCHAAA','VVVVxx' +3660,4800,0,0,0,0,60,660,1660,3660,3660,120,121,'UKAAAA','QCHAAA','AAAAxx' +1906,4801,0,2,6,6,6,906,1906,1906,1906,12,13,'IVAAAA','RCHAAA','HHHHxx' +7927,4802,1,3,7,7,27,927,1927,2927,7927,54,55,'XSAAAA','SCHAAA','OOOOxx' +1767,4803,1,3,7,7,67,767,1767,1767,1767,134,135,'ZPAAAA','TCHAAA','VVVVxx' +5523,4804,1,3,3,3,23,523,1523,523,5523,46,47,'LEAAAA','UCHAAA','AAAAxx' +9289,4805,1,1,9,9,89,289,1289,4289,9289,178,179,'HTAAAA','VCHAAA','HHHHxx' +2717,4806,1,1,7,17,17,717,717,2717,2717,34,35,'NAAAAA','WCHAAA','OOOOxx' +4099,4807,1,3,9,19,99,99,99,4099,4099,198,199,'RBAAAA','XCHAAA','VVVVxx' +4387,4808,1,3,7,7,87,387,387,4387,4387,174,175,'TMAAAA','YCHAAA','AAAAxx' +8864,4809,0,0,4,4,64,864,864,3864,8864,128,129,'YCAAAA','ZCHAAA','HHHHxx' +1774,4810,0,2,4,14,74,774,1774,1774,1774,148,149,'GQAAAA','ADHAAA','OOOOxx' +6292,4811,0,0,2,12,92,292,292,1292,6292,184,185,'AIAAAA','BDHAAA','VVVVxx' +847,4812,1,3,7,7,47,847,847,847,847,94,95,'PGAAAA','CDHAAA','AAAAxx' +5954,4813,0,2,4,14,54,954,1954,954,5954,108,109,'AVAAAA','DDHAAA','HHHHxx' +8032,4814,0,0,2,12,32,32,32,3032,8032,64,65,'YWAAAA','EDHAAA','OOOOxx' +3295,4815,1,3,5,15,95,295,1295,3295,3295,190,191,'TWAAAA','FDHAAA','VVVVxx' +8984,4816,0,0,4,4,84,984,984,3984,8984,168,169,'OHAAAA','GDHAAA','AAAAxx' +7809,4817,1,1,9,9,9,809,1809,2809,7809,18,19,'JOAAAA','HDHAAA','HHHHxx' +1670,4818,0,2,0,10,70,670,1670,1670,1670,140,141,'GMAAAA','IDHAAA','OOOOxx' +7733,4819,1,1,3,13,33,733,1733,2733,7733,66,67,'LLAAAA','JDHAAA','VVVVxx' +6187,4820,1,3,7,7,87,187,187,1187,6187,174,175,'ZDAAAA','KDHAAA','AAAAxx' +9326,4821,0,2,6,6,26,326,1326,4326,9326,52,53,'SUAAAA','LDHAAA','HHHHxx' +2493,4822,1,1,3,13,93,493,493,2493,2493,186,187,'XRAAAA','MDHAAA','OOOOxx' +9512,4823,0,0,2,12,12,512,1512,4512,9512,24,25,'WBAAAA','NDHAAA','VVVVxx' +4342,4824,0,2,2,2,42,342,342,4342,4342,84,85,'ALAAAA','ODHAAA','AAAAxx' +5350,4825,0,2,0,10,50,350,1350,350,5350,100,101,'UXAAAA','PDHAAA','HHHHxx' +6009,4826,1,1,9,9,9,9,9,1009,6009,18,19,'DXAAAA','QDHAAA','OOOOxx' +1208,4827,0,0,8,8,8,208,1208,1208,1208,16,17,'MUAAAA','RDHAAA','VVVVxx' +7014,4828,0,2,4,14,14,14,1014,2014,7014,28,29,'UJAAAA','SDHAAA','AAAAxx' +2967,4829,1,3,7,7,67,967,967,2967,2967,134,135,'DKAAAA','TDHAAA','HHHHxx' +5831,4830,1,3,1,11,31,831,1831,831,5831,62,63,'HQAAAA','UDHAAA','OOOOxx' +3097,4831,1,1,7,17,97,97,1097,3097,3097,194,195,'DPAAAA','VDHAAA','VVVVxx' +1528,4832,0,0,8,8,28,528,1528,1528,1528,56,57,'UGAAAA','WDHAAA','AAAAxx' +6429,4833,1,1,9,9,29,429,429,1429,6429,58,59,'HNAAAA','XDHAAA','HHHHxx' +7320,4834,0,0,0,0,20,320,1320,2320,7320,40,41,'OVAAAA','YDHAAA','OOOOxx' +844,4835,0,0,4,4,44,844,844,844,844,88,89,'MGAAAA','ZDHAAA','VVVVxx' +7054,4836,0,2,4,14,54,54,1054,2054,7054,108,109,'ILAAAA','AEHAAA','AAAAxx' +1643,4837,1,3,3,3,43,643,1643,1643,1643,86,87,'FLAAAA','BEHAAA','HHHHxx' +7626,4838,0,2,6,6,26,626,1626,2626,7626,52,53,'IHAAAA','CEHAAA','OOOOxx' +8728,4839,0,0,8,8,28,728,728,3728,8728,56,57,'SXAAAA','DEHAAA','VVVVxx' +8277,4840,1,1,7,17,77,277,277,3277,8277,154,155,'JGAAAA','EEHAAA','AAAAxx' +189,4841,1,1,9,9,89,189,189,189,189,178,179,'HHAAAA','FEHAAA','HHHHxx' +3717,4842,1,1,7,17,17,717,1717,3717,3717,34,35,'ZMAAAA','GEHAAA','OOOOxx' +1020,4843,0,0,0,0,20,20,1020,1020,1020,40,41,'GNAAAA','HEHAAA','VVVVxx' +9234,4844,0,2,4,14,34,234,1234,4234,9234,68,69,'ERAAAA','IEHAAA','AAAAxx' +9541,4845,1,1,1,1,41,541,1541,4541,9541,82,83,'ZCAAAA','JEHAAA','HHHHxx' +380,4846,0,0,0,0,80,380,380,380,380,160,161,'QOAAAA','KEHAAA','OOOOxx' +397,4847,1,1,7,17,97,397,397,397,397,194,195,'HPAAAA','LEHAAA','VVVVxx' +835,4848,1,3,5,15,35,835,835,835,835,70,71,'DGAAAA','MEHAAA','AAAAxx' +347,4849,1,3,7,7,47,347,347,347,347,94,95,'JNAAAA','NEHAAA','HHHHxx' +2490,4850,0,2,0,10,90,490,490,2490,2490,180,181,'URAAAA','OEHAAA','OOOOxx' +605,4851,1,1,5,5,5,605,605,605,605,10,11,'HXAAAA','PEHAAA','VVVVxx' +7960,4852,0,0,0,0,60,960,1960,2960,7960,120,121,'EUAAAA','QEHAAA','AAAAxx' +9681,4853,1,1,1,1,81,681,1681,4681,9681,162,163,'JIAAAA','REHAAA','HHHHxx' +5753,4854,1,1,3,13,53,753,1753,753,5753,106,107,'HNAAAA','SEHAAA','OOOOxx' +1676,4855,0,0,6,16,76,676,1676,1676,1676,152,153,'MMAAAA','TEHAAA','VVVVxx' +5533,4856,1,1,3,13,33,533,1533,533,5533,66,67,'VEAAAA','UEHAAA','AAAAxx' +8958,4857,0,2,8,18,58,958,958,3958,8958,116,117,'OGAAAA','VEHAAA','HHHHxx' +664,4858,0,0,4,4,64,664,664,664,664,128,129,'OZAAAA','WEHAAA','OOOOxx' +3005,4859,1,1,5,5,5,5,1005,3005,3005,10,11,'PLAAAA','XEHAAA','VVVVxx' +8576,4860,0,0,6,16,76,576,576,3576,8576,152,153,'WRAAAA','YEHAAA','AAAAxx' +7304,4861,0,0,4,4,4,304,1304,2304,7304,8,9,'YUAAAA','ZEHAAA','HHHHxx' +3375,4862,1,3,5,15,75,375,1375,3375,3375,150,151,'VZAAAA','AFHAAA','OOOOxx' +6336,4863,0,0,6,16,36,336,336,1336,6336,72,73,'SJAAAA','BFHAAA','VVVVxx' +1392,4864,0,0,2,12,92,392,1392,1392,1392,184,185,'OBAAAA','CFHAAA','AAAAxx' +2925,4865,1,1,5,5,25,925,925,2925,2925,50,51,'NIAAAA','DFHAAA','HHHHxx' +1217,4866,1,1,7,17,17,217,1217,1217,1217,34,35,'VUAAAA','EFHAAA','OOOOxx' +3714,4867,0,2,4,14,14,714,1714,3714,3714,28,29,'WMAAAA','FFHAAA','VVVVxx' +2120,4868,0,0,0,0,20,120,120,2120,2120,40,41,'ODAAAA','GFHAAA','AAAAxx' +2845,4869,1,1,5,5,45,845,845,2845,2845,90,91,'LFAAAA','HFHAAA','HHHHxx' +3865,4870,1,1,5,5,65,865,1865,3865,3865,130,131,'RSAAAA','IFHAAA','OOOOxx' +124,4871,0,0,4,4,24,124,124,124,124,48,49,'UEAAAA','JFHAAA','VVVVxx' +865,4872,1,1,5,5,65,865,865,865,865,130,131,'HHAAAA','KFHAAA','AAAAxx' +9361,4873,1,1,1,1,61,361,1361,4361,9361,122,123,'BWAAAA','LFHAAA','HHHHxx' +6338,4874,0,2,8,18,38,338,338,1338,6338,76,77,'UJAAAA','MFHAAA','OOOOxx' +7330,4875,0,2,0,10,30,330,1330,2330,7330,60,61,'YVAAAA','NFHAAA','VVVVxx' +513,4876,1,1,3,13,13,513,513,513,513,26,27,'TTAAAA','OFHAAA','AAAAxx' +5001,4877,1,1,1,1,1,1,1001,1,5001,2,3,'JKAAAA','PFHAAA','HHHHxx' +549,4878,1,1,9,9,49,549,549,549,549,98,99,'DVAAAA','QFHAAA','OOOOxx' +1808,4879,0,0,8,8,8,808,1808,1808,1808,16,17,'ORAAAA','RFHAAA','VVVVxx' +7168,4880,0,0,8,8,68,168,1168,2168,7168,136,137,'SPAAAA','SFHAAA','AAAAxx' +9878,4881,0,2,8,18,78,878,1878,4878,9878,156,157,'YPAAAA','TFHAAA','HHHHxx' +233,4882,1,1,3,13,33,233,233,233,233,66,67,'ZIAAAA','UFHAAA','OOOOxx' +4262,4883,0,2,2,2,62,262,262,4262,4262,124,125,'YHAAAA','VFHAAA','VVVVxx' +7998,4884,0,2,8,18,98,998,1998,2998,7998,196,197,'QVAAAA','WFHAAA','AAAAxx' +2419,4885,1,3,9,19,19,419,419,2419,2419,38,39,'BPAAAA','XFHAAA','HHHHxx' +9960,4886,0,0,0,0,60,960,1960,4960,9960,120,121,'CTAAAA','YFHAAA','OOOOxx' +3523,4887,1,3,3,3,23,523,1523,3523,3523,46,47,'NFAAAA','ZFHAAA','VVVVxx' +5440,4888,0,0,0,0,40,440,1440,440,5440,80,81,'GBAAAA','AGHAAA','AAAAxx' +3030,4889,0,2,0,10,30,30,1030,3030,3030,60,61,'OMAAAA','BGHAAA','HHHHxx' +2745,4890,1,1,5,5,45,745,745,2745,2745,90,91,'PBAAAA','CGHAAA','OOOOxx' +7175,4891,1,3,5,15,75,175,1175,2175,7175,150,151,'ZPAAAA','DGHAAA','VVVVxx' +640,4892,0,0,0,0,40,640,640,640,640,80,81,'QYAAAA','EGHAAA','AAAAxx' +1798,4893,0,2,8,18,98,798,1798,1798,1798,196,197,'ERAAAA','FGHAAA','HHHHxx' +7499,4894,1,3,9,19,99,499,1499,2499,7499,198,199,'LCAAAA','GGHAAA','OOOOxx' +1924,4895,0,0,4,4,24,924,1924,1924,1924,48,49,'AWAAAA','HGHAAA','VVVVxx' +1327,4896,1,3,7,7,27,327,1327,1327,1327,54,55,'BZAAAA','IGHAAA','AAAAxx' +73,4897,1,1,3,13,73,73,73,73,73,146,147,'VCAAAA','JGHAAA','HHHHxx' +9558,4898,0,2,8,18,58,558,1558,4558,9558,116,117,'QDAAAA','KGHAAA','OOOOxx' +818,4899,0,2,8,18,18,818,818,818,818,36,37,'MFAAAA','LGHAAA','VVVVxx' +9916,4900,0,0,6,16,16,916,1916,4916,9916,32,33,'KRAAAA','MGHAAA','AAAAxx' +2978,4901,0,2,8,18,78,978,978,2978,2978,156,157,'OKAAAA','NGHAAA','HHHHxx' +8469,4902,1,1,9,9,69,469,469,3469,8469,138,139,'TNAAAA','OGHAAA','OOOOxx' +9845,4903,1,1,5,5,45,845,1845,4845,9845,90,91,'ROAAAA','PGHAAA','VVVVxx' +2326,4904,0,2,6,6,26,326,326,2326,2326,52,53,'MLAAAA','QGHAAA','AAAAxx' +4032,4905,0,0,2,12,32,32,32,4032,4032,64,65,'CZAAAA','RGHAAA','HHHHxx' +5604,4906,0,0,4,4,4,604,1604,604,5604,8,9,'OHAAAA','SGHAAA','OOOOxx' +9610,4907,0,2,0,10,10,610,1610,4610,9610,20,21,'QFAAAA','TGHAAA','VVVVxx' +5101,4908,1,1,1,1,1,101,1101,101,5101,2,3,'FOAAAA','UGHAAA','AAAAxx' +7246,4909,0,2,6,6,46,246,1246,2246,7246,92,93,'SSAAAA','VGHAAA','HHHHxx' +1292,4910,0,0,2,12,92,292,1292,1292,1292,184,185,'SXAAAA','WGHAAA','OOOOxx' +6235,4911,1,3,5,15,35,235,235,1235,6235,70,71,'VFAAAA','XGHAAA','VVVVxx' +1733,4912,1,1,3,13,33,733,1733,1733,1733,66,67,'ROAAAA','YGHAAA','AAAAxx' +4647,4913,1,3,7,7,47,647,647,4647,4647,94,95,'TWAAAA','ZGHAAA','HHHHxx' +258,4914,0,2,8,18,58,258,258,258,258,116,117,'YJAAAA','AHHAAA','OOOOxx' +8438,4915,0,2,8,18,38,438,438,3438,8438,76,77,'OMAAAA','BHHAAA','VVVVxx' +7869,4916,1,1,9,9,69,869,1869,2869,7869,138,139,'RQAAAA','CHHAAA','AAAAxx' +9691,4917,1,3,1,11,91,691,1691,4691,9691,182,183,'TIAAAA','DHHAAA','HHHHxx' +5422,4918,0,2,2,2,22,422,1422,422,5422,44,45,'OAAAAA','EHHAAA','OOOOxx' +9630,4919,0,2,0,10,30,630,1630,4630,9630,60,61,'KGAAAA','FHHAAA','VVVVxx' +4439,4920,1,3,9,19,39,439,439,4439,4439,78,79,'TOAAAA','GHHAAA','AAAAxx' +3140,4921,0,0,0,0,40,140,1140,3140,3140,80,81,'UQAAAA','HHHAAA','HHHHxx' +9111,4922,1,3,1,11,11,111,1111,4111,9111,22,23,'LMAAAA','IHHAAA','OOOOxx' +4606,4923,0,2,6,6,6,606,606,4606,4606,12,13,'EVAAAA','JHHAAA','VVVVxx' +8620,4924,0,0,0,0,20,620,620,3620,8620,40,41,'OTAAAA','KHHAAA','AAAAxx' +7849,4925,1,1,9,9,49,849,1849,2849,7849,98,99,'XPAAAA','LHHAAA','HHHHxx' +346,4926,0,2,6,6,46,346,346,346,346,92,93,'INAAAA','MHHAAA','OOOOxx' +9528,4927,0,0,8,8,28,528,1528,4528,9528,56,57,'MCAAAA','NHHAAA','VVVVxx' +1811,4928,1,3,1,11,11,811,1811,1811,1811,22,23,'RRAAAA','OHHAAA','AAAAxx' +6068,4929,0,0,8,8,68,68,68,1068,6068,136,137,'KZAAAA','PHHAAA','HHHHxx' +6260,4930,0,0,0,0,60,260,260,1260,6260,120,121,'UGAAAA','QHHAAA','OOOOxx' +5909,4931,1,1,9,9,9,909,1909,909,5909,18,19,'HTAAAA','RHHAAA','VVVVxx' +4518,4932,0,2,8,18,18,518,518,4518,4518,36,37,'URAAAA','SHHAAA','AAAAxx' +7530,4933,0,2,0,10,30,530,1530,2530,7530,60,61,'QDAAAA','THHAAA','HHHHxx' +3900,4934,0,0,0,0,0,900,1900,3900,3900,0,1,'AUAAAA','UHHAAA','OOOOxx' +3969,4935,1,1,9,9,69,969,1969,3969,3969,138,139,'RWAAAA','VHHAAA','VVVVxx' +8690,4936,0,2,0,10,90,690,690,3690,8690,180,181,'GWAAAA','WHHAAA','AAAAxx' +5532,4937,0,0,2,12,32,532,1532,532,5532,64,65,'UEAAAA','XHHAAA','HHHHxx' +5989,4938,1,1,9,9,89,989,1989,989,5989,178,179,'JWAAAA','YHHAAA','OOOOxx' +1870,4939,0,2,0,10,70,870,1870,1870,1870,140,141,'YTAAAA','ZHHAAA','VVVVxx' +1113,4940,1,1,3,13,13,113,1113,1113,1113,26,27,'VQAAAA','AIHAAA','AAAAxx' +5155,4941,1,3,5,15,55,155,1155,155,5155,110,111,'HQAAAA','BIHAAA','HHHHxx' +7460,4942,0,0,0,0,60,460,1460,2460,7460,120,121,'YAAAAA','CIHAAA','OOOOxx' +6217,4943,1,1,7,17,17,217,217,1217,6217,34,35,'DFAAAA','DIHAAA','VVVVxx' +8333,4944,1,1,3,13,33,333,333,3333,8333,66,67,'NIAAAA','EIHAAA','AAAAxx' +6341,4945,1,1,1,1,41,341,341,1341,6341,82,83,'XJAAAA','FIHAAA','HHHHxx' +6230,4946,0,2,0,10,30,230,230,1230,6230,60,61,'QFAAAA','GIHAAA','OOOOxx' +6902,4947,0,2,2,2,2,902,902,1902,6902,4,5,'MFAAAA','HIHAAA','VVVVxx' +670,4948,0,2,0,10,70,670,670,670,670,140,141,'UZAAAA','IIHAAA','AAAAxx' +805,4949,1,1,5,5,5,805,805,805,805,10,11,'ZEAAAA','JIHAAA','HHHHxx' +1340,4950,0,0,0,0,40,340,1340,1340,1340,80,81,'OZAAAA','KIHAAA','OOOOxx' +8649,4951,1,1,9,9,49,649,649,3649,8649,98,99,'RUAAAA','LIHAAA','VVVVxx' +3887,4952,1,3,7,7,87,887,1887,3887,3887,174,175,'NTAAAA','MIHAAA','AAAAxx' +5400,4953,0,0,0,0,0,400,1400,400,5400,0,1,'SZAAAA','NIHAAA','HHHHxx' +4354,4954,0,2,4,14,54,354,354,4354,4354,108,109,'MLAAAA','OIHAAA','OOOOxx' +950,4955,0,2,0,10,50,950,950,950,950,100,101,'OKAAAA','PIHAAA','VVVVxx' +1544,4956,0,0,4,4,44,544,1544,1544,1544,88,89,'KHAAAA','QIHAAA','AAAAxx' +3898,4957,0,2,8,18,98,898,1898,3898,3898,196,197,'YTAAAA','RIHAAA','HHHHxx' +8038,4958,0,2,8,18,38,38,38,3038,8038,76,77,'EXAAAA','SIHAAA','OOOOxx' +1095,4959,1,3,5,15,95,95,1095,1095,1095,190,191,'DQAAAA','TIHAAA','VVVVxx' +1748,4960,0,0,8,8,48,748,1748,1748,1748,96,97,'GPAAAA','UIHAAA','AAAAxx' +9154,4961,0,2,4,14,54,154,1154,4154,9154,108,109,'COAAAA','VIHAAA','HHHHxx' +2182,4962,0,2,2,2,82,182,182,2182,2182,164,165,'YFAAAA','WIHAAA','OOOOxx' +6797,4963,1,1,7,17,97,797,797,1797,6797,194,195,'LBAAAA','XIHAAA','VVVVxx' +9149,4964,1,1,9,9,49,149,1149,4149,9149,98,99,'XNAAAA','YIHAAA','AAAAxx' +7351,4965,1,3,1,11,51,351,1351,2351,7351,102,103,'TWAAAA','ZIHAAA','HHHHxx' +2820,4966,0,0,0,0,20,820,820,2820,2820,40,41,'MEAAAA','AJHAAA','OOOOxx' +9696,4967,0,0,6,16,96,696,1696,4696,9696,192,193,'YIAAAA','BJHAAA','VVVVxx' +253,4968,1,1,3,13,53,253,253,253,253,106,107,'TJAAAA','CJHAAA','AAAAxx' +3600,4969,0,0,0,0,0,600,1600,3600,3600,0,1,'MIAAAA','DJHAAA','HHHHxx' +3892,4970,0,0,2,12,92,892,1892,3892,3892,184,185,'STAAAA','EJHAAA','OOOOxx' +231,4971,1,3,1,11,31,231,231,231,231,62,63,'XIAAAA','FJHAAA','VVVVxx' +8331,4972,1,3,1,11,31,331,331,3331,8331,62,63,'LIAAAA','GJHAAA','AAAAxx' +403,4973,1,3,3,3,3,403,403,403,403,6,7,'NPAAAA','HJHAAA','HHHHxx' +8642,4974,0,2,2,2,42,642,642,3642,8642,84,85,'KUAAAA','IJHAAA','OOOOxx' +3118,4975,0,2,8,18,18,118,1118,3118,3118,36,37,'YPAAAA','JJHAAA','VVVVxx' +3835,4976,1,3,5,15,35,835,1835,3835,3835,70,71,'NRAAAA','KJHAAA','AAAAxx' +1117,4977,1,1,7,17,17,117,1117,1117,1117,34,35,'ZQAAAA','LJHAAA','HHHHxx' +7024,4978,0,0,4,4,24,24,1024,2024,7024,48,49,'EKAAAA','MJHAAA','OOOOxx' +2636,4979,0,0,6,16,36,636,636,2636,2636,72,73,'KXAAAA','NJHAAA','VVVVxx' +3778,4980,0,2,8,18,78,778,1778,3778,3778,156,157,'IPAAAA','OJHAAA','AAAAxx' +2003,4981,1,3,3,3,3,3,3,2003,2003,6,7,'BZAAAA','PJHAAA','HHHHxx' +5717,4982,1,1,7,17,17,717,1717,717,5717,34,35,'XLAAAA','QJHAAA','OOOOxx' +4869,4983,1,1,9,9,69,869,869,4869,4869,138,139,'HFAAAA','RJHAAA','VVVVxx' +8921,4984,1,1,1,1,21,921,921,3921,8921,42,43,'DFAAAA','SJHAAA','AAAAxx' +888,4985,0,0,8,8,88,888,888,888,888,176,177,'EIAAAA','TJHAAA','HHHHxx' +7599,4986,1,3,9,19,99,599,1599,2599,7599,198,199,'HGAAAA','UJHAAA','OOOOxx' +8621,4987,1,1,1,1,21,621,621,3621,8621,42,43,'PTAAAA','VJHAAA','VVVVxx' +811,4988,1,3,1,11,11,811,811,811,811,22,23,'FFAAAA','WJHAAA','AAAAxx' +9147,4989,1,3,7,7,47,147,1147,4147,9147,94,95,'VNAAAA','XJHAAA','HHHHxx' +1413,4990,1,1,3,13,13,413,1413,1413,1413,26,27,'JCAAAA','YJHAAA','OOOOxx' +5232,4991,0,0,2,12,32,232,1232,232,5232,64,65,'GTAAAA','ZJHAAA','VVVVxx' +5912,4992,0,0,2,12,12,912,1912,912,5912,24,25,'KTAAAA','AKHAAA','AAAAxx' +3418,4993,0,2,8,18,18,418,1418,3418,3418,36,37,'MBAAAA','BKHAAA','HHHHxx' +3912,4994,0,0,2,12,12,912,1912,3912,3912,24,25,'MUAAAA','CKHAAA','OOOOxx' +9576,4995,0,0,6,16,76,576,1576,4576,9576,152,153,'IEAAAA','DKHAAA','VVVVxx' +4225,4996,1,1,5,5,25,225,225,4225,4225,50,51,'NGAAAA','EKHAAA','AAAAxx' +8222,4997,0,2,2,2,22,222,222,3222,8222,44,45,'GEAAAA','FKHAAA','HHHHxx' +7013,4998,1,1,3,13,13,13,1013,2013,7013,26,27,'TJAAAA','GKHAAA','OOOOxx' +7037,4999,1,1,7,17,37,37,1037,2037,7037,74,75,'RKAAAA','HKHAAA','VVVVxx' +1205,5000,1,1,5,5,5,205,1205,1205,1205,10,11,'JUAAAA','IKHAAA','AAAAxx' +8114,5001,0,2,4,14,14,114,114,3114,8114,28,29,'CAAAAA','JKHAAA','HHHHxx' +6585,5002,1,1,5,5,85,585,585,1585,6585,170,171,'HTAAAA','KKHAAA','OOOOxx' +155,5003,1,3,5,15,55,155,155,155,155,110,111,'ZFAAAA','LKHAAA','VVVVxx' +2841,5004,1,1,1,1,41,841,841,2841,2841,82,83,'HFAAAA','MKHAAA','AAAAxx' +1996,5005,0,0,6,16,96,996,1996,1996,1996,192,193,'UYAAAA','NKHAAA','HHHHxx' +4948,5006,0,0,8,8,48,948,948,4948,4948,96,97,'IIAAAA','OKHAAA','OOOOxx' +3304,5007,0,0,4,4,4,304,1304,3304,3304,8,9,'CXAAAA','PKHAAA','VVVVxx' +5684,5008,0,0,4,4,84,684,1684,684,5684,168,169,'QKAAAA','QKHAAA','AAAAxx' +6962,5009,0,2,2,2,62,962,962,1962,6962,124,125,'UHAAAA','RKHAAA','HHHHxx' +8691,5010,1,3,1,11,91,691,691,3691,8691,182,183,'HWAAAA','SKHAAA','OOOOxx' +8501,5011,1,1,1,1,1,501,501,3501,8501,2,3,'ZOAAAA','TKHAAA','VVVVxx' +4783,5012,1,3,3,3,83,783,783,4783,4783,166,167,'ZBAAAA','UKHAAA','AAAAxx' +3762,5013,0,2,2,2,62,762,1762,3762,3762,124,125,'SOAAAA','VKHAAA','HHHHxx' +4534,5014,0,2,4,14,34,534,534,4534,4534,68,69,'KSAAAA','WKHAAA','OOOOxx' +4999,5015,1,3,9,19,99,999,999,4999,4999,198,199,'HKAAAA','XKHAAA','VVVVxx' +4618,5016,0,2,8,18,18,618,618,4618,4618,36,37,'QVAAAA','YKHAAA','AAAAxx' +4220,5017,0,0,0,0,20,220,220,4220,4220,40,41,'IGAAAA','ZKHAAA','HHHHxx' +3384,5018,0,0,4,4,84,384,1384,3384,3384,168,169,'EAAAAA','ALHAAA','OOOOxx' +3036,5019,0,0,6,16,36,36,1036,3036,3036,72,73,'UMAAAA','BLHAAA','VVVVxx' +545,5020,1,1,5,5,45,545,545,545,545,90,91,'ZUAAAA','CLHAAA','AAAAxx' +9946,5021,0,2,6,6,46,946,1946,4946,9946,92,93,'OSAAAA','DLHAAA','HHHHxx' +1985,5022,1,1,5,5,85,985,1985,1985,1985,170,171,'JYAAAA','ELHAAA','OOOOxx' +2310,5023,0,2,0,10,10,310,310,2310,2310,20,21,'WKAAAA','FLHAAA','VVVVxx' +6563,5024,1,3,3,3,63,563,563,1563,6563,126,127,'LSAAAA','GLHAAA','AAAAxx' +4886,5025,0,2,6,6,86,886,886,4886,4886,172,173,'YFAAAA','HLHAAA','HHHHxx' +9359,5026,1,3,9,19,59,359,1359,4359,9359,118,119,'ZVAAAA','ILHAAA','OOOOxx' +400,5027,0,0,0,0,0,400,400,400,400,0,1,'KPAAAA','JLHAAA','VVVVxx' +9742,5028,0,2,2,2,42,742,1742,4742,9742,84,85,'SKAAAA','KLHAAA','AAAAxx' +6736,5029,0,0,6,16,36,736,736,1736,6736,72,73,'CZAAAA','LLHAAA','HHHHxx' +8166,5030,0,2,6,6,66,166,166,3166,8166,132,133,'CCAAAA','MLHAAA','OOOOxx' +861,5031,1,1,1,1,61,861,861,861,861,122,123,'DHAAAA','NLHAAA','VVVVxx' +7492,5032,0,0,2,12,92,492,1492,2492,7492,184,185,'ECAAAA','OLHAAA','AAAAxx' +1155,5033,1,3,5,15,55,155,1155,1155,1155,110,111,'LSAAAA','PLHAAA','HHHHxx' +9769,5034,1,1,9,9,69,769,1769,4769,9769,138,139,'TLAAAA','QLHAAA','OOOOxx' +6843,5035,1,3,3,3,43,843,843,1843,6843,86,87,'FDAAAA','RLHAAA','VVVVxx' +5625,5036,1,1,5,5,25,625,1625,625,5625,50,51,'JIAAAA','SLHAAA','AAAAxx' +1910,5037,0,2,0,10,10,910,1910,1910,1910,20,21,'MVAAAA','TLHAAA','HHHHxx' +9796,5038,0,0,6,16,96,796,1796,4796,9796,192,193,'UMAAAA','ULHAAA','OOOOxx' +6950,5039,0,2,0,10,50,950,950,1950,6950,100,101,'IHAAAA','VLHAAA','VVVVxx' +3084,5040,0,0,4,4,84,84,1084,3084,3084,168,169,'QOAAAA','WLHAAA','AAAAxx' +2959,5041,1,3,9,19,59,959,959,2959,2959,118,119,'VJAAAA','XLHAAA','HHHHxx' +2093,5042,1,1,3,13,93,93,93,2093,2093,186,187,'NCAAAA','YLHAAA','OOOOxx' +2738,5043,0,2,8,18,38,738,738,2738,2738,76,77,'IBAAAA','ZLHAAA','VVVVxx' +6406,5044,0,2,6,6,6,406,406,1406,6406,12,13,'KMAAAA','AMHAAA','AAAAxx' +9082,5045,0,2,2,2,82,82,1082,4082,9082,164,165,'ILAAAA','BMHAAA','HHHHxx' +8568,5046,0,0,8,8,68,568,568,3568,8568,136,137,'ORAAAA','CMHAAA','OOOOxx' +3566,5047,0,2,6,6,66,566,1566,3566,3566,132,133,'EHAAAA','DMHAAA','VVVVxx' +3016,5048,0,0,6,16,16,16,1016,3016,3016,32,33,'AMAAAA','EMHAAA','AAAAxx' +1207,5049,1,3,7,7,7,207,1207,1207,1207,14,15,'LUAAAA','FMHAAA','HHHHxx' +4045,5050,1,1,5,5,45,45,45,4045,4045,90,91,'PZAAAA','GMHAAA','OOOOxx' +4173,5051,1,1,3,13,73,173,173,4173,4173,146,147,'NEAAAA','HMHAAA','VVVVxx' +3939,5052,1,3,9,19,39,939,1939,3939,3939,78,79,'NVAAAA','IMHAAA','AAAAxx' +9683,5053,1,3,3,3,83,683,1683,4683,9683,166,167,'LIAAAA','JMHAAA','HHHHxx' +1684,5054,0,0,4,4,84,684,1684,1684,1684,168,169,'UMAAAA','KMHAAA','OOOOxx' +9271,5055,1,3,1,11,71,271,1271,4271,9271,142,143,'PSAAAA','LMHAAA','VVVVxx' +9317,5056,1,1,7,17,17,317,1317,4317,9317,34,35,'JUAAAA','MMHAAA','AAAAxx' +5793,5057,1,1,3,13,93,793,1793,793,5793,186,187,'VOAAAA','NMHAAA','HHHHxx' +352,5058,0,0,2,12,52,352,352,352,352,104,105,'ONAAAA','OMHAAA','OOOOxx' +7328,5059,0,0,8,8,28,328,1328,2328,7328,56,57,'WVAAAA','PMHAAA','VVVVxx' +4582,5060,0,2,2,2,82,582,582,4582,4582,164,165,'GUAAAA','QMHAAA','AAAAxx' +7413,5061,1,1,3,13,13,413,1413,2413,7413,26,27,'DZAAAA','RMHAAA','HHHHxx' +6772,5062,0,0,2,12,72,772,772,1772,6772,144,145,'MAAAAA','SMHAAA','OOOOxx' +4973,5063,1,1,3,13,73,973,973,4973,4973,146,147,'HJAAAA','TMHAAA','VVVVxx' +7480,5064,0,0,0,0,80,480,1480,2480,7480,160,161,'SBAAAA','UMHAAA','AAAAxx' +5555,5065,1,3,5,15,55,555,1555,555,5555,110,111,'RFAAAA','VMHAAA','HHHHxx' +4227,5066,1,3,7,7,27,227,227,4227,4227,54,55,'PGAAAA','WMHAAA','OOOOxx' +4153,5067,1,1,3,13,53,153,153,4153,4153,106,107,'TDAAAA','XMHAAA','VVVVxx' +4601,5068,1,1,1,1,1,601,601,4601,4601,2,3,'ZUAAAA','YMHAAA','AAAAxx' +3782,5069,0,2,2,2,82,782,1782,3782,3782,164,165,'MPAAAA','ZMHAAA','HHHHxx' +3872,5070,0,0,2,12,72,872,1872,3872,3872,144,145,'YSAAAA','ANHAAA','OOOOxx' +893,5071,1,1,3,13,93,893,893,893,893,186,187,'JIAAAA','BNHAAA','VVVVxx' +2430,5072,0,2,0,10,30,430,430,2430,2430,60,61,'MPAAAA','CNHAAA','AAAAxx' +2591,5073,1,3,1,11,91,591,591,2591,2591,182,183,'RVAAAA','DNHAAA','HHHHxx' +264,5074,0,0,4,4,64,264,264,264,264,128,129,'EKAAAA','ENHAAA','OOOOxx' +6238,5075,0,2,8,18,38,238,238,1238,6238,76,77,'YFAAAA','FNHAAA','VVVVxx' +633,5076,1,1,3,13,33,633,633,633,633,66,67,'JYAAAA','GNHAAA','AAAAxx' +1029,5077,1,1,9,9,29,29,1029,1029,1029,58,59,'PNAAAA','HNHAAA','HHHHxx' +5934,5078,0,2,4,14,34,934,1934,934,5934,68,69,'GUAAAA','INHAAA','OOOOxx' +8694,5079,0,2,4,14,94,694,694,3694,8694,188,189,'KWAAAA','JNHAAA','VVVVxx' +7401,5080,1,1,1,1,1,401,1401,2401,7401,2,3,'RYAAAA','KNHAAA','AAAAxx' +1165,5081,1,1,5,5,65,165,1165,1165,1165,130,131,'VSAAAA','LNHAAA','HHHHxx' +9438,5082,0,2,8,18,38,438,1438,4438,9438,76,77,'AZAAAA','MNHAAA','OOOOxx' +4790,5083,0,2,0,10,90,790,790,4790,4790,180,181,'GCAAAA','NNHAAA','VVVVxx' +4531,5084,1,3,1,11,31,531,531,4531,4531,62,63,'HSAAAA','ONHAAA','AAAAxx' +6099,5085,1,3,9,19,99,99,99,1099,6099,198,199,'PAAAAA','PNHAAA','HHHHxx' +8236,5086,0,0,6,16,36,236,236,3236,8236,72,73,'UEAAAA','QNHAAA','OOOOxx' +8551,5087,1,3,1,11,51,551,551,3551,8551,102,103,'XQAAAA','RNHAAA','VVVVxx' +3128,5088,0,0,8,8,28,128,1128,3128,3128,56,57,'IQAAAA','SNHAAA','AAAAxx' +3504,5089,0,0,4,4,4,504,1504,3504,3504,8,9,'UEAAAA','TNHAAA','HHHHxx' +9071,5090,1,3,1,11,71,71,1071,4071,9071,142,143,'XKAAAA','UNHAAA','OOOOxx' +5930,5091,0,2,0,10,30,930,1930,930,5930,60,61,'CUAAAA','VNHAAA','VVVVxx' +6825,5092,1,1,5,5,25,825,825,1825,6825,50,51,'NCAAAA','WNHAAA','AAAAxx' +2218,5093,0,2,8,18,18,218,218,2218,2218,36,37,'IHAAAA','XNHAAA','HHHHxx' +3604,5094,0,0,4,4,4,604,1604,3604,3604,8,9,'QIAAAA','YNHAAA','OOOOxx' +5761,5095,1,1,1,1,61,761,1761,761,5761,122,123,'PNAAAA','ZNHAAA','VVVVxx' +5414,5096,0,2,4,14,14,414,1414,414,5414,28,29,'GAAAAA','AOHAAA','AAAAxx' +5892,5097,0,0,2,12,92,892,1892,892,5892,184,185,'QSAAAA','BOHAAA','HHHHxx' +4080,5098,0,0,0,0,80,80,80,4080,4080,160,161,'YAAAAA','COHAAA','OOOOxx' +8018,5099,0,2,8,18,18,18,18,3018,8018,36,37,'KWAAAA','DOHAAA','VVVVxx' +1757,5100,1,1,7,17,57,757,1757,1757,1757,114,115,'PPAAAA','EOHAAA','AAAAxx' +5854,5101,0,2,4,14,54,854,1854,854,5854,108,109,'ERAAAA','FOHAAA','HHHHxx' +1335,5102,1,3,5,15,35,335,1335,1335,1335,70,71,'JZAAAA','GOHAAA','OOOOxx' +3811,5103,1,3,1,11,11,811,1811,3811,3811,22,23,'PQAAAA','HOHAAA','VVVVxx' +9917,5104,1,1,7,17,17,917,1917,4917,9917,34,35,'LRAAAA','IOHAAA','AAAAxx' +5947,5105,1,3,7,7,47,947,1947,947,5947,94,95,'TUAAAA','JOHAAA','HHHHxx' +7263,5106,1,3,3,3,63,263,1263,2263,7263,126,127,'JTAAAA','KOHAAA','OOOOxx' +1730,5107,0,2,0,10,30,730,1730,1730,1730,60,61,'OOAAAA','LOHAAA','VVVVxx' +5747,5108,1,3,7,7,47,747,1747,747,5747,94,95,'BNAAAA','MOHAAA','AAAAxx' +3876,5109,0,0,6,16,76,876,1876,3876,3876,152,153,'CTAAAA','NOHAAA','HHHHxx' +2762,5110,0,2,2,2,62,762,762,2762,2762,124,125,'GCAAAA','OOHAAA','OOOOxx' +7613,5111,1,1,3,13,13,613,1613,2613,7613,26,27,'VGAAAA','POHAAA','VVVVxx' +152,5112,0,0,2,12,52,152,152,152,152,104,105,'WFAAAA','QOHAAA','AAAAxx' +3941,5113,1,1,1,1,41,941,1941,3941,3941,82,83,'PVAAAA','ROHAAA','HHHHxx' +5614,5114,0,2,4,14,14,614,1614,614,5614,28,29,'YHAAAA','SOHAAA','OOOOxx' +9279,5115,1,3,9,19,79,279,1279,4279,9279,158,159,'XSAAAA','TOHAAA','VVVVxx' +3048,5116,0,0,8,8,48,48,1048,3048,3048,96,97,'GNAAAA','UOHAAA','AAAAxx' +6152,5117,0,0,2,12,52,152,152,1152,6152,104,105,'QCAAAA','VOHAAA','HHHHxx' +5481,5118,1,1,1,1,81,481,1481,481,5481,162,163,'VCAAAA','WOHAAA','OOOOxx' +4675,5119,1,3,5,15,75,675,675,4675,4675,150,151,'VXAAAA','XOHAAA','VVVVxx' +3334,5120,0,2,4,14,34,334,1334,3334,3334,68,69,'GYAAAA','YOHAAA','AAAAxx' +4691,5121,1,3,1,11,91,691,691,4691,4691,182,183,'LYAAAA','ZOHAAA','HHHHxx' +803,5122,1,3,3,3,3,803,803,803,803,6,7,'XEAAAA','APHAAA','OOOOxx' +5409,5123,1,1,9,9,9,409,1409,409,5409,18,19,'BAAAAA','BPHAAA','VVVVxx' +1054,5124,0,2,4,14,54,54,1054,1054,1054,108,109,'OOAAAA','CPHAAA','AAAAxx' +103,5125,1,3,3,3,3,103,103,103,103,6,7,'ZDAAAA','DPHAAA','HHHHxx' +8565,5126,1,1,5,5,65,565,565,3565,8565,130,131,'LRAAAA','EPHAAA','OOOOxx' +4666,5127,0,2,6,6,66,666,666,4666,4666,132,133,'MXAAAA','FPHAAA','VVVVxx' +6634,5128,0,2,4,14,34,634,634,1634,6634,68,69,'EVAAAA','GPHAAA','AAAAxx' +5538,5129,0,2,8,18,38,538,1538,538,5538,76,77,'AFAAAA','HPHAAA','HHHHxx' +3789,5130,1,1,9,9,89,789,1789,3789,3789,178,179,'TPAAAA','IPHAAA','OOOOxx' +4641,5131,1,1,1,1,41,641,641,4641,4641,82,83,'NWAAAA','JPHAAA','VVVVxx' +2458,5132,0,2,8,18,58,458,458,2458,2458,116,117,'OQAAAA','KPHAAA','AAAAxx' +5667,5133,1,3,7,7,67,667,1667,667,5667,134,135,'ZJAAAA','LPHAAA','HHHHxx' +6524,5134,0,0,4,4,24,524,524,1524,6524,48,49,'YQAAAA','MPHAAA','OOOOxx' +9179,5135,1,3,9,19,79,179,1179,4179,9179,158,159,'BPAAAA','NPHAAA','VVVVxx' +6358,5136,0,2,8,18,58,358,358,1358,6358,116,117,'OKAAAA','OPHAAA','AAAAxx' +6668,5137,0,0,8,8,68,668,668,1668,6668,136,137,'MWAAAA','PPHAAA','HHHHxx' +6414,5138,0,2,4,14,14,414,414,1414,6414,28,29,'SMAAAA','QPHAAA','OOOOxx' +2813,5139,1,1,3,13,13,813,813,2813,2813,26,27,'FEAAAA','RPHAAA','VVVVxx' +8927,5140,1,3,7,7,27,927,927,3927,8927,54,55,'JFAAAA','SPHAAA','AAAAxx' +8695,5141,1,3,5,15,95,695,695,3695,8695,190,191,'LWAAAA','TPHAAA','HHHHxx' +363,5142,1,3,3,3,63,363,363,363,363,126,127,'ZNAAAA','UPHAAA','OOOOxx' +9966,5143,0,2,6,6,66,966,1966,4966,9966,132,133,'ITAAAA','VPHAAA','VVVVxx' +1323,5144,1,3,3,3,23,323,1323,1323,1323,46,47,'XYAAAA','WPHAAA','AAAAxx' +8211,5145,1,3,1,11,11,211,211,3211,8211,22,23,'VDAAAA','XPHAAA','HHHHxx' +4375,5146,1,3,5,15,75,375,375,4375,4375,150,151,'HMAAAA','YPHAAA','OOOOxx' +3257,5147,1,1,7,17,57,257,1257,3257,3257,114,115,'HVAAAA','ZPHAAA','VVVVxx' +6239,5148,1,3,9,19,39,239,239,1239,6239,78,79,'ZFAAAA','AQHAAA','AAAAxx' +3602,5149,0,2,2,2,2,602,1602,3602,3602,4,5,'OIAAAA','BQHAAA','HHHHxx' +9830,5150,0,2,0,10,30,830,1830,4830,9830,60,61,'COAAAA','CQHAAA','OOOOxx' +7826,5151,0,2,6,6,26,826,1826,2826,7826,52,53,'APAAAA','DQHAAA','VVVVxx' +2108,5152,0,0,8,8,8,108,108,2108,2108,16,17,'CDAAAA','EQHAAA','AAAAxx' +7245,5153,1,1,5,5,45,245,1245,2245,7245,90,91,'RSAAAA','FQHAAA','HHHHxx' +8330,5154,0,2,0,10,30,330,330,3330,8330,60,61,'KIAAAA','GQHAAA','OOOOxx' +7441,5155,1,1,1,1,41,441,1441,2441,7441,82,83,'FAAAAA','HQHAAA','VVVVxx' +9848,5156,0,0,8,8,48,848,1848,4848,9848,96,97,'UOAAAA','IQHAAA','AAAAxx' +1226,5157,0,2,6,6,26,226,1226,1226,1226,52,53,'EVAAAA','JQHAAA','HHHHxx' +414,5158,0,2,4,14,14,414,414,414,414,28,29,'YPAAAA','KQHAAA','OOOOxx' +1273,5159,1,1,3,13,73,273,1273,1273,1273,146,147,'ZWAAAA','LQHAAA','VVVVxx' +9866,5160,0,2,6,6,66,866,1866,4866,9866,132,133,'MPAAAA','MQHAAA','AAAAxx' +4633,5161,1,1,3,13,33,633,633,4633,4633,66,67,'FWAAAA','NQHAAA','HHHHxx' +8727,5162,1,3,7,7,27,727,727,3727,8727,54,55,'RXAAAA','OQHAAA','OOOOxx' +5308,5163,0,0,8,8,8,308,1308,308,5308,16,17,'EWAAAA','PQHAAA','VVVVxx' +1395,5164,1,3,5,15,95,395,1395,1395,1395,190,191,'RBAAAA','QQHAAA','AAAAxx' +1825,5165,1,1,5,5,25,825,1825,1825,1825,50,51,'FSAAAA','RQHAAA','HHHHxx' +7606,5166,0,2,6,6,6,606,1606,2606,7606,12,13,'OGAAAA','SQHAAA','OOOOxx' +9390,5167,0,2,0,10,90,390,1390,4390,9390,180,181,'EXAAAA','TQHAAA','VVVVxx' +2376,5168,0,0,6,16,76,376,376,2376,2376,152,153,'KNAAAA','UQHAAA','AAAAxx' +2377,5169,1,1,7,17,77,377,377,2377,2377,154,155,'LNAAAA','VQHAAA','HHHHxx' +5346,5170,0,2,6,6,46,346,1346,346,5346,92,93,'QXAAAA','WQHAAA','OOOOxx' +4140,5171,0,0,0,0,40,140,140,4140,4140,80,81,'GDAAAA','XQHAAA','VVVVxx' +6032,5172,0,0,2,12,32,32,32,1032,6032,64,65,'AYAAAA','YQHAAA','AAAAxx' +9453,5173,1,1,3,13,53,453,1453,4453,9453,106,107,'PZAAAA','ZQHAAA','HHHHxx' +9297,5174,1,1,7,17,97,297,1297,4297,9297,194,195,'PTAAAA','ARHAAA','OOOOxx' +6455,5175,1,3,5,15,55,455,455,1455,6455,110,111,'HOAAAA','BRHAAA','VVVVxx' +4458,5176,0,2,8,18,58,458,458,4458,4458,116,117,'MPAAAA','CRHAAA','AAAAxx' +9516,5177,0,0,6,16,16,516,1516,4516,9516,32,33,'ACAAAA','DRHAAA','HHHHxx' +6211,5178,1,3,1,11,11,211,211,1211,6211,22,23,'XEAAAA','ERHAAA','OOOOxx' +526,5179,0,2,6,6,26,526,526,526,526,52,53,'GUAAAA','FRHAAA','VVVVxx' +3570,5180,0,2,0,10,70,570,1570,3570,3570,140,141,'IHAAAA','GRHAAA','AAAAxx' +4885,5181,1,1,5,5,85,885,885,4885,4885,170,171,'XFAAAA','HRHAAA','HHHHxx' +6390,5182,0,2,0,10,90,390,390,1390,6390,180,181,'ULAAAA','IRHAAA','OOOOxx' +1606,5183,0,2,6,6,6,606,1606,1606,1606,12,13,'UJAAAA','JRHAAA','VVVVxx' +7850,5184,0,2,0,10,50,850,1850,2850,7850,100,101,'YPAAAA','KRHAAA','AAAAxx' +3315,5185,1,3,5,15,15,315,1315,3315,3315,30,31,'NXAAAA','LRHAAA','HHHHxx' +8322,5186,0,2,2,2,22,322,322,3322,8322,44,45,'CIAAAA','MRHAAA','OOOOxx' +3703,5187,1,3,3,3,3,703,1703,3703,3703,6,7,'LMAAAA','NRHAAA','VVVVxx' +9489,5188,1,1,9,9,89,489,1489,4489,9489,178,179,'ZAAAAA','ORHAAA','AAAAxx' +6104,5189,0,0,4,4,4,104,104,1104,6104,8,9,'UAAAAA','PRHAAA','HHHHxx' +3067,5190,1,3,7,7,67,67,1067,3067,3067,134,135,'ZNAAAA','QRHAAA','OOOOxx' +2521,5191,1,1,1,1,21,521,521,2521,2521,42,43,'ZSAAAA','RRHAAA','VVVVxx' +2581,5192,1,1,1,1,81,581,581,2581,2581,162,163,'HVAAAA','SRHAAA','AAAAxx' +595,5193,1,3,5,15,95,595,595,595,595,190,191,'XWAAAA','TRHAAA','HHHHxx' +8291,5194,1,3,1,11,91,291,291,3291,8291,182,183,'XGAAAA','URHAAA','OOOOxx' +1727,5195,1,3,7,7,27,727,1727,1727,1727,54,55,'LOAAAA','VRHAAA','VVVVxx' +6847,5196,1,3,7,7,47,847,847,1847,6847,94,95,'JDAAAA','WRHAAA','AAAAxx' +7494,5197,0,2,4,14,94,494,1494,2494,7494,188,189,'GCAAAA','XRHAAA','HHHHxx' +7093,5198,1,1,3,13,93,93,1093,2093,7093,186,187,'VMAAAA','YRHAAA','OOOOxx' +7357,5199,1,1,7,17,57,357,1357,2357,7357,114,115,'ZWAAAA','ZRHAAA','VVVVxx' +620,5200,0,0,0,0,20,620,620,620,620,40,41,'WXAAAA','ASHAAA','AAAAxx' +2460,5201,0,0,0,0,60,460,460,2460,2460,120,121,'QQAAAA','BSHAAA','HHHHxx' +1598,5202,0,2,8,18,98,598,1598,1598,1598,196,197,'MJAAAA','CSHAAA','OOOOxx' +4112,5203,0,0,2,12,12,112,112,4112,4112,24,25,'ECAAAA','DSHAAA','VVVVxx' +2956,5204,0,0,6,16,56,956,956,2956,2956,112,113,'SJAAAA','ESHAAA','AAAAxx' +3193,5205,1,1,3,13,93,193,1193,3193,3193,186,187,'VSAAAA','FSHAAA','HHHHxx' +6356,5206,0,0,6,16,56,356,356,1356,6356,112,113,'MKAAAA','GSHAAA','OOOOxx' +730,5207,0,2,0,10,30,730,730,730,730,60,61,'CCAAAA','HSHAAA','VVVVxx' +8826,5208,0,2,6,6,26,826,826,3826,8826,52,53,'MBAAAA','ISHAAA','AAAAxx' +9036,5209,0,0,6,16,36,36,1036,4036,9036,72,73,'OJAAAA','JSHAAA','HHHHxx' +2085,5210,1,1,5,5,85,85,85,2085,2085,170,171,'FCAAAA','KSHAAA','OOOOxx' +9007,5211,1,3,7,7,7,7,1007,4007,9007,14,15,'LIAAAA','LSHAAA','VVVVxx' +6047,5212,1,3,7,7,47,47,47,1047,6047,94,95,'PYAAAA','MSHAAA','AAAAxx' +3953,5213,1,1,3,13,53,953,1953,3953,3953,106,107,'BWAAAA','NSHAAA','HHHHxx' +1214,5214,0,2,4,14,14,214,1214,1214,1214,28,29,'SUAAAA','OSHAAA','OOOOxx' +4814,5215,0,2,4,14,14,814,814,4814,4814,28,29,'EDAAAA','PSHAAA','VVVVxx' +5738,5216,0,2,8,18,38,738,1738,738,5738,76,77,'SMAAAA','QSHAAA','AAAAxx' +7176,5217,0,0,6,16,76,176,1176,2176,7176,152,153,'AQAAAA','RSHAAA','HHHHxx' +3609,5218,1,1,9,9,9,609,1609,3609,3609,18,19,'VIAAAA','SSHAAA','OOOOxx' +592,5219,0,0,2,12,92,592,592,592,592,184,185,'UWAAAA','TSHAAA','VVVVxx' +9391,5220,1,3,1,11,91,391,1391,4391,9391,182,183,'FXAAAA','USHAAA','AAAAxx' +5345,5221,1,1,5,5,45,345,1345,345,5345,90,91,'PXAAAA','VSHAAA','HHHHxx' +1171,5222,1,3,1,11,71,171,1171,1171,1171,142,143,'BTAAAA','WSHAAA','OOOOxx' +7238,5223,0,2,8,18,38,238,1238,2238,7238,76,77,'KSAAAA','XSHAAA','VVVVxx' +7561,5224,1,1,1,1,61,561,1561,2561,7561,122,123,'VEAAAA','YSHAAA','AAAAxx' +5876,5225,0,0,6,16,76,876,1876,876,5876,152,153,'ASAAAA','ZSHAAA','HHHHxx' +6611,5226,1,3,1,11,11,611,611,1611,6611,22,23,'HUAAAA','ATHAAA','OOOOxx' +7300,5227,0,0,0,0,0,300,1300,2300,7300,0,1,'UUAAAA','BTHAAA','VVVVxx' +1506,5228,0,2,6,6,6,506,1506,1506,1506,12,13,'YFAAAA','CTHAAA','AAAAxx' +1153,5229,1,1,3,13,53,153,1153,1153,1153,106,107,'JSAAAA','DTHAAA','HHHHxx' +3831,5230,1,3,1,11,31,831,1831,3831,3831,62,63,'JRAAAA','ETHAAA','OOOOxx' +9255,5231,1,3,5,15,55,255,1255,4255,9255,110,111,'ZRAAAA','FTHAAA','VVVVxx' +1841,5232,1,1,1,1,41,841,1841,1841,1841,82,83,'VSAAAA','GTHAAA','AAAAxx' +5075,5233,1,3,5,15,75,75,1075,75,5075,150,151,'FNAAAA','HTHAAA','HHHHxx' +101,5234,1,1,1,1,1,101,101,101,101,2,3,'XDAAAA','ITHAAA','OOOOxx' +2627,5235,1,3,7,7,27,627,627,2627,2627,54,55,'BXAAAA','JTHAAA','VVVVxx' +7078,5236,0,2,8,18,78,78,1078,2078,7078,156,157,'GMAAAA','KTHAAA','AAAAxx' +2850,5237,0,2,0,10,50,850,850,2850,2850,100,101,'QFAAAA','LTHAAA','HHHHxx' +8703,5238,1,3,3,3,3,703,703,3703,8703,6,7,'TWAAAA','MTHAAA','OOOOxx' +4101,5239,1,1,1,1,1,101,101,4101,4101,2,3,'TBAAAA','NTHAAA','VVVVxx' +318,5240,0,2,8,18,18,318,318,318,318,36,37,'GMAAAA','OTHAAA','AAAAxx' +6452,5241,0,0,2,12,52,452,452,1452,6452,104,105,'EOAAAA','PTHAAA','HHHHxx' +5558,5242,0,2,8,18,58,558,1558,558,5558,116,117,'UFAAAA','QTHAAA','OOOOxx' +3127,5243,1,3,7,7,27,127,1127,3127,3127,54,55,'HQAAAA','RTHAAA','VVVVxx' +535,5244,1,3,5,15,35,535,535,535,535,70,71,'PUAAAA','STHAAA','AAAAxx' +270,5245,0,2,0,10,70,270,270,270,270,140,141,'KKAAAA','TTHAAA','HHHHxx' +4038,5246,0,2,8,18,38,38,38,4038,4038,76,77,'IZAAAA','UTHAAA','OOOOxx' +3404,5247,0,0,4,4,4,404,1404,3404,3404,8,9,'YAAAAA','VTHAAA','VVVVxx' +2374,5248,0,2,4,14,74,374,374,2374,2374,148,149,'INAAAA','WTHAAA','AAAAxx' +6446,5249,0,2,6,6,46,446,446,1446,6446,92,93,'YNAAAA','XTHAAA','HHHHxx' +7758,5250,0,2,8,18,58,758,1758,2758,7758,116,117,'KMAAAA','YTHAAA','OOOOxx' +356,5251,0,0,6,16,56,356,356,356,356,112,113,'SNAAAA','ZTHAAA','VVVVxx' +9197,5252,1,1,7,17,97,197,1197,4197,9197,194,195,'TPAAAA','AUHAAA','AAAAxx' +9765,5253,1,1,5,5,65,765,1765,4765,9765,130,131,'PLAAAA','BUHAAA','HHHHxx' +4974,5254,0,2,4,14,74,974,974,4974,4974,148,149,'IJAAAA','CUHAAA','OOOOxx' +442,5255,0,2,2,2,42,442,442,442,442,84,85,'ARAAAA','DUHAAA','VVVVxx' +4349,5256,1,1,9,9,49,349,349,4349,4349,98,99,'HLAAAA','EUHAAA','AAAAxx' +6119,5257,1,3,9,19,19,119,119,1119,6119,38,39,'JBAAAA','FUHAAA','HHHHxx' +7574,5258,0,2,4,14,74,574,1574,2574,7574,148,149,'IFAAAA','GUHAAA','OOOOxx' +4445,5259,1,1,5,5,45,445,445,4445,4445,90,91,'ZOAAAA','HUHAAA','VVVVxx' +940,5260,0,0,0,0,40,940,940,940,940,80,81,'EKAAAA','IUHAAA','AAAAxx' +1875,5261,1,3,5,15,75,875,1875,1875,1875,150,151,'DUAAAA','JUHAAA','HHHHxx' +5951,5262,1,3,1,11,51,951,1951,951,5951,102,103,'XUAAAA','KUHAAA','OOOOxx' +9132,5263,0,0,2,12,32,132,1132,4132,9132,64,65,'GNAAAA','LUHAAA','VVVVxx' +6913,5264,1,1,3,13,13,913,913,1913,6913,26,27,'XFAAAA','MUHAAA','AAAAxx' +3308,5265,0,0,8,8,8,308,1308,3308,3308,16,17,'GXAAAA','NUHAAA','HHHHxx' +7553,5266,1,1,3,13,53,553,1553,2553,7553,106,107,'NEAAAA','OUHAAA','OOOOxx' +2138,5267,0,2,8,18,38,138,138,2138,2138,76,77,'GEAAAA','PUHAAA','VVVVxx' +6252,5268,0,0,2,12,52,252,252,1252,6252,104,105,'MGAAAA','QUHAAA','AAAAxx' +2171,5269,1,3,1,11,71,171,171,2171,2171,142,143,'NFAAAA','RUHAAA','HHHHxx' +4159,5270,1,3,9,19,59,159,159,4159,4159,118,119,'ZDAAAA','SUHAAA','OOOOxx' +2401,5271,1,1,1,1,1,401,401,2401,2401,2,3,'JOAAAA','TUHAAA','VVVVxx' +6553,5272,1,1,3,13,53,553,553,1553,6553,106,107,'BSAAAA','UUHAAA','AAAAxx' +5217,5273,1,1,7,17,17,217,1217,217,5217,34,35,'RSAAAA','VUHAAA','HHHHxx' +1405,5274,1,1,5,5,5,405,1405,1405,1405,10,11,'BCAAAA','WUHAAA','OOOOxx' +1494,5275,0,2,4,14,94,494,1494,1494,1494,188,189,'MFAAAA','XUHAAA','VVVVxx' +5553,5276,1,1,3,13,53,553,1553,553,5553,106,107,'PFAAAA','YUHAAA','AAAAxx' +8296,5277,0,0,6,16,96,296,296,3296,8296,192,193,'CHAAAA','ZUHAAA','HHHHxx' +6565,5278,1,1,5,5,65,565,565,1565,6565,130,131,'NSAAAA','AVHAAA','OOOOxx' +817,5279,1,1,7,17,17,817,817,817,817,34,35,'LFAAAA','BVHAAA','VVVVxx' +6947,5280,1,3,7,7,47,947,947,1947,6947,94,95,'FHAAAA','CVHAAA','AAAAxx' +4184,5281,0,0,4,4,84,184,184,4184,4184,168,169,'YEAAAA','DVHAAA','HHHHxx' +6577,5282,1,1,7,17,77,577,577,1577,6577,154,155,'ZSAAAA','EVHAAA','OOOOxx' +6424,5283,0,0,4,4,24,424,424,1424,6424,48,49,'CNAAAA','FVHAAA','VVVVxx' +2482,5284,0,2,2,2,82,482,482,2482,2482,164,165,'MRAAAA','GVHAAA','AAAAxx' +6874,5285,0,2,4,14,74,874,874,1874,6874,148,149,'KEAAAA','HVHAAA','HHHHxx' +7601,5286,1,1,1,1,1,601,1601,2601,7601,2,3,'JGAAAA','IVHAAA','OOOOxx' +4552,5287,0,0,2,12,52,552,552,4552,4552,104,105,'CTAAAA','JVHAAA','VVVVxx' +8406,5288,0,2,6,6,6,406,406,3406,8406,12,13,'ILAAAA','KVHAAA','AAAAxx' +2924,5289,0,0,4,4,24,924,924,2924,2924,48,49,'MIAAAA','LVHAAA','HHHHxx' +8255,5290,1,3,5,15,55,255,255,3255,8255,110,111,'NFAAAA','MVHAAA','OOOOxx' +4920,5291,0,0,0,0,20,920,920,4920,4920,40,41,'GHAAAA','NVHAAA','VVVVxx' +228,5292,0,0,8,8,28,228,228,228,228,56,57,'UIAAAA','OVHAAA','AAAAxx' +9431,5293,1,3,1,11,31,431,1431,4431,9431,62,63,'TYAAAA','PVHAAA','HHHHxx' +4021,5294,1,1,1,1,21,21,21,4021,4021,42,43,'RYAAAA','QVHAAA','OOOOxx' +2966,5295,0,2,6,6,66,966,966,2966,2966,132,133,'CKAAAA','RVHAAA','VVVVxx' +2862,5296,0,2,2,2,62,862,862,2862,2862,124,125,'CGAAAA','SVHAAA','AAAAxx' +4303,5297,1,3,3,3,3,303,303,4303,4303,6,7,'NJAAAA','TVHAAA','HHHHxx' +9643,5298,1,3,3,3,43,643,1643,4643,9643,86,87,'XGAAAA','UVHAAA','OOOOxx' +3008,5299,0,0,8,8,8,8,1008,3008,3008,16,17,'SLAAAA','VVHAAA','VVVVxx' +7476,5300,0,0,6,16,76,476,1476,2476,7476,152,153,'OBAAAA','WVHAAA','AAAAxx' +3686,5301,0,2,6,6,86,686,1686,3686,3686,172,173,'ULAAAA','XVHAAA','HHHHxx' +9051,5302,1,3,1,11,51,51,1051,4051,9051,102,103,'DKAAAA','YVHAAA','OOOOxx' +6592,5303,0,0,2,12,92,592,592,1592,6592,184,185,'OTAAAA','ZVHAAA','VVVVxx' +924,5304,0,0,4,4,24,924,924,924,924,48,49,'OJAAAA','AWHAAA','AAAAxx' +4406,5305,0,2,6,6,6,406,406,4406,4406,12,13,'MNAAAA','BWHAAA','HHHHxx' +5233,5306,1,1,3,13,33,233,1233,233,5233,66,67,'HTAAAA','CWHAAA','OOOOxx' +8881,5307,1,1,1,1,81,881,881,3881,8881,162,163,'PDAAAA','DWHAAA','VVVVxx' +2212,5308,0,0,2,12,12,212,212,2212,2212,24,25,'CHAAAA','EWHAAA','AAAAxx' +5804,5309,0,0,4,4,4,804,1804,804,5804,8,9,'GPAAAA','FWHAAA','HHHHxx' +2990,5310,0,2,0,10,90,990,990,2990,2990,180,181,'ALAAAA','GWHAAA','OOOOxx' +4069,5311,1,1,9,9,69,69,69,4069,4069,138,139,'NAAAAA','HWHAAA','VVVVxx' +5380,5312,0,0,0,0,80,380,1380,380,5380,160,161,'YYAAAA','IWHAAA','AAAAxx' +5016,5313,0,0,6,16,16,16,1016,16,5016,32,33,'YKAAAA','JWHAAA','HHHHxx' +5056,5314,0,0,6,16,56,56,1056,56,5056,112,113,'MMAAAA','KWHAAA','OOOOxx' +3732,5315,0,0,2,12,32,732,1732,3732,3732,64,65,'ONAAAA','LWHAAA','VVVVxx' +5527,5316,1,3,7,7,27,527,1527,527,5527,54,55,'PEAAAA','MWHAAA','AAAAxx' +1151,5317,1,3,1,11,51,151,1151,1151,1151,102,103,'HSAAAA','NWHAAA','HHHHxx' +7900,5318,0,0,0,0,0,900,1900,2900,7900,0,1,'WRAAAA','OWHAAA','OOOOxx' +1660,5319,0,0,0,0,60,660,1660,1660,1660,120,121,'WLAAAA','PWHAAA','VVVVxx' +8064,5320,0,0,4,4,64,64,64,3064,8064,128,129,'EYAAAA','QWHAAA','AAAAxx' +8240,5321,0,0,0,0,40,240,240,3240,8240,80,81,'YEAAAA','RWHAAA','HHHHxx' +413,5322,1,1,3,13,13,413,413,413,413,26,27,'XPAAAA','SWHAAA','OOOOxx' +8311,5323,1,3,1,11,11,311,311,3311,8311,22,23,'RHAAAA','TWHAAA','VVVVxx' +1065,5324,1,1,5,5,65,65,1065,1065,1065,130,131,'ZOAAAA','UWHAAA','AAAAxx' +2741,5325,1,1,1,1,41,741,741,2741,2741,82,83,'LBAAAA','VWHAAA','HHHHxx' +5306,5326,0,2,6,6,6,306,1306,306,5306,12,13,'CWAAAA','WWHAAA','OOOOxx' +5464,5327,0,0,4,4,64,464,1464,464,5464,128,129,'ECAAAA','XWHAAA','VVVVxx' +4237,5328,1,1,7,17,37,237,237,4237,4237,74,75,'ZGAAAA','YWHAAA','AAAAxx' +3822,5329,0,2,2,2,22,822,1822,3822,3822,44,45,'ARAAAA','ZWHAAA','HHHHxx' +2548,5330,0,0,8,8,48,548,548,2548,2548,96,97,'AUAAAA','AXHAAA','OOOOxx' +2688,5331,0,0,8,8,88,688,688,2688,2688,176,177,'KZAAAA','BXHAAA','VVVVxx' +8061,5332,1,1,1,1,61,61,61,3061,8061,122,123,'BYAAAA','CXHAAA','AAAAxx' +9340,5333,0,0,0,0,40,340,1340,4340,9340,80,81,'GVAAAA','DXHAAA','HHHHxx' +4031,5334,1,3,1,11,31,31,31,4031,4031,62,63,'BZAAAA','EXHAAA','OOOOxx' +2635,5335,1,3,5,15,35,635,635,2635,2635,70,71,'JXAAAA','FXHAAA','VVVVxx' +809,5336,1,1,9,9,9,809,809,809,809,18,19,'DFAAAA','GXHAAA','AAAAxx' +3209,5337,1,1,9,9,9,209,1209,3209,3209,18,19,'LTAAAA','HXHAAA','HHHHxx' +3825,5338,1,1,5,5,25,825,1825,3825,3825,50,51,'DRAAAA','IXHAAA','OOOOxx' +1448,5339,0,0,8,8,48,448,1448,1448,1448,96,97,'SDAAAA','JXHAAA','VVVVxx' +9077,5340,1,1,7,17,77,77,1077,4077,9077,154,155,'DLAAAA','KXHAAA','AAAAxx' +3730,5341,0,2,0,10,30,730,1730,3730,3730,60,61,'MNAAAA','LXHAAA','HHHHxx' +9596,5342,0,0,6,16,96,596,1596,4596,9596,192,193,'CFAAAA','MXHAAA','OOOOxx' +3563,5343,1,3,3,3,63,563,1563,3563,3563,126,127,'BHAAAA','NXHAAA','VVVVxx' +4116,5344,0,0,6,16,16,116,116,4116,4116,32,33,'ICAAAA','OXHAAA','AAAAxx' +4825,5345,1,1,5,5,25,825,825,4825,4825,50,51,'PDAAAA','PXHAAA','HHHHxx' +8376,5346,0,0,6,16,76,376,376,3376,8376,152,153,'EKAAAA','QXHAAA','OOOOxx' +3917,5347,1,1,7,17,17,917,1917,3917,3917,34,35,'RUAAAA','RXHAAA','VVVVxx' +4407,5348,1,3,7,7,7,407,407,4407,4407,14,15,'NNAAAA','SXHAAA','AAAAxx' +8202,5349,0,2,2,2,2,202,202,3202,8202,4,5,'MDAAAA','TXHAAA','HHHHxx' +7675,5350,1,3,5,15,75,675,1675,2675,7675,150,151,'FJAAAA','UXHAAA','OOOOxx' +4104,5351,0,0,4,4,4,104,104,4104,4104,8,9,'WBAAAA','VXHAAA','VVVVxx' +9225,5352,1,1,5,5,25,225,1225,4225,9225,50,51,'VQAAAA','WXHAAA','AAAAxx' +2834,5353,0,2,4,14,34,834,834,2834,2834,68,69,'AFAAAA','XXHAAA','HHHHxx' +1227,5354,1,3,7,7,27,227,1227,1227,1227,54,55,'FVAAAA','YXHAAA','OOOOxx' +3383,5355,1,3,3,3,83,383,1383,3383,3383,166,167,'DAAAAA','ZXHAAA','VVVVxx' +67,5356,1,3,7,7,67,67,67,67,67,134,135,'PCAAAA','AYHAAA','AAAAxx' +1751,5357,1,3,1,11,51,751,1751,1751,1751,102,103,'JPAAAA','BYHAAA','HHHHxx' +8054,5358,0,2,4,14,54,54,54,3054,8054,108,109,'UXAAAA','CYHAAA','OOOOxx' +8571,5359,1,3,1,11,71,571,571,3571,8571,142,143,'RRAAAA','DYHAAA','VVVVxx' +2466,5360,0,2,6,6,66,466,466,2466,2466,132,133,'WQAAAA','EYHAAA','AAAAxx' +9405,5361,1,1,5,5,5,405,1405,4405,9405,10,11,'TXAAAA','FYHAAA','HHHHxx' +6883,5362,1,3,3,3,83,883,883,1883,6883,166,167,'TEAAAA','GYHAAA','OOOOxx' +4301,5363,1,1,1,1,1,301,301,4301,4301,2,3,'LJAAAA','HYHAAA','VVVVxx' +3705,5364,1,1,5,5,5,705,1705,3705,3705,10,11,'NMAAAA','IYHAAA','AAAAxx' +5420,5365,0,0,0,0,20,420,1420,420,5420,40,41,'MAAAAA','JYHAAA','HHHHxx' +3692,5366,0,0,2,12,92,692,1692,3692,3692,184,185,'AMAAAA','KYHAAA','OOOOxx' +6851,5367,1,3,1,11,51,851,851,1851,6851,102,103,'NDAAAA','LYHAAA','VVVVxx' +9363,5368,1,3,3,3,63,363,1363,4363,9363,126,127,'DWAAAA','MYHAAA','AAAAxx' +2269,5369,1,1,9,9,69,269,269,2269,2269,138,139,'HJAAAA','NYHAAA','HHHHxx' +4918,5370,0,2,8,18,18,918,918,4918,4918,36,37,'EHAAAA','OYHAAA','OOOOxx' +4297,5371,1,1,7,17,97,297,297,4297,4297,194,195,'HJAAAA','PYHAAA','VVVVxx' +1836,5372,0,0,6,16,36,836,1836,1836,1836,72,73,'QSAAAA','QYHAAA','AAAAxx' +237,5373,1,1,7,17,37,237,237,237,237,74,75,'DJAAAA','RYHAAA','HHHHxx' +6131,5374,1,3,1,11,31,131,131,1131,6131,62,63,'VBAAAA','SYHAAA','OOOOxx' +3174,5375,0,2,4,14,74,174,1174,3174,3174,148,149,'CSAAAA','TYHAAA','VVVVxx' +9987,5376,1,3,7,7,87,987,1987,4987,9987,174,175,'DUAAAA','UYHAAA','AAAAxx' +3630,5377,0,2,0,10,30,630,1630,3630,3630,60,61,'QJAAAA','VYHAAA','HHHHxx' +2899,5378,1,3,9,19,99,899,899,2899,2899,198,199,'NHAAAA','WYHAAA','OOOOxx' +4079,5379,1,3,9,19,79,79,79,4079,4079,158,159,'XAAAAA','XYHAAA','VVVVxx' +5049,5380,1,1,9,9,49,49,1049,49,5049,98,99,'FMAAAA','YYHAAA','AAAAxx' +2963,5381,1,3,3,3,63,963,963,2963,2963,126,127,'ZJAAAA','ZYHAAA','HHHHxx' +3962,5382,0,2,2,2,62,962,1962,3962,3962,124,125,'KWAAAA','AZHAAA','OOOOxx' +7921,5383,1,1,1,1,21,921,1921,2921,7921,42,43,'RSAAAA','BZHAAA','VVVVxx' +3967,5384,1,3,7,7,67,967,1967,3967,3967,134,135,'PWAAAA','CZHAAA','AAAAxx' +2752,5385,0,0,2,12,52,752,752,2752,2752,104,105,'WBAAAA','DZHAAA','HHHHxx' +7944,5386,0,0,4,4,44,944,1944,2944,7944,88,89,'OTAAAA','EZHAAA','OOOOxx' +2205,5387,1,1,5,5,5,205,205,2205,2205,10,11,'VGAAAA','FZHAAA','VVVVxx' +5035,5388,1,3,5,15,35,35,1035,35,5035,70,71,'RLAAAA','GZHAAA','AAAAxx' +1425,5389,1,1,5,5,25,425,1425,1425,1425,50,51,'VCAAAA','HZHAAA','HHHHxx' +832,5390,0,0,2,12,32,832,832,832,832,64,65,'AGAAAA','IZHAAA','OOOOxx' +1447,5391,1,3,7,7,47,447,1447,1447,1447,94,95,'RDAAAA','JZHAAA','VVVVxx' +6108,5392,0,0,8,8,8,108,108,1108,6108,16,17,'YAAAAA','KZHAAA','AAAAxx' +4936,5393,0,0,6,16,36,936,936,4936,4936,72,73,'WHAAAA','LZHAAA','HHHHxx' +7704,5394,0,0,4,4,4,704,1704,2704,7704,8,9,'IKAAAA','MZHAAA','OOOOxx' +142,5395,0,2,2,2,42,142,142,142,142,84,85,'MFAAAA','NZHAAA','VVVVxx' +4272,5396,0,0,2,12,72,272,272,4272,4272,144,145,'IIAAAA','OZHAAA','AAAAxx' +7667,5397,1,3,7,7,67,667,1667,2667,7667,134,135,'XIAAAA','PZHAAA','HHHHxx' +366,5398,0,2,6,6,66,366,366,366,366,132,133,'COAAAA','QZHAAA','OOOOxx' +8866,5399,0,2,6,6,66,866,866,3866,8866,132,133,'ADAAAA','RZHAAA','VVVVxx' +7712,5400,0,0,2,12,12,712,1712,2712,7712,24,25,'QKAAAA','SZHAAA','AAAAxx' +3880,5401,0,0,0,0,80,880,1880,3880,3880,160,161,'GTAAAA','TZHAAA','HHHHxx' +4631,5402,1,3,1,11,31,631,631,4631,4631,62,63,'DWAAAA','UZHAAA','OOOOxx' +2789,5403,1,1,9,9,89,789,789,2789,2789,178,179,'HDAAAA','VZHAAA','VVVVxx' +7720,5404,0,0,0,0,20,720,1720,2720,7720,40,41,'YKAAAA','WZHAAA','AAAAxx' +7618,5405,0,2,8,18,18,618,1618,2618,7618,36,37,'AHAAAA','XZHAAA','HHHHxx' +4990,5406,0,2,0,10,90,990,990,4990,4990,180,181,'YJAAAA','YZHAAA','OOOOxx' +7918,5407,0,2,8,18,18,918,1918,2918,7918,36,37,'OSAAAA','ZZHAAA','VVVVxx' +5067,5408,1,3,7,7,67,67,1067,67,5067,134,135,'XMAAAA','AAIAAA','AAAAxx' +6370,5409,0,2,0,10,70,370,370,1370,6370,140,141,'ALAAAA','BAIAAA','HHHHxx' +2268,5410,0,0,8,8,68,268,268,2268,2268,136,137,'GJAAAA','CAIAAA','OOOOxx' +1949,5411,1,1,9,9,49,949,1949,1949,1949,98,99,'ZWAAAA','DAIAAA','VVVVxx' +5503,5412,1,3,3,3,3,503,1503,503,5503,6,7,'RDAAAA','EAIAAA','AAAAxx' +9951,5413,1,3,1,11,51,951,1951,4951,9951,102,103,'TSAAAA','FAIAAA','HHHHxx' +6823,5414,1,3,3,3,23,823,823,1823,6823,46,47,'LCAAAA','GAIAAA','OOOOxx' +6287,5415,1,3,7,7,87,287,287,1287,6287,174,175,'VHAAAA','HAIAAA','VVVVxx' +6016,5416,0,0,6,16,16,16,16,1016,6016,32,33,'KXAAAA','IAIAAA','AAAAxx' +1977,5417,1,1,7,17,77,977,1977,1977,1977,154,155,'BYAAAA','JAIAAA','HHHHxx' +8579,5418,1,3,9,19,79,579,579,3579,8579,158,159,'ZRAAAA','KAIAAA','OOOOxx' +6204,5419,0,0,4,4,4,204,204,1204,6204,8,9,'QEAAAA','LAIAAA','VVVVxx' +9764,5420,0,0,4,4,64,764,1764,4764,9764,128,129,'OLAAAA','MAIAAA','AAAAxx' +2005,5421,1,1,5,5,5,5,5,2005,2005,10,11,'DZAAAA','NAIAAA','HHHHxx' +1648,5422,0,0,8,8,48,648,1648,1648,1648,96,97,'KLAAAA','OAIAAA','OOOOxx' +2457,5423,1,1,7,17,57,457,457,2457,2457,114,115,'NQAAAA','PAIAAA','VVVVxx' +2698,5424,0,2,8,18,98,698,698,2698,2698,196,197,'UZAAAA','QAIAAA','AAAAxx' +7730,5425,0,2,0,10,30,730,1730,2730,7730,60,61,'ILAAAA','RAIAAA','HHHHxx' +7287,5426,1,3,7,7,87,287,1287,2287,7287,174,175,'HUAAAA','SAIAAA','OOOOxx' +2937,5427,1,1,7,17,37,937,937,2937,2937,74,75,'ZIAAAA','TAIAAA','VVVVxx' +6824,5428,0,0,4,4,24,824,824,1824,6824,48,49,'MCAAAA','UAIAAA','AAAAxx' +9256,5429,0,0,6,16,56,256,1256,4256,9256,112,113,'ASAAAA','VAIAAA','HHHHxx' +4810,5430,0,2,0,10,10,810,810,4810,4810,20,21,'ADAAAA','WAIAAA','OOOOxx' +3869,5431,1,1,9,9,69,869,1869,3869,3869,138,139,'VSAAAA','XAIAAA','VVVVxx' +1993,5432,1,1,3,13,93,993,1993,1993,1993,186,187,'RYAAAA','YAIAAA','AAAAxx' +6048,5433,0,0,8,8,48,48,48,1048,6048,96,97,'QYAAAA','ZAIAAA','HHHHxx' +6922,5434,0,2,2,2,22,922,922,1922,6922,44,45,'GGAAAA','ABIAAA','OOOOxx' +8,5435,0,0,8,8,8,8,8,8,8,16,17,'IAAAAA','BBIAAA','VVVVxx' +6706,5436,0,2,6,6,6,706,706,1706,6706,12,13,'YXAAAA','CBIAAA','AAAAxx' +9159,5437,1,3,9,19,59,159,1159,4159,9159,118,119,'HOAAAA','DBIAAA','HHHHxx' +7020,5438,0,0,0,0,20,20,1020,2020,7020,40,41,'AKAAAA','EBIAAA','OOOOxx' +767,5439,1,3,7,7,67,767,767,767,767,134,135,'NDAAAA','FBIAAA','VVVVxx' +8602,5440,0,2,2,2,2,602,602,3602,8602,4,5,'WSAAAA','GBIAAA','AAAAxx' +4442,5441,0,2,2,2,42,442,442,4442,4442,84,85,'WOAAAA','HBIAAA','HHHHxx' +2040,5442,0,0,0,0,40,40,40,2040,2040,80,81,'MAAAAA','IBIAAA','OOOOxx' +5493,5443,1,1,3,13,93,493,1493,493,5493,186,187,'HDAAAA','JBIAAA','VVVVxx' +275,5444,1,3,5,15,75,275,275,275,275,150,151,'PKAAAA','KBIAAA','AAAAxx' +8876,5445,0,0,6,16,76,876,876,3876,8876,152,153,'KDAAAA','LBIAAA','HHHHxx' +7381,5446,1,1,1,1,81,381,1381,2381,7381,162,163,'XXAAAA','MBIAAA','OOOOxx' +1827,5447,1,3,7,7,27,827,1827,1827,1827,54,55,'HSAAAA','NBIAAA','VVVVxx' +3537,5448,1,1,7,17,37,537,1537,3537,3537,74,75,'BGAAAA','OBIAAA','AAAAxx' +6978,5449,0,2,8,18,78,978,978,1978,6978,156,157,'KIAAAA','PBIAAA','HHHHxx' +6160,5450,0,0,0,0,60,160,160,1160,6160,120,121,'YCAAAA','QBIAAA','OOOOxx' +9219,5451,1,3,9,19,19,219,1219,4219,9219,38,39,'PQAAAA','RBIAAA','VVVVxx' +5034,5452,0,2,4,14,34,34,1034,34,5034,68,69,'QLAAAA','SBIAAA','AAAAxx' +8463,5453,1,3,3,3,63,463,463,3463,8463,126,127,'NNAAAA','TBIAAA','HHHHxx' +2038,5454,0,2,8,18,38,38,38,2038,2038,76,77,'KAAAAA','UBIAAA','OOOOxx' +9562,5455,0,2,2,2,62,562,1562,4562,9562,124,125,'UDAAAA','VBIAAA','VVVVxx' +2687,5456,1,3,7,7,87,687,687,2687,2687,174,175,'JZAAAA','WBIAAA','AAAAxx' +5092,5457,0,0,2,12,92,92,1092,92,5092,184,185,'WNAAAA','XBIAAA','HHHHxx' +539,5458,1,3,9,19,39,539,539,539,539,78,79,'TUAAAA','YBIAAA','OOOOxx' +2139,5459,1,3,9,19,39,139,139,2139,2139,78,79,'HEAAAA','ZBIAAA','VVVVxx' +9221,5460,1,1,1,1,21,221,1221,4221,9221,42,43,'RQAAAA','ACIAAA','AAAAxx' +965,5461,1,1,5,5,65,965,965,965,965,130,131,'DLAAAA','BCIAAA','HHHHxx' +6051,5462,1,3,1,11,51,51,51,1051,6051,102,103,'TYAAAA','CCIAAA','OOOOxx' +5822,5463,0,2,2,2,22,822,1822,822,5822,44,45,'YPAAAA','DCIAAA','VVVVxx' +6397,5464,1,1,7,17,97,397,397,1397,6397,194,195,'BMAAAA','ECIAAA','AAAAxx' +2375,5465,1,3,5,15,75,375,375,2375,2375,150,151,'JNAAAA','FCIAAA','HHHHxx' +9415,5466,1,3,5,15,15,415,1415,4415,9415,30,31,'DYAAAA','GCIAAA','OOOOxx' +6552,5467,0,0,2,12,52,552,552,1552,6552,104,105,'ASAAAA','HCIAAA','VVVVxx' +2248,5468,0,0,8,8,48,248,248,2248,2248,96,97,'MIAAAA','ICIAAA','AAAAxx' +2611,5469,1,3,1,11,11,611,611,2611,2611,22,23,'LWAAAA','JCIAAA','HHHHxx' +9609,5470,1,1,9,9,9,609,1609,4609,9609,18,19,'PFAAAA','KCIAAA','OOOOxx' +2132,5471,0,0,2,12,32,132,132,2132,2132,64,65,'AEAAAA','LCIAAA','VVVVxx' +8452,5472,0,0,2,12,52,452,452,3452,8452,104,105,'CNAAAA','MCIAAA','AAAAxx' +9407,5473,1,3,7,7,7,407,1407,4407,9407,14,15,'VXAAAA','NCIAAA','HHHHxx' +2814,5474,0,2,4,14,14,814,814,2814,2814,28,29,'GEAAAA','OCIAAA','OOOOxx' +1889,5475,1,1,9,9,89,889,1889,1889,1889,178,179,'RUAAAA','PCIAAA','VVVVxx' +7489,5476,1,1,9,9,89,489,1489,2489,7489,178,179,'BCAAAA','QCIAAA','AAAAxx' +2255,5477,1,3,5,15,55,255,255,2255,2255,110,111,'TIAAAA','RCIAAA','HHHHxx' +3380,5478,0,0,0,0,80,380,1380,3380,3380,160,161,'AAAAAA','SCIAAA','OOOOxx' +1167,5479,1,3,7,7,67,167,1167,1167,1167,134,135,'XSAAAA','TCIAAA','VVVVxx' +5369,5480,1,1,9,9,69,369,1369,369,5369,138,139,'NYAAAA','UCIAAA','AAAAxx' +2378,5481,0,2,8,18,78,378,378,2378,2378,156,157,'MNAAAA','VCIAAA','HHHHxx' +8315,5482,1,3,5,15,15,315,315,3315,8315,30,31,'VHAAAA','WCIAAA','OOOOxx' +2934,5483,0,2,4,14,34,934,934,2934,2934,68,69,'WIAAAA','XCIAAA','VVVVxx' +7924,5484,0,0,4,4,24,924,1924,2924,7924,48,49,'USAAAA','YCIAAA','AAAAxx' +2867,5485,1,3,7,7,67,867,867,2867,2867,134,135,'HGAAAA','ZCIAAA','HHHHxx' +9141,5486,1,1,1,1,41,141,1141,4141,9141,82,83,'PNAAAA','ADIAAA','OOOOxx' +3613,5487,1,1,3,13,13,613,1613,3613,3613,26,27,'ZIAAAA','BDIAAA','VVVVxx' +2461,5488,1,1,1,1,61,461,461,2461,2461,122,123,'RQAAAA','CDIAAA','AAAAxx' +4567,5489,1,3,7,7,67,567,567,4567,4567,134,135,'RTAAAA','DDIAAA','HHHHxx' +2906,5490,0,2,6,6,6,906,906,2906,2906,12,13,'UHAAAA','EDIAAA','OOOOxx' +4848,5491,0,0,8,8,48,848,848,4848,4848,96,97,'MEAAAA','FDIAAA','VVVVxx' +6614,5492,0,2,4,14,14,614,614,1614,6614,28,29,'KUAAAA','GDIAAA','AAAAxx' +6200,5493,0,0,0,0,0,200,200,1200,6200,0,1,'MEAAAA','HDIAAA','HHHHxx' +7895,5494,1,3,5,15,95,895,1895,2895,7895,190,191,'RRAAAA','IDIAAA','OOOOxx' +6829,5495,1,1,9,9,29,829,829,1829,6829,58,59,'RCAAAA','JDIAAA','VVVVxx' +4087,5496,1,3,7,7,87,87,87,4087,4087,174,175,'FBAAAA','KDIAAA','AAAAxx' +8787,5497,1,3,7,7,87,787,787,3787,8787,174,175,'ZZAAAA','LDIAAA','HHHHxx' +3322,5498,0,2,2,2,22,322,1322,3322,3322,44,45,'UXAAAA','MDIAAA','OOOOxx' +9091,5499,1,3,1,11,91,91,1091,4091,9091,182,183,'RLAAAA','NDIAAA','VVVVxx' +5268,5500,0,0,8,8,68,268,1268,268,5268,136,137,'QUAAAA','ODIAAA','AAAAxx' +2719,5501,1,3,9,19,19,719,719,2719,2719,38,39,'PAAAAA','PDIAAA','HHHHxx' +30,5502,0,2,0,10,30,30,30,30,30,60,61,'EBAAAA','QDIAAA','OOOOxx' +1975,5503,1,3,5,15,75,975,1975,1975,1975,150,151,'ZXAAAA','RDIAAA','VVVVxx' +2641,5504,1,1,1,1,41,641,641,2641,2641,82,83,'PXAAAA','SDIAAA','AAAAxx' +8616,5505,0,0,6,16,16,616,616,3616,8616,32,33,'KTAAAA','TDIAAA','HHHHxx' +5980,5506,0,0,0,0,80,980,1980,980,5980,160,161,'AWAAAA','UDIAAA','OOOOxx' +5170,5507,0,2,0,10,70,170,1170,170,5170,140,141,'WQAAAA','VDIAAA','VVVVxx' +1960,5508,0,0,0,0,60,960,1960,1960,1960,120,121,'KXAAAA','WDIAAA','AAAAxx' +8141,5509,1,1,1,1,41,141,141,3141,8141,82,83,'DBAAAA','XDIAAA','HHHHxx' +6692,5510,0,0,2,12,92,692,692,1692,6692,184,185,'KXAAAA','YDIAAA','OOOOxx' +7621,5511,1,1,1,1,21,621,1621,2621,7621,42,43,'DHAAAA','ZDIAAA','VVVVxx' +3890,5512,0,2,0,10,90,890,1890,3890,3890,180,181,'QTAAAA','AEIAAA','AAAAxx' +4300,5513,0,0,0,0,0,300,300,4300,4300,0,1,'KJAAAA','BEIAAA','HHHHxx' +736,5514,0,0,6,16,36,736,736,736,736,72,73,'ICAAAA','CEIAAA','OOOOxx' +6626,5515,0,2,6,6,26,626,626,1626,6626,52,53,'WUAAAA','DEIAAA','VVVVxx' +1800,5516,0,0,0,0,0,800,1800,1800,1800,0,1,'GRAAAA','EEIAAA','AAAAxx' +3430,5517,0,2,0,10,30,430,1430,3430,3430,60,61,'YBAAAA','FEIAAA','HHHHxx' +9519,5518,1,3,9,19,19,519,1519,4519,9519,38,39,'DCAAAA','GEIAAA','OOOOxx' +5111,5519,1,3,1,11,11,111,1111,111,5111,22,23,'POAAAA','HEIAAA','VVVVxx' +6915,5520,1,3,5,15,15,915,915,1915,6915,30,31,'ZFAAAA','IEIAAA','AAAAxx' +9246,5521,0,2,6,6,46,246,1246,4246,9246,92,93,'QRAAAA','JEIAAA','HHHHxx' +5141,5522,1,1,1,1,41,141,1141,141,5141,82,83,'TPAAAA','KEIAAA','OOOOxx' +5922,5523,0,2,2,2,22,922,1922,922,5922,44,45,'UTAAAA','LEIAAA','VVVVxx' +3087,5524,1,3,7,7,87,87,1087,3087,3087,174,175,'TOAAAA','MEIAAA','AAAAxx' +1859,5525,1,3,9,19,59,859,1859,1859,1859,118,119,'NTAAAA','NEIAAA','HHHHxx' +8482,5526,0,2,2,2,82,482,482,3482,8482,164,165,'GOAAAA','OEIAAA','OOOOxx' +8414,5527,0,2,4,14,14,414,414,3414,8414,28,29,'QLAAAA','PEIAAA','VVVVxx' +6662,5528,0,2,2,2,62,662,662,1662,6662,124,125,'GWAAAA','QEIAAA','AAAAxx' +8614,5529,0,2,4,14,14,614,614,3614,8614,28,29,'ITAAAA','REIAAA','HHHHxx' +42,5530,0,2,2,2,42,42,42,42,42,84,85,'QBAAAA','SEIAAA','OOOOxx' +7582,5531,0,2,2,2,82,582,1582,2582,7582,164,165,'QFAAAA','TEIAAA','VVVVxx' +8183,5532,1,3,3,3,83,183,183,3183,8183,166,167,'TCAAAA','UEIAAA','AAAAxx' +1299,5533,1,3,9,19,99,299,1299,1299,1299,198,199,'ZXAAAA','VEIAAA','HHHHxx' +7004,5534,0,0,4,4,4,4,1004,2004,7004,8,9,'KJAAAA','WEIAAA','OOOOxx' +3298,5535,0,2,8,18,98,298,1298,3298,3298,196,197,'WWAAAA','XEIAAA','VVVVxx' +7884,5536,0,0,4,4,84,884,1884,2884,7884,168,169,'GRAAAA','YEIAAA','AAAAxx' +4191,5537,1,3,1,11,91,191,191,4191,4191,182,183,'FFAAAA','ZEIAAA','HHHHxx' +7346,5538,0,2,6,6,46,346,1346,2346,7346,92,93,'OWAAAA','AFIAAA','OOOOxx' +7989,5539,1,1,9,9,89,989,1989,2989,7989,178,179,'HVAAAA','BFIAAA','VVVVxx' +5719,5540,1,3,9,19,19,719,1719,719,5719,38,39,'ZLAAAA','CFIAAA','AAAAxx' +800,5541,0,0,0,0,0,800,800,800,800,0,1,'UEAAAA','DFIAAA','HHHHxx' +6509,5542,1,1,9,9,9,509,509,1509,6509,18,19,'JQAAAA','EFIAAA','OOOOxx' +4672,5543,0,0,2,12,72,672,672,4672,4672,144,145,'SXAAAA','FFIAAA','VVVVxx' +4434,5544,0,2,4,14,34,434,434,4434,4434,68,69,'OOAAAA','GFIAAA','AAAAxx' +8309,5545,1,1,9,9,9,309,309,3309,8309,18,19,'PHAAAA','HFIAAA','HHHHxx' +5134,5546,0,2,4,14,34,134,1134,134,5134,68,69,'MPAAAA','IFIAAA','OOOOxx' +5153,5547,1,1,3,13,53,153,1153,153,5153,106,107,'FQAAAA','JFIAAA','VVVVxx' +1522,5548,0,2,2,2,22,522,1522,1522,1522,44,45,'OGAAAA','KFIAAA','AAAAxx' +8629,5549,1,1,9,9,29,629,629,3629,8629,58,59,'XTAAAA','LFIAAA','HHHHxx' +4549,5550,1,1,9,9,49,549,549,4549,4549,98,99,'ZSAAAA','MFIAAA','OOOOxx' +9506,5551,0,2,6,6,6,506,1506,4506,9506,12,13,'QBAAAA','NFIAAA','VVVVxx' +6542,5552,0,2,2,2,42,542,542,1542,6542,84,85,'QRAAAA','OFIAAA','AAAAxx' +2579,5553,1,3,9,19,79,579,579,2579,2579,158,159,'FVAAAA','PFIAAA','HHHHxx' +4664,5554,0,0,4,4,64,664,664,4664,4664,128,129,'KXAAAA','QFIAAA','OOOOxx' +696,5555,0,0,6,16,96,696,696,696,696,192,193,'UAAAAA','RFIAAA','VVVVxx' +7950,5556,0,2,0,10,50,950,1950,2950,7950,100,101,'UTAAAA','SFIAAA','AAAAxx' +5,5557,1,1,5,5,5,5,5,5,5,10,11,'FAAAAA','TFIAAA','HHHHxx' +7806,5558,0,2,6,6,6,806,1806,2806,7806,12,13,'GOAAAA','UFIAAA','OOOOxx' +2770,5559,0,2,0,10,70,770,770,2770,2770,140,141,'OCAAAA','VFIAAA','VVVVxx' +1344,5560,0,0,4,4,44,344,1344,1344,1344,88,89,'SZAAAA','WFIAAA','AAAAxx' +511,5561,1,3,1,11,11,511,511,511,511,22,23,'RTAAAA','XFIAAA','HHHHxx' +9070,5562,0,2,0,10,70,70,1070,4070,9070,140,141,'WKAAAA','YFIAAA','OOOOxx' +2961,5563,1,1,1,1,61,961,961,2961,2961,122,123,'XJAAAA','ZFIAAA','VVVVxx' +8031,5564,1,3,1,11,31,31,31,3031,8031,62,63,'XWAAAA','AGIAAA','AAAAxx' +326,5565,0,2,6,6,26,326,326,326,326,52,53,'OMAAAA','BGIAAA','HHHHxx' +183,5566,1,3,3,3,83,183,183,183,183,166,167,'BHAAAA','CGIAAA','OOOOxx' +5917,5567,1,1,7,17,17,917,1917,917,5917,34,35,'PTAAAA','DGIAAA','VVVVxx' +8256,5568,0,0,6,16,56,256,256,3256,8256,112,113,'OFAAAA','EGIAAA','AAAAxx' +7889,5569,1,1,9,9,89,889,1889,2889,7889,178,179,'LRAAAA','FGIAAA','HHHHxx' +9029,5570,1,1,9,9,29,29,1029,4029,9029,58,59,'HJAAAA','GGIAAA','OOOOxx' +1316,5571,0,0,6,16,16,316,1316,1316,1316,32,33,'QYAAAA','HGIAAA','VVVVxx' +7442,5572,0,2,2,2,42,442,1442,2442,7442,84,85,'GAAAAA','IGIAAA','AAAAxx' +2810,5573,0,2,0,10,10,810,810,2810,2810,20,21,'CEAAAA','JGIAAA','HHHHxx' +20,5574,0,0,0,0,20,20,20,20,20,40,41,'UAAAAA','KGIAAA','OOOOxx' +2306,5575,0,2,6,6,6,306,306,2306,2306,12,13,'SKAAAA','LGIAAA','VVVVxx' +4694,5576,0,2,4,14,94,694,694,4694,4694,188,189,'OYAAAA','MGIAAA','AAAAxx' +9710,5577,0,2,0,10,10,710,1710,4710,9710,20,21,'MJAAAA','NGIAAA','HHHHxx' +1791,5578,1,3,1,11,91,791,1791,1791,1791,182,183,'XQAAAA','OGIAAA','OOOOxx' +6730,5579,0,2,0,10,30,730,730,1730,6730,60,61,'WYAAAA','PGIAAA','VVVVxx' +359,5580,1,3,9,19,59,359,359,359,359,118,119,'VNAAAA','QGIAAA','AAAAxx' +8097,5581,1,1,7,17,97,97,97,3097,8097,194,195,'LZAAAA','RGIAAA','HHHHxx' +6147,5582,1,3,7,7,47,147,147,1147,6147,94,95,'LCAAAA','SGIAAA','OOOOxx' +643,5583,1,3,3,3,43,643,643,643,643,86,87,'TYAAAA','TGIAAA','VVVVxx' +698,5584,0,2,8,18,98,698,698,698,698,196,197,'WAAAAA','UGIAAA','AAAAxx' +3881,5585,1,1,1,1,81,881,1881,3881,3881,162,163,'HTAAAA','VGIAAA','HHHHxx' +7600,5586,0,0,0,0,0,600,1600,2600,7600,0,1,'IGAAAA','WGIAAA','OOOOxx' +1583,5587,1,3,3,3,83,583,1583,1583,1583,166,167,'XIAAAA','XGIAAA','VVVVxx' +9612,5588,0,0,2,12,12,612,1612,4612,9612,24,25,'SFAAAA','YGIAAA','AAAAxx' +1032,5589,0,0,2,12,32,32,1032,1032,1032,64,65,'SNAAAA','ZGIAAA','HHHHxx' +4834,5590,0,2,4,14,34,834,834,4834,4834,68,69,'YDAAAA','AHIAAA','OOOOxx' +5076,5591,0,0,6,16,76,76,1076,76,5076,152,153,'GNAAAA','BHIAAA','VVVVxx' +3070,5592,0,2,0,10,70,70,1070,3070,3070,140,141,'COAAAA','CHIAAA','AAAAxx' +1421,5593,1,1,1,1,21,421,1421,1421,1421,42,43,'RCAAAA','DHIAAA','HHHHxx' +8970,5594,0,2,0,10,70,970,970,3970,8970,140,141,'AHAAAA','EHIAAA','OOOOxx' +6271,5595,1,3,1,11,71,271,271,1271,6271,142,143,'FHAAAA','FHIAAA','VVVVxx' +8547,5596,1,3,7,7,47,547,547,3547,8547,94,95,'TQAAAA','GHIAAA','AAAAxx' +1259,5597,1,3,9,19,59,259,1259,1259,1259,118,119,'LWAAAA','HHIAAA','HHHHxx' +8328,5598,0,0,8,8,28,328,328,3328,8328,56,57,'IIAAAA','IHIAAA','OOOOxx' +1503,5599,1,3,3,3,3,503,1503,1503,1503,6,7,'VFAAAA','JHIAAA','VVVVxx' +2253,5600,1,1,3,13,53,253,253,2253,2253,106,107,'RIAAAA','KHIAAA','AAAAxx' +7449,5601,1,1,9,9,49,449,1449,2449,7449,98,99,'NAAAAA','LHIAAA','HHHHxx' +3579,5602,1,3,9,19,79,579,1579,3579,3579,158,159,'RHAAAA','MHIAAA','OOOOxx' +1585,5603,1,1,5,5,85,585,1585,1585,1585,170,171,'ZIAAAA','NHIAAA','VVVVxx' +5543,5604,1,3,3,3,43,543,1543,543,5543,86,87,'FFAAAA','OHIAAA','AAAAxx' +8627,5605,1,3,7,7,27,627,627,3627,8627,54,55,'VTAAAA','PHIAAA','HHHHxx' +8618,5606,0,2,8,18,18,618,618,3618,8618,36,37,'MTAAAA','QHIAAA','OOOOxx' +1911,5607,1,3,1,11,11,911,1911,1911,1911,22,23,'NVAAAA','RHIAAA','VVVVxx' +2758,5608,0,2,8,18,58,758,758,2758,2758,116,117,'CCAAAA','SHIAAA','AAAAxx' +5744,5609,0,0,4,4,44,744,1744,744,5744,88,89,'YMAAAA','THIAAA','HHHHxx' +4976,5610,0,0,6,16,76,976,976,4976,4976,152,153,'KJAAAA','UHIAAA','OOOOxx' +6380,5611,0,0,0,0,80,380,380,1380,6380,160,161,'KLAAAA','VHIAAA','VVVVxx' +1937,5612,1,1,7,17,37,937,1937,1937,1937,74,75,'NWAAAA','WHIAAA','AAAAxx' +9903,5613,1,3,3,3,3,903,1903,4903,9903,6,7,'XQAAAA','XHIAAA','HHHHxx' +4409,5614,1,1,9,9,9,409,409,4409,4409,18,19,'PNAAAA','YHIAAA','OOOOxx' +4133,5615,1,1,3,13,33,133,133,4133,4133,66,67,'ZCAAAA','ZHIAAA','VVVVxx' +5263,5616,1,3,3,3,63,263,1263,263,5263,126,127,'LUAAAA','AIIAAA','AAAAxx' +7888,5617,0,0,8,8,88,888,1888,2888,7888,176,177,'KRAAAA','BIIAAA','HHHHxx' +6060,5618,0,0,0,0,60,60,60,1060,6060,120,121,'CZAAAA','CIIAAA','OOOOxx' +2522,5619,0,2,2,2,22,522,522,2522,2522,44,45,'ATAAAA','DIIAAA','VVVVxx' +5550,5620,0,2,0,10,50,550,1550,550,5550,100,101,'MFAAAA','EIIAAA','AAAAxx' +9396,5621,0,0,6,16,96,396,1396,4396,9396,192,193,'KXAAAA','FIIAAA','HHHHxx' +176,5622,0,0,6,16,76,176,176,176,176,152,153,'UGAAAA','GIIAAA','OOOOxx' +5148,5623,0,0,8,8,48,148,1148,148,5148,96,97,'AQAAAA','HIIAAA','VVVVxx' +6691,5624,1,3,1,11,91,691,691,1691,6691,182,183,'JXAAAA','IIIAAA','AAAAxx' +4652,5625,0,0,2,12,52,652,652,4652,4652,104,105,'YWAAAA','JIIAAA','HHHHxx' +5096,5626,0,0,6,16,96,96,1096,96,5096,192,193,'AOAAAA','KIIAAA','OOOOxx' +2408,5627,0,0,8,8,8,408,408,2408,2408,16,17,'QOAAAA','LIIAAA','VVVVxx' +7322,5628,0,2,2,2,22,322,1322,2322,7322,44,45,'QVAAAA','MIIAAA','AAAAxx' +6782,5629,0,2,2,2,82,782,782,1782,6782,164,165,'WAAAAA','NIIAAA','HHHHxx' +4642,5630,0,2,2,2,42,642,642,4642,4642,84,85,'OWAAAA','OIIAAA','OOOOxx' +5427,5631,1,3,7,7,27,427,1427,427,5427,54,55,'TAAAAA','PIIAAA','VVVVxx' +4461,5632,1,1,1,1,61,461,461,4461,4461,122,123,'PPAAAA','QIIAAA','AAAAxx' +8416,5633,0,0,6,16,16,416,416,3416,8416,32,33,'SLAAAA','RIIAAA','HHHHxx' +2593,5634,1,1,3,13,93,593,593,2593,2593,186,187,'TVAAAA','SIIAAA','OOOOxx' +6202,5635,0,2,2,2,2,202,202,1202,6202,4,5,'OEAAAA','TIIAAA','VVVVxx' +3826,5636,0,2,6,6,26,826,1826,3826,3826,52,53,'ERAAAA','UIIAAA','AAAAxx' +4417,5637,1,1,7,17,17,417,417,4417,4417,34,35,'XNAAAA','VIIAAA','HHHHxx' +7871,5638,1,3,1,11,71,871,1871,2871,7871,142,143,'TQAAAA','WIIAAA','OOOOxx' +5622,5639,0,2,2,2,22,622,1622,622,5622,44,45,'GIAAAA','XIIAAA','VVVVxx' +3010,5640,0,2,0,10,10,10,1010,3010,3010,20,21,'ULAAAA','YIIAAA','AAAAxx' +3407,5641,1,3,7,7,7,407,1407,3407,3407,14,15,'BBAAAA','ZIIAAA','HHHHxx' +1274,5642,0,2,4,14,74,274,1274,1274,1274,148,149,'AXAAAA','AJIAAA','OOOOxx' +2828,5643,0,0,8,8,28,828,828,2828,2828,56,57,'UEAAAA','BJIAAA','VVVVxx' +3427,5644,1,3,7,7,27,427,1427,3427,3427,54,55,'VBAAAA','CJIAAA','AAAAxx' +612,5645,0,0,2,12,12,612,612,612,612,24,25,'OXAAAA','DJIAAA','HHHHxx' +8729,5646,1,1,9,9,29,729,729,3729,8729,58,59,'TXAAAA','EJIAAA','OOOOxx' +1239,5647,1,3,9,19,39,239,1239,1239,1239,78,79,'RVAAAA','FJIAAA','VVVVxx' +8990,5648,0,2,0,10,90,990,990,3990,8990,180,181,'UHAAAA','GJIAAA','AAAAxx' +5609,5649,1,1,9,9,9,609,1609,609,5609,18,19,'THAAAA','HJIAAA','HHHHxx' +4441,5650,1,1,1,1,41,441,441,4441,4441,82,83,'VOAAAA','IJIAAA','OOOOxx' +9078,5651,0,2,8,18,78,78,1078,4078,9078,156,157,'ELAAAA','JJIAAA','VVVVxx' +6699,5652,1,3,9,19,99,699,699,1699,6699,198,199,'RXAAAA','KJIAAA','AAAAxx' +8390,5653,0,2,0,10,90,390,390,3390,8390,180,181,'SKAAAA','LJIAAA','HHHHxx' +5455,5654,1,3,5,15,55,455,1455,455,5455,110,111,'VBAAAA','MJIAAA','OOOOxx' +7537,5655,1,1,7,17,37,537,1537,2537,7537,74,75,'XDAAAA','NJIAAA','VVVVxx' +4669,5656,1,1,9,9,69,669,669,4669,4669,138,139,'PXAAAA','OJIAAA','AAAAxx' +5534,5657,0,2,4,14,34,534,1534,534,5534,68,69,'WEAAAA','PJIAAA','HHHHxx' +1920,5658,0,0,0,0,20,920,1920,1920,1920,40,41,'WVAAAA','QJIAAA','OOOOxx' +9465,5659,1,1,5,5,65,465,1465,4465,9465,130,131,'BAAAAA','RJIAAA','VVVVxx' +4897,5660,1,1,7,17,97,897,897,4897,4897,194,195,'JGAAAA','SJIAAA','AAAAxx' +1990,5661,0,2,0,10,90,990,1990,1990,1990,180,181,'OYAAAA','TJIAAA','HHHHxx' +7148,5662,0,0,8,8,48,148,1148,2148,7148,96,97,'YOAAAA','UJIAAA','OOOOxx' +533,5663,1,1,3,13,33,533,533,533,533,66,67,'NUAAAA','VJIAAA','VVVVxx' +4339,5664,1,3,9,19,39,339,339,4339,4339,78,79,'XKAAAA','WJIAAA','AAAAxx' +6450,5665,0,2,0,10,50,450,450,1450,6450,100,101,'COAAAA','XJIAAA','HHHHxx' +9627,5666,1,3,7,7,27,627,1627,4627,9627,54,55,'HGAAAA','YJIAAA','OOOOxx' +5539,5667,1,3,9,19,39,539,1539,539,5539,78,79,'BFAAAA','ZJIAAA','VVVVxx' +6758,5668,0,2,8,18,58,758,758,1758,6758,116,117,'YZAAAA','AKIAAA','AAAAxx' +3435,5669,1,3,5,15,35,435,1435,3435,3435,70,71,'DCAAAA','BKIAAA','HHHHxx' +4350,5670,0,2,0,10,50,350,350,4350,4350,100,101,'ILAAAA','CKIAAA','OOOOxx' +9088,5671,0,0,8,8,88,88,1088,4088,9088,176,177,'OLAAAA','DKIAAA','VVVVxx' +6368,5672,0,0,8,8,68,368,368,1368,6368,136,137,'YKAAAA','EKIAAA','AAAAxx' +6337,5673,1,1,7,17,37,337,337,1337,6337,74,75,'TJAAAA','FKIAAA','HHHHxx' +4361,5674,1,1,1,1,61,361,361,4361,4361,122,123,'TLAAAA','GKIAAA','OOOOxx' +1719,5675,1,3,9,19,19,719,1719,1719,1719,38,39,'DOAAAA','HKIAAA','VVVVxx' +3109,5676,1,1,9,9,9,109,1109,3109,3109,18,19,'PPAAAA','IKIAAA','AAAAxx' +7135,5677,1,3,5,15,35,135,1135,2135,7135,70,71,'LOAAAA','JKIAAA','HHHHxx' +1964,5678,0,0,4,4,64,964,1964,1964,1964,128,129,'OXAAAA','KKIAAA','OOOOxx' +3,5679,1,3,3,3,3,3,3,3,3,6,7,'DAAAAA','LKIAAA','VVVVxx' +1868,5680,0,0,8,8,68,868,1868,1868,1868,136,137,'WTAAAA','MKIAAA','AAAAxx' +5182,5681,0,2,2,2,82,182,1182,182,5182,164,165,'IRAAAA','NKIAAA','HHHHxx' +7567,5682,1,3,7,7,67,567,1567,2567,7567,134,135,'BFAAAA','OKIAAA','OOOOxx' +3676,5683,0,0,6,16,76,676,1676,3676,3676,152,153,'KLAAAA','PKIAAA','VVVVxx' +9382,5684,0,2,2,2,82,382,1382,4382,9382,164,165,'WWAAAA','QKIAAA','AAAAxx' +8645,5685,1,1,5,5,45,645,645,3645,8645,90,91,'NUAAAA','RKIAAA','HHHHxx' +2018,5686,0,2,8,18,18,18,18,2018,2018,36,37,'QZAAAA','SKIAAA','OOOOxx' +217,5687,1,1,7,17,17,217,217,217,217,34,35,'JIAAAA','TKIAAA','VVVVxx' +6793,5688,1,1,3,13,93,793,793,1793,6793,186,187,'HBAAAA','UKIAAA','AAAAxx' +7280,5689,0,0,0,0,80,280,1280,2280,7280,160,161,'AUAAAA','VKIAAA','HHHHxx' +2168,5690,0,0,8,8,68,168,168,2168,2168,136,137,'KFAAAA','WKIAAA','OOOOxx' +5259,5691,1,3,9,19,59,259,1259,259,5259,118,119,'HUAAAA','XKIAAA','VVVVxx' +6019,5692,1,3,9,19,19,19,19,1019,6019,38,39,'NXAAAA','YKIAAA','AAAAxx' +877,5693,1,1,7,17,77,877,877,877,877,154,155,'THAAAA','ZKIAAA','HHHHxx' +4961,5694,1,1,1,1,61,961,961,4961,4961,122,123,'VIAAAA','ALIAAA','OOOOxx' +1873,5695,1,1,3,13,73,873,1873,1873,1873,146,147,'BUAAAA','BLIAAA','VVVVxx' +13,5696,1,1,3,13,13,13,13,13,13,26,27,'NAAAAA','CLIAAA','AAAAxx' +1537,5697,1,1,7,17,37,537,1537,1537,1537,74,75,'DHAAAA','DLIAAA','HHHHxx' +3129,5698,1,1,9,9,29,129,1129,3129,3129,58,59,'JQAAAA','ELIAAA','OOOOxx' +6473,5699,1,1,3,13,73,473,473,1473,6473,146,147,'ZOAAAA','FLIAAA','VVVVxx' +7865,5700,1,1,5,5,65,865,1865,2865,7865,130,131,'NQAAAA','GLIAAA','AAAAxx' +7822,5701,0,2,2,2,22,822,1822,2822,7822,44,45,'WOAAAA','HLIAAA','HHHHxx' +239,5702,1,3,9,19,39,239,239,239,239,78,79,'FJAAAA','ILIAAA','OOOOxx' +2062,5703,0,2,2,2,62,62,62,2062,2062,124,125,'IBAAAA','JLIAAA','VVVVxx' +762,5704,0,2,2,2,62,762,762,762,762,124,125,'IDAAAA','KLIAAA','AAAAxx' +3764,5705,0,0,4,4,64,764,1764,3764,3764,128,129,'UOAAAA','LLIAAA','HHHHxx' +465,5706,1,1,5,5,65,465,465,465,465,130,131,'XRAAAA','MLIAAA','OOOOxx' +2587,5707,1,3,7,7,87,587,587,2587,2587,174,175,'NVAAAA','NLIAAA','VVVVxx' +8402,5708,0,2,2,2,2,402,402,3402,8402,4,5,'ELAAAA','OLIAAA','AAAAxx' +1055,5709,1,3,5,15,55,55,1055,1055,1055,110,111,'POAAAA','PLIAAA','HHHHxx' +3072,5710,0,0,2,12,72,72,1072,3072,3072,144,145,'EOAAAA','QLIAAA','OOOOxx' +7359,5711,1,3,9,19,59,359,1359,2359,7359,118,119,'BXAAAA','RLIAAA','VVVVxx' +6558,5712,0,2,8,18,58,558,558,1558,6558,116,117,'GSAAAA','SLIAAA','AAAAxx' +48,5713,0,0,8,8,48,48,48,48,48,96,97,'WBAAAA','TLIAAA','HHHHxx' +5382,5714,0,2,2,2,82,382,1382,382,5382,164,165,'AZAAAA','ULIAAA','OOOOxx' +947,5715,1,3,7,7,47,947,947,947,947,94,95,'LKAAAA','VLIAAA','VVVVxx' +2644,5716,0,0,4,4,44,644,644,2644,2644,88,89,'SXAAAA','WLIAAA','AAAAxx' +7516,5717,0,0,6,16,16,516,1516,2516,7516,32,33,'CDAAAA','XLIAAA','HHHHxx' +2362,5718,0,2,2,2,62,362,362,2362,2362,124,125,'WMAAAA','YLIAAA','OOOOxx' +839,5719,1,3,9,19,39,839,839,839,839,78,79,'HGAAAA','ZLIAAA','VVVVxx' +2216,5720,0,0,6,16,16,216,216,2216,2216,32,33,'GHAAAA','AMIAAA','AAAAxx' +7673,5721,1,1,3,13,73,673,1673,2673,7673,146,147,'DJAAAA','BMIAAA','HHHHxx' +8173,5722,1,1,3,13,73,173,173,3173,8173,146,147,'JCAAAA','CMIAAA','OOOOxx' +1630,5723,0,2,0,10,30,630,1630,1630,1630,60,61,'SKAAAA','DMIAAA','VVVVxx' +9057,5724,1,1,7,17,57,57,1057,4057,9057,114,115,'JKAAAA','EMIAAA','AAAAxx' +4392,5725,0,0,2,12,92,392,392,4392,4392,184,185,'YMAAAA','FMIAAA','HHHHxx' +3695,5726,1,3,5,15,95,695,1695,3695,3695,190,191,'DMAAAA','GMIAAA','OOOOxx' +5751,5727,1,3,1,11,51,751,1751,751,5751,102,103,'FNAAAA','HMIAAA','VVVVxx' +5745,5728,1,1,5,5,45,745,1745,745,5745,90,91,'ZMAAAA','IMIAAA','AAAAxx' +7945,5729,1,1,5,5,45,945,1945,2945,7945,90,91,'PTAAAA','JMIAAA','HHHHxx' +5174,5730,0,2,4,14,74,174,1174,174,5174,148,149,'ARAAAA','KMIAAA','OOOOxx' +3829,5731,1,1,9,9,29,829,1829,3829,3829,58,59,'HRAAAA','LMIAAA','VVVVxx' +3317,5732,1,1,7,17,17,317,1317,3317,3317,34,35,'PXAAAA','MMIAAA','AAAAxx' +4253,5733,1,1,3,13,53,253,253,4253,4253,106,107,'PHAAAA','NMIAAA','HHHHxx' +1291,5734,1,3,1,11,91,291,1291,1291,1291,182,183,'RXAAAA','OMIAAA','OOOOxx' +3266,5735,0,2,6,6,66,266,1266,3266,3266,132,133,'QVAAAA','PMIAAA','VVVVxx' +2939,5736,1,3,9,19,39,939,939,2939,2939,78,79,'BJAAAA','QMIAAA','AAAAxx' +2755,5737,1,3,5,15,55,755,755,2755,2755,110,111,'ZBAAAA','RMIAAA','HHHHxx' +6844,5738,0,0,4,4,44,844,844,1844,6844,88,89,'GDAAAA','SMIAAA','OOOOxx' +8594,5739,0,2,4,14,94,594,594,3594,8594,188,189,'OSAAAA','TMIAAA','VVVVxx' +704,5740,0,0,4,4,4,704,704,704,704,8,9,'CBAAAA','UMIAAA','AAAAxx' +1681,5741,1,1,1,1,81,681,1681,1681,1681,162,163,'RMAAAA','VMIAAA','HHHHxx' +364,5742,0,0,4,4,64,364,364,364,364,128,129,'AOAAAA','WMIAAA','OOOOxx' +2928,5743,0,0,8,8,28,928,928,2928,2928,56,57,'QIAAAA','XMIAAA','VVVVxx' +117,5744,1,1,7,17,17,117,117,117,117,34,35,'NEAAAA','YMIAAA','AAAAxx' +96,5745,0,0,6,16,96,96,96,96,96,192,193,'SDAAAA','ZMIAAA','HHHHxx' +7796,5746,0,0,6,16,96,796,1796,2796,7796,192,193,'WNAAAA','ANIAAA','OOOOxx' +3101,5747,1,1,1,1,1,101,1101,3101,3101,2,3,'HPAAAA','BNIAAA','VVVVxx' +3397,5748,1,1,7,17,97,397,1397,3397,3397,194,195,'RAAAAA','CNIAAA','AAAAxx' +1605,5749,1,1,5,5,5,605,1605,1605,1605,10,11,'TJAAAA','DNIAAA','HHHHxx' +4881,5750,1,1,1,1,81,881,881,4881,4881,162,163,'TFAAAA','ENIAAA','OOOOxx' +4521,5751,1,1,1,1,21,521,521,4521,4521,42,43,'XRAAAA','FNIAAA','VVVVxx' +6430,5752,0,2,0,10,30,430,430,1430,6430,60,61,'INAAAA','GNIAAA','AAAAxx' +282,5753,0,2,2,2,82,282,282,282,282,164,165,'WKAAAA','HNIAAA','HHHHxx' +9645,5754,1,1,5,5,45,645,1645,4645,9645,90,91,'ZGAAAA','INIAAA','OOOOxx' +8946,5755,0,2,6,6,46,946,946,3946,8946,92,93,'CGAAAA','JNIAAA','VVVVxx' +5064,5756,0,0,4,4,64,64,1064,64,5064,128,129,'UMAAAA','KNIAAA','AAAAxx' +7470,5757,0,2,0,10,70,470,1470,2470,7470,140,141,'IBAAAA','LNIAAA','HHHHxx' +5886,5758,0,2,6,6,86,886,1886,886,5886,172,173,'KSAAAA','MNIAAA','OOOOxx' +6280,5759,0,0,0,0,80,280,280,1280,6280,160,161,'OHAAAA','NNIAAA','VVVVxx' +5247,5760,1,3,7,7,47,247,1247,247,5247,94,95,'VTAAAA','ONIAAA','AAAAxx' +412,5761,0,0,2,12,12,412,412,412,412,24,25,'WPAAAA','PNIAAA','HHHHxx' +5342,5762,0,2,2,2,42,342,1342,342,5342,84,85,'MXAAAA','QNIAAA','OOOOxx' +2271,5763,1,3,1,11,71,271,271,2271,2271,142,143,'JJAAAA','RNIAAA','VVVVxx' +849,5764,1,1,9,9,49,849,849,849,849,98,99,'RGAAAA','SNIAAA','AAAAxx' +1885,5765,1,1,5,5,85,885,1885,1885,1885,170,171,'NUAAAA','TNIAAA','HHHHxx' +5620,5766,0,0,0,0,20,620,1620,620,5620,40,41,'EIAAAA','UNIAAA','OOOOxx' +7079,5767,1,3,9,19,79,79,1079,2079,7079,158,159,'HMAAAA','VNIAAA','VVVVxx' +5819,5768,1,3,9,19,19,819,1819,819,5819,38,39,'VPAAAA','WNIAAA','AAAAxx' +7497,5769,1,1,7,17,97,497,1497,2497,7497,194,195,'JCAAAA','XNIAAA','HHHHxx' +5993,5770,1,1,3,13,93,993,1993,993,5993,186,187,'NWAAAA','YNIAAA','OOOOxx' +3739,5771,1,3,9,19,39,739,1739,3739,3739,78,79,'VNAAAA','ZNIAAA','VVVVxx' +6296,5772,0,0,6,16,96,296,296,1296,6296,192,193,'EIAAAA','AOIAAA','AAAAxx' +2716,5773,0,0,6,16,16,716,716,2716,2716,32,33,'MAAAAA','BOIAAA','HHHHxx' +1130,5774,0,2,0,10,30,130,1130,1130,1130,60,61,'MRAAAA','COIAAA','OOOOxx' +5593,5775,1,1,3,13,93,593,1593,593,5593,186,187,'DHAAAA','DOIAAA','VVVVxx' +6972,5776,0,0,2,12,72,972,972,1972,6972,144,145,'EIAAAA','EOIAAA','AAAAxx' +8360,5777,0,0,0,0,60,360,360,3360,8360,120,121,'OJAAAA','FOIAAA','HHHHxx' +6448,5778,0,0,8,8,48,448,448,1448,6448,96,97,'AOAAAA','GOIAAA','OOOOxx' +3689,5779,1,1,9,9,89,689,1689,3689,3689,178,179,'XLAAAA','HOIAAA','VVVVxx' +7951,5780,1,3,1,11,51,951,1951,2951,7951,102,103,'VTAAAA','IOIAAA','AAAAxx' +2974,5781,0,2,4,14,74,974,974,2974,2974,148,149,'KKAAAA','JOIAAA','HHHHxx' +6600,5782,0,0,0,0,0,600,600,1600,6600,0,1,'WTAAAA','KOIAAA','OOOOxx' +4662,5783,0,2,2,2,62,662,662,4662,4662,124,125,'IXAAAA','LOIAAA','VVVVxx' +4765,5784,1,1,5,5,65,765,765,4765,4765,130,131,'HBAAAA','MOIAAA','AAAAxx' +355,5785,1,3,5,15,55,355,355,355,355,110,111,'RNAAAA','NOIAAA','HHHHxx' +6228,5786,0,0,8,8,28,228,228,1228,6228,56,57,'OFAAAA','OOIAAA','OOOOxx' +964,5787,0,0,4,4,64,964,964,964,964,128,129,'CLAAAA','POIAAA','VVVVxx' +3082,5788,0,2,2,2,82,82,1082,3082,3082,164,165,'OOAAAA','QOIAAA','AAAAxx' +7028,5789,0,0,8,8,28,28,1028,2028,7028,56,57,'IKAAAA','ROIAAA','HHHHxx' +4505,5790,1,1,5,5,5,505,505,4505,4505,10,11,'HRAAAA','SOIAAA','OOOOxx' +8961,5791,1,1,1,1,61,961,961,3961,8961,122,123,'RGAAAA','TOIAAA','VVVVxx' +9571,5792,1,3,1,11,71,571,1571,4571,9571,142,143,'DEAAAA','UOIAAA','AAAAxx' +9394,5793,0,2,4,14,94,394,1394,4394,9394,188,189,'IXAAAA','VOIAAA','HHHHxx' +4245,5794,1,1,5,5,45,245,245,4245,4245,90,91,'HHAAAA','WOIAAA','OOOOxx' +7560,5795,0,0,0,0,60,560,1560,2560,7560,120,121,'UEAAAA','XOIAAA','VVVVxx' +2907,5796,1,3,7,7,7,907,907,2907,2907,14,15,'VHAAAA','YOIAAA','AAAAxx' +7817,5797,1,1,7,17,17,817,1817,2817,7817,34,35,'ROAAAA','ZOIAAA','HHHHxx' +5408,5798,0,0,8,8,8,408,1408,408,5408,16,17,'AAAAAA','APIAAA','OOOOxx' +8092,5799,0,0,2,12,92,92,92,3092,8092,184,185,'GZAAAA','BPIAAA','VVVVxx' +1309,5800,1,1,9,9,9,309,1309,1309,1309,18,19,'JYAAAA','CPIAAA','AAAAxx' +6673,5801,1,1,3,13,73,673,673,1673,6673,146,147,'RWAAAA','DPIAAA','HHHHxx' +1245,5802,1,1,5,5,45,245,1245,1245,1245,90,91,'XVAAAA','EPIAAA','OOOOxx' +6790,5803,0,2,0,10,90,790,790,1790,6790,180,181,'EBAAAA','FPIAAA','VVVVxx' +8380,5804,0,0,0,0,80,380,380,3380,8380,160,161,'IKAAAA','GPIAAA','AAAAxx' +5786,5805,0,2,6,6,86,786,1786,786,5786,172,173,'OOAAAA','HPIAAA','HHHHxx' +9590,5806,0,2,0,10,90,590,1590,4590,9590,180,181,'WEAAAA','IPIAAA','OOOOxx' +5763,5807,1,3,3,3,63,763,1763,763,5763,126,127,'RNAAAA','JPIAAA','VVVVxx' +1345,5808,1,1,5,5,45,345,1345,1345,1345,90,91,'TZAAAA','KPIAAA','AAAAxx' +3480,5809,0,0,0,0,80,480,1480,3480,3480,160,161,'WDAAAA','LPIAAA','HHHHxx' +7864,5810,0,0,4,4,64,864,1864,2864,7864,128,129,'MQAAAA','MPIAAA','OOOOxx' +4853,5811,1,1,3,13,53,853,853,4853,4853,106,107,'REAAAA','NPIAAA','VVVVxx' +1445,5812,1,1,5,5,45,445,1445,1445,1445,90,91,'PDAAAA','OPIAAA','AAAAxx' +170,5813,0,2,0,10,70,170,170,170,170,140,141,'OGAAAA','PPIAAA','HHHHxx' +7348,5814,0,0,8,8,48,348,1348,2348,7348,96,97,'QWAAAA','QPIAAA','OOOOxx' +3920,5815,0,0,0,0,20,920,1920,3920,3920,40,41,'UUAAAA','RPIAAA','VVVVxx' +3307,5816,1,3,7,7,7,307,1307,3307,3307,14,15,'FXAAAA','SPIAAA','AAAAxx' +4584,5817,0,0,4,4,84,584,584,4584,4584,168,169,'IUAAAA','TPIAAA','HHHHxx' +3344,5818,0,0,4,4,44,344,1344,3344,3344,88,89,'QYAAAA','UPIAAA','OOOOxx' +4360,5819,0,0,0,0,60,360,360,4360,4360,120,121,'SLAAAA','VPIAAA','VVVVxx' +8757,5820,1,1,7,17,57,757,757,3757,8757,114,115,'VYAAAA','WPIAAA','AAAAxx' +4315,5821,1,3,5,15,15,315,315,4315,4315,30,31,'ZJAAAA','XPIAAA','HHHHxx' +5243,5822,1,3,3,3,43,243,1243,243,5243,86,87,'RTAAAA','YPIAAA','OOOOxx' +8550,5823,0,2,0,10,50,550,550,3550,8550,100,101,'WQAAAA','ZPIAAA','VVVVxx' +159,5824,1,3,9,19,59,159,159,159,159,118,119,'DGAAAA','AQIAAA','AAAAxx' +4710,5825,0,2,0,10,10,710,710,4710,4710,20,21,'EZAAAA','BQIAAA','HHHHxx' +7179,5826,1,3,9,19,79,179,1179,2179,7179,158,159,'DQAAAA','CQIAAA','OOOOxx' +2509,5827,1,1,9,9,9,509,509,2509,2509,18,19,'NSAAAA','DQIAAA','VVVVxx' +6981,5828,1,1,1,1,81,981,981,1981,6981,162,163,'NIAAAA','EQIAAA','AAAAxx' +5060,5829,0,0,0,0,60,60,1060,60,5060,120,121,'QMAAAA','FQIAAA','HHHHxx' +5601,5830,1,1,1,1,1,601,1601,601,5601,2,3,'LHAAAA','GQIAAA','OOOOxx' +703,5831,1,3,3,3,3,703,703,703,703,6,7,'BBAAAA','HQIAAA','VVVVxx' +8719,5832,1,3,9,19,19,719,719,3719,8719,38,39,'JXAAAA','IQIAAA','AAAAxx' +1570,5833,0,2,0,10,70,570,1570,1570,1570,140,141,'KIAAAA','JQIAAA','HHHHxx' +1036,5834,0,0,6,16,36,36,1036,1036,1036,72,73,'WNAAAA','KQIAAA','OOOOxx' +6703,5835,1,3,3,3,3,703,703,1703,6703,6,7,'VXAAAA','LQIAAA','VVVVxx' +252,5836,0,0,2,12,52,252,252,252,252,104,105,'SJAAAA','MQIAAA','AAAAxx' +631,5837,1,3,1,11,31,631,631,631,631,62,63,'HYAAAA','NQIAAA','HHHHxx' +5098,5838,0,2,8,18,98,98,1098,98,5098,196,197,'COAAAA','OQIAAA','OOOOxx' +8346,5839,0,2,6,6,46,346,346,3346,8346,92,93,'AJAAAA','PQIAAA','VVVVxx' +4910,5840,0,2,0,10,10,910,910,4910,4910,20,21,'WGAAAA','QQIAAA','AAAAxx' +559,5841,1,3,9,19,59,559,559,559,559,118,119,'NVAAAA','RQIAAA','HHHHxx' +1477,5842,1,1,7,17,77,477,1477,1477,1477,154,155,'VEAAAA','SQIAAA','OOOOxx' +5115,5843,1,3,5,15,15,115,1115,115,5115,30,31,'TOAAAA','TQIAAA','VVVVxx' +8784,5844,0,0,4,4,84,784,784,3784,8784,168,169,'WZAAAA','UQIAAA','AAAAxx' +4422,5845,0,2,2,2,22,422,422,4422,4422,44,45,'COAAAA','VQIAAA','HHHHxx' +2702,5846,0,2,2,2,2,702,702,2702,2702,4,5,'YZAAAA','WQIAAA','OOOOxx' +9599,5847,1,3,9,19,99,599,1599,4599,9599,198,199,'FFAAAA','XQIAAA','VVVVxx' +2463,5848,1,3,3,3,63,463,463,2463,2463,126,127,'TQAAAA','YQIAAA','AAAAxx' +498,5849,0,2,8,18,98,498,498,498,498,196,197,'ETAAAA','ZQIAAA','HHHHxx' +494,5850,0,2,4,14,94,494,494,494,494,188,189,'ATAAAA','ARIAAA','OOOOxx' +8632,5851,0,0,2,12,32,632,632,3632,8632,64,65,'AUAAAA','BRIAAA','VVVVxx' +3449,5852,1,1,9,9,49,449,1449,3449,3449,98,99,'RCAAAA','CRIAAA','AAAAxx' +5888,5853,0,0,8,8,88,888,1888,888,5888,176,177,'MSAAAA','DRIAAA','HHHHxx' +2211,5854,1,3,1,11,11,211,211,2211,2211,22,23,'BHAAAA','ERIAAA','OOOOxx' +2835,5855,1,3,5,15,35,835,835,2835,2835,70,71,'BFAAAA','FRIAAA','VVVVxx' +4196,5856,0,0,6,16,96,196,196,4196,4196,192,193,'KFAAAA','GRIAAA','AAAAxx' +2177,5857,1,1,7,17,77,177,177,2177,2177,154,155,'TFAAAA','HRIAAA','HHHHxx' +1959,5858,1,3,9,19,59,959,1959,1959,1959,118,119,'JXAAAA','IRIAAA','OOOOxx' +5172,5859,0,0,2,12,72,172,1172,172,5172,144,145,'YQAAAA','JRIAAA','VVVVxx' +7898,5860,0,2,8,18,98,898,1898,2898,7898,196,197,'URAAAA','KRIAAA','AAAAxx' +5729,5861,1,1,9,9,29,729,1729,729,5729,58,59,'JMAAAA','LRIAAA','HHHHxx' +469,5862,1,1,9,9,69,469,469,469,469,138,139,'BSAAAA','MRIAAA','OOOOxx' +4456,5863,0,0,6,16,56,456,456,4456,4456,112,113,'KPAAAA','NRIAAA','VVVVxx' +3578,5864,0,2,8,18,78,578,1578,3578,3578,156,157,'QHAAAA','ORIAAA','AAAAxx' +8623,5865,1,3,3,3,23,623,623,3623,8623,46,47,'RTAAAA','PRIAAA','HHHHxx' +6749,5866,1,1,9,9,49,749,749,1749,6749,98,99,'PZAAAA','QRIAAA','OOOOxx' +6735,5867,1,3,5,15,35,735,735,1735,6735,70,71,'BZAAAA','RRIAAA','VVVVxx' +5197,5868,1,1,7,17,97,197,1197,197,5197,194,195,'XRAAAA','SRIAAA','AAAAxx' +2067,5869,1,3,7,7,67,67,67,2067,2067,134,135,'NBAAAA','TRIAAA','HHHHxx' +5600,5870,0,0,0,0,0,600,1600,600,5600,0,1,'KHAAAA','URIAAA','OOOOxx' +7741,5871,1,1,1,1,41,741,1741,2741,7741,82,83,'TLAAAA','VRIAAA','VVVVxx' +9925,5872,1,1,5,5,25,925,1925,4925,9925,50,51,'TRAAAA','WRIAAA','AAAAxx' +9685,5873,1,1,5,5,85,685,1685,4685,9685,170,171,'NIAAAA','XRIAAA','HHHHxx' +7622,5874,0,2,2,2,22,622,1622,2622,7622,44,45,'EHAAAA','YRIAAA','OOOOxx' +6859,5875,1,3,9,19,59,859,859,1859,6859,118,119,'VDAAAA','ZRIAAA','VVVVxx' +3094,5876,0,2,4,14,94,94,1094,3094,3094,188,189,'APAAAA','ASIAAA','AAAAxx' +2628,5877,0,0,8,8,28,628,628,2628,2628,56,57,'CXAAAA','BSIAAA','HHHHxx' +40,5878,0,0,0,0,40,40,40,40,40,80,81,'OBAAAA','CSIAAA','OOOOxx' +1644,5879,0,0,4,4,44,644,1644,1644,1644,88,89,'GLAAAA','DSIAAA','VVVVxx' +588,5880,0,0,8,8,88,588,588,588,588,176,177,'QWAAAA','ESIAAA','AAAAxx' +7522,5881,0,2,2,2,22,522,1522,2522,7522,44,45,'IDAAAA','FSIAAA','HHHHxx' +162,5882,0,2,2,2,62,162,162,162,162,124,125,'GGAAAA','GSIAAA','OOOOxx' +3610,5883,0,2,0,10,10,610,1610,3610,3610,20,21,'WIAAAA','HSIAAA','VVVVxx' +3561,5884,1,1,1,1,61,561,1561,3561,3561,122,123,'ZGAAAA','ISIAAA','AAAAxx' +8185,5885,1,1,5,5,85,185,185,3185,8185,170,171,'VCAAAA','JSIAAA','HHHHxx' +7237,5886,1,1,7,17,37,237,1237,2237,7237,74,75,'JSAAAA','KSIAAA','OOOOxx' +4592,5887,0,0,2,12,92,592,592,4592,4592,184,185,'QUAAAA','LSIAAA','VVVVxx' +7082,5888,0,2,2,2,82,82,1082,2082,7082,164,165,'KMAAAA','MSIAAA','AAAAxx' +4719,5889,1,3,9,19,19,719,719,4719,4719,38,39,'NZAAAA','NSIAAA','HHHHxx' +3879,5890,1,3,9,19,79,879,1879,3879,3879,158,159,'FTAAAA','OSIAAA','OOOOxx' +1662,5891,0,2,2,2,62,662,1662,1662,1662,124,125,'YLAAAA','PSIAAA','VVVVxx' +3995,5892,1,3,5,15,95,995,1995,3995,3995,190,191,'RXAAAA','QSIAAA','AAAAxx' +5828,5893,0,0,8,8,28,828,1828,828,5828,56,57,'EQAAAA','RSIAAA','HHHHxx' +4197,5894,1,1,7,17,97,197,197,4197,4197,194,195,'LFAAAA','SSIAAA','OOOOxx' +5146,5895,0,2,6,6,46,146,1146,146,5146,92,93,'YPAAAA','TSIAAA','VVVVxx' +753,5896,1,1,3,13,53,753,753,753,753,106,107,'ZCAAAA','USIAAA','AAAAxx' +7064,5897,0,0,4,4,64,64,1064,2064,7064,128,129,'SLAAAA','VSIAAA','HHHHxx' +1312,5898,0,0,2,12,12,312,1312,1312,1312,24,25,'MYAAAA','WSIAAA','OOOOxx' +5573,5899,1,1,3,13,73,573,1573,573,5573,146,147,'JGAAAA','XSIAAA','VVVVxx' +7634,5900,0,2,4,14,34,634,1634,2634,7634,68,69,'QHAAAA','YSIAAA','AAAAxx' +2459,5901,1,3,9,19,59,459,459,2459,2459,118,119,'PQAAAA','ZSIAAA','HHHHxx' +8636,5902,0,0,6,16,36,636,636,3636,8636,72,73,'EUAAAA','ATIAAA','OOOOxx' +5318,5903,0,2,8,18,18,318,1318,318,5318,36,37,'OWAAAA','BTIAAA','VVVVxx' +1064,5904,0,0,4,4,64,64,1064,1064,1064,128,129,'YOAAAA','CTIAAA','AAAAxx' +9779,5905,1,3,9,19,79,779,1779,4779,9779,158,159,'DMAAAA','DTIAAA','HHHHxx' +6512,5906,0,0,2,12,12,512,512,1512,6512,24,25,'MQAAAA','ETIAAA','OOOOxx' +3572,5907,0,0,2,12,72,572,1572,3572,3572,144,145,'KHAAAA','FTIAAA','VVVVxx' +816,5908,0,0,6,16,16,816,816,816,816,32,33,'KFAAAA','GTIAAA','AAAAxx' +3978,5909,0,2,8,18,78,978,1978,3978,3978,156,157,'AXAAAA','HTIAAA','HHHHxx' +5390,5910,0,2,0,10,90,390,1390,390,5390,180,181,'IZAAAA','ITIAAA','OOOOxx' +4685,5911,1,1,5,5,85,685,685,4685,4685,170,171,'FYAAAA','JTIAAA','VVVVxx' +3003,5912,1,3,3,3,3,3,1003,3003,3003,6,7,'NLAAAA','KTIAAA','AAAAxx' +2638,5913,0,2,8,18,38,638,638,2638,2638,76,77,'MXAAAA','LTIAAA','HHHHxx' +9716,5914,0,0,6,16,16,716,1716,4716,9716,32,33,'SJAAAA','MTIAAA','OOOOxx' +9598,5915,0,2,8,18,98,598,1598,4598,9598,196,197,'EFAAAA','NTIAAA','VVVVxx' +9501,5916,1,1,1,1,1,501,1501,4501,9501,2,3,'LBAAAA','OTIAAA','AAAAxx' +1704,5917,0,0,4,4,4,704,1704,1704,1704,8,9,'ONAAAA','PTIAAA','HHHHxx' +8609,5918,1,1,9,9,9,609,609,3609,8609,18,19,'DTAAAA','QTIAAA','OOOOxx' +5211,5919,1,3,1,11,11,211,1211,211,5211,22,23,'LSAAAA','RTIAAA','VVVVxx' +3605,5920,1,1,5,5,5,605,1605,3605,3605,10,11,'RIAAAA','STIAAA','AAAAxx' +8730,5921,0,2,0,10,30,730,730,3730,8730,60,61,'UXAAAA','TTIAAA','HHHHxx' +4208,5922,0,0,8,8,8,208,208,4208,4208,16,17,'WFAAAA','UTIAAA','OOOOxx' +7784,5923,0,0,4,4,84,784,1784,2784,7784,168,169,'KNAAAA','VTIAAA','VVVVxx' +7501,5924,1,1,1,1,1,501,1501,2501,7501,2,3,'NCAAAA','WTIAAA','AAAAxx' +7862,5925,0,2,2,2,62,862,1862,2862,7862,124,125,'KQAAAA','XTIAAA','HHHHxx' +8922,5926,0,2,2,2,22,922,922,3922,8922,44,45,'EFAAAA','YTIAAA','OOOOxx' +3857,5927,1,1,7,17,57,857,1857,3857,3857,114,115,'JSAAAA','ZTIAAA','VVVVxx' +6393,5928,1,1,3,13,93,393,393,1393,6393,186,187,'XLAAAA','AUIAAA','AAAAxx' +506,5929,0,2,6,6,6,506,506,506,506,12,13,'MTAAAA','BUIAAA','HHHHxx' +4232,5930,0,0,2,12,32,232,232,4232,4232,64,65,'UGAAAA','CUIAAA','OOOOxx' +8991,5931,1,3,1,11,91,991,991,3991,8991,182,183,'VHAAAA','DUIAAA','VVVVxx' +8578,5932,0,2,8,18,78,578,578,3578,8578,156,157,'YRAAAA','EUIAAA','AAAAxx' +3235,5933,1,3,5,15,35,235,1235,3235,3235,70,71,'LUAAAA','FUIAAA','HHHHxx' +963,5934,1,3,3,3,63,963,963,963,963,126,127,'BLAAAA','GUIAAA','OOOOxx' +113,5935,1,1,3,13,13,113,113,113,113,26,27,'JEAAAA','HUIAAA','VVVVxx' +8234,5936,0,2,4,14,34,234,234,3234,8234,68,69,'SEAAAA','IUIAAA','AAAAxx' +2613,5937,1,1,3,13,13,613,613,2613,2613,26,27,'NWAAAA','JUIAAA','HHHHxx' +5540,5938,0,0,0,0,40,540,1540,540,5540,80,81,'CFAAAA','KUIAAA','OOOOxx' +9727,5939,1,3,7,7,27,727,1727,4727,9727,54,55,'DKAAAA','LUIAAA','VVVVxx' +2229,5940,1,1,9,9,29,229,229,2229,2229,58,59,'THAAAA','MUIAAA','AAAAxx' +6242,5941,0,2,2,2,42,242,242,1242,6242,84,85,'CGAAAA','NUIAAA','HHHHxx' +2502,5942,0,2,2,2,2,502,502,2502,2502,4,5,'GSAAAA','OUIAAA','OOOOxx' +6212,5943,0,0,2,12,12,212,212,1212,6212,24,25,'YEAAAA','PUIAAA','VVVVxx' +3495,5944,1,3,5,15,95,495,1495,3495,3495,190,191,'LEAAAA','QUIAAA','AAAAxx' +2364,5945,0,0,4,4,64,364,364,2364,2364,128,129,'YMAAAA','RUIAAA','HHHHxx' +6777,5946,1,1,7,17,77,777,777,1777,6777,154,155,'RAAAAA','SUIAAA','OOOOxx' +9811,5947,1,3,1,11,11,811,1811,4811,9811,22,23,'JNAAAA','TUIAAA','VVVVxx' +1450,5948,0,2,0,10,50,450,1450,1450,1450,100,101,'UDAAAA','UUIAAA','AAAAxx' +5008,5949,0,0,8,8,8,8,1008,8,5008,16,17,'QKAAAA','VUIAAA','HHHHxx' +1318,5950,0,2,8,18,18,318,1318,1318,1318,36,37,'SYAAAA','WUIAAA','OOOOxx' +3373,5951,1,1,3,13,73,373,1373,3373,3373,146,147,'TZAAAA','XUIAAA','VVVVxx' +398,5952,0,2,8,18,98,398,398,398,398,196,197,'IPAAAA','YUIAAA','AAAAxx' +3804,5953,0,0,4,4,4,804,1804,3804,3804,8,9,'IQAAAA','ZUIAAA','HHHHxx' +9148,5954,0,0,8,8,48,148,1148,4148,9148,96,97,'WNAAAA','AVIAAA','OOOOxx' +4382,5955,0,2,2,2,82,382,382,4382,4382,164,165,'OMAAAA','BVIAAA','VVVVxx' +4026,5956,0,2,6,6,26,26,26,4026,4026,52,53,'WYAAAA','CVIAAA','AAAAxx' +7804,5957,0,0,4,4,4,804,1804,2804,7804,8,9,'EOAAAA','DVIAAA','HHHHxx' +6839,5958,1,3,9,19,39,839,839,1839,6839,78,79,'BDAAAA','EVIAAA','OOOOxx' +3756,5959,0,0,6,16,56,756,1756,3756,3756,112,113,'MOAAAA','FVIAAA','VVVVxx' +6734,5960,0,2,4,14,34,734,734,1734,6734,68,69,'AZAAAA','GVIAAA','AAAAxx' +2228,5961,0,0,8,8,28,228,228,2228,2228,56,57,'SHAAAA','HVIAAA','HHHHxx' +3273,5962,1,1,3,13,73,273,1273,3273,3273,146,147,'XVAAAA','IVIAAA','OOOOxx' +3708,5963,0,0,8,8,8,708,1708,3708,3708,16,17,'QMAAAA','JVIAAA','VVVVxx' +4320,5964,0,0,0,0,20,320,320,4320,4320,40,41,'EKAAAA','KVIAAA','AAAAxx' +74,5965,0,2,4,14,74,74,74,74,74,148,149,'WCAAAA','LVIAAA','HHHHxx' +2520,5966,0,0,0,0,20,520,520,2520,2520,40,41,'YSAAAA','MVIAAA','OOOOxx' +9619,5967,1,3,9,19,19,619,1619,4619,9619,38,39,'ZFAAAA','NVIAAA','VVVVxx' +1801,5968,1,1,1,1,1,801,1801,1801,1801,2,3,'HRAAAA','OVIAAA','AAAAxx' +6399,5969,1,3,9,19,99,399,399,1399,6399,198,199,'DMAAAA','PVIAAA','HHHHxx' +8313,5970,1,1,3,13,13,313,313,3313,8313,26,27,'THAAAA','QVIAAA','OOOOxx' +7003,5971,1,3,3,3,3,3,1003,2003,7003,6,7,'JJAAAA','RVIAAA','VVVVxx' +329,5972,1,1,9,9,29,329,329,329,329,58,59,'RMAAAA','SVIAAA','AAAAxx' +9090,5973,0,2,0,10,90,90,1090,4090,9090,180,181,'QLAAAA','TVIAAA','HHHHxx' +2299,5974,1,3,9,19,99,299,299,2299,2299,198,199,'LKAAAA','UVIAAA','OOOOxx' +3925,5975,1,1,5,5,25,925,1925,3925,3925,50,51,'ZUAAAA','VVIAAA','VVVVxx' +8145,5976,1,1,5,5,45,145,145,3145,8145,90,91,'HBAAAA','WVIAAA','AAAAxx' +8561,5977,1,1,1,1,61,561,561,3561,8561,122,123,'HRAAAA','XVIAAA','HHHHxx' +2797,5978,1,1,7,17,97,797,797,2797,2797,194,195,'PDAAAA','YVIAAA','OOOOxx' +1451,5979,1,3,1,11,51,451,1451,1451,1451,102,103,'VDAAAA','ZVIAAA','VVVVxx' +7977,5980,1,1,7,17,77,977,1977,2977,7977,154,155,'VUAAAA','AWIAAA','AAAAxx' +112,5981,0,0,2,12,12,112,112,112,112,24,25,'IEAAAA','BWIAAA','HHHHxx' +5265,5982,1,1,5,5,65,265,1265,265,5265,130,131,'NUAAAA','CWIAAA','OOOOxx' +3819,5983,1,3,9,19,19,819,1819,3819,3819,38,39,'XQAAAA','DWIAAA','VVVVxx' +3648,5984,0,0,8,8,48,648,1648,3648,3648,96,97,'IKAAAA','EWIAAA','AAAAxx' +6306,5985,0,2,6,6,6,306,306,1306,6306,12,13,'OIAAAA','FWIAAA','HHHHxx' +2385,5986,1,1,5,5,85,385,385,2385,2385,170,171,'TNAAAA','GWIAAA','OOOOxx' +9084,5987,0,0,4,4,84,84,1084,4084,9084,168,169,'KLAAAA','HWIAAA','VVVVxx' +4499,5988,1,3,9,19,99,499,499,4499,4499,198,199,'BRAAAA','IWIAAA','AAAAxx' +1154,5989,0,2,4,14,54,154,1154,1154,1154,108,109,'KSAAAA','JWIAAA','HHHHxx' +6800,5990,0,0,0,0,0,800,800,1800,6800,0,1,'OBAAAA','KWIAAA','OOOOxx' +8049,5991,1,1,9,9,49,49,49,3049,8049,98,99,'PXAAAA','LWIAAA','VVVVxx' +3733,5992,1,1,3,13,33,733,1733,3733,3733,66,67,'PNAAAA','MWIAAA','AAAAxx' +8496,5993,0,0,6,16,96,496,496,3496,8496,192,193,'UOAAAA','NWIAAA','HHHHxx' +9952,5994,0,0,2,12,52,952,1952,4952,9952,104,105,'USAAAA','OWIAAA','OOOOxx' +9792,5995,0,0,2,12,92,792,1792,4792,9792,184,185,'QMAAAA','PWIAAA','VVVVxx' +5081,5996,1,1,1,1,81,81,1081,81,5081,162,163,'LNAAAA','QWIAAA','AAAAxx' +7908,5997,0,0,8,8,8,908,1908,2908,7908,16,17,'ESAAAA','RWIAAA','HHHHxx' +5398,5998,0,2,8,18,98,398,1398,398,5398,196,197,'QZAAAA','SWIAAA','OOOOxx' +8423,5999,1,3,3,3,23,423,423,3423,8423,46,47,'ZLAAAA','TWIAAA','VVVVxx' +3362,6000,0,2,2,2,62,362,1362,3362,3362,124,125,'IZAAAA','UWIAAA','AAAAxx' +7767,6001,1,3,7,7,67,767,1767,2767,7767,134,135,'TMAAAA','VWIAAA','HHHHxx' +7063,6002,1,3,3,3,63,63,1063,2063,7063,126,127,'RLAAAA','WWIAAA','OOOOxx' +8350,6003,0,2,0,10,50,350,350,3350,8350,100,101,'EJAAAA','XWIAAA','VVVVxx' +6779,6004,1,3,9,19,79,779,779,1779,6779,158,159,'TAAAAA','YWIAAA','AAAAxx' +5742,6005,0,2,2,2,42,742,1742,742,5742,84,85,'WMAAAA','ZWIAAA','HHHHxx' +9045,6006,1,1,5,5,45,45,1045,4045,9045,90,91,'XJAAAA','AXIAAA','OOOOxx' +8792,6007,0,0,2,12,92,792,792,3792,8792,184,185,'EAAAAA','BXIAAA','VVVVxx' +8160,6008,0,0,0,0,60,160,160,3160,8160,120,121,'WBAAAA','CXIAAA','AAAAxx' +3061,6009,1,1,1,1,61,61,1061,3061,3061,122,123,'TNAAAA','DXIAAA','HHHHxx' +4721,6010,1,1,1,1,21,721,721,4721,4721,42,43,'PZAAAA','EXIAAA','OOOOxx' +9817,6011,1,1,7,17,17,817,1817,4817,9817,34,35,'PNAAAA','FXIAAA','VVVVxx' +9257,6012,1,1,7,17,57,257,1257,4257,9257,114,115,'BSAAAA','GXIAAA','AAAAxx' +7779,6013,1,3,9,19,79,779,1779,2779,7779,158,159,'FNAAAA','HXIAAA','HHHHxx' +2663,6014,1,3,3,3,63,663,663,2663,2663,126,127,'LYAAAA','IXIAAA','OOOOxx' +3885,6015,1,1,5,5,85,885,1885,3885,3885,170,171,'LTAAAA','JXIAAA','VVVVxx' +9469,6016,1,1,9,9,69,469,1469,4469,9469,138,139,'FAAAAA','KXIAAA','AAAAxx' +6766,6017,0,2,6,6,66,766,766,1766,6766,132,133,'GAAAAA','LXIAAA','HHHHxx' +7173,6018,1,1,3,13,73,173,1173,2173,7173,146,147,'XPAAAA','MXIAAA','OOOOxx' +4709,6019,1,1,9,9,9,709,709,4709,4709,18,19,'DZAAAA','NXIAAA','VVVVxx' +4210,6020,0,2,0,10,10,210,210,4210,4210,20,21,'YFAAAA','OXIAAA','AAAAxx' +3715,6021,1,3,5,15,15,715,1715,3715,3715,30,31,'XMAAAA','PXIAAA','HHHHxx' +5089,6022,1,1,9,9,89,89,1089,89,5089,178,179,'TNAAAA','QXIAAA','OOOOxx' +1639,6023,1,3,9,19,39,639,1639,1639,1639,78,79,'BLAAAA','RXIAAA','VVVVxx' +5757,6024,1,1,7,17,57,757,1757,757,5757,114,115,'LNAAAA','SXIAAA','AAAAxx' +3545,6025,1,1,5,5,45,545,1545,3545,3545,90,91,'JGAAAA','TXIAAA','HHHHxx' +709,6026,1,1,9,9,9,709,709,709,709,18,19,'HBAAAA','UXIAAA','OOOOxx' +6519,6027,1,3,9,19,19,519,519,1519,6519,38,39,'TQAAAA','VXIAAA','VVVVxx' +4341,6028,1,1,1,1,41,341,341,4341,4341,82,83,'ZKAAAA','WXIAAA','AAAAxx' +2381,6029,1,1,1,1,81,381,381,2381,2381,162,163,'PNAAAA','XXIAAA','HHHHxx' +7215,6030,1,3,5,15,15,215,1215,2215,7215,30,31,'NRAAAA','YXIAAA','OOOOxx' +9323,6031,1,3,3,3,23,323,1323,4323,9323,46,47,'PUAAAA','ZXIAAA','VVVVxx' +3593,6032,1,1,3,13,93,593,1593,3593,3593,186,187,'FIAAAA','AYIAAA','AAAAxx' +3123,6033,1,3,3,3,23,123,1123,3123,3123,46,47,'DQAAAA','BYIAAA','HHHHxx' +8673,6034,1,1,3,13,73,673,673,3673,8673,146,147,'PVAAAA','CYIAAA','OOOOxx' +5094,6035,0,2,4,14,94,94,1094,94,5094,188,189,'YNAAAA','DYIAAA','VVVVxx' +6477,6036,1,1,7,17,77,477,477,1477,6477,154,155,'DPAAAA','EYIAAA','AAAAxx' +9734,6037,0,2,4,14,34,734,1734,4734,9734,68,69,'KKAAAA','FYIAAA','HHHHxx' +2998,6038,0,2,8,18,98,998,998,2998,2998,196,197,'ILAAAA','GYIAAA','OOOOxx' +7807,6039,1,3,7,7,7,807,1807,2807,7807,14,15,'HOAAAA','HYIAAA','VVVVxx' +5739,6040,1,3,9,19,39,739,1739,739,5739,78,79,'TMAAAA','IYIAAA','AAAAxx' +138,6041,0,2,8,18,38,138,138,138,138,76,77,'IFAAAA','JYIAAA','HHHHxx' +2403,6042,1,3,3,3,3,403,403,2403,2403,6,7,'LOAAAA','KYIAAA','OOOOxx' +2484,6043,0,0,4,4,84,484,484,2484,2484,168,169,'ORAAAA','LYIAAA','VVVVxx' +2805,6044,1,1,5,5,5,805,805,2805,2805,10,11,'XDAAAA','MYIAAA','AAAAxx' +5189,6045,1,1,9,9,89,189,1189,189,5189,178,179,'PRAAAA','NYIAAA','HHHHxx' +8336,6046,0,0,6,16,36,336,336,3336,8336,72,73,'QIAAAA','OYIAAA','OOOOxx' +5241,6047,1,1,1,1,41,241,1241,241,5241,82,83,'PTAAAA','PYIAAA','VVVVxx' +2612,6048,0,0,2,12,12,612,612,2612,2612,24,25,'MWAAAA','QYIAAA','AAAAxx' +2571,6049,1,3,1,11,71,571,571,2571,2571,142,143,'XUAAAA','RYIAAA','HHHHxx' +926,6050,0,2,6,6,26,926,926,926,926,52,53,'QJAAAA','SYIAAA','OOOOxx' +337,6051,1,1,7,17,37,337,337,337,337,74,75,'ZMAAAA','TYIAAA','VVVVxx' +2821,6052,1,1,1,1,21,821,821,2821,2821,42,43,'NEAAAA','UYIAAA','AAAAxx' +2658,6053,0,2,8,18,58,658,658,2658,2658,116,117,'GYAAAA','VYIAAA','HHHHxx' +9054,6054,0,2,4,14,54,54,1054,4054,9054,108,109,'GKAAAA','WYIAAA','OOOOxx' +5492,6055,0,0,2,12,92,492,1492,492,5492,184,185,'GDAAAA','XYIAAA','VVVVxx' +7313,6056,1,1,3,13,13,313,1313,2313,7313,26,27,'HVAAAA','YYIAAA','AAAAxx' +75,6057,1,3,5,15,75,75,75,75,75,150,151,'XCAAAA','ZYIAAA','HHHHxx' +5489,6058,1,1,9,9,89,489,1489,489,5489,178,179,'DDAAAA','AZIAAA','OOOOxx' +8413,6059,1,1,3,13,13,413,413,3413,8413,26,27,'PLAAAA','BZIAAA','VVVVxx' +3693,6060,1,1,3,13,93,693,1693,3693,3693,186,187,'BMAAAA','CZIAAA','AAAAxx' +9820,6061,0,0,0,0,20,820,1820,4820,9820,40,41,'SNAAAA','DZIAAA','HHHHxx' +8157,6062,1,1,7,17,57,157,157,3157,8157,114,115,'TBAAAA','EZIAAA','OOOOxx' +4161,6063,1,1,1,1,61,161,161,4161,4161,122,123,'BEAAAA','FZIAAA','VVVVxx' +8339,6064,1,3,9,19,39,339,339,3339,8339,78,79,'TIAAAA','GZIAAA','AAAAxx' +4141,6065,1,1,1,1,41,141,141,4141,4141,82,83,'HDAAAA','HZIAAA','HHHHxx' +9001,6066,1,1,1,1,1,1,1001,4001,9001,2,3,'FIAAAA','IZIAAA','OOOOxx' +8247,6067,1,3,7,7,47,247,247,3247,8247,94,95,'FFAAAA','JZIAAA','VVVVxx' +1182,6068,0,2,2,2,82,182,1182,1182,1182,164,165,'MTAAAA','KZIAAA','AAAAxx' +9876,6069,0,0,6,16,76,876,1876,4876,9876,152,153,'WPAAAA','LZIAAA','HHHHxx' +4302,6070,0,2,2,2,2,302,302,4302,4302,4,5,'MJAAAA','MZIAAA','OOOOxx' +6674,6071,0,2,4,14,74,674,674,1674,6674,148,149,'SWAAAA','NZIAAA','VVVVxx' +4214,6072,0,2,4,14,14,214,214,4214,4214,28,29,'CGAAAA','OZIAAA','AAAAxx' +5584,6073,0,0,4,4,84,584,1584,584,5584,168,169,'UGAAAA','PZIAAA','HHHHxx' +265,6074,1,1,5,5,65,265,265,265,265,130,131,'FKAAAA','QZIAAA','OOOOxx' +9207,6075,1,3,7,7,7,207,1207,4207,9207,14,15,'DQAAAA','RZIAAA','VVVVxx' +9434,6076,0,2,4,14,34,434,1434,4434,9434,68,69,'WYAAAA','SZIAAA','AAAAxx' +2921,6077,1,1,1,1,21,921,921,2921,2921,42,43,'JIAAAA','TZIAAA','HHHHxx' +9355,6078,1,3,5,15,55,355,1355,4355,9355,110,111,'VVAAAA','UZIAAA','OOOOxx' +8538,6079,0,2,8,18,38,538,538,3538,8538,76,77,'KQAAAA','VZIAAA','VVVVxx' +4559,6080,1,3,9,19,59,559,559,4559,4559,118,119,'JTAAAA','WZIAAA','AAAAxx' +9175,6081,1,3,5,15,75,175,1175,4175,9175,150,151,'XOAAAA','XZIAAA','HHHHxx' +4489,6082,1,1,9,9,89,489,489,4489,4489,178,179,'RQAAAA','YZIAAA','OOOOxx' +1485,6083,1,1,5,5,85,485,1485,1485,1485,170,171,'DFAAAA','ZZIAAA','VVVVxx' +8853,6084,1,1,3,13,53,853,853,3853,8853,106,107,'NCAAAA','AAJAAA','AAAAxx' +9143,6085,1,3,3,3,43,143,1143,4143,9143,86,87,'RNAAAA','BAJAAA','HHHHxx' +9551,6086,1,3,1,11,51,551,1551,4551,9551,102,103,'JDAAAA','CAJAAA','OOOOxx' +49,6087,1,1,9,9,49,49,49,49,49,98,99,'XBAAAA','DAJAAA','VVVVxx' +8351,6088,1,3,1,11,51,351,351,3351,8351,102,103,'FJAAAA','EAJAAA','AAAAxx' +9748,6089,0,0,8,8,48,748,1748,4748,9748,96,97,'YKAAAA','FAJAAA','HHHHxx' +4536,6090,0,0,6,16,36,536,536,4536,4536,72,73,'MSAAAA','GAJAAA','OOOOxx' +930,6091,0,2,0,10,30,930,930,930,930,60,61,'UJAAAA','HAJAAA','VVVVxx' +2206,6092,0,2,6,6,6,206,206,2206,2206,12,13,'WGAAAA','IAJAAA','AAAAxx' +8004,6093,0,0,4,4,4,4,4,3004,8004,8,9,'WVAAAA','JAJAAA','HHHHxx' +219,6094,1,3,9,19,19,219,219,219,219,38,39,'LIAAAA','KAJAAA','OOOOxx' +2724,6095,0,0,4,4,24,724,724,2724,2724,48,49,'UAAAAA','LAJAAA','VVVVxx' +4868,6096,0,0,8,8,68,868,868,4868,4868,136,137,'GFAAAA','MAJAAA','AAAAxx' +5952,6097,0,0,2,12,52,952,1952,952,5952,104,105,'YUAAAA','NAJAAA','HHHHxx' +2094,6098,0,2,4,14,94,94,94,2094,2094,188,189,'OCAAAA','OAJAAA','OOOOxx' +5707,6099,1,3,7,7,7,707,1707,707,5707,14,15,'NLAAAA','PAJAAA','VVVVxx' +5200,6100,0,0,0,0,0,200,1200,200,5200,0,1,'ASAAAA','QAJAAA','AAAAxx' +967,6101,1,3,7,7,67,967,967,967,967,134,135,'FLAAAA','RAJAAA','HHHHxx' +1982,6102,0,2,2,2,82,982,1982,1982,1982,164,165,'GYAAAA','SAJAAA','OOOOxx' +3410,6103,0,2,0,10,10,410,1410,3410,3410,20,21,'EBAAAA','TAJAAA','VVVVxx' +174,6104,0,2,4,14,74,174,174,174,174,148,149,'SGAAAA','UAJAAA','AAAAxx' +9217,6105,1,1,7,17,17,217,1217,4217,9217,34,35,'NQAAAA','VAJAAA','HHHHxx' +9103,6106,1,3,3,3,3,103,1103,4103,9103,6,7,'DMAAAA','WAJAAA','OOOOxx' +868,6107,0,0,8,8,68,868,868,868,868,136,137,'KHAAAA','XAJAAA','VVVVxx' +8261,6108,1,1,1,1,61,261,261,3261,8261,122,123,'TFAAAA','YAJAAA','AAAAxx' +2720,6109,0,0,0,0,20,720,720,2720,2720,40,41,'QAAAAA','ZAJAAA','HHHHxx' +2999,6110,1,3,9,19,99,999,999,2999,2999,198,199,'JLAAAA','ABJAAA','OOOOxx' +769,6111,1,1,9,9,69,769,769,769,769,138,139,'PDAAAA','BBJAAA','VVVVxx' +4533,6112,1,1,3,13,33,533,533,4533,4533,66,67,'JSAAAA','CBJAAA','AAAAxx' +2030,6113,0,2,0,10,30,30,30,2030,2030,60,61,'CAAAAA','DBJAAA','HHHHxx' +5824,6114,0,0,4,4,24,824,1824,824,5824,48,49,'AQAAAA','EBJAAA','OOOOxx' +2328,6115,0,0,8,8,28,328,328,2328,2328,56,57,'OLAAAA','FBJAAA','VVVVxx' +9970,6116,0,2,0,10,70,970,1970,4970,9970,140,141,'MTAAAA','GBJAAA','AAAAxx' +3192,6117,0,0,2,12,92,192,1192,3192,3192,184,185,'USAAAA','HBJAAA','HHHHxx' +3387,6118,1,3,7,7,87,387,1387,3387,3387,174,175,'HAAAAA','IBJAAA','OOOOxx' +1936,6119,0,0,6,16,36,936,1936,1936,1936,72,73,'MWAAAA','JBJAAA','VVVVxx' +6934,6120,0,2,4,14,34,934,934,1934,6934,68,69,'SGAAAA','KBJAAA','AAAAxx' +5615,6121,1,3,5,15,15,615,1615,615,5615,30,31,'ZHAAAA','LBJAAA','HHHHxx' +2241,6122,1,1,1,1,41,241,241,2241,2241,82,83,'FIAAAA','MBJAAA','OOOOxx' +1842,6123,0,2,2,2,42,842,1842,1842,1842,84,85,'WSAAAA','NBJAAA','VVVVxx' +8044,6124,0,0,4,4,44,44,44,3044,8044,88,89,'KXAAAA','OBJAAA','AAAAxx' +8902,6125,0,2,2,2,2,902,902,3902,8902,4,5,'KEAAAA','PBJAAA','HHHHxx' +4519,6126,1,3,9,19,19,519,519,4519,4519,38,39,'VRAAAA','QBJAAA','OOOOxx' +492,6127,0,0,2,12,92,492,492,492,492,184,185,'YSAAAA','RBJAAA','VVVVxx' +2694,6128,0,2,4,14,94,694,694,2694,2694,188,189,'QZAAAA','SBJAAA','AAAAxx' +5861,6129,1,1,1,1,61,861,1861,861,5861,122,123,'LRAAAA','TBJAAA','HHHHxx' +2104,6130,0,0,4,4,4,104,104,2104,2104,8,9,'YCAAAA','UBJAAA','OOOOxx' +5376,6131,0,0,6,16,76,376,1376,376,5376,152,153,'UYAAAA','VBJAAA','VVVVxx' +3147,6132,1,3,7,7,47,147,1147,3147,3147,94,95,'BRAAAA','WBJAAA','AAAAxx' +9880,6133,0,0,0,0,80,880,1880,4880,9880,160,161,'AQAAAA','XBJAAA','HHHHxx' +6171,6134,1,3,1,11,71,171,171,1171,6171,142,143,'JDAAAA','YBJAAA','OOOOxx' +1850,6135,0,2,0,10,50,850,1850,1850,1850,100,101,'ETAAAA','ZBJAAA','VVVVxx' +1775,6136,1,3,5,15,75,775,1775,1775,1775,150,151,'HQAAAA','ACJAAA','AAAAxx' +9261,6137,1,1,1,1,61,261,1261,4261,9261,122,123,'FSAAAA','BCJAAA','HHHHxx' +9648,6138,0,0,8,8,48,648,1648,4648,9648,96,97,'CHAAAA','CCJAAA','OOOOxx' +7846,6139,0,2,6,6,46,846,1846,2846,7846,92,93,'UPAAAA','DCJAAA','VVVVxx' +1446,6140,0,2,6,6,46,446,1446,1446,1446,92,93,'QDAAAA','ECJAAA','AAAAxx' +3139,6141,1,3,9,19,39,139,1139,3139,3139,78,79,'TQAAAA','FCJAAA','HHHHxx' +6142,6142,0,2,2,2,42,142,142,1142,6142,84,85,'GCAAAA','GCJAAA','OOOOxx' +5812,6143,0,0,2,12,12,812,1812,812,5812,24,25,'OPAAAA','HCJAAA','VVVVxx' +6728,6144,0,0,8,8,28,728,728,1728,6728,56,57,'UYAAAA','ICJAAA','AAAAxx' +4428,6145,0,0,8,8,28,428,428,4428,4428,56,57,'IOAAAA','JCJAAA','HHHHxx' +502,6146,0,2,2,2,2,502,502,502,502,4,5,'ITAAAA','KCJAAA','OOOOxx' +2363,6147,1,3,3,3,63,363,363,2363,2363,126,127,'XMAAAA','LCJAAA','VVVVxx' +3808,6148,0,0,8,8,8,808,1808,3808,3808,16,17,'MQAAAA','MCJAAA','AAAAxx' +1010,6149,0,2,0,10,10,10,1010,1010,1010,20,21,'WMAAAA','NCJAAA','HHHHxx' +9565,6150,1,1,5,5,65,565,1565,4565,9565,130,131,'XDAAAA','OCJAAA','OOOOxx' +1587,6151,1,3,7,7,87,587,1587,1587,1587,174,175,'BJAAAA','PCJAAA','VVVVxx' +1474,6152,0,2,4,14,74,474,1474,1474,1474,148,149,'SEAAAA','QCJAAA','AAAAxx' +6215,6153,1,3,5,15,15,215,215,1215,6215,30,31,'BFAAAA','RCJAAA','HHHHxx' +2395,6154,1,3,5,15,95,395,395,2395,2395,190,191,'DOAAAA','SCJAAA','OOOOxx' +8753,6155,1,1,3,13,53,753,753,3753,8753,106,107,'RYAAAA','TCJAAA','VVVVxx' +2446,6156,0,2,6,6,46,446,446,2446,2446,92,93,'CQAAAA','UCJAAA','AAAAxx' +60,6157,0,0,0,0,60,60,60,60,60,120,121,'ICAAAA','VCJAAA','HHHHxx' +982,6158,0,2,2,2,82,982,982,982,982,164,165,'ULAAAA','WCJAAA','OOOOxx' +6489,6159,1,1,9,9,89,489,489,1489,6489,178,179,'PPAAAA','XCJAAA','VVVVxx' +5334,6160,0,2,4,14,34,334,1334,334,5334,68,69,'EXAAAA','YCJAAA','AAAAxx' +8540,6161,0,0,0,0,40,540,540,3540,8540,80,81,'MQAAAA','ZCJAAA','HHHHxx' +490,6162,0,2,0,10,90,490,490,490,490,180,181,'WSAAAA','ADJAAA','OOOOxx' +6763,6163,1,3,3,3,63,763,763,1763,6763,126,127,'DAAAAA','BDJAAA','VVVVxx' +8273,6164,1,1,3,13,73,273,273,3273,8273,146,147,'FGAAAA','CDJAAA','AAAAxx' +8327,6165,1,3,7,7,27,327,327,3327,8327,54,55,'HIAAAA','DDJAAA','HHHHxx' +8541,6166,1,1,1,1,41,541,541,3541,8541,82,83,'NQAAAA','EDJAAA','OOOOxx' +3459,6167,1,3,9,19,59,459,1459,3459,3459,118,119,'BDAAAA','FDJAAA','VVVVxx' +5557,6168,1,1,7,17,57,557,1557,557,5557,114,115,'TFAAAA','GDJAAA','AAAAxx' +158,6169,0,2,8,18,58,158,158,158,158,116,117,'CGAAAA','HDJAAA','HHHHxx' +1741,6170,1,1,1,1,41,741,1741,1741,1741,82,83,'ZOAAAA','IDJAAA','OOOOxx' +8385,6171,1,1,5,5,85,385,385,3385,8385,170,171,'NKAAAA','JDJAAA','VVVVxx' +617,6172,1,1,7,17,17,617,617,617,617,34,35,'TXAAAA','KDJAAA','AAAAxx' +3560,6173,0,0,0,0,60,560,1560,3560,3560,120,121,'YGAAAA','LDJAAA','HHHHxx' +5216,6174,0,0,6,16,16,216,1216,216,5216,32,33,'QSAAAA','MDJAAA','OOOOxx' +8443,6175,1,3,3,3,43,443,443,3443,8443,86,87,'TMAAAA','NDJAAA','VVVVxx' +2700,6176,0,0,0,0,0,700,700,2700,2700,0,1,'WZAAAA','ODJAAA','AAAAxx' +3661,6177,1,1,1,1,61,661,1661,3661,3661,122,123,'VKAAAA','PDJAAA','HHHHxx' +4875,6178,1,3,5,15,75,875,875,4875,4875,150,151,'NFAAAA','QDJAAA','OOOOxx' +6721,6179,1,1,1,1,21,721,721,1721,6721,42,43,'NYAAAA','RDJAAA','VVVVxx' +3659,6180,1,3,9,19,59,659,1659,3659,3659,118,119,'TKAAAA','SDJAAA','AAAAxx' +8944,6181,0,0,4,4,44,944,944,3944,8944,88,89,'AGAAAA','TDJAAA','HHHHxx' +9133,6182,1,1,3,13,33,133,1133,4133,9133,66,67,'HNAAAA','UDJAAA','OOOOxx' +9882,6183,0,2,2,2,82,882,1882,4882,9882,164,165,'CQAAAA','VDJAAA','VVVVxx' +2102,6184,0,2,2,2,2,102,102,2102,2102,4,5,'WCAAAA','WDJAAA','AAAAxx' +9445,6185,1,1,5,5,45,445,1445,4445,9445,90,91,'HZAAAA','XDJAAA','HHHHxx' +5559,6186,1,3,9,19,59,559,1559,559,5559,118,119,'VFAAAA','YDJAAA','OOOOxx' +6096,6187,0,0,6,16,96,96,96,1096,6096,192,193,'MAAAAA','ZDJAAA','VVVVxx' +9336,6188,0,0,6,16,36,336,1336,4336,9336,72,73,'CVAAAA','AEJAAA','AAAAxx' +2162,6189,0,2,2,2,62,162,162,2162,2162,124,125,'EFAAAA','BEJAAA','HHHHxx' +7459,6190,1,3,9,19,59,459,1459,2459,7459,118,119,'XAAAAA','CEJAAA','OOOOxx' +3248,6191,0,0,8,8,48,248,1248,3248,3248,96,97,'YUAAAA','DEJAAA','VVVVxx' +9539,6192,1,3,9,19,39,539,1539,4539,9539,78,79,'XCAAAA','EEJAAA','AAAAxx' +4449,6193,1,1,9,9,49,449,449,4449,4449,98,99,'DPAAAA','FEJAAA','HHHHxx' +2809,6194,1,1,9,9,9,809,809,2809,2809,18,19,'BEAAAA','GEJAAA','OOOOxx' +7058,6195,0,2,8,18,58,58,1058,2058,7058,116,117,'MLAAAA','HEJAAA','VVVVxx' +3512,6196,0,0,2,12,12,512,1512,3512,3512,24,25,'CFAAAA','IEJAAA','AAAAxx' +2802,6197,0,2,2,2,2,802,802,2802,2802,4,5,'UDAAAA','JEJAAA','HHHHxx' +6289,6198,1,1,9,9,89,289,289,1289,6289,178,179,'XHAAAA','KEJAAA','OOOOxx' +1947,6199,1,3,7,7,47,947,1947,1947,1947,94,95,'XWAAAA','LEJAAA','VVVVxx' +9572,6200,0,0,2,12,72,572,1572,4572,9572,144,145,'EEAAAA','MEJAAA','AAAAxx' +2356,6201,0,0,6,16,56,356,356,2356,2356,112,113,'QMAAAA','NEJAAA','HHHHxx' +3039,6202,1,3,9,19,39,39,1039,3039,3039,78,79,'XMAAAA','OEJAAA','OOOOxx' +9452,6203,0,0,2,12,52,452,1452,4452,9452,104,105,'OZAAAA','PEJAAA','VVVVxx' +6328,6204,0,0,8,8,28,328,328,1328,6328,56,57,'KJAAAA','QEJAAA','AAAAxx' +7661,6205,1,1,1,1,61,661,1661,2661,7661,122,123,'RIAAAA','REJAAA','HHHHxx' +2566,6206,0,2,6,6,66,566,566,2566,2566,132,133,'SUAAAA','SEJAAA','OOOOxx' +6095,6207,1,3,5,15,95,95,95,1095,6095,190,191,'LAAAAA','TEJAAA','VVVVxx' +6367,6208,1,3,7,7,67,367,367,1367,6367,134,135,'XKAAAA','UEJAAA','AAAAxx' +3368,6209,0,0,8,8,68,368,1368,3368,3368,136,137,'OZAAAA','VEJAAA','HHHHxx' +5567,6210,1,3,7,7,67,567,1567,567,5567,134,135,'DGAAAA','WEJAAA','OOOOxx' +9834,6211,0,2,4,14,34,834,1834,4834,9834,68,69,'GOAAAA','XEJAAA','VVVVxx' +9695,6212,1,3,5,15,95,695,1695,4695,9695,190,191,'XIAAAA','YEJAAA','AAAAxx' +7291,6213,1,3,1,11,91,291,1291,2291,7291,182,183,'LUAAAA','ZEJAAA','HHHHxx' +4806,6214,0,2,6,6,6,806,806,4806,4806,12,13,'WCAAAA','AFJAAA','OOOOxx' +2000,6215,0,0,0,0,0,0,0,2000,2000,0,1,'YYAAAA','BFJAAA','VVVVxx' +6817,6216,1,1,7,17,17,817,817,1817,6817,34,35,'FCAAAA','CFJAAA','AAAAxx' +8487,6217,1,3,7,7,87,487,487,3487,8487,174,175,'LOAAAA','DFJAAA','HHHHxx' +3245,6218,1,1,5,5,45,245,1245,3245,3245,90,91,'VUAAAA','EFJAAA','OOOOxx' +632,6219,0,0,2,12,32,632,632,632,632,64,65,'IYAAAA','FFJAAA','VVVVxx' +8067,6220,1,3,7,7,67,67,67,3067,8067,134,135,'HYAAAA','GFJAAA','AAAAxx' +7140,6221,0,0,0,0,40,140,1140,2140,7140,80,81,'QOAAAA','HFJAAA','HHHHxx' +6802,6222,0,2,2,2,2,802,802,1802,6802,4,5,'QBAAAA','IFJAAA','OOOOxx' +3980,6223,0,0,0,0,80,980,1980,3980,3980,160,161,'CXAAAA','JFJAAA','VVVVxx' +1321,6224,1,1,1,1,21,321,1321,1321,1321,42,43,'VYAAAA','KFJAAA','AAAAxx' +2273,6225,1,1,3,13,73,273,273,2273,2273,146,147,'LJAAAA','LFJAAA','HHHHxx' +6787,6226,1,3,7,7,87,787,787,1787,6787,174,175,'BBAAAA','MFJAAA','OOOOxx' +9480,6227,0,0,0,0,80,480,1480,4480,9480,160,161,'QAAAAA','NFJAAA','VVVVxx' +9404,6228,0,0,4,4,4,404,1404,4404,9404,8,9,'SXAAAA','OFJAAA','AAAAxx' +3914,6229,0,2,4,14,14,914,1914,3914,3914,28,29,'OUAAAA','PFJAAA','HHHHxx' +5507,6230,1,3,7,7,7,507,1507,507,5507,14,15,'VDAAAA','QFJAAA','OOOOxx' +1813,6231,1,1,3,13,13,813,1813,1813,1813,26,27,'TRAAAA','RFJAAA','VVVVxx' +1999,6232,1,3,9,19,99,999,1999,1999,1999,198,199,'XYAAAA','SFJAAA','AAAAxx' +3848,6233,0,0,8,8,48,848,1848,3848,3848,96,97,'ASAAAA','TFJAAA','HHHHxx' +9693,6234,1,1,3,13,93,693,1693,4693,9693,186,187,'VIAAAA','UFJAAA','OOOOxx' +1353,6235,1,1,3,13,53,353,1353,1353,1353,106,107,'BAAAAA','VFJAAA','VVVVxx' +7218,6236,0,2,8,18,18,218,1218,2218,7218,36,37,'QRAAAA','WFJAAA','AAAAxx' +8223,6237,1,3,3,3,23,223,223,3223,8223,46,47,'HEAAAA','XFJAAA','HHHHxx' +9982,6238,0,2,2,2,82,982,1982,4982,9982,164,165,'YTAAAA','YFJAAA','OOOOxx' +8799,6239,1,3,9,19,99,799,799,3799,8799,198,199,'LAAAAA','ZFJAAA','VVVVxx' +8929,6240,1,1,9,9,29,929,929,3929,8929,58,59,'LFAAAA','AGJAAA','AAAAxx' +4626,6241,0,2,6,6,26,626,626,4626,4626,52,53,'YVAAAA','BGJAAA','HHHHxx' +7958,6242,0,2,8,18,58,958,1958,2958,7958,116,117,'CUAAAA','CGJAAA','OOOOxx' +3743,6243,1,3,3,3,43,743,1743,3743,3743,86,87,'ZNAAAA','DGJAAA','VVVVxx' +8165,6244,1,1,5,5,65,165,165,3165,8165,130,131,'BCAAAA','EGJAAA','AAAAxx' +7899,6245,1,3,9,19,99,899,1899,2899,7899,198,199,'VRAAAA','FGJAAA','HHHHxx' +8698,6246,0,2,8,18,98,698,698,3698,8698,196,197,'OWAAAA','GGJAAA','OOOOxx' +9270,6247,0,2,0,10,70,270,1270,4270,9270,140,141,'OSAAAA','HGJAAA','VVVVxx' +6348,6248,0,0,8,8,48,348,348,1348,6348,96,97,'EKAAAA','IGJAAA','AAAAxx' +6999,6249,1,3,9,19,99,999,999,1999,6999,198,199,'FJAAAA','JGJAAA','HHHHxx' +8467,6250,1,3,7,7,67,467,467,3467,8467,134,135,'RNAAAA','KGJAAA','OOOOxx' +3907,6251,1,3,7,7,7,907,1907,3907,3907,14,15,'HUAAAA','LGJAAA','VVVVxx' +4738,6252,0,2,8,18,38,738,738,4738,4738,76,77,'GAAAAA','MGJAAA','AAAAxx' +248,6253,0,0,8,8,48,248,248,248,248,96,97,'OJAAAA','NGJAAA','HHHHxx' +8769,6254,1,1,9,9,69,769,769,3769,8769,138,139,'HZAAAA','OGJAAA','OOOOxx' +9922,6255,0,2,2,2,22,922,1922,4922,9922,44,45,'QRAAAA','PGJAAA','VVVVxx' +778,6256,0,2,8,18,78,778,778,778,778,156,157,'YDAAAA','QGJAAA','AAAAxx' +1233,6257,1,1,3,13,33,233,1233,1233,1233,66,67,'LVAAAA','RGJAAA','HHHHxx' +1183,6258,1,3,3,3,83,183,1183,1183,1183,166,167,'NTAAAA','SGJAAA','OOOOxx' +2838,6259,0,2,8,18,38,838,838,2838,2838,76,77,'EFAAAA','TGJAAA','VVVVxx' +3096,6260,0,0,6,16,96,96,1096,3096,3096,192,193,'CPAAAA','UGJAAA','AAAAxx' +8566,6261,0,2,6,6,66,566,566,3566,8566,132,133,'MRAAAA','VGJAAA','HHHHxx' +7635,6262,1,3,5,15,35,635,1635,2635,7635,70,71,'RHAAAA','WGJAAA','OOOOxx' +5428,6263,0,0,8,8,28,428,1428,428,5428,56,57,'UAAAAA','XGJAAA','VVVVxx' +7430,6264,0,2,0,10,30,430,1430,2430,7430,60,61,'UZAAAA','YGJAAA','AAAAxx' +7210,6265,0,2,0,10,10,210,1210,2210,7210,20,21,'IRAAAA','ZGJAAA','HHHHxx' +4485,6266,1,1,5,5,85,485,485,4485,4485,170,171,'NQAAAA','AHJAAA','OOOOxx' +9623,6267,1,3,3,3,23,623,1623,4623,9623,46,47,'DGAAAA','BHJAAA','VVVVxx' +3670,6268,0,2,0,10,70,670,1670,3670,3670,140,141,'ELAAAA','CHJAAA','AAAAxx' +1575,6269,1,3,5,15,75,575,1575,1575,1575,150,151,'PIAAAA','DHJAAA','HHHHxx' +5874,6270,0,2,4,14,74,874,1874,874,5874,148,149,'YRAAAA','EHJAAA','OOOOxx' +673,6271,1,1,3,13,73,673,673,673,673,146,147,'XZAAAA','FHJAAA','VVVVxx' +9712,6272,0,0,2,12,12,712,1712,4712,9712,24,25,'OJAAAA','GHJAAA','AAAAxx' +7729,6273,1,1,9,9,29,729,1729,2729,7729,58,59,'HLAAAA','HHJAAA','HHHHxx' +4318,6274,0,2,8,18,18,318,318,4318,4318,36,37,'CKAAAA','IHJAAA','OOOOxx' +4143,6275,1,3,3,3,43,143,143,4143,4143,86,87,'JDAAAA','JHJAAA','VVVVxx' +4932,6276,0,0,2,12,32,932,932,4932,4932,64,65,'SHAAAA','KHJAAA','AAAAxx' +5835,6277,1,3,5,15,35,835,1835,835,5835,70,71,'LQAAAA','LHJAAA','HHHHxx' +4966,6278,0,2,6,6,66,966,966,4966,4966,132,133,'AJAAAA','MHJAAA','OOOOxx' +6711,6279,1,3,1,11,11,711,711,1711,6711,22,23,'DYAAAA','NHJAAA','VVVVxx' +3990,6280,0,2,0,10,90,990,1990,3990,3990,180,181,'MXAAAA','OHJAAA','AAAAxx' +990,6281,0,2,0,10,90,990,990,990,990,180,181,'CMAAAA','PHJAAA','HHHHxx' +220,6282,0,0,0,0,20,220,220,220,220,40,41,'MIAAAA','QHJAAA','OOOOxx' +5693,6283,1,1,3,13,93,693,1693,693,5693,186,187,'ZKAAAA','RHJAAA','VVVVxx' +3662,6284,0,2,2,2,62,662,1662,3662,3662,124,125,'WKAAAA','SHJAAA','AAAAxx' +7844,6285,0,0,4,4,44,844,1844,2844,7844,88,89,'SPAAAA','THJAAA','HHHHxx' +5515,6286,1,3,5,15,15,515,1515,515,5515,30,31,'DEAAAA','UHJAAA','OOOOxx' +5551,6287,1,3,1,11,51,551,1551,551,5551,102,103,'NFAAAA','VHJAAA','VVVVxx' +2358,6288,0,2,8,18,58,358,358,2358,2358,116,117,'SMAAAA','WHJAAA','AAAAxx' +8977,6289,1,1,7,17,77,977,977,3977,8977,154,155,'HHAAAA','XHJAAA','HHHHxx' +7040,6290,0,0,0,0,40,40,1040,2040,7040,80,81,'UKAAAA','YHJAAA','OOOOxx' +105,6291,1,1,5,5,5,105,105,105,105,10,11,'BEAAAA','ZHJAAA','VVVVxx' +4496,6292,0,0,6,16,96,496,496,4496,4496,192,193,'YQAAAA','AIJAAA','AAAAxx' +2254,6293,0,2,4,14,54,254,254,2254,2254,108,109,'SIAAAA','BIJAAA','HHHHxx' +411,6294,1,3,1,11,11,411,411,411,411,22,23,'VPAAAA','CIJAAA','OOOOxx' +2373,6295,1,1,3,13,73,373,373,2373,2373,146,147,'HNAAAA','DIJAAA','VVVVxx' +3477,6296,1,1,7,17,77,477,1477,3477,3477,154,155,'TDAAAA','EIJAAA','AAAAxx' +8964,6297,0,0,4,4,64,964,964,3964,8964,128,129,'UGAAAA','FIJAAA','HHHHxx' +8471,6298,1,3,1,11,71,471,471,3471,8471,142,143,'VNAAAA','GIJAAA','OOOOxx' +5776,6299,0,0,6,16,76,776,1776,776,5776,152,153,'EOAAAA','HIJAAA','VVVVxx' +9921,6300,1,1,1,1,21,921,1921,4921,9921,42,43,'PRAAAA','IIJAAA','AAAAxx' +7816,6301,0,0,6,16,16,816,1816,2816,7816,32,33,'QOAAAA','JIJAAA','HHHHxx' +2439,6302,1,3,9,19,39,439,439,2439,2439,78,79,'VPAAAA','KIJAAA','OOOOxx' +9298,6303,0,2,8,18,98,298,1298,4298,9298,196,197,'QTAAAA','LIJAAA','VVVVxx' +9424,6304,0,0,4,4,24,424,1424,4424,9424,48,49,'MYAAAA','MIJAAA','AAAAxx' +3252,6305,0,0,2,12,52,252,1252,3252,3252,104,105,'CVAAAA','NIJAAA','HHHHxx' +1401,6306,1,1,1,1,1,401,1401,1401,1401,2,3,'XBAAAA','OIJAAA','OOOOxx' +9632,6307,0,0,2,12,32,632,1632,4632,9632,64,65,'MGAAAA','PIJAAA','VVVVxx' +370,6308,0,2,0,10,70,370,370,370,370,140,141,'GOAAAA','QIJAAA','AAAAxx' +728,6309,0,0,8,8,28,728,728,728,728,56,57,'ACAAAA','RIJAAA','HHHHxx' +2888,6310,0,0,8,8,88,888,888,2888,2888,176,177,'CHAAAA','SIJAAA','OOOOxx' +1441,6311,1,1,1,1,41,441,1441,1441,1441,82,83,'LDAAAA','TIJAAA','VVVVxx' +8308,6312,0,0,8,8,8,308,308,3308,8308,16,17,'OHAAAA','UIJAAA','AAAAxx' +2165,6313,1,1,5,5,65,165,165,2165,2165,130,131,'HFAAAA','VIJAAA','HHHHxx' +6359,6314,1,3,9,19,59,359,359,1359,6359,118,119,'PKAAAA','WIJAAA','OOOOxx' +9637,6315,1,1,7,17,37,637,1637,4637,9637,74,75,'RGAAAA','XIJAAA','VVVVxx' +5208,6316,0,0,8,8,8,208,1208,208,5208,16,17,'ISAAAA','YIJAAA','AAAAxx' +4705,6317,1,1,5,5,5,705,705,4705,4705,10,11,'ZYAAAA','ZIJAAA','HHHHxx' +2341,6318,1,1,1,1,41,341,341,2341,2341,82,83,'BMAAAA','AJJAAA','OOOOxx' +8539,6319,1,3,9,19,39,539,539,3539,8539,78,79,'LQAAAA','BJJAAA','VVVVxx' +7528,6320,0,0,8,8,28,528,1528,2528,7528,56,57,'ODAAAA','CJJAAA','AAAAxx' +7969,6321,1,1,9,9,69,969,1969,2969,7969,138,139,'NUAAAA','DJJAAA','HHHHxx' +6381,6322,1,1,1,1,81,381,381,1381,6381,162,163,'LLAAAA','EJJAAA','OOOOxx' +4906,6323,0,2,6,6,6,906,906,4906,4906,12,13,'SGAAAA','FJJAAA','VVVVxx' +8697,6324,1,1,7,17,97,697,697,3697,8697,194,195,'NWAAAA','GJJAAA','AAAAxx' +6301,6325,1,1,1,1,1,301,301,1301,6301,2,3,'JIAAAA','HJJAAA','HHHHxx' +7554,6326,0,2,4,14,54,554,1554,2554,7554,108,109,'OEAAAA','IJJAAA','OOOOxx' +5107,6327,1,3,7,7,7,107,1107,107,5107,14,15,'LOAAAA','JJJAAA','VVVVxx' +5046,6328,0,2,6,6,46,46,1046,46,5046,92,93,'CMAAAA','KJJAAA','AAAAxx' +4063,6329,1,3,3,3,63,63,63,4063,4063,126,127,'HAAAAA','LJJAAA','HHHHxx' +7580,6330,0,0,0,0,80,580,1580,2580,7580,160,161,'OFAAAA','MJJAAA','OOOOxx' +2245,6331,1,1,5,5,45,245,245,2245,2245,90,91,'JIAAAA','NJJAAA','VVVVxx' +3711,6332,1,3,1,11,11,711,1711,3711,3711,22,23,'TMAAAA','OJJAAA','AAAAxx' +3220,6333,0,0,0,0,20,220,1220,3220,3220,40,41,'WTAAAA','PJJAAA','HHHHxx' +6463,6334,1,3,3,3,63,463,463,1463,6463,126,127,'POAAAA','QJJAAA','OOOOxx' +8196,6335,0,0,6,16,96,196,196,3196,8196,192,193,'GDAAAA','RJJAAA','VVVVxx' +9875,6336,1,3,5,15,75,875,1875,4875,9875,150,151,'VPAAAA','SJJAAA','AAAAxx' +1333,6337,1,1,3,13,33,333,1333,1333,1333,66,67,'HZAAAA','TJJAAA','HHHHxx' +7880,6338,0,0,0,0,80,880,1880,2880,7880,160,161,'CRAAAA','UJJAAA','OOOOxx' +2322,6339,0,2,2,2,22,322,322,2322,2322,44,45,'ILAAAA','VJJAAA','VVVVxx' +2163,6340,1,3,3,3,63,163,163,2163,2163,126,127,'FFAAAA','WJJAAA','AAAAxx' +421,6341,1,1,1,1,21,421,421,421,421,42,43,'FQAAAA','XJJAAA','HHHHxx' +2042,6342,0,2,2,2,42,42,42,2042,2042,84,85,'OAAAAA','YJJAAA','OOOOxx' +1424,6343,0,0,4,4,24,424,1424,1424,1424,48,49,'UCAAAA','ZJJAAA','VVVVxx' +7870,6344,0,2,0,10,70,870,1870,2870,7870,140,141,'SQAAAA','AKJAAA','AAAAxx' +2653,6345,1,1,3,13,53,653,653,2653,2653,106,107,'BYAAAA','BKJAAA','HHHHxx' +4216,6346,0,0,6,16,16,216,216,4216,4216,32,33,'EGAAAA','CKJAAA','OOOOxx' +1515,6347,1,3,5,15,15,515,1515,1515,1515,30,31,'HGAAAA','DKJAAA','VVVVxx' +7860,6348,0,0,0,0,60,860,1860,2860,7860,120,121,'IQAAAA','EKJAAA','AAAAxx' +2984,6349,0,0,4,4,84,984,984,2984,2984,168,169,'UKAAAA','FKJAAA','HHHHxx' +6269,6350,1,1,9,9,69,269,269,1269,6269,138,139,'DHAAAA','GKJAAA','OOOOxx' +2609,6351,1,1,9,9,9,609,609,2609,2609,18,19,'JWAAAA','HKJAAA','VVVVxx' +3671,6352,1,3,1,11,71,671,1671,3671,3671,142,143,'FLAAAA','IKJAAA','AAAAxx' +4544,6353,0,0,4,4,44,544,544,4544,4544,88,89,'USAAAA','JKJAAA','HHHHxx' +4668,6354,0,0,8,8,68,668,668,4668,4668,136,137,'OXAAAA','KKJAAA','OOOOxx' +2565,6355,1,1,5,5,65,565,565,2565,2565,130,131,'RUAAAA','LKJAAA','VVVVxx' +3126,6356,0,2,6,6,26,126,1126,3126,3126,52,53,'GQAAAA','MKJAAA','AAAAxx' +7573,6357,1,1,3,13,73,573,1573,2573,7573,146,147,'HFAAAA','NKJAAA','HHHHxx' +1476,6358,0,0,6,16,76,476,1476,1476,1476,152,153,'UEAAAA','OKJAAA','OOOOxx' +2146,6359,0,2,6,6,46,146,146,2146,2146,92,93,'OEAAAA','PKJAAA','VVVVxx' +9990,6360,0,2,0,10,90,990,1990,4990,9990,180,181,'GUAAAA','QKJAAA','AAAAxx' +2530,6361,0,2,0,10,30,530,530,2530,2530,60,61,'ITAAAA','RKJAAA','HHHHxx' +9288,6362,0,0,8,8,88,288,1288,4288,9288,176,177,'GTAAAA','SKJAAA','OOOOxx' +9755,6363,1,3,5,15,55,755,1755,4755,9755,110,111,'FLAAAA','TKJAAA','VVVVxx' +5305,6364,1,1,5,5,5,305,1305,305,5305,10,11,'BWAAAA','UKJAAA','AAAAxx' +2495,6365,1,3,5,15,95,495,495,2495,2495,190,191,'ZRAAAA','VKJAAA','HHHHxx' +5443,6366,1,3,3,3,43,443,1443,443,5443,86,87,'JBAAAA','WKJAAA','OOOOxx' +1930,6367,0,2,0,10,30,930,1930,1930,1930,60,61,'GWAAAA','XKJAAA','VVVVxx' +9134,6368,0,2,4,14,34,134,1134,4134,9134,68,69,'INAAAA','YKJAAA','AAAAxx' +2844,6369,0,0,4,4,44,844,844,2844,2844,88,89,'KFAAAA','ZKJAAA','HHHHxx' +896,6370,0,0,6,16,96,896,896,896,896,192,193,'MIAAAA','ALJAAA','OOOOxx' +1330,6371,0,2,0,10,30,330,1330,1330,1330,60,61,'EZAAAA','BLJAAA','VVVVxx' +8980,6372,0,0,0,0,80,980,980,3980,8980,160,161,'KHAAAA','CLJAAA','AAAAxx' +5940,6373,0,0,0,0,40,940,1940,940,5940,80,81,'MUAAAA','DLJAAA','HHHHxx' +6494,6374,0,2,4,14,94,494,494,1494,6494,188,189,'UPAAAA','ELJAAA','OOOOxx' +165,6375,1,1,5,5,65,165,165,165,165,130,131,'JGAAAA','FLJAAA','VVVVxx' +2510,6376,0,2,0,10,10,510,510,2510,2510,20,21,'OSAAAA','GLJAAA','AAAAxx' +9950,6377,0,2,0,10,50,950,1950,4950,9950,100,101,'SSAAAA','HLJAAA','HHHHxx' +3854,6378,0,2,4,14,54,854,1854,3854,3854,108,109,'GSAAAA','ILJAAA','OOOOxx' +7493,6379,1,1,3,13,93,493,1493,2493,7493,186,187,'FCAAAA','JLJAAA','VVVVxx' +4124,6380,0,0,4,4,24,124,124,4124,4124,48,49,'QCAAAA','KLJAAA','AAAAxx' +8563,6381,1,3,3,3,63,563,563,3563,8563,126,127,'JRAAAA','LLJAAA','HHHHxx' +8735,6382,1,3,5,15,35,735,735,3735,8735,70,71,'ZXAAAA','MLJAAA','OOOOxx' +9046,6383,0,2,6,6,46,46,1046,4046,9046,92,93,'YJAAAA','NLJAAA','VVVVxx' +1754,6384,0,2,4,14,54,754,1754,1754,1754,108,109,'MPAAAA','OLJAAA','AAAAxx' +6954,6385,0,2,4,14,54,954,954,1954,6954,108,109,'MHAAAA','PLJAAA','HHHHxx' +4953,6386,1,1,3,13,53,953,953,4953,4953,106,107,'NIAAAA','QLJAAA','OOOOxx' +8142,6387,0,2,2,2,42,142,142,3142,8142,84,85,'EBAAAA','RLJAAA','VVVVxx' +9661,6388,1,1,1,1,61,661,1661,4661,9661,122,123,'PHAAAA','SLJAAA','AAAAxx' +6415,6389,1,3,5,15,15,415,415,1415,6415,30,31,'TMAAAA','TLJAAA','HHHHxx' +5782,6390,0,2,2,2,82,782,1782,782,5782,164,165,'KOAAAA','ULJAAA','OOOOxx' +7721,6391,1,1,1,1,21,721,1721,2721,7721,42,43,'ZKAAAA','VLJAAA','VVVVxx' +580,6392,0,0,0,0,80,580,580,580,580,160,161,'IWAAAA','WLJAAA','AAAAxx' +3784,6393,0,0,4,4,84,784,1784,3784,3784,168,169,'OPAAAA','XLJAAA','HHHHxx' +9810,6394,0,2,0,10,10,810,1810,4810,9810,20,21,'INAAAA','YLJAAA','OOOOxx' +8488,6395,0,0,8,8,88,488,488,3488,8488,176,177,'MOAAAA','ZLJAAA','VVVVxx' +6214,6396,0,2,4,14,14,214,214,1214,6214,28,29,'AFAAAA','AMJAAA','AAAAxx' +9433,6397,1,1,3,13,33,433,1433,4433,9433,66,67,'VYAAAA','BMJAAA','HHHHxx' +9959,6398,1,3,9,19,59,959,1959,4959,9959,118,119,'BTAAAA','CMJAAA','OOOOxx' +554,6399,0,2,4,14,54,554,554,554,554,108,109,'IVAAAA','DMJAAA','VVVVxx' +6646,6400,0,2,6,6,46,646,646,1646,6646,92,93,'QVAAAA','EMJAAA','AAAAxx' +1138,6401,0,2,8,18,38,138,1138,1138,1138,76,77,'URAAAA','FMJAAA','HHHHxx' +9331,6402,1,3,1,11,31,331,1331,4331,9331,62,63,'XUAAAA','GMJAAA','OOOOxx' +7331,6403,1,3,1,11,31,331,1331,2331,7331,62,63,'ZVAAAA','HMJAAA','VVVVxx' +3482,6404,0,2,2,2,82,482,1482,3482,3482,164,165,'YDAAAA','IMJAAA','AAAAxx' +3795,6405,1,3,5,15,95,795,1795,3795,3795,190,191,'ZPAAAA','JMJAAA','HHHHxx' +2441,6406,1,1,1,1,41,441,441,2441,2441,82,83,'XPAAAA','KMJAAA','OOOOxx' +5229,6407,1,1,9,9,29,229,1229,229,5229,58,59,'DTAAAA','LMJAAA','VVVVxx' +7012,6408,0,0,2,12,12,12,1012,2012,7012,24,25,'SJAAAA','MMJAAA','AAAAxx' +7036,6409,0,0,6,16,36,36,1036,2036,7036,72,73,'QKAAAA','NMJAAA','HHHHxx' +8243,6410,1,3,3,3,43,243,243,3243,8243,86,87,'BFAAAA','OMJAAA','OOOOxx' +9320,6411,0,0,0,0,20,320,1320,4320,9320,40,41,'MUAAAA','PMJAAA','VVVVxx' +4693,6412,1,1,3,13,93,693,693,4693,4693,186,187,'NYAAAA','QMJAAA','AAAAxx' +6741,6413,1,1,1,1,41,741,741,1741,6741,82,83,'HZAAAA','RMJAAA','HHHHxx' +2997,6414,1,1,7,17,97,997,997,2997,2997,194,195,'HLAAAA','SMJAAA','OOOOxx' +4838,6415,0,2,8,18,38,838,838,4838,4838,76,77,'CEAAAA','TMJAAA','VVVVxx' +6945,6416,1,1,5,5,45,945,945,1945,6945,90,91,'DHAAAA','UMJAAA','AAAAxx' +8253,6417,1,1,3,13,53,253,253,3253,8253,106,107,'LFAAAA','VMJAAA','HHHHxx' +8989,6418,1,1,9,9,89,989,989,3989,8989,178,179,'THAAAA','WMJAAA','OOOOxx' +2640,6419,0,0,0,0,40,640,640,2640,2640,80,81,'OXAAAA','XMJAAA','VVVVxx' +5647,6420,1,3,7,7,47,647,1647,647,5647,94,95,'FJAAAA','YMJAAA','AAAAxx' +7186,6421,0,2,6,6,86,186,1186,2186,7186,172,173,'KQAAAA','ZMJAAA','HHHHxx' +3278,6422,0,2,8,18,78,278,1278,3278,3278,156,157,'CWAAAA','ANJAAA','OOOOxx' +8546,6423,0,2,6,6,46,546,546,3546,8546,92,93,'SQAAAA','BNJAAA','VVVVxx' +8297,6424,1,1,7,17,97,297,297,3297,8297,194,195,'DHAAAA','CNJAAA','AAAAxx' +9534,6425,0,2,4,14,34,534,1534,4534,9534,68,69,'SCAAAA','DNJAAA','HHHHxx' +9618,6426,0,2,8,18,18,618,1618,4618,9618,36,37,'YFAAAA','ENJAAA','OOOOxx' +8839,6427,1,3,9,19,39,839,839,3839,8839,78,79,'ZBAAAA','FNJAAA','VVVVxx' +7605,6428,1,1,5,5,5,605,1605,2605,7605,10,11,'NGAAAA','GNJAAA','AAAAxx' +6421,6429,1,1,1,1,21,421,421,1421,6421,42,43,'ZMAAAA','HNJAAA','HHHHxx' +3582,6430,0,2,2,2,82,582,1582,3582,3582,164,165,'UHAAAA','INJAAA','OOOOxx' +485,6431,1,1,5,5,85,485,485,485,485,170,171,'RSAAAA','JNJAAA','VVVVxx' +1925,6432,1,1,5,5,25,925,1925,1925,1925,50,51,'BWAAAA','KNJAAA','AAAAxx' +4296,6433,0,0,6,16,96,296,296,4296,4296,192,193,'GJAAAA','LNJAAA','HHHHxx' +8874,6434,0,2,4,14,74,874,874,3874,8874,148,149,'IDAAAA','MNJAAA','OOOOxx' +1443,6435,1,3,3,3,43,443,1443,1443,1443,86,87,'NDAAAA','NNJAAA','VVVVxx' +4239,6436,1,3,9,19,39,239,239,4239,4239,78,79,'BHAAAA','ONJAAA','AAAAxx' +9760,6437,0,0,0,0,60,760,1760,4760,9760,120,121,'KLAAAA','PNJAAA','HHHHxx' +136,6438,0,0,6,16,36,136,136,136,136,72,73,'GFAAAA','QNJAAA','OOOOxx' +6472,6439,0,0,2,12,72,472,472,1472,6472,144,145,'YOAAAA','RNJAAA','VVVVxx' +4896,6440,0,0,6,16,96,896,896,4896,4896,192,193,'IGAAAA','SNJAAA','AAAAxx' +9028,6441,0,0,8,8,28,28,1028,4028,9028,56,57,'GJAAAA','TNJAAA','HHHHxx' +8354,6442,0,2,4,14,54,354,354,3354,8354,108,109,'IJAAAA','UNJAAA','OOOOxx' +8648,6443,0,0,8,8,48,648,648,3648,8648,96,97,'QUAAAA','VNJAAA','VVVVxx' +918,6444,0,2,8,18,18,918,918,918,918,36,37,'IJAAAA','WNJAAA','AAAAxx' +6606,6445,0,2,6,6,6,606,606,1606,6606,12,13,'CUAAAA','XNJAAA','HHHHxx' +2462,6446,0,2,2,2,62,462,462,2462,2462,124,125,'SQAAAA','YNJAAA','OOOOxx' +7536,6447,0,0,6,16,36,536,1536,2536,7536,72,73,'WDAAAA','ZNJAAA','VVVVxx' +1700,6448,0,0,0,0,0,700,1700,1700,1700,0,1,'KNAAAA','AOJAAA','AAAAxx' +6740,6449,0,0,0,0,40,740,740,1740,6740,80,81,'GZAAAA','BOJAAA','HHHHxx' +28,6450,0,0,8,8,28,28,28,28,28,56,57,'CBAAAA','COJAAA','OOOOxx' +6044,6451,0,0,4,4,44,44,44,1044,6044,88,89,'MYAAAA','DOJAAA','VVVVxx' +5053,6452,1,1,3,13,53,53,1053,53,5053,106,107,'JMAAAA','EOJAAA','AAAAxx' +4832,6453,0,0,2,12,32,832,832,4832,4832,64,65,'WDAAAA','FOJAAA','HHHHxx' +9145,6454,1,1,5,5,45,145,1145,4145,9145,90,91,'TNAAAA','GOJAAA','OOOOxx' +5482,6455,0,2,2,2,82,482,1482,482,5482,164,165,'WCAAAA','HOJAAA','VVVVxx' +7644,6456,0,0,4,4,44,644,1644,2644,7644,88,89,'AIAAAA','IOJAAA','AAAAxx' +2128,6457,0,0,8,8,28,128,128,2128,2128,56,57,'WDAAAA','JOJAAA','HHHHxx' +6583,6458,1,3,3,3,83,583,583,1583,6583,166,167,'FTAAAA','KOJAAA','OOOOxx' +4224,6459,0,0,4,4,24,224,224,4224,4224,48,49,'MGAAAA','LOJAAA','VVVVxx' +5253,6460,1,1,3,13,53,253,1253,253,5253,106,107,'BUAAAA','MOJAAA','AAAAxx' +8219,6461,1,3,9,19,19,219,219,3219,8219,38,39,'DEAAAA','NOJAAA','HHHHxx' +8113,6462,1,1,3,13,13,113,113,3113,8113,26,27,'BAAAAA','OOJAAA','OOOOxx' +3616,6463,0,0,6,16,16,616,1616,3616,3616,32,33,'CJAAAA','POJAAA','VVVVxx' +1361,6464,1,1,1,1,61,361,1361,1361,1361,122,123,'JAAAAA','QOJAAA','AAAAxx' +949,6465,1,1,9,9,49,949,949,949,949,98,99,'NKAAAA','ROJAAA','HHHHxx' +8582,6466,0,2,2,2,82,582,582,3582,8582,164,165,'CSAAAA','SOJAAA','OOOOxx' +5104,6467,0,0,4,4,4,104,1104,104,5104,8,9,'IOAAAA','TOJAAA','VVVVxx' +6146,6468,0,2,6,6,46,146,146,1146,6146,92,93,'KCAAAA','UOJAAA','AAAAxx' +7681,6469,1,1,1,1,81,681,1681,2681,7681,162,163,'LJAAAA','VOJAAA','HHHHxx' +1904,6470,0,0,4,4,4,904,1904,1904,1904,8,9,'GVAAAA','WOJAAA','OOOOxx' +1989,6471,1,1,9,9,89,989,1989,1989,1989,178,179,'NYAAAA','XOJAAA','VVVVxx' +4179,6472,1,3,9,19,79,179,179,4179,4179,158,159,'TEAAAA','YOJAAA','AAAAxx' +1739,6473,1,3,9,19,39,739,1739,1739,1739,78,79,'XOAAAA','ZOJAAA','HHHHxx' +2447,6474,1,3,7,7,47,447,447,2447,2447,94,95,'DQAAAA','APJAAA','OOOOxx' +3029,6475,1,1,9,9,29,29,1029,3029,3029,58,59,'NMAAAA','BPJAAA','VVVVxx' +9783,6476,1,3,3,3,83,783,1783,4783,9783,166,167,'HMAAAA','CPJAAA','AAAAxx' +8381,6477,1,1,1,1,81,381,381,3381,8381,162,163,'JKAAAA','DPJAAA','HHHHxx' +8755,6478,1,3,5,15,55,755,755,3755,8755,110,111,'TYAAAA','EPJAAA','OOOOxx' +8384,6479,0,0,4,4,84,384,384,3384,8384,168,169,'MKAAAA','FPJAAA','VVVVxx' +7655,6480,1,3,5,15,55,655,1655,2655,7655,110,111,'LIAAAA','GPJAAA','AAAAxx' +4766,6481,0,2,6,6,66,766,766,4766,4766,132,133,'IBAAAA','HPJAAA','HHHHxx' +3324,6482,0,0,4,4,24,324,1324,3324,3324,48,49,'WXAAAA','IPJAAA','OOOOxx' +5022,6483,0,2,2,2,22,22,1022,22,5022,44,45,'ELAAAA','JPJAAA','VVVVxx' +2856,6484,0,0,6,16,56,856,856,2856,2856,112,113,'WFAAAA','KPJAAA','AAAAxx' +6503,6485,1,3,3,3,3,503,503,1503,6503,6,7,'DQAAAA','LPJAAA','HHHHxx' +6872,6486,0,0,2,12,72,872,872,1872,6872,144,145,'IEAAAA','MPJAAA','OOOOxx' +1663,6487,1,3,3,3,63,663,1663,1663,1663,126,127,'ZLAAAA','NPJAAA','VVVVxx' +6964,6488,0,0,4,4,64,964,964,1964,6964,128,129,'WHAAAA','OPJAAA','AAAAxx' +4622,6489,0,2,2,2,22,622,622,4622,4622,44,45,'UVAAAA','PPJAAA','HHHHxx' +6089,6490,1,1,9,9,89,89,89,1089,6089,178,179,'FAAAAA','QPJAAA','OOOOxx' +8567,6491,1,3,7,7,67,567,567,3567,8567,134,135,'NRAAAA','RPJAAA','VVVVxx' +597,6492,1,1,7,17,97,597,597,597,597,194,195,'ZWAAAA','SPJAAA','AAAAxx' +4222,6493,0,2,2,2,22,222,222,4222,4222,44,45,'KGAAAA','TPJAAA','HHHHxx' +9322,6494,0,2,2,2,22,322,1322,4322,9322,44,45,'OUAAAA','UPJAAA','OOOOxx' +624,6495,0,0,4,4,24,624,624,624,624,48,49,'AYAAAA','VPJAAA','VVVVxx' +4329,6496,1,1,9,9,29,329,329,4329,4329,58,59,'NKAAAA','WPJAAA','AAAAxx' +6781,6497,1,1,1,1,81,781,781,1781,6781,162,163,'VAAAAA','XPJAAA','HHHHxx' +1673,6498,1,1,3,13,73,673,1673,1673,1673,146,147,'JMAAAA','YPJAAA','OOOOxx' +6633,6499,1,1,3,13,33,633,633,1633,6633,66,67,'DVAAAA','ZPJAAA','VVVVxx' +2569,6500,1,1,9,9,69,569,569,2569,2569,138,139,'VUAAAA','AQJAAA','AAAAxx' +4995,6501,1,3,5,15,95,995,995,4995,4995,190,191,'DKAAAA','BQJAAA','HHHHxx' +2749,6502,1,1,9,9,49,749,749,2749,2749,98,99,'TBAAAA','CQJAAA','OOOOxx' +9044,6503,0,0,4,4,44,44,1044,4044,9044,88,89,'WJAAAA','DQJAAA','VVVVxx' +5823,6504,1,3,3,3,23,823,1823,823,5823,46,47,'ZPAAAA','EQJAAA','AAAAxx' +9366,6505,0,2,6,6,66,366,1366,4366,9366,132,133,'GWAAAA','FQJAAA','HHHHxx' +1169,6506,1,1,9,9,69,169,1169,1169,1169,138,139,'ZSAAAA','GQJAAA','OOOOxx' +1300,6507,0,0,0,0,0,300,1300,1300,1300,0,1,'AYAAAA','HQJAAA','VVVVxx' +9973,6508,1,1,3,13,73,973,1973,4973,9973,146,147,'PTAAAA','IQJAAA','AAAAxx' +2092,6509,0,0,2,12,92,92,92,2092,2092,184,185,'MCAAAA','JQJAAA','HHHHxx' +9776,6510,0,0,6,16,76,776,1776,4776,9776,152,153,'AMAAAA','KQJAAA','OOOOxx' +7612,6511,0,0,2,12,12,612,1612,2612,7612,24,25,'UGAAAA','LQJAAA','VVVVxx' +7190,6512,0,2,0,10,90,190,1190,2190,7190,180,181,'OQAAAA','MQJAAA','AAAAxx' +5147,6513,1,3,7,7,47,147,1147,147,5147,94,95,'ZPAAAA','NQJAAA','HHHHxx' +3722,6514,0,2,2,2,22,722,1722,3722,3722,44,45,'ENAAAA','OQJAAA','OOOOxx' +5858,6515,0,2,8,18,58,858,1858,858,5858,116,117,'IRAAAA','PQJAAA','VVVVxx' +3204,6516,0,0,4,4,4,204,1204,3204,3204,8,9,'GTAAAA','QQJAAA','AAAAxx' +8994,6517,0,2,4,14,94,994,994,3994,8994,188,189,'YHAAAA','RQJAAA','HHHHxx' +7478,6518,0,2,8,18,78,478,1478,2478,7478,156,157,'QBAAAA','SQJAAA','OOOOxx' +9624,6519,0,0,4,4,24,624,1624,4624,9624,48,49,'EGAAAA','TQJAAA','VVVVxx' +6639,6520,1,3,9,19,39,639,639,1639,6639,78,79,'JVAAAA','UQJAAA','AAAAxx' +369,6521,1,1,9,9,69,369,369,369,369,138,139,'FOAAAA','VQJAAA','HHHHxx' +7766,6522,0,2,6,6,66,766,1766,2766,7766,132,133,'SMAAAA','WQJAAA','OOOOxx' +4094,6523,0,2,4,14,94,94,94,4094,4094,188,189,'MBAAAA','XQJAAA','VVVVxx' +9556,6524,0,0,6,16,56,556,1556,4556,9556,112,113,'ODAAAA','YQJAAA','AAAAxx' +4887,6525,1,3,7,7,87,887,887,4887,4887,174,175,'ZFAAAA','ZQJAAA','HHHHxx' +2321,6526,1,1,1,1,21,321,321,2321,2321,42,43,'HLAAAA','ARJAAA','OOOOxx' +9201,6527,1,1,1,1,1,201,1201,4201,9201,2,3,'XPAAAA','BRJAAA','VVVVxx' +1627,6528,1,3,7,7,27,627,1627,1627,1627,54,55,'PKAAAA','CRJAAA','AAAAxx' +150,6529,0,2,0,10,50,150,150,150,150,100,101,'UFAAAA','DRJAAA','HHHHxx' +8010,6530,0,2,0,10,10,10,10,3010,8010,20,21,'CWAAAA','ERJAAA','OOOOxx' +8026,6531,0,2,6,6,26,26,26,3026,8026,52,53,'SWAAAA','FRJAAA','VVVVxx' +5495,6532,1,3,5,15,95,495,1495,495,5495,190,191,'JDAAAA','GRJAAA','AAAAxx' +6213,6533,1,1,3,13,13,213,213,1213,6213,26,27,'ZEAAAA','HRJAAA','HHHHxx' +6464,6534,0,0,4,4,64,464,464,1464,6464,128,129,'QOAAAA','IRJAAA','OOOOxx' +1158,6535,0,2,8,18,58,158,1158,1158,1158,116,117,'OSAAAA','JRJAAA','VVVVxx' +8669,6536,1,1,9,9,69,669,669,3669,8669,138,139,'LVAAAA','KRJAAA','AAAAxx' +3225,6537,1,1,5,5,25,225,1225,3225,3225,50,51,'BUAAAA','LRJAAA','HHHHxx' +1294,6538,0,2,4,14,94,294,1294,1294,1294,188,189,'UXAAAA','MRJAAA','OOOOxx' +2166,6539,0,2,6,6,66,166,166,2166,2166,132,133,'IFAAAA','NRJAAA','VVVVxx' +9328,6540,0,0,8,8,28,328,1328,4328,9328,56,57,'UUAAAA','ORJAAA','AAAAxx' +8431,6541,1,3,1,11,31,431,431,3431,8431,62,63,'HMAAAA','PRJAAA','HHHHxx' +7100,6542,0,0,0,0,0,100,1100,2100,7100,0,1,'CNAAAA','QRJAAA','OOOOxx' +8126,6543,0,2,6,6,26,126,126,3126,8126,52,53,'OAAAAA','RRJAAA','VVVVxx' +2185,6544,1,1,5,5,85,185,185,2185,2185,170,171,'BGAAAA','SRJAAA','AAAAxx' +5697,6545,1,1,7,17,97,697,1697,697,5697,194,195,'DLAAAA','TRJAAA','HHHHxx' +5531,6546,1,3,1,11,31,531,1531,531,5531,62,63,'TEAAAA','URJAAA','OOOOxx' +3020,6547,0,0,0,0,20,20,1020,3020,3020,40,41,'EMAAAA','VRJAAA','VVVVxx' +3076,6548,0,0,6,16,76,76,1076,3076,3076,152,153,'IOAAAA','WRJAAA','AAAAxx' +9228,6549,0,0,8,8,28,228,1228,4228,9228,56,57,'YQAAAA','XRJAAA','HHHHxx' +1734,6550,0,2,4,14,34,734,1734,1734,1734,68,69,'SOAAAA','YRJAAA','OOOOxx' +7616,6551,0,0,6,16,16,616,1616,2616,7616,32,33,'YGAAAA','ZRJAAA','VVVVxx' +9059,6552,1,3,9,19,59,59,1059,4059,9059,118,119,'LKAAAA','ASJAAA','AAAAxx' +323,6553,1,3,3,3,23,323,323,323,323,46,47,'LMAAAA','BSJAAA','HHHHxx' +1283,6554,1,3,3,3,83,283,1283,1283,1283,166,167,'JXAAAA','CSJAAA','OOOOxx' +9535,6555,1,3,5,15,35,535,1535,4535,9535,70,71,'TCAAAA','DSJAAA','VVVVxx' +2580,6556,0,0,0,0,80,580,580,2580,2580,160,161,'GVAAAA','ESJAAA','AAAAxx' +7633,6557,1,1,3,13,33,633,1633,2633,7633,66,67,'PHAAAA','FSJAAA','HHHHxx' +9497,6558,1,1,7,17,97,497,1497,4497,9497,194,195,'HBAAAA','GSJAAA','OOOOxx' +9842,6559,0,2,2,2,42,842,1842,4842,9842,84,85,'OOAAAA','HSJAAA','VVVVxx' +3426,6560,0,2,6,6,26,426,1426,3426,3426,52,53,'UBAAAA','ISJAAA','AAAAxx' +7650,6561,0,2,0,10,50,650,1650,2650,7650,100,101,'GIAAAA','JSJAAA','HHHHxx' +9935,6562,1,3,5,15,35,935,1935,4935,9935,70,71,'DSAAAA','KSJAAA','OOOOxx' +9354,6563,0,2,4,14,54,354,1354,4354,9354,108,109,'UVAAAA','LSJAAA','VVVVxx' +5569,6564,1,1,9,9,69,569,1569,569,5569,138,139,'FGAAAA','MSJAAA','AAAAxx' +5765,6565,1,1,5,5,65,765,1765,765,5765,130,131,'TNAAAA','NSJAAA','HHHHxx' +7283,6566,1,3,3,3,83,283,1283,2283,7283,166,167,'DUAAAA','OSJAAA','OOOOxx' +1068,6567,0,0,8,8,68,68,1068,1068,1068,136,137,'CPAAAA','PSJAAA','VVVVxx' +1641,6568,1,1,1,1,41,641,1641,1641,1641,82,83,'DLAAAA','QSJAAA','AAAAxx' +1688,6569,0,0,8,8,88,688,1688,1688,1688,176,177,'YMAAAA','RSJAAA','HHHHxx' +1133,6570,1,1,3,13,33,133,1133,1133,1133,66,67,'PRAAAA','SSJAAA','OOOOxx' +4493,6571,1,1,3,13,93,493,493,4493,4493,186,187,'VQAAAA','TSJAAA','VVVVxx' +3354,6572,0,2,4,14,54,354,1354,3354,3354,108,109,'AZAAAA','USJAAA','AAAAxx' +4029,6573,1,1,9,9,29,29,29,4029,4029,58,59,'ZYAAAA','VSJAAA','HHHHxx' +6704,6574,0,0,4,4,4,704,704,1704,6704,8,9,'WXAAAA','WSJAAA','OOOOxx' +3221,6575,1,1,1,1,21,221,1221,3221,3221,42,43,'XTAAAA','XSJAAA','VVVVxx' +9432,6576,0,0,2,12,32,432,1432,4432,9432,64,65,'UYAAAA','YSJAAA','AAAAxx' +6990,6577,0,2,0,10,90,990,990,1990,6990,180,181,'WIAAAA','ZSJAAA','HHHHxx' +1760,6578,0,0,0,0,60,760,1760,1760,1760,120,121,'SPAAAA','ATJAAA','OOOOxx' +4754,6579,0,2,4,14,54,754,754,4754,4754,108,109,'WAAAAA','BTJAAA','VVVVxx' +7724,6580,0,0,4,4,24,724,1724,2724,7724,48,49,'CLAAAA','CTJAAA','AAAAxx' +9487,6581,1,3,7,7,87,487,1487,4487,9487,174,175,'XAAAAA','DTJAAA','HHHHxx' +166,6582,0,2,6,6,66,166,166,166,166,132,133,'KGAAAA','ETJAAA','OOOOxx' +5479,6583,1,3,9,19,79,479,1479,479,5479,158,159,'TCAAAA','FTJAAA','VVVVxx' +8744,6584,0,0,4,4,44,744,744,3744,8744,88,89,'IYAAAA','GTJAAA','AAAAxx' +5746,6585,0,2,6,6,46,746,1746,746,5746,92,93,'ANAAAA','HTJAAA','HHHHxx' +907,6586,1,3,7,7,7,907,907,907,907,14,15,'XIAAAA','ITJAAA','OOOOxx' +3968,6587,0,0,8,8,68,968,1968,3968,3968,136,137,'QWAAAA','JTJAAA','VVVVxx' +5721,6588,1,1,1,1,21,721,1721,721,5721,42,43,'BMAAAA','KTJAAA','AAAAxx' +6738,6589,0,2,8,18,38,738,738,1738,6738,76,77,'EZAAAA','LTJAAA','HHHHxx' +4097,6590,1,1,7,17,97,97,97,4097,4097,194,195,'PBAAAA','MTJAAA','OOOOxx' +8456,6591,0,0,6,16,56,456,456,3456,8456,112,113,'GNAAAA','NTJAAA','VVVVxx' +1269,6592,1,1,9,9,69,269,1269,1269,1269,138,139,'VWAAAA','OTJAAA','AAAAxx' +7997,6593,1,1,7,17,97,997,1997,2997,7997,194,195,'PVAAAA','PTJAAA','HHHHxx' +9457,6594,1,1,7,17,57,457,1457,4457,9457,114,115,'TZAAAA','QTJAAA','OOOOxx' +1159,6595,1,3,9,19,59,159,1159,1159,1159,118,119,'PSAAAA','RTJAAA','VVVVxx' +1631,6596,1,3,1,11,31,631,1631,1631,1631,62,63,'TKAAAA','STJAAA','AAAAxx' +2019,6597,1,3,9,19,19,19,19,2019,2019,38,39,'RZAAAA','TTJAAA','HHHHxx' +3186,6598,0,2,6,6,86,186,1186,3186,3186,172,173,'OSAAAA','UTJAAA','OOOOxx' +5587,6599,1,3,7,7,87,587,1587,587,5587,174,175,'XGAAAA','VTJAAA','VVVVxx' +9172,6600,0,0,2,12,72,172,1172,4172,9172,144,145,'UOAAAA','WTJAAA','AAAAxx' +5589,6601,1,1,9,9,89,589,1589,589,5589,178,179,'ZGAAAA','XTJAAA','HHHHxx' +5103,6602,1,3,3,3,3,103,1103,103,5103,6,7,'HOAAAA','YTJAAA','OOOOxx' +3177,6603,1,1,7,17,77,177,1177,3177,3177,154,155,'FSAAAA','ZTJAAA','VVVVxx' +8887,6604,1,3,7,7,87,887,887,3887,8887,174,175,'VDAAAA','AUJAAA','AAAAxx' +12,6605,0,0,2,12,12,12,12,12,12,24,25,'MAAAAA','BUJAAA','HHHHxx' +8575,6606,1,3,5,15,75,575,575,3575,8575,150,151,'VRAAAA','CUJAAA','OOOOxx' +4335,6607,1,3,5,15,35,335,335,4335,4335,70,71,'TKAAAA','DUJAAA','VVVVxx' +4581,6608,1,1,1,1,81,581,581,4581,4581,162,163,'FUAAAA','EUJAAA','AAAAxx' +4444,6609,0,0,4,4,44,444,444,4444,4444,88,89,'YOAAAA','FUJAAA','HHHHxx' +7978,6610,0,2,8,18,78,978,1978,2978,7978,156,157,'WUAAAA','GUJAAA','OOOOxx' +3081,6611,1,1,1,1,81,81,1081,3081,3081,162,163,'NOAAAA','HUJAAA','VVVVxx' +4059,6612,1,3,9,19,59,59,59,4059,4059,118,119,'DAAAAA','IUJAAA','AAAAxx' +5711,6613,1,3,1,11,11,711,1711,711,5711,22,23,'RLAAAA','JUJAAA','HHHHxx' +7069,6614,1,1,9,9,69,69,1069,2069,7069,138,139,'XLAAAA','KUJAAA','OOOOxx' +6150,6615,0,2,0,10,50,150,150,1150,6150,100,101,'OCAAAA','LUJAAA','VVVVxx' +9550,6616,0,2,0,10,50,550,1550,4550,9550,100,101,'IDAAAA','MUJAAA','AAAAxx' +7087,6617,1,3,7,7,87,87,1087,2087,7087,174,175,'PMAAAA','NUJAAA','HHHHxx' +9557,6618,1,1,7,17,57,557,1557,4557,9557,114,115,'PDAAAA','OUJAAA','OOOOxx' +7856,6619,0,0,6,16,56,856,1856,2856,7856,112,113,'EQAAAA','PUJAAA','VVVVxx' +1115,6620,1,3,5,15,15,115,1115,1115,1115,30,31,'XQAAAA','QUJAAA','AAAAxx' +1086,6621,0,2,6,6,86,86,1086,1086,1086,172,173,'UPAAAA','RUJAAA','HHHHxx' +5048,6622,0,0,8,8,48,48,1048,48,5048,96,97,'EMAAAA','SUJAAA','OOOOxx' +5168,6623,0,0,8,8,68,168,1168,168,5168,136,137,'UQAAAA','TUJAAA','VVVVxx' +6029,6624,1,1,9,9,29,29,29,1029,6029,58,59,'XXAAAA','UUJAAA','AAAAxx' +546,6625,0,2,6,6,46,546,546,546,546,92,93,'AVAAAA','VUJAAA','HHHHxx' +2908,6626,0,0,8,8,8,908,908,2908,2908,16,17,'WHAAAA','WUJAAA','OOOOxx' +779,6627,1,3,9,19,79,779,779,779,779,158,159,'ZDAAAA','XUJAAA','VVVVxx' +4202,6628,0,2,2,2,2,202,202,4202,4202,4,5,'QFAAAA','YUJAAA','AAAAxx' +9984,6629,0,0,4,4,84,984,1984,4984,9984,168,169,'AUAAAA','ZUJAAA','HHHHxx' +4730,6630,0,2,0,10,30,730,730,4730,4730,60,61,'YZAAAA','AVJAAA','OOOOxx' +6517,6631,1,1,7,17,17,517,517,1517,6517,34,35,'RQAAAA','BVJAAA','VVVVxx' +8410,6632,0,2,0,10,10,410,410,3410,8410,20,21,'MLAAAA','CVJAAA','AAAAxx' +4793,6633,1,1,3,13,93,793,793,4793,4793,186,187,'JCAAAA','DVJAAA','HHHHxx' +3431,6634,1,3,1,11,31,431,1431,3431,3431,62,63,'ZBAAAA','EVJAAA','OOOOxx' +2481,6635,1,1,1,1,81,481,481,2481,2481,162,163,'LRAAAA','FVJAAA','VVVVxx' +3905,6636,1,1,5,5,5,905,1905,3905,3905,10,11,'FUAAAA','GVJAAA','AAAAxx' +8807,6637,1,3,7,7,7,807,807,3807,8807,14,15,'TAAAAA','HVJAAA','HHHHxx' +2660,6638,0,0,0,0,60,660,660,2660,2660,120,121,'IYAAAA','IVJAAA','OOOOxx' +4985,6639,1,1,5,5,85,985,985,4985,4985,170,171,'TJAAAA','JVJAAA','VVVVxx' +3080,6640,0,0,0,0,80,80,1080,3080,3080,160,161,'MOAAAA','KVJAAA','AAAAxx' +1090,6641,0,2,0,10,90,90,1090,1090,1090,180,181,'YPAAAA','LVJAAA','HHHHxx' +6917,6642,1,1,7,17,17,917,917,1917,6917,34,35,'BGAAAA','MVJAAA','OOOOxx' +5177,6643,1,1,7,17,77,177,1177,177,5177,154,155,'DRAAAA','NVJAAA','VVVVxx' +2729,6644,1,1,9,9,29,729,729,2729,2729,58,59,'ZAAAAA','OVJAAA','AAAAxx' +9706,6645,0,2,6,6,6,706,1706,4706,9706,12,13,'IJAAAA','PVJAAA','HHHHxx' +9929,6646,1,1,9,9,29,929,1929,4929,9929,58,59,'XRAAAA','QVJAAA','OOOOxx' +1547,6647,1,3,7,7,47,547,1547,1547,1547,94,95,'NHAAAA','RVJAAA','VVVVxx' +2798,6648,0,2,8,18,98,798,798,2798,2798,196,197,'QDAAAA','SVJAAA','AAAAxx' +4420,6649,0,0,0,0,20,420,420,4420,4420,40,41,'AOAAAA','TVJAAA','HHHHxx' +6771,6650,1,3,1,11,71,771,771,1771,6771,142,143,'LAAAAA','UVJAAA','OOOOxx' +2004,6651,0,0,4,4,4,4,4,2004,2004,8,9,'CZAAAA','VVJAAA','VVVVxx' +8686,6652,0,2,6,6,86,686,686,3686,8686,172,173,'CWAAAA','WVJAAA','AAAAxx' +3663,6653,1,3,3,3,63,663,1663,3663,3663,126,127,'XKAAAA','XVJAAA','HHHHxx' +806,6654,0,2,6,6,6,806,806,806,806,12,13,'AFAAAA','YVJAAA','OOOOxx' +4309,6655,1,1,9,9,9,309,309,4309,4309,18,19,'TJAAAA','ZVJAAA','VVVVxx' +7443,6656,1,3,3,3,43,443,1443,2443,7443,86,87,'HAAAAA','AWJAAA','AAAAxx' +5779,6657,1,3,9,19,79,779,1779,779,5779,158,159,'HOAAAA','BWJAAA','HHHHxx' +8821,6658,1,1,1,1,21,821,821,3821,8821,42,43,'HBAAAA','CWJAAA','OOOOxx' +4198,6659,0,2,8,18,98,198,198,4198,4198,196,197,'MFAAAA','DWJAAA','VVVVxx' +8115,6660,1,3,5,15,15,115,115,3115,8115,30,31,'DAAAAA','EWJAAA','AAAAxx' +9554,6661,0,2,4,14,54,554,1554,4554,9554,108,109,'MDAAAA','FWJAAA','HHHHxx' +8956,6662,0,0,6,16,56,956,956,3956,8956,112,113,'MGAAAA','GWJAAA','OOOOxx' +4733,6663,1,1,3,13,33,733,733,4733,4733,66,67,'BAAAAA','HWJAAA','VVVVxx' +5417,6664,1,1,7,17,17,417,1417,417,5417,34,35,'JAAAAA','IWJAAA','AAAAxx' +4792,6665,0,0,2,12,92,792,792,4792,4792,184,185,'ICAAAA','JWJAAA','HHHHxx' +462,6666,0,2,2,2,62,462,462,462,462,124,125,'URAAAA','KWJAAA','OOOOxx' +3687,6667,1,3,7,7,87,687,1687,3687,3687,174,175,'VLAAAA','LWJAAA','VVVVxx' +2013,6668,1,1,3,13,13,13,13,2013,2013,26,27,'LZAAAA','MWJAAA','AAAAxx' +5386,6669,0,2,6,6,86,386,1386,386,5386,172,173,'EZAAAA','NWJAAA','HHHHxx' +2816,6670,0,0,6,16,16,816,816,2816,2816,32,33,'IEAAAA','OWJAAA','OOOOxx' +7827,6671,1,3,7,7,27,827,1827,2827,7827,54,55,'BPAAAA','PWJAAA','VVVVxx' +5077,6672,1,1,7,17,77,77,1077,77,5077,154,155,'HNAAAA','QWJAAA','AAAAxx' +6039,6673,1,3,9,19,39,39,39,1039,6039,78,79,'HYAAAA','RWJAAA','HHHHxx' +215,6674,1,3,5,15,15,215,215,215,215,30,31,'HIAAAA','SWJAAA','OOOOxx' +855,6675,1,3,5,15,55,855,855,855,855,110,111,'XGAAAA','TWJAAA','VVVVxx' +9692,6676,0,0,2,12,92,692,1692,4692,9692,184,185,'UIAAAA','UWJAAA','AAAAxx' +8391,6677,1,3,1,11,91,391,391,3391,8391,182,183,'TKAAAA','VWJAAA','HHHHxx' +8424,6678,0,0,4,4,24,424,424,3424,8424,48,49,'AMAAAA','WWJAAA','OOOOxx' +6331,6679,1,3,1,11,31,331,331,1331,6331,62,63,'NJAAAA','XWJAAA','VVVVxx' +6561,6680,1,1,1,1,61,561,561,1561,6561,122,123,'JSAAAA','YWJAAA','AAAAxx' +8955,6681,1,3,5,15,55,955,955,3955,8955,110,111,'LGAAAA','ZWJAAA','HHHHxx' +1764,6682,0,0,4,4,64,764,1764,1764,1764,128,129,'WPAAAA','AXJAAA','OOOOxx' +6623,6683,1,3,3,3,23,623,623,1623,6623,46,47,'TUAAAA','BXJAAA','VVVVxx' +2900,6684,0,0,0,0,0,900,900,2900,2900,0,1,'OHAAAA','CXJAAA','AAAAxx' +7048,6685,0,0,8,8,48,48,1048,2048,7048,96,97,'CLAAAA','DXJAAA','HHHHxx' +3843,6686,1,3,3,3,43,843,1843,3843,3843,86,87,'VRAAAA','EXJAAA','OOOOxx' +4855,6687,1,3,5,15,55,855,855,4855,4855,110,111,'TEAAAA','FXJAAA','VVVVxx' +7383,6688,1,3,3,3,83,383,1383,2383,7383,166,167,'ZXAAAA','GXJAAA','AAAAxx' +7765,6689,1,1,5,5,65,765,1765,2765,7765,130,131,'RMAAAA','HXJAAA','HHHHxx' +1125,6690,1,1,5,5,25,125,1125,1125,1125,50,51,'HRAAAA','IXJAAA','OOOOxx' +755,6691,1,3,5,15,55,755,755,755,755,110,111,'BDAAAA','JXJAAA','VVVVxx' +2995,6692,1,3,5,15,95,995,995,2995,2995,190,191,'FLAAAA','KXJAAA','AAAAxx' +8907,6693,1,3,7,7,7,907,907,3907,8907,14,15,'PEAAAA','LXJAAA','HHHHxx' +9357,6694,1,1,7,17,57,357,1357,4357,9357,114,115,'XVAAAA','MXJAAA','OOOOxx' +4469,6695,1,1,9,9,69,469,469,4469,4469,138,139,'XPAAAA','NXJAAA','VVVVxx' +2147,6696,1,3,7,7,47,147,147,2147,2147,94,95,'PEAAAA','OXJAAA','AAAAxx' +2952,6697,0,0,2,12,52,952,952,2952,2952,104,105,'OJAAAA','PXJAAA','HHHHxx' +1324,6698,0,0,4,4,24,324,1324,1324,1324,48,49,'YYAAAA','QXJAAA','OOOOxx' +1173,6699,1,1,3,13,73,173,1173,1173,1173,146,147,'DTAAAA','RXJAAA','VVVVxx' +3169,6700,1,1,9,9,69,169,1169,3169,3169,138,139,'XRAAAA','SXJAAA','AAAAxx' +5149,6701,1,1,9,9,49,149,1149,149,5149,98,99,'BQAAAA','TXJAAA','HHHHxx' +9660,6702,0,0,0,0,60,660,1660,4660,9660,120,121,'OHAAAA','UXJAAA','OOOOxx' +3446,6703,0,2,6,6,46,446,1446,3446,3446,92,93,'OCAAAA','VXJAAA','VVVVxx' +6988,6704,0,0,8,8,88,988,988,1988,6988,176,177,'UIAAAA','WXJAAA','AAAAxx' +5829,6705,1,1,9,9,29,829,1829,829,5829,58,59,'FQAAAA','XXJAAA','HHHHxx' +7166,6706,0,2,6,6,66,166,1166,2166,7166,132,133,'QPAAAA','YXJAAA','OOOOxx' +3940,6707,0,0,0,0,40,940,1940,3940,3940,80,81,'OVAAAA','ZXJAAA','VVVVxx' +2645,6708,1,1,5,5,45,645,645,2645,2645,90,91,'TXAAAA','AYJAAA','AAAAxx' +478,6709,0,2,8,18,78,478,478,478,478,156,157,'KSAAAA','BYJAAA','HHHHxx' +1156,6710,0,0,6,16,56,156,1156,1156,1156,112,113,'MSAAAA','CYJAAA','OOOOxx' +2731,6711,1,3,1,11,31,731,731,2731,2731,62,63,'BBAAAA','DYJAAA','VVVVxx' +5637,6712,1,1,7,17,37,637,1637,637,5637,74,75,'VIAAAA','EYJAAA','AAAAxx' +7517,6713,1,1,7,17,17,517,1517,2517,7517,34,35,'DDAAAA','FYJAAA','HHHHxx' +5331,6714,1,3,1,11,31,331,1331,331,5331,62,63,'BXAAAA','GYJAAA','OOOOxx' +9640,6715,0,0,0,0,40,640,1640,4640,9640,80,81,'UGAAAA','HYJAAA','VVVVxx' +4108,6716,0,0,8,8,8,108,108,4108,4108,16,17,'ACAAAA','IYJAAA','AAAAxx' +1087,6717,1,3,7,7,87,87,1087,1087,1087,174,175,'VPAAAA','JYJAAA','HHHHxx' +8017,6718,1,1,7,17,17,17,17,3017,8017,34,35,'JWAAAA','KYJAAA','OOOOxx' +8795,6719,1,3,5,15,95,795,795,3795,8795,190,191,'HAAAAA','LYJAAA','VVVVxx' +7060,6720,0,0,0,0,60,60,1060,2060,7060,120,121,'OLAAAA','MYJAAA','AAAAxx' +9450,6721,0,2,0,10,50,450,1450,4450,9450,100,101,'MZAAAA','NYJAAA','HHHHxx' +390,6722,0,2,0,10,90,390,390,390,390,180,181,'APAAAA','OYJAAA','OOOOxx' +66,6723,0,2,6,6,66,66,66,66,66,132,133,'OCAAAA','PYJAAA','VVVVxx' +8789,6724,1,1,9,9,89,789,789,3789,8789,178,179,'BAAAAA','QYJAAA','AAAAxx' +9260,6725,0,0,0,0,60,260,1260,4260,9260,120,121,'ESAAAA','RYJAAA','HHHHxx' +6679,6726,1,3,9,19,79,679,679,1679,6679,158,159,'XWAAAA','SYJAAA','OOOOxx' +9052,6727,0,0,2,12,52,52,1052,4052,9052,104,105,'EKAAAA','TYJAAA','VVVVxx' +9561,6728,1,1,1,1,61,561,1561,4561,9561,122,123,'TDAAAA','UYJAAA','AAAAxx' +9725,6729,1,1,5,5,25,725,1725,4725,9725,50,51,'BKAAAA','VYJAAA','HHHHxx' +6298,6730,0,2,8,18,98,298,298,1298,6298,196,197,'GIAAAA','WYJAAA','OOOOxx' +8654,6731,0,2,4,14,54,654,654,3654,8654,108,109,'WUAAAA','XYJAAA','VVVVxx' +8725,6732,1,1,5,5,25,725,725,3725,8725,50,51,'PXAAAA','YYJAAA','AAAAxx' +9377,6733,1,1,7,17,77,377,1377,4377,9377,154,155,'RWAAAA','ZYJAAA','HHHHxx' +3807,6734,1,3,7,7,7,807,1807,3807,3807,14,15,'LQAAAA','AZJAAA','OOOOxx' +8048,6735,0,0,8,8,48,48,48,3048,8048,96,97,'OXAAAA','BZJAAA','VVVVxx' +764,6736,0,0,4,4,64,764,764,764,764,128,129,'KDAAAA','CZJAAA','AAAAxx' +9702,6737,0,2,2,2,2,702,1702,4702,9702,4,5,'EJAAAA','DZJAAA','HHHHxx' +8060,6738,0,0,0,0,60,60,60,3060,8060,120,121,'AYAAAA','EZJAAA','OOOOxx' +6371,6739,1,3,1,11,71,371,371,1371,6371,142,143,'BLAAAA','FZJAAA','VVVVxx' +5237,6740,1,1,7,17,37,237,1237,237,5237,74,75,'LTAAAA','GZJAAA','AAAAxx' +743,6741,1,3,3,3,43,743,743,743,743,86,87,'PCAAAA','HZJAAA','HHHHxx' +7395,6742,1,3,5,15,95,395,1395,2395,7395,190,191,'LYAAAA','IZJAAA','OOOOxx' +3365,6743,1,1,5,5,65,365,1365,3365,3365,130,131,'LZAAAA','JZJAAA','VVVVxx' +6667,6744,1,3,7,7,67,667,667,1667,6667,134,135,'LWAAAA','KZJAAA','AAAAxx' +3445,6745,1,1,5,5,45,445,1445,3445,3445,90,91,'NCAAAA','LZJAAA','HHHHxx' +4019,6746,1,3,9,19,19,19,19,4019,4019,38,39,'PYAAAA','MZJAAA','OOOOxx' +7035,6747,1,3,5,15,35,35,1035,2035,7035,70,71,'PKAAAA','NZJAAA','VVVVxx' +5274,6748,0,2,4,14,74,274,1274,274,5274,148,149,'WUAAAA','OZJAAA','AAAAxx' +519,6749,1,3,9,19,19,519,519,519,519,38,39,'ZTAAAA','PZJAAA','HHHHxx' +2801,6750,1,1,1,1,1,801,801,2801,2801,2,3,'TDAAAA','QZJAAA','OOOOxx' +3320,6751,0,0,0,0,20,320,1320,3320,3320,40,41,'SXAAAA','RZJAAA','VVVVxx' +3153,6752,1,1,3,13,53,153,1153,3153,3153,106,107,'HRAAAA','SZJAAA','AAAAxx' +7680,6753,0,0,0,0,80,680,1680,2680,7680,160,161,'KJAAAA','TZJAAA','HHHHxx' +8942,6754,0,2,2,2,42,942,942,3942,8942,84,85,'YFAAAA','UZJAAA','OOOOxx' +3195,6755,1,3,5,15,95,195,1195,3195,3195,190,191,'XSAAAA','VZJAAA','VVVVxx' +2287,6756,1,3,7,7,87,287,287,2287,2287,174,175,'ZJAAAA','WZJAAA','AAAAxx' +8325,6757,1,1,5,5,25,325,325,3325,8325,50,51,'FIAAAA','XZJAAA','HHHHxx' +2603,6758,1,3,3,3,3,603,603,2603,2603,6,7,'DWAAAA','YZJAAA','OOOOxx' +5871,6759,1,3,1,11,71,871,1871,871,5871,142,143,'VRAAAA','ZZJAAA','VVVVxx' +1773,6760,1,1,3,13,73,773,1773,1773,1773,146,147,'FQAAAA','AAKAAA','AAAAxx' +3323,6761,1,3,3,3,23,323,1323,3323,3323,46,47,'VXAAAA','BAKAAA','HHHHxx' +2053,6762,1,1,3,13,53,53,53,2053,2053,106,107,'ZAAAAA','CAKAAA','OOOOxx' +4062,6763,0,2,2,2,62,62,62,4062,4062,124,125,'GAAAAA','DAKAAA','VVVVxx' +4611,6764,1,3,1,11,11,611,611,4611,4611,22,23,'JVAAAA','EAKAAA','AAAAxx' +3451,6765,1,3,1,11,51,451,1451,3451,3451,102,103,'TCAAAA','FAKAAA','HHHHxx' +1819,6766,1,3,9,19,19,819,1819,1819,1819,38,39,'ZRAAAA','GAKAAA','OOOOxx' +9806,6767,0,2,6,6,6,806,1806,4806,9806,12,13,'ENAAAA','HAKAAA','VVVVxx' +6619,6768,1,3,9,19,19,619,619,1619,6619,38,39,'PUAAAA','IAKAAA','AAAAxx' +1031,6769,1,3,1,11,31,31,1031,1031,1031,62,63,'RNAAAA','JAKAAA','HHHHxx' +1865,6770,1,1,5,5,65,865,1865,1865,1865,130,131,'TTAAAA','KAKAAA','OOOOxx' +6282,6771,0,2,2,2,82,282,282,1282,6282,164,165,'QHAAAA','LAKAAA','VVVVxx' +1178,6772,0,2,8,18,78,178,1178,1178,1178,156,157,'ITAAAA','MAKAAA','AAAAxx' +8007,6773,1,3,7,7,7,7,7,3007,8007,14,15,'ZVAAAA','NAKAAA','HHHHxx' +9126,6774,0,2,6,6,26,126,1126,4126,9126,52,53,'ANAAAA','OAKAAA','OOOOxx' +9113,6775,1,1,3,13,13,113,1113,4113,9113,26,27,'NMAAAA','PAKAAA','VVVVxx' +537,6776,1,1,7,17,37,537,537,537,537,74,75,'RUAAAA','QAKAAA','AAAAxx' +6208,6777,0,0,8,8,8,208,208,1208,6208,16,17,'UEAAAA','RAKAAA','HHHHxx' +1626,6778,0,2,6,6,26,626,1626,1626,1626,52,53,'OKAAAA','SAKAAA','OOOOxx' +7188,6779,0,0,8,8,88,188,1188,2188,7188,176,177,'MQAAAA','TAKAAA','VVVVxx' +9216,6780,0,0,6,16,16,216,1216,4216,9216,32,33,'MQAAAA','UAKAAA','AAAAxx' +6134,6781,0,2,4,14,34,134,134,1134,6134,68,69,'YBAAAA','VAKAAA','HHHHxx' +2074,6782,0,2,4,14,74,74,74,2074,2074,148,149,'UBAAAA','WAKAAA','OOOOxx' +6369,6783,1,1,9,9,69,369,369,1369,6369,138,139,'ZKAAAA','XAKAAA','VVVVxx' +9306,6784,0,2,6,6,6,306,1306,4306,9306,12,13,'YTAAAA','YAKAAA','AAAAxx' +3155,6785,1,3,5,15,55,155,1155,3155,3155,110,111,'JRAAAA','ZAKAAA','HHHHxx' +3611,6786,1,3,1,11,11,611,1611,3611,3611,22,23,'XIAAAA','ABKAAA','OOOOxx' +6530,6787,0,2,0,10,30,530,530,1530,6530,60,61,'ERAAAA','BBKAAA','VVVVxx' +6979,6788,1,3,9,19,79,979,979,1979,6979,158,159,'LIAAAA','CBKAAA','AAAAxx' +9129,6789,1,1,9,9,29,129,1129,4129,9129,58,59,'DNAAAA','DBKAAA','HHHHxx' +8013,6790,1,1,3,13,13,13,13,3013,8013,26,27,'FWAAAA','EBKAAA','OOOOxx' +6926,6791,0,2,6,6,26,926,926,1926,6926,52,53,'KGAAAA','FBKAAA','VVVVxx' +1877,6792,1,1,7,17,77,877,1877,1877,1877,154,155,'FUAAAA','GBKAAA','AAAAxx' +1882,6793,0,2,2,2,82,882,1882,1882,1882,164,165,'KUAAAA','HBKAAA','HHHHxx' +6720,6794,0,0,0,0,20,720,720,1720,6720,40,41,'MYAAAA','IBKAAA','OOOOxx' +690,6795,0,2,0,10,90,690,690,690,690,180,181,'OAAAAA','JBKAAA','VVVVxx' +143,6796,1,3,3,3,43,143,143,143,143,86,87,'NFAAAA','KBKAAA','AAAAxx' +7241,6797,1,1,1,1,41,241,1241,2241,7241,82,83,'NSAAAA','LBKAAA','HHHHxx' +6461,6798,1,1,1,1,61,461,461,1461,6461,122,123,'NOAAAA','MBKAAA','OOOOxx' +2258,6799,0,2,8,18,58,258,258,2258,2258,116,117,'WIAAAA','NBKAAA','VVVVxx' +2280,6800,0,0,0,0,80,280,280,2280,2280,160,161,'SJAAAA','OBKAAA','AAAAxx' +7556,6801,0,0,6,16,56,556,1556,2556,7556,112,113,'QEAAAA','PBKAAA','HHHHxx' +1038,6802,0,2,8,18,38,38,1038,1038,1038,76,77,'YNAAAA','QBKAAA','OOOOxx' +2634,6803,0,2,4,14,34,634,634,2634,2634,68,69,'IXAAAA','RBKAAA','VVVVxx' +7847,6804,1,3,7,7,47,847,1847,2847,7847,94,95,'VPAAAA','SBKAAA','AAAAxx' +4415,6805,1,3,5,15,15,415,415,4415,4415,30,31,'VNAAAA','TBKAAA','HHHHxx' +1933,6806,1,1,3,13,33,933,1933,1933,1933,66,67,'JWAAAA','UBKAAA','OOOOxx' +8034,6807,0,2,4,14,34,34,34,3034,8034,68,69,'AXAAAA','VBKAAA','VVVVxx' +9233,6808,1,1,3,13,33,233,1233,4233,9233,66,67,'DRAAAA','WBKAAA','AAAAxx' +6572,6809,0,0,2,12,72,572,572,1572,6572,144,145,'USAAAA','XBKAAA','HHHHxx' +1586,6810,0,2,6,6,86,586,1586,1586,1586,172,173,'AJAAAA','YBKAAA','OOOOxx' +8512,6811,0,0,2,12,12,512,512,3512,8512,24,25,'KPAAAA','ZBKAAA','VVVVxx' +7421,6812,1,1,1,1,21,421,1421,2421,7421,42,43,'LZAAAA','ACKAAA','AAAAxx' +503,6813,1,3,3,3,3,503,503,503,503,6,7,'JTAAAA','BCKAAA','HHHHxx' +5332,6814,0,0,2,12,32,332,1332,332,5332,64,65,'CXAAAA','CCKAAA','OOOOxx' +2602,6815,0,2,2,2,2,602,602,2602,2602,4,5,'CWAAAA','DCKAAA','VVVVxx' +2902,6816,0,2,2,2,2,902,902,2902,2902,4,5,'QHAAAA','ECKAAA','AAAAxx' +2979,6817,1,3,9,19,79,979,979,2979,2979,158,159,'PKAAAA','FCKAAA','HHHHxx' +1431,6818,1,3,1,11,31,431,1431,1431,1431,62,63,'BDAAAA','GCKAAA','OOOOxx' +8639,6819,1,3,9,19,39,639,639,3639,8639,78,79,'HUAAAA','HCKAAA','VVVVxx' +4218,6820,0,2,8,18,18,218,218,4218,4218,36,37,'GGAAAA','ICKAAA','AAAAxx' +7453,6821,1,1,3,13,53,453,1453,2453,7453,106,107,'RAAAAA','JCKAAA','HHHHxx' +5448,6822,0,0,8,8,48,448,1448,448,5448,96,97,'OBAAAA','KCKAAA','OOOOxx' +6768,6823,0,0,8,8,68,768,768,1768,6768,136,137,'IAAAAA','LCKAAA','VVVVxx' +3104,6824,0,0,4,4,4,104,1104,3104,3104,8,9,'KPAAAA','MCKAAA','AAAAxx' +2297,6825,1,1,7,17,97,297,297,2297,2297,194,195,'JKAAAA','NCKAAA','HHHHxx' +7994,6826,0,2,4,14,94,994,1994,2994,7994,188,189,'MVAAAA','OCKAAA','OOOOxx' +550,6827,0,2,0,10,50,550,550,550,550,100,101,'EVAAAA','PCKAAA','VVVVxx' +4777,6828,1,1,7,17,77,777,777,4777,4777,154,155,'TBAAAA','QCKAAA','AAAAxx' +5962,6829,0,2,2,2,62,962,1962,962,5962,124,125,'IVAAAA','RCKAAA','HHHHxx' +1763,6830,1,3,3,3,63,763,1763,1763,1763,126,127,'VPAAAA','SCKAAA','OOOOxx' +3654,6831,0,2,4,14,54,654,1654,3654,3654,108,109,'OKAAAA','TCKAAA','VVVVxx' +4106,6832,0,2,6,6,6,106,106,4106,4106,12,13,'YBAAAA','UCKAAA','AAAAxx' +5156,6833,0,0,6,16,56,156,1156,156,5156,112,113,'IQAAAA','VCKAAA','HHHHxx' +422,6834,0,2,2,2,22,422,422,422,422,44,45,'GQAAAA','WCKAAA','OOOOxx' +5011,6835,1,3,1,11,11,11,1011,11,5011,22,23,'TKAAAA','XCKAAA','VVVVxx' +218,6836,0,2,8,18,18,218,218,218,218,36,37,'KIAAAA','YCKAAA','AAAAxx' +9762,6837,0,2,2,2,62,762,1762,4762,9762,124,125,'MLAAAA','ZCKAAA','HHHHxx' +6074,6838,0,2,4,14,74,74,74,1074,6074,148,149,'QZAAAA','ADKAAA','OOOOxx' +4060,6839,0,0,0,0,60,60,60,4060,4060,120,121,'EAAAAA','BDKAAA','VVVVxx' +8680,6840,0,0,0,0,80,680,680,3680,8680,160,161,'WVAAAA','CDKAAA','AAAAxx' +5863,6841,1,3,3,3,63,863,1863,863,5863,126,127,'NRAAAA','DDKAAA','HHHHxx' +8042,6842,0,2,2,2,42,42,42,3042,8042,84,85,'IXAAAA','EDKAAA','OOOOxx' +2964,6843,0,0,4,4,64,964,964,2964,2964,128,129,'AKAAAA','FDKAAA','VVVVxx' +6931,6844,1,3,1,11,31,931,931,1931,6931,62,63,'PGAAAA','GDKAAA','AAAAxx' +6715,6845,1,3,5,15,15,715,715,1715,6715,30,31,'HYAAAA','HDKAAA','HHHHxx' +5859,6846,1,3,9,19,59,859,1859,859,5859,118,119,'JRAAAA','IDKAAA','OOOOxx' +6173,6847,1,1,3,13,73,173,173,1173,6173,146,147,'LDAAAA','JDKAAA','VVVVxx' +7788,6848,0,0,8,8,88,788,1788,2788,7788,176,177,'ONAAAA','KDKAAA','AAAAxx' +9370,6849,0,2,0,10,70,370,1370,4370,9370,140,141,'KWAAAA','LDKAAA','HHHHxx' +3038,6850,0,2,8,18,38,38,1038,3038,3038,76,77,'WMAAAA','MDKAAA','OOOOxx' +6483,6851,1,3,3,3,83,483,483,1483,6483,166,167,'JPAAAA','NDKAAA','VVVVxx' +7534,6852,0,2,4,14,34,534,1534,2534,7534,68,69,'UDAAAA','ODKAAA','AAAAxx' +5769,6853,1,1,9,9,69,769,1769,769,5769,138,139,'XNAAAA','PDKAAA','HHHHxx' +9152,6854,0,0,2,12,52,152,1152,4152,9152,104,105,'AOAAAA','QDKAAA','OOOOxx' +6251,6855,1,3,1,11,51,251,251,1251,6251,102,103,'LGAAAA','RDKAAA','VVVVxx' +9209,6856,1,1,9,9,9,209,1209,4209,9209,18,19,'FQAAAA','SDKAAA','AAAAxx' +5365,6857,1,1,5,5,65,365,1365,365,5365,130,131,'JYAAAA','TDKAAA','HHHHxx' +509,6858,1,1,9,9,9,509,509,509,509,18,19,'PTAAAA','UDKAAA','OOOOxx' +3132,6859,0,0,2,12,32,132,1132,3132,3132,64,65,'MQAAAA','VDKAAA','VVVVxx' +5373,6860,1,1,3,13,73,373,1373,373,5373,146,147,'RYAAAA','WDKAAA','AAAAxx' +4247,6861,1,3,7,7,47,247,247,4247,4247,94,95,'JHAAAA','XDKAAA','HHHHxx' +3491,6862,1,3,1,11,91,491,1491,3491,3491,182,183,'HEAAAA','YDKAAA','OOOOxx' +495,6863,1,3,5,15,95,495,495,495,495,190,191,'BTAAAA','ZDKAAA','VVVVxx' +1594,6864,0,2,4,14,94,594,1594,1594,1594,188,189,'IJAAAA','AEKAAA','AAAAxx' +2243,6865,1,3,3,3,43,243,243,2243,2243,86,87,'HIAAAA','BEKAAA','HHHHxx' +7780,6866,0,0,0,0,80,780,1780,2780,7780,160,161,'GNAAAA','CEKAAA','OOOOxx' +5632,6867,0,0,2,12,32,632,1632,632,5632,64,65,'QIAAAA','DEKAAA','VVVVxx' +2679,6868,1,3,9,19,79,679,679,2679,2679,158,159,'BZAAAA','EEKAAA','AAAAxx' +1354,6869,0,2,4,14,54,354,1354,1354,1354,108,109,'CAAAAA','FEKAAA','HHHHxx' +180,6870,0,0,0,0,80,180,180,180,180,160,161,'YGAAAA','GEKAAA','OOOOxx' +7017,6871,1,1,7,17,17,17,1017,2017,7017,34,35,'XJAAAA','HEKAAA','VVVVxx' +1867,6872,1,3,7,7,67,867,1867,1867,1867,134,135,'VTAAAA','IEKAAA','AAAAxx' +2213,6873,1,1,3,13,13,213,213,2213,2213,26,27,'DHAAAA','JEKAAA','HHHHxx' +8773,6874,1,1,3,13,73,773,773,3773,8773,146,147,'LZAAAA','KEKAAA','OOOOxx' +1784,6875,0,0,4,4,84,784,1784,1784,1784,168,169,'QQAAAA','LEKAAA','VVVVxx' +5961,6876,1,1,1,1,61,961,1961,961,5961,122,123,'HVAAAA','MEKAAA','AAAAxx' +8801,6877,1,1,1,1,1,801,801,3801,8801,2,3,'NAAAAA','NEKAAA','HHHHxx' +4860,6878,0,0,0,0,60,860,860,4860,4860,120,121,'YEAAAA','OEKAAA','OOOOxx' +2214,6879,0,2,4,14,14,214,214,2214,2214,28,29,'EHAAAA','PEKAAA','VVVVxx' +1735,6880,1,3,5,15,35,735,1735,1735,1735,70,71,'TOAAAA','QEKAAA','AAAAxx' +578,6881,0,2,8,18,78,578,578,578,578,156,157,'GWAAAA','REKAAA','HHHHxx' +7853,6882,1,1,3,13,53,853,1853,2853,7853,106,107,'BQAAAA','SEKAAA','OOOOxx' +2215,6883,1,3,5,15,15,215,215,2215,2215,30,31,'FHAAAA','TEKAAA','VVVVxx' +4704,6884,0,0,4,4,4,704,704,4704,4704,8,9,'YYAAAA','UEKAAA','AAAAxx' +9379,6885,1,3,9,19,79,379,1379,4379,9379,158,159,'TWAAAA','VEKAAA','HHHHxx' +9745,6886,1,1,5,5,45,745,1745,4745,9745,90,91,'VKAAAA','WEKAAA','OOOOxx' +5636,6887,0,0,6,16,36,636,1636,636,5636,72,73,'UIAAAA','XEKAAA','VVVVxx' +4548,6888,0,0,8,8,48,548,548,4548,4548,96,97,'YSAAAA','YEKAAA','AAAAxx' +6537,6889,1,1,7,17,37,537,537,1537,6537,74,75,'LRAAAA','ZEKAAA','HHHHxx' +7748,6890,0,0,8,8,48,748,1748,2748,7748,96,97,'AMAAAA','AFKAAA','OOOOxx' +687,6891,1,3,7,7,87,687,687,687,687,174,175,'LAAAAA','BFKAAA','VVVVxx' +1243,6892,1,3,3,3,43,243,1243,1243,1243,86,87,'VVAAAA','CFKAAA','AAAAxx' +852,6893,0,0,2,12,52,852,852,852,852,104,105,'UGAAAA','DFKAAA','HHHHxx' +785,6894,1,1,5,5,85,785,785,785,785,170,171,'FEAAAA','EFKAAA','OOOOxx' +2002,6895,0,2,2,2,2,2,2,2002,2002,4,5,'AZAAAA','FFKAAA','VVVVxx' +2748,6896,0,0,8,8,48,748,748,2748,2748,96,97,'SBAAAA','GFKAAA','AAAAxx' +6075,6897,1,3,5,15,75,75,75,1075,6075,150,151,'RZAAAA','HFKAAA','HHHHxx' +7029,6898,1,1,9,9,29,29,1029,2029,7029,58,59,'JKAAAA','IFKAAA','OOOOxx' +7474,6899,0,2,4,14,74,474,1474,2474,7474,148,149,'MBAAAA','JFKAAA','VVVVxx' +7755,6900,1,3,5,15,55,755,1755,2755,7755,110,111,'HMAAAA','KFKAAA','AAAAxx' +1456,6901,0,0,6,16,56,456,1456,1456,1456,112,113,'AEAAAA','LFKAAA','HHHHxx' +2808,6902,0,0,8,8,8,808,808,2808,2808,16,17,'AEAAAA','MFKAAA','OOOOxx' +4089,6903,1,1,9,9,89,89,89,4089,4089,178,179,'HBAAAA','NFKAAA','VVVVxx' +4718,6904,0,2,8,18,18,718,718,4718,4718,36,37,'MZAAAA','OFKAAA','AAAAxx' +910,6905,0,2,0,10,10,910,910,910,910,20,21,'AJAAAA','PFKAAA','HHHHxx' +2868,6906,0,0,8,8,68,868,868,2868,2868,136,137,'IGAAAA','QFKAAA','OOOOxx' +2103,6907,1,3,3,3,3,103,103,2103,2103,6,7,'XCAAAA','RFKAAA','VVVVxx' +2407,6908,1,3,7,7,7,407,407,2407,2407,14,15,'POAAAA','SFKAAA','AAAAxx' +4353,6909,1,1,3,13,53,353,353,4353,4353,106,107,'LLAAAA','TFKAAA','HHHHxx' +7988,6910,0,0,8,8,88,988,1988,2988,7988,176,177,'GVAAAA','UFKAAA','OOOOxx' +2750,6911,0,2,0,10,50,750,750,2750,2750,100,101,'UBAAAA','VFKAAA','VVVVxx' +2006,6912,0,2,6,6,6,6,6,2006,2006,12,13,'EZAAAA','WFKAAA','AAAAxx' +4617,6913,1,1,7,17,17,617,617,4617,4617,34,35,'PVAAAA','XFKAAA','HHHHxx' +1251,6914,1,3,1,11,51,251,1251,1251,1251,102,103,'DWAAAA','YFKAAA','OOOOxx' +4590,6915,0,2,0,10,90,590,590,4590,4590,180,181,'OUAAAA','ZFKAAA','VVVVxx' +1144,6916,0,0,4,4,44,144,1144,1144,1144,88,89,'ASAAAA','AGKAAA','AAAAxx' +7131,6917,1,3,1,11,31,131,1131,2131,7131,62,63,'HOAAAA','BGKAAA','HHHHxx' +95,6918,1,3,5,15,95,95,95,95,95,190,191,'RDAAAA','CGKAAA','OOOOxx' +4827,6919,1,3,7,7,27,827,827,4827,4827,54,55,'RDAAAA','DGKAAA','VVVVxx' +4307,6920,1,3,7,7,7,307,307,4307,4307,14,15,'RJAAAA','EGKAAA','AAAAxx' +1505,6921,1,1,5,5,5,505,1505,1505,1505,10,11,'XFAAAA','FGKAAA','HHHHxx' +8191,6922,1,3,1,11,91,191,191,3191,8191,182,183,'BDAAAA','GGKAAA','OOOOxx' +5037,6923,1,1,7,17,37,37,1037,37,5037,74,75,'TLAAAA','HGKAAA','VVVVxx' +7363,6924,1,3,3,3,63,363,1363,2363,7363,126,127,'FXAAAA','IGKAAA','AAAAxx' +8427,6925,1,3,7,7,27,427,427,3427,8427,54,55,'DMAAAA','JGKAAA','HHHHxx' +5231,6926,1,3,1,11,31,231,1231,231,5231,62,63,'FTAAAA','KGKAAA','OOOOxx' +2943,6927,1,3,3,3,43,943,943,2943,2943,86,87,'FJAAAA','LGKAAA','VVVVxx' +4624,6928,0,0,4,4,24,624,624,4624,4624,48,49,'WVAAAA','MGKAAA','AAAAxx' +2020,6929,0,0,0,0,20,20,20,2020,2020,40,41,'SZAAAA','NGKAAA','HHHHxx' +6155,6930,1,3,5,15,55,155,155,1155,6155,110,111,'TCAAAA','OGKAAA','OOOOxx' +4381,6931,1,1,1,1,81,381,381,4381,4381,162,163,'NMAAAA','PGKAAA','VVVVxx' +1057,6932,1,1,7,17,57,57,1057,1057,1057,114,115,'ROAAAA','QGKAAA','AAAAxx' +9010,6933,0,2,0,10,10,10,1010,4010,9010,20,21,'OIAAAA','RGKAAA','HHHHxx' +4947,6934,1,3,7,7,47,947,947,4947,4947,94,95,'HIAAAA','SGKAAA','OOOOxx' +335,6935,1,3,5,15,35,335,335,335,335,70,71,'XMAAAA','TGKAAA','VVVVxx' +6890,6936,0,2,0,10,90,890,890,1890,6890,180,181,'AFAAAA','UGKAAA','AAAAxx' +5070,6937,0,2,0,10,70,70,1070,70,5070,140,141,'ANAAAA','VGKAAA','HHHHxx' +5270,6938,0,2,0,10,70,270,1270,270,5270,140,141,'SUAAAA','WGKAAA','OOOOxx' +8657,6939,1,1,7,17,57,657,657,3657,8657,114,115,'ZUAAAA','XGKAAA','VVVVxx' +7625,6940,1,1,5,5,25,625,1625,2625,7625,50,51,'HHAAAA','YGKAAA','AAAAxx' +5759,6941,1,3,9,19,59,759,1759,759,5759,118,119,'NNAAAA','ZGKAAA','HHHHxx' +9483,6942,1,3,3,3,83,483,1483,4483,9483,166,167,'TAAAAA','AHKAAA','OOOOxx' +8304,6943,0,0,4,4,4,304,304,3304,8304,8,9,'KHAAAA','BHKAAA','VVVVxx' +296,6944,0,0,6,16,96,296,296,296,296,192,193,'KLAAAA','CHKAAA','AAAAxx' +1176,6945,0,0,6,16,76,176,1176,1176,1176,152,153,'GTAAAA','DHKAAA','HHHHxx' +2069,6946,1,1,9,9,69,69,69,2069,2069,138,139,'PBAAAA','EHKAAA','OOOOxx' +1531,6947,1,3,1,11,31,531,1531,1531,1531,62,63,'XGAAAA','FHKAAA','VVVVxx' +5329,6948,1,1,9,9,29,329,1329,329,5329,58,59,'ZWAAAA','GHKAAA','AAAAxx' +3702,6949,0,2,2,2,2,702,1702,3702,3702,4,5,'KMAAAA','HHKAAA','HHHHxx' +6520,6950,0,0,0,0,20,520,520,1520,6520,40,41,'UQAAAA','IHKAAA','OOOOxx' +7310,6951,0,2,0,10,10,310,1310,2310,7310,20,21,'EVAAAA','JHKAAA','VVVVxx' +1175,6952,1,3,5,15,75,175,1175,1175,1175,150,151,'FTAAAA','KHKAAA','AAAAxx' +9107,6953,1,3,7,7,7,107,1107,4107,9107,14,15,'HMAAAA','LHKAAA','HHHHxx' +2737,6954,1,1,7,17,37,737,737,2737,2737,74,75,'HBAAAA','MHKAAA','OOOOxx' +3437,6955,1,1,7,17,37,437,1437,3437,3437,74,75,'FCAAAA','NHKAAA','VVVVxx' +281,6956,1,1,1,1,81,281,281,281,281,162,163,'VKAAAA','OHKAAA','AAAAxx' +6676,6957,0,0,6,16,76,676,676,1676,6676,152,153,'UWAAAA','PHKAAA','HHHHxx' +145,6958,1,1,5,5,45,145,145,145,145,90,91,'PFAAAA','QHKAAA','OOOOxx' +3172,6959,0,0,2,12,72,172,1172,3172,3172,144,145,'ASAAAA','RHKAAA','VVVVxx' +4049,6960,1,1,9,9,49,49,49,4049,4049,98,99,'TZAAAA','SHKAAA','AAAAxx' +6042,6961,0,2,2,2,42,42,42,1042,6042,84,85,'KYAAAA','THKAAA','HHHHxx' +9122,6962,0,2,2,2,22,122,1122,4122,9122,44,45,'WMAAAA','UHKAAA','OOOOxx' +7244,6963,0,0,4,4,44,244,1244,2244,7244,88,89,'QSAAAA','VHKAAA','VVVVxx' +5361,6964,1,1,1,1,61,361,1361,361,5361,122,123,'FYAAAA','WHKAAA','AAAAxx' +8647,6965,1,3,7,7,47,647,647,3647,8647,94,95,'PUAAAA','XHKAAA','HHHHxx' +7956,6966,0,0,6,16,56,956,1956,2956,7956,112,113,'AUAAAA','YHKAAA','OOOOxx' +7812,6967,0,0,2,12,12,812,1812,2812,7812,24,25,'MOAAAA','ZHKAAA','VVVVxx' +570,6968,0,2,0,10,70,570,570,570,570,140,141,'YVAAAA','AIKAAA','AAAAxx' +4115,6969,1,3,5,15,15,115,115,4115,4115,30,31,'HCAAAA','BIKAAA','HHHHxx' +1856,6970,0,0,6,16,56,856,1856,1856,1856,112,113,'KTAAAA','CIKAAA','OOOOxx' +9582,6971,0,2,2,2,82,582,1582,4582,9582,164,165,'OEAAAA','DIKAAA','VVVVxx' +2025,6972,1,1,5,5,25,25,25,2025,2025,50,51,'XZAAAA','EIKAAA','AAAAxx' +986,6973,0,2,6,6,86,986,986,986,986,172,173,'YLAAAA','FIKAAA','HHHHxx' +8358,6974,0,2,8,18,58,358,358,3358,8358,116,117,'MJAAAA','GIKAAA','OOOOxx' +510,6975,0,2,0,10,10,510,510,510,510,20,21,'QTAAAA','HIKAAA','VVVVxx' +6101,6976,1,1,1,1,1,101,101,1101,6101,2,3,'RAAAAA','IIKAAA','AAAAxx' +4167,6977,1,3,7,7,67,167,167,4167,4167,134,135,'HEAAAA','JIKAAA','HHHHxx' +6139,6978,1,3,9,19,39,139,139,1139,6139,78,79,'DCAAAA','KIKAAA','OOOOxx' +6912,6979,0,0,2,12,12,912,912,1912,6912,24,25,'WFAAAA','LIKAAA','VVVVxx' +339,6980,1,3,9,19,39,339,339,339,339,78,79,'BNAAAA','MIKAAA','AAAAxx' +8759,6981,1,3,9,19,59,759,759,3759,8759,118,119,'XYAAAA','NIKAAA','HHHHxx' +246,6982,0,2,6,6,46,246,246,246,246,92,93,'MJAAAA','OIKAAA','OOOOxx' +2831,6983,1,3,1,11,31,831,831,2831,2831,62,63,'XEAAAA','PIKAAA','VVVVxx' +2327,6984,1,3,7,7,27,327,327,2327,2327,54,55,'NLAAAA','QIKAAA','AAAAxx' +7001,6985,1,1,1,1,1,1,1001,2001,7001,2,3,'HJAAAA','RIKAAA','HHHHxx' +4398,6986,0,2,8,18,98,398,398,4398,4398,196,197,'ENAAAA','SIKAAA','OOOOxx' +1495,6987,1,3,5,15,95,495,1495,1495,1495,190,191,'NFAAAA','TIKAAA','VVVVxx' +8522,6988,0,2,2,2,22,522,522,3522,8522,44,45,'UPAAAA','UIKAAA','AAAAxx' +7090,6989,0,2,0,10,90,90,1090,2090,7090,180,181,'SMAAAA','VIKAAA','HHHHxx' +8457,6990,1,1,7,17,57,457,457,3457,8457,114,115,'HNAAAA','WIKAAA','OOOOxx' +4238,6991,0,2,8,18,38,238,238,4238,4238,76,77,'AHAAAA','XIKAAA','VVVVxx' +6791,6992,1,3,1,11,91,791,791,1791,6791,182,183,'FBAAAA','YIKAAA','AAAAxx' +1342,6993,0,2,2,2,42,342,1342,1342,1342,84,85,'QZAAAA','ZIKAAA','HHHHxx' +4580,6994,0,0,0,0,80,580,580,4580,4580,160,161,'EUAAAA','AJKAAA','OOOOxx' +1475,6995,1,3,5,15,75,475,1475,1475,1475,150,151,'TEAAAA','BJKAAA','VVVVxx' +9184,6996,0,0,4,4,84,184,1184,4184,9184,168,169,'GPAAAA','CJKAAA','AAAAxx' +1189,6997,1,1,9,9,89,189,1189,1189,1189,178,179,'TTAAAA','DJKAAA','HHHHxx' +638,6998,0,2,8,18,38,638,638,638,638,76,77,'OYAAAA','EJKAAA','OOOOxx' +5867,6999,1,3,7,7,67,867,1867,867,5867,134,135,'RRAAAA','FJKAAA','VVVVxx' +9911,7000,1,3,1,11,11,911,1911,4911,9911,22,23,'FRAAAA','GJKAAA','AAAAxx' +8147,7001,1,3,7,7,47,147,147,3147,8147,94,95,'JBAAAA','HJKAAA','HHHHxx' +4492,7002,0,0,2,12,92,492,492,4492,4492,184,185,'UQAAAA','IJKAAA','OOOOxx' +385,7003,1,1,5,5,85,385,385,385,385,170,171,'VOAAAA','JJKAAA','VVVVxx' +5235,7004,1,3,5,15,35,235,1235,235,5235,70,71,'JTAAAA','KJKAAA','AAAAxx' +4812,7005,0,0,2,12,12,812,812,4812,4812,24,25,'CDAAAA','LJKAAA','HHHHxx' +9807,7006,1,3,7,7,7,807,1807,4807,9807,14,15,'FNAAAA','MJKAAA','OOOOxx' +9588,7007,0,0,8,8,88,588,1588,4588,9588,176,177,'UEAAAA','NJKAAA','VVVVxx' +9832,7008,0,0,2,12,32,832,1832,4832,9832,64,65,'EOAAAA','OJKAAA','AAAAxx' +3757,7009,1,1,7,17,57,757,1757,3757,3757,114,115,'NOAAAA','PJKAAA','HHHHxx' +9703,7010,1,3,3,3,3,703,1703,4703,9703,6,7,'FJAAAA','QJKAAA','OOOOxx' +1022,7011,0,2,2,2,22,22,1022,1022,1022,44,45,'INAAAA','RJKAAA','VVVVxx' +5165,7012,1,1,5,5,65,165,1165,165,5165,130,131,'RQAAAA','SJKAAA','AAAAxx' +7129,7013,1,1,9,9,29,129,1129,2129,7129,58,59,'FOAAAA','TJKAAA','HHHHxx' +4164,7014,0,0,4,4,64,164,164,4164,4164,128,129,'EEAAAA','UJKAAA','OOOOxx' +7239,7015,1,3,9,19,39,239,1239,2239,7239,78,79,'LSAAAA','VJKAAA','VVVVxx' +523,7016,1,3,3,3,23,523,523,523,523,46,47,'DUAAAA','WJKAAA','AAAAxx' +4670,7017,0,2,0,10,70,670,670,4670,4670,140,141,'QXAAAA','XJKAAA','HHHHxx' +8503,7018,1,3,3,3,3,503,503,3503,8503,6,7,'BPAAAA','YJKAAA','OOOOxx' +714,7019,0,2,4,14,14,714,714,714,714,28,29,'MBAAAA','ZJKAAA','VVVVxx' +1350,7020,0,2,0,10,50,350,1350,1350,1350,100,101,'YZAAAA','AKKAAA','AAAAxx' +8318,7021,0,2,8,18,18,318,318,3318,8318,36,37,'YHAAAA','BKKAAA','HHHHxx' +1834,7022,0,2,4,14,34,834,1834,1834,1834,68,69,'OSAAAA','CKKAAA','OOOOxx' +4306,7023,0,2,6,6,6,306,306,4306,4306,12,13,'QJAAAA','DKKAAA','VVVVxx' +8543,7024,1,3,3,3,43,543,543,3543,8543,86,87,'PQAAAA','EKKAAA','AAAAxx' +9397,7025,1,1,7,17,97,397,1397,4397,9397,194,195,'LXAAAA','FKKAAA','HHHHxx' +3145,7026,1,1,5,5,45,145,1145,3145,3145,90,91,'ZQAAAA','GKKAAA','OOOOxx' +3942,7027,0,2,2,2,42,942,1942,3942,3942,84,85,'QVAAAA','HKKAAA','VVVVxx' +8583,7028,1,3,3,3,83,583,583,3583,8583,166,167,'DSAAAA','IKKAAA','AAAAxx' +8073,7029,1,1,3,13,73,73,73,3073,8073,146,147,'NYAAAA','JKKAAA','HHHHxx' +4940,7030,0,0,0,0,40,940,940,4940,4940,80,81,'AIAAAA','KKKAAA','OOOOxx' +9573,7031,1,1,3,13,73,573,1573,4573,9573,146,147,'FEAAAA','LKKAAA','VVVVxx' +5325,7032,1,1,5,5,25,325,1325,325,5325,50,51,'VWAAAA','MKKAAA','AAAAxx' +1833,7033,1,1,3,13,33,833,1833,1833,1833,66,67,'NSAAAA','NKKAAA','HHHHxx' +1337,7034,1,1,7,17,37,337,1337,1337,1337,74,75,'LZAAAA','OKKAAA','OOOOxx' +9749,7035,1,1,9,9,49,749,1749,4749,9749,98,99,'ZKAAAA','PKKAAA','VVVVxx' +7505,7036,1,1,5,5,5,505,1505,2505,7505,10,11,'RCAAAA','QKKAAA','AAAAxx' +9731,7037,1,3,1,11,31,731,1731,4731,9731,62,63,'HKAAAA','RKKAAA','HHHHxx' +4098,7038,0,2,8,18,98,98,98,4098,4098,196,197,'QBAAAA','SKKAAA','OOOOxx' +1418,7039,0,2,8,18,18,418,1418,1418,1418,36,37,'OCAAAA','TKKAAA','VVVVxx' +63,7040,1,3,3,3,63,63,63,63,63,126,127,'LCAAAA','UKKAAA','AAAAxx' +9889,7041,1,1,9,9,89,889,1889,4889,9889,178,179,'JQAAAA','VKKAAA','HHHHxx' +2871,7042,1,3,1,11,71,871,871,2871,2871,142,143,'LGAAAA','WKKAAA','OOOOxx' +1003,7043,1,3,3,3,3,3,1003,1003,1003,6,7,'PMAAAA','XKKAAA','VVVVxx' +8796,7044,0,0,6,16,96,796,796,3796,8796,192,193,'IAAAAA','YKKAAA','AAAAxx' +22,7045,0,2,2,2,22,22,22,22,22,44,45,'WAAAAA','ZKKAAA','HHHHxx' +8244,7046,0,0,4,4,44,244,244,3244,8244,88,89,'CFAAAA','ALKAAA','OOOOxx' +2282,7047,0,2,2,2,82,282,282,2282,2282,164,165,'UJAAAA','BLKAAA','VVVVxx' +3487,7048,1,3,7,7,87,487,1487,3487,3487,174,175,'DEAAAA','CLKAAA','AAAAxx' +8633,7049,1,1,3,13,33,633,633,3633,8633,66,67,'BUAAAA','DLKAAA','HHHHxx' +6418,7050,0,2,8,18,18,418,418,1418,6418,36,37,'WMAAAA','ELKAAA','OOOOxx' +4682,7051,0,2,2,2,82,682,682,4682,4682,164,165,'CYAAAA','FLKAAA','VVVVxx' +4103,7052,1,3,3,3,3,103,103,4103,4103,6,7,'VBAAAA','GLKAAA','AAAAxx' +6256,7053,0,0,6,16,56,256,256,1256,6256,112,113,'QGAAAA','HLKAAA','HHHHxx' +4040,7054,0,0,0,0,40,40,40,4040,4040,80,81,'KZAAAA','ILKAAA','OOOOxx' +9342,7055,0,2,2,2,42,342,1342,4342,9342,84,85,'IVAAAA','JLKAAA','VVVVxx' +9969,7056,1,1,9,9,69,969,1969,4969,9969,138,139,'LTAAAA','KLKAAA','AAAAxx' +223,7057,1,3,3,3,23,223,223,223,223,46,47,'PIAAAA','LLKAAA','HHHHxx' +4593,7058,1,1,3,13,93,593,593,4593,4593,186,187,'RUAAAA','MLKAAA','OOOOxx' +44,7059,0,0,4,4,44,44,44,44,44,88,89,'SBAAAA','NLKAAA','VVVVxx' +3513,7060,1,1,3,13,13,513,1513,3513,3513,26,27,'DFAAAA','OLKAAA','AAAAxx' +5771,7061,1,3,1,11,71,771,1771,771,5771,142,143,'ZNAAAA','PLKAAA','HHHHxx' +5083,7062,1,3,3,3,83,83,1083,83,5083,166,167,'NNAAAA','QLKAAA','OOOOxx' +3839,7063,1,3,9,19,39,839,1839,3839,3839,78,79,'RRAAAA','RLKAAA','VVVVxx' +2986,7064,0,2,6,6,86,986,986,2986,2986,172,173,'WKAAAA','SLKAAA','AAAAxx' +2200,7065,0,0,0,0,0,200,200,2200,2200,0,1,'QGAAAA','TLKAAA','HHHHxx' +197,7066,1,1,7,17,97,197,197,197,197,194,195,'PHAAAA','ULKAAA','OOOOxx' +7455,7067,1,3,5,15,55,455,1455,2455,7455,110,111,'TAAAAA','VLKAAA','VVVVxx' +1379,7068,1,3,9,19,79,379,1379,1379,1379,158,159,'BBAAAA','WLKAAA','AAAAxx' +4356,7069,0,0,6,16,56,356,356,4356,4356,112,113,'OLAAAA','XLKAAA','HHHHxx' +6888,7070,0,0,8,8,88,888,888,1888,6888,176,177,'YEAAAA','YLKAAA','OOOOxx' +9139,7071,1,3,9,19,39,139,1139,4139,9139,78,79,'NNAAAA','ZLKAAA','VVVVxx' +7682,7072,0,2,2,2,82,682,1682,2682,7682,164,165,'MJAAAA','AMKAAA','AAAAxx' +4873,7073,1,1,3,13,73,873,873,4873,4873,146,147,'LFAAAA','BMKAAA','HHHHxx' +783,7074,1,3,3,3,83,783,783,783,783,166,167,'DEAAAA','CMKAAA','OOOOxx' +6071,7075,1,3,1,11,71,71,71,1071,6071,142,143,'NZAAAA','DMKAAA','VVVVxx' +5160,7076,0,0,0,0,60,160,1160,160,5160,120,121,'MQAAAA','EMKAAA','AAAAxx' +2291,7077,1,3,1,11,91,291,291,2291,2291,182,183,'DKAAAA','FMKAAA','HHHHxx' +187,7078,1,3,7,7,87,187,187,187,187,174,175,'FHAAAA','GMKAAA','OOOOxx' +7786,7079,0,2,6,6,86,786,1786,2786,7786,172,173,'MNAAAA','HMKAAA','VVVVxx' +3432,7080,0,0,2,12,32,432,1432,3432,3432,64,65,'ACAAAA','IMKAAA','AAAAxx' +5450,7081,0,2,0,10,50,450,1450,450,5450,100,101,'QBAAAA','JMKAAA','HHHHxx' +2699,7082,1,3,9,19,99,699,699,2699,2699,198,199,'VZAAAA','KMKAAA','OOOOxx' +692,7083,0,0,2,12,92,692,692,692,692,184,185,'QAAAAA','LMKAAA','VVVVxx' +6081,7084,1,1,1,1,81,81,81,1081,6081,162,163,'XZAAAA','MMKAAA','AAAAxx' +4829,7085,1,1,9,9,29,829,829,4829,4829,58,59,'TDAAAA','NMKAAA','HHHHxx' +238,7086,0,2,8,18,38,238,238,238,238,76,77,'EJAAAA','OMKAAA','OOOOxx' +9100,7087,0,0,0,0,0,100,1100,4100,9100,0,1,'AMAAAA','PMKAAA','VVVVxx' +1968,7088,0,0,8,8,68,968,1968,1968,1968,136,137,'SXAAAA','QMKAAA','AAAAxx' +1872,7089,0,0,2,12,72,872,1872,1872,1872,144,145,'AUAAAA','RMKAAA','HHHHxx' +7051,7090,1,3,1,11,51,51,1051,2051,7051,102,103,'FLAAAA','SMKAAA','OOOOxx' +2743,7091,1,3,3,3,43,743,743,2743,2743,86,87,'NBAAAA','TMKAAA','VVVVxx' +1237,7092,1,1,7,17,37,237,1237,1237,1237,74,75,'PVAAAA','UMKAAA','AAAAxx' +3052,7093,0,0,2,12,52,52,1052,3052,3052,104,105,'KNAAAA','VMKAAA','HHHHxx' +8021,7094,1,1,1,1,21,21,21,3021,8021,42,43,'NWAAAA','WMKAAA','OOOOxx' +657,7095,1,1,7,17,57,657,657,657,657,114,115,'HZAAAA','XMKAAA','VVVVxx' +2236,7096,0,0,6,16,36,236,236,2236,2236,72,73,'AIAAAA','YMKAAA','AAAAxx' +7011,7097,1,3,1,11,11,11,1011,2011,7011,22,23,'RJAAAA','ZMKAAA','HHHHxx' +4067,7098,1,3,7,7,67,67,67,4067,4067,134,135,'LAAAAA','ANKAAA','OOOOxx' +9449,7099,1,1,9,9,49,449,1449,4449,9449,98,99,'LZAAAA','BNKAAA','VVVVxx' +7428,7100,0,0,8,8,28,428,1428,2428,7428,56,57,'SZAAAA','CNKAAA','AAAAxx' +1272,7101,0,0,2,12,72,272,1272,1272,1272,144,145,'YWAAAA','DNKAAA','HHHHxx' +6897,7102,1,1,7,17,97,897,897,1897,6897,194,195,'HFAAAA','ENKAAA','OOOOxx' +5839,7103,1,3,9,19,39,839,1839,839,5839,78,79,'PQAAAA','FNKAAA','VVVVxx' +6835,7104,1,3,5,15,35,835,835,1835,6835,70,71,'XCAAAA','GNKAAA','AAAAxx' +1887,7105,1,3,7,7,87,887,1887,1887,1887,174,175,'PUAAAA','HNKAAA','HHHHxx' +1551,7106,1,3,1,11,51,551,1551,1551,1551,102,103,'RHAAAA','INKAAA','OOOOxx' +4667,7107,1,3,7,7,67,667,667,4667,4667,134,135,'NXAAAA','JNKAAA','VVVVxx' +9603,7108,1,3,3,3,3,603,1603,4603,9603,6,7,'JFAAAA','KNKAAA','AAAAxx' +4332,7109,0,0,2,12,32,332,332,4332,4332,64,65,'QKAAAA','LNKAAA','HHHHxx' +5681,7110,1,1,1,1,81,681,1681,681,5681,162,163,'NKAAAA','MNKAAA','OOOOxx' +8062,7111,0,2,2,2,62,62,62,3062,8062,124,125,'CYAAAA','NNKAAA','VVVVxx' +2302,7112,0,2,2,2,2,302,302,2302,2302,4,5,'OKAAAA','ONKAAA','AAAAxx' +2825,7113,1,1,5,5,25,825,825,2825,2825,50,51,'REAAAA','PNKAAA','HHHHxx' +4527,7114,1,3,7,7,27,527,527,4527,4527,54,55,'DSAAAA','QNKAAA','OOOOxx' +4230,7115,0,2,0,10,30,230,230,4230,4230,60,61,'SGAAAA','RNKAAA','VVVVxx' +3053,7116,1,1,3,13,53,53,1053,3053,3053,106,107,'LNAAAA','SNKAAA','AAAAxx' +983,7117,1,3,3,3,83,983,983,983,983,166,167,'VLAAAA','TNKAAA','HHHHxx' +9458,7118,0,2,8,18,58,458,1458,4458,9458,116,117,'UZAAAA','UNKAAA','OOOOxx' +4128,7119,0,0,8,8,28,128,128,4128,4128,56,57,'UCAAAA','VNKAAA','VVVVxx' +425,7120,1,1,5,5,25,425,425,425,425,50,51,'JQAAAA','WNKAAA','AAAAxx' +3911,7121,1,3,1,11,11,911,1911,3911,3911,22,23,'LUAAAA','XNKAAA','HHHHxx' +6607,7122,1,3,7,7,7,607,607,1607,6607,14,15,'DUAAAA','YNKAAA','OOOOxx' +5431,7123,1,3,1,11,31,431,1431,431,5431,62,63,'XAAAAA','ZNKAAA','VVVVxx' +6330,7124,0,2,0,10,30,330,330,1330,6330,60,61,'MJAAAA','AOKAAA','AAAAxx' +3592,7125,0,0,2,12,92,592,1592,3592,3592,184,185,'EIAAAA','BOKAAA','HHHHxx' +154,7126,0,2,4,14,54,154,154,154,154,108,109,'YFAAAA','COKAAA','OOOOxx' +9879,7127,1,3,9,19,79,879,1879,4879,9879,158,159,'ZPAAAA','DOKAAA','VVVVxx' +3202,7128,0,2,2,2,2,202,1202,3202,3202,4,5,'ETAAAA','EOKAAA','AAAAxx' +3056,7129,0,0,6,16,56,56,1056,3056,3056,112,113,'ONAAAA','FOKAAA','HHHHxx' +9890,7130,0,2,0,10,90,890,1890,4890,9890,180,181,'KQAAAA','GOKAAA','OOOOxx' +5840,7131,0,0,0,0,40,840,1840,840,5840,80,81,'QQAAAA','HOKAAA','VVVVxx' +9804,7132,0,0,4,4,4,804,1804,4804,9804,8,9,'CNAAAA','IOKAAA','AAAAxx' +681,7133,1,1,1,1,81,681,681,681,681,162,163,'FAAAAA','JOKAAA','HHHHxx' +3443,7134,1,3,3,3,43,443,1443,3443,3443,86,87,'LCAAAA','KOKAAA','OOOOxx' +8088,7135,0,0,8,8,88,88,88,3088,8088,176,177,'CZAAAA','LOKAAA','VVVVxx' +9447,7136,1,3,7,7,47,447,1447,4447,9447,94,95,'JZAAAA','MOKAAA','AAAAxx' +1490,7137,0,2,0,10,90,490,1490,1490,1490,180,181,'IFAAAA','NOKAAA','HHHHxx' +3684,7138,0,0,4,4,84,684,1684,3684,3684,168,169,'SLAAAA','OOKAAA','OOOOxx' +3113,7139,1,1,3,13,13,113,1113,3113,3113,26,27,'TPAAAA','POKAAA','VVVVxx' +9004,7140,0,0,4,4,4,4,1004,4004,9004,8,9,'IIAAAA','QOKAAA','AAAAxx' +7147,7141,1,3,7,7,47,147,1147,2147,7147,94,95,'XOAAAA','ROKAAA','HHHHxx' +7571,7142,1,3,1,11,71,571,1571,2571,7571,142,143,'FFAAAA','SOKAAA','OOOOxx' +5545,7143,1,1,5,5,45,545,1545,545,5545,90,91,'HFAAAA','TOKAAA','VVVVxx' +4558,7144,0,2,8,18,58,558,558,4558,4558,116,117,'ITAAAA','UOKAAA','AAAAxx' +6206,7145,0,2,6,6,6,206,206,1206,6206,12,13,'SEAAAA','VOKAAA','HHHHxx' +5695,7146,1,3,5,15,95,695,1695,695,5695,190,191,'BLAAAA','WOKAAA','OOOOxx' +9600,7147,0,0,0,0,0,600,1600,4600,9600,0,1,'GFAAAA','XOKAAA','VVVVxx' +5432,7148,0,0,2,12,32,432,1432,432,5432,64,65,'YAAAAA','YOKAAA','AAAAxx' +9299,7149,1,3,9,19,99,299,1299,4299,9299,198,199,'RTAAAA','ZOKAAA','HHHHxx' +2386,7150,0,2,6,6,86,386,386,2386,2386,172,173,'UNAAAA','APKAAA','OOOOxx' +2046,7151,0,2,6,6,46,46,46,2046,2046,92,93,'SAAAAA','BPKAAA','VVVVxx' +3293,7152,1,1,3,13,93,293,1293,3293,3293,186,187,'RWAAAA','CPKAAA','AAAAxx' +3046,7153,0,2,6,6,46,46,1046,3046,3046,92,93,'ENAAAA','DPKAAA','HHHHxx' +214,7154,0,2,4,14,14,214,214,214,214,28,29,'GIAAAA','EPKAAA','OOOOxx' +7893,7155,1,1,3,13,93,893,1893,2893,7893,186,187,'PRAAAA','FPKAAA','VVVVxx' +891,7156,1,3,1,11,91,891,891,891,891,182,183,'HIAAAA','GPKAAA','AAAAxx' +6499,7157,1,3,9,19,99,499,499,1499,6499,198,199,'ZPAAAA','HPKAAA','HHHHxx' +5003,7158,1,3,3,3,3,3,1003,3,5003,6,7,'LKAAAA','IPKAAA','OOOOxx' +6487,7159,1,3,7,7,87,487,487,1487,6487,174,175,'NPAAAA','JPKAAA','VVVVxx' +9403,7160,1,3,3,3,3,403,1403,4403,9403,6,7,'RXAAAA','KPKAAA','AAAAxx' +945,7161,1,1,5,5,45,945,945,945,945,90,91,'JKAAAA','LPKAAA','HHHHxx' +6713,7162,1,1,3,13,13,713,713,1713,6713,26,27,'FYAAAA','MPKAAA','OOOOxx' +9928,7163,0,0,8,8,28,928,1928,4928,9928,56,57,'WRAAAA','NPKAAA','VVVVxx' +8585,7164,1,1,5,5,85,585,585,3585,8585,170,171,'FSAAAA','OPKAAA','AAAAxx' +4004,7165,0,0,4,4,4,4,4,4004,4004,8,9,'AYAAAA','PPKAAA','HHHHxx' +2528,7166,0,0,8,8,28,528,528,2528,2528,56,57,'GTAAAA','QPKAAA','OOOOxx' +3350,7167,0,2,0,10,50,350,1350,3350,3350,100,101,'WYAAAA','RPKAAA','VVVVxx' +2160,7168,0,0,0,0,60,160,160,2160,2160,120,121,'CFAAAA','SPKAAA','AAAAxx' +1521,7169,1,1,1,1,21,521,1521,1521,1521,42,43,'NGAAAA','TPKAAA','HHHHxx' +5660,7170,0,0,0,0,60,660,1660,660,5660,120,121,'SJAAAA','UPKAAA','OOOOxx' +5755,7171,1,3,5,15,55,755,1755,755,5755,110,111,'JNAAAA','VPKAAA','VVVVxx' +7614,7172,0,2,4,14,14,614,1614,2614,7614,28,29,'WGAAAA','WPKAAA','AAAAxx' +3121,7173,1,1,1,1,21,121,1121,3121,3121,42,43,'BQAAAA','XPKAAA','HHHHxx' +2735,7174,1,3,5,15,35,735,735,2735,2735,70,71,'FBAAAA','YPKAAA','OOOOxx' +7506,7175,0,2,6,6,6,506,1506,2506,7506,12,13,'SCAAAA','ZPKAAA','VVVVxx' +2693,7176,1,1,3,13,93,693,693,2693,2693,186,187,'PZAAAA','AQKAAA','AAAAxx' +2892,7177,0,0,2,12,92,892,892,2892,2892,184,185,'GHAAAA','BQKAAA','HHHHxx' +3310,7178,0,2,0,10,10,310,1310,3310,3310,20,21,'IXAAAA','CQKAAA','OOOOxx' +3484,7179,0,0,4,4,84,484,1484,3484,3484,168,169,'AEAAAA','DQKAAA','VVVVxx' +9733,7180,1,1,3,13,33,733,1733,4733,9733,66,67,'JKAAAA','EQKAAA','AAAAxx' +29,7181,1,1,9,9,29,29,29,29,29,58,59,'DBAAAA','FQKAAA','HHHHxx' +9013,7182,1,1,3,13,13,13,1013,4013,9013,26,27,'RIAAAA','GQKAAA','OOOOxx' +3847,7183,1,3,7,7,47,847,1847,3847,3847,94,95,'ZRAAAA','HQKAAA','VVVVxx' +6724,7184,0,0,4,4,24,724,724,1724,6724,48,49,'QYAAAA','IQKAAA','AAAAxx' +2559,7185,1,3,9,19,59,559,559,2559,2559,118,119,'LUAAAA','JQKAAA','HHHHxx' +5326,7186,0,2,6,6,26,326,1326,326,5326,52,53,'WWAAAA','KQKAAA','OOOOxx' +4802,7187,0,2,2,2,2,802,802,4802,4802,4,5,'SCAAAA','LQKAAA','VVVVxx' +131,7188,1,3,1,11,31,131,131,131,131,62,63,'BFAAAA','MQKAAA','AAAAxx' +1634,7189,0,2,4,14,34,634,1634,1634,1634,68,69,'WKAAAA','NQKAAA','HHHHxx' +919,7190,1,3,9,19,19,919,919,919,919,38,39,'JJAAAA','OQKAAA','OOOOxx' +9575,7191,1,3,5,15,75,575,1575,4575,9575,150,151,'HEAAAA','PQKAAA','VVVVxx' +1256,7192,0,0,6,16,56,256,1256,1256,1256,112,113,'IWAAAA','QQKAAA','AAAAxx' +9428,7193,0,0,8,8,28,428,1428,4428,9428,56,57,'QYAAAA','RQKAAA','HHHHxx' +5121,7194,1,1,1,1,21,121,1121,121,5121,42,43,'ZOAAAA','SQKAAA','OOOOxx' +6584,7195,0,0,4,4,84,584,584,1584,6584,168,169,'GTAAAA','TQKAAA','VVVVxx' +7193,7196,1,1,3,13,93,193,1193,2193,7193,186,187,'RQAAAA','UQKAAA','AAAAxx' +4047,7197,1,3,7,7,47,47,47,4047,4047,94,95,'RZAAAA','VQKAAA','HHHHxx' +104,7198,0,0,4,4,4,104,104,104,104,8,9,'AEAAAA','WQKAAA','OOOOxx' +1527,7199,1,3,7,7,27,527,1527,1527,1527,54,55,'TGAAAA','XQKAAA','VVVVxx' +3460,7200,0,0,0,0,60,460,1460,3460,3460,120,121,'CDAAAA','YQKAAA','AAAAxx' +8526,7201,0,2,6,6,26,526,526,3526,8526,52,53,'YPAAAA','ZQKAAA','HHHHxx' +8959,7202,1,3,9,19,59,959,959,3959,8959,118,119,'PGAAAA','ARKAAA','OOOOxx' +3633,7203,1,1,3,13,33,633,1633,3633,3633,66,67,'TJAAAA','BRKAAA','VVVVxx' +1799,7204,1,3,9,19,99,799,1799,1799,1799,198,199,'FRAAAA','CRKAAA','AAAAxx' +461,7205,1,1,1,1,61,461,461,461,461,122,123,'TRAAAA','DRKAAA','HHHHxx' +718,7206,0,2,8,18,18,718,718,718,718,36,37,'QBAAAA','ERKAAA','OOOOxx' +3219,7207,1,3,9,19,19,219,1219,3219,3219,38,39,'VTAAAA','FRKAAA','VVVVxx' +3494,7208,0,2,4,14,94,494,1494,3494,3494,188,189,'KEAAAA','GRKAAA','AAAAxx' +9402,7209,0,2,2,2,2,402,1402,4402,9402,4,5,'QXAAAA','HRKAAA','HHHHxx' +7983,7210,1,3,3,3,83,983,1983,2983,7983,166,167,'BVAAAA','IRKAAA','OOOOxx' +7919,7211,1,3,9,19,19,919,1919,2919,7919,38,39,'PSAAAA','JRKAAA','VVVVxx' +8036,7212,0,0,6,16,36,36,36,3036,8036,72,73,'CXAAAA','KRKAAA','AAAAxx' +5164,7213,0,0,4,4,64,164,1164,164,5164,128,129,'QQAAAA','LRKAAA','HHHHxx' +4160,7214,0,0,0,0,60,160,160,4160,4160,120,121,'AEAAAA','MRKAAA','OOOOxx' +5370,7215,0,2,0,10,70,370,1370,370,5370,140,141,'OYAAAA','NRKAAA','VVVVxx' +5347,7216,1,3,7,7,47,347,1347,347,5347,94,95,'RXAAAA','ORKAAA','AAAAxx' +7109,7217,1,1,9,9,9,109,1109,2109,7109,18,19,'LNAAAA','PRKAAA','HHHHxx' +4826,7218,0,2,6,6,26,826,826,4826,4826,52,53,'QDAAAA','QRKAAA','OOOOxx' +1338,7219,0,2,8,18,38,338,1338,1338,1338,76,77,'MZAAAA','RRKAAA','VVVVxx' +2711,7220,1,3,1,11,11,711,711,2711,2711,22,23,'HAAAAA','SRKAAA','AAAAxx' +6299,7221,1,3,9,19,99,299,299,1299,6299,198,199,'HIAAAA','TRKAAA','HHHHxx' +1616,7222,0,0,6,16,16,616,1616,1616,1616,32,33,'EKAAAA','URKAAA','OOOOxx' +7519,7223,1,3,9,19,19,519,1519,2519,7519,38,39,'FDAAAA','VRKAAA','VVVVxx' +1262,7224,0,2,2,2,62,262,1262,1262,1262,124,125,'OWAAAA','WRKAAA','AAAAxx' +7228,7225,0,0,8,8,28,228,1228,2228,7228,56,57,'ASAAAA','XRKAAA','HHHHxx' +7892,7226,0,0,2,12,92,892,1892,2892,7892,184,185,'ORAAAA','YRKAAA','OOOOxx' +7929,7227,1,1,9,9,29,929,1929,2929,7929,58,59,'ZSAAAA','ZRKAAA','VVVVxx' +7705,7228,1,1,5,5,5,705,1705,2705,7705,10,11,'JKAAAA','ASKAAA','AAAAxx' +3111,7229,1,3,1,11,11,111,1111,3111,3111,22,23,'RPAAAA','BSKAAA','HHHHxx' +3066,7230,0,2,6,6,66,66,1066,3066,3066,132,133,'YNAAAA','CSKAAA','OOOOxx' +9559,7231,1,3,9,19,59,559,1559,4559,9559,118,119,'RDAAAA','DSKAAA','VVVVxx' +3787,7232,1,3,7,7,87,787,1787,3787,3787,174,175,'RPAAAA','ESKAAA','AAAAxx' +8710,7233,0,2,0,10,10,710,710,3710,8710,20,21,'AXAAAA','FSKAAA','HHHHxx' +4870,7234,0,2,0,10,70,870,870,4870,4870,140,141,'IFAAAA','GSKAAA','OOOOxx' +1883,7235,1,3,3,3,83,883,1883,1883,1883,166,167,'LUAAAA','HSKAAA','VVVVxx' +9689,7236,1,1,9,9,89,689,1689,4689,9689,178,179,'RIAAAA','ISKAAA','AAAAxx' +9491,7237,1,3,1,11,91,491,1491,4491,9491,182,183,'BBAAAA','JSKAAA','HHHHxx' +2035,7238,1,3,5,15,35,35,35,2035,2035,70,71,'HAAAAA','KSKAAA','OOOOxx' +655,7239,1,3,5,15,55,655,655,655,655,110,111,'FZAAAA','LSKAAA','VVVVxx' +6305,7240,1,1,5,5,5,305,305,1305,6305,10,11,'NIAAAA','MSKAAA','AAAAxx' +9423,7241,1,3,3,3,23,423,1423,4423,9423,46,47,'LYAAAA','NSKAAA','HHHHxx' +283,7242,1,3,3,3,83,283,283,283,283,166,167,'XKAAAA','OSKAAA','OOOOxx' +2607,7243,1,3,7,7,7,607,607,2607,2607,14,15,'HWAAAA','PSKAAA','VVVVxx' +7740,7244,0,0,0,0,40,740,1740,2740,7740,80,81,'SLAAAA','QSKAAA','AAAAxx' +6956,7245,0,0,6,16,56,956,956,1956,6956,112,113,'OHAAAA','RSKAAA','HHHHxx' +884,7246,0,0,4,4,84,884,884,884,884,168,169,'AIAAAA','SSKAAA','OOOOxx' +5730,7247,0,2,0,10,30,730,1730,730,5730,60,61,'KMAAAA','TSKAAA','VVVVxx' +3438,7248,0,2,8,18,38,438,1438,3438,3438,76,77,'GCAAAA','USKAAA','AAAAxx' +3250,7249,0,2,0,10,50,250,1250,3250,3250,100,101,'AVAAAA','VSKAAA','HHHHxx' +5470,7250,0,2,0,10,70,470,1470,470,5470,140,141,'KCAAAA','WSKAAA','OOOOxx' +2037,7251,1,1,7,17,37,37,37,2037,2037,74,75,'JAAAAA','XSKAAA','VVVVxx' +6593,7252,1,1,3,13,93,593,593,1593,6593,186,187,'PTAAAA','YSKAAA','AAAAxx' +3893,7253,1,1,3,13,93,893,1893,3893,3893,186,187,'TTAAAA','ZSKAAA','HHHHxx' +3200,7254,0,0,0,0,0,200,1200,3200,3200,0,1,'CTAAAA','ATKAAA','OOOOxx' +7125,7255,1,1,5,5,25,125,1125,2125,7125,50,51,'BOAAAA','BTKAAA','VVVVxx' +2295,7256,1,3,5,15,95,295,295,2295,2295,190,191,'HKAAAA','CTKAAA','AAAAxx' +2056,7257,0,0,6,16,56,56,56,2056,2056,112,113,'CBAAAA','DTKAAA','HHHHxx' +2962,7258,0,2,2,2,62,962,962,2962,2962,124,125,'YJAAAA','ETKAAA','OOOOxx' +993,7259,1,1,3,13,93,993,993,993,993,186,187,'FMAAAA','FTKAAA','VVVVxx' +9127,7260,1,3,7,7,27,127,1127,4127,9127,54,55,'BNAAAA','GTKAAA','AAAAxx' +2075,7261,1,3,5,15,75,75,75,2075,2075,150,151,'VBAAAA','HTKAAA','HHHHxx' +9338,7262,0,2,8,18,38,338,1338,4338,9338,76,77,'EVAAAA','ITKAAA','OOOOxx' +8100,7263,0,0,0,0,0,100,100,3100,8100,0,1,'OZAAAA','JTKAAA','VVVVxx' +5047,7264,1,3,7,7,47,47,1047,47,5047,94,95,'DMAAAA','KTKAAA','AAAAxx' +7032,7265,0,0,2,12,32,32,1032,2032,7032,64,65,'MKAAAA','LTKAAA','HHHHxx' +6374,7266,0,2,4,14,74,374,374,1374,6374,148,149,'ELAAAA','MTKAAA','OOOOxx' +4137,7267,1,1,7,17,37,137,137,4137,4137,74,75,'DDAAAA','NTKAAA','VVVVxx' +7132,7268,0,0,2,12,32,132,1132,2132,7132,64,65,'IOAAAA','OTKAAA','AAAAxx' +3064,7269,0,0,4,4,64,64,1064,3064,3064,128,129,'WNAAAA','PTKAAA','HHHHxx' +3621,7270,1,1,1,1,21,621,1621,3621,3621,42,43,'HJAAAA','QTKAAA','OOOOxx' +6199,7271,1,3,9,19,99,199,199,1199,6199,198,199,'LEAAAA','RTKAAA','VVVVxx' +4926,7272,0,2,6,6,26,926,926,4926,4926,52,53,'MHAAAA','STKAAA','AAAAxx' +8035,7273,1,3,5,15,35,35,35,3035,8035,70,71,'BXAAAA','TTKAAA','HHHHxx' +2195,7274,1,3,5,15,95,195,195,2195,2195,190,191,'LGAAAA','UTKAAA','OOOOxx' +5366,7275,0,2,6,6,66,366,1366,366,5366,132,133,'KYAAAA','VTKAAA','VVVVxx' +3478,7276,0,2,8,18,78,478,1478,3478,3478,156,157,'UDAAAA','WTKAAA','AAAAxx' +1926,7277,0,2,6,6,26,926,1926,1926,1926,52,53,'CWAAAA','XTKAAA','HHHHxx' +7265,7278,1,1,5,5,65,265,1265,2265,7265,130,131,'LTAAAA','YTKAAA','OOOOxx' +7668,7279,0,0,8,8,68,668,1668,2668,7668,136,137,'YIAAAA','ZTKAAA','VVVVxx' +3335,7280,1,3,5,15,35,335,1335,3335,3335,70,71,'HYAAAA','AUKAAA','AAAAxx' +7660,7281,0,0,0,0,60,660,1660,2660,7660,120,121,'QIAAAA','BUKAAA','HHHHxx' +9604,7282,0,0,4,4,4,604,1604,4604,9604,8,9,'KFAAAA','CUKAAA','OOOOxx' +7301,7283,1,1,1,1,1,301,1301,2301,7301,2,3,'VUAAAA','DUKAAA','VVVVxx' +4475,7284,1,3,5,15,75,475,475,4475,4475,150,151,'DQAAAA','EUKAAA','AAAAxx' +9954,7285,0,2,4,14,54,954,1954,4954,9954,108,109,'WSAAAA','FUKAAA','HHHHxx' +5723,7286,1,3,3,3,23,723,1723,723,5723,46,47,'DMAAAA','GUKAAA','OOOOxx' +2669,7287,1,1,9,9,69,669,669,2669,2669,138,139,'RYAAAA','HUKAAA','VVVVxx' +1685,7288,1,1,5,5,85,685,1685,1685,1685,170,171,'VMAAAA','IUKAAA','AAAAxx' +2233,7289,1,1,3,13,33,233,233,2233,2233,66,67,'XHAAAA','JUKAAA','HHHHxx' +8111,7290,1,3,1,11,11,111,111,3111,8111,22,23,'ZZAAAA','KUKAAA','OOOOxx' +7685,7291,1,1,5,5,85,685,1685,2685,7685,170,171,'PJAAAA','LUKAAA','VVVVxx' +3773,7292,1,1,3,13,73,773,1773,3773,3773,146,147,'DPAAAA','MUKAAA','AAAAxx' +7172,7293,0,0,2,12,72,172,1172,2172,7172,144,145,'WPAAAA','NUKAAA','HHHHxx' +1740,7294,0,0,0,0,40,740,1740,1740,1740,80,81,'YOAAAA','OUKAAA','OOOOxx' +5416,7295,0,0,6,16,16,416,1416,416,5416,32,33,'IAAAAA','PUKAAA','VVVVxx' +1823,7296,1,3,3,3,23,823,1823,1823,1823,46,47,'DSAAAA','QUKAAA','AAAAxx' +1668,7297,0,0,8,8,68,668,1668,1668,1668,136,137,'EMAAAA','RUKAAA','HHHHxx' +1795,7298,1,3,5,15,95,795,1795,1795,1795,190,191,'BRAAAA','SUKAAA','OOOOxx' +8599,7299,1,3,9,19,99,599,599,3599,8599,198,199,'TSAAAA','TUKAAA','VVVVxx' +5542,7300,0,2,2,2,42,542,1542,542,5542,84,85,'EFAAAA','UUKAAA','AAAAxx' +5658,7301,0,2,8,18,58,658,1658,658,5658,116,117,'QJAAAA','VUKAAA','HHHHxx' +9824,7302,0,0,4,4,24,824,1824,4824,9824,48,49,'WNAAAA','WUKAAA','OOOOxx' +19,7303,1,3,9,19,19,19,19,19,19,38,39,'TAAAAA','XUKAAA','VVVVxx' +9344,7304,0,0,4,4,44,344,1344,4344,9344,88,89,'KVAAAA','YUKAAA','AAAAxx' +5900,7305,0,0,0,0,0,900,1900,900,5900,0,1,'YSAAAA','ZUKAAA','HHHHxx' +7818,7306,0,2,8,18,18,818,1818,2818,7818,36,37,'SOAAAA','AVKAAA','OOOOxx' +8377,7307,1,1,7,17,77,377,377,3377,8377,154,155,'FKAAAA','BVKAAA','VVVVxx' +6886,7308,0,2,6,6,86,886,886,1886,6886,172,173,'WEAAAA','CVKAAA','AAAAxx' +3201,7309,1,1,1,1,1,201,1201,3201,3201,2,3,'DTAAAA','DVKAAA','HHHHxx' +87,7310,1,3,7,7,87,87,87,87,87,174,175,'JDAAAA','EVKAAA','OOOOxx' +1089,7311,1,1,9,9,89,89,1089,1089,1089,178,179,'XPAAAA','FVKAAA','VVVVxx' +3948,7312,0,0,8,8,48,948,1948,3948,3948,96,97,'WVAAAA','GVKAAA','AAAAxx' +6383,7313,1,3,3,3,83,383,383,1383,6383,166,167,'NLAAAA','HVKAAA','HHHHxx' +837,7314,1,1,7,17,37,837,837,837,837,74,75,'FGAAAA','IVKAAA','OOOOxx' +6285,7315,1,1,5,5,85,285,285,1285,6285,170,171,'THAAAA','JVKAAA','VVVVxx' +78,7316,0,2,8,18,78,78,78,78,78,156,157,'ADAAAA','KVKAAA','AAAAxx' +4389,7317,1,1,9,9,89,389,389,4389,4389,178,179,'VMAAAA','LVKAAA','HHHHxx' +4795,7318,1,3,5,15,95,795,795,4795,4795,190,191,'LCAAAA','MVKAAA','OOOOxx' +9369,7319,1,1,9,9,69,369,1369,4369,9369,138,139,'JWAAAA','NVKAAA','VVVVxx' +69,7320,1,1,9,9,69,69,69,69,69,138,139,'RCAAAA','OVKAAA','AAAAxx' +7689,7321,1,1,9,9,89,689,1689,2689,7689,178,179,'TJAAAA','PVKAAA','HHHHxx' +5642,7322,0,2,2,2,42,642,1642,642,5642,84,85,'AJAAAA','QVKAAA','OOOOxx' +2348,7323,0,0,8,8,48,348,348,2348,2348,96,97,'IMAAAA','RVKAAA','VVVVxx' +9308,7324,0,0,8,8,8,308,1308,4308,9308,16,17,'AUAAAA','SVKAAA','AAAAxx' +9093,7325,1,1,3,13,93,93,1093,4093,9093,186,187,'TLAAAA','TVKAAA','HHHHxx' +1199,7326,1,3,9,19,99,199,1199,1199,1199,198,199,'DUAAAA','UVKAAA','OOOOxx' +307,7327,1,3,7,7,7,307,307,307,307,14,15,'VLAAAA','VVKAAA','VVVVxx' +3814,7328,0,2,4,14,14,814,1814,3814,3814,28,29,'SQAAAA','WVKAAA','AAAAxx' +8817,7329,1,1,7,17,17,817,817,3817,8817,34,35,'DBAAAA','XVKAAA','HHHHxx' +2329,7330,1,1,9,9,29,329,329,2329,2329,58,59,'PLAAAA','YVKAAA','OOOOxx' +2932,7331,0,0,2,12,32,932,932,2932,2932,64,65,'UIAAAA','ZVKAAA','VVVVxx' +1986,7332,0,2,6,6,86,986,1986,1986,1986,172,173,'KYAAAA','AWKAAA','AAAAxx' +5279,7333,1,3,9,19,79,279,1279,279,5279,158,159,'BVAAAA','BWKAAA','HHHHxx' +5357,7334,1,1,7,17,57,357,1357,357,5357,114,115,'BYAAAA','CWKAAA','OOOOxx' +6778,7335,0,2,8,18,78,778,778,1778,6778,156,157,'SAAAAA','DWKAAA','VVVVxx' +2773,7336,1,1,3,13,73,773,773,2773,2773,146,147,'RCAAAA','EWKAAA','AAAAxx' +244,7337,0,0,4,4,44,244,244,244,244,88,89,'KJAAAA','FWKAAA','HHHHxx' +6900,7338,0,0,0,0,0,900,900,1900,6900,0,1,'KFAAAA','GWKAAA','OOOOxx' +4739,7339,1,3,9,19,39,739,739,4739,4739,78,79,'HAAAAA','HWKAAA','VVVVxx' +3217,7340,1,1,7,17,17,217,1217,3217,3217,34,35,'TTAAAA','IWKAAA','AAAAxx' +7563,7341,1,3,3,3,63,563,1563,2563,7563,126,127,'XEAAAA','JWKAAA','HHHHxx' +1807,7342,1,3,7,7,7,807,1807,1807,1807,14,15,'NRAAAA','KWKAAA','OOOOxx' +4199,7343,1,3,9,19,99,199,199,4199,4199,198,199,'NFAAAA','LWKAAA','VVVVxx' +1077,7344,1,1,7,17,77,77,1077,1077,1077,154,155,'LPAAAA','MWKAAA','AAAAxx' +8348,7345,0,0,8,8,48,348,348,3348,8348,96,97,'CJAAAA','NWKAAA','HHHHxx' +841,7346,1,1,1,1,41,841,841,841,841,82,83,'JGAAAA','OWKAAA','OOOOxx' +8154,7347,0,2,4,14,54,154,154,3154,8154,108,109,'QBAAAA','PWKAAA','VVVVxx' +5261,7348,1,1,1,1,61,261,1261,261,5261,122,123,'JUAAAA','QWKAAA','AAAAxx' +1950,7349,0,2,0,10,50,950,1950,1950,1950,100,101,'AXAAAA','RWKAAA','HHHHxx' +8472,7350,0,0,2,12,72,472,472,3472,8472,144,145,'WNAAAA','SWKAAA','OOOOxx' +8745,7351,1,1,5,5,45,745,745,3745,8745,90,91,'JYAAAA','TWKAAA','VVVVxx' +8715,7352,1,3,5,15,15,715,715,3715,8715,30,31,'FXAAAA','UWKAAA','AAAAxx' +9708,7353,0,0,8,8,8,708,1708,4708,9708,16,17,'KJAAAA','VWKAAA','HHHHxx' +5860,7354,0,0,0,0,60,860,1860,860,5860,120,121,'KRAAAA','WWKAAA','OOOOxx' +9142,7355,0,2,2,2,42,142,1142,4142,9142,84,85,'QNAAAA','XWKAAA','VVVVxx' +6582,7356,0,2,2,2,82,582,582,1582,6582,164,165,'ETAAAA','YWKAAA','AAAAxx' +1255,7357,1,3,5,15,55,255,1255,1255,1255,110,111,'HWAAAA','ZWKAAA','HHHHxx' +6459,7358,1,3,9,19,59,459,459,1459,6459,118,119,'LOAAAA','AXKAAA','OOOOxx' +6327,7359,1,3,7,7,27,327,327,1327,6327,54,55,'JJAAAA','BXKAAA','VVVVxx' +4692,7360,0,0,2,12,92,692,692,4692,4692,184,185,'MYAAAA','CXKAAA','AAAAxx' +3772,7361,0,0,2,12,72,772,1772,3772,3772,144,145,'CPAAAA','DXKAAA','HHHHxx' +4203,7362,1,3,3,3,3,203,203,4203,4203,6,7,'RFAAAA','EXKAAA','OOOOxx' +2946,7363,0,2,6,6,46,946,946,2946,2946,92,93,'IJAAAA','FXKAAA','VVVVxx' +3524,7364,0,0,4,4,24,524,1524,3524,3524,48,49,'OFAAAA','GXKAAA','AAAAxx' +8409,7365,1,1,9,9,9,409,409,3409,8409,18,19,'LLAAAA','HXKAAA','HHHHxx' +1824,7366,0,0,4,4,24,824,1824,1824,1824,48,49,'ESAAAA','IXKAAA','OOOOxx' +4637,7367,1,1,7,17,37,637,637,4637,4637,74,75,'JWAAAA','JXKAAA','VVVVxx' +589,7368,1,1,9,9,89,589,589,589,589,178,179,'RWAAAA','KXKAAA','AAAAxx' +484,7369,0,0,4,4,84,484,484,484,484,168,169,'QSAAAA','LXKAAA','HHHHxx' +8963,7370,1,3,3,3,63,963,963,3963,8963,126,127,'TGAAAA','MXKAAA','OOOOxx' +5502,7371,0,2,2,2,2,502,1502,502,5502,4,5,'QDAAAA','NXKAAA','VVVVxx' +6982,7372,0,2,2,2,82,982,982,1982,6982,164,165,'OIAAAA','OXKAAA','AAAAxx' +8029,7373,1,1,9,9,29,29,29,3029,8029,58,59,'VWAAAA','PXKAAA','HHHHxx' +4395,7374,1,3,5,15,95,395,395,4395,4395,190,191,'BNAAAA','QXKAAA','OOOOxx' +2595,7375,1,3,5,15,95,595,595,2595,2595,190,191,'VVAAAA','RXKAAA','VVVVxx' +2133,7376,1,1,3,13,33,133,133,2133,2133,66,67,'BEAAAA','SXKAAA','AAAAxx' +1414,7377,0,2,4,14,14,414,1414,1414,1414,28,29,'KCAAAA','TXKAAA','HHHHxx' +8201,7378,1,1,1,1,1,201,201,3201,8201,2,3,'LDAAAA','UXKAAA','OOOOxx' +4706,7379,0,2,6,6,6,706,706,4706,4706,12,13,'AZAAAA','VXKAAA','VVVVxx' +5310,7380,0,2,0,10,10,310,1310,310,5310,20,21,'GWAAAA','WXKAAA','AAAAxx' +7333,7381,1,1,3,13,33,333,1333,2333,7333,66,67,'BWAAAA','XXKAAA','HHHHxx' +9420,7382,0,0,0,0,20,420,1420,4420,9420,40,41,'IYAAAA','YXKAAA','OOOOxx' +1383,7383,1,3,3,3,83,383,1383,1383,1383,166,167,'FBAAAA','ZXKAAA','VVVVxx' +6225,7384,1,1,5,5,25,225,225,1225,6225,50,51,'LFAAAA','AYKAAA','AAAAxx' +2064,7385,0,0,4,4,64,64,64,2064,2064,128,129,'KBAAAA','BYKAAA','HHHHxx' +6700,7386,0,0,0,0,0,700,700,1700,6700,0,1,'SXAAAA','CYKAAA','OOOOxx' +1352,7387,0,0,2,12,52,352,1352,1352,1352,104,105,'AAAAAA','DYKAAA','VVVVxx' +4249,7388,1,1,9,9,49,249,249,4249,4249,98,99,'LHAAAA','EYKAAA','AAAAxx' +9429,7389,1,1,9,9,29,429,1429,4429,9429,58,59,'RYAAAA','FYKAAA','HHHHxx' +8090,7390,0,2,0,10,90,90,90,3090,8090,180,181,'EZAAAA','GYKAAA','OOOOxx' +5378,7391,0,2,8,18,78,378,1378,378,5378,156,157,'WYAAAA','HYKAAA','VVVVxx' +9085,7392,1,1,5,5,85,85,1085,4085,9085,170,171,'LLAAAA','IYKAAA','AAAAxx' +7468,7393,0,0,8,8,68,468,1468,2468,7468,136,137,'GBAAAA','JYKAAA','HHHHxx' +9955,7394,1,3,5,15,55,955,1955,4955,9955,110,111,'XSAAAA','KYKAAA','OOOOxx' +8692,7395,0,0,2,12,92,692,692,3692,8692,184,185,'IWAAAA','LYKAAA','VVVVxx' +1463,7396,1,3,3,3,63,463,1463,1463,1463,126,127,'HEAAAA','MYKAAA','AAAAxx' +3577,7397,1,1,7,17,77,577,1577,3577,3577,154,155,'PHAAAA','NYKAAA','HHHHxx' +5654,7398,0,2,4,14,54,654,1654,654,5654,108,109,'MJAAAA','OYKAAA','OOOOxx' +7955,7399,1,3,5,15,55,955,1955,2955,7955,110,111,'ZTAAAA','PYKAAA','VVVVxx' +4843,7400,1,3,3,3,43,843,843,4843,4843,86,87,'HEAAAA','QYKAAA','AAAAxx' +1776,7401,0,0,6,16,76,776,1776,1776,1776,152,153,'IQAAAA','RYKAAA','HHHHxx' +2223,7402,1,3,3,3,23,223,223,2223,2223,46,47,'NHAAAA','SYKAAA','OOOOxx' +8442,7403,0,2,2,2,42,442,442,3442,8442,84,85,'SMAAAA','TYKAAA','VVVVxx' +9738,7404,0,2,8,18,38,738,1738,4738,9738,76,77,'OKAAAA','UYKAAA','AAAAxx' +4867,7405,1,3,7,7,67,867,867,4867,4867,134,135,'FFAAAA','VYKAAA','HHHHxx' +2983,7406,1,3,3,3,83,983,983,2983,2983,166,167,'TKAAAA','WYKAAA','OOOOxx' +3300,7407,0,0,0,0,0,300,1300,3300,3300,0,1,'YWAAAA','XYKAAA','VVVVxx' +3815,7408,1,3,5,15,15,815,1815,3815,3815,30,31,'TQAAAA','YYKAAA','AAAAxx' +1779,7409,1,3,9,19,79,779,1779,1779,1779,158,159,'LQAAAA','ZYKAAA','HHHHxx' +1123,7410,1,3,3,3,23,123,1123,1123,1123,46,47,'FRAAAA','AZKAAA','OOOOxx' +4824,7411,0,0,4,4,24,824,824,4824,4824,48,49,'ODAAAA','BZKAAA','VVVVxx' +5407,7412,1,3,7,7,7,407,1407,407,5407,14,15,'ZZAAAA','CZKAAA','AAAAxx' +5123,7413,1,3,3,3,23,123,1123,123,5123,46,47,'BPAAAA','DZKAAA','HHHHxx' +2515,7414,1,3,5,15,15,515,515,2515,2515,30,31,'TSAAAA','EZKAAA','OOOOxx' +4781,7415,1,1,1,1,81,781,781,4781,4781,162,163,'XBAAAA','FZKAAA','VVVVxx' +7831,7416,1,3,1,11,31,831,1831,2831,7831,62,63,'FPAAAA','GZKAAA','AAAAxx' +6946,7417,0,2,6,6,46,946,946,1946,6946,92,93,'EHAAAA','HZKAAA','HHHHxx' +1215,7418,1,3,5,15,15,215,1215,1215,1215,30,31,'TUAAAA','IZKAAA','OOOOxx' +7783,7419,1,3,3,3,83,783,1783,2783,7783,166,167,'JNAAAA','JZKAAA','VVVVxx' +4532,7420,0,0,2,12,32,532,532,4532,4532,64,65,'ISAAAA','KZKAAA','AAAAxx' +9068,7421,0,0,8,8,68,68,1068,4068,9068,136,137,'UKAAAA','LZKAAA','HHHHxx' +7030,7422,0,2,0,10,30,30,1030,2030,7030,60,61,'KKAAAA','MZKAAA','OOOOxx' +436,7423,0,0,6,16,36,436,436,436,436,72,73,'UQAAAA','NZKAAA','VVVVxx' +6549,7424,1,1,9,9,49,549,549,1549,6549,98,99,'XRAAAA','OZKAAA','AAAAxx' +3348,7425,0,0,8,8,48,348,1348,3348,3348,96,97,'UYAAAA','PZKAAA','HHHHxx' +6229,7426,1,1,9,9,29,229,229,1229,6229,58,59,'PFAAAA','QZKAAA','OOOOxx' +3933,7427,1,1,3,13,33,933,1933,3933,3933,66,67,'HVAAAA','RZKAAA','VVVVxx' +1876,7428,0,0,6,16,76,876,1876,1876,1876,152,153,'EUAAAA','SZKAAA','AAAAxx' +8920,7429,0,0,0,0,20,920,920,3920,8920,40,41,'CFAAAA','TZKAAA','HHHHxx' +7926,7430,0,2,6,6,26,926,1926,2926,7926,52,53,'WSAAAA','UZKAAA','OOOOxx' +8805,7431,1,1,5,5,5,805,805,3805,8805,10,11,'RAAAAA','VZKAAA','VVVVxx' +6729,7432,1,1,9,9,29,729,729,1729,6729,58,59,'VYAAAA','WZKAAA','AAAAxx' +7397,7433,1,1,7,17,97,397,1397,2397,7397,194,195,'NYAAAA','XZKAAA','HHHHxx' +9303,7434,1,3,3,3,3,303,1303,4303,9303,6,7,'VTAAAA','YZKAAA','OOOOxx' +4255,7435,1,3,5,15,55,255,255,4255,4255,110,111,'RHAAAA','ZZKAAA','VVVVxx' +7229,7436,1,1,9,9,29,229,1229,2229,7229,58,59,'BSAAAA','AALAAA','AAAAxx' +854,7437,0,2,4,14,54,854,854,854,854,108,109,'WGAAAA','BALAAA','HHHHxx' +6723,7438,1,3,3,3,23,723,723,1723,6723,46,47,'PYAAAA','CALAAA','OOOOxx' +9597,7439,1,1,7,17,97,597,1597,4597,9597,194,195,'DFAAAA','DALAAA','VVVVxx' +6532,7440,0,0,2,12,32,532,532,1532,6532,64,65,'GRAAAA','EALAAA','AAAAxx' +2910,7441,0,2,0,10,10,910,910,2910,2910,20,21,'YHAAAA','FALAAA','HHHHxx' +6717,7442,1,1,7,17,17,717,717,1717,6717,34,35,'JYAAAA','GALAAA','OOOOxx' +1790,7443,0,2,0,10,90,790,1790,1790,1790,180,181,'WQAAAA','HALAAA','VVVVxx' +3761,7444,1,1,1,1,61,761,1761,3761,3761,122,123,'ROAAAA','IALAAA','AAAAxx' +1565,7445,1,1,5,5,65,565,1565,1565,1565,130,131,'FIAAAA','JALAAA','HHHHxx' +6205,7446,1,1,5,5,5,205,205,1205,6205,10,11,'REAAAA','KALAAA','OOOOxx' +2726,7447,0,2,6,6,26,726,726,2726,2726,52,53,'WAAAAA','LALAAA','VVVVxx' +799,7448,1,3,9,19,99,799,799,799,799,198,199,'TEAAAA','MALAAA','AAAAxx' +3540,7449,0,0,0,0,40,540,1540,3540,3540,80,81,'EGAAAA','NALAAA','HHHHxx' +5878,7450,0,2,8,18,78,878,1878,878,5878,156,157,'CSAAAA','OALAAA','OOOOxx' +2542,7451,0,2,2,2,42,542,542,2542,2542,84,85,'UTAAAA','PALAAA','VVVVxx' +4888,7452,0,0,8,8,88,888,888,4888,4888,176,177,'AGAAAA','QALAAA','AAAAxx' +5290,7453,0,2,0,10,90,290,1290,290,5290,180,181,'MVAAAA','RALAAA','HHHHxx' +7995,7454,1,3,5,15,95,995,1995,2995,7995,190,191,'NVAAAA','SALAAA','OOOOxx' +3519,7455,1,3,9,19,19,519,1519,3519,3519,38,39,'JFAAAA','TALAAA','VVVVxx' +3571,7456,1,3,1,11,71,571,1571,3571,3571,142,143,'JHAAAA','UALAAA','AAAAxx' +7854,7457,0,2,4,14,54,854,1854,2854,7854,108,109,'CQAAAA','VALAAA','HHHHxx' +5184,7458,0,0,4,4,84,184,1184,184,5184,168,169,'KRAAAA','WALAAA','OOOOxx' +3498,7459,0,2,8,18,98,498,1498,3498,3498,196,197,'OEAAAA','XALAAA','VVVVxx' +1264,7460,0,0,4,4,64,264,1264,1264,1264,128,129,'QWAAAA','YALAAA','AAAAxx' +3159,7461,1,3,9,19,59,159,1159,3159,3159,118,119,'NRAAAA','ZALAAA','HHHHxx' +5480,7462,0,0,0,0,80,480,1480,480,5480,160,161,'UCAAAA','ABLAAA','OOOOxx' +1706,7463,0,2,6,6,6,706,1706,1706,1706,12,13,'QNAAAA','BBLAAA','VVVVxx' +4540,7464,0,0,0,0,40,540,540,4540,4540,80,81,'QSAAAA','CBLAAA','AAAAxx' +2799,7465,1,3,9,19,99,799,799,2799,2799,198,199,'RDAAAA','DBLAAA','HHHHxx' +7389,7466,1,1,9,9,89,389,1389,2389,7389,178,179,'FYAAAA','EBLAAA','OOOOxx' +5565,7467,1,1,5,5,65,565,1565,565,5565,130,131,'BGAAAA','FBLAAA','VVVVxx' +3896,7468,0,0,6,16,96,896,1896,3896,3896,192,193,'WTAAAA','GBLAAA','AAAAxx' +2100,7469,0,0,0,0,0,100,100,2100,2100,0,1,'UCAAAA','HBLAAA','HHHHxx' +3507,7470,1,3,7,7,7,507,1507,3507,3507,14,15,'XEAAAA','IBLAAA','OOOOxx' +7971,7471,1,3,1,11,71,971,1971,2971,7971,142,143,'PUAAAA','JBLAAA','VVVVxx' +2312,7472,0,0,2,12,12,312,312,2312,2312,24,25,'YKAAAA','KBLAAA','AAAAxx' +2494,7473,0,2,4,14,94,494,494,2494,2494,188,189,'YRAAAA','LBLAAA','HHHHxx' +2474,7474,0,2,4,14,74,474,474,2474,2474,148,149,'ERAAAA','MBLAAA','OOOOxx' +3136,7475,0,0,6,16,36,136,1136,3136,3136,72,73,'QQAAAA','NBLAAA','VVVVxx' +7242,7476,0,2,2,2,42,242,1242,2242,7242,84,85,'OSAAAA','OBLAAA','AAAAxx' +9430,7477,0,2,0,10,30,430,1430,4430,9430,60,61,'SYAAAA','PBLAAA','HHHHxx' +1052,7478,0,0,2,12,52,52,1052,1052,1052,104,105,'MOAAAA','QBLAAA','OOOOxx' +4172,7479,0,0,2,12,72,172,172,4172,4172,144,145,'MEAAAA','RBLAAA','VVVVxx' +970,7480,0,2,0,10,70,970,970,970,970,140,141,'ILAAAA','SBLAAA','AAAAxx' +882,7481,0,2,2,2,82,882,882,882,882,164,165,'YHAAAA','TBLAAA','HHHHxx' +9799,7482,1,3,9,19,99,799,1799,4799,9799,198,199,'XMAAAA','UBLAAA','OOOOxx' +5850,7483,0,2,0,10,50,850,1850,850,5850,100,101,'ARAAAA','VBLAAA','VVVVxx' +9473,7484,1,1,3,13,73,473,1473,4473,9473,146,147,'JAAAAA','WBLAAA','AAAAxx' +8635,7485,1,3,5,15,35,635,635,3635,8635,70,71,'DUAAAA','XBLAAA','HHHHxx' +2349,7486,1,1,9,9,49,349,349,2349,2349,98,99,'JMAAAA','YBLAAA','OOOOxx' +2270,7487,0,2,0,10,70,270,270,2270,2270,140,141,'IJAAAA','ZBLAAA','VVVVxx' +7887,7488,1,3,7,7,87,887,1887,2887,7887,174,175,'JRAAAA','ACLAAA','AAAAxx' +3091,7489,1,3,1,11,91,91,1091,3091,3091,182,183,'XOAAAA','BCLAAA','HHHHxx' +3728,7490,0,0,8,8,28,728,1728,3728,3728,56,57,'KNAAAA','CCLAAA','OOOOxx' +3658,7491,0,2,8,18,58,658,1658,3658,3658,116,117,'SKAAAA','DCLAAA','VVVVxx' +5975,7492,1,3,5,15,75,975,1975,975,5975,150,151,'VVAAAA','ECLAAA','AAAAxx' +332,7493,0,0,2,12,32,332,332,332,332,64,65,'UMAAAA','FCLAAA','HHHHxx' +7990,7494,0,2,0,10,90,990,1990,2990,7990,180,181,'IVAAAA','GCLAAA','OOOOxx' +8688,7495,0,0,8,8,88,688,688,3688,8688,176,177,'EWAAAA','HCLAAA','VVVVxx' +9601,7496,1,1,1,1,1,601,1601,4601,9601,2,3,'HFAAAA','ICLAAA','AAAAxx' +8401,7497,1,1,1,1,1,401,401,3401,8401,2,3,'DLAAAA','JCLAAA','HHHHxx' +8093,7498,1,1,3,13,93,93,93,3093,8093,186,187,'HZAAAA','KCLAAA','OOOOxx' +4278,7499,0,2,8,18,78,278,278,4278,4278,156,157,'OIAAAA','LCLAAA','VVVVxx' +5467,7500,1,3,7,7,67,467,1467,467,5467,134,135,'HCAAAA','MCLAAA','AAAAxx' +3137,7501,1,1,7,17,37,137,1137,3137,3137,74,75,'RQAAAA','NCLAAA','HHHHxx' +204,7502,0,0,4,4,4,204,204,204,204,8,9,'WHAAAA','OCLAAA','OOOOxx' +8224,7503,0,0,4,4,24,224,224,3224,8224,48,49,'IEAAAA','PCLAAA','VVVVxx' +2944,7504,0,0,4,4,44,944,944,2944,2944,88,89,'GJAAAA','QCLAAA','AAAAxx' +7593,7505,1,1,3,13,93,593,1593,2593,7593,186,187,'BGAAAA','RCLAAA','HHHHxx' +814,7506,0,2,4,14,14,814,814,814,814,28,29,'IFAAAA','SCLAAA','OOOOxx' +8047,7507,1,3,7,7,47,47,47,3047,8047,94,95,'NXAAAA','TCLAAA','VVVVxx' +7802,7508,0,2,2,2,2,802,1802,2802,7802,4,5,'COAAAA','UCLAAA','AAAAxx' +901,7509,1,1,1,1,1,901,901,901,901,2,3,'RIAAAA','VCLAAA','HHHHxx' +6168,7510,0,0,8,8,68,168,168,1168,6168,136,137,'GDAAAA','WCLAAA','OOOOxx' +2950,7511,0,2,0,10,50,950,950,2950,2950,100,101,'MJAAAA','XCLAAA','VVVVxx' +5393,7512,1,1,3,13,93,393,1393,393,5393,186,187,'LZAAAA','YCLAAA','AAAAxx' +3585,7513,1,1,5,5,85,585,1585,3585,3585,170,171,'XHAAAA','ZCLAAA','HHHHxx' +9392,7514,0,0,2,12,92,392,1392,4392,9392,184,185,'GXAAAA','ADLAAA','OOOOxx' +8314,7515,0,2,4,14,14,314,314,3314,8314,28,29,'UHAAAA','BDLAAA','VVVVxx' +9972,7516,0,0,2,12,72,972,1972,4972,9972,144,145,'OTAAAA','CDLAAA','AAAAxx' +9130,7517,0,2,0,10,30,130,1130,4130,9130,60,61,'ENAAAA','DDLAAA','HHHHxx' +975,7518,1,3,5,15,75,975,975,975,975,150,151,'NLAAAA','EDLAAA','OOOOxx' +5720,7519,0,0,0,0,20,720,1720,720,5720,40,41,'AMAAAA','FDLAAA','VVVVxx' +3769,7520,1,1,9,9,69,769,1769,3769,3769,138,139,'ZOAAAA','GDLAAA','AAAAxx' +5303,7521,1,3,3,3,3,303,1303,303,5303,6,7,'ZVAAAA','HDLAAA','HHHHxx' +6564,7522,0,0,4,4,64,564,564,1564,6564,128,129,'MSAAAA','IDLAAA','OOOOxx' +7855,7523,1,3,5,15,55,855,1855,2855,7855,110,111,'DQAAAA','JDLAAA','VVVVxx' +8153,7524,1,1,3,13,53,153,153,3153,8153,106,107,'PBAAAA','KDLAAA','AAAAxx' +2292,7525,0,0,2,12,92,292,292,2292,2292,184,185,'EKAAAA','LDLAAA','HHHHxx' +3156,7526,0,0,6,16,56,156,1156,3156,3156,112,113,'KRAAAA','MDLAAA','OOOOxx' +6580,7527,0,0,0,0,80,580,580,1580,6580,160,161,'CTAAAA','NDLAAA','VVVVxx' +5324,7528,0,0,4,4,24,324,1324,324,5324,48,49,'UWAAAA','ODLAAA','AAAAxx' +8871,7529,1,3,1,11,71,871,871,3871,8871,142,143,'FDAAAA','PDLAAA','HHHHxx' +2543,7530,1,3,3,3,43,543,543,2543,2543,86,87,'VTAAAA','QDLAAA','OOOOxx' +7857,7531,1,1,7,17,57,857,1857,2857,7857,114,115,'FQAAAA','RDLAAA','VVVVxx' +4084,7532,0,0,4,4,84,84,84,4084,4084,168,169,'CBAAAA','SDLAAA','AAAAxx' +9887,7533,1,3,7,7,87,887,1887,4887,9887,174,175,'HQAAAA','TDLAAA','HHHHxx' +6940,7534,0,0,0,0,40,940,940,1940,6940,80,81,'YGAAAA','UDLAAA','OOOOxx' +3415,7535,1,3,5,15,15,415,1415,3415,3415,30,31,'JBAAAA','VDLAAA','VVVVxx' +5012,7536,0,0,2,12,12,12,1012,12,5012,24,25,'UKAAAA','WDLAAA','AAAAxx' +3187,7537,1,3,7,7,87,187,1187,3187,3187,174,175,'PSAAAA','XDLAAA','HHHHxx' +8556,7538,0,0,6,16,56,556,556,3556,8556,112,113,'CRAAAA','YDLAAA','OOOOxx' +7966,7539,0,2,6,6,66,966,1966,2966,7966,132,133,'KUAAAA','ZDLAAA','VVVVxx' +7481,7540,1,1,1,1,81,481,1481,2481,7481,162,163,'TBAAAA','AELAAA','AAAAxx' +8524,7541,0,0,4,4,24,524,524,3524,8524,48,49,'WPAAAA','BELAAA','HHHHxx' +3021,7542,1,1,1,1,21,21,1021,3021,3021,42,43,'FMAAAA','CELAAA','OOOOxx' +6045,7543,1,1,5,5,45,45,45,1045,6045,90,91,'NYAAAA','DELAAA','VVVVxx' +8022,7544,0,2,2,2,22,22,22,3022,8022,44,45,'OWAAAA','EELAAA','AAAAxx' +3626,7545,0,2,6,6,26,626,1626,3626,3626,52,53,'MJAAAA','FELAAA','HHHHxx' +1030,7546,0,2,0,10,30,30,1030,1030,1030,60,61,'QNAAAA','GELAAA','OOOOxx' +8903,7547,1,3,3,3,3,903,903,3903,8903,6,7,'LEAAAA','HELAAA','VVVVxx' +7488,7548,0,0,8,8,88,488,1488,2488,7488,176,177,'ACAAAA','IELAAA','AAAAxx' +9293,7549,1,1,3,13,93,293,1293,4293,9293,186,187,'LTAAAA','JELAAA','HHHHxx' +4586,7550,0,2,6,6,86,586,586,4586,4586,172,173,'KUAAAA','KELAAA','OOOOxx' +9282,7551,0,2,2,2,82,282,1282,4282,9282,164,165,'ATAAAA','LELAAA','VVVVxx' +1948,7552,0,0,8,8,48,948,1948,1948,1948,96,97,'YWAAAA','MELAAA','AAAAxx' +2534,7553,0,2,4,14,34,534,534,2534,2534,68,69,'MTAAAA','NELAAA','HHHHxx' +1150,7554,0,2,0,10,50,150,1150,1150,1150,100,101,'GSAAAA','OELAAA','OOOOxx' +4931,7555,1,3,1,11,31,931,931,4931,4931,62,63,'RHAAAA','PELAAA','VVVVxx' +2866,7556,0,2,6,6,66,866,866,2866,2866,132,133,'GGAAAA','QELAAA','AAAAxx' +6172,7557,0,0,2,12,72,172,172,1172,6172,144,145,'KDAAAA','RELAAA','HHHHxx' +4819,7558,1,3,9,19,19,819,819,4819,4819,38,39,'JDAAAA','SELAAA','OOOOxx' +569,7559,1,1,9,9,69,569,569,569,569,138,139,'XVAAAA','TELAAA','VVVVxx' +1146,7560,0,2,6,6,46,146,1146,1146,1146,92,93,'CSAAAA','UELAAA','AAAAxx' +3062,7561,0,2,2,2,62,62,1062,3062,3062,124,125,'UNAAAA','VELAAA','HHHHxx' +7690,7562,0,2,0,10,90,690,1690,2690,7690,180,181,'UJAAAA','WELAAA','OOOOxx' +8611,7563,1,3,1,11,11,611,611,3611,8611,22,23,'FTAAAA','XELAAA','VVVVxx' +1142,7564,0,2,2,2,42,142,1142,1142,1142,84,85,'YRAAAA','YELAAA','AAAAxx' +1193,7565,1,1,3,13,93,193,1193,1193,1193,186,187,'XTAAAA','ZELAAA','HHHHxx' +2507,7566,1,3,7,7,7,507,507,2507,2507,14,15,'LSAAAA','AFLAAA','OOOOxx' +1043,7567,1,3,3,3,43,43,1043,1043,1043,86,87,'DOAAAA','BFLAAA','VVVVxx' +7472,7568,0,0,2,12,72,472,1472,2472,7472,144,145,'KBAAAA','CFLAAA','AAAAxx' +1817,7569,1,1,7,17,17,817,1817,1817,1817,34,35,'XRAAAA','DFLAAA','HHHHxx' +3868,7570,0,0,8,8,68,868,1868,3868,3868,136,137,'USAAAA','EFLAAA','OOOOxx' +9031,7571,1,3,1,11,31,31,1031,4031,9031,62,63,'JJAAAA','FFLAAA','VVVVxx' +7254,7572,0,2,4,14,54,254,1254,2254,7254,108,109,'ATAAAA','GFLAAA','AAAAxx' +5030,7573,0,2,0,10,30,30,1030,30,5030,60,61,'MLAAAA','HFLAAA','HHHHxx' +6594,7574,0,2,4,14,94,594,594,1594,6594,188,189,'QTAAAA','IFLAAA','OOOOxx' +6862,7575,0,2,2,2,62,862,862,1862,6862,124,125,'YDAAAA','JFLAAA','VVVVxx' +1994,7576,0,2,4,14,94,994,1994,1994,1994,188,189,'SYAAAA','KFLAAA','AAAAxx' +9017,7577,1,1,7,17,17,17,1017,4017,9017,34,35,'VIAAAA','LFLAAA','HHHHxx' +5716,7578,0,0,6,16,16,716,1716,716,5716,32,33,'WLAAAA','MFLAAA','OOOOxx' +1900,7579,0,0,0,0,0,900,1900,1900,1900,0,1,'CVAAAA','NFLAAA','VVVVxx' +120,7580,0,0,0,0,20,120,120,120,120,40,41,'QEAAAA','OFLAAA','AAAAxx' +9003,7581,1,3,3,3,3,3,1003,4003,9003,6,7,'HIAAAA','PFLAAA','HHHHxx' +4178,7582,0,2,8,18,78,178,178,4178,4178,156,157,'SEAAAA','QFLAAA','OOOOxx' +8777,7583,1,1,7,17,77,777,777,3777,8777,154,155,'PZAAAA','RFLAAA','VVVVxx' +3653,7584,1,1,3,13,53,653,1653,3653,3653,106,107,'NKAAAA','SFLAAA','AAAAxx' +1137,7585,1,1,7,17,37,137,1137,1137,1137,74,75,'TRAAAA','TFLAAA','HHHHxx' +6362,7586,0,2,2,2,62,362,362,1362,6362,124,125,'SKAAAA','UFLAAA','OOOOxx' +8537,7587,1,1,7,17,37,537,537,3537,8537,74,75,'JQAAAA','VFLAAA','VVVVxx' +1590,7588,0,2,0,10,90,590,1590,1590,1590,180,181,'EJAAAA','WFLAAA','AAAAxx' +374,7589,0,2,4,14,74,374,374,374,374,148,149,'KOAAAA','XFLAAA','HHHHxx' +2597,7590,1,1,7,17,97,597,597,2597,2597,194,195,'XVAAAA','YFLAAA','OOOOxx' +8071,7591,1,3,1,11,71,71,71,3071,8071,142,143,'LYAAAA','ZFLAAA','VVVVxx' +9009,7592,1,1,9,9,9,9,1009,4009,9009,18,19,'NIAAAA','AGLAAA','AAAAxx' +1978,7593,0,2,8,18,78,978,1978,1978,1978,156,157,'CYAAAA','BGLAAA','HHHHxx' +1541,7594,1,1,1,1,41,541,1541,1541,1541,82,83,'HHAAAA','CGLAAA','OOOOxx' +4998,7595,0,2,8,18,98,998,998,4998,4998,196,197,'GKAAAA','DGLAAA','VVVVxx' +1649,7596,1,1,9,9,49,649,1649,1649,1649,98,99,'LLAAAA','EGLAAA','AAAAxx' +5426,7597,0,2,6,6,26,426,1426,426,5426,52,53,'SAAAAA','FGLAAA','HHHHxx' +1492,7598,0,0,2,12,92,492,1492,1492,1492,184,185,'KFAAAA','GGLAAA','OOOOxx' +9622,7599,0,2,2,2,22,622,1622,4622,9622,44,45,'CGAAAA','HGLAAA','VVVVxx' +701,7600,1,1,1,1,1,701,701,701,701,2,3,'ZAAAAA','IGLAAA','AAAAxx' +2781,7601,1,1,1,1,81,781,781,2781,2781,162,163,'ZCAAAA','JGLAAA','HHHHxx' +3982,7602,0,2,2,2,82,982,1982,3982,3982,164,165,'EXAAAA','KGLAAA','OOOOxx' +7259,7603,1,3,9,19,59,259,1259,2259,7259,118,119,'FTAAAA','LGLAAA','VVVVxx' +9868,7604,0,0,8,8,68,868,1868,4868,9868,136,137,'OPAAAA','MGLAAA','AAAAxx' +564,7605,0,0,4,4,64,564,564,564,564,128,129,'SVAAAA','NGLAAA','HHHHxx' +6315,7606,1,3,5,15,15,315,315,1315,6315,30,31,'XIAAAA','OGLAAA','OOOOxx' +9092,7607,0,0,2,12,92,92,1092,4092,9092,184,185,'SLAAAA','PGLAAA','VVVVxx' +8237,7608,1,1,7,17,37,237,237,3237,8237,74,75,'VEAAAA','QGLAAA','AAAAxx' +1513,7609,1,1,3,13,13,513,1513,1513,1513,26,27,'FGAAAA','RGLAAA','HHHHxx' +1922,7610,0,2,2,2,22,922,1922,1922,1922,44,45,'YVAAAA','SGLAAA','OOOOxx' +5396,7611,0,0,6,16,96,396,1396,396,5396,192,193,'OZAAAA','TGLAAA','VVVVxx' +2485,7612,1,1,5,5,85,485,485,2485,2485,170,171,'PRAAAA','UGLAAA','AAAAxx' +5774,7613,0,2,4,14,74,774,1774,774,5774,148,149,'COAAAA','VGLAAA','HHHHxx' +3983,7614,1,3,3,3,83,983,1983,3983,3983,166,167,'FXAAAA','WGLAAA','OOOOxx' +221,7615,1,1,1,1,21,221,221,221,221,42,43,'NIAAAA','XGLAAA','VVVVxx' +8662,7616,0,2,2,2,62,662,662,3662,8662,124,125,'EVAAAA','YGLAAA','AAAAxx' +2456,7617,0,0,6,16,56,456,456,2456,2456,112,113,'MQAAAA','ZGLAAA','HHHHxx' +9736,7618,0,0,6,16,36,736,1736,4736,9736,72,73,'MKAAAA','AHLAAA','OOOOxx' +8936,7619,0,0,6,16,36,936,936,3936,8936,72,73,'SFAAAA','BHLAAA','VVVVxx' +5395,7620,1,3,5,15,95,395,1395,395,5395,190,191,'NZAAAA','CHLAAA','AAAAxx' +9523,7621,1,3,3,3,23,523,1523,4523,9523,46,47,'HCAAAA','DHLAAA','HHHHxx' +6980,7622,0,0,0,0,80,980,980,1980,6980,160,161,'MIAAAA','EHLAAA','OOOOxx' +2091,7623,1,3,1,11,91,91,91,2091,2091,182,183,'LCAAAA','FHLAAA','VVVVxx' +6807,7624,1,3,7,7,7,807,807,1807,6807,14,15,'VBAAAA','GHLAAA','AAAAxx' +8818,7625,0,2,8,18,18,818,818,3818,8818,36,37,'EBAAAA','HHLAAA','HHHHxx' +5298,7626,0,2,8,18,98,298,1298,298,5298,196,197,'UVAAAA','IHLAAA','OOOOxx' +1726,7627,0,2,6,6,26,726,1726,1726,1726,52,53,'KOAAAA','JHLAAA','VVVVxx' +3878,7628,0,2,8,18,78,878,1878,3878,3878,156,157,'ETAAAA','KHLAAA','AAAAxx' +8700,7629,0,0,0,0,0,700,700,3700,8700,0,1,'QWAAAA','LHLAAA','HHHHxx' +5201,7630,1,1,1,1,1,201,1201,201,5201,2,3,'BSAAAA','MHLAAA','OOOOxx' +3936,7631,0,0,6,16,36,936,1936,3936,3936,72,73,'KVAAAA','NHLAAA','VVVVxx' +776,7632,0,0,6,16,76,776,776,776,776,152,153,'WDAAAA','OHLAAA','AAAAxx' +5302,7633,0,2,2,2,2,302,1302,302,5302,4,5,'YVAAAA','PHLAAA','HHHHxx' +3595,7634,1,3,5,15,95,595,1595,3595,3595,190,191,'HIAAAA','QHLAAA','OOOOxx' +9061,7635,1,1,1,1,61,61,1061,4061,9061,122,123,'NKAAAA','RHLAAA','VVVVxx' +6261,7636,1,1,1,1,61,261,261,1261,6261,122,123,'VGAAAA','SHLAAA','AAAAxx' +8878,7637,0,2,8,18,78,878,878,3878,8878,156,157,'MDAAAA','THLAAA','HHHHxx' +3312,7638,0,0,2,12,12,312,1312,3312,3312,24,25,'KXAAAA','UHLAAA','OOOOxx' +9422,7639,0,2,2,2,22,422,1422,4422,9422,44,45,'KYAAAA','VHLAAA','VVVVxx' +7321,7640,1,1,1,1,21,321,1321,2321,7321,42,43,'PVAAAA','WHLAAA','AAAAxx' +3813,7641,1,1,3,13,13,813,1813,3813,3813,26,27,'RQAAAA','XHLAAA','HHHHxx' +5848,7642,0,0,8,8,48,848,1848,848,5848,96,97,'YQAAAA','YHLAAA','OOOOxx' +3535,7643,1,3,5,15,35,535,1535,3535,3535,70,71,'ZFAAAA','ZHLAAA','VVVVxx' +1040,7644,0,0,0,0,40,40,1040,1040,1040,80,81,'AOAAAA','AILAAA','AAAAxx' +8572,7645,0,0,2,12,72,572,572,3572,8572,144,145,'SRAAAA','BILAAA','HHHHxx' +5435,7646,1,3,5,15,35,435,1435,435,5435,70,71,'BBAAAA','CILAAA','OOOOxx' +8199,7647,1,3,9,19,99,199,199,3199,8199,198,199,'JDAAAA','DILAAA','VVVVxx' +8775,7648,1,3,5,15,75,775,775,3775,8775,150,151,'NZAAAA','EILAAA','AAAAxx' +7722,7649,0,2,2,2,22,722,1722,2722,7722,44,45,'ALAAAA','FILAAA','HHHHxx' +3549,7650,1,1,9,9,49,549,1549,3549,3549,98,99,'NGAAAA','GILAAA','OOOOxx' +2578,7651,0,2,8,18,78,578,578,2578,2578,156,157,'EVAAAA','HILAAA','VVVVxx' +1695,7652,1,3,5,15,95,695,1695,1695,1695,190,191,'FNAAAA','IILAAA','AAAAxx' +1902,7653,0,2,2,2,2,902,1902,1902,1902,4,5,'EVAAAA','JILAAA','HHHHxx' +6058,7654,0,2,8,18,58,58,58,1058,6058,116,117,'AZAAAA','KILAAA','OOOOxx' +6591,7655,1,3,1,11,91,591,591,1591,6591,182,183,'NTAAAA','LILAAA','VVVVxx' +7962,7656,0,2,2,2,62,962,1962,2962,7962,124,125,'GUAAAA','MILAAA','AAAAxx' +5612,7657,0,0,2,12,12,612,1612,612,5612,24,25,'WHAAAA','NILAAA','HHHHxx' +3341,7658,1,1,1,1,41,341,1341,3341,3341,82,83,'NYAAAA','OILAAA','OOOOxx' +5460,7659,0,0,0,0,60,460,1460,460,5460,120,121,'ACAAAA','PILAAA','VVVVxx' +2368,7660,0,0,8,8,68,368,368,2368,2368,136,137,'CNAAAA','QILAAA','AAAAxx' +8646,7661,0,2,6,6,46,646,646,3646,8646,92,93,'OUAAAA','RILAAA','HHHHxx' +4987,7662,1,3,7,7,87,987,987,4987,4987,174,175,'VJAAAA','SILAAA','OOOOxx' +9018,7663,0,2,8,18,18,18,1018,4018,9018,36,37,'WIAAAA','TILAAA','VVVVxx' +8685,7664,1,1,5,5,85,685,685,3685,8685,170,171,'BWAAAA','UILAAA','AAAAxx' +694,7665,0,2,4,14,94,694,694,694,694,188,189,'SAAAAA','VILAAA','HHHHxx' +2012,7666,0,0,2,12,12,12,12,2012,2012,24,25,'KZAAAA','WILAAA','OOOOxx' +2417,7667,1,1,7,17,17,417,417,2417,2417,34,35,'ZOAAAA','XILAAA','VVVVxx' +4022,7668,0,2,2,2,22,22,22,4022,4022,44,45,'SYAAAA','YILAAA','AAAAxx' +5935,7669,1,3,5,15,35,935,1935,935,5935,70,71,'HUAAAA','ZILAAA','HHHHxx' +1656,7670,0,0,6,16,56,656,1656,1656,1656,112,113,'SLAAAA','AJLAAA','OOOOxx' +6195,7671,1,3,5,15,95,195,195,1195,6195,190,191,'HEAAAA','BJLAAA','VVVVxx' +3057,7672,1,1,7,17,57,57,1057,3057,3057,114,115,'PNAAAA','CJLAAA','AAAAxx' +2852,7673,0,0,2,12,52,852,852,2852,2852,104,105,'SFAAAA','DJLAAA','HHHHxx' +4634,7674,0,2,4,14,34,634,634,4634,4634,68,69,'GWAAAA','EJLAAA','OOOOxx' +1689,7675,1,1,9,9,89,689,1689,1689,1689,178,179,'ZMAAAA','FJLAAA','VVVVxx' +4102,7676,0,2,2,2,2,102,102,4102,4102,4,5,'UBAAAA','GJLAAA','AAAAxx' +3287,7677,1,3,7,7,87,287,1287,3287,3287,174,175,'LWAAAA','HJLAAA','HHHHxx' +5246,7678,0,2,6,6,46,246,1246,246,5246,92,93,'UTAAAA','IJLAAA','OOOOxx' +7450,7679,0,2,0,10,50,450,1450,2450,7450,100,101,'OAAAAA','JJLAAA','VVVVxx' +6548,7680,0,0,8,8,48,548,548,1548,6548,96,97,'WRAAAA','KJLAAA','AAAAxx' +379,7681,1,3,9,19,79,379,379,379,379,158,159,'POAAAA','LJLAAA','HHHHxx' +7435,7682,1,3,5,15,35,435,1435,2435,7435,70,71,'ZZAAAA','MJLAAA','OOOOxx' +2041,7683,1,1,1,1,41,41,41,2041,2041,82,83,'NAAAAA','NJLAAA','VVVVxx' +8462,7684,0,2,2,2,62,462,462,3462,8462,124,125,'MNAAAA','OJLAAA','AAAAxx' +9076,7685,0,0,6,16,76,76,1076,4076,9076,152,153,'CLAAAA','PJLAAA','HHHHxx' +761,7686,1,1,1,1,61,761,761,761,761,122,123,'HDAAAA','QJLAAA','OOOOxx' +795,7687,1,3,5,15,95,795,795,795,795,190,191,'PEAAAA','RJLAAA','VVVVxx' +1671,7688,1,3,1,11,71,671,1671,1671,1671,142,143,'HMAAAA','SJLAAA','AAAAxx' +695,7689,1,3,5,15,95,695,695,695,695,190,191,'TAAAAA','TJLAAA','HHHHxx' +4981,7690,1,1,1,1,81,981,981,4981,4981,162,163,'PJAAAA','UJLAAA','OOOOxx' +1211,7691,1,3,1,11,11,211,1211,1211,1211,22,23,'PUAAAA','VJLAAA','VVVVxx' +5914,7692,0,2,4,14,14,914,1914,914,5914,28,29,'MTAAAA','WJLAAA','AAAAxx' +9356,7693,0,0,6,16,56,356,1356,4356,9356,112,113,'WVAAAA','XJLAAA','HHHHxx' +1500,7694,0,0,0,0,0,500,1500,1500,1500,0,1,'SFAAAA','YJLAAA','OOOOxx' +3353,7695,1,1,3,13,53,353,1353,3353,3353,106,107,'ZYAAAA','ZJLAAA','VVVVxx' +1060,7696,0,0,0,0,60,60,1060,1060,1060,120,121,'UOAAAA','AKLAAA','AAAAxx' +7910,7697,0,2,0,10,10,910,1910,2910,7910,20,21,'GSAAAA','BKLAAA','HHHHxx' +1329,7698,1,1,9,9,29,329,1329,1329,1329,58,59,'DZAAAA','CKLAAA','OOOOxx' +6011,7699,1,3,1,11,11,11,11,1011,6011,22,23,'FXAAAA','DKLAAA','VVVVxx' +7146,7700,0,2,6,6,46,146,1146,2146,7146,92,93,'WOAAAA','EKLAAA','AAAAxx' +4602,7701,0,2,2,2,2,602,602,4602,4602,4,5,'AVAAAA','FKLAAA','HHHHxx' +6751,7702,1,3,1,11,51,751,751,1751,6751,102,103,'RZAAAA','GKLAAA','OOOOxx' +2666,7703,0,2,6,6,66,666,666,2666,2666,132,133,'OYAAAA','HKLAAA','VVVVxx' +2785,7704,1,1,5,5,85,785,785,2785,2785,170,171,'DDAAAA','IKLAAA','AAAAxx' +5851,7705,1,3,1,11,51,851,1851,851,5851,102,103,'BRAAAA','JKLAAA','HHHHxx' +2435,7706,1,3,5,15,35,435,435,2435,2435,70,71,'RPAAAA','KKLAAA','OOOOxx' +7429,7707,1,1,9,9,29,429,1429,2429,7429,58,59,'TZAAAA','LKLAAA','VVVVxx' +4241,7708,1,1,1,1,41,241,241,4241,4241,82,83,'DHAAAA','MKLAAA','AAAAxx' +5691,7709,1,3,1,11,91,691,1691,691,5691,182,183,'XKAAAA','NKLAAA','HHHHxx' +7731,7710,1,3,1,11,31,731,1731,2731,7731,62,63,'JLAAAA','OKLAAA','OOOOxx' +249,7711,1,1,9,9,49,249,249,249,249,98,99,'PJAAAA','PKLAAA','VVVVxx' +1731,7712,1,3,1,11,31,731,1731,1731,1731,62,63,'POAAAA','QKLAAA','AAAAxx' +8716,7713,0,0,6,16,16,716,716,3716,8716,32,33,'GXAAAA','RKLAAA','HHHHxx' +2670,7714,0,2,0,10,70,670,670,2670,2670,140,141,'SYAAAA','SKLAAA','OOOOxx' +4654,7715,0,2,4,14,54,654,654,4654,4654,108,109,'AXAAAA','TKLAAA','VVVVxx' +1027,7716,1,3,7,7,27,27,1027,1027,1027,54,55,'NNAAAA','UKLAAA','AAAAxx' +1099,7717,1,3,9,19,99,99,1099,1099,1099,198,199,'HQAAAA','VKLAAA','HHHHxx' +3617,7718,1,1,7,17,17,617,1617,3617,3617,34,35,'DJAAAA','WKLAAA','OOOOxx' +4330,7719,0,2,0,10,30,330,330,4330,4330,60,61,'OKAAAA','XKLAAA','VVVVxx' +9750,7720,0,2,0,10,50,750,1750,4750,9750,100,101,'ALAAAA','YKLAAA','AAAAxx' +467,7721,1,3,7,7,67,467,467,467,467,134,135,'ZRAAAA','ZKLAAA','HHHHxx' +8525,7722,1,1,5,5,25,525,525,3525,8525,50,51,'XPAAAA','ALLAAA','OOOOxx' +5990,7723,0,2,0,10,90,990,1990,990,5990,180,181,'KWAAAA','BLLAAA','VVVVxx' +4839,7724,1,3,9,19,39,839,839,4839,4839,78,79,'DEAAAA','CLLAAA','AAAAxx' +9914,7725,0,2,4,14,14,914,1914,4914,9914,28,29,'IRAAAA','DLLAAA','HHHHxx' +7047,7726,1,3,7,7,47,47,1047,2047,7047,94,95,'BLAAAA','ELLAAA','OOOOxx' +874,7727,0,2,4,14,74,874,874,874,874,148,149,'QHAAAA','FLLAAA','VVVVxx' +6061,7728,1,1,1,1,61,61,61,1061,6061,122,123,'DZAAAA','GLLAAA','AAAAxx' +5491,7729,1,3,1,11,91,491,1491,491,5491,182,183,'FDAAAA','HLLAAA','HHHHxx' +4344,7730,0,0,4,4,44,344,344,4344,4344,88,89,'CLAAAA','ILLAAA','OOOOxx' +1281,7731,1,1,1,1,81,281,1281,1281,1281,162,163,'HXAAAA','JLLAAA','VVVVxx' +3597,7732,1,1,7,17,97,597,1597,3597,3597,194,195,'JIAAAA','KLLAAA','AAAAxx' +4992,7733,0,0,2,12,92,992,992,4992,4992,184,185,'AKAAAA','LLLAAA','HHHHxx' +3849,7734,1,1,9,9,49,849,1849,3849,3849,98,99,'BSAAAA','MLLAAA','OOOOxx' +2655,7735,1,3,5,15,55,655,655,2655,2655,110,111,'DYAAAA','NLLAAA','VVVVxx' +147,7736,1,3,7,7,47,147,147,147,147,94,95,'RFAAAA','OLLAAA','AAAAxx' +9110,7737,0,2,0,10,10,110,1110,4110,9110,20,21,'KMAAAA','PLLAAA','HHHHxx' +1637,7738,1,1,7,17,37,637,1637,1637,1637,74,75,'ZKAAAA','QLLAAA','OOOOxx' +9826,7739,0,2,6,6,26,826,1826,4826,9826,52,53,'YNAAAA','RLLAAA','VVVVxx' +5957,7740,1,1,7,17,57,957,1957,957,5957,114,115,'DVAAAA','SLLAAA','AAAAxx' +6932,7741,0,0,2,12,32,932,932,1932,6932,64,65,'QGAAAA','TLLAAA','HHHHxx' +9684,7742,0,0,4,4,84,684,1684,4684,9684,168,169,'MIAAAA','ULLAAA','OOOOxx' +4653,7743,1,1,3,13,53,653,653,4653,4653,106,107,'ZWAAAA','VLLAAA','VVVVxx' +8065,7744,1,1,5,5,65,65,65,3065,8065,130,131,'FYAAAA','WLLAAA','AAAAxx' +1202,7745,0,2,2,2,2,202,1202,1202,1202,4,5,'GUAAAA','XLLAAA','HHHHxx' +9214,7746,0,2,4,14,14,214,1214,4214,9214,28,29,'KQAAAA','YLLAAA','OOOOxx' +196,7747,0,0,6,16,96,196,196,196,196,192,193,'OHAAAA','ZLLAAA','VVVVxx' +4486,7748,0,2,6,6,86,486,486,4486,4486,172,173,'OQAAAA','AMLAAA','AAAAxx' +2585,7749,1,1,5,5,85,585,585,2585,2585,170,171,'LVAAAA','BMLAAA','HHHHxx' +2464,7750,0,0,4,4,64,464,464,2464,2464,128,129,'UQAAAA','CMLAAA','OOOOxx' +3467,7751,1,3,7,7,67,467,1467,3467,3467,134,135,'JDAAAA','DMLAAA','VVVVxx' +9295,7752,1,3,5,15,95,295,1295,4295,9295,190,191,'NTAAAA','EMLAAA','AAAAxx' +517,7753,1,1,7,17,17,517,517,517,517,34,35,'XTAAAA','FMLAAA','HHHHxx' +6870,7754,0,2,0,10,70,870,870,1870,6870,140,141,'GEAAAA','GMLAAA','OOOOxx' +5732,7755,0,0,2,12,32,732,1732,732,5732,64,65,'MMAAAA','HMLAAA','VVVVxx' +9376,7756,0,0,6,16,76,376,1376,4376,9376,152,153,'QWAAAA','IMLAAA','AAAAxx' +838,7757,0,2,8,18,38,838,838,838,838,76,77,'GGAAAA','JMLAAA','HHHHxx' +9254,7758,0,2,4,14,54,254,1254,4254,9254,108,109,'YRAAAA','KMLAAA','OOOOxx' +8879,7759,1,3,9,19,79,879,879,3879,8879,158,159,'NDAAAA','LMLAAA','VVVVxx' +6281,7760,1,1,1,1,81,281,281,1281,6281,162,163,'PHAAAA','MMLAAA','AAAAxx' +8216,7761,0,0,6,16,16,216,216,3216,8216,32,33,'AEAAAA','NMLAAA','HHHHxx' +9213,7762,1,1,3,13,13,213,1213,4213,9213,26,27,'JQAAAA','OMLAAA','OOOOxx' +7234,7763,0,2,4,14,34,234,1234,2234,7234,68,69,'GSAAAA','PMLAAA','VVVVxx' +5692,7764,0,0,2,12,92,692,1692,692,5692,184,185,'YKAAAA','QMLAAA','AAAAxx' +693,7765,1,1,3,13,93,693,693,693,693,186,187,'RAAAAA','RMLAAA','HHHHxx' +9050,7766,0,2,0,10,50,50,1050,4050,9050,100,101,'CKAAAA','SMLAAA','OOOOxx' +3623,7767,1,3,3,3,23,623,1623,3623,3623,46,47,'JJAAAA','TMLAAA','VVVVxx' +2130,7768,0,2,0,10,30,130,130,2130,2130,60,61,'YDAAAA','UMLAAA','AAAAxx' +2514,7769,0,2,4,14,14,514,514,2514,2514,28,29,'SSAAAA','VMLAAA','HHHHxx' +1812,7770,0,0,2,12,12,812,1812,1812,1812,24,25,'SRAAAA','WMLAAA','OOOOxx' +9037,7771,1,1,7,17,37,37,1037,4037,9037,74,75,'PJAAAA','XMLAAA','VVVVxx' +5054,7772,0,2,4,14,54,54,1054,54,5054,108,109,'KMAAAA','YMLAAA','AAAAxx' +7801,7773,1,1,1,1,1,801,1801,2801,7801,2,3,'BOAAAA','ZMLAAA','HHHHxx' +7939,7774,1,3,9,19,39,939,1939,2939,7939,78,79,'JTAAAA','ANLAAA','OOOOxx' +7374,7775,0,2,4,14,74,374,1374,2374,7374,148,149,'QXAAAA','BNLAAA','VVVVxx' +1058,7776,0,2,8,18,58,58,1058,1058,1058,116,117,'SOAAAA','CNLAAA','AAAAxx' +1972,7777,0,0,2,12,72,972,1972,1972,1972,144,145,'WXAAAA','DNLAAA','HHHHxx' +3741,7778,1,1,1,1,41,741,1741,3741,3741,82,83,'XNAAAA','ENLAAA','OOOOxx' +2227,7779,1,3,7,7,27,227,227,2227,2227,54,55,'RHAAAA','FNLAAA','VVVVxx' +304,7780,0,0,4,4,4,304,304,304,304,8,9,'SLAAAA','GNLAAA','AAAAxx' +4914,7781,0,2,4,14,14,914,914,4914,4914,28,29,'AHAAAA','HNLAAA','HHHHxx' +2428,7782,0,0,8,8,28,428,428,2428,2428,56,57,'KPAAAA','INLAAA','OOOOxx' +6660,7783,0,0,0,0,60,660,660,1660,6660,120,121,'EWAAAA','JNLAAA','VVVVxx' +2676,7784,0,0,6,16,76,676,676,2676,2676,152,153,'YYAAAA','KNLAAA','AAAAxx' +2454,7785,0,2,4,14,54,454,454,2454,2454,108,109,'KQAAAA','LNLAAA','HHHHxx' +3798,7786,0,2,8,18,98,798,1798,3798,3798,196,197,'CQAAAA','MNLAAA','OOOOxx' +1341,7787,1,1,1,1,41,341,1341,1341,1341,82,83,'PZAAAA','NNLAAA','VVVVxx' +1611,7788,1,3,1,11,11,611,1611,1611,1611,22,23,'ZJAAAA','ONLAAA','AAAAxx' +2681,7789,1,1,1,1,81,681,681,2681,2681,162,163,'DZAAAA','PNLAAA','HHHHxx' +7292,7790,0,0,2,12,92,292,1292,2292,7292,184,185,'MUAAAA','QNLAAA','OOOOxx' +7775,7791,1,3,5,15,75,775,1775,2775,7775,150,151,'BNAAAA','RNLAAA','VVVVxx' +794,7792,0,2,4,14,94,794,794,794,794,188,189,'OEAAAA','SNLAAA','AAAAxx' +8709,7793,1,1,9,9,9,709,709,3709,8709,18,19,'ZWAAAA','TNLAAA','HHHHxx' +1901,7794,1,1,1,1,1,901,1901,1901,1901,2,3,'DVAAAA','UNLAAA','OOOOxx' +3089,7795,1,1,9,9,89,89,1089,3089,3089,178,179,'VOAAAA','VNLAAA','VVVVxx' +7797,7796,1,1,7,17,97,797,1797,2797,7797,194,195,'XNAAAA','WNLAAA','AAAAxx' +6070,7797,0,2,0,10,70,70,70,1070,6070,140,141,'MZAAAA','XNLAAA','HHHHxx' +2191,7798,1,3,1,11,91,191,191,2191,2191,182,183,'HGAAAA','YNLAAA','OOOOxx' +3497,7799,1,1,7,17,97,497,1497,3497,3497,194,195,'NEAAAA','ZNLAAA','VVVVxx' +8302,7800,0,2,2,2,2,302,302,3302,8302,4,5,'IHAAAA','AOLAAA','AAAAxx' +4365,7801,1,1,5,5,65,365,365,4365,4365,130,131,'XLAAAA','BOLAAA','HHHHxx' +3588,7802,0,0,8,8,88,588,1588,3588,3588,176,177,'AIAAAA','COLAAA','OOOOxx' +8292,7803,0,0,2,12,92,292,292,3292,8292,184,185,'YGAAAA','DOLAAA','VVVVxx' +4696,7804,0,0,6,16,96,696,696,4696,4696,192,193,'QYAAAA','EOLAAA','AAAAxx' +5641,7805,1,1,1,1,41,641,1641,641,5641,82,83,'ZIAAAA','FOLAAA','HHHHxx' +9386,7806,0,2,6,6,86,386,1386,4386,9386,172,173,'AXAAAA','GOLAAA','OOOOxx' +507,7807,1,3,7,7,7,507,507,507,507,14,15,'NTAAAA','HOLAAA','VVVVxx' +7201,7808,1,1,1,1,1,201,1201,2201,7201,2,3,'ZQAAAA','IOLAAA','AAAAxx' +7785,7809,1,1,5,5,85,785,1785,2785,7785,170,171,'LNAAAA','JOLAAA','HHHHxx' +463,7810,1,3,3,3,63,463,463,463,463,126,127,'VRAAAA','KOLAAA','OOOOxx' +6656,7811,0,0,6,16,56,656,656,1656,6656,112,113,'AWAAAA','LOLAAA','VVVVxx' +807,7812,1,3,7,7,7,807,807,807,807,14,15,'BFAAAA','MOLAAA','AAAAxx' +7278,7813,0,2,8,18,78,278,1278,2278,7278,156,157,'YTAAAA','NOLAAA','HHHHxx' +6237,7814,1,1,7,17,37,237,237,1237,6237,74,75,'XFAAAA','OOLAAA','OOOOxx' +7671,7815,1,3,1,11,71,671,1671,2671,7671,142,143,'BJAAAA','POLAAA','VVVVxx' +2235,7816,1,3,5,15,35,235,235,2235,2235,70,71,'ZHAAAA','QOLAAA','AAAAxx' +4042,7817,0,2,2,2,42,42,42,4042,4042,84,85,'MZAAAA','ROLAAA','HHHHxx' +5273,7818,1,1,3,13,73,273,1273,273,5273,146,147,'VUAAAA','SOLAAA','OOOOxx' +7557,7819,1,1,7,17,57,557,1557,2557,7557,114,115,'REAAAA','TOLAAA','VVVVxx' +4007,7820,1,3,7,7,7,7,7,4007,4007,14,15,'DYAAAA','UOLAAA','AAAAxx' +1428,7821,0,0,8,8,28,428,1428,1428,1428,56,57,'YCAAAA','VOLAAA','HHHHxx' +9739,7822,1,3,9,19,39,739,1739,4739,9739,78,79,'PKAAAA','WOLAAA','OOOOxx' +7836,7823,0,0,6,16,36,836,1836,2836,7836,72,73,'KPAAAA','XOLAAA','VVVVxx' +1777,7824,1,1,7,17,77,777,1777,1777,1777,154,155,'JQAAAA','YOLAAA','AAAAxx' +5192,7825,0,0,2,12,92,192,1192,192,5192,184,185,'SRAAAA','ZOLAAA','HHHHxx' +7236,7826,0,0,6,16,36,236,1236,2236,7236,72,73,'ISAAAA','APLAAA','OOOOxx' +1623,7827,1,3,3,3,23,623,1623,1623,1623,46,47,'LKAAAA','BPLAAA','VVVVxx' +8288,7828,0,0,8,8,88,288,288,3288,8288,176,177,'UGAAAA','CPLAAA','AAAAxx' +2827,7829,1,3,7,7,27,827,827,2827,2827,54,55,'TEAAAA','DPLAAA','HHHHxx' +458,7830,0,2,8,18,58,458,458,458,458,116,117,'QRAAAA','EPLAAA','OOOOxx' +1818,7831,0,2,8,18,18,818,1818,1818,1818,36,37,'YRAAAA','FPLAAA','VVVVxx' +6837,7832,1,1,7,17,37,837,837,1837,6837,74,75,'ZCAAAA','GPLAAA','AAAAxx' +7825,7833,1,1,5,5,25,825,1825,2825,7825,50,51,'ZOAAAA','HPLAAA','HHHHxx' +9146,7834,0,2,6,6,46,146,1146,4146,9146,92,93,'UNAAAA','IPLAAA','OOOOxx' +8451,7835,1,3,1,11,51,451,451,3451,8451,102,103,'BNAAAA','JPLAAA','VVVVxx' +6438,7836,0,2,8,18,38,438,438,1438,6438,76,77,'QNAAAA','KPLAAA','AAAAxx' +4020,7837,0,0,0,0,20,20,20,4020,4020,40,41,'QYAAAA','LPLAAA','HHHHxx' +4068,7838,0,0,8,8,68,68,68,4068,4068,136,137,'MAAAAA','MPLAAA','OOOOxx' +2411,7839,1,3,1,11,11,411,411,2411,2411,22,23,'TOAAAA','NPLAAA','VVVVxx' +6222,7840,0,2,2,2,22,222,222,1222,6222,44,45,'IFAAAA','OPLAAA','AAAAxx' +3164,7841,0,0,4,4,64,164,1164,3164,3164,128,129,'SRAAAA','PPLAAA','HHHHxx' +311,7842,1,3,1,11,11,311,311,311,311,22,23,'ZLAAAA','QPLAAA','OOOOxx' +5683,7843,1,3,3,3,83,683,1683,683,5683,166,167,'PKAAAA','RPLAAA','VVVVxx' +3993,7844,1,1,3,13,93,993,1993,3993,3993,186,187,'PXAAAA','SPLAAA','AAAAxx' +9897,7845,1,1,7,17,97,897,1897,4897,9897,194,195,'RQAAAA','TPLAAA','HHHHxx' +6609,7846,1,1,9,9,9,609,609,1609,6609,18,19,'FUAAAA','UPLAAA','OOOOxx' +1362,7847,0,2,2,2,62,362,1362,1362,1362,124,125,'KAAAAA','VPLAAA','VVVVxx' +3918,7848,0,2,8,18,18,918,1918,3918,3918,36,37,'SUAAAA','WPLAAA','AAAAxx' +7376,7849,0,0,6,16,76,376,1376,2376,7376,152,153,'SXAAAA','XPLAAA','HHHHxx' +6996,7850,0,0,6,16,96,996,996,1996,6996,192,193,'CJAAAA','YPLAAA','OOOOxx' +9567,7851,1,3,7,7,67,567,1567,4567,9567,134,135,'ZDAAAA','ZPLAAA','VVVVxx' +7525,7852,1,1,5,5,25,525,1525,2525,7525,50,51,'LDAAAA','AQLAAA','AAAAxx' +9069,7853,1,1,9,9,69,69,1069,4069,9069,138,139,'VKAAAA','BQLAAA','HHHHxx' +9999,7854,1,3,9,19,99,999,1999,4999,9999,198,199,'PUAAAA','CQLAAA','OOOOxx' +9237,7855,1,1,7,17,37,237,1237,4237,9237,74,75,'HRAAAA','DQLAAA','VVVVxx' +8441,7856,1,1,1,1,41,441,441,3441,8441,82,83,'RMAAAA','EQLAAA','AAAAxx' +6769,7857,1,1,9,9,69,769,769,1769,6769,138,139,'JAAAAA','FQLAAA','HHHHxx' +6073,7858,1,1,3,13,73,73,73,1073,6073,146,147,'PZAAAA','GQLAAA','OOOOxx' +1091,7859,1,3,1,11,91,91,1091,1091,1091,182,183,'ZPAAAA','HQLAAA','VVVVxx' +9886,7860,0,2,6,6,86,886,1886,4886,9886,172,173,'GQAAAA','IQLAAA','AAAAxx' +3971,7861,1,3,1,11,71,971,1971,3971,3971,142,143,'TWAAAA','JQLAAA','HHHHxx' +4621,7862,1,1,1,1,21,621,621,4621,4621,42,43,'TVAAAA','KQLAAA','OOOOxx' +3120,7863,0,0,0,0,20,120,1120,3120,3120,40,41,'AQAAAA','LQLAAA','VVVVxx' +9773,7864,1,1,3,13,73,773,1773,4773,9773,146,147,'XLAAAA','MQLAAA','AAAAxx' +8712,7865,0,0,2,12,12,712,712,3712,8712,24,25,'CXAAAA','NQLAAA','HHHHxx' +801,7866,1,1,1,1,1,801,801,801,801,2,3,'VEAAAA','OQLAAA','OOOOxx' +9478,7867,0,2,8,18,78,478,1478,4478,9478,156,157,'OAAAAA','PQLAAA','VVVVxx' +3466,7868,0,2,6,6,66,466,1466,3466,3466,132,133,'IDAAAA','QQLAAA','AAAAxx' +6326,7869,0,2,6,6,26,326,326,1326,6326,52,53,'IJAAAA','RQLAAA','HHHHxx' +1723,7870,1,3,3,3,23,723,1723,1723,1723,46,47,'HOAAAA','SQLAAA','OOOOxx' +4978,7871,0,2,8,18,78,978,978,4978,4978,156,157,'MJAAAA','TQLAAA','VVVVxx' +2311,7872,1,3,1,11,11,311,311,2311,2311,22,23,'XKAAAA','UQLAAA','AAAAxx' +9532,7873,0,0,2,12,32,532,1532,4532,9532,64,65,'QCAAAA','VQLAAA','HHHHxx' +3680,7874,0,0,0,0,80,680,1680,3680,3680,160,161,'OLAAAA','WQLAAA','OOOOxx' +1244,7875,0,0,4,4,44,244,1244,1244,1244,88,89,'WVAAAA','XQLAAA','VVVVxx' +3821,7876,1,1,1,1,21,821,1821,3821,3821,42,43,'ZQAAAA','YQLAAA','AAAAxx' +9586,7877,0,2,6,6,86,586,1586,4586,9586,172,173,'SEAAAA','ZQLAAA','HHHHxx' +3894,7878,0,2,4,14,94,894,1894,3894,3894,188,189,'UTAAAA','ARLAAA','OOOOxx' +6169,7879,1,1,9,9,69,169,169,1169,6169,138,139,'HDAAAA','BRLAAA','VVVVxx' +5919,7880,1,3,9,19,19,919,1919,919,5919,38,39,'RTAAAA','CRLAAA','AAAAxx' +4187,7881,1,3,7,7,87,187,187,4187,4187,174,175,'BFAAAA','DRLAAA','HHHHxx' +5477,7882,1,1,7,17,77,477,1477,477,5477,154,155,'RCAAAA','ERLAAA','OOOOxx' +2806,7883,0,2,6,6,6,806,806,2806,2806,12,13,'YDAAAA','FRLAAA','VVVVxx' +8158,7884,0,2,8,18,58,158,158,3158,8158,116,117,'UBAAAA','GRLAAA','AAAAxx' +7130,7885,0,2,0,10,30,130,1130,2130,7130,60,61,'GOAAAA','HRLAAA','HHHHxx' +7133,7886,1,1,3,13,33,133,1133,2133,7133,66,67,'JOAAAA','IRLAAA','OOOOxx' +6033,7887,1,1,3,13,33,33,33,1033,6033,66,67,'BYAAAA','JRLAAA','VVVVxx' +2415,7888,1,3,5,15,15,415,415,2415,2415,30,31,'XOAAAA','KRLAAA','AAAAxx' +8091,7889,1,3,1,11,91,91,91,3091,8091,182,183,'FZAAAA','LRLAAA','HHHHxx' +8347,7890,1,3,7,7,47,347,347,3347,8347,94,95,'BJAAAA','MRLAAA','OOOOxx' +7879,7891,1,3,9,19,79,879,1879,2879,7879,158,159,'BRAAAA','NRLAAA','VVVVxx' +9360,7892,0,0,0,0,60,360,1360,4360,9360,120,121,'AWAAAA','ORLAAA','AAAAxx' +3369,7893,1,1,9,9,69,369,1369,3369,3369,138,139,'PZAAAA','PRLAAA','HHHHxx' +8536,7894,0,0,6,16,36,536,536,3536,8536,72,73,'IQAAAA','QRLAAA','OOOOxx' +8628,7895,0,0,8,8,28,628,628,3628,8628,56,57,'WTAAAA','RRLAAA','VVVVxx' +1580,7896,0,0,0,0,80,580,1580,1580,1580,160,161,'UIAAAA','SRLAAA','AAAAxx' +705,7897,1,1,5,5,5,705,705,705,705,10,11,'DBAAAA','TRLAAA','HHHHxx' +4650,7898,0,2,0,10,50,650,650,4650,4650,100,101,'WWAAAA','URLAAA','OOOOxx' +9165,7899,1,1,5,5,65,165,1165,4165,9165,130,131,'NOAAAA','VRLAAA','VVVVxx' +4820,7900,0,0,0,0,20,820,820,4820,4820,40,41,'KDAAAA','WRLAAA','AAAAxx' +3538,7901,0,2,8,18,38,538,1538,3538,3538,76,77,'CGAAAA','XRLAAA','HHHHxx' +9947,7902,1,3,7,7,47,947,1947,4947,9947,94,95,'PSAAAA','YRLAAA','OOOOxx' +4954,7903,0,2,4,14,54,954,954,4954,4954,108,109,'OIAAAA','ZRLAAA','VVVVxx' +1104,7904,0,0,4,4,4,104,1104,1104,1104,8,9,'MQAAAA','ASLAAA','AAAAxx' +8455,7905,1,3,5,15,55,455,455,3455,8455,110,111,'FNAAAA','BSLAAA','HHHHxx' +8307,7906,1,3,7,7,7,307,307,3307,8307,14,15,'NHAAAA','CSLAAA','OOOOxx' +9203,7907,1,3,3,3,3,203,1203,4203,9203,6,7,'ZPAAAA','DSLAAA','VVVVxx' +7565,7908,1,1,5,5,65,565,1565,2565,7565,130,131,'ZEAAAA','ESLAAA','AAAAxx' +7745,7909,1,1,5,5,45,745,1745,2745,7745,90,91,'XLAAAA','FSLAAA','HHHHxx' +1787,7910,1,3,7,7,87,787,1787,1787,1787,174,175,'TQAAAA','GSLAAA','OOOOxx' +4861,7911,1,1,1,1,61,861,861,4861,4861,122,123,'ZEAAAA','HSLAAA','VVVVxx' +5183,7912,1,3,3,3,83,183,1183,183,5183,166,167,'JRAAAA','ISLAAA','AAAAxx' +529,7913,1,1,9,9,29,529,529,529,529,58,59,'JUAAAA','JSLAAA','HHHHxx' +2470,7914,0,2,0,10,70,470,470,2470,2470,140,141,'ARAAAA','KSLAAA','OOOOxx' +1267,7915,1,3,7,7,67,267,1267,1267,1267,134,135,'TWAAAA','LSLAAA','VVVVxx' +2059,7916,1,3,9,19,59,59,59,2059,2059,118,119,'FBAAAA','MSLAAA','AAAAxx' +1862,7917,0,2,2,2,62,862,1862,1862,1862,124,125,'QTAAAA','NSLAAA','HHHHxx' +7382,7918,0,2,2,2,82,382,1382,2382,7382,164,165,'YXAAAA','OSLAAA','OOOOxx' +4796,7919,0,0,6,16,96,796,796,4796,4796,192,193,'MCAAAA','PSLAAA','VVVVxx' +2331,7920,1,3,1,11,31,331,331,2331,2331,62,63,'RLAAAA','QSLAAA','AAAAxx' +8870,7921,0,2,0,10,70,870,870,3870,8870,140,141,'EDAAAA','RSLAAA','HHHHxx' +9581,7922,1,1,1,1,81,581,1581,4581,9581,162,163,'NEAAAA','SSLAAA','OOOOxx' +9063,7923,1,3,3,3,63,63,1063,4063,9063,126,127,'PKAAAA','TSLAAA','VVVVxx' +2192,7924,0,0,2,12,92,192,192,2192,2192,184,185,'IGAAAA','USLAAA','AAAAxx' +6466,7925,0,2,6,6,66,466,466,1466,6466,132,133,'SOAAAA','VSLAAA','HHHHxx' +7096,7926,0,0,6,16,96,96,1096,2096,7096,192,193,'YMAAAA','WSLAAA','OOOOxx' +6257,7927,1,1,7,17,57,257,257,1257,6257,114,115,'RGAAAA','XSLAAA','VVVVxx' +7009,7928,1,1,9,9,9,9,1009,2009,7009,18,19,'PJAAAA','YSLAAA','AAAAxx' +8136,7929,0,0,6,16,36,136,136,3136,8136,72,73,'YAAAAA','ZSLAAA','HHHHxx' +1854,7930,0,2,4,14,54,854,1854,1854,1854,108,109,'ITAAAA','ATLAAA','OOOOxx' +3644,7931,0,0,4,4,44,644,1644,3644,3644,88,89,'EKAAAA','BTLAAA','VVVVxx' +4437,7932,1,1,7,17,37,437,437,4437,4437,74,75,'ROAAAA','CTLAAA','AAAAxx' +7209,7933,1,1,9,9,9,209,1209,2209,7209,18,19,'HRAAAA','DTLAAA','HHHHxx' +1516,7934,0,0,6,16,16,516,1516,1516,1516,32,33,'IGAAAA','ETLAAA','OOOOxx' +822,7935,0,2,2,2,22,822,822,822,822,44,45,'QFAAAA','FTLAAA','VVVVxx' +1778,7936,0,2,8,18,78,778,1778,1778,1778,156,157,'KQAAAA','GTLAAA','AAAAxx' +8161,7937,1,1,1,1,61,161,161,3161,8161,122,123,'XBAAAA','HTLAAA','HHHHxx' +6030,7938,0,2,0,10,30,30,30,1030,6030,60,61,'YXAAAA','ITLAAA','OOOOxx' +3515,7939,1,3,5,15,15,515,1515,3515,3515,30,31,'FFAAAA','JTLAAA','VVVVxx' +1702,7940,0,2,2,2,2,702,1702,1702,1702,4,5,'MNAAAA','KTLAAA','AAAAxx' +2671,7941,1,3,1,11,71,671,671,2671,2671,142,143,'TYAAAA','LTLAAA','HHHHxx' +7623,7942,1,3,3,3,23,623,1623,2623,7623,46,47,'FHAAAA','MTLAAA','OOOOxx' +9828,7943,0,0,8,8,28,828,1828,4828,9828,56,57,'AOAAAA','NTLAAA','VVVVxx' +1888,7944,0,0,8,8,88,888,1888,1888,1888,176,177,'QUAAAA','OTLAAA','AAAAxx' +4520,7945,0,0,0,0,20,520,520,4520,4520,40,41,'WRAAAA','PTLAAA','HHHHxx' +3461,7946,1,1,1,1,61,461,1461,3461,3461,122,123,'DDAAAA','QTLAAA','OOOOxx' +1488,7947,0,0,8,8,88,488,1488,1488,1488,176,177,'GFAAAA','RTLAAA','VVVVxx' +7753,7948,1,1,3,13,53,753,1753,2753,7753,106,107,'FMAAAA','STLAAA','AAAAxx' +5525,7949,1,1,5,5,25,525,1525,525,5525,50,51,'NEAAAA','TTLAAA','HHHHxx' +5220,7950,0,0,0,0,20,220,1220,220,5220,40,41,'USAAAA','UTLAAA','OOOOxx' +305,7951,1,1,5,5,5,305,305,305,305,10,11,'TLAAAA','VTLAAA','VVVVxx' +7883,7952,1,3,3,3,83,883,1883,2883,7883,166,167,'FRAAAA','WTLAAA','AAAAxx' +1222,7953,0,2,2,2,22,222,1222,1222,1222,44,45,'AVAAAA','XTLAAA','HHHHxx' +8552,7954,0,0,2,12,52,552,552,3552,8552,104,105,'YQAAAA','YTLAAA','OOOOxx' +6097,7955,1,1,7,17,97,97,97,1097,6097,194,195,'NAAAAA','ZTLAAA','VVVVxx' +2298,7956,0,2,8,18,98,298,298,2298,2298,196,197,'KKAAAA','AULAAA','AAAAxx' +956,7957,0,0,6,16,56,956,956,956,956,112,113,'UKAAAA','BULAAA','HHHHxx' +9351,7958,1,3,1,11,51,351,1351,4351,9351,102,103,'RVAAAA','CULAAA','OOOOxx' +6669,7959,1,1,9,9,69,669,669,1669,6669,138,139,'NWAAAA','DULAAA','VVVVxx' +9383,7960,1,3,3,3,83,383,1383,4383,9383,166,167,'XWAAAA','EULAAA','AAAAxx' +1607,7961,1,3,7,7,7,607,1607,1607,1607,14,15,'VJAAAA','FULAAA','HHHHxx' +812,7962,0,0,2,12,12,812,812,812,812,24,25,'GFAAAA','GULAAA','OOOOxx' +2109,7963,1,1,9,9,9,109,109,2109,2109,18,19,'DDAAAA','HULAAA','VVVVxx' +207,7964,1,3,7,7,7,207,207,207,207,14,15,'ZHAAAA','IULAAA','AAAAxx' +7124,7965,0,0,4,4,24,124,1124,2124,7124,48,49,'AOAAAA','JULAAA','HHHHxx' +9333,7966,1,1,3,13,33,333,1333,4333,9333,66,67,'ZUAAAA','KULAAA','OOOOxx' +3262,7967,0,2,2,2,62,262,1262,3262,3262,124,125,'MVAAAA','LULAAA','VVVVxx' +1070,7968,0,2,0,10,70,70,1070,1070,1070,140,141,'EPAAAA','MULAAA','AAAAxx' +7579,7969,1,3,9,19,79,579,1579,2579,7579,158,159,'NFAAAA','NULAAA','HHHHxx' +9283,7970,1,3,3,3,83,283,1283,4283,9283,166,167,'BTAAAA','OULAAA','OOOOxx' +4917,7971,1,1,7,17,17,917,917,4917,4917,34,35,'DHAAAA','PULAAA','VVVVxx' +1328,7972,0,0,8,8,28,328,1328,1328,1328,56,57,'CZAAAA','QULAAA','AAAAxx' +3042,7973,0,2,2,2,42,42,1042,3042,3042,84,85,'ANAAAA','RULAAA','HHHHxx' +8352,7974,0,0,2,12,52,352,352,3352,8352,104,105,'GJAAAA','SULAAA','OOOOxx' +2710,7975,0,2,0,10,10,710,710,2710,2710,20,21,'GAAAAA','TULAAA','VVVVxx' +3330,7976,0,2,0,10,30,330,1330,3330,3330,60,61,'CYAAAA','UULAAA','AAAAxx' +2822,7977,0,2,2,2,22,822,822,2822,2822,44,45,'OEAAAA','VULAAA','HHHHxx' +5627,7978,1,3,7,7,27,627,1627,627,5627,54,55,'LIAAAA','WULAAA','OOOOxx' +7848,7979,0,0,8,8,48,848,1848,2848,7848,96,97,'WPAAAA','XULAAA','VVVVxx' +7384,7980,0,0,4,4,84,384,1384,2384,7384,168,169,'AYAAAA','YULAAA','AAAAxx' +727,7981,1,3,7,7,27,727,727,727,727,54,55,'ZBAAAA','ZULAAA','HHHHxx' +9926,7982,0,2,6,6,26,926,1926,4926,9926,52,53,'URAAAA','AVLAAA','OOOOxx' +2647,7983,1,3,7,7,47,647,647,2647,2647,94,95,'VXAAAA','BVLAAA','VVVVxx' +6416,7984,0,0,6,16,16,416,416,1416,6416,32,33,'UMAAAA','CVLAAA','AAAAxx' +8751,7985,1,3,1,11,51,751,751,3751,8751,102,103,'PYAAAA','DVLAAA','HHHHxx' +6515,7986,1,3,5,15,15,515,515,1515,6515,30,31,'PQAAAA','EVLAAA','OOOOxx' +2472,7987,0,0,2,12,72,472,472,2472,2472,144,145,'CRAAAA','FVLAAA','VVVVxx' +7205,7988,1,1,5,5,5,205,1205,2205,7205,10,11,'DRAAAA','GVLAAA','AAAAxx' +9654,7989,0,2,4,14,54,654,1654,4654,9654,108,109,'IHAAAA','HVLAAA','HHHHxx' +5646,7990,0,2,6,6,46,646,1646,646,5646,92,93,'EJAAAA','IVLAAA','OOOOxx' +4217,7991,1,1,7,17,17,217,217,4217,4217,34,35,'FGAAAA','JVLAAA','VVVVxx' +4484,7992,0,0,4,4,84,484,484,4484,4484,168,169,'MQAAAA','KVLAAA','AAAAxx' +6654,7993,0,2,4,14,54,654,654,1654,6654,108,109,'YVAAAA','LVLAAA','HHHHxx' +4876,7994,0,0,6,16,76,876,876,4876,4876,152,153,'OFAAAA','MVLAAA','OOOOxx' +9690,7995,0,2,0,10,90,690,1690,4690,9690,180,181,'SIAAAA','NVLAAA','VVVVxx' +2453,7996,1,1,3,13,53,453,453,2453,2453,106,107,'JQAAAA','OVLAAA','AAAAxx' +829,7997,1,1,9,9,29,829,829,829,829,58,59,'XFAAAA','PVLAAA','HHHHxx' +2547,7998,1,3,7,7,47,547,547,2547,2547,94,95,'ZTAAAA','QVLAAA','OOOOxx' +9726,7999,0,2,6,6,26,726,1726,4726,9726,52,53,'CKAAAA','RVLAAA','VVVVxx' +9267,8000,1,3,7,7,67,267,1267,4267,9267,134,135,'LSAAAA','SVLAAA','AAAAxx' +7448,8001,0,0,8,8,48,448,1448,2448,7448,96,97,'MAAAAA','TVLAAA','HHHHxx' +610,8002,0,2,0,10,10,610,610,610,610,20,21,'MXAAAA','UVLAAA','OOOOxx' +2791,8003,1,3,1,11,91,791,791,2791,2791,182,183,'JDAAAA','VVLAAA','VVVVxx' +3651,8004,1,3,1,11,51,651,1651,3651,3651,102,103,'LKAAAA','WVLAAA','AAAAxx' +5206,8005,0,2,6,6,6,206,1206,206,5206,12,13,'GSAAAA','XVLAAA','HHHHxx' +8774,8006,0,2,4,14,74,774,774,3774,8774,148,149,'MZAAAA','YVLAAA','OOOOxx' +4753,8007,1,1,3,13,53,753,753,4753,4753,106,107,'VAAAAA','ZVLAAA','VVVVxx' +4755,8008,1,3,5,15,55,755,755,4755,4755,110,111,'XAAAAA','AWLAAA','AAAAxx' +686,8009,0,2,6,6,86,686,686,686,686,172,173,'KAAAAA','BWLAAA','HHHHxx' +8281,8010,1,1,1,1,81,281,281,3281,8281,162,163,'NGAAAA','CWLAAA','OOOOxx' +2058,8011,0,2,8,18,58,58,58,2058,2058,116,117,'EBAAAA','DWLAAA','VVVVxx' +8900,8012,0,0,0,0,0,900,900,3900,8900,0,1,'IEAAAA','EWLAAA','AAAAxx' +8588,8013,0,0,8,8,88,588,588,3588,8588,176,177,'ISAAAA','FWLAAA','HHHHxx' +2904,8014,0,0,4,4,4,904,904,2904,2904,8,9,'SHAAAA','GWLAAA','OOOOxx' +8917,8015,1,1,7,17,17,917,917,3917,8917,34,35,'ZEAAAA','HWLAAA','VVVVxx' +9026,8016,0,2,6,6,26,26,1026,4026,9026,52,53,'EJAAAA','IWLAAA','AAAAxx' +2416,8017,0,0,6,16,16,416,416,2416,2416,32,33,'YOAAAA','JWLAAA','HHHHxx' +1053,8018,1,1,3,13,53,53,1053,1053,1053,106,107,'NOAAAA','KWLAAA','OOOOxx' +7141,8019,1,1,1,1,41,141,1141,2141,7141,82,83,'ROAAAA','LWLAAA','VVVVxx' +9771,8020,1,3,1,11,71,771,1771,4771,9771,142,143,'VLAAAA','MWLAAA','AAAAxx' +2774,8021,0,2,4,14,74,774,774,2774,2774,148,149,'SCAAAA','NWLAAA','HHHHxx' +3213,8022,1,1,3,13,13,213,1213,3213,3213,26,27,'PTAAAA','OWLAAA','OOOOxx' +5694,8023,0,2,4,14,94,694,1694,694,5694,188,189,'ALAAAA','PWLAAA','VVVVxx' +6631,8024,1,3,1,11,31,631,631,1631,6631,62,63,'BVAAAA','QWLAAA','AAAAxx' +6638,8025,0,2,8,18,38,638,638,1638,6638,76,77,'IVAAAA','RWLAAA','HHHHxx' +7407,8026,1,3,7,7,7,407,1407,2407,7407,14,15,'XYAAAA','SWLAAA','OOOOxx' +8972,8027,0,0,2,12,72,972,972,3972,8972,144,145,'CHAAAA','TWLAAA','VVVVxx' +2202,8028,0,2,2,2,2,202,202,2202,2202,4,5,'SGAAAA','UWLAAA','AAAAxx' +6135,8029,1,3,5,15,35,135,135,1135,6135,70,71,'ZBAAAA','VWLAAA','HHHHxx' +5043,8030,1,3,3,3,43,43,1043,43,5043,86,87,'ZLAAAA','WWLAAA','OOOOxx' +5163,8031,1,3,3,3,63,163,1163,163,5163,126,127,'PQAAAA','XWLAAA','VVVVxx' +1191,8032,1,3,1,11,91,191,1191,1191,1191,182,183,'VTAAAA','YWLAAA','AAAAxx' +6576,8033,0,0,6,16,76,576,576,1576,6576,152,153,'YSAAAA','ZWLAAA','HHHHxx' +3455,8034,1,3,5,15,55,455,1455,3455,3455,110,111,'XCAAAA','AXLAAA','OOOOxx' +3688,8035,0,0,8,8,88,688,1688,3688,3688,176,177,'WLAAAA','BXLAAA','VVVVxx' +4982,8036,0,2,2,2,82,982,982,4982,4982,164,165,'QJAAAA','CXLAAA','AAAAxx' +4180,8037,0,0,0,0,80,180,180,4180,4180,160,161,'UEAAAA','DXLAAA','HHHHxx' +4708,8038,0,0,8,8,8,708,708,4708,4708,16,17,'CZAAAA','EXLAAA','OOOOxx' +1241,8039,1,1,1,1,41,241,1241,1241,1241,82,83,'TVAAAA','FXLAAA','VVVVxx' +4921,8040,1,1,1,1,21,921,921,4921,4921,42,43,'HHAAAA','GXLAAA','AAAAxx' +3197,8041,1,1,7,17,97,197,1197,3197,3197,194,195,'ZSAAAA','HXLAAA','HHHHxx' +8225,8042,1,1,5,5,25,225,225,3225,8225,50,51,'JEAAAA','IXLAAA','OOOOxx' +5913,8043,1,1,3,13,13,913,1913,913,5913,26,27,'LTAAAA','JXLAAA','VVVVxx' +6387,8044,1,3,7,7,87,387,387,1387,6387,174,175,'RLAAAA','KXLAAA','AAAAxx' +2706,8045,0,2,6,6,6,706,706,2706,2706,12,13,'CAAAAA','LXLAAA','HHHHxx' +1461,8046,1,1,1,1,61,461,1461,1461,1461,122,123,'FEAAAA','MXLAAA','OOOOxx' +7646,8047,0,2,6,6,46,646,1646,2646,7646,92,93,'CIAAAA','NXLAAA','VVVVxx' +8066,8048,0,2,6,6,66,66,66,3066,8066,132,133,'GYAAAA','OXLAAA','AAAAxx' +4171,8049,1,3,1,11,71,171,171,4171,4171,142,143,'LEAAAA','PXLAAA','HHHHxx' +8008,8050,0,0,8,8,8,8,8,3008,8008,16,17,'AWAAAA','QXLAAA','OOOOxx' +2088,8051,0,0,8,8,88,88,88,2088,2088,176,177,'ICAAAA','RXLAAA','VVVVxx' +7907,8052,1,3,7,7,7,907,1907,2907,7907,14,15,'DSAAAA','SXLAAA','AAAAxx' +2429,8053,1,1,9,9,29,429,429,2429,2429,58,59,'LPAAAA','TXLAAA','HHHHxx' +9629,8054,1,1,9,9,29,629,1629,4629,9629,58,59,'JGAAAA','UXLAAA','OOOOxx' +1470,8055,0,2,0,10,70,470,1470,1470,1470,140,141,'OEAAAA','VXLAAA','VVVVxx' +4346,8056,0,2,6,6,46,346,346,4346,4346,92,93,'ELAAAA','WXLAAA','AAAAxx' +7219,8057,1,3,9,19,19,219,1219,2219,7219,38,39,'RRAAAA','XXLAAA','HHHHxx' +1185,8058,1,1,5,5,85,185,1185,1185,1185,170,171,'PTAAAA','YXLAAA','OOOOxx' +8776,8059,0,0,6,16,76,776,776,3776,8776,152,153,'OZAAAA','ZXLAAA','VVVVxx' +684,8060,0,0,4,4,84,684,684,684,684,168,169,'IAAAAA','AYLAAA','AAAAxx' +2343,8061,1,3,3,3,43,343,343,2343,2343,86,87,'DMAAAA','BYLAAA','HHHHxx' +4470,8062,0,2,0,10,70,470,470,4470,4470,140,141,'YPAAAA','CYLAAA','OOOOxx' +5116,8063,0,0,6,16,16,116,1116,116,5116,32,33,'UOAAAA','DYLAAA','VVVVxx' +1746,8064,0,2,6,6,46,746,1746,1746,1746,92,93,'EPAAAA','EYLAAA','AAAAxx' +3216,8065,0,0,6,16,16,216,1216,3216,3216,32,33,'STAAAA','FYLAAA','HHHHxx' +4594,8066,0,2,4,14,94,594,594,4594,4594,188,189,'SUAAAA','GYLAAA','OOOOxx' +3013,8067,1,1,3,13,13,13,1013,3013,3013,26,27,'XLAAAA','HYLAAA','VVVVxx' +2307,8068,1,3,7,7,7,307,307,2307,2307,14,15,'TKAAAA','IYLAAA','AAAAxx' +7663,8069,1,3,3,3,63,663,1663,2663,7663,126,127,'TIAAAA','JYLAAA','HHHHxx' +8504,8070,0,0,4,4,4,504,504,3504,8504,8,9,'CPAAAA','KYLAAA','OOOOxx' +3683,8071,1,3,3,3,83,683,1683,3683,3683,166,167,'RLAAAA','LYLAAA','VVVVxx' +144,8072,0,0,4,4,44,144,144,144,144,88,89,'OFAAAA','MYLAAA','AAAAxx' +203,8073,1,3,3,3,3,203,203,203,203,6,7,'VHAAAA','NYLAAA','HHHHxx' +5255,8074,1,3,5,15,55,255,1255,255,5255,110,111,'DUAAAA','OYLAAA','OOOOxx' +4150,8075,0,2,0,10,50,150,150,4150,4150,100,101,'QDAAAA','PYLAAA','VVVVxx' +5701,8076,1,1,1,1,1,701,1701,701,5701,2,3,'HLAAAA','QYLAAA','AAAAxx' +7400,8077,0,0,0,0,0,400,1400,2400,7400,0,1,'QYAAAA','RYLAAA','HHHHxx' +8203,8078,1,3,3,3,3,203,203,3203,8203,6,7,'NDAAAA','SYLAAA','OOOOxx' +637,8079,1,1,7,17,37,637,637,637,637,74,75,'NYAAAA','TYLAAA','VVVVxx' +2898,8080,0,2,8,18,98,898,898,2898,2898,196,197,'MHAAAA','UYLAAA','AAAAxx' +1110,8081,0,2,0,10,10,110,1110,1110,1110,20,21,'SQAAAA','VYLAAA','HHHHxx' +6255,8082,1,3,5,15,55,255,255,1255,6255,110,111,'PGAAAA','WYLAAA','OOOOxx' +1071,8083,1,3,1,11,71,71,1071,1071,1071,142,143,'FPAAAA','XYLAAA','VVVVxx' +541,8084,1,1,1,1,41,541,541,541,541,82,83,'VUAAAA','YYLAAA','AAAAxx' +8077,8085,1,1,7,17,77,77,77,3077,8077,154,155,'RYAAAA','ZYLAAA','HHHHxx' +6809,8086,1,1,9,9,9,809,809,1809,6809,18,19,'XBAAAA','AZLAAA','OOOOxx' +4749,8087,1,1,9,9,49,749,749,4749,4749,98,99,'RAAAAA','BZLAAA','VVVVxx' +2886,8088,0,2,6,6,86,886,886,2886,2886,172,173,'AHAAAA','CZLAAA','AAAAxx' +5510,8089,0,2,0,10,10,510,1510,510,5510,20,21,'YDAAAA','DZLAAA','HHHHxx' +713,8090,1,1,3,13,13,713,713,713,713,26,27,'LBAAAA','EZLAAA','OOOOxx' +8388,8091,0,0,8,8,88,388,388,3388,8388,176,177,'QKAAAA','FZLAAA','VVVVxx' +9524,8092,0,0,4,4,24,524,1524,4524,9524,48,49,'ICAAAA','GZLAAA','AAAAxx' +9949,8093,1,1,9,9,49,949,1949,4949,9949,98,99,'RSAAAA','HZLAAA','HHHHxx' +885,8094,1,1,5,5,85,885,885,885,885,170,171,'BIAAAA','IZLAAA','OOOOxx' +8699,8095,1,3,9,19,99,699,699,3699,8699,198,199,'PWAAAA','JZLAAA','VVVVxx' +2232,8096,0,0,2,12,32,232,232,2232,2232,64,65,'WHAAAA','KZLAAA','AAAAxx' +5142,8097,0,2,2,2,42,142,1142,142,5142,84,85,'UPAAAA','LZLAAA','HHHHxx' +8891,8098,1,3,1,11,91,891,891,3891,8891,182,183,'ZDAAAA','MZLAAA','OOOOxx' +1881,8099,1,1,1,1,81,881,1881,1881,1881,162,163,'JUAAAA','NZLAAA','VVVVxx' +3751,8100,1,3,1,11,51,751,1751,3751,3751,102,103,'HOAAAA','OZLAAA','AAAAxx' +1896,8101,0,0,6,16,96,896,1896,1896,1896,192,193,'YUAAAA','PZLAAA','HHHHxx' +8258,8102,0,2,8,18,58,258,258,3258,8258,116,117,'QFAAAA','QZLAAA','OOOOxx' +3820,8103,0,0,0,0,20,820,1820,3820,3820,40,41,'YQAAAA','RZLAAA','VVVVxx' +6617,8104,1,1,7,17,17,617,617,1617,6617,34,35,'NUAAAA','SZLAAA','AAAAxx' +5100,8105,0,0,0,0,0,100,1100,100,5100,0,1,'EOAAAA','TZLAAA','HHHHxx' +4277,8106,1,1,7,17,77,277,277,4277,4277,154,155,'NIAAAA','UZLAAA','OOOOxx' +2498,8107,0,2,8,18,98,498,498,2498,2498,196,197,'CSAAAA','VZLAAA','VVVVxx' +4343,8108,1,3,3,3,43,343,343,4343,4343,86,87,'BLAAAA','WZLAAA','AAAAxx' +8319,8109,1,3,9,19,19,319,319,3319,8319,38,39,'ZHAAAA','XZLAAA','HHHHxx' +4803,8110,1,3,3,3,3,803,803,4803,4803,6,7,'TCAAAA','YZLAAA','OOOOxx' +3100,8111,0,0,0,0,0,100,1100,3100,3100,0,1,'GPAAAA','ZZLAAA','VVVVxx' +428,8112,0,0,8,8,28,428,428,428,428,56,57,'MQAAAA','AAMAAA','AAAAxx' +2811,8113,1,3,1,11,11,811,811,2811,2811,22,23,'DEAAAA','BAMAAA','HHHHxx' +2989,8114,1,1,9,9,89,989,989,2989,2989,178,179,'ZKAAAA','CAMAAA','OOOOxx' +1100,8115,0,0,0,0,0,100,1100,1100,1100,0,1,'IQAAAA','DAMAAA','VVVVxx' +6586,8116,0,2,6,6,86,586,586,1586,6586,172,173,'ITAAAA','EAMAAA','AAAAxx' +3124,8117,0,0,4,4,24,124,1124,3124,3124,48,49,'EQAAAA','FAMAAA','HHHHxx' +1635,8118,1,3,5,15,35,635,1635,1635,1635,70,71,'XKAAAA','GAMAAA','OOOOxx' +3888,8119,0,0,8,8,88,888,1888,3888,3888,176,177,'OTAAAA','HAMAAA','VVVVxx' +8369,8120,1,1,9,9,69,369,369,3369,8369,138,139,'XJAAAA','IAMAAA','AAAAxx' +3148,8121,0,0,8,8,48,148,1148,3148,3148,96,97,'CRAAAA','JAMAAA','HHHHxx' +2842,8122,0,2,2,2,42,842,842,2842,2842,84,85,'IFAAAA','KAMAAA','OOOOxx' +4965,8123,1,1,5,5,65,965,965,4965,4965,130,131,'ZIAAAA','LAMAAA','VVVVxx' +3742,8124,0,2,2,2,42,742,1742,3742,3742,84,85,'YNAAAA','MAMAAA','AAAAxx' +5196,8125,0,0,6,16,96,196,1196,196,5196,192,193,'WRAAAA','NAMAAA','HHHHxx' +9105,8126,1,1,5,5,5,105,1105,4105,9105,10,11,'FMAAAA','OAMAAA','OOOOxx' +6806,8127,0,2,6,6,6,806,806,1806,6806,12,13,'UBAAAA','PAMAAA','VVVVxx' +5849,8128,1,1,9,9,49,849,1849,849,5849,98,99,'ZQAAAA','QAMAAA','AAAAxx' +6504,8129,0,0,4,4,4,504,504,1504,6504,8,9,'EQAAAA','RAMAAA','HHHHxx' +9841,8130,1,1,1,1,41,841,1841,4841,9841,82,83,'NOAAAA','SAMAAA','OOOOxx' +457,8131,1,1,7,17,57,457,457,457,457,114,115,'PRAAAA','TAMAAA','VVVVxx' +8856,8132,0,0,6,16,56,856,856,3856,8856,112,113,'QCAAAA','UAMAAA','AAAAxx' +8043,8133,1,3,3,3,43,43,43,3043,8043,86,87,'JXAAAA','VAMAAA','HHHHxx' +5933,8134,1,1,3,13,33,933,1933,933,5933,66,67,'FUAAAA','WAMAAA','OOOOxx' +5725,8135,1,1,5,5,25,725,1725,725,5725,50,51,'FMAAAA','XAMAAA','VVVVxx' +8607,8136,1,3,7,7,7,607,607,3607,8607,14,15,'BTAAAA','YAMAAA','AAAAxx' +9280,8137,0,0,0,0,80,280,1280,4280,9280,160,161,'YSAAAA','ZAMAAA','HHHHxx' +6017,8138,1,1,7,17,17,17,17,1017,6017,34,35,'LXAAAA','ABMAAA','OOOOxx' +4946,8139,0,2,6,6,46,946,946,4946,4946,92,93,'GIAAAA','BBMAAA','VVVVxx' +7373,8140,1,1,3,13,73,373,1373,2373,7373,146,147,'PXAAAA','CBMAAA','AAAAxx' +8096,8141,0,0,6,16,96,96,96,3096,8096,192,193,'KZAAAA','DBMAAA','HHHHxx' +3178,8142,0,2,8,18,78,178,1178,3178,3178,156,157,'GSAAAA','EBMAAA','OOOOxx' +1849,8143,1,1,9,9,49,849,1849,1849,1849,98,99,'DTAAAA','FBMAAA','VVVVxx' +8813,8144,1,1,3,13,13,813,813,3813,8813,26,27,'ZAAAAA','GBMAAA','AAAAxx' +460,8145,0,0,0,0,60,460,460,460,460,120,121,'SRAAAA','HBMAAA','HHHHxx' +7756,8146,0,0,6,16,56,756,1756,2756,7756,112,113,'IMAAAA','IBMAAA','OOOOxx' +4425,8147,1,1,5,5,25,425,425,4425,4425,50,51,'FOAAAA','JBMAAA','VVVVxx' +1602,8148,0,2,2,2,2,602,1602,1602,1602,4,5,'QJAAAA','KBMAAA','AAAAxx' +5981,8149,1,1,1,1,81,981,1981,981,5981,162,163,'BWAAAA','LBMAAA','HHHHxx' +8139,8150,1,3,9,19,39,139,139,3139,8139,78,79,'BBAAAA','MBMAAA','OOOOxx' +754,8151,0,2,4,14,54,754,754,754,754,108,109,'ADAAAA','NBMAAA','VVVVxx' +26,8152,0,2,6,6,26,26,26,26,26,52,53,'ABAAAA','OBMAAA','AAAAxx' +106,8153,0,2,6,6,6,106,106,106,106,12,13,'CEAAAA','PBMAAA','HHHHxx' +7465,8154,1,1,5,5,65,465,1465,2465,7465,130,131,'DBAAAA','QBMAAA','OOOOxx' +1048,8155,0,0,8,8,48,48,1048,1048,1048,96,97,'IOAAAA','RBMAAA','VVVVxx' +2303,8156,1,3,3,3,3,303,303,2303,2303,6,7,'PKAAAA','SBMAAA','AAAAxx' +5794,8157,0,2,4,14,94,794,1794,794,5794,188,189,'WOAAAA','TBMAAA','HHHHxx' +3321,8158,1,1,1,1,21,321,1321,3321,3321,42,43,'TXAAAA','UBMAAA','OOOOxx' +6122,8159,0,2,2,2,22,122,122,1122,6122,44,45,'MBAAAA','VBMAAA','VVVVxx' +6474,8160,0,2,4,14,74,474,474,1474,6474,148,149,'APAAAA','WBMAAA','AAAAxx' +827,8161,1,3,7,7,27,827,827,827,827,54,55,'VFAAAA','XBMAAA','HHHHxx' +6616,8162,0,0,6,16,16,616,616,1616,6616,32,33,'MUAAAA','YBMAAA','OOOOxx' +2131,8163,1,3,1,11,31,131,131,2131,2131,62,63,'ZDAAAA','ZBMAAA','VVVVxx' +5483,8164,1,3,3,3,83,483,1483,483,5483,166,167,'XCAAAA','ACMAAA','AAAAxx' +606,8165,0,2,6,6,6,606,606,606,606,12,13,'IXAAAA','BCMAAA','HHHHxx' +922,8166,0,2,2,2,22,922,922,922,922,44,45,'MJAAAA','CCMAAA','OOOOxx' +8475,8167,1,3,5,15,75,475,475,3475,8475,150,151,'ZNAAAA','DCMAAA','VVVVxx' +7645,8168,1,1,5,5,45,645,1645,2645,7645,90,91,'BIAAAA','ECMAAA','AAAAxx' +5097,8169,1,1,7,17,97,97,1097,97,5097,194,195,'BOAAAA','FCMAAA','HHHHxx' +5377,8170,1,1,7,17,77,377,1377,377,5377,154,155,'VYAAAA','GCMAAA','OOOOxx' +6116,8171,0,0,6,16,16,116,116,1116,6116,32,33,'GBAAAA','HCMAAA','VVVVxx' +8674,8172,0,2,4,14,74,674,674,3674,8674,148,149,'QVAAAA','ICMAAA','AAAAxx' +8063,8173,1,3,3,3,63,63,63,3063,8063,126,127,'DYAAAA','JCMAAA','HHHHxx' +5271,8174,1,3,1,11,71,271,1271,271,5271,142,143,'TUAAAA','KCMAAA','OOOOxx' +1619,8175,1,3,9,19,19,619,1619,1619,1619,38,39,'HKAAAA','LCMAAA','VVVVxx' +6419,8176,1,3,9,19,19,419,419,1419,6419,38,39,'XMAAAA','MCMAAA','AAAAxx' +7651,8177,1,3,1,11,51,651,1651,2651,7651,102,103,'HIAAAA','NCMAAA','HHHHxx' +2897,8178,1,1,7,17,97,897,897,2897,2897,194,195,'LHAAAA','OCMAAA','OOOOxx' +8148,8179,0,0,8,8,48,148,148,3148,8148,96,97,'KBAAAA','PCMAAA','VVVVxx' +7461,8180,1,1,1,1,61,461,1461,2461,7461,122,123,'ZAAAAA','QCMAAA','AAAAxx' +9186,8181,0,2,6,6,86,186,1186,4186,9186,172,173,'IPAAAA','RCMAAA','HHHHxx' +7127,8182,1,3,7,7,27,127,1127,2127,7127,54,55,'DOAAAA','SCMAAA','OOOOxx' +8233,8183,1,1,3,13,33,233,233,3233,8233,66,67,'REAAAA','TCMAAA','VVVVxx' +9651,8184,1,3,1,11,51,651,1651,4651,9651,102,103,'FHAAAA','UCMAAA','AAAAxx' +6746,8185,0,2,6,6,46,746,746,1746,6746,92,93,'MZAAAA','VCMAAA','HHHHxx' +7835,8186,1,3,5,15,35,835,1835,2835,7835,70,71,'JPAAAA','WCMAAA','OOOOxx' +8815,8187,1,3,5,15,15,815,815,3815,8815,30,31,'BBAAAA','XCMAAA','VVVVxx' +6398,8188,0,2,8,18,98,398,398,1398,6398,196,197,'CMAAAA','YCMAAA','AAAAxx' +5344,8189,0,0,4,4,44,344,1344,344,5344,88,89,'OXAAAA','ZCMAAA','HHHHxx' +8209,8190,1,1,9,9,9,209,209,3209,8209,18,19,'TDAAAA','ADMAAA','OOOOxx' +8444,8191,0,0,4,4,44,444,444,3444,8444,88,89,'UMAAAA','BDMAAA','VVVVxx' +5669,8192,1,1,9,9,69,669,1669,669,5669,138,139,'BKAAAA','CDMAAA','AAAAxx' +2455,8193,1,3,5,15,55,455,455,2455,2455,110,111,'LQAAAA','DDMAAA','HHHHxx' +6767,8194,1,3,7,7,67,767,767,1767,6767,134,135,'HAAAAA','EDMAAA','OOOOxx' +135,8195,1,3,5,15,35,135,135,135,135,70,71,'FFAAAA','FDMAAA','VVVVxx' +3503,8196,1,3,3,3,3,503,1503,3503,3503,6,7,'TEAAAA','GDMAAA','AAAAxx' +6102,8197,0,2,2,2,2,102,102,1102,6102,4,5,'SAAAAA','HDMAAA','HHHHxx' +7136,8198,0,0,6,16,36,136,1136,2136,7136,72,73,'MOAAAA','IDMAAA','OOOOxx' +4933,8199,1,1,3,13,33,933,933,4933,4933,66,67,'THAAAA','JDMAAA','VVVVxx' +8804,8200,0,0,4,4,4,804,804,3804,8804,8,9,'QAAAAA','KDMAAA','AAAAxx' +3760,8201,0,0,0,0,60,760,1760,3760,3760,120,121,'QOAAAA','LDMAAA','HHHHxx' +8603,8202,1,3,3,3,3,603,603,3603,8603,6,7,'XSAAAA','MDMAAA','OOOOxx' +7411,8203,1,3,1,11,11,411,1411,2411,7411,22,23,'BZAAAA','NDMAAA','VVVVxx' +834,8204,0,2,4,14,34,834,834,834,834,68,69,'CGAAAA','ODMAAA','AAAAxx' +7385,8205,1,1,5,5,85,385,1385,2385,7385,170,171,'BYAAAA','PDMAAA','HHHHxx' +3696,8206,0,0,6,16,96,696,1696,3696,3696,192,193,'EMAAAA','QDMAAA','OOOOxx' +8720,8207,0,0,0,0,20,720,720,3720,8720,40,41,'KXAAAA','RDMAAA','VVVVxx' +4539,8208,1,3,9,19,39,539,539,4539,4539,78,79,'PSAAAA','SDMAAA','AAAAxx' +9837,8209,1,1,7,17,37,837,1837,4837,9837,74,75,'JOAAAA','TDMAAA','HHHHxx' +8595,8210,1,3,5,15,95,595,595,3595,8595,190,191,'PSAAAA','UDMAAA','OOOOxx' +3673,8211,1,1,3,13,73,673,1673,3673,3673,146,147,'HLAAAA','VDMAAA','VVVVxx' +475,8212,1,3,5,15,75,475,475,475,475,150,151,'HSAAAA','WDMAAA','AAAAxx' +2256,8213,0,0,6,16,56,256,256,2256,2256,112,113,'UIAAAA','XDMAAA','HHHHxx' +6349,8214,1,1,9,9,49,349,349,1349,6349,98,99,'FKAAAA','YDMAAA','OOOOxx' +9968,8215,0,0,8,8,68,968,1968,4968,9968,136,137,'KTAAAA','ZDMAAA','VVVVxx' +7261,8216,1,1,1,1,61,261,1261,2261,7261,122,123,'HTAAAA','AEMAAA','AAAAxx' +5799,8217,1,3,9,19,99,799,1799,799,5799,198,199,'BPAAAA','BEMAAA','HHHHxx' +8159,8218,1,3,9,19,59,159,159,3159,8159,118,119,'VBAAAA','CEMAAA','OOOOxx' +92,8219,0,0,2,12,92,92,92,92,92,184,185,'ODAAAA','DEMAAA','VVVVxx' +5927,8220,1,3,7,7,27,927,1927,927,5927,54,55,'ZTAAAA','EEMAAA','AAAAxx' +7925,8221,1,1,5,5,25,925,1925,2925,7925,50,51,'VSAAAA','FEMAAA','HHHHxx' +5836,8222,0,0,6,16,36,836,1836,836,5836,72,73,'MQAAAA','GEMAAA','OOOOxx' +7935,8223,1,3,5,15,35,935,1935,2935,7935,70,71,'FTAAAA','HEMAAA','VVVVxx' +5505,8224,1,1,5,5,5,505,1505,505,5505,10,11,'TDAAAA','IEMAAA','AAAAxx' +5882,8225,0,2,2,2,82,882,1882,882,5882,164,165,'GSAAAA','JEMAAA','HHHHxx' +4411,8226,1,3,1,11,11,411,411,4411,4411,22,23,'RNAAAA','KEMAAA','OOOOxx' +64,8227,0,0,4,4,64,64,64,64,64,128,129,'MCAAAA','LEMAAA','VVVVxx' +2851,8228,1,3,1,11,51,851,851,2851,2851,102,103,'RFAAAA','MEMAAA','AAAAxx' +1665,8229,1,1,5,5,65,665,1665,1665,1665,130,131,'BMAAAA','NEMAAA','HHHHxx' +2895,8230,1,3,5,15,95,895,895,2895,2895,190,191,'JHAAAA','OEMAAA','OOOOxx' +2210,8231,0,2,0,10,10,210,210,2210,2210,20,21,'AHAAAA','PEMAAA','VVVVxx' +9873,8232,1,1,3,13,73,873,1873,4873,9873,146,147,'TPAAAA','QEMAAA','AAAAxx' +5402,8233,0,2,2,2,2,402,1402,402,5402,4,5,'UZAAAA','REMAAA','HHHHxx' +285,8234,1,1,5,5,85,285,285,285,285,170,171,'ZKAAAA','SEMAAA','OOOOxx' +8545,8235,1,1,5,5,45,545,545,3545,8545,90,91,'RQAAAA','TEMAAA','VVVVxx' +5328,8236,0,0,8,8,28,328,1328,328,5328,56,57,'YWAAAA','UEMAAA','AAAAxx' +733,8237,1,1,3,13,33,733,733,733,733,66,67,'FCAAAA','VEMAAA','HHHHxx' +7726,8238,0,2,6,6,26,726,1726,2726,7726,52,53,'ELAAAA','WEMAAA','OOOOxx' +5418,8239,0,2,8,18,18,418,1418,418,5418,36,37,'KAAAAA','XEMAAA','VVVVxx' +7761,8240,1,1,1,1,61,761,1761,2761,7761,122,123,'NMAAAA','YEMAAA','AAAAxx' +9263,8241,1,3,3,3,63,263,1263,4263,9263,126,127,'HSAAAA','ZEMAAA','HHHHxx' +5579,8242,1,3,9,19,79,579,1579,579,5579,158,159,'PGAAAA','AFMAAA','OOOOxx' +5434,8243,0,2,4,14,34,434,1434,434,5434,68,69,'ABAAAA','BFMAAA','VVVVxx' +5230,8244,0,2,0,10,30,230,1230,230,5230,60,61,'ETAAAA','CFMAAA','AAAAxx' +9981,8245,1,1,1,1,81,981,1981,4981,9981,162,163,'XTAAAA','DFMAAA','HHHHxx' +5830,8246,0,2,0,10,30,830,1830,830,5830,60,61,'GQAAAA','EFMAAA','OOOOxx' +128,8247,0,0,8,8,28,128,128,128,128,56,57,'YEAAAA','FFMAAA','VVVVxx' +2734,8248,0,2,4,14,34,734,734,2734,2734,68,69,'EBAAAA','GFMAAA','AAAAxx' +4537,8249,1,1,7,17,37,537,537,4537,4537,74,75,'NSAAAA','HFMAAA','HHHHxx' +3899,8250,1,3,9,19,99,899,1899,3899,3899,198,199,'ZTAAAA','IFMAAA','OOOOxx' +1000,8251,0,0,0,0,0,0,1000,1000,1000,0,1,'MMAAAA','JFMAAA','VVVVxx' +9896,8252,0,0,6,16,96,896,1896,4896,9896,192,193,'QQAAAA','KFMAAA','AAAAxx' +3640,8253,0,0,0,0,40,640,1640,3640,3640,80,81,'AKAAAA','LFMAAA','HHHHxx' +2568,8254,0,0,8,8,68,568,568,2568,2568,136,137,'UUAAAA','MFMAAA','OOOOxx' +2026,8255,0,2,6,6,26,26,26,2026,2026,52,53,'YZAAAA','NFMAAA','VVVVxx' +3955,8256,1,3,5,15,55,955,1955,3955,3955,110,111,'DWAAAA','OFMAAA','AAAAxx' +7152,8257,0,0,2,12,52,152,1152,2152,7152,104,105,'CPAAAA','PFMAAA','HHHHxx' +2402,8258,0,2,2,2,2,402,402,2402,2402,4,5,'KOAAAA','QFMAAA','OOOOxx' +9522,8259,0,2,2,2,22,522,1522,4522,9522,44,45,'GCAAAA','RFMAAA','VVVVxx' +4011,8260,1,3,1,11,11,11,11,4011,4011,22,23,'HYAAAA','SFMAAA','AAAAxx' +3297,8261,1,1,7,17,97,297,1297,3297,3297,194,195,'VWAAAA','TFMAAA','HHHHxx' +4915,8262,1,3,5,15,15,915,915,4915,4915,30,31,'BHAAAA','UFMAAA','OOOOxx' +5397,8263,1,1,7,17,97,397,1397,397,5397,194,195,'PZAAAA','VFMAAA','VVVVxx' +5454,8264,0,2,4,14,54,454,1454,454,5454,108,109,'UBAAAA','WFMAAA','AAAAxx' +4568,8265,0,0,8,8,68,568,568,4568,4568,136,137,'STAAAA','XFMAAA','HHHHxx' +5875,8266,1,3,5,15,75,875,1875,875,5875,150,151,'ZRAAAA','YFMAAA','OOOOxx' +3642,8267,0,2,2,2,42,642,1642,3642,3642,84,85,'CKAAAA','ZFMAAA','VVVVxx' +8506,8268,0,2,6,6,6,506,506,3506,8506,12,13,'EPAAAA','AGMAAA','AAAAxx' +9621,8269,1,1,1,1,21,621,1621,4621,9621,42,43,'BGAAAA','BGMAAA','HHHHxx' +7739,8270,1,3,9,19,39,739,1739,2739,7739,78,79,'RLAAAA','CGMAAA','OOOOxx' +3987,8271,1,3,7,7,87,987,1987,3987,3987,174,175,'JXAAAA','DGMAAA','VVVVxx' +2090,8272,0,2,0,10,90,90,90,2090,2090,180,181,'KCAAAA','EGMAAA','AAAAxx' +3838,8273,0,2,8,18,38,838,1838,3838,3838,76,77,'QRAAAA','FGMAAA','HHHHxx' +17,8274,1,1,7,17,17,17,17,17,17,34,35,'RAAAAA','GGMAAA','OOOOxx' +3406,8275,0,2,6,6,6,406,1406,3406,3406,12,13,'ABAAAA','HGMAAA','VVVVxx' +8312,8276,0,0,2,12,12,312,312,3312,8312,24,25,'SHAAAA','IGMAAA','AAAAxx' +4034,8277,0,2,4,14,34,34,34,4034,4034,68,69,'EZAAAA','JGMAAA','HHHHxx' +1535,8278,1,3,5,15,35,535,1535,1535,1535,70,71,'BHAAAA','KGMAAA','OOOOxx' +7198,8279,0,2,8,18,98,198,1198,2198,7198,196,197,'WQAAAA','LGMAAA','VVVVxx' +8885,8280,1,1,5,5,85,885,885,3885,8885,170,171,'TDAAAA','MGMAAA','AAAAxx' +4081,8281,1,1,1,1,81,81,81,4081,4081,162,163,'ZAAAAA','NGMAAA','HHHHxx' +980,8282,0,0,0,0,80,980,980,980,980,160,161,'SLAAAA','OGMAAA','OOOOxx' +551,8283,1,3,1,11,51,551,551,551,551,102,103,'FVAAAA','PGMAAA','VVVVxx' +7746,8284,0,2,6,6,46,746,1746,2746,7746,92,93,'YLAAAA','QGMAAA','AAAAxx' +4756,8285,0,0,6,16,56,756,756,4756,4756,112,113,'YAAAAA','RGMAAA','HHHHxx' +3655,8286,1,3,5,15,55,655,1655,3655,3655,110,111,'PKAAAA','SGMAAA','OOOOxx' +7075,8287,1,3,5,15,75,75,1075,2075,7075,150,151,'DMAAAA','TGMAAA','VVVVxx' +3950,8288,0,2,0,10,50,950,1950,3950,3950,100,101,'YVAAAA','UGMAAA','AAAAxx' +2314,8289,0,2,4,14,14,314,314,2314,2314,28,29,'ALAAAA','VGMAAA','HHHHxx' +8432,8290,0,0,2,12,32,432,432,3432,8432,64,65,'IMAAAA','WGMAAA','OOOOxx' +62,8291,0,2,2,2,62,62,62,62,62,124,125,'KCAAAA','XGMAAA','VVVVxx' +6920,8292,0,0,0,0,20,920,920,1920,6920,40,41,'EGAAAA','YGMAAA','AAAAxx' +4077,8293,1,1,7,17,77,77,77,4077,4077,154,155,'VAAAAA','ZGMAAA','HHHHxx' +9118,8294,0,2,8,18,18,118,1118,4118,9118,36,37,'SMAAAA','AHMAAA','OOOOxx' +5375,8295,1,3,5,15,75,375,1375,375,5375,150,151,'TYAAAA','BHMAAA','VVVVxx' +178,8296,0,2,8,18,78,178,178,178,178,156,157,'WGAAAA','CHMAAA','AAAAxx' +1079,8297,1,3,9,19,79,79,1079,1079,1079,158,159,'NPAAAA','DHMAAA','HHHHxx' +4279,8298,1,3,9,19,79,279,279,4279,4279,158,159,'PIAAAA','EHMAAA','OOOOxx' +8436,8299,0,0,6,16,36,436,436,3436,8436,72,73,'MMAAAA','FHMAAA','VVVVxx' +1931,8300,1,3,1,11,31,931,1931,1931,1931,62,63,'HWAAAA','GHMAAA','AAAAxx' +2096,8301,0,0,6,16,96,96,96,2096,2096,192,193,'QCAAAA','HHMAAA','HHHHxx' +1638,8302,0,2,8,18,38,638,1638,1638,1638,76,77,'ALAAAA','IHMAAA','OOOOxx' +2788,8303,0,0,8,8,88,788,788,2788,2788,176,177,'GDAAAA','JHMAAA','VVVVxx' +4751,8304,1,3,1,11,51,751,751,4751,4751,102,103,'TAAAAA','KHMAAA','AAAAxx' +8824,8305,0,0,4,4,24,824,824,3824,8824,48,49,'KBAAAA','LHMAAA','HHHHxx' +3098,8306,0,2,8,18,98,98,1098,3098,3098,196,197,'EPAAAA','MHMAAA','OOOOxx' +4497,8307,1,1,7,17,97,497,497,4497,4497,194,195,'ZQAAAA','NHMAAA','VVVVxx' +5223,8308,1,3,3,3,23,223,1223,223,5223,46,47,'XSAAAA','OHMAAA','AAAAxx' +9212,8309,0,0,2,12,12,212,1212,4212,9212,24,25,'IQAAAA','PHMAAA','HHHHxx' +4265,8310,1,1,5,5,65,265,265,4265,4265,130,131,'BIAAAA','QHMAAA','OOOOxx' +6898,8311,0,2,8,18,98,898,898,1898,6898,196,197,'IFAAAA','RHMAAA','VVVVxx' +8808,8312,0,0,8,8,8,808,808,3808,8808,16,17,'UAAAAA','SHMAAA','AAAAxx' +5629,8313,1,1,9,9,29,629,1629,629,5629,58,59,'NIAAAA','THMAAA','HHHHxx' +3779,8314,1,3,9,19,79,779,1779,3779,3779,158,159,'JPAAAA','UHMAAA','OOOOxx' +4972,8315,0,0,2,12,72,972,972,4972,4972,144,145,'GJAAAA','VHMAAA','VVVVxx' +4511,8316,1,3,1,11,11,511,511,4511,4511,22,23,'NRAAAA','WHMAAA','AAAAxx' +6761,8317,1,1,1,1,61,761,761,1761,6761,122,123,'BAAAAA','XHMAAA','HHHHxx' +2335,8318,1,3,5,15,35,335,335,2335,2335,70,71,'VLAAAA','YHMAAA','OOOOxx' +732,8319,0,0,2,12,32,732,732,732,732,64,65,'ECAAAA','ZHMAAA','VVVVxx' +4757,8320,1,1,7,17,57,757,757,4757,4757,114,115,'ZAAAAA','AIMAAA','AAAAxx' +6624,8321,0,0,4,4,24,624,624,1624,6624,48,49,'UUAAAA','BIMAAA','HHHHxx' +5869,8322,1,1,9,9,69,869,1869,869,5869,138,139,'TRAAAA','CIMAAA','OOOOxx' +5842,8323,0,2,2,2,42,842,1842,842,5842,84,85,'SQAAAA','DIMAAA','VVVVxx' +5735,8324,1,3,5,15,35,735,1735,735,5735,70,71,'PMAAAA','EIMAAA','AAAAxx' +8276,8325,0,0,6,16,76,276,276,3276,8276,152,153,'IGAAAA','FIMAAA','HHHHxx' +7227,8326,1,3,7,7,27,227,1227,2227,7227,54,55,'ZRAAAA','GIMAAA','OOOOxx' +4923,8327,1,3,3,3,23,923,923,4923,4923,46,47,'JHAAAA','HIMAAA','VVVVxx' +9135,8328,1,3,5,15,35,135,1135,4135,9135,70,71,'JNAAAA','IIMAAA','AAAAxx' +5813,8329,1,1,3,13,13,813,1813,813,5813,26,27,'PPAAAA','JIMAAA','HHHHxx' +9697,8330,1,1,7,17,97,697,1697,4697,9697,194,195,'ZIAAAA','KIMAAA','OOOOxx' +3222,8331,0,2,2,2,22,222,1222,3222,3222,44,45,'YTAAAA','LIMAAA','VVVVxx' +2394,8332,0,2,4,14,94,394,394,2394,2394,188,189,'COAAAA','MIMAAA','AAAAxx' +5784,8333,0,0,4,4,84,784,1784,784,5784,168,169,'MOAAAA','NIMAAA','HHHHxx' +3652,8334,0,0,2,12,52,652,1652,3652,3652,104,105,'MKAAAA','OIMAAA','OOOOxx' +8175,8335,1,3,5,15,75,175,175,3175,8175,150,151,'LCAAAA','PIMAAA','VVVVxx' +7568,8336,0,0,8,8,68,568,1568,2568,7568,136,137,'CFAAAA','QIMAAA','AAAAxx' +6645,8337,1,1,5,5,45,645,645,1645,6645,90,91,'PVAAAA','RIMAAA','HHHHxx' +8176,8338,0,0,6,16,76,176,176,3176,8176,152,153,'MCAAAA','SIMAAA','OOOOxx' +530,8339,0,2,0,10,30,530,530,530,530,60,61,'KUAAAA','TIMAAA','VVVVxx' +5439,8340,1,3,9,19,39,439,1439,439,5439,78,79,'FBAAAA','UIMAAA','AAAAxx' +61,8341,1,1,1,1,61,61,61,61,61,122,123,'JCAAAA','VIMAAA','HHHHxx' +3951,8342,1,3,1,11,51,951,1951,3951,3951,102,103,'ZVAAAA','WIMAAA','OOOOxx' +5283,8343,1,3,3,3,83,283,1283,283,5283,166,167,'FVAAAA','XIMAAA','VVVVxx' +7226,8344,0,2,6,6,26,226,1226,2226,7226,52,53,'YRAAAA','YIMAAA','AAAAxx' +1954,8345,0,2,4,14,54,954,1954,1954,1954,108,109,'EXAAAA','ZIMAAA','HHHHxx' +334,8346,0,2,4,14,34,334,334,334,334,68,69,'WMAAAA','AJMAAA','OOOOxx' +3921,8347,1,1,1,1,21,921,1921,3921,3921,42,43,'VUAAAA','BJMAAA','VVVVxx' +6276,8348,0,0,6,16,76,276,276,1276,6276,152,153,'KHAAAA','CJMAAA','AAAAxx' +3378,8349,0,2,8,18,78,378,1378,3378,3378,156,157,'YZAAAA','DJMAAA','HHHHxx' +5236,8350,0,0,6,16,36,236,1236,236,5236,72,73,'KTAAAA','EJMAAA','OOOOxx' +7781,8351,1,1,1,1,81,781,1781,2781,7781,162,163,'HNAAAA','FJMAAA','VVVVxx' +8601,8352,1,1,1,1,1,601,601,3601,8601,2,3,'VSAAAA','GJMAAA','AAAAxx' +1473,8353,1,1,3,13,73,473,1473,1473,1473,146,147,'REAAAA','HJMAAA','HHHHxx' +3246,8354,0,2,6,6,46,246,1246,3246,3246,92,93,'WUAAAA','IJMAAA','OOOOxx' +3601,8355,1,1,1,1,1,601,1601,3601,3601,2,3,'NIAAAA','JJMAAA','VVVVxx' +6861,8356,1,1,1,1,61,861,861,1861,6861,122,123,'XDAAAA','KJMAAA','AAAAxx' +9032,8357,0,0,2,12,32,32,1032,4032,9032,64,65,'KJAAAA','LJMAAA','HHHHxx' +216,8358,0,0,6,16,16,216,216,216,216,32,33,'IIAAAA','MJMAAA','OOOOxx' +3824,8359,0,0,4,4,24,824,1824,3824,3824,48,49,'CRAAAA','NJMAAA','VVVVxx' +8486,8360,0,2,6,6,86,486,486,3486,8486,172,173,'KOAAAA','OJMAAA','AAAAxx' +276,8361,0,0,6,16,76,276,276,276,276,152,153,'QKAAAA','PJMAAA','HHHHxx' +1838,8362,0,2,8,18,38,838,1838,1838,1838,76,77,'SSAAAA','QJMAAA','OOOOxx' +6175,8363,1,3,5,15,75,175,175,1175,6175,150,151,'NDAAAA','RJMAAA','VVVVxx' +3719,8364,1,3,9,19,19,719,1719,3719,3719,38,39,'BNAAAA','SJMAAA','AAAAxx' +6958,8365,0,2,8,18,58,958,958,1958,6958,116,117,'QHAAAA','TJMAAA','HHHHxx' +6822,8366,0,2,2,2,22,822,822,1822,6822,44,45,'KCAAAA','UJMAAA','OOOOxx' +3318,8367,0,2,8,18,18,318,1318,3318,3318,36,37,'QXAAAA','VJMAAA','VVVVxx' +7222,8368,0,2,2,2,22,222,1222,2222,7222,44,45,'URAAAA','WJMAAA','AAAAxx' +85,8369,1,1,5,5,85,85,85,85,85,170,171,'HDAAAA','XJMAAA','HHHHxx' +5158,8370,0,2,8,18,58,158,1158,158,5158,116,117,'KQAAAA','YJMAAA','OOOOxx' +6360,8371,0,0,0,0,60,360,360,1360,6360,120,121,'QKAAAA','ZJMAAA','VVVVxx' +2599,8372,1,3,9,19,99,599,599,2599,2599,198,199,'ZVAAAA','AKMAAA','AAAAxx' +4002,8373,0,2,2,2,2,2,2,4002,4002,4,5,'YXAAAA','BKMAAA','HHHHxx' +6597,8374,1,1,7,17,97,597,597,1597,6597,194,195,'TTAAAA','CKMAAA','OOOOxx' +5762,8375,0,2,2,2,62,762,1762,762,5762,124,125,'QNAAAA','DKMAAA','VVVVxx' +8383,8376,1,3,3,3,83,383,383,3383,8383,166,167,'LKAAAA','EKMAAA','AAAAxx' +4686,8377,0,2,6,6,86,686,686,4686,4686,172,173,'GYAAAA','FKMAAA','HHHHxx' +5972,8378,0,0,2,12,72,972,1972,972,5972,144,145,'SVAAAA','GKMAAA','OOOOxx' +1432,8379,0,0,2,12,32,432,1432,1432,1432,64,65,'CDAAAA','HKMAAA','VVVVxx' +1601,8380,1,1,1,1,1,601,1601,1601,1601,2,3,'PJAAAA','IKMAAA','AAAAxx' +3012,8381,0,0,2,12,12,12,1012,3012,3012,24,25,'WLAAAA','JKMAAA','HHHHxx' +9345,8382,1,1,5,5,45,345,1345,4345,9345,90,91,'LVAAAA','KKMAAA','OOOOxx' +8869,8383,1,1,9,9,69,869,869,3869,8869,138,139,'DDAAAA','LKMAAA','VVVVxx' +6612,8384,0,0,2,12,12,612,612,1612,6612,24,25,'IUAAAA','MKMAAA','AAAAxx' +262,8385,0,2,2,2,62,262,262,262,262,124,125,'CKAAAA','NKMAAA','HHHHxx' +300,8386,0,0,0,0,0,300,300,300,300,0,1,'OLAAAA','OKMAAA','OOOOxx' +3045,8387,1,1,5,5,45,45,1045,3045,3045,90,91,'DNAAAA','PKMAAA','VVVVxx' +7252,8388,0,0,2,12,52,252,1252,2252,7252,104,105,'YSAAAA','QKMAAA','AAAAxx' +9099,8389,1,3,9,19,99,99,1099,4099,9099,198,199,'ZLAAAA','RKMAAA','HHHHxx' +9006,8390,0,2,6,6,6,6,1006,4006,9006,12,13,'KIAAAA','SKMAAA','OOOOxx' +3078,8391,0,2,8,18,78,78,1078,3078,3078,156,157,'KOAAAA','TKMAAA','VVVVxx' +5159,8392,1,3,9,19,59,159,1159,159,5159,118,119,'LQAAAA','UKMAAA','AAAAxx' +9329,8393,1,1,9,9,29,329,1329,4329,9329,58,59,'VUAAAA','VKMAAA','HHHHxx' +1393,8394,1,1,3,13,93,393,1393,1393,1393,186,187,'PBAAAA','WKMAAA','OOOOxx' +5894,8395,0,2,4,14,94,894,1894,894,5894,188,189,'SSAAAA','XKMAAA','VVVVxx' +11,8396,1,3,1,11,11,11,11,11,11,22,23,'LAAAAA','YKMAAA','AAAAxx' +5606,8397,0,2,6,6,6,606,1606,606,5606,12,13,'QHAAAA','ZKMAAA','HHHHxx' +5541,8398,1,1,1,1,41,541,1541,541,5541,82,83,'DFAAAA','ALMAAA','OOOOxx' +2689,8399,1,1,9,9,89,689,689,2689,2689,178,179,'LZAAAA','BLMAAA','VVVVxx' +1023,8400,1,3,3,3,23,23,1023,1023,1023,46,47,'JNAAAA','CLMAAA','AAAAxx' +8134,8401,0,2,4,14,34,134,134,3134,8134,68,69,'WAAAAA','DLMAAA','HHHHxx' +5923,8402,1,3,3,3,23,923,1923,923,5923,46,47,'VTAAAA','ELMAAA','OOOOxx' +6056,8403,0,0,6,16,56,56,56,1056,6056,112,113,'YYAAAA','FLMAAA','VVVVxx' +653,8404,1,1,3,13,53,653,653,653,653,106,107,'DZAAAA','GLMAAA','AAAAxx' +367,8405,1,3,7,7,67,367,367,367,367,134,135,'DOAAAA','HLMAAA','HHHHxx' +1828,8406,0,0,8,8,28,828,1828,1828,1828,56,57,'ISAAAA','ILMAAA','OOOOxx' +6506,8407,0,2,6,6,6,506,506,1506,6506,12,13,'GQAAAA','JLMAAA','VVVVxx' +5772,8408,0,0,2,12,72,772,1772,772,5772,144,145,'AOAAAA','KLMAAA','AAAAxx' +8052,8409,0,0,2,12,52,52,52,3052,8052,104,105,'SXAAAA','LLMAAA','HHHHxx' +2633,8410,1,1,3,13,33,633,633,2633,2633,66,67,'HXAAAA','MLMAAA','OOOOxx' +4878,8411,0,2,8,18,78,878,878,4878,4878,156,157,'QFAAAA','NLMAAA','VVVVxx' +5621,8412,1,1,1,1,21,621,1621,621,5621,42,43,'FIAAAA','OLMAAA','AAAAxx' +41,8413,1,1,1,1,41,41,41,41,41,82,83,'PBAAAA','PLMAAA','HHHHxx' +4613,8414,1,1,3,13,13,613,613,4613,4613,26,27,'LVAAAA','QLMAAA','OOOOxx' +9389,8415,1,1,9,9,89,389,1389,4389,9389,178,179,'DXAAAA','RLMAAA','VVVVxx' +9414,8416,0,2,4,14,14,414,1414,4414,9414,28,29,'CYAAAA','SLMAAA','AAAAxx' +3583,8417,1,3,3,3,83,583,1583,3583,3583,166,167,'VHAAAA','TLMAAA','HHHHxx' +3454,8418,0,2,4,14,54,454,1454,3454,3454,108,109,'WCAAAA','ULMAAA','OOOOxx' +719,8419,1,3,9,19,19,719,719,719,719,38,39,'RBAAAA','VLMAAA','VVVVxx' +6188,8420,0,0,8,8,88,188,188,1188,6188,176,177,'AEAAAA','WLMAAA','AAAAxx' +2288,8421,0,0,8,8,88,288,288,2288,2288,176,177,'AKAAAA','XLMAAA','HHHHxx' +1287,8422,1,3,7,7,87,287,1287,1287,1287,174,175,'NXAAAA','YLMAAA','OOOOxx' +1397,8423,1,1,7,17,97,397,1397,1397,1397,194,195,'TBAAAA','ZLMAAA','VVVVxx' +7763,8424,1,3,3,3,63,763,1763,2763,7763,126,127,'PMAAAA','AMMAAA','AAAAxx' +5194,8425,0,2,4,14,94,194,1194,194,5194,188,189,'URAAAA','BMMAAA','HHHHxx' +3167,8426,1,3,7,7,67,167,1167,3167,3167,134,135,'VRAAAA','CMMAAA','OOOOxx' +9218,8427,0,2,8,18,18,218,1218,4218,9218,36,37,'OQAAAA','DMMAAA','VVVVxx' +2065,8428,1,1,5,5,65,65,65,2065,2065,130,131,'LBAAAA','EMMAAA','AAAAxx' +9669,8429,1,1,9,9,69,669,1669,4669,9669,138,139,'XHAAAA','FMMAAA','HHHHxx' +146,8430,0,2,6,6,46,146,146,146,146,92,93,'QFAAAA','GMMAAA','OOOOxx' +6141,8431,1,1,1,1,41,141,141,1141,6141,82,83,'FCAAAA','HMMAAA','VVVVxx' +2843,8432,1,3,3,3,43,843,843,2843,2843,86,87,'JFAAAA','IMMAAA','AAAAxx' +7934,8433,0,2,4,14,34,934,1934,2934,7934,68,69,'ETAAAA','JMMAAA','HHHHxx' +2536,8434,0,0,6,16,36,536,536,2536,2536,72,73,'OTAAAA','KMMAAA','OOOOxx' +7088,8435,0,0,8,8,88,88,1088,2088,7088,176,177,'QMAAAA','LMMAAA','VVVVxx' +2519,8436,1,3,9,19,19,519,519,2519,2519,38,39,'XSAAAA','MMMAAA','AAAAxx' +6650,8437,0,2,0,10,50,650,650,1650,6650,100,101,'UVAAAA','NMMAAA','HHHHxx' +3007,8438,1,3,7,7,7,7,1007,3007,3007,14,15,'RLAAAA','OMMAAA','OOOOxx' +4507,8439,1,3,7,7,7,507,507,4507,4507,14,15,'JRAAAA','PMMAAA','VVVVxx' +4892,8440,0,0,2,12,92,892,892,4892,4892,184,185,'EGAAAA','QMMAAA','AAAAxx' +7159,8441,1,3,9,19,59,159,1159,2159,7159,118,119,'JPAAAA','RMMAAA','HHHHxx' +3171,8442,1,3,1,11,71,171,1171,3171,3171,142,143,'ZRAAAA','SMMAAA','OOOOxx' +1080,8443,0,0,0,0,80,80,1080,1080,1080,160,161,'OPAAAA','TMMAAA','VVVVxx' +7248,8444,0,0,8,8,48,248,1248,2248,7248,96,97,'USAAAA','UMMAAA','AAAAxx' +7230,8445,0,2,0,10,30,230,1230,2230,7230,60,61,'CSAAAA','VMMAAA','HHHHxx' +3823,8446,1,3,3,3,23,823,1823,3823,3823,46,47,'BRAAAA','WMMAAA','OOOOxx' +5517,8447,1,1,7,17,17,517,1517,517,5517,34,35,'FEAAAA','XMMAAA','VVVVxx' +1482,8448,0,2,2,2,82,482,1482,1482,1482,164,165,'AFAAAA','YMMAAA','AAAAxx' +9953,8449,1,1,3,13,53,953,1953,4953,9953,106,107,'VSAAAA','ZMMAAA','HHHHxx' +2754,8450,0,2,4,14,54,754,754,2754,2754,108,109,'YBAAAA','ANMAAA','OOOOxx' +3875,8451,1,3,5,15,75,875,1875,3875,3875,150,151,'BTAAAA','BNMAAA','VVVVxx' +9800,8452,0,0,0,0,0,800,1800,4800,9800,0,1,'YMAAAA','CNMAAA','AAAAxx' +8819,8453,1,3,9,19,19,819,819,3819,8819,38,39,'FBAAAA','DNMAAA','HHHHxx' +8267,8454,1,3,7,7,67,267,267,3267,8267,134,135,'ZFAAAA','ENMAAA','OOOOxx' +520,8455,0,0,0,0,20,520,520,520,520,40,41,'AUAAAA','FNMAAA','VVVVxx' +5770,8456,0,2,0,10,70,770,1770,770,5770,140,141,'YNAAAA','GNMAAA','AAAAxx' +2114,8457,0,2,4,14,14,114,114,2114,2114,28,29,'IDAAAA','HNMAAA','HHHHxx' +5045,8458,1,1,5,5,45,45,1045,45,5045,90,91,'BMAAAA','INMAAA','OOOOxx' +1094,8459,0,2,4,14,94,94,1094,1094,1094,188,189,'CQAAAA','JNMAAA','VVVVxx' +8786,8460,0,2,6,6,86,786,786,3786,8786,172,173,'YZAAAA','KNMAAA','AAAAxx' +353,8461,1,1,3,13,53,353,353,353,353,106,107,'PNAAAA','LNMAAA','HHHHxx' +290,8462,0,2,0,10,90,290,290,290,290,180,181,'ELAAAA','MNMAAA','OOOOxx' +3376,8463,0,0,6,16,76,376,1376,3376,3376,152,153,'WZAAAA','NNMAAA','VVVVxx' +9305,8464,1,1,5,5,5,305,1305,4305,9305,10,11,'XTAAAA','ONMAAA','AAAAxx' +186,8465,0,2,6,6,86,186,186,186,186,172,173,'EHAAAA','PNMAAA','HHHHxx' +4817,8466,1,1,7,17,17,817,817,4817,4817,34,35,'HDAAAA','QNMAAA','OOOOxx' +4638,8467,0,2,8,18,38,638,638,4638,4638,76,77,'KWAAAA','RNMAAA','VVVVxx' +3558,8468,0,2,8,18,58,558,1558,3558,3558,116,117,'WGAAAA','SNMAAA','AAAAxx' +9285,8469,1,1,5,5,85,285,1285,4285,9285,170,171,'DTAAAA','TNMAAA','HHHHxx' +848,8470,0,0,8,8,48,848,848,848,848,96,97,'QGAAAA','UNMAAA','OOOOxx' +8923,8471,1,3,3,3,23,923,923,3923,8923,46,47,'FFAAAA','VNMAAA','VVVVxx' +6826,8472,0,2,6,6,26,826,826,1826,6826,52,53,'OCAAAA','WNMAAA','AAAAxx' +5187,8473,1,3,7,7,87,187,1187,187,5187,174,175,'NRAAAA','XNMAAA','HHHHxx' +2398,8474,0,2,8,18,98,398,398,2398,2398,196,197,'GOAAAA','YNMAAA','OOOOxx' +7653,8475,1,1,3,13,53,653,1653,2653,7653,106,107,'JIAAAA','ZNMAAA','VVVVxx' +8835,8476,1,3,5,15,35,835,835,3835,8835,70,71,'VBAAAA','AOMAAA','AAAAxx' +5736,8477,0,0,6,16,36,736,1736,736,5736,72,73,'QMAAAA','BOMAAA','HHHHxx' +1238,8478,0,2,8,18,38,238,1238,1238,1238,76,77,'QVAAAA','COMAAA','OOOOxx' +6021,8479,1,1,1,1,21,21,21,1021,6021,42,43,'PXAAAA','DOMAAA','VVVVxx' +6815,8480,1,3,5,15,15,815,815,1815,6815,30,31,'DCAAAA','EOMAAA','AAAAxx' +2549,8481,1,1,9,9,49,549,549,2549,2549,98,99,'BUAAAA','FOMAAA','HHHHxx' +5657,8482,1,1,7,17,57,657,1657,657,5657,114,115,'PJAAAA','GOMAAA','OOOOxx' +6855,8483,1,3,5,15,55,855,855,1855,6855,110,111,'RDAAAA','HOMAAA','VVVVxx' +1225,8484,1,1,5,5,25,225,1225,1225,1225,50,51,'DVAAAA','IOMAAA','AAAAxx' +7452,8485,0,0,2,12,52,452,1452,2452,7452,104,105,'QAAAAA','JOMAAA','HHHHxx' +2479,8486,1,3,9,19,79,479,479,2479,2479,158,159,'JRAAAA','KOMAAA','OOOOxx' +7974,8487,0,2,4,14,74,974,1974,2974,7974,148,149,'SUAAAA','LOMAAA','VVVVxx' +1212,8488,0,0,2,12,12,212,1212,1212,1212,24,25,'QUAAAA','MOMAAA','AAAAxx' +8883,8489,1,3,3,3,83,883,883,3883,8883,166,167,'RDAAAA','NOMAAA','HHHHxx' +8150,8490,0,2,0,10,50,150,150,3150,8150,100,101,'MBAAAA','OOMAAA','OOOOxx' +3392,8491,0,0,2,12,92,392,1392,3392,3392,184,185,'MAAAAA','POMAAA','VVVVxx' +6774,8492,0,2,4,14,74,774,774,1774,6774,148,149,'OAAAAA','QOMAAA','AAAAxx' +904,8493,0,0,4,4,4,904,904,904,904,8,9,'UIAAAA','ROMAAA','HHHHxx' +5068,8494,0,0,8,8,68,68,1068,68,5068,136,137,'YMAAAA','SOMAAA','OOOOxx' +9339,8495,1,3,9,19,39,339,1339,4339,9339,78,79,'FVAAAA','TOMAAA','VVVVxx' +1062,8496,0,2,2,2,62,62,1062,1062,1062,124,125,'WOAAAA','UOMAAA','AAAAxx' +3841,8497,1,1,1,1,41,841,1841,3841,3841,82,83,'TRAAAA','VOMAAA','HHHHxx' +8924,8498,0,0,4,4,24,924,924,3924,8924,48,49,'GFAAAA','WOMAAA','OOOOxx' +9795,8499,1,3,5,15,95,795,1795,4795,9795,190,191,'TMAAAA','XOMAAA','VVVVxx' +3981,8500,1,1,1,1,81,981,1981,3981,3981,162,163,'DXAAAA','YOMAAA','AAAAxx' +4290,8501,0,2,0,10,90,290,290,4290,4290,180,181,'AJAAAA','ZOMAAA','HHHHxx' +1067,8502,1,3,7,7,67,67,1067,1067,1067,134,135,'BPAAAA','APMAAA','OOOOxx' +8679,8503,1,3,9,19,79,679,679,3679,8679,158,159,'VVAAAA','BPMAAA','VVVVxx' +2894,8504,0,2,4,14,94,894,894,2894,2894,188,189,'IHAAAA','CPMAAA','AAAAxx' +9248,8505,0,0,8,8,48,248,1248,4248,9248,96,97,'SRAAAA','DPMAAA','HHHHxx' +1072,8506,0,0,2,12,72,72,1072,1072,1072,144,145,'GPAAAA','EPMAAA','OOOOxx' +3510,8507,0,2,0,10,10,510,1510,3510,3510,20,21,'AFAAAA','FPMAAA','VVVVxx' +6871,8508,1,3,1,11,71,871,871,1871,6871,142,143,'HEAAAA','GPMAAA','AAAAxx' +8701,8509,1,1,1,1,1,701,701,3701,8701,2,3,'RWAAAA','HPMAAA','HHHHxx' +8170,8510,0,2,0,10,70,170,170,3170,8170,140,141,'GCAAAA','IPMAAA','OOOOxx' +2730,8511,0,2,0,10,30,730,730,2730,2730,60,61,'ABAAAA','JPMAAA','VVVVxx' +2668,8512,0,0,8,8,68,668,668,2668,2668,136,137,'QYAAAA','KPMAAA','AAAAxx' +8723,8513,1,3,3,3,23,723,723,3723,8723,46,47,'NXAAAA','LPMAAA','HHHHxx' +3439,8514,1,3,9,19,39,439,1439,3439,3439,78,79,'HCAAAA','MPMAAA','OOOOxx' +6219,8515,1,3,9,19,19,219,219,1219,6219,38,39,'FFAAAA','NPMAAA','VVVVxx' +4264,8516,0,0,4,4,64,264,264,4264,4264,128,129,'AIAAAA','OPMAAA','AAAAxx' +3929,8517,1,1,9,9,29,929,1929,3929,3929,58,59,'DVAAAA','PPMAAA','HHHHxx' +7,8518,1,3,7,7,7,7,7,7,7,14,15,'HAAAAA','QPMAAA','OOOOxx' +3737,8519,1,1,7,17,37,737,1737,3737,3737,74,75,'TNAAAA','RPMAAA','VVVVxx' +358,8520,0,2,8,18,58,358,358,358,358,116,117,'UNAAAA','SPMAAA','AAAAxx' +5128,8521,0,0,8,8,28,128,1128,128,5128,56,57,'GPAAAA','TPMAAA','HHHHxx' +7353,8522,1,1,3,13,53,353,1353,2353,7353,106,107,'VWAAAA','UPMAAA','OOOOxx' +8758,8523,0,2,8,18,58,758,758,3758,8758,116,117,'WYAAAA','VPMAAA','VVVVxx' +7284,8524,0,0,4,4,84,284,1284,2284,7284,168,169,'EUAAAA','WPMAAA','AAAAxx' +4037,8525,1,1,7,17,37,37,37,4037,4037,74,75,'HZAAAA','XPMAAA','HHHHxx' +435,8526,1,3,5,15,35,435,435,435,435,70,71,'TQAAAA','YPMAAA','OOOOxx' +3580,8527,0,0,0,0,80,580,1580,3580,3580,160,161,'SHAAAA','ZPMAAA','VVVVxx' +4554,8528,0,2,4,14,54,554,554,4554,4554,108,109,'ETAAAA','AQMAAA','AAAAxx' +4337,8529,1,1,7,17,37,337,337,4337,4337,74,75,'VKAAAA','BQMAAA','HHHHxx' +512,8530,0,0,2,12,12,512,512,512,512,24,25,'STAAAA','CQMAAA','OOOOxx' +2032,8531,0,0,2,12,32,32,32,2032,2032,64,65,'EAAAAA','DQMAAA','VVVVxx' +1755,8532,1,3,5,15,55,755,1755,1755,1755,110,111,'NPAAAA','EQMAAA','AAAAxx' +9923,8533,1,3,3,3,23,923,1923,4923,9923,46,47,'RRAAAA','FQMAAA','HHHHxx' +3747,8534,1,3,7,7,47,747,1747,3747,3747,94,95,'DOAAAA','GQMAAA','OOOOxx' +27,8535,1,3,7,7,27,27,27,27,27,54,55,'BBAAAA','HQMAAA','VVVVxx' +3075,8536,1,3,5,15,75,75,1075,3075,3075,150,151,'HOAAAA','IQMAAA','AAAAxx' +6259,8537,1,3,9,19,59,259,259,1259,6259,118,119,'TGAAAA','JQMAAA','HHHHxx' +2940,8538,0,0,0,0,40,940,940,2940,2940,80,81,'CJAAAA','KQMAAA','OOOOxx' +5724,8539,0,0,4,4,24,724,1724,724,5724,48,49,'EMAAAA','LQMAAA','VVVVxx' +5638,8540,0,2,8,18,38,638,1638,638,5638,76,77,'WIAAAA','MQMAAA','AAAAxx' +479,8541,1,3,9,19,79,479,479,479,479,158,159,'LSAAAA','NQMAAA','HHHHxx' +4125,8542,1,1,5,5,25,125,125,4125,4125,50,51,'RCAAAA','OQMAAA','OOOOxx' +1525,8543,1,1,5,5,25,525,1525,1525,1525,50,51,'RGAAAA','PQMAAA','VVVVxx' +7529,8544,1,1,9,9,29,529,1529,2529,7529,58,59,'PDAAAA','QQMAAA','AAAAxx' +931,8545,1,3,1,11,31,931,931,931,931,62,63,'VJAAAA','RQMAAA','HHHHxx' +5175,8546,1,3,5,15,75,175,1175,175,5175,150,151,'BRAAAA','SQMAAA','OOOOxx' +6798,8547,0,2,8,18,98,798,798,1798,6798,196,197,'MBAAAA','TQMAAA','VVVVxx' +2111,8548,1,3,1,11,11,111,111,2111,2111,22,23,'FDAAAA','UQMAAA','AAAAxx' +6145,8549,1,1,5,5,45,145,145,1145,6145,90,91,'JCAAAA','VQMAAA','HHHHxx' +4712,8550,0,0,2,12,12,712,712,4712,4712,24,25,'GZAAAA','WQMAAA','OOOOxx' +3110,8551,0,2,0,10,10,110,1110,3110,3110,20,21,'QPAAAA','XQMAAA','VVVVxx' +97,8552,1,1,7,17,97,97,97,97,97,194,195,'TDAAAA','YQMAAA','AAAAxx' +758,8553,0,2,8,18,58,758,758,758,758,116,117,'EDAAAA','ZQMAAA','HHHHxx' +1895,8554,1,3,5,15,95,895,1895,1895,1895,190,191,'XUAAAA','ARMAAA','OOOOxx' +5289,8555,1,1,9,9,89,289,1289,289,5289,178,179,'LVAAAA','BRMAAA','VVVVxx' +5026,8556,0,2,6,6,26,26,1026,26,5026,52,53,'ILAAAA','CRMAAA','AAAAxx' +4725,8557,1,1,5,5,25,725,725,4725,4725,50,51,'TZAAAA','DRMAAA','HHHHxx' +1679,8558,1,3,9,19,79,679,1679,1679,1679,158,159,'PMAAAA','ERMAAA','OOOOxx' +4433,8559,1,1,3,13,33,433,433,4433,4433,66,67,'NOAAAA','FRMAAA','VVVVxx' +5340,8560,0,0,0,0,40,340,1340,340,5340,80,81,'KXAAAA','GRMAAA','AAAAxx' +6340,8561,0,0,0,0,40,340,340,1340,6340,80,81,'WJAAAA','HRMAAA','HHHHxx' +3261,8562,1,1,1,1,61,261,1261,3261,3261,122,123,'LVAAAA','IRMAAA','OOOOxx' +8108,8563,0,0,8,8,8,108,108,3108,8108,16,17,'WZAAAA','JRMAAA','VVVVxx' +8785,8564,1,1,5,5,85,785,785,3785,8785,170,171,'XZAAAA','KRMAAA','AAAAxx' +7391,8565,1,3,1,11,91,391,1391,2391,7391,182,183,'HYAAAA','LRMAAA','HHHHxx' +1496,8566,0,0,6,16,96,496,1496,1496,1496,192,193,'OFAAAA','MRMAAA','OOOOxx' +1484,8567,0,0,4,4,84,484,1484,1484,1484,168,169,'CFAAAA','NRMAAA','VVVVxx' +5884,8568,0,0,4,4,84,884,1884,884,5884,168,169,'ISAAAA','ORMAAA','AAAAxx' +342,8569,0,2,2,2,42,342,342,342,342,84,85,'ENAAAA','PRMAAA','HHHHxx' +7659,8570,1,3,9,19,59,659,1659,2659,7659,118,119,'PIAAAA','QRMAAA','OOOOxx' +6635,8571,1,3,5,15,35,635,635,1635,6635,70,71,'FVAAAA','RRMAAA','VVVVxx' +8507,8572,1,3,7,7,7,507,507,3507,8507,14,15,'FPAAAA','SRMAAA','AAAAxx' +2583,8573,1,3,3,3,83,583,583,2583,2583,166,167,'JVAAAA','TRMAAA','HHHHxx' +6533,8574,1,1,3,13,33,533,533,1533,6533,66,67,'HRAAAA','URMAAA','OOOOxx' +5879,8575,1,3,9,19,79,879,1879,879,5879,158,159,'DSAAAA','VRMAAA','VVVVxx' +5511,8576,1,3,1,11,11,511,1511,511,5511,22,23,'ZDAAAA','WRMAAA','AAAAxx' +3682,8577,0,2,2,2,82,682,1682,3682,3682,164,165,'QLAAAA','XRMAAA','HHHHxx' +7182,8578,0,2,2,2,82,182,1182,2182,7182,164,165,'GQAAAA','YRMAAA','OOOOxx' +1409,8579,1,1,9,9,9,409,1409,1409,1409,18,19,'FCAAAA','ZRMAAA','VVVVxx' +3363,8580,1,3,3,3,63,363,1363,3363,3363,126,127,'JZAAAA','ASMAAA','AAAAxx' +729,8581,1,1,9,9,29,729,729,729,729,58,59,'BCAAAA','BSMAAA','HHHHxx' +5857,8582,1,1,7,17,57,857,1857,857,5857,114,115,'HRAAAA','CSMAAA','OOOOxx' +235,8583,1,3,5,15,35,235,235,235,235,70,71,'BJAAAA','DSMAAA','VVVVxx' +193,8584,1,1,3,13,93,193,193,193,193,186,187,'LHAAAA','ESMAAA','AAAAxx' +5586,8585,0,2,6,6,86,586,1586,586,5586,172,173,'WGAAAA','FSMAAA','HHHHxx' +6203,8586,1,3,3,3,3,203,203,1203,6203,6,7,'PEAAAA','GSMAAA','OOOOxx' +6795,8587,1,3,5,15,95,795,795,1795,6795,190,191,'JBAAAA','HSMAAA','VVVVxx' +3211,8588,1,3,1,11,11,211,1211,3211,3211,22,23,'NTAAAA','ISMAAA','AAAAxx' +9763,8589,1,3,3,3,63,763,1763,4763,9763,126,127,'NLAAAA','JSMAAA','HHHHxx' +9043,8590,1,3,3,3,43,43,1043,4043,9043,86,87,'VJAAAA','KSMAAA','OOOOxx' +2854,8591,0,2,4,14,54,854,854,2854,2854,108,109,'UFAAAA','LSMAAA','VVVVxx' +565,8592,1,1,5,5,65,565,565,565,565,130,131,'TVAAAA','MSMAAA','AAAAxx' +9284,8593,0,0,4,4,84,284,1284,4284,9284,168,169,'CTAAAA','NSMAAA','HHHHxx' +7886,8594,0,2,6,6,86,886,1886,2886,7886,172,173,'IRAAAA','OSMAAA','OOOOxx' +122,8595,0,2,2,2,22,122,122,122,122,44,45,'SEAAAA','PSMAAA','VVVVxx' +4934,8596,0,2,4,14,34,934,934,4934,4934,68,69,'UHAAAA','QSMAAA','AAAAxx' +1766,8597,0,2,6,6,66,766,1766,1766,1766,132,133,'YPAAAA','RSMAAA','HHHHxx' +2554,8598,0,2,4,14,54,554,554,2554,2554,108,109,'GUAAAA','SSMAAA','OOOOxx' +488,8599,0,0,8,8,88,488,488,488,488,176,177,'USAAAA','TSMAAA','VVVVxx' +825,8600,1,1,5,5,25,825,825,825,825,50,51,'TFAAAA','USMAAA','AAAAxx' +678,8601,0,2,8,18,78,678,678,678,678,156,157,'CAAAAA','VSMAAA','HHHHxx' +4543,8602,1,3,3,3,43,543,543,4543,4543,86,87,'TSAAAA','WSMAAA','OOOOxx' +1699,8603,1,3,9,19,99,699,1699,1699,1699,198,199,'JNAAAA','XSMAAA','VVVVxx' +3771,8604,1,3,1,11,71,771,1771,3771,3771,142,143,'BPAAAA','YSMAAA','AAAAxx' +1234,8605,0,2,4,14,34,234,1234,1234,1234,68,69,'MVAAAA','ZSMAAA','HHHHxx' +4152,8606,0,0,2,12,52,152,152,4152,4152,104,105,'SDAAAA','ATMAAA','OOOOxx' +1632,8607,0,0,2,12,32,632,1632,1632,1632,64,65,'UKAAAA','BTMAAA','VVVVxx' +4988,8608,0,0,8,8,88,988,988,4988,4988,176,177,'WJAAAA','CTMAAA','AAAAxx' +1980,8609,0,0,0,0,80,980,1980,1980,1980,160,161,'EYAAAA','DTMAAA','HHHHxx' +7479,8610,1,3,9,19,79,479,1479,2479,7479,158,159,'RBAAAA','ETMAAA','OOOOxx' +2586,8611,0,2,6,6,86,586,586,2586,2586,172,173,'MVAAAA','FTMAAA','VVVVxx' +5433,8612,1,1,3,13,33,433,1433,433,5433,66,67,'ZAAAAA','GTMAAA','AAAAxx' +2261,8613,1,1,1,1,61,261,261,2261,2261,122,123,'ZIAAAA','HTMAAA','HHHHxx' +1180,8614,0,0,0,0,80,180,1180,1180,1180,160,161,'KTAAAA','ITMAAA','OOOOxx' +3938,8615,0,2,8,18,38,938,1938,3938,3938,76,77,'MVAAAA','JTMAAA','VVVVxx' +6714,8616,0,2,4,14,14,714,714,1714,6714,28,29,'GYAAAA','KTMAAA','AAAAxx' +2890,8617,0,2,0,10,90,890,890,2890,2890,180,181,'EHAAAA','LTMAAA','HHHHxx' +7379,8618,1,3,9,19,79,379,1379,2379,7379,158,159,'VXAAAA','MTMAAA','OOOOxx' +5896,8619,0,0,6,16,96,896,1896,896,5896,192,193,'USAAAA','NTMAAA','VVVVxx' +5949,8620,1,1,9,9,49,949,1949,949,5949,98,99,'VUAAAA','OTMAAA','AAAAxx' +3194,8621,0,2,4,14,94,194,1194,3194,3194,188,189,'WSAAAA','PTMAAA','HHHHxx' +9325,8622,1,1,5,5,25,325,1325,4325,9325,50,51,'RUAAAA','QTMAAA','OOOOxx' +9531,8623,1,3,1,11,31,531,1531,4531,9531,62,63,'PCAAAA','RTMAAA','VVVVxx' +711,8624,1,3,1,11,11,711,711,711,711,22,23,'JBAAAA','STMAAA','AAAAxx' +2450,8625,0,2,0,10,50,450,450,2450,2450,100,101,'GQAAAA','TTMAAA','HHHHxx' +1929,8626,1,1,9,9,29,929,1929,1929,1929,58,59,'FWAAAA','UTMAAA','OOOOxx' +6165,8627,1,1,5,5,65,165,165,1165,6165,130,131,'DDAAAA','VTMAAA','VVVVxx' +4050,8628,0,2,0,10,50,50,50,4050,4050,100,101,'UZAAAA','WTMAAA','AAAAxx' +9011,8629,1,3,1,11,11,11,1011,4011,9011,22,23,'PIAAAA','XTMAAA','HHHHxx' +7916,8630,0,0,6,16,16,916,1916,2916,7916,32,33,'MSAAAA','YTMAAA','OOOOxx' +9136,8631,0,0,6,16,36,136,1136,4136,9136,72,73,'KNAAAA','ZTMAAA','VVVVxx' +8782,8632,0,2,2,2,82,782,782,3782,8782,164,165,'UZAAAA','AUMAAA','AAAAxx' +8491,8633,1,3,1,11,91,491,491,3491,8491,182,183,'POAAAA','BUMAAA','HHHHxx' +5114,8634,0,2,4,14,14,114,1114,114,5114,28,29,'SOAAAA','CUMAAA','OOOOxx' +5815,8635,1,3,5,15,15,815,1815,815,5815,30,31,'RPAAAA','DUMAAA','VVVVxx' +5628,8636,0,0,8,8,28,628,1628,628,5628,56,57,'MIAAAA','EUMAAA','AAAAxx' +810,8637,0,2,0,10,10,810,810,810,810,20,21,'EFAAAA','FUMAAA','HHHHxx' +6178,8638,0,2,8,18,78,178,178,1178,6178,156,157,'QDAAAA','GUMAAA','OOOOxx' +2619,8639,1,3,9,19,19,619,619,2619,2619,38,39,'TWAAAA','HUMAAA','VVVVxx' +3340,8640,0,0,0,0,40,340,1340,3340,3340,80,81,'MYAAAA','IUMAAA','AAAAxx' +2491,8641,1,3,1,11,91,491,491,2491,2491,182,183,'VRAAAA','JUMAAA','HHHHxx' +3574,8642,0,2,4,14,74,574,1574,3574,3574,148,149,'MHAAAA','KUMAAA','OOOOxx' +6754,8643,0,2,4,14,54,754,754,1754,6754,108,109,'UZAAAA','LUMAAA','VVVVxx' +1566,8644,0,2,6,6,66,566,1566,1566,1566,132,133,'GIAAAA','MUMAAA','AAAAxx' +9174,8645,0,2,4,14,74,174,1174,4174,9174,148,149,'WOAAAA','NUMAAA','HHHHxx' +1520,8646,0,0,0,0,20,520,1520,1520,1520,40,41,'MGAAAA','OUMAAA','OOOOxx' +2691,8647,1,3,1,11,91,691,691,2691,2691,182,183,'NZAAAA','PUMAAA','VVVVxx' +6961,8648,1,1,1,1,61,961,961,1961,6961,122,123,'THAAAA','QUMAAA','AAAAxx' +5722,8649,0,2,2,2,22,722,1722,722,5722,44,45,'CMAAAA','RUMAAA','HHHHxx' +9707,8650,1,3,7,7,7,707,1707,4707,9707,14,15,'JJAAAA','SUMAAA','OOOOxx' +2891,8651,1,3,1,11,91,891,891,2891,2891,182,183,'FHAAAA','TUMAAA','VVVVxx' +341,8652,1,1,1,1,41,341,341,341,341,82,83,'DNAAAA','UUMAAA','AAAAxx' +4690,8653,0,2,0,10,90,690,690,4690,4690,180,181,'KYAAAA','VUMAAA','HHHHxx' +7841,8654,1,1,1,1,41,841,1841,2841,7841,82,83,'PPAAAA','WUMAAA','OOOOxx' +6615,8655,1,3,5,15,15,615,615,1615,6615,30,31,'LUAAAA','XUMAAA','VVVVxx' +9169,8656,1,1,9,9,69,169,1169,4169,9169,138,139,'ROAAAA','YUMAAA','AAAAxx' +6689,8657,1,1,9,9,89,689,689,1689,6689,178,179,'HXAAAA','ZUMAAA','HHHHxx' +8721,8658,1,1,1,1,21,721,721,3721,8721,42,43,'LXAAAA','AVMAAA','OOOOxx' +7508,8659,0,0,8,8,8,508,1508,2508,7508,16,17,'UCAAAA','BVMAAA','VVVVxx' +8631,8660,1,3,1,11,31,631,631,3631,8631,62,63,'ZTAAAA','CVMAAA','AAAAxx' +480,8661,0,0,0,0,80,480,480,480,480,160,161,'MSAAAA','DVMAAA','HHHHxx' +7094,8662,0,2,4,14,94,94,1094,2094,7094,188,189,'WMAAAA','EVMAAA','OOOOxx' +319,8663,1,3,9,19,19,319,319,319,319,38,39,'HMAAAA','FVMAAA','VVVVxx' +9421,8664,1,1,1,1,21,421,1421,4421,9421,42,43,'JYAAAA','GVMAAA','AAAAxx' +4352,8665,0,0,2,12,52,352,352,4352,4352,104,105,'KLAAAA','HVMAAA','HHHHxx' +5019,8666,1,3,9,19,19,19,1019,19,5019,38,39,'BLAAAA','IVMAAA','OOOOxx' +3956,8667,0,0,6,16,56,956,1956,3956,3956,112,113,'EWAAAA','JVMAAA','VVVVxx' +114,8668,0,2,4,14,14,114,114,114,114,28,29,'KEAAAA','KVMAAA','AAAAxx' +1196,8669,0,0,6,16,96,196,1196,1196,1196,192,193,'AUAAAA','LVMAAA','HHHHxx' +1407,8670,1,3,7,7,7,407,1407,1407,1407,14,15,'DCAAAA','MVMAAA','OOOOxx' +7432,8671,0,0,2,12,32,432,1432,2432,7432,64,65,'WZAAAA','NVMAAA','VVVVxx' +3141,8672,1,1,1,1,41,141,1141,3141,3141,82,83,'VQAAAA','OVMAAA','AAAAxx' +2073,8673,1,1,3,13,73,73,73,2073,2073,146,147,'TBAAAA','PVMAAA','HHHHxx' +3400,8674,0,0,0,0,0,400,1400,3400,3400,0,1,'UAAAAA','QVMAAA','OOOOxx' +505,8675,1,1,5,5,5,505,505,505,505,10,11,'LTAAAA','RVMAAA','VVVVxx' +1263,8676,1,3,3,3,63,263,1263,1263,1263,126,127,'PWAAAA','SVMAAA','AAAAxx' +190,8677,0,2,0,10,90,190,190,190,190,180,181,'IHAAAA','TVMAAA','HHHHxx' +6686,8678,0,2,6,6,86,686,686,1686,6686,172,173,'EXAAAA','UVMAAA','OOOOxx' +9821,8679,1,1,1,1,21,821,1821,4821,9821,42,43,'TNAAAA','VVMAAA','VVVVxx' +1119,8680,1,3,9,19,19,119,1119,1119,1119,38,39,'BRAAAA','WVMAAA','AAAAxx' +2955,8681,1,3,5,15,55,955,955,2955,2955,110,111,'RJAAAA','XVMAAA','HHHHxx' +224,8682,0,0,4,4,24,224,224,224,224,48,49,'QIAAAA','YVMAAA','OOOOxx' +7562,8683,0,2,2,2,62,562,1562,2562,7562,124,125,'WEAAAA','ZVMAAA','VVVVxx' +8845,8684,1,1,5,5,45,845,845,3845,8845,90,91,'FCAAAA','AWMAAA','AAAAxx' +5405,8685,1,1,5,5,5,405,1405,405,5405,10,11,'XZAAAA','BWMAAA','HHHHxx' +9192,8686,0,0,2,12,92,192,1192,4192,9192,184,185,'OPAAAA','CWMAAA','OOOOxx' +4927,8687,1,3,7,7,27,927,927,4927,4927,54,55,'NHAAAA','DWMAAA','VVVVxx' +997,8688,1,1,7,17,97,997,997,997,997,194,195,'JMAAAA','EWMAAA','AAAAxx' +989,8689,1,1,9,9,89,989,989,989,989,178,179,'BMAAAA','FWMAAA','HHHHxx' +7258,8690,0,2,8,18,58,258,1258,2258,7258,116,117,'ETAAAA','GWMAAA','OOOOxx' +6899,8691,1,3,9,19,99,899,899,1899,6899,198,199,'JFAAAA','HWMAAA','VVVVxx' +1770,8692,0,2,0,10,70,770,1770,1770,1770,140,141,'CQAAAA','IWMAAA','AAAAxx' +4423,8693,1,3,3,3,23,423,423,4423,4423,46,47,'DOAAAA','JWMAAA','HHHHxx' +5671,8694,1,3,1,11,71,671,1671,671,5671,142,143,'DKAAAA','KWMAAA','OOOOxx' +8393,8695,1,1,3,13,93,393,393,3393,8393,186,187,'VKAAAA','LWMAAA','VVVVxx' +4355,8696,1,3,5,15,55,355,355,4355,4355,110,111,'NLAAAA','MWMAAA','AAAAxx' +3919,8697,1,3,9,19,19,919,1919,3919,3919,38,39,'TUAAAA','NWMAAA','HHHHxx' +338,8698,0,2,8,18,38,338,338,338,338,76,77,'ANAAAA','OWMAAA','OOOOxx' +5790,8699,0,2,0,10,90,790,1790,790,5790,180,181,'SOAAAA','PWMAAA','VVVVxx' +1452,8700,0,0,2,12,52,452,1452,1452,1452,104,105,'WDAAAA','QWMAAA','AAAAxx' +939,8701,1,3,9,19,39,939,939,939,939,78,79,'DKAAAA','RWMAAA','HHHHxx' +8913,8702,1,1,3,13,13,913,913,3913,8913,26,27,'VEAAAA','SWMAAA','OOOOxx' +7157,8703,1,1,7,17,57,157,1157,2157,7157,114,115,'HPAAAA','TWMAAA','VVVVxx' +7240,8704,0,0,0,0,40,240,1240,2240,7240,80,81,'MSAAAA','UWMAAA','AAAAxx' +3492,8705,0,0,2,12,92,492,1492,3492,3492,184,185,'IEAAAA','VWMAAA','HHHHxx' +3464,8706,0,0,4,4,64,464,1464,3464,3464,128,129,'GDAAAA','WWMAAA','OOOOxx' +388,8707,0,0,8,8,88,388,388,388,388,176,177,'YOAAAA','XWMAAA','VVVVxx' +4135,8708,1,3,5,15,35,135,135,4135,4135,70,71,'BDAAAA','YWMAAA','AAAAxx' +1194,8709,0,2,4,14,94,194,1194,1194,1194,188,189,'YTAAAA','ZWMAAA','HHHHxx' +5476,8710,0,0,6,16,76,476,1476,476,5476,152,153,'QCAAAA','AXMAAA','OOOOxx' +9844,8711,0,0,4,4,44,844,1844,4844,9844,88,89,'QOAAAA','BXMAAA','VVVVxx' +9364,8712,0,0,4,4,64,364,1364,4364,9364,128,129,'EWAAAA','CXMAAA','AAAAxx' +5238,8713,0,2,8,18,38,238,1238,238,5238,76,77,'MTAAAA','DXMAAA','HHHHxx' +3712,8714,0,0,2,12,12,712,1712,3712,3712,24,25,'UMAAAA','EXMAAA','OOOOxx' +6189,8715,1,1,9,9,89,189,189,1189,6189,178,179,'BEAAAA','FXMAAA','VVVVxx' +5257,8716,1,1,7,17,57,257,1257,257,5257,114,115,'FUAAAA','GXMAAA','AAAAxx' +81,8717,1,1,1,1,81,81,81,81,81,162,163,'DDAAAA','HXMAAA','HHHHxx' +3289,8718,1,1,9,9,89,289,1289,3289,3289,178,179,'NWAAAA','IXMAAA','OOOOxx' +1177,8719,1,1,7,17,77,177,1177,1177,1177,154,155,'HTAAAA','JXMAAA','VVVVxx' +5038,8720,0,2,8,18,38,38,1038,38,5038,76,77,'ULAAAA','KXMAAA','AAAAxx' +325,8721,1,1,5,5,25,325,325,325,325,50,51,'NMAAAA','LXMAAA','HHHHxx' +7221,8722,1,1,1,1,21,221,1221,2221,7221,42,43,'TRAAAA','MXMAAA','OOOOxx' +7123,8723,1,3,3,3,23,123,1123,2123,7123,46,47,'ZNAAAA','NXMAAA','VVVVxx' +6364,8724,0,0,4,4,64,364,364,1364,6364,128,129,'UKAAAA','OXMAAA','AAAAxx' +4468,8725,0,0,8,8,68,468,468,4468,4468,136,137,'WPAAAA','PXMAAA','HHHHxx' +9185,8726,1,1,5,5,85,185,1185,4185,9185,170,171,'HPAAAA','QXMAAA','OOOOxx' +4158,8727,0,2,8,18,58,158,158,4158,4158,116,117,'YDAAAA','RXMAAA','VVVVxx' +9439,8728,1,3,9,19,39,439,1439,4439,9439,78,79,'BZAAAA','SXMAAA','AAAAxx' +7759,8729,1,3,9,19,59,759,1759,2759,7759,118,119,'LMAAAA','TXMAAA','HHHHxx' +3325,8730,1,1,5,5,25,325,1325,3325,3325,50,51,'XXAAAA','UXMAAA','OOOOxx' +7991,8731,1,3,1,11,91,991,1991,2991,7991,182,183,'JVAAAA','VXMAAA','VVVVxx' +1650,8732,0,2,0,10,50,650,1650,1650,1650,100,101,'MLAAAA','WXMAAA','AAAAxx' +8395,8733,1,3,5,15,95,395,395,3395,8395,190,191,'XKAAAA','XXMAAA','HHHHxx' +286,8734,0,2,6,6,86,286,286,286,286,172,173,'ALAAAA','YXMAAA','OOOOxx' +1507,8735,1,3,7,7,7,507,1507,1507,1507,14,15,'ZFAAAA','ZXMAAA','VVVVxx' +4122,8736,0,2,2,2,22,122,122,4122,4122,44,45,'OCAAAA','AYMAAA','AAAAxx' +2625,8737,1,1,5,5,25,625,625,2625,2625,50,51,'ZWAAAA','BYMAAA','HHHHxx' +1140,8738,0,0,0,0,40,140,1140,1140,1140,80,81,'WRAAAA','CYMAAA','OOOOxx' +5262,8739,0,2,2,2,62,262,1262,262,5262,124,125,'KUAAAA','DYMAAA','VVVVxx' +4919,8740,1,3,9,19,19,919,919,4919,4919,38,39,'FHAAAA','EYMAAA','AAAAxx' +7266,8741,0,2,6,6,66,266,1266,2266,7266,132,133,'MTAAAA','FYMAAA','HHHHxx' +630,8742,0,2,0,10,30,630,630,630,630,60,61,'GYAAAA','GYMAAA','OOOOxx' +2129,8743,1,1,9,9,29,129,129,2129,2129,58,59,'XDAAAA','HYMAAA','VVVVxx' +9552,8744,0,0,2,12,52,552,1552,4552,9552,104,105,'KDAAAA','IYMAAA','AAAAxx' +3018,8745,0,2,8,18,18,18,1018,3018,3018,36,37,'CMAAAA','JYMAAA','HHHHxx' +7145,8746,1,1,5,5,45,145,1145,2145,7145,90,91,'VOAAAA','KYMAAA','OOOOxx' +1633,8747,1,1,3,13,33,633,1633,1633,1633,66,67,'VKAAAA','LYMAAA','VVVVxx' +7957,8748,1,1,7,17,57,957,1957,2957,7957,114,115,'BUAAAA','MYMAAA','AAAAxx' +774,8749,0,2,4,14,74,774,774,774,774,148,149,'UDAAAA','NYMAAA','HHHHxx' +9371,8750,1,3,1,11,71,371,1371,4371,9371,142,143,'LWAAAA','OYMAAA','OOOOxx' +6007,8751,1,3,7,7,7,7,7,1007,6007,14,15,'BXAAAA','PYMAAA','VVVVxx' +5277,8752,1,1,7,17,77,277,1277,277,5277,154,155,'ZUAAAA','QYMAAA','AAAAxx' +9426,8753,0,2,6,6,26,426,1426,4426,9426,52,53,'OYAAAA','RYMAAA','HHHHxx' +9190,8754,0,2,0,10,90,190,1190,4190,9190,180,181,'MPAAAA','SYMAAA','OOOOxx' +8996,8755,0,0,6,16,96,996,996,3996,8996,192,193,'AIAAAA','TYMAAA','VVVVxx' +3409,8756,1,1,9,9,9,409,1409,3409,3409,18,19,'DBAAAA','UYMAAA','AAAAxx' +7212,8757,0,0,2,12,12,212,1212,2212,7212,24,25,'KRAAAA','VYMAAA','HHHHxx' +416,8758,0,0,6,16,16,416,416,416,416,32,33,'AQAAAA','WYMAAA','OOOOxx' +7211,8759,1,3,1,11,11,211,1211,2211,7211,22,23,'JRAAAA','XYMAAA','VVVVxx' +7454,8760,0,2,4,14,54,454,1454,2454,7454,108,109,'SAAAAA','YYMAAA','AAAAxx' +8417,8761,1,1,7,17,17,417,417,3417,8417,34,35,'TLAAAA','ZYMAAA','HHHHxx' +5562,8762,0,2,2,2,62,562,1562,562,5562,124,125,'YFAAAA','AZMAAA','OOOOxx' +4996,8763,0,0,6,16,96,996,996,4996,4996,192,193,'EKAAAA','BZMAAA','VVVVxx' +5718,8764,0,2,8,18,18,718,1718,718,5718,36,37,'YLAAAA','CZMAAA','AAAAxx' +7838,8765,0,2,8,18,38,838,1838,2838,7838,76,77,'MPAAAA','DZMAAA','HHHHxx' +7715,8766,1,3,5,15,15,715,1715,2715,7715,30,31,'TKAAAA','EZMAAA','OOOOxx' +2780,8767,0,0,0,0,80,780,780,2780,2780,160,161,'YCAAAA','FZMAAA','VVVVxx' +1013,8768,1,1,3,13,13,13,1013,1013,1013,26,27,'ZMAAAA','GZMAAA','AAAAxx' +8465,8769,1,1,5,5,65,465,465,3465,8465,130,131,'PNAAAA','HZMAAA','HHHHxx' +7976,8770,0,0,6,16,76,976,1976,2976,7976,152,153,'UUAAAA','IZMAAA','OOOOxx' +7150,8771,0,2,0,10,50,150,1150,2150,7150,100,101,'APAAAA','JZMAAA','VVVVxx' +6471,8772,1,3,1,11,71,471,471,1471,6471,142,143,'XOAAAA','KZMAAA','AAAAxx' +1927,8773,1,3,7,7,27,927,1927,1927,1927,54,55,'DWAAAA','LZMAAA','HHHHxx' +227,8774,1,3,7,7,27,227,227,227,227,54,55,'TIAAAA','MZMAAA','OOOOxx' +6462,8775,0,2,2,2,62,462,462,1462,6462,124,125,'OOAAAA','NZMAAA','VVVVxx' +5227,8776,1,3,7,7,27,227,1227,227,5227,54,55,'BTAAAA','OZMAAA','AAAAxx' +1074,8777,0,2,4,14,74,74,1074,1074,1074,148,149,'IPAAAA','PZMAAA','HHHHxx' +9448,8778,0,0,8,8,48,448,1448,4448,9448,96,97,'KZAAAA','QZMAAA','OOOOxx' +4459,8779,1,3,9,19,59,459,459,4459,4459,118,119,'NPAAAA','RZMAAA','VVVVxx' +2478,8780,0,2,8,18,78,478,478,2478,2478,156,157,'IRAAAA','SZMAAA','AAAAxx' +5005,8781,1,1,5,5,5,5,1005,5,5005,10,11,'NKAAAA','TZMAAA','HHHHxx' +2418,8782,0,2,8,18,18,418,418,2418,2418,36,37,'APAAAA','UZMAAA','OOOOxx' +6991,8783,1,3,1,11,91,991,991,1991,6991,182,183,'XIAAAA','VZMAAA','VVVVxx' +4729,8784,1,1,9,9,29,729,729,4729,4729,58,59,'XZAAAA','WZMAAA','AAAAxx' +3548,8785,0,0,8,8,48,548,1548,3548,3548,96,97,'MGAAAA','XZMAAA','HHHHxx' +9616,8786,0,0,6,16,16,616,1616,4616,9616,32,33,'WFAAAA','YZMAAA','OOOOxx' +2901,8787,1,1,1,1,1,901,901,2901,2901,2,3,'PHAAAA','ZZMAAA','VVVVxx' +10,8788,0,2,0,10,10,10,10,10,10,20,21,'KAAAAA','AANAAA','AAAAxx' +2637,8789,1,1,7,17,37,637,637,2637,2637,74,75,'LXAAAA','BANAAA','HHHHxx' +6747,8790,1,3,7,7,47,747,747,1747,6747,94,95,'NZAAAA','CANAAA','OOOOxx' +797,8791,1,1,7,17,97,797,797,797,797,194,195,'REAAAA','DANAAA','VVVVxx' +7609,8792,1,1,9,9,9,609,1609,2609,7609,18,19,'RGAAAA','EANAAA','AAAAxx' +8290,8793,0,2,0,10,90,290,290,3290,8290,180,181,'WGAAAA','FANAAA','HHHHxx' +8765,8794,1,1,5,5,65,765,765,3765,8765,130,131,'DZAAAA','GANAAA','OOOOxx' +8053,8795,1,1,3,13,53,53,53,3053,8053,106,107,'TXAAAA','HANAAA','VVVVxx' +5602,8796,0,2,2,2,2,602,1602,602,5602,4,5,'MHAAAA','IANAAA','AAAAxx' +3672,8797,0,0,2,12,72,672,1672,3672,3672,144,145,'GLAAAA','JANAAA','HHHHxx' +7513,8798,1,1,3,13,13,513,1513,2513,7513,26,27,'ZCAAAA','KANAAA','OOOOxx' +3462,8799,0,2,2,2,62,462,1462,3462,3462,124,125,'EDAAAA','LANAAA','VVVVxx' +4457,8800,1,1,7,17,57,457,457,4457,4457,114,115,'LPAAAA','MANAAA','AAAAxx' +6547,8801,1,3,7,7,47,547,547,1547,6547,94,95,'VRAAAA','NANAAA','HHHHxx' +7417,8802,1,1,7,17,17,417,1417,2417,7417,34,35,'HZAAAA','OANAAA','OOOOxx' +8641,8803,1,1,1,1,41,641,641,3641,8641,82,83,'JUAAAA','PANAAA','VVVVxx' +149,8804,1,1,9,9,49,149,149,149,149,98,99,'TFAAAA','QANAAA','AAAAxx' +5041,8805,1,1,1,1,41,41,1041,41,5041,82,83,'XLAAAA','RANAAA','HHHHxx' +9232,8806,0,0,2,12,32,232,1232,4232,9232,64,65,'CRAAAA','SANAAA','OOOOxx' +3603,8807,1,3,3,3,3,603,1603,3603,3603,6,7,'PIAAAA','TANAAA','VVVVxx' +2792,8808,0,0,2,12,92,792,792,2792,2792,184,185,'KDAAAA','UANAAA','AAAAxx' +6620,8809,0,0,0,0,20,620,620,1620,6620,40,41,'QUAAAA','VANAAA','HHHHxx' +4000,8810,0,0,0,0,0,0,0,4000,4000,0,1,'WXAAAA','WANAAA','OOOOxx' +659,8811,1,3,9,19,59,659,659,659,659,118,119,'JZAAAA','XANAAA','VVVVxx' +8174,8812,0,2,4,14,74,174,174,3174,8174,148,149,'KCAAAA','YANAAA','AAAAxx' +4599,8813,1,3,9,19,99,599,599,4599,4599,198,199,'XUAAAA','ZANAAA','HHHHxx' +7851,8814,1,3,1,11,51,851,1851,2851,7851,102,103,'ZPAAAA','ABNAAA','OOOOxx' +6284,8815,0,0,4,4,84,284,284,1284,6284,168,169,'SHAAAA','BBNAAA','VVVVxx' +7116,8816,0,0,6,16,16,116,1116,2116,7116,32,33,'SNAAAA','CBNAAA','AAAAxx' +5595,8817,1,3,5,15,95,595,1595,595,5595,190,191,'FHAAAA','DBNAAA','HHHHxx' +2903,8818,1,3,3,3,3,903,903,2903,2903,6,7,'RHAAAA','EBNAAA','OOOOxx' +5948,8819,0,0,8,8,48,948,1948,948,5948,96,97,'UUAAAA','FBNAAA','VVVVxx' +225,8820,1,1,5,5,25,225,225,225,225,50,51,'RIAAAA','GBNAAA','AAAAxx' +524,8821,0,0,4,4,24,524,524,524,524,48,49,'EUAAAA','HBNAAA','HHHHxx' +7639,8822,1,3,9,19,39,639,1639,2639,7639,78,79,'VHAAAA','IBNAAA','OOOOxx' +7297,8823,1,1,7,17,97,297,1297,2297,7297,194,195,'RUAAAA','JBNAAA','VVVVxx' +2606,8824,0,2,6,6,6,606,606,2606,2606,12,13,'GWAAAA','KBNAAA','AAAAxx' +4771,8825,1,3,1,11,71,771,771,4771,4771,142,143,'NBAAAA','LBNAAA','HHHHxx' +8162,8826,0,2,2,2,62,162,162,3162,8162,124,125,'YBAAAA','MBNAAA','OOOOxx' +8999,8827,1,3,9,19,99,999,999,3999,8999,198,199,'DIAAAA','NBNAAA','VVVVxx' +2309,8828,1,1,9,9,9,309,309,2309,2309,18,19,'VKAAAA','OBNAAA','AAAAxx' +3594,8829,0,2,4,14,94,594,1594,3594,3594,188,189,'GIAAAA','PBNAAA','HHHHxx' +6092,8830,0,0,2,12,92,92,92,1092,6092,184,185,'IAAAAA','QBNAAA','OOOOxx' +7467,8831,1,3,7,7,67,467,1467,2467,7467,134,135,'FBAAAA','RBNAAA','VVVVxx' +6986,8832,0,2,6,6,86,986,986,1986,6986,172,173,'SIAAAA','SBNAAA','AAAAxx' +9898,8833,0,2,8,18,98,898,1898,4898,9898,196,197,'SQAAAA','TBNAAA','HHHHxx' +9578,8834,0,2,8,18,78,578,1578,4578,9578,156,157,'KEAAAA','UBNAAA','OOOOxx' +156,8835,0,0,6,16,56,156,156,156,156,112,113,'AGAAAA','VBNAAA','VVVVxx' +5810,8836,0,2,0,10,10,810,1810,810,5810,20,21,'MPAAAA','WBNAAA','AAAAxx' +790,8837,0,2,0,10,90,790,790,790,790,180,181,'KEAAAA','XBNAAA','HHHHxx' +6840,8838,0,0,0,0,40,840,840,1840,6840,80,81,'CDAAAA','YBNAAA','OOOOxx' +6725,8839,1,1,5,5,25,725,725,1725,6725,50,51,'RYAAAA','ZBNAAA','VVVVxx' +5528,8840,0,0,8,8,28,528,1528,528,5528,56,57,'QEAAAA','ACNAAA','AAAAxx' +4120,8841,0,0,0,0,20,120,120,4120,4120,40,41,'MCAAAA','BCNAAA','HHHHxx' +6694,8842,0,2,4,14,94,694,694,1694,6694,188,189,'MXAAAA','CCNAAA','OOOOxx' +3552,8843,0,0,2,12,52,552,1552,3552,3552,104,105,'QGAAAA','DCNAAA','VVVVxx' +1478,8844,0,2,8,18,78,478,1478,1478,1478,156,157,'WEAAAA','ECNAAA','AAAAxx' +8084,8845,0,0,4,4,84,84,84,3084,8084,168,169,'YYAAAA','FCNAAA','HHHHxx' +7578,8846,0,2,8,18,78,578,1578,2578,7578,156,157,'MFAAAA','GCNAAA','OOOOxx' +6314,8847,0,2,4,14,14,314,314,1314,6314,28,29,'WIAAAA','HCNAAA','VVVVxx' +6123,8848,1,3,3,3,23,123,123,1123,6123,46,47,'NBAAAA','ICNAAA','AAAAxx' +9443,8849,1,3,3,3,43,443,1443,4443,9443,86,87,'FZAAAA','JCNAAA','HHHHxx' +9628,8850,0,0,8,8,28,628,1628,4628,9628,56,57,'IGAAAA','KCNAAA','OOOOxx' +8508,8851,0,0,8,8,8,508,508,3508,8508,16,17,'GPAAAA','LCNAAA','VVVVxx' +5552,8852,0,0,2,12,52,552,1552,552,5552,104,105,'OFAAAA','MCNAAA','AAAAxx' +5327,8853,1,3,7,7,27,327,1327,327,5327,54,55,'XWAAAA','NCNAAA','HHHHxx' +7771,8854,1,3,1,11,71,771,1771,2771,7771,142,143,'XMAAAA','OCNAAA','OOOOxx' +8932,8855,0,0,2,12,32,932,932,3932,8932,64,65,'OFAAAA','PCNAAA','VVVVxx' +3526,8856,0,2,6,6,26,526,1526,3526,3526,52,53,'QFAAAA','QCNAAA','AAAAxx' +4340,8857,0,0,0,0,40,340,340,4340,4340,80,81,'YKAAAA','RCNAAA','HHHHxx' +9419,8858,1,3,9,19,19,419,1419,4419,9419,38,39,'HYAAAA','SCNAAA','OOOOxx' +8421,8859,1,1,1,1,21,421,421,3421,8421,42,43,'XLAAAA','TCNAAA','VVVVxx' +7431,8860,1,3,1,11,31,431,1431,2431,7431,62,63,'VZAAAA','UCNAAA','AAAAxx' +172,8861,0,0,2,12,72,172,172,172,172,144,145,'QGAAAA','VCNAAA','HHHHxx' +3279,8862,1,3,9,19,79,279,1279,3279,3279,158,159,'DWAAAA','WCNAAA','OOOOxx' +1508,8863,0,0,8,8,8,508,1508,1508,1508,16,17,'AGAAAA','XCNAAA','VVVVxx' +7091,8864,1,3,1,11,91,91,1091,2091,7091,182,183,'TMAAAA','YCNAAA','AAAAxx' +1419,8865,1,3,9,19,19,419,1419,1419,1419,38,39,'PCAAAA','ZCNAAA','HHHHxx' +3032,8866,0,0,2,12,32,32,1032,3032,3032,64,65,'QMAAAA','ADNAAA','OOOOxx' +8683,8867,1,3,3,3,83,683,683,3683,8683,166,167,'ZVAAAA','BDNAAA','VVVVxx' +4763,8868,1,3,3,3,63,763,763,4763,4763,126,127,'FBAAAA','CDNAAA','AAAAxx' +4424,8869,0,0,4,4,24,424,424,4424,4424,48,49,'EOAAAA','DDNAAA','HHHHxx' +8640,8870,0,0,0,0,40,640,640,3640,8640,80,81,'IUAAAA','EDNAAA','OOOOxx' +7187,8871,1,3,7,7,87,187,1187,2187,7187,174,175,'LQAAAA','FDNAAA','VVVVxx' +6247,8872,1,3,7,7,47,247,247,1247,6247,94,95,'HGAAAA','GDNAAA','AAAAxx' +7340,8873,0,0,0,0,40,340,1340,2340,7340,80,81,'IWAAAA','HDNAAA','HHHHxx' +182,8874,0,2,2,2,82,182,182,182,182,164,165,'AHAAAA','IDNAAA','OOOOxx' +2948,8875,0,0,8,8,48,948,948,2948,2948,96,97,'KJAAAA','JDNAAA','VVVVxx' +9462,8876,0,2,2,2,62,462,1462,4462,9462,124,125,'YZAAAA','KDNAAA','AAAAxx' +5997,8877,1,1,7,17,97,997,1997,997,5997,194,195,'RWAAAA','LDNAAA','HHHHxx' +5608,8878,0,0,8,8,8,608,1608,608,5608,16,17,'SHAAAA','MDNAAA','OOOOxx' +1472,8879,0,0,2,12,72,472,1472,1472,1472,144,145,'QEAAAA','NDNAAA','VVVVxx' +277,8880,1,1,7,17,77,277,277,277,277,154,155,'RKAAAA','ODNAAA','AAAAxx' +4807,8881,1,3,7,7,7,807,807,4807,4807,14,15,'XCAAAA','PDNAAA','HHHHxx' +4969,8882,1,1,9,9,69,969,969,4969,4969,138,139,'DJAAAA','QDNAAA','OOOOxx' +5611,8883,1,3,1,11,11,611,1611,611,5611,22,23,'VHAAAA','RDNAAA','VVVVxx' +372,8884,0,0,2,12,72,372,372,372,372,144,145,'IOAAAA','SDNAAA','AAAAxx' +6666,8885,0,2,6,6,66,666,666,1666,6666,132,133,'KWAAAA','TDNAAA','HHHHxx' +476,8886,0,0,6,16,76,476,476,476,476,152,153,'ISAAAA','UDNAAA','OOOOxx' +5225,8887,1,1,5,5,25,225,1225,225,5225,50,51,'ZSAAAA','VDNAAA','VVVVxx' +5143,8888,1,3,3,3,43,143,1143,143,5143,86,87,'VPAAAA','WDNAAA','AAAAxx' +1853,8889,1,1,3,13,53,853,1853,1853,1853,106,107,'HTAAAA','XDNAAA','HHHHxx' +675,8890,1,3,5,15,75,675,675,675,675,150,151,'ZZAAAA','YDNAAA','OOOOxx' +5643,8891,1,3,3,3,43,643,1643,643,5643,86,87,'BJAAAA','ZDNAAA','VVVVxx' +5317,8892,1,1,7,17,17,317,1317,317,5317,34,35,'NWAAAA','AENAAA','AAAAxx' +8102,8893,0,2,2,2,2,102,102,3102,8102,4,5,'QZAAAA','BENAAA','HHHHxx' +978,8894,0,2,8,18,78,978,978,978,978,156,157,'QLAAAA','CENAAA','OOOOxx' +4620,8895,0,0,0,0,20,620,620,4620,4620,40,41,'SVAAAA','DENAAA','VVVVxx' +151,8896,1,3,1,11,51,151,151,151,151,102,103,'VFAAAA','EENAAA','AAAAxx' +972,8897,0,0,2,12,72,972,972,972,972,144,145,'KLAAAA','FENAAA','HHHHxx' +6820,8898,0,0,0,0,20,820,820,1820,6820,40,41,'ICAAAA','GENAAA','OOOOxx' +7387,8899,1,3,7,7,87,387,1387,2387,7387,174,175,'DYAAAA','HENAAA','VVVVxx' +9634,8900,0,2,4,14,34,634,1634,4634,9634,68,69,'OGAAAA','IENAAA','AAAAxx' +6308,8901,0,0,8,8,8,308,308,1308,6308,16,17,'QIAAAA','JENAAA','HHHHxx' +8323,8902,1,3,3,3,23,323,323,3323,8323,46,47,'DIAAAA','KENAAA','OOOOxx' +6672,8903,0,0,2,12,72,672,672,1672,6672,144,145,'QWAAAA','LENAAA','VVVVxx' +8283,8904,1,3,3,3,83,283,283,3283,8283,166,167,'PGAAAA','MENAAA','AAAAxx' +7996,8905,0,0,6,16,96,996,1996,2996,7996,192,193,'OVAAAA','NENAAA','HHHHxx' +6488,8906,0,0,8,8,88,488,488,1488,6488,176,177,'OPAAAA','OENAAA','OOOOxx' +2365,8907,1,1,5,5,65,365,365,2365,2365,130,131,'ZMAAAA','PENAAA','VVVVxx' +9746,8908,0,2,6,6,46,746,1746,4746,9746,92,93,'WKAAAA','QENAAA','AAAAxx' +8605,8909,1,1,5,5,5,605,605,3605,8605,10,11,'ZSAAAA','RENAAA','HHHHxx' +3342,8910,0,2,2,2,42,342,1342,3342,3342,84,85,'OYAAAA','SENAAA','OOOOxx' +8429,8911,1,1,9,9,29,429,429,3429,8429,58,59,'FMAAAA','TENAAA','VVVVxx' +1162,8912,0,2,2,2,62,162,1162,1162,1162,124,125,'SSAAAA','UENAAA','AAAAxx' +531,8913,1,3,1,11,31,531,531,531,531,62,63,'LUAAAA','VENAAA','HHHHxx' +8408,8914,0,0,8,8,8,408,408,3408,8408,16,17,'KLAAAA','WENAAA','OOOOxx' +8862,8915,0,2,2,2,62,862,862,3862,8862,124,125,'WCAAAA','XENAAA','VVVVxx' +5843,8916,1,3,3,3,43,843,1843,843,5843,86,87,'TQAAAA','YENAAA','AAAAxx' +8704,8917,0,0,4,4,4,704,704,3704,8704,8,9,'UWAAAA','ZENAAA','HHHHxx' +7070,8918,0,2,0,10,70,70,1070,2070,7070,140,141,'YLAAAA','AFNAAA','OOOOxx' +9119,8919,1,3,9,19,19,119,1119,4119,9119,38,39,'TMAAAA','BFNAAA','VVVVxx' +8344,8920,0,0,4,4,44,344,344,3344,8344,88,89,'YIAAAA','CFNAAA','AAAAxx' +8979,8921,1,3,9,19,79,979,979,3979,8979,158,159,'JHAAAA','DFNAAA','HHHHxx' +2971,8922,1,3,1,11,71,971,971,2971,2971,142,143,'HKAAAA','EFNAAA','OOOOxx' +7700,8923,0,0,0,0,0,700,1700,2700,7700,0,1,'EKAAAA','FFNAAA','VVVVxx' +8280,8924,0,0,0,0,80,280,280,3280,8280,160,161,'MGAAAA','GFNAAA','AAAAxx' +9096,8925,0,0,6,16,96,96,1096,4096,9096,192,193,'WLAAAA','HFNAAA','HHHHxx' +99,8926,1,3,9,19,99,99,99,99,99,198,199,'VDAAAA','IFNAAA','OOOOxx' +6696,8927,0,0,6,16,96,696,696,1696,6696,192,193,'OXAAAA','JFNAAA','VVVVxx' +9490,8928,0,2,0,10,90,490,1490,4490,9490,180,181,'ABAAAA','KFNAAA','AAAAxx' +9073,8929,1,1,3,13,73,73,1073,4073,9073,146,147,'ZKAAAA','LFNAAA','HHHHxx' +1861,8930,1,1,1,1,61,861,1861,1861,1861,122,123,'PTAAAA','MFNAAA','OOOOxx' +4413,8931,1,1,3,13,13,413,413,4413,4413,26,27,'TNAAAA','NFNAAA','VVVVxx' +6002,8932,0,2,2,2,2,2,2,1002,6002,4,5,'WWAAAA','OFNAAA','AAAAxx' +439,8933,1,3,9,19,39,439,439,439,439,78,79,'XQAAAA','PFNAAA','HHHHxx' +5449,8934,1,1,9,9,49,449,1449,449,5449,98,99,'PBAAAA','QFNAAA','OOOOxx' +9737,8935,1,1,7,17,37,737,1737,4737,9737,74,75,'NKAAAA','RFNAAA','VVVVxx' +1898,8936,0,2,8,18,98,898,1898,1898,1898,196,197,'AVAAAA','SFNAAA','AAAAxx' +4189,8937,1,1,9,9,89,189,189,4189,4189,178,179,'DFAAAA','TFNAAA','HHHHxx' +1408,8938,0,0,8,8,8,408,1408,1408,1408,16,17,'ECAAAA','UFNAAA','OOOOxx' +394,8939,0,2,4,14,94,394,394,394,394,188,189,'EPAAAA','VFNAAA','VVVVxx' +1935,8940,1,3,5,15,35,935,1935,1935,1935,70,71,'LWAAAA','WFNAAA','AAAAxx' +3965,8941,1,1,5,5,65,965,1965,3965,3965,130,131,'NWAAAA','XFNAAA','HHHHxx' +6821,8942,1,1,1,1,21,821,821,1821,6821,42,43,'JCAAAA','YFNAAA','OOOOxx' +349,8943,1,1,9,9,49,349,349,349,349,98,99,'LNAAAA','ZFNAAA','VVVVxx' +8428,8944,0,0,8,8,28,428,428,3428,8428,56,57,'EMAAAA','AGNAAA','AAAAxx' +8200,8945,0,0,0,0,0,200,200,3200,8200,0,1,'KDAAAA','BGNAAA','HHHHxx' +1737,8946,1,1,7,17,37,737,1737,1737,1737,74,75,'VOAAAA','CGNAAA','OOOOxx' +6516,8947,0,0,6,16,16,516,516,1516,6516,32,33,'QQAAAA','DGNAAA','VVVVxx' +5441,8948,1,1,1,1,41,441,1441,441,5441,82,83,'HBAAAA','EGNAAA','AAAAxx' +5999,8949,1,3,9,19,99,999,1999,999,5999,198,199,'TWAAAA','FGNAAA','HHHHxx' +1539,8950,1,3,9,19,39,539,1539,1539,1539,78,79,'FHAAAA','GGNAAA','OOOOxx' +9067,8951,1,3,7,7,67,67,1067,4067,9067,134,135,'TKAAAA','HGNAAA','VVVVxx' +4061,8952,1,1,1,1,61,61,61,4061,4061,122,123,'FAAAAA','IGNAAA','AAAAxx' +1642,8953,0,2,2,2,42,642,1642,1642,1642,84,85,'ELAAAA','JGNAAA','HHHHxx' +4657,8954,1,1,7,17,57,657,657,4657,4657,114,115,'DXAAAA','KGNAAA','OOOOxx' +9934,8955,0,2,4,14,34,934,1934,4934,9934,68,69,'CSAAAA','LGNAAA','VVVVxx' +6385,8956,1,1,5,5,85,385,385,1385,6385,170,171,'PLAAAA','MGNAAA','AAAAxx' +6775,8957,1,3,5,15,75,775,775,1775,6775,150,151,'PAAAAA','NGNAAA','HHHHxx' +3873,8958,1,1,3,13,73,873,1873,3873,3873,146,147,'ZSAAAA','OGNAAA','OOOOxx' +3862,8959,0,2,2,2,62,862,1862,3862,3862,124,125,'OSAAAA','PGNAAA','VVVVxx' +1224,8960,0,0,4,4,24,224,1224,1224,1224,48,49,'CVAAAA','QGNAAA','AAAAxx' +4483,8961,1,3,3,3,83,483,483,4483,4483,166,167,'LQAAAA','RGNAAA','HHHHxx' +3685,8962,1,1,5,5,85,685,1685,3685,3685,170,171,'TLAAAA','SGNAAA','OOOOxx' +6082,8963,0,2,2,2,82,82,82,1082,6082,164,165,'YZAAAA','TGNAAA','VVVVxx' +7798,8964,0,2,8,18,98,798,1798,2798,7798,196,197,'YNAAAA','UGNAAA','AAAAxx' +9039,8965,1,3,9,19,39,39,1039,4039,9039,78,79,'RJAAAA','VGNAAA','HHHHxx' +985,8966,1,1,5,5,85,985,985,985,985,170,171,'XLAAAA','WGNAAA','OOOOxx' +5389,8967,1,1,9,9,89,389,1389,389,5389,178,179,'HZAAAA','XGNAAA','VVVVxx' +1716,8968,0,0,6,16,16,716,1716,1716,1716,32,33,'AOAAAA','YGNAAA','AAAAxx' +4209,8969,1,1,9,9,9,209,209,4209,4209,18,19,'XFAAAA','ZGNAAA','HHHHxx' +746,8970,0,2,6,6,46,746,746,746,746,92,93,'SCAAAA','AHNAAA','OOOOxx' +6295,8971,1,3,5,15,95,295,295,1295,6295,190,191,'DIAAAA','BHNAAA','VVVVxx' +9754,8972,0,2,4,14,54,754,1754,4754,9754,108,109,'ELAAAA','CHNAAA','AAAAxx' +2336,8973,0,0,6,16,36,336,336,2336,2336,72,73,'WLAAAA','DHNAAA','HHHHxx' +3701,8974,1,1,1,1,1,701,1701,3701,3701,2,3,'JMAAAA','EHNAAA','OOOOxx' +3551,8975,1,3,1,11,51,551,1551,3551,3551,102,103,'PGAAAA','FHNAAA','VVVVxx' +8516,8976,0,0,6,16,16,516,516,3516,8516,32,33,'OPAAAA','GHNAAA','AAAAxx' +9290,8977,0,2,0,10,90,290,1290,4290,9290,180,181,'ITAAAA','HHNAAA','HHHHxx' +5686,8978,0,2,6,6,86,686,1686,686,5686,172,173,'SKAAAA','IHNAAA','OOOOxx' +2893,8979,1,1,3,13,93,893,893,2893,2893,186,187,'HHAAAA','JHNAAA','VVVVxx' +6279,8980,1,3,9,19,79,279,279,1279,6279,158,159,'NHAAAA','KHNAAA','AAAAxx' +2278,8981,0,2,8,18,78,278,278,2278,2278,156,157,'QJAAAA','LHNAAA','HHHHxx' +1618,8982,0,2,8,18,18,618,1618,1618,1618,36,37,'GKAAAA','MHNAAA','OOOOxx' +3450,8983,0,2,0,10,50,450,1450,3450,3450,100,101,'SCAAAA','NHNAAA','VVVVxx' +8857,8984,1,1,7,17,57,857,857,3857,8857,114,115,'RCAAAA','OHNAAA','AAAAxx' +1005,8985,1,1,5,5,5,5,1005,1005,1005,10,11,'RMAAAA','PHNAAA','HHHHxx' +4727,8986,1,3,7,7,27,727,727,4727,4727,54,55,'VZAAAA','QHNAAA','OOOOxx' +7617,8987,1,1,7,17,17,617,1617,2617,7617,34,35,'ZGAAAA','RHNAAA','VVVVxx' +2021,8988,1,1,1,1,21,21,21,2021,2021,42,43,'TZAAAA','SHNAAA','AAAAxx' +9124,8989,0,0,4,4,24,124,1124,4124,9124,48,49,'YMAAAA','THNAAA','HHHHxx' +3175,8990,1,3,5,15,75,175,1175,3175,3175,150,151,'DSAAAA','UHNAAA','OOOOxx' +2949,8991,1,1,9,9,49,949,949,2949,2949,98,99,'LJAAAA','VHNAAA','VVVVxx' +2424,8992,0,0,4,4,24,424,424,2424,2424,48,49,'GPAAAA','WHNAAA','AAAAxx' +4791,8993,1,3,1,11,91,791,791,4791,4791,182,183,'HCAAAA','XHNAAA','HHHHxx' +7500,8994,0,0,0,0,0,500,1500,2500,7500,0,1,'MCAAAA','YHNAAA','OOOOxx' +4893,8995,1,1,3,13,93,893,893,4893,4893,186,187,'FGAAAA','ZHNAAA','VVVVxx' +121,8996,1,1,1,1,21,121,121,121,121,42,43,'REAAAA','AINAAA','AAAAxx' +1965,8997,1,1,5,5,65,965,1965,1965,1965,130,131,'PXAAAA','BINAAA','HHHHxx' +2972,8998,0,0,2,12,72,972,972,2972,2972,144,145,'IKAAAA','CINAAA','OOOOxx' +662,8999,0,2,2,2,62,662,662,662,662,124,125,'MZAAAA','DINAAA','VVVVxx' +7074,9000,0,2,4,14,74,74,1074,2074,7074,148,149,'CMAAAA','EINAAA','AAAAxx' +981,9001,1,1,1,1,81,981,981,981,981,162,163,'TLAAAA','FINAAA','HHHHxx' +3520,9002,0,0,0,0,20,520,1520,3520,3520,40,41,'KFAAAA','GINAAA','OOOOxx' +6540,9003,0,0,0,0,40,540,540,1540,6540,80,81,'ORAAAA','HINAAA','VVVVxx' +6648,9004,0,0,8,8,48,648,648,1648,6648,96,97,'SVAAAA','IINAAA','AAAAxx' +7076,9005,0,0,6,16,76,76,1076,2076,7076,152,153,'EMAAAA','JINAAA','HHHHxx' +6919,9006,1,3,9,19,19,919,919,1919,6919,38,39,'DGAAAA','KINAAA','OOOOxx' +1108,9007,0,0,8,8,8,108,1108,1108,1108,16,17,'QQAAAA','LINAAA','VVVVxx' +317,9008,1,1,7,17,17,317,317,317,317,34,35,'FMAAAA','MINAAA','AAAAxx' +3483,9009,1,3,3,3,83,483,1483,3483,3483,166,167,'ZDAAAA','NINAAA','HHHHxx' +6764,9010,0,0,4,4,64,764,764,1764,6764,128,129,'EAAAAA','OINAAA','OOOOxx' +1235,9011,1,3,5,15,35,235,1235,1235,1235,70,71,'NVAAAA','PINAAA','VVVVxx' +7121,9012,1,1,1,1,21,121,1121,2121,7121,42,43,'XNAAAA','QINAAA','AAAAxx' +426,9013,0,2,6,6,26,426,426,426,426,52,53,'KQAAAA','RINAAA','HHHHxx' +6880,9014,0,0,0,0,80,880,880,1880,6880,160,161,'QEAAAA','SINAAA','OOOOxx' +5401,9015,1,1,1,1,1,401,1401,401,5401,2,3,'TZAAAA','TINAAA','VVVVxx' +7323,9016,1,3,3,3,23,323,1323,2323,7323,46,47,'RVAAAA','UINAAA','AAAAxx' +9751,9017,1,3,1,11,51,751,1751,4751,9751,102,103,'BLAAAA','VINAAA','HHHHxx' +3436,9018,0,0,6,16,36,436,1436,3436,3436,72,73,'ECAAAA','WINAAA','OOOOxx' +7319,9019,1,3,9,19,19,319,1319,2319,7319,38,39,'NVAAAA','XINAAA','VVVVxx' +7882,9020,0,2,2,2,82,882,1882,2882,7882,164,165,'ERAAAA','YINAAA','AAAAxx' +8260,9021,0,0,0,0,60,260,260,3260,8260,120,121,'SFAAAA','ZINAAA','HHHHxx' +9758,9022,0,2,8,18,58,758,1758,4758,9758,116,117,'ILAAAA','AJNAAA','OOOOxx' +4205,9023,1,1,5,5,5,205,205,4205,4205,10,11,'TFAAAA','BJNAAA','VVVVxx' +8884,9024,0,0,4,4,84,884,884,3884,8884,168,169,'SDAAAA','CJNAAA','AAAAxx' +1112,9025,0,0,2,12,12,112,1112,1112,1112,24,25,'UQAAAA','DJNAAA','HHHHxx' +2186,9026,0,2,6,6,86,186,186,2186,2186,172,173,'CGAAAA','EJNAAA','OOOOxx' +8666,9027,0,2,6,6,66,666,666,3666,8666,132,133,'IVAAAA','FJNAAA','VVVVxx' +4325,9028,1,1,5,5,25,325,325,4325,4325,50,51,'JKAAAA','GJNAAA','AAAAxx' +4912,9029,0,0,2,12,12,912,912,4912,4912,24,25,'YGAAAA','HJNAAA','HHHHxx' +6497,9030,1,1,7,17,97,497,497,1497,6497,194,195,'XPAAAA','IJNAAA','OOOOxx' +9072,9031,0,0,2,12,72,72,1072,4072,9072,144,145,'YKAAAA','JJNAAA','VVVVxx' +8899,9032,1,3,9,19,99,899,899,3899,8899,198,199,'HEAAAA','KJNAAA','AAAAxx' +5619,9033,1,3,9,19,19,619,1619,619,5619,38,39,'DIAAAA','LJNAAA','HHHHxx' +4110,9034,0,2,0,10,10,110,110,4110,4110,20,21,'CCAAAA','MJNAAA','OOOOxx' +7025,9035,1,1,5,5,25,25,1025,2025,7025,50,51,'FKAAAA','NJNAAA','VVVVxx' +5605,9036,1,1,5,5,5,605,1605,605,5605,10,11,'PHAAAA','OJNAAA','AAAAxx' +2572,9037,0,0,2,12,72,572,572,2572,2572,144,145,'YUAAAA','PJNAAA','HHHHxx' +3895,9038,1,3,5,15,95,895,1895,3895,3895,190,191,'VTAAAA','QJNAAA','OOOOxx' +9138,9039,0,2,8,18,38,138,1138,4138,9138,76,77,'MNAAAA','RJNAAA','VVVVxx' +4713,9040,1,1,3,13,13,713,713,4713,4713,26,27,'HZAAAA','SJNAAA','AAAAxx' +6079,9041,1,3,9,19,79,79,79,1079,6079,158,159,'VZAAAA','TJNAAA','HHHHxx' +8898,9042,0,2,8,18,98,898,898,3898,8898,196,197,'GEAAAA','UJNAAA','OOOOxx' +2650,9043,0,2,0,10,50,650,650,2650,2650,100,101,'YXAAAA','VJNAAA','VVVVxx' +5316,9044,0,0,6,16,16,316,1316,316,5316,32,33,'MWAAAA','WJNAAA','AAAAxx' +5133,9045,1,1,3,13,33,133,1133,133,5133,66,67,'LPAAAA','XJNAAA','HHHHxx' +2184,9046,0,0,4,4,84,184,184,2184,2184,168,169,'AGAAAA','YJNAAA','OOOOxx' +2728,9047,0,0,8,8,28,728,728,2728,2728,56,57,'YAAAAA','ZJNAAA','VVVVxx' +6737,9048,1,1,7,17,37,737,737,1737,6737,74,75,'DZAAAA','AKNAAA','AAAAxx' +1128,9049,0,0,8,8,28,128,1128,1128,1128,56,57,'KRAAAA','BKNAAA','HHHHxx' +9662,9050,0,2,2,2,62,662,1662,4662,9662,124,125,'QHAAAA','CKNAAA','OOOOxx' +9384,9051,0,0,4,4,84,384,1384,4384,9384,168,169,'YWAAAA','DKNAAA','VVVVxx' +4576,9052,0,0,6,16,76,576,576,4576,4576,152,153,'AUAAAA','EKNAAA','AAAAxx' +9613,9053,1,1,3,13,13,613,1613,4613,9613,26,27,'TFAAAA','FKNAAA','HHHHxx' +4001,9054,1,1,1,1,1,1,1,4001,4001,2,3,'XXAAAA','GKNAAA','OOOOxx' +3628,9055,0,0,8,8,28,628,1628,3628,3628,56,57,'OJAAAA','HKNAAA','VVVVxx' +6968,9056,0,0,8,8,68,968,968,1968,6968,136,137,'AIAAAA','IKNAAA','AAAAxx' +6491,9057,1,3,1,11,91,491,491,1491,6491,182,183,'RPAAAA','JKNAAA','HHHHxx' +1265,9058,1,1,5,5,65,265,1265,1265,1265,130,131,'RWAAAA','KKNAAA','OOOOxx' +6128,9059,0,0,8,8,28,128,128,1128,6128,56,57,'SBAAAA','LKNAAA','VVVVxx' +4274,9060,0,2,4,14,74,274,274,4274,4274,148,149,'KIAAAA','MKNAAA','AAAAxx' +3598,9061,0,2,8,18,98,598,1598,3598,3598,196,197,'KIAAAA','NKNAAA','HHHHxx' +7961,9062,1,1,1,1,61,961,1961,2961,7961,122,123,'FUAAAA','OKNAAA','OOOOxx' +2643,9063,1,3,3,3,43,643,643,2643,2643,86,87,'RXAAAA','PKNAAA','VVVVxx' +4547,9064,1,3,7,7,47,547,547,4547,4547,94,95,'XSAAAA','QKNAAA','AAAAxx' +3568,9065,0,0,8,8,68,568,1568,3568,3568,136,137,'GHAAAA','RKNAAA','HHHHxx' +8954,9066,0,2,4,14,54,954,954,3954,8954,108,109,'KGAAAA','SKNAAA','OOOOxx' +8802,9067,0,2,2,2,2,802,802,3802,8802,4,5,'OAAAAA','TKNAAA','VVVVxx' +7829,9068,1,1,9,9,29,829,1829,2829,7829,58,59,'DPAAAA','UKNAAA','AAAAxx' +1008,9069,0,0,8,8,8,8,1008,1008,1008,16,17,'UMAAAA','VKNAAA','HHHHxx' +3627,9070,1,3,7,7,27,627,1627,3627,3627,54,55,'NJAAAA','WKNAAA','OOOOxx' +3999,9071,1,3,9,19,99,999,1999,3999,3999,198,199,'VXAAAA','XKNAAA','VVVVxx' +7697,9072,1,1,7,17,97,697,1697,2697,7697,194,195,'BKAAAA','YKNAAA','AAAAxx' +9380,9073,0,0,0,0,80,380,1380,4380,9380,160,161,'UWAAAA','ZKNAAA','HHHHxx' +2707,9074,1,3,7,7,7,707,707,2707,2707,14,15,'DAAAAA','ALNAAA','OOOOxx' +4430,9075,0,2,0,10,30,430,430,4430,4430,60,61,'KOAAAA','BLNAAA','VVVVxx' +6440,9076,0,0,0,0,40,440,440,1440,6440,80,81,'SNAAAA','CLNAAA','AAAAxx' +9958,9077,0,2,8,18,58,958,1958,4958,9958,116,117,'ATAAAA','DLNAAA','HHHHxx' +7592,9078,0,0,2,12,92,592,1592,2592,7592,184,185,'AGAAAA','ELNAAA','OOOOxx' +7852,9079,0,0,2,12,52,852,1852,2852,7852,104,105,'AQAAAA','FLNAAA','VVVVxx' +9253,9080,1,1,3,13,53,253,1253,4253,9253,106,107,'XRAAAA','GLNAAA','AAAAxx' +5910,9081,0,2,0,10,10,910,1910,910,5910,20,21,'ITAAAA','HLNAAA','HHHHxx' +7487,9082,1,3,7,7,87,487,1487,2487,7487,174,175,'ZBAAAA','ILNAAA','OOOOxx' +6324,9083,0,0,4,4,24,324,324,1324,6324,48,49,'GJAAAA','JLNAAA','VVVVxx' +5792,9084,0,0,2,12,92,792,1792,792,5792,184,185,'UOAAAA','KLNAAA','AAAAxx' +7390,9085,0,2,0,10,90,390,1390,2390,7390,180,181,'GYAAAA','LLNAAA','HHHHxx' +8534,9086,0,2,4,14,34,534,534,3534,8534,68,69,'GQAAAA','MLNAAA','OOOOxx' +2690,9087,0,2,0,10,90,690,690,2690,2690,180,181,'MZAAAA','NLNAAA','VVVVxx' +3992,9088,0,0,2,12,92,992,1992,3992,3992,184,185,'OXAAAA','OLNAAA','AAAAxx' +6928,9089,0,0,8,8,28,928,928,1928,6928,56,57,'MGAAAA','PLNAAA','HHHHxx' +7815,9090,1,3,5,15,15,815,1815,2815,7815,30,31,'POAAAA','QLNAAA','OOOOxx' +9477,9091,1,1,7,17,77,477,1477,4477,9477,154,155,'NAAAAA','RLNAAA','VVVVxx' +497,9092,1,1,7,17,97,497,497,497,497,194,195,'DTAAAA','SLNAAA','AAAAxx' +7532,9093,0,0,2,12,32,532,1532,2532,7532,64,65,'SDAAAA','TLNAAA','HHHHxx' +9838,9094,0,2,8,18,38,838,1838,4838,9838,76,77,'KOAAAA','ULNAAA','OOOOxx' +1557,9095,1,1,7,17,57,557,1557,1557,1557,114,115,'XHAAAA','VLNAAA','VVVVxx' +2467,9096,1,3,7,7,67,467,467,2467,2467,134,135,'XQAAAA','WLNAAA','AAAAxx' +2367,9097,1,3,7,7,67,367,367,2367,2367,134,135,'BNAAAA','XLNAAA','HHHHxx' +5677,9098,1,1,7,17,77,677,1677,677,5677,154,155,'JKAAAA','YLNAAA','OOOOxx' +6193,9099,1,1,3,13,93,193,193,1193,6193,186,187,'FEAAAA','ZLNAAA','VVVVxx' +7126,9100,0,2,6,6,26,126,1126,2126,7126,52,53,'COAAAA','AMNAAA','AAAAxx' +5264,9101,0,0,4,4,64,264,1264,264,5264,128,129,'MUAAAA','BMNAAA','HHHHxx' +850,9102,0,2,0,10,50,850,850,850,850,100,101,'SGAAAA','CMNAAA','OOOOxx' +4854,9103,0,2,4,14,54,854,854,4854,4854,108,109,'SEAAAA','DMNAAA','VVVVxx' +4414,9104,0,2,4,14,14,414,414,4414,4414,28,29,'UNAAAA','EMNAAA','AAAAxx' +8971,9105,1,3,1,11,71,971,971,3971,8971,142,143,'BHAAAA','FMNAAA','HHHHxx' +9240,9106,0,0,0,0,40,240,1240,4240,9240,80,81,'KRAAAA','GMNAAA','OOOOxx' +7341,9107,1,1,1,1,41,341,1341,2341,7341,82,83,'JWAAAA','HMNAAA','VVVVxx' +3151,9108,1,3,1,11,51,151,1151,3151,3151,102,103,'FRAAAA','IMNAAA','AAAAxx' +1742,9109,0,2,2,2,42,742,1742,1742,1742,84,85,'APAAAA','JMNAAA','HHHHxx' +1347,9110,1,3,7,7,47,347,1347,1347,1347,94,95,'VZAAAA','KMNAAA','OOOOxx' +9418,9111,0,2,8,18,18,418,1418,4418,9418,36,37,'GYAAAA','LMNAAA','VVVVxx' +5452,9112,0,0,2,12,52,452,1452,452,5452,104,105,'SBAAAA','MMNAAA','AAAAxx' +8637,9113,1,1,7,17,37,637,637,3637,8637,74,75,'FUAAAA','NMNAAA','HHHHxx' +8287,9114,1,3,7,7,87,287,287,3287,8287,174,175,'TGAAAA','OMNAAA','OOOOxx' +9865,9115,1,1,5,5,65,865,1865,4865,9865,130,131,'LPAAAA','PMNAAA','VVVVxx' +1664,9116,0,0,4,4,64,664,1664,1664,1664,128,129,'AMAAAA','QMNAAA','AAAAxx' +9933,9117,1,1,3,13,33,933,1933,4933,9933,66,67,'BSAAAA','RMNAAA','HHHHxx' +3416,9118,0,0,6,16,16,416,1416,3416,3416,32,33,'KBAAAA','SMNAAA','OOOOxx' +7981,9119,1,1,1,1,81,981,1981,2981,7981,162,163,'ZUAAAA','TMNAAA','VVVVxx' +1981,9120,1,1,1,1,81,981,1981,1981,1981,162,163,'FYAAAA','UMNAAA','AAAAxx' +441,9121,1,1,1,1,41,441,441,441,441,82,83,'ZQAAAA','VMNAAA','HHHHxx' +1380,9122,0,0,0,0,80,380,1380,1380,1380,160,161,'CBAAAA','WMNAAA','OOOOxx' +7325,9123,1,1,5,5,25,325,1325,2325,7325,50,51,'TVAAAA','XMNAAA','VVVVxx' +5682,9124,0,2,2,2,82,682,1682,682,5682,164,165,'OKAAAA','YMNAAA','AAAAxx' +1024,9125,0,0,4,4,24,24,1024,1024,1024,48,49,'KNAAAA','ZMNAAA','HHHHxx' +1096,9126,0,0,6,16,96,96,1096,1096,1096,192,193,'EQAAAA','ANNAAA','OOOOxx' +4717,9127,1,1,7,17,17,717,717,4717,4717,34,35,'LZAAAA','BNNAAA','VVVVxx' +7948,9128,0,0,8,8,48,948,1948,2948,7948,96,97,'STAAAA','CNNAAA','AAAAxx' +4074,9129,0,2,4,14,74,74,74,4074,4074,148,149,'SAAAAA','DNNAAA','HHHHxx' +211,9130,1,3,1,11,11,211,211,211,211,22,23,'DIAAAA','ENNAAA','OOOOxx' +8993,9131,1,1,3,13,93,993,993,3993,8993,186,187,'XHAAAA','FNNAAA','VVVVxx' +4509,9132,1,1,9,9,9,509,509,4509,4509,18,19,'LRAAAA','GNNAAA','AAAAxx' +823,9133,1,3,3,3,23,823,823,823,823,46,47,'RFAAAA','HNNAAA','HHHHxx' +4747,9134,1,3,7,7,47,747,747,4747,4747,94,95,'PAAAAA','INNAAA','OOOOxx' +6955,9135,1,3,5,15,55,955,955,1955,6955,110,111,'NHAAAA','JNNAAA','VVVVxx' +7922,9136,0,2,2,2,22,922,1922,2922,7922,44,45,'SSAAAA','KNNAAA','AAAAxx' +6936,9137,0,0,6,16,36,936,936,1936,6936,72,73,'UGAAAA','LNNAAA','HHHHxx' +1546,9138,0,2,6,6,46,546,1546,1546,1546,92,93,'MHAAAA','MNNAAA','OOOOxx' +9836,9139,0,0,6,16,36,836,1836,4836,9836,72,73,'IOAAAA','NNNAAA','VVVVxx' +5626,9140,0,2,6,6,26,626,1626,626,5626,52,53,'KIAAAA','ONNAAA','AAAAxx' +4879,9141,1,3,9,19,79,879,879,4879,4879,158,159,'RFAAAA','PNNAAA','HHHHxx' +8590,9142,0,2,0,10,90,590,590,3590,8590,180,181,'KSAAAA','QNNAAA','OOOOxx' +8842,9143,0,2,2,2,42,842,842,3842,8842,84,85,'CCAAAA','RNNAAA','VVVVxx' +6505,9144,1,1,5,5,5,505,505,1505,6505,10,11,'FQAAAA','SNNAAA','AAAAxx' +2803,9145,1,3,3,3,3,803,803,2803,2803,6,7,'VDAAAA','TNNAAA','HHHHxx' +9258,9146,0,2,8,18,58,258,1258,4258,9258,116,117,'CSAAAA','UNNAAA','OOOOxx' +741,9147,1,1,1,1,41,741,741,741,741,82,83,'NCAAAA','VNNAAA','VVVVxx' +1457,9148,1,1,7,17,57,457,1457,1457,1457,114,115,'BEAAAA','WNNAAA','AAAAxx' +5777,9149,1,1,7,17,77,777,1777,777,5777,154,155,'FOAAAA','XNNAAA','HHHHxx' +2883,9150,1,3,3,3,83,883,883,2883,2883,166,167,'XGAAAA','YNNAAA','OOOOxx' +6610,9151,0,2,0,10,10,610,610,1610,6610,20,21,'GUAAAA','ZNNAAA','VVVVxx' +4331,9152,1,3,1,11,31,331,331,4331,4331,62,63,'PKAAAA','AONAAA','AAAAxx' +2712,9153,0,0,2,12,12,712,712,2712,2712,24,25,'IAAAAA','BONAAA','HHHHxx' +9268,9154,0,0,8,8,68,268,1268,4268,9268,136,137,'MSAAAA','CONAAA','OOOOxx' +410,9155,0,2,0,10,10,410,410,410,410,20,21,'UPAAAA','DONAAA','VVVVxx' +9411,9156,1,3,1,11,11,411,1411,4411,9411,22,23,'ZXAAAA','EONAAA','AAAAxx' +4683,9157,1,3,3,3,83,683,683,4683,4683,166,167,'DYAAAA','FONAAA','HHHHxx' +7072,9158,0,0,2,12,72,72,1072,2072,7072,144,145,'AMAAAA','GONAAA','OOOOxx' +5050,9159,0,2,0,10,50,50,1050,50,5050,100,101,'GMAAAA','HONAAA','VVVVxx' +5932,9160,0,0,2,12,32,932,1932,932,5932,64,65,'EUAAAA','IONAAA','AAAAxx' +2756,9161,0,0,6,16,56,756,756,2756,2756,112,113,'ACAAAA','JONAAA','HHHHxx' +9813,9162,1,1,3,13,13,813,1813,4813,9813,26,27,'LNAAAA','KONAAA','OOOOxx' +7388,9163,0,0,8,8,88,388,1388,2388,7388,176,177,'EYAAAA','LONAAA','VVVVxx' +2596,9164,0,0,6,16,96,596,596,2596,2596,192,193,'WVAAAA','MONAAA','AAAAxx' +5102,9165,0,2,2,2,2,102,1102,102,5102,4,5,'GOAAAA','NONAAA','HHHHxx' +208,9166,0,0,8,8,8,208,208,208,208,16,17,'AIAAAA','OONAAA','OOOOxx' +86,9167,0,2,6,6,86,86,86,86,86,172,173,'IDAAAA','PONAAA','VVVVxx' +8127,9168,1,3,7,7,27,127,127,3127,8127,54,55,'PAAAAA','QONAAA','AAAAxx' +5154,9169,0,2,4,14,54,154,1154,154,5154,108,109,'GQAAAA','RONAAA','HHHHxx' +4491,9170,1,3,1,11,91,491,491,4491,4491,182,183,'TQAAAA','SONAAA','OOOOxx' +7423,9171,1,3,3,3,23,423,1423,2423,7423,46,47,'NZAAAA','TONAAA','VVVVxx' +6441,9172,1,1,1,1,41,441,441,1441,6441,82,83,'TNAAAA','UONAAA','AAAAxx' +2920,9173,0,0,0,0,20,920,920,2920,2920,40,41,'IIAAAA','VONAAA','HHHHxx' +6386,9174,0,2,6,6,86,386,386,1386,6386,172,173,'QLAAAA','WONAAA','OOOOxx' +9744,9175,0,0,4,4,44,744,1744,4744,9744,88,89,'UKAAAA','XONAAA','VVVVxx' +2667,9176,1,3,7,7,67,667,667,2667,2667,134,135,'PYAAAA','YONAAA','AAAAxx' +5754,9177,0,2,4,14,54,754,1754,754,5754,108,109,'INAAAA','ZONAAA','HHHHxx' +4645,9178,1,1,5,5,45,645,645,4645,4645,90,91,'RWAAAA','APNAAA','OOOOxx' +4327,9179,1,3,7,7,27,327,327,4327,4327,54,55,'LKAAAA','BPNAAA','VVVVxx' +843,9180,1,3,3,3,43,843,843,843,843,86,87,'LGAAAA','CPNAAA','AAAAxx' +4085,9181,1,1,5,5,85,85,85,4085,4085,170,171,'DBAAAA','DPNAAA','HHHHxx' +2849,9182,1,1,9,9,49,849,849,2849,2849,98,99,'PFAAAA','EPNAAA','OOOOxx' +5734,9183,0,2,4,14,34,734,1734,734,5734,68,69,'OMAAAA','FPNAAA','VVVVxx' +5307,9184,1,3,7,7,7,307,1307,307,5307,14,15,'DWAAAA','GPNAAA','AAAAxx' +8433,9185,1,1,3,13,33,433,433,3433,8433,66,67,'JMAAAA','HPNAAA','HHHHxx' +3031,9186,1,3,1,11,31,31,1031,3031,3031,62,63,'PMAAAA','IPNAAA','OOOOxx' +5714,9187,0,2,4,14,14,714,1714,714,5714,28,29,'ULAAAA','JPNAAA','VVVVxx' +5969,9188,1,1,9,9,69,969,1969,969,5969,138,139,'PVAAAA','KPNAAA','AAAAxx' +2532,9189,0,0,2,12,32,532,532,2532,2532,64,65,'KTAAAA','LPNAAA','HHHHxx' +5219,9190,1,3,9,19,19,219,1219,219,5219,38,39,'TSAAAA','MPNAAA','OOOOxx' +7343,9191,1,3,3,3,43,343,1343,2343,7343,86,87,'LWAAAA','NPNAAA','VVVVxx' +9089,9192,1,1,9,9,89,89,1089,4089,9089,178,179,'PLAAAA','OPNAAA','AAAAxx' +9337,9193,1,1,7,17,37,337,1337,4337,9337,74,75,'DVAAAA','PPNAAA','HHHHxx' +5131,9194,1,3,1,11,31,131,1131,131,5131,62,63,'JPAAAA','QPNAAA','OOOOxx' +6253,9195,1,1,3,13,53,253,253,1253,6253,106,107,'NGAAAA','RPNAAA','VVVVxx' +5140,9196,0,0,0,0,40,140,1140,140,5140,80,81,'SPAAAA','SPNAAA','AAAAxx' +2953,9197,1,1,3,13,53,953,953,2953,2953,106,107,'PJAAAA','TPNAAA','HHHHxx' +4293,9198,1,1,3,13,93,293,293,4293,4293,186,187,'DJAAAA','UPNAAA','OOOOxx' +9974,9199,0,2,4,14,74,974,1974,4974,9974,148,149,'QTAAAA','VPNAAA','VVVVxx' +5061,9200,1,1,1,1,61,61,1061,61,5061,122,123,'RMAAAA','WPNAAA','AAAAxx' +8570,9201,0,2,0,10,70,570,570,3570,8570,140,141,'QRAAAA','XPNAAA','HHHHxx' +9504,9202,0,0,4,4,4,504,1504,4504,9504,8,9,'OBAAAA','YPNAAA','OOOOxx' +604,9203,0,0,4,4,4,604,604,604,604,8,9,'GXAAAA','ZPNAAA','VVVVxx' +4991,9204,1,3,1,11,91,991,991,4991,4991,182,183,'ZJAAAA','AQNAAA','AAAAxx' +880,9205,0,0,0,0,80,880,880,880,880,160,161,'WHAAAA','BQNAAA','HHHHxx' +3861,9206,1,1,1,1,61,861,1861,3861,3861,122,123,'NSAAAA','CQNAAA','OOOOxx' +8262,9207,0,2,2,2,62,262,262,3262,8262,124,125,'UFAAAA','DQNAAA','VVVVxx' +5689,9208,1,1,9,9,89,689,1689,689,5689,178,179,'VKAAAA','EQNAAA','AAAAxx' +1793,9209,1,1,3,13,93,793,1793,1793,1793,186,187,'ZQAAAA','FQNAAA','HHHHxx' +2661,9210,1,1,1,1,61,661,661,2661,2661,122,123,'JYAAAA','GQNAAA','OOOOxx' +7954,9211,0,2,4,14,54,954,1954,2954,7954,108,109,'YTAAAA','HQNAAA','VVVVxx' +1874,9212,0,2,4,14,74,874,1874,1874,1874,148,149,'CUAAAA','IQNAAA','AAAAxx' +2982,9213,0,2,2,2,82,982,982,2982,2982,164,165,'SKAAAA','JQNAAA','HHHHxx' +331,9214,1,3,1,11,31,331,331,331,331,62,63,'TMAAAA','KQNAAA','OOOOxx' +5021,9215,1,1,1,1,21,21,1021,21,5021,42,43,'DLAAAA','LQNAAA','VVVVxx' +9894,9216,0,2,4,14,94,894,1894,4894,9894,188,189,'OQAAAA','MQNAAA','AAAAxx' +7709,9217,1,1,9,9,9,709,1709,2709,7709,18,19,'NKAAAA','NQNAAA','HHHHxx' +4980,9218,0,0,0,0,80,980,980,4980,4980,160,161,'OJAAAA','OQNAAA','OOOOxx' +8249,9219,1,1,9,9,49,249,249,3249,8249,98,99,'HFAAAA','PQNAAA','VVVVxx' +7120,9220,0,0,0,0,20,120,1120,2120,7120,40,41,'WNAAAA','QQNAAA','AAAAxx' +7464,9221,0,0,4,4,64,464,1464,2464,7464,128,129,'CBAAAA','RQNAAA','HHHHxx' +8086,9222,0,2,6,6,86,86,86,3086,8086,172,173,'AZAAAA','SQNAAA','OOOOxx' +3509,9223,1,1,9,9,9,509,1509,3509,3509,18,19,'ZEAAAA','TQNAAA','VVVVxx' +3902,9224,0,2,2,2,2,902,1902,3902,3902,4,5,'CUAAAA','UQNAAA','AAAAxx' +9907,9225,1,3,7,7,7,907,1907,4907,9907,14,15,'BRAAAA','VQNAAA','HHHHxx' +6278,9226,0,2,8,18,78,278,278,1278,6278,156,157,'MHAAAA','WQNAAA','OOOOxx' +9316,9227,0,0,6,16,16,316,1316,4316,9316,32,33,'IUAAAA','XQNAAA','VVVVxx' +2824,9228,0,0,4,4,24,824,824,2824,2824,48,49,'QEAAAA','YQNAAA','AAAAxx' +1558,9229,0,2,8,18,58,558,1558,1558,1558,116,117,'YHAAAA','ZQNAAA','HHHHxx' +5436,9230,0,0,6,16,36,436,1436,436,5436,72,73,'CBAAAA','ARNAAA','OOOOxx' +1161,9231,1,1,1,1,61,161,1161,1161,1161,122,123,'RSAAAA','BRNAAA','VVVVxx' +7569,9232,1,1,9,9,69,569,1569,2569,7569,138,139,'DFAAAA','CRNAAA','AAAAxx' +9614,9233,0,2,4,14,14,614,1614,4614,9614,28,29,'UFAAAA','DRNAAA','HHHHxx' +6970,9234,0,2,0,10,70,970,970,1970,6970,140,141,'CIAAAA','ERNAAA','OOOOxx' +2422,9235,0,2,2,2,22,422,422,2422,2422,44,45,'EPAAAA','FRNAAA','VVVVxx' +8860,9236,0,0,0,0,60,860,860,3860,8860,120,121,'UCAAAA','GRNAAA','AAAAxx' +9912,9237,0,0,2,12,12,912,1912,4912,9912,24,25,'GRAAAA','HRNAAA','HHHHxx' +1109,9238,1,1,9,9,9,109,1109,1109,1109,18,19,'RQAAAA','IRNAAA','OOOOxx' +3286,9239,0,2,6,6,86,286,1286,3286,3286,172,173,'KWAAAA','JRNAAA','VVVVxx' +2277,9240,1,1,7,17,77,277,277,2277,2277,154,155,'PJAAAA','KRNAAA','AAAAxx' +8656,9241,0,0,6,16,56,656,656,3656,8656,112,113,'YUAAAA','LRNAAA','HHHHxx' +4656,9242,0,0,6,16,56,656,656,4656,4656,112,113,'CXAAAA','MRNAAA','OOOOxx' +6965,9243,1,1,5,5,65,965,965,1965,6965,130,131,'XHAAAA','NRNAAA','VVVVxx' +7591,9244,1,3,1,11,91,591,1591,2591,7591,182,183,'ZFAAAA','ORNAAA','AAAAxx' +4883,9245,1,3,3,3,83,883,883,4883,4883,166,167,'VFAAAA','PRNAAA','HHHHxx' +452,9246,0,0,2,12,52,452,452,452,452,104,105,'KRAAAA','QRNAAA','OOOOxx' +4018,9247,0,2,8,18,18,18,18,4018,4018,36,37,'OYAAAA','RRNAAA','VVVVxx' +4066,9248,0,2,6,6,66,66,66,4066,4066,132,133,'KAAAAA','SRNAAA','AAAAxx' +6480,9249,0,0,0,0,80,480,480,1480,6480,160,161,'GPAAAA','TRNAAA','HHHHxx' +8634,9250,0,2,4,14,34,634,634,3634,8634,68,69,'CUAAAA','URNAAA','OOOOxx' +9387,9251,1,3,7,7,87,387,1387,4387,9387,174,175,'BXAAAA','VRNAAA','VVVVxx' +3476,9252,0,0,6,16,76,476,1476,3476,3476,152,153,'SDAAAA','WRNAAA','AAAAxx' +5995,9253,1,3,5,15,95,995,1995,995,5995,190,191,'PWAAAA','XRNAAA','HHHHxx' +9677,9254,1,1,7,17,77,677,1677,4677,9677,154,155,'FIAAAA','YRNAAA','OOOOxx' +3884,9255,0,0,4,4,84,884,1884,3884,3884,168,169,'KTAAAA','ZRNAAA','VVVVxx' +6500,9256,0,0,0,0,0,500,500,1500,6500,0,1,'AQAAAA','ASNAAA','AAAAxx' +7972,9257,0,0,2,12,72,972,1972,2972,7972,144,145,'QUAAAA','BSNAAA','HHHHxx' +5281,9258,1,1,1,1,81,281,1281,281,5281,162,163,'DVAAAA','CSNAAA','OOOOxx' +1288,9259,0,0,8,8,88,288,1288,1288,1288,176,177,'OXAAAA','DSNAAA','VVVVxx' +4366,9260,0,2,6,6,66,366,366,4366,4366,132,133,'YLAAAA','ESNAAA','AAAAxx' +6557,9261,1,1,7,17,57,557,557,1557,6557,114,115,'FSAAAA','FSNAAA','HHHHxx' +7086,9262,0,2,6,6,86,86,1086,2086,7086,172,173,'OMAAAA','GSNAAA','OOOOxx' +6588,9263,0,0,8,8,88,588,588,1588,6588,176,177,'KTAAAA','HSNAAA','VVVVxx' +9062,9264,0,2,2,2,62,62,1062,4062,9062,124,125,'OKAAAA','ISNAAA','AAAAxx' +9230,9265,0,2,0,10,30,230,1230,4230,9230,60,61,'ARAAAA','JSNAAA','HHHHxx' +7672,9266,0,0,2,12,72,672,1672,2672,7672,144,145,'CJAAAA','KSNAAA','OOOOxx' +5204,9267,0,0,4,4,4,204,1204,204,5204,8,9,'ESAAAA','LSNAAA','VVVVxx' +2836,9268,0,0,6,16,36,836,836,2836,2836,72,73,'CFAAAA','MSNAAA','AAAAxx' +7165,9269,1,1,5,5,65,165,1165,2165,7165,130,131,'PPAAAA','NSNAAA','HHHHxx' +971,9270,1,3,1,11,71,971,971,971,971,142,143,'JLAAAA','OSNAAA','OOOOxx' +3851,9271,1,3,1,11,51,851,1851,3851,3851,102,103,'DSAAAA','PSNAAA','VVVVxx' +8593,9272,1,1,3,13,93,593,593,3593,8593,186,187,'NSAAAA','QSNAAA','AAAAxx' +7742,9273,0,2,2,2,42,742,1742,2742,7742,84,85,'ULAAAA','RSNAAA','HHHHxx' +2887,9274,1,3,7,7,87,887,887,2887,2887,174,175,'BHAAAA','SSNAAA','OOOOxx' +8479,9275,1,3,9,19,79,479,479,3479,8479,158,159,'DOAAAA','TSNAAA','VVVVxx' +9514,9276,0,2,4,14,14,514,1514,4514,9514,28,29,'YBAAAA','USNAAA','AAAAxx' +273,9277,1,1,3,13,73,273,273,273,273,146,147,'NKAAAA','VSNAAA','HHHHxx' +2938,9278,0,2,8,18,38,938,938,2938,2938,76,77,'AJAAAA','WSNAAA','OOOOxx' +9793,9279,1,1,3,13,93,793,1793,4793,9793,186,187,'RMAAAA','XSNAAA','VVVVxx' +8050,9280,0,2,0,10,50,50,50,3050,8050,100,101,'QXAAAA','YSNAAA','AAAAxx' +6702,9281,0,2,2,2,2,702,702,1702,6702,4,5,'UXAAAA','ZSNAAA','HHHHxx' +7290,9282,0,2,0,10,90,290,1290,2290,7290,180,181,'KUAAAA','ATNAAA','OOOOxx' +1837,9283,1,1,7,17,37,837,1837,1837,1837,74,75,'RSAAAA','BTNAAA','VVVVxx' +3206,9284,0,2,6,6,6,206,1206,3206,3206,12,13,'ITAAAA','CTNAAA','AAAAxx' +4925,9285,1,1,5,5,25,925,925,4925,4925,50,51,'LHAAAA','DTNAAA','HHHHxx' +5066,9286,0,2,6,6,66,66,1066,66,5066,132,133,'WMAAAA','ETNAAA','OOOOxx' +3401,9287,1,1,1,1,1,401,1401,3401,3401,2,3,'VAAAAA','FTNAAA','VVVVxx' +3474,9288,0,2,4,14,74,474,1474,3474,3474,148,149,'QDAAAA','GTNAAA','AAAAxx' +57,9289,1,1,7,17,57,57,57,57,57,114,115,'FCAAAA','HTNAAA','HHHHxx' +2082,9290,0,2,2,2,82,82,82,2082,2082,164,165,'CCAAAA','ITNAAA','OOOOxx' +100,9291,0,0,0,0,0,100,100,100,100,0,1,'WDAAAA','JTNAAA','VVVVxx' +9665,9292,1,1,5,5,65,665,1665,4665,9665,130,131,'THAAAA','KTNAAA','AAAAxx' +8284,9293,0,0,4,4,84,284,284,3284,8284,168,169,'QGAAAA','LTNAAA','HHHHxx' +958,9294,0,2,8,18,58,958,958,958,958,116,117,'WKAAAA','MTNAAA','OOOOxx' +5282,9295,0,2,2,2,82,282,1282,282,5282,164,165,'EVAAAA','NTNAAA','VVVVxx' +4257,9296,1,1,7,17,57,257,257,4257,4257,114,115,'THAAAA','OTNAAA','AAAAxx' +3160,9297,0,0,0,0,60,160,1160,3160,3160,120,121,'ORAAAA','PTNAAA','HHHHxx' +8449,9298,1,1,9,9,49,449,449,3449,8449,98,99,'ZMAAAA','QTNAAA','OOOOxx' +500,9299,0,0,0,0,0,500,500,500,500,0,1,'GTAAAA','RTNAAA','VVVVxx' +6432,9300,0,0,2,12,32,432,432,1432,6432,64,65,'KNAAAA','STNAAA','AAAAxx' +6220,9301,0,0,0,0,20,220,220,1220,6220,40,41,'GFAAAA','TTNAAA','HHHHxx' +7233,9302,1,1,3,13,33,233,1233,2233,7233,66,67,'FSAAAA','UTNAAA','OOOOxx' +2723,9303,1,3,3,3,23,723,723,2723,2723,46,47,'TAAAAA','VTNAAA','VVVVxx' +1899,9304,1,3,9,19,99,899,1899,1899,1899,198,199,'BVAAAA','WTNAAA','AAAAxx' +7158,9305,0,2,8,18,58,158,1158,2158,7158,116,117,'IPAAAA','XTNAAA','HHHHxx' +202,9306,0,2,2,2,2,202,202,202,202,4,5,'UHAAAA','YTNAAA','OOOOxx' +2286,9307,0,2,6,6,86,286,286,2286,2286,172,173,'YJAAAA','ZTNAAA','VVVVxx' +5356,9308,0,0,6,16,56,356,1356,356,5356,112,113,'AYAAAA','AUNAAA','AAAAxx' +3809,9309,1,1,9,9,9,809,1809,3809,3809,18,19,'NQAAAA','BUNAAA','HHHHxx' +3979,9310,1,3,9,19,79,979,1979,3979,3979,158,159,'BXAAAA','CUNAAA','OOOOxx' +8359,9311,1,3,9,19,59,359,359,3359,8359,118,119,'NJAAAA','DUNAAA','VVVVxx' +3479,9312,1,3,9,19,79,479,1479,3479,3479,158,159,'VDAAAA','EUNAAA','AAAAxx' +4895,9313,1,3,5,15,95,895,895,4895,4895,190,191,'HGAAAA','FUNAAA','HHHHxx' +6059,9314,1,3,9,19,59,59,59,1059,6059,118,119,'BZAAAA','GUNAAA','OOOOxx' +9560,9315,0,0,0,0,60,560,1560,4560,9560,120,121,'SDAAAA','HUNAAA','VVVVxx' +6756,9316,0,0,6,16,56,756,756,1756,6756,112,113,'WZAAAA','IUNAAA','AAAAxx' +7504,9317,0,0,4,4,4,504,1504,2504,7504,8,9,'QCAAAA','JUNAAA','HHHHxx' +6762,9318,0,2,2,2,62,762,762,1762,6762,124,125,'CAAAAA','KUNAAA','OOOOxx' +5304,9319,0,0,4,4,4,304,1304,304,5304,8,9,'AWAAAA','LUNAAA','VVVVxx' +9533,9320,1,1,3,13,33,533,1533,4533,9533,66,67,'RCAAAA','MUNAAA','AAAAxx' +6649,9321,1,1,9,9,49,649,649,1649,6649,98,99,'TVAAAA','NUNAAA','HHHHxx' +38,9322,0,2,8,18,38,38,38,38,38,76,77,'MBAAAA','OUNAAA','OOOOxx' +5713,9323,1,1,3,13,13,713,1713,713,5713,26,27,'TLAAAA','PUNAAA','VVVVxx' +3000,9324,0,0,0,0,0,0,1000,3000,3000,0,1,'KLAAAA','QUNAAA','AAAAxx' +3738,9325,0,2,8,18,38,738,1738,3738,3738,76,77,'UNAAAA','RUNAAA','HHHHxx' +3327,9326,1,3,7,7,27,327,1327,3327,3327,54,55,'ZXAAAA','SUNAAA','OOOOxx' +3922,9327,0,2,2,2,22,922,1922,3922,3922,44,45,'WUAAAA','TUNAAA','VVVVxx' +9245,9328,1,1,5,5,45,245,1245,4245,9245,90,91,'PRAAAA','UUNAAA','AAAAxx' +2172,9329,0,0,2,12,72,172,172,2172,2172,144,145,'OFAAAA','VUNAAA','HHHHxx' +7128,9330,0,0,8,8,28,128,1128,2128,7128,56,57,'EOAAAA','WUNAAA','OOOOxx' +1195,9331,1,3,5,15,95,195,1195,1195,1195,190,191,'ZTAAAA','XUNAAA','VVVVxx' +8445,9332,1,1,5,5,45,445,445,3445,8445,90,91,'VMAAAA','YUNAAA','AAAAxx' +8638,9333,0,2,8,18,38,638,638,3638,8638,76,77,'GUAAAA','ZUNAAA','HHHHxx' +1249,9334,1,1,9,9,49,249,1249,1249,1249,98,99,'BWAAAA','AVNAAA','OOOOxx' +8659,9335,1,3,9,19,59,659,659,3659,8659,118,119,'BVAAAA','BVNAAA','VVVVxx' +3556,9336,0,0,6,16,56,556,1556,3556,3556,112,113,'UGAAAA','CVNAAA','AAAAxx' +3347,9337,1,3,7,7,47,347,1347,3347,3347,94,95,'TYAAAA','DVNAAA','HHHHxx' +3260,9338,0,0,0,0,60,260,1260,3260,3260,120,121,'KVAAAA','EVNAAA','OOOOxx' +5139,9339,1,3,9,19,39,139,1139,139,5139,78,79,'RPAAAA','FVNAAA','VVVVxx' +9991,9340,1,3,1,11,91,991,1991,4991,9991,182,183,'HUAAAA','GVNAAA','AAAAxx' +5499,9341,1,3,9,19,99,499,1499,499,5499,198,199,'NDAAAA','HVNAAA','HHHHxx' +8082,9342,0,2,2,2,82,82,82,3082,8082,164,165,'WYAAAA','IVNAAA','OOOOxx' +1640,9343,0,0,0,0,40,640,1640,1640,1640,80,81,'CLAAAA','JVNAAA','VVVVxx' +8726,9344,0,2,6,6,26,726,726,3726,8726,52,53,'QXAAAA','KVNAAA','AAAAxx' +2339,9345,1,3,9,19,39,339,339,2339,2339,78,79,'ZLAAAA','LVNAAA','HHHHxx' +2601,9346,1,1,1,1,1,601,601,2601,2601,2,3,'BWAAAA','MVNAAA','OOOOxx' +9940,9347,0,0,0,0,40,940,1940,4940,9940,80,81,'ISAAAA','NVNAAA','VVVVxx' +4185,9348,1,1,5,5,85,185,185,4185,4185,170,171,'ZEAAAA','OVNAAA','AAAAxx' +9546,9349,0,2,6,6,46,546,1546,4546,9546,92,93,'EDAAAA','PVNAAA','HHHHxx' +5218,9350,0,2,8,18,18,218,1218,218,5218,36,37,'SSAAAA','QVNAAA','OOOOxx' +4374,9351,0,2,4,14,74,374,374,4374,4374,148,149,'GMAAAA','RVNAAA','VVVVxx' +288,9352,0,0,8,8,88,288,288,288,288,176,177,'CLAAAA','SVNAAA','AAAAxx' +7445,9353,1,1,5,5,45,445,1445,2445,7445,90,91,'JAAAAA','TVNAAA','HHHHxx' +1710,9354,0,2,0,10,10,710,1710,1710,1710,20,21,'UNAAAA','UVNAAA','OOOOxx' +6409,9355,1,1,9,9,9,409,409,1409,6409,18,19,'NMAAAA','VVNAAA','VVVVxx' +7982,9356,0,2,2,2,82,982,1982,2982,7982,164,165,'AVAAAA','WVNAAA','AAAAxx' +4950,9357,0,2,0,10,50,950,950,4950,4950,100,101,'KIAAAA','XVNAAA','HHHHxx' +9242,9358,0,2,2,2,42,242,1242,4242,9242,84,85,'MRAAAA','YVNAAA','OOOOxx' +3272,9359,0,0,2,12,72,272,1272,3272,3272,144,145,'WVAAAA','ZVNAAA','VVVVxx' +739,9360,1,3,9,19,39,739,739,739,739,78,79,'LCAAAA','AWNAAA','AAAAxx' +5526,9361,0,2,6,6,26,526,1526,526,5526,52,53,'OEAAAA','BWNAAA','HHHHxx' +8189,9362,1,1,9,9,89,189,189,3189,8189,178,179,'ZCAAAA','CWNAAA','OOOOxx' +9106,9363,0,2,6,6,6,106,1106,4106,9106,12,13,'GMAAAA','DWNAAA','VVVVxx' +9775,9364,1,3,5,15,75,775,1775,4775,9775,150,151,'ZLAAAA','EWNAAA','AAAAxx' +4643,9365,1,3,3,3,43,643,643,4643,4643,86,87,'PWAAAA','FWNAAA','HHHHxx' +8396,9366,0,0,6,16,96,396,396,3396,8396,192,193,'YKAAAA','GWNAAA','OOOOxx' +3255,9367,1,3,5,15,55,255,1255,3255,3255,110,111,'FVAAAA','HWNAAA','VVVVxx' +301,9368,1,1,1,1,1,301,301,301,301,2,3,'PLAAAA','IWNAAA','AAAAxx' +6014,9369,0,2,4,14,14,14,14,1014,6014,28,29,'IXAAAA','JWNAAA','HHHHxx' +6046,9370,0,2,6,6,46,46,46,1046,6046,92,93,'OYAAAA','KWNAAA','OOOOxx' +984,9371,0,0,4,4,84,984,984,984,984,168,169,'WLAAAA','LWNAAA','VVVVxx' +2420,9372,0,0,0,0,20,420,420,2420,2420,40,41,'CPAAAA','MWNAAA','AAAAxx' +2922,9373,0,2,2,2,22,922,922,2922,2922,44,45,'KIAAAA','NWNAAA','HHHHxx' +2317,9374,1,1,7,17,17,317,317,2317,2317,34,35,'DLAAAA','OWNAAA','OOOOxx' +7332,9375,0,0,2,12,32,332,1332,2332,7332,64,65,'AWAAAA','PWNAAA','VVVVxx' +6451,9376,1,3,1,11,51,451,451,1451,6451,102,103,'DOAAAA','QWNAAA','AAAAxx' +2589,9377,1,1,9,9,89,589,589,2589,2589,178,179,'PVAAAA','RWNAAA','HHHHxx' +4333,9378,1,1,3,13,33,333,333,4333,4333,66,67,'RKAAAA','SWNAAA','OOOOxx' +8650,9379,0,2,0,10,50,650,650,3650,8650,100,101,'SUAAAA','TWNAAA','VVVVxx' +6856,9380,0,0,6,16,56,856,856,1856,6856,112,113,'SDAAAA','UWNAAA','AAAAxx' +4194,9381,0,2,4,14,94,194,194,4194,4194,188,189,'IFAAAA','VWNAAA','HHHHxx' +6246,9382,0,2,6,6,46,246,246,1246,6246,92,93,'GGAAAA','WWNAAA','OOOOxx' +4371,9383,1,3,1,11,71,371,371,4371,4371,142,143,'DMAAAA','XWNAAA','VVVVxx' +1388,9384,0,0,8,8,88,388,1388,1388,1388,176,177,'KBAAAA','YWNAAA','AAAAxx' +1056,9385,0,0,6,16,56,56,1056,1056,1056,112,113,'QOAAAA','ZWNAAA','HHHHxx' +6041,9386,1,1,1,1,41,41,41,1041,6041,82,83,'JYAAAA','AXNAAA','OOOOxx' +6153,9387,1,1,3,13,53,153,153,1153,6153,106,107,'RCAAAA','BXNAAA','VVVVxx' +8450,9388,0,2,0,10,50,450,450,3450,8450,100,101,'ANAAAA','CXNAAA','AAAAxx' +3469,9389,1,1,9,9,69,469,1469,3469,3469,138,139,'LDAAAA','DXNAAA','HHHHxx' +5226,9390,0,2,6,6,26,226,1226,226,5226,52,53,'ATAAAA','EXNAAA','OOOOxx' +8112,9391,0,0,2,12,12,112,112,3112,8112,24,25,'AAAAAA','FXNAAA','VVVVxx' +647,9392,1,3,7,7,47,647,647,647,647,94,95,'XYAAAA','GXNAAA','AAAAxx' +2567,9393,1,3,7,7,67,567,567,2567,2567,134,135,'TUAAAA','HXNAAA','HHHHxx' +9064,9394,0,0,4,4,64,64,1064,4064,9064,128,129,'QKAAAA','IXNAAA','OOOOxx' +5161,9395,1,1,1,1,61,161,1161,161,5161,122,123,'NQAAAA','JXNAAA','VVVVxx' +5260,9396,0,0,0,0,60,260,1260,260,5260,120,121,'IUAAAA','KXNAAA','AAAAxx' +8988,9397,0,0,8,8,88,988,988,3988,8988,176,177,'SHAAAA','LXNAAA','HHHHxx' +9678,9398,0,2,8,18,78,678,1678,4678,9678,156,157,'GIAAAA','MXNAAA','OOOOxx' +6853,9399,1,1,3,13,53,853,853,1853,6853,106,107,'PDAAAA','NXNAAA','VVVVxx' +5294,9400,0,2,4,14,94,294,1294,294,5294,188,189,'QVAAAA','OXNAAA','AAAAxx' +9864,9401,0,0,4,4,64,864,1864,4864,9864,128,129,'KPAAAA','PXNAAA','HHHHxx' +8702,9402,0,2,2,2,2,702,702,3702,8702,4,5,'SWAAAA','QXNAAA','OOOOxx' +1132,9403,0,0,2,12,32,132,1132,1132,1132,64,65,'ORAAAA','RXNAAA','VVVVxx' +1524,9404,0,0,4,4,24,524,1524,1524,1524,48,49,'QGAAAA','SXNAAA','AAAAxx' +4560,9405,0,0,0,0,60,560,560,4560,4560,120,121,'KTAAAA','TXNAAA','HHHHxx' +2137,9406,1,1,7,17,37,137,137,2137,2137,74,75,'FEAAAA','UXNAAA','OOOOxx' +3283,9407,1,3,3,3,83,283,1283,3283,3283,166,167,'HWAAAA','VXNAAA','VVVVxx' +3377,9408,1,1,7,17,77,377,1377,3377,3377,154,155,'XZAAAA','WXNAAA','AAAAxx' +2267,9409,1,3,7,7,67,267,267,2267,2267,134,135,'FJAAAA','XXNAAA','HHHHxx' +8987,9410,1,3,7,7,87,987,987,3987,8987,174,175,'RHAAAA','YXNAAA','OOOOxx' +6709,9411,1,1,9,9,9,709,709,1709,6709,18,19,'BYAAAA','ZXNAAA','VVVVxx' +8059,9412,1,3,9,19,59,59,59,3059,8059,118,119,'ZXAAAA','AYNAAA','AAAAxx' +3402,9413,0,2,2,2,2,402,1402,3402,3402,4,5,'WAAAAA','BYNAAA','HHHHxx' +6443,9414,1,3,3,3,43,443,443,1443,6443,86,87,'VNAAAA','CYNAAA','OOOOxx' +8858,9415,0,2,8,18,58,858,858,3858,8858,116,117,'SCAAAA','DYNAAA','VVVVxx' +3974,9416,0,2,4,14,74,974,1974,3974,3974,148,149,'WWAAAA','EYNAAA','AAAAxx' +3521,9417,1,1,1,1,21,521,1521,3521,3521,42,43,'LFAAAA','FYNAAA','HHHHxx' +9509,9418,1,1,9,9,9,509,1509,4509,9509,18,19,'TBAAAA','GYNAAA','OOOOxx' +5442,9419,0,2,2,2,42,442,1442,442,5442,84,85,'IBAAAA','HYNAAA','VVVVxx' +8968,9420,0,0,8,8,68,968,968,3968,8968,136,137,'YGAAAA','IYNAAA','AAAAxx' +333,9421,1,1,3,13,33,333,333,333,333,66,67,'VMAAAA','JYNAAA','HHHHxx' +952,9422,0,0,2,12,52,952,952,952,952,104,105,'QKAAAA','KYNAAA','OOOOxx' +7482,9423,0,2,2,2,82,482,1482,2482,7482,164,165,'UBAAAA','LYNAAA','VVVVxx' +1486,9424,0,2,6,6,86,486,1486,1486,1486,172,173,'EFAAAA','MYNAAA','AAAAxx' +1815,9425,1,3,5,15,15,815,1815,1815,1815,30,31,'VRAAAA','NYNAAA','HHHHxx' +7937,9426,1,1,7,17,37,937,1937,2937,7937,74,75,'HTAAAA','OYNAAA','OOOOxx' +1436,9427,0,0,6,16,36,436,1436,1436,1436,72,73,'GDAAAA','PYNAAA','VVVVxx' +3470,9428,0,2,0,10,70,470,1470,3470,3470,140,141,'MDAAAA','QYNAAA','AAAAxx' +8195,9429,1,3,5,15,95,195,195,3195,8195,190,191,'FDAAAA','RYNAAA','HHHHxx' +6906,9430,0,2,6,6,6,906,906,1906,6906,12,13,'QFAAAA','SYNAAA','OOOOxx' +2539,9431,1,3,9,19,39,539,539,2539,2539,78,79,'RTAAAA','TYNAAA','VVVVxx' +5988,9432,0,0,8,8,88,988,1988,988,5988,176,177,'IWAAAA','UYNAAA','AAAAxx' +8908,9433,0,0,8,8,8,908,908,3908,8908,16,17,'QEAAAA','VYNAAA','HHHHxx' +2319,9434,1,3,9,19,19,319,319,2319,2319,38,39,'FLAAAA','WYNAAA','OOOOxx' +3263,9435,1,3,3,3,63,263,1263,3263,3263,126,127,'NVAAAA','XYNAAA','VVVVxx' +4039,9436,1,3,9,19,39,39,39,4039,4039,78,79,'JZAAAA','YYNAAA','AAAAxx' +6373,9437,1,1,3,13,73,373,373,1373,6373,146,147,'DLAAAA','ZYNAAA','HHHHxx' +1168,9438,0,0,8,8,68,168,1168,1168,1168,136,137,'YSAAAA','AZNAAA','OOOOxx' +8338,9439,0,2,8,18,38,338,338,3338,8338,76,77,'SIAAAA','BZNAAA','VVVVxx' +1172,9440,0,0,2,12,72,172,1172,1172,1172,144,145,'CTAAAA','CZNAAA','AAAAxx' +200,9441,0,0,0,0,0,200,200,200,200,0,1,'SHAAAA','DZNAAA','HHHHxx' +6355,9442,1,3,5,15,55,355,355,1355,6355,110,111,'LKAAAA','EZNAAA','OOOOxx' +7768,9443,0,0,8,8,68,768,1768,2768,7768,136,137,'UMAAAA','FZNAAA','VVVVxx' +25,9444,1,1,5,5,25,25,25,25,25,50,51,'ZAAAAA','GZNAAA','AAAAxx' +7144,9445,0,0,4,4,44,144,1144,2144,7144,88,89,'UOAAAA','HZNAAA','HHHHxx' +8671,9446,1,3,1,11,71,671,671,3671,8671,142,143,'NVAAAA','IZNAAA','OOOOxx' +9163,9447,1,3,3,3,63,163,1163,4163,9163,126,127,'LOAAAA','JZNAAA','VVVVxx' +8889,9448,1,1,9,9,89,889,889,3889,8889,178,179,'XDAAAA','KZNAAA','AAAAxx' +5950,9449,0,2,0,10,50,950,1950,950,5950,100,101,'WUAAAA','LZNAAA','HHHHxx' +6163,9450,1,3,3,3,63,163,163,1163,6163,126,127,'BDAAAA','MZNAAA','OOOOxx' +8119,9451,1,3,9,19,19,119,119,3119,8119,38,39,'HAAAAA','NZNAAA','VVVVxx' +1416,9452,0,0,6,16,16,416,1416,1416,1416,32,33,'MCAAAA','OZNAAA','AAAAxx' +4132,9453,0,0,2,12,32,132,132,4132,4132,64,65,'YCAAAA','PZNAAA','HHHHxx' +2294,9454,0,2,4,14,94,294,294,2294,2294,188,189,'GKAAAA','QZNAAA','OOOOxx' +9094,9455,0,2,4,14,94,94,1094,4094,9094,188,189,'ULAAAA','RZNAAA','VVVVxx' +4168,9456,0,0,8,8,68,168,168,4168,4168,136,137,'IEAAAA','SZNAAA','AAAAxx' +9108,9457,0,0,8,8,8,108,1108,4108,9108,16,17,'IMAAAA','TZNAAA','HHHHxx' +5706,9458,0,2,6,6,6,706,1706,706,5706,12,13,'MLAAAA','UZNAAA','OOOOxx' +2231,9459,1,3,1,11,31,231,231,2231,2231,62,63,'VHAAAA','VZNAAA','VVVVxx' +2173,9460,1,1,3,13,73,173,173,2173,2173,146,147,'PFAAAA','WZNAAA','AAAAxx' +90,9461,0,2,0,10,90,90,90,90,90,180,181,'MDAAAA','XZNAAA','HHHHxx' +9996,9462,0,0,6,16,96,996,1996,4996,9996,192,193,'MUAAAA','YZNAAA','OOOOxx' +330,9463,0,2,0,10,30,330,330,330,330,60,61,'SMAAAA','ZZNAAA','VVVVxx' +2052,9464,0,0,2,12,52,52,52,2052,2052,104,105,'YAAAAA','AAOAAA','AAAAxx' +1093,9465,1,1,3,13,93,93,1093,1093,1093,186,187,'BQAAAA','BAOAAA','HHHHxx' +5817,9466,1,1,7,17,17,817,1817,817,5817,34,35,'TPAAAA','CAOAAA','OOOOxx' +1559,9467,1,3,9,19,59,559,1559,1559,1559,118,119,'ZHAAAA','DAOAAA','VVVVxx' +8405,9468,1,1,5,5,5,405,405,3405,8405,10,11,'HLAAAA','EAOAAA','AAAAxx' +9962,9469,0,2,2,2,62,962,1962,4962,9962,124,125,'ETAAAA','FAOAAA','HHHHxx' +9461,9470,1,1,1,1,61,461,1461,4461,9461,122,123,'XZAAAA','GAOAAA','OOOOxx' +3028,9471,0,0,8,8,28,28,1028,3028,3028,56,57,'MMAAAA','HAOAAA','VVVVxx' +6814,9472,0,2,4,14,14,814,814,1814,6814,28,29,'CCAAAA','IAOAAA','AAAAxx' +9587,9473,1,3,7,7,87,587,1587,4587,9587,174,175,'TEAAAA','JAOAAA','HHHHxx' +6863,9474,1,3,3,3,63,863,863,1863,6863,126,127,'ZDAAAA','KAOAAA','OOOOxx' +4963,9475,1,3,3,3,63,963,963,4963,4963,126,127,'XIAAAA','LAOAAA','VVVVxx' +7811,9476,1,3,1,11,11,811,1811,2811,7811,22,23,'LOAAAA','MAOAAA','AAAAxx' +7608,9477,0,0,8,8,8,608,1608,2608,7608,16,17,'QGAAAA','NAOAAA','HHHHxx' +5321,9478,1,1,1,1,21,321,1321,321,5321,42,43,'RWAAAA','OAOAAA','OOOOxx' +9971,9479,1,3,1,11,71,971,1971,4971,9971,142,143,'NTAAAA','PAOAAA','VVVVxx' +6161,9480,1,1,1,1,61,161,161,1161,6161,122,123,'ZCAAAA','QAOAAA','AAAAxx' +2181,9481,1,1,1,1,81,181,181,2181,2181,162,163,'XFAAAA','RAOAAA','HHHHxx' +3828,9482,0,0,8,8,28,828,1828,3828,3828,56,57,'GRAAAA','SAOAAA','OOOOxx' +348,9483,0,0,8,8,48,348,348,348,348,96,97,'KNAAAA','TAOAAA','VVVVxx' +5459,9484,1,3,9,19,59,459,1459,459,5459,118,119,'ZBAAAA','UAOAAA','AAAAxx' +9406,9485,0,2,6,6,6,406,1406,4406,9406,12,13,'UXAAAA','VAOAAA','HHHHxx' +9852,9486,0,0,2,12,52,852,1852,4852,9852,104,105,'YOAAAA','WAOAAA','OOOOxx' +3095,9487,1,3,5,15,95,95,1095,3095,3095,190,191,'BPAAAA','XAOAAA','VVVVxx' +5597,9488,1,1,7,17,97,597,1597,597,5597,194,195,'HHAAAA','YAOAAA','AAAAxx' +8841,9489,1,1,1,1,41,841,841,3841,8841,82,83,'BCAAAA','ZAOAAA','HHHHxx' +3536,9490,0,0,6,16,36,536,1536,3536,3536,72,73,'AGAAAA','ABOAAA','OOOOxx' +4009,9491,1,1,9,9,9,9,9,4009,4009,18,19,'FYAAAA','BBOAAA','VVVVxx' +7366,9492,0,2,6,6,66,366,1366,2366,7366,132,133,'IXAAAA','CBOAAA','AAAAxx' +7327,9493,1,3,7,7,27,327,1327,2327,7327,54,55,'VVAAAA','DBOAAA','HHHHxx' +1613,9494,1,1,3,13,13,613,1613,1613,1613,26,27,'BKAAAA','EBOAAA','OOOOxx' +8619,9495,1,3,9,19,19,619,619,3619,8619,38,39,'NTAAAA','FBOAAA','VVVVxx' +4880,9496,0,0,0,0,80,880,880,4880,4880,160,161,'SFAAAA','GBOAAA','AAAAxx' +1552,9497,0,0,2,12,52,552,1552,1552,1552,104,105,'SHAAAA','HBOAAA','HHHHxx' +7636,9498,0,0,6,16,36,636,1636,2636,7636,72,73,'SHAAAA','IBOAAA','OOOOxx' +8397,9499,1,1,7,17,97,397,397,3397,8397,194,195,'ZKAAAA','JBOAAA','VVVVxx' +6224,9500,0,0,4,4,24,224,224,1224,6224,48,49,'KFAAAA','KBOAAA','AAAAxx' +9102,9501,0,2,2,2,2,102,1102,4102,9102,4,5,'CMAAAA','LBOAAA','HHHHxx' +7906,9502,0,2,6,6,6,906,1906,2906,7906,12,13,'CSAAAA','MBOAAA','OOOOxx' +9467,9503,1,3,7,7,67,467,1467,4467,9467,134,135,'DAAAAA','NBOAAA','VVVVxx' +828,9504,0,0,8,8,28,828,828,828,828,56,57,'WFAAAA','OBOAAA','AAAAxx' +9585,9505,1,1,5,5,85,585,1585,4585,9585,170,171,'REAAAA','PBOAAA','HHHHxx' +925,9506,1,1,5,5,25,925,925,925,925,50,51,'PJAAAA','QBOAAA','OOOOxx' +7375,9507,1,3,5,15,75,375,1375,2375,7375,150,151,'RXAAAA','RBOAAA','VVVVxx' +4027,9508,1,3,7,7,27,27,27,4027,4027,54,55,'XYAAAA','SBOAAA','AAAAxx' +766,9509,0,2,6,6,66,766,766,766,766,132,133,'MDAAAA','TBOAAA','HHHHxx' +5633,9510,1,1,3,13,33,633,1633,633,5633,66,67,'RIAAAA','UBOAAA','OOOOxx' +5648,9511,0,0,8,8,48,648,1648,648,5648,96,97,'GJAAAA','VBOAAA','VVVVxx' +148,9512,0,0,8,8,48,148,148,148,148,96,97,'SFAAAA','WBOAAA','AAAAxx' +2072,9513,0,0,2,12,72,72,72,2072,2072,144,145,'SBAAAA','XBOAAA','HHHHxx' +431,9514,1,3,1,11,31,431,431,431,431,62,63,'PQAAAA','YBOAAA','OOOOxx' +1711,9515,1,3,1,11,11,711,1711,1711,1711,22,23,'VNAAAA','ZBOAAA','VVVVxx' +9378,9516,0,2,8,18,78,378,1378,4378,9378,156,157,'SWAAAA','ACOAAA','AAAAxx' +6776,9517,0,0,6,16,76,776,776,1776,6776,152,153,'QAAAAA','BCOAAA','HHHHxx' +6842,9518,0,2,2,2,42,842,842,1842,6842,84,85,'EDAAAA','CCOAAA','OOOOxx' +2656,9519,0,0,6,16,56,656,656,2656,2656,112,113,'EYAAAA','DCOAAA','VVVVxx' +3116,9520,0,0,6,16,16,116,1116,3116,3116,32,33,'WPAAAA','ECOAAA','AAAAxx' +7904,9521,0,0,4,4,4,904,1904,2904,7904,8,9,'ASAAAA','FCOAAA','HHHHxx' +3529,9522,1,1,9,9,29,529,1529,3529,3529,58,59,'TFAAAA','GCOAAA','OOOOxx' +3240,9523,0,0,0,0,40,240,1240,3240,3240,80,81,'QUAAAA','HCOAAA','VVVVxx' +5801,9524,1,1,1,1,1,801,1801,801,5801,2,3,'DPAAAA','ICOAAA','AAAAxx' +4090,9525,0,2,0,10,90,90,90,4090,4090,180,181,'IBAAAA','JCOAAA','HHHHxx' +7687,9526,1,3,7,7,87,687,1687,2687,7687,174,175,'RJAAAA','KCOAAA','OOOOxx' +9711,9527,1,3,1,11,11,711,1711,4711,9711,22,23,'NJAAAA','LCOAAA','VVVVxx' +4760,9528,0,0,0,0,60,760,760,4760,4760,120,121,'CBAAAA','MCOAAA','AAAAxx' +5524,9529,0,0,4,4,24,524,1524,524,5524,48,49,'MEAAAA','NCOAAA','HHHHxx' +2251,9530,1,3,1,11,51,251,251,2251,2251,102,103,'PIAAAA','OCOAAA','OOOOxx' +1511,9531,1,3,1,11,11,511,1511,1511,1511,22,23,'DGAAAA','PCOAAA','VVVVxx' +5991,9532,1,3,1,11,91,991,1991,991,5991,182,183,'LWAAAA','QCOAAA','AAAAxx' +7808,9533,0,0,8,8,8,808,1808,2808,7808,16,17,'IOAAAA','RCOAAA','HHHHxx' +8708,9534,0,0,8,8,8,708,708,3708,8708,16,17,'YWAAAA','SCOAAA','OOOOxx' +8939,9535,1,3,9,19,39,939,939,3939,8939,78,79,'VFAAAA','TCOAAA','VVVVxx' +4295,9536,1,3,5,15,95,295,295,4295,4295,190,191,'FJAAAA','UCOAAA','AAAAxx' +5905,9537,1,1,5,5,5,905,1905,905,5905,10,11,'DTAAAA','VCOAAA','HHHHxx' +2649,9538,1,1,9,9,49,649,649,2649,2649,98,99,'XXAAAA','WCOAAA','OOOOxx' +2347,9539,1,3,7,7,47,347,347,2347,2347,94,95,'HMAAAA','XCOAAA','VVVVxx' +6339,9540,1,3,9,19,39,339,339,1339,6339,78,79,'VJAAAA','YCOAAA','AAAAxx' +292,9541,0,0,2,12,92,292,292,292,292,184,185,'GLAAAA','ZCOAAA','HHHHxx' +9314,9542,0,2,4,14,14,314,1314,4314,9314,28,29,'GUAAAA','ADOAAA','OOOOxx' +6893,9543,1,1,3,13,93,893,893,1893,6893,186,187,'DFAAAA','BDOAAA','VVVVxx' +3970,9544,0,2,0,10,70,970,1970,3970,3970,140,141,'SWAAAA','CDOAAA','AAAAxx' +1652,9545,0,0,2,12,52,652,1652,1652,1652,104,105,'OLAAAA','DDOAAA','HHHHxx' +4326,9546,0,2,6,6,26,326,326,4326,4326,52,53,'KKAAAA','EDOAAA','OOOOxx' +7881,9547,1,1,1,1,81,881,1881,2881,7881,162,163,'DRAAAA','FDOAAA','VVVVxx' +5291,9548,1,3,1,11,91,291,1291,291,5291,182,183,'NVAAAA','GDOAAA','AAAAxx' +957,9549,1,1,7,17,57,957,957,957,957,114,115,'VKAAAA','HDOAAA','HHHHxx' +2313,9550,1,1,3,13,13,313,313,2313,2313,26,27,'ZKAAAA','IDOAAA','OOOOxx' +5463,9551,1,3,3,3,63,463,1463,463,5463,126,127,'DCAAAA','JDOAAA','VVVVxx' +1268,9552,0,0,8,8,68,268,1268,1268,1268,136,137,'UWAAAA','KDOAAA','AAAAxx' +5028,9553,0,0,8,8,28,28,1028,28,5028,56,57,'KLAAAA','LDOAAA','HHHHxx' +656,9554,0,0,6,16,56,656,656,656,656,112,113,'GZAAAA','MDOAAA','OOOOxx' +9274,9555,0,2,4,14,74,274,1274,4274,9274,148,149,'SSAAAA','NDOAAA','VVVVxx' +8217,9556,1,1,7,17,17,217,217,3217,8217,34,35,'BEAAAA','ODOAAA','AAAAxx' +2175,9557,1,3,5,15,75,175,175,2175,2175,150,151,'RFAAAA','PDOAAA','HHHHxx' +6028,9558,0,0,8,8,28,28,28,1028,6028,56,57,'WXAAAA','QDOAAA','OOOOxx' +7584,9559,0,0,4,4,84,584,1584,2584,7584,168,169,'SFAAAA','RDOAAA','VVVVxx' +4114,9560,0,2,4,14,14,114,114,4114,4114,28,29,'GCAAAA','SDOAAA','AAAAxx' +8894,9561,0,2,4,14,94,894,894,3894,8894,188,189,'CEAAAA','TDOAAA','HHHHxx' +781,9562,1,1,1,1,81,781,781,781,781,162,163,'BEAAAA','UDOAAA','OOOOxx' +133,9563,1,1,3,13,33,133,133,133,133,66,67,'DFAAAA','VDOAAA','VVVVxx' +7572,9564,0,0,2,12,72,572,1572,2572,7572,144,145,'GFAAAA','WDOAAA','AAAAxx' +8514,9565,0,2,4,14,14,514,514,3514,8514,28,29,'MPAAAA','XDOAAA','HHHHxx' +3352,9566,0,0,2,12,52,352,1352,3352,3352,104,105,'YYAAAA','YDOAAA','OOOOxx' +8098,9567,0,2,8,18,98,98,98,3098,8098,196,197,'MZAAAA','ZDOAAA','VVVVxx' +9116,9568,0,0,6,16,16,116,1116,4116,9116,32,33,'QMAAAA','AEOAAA','AAAAxx' +9444,9569,0,0,4,4,44,444,1444,4444,9444,88,89,'GZAAAA','BEOAAA','HHHHxx' +2590,9570,0,2,0,10,90,590,590,2590,2590,180,181,'QVAAAA','CEOAAA','OOOOxx' +7302,9571,0,2,2,2,2,302,1302,2302,7302,4,5,'WUAAAA','DEOAAA','VVVVxx' +7444,9572,0,0,4,4,44,444,1444,2444,7444,88,89,'IAAAAA','EEOAAA','AAAAxx' +8748,9573,0,0,8,8,48,748,748,3748,8748,96,97,'MYAAAA','FEOAAA','HHHHxx' +7615,9574,1,3,5,15,15,615,1615,2615,7615,30,31,'XGAAAA','GEOAAA','OOOOxx' +6090,9575,0,2,0,10,90,90,90,1090,6090,180,181,'GAAAAA','HEOAAA','VVVVxx' +1529,9576,1,1,9,9,29,529,1529,1529,1529,58,59,'VGAAAA','IEOAAA','AAAAxx' +9398,9577,0,2,8,18,98,398,1398,4398,9398,196,197,'MXAAAA','JEOAAA','HHHHxx' +6114,9578,0,2,4,14,14,114,114,1114,6114,28,29,'EBAAAA','KEOAAA','OOOOxx' +2736,9579,0,0,6,16,36,736,736,2736,2736,72,73,'GBAAAA','LEOAAA','VVVVxx' +468,9580,0,0,8,8,68,468,468,468,468,136,137,'ASAAAA','MEOAAA','AAAAxx' +1487,9581,1,3,7,7,87,487,1487,1487,1487,174,175,'FFAAAA','NEOAAA','HHHHxx' +4784,9582,0,0,4,4,84,784,784,4784,4784,168,169,'ACAAAA','OEOAAA','OOOOxx' +6731,9583,1,3,1,11,31,731,731,1731,6731,62,63,'XYAAAA','PEOAAA','VVVVxx' +3328,9584,0,0,8,8,28,328,1328,3328,3328,56,57,'AYAAAA','QEOAAA','AAAAxx' +6891,9585,1,3,1,11,91,891,891,1891,6891,182,183,'BFAAAA','REOAAA','HHHHxx' +8039,9586,1,3,9,19,39,39,39,3039,8039,78,79,'FXAAAA','SEOAAA','OOOOxx' +4064,9587,0,0,4,4,64,64,64,4064,4064,128,129,'IAAAAA','TEOAAA','VVVVxx' +542,9588,0,2,2,2,42,542,542,542,542,84,85,'WUAAAA','UEOAAA','AAAAxx' +1039,9589,1,3,9,19,39,39,1039,1039,1039,78,79,'ZNAAAA','VEOAAA','HHHHxx' +5603,9590,1,3,3,3,3,603,1603,603,5603,6,7,'NHAAAA','WEOAAA','OOOOxx' +6641,9591,1,1,1,1,41,641,641,1641,6641,82,83,'LVAAAA','XEOAAA','VVVVxx' +6307,9592,1,3,7,7,7,307,307,1307,6307,14,15,'PIAAAA','YEOAAA','AAAAxx' +5354,9593,0,2,4,14,54,354,1354,354,5354,108,109,'YXAAAA','ZEOAAA','HHHHxx' +7878,9594,0,2,8,18,78,878,1878,2878,7878,156,157,'ARAAAA','AFOAAA','OOOOxx' +6391,9595,1,3,1,11,91,391,391,1391,6391,182,183,'VLAAAA','BFOAAA','VVVVxx' +4575,9596,1,3,5,15,75,575,575,4575,4575,150,151,'ZTAAAA','CFOAAA','AAAAxx' +6644,9597,0,0,4,4,44,644,644,1644,6644,88,89,'OVAAAA','DFOAAA','HHHHxx' +5207,9598,1,3,7,7,7,207,1207,207,5207,14,15,'HSAAAA','EFOAAA','OOOOxx' +1736,9599,0,0,6,16,36,736,1736,1736,1736,72,73,'UOAAAA','FFOAAA','VVVVxx' +3547,9600,1,3,7,7,47,547,1547,3547,3547,94,95,'LGAAAA','GFOAAA','AAAAxx' +6647,9601,1,3,7,7,47,647,647,1647,6647,94,95,'RVAAAA','HFOAAA','HHHHxx' +4107,9602,1,3,7,7,7,107,107,4107,4107,14,15,'ZBAAAA','IFOAAA','OOOOxx' +8125,9603,1,1,5,5,25,125,125,3125,8125,50,51,'NAAAAA','JFOAAA','VVVVxx' +9223,9604,1,3,3,3,23,223,1223,4223,9223,46,47,'TQAAAA','KFOAAA','AAAAxx' +6903,9605,1,3,3,3,3,903,903,1903,6903,6,7,'NFAAAA','LFOAAA','HHHHxx' +3639,9606,1,3,9,19,39,639,1639,3639,3639,78,79,'ZJAAAA','MFOAAA','OOOOxx' +9606,9607,0,2,6,6,6,606,1606,4606,9606,12,13,'MFAAAA','NFOAAA','VVVVxx' +3232,9608,0,0,2,12,32,232,1232,3232,3232,64,65,'IUAAAA','OFOAAA','AAAAxx' +2063,9609,1,3,3,3,63,63,63,2063,2063,126,127,'JBAAAA','PFOAAA','HHHHxx' +3731,9610,1,3,1,11,31,731,1731,3731,3731,62,63,'NNAAAA','QFOAAA','OOOOxx' +2558,9611,0,2,8,18,58,558,558,2558,2558,116,117,'KUAAAA','RFOAAA','VVVVxx' +2357,9612,1,1,7,17,57,357,357,2357,2357,114,115,'RMAAAA','SFOAAA','AAAAxx' +6008,9613,0,0,8,8,8,8,8,1008,6008,16,17,'CXAAAA','TFOAAA','HHHHxx' +8246,9614,0,2,6,6,46,246,246,3246,8246,92,93,'EFAAAA','UFOAAA','OOOOxx' +8220,9615,0,0,0,0,20,220,220,3220,8220,40,41,'EEAAAA','VFOAAA','VVVVxx' +1075,9616,1,3,5,15,75,75,1075,1075,1075,150,151,'JPAAAA','WFOAAA','AAAAxx' +2410,9617,0,2,0,10,10,410,410,2410,2410,20,21,'SOAAAA','XFOAAA','HHHHxx' +3253,9618,1,1,3,13,53,253,1253,3253,3253,106,107,'DVAAAA','YFOAAA','OOOOxx' +4370,9619,0,2,0,10,70,370,370,4370,4370,140,141,'CMAAAA','ZFOAAA','VVVVxx' +8426,9620,0,2,6,6,26,426,426,3426,8426,52,53,'CMAAAA','AGOAAA','AAAAxx' +2262,9621,0,2,2,2,62,262,262,2262,2262,124,125,'AJAAAA','BGOAAA','HHHHxx' +4149,9622,1,1,9,9,49,149,149,4149,4149,98,99,'PDAAAA','CGOAAA','OOOOxx' +2732,9623,0,0,2,12,32,732,732,2732,2732,64,65,'CBAAAA','DGOAAA','VVVVxx' +8606,9624,0,2,6,6,6,606,606,3606,8606,12,13,'ATAAAA','EGOAAA','AAAAxx' +6311,9625,1,3,1,11,11,311,311,1311,6311,22,23,'TIAAAA','FGOAAA','HHHHxx' +7223,9626,1,3,3,3,23,223,1223,2223,7223,46,47,'VRAAAA','GGOAAA','OOOOxx' +3054,9627,0,2,4,14,54,54,1054,3054,3054,108,109,'MNAAAA','HGOAAA','VVVVxx' +3952,9628,0,0,2,12,52,952,1952,3952,3952,104,105,'AWAAAA','IGOAAA','AAAAxx' +8252,9629,0,0,2,12,52,252,252,3252,8252,104,105,'KFAAAA','JGOAAA','HHHHxx' +6020,9630,0,0,0,0,20,20,20,1020,6020,40,41,'OXAAAA','KGOAAA','OOOOxx' +3846,9631,0,2,6,6,46,846,1846,3846,3846,92,93,'YRAAAA','LGOAAA','VVVVxx' +3755,9632,1,3,5,15,55,755,1755,3755,3755,110,111,'LOAAAA','MGOAAA','AAAAxx' +3765,9633,1,1,5,5,65,765,1765,3765,3765,130,131,'VOAAAA','NGOAAA','HHHHxx' +3434,9634,0,2,4,14,34,434,1434,3434,3434,68,69,'CCAAAA','OGOAAA','OOOOxx' +1381,9635,1,1,1,1,81,381,1381,1381,1381,162,163,'DBAAAA','PGOAAA','VVVVxx' +287,9636,1,3,7,7,87,287,287,287,287,174,175,'BLAAAA','QGOAAA','AAAAxx' +4476,9637,0,0,6,16,76,476,476,4476,4476,152,153,'EQAAAA','RGOAAA','HHHHxx' +2916,9638,0,0,6,16,16,916,916,2916,2916,32,33,'EIAAAA','SGOAAA','OOOOxx' +4517,9639,1,1,7,17,17,517,517,4517,4517,34,35,'TRAAAA','TGOAAA','VVVVxx' +4561,9640,1,1,1,1,61,561,561,4561,4561,122,123,'LTAAAA','UGOAAA','AAAAxx' +5106,9641,0,2,6,6,6,106,1106,106,5106,12,13,'KOAAAA','VGOAAA','HHHHxx' +2077,9642,1,1,7,17,77,77,77,2077,2077,154,155,'XBAAAA','WGOAAA','OOOOxx' +5269,9643,1,1,9,9,69,269,1269,269,5269,138,139,'RUAAAA','XGOAAA','VVVVxx' +5688,9644,0,0,8,8,88,688,1688,688,5688,176,177,'UKAAAA','YGOAAA','AAAAxx' +8831,9645,1,3,1,11,31,831,831,3831,8831,62,63,'RBAAAA','ZGOAAA','HHHHxx' +3867,9646,1,3,7,7,67,867,1867,3867,3867,134,135,'TSAAAA','AHOAAA','OOOOxx' +6062,9647,0,2,2,2,62,62,62,1062,6062,124,125,'EZAAAA','BHOAAA','VVVVxx' +8460,9648,0,0,0,0,60,460,460,3460,8460,120,121,'KNAAAA','CHOAAA','AAAAxx' +3138,9649,0,2,8,18,38,138,1138,3138,3138,76,77,'SQAAAA','DHOAAA','HHHHxx' +3173,9650,1,1,3,13,73,173,1173,3173,3173,146,147,'BSAAAA','EHOAAA','OOOOxx' +7018,9651,0,2,8,18,18,18,1018,2018,7018,36,37,'YJAAAA','FHOAAA','VVVVxx' +4836,9652,0,0,6,16,36,836,836,4836,4836,72,73,'AEAAAA','GHOAAA','AAAAxx' +1007,9653,1,3,7,7,7,7,1007,1007,1007,14,15,'TMAAAA','HHOAAA','HHHHxx' +658,9654,0,2,8,18,58,658,658,658,658,116,117,'IZAAAA','IHOAAA','OOOOxx' +5205,9655,1,1,5,5,5,205,1205,205,5205,10,11,'FSAAAA','JHOAAA','VVVVxx' +5805,9656,1,1,5,5,5,805,1805,805,5805,10,11,'HPAAAA','KHOAAA','AAAAxx' +5959,9657,1,3,9,19,59,959,1959,959,5959,118,119,'FVAAAA','LHOAAA','HHHHxx' +2863,9658,1,3,3,3,63,863,863,2863,2863,126,127,'DGAAAA','MHOAAA','OOOOxx' +7272,9659,0,0,2,12,72,272,1272,2272,7272,144,145,'STAAAA','NHOAAA','VVVVxx' +8437,9660,1,1,7,17,37,437,437,3437,8437,74,75,'NMAAAA','OHOAAA','AAAAxx' +4900,9661,0,0,0,0,0,900,900,4900,4900,0,1,'MGAAAA','PHOAAA','HHHHxx' +890,9662,0,2,0,10,90,890,890,890,890,180,181,'GIAAAA','QHOAAA','OOOOxx' +3530,9663,0,2,0,10,30,530,1530,3530,3530,60,61,'UFAAAA','RHOAAA','VVVVxx' +6209,9664,1,1,9,9,9,209,209,1209,6209,18,19,'VEAAAA','SHOAAA','AAAAxx' +4595,9665,1,3,5,15,95,595,595,4595,4595,190,191,'TUAAAA','THOAAA','HHHHxx' +5982,9666,0,2,2,2,82,982,1982,982,5982,164,165,'CWAAAA','UHOAAA','OOOOxx' +1101,9667,1,1,1,1,1,101,1101,1101,1101,2,3,'JQAAAA','VHOAAA','VVVVxx' +9555,9668,1,3,5,15,55,555,1555,4555,9555,110,111,'NDAAAA','WHOAAA','AAAAxx' +1918,9669,0,2,8,18,18,918,1918,1918,1918,36,37,'UVAAAA','XHOAAA','HHHHxx' +3527,9670,1,3,7,7,27,527,1527,3527,3527,54,55,'RFAAAA','YHOAAA','OOOOxx' +7309,9671,1,1,9,9,9,309,1309,2309,7309,18,19,'DVAAAA','ZHOAAA','VVVVxx' +8213,9672,1,1,3,13,13,213,213,3213,8213,26,27,'XDAAAA','AIOAAA','AAAAxx' +306,9673,0,2,6,6,6,306,306,306,306,12,13,'ULAAAA','BIOAAA','HHHHxx' +845,9674,1,1,5,5,45,845,845,845,845,90,91,'NGAAAA','CIOAAA','OOOOxx' +16,9675,0,0,6,16,16,16,16,16,16,32,33,'QAAAAA','DIOAAA','VVVVxx' +437,9676,1,1,7,17,37,437,437,437,437,74,75,'VQAAAA','EIOAAA','AAAAxx' +9518,9677,0,2,8,18,18,518,1518,4518,9518,36,37,'CCAAAA','FIOAAA','HHHHxx' +2142,9678,0,2,2,2,42,142,142,2142,2142,84,85,'KEAAAA','GIOAAA','OOOOxx' +8121,9679,1,1,1,1,21,121,121,3121,8121,42,43,'JAAAAA','HIOAAA','VVVVxx' +7354,9680,0,2,4,14,54,354,1354,2354,7354,108,109,'WWAAAA','IIOAAA','AAAAxx' +1720,9681,0,0,0,0,20,720,1720,1720,1720,40,41,'EOAAAA','JIOAAA','HHHHxx' +6078,9682,0,2,8,18,78,78,78,1078,6078,156,157,'UZAAAA','KIOAAA','OOOOxx' +5929,9683,1,1,9,9,29,929,1929,929,5929,58,59,'BUAAAA','LIOAAA','VVVVxx' +3856,9684,0,0,6,16,56,856,1856,3856,3856,112,113,'ISAAAA','MIOAAA','AAAAxx' +3424,9685,0,0,4,4,24,424,1424,3424,3424,48,49,'SBAAAA','NIOAAA','HHHHxx' +1712,9686,0,0,2,12,12,712,1712,1712,1712,24,25,'WNAAAA','OIOAAA','OOOOxx' +2340,9687,0,0,0,0,40,340,340,2340,2340,80,81,'AMAAAA','PIOAAA','VVVVxx' +5570,9688,0,2,0,10,70,570,1570,570,5570,140,141,'GGAAAA','QIOAAA','AAAAxx' +8734,9689,0,2,4,14,34,734,734,3734,8734,68,69,'YXAAAA','RIOAAA','HHHHxx' +6077,9690,1,1,7,17,77,77,77,1077,6077,154,155,'TZAAAA','SIOAAA','OOOOxx' +2960,9691,0,0,0,0,60,960,960,2960,2960,120,121,'WJAAAA','TIOAAA','VVVVxx' +5062,9692,0,2,2,2,62,62,1062,62,5062,124,125,'SMAAAA','UIOAAA','AAAAxx' +1532,9693,0,0,2,12,32,532,1532,1532,1532,64,65,'YGAAAA','VIOAAA','HHHHxx' +8298,9694,0,2,8,18,98,298,298,3298,8298,196,197,'EHAAAA','WIOAAA','OOOOxx' +2496,9695,0,0,6,16,96,496,496,2496,2496,192,193,'ASAAAA','XIOAAA','VVVVxx' +8412,9696,0,0,2,12,12,412,412,3412,8412,24,25,'OLAAAA','YIOAAA','AAAAxx' +724,9697,0,0,4,4,24,724,724,724,724,48,49,'WBAAAA','ZIOAAA','HHHHxx' +1019,9698,1,3,9,19,19,19,1019,1019,1019,38,39,'FNAAAA','AJOAAA','OOOOxx' +6265,9699,1,1,5,5,65,265,265,1265,6265,130,131,'ZGAAAA','BJOAAA','VVVVxx' +740,9700,0,0,0,0,40,740,740,740,740,80,81,'MCAAAA','CJOAAA','AAAAxx' +8495,9701,1,3,5,15,95,495,495,3495,8495,190,191,'TOAAAA','DJOAAA','HHHHxx' +6983,9702,1,3,3,3,83,983,983,1983,6983,166,167,'PIAAAA','EJOAAA','OOOOxx' +991,9703,1,3,1,11,91,991,991,991,991,182,183,'DMAAAA','FJOAAA','VVVVxx' +3189,9704,1,1,9,9,89,189,1189,3189,3189,178,179,'RSAAAA','GJOAAA','AAAAxx' +4487,9705,1,3,7,7,87,487,487,4487,4487,174,175,'PQAAAA','HJOAAA','HHHHxx' +5554,9706,0,2,4,14,54,554,1554,554,5554,108,109,'QFAAAA','IJOAAA','OOOOxx' +1258,9707,0,2,8,18,58,258,1258,1258,1258,116,117,'KWAAAA','JJOAAA','VVVVxx' +5359,9708,1,3,9,19,59,359,1359,359,5359,118,119,'DYAAAA','KJOAAA','AAAAxx' +2709,9709,1,1,9,9,9,709,709,2709,2709,18,19,'FAAAAA','LJOAAA','HHHHxx' +361,9710,1,1,1,1,61,361,361,361,361,122,123,'XNAAAA','MJOAAA','OOOOxx' +4028,9711,0,0,8,8,28,28,28,4028,4028,56,57,'YYAAAA','NJOAAA','VVVVxx' +3735,9712,1,3,5,15,35,735,1735,3735,3735,70,71,'RNAAAA','OJOAAA','AAAAxx' +4427,9713,1,3,7,7,27,427,427,4427,4427,54,55,'HOAAAA','PJOAAA','HHHHxx' +7540,9714,0,0,0,0,40,540,1540,2540,7540,80,81,'AEAAAA','QJOAAA','OOOOxx' +3569,9715,1,1,9,9,69,569,1569,3569,3569,138,139,'HHAAAA','RJOAAA','VVVVxx' +1916,9716,0,0,6,16,16,916,1916,1916,1916,32,33,'SVAAAA','SJOAAA','AAAAxx' +7596,9717,0,0,6,16,96,596,1596,2596,7596,192,193,'EGAAAA','TJOAAA','HHHHxx' +9721,9718,1,1,1,1,21,721,1721,4721,9721,42,43,'XJAAAA','UJOAAA','OOOOxx' +4429,9719,1,1,9,9,29,429,429,4429,4429,58,59,'JOAAAA','VJOAAA','VVVVxx' +3471,9720,1,3,1,11,71,471,1471,3471,3471,142,143,'NDAAAA','WJOAAA','AAAAxx' +1157,9721,1,1,7,17,57,157,1157,1157,1157,114,115,'NSAAAA','XJOAAA','HHHHxx' +5700,9722,0,0,0,0,0,700,1700,700,5700,0,1,'GLAAAA','YJOAAA','OOOOxx' +4431,9723,1,3,1,11,31,431,431,4431,4431,62,63,'LOAAAA','ZJOAAA','VVVVxx' +9409,9724,1,1,9,9,9,409,1409,4409,9409,18,19,'XXAAAA','AKOAAA','AAAAxx' +8752,9725,0,0,2,12,52,752,752,3752,8752,104,105,'QYAAAA','BKOAAA','HHHHxx' +9484,9726,0,0,4,4,84,484,1484,4484,9484,168,169,'UAAAAA','CKOAAA','OOOOxx' +1266,9727,0,2,6,6,66,266,1266,1266,1266,132,133,'SWAAAA','DKOAAA','VVVVxx' +9097,9728,1,1,7,17,97,97,1097,4097,9097,194,195,'XLAAAA','EKOAAA','AAAAxx' +3068,9729,0,0,8,8,68,68,1068,3068,3068,136,137,'AOAAAA','FKOAAA','HHHHxx' +5490,9730,0,2,0,10,90,490,1490,490,5490,180,181,'EDAAAA','GKOAAA','OOOOxx' +1375,9731,1,3,5,15,75,375,1375,1375,1375,150,151,'XAAAAA','HKOAAA','VVVVxx' +2487,9732,1,3,7,7,87,487,487,2487,2487,174,175,'RRAAAA','IKOAAA','AAAAxx' +1705,9733,1,1,5,5,5,705,1705,1705,1705,10,11,'PNAAAA','JKOAAA','HHHHxx' +1571,9734,1,3,1,11,71,571,1571,1571,1571,142,143,'LIAAAA','KKOAAA','OOOOxx' +4005,9735,1,1,5,5,5,5,5,4005,4005,10,11,'BYAAAA','LKOAAA','VVVVxx' +5497,9736,1,1,7,17,97,497,1497,497,5497,194,195,'LDAAAA','MKOAAA','AAAAxx' +2144,9737,0,0,4,4,44,144,144,2144,2144,88,89,'MEAAAA','NKOAAA','HHHHxx' +4052,9738,0,0,2,12,52,52,52,4052,4052,104,105,'WZAAAA','OKOAAA','OOOOxx' +4942,9739,0,2,2,2,42,942,942,4942,4942,84,85,'CIAAAA','PKOAAA','VVVVxx' +5504,9740,0,0,4,4,4,504,1504,504,5504,8,9,'SDAAAA','QKOAAA','AAAAxx' +2913,9741,1,1,3,13,13,913,913,2913,2913,26,27,'BIAAAA','RKOAAA','HHHHxx' +5617,9742,1,1,7,17,17,617,1617,617,5617,34,35,'BIAAAA','SKOAAA','OOOOxx' +8179,9743,1,3,9,19,79,179,179,3179,8179,158,159,'PCAAAA','TKOAAA','VVVVxx' +9437,9744,1,1,7,17,37,437,1437,4437,9437,74,75,'ZYAAAA','UKOAAA','AAAAxx' +1821,9745,1,1,1,1,21,821,1821,1821,1821,42,43,'BSAAAA','VKOAAA','HHHHxx' +5737,9746,1,1,7,17,37,737,1737,737,5737,74,75,'RMAAAA','WKOAAA','OOOOxx' +4207,9747,1,3,7,7,7,207,207,4207,4207,14,15,'VFAAAA','XKOAAA','VVVVxx' +4815,9748,1,3,5,15,15,815,815,4815,4815,30,31,'FDAAAA','YKOAAA','AAAAxx' +8707,9749,1,3,7,7,7,707,707,3707,8707,14,15,'XWAAAA','ZKOAAA','HHHHxx' +5970,9750,0,2,0,10,70,970,1970,970,5970,140,141,'QVAAAA','ALOAAA','OOOOxx' +5501,9751,1,1,1,1,1,501,1501,501,5501,2,3,'PDAAAA','BLOAAA','VVVVxx' +4013,9752,1,1,3,13,13,13,13,4013,4013,26,27,'JYAAAA','CLOAAA','AAAAxx' +9235,9753,1,3,5,15,35,235,1235,4235,9235,70,71,'FRAAAA','DLOAAA','HHHHxx' +2503,9754,1,3,3,3,3,503,503,2503,2503,6,7,'HSAAAA','ELOAAA','OOOOxx' +9181,9755,1,1,1,1,81,181,1181,4181,9181,162,163,'DPAAAA','FLOAAA','VVVVxx' +2289,9756,1,1,9,9,89,289,289,2289,2289,178,179,'BKAAAA','GLOAAA','AAAAxx' +4256,9757,0,0,6,16,56,256,256,4256,4256,112,113,'SHAAAA','HLOAAA','HHHHxx' +191,9758,1,3,1,11,91,191,191,191,191,182,183,'JHAAAA','ILOAAA','OOOOxx' +9655,9759,1,3,5,15,55,655,1655,4655,9655,110,111,'JHAAAA','JLOAAA','VVVVxx' +8615,9760,1,3,5,15,15,615,615,3615,8615,30,31,'JTAAAA','KLOAAA','AAAAxx' +3011,9761,1,3,1,11,11,11,1011,3011,3011,22,23,'VLAAAA','LLOAAA','HHHHxx' +6376,9762,0,0,6,16,76,376,376,1376,6376,152,153,'GLAAAA','MLOAAA','OOOOxx' +68,9763,0,0,8,8,68,68,68,68,68,136,137,'QCAAAA','NLOAAA','VVVVxx' +4720,9764,0,0,0,0,20,720,720,4720,4720,40,41,'OZAAAA','OLOAAA','AAAAxx' +6848,9765,0,0,8,8,48,848,848,1848,6848,96,97,'KDAAAA','PLOAAA','HHHHxx' +456,9766,0,0,6,16,56,456,456,456,456,112,113,'ORAAAA','QLOAAA','OOOOxx' +5887,9767,1,3,7,7,87,887,1887,887,5887,174,175,'LSAAAA','RLOAAA','VVVVxx' +9249,9768,1,1,9,9,49,249,1249,4249,9249,98,99,'TRAAAA','SLOAAA','AAAAxx' +4041,9769,1,1,1,1,41,41,41,4041,4041,82,83,'LZAAAA','TLOAAA','HHHHxx' +2304,9770,0,0,4,4,4,304,304,2304,2304,8,9,'QKAAAA','ULOAAA','OOOOxx' +8763,9771,1,3,3,3,63,763,763,3763,8763,126,127,'BZAAAA','VLOAAA','VVVVxx' +2115,9772,1,3,5,15,15,115,115,2115,2115,30,31,'JDAAAA','WLOAAA','AAAAxx' +8014,9773,0,2,4,14,14,14,14,3014,8014,28,29,'GWAAAA','XLOAAA','HHHHxx' +9895,9774,1,3,5,15,95,895,1895,4895,9895,190,191,'PQAAAA','YLOAAA','OOOOxx' +671,9775,1,3,1,11,71,671,671,671,671,142,143,'VZAAAA','ZLOAAA','VVVVxx' +3774,9776,0,2,4,14,74,774,1774,3774,3774,148,149,'EPAAAA','AMOAAA','AAAAxx' +134,9777,0,2,4,14,34,134,134,134,134,68,69,'EFAAAA','BMOAAA','HHHHxx' +534,9778,0,2,4,14,34,534,534,534,534,68,69,'OUAAAA','CMOAAA','OOOOxx' +7308,9779,0,0,8,8,8,308,1308,2308,7308,16,17,'CVAAAA','DMOAAA','VVVVxx' +5244,9780,0,0,4,4,44,244,1244,244,5244,88,89,'STAAAA','EMOAAA','AAAAxx' +1512,9781,0,0,2,12,12,512,1512,1512,1512,24,25,'EGAAAA','FMOAAA','HHHHxx' +8960,9782,0,0,0,0,60,960,960,3960,8960,120,121,'QGAAAA','GMOAAA','OOOOxx' +6602,9783,0,2,2,2,2,602,602,1602,6602,4,5,'YTAAAA','HMOAAA','VVVVxx' +593,9784,1,1,3,13,93,593,593,593,593,186,187,'VWAAAA','IMOAAA','AAAAxx' +2353,9785,1,1,3,13,53,353,353,2353,2353,106,107,'NMAAAA','JMOAAA','HHHHxx' +4139,9786,1,3,9,19,39,139,139,4139,4139,78,79,'FDAAAA','KMOAAA','OOOOxx' +3063,9787,1,3,3,3,63,63,1063,3063,3063,126,127,'VNAAAA','LMOAAA','VVVVxx' +652,9788,0,0,2,12,52,652,652,652,652,104,105,'CZAAAA','MMOAAA','AAAAxx' +7405,9789,1,1,5,5,5,405,1405,2405,7405,10,11,'VYAAAA','NMOAAA','HHHHxx' +3034,9790,0,2,4,14,34,34,1034,3034,3034,68,69,'SMAAAA','OMOAAA','OOOOxx' +4614,9791,0,2,4,14,14,614,614,4614,4614,28,29,'MVAAAA','PMOAAA','VVVVxx' +2351,9792,1,3,1,11,51,351,351,2351,2351,102,103,'LMAAAA','QMOAAA','AAAAxx' +8208,9793,0,0,8,8,8,208,208,3208,8208,16,17,'SDAAAA','RMOAAA','HHHHxx' +5475,9794,1,3,5,15,75,475,1475,475,5475,150,151,'PCAAAA','SMOAAA','OOOOxx' +6875,9795,1,3,5,15,75,875,875,1875,6875,150,151,'LEAAAA','TMOAAA','VVVVxx' +563,9796,1,3,3,3,63,563,563,563,563,126,127,'RVAAAA','UMOAAA','AAAAxx' +3346,9797,0,2,6,6,46,346,1346,3346,3346,92,93,'SYAAAA','VMOAAA','HHHHxx' +291,9798,1,3,1,11,91,291,291,291,291,182,183,'FLAAAA','WMOAAA','OOOOxx' +6345,9799,1,1,5,5,45,345,345,1345,6345,90,91,'BKAAAA','XMOAAA','VVVVxx' +8099,9800,1,3,9,19,99,99,99,3099,8099,198,199,'NZAAAA','YMOAAA','AAAAxx' +2078,9801,0,2,8,18,78,78,78,2078,2078,156,157,'YBAAAA','ZMOAAA','HHHHxx' +8238,9802,0,2,8,18,38,238,238,3238,8238,76,77,'WEAAAA','ANOAAA','OOOOxx' +4482,9803,0,2,2,2,82,482,482,4482,4482,164,165,'KQAAAA','BNOAAA','VVVVxx' +716,9804,0,0,6,16,16,716,716,716,716,32,33,'OBAAAA','CNOAAA','AAAAxx' +7288,9805,0,0,8,8,88,288,1288,2288,7288,176,177,'IUAAAA','DNOAAA','HHHHxx' +5906,9806,0,2,6,6,6,906,1906,906,5906,12,13,'ETAAAA','ENOAAA','OOOOxx' +5618,9807,0,2,8,18,18,618,1618,618,5618,36,37,'CIAAAA','FNOAAA','VVVVxx' +1141,9808,1,1,1,1,41,141,1141,1141,1141,82,83,'XRAAAA','GNOAAA','AAAAxx' +8231,9809,1,3,1,11,31,231,231,3231,8231,62,63,'PEAAAA','HNOAAA','HHHHxx' +3713,9810,1,1,3,13,13,713,1713,3713,3713,26,27,'VMAAAA','INOAAA','OOOOxx' +9158,9811,0,2,8,18,58,158,1158,4158,9158,116,117,'GOAAAA','JNOAAA','VVVVxx' +4051,9812,1,3,1,11,51,51,51,4051,4051,102,103,'VZAAAA','KNOAAA','AAAAxx' +1973,9813,1,1,3,13,73,973,1973,1973,1973,146,147,'XXAAAA','LNOAAA','HHHHxx' +6710,9814,0,2,0,10,10,710,710,1710,6710,20,21,'CYAAAA','MNOAAA','OOOOxx' +1021,9815,1,1,1,1,21,21,1021,1021,1021,42,43,'HNAAAA','NNOAAA','VVVVxx' +2196,9816,0,0,6,16,96,196,196,2196,2196,192,193,'MGAAAA','ONOAAA','AAAAxx' +8335,9817,1,3,5,15,35,335,335,3335,8335,70,71,'PIAAAA','PNOAAA','HHHHxx' +2272,9818,0,0,2,12,72,272,272,2272,2272,144,145,'KJAAAA','QNOAAA','OOOOxx' +3818,9819,0,2,8,18,18,818,1818,3818,3818,36,37,'WQAAAA','RNOAAA','VVVVxx' +679,9820,1,3,9,19,79,679,679,679,679,158,159,'DAAAAA','SNOAAA','AAAAxx' +7512,9821,0,0,2,12,12,512,1512,2512,7512,24,25,'YCAAAA','TNOAAA','HHHHxx' +493,9822,1,1,3,13,93,493,493,493,493,186,187,'ZSAAAA','UNOAAA','OOOOxx' +5663,9823,1,3,3,3,63,663,1663,663,5663,126,127,'VJAAAA','VNOAAA','VVVVxx' +4655,9824,1,3,5,15,55,655,655,4655,4655,110,111,'BXAAAA','WNOAAA','AAAAxx' +3996,9825,0,0,6,16,96,996,1996,3996,3996,192,193,'SXAAAA','XNOAAA','HHHHxx' +8797,9826,1,1,7,17,97,797,797,3797,8797,194,195,'JAAAAA','YNOAAA','OOOOxx' +2991,9827,1,3,1,11,91,991,991,2991,2991,182,183,'BLAAAA','ZNOAAA','VVVVxx' +7038,9828,0,2,8,18,38,38,1038,2038,7038,76,77,'SKAAAA','AOOAAA','AAAAxx' +4174,9829,0,2,4,14,74,174,174,4174,4174,148,149,'OEAAAA','BOOAAA','HHHHxx' +6908,9830,0,0,8,8,8,908,908,1908,6908,16,17,'SFAAAA','COOAAA','OOOOxx' +8477,9831,1,1,7,17,77,477,477,3477,8477,154,155,'BOAAAA','DOOAAA','VVVVxx' +3576,9832,0,0,6,16,76,576,1576,3576,3576,152,153,'OHAAAA','EOOAAA','AAAAxx' +2685,9833,1,1,5,5,85,685,685,2685,2685,170,171,'HZAAAA','FOOAAA','HHHHxx' +9161,9834,1,1,1,1,61,161,1161,4161,9161,122,123,'JOAAAA','GOOAAA','OOOOxx' +2951,9835,1,3,1,11,51,951,951,2951,2951,102,103,'NJAAAA','HOOAAA','VVVVxx' +8362,9836,0,2,2,2,62,362,362,3362,8362,124,125,'QJAAAA','IOOAAA','AAAAxx' +2379,9837,1,3,9,19,79,379,379,2379,2379,158,159,'NNAAAA','JOOAAA','HHHHxx' +1277,9838,1,1,7,17,77,277,1277,1277,1277,154,155,'DXAAAA','KOOAAA','OOOOxx' +1728,9839,0,0,8,8,28,728,1728,1728,1728,56,57,'MOAAAA','LOOAAA','VVVVxx' +9816,9840,0,0,6,16,16,816,1816,4816,9816,32,33,'ONAAAA','MOOAAA','AAAAxx' +6288,9841,0,0,8,8,88,288,288,1288,6288,176,177,'WHAAAA','NOOAAA','HHHHxx' +8985,9842,1,1,5,5,85,985,985,3985,8985,170,171,'PHAAAA','OOOAAA','OOOOxx' +771,9843,1,3,1,11,71,771,771,771,771,142,143,'RDAAAA','POOAAA','VVVVxx' +464,9844,0,0,4,4,64,464,464,464,464,128,129,'WRAAAA','QOOAAA','AAAAxx' +9625,9845,1,1,5,5,25,625,1625,4625,9625,50,51,'FGAAAA','ROOAAA','HHHHxx' +9608,9846,0,0,8,8,8,608,1608,4608,9608,16,17,'OFAAAA','SOOAAA','OOOOxx' +9170,9847,0,2,0,10,70,170,1170,4170,9170,140,141,'SOAAAA','TOOAAA','VVVVxx' +9658,9848,0,2,8,18,58,658,1658,4658,9658,116,117,'MHAAAA','UOOAAA','AAAAxx' +7515,9849,1,3,5,15,15,515,1515,2515,7515,30,31,'BDAAAA','VOOAAA','HHHHxx' +9400,9850,0,0,0,0,0,400,1400,4400,9400,0,1,'OXAAAA','WOOAAA','OOOOxx' +2045,9851,1,1,5,5,45,45,45,2045,2045,90,91,'RAAAAA','XOOAAA','VVVVxx' +324,9852,0,0,4,4,24,324,324,324,324,48,49,'MMAAAA','YOOAAA','AAAAxx' +4252,9853,0,0,2,12,52,252,252,4252,4252,104,105,'OHAAAA','ZOOAAA','HHHHxx' +8329,9854,1,1,9,9,29,329,329,3329,8329,58,59,'JIAAAA','APOAAA','OOOOxx' +4472,9855,0,0,2,12,72,472,472,4472,4472,144,145,'AQAAAA','BPOAAA','VVVVxx' +1047,9856,1,3,7,7,47,47,1047,1047,1047,94,95,'HOAAAA','CPOAAA','AAAAxx' +9341,9857,1,1,1,1,41,341,1341,4341,9341,82,83,'HVAAAA','DPOAAA','HHHHxx' +7000,9858,0,0,0,0,0,0,1000,2000,7000,0,1,'GJAAAA','EPOAAA','OOOOxx' +1429,9859,1,1,9,9,29,429,1429,1429,1429,58,59,'ZCAAAA','FPOAAA','VVVVxx' +2701,9860,1,1,1,1,1,701,701,2701,2701,2,3,'XZAAAA','GPOAAA','AAAAxx' +6630,9861,0,2,0,10,30,630,630,1630,6630,60,61,'AVAAAA','HPOAAA','HHHHxx' +3669,9862,1,1,9,9,69,669,1669,3669,3669,138,139,'DLAAAA','IPOAAA','OOOOxx' +8613,9863,1,1,3,13,13,613,613,3613,8613,26,27,'HTAAAA','JPOAAA','VVVVxx' +7080,9864,0,0,0,0,80,80,1080,2080,7080,160,161,'IMAAAA','KPOAAA','AAAAxx' +8788,9865,0,0,8,8,88,788,788,3788,8788,176,177,'AAAAAA','LPOAAA','HHHHxx' +6291,9866,1,3,1,11,91,291,291,1291,6291,182,183,'ZHAAAA','MPOAAA','OOOOxx' +7885,9867,1,1,5,5,85,885,1885,2885,7885,170,171,'HRAAAA','NPOAAA','VVVVxx' +7160,9868,0,0,0,0,60,160,1160,2160,7160,120,121,'KPAAAA','OPOAAA','AAAAxx' +6140,9869,0,0,0,0,40,140,140,1140,6140,80,81,'ECAAAA','PPOAAA','HHHHxx' +9881,9870,1,1,1,1,81,881,1881,4881,9881,162,163,'BQAAAA','QPOAAA','OOOOxx' +9140,9871,0,0,0,0,40,140,1140,4140,9140,80,81,'ONAAAA','RPOAAA','VVVVxx' +644,9872,0,0,4,4,44,644,644,644,644,88,89,'UYAAAA','SPOAAA','AAAAxx' +3667,9873,1,3,7,7,67,667,1667,3667,3667,134,135,'BLAAAA','TPOAAA','HHHHxx' +2675,9874,1,3,5,15,75,675,675,2675,2675,150,151,'XYAAAA','UPOAAA','OOOOxx' +9492,9875,0,0,2,12,92,492,1492,4492,9492,184,185,'CBAAAA','VPOAAA','VVVVxx' +5004,9876,0,0,4,4,4,4,1004,4,5004,8,9,'MKAAAA','WPOAAA','AAAAxx' +9456,9877,0,0,6,16,56,456,1456,4456,9456,112,113,'SZAAAA','XPOAAA','HHHHxx' +8197,9878,1,1,7,17,97,197,197,3197,8197,194,195,'HDAAAA','YPOAAA','OOOOxx' +2837,9879,1,1,7,17,37,837,837,2837,2837,74,75,'DFAAAA','ZPOAAA','VVVVxx' +127,9880,1,3,7,7,27,127,127,127,127,54,55,'XEAAAA','AQOAAA','AAAAxx' +9772,9881,0,0,2,12,72,772,1772,4772,9772,144,145,'WLAAAA','BQOAAA','HHHHxx' +5743,9882,1,3,3,3,43,743,1743,743,5743,86,87,'XMAAAA','CQOAAA','OOOOxx' +2007,9883,1,3,7,7,7,7,7,2007,2007,14,15,'FZAAAA','DQOAAA','VVVVxx' +7586,9884,0,2,6,6,86,586,1586,2586,7586,172,173,'UFAAAA','EQOAAA','AAAAxx' +45,9885,1,1,5,5,45,45,45,45,45,90,91,'TBAAAA','FQOAAA','HHHHxx' +6482,9886,0,2,2,2,82,482,482,1482,6482,164,165,'IPAAAA','GQOAAA','OOOOxx' +4565,9887,1,1,5,5,65,565,565,4565,4565,130,131,'PTAAAA','HQOAAA','VVVVxx' +6975,9888,1,3,5,15,75,975,975,1975,6975,150,151,'HIAAAA','IQOAAA','AAAAxx' +7260,9889,0,0,0,0,60,260,1260,2260,7260,120,121,'GTAAAA','JQOAAA','HHHHxx' +2830,9890,0,2,0,10,30,830,830,2830,2830,60,61,'WEAAAA','KQOAAA','OOOOxx' +9365,9891,1,1,5,5,65,365,1365,4365,9365,130,131,'FWAAAA','LQOAAA','VVVVxx' +8207,9892,1,3,7,7,7,207,207,3207,8207,14,15,'RDAAAA','MQOAAA','AAAAxx' +2506,9893,0,2,6,6,6,506,506,2506,2506,12,13,'KSAAAA','NQOAAA','HHHHxx' +8081,9894,1,1,1,1,81,81,81,3081,8081,162,163,'VYAAAA','OQOAAA','OOOOxx' +8678,9895,0,2,8,18,78,678,678,3678,8678,156,157,'UVAAAA','PQOAAA','VVVVxx' +9932,9896,0,0,2,12,32,932,1932,4932,9932,64,65,'ASAAAA','QQOAAA','AAAAxx' +447,9897,1,3,7,7,47,447,447,447,447,94,95,'FRAAAA','RQOAAA','HHHHxx' +9187,9898,1,3,7,7,87,187,1187,4187,9187,174,175,'JPAAAA','SQOAAA','OOOOxx' +89,9899,1,1,9,9,89,89,89,89,89,178,179,'LDAAAA','TQOAAA','VVVVxx' +7027,9900,1,3,7,7,27,27,1027,2027,7027,54,55,'HKAAAA','UQOAAA','AAAAxx' +1536,9901,0,0,6,16,36,536,1536,1536,1536,72,73,'CHAAAA','VQOAAA','HHHHxx' +160,9902,0,0,0,0,60,160,160,160,160,120,121,'EGAAAA','WQOAAA','OOOOxx' +7679,9903,1,3,9,19,79,679,1679,2679,7679,158,159,'JJAAAA','XQOAAA','VVVVxx' +5973,9904,1,1,3,13,73,973,1973,973,5973,146,147,'TVAAAA','YQOAAA','AAAAxx' +4401,9905,1,1,1,1,1,401,401,4401,4401,2,3,'HNAAAA','ZQOAAA','HHHHxx' +395,9906,1,3,5,15,95,395,395,395,395,190,191,'FPAAAA','AROAAA','OOOOxx' +4904,9907,0,0,4,4,4,904,904,4904,4904,8,9,'QGAAAA','BROAAA','VVVVxx' +2759,9908,1,3,9,19,59,759,759,2759,2759,118,119,'DCAAAA','CROAAA','AAAAxx' +8713,9909,1,1,3,13,13,713,713,3713,8713,26,27,'DXAAAA','DROAAA','HHHHxx' +3770,9910,0,2,0,10,70,770,1770,3770,3770,140,141,'APAAAA','EROAAA','OOOOxx' +8272,9911,0,0,2,12,72,272,272,3272,8272,144,145,'EGAAAA','FROAAA','VVVVxx' +5358,9912,0,2,8,18,58,358,1358,358,5358,116,117,'CYAAAA','GROAAA','AAAAxx' +9747,9913,1,3,7,7,47,747,1747,4747,9747,94,95,'XKAAAA','HROAAA','HHHHxx' +1567,9914,1,3,7,7,67,567,1567,1567,1567,134,135,'HIAAAA','IROAAA','OOOOxx' +2136,9915,0,0,6,16,36,136,136,2136,2136,72,73,'EEAAAA','JROAAA','VVVVxx' +314,9916,0,2,4,14,14,314,314,314,314,28,29,'CMAAAA','KROAAA','AAAAxx' +4583,9917,1,3,3,3,83,583,583,4583,4583,166,167,'HUAAAA','LROAAA','HHHHxx' +375,9918,1,3,5,15,75,375,375,375,375,150,151,'LOAAAA','MROAAA','OOOOxx' +5566,9919,0,2,6,6,66,566,1566,566,5566,132,133,'CGAAAA','NROAAA','VVVVxx' +6865,9920,1,1,5,5,65,865,865,1865,6865,130,131,'BEAAAA','OROAAA','AAAAxx' +894,9921,0,2,4,14,94,894,894,894,894,188,189,'KIAAAA','PROAAA','HHHHxx' +5399,9922,1,3,9,19,99,399,1399,399,5399,198,199,'RZAAAA','QROAAA','OOOOxx' +1385,9923,1,1,5,5,85,385,1385,1385,1385,170,171,'HBAAAA','RROAAA','VVVVxx' +2156,9924,0,0,6,16,56,156,156,2156,2156,112,113,'YEAAAA','SROAAA','AAAAxx' +9659,9925,1,3,9,19,59,659,1659,4659,9659,118,119,'NHAAAA','TROAAA','HHHHxx' +477,9926,1,1,7,17,77,477,477,477,477,154,155,'JSAAAA','UROAAA','OOOOxx' +8194,9927,0,2,4,14,94,194,194,3194,8194,188,189,'EDAAAA','VROAAA','VVVVxx' +3937,9928,1,1,7,17,37,937,1937,3937,3937,74,75,'LVAAAA','WROAAA','AAAAxx' +3745,9929,1,1,5,5,45,745,1745,3745,3745,90,91,'BOAAAA','XROAAA','HHHHxx' +4096,9930,0,0,6,16,96,96,96,4096,4096,192,193,'OBAAAA','YROAAA','OOOOxx' +5487,9931,1,3,7,7,87,487,1487,487,5487,174,175,'BDAAAA','ZROAAA','VVVVxx' +2475,9932,1,3,5,15,75,475,475,2475,2475,150,151,'FRAAAA','ASOAAA','AAAAxx' +6105,9933,1,1,5,5,5,105,105,1105,6105,10,11,'VAAAAA','BSOAAA','HHHHxx' +6036,9934,0,0,6,16,36,36,36,1036,6036,72,73,'EYAAAA','CSOAAA','OOOOxx' +1315,9935,1,3,5,15,15,315,1315,1315,1315,30,31,'PYAAAA','DSOAAA','VVVVxx' +4473,9936,1,1,3,13,73,473,473,4473,4473,146,147,'BQAAAA','ESOAAA','AAAAxx' +4016,9937,0,0,6,16,16,16,16,4016,4016,32,33,'MYAAAA','FSOAAA','HHHHxx' +8135,9938,1,3,5,15,35,135,135,3135,8135,70,71,'XAAAAA','GSOAAA','OOOOxx' +8892,9939,0,0,2,12,92,892,892,3892,8892,184,185,'AEAAAA','HSOAAA','VVVVxx' +4850,9940,0,2,0,10,50,850,850,4850,4850,100,101,'OEAAAA','ISOAAA','AAAAxx' +2545,9941,1,1,5,5,45,545,545,2545,2545,90,91,'XTAAAA','JSOAAA','HHHHxx' +3788,9942,0,0,8,8,88,788,1788,3788,3788,176,177,'SPAAAA','KSOAAA','OOOOxx' +1672,9943,0,0,2,12,72,672,1672,1672,1672,144,145,'IMAAAA','LSOAAA','VVVVxx' +3664,9944,0,0,4,4,64,664,1664,3664,3664,128,129,'YKAAAA','MSOAAA','AAAAxx' +3775,9945,1,3,5,15,75,775,1775,3775,3775,150,151,'FPAAAA','NSOAAA','HHHHxx' +3103,9946,1,3,3,3,3,103,1103,3103,3103,6,7,'JPAAAA','OSOAAA','OOOOxx' +9335,9947,1,3,5,15,35,335,1335,4335,9335,70,71,'BVAAAA','PSOAAA','VVVVxx' +9200,9948,0,0,0,0,0,200,1200,4200,9200,0,1,'WPAAAA','QSOAAA','AAAAxx' +8665,9949,1,1,5,5,65,665,665,3665,8665,130,131,'HVAAAA','RSOAAA','HHHHxx' +1356,9950,0,0,6,16,56,356,1356,1356,1356,112,113,'EAAAAA','SSOAAA','OOOOxx' +6118,9951,0,2,8,18,18,118,118,1118,6118,36,37,'IBAAAA','TSOAAA','VVVVxx' +4605,9952,1,1,5,5,5,605,605,4605,4605,10,11,'DVAAAA','USOAAA','AAAAxx' +5651,9953,1,3,1,11,51,651,1651,651,5651,102,103,'JJAAAA','VSOAAA','HHHHxx' +9055,9954,1,3,5,15,55,55,1055,4055,9055,110,111,'HKAAAA','WSOAAA','OOOOxx' +8461,9955,1,1,1,1,61,461,461,3461,8461,122,123,'LNAAAA','XSOAAA','VVVVxx' +6107,9956,1,3,7,7,7,107,107,1107,6107,14,15,'XAAAAA','YSOAAA','AAAAxx' +1967,9957,1,3,7,7,67,967,1967,1967,1967,134,135,'RXAAAA','ZSOAAA','HHHHxx' +8910,9958,0,2,0,10,10,910,910,3910,8910,20,21,'SEAAAA','ATOAAA','OOOOxx' +8257,9959,1,1,7,17,57,257,257,3257,8257,114,115,'PFAAAA','BTOAAA','VVVVxx' +851,9960,1,3,1,11,51,851,851,851,851,102,103,'TGAAAA','CTOAAA','AAAAxx' +7823,9961,1,3,3,3,23,823,1823,2823,7823,46,47,'XOAAAA','DTOAAA','HHHHxx' +3208,9962,0,0,8,8,8,208,1208,3208,3208,16,17,'KTAAAA','ETOAAA','OOOOxx' +856,9963,0,0,6,16,56,856,856,856,856,112,113,'YGAAAA','FTOAAA','VVVVxx' +2654,9964,0,2,4,14,54,654,654,2654,2654,108,109,'CYAAAA','GTOAAA','AAAAxx' +7185,9965,1,1,5,5,85,185,1185,2185,7185,170,171,'JQAAAA','HTOAAA','HHHHxx' +309,9966,1,1,9,9,9,309,309,309,309,18,19,'XLAAAA','ITOAAA','OOOOxx' +9752,9967,0,0,2,12,52,752,1752,4752,9752,104,105,'CLAAAA','JTOAAA','VVVVxx' +6405,9968,1,1,5,5,5,405,405,1405,6405,10,11,'JMAAAA','KTOAAA','AAAAxx' +6113,9969,1,1,3,13,13,113,113,1113,6113,26,27,'DBAAAA','LTOAAA','HHHHxx' +9774,9970,0,2,4,14,74,774,1774,4774,9774,148,149,'YLAAAA','MTOAAA','OOOOxx' +1674,9971,0,2,4,14,74,674,1674,1674,1674,148,149,'KMAAAA','NTOAAA','VVVVxx' +9602,9972,0,2,2,2,2,602,1602,4602,9602,4,5,'IFAAAA','OTOAAA','AAAAxx' +1363,9973,1,3,3,3,63,363,1363,1363,1363,126,127,'LAAAAA','PTOAAA','HHHHxx' +6887,9974,1,3,7,7,87,887,887,1887,6887,174,175,'XEAAAA','QTOAAA','OOOOxx' +6170,9975,0,2,0,10,70,170,170,1170,6170,140,141,'IDAAAA','RTOAAA','VVVVxx' +8888,9976,0,0,8,8,88,888,888,3888,8888,176,177,'WDAAAA','STOAAA','AAAAxx' +2981,9977,1,1,1,1,81,981,981,2981,2981,162,163,'RKAAAA','TTOAAA','HHHHxx' +7369,9978,1,1,9,9,69,369,1369,2369,7369,138,139,'LXAAAA','UTOAAA','OOOOxx' +6227,9979,1,3,7,7,27,227,227,1227,6227,54,55,'NFAAAA','VTOAAA','VVVVxx' +8002,9980,0,2,2,2,2,2,2,3002,8002,4,5,'UVAAAA','WTOAAA','AAAAxx' +4288,9981,0,0,8,8,88,288,288,4288,4288,176,177,'YIAAAA','XTOAAA','HHHHxx' +5136,9982,0,0,6,16,36,136,1136,136,5136,72,73,'OPAAAA','YTOAAA','OOOOxx' +1084,9983,0,0,4,4,84,84,1084,1084,1084,168,169,'SPAAAA','ZTOAAA','VVVVxx' +9117,9984,1,1,7,17,17,117,1117,4117,9117,34,35,'RMAAAA','AUOAAA','AAAAxx' +2406,9985,0,2,6,6,6,406,406,2406,2406,12,13,'OOAAAA','BUOAAA','HHHHxx' +1384,9986,0,0,4,4,84,384,1384,1384,1384,168,169,'GBAAAA','CUOAAA','OOOOxx' +9194,9987,0,2,4,14,94,194,1194,4194,9194,188,189,'QPAAAA','DUOAAA','VVVVxx' +858,9988,0,2,8,18,58,858,858,858,858,116,117,'AHAAAA','EUOAAA','AAAAxx' +8592,9989,0,0,2,12,92,592,592,3592,8592,184,185,'MSAAAA','FUOAAA','HHHHxx' +4773,9990,1,1,3,13,73,773,773,4773,4773,146,147,'PBAAAA','GUOAAA','OOOOxx' +4093,9991,1,1,3,13,93,93,93,4093,4093,186,187,'LBAAAA','HUOAAA','VVVVxx' +6587,9992,1,3,7,7,87,587,587,1587,6587,174,175,'JTAAAA','IUOAAA','AAAAxx' +6093,9993,1,1,3,13,93,93,93,1093,6093,186,187,'JAAAAA','JUOAAA','HHHHxx' +429,9994,1,1,9,9,29,429,429,429,429,58,59,'NQAAAA','KUOAAA','OOOOxx' +5780,9995,0,0,0,0,80,780,1780,780,5780,160,161,'IOAAAA','LUOAAA','VVVVxx' +1783,9996,1,3,3,3,83,783,1783,1783,1783,166,167,'PQAAAA','MUOAAA','AAAAxx' +2992,9997,0,0,2,12,92,992,992,2992,2992,184,185,'CLAAAA','NUOAAA','HHHHxx' +0,9998,0,0,0,0,0,0,0,0,0,0,1,'AAAAAA','OUOAAA','OOOOxx' +2968,9999,0,0,8,8,68,968,968,2968,2968,136,137,'EKAAAA','PUOAAA','VVVVxx' diff --git a/database/sql-bench/README b/database/sql-bench/README new file mode 100644 index 0000000..431659a --- /dev/null +++ b/database/sql-bench/README @@ -0,0 +1,93 @@ +The MySQL Benchmarks + +These tests require a MySQL version of at least 3.20.28 or 3.21.10. + +Currently the following servers are supported: +MySQL 3.20 and 3.21, PostgreSQL 6.#, mSQL 2.# and Solid Server 2.2 + +The benchmark directory contains the query files and raw data files used to +populate the MySQL benchmark tables. In order to run the benchmarks, you +should normally execute a command such as the following: + +run-all-tests --server=mysql --cmp=mysql,pg,solid --user=test --password=test --log + +This means that you want to run the benchmarks with MySQL. The +limits should be taken from all of MySQL, PostgreSQL, and Solid. +The login name and password for connecting to the server both are +``test''. The result should be saved as a RUN file in the output +directory. + +When run-all-tests has finished, will have the individual results and the +the total RUN- file in the output directory. + +If you want to look at some old results, use the compare-results script. +For example: + +compare-results --dir=Results --cmp=mysql,pg,solid +compare-results --dir=Results --cmp=mysql,pg,solid --relative + +compare-results --dir=Results --cmp=msql,mysql,pg,solid +compare-results --dir=Results --cmp=msql,mysql,pg,solid --relative + +compare-results --dir=Results --server=mysql --same-server --cmp=mysql,pg,solid + +Some of the files in the benchmark directory are: + +File Description + +Data/ATIS Contains data for 29 related tables used in the ATIS tests. +Data/Wisconsin Contains data for the Wisconsin benchmark. +Results Contains old benchmark results. +Makefile.am Automake Makefile +README This file. +test-ATIS.sh Creation of 29 tables and a lot of selects on them. +test-connect.sh Test how fast a connection to the server is. +test-create.sh Test how fast a table is created. +test-insert.sh Test create and fill of a table. +test-wisconsin.sh A port of the PostgreSQL version of this benchmark. +run-all-tests Use this to run all tests. When all tests are run, + use the --log and --use-old options to get a RUN-file. +compare-results Generates a comparison table from different RUN files. +server-cfg Contains the limits and functions for all supported + SQL servers. If you want to add a new server, this + should be the only file that neads to be changed. + + +Most of the tests should use portable SQL to make it possible to +compare different databases. Sometimes SQL extensions can make things +a lot faster. In this case the test may use the extensions if the --fast +option is used. + +Useful options to all test-scripts (and run-all-tests): + +--host=# Hostname for MySQL server (default: localhost) +--db=# Database to use (default: test) +--fast Allow use of any non-standard SQL extension to + get things done faster. +--lock-tables Use table locking to get more speed. + +From a text at http://www.mgt.ncu.edu.tw/CSIM/Paper/sixth/11.html: + +The Wisconsin Benchmark + +The Wisconsin Benchmark described in [Bitton, DeWitt, and Turbyfill +1983] [Boral and DeWitt 1984] [Bitton and Turbyfill 1985] [Bitton and +Turbyfill 1988], and [DeWitt 1993] is the first effort to +systematically measure and compare the performance of relational +database systems with database machines. The benchmark is a +single-user and single-factor experiment using a synthetic database +and a controlled workload. It measures the query optimization +performance of database systems with 32 query types to exercise the +components of the proposed systems. The query suites include +selection, join, projection, aggregate, and simple update queries. + +The test database consists of four generic relations. The tenk +relation is the key table and most used. Two data types of small +integer numbers and character strings are utilized. Data values are +uniformly distributed. The primary metric is the query elapsed +time. The main criticisms of the benchmark include the nature of +single-user workload, the simplistic database structure, and the +unrealistic query tests. A number of efforts have been made to extend +the benchmark to incorporate the multi-user test. However, they do +not receive the same acceptance as the original Wisconsin benchmark +except an extension work called the AS3AP benchmark. diff --git a/database/sql-bench/bench-count-distinct b/database/sql-bench/bench-count-distinct new file mode 100755 index 0000000..9ce9b2f --- /dev/null +++ b/database/sql-bench/bench-count-distinct @@ -0,0 +1,260 @@ +#!/usr/bin/perl +# Copyright (c) 2001, 2003, 2006 MySQL AB, 2009 Sun Microsystems, Inc. +# Use is subject to license terms. +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Library General Public +# License as published by the Free Software Foundation; version 2 +# of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Library General Public License for more details. +# +# You should have received a copy of the GNU Library General Public +# License along with this library; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1335 USA +# +# Test of selecting on keys that consist of many parts +# +##################### Standard benchmark inits ############################## + +use Cwd; +use DBI; +use Getopt::Long; +use Benchmark; + +$opt_loop_count=10000; +$opt_medium_loop_count=200; +$opt_small_loop_count=10; +$opt_regions=6; +$opt_groups=100; + +$pwd = cwd(); $pwd = "." if ($pwd eq ''); +require "$pwd/bench-init.pl" || die "Can't read Configuration file: $!\n"; + +$columns=min($limits->{'max_columns'},500,($limits->{'query_size'}-50)/24, + $limits->{'max_conditions'}/2-3); + +if ($opt_small_test) +{ + $opt_loop_count/=10; + $opt_medium_loop_count/=10; + $opt_small_loop_count/=10; + $opt_groups/=10; +} + +print "Testing the speed of selecting on keys that consist of many parts\n"; +print "The test-table has $opt_loop_count rows and the test is done with $columns ranges.\n\n"; + +#### +#### Connect and start timeing +#### + +$dbh = $server->connect(); +$start_time=new Benchmark; + +#### +#### Create needed tables +#### + +goto select_test if ($opt_skip_create); + +print "Creating table\n"; +$dbh->do("drop table bench1" . $server->{'drop_attr'}); + +do_many($dbh,$server->create("bench1", + ["region char(1) NOT NULL", + "idn integer(6) NOT NULL", + "rev_idn integer(6) NOT NULL", + "grp integer(6) NOT NULL"], + ["primary key (region,idn)", + "unique (region,rev_idn)", + "unique (region,grp,idn)"])); +if ($opt_lock_tables) +{ + do_query($dbh,"LOCK TABLES bench1 WRITE"); +} + +if ($opt_fast && defined($server->{vacuum})) +{ + $server->vacuum(1,\$dbh); +} + +#### +#### Insert $opt_loop_count records with +#### region: "A" -> "E" +#### idn: 0 -> count +#### rev_idn: count -> 0, +#### grp: distributed values 0 - > count/100 +#### + +print "Inserting $opt_loop_count rows\n"; + +$loop_time=new Benchmark; +$query="insert into bench1 values ("; +$half_done=$opt_loop_count/2; +for ($id=0,$rev_id=$opt_loop_count-1 ; $id < $opt_loop_count ; $id++,$rev_id--) +{ + $grp=$id*3 % $opt_groups; + $region=chr(65+$id%$opt_regions); + do_query($dbh,"$query'$region',$id,$rev_id,$grp)"); + if ($id == $half_done) + { # Test with different insert + $query="insert into bench1 (region,idn,rev_idn,grp) values ("; + } +} + +$end_time=new Benchmark; +print "Time to insert ($opt_loop_count): " . + timestr(timediff($end_time, $loop_time),"all") . "\n\n"; + +if ($opt_lock_tables) +{ + do_query($dbh,"UNLOCK TABLES"); +} + +if ($opt_fast && defined($server->{vacuum})) +{ + $server->vacuum(0,\$dbh,"bench1"); +} + +if ($opt_lock_tables) +{ + do_query($dbh,"LOCK TABLES bench1 WRITE"); +} + +#### +#### Do some selects on the table +#### + +select_test: + + + +if ($limits->{'group_distinct_functions'}) +{ + print "Testing count(distinct) on the table\n"; + $loop_time=new Benchmark; + $rows=$estimated=$count=0; + for ($i=0 ; $i < $opt_medium_loop_count ; $i++) + { + $count++; + $rows+=fetch_all_rows($dbh,"select count(distinct region) from bench1"); + $end_time=new Benchmark; + last if ($estimated=predict_query_time($loop_time,$end_time,\$count,$i+1, + $opt_medium_loop_count)); + } + print_time($estimated); + print " for count_distinct_key_prefix ($count:$rows): " . + timestr(timediff($end_time, $loop_time),"all") . "\n"; + + $loop_time=new Benchmark; + $rows=$estimated=$count=0; + for ($i=0 ; $i < $opt_medium_loop_count ; $i++) + { + $count++; + $rows+=fetch_all_rows($dbh,"select count(distinct grp) from bench1"); + $end_time=new Benchmark; + last if ($estimated=predict_query_time($loop_time,$end_time,\$count,$i+1, + $opt_medium_loop_count)); + } + print_time($estimated); + print " for count_distinct ($count:$rows): " . + timestr(timediff($end_time, $loop_time),"all") . "\n"; + + $loop_time=new Benchmark; + $rows=$estimated=$count=0; + for ($i=0 ; $i < $opt_medium_loop_count ; $i++) + { + $count++; + $rows+=fetch_all_rows($dbh,"select count(distinct grp),count(distinct rev_idn) from bench1"); + $end_time=new Benchmark; + last if ($estimated=predict_query_time($loop_time,$end_time,\$count,$i+1, + $opt_medium_loop_count)); + } + print_time($estimated); + print " for count_distinct_2 ($count:$rows): " . + timestr(timediff($end_time, $loop_time),"all") . "\n"; + + $loop_time=new Benchmark; + $rows=$estimated=$count=0; + for ($i=0 ; $i < $opt_medium_loop_count ; $i++) + { + $count++; + $rows+=fetch_all_rows($dbh,"select region,count(distinct idn) from bench1 group by region"); + $end_time=new Benchmark; + last if ($estimated=predict_query_time($loop_time,$end_time,\$count,$i+1, + $opt_medium_loop_count)); + } + print_time($estimated); + print " for count_distinct_group_on_key ($count:$rows): " . + timestr(timediff($end_time, $loop_time),"all") . "\n"; + + $loop_time=new Benchmark; + $rows=$estimated=$count=0; + for ($i=0 ; $i < $opt_medium_loop_count ; $i++) + { + $count++; + $rows+=fetch_all_rows($dbh,"select grp,count(distinct idn) from bench1 group by grp"); + $end_time=new Benchmark; + last if ($estimated=predict_query_time($loop_time,$end_time,\$count,$i+1, + $opt_medium_loop_count)); + } + print_time($estimated); + print " for count_distinct_group_on_key_parts ($count:$rows): " . + timestr(timediff($end_time, $loop_time),"all") . "\n"; + + $loop_time=new Benchmark; + $rows=$estimated=$count=0; + for ($i=0 ; $i < $opt_medium_loop_count ; $i++) + { + $count++; + $rows+=fetch_all_rows($dbh,"select grp,count(distinct rev_idn) from bench1 group by grp"); + $end_time=new Benchmark; + last if ($estimated=predict_query_time($loop_time,$end_time,\$count,$i+1, + $opt_medium_loop_count)); + } + print_time($estimated); + print " for count_distinct_group ($count:$rows): " . + timestr(timediff($end_time, $loop_time),"all") . "\n"; + + $loop_time=new Benchmark; + $rows=$estimated=$count=0; + $test_count=$opt_medium_loop_count/10; + for ($i=0 ; $i < $test_count ; $i++) + { + $count++; + $rows+=fetch_all_rows($dbh,"select idn,count(distinct region) from bench1 group by idn"); + $end_time=new Benchmark; + last if ($estimated=predict_query_time($loop_time,$end_time,\$count,$i+1, + $test_count)); + } + print_time($estimated); + print " for count_distinct_big ($count:$rows): " . + timestr(timediff($end_time, $loop_time),"all") . "\n"; +} + +#### +#### End of benchmark +#### + +if ($opt_lock_tables) +{ + do_query($dbh,"UNLOCK TABLES"); +} +if (!$opt_skip_delete) +{ + do_query($dbh,"drop table bench1" . $server->{'drop_attr'}); +} + +if ($opt_fast && defined($server->{vacuum})) +{ + $server->vacuum(0,\$dbh); +} + +$dbh->disconnect; # close connection + +end_benchmark($start_time); diff --git a/database/sql-bench/bench-init.pl b/database/sql-bench/bench-init.pl new file mode 100755 index 0000000..9aab11c --- /dev/null +++ b/database/sql-bench/bench-init.pl @@ -0,0 +1,615 @@ +#!/usr/bin/perl +# Copyright (c) 2000-2003, 2005-2007 MySQL AB, 2009 Sun Microsystems, Inc. +# Use is subject to license terms. +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Library General Public +# License as published by the Free Software Foundation; version 2 +# of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Library General Public License for more details. +# +# You should have received a copy of the GNU Library General Public +# License along with this library; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1335 USA +# +########################################################## +# this is the base file every test is using .... +# this is made for not changing every file if we want to +# add an option or just want to change something in +# code what is the same in every file ... +########################################################## + +# +# The exported values are: + +# $opt_... Various options +# $date Current date in ISO format +# $server Object for current server +# $limits Hash reference to limits for benchmark + +$benchmark_version="2.15"; +use Getopt::Long; +use POSIX; + +require "$pwd/server-cfg" || die "Can't read Configuration file: $!\n"; + +$|=1; # Output data immediately + +$opt_skip_test=$opt_skip_create=$opt_skip_delete=$opt_verbose=$opt_fast_insert=$opt_lock_tables=$opt_debug=$opt_skip_delete=$opt_fast=$opt_force=$opt_log=$opt_use_old_results=$opt_help=$opt_odbc=$opt_small_test=$opt_small_tables=$opt_samll_key_tables=$opt_stage=$opt_old_headers=$opt_die_on_errors=$opt_tcpip=$opt_random=$opt_only_missing_tests=$opt_temporary_tables=0; +$opt_cmp=$opt_user=$opt_password=$opt_connect_options=$opt_connect_command= ""; +$opt_server="mysql"; $opt_dir="output"; +$opt_host="localhost";$opt_database="test"; +$opt_machine=""; $opt_suffix=""; +$opt_create_options=undef; +$opt_optimization="None"; +$opt_hw=""; +$opt_threads=-1; + +if (!defined($opt_time_limit)) +{ + $opt_time_limit=10*60; # Don't wait more than 10 min for some tests +} + +$log_prog_args=join(" ", skip_arguments(\@ARGV,"comments","cmp","server", + "user", "host", "database", "password", + "use-old-results","skip-test", + "optimization","hw", + "machine", "dir", "suffix", "log")); +GetOptions("skip-test=s","comments=s","cmp=s","server=s","user=s","host=s","database=s","password=s","loop-count=i","row-count=i","skip-create","skip-delete","verbose","fast-insert","lock-tables","debug","fast","force","field-count=i","regions=i","groups=i","time-limit=i","log","use-old-results","machine=s","dir=s","suffix=s","help","odbc","small-test","small-tables","small-key-tables","stage=i","threads=i","random","old-headers","die-on-errors","create-options=s","hires","tcpip","silent","optimization=s","hw=s","socket=s","connect-options=s","connect-command=s","only-missing-tests","temporary-tables") || usage(); + +usage() if ($opt_help); +$server=get_server($opt_server,$opt_host,$opt_database,$opt_odbc, + machine_part(), $opt_socket, $opt_connect_options); +$limits=merge_limits($server,$opt_cmp); +$date=date(); +@estimated=(0.0,0.0,0.0); # For estimated time support + +if ($opt_threads != -1) +{ + print "WARNING: Option --threads is deprecated and has no effect\n" +} + +if ($opt_hires) +{ + eval "use Time::HiRes;"; +} + +{ + my $tmp= $opt_server; + $tmp =~ s/_odbc$//; + if (length($opt_cmp) && index($opt_cmp,$tmp) < 0) + { + $opt_cmp.=",$tmp"; + } +} +$opt_cmp=lc(join(",",sort(split(',',$opt_cmp)))); + +# +# set opt_lock_tables if one uses --fast and drivers supports it +# + +if (($opt_lock_tables || $opt_fast) && $server->{'limits'}->{'lock_tables'}) +{ + $opt_lock_tables=1; +} +else +{ + $opt_lock_tables=0; +} +if ($opt_fast) +{ + $opt_fast_insert=1; + $opt_suffix="_fast" if (!length($opt_suffix)); +} + +if ($opt_odbc) +{ + $opt_suffix="_odbc" if (!length($opt_suffix)); +} + +if (!$opt_silent) +{ + print "Testing server '" . $server->version() . "' at $date\n\n"; +} + +if ($opt_debug) +{ + print "\nCurrent limits: \n"; + foreach $key (sort keys %$limits) + { + print $key . " " x (30-length($key)) . $limits->{$key} . "\n"; + } + print "\n"; +} + +# +# Some help functions +# + +sub skip_arguments +{ + my($argv,@skip_args)=@_; + my($skip,$arg,$name,@res); + + foreach $arg (@$argv) + { + if ($arg =~ /^\-+([^=]*)/) + { + $name=$1; + foreach $skip (@skip_args) + { + if (index($skip,$name) == 0) + { + $name=""; # Don't use this parameters + last; + } + } + push (@res,$arg) if (length($name)); + } + } + return @res; +} + + +sub merge_limits +{ + my ($server,$cmp)= @_; + my ($name,$tmp_server,$limits,$res_limits,$limit,$tmp_limits); + + $res_limits=$server->{'limits'}; + if ($cmp) + { + foreach $name (split(",",$cmp)) + { + $tmp_server= (get_server($name,$opt_host, $opt_database, + $opt_odbc,machine_part()) + || die "Unknown SQL server: $name\n"); + $limits=$tmp_server->{'limits'}; + %new_limits=(); + foreach $limit (keys(%$limits)) + { + if (defined($res_limits->{$limit}) && defined($limits->{$limit})) + { + $new_limits{$limit}=min($res_limits->{$limit},$limits->{$limit}); + } + } + %tmp_limits=%new_limits; + $res_limits=\%tmp_limits; + } + } + return $res_limits; +} + +sub date +{ + my ($sec, $min, $hour, $mday, $mon, $year) = localtime(time()); + sprintf("%04d-%02d-%02d %2d:%02d:%02d", + 1900+$year,$mon+1,$mday,$hour,$min,$sec); +} + +sub min +{ + my($min)=$_[0]; + my($i); + for ($i=1 ; $i <= $#_; $i++) + { + $min=$_[$i] if ($min > $_[$i]); + } + return $min; +} + +sub max +{ + my($max)=$_[0]; + my($i); + for ($i=1 ; $i <= $#_; $i++) + { + $max=$_[$i] if ($max < $_[$i]); + } + return $max; +} + + +# +# Execute many statements in a row +# + +sub do_many +{ + my ($dbh,@statements)=@_; + my ($statement,$sth); + + foreach $statement (@statements) + { + if (!($sth=$dbh->do($statement))) + { + die "Can't execute command '$statement'\nError: $DBI::errstr\n"; + } + } +} + +sub safe_do_many +{ + my ($dbh,@statements)=@_; + my ($statement,$sth); + + foreach $statement (@statements) + { + if (!($sth=$dbh->do($statement))) + { + print STDERR "Can't execute command '$statement'\nError: $DBI::errstr\n"; + return 1; + } + } + return 0; +} + + + +# +# Do a query and fetch all rows from a statement and return the number of rows +# + +sub fetch_all_rows +{ + my ($dbh,$query,$must_get_result)=@_; + my ($count,$sth); + $count=0; + + print "$query: " if ($opt_debug); + if (!($sth= $dbh->prepare($query))) + { + print "\n" if ($opt_debug); + die "Error occured with prepare($query)\n -> $DBI::errstr\n"; + return undef; + } + if (!$sth->execute) + { + print "\n" if ($opt_debug); + if (defined($server->{'error_on_execute_means_zero_rows'}) && + !$server->abort_if_fatal_error()) + { + if (defined($must_get_result) && $must_get_result) + { + die "Error: Query $query didn't return any rows\n"; + } + $sth->finish; + print "0\n" if ($opt_debug); + return 0; + } + die "Error occured with execute($query)\n -> $DBI::errstr\n"; + $sth->finish; + return undef; + } + while ($sth->fetchrow_arrayref) + { + $count++; + } + print "$count\n" if ($opt_debug); + if (defined($must_get_result) && $must_get_result && !$count) + { + die "Error: Query $query didn't return any rows\n"; + } + $sth->finish; + undef($sth); + return $count; +} + +sub do_query +{ + my($dbh,$query)=@_; + print "$query\n" if ($opt_debug); + $dbh->do($query) or + die "\nError executing '$query':\n$DBI::errstr\n"; +} + +# +# Run a query X times +# + +sub time_fetch_all_rows +{ + my($test_text,$result_text,$query,$dbh,$test_count)=@_; + my($i,$loop_time,$end_time,$count,$rows,$estimated); + + print $test_text . "\n" if (defined($test_text)); + $count=$rows=0; + $loop_time=new Benchmark; + for ($i=1 ; $i <= $test_count ; $i++) + { + $count++; + $rows+=fetch_all_rows($dbh,$query) or die $DBI::errstr; + $end_time=new Benchmark; + last if ($estimated=predict_query_time($loop_time,$end_time,\$count,$i, + $test_count)); + } + $end_time=new Benchmark; + if ($estimated) + { print "Estimated time"; } + else + { print "Time"; } + print " for $result_text ($count:$rows) " . + timestr(timediff($end_time, $loop_time),"all") . "\n\n"; +} + + +# +# Handle estimated time of the server is too slow +# Returns 0 if one should continue as normal +# + +sub predict_query_time +{ + my ($loop_time,$end_time,$count_ref,$loop,$loop_count)= @_; + my ($k,$tmp); + + if (($end_time->[0] - $loop_time->[0]) > $opt_time_limit) + { + # We can't wait until the SUN dies. Try to predict the end time + if ($loop != $loop_count) + { + $tmp=($end_time->[0] - $loop_time->[0]); + print "Note: Query took longer then time-limit: $opt_time_limit\nEstimating end time based on:\n"; + print "$$count_ref queries in $loop loops of $loop_count loops took $tmp seconds\n"; + for ($k=0; $k < 3; $k++) + { + $tmp=$loop_time->[$k]+($end_time->[$k]-$loop_time->[$k])/$loop* + $loop_count; + $estimated[$k]+=($tmp-$end_time->[$k]); + $end_time->[$k]=$tmp; + } + $$count_ref= int($$count_ref/$loop*$loop_count); + return 1; + } + } + return 0; +} + +# +# standard end of benchmark +# + +sub end_benchmark +{ + my ($start_time)=@_; + + $end_time=new Benchmark; + if ($estimated[0]) + { + print "Estimated total time: "; + $end_time->[0]+=$estimated[0]; + $end_time->[1]+=$estimated[1]; + $end_time->[2]+=$estimated[2]; + } + else + { + print "Total time: " + } + print timestr(timediff($end_time, $start_time),"all") . "\n"; + exit 0; +} + +sub print_time +{ + my ($estimated)=@_; + if ($estimated) + { print "Estimated time"; } + else + { print "Time"; } +} + +# +# Create a filename part for the machine that can be used for log file. +# + +sub machine_part +{ + my ($name,$orig); + return $opt_machine if (length($opt_machine)); # Specified by user +# Specified by user + $orig=$name=machine(); + $name="win9$1" if ($orig =~ /win.*9(\d)/i); + $name="NT_$1" if ($orig =~ /Windows NT.*(\d+\.\d+)/i); + $name="win2k" if ($orig =~ /Windows 2000/i); + $name =~ s/\s+/_/g; # Make the filenames easier to parse + $name =~ s/-/_/g; + $name =~ s/\//_/g; + return $name; +} + +sub machine +{ + my @name = POSIX::uname(); + my $name= $name[0] . " " . $name[2] . " " . $name[4]; + return $name; +} + +# +# Usage +# + +sub usage +{ + print <) + { + chomp; + if ($next == 0) { + if (/Server version:\s+(\S+.*)/i) + { + $tot{$prog}{'server'} = $1; + } + elsif (/Arguments:\s+(.+)/i) + { + $arguments= $1; + # Remove some standard, not informative arguments + $arguments =~ s/--force|--log|--use-old\S*|--server=\S+|--cmp=\S+|--user=\S+|--pass=\S+|--machine=\S+|--dir=\S+//g; + if (($tmp=index($arguments,"--comment")) >= 0) + { + if (($end=index($arguments,$tmp+2,"--")) >= 0) + { + substr($arguments,$tmp,($end-$tmp))=""; + } + else + { + $arguments=substr($arguments,0,$tmp); + } + } + $arguments =~ s/\s+/ /g; + $tot{$prog}{'arguments'}=$arguments; + } + elsif (/Comments:\s+(.+)/i) { + $tot{$prog}{'comments'} = $1; + } elsif (/^(\S+):.*(estimated\s|)total\stime:\s+([\d.]+)\s+(wallclock\s|)secs/i) + { + $tmp = $1; $tmp =~ s/://; + $tot{$prog}{$tmp} = [ $3, (length($2) ? "+" : "")]; + $op1{$tmp} = $tmp; + } elsif (/Totals per operation:/i) { + $next = 1; + next; + } + } + elsif ($next == 1) + { + if (/^(\S+)\s+([\d.]+)\s+([\d.]+)\s+([\d.]+)\s+([\d.]+)\s+([\d.]+)\s*([+|?])*/) + { + $tot1{$prog}{$1} = [$2,$6,$7]; + $op{$1} = $1; + } + } + } +} + +if (!%op) +{ + print "Didn't find any files matching: '$files'\n"; + print "Use the --cmp=server,server option to compare benchmarks\n"; + exit 1; +} + + +# everything is loaded ... +# now we have to create a fancy output :-) + +# I prefer to redirect scripts instead to force it to file ; Monty +# +# open(RES, ">$resultfile") || die "Can't write to $resultfile: $!\n"; +# select(RES) +# + +if ($opt_html) { + html_output(); +} else { + ascii_output(); +} +exit 0; + +# +# some output + format functions; +# + +sub ascii_output { + print <[0],undef(),$tot{$server}{$key}->[1]); + $first=$tot{$server}{$key}->[0] if (!defined($first)); + } + print "\n"; + } + + print_sep("-"); + print_string("The results per operation:"); + print_sep("-"); + + foreach $key (sort {$a cmp $b} keys %op) + { + next if ($key =~ /TOTALS/i); + $tmp=$key; + $count=$tot1{$key_order[0]}{$key}->[1]; + $tmp.= " (" . $count . ")" if (!$skip_count); + printf "%-$namewidth.${namewidth}s${bar}", $tmp; + $first=undef(); + foreach $server (@key_order) + { + $tmp= $count != $tot1{$server}{$key}->[1] ? "*" : ""; + print_value($first,$tot1{$server}{$key}->[0],$tot1{$server}{$key}->[1], + $tot1{$server}{$key}->[2] . $tmp); + $first=$tot1{$server}{$key}->[0] if (!defined($first)); + } + print "\n"; + } + + print_sep("-"); + $key="TOTALS"; + printf "%-$namewidth.${namewidth}s${bar}", $key; + $first=undef(); + foreach $server (@key_order) + { + print_value($first,$tot1{$server}{$key}->[0],undef(), + $tot1{$server}{$key}->[2]); + $first=$tot1{$server}{$key}->[0] if (!defined($first)); + } + print "\n"; + print_sep("="); +} + + +sub html_output +{ + my $template="template.html"; + my $title="MySQL | | Information | Benchmarks | Compare with $opt_cmp"; + my $image="info.gif"; + $bar=""; + + open(TEMPLATE, $template) || die; + while (